:root {
  --ink: #15221d;
  --deep: #0d1713;
  --cream: #f5f0e6;
  --paper: #fbf8f2;
  --gold: #c9a66b;
  --line: rgba(255, 255, 255, 0.22);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: "DM Sans", sans-serif; }
a { color: inherit; text-decoration: none; }

.site-header {
  position: fixed; inset: 0 0 auto; z-index: 20; height: 92px; padding: 0 clamp(24px, 5vw, 76px);
  display: flex; align-items: center; justify-content: space-between; color: white;
  border-bottom: 1px solid var(--line); transition: background .3s, height .3s;
}
.site-header.is-scrolled { height: 76px; background: rgba(13, 23, 19, .94); backdrop-filter: blur(14px); }
.brand { display: flex; align-items: center; gap: 13px; text-transform: uppercase; letter-spacing: .16em; }
.brand-name { font-family: "Playfair Display", serif; font-size: 20px; line-height: 1; }
.brand-name small { display: block; margin-top: 5px; text-align: center; font-family: "DM Sans", sans-serif; font-size: 9px; letter-spacing: .5em; }
.brand-mark { position: relative; width: 54px; height: 29px; display: block; border-bottom: 2px solid currentColor; }
.brand-mark::before { content: ""; position: absolute; left: 4px; right: 4px; bottom: 5px; height: 12px; border: 2px solid currentColor; border-top: 0; border-radius: 0 0 45% 45%; }
.brand-mark i { position: absolute; bottom: 5px; width: 2px; height: 18px; background: currentColor; }
.brand-mark i:nth-child(1) { left: 8px; }.brand-mark i:nth-child(2) { left: 26px; height: 26px; }.brand-mark i:nth-child(3) { right: 8px; }
.main-nav { display: flex; align-items: center; gap: clamp(14px, 1.6vw, 28px); font-size: 12px; }
.main-nav > a:not(.nav-cta) { opacity: .82; transition: opacity .2s; }
.main-nav > a:hover { opacity: 1; }
.nav-cta { border: 1px solid rgba(255,255,255,.65); padding: 13px 19px; }
.menu-toggle { display: none; background: none; border: 0; padding: 8px; }
.menu-toggle span { display: block; width: 24px; height: 1px; margin: 6px; background: white; }

.hero { position: relative; min-height: 100svh; display: grid; align-items: end; overflow: hidden; color: white; background: var(--deep); }
.hero-image { position: absolute; inset: 0; background-image: url("public/assets/source/page-1-image-1.jpg"); background-size: 355% auto; background-position: left top; background-repeat: no-repeat; transform: scale(1.02); animation: settle 1.4s ease-out both; }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(7,15,12,.82) 0%, rgba(7,15,12,.38) 52%, rgba(7,15,12,.58) 100%), linear-gradient(0deg, rgba(7,15,12,.72), transparent 60%); }
.hero-content { position: relative; z-index: 2; width: min(800px, 76vw); padding: 180px clamp(24px, 8vw, 124px) 13vh; }
.eyebrow { display: flex; align-items: center; gap: 14px; margin: 0 0 26px; color: #e3c793; font-size: 12px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }
.eyebrow::before { content: ""; width: 42px; height: 1px; background: currentColor; }
h1 { max-width: 760px; margin: 0; font: 500 clamp(58px, 7.2vw, 112px)/.94 "Playfair Display", serif; letter-spacing: -.045em; }
h1 em { color: var(--cream); font-weight: 500; }
.hero-copy { max-width: 460px; margin: 30px 0 34px; color: rgba(255,255,255,.78); font: 400 clamp(16px, 1.5vw, 19px)/1.65 "Manrope", sans-serif; }
.hero-actions { display: flex; align-items: center; gap: 32px; }
.button { display: inline-flex; min-height: 52px; align-items: center; justify-content: center; padding: 0 24px; font-size: 13px; font-weight: 600; }
.button-primary { color: var(--deep); background: var(--cream); }
.text-link { padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,.42); font-size: 13px; }
.text-link span { margin-left: 8px; color: var(--gold); }
.hero-note { position: absolute; z-index: 2; right: clamp(24px, 5vw, 76px); bottom: 12vh; padding-left: 22px; border-left: 1px solid var(--gold); }
.hero-note span, .hero-note strong { display: block; }.hero-note span { margin-bottom: 8px; opacity: .6; font-size: 10px; letter-spacing: .18em; text-transform: uppercase; }.hero-note strong { font-family: "Playfair Display", serif; font-size: 19px; font-weight: 500; }
.scroll-cue { position: absolute; z-index: 2; left: 50%; bottom: 26px; display: flex; align-items: center; gap: 10px; transform: translateX(-50%); color: rgba(255,255,255,.65); font-size: 10px; letter-spacing: .2em; text-transform: uppercase; }
.scroll-cue span { width: 32px; height: 1px; background: currentColor; }
@keyframes settle { from { opacity: 0; transform: scale(1.08); } to { opacity: 1; transform: scale(1.02); } }

.section { padding: 128px clamp(24px, 8vw, 124px); }
.section-label { display: flex; align-items: center; gap: 14px; color: #68716c; font-size: 10px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }
.section-label span { color: var(--gold); }
.section-label::after { content: ""; width: 54px; height: 1px; background: #c8cac4; }
.section-label-light { color: rgba(255,255,255,.55); }.section-label-light::after { background: rgba(255,255,255,.22); }
.intro { display: grid; grid-template-columns: .75fr 1.5fr 1fr; gap: clamp(35px, 6vw, 96px); align-items: center; }
.intro h2, .dining h2, .menu-preview h2, .location h2, .contact-strip h2 { margin: 0; font: 500 clamp(48px, 5.7vw, 86px)/1 "Playfair Display", serif; letter-spacing: -.04em; }
.intro h2 em, .menu-preview h2 em, .contact-strip h2 em { color: #98764b; font-weight: 500; }
.eyebrow-dark { color: #98764b; }
.intro-copy > p, .body-copy { color: #59635e; font: 400 16px/1.8 "Manrope", sans-serif; }
.underlined-link { display: inline-flex; gap: 18px; margin-top: 18px; padding-bottom: 8px; border-bottom: 1px solid #aeb3ae; font-size: 13px; font-weight: 600; }.underlined-link span { color: #98764b; }
.feature-grid { min-height: 650px; display: grid; grid-template-columns: 1.45fr .8fr 1fr; }
.feature-photo { min-height: 650px; position: relative; background-image: url("public/assets/source/page-1-image-1.jpg"); background-size: 355% auto; background-position: left center; }
.feature-tag { position: absolute; left: 26px; bottom: 26px; padding: 11px 14px; color: white; border: 1px solid rgba(255,255,255,.4); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; }
.feature-quote { padding: 64px 38px; display: flex; flex-direction: column; justify-content: center; color: var(--cream); background: #86704e; }
.quote-mark { font: 500 76px/.6 "Playfair Display", serif; opacity: .55; }.feature-quote blockquote { margin: 28px 0; font: italic 500 clamp(25px, 2.3vw, 36px)/1.45 "Playfair Display", serif; }.feature-quote p { font-size: 10px; letter-spacing: .18em; text-transform: uppercase; opacity: .65; }
.feature-detail { padding: 64px clamp(32px, 5vw, 76px); display: flex; flex-direction: column; justify-content: center; background: #eee9df; }
.feature-detail h3 { margin: 20px 0; font: 500 clamp(32px, 3vw, 46px)/1.1 "Playfair Display", serif; }.feature-detail > p:last-child { color: #5f6964; font: 400 15px/1.75 "Manrope", sans-serif; }
.experiences { display: grid; grid-template-columns: .8fr 1.4fr; gap: clamp(56px, 10vw, 150px); background: #f5f0e6; }
.experiences h2, .week-rhythm h2 { margin: 28px 0 0; font: 500 clamp(46px, 5vw, 78px)/1 "Playfair Display", serif; letter-spacing: -.04em; }
.experiences h2 em { color: #98764b; font-weight: 500; }
.experience-list { border-top: 1px solid #d3cfc4; }
.experience-list article { display: grid; grid-template-columns: 52px 1fr; gap: 18px; padding: 31px 0; border-bottom: 1px solid #d3cfc4; }
.experience-list article > span { padding-top: 7px; color: #a1845b; font-size: 10px; letter-spacing: .15em; }
.experience-list h3 { margin: 0 0 10px; font: 500 29px "Playfair Display", serif; }
.experience-list p { max-width: 650px; margin: 0 0 14px; color: #65706a; font: 400 14px/1.7 "Manrope", sans-serif; }
.experience-list a { font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.dining { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(50px, 9vw, 140px); color: white; background: var(--deep); }
.dining-copy { align-self: center; }.dining h2 em, .location h2 em { color: #e4c58e; font-weight: 500; }.dining .body-copy { max-width: 580px; margin: 30px 0; color: rgba(255,255,255,.63); }
.dining-meta { display: flex; gap: 56px; margin: 35px 0; }.dining-meta span, .dining-meta strong { display: block; }.dining-meta span { margin-bottom: 7px; color: #e4c58e; font-size: 10px; letter-spacing: .18em; text-transform: uppercase; }.dining-meta strong { font: 500 19px "Playfair Display", serif; }
.button-light { color: white; border: 1px solid rgba(255,255,255,.45); }
.dining-visual { min-height: 680px; position: relative; background-image: linear-gradient(rgba(0,0,0,.05), rgba(0,0,0,.15)), url("public/assets/source/page-1-image-1.jpg"); background-size: 355% auto; background-position: 76% center; }
.dining-visual span { position: absolute; right: 24px; bottom: 24px; padding: 11px 14px; border: 1px solid rgba(255,255,255,.45); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; }
.menu-preview { display: grid; grid-template-columns: .8fr 1.4fr; gap: 80px; background: var(--paper); }
.menu-preview .section-label { margin-bottom: 32px; }.menu-cards { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid #d7d5ce; }
.menu-cards article { padding: 35px 28px 20px 0; border-bottom: 1px solid #d7d5ce; }.menu-cards article + article { padding-left: 28px; border-left: 1px solid #d7d5ce; }.menu-cards span { color: #98764b; font-size: 10px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }.menu-cards h3 { margin: 18px 0 14px; font: 500 25px "Playfair Display", serif; }.menu-cards p { color: #68716c; font: 400 14px/1.7 "Manrope", sans-serif; }
.week-rhythm { color: white; background: #735f42; }
.rhythm-intro { display: grid; grid-template-columns: .65fr 1.6fr; gap: 60px; align-items: start; }
.week-rhythm h2 em { color: #ead3aa; font-weight: 500; }
.rhythm-cards { display: grid; grid-template-columns: repeat(2, 1fr); margin: 70px 0 42px; border-top: 1px solid rgba(255,255,255,.2); }
.rhythm-cards article { padding: 35px 50px 35px 0; border-bottom: 1px solid rgba(255,255,255,.2); }
.rhythm-cards article + article { padding-left: 50px; border-left: 1px solid rgba(255,255,255,.2); }
.rhythm-cards span { color: #ead3aa; font-size: 10px; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; }
.rhythm-cards h3 { margin: 20px 0 14px; font: 500 30px "Playfair Display", serif; }
.rhythm-cards p { max-width: 560px; color: rgba(255,255,255,.7); font: 400 15px/1.75 "Manrope", sans-serif; }
.location { display: grid; grid-template-columns: 1.5fr 1fr; min-height: 690px; }.location-image { background-image: url("public/assets/source/page-1-image-1.jpg"); background-size: 355% auto; background-position: left center; }.location-panel { display: flex; flex-direction: column; justify-content: center; padding: clamp(48px, 7vw, 110px); color: white; background: #283c33; }.location-panel .section-label { margin-bottom: 60px; }.location-panel address { margin: 30px 0; color: rgba(255,255,255,.72); font: normal 400 16px/1.8 "Manrope", sans-serif; }.location-rule { height: 1px; margin: 5px 0 26px; background: rgba(255,255,255,.18); }.location-panel > p { color: rgba(255,255,255,.6); font: 400 13px/1.6 "Manrope", sans-serif; }
.location-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }.location-actions .button { flex: 1; min-width: 145px; }
.contact-strip { padding: 120px 24px; text-align: center; background: var(--cream); }.contact-strip .eyebrow { justify-content: center; }.contact-strip .underlined-link { margin-top: 34px; }
.footer { padding: 48px clamp(24px, 6vw, 90px); display: grid; grid-template-columns: 1.2fr 1fr 1.1fr auto auto; gap: 30px; align-items: center; color: rgba(255,255,255,.7); background: #0a120f; }.footer-brand { color: white; }.footer > p { font: italic 500 17px "Playfair Display", serif; }.footer-links, .social-links { display: flex; gap: 20px; font-size: 12px; }.social-links a { color: #e3c793; }.footer > small { font-size: 10px; }
.mobile-actions { display: none; }

.subpage { background: var(--paper); }.subpage-header { background: rgba(13,23,19,.86); backdrop-filter: blur(14px); }.subpage-header .main-nav a[aria-current="page"] { color: #e3c793; }
.stay-hero { position: relative; min-height: 76svh; display: grid; align-items: end; overflow: hidden; color: white; background: var(--deep); }
.stay-hero-image { position: absolute; inset: 0; background: url("public/assets/lodge/twin-bridge-aerial.jpeg") center/cover no-repeat; transform: scale(1.02); }
.stay-hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(7,15,12,.82), rgba(7,15,12,.18) 70%), linear-gradient(0deg, rgba(7,15,12,.62), transparent 60%); }
.stay-hero-content { position: relative; z-index: 2; padding: 190px clamp(24px, 8vw, 124px) 11vh; }.stay-hero-content h1 { max-width: 980px; }.stay-hero-content > p:last-child { max-width: 560px; margin: 28px 0 0; color: rgba(255,255,255,.75); font: 400 18px/1.7 "Manrope", sans-serif; }
.stay-intro { display: grid; grid-template-columns: .75fr 1.45fr 1fr; gap: clamp(40px, 7vw, 110px); align-items: center; }.stay-intro h2, .stay-info h2 { margin: 0; font: 500 clamp(48px, 5.5vw, 82px)/1 "Playfair Display", serif; letter-spacing: -.04em; }.stay-intro h2 em { color: #98764b; font-weight: 500; }.stay-intro > p { color: #626b66; font: 400 15px/1.8 "Manrope", sans-serif; }
.room-list { background: #eae4d9; }.room-card { min-height: 700px; display: grid; grid-template-columns: 1.25fr 1fr; }.room-card-reverse .room-photo { order: 2; }.room-photo { min-height: 680px; overflow: hidden; background: #cfc7b9; }.room-photo img { width: 100%; height: 100%; display: block; object-fit: cover; }.room-details { padding: clamp(52px, 7vw, 110px); display: flex; flex-direction: column; justify-content: center; background: #f8f4ec; }.room-card-reverse .room-details { background: #20342b; color: white; }.room-topline { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 28px; padding-bottom: 18px; border-bottom: 1px solid #d2cfc7; }.room-card-reverse .room-topline { border-color: rgba(255,255,255,.18); }.room-topline > span { color: #98764b; font-size: 10px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; }.room-card-reverse .room-topline > span { color: #e4c58e; }.room-topline strong { font: 500 24px "Playfair Display", serif; }.room-topline small { opacity: .55; font: 500 10px "DM Sans", sans-serif; text-transform: uppercase; }.room-details h2 { margin: 0; font: 500 clamp(48px, 4.7vw, 72px) "Playfair Display", serif; }.room-details > p { max-width: 540px; margin: 22px 0 30px; color: #68716c; font: 400 15px/1.75 "Manrope", sans-serif; }.room-card-reverse .room-details > p { color: rgba(255,255,255,.65); }.amenity-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px 22px; margin: 0 0 36px; padding: 0; list-style: none; }.amenity-list li { position: relative; padding-left: 18px; color: #535f59; font-size: 12px; }.room-card-reverse .amenity-list li { color: rgba(255,255,255,.72); }.amenity-list li::before { content: ""; position: absolute; left: 0; top: 6px; width: 5px; height: 5px; border-radius: 50%; background: #b18c55; }.room-book { align-self: flex-start; color: white; background: #98764b; }
.stay-info { display: grid; grid-template-columns: .8fr 1.4fr; gap: 90px; color: white; background: #735f42; }.stay-info h2 { margin-top: 28px; }.stay-info h2 em { color: #ead3aa; font-weight: 500; }.stay-info-grid { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid rgba(255,255,255,.2); }.stay-info-grid article { min-height: 160px; padding: 30px 30px 30px 0; border-bottom: 1px solid rgba(255,255,255,.2); }.stay-info-grid article:nth-child(even) { padding-left: 30px; border-left: 1px solid rgba(255,255,255,.2); }.stay-info-grid span, .stay-info-grid strong { display: block; }.stay-info-grid span { margin-bottom: 14px; color: #ead3aa; font-size: 10px; letter-spacing: .16em; text-transform: uppercase; }.stay-info-grid strong { font: 500 22px "Playfair Display", serif; }.stay-info-grid p { margin-bottom: 0; color: rgba(255,255,255,.65); font: 400 12px/1.6 "Manrope", sans-serif; }
.food-hero { position: relative; min-height: 82svh; display: grid; align-items: end; overflow: hidden; color: white; background: var(--deep); }.food-hero-image { position: absolute; inset: 0; background: url("public/assets/lodge/riverside-drinks.jpg") center/cover no-repeat; transform: scale(1.02); }.food-hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(7,15,12,.86), rgba(7,15,12,.18) 70%), linear-gradient(0deg, rgba(7,15,12,.62), transparent 60%); }
.food-intro { display: grid; grid-template-columns: .75fr 1.45fr 1fr; gap: clamp(40px, 7vw, 110px); align-items: center; }.food-intro h2, .signature-heading h2, .food-feature-copy h2, .menu-download h2, .hours h2 { margin: 0; font: 500 clamp(48px, 5.5vw, 82px)/1 "Playfair Display", serif; letter-spacing: -.04em; }.food-intro h2 em, .menu-download h2 em { color: #98764b; font-weight: 500; }.food-intro > p, .menu-download > div > p { color: #626b66; font: 400 15px/1.8 "Manrope", sans-serif; }
.signature-menu { display: grid; grid-template-columns: .75fr 1.35fr; gap: clamp(60px, 10vw, 150px); color: white; background: #101b16; }.signature-heading h2 { margin-top: 30px; }.signature-heading h2 em { color: #e4c58e; font-weight: 500; }.signature-heading > p { max-width: 360px; color: rgba(255,255,255,.55); font: 400 14px/1.7 "Manrope", sans-serif; }.dish-list { border-top: 1px solid rgba(255,255,255,.2); }.dish-list article { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 26px 0; border-bottom: 1px solid rgba(255,255,255,.2); }.dish-list span { color: #e4c58e; font-size: 9px; letter-spacing: .16em; text-transform: uppercase; }.dish-list h3 { margin: 8px 0 5px; font: 500 24px "Playfair Display", serif; }.dish-list p { margin: 0; color: rgba(255,255,255,.52); font: 400 12px/1.6 "Manrope", sans-serif; }.dish-list strong { color: #e4c58e; font: 500 19px "Playfair Display", serif; }
.food-feature { min-height: 690px; display: grid; grid-template-columns: 1.4fr 1fr; }.food-feature-image { background: url("public/assets/lodge/kafue-sunset.jpg") center/cover no-repeat; }.food-feature-copy { padding: clamp(60px, 8vw, 120px); display: flex; flex-direction: column; justify-content: center; color: white; background: #735f42; }.food-feature-copy h2 em { color: #ead3aa; font-weight: 500; }.food-feature-copy > p:last-of-type { margin: 28px 0 36px; color: rgba(255,255,255,.67); font: 400 15px/1.8 "Manrope", sans-serif; }.food-feature-copy .button { align-self: flex-start; }
.menu-download { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(55px, 9vw, 140px); align-items: center; }.menu-download .section-label { margin-bottom: 30px; }.menu-download > div > p { max-width: 560px; margin: 28px 0; }.menu-button { color: white; background: #98764b; }.menu-art { min-height: 650px; background: #080808 url("public/assets/source/page-1-image-1.jpg") 45% center/355% auto no-repeat; box-shadow: 0 30px 80px rgba(15,25,20,.18); }
.hours { display: grid; grid-template-columns: .75fr 1.4fr; gap: 90px; color: white; background: #283c33; }.hours h2 { margin-top: 30px; }.hours h2 em { color: #e4c58e; font-weight: 500; }.hours-list { border-top: 1px solid rgba(255,255,255,.2); }.hours-list article { display: grid; grid-template-columns: 1fr auto; gap: 8px 20px; padding: 31px 0; border-bottom: 1px solid rgba(255,255,255,.2); }.hours-list span { color: rgba(255,255,255,.6); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; }.hours-list strong { grid-row: span 2; align-self: center; color: #e4c58e; font: 500 24px "Playfair Display", serif; }.hours-list small { color: rgba(255,255,255,.42); font-size: 11px; }
.inner-hero { position: relative; min-height: 78svh; display: grid; align-items: end; overflow: hidden; color: white; background-position: center; background-size: cover; }.events-hero { background-image: url("public/assets/lodge/riverside-grounds.jpg"); }.story-hero { background-image: url("public/assets/lodge/kafue-sunset.jpg"); }.inner-shade { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(7,15,12,.84),rgba(7,15,12,.2)),linear-gradient(0deg,rgba(7,15,12,.62),transparent 60%); }
.page-intro { display: grid; grid-template-columns: .7fr 1.45fr 1fr; gap: clamp(40px,7vw,105px); align-items: center; }.page-intro h2,.dual-copy h2,.policies h2,.story-copy h2,.vision h2,.contact-hours h2,.contact-social h2 { margin: 0; font: 500 clamp(46px,5.3vw,80px)/1 "Playfair Display",serif; letter-spacing: -.04em; }.page-intro h2 em,.contact-hours h2 em,.contact-social h2 em { color:#98764b;font-weight:500; }.page-intro>p { color:#626b66;font:400 15px/1.8 "Manrope",sans-serif; }
.experience-cards { display:grid;grid-template-columns:repeat(4,1fr);gap:1px;padding-top:0;background:#d2cec4; }.experience-cards article { min-height:330px;padding:46px 34px;background:#f4efe6; }.experience-cards span,.values span { color:#98764b;font-size:10px;letter-spacing:.16em; }.experience-cards h3,.values h3 { margin:46px 0 16px;font:500 29px "Playfair Display",serif; }.experience-cards p,.values p { color:#68716c;font:400 14px/1.75 "Manrope",sans-serif; }
.dual-experience,.story-split { min-height:700px;display:grid;grid-template-columns:1.3fr 1fr; }.dual-photo { background:url("public/assets/lodge/night-venue.jpg") center/cover no-repeat; }.dual-copy,.story-copy { padding:clamp(60px,8vw,120px);display:flex;flex-direction:column;justify-content:center;color:white;background:#735f42; }.dual-copy h2 em,.story-copy h2 em { color:#ead3aa;font-weight:500; }.dual-copy>p:last-of-type,.story-copy>p { color:rgba(255,255,255,.68);font:400 15px/1.8 "Manrope",sans-serif; }.dual-copy .button { align-self:flex-start;margin-top:24px; }
.policies,.vision { display:grid;grid-template-columns:.8fr 1.25fr;gap:90px;color:white;background:#283c33; }.policies h2,.vision h2 { margin-top:30px; }.policies h2 em,.vision h2 em { color:#e4c58e;font-weight:500; }.policies ul { display:grid;grid-template-columns:repeat(2,1fr);gap:0 40px;margin:0;padding:0;list-style:none;border-top:1px solid rgba(255,255,255,.2); }.policies li { padding:23px 0;border-bottom:1px solid rgba(255,255,255,.2);color:rgba(255,255,255,.72);font-size:13px; }
.gallery-head { padding-top:190px;text-align:center; }.gallery-head .eyebrow { justify-content:center; }.gallery-head h1 { color:var(--ink); }.gallery-head h1 em { color:#98764b; }.gallery-head>p:last-child { color:#69716d;font:400 15px/1.7 "Manrope",sans-serif; }.gallery-grid { display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:380px;gap:10px;padding:10px;background:#eee8dd; }.gallery-grid figure { margin:0;overflow:hidden;background:#d6d0c5; }.gallery-grid img { width:100%;height:100%;display:block;object-fit:cover;transition:transform .5s; }.gallery-grid figure:hover img { transform:scale(1.03); }.gallery-wide { grid-column:span 2; }.gallery-tall { grid-row:span 2; }
.story-image { background:url("public/assets/lodge/twin-bridge-aerial.jpeg") center/cover no-repeat; }.story-copy { background:#735f42; }.story-copy>p { margin:18px 0 0; }.vision>div:last-child { align-self:center;color:rgba(255,255,255,.68);font:400 16px/1.8 "Manrope",sans-serif; }.values { display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#d2cec4; }.values article { min-height:290px;padding:50px;background:#f7f2e9; }
.contact-hero { padding-top:190px;text-align:center; }.contact-hero .eyebrow { justify-content:center; }.contact-hero h1 { color:var(--ink); }.contact-hero h1 em { color:#98764b; }.contact-hero>p:last-child { color:#68716c;font:400 16px/1.7 "Manrope",sans-serif; }.contact-layout { min-height:760px;display:grid;grid-template-columns:1.2fr 1fr; }.contact-photo { background:url("public/assets/lodge/kafue-sunset.jpg") center/cover no-repeat; }.contact-details { padding:clamp(55px,7vw,110px);display:flex;flex-direction:column;justify-content:center;color:white;background:#20342b; }.contact-item { padding:25px 0;border-bottom:1px solid rgba(255,255,255,.18); }.contact-item>span { display:block;margin-bottom:10px;color:#e4c58e;font-size:10px;letter-spacing:.16em;text-transform:uppercase; }.contact-item>a,.contact-item address { color:rgba(255,255,255,.8);font:normal 500 20px/1.6 "Playfair Display",serif; }.contact-item .small-link { display:inline-block;margin-top:12px;color:#e4c58e;font:600 11px "DM Sans",sans-serif;text-transform:uppercase; }.contact-actions { display:flex;gap:12px;margin-top:32px; }.contact-actions .button { flex:1; }.contact-hours,.contact-social { display:grid;grid-template-columns:.75fr 1.3fr;gap:90px; }.contact-hours h2,.contact-social h2 { margin-top:30px; }.plain-hours { border-top:1px solid #d4d1ca; }.plain-hours article { display:flex;justify-content:space-between;gap:30px;padding:28px 0;border-bottom:1px solid #d4d1ca; }.plain-hours span { color:#98764b;font-size:10px;letter-spacing:.14em;text-transform:uppercase; }.plain-hours strong { text-align:right;font:500 19px/1.5 "Playfair Display",serif; }.contact-social { background:#eee8dd; }.social-cards { display:grid;grid-template-columns:repeat(2,1fr);gap:14px; }.social-cards a { min-height:210px;padding:32px;display:flex;flex-direction:column;justify-content:space-between;color:white;background:#735f42; }.social-cards a:last-child { background:#283c33; }.social-cards span { font-size:10px;letter-spacing:.15em;text-transform:uppercase;opacity:.65; }.social-cards strong { font:500 24px "Playfair Display",serif; }

@media (max-width: 760px) {
  .site-header { height: 76px; padding: 0 20px; }
  .brand-name { font-size: 16px; }.brand-mark { transform: scale(.86); transform-origin: left center; margin-right: -5px; }
  .menu-toggle { display: block; position: relative; z-index: 22; }
  .main-nav { position: fixed; inset: 0; padding: 112px 28px 38px; background: var(--deep); flex-direction: column; align-items: stretch; gap: 0; transform: translateX(100%); transition: transform .3s ease; }
  .main-nav.is-open { transform: translateX(0); }
  .main-nav a { padding: 19px 4px; border-bottom: 1px solid rgba(255,255,255,.1); font: 500 26px "Playfair Display", serif; }
  .main-nav .nav-cta { margin-top: 24px; text-align: center; font: 600 13px "DM Sans", sans-serif; }
  .hero-image { background-size: auto 100%; background-position: 9% center; }
  .hero-shade { background: linear-gradient(0deg, rgba(7,15,12,.88) 0%, rgba(7,15,12,.22) 85%), linear-gradient(90deg, rgba(7,15,12,.28), transparent); }
  .hero-content { width: 100%; padding: 128px 22px 104px; }
  h1 { font-size: clamp(50px, 15vw, 72px); }
  .hero-copy { margin: 22px 0 28px; font-size: 16px; }
  .hero-actions { align-items: stretch; flex-direction: column; gap: 10px; }
  .button { width: 100%; }.text-link { align-self: flex-start; }
  .hero-note, .scroll-cue { display: none; }
  .section { padding: 80px 22px; }
  .intro { grid-template-columns: 1fr; gap: 34px; }.intro h2, .dining h2, .menu-preview h2, .location h2, .contact-strip h2 { font-size: clamp(44px, 13vw, 62px); }.intro-copy { max-width: 520px; }
  .feature-grid { grid-template-columns: 1fr; }.feature-photo { min-height: 520px; background-size: auto 100%; background-position: 9% center; }.feature-quote, .feature-detail { min-height: 390px; padding: 48px 28px; }
  .experiences { grid-template-columns: 1fr; gap: 50px; }.experience-list article { grid-template-columns: 38px 1fr; }
  .dining { grid-template-columns: 1fr; gap: 56px; }.dining-visual { min-height: 480px; background-size: auto 100%; background-position: 70% center; }.dining-meta { gap: 36px; }
  .menu-preview { grid-template-columns: 1fr; gap: 50px; }.menu-cards { grid-template-columns: 1fr; }.menu-cards article, .menu-cards article + article { padding: 28px 0; border-left: 0; }
  .rhythm-intro, .rhythm-cards { grid-template-columns: 1fr; }.rhythm-intro { gap: 34px; }.rhythm-cards { margin-top: 50px; }.rhythm-cards article, .rhythm-cards article + article { padding: 30px 0; border-left: 0; }
  .location { grid-template-columns: 1fr; }.location-image { min-height: 520px; background-size: auto 100%; background-position: 9% center; }.location-panel { min-height: 540px; padding: 70px 24px; }.location-panel .section-label { margin-bottom: 40px; }
  .contact-strip { padding: 92px 22px; }.footer { grid-template-columns: 1fr; padding-bottom: 110px; text-align: center; }.footer-brand { justify-content: center; }.footer-links { justify-content: center; flex-wrap: wrap; }
  .mobile-actions { position: fixed; z-index: 30; inset: auto 10px 10px; display: grid; grid-template-columns: repeat(3, 1fr); padding: 6px; color: white; background: rgba(13,23,19,.96); border: 1px solid rgba(255,255,255,.15); box-shadow: 0 14px 38px rgba(0,0,0,.28); backdrop-filter: blur(12px); }.mobile-actions a { display: flex; min-height: 52px; flex-direction: column; align-items: center; justify-content: center; gap: 4px; border-right: 1px solid rgba(255,255,255,.12); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }.mobile-actions a:last-child { border-right: 0; }.mobile-actions span { color: #e3c793; font-size: 16px; }
  .stay-hero { min-height: 72svh; }.stay-hero-content { padding: 150px 22px 70px; }.stay-hero-content > p:last-child { font-size: 15px; }.stay-intro { grid-template-columns: 1fr; gap: 32px; }.stay-intro h2, .stay-info h2 { font-size: clamp(44px, 13vw, 62px); }
  .room-card { grid-template-columns: 1fr; }.room-card-reverse .room-photo { order: 0; }.room-photo { min-height: 430px; }.room-details { padding: 58px 22px; }.amenity-list { grid-template-columns: 1fr 1fr; }.room-book { align-self: stretch; }
  .stay-info { grid-template-columns: 1fr; gap: 50px; }.stay-info-grid { grid-template-columns: 1fr; }.stay-info-grid article, .stay-info-grid article:nth-child(even) { min-height: 130px; padding: 26px 0; border-left: 0; }
  .food-hero { min-height: 72svh; }.food-intro, .signature-menu, .food-feature, .menu-download, .hours { grid-template-columns: 1fr; }.food-intro { gap: 32px; }.food-intro h2, .signature-heading h2, .food-feature-copy h2, .menu-download h2, .hours h2 { font-size: clamp(44px, 13vw, 62px); }.signature-menu { gap: 52px; }.dish-list article { align-items: flex-start; }.dish-list h3 { font-size: 22px; }
  .food-feature-image { min-height: 500px; }.food-feature-copy { min-height: 520px; padding: 70px 22px; }.food-feature-copy .button { align-self: stretch; }.menu-download { gap: 50px; }.menu-art { min-height: 520px; background-size: auto 100%; background-position: 47% center; }.hours { gap: 52px; }.hours-list article { grid-template-columns: 1fr; }.hours-list strong { grid-row: auto; }.hours-list small { margin-top: 2px; }
  .inner-hero { min-height:72svh; }.page-intro,.policies,.vision,.contact-hours,.contact-social { grid-template-columns:1fr;gap:40px; }.page-intro h2,.dual-copy h2,.policies h2,.story-copy h2,.vision h2,.contact-hours h2,.contact-social h2 { font-size:clamp(44px,13vw,62px); }.experience-cards { grid-template-columns:1fr; }.experience-cards article { min-height:250px;padding:38px 24px; }.experience-cards h3 { margin-top:30px; }.dual-experience,.story-split,.contact-layout { grid-template-columns:1fr; }.dual-photo,.story-image,.contact-photo { min-height:500px; }.dual-copy,.story-copy,.contact-details { min-height:520px;padding:65px 22px; }.dual-copy .button { align-self:stretch; }.policies ul { grid-template-columns:1fr; }.gallery-head,.contact-hero { padding-top:145px; }.gallery-grid { grid-template-columns:1fr;grid-auto-rows:360px; }.gallery-wide { grid-column:auto; }.gallery-tall { grid-row:auto; }.values { grid-template-columns:1fr; }.values article { min-height:230px;padding:38px 24px; }.contact-actions { flex-direction:column; }.contact-item>a,.contact-item address { font-size:18px;word-break:break-word; }.plain-hours article { flex-direction:column;gap:12px; }.plain-hours strong { text-align:left; }.social-cards { grid-template-columns:1fr; }
}

@media (min-width: 761px) and (max-width: 1180px) { .main-nav a:nth-child(4), .main-nav a:nth-child(5) { display: none; }.intro { grid-template-columns: 1fr 2fr; }.intro-copy { grid-column: 2; }.feature-grid { grid-template-columns: 1.3fr 1fr; }.feature-detail { grid-column: 1 / -1; min-height: 390px; }.experiences, .menu-preview { grid-template-columns: 1fr; }.footer { grid-template-columns: 1fr 1fr; } }

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }
