@font-face{font-family:DM;src:url('assets/DMSans.ttf')}@font-face{font-family:Editorial;src:url('assets/CormorantGaramond.ttf')}@font-face{font-family:Editorial;src:url('assets/CormorantGaramond-Italic.ttf');font-style:italic}@font-face{font-family:Condensed;src:url('assets/BarlowCondensed-Bold.ttf');font-weight:700}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:DM,Arial,sans-serif;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{color:inherit;cursor:pointer}a{color:inherit;text-underline-offset:4px}button:disabled{cursor:not-allowed;opacity:.4}img{max-width:100%;display:block}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:5px}.skip{position:fixed;top:-80px;left:16px;padding:15px;background:var(--paper);z-index:200}.skip:focus{top:10px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:400}h1{line-height:.94;letter-spacing:-.045em}h2{font-family:Editorial,serif;font-size:clamp(42px,5vw,78px);line-height:.98;letter-spacing:-.035em}p{line-height:1.7}.eyebrow{font-size:10px;letter-spacing:.17em;text-transform:uppercase;font-weight:700}.wrap{width:min(1320px,calc(100% - 96px));margin:auto}.section{padding-block:115px}.muted{opacity:.72}.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;min-height:54px;padding:15px 24px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);text-decoration:none;font-size:13px;font-weight:600}.btn.light{background:var(--paper);color:var(--ink)}.btn.ghost{background:transparent;color:inherit}.arrow{font-size:23px;font-weight:400}.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:35px;margin-bottom:42px}.section-head h2{margin:10px 0 0}.section-head p{max-width:355px;margin:0;font-size:14px}.controls{display:flex;align-items:center;gap:10px}.round{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;border:1px solid currentColor;background:transparent;font-size:22px}.tiny-button{background:none;border:0;text-decoration:underline;text-underline-offset:4px;font-size:11px;min-height:44px;padding:8px}.carousel{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;padding:4px 2px 20px}.carousel>*{scroll-snap-align:start;flex:0 0 330px}.review{background:var(--soft);min-height:286px;padding:28px;display:flex;flex-direction:column}.review p{font-size:16px;line-height:1.5;margin:22px 0 9px;flex:1}.review-kind{font-size:9px;text-transform:uppercase;letter-spacing:.1em;margin-bottom:20px;opacity:.7}.review strong{font-size:12px}.review small{font-size:11px;margin-block:6px}.review a{font-size:10px}.stars{letter-spacing:3px;font-size:15px}.review-bottom{display:flex;justify-content:space-between;align-items:center;gap:22px;margin-top:14px}.review-bottom p{font-size:11px;max-width:680px;margin:0}.calendar-section{scroll-margin-top:90px}.calendar-wrap{display:grid;grid-template-columns:.85fr 1.15fr;gap:90px;align-items:center}.calendar-panel{background:var(--paper);color:var(--ink);padding:34px;min-width:0}.calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:22px;border-bottom:1px solid color-mix(in srgb,var(--ink) 15%,transparent)}.calendar-heading h3{font-size:25px;font-family:Editorial;margin:0;text-transform:capitalize}.calendar-heading button{width:42px;height:42px;border:1px solid #ccc7ba;border-radius:50%;background:transparent;font-size:18px}.calendar-week,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calendar-week{font-size:10px;text-align:center;padding-block:22px 12px}.calendar-days button{aspect-ratio:1;max-height:60px;min-height:40px;min-width:0;background:transparent;border:1px solid transparent;border-radius:50%;font-size:13px;position:relative}.calendar-days button:not(:disabled):hover{background:var(--soft);border-color:var(--accent)}.calendar-days button.today{border-color:var(--accent)}.calendar-days button.selected{background:var(--ink);color:var(--paper)}.calendar-days button.has-booking:after{content:'';position:absolute;width:4px;height:4px;background:currentColor;bottom:5px;left:calc(50% - 2px);border-radius:50%}.calendar-note{border-top:1px solid #d9d4cb;padding-top:18px;margin-top:20px;font-size:11px;line-height:1.5}.calendar-legend{display:flex;align-items:center;gap:8px;font-size:10px;margin:15px 0}.calendar-legend i{width:5px;height:5px;background:var(--accent);border-radius:50%}.booking-copy p{font-size:14px;max-width:365px}.booking-copy ol{list-style:none;padding:0;counter-reset:step}.booking-copy li{padding:18px 0;border-top:1px solid currentColor;font-size:12px;display:flex;gap:20px}.booking-copy li:before{counter-increment:step;content:'0'counter(step);opacity:.6}.demo-pill{display:inline-flex;padding:7px 11px;border:1px solid currentColor;border-radius:30px;font-size:9px;letter-spacing:.08em}.faq{max-width:870px;margin:auto}.faq details{border-bottom:1px solid #b5b3a5}.faq summary{list-style:none;cursor:pointer;padding:25px 2px;font-size:18px;display:flex;justify-content:space-between;gap:20px}.faq summary:after{content:'+'}.faq details[open] summary:after{content:'−'}.faq details p{max-width:720px;font-size:14px}.contact{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.contact img{width:100%;height:400px;object-fit:cover}.contact h2{margin-bottom:24px}.contact address{font-style:normal;font-size:14px;line-height:1.7;margin-block:25px}.contact .links{display:flex;flex-wrap:wrap;gap:14px}.contact .links a{font-size:12px;min-height:44px;display:flex;align-items:center}footer{padding:30px 0;border-top:1px solid #c0bbaa}footer .wrap{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}footer small,footer a{font-size:10px;line-height:1.6}.footer-note{max-width:560px}dialog{padding:0;border:0;background:var(--paper);color:var(--ink);width:min(520px,94vw);max-height:calc(100dvh - 32px);overflow:auto;box-shadow:0 25px 100px #0003}dialog::backdrop{background:#15191299;backdrop-filter:blur(4px)}.dialog-top{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:24px 30px 8px}.dialog-top .round{width:42px;height:42px;font-size:23px;flex-shrink:0}.dialog-content{padding:15px 30px 32px}.dialog-content h2{font-size:39px;line-height:1.04;margin:0 0 12px}.dialog-content>p{font-size:12px}.dialog-date{font-weight:600;text-transform:capitalize;font-size:14px;padding:14px 0;border-block:1px solid #d7d0c4;margin-bottom:24px}.field{display:block;margin:18px 0;font-size:12px;font-weight:600}.field input,.field select{display:block;width:100%;background:transparent;border:1px solid #b8b5a9;border-radius:0;min-height:48px;margin-top:8px;padding:10px;color:inherit;font-size:16px}.slot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.slot-grid label{position:relative}.slot-grid input{position:absolute;opacity:0}.slot-grid span{display:block;text-align:center;border:1px solid #b8b5a9;padding:12px 4px;font-size:13px}.slot-grid input:checked+span{background:var(--ink);color:var(--paper)}.slot-grid input:disabled+span{text-decoration:line-through;opacity:.45}.slot-grid input:focus-visible+span{outline:3px solid var(--accent);outline-offset:2px}.check{display:flex;align-items:flex-start;gap:10px;font-size:12px;line-height:1.6;margin:20px 0}.check input{width:18px;height:18px;flex:0 0 18px;margin:1px 0}.full{width:100%}.summary-card{background:var(--soft);padding:22px;font-size:13px;line-height:1.8;white-space:pre-line;margin-block:22px}.success-mark{font-size:32px;border:1px solid currentColor;border-radius:50%;width:65px;height:65px;display:grid;place-items:center;margin-bottom:24px}.notice{font-size:11px;border-top:1px solid #c6bfae;margin-top:20px;padding-top:14px}.loader{position:fixed;inset:0;z-index:100;background:var(--paper);display:flex;flex-direction:column;gap:22px;align-items:center;justify-content:center;font-family:Editorial;font-size:35px;pointer-events:auto;animation:loaderOut .3s ease 1.3s forwards}.loader span{font-family:DM;font-size:9px;letter-spacing:.2em}.loader:after{content:'';height:1px;width:95px;background:var(--ink);transform-origin:left;animation:loadLine 1.1s ease both}.progress{position:fixed;left:0;top:0;width:100%;height:2px;background:var(--accent);transform-origin:0 50%;z-index:95;pointer-events:none}.menu-panel{display:none}.menu-trigger{display:none}.gallery-image{width:100%;height:100%;object-fit:cover}.small-print{font-size:11px;line-height:1.7}.reveal{opacity:1}
@keyframes loaderOut{to{visibility:hidden}}@keyframes loadLine{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(min-width:900px){dialog{margin-right:22px;margin-left:auto;margin-block:auto;max-height:calc(100dvh - 44px)}}
@media(max-width:900px){.wrap{width:calc(100% - 44px)}.section{padding-block:75px}.section-head{display:block}.section-head p{margin-top:25px}.calendar-wrap{grid-template-columns:1fr;gap:38px}.calendar-panel{max-width:620px;width:100%;margin:auto}.booking-copy{max-width:620px}.booking-copy p{max-width:none}.contact{gap:30px}.menu-trigger{display:block;background:transparent;border:1px solid currentColor;border-radius:50%;width:44px;height:44px}.desktop-nav{display:none!important}.menu-panel.open{display:flex;position:fixed;top:79px;left:12px;right:12px;z-index:70;background:var(--paper);color:var(--ink);border:1px solid #bdb6a4;flex-direction:column;padding:22px}.menu-panel a{font-size:20px;text-decoration:none;padding:15px;border-bottom:1px solid #ddd}.contact img{height:340px}.carousel>*{flex-basis:300px}}
@media(max-width:550px){.wrap{width:calc(100% - 36px)}.section{padding-block:62px}h2{font-size:46px}.calendar-panel{padding:21px 13px}.calendar-heading{gap:8px}.calendar-heading h3{font-size:24px}.calendar-days{gap:3px}.calendar-days button{min-height:39px}.contact{grid-template-columns:1fr;gap:28px}.contact img{height:280px}.section-head{margin-bottom:30px}.section-head p{font-size:13px}.review-bottom{align-items:flex-start}.review-bottom p{max-width:190px}.review{padding:24px}.carousel>*{flex-basis:285px}.dialog-content{padding:10px 23px 25px}.dialog-top{padding:20px 23px 6px}.dialog-content h2{font-size:34px}.dialog-date{font-size:12px}.slot-grid span{padding:11px 2px}.field{margin-block:15px}footer .wrap{display:block}footer a{display:inline-block;padding-block:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.loader{display:none}.progress{display:none}}
/* Preserve full touch targets in the 375px seven-column calendar. */
.calendar-heading button,.dialog-top .round{width:44px;height:44px}.calendar-days button{min-height:44px}.slot-grid span{min-height:44px}button[data-photo],.hero-selector [data-photo],.film-controls [data-photo],.tiny-button,.hero-controls .tiny-button,.film-controls .tiny-button{min-height:44px;min-width:44px}
@media(max-width:550px){.calendar-panel{padding-inline:8px}.calendar-days{gap:2px}}
/* Keep small carousel controls usable after brand-specific responsive rules. */
button.tiny-button,button[data-photo]{min-height:44px!important;min-width:44px!important}
.review a,.text-link,.quiet-link,.meet-copy>a,.statement-bottom>a{display:inline-flex;align-items:center;min-height:44px}
.review-kind{opacity:1}.rating-summary a,.hero-topline a,footer a,.faq p a{display:inline-flex;align-items:center;min-height:44px}
