:root{--font-display:"Fraunces", Georgia, "Times New Roman", serif;--font-body:"Hanken Grotesk", ui-sans-serif, system-ui, sans-serif;--paper:#f6f4ee;--surface:#fffdf8;--ink:#16241e;--muted:#6b7b73;--line:#e4e0d6;--primary:#1b7a63;--primary-d:#13624f;--primary-soft:#e4f2ec;--accent:#34a98c;--danger:#c0392b;--danger-soft:#fbeae6;--ok:#2e7d52;--ok-soft:#e3f3ea;--shadow-sm:0 1px 2px #16241e0d;--shadow-md:0 1px 2px #16241e0d, 0 14px 30px -18px #16241e59;--radius:16px}*{box-sizing:border-box}html,body{font-family:var(--font-body);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;padding:0}body:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(60% 50% at 12% 0,#34a98c24,#0000 60%),radial-gradient(50% 45% at 100% 0,#1b7a631a,#0000 55%),radial-gradient(40% 40% at 80% 100%,#e3c8781f,#0000 60%);position:fixed;inset:0}a{color:var(--primary-d);text-decoration:none;transition:color .15s}a:hover{color:var(--primary);text-decoration:underline}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);font-weight:600}.btn{background:var(--primary);color:#fff;border:1px solid var(--primary);font-family:var(--font-body);cursor:pointer;box-shadow:var(--shadow-sm);border-radius:11px;justify-content:center;align-items:center;gap:7px;padding:10px 18px;font-size:14px;font-weight:600;transition:transform .15s,background .15s,box-shadow .15s;display:inline-flex}.btn:hover{background:var(--primary-d);border-color:var(--primary-d);box-shadow:var(--shadow-md);text-decoration:none;transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:focus-visible{outline-offset:2px;outline:3px solid #1b7a6359}.btn.secondary{background:var(--surface);color:var(--primary-d);border:1px solid var(--line)}.btn.secondary:hover{background:#fff}.btn.danger{background:var(--surface);color:var(--danger);border:1px solid #f0c7bf}.btn.danger:hover{background:var(--danger-soft)}.btn.ghost{color:var(--muted);border:1px solid var(--line);background:0 0}.btn.ghost:hover{color:var(--ink)}input,select,textarea{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--ink);border-radius:11px;padding:11px 13px;font-family:inherit;font-size:14px;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 4px #1b7a6324}label{letter-spacing:.02em;text-transform:uppercase;color:var(--muted);margin:14px 0 6px;font-size:12.5px;font-weight:600;display:block}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:24px;transition:transform .18s,box-shadow .18s}.card:hover{box-shadow:var(--shadow-md)}.row{flex-wrap:wrap;gap:14px;display:flex}.row>*{flex:1;min-width:150px}.nav{z-index:20;-webkit-backdrop-filter:saturate(140%)blur(12px);backdrop-filter:saturate(140%)blur(12px);border-bottom:1px solid var(--line);background:#fffdf8d1;align-items:center;gap:22px;padding:14px 28px;display:flex;position:sticky;top:0}.nav .brand{font-family:var(--font-display);color:var(--primary-d);letter-spacing:-.02em;font-size:21px;font-weight:600}.nav a{color:#365049;font-size:14px;font-weight:500}.nav a:hover{color:var(--primary);text-decoration:none}.nav .spacer{flex:1}.page{max-width:1080px;margin:40px auto;padding:0 28px}.page h1{margin:0 0 6px;font-size:clamp(28px,4vw,38px)}.page .sub{color:var(--muted);margin:0 0 28px;font-size:15px}.grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;display:grid}.err{background:var(--danger-soft);color:var(--danger);border:1px solid #f0c7bf;border-radius:10px;margin-bottom:14px;padding:10px 13px;font-size:13px}.ok{background:var(--ok-soft);color:var(--ok);border:1px solid #bfe6cd;border-radius:12px;margin-bottom:14px;padding:14px 16px;font-size:14px}.badge{letter-spacing:.01em;border-radius:999px;padding:3px 11px;font-size:12px;font-weight:600;display:inline-block}.badge.booked{background:var(--primary-soft);color:var(--primary-d)}.badge.cancelled{background:var(--danger-soft);color:var(--danger)}.badge.completed{background:var(--ok-soft);color:var(--ok)}.slot{border:1px solid var(--line);background:var(--surface);cursor:pointer;color:var(--primary-d);border-radius:10px;padding:9px 14px;font-size:14px;font-weight:600;transition:transform .12s,background .12s,border-color .12s}.slot:hover{border-color:var(--primary);transform:translateY(-1px)}.slot.selected{background:var(--primary);color:#fff;border-color:var(--primary)}.hero{text-align:center;max-width:1000px;margin:0 auto;padding:90px 28px 70px}.hero .eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--primary-d);background:var(--primary-soft);border:1px solid #cde9dd;border-radius:999px;margin-bottom:22px;padding:6px 14px;font-size:12.5px;font-weight:700;display:inline-block}.hero h1{letter-spacing:-.025em;margin:0 0 18px;font-size:clamp(40px,7vw,68px);line-height:1.02}.hero h1 .hl{background:linear-gradient(100deg, var(--primary), var(--accent));color:#0000;-webkit-background-clip:text;background-clip:text}.hero p{color:#4a5a53;max-width:640px;margin:0 auto 32px;font-size:19px;line-height:1.55}.cta{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.cta .btn{padding:13px 24px;font-size:15px}.stat .num{font-family:var(--font-display);color:var(--ink);font-size:38px;font-weight:600;line-height:1}.stat .lbl{color:var(--muted);margin-top:6px;font-size:13.5px}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.hero .eyebrow,.hero h1,.hero p,.hero .cta{animation:.6s cubic-bezier(.2,.7,.2,1) both rise}.hero p{animation-delay:80ms}.hero .cta{animation-delay:.16s}.grid .card{animation:.5s both rise}.grid .card:nth-child(2){animation-delay:50ms}.grid .card:nth-child(3){animation-delay:.1s}.grid .card:nth-child(4){animation-delay:.15s}.grid .card:nth-child(5){animation-delay:.2s}.grid .card:nth-child(6){animation-delay:.25s}@media (max-width:640px){.nav{flex-wrap:wrap;gap:12px;padding:12px 16px}.nav .spacer{display:none}.page{margin:24px auto;padding:0 16px}}@media (prefers-reduced-motion:reduce){*,:before{transition:none!important;animation:none!important}}
