/* V21 — ridimensionamento adattivo Home, Offerte e Conferma. Solo grafica. */
:root{--v21-blue:#0757ee;--v21-navy:#06265f;--v21-ink:#071d4f}

/* ===== HOME DESKTOP ===== */
@media (min-width:1051px){
  body.home-final{min-height:100vh;background:#eef5ff;overflow-x:hidden}
  .home-final .topbar{height:64px;min-height:64px;padding:8px 30px;max-width:1480px}
  .home-final .areaLink,.home-final .wa,.home-final .menu{min-height:44px;height:44px;border-radius:13px;padding:0 16px}
  .home-final .menu{width:50px;font-size:25px}
  .home-shell{max-width:1480px;padding:0 28px;margin:0 auto 10px}
  .hero{min-height:510px;height:510px;grid-template-columns:minmax(0,1fr) 500px;gap:24px;padding:20px 22px 0;background:#f8fbff;isolation:isolate}
  .hero::before{content:"";position:absolute;z-index:-2;inset:0 34% 0 0;background:url('/assets/aeroporto-v20-definitivo.jpg') 53% 50%/cover no-repeat;filter:saturate(.94) brightness(1.08)}
  .hero::after{content:"";position:absolute;z-index:-1;inset:0 34% 0 0;background:linear-gradient(90deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.75) 34%,rgba(255,255,255,.18) 72%,rgba(255,255,255,.04) 100%)}
  .left-hero{height:490px}
  .brand-row{min-height:150px;gap:14px}
  .mascot{width:145px;margin-top:3px;transform:rotate(-6deg)}
  .brand-lockup{padding-top:4px}
  .brand-title{font-size:50px;line-height:.92;letter-spacing:-2.7px}
  .payoff{font-size:18px;margin-top:12px}
  .hero-copy{font-size:38px;line-height:1.04;margin:8px 0 16px 5px;max-width:520px}
  .benefits{height:125px;margin-top:auto;border-radius:18px 18px 0 0}
  .benefit{padding:13px 8px}
  .benefit svg{width:39px;height:39px;margin-bottom:4px;color:var(--v21-blue)}
  .benefit b{font-size:13px;margin-bottom:5px}
  .benefit small{font-size:11px;line-height:1.32}
  .booking{width:500px;padding:20px 22px 18px;border-radius:20px;align-self:start;background:#fff}
  .booking h2{font-size:27px}.booking .sub{font-size:14px;margin:6px 0 14px}
  .form-grid{grid-template-columns:1.28fr .72fr;gap:10px 12px}
  .field label{font-size:10px;margin-bottom:5px}
  .input,.timeWheel .input{height:44px;padding:0 12px;font-size:14px;min-width:0}
  .timeWheel{grid-template-columns:minmax(72px,1fr) 8px minmax(72px,1fr);gap:5px}
  .timeWheel span{font-weight:900;text-align:center}
  .vehicle-grid{gap:9px}
  .vehicleBtn{height:78px;border-radius:12px;gap:4px;font-size:13px;color:#14346f}
  .vehicleBtn svg{width:38px;height:38px;color:var(--v21-blue);stroke:var(--v21-blue);stroke-width:2.8}
  .vehicleBtn.active{color:var(--v21-blue)}
  .primary{height:48px;font-size:16px;margin-top:1px}
  .livebar{max-width:1424px;min-height:56px;height:56px;margin:-1px auto 8px;padding:0 20px;gap:15px;border-radius:0 0 16px 16px}
  .live-dot{width:15px;height:15px}.livebar strong{font-size:18px}.livecar{width:34px;height:34px}.live-copy b{font-size:15px}.live-copy small{font-size:11px}.live-link{padding:8px 14px;font-size:13px}
  .lower{min-height:176px;height:176px;grid-template-columns:1fr .72fr 1.22fr;border-radius:16px}
  .van-photo{min-height:176px}.shuttle-copy,.extras{padding:16px 20px}.shuttle-copy h3,.extras h3{font-size:17px;margin-bottom:8px}.shuttle-copy p{font-size:12px;line-height:1.35}.time-badge{margin-top:12px;padding:9px 12px;font-size:14px}.time-badge svg{width:29px;height:29px}
  .extra-grid{margin-top:12px;gap:8px}.extra svg{width:31px;height:31px;color:var(--v21-blue)}.extra b{font-size:10.5px;margin-top:4px}.services-label{font-size:12px;margin-top:12px;color:#9aa5b7;pointer-events:none}
  .trust{gap:9px;margin-top:8px}.trust-item{min-height:58px;padding:9px 11px;border-radius:12px;font-size:11px}.trust-item svg{width:28px;height:28px;color:var(--v21-blue)}.stars{font-size:15px}
}

/* Formula adattiva per notebook bassi: riduce tutto senza schiacciare singoli campi */
@media (min-width:1051px) and (max-height:900px){body.home-final{zoom:.91}}
@media (min-width:1051px) and (max-height:820px){body.home-final{zoom:.83}}
@media (min-width:1051px) and (max-height:740px){body.home-final{zoom:.75}}

/* ===== HOME MOBILE: mantiene leggibilità, niente tagli ===== */
@media (max-width:620px){
  .mascot{object-fit:contain;object-position:center;overflow:visible}
  .brand-row{overflow:visible}
  .payoff{font-size:clamp(11.2px,3.15vw,13.2px);letter-spacing:-.25px}
  .vehicleBtn svg{color:var(--v21-blue);stroke:var(--v21-blue);width:31px;height:31px}
}

/* ===== OFFERTE: tutto visibile su desktop, senza schiacciare ===== */
body.page-fit-v21{min-height:100vh;overflow-x:hidden}
@media (min-width:951px){
  body.page-fit-v21 header{height:58px;padding:0 26px}
  body.page-fit-v21 header .logo{font-size:24px}
  body.page-fit-v21 .top a{padding:7px 11px;font-size:13px}
  body.page-fit-v21 main{max-width:1380px;padding:12px 18px 10px}
  body.page-fit-v21 .offerBackTopV17{padding:8px 12px!important;margin-bottom:7px!important;font-size:13px!important}
  body.page-fit-v21 .steps{margin:0 0 8px;gap:13px;font-size:13px}
  body.page-fit-v21 .dot{width:27px;height:27px}
  body.page-fit-v21 h1{font-size:31px;margin:6px 0 2px}
  body.page-fit-v21 .sub{font-size:13px}
  body.page-fit-v21 .offers{gap:14px;margin-top:10px}
  body.page-fit-v21 .card{border-radius:20px;padding:15px 17px}
  body.page-fit-v21 .head{padding-bottom:9px}.offerParkingText strong{font-size:24px!important}.offerParkingText small{font-size:12px!important}
  body.page-fit-v21 .badge{padding:7px 10px;font-size:12px}
  body.page-fit-v21 .checks{gap:7px;margin:9px 0;font-size:12px}.check{padding:7px!important}
  body.page-fit-v21 h3{font-size:14px;margin:8px 0}
  body.page-fit-v21 .services{gap:6px;margin-top:6px}.srv{padding:6px 4px;font-size:10px;border-radius:10px}.srv b{font-size:10px;margin:2px 0}.srv input{margin-top:3px}
  body.page-fit-v21 .extraTotal{margin-top:5px!important;font-size:10px!important}
  body.page-fit-v21 .pay{gap:8px;margin-top:9px}.payBox{padding:9px;border-radius:12px}.payTitle{font-size:12px;margin-bottom:4px}.price{font-size:22px}.old{font-size:10px}
  body.page-fit-v21 button{min-height:61px;border-radius:12px;font-size:15px}
  body.page-fit-v21 .back{margin-top:8px;padding:9px;border-radius:12px;font-size:13px}
}
@media (min-width:951px) and (max-height:850px){body.page-fit-v21{zoom:.91}}
@media (min-width:951px) and (max-height:760px){body.page-fit-v21{zoom:.82}}

/* ===== CONFERMA: tutto visibile su desktop ===== */
body.confirm-fit-v21{min-height:100vh;overflow-x:hidden}
@media (min-width:951px){
  body.confirm-fit-v21 header{height:58px;padding:0 26px}
  body.confirm-fit-v21 header .logo{font-size:24px}.confirm-fit-v21 .top a{padding:7px 11px;font-size:13px}
  body.confirm-fit-v21 main{max-width:1260px;padding:12px 18px 10px}
  body.confirm-fit-v21 .steps{margin-bottom:8px;gap:13px;font-size:13px}.confirm-fit-v21 .dot{width:27px;height:27px}
  body.confirm-fit-v21 h1{font-size:31px;margin:6px 0 2px}.confirm-fit-v21 .sub{font-size:13px}
  body.confirm-fit-v21 .layout{gap:14px;margin-top:8px;grid-template-columns:1.35fr .85fr}
  body.confirm-fit-v21 .card{border-radius:20px;padding:16px 18px}
  body.confirm-fit-v21 h2{font-size:19px;margin:0 0 5px}
  body.confirm-fit-v21 .formGrid{gap:8px 12px;margin-top:9px}.confirm-fit-v21 label{font-size:12px}.confirm-fit-v21 input{padding:9px 11px;margin-top:4px;font-size:14px;border-radius:10px;height:40px}
  body.confirm-fit-v21 .summaryHead{margin:-16px -18px 10px;padding:12px 18px;border-radius:20px 20px 0 0;font-size:19px}
  body.confirm-fit-v21 .row{padding:8px 0;font-size:13px}.confirm-fit-v21 .small{font-size:11px}.confirm-fit-v21 .big{font-size:24px}
  body.confirm-fit-v21 button{padding:12px;margin-top:9px;border-radius:12px;font-size:15px}.confirm-fit-v21 .back{margin-top:9px;font-size:13px}
}
@media (min-width:951px) and (max-height:800px){body.confirm-fit-v21{zoom:.91}}
@media (min-width:951px) and (max-height:700px){body.confirm-fit-v21{zoom:.82}}

/* ===== V21.1 CORREZIONI RICHIESTE ===== */
@media (min-width:1051px){
  body.home-final{overflow:hidden}
  .home-final .home-shell:first-of-type{height:calc(100vh - 64px - 56px - 194px);min-height:500px;max-height:560px}
  .home-final .hero{height:100%;min-height:500px;max-height:560px;overflow:hidden;background:#f8fbff}
  .home-final .hero::before{inset:0 35.5% 0 0;background-position:58% 50%;background-size:cover;filter:saturate(1.08) contrast(1.04) brightness(1.02)}
  .home-final .hero::after{inset:0 35.5% 0 0;background:linear-gradient(90deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.82) 30%,rgba(255,255,255,.28) 62%,rgba(255,255,255,.05) 100%)}
  .home-final .left-hero{height:100%;display:flex;flex-direction:column;position:relative;z-index:2}
  .home-final .brand-row{min-height:145px}
  .home-final .mascot{width:150px;max-height:190px;object-fit:contain;object-position:center bottom;margin-top:12px;transform:rotate(-5deg)}
  .home-final .hero-copy{margin-top:4px;margin-bottom:8px}
  .home-final .benefits{height:150px;min-height:150px;margin-top:auto;width:100%;border-radius:20px 20px 0 0;background:#fff;box-shadow:0 16px 32px rgba(12,48,105,.12);position:relative;z-index:5}
  .home-final .benefit{padding:16px 10px}
  .home-final .benefit svg{width:43px;height:43px;color:#0757ee}
  .home-final .booking{height:auto;min-height:0;align-self:center;margin-top:0;padding:18px 22px 16px}
  .home-final .timeWheel{grid-template-columns:minmax(86px,1fr) 10px minmax(86px,1fr)}
  .home-final .timeWheel .input{font-size:14px;padding:0 10px}
  .home-final .vehicleBtn svg{width:42px;height:42px;color:#0757ee!important;stroke:#0757ee!important}
  .home-final .livebar{height:54px;min-height:54px}
  .home-final .lower{height:164px;min-height:164px}
  .home-final .van-photo{min-height:164px}
  .home-final .trust{height:56px;min-height:56px}
}

/* Pulsanti indietro sempre visibili nei passaggi */
.offer-fit-v21 .offerBackTopV17,
.offer-fit-v21 .back,
.confirm-fit-v21 .back{
  display:inline-flex!important;align-items:center;justify-content:center;gap:7px;
  min-height:38px;padding:8px 14px;border:1px solid #dbe5f3;border-radius:12px;
  background:#fff;color:#0a245c;text-decoration:none;font-weight:900;box-shadow:0 5px 14px rgba(13,43,94,.07)
}
.offer-fit-v21 .back{margin-top:10px}
.confirm-fit-v21 .back{margin:0 0 10px}

/* Conferma finale: compatta ma leggibile, senza nascondere pulsanti */
@media (min-width:951px){
  body.confirm-fit-v21{height:100vh;overflow:hidden}
  .confirm-fit-v21 header{height:58px;padding:0 24px}
  .confirm-fit-v21 main{height:calc(100vh - 58px);max-width:1180px;padding:10px 16px 12px;overflow:hidden}
  .confirm-fit-v21 .steps{margin-bottom:7px;gap:14px;font-size:13px}
  .confirm-fit-v21 .dot{width:27px;height:27px}
  .confirm-fit-v21 h1{font-size:27px;margin:4px 0 2px}
  .confirm-fit-v21 .sub{font-size:13px}
  .confirm-fit-v21 .layout{grid-template-columns:1.36fr .84fr;gap:14px;margin-top:8px}
  .confirm-fit-v21 .card{padding:15px;border-radius:18px}
  .confirm-fit-v21 .summaryHead{margin:-15px -15px 10px;padding:12px 15px;border-radius:18px 18px 0 0;font-size:19px}
  .confirm-fit-v21 .formGrid{gap:8px 10px;margin-top:8px}
  .confirm-fit-v21 label{font-size:12px}
  .confirm-fit-v21 input{padding:9px 11px;margin-top:4px;font-size:14px;border-radius:10px;height:38px}
  .confirm-fit-v21 .row{padding:8px 0;font-size:13px}
  .confirm-fit-v21 .big{font-size:23px}
  .confirm-fit-v21 button{padding:12px;margin-top:5px;font-size:15px;border-radius:12px}
}

/* Pagina successo: tutto visibile senza scroll su notebook */
@media (min-width:701px){
  body:has(.successStage){height:100vh;overflow:hidden}
  body:has(.successStage) .wrap{height:100vh;min-height:0;padding:10px;align-items:center}
  body:has(.successStage) .card{max-width:650px;max-height:calc(100vh - 20px);padding:18px 24px;border-radius:22px;overflow:hidden}
  body:has(.successStage) .logo{font-size:26px;margin-bottom:6px}
  body:has(.successStage) .successStage{transform:scale(.72);transform-origin:center top;height:155px;margin-bottom:-38px}
  body:has(.successStage) h1{font-size:25px;margin:4px 0}
  body:has(.successStage) .successSpeech{font-size:14px}
  body:has(.successStage) p{font-size:13px;margin:7px 0}
  body:has(.successStage) .code{font-size:22px;margin:8px 0}
  body:has(.successStage) .grid{gap:8px;margin-top:8px}
  body:has(.successStage) .box{padding:10px 12px;border-radius:12px}
  body:has(.successStage) .val{font-size:15px}
  body:has(.successStage) #redirectMsg{margin-top:8px!important}
  body:has(.successStage) .btns{margin-top:10px;gap:8px}
  body:has(.successStage) .btn{padding:11px;border-radius:12px;font-size:14px}
}

@media (max-width:1050px){
  .home-final .mascot{object-fit:contain;object-position:center;width:clamp(104px,27vw,150px);max-height:none;transform:rotate(-5deg);margin-top:10px}
  .home-final .benefits{position:relative;z-index:5;background:#fff}
  .home-final .vehicleBtn svg{color:#0757ee!important;stroke:#0757ee!important;width:clamp(30px,8vw,42px);height:clamp(30px,8vw,42px)}
}
