*,*::before,*::after{box-sizing:border-box}*{margin:0}html{scroll-behavior:smooth}body{--espresso:#100804;--dark:#1a0e07;--brown:#3d2010;--gold:#c8913a;--gold-light:#e0a84e;--cream:#f5ede0;--muted:rgba(245,237,224,.67);--serif:'Playfair Display',Georgia,serif;--sans:'Inter',system-ui,sans-serif;background:var(--espresso);color:var(--cream);font-family:var(--sans);font-weight:300;line-height:1.65;overflow-x:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.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}.nav{position:fixed;inset:0 0 auto;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:1rem 3rem;transition:.3s;background:linear-gradient(rgba(16,8,4,.82),transparent)}.nav.scrolled{padding:.55rem 3rem;background:rgba(16,8,4,.95);border-bottom:1px solid rgba(200,145,58,.18)}.nav__logo img{display:block;height:70px;width:auto}.nav.scrolled img{height:52px}.nav__hamburger{display:flex;flex-direction:column;gap:5px;background:none;border:0;padding:.75rem;color:var(--cream)}.nav__hamburger span{width:24px;height:1.5px;background:currentColor}.mobile-menu{position:fixed;right:2rem;top:6rem;z-index:30;min-width:220px;background:rgba(16,8,4,.98);border:1px solid rgba(200,145,58,.25);opacity:0;pointer-events:none;transform:translateY(-8px);transition:.2s}.mobile-menu.open{opacity:1;pointer-events:auto;transform:none}.mobile-menu nav{display:flex;flex-direction:column}.mobile-menu a{padding:.85rem 1.4rem;border-bottom:1px solid rgba(200,145,58,.12);font-size:.75rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}.mobile-menu a:hover,.mobile-menu a:focus-visible{color:var(--gold)}.hero{min-height:92svh;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(320px,.88fr);align-items:stretch;background:var(--dark)}.hero__content{padding:12rem clamp(2rem,7vw,8rem) 7rem;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.test-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.16em;border:1px solid rgba(245,237,224,.25);padding:.2rem .5rem;margin-bottom:2.5rem;color:var(--muted)}.eyebrow{font-size:.7rem;text-transform:uppercase;letter-spacing:.2em;color:var(--gold);font-weight:500;margin-bottom:.8rem}.hero h1,.section h2{font-family:var(--serif);font-weight:400;line-height:1.08}.hero h1{font-size:clamp(2.7rem,6vw,5.7rem);max-width:780px}.hero__content>p:not(.eyebrow){max-width:650px;color:var(--muted);margin:1.6rem 0 2rem}.hero__media{min-width:0;padding:7rem clamp(1.5rem,4vw,4rem) 3rem;background:radial-gradient(circle at 50% 45%,rgba(200,145,58,.14),transparent 48%),linear-gradient(135deg,#321a0d,#100804);display:grid;place-items:center;border-left:1px solid rgba(200,145,58,.18)}.hero__media picture{display:block;width:100%;max-width:560px}.hero__media img{display:block;width:auto;max-width:100%;height:auto;max-height:78svh;margin:auto;object-fit:contain;object-position:center}.btn{display:inline-flex;justify-content:center;align-items:center;min-height:48px;padding:.8rem 1.6rem;border:1px solid var(--gold);background:var(--gold);color:var(--espresso);font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.btn:hover,.btn:focus-visible{background:var(--gold-light)}.btn--small{margin-top:1rem;min-height:44px}.text-btn{border:0;background:none;color:var(--gold);text-decoration:underline;text-underline-offset:4px;padding:.7rem}.section{width:min(1040px,calc(100% - 3rem));margin:auto;padding:6rem 0;border-bottom:1px solid rgba(200,145,58,.14);scroll-margin-top:80px}.section__intro{max-width:680px;margin-bottom:2.5rem}.section h2{font-size:clamp(2rem,4vw,3.4rem);margin-bottom:1rem}.section__intro>p:last-child{color:var(--muted)}.choice-row,.choice-grid{border:0;display:flex;flex-wrap:wrap;gap:.8rem;margin:1.5rem 0}.choice-row legend{font-family:var(--serif);font-size:1.25rem;width:100%;margin-bottom:.55rem}.choice-row label,.choice-grid label{display:block}.choice-row input,.choice-grid input{position:absolute;opacity:0;pointer-events:none}.choice-row span,.choice-grid span{display:flex;align-items:center;justify-content:center;min-height:48px;padding:.75rem 1.2rem;border:1px solid rgba(245,237,224,.25);color:var(--cream);transition:.15s}.choice-row input:checked+span,.choice-grid input:checked+span{border-color:var(--gold);background:rgba(200,145,58,.16);color:var(--gold-light)}input:focus-visible+span,button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--gold-light);outline-offset:3px}.legend{display:flex;flex-wrap:wrap;gap:.7rem 1.4rem;color:var(--muted);font-size:.78rem;margin:2rem 0}.legend span{display:flex;align-items:center;gap:.45rem}.legend i{width:.7rem;height:.7rem;border-radius:50%}.available{background:#55935c}.limited{background:#d48b37}.on-request{background:#4d83aa}.unavailable{background:#a44a42}.calendar{max-width:720px;margin:auto;background:#f8f2e9;color:#2a1505;padding:clamp(1rem,4vw,2rem)}.calendar__head{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;margin-bottom:1rem}.calendar__head h3{text-align:center;font-family:var(--serif);font-size:1.5rem}.calendar__head button{border:0;background:transparent;font-size:1.4rem;min-height:44px}.calendar__week,.calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.35rem}.calendar__week{text-align:center;text-transform:uppercase;font-size:.65rem;letter-spacing:.08em;color:#765c4b;margin-bottom:.35rem}.calendar__day{aspect-ratio:1;min-width:0;border:1px solid transparent;background:#eee4d6;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:600;color:#2a1505;position:relative}.calendar__day::after{content:attr(data-short);font-size:.48rem;font-weight:500;margin-top:.05rem}.calendar__day.available{background:#dceadc}.calendar__day.limited{background:#f3dfc5}.calendar__day.on-request{background:#d9e7f0}.calendar__day.unavailable{background:#eddbd8;color:#735b57}.calendar__day.selected{outline:3px solid var(--gold);outline-offset:-3px}.calendar__day:disabled{cursor:not-allowed;opacity:.65}.calendar__day.empty{visibility:hidden}.status{min-height:1.5em;margin-top:1rem;color:var(--gold-light)}.status.error{color:#ef927c}.selected-dates{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.date-chip{padding:.45rem .75rem;background:rgba(200,145,58,.12);border:1px solid rgba(200,145,58,.25);font-size:.82rem}.choice-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}.choice-grid span{height:100%;text-align:center}.duration{grid-template-columns:repeat(3,1fr)}.duration span{flex-direction:column;gap:.25rem}.custom-time,.field{margin:1.25rem 0}.custom-time label,.field label{display:block;font-weight:500;margin-bottom:.4rem}.field small{color:var(--muted);font-weight:300}.field input,.field select,.field textarea,.custom-time input{width:100%;background:rgba(245,237,224,.06);border:1px solid rgba(245,237,224,.24);border-radius:0;color:var(--cream);padding:.8rem .9rem;font-size:1rem}.field select option{background:var(--dark)}.field textarea{resize:vertical}.hint{font-size:.82rem;color:var(--muted);margin-top:.45rem}.full{width:100%;flex-basis:100%}.notice{padding:.9rem 1rem;border-left:2px solid var(--gold);background:rgba(200,145,58,.1);color:var(--cream)}.address-grid,.contact-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:1rem}.contact-grid{grid-template-columns:1fr 1fr}.address-confirm{padding:1.4rem;margin-top:1.5rem;border:1px solid rgba(200,145,58,.3);background:rgba(200,145,58,.07)}.google-attribution{font-size:.7rem;color:var(--muted);margin:.4rem 0 1rem}.summary{display:grid;grid-template-columns:minmax(120px,1fr) 2fr;gap:.6rem 1rem;max-width:700px}.summary dt{color:var(--muted)}.summary dd{font-weight:500}.price{margin-top:2.5rem;padding:2rem;border:1px solid rgba(200,145,58,.3);background:var(--dark)}.price h3{font-family:var(--serif);font-size:clamp(2rem,4vw,3rem);color:var(--gold-light)}.price details{margin-top:1.5rem}.price li{display:flex;justify-content:space-between;gap:1rem;padding:.6rem 0;border-bottom:1px solid rgba(245,237,224,.1)}.privacy,.reservation{max-width:720px;margin:1.5rem 0;color:var(--muted)}.faq details{border-top:1px solid rgba(200,145,58,.18);padding:1rem 0}.faq summary{cursor:pointer;font-family:var(--serif);font-size:1.1rem}.faq details p{max-width:760px;color:var(--muted);padding-top:.7rem}.footer{display:flex;align-items:center;gap:3rem;padding:2.5rem 3rem;background:var(--dark);color:var(--muted);font-size:.75rem}.footer img{display:block;height:44px;width:auto}.footer nav{display:flex;gap:1.5rem;margin-left:auto}.footer a:hover{color:var(--gold)}[hidden]{display:none!important}
@media(max-width:900px){.hero{grid-template-columns:1fr;min-height:auto}.hero__content{padding:10rem clamp(1.5rem,7vw,4rem) 3rem}.hero__media{padding:0 clamp(1.5rem,7vw,4rem) 4rem;border-left:0}.hero__media picture{max-width:520px}.hero__media img{width:100%;max-height:none}}
legend.sr-only{width:1px;max-width:1px}
/* Number/time entry inside choices must remain visible and keyboard-accessible. */
.choice-row .field input,.choice-grid .custom-time input{position:static;opacity:1;pointer-events:auto}
.price li{flex-wrap:wrap}.price li span,.price li strong{min-width:0;overflow-wrap:anywhere}
@media(max-width:760px){.nav{padding:.6rem 1rem}.nav.scrolled{padding:.4rem 1rem}.nav__logo img{height:58px}.mobile-menu{right:1rem}.hero__content{padding:9rem 1.25rem 2.5rem}.hero__media{padding:0 1.25rem 3rem}.section{width:min(100% - 2rem,1040px);padding:4rem 0}.choice-grid{grid-template-columns:repeat(2,1fr)}.duration{grid-template-columns:1fr}.address-grid,.contact-grid{grid-template-columns:1fr}.calendar{width:calc(100% + 1rem);margin-left:-.5rem;padding:.75rem}.calendar__week,.calendar__grid{gap:.2rem}.calendar__day{font-size:.82rem;min-height:42px}.footer{align-items:flex-start;flex-direction:column;gap:1.2rem;padding:2rem 1.25rem}.footer nav{margin:0;flex-wrap:wrap}.summary{grid-template-columns:1fr}.summary dd{margin-bottom:.5rem}}
@media(max-width:380px){.hero h1{font-size:2.45rem}.calendar__day{min-height:39px;font-size:.76rem}.calendar__day::after{display:none}.choice-row span{padding:.7rem .85rem}.section{width:calc(100% - 1.5rem)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.google-attribution{font-size:.75rem;font-style:normal;font-weight:400;letter-spacing:normal;white-space:nowrap}.choice-grid input:disabled+span{opacity:.38;cursor:not-allowed;text-decoration:line-through}
.address-grid--complete{grid-template-columns:minmax(0,2fr) minmax(90px,1fr) minmax(90px,1fr)}.address-grid--complete .field{min-width:0}.address-city{grid-column:2 / 4}.address-grid--complete input{min-width:0}
.price h3{overflow-wrap:anywhere}.price li>span,.price li>strong{min-width:0;overflow-wrap:anywhere}.price #manualPriceNotice{margin-top:1rem}
#submitButton{display:flex;width:300px;max-width:100%;min-height:62px;margin-top:1.5rem;padding:1rem 2rem;font-size:.95rem}
@media(max-width:760px){#submitButton{width:100%}}
@media(max-width:760px){.address-grid--complete{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.address-street,.address-city{grid-column:1 / -1}.address-postcode{grid-column:1 / -1}.address-grid--complete{gap:0 1rem}}

/* Production navigation only; preview remains unchanged. */
.nav__public-link{margin-left:auto;margin-right:1rem;font-size:.75rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}.nav__public-link:hover,.nav__public-link:focus-visible{color:var(--gold)}@media(max-width:760px){.nav__public-link{display:none}}
