:root {
  --forest: #10251b;
  --forest-soft: #19392a;
  --gold: #edbd67;
  --cream: #f2ecde;
  --paper: #fbf7ed;
  --ink: #171913;
  --muted: #625f55;
  --serif: "Playfair Display", Georgia, serif;
  --sans: "DM Sans", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--cream);
  font-family: var(--sans);
  font-size: 15px;
  line-height: 1.5;
  overflow-x: hidden;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
.wrap { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }

.hero {
  position: relative;
  min-height: 570px;
  color: #fff;
  background-image:
    linear-gradient(90deg, rgba(7,17,12,.83), rgba(7,17,12,.14) 78%),
    linear-gradient(0deg, rgba(6,14,10,.46), transparent 54%),
    url("public/images/backgrounds/hero-tadoba-hd.webp");
  background-position: center, center, 0% 43%;
  background-size: cover;
  isolation: isolate;
}
.hero::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  content: "";
  background: linear-gradient(180deg, rgba(7,16,11,.28), transparent 35%);
}
.nav {
  position: relative;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 82px;
  gap: 22px;
}
.brand { flex: 0 0 auto; }
.brand img { width: 42px; height: auto; }
.nav-links { display: flex; align-items: center; gap: clamp(12px, 2.1vw, 28px); color: white; font-size: 13px; }
.nav-links a { padding: 10px 0; white-space: nowrap; }
.nav-links a:hover, .nav-links .active { color: var(--gold); }
.nav-links .active { border-bottom: 1px solid var(--gold); }
.menu-toggle { display: none; }
.button {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 11px 22px;
  border: 0;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.2;
  cursor: pointer;
  transition: transform .2s ease, filter .2s ease;
}
.button:hover { transform: translateY(-2px); filter: brightness(1.06); }
.button:focus-visible, a:focus-visible, button:focus-visible { outline: 3px solid #f3ca80; outline-offset: 3px; }
.gold { color: #171711; background: var(--gold); }
.green { color: #fff; background: var(--forest-soft); }
.nav-enquiry { min-height: 40px; padding: 10px 19px; white-space: nowrap; }
.hero-content { padding-top: 54px; }
.eyebrow { margin: 0 0 8px; color: #e9ba62; font-size: 10px; font-weight: 700; letter-spacing: 4px; }
.hero h1 {
  max-width: 720px;
  margin: 0 0 15px;
  font: 600 clamp(48px, 6vw, 74px)/.99 var(--serif);
  letter-spacing: -2px;
  text-wrap: balance;
}
.hero-copy { max-width: 560px; margin: 0; color: #f7f3e9; font-size: 15px; line-height: 1.55; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; margin-top: 24px; }
.video-link { display: inline-flex; align-items: center; gap: 10px; font-size: 13px; }
.video-link i { display: grid; width: 35px; height: 35px; place-items: center; border: 1px solid #fff; border-radius: 50%; font-size: 11px; font-style: normal; }
.script-note { position: absolute; right: max(6%, calc((100% - 1180px)/2)); bottom: 72px; color: white; font: italic 25px/1.1 var(--serif); text-shadow: 0 2px 8px #111; transform: rotate(-7deg); }

.features { padding: 26px 0 28px; background: var(--cream); }
.feature-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px 12px; }
.feature-row > div { display: flex; min-width: 0; align-items: center; gap: 11px; }
.feature-row b { font-size: 23px; font-weight: 400; }
.feature-row strong, .feature-row small { display: block; }
.feature-row strong { font-size: 11px; }
.feature-row small { margin-top: 2px; color: var(--muted); font-size: 10px; }

.dark-section { position: relative; overflow: hidden; color: #fff; background: var(--forest); }
.rooms { padding: 36px 0 34px; }
.section-leaves::before { position: absolute; inset: 0; content: ""; background: url("public/images/backgrounds/leaves-left.webp") left top/280px auto no-repeat, url("public/images/backgrounds/forest-texture.webp") center/cover; opacity: .13; pointer-events: none; }
.dark-section > .wrap { position: relative; z-index: 1; }
.section-head { margin: 0 auto 25px; text-align: center; }
.section-head .eyebrow { margin-bottom: 5px; }
.section-head h2, .gates h2, .review-heading h2 { margin: 0 0 8px; font: 600 31px/1.2 var(--serif); letter-spacing: -.5px; }
.section-head > p:last-child { margin: 0; font-size: 13px; }
.card-grid { display: grid; gap: 16px; }
.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.photo-card { position: relative; min-width: 0; height: 220px; overflow: hidden; border: 1px solid #ad8c53; border-radius: 12px; background: #0a110d; }
.photo-card::after { position: absolute; inset: 30% 0 0; content: ""; background: linear-gradient(transparent, rgba(0,0,0,.91)); pointer-events: none; }
.photo-card > img { width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform .45s ease; }
.photo-card:hover > img { transform: scale(1.035); }
.card-caption { position: absolute; z-index: 1; right: 12px; bottom: 12px; left: 13px; }
.card-caption h3 { margin: 0 32px 3px 0; font-size: 14px; line-height: 1.25; }
.card-caption p { margin: 0; color: #f3f0e8; font-size: 10px; line-height: 1.35; }
.card-caption a { position: absolute; right: 0; bottom: 3px; display: grid; width: 27px; height: 27px; place-items: center; border-radius: 50%; color: #171711; background: var(--gold); font-size: 18px; }

.gates { padding: 44px 0; background: #f4eddf url("public/images/backgrounds/leaves-right.webp") right center/230px auto no-repeat; }
.gates-layout { display: grid; grid-template-columns: .95fr 1.05fr; align-items: center; gap: 32px; }
.dark-eye { color: #25271e; }
.gates h2 { font-size: 34px; }
.gates-layout > div:first-child > p:not(.eyebrow) { max-width: 520px; margin: 12px 0 14px; font-size: 14px; line-height: 1.6; }
.gate-distances { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 12px; margin: 0 0 18px; padding-left: 18px; font-size: 12px; }
.gate-photo-grid { display: grid; min-width: 0; grid-template-columns: 1fr 1fr; grid-template-rows: 155px 125px; gap: 10px; }
.gate-photo-grid img { width: 100%; height: 100%; object-fit: cover; border: 1px solid #d2c6ae; border-radius: 11px; }
.gate-photo-grid img:first-child { grid-row: span 2; }

.experiences { padding: 34px 0 36px; background: linear-gradient(180deg, rgba(16,37,27,.68), rgba(16,37,27,.84) 52%, rgba(16,37,27,.92)), url("public/images/backgrounds/experiences-forest-hd.webp") center 48%/cover no-repeat; }
.experiences.section-leaves::before { background: none; }
.experiences .photo-card { height: 235px; }
.safari-note { display: flex; flex-direction: column; gap: 5px; margin-top: 16px; padding: 14px 17px; border: 1px solid #69806c; border-radius: 9px; background: #ffffff0b; font-size: 12px; line-height: 1.55; }
.safari-note strong { color: var(--gold); }

.cream { background: var(--cream); }
.gallery { padding: 32px 0 30px; }
.gallery .section-head { margin-bottom: 20px; }
.gallery .section-head h2 { color: var(--ink); }
.gallery-row { position: relative; padding: 0 16px; }
.gallery-viewport { overflow: hidden; border-radius: 12px; }
.gallery-track { display: flex; gap: 12px; transform: translate3d(0,0,0); transition: transform 760ms cubic-bezier(.22,.75,.25,1); will-change: transform; }
.gallery-slide { position: relative; flex: 0 0 calc((100% - 48px)/5); min-width: 0; height: 180px; margin: 0; overflow: hidden; border: 1px solid #cbbd9f; border-radius: 10px; background: #d9d0be; }
.gallery-slide img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 700ms ease; }
.gallery-slide:hover img { transform: scale(1.045); }
.gallery-slide-ai::after { position:absolute; inset:45% 0 0; content:""; background:linear-gradient(transparent,#09140eb8); pointer-events:none; }
.gallery-slide-ai figcaption { position:absolute; z-index:1; right:10px; bottom:9px; color:#fff4dd; font:600 9px "DM Sans",sans-serif; letter-spacing:.16em; }
.gallery-arrow { position: absolute; z-index: 1; top: 50%; display: grid; width: 35px; height: 35px; place-items: center; border: 1px solid #e2d5bc; border-radius: 50%; color: white; background: var(--forest-soft); font-size: 19px; transform: translateY(-50%); cursor: pointer; }
.gallery-arrow.prev { left: 0; }
.gallery-arrow.next { right: 0; }
.gallery-toggle { position:absolute; right:12px; bottom:10px; z-index:2; width:32px; height:32px; border:1px solid #e2d5bc; border-radius:50%; color:white; background:#10251bdc; cursor:pointer; font-size:13px; }
.gallery-arrow:focus-visible,.gallery-toggle:focus-visible { outline:3px solid #dfa94f; outline-offset:3px; }
@media (prefers-reduced-motion: reduce) { .gallery-track,.gallery-slide img { transition:none; } }
.reviews { margin-top: 27px; }
.review-heading { display: flex; align-items: end; justify-content: space-between; gap: 15px; margin: 0 4px 13px; }
.review-heading h2 { margin: 0; font-size: 26px; }
.review-heading .eyebrow { margin-bottom: 4px; font-size: 9px; }
.review-heading > a { flex: 0 0 auto; font-size: 11px; text-decoration: underline; }
.review-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.review { min-width: 0; min-height: 151px; padding: 15px 18px; border: 1px solid #ded4c0; border-radius: 11px; background: var(--paper); }
.stars { color: #e89a21; font-size: 15px; letter-spacing: 2px; }
.review > p { margin: 7px 0 10px; color: #444; font-size: 12px; line-height: 1.45; }
.reviewer { display: flex; align-items: center; gap: 9px; }
.reviewer .initial { display: grid; width: 30px; height: 30px; flex: 0 0 auto; place-items: center; border-radius: 50%; color: white; background: var(--forest-soft); font-size: 9px; font-weight: 700; }
.reviewer b, .reviewer small { display: block; font-size: 10px; }
.reviewer small { margin-top: 2px; color: #777; font-size: 9px; }

footer { color: white; background: linear-gradient(0deg, #07100d 0, #07100ddd 36%, #07100d2b), url("public/images/backgrounds/footer-sunset-hd.webp") center/cover; }
.footer-cta { padding: 29px 12px 18px; text-align: center; }
.footer-cta h2 { margin: 0 0 4px; font: 600 27px var(--serif); }
.footer-cta p { margin: 0 0 13px; font-size: 12px; }
.footer-cta .button { min-width: 130px; }
.footer-bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 20px; padding: 20px 0 24px; }
.footer-bottom > a img { width: 46px; height: auto; }
.footer-links { display: flex; flex-wrap: wrap; gap: 12px 15px; font-size: 11px; }
.contact-info { display: flex; align-items: center; gap: 12px; font-size: 12px; }
.address { width: 100%; margin: 0; color: #eee8d9; font-size: 11px; text-align: center; }
.address a { text-decoration: underline; }

@media (max-width: 980px) {
  .wrap { width: min(100% - 40px, 760px); }
  .nav { gap: 14px; }
  .brand img { width: 40px; }
  .nav-links { gap: 12px; font-size: 12px; }
  .nav-enquiry { padding-inline: 14px; }
  .features { padding: 21px 0; }
  .feature-row { justify-content: space-between; gap: 15px 7px; }
  .feature-row > div { width: calc(50% - 4px); gap: 8px; }
  .feature-row b { font-size: 21px; }
  .feature-row strong { font-size: 10px; }
  .feature-row small { font-size: 9px; }
  .rooms, .experiences { padding: 31px 0; }
  .section-head { margin-bottom: 19px; }
  .section-head h2, .gates h2 { font-size: 26px; }
  .section-head > p:last-child { font-size: 12px; line-height: 1.5; }
  .four { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .photo-card, .experiences .photo-card { height: 190px; border-radius: 10px; }
  .card-caption { right: 8px; bottom: 9px; left: 9px; }
  .card-caption h3 { font-size: 12px; }
  .card-caption p { padding-right: 18px; font-size: 9px; }
  .card-caption a { width: 23px; height: 23px; font-size: 16px; }
  .gates { padding: 33px 0; background-size: 130px auto; }
  .gates-layout { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .gates-layout > div:first-child > p:not(.eyebrow) { font-size: 13px; }
  .gate-distances { gap: 5px 10px; font-size: 11px; }
  .gate-photo-grid { grid-template-rows: 132px 104px; gap: 8px; }
  .experiences .card-grid { gap: 10px; }
  .safari-note { margin-top: 13px; padding: 12px; font-size: 11px; }
  .gallery { padding: 30px 0; }
  .gallery-row { padding: 0 11px; }
  .gallery-track { gap: 8px; }
  .gallery-slide { flex-basis: calc((100% - 8px)/2); height: 142px; }
  .gallery-arrow { width: 30px; height: 30px; }
  .reviews { margin-top: 23px; }
  .review-heading { display: block; margin-bottom: 11px; }
  .review-heading h2 { font-size: 23px; }
  .review-heading > a { display: inline-block; margin-top: 6px; }
  .review-grid { grid-template-columns: minmax(0, 1fr); gap: 9px; }
  .review { min-height: unset; padding: 12px 14px; }
  .review > p { margin: 5px 0 8px; font-size: 11px; }
  .footer-cta { padding-top: 25px; }
  .footer-cta h2 { font-size: 23px; }
  .footer-cta p { max-width: 340px; margin-inline: auto; }
  .footer-bottom { justify-content: center; gap: 12px; padding: 17px 0; text-align: center; }
  .footer-bottom > a img { width: 42px; margin-inline: auto; }
  .footer-bottom > a:first-child { width: 100%; }
  .footer-links { justify-content: center; gap: 8px 12px; font-size: 10px; }
  .contact-info { width: 100%; justify-content: center; font-size: 11px; }
  .address { line-height: 1.65; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

.legal-links{display:flex;flex-wrap:wrap;gap:10px 20px;justify-content:center;width:100%;padding-top:14px;border-top:1px solid rgba(255,255,255,.16);font-size:.82rem}.legal-links a{color:#f2ead6}.whatsapp-float{position:fixed;z-index:60;right:20px;bottom:20px;display:flex;align-items:center;gap:9px;padding:12px 17px;background:#168b55;color:#fff;border:1px solid rgba(255,255,255,.55);border-radius:999px;box-shadow:0 8px 24px #0005;font-weight:700;text-decoration:none}.whatsapp-float svg{width:24px;height:24px;fill:currentColor}.whatsapp-float:hover{background:#0d6e40;transform:translateY(-2px)}
.policy-page{min-height:100vh;background:#f5f0e4;color:#1d241e}.policy-top{background:#11251b;color:#f7f1e4}.policy-nav{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:24px}.policy-nav img{width:44px;max-height:88px}.policy-nav-links{display:flex;gap:20px;align-items:center;flex-wrap:wrap}.policy-nav-links a{color:#f7f1e4;text-decoration:none;font-size:.92rem}.policy-hero{padding:60px 0 36px;background:linear-gradient(110deg,#13291e,#213d2c);color:#fff}.policy-hero .eyebrow{color:#e5b761}.policy-hero h1{font:600 clamp(2rem,5vw,3.4rem)/1.12 "Playfair Display",Georgia,serif;margin:8px 0 12px}.policy-hero p{max-width:760px;color:#e8e7dd}.policy-main{max-width:900px;padding:42px 28px 72px;margin:0 auto}.policy-main h2{font:600 1.5rem/1.25 "Playfair Display",Georgia,serif;margin:34px 0 10px;color:#193528}.policy-main h2:first-child{margin-top:0}.policy-main p,.policy-main li{line-height:1.75}.policy-main ul{padding-left:22px}.policy-main a{color:#17633e}.policy-callout{padding:18px 20px;background:#fff9ec;border-left:4px solid #d4a84c;border-radius:8px;margin:22px 0}.policy-back{display:inline-flex;margin-top:28px}.faq-list details{padding:18px 0;border-bottom:1px solid #d9d2c2}.faq-list summary{cursor:pointer;font-weight:700;color:#193528}.faq-list details p{margin-bottom:0}.policy-footer{background:#101b15;color:#eee6d7;padding:24px 0;text-align:center;font-size:.9rem}.policy-footer a{color:#f1cb7b}.policy-footer p{margin:7px 0}@media(max-width:700px){.legal-links{justify-content:flex-start;gap:10px 16px}.whatsapp-float{right:13px;bottom:13px;padding:12px;border-radius:50%;width:54px;height:54px;justify-content:center}.whatsapp-float span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.policy-nav{padding:15px 0;align-items:flex-start;flex-direction:column;gap:13px}.policy-nav img{width:38px}.policy-nav-links{gap:12px 16px}.policy-hero{padding:42px 0 28px}.policy-main{padding:32px 20px 56px}}

@media (max-width: 760px) {
  .nav { min-height: 72px; gap: 10px; }
  .brand img { width: 38px; }
  .menu-toggle { display: grid; place-items: center; width: 42px; height: 42px; margin-left: auto; border: 1px solid #ffffff80; border-radius: 50%; color: #fff; background: #10251b99; font-size: 22px; cursor: pointer; }
  .nav-links { position: absolute; top: 62px; right: 0; left: 0; display: none; flex-direction: column; align-items: stretch; gap: 0; padding: 8px 16px; border: 1px solid #ffffff25; border-radius: 12px; background: #10251bf5; box-shadow: 0 12px 24px #0005; }
  .nav-links.open { display: flex; }
  .nav-links a { padding: 11px 4px; }
  .nav-enquiry { min-height: 40px; padding: 9px 13px; font-size: 11px; }
  .hero { min-height: 600px; background-position: center, center, 28% center; }
  .hero-content { padding-top: 38px; }
  .hero h1 { max-width: 550px; font-size: clamp(43px, 11vw, 58px); letter-spacing: -1.5px; }
  .hero-copy { max-width: 440px; font-size: 14px; }
  .hero-actions { gap: 12px; margin-top: 20px; }
  .script-note { display: none; }
  .wrap { width: min(100% - 32px, 600px); }
  .features { padding: 18px 0; }
  .feature-row { gap: 14px 8px; }
  .feature-row > div { width: calc(50% - 4px); }
  .four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 420px) {
  .brand img { width: 36px; }
  .nav { gap: 7px; }
  .nav-enquiry { padding-inline: 10px; font-size: 10px; }
  .hero { min-height: 590px; }
  .hero-content { padding-top: 34px; }
  .hero h1 { font-size: clamp(40px, 10.6vw, 48px); }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 12px; }
  .feature-row > div { width: 100%; }
}

/* Shared site navigation, enquiry-only actions, and low-cost motion */
.site-header { position: relative; z-index: 5; background: #10251b; color: #fff; }
.site-header .nav { min-height: 86px; }
.nav-enquiry { max-width: 164px; gap: 6px; padding: 10px 14px; font-size: 11px; }
.nav-enquiry span { font-size: 14px; }
.forest-three { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.hero::after { position: absolute; z-index: 1; inset: 0; content: ""; opacity: 0; pointer-events: none; background: radial-gradient(330px circle at var(--cursor-x, 50%) var(--cursor-y, 50%), rgba(237,189,103,.17), transparent 78%); transition: opacity .3s ease; }
.hero-content { position: relative; z-index: 2; }
.hero { background-position: center, center, 0% calc(43% + var(--hero-shift, 0px)); }
.photo-card { transform: perspective(900px) rotateX(var(--tilt-y,0deg)) rotateY(var(--tilt-x,0deg)); transform-style: preserve-3d; transition: transform .24s ease, border-color .25s ease, box-shadow .25s ease; }
.photo-card:hover { border-color: #f0c878; box-shadow: 0 14px 36px #0005; }
.day-plan { padding: 56px 0 62px; color: #1b241d; background: linear-gradient(135deg,#f8f1e3,#ebe1cd); }
.day-plan .section-head { max-width: 760px; }
.day-plan .section-head h2 { color: #14271c; }
.day-plan-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; margin: 28px 0 24px; }
.day-step { position: relative; min-height: 224px; padding: 24px 23px 21px; overflow: hidden; border: 1px solid #d8c8a7; border-radius: 15px; background: #fffaf0; box-shadow: 0 10px 28px #43351c0b; }
.day-step::after { position: absolute; right: -27px; bottom: -40px; width: 120px; height: 120px; content: ""; border: 1px solid #d8c8a77a; border-radius: 50%; box-shadow: 0 0 0 14px #d8c8a729,0 0 0 30px #d8c8a71a; }
.day-icon { display: inline-grid; width: 38px; height: 38px; place-items: center; border-radius: 50%; color: #f3d08c; background: #173629; font-size: 12px; font-weight: 700; }
.day-time { margin: 16px 0 4px; color: #9a7130; font-size: 9px; font-weight: 700; letter-spacing: 2px; }
.day-step h3 { margin: 0 0 8px; color: #14271c; font: 600 21px/1.25 var(--serif); }
.day-step > p:last-child { max-width: 330px; margin: 0; color: #58584e; font-size: 12px; line-height: 1.65; }
.day-enquiry { display: flex; width: fit-content; margin: 0 auto; }
.reveal { opacity: 0; transform: translateY(22px); transition: opacity .65s ease, transform .65s cubic-bezier(.2,.7,.2,1); }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
.photo-card.reveal { transform: perspective(900px) translateY(22px) rotateX(var(--tilt-y,0deg)) rotateY(var(--tilt-x,0deg)); }
.photo-card.reveal.is-visible { transform: perspective(900px) translateY(0) rotateX(var(--tilt-y,0deg)) rotateY(var(--tilt-x,0deg)); }
@media (hover:hover) and (pointer:fine) {
  .hero:hover::after { opacity: 1; }
  .button { transition: transform .22s ease, filter .22s ease, box-shadow .22s ease; }
  .button:hover { box-shadow: 0 8px 24px #0003; }
}
@media (max-width: 760px) {
  .site-header .nav { min-height: 80px; }
  .nav-enquiry { max-width: 128px; padding: 9px 10px; font-size: 9px; }
  .day-plan { padding: 42px 0 46px; }
  .day-plan-grid { grid-template-columns: 1fr; gap: 11px; margin: 21px 0; }
  .day-step { min-height: 0; padding: 19px; }
  .day-time { margin-top: 12px; }
}
@media (max-width: 420px) {
  .nav-enquiry { max-width: 119px; padding-inline: 8px; font-size: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  .forest-three { display: none; }
  .reveal, .reveal.is-visible, .photo-card, .photo-card.reveal, .photo-card.reveal.is-visible { opacity: 1; transform: none; transition: none; }
}

.forest-three[hidden] { display: none !important; }
.forest-three { opacity: 0; transition: opacity .35s ease; }
.forest-three[data-ready="true"] { opacity: .72; }
@media (max-width: 760px) {
  .hero { background-position: center, center, 28% calc(50% + var(--hero-shift, 0px)); }
}
@media (max-width: 380px) {
  .hero h1 { font-size: clamp(35px, 9.8vw, 37px); }
  .hero-copy { font-size: 13px; }
}
@media (max-width: 380px) {
  .hero { background-position: center, center, 25% calc(50% + var(--hero-shift, 0px)); }
}

/* Responsive forest gateway explainer and refined mobile hero */
.features { padding: 22px 0; }
.feature-row { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:12px; }
.feature-row > div { min-height:54px; gap:9px; padding:8px 9px; border-right:1px solid #d6cdbb; }
.feature-row > div:last-child { border-right:0; }
.feature-row b { flex:0 0 auto; color:#244d35; font-size:22px; }
.feature-row b svg { display:block; width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.55; stroke-linecap:round; stroke-linejoin:round; }
.feature-row strong { font-size:10px; line-height:1.25; }
.feature-row small { font-size:9px; line-height:1.3; }
.gates { position:relative; overflow:hidden; padding:58px 0; background:#f4eddf; }
.gates::before { position:absolute; inset:0; content:""; background:radial-gradient(ellipse at 76% 48%,#e3d8c2 0,transparent 53%); pointer-events:none; }
.gates-layout { position:relative; z-index:1; grid-template-columns:minmax(245px,.72fr) minmax(0,1.28fr); gap:clamp(24px,4vw,58px); }
.gates-intro .eyebrow { margin-bottom:12px; }
.gates h2 { color:#18271d; font-size:clamp(31px,2.8vw,38px); line-height:1.12; }
.gates-layout > .gates-intro > p:not(.eyebrow) { max-width:450px; margin:14px 0 16px; font-size:14px; line-height:1.7; }
.gate-key { display:flex; flex-wrap:wrap; gap:18px; margin:0 0 21px; color:#344237; font-size:11px; font-weight:600; }
.gate-key span { display:flex; align-items:center; gap:7px; }
.gate-key i { width:10px; height:10px; border-radius:50%; box-shadow:0 0 0 3px #ffffffa0; }
.core-dot { background:#176840; }.buffer-dot { background:#d1a34e; }
.gates-intro .button { font-size:12px; }
.gates-layout > .gates-intro .map-disclaimer { margin-top:14px!important; color:#706b5f; font-size:10px!important; line-height:1.5!important; }
.gate-explorer { min-width:0; }
.gate-map { position:relative; height:270px; overflow:hidden; border:1px solid #d5c7ab; border-radius:18px; background:radial-gradient(ellipse at 50% 48%,#ede5d5 0 31%,#f8f3e8 68%,#eee5d3 100%); box-shadow:0 14px 36px #44351d14,inset 0 0 45px #b4a4771c; }
.gate-map::after { position:absolute; inset:0; content:""; opacity:.23; background:repeating-linear-gradient(138deg,transparent 0 22px,#a8997a1e 23px,#a8997a1e 24px,transparent 25px 48px); pointer-events:none; }
.gate-routes { position:absolute; z-index:2; inset:0; width:100%; height:100%; overflow:visible; }
.route { fill:none; stroke:#54765a; stroke-width:2; stroke-dasharray:2 8; stroke-linecap:round; opacity:.75; }
.route-branch { stroke:#bb9c5d; stroke-dasharray:2 9; opacity:.7; }
.park-shape { position:absolute; z-index:1; top:50%; left:50%; width:39%; height:83%; display:grid; place-items:center; overflow:hidden; border:1px solid #53734a66; border-radius:43% 51% 45% 49% / 35% 40% 60% 61%; background:radial-gradient(ellipse at 44% 39%,#90a879,#6e8b5c 49%,#526f4c 100%); box-shadow:0 0 0 9px #728b531a,0 0 0 19px #728b5310; transform:translate(-50%,-50%) rotate(-8deg); }
.park-shape::before,.park-shape::after { position:absolute; content:""; width:70%; height:1px; background:#d1d9b449; transform:rotate(38deg); }
.park-shape::after { transform:rotate(-42deg); }
.park-canopy { position:absolute; width:115px; height:80px; border-radius:50%; background:#294b3430; filter:blur(7px); }
.canopy-one { top:8%;left:4%; }.canopy-two { bottom:2%;right:-12%; }.canopy-three { top:41%;right:-24%; }
.park-title { position:relative; z-index:2; display:flex; flex-direction:column; align-items:center; color:#fff9e8; font:600 clamp(15px,1.6vw,20px)/1.1 var(--sans); letter-spacing:1px; text-align:center; text-shadow:0 1px 5px #28432c80; transform:rotate(8deg); }
.park-title small { margin-top:4px; font-size:8px; letter-spacing:1.4px; }.park-title b { margin-top:8px; color:#e8cc83; font-size:21px; }
.map-pin { position:absolute; z-index:3; display:grid; width:27px;height:27px;place-items:center;border:2px solid white;border-radius:50%;color:white;background:#176840;box-shadow:0 3px 10px #263a2c50;font-size:10px; }
.map-pin small { position:absolute; top:29px; left:50%; padding:3px 7px; border-radius:4px; color:#26372a; background:#fff9ebde; font-size:10px; font-weight:700; white-space:nowrap; transform:translateX(-50%); }
.pin-moharli { left:12%;top:20%; }.pin-kolara { right:13%;top:18%; }.pin-navegaon { left:12%;bottom:18%; }.pin-agarzari { right:13%;bottom:19%; background:#b98a36; }
.map-compass { position:absolute; z-index:3; top:12px;right:15px;color:#425846;font-size:9px;line-height:1.1;text-align:center; }
.gate-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:12px; }
.gate-card { display:grid; min-width:0; grid-template-columns:92px minmax(0,1fr); min-height:91px; overflow:hidden; border:1px solid #d9ceb9; border-radius:11px; background:#fffaf0; box-shadow:0 4px 14px #39301c0b; transition:transform .25s ease,box-shadow .25s ease; }
.gate-card:hover { transform:translateY(-3px); box-shadow:0 9px 20px #39301c18; }
.gate-card img { width:92px;height:100%;min-height:91px;object-fit:cover; }
.gate-card > div { align-self:center; padding:8px 10px; }
.gate-type { display:block;margin-bottom:4px;color:#69705b;font-size:8px;font-weight:700;letter-spacing:.75px; }
.gate-type.core { color:#276344; }.gate-type.buffer { color:#9a7028; }
.gate-card h3 { margin:0 0 2px;color:#20291f;font:600 16px/1.2 var(--serif); }
.gate-card p { margin:0;color:#5c5a50;font-size:10px;line-height:1.4; }
.forest-three { position:absolute; z-index:0; inset:0; width:100%; height:100%; opacity:0; pointer-events:none; transition:opacity .35s ease; }
.forest-three[data-ready="true"] { opacity:.7; }
.hero-content { z-index:2; }
.hero h1 { font-size:clamp(48px,5.1vw,66px); }
@media(max-width:980px) {
 .feature-row { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .feature-row > div:nth-child(3n) { border-right:0; }
 .gates-layout { grid-template-columns:minmax(0,1fr); gap:22px; }
 .gates-intro { max-width:700px; }
 .gate-map { height:300px; }
}
@media(max-width:760px) {
 .hero { min-height:520px; background-position:center,center,27% 50%; }
 .hero-content { padding-top:30px; }
 .hero h1 { max-width:500px; font-size:clamp(40px,10.5vw,52px); }
 .hero-copy { max-width:430px; font-size:13px; }
 .hero-actions { margin-top:17px; }
 .features { padding:16px 0; }
 .feature-row { grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px 6px; }
 .feature-row > div { width:auto; min-height:54px; padding:7px 5px; gap:7px; border-right:1px solid #d6cdbb; }
 .feature-row > div:nth-child(2n) { border-right:0; }
 .feature-row > div:nth-child(3n) { border-right:1px solid #d6cdbb; }
 .feature-row > div:last-child { border-right:0; }
 .feature-row b { font-size:19px; }
 .feature-row strong { font-size:9px; }.feature-row small { font-size:8px; }
 .gates { padding:38px 0; }
 .gates-layout { gap:18px; }
 .gates h2 { font-size:31px; }
 .gates-layout > .gates-intro > p:not(.eyebrow) { font-size:13px; }
 .gate-map { height:250px; border-radius:14px; }
 .park-shape { width:43%;height:83%; }
 .gate-card { grid-template-columns:78px minmax(0,1fr); min-height:86px; }
 .gate-card img { width:78px;min-height:86px; }
 .gate-card > div { padding:7px 8px; }.gate-card h3 { font-size:14px; }.gate-card p { font-size:9px; }
}
@media(max-width:420px) {
 .hero { min-height:500px; background-position:center,center,25% 50%; }
 .hero-content { padding-top:28px; }
 .hero h1 { font-size:clamp(36px,10.2vw,43px); }
 .hero-copy { font-size:12px; }
 .hero-actions { gap:10px; }
 .feature-row { gap:5px 4px; }
 .feature-row > div { min-height:53px; padding-inline:5px; gap:7px; }
 .feature-row b { font-size:18px; }
 .feature-row strong { font-size:9px; }.feature-row small { font-size:8px; }
 .gate-map { height:220px; }
 .gate-cards { gap:7px; }
 .gate-card { grid-template-columns:68px minmax(0,1fr); min-height:82px; }
 .gate-card img { width:68px;min-height:82px; }
 .gate-card > div { padding:6px; }.gate-type { font-size:7px;letter-spacing:.3px; }.gate-card h3 {font-size:13px}.gate-card p {font-size:8px}
}
@media(prefers-reduced-motion:reduce) { .forest-three { display:none; }.gate-card { transition:none; } }

/* Use the generated HD four-gate banner as the section artwork. */
.gates { padding:0; overflow:hidden; background:#f4eddf; }
.gates::before { display:none; }
.gates-banner-desktop { position:relative; width:100%; margin:0; }
.gates-banner-desktop img { display:block; width:100%; height:auto; }
.gates-mobile { display:none; }
@media(max-width:760px) {
 .gates-banner-desktop { display:none; }
 .gates-mobile { display:block; padding:34px 0 38px; }
 .gates-mobile .gates-intro { max-width:600px; }
 .gates-mobile .gates-intro .eyebrow { margin-bottom:9px; }
 .gates-mobile .gates-intro h2 { max-width:440px; margin:0 0 10px; color:#18271d; font:600 31px/1.13 var(--serif); }
 .gates-mobile .gates-intro > p:not(.eyebrow) { margin:0 0 13px; font-size:13px; line-height:1.6; }
 .gates-mobile .gate-key { margin-bottom:15px; }
 .gates-mobile .button { min-height:42px; }
 .gates-mobile-map { width:calc(100% + 32px); height:auto; aspect-ratio:3/1; margin:19px -16px 0; overflow:hidden; border:0; border-radius:0; background:#f4eddf url("public/images/gates/four-gates-explainer-hd.webp") center/100% 100% no-repeat; box-shadow:none; }
}
@media(max-width:420px) {
 .gates-mobile { padding:30px 0 32px; }
 .gates-mobile .gates-intro h2 { font-size:29px; }
 .gates-mobile-map { aspect-ratio:3/1; }
}

/* Clickable transparent hotspot over the CTA artwork in the gate banner. */
.gates-image-cta { position:absolute; z-index:2; left:5.5%; top:61.4%; width:23.5%; height:max(12%,44px); border-radius:999px; color:transparent; cursor:pointer; }
.gates-image-cta:focus-visible { outline:3px solid #d9a94f; outline-offset:3px; }

/* Immersive safari entry: scroll-driven perspective gate and forest push-in. */
.safari-entry { position:relative; height:clamp(580px,62vw,820px); min-height:580px; max-height:820px; overflow:hidden; color:#fff; background:#0c1710; isolation:isolate; }
.safari-entry-scene { position:absolute; inset:0; overflow:hidden; }
.safari-entry-image { position:absolute; inset:-5% 0; width:100%; height:110%; max-width:none; object-fit:cover; object-position:68% 55%; transform:scale(var(--entry-scale,1.04)); transform-origin:58% 54%; will-change:transform; }
.safari-entry-shade { position:absolute; inset:0; background:linear-gradient(90deg,#0b1510d9 0%,#0b15107a 36%,transparent 77%),linear-gradient(0deg,#06100cc7,transparent 50%); pointer-events:none; }
.safari-entry-copy { position:absolute; z-index:3; top:50%; left:max(calc((100% - 1180px)/2),7%); width:min(560px,48vw); transform:translateY(-42%); }
.safari-entry-copy .eyebrow { color:#f0c476; }
.safari-entry-copy h2 { max-width:570px; margin:10px 0 16px; font:600 clamp(42px,5vw,68px)/1.02 var(--serif); letter-spacing:-1.5px; text-wrap:balance; }
.safari-entry-copy > p:not(.eyebrow) { max-width:420px; margin:0; color:#f0eee7; font-size:15px; line-height:1.65; }
.safari-entry-copy .button { margin-top:25px; }
.safari-entry-copy .button span { margin-left:12px; }
.entry-caption { position:absolute; z-index:3; right:max(calc((100% - 1180px)/2),7%); bottom:28px; color:#fff; font-size:9px; letter-spacing:2.5px; }
.entry-door { position:absolute; z-index:2; top:0; bottom:0; width:50.5%; border:1px solid #9270449c; background:linear-gradient(90deg,#271b12f7,#62452af0 48%,#2c2015f7),repeating-linear-gradient(0deg,transparent 0 13%,#d7ad6c27 13.2% 13.6%,#120d09a6 14% 14.5%); background-blend-mode:overlay; box-shadow:inset 0 0 28px #0009; will-change:transform; backface-visibility:hidden; }
.entry-door::before,.entry-door::after { position:absolute; content:""; left:7%; right:7%; height:1px; background:#e2bc7b55; box-shadow:0 13px #120c0877,0 -13px #e2bc7b29; }
.entry-door::before { top:18%; }.entry-door::after { bottom:18%; }
.entry-door-left { left:0; transform-origin:left center; transform:perspective(3000px) rotateY(var(--entry-left-angle,0deg)); border-left:0; }
.entry-door-right { right:0; transform-origin:right center; transform:perspective(3000px) rotateY(var(--entry-right-angle,0deg)); border-right:0; }
.safari-prep { position:relative; overflow:hidden; padding:78px 0 72px; color:#f6f0e4; background:radial-gradient(ellipse at 80% 5%,#294936 0,transparent 36%),#10251b; }
.safari-prep::before { position:absolute; inset:0; content:""; opacity:1; background:linear-gradient(115deg,rgba(8,24,16,.82),rgba(13,35,23,.59)),url("public/images/backgrounds/forest-canopy-immersive.webp") center 48%/cover no-repeat; pointer-events:none; }
.safari-prep .wrap { position:relative; z-index:1; }
.safari-prep-heading { display:grid; grid-template-columns:1fr minmax(260px,.62fr); align-items:end; gap:42px; margin-bottom:36px; }
.safari-prep-heading .eyebrow { color:#e9bd67; }
.safari-prep-heading h2 { max-width:580px; margin:8px 0 0; color:#fffaf0; font:600 clamp(36px,4.3vw,54px)/1.08 var(--serif); letter-spacing:-.8px; }
.safari-prep-heading > p { max-width:440px; margin:0 0 3px; color:#d8ddd5; font-size:13px; line-height:1.75; }
.safari-route { position:relative; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.safari-route::before { position:absolute; top:27px; left:8%; right:8%; height:1px; content:""; background:linear-gradient(90deg,#dfb45f66,#dfb45f,#dfb45f66); }
.safari-prep-card { position:relative; min-height:230px; padding:25px 24px 22px; border:1px solid #d2b87645; border-radius:14px; background:linear-gradient(150deg,#ffffff0d,#ffffff04); backdrop-filter:blur(3px); }
.prep-number { position:relative; z-index:1; display:grid; width:54px; height:54px; place-items:center; border:1px solid #e2b85e; border-radius:50%; color:#f3cd80; background:#183629; box-shadow:0 0 0 7px #10251b; font-size:13px; font-weight:700; }
.prep-label { display:block; margin-top:25px; color:#e6ba62; font-size:8px; font-weight:700; letter-spacing:1.8px; }
.safari-prep-card h3 { margin:5px 0 8px; color:#fff8e8; font:600 22px/1.2 var(--serif); }
.safari-prep-card p { max-width:330px; margin:0; color:#d2d7ce; font-size:12px; line-height:1.7; }
.safari-prep-footer { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:25px; }
.safari-prep-footer > span { max-width:480px; color:#bcc8bd; font-size:10px; line-height:1.55; }
.safari-prep-footer .button { flex:0 0 auto; font-size:11px; }
.safari-prep-footer .button span { margin-left:10px; }
.resort-reset { padding:78px 0; overflow:hidden; color:#f8f2e6; background:#10251b; }
.resort-reset-layout { display:grid; grid-template-columns:minmax(0,1.13fr) minmax(300px,.87fr); align-items:center; gap:clamp(34px,7vw,100px); }
.resort-reset-photo { position:relative; min-height:440px; overflow:hidden; border-radius:4px 70px 4px 4px; background:#1a3024; }
.resort-reset-photo::after { position:absolute; inset:35% 0 0; content:""; background:linear-gradient(0deg,#09120de0,transparent); }
.resort-reset-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 1.1s cubic-bezier(.18,.7,.22,1); }
.resort-reset-photo:hover img { transform:scale(1.045); }
.resort-reset-photo > span { position:absolute; z-index:1; bottom:22px; left:24px; color:#fff1d3; font-size:9px; letter-spacing:2.3px; }
.resort-rest-copy .eyebrow { color:#e6b85f; }
.resort-rest-copy h2 { max-width:480px; margin:10px 0 15px; color:#fffaf0; font:600 clamp(36px,4vw,52px)/1.08 var(--serif); letter-spacing:-.7px; }
.resort-rest-copy > p:not(.eyebrow) { max-width:420px; margin:0; color:#d7ded6; font-size:14px; line-height:1.8; }
.resort-rest-copy .button { margin-top:23px; }
.resort-rest-copy .button span { margin-left:10px; }
.safari-prep-card.reveal { transform:translateY(22px); }
.safari-prep-card.reveal.is-visible { transform:translateY(0); }
.resort-reset-photo.reveal { clip-path:inset(0 0 0 35% round 4px 70px 4px 4px); transition:opacity .8s ease,clip-path .95s cubic-bezier(.2,.7,.2,1); }
.resort-reset-photo.reveal.is-visible { clip-path:inset(0 0 0 0 round 4px 70px 4px 4px); }
@media(max-width:900px) {
 .safari-entry { height:68vw; min-height:560px; }
 .safari-entry-copy { left:6%; width:min(540px,56vw); }
 .safari-prep-heading { grid-template-columns:1fr .8fr; gap:25px; }
 .safari-prep-card { padding:22px 18px; }
 .resort-reset-layout { gap:38px; }
 .resort-reset-photo { min-height:390px; }
}
@media(max-width:700px) {
 .safari-entry { height:680px; min-height:0; max-height:none; }
 .safari-entry-image { object-position:62% 100%; }
 .safari-entry-shade { background:linear-gradient(0deg,#09140fe8 0%,#09140f80 42%,#09140f10 100%); }
 .entry-door { display:none; }
 .safari-entry-copy { top:auto; bottom:50px; left:24px; width:calc(100% - 48px); transform:none; }
 .safari-entry-copy h2 { max-width:470px; font-size:clamp(38px,10vw,54px); }
 .safari-entry-copy > p:not(.eyebrow) { max-width:360px; font-size:13px; }
 .safari-entry-copy .button { margin-top:18px; }
 .entry-caption { display:none; }
 .safari-prep { padding:54px 0 50px; }
 .safari-prep-heading { grid-template-columns:1fr; gap:12px; margin-bottom:24px; }
 .safari-prep-heading h2 { font-size:38px; }
 .safari-prep-heading > p { font-size:12px; }
 .safari-route { grid-template-columns:1fr; gap:10px; }
 .safari-route::before { top:32px; bottom:32px; left:27px; right:auto; width:1px; height:auto; }
 .safari-prep-card { min-height:0; padding:16px 17px 17px 82px; }
 .prep-number { position:absolute; left:10px; top:16px; width:36px; height:36px; box-shadow:0 0 0 5px #10251b; font-size:10px; }
 .prep-label { margin-top:0; font-size:7px; }
 .safari-prep-card h3 { font-size:20px; }
 .safari-prep-card p { font-size:11px; }
 .safari-prep-footer { align-items:flex-start; flex-direction:column; gap:14px; margin-top:18px; }
 .safari-prep-footer .button { min-height:44px; }
 .resort-reset { padding:52px 0; }
 .resort-reset-layout { grid-template-columns:1fr; gap:24px; }
 .resort-reset-photo { min-height:340px; border-top-right-radius:48px; }
 .resort-rest-copy h2 { font-size:39px; }
 .resort-rest-copy > p:not(.eyebrow) { font-size:13px; }
 .resort-rest-copy .button { min-height:44px; }
}
@media(prefers-reduced-motion:reduce) {
 .safari-entry-image { transform:none!important; }
 .entry-door { display:none!important; }
 .resort-reset-photo img { transition:none; }
 .resort-reset-photo.reveal,.resort-reset-photo.reveal.is-visible { clip-path:none; }
}
/* Planning sections: image led, accessible overlays, and mobile-specific crops */
.story-feature { padding:72px 0; background:#f4eddf; color:#18271d; }
.story-feature-layout { display:grid; grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr); align-items:center; gap:clamp(34px,6vw,84px); }
.story-feature-copy { max-width:510px; }
.story-feature-copy .eyebrow { margin-bottom:12px; }
.story-feature-copy h2 { margin:0 0 16px; color:#17291e; font:600 clamp(32px,3.4vw,46px)/1.12 var(--serif); letter-spacing:-.6px; }
.story-feature-copy > p:not(.eyebrow) { max-width:490px; margin:0 0 13px; color:#50594e; font-size:14px; line-height:1.75; }
.story-feature-copy .button { margin-top:8px; }
.story-feature-photo { position:relative; min-width:0; height:410px; margin:0; overflow:hidden; border-radius:6px 56px 6px 6px; background:#24372a; box-shadow:0 20px 55px #13251b20; }
.story-feature-photo::after { position:absolute; inset:55% 0 0; content:""; background:linear-gradient(0deg,#07120de0,transparent); pointer-events:none; }
.story-feature-photo img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; transition:transform .8s ease; }
.story-feature-photo:hover img { transform:scale(1.025); }
.story-feature-photo figcaption { position:absolute; z-index:1; bottom:17px; left:19px; color:#fff4dc; font-size:9px; font-weight:700; letter-spacing:2px; }
.expectations-section .story-feature-photo img { object-position:66% center; }
.responsible-section { color:#f7f0e4; background:#11271d; }
.responsible-section .story-feature-layout { grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr); }
.responsible-section .story-feature-copy h2 { color:#fff8e8; }
.responsible-section .story-feature-copy > p:not(.eyebrow) { color:#d4ddd3; }
.responsible-section .story-feature-photo { order:0; }
.responsible-section .story-feature-photo img { object-position:58% center; }
.arrival-section { padding:66px 0 60px; color:#17291e; background:linear-gradient(135deg,#f7f0e3,#eae1cf); }
.arrival-lead { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); align-items:center; gap:clamp(28px,5vw,68px); margin-bottom:30px; }
.arrival-copy h2 { max-width:570px; margin:0 0 13px; font:600 clamp(32px,3.5vw,46px)/1.12 var(--serif); }
.arrival-copy > p:not(.eyebrow) { max-width:560px; margin:0 0 10px; color:#51584e; font-size:14px; line-height:1.7; }
.arrival-copy .arrival-coordinates { color:#836632; font-size:11px; font-weight:700; letter-spacing:1.1px; }
.arrival-photo { display:block; width:100%; height:300px; border-radius:10px 58px 10px 10px; object-fit:cover; object-position:70% center; box-shadow:0 18px 50px #19332320; }
.arrival-route-map { display:block; width:100%; height:auto; border-radius:22px; box-shadow:0 16px 42px #1c302415; }
.arrival-mobile-routes { display:none; }
.arrival-actions { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:20px; }
.arrival-actions p { margin:0; color:#667064; font-size:11px; line-height:1.5; }
.arrival-actions .button { flex:0 0 auto; }
.season-guide { padding:0 0 64px; color:#fff7e8; background:#11271d; }
.season-guide-hero { position:relative; display:flex; min-height:430px; align-items:center; overflow:hidden; isolation:isolate; }
.season-guide-hero > img { position:absolute; z-index:-2; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 54%; }
.season-guide-shade { position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,#0b1a13e8 0%,#10251bb8 43%,#10251b40 100%),linear-gradient(0deg,#10251b55,transparent 55%); }
.season-guide-copy { padding-top:55px; padding-bottom:55px; }
.season-guide-copy h2 { max-width:650px; margin:8px 0 12px; font:600 clamp(38px,5vw,62px)/1.05 var(--serif); letter-spacing:-.8px; }
.season-guide-copy > p:not(.eyebrow) { max-width:540px; margin:0 0 19px; color:#ebe8dc; font-size:14px; line-height:1.7; }
.season-guide-copy .button { margin-top:4px; }
.season-cards { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:13px; padding-top:27px; }
.season-cards article { min-height:168px; padding:19px 18px; border:1px solid #d8bd7b55; border-radius:12px; background:linear-gradient(145deg,#ffffff0e,#ffffff04); }
.season-cards article > span { color:#e9bd67; font-size:9px; font-weight:700; letter-spacing:1.8px; }
.season-cards h3 { margin:9px 0 7px; color:#fff6e4; font:600 20px/1.2 var(--serif); }
.season-cards p { margin:0; color:#d4ddd3; font-size:11px; line-height:1.65; }
.enquiry-banner { position:relative; display:flex; min-height:390px; align-items:center; overflow:hidden; isolation:isolate; color:#fff8ea; background:#10251b; }
.enquiry-banner > img { position:absolute; z-index:-2; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 50%; }
.enquiry-shade { position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,#08140eee 0%,#0b1b12d9 38%,#0b1b1240 76%,#0b1b1220),linear-gradient(0deg,#06110b66,transparent 50%); }
.enquiry-copy { padding-top:54px; padding-bottom:54px; }
.enquiry-copy h2 { max-width:650px; margin:7px 0 12px; color:#fff8e8; font:600 clamp(36px,4.7vw,56px)/1.08 var(--serif); letter-spacing:-.6px; }
.enquiry-copy > p:not(.eyebrow) { max-width:540px; margin:0 0 18px; color:#e1e5da; font-size:14px; line-height:1.7; }
.enquiry-copy .button { margin-top:2px; }
.arrival-actions .button:focus-visible,.story-feature .button:focus-visible,.season-guide .button:focus-visible,.enquiry-banner .button:focus-visible { outline:3px solid #f6cd78; outline-offset:4px; }
@media(max-width:900px) {
  .story-feature-layout,.responsible-section .story-feature-layout { gap:28px; }
  .story-feature-photo { height:350px; }
  .season-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:760px) {
  .story-feature { padding:44px 0 48px; }
  .story-feature-layout,.responsible-section .story-feature-layout { grid-template-columns:minmax(0,1fr); gap:22px; }
  .expectations-section .story-feature-photo { order:-1; }
  .story-feature-photo { height:auto; aspect-ratio:1.48; border-radius:8px 34px 8px 8px; }
  .story-feature-copy h2 { font-size:32px; }
  .story-feature-copy > p:not(.eyebrow) { font-size:13px; }
  .responsible-section .story-feature-photo { order:0; }
  .arrival-section { padding:43px 0 44px; }
  .arrival-lead { grid-template-columns:minmax(0,1fr); gap:17px; margin-bottom:20px; }
  .arrival-copy h2 { font-size:32px; }
  .arrival-copy > p:not(.eyebrow) { font-size:13px; }
  .arrival-photo { height:220px; border-radius:8px 34px 8px 8px; object-position:72% center; }
  .arrival-route-map { display:none; }
  .arrival-mobile-routes { display:grid; grid-template-columns:minmax(0,1fr); gap:10px; }
  .arrival-mobile-routes article { padding:16px; border:1px solid #d9c9aa; border-radius:12px; background:#fffaf0; }
  .arrival-mobile-routes article > span { color:#8b6a31; font-size:9px; font-weight:700; letter-spacing:1.5px; }
  .arrival-mobile-routes h3 { margin:7px 0 4px; color:#173528; font:600 20px/1.2 var(--serif); }
  .arrival-mobile-routes article p { margin:0; color:#5d655a; font-size:12px; }
  .arrival-mobile-routes > p { margin:0; color:#6f7369; font-size:10px; line-height:1.55; }
  .arrival-actions { align-items:stretch; flex-direction:column; gap:12px; margin-top:16px; }
  .arrival-actions .button { width:100%; justify-content:center; text-align:center; }
  .season-guide { padding-bottom:42px; }
  .season-guide-hero { min-height:470px; align-items:flex-end; }
  .season-guide-hero > img { object-position:64% center; }
  .season-guide-shade { background:linear-gradient(0deg,#0b1a13f2 0%,#10251bb5 52%,#10251b1f 100%); }
  .season-guide-copy { padding-top:190px; padding-bottom:28px; }
  .season-guide-copy h2 { font-size:38px; }
  .season-guide-copy > p:not(.eyebrow) { font-size:13px; }
  .season-cards { gap:9px; padding-top:15px; }
  .season-cards article { min-height:unset; padding:14px 13px; }
  .season-cards h3 { font-size:17px; }
  .season-cards p { font-size:10px; }
  .enquiry-banner { min-height:530px; align-items:flex-end; }
  .enquiry-banner > img { object-position:68% center; }
  .enquiry-shade { background:linear-gradient(0deg,#07130df5 0%,#091810e8 38%,#09181063 70%,#09181017 100%); }
  .enquiry-copy { padding-top:250px; padding-bottom:31px; }
  .enquiry-copy h2 { font-size:36px; }
  .enquiry-copy > p:not(.eyebrow) { font-size:13px; }
  .enquiry-copy .button,.story-feature-copy .button,.season-guide-copy .button { width:100%; justify-content:center; text-align:center; }
  .stay-plan-section { isolation:isolate; }
  .stay-plan-section .day-plan-banner { object-position:70% center; }
  .stay-plan-section .section-head h2 { font-size:34px; }
  .stay-plan-section .day-plan-grid { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:420px) {
  .season-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .season-cards article { padding:12px 11px; }
  .season-cards h3 { font-size:16px; }
  .enquiry-copy h2 { font-size:33px; }
  .arrival-mobile-routes h3 { font-size:18px; }
}
.stay-plan-section { position:relative; overflow:hidden; isolation:isolate; color:#f8f1e4; background:#0d2117; }
.stay-plan-section .day-plan-banner { position:absolute; z-index:-2; inset:0; display:block; width:100%; height:100%; object-fit:cover; object-position:62% center; }
.stay-plan-section .day-plan-shade { position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,#07130ee8 0%,#0b1d14bf 55%,#0b1d1452 100%),linear-gradient(0deg,#07130ed9 0%,transparent 75%); pointer-events:none; }
.stay-plan-section .wrap { position:relative; z-index:1; }
.stay-plan-section .section-head h2 { color:#fff8e9; }
.stay-plan-section .section-head > p:not(.eyebrow) { color:#e2e5da; }
.stay-plan-section .day-plan-grid { margin-top:30px; }
.stay-plan-section .day-step { border-color:#d8b86b77; background:#10261bd9; box-shadow:0 12px 36px #06100b45; backdrop-filter:blur(5px); }
.stay-plan-section .day-step h3 { color:#fff5df; }
.stay-plan-section .day-step > p:last-child { color:#d7ddd3; }
.stay-plan-section .day-time { color:#e6ba64; }
.stay-plan-section .day-plan-grid::before { border-color:#d9b86f; }
.arrival-action-links { display:flex; flex-wrap:wrap; gap:10px; }
@media(max-width:760px) { .arrival-action-links { display:grid; grid-template-columns:minmax(0,1fr); } }
/* Immersive, full-bleed layouts for the six visit-planning sections. */
.story-feature {
  position:relative; display:flex; min-height:590px; align-items:center; overflow:hidden; isolation:isolate; padding:0; color:#fff8e9; background:#10251b;
}
.story-feature::before { position:absolute; z-index:-1; inset:0; content:""; background:linear-gradient(90deg,#07140ff2 0%,#0a1b13df 31%,#0c1b125e 58%,#0b1a1230 100%),linear-gradient(0deg,#07130d8c,transparent 52%); }
.story-feature-photo { position:absolute; z-index:-2; inset:0; width:100%; height:100%; margin:0; overflow:hidden; border-radius:0; background:#17291e; box-shadow:none; }
.story-feature-photo::after { display:none; }
.story-feature-photo img { width:100%; height:100%; object-fit:cover; object-position:center 50%; }
.story-feature-photo figcaption { right:clamp(24px,4vw,64px); bottom:22px; left:auto; color:#fff4dc; text-shadow:0 2px 14px #000; }
.story-feature-layout { display:flex; width:min(100% - 64px,1240px); min-height:590px; align-items:center; margin-inline:auto; padding:70px 0; }
.story-feature-copy { max-width:530px; padding:34px; border:1px solid #e6c77d55; border-radius:4px 30px 4px 4px; background:linear-gradient(140deg,#0b1e16d9,#0b1e168c); box-shadow:0 18px 56px #07130d38; backdrop-filter:blur(7px); }
.story-feature-copy h2 { color:#fff8e9; font-size:clamp(36px,4.2vw,58px); }
.story-feature-copy > p:not(.eyebrow) { color:#e2e4da; }
.story-feature-copy .button { margin-top:10px; }
.expectations-section .story-feature-photo img { object-position:58% center; }
.responsible-section { background:#10251b; }
.responsible-section::before { background:linear-gradient(90deg,#07140f1c 0%,#0a1b125e 38%,#0a1b13df 66%,#07140ff2 100%),linear-gradient(0deg,#07130d8c,transparent 52%); }
.responsible-section .story-feature-layout { justify-content:flex-end; }
.responsible-section .story-feature-copy { max-width:510px; }
.responsible-section .story-feature-photo img { object-position:55% center; }
.arrival-section { padding:0 0 58px; background:#f3ecdd; }
.arrival-hero { position:relative; display:flex; min-height:435px; align-items:center; overflow:hidden; isolation:isolate; background:#1b3023; }
.arrival-hero > .arrival-photo { position:absolute; z-index:-2; inset:0; width:100%; height:100%; border-radius:0; object-fit:cover; object-position:center 62%; box-shadow:none; }
.arrival-hero-shade { position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,#0a1b13e8 0%,#10271bbd 39%,#10271b35 72%,#10271b0c 100%),linear-gradient(0deg,#07130d70,transparent 48%); }
.arrival-hero-wrap { position:relative; z-index:1; padding-block:48px; }
.arrival-copy { max-width:550px; color:#fff8e9; }
.arrival-copy .eyebrow { color:#f1c66f; }
.arrival-copy h2 { max-width:550px; color:#fff8e9; font-size:clamp(40px,5vw,68px); }
.arrival-copy > p:not(.eyebrow) { color:#e9e8dc; }
.arrival-copy .arrival-coordinates { color:#f1c66f; }
.arrival-details { padding-top:28px; }
.arrival-route-map { max-height:530px; object-fit:contain; }
.arrival-actions { padding-top:2px; }
.season-guide { padding-bottom:56px; background:#10251b; }
.season-guide-hero { min-height:500px; }
.season-guide-hero > img { object-position:65% 70%; }
.season-guide-shade { background:linear-gradient(90deg,#081810e8 0%,#0b1c13b5 36%,#0b1c1338 72%,#0b1c1310 100%),linear-gradient(0deg,#07140b86,transparent 62%); }
.season-cards article { background:linear-gradient(145deg,#ffffff12,#ffffff06); box-shadow:inset 0 1px #fff1; }
.stay-plan-section { padding:64px 0 68px; min-height:620px; }
.stay-plan-section .day-plan-banner { object-position:50% 55%; }
.stay-plan-section .day-plan-shade { background:linear-gradient(90deg,#07130ed6 0%,#0b1d14a8 50%,#0b1d1478 100%),linear-gradient(0deg,#07130de8 0%,#07130d18 70%); }
.stay-plan-section .section-head { max-width:780px; margin-inline:auto; text-align:center; }
.stay-plan-section .section-head .eyebrow { color:#edc06c; }
.stay-plan-section .section-head h2 { color:#fff8e9; }
.stay-plan-section .section-head > p:not(.eyebrow) { color:#f0ecde; }
.stay-plan-section .day-plan-grid { margin-top:36px; }
.stay-plan-section .day-enquiry { display:flex; width:max-content; margin:0 auto; }
.enquiry-banner { min-height:500px; }
.enquiry-banner > img { object-position:65% center; }
.enquiry-shade { background:linear-gradient(90deg,#07140ff2 0%,#0a1b13df 31%,#0c1b125e 62%,#0b1a1214 100%),linear-gradient(0deg,#07130d86,transparent 54%); }
.enquiry-copy { max-width:1240px; width:min(100% - 64px,1240px); margin-inline:auto; }
.enquiry-copy h2 { max-width:590px; }
@media(max-width:760px) {
  .story-feature { min-height:690px; align-items:flex-end; }
  .story-feature::before { background:linear-gradient(0deg,#07140ff5 0%,#091810e8 35%,#0a1a1261 72%,#09181019 100%); }
  .story-feature-photo img,.expectations-section .story-feature-photo img { object-position:62% center; }
  .story-feature-photo figcaption { right:16px; bottom:auto; top:16px; left:auto; font-size:8px; letter-spacing:1.2px; }
  .story-feature-layout { width:calc(100% - 36px); min-height:690px; align-items:flex-end; padding:0 0 24px; }
  .story-feature-copy { max-width:unset; padding:24px 21px; border-radius:4px 24px 4px 4px; backdrop-filter:blur(9px); }
  .story-feature-copy h2 { font-size:34px; }
  .story-feature-copy > p:not(.eyebrow) { font-size:13px; }
  .story-feature-copy .button { width:100%; justify-content:center; }
  .responsible-section::before { background:linear-gradient(0deg,#07140ff5 0%,#091810e8 37%,#0a1a1261 72%,#09181019 100%); }
  .responsible-section .story-feature-layout { justify-content:initial; }
  .responsible-section .story-feature-photo img { object-position:58% center; }
  .arrival-section { padding-bottom:38px; }
  .arrival-hero { min-height:570px; align-items:flex-end; }
  .arrival-hero > .arrival-photo { object-position:74% center; }
  .arrival-hero-shade { background:linear-gradient(0deg,#091810f2 0%,#0b1d14d9 40%,#0b1d1444 74%,#0b1d1410 100%); }
  .arrival-hero-wrap { width:calc(100% - 36px); padding:0 0 28px; }
  .arrival-copy h2 { font-size:38px; }
  .arrival-copy > p:not(.eyebrow) { font-size:13px; }
  .arrival-details { padding-top:18px; }
  .arrival-route-map { display:none; }
  .arrival-mobile-routes { display:grid; grid-template-columns:minmax(0,1fr); gap:10px; }
  .arrival-mobile-routes article { padding:16px; border:1px solid #d9c9aa; border-radius:12px; background:#fffaf0; }
  .arrival-mobile-routes article > span { color:#8b6a31; font-size:9px; font-weight:700; letter-spacing:1.5px; }
  .arrival-mobile-routes h3 { margin:7px 0 4px; color:#173528; font:600 20px/1.2 var(--serif); }
  .arrival-mobile-routes article p { margin:0; color:#5d655a; font-size:12px; }
  .arrival-mobile-routes > p { margin:0; color:#6f7369; font-size:10px; line-height:1.55; }
  .arrival-actions { align-items:stretch; flex-direction:column; gap:12px; margin-top:16px; }
  .arrival-actions .button { width:100%; justify-content:center; text-align:center; }
  .season-guide { padding-bottom:40px; }
  .season-guide-hero { min-height:570px; align-items:flex-end; }
  .season-guide-hero > img { object-position:78% 55%; }
  .season-guide-shade { background:linear-gradient(0deg,#0b1a13f5 0%,#10251bd9 38%,#10251b50 75%,#10251b14 100%); }
  .season-guide-copy { padding-top:210px; padding-bottom:28px; }
  .season-guide-copy h2 { font-size:38px; }
  .season-guide-copy .button { width:100%; justify-content:center; }
  .season-cards { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; padding-top:15px; }
  .season-cards article { min-height:unset; padding:14px 13px; }
  .season-cards h3 { font-size:17px; }
  .season-cards p { font-size:10px; }
  .stay-plan-section { min-height:unset; padding:44px 0 46px; }
  .stay-plan-section .day-plan-banner { object-position:54% center; }
  .stay-plan-section .day-plan-shade { background:linear-gradient(0deg,#07130ef5 0%,#0b1d14e8 48%,#0b1d1472 100%); }
  .stay-plan-section .section-head { text-align:left; }
  .stay-plan-section .section-head h2 { font-size:34px; }
  .stay-plan-section .day-plan-grid { grid-template-columns:minmax(0,1fr); gap:11px; }
  .stay-plan-section .day-enquiry { width:100%; justify-content:center; }
  .enquiry-banner { min-height:640px; align-items:flex-end; }
  .enquiry-banner > img { object-position:56% center; }
  .enquiry-shade { background:linear-gradient(0deg,#07130ff5 0%,#091810ea 43%,#09181072 75%,#09181017 100%); }
  .enquiry-copy { width:calc(100% - 36px); padding-top:250px; padding-bottom:27px; }
  .enquiry-copy h2 { font-size:36px; }
  .enquiry-copy > p:not(.eyebrow) { font-size:13px; }
  .enquiry-copy .button { width:100%; justify-content:center; }
}
@media(max-width:420px) {
  .story-feature { min-height:720px; }
  .story-feature-layout { min-height:720px; }
  .story-feature-copy h2 { font-size:31px; }
  .arrival-hero { min-height:560px; }
  .arrival-copy h2 { font-size:34px; }
  .season-cards h3 { font-size:15px; }
  .enquiry-banner { min-height:660px; }
}
@media(max-width:760px) {
  /* Show the road and vehicle above the copy on narrow screens instead of cropping them behind text. */
  .arrival-hero { display:block; min-height:0; padding-top:300px; background:#10251b; }
  .arrival-hero > .arrival-photo { top:0; right:0; bottom:auto; left:0; width:100%; height:300px; object-position:72% 58%; }
  .arrival-hero-shade { top:0; right:0; bottom:auto; left:0; height:300px; background:linear-gradient(0deg,#10251b46 0%,transparent 54%); }
  .arrival-hero-wrap { width:calc(100% - 36px); padding:0 0 27px; }
  .responsible-section .story-feature-photo img { object-position:48% center; }
}
.expect-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; padding:0; margin:19px 0 17px; list-style:none; }
.expect-list li { display:grid; gap:4px; min-width:0; padding:11px 12px; border-left:2px solid #e6bd69; background:#ffffff0b; }
.expect-list strong { color:#f3d58f; font-size:11px; letter-spacing:.15px; }
.expect-list span { color:#e2e4da; font-size:10px; line-height:1.5; }
@media(max-width:760px) { .expect-list { gap:7px; margin:14px 0; } .expect-list li { padding:9px 10px; } .expect-list strong { font-size:10px; } .expect-list span { font-size:9px; } }
@media(max-width:420px) { .expect-list { grid-template-columns:1fr; } .expect-list li { grid-template-columns:120px 1fr; align-items:start; gap:8px; } .expect-list span { font-size:10px; } }

/* Final subject-safe image framing from the responsive visual audit. */
@media (min-width:761px) {
  .hero {
    background-size:cover,cover,auto 125%;
    background-position:center,center,0% 46%;
  }
  .safari-entry-image {
    object-position:56% 55%;
    transform-origin:50% 54%;
  }
}
@media (min-width:761px) and (max-width:1100px) {
  .hero { background-size:cover,cover,auto 112%; background-position:center,center,0% 46%; }
  .hero h1 { max-width:590px; font-size:clamp(46px,6vw,64px); }
}
@media (max-width:760px) {
  .hero { background-size:cover,cover,auto 100%; background-position:center,center,27% 50%; }
  .safari-entry-image { object-position:54% 100%; transform-origin:50% 54%; }
}
@media (min-width:761px) { .safari-entry-image { object-position:62% 55%; } }
@media (max-width:760px) { .safari-entry-image { object-position:62% 100%; } }
@media (max-width:760px) { .safari-entry-copy { bottom:16px; } }
/* Route artwork supplied for the arrival section. Its illustrated directions CTA remains a live link. */
.arrival-artwork { position:relative; width:100%; overflow:hidden; background:#f4eddf; }
.arrival-artwork > img { display:block; width:100%; height:auto; }
.arrival-artwork-directions { position:absolute; left:4.8%; top:83.8%; width:22.7%; height:8.8%; border-radius:999px; }
.arrival-artwork-directions:focus-visible { outline:3px solid #17402d; outline-offset:3px; }
@media(max-width:760px) { .arrival-artwork-directions { left:5%; top:83.8%; width:22.7%; height:8.8%; } }
/* Exact supplied artwork banners: full uncropped composition, with responsive live CTAs. */
.artwork-section { position:relative; width:100%; overflow:hidden; background:#f6f0e5; line-height:0; }
.artwork-section > img { display:block; width:100%; height:auto; }
.artwork-hotspot { position:absolute; z-index:2; display:block; border-radius:999px; }
.artwork-hotspot:focus-visible { outline:3px solid #123b2a; outline-offset:4px; }
.responsible-hotspot { left:4.1%; top:86.4%; width:26.5%; height:8%; }
.enquiry-hotspot { left:5.3%; top:74.6%; width:35.5%; height:12%; }
.seasonal-hotspot { left:4.4%; top:35.2%; width:17.5%; height:8%; }
.artwork-mobile-action { display:none; }
@media(max-width:760px) {
 .artwork-hotspot { display:none; }
 .artwork-mobile-action { display:flex; justify-content:center; padding:12px 18px 18px; background:#f5efe3; line-height:1.4; }
 .artwork-mobile-action .button { width:min(100%,420px); min-height:48px; text-align:center; }
 .enquiry-artwork .artwork-mobile-action { background:#10251b; }
 .enquiry-artwork .artwork-mobile-action .button { color:#171711; background:#edbd67; }
}
/* Continuous right-to-left room and experience carousels. */
.auto-carousel { display:block; position:relative; overflow:hidden; width:100%; padding:2px 0 8px; outline-offset:4px; }
.marquee-track { display:flex; width:max-content; animation:card-marquee 38s linear infinite; will-change:transform; }
.marquee-track.is-paused { animation-play-state:paused; }
.marquee-group { display:flex; flex:0 0 auto; gap:16px; padding-right:16px; }
.marquee-group > .photo-card { flex:0 0 calc((min(100vw - 48px, 1180px) - 48px)/4); }
@keyframes card-marquee { to { transform:translate3d(-50%,0,0); } }
@media(max-width:980px) { .marquee-group { gap:10px; padding-right:10px; } .marquee-group > .photo-card { flex-basis:calc((min(100vw - 40px, 760px) - 10px)/2); } }
@media(max-width:600px) { .marquee-track { animation-duration:32s; } .marquee-group > .photo-card { flex-basis:82vw; height:205px; } .marquee-group { gap:11px; padding-right:11px; } }
@media(prefers-reduced-motion:reduce) { .auto-carousel { overflow-x:auto; scroll-snap-type:x mandatory; } .marquee-track { width:max-content; animation:none; } .marquee-group { padding-right:12px; } .marquee-group > .photo-card { scroll-snap-align:start; } }

/* Layered blue-hour pool photography for the unwind section. */
.resort-reset { position:relative; isolation:isolate; background:#10251b url("public/images/backgrounds/unwind-pool-blue-hour.webp") center 54%/cover no-repeat; }
.resort-reset::before { position:absolute; z-index:-1; inset:0; content:""; background:linear-gradient(90deg,#07170fc9 0%,#0b2119b8 52%,#0b2016a8 100%),linear-gradient(0deg,#07130d66,transparent 80%); }
.resort-reset-layout { position:relative; z-index:1; }
@media(max-width:700px) { .resort-reset { background-position:58% center; } .resort-reset::before { background:linear-gradient(90deg,#07170fa8,#0b2119b0),linear-gradient(0deg,#07130d70,transparent); } }

/* Compact, full-bleed travel-links band with subtle botanical parchment. */
.arrival-section { padding-bottom:0; background:#f3ecdd; }
.arrival-details { width:100%; max-width:none; padding:28px max(20px,calc((100% - 1180px)/2)) 20px; background:#f3ecdd url("public/images/backgrounds/arrival-botanical-parchment.webp") center 65%/cover no-repeat; }
.arrival-actions { width:min(100%,1180px); margin:12px auto 0; padding:12px 16px; border:1px solid #e3d4b7; border-radius:14px; background:#fffaf0d9; box-shadow:0 8px 28px #45362112; }
.arrival-actions p { max-width:330px; }
@media(max-width:760px) { .arrival-details { padding:16px 18px 15px; background-position:52% center; } .arrival-actions { margin-top:12px; padding:13px; } .arrival-actions p { max-width:none; } }
.resort-reset::before { background:linear-gradient(90deg,#07170f84 0%,#0b21197b 52%,#0b201670 100%),linear-gradient(0deg,#07130d42,transparent 80%); }
.resort-rest-copy { padding:clamp(22px,3vw,36px); border:1px solid #e7c98155; border-radius:4px 32px 4px 4px; background:linear-gradient(145deg,#081b14d9,#0a1b14b8); box-shadow:0 18px 55px #06140d3b; backdrop-filter:blur(6px); }
@media(max-width:700px) { .resort-reset::before { background:linear-gradient(90deg,#07170f7d,#0b211985),linear-gradient(0deg,#07130d50,transparent); } .resort-rest-copy { padding:23px 20px; } }


/* Use crisp vector controls instead of text glyphs that can render as emoji on phones. */
.icon-arrow,.menu-toggle svg,.download-icon svg { display:block; width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.card-caption a .icon-arrow { width:16px; height:16px; }
.menu-toggle svg { width:21px; height:21px; stroke-width:1.7; transition:transform .2s ease; }

.download-icon { display:grid; width:35px; height:35px; place-items:center; border:1px solid #fff; border-radius:50%; }
.download-icon svg { width:17px; height:17px; }

/* Mobile Tadoba explainer: two equal source crops stacked to keep map details legible. */
.gates-mobile-map { display:grid; grid-template-columns:minmax(0,1fr); width:calc(100% + 32px); margin:19px -16px 0; overflow:hidden; background:#f4eddf; }
.gates-mobile-map img { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; }
.gates-mobile-map img + img { border-top:1px solid #ddceb1; }
@media(max-width:760px) { .gates-mobile-map { aspect-ratio:auto; height:auto; background:none; } .gates-mobile-map img { aspect-ratio:3/2; } }

/* Distance is measured from the first card set so the duplicate begins exactly at the loop seam. */
.marquee-track { animation-name:card-marquee-measured; }
@keyframes card-marquee-measured { from { transform:translate3d(0,0,0); } to { transform:translate3d(var(--marquee-offset,-1000px),0,0); } }
@media(max-width:600px) { .marquee-track { animation-duration:24s; } .marquee-group > .photo-card { flex-basis:min(82vw,350px); height:205px; } }
@media(prefers-reduced-motion:reduce) { .marquee-track { animation:none; } }

.icon-pause,.icon-play,.gallery-arrow .icon-arrow { display:block; width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.icon-play { fill:currentColor; stroke:none; }
.gallery-arrow { font-size:0; }

.gates-mobile-panel { position:relative; min-width:0; }
.gates-mobile-panel .gates-image-cta { left:11.8%; top:65%; width:50%; height:13%; }

@media(max-width:760px) {
 .gates-mobile { position:relative; padding:0; }
 .gates-mobile .gates-intro { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; clip-path:inset(50%); }
 .gates-mobile-map { width:calc(100% + 32px); margin:0 -16px; }
}


/* Mobile gates artwork: two original generated panels, centered and stacked. */
@media(max-width:760px) {
 .gates-mobile { display:grid; grid-template-columns:minmax(0,1fr); gap:0; width:100%; padding:0; }
 .gates-mobile-intro,.gates-mobile-map { position:relative; isolation:isolate; width:100%; height:clamp(430px,118vw,540px); overflow:hidden; background:#f4eddf; }
 .gates-mobile-intro > img,.gates-mobile-map > img { position:absolute; z-index:-1; inset:0; display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
 .gates-mobile-intro-copy { position:relative; display:flex; width:min(100% - 34px,510px); height:100%; margin-inline:auto; flex-direction:column; align-items:center; justify-content:center; padding:26px 8px; text-align:center; }
 .gates-mobile-intro-copy .eyebrow { margin:0 0 8px; color:#806329; font-size:10px; letter-spacing:3px; }
 .gates-mobile-intro-copy h2 { max-width:470px; margin:0 0 12px; color:#132c20; font:600 clamp(30px,8.6vw,39px)/1.08 var(--serif); letter-spacing:-.5px; text-wrap:balance; }
 .gates-mobile-intro-copy > p:not(.eyebrow) { max-width:430px; margin:0 0 14px; color:#334238; font-size:13px; line-height:1.55; }
 .gates-mobile-intro-copy .gate-key { display:flex; justify-content:center; gap:16px; margin:0 0 16px; color:#294332; font-size:11px; }
 .gates-mobile-intro-copy .button { min-height:46px; padding-inline:21px; }
 .gates-mobile-map { height:clamp(430px,118vw,540px); }
 .mobile-map-core { position:absolute; top:49%; left:50%; display:flex; min-width:124px; flex-direction:column; align-items:center; padding:8px 13px; border:1px solid #d6c69f; border-radius:11px; color:#123222; background:#f9f2e3e8; box-shadow:0 5px 18px #32432a27; text-align:center; transform:translate(-50%,-50%); }
 .mobile-map-core strong { font:700 15px/1.15 var(--sans); letter-spacing:1.2px; }
 .mobile-map-core span { margin-top:2px; font-size:9px; font-weight:700; letter-spacing:1.4px; }
 .mobile-gate-label { position:absolute; z-index:1; min-width:112px; padding:6px 8px; border:1px solid #d8c89e; border-radius:9px; color:#183626; background:#fffaf0ed; box-shadow:0 4px 12px #1d30241e; font-size:10px; font-weight:700; line-height:1.15; text-align:center; }
 .mobile-gate-label.moharli { top:28%; left:3%; }
 .mobile-gate-label.kolara { top:31%; right:3%; }
 .mobile-gate-label.navegaon { bottom:26%; left:3%; }
 .mobile-gate-label.agarzari { right:3%; bottom:27%; }
}
@media(max-width:380px) {
 .gates-mobile-intro-copy { width:calc(100% - 28px); padding-inline:4px; }
 .gates-mobile-intro-copy h2 { font-size:29px; }
 .gates-mobile-intro-copy > p:not(.eyebrow) { font-size:12px; }
 .mobile-gate-label { min-width:99px; padding:6px 6px; font-size:9px; }
}
@media(max-width:760px) {
 .feature-row { gap:17px 8px; }
 .feature-row > div { gap:10px; }
 .feature-row strong { font-size:13px; }
 .feature-row small { font-size:11.5px; }
 .feature-row b { font-size:25px; }
}
@media(max-width:600px) {
 .auto-carousel .photo-card { flex-basis:min(82vw,350px); height:205px; }
 .marquee-track { animation-duration:var(--marquee-duration,60s); }
}
.auto-carousel .photo-card,.auto-carousel .photo-card.reveal,.auto-carousel .photo-card.reveal.is-visible { transform:none; transform-style:flat; }
.auto-carousel .marquee-group { backface-visibility:hidden; }
.marquee-track { animation-name:card-marquee-measured; animation-duration:var(--marquee-duration,60s); }
@keyframes card-marquee-measured { from { transform:translate3d(0,0,0); } to { transform:translate3d(var(--marquee-offset,-1000px),0,0); } }
@media(prefers-reduced-motion:reduce) { .marquee-track { animation:none; } }

.marquee-track.is-loading { animation-play-state:paused; }

/* Mobile rendering guard: keep generated gate panels visible even when an older
   cached rule set or a desktop-image rule is still present in the cascade. */
@media (max-width:760px) {
  section.gates > .gates-banner-desktop { display:none !important; }
  section.gates > .gates-mobile { display:grid !important; visibility:visible; }
  section.gates .gates-mobile-map { width:100vw; max-width:100vw; margin:0 calc((100% - 100vw)/2); }
  .gates-mobile-intro > img,.gates-mobile-map > img { z-index:0; }
  .gates-mobile-intro-copy { z-index:1; }
  .mobile-map-core,.mobile-gate-label { z-index:2; }
}

/* Mobile experience/room cards use a fixed-width track, so the duplicate set
   always meets the first set cleanly without ever exposing an empty grid. */
.auto-carousel { touch-action:pan-y; }
.auto-carousel .marquee-track { min-width:max-content; }
.auto-carousel .marquee-group { flex-shrink:0; }
.auto-carousel .photo-card > img { display:block; width:100%; height:100%; object-fit:cover; }
@media (max-width:760px) {
  .auto-carousel { display:block !important; min-height:205px; }
  .auto-carousel .marquee-track { width:max-content; }
  .auto-carousel .marquee-group { display:flex; }
  .auto-carousel .photo-card { flex-shrink:0; }
}

/* Tighter mobile framing for the forest entry banner: crop canopy above the
   tiger while preserving enough height for the heading and call to action. */
@media (max-width:700px) {
  .safari-entry { height:620px; }
  .safari-entry-image { inset:-9% 0; top:-17%; bottom:auto; height:118%; object-position:62% 100%; transform-origin:50% 46%; }
}
