@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400&family=DM+Sans:wght@400;500;600;700&family=Anton&family=Space+Grotesk:wght@400;500;600;700&family=Lora:ital,wght@0,400;0,500;0,600;1,400&family=Caveat:wght@400;500;600&display=swap');
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:'DM Sans',sans-serif;font-size:16px;line-height:1.5;background:var(--paper);color:var(--ink)}h1,h2,h3,p{margin:0}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none}a{color:inherit;text-decoration:none}button,a,input,select{touch-action:manipulation}img{max-width:100%;display:block;object-fit:cover}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}button:disabled{opacity:.35;cursor:default}.serif{font-family:var(--serif,Georgia),serif;font-weight:400}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.75rem;font-weight:500}.skip{position:fixed;z-index:100;top:-100px;left:20px;padding:16px;background:var(--paper);color:var(--ink)}.skip:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}[hidden]{display:none!important}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:14px 22px;border:1px solid currentColor;font-size:.875rem}.btn.primary{background:var(--accent);color:var(--button-ink);border-color:var(--accent)}.btn.plain{background:transparent}.booking-dialog{padding:0;width:min(620px,calc(100vw - 28px));max-height:92dvh;border:1px solid var(--line);border-radius:0;background:var(--paper);color:var(--ink);box-shadow:0 20px 100px #0007}.booking-dialog::backdrop{background:#080b0ce0;backdrop-filter:blur(12px)}.dialog-inner{padding:32px}.dialog-top{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:24px}.dialog-close{border:1px solid var(--line);width:44px;height:44px;font-size:1.5rem;flex-shrink:0;border-radius:50%}.demo-label{font-size:.75rem;letter-spacing:.1em;text-transform:uppercase}.steps{display:flex;gap:5px;margin-bottom:25px}.steps span{height:2px;background:var(--line);flex:1}.steps .active{background:var(--ink)}.booking-dialog h2{font-size:2.5rem;line-height:1.1;margin-bottom:25px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:flex;flex-direction:column;gap:8px;font-size:.875rem;margin-bottom:18px;min-width:0}.field input,.field textarea,.field select{width:100%;min-width:0;border:1px solid var(--line);background:transparent;padding:13px;border-radius:0;font:inherit}.field select option{color:#111;background:#fff}.field textarea{resize:vertical}.field-title{font-size:.875rem;margin:10px 0}.time-options{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.time-option{min-height:44px;border:1px solid var(--line);padding:10px;font-size:.875rem}.time-option[aria-pressed=true]{background:var(--ink);color:var(--paper)}.dialog-actions{display:flex;justify-content:space-between;gap:12px;margin-top:24px}.demo-note{font-size:.75rem;line-height:1.7;opacity:.7;margin-top:20px}.error-text{font-size:.875rem;color:var(--error,#a33);min-height:25px;margin-top:10px}.booking-summary{padding:20px;border:1px solid var(--line);margin:20px 0;line-height:1.8}.booking-summary strong{display:block}.success-mark{font-size:2.5rem;margin:20px 0}.modal-open{overflow:hidden}.toast{position:fixed;z-index:100;bottom:24px;left:50%;transform:translate(-50%,20px);padding:14px 24px;background:var(--ink);color:var(--paper);opacity:0;pointer-events:none;transition:.3s;max-width:90vw}.toast.show{opacity:1;transform:translate(-50%,0)}details summary{cursor:pointer;list-style:none}details summary::-webkit-details-marker{display:none}details summary:after{content:'+';float:right;margin-left:20px}details[open] summary:after{content:'−'}
@media(max-width:600px){.dialog-inner{padding:24px}.time-options{grid-template-columns:repeat(3,1fr)}.dialog-actions .btn{padding:12px;font-size:.875rem}}@media(max-width:360px){.field-grid{grid-template-columns:1fr}.dialog-inner{padding:18px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
