:root,:root[data-theme=dark]{--bg:#101114;--surface:#17181d;--ink:#f0efeb;--ink-soft:#9ba0ab;--line:#262930;--accent:#4d6bff;--accent-dark:#6b84ff;--accent-soft:#1b2140;--panel:#1c1e24;--panel-text:#f0efeb;--panel-soft:#9ba0ab;--panel-line:#2c2f37;--booked-bg:#3a3d46;--booked-text:#ffffffd9;--ok-bg:#17301d;--ok-line:#2c5236;--ok-text:#7fd695;--warn-bg:#33290f;--warn-line:#5c4c1e;--warn-text:#e5c05a;--danger:#ff7b70;--radius:14px;--shadow:0 1px 2px #00000080, 0 8px 24px #00000059;--font:"Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--bg:#f7f6f3;--surface:#fff;--ink:#16181c;--ink-soft:#5b5f68;--line:#e6e3dc;--accent:#2547e0;--accent-dark:#1c37b4;--accent-soft:#edf0fd;--panel:#16181c;--panel-text:#fff;--panel-soft:#ffffffa6;--panel-line:#fff3;--booked-bg:#16181c;--booked-text:#ffffffd9;--ok-bg:#e5f4e8;--ok-line:#bcd9c1;--ok-text:#1e6b34;--warn-bg:#fdf3e0;--warn-line:#edd9ac;--warn-text:#8a6413;--danger:#b3261e;--shadow:0 1px 2px #16181c0d, 0 8px 24px #16181c0f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:24px}body{font-family:var(--font);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.6}.container{max-width:1080px;margin:0 auto;padding:0 24px}h1,h2,h3{letter-spacing:-.02em;font-weight:800;line-height:1.15}h2{font-size:clamp(1.7rem,3.5vw,2.4rem)}a{color:inherit;text-decoration:none}.btn{font:600 .95rem var(--font);cursor:pointer;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:13px 26px;transition:background .15s,border-color .15s,transform .1s;display:inline-flex}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-dark)}.btn-primary:disabled{opacity:.6;cursor:default}.btn-ghost{border-color:var(--line);color:var(--ink);background:0 0}.btn-ghost:hover{border-color:var(--ink)}.btn-sm{padding:9px 20px;font-size:.875rem}.btn-block{width:100%}.theme-toggle{z-index:50;border:1px solid var(--line);background:var(--surface);width:38px;height:38px;color:var(--ink-soft);cursor:pointer;box-shadow:var(--shadow);border-radius:50%;place-items:center;transition:color .15s,border-color .15s;display:grid;position:fixed;top:18px;right:18px}.theme-toggle:hover{color:var(--accent);border-color:var(--accent)}.wordmark{letter-spacing:.12em;font-size:1rem;font-weight:800}.wordmark-dot{color:var(--accent)}.hero{background:radial-gradient(70% 90% at 50% 0%, var(--accent-soft) 0%, transparent 65%), var(--bg);padding:72px 0 48px}.hero-inner{text-align:center;justify-items:center;gap:18px;display:grid}.hero-logo{background:var(--surface);border:1px solid var(--line);width:132px;height:132px;box-shadow:var(--shadow);letter-spacing:-.02em;border-radius:50%;place-items:center;font-size:3.2rem;font-weight:800;display:grid;overflow:hidden}.hero-logo img{object-fit:cover;width:100%;height:100%}.hero-brand{cursor:default;margin:0;font-size:1.4rem}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:14px;font-size:.8rem;font-weight:700}.hero .eyebrow{margin-bottom:0}.section{padding:90px 0}.package-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-top:40px;display:grid}.package-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;padding:30px 26px;display:flex;position:relative}.package-card.popular{border-color:var(--accent);outline:3px solid var(--accent-soft)}.badge{background:var(--accent);color:#fff;letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:4px 12px;font-size:.72rem;font-weight:700;position:absolute;top:-12px;left:26px}.package-card h3{font-size:1.25rem}.package-tagline{color:var(--ink-soft);min-height:2.8em;margin-top:6px;font-size:.92rem}.package-price{align-items:baseline;gap:10px;margin:18px 0 6px;display:flex}.package-price .amount{letter-spacing:-.03em;font-size:2.2rem;font-weight:800}.package-price .meta{color:var(--ink-soft);font-size:.85rem}.feature-list{flex:1;gap:9px;margin:16px 0 26px;list-style:none;display:grid}.feature-list li{padding-left:24px;font-size:.92rem;position:relative}.feature-list li:before{content:"✓";color:var(--accent);font-weight:700;position:absolute;left:0}.package-note{color:var(--ink-soft);margin:-14px 0 20px;font-size:.8rem}.fine-print{color:var(--ink-soft);max-width:72ch;margin-top:22px;font-size:.83rem}.booking-layout{grid-template-columns:1.7fr 1fr;align-items:start;gap:24px;margin-top:36px;display:grid}.booking-form{gap:22px;display:grid}fieldset{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:22px 24px 26px}legend{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);padding:0 8px;font-size:.85rem;font-weight:700}.field-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.field-row+.field-row,fieldset label+label,.field-row+label,.addon-checks+.field-row{margin-top:16px}label{gap:6px;font-size:.85rem;font-weight:600;display:grid}.req{color:var(--accent)}input,select,textarea{font:500 .95rem var(--font);color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:10px;width:100%;padding:11px 14px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:#0000}textarea{resize:vertical}.addon-checks{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.check-chip{border:1px solid var(--line);cursor:pointer;background:var(--bg);border-radius:999px;align-items:center;gap:8px;padding:8px 16px;font-size:.85rem;transition:border-color .15s,background .15s;display:inline-flex}.check-chip input{display:none}.check-chip span{color:var(--ink-soft);font-weight:700}.check-chip.checked{background:var(--accent-soft);border-color:var(--accent)}.addon-note{margin-top:12px}.cal-hint{color:var(--ink-soft);margin-bottom:14px;font-size:.85rem}.week-sched{max-width:480px;margin-bottom:16px}.week-nav{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.week-nav span{font-size:.98rem;font-weight:700}.week-nav button{border:1px solid var(--line);background:var(--bg);width:32px;height:32px;color:var(--ink);cursor:pointer;border-radius:50%;font-size:1.1rem;line-height:1}.week-nav button:hover:not(:disabled){border-color:var(--ink)}.week-nav button:disabled{opacity:.35;cursor:default}.week-days{grid-template-columns:repeat(3,1fr);gap:12px;transition:opacity .15s;display:grid}.week-days.loading{opacity:.45}.week-day{background:var(--surface);border:1px solid var(--line);border-radius:12px;align-content:start;gap:8px;padding:14px;display:grid}.week-day.past{opacity:.45}.week-day-head{gap:2px;margin-bottom:4px;font-size:.92rem;font-weight:700;display:grid}.week-day-date{color:var(--ink-soft);font-size:.76rem;font-weight:600}.slot-btn{border:1px dashed var(--line);background:var(--bg);font:600 .85rem var(--font);color:var(--ink);cursor:pointer;border-radius:9px;width:100%;padding:10px 0;transition:border-color .12s,color .12s}.slot-btn:hover:not(:disabled):not(.selected){border-color:var(--accent);color:var(--accent);border-style:solid}.slot-btn:disabled{color:var(--ink-soft);opacity:.45;cursor:default;border-style:solid;text-decoration:line-through}.slot-btn.selected{background:var(--accent);border:1px solid var(--accent);color:#fff}.week-legend{margin-top:10px;font-size:.8rem}.cal-note{color:var(--ink-soft);font-size:.88rem}.cal-note.error{color:var(--danger);margin-top:12px}.submit-error{font-weight:600;color:#ffb4ab!important}.summary-when{margin-bottom:12px;font-size:.92rem;font-weight:700}.booking-summary{background:var(--panel);color:var(--panel-text);border-radius:var(--radius);padding:28px 26px;position:sticky;top:24px}.booking-summary h3{margin-bottom:18px;font-size:1.05rem}.booking-summary dl{gap:10px;margin-bottom:18px;display:grid}.booking-summary dl>div{justify-content:space-between;gap:12px;font-size:.92rem;display:flex}.booking-summary dd{font-weight:700}.summary-total{border-top:1px solid var(--panel-line);margin-top:6px;padding-top:12px;font-size:1.05rem!important}.summary-total dt{font-weight:700}.booking-summary .fine-print{color:var(--panel-soft);margin:0 0 18px}.booking-confirm{justify-content:center;display:flex}.confirm-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);text-align:center;justify-items:center;gap:14px;max-width:560px;padding:48px 44px;display:grid}.confirm-check{background:var(--accent-soft);width:52px;height:52px;color:var(--accent);border-radius:50%;place-items:center;font-size:1.5rem;font-weight:800;display:grid}.footer{background:var(--panel);color:var(--panel-text);padding:64px 0 28px}.footer-grid{grid-template-columns:1.4fr 1fr 1fr;gap:40px;display:grid}.footer h4{letter-spacing:.12em;text-transform:uppercase;color:var(--panel-soft);margin-bottom:12px;font-size:.8rem}.footer p{margin-bottom:6px;font-size:.92rem}.footer a:hover{color:var(--panel-text);text-decoration:underline}.footer-tag{color:var(--panel-soft);max-width:34ch}.hours-days{min-width:84px;color:var(--panel-soft);display:inline-block}.footer-legal{border-top:1px solid var(--panel-line);color:var(--panel-soft);margin-top:48px;padding-top:20px;font-size:.8rem}.admin-login{place-items:center;min-height:100vh;padding:24px;display:grid}.admin-login .confirm-card{text-align:left;justify-items:stretch;width:100%;max-width:380px}.admin-login h2{font-size:1.3rem}.admin-bar{border-bottom:1px solid var(--line);background:var(--surface);justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.admin-tag{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-left:10px;font-size:.7rem;font-weight:700}.admin-main{gap:48px;padding:40px 24px 80px;display:grid}.admin-main h2{margin-bottom:16px;font-size:1.3rem}.acal-nav{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.acal-nav h2{margin:0}.acal-nav-controls{align-items:center;gap:14px;display:flex}.acal-nav-controls span{text-align:center;min-width:140px;font-weight:700}.acal-nav-controls button{border:1px solid var(--line);background:var(--bg);width:32px;height:32px;color:var(--ink);cursor:pointer;border-radius:50%;font-size:1.1rem;line-height:1}.acal-nav-controls button:hover{border-color:var(--ink)}.acal-scroll{overflow-x:auto}.acal-grid{grid-template-columns:repeat(7,minmax(96px,1fr));gap:4px;min-width:720px;display:grid}.acal-dow{text-align:center;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);padding:4px 0;font-size:.72rem;font-weight:700}.acal-cell{background:var(--surface);border:1px solid var(--line);border-radius:10px;align-content:start;gap:4px;min-height:84px;padding:6px;display:grid}.acal-cell.blank{background:0 0;border-color:#0000}.acal-cell.today{border-color:var(--accent)}.acal-daynum{color:var(--ink-soft);font-size:.75rem;font-weight:700}.acal-chip{font:600 .74rem var(--font);text-align:left;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border:0;border-radius:7px;padding:5px 8px;overflow:hidden}.acal-chip.pending{background:var(--warn-bg);color:var(--warn-text)}.acal-chip.confirmed{background:var(--ok-bg);color:var(--ok-text)}.acal-chip.blocked{background:var(--booked-bg);color:var(--booked-text)}.acal-chip.cancelled{background:var(--bg);color:var(--ink-soft);opacity:.7;text-decoration:line-through}.modal-overlay{z-index:60;background:#0000008c;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);width:100%;max-width:440px;max-height:85vh;padding:24px;overflow-y:auto}.modal-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.modal-head h3{font-size:1.15rem}.modal-info{gap:10px;margin-bottom:20px;display:grid}.modal-info>div{grid-template-columns:96px 1fr;gap:10px;font-size:.9rem;display:grid}.modal-info dt{color:var(--ink-soft);font-weight:600}.modal-info a{color:var(--accent);font-weight:600}.modal-actions{flex-wrap:wrap;gap:10px;display:flex}.status-pill{letter-spacing:.08em;text-transform:uppercase;background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:3px 10px;font-size:.7rem;font-weight:700}.status-pill.confirmed{background:var(--ok-bg);border-color:var(--ok-line);color:var(--ok-text)}.status-pill.pending{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn-text)}.status-pill.blocked{background:var(--booked-bg);border-color:var(--booked-bg);color:var(--booked-text)}.admin-block{background:var(--surface);border:1px solid var(--line);border-radius:12px;flex-wrap:wrap;align-items:end;gap:14px;margin-top:14px;padding:18px;display:flex}.admin-block label{min-width:130px}.admin-slot-pick{gap:6px;display:grid}.admin-slot-label{font-size:.85rem;font-weight:600}.admin-slot-btns{gap:8px;display:flex}.admin-block .slot-btn{width:auto;padding:10px 18px}.note-add{align-items:flex-end;gap:12px;margin:14px 0 20px;display:flex}.note-add textarea{flex:1}.note-list{gap:8px;list-style:none;display:grid}.note-row{background:var(--surface);border:1px solid var(--line);border-radius:12px;align-items:flex-start;gap:14px;padding:14px 16px;display:flex}.note-row textarea,.note-body{flex:1}.note-body p{white-space:pre-wrap;font-size:.92rem}.note-body em{color:var(--ink-soft);font-size:.78rem;font-style:normal}.note-actions{flex-shrink:0;gap:8px;display:flex}.pe-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;gap:14px;margin:14px 0;padding:18px;display:grid}.pe-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:end;gap:14px;display:grid}.pe-inline{align-items:center;gap:8px;padding-bottom:12px;font-size:.85rem;display:flex}.pe-inline input{width:auto}.pe-delete{justify-self:start}.pe-subhead{margin-top:32px;font-size:1.05rem}.pe-note-field{margin-top:24px;display:grid}.pe-savebar{background:var(--bg);align-items:center;gap:14px;margin-top:20px;padding:12px 0;display:flex;position:sticky;bottom:0}.pe-savebar .fine-print{margin:0}@media (width<=860px){.booking-layout{grid-template-columns:1fr}.booking-summary{position:static}.footer-grid{grid-template-columns:1fr;gap:28px}}@media (width<=640px){.hero{padding:48px 0 32px}.hero-logo{width:108px;height:108px;font-size:2.6rem}.field-row{grid-template-columns:1fr}.section{padding:64px 0}}
