@font-face{font-family:Noto;src:url('/assets/noto-400.ttf');font-display:swap}@font-face{font-family:Noto;src:url('/assets/noto-700.ttf');font-weight:700;font-display:swap}*{box-sizing:border-box}body{margin:0;font:14px/1.65 Noto,system-ui,sans-serif;color:var(--ink);background:var(--page);font-synthesis:none}button,input,select,textarea{font:inherit}button,a,input,select,summary{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-underline-offset:4px}button,input,select,textarea,a,summary{transition:background-color .18s ease-out,border-color .18s ease-out,color .18s ease-out,box-shadow .18s ease-out}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--focus);outline-offset:3px}::selection{background:var(--selection);color:var(--ink)}input,textarea{caret-color:var(--accent)}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}button:disabled{cursor:not-allowed}h1,h2,h3,p{overflow-wrap:anywhere}strong,.metrics,.summary,.totals,.date,.slot{font-variant-numeric:tabular-nums}.demo-bar{position:sticky;top:0;z-index:30;min-height:46px;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:4px 24px;background:var(--bar,#fff);color:var(--bar-ink,var(--ink));border-bottom:1px solid var(--line);font-size:12px}.demo-bar>a{font-weight:700;text-decoration:none;padding:7px 0}.demo-bar>span{font-size:11px;color:var(--muted)}.demo-tools{display:flex;align-items:center;gap:18px}.demo-tools>button{background:none;border:0;color:inherit;padding:7px 0;font-size:12px}.demo-info{position:relative}.demo-info summary{cursor:pointer;list-style:none;padding:7px 0;color:inherit}.demo-info summary::-webkit-details-marker{display:none}.demo-info summary::after{content:'＋';font-size:12px;margin-left:5px}.demo-info[open] summary::after{content:'−'}.demo-info p{position:absolute;top:100%;right:-70px;min-width:280px;max-width:calc(100vw - 32px);margin:9px 0 0;padding:18px;background:var(--panel,#fff);color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 35px #14202f20;font-size:13px;line-height:1.8;z-index:40}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.primary{font-size:13px;font-weight:700;background:var(--accent);color:#fff;border:0;border-radius:7px;min-height:44px;padding:10px 18px}.primary:hover{background:var(--accent-hover)}.primary:active{box-shadow:inset 0 2px 4px #0002}.primary:disabled{background:var(--disabled,#a8afb8);color:var(--disabled-ink,#fff)}dialog{max-height:calc(100dvh - 40px);overflow-y:auto;border:0;border-radius:14px;background:var(--panel,#fff);color:var(--ink);box-shadow:0 24px 90px #1220313d;padding:28px}dialog::backdrop{background:#14202f70}dialog header{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:22px}dialog h2{margin:0;font-size:20px}dialog header button{border:0;background:none;color:var(--muted);font-size:25px;min-width:40px;min-height:40px}dialog label{display:block;font-size:13px;color:var(--muted);margin-top:14px}dialog input:not([type=hidden]),dialog select,dialog textarea{display:block;width:100%;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:6px;min-height:44px;padding:10px 12px;margin-top:5px}dialog textarea{resize:vertical}#form-error{color:var(--danger);font-size:13px;min-height:20px}summary{cursor:pointer}button svg{display:block;width:22px;height:22px}@media(max-width:600px){.demo-bar{padding:4px 16px;gap:8px;font-size:11px}.demo-bar>span{display:none}.demo-tools{gap:14px}.demo-info p{right:-65px;min-width:270px}.demo-tools>button{font-size:11px}dialog{padding:22px;width:calc(100% - 28px)}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;scroll-behavior:auto!important;transition:none!important}}
:root{--ink:#303d32;--muted:#5c6c5d;--page:#fcfcf8;--panel:#fff;--line:#d8dfd3;--accent:#49664a;--accent-hover:#38533a;--focus:#678a61;--selection:#dbe8cc;--danger:#a14b3b}.demo-bar{background:#fcfcf8}main{display:grid;grid-template-columns:280px minmax(0,1fr);max-width:1350px;min-height:calc(100dvh - 46px);margin:auto}.intro{padding:45px 32px;background:#e8eddf;border-right:1px solid #d8dfcf;display:flex;flex-direction:column;align-items:flex-start}.brand{font:400 32px/1 Georgia,serif;letter-spacing:.11em;text-decoration:none}.brand span{display:block;font:12px/1.7 Noto;letter-spacing:0;margin-top:10px;color:#5e705a}.intro h1{font-size:24px;font-weight:400;letter-spacing:-.025em;line-height:1.65;margin:65px 0 12px}.intro>p{font-size:13px;color:#5e705a;line-height:1.9;margin:0}.session-guide{margin-top:38px;border-top:1px solid #c4cfba;width:100%;padding-top:25px}.session-guide h2{font-size:13px;margin:0;font-weight:700}.session-guide ol{padding-left:18px;color:#5b6f55;font-size:12px;margin-top:15px;line-height:2.5}.session-guide li::marker{color:#778c6b}.consult{font-size:12px;color:#49664a;margin-top:70px}.booking{padding:36px 40px 45px;min-width:0}.booking>header h2{font-size:25px;letter-spacing:-.025em;margin:0;font-weight:700}.booking>header p{font-size:12px;color:var(--muted);margin:8px 0 0}.booking form{margin-top:27px}fieldset{border:0;padding:0;margin:0 0 25px;min-width:0}legend{font-size:13px;font-weight:700;margin-bottom:14px}legend>span{font-size:11px;font-weight:400;color:var(--muted);margin-left:12px}.services{display:flex;flex-wrap:wrap;gap:0}.services legend{width:100%}.services label{display:flex;align-items:center;gap:10px;flex:1;padding:14px 12px;border:1px solid var(--line);border-right:0;cursor:pointer;min-width:0}.services label:first-of-type{border-radius:6px 0 0 6px}.services label:last-of-type{border-right:1px solid var(--line);border-radius:0 6px 6px 0}.services label:has(input:checked){background:#eaf0e4;border-color:#729167}.services label:has(input:checked)+label{border-left-color:#729167}.services input{accent-color:var(--accent);width:15px;height:15px;flex:none;margin:0}.services strong{font-size:12px;display:block;font-weight:700;white-space:nowrap}.services small{display:block;font-size:11px;color:#61755b;white-space:nowrap;margin-top:3px}.services b{display:none}.dates{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.date{border:1px solid var(--line);background:transparent;border-radius:5px;padding:8px 3px;color:#64735e;font-size:11px;line-height:1.6;min-height:79px}.date:hover:not(:disabled){background:#edf2e8;border-color:#8aa27c}.date strong{display:block;font:500 23px/1.5 system-ui;color:#384931;letter-spacing:-.035em}.date[aria-pressed=true]{background:var(--accent);color:#e6eedf;border-color:var(--accent)}.date[aria-pressed=true] strong{color:#fff}.date[aria-pressed=true]:hover{background:var(--accent-hover)}.date:disabled{color:#99a392;border-color:#e6eade;background:#f3f4ee}.date:disabled strong{color:#a4ae9c}.slots{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.slot{position:relative;border:1px solid var(--line);background:#fff;color:#4e6c43;border-radius:5px;font:500 14px/1.5 system-ui;min-height:45px;padding:10px}.slot:hover:not(:disabled){border-color:#718e62;background:#f1f5ed}.slot[aria-pressed=true]{background:#e5eddc;border-color:var(--accent);color:#35502c;font-weight:700;box-shadow:inset 0 0 0 1px var(--accent)}.slot:disabled{background:#f0f2eb;color:#8b9682;text-decoration:line-through}.slot small{display:block;font:11px/1.5 Noto;color:#718363;text-decoration:none}.contact-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}.contact-fields label{font-size:12px;font-weight:700}.contact-fields input{display:block;width:100%;min-height:43px;border:1px solid var(--line);border-radius:5px;background:#fff;margin-top:7px;padding:10px 12px;color:var(--ink);font-size:13px}.consent{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);margin:22px 0}.consent input{width:16px;height:16px;accent-color:var(--accent);margin:0;flex:none}.submit-row{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding-top:18px}#selection{font-size:12px;color:var(--muted);max-width:40ch}.submit-row .primary{white-space:nowrap;flex:none}#status{font-size:12px;line-height:1.85;color:#4b6b3d;min-height:24px;margin:12px 0 0}.my-bookings{margin-top:28px}.my-bookings>header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:12px;gap:15px}.my-bookings h2{font-size:15px;font-weight:700;margin:0}.my-bookings header span{font-size:12px;color:var(--muted)}.booking-item{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 0;border-bottom:1px solid var(--line)}.booking-item strong{font-size:13px;font-weight:700;display:block}.booking-item p{font-size:12px;color:var(--muted);margin:5px 0 0}.booking-item button{background:none;border:0;min-height:40px;padding:6px 0;color:#986448;text-decoration:underline;text-underline-offset:4px;font-size:12px;white-space:nowrap}.booking-item button:hover{color:#a14b3b}.empty{font-size:12px;line-height:1.9;color:var(--muted);padding:17px 0;margin:0}@media(max-width:1050px){main{grid-template-columns:230px minmax(0,1fr)}.intro{padding:35px 25px}.intro h1{font-size:22px}.booking{padding:33px 30px}.services label{padding:12px 9px;gap:7px}.services strong{font-size:11px}.services small{font-size:11px}.submit-row{align-items:flex-start}.submit-row .primary{font-size:12px;padding:10px 15px}}@media(max-width:800px){main{display:block}.intro{display:grid;grid-template-columns:1fr auto;padding:24px 24px 23px;gap:0 20px;border-right:0;border-bottom:1px solid #d8dfcf}.brand{font-size:29px}.brand span{font-size:11px;margin-top:6px}.intro h1,.intro>p,.session-guide{display:none}.consult{margin:0;font-size:11px;align-self:center;max-width:12ch;line-height:1.8}.booking{padding:28px 24px 35px}.booking>header h2{font-size:23px}.booking form{margin-top:24px}.services strong{font-size:12px}.services small{font-size:11px}.services label{padding:14px 11px}}@media(max-width:520px){.intro{padding:22px 18px}.booking{padding:25px 18px 30px}.services{display:block}.services label{border:0;border-bottom:1px solid var(--line);padding:13px 10px;border-radius:0!important}.services label:last-of-type{border-right:0}.services label:first-of-type{border-top:1px solid var(--line)}.services label:has(input:checked){border-color:var(--line);background:#eaf0e4}.services strong{font-size:13px}.services small{font-size:11px}.services label span{display:flex;align-items:center;justify-content:space-between;gap:16px;flex:1}.services small{margin:0}.dates{gap:5px}.date{min-height:71px;font-size:11px;padding:8px 2px}.date strong{font-size:21px}.slot{font-size:13px;padding:10px 5px}.contact-fields{gap:12px}.contact-fields input{font-size:16px;padding:10px;min-width:0}.consent{font-size:11px;align-items:flex-start}.submit-row{display:block}.submit-row .primary{width:100%;margin-top:14px;min-height:44px}.booking-item{align-items:flex-start}.booking-item strong{font-size:12px}.booking-item p{font-size:11px}legend>span{font-size:11px;margin-left:7px}}
@media(pointer:coarse){.demo-bar>a,.demo-tools>button,.demo-info summary{min-height:44px;display:flex;align-items:center}.consent,.booking-item button{min-height:44px}}
.resource-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:20px 0 8px}.resource-fields label{font-size:12px;font-weight:700}.resource-fields select{display:block;width:100%;min-height:44px;margin-top:6px;padding:9px 12px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink)}.availability-note{font-size:12px;color:var(--muted);margin:0 0 22px}.booking-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.booking-actions button{min-height:44px;border:1px solid var(--line);border-radius:6px;padding:8px 12px;text-decoration:none;background:#fff;color:var(--accent)}.booking-item>div:first-child{min-width:0}.booking-item details{font-size:12px;margin-top:10px}.booking-item summary{min-height:44px;display:flex;align-items:center}.booking-item ol{padding-left:18px;color:var(--muted)}#reschedule-error{color:var(--danger);min-height:24px;font-size:13px}#reschedule-form>.primary{margin-top:18px}@media(max-width:600px){.booking-item{align-items:stretch;flex-direction:column}.booking-actions{justify-content:flex-start}.slots{grid-template-columns:repeat(3,minmax(0,1fr))}}
