@font-face{font-family:Newsreader;src:url("../assets/newsreader.woff2") format("woff2");font-weight:200 800;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url("../assets/instrument-sans.woff2") format("woff2");font-weight:400 700;font-style:normal;font-display:swap}
:root{--night:#0d1621;--paper:#f5f3ee;--dusk:#243347;--muted:#535d67;--fog:#9ca8b4;--hair:#dad8d1;--line:#878d94;--serif:Newsreader,Georgia,"Times New Roman",serif;--sans:"Instrument Sans",system-ui,-apple-system,"Segoe UI",sans-serif;color-scheme:light}
*,:before,:after{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--night);font:16px/1.55 var(--sans);-webkit-font-smoothing:antialiased}
button,input,select{font:inherit;color:inherit}
button,a,select{-webkit-tap-highlight-color:transparent}
a{color:inherit}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.52}
[hidden]{display:none!important}
:focus-visible{outline:3px solid #486b93;outline-offset:4px}
::selection{background:var(--dusk);color:var(--paper)}
.skip-link{position:fixed;z-index:5;top:12px;left:16px;transform:translateY(-160%);padding:12px 18px;background:var(--paper);color:var(--night)}.skip-link:focus{transform:none}
.topbar{min-height:86px;padding:18px max(28px,calc((100% - 1250px)/2));display:flex;align-items:center;justify-content:space-between;gap:24px;background:var(--night);color:var(--paper)}
.brand{display:inline-flex;align-items:center;min-height:44px}.brand img{display:block;width:190px;height:auto}
.back-link{font-size:14px;text-decoration:none;min-height:44px;display:flex;align-items:center;gap:8px}.back-link:hover{text-decoration:underline;text-underline-offset:5px}
.page-shell{width:min(1200px,calc(100% - 64px));margin-inline:auto;padding:56px 0 96px}
.page-intro{max-width:690px;margin:0 auto 38px;text-align:center}
.eyebrow,.step-label{font-size:13px;font-weight:600;letter-spacing:.015em;color:var(--muted)}
.eyebrow{margin-bottom:15px}
h1,h2{font-family:var(--serif);font-weight:450;line-height:1.06;letter-spacing:-.035em;text-wrap:balance;margin:0}
h1{font-size:clamp(42px,6vw,66px)}
.intro-copy{max-width:58ch;margin:15px auto 0;color:var(--muted);font-size:17px}
.planner-layout{display:grid;grid-template-columns:minmax(0,1.48fr) minmax(290px,.82fr);gap:22px;align-items:start}
.panel{background:#fffefa;border:1px solid #e5e2dc;border-radius:10px;box-shadow:0 12px 36px #0d16210a}
.planner{padding:28px 30px 30px;min-height:524px}
.panel-heading h2{font-size:32px;margin-top:5px}
.planner-heading{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:25px}
.availability-note{font-size:13px;color:var(--muted);line-height:1.5;text-align:right}
.calendar-toolbar{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);padding:10px 0;margin-bottom:17px}
.icon-button{width:44px;height:44px;border:1px solid transparent;border-radius:5px;background:transparent;font-size:21px}.icon-button:not(:disabled):hover{background:#f0eee9;border-color:var(--hair)}
.window-label{text-align:center;font-size:14px;font-weight:600}
.availability-status{min-height:25px;margin:0 0 8px;color:var(--muted);font-size:14px}
.slot-groups{display:grid;gap:20px}.date-tabs{display:flex;gap:8px;overflow-x:auto;padding:4px 3px 8px;scrollbar-width:thin}.date-tab{flex:1 0 70px;min-height:76px;padding:10px 7px;border:1px solid #aeb3b8;border-radius:5px;background:transparent;font-size:13px}.date-tab span{display:block;font-size:21px;font-weight:600;line-height:1.4}.date-tab[aria-selected="true"]{background:var(--night);border-color:var(--night);color:var(--paper)}.date-tab:not(:disabled):hover{border-color:var(--night)}.timezone-field{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;margin:0 0 20px}.timezone-field label{font-size:14px;color:var(--muted)}.timezone-field select{width:100%;font-size:16px}
.slot-day{min-width:0}.slot-day h3{font-size:14px;font-weight:600;margin:0 0 8px}.slot-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.slot-button{min-height:44px;padding:8px 7px;border:1px solid #aeb3b8;border-radius:5px;background:transparent;color:var(--night);font-size:14px;line-height:1.2}.slot-button:hover{border-color:var(--night);background:#f6f4ef}.slot-button[aria-pressed="true"]{background:var(--dusk);border-color:var(--dusk);color:var(--paper)}
.empty-state{padding:30px 18px;text-align:center;border:1px dashed #bfc1c0;border-radius:6px;color:var(--muted);font-size:14px}.empty-state p+p{margin-top:4px}
.notice{padding:13px 15px;border-radius:5px;background:#f0eee9;color:var(--night);font-size:14px}.notice-error{display:flex;justify-content:space-between;align-items:center;gap:16px;background:#f5e9e5;color:#552d25}.notice-preview{margin-top:22px;background:#eeece6;font-size:13px;line-height:1.5}
.text-button{border:0;background:transparent;text-decoration:underline;text-underline-offset:4px;font-size:14px;padding:8px;white-space:nowrap}
.details-column{display:grid;gap:16px}
.summary-card,.agenda-card{padding:25px 25px 24px}
.summary-card h2,.agenda-card h2{font-size:27px;margin-top:5px}
.summary-list{margin:18px 0 0;display:grid;gap:0}.summary-list>div{display:grid;grid-template-columns:106px 1fr;gap:10px;padding:11px 0;border-top:1px solid #e7e4dd;align-items:start}.summary-list dt{color:var(--muted);font-size:13px}.summary-list dd{margin:0;font-size:14px;font-weight:550}.selected-time{font-weight:450!important;color:var(--muted)}
select{max-width:100%;min-height:42px;padding:7px 25px 7px 8px;border:1px solid #aeb3b8;border-radius:4px;background:#fffefa;font-size:13px}
.agenda-list{margin:17px 0 0;padding:0;list-style:none;display:grid;gap:13px}.agenda-list li{position:relative;padding-left:19px;font-size:14px;line-height:1.45}.agenda-list li:before{content:"";position:absolute;left:0;top:.54em;width:7px;height:7px;border:1px solid var(--dusk);border-radius:50%}
.buffer-note{margin-top:19px;padding-top:14px;border-top:1px solid #e7e4dd;color:var(--muted);font-size:13px;line-height:1.5}
.booking-form-panel,.success-panel,.manage-view,.recovery-panel{max-width:850px;margin:24px auto 0;padding:32px}.booking-form-panel .panel-heading{margin-bottom:23px}.booking-form-panel .panel-heading>p:last-child{margin-top:10px;color:var(--muted);font-size:15px}.recovery-panel h2{font-size:36px;margin-top:6px}.recovery-panel>p:not(.step-label){margin-top:12px;color:var(--muted)}.recovery-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:19px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px 18px}.field{display:grid;gap:6px;font-size:14px;font-weight:550}.field input{width:100%;min-height:48px;border:1px solid #aeb3b8;border-radius:5px;background:#fffefa;padding:10px 12px;font-size:16px;font-weight:400}.field input::placeholder{color:#7b838c}.field input:focus{border-color:#486b93}
.booking-review{margin-top:18px;padding:20px;border:1px solid var(--hair);border-radius:6px;background:#fbfaf6}.booking-review h3{font-family:var(--serif);font-size:25px;font-weight:450}.review-time{margin-top:8px;font-weight:600}.review-details{display:grid;grid-template-columns:1fr 1fr;gap:0 20px;margin:14px 0 0}.review-details>div{padding:9px 0;border-top:1px solid #e7e4dd}.review-details dt{color:var(--muted);font-size:12px}.review-details dd{margin:2px 0 0;font-size:14px;overflow-wrap:anywhere}
.form-error{margin-top:14px;color:#7a3024;font-size:14px}.form-actions{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:24px}.button{display:inline-flex;justify-content:center;align-items:center;min-height:48px;padding:11px 19px;border-radius:5px;border:1px solid transparent;text-decoration:none;font-size:14px;font-weight:600;line-height:1.35;text-align:center}.button-night{background:var(--night);color:var(--paper)}.button-night:not(:disabled):hover{background:var(--dusk)}.button-outline{border-color:#8f969c;background:transparent;color:var(--night)}.button-outline:not(:disabled):hover{background:#efede7}.privacy-note{margin-top:14px;color:var(--muted);font-size:12px}
.success-panel h2,.manage-view h2{font-size:36px;margin-top:6px}.success-copy{margin-top:14px;color:var(--muted)}.success-time{font-weight:600;margin:12px 0 20px}.success-panel .text-link{display:table;margin-top:12px}.manage-view{margin-top:0}.manage-view .notice{margin-top:17px}.manage-details{display:grid;grid-template-columns:140px 1fr;margin:18px 0}.manage-details dt,.manage-details dd{padding:9px 0;border-top:1px solid var(--hair)}.manage-details dt{color:var(--muted);font-size:14px}.manage-details dd{margin:0;font-size:14px}.manage-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.footer{min-height:76px;border-top:1px solid var(--hair);padding:18px max(32px,calc((100% - 1200px)/2));display:flex;align-items:center;justify-content:space-between;gap:20px;color:var(--muted);font-size:13px}.footer a{text-decoration:none}.footer a:hover{text-decoration:underline;text-underline-offset:4px}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:900px){.page-shell{width:min(720px,calc(100% - 40px));padding-top:42px}.planner-layout{grid-template-columns:1fr}.details-column{grid-template-columns:1fr 1fr}.planner{min-height:0}.summary-card,.agenda-card{padding:22px}.topbar{padding-inline:28px}}
@media(max-width:600px){body{font-size:15px}.topbar{min-height:72px;padding:12px 20px}.brand img{width:154px}.back-link{font-size:13px}.page-shell{width:calc(100% - 28px);padding:32px 0 58px}.page-intro{margin-bottom:25px}.eyebrow{margin-bottom:10px}.intro-copy{font-size:15px;line-height:1.55}.desktop-break{display:none}.planner{padding:21px 17px 22px}.planner-heading{align-items:flex-start;margin-bottom:19px}.panel-heading h2{font-size:29px}.availability-note{font-size:12px;padding-top:2px}.slot-groups{gap:16px}.date-tab{flex-basis:62px}.timezone-field{grid-template-columns:1fr;gap:6px}.slot-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.slot-button{font-size:13px;min-height:44px;padding-inline:4px}.calendar-toolbar{margin-bottom:13px}.details-column{grid-template-columns:1fr;gap:12px}.summary-card,.agenda-card{padding:20px}.summary-card h2,.agenda-card h2{font-size:25px}.summary-list>div{grid-template-columns:100px 1fr}.booking-form-panel,.success-panel,.manage-view,.recovery-panel{padding:22px 18px;margin-top:16px}.form-grid{grid-template-columns:1fr;gap:13px}.form-actions{flex-direction:column-reverse;align-items:stretch}.form-actions .button{width:100%}.review-details{grid-template-columns:1fr}.success-panel h2,.manage-view h2,.recovery-panel h2{font-size:32px}.footer{padding:16px 20px;font-size:12px}.footer p{max-width:30ch}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}

@media(max-width:600px){.planner-heading{display:block}.availability-note{text-align:left;margin:10px 0 0}.planner-heading h2{white-space:nowrap}.footer{flex-wrap:wrap}.footer p{flex-basis:100%}}
