/* Brand webfonts, self-hosted (design system tokens/fonts.css; latin subsets) */
@font-face{font-family:"Lora";font-style:normal;font-weight:400 700;font-display:swap;src:url("../fonts/lora-latin-var.woff2") format("woff2");}
@font-face{font-family:"Lora";font-style:italic;font-weight:400 700;font-display:swap;src:url("../fonts/lora-latin-italic-var.woff2") format("woff2");}
@font-face{font-family:"Poppins";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/poppins-latin-400.woff2") format("woff2");}
@font-face{font-family:"Poppins";font-style:italic;font-weight:400;font-display:swap;src:url("../fonts/poppins-latin-italic-400.woff2") format("woff2");}
@font-face{font-family:"Poppins";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/poppins-latin-500.woff2") format("woff2");}
@font-face{font-family:"Poppins";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/poppins-latin-600.woff2") format("woff2");}
@font-face{font-family:"Poppins";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/poppins-latin-700.woff2") format("woff2");}

:root{
  --ink:#171411; --charcoal:#2B2622; --soft-charcoal:#4A443C;
  --brass:#A8794B; --brass-600:#8E6238; --sand:#C39F77; --ivory:#F6F1EA; --ivory-dim:#EFE7DB;
  --bone:#B9AFA2; --sand-tint:#E8DCCB; --white:#FFFFFF; --badge-green:#4F6B51; --badge-green-700:#3E5540; --badge-green-300:#7FA383;
  --serif:'Lora',Georgia,serif; --sans:'Poppins',sans-serif;
  --check-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M3 8.5l3.2 3.2L13 4.5' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  --chev-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'><path d='M2.5 4.5l3.5 3.5 3.5-3.5' fill='none' stroke='%23F6F1EA' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>");
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{font-family:var(--sans); color:var(--soft-charcoal); background:var(--ivory); line-height:1.6; -webkit-font-smoothing:antialiased;}
img{display:block; max-width:100%; height:auto;}
a{text-decoration:none; color:inherit;}
.wrap{max-width:1200px; margin:0 auto; padding:0 32px;}
h1,h2,h3,h4{font-family:var(--serif); font-weight:500; color:var(--ink); line-height:1.18;}
.eyebrow{font-weight:500; font-size:11px; letter-spacing:2.5px; color:var(--brass); text-transform:uppercase;}
.btn{display:inline-flex; align-items:center; justify-content:center; font-weight:600; font-size:12px; letter-spacing:1.2px; text-transform:uppercase; padding:14px 26px; border-radius:3px; transition:all .2s ease; cursor:pointer; border:none;}
.btn-brass{background:var(--brass); color:var(--white);}
.btn-brass:hover{background:var(--brass-600); transform:translateY(-1px);}
.btn-outline-dark{background:transparent; color:var(--ivory); border:1px solid rgba(255,255,255,.35);}
.btn-outline-dark:hover{border-color:var(--brass); color:var(--brass);}
.btn-outline-light{background:transparent; color:var(--ink); border:1px solid var(--bone);}
.btn-outline-light:hover{border-color:var(--brass); color:var(--brass);}

/* top bar — phone lines. The R2 currency switcher is removed under the R3 native-currency ruling — not replaced. */
.topbar{background:var(--charcoal); color:var(--bone); font-size:11px; letter-spacing:.3px; border-bottom:1px solid rgba(255,255,255,.06);}
.topbar .wrap{display:flex; align-items:center; justify-content:flex-end; height:38px; gap:16px;}
.tb-right{display:flex; align-items:center; gap:22px; white-space:nowrap;}
.tb-right a{color:var(--ivory-dim); transition:color .2s ease; display:inline-flex; align-items:center;}
.tb-right a:hover{color:var(--brass);}
.tb-right .cc{color:var(--sand); font-size:9px; letter-spacing:1.5px; margin-right:7px; font-weight:500;}
.tb-right .tb-link{color:var(--sand); text-decoration:underline; text-underline-offset:3px; text-decoration-color:rgba(195,159,119,.45);}
.tb-right .tb-link:hover{color:var(--brass);}

body > nav{position:sticky; top:0; z-index:60; background:rgba(23,20,17,.97); backdrop-filter:blur(6px); border-bottom:1px solid rgba(255,255,255,.08); transition:transform .28s ease;}
nav.nav-hidden{transform:translateY(-100%);}
nav.crumbs{position:static; z-index:auto; background:transparent; backdrop-filter:none; -webkit-backdrop-filter:none; border-bottom:none; transition:none;}
body > nav > .wrap{display:flex; align-items:center; justify-content:space-between; height:78px;}
.logo img{height:44px; width:auto;}
.nav-links{display:flex; gap:30px; align-items:center;}
.nav-links a{font-size:12.5px; letter-spacing:1px; color:var(--ivory-dim); text-transform:uppercase; position:relative; padding:4px 0;}
.nav-links a::after{content:'';position:absolute;left:0;bottom:-2px;width:0;height:1px;background:var(--brass);transition:width .25s ease;}
.nav-links a:hover::after{width:100%;}
body > nav .btn{white-space:nowrap;}
.nav-tools{display:none; align-items:center; gap:6px;}
.nav-icon{width:44px; height:44px; display:flex; align-items:center; justify-content:center; background:transparent; border:none; cursor:pointer; color:var(--ivory); border-radius:3px;}
.nav-icon svg{width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round;}
.nav-icon.call svg{stroke:var(--brass);}
.nav-icon:focus-visible{outline:1px solid var(--brass); outline-offset:2px;}
.mnav{display:none; position:fixed; left:0; right:0; top:0; bottom:0; z-index:59; background:var(--ink); padding:110px 32px 40px; overflow-y:auto;}
nav.open ~ .mnav, body.menu-open .mnav{display:block;}
.mnav a.item{display:block; font-family:var(--serif); font-size:26px; color:var(--white); padding:14px 0; border-bottom:1px solid rgba(255,255,255,.08);}
.mnav a.item:hover{color:var(--brass);}
.mnav .mnav-contact{margin-top:28px; display:flex; flex-direction:column; gap:12px; font-size:13px; color:var(--bone);}
.mnav .mnav-contact a{color:var(--ivory-dim);}
.mnav .mnav-contact .cc{color:var(--sand); font-size:9px; letter-spacing:1.5px; margin-right:8px; font-weight:500;}
.mnav .btn{margin-top:28px; width:100%;}
body.menu-open{overflow:hidden;}
body.menu-open nav{transform:none !important;}

/* hero */
.hero{position:relative; min-height:72vh; display:flex; align-items:flex-end; overflow:hidden; background:var(--ink);}
.hero-bg{position:absolute; top:0; left:0; right:0; bottom:0; background-image:url('https://pim.africansafarigroup.com/_default_upload_bucket/image-thumb__80217__optimized-desktop/Aerial%20view_4.webp'); background-size:cover; background-position:center 45%;}
.hero-scrim{position:absolute; top:0; left:0; right:0; bottom:0; background:linear-gradient(180deg, rgba(23,20,17,.80) 0%, rgba(23,20,17,.45) 40%, rgba(23,20,17,.92) 100%);}   /* Riaan, 5 Oct 2026: sand on a photo failed on 61% of the eyebrow's width; ivory text on this scrim passes everywhere */
.hero-content{position:relative; z-index:2; width:100%; padding:70px 0 54px;}
.hero-flex{display:flex; justify-content:space-between; align-items:flex-end; gap:40px; flex-wrap:wrap;}
.crumb-bar{position:absolute; top:26px; left:0; right:0; z-index:3;}
.crumb{font-size:11px; letter-spacing:1.4px; text-transform:uppercase; color:var(--sand);}
.crumb a{color:var(--sand); transition:color .2s ease;}
.crumb a:hover{color:var(--brass);}
.crumb .sep{margin:0 7px; opacity:.6;}
.hero h1{font-size:52px; color:var(--white);}
.hero .meta{display:flex; align-items:center; gap:14px; margin-top:14px; color:var(--ivory-dim); font-size:13px; flex-wrap:wrap;}
.hero .meta .pills{display:inline-flex; gap:8px; flex-wrap:wrap;}
/* star component (approved reviews pattern) — partial-fill SVG, fill % = (displayed star / 5) x 100 */
.stars{display:inline-block; position:relative; line-height:0; white-space:nowrap; font-size:0;}
.stars .empty,.stars .fill{display:flex; gap:2px;}
.stars svg{width:var(--star,15px); height:var(--star,15px); display:block; flex:none;}
.stars .empty svg{fill:var(--ivory-dim);}
.stars .fill{position:absolute; top:0; left:0; overflow:hidden;}
.stars .fill svg{fill:var(--brass);}
.hero .stars .empty svg{fill:rgba(255,255,255,.22);}
.i-star{width:12px; height:12px; fill:var(--brass); vertical-align:-1px;}
.hpill{display:inline-flex; align-items:center; gap:7px; background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.28); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); color:var(--white); font-size:10px; letter-spacing:1.2px; text-transform:uppercase; padding:6px 13px; border-radius:22px; font-weight:500;}
.hpill svg{width:9px; height:9px; fill:var(--brass); flex:none;}
.hero .meta .rating{color:var(--ivory-dim);}
.hero .meta .rating:hover{color:var(--white);}
.hero .meta .rating b{color:var(--white);}
.price-card{background:var(--ivory); border-radius:6px; padding:26px 28px; min-width:min(300px,100%); box-shadow:0 30px 60px rgba(0,0,0,.4);}
.price-card .from{font-size:10px; letter-spacing:1.6px; text-transform:uppercase; color:var(--brass); font-weight:600;}
.price-card .amount{font-family:var(--serif); font-size:30px; color:var(--ink); margin:4px 0 16px;}
.price-card .amount .val{font-family:var(--serif);}
.price-card .amount .unit{font-family:var(--sans); font-size:13px; color:var(--soft-charcoal);}
.price-card .btn{width:100%; margin-bottom:10px;}
.price-card .note{font-size:10.5px; color:var(--soft-charcoal); opacity:.8; text-align:center; margin-top:6px; line-height:1.55;}
.pc-contact{display:flex; justify-content:center; gap:22px; margin-top:14px; padding-top:14px; border-top:1px solid var(--ivory-dim);}
.pc-contact a{display:inline-flex; align-items:center; gap:7px; font-size:11px; letter-spacing:.9px; text-transform:uppercase; font-weight:600; color:var(--ink);}
.pc-contact a:hover{color:var(--brass);}
.pc-contact svg{width:15px; height:15px; fill:none; stroke:var(--brass); stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round;}
.pc-assure{margin-top:12px; text-align:center; font-size:9.5px; letter-spacing:1.1px; text-transform:uppercase; color:var(--soft-charcoal); line-height:1.9;}
.pc-assure span{white-space:nowrap;}
.pc-assure span + span::before{content:''; display:inline-block; width:3px; height:3px; border-radius:50%; background:var(--brass); margin:0 8px; vertical-align:2px;}

/* value props bar */
.props{background:var(--charcoal); color:var(--ivory);}
.props .wrap{display:grid; grid-template-columns:repeat(4,1fr); gap:0;}
.prop{padding:24px 26px; border-right:1px solid rgba(255,255,255,.08);}
.prop:last-child{border-right:none;}
.prop .k{font-size:12px; letter-spacing:1.5px; text-transform:uppercase; color:var(--brass); font-weight:600; margin-bottom:6px;}
.prop .t{font-size:13.5px; color:var(--white); font-weight:500; margin-bottom:4px;}
.prop .d{font-size:11.5px; color:var(--bone); line-height:1.55;}

/* trust row — Tier-1 accreditations lead, then the reviews signal; sits under the props bar so trust is next to price and CTA */
.trust{background:var(--ivory-dim); border-bottom:1px solid var(--bone);}
.trust .wrap{display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:8px 0; padding-top:15px; padding-bottom:15px;}
.trust .t{display:inline-flex; align-items:center; font-size:10px; letter-spacing:1.3px; text-transform:uppercase; color:var(--soft-charcoal); font-weight:500; white-space:nowrap;}
.trust .t + .t::before{content:''; width:4px; height:4px; border-radius:50%; background:var(--brass); margin:0 14px; opacity:.85; flex:none;}
@media(max-width:1100px){ .trust .rv{flex-basis:100%; justify-content:center; margin-top:2px;} .trust .rv::before{display:none;} }
@media(max-width:900px){ .trust .lg{display:none;} }
.trust .rv{color:var(--ink); font-weight:600;}
.trust .rv svg{margin-right:7px;}
.trust .rv b{font-weight:700;}

/* enquiry checklist idiom (brass check circles) — used by the six-reason section */
.checks{display:grid; grid-template-columns:1fr 1fr; gap:14px 40px; margin-top:26px; max-width:820px;}
.check{display:flex; gap:12px; font-size:13.5px; color:var(--soft-charcoal); align-items:flex-start;}
.check::before{content:''; flex-shrink:0; width:22px; height:22px; border-radius:50%; background:var(--brass) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M3 8.5l3.2 3.2L13 4.5' fill='none' stroke='%23FFFFFF' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/></svg>") center/11px 11px no-repeat; margin-top:1px;}

/* sticky subnav */
.subnav{position:sticky; top:0; z-index:65; background:var(--ivory); border-bottom:1px solid var(--bone); box-shadow:0 2px 12px rgba(23,20,17,.05);}
section[id], div[id]{scroll-margin-top:72px;}
.subnav .wrap{display:flex; align-items:center; gap:28px; height:56px; overflow-x:auto; scrollbar-width:none;}
.subnav .wrap::-webkit-scrollbar{display:none;}
@media(max-width:640px){ .subnav .wrap{gap:22px; -webkit-mask-image:linear-gradient(90deg,#000 86%,transparent); mask-image:linear-gradient(90deg,#000 86%,transparent);} }
.subnav a{font-size:11.5px; letter-spacing:1.2px; text-transform:uppercase; color:var(--soft-charcoal); white-space:nowrap; padding:4px 0; border-bottom:2px solid transparent;}
.subnav a:hover, .subnav a.active{color:var(--brass); border-bottom-color:var(--brass);}
/* the sub-nav is wayfinding only; the sticky booking bar (below) owns the persistent action so no view carries two brass buttons */

/* sticky booking bar — appears once the hero PriceCard scrolls out; bottom-docked, one brass action, price line in the rate sheet's native currency, gated by the D-048 rates state */
.bookbar{position:fixed; left:0; right:0; bottom:0; z-index:70; background:rgba(23,20,17,.97); backdrop-filter:blur(6px); border-top:1px solid rgba(255,255,255,.1); transform:translateY(102%); transition:transform .32s ease; padding-bottom:env(safe-area-inset-bottom);}
.bookbar.show{transform:translateY(0);}
.bookbar .wrap{display:flex; align-items:center; gap:22px; height:66px;}
.bb-price{color:var(--ivory); white-space:nowrap; line-height:1.2;}
.bb-price .l{display:block; font-size:9.5px; letter-spacing:1.6px; text-transform:uppercase; color:var(--sand); font-weight:500; margin-bottom:2px;}
.bb-price b{font-size:16px; font-weight:600; color:var(--white);}
.bb-price .u{font-size:11px; color:var(--bone); margin-left:5px;}
.bb-form{display:flex; align-items:center; gap:10px; margin-left:auto;}
.bb-field{display:flex; align-items:center; gap:6px; border:1px solid rgba(255,255,255,.18); border-radius:3px; padding:0 4px 0 11px; height:40px; color:var(--bone); font-size:10px; letter-spacing:1.3px; text-transform:uppercase; font-weight:500;}
.bb-field select{appearance:none; -webkit-appearance:none; background:transparent; background-image:var(--chev-mask); background-repeat:no-repeat; background-position:right 5px center; background-size:9px 9px; border:none; color:var(--white); font-family:var(--sans); font-size:12.5px; font-weight:500; padding:0 20px 0 4px; cursor:pointer;}
.bb-field select:focus-visible{outline:1px solid var(--brass); outline-offset:1px; border-radius:2px;}
.bookbar .btn{padding:12px 20px; white-space:nowrap;}
.bookbar .btn-outline-dark{height:40px; padding:0 18px;}
body.bookbar-on{padding-bottom:70px;}

/* rates state (ledger D-048) — body[data-rates-state] gates every rate surface. "certified" = backed by a rate row passing the
   D-048 validity rule: loaded by the product team from the STO agreement (loading is the verification); displays while today falls
   inside the validity window; future-dated windows display as forthcoming seasons; lapsed, undated or malformed windows fail
   validity and render enquire, per row, never blocking the lodge; 12-month re-verification backstop. "fallback" = no
   validity-passing row: rate figures suppressed, enquire-led. Sibling-card from-lines gate per sibling lodge's own state at build
   time; the single body attribute gates them together here for review only. Madikwe Manor: permanently fallback (no rate structure). */
.pc-fallback{display:none;}
.pc-fallback .fb-line{font-family:var(--serif); font-size:21px; color:var(--ink); margin:4px 0 16px; line-height:1.4;}
.bb-fallback{display:none; color:var(--ivory); white-space:nowrap; line-height:1.2; min-width:0;}
.bb-fallback .l{display:block; font-size:9.5px; letter-spacing:1.6px; text-transform:uppercase; color:var(--sand); font-weight:500; margin-bottom:2px;}
.bb-fallback b{font-size:13.5px; font-weight:600; color:var(--white); letter-spacing:.2px;}
body[data-rates-state="fallback"] .price-card .pc-rate{display:none;}
body[data-rates-state="fallback"] .price-card .pc-fallback{display:block;}
body[data-rates-state="fallback"] #rooms .pr{display:none;}
body[data-rates-state="fallback"] .xcard .pr > span{display:none;}
body[data-rates-state="fallback"] .bb-price{display:none;}
body[data-rates-state="fallback"] .bb-fallback{display:block;}

/* Page-level sections only. A `section` nested inside a wrapper is a layout row, not a page
   band, and must not inherit the 90px band padding — that mismatch produced the 250px gaps. */
body > section, body > main > section{padding:90px 0;}
.section-head{max-width:660px; margin-bottom:46px;}
.section-head h2{font-size:34px; margin-top:12px;}
.section-head p{font-weight:300; font-size:15px; margin-top:14px; line-height:1.75;}

/* overview */
.ov-grid{display:grid; grid-template-columns:1.2fr .8fr; gap:52px; align-items:start;}
.ov-grid p{font-weight:300; font-size:15px; line-height:1.8; margin-top:16px;}
.qf{background:var(--white); border:1px solid var(--bone); border-radius:6px; padding:28px 30px;}
.qf h3{font-size:18px; margin-bottom:16px; display:flex; align-items:center; justify-content:space-between; gap:8px 14px; flex-wrap:wrap;}
.qf-row{display:flex; justify-content:space-between; padding:12px 0; border-bottom:1px solid var(--ivory-dim); font-size:13.5px;}
.qf-row:last-child{border-bottom:none;}
.qf-row .k{color:var(--soft-charcoal);}
.qf-row .v{color:var(--ink); font-weight:500; text-align:right;}

/* guests love — five short signals guests report most, sits between the overview and the gallery */
.gl{background:var(--white); border-top:1px solid var(--ivory-dim); border-bottom:1px solid var(--ivory-dim);}
.gl .wrap{display:grid; grid-template-columns:auto repeat(5,1fr); gap:0 28px; align-items:center; padding-top:22px; padding-bottom:22px;}
.gl .eyebrow{white-space:nowrap; padding-right:24px; border-right:1px solid var(--ivory-dim);}
.gl-item{display:flex; align-items:center; gap:12px; font-size:12px; color:var(--soft-charcoal); line-height:1.45; white-space:nowrap;}
.gl-item svg{width:20px; height:20px; fill:none; stroke:var(--brass); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; flex:none;}
.gl-item b{display:block; color:var(--ink); font-weight:600; font-size:12.5px;}
@media(max-width:1120px){ .gl .wrap{grid-template-columns:repeat(3,1fr); gap:16px 24px;} .gl .eyebrow{grid-column:1 / -1; border-right:none; padding-right:0;} }
@media(max-width:640px){ .gl .wrap{grid-template-columns:1fr; gap:14px;} }

/* gallery */
.gallery{background:var(--ivory-dim);}
.g-grid{display:grid; grid-template-columns:2fr 1fr 1fr; grid-template-rows:250px 250px; gap:14px;}
.g-item{border-radius:6px; overflow:hidden;}
.g-item img{width:100%; height:100%; object-fit:cover; transition:transform .5s ease;}
.g-item:hover img{transform:scale(1.05);}
.g-item.tall{grid-row:span 2;}

/* rooms */
.rooms-grid{display:grid; grid-template-columns:1fr 1fr; gap:26px;}
.room{background:var(--white); border:1px solid var(--ivory-dim); border-radius:6px; overflow:hidden; display:flex; flex-direction:column;}
.room .img{height:250px; overflow:hidden;}
.room .img img{width:100%; height:100%; object-fit:cover;}
.room .body{padding:26px 28px; flex:1; display:flex; flex-direction:column;}
.room h3{font-size:20px;}
.room .spec{font-size:11.5px; letter-spacing:1px; text-transform:uppercase; color:var(--brass); font-weight:500; margin:6px 0 14px;}
.feat{display:grid; grid-template-columns:1fr 1fr; gap:8px 22px; margin-bottom:20px; flex:1;}
.feat span{font-size:12.5px; color:var(--soft-charcoal); position:relative; padding-left:16px;}
.feat span::before{content:''; position:absolute; left:0; top:5px; width:11px; height:11px; background:var(--brass); -webkit-mask:var(--check-mask) center/contain no-repeat; mask:var(--check-mask) center/contain no-repeat;}
.room .row{display:flex; justify-content:space-between; align-items:center; border-top:1px solid var(--ivory-dim); padding-top:18px;}
.room .pr{font-family:var(--sans); font-size:15px; font-weight:600; color:var(--ink);}
.room .pr span{font-family:var(--sans); font-size:11px; color:var(--soft-charcoal); font-weight:400;}
.room .desc{font-size:13.5px; font-weight:300; line-height:1.7; color:var(--soft-charcoal); margin-bottom:16px;}
.room .incl{font-size:11px; letter-spacing:1.2px; text-transform:uppercase; color:var(--badge-green); font-weight:600; margin-bottom:12px; display:flex; align-items:center; gap:8px;}
.room .incl::before{content:''; width:6px; height:6px; border-radius:50%; background:var(--badge-green); flex:none;}
.room .bath{font-size:12px; color:var(--soft-charcoal); margin:-6px 0 18px; opacity:.85;}
.room .bath b{color:var(--ink); font-weight:600;}

/* specials — the offer card; Badge Green top rule = savings signal, brass = the single action */
.offer{background:var(--white); border:1px solid var(--ivory-dim); border-top:3px solid var(--badge-green); border-radius:6px; padding:34px 36px 32px; display:grid; grid-template-columns:1.1fr 1fr; gap:32px 52px; align-items:start;}
.offer h3{font-size:27px; margin:14px 0 8px;}
.offer .valid{font-size:11px; letter-spacing:1.6px; text-transform:uppercase; color:var(--brass); font-weight:600;}
.offer p{font-weight:300; font-size:14.5px; line-height:1.75; margin-top:14px; max-width:520px;}
.off-cta{margin-top:24px; display:flex; align-items:center; gap:18px; flex-wrap:wrap;}
.off-note{font-size:11px; letter-spacing:.6px; color:var(--soft-charcoal); opacity:.85;}
.off-lists{display:grid; grid-template-columns:1fr 1fr; gap:24px 28px; padding-top:6px;}
.off-list h4{font-family:var(--sans); font-size:10.5px; letter-spacing:1.6px; text-transform:uppercase; color:var(--ink); font-weight:600; margin-bottom:12px;}
.off-list ul{list-style:none;}
.off-list li{position:relative; padding-left:20px; font-size:13px; color:var(--soft-charcoal); line-height:1.6; margin-bottom:8px;}
.off-list li::before{content:''; position:absolute; left:0; top:7px; width:11px; height:11px; background:var(--brass); -webkit-mask:var(--check-mask) center/contain no-repeat; mask:var(--check-mask) center/contain no-repeat;}
.off-list.cond li::before{width:7px; height:1px; top:11px; background:var(--bone); -webkit-mask:none; mask:none;}
.off-foot{margin-top:22px; font-size:12px; color:var(--soft-charcoal);}
.off-foot a{color:var(--brass); text-decoration:underline; text-underline-offset:3px; text-decoration-color:rgba(168,121,75,.4);}

/* experiences & facilities */
.list-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:12px 36px; max-width:920px;}
.list-grid span{font-size:13.5px; color:var(--soft-charcoal); position:relative; padding-left:20px; padding-top:2px; padding-bottom:2px;}
.list-grid span::before{content:''; position:absolute; left:0; top:8px; width:12px; height:12px; background:var(--brass); -webkit-mask:var(--check-mask) center/contain no-repeat; mask:var(--check-mask) center/contain no-repeat;}
#facilities .list-grid span{padding-left:0; display:flex; align-items:center; gap:11px;}
#facilities .list-grid span::before{content:none;}
#facilities .list-grid svg{width:19px; height:19px; stroke:var(--brass); stroke-width:1.75; fill:none; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0;}

/* facilities: dietary note + full categorised list (disclosure keeps the section restrained) */
.fac-note{margin-top:28px; font-size:13px; color:var(--soft-charcoal); max-width:920px;}
.fac-note b{color:var(--ink); font-weight:600;}
.fac-all{margin-top:22px; max-width:920px; border-top:1px solid var(--bone); border-bottom:1px solid var(--bone);}
.fac-all summary{list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; padding:16px 0; font-size:11.5px; letter-spacing:1.6px; text-transform:uppercase; color:var(--brass); font-weight:600;}
.fac-all summary::-webkit-details-marker{display:none;}
.fac-all summary::after{content:''; width:12px; height:12px; flex:none; background:var(--brass); -webkit-mask:var(--chev-mask) center/contain no-repeat; mask:var(--chev-mask) center/contain no-repeat; transition:transform .25s ease;}
.fac-all[open] summary::after{transform:rotate(180deg);}
.fac-cats{display:grid; grid-template-columns:repeat(3,1fr); gap:20px 36px; padding:6px 0 30px;}
.fac-cat h4{font-family:var(--sans); font-size:10.5px; letter-spacing:1.5px; text-transform:uppercase; color:var(--ink); font-weight:600; margin-bottom:5px;}
.fac-cat p{font-size:13px; color:var(--soft-charcoal); line-height:1.65;}
.fac-cat i{font-style:normal; color:var(--bone);}

/* what's nearby */
.near-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.near-grid .qf-row .v{white-space:nowrap; margin-left:14px;}
.near-note{margin-top:18px; font-size:12px; color:var(--soft-charcoal); opacity:.85;}
.qf .sub{font-size:12px; color:var(--soft-charcoal); opacity:.85; margin-top:12px; line-height:1.6;}

/* good to know footnotes */
.gtk-foot{margin-top:22px; max-width:920px; font-size:12px; color:var(--soft-charcoal); line-height:1.7;}
.gtk-foot p + p{margin-top:6px;}

/* faq */
.faq-grid{display:grid; grid-template-columns:1fr 1fr; gap:0 56px; align-items:start;}
.faq-grid details{border-bottom:1px solid var(--bone); padding:4px 0;}
.faq-grid details:last-child{border-bottom:none;}
.faq-grid summary{list-style:none; cursor:pointer; font-weight:600; color:var(--ink); font-size:14.5px; padding:14px 34px 14px 0; position:relative;}
.faq-grid summary::-webkit-details-marker{display:none;}
.faq-grid summary::after{content:''; position:absolute; right:4px; top:50%; width:12px; height:12px; margin-top:-6px; background:var(--brass); -webkit-mask:var(--chev-mask) center/contain no-repeat; mask:var(--chev-mask) center/contain no-repeat; transition:transform .25s ease;}
.faq-grid details[open] summary::after{transform:rotate(180deg);}
.faq-grid p{font-size:13.5px; color:var(--soft-charcoal); line-height:1.7; padding:0 0 16px;}
.faq-grid p b{color:var(--ink); font-weight:600;}

/* seasons + month grid */
.seasons{background:linear-gradient(135deg,#211D19,#171411); color:var(--ivory);}
.seasons .section-head h2{color:var(--white);}
.seasons .section-head p{color:var(--bone);}
.scard-grid{display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-bottom:40px;}
.scard{background:var(--charcoal); border:1px solid rgba(255,255,255,.11); border-radius:6px; padding:26px 28px;}
.scard h3{color:var(--brass); font-size:19px; margin-bottom:4px;}
.scard .when{font-size:11px; letter-spacing:1.6px; text-transform:uppercase; color:var(--sand); font-weight:500; margin-bottom:12px;}
.scard p{font-size:13.5px; color:var(--bone); line-height:1.7;}
.months{display:grid; grid-template-columns:repeat(12,1fr); gap:8px;}
.month{border-radius:4px; padding:14px 6px 12px; text-align:center;}
.month .m{font-weight:600; font-size:13.5px; letter-spacing:.5px;}
.month .s{font-size:9.5px; letter-spacing:.5px; text-transform:uppercase; margin-top:5px; opacity:.95; line-height:1.4;}
.m-peak{background:var(--brass); color:var(--white);}
.m-good{background:var(--sand); color:var(--ink);}
.m-fair{background:var(--bone); color:var(--ink);}
.legend{display:flex; gap:22px; margin-top:20px; font-size:11px; color:var(--bone); align-items:center;}
.legend i{display:inline-block; width:12px; height:12px; border-radius:3px; margin-right:7px; vertical-align:-1px;}

/* ================= reviews — approved pattern (18 Aug 2026), Block A: lodge review section ================= */
/* production replaces this block with the licensed TripAdvisor widget; static rendering is a design reference only */
.reviews{padding:78px 0 92px; background:var(--ivory);}
.rv-summary{text-align:center; max-width:640px; margin:0 auto 54px;}
.rv-divider{display:flex; align-items:center; justify-content:center; gap:16px; margin-bottom:26px;}
.rv-divider .rule{width:46px; height:1px; background:var(--brass); opacity:.55;}
.rv-emblem{width:34px; height:34px; flex:none;}
.rv-source-eyebrow{font-size:11px; letter-spacing:3px; text-transform:uppercase; color:var(--brass); font-weight:600; margin-bottom:18px;}
.rv-score-row{display:flex; align-items:center; justify-content:center; gap:18px; flex-wrap:wrap;}
.rv-score{font-family:var(--sans); font-weight:700; font-size:52px; color:var(--ink); line-height:1; letter-spacing:-1px;}
.rv-score .of{font-weight:400; font-size:20px; color:var(--bone); letter-spacing:0;}
.rv-stars-lg{--star:26px;}
.rv-count{margin-top:16px; font-size:12.5px; letter-spacing:1.4px; text-transform:uppercase; color:var(--soft-charcoal);}
.rv-count b{color:var(--ink); font-weight:600;}
.reviews-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
.rvcard{background:var(--white); border:1px solid var(--ivory-dim); border-radius:7px; padding:28px 28px 24px; display:flex; flex-direction:column; transition:box-shadow .25s ease, transform .25s ease;}
.rvcard:hover{box-shadow:0 22px 46px rgba(23,20,17,.10); transform:translateY(-3px);}
.rv-head{display:flex; align-items:center; gap:13px; margin-bottom:18px;}
.rv-avatar{width:44px; height:44px; border-radius:50%; flex:none; background:var(--ink); color:var(--ivory); font-family:var(--serif); font-size:17px; display:flex; align-items:center; justify-content:center; box-shadow:0 0 0 1.5px var(--brass), 0 0 0 4px var(--white), 0 0 0 5px var(--ivory-dim);}
.rv-who{min-width:0;}
.rv-name{font-size:13px; font-weight:600; color:var(--ink); letter-spacing:.1px;}
.rv-date{font-size:11px; color:var(--bone); margin-top:2px; letter-spacing:.3px;}
.rvcard .stars{--star:14px; margin-bottom:14px;}
.rv-meta-row{display:flex; align-items:center; margin-bottom:14px;}
.rv-meta-row .stars{margin-bottom:0;}
.score-chip{display:inline-flex; align-items:center; margin-left:10px; font-size:10px; font-weight:600; letter-spacing:.5px; color:var(--white); background:var(--brass-600); padding:3px 8px; border-radius:11px; line-height:1.4;}
.rv-title{font-family:var(--serif); font-weight:500; font-size:15.5px; color:var(--ink); margin-bottom:9px; line-height:1.3;}
.rv-body{font-size:13.5px; color:var(--soft-charcoal); line-height:1.72; flex:1;}
.rv-src{margin-top:20px; padding-top:15px; border-top:1px solid var(--ivory-dim); display:flex; align-items:center; gap:8px; font-size:10px; letter-spacing:1.6px; text-transform:uppercase; color:var(--bone); font-weight:500;}
.rv-src .dot{width:6px; height:6px; border-radius:50%; background:var(--brass); flex:none;}
.rv-src b{color:var(--soft-charcoal); font-weight:600;}
.rv-more{text-align:center; margin-top:44px;}
.rv-more .note{margin-top:16px; font-size:12px; color:var(--soft-charcoal); letter-spacing:.3px;}
.rv-more .note a{color:var(--brass); text-decoration:underline; text-underline-offset:3px; text-decoration-color:rgba(168,121,75,.4);}
.rv-more .note b{color:var(--ink); font-weight:600;}

/* why book with ASG — six reasons in the checklist idiom + accreditation row */
.why{background:var(--ivory-dim);}
.why-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:30px 40px; margin-top:8px;}
.why-grid .check{align-items:flex-start;}
.why-grid h4{font-family:var(--sans); font-size:14px; font-weight:600; color:var(--ink); margin-bottom:5px; line-height:1.4;}
.why-grid p{font-size:13px; line-height:1.65; color:var(--soft-charcoal); font-weight:300;}
.acc-row{display:flex; flex-wrap:wrap; gap:10px; margin-top:44px; padding-top:30px; border-top:1px solid var(--bone);}
.acc-row .lbl{width:100%; font-size:10.5px; letter-spacing:1.6px; text-transform:uppercase; color:var(--brass); font-weight:600; margin-bottom:2px;}
.acc-row .pill{border:1px solid var(--bone); color:var(--soft-charcoal); font-size:11px; padding:8px 14px; border-radius:16px; background:var(--white);}

/* enquiry — four steps, contact last, one brass action per step */
.enq .section-head{margin-bottom:34px;}
.eq-card{background:var(--white); border:1px solid var(--ivory-dim); border-radius:7px; max-width:860px; margin:0 auto; overflow:hidden;}
.eq-head{padding:22px 34px 0; display:flex; align-items:baseline; justify-content:space-between; gap:20px;}
.eq-prog{font-size:11px; letter-spacing:1.6px; text-transform:uppercase; color:var(--brass); font-weight:600;}
.eq-prog b{color:var(--ink); font-weight:700; letter-spacing:.5px;}
.eq-title-cur{font-size:11px; letter-spacing:1.4px; text-transform:uppercase; color:var(--soft-charcoal);}
.eq-bar{display:grid; grid-template-columns:repeat(4,1fr); gap:6px; padding:14px 34px 0;}
.eq-bar span{height:2px; background:var(--ivory-dim); border-radius:1px; transition:background .25s ease;}
.eq-bar span.on{background:var(--brass);}
.eq-panel{display:none; padding:30px 34px 6px;}
.eq-panel.on{display:block;}
.eq-panel h3{font-size:24px; margin-bottom:8px;}
.eq-panel .lead{font-size:14px; font-weight:300; line-height:1.7; color:var(--soft-charcoal); max-width:600px;}
.eq-q{font-size:10.5px; letter-spacing:1.6px; text-transform:uppercase; color:var(--brass); font-weight:600; margin:24px 0 12px;}
.chips{display:flex; flex-wrap:wrap; gap:8px;}
.chip{font-family:var(--sans); font-size:12.5px; color:var(--ink); background:transparent; border:1px solid var(--bone); border-radius:22px; padding:9px 16px; cursor:pointer; transition:all .18s ease; line-height:1.2;}
.chip:hover{border-color:var(--brass); color:var(--brass);}
.chip.on{background:var(--brass); border-color:var(--brass); color:var(--white);}
.chip:focus-visible{outline:2px solid var(--brass); outline-offset:2px;}
.ctrs{display:grid; grid-template-columns:repeat(4,1fr); gap:14px;}
.ctr{border:1px solid var(--ivory-dim); border-radius:6px; padding:14px 16px; display:flex; align-items:center; justify-content:space-between; gap:12px;}
.ctr .lab{font-size:13px; color:var(--ink); font-weight:500;}
.ctr .lab small{display:block; font-size:11px; color:var(--bone); font-weight:400; margin-top:1px;}
.ctr .ctl{display:flex; align-items:center; gap:10px;}
.ctr button{width:30px; height:30px; border-radius:50%; border:1px solid var(--bone); background:transparent; cursor:pointer; display:flex; align-items:center; justify-content:center; color:var(--ink); transition:all .18s ease;}
.ctr button:hover{border-color:var(--brass); color:var(--brass);}
.ctr button svg{width:12px; height:12px; fill:none; stroke:currentColor; stroke-width:1.8;}
.ctr .val{min-width:16px; text-align:center; font-weight:600; font-size:14px; color:var(--ink);}
.eq-cur{display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:6px;}
.eq-cur select{appearance:none; -webkit-appearance:none; font-family:var(--sans); font-size:12.5px; color:var(--ink); border:1px solid var(--bone); border-radius:3px; padding:9px 30px 9px 12px; background:var(--white) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'><path d='M2.5 4.5l3.5 3.5 3.5-3.5' fill='none' stroke='%23171411' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat right 10px center/9px 9px; cursor:pointer;}
.fields{display:grid; grid-template-columns:1fr 1fr; gap:16px 20px;}
.field{display:flex; flex-direction:column; gap:6px;}
.field.full{grid-column:1 / -1;}
.field label{font-size:10.5px; letter-spacing:1.4px; text-transform:uppercase; color:var(--soft-charcoal); font-weight:600;}
.field input,.field textarea{width:100%; border:1px solid var(--bone); border-radius:3px; padding:12px 14px; font-family:var(--sans); font-size:13.5px; color:var(--ink); background:var(--white); transition:border-color .18s ease;}
.field input:focus,.field textarea:focus{outline:none; border-color:var(--brass);}
.field textarea{min-height:96px; resize:vertical;}
.consent{display:flex; align-items:flex-start; gap:10px; font-size:12.5px; color:var(--soft-charcoal); margin-top:18px; line-height:1.55;}
.consent input{accent-color:var(--brass); width:16px; height:16px; margin-top:2px; flex:none;}
.consent a{color:var(--brass); text-decoration:underline; text-underline-offset:3px; text-decoration-color:rgba(168,121,75,.4);}
.eq-foot{display:flex; align-items:center; justify-content:space-between; gap:16px; padding:22px 34px 26px; border-top:1px solid var(--ivory-dim); margin-top:24px; flex-wrap:wrap;}
.eq-back{font-family:var(--sans); font-size:12px; letter-spacing:1.2px; text-transform:uppercase; font-weight:600; color:var(--soft-charcoal); background:transparent; border:none; cursor:pointer; padding:10px 0;}
.eq-back:hover{color:var(--brass);}
.eq-actions{display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin-left:auto;}
.eq-expect{font-size:11.5px; color:var(--soft-charcoal); opacity:.85;}
.eq-done{display:none; padding:44px 34px 40px; text-align:center;}
.eq-done.on{display:block;}
.eq-done .rv-divider{margin-bottom:22px;}
.eq-done h3{font-size:26px; margin-bottom:10px;}
.eq-done p{font-size:14px; font-weight:300; color:var(--soft-charcoal); max-width:520px; margin:0 auto; line-height:1.75;}
.eq-assure{margin-top:14px; font-size:9.5px; letter-spacing:1.1px; text-transform:uppercase; color:var(--soft-charcoal); text-align:center; padding:0 34px 26px;}
.eq-assure span + span::before{content:''; display:inline-block; width:3px; height:3px; border-radius:50%; background:var(--brass); margin:0 8px; vertical-align:2px;}
.more-foot{margin-top:34px;}

/* book banner */
.banner{background:var(--charcoal); border-bottom:1px solid rgba(255,255,255,.07); text-align:center; padding:90px 0;}
.banner h2{color:var(--white); font-size:32px; margin-bottom:12px;}
.banner .sub{color:var(--bone); font-size:15px; margin-bottom:34px;}
.banner .sub b{color:var(--brass); font-family:var(--sans); font-size:16px; font-weight:600; letter-spacing:.3px;}
.banner .assure a{color:var(--sand); text-decoration:underline; text-underline-offset:3px; text-decoration-color:rgba(195,159,119,.45);}
.banner .assure a:hover{color:var(--brass);}
.banner .btns{display:flex; gap:16px; justify-content:center; margin-bottom:22px;}
.banner .assure{color:rgba(185,175,162,.62); font-size:11.5px; letter-spacing:.6px;}
.banner .assure span{margin:0 12px;}

/* other lodges */
.xs-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.xcard{background:var(--white); border:1px solid var(--ivory-dim); border-radius:6px; overflow:hidden; transition:box-shadow .25s, transform .25s;}
.xcard:hover{box-shadow:0 20px 44px rgba(23,20,17,.13); transform:translateY(-3px);}
.xcard .img{height:170px; overflow:hidden;}
.xcard .img img{width:100%; height:100%; object-fit:cover;}
.xcard .body{padding:20px 22px;}
.xcard h4{font-size:16.5px; margin-bottom:6px;}
.xcard p{font-size:12.5px; line-height:1.6; margin-bottom:12px;}
.xcard .pr{font-size:12.5px; color:var(--brass); font-weight:600; display:inline-flex; align-items:center; gap:6px;}
.xcard .pr svg{width:12px; height:12px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}

/* footer */
body > footer{background:var(--ink); color:var(--bone); padding:72px 0 30px;}
.foot-grid{display:grid; grid-template-columns:1.5fr 1fr 1fr 1.15fr; gap:44px; padding-bottom:46px; border-bottom:1px solid rgba(255,255,255,.08);}
.foot-endorse{font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--sand); font-weight:500; margin:-4px 0 16px;}
.foot-logo img{height:52px; margin-bottom:18px;}
.foot-grid p{font-size:13px; line-height:1.7; max-width:300px;}
.foot-contact{margin-top:16px; font-size:13px;}
.foot-contact a{display:block; color:var(--sand); margin-bottom:6px;}
.foot-col h5{font-size:11px; letter-spacing:1.6px; text-transform:uppercase; color:var(--brass); margin-bottom:16px; font-weight:600;}
.foot-col a{display:block; font-size:13px; margin-bottom:10px; opacity:.9;}
.foot-col a:hover{color:var(--brass); opacity:1;}
.foot-col .cc{color:var(--sand); font-size:9px; letter-spacing:1.5px; margin-right:8px; font-weight:500; text-transform:uppercase;}
.foot-social{display:flex; flex-wrap:wrap; gap:6px 14px; margin-top:16px;}
.foot-social a{display:inline; font-size:12px; margin:0; opacity:.8;}
.foot-legal{display:flex; flex-wrap:wrap; gap:6px 18px;}
.foot-legal a:hover{color:var(--brass);}
.accred{display:flex; flex-wrap:wrap; gap:10px; margin-top:32px;}
.acc-pill{border:1px solid rgba(255,255,255,.18); font-size:11px; padding:7px 14px; border-radius:16px;}
.rev-pill{border:1px solid rgba(168,121,75,.5); color:var(--sand); font-size:11px; padding:7px 14px; border-radius:16px;}
.foot-bottom{display:flex; justify-content:space-between; padding-top:26px; font-size:12px; color:rgba(185,175,162,.62); flex-wrap:wrap; gap:10px;}

@media(max-width:1000px){
  .ov-grid,.rooms-grid,.scard-grid,.offer{grid-template-columns:1fr;}
  .why-grid{grid-template-columns:1fr 1fr;}
  .ctrs{grid-template-columns:1fr;}
  .fac-cats{grid-template-columns:1fr 1fr;}
  .near-grid{grid-template-columns:1fr;}
  .props .wrap{grid-template-columns:1fr 1fr;}
  .prop{border-right:none; border-bottom:1px solid rgba(255,255,255,.08);}
  .g-grid{grid-template-columns:1fr 1fr; grid-template-rows:220px 220px 220px;}
  .g-item.tall{grid-row:span 1;}
  .reviews-grid,.xs-grid,.list-grid{grid-template-columns:1fr 1fr;}
  .months{grid-template-columns:repeat(6,1fr);}
  .hero h1{font-size:38px;}
  .foot-grid{grid-template-columns:1fr 1fr;}
  .tb-right a:not(:first-child):not(.tb-link){display:none;}
  .bb-field{display:none;}
  .nav-links{gap:18px;}
  .nav-links a{font-size:11.5px; letter-spacing:.8px;}
}
@media(max-width:640px){
  .nav-links{display:none;}
  nav > .wrap > .btn{display:none;}
  .nav-tools{display:flex;}
  .props .wrap{grid-template-columns:1fr;}
  .prop{padding:18px 0;}
  .prop:last-child{border-bottom:none;}
  .prop .d{font-size:12px;}
  .trust .wrap{flex-wrap:nowrap; overflow-x:auto; justify-content:flex-start; scrollbar-width:none; -webkit-mask-image:linear-gradient(90deg,#000 88%,transparent); mask-image:linear-gradient(90deg,#000 88%,transparent);}
  .trust .wrap::-webkit-scrollbar{display:none;}
  .trust .lg{display:inline-flex;}
  .trust .rv{flex-basis:auto; margin-top:0;}
  .trust .rv::before{display:inline-block;}
  .trust .t:last-child{padding-right:40px;}
  .trust .t + .t::before{margin:0 12px;}
  .pc-contact{gap:16px;}
  .g-grid{grid-template-rows:200px 200px 170px;}
  .g-item:last-child{grid-column:span 2;}
  .banner .btns{flex-wrap:wrap;}
  .banner .btns .btn{width:100%;}
  .rv-score{font-size:44px;}
  .hero-content{padding:96px 0 40px;}
  .hero-flex{gap:28px;}
  .hero .meta{gap:10px 12px;}
  .hero .meta .pills{flex-basis:100%;}
  .lg-only{display:none;}
  .crumb{font-size:10px; letter-spacing:1.1px;}
  .crumb a:first-child, .crumb a:first-child + .sep{display:none;}
  .price-card{min-width:0; width:100%;}
  .reviews-grid,.xs-grid,.list-grid,.checks,.months,.foot-grid{grid-template-columns:1fr;}
  .gtk-grid{grid-template-columns:1fr !important;}
  .off-lists{grid-template-columns:1fr;}
  .offer{padding:26px 22px 24px;}
  .off-cta .btn{width:100%;}
  .faq-grid{grid-template-columns:1fr;}
  .fac-cats{grid-template-columns:1fr;}
  .why-grid{grid-template-columns:1fr;}
  .fields{grid-template-columns:1fr;}
  .eq-head,.eq-bar,.eq-panel,.eq-foot,.eq-done,.eq-assure{padding-left:20px; padding-right:20px;}
  .eq-actions{width:100%;}
  .eq-actions .btn{width:100%;}
  .eq-expect{width:100%; text-align:center;}
  .months{grid-template-columns:repeat(3,1fr);}
  .hero h1{font-size:32px;}
  .tb-right .tb-link{display:none;}
  .bookbar .wrap{height:62px; gap:12px; padding:0 18px;}
  .bookbar .btn-outline-dark{display:none;}
  .bb-fallback .l{display:none;}
  .bb-fallback b{font-size:11.5px; white-space:normal; line-height:1.3; display:block; max-width:46vw;}
  .bb-form{margin-left:auto;}
  .bookbar .btn{padding:11px 14px; font-size:10.5px; letter-spacing:1px;}
  .bb-price .l{display:none;}
  .bb-price .code{display:none;}
  .bb-price b{font-size:15px;}
  body.bookbar-on{padding-bottom:66px;}
}

@media(max-width:380px){
  .hero .eyebrow{font-size:9.5px; letter-spacing:1.4px;}
  .hero .meta{font-size:12.5px;}
  .hero h1{font-size:30px;}
}
/* --- Special: Badge Green savings signal --- */
.save-chip{display:inline-flex; align-items:center; gap:6px; background:var(--badge-green,#4F6B51); color:#FFFFFF; font-family:var(--sans); font-size:10px; font-weight:600; letter-spacing:1.2px; text-transform:uppercase; padding:6px 12px; border-radius:3px;}
.price-card .save-chip{margin-bottom:10px;}
.prop.special{border-top:3px solid #4F6B51; background:rgba(79,107,81,.10);}
.prop.special .k{color:var(--badge-green-300);}
.qf h3 .save-chip{float:none; margin:0; flex:none;}
.qf.special{border:1px solid rgba(79,107,81,.38); border-top:3px solid #4F6B51; background:linear-gradient(rgba(79,107,81,.055), rgba(79,107,81,.055)), var(--white);}
.qf.special h3{color:var(--badge-green-700);}
.qf.special .qf-row{border-bottom-color:rgba(79,107,81,.14);}
/* --- Lightbox --- */
.lb{position:fixed; inset:0; z-index:1000; background:rgba(14,12,10,.94); display:none; align-items:center; justify-content:center;}
.lb.open{display:flex;}
.lb img{max-width:88vw; max-height:82vh; border-radius:4px; box-shadow:0 32px 80px rgba(0,0,0,.6);}
.lb .lb-btn{position:absolute; top:50%; transform:translateY(-50%); width:46px; height:46px; border-radius:50%; background:var(--brass); color:#FFFFFF; border:none; font-size:20px; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .24s;}
.lb .lb-btn:hover{background:var(--brass-600);}
.lb .lb-btn svg{width:20px; height:20px; fill:none; stroke:#FFFFFF; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}
.lb .lb-x svg{width:22px; height:22px; fill:none; stroke:var(--ivory); stroke-width:1.8; stroke-linecap:round;}
.lb .lb-prev{left:26px;} .lb .lb-next{right:26px;}
.lb .lb-x{position:absolute; top:22px; right:26px; background:transparent; border:none; color:var(--ivory); cursor:pointer; line-height:0; padding:6px;}
.lb .lb-count{position:absolute; bottom:24px; left:50%; transform:translateX(-50%); color:var(--ivory); font-family:var(--sans); font-size:11px; letter-spacing:1.5px;}
.g-item{cursor:pointer; position:relative;}
.g-more{position:absolute; inset:0; background:rgba(14,12,10,.55); display:flex; align-items:center; justify-content:center; color:#FFFFFF; font-family:var(--sans); font-size:12px; font-weight:600; letter-spacing:1.2px; text-transform:uppercase; border-radius:inherit;}
.g-more svg{width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:1.5; margin-right:9px; flex:none;}
.room .img.room-lb-trigger{cursor:pointer; position:relative;}
.room-more{inset:auto 12px 12px auto; background:rgba(14,12,10,.72); padding:8px 14px; border-radius:3px; font-size:10.5px; transition:background .24s;}
.room .img.room-lb-trigger:hover .room-more{background:rgba(14,12,10,.88);}

/* breadcrumbs + hero */
.pkg-hero{position:relative; min-height:520px; display:flex; align-items:flex-end; background-size:cover; background-position:center; color:#fff;}
.pkg-hero .wrap{width:100%; padding-top:60px; padding-bottom:56px;}
.crumbs{font-family:var(--sans); font-size:12px; letter-spacing:.4px; margin-bottom:20px;}
.crumbs a{color:rgba(255,255,255,.82); text-decoration:none;} .crumbs a:hover{color:#fff;} .crumbs span{opacity:.6; margin:0 4px;}
.pkg-eyebrow{font-family:var(--sans); font-size:11px; letter-spacing:3px; text-transform:uppercase; color:var(--sand); font-weight:600; margin-bottom:16px;}
.pkg-eyebrow.dark{color:var(--brass);}
.pkg-hero h1{color:var(--white); font-family:var(--serif); font-size:clamp(32px,5.4vw,56px); font-weight:500; line-height:1.08; margin:0 0 18px; max-width:16ch;}
.pkg-meta{display:flex; flex-wrap:wrap; gap:10px 22px; font-family:var(--sans); font-size:13px; letter-spacing:.3px; color:rgba(255,255,255,.9); margin-bottom:26px;}
.pkg-meta span{position:relative;} .pkg-meta span+span::before{content:"|"; position:absolute; left:-13px; opacity:.4;}
.pkg-hero-cta{display:flex; align-items:center; gap:26px; flex-wrap:wrap;}
.pkg-price{font-family:var(--sans); font-size:13px; color:rgba(255,255,255,.85);}
.pkg-price strong{font-family:var(--serif); font-size:26px; color:#fff; font-weight:500; margin:0 4px;}
.pkg-wrap{max-width:920px;}
/* overview */
.pkg-overview{background:var(--white); padding:64px 0 30px;}
.pkg-lead{font-size:17px; line-height:1.72; color:var(--soft-charcoal); margin:14px 0 0;}
/* glance */
.pkg-glance{background:var(--white); padding:26px 0 50px;}
.glance-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--bone); border:1px solid var(--bone); border-radius:9px; overflow:hidden;}
.glance{background:var(--ivory); padding:22px 24px; display:flex; flex-direction:column; gap:6px;}
.g-k{font-family:var(--sans); font-size:10.5px; letter-spacing:1.4px; text-transform:uppercase; color:var(--brass); font-weight:600;}
.g-v{font-family:var(--serif); font-size:16px; color:var(--ink);}
/* itinerary timeline */
.pkg-itin{background:var(--white); padding:56px 0 20px;}
.pkg-h2{font-family:var(--serif); font-size:clamp(26px,3.4vw,34px); font-weight:500; color:var(--ink); margin:0 0 34px; text-align:center;}
.itin{position:relative;}
.itin-day{position:relative; padding-left:70px; padding-bottom:38px;}
.itin-day::before{content:""; position:absolute; left:23px; top:6px; bottom:-6px; width:2px; background:var(--ivory-dim);}
.itin-day:last-child::before{display:none;}
.itin-num{position:absolute; left:0; top:0; width:48px; height:48px; border-radius:50%; background:var(--ivory); border:2px solid var(--brass); color:var(--brass); font-family:var(--serif); font-size:16px; display:flex; align-items:center; justify-content:center; z-index:1;}
.itin-content{display:grid; grid-template-columns:300px 1fr; gap:26px; align-items:start;}
.itin-media{border-radius:8px; overflow:hidden; aspect-ratio:4/3; background:var(--ivory-dim);}
.itin-media img{width:100%; height:100%; object-fit:cover; display:block;}
.itin-label{font-family:var(--sans); font-size:10.5px; letter-spacing:1.4px; text-transform:uppercase; color:var(--brass); font-weight:600; margin-bottom:7px;}
.itin-text h3{font-family:var(--serif); font-size:20px; font-weight:500; color:var(--ink); margin:0 0 10px; line-height:1.28;}
.itin-text p{font-size:14px; line-height:1.66; color:var(--soft-charcoal); margin:0;}
/* included (dark) */
.pkg-included{background:var(--ink); color:var(--ivory); padding:66px 0;}
.pkg-included h2{font-family:var(--serif); font-size:clamp(26px,3.4vw,34px); font-weight:500; text-align:center; margin:0 0 40px; color:#fff;}
.incl-cols{display:grid; grid-template-columns:1fr 1fr; gap:54px; max-width:900px; margin:0 auto;}
.incl-col h3{font-family:var(--sans); font-size:12px; letter-spacing:1.6px; text-transform:uppercase; color:var(--sand); font-weight:600; margin:0 0 20px; padding-bottom:12px; border-bottom:1px solid rgba(255,255,255,.16);}
.incl-list{list-style:none; margin:0; padding:0;}
.incl-list li{position:relative; padding-left:26px; margin-bottom:14px; font-size:14.5px; line-height:1.55; color:rgba(246,241,234,.9);}
.incl-list li::before{content:""; position:absolute; left:0; top:7px; width:8px; height:8px; border-right:2px solid var(--brass); border-bottom:2px solid var(--brass); transform:rotate(45deg);}
/* rates */
.pkg-rates{background:var(--white); padding:60px 0;}
.rates-note{font-size:14px; color:var(--soft-charcoal); line-height:1.64; max-width:760px; margin:0 0 24px;}
.rates-table{width:100%; border-collapse:collapse; font-family:var(--sans);}
.rates-table th{text-align:left; font-size:11px; letter-spacing:1px; text-transform:uppercase; color:var(--brass); font-weight:600; padding:0 0 12px; border-bottom:2px solid var(--brass);}
.rates-table th:last-child{text-align:right;}
.rates-table td{padding:18px 0; border-bottom:1px solid var(--ivory-dim); font-size:15px; color:var(--ink);}
.rate-from{text-align:right; font-family:var(--serif); font-size:18px;}
.rates-foot{font-size:12.5px; color:var(--bone); margin:16px 0 0;}
/* specialist */
.pkg-specialist{background:var(--ivory); padding:56px 0;}
.spec-card{display:flex; gap:28px; align-items:center; max-width:820px; margin:0 auto; background:var(--white); border:1px solid var(--ivory-dim); border-radius:12px; padding:32px 36px;}
.spec-avatar{flex:none; width:76px; height:76px; border-radius:50%; background:var(--brass); color:#fff; font-family:var(--serif); font-size:26px; display:flex; align-items:center; justify-content:center;}
.spec-eyebrow{font-family:var(--sans); font-size:11px; letter-spacing:1.6px; text-transform:uppercase; color:var(--brass); font-weight:600; margin-bottom:8px;}
.spec-line{font-size:14.5px; line-height:1.62; color:var(--soft-charcoal); margin:0 0 16px;}
/* related */
.pkg-related{background:var(--white); padding:60px 0;}
.rel-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
.rel-card{display:block; border:1px solid var(--ivory-dim); border-radius:10px; overflow:hidden; text-decoration:none; transition:box-shadow .2s ease, transform .2s ease;}
.rel-card:hover{box-shadow:0 12px 30px rgba(23,20,17,.10); transform:translateY(-3px);}
.rel-img{aspect-ratio:3/2; background:var(--ivory-dim); overflow:hidden;}
.rel-img img{width:100%; height:100%; object-fit:cover; display:block;}
.rel-body{padding:20px 22px 22px;}
.rel-body h3{font-family:var(--serif); font-size:18px; font-weight:500; color:var(--ink); margin:0 0 8px; line-height:1.3;}
.rel-meta{font-family:var(--sans); font-size:12.5px; color:var(--soft-charcoal); margin-bottom:12px;}
.rel-price{font-family:var(--sans); font-size:13px; color:var(--brass); font-weight:600;} .rel-price span{color:var(--bone); font-weight:400;}
/* cta band */
.pkg-ctaband{background:var(--ivory-dim); padding:60px 0; text-align:center;}
.pkg-ctaband h2{font-family:var(--serif); font-size:clamp(24px,3vw,32px); font-weight:500; color:var(--ink); margin:0 0 12px;}
.pkg-ctaband p{font-size:15px; color:var(--soft-charcoal); max-width:620px; margin:0 auto 24px; line-height:1.6;}
/* sticky bar */
.pkg-stickybar{position:fixed; left:0; right:0; bottom:0; z-index:60; background:rgba(23,20,17,.97); color:#fff; transform:translateY(110%); transition:transform .3s ease; box-shadow:0 -6px 24px rgba(0,0,0,.22);}
.pkg-stickybar.show{transform:translateY(0);}
.pkg-stickybar .wrap{display:flex; align-items:center; justify-content:space-between; gap:20px; padding-top:14px; padding-bottom:14px;}
.sb-info strong{display:block; font-family:var(--serif); font-size:16px; font-weight:500;}
.sb-info span{font-family:var(--sans); font-size:12.5px; color:var(--sand);}
@media(max-width:820px){
  .glance-grid{grid-template-columns:1fr 1fr;}
  .itin-content{grid-template-columns:1fr; gap:14px;} .itin-media{max-width:340px;}
  .incl-cols{grid-template-columns:1fr; gap:34px;}
  .rel-grid{grid-template-columns:1fr;}
  .spec-card{flex-direction:column; text-align:center;}
}






















<!-- asg-mega-nav v1 -->

/* === MEGA NAVIGATION =====================================================
   One component, two configurations (brand and reserve). The panel is an
   extension of the Ink header rather than a light card dropped over it —
   the header is already the darkest surface on the site, and a bright panel
   would read as a different site opening on top of this one.
   Each panel spends its right-hand third on a FEATURED CARD instead of a
   fifth column of links: the menu is the most-seen component on the estate,
   so the space is worth more saying one thing than listing six more.
   ---------------------------------------------------------------------- */
.nav-links{position:static;}
.nav-item{position:static;}
.nav-top{display:flex; align-items:center; gap:6px; background:none; border:none; cursor:pointer;
  font-family:var(--sans); font-size:12.5px; letter-spacing:1px; color:var(--ivory-dim);
  text-transform:uppercase; padding:4px 0; position:relative; white-space:nowrap;}
.nav-top::after{content:''; position:absolute; left:0; bottom:-2px; width:0; height:1px;
  background:var(--brass); transition:width .25s ease;}
.nav-top:hover::after,.nav-top[aria-expanded="true"]::after{width:100%;}
.nav-top:hover,.nav-top[aria-expanded="true"]{color:var(--white);}
.nav-top:focus-visible{outline:1px solid var(--brass); outline-offset:4px;}
.nav-chev{flex:none; transition:transform .22s ease;}
.nav-top[aria-expanded="true"] .nav-chev{transform:rotate(180deg);}
.nav-plain{font-family:var(--sans); font-size:12.5px; letter-spacing:1px; color:var(--ivory-dim);
  text-transform:uppercase; position:relative; padding:4px 0;}
.nav-plain::after{content:''; position:absolute; left:0; bottom:-2px; width:0; height:1px;
  background:var(--brass); transition:width .25s ease;}
.nav-plain:hover::after{width:100%;}

.mega{position:absolute; left:0; right:0; top:100%; background:var(--ink);
  border-top:1px solid rgba(168,121,75,.45); border-bottom:1px solid rgba(255,255,255,.08);
  box-shadow:0 26px 50px rgba(0,0,0,.42);}
.mega[hidden]{display:none;}
.mega .mega-in{display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:44px;
  align-items:start; height:auto; padding-top:34px; padding-bottom:32px;}
/* The panel's inner containers reuse .wrap for gutters, and the shared contract styles
   `nav .wrap` (0,1,1) as a 78px-high centred flex row. Anything nested inside <nav> inherits
   that, so every .wrap in here has to be re-specified at equal-or-higher specificity. This is
   the same defect class as the earlier nav{}, .why{} and section{} collisions. */
.mega .mega-foot .wrap{display:flex; align-items:center; justify-content:space-between;
  gap:20px; flex-wrap:wrap; height:auto; padding-top:14px; padding-bottom:14px;}
.mega-cols{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:30px 34px;
  min-width:0;}
.mega-col{min-width:0;}
.mega-k{font-family:var(--sans); font-size:9.5px; letter-spacing:1.5px; text-transform:uppercase;
  color:var(--sand); font-weight:600; padding-bottom:9px; margin-bottom:9px;
  border-bottom:1px solid rgba(255,255,255,.12);}
.mega-col a{display:block; font-family:var(--sans); font-weight:300; font-size:13px; line-height:1.5;
  color:var(--ivory-dim); padding:5px 0; transition:color .16s ease, transform .16s ease;}
.mega-col a:hover{color:var(--brass); transform:translateX(2px);}
.mega-col a:focus-visible{outline:1px solid var(--brass); outline-offset:3px;}

.mega-feature{display:block; background:rgba(255,255,255,.045); border:1px solid rgba(255,255,255,.1);
  border-radius:10px; overflow:hidden; text-decoration:none; min-width:0;}
.mega-feature:hover{border-color:rgba(168,121,75,.55);}
.mega-feature:focus-visible{outline:2px solid var(--brass); outline-offset:2px;}
.mf-img{display:block; aspect-ratio:16/9; background:var(--charcoal); overflow:hidden;}
.mf-img img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease;}
.mega-feature:hover .mf-img img{transform:scale(1.04);}
.mf-k{display:block; font-family:var(--sans); font-size:9px; letter-spacing:1.5px;
  text-transform:uppercase; color:var(--sand); font-weight:600; padding:15px 17px 0;}
.mf-t{display:block; font-family:var(--serif); font-size:17px; line-height:1.3; color:var(--white);
  padding:7px 17px 0;}
.mf-l{display:block; font-family:var(--sans); font-weight:300; font-size:12px; line-height:1.6;
  color:rgba(246,241,234,.72); padding:8px 17px 0;}
.mf-g{display:inline-block; margin:12px 17px 16px; font-family:var(--sans); font-size:10px;
  letter-spacing:1.3px; text-transform:uppercase; font-weight:600; color:var(--sand);
  border-bottom:1px solid rgba(195,159,119,.45); padding-bottom:3px;}
.mega-feature:hover .mf-g{color:var(--white); border-bottom-color:var(--white);}

.mega-foot{background:rgba(0,0,0,.28); border-top:1px solid rgba(255,255,255,.07);}
.mega-all{font-family:var(--sans); font-size:10.5px; letter-spacing:1.4px; text-transform:uppercase;
  font-weight:600; color:var(--brass);}
.mega-all::after{content:' \2192';}
.mega-all:hover{color:var(--sand);}
.mega-help{font-family:var(--sans); font-weight:300; font-size:12px; color:rgba(246,241,234,.6);}
.mega-help:hover{color:var(--sand);}

.mega-scrim{position:fixed; left:0; right:0; top:0; bottom:0; z-index:55;
  background:rgba(23,20,17,.5); opacity:0; transition:opacity .2s ease;}
.mega-scrim[hidden]{display:none;}
.mega-scrim.on{opacity:1;}

/* --- mobile drawer accordion ------------------------------------------- */
.mnav .mgroup{border-bottom:1px solid rgba(255,255,255,.08);}
.mnav .item.mtoggle{display:flex; align-items:center; justify-content:space-between; gap:16px;
  width:100%; text-align:left; background:none; border:none; cursor:pointer; border-bottom:none;
  font-family:var(--serif); font-size:26px; color:var(--white); padding:14px 0;}
.mnav .item.mtoggle .nav-chev{width:14px; height:14px; color:var(--brass);}
.mnav .item.mtoggle[aria-expanded="true"]{color:var(--brass);}
.mnav .item.mtoggle[aria-expanded="true"] .nav-chev{transform:rotate(180deg);}
.mnav .msub{padding:2px 0 18px;}
.mnav .msub[hidden]{display:none;}
.mnav .msub-k{font-family:var(--sans); font-size:9.5px; letter-spacing:1.5px; text-transform:uppercase;
  color:var(--sand); font-weight:600; margin:14px 0 6px;}
.mnav .msub a{display:block; font-family:var(--sans); font-weight:300; font-size:15px;
  color:var(--ivory-dim); padding:7px 0;}
.mnav .msub a:hover{color:var(--brass);}
.mnav .msub a.msub-all{font-size:11px; letter-spacing:1.3px; text-transform:uppercase;
  font-weight:600; color:var(--brass); margin-top:10px;}

/* The desktop bar now carries five triggers with chevrons rather than six short links, so it
   needs to hand over to the drawer earlier than the contract's 640px — which was already late
   for the old nav and overflows outright with this one. Two steps: drop the secondary plain
   items first (they are still in the drawer), then the whole bar. */
@media(max-width:1180px){
  .mega .mega-in{grid-template-columns:minmax(0,1fr) 250px; gap:32px;}
}
@media(max-width:1100px){
  .nav-links{gap:20px;}
  .nav-top,.nav-plain{font-size:11.5px; letter-spacing:.6px;}
  .nav-plain{display:none;}
}
@media(max-width:960px){
  .nav-links{display:none;}
  .nav-tools{display:flex;}
}
@media(max-width:1080px){
  .mega .mega-in{grid-template-columns:minmax(0,1fr);}
  .mega-feature{display:none;}
}
<!-- /asg-mega-nav -->
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{font-family:var(--sans); color:var(--soft-charcoal); background:var(--ivory); line-height:1.6; -webkit-font-smoothing:antialiased;}
img{display:block; max-width:100%; height:auto;}
a{text-decoration:none; color:inherit;}
.wrap{max-width:1200px; margin:0 auto; padding:0 32px;}
h1,h2,h3,h4{font-family:var(--serif); font-weight:500; color:var(--ink); line-height:1.18;}
.eyebrow{font-weight:500; font-size:11px; letter-spacing:2.5px; color:var(--brass); text-transform:uppercase;}
.btn{display:inline-flex; align-items:center; justify-content:center; font-weight:600; font-size:12px; letter-spacing:1.2px; text-transform:uppercase; padding:14px 26px; border-radius:3px; transition:all .2s ease; cursor:pointer; border:none;}
.btn-brass{background:var(--brass); color:var(--white);}
.btn-brass:hover{background:var(--brass-600); transform:translateY(-1px);}
.btn-outline-dark{background:transparent; color:var(--ivory); border:1px solid rgba(255,255,255,.35);}
.btn-outline-dark:hover{border-color:var(--brass); color:var(--brass);}
.btn-outline-light{background:transparent; color:var(--ink); border:1px solid var(--bone);}
.btn-outline-light:hover{border-color:var(--brass); color:var(--brass);}
/* top bar — phone lines. The R2 currency switcher is removed under the R3 native-currency ruling — not replaced. */
.topbar{background:var(--charcoal); color:var(--bone); font-size:11px; letter-spacing:.3px; border-bottom:1px solid rgba(255,255,255,.06);}
.topbar .wrap{display:flex; align-items:center; justify-content:flex-end; height:38px; gap:16px;}
.tb-right{display:flex; align-items:center; gap:22px; white-space:nowrap;}
.tb-right a{color:var(--ivory-dim); transition:color .2s ease; display:inline-flex; align-items:center;}
.tb-right a:hover{color:var(--brass);}
.tb-right .cc{color:var(--sand); font-size:9px; letter-spacing:1.5px; margin-right:7px; font-weight:500;}
.tb-right .tb-link{color:var(--sand); text-decoration:underline; text-underline-offset:3px; text-decoration-color:rgba(195,159,119,.45);}
.tb-right .tb-link:hover{color:var(--brass);}
nav.nav-hidden{transform:translateY(-100%);}
body > nav > .wrap{display:flex; align-items:center; justify-content:space-between; height:78px;}
.logo img{height:44px; width:auto;}
.nav-links{display:flex; gap:30px; align-items:center;}
.nav-links a{font-size:12.5px; letter-spacing:1px; color:var(--ivory-dim); text-transform:uppercase; position:relative; padding:4px 0;}
.nav-links a::after{content:'';position:absolute;left:0;bottom:-2px;width:0;height:1px;background:var(--brass);transition:width .25s ease;}
.nav-links a:hover::after{width:100%;}
body > nav .btn{white-space:nowrap;}
.nav-tools{display:none; align-items:center; gap:6px;}
.nav-icon{width:44px; height:44px; display:flex; align-items:center; justify-content:center; background:transparent; border:none; cursor:pointer; color:var(--ivory); border-radius:3px;}
.nav-icon svg{width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round;}
.nav-icon.call svg{stroke:var(--brass);}
.nav-icon:focus-visible{outline:1px solid var(--brass); outline-offset:2px;}
.mnav{display:none; position:fixed; left:0; right:0; top:0; bottom:0; z-index:59; background:var(--ink); padding:110px 32px 40px; overflow-y:auto;}
nav.open ~ .mnav, body.menu-open .mnav{display:block;}
.mnav a.item{display:block; font-family:var(--serif); font-size:26px; color:var(--white); padding:14px 0; border-bottom:1px solid rgba(255,255,255,.08);}
.mnav a.item:hover{color:var(--brass);}
.mnav .mnav-contact{margin-top:28px; display:flex; flex-direction:column; gap:12px; font-size:13px; color:var(--bone);}
.mnav .mnav-contact a{color:var(--ivory-dim);}
.mnav .mnav-contact .cc{color:var(--sand); font-size:9px; letter-spacing:1.5px; margin-right:8px; font-weight:500;}
.mnav .btn{margin-top:28px; width:100%;}
body.menu-open{overflow:hidden;}
body.menu-open nav{transform:none !important;}
/* hero */
.hero{position:relative; min-height:72vh; display:flex; align-items:flex-end; overflow:hidden; background:var(--ink);}
.hero-bg{position:absolute; top:0; left:0; right:0; bottom:0; background-image:url('https://pim.africansafarigroup.com/_default_upload_bucket/image-thumb__80217__optimized-desktop/Aerial%20view_4.webp'); background-size:cover; background-position:center 45%;}
.hero-scrim{position:absolute; top:0; left:0; right:0; bottom:0; background:linear-gradient(180deg, rgba(23,20,17,.80) 0%, rgba(23,20,17,.45) 40%, rgba(23,20,17,.92) 100%);}   /* Riaan, 5 Oct 2026: sand on a photo failed on 61% of the eyebrow's width; ivory text on this scrim passes everywhere */
.hero-content{position:relative; z-index:2; width:100%; padding:70px 0 54px;}
.hero-flex{display:flex; justify-content:space-between; align-items:flex-end; gap:40px; flex-wrap:wrap;}
.crumb-bar{position:absolute; top:26px; left:0; right:0; z-index:3;}
.crumb{font-size:11px; letter-spacing:1.4px; text-transform:uppercase; color:var(--sand);}
.crumb a{color:var(--sand); transition:color .2s ease;}
.crumb a:hover{color:var(--brass);}
.crumb .sep{margin:0 7px; opacity:.6;}
.hero h1{font-size:52px; color:var(--white);}
.hero .meta{display:flex; align-items:center; gap:14px; margin-top:14px; color:var(--ivory-dim); font-size:13px; flex-wrap:wrap;}
.hero .meta .pills{display:inline-flex; gap:8px; flex-wrap:wrap;}
/* star component (approved reviews pattern) — partial-fill SVG, fill % = (displayed star / 5) x 100 */
.stars{display:inline-block; position:relative; line-height:0; white-space:nowrap; font-size:0;}
.stars .empty,.stars .fill{display:flex; gap:2px;}
.stars svg{width:var(--star,15px); height:var(--star,15px); display:block; flex:none;}
.stars .empty svg{fill:var(--ivory-dim);}
.stars .fill{position:absolute; top:0; left:0; overflow:hidden;}
.stars .fill svg{fill:var(--brass);}
.hero .stars .empty svg{fill:rgba(255,255,255,.22);}
.i-star{width:12px; height:12px; fill:var(--brass); vertical-align:-1px;}
.hpill{display:inline-flex; align-items:center; gap:7px; background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.28); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); color:var(--white); font-size:10px; letter-spacing:1.2px; text-transform:uppercase; padding:6px 13px; border-radius:22px; font-weight:500;}
.hpill svg{width:9px; height:9px; fill:var(--brass); flex:none;}
.hero .meta .rating{color:var(--ivory-dim);}
.hero .meta .rating:hover{color:var(--white);}
.hero .meta .rating b{color:var(--white);}
.price-card{background:var(--ivory); border-radius:6px; padding:26px 28px; min-width:min(300px,100%); box-shadow:0 30px 60px rgba(0,0,0,.4);}
.price-card .from{font-size:10px; letter-spacing:1.6px; text-transform:uppercase; color:var(--brass); font-weight:600;}
.price-card .amount{font-family:var(--serif); font-size:30px; color:var(--ink); margin:4px 0 16px;}
.price-card .amount .val{font-family:var(--serif);}
.price-card .amount .unit{font-family:var(--sans); font-size:13px; color:var(--soft-charcoal);}
.price-card .btn{width:100%; margin-bottom:10px;}
.price-card .note{font-size:10.5px; color:var(--soft-charcoal); opacity:.8; text-align:center; margin-top:6px; line-height:1.55;}
.pc-contact{display:flex; justify-content:center; gap:22px; margin-top:14px; padding-top:14px; border-top:1px solid var(--ivory-dim);}
.pc-contact a{display:inline-flex; align-items:center; gap:7px; font-size:11px; letter-spacing:.9px; text-transform:uppercase; font-weight:600; color:var(--ink);}
.pc-contact a:hover{color:var(--brass);}
.pc-contact svg{width:15px; height:15px; fill:none; stroke:var(--brass); stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round;}
.pc-assure{margin-top:12px; text-align:center; font-size:9.5px; letter-spacing:1.1px; text-transform:uppercase; color:var(--soft-charcoal); line-height:1.9;}
.pc-assure span{white-space:nowrap;}
.pc-assure span + span::before{content:''; display:inline-block; width:3px; height:3px; border-radius:50%; background:var(--brass); margin:0 8px; vertical-align:2px;}
/* value props bar */
.props{background:var(--charcoal); color:var(--ivory);}
.props .wrap{display:grid; grid-template-columns:repeat(4,1fr); gap:0;}
.prop{padding:24px 26px; border-right:1px solid rgba(255,255,255,.08);}
.prop:last-child{border-right:none;}
.prop .k{font-size:12px; letter-spacing:1.5px; text-transform:uppercase; color:var(--brass); font-weight:600; margin-bottom:6px;}
.prop .t{font-size:13.5px; color:var(--white); font-weight:500; margin-bottom:4px;}
.prop .d{font-size:11.5px; color:var(--bone); line-height:1.55;}
/* trust row — Tier-1 accreditations lead, then the reviews signal; sits under the props bar so trust is next to price and CTA */
.trust{background:var(--ivory-dim); border-bottom:1px solid var(--bone);}
.trust .wrap{display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:8px 0; padding-top:15px; padding-bottom:15px;}
.trust .t{display:inline-flex; align-items:center; font-size:10px; letter-spacing:1.3px; text-transform:uppercase; color:var(--soft-charcoal); font-weight:500; white-space:nowrap;}
.trust .t + .t::before{content:''; width:4px; height:4px; border-radius:50%; background:var(--brass); margin:0 14px; opacity:.85; flex:none;}
@media(max-width:1100px){ .trust .rv{flex-basis:100%; justify-content:center; margin-top:2px;} .trust .rv::before{display:none;} }
@media(max-width:900px){ .trust .lg{display:none;} }
.trust .rv{color:var(--ink); font-weight:600;}
.trust .rv svg{margin-right:7px;}
.trust .rv b{font-weight:700;}
/* enquiry checklist idiom (brass check circles) — used by the six-reason section */
.checks{display:grid; grid-template-columns:1fr 1fr; gap:14px 40px; margin-top:26px; max-width:820px;}
.check{display:flex; gap:12px; font-size:13.5px; color:var(--soft-charcoal); align-items:flex-start;}
.check::before{content:''; flex-shrink:0; width:22px; height:22px; border-radius:50%; background:var(--brass) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M3 8.5l3.2 3.2L13 4.5' fill='none' stroke='%23FFFFFF' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/></svg>") center/11px 11px no-repeat; margin-top:1px;}
/* sticky subnav */
.subnav{position:sticky; top:0; z-index:65; background:var(--ivory); border-bottom:1px solid var(--bone); box-shadow:0 2px 12px rgba(23,20,17,.05);}
section[id], div[id]{scroll-margin-top:72px;}
.subnav .wrap{display:flex; align-items:center; gap:28px; height:56px; overflow-x:auto; scrollbar-width:none;}
.subnav .wrap::-webkit-scrollbar{display:none;}
@media(max-width:640px){ .subnav .wrap{gap:22px; -webkit-mask-image:linear-gradient(90deg,#000 86%,transparent); mask-image:linear-gradient(90deg,#000 86%,transparent);} }
.subnav a{font-size:11.5px; letter-spacing:1.2px; text-transform:uppercase; color:var(--soft-charcoal); white-space:nowrap; padding:4px 0; border-bottom:2px solid transparent;}
.subnav a:hover, .subnav a.active{color:var(--brass); border-bottom-color:var(--brass);}
/* the sub-nav is wayfinding only; the sticky booking bar (below) owns the persistent action so no view carries two brass buttons */

/* sticky booking bar — appears once the hero PriceCard scrolls out; bottom-docked, one brass action, price line in the rate sheet's native currency, gated by the D-048 rates state */
.bookbar{position:fixed; left:0; right:0; bottom:0; z-index:70; background:rgba(23,20,17,.97); backdrop-filter:blur(6px); border-top:1px solid rgba(255,255,255,.1); transform:translateY(102%); transition:transform .32s ease; padding-bottom:env(safe-area-inset-bottom);}
.bookbar.show{transform:translateY(0);}
.bookbar .wrap{display:flex; align-items:center; gap:22px; height:66px;}
.bb-price{color:var(--ivory); white-space:nowrap; line-height:1.2;}
.bb-price .l{display:block; font-size:9.5px; letter-spacing:1.6px; text-transform:uppercase; color:var(--sand); font-weight:500; margin-bottom:2px;}
.bb-price b{font-size:16px; font-weight:600; color:var(--white);}
.bb-price .u{font-size:11px; color:var(--bone); margin-left:5px;}
.bb-form{display:flex; align-items:center; gap:10px; margin-left:auto;}
.bb-field{display:flex; align-items:center; gap:6px; border:1px solid rgba(255,255,255,.18); border-radius:3px; padding:0 4px 0 11px; height:40px; color:var(--bone); font-size:10px; letter-spacing:1.3px; text-transform:uppercase; font-weight:500;}
.bb-field select{appearance:none; -webkit-appearance:none; background:transparent; background-image:var(--chev-mask); background-repeat:no-repeat; background-position:right 5px center; background-size:9px 9px; border:none; color:var(--white); font-family:var(--sans); font-size:12.5px; font-weight:500; padding:0 20px 0 4px; cursor:pointer;}
.bb-field select:focus-visible{outline:1px solid var(--brass); outline-offset:1px; border-radius:2px;}
.bookbar .btn{padding:12px 20px; white-space:nowrap;}
.bookbar .btn-outline-dark{height:40px; padding:0 18px;}
body.bookbar-on{padding-bottom:70px;}
/* rates state (ledger D-048) — body[data-rates-state] gates every rate surface. "certified" = backed by a rate row passing the
   D-048 validity rule: loaded by the product team from the STO agreement (loading is the verification); displays while today falls
   inside the validity window; future-dated windows display as forthcoming seasons; lapsed, undated or malformed windows fail
   validity and render enquire, per row, never blocking the lodge; 12-month re-verification backstop. "fallback" = no
   validity-passing row: rate figures suppressed, enquire-led. Sibling-card from-lines gate per sibling lodge's own state at build
   time; the single body attribute gates them together here for review only. Madikwe Manor: permanently fallback (no rate structure). */
.pc-fallback{display:none;}
.pc-fallback .fb-line{font-family:var(--serif); font-size:21px; color:var(--ink); margin:4px 0 16px; line-height:1.4;}
.bb-fallback{display:none; color:var(--ivory); white-space:nowrap; line-height:1.2; min-width:0;}
.bb-fallback .l{display:block; font-size:9.5px; letter-spacing:1.6px; text-transform:uppercase; color:var(--sand); font-weight:500; margin-bottom:2px;}
.bb-fallback b{font-size:13.5px; font-weight:600; color:var(--white); letter-spacing:.2px;}
body[data-rates-state="fallback"] .price-card .pc-rate{display:none;}
body[data-rates-state="fallback"] .price-card .pc-fallback{display:block;}
body[data-rates-state="fallback"] #rooms .pr{display:none;}
body[data-rates-state="fallback"] .xcard .pr > span{display:none;}
body[data-rates-state="fallback"] .bb-price{display:none;}
body[data-rates-state="fallback"] .bb-fallback{display:block;}
/* Page-level sections only. A `section` nested inside a wrapper is a layout row, not a page
   band, and must not inherit the 90px band padding — that mismatch produced the 250px gaps. */
body > section, body > main > section{padding:90px 0;}
.section-head{max-width:660px; margin-bottom:46px;}
.section-head h2{font-size:34px; margin-top:12px;}
.section-head p{font-weight:300; font-size:15px; margin-top:14px; line-height:1.75;}
/* overview */
.ov-grid{display:grid; grid-template-columns:1.2fr .8fr; gap:52px; align-items:start;}
.ov-grid p{font-weight:300; font-size:15px; line-height:1.8; margin-top:16px;}
.qf{background:var(--white); border:1px solid var(--bone); border-radius:6px; padding:28px 30px;}
.qf h3{font-size:18px; margin-bottom:16px; display:flex; align-items:center; justify-content:space-between; gap:8px 14px; flex-wrap:wrap;}
.qf-row{display:flex; justify-content:space-between; padding:12px 0; border-bottom:1px solid var(--ivory-dim); font-size:13.5px;}
.qf-row:last-child{border-bottom:none;}
.qf-row .k{color:var(--soft-charcoal);}
.qf-row .v{color:var(--ink); font-weight:500; text-align:right;}
/* guests love — five short signals guests report most, sits between the overview and the gallery */
.gl{background:var(--white); border-top:1px solid var(--ivory-dim); border-bottom:1px solid var(--ivory-dim);}
.gl .wrap{display:grid; grid-template-columns:auto repeat(5,1fr); gap:0 28px; align-items:center; padding-top:22px; padding-bottom:22px;}
.gl .eyebrow{white-space:nowrap; padding-right:24px; border-right:1px solid var(--ivory-dim);}
.gl-item{display:flex; align-items:center; gap:12px; font-size:12px; color:var(--soft-charcoal); line-height:1.45; white-space:nowrap;}
.gl-item svg{width:20px; height:20px; fill:none; stroke:var(--brass); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; flex:none;}
.gl-item b{display:block; color:var(--ink); font-weight:600; font-size:12.5px;}
@media(max-width:1120px){ .gl .wrap{grid-template-columns:repeat(3,1fr); gap:16px 24px;} .gl .eyebrow{grid-column:1 / -1; border-right:none; padding-right:0;} }
@media(max-width:640px){ .gl .wrap{grid-template-columns:1fr; gap:14px;} }
/* gallery */
.gallery{background:var(--ivory-dim);}
.g-grid{display:grid; grid-template-columns:2fr 1fr 1fr; grid-template-rows:250px 250px; gap:14px;}
.g-item{border-radius:6px; overflow:hidden;}
.g-item img{width:100%; height:100%; object-fit:cover; transition:transform .5s ease;}
.g-item:hover img{transform:scale(1.05);}
.g-item.tall{grid-row:span 2;}
/* rooms */
.rooms-grid{display:grid; grid-template-columns:1fr 1fr; gap:26px;}
.room{background:var(--white); border:1px solid var(--ivory-dim); border-radius:6px; overflow:hidden; display:flex; flex-direction:column;}
.room .img{height:250px; overflow:hidden;}
.room .img img{width:100%; height:100%; object-fit:cover;}
.room .body{padding:26px 28px; flex:1; display:flex; flex-direction:column;}
.room h3{font-size:20px;}
.room .spec{font-size:11.5px; letter-spacing:1px; text-transform:uppercase; color:var(--brass); font-weight:500; margin:6px 0 14px;}
.feat{display:grid; grid-template-columns:1fr 1fr; gap:8px 22px; margin-bottom:20px; flex:1;}
.feat span{font-size:12.5px; color:var(--soft-charcoal); position:relative; padding-left:16px;}
.feat span::before{content:''; position:absolute; left:0; top:5px; width:11px; height:11px; background:var(--brass); -webkit-mask:var(--check-mask) center/contain no-repeat; mask:var(--check-mask) center/contain no-repeat;}
.room .row{display:flex; justify-content:space-between; align-items:center; border-top:1px solid var(--ivory-dim); padding-top:18px;}
.room .pr{font-family:var(--sans); font-size:15px; font-weight:600; color:var(--ink);}
.room .pr span{font-family:var(--sans); font-size:11px; color:var(--soft-charcoal); font-weight:400;}
.room .desc{font-size:13.5px; font-weight:300; line-height:1.7; color:var(--soft-charcoal); margin-bottom:16px;}
.room .incl{font-size:11px; letter-spacing:1.2px; text-transform:uppercase; color:var(--badge-green); font-weight:600; margin-bottom:12px; display:flex; align-items:center; gap:8px;}
.room .incl::before{content:''; width:6px; height:6px; border-radius:50%; background:var(--badge-green); flex:none;}
.room .bath{font-size:12px; color:var(--soft-charcoal); margin:-6px 0 18px; opacity:.85;}
.room .bath b{color:var(--ink); font-weight:600;}
/* specials — the offer card; Badge Green top rule = savings signal, brass = the single action */
.offer{background:var(--white); border:1px solid var(--ivory-dim); border-top:3px solid var(--badge-green); border-radius:6px; padding:34px 36px 32px; display:grid; grid-template-columns:1.1fr 1fr; gap:32px 52px; align-items:start;}
.offer h3{font-size:27px; margin:14px 0 8px;}
.offer .valid{font-size:11px; letter-spacing:1.6px; text-transform:uppercase; color:var(--brass); font-weight:600;}
.offer p{font-weight:300; font-size:14.5px; line-height:1.75; margin-top:14px; max-width:520px;}
.off-cta{margin-top:24px; display:flex; align-items:center; gap:18px; flex-wrap:wrap;}
.off-note{font-size:11px; letter-spacing:.6px; color:var(--soft-charcoal); opacity:.85;}
.off-lists{display:grid; grid-template-columns:1fr 1fr; gap:24px 28px; padding-top:6px;}
.off-list h4{font-family:var(--sans); font-size:10.5px; letter-spacing:1.6px; text-transform:uppercase; color:var(--ink); font-weight:600; margin-bottom:12px;}
.off-list ul{list-style:none;}
.off-list li{position:relative; padding-left:20px; font-size:13px; color:var(--soft-charcoal); line-height:1.6; margin-bottom:8px;}
.off-list li::before{content:''; position:absolute; left:0; top:7px; width:11px; height:11px; background:var(--brass); -webkit-mask:var(--check-mask) center/contain no-repeat; mask:var(--check-mask) center/contain no-repeat;}
.off-list.cond li::before{width:7px; height:1px; top:11px; background:var(--bone); -webkit-mask:none; mask:none;}
.off-foot{margin-top:22px; font-size:12px; color:var(--soft-charcoal);}
.off-foot a{color:var(--brass); text-decoration:underline; text-underline-offset:3px; text-decoration-color:rgba(168,121,75,.4);}
/* experiences & facilities */
.list-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:12px 36px; max-width:920px;}
.list-grid span{font-size:13.5px; color:var(--soft-charcoal); position:relative; padding-left:20px; padding-top:2px; padding-bottom:2px;}
.list-grid span::before{content:''; position:absolute; left:0; top:8px; width:12px; height:12px; background:var(--brass); -webkit-mask:var(--check-mask) center/contain no-repeat; mask:var(--check-mask) center/contain no-repeat;}
#facilities .list-grid span{padding-left:0; display:flex; align-items:center; gap:11px;}
#facilities .list-grid span::before{content:none;}
#facilities .list-grid svg{width:19px; height:19px; stroke:var(--brass); stroke-width:1.75; fill:none; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0;}
/* facilities: dietary note + full categorised list (disclosure keeps the section restrained) */
.fac-note{margin-top:28px; font-size:13px; color:var(--soft-charcoal); max-width:920px;}
.fac-note b{color:var(--ink); font-weight:600;}
.fac-all{margin-top:22px; max-width:920px; border-top:1px solid var(--bone); border-bottom:1px solid var(--bone);}
.fac-all summary{list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; padding:16px 0; font-size:11.5px; letter-spacing:1.6px; text-transform:uppercase; color:var(--brass); font-weight:600;}
.fac-all summary::-webkit-details-marker{display:none;}
.fac-all summary::after{content:''; width:12px; height:12px; flex:none; background:var(--brass); -webkit-mask:var(--chev-mask) center/contain no-repeat; mask:var(--chev-mask) center/contain no-repeat; transition:transform .25s ease;}
.fac-all[open] summary::after{transform:rotate(180deg);}
.fac-cats{display:grid; grid-template-columns:repeat(3,1fr); gap:20px 36px; padding:6px 0 30px;}
.fac-cat h4{font-family:var(--sans); font-size:10.5px; letter-spacing:1.5px; text-transform:uppercase; color:var(--ink); font-weight:600; margin-bottom:5px;}
.fac-cat p{font-size:13px; color:var(--soft-charcoal); line-height:1.65;}
.fac-cat i{font-style:normal; color:var(--bone);}
/* what's nearby */
.near-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.near-grid .qf-row .v{white-space:nowrap; margin-left:14px;}
.near-note{margin-top:18px; font-size:12px; color:var(--soft-charcoal); opacity:.85;}
.qf .sub{font-size:12px; color:var(--soft-charcoal); opacity:.85; margin-top:12px; line-height:1.6;}
/* good to know footnotes */
.gtk-foot{margin-top:22px; max-width:920px; font-size:12px; color:var(--soft-charcoal); line-height:1.7;}
.gtk-foot p + p{margin-top:6px;}
/* faq */
.faq-grid{display:grid; grid-template-columns:1fr 1fr; gap:0 56px; align-items:start;}
.faq-grid details{border-bottom:1px solid var(--bone); padding:4px 0;}
.faq-grid details:last-child{border-bottom:none;}
.faq-grid summary{list-style:none; cursor:pointer; font-weight:600; color:var(--ink); font-size:14.5px; padding:14px 34px 14px 0; position:relative;}
.faq-grid summary::-webkit-details-marker{display:none;}
.faq-grid summary::after{content:''; position:absolute; right:4px; top:50%; width:12px; height:12px; margin-top:-6px; background:var(--brass); -webkit-mask:var(--chev-mask) center/contain no-repeat; mask:var(--chev-mask) center/contain no-repeat; transition:transform .25s ease;}
.faq-grid details[open] summary::after{transform:rotate(180deg);}
.faq-grid p{font-size:13.5px; color:var(--soft-charcoal); line-height:1.7; padding:0 0 16px;}
.faq-grid p b{color:var(--ink); font-weight:600;}
/* seasons + month grid */
.seasons{background:linear-gradient(135deg,#211D19,#171411); color:var(--ivory);}
.seasons .section-head h2{color:var(--white);}
.seasons .section-head p{color:var(--bone);}
.scard-grid{display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-bottom:40px;}
.scard{background:var(--charcoal); border:1px solid rgba(255,255,255,.11); border-radius:6px; padding:26px 28px;}
.scard h3{color:var(--brass); font-size:19px; margin-bottom:4px;}
.scard .when{font-size:11px; letter-spacing:1.6px; text-transform:uppercase; color:var(--sand); font-weight:500; margin-bottom:12px;}
.scard p{font-size:13.5px; color:var(--bone); line-height:1.7;}
.months{display:grid; grid-template-columns:repeat(12,1fr); gap:8px;}
.month{border-radius:4px; padding:14px 6px 12px; text-align:center;}
.month .m{font-weight:600; font-size:13.5px; letter-spacing:.5px;}
.month .s{font-size:9.5px; letter-spacing:.5px; text-transform:uppercase; margin-top:5px; opacity:.95; line-height:1.4;}
.m-peak{background:var(--brass); color:var(--white);}
.m-good{background:var(--sand); color:var(--ink);}
.m-fair{background:var(--bone); color:var(--ink);}
.legend{display:flex; gap:22px; margin-top:20px; font-size:11px; color:var(--bone); align-items:center;}
.legend i{display:inline-block; width:12px; height:12px; border-radius:3px; margin-right:7px; vertical-align:-1px;}
/* ================= reviews — approved pattern (18 Aug 2026), Block A: lodge review section ================= */
/* production replaces this block with the licensed TripAdvisor widget; static rendering is a design reference only */
.reviews{padding:78px 0 92px; background:var(--ivory);}
.rv-summary{text-align:center; max-width:640px; margin:0 auto 54px;}
.rv-divider{display:flex; align-items:center; justify-content:center; gap:16px; margin-bottom:26px;}
.rv-divider .rule{width:46px; height:1px; background:var(--brass); opacity:.55;}
.rv-emblem{width:34px; height:34px; flex:none;}
.rv-source-eyebrow{font-size:11px; letter-spacing:3px; text-transform:uppercase; color:var(--brass); font-weight:600; margin-bottom:18px;}
.rv-score-row{display:flex; align-items:center; justify-content:center; gap:18px; flex-wrap:wrap;}
.rv-score{font-family:var(--sans); font-weight:700; font-size:52px; color:var(--ink); line-height:1; letter-spacing:-1px;}
.rv-score .of{font-weight:400; font-size:20px; color:var(--bone); letter-spacing:0;}
.rv-stars-lg{--star:26px;}
.rv-count{margin-top:16px; font-size:12.5px; letter-spacing:1.4px; text-transform:uppercase; color:var(--soft-charcoal);}
.rv-count b{color:var(--ink); font-weight:600;}
.reviews-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
.rvcard{background:var(--white); border:1px solid var(--ivory-dim); border-radius:7px; padding:28px 28px 24px; display:flex; flex-direction:column; transition:box-shadow .25s ease, transform .25s ease;}
.rvcard:hover{box-shadow:0 22px 46px rgba(23,20,17,.10); transform:translateY(-3px);}
.rv-head{display:flex; align-items:center; gap:13px; margin-bottom:18px;}
.rv-avatar{width:44px; height:44px; border-radius:50%; flex:none; background:var(--ink); color:var(--ivory); font-family:var(--serif); font-size:17px; display:flex; align-items:center; justify-content:center; box-shadow:0 0 0 1.5px var(--brass), 0 0 0 4px var(--white), 0 0 0 5px var(--ivory-dim);}
.rv-who{min-width:0;}
.rv-name{font-size:13px; font-weight:600; color:var(--ink); letter-spacing:.1px;}
.rv-date{font-size:11px; color:var(--bone); margin-top:2px; letter-spacing:.3px;}
.rvcard .stars{--star:14px; margin-bottom:14px;}
.rv-meta-row{display:flex; align-items:center; margin-bottom:14px;}
.rv-meta-row .stars{margin-bottom:0;}
.score-chip{display:inline-flex; align-items:center; margin-left:10px; font-size:10px; font-weight:600; letter-spacing:.5px; color:var(--white); background:var(--brass-600); padding:3px 8px; border-radius:11px; line-height:1.4;}
.rv-title{font-family:var(--serif); font-weight:500; font-size:15.5px; color:var(--ink); margin-bottom:9px; line-height:1.3;}
.rv-body{font-size:13.5px; color:var(--soft-charcoal); line-height:1.72; flex:1;}
.rv-src{margin-top:20px; padding-top:15px; border-top:1px solid var(--ivory-dim); display:flex; align-items:center; gap:8px; font-size:10px; letter-spacing:1.6px; text-transform:uppercase; color:var(--bone); font-weight:500;}
.rv-src .dot{width:6px; height:6px; border-radius:50%; background:var(--brass); flex:none;}
.rv-src b{color:var(--soft-charcoal); font-weight:600;}
.rv-more{text-align:center; margin-top:44px;}
.rv-more .note{margin-top:16px; font-size:12px; color:var(--soft-charcoal); letter-spacing:.3px;}
.rv-more .note a{color:var(--brass); text-decoration:underline; text-underline-offset:3px; text-decoration-color:rgba(168,121,75,.4);}
.rv-more .note b{color:var(--ink); font-weight:600;}
/* why book with ASG — six reasons in the checklist idiom + accreditation row */
.why{background:var(--ivory-dim);}
.why-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:30px 40px; margin-top:8px;}
.why-grid .check{align-items:flex-start;}
.why-grid h4{font-family:var(--sans); font-size:14px; font-weight:600; color:var(--ink); margin-bottom:5px; line-height:1.4;}
.why-grid p{font-size:13px; line-height:1.65; color:var(--soft-charcoal); font-weight:300;}
.acc-row{display:flex; flex-wrap:wrap; gap:10px; margin-top:44px; padding-top:30px; border-top:1px solid var(--bone);}
.acc-row .lbl{width:100%; font-size:10.5px; letter-spacing:1.6px; text-transform:uppercase; color:var(--brass); font-weight:600; margin-bottom:2px;}
.acc-row .pill{border:1px solid var(--bone); color:var(--soft-charcoal); font-size:11px; padding:8px 14px; border-radius:16px; background:var(--white);}
/* enquiry — four steps, contact last, one brass action per step */
.enq .section-head{margin-bottom:34px;}
.eq-card{background:var(--white); border:1px solid var(--ivory-dim); border-radius:7px; max-width:860px; margin:0 auto; overflow:hidden;}
.eq-head{padding:22px 34px 0; display:flex; align-items:baseline; justify-content:space-between; gap:20px;}
.eq-prog{font-size:11px; letter-spacing:1.6px; text-transform:uppercase; color:var(--brass); font-weight:600;}
.eq-prog b{color:var(--ink); font-weight:700; letter-spacing:.5px;}
.eq-title-cur{font-size:11px; letter-spacing:1.4px; text-transform:uppercase; color:var(--soft-charcoal);}
.eq-bar{display:grid; grid-template-columns:repeat(4,1fr); gap:6px; padding:14px 34px 0;}
.eq-bar span{height:2px; background:var(--ivory-dim); border-radius:1px; transition:background .25s ease;}
.eq-bar span.on{background:var(--brass);}
.eq-panel{display:none; padding:30px 34px 6px;}
.eq-panel.on{display:block;}
.eq-panel h3{font-size:24px; margin-bottom:8px;}
.eq-panel .lead{font-size:14px; font-weight:300; line-height:1.7; color:var(--soft-charcoal); max-width:600px;}
.eq-q{font-size:10.5px; letter-spacing:1.6px; text-transform:uppercase; color:var(--brass); font-weight:600; margin:24px 0 12px;}
.chips{display:flex; flex-wrap:wrap; gap:8px;}
.chip{font-family:var(--sans); font-size:12.5px; color:var(--ink); background:transparent; border:1px solid var(--bone); border-radius:22px; padding:9px 16px; cursor:pointer; transition:all .18s ease; line-height:1.2;}
.chip:hover{border-color:var(--brass); color:var(--brass);}
.chip.on{background:var(--brass); border-color:var(--brass); color:var(--white);}
.chip:focus-visible{outline:2px solid var(--brass); outline-offset:2px;}
.ctrs{display:grid; grid-template-columns:repeat(4,1fr); gap:14px;}
.ctr{border:1px solid var(--ivory-dim); border-radius:6px; padding:14px 16px; display:flex; align-items:center; justify-content:space-between; gap:12px;}
.ctr .lab{font-size:13px; color:var(--ink); font-weight:500;}
.ctr .lab small{display:block; font-size:11px; color:var(--bone); font-weight:400; margin-top:1px;}
.ctr .ctl{display:flex; align-items:center; gap:10px;}
.ctr button{width:30px; height:30px; border-radius:50%; border:1px solid var(--bone); background:transparent; cursor:pointer; display:flex; align-items:center; justify-content:center; color:var(--ink); transition:all .18s ease;}
.ctr button:hover{border-color:var(--brass); color:var(--brass);}
.ctr button svg{width:12px; height:12px; fill:none; stroke:currentColor; stroke-width:1.8;}
.ctr .val{min-width:16px; text-align:center; font-weight:600; font-size:14px; color:var(--ink);}
.eq-cur{display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:6px;}
.eq-cur select{appearance:none; -webkit-appearance:none; font-family:var(--sans); font-size:12.5px; color:var(--ink); border:1px solid var(--bone); border-radius:3px; padding:9px 30px 9px 12px; background:var(--white) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'><path d='M2.5 4.5l3.5 3.5 3.5-3.5' fill='none' stroke='%23171411' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat right 10px center/9px 9px; cursor:pointer;}
.fields{display:grid; grid-template-columns:1fr 1fr; gap:16px 20px;}
.field{display:flex; flex-direction:column; gap:6px;}
.field.full{grid-column:1 / -1;}
.field label{font-size:10.5px; letter-spacing:1.4px; text-transform:uppercase; color:var(--soft-charcoal); font-weight:600;}
.field input,.field textarea{width:100%; border:1px solid var(--bone); border-radius:3px; padding:12px 14px; font-family:var(--sans); font-size:13.5px; color:var(--ink); background:var(--white); transition:border-color .18s ease;}
.field input:focus,.field textarea:focus{outline:none; border-color:var(--brass);}
.field textarea{min-height:96px; resize:vertical;}
.consent{display:flex; align-items:flex-start; gap:10px; font-size:12.5px; color:var(--soft-charcoal); margin-top:18px; line-height:1.55;}
.consent input{accent-color:var(--brass); width:16px; height:16px; margin-top:2px; flex:none;}
.consent a{color:var(--brass); text-decoration:underline; text-underline-offset:3px; text-decoration-color:rgba(168,121,75,.4);}
.eq-foot{display:flex; align-items:center; justify-content:space-between; gap:16px; padding:22px 34px 26px; border-top:1px solid var(--ivory-dim); margin-top:24px; flex-wrap:wrap;}
.eq-back{font-family:var(--sans); font-size:12px; letter-spacing:1.2px; text-transform:uppercase; font-weight:600; color:var(--soft-charcoal); background:transparent; border:none; cursor:pointer; padding:10px 0;}
.eq-back:hover{color:var(--brass);}
.eq-actions{display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin-left:auto;}
.eq-expect{font-size:11.5px; color:var(--soft-charcoal); opacity:.85;}
.eq-done{display:none; padding:44px 34px 40px; text-align:center;}
.eq-done.on{display:block;}
.eq-done .rv-divider{margin-bottom:22px;}
.eq-done h3{font-size:26px; margin-bottom:10px;}
.eq-done p{font-size:14px; font-weight:300; color:var(--soft-charcoal); max-width:520px; margin:0 auto; line-height:1.75;}
.eq-assure{margin-top:14px; font-size:9.5px; letter-spacing:1.1px; text-transform:uppercase; color:var(--soft-charcoal); text-align:center; padding:0 34px 26px;}
.eq-assure span + span::before{content:''; display:inline-block; width:3px; height:3px; border-radius:50%; background:var(--brass); margin:0 8px; vertical-align:2px;}
.more-foot{margin-top:34px;}
/* book banner */
.banner{background:var(--charcoal); border-bottom:1px solid rgba(255,255,255,.07); text-align:center; padding:90px 0;}
.banner h2{color:var(--white); font-size:32px; margin-bottom:12px;}
.banner .sub{color:var(--bone); font-size:15px; margin-bottom:34px;}
.banner .sub b{color:var(--brass); font-family:var(--sans); font-size:16px; font-weight:600; letter-spacing:.3px;}
.banner .assure a{color:var(--sand); text-decoration:underline; text-underline-offset:3px; text-decoration-color:rgba(195,159,119,.45);}
.banner .assure a:hover{color:var(--brass);}
.banner .btns{display:flex; gap:16px; justify-content:center; margin-bottom:22px;}
.banner .assure{color:rgba(185,175,162,.62); font-size:11.5px; letter-spacing:.6px;}
.banner .assure span{margin:0 12px;}
/* other lodges */
.xs-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.xcard{background:var(--white); border:1px solid var(--ivory-dim); border-radius:6px; overflow:hidden; transition:box-shadow .25s, transform .25s;}
.xcard:hover{box-shadow:0 20px 44px rgba(23,20,17,.13); transform:translateY(-3px);}
.xcard .img{height:170px; overflow:hidden;}
.xcard .img img{width:100%; height:100%; object-fit:cover;}
.xcard .body{padding:20px 22px;}
.xcard h4{font-size:16.5px; margin-bottom:6px;}
.xcard p{font-size:12.5px; line-height:1.6; margin-bottom:12px;}
.xcard .pr{font-size:12.5px; color:var(--brass); font-weight:600; display:inline-flex; align-items:center; gap:6px;}
.xcard .pr svg{width:12px; height:12px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}
/* footer */
body > footer{background:var(--ink); color:var(--bone); padding:72px 0 30px;}
.foot-grid{display:grid; grid-template-columns:1.5fr 1fr 1fr 1.15fr; gap:44px; padding-bottom:46px; border-bottom:1px solid rgba(255,255,255,.08);}
.foot-endorse{font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--sand); font-weight:500; margin:-4px 0 16px;}
.foot-logo img{height:52px; margin-bottom:18px;}
.foot-grid p{font-size:13px; line-height:1.7; max-width:300px;}
.foot-contact{margin-top:16px; font-size:13px;}
.foot-contact a{display:block; color:var(--sand); margin-bottom:6px;}
.foot-col h5{font-size:11px; letter-spacing:1.6px; text-transform:uppercase; color:var(--brass); margin-bottom:16px; font-weight:600;}
.foot-col a{display:block; font-size:13px; margin-bottom:10px; opacity:.9;}
.foot-col a:hover{color:var(--brass); opacity:1;}
.foot-col .cc{color:var(--sand); font-size:9px; letter-spacing:1.5px; margin-right:8px; font-weight:500; text-transform:uppercase;}
.foot-social{display:flex; flex-wrap:wrap; gap:6px 14px; margin-top:16px;}
.foot-social a{display:inline; font-size:12px; margin:0; opacity:.8;}
.foot-legal{display:flex; flex-wrap:wrap; gap:6px 18px;}
.foot-legal a:hover{color:var(--brass);}
.accred{display:flex; flex-wrap:wrap; gap:10px; margin-top:32px;}
.acc-pill{border:1px solid rgba(255,255,255,.18); font-size:11px; padding:7px 14px; border-radius:16px;}
.rev-pill{border:1px solid rgba(168,121,75,.5); color:var(--sand); font-size:11px; padding:7px 14px; border-radius:16px;}
.foot-bottom{display:flex; justify-content:space-between; padding-top:26px; font-size:12px; color:rgba(185,175,162,.62); flex-wrap:wrap; gap:10px;}
@media(max-width:1000px){
  .ov-grid,.rooms-grid,.scard-grid,.offer{grid-template-columns:1fr;}
  .why-grid{grid-template-columns:1fr 1fr;}
  .ctrs{grid-template-columns:1fr;}
  .fac-cats{grid-template-columns:1fr 1fr;}
  .near-grid{grid-template-columns:1fr;}
  .props .wrap{grid-template-columns:1fr 1fr;}
  .prop{border-right:none; border-bottom:1px solid rgba(255,255,255,.08);}
  .g-grid{grid-template-columns:1fr 1fr; grid-template-rows:220px 220px 220px;}
  .g-item.tall{grid-row:span 1;}
  .reviews-grid,.xs-grid,.list-grid{grid-template-columns:1fr 1fr;}
  .months{grid-template-columns:repeat(6,1fr);}
  .hero h1{font-size:38px;}
  .foot-grid{grid-template-columns:1fr 1fr;}
  .tb-right a:not(:first-child):not(.tb-link){display:none;}
  .bb-field{display:none;}
  .nav-links{gap:18px;}
  .nav-links a{font-size:11.5px; letter-spacing:.8px;}
}
@media(max-width:640px){
  .nav-links{display:none;}
  nav > .wrap > .btn{display:none;}
  .nav-tools{display:flex;}
  .props .wrap{grid-template-columns:1fr;}
  .prop{padding:18px 0;}
  .prop:last-child{border-bottom:none;}
  .prop .d{font-size:12px;}
  .trust .wrap{flex-wrap:nowrap; overflow-x:auto; justify-content:flex-start; scrollbar-width:none; -webkit-mask-image:linear-gradient(90deg,#000 88%,transparent); mask-image:linear-gradient(90deg,#000 88%,transparent);}
  .trust .wrap::-webkit-scrollbar{display:none;}
  .trust .lg{display:inline-flex;}
  .trust .rv{flex-basis:auto; margin-top:0;}
  .trust .rv::before{display:inline-block;}
  .trust .t:last-child{padding-right:40px;}
  .trust .t + .t::before{margin:0 12px;}
  .pc-contact{gap:16px;}
  .g-grid{grid-template-rows:200px 200px 170px;}
  .g-item:last-child{grid-column:span 2;}
  .banner .btns{flex-wrap:wrap;}
  .banner .btns .btn{width:100%;}
  .rv-score{font-size:44px;}
  .hero-content{padding:96px 0 40px;}
  .hero-flex{gap:28px;}
  .hero .meta{gap:10px 12px;}
  .hero .meta .pills{flex-basis:100%;}
  .lg-only{display:none;}
  .crumb{font-size:10px; letter-spacing:1.1px;}
  .crumb a:first-child, .crumb a:first-child + .sep{display:none;}
  .price-card{min-width:0; width:100%;}
  .reviews-grid,.xs-grid,.list-grid,.checks,.months,.foot-grid{grid-template-columns:1fr;}
  .gtk-grid{grid-template-columns:1fr !important;}
  .off-lists{grid-template-columns:1fr;}
  .offer{padding:26px 22px 24px;}
  .off-cta .btn{width:100%;}
  .faq-grid{grid-template-columns:1fr;}
  .fac-cats{grid-template-columns:1fr;}
  .why-grid{grid-template-columns:1fr;}
  .fields{grid-template-columns:1fr;}
  .eq-head,.eq-bar,.eq-panel,.eq-foot,.eq-done,.eq-assure{padding-left:20px; padding-right:20px;}
  .eq-actions{width:100%;}
  .eq-actions .btn{width:100%;}
  .eq-expect{width:100%; text-align:center;}
  .months{grid-template-columns:repeat(3,1fr);}
  .hero h1{font-size:32px;}
  .tb-right .tb-link{display:none;}
  .bookbar .wrap{height:62px; gap:12px; padding:0 18px;}
  .bookbar .btn-outline-dark{display:none;}
  .bb-fallback .l{display:none;}
  .bb-fallback b{font-size:11.5px; white-space:normal; line-height:1.3; display:block; max-width:46vw;}
  .bb-form{margin-left:auto;}
  .bookbar .btn{padding:11px 14px; font-size:10.5px; letter-spacing:1px;}
  .bb-price .l{display:none;}
  .bb-price .code{display:none;}
  .bb-price b{font-size:15px;}
  body.bookbar-on{padding-bottom:66px;}
}
@media(max-width:380px){
  .hero .eyebrow{font-size:9.5px; letter-spacing:1.4px;}
  .hero .meta{font-size:12.5px;}
  .hero h1{font-size:30px;}
}
/* --- Special: Badge Green savings signal --- */
.save-chip{display:inline-flex; align-items:center; gap:6px; background:var(--badge-green,#4F6B51); color:#FFFFFF; font-family:var(--sans); font-size:10px; font-weight:600; letter-spacing:1.2px; text-transform:uppercase; padding:6px 12px; border-radius:3px;}
.price-card .save-chip{margin-bottom:10px;}
.prop.special{border-top:3px solid #4F6B51; background:rgba(79,107,81,.10);}
.prop.special .k{color:var(--badge-green-300);}
.qf h3 .save-chip{float:none; margin:0; flex:none;}
.qf.special{border:1px solid rgba(79,107,81,.38); border-top:3px solid #4F6B51; background:linear-gradient(rgba(79,107,81,.055), rgba(79,107,81,.055)), var(--white);}
.qf.special h3{color:var(--badge-green-700);}
.qf.special .qf-row{border-bottom-color:rgba(79,107,81,.14);}
/* --- Lightbox --- */
.lb{position:fixed; inset:0; z-index:1000; background:rgba(14,12,10,.94); display:none; align-items:center; justify-content:center;}
.lb.open{display:flex;}
.lb img{max-width:88vw; max-height:82vh; border-radius:4px; box-shadow:0 32px 80px rgba(0,0,0,.6);}
.lb .lb-btn{position:absolute; top:50%; transform:translateY(-50%); width:46px; height:46px; border-radius:50%; background:var(--brass); color:#FFFFFF; border:none; font-size:20px; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .24s;}
.lb .lb-btn:hover{background:var(--brass-600);}
.lb .lb-btn svg{width:20px; height:20px; fill:none; stroke:#FFFFFF; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}
.lb .lb-x svg{width:22px; height:22px; fill:none; stroke:var(--ivory); stroke-width:1.8; stroke-linecap:round;}
.lb .lb-prev{left:26px;}
.lb .lb-next{right:26px;}
.lb .lb-x{position:absolute; top:22px; right:26px; background:transparent; border:none; color:var(--ivory); cursor:pointer; line-height:0; padding:6px;}
.lb .lb-count{position:absolute; bottom:24px; left:50%; transform:translateX(-50%); color:var(--ivory); font-family:var(--sans); font-size:11px; letter-spacing:1.5px;}
.g-item{cursor:pointer; position:relative;}
.g-more{position:absolute; inset:0; background:rgba(14,12,10,.55); display:flex; align-items:center; justify-content:center; color:#FFFFFF; font-family:var(--sans); font-size:12px; font-weight:600; letter-spacing:1.2px; text-transform:uppercase; border-radius:inherit;}
.g-more svg{width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:1.5; margin-right:9px; flex:none;}
.room .img.room-lb-trigger{cursor:pointer; position:relative;}
.room-more{inset:auto 12px 12px auto; background:rgba(14,12,10,.72); padding:8px 14px; border-radius:3px; font-size:10.5px; transition:background .24s;}
.room .img.room-lb-trigger:hover .room-more{background:rgba(14,12,10,.88);}
<!-- asg-mega-nav v1 -->

/* === MEGA NAVIGATION =====================================================
   One component, two configurations (brand and reserve). The panel is an
   extension of the Ink header rather than a light card dropped over it —
   the header is already the darkest surface on the site, and a bright panel
   would read as a different site opening on top of this one.
   Each panel spends its right-hand third on a FEATURED CARD instead of a
   fifth column of links: the menu is the most-seen component on the estate,
   so the space is worth more saying one thing than listing six more.
   ---------------------------------------------------------------------- */
.nav-links{position:static;}
.nav-item{position:static;}
.nav-top{display:flex; align-items:center; gap:6px; background:none; border:none; cursor:pointer;
  font-family:var(--sans); font-size:12.5px; letter-spacing:1px; color:var(--ivory-dim);
  text-transform:uppercase; padding:4px 0; position:relative; white-space:nowrap;}
.nav-top::after{content:''; position:absolute; left:0; bottom:-2px; width:0; height:1px;
  background:var(--brass); transition:width .25s ease;}
.nav-top:hover::after,.nav-top[aria-expanded="true"]::after{width:100%;}
.nav-top:hover,.nav-top[aria-expanded="true"]{color:var(--white);}
.nav-top:focus-visible{outline:1px solid var(--brass); outline-offset:4px;}
.nav-chev{flex:none; transition:transform .22s ease;}
.nav-top[aria-expanded="true"] .nav-chev{transform:rotate(180deg);}
.nav-plain{font-family:var(--sans); font-size:12.5px; letter-spacing:1px; color:var(--ivory-dim);
  text-transform:uppercase; position:relative; padding:4px 0;}
.nav-plain::after{content:''; position:absolute; left:0; bottom:-2px; width:0; height:1px;
  background:var(--brass); transition:width .25s ease;}
.nav-plain:hover::after{width:100%;}
.mega{position:absolute; left:0; right:0; top:100%; background:var(--ink);
  border-top:1px solid rgba(168,121,75,.45); border-bottom:1px solid rgba(255,255,255,.08);
  box-shadow:0 26px 50px rgba(0,0,0,.42);}
.mega[hidden]{display:none;}
.mega .mega-in{display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:44px;
  align-items:start; height:auto; padding-top:34px; padding-bottom:32px;}
/* The panel's inner containers reuse .wrap for gutters, and the shared contract styles
   `nav .wrap` (0,1,1) as a 78px-high centred flex row. Anything nested inside <nav> inherits
   that, so every .wrap in here has to be re-specified at equal-or-higher specificity. This is
   the same defect class as the earlier nav{}
, .why{}
and section{}
collisions. */
.mega .mega-foot .wrap{display:flex; align-items:center; justify-content:space-between;
  gap:20px; flex-wrap:wrap; height:auto; padding-top:14px; padding-bottom:14px;}
.mega-cols{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:30px 34px;
  min-width:0;}
.mega-col{min-width:0;}
.mega-k{font-family:var(--sans); font-size:9.5px; letter-spacing:1.5px; text-transform:uppercase;
  color:var(--sand); font-weight:600; padding-bottom:9px; margin-bottom:9px;
  border-bottom:1px solid rgba(255,255,255,.12);}
.mega-col a{display:block; font-family:var(--sans); font-weight:300; font-size:13px; line-height:1.5;
  color:var(--ivory-dim); padding:5px 0; transition:color .16s ease, transform .16s ease;}
.mega-col a:hover{color:var(--brass); transform:translateX(2px);}
.mega-col a:focus-visible{outline:1px solid var(--brass); outline-offset:3px;}
.mega-feature{display:block; background:rgba(255,255,255,.045); border:1px solid rgba(255,255,255,.1);
  border-radius:10px; overflow:hidden; text-decoration:none; min-width:0;}
.mega-feature:hover{border-color:rgba(168,121,75,.55);}
.mega-feature:focus-visible{outline:2px solid var(--brass); outline-offset:2px;}
.mf-img{display:block; aspect-ratio:16/9; background:var(--charcoal); overflow:hidden;}
.mf-img img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease;}
.mega-feature:hover .mf-img img{transform:scale(1.04);}
.mf-k{display:block; font-family:var(--sans); font-size:9px; letter-spacing:1.5px;
  text-transform:uppercase; color:var(--sand); font-weight:600; padding:15px 17px 0;}
.mf-t{display:block; font-family:var(--serif); font-size:17px; line-height:1.3; color:var(--white);
  padding:7px 17px 0;}
.mf-l{display:block; font-family:var(--sans); font-weight:300; font-size:12px; line-height:1.6;
  color:rgba(246,241,234,.72); padding:8px 17px 0;}
.mf-g{display:inline-block; margin:12px 17px 16px; font-family:var(--sans); font-size:10px;
  letter-spacing:1.3px; text-transform:uppercase; font-weight:600; color:var(--sand);
  border-bottom:1px solid rgba(195,159,119,.45); padding-bottom:3px;}
.mega-feature:hover .mf-g{color:var(--white); border-bottom-color:var(--white);}
.mega-foot{background:rgba(0,0,0,.28); border-top:1px solid rgba(255,255,255,.07);}
.mega-all{font-family:var(--sans); font-size:10.5px; letter-spacing:1.4px; text-transform:uppercase;
  font-weight:600; color:var(--brass);}
.mega-all::after{content:' \2192';}
.mega-all:hover{color:var(--sand);}
.mega-help{font-family:var(--sans); font-weight:300; font-size:12px; color:rgba(246,241,234,.6);}
.mega-help:hover{color:var(--sand);}
.mega-scrim{position:fixed; left:0; right:0; top:0; bottom:0; z-index:55;
  background:rgba(23,20,17,.5); opacity:0; transition:opacity .2s ease;}
.mega-scrim[hidden]{display:none;}
.mega-scrim.on{opacity:1;}
/* --- mobile drawer accordion ------------------------------------------- */
.mnav .mgroup{border-bottom:1px solid rgba(255,255,255,.08);}
.mnav .item.mtoggle{display:flex; align-items:center; justify-content:space-between; gap:16px;
  width:100%; text-align:left; background:none; border:none; cursor:pointer; border-bottom:none;
  font-family:var(--serif); font-size:26px; color:var(--white); padding:14px 0;}
.mnav .item.mtoggle .nav-chev{width:14px; height:14px; color:var(--brass);}
.mnav .item.mtoggle[aria-expanded="true"]{color:var(--brass);}
.mnav .item.mtoggle[aria-expanded="true"] .nav-chev{transform:rotate(180deg);}
.mnav .msub{padding:2px 0 18px;}
.mnav .msub[hidden]{display:none;}
.mnav .msub-k{font-family:var(--sans); font-size:9.5px; letter-spacing:1.5px; text-transform:uppercase;
  color:var(--sand); font-weight:600; margin:14px 0 6px;}
.mnav .msub a{display:block; font-family:var(--sans); font-weight:300; font-size:15px;
  color:var(--ivory-dim); padding:7px 0;}
.mnav .msub a:hover{color:var(--brass);}
.mnav .msub a.msub-all{font-size:11px; letter-spacing:1.3px; text-transform:uppercase;
  font-weight:600; color:var(--brass); margin-top:10px;}
/* The desktop bar now carries five triggers with chevrons rather than six short links, so it
   needs to hand over to the drawer earlier than the contract's 640px — which was already late
   for the old nav and overflows outright with this one. Two steps: drop the secondary plain
   items first (they are still in the drawer), then the whole bar. */
@media(max-width:1180px){
  .mega .mega-in{grid-template-columns:minmax(0,1fr) 250px; gap:32px;}
}
@media(max-width:1100px){
  .nav-links{gap:20px;}
  .nav-top,.nav-plain{font-size:11.5px; letter-spacing:.6px;}
  .nav-plain{display:none;}
}
@media(max-width:960px){
  .nav-links{display:none;}
  .nav-tools{display:flex;}
}
@media(max-width:1080px){
  .mega .mega-in{grid-template-columns:minmax(0,1fr);}
  .mega-feature{display:none;}
}
/* --- Okavango build additions (feedback 2026-09-16) --- */
a.nav-top{text-decoration:none;}
.eq-context{padding:16px 34px 0; margin:0 !important;}
.bookbar .bb-price .l{max-width:38ch; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
/* --- range calendar for the enquiry stepper (16 Sep 2026) --- */
.eq-exact{position:relative;}
.eq-datefield input[readonly]{cursor:pointer; background:var(--white);}
.eq-cal{grid-column:1/-1; background:var(--white); border:1px solid var(--bone); border-radius:8px; padding:16px 18px 12px; box-shadow:0 12px 30px rgba(23,20,17,.12); max-width:420px;}
.cal-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:6px;}
.cal-title{font-family:var(--serif); font-size:17px; color:var(--ink);}
.cal-nav{width:32px; height:32px; border-radius:50%; border:1px solid var(--bone); background:transparent; color:var(--ink); font-size:20px; line-height:1; cursor:pointer;}
.cal-nav:hover{border-color:var(--brass); color:var(--brass);}
.cal-hint{font-size:12px; color:var(--brass-600); font-weight:500; margin:0 0 10px;}
.cal-grid{display:grid; grid-template-columns:repeat(7,1fr); gap:3px;}
.cal-dow{font-size:10px; letter-spacing:1.2px; text-transform:uppercase; color:var(--bone); text-align:center; padding:4px 0;}
.cal-day{border:1px solid transparent; background:transparent; border-radius:6px; min-height:44px; padding:5px 2px 3px; cursor:pointer; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px; font-family:var(--sans); color:var(--ink);}
.cal-day b{font-weight:500; font-size:13.5px;}
.cal-day small{font-size:9px; letter-spacing:.3px; color:var(--brass-600); line-height:1;}
.cal-day:hover:not([disabled]){background:var(--ivory-dim);}
.cal-day.hint{background:var(--ivory);}
.cal-day.in-range{background:var(--ivory-dim);}
.cal-day.is-start,.cal-day.is-end{background:var(--brass); color:var(--white);}
.cal-day.is-start small,.cal-day.is-end small{color:var(--white);}
.cal-day.off,.cal-day[disabled]{color:var(--bone); cursor:default; opacity:.55;}
.cal-foot{display:flex; justify-content:flex-end; margin-top:8px;}
.cal-close{background:transparent; border:none; font-family:var(--sans); font-size:12px; letter-spacing:1px; text-transform:uppercase; color:var(--brass-600); cursor:pointer; padding:6px 4px;}
/* wildlife icons (Pimcore wildlife-img-*.png) */
.sp .sil,.sp-img img.wl-icon{width:64px; height:64px; object-fit:contain; margin:0 auto 8px; display:block;}
.wildlife-page .sp-img{display:flex; align-items:center; justify-content:center; flex-direction:column; gap:10px;}
.wildlife-page .sp-img img{width:96px; height:96px; object-fit:contain;}
.wildlife-page .sp-img::after{content:none;}
/* thanks page: latest articles */
.tk-articles{max-width:1100px; margin:48px auto 0;}
.tk-articles .eyebrow{margin-bottom:14px;}
.tk-art-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:18px;}
.tk-art{display:block; background:var(--white); border:1px solid var(--ivory-dim); border-radius:6px; overflow:hidden; color:inherit;}
.tk-art img{width:100%; aspect-ratio:3/2; object-fit:cover;}
.tk-art .b{padding:14px 16px 16px;}
.tk-art h3{font-size:16px; line-height:1.35; margin:0 0 6px;}
.tk-art p{font-size:13px; line-height:1.55; color:var(--soft-charcoal); margin:0;}
