





/* Bozza SEO. Stessa grafica della bozza finale, con le correzioni dell'analisi:
   - quattro soli punti di rottura: 640 (telefono largo), 768 (tablet), 1024 (computer), 1280;
   - le etichette in maiuscoletto sono i veri titoli per Google (h1/h2 con le parole cercate),
     le frasi grandi restano identiche a vista come paragrafi .display;
   - testi mai sotto gli 11px, bersagli di tocco da 44px, telefono sempre in alto;
   - l'auto dell'apertura e' visibile dal primo istante (entra con una animazione CSS su
     "translate", senza dissolvenza), cosi' Google la misura subito.
   Tipografia: Barlow 400 e 600, Barlow Condensed 700. Identita' dal biglietto da visita. */
:root{
  color-scheme:light;
  --ink:var(--wp--preset--color--ink);
  --muted:var(--wp--preset--color--muted);
  --paper:var(--wp--preset--color--paper);
  --tint:var(--wp--preset--color--soft);
  --line:var(--wp--custom--line);
  --rule-dark:var(--wp--custom--rule-dark);
  --on-dark:var(--wp--custom--on-dark);
  --on-dark-2:var(--wp--custom--on-dark-secondary);
  --yellow:var(--wp--preset--color--yellow);
  --yellow-hi:var(--wp--custom--yellow-highlight);
  --leaf-lg:var(--wp--custom--radius--leaf);
  --leaf-sm:var(--wp--custom--radius--button);
  --f-title:var(--wp--preset--font-family--display);
  --f-body:var(--wp--preset--font-family--body);
  --f-sign:var(--wp--preset--font-family--signature);
  --ease-out:cubic-bezier(.16,1,.3,1);
}
*{box-sizing:border-box}
@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-body);font-weight:400;font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--paper)}
[hidden]{display:none!important}
h1,h2,h3,p,figure{margin:0}
h1,h2,.display{font-family:var(--f-title);font-weight:700;line-height:1.04;letter-spacing:-.01em;text-wrap:balance}
h2,.display{font-size:clamp(37px,4vw,48px)}
.display span,.hook span{display:block}
h3{font-size:23px;font-weight:600;line-height:1.2;letter-spacing:-.3px}
a{color:inherit}
img{display:block;max-width:100%}
[id]{scroll-margin-top:84px}
.wrap{max-width:1200px;margin:0 auto;padding-left:max(18px,env(safe-area-inset-left,0px));padding-right:max(18px,env(safe-area-inset-right,0px))}
@media(min-width:768px){.wrap{padding-left:36px;padding-right:36px}}
:where(a,button,summary):focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.dark :where(a,button):focus-visible{outline-color:var(--yellow)}
.dark{background:var(--ink);color:#fff}
/* etichetta in maiuscoletto: quando e' un h1/h2 porta le parole chiave per Google */
.eyebrow{font-family:var(--f-body);font-size:11px;font-weight:600;letter-spacing:1.4px;line-height:1.6;text-transform:uppercase;text-wrap:pretty;margin:0 0 14px}
.copy-s{font-size:15px;line-height:1.7;color:var(--muted)}
.dark .copy-s{color:var(--on-dark)}
.ico{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* testo a due toni del marchio: sopra il colore del fondo, sotto il giallo */
.duo{background:linear-gradient(180deg,var(--ink) 54%,var(--yellow) 54%);-webkit-background-clip:text;background-clip:text;color:transparent}
.dark .duo{background-image:linear-gradient(180deg,#fff 54%,var(--yellow) 54%)}

/* marchio */
.brand{display:inline-flex;align-items:center;gap:8px;min-height:44px;text-decoration:none;line-height:1;white-space:nowrap}
.word{font-weight:600;font-size:28px;letter-spacing:-1px}
.badge{display:grid;place-items:center;background:var(--yellow);color:var(--ink);font-weight:600;font-size:14px;line-height:1;padding:6px 8px;border-radius:11px 2px 11px 2px;border:1.5px solid var(--ink)}
.dark .badge{border-color:var(--yellow)}
@media(min-width:768px){.word{font-size:32px}.badge{font-size:16px;padding:7px 9px}}

/* barra: il telefono c'e' sempre, a ogni misura */
.nav{position:relative;z-index:50;background:var(--paper);border-bottom:1px solid var(--line)}
.nav-in{display:flex;align-items:center;gap:8px;height:64px}
.links{display:none;gap:26px;margin-left:auto;font-weight:600;font-size:14px}
.links a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none}
.links a:hover{text-decoration:underline;text-decoration-color:var(--yellow);text-decoration-thickness:2px;text-underline-offset:7px}
.lang{display:flex;margin-left:auto}
.lang button{min-width:40px;min-height:44px;padding:0 6px;font:600 12px var(--f-body);background:none;border:0;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent}
.lang button[aria-pressed="true"]{color:var(--ink);border-bottom-color:var(--yellow)}
.wp-block-button.navtel > .wp-block-button__link{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border-radius:var(--leaf-sm);background:var(--ink);color:#fff;font-weight:600;font-size:14px;text-decoration:none;white-space:nowrap;font-variant-numeric:tabular-nums}
.wp-block-button.navtel > .wp-block-button__link .ico{width:17px;height:17px}
.wp-block-button.navtel > .wp-block-button__link .telnum{display:none}
@media(min-width:768px){.nav-in{gap:24px;height:72px}.wp-block-button.navtel > .wp-block-button__link .telnum{display:inline}.wp-block-button.navtel > .wp-block-button__link .short{display:none}}
@media(min-width:1024px){.links{display:flex}.lang{margin-left:0}}

/* bottoni: due soli inviti in tutta la pagina, "Chiama Francesco" e "Scrivi su WhatsApp" */
.wp-block-button.btn > .wp-block-button__link{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;font:600 15px/1.3 var(--f-body);min-height:50px;padding:14px 22px;border-radius:var(--leaf-sm);border:2px solid transparent;text-decoration:none;cursor:pointer;transition:transform .14s var(--ease-out),background-color .14s,color .14s}
.wp-block-button.btn > .wp-block-button__link:active{transform:translateY(1px)}
.wp-block-button.btn-ink > .wp-block-button__link{background:var(--ink);color:#fff}
.wp-block-button.btn-ink > .wp-block-button__link:hover{background:#3b4549}
.wp-block-button.btn-line > .wp-block-button__link{background:transparent;color:var(--ink);border-color:var(--ink);border-width:1px}
.wp-block-button.btn-line > .wp-block-button__link:hover{background:var(--tint)}
.dark .wp-block-button.btn-pri > .wp-block-button__link{background:var(--yellow);color:var(--ink)}
.dark .wp-block-button.btn-pri > .wp-block-button__link:hover{background:var(--yellow-hi)}
.dark .wp-block-button.btn-line > .wp-block-button__link{color:#fff;border-color:#fff}
.dark .wp-block-button.btn-line > .wp-block-button__link:hover{background:rgba(255,255,255,.08)}
.acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}

/* apertura: impostazione della proposta B. Su telefono e tablet il testo sta sopra e l'auto
   sotto a tutta larghezza; dal computer in su le due colonne della proposta. */
.stripes{position:absolute;left:0;right:0;z-index:1;display:grid}
.stripes i{display:block}
.hero{position:relative;background:var(--paper);overflow-x:clip}
.hero-in{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;padding-block:28px 28px;align-items:center}
.hero-copy{position:relative;z-index:2}
.hero h1{letter-spacing:-.015em}
.hero h1 .kicker{display:block;font-family:var(--f-body);font-size:12px;font-weight:600;letter-spacing:1.3px;line-height:1.55;text-transform:uppercase;text-wrap:pretty;margin-bottom:16px;max-width:30em}
.hero h1 .big{display:block;font-size:clamp(58px,16vw,83px);line-height:1}
.hero h1 .big span{display:inline}
.hero h1 .big .l1{display:block}
.hero-description{font-size:16px;line-height:1.55;color:var(--muted);margin-top:20px}
.hero-description span{display:block}
.hero-contact{display:flex;flex-wrap:wrap;align-items:center;gap:14px 18px;margin-top:22px}
.wp-block-button.callbtn > .wp-block-button__link{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;white-space:nowrap;font:600 15px/1.3 var(--f-body);padding:14px 18px;border:1px solid var(--ink);border-radius:var(--leaf-sm);background:var(--ink);color:#fff;text-decoration:none;transition:background-color .18s,transform .18s var(--ease-out)}
.wp-block-button.callbtn > .wp-block-button__link:hover{background:#10191d;transform:translateY(-2px)}
.wp-block-button.callbtn > .wp-block-button__link:active{transform:translateY(1px)}
.wp-block-button.callbtn > .wp-block-button__link .ico{width:19px;height:19px}
.wp-block-button.callbtn > .wp-block-button__link .go{width:18px;height:18px;transition:transform .25s var(--ease-out)}
.wp-block-button.callbtn > .wp-block-button__link:hover .go{transform:translateX(3px)}
.wp-block-button.hero-number > .wp-block-button__link{display:block;font-size:21px;font-weight:600;line-height:1.2;white-space:nowrap;text-decoration:none;font-variant-numeric:tabular-nums}
.wp-block-button.hero-number > .wp-block-button__link small{display:flex;align-items:center;gap:8px;margin-top:6px;font-size:12px;font-weight:600;letter-spacing:0;color:var(--ink)}
.tag{display:inline-block;padding:3px 7px;border-radius:7px 2px 7px 2px;background:var(--yellow);color:var(--ink);font-size:11px;font-weight:600;line-height:1.2}
.explore{display:none;align-items:center;gap:16px;min-height:44px;margin-top:24px;font-size:13px;color:var(--muted);text-decoration:none}
.explore .ico{width:18px;height:18px;transition:transform .25s var(--ease-out)}
.explore:hover{color:var(--ink)}
.explore:hover .ico{transform:translateX(4px)}
.hero-visual{position:relative;min-height:300px;width:100%;display:flex;align-items:center;justify-content:center}
.yellow-panel{position:absolute;inset:4px 0 22px;background:var(--yellow);border-radius:45px 5px;overflow:hidden;will-change:transform}
.hero-car{position:relative;z-index:1;width:108%;max-width:none;flex-shrink:0;margin:10px 0 0 -4%;will-change:transform}
.car-img{width:100%;height:auto}
/* ingresso in CSS: l'auto e' dipinta e visibile da subito, scivola solo di lato. L'ingresso
   e' sull'immagine, lo scorrimento GSAP sul contenitore: non si contendono la stessa proprieta'. */
@media(prefers-reduced-motion:no-preference){
  .yellow-panel{animation:panel-in .9s cubic-bezier(.65,0,.35,1) both}
  .car-img{animation:car-in 1.2s cubic-bezier(.16,1,.3,1) .35s both}
}
@keyframes panel-in{from{clip-path:inset(0 0 0 100%)}}
@keyframes car-in{from{translate:40% 0}}
@media(min-width:640px){.hero-visual{min-height:380px}.hero-car{width:96%;margin:20px 0 0 0}.yellow-panel{border-radius:64px 6px}}
@media(min-width:768px){
  .hero-in{padding-block:44px 40px;gap:30px}
  .hero h1 .big{font-size:84px;line-height:.99}
  .hero h1 .big span{display:block}
  .hero-description{font-size:18px;line-height:1.6;margin-top:24px}
  .explore{display:inline-flex}
  .hero-visual{min-height:420px}
  .hero-car{width:88%}
}
@media(min-width:1024px){
  .hero-in{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:15px;padding-block:52px 62px}
  .hero-copy{padding-block:15px 8px}
  .hero h1 .big{font-size:clamp(64px,6.6vw,90px);max-width:650px}
  .hero-contact{gap:16px 22px;margin-top:30px}
  .hero-visual{align-self:stretch;min-height:500px}
  .yellow-panel{inset:0 0 27px 32px;border-radius:80px 8px}
  .hero-car{width:125%;margin:50px 0 0 -10%}
}
@media(min-width:1280px){
  .hero-in{grid-template-columns:1fr 1.04fr;gap:40px}
  .hero-description{font-size:19px}
  .explore{margin-top:40px}
  .hero-visual{min-height:540px}
  .hero-car{width:113%;margin-left:-9%}
}

/* sezioni: lo spazio segue il peso della sezione */
.sec{padding-block:52px}
.first{padding-top:36px}
#strutture{padding-block:44px}
@media(min-width:1024px){
  .sec{padding-block:72px}
  .first{padding-top:56px}
  #destinazioni{padding-top:80px}
  #come,#domande{padding-bottom:80px}
  #strutture{padding-block:64px}
}
.tint{background:var(--tint)}
.head{display:grid;gap:14px;margin-bottom:30px}
.head .copy-s{font-size:16px;line-height:1.65}
@media(min-width:1024px){.head{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:50px;align-items:end;margin-bottom:34px}.head .copy-s{justify-self:end;max-width:300px;margin-bottom:4px}}

/* servizi: impostazione Codex con il badge N°4 che scorre sulle sigle CRV SUF REG.
   Su tablet il riquadro sta sopra e i tre servizi si mettono in tre colonne. */
.svc{display:grid;gap:12px}
@media(min-width:1024px){.svc{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}}
@media(min-width:1280px){.svc{gap:42px}}
.airport{position:relative;overflow:hidden;border-radius:var(--leaf-lg);padding:25px 27px;min-height:345px;display:flex;flex-direction:column;align-items:flex-start}
@media(min-width:768px){.airport{padding:28px 32px;min-height:360px}}
@media(min-width:1280px){.airport{padding:32px 36px 25px;min-height:390px}}
.airport-top{display:flex;align-items:center;gap:16px;color:var(--yellow)}
.airport-top .ico{width:32px;height:32px}
.airport-top .eyebrow{margin:0}
@media(min-width:768px){.airport-top .ico{width:42px;height:42px}}
.hook{position:relative;z-index:1;font-family:var(--f-title);font-weight:700;font-size:44px;line-height:1.03;letter-spacing:-.01em;margin-top:24px}
@media(min-width:768px){.hook{font-size:48px;margin-top:26px}}
@media(min-width:1280px){.hook{font-size:49px}}
.airport .copy-s{position:relative;z-index:1;font-size:14px;line-height:1.7;margin-top:17px;max-width:260px;color:var(--on-dark)}
.airport .copy-s span{display:block}
@media(min-width:768px){.airport .copy-s{max-width:330px}}
.airport .more{position:relative;z-index:1;margin-top:auto;padding-top:25px}
.airport .wp-block-button.textlink > .wp-block-button__link{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:13px;color:var(--yellow);text-decoration:none}
.airport .wp-block-button.textlink > .wp-block-button__link:hover{text-decoration:underline;text-underline-offset:5px}
.airport .wp-block-button.textlink > .wp-block-button__link .ico{width:15px;height:15px}
.lane{position:absolute;right:20px;bottom:25px;pointer-events:none}
.codes{writing-mode:vertical-rl;margin:0;font-family:var(--f-title);font-weight:700;font-size:48px;line-height:1;letter-spacing:2px;color:#40494d;opacity:.6}
.codes span{color:#667071}
.pin{position:absolute;left:0;right:0;top:0;margin:0 auto;width:42px;height:26px;display:grid;place-items:center;background:var(--yellow);color:var(--ink);font-weight:600;font-size:13px;border-radius:10px 2px 10px 2px;box-shadow:0 0 0 4px var(--ink);will-change:transform}
@media(min-width:1280px){.lane{right:24px;bottom:26px}.codes{font-size:54px;opacity:.7}.pin{width:46px;height:28px;font-size:14px}}
.svc-list{list-style:none;margin:0;padding:0;display:grid}
.svc-list>article{display:flex;align-items:center;gap:20px;padding:22px 6px;border-bottom:1px solid var(--line)}
.svc-list>article:first-child{padding-top:10px}
.svc-list>article:last-child{border-bottom:0;padding-bottom:10px}
.svc-list .ico{width:28px;height:28px}
.svc-list h3{font-size:21px;letter-spacing:-.4px}
.svc-list .copy-s{font-size:14px;line-height:1.6;margin-top:6px;max-width:320px}
.svc-list .copy-s span{display:block}
@media(min-width:768px) and (max-width:1023px){
  .svc-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:16px}
  .svc-list>article,.svc-list>article:first-child,.svc-list>article:last-child{flex-direction:column;align-items:flex-start;gap:14px;padding:20px 0 0;border-bottom:0;border-top:1px solid var(--ink)}
}
@media(min-width:1024px){.svc-list{grid-template-rows:repeat(3,1fr)}.svc-list>article{gap:25px;padding:24px 5px}.svc-list .ico{width:35px;height:35px}.svc-list h3{font-size:23px}.svc-list .copy-s{font-size:15px;margin-top:9px}}

/* mezzi: su telefono le due schede scorrono di lato (una pagina in meno), dal tablet affiancate */
#flotta{overflow-x:clip}
.fgrid{display:grid;grid-auto-flow:column;grid-auto-columns:86%;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:-18px;padding:0 18px 6px;scroll-padding-inline:18px;scrollbar-width:none}
.fgrid::-webkit-scrollbar{display:none}
.veh{scroll-snap-align:start;background:var(--paper);border-radius:var(--leaf-lg);overflow:hidden;min-width:0}
@media(min-width:768px){.fgrid{grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;overflow:visible;margin-inline:0;padding:0}}
@media(min-width:1024px){.fgrid{gap:26px}}
.veh-img{position:relative;height:190px;display:flex;align-items:center;justify-content:center;padding:18px 20px 0;overflow:hidden}
@media(min-width:768px){.veh-img{height:230px}}
@media(min-width:1024px){.veh-img{height:280px;padding:20px 26px 0}}
.veh-img img{position:relative;z-index:1;width:100%;height:100%;object-fit:contain}
/* seconda inquadratura dell'auto: piu' vicina, cosi' non ripete la foto dell'apertura */
.veh-img img.close{transform:scale(1.32);transform-origin:18% 62%}
.veh-img .stripes{z-index:0;bottom:18px;gap:4px}
.veh-img .stripes i{height:3px;background:var(--line)}
.veh-img .stripes i:nth-child(2){height:2px;background:var(--ink)}
.veh-copy{padding:18px 22px 24px}
@media(min-width:1024px){.veh-copy{padding:22px 28px 30px}}
.cap{font-size:13px;font-weight:600;color:var(--muted);margin-bottom:8px}
.veh-copy h3{font-size:22px}
@media(min-width:1024px){.veh-copy h3{font-size:24px}}
.veh-copy .copy-s{font-size:14px;margin-top:10px;max-width:380px}
.swipe{margin-top:10px;font-size:12px;color:var(--muted)}
@media(min-width:768px){.swipe{display:none}}
.safe{margin-top:36px;padding-top:24px;border-top:1px solid var(--ink);display:grid;gap:20px}
@media(min-width:1024px){.safe{margin-top:44px;grid-template-columns:minmax(0,1fr) minmax(0,3fr);gap:40px}}
.safe-t{font-family:var(--f-title);font-weight:700;font-size:30px;line-height:1.05;letter-spacing:-.01em}
.safe-list{list-style:none;margin:0;padding:0;display:grid;gap:18px}
@media(min-width:768px){.safe-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}}
.safe-list li{display:flex;gap:14px;align-items:flex-start}
.safe-list .ico{width:28px;height:28px;margin-top:2px}
.safe-list b{display:block;font-weight:600;font-size:16px}
.safe-list span{display:block;margin-top:4px;font-size:14px;line-height:1.6;color:var(--muted)}

/* Calabria: foto, poi le tratte principali; tutte le altre localita' in una riga di testo */
.band{position:relative;border-radius:var(--leaf-lg);overflow:hidden;background:var(--ink);display:flex;flex-direction:column}
.band-img{height:250px;overflow:hidden}
.band img{width:100%;height:100%;object-fit:cover;object-position:77% center;will-change:transform}
.band-in{position:relative;z-index:1;padding:26px 24px 28px;color:#fff}
.band .eyebrow{color:var(--yellow)}
.band .copy-s{margin-top:18px;color:#e4e8e8;max-width:400px}
@media(min-width:768px){.band-img{height:340px}.band-in{padding:32px 36px 36px}}
@media(min-width:1024px){
  .band{display:block;height:440px}
  .band-img{position:absolute;inset:0;height:auto}
  .band img{object-position:center top}
  .band::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(19,32,38,.86),rgba(19,32,38,.32) 38%,transparent 66%);pointer-events:none}
  .band-in{position:absolute;left:46px;top:50%;transform:translateY(-50%);max-width:48%;padding:0}
  .band .display{font-size:54px;line-height:1.05}
}
.routes-t{margin-top:40px}
@media(min-width:1024px){.routes-t{margin-top:48px}}
/* Il giallo segue il cursore: un fondo giallo scorre sotto la scheda indicata (o toccata,
   o raggiunta con la tastiera) e torna su Lamezia quando il cursore esce. Senza script resta
   giallo Lamezia. Su telefono le schede sono righe compatte. */
.rgrid{position:relative;display:grid;grid-auto-rows:1fr;gap:10px;margin-top:18px}
@media(min-width:640px){.rgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}}
.rcard{position:relative;z-index:1;display:grid;grid-template-columns:32px minmax(0,1fr);gap:4px 16px;align-content:start;background:var(--tint);border-radius:var(--leaf-lg);padding:18px 20px 12px;transition:background-color .3s var(--ease-out)}
.rcard .ico{width:28px;height:28px;grid-row:1/span 3;margin-top:2px}
.rcard h3{font-size:19px}
.rcard .copy-s{font-size:14px;line-height:1.55;max-width:340px}
@media(min-width:640px){
  .rcard{display:flex;flex-direction:column;gap:0;padding:24px 26px 20px;min-height:200px}
  .rcard .ico{width:32px;height:32px;margin:0}
  .rcard h3{margin-top:16px;font-size:23px}
  .rcard .copy-s{margin-top:6px}
}
.rcard.sun{background:var(--yellow)}
.hl{display:none;position:absolute;left:0;top:0;z-index:0;border-radius:var(--leaf-lg);background:var(--yellow);pointer-events:none;will-change:transform}
.js .hl{display:block}
.js .rcard.sun{background:var(--tint)}
.js .rcard.on{background:transparent}
.rcard.on .copy-s,.rcard.sun .copy-s{color:var(--ink)}
.wp-block-button.ask > .wp-block-button__link{align-self:flex-start;justify-self:start;display:inline-flex;align-items:center;min-height:44px;font-weight:600;font-size:14px;text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:5px}
@media(min-width:640px){.wp-block-button.ask > .wp-block-button__link{margin-top:auto;padding-top:12px}}
.others{margin-top:22px;font-size:15px;line-height:1.7;color:var(--muted);max-width:65ch}
.others b{font-weight:600;color:var(--ink)}

/* come funziona: la strada si disegna tra i tre passaggi e accende ogni numero quando lo raggiunge */
.steps{position:relative;display:grid;gap:28px;list-style:none;padding:0;margin:36px 0 0}
.road{position:absolute;left:24px;top:10px;bottom:10px;width:3px;background:repeating-linear-gradient(180deg,var(--ink) 0 18px,transparent 18px 30px)}
.step{position:relative;display:grid;grid-template-columns:50px minmax(0,1fr);gap:18px}
.num{display:grid;place-items:center;width:50px;height:50px;background:var(--paper);border:1.5px solid var(--ink);border-radius:15px 3px 15px 3px;font-family:var(--f-title);font-weight:700;font-size:26px;transition:background-color .35s var(--ease-out)}
.num.on{background:var(--yellow)}
.step h3{font-size:21px;margin-top:4px}
.step .copy-s{margin-top:4px;max-width:340px}
@media(min-width:768px){
  .steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:44px}
  .road{left:0;right:0;top:24px;bottom:auto;width:auto;height:3px;background:repeating-linear-gradient(90deg,var(--ink) 0 18px,transparent 18px 30px)}
  .step{grid-template-columns:minmax(0,1fr);gap:14px}
}
@media(min-width:1024px){.steps{gap:40px;margin-top:48px}}

/* strutture */
.hosts{display:grid;gap:20px}
@media(min-width:1024px){.hosts{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:70px;align-items:center}}
.hosts .display{font-size:clamp(34px,3.6vw,43px)}
.hosts .copy-s{max-width:420px}

/* domande */
.faqgrid{display:grid;gap:22px}
@media(min-width:1024px){.faqgrid{grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);gap:60px}}
.faq details{border-top:1px solid var(--ink)}
.faq details:last-child{border-bottom:1px solid var(--ink)}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:18px;min-height:56px;cursor:pointer;list-style:none;padding-block:16px;font-weight:600;font-size:18px;line-height:1.3}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:24px;line-height:1;font-weight:400;flex:none;transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .copy-s{padding-bottom:20px;max-width:36em}

/* contatti: il piede scuro (marchio grande, firma, numero in giallo, dati a destra) */
.contact-in{display:grid;gap:36px;padding-block:52px}
@media(min-width:768px){.contact-in{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:48px;padding-block:72px;align-items:end}}
@media(min-width:1024px){.contact-in{gap:70px;padding-block:84px}}
.contact .brand .word{font-size:clamp(46px,5vw,58px);letter-spacing:-1.5px}
.contact .brand .badge{font-size:clamp(21px,2.2vw,26px);padding:9px 12px;border-radius:15px 3px 15px 3px}
.sign{font-family:var(--f-sign);font-style:italic;font-weight:700;font-size:24px;margin-top:12px;line-height:1.2}
.wp-block-button.bigtel > .wp-block-button__link{display:block;width:max-content;max-width:100%;font-weight:600;font-size:clamp(40px,5.6vw,64px);letter-spacing:-1px;line-height:1.05;margin-top:26px;color:var(--yellow);font-variant-numeric:tabular-nums;text-decoration:none;white-space:nowrap}
.wp-block-button.bigtel > .wp-block-button__link:hover{color:var(--yellow-hi)}
.contact .acts{margin-top:22px}
.nap{display:grid;gap:14px;margin:0}
.nap div{padding-top:14px;border-top:1px solid var(--rule-dark)}
.nap dt{font-size:13px;color:var(--on-dark-2)}
.nap dd{margin:3px 0 0;font-size:16px;line-height:1.55}
.nap a{text-decoration:underline;text-underline-offset:3px}
.legal{border-top:1px solid var(--rule-dark);padding-block:6px;font-size:12px;color:var(--on-dark-2);display:flex;flex-wrap:wrap;align-items:center;gap:0 22px}
.legal span,.legal a{display:inline-flex;align-items:center;min-height:44px}
.legal a{text-decoration:underline;text-underline-offset:3px}

/* WhatsApp a portata di pollice: compare solo quando nessun altro invito e' in vista */
.fab{position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:55;box-shadow:0 10px 28px -12px rgba(36,43,46,.55);transition:transform .3s var(--ease-out),background-color .14s}
.fab.away{transform:translateY(180%)}
@media(min-width:1024px){.fab{right:28px;bottom:28px}}
@media(prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation:none!important}}

/* Audit-approved refinements. Native WordPress blocks, existing Taxi N°4 identity. */
.wp-site-blocks {
  padding: 0;
}
.wp-site-blocks > * {
  margin-block: 0;
}
:where(.wp-block-group) {
  margin-block-start: 0;
}
.wp-block-image {
  margin: 0;
}
.wp-block-image img {
  height: auto;
}
.wp-block-post-content {
  margin: 0;
}
.wp-block-button {
  display: inline-block;
  max-width: 100%;
}
:where(.wp-block-button__link) {
  text-decoration: none;
  box-sizing: border-box;
}
h3 {
  font-family: var(--f-body);
}
:where(.wp-block-heading) {
  margin: 0;
}
.hero h1.hero-title {
  font-family: var(--f-title);
  font-size: clamp(48px, 12vw, 64px);
  line-height: 1.02;
  letter-spacing: -0.012em;
  max-width: 14ch;
  text-wrap: balance;
}
.hero-title > span {
  display: block;
}
.hero .eyebrow {
  margin-bottom: 15px;
}
.hero-in {
  padding-block: 28px 20px;
  gap: 16px;
}
.hero-description {
  margin-top: 19px;
  max-width: 34ch;
}
.hero-availability {
  font-size: 14px;
  line-height: 1.6;
  max-width: 34ch;
  margin-top: 18px;
  color: var(--muted);
}
.hero-availability strong {
  color: var(--ink);
}
.hero-contact {
  margin-top: 22px;
  gap: 13px 18px;
}
.hero-visual {
  min-height: 0;
  aspect-ratio: 1.6;
}
.hero-car {
  margin: 0 0 0 -2%;
  width: 106%;
}
.hero-car .wp-block-image {
  width: 100%;
}
.yellow-panel {
  inset: 8px 0 10px;
  border-radius: 45px 5px;
}
.hero-car,
.yellow-panel,
.band img {
  will-change: auto;
}
.car-img {
  animation: none !important;
}
.hero-number > .wp-block-button__link,
.bigtel > .wp-block-button__link {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
  color: inherit;
  font: inherit;
  min-height: 44px;
  display: flex;
  align-items: center;
}
.bigtel > .wp-block-button__link {
  color: var(--yellow);
}
.lang a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  min-height: 44px;
  text-decoration: none;
  color: var(--muted);
  font-size: 12px;
  font-weight: 600;
  border-bottom: 2px solid transparent;
}
.lang [aria-current="page"] {
  color: var(--ink);
  border-bottom-color: var(--yellow);
}
.mobile-menu {
  position: static;
  margin-left: auto;
}
.mobile-menu summary {
  cursor: pointer;
  list-style: none;
  font-size: 13px;
  font-weight: 600;
  min-height: 44px;
  display: flex;
  align-items: center;
  padding: 0 5px;
}
.mobile-menu summary::-webkit-details-marker {
  display: none;
}
.mobile-menu summary:after {
  content: "+";
  font-size: 19px;
  margin-left: 6px;
}
.mobile-menu[open] summary:after {
  content: "−";
}
.mobile-links {
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  background: var(--paper);
  border-bottom: 1px solid var(--line);
  padding: 14px 18px;
  display: flex;
  flex-wrap: wrap;
  gap: 4px 22px;
  box-shadow: 0 10px 20px -20px var(--ink);
}
.mobile-links a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-size: 14px;
  text-decoration: none;
}
.lang {
  margin-left: 0;
}
.nav-in {
  gap: 8px;
}
.navtel > .wp-block-button__link {
  gap: 0;
  padding-inline: 13px;
}
.word {
  font-size: 26px;
}
.badge {
  font-size: 13px;
}
.svc-list > article {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 22px 6px;
  border-bottom: 1px solid var(--line);
}
.svc-list > article:first-child {
  padding-top: 10px;
}
.svc-list > article:last-child {
  padding-bottom: 10px;
  border-bottom: 0;
}
.airport > .copy-s {
  margin-top: 17px;
}
.airport .textlink > .wp-block-button__link {
  border: 0;
  background: none;
  padding: 0;
  min-height: 44px;
  border-radius: 0;
}
.airport h3.eyebrow {
  font-family: var(--f-body);
}
.priority-transfer {
  border-top: 1px solid var(--line);
  padding-top: 24px;
  margin-top: 28px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}
.priority-transfer h3 {
  font-size: 23px;
}
.priority-transfer .copy-s {
  margin-top: 7px;
}
.priority-transfer .btn > .wp-block-button__link {
  font-size: 14px;
}
#flotta .head {
  display: block;
}
#flotta .head > .copy-s {
  max-width: 46ch;
  margin-top: 16px;
  justify-self: start;
}
.fgrid {
  grid-template-columns: minmax(0, 1fr);
  grid-auto-flow: row;
  grid-auto-columns: auto;
  overflow: visible;
  scroll-snap-type: none;
  margin-inline: 0;
  padding: 0;
  gap: 18px;
}
.veh-img {
  height: 205px;
  padding: 12px 20px 0;
}
.veh-img .wp-block-image {
  width: 100%;
  height: 100%;
}
.veh-img img {
  object-fit: contain;
  height: 100%;
  width: 100%;
}
.veh-copy {
  padding: 18px 22px 24px;
}
.veh-copy .copy-s {
  max-width: 40ch;
}
.safe {
  display: block;
  margin-top: 28px;
  padding-top: 23px;
}
.safe h3 {
  font-size: 28px;
  font-family: var(--f-title);
}
.safe > .copy-s {
  margin-top: 10px;
  max-width: 65ch;
}
.band-img .wp-block-image {
  width: 100%;
  height: 100%;
}
.band-img .wp-block-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.band img {
  transform: none;
}
.head .display {
  font-size: clamp(35px, 4vw, 48px);
}
.rcard {
  background: var(--tint);
}
.rcard.sun,
.rcard.sun:hover {
  background: var(--yellow);
}
.rcard:not(.sun):hover,
.rcard:not(.sun):focus-within {
  background: var(--yellow);
}
.hl {
  display: none !important;
}
.rcard .ask > .wp-block-button__link {
  background: none;
  border: 0;
  border-radius: 0;
  padding: 0;
  color: var(--ink);
  font-size: 14px;
  min-height: 44px;
  text-decoration: underline;
  text-underline-offset: 5px;
  font-weight: 600;
}
.rcard .ask {
  margin-top: auto;
}
.steps {
  margin-top: 26px;
}
.step h3 {
  font-size: 20px;
}
.num {
  background: var(--yellow);
}
.step .copy-s {
  font-size: 14px;
}
.hosts .display {
  font-size: clamp(34px, 3.5vw, 43px);
}
.faq .wp-block-details {
  border-top: 1px solid var(--ink);
}
.faq .wp-block-details:last-child {
  border-bottom: 1px solid var(--ink);
}
.faq .wp-block-details > .copy-s {
  padding-bottom: 20px;
}
.nap > div {
  padding-top: 14px;
  border-top: 1px solid var(--rule-dark);
}
.nap-label {
  font-size: 13px;
  color: var(--on-dark-2);
}
.nap-value {
  margin-top: 3px;
  font-size: 16px;
  line-height: 1.55;
}
.sign {
  padding-bottom: 4px;
}
.skip-link {
  position: fixed;
  top: -100px;
  left: 16px;
  z-index: 100;
  background: var(--paper);
  color: var(--ink);
  padding: 12px 18px;
}
.skip-link:focus {
  top: 10px;
}
.service-hero {
  padding-block: 42px 28px;
}
.service-hero h1 {
  font-size: clamp(42px, 7vw, 76px);
  max-width: 18ch;
}
.service-lead {
  font-size: 18px;
  line-height: 1.65;
  color: var(--muted);
  max-width: 62ch;
  margin-top: 22px;
}
.service-details {
  padding-block: 10px 52px;
}
.service-topic {
  max-width: 760px;
  margin-top: 30px;
}
.service-topic h2 {
  font-size: clamp(30px, 4vw, 40px);
  line-height: 1.1;
}
.service-topic .copy-s {
  font-size: 17px;
  line-height: 1.8;
  margin-top: 15px;
}
.service-related {
  border-top: 1px solid var(--line);
  margin-top: 36px;
  padding-top: 25px;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.service-related .btn > .wp-block-button__link {
  white-space: normal;
  font-size: 14px;
}
.service-van {
  max-width: 640px;
  margin-top: 24px;
}
.service-van img {
  width: 100%;
}
.editor-styles-wrapper .wp-block-group {
  margin-top: 0;
}
.editor-styles-wrapper .nav {
  position: relative;
}
.editor-styles-wrapper .mobile-menu {
  display: none;
}
@media (min-width: 640px) {
  .hero-in {
    grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr);
    align-items: center;
    gap: 15px;
    padding-block: 38px;
  }
  .hero h1.hero-title {
    font-size: clamp(45px, 6.6vw, 60px);
  }
  .hero-visual {
    aspect-ratio: 1;
    min-height: 0;
  }
  .hero-car {
    width: 119%;
    margin: 0 0 0 -5%;
  }
  .hero-description {
    font-size: 16px;
  }
  .hero-availability {
    font-size: 13px;
  }
  .hero-contact {
    gap: 12px;
  }
  .hero-contact .hero-number {
    font-size: 20px;
  }
  .fgrid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
  }
  .veh-img {
    height: 215px;
  }
  .hero-title {
    max-width: none;
  }
  .yellow-panel {
    inset: 6px 0 12px 5px;
  }
}
@media (min-width: 768px) {
  .hero-in {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
    gap: 25px;
    padding-block: 42px;
  }
  .hero h1.hero-title {
    font-size: clamp(48px, 6.4vw, 64px);
  }
  .hero-description {
    font-size: 17px;
    line-height: 1.55;
    margin-top: 20px;
  }
  .hero-visual {
    min-height: 0;
    aspect-ratio: 0.9;
  }
  .hero-contact {
    margin-top: 23px;
    gap: 14px;
  }
  .hero-availability {
    font-size: 14px;
  }
  .hero-car {
    width: 123%;
  }
  .fgrid {
    gap: 20px;
  }
  .veh-img {
    height: 225px;
  }
  .safe {
    display: grid;
    grid-template-columns: 1fr 1.4fr;
    gap: 30px;
    align-items: center;
  }
  .safe > .copy-s {
    margin-top: 0;
  }
  .priority-transfer {
    margin-top: 30px;
  }
  .head {
    margin-bottom: 28px;
  }
  .sec {
    padding-block: 48px;
  }
  .first {
    padding-top: 38px;
  }
  .svc-list > article .ico {
    flex-shrink: 0;
  }
  .word {
    font-size: 32px;
  }
  .badge {
    font-size: 16px;
  }
  .navtel > .wp-block-button__link {
    padding-inline: 14px;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .svc-list > article,
  .svc-list > article:first-child,
  .svc-list > article:last-child {
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
    padding: 20px 0 0;
    border-bottom: 0;
    border-top: 1px solid var(--ink);
  }
}
@media (min-width: 1024px) {
  .mobile-menu {
    display: none;
  }
  .lang {
    margin-left: 0;
  }
  .links {
    margin-left: auto;
  }
  .hero-in {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.04fr);
    gap: 28px;
    padding-block: 46px 50px;
  }
  .hero h1.hero-title {
    font-size: clamp(64px, 6vw, 82px);
    line-height: 1.01;
    max-width: 14ch;
  }
  .hero-visual {
    aspect-ratio: 1.12;
    min-height: 420px;
  }
  .hero-car {
    width: 116%;
    margin: 25px 0 0 -8%;
  }
  .hero-description {
    font-size: 19px;
    max-width: 32ch;
  }
  .hero-availability {
    font-size: 15px;
    max-width: 37ch;
  }
  .hero-contact {
    margin-top: 25px;
    gap: 16px 20px;
  }
  .hero-copy {
    padding: 0;
  }
  .hero-number {
    font-size: 23px;
  }
  .yellow-panel {
    inset: 0 0 18px 22px;
    border-radius: 70px 7px;
  }
  .sec {
    padding-block: 64px;
  }
  .first {
    padding-top: 40px;
  }
  .svc-list > article {
    gap: 25px;
    padding: 24px 5px;
  }
  .svc-list > article:first-child {
    padding-top: 10px;
  }
  .svc-list > article:last-child {
    padding-bottom: 10px;
  }
  .veh-img {
    height: 260px;
  }
  .veh-copy {
    padding: 22px 28px 28px;
  }
  .safe {
    grid-template-columns: 1fr 1.4fr;
    gap: 40px;
  }
  .priority-transfer {
    margin-top: 32px;
    padding-top: 25px;
  }
  #destinazioni {
    padding-top: 64px;
  }
  #come,
  #domande {
    padding-bottom: 64px;
  }
  #strutture {
    padding-block: 50px;
  }
  .contact-in {
    padding-block: 64px;
  }
  .head {
    grid-template-columns: 1.4fr 1fr;
  }
  .service-hero {
    padding-block: 54px 34px;
  }
  .service-details {
    padding-bottom: 64px;
  }
}
@media (min-width: 1280px) {
  .hero-in {
    gap: 40px;
  }
  .hero-visual {
    min-height: 460px;
  }
  .hero-car {
    width: 113%;
  }
  .hero-in {
    padding-block: 45px 50px;
  }
  .airport {
    min-height: 370px;
  }
  .hero-contact .hero-number {
    font-size: 23px;
  }
}
@media (max-width: 374px) {
  .nav-in {
    gap: 5px;
  }
  .word {
    font-size: 23px;
  }
  .brand {
    gap: 5px;
  }
  .badge {
    font-size: 12px;
    padding: 5px 6px;
  }
  .mobile-menu summary {
    font-size: 12px;
    padding: 0 2px;
  }
  .lang a {
    min-width: 28px;
    font-size: 11px;
  }
  .navtel > .wp-block-button__link {
    padding-inline: 9px;
    font-size: 13px;
  }
  .hero h1.hero-title {
    font-size: 46px;
  }
  .hero-availability {
    font-size: 13px;
  }
  .veh-img {
    height: 185px;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  .hero-car,
  .yellow-panel,
  .car-img,
  .band img {
    animation: none !important;
    transform: none !important;
    translate: none !important;
  }
  .wp-block-button__link {
    transition: none !important;
  }
}
.service-hero > .acts {
  margin-block-start: 24px;
}
.service-details > .service-topic {
  margin-block-start: 32px;
}
.service-details > .service-related {
  margin-block-start: 36px;
}
.service-topic > .copy-s {
  margin-block-start: 15px;
}

/* Header wrapper owns stickiness; its inner navigation must not be constrained by it. */
.taxi-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--paper);
}
body.admin-bar .taxi-header {
  top: 32px;
}
@media (max-width: 782px) {
  body.admin-bar .taxi-header {
    top: 46px;
  }
}
@media (max-width: 600px) {
  body.admin-bar .taxi-header {
    top: 0;
  }
}
/* Explicit decoration bounds avoid Safari's auto-width vertical-writing calculation. */
.airport .lane {
  width: 54px;
  height: 258px;
  right: 20px;
  bottom: 26px;
}
.airport .codes {
  width: 54px;
  height: 258px;
  font-size: 48px;
  white-space: nowrap;
  line-height: 1;
}
.airport .pin {
  left: 4px;
  right: auto;
  margin: 0;
  width: 46px;
}
.airport .hook,
.airport > .copy-s {
  max-width: calc(100% - 58px);
}
.airport-route > .wp-block-button__link {
  display: inline-flex;
  background: none;
  color: var(--yellow);
  padding: 0;
  min-height: 44px;
  border: 0;
  font-size: 15px;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 4px;
  white-space: normal;
  text-align: left;
}
.airport .more {
  max-width: calc(100% - 58px);
}
.airport .more > .wp-block-button {
  display: block;
}
@media (min-width: 1280px) {
  .airport .codes {
    font-size: 54px;
  }
  .airport .lane {
    right: 24px;
  }
}
@media (max-width: 374px) {
  .airport {
    padding-inline: 22px;
  }
  .airport .lane {
    display: none;
  }
  .airport .hook,
  .airport > .copy-s,
  .airport .more {
    max-width: 100%;
  }
}
.service-photo {
  max-width: 640px;
  margin-block: 28px;
}
.service-photo img {
  width: 100%;
  height: auto;
  max-height: 360px;
  object-fit: contain;
}
.service-faq {
  max-width: 760px;
  margin-block-start: 36px;
}
.service-faq h2 {
  font-size: clamp(30px, 4vw, 40px);
  margin-bottom: 20px;
}
.service-faq details {
  border-top: 1px solid var(--line);
  padding: 18px 0;
}
.service-faq details:last-child {
  border-bottom: 1px solid var(--line);
}
.service-faq summary {
  font-weight: 600;
  cursor: pointer;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  list-style: none;
}
.service-faq summary::-webkit-details-marker {
  display: none;
}
.service-faq summary:after {
  content: "+";
  flex: none;
  font-size: 22px;
}
.service-faq details[open] > summary:after {
  content: "−";
}
.service-faq .copy-s {
  margin-top: 12px;
  font-size: 17px;
  max-width: 65ch;
}
.not-found-links {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  margin-top: 24px;
}
.not-found-links a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}
.editor-styles-wrapper .taxi-header {
  position: relative;
  top: auto;
}

/* Large decorative letters remain readable against the airport panel. */
.airport .codes{color:#778286;opacity:1}.airport .codes span{color:#929c9f}

/* Return control: below navigation, above page content, with safe-area clearance. */
.taxi-back-top{position:fixed;right:max(18px,env(safe-area-inset-right,0px));bottom:max(20px,calc(env(safe-area-inset-bottom,0px) + 12px));z-index:40;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:10px 16px;border:1px solid var(--ink);border-radius:var(--leaf-sm);background:var(--yellow);color:var(--ink);font:600 14px/1.2 var(--f-body);cursor:pointer;box-shadow:0 3px 12px #0002}
.taxi-back-top>span:first-child{font-size:22px;line-height:1}
.taxi-back-top:focus-visible{outline:3px solid var(--ink);outline-offset:3px}

/* Legal documents: readable measure and native blocks, independent from sales-page layouts. */
.taxi-document {
  width: min(calc(100% - 2 * var(--wp--preset--spacing--sm)), var(--wp--style--global--content-size));
  margin: var(--wp--preset--spacing--xl) auto;
  overflow-wrap: anywhere;
}
.taxi-document > .wp-block-post-title {
  font-size: var(--wp--preset--font-size--section);
  line-height: 1.12;
  margin-bottom: var(--wp--preset--spacing--lg);
}
.taxi-document .wp-block-post-content > * + * { margin-top: var(--wp--preset--spacing--md); }
.taxi-document .wp-block-post-content > h2 {
  font-size: clamp(1.65rem, 3vw, 2.25rem);
  line-height: 1.2;
  margin-top: var(--wp--preset--spacing--lg);
}
.taxi-document p, .taxi-document li { font-size: var(--wp--preset--font-size--body); line-height: 1.7; }
.taxi-document a { text-underline-offset: .2em; }
.taxi-document .wp-block-table { max-width: 100%; overflow-x: auto; }
.taxi-document table { width: 100%; min-width: 36rem; border-collapse: collapse; font-size: var(--wp--preset--font-size--small); }
.taxi-document th, .taxi-document td { padding: var(--wp--preset--spacing--sm); text-align: left; vertical-align: top; border: 1px solid var(--wp--custom--line); }
.taxi-document th { background: var(--wp--preset--color--soft); font-weight: 600; }
.lang [aria-disabled="true"] { opacity: .55; cursor: default; }
@media (max-width: 767px) {
  .taxi-document { margin-block: var(--wp--preset--spacing--lg); }
}

/* Direct contact: primary phone, secondary WhatsApp; no embedded chat. */
.whatsapp-action > .wp-block-button__link {
  background: transparent;
  border-color: var(--ink);
  color: var(--ink);
}
.dark .whatsapp-action > .wp-block-button__link {
  border-color: var(--on-dark);
  color: var(--paper);
}
.hero-contact:has(.whatsapp-action) .hero-number { display: none; }
.hero-contact .whatsapp-action > .wp-block-button__link { font-size: 15px; }
.taxi-whatsapp-mobile { display: none; }
@media (max-width: 767px) {
  .taxi-has-whatsapp { padding-bottom: calc(80px + env(safe-area-inset-bottom, 0px)); }
  .taxi-whatsapp-mobile {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 12px 18px;
    position: fixed;
    right: max(18px, env(safe-area-inset-right, 0px));
    bottom: calc(16px + env(safe-area-inset-bottom, 0px));
    z-index: 40;
    border: 1px solid var(--ink);
    border-radius: var(--leaf-sm);
    background: var(--ink);
    color: var(--paper);
    font: 600 15px/1.3 var(--f-body);
    text-decoration: none;
    gap: 8px;
    box-shadow: 0 3px 12px #0002;
  }
  .taxi-has-whatsapp .taxi-back-top { bottom: calc(80px + env(safe-area-inset-bottom, 0px)); }
  .hero-contact:has(.whatsapp-action) { align-items: stretch; }
  .hero-contact .callbtn, .hero-contact .whatsapp-action { flex: 1 1 180px; }
  .hero-contact .callbtn > .wp-block-button__link, .hero-contact .whatsapp-action > .wp-block-button__link { width: 100%; }
}

/* Approved connections section, 0.4.3. */
/* Scoped below the approved, unchanged photographic section. */
#tratte{scroll-margin-top:104px}
#destinazioni .route-heading{margin-top:44px;max-width:720px}
#destinazioni .routes-t{margin:0;font-family:var(--wp--preset--font-family--display);font-size:clamp(30px,3.2vw,40px);line-height:1.1}
#destinazioni .route-heading .copy-s{margin-top:12px}
#routes{margin-top:26px;grid-auto-rows:auto;align-items:stretch}
#routes .rcard{min-width:0;min-height:240px;padding:26px 28px 20px;display:flex;flex-direction:column}
#routes .rcard .ico{grid-row:auto;width:30px;height:30px;margin:0}
#routes .rcard h3{line-height:1.2;margin-top:18px;font-size:24px}
#routes .rcard .copy-s{max-width:46ch;font-size:16px;line-height:1.5;margin-top:10px;margin-bottom:18px}
#routes .route-actions{margin-top:auto;display:flex;flex-direction:column;align-items:flex-start}
#routes .route-actions .ask{margin:0;max-width:100%}
#routes .route-actions a{text-align:left;white-space:normal;line-height:1.4;text-underline-offset:4px;font-size:15px}
#routes .rcard:not(.sun):hover,#routes .rcard:not(.sun):focus-within{background:var(--tint)}
#routes a:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
@media(max-width:767px){#destinazioni .route-heading{margin-top:30px}#tratte{scroll-margin-top:88px}#routes{grid-template-columns:1fr;gap:14px}#routes .rcard{min-height:0;padding:24px}#routes .rcard h3{font-size:23px}#routes .rcard .copy-s{font-size:16px}#routes .route-actions{margin-top:0}}

#routes .trip-capacity{font-size:14px;line-height:1.5;color:var(--ink);margin:0 0 12px;max-width:44ch}#routes .rcard{min-height:290px}
@media(max-width:767px){#routes .rcard{min-height:0}}

/* Approved final review: service pages and footer. */
/* Separate review draft. The approved photographic band is deliberately untouched. */
.francesco-intro{font-size:16px;line-height:1.6;color:var(--on-dark);max-width:39ch;margin:18px 0 22px}
#routes .route-actions a{text-align:left;transition:color 160ms ease,text-decoration-color 160ms ease}
#routes .route-actions a:hover{color:var(--ink);text-decoration-thickness:2px}
.service-hero .service-intro{min-width:0}
.service-hero .service-lead{max-width:50ch;margin-top:20px}
.service-hero .acts{margin-top:24px;gap:12px;display:flex;flex-wrap:wrap;align-items:center}
.service-hero .acts a{min-height:48px}
.service-hero .service-photo{margin-top:32px;margin-bottom:0}
.service-details .service-topic{max-width:760px;margin-top:26px}
.service-details .service-topic .copy-s{line-height:1.65;margin-top:12px;max-width:64ch}
.service-details .service-faq{margin-top:38px}
#come .steps .copy-s{max-width:34ch}
@media(min-width:1024px){
 .service-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:48px;align-items:center;padding-block:64px 40px}
 .service-hero h1{font-size:clamp(44px,4.3vw,64px);max-width:18ch}
 .service-hero .service-photo{width:100%;margin:0;align-self:center}
 .service-hero .service-photo img{max-height:310px;object-fit:contain;width:100%}
}
@media(max-width:767px){
 .service-hero{padding-block:32px 22px}
 .service-hero h1{font-size:clamp(37px,10vw,46px);line-height:1.06;max-width:18ch}
 .service-hero .service-lead{font-size:17px;line-height:1.55;margin-top:16px}
 .service-hero .acts{margin-top:20px;display:flex;flex-direction:column;align-items:stretch;gap:8px}
 .service-hero .acts .wp-block-button{width:100%}
 .service-hero .acts a{width:100%;justify-content:center;text-align:center}
 .service-hero .service-photo{margin-top:24px}
 .service-hero .service-photo img{max-height:230px}
 .service-details .service-topic h2{font-size:30px}
 .service-details .service-topic .copy-s{font-size:16px}
 .francesco-intro{font-size:15px;max-width:34ch}
}
@media(prefers-reduced-motion:reduce){#routes .route-actions a{transition:none}}

/* 0.5.2: disclosure below the illustrative family band; photography is unchanged. */
.taxi-family-disclosure {
  margin: 10px 0 0;
  color: var(--wp--preset--color--muted);
  font-family: var(--wp--preset--font-family--body);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.5;
  text-align: right;
}
@media (max-width: 767px) {
  .taxi-family-disclosure { text-align: left; }
}

/* Direct service links, using the existing typographic and colour system. */
.taxi-fleet-detail { margin: 18px 0 0; font-weight: 600; }
.taxi-fleet-detail a { text-decoration: underline; text-underline-offset: 4px; }
.taxi-service-links { padding-block: 22px; }
.taxi-service-links ul { display: flex; flex-wrap: wrap; gap: 12px 28px; list-style: none; margin: 0; padding: 0; }
.taxi-service-links a { color: var(--wp--custom--on-dark); font-size: 15px; text-underline-offset: 4px; }
.taxi-service-links a:hover { color: var(--wp--preset--color--yellow); }
.taxi-service-links a:focus-visible, .taxi-fleet-detail a:focus-visible { outline: 2px solid var(--wp--preset--color--yellow); outline-offset: 5px; }
@media (max-width: 767px) { .taxi-service-links ul { flex-direction: column; gap: 16px; } }

/* Codesyn credit: local original logo, separate from the legal details. */
.taxi-studio-credit {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 auto;
  padding-block: 0 28px;
  color: var(--wp--custom--on-dark);
  font-family: var(--wp--preset--font-family--body);
  font-size: 14px;
  line-height: 1.5;
}
.taxi-studio-credit a { display: inline-flex; align-items: center; min-height: 24px; }
.taxi-studio-credit img { display: block; width: 68px; height: auto; max-width: none; }
.taxi-studio-credit a:focus-visible { outline: 2px solid var(--wp--preset--color--yellow); outline-offset: 4px; }

/* Mobile header: existing identity, direct call, icon menu; desktop unchanged. */
.taxi-whatsapp-icon, .taxi-menu-icon, .taxi-back-top > svg { display: block; flex: none; }
.taxi-menu-icon path { transform-origin: center; }
.mobile-menu summary::after { content: none; }
.mobile-menu[open] .taxi-menu-line-top { transform: rotate(45deg) translateY(4px); }
.mobile-menu[open] .taxi-menu-line-bottom { transform: rotate(-45deg) translateY(-4px); }
.taxi-menu-languages { display: flex; gap: 20px; width: 100%; border-top: 1px solid var(--line); padding-top: 10px; margin-top: 8px; }
.taxi-menu-languages a { color: var(--muted); border-bottom: 2px solid transparent; }
.taxi-menu-languages a[aria-current="page"] { color: var(--ink); border-bottom-color: var(--yellow); }
@media (prefers-reduced-motion: no-preference) {
  .taxi-menu-icon path { transition: transform .18s ease; }
}
@media (max-width: 1023px) {
  .nav-in > .brand { margin-right: auto; }
  .nav-in > .lang { display: none; }
  .nav-in > .navtel { order: 2; }
  .nav-in > .mobile-menu { order: 3; margin-left: 4px; }
  .mobile-menu summary { width: 44px; height: 44px; padding: 10px; justify-content: center; color: var(--ink); }
  .mobile-menu[open] summary { background: var(--soft); border-radius: var(--leaf-sm); }
  .mobile-links { padding: 16px max(18px, calc((100vw - 1180px) / 2)); flex-direction: column; align-items: stretch; gap: 0; }
  .mobile-links > a { min-height: 48px; font-size: 18px; }
}
@media (max-width: 767px) {
  .taxi-back-top { width: 44px; min-height: 44px; padding: 10px; }
  .taxi-back-top .taxi-back-label { display: none; }
  .taxi-whatsapp-mobile { padding: 10px 14px; }
}
