  /* ⚠ AGGIUNTA (trovata ESEGUENDO contro il sito servito, non leggendo il codice:
     verifica-impaginazione-home.mjs dava "ritmo verticale non uniforme, minimo 0px"
     su ogni sezione). L'oracolo (web/home/index.html:21) dichiara
     --content-width/--hero-width/--section-space sulla STESSA riga di :root; la
     porting di --content-width in --content (gia' in base.css, stesso valore
     1120px) ha portato via anche --section-space, che pero' NON ha un gemello
     condiviso — vive solo qui. Senza questa riga il token resta definito solo
     dentro le due media query sotto (<=980px e <=640px), quindi a schermo largo
     ogni sezione con padding:var(--section-space) crolla a 0 (proprieta' non
     risolvibile => valore iniziale). --hero-width non serve: l'hero e' "wide"
     dalla prova del 06-09 e non lo consuma piu' nessuna regola. */
  :root{--section-space:96px}
  *{box-sizing:border-box}
  body{margin:0}
  .doc{background:var(--page);color:var(--ink);font-family:var(--sans);line-height:1.6;-webkit-font-smoothing:antialiased}
  .need-card,.stage{transition:background-color var(--t),color var(--t),border-color var(--t),box-shadow var(--t),transform var(--t)}
  .wrap{max-width:none;margin:0;padding:0}

  h1{font-family:var(--serif);font-weight:600;font-size:clamp(1.9rem,5vw,2.7rem);line-height:1.1;letter-spacing:-.015em;margin:0 0 .9rem;text-wrap:balance}

  .stage{margin-top:0;border:0;border-radius:0;box-shadow:none;background:var(--card)}
  .st-hero{position:relative;overflow:hidden;background:linear-gradient(100deg,#F4F8FD 0%,#EAF2FB 46%,#DBE8F7 100%);margin-top:-106px;padding:134px 0 44px}
  .st-hero .hero-inner{position:relative;max-width:none;margin:0;padding:0 clamp(24px,5vw,88px)} /* prova 06-09: hero wide, fuori dal contenitore da 1280 */
  .stage > div:not(.st-hero):not(.site-header){padding-inline:max(24px,calc((100% - var(--content))/2))}
  .st-hero .hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.02fr .98fr;gap:16px;align-items:center;min-height:540px}
  .st-hero .hero-left{position:relative;z-index:4;display:flex;flex-direction:column;justify-content:center;padding:4px 0}
  .st-hero h1{font-family:var(--serif);color:var(--brand-deep);font-weight:600;font-size:clamp(32px,5vw,56px);line-height:1.04;letter-spacing:-.01em;margin:0;max-width:15ch;text-wrap:balance}
  .st-hero h1 p{margin:0}
  .st-hero h1 em{font-style:italic;font-weight:500;color:#C77A1E}
  .st-hero .sub{margin:11px 0 0;font-size:13px;color:var(--ink-soft);max-width:42ch}
  .st-hero .acts{margin-top:16px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
  .st-hero .b1{background:var(--amber);color:var(--ink);font-weight:700;font-size:12.5px;padding:11px 18px;border-radius:7px;text-decoration:none}
  .st-hero .b2{color:var(--brand-deep);font-weight:700;font-size:12.5px;padding:11px 15px;border-radius:7px;border:1.5px solid rgba(18,58,107,.22);text-decoration:none}
  .st-hero .recovered{margin-top:18px;display:flex;align-items:center;gap:10px}
  .st-hero .avatars{display:inline-flex}
  .st-hero .avatars i{width:26px;height:26px;border-radius:50%;border:2px solid #fff;margin-left:-8px;background:#B9CCE6;display:inline-block}
  .st-hero .avatars i:first-child{margin-left:0}
  .st-hero .rec-txt{display:flex;flex-direction:column;line-height:1.15}
  .st-hero .rec-txt b{font-family:var(--serif);color:var(--brand-deep);font-size:14px;font-weight:700}
  .st-hero .rec-txt span{font-size:10.5px;color:var(--ink-soft)}
  .st-hero .stats{margin-top:18px;display:flex;gap:28px}
  .st-hero .stat .n{font-family:var(--serif);font-weight:700;color:var(--brand-deep);font-size:24px;line-height:1}
  .st-hero .stat .t{font-size:10.5px;color:var(--ink-soft);margin-top:3px;font-weight:600}
  .st-hero .hero-visual{position:relative;min-height:310px}
  .st-hero::before{content:"";position:absolute;right:1%;bottom:-28%;width:62%;aspect-ratio:1;border-radius:50%;
    background:repeating-radial-gradient(circle, transparent 0 24px, rgba(31,95,168,.16) 24px 26px);
    -webkit-mask:radial-gradient(circle,#000 24%,transparent 70%);
    mask:radial-gradient(circle,#000 24%,transparent 70%);z-index:0}
  .doc-photo{position:absolute;bottom:-76px;left:64%;transform:translateX(-50%);height:560px;width:auto;max-width:600px;object-fit:contain;object-position:bottom;z-index:1;filter:drop-shadow(0 10px 16px rgba(18,58,107,.12))}
  .st-hero .hero-cards{position:absolute;top:0;bottom:0;right:2.5%;width:210px;z-index:3;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:16px;pointer-events:none}
  .st-hero .hc{width:202px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px 16px;box-shadow:0 22px 46px -22px rgba(18,58,107,.5),0 2px 6px rgba(18,58,107,.06);display:flex;flex-direction:column;gap:3px;animation:hcfloat 5.5s ease-in-out infinite}
  .st-hero .hc-v{font-family:var(--serif);font-weight:700;color:var(--brand-deep);font-size:27px;line-height:1;display:flex;align-items:baseline;gap:3px}
  .st-hero .hc-v i{font-style:normal;color:var(--amber);font-size:17px}
  .st-hero .hc-v small{font-size:16px;font-weight:600}
  .st-hero .hc-l{font-size:11px;color:var(--ink-soft);font-weight:600;line-height:1.25;white-space:nowrap}
  .st-hero .hc-v .g-logo{width:17px;height:17px;flex:none;align-self:center;margin-right:2px}
  .st-hero .hc-v .stars{color:var(--amber);font-size:12px;letter-spacing:.5px;margin-left:5px;align-self:center}
  .st-hero .hc1{margin-right:40px;animation-delay:0s}
  .st-hero .hc2{margin-right:-8px;animation-delay:.9s}
  .st-hero .hc3{margin-right:40px;animation-delay:1.8s}
  @keyframes hcfloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
  @media(prefers-reduced-motion:reduce){.st-hero .hc{animation:none}}
  @media(min-width:901px){
    .st-hero{min-height:0;display:flex;align-items:stretch}
    .st-hero .hero-inner{width:100%;height:clamp(650px,70svh,730px);display:flex}
    .st-hero .hero-grid{width:100%;flex:1;align-items:stretch}
    .st-hero h1{font-size:80px;line-height:.96;letter-spacing:-.025em;max-width:18ch}
    .st-hero .sub{max-width:48ch}
    .doc-photo{bottom:-44px}
  }
  @media(max-width:900px){.st-hero .hero-cards{display:none}}
  @media(max-width:900px) and (min-width:641px){.doc-photo{height:520px;left:58%}}
  .hero-dot{position:absolute;border-radius:50%;z-index:0}
  .hero-dot.d1{width:12px;height:12px;background:var(--amber);bottom:24%;left:-3%}
  .hero-dot.d2{width:13px;height:13px;background:var(--s4d);bottom:10%;right:8%;box-shadow:0 0 0 6px color-mix(in srgb,var(--s4d) 24%,transparent)}
  .hero-dot.d3{width:11px;height:11px;background:var(--s2d);top:13%;right:4%;box-shadow:0 0 0 6px color-mix(in srgb,var(--s2d) 24%,transparent)}
  @media(max-width:640px){
    .st-hero{padding:120px 0 0}
    .st-hero .hero-inner{padding-inline:22px}
    .st-hero .hero-grid{grid-template-columns:1fr;min-height:0;gap:0}
    .st-hero h1{font-size:clamp(42px,11vw,46px);line-height:.98;letter-spacing:-.02em;max-width:10.5ch}
    .st-hero .sub{margin-top:24px;font-size:14px;line-height:1.6;max-width:34ch}
    .st-hero .acts{margin-top:18px}
    .st-hero .hero-visual{min-height:280px;margin-top:18px}
    .st-hero::before{right:-42%;bottom:-18%;width:125%}
    .doc-photo{height:320px;left:60%;bottom:-28px}
  }
  @media(max-width:540px){.st-hero .b1{display:none}}
  /* Router per esigenze: orienta senza trasformarsi in diagnosi */
  .st-needs{background:#fff;padding:var(--section-space) 24px;border-bottom:1px solid var(--line)}
  .needs-shell{max-width:var(--content);margin:0 auto}
  .needs-head{display:block;margin-bottom:20px}
  .needs-head .lbl{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 8px;font-weight:700}
  .needs-head h2{font-family:var(--serif);font-size:clamp(24px,3vw,34px);line-height:1.08;color:var(--brand-deep);font-weight:600;letter-spacing:-.015em;margin:0;text-wrap:balance}
  .needs-head>p{max-width:52ch;margin:12px 0 0;color:var(--ink-soft);font-size:13.5px;line-height:1.6}
  .needs-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
  .need-card{--need:var(--brand);position:relative;overflow:hidden;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;min-height:102px;padding:18px 16px 18px 20px;background:#fff;border:1px solid var(--line);border-radius:16px;color:var(--ink);text-decoration:none;box-shadow:0 14px 34px -32px rgba(0,52,82,.8)}
  .need-card::before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--need-bar,var(--need))}
  .need-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--need) 38%,var(--line));box-shadow:0 20px 38px -28px rgba(0,52,82,.42)}
  .need-card:focus-visible{outline:3px solid color-mix(in srgb,var(--need) 32%,white);outline-offset:3px}
  .need-mark{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--need) 12%,white);color:var(--need)}
  .need-mark svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .need-copy{display:flex;flex-direction:column;min-width:0}
  .need-copy small{font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);font-weight:700;line-height:1.3}
  .need-copy strong{font-family:var(--serif);font-size:16px;line-height:1.15;color:var(--brand-deep);font-weight:600;margin-top:4px}
  .need-arrow{font-size:17px;color:var(--need);font-weight:700}

  /* Come funziona: una cartella di percorso fotografica */
  .st-how{background:#fff;padding:var(--section-space) 24px;border-bottom:1px solid var(--line)}
  .journey-shell{position:relative;max-width:var(--content);margin:0 auto;padding:48px 42px 38px;border:1px solid #CEDAE8;border-radius:0 24px 24px 24px;background:linear-gradient(145deg,#F6F9FC,#EAF1F8);box-shadow:0 28px 60px -52px rgba(0,52,82,.8)}
  .journey-tab{position:absolute;left:-1px;top:-32px;height:33px;display:flex;align-items:center;padding:0 22px;border-radius:12px 12px 0 0;background:var(--brand-deep);color:#fff;font-size:10px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
  .journey-head{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(240px,.85fr);gap:52px;align-items:end;margin-bottom:38px}
  .journey-head .lbl{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 10px;font-weight:700}
  .journey-head h3{font-family:var(--serif);font-size:clamp(28px,3.8vw,43px);line-height:1.06;color:var(--brand-deep);font-weight:600;letter-spacing:-.018em;margin:0;max-width:19ch;text-wrap:balance}
  .journey-head>p{font-size:14px;line-height:1.7;color:var(--ink-soft);margin:0;max-width:44ch}
  .journey-list{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;list-style:none;margin:0;padding:52px 0 0}
  .journey-list::before{content:"";position:absolute;z-index:0;top:17px;left:12.5%;right:12.5%;height:2px;background:#BFCEDF}
  .journey-step{position:relative;padding:0 12px 6px}
  .journey-scene{position:relative;display:grid;place-items:center;aspect-ratio:4/3;overflow:hidden;border-radius:15px;background:linear-gradient(150deg,#fff,#DDE8F3);border:1px solid rgba(0,68,120,.1);color:var(--brand);box-shadow:0 18px 34px -30px rgba(0,52,82,.8)}
  .journey-step:nth-child(2) .journey-scene,.journey-step:nth-child(4) .journey-scene{background:linear-gradient(150deg,#FFF9F1,#F4E4CC);color:#A45E11}
  .journey-scene img{display:block;width:100%;height:100%;object-fit:cover}
  .journey-scene svg{width:45px;height:45px;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round}
  .journey-index{position:absolute;z-index:2;top:-52px;left:50%;width:36px;height:36px;display:grid;place-items:center;transform:translateX(-50%);border-radius:50%;background:var(--amber);box-shadow:0 0 0 6px #EFF4F9,0 8px 18px -12px rgba(139,78,9,.75);color:var(--brand-deep);font-size:9.5px;font-weight:800;line-height:1;letter-spacing:.05em;opacity:1}
  .journey-index::after{content:"";position:absolute;top:calc(100% + 5px);left:50%;width:1px;height:11px;transform:translateX(-50%);background:#BFCEDF}
  .journey-phase{display:block;margin-top:18px;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--brand);font-weight:800}
  .journey-step h4{font-family:var(--serif);font-weight:600;color:var(--brand-deep);font-size:20px;line-height:1.15;margin:6px 0 8px}
  .journey-step p{color:var(--ink-soft);font-size:12.5px;line-height:1.6;margin:0;max-width:29ch}
  .journey-note{display:flex;align-items:center;gap:10px;margin:30px 0 0;padding-top:22px;border-top:1px solid #CAD5E2;color:var(--ink-soft);font-size:12.5px}
  .journey-note::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 5px color-mix(in srgb,var(--amber) 18%,transparent);flex:none}
  /* 6 — Recensioni */
  .st-reviews{background:var(--page);padding:var(--section-space) 24px;border-bottom:1px solid var(--line)}
  .rev-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:26px}
  .rev-head .lbl{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin:0;font-weight:700}
  .rev-score{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--brand-deep);font-size:14px}
  .rev-score .g{width:18px;height:18px;flex:none}
  .rev-score .stars{color:var(--amber);letter-spacing:1px;font-size:13px}
  .review-carousel{position:relative}
  .review-track{display:flex;align-items:stretch;gap:20px;overflow-x:auto;padding:4px 2px 14px;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;overscroll-behavior-x:contain}
  .review-track::-webkit-scrollbar{display:none}
  .review-slide{position:relative;display:flex;flex:0 0 calc(50% - 10px);flex-direction:column;min-height:238px;margin:0;padding:30px 30px 24px;scroll-snap-align:start;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 22px 46px -38px rgba(0,52,82,.62)}
  .review-mark{height:30px;color:var(--amber);font-family:var(--serif);font-size:52px;line-height:.7}
  .review-slide p{margin:18px 0 24px;color:var(--brand-deep);font-family:var(--serif);font-size:clamp(18px,1.7vw,23px);font-weight:500;line-height:1.42}
  .review-slide footer{margin-top:auto;padding-top:17px;border-top:1px solid var(--line);color:var(--ink-soft);font-size:12px;font-weight:600}
  .review-controls{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:14px}
  .review-carousel-button{width:44px;height:44px;display:grid;place-items:center;padding:0;color:var(--brand-deep);background:#fff;border:1px solid var(--line);border-radius:50%;cursor:pointer;transition:color .2s var(--ease),border-color .2s var(--ease),background-color .2s var(--ease)}
  .review-carousel-button:hover{color:#fff;background:var(--brand-deep);border-color:var(--brand-deep)}
  .review-carousel-button:disabled{opacity:.35;cursor:default;color:var(--ink-soft);background:#fff;border-color:var(--line)}
  .review-carousel-button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
  .review-carousel-button:focus-visible,.review-track:focus-visible{outline:3px solid color-mix(in srgb,var(--brand) 35%,white);outline-offset:3px}
  .review-counter{min-width:82px;color:var(--ink-soft);font-size:12px;font-weight:750;letter-spacing:.08em;text-align:center;font-variant-numeric:tabular-nums}
  @media(prefers-reduced-motion:reduce){.review-track{scroll-behavior:auto}}
  /* 7 — Dove siamo e come prenotare */
  .st-where{background:var(--brand-deep);color:#DCE7F5;padding:var(--section-space) 24px}
  .where-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:44px;align-items:center}
  .where-txt .lbl{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#8FB0D6;margin:0 0 14px;font-weight:700}
  .where-txt h3{font-family:var(--serif);font-weight:600;color:#fff;font-size:clamp(22px,3vw,30px);line-height:1.15;margin:0 0 22px;text-wrap:balance}
  .where-txt p{margin:0 0 12px;font-size:15px;line-height:1.6;color:#C4D5EC}
  .where-txt p b{color:#fff}
  .where-txt em{font-style:normal;color:#8FB0D6;font-size:13px}
  .where-cta{display:inline-block;margin-top:14px;background:var(--amber);color:var(--ink);font-weight:700;font-size:15px;padding:13px 26px;border-radius:8px;text-decoration:none}
  .where-map{aspect-ratio:16/11;border-radius:16px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);display:grid;place-items:center}
  .where-map .mtag{background:rgba(255,255,255,.12);padding:8px 15px;border-radius:99px;font-weight:600;font-size:13px;color:#C4D5EC}
  @media(max-width:980px){
    :root{--section-space:80px}
    .needs-grid{grid-template-columns:1fr 1fr}
    .journey-list{grid-template-columns:1fr;grid-auto-rows:1fr;gap:0;padding:0}
    .journey-list::before{top:18px;left:17px;right:auto;width:2px;height:75%}
    .journey-step,.journey-step:first-child,.journey-step:nth-child(3),.journey-step:last-child{display:grid;grid-template-columns:36px minmax(160px,200px) minmax(0,1fr);grid-template-rows:auto auto 1fr;column-gap:18px;align-items:start;padding:0 0 30px;border:0}
    .journey-index{position:relative;top:auto;left:auto;grid-column:1;grid-row:1/4;align-self:start;width:36px;height:36px;transform:none;box-shadow:0 0 0 6px #EFF4F9,0 8px 18px -12px rgba(139,78,9,.75)}
    .journey-index::after{display:none}
    .journey-scene{grid-column:2;grid-row:1/4;width:100%;z-index:1}
    .journey-phase,.journey-step h4,.journey-step p{grid-column:3}
    .journey-phase{grid-row:1;margin:0}
    .journey-step h4{grid-row:2;margin:5px 0 7px}
    .journey-step p{grid-row:3}
  }
  @media(max-width:820px){.review-slide{flex-basis:100%}}
  @media(max-width:760px){.where-grid{grid-template-columns:1fr;gap:28px}.journey-head{grid-template-columns:1fr;gap:18px}.journey-head h3{max-width:21ch}.review-slide{min-height:220px;padding:25px 23px 21px}.review-slide p{font-size:19px}}
  .st-cards{background:#F5F8FC;padding:var(--section-space) 24px;border-bottom:1px solid var(--line)}
  .st-cards .lbl{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 12px;font-weight:700}
  .cards-split{display:grid;grid-template-columns:.82fr 1.18fr;gap:14px;align-items:stretch}
  .cards-3{display:grid;grid-template-columns:1fr 1fr;gap:14px}
  .cards-3 .svc-card:last-child{grid-column:auto}
  .svc-card-link{color:inherit;text-decoration:none}.svc-card-link::after{content:"";position:absolute;inset:0;border-radius:inherit}.svc-card:has(.svc-card-link):hover{transform:translateY(-2px)}
.svc-card.feat{padding:28px 28px 26px}
  .svc-card.feat .svc-ico{width:78px;height:78px;opacity:.13;right:18px;bottom:16px}
  .svc-card.feat .feat-eyebrow{position:relative;z-index:1;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--brand);font-weight:700}
  .svc-card.feat h4{position:relative;z-index:1;font-size:27px;margin:14px 0 12px}
  .svc-card.feat p{position:relative;z-index:1;font-size:14.5px;line-height:1.6;max-width:40ch;margin:0}
  .svc-card.feat p b{color:var(--brand-deep)}
  .svc-card.feat .feat-price{position:relative;z-index:1;margin:20px 0 0;font-size:14px;color:var(--brand-deep);font-weight:700}
  .svc-card.feat .feat-price em{font-style:normal;color:var(--ink-soft);font-weight:500;font-size:12.5px}
  .svc-card.feat .feat-cta{position:relative;z-index:1;display:inline-flex;align-items:center;gap:8px;margin-top:auto;align-self:flex-start;background:var(--brand-deep);color:#fff;font-weight:700;font-size:14px;padding:12px 20px;border-radius:10px;text-decoration:none}
  .svc-card.feat .feat-cta svg{width:16px;height:16px}
  @media(max-width:720px){.cards-split{grid-template-columns:1fr}.cards-3{grid-template-columns:1fr 1fr}}
  .svc-card{border:0;border-radius:18px;padding:16px 16px 14px;display:flex;flex-direction:column;min-height:140px;position:relative;overflow:hidden}
  .svc-card h4,.svc-card p,.svc-card .go{position:relative;z-index:1}
  .svc-ico{position:absolute;right:11px;bottom:11px;width:60px;height:60px;opacity:.16;z-index:0;fill:none;stroke:currentColor;stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round}
  .svc-card h4{font-size:14px;font-weight:800;margin:0 0 11px;color:#003452;line-height:1.15}
  .svc-card p{font-size:11.5px;color:#33465C;margin:0 0 20px;line-height:1.55;max-width:80%}
  .svc-card .go{margin-top:auto;align-self:flex-start;width:38px;height:38px;border-radius:12px;background:#003452;color:#fff;display:grid;place-items:center}
  .svc-card .go svg{width:17px;height:17px}


  @keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
  .stage{animation:rise .7s var(--ease) both}
  @media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
  /* Il centro e le persone */
  .st-center{background:#fff;padding:var(--section-space) 24px;border-bottom:1px solid var(--line)}
  .center-grid{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(0,1.1fr);gap:clamp(42px,7vw,92px);align-items:center;max-width:var(--content);margin:0 auto}
  .center-visual{position:relative;min-height:490px}
  .center-photo{display:grid;place-items:center;text-align:center;color:#71849D;font-size:12px;line-height:1.55;padding:24px;border:1px solid #CBD8E8;background:linear-gradient(160deg,#F2F6FB,#E4EDF7)}
  .center-photo-main{position:absolute;inset:0 auto 0 0;width:74%;border-radius:18px}
  .center-photo-team{position:absolute;right:0;bottom:30px;width:49%;aspect-ratio:4/3;border-radius:14px;background:linear-gradient(145deg,#fff,#EDF3F9);box-shadow:0 24px 50px -28px rgba(0,52,82,.55)}
  /* AGGIUNTA — fix round 1 (Important del revisore, trovato eseguendo: l'oracolo
     non ha mai un <img> reale in questi due riquadri, solo il segnaposto <span>,
     quindi il gap non si vedeva finche' i due campi immagine di questo task
     restavano vuoti). Stesso idioma gia' in uso per .journey-scene/.journey-scene
     img poche righe sopra in questo stesso file: senza overflow:hidden la foto
     non viene tagliata dal border-radius, senza object-fit:cover un'immagine con
     proporzioni diverse dal riquadro lo deforma o ne esce. */
  .center-photo-main,.center-photo-team{overflow:hidden}
  .center-photo-main img,.center-photo-team img{display:block;width:100%;height:100%;object-fit:cover}
  .center-photo strong{display:block;color:var(--brand-deep);font-family:var(--serif);font-size:15px;font-weight:600;margin-bottom:4px}
  .center-copy .klbl,.st-path .lbl,.st-info .lbl{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);font-weight:700;margin:0 0 12px}
  .center-thesis{font-size:12px;font-weight:700;color:var(--brand);margin:0 0 10px}
  .center-copy h3{font-family:var(--serif);font-weight:600;color:var(--brand-deep);font-size:clamp(27px,3.6vw,42px);line-height:1.08;letter-spacing:-.015em;margin:0;max-width:18ch;text-wrap:balance}
  .center-copy>p:not(.klbl):not(.center-thesis):not(.center-caption){font-size:15px;color:var(--ink-soft);line-height:1.75;margin:18px 0 0;max-width:54ch}
  .center-roles{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}
  .center-role b{display:block;color:var(--brand-deep);font-size:13px;margin-bottom:4px}
  .center-role span{display:block;color:var(--ink-soft);font-size:12px;line-height:1.5}
  .center-caption{margin:20px 0 0;color:#7A8798;font-size:11.5px;line-height:1.55}

  /* Percorso RMN + ortopedia: elemento distintivo della home */
  .st-path{background:#fff;padding:var(--section-space) 24px;border-bottom:1px solid var(--line)}
  .path-shell{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,.92fr) minmax(420px,1.08fr);gap:50px;align-items:center;max-width:var(--content);margin:0 auto;padding:clamp(34px,5vw,58px);border-radius:26px;background:linear-gradient(118deg,var(--s1b) 0 48%,#F8FAFC 48% 52%,var(--s4b) 52% 100%);border:1px solid color-mix(in srgb,var(--brand) 12%,transparent)}
  .path-copy{position:relative;z-index:1}
  .path-labels{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
  .path-labels .lbl{margin:0}
  .path-day{display:inline-flex;align-items:center;gap:7px;padding:5px 10px;border-radius:99px;background:rgba(255,255,255,.68);border:1px solid rgba(84,97,197,.18);color:var(--brand-deep);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
  .path-day::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 4px color-mix(in srgb,var(--amber) 17%,transparent)}
  .path-copy h3{font-family:var(--serif);font-weight:600;color:var(--brand-deep);font-size:clamp(28px,3.8vw,44px);line-height:1.07;letter-spacing:-.018em;margin:0;max-width:16ch;text-wrap:balance}
  .path-copy p{color:#45566C;font-size:14.5px;line-height:1.7;margin:17px 0 0;max-width:48ch}
  .path-cta{display:inline-flex;align-items:center;gap:9px;margin-top:24px;color:#fff;background:var(--brand-deep);font-size:13.5px;font-weight:700;text-decoration:none;padding:12px 18px;border-radius:9px}
  .path-cta svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
  .path-route{position:relative;z-index:1;display:flex;flex-direction:column;width:min(100%,430px);justify-self:center}
  .route-service{min-height:132px;padding:22px 24px;border-radius:19px;background:rgba(255,255,255,.88);border:1px solid rgba(255,255,255,.94);box-shadow:0 24px 48px -34px rgba(0,52,82,.58);display:grid;grid-template-columns:34px minmax(0,1fr);gap:16px;align-items:center}
  .route-service::before{content:"";width:13px;height:13px;margin-left:7px;border-radius:50%;background:var(--route-color);box-shadow:0 0 0 7px color-mix(in srgb,var(--route-color) 15%,transparent)}
  .route-service small{display:block;color:var(--ink-soft);font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
  .route-service strong{display:block;color:var(--brand-deep);font-family:var(--serif);font-size:21px;line-height:1.15;margin-top:5px}
  .route-rmn{--route-color:var(--s1d)}
  .route-ortho{--route-color:var(--s4d)}
  .route-link{width:2px;height:42px;margin-left:30px;background:linear-gradient(var(--s1d),var(--s4d))}
  .route-duration{margin:16px 0 0;padding:16px 4px 0;border-top:1px solid rgba(0,52,82,.14);color:var(--ink-soft);font-size:12.5px;line-height:1.55}
  .route-duration strong{color:var(--brand-deep);font-weight:800}

  /* Informazioni pratiche */
  .st-info{background:var(--page);padding:var(--section-space) 24px;border-bottom:1px solid var(--line)}
  .info-grid{display:grid;grid-template-columns:minmax(230px,.68fr) minmax(0,1.32fr);gap:clamp(44px,8vw,100px);max-width:var(--content);margin:0 auto}
  .info-intro h3{font-family:var(--serif);font-weight:600;color:var(--brand-deep);font-size:clamp(26px,3.4vw,39px);line-height:1.1;letter-spacing:-.015em;margin:0;max-width:13ch;text-wrap:balance}
  .info-intro p{font-size:13.5px;color:var(--ink-soft);line-height:1.65;margin:15px 0 0;max-width:34ch}
  .info-list{border-top:1px solid #CBD5E1}
  .info-item{display:grid;grid-template-columns:140px 1fr;gap:24px;padding:20px 0;border-bottom:1px solid #CBD5E1}
  .info-item h4{font-family:var(--sans);font-size:13px;font-weight:800;color:var(--brand-deep);margin:0}
  .info-item p{font-size:13.5px;color:var(--ink-soft);line-height:1.6;margin:0;max-width:58ch}


  @media(max-width:900px){
    .center-grid{grid-template-columns:.88fr 1.12fr;gap:38px}.center-visual{min-height:420px}
    .path-shell{grid-template-columns:1fr;gap:36px;background:linear-gradient(145deg,var(--s1b),#F8FAFC 50%,var(--s4b))}.path-copy h3{max-width:21ch}
    .info-grid{grid-template-columns:1fr;gap:34px}.info-intro h3{max-width:18ch}
  }
  @media(max-width:640px){
    :root{--section-space:72px}
    .needs-head{display:block}.needs-head>p{margin-top:10px}.needs-grid{grid-template-columns:1fr}.need-card{min-height:88px}
    .center-grid{grid-template-columns:1fr;gap:34px}.center-visual{min-height:390px}.center-photo-main{width:82%}.center-photo-team{width:54%;bottom:18px}.center-roles{grid-template-columns:1fr}
    .path-shell{padding:30px 22px;border-radius:20px}.path-route{width:100%}.route-service{min-height:118px;padding:19px}.route-link{height:34px;margin-left:26px}.route-duration{font-size:12px}
    .st-how{padding-inline:18px}.journey-shell{padding:38px 20px 28px;border-radius:0 18px 18px 18px}.journey-tab{left:-1px;padding-inline:18px}.journey-list{grid-template-columns:1fr;grid-auto-rows:1fr;padding:0}.journey-list::before{display:block;top:15px;left:14px;width:2px;height:75%}.journey-step,.journey-step:first-child,.journey-step:nth-child(3),.journey-step:last-child{grid-template-columns:30px 82px minmax(0,1fr);column-gap:12px;padding:0 0 24px;border:0}.journey-scene{grid-column:2;grid-row:1/4;width:82px;height:62px;aspect-ratio:4/3;border-radius:10px;z-index:1}.journey-index{display:grid;grid-column:1;grid-row:1/4;width:30px;height:30px;font-size:8.5px;box-shadow:0 0 0 5px #EFF4F9,0 8px 18px -12px rgba(139,78,9,.75)}.journey-phase,.journey-step h4,.journey-step p{grid-column:3}.journey-note{margin-top:18px}
    .info-item{grid-template-columns:1fr;gap:7px;padding:17px 0}
  }
  @media(max-width:460px){.cards-3{grid-template-columns:1fr}.cards-3 .svc-card:last-child{grid-column:auto}}

  /* Mezza stella: il voto lo scrive il centro, il disegno lo fa il tema.
     Nell'oracolo erano cinque stelle di testo scritte a mano in DUE punti
     accanto a un voto modificabile: a 4,8 la pagina avrebbe detto una cosa falsa. */
  .stars .stella-mezza{display:inline-block;width:.5em;overflow:hidden;vertical-align:top}
  .stars .stella-vuota{opacity:.28}

  /* Il colore della card viene dalla classe del servizio, non da uno style
     inline nel markup (nell'oracolo: style="background:var(--s1f);--acc:var(--s1d)"):
     cosi' la card e la sua pagina non possono finire di due colori diversi. */
  .svc-card.service-rmn{background:var(--s1f);--acc:var(--s1d)}
  .svc-card.service-eco{background:var(--s2f);--acc:var(--s2d)}
  .svc-card.service-rx{background:var(--s3f);--acc:var(--s3d)}
  .svc-card.service-orto{background:var(--s4f);--acc:var(--s4d)}
  .svc-card.service-psi{background:var(--s5f);--acc:var(--s5d)}
  .svc-card .svc-ico{color:var(--acc)}

  /* La mappa: nell'oracolo .where-map contiene solo una pastiglia di testo, e
     l'iframe non c'era. Senza queste due righe un iframe dentro un contenitore
     aspect-ratio esce a 300x150. */
  .where-map iframe{width:100%;height:100%;border:0;display:block;border-radius:inherit}
