/* Geographic map and text-free circular magnifiers. */
.home-page .hero-editorial{--hero-room:calc(100svh - var(--header-height) - var(--experience-top-space) - var(--experience-peek));min-height:var(--hero-room)}
.home-page .hero-editorial .hero-content{grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:32px;padding-block:24px}
.home-page .hero-locations{position:relative;width:100%;max-width:470px;justify-self:center;align-self:center;padding:0;border:0;border-radius:0;background:none;box-shadow:none;backdrop-filter:none;direction:ltr;transform:translate3d(0,var(--hero-map-shift,0px),0)}
.home-page .hero-image-plane{transform:translate3d(0,var(--hero-background-shift,0px),0)}
.home-page .is-parallax-active :is(.hero-image-plane,.hero-locations){will-change:transform}
.mauritius-map{position:relative;width:100%;height:auto;padding:24px;box-sizing:border-box;isolation:isolate;direction:ltr;overflow:visible}
.mauritius-map::before{content:"";display:block;aspect-ratio:.8593504884}
.mauritius-map-art{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;filter:drop-shadow(0 12px 18px #031b3640) drop-shadow(0 3px 6px #04162630);box-shadow:none}
.map-island-image{opacity:.98;filter:none}
.map-fleet{position:absolute;inset:0;z-index:1;width:100%;height:100%;overflow:hidden;pointer-events:none}
.map-fleet image{filter:drop-shadow(0 2px 2px #05261f66)}
.home-page .hero-stop{position:absolute;z-index:20;isolation:isolate;width:140px;aspect-ratio:1;pointer-events:none}
.home-page .hero-stop.is-open{z-index:21}
.home-page .hero-stop .map-loupe{display:block;position:relative;width:100%;height:100%;min-height:0;aspect-ratio:1;padding:0;overflow:hidden;border:0;border-radius:50%;background:#619baa;backdrop-filter:none;animation:none;translate:none;scale:1;opacity:0;transform:scale(.14);box-shadow:0 12px 28px #03182966,0 2px 6px #03182933;transition:transform .32s cubic-bezier(.16,1,.3,1),opacity .18s ease;pointer-events:none;text-shadow:none}
.home-page .hero-stop.is-open .map-loupe{opacity:1;transform:scale(1);pointer-events:auto}
.home-page .hero-stop .map-loupe:after{content:'';position:absolute;inset:0;z-index:2;pointer-events:none;border-radius:inherit;backdrop-filter:blur(3px);mask:radial-gradient(circle,transparent 52%,#000 83%);background:radial-gradient(circle,transparent 55%,#06303d26 100%);box-shadow:inset 0 0 14px #082b3633}
.home-page .hero-stop .location-thumb{position:absolute;inset:0;z-index:0;display:block;width:100%;height:100%;object-fit:cover;border-radius:0;opacity:1;transform:scale(1);transition:transform .7s cubic-bezier(.16,1,.3,1),opacity .55s ease}
.home-page .hero-stop.is-open .location-thumb{transform:scale(1.24)}
.home-page .hero-stop .location-thumb.is-standby{opacity:0;pointer-events:none}
.home-page .hero-stop .map-loupe>.map-detail-zoom{display:block;position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;border-radius:0;background-repeat:no-repeat;transform:scale(1);transition:transform .7s cubic-bezier(.16,1,.3,1)}
.home-page .hero-stop.is-open .map-detail-zoom{transform:scale(1.08)}
.home-page .hero-stop .map-loupe:hover{scale:1;translate:none;outline:none;transform:scale(1.04);box-shadow:0 15px 30px #03182970}
.home-page .hero-stop .map-loupe:focus-visible{outline:2px solid #88bfcc;outline-offset:3px}
.hero-stop-pin{position:absolute;z-index:7;display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:0;background:none;box-shadow:none;appearance:none;transform:translate(-50%,-100%);color:var(--orange);filter:drop-shadow(0 2px 4px #03162580);cursor:pointer}
.hero-stop-pin svg{width:14px;height:17px;align-self:end;overflow:visible;transition:transform .25s ease;transform-origin:50% 100%}
.hero-stop-pin path,.journey-route-pin path{fill:currentColor;stroke:#fff;stroke-width:1.4}
.hero-stop-pin circle,.journey-route-pin circle{fill:#fff}
.hero-stop-pin:hover,.hero-stop-pin[aria-expanded=true]{outline:none;background:none;box-shadow:none}
.hero-stop-pin[aria-expanded=true] svg{transform:translateY(-2px)}
.hero-stop-pin:focus-visible{outline:2px solid #a8d2dc;outline-offset:2px;border-radius:12px}
.hero-stop-pin::before,.hero-stop-pin::after{content:none;animation:none}
html[dir=rtl] .home-page .hero-locations{direction:ltr}
@media(max-width:1100px){.home-page .hero-editorial .hero-content{grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:22px}.home-page .hero-stop{width:124px}}
@media(max-width:900px){.home-page .hero-editorial .hero-content,html[dir=rtl] .home-page .hero-editorial .hero-content{grid-template-columns:minmax(0,1fr);gap:20px;padding-block:24px}.home-page .hero-copy{max-width:620px}.home-page .hero-locations,html[dir=rtl] .home-page .hero-locations{max-width:380px;justify-self:center}.mauritius-map{height:auto}body.home-page .hero-editorial .hero-copy h1{font-size:clamp(3rem,6.5vw,4rem);line-height:1.08}.home-page .hero-editorial .reveal-line{display:inline-block}.home-page .hero-description{max-width:550px}html[dir=rtl] .home-page .hero-editorial .hero-copy h1{line-height:1.3}}
@media(max-width:599px){.home-page .hero-editorial .hero-content{gap:12px;padding-block:22px 28px}.home-page .hero-locations{max-width:270px}.mauritius-map{height:auto}.home-page .hero-stop{width:100px}.home-page .hero-editorial .hero-actions{gap:10px}.home-page .hero-editorial .hero-actions .button{padding-inline:10px;gap:8px}.home-page .hero-editorial .hero-actions .text-link{font-size:.8125rem;gap:8px}.home-page #getting-around>.journey-route{inset:0}.journey-track path{stroke-opacity:.15}}
@media(prefers-reduced-motion:reduce){.home-page .hero-stop :is(.map-loupe,.location-thumb,.map-detail-zoom),.hero-stop-pin svg{transition:none}.home-page :is(.hero-image-plane,.hero-locations){transform:none;will-change:auto}}
/* A quiet route travels behind the transfer and rental feature boxes. */
.home-page #getting-around{position:relative;isolation:isolate;padding-top:72px;padding-bottom:144px}
.home-page #getting-around>.journey-route{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:visible}
.home-page #getting-around>:not(.journey-route){position:relative;z-index:1}
.journey-track{width:100%;height:100%;overflow:visible}
.journey-track path{fill:none;stroke:#143959;stroke-opacity:.2;stroke-width:2;stroke-dasharray:6 9;stroke-linecap:round;vector-effect:non-scaling-stroke}
.journey-route-pin{position:absolute;display:block;width:14px;height:17px;color:var(--orange);filter:drop-shadow(0 2px 4px #03162526);transform:translate(-50%,-100%)}
/* Keep the static scenic marker in source-image coordinates, below the content. */
.home-page .hero-editorial .hero-scene{z-index:0}
.home-page .hero-editorial:before{z-index:1}
.home-page .hero-editorial .hero-content{z-index:2}
.hero-scenic-pin{position:absolute;left:45%;top:54%;width:14px;height:17px;transform:translate(-50%,-96.4286%);color:var(--orange);filter:drop-shadow(0 2px 4px #03162580)}
.hero-scenic-pin svg{width:100%;height:100%;overflow:visible}
.hero-scenic-pin path{fill:currentColor;stroke:#fff;stroke-width:1.4}
.hero-scenic-pin circle{fill:#fff}
/* Real transparent cutouts sit on the route, clear of reading and action areas. */
.route-vehicle{position:absolute;display:block;object-fit:contain;height:auto;max-width:none;left:0;top:0;transform:translate(-50%,-78%);pointer-events:auto;transition:transform .3s cubic-bezier(.2,.65,.3,1);transform-origin:center 78%}
.route-vehicle--airplane{width:142px}
.route-vehicle--car{width:94px}
.route-vehicle--minibus{width:104px}
@media(max-width:850px){
 .home-page #getting-around .section-heading{margin-bottom:32px}
 .home-page #getting-around .transport-grid{row-gap:24px}
 .route-vehicle--airplane{width:96px}.route-vehicle--car{width:78px}
 .route-vehicle--minibus{width:90px}
}
@media(max-width:679px){.home-page #getting-around{padding-top:56px;padding-bottom:240px}}

@media(hover:hover) and (pointer:fine){.route-vehicle:hover{transform:translate(-50%,-78%) scale(1.08)}}
@media(prefers-reduced-motion:reduce){.route-vehicle{transition:none}.route-vehicle:hover{transform:translate(-50%,-78%)}}
.journey-route-pin svg{width:14px;height:17px;overflow:visible}

/* Photograph-first lenses, soft optical edges, and compact tablet composition. */
@media(min-width:600px) and (max-width:1180px){
 .home-page .hero-editorial{--hero-room:clamp(420px,60svh,570px);min-height:var(--hero-room)}
 .home-page .hero-editorial .hero-content,html[dir=rtl] .home-page .hero-editorial .hero-content{grid-template-columns:minmax(0,1fr) minmax(0,.88fr);gap:24px;padding-block:26px}
 .home-page .hero-locations,html[dir=rtl] .home-page .hero-locations{max-width:370px;justify-self:center}
 body.home-page .hero-editorial .hero-copy h1{font-size:clamp(2.5rem,5.2vw,3.9rem);line-height:1.1}
 .home-page .hero-description{font-size:.9375rem;line-height:1.55}
 .home-page .hero-actions{flex-wrap:wrap}
 .home-page .hero-stop{width:112px}
 .home-page #getting-around{padding-block:52px 130px}
}
@media(max-width:599px){
 .hero-stop-pin svg{width:11px;height:14px}
 .hero-scenic-pin,.journey-route-pin,.journey-route-pin svg{width:11px;height:13px}
 .hero-map-pin{width:14px;height:14px}
 .home-page .hero-stop{width:96px}
}

/* A centered lens opens around the geographic anchor, with a feathered rim. */
.home-page .hero-stop .map-loupe{mask-image:radial-gradient(circle,#000 57%,#000e 66%,transparent 72%);box-shadow:none}
.home-page .hero-stop .map-loupe:after{backdrop-filter:blur(2px);mask:radial-gradient(circle,transparent 49%,#000 77%);background:radial-gradient(circle,transparent 56%,#e2eff025);box-shadow:none}
.home-page .hero-stop{filter:drop-shadow(0 8px 12px #03233e45)}
@media(prefers-reduced-motion:no-preference){
 .hero-stop-pin svg{animation:map-pin-bounce 3.6s ease-in-out infinite}
 .hero-stop-pin:nth-of-type(2n) svg{animation-delay:.6s}
 .hero-stop-pin:nth-of-type(3n) svg{animation-delay:1.2s}
 .hero-stop-pin:is(:hover,:focus-visible,[aria-expanded=true]) svg{animation-play-state:paused}
 @keyframes map-pin-bounce{0%,65%,100%{translate:0 0}76%{translate:0 -5px}85%{translate:0 0}92%{translate:0 -2px}}
}
/* Original layout in English; Arabic mirrors only the scenic photograph. */
html[lang=ar] .home-page .hero-background{transform:scaleX(-1)}
/* Keep the scenic marker anchored to its location in the mirrored photograph. */
html[lang=ar] .home-page .hero-scenic-pin{left:55%}

/* Scenic vehicle photographs retain their coastal surroundings in a close crop. */
.home-page .hero-stop .map-scenic-vehicle .location-thumb{object-fit:contain;object-position:center}
.home-page .hero-stop.is-open .map-scenic-vehicle .location-thumb{transform:scale(1)}

/* Only the active marker rises above the photo; inactive markers stay below it. */
.hero-stop-pin[aria-expanded=true]{z-index:22}
.hero-stop-pin[aria-expanded=true] svg{opacity:1}

/* Reserve space for a fully open northern lens and the map's parallax travel. */
@media(max-width:599px){
 .home-page .hero-editorial .hero-content,html[dir=rtl] .home-page .hero-editorial .hero-content{row-gap:56px}
 .home-page .hero-locations,html[dir=rtl] .home-page .hero-locations{width:min(100%,270px);max-width:270px;justify-self:center;margin-inline:auto}
}

.hero-locations[data-map-playback=paused] .hero-stop-pin svg{animation-play-state:paused}
