@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400&family=Manrope:wght@400;500;600;700&display=swap');

:root {
  --font-display: 'Cormorant Garamond';
  --font-sans: 'Manrope';
  --ink: #392b2f;
  --deep: #2f2228;
  --forest: #4a3338;
  --moss: #9a705e;
  --sand: #c7603d;
  --sand-light: #d8b28c;
  --cream: #ead9bf;
  --paper: #f8f1e6;
  --line: rgba(57, 43, 47, .16);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--font-sans), sans-serif; font-size: 17px; line-height: 1.68; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }
img { display: block; width: 100%; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: var(--font-display), serif; font-weight: 500; }

.site-header {
  align-items: center; color: white; display: grid; grid-template-columns: 260px 1fr 180px;
  height: 96px; left: 0; padding: 0 4.5vw; position: absolute; right: 0; top: 0; z-index: 20;
}
.brand { align-items: center; display: inline-flex; gap: 13px; width: max-content; }
.brand > span:not(.leaf-mark) { display: flex; flex-direction: column; line-height: 1; }
.brand strong { font-family: var(--font-display); font-size: 24px; font-weight: 600; letter-spacing: .14em; }
.brand small { font-size: 9px; letter-spacing: .43em; margin-top: 6px; }
.leaf-mark { display: block; height: 40px; position: relative; width: 36px; }
.leaf-mark i { border: 1.5px solid currentColor; border-radius: 90% 0 90% 0; display: block; height: 23px; position: absolute; transform: rotate(-35deg); width: 12px; }
.leaf-mark i:nth-child(1) { left: 5px; top: 13px; }
.leaf-mark i:nth-child(2) { left: 13px; top: 5px; transform: rotate(0deg); }
.leaf-mark i:nth-child(3) { left: 21px; top: 13px; transform: rotate(35deg); }
.main-nav { align-items: center; display: flex; gap: clamp(17px, 2.1vw, 38px); justify-content: center; }
.main-nav a { background: none; border: 0; color: inherit; font-size: 14px; font-weight: 700; letter-spacing: .1em; padding: 10px 0; text-transform: uppercase; }
.main-nav a::after { background: var(--sand); content: ""; display: block; height: 2px; margin-top: 6px; transform: scaleX(0); transform-origin: left; transition: transform .3s ease; }
.main-nav a:hover::after, .main-nav a:focus-visible::after, .main-nav a.active::after { transform: scaleX(1); }
.outline-button { background: transparent; border: 1px solid currentColor; color: inherit; font-size: 12px; letter-spacing: .14em; padding: 15px 20px; text-transform: uppercase; }
.header-book { justify-self: end; }
.menu-button { display: none; }

.hero { background-position: center; background-size: cover; color: white; min-height: 830px; overflow: hidden; position: relative; }
.home-hero { height: 100svh; min-height: 720px; }
.hero-shade { background: linear-gradient(90deg, rgba(0,0,0,.25) 0%, rgba(0,0,0,.08) 58%, transparent 88%), linear-gradient(0deg, rgba(0,0,0,.3), transparent 38%); inset: 0; pointer-events: none; position: absolute; }
.hero-content { left: 10.5vw; max-width: 750px; position: absolute; top: 30%; transform: translateY(-50%); z-index: 3; }
.eyebrow { align-items: center; color: var(--moss); display: flex; font-size: 13px; font-weight: 700; gap: 12px; letter-spacing: .22em; margin-bottom: 25px; text-transform: uppercase; }
.eyebrow span { background: var(--sand); display: inline-block; height: 1px; width: 38px; }
.eyebrow.light { color: rgba(255,255,255,.72); }
.hero h1 { font-size: clamp(72px, 8.4vw, 132px); letter-spacing: -.045em; line-height: .78; margin: 0 0 36px; max-width: 830px; }
.hero-copy { color: rgba(255,255,255,.84); font-family: var(--font-display); font-size: 20px; line-height: 1.55; max-width: 560px; }
.hero-actions { align-items: center; display: flex; gap: 35px; margin-top: 40px; }
.primary-button { align-items: center; background: var(--sand); border: 1px solid var(--sand); color: white; display: inline-flex; font-size: 12px; font-weight: 700; gap: 30px; justify-content: center; letter-spacing: .14em; min-height: 58px; padding: 0 27px; text-transform: uppercase; transition: .25s; }
.primary-button:hover { background: #e5c67e; transform: translateY(-2px); }
.primary-button svg, .text-button svg { fill: none; height: 17px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; width: 17px; }
.primary-button.dark { background: var(--ink); border-color: var(--ink); color: white; }
.text-button { align-items: center; background: none; border: 0; border-bottom: 1px solid currentColor; color: var(--ink); display: inline-flex; font-size: 12px; font-weight: 700; gap: 20px; letter-spacing: .14em; padding: 7px 0; text-transform: uppercase; }
.text-button.light { color: white; }
.hero-meta { align-items: center; bottom: 48px; display: flex; left: 4.5vw; position: absolute; right: 4.5vw; z-index: 3; }
.hero-meta > div { align-items: center; display: flex; gap: 15px; }
.hero-meta svg { fill: none; height: 26px; stroke: var(--sand); width: 26px; }
.hero-meta span { font-family: var(--font-display); font-size: 15px; line-height: 1.2; }
.hero-meta small { display: block; font-family: var(--font-sans); font-size: 8px; letter-spacing: .2em; margin-bottom: 7px; text-transform: uppercase; }
.hero-meta .distance { border-left: 1px solid rgba(255,255,255,.3); gap: 13px; margin-left: auto; padding-left: 38px; }
.hero-meta .distance strong { font-family: var(--font-display); font-size: 50px; font-weight: 400; line-height: .8; }
.hero-meta .distance span { color: rgba(255,255,255,.67); font-family: var(--font-sans); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; }
.stock-note { bottom: 7px; color: rgba(255,255,255,.52); font-size: 8px; letter-spacing: .08em; margin: 0; position: absolute; right: 4.5vw; }

.section-pad { padding: 120px 8vw; }
.intro { display: grid; grid-template-columns: 9% 51% 40%; }
.section-number { color: #9c927c; font-family: var(--font-display); font-size: 14px; }
.intro-heading { padding-right: 9vw; }
.intro h2, .section-heading h2, .dining-copy h2, .location-copy h2 { font-size: clamp(50px, 5.3vw, 79px); letter-spacing: -.035em; line-height: .98; margin: 0; }
h2 em { color: #81735c; font-weight: 400; }
.intro-copy { border-left: 1px solid var(--line); padding: 46px 0 0 5vw; }
.intro-copy p { color: #5d665d; font-family: var(--font-display); font-size: 19px; line-height: 1.55; }
.intro-copy p + p { color: #777d76; font-family: var(--font-sans); font-size: 12px; line-height: 1.9; }
.intro-copy .text-button { margin-top: 18px; }

.signature-strip { background: #eae4d8; border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(4, 1fr); padding: 34px 8vw; }
.signature-strip div { align-items: center; border-right: 1px solid var(--line); display: flex; gap: 20px; justify-content: center; }
.signature-strip div:last-child { border: 0; }
.signature-strip strong { color: #776c57; font-family: var(--font-display); font-size: 44px; font-weight: 400; }
.signature-strip span { color: #77796f; font-size: 9px; letter-spacing: .13em; line-height: 1.6; text-transform: uppercase; }

.stay-section { background: var(--paper); }
.section-heading { align-items: end; display: flex; justify-content: space-between; margin-bottom: 65px; }
.section-heading > p { color: #667067; line-height: 1.9; margin: 0 4% 5px 0; max-width: 390px; }
.room-grid { display: grid; gap: 32px; grid-template-columns: repeat(2, 1fr); }
.room-card { background: #ece6da; }
.room-card:nth-child(2) { margin-top: 0; }
.room-image { height: 490px; overflow: hidden; position: relative; }
.room-image::after { background: linear-gradient(0deg, rgba(0,0,0,.48), transparent 45%); content: ""; inset: 0; position: absolute; }
.room-image img { height: 100%; object-fit: cover; transition: transform .8s; }
.room-card:hover .room-image img { transform: scale(1.035); }
.room-image > span { bottom: 22px; color: white; font-family: var(--font-display); font-size: 25px; left: 24px; position: absolute; z-index: 2; }
.room-content { padding: 38px 42px 43px; }
.room-content > p:first-child { color: #7c725e; font-size: 11px; letter-spacing: .15em; text-transform: uppercase; }
.room-content h3 { font-size: 48px; letter-spacing: -.025em; margin: 10px 0 15px; }
.room-description { color: #667067; font-size: 12px; line-height: 1.8; max-width: 510px; }
.room-content ul { border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); display: flex; gap: 20px; list-style: none; margin: 25px 0; padding: 15px 0; }
.room-content li { color: #6d756e; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.room-content li:not(:last-child)::after { color: #af9a6e; content: "•"; margin-left: 20px; }

.wildlife-section { background: var(--deep); color: white; display: grid; grid-template-columns: 58% 42%; min-height: 760px; }
.wildlife-image { background-position: center; background-size: cover; min-height: 760px; position: relative; }
.wildlife-image::after { background: linear-gradient(90deg, transparent 70%, var(--deep)); content: ""; inset: 0; position: absolute; }
.photo-label { bottom: 25px; color: rgba(255,255,255,.6); font-size: 8px; left: 26px; letter-spacing: .12em; position: absolute; text-transform: uppercase; }
.wildlife-copy { align-self: center; padding: 70px 7vw 70px 6vw; }
.wildlife-copy h2 { font-size: clamp(55px, 5.3vw, 82px); line-height: .93; margin: 0 0 35px; }
.wildlife-copy > p:not(.eyebrow) { color: rgba(255,255,255,.67); font-family: var(--font-display); font-size: 18px; line-height: 1.65; }
.quiet-note { border-top: 1px solid rgba(255,255,255,.15); display: flex; gap: 15px; margin-top: 40px; padding-top: 25px; }
.quiet-note > span { color: var(--sand); font-family: var(--font-display); font-size: 45px; line-height: .8; }
.quiet-note p { color: rgba(255,255,255,.48); font-size: 10px; font-style: italic; line-height: 1.8; margin: 0; }

.dining-section { align-items: center; display: grid; gap: 8vw; grid-template-columns: 45% 47%; }
.dining-copy > p:not(.eyebrow) { color: #647066; line-height: 1.8; margin: 30px 0; max-width: 530px; }
.meal-list { border-top: 1px solid var(--line); }
.meal-list div { align-items: center; border-bottom: 1px solid var(--line); display: grid; font-family: var(--font-display); font-size: 21px; grid-template-columns: 43px 1fr auto; padding: 16px 0; }
.meal-list span, .meal-list small { color: #8c836f; font-family: var(--font-sans); font-size: 8px; letter-spacing: .12em; text-transform: uppercase; }
.dining-image { height: 680px; position: relative; }
.dining-image::before { border: 1px solid #bba674; content: ""; inset: -18px 18px 18px -18px; position: absolute; }
.dining-image img { height: 100%; object-fit: cover; position: relative; }
.dining-image span { background: var(--paper); bottom: 0; font-size: 9px; letter-spacing: .15em; padding: 17px 25px; position: absolute; right: 0; text-transform: uppercase; }

.gallery-section { background: #18281c; color: white; }
.gallery-heading h2 { color: white; }
.gallery-heading h2 em { color: #b9aa8c; }
.gallery-filters { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.gallery-filters button { background: transparent; border: 1px solid rgba(255,255,255,.18); color: rgba(255,255,255,.62); font-size: 8px; letter-spacing: .12em; padding: 10px 14px; text-transform: uppercase; }
.gallery-filters button.active { background: var(--sand); border-color: var(--sand); color: var(--ink); }
.gallery-grid { display: grid; gap: 18px; grid-auto-rows: 210px; grid-template-columns: repeat(12, 1fr); }
.gallery-item { background: #000; grid-column: span 6; grid-row: span 2; margin: 0; overflow: hidden; position: relative; }
.gallery-item-1, .gallery-item-2 { grid-column: span 3; }
.gallery-item-3 { grid-column: span 6; grid-row: span 1; }
.gallery-item img { height: 100%; object-fit: cover; opacity: var(--media-opacity,1); transition: opacity .3s ease, transform .8s; }
.gallery-item:hover img { transform: scale(1.04); }
.gallery-item::after { background: linear-gradient(0deg, rgba(0,0,0,.74), transparent 55%); content: ""; inset: 0; pointer-events: none; position: absolute; }
.gallery-item figcaption { bottom: 20px; display: flex; flex-direction: column; left: 22px; position: absolute; z-index: 2; }
.gallery-item figcaption span { color: var(--sand); font-size: 8px; letter-spacing: .17em; text-transform: uppercase; }
.gallery-item figcaption strong { font-family: var(--font-display); font-size: 23px; font-weight: 500; margin-top: 5px; }

.location-section { background: #e9e3d6; display: grid; grid-template-columns: 56% 44%; min-height: 680px; }
.map-pattern { background-color: #d9d1c1; background-image: linear-gradient(30deg, rgba(85,93,75,.08) 12%, transparent 12.5%, transparent 87%, rgba(85,93,75,.08) 87.5%), linear-gradient(150deg, rgba(85,93,75,.08) 12%, transparent 12.5%, transparent 87%, rgba(85,93,75,.08) 87.5%), linear-gradient(30deg, rgba(85,93,75,.08) 12%, transparent 12.5%, transparent 87%, rgba(85,93,75,.08) 87.5%); background-position: 0 0, 0 0, 55px 96px; background-size: 110px 190px; min-height: 600px; overflow: hidden; position: relative; }
.map-pattern::after { border: 2px dashed rgba(61,81,59,.32); border-radius: 50%; content: ""; height: 520px; left: -30px; position: absolute; top: 180px; transform: rotate(-17deg); width: 730px; }
.map-pin { align-items: center; background: var(--forest); border-radius: 50% 50% 50% 0; color: var(--sand); display: flex; height: 70px; justify-content: center; left: 53%; position: absolute; top: 42%; transform: rotate(-45deg); width: 70px; z-index: 2; }
.map-pin svg { fill: none; height: 27px; stroke: currentColor; transform: rotate(45deg); width: 27px; }
.location-copy { align-self: center; padding: 80px 7vw; }
.location-copy > p:not(.eyebrow) { color: #606960; font-size: 13px; line-height: 1.9; margin: 30px 0; }
.location-copy dl { border-top: 1px solid var(--line); margin: 0 0 35px; }
.location-copy dl div { border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 100px 1fr; padding: 17px 0; }
.location-copy dt { color: #8b816c; font-size: 8px; letter-spacing: .15em; text-transform: uppercase; }
.location-copy dd { font-family: var(--font-display); font-size: 16px; margin: 0; }

.closing-cta { background-color: var(--deep); color: white; padding: 130px 8vw; text-align: center; }
.closing-cta .eyebrow { justify-content: center; }
.closing-cta h2 { font-size: clamp(65px, 7.4vw, 110px); line-height: .82; margin-bottom: 38px; }
.closing-cta h2 em { color: #c5b696; }
.closing-cta > p:not(.eyebrow) { color: rgba(255,255,255,.7); line-height: 1.8; margin: 0 auto 38px; max-width: 530px; }
.closing-cta > div { align-items: center; display: flex; gap: 28px; justify-content: center; }
.whatsapp-link { border-bottom: 1px solid rgba(255,255,255,.5); font-size: 9px; letter-spacing: .14em; padding: 8px 0; text-transform: uppercase; }

footer { background: #0d1710; color: rgba(255,255,255,.68); display: grid; gap: 5vw; grid-template-columns: 2fr 1fr 1.3fr 1fr; padding: 75px 6vw 30px; }
.light-brand { color: white; }
.footer-brand p { font-family: var(--font-display); font-size: 17px; line-height: 1.55; margin-top: 28px; max-width: 340px; }
footer h3 { color: white; font-family: var(--font-sans); font-size: 9px; letter-spacing: .17em; margin: 8px 0 25px; text-transform: uppercase; }
footer > div:not(.footer-brand):not(.footer-bottom) { display: flex; flex-direction: column; gap: 13px; }
footer button:not(.outline-button), footer a, footer span { background: none; border: 0; color: inherit; font-size: 10px; line-height: 1.5; padding: 0; text-align: left; }
footer button:hover, footer a:hover { color: white; }
.footer-book .outline-button { color: white; margin-bottom: 12px; }
.footer-book > a { opacity: .5; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.12); display: flex; grid-column: 1 / -1; justify-content: space-between; margin-top: 25px; padding-top: 25px; }

.floating-whatsapp { align-items: center; background: #bd9d5e; bottom: 22px; box-shadow: 0 10px 30px rgba(0,0,0,.25); color: var(--ink); display: flex; gap: 8px; padding: 13px 18px; position: fixed; right: 22px; z-index: 30; }
.floating-whatsapp svg { fill: none; height: 17px; stroke: currentColor; width: 17px; }
.floating-whatsapp span { font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }

.modal { inset: 0; position: fixed; z-index: 100; }
.modal-backdrop { background: rgba(6,13,8,.75); border: 0; inset: 0; position: absolute; width: 100%; }
.booking-panel { background: var(--paper); bottom: 0; max-width: 720px; overflow-y: auto; padding: 65px clamp(28px, 5vw, 72px); position: absolute; right: 0; top: 0; width: 100%; }
.close-modal { background: none; border: 1px solid var(--line); border-radius: 50%; color: var(--ink); font-family: var(--font-display); font-size: 27px; height: 42px; position: absolute; right: 28px; top: 26px; width: 42px; }
.booking-panel h2 { font-size: 65px; margin-bottom: 25px; }
.booking-panel form { display: flex; flex-direction: column; gap: 17px; }
.booking-panel label { color: #777766; display: flex; flex-direction: column; font-size: 8px; font-weight: 700; gap: 7px; letter-spacing: .13em; text-transform: uppercase; }
.booking-panel input, .booking-panel textarea, .booking-panel select { background: transparent; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; color: var(--ink); font-size: 14px; outline: 0; padding: 11px 2px; text-transform: none; }
.booking-panel input:focus, .booking-panel textarea:focus, .booking-panel select:focus { border-color: var(--sand); }
.form-row { display: grid; gap: 25px; grid-template-columns: repeat(2, 1fr); }
.form-row.triple { grid-template-columns: 1fr 1fr 2fr; }
.form-submit { margin-top: 15px; width: max-content; }
.form-error { color: #a03b32; font-size: 11px; }
.success-message { padding-top: 50px; text-align: center; }
.success-message > span { align-items: center; border: 1px solid var(--sand); border-radius: 50%; color: #7c6a42; display: inline-flex; font-size: 30px; height: 70px; justify-content: center; width: 70px; }
.success-message h3 { font-size: 50px; margin: 25px 0 8px; }
.success-message p { color: #667067; line-height: 1.7; margin: 0 auto 30px; max-width: 400px; }

.hero-media { background: #000; inset: 0; overflow: hidden; position: absolute; }
.media-slide { inset: 0; opacity: 0; position: absolute; transform: scale(1.07); transition: opacity 1.35s cubic-bezier(.4,0,.2,1), transform 8s cubic-bezier(.2,.7,.2,1); }
.media-slide.active { opacity: 1; transform: scale(1); z-index: 1; }
.media-slide img, .media-slide video { height: 100%; object-fit: cover; object-position: var(--media-position, center center); opacity: var(--media-opacity,1); transition: opacity .3s ease; width: 100%; }
.hero-media .media-slide::after { background: linear-gradient(90deg,rgba(0,0,0,.96) 0%,rgba(0,0,0,.7) 35%,rgba(0,0,0,.28) 65%,transparent 90%),linear-gradient(0deg,rgba(0,0,0,.78) 0%,rgba(0,0,0,.2) 38%,transparent 62%); content: ""; inset: 0; opacity: .78; pointer-events: none; position: absolute; z-index: 2; }
.slider-arrows { align-items: center; bottom: 115px; display: flex; gap: 12px; position: absolute; right: 4.5vw; z-index: 5; }
.slider-arrows button, .experience-arrows button { align-items: center; background: rgba(47,34,40,.42); border: 1px solid rgba(255,255,255,.46); border-radius: 50%; color: white; display: flex; font-family: var(--font-display); font-size: 29px; height: 52px; justify-content: center; line-height: 1; transition: background .25s ease, transform .25s ease; width: 52px; }
.slider-arrows button:hover, .experience-arrows button:hover { background: var(--sand); transform: translateY(-3px); }
.slider-arrows span { color: rgba(255,255,255,.76); font-size: 10px; letter-spacing: .17em; min-width: 58px; text-align: center; }
.slider-dots { bottom: 52px; display: flex; gap: 9px; left: 50%; position: absolute; transform: translateX(-50%); z-index: 5; }
.slider-dots button, .experience-dots button { background: rgba(255,255,255,.32); border: 0; height: 2px; padding: 0; transition: background .25s ease, width .3s ease; width: 28px; }
.slider-dots button.active, .experience-dots button.active { background: var(--sand); width: 54px; }

.experience-showcase { background: var(--deep); color: white; padding: 120px 8vw 130px; }
.experience-showcase-heading { align-items: end; display: flex; justify-content: space-between; margin-bottom: 58px; }
.experience-showcase-heading h2 { font-size: clamp(58px,6vw,92px); line-height: .88; margin: 0; }
.experience-showcase-heading h2 em { color: var(--sand-light); }
.experience-showcase-heading > p { color: rgba(255,255,255,.62); font-family: var(--font-display); font-size: 19px; line-height: 1.65; margin: 0 0 5px 5vw; max-width: 390px; }
.experience-media-grid { display: grid; gap: 16px; grid-auto-rows: 285px; grid-template-columns: repeat(12,1fr); }
.experience-grid-item { background: #000; box-shadow: 0 24px 55px rgba(0,0,0,.18); grid-column: span 4; margin: 0; overflow: hidden; position: relative; }
.experience-grid-item-1 { grid-column: span 7; grid-row: span 2; }
.experience-grid-item-2, .experience-grid-item-3 { grid-column: span 5; }
.experience-grid-item::after { background: linear-gradient(0deg,rgba(0,0,0,.9),transparent 68%); content: ""; inset: 0; pointer-events: none; position: absolute; }
.experience-grid-item img, .experience-grid-item video { height: 100%; object-fit: cover; object-position: var(--media-position,center center); opacity: var(--media-opacity,1); transition: opacity .3s ease, transform .85s cubic-bezier(.22,1,.36,1); width: 100%; }
.experience-grid-item:hover img { transform: scale(1.04); }
.experience-grid-item figcaption { bottom: 22px; left: 24px; position: absolute; right: 24px; z-index: 2; }
.experience-grid-item figcaption > span { color: var(--sand-light); font-size: 10px; font-weight: 700; letter-spacing: .18em; }
.experience-grid-item h3 { font-size: clamp(27px,2.5vw,42px); line-height: .95; margin: 9px 0 0; }
.experience-grid-item figcaption p { color: rgba(255,255,255,.72); display: none; font-size: 14px; line-height: 1.6; margin: 12px 0 0; max-width: 560px; }
.experience-grid-item-1 figcaption { bottom: 35px; left: 36px; right: 36px; }
.experience-grid-item-1 h3 { font-size: clamp(43px,4.5vw,70px); }
.experience-grid-item-1 figcaption p { display: block; }

.whatsapp-action { background: #25d366; border: 0; color: #102e1c; font-size: 11px; font-weight: 800; letter-spacing: .12em; min-height: 56px; padding: 18px 24px; text-transform: uppercase; }
.whatsapp-widget { bottom: 22px; position: fixed; right: 22px; z-index: 40; }
.floating-whatsapp { align-items: center; background: #25d366; border: 0; border-radius: 999px; bottom: auto; box-shadow: 0 14px 38px rgba(10,62,31,.34); color: #102e1c; display: flex; gap: 9px; margin-left: auto; padding: 15px 20px; position: relative; right: auto; }
.floating-whatsapp span { font-size: 11px; font-weight: 800; }
.whatsapp-popup { background: #fffaf3; border: 1px solid rgba(57,43,47,.13); bottom: calc(100% + 15px); box-shadow: 0 28px 75px rgba(32,20,25,.27); opacity: 0; overflow: hidden; position: absolute; right: 0; transform: translateY(16px) scale(.97); transform-origin: bottom right; transition: opacity .28s ease, transform .35s cubic-bezier(.22,1,.36,1), visibility .28s; visibility: hidden; width: min(370px,calc(100vw - 32px)); }
.whatsapp-widget.open .whatsapp-popup { opacity: 1; transform: none; visibility: visible; }
.whatsapp-popup-head { align-items: center; background: #075e54; color: white; display: flex; justify-content: space-between; padding: 18px 20px; }
.whatsapp-popup-head div { display: flex; flex-direction: column; }
.whatsapp-popup-head strong { font-family: var(--font-display); font-size: 21px; }
.whatsapp-popup-head small { color: rgba(255,255,255,.7); font-size: 10px; }
.whatsapp-popup-head button { background: none; border: 0; color: white; font-size: 28px; }
.whatsapp-popup-copy { padding: 22px 22px 4px; }
.whatsapp-popup-copy h3 { font-size: 32px; margin: 0 0 4px; }
.whatsapp-popup-copy p { color: #705d62; font-size: 13px; }
.whatsapp-popup form { display: grid; gap: 12px; padding: 12px 22px; }
.whatsapp-popup label { color: #69595e; display: grid; font-size: 10px; font-weight: 750; gap: 5px; letter-spacing: .09em; text-transform: uppercase; }
.whatsapp-popup input { background: white; border: 1px solid rgba(57,43,47,.18); font-size: 15px; min-height: 45px; padding: 9px 11px; }
.whatsapp-popup input:focus { border-color: #25d366; outline: 3px solid rgba(37,211,102,.12); }
.whatsapp-start { background: #25d366; border: 0; color: #102e1c; font-size: 11px; font-weight: 800; letter-spacing: .1em; min-height: 50px; text-transform: uppercase; }
.whatsapp-privacy { color: #89787d; font-size: 10px; line-height: 1.5; padding: 0 22px 18px; }

footer { background: #251a1f; }
footer h3 { color: var(--sand-light); font-size: 12px; }
footer button:not(.outline-button), footer a, footer span { font-size: 13px; }
.footer-links button, .footer-links a { align-items: center; display: flex; gap: 10px; }
.footer-links button::before, .footer-links a::before { align-items: center; border: 1px solid rgba(216,178,140,.5); border-radius: 50%; color: var(--sand-light); content: "✓"; display: inline-flex; flex: 0 0 20px; font-size: 8px; height: 20px; justify-content: center; width: 20px; }
.whatsapp-footer-link { color: #69e99b; }
.whatsapp-footer-link::before { border-color: #25d366 !important; color: #25d366 !important; }
.intro-copy p + p, .room-description, .meal-journey p, .experience-cards p, .values-grid p, .about-story > div:last-child p + p { font-size: 15px; }
.section-heading > p, .wildlife-copy > p:not(.eyebrow), .dining-copy > p:not(.eyebrow), .editorial-feature p:not(.eyebrow), .accommodation-copy > p:not(.eyebrow), .restaurant-story p:not(.eyebrow), .contact-aside > p:not(.eyebrow) { font-size: 17px; }
.page-intro > p:last-child { font-size: 21px; }

.page-hero { color: white; height: 100svh; min-height: 720px; overflow: hidden; position: relative; }
.page-hero::after { border: 1px solid rgba(255,255,255,.2); border-radius: 50%; content: ""; height: min(48vw,690px); position: absolute; right: -15vw; top: 15%; width: min(48vw,690px); z-index: 2; }
.page-hero-content { bottom: 13vh; left: 8vw; max-width: 980px; position: absolute; z-index: 3; }
.page-hero h1 { font-size: clamp(65px,7.2vw,110px); letter-spacing: -.045em; line-height: .82; margin: 0 0 28px; }
.page-hero-content > p:last-child { color: rgba(255,255,255,.82); font-family: var(--font-display); font-size: clamp(18px,1.5vw,22px); line-height: 1.55; max-width: 650px; }
.page-hero-scroll { align-items: center; bottom: 42px; color: rgba(255,255,255,.68); display: flex; font-size: 10px; gap: 13px; letter-spacing: .17em; position: absolute; right: 4.5vw; text-transform: uppercase; z-index: 3; }
.page-hero-scroll span { background: var(--sand); height: 34px; width: 1px; }
.page-hero .slider-arrows { bottom: 108px; }
.page-hero .slider-dots { bottom: 46px; }

.editorial-feature { align-items: stretch; background: #eee0cd; display: grid; grid-template-columns: 58% 42%; min-height: 720px; }
.editorial-feature.reverse { grid-template-columns: 42% 58%; }
.editorial-feature.reverse .editorial-image { --image-fade-bg: #000; grid-column: 2; grid-row: 1; }
.editorial-feature.reverse > div:last-child { grid-column: 1; grid-row: 1; }
.editorial-feature.dark-feature { background: var(--deep); color: white; }
.editorial-image { --image-fade-bg: #000; background-color: #000; background-position: center; background-size: cover; position: relative; }
.editorial-image::after { background: var(--image-fade-bg); content: ""; inset: 0; opacity: calc(1 - var(--media-opacity,1)); pointer-events: none; position: absolute; }
.editorial-feature > div:last-child { align-self: center; padding: 80px 6vw; }
.editorial-feature h2 { font-size: clamp(58px,5.5vw,83px); line-height: .9; margin: 0 0 32px; }
.editorial-feature p:not(.eyebrow) { color: #705d62; font-size: 15px; line-height: 1.8; margin-bottom: 35px; }
.dark-feature p:not(.eyebrow) { color: rgba(255,255,255,.68); }
.home-gallery-grid { display: grid; gap: 18px; grid-template-columns: 1.45fr 1fr 1fr; }
.home-gallery-grid figure { background: #000; height: 480px; margin: 0; overflow: hidden; position: relative; }
.home-gallery-grid figure:nth-child(2) { margin-top: 0; }
.home-gallery-grid img { height: 100%; object-fit: cover; opacity: var(--media-opacity,1); transition: opacity .3s ease, transform .7s ease; }
.home-gallery-grid figure:hover img { transform: scale(1.04); }
.home-gallery-grid figcaption { background: rgba(47,34,40,.84); bottom: 0; color: var(--sand-light); display: flex; flex-direction: column; font-size: 9px; left: 0; letter-spacing: .14em; padding: 17px 20px; position: absolute; right: 0; text-transform: uppercase; }
.home-gallery-grid figcaption strong { color: white; font-family: var(--font-display); font-size: 21px; font-weight: 500; letter-spacing: 0; margin-top: 5px; text-transform: none; }

.page-intro { align-items: end; display: grid; gap: 8vw; grid-template-columns: 1.2fr 1fr; }
.page-intro .eyebrow { grid-column: 1 / -1; margin-bottom: -30px; }
.page-intro h2 { font-size: clamp(58px,6vw,90px); line-height: .92; margin: 0; }
.page-intro > p:last-child { color: #705d62; font-family: var(--font-display); font-size: 20px; line-height: 1.7; }
.page-intro.compact { display: block; padding: 0 0 55px; }
.page-intro.compact .eyebrow { margin-bottom: 25px; }
.accommodation-list { background: var(--cream); padding-bottom: 150px; padding-top: 150px; }
.accommodation-row { align-items: center; display: grid; gap: 7vw; grid-template-columns: 55% 38%; margin-bottom: 130px; }
.accommodation-row:last-child { margin-bottom: 0; }
.accommodation-row.reverse { grid-template-columns: 38% 55%; }
.accommodation-row.reverse .accommodation-photo, .accommodation-row.reverse .accommodation-carousel { grid-column: 2; grid-row: 1; }
.accommodation-row.reverse .accommodation-copy { grid-column: 1; grid-row: 1; }
.accommodation-photo { height: 640px; position: relative; }
.accommodation-photo::before { border: 1px solid var(--moss); content: ""; inset: -18px 18px 18px -18px; position: absolute; }
.accommodation-photo img { height: 100%; object-fit: cover; position: relative; }
.accommodation-carousel { min-width: 0; position: relative; }
.accommodation-slides { background: #000; box-shadow: 0 30px 70px rgba(57,43,47,.14); height: 640px; overflow: hidden; position: relative; }
.accommodation-slide { margin: 0; }
.accommodation-slide img { height: 100%; object-fit: cover; object-position: var(--media-position,center center); width: 100%; }
.accommodation-slide::after { background: linear-gradient(0deg,rgba(0,0,0,.62),rgba(0,0,0,.08) 34%,transparent 58%); content: ""; inset: 0; pointer-events: none; position: absolute; z-index: 1; }
.accommodation-slide figcaption { background: rgba(47,34,40,.72); bottom: 0; color: white; font-size: 10px; left: 0; letter-spacing: .1em; padding: 13px 18px; position: absolute; text-transform: uppercase; z-index: 2; }
.accommodation-arrows { align-items: center; bottom: 28px; display: flex; gap: 10px; position: absolute; right: 22px; z-index: 5; }
.accommodation-arrows button { align-items: center; backdrop-filter: blur(7px); background: rgba(47,34,40,.46); border: 1px solid rgba(255,255,255,.55); border-radius: 50%; color: white; display: flex; font-family: var(--font-display); font-size: 26px; height: 48px; justify-content: center; line-height: 1; transition: background .25s ease, transform .25s ease; width: 48px; }
.accommodation-arrows button:hover { background: var(--sand); transform: translateY(-2px); }
.accommodation-arrows span { color: white; font-size: 10px; letter-spacing: .12em; min-width: 52px; text-align: center; }
.accommodation-thumbs { display: grid; gap: 8px; grid-template-columns: repeat(5,1fr); margin-top: 12px; }
.accommodation-thumbs button { background: transparent; border: 2px solid transparent; height: 68px; opacity: .58; overflow: hidden; padding: 0; transition: border-color .25s ease, opacity .25s ease; }
.accommodation-thumbs button.active { border-color: var(--sand); opacity: 1; }
.accommodation-thumbs img { height: 100%; object-fit: cover; width: 100%; }
.accommodation-copy > span { color: var(--moss); font-family: var(--font-display); font-size: 18px; }
.accommodation-copy h2 { font-size: clamp(52px,5vw,78px); line-height: .92; margin: 12px 0 25px; }
.accommodation-copy > p:not(.eyebrow) { color: #705d62; line-height: 1.8; }
.accommodation-copy ul { border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); list-style: none; margin: 28px 0; padding: 20px 0; }
.accommodation-copy li { color: #705d62; font-size: 11px; letter-spacing: .08em; padding: 6px 0; text-transform: uppercase; }
.included-section { background: var(--deep); color: white; display: grid; gap: 7vw; grid-template-columns: .8fr 1.2fr; }
.included-section h2 { font-size: clamp(50px,5vw,75px); line-height: .93; }
.included-grid { display: grid; grid-template-columns: repeat(2,1fr); }
.included-grid article { border-bottom: 1px solid rgba(255,255,255,.14); padding: 25px; }
.included-grid article:nth-child(odd) { border-right: 1px solid rgba(255,255,255,.14); }
.included-grid span { color: var(--sand); font-size: 10px; }
.included-grid h3 { font-family: var(--font-sans); font-size: 12px; letter-spacing: .1em; margin: 13px 0 0; text-transform: uppercase; }
.meal-journey { background: var(--cream); display: grid; grid-template-columns: repeat(4,1fr); }
.meal-journey article { border-right: 1px solid var(--line); padding: 20px 35px 50px; }
.meal-journey > article > span { color: var(--moss); font-family: var(--font-display); font-size: 19px; }
.meal-journey small { color: var(--moss); display: block; font-size: 10px; letter-spacing: .14em; margin-top: 45px; text-transform: uppercase; }
.meal-journey h2 { font-size: 43px; margin: 10px 0 20px; }
.meal-journey p { color: #705d62; font-size: 14px; line-height: 1.8; }
.restaurant-story { background: var(--deep); color: white; display: grid; grid-template-columns: 42% 58%; }
.restaurant-story > div { align-self: center; padding: 80px 6vw; }
.restaurant-story h2 { font-size: 60px; line-height: .95; }
.restaurant-story p:not(.eyebrow) { color: rgba(255,255,255,.66); line-height: 1.8; }
.restaurant-story img { height: 670px; object-fit: cover; }
.experience-cards { background: var(--cream); display: grid; gap: 1px; grid-template-columns: repeat(3,1fr); }
.experience-cards article { background: var(--paper); padding: 50px; }
.experience-cards article > span { color: var(--moss); font-family: var(--font-display); font-size: 18px; }
.experience-cards h2 { font-size: 43px; line-height: 1; margin: 65px 0 25px; }
.experience-cards p { color: #705d62; font-size: 14px; line-height: 1.9; }
.ethics-section { align-items: center; background: var(--deep); color: white; display: grid; gap: 10vw; grid-template-columns: 1fr 1fr; }
.ethics-section h2 { font-size: clamp(55px,5.8vw,85px); line-height: .88; }
.ethics-section > p { color: rgba(255,255,255,.67); font-family: var(--font-display); font-size: 21px; line-height: 1.7; }
.gallery-page { background: var(--deep); color: white; }
.gallery-page .page-intro h2 { color: white; }
.page-filters { justify-content: flex-start; margin-bottom: 35px; }
.gallery-page-grid { min-height: 430px; }
.about-story { display: grid; gap: 10vw; grid-template-columns: 1fr 1fr; }
.about-story h2 { font-size: clamp(55px,5vw,78px); line-height: .95; }
.about-story > div:last-child p { color: #705d62; font-family: var(--font-display); font-size: 20px; line-height: 1.65; }
.about-story > div:last-child p + p { font-family: var(--font-sans); font-size: 14px; }
.values-grid { background: var(--cream); display: grid; grid-template-columns: repeat(4,1fr); }
.values-grid article { border-right: 1px solid var(--line); padding: 40px; }
.values-grid span { color: var(--moss); }
.values-grid h2 { font-size: 39px; margin: 45px 0 18px; }
.values-grid p { color: #705d62; font-size: 14px; line-height: 1.8; }
.location-page { background: var(--cream); display: grid; grid-template-columns: 56% 44%; min-height: 700px; }
.contact-layout { align-items: start; display: grid; gap: 8vw; grid-template-columns: .8fr 1.2fr; }
.contact-aside { position: sticky; top: 40px; }
.contact-aside h2 { font-size: clamp(55px,5vw,78px); line-height: .9; }
.contact-aside > p:not(.eyebrow) { color: #705d62; line-height: 1.8; }
.contact-aside dl { border-top: 1px solid var(--line); margin: 35px 0; }
.contact-aside dl div { border-bottom: 1px solid var(--line); padding: 18px 0; }
.contact-aside dt { color: var(--moss); font-size: 10px; letter-spacing: .13em; text-transform: uppercase; }
.contact-aside dd { font-family: var(--font-display); font-size: 18px; margin: 6px 0 0; }
.whatsapp-button { display: inline-flex; }
.booking-form-page { background: #eee0cd; box-shadow: 0 28px 70px rgba(57,43,47,.1); display: flex; flex-direction: column; gap: 22px; padding: 50px; }
.booking-form-page h2 { font-size: 65px; margin: 0 0 10px; }
.booking-form-page label { color: #705d62; display: flex; flex-direction: column; font-size: 10px; font-weight: 700; gap: 8px; letter-spacing: .12em; text-transform: uppercase; }
.booking-form-page input, .booking-form-page select, .booking-form-page textarea { background: transparent; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; color: var(--ink); font-size: 15px; outline: 0; padding: 12px 2px; text-transform: none; }
.booking-form-page input:focus, .booking-form-page select:focus, .booking-form-page textarea:focus { border-color: var(--sand); }

.closing-cta { background-color: #000; background-image: linear-gradient(110deg,rgba(0,0,0,.94),rgba(0,0,0,.72)),var(--cta-image); background-position: center,var(--cta-position,center center); background-size: cover; overflow: hidden; padding: 145px 8vw 125px; position: relative; }
.closing-cta::before { background: #000; content: ""; inset: 0; opacity: calc(1 - var(--media-opacity,1)); pointer-events: none; position: absolute; z-index: 1; }
.closing-cta > .cta-inner { display: block; margin: auto; max-width: 900px; position: relative; z-index: 2; }
.cta-orbit { border: 1px solid rgba(216,178,140,.28); border-radius: 50%; height: min(56vw,760px); left: 50%; position: absolute; top: 50%; transform: translate(-50%,-50%); width: min(56vw,760px); z-index: 2; }
.cta-inner > p:not(.eyebrow) { color: rgba(255,255,255,.74); font-family: var(--font-display); font-size: 20px; line-height: 1.7; margin: 0 auto 42px; max-width: 610px; }
.cta-actions { align-items: center; display: flex; gap: 16px; justify-content: center; }
.cta-secondary { align-items: center; border: 1px solid rgba(255,255,255,.5); color: white; display: inline-flex; font-size: 11px; font-weight: 700; letter-spacing: .14em; min-height: 58px; padding: 0 25px; text-transform: uppercase; }
.cta-assurances { align-items: center; border-top: 1px solid rgba(255,255,255,.16); display: flex; gap: 28px; justify-content: center; margin-top: 52px; padding-top: 25px; }
.cta-assurances span { align-items: center; color: rgba(255,255,255,.65); display: inline-flex; font-size: 10px; gap: 9px; letter-spacing: .13em; text-transform: uppercase; }
.cta-assurances span::before { align-items: center; border: 1px solid var(--sand); border-radius: 50%; color: var(--sand-light); content: "✓"; display: inline-flex; height: 19px; justify-content: center; width: 19px; }

.site-footer { background: #251a1f; color: rgba(255,255,255,.68); gap: clamp(35px,5vw,90px); grid-template-columns: 1.55fr 1fr 1.15fr 1.2fr; padding: 95px 6vw 32px; }
.footer-column { display: flex; flex-direction: column; gap: 13px; }
.footer-brand p { font-size: 19px; line-height: 1.65; margin: 28px 0 24px; }
.footer-call { border-left: 2px solid var(--sand); color: white; font-family: var(--font-display); font-size: 21px; padding-left: 16px; }
.footer-call small { color: var(--sand-light); display: block; font-family: var(--font-sans); font-size: 9px; letter-spacing: .16em; margin-bottom: 6px; text-transform: uppercase; }
.footer-bottom { margin-top: 35px; padding-top: 27px; }
.footer-bottom span { color: rgba(255,255,255,.46); font-size: 10px; }

/* Original uploads are never stretched or recompressed. Cover + focal position preserves aspect ratio. */
.room-slideshow { background: #000; height: 100%; overflow: hidden; position: relative; width: 100%; }
.room-slide { margin: 0; }
.room-slider-controls { align-items: center; bottom: 22px; display: flex; gap: 9px; position: absolute; right: 22px; z-index: 5; }
.room-slider-controls button { align-items: center; backdrop-filter: blur(6px); background: rgba(47,34,40,.68); border: 1px solid rgba(255,255,255,.6); border-radius: 50%; color: white; display: flex; font-family: var(--font-display); font-size: 24px; height: 42px; justify-content: center; line-height: 1; transition: background .25s ease, transform .25s ease; width: 42px; }
.room-slider-controls button:hover { background: var(--sand); transform: translateY(-2px); }
.room-slider-controls span { color: white; font-size: 9px; letter-spacing: .12em; min-width: 48px; text-align: center; text-shadow: 0 1px 8px rgba(0,0,0,.5); }
.room-image::after { pointer-events: none; z-index: 2; }
.room-image > span { z-index: 5; }
.room-image .room-slider-controls { bottom: 20px; }

.home-moments { align-items: center; background: var(--cream); display: grid; gap: 7vw; grid-template-columns: .78fr 1.22fr; }
.moments-copy h2 { font-size: clamp(55px,5.4vw,82px); line-height: .92; margin: 0 0 30px; }
.moments-copy > p:not(.eyebrow) { color: #705d62; font-family: var(--font-display); font-size: 19px; line-height: 1.65; margin-bottom: 32px; }
.moments-mosaic { display: grid; gap: 14px; grid-template-columns: 1.2fr .8fr; grid-template-rows: repeat(2,260px); }
.moments-mosaic figure { background: #000; margin: 0; overflow: hidden; position: relative; }
.moments-mosaic .moment-1 { grid-row: 1 / 3; }
.moments-mosaic img { height: 100%; object-fit: cover; opacity: var(--media-opacity,1); transition: opacity .3s ease, transform .8s ease; width: 100%; }
.moments-mosaic figure:hover img { transform: scale(1.04); }
.moments-mosaic figcaption { background: linear-gradient(90deg,rgba(0,0,0,.8),transparent); bottom: 0; color: white; font-family: var(--font-display); font-size: 20px; left: 0; padding: 25px 22px 16px; position: absolute; right: 0; }

.day-rhythm { background: var(--deep); color: white; }
.day-rhythm .section-heading h2 { color: white; }
.day-rhythm .section-heading h2 em { color: var(--sand-light); }
.day-rhythm .section-heading > p { color: rgba(255,255,255,.58); }
.rhythm-grid { border-top: 1px solid rgba(255,255,255,.16); display: grid; grid-template-columns: repeat(4,1fr); }
.rhythm-grid article { border-right: 1px solid rgba(255,255,255,.16); padding: 36px 34px 20px 0; }
.rhythm-grid article + article { padding-left: 34px; }
.rhythm-grid article:last-child { border-right: 0; }
.rhythm-grid span { color: var(--sand-light); font-size: 10px; font-weight: 700; letter-spacing: .16em; }
.rhythm-grid h3 { font-size: 39px; margin: 55px 0 17px; }
.rhythm-grid p { color: rgba(255,255,255,.57); font-size: 13px; line-height: 1.8; }

.home-location-feature { background: #000; color: white; height: min(78vw,900px); min-height: 680px; overflow: hidden; position: relative; }
.home-location-feature > img { height: 100%; object-fit: cover; opacity: var(--media-opacity,1); transition: opacity .3s ease; width: 100%; }
.home-location-shade { background: linear-gradient(90deg,rgba(0,0,0,.88),rgba(0,0,0,.22) 68%),linear-gradient(0deg,rgba(0,0,0,.38),transparent); inset: 0; position: absolute; }
.home-location-copy { left: 8vw; max-width: 720px; position: absolute; top: 50%; transform: translateY(-50%); }
.home-location-copy h2 { font-size: clamp(65px,7vw,105px); line-height: .84; margin: 0 0 32px; }
.home-location-copy > p:not(.eyebrow) { color: rgba(255,255,255,.76); font-family: var(--font-display); font-size: 20px; line-height: 1.65; max-width: 570px; }
.home-location-copy .primary-button { margin-top: 22px; }

.dining-gallery { background: var(--paper); }
.dining-gallery-grid { display: grid; gap: 18px; grid-auto-rows: 270px; grid-template-columns: repeat(12,1fr); }
.dining-gallery-item { background: #000; grid-column: span 4; margin: 0; overflow: hidden; position: relative; }
.dining-gallery-item:nth-child(1), .dining-gallery-item:nth-child(4) { grid-column: span 8; grid-row: span 2; }
.dining-gallery-item:nth-child(2), .dining-gallery-item:nth-child(3) { grid-column: span 4; }
.dining-gallery-item img { height: 100%; object-fit: cover; opacity: var(--media-opacity,1); transition: opacity .3s ease, transform .8s ease; }
.dining-gallery-item:hover img { transform: scale(1.035); }
.dining-gallery-item::after { background: linear-gradient(0deg,rgba(0,0,0,.8),transparent 60%); content: ""; inset: 0; position: absolute; }
.dining-gallery-item figcaption { bottom: 22px; color: white; display: flex; flex-direction: column; left: 24px; position: absolute; right: 24px; z-index: 2; }
.dining-gallery-item figcaption span { font-family: var(--font-display); font-size: 27px; line-height: 1; }
.dining-gallery-item figcaption small { color: rgba(255,255,255,.7); font-size: 10px; margin-top: 8px; }

@media (max-width: 1050px) {
  .site-header { grid-template-columns: 1fr auto auto; }
  .main-nav { align-items: flex-start; background: var(--deep); bottom: 0; box-shadow: 22px 0 60px rgba(28,15,21,.3); flex-direction: column; gap: 3px; height: 100dvh; justify-content: flex-start; left: 0; opacity: 1; overflow-y: auto; padding: 116px 34px 45px; pointer-events: none; position: fixed; right: auto; top: 0; transform: translateX(-100%); transition: transform .42s cubic-bezier(.22,1,.36,1), visibility .42s; visibility: hidden; width: min(390px,88vw); }
  .main-nav.open { pointer-events: auto; transform: translateX(0); visibility: visible; }
  .main-nav a { border-bottom: 1px solid rgba(255,255,255,.12); font-family: var(--font-display); font-size: 27px; letter-spacing: .02em; padding: 16px 2px; text-transform: none; width: 100%; }
  .main-nav a::after { margin-top: 10px; width: 42px; }
  .menu-button { background: transparent; border: 0; display: flex; flex-direction: column; gap: 7px; margin-left: 18px; padding: 12px; position: relative; z-index: 2; }
  .menu-button span { background: white; display: block; height: 1px; transition: transform .3s ease; width: 26px; }
  body.menu-open { overflow: hidden; }
  body.menu-open::after { background: rgba(32,20,25,.58); content: ""; inset: 0; position: fixed; z-index: 19; }
  body.menu-open .site-header { z-index: 20; }
  body.menu-open .menu-button span:first-child { transform: translateY(4px) rotate(45deg); }
  body.menu-open .menu-button span:last-child { transform: translateY(-4px) rotate(-45deg); }
  .header-book { position: relative; z-index: 2; }
  .intro { grid-template-columns: 7% 55% 38%; }
  .room-image { height: 390px; }
  .wildlife-section { grid-template-columns: 52% 48%; }
  .wildlife-copy { padding: 60px 5vw; }
  .site-footer { gap: 50px; grid-template-columns: repeat(2,1fr); }
  .footer-bottom { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
  .site-header { height: 78px; padding: 0 20px; }
  .brand strong { font-size: 17px; }
  .brand small { font-size: 8px; }
  .leaf-mark { transform: scale(.8); transform-origin: left center; width: 30px; }
  .header-book { display: none; }
  .hero { min-height: 760px; }
  .home-hero { height: 100svh; }
  .hero-content { left: 24px; right: 24px; top: 45%; }
  .hero h1 { font-size: 69px; line-height: .85; }
  .hero-media .media-slide::after { background: linear-gradient(90deg,rgba(0,0,0,.94),rgba(0,0,0,.55) 68%,rgba(0,0,0,.16)),linear-gradient(0deg,rgba(0,0,0,.82),transparent 58%); opacity: .82; }
  .hero-copy { font-size: 17px; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 22px; }
  .hero-meta { bottom: 35px; left: 24px; right: 24px; }
  .hero-meta .distance { display: none; }
  .stock-note { display: none; }
  .section-pad { padding: 82px 24px; }
  .intro { display: block; }
  .section-number { margin-bottom: 30px; }
  .intro-heading { padding: 0; }
  .intro-copy { border-left: 0; border-top: 1px solid var(--line); margin-top: 35px; padding: 30px 0 0; }
  .signature-strip { grid-template-columns: repeat(2, 1fr); padding: 20px 14px; }
  .signature-strip div { justify-content: flex-start; padding: 15px; }
  .signature-strip div:nth-child(2) { border: 0; }
  .signature-strip strong { font-size: 35px; }
  .section-heading { align-items: flex-start; flex-direction: column; gap: 25px; margin-bottom: 40px; }
  .room-grid { grid-template-columns: 1fr; }
  .room-card:nth-child(2) { margin-top: 0; }
  .room-image { height: 360px; }
  .room-content { padding: 30px 24px 35px; }
  .room-content h3 { font-size: 42px; }
  .room-content ul { flex-direction: column; gap: 8px; }
  .room-content li::after { display: none; }
  .wildlife-section { display: block; }
  .wildlife-image { min-height: 460px; }
  .wildlife-image::after { background: linear-gradient(0deg, var(--deep), transparent 35%); }
  .wildlife-copy { padding: 65px 24px 80px; }
  .dining-section { display: flex; flex-direction: column; gap: 70px; }
  .dining-image { height: 500px; width: 100%; }
  .meal-list div { grid-template-columns: 35px 1fr; }
  .meal-list small { display: none; }
  .gallery-filters { justify-content: flex-start; }
  .gallery-grid { display: grid; grid-auto-rows: 260px; grid-template-columns: 1fr; }
  .gallery-item, .gallery-item-1, .gallery-item-2, .gallery-item-3 { grid-column: auto; grid-row: auto; }
  .location-section { display: flex; flex-direction: column; }
  .map-pattern { min-height: 420px; }
  .location-copy { padding: 70px 24px; }
  .closing-cta { padding: 100px 24px; }
  .closing-cta > div { flex-direction: column; }
  .experience-showcase { padding: 85px 24px 95px; }
  .experience-showcase-heading { display: block; margin-bottom: 35px; }
  .experience-showcase-heading h2 { font-size: 55px; }
  .experience-showcase-heading > p { margin: 25px 0 0; }
  .experience-media-grid { grid-auto-rows: 320px; grid-template-columns: 1fr; }
  .experience-grid-item, .experience-grid-item-1, .experience-grid-item-2, .experience-grid-item-3 { grid-column: auto; grid-row: auto; }
  .experience-grid-item-1 { min-height: 470px; }
  .experience-grid-item figcaption, .experience-grid-item-1 figcaption { bottom: 24px; left: 24px; right: 24px; }
  .experience-grid-item h3, .experience-grid-item-1 h3 { font-size: 39px; }
  .experience-grid-item figcaption p { display: none; }
  .experience-grid-item-1 figcaption p { display: block; font-size: 14px; }
  .page-hero { height: 100svh; min-height: 680px; }
  .page-hero-content { bottom: 14vh; left: 24px; right: 24px; }
  .page-hero h1 { font-size: clamp(54px,15vw,68px); }
  .page-hero-scroll { bottom: 30px; left: 24px; right: auto; }
  .page-hero .slider-arrows { bottom: 120px; right: 24px; }
  .page-intro, .included-section, .about-story, .ethics-section, .contact-layout { display: block; }
  .page-intro .eyebrow { margin-bottom: 25px; }
  .page-intro h2 { margin-bottom: 30px; }
  .editorial-feature, .editorial-feature.reverse { display: flex; flex-direction: column; min-height: 0; }
  .editorial-image, .editorial-feature.reverse .editorial-image { min-height: 470px; order: 0; }
  .editorial-feature > div:last-child, .editorial-feature.reverse > div:last-child { padding: 70px 24px; }
  .home-gallery-grid { grid-template-columns: 1fr; }
  .home-gallery-grid figure, .home-gallery-grid figure:nth-child(2) { height: 370px; margin: 0; }
  .accommodation-list { padding-bottom: 90px; padding-top: 90px; }
  .accommodation-row, .accommodation-row.reverse { display: flex; flex-direction: column; gap: 45px; margin-bottom: 90px; }
  .accommodation-photo, .accommodation-carousel { width: 100%; }
  .accommodation-photo, .accommodation-slides { height: 470px; }
  .accommodation-thumbs { grid-template-columns: repeat(4,1fr); }
  .meal-journey, .experience-cards, .values-grid { grid-template-columns: 1fr; }
  .meal-journey article, .experience-cards article, .values-grid article { border-bottom: 1px solid var(--line); border-right: 0; }
  .restaurant-story { display: flex; flex-direction: column; }
  .restaurant-story > div { padding: 70px 24px; }
  .restaurant-story img { height: 480px; }
  .ethics-section > p, .about-story > div:last-child { margin-top: 45px; }
  .location-page { display: flex; flex-direction: column; }
  .contact-aside { margin-bottom: 60px; position: static; }
  .booking-form-page { padding: 30px 24px; }
  .cta-actions, .cta-assurances { flex-direction: column; }
  .site-footer { grid-template-columns: 1fr 1fr; padding: 72px 24px 95px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-bottom { align-items: flex-start; flex-direction: column; gap: 10px; }
  .floating-whatsapp { min-height: 52px; }
  .whatsapp-widget { bottom: 16px; right: 16px; }
  .booking-panel h2 { font-size: 50px; }
  .form-row, .form-row.triple { grid-template-columns: 1fr; }
}

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

@media (prefers-reduced-motion: no-preference) {
  .reveal-ready { opacity: 0; transform: translateY(42px); transition: opacity .85s ease var(--reveal-delay,0ms), transform .85s cubic-bezier(.2,.65,.25,1) var(--reveal-delay,0ms); }
  .reveal-ready.revealed { opacity: 1; transform: translateY(0); }
  .page-hero-content, .hero-content { animation: heroReveal 1s .15s both cubic-bezier(.2,.65,.25,1); }
  @keyframes heroReveal { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: translateY(0); } }
}

@media (max-width: 760px) {
  .dining-gallery-grid { display: grid; grid-auto-rows: 340px; grid-template-columns: 1fr; }
  .dining-gallery-item, .dining-gallery-item:nth-child(n) { grid-column: 1; grid-row: auto; }
  .home-moments { display: block; }
  .moments-copy { margin-bottom: 55px; }
  .moments-mosaic { grid-template-columns: 1fr 1fr; grid-template-rows: 370px 240px; }
  .moments-mosaic .moment-1 { grid-column: 1 / -1; grid-row: auto; }
  .rhythm-grid { grid-template-columns: 1fr 1fr; }
  .rhythm-grid article:nth-child(2) { border-right: 0; }
  .rhythm-grid article:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.16); }
  .home-location-copy { left: 24px; right: 24px; }
  .room-slider-controls { bottom: 18px; right: 16px; }
  .room-slider-controls button { height: 38px; width: 38px; }
  .room-image > span { left: 18px; }
}
