@font-face{font-family:Cormorant;src:url('./assets/fonts/cormorant-garamond.ttf') format('truetype');font-weight:300 700;font-display:swap}
:root{--paper:#f5f0e7;--light:#fcf9f3;--ink:#253b32;--forest:#1d3c33;--muted:#62665c;--gold:#84754e;--line:#c9c0ae;--serif:Cormorant,Georgia,serif;--ui:Arial,Helvetica,sans-serif;--ease:cubic-bezier(.2,.7,.15,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px;background:var(--paper)}body{margin:0;color:var(--ink);background:var(--paper);font:400 14px/1.65 var(--ui);-webkit-font-smoothing:antialiased}body:has(dialog[open]){overflow:hidden}[hidden]{display:none!important}button,input{font:inherit}a,button,input,label{-webkit-tap-highlight-color:transparent}a,button{touch-action:manipulation;color:inherit}a{text-decoration:none}button{cursor:pointer}img{max-width:100%;display:block}figure,p{margin:0}h1,h2{margin:0;font-family:var(--serif);font-weight:400;letter-spacing:-.025em;line-height:1.06}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:4px}::selection{background:#dce3d1;color:var(--forest)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.section-width,.site-header{width:calc(100% - 96px);max-width:1180px;margin-inline:auto}.demo-note{padding:6px 16px;text-align:center;background:#e7e2d6;color:#4d574c;font:11px/1.6 var(--ui)}.site-header{min-height:86px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #c9c0ac80;gap:24px}.wordmark{display:block}.wordmark img{width:155px;height:44px;object-fit:contain;filter:brightness(0) saturate(100%);opacity:.8}.header-link{font:12px/1.6 var(--ui);padding:12px 0;border-bottom:1px solid var(--gold)}.header-link span{margin-left:25px;font-size:18px}.eyebrow{font:11px/1.7 var(--ui);letter-spacing:.11em;text-transform:uppercase;color:var(--gold)}
.booking-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(50px,7vw,100px);padding-block:54px 65px;align-items:start}.campaign-art{position:sticky;top:30px;max-width:520px;width:100%;animation:arrive 1.6s var(--ease) both}.campaign-art img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:contain;box-shadow:12px 24px 45px #4e412c0f}.booking-panel{min-width:0;scroll-margin-top:25px;animation:arrive 1.4s .12s var(--ease) both}.booking-intro h1{font-size:clamp(44px,4.4vw,64px);margin-top:13px}.booking-intro>p:last-child{font:13px/1.85 var(--ui);color:var(--muted);max-width:440px;margin-top:17px}.booking-form{margin-top:27px}fieldset{padding:0;margin:0 0 25px;border:0;min-width:0}legend{font:13px/1.5 var(--ui);margin-bottom:13px;padding:0}.date-options{display:grid;grid-template-columns:1fr 1fr;gap:11px}.date-option{position:relative;cursor:pointer}.date-option input,.slot-option input{position:absolute;opacity:0;width:1px;height:1px}.date-option>span{display:block;border:1px solid var(--line);padding:12px 16px;background:#fbf8f259;transition:background .3s,border-color .3s}.date-option strong{display:flex;gap:9px;align-items:baseline;font:400 38px/1.1 var(--serif);color:var(--ink)}.date-option strong small{font:12px/1.5 var(--ui);color:var(--muted)}.date-option>span>span{font:11px/1.6 var(--ui);display:block;margin-top:6px;color:var(--muted)}.date-option input:checked+span{border-color:var(--forest);background:var(--light);box-shadow:inset 0 0 0 1px var(--forest)}.date-option input:focus-visible+span,.slot-option input:focus-visible+span{outline:2px solid var(--gold);outline-offset:4px}.time-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.slot-option{position:relative;cursor:pointer}.slot-option>span{min-height:45px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--ink);background:transparent;transition:background .3s,color .3s,border-color .3s;font:12px/1.6 var(--ui);padding:10px 4px;white-space:nowrap}.slot-option input:checked+span{background:var(--forest);color:var(--light);border-color:var(--forest)}.slot-option input:disabled+span{color:#5f625a;background:#e9e3d8;cursor:not-allowed;text-decoration:line-through;text-decoration-color:#5f625a80;opacity:.65}.availability-status{font:11px/1.7 var(--ui);color:var(--muted);margin-top:10px;min-height:18px}.retry-link{background:transparent;border:0;padding:10px 0;min-height:44px;text-decoration:underline;text-underline-offset:4px;font-size:12px;color:var(--forest)}.fields-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 16px}.field{min-width:0}.field.full{grid-column:1/-1}.field label{font:12px/1.5 var(--ui);display:block;margin-bottom:6px}.field input{width:100%;border:0;border-bottom:1px solid #aaa18f;padding:11px 0 12px;min-height:47px;background:transparent;border-radius:0;color:var(--ink);font:16px/1.5 var(--ui)}.field input::placeholder{color:#74786d;opacity:1}.field input:focus{outline:0;border-color:var(--forest);box-shadow:0 1px var(--forest)}.companion-option{display:flex;align-items:center;gap:10px;min-height:44px;margin-top:12px;font:12px/1.7 var(--ui);cursor:pointer}.companion-option input{accent-color:var(--forest);width:17px;height:17px;margin:0;flex-shrink:0}.details-fieldset{margin-bottom:10px}.form-error{padding:12px 14px;border-left:2px solid #8d5534;background:#a7693910;color:#75472f;font:12px/1.7 var(--ui);margin-bottom:15px}.request-summary{font:11px/1.7 var(--ui);color:var(--muted);margin-bottom:12px;min-height:19px}.button{min-height:53px;padding:14px 21px;display:inline-flex;align-items:center;justify-content:space-between;gap:30px;border:1px solid var(--forest);border-radius:0;font:13px/1.6 var(--ui);letter-spacing:.02em;transition:background .3s,box-shadow .3s}.button-primary{background:var(--forest);color:var(--light)}.button-primary:hover{background:#2c5143;box-shadow:0 6px 16px #1d3c3310}.button-primary:disabled{opacity:.6;cursor:progress}.button span{font-size:20px;line-height:1}.submit-button{width:100%;min-height:55px}.confirmation-note{font:12px/1.8 var(--ui);color:#4e5b50;margin-top:14px}.privacy-note{font:11px/1.8 var(--ui);color:var(--muted);margin-top:7px}.privacy-note a{margin-left:5px;text-decoration:underline;text-underline-offset:3px}
.editorial-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;padding-block:30px 55px;border-top:1px solid var(--line)}.editorial-gallery img{width:100%;height:auto;aspect-ratio:1365/2048;object-fit:contain}.site-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid var(--line);padding-block:27px 35px}.footer-campaign{font:26px/1.2 var(--serif)}.footer-campaign em{display:block;font:italic 22px/1.3 var(--serif);color:var(--gold);margin-top:3px}.site-footer>p:last-child{font:11px/1.8 var(--ui);color:var(--muted)}
.result-dialog{border:1px solid var(--line);padding:42px 32px 30px;max-width:430px;width:calc(100% - 32px);max-height:calc(100svh - 40px);overflow:auto;background:var(--light);color:var(--ink);text-align:center;box-shadow:0 30px 100px #102a2430}.result-dialog[open]{animation:arrive .8s var(--ease) both}.result-dialog::backdrop{background:#18332877;backdrop-filter:blur(5px)}.dialog-close{position:absolute;right:7px;top:5px;background:transparent;border:0;width:44px;height:44px;font:27px/1 var(--ui);color:var(--muted)}.result-facet{margin:0 auto 24px;animation:arrive 1.1s var(--ease) both}.result-dialog h2{font-size:48px;line-height:1.1;margin:17px 0;overflow-wrap:anywhere}.result-dialog #result-copy{font:13px/1.8 var(--ui);color:var(--muted)}.result-details{border-block:1px solid var(--line);padding-block:17px;margin-block:20px;font:13px/1.9 var(--ui)}.result-next{font:12px/1.8 var(--ui);color:var(--muted);margin-bottom:24px}.result-dialog .button{width:100%}@keyframes arrive{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media(max-width:1000px){.section-width,.site-header{width:calc(100% - 64px)}.booking-layout{gap:40px}.booking-intro h1{font-size:47px}.slot-option>span{font-size:11px}.date-option>span{padding:12px}.date-option>span>span{font-size:10px}}
@media(max-width:700px){html{scroll-padding-top:18px}.section-width,.site-header{width:calc(100% - 40px)}.demo-note{font-size:10px}.site-header{min-height:72px}.wordmark img{width:136px;height:37px}.header-link{font-size:11px}.header-link span{margin-left:18px}.booking-layout{display:flex;flex-direction:column;gap:30px;padding-block:28px 38px}.campaign-art{position:relative;top:auto;max-width:330px;margin-inline:auto}.campaign-art img{box-shadow:8px 15px 30px #4e412c0d}.booking-panel{width:100%}.booking-intro .eyebrow{font-size:10px;letter-spacing:.1em}.booking-intro h1{font-size:48px;margin-top:11px}.booking-intro>p:last-child{font-size:12px;line-height:1.85;margin-top:14px;max-width:400px}.booking-form{margin-top:24px}.date-option>span{padding:12px 14px}.date-option strong{font-size:36px}.date-option strong small{font-size:11px}.date-option>span>span{font-size:11px}.time-slots{gap:8px}.slot-option>span{min-height:46px;font-size:12px}.fields-grid{gap:17px 14px}legend{font-size:13px}.availability-status{font-size:11px}.request-summary{font-size:11px}.confirmation-note{font-size:11px}.privacy-note{font-size:10px}.editorial-gallery{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding-block:22px 28px;scrollbar-width:thin;scrollbar-color:var(--line) transparent}.editorial-gallery img{flex:0 0 65%;width:65%;max-width:280px;scroll-snap-align:start}.site-footer{padding-block:25px calc(30px + env(safe-area-inset-bottom));align-items:flex-start;flex-direction:column;gap:18px}.footer-campaign{font-size:25px}.footer-campaign em{font-size:22px}.site-footer>p:last-child{font-size:11px}.result-dialog{padding:40px 24px 26px}.result-dialog h2{font-size:44px}}
@media(max-width:360px){.section-width,.site-header{width:calc(100% - 32px)}.booking-intro h1{font-size:43px}.date-options{gap:9px}.date-option>span{padding:10px}.date-option>span>span{font-size:10px}.slot-option>span{font-size:10px}.fields-grid{grid-template-columns:1fr}.field.full{grid-column:1}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0ms!important}}
