:root{--ink:#06242c;--cream:#f3efe6;--white:#fff;--lime:#b8ff3d;--blue:#0783c1;--muted:#6c7b7e;--line:#d8d2c6}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:Arial,Helvetica,sans-serif}
.site-header{height:96px;padding:0 clamp(24px,5vw,88px);display:flex;align-items:center;justify-content:space-between;border-top:4px solid var(--blue);border-bottom:1px solid var(--line);background:rgba(243,239,230,.98);position:sticky;top:0;z-index:50;backdrop-filter:blur(14px)}
.brand{display:flex;align-items:center;gap:15px;color:inherit;text-decoration:none}
.brand img{width:50px;height:50px;border-radius:50%;object-fit:cover}
.brand span{display:grid;gap:5px}
.brand b{font-family:Georgia,serif;font-size:17px;letter-spacing:.2em}
.brand small{font-size:10px;letter-spacing:.3em;color:var(--muted)}
nav{display:flex;align-items:center;gap:26px}
nav a{font-size:14px;text-decoration:none;color:var(--ink);position:relative}
nav a.active:after{content:"";position:absolute;left:0;right:0;bottom:-10px;height:2px;background:var(--blue)}
.nav-cta{border:1px solid var(--ink);border-radius:99px;padding:14px 19px}
.menu-toggle{display:none}
.hero{min-height:720px;padding:90px clamp(24px,6vw,110px);display:grid;grid-template-columns:.85fr 1.15fr;gap:75px;align-items:center}
.eyebrow{font-size:11px;letter-spacing:.28em;font-weight:700;color:var(--blue)}
.eyebrow.light{color:#d8ff76}
.hero h1,.featured-video h2,.gallery-heading h2,.booking-cta h2{font-family:Georgia,serif;font-weight:400;letter-spacing:-.04em}
.hero h1{font-size:clamp(58px,7.2vw,104px);line-height:.93;margin:25px 0}
.hero h1 em{font-weight:400}
.hero-copy p{font-size:18px;line-height:1.7;color:var(--muted);max-width:510px}
.text-link{display:inline-block;margin-top:18px;color:var(--ink);font-size:14px;font-weight:700;text-underline-offset:6px}
.hero-image{margin:0;position:relative}
.hero-image img{width:100%;height:600px;object-fit:cover;border-radius:240px 240px 24px 24px}
.hero-image figcaption{position:absolute;right:25px;bottom:25px;background:#fff;padding:16px 20px;border-radius:16px;display:grid;gap:5px;font-family:Georgia,serif;font-size:18px}
.hero-image figcaption span{font:700 9px Arial;letter-spacing:.2em;color:var(--blue)}
.story-section{padding:120px clamp(24px,6vw,110px);background:#fff;display:grid;grid-template-columns:.75fr 1.05fr;gap:40px 80px;align-items:start;scroll-margin-top:110px}
.story-intro{position:sticky;top:135px}
.story-intro h2{font-family:Georgia,serif;font-size:clamp(48px,5.8vw,80px);font-weight:400;letter-spacing:-.04em;line-height:.98;margin:24px 0}
.story-intro h2 em{font-weight:400}
.story-body{font-size:17px;line-height:1.82;color:var(--muted)}
.story-body p{margin:0 0 24px}
.story-body .story-lead{font-family:Georgia,serif;font-size:28px;line-height:1.45;color:var(--ink)}
.story-body blockquote{margin:42px 0;padding:10px 0 10px 28px;border-left:3px solid var(--lime);font-family:Georgia,serif;font-size:32px;line-height:1.35;color:var(--ink)}
.story-photo{grid-column:1/-1;margin:45px 0 0;position:relative}
.story-photo img{width:100%;height:min(65vw,650px);object-fit:cover;border-radius:26px}
.story-photo figcaption{position:absolute;right:22px;bottom:22px;margin:0;padding:14px 18px;border-radius:12px;background:#fff;color:var(--ink);font-family:Georgia,serif}
.featured-video{background:var(--ink);color:#fff;padding:100px clamp(24px,6vw,110px);display:grid;grid-template-columns:.65fr 1.35fr;gap:75px;align-items:center}
.featured-video h2{font-size:clamp(50px,6vw,82px);line-height:1;margin:24px 0}
.featured-video p{color:#aebfc2;line-height:1.7;font-size:17px}
.video-frame{border-radius:24px;overflow:hidden;background:#001218;box-shadow:0 24px 70px rgba(0,0,0,.34)}
.video-frame video{width:100%;display:block;max-height:620px}
.gallery-section{padding:120px clamp(18px,5vw,88px)}
.gallery-heading{display:grid;grid-template-columns:1.2fr .8fr;gap:70px;align-items:end}
.gallery-heading h2{font-size:clamp(52px,7vw,94px);line-height:.95;margin:22px 0}
.gallery-heading p{color:var(--muted);font-size:17px;line-height:1.7}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin:35px 0 45px}
.filters button{border:1px solid var(--line);background:#fff;color:var(--ink);padding:12px 18px;border-radius:99px;font-weight:700;cursor:pointer}
.filters button.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-flow:dense;gap:18px}
.gallery-item{height:390px;padding:0;border:0;border-radius:20px;overflow:hidden;position:relative;cursor:pointer;background:#d7ded9;color:#fff}
.gallery-item.landscape{grid-column:span 2}
.gallery-item.portrait{grid-row:span 2;height:auto;min-height:798px}
.gallery-item.featured{height:560px}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.gallery-item:after{content:"";position:absolute;inset:55% 0 0;background:linear-gradient(transparent,rgba(2,25,31,.78))}
.gallery-item:hover img{transform:scale(1.03)}
.gallery-item span{position:absolute;left:22px;bottom:20px;z-index:1;font-weight:700;font-size:14px}
.gallery-item[hidden],.video-card[hidden]{display:none}
.video-card{grid-column:span 3;display:grid;grid-template-columns:1.35fr .65fr;background:#fff;border-radius:22px;overflow:hidden;min-height:430px}
.video-card video{width:100%;height:100%;max-height:560px;object-fit:cover;background:#001218}
.video-card div{padding:45px;display:flex;flex-direction:column;justify-content:center}
.video-card span{font-size:10px;letter-spacing:.2em;color:var(--blue);font-weight:700}
.video-card h3{font-family:Georgia,serif;font-weight:400;font-size:42px;line-height:1.05;margin:16px 0}
.video-card p{color:var(--muted);line-height:1.65}
.booking-cta{margin:0 clamp(18px,5vw,88px) 100px;border-radius:30px;padding:100px 30px;text-align:center;background:linear-gradient(rgba(3,32,40,.8),rgba(3,32,40,.8)),url('assets/photos/garden-cottages-night.webp') center/cover;color:#fff}
.booking-cta h2{font-size:clamp(52px,7vw,92px);line-height:.95;margin:25px 0}
.booking-cta p{color:#c4d0d2}
.booking-cta a{display:inline-flex;margin-top:24px;padding:18px 28px;border-radius:99px;background:var(--lime);color:var(--ink);font-weight:700;text-decoration:none}
footer{padding:34px clamp(24px,5vw,88px);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;background:#041b22;color:#fff}
footer>div:first-child{display:grid;gap:6px}
footer b{font-family:Georgia,serif;letter-spacing:.15em}
footer span{color:#8fa4a8;font-size:13px}
.footer-links{display:flex;gap:26px}
footer a{color:#fff}
footer>a{text-align:right}
dialog{width:min(1100px,95vw);height:min(800px,92vh);border:0;border-radius:22px;padding:0;background:#041b22;color:#fff;overflow:hidden}
dialog::backdrop{background:rgba(1,15,19,.88);backdrop-filter:blur(6px)}
dialog figure{width:100%;height:100%;margin:0;display:grid;place-items:center}
dialog figure img{max-width:100%;max-height:calc(100% - 56px);object-fit:contain}
dialog figcaption{height:56px;display:flex;align-items:center}
.close,.arrow{position:absolute;z-index:2;border:0;border-radius:50%;background:#fff;color:var(--ink);cursor:pointer}
.close{right:16px;top:16px;width:48px;height:48px;font-size:27px}
.arrow{top:50%;transform:translateY(-50%);width:48px;height:48px;font-size:22px}
.prev{left:16px}
.next{right:16px}
.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease}
.reveal.visible{opacity:1;transform:none}

@media(max-width:940px){.site-header{height:82px;padding:0 20px}
.brand img{width:42px;height:42px}
.brand b{font-size:14px}
.brand small{font-size:9px}
.menu-toggle{display:flex;align-items:center;gap:4px;border:0;background:transparent;color:var(--ink);font-size:14px;padding:10px}
.menu-toggle span{width:18px;height:2px;background:var(--ink);display:none}
.menu-toggle b{font-weight:600}
nav{display:none;position:absolute;top:78px;left:0;right:0;background:var(--cream);padding:22px;box-shadow:0 18px 30px rgba(6,36,44,.12);flex-direction:column;align-items:stretch;gap:0}
nav.open{display:flex}
nav a{padding:15px 4px;border-bottom:1px solid var(--line)}
nav a.active:after{display:none}
.nav-cta{text-align:center;margin-top:10px;background:var(--lime);border:0}
.hero{padding:70px 22px;display:block}
.hero-image{margin-top:55px}
.hero-image img{height:520px;border-radius:180px 180px 20px 20px}
.featured-video{display:block;padding:75px 20px}
.video-frame{margin-top:45px}
.gallery-section{padding:85px 18px}
.gallery-heading{display:block}
.gallery-heading p{margin-top:28px}
.gallery-grid{grid-template-columns:1fr 1fr;gap:12px}
.gallery-item,.gallery-item.featured{height:340px}
.gallery-item.landscape{grid-column:span 2}
.gallery-item.portrait{grid-row:auto;height:520px;min-height:0}
.video-card{grid-column:span 2;display:block}
.video-card video{height:auto}
.video-card div{padding:30px}
.booking-cta{padding:80px 20px;margin-bottom:70px}
footer{grid-template-columns:1fr auto;gap:28px}
.footer-links{display:none}
}

@media(max-width:540px){.hero h1{font-size:51px}
.hero-image img{height:440px}
.featured-video h2,.gallery-heading h2{font-size:49px}
.gallery-grid{display:block}
.gallery-item,.gallery-item.landscape,.gallery-item.portrait,.gallery-item.featured{display:block;width:100%;height:390px;margin-bottom:12px}
.video-card{margin-bottom:18px}
.video-card h3{font-size:35px}
.booking-cta h2{font-size:52px}
footer{display:flex;flex-direction:column;align-items:flex-start}
footer>a{text-align:left}
.arrow{top:auto;bottom:8px}
.prev{left:18px}
.next{right:18px}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
.reveal{opacity:1;transform:none;transition:none}
.gallery-item img{transition:none}
}
@media(max-width:940px){.story-section{display:block;padding:85px 22px}.story-intro{position:static}.story-body{margin-top:45px}.story-photo{margin-top:40px}.story-photo img{height:520px}}
@media(max-width:540px){.story-intro h2{font-size:48px}.story-body .story-lead{font-size:25px}.story-body blockquote{font-size:27px;margin:34px 0}.story-photo img{height:390px}.story-photo figcaption{left:14px;right:14px;bottom:14px;text-align:center}}
