:root{--paper:#f7f5f0;--ink:#292d2b;--sage:#718475;--beige:#e7dfd2;--line:rgba(41,45,43,.18);--serif:"Newsreader",Georgia,serif;--sans:"Manrope",Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6}img{display:block;width:100%;height:auto}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{color:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;z-index:100;left:1rem;top:1rem;padding:.65rem 1rem;background:var(--ink);color:#fff;transform:translateY(-180%)}.skip-link:focus{transform:none}.site-header{position:sticky;z-index:20;top:0;background:rgba(247,245,240,.94);border-bottom:1px solid transparent;backdrop-filter:blur(10px);transition:border-color .2s}.site-header.scrolled{border-color:var(--line)}.nav-shell{height:78px;max-width:1440px;margin:auto;padding:0 clamp(1.25rem,4vw,4.5rem);display:flex;align-items:center;justify-content:space-between}.wordmark{display:flex;align-items:baseline;gap:.65rem;font-size:1.35rem;font-weight:600;letter-spacing:.12em}.wordmark span{font-size:.62rem;font-weight:500;letter-spacing:.03em;color:var(--sage)}.main-nav{display:flex;align-items:center;gap:clamp(1.2rem,2.5vw,2.5rem);font-size:.86rem;font-weight:600}.main-nav>a:not(.button):hover{color:var(--sage)}.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:.75rem 1.35rem;border:1px solid var(--ink);background:var(--ink);color:#fff;font-size:.83rem;font-weight:600;letter-spacing:.02em;cursor:pointer;transition:background .2s,color .2s}.button:hover{background:var(--sage);border-color:var(--sage)}.button-small{min-height:42px;padding:.55rem 1rem}.menu-toggle{display:none}.hero{max-width:1440px;margin:auto;min-height:calc(100vh - 78px);padding:clamp(2.5rem,5vw,5rem) clamp(1.25rem,4vw,4.5rem);display:grid;grid-template-columns:minmax(0,.86fr) minmax(380px,1.14fr);gap:clamp(2rem,6vw,7rem);align-items:center}.hero-copy{max-width:620px}.eyebrow{margin:0 0 1rem;color:var(--sage);font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.hero h1{margin:0;font-family:var(--serif);font-size:clamp(3.2rem,6.5vw,6.6rem);font-weight:400;line-height:.92;letter-spacing:-.04em}.lead{max-width:570px;margin:2rem 0 0;font-size:clamp(1rem,1.4vw,1.22rem);color:#515754}.hero-actions{display:flex;align-items:center;gap:1.8rem;margin-top:2.3rem}.text-link{font-size:.86rem;font-weight:600;border-bottom:1px solid var(--ink)}.media-frame{position:relative;margin:0;overflow:hidden;background:var(--beige)}.media-frame img{height:100%;object-fit:cover}.hero-media{height:min(72vh,760px)}.media-frame figcaption{position:absolute;left:.75rem;bottom:.75rem;padding:.35rem .55rem;background:rgba(247,245,240,.88);font-size:.65rem;line-height:1.3;color:#59605c}.section{max-width:1440px;margin:auto;padding:clamp(5rem,9vw,9rem) clamp(1.25rem,4vw,4.5rem)}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:4rem}.section-heading h2,.about h2,.booking h2,.contact h2{margin:0;font-family:var(--serif);font-size:clamp(2.5rem,4.5vw,4.6rem);font-weight:400;line-height:1}.section-heading>p{max-width:440px;margin:0;color:#626764;font-size:.9rem}.service-grid{border-top:1px solid var(--ink)}.service-group{display:grid;grid-template-columns:28% 1fr;gap:2rem;padding:2rem 0;border-bottom:1px solid var(--line)}.service-group h3{margin:0;font-family:var(--serif);font-size:1.75rem;font-weight:400}.price-list{list-style:none;padding:0;margin:0}.price-list li{display:flex;align-items:start;justify-content:space-between;gap:1.5rem;padding:.2rem 0 1.35rem}.price-list li:last-child{padding-bottom:0}.price-list strong,.price-list span{display:block}.price-list strong{font-size:.92rem}.price-list span{margin-top:.15rem;color:#747976;font-size:.76rem}.price-list b{white-space:nowrap;font-size:.92rem;font-weight:600}.demo-note{margin:1rem 0 0;color:#737875;font-size:.7rem}.about{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(300px,1fr);gap:clamp(3rem,9vw,10rem);align-items:center;background:var(--beige);max-width:none;padding-left:max(clamp(1.25rem,4vw,4.5rem),calc((100vw - 1440px)/2 + 4.5rem));padding-right:max(clamp(1.25rem,4vw,4.5rem),calc((100vw - 1440px)/2 + 4.5rem))}.about-media{height:min(68vw,650px)}.about-copy{max-width:610px}.about-copy p:not(.eyebrow){color:#505653;font-size:clamp(.95rem,1.2vw,1.08rem)}.gallery .compact{align-items:center}.gallery-grid{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:1.2rem;align-items:center}.gallery-grid figure:nth-child(1),.gallery-grid figure:nth-child(3){aspect-ratio:1.18}.gallery-grid figure:nth-child(2){aspect-ratio:.84}.booking{max-width:1440px;margin:0 auto;padding:clamp(4rem,8vw,8rem) clamp(1.25rem,4vw,4.5rem);background:var(--sage);color:#fff;display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(3rem,8vw,8rem)}.booking .eyebrow{color:#dfe6e0}.booking-intro p:last-child{max-width:470px;color:#e2e7e3}.booking-form{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}.field{display:flex;flex-direction:column}.field-wide{grid-column:1/-1}.field label{margin-bottom:.4rem;font-size:.75rem;font-weight:600}.field label span{font-weight:400;opacity:.8}.field input,.field select{width:100%;min-height:52px;padding:.7rem .8rem;border:1px solid rgba(255,255,255,.55);border-radius:0;background:transparent;color:#fff}.field select option{color:var(--ink)}.field input::placeholder{color:rgba(255,255,255,.65)}.field input:focus,.field select:focus{outline:2px solid #fff;outline-offset:2px}.field [aria-invalid="true"]{border-color:#ffe0d2}.error{min-height:1.2rem;margin-top:.25rem;color:#fff0e8;font-size:.7rem}.form-footer{display:flex;align-items:center;gap:1rem}.button-light{background:var(--paper);color:var(--ink);border-color:var(--paper)}.form-status{margin:0;font-size:.76rem;max-width:360px}.contact{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,8vw,8rem)}.lead-small{max-width:540px;color:#626764}.contact-list{margin:0;border-top:1px solid var(--ink)}.contact-list div{display:grid;grid-template-columns:34% 1fr;padding:1.35rem 0;border-bottom:1px solid var(--line)}.contact-list dt{font-size:.75rem;font-weight:600}.contact-list dd{margin:0;font-size:.9rem}.contact-list span{color:#777c79;font-size:.72rem}.site-footer{max-width:1440px;margin:auto;padding:2.5rem clamp(1.25rem,4vw,4.5rem);border-top:1px solid var(--line);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:2rem}.site-footer nav{display:flex;gap:1.5rem;font-size:.75rem}.site-footer>p{margin:0;text-align:right;color:#777c79;font-size:.68rem}.wordmark-footer{font-size:1rem}
@media(max-width:800px){.nav-shell{height:68px}.menu-toggle{display:flex;position:relative;z-index:2;width:44px;height:44px;padding:12px;border:0;background:transparent;flex-direction:column;justify-content:center;gap:6px}.menu-toggle span:not(.sr-only){display:block;width:100%;height:1px;background:var(--ink);transition:transform .2s}.menu-toggle[aria-expanded="true"] span:nth-last-child(2){transform:translateY(3.5px) rotate(45deg)}.menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.main-nav{position:fixed;inset:68px 0 auto;background:var(--paper);border-bottom:1px solid var(--line);padding:1rem 1.25rem 1.5rem;display:none;align-items:stretch;flex-direction:column;gap:0}.main-nav.open{display:flex}.main-nav a{padding:.75rem 0}.main-nav .button{margin-top:.5rem}.hero{min-height:0;grid-template-columns:1fr;padding-top:3.5rem}.hero-media{height:auto;aspect-ratio:4/3}.section-heading{align-items:start;flex-direction:column;margin-bottom:2.5rem}.service-group{grid-template-columns:1fr;gap:1rem}.about{grid-template-columns:1fr}.about-media{height:auto;aspect-ratio:4/3}.gallery-grid{grid-template-columns:1fr 1fr}.gallery-grid figure:nth-child(2){grid-row:span 2}.booking{grid-template-columns:1fr}.contact{grid-template-columns:1fr}.site-footer{grid-template-columns:1fr auto}.site-footer nav{display:none}.site-footer>p{grid-column:1/-1;text-align:left}}
@media(max-width:520px){.hero h1{font-size:3.35rem}.hero-actions{align-items:flex-start;flex-direction:column;gap:1.1rem}.gallery-grid{grid-template-columns:1fr}.gallery-grid figure:nth-child(2){grid-row:auto}.gallery-grid figure{aspect-ratio:4/3!important}.booking-form{grid-template-columns:1fr}.field-wide{grid-column:auto}.form-footer{align-items:stretch;flex-direction:column}.contact-list div{grid-template-columns:1fr;gap:.35rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}:focus-visible{outline:3px solid var(--sage);outline-offset:3px}.button:focus-visible,.booking :focus-visible{outline-color:#fff}
