/* V4: one stable booking surface over a photographic hero. */
.hero-home{background:#fff}
.hero-home .preview-note{font-size:13px;line-height:1.4;padding:4px 12px}
.hero-home .nav-wrap{height:88px;min-height:88px;padding-block:10px}
.hero-home .logo img{width:195px}
.hero-home .nav-book{border-radius:9px}
.immersive-hero{position:relative;isolation:isolate;background:#173047;color:#fff;overflow:hidden}
.hero-backdrop,.hero-shade,.hero-scene{position:absolute;inset:0;z-index:-2;pointer-events:none}
.hero-backdrop{overflow:hidden}
.hero-scene{opacity:0;z-index:auto;transition:opacity 650ms ease}
.hero-scene.is-current{opacity:1}
.hero-scene img{height:100%;width:100%;object-fit:cover;object-position:center 68%}
.scene-van{background:#24384b}
.scene-van img{width:65%;object-position:center 60%}
.scene-tulum img{object-position:center 47%}
.hero-shade{z-index:-1;background:linear-gradient(90deg,rgba(10,30,46,.78),rgba(13,38,56,.38) 47%,rgba(13,38,56,.08)),linear-gradient(0deg,rgba(10,29,44,.65),transparent 45%)}
.hero-home .hero-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,510px);grid-template-rows:1fr auto;gap:26px 64px;align-items:center;min-height:650px;padding-block:44px 21px;max-width:1260px}
.hero-intro{padding-block:15px 24px;align-self:center}
.hero-kicker{color:#fff;font-size:15px;font-weight:700;letter-spacing:.13em;margin:0 0 22px;line-height:1.5}
.hero-intro h1{color:#fff;font:700 clamp(43px,4.5vw,64px)/1.07 Arial,Helvetica,sans-serif;letter-spacing:-.045em;max-width:570px;text-shadow:0 2px 20px #142f4033}
.hero-lead{color:#fff;font-size:21px;line-height:1.55;max-width:420px;margin-top:24px}
.hero-personal{display:flex;align-items:center;gap:12px;font-size:17px;font-weight:600;margin-top:30px;color:#fff}
.hero-personal>span{display:grid;place-items:center;width:27px;height:27px;border:1px solid #ffffff80;border-radius:50%;font-size:15px}
.hero-home .booking-card{padding:25px 27px 21px;border:1px solid #ffffff80;border-top:none;border-radius:18px;background:#fff;color:#26374a;box-shadow:0 20px 55px #091c3440;align-self:center;min-width:0;grid-column:2;grid-row:1;scroll-margin-top:115px}
.hero-home .booking-heading{margin-bottom:18px;gap:0}
.hero-home .booking-heading>span{display:none}
.hero-home .booking-heading h2{font:700 25px/1.25 Arial,Helvetica,sans-serif;letter-spacing:-.03em}
.hero-home .service-options{gap:9px;grid-template-columns:repeat(2,minmax(0,1fr))}
.hero-home .service-options button{font-size:17px;line-height:1.3;min-height:57px;padding:12px 13px;gap:10px;border-radius:9px;justify-content:flex-start;background:white;color:#26374a;min-width:0;white-space:normal;overflow-wrap:break-word;flex-direction:row;align-items:center}
.hero-home .service-options button svg{width:22px;height:22px;flex:none}
.hero-home .service-options button[aria-pressed=true]{background:#edf3f6;border-color:#344f65;box-shadow:inset 0 0 0 1px #344f65}
.hero-home .field-title{font-size:17px;line-height:1.3;margin:19px 0 10px}
.hero-home :is(.trip-options,.direction-options){gap:9px}
.hero-home :is(.trip-options,.direction-options) button{font-size:17px;line-height:1.35;padding:11px 10px;min-height:49px;border-radius:9px;min-width:0}
.hero-home .route-hint{font-size:16px;line-height:1.5;margin:17px 0;gap:10px;align-items:flex-start;min-height:24px}
.hero-home .route-hint .icon{width:20px;height:20px;margin-top:2px}
.hero-home .booking-card .booking-cta{font-size:18px;line-height:1.3;min-height:58px;border-radius:9px;padding:15px 17px;gap:12px;box-shadow:0 4px 10px #c5282e15}
.hero-home .booking-card .booking-cta>span{font-size:18px;line-height:1.3;font-weight:700}
.hero-home .booking-card .booking-cta:hover{transform:none;background:#a71f28}
.hero-home .booking-foot{font-size:15px;line-height:1.45;margin-top:12px;text-align:center;color:#536373}
.hero-slider-bar{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:20px;padding-top:10px;color:#fff}
.hero-scene-name{display:flex;align-items:center;gap:20px;font-size:16px;font-weight:600;line-height:1.4}
.hero-count{font:500 14px/1.4 Arial,Helvetica,sans-serif;letter-spacing:.08em;opacity:.85;border-right:1px solid #ffffff60;padding-right:20px}
.hero-assurances{background:#fff;border-bottom:1px solid #dce1e6}
.hero-assurances>.wrap{display:flex;justify-content:space-between;gap:26px;padding-block:23px}
.hero-assurances span{display:flex;align-items:center;gap:12px;font-size:17px;color:#26374a;font-weight:600}
.hero-assurances svg{width:25px;height:25px;flex:none;color:#3d5d76}
.hero-home .arrival-guide{background:#f2f5f7;color:#26374a;padding:50px 0}
.hero-home .arrival-guide .compact-heading p,.hero-home .arrival-steps p{color:#536373}
.hero-home .arrival-guide .compact-heading h2{font:700 34px/1.2 Arial,Helvetica,sans-serif;letter-spacing:-.035em;color:#26374a}
.hero-home .arrival-guide .compact-heading a{color:#26374a;border-color:#8c9eab}
.hero-home .arrival-steps article>span{border-color:#b9c8d3;color:#26374a}
.hero-home .more-plans h2,.hero-home .quick-faq h2,.hero-home .personal-care h2{font-family:Arial,Helvetica,sans-serif;font-weight:700;letter-spacing:-.035em}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1500px){.hero-home .hero-layout{min-height:690px}.hero-scene img{object-position:center 65%}}
@media(max-width:1100px) and (min-width:781px){.hero-home .hero-layout{width:calc(100% - 56px);grid-template-columns:minmax(0,1fr) minmax(380px,450px);gap:28px}.hero-intro h1{font-size:48px}.hero-home .booking-card{padding:24px}.hero-home .service-options button{font-size:16px;gap:7px;padding:11px 10px}.hero-home .nav-wrap{height:84px;min-height:84px}.hero-lead{font-size:20px}}
@media(max-width:780px){
 .hero-home .preview-note{font-size:12px;padding:3px 8px}
 .hero-home .nav-wrap{height:74px;min-height:74px;width:calc(100% - 36px);padding-block:8px}
 .hero-home .logo img{width:162px}
 .hero-home .menu-toggle{min-height:46px}
 .hero-home .hero-layout{display:flex;flex-direction:column;align-items:stretch;width:calc(100% - 32px);min-height:0;padding:23px 0 18px;gap:19px}
 .hero-intro{padding:0 5px;align-self:stretch}
 .hero-kicker{font-size:13px;letter-spacing:.1em;margin-bottom:9px}
 .hero-intro h1{font-size:38px;line-height:1.08;letter-spacing:-.04em;max-width:400px}
 .hero-intro h1 br{display:none}
 .hero-lead,.hero-personal{display:none}
 .hero-shade{background:linear-gradient(180deg,#102d487a,#102d4830 210px,#102d4880),linear-gradient(90deg,#102d4844,transparent)}
 .hero-scene img{object-position:54% 70%}
 .scene-van img{width:100%;object-position:44% center}
 .scene-tulum img{object-position:54% center}
 .hero-home .booking-card{padding:20px 18px 17px;border-radius:14px;align-self:stretch;scroll-margin-top:92px}
 .hero-home .booking-heading{margin-bottom:15px}
 .hero-home .booking-heading h2{font-size:22px;line-height:1.3}
 .hero-home .service-options{gap:8px}
 .hero-home .service-options button{font-size:17px;min-height:56px;line-height:1.25;padding:10px;gap:8px}
 .hero-home .service-options button svg{width:21px;height:21px}
 .hero-home .field-title{margin:15px 0 9px;font-size:16px}
 .hero-home #airport-options>.field-title{position:absolute;width:1px;height:1px;margin:0;overflow:hidden;clip:rect(0,0,0,0)}
 .hero-home #airport-options>:is(.trip-options,.direction-options){margin-top:15px}
 .hero-home :is(.trip-options,.direction-options){gap:8px}
 .hero-home :is(.trip-options,.direction-options) button{font-size:17px;min-height:48px;line-height:1.3;padding:10px 7px}
 .hero-home #direction-options button{font-size:16px}
 .hero-home .route-hint{margin:15px 0;font-size:16px;gap:8px;line-height:1.4}
 .hero-home .booking-card .booking-cta{min-height:56px;font-size:18px;padding:13px 14px}
 .hero-home .booking-foot{font-size:15px;margin-top:11px;line-height:1.4}
 .hero-slider-bar{flex-wrap:wrap;gap:10px;justify-content:space-between;padding:0 2px}
 .hero-scene-name{font-size:15px;gap:12px}
 .hero-count{font-size:13px;padding-right:12px}
 .hero-assurances>.wrap{width:calc(100% - 40px);padding-block:20px;display:grid;grid-template-columns:1fr;gap:14px}
 .hero-assurances span{font-size:17px;gap:11px}
 .hero-home .arrival-guide{padding:36px 0}
 .hero-home .arrival-guide .compact-heading h2{font-size:30px}
}
@media(max-width:370px){.hero-intro h1{font-size:35px}.hero-home .booking-card{padding-inline:14px}.hero-home .service-options button{font-size:16px;gap:7px}.hero-home .booking-card .booking-cta>span{font-size:17px}.hero-home .booking-foot{font-size:14px}}
@media(prefers-reduced-motion:reduce){.hero-scene{transition:none}}

.hero-home .arrival-guide h3,.hero-home .arrival-guide .eyebrow{color:#26374a}
