:root{--cream:#FBF6EE;--sand:#F3E9DA;--card:#fff;--ink:#3B2F2A;--soft:#7a6a60;--terra:#C8745A;--terra-d:#a95b43;--sage:#7E9F83;--sage-l:#e6efe6;--line:#eadfce;--warn:#fff3d6;--r:18px;--shadow:0 6px 24px rgba(90,60,40,.08)}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font:400 17px/1.55 Nunito,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:600;line-height:1.15;margin:0 0 .5em;letter-spacing:-.01em}
h1{font-size:clamp(2.1rem,6vw,3.4rem)}h2{font-size:clamp(1.6rem,4vw,2.2rem)}h3{font-size:1.25rem}
a{color:var(--terra-d)}p{margin:0 0 1em}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}.narrow{max-width:680px}
.testbar{background:var(--ink);color:#fff;font-size:.8rem;text-align:center;padding:6px 10px}
.nav{position:sticky;top:0;z-index:20;background:rgba(251,246,238,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;gap:14px;height:62px}
.logo{font:600 1.35rem Fraunces,serif;text-decoration:none;color:var(--ink);margin-right:auto;display:flex;gap:8px;align-items:center}
.nav a.l{text-decoration:none;color:var(--ink);font-weight:600;font-size:.95rem}.nav a.l:hover{color:var(--terra)}
.nav .hide-m{display:none}@media(min-width:720px){.nav .hide-m{display:inline}}
.btn{display:inline-block;border:0;border-radius:999px;background:var(--terra);color:#fff;font:700 1rem Nunito,sans-serif;padding:.8em 1.5em;cursor:pointer;text-decoration:none;transition:.15s}
.btn:hover{background:var(--terra-d);transform:translateY(-1px)}.btn.ghost{background:transparent;color:var(--terra-d);border:2px solid var(--terra)}.btn.sage{background:var(--sage)}
.btn.sm{padding:.45em 1em;font-size:.9rem}.btn[disabled]{opacity:.5;pointer-events:none}
.hero{padding:56px 0 40px;background:radial-gradient(900px 400px at 85% 0,#f6dcc9 0,transparent 60%),radial-gradient(700px 400px at 0 100%,#dfeadb 0,transparent 60%)}
.hero p.lead{font-size:1.2rem;color:var(--soft);max-width:560px}
.searchbox{display:flex;flex-wrap:wrap;gap:10px;background:#fff;padding:12px;border-radius:var(--r);box-shadow:var(--shadow);margin-top:24px;max-width:720px}
.searchbox select,.searchbox input{flex:1 1 150px}
input,select,textarea{font:inherit;color:inherit;border:1.5px solid var(--line);border-radius:12px;padding:.7em .9em;background:#fff;width:100%}
input:focus,select:focus,textarea:focus{outline:3px solid #f1cdbd;border-color:var(--terra)}
label{display:block;font-weight:700;font-size:.92rem;margin:14px 0 5px}label small{font-weight:400;color:var(--soft)}
section.s{padding:44px 0}.alt{background:var(--sand)}
.grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.card{background:var(--card);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column;text-decoration:none;color:inherit;position:relative;transition:.15s}
a.card:hover{transform:translateY(-3px)}
.card .body{padding:16px 18px 18px}
.avatar{display:flex;align-items:center;justify-content:center;font-size:3rem;aspect-ratio:4/3;width:100%;object-fit:cover}
.avatar.round{width:120px;height:120px;aspect-ratio:1;border-radius:50%;font-size:3.4rem;flex:none}
.tile{padding:18px;border-radius:var(--r);background:#fff;box-shadow:var(--shadow);text-decoration:none;color:inherit;display:flex;gap:12px;align-items:center;font-weight:700}
.tile span.e{font-size:1.8rem}.tile:hover{outline:2px solid var(--terra)}
.badge{display:inline-flex;align-items:center;gap:4px;font-size:.78rem;font-weight:700;padding:.2em .7em;border-radius:999px;background:var(--sage-l);color:#3f6a47}
.badge.sample{background:var(--warn);color:#8a6414}.badge.pend{background:#eee;color:#666}.badge.bad{background:#fde3e0;color:#a33}
.ribbon{position:absolute;top:10px;left:10px}
.meta{color:var(--soft);font-size:.9rem}
.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1.5px solid var(--line);background:#fff;border-radius:999px;padding:.4em 1em;font-weight:700;cursor:pointer;font-size:.92rem;color:var(--ink)}
.chip.on{background:var(--terra);color:#fff;border-color:var(--terra)}
.notice{background:var(--warn);border-radius:14px;padding:12px 16px;font-size:.92rem;margin:0 0 18px}
.notice.ok{background:var(--sage-l)}
.steps3{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.steps3 .n{font:600 2rem Fraunces,serif;color:var(--terra)}
.prof-head{display:flex;gap:22px;align-items:center;flex-wrap:wrap;padding:34px 0 10px}
.svc{display:flex;gap:12px;align-items:center;justify-content:space-between;background:#fff;border-radius:14px;padding:14px 16px;box-shadow:var(--shadow);margin-bottom:10px;flex-wrap:wrap}
.price{font:600 1.2rem Fraunces,serif}
.panel{background:#fff;border-radius:var(--r);box-shadow:var(--shadow);padding:22px;margin:18px 0}
.days,.slots{display:flex;flex-wrap:wrap;gap:8px}
.progress{height:8px;background:var(--line);border-radius:9px;overflow:hidden;margin:6px 0 4px}.progress i{display:block;height:100%;background:var(--terra);transition:.3s}
.row{display:grid;gap:10px;grid-template-columns:1fr}@media(min-width:620px){.row.two{grid-template-columns:1fr 1fr}.row.svcrow{grid-template-columns:3fr 1fr 1fr}}
.plans{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.plan{background:#fff;border:2px solid var(--line);border-radius:var(--r);padding:24px;position:relative;cursor:default}
.plan.sel{border-color:var(--terra);box-shadow:var(--shadow)}.plan .big{font:600 2.4rem Fraunces,serif}.plan ul{padding-left:1.1em;margin:.5em 0 1em}
.plan .tag{position:absolute;top:-12px;right:18px;background:var(--terra);color:#fff;font-size:.78rem;font-weight:700;border-radius:99px;padding:.2em .8em}
table{width:100%;border-collapse:collapse;font-size:.92rem}th,td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line);vertical-align:top}
.err{color:#b3261e;font-weight:700;margin:10px 0}.fine{font-size:.85rem;color:var(--soft)}
.footer{margin-top:60px;padding:34px 0;background:var(--ink);color:#e9ddd0;font-size:.9rem}.footer a{color:#f5c8b4}
.fakecard{display:grid;gap:10px}.fakecard input{background:#f5f5f5}
details{background:#fff;border-radius:14px;padding:12px 16px;margin-bottom:10px;box-shadow:var(--shadow)}summary{font-weight:700;cursor:pointer}
.photo-prev{width:120px;height:120px;border-radius:50%;object-fit:cover;background:var(--sand);display:flex;align-items:center;justify-content:center;font-size:2.4rem}
.center{text-align:center}.mt{margin-top:24px}.flex{display:flex;gap:10px;flex-wrap:wrap;align-items:center}

.avatar{font:600 3rem Fraunces,serif;letter-spacing:.02em}.avatar.round{font-size:2.6rem}
.tile{border:1px solid rgba(90,60,40,.08);box-shadow:none;transition:.15s}.tile:hover{transform:translateY(-2px);outline:none;box-shadow:var(--shadow)}
.cpill{display:inline-block;font-size:.8rem;font-weight:700;padding:.15em .75em;border-radius:999px;margin-right:2px}
.where::before{content:"";}
.photo-prev{font:600 1.6rem Fraunces,serif;color:var(--soft)}

.evrow{display:flex;gap:14px;align-items:center}.evdate{flex:none;width:62px;border-radius:14px;background:#F6E4C6;color:#78501A;text-align:center;padding:8px 0;line-height:1}
.evdate b{display:block;font:600 1.7rem Fraunces,serif}.evdate span{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.evwhen{font-weight:700;font-size:.95rem}.card.evc{box-shadow:var(--shadow)}

.searchbox input[name=q]{flex:2 1 220px}.searchbox [name=city]{flex:1 1 140px}
.tile{flex-direction:column;align-items:flex-start;gap:4px}.tile small{font-weight:500;opacity:.82;font-size:.82rem;line-height:1.35}
.tile span{font-weight:700}
.searchbox select[hidden]{display:none}

.fnav{margin:14px 0 20px;overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}.fnav .chip{white-space:nowrap;text-decoration:none}
.famgrid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.tilecard{text-decoration:none;color:inherit}.tilecard:hover{outline:2px solid var(--terra)}
.big2{font:600 1.9rem Fraunces,serif;margin:2px 0}.card.soon{background:#F5F1EA;border:1px dashed #D9CDBB;box-shadow:none}
.famintro{background:#F6E4C6;border:0;max-width:760px;margin:0 auto}.famintro .lead{margin:8px 0 12px}
.ticks{list-style:none;padding:0;margin:0 0 14px}.ticks li{padding:4px 0 4px 22px;position:relative}.ticks li:before{content:"";position:absolute;left:4px;top:.85em;width:8px;height:8px;border-radius:50%;background:#B85C38}
.receipt{background:#fff;border:1px solid #E6DCCD;border-radius:var(--r);padding:20px;max-width:640px}.receipt hr{border:0;border-top:1px solid #EADFD0;margin:16px 0}.receipt table{width:100%}
@media print{#nav,#footer,.fnav,.noprint,#fout{display:none!important}body{background:#fff}.receipt{border:0;padding:0}}

.nav .show-m{display:inline}@media(min-width:720px){.nav .show-m{display:none}}
.nav a.evlink{color:var(--terra)}
.typechips{margin:0 0 14px}.chip.tchip{text-decoration:none}.chip.tchip.on{outline:2px solid var(--ink);outline-offset:1px}
.chip.agechip{display:inline-flex;align-items:center;gap:6px;margin:0;font-weight:600}.chip.agechip input{width:auto;margin:0}
.evfilters{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:18px;align-items:end}
.evfilters .fl{display:flex;flex-direction:column;font-size:.78rem;font-weight:700;gap:2px;margin:0}.evfilters .fl input{width:100%}
.evfilters input,.evfilters select{width:100%}
@media(min-width:720px){.evfilters{grid-template-columns:repeat(4,1fr)}}
.card.evc.retreat{border:1.5px solid #E4DCEB}
#ev-form[hidden]{display:none}
