:root{--ink:#173d32;--sun:#f5d623;--paper:#fbfaf2;--cream:#f2f0e5;--pink:#edb7bb;--sage:#718d7d;--line:#d5d7ce;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.55 Manrope,sans-serif}a{color:inherit;text-decoration:none}header{height:78px;padding:0 clamp(20px,6vw,90px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(251,250,242,.94);position:sticky;top:0;z-index:10;backdrop-filter:blur(12px)}.brand{font-size:29px;font-weight:800;letter-spacing:-.065em}.brand span{font-size:.8em}.back{font-weight:800;font-size:12px}.booking-hero{padding:80px clamp(22px,7vw,110px) 64px;background:linear-gradient(145deg,#fff6a9 0%,#f5d623 100%);border-bottom:2px solid var(--ink)}.eyebrow{font-size:10px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;margin:0 0 12px}.booking-hero h1{font-size:clamp(48px,8vw,100px);line-height:.9;letter-spacing:-.075em;margin:0;max-width:900px}.booking-hero h1 em{font-family:Georgia,serif;font-weight:400;color:#fff}.booking-hero>p:not(.eyebrow){font-size:17px;max-width:680px;margin:28px 0 0}.trust-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px}.trust-row span{background:rgba(255,255,255,.75);border:1px solid var(--ink);border-radius:999px;padding:9px 13px;font-size:11px;font-weight:800}.booking-shell{width:min(1240px,calc(100% - 32px));margin:44px auto 90px;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(340px,.75fr);gap:24px;align-items:start}.picker-panel,.form-card{background:#fff;border:2px solid var(--ink);border-radius:26px;box-shadow:6px 6px 0 var(--ink);padding:clamp(22px,3vw,36px)}.panel-title{display:flex;justify-content:space-between;align-items:flex-end;gap:20px}.panel-title h2,.form-card h2{font-size:32px;line-height:1;letter-spacing:-.045em;margin:0}.panel-title button{border:1px solid var(--ink);background:#fff;border-radius:999px;padding:9px 13px;font:800 11px Manrope,sans-serif;cursor:pointer}.date-strip{display:grid;grid-template-columns:repeat(7,minmax(74px,1fr));gap:9px;margin-top:24px}.date-button{border:1.5px solid var(--line);background:var(--paper);border-radius:16px;padding:13px 8px;cursor:pointer;color:var(--ink);font:inherit;text-align:center;min-height:86px}.date-button strong{display:block;font-size:24px;line-height:1.1}.date-button span{display:block;font-size:10px;font-weight:800;text-transform:uppercase;margin-top:4px}.date-button small{display:block;font-size:9px;margin-top:5px;color:var(--sage)}.date-button:hover,.date-button.active{border-color:var(--ink);background:var(--sun);box-shadow:2px 2px 0 var(--ink)}.hours-title{margin-top:38px;padding-top:28px;border-top:1px solid var(--line)}#selected-date-label{font-size:12px;font-weight:800;color:var(--sage)}.slot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px}.slot{border:1.5px solid var(--ink);background:#fff;border-radius:18px;padding:17px;text-align:left;cursor:pointer;color:var(--ink)}.slot:hover,.slot.active{background:var(--ink);color:#fff}.slot-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.slot-time{font-size:25px;font-weight:800;letter-spacing:-.04em}.slot-badge{font-size:9px;font-weight:800;text-transform:uppercase;border:1px solid currentColor;border-radius:999px;padding:4px 7px}.slot h3{font-size:14px;margin:10px 0 2px}.slot p{font-size:11px;margin:0;opacity:.78}.slot.soldout{opacity:.38;cursor:not-allowed}.slot.soldout:hover{background:#fff;color:var(--ink)}.empty{grid-column:1/-1;color:var(--sage);padding:28px 4px;margin:0}.form-card{position:sticky;top:102px}.selection{margin:22px 0;background:var(--cream);border-radius:16px;padding:17px}.selection strong,.selection span{display:block}.selection span{font-size:12px;color:var(--sage);margin-top:5px}.form-card form{display:grid;gap:15px}.form-card label{display:grid;gap:6px;font-size:11px;font-weight:800}.form-card input,.form-card select{border:1.5px solid var(--ink);border-radius:12px;padding:12px 13px;font:600 15px Manrope,sans-serif;color:var(--ink);background:#fff}.consent{display:flex!important;grid-template-columns:auto 1fr!important;align-items:flex-start;gap:10px!important;font-weight:600!important;line-height:1.4}.consent input{width:18px;height:18px;margin:1px 0 0;padding:0}.submit{border:2px solid var(--ink);background:var(--sun);box-shadow:3px 3px 0 var(--ink);border-radius:999px;padding:14px 18px;font:800 13px Manrope,sans-serif;color:var(--ink);cursor:pointer;display:flex;justify-content:space-between}.submit:disabled{opacity:.42;cursor:not-allowed}.message{min-height:22px;margin:0;font-size:12px;font-weight:700}.message.error{color:#9a3434}.message.success{color:#27714f}dialog{border:2px solid var(--ink);border-radius:26px;box-shadow:8px 8px 0 var(--ink);max-width:520px;width:calc(100% - 32px);padding:38px;color:var(--ink)}dialog::backdrop{background:rgba(23,61,50,.55);backdrop-filter:blur(5px)}.success-mark{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:var(--sun);border:2px solid var(--ink);font-size:25px;font-weight:900;margin-bottom:22px}dialog h2{font-size:40px;line-height:1;letter-spacing:-.05em;margin:0 0 16px}.success-note{background:var(--cream);padding:14px;border-radius:12px;font-size:12px}.dialog-actions{display:flex;gap:10px;margin-top:22px}.dialog-actions button,.dialog-actions a{border:1.5px solid var(--ink);border-radius:999px;padding:11px 15px;background:#fff;font:800 12px Manrope,sans-serif;cursor:pointer}.dialog-actions button{background:var(--sun)}@media(max-width:950px){.booking-shell{grid-template-columns:1fr}.form-card{position:static}.date-strip{grid-template-columns:repeat(4,1fr)}}@media(max-width:560px){header{height:68px;padding:0 16px}.back{font-size:10px}.booking-hero{padding:56px 20px 45px}.booking-hero h1{font-size:52px}.booking-shell{width:calc(100% - 20px);margin-top:20px}.picker-panel,.form-card{border-radius:19px;padding:20px 16px}.date-strip{grid-template-columns:repeat(3,1fr)}.slot-grid{grid-template-columns:1fr}.panel-title h2,.form-card h2{font-size:27px}.form-card input,.form-card select{font-size:16px}}
