  :root{
    --bg: #F1F3F7;
    --surface: #FFFFFF;
    --surface-2: #E4E8EF;
    --ink: #171A2B;
    --ink-soft: #565B72;
    --ink-faint: #8A8C9E;
    --line: #D8DEE7;
    --blue: #1C3BA2;
    --blue-ink: #FFFFFF;
    --blue-deep: #10154A;
    --blue-deep-soft: #C7CDF2;
    --coral: #FF6A50;
    --coral-ink: #17121A;
    --coral-soft: #FFE3D9;
    --focus-ring: #17121A;
    --shadow: 0 1px 2px rgba(23,18,26,0.05);
    --logo-plate-bg: transparent;
    --radius-s: 6px;
    --radius-m: 14px;
    --radius-pill: 999px;
    --container: 1180px;
    --fs-h1: clamp(2.15rem, 1.55rem + 2.6vw, 3.6rem);
    --fs-h2: clamp(1.65rem, 1.35rem + 1.3vw, 2.35rem);
    --fs-h3: clamp(1.2rem, 1.08rem + 0.5vw, 1.4rem);
    --fs-lead: clamp(1.05rem, 0.98rem + 0.3vw, 1.2rem);
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --bg: #0E1120;
      --surface: #161A2E;
      --surface-2: #1B2036;
      --ink: #F2EFE6;
      --ink-soft: #B7BACB;
      --ink-faint: #7C8098;
      --line: #2A2F49;
      --blue: #5577E7;
      --blue-ink: #0E1120;
      --blue-deep: #05060F;
      --blue-deep-soft: #444B7A;
      --coral: #FF8567;
      --coral-ink: #0E1120;
      --coral-soft: #2E2130;
      --shadow: 0 1px 2px rgba(0,0,0,0.35);
    }
    :root:not([data-theme="light"]) .brand-logo{ filter:invert(1) hue-rotate(180deg); }
  }
  :root[data-theme="dark"]{
    --bg: #0E1120;
    --surface: #161A2E;
    --surface-2: #1B2036;
    --ink: #F2EFE6;
    --ink-soft: #B7BACB;
    --ink-faint: #7C8098;
    --line: #2A2F49;
    --blue: #5577E7;
    --blue-ink: #0E1120;
    --blue-deep: #05060F;
    --blue-deep-soft: #444B7A;
    --coral: #FF8567;
    --coral-ink: #0E1120;
    --coral-soft: #2E2130;
    --shadow: 0 1px 2px rgba(0,0,0,0.35);
  }
  :root[data-theme="dark"] .brand-logo{ filter:invert(1) hue-rotate(180deg); }

  *,*::before,*::after{ box-sizing:border-box; }
  html{ scroll-behavior:smooth; }
  @media (prefers-reduced-motion: reduce){
    html{ scroll-behavior:auto; }
    *,*::before,*::after{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; }
  }

  .reveal{ opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease; }
  .reveal.is-visible{ opacity:1; transform:translateY(0); }

  @keyframes heroFadeRise{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:translateY(0); } }
  .hero-copy{ animation:heroFadeRise .7s ease-out both; }
  .hero-photo-frame{ animation:heroFadeRise .7s ease-out .15s both; }

  .card-icon{
    width:44px; height:44px; border-radius:var(--radius-s); flex:none;
    background:color-mix(in srgb, var(--blue) 12%, var(--surface));
    display:flex; align-items:center; justify-content:center;
  }
  .card-icon svg{ width:24px; height:24px; }

  .section-accent{ position:relative; overflow:hidden; }
  .section-accent::before{
    content:""; position:absolute; top:-140px; right:-120px; width:380px; height:380px;
    background:radial-gradient(circle, var(--blue) 0%, transparent 72%);
    opacity:0.07; border-radius:50%; pointer-events:none;
  }
  .section-accent > .container{ position:relative; z-index:1; }

  .back-to-top{
    position:fixed; left:1.1rem; bottom:1.1rem; z-index:110; width:3rem; height:3rem; border-radius:50%;
    background:var(--surface); color:var(--ink); border:1px solid var(--line); box-shadow:var(--shadow);
    display:flex; align-items:center; justify-content:center; cursor:pointer; transition:border-color .15s ease, color .15s ease;
  }
  .back-to-top:hover{ border-color:var(--blue); color:var(--blue); }
  body{
    margin:0;
    background:var(--bg);
    color:var(--ink);
    font-family:"Karla",system-ui,-apple-system,"Segoe UI",sans-serif;
    font-size:16px;
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3{
    font-family:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;
    font-weight:800;
    line-height:1.12;
    text-wrap:balance;
    margin:0;
    color:var(--ink);
  }
  h1{ font-size:var(--fs-h1); letter-spacing:-0.01em; }
  h2{ font-size:var(--fs-h2); letter-spacing:-0.005em; }
  h3{ font-size:var(--fs-h3); font-weight:700; }
  p{ margin:0; color:var(--ink-soft); max-width:62ch; }
  a{ color:inherit; }
  ul{ margin:0; padding:0; list-style:none; }
  button{ font-family:inherit; }
  img,svg{ display:block; max-width:100%; }

  .container{ max-width:var(--container); margin-inline:auto; padding-inline:clamp(1.25rem,4vw,2.5rem); }
  [hidden]{ display:none !important; }

  .skip-link{
    position:absolute; left:1rem; top:-3rem; background:var(--ink); color:var(--bg);
    padding:0.6rem 1rem; border-radius:var(--radius-s); z-index:200; transition:top .15s ease;
  }
  .skip-link:focus{ top:1rem; }

  :focus-visible{ outline:3px solid var(--focus-ring); outline-offset:2px; }

  .eyebrow{
    display:inline-block; font-family:"Manrope",sans-serif; font-weight:700; font-size:0.78rem;
    letter-spacing:0.09em; text-transform:uppercase; color:var(--blue);
  }

  /* ---------- Header ---------- */
  header.site-header{
    position:sticky; top:0; z-index:100; background:color-mix(in srgb, var(--bg) 88%, transparent);
    backdrop-filter:blur(8px); border-bottom:1px solid var(--line);
  }
  .header-row{ display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-block:0.85rem; }
  .brand{ display:flex; align-items:center; text-decoration:none; }
  .brand-logo-plate{ display:inline-flex; align-items:center; background:var(--logo-plate-bg); border-radius:8px; padding:0.3rem 0.4rem; }
  .brand-logo{ height:34px; width:auto; display:block; }
  @media (min-width:640px){ .brand-logo{ height:42px; } }
  nav.primary-nav{ display:none; align-items:center; gap:1.9rem; }
  nav.primary-nav a{
    font-family:"Manrope",sans-serif; font-weight:700; font-size:0.95rem; text-decoration:none; color:var(--ink-soft);
    padding-block:0.3rem; border-bottom:2px solid transparent;
  }
  nav.primary-nav a:hover{ color:var(--ink); }
  nav.primary-nav a{ white-space:nowrap; }
  .brand{ flex:none; }
  .mobile-menu a.btn{ padding:0.85rem 1.3rem; border-bottom:0; margin-top:0.75rem; color:var(--coral-ink); }
  @media (max-width:639px){
    .header-row{ gap:0.6rem; }
    .brand-logo{ height:30px; }
    .header-actions{ gap:0.4rem; }
    .header-actions .btn-wa span{ display:none; }
    .header-actions .btn-wa{ padding-inline:0.8rem; }
  }
  @media (max-width:559px){
    .header-actions .btn-primary{ display:none; }
  }
  @media (min-width:960px) and (max-width:1199px){
    nav.primary-nav{ gap:1.15rem; }
    nav.primary-nav a{ font-size:0.9rem; }
    .header-actions .btn-wa span{ display:none; }
    .header-actions .btn-wa{ padding-inline:0.8rem; }
  }
  nav.primary-nav a.is-current{ color:var(--ink); border-color:var(--coral); }
  nav.primary-nav a.nav-quiet{ font-weight:500; color:var(--ink-faint); }
  .header-actions{ display:flex; align-items:center; gap:0.6rem; }
  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:0.5rem;
    font-family:"Manrope",sans-serif; font-weight:700; font-size:0.95rem; text-decoration:none;
    padding:0.72rem 1.3rem; border-radius:var(--radius-pill); border:1px solid transparent; cursor:pointer;
    transition:transform .12s ease, background .15s ease, border-color .15s ease;
    white-space:nowrap;
  }
  .btn:active{ transform:translateY(1px); }
  .btn-primary{ background:var(--coral); color:var(--coral-ink); }
  .btn-primary:hover{ background:color-mix(in srgb, var(--coral) 88%, black 6%); }
  .btn-ghost{ background:transparent; color:var(--ink); border-color:var(--line); }
  .btn-ghost:hover{ border-color:var(--ink-soft); }
  .btn-quiet{ background:transparent; color:var(--ink-soft); padding:0.72rem 0.9rem; }
  .btn-wa{ background:var(--surface-2); color:var(--ink); border-color:var(--line); }
  .btn-wa:hover{ border-color:var(--blue); }
  .btn-block{ width:100%; }
  .btn-lg{ padding:0.95rem 1.7rem; font-size:1.02rem; }
  .btn-on-dark{ background:var(--coral); color:var(--coral-ink); }

  .menu-toggle{
    display:inline-flex; background:none; border:1px solid var(--line); border-radius:var(--radius-s);
    padding:0.5rem 0.65rem; color:var(--ink);
  }
  @media (min-width:960px){
    nav.primary-nav{ display:flex; }
    .menu-toggle{ display:none; }
  }
  .mobile-menu{
    border-top:1px solid var(--line); padding:0.75rem clamp(1.25rem,4vw,2.5rem) 1.25rem; display:flex; flex-direction:column; gap:0.15rem;
  }
  .mobile-menu a{
    font-family:"Manrope",sans-serif; font-weight:700; color:var(--ink); text-decoration:none;
    padding:0.75rem 0.25rem; border-bottom:1px solid var(--line);
  }
  .mobile-menu a.nav-quiet{ color:var(--ink-faint); font-weight:600; }

  /* ---------- Sections shell ---------- */
  main{ display:block; }
  section{ padding-block:clamp(3rem,7vw,5.5rem); }
  .section-head{ max-width:44rem; display:flex; flex-direction:column; gap:0.75rem; margin-bottom:clamp(2rem,4vw,3rem); }
  .band-alt{ background:var(--surface-2); }

  .privati-signpost{ background:var(--coral-soft); }
  .privati-signpost-inner{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:0.75rem 1.5rem; padding-block:1.25rem; }
  .privati-signpost-inner p{ margin:0; font-family:"Manrope",sans-serif; font-weight:700; font-size:1.05rem; color:var(--ink); }
  .privati-signpost-inner .link-arrow{ font-size:1rem; white-space:nowrap; color:var(--ink); border-color:var(--ink); }
  @media (min-width:640px){ .privati-signpost-inner p{ font-size:1.15rem; } }

  /* ---------- Hero ---------- */
  .hero{ padding-block:clamp(2.75rem,6vw,4.5rem) clamp(3rem,6vw,4.5rem); }
  .hero-grid{ display:grid; gap:2.5rem; align-items:center; }
  .hero-copy{ display:flex; flex-direction:column; gap:1.4rem; }
  .hero-copy h1{ max-width:16ch; }
  .hero-copy p.lead{ font-size:var(--fs-lead); color:var(--ink-soft); max-width:42ch; }
  .hero-ctas{ display:flex; flex-wrap:wrap; align-items:center; gap:1.1rem; margin-top:0.4rem; }
  .link-arrow{ display:inline-flex; align-items:center; gap:0.4rem; font-family:"Manrope",sans-serif; font-weight:700; text-decoration:none; color:var(--ink); border-bottom:1px solid var(--ink-faint); padding-bottom:2px; }
  .link-arrow:hover{ border-color:var(--ink); }
  .hero-photo-frame{ position:relative; width:100%; max-width:460px; margin-inline:auto; }
  .hero-photo-frame::before{ content:""; position:absolute; inset:16px -16px -16px 16px; background:var(--coral); opacity:0.18; border-radius:var(--radius-m); z-index:0; }
  .hero-photo{ position:relative; z-index:1; width:100%; height:auto; display:block; border-radius:var(--radius-m); box-shadow:0 20px 40px rgba(16,21,74,0.18); }
  @media (min-width:900px){ .hero-photo-frame{ max-width:100%; } }
  @media (min-width:900px){
    .hero-grid{ grid-template-columns:1.05fr 0.95fr; }
  }

  /* ---------- Problemi list ---------- */
  .problem-list{ display:grid; gap:0; border-top:1px solid var(--line); }
  .problem-row{ display:grid; grid-template-columns:auto 1fr; gap:1rem; align-items:flex-start; padding-block:1.35rem; border-bottom:1px solid var(--line); }
  .problem-row svg{ margin-top:0.2rem; flex:none; }
  .problem-row p{ color:var(--ink); max-width:56ch; font-size:1.02rem; }
  .problem-note{ margin-top:1.75rem; font-style:italic; color:var(--ink-soft); max-width:52ch; }
  @media (min-width:800px){
    .problem-list{ grid-template-columns:1fr 1fr; column-gap:2.5rem; }
    .problem-row:nth-child(odd){ border-right:1px solid transparent; }
  }

  /* ---------- Proposta ---------- */
  .proposta-grid{ display:grid; gap:2.5rem; }
  .proposta-list{ display:flex; flex-direction:column; gap:1.1rem; }
  .proposta-item{ display:flex; gap:0.85rem; align-items:flex-start; }
  .proposta-item svg{ flex:none; margin-top:0.25rem; }
  .proposta-item p{ color:var(--ink); }
  @media (min-width:900px){
    .proposta-grid{ grid-template-columns:0.9fr 1.1fr; align-items:center; }
  }

  /* ---------- Servizi ---------- */
  .servizi-grid{ display:grid; gap:1.25rem; grid-template-columns:1fr; }
  .servizio-card{
    background:var(--surface); border-top:3px solid var(--blue); border-radius:var(--radius-s);
    padding:1.6rem 1.5rem 1.75rem; box-shadow:var(--shadow); display:flex; flex-direction:column; gap:0.9rem;
    transition:transform .2s ease, box-shadow .2s ease;
  }
  .servizio-card:hover{ transform:translateY(-4px); box-shadow:0 14px 28px rgba(16,21,74,0.14); }
  .servizio-card ul{ display:flex; flex-direction:column; gap:0.55rem; }
  .servizio-card li{ display:flex; gap:0.6rem; align-items:flex-start; color:var(--ink-soft); font-size:0.96rem; }
  .servizio-card li svg{ flex:none; margin-top:0.35rem; }
  @media (min-width:720px){ .servizi-grid{ grid-template-columns:1fr 1fr; } }

  /* ---------- Come funziona ---------- */
  .steps{ display:grid; gap:1.75rem; grid-template-columns:1fr; position:relative; }
  .step{ display:flex; gap:1rem; }
  .step-num{
    flex:none; width:2.6rem; height:2.6rem; border-radius:50%; background:var(--blue); color:var(--blue-ink);
    display:flex; align-items:center; justify-content:center; font-family:"Manrope",sans-serif; font-weight:800; font-size:1.05rem;
  }
  .step-body{ display:flex; flex-direction:column; gap:0.35rem; padding-top:0.3rem; }
  .step-body p{ color:var(--ink-soft); }
  @media (min-width:920px){
    .steps{ grid-template-columns:repeat(4,1fr); }
    .step{ flex-direction:column; gap:1rem; position:relative; }
    .step:not(:last-child)::after{
      content:""; position:absolute; top:1.3rem; left:calc(50% + 1.6rem); width:calc(100% - 1.2rem); height:2px;
      background:var(--line); transform-origin:left; transform:scaleX(0); transition:transform .7s ease;
    }
    .steps.is-visible .step:not(:last-child)::after{ transform:scaleX(1); }
  }

  /* ---------- Cliente ideale ---------- */
  .pullquote{
    border-left:4px solid var(--coral); padding-left:clamp(1.25rem,3vw,2rem); max-width:48rem;
  }
  .pullquote p{ font-family:"Manrope",sans-serif; font-weight:700; font-size:clamp(1.25rem,1.05rem + 0.8vw,1.6rem); color:var(--ink); line-height:1.35; max-width:none; }

  /* ---------- Chi sono ---------- */
  .chisono-grid{ display:grid; gap:2rem; }
  .chisono-photo-frame{ width:100%; max-width:280px; }
  .chisono-photo{
    width:100%; aspect-ratio:1/1; object-fit:cover; display:block;
    border-radius:var(--radius-m); box-shadow:0 20px 40px rgba(16,21,74,0.18);
  }
  .chisono-copy{ display:flex; flex-direction:column; gap:1rem; }
  .chisono-copy p{ color:var(--ink-soft); }
  @media (min-width:860px){
    .chisono-grid{ grid-template-columns:auto 1fr; align-items:start; }
  }

  /* ---------- CTA finale ---------- */
  .cta-band{ background:var(--blue-deep); color:#F4F1E8; border-radius:0; }
  .cta-band .container{ display:flex; flex-direction:column; gap:1.5rem; align-items:flex-start; padding-block:clamp(3rem,6vw,4.5rem); }
  .cta-band h2{ color:#F7F4EC; max-width:22ch; }
  .cta-band p{ color:var(--blue-deep-soft); max-width:46ch; font-size:var(--fs-lead); }

  /* ---------- Footer ---------- */
  footer.site-footer{ background:var(--surface-2); border-top:1px solid var(--line); }
  .footer-grid{ display:grid; gap:2.25rem; padding-block:clamp(2.5rem,5vw,3.5rem) 1.5rem; }
  .footer-col h3{ font-size:0.95rem; margin-bottom:0.9rem; }
  .footer-col p, .footer-col a{ color:var(--ink-soft); font-size:0.92rem; text-decoration:none; display:block; margin-bottom:0.55rem; }
  .footer-col a:hover{ color:var(--ink); }
  .footer-bottom{ border-top:1px solid var(--line); padding-block:1.25rem; display:flex; flex-direction:column; gap:0.5rem; font-size:0.82rem; color:var(--ink-faint); }
  .footer-bottom-row{ display:flex; flex-wrap:wrap; gap:0.75rem 1.5rem; justify-content:space-between; }
  @media (min-width:720px){ .footer-grid{ grid-template-columns:1.3fr 1fr 1fr 1fr; } }

  /* ---------- Privati page ---------- */
  .privati-hero{ padding-block:clamp(2.25rem,5vw,3.5rem) clamp(2.5rem,5vw,3.5rem); }
  .privati-hero h1{ font-size:clamp(1.9rem, 1.5rem + 1.8vw, 2.75rem); max-width:18ch; }
  .aree-grid{ display:grid; gap:1.25rem; grid-template-columns:1fr; }
  .area-card{ background:var(--surface); border-radius:var(--radius-m); padding:1.6rem 1.5rem; box-shadow:var(--shadow); display:flex; flex-direction:column; gap:0.9rem; transition:transform .2s ease, box-shadow .2s ease; }
  .area-card:hover{ transform:translateY(-4px); box-shadow:0 14px 28px rgba(16,21,74,0.14); }
  .area-card ul{ display:flex; flex-direction:column; gap:0.5rem; }
  .area-card li{ color:var(--ink-soft); font-size:0.96rem; padding-left:1.1rem; position:relative; }
  .area-card li::before{ content:""; position:absolute; left:0; top:0.55em; width:5px; height:5px; border-radius:50%; background:var(--coral); }
  @media (min-width:760px){ .aree-grid{ grid-template-columns:repeat(3,1fr); } }

  .callout{ border-radius:var(--radius-m); background:var(--coral-soft); padding:1.75rem clamp(1.5rem,3vw,2.25rem); display:flex; flex-direction:column; gap:0.75rem; }
  .callout h3{ color:var(--ink); }
  .callout p{ color:var(--ink); opacity:0.85; max-width:60ch; }

  .placeholder-block{ border:1px dashed var(--ink-faint); border-radius:var(--radius-m); padding:1.5rem 1.75rem; display:flex; flex-direction:column; gap:0.5rem; }
  .placeholder-block p{ color:var(--ink-soft); }
  .tag-placeholder{ display:inline-flex; align-self:flex-start; font-family:"Manrope",sans-serif; font-weight:700; font-size:0.72rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-faint); background:var(--surface-2); border:1px solid var(--line); padding:0.25rem 0.6rem; border-radius:var(--radius-pill); }

  /* ---------- Contatti page ---------- */
  .contatti-grid{ display:grid; gap:2.5rem; }
  .contact-form{ display:flex; flex-direction:column; gap:1.15rem; background:var(--surface); border-radius:var(--radius-m); padding:clamp(1.5rem,3vw,2.25rem); box-shadow:var(--shadow); }
  .field{ display:flex; flex-direction:column; gap:0.4rem; }
  .field label{ font-family:"Manrope",sans-serif; font-weight:700; font-size:0.88rem; color:var(--ink); }
  .field input[type="text"], .field input[type="email"], .field textarea, .field select{
    font-family:"Karla",sans-serif; font-size:1rem; padding:0.75rem 0.9rem; border-radius:var(--radius-s);
    border:1px solid var(--line); background:var(--bg); color:var(--ink); width:100%;
  }
  .field textarea{ resize:vertical; min-height:110px; }
  .radio-row{ display:flex; gap:1.5rem; flex-wrap:wrap; }
  .radio-opt{ display:flex; align-items:center; gap:0.5rem; font-size:0.95rem; color:var(--ink); }
  .form-note{ font-size:0.85rem; color:var(--ink-faint); }
  .form-success{ background:var(--surface-2); border:1px solid var(--line); border-radius:var(--radius-s); padding:1rem 1.1rem; color:var(--ink); font-size:0.95rem; }

  .info-panel{ display:flex; flex-direction:column; gap:1.5rem; }
  .info-card{ background:var(--surface-2); border-radius:var(--radius-m); padding:1.5rem 1.6rem; display:flex; flex-direction:column; gap:0.85rem; }
  .info-row{ display:flex; flex-direction:column; gap:0.15rem; }
  .info-row span.label{ font-family:"Manrope",sans-serif; font-weight:700; font-size:0.78rem; letter-spacing:0.04em; text-transform:uppercase; color:var(--ink-faint); }
  .info-row span.value{ font-size:1rem; color:var(--ink); font-variant-numeric:tabular-nums; }
  @media (min-width:960px){ .contatti-grid{ grid-template-columns:1.4fr 1fr; } }

  /* ---------- Privacy page ---------- */
  .privacy-note{ background:var(--coral-soft); border-radius:var(--radius-m); padding:1.25rem 1.5rem; color:var(--ink); font-size:0.95rem; max-width:60ch; }
  .legal-section{ display:flex; flex-direction:column; gap:0.6rem; padding-block:1.5rem; border-bottom:1px solid var(--line); }
  .legal-section:first-of-type{ border-top:1px solid var(--line); }



  section[id]{ scroll-margin-top:5.5rem; }

  /* ---------- Pagine di contenuto (servizi, guide, aree) ---------- */
  .crumbs{ display:flex; flex-wrap:wrap; align-items:center; gap:0.4rem; font-size:0.88rem; color:var(--ink-faint); margin-bottom:1.25rem; }
  .crumbs a{ color:var(--ink-soft); text-decoration:none; border-bottom:1px solid transparent; }
  .crumbs a:hover{ color:var(--ink); border-color:var(--ink-faint); }
  .crumbs [aria-current]{ color:var(--ink); }

  .page-hero{ padding-block:clamp(2.25rem,5vw,3.5rem) clamp(2.5rem,5vw,3.5rem); }
  .page-hero .section-head{ margin-bottom:0; max-width:48rem; }
  .page-hero h1{ font-size:clamp(1.9rem, 1.5rem + 1.8vw, 2.75rem); max-width:22ch; }
  .page-hero .lead{ font-size:var(--fs-lead); max-width:52ch; }
  .page-hero .hero-ctas{ margin-top:0.6rem; }

  .page-layout{ display:grid; gap:2.5rem; }
  @media (min-width:960px){ .page-layout{ grid-template-columns:minmax(0,1fr) 20rem; gap:3.5rem; align-items:start; } }
  .side-card{ background:var(--surface); border-top:3px solid var(--coral); border-radius:var(--radius-s); box-shadow:var(--shadow); padding:1.5rem; display:flex; flex-direction:column; gap:0.9rem; }
  .side-card p{ font-size:0.95rem; }
  .side-card .side-line{ font-size:0.92rem; color:var(--ink-soft); }
  .side-card .side-line a{ color:var(--blue); text-decoration:none; font-weight:700; }
  .side-card .side-line a:hover{ text-decoration:underline; }
  @media (min-width:960px){ .side-card{ position:sticky; top:6.5rem; } }

  .prose{ max-width:46rem; }
  .prose > * + *{ margin-top:1rem; }
  .prose h2{ font-size:clamp(1.4rem, 1.2rem + 0.9vw, 1.85rem); margin-top:2.5rem; }
  .prose h2:first-child{ margin-top:0; }
  .prose h3{ margin-top:1.75rem; }
  .prose p{ max-width:none; font-size:1.04rem; line-height:1.65; }
  .prose ul, .prose ol{ display:flex; flex-direction:column; gap:0.6rem; list-style:none; padding:0; }
  .prose ul li, .prose ol li{ color:var(--ink-soft); font-size:1.04rem; line-height:1.6; padding-left:1.4rem; position:relative; }
  .prose ul li::before{ content:""; position:absolute; left:0.15rem; top:0.72em; width:6px; height:6px; border-radius:50%; background:var(--coral); }
  .prose ol{ counter-reset:pr; }
  .prose ol li{ counter-increment:pr; padding-left:2.1rem; }
  .prose ol li::before{ content:counter(pr); position:absolute; left:0; top:0.1em; width:1.5rem; height:1.5rem; border-radius:50%; background:color-mix(in srgb, var(--blue) 14%, var(--surface)); color:var(--blue); font-family:"Manrope",sans-serif; font-weight:800; font-size:0.8rem; display:flex; align-items:center; justify-content:center; }
  .prose li strong, .prose p strong{ color:var(--ink); }
  .prose a{ color:var(--blue); text-underline-offset:3px; }
  .prose .callout{ margin-top:1.75rem; }
  .prose .callout p{ font-size:1rem; }

  .hub-grid{ display:grid; gap:1.25rem; grid-template-columns:1fr; }
  @media (min-width:720px){ .hub-grid{ grid-template-columns:1fr 1fr; } }
  .hub-card{ background:var(--surface); border-top:3px solid var(--blue); border-radius:var(--radius-s); padding:1.6rem 1.5rem 1.75rem; box-shadow:var(--shadow); display:flex; flex-direction:column; gap:0.75rem; text-decoration:none; transition:transform .2s ease, box-shadow .2s ease; }
  .hub-card:hover{ transform:translateY(-4px); box-shadow:0 14px 28px rgba(16,21,74,0.14); }
  .hub-card p{ font-size:0.96rem; }
  .hub-card .more{ margin-top:auto; padding-top:0.4rem; font-family:"Manrope",sans-serif; font-weight:700; font-size:0.95rem; color:var(--blue); }

  .related{ margin-top:2.75rem; padding-top:1.75rem; border-top:1px solid var(--line); }
  .related h2{ font-size:1.2rem !important; margin:0 0 0.9rem !important; }
  .related ul{ gap:0.5rem; }
  .related li::before{ display:none; }
  .related li{ padding-left:0 !important; }
  .related a{ font-weight:600; }

  .servizio-card .link-arrow{ margin-top:auto; align-self:flex-start; font-size:0.95rem; }
  .prose .town-list{ flex-direction:row; flex-wrap:wrap; gap:0.5rem; }
  .prose .town-list li{ padding:0.35rem 0.85rem; border:1px solid var(--line); border-radius:var(--radius-pill); background:var(--surface); font-size:0.95rem; color:var(--ink); }
  .prose .town-list li::before{ display:none; }

  .hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
  .form-success.is-error{ background:var(--coral-soft); color:var(--ink); }
  .form-note a{ color:var(--blue); }
  @media (min-width:960px){ .cta-mobile-only{ display:none; } }
