/* Nido Circle — "Playground, grown up": dusty pastel blocks, serif headings, clean sans body, photo-led. Layered over style.css. */
:root{
  --font:"DM Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--serif:"Fraunces",Georgia,"Times New Roman",serif;
  --ink:#2b2a28;--soft:#6c6860;--line:#ebe4d9;--line2:#ddd4c6;--bg:#fbf8f3;--sand:#f3ece1;
  --accent:#3d5a50;--accent-d:#2c443c;--accent-l:#e5ede8;--terra:#3d5a50;--terra-d:#2c443c;
  --role:#b85c1a;--role-l:#f8e8da;
  --p-sage:#e1e9dc;--p-sand:#f1e8d8;--p-blush:#f3e1da;--p-mist:#dde8ea;--p-lilac:#e9e2ee;
  --r:20px;--shadow:0 10px 30px rgba(60,50,35,.08);--shadow-s:0 1px 2px rgba(60,50,35,.06),0 4px 14px rgba(60,50,35,.05);
}
body{background:var(--bg);font-family:var(--font);color:var(--ink)}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;letter-spacing:-.01em;line-height:1.15;font-variation-settings:"opsz" 72}
h1{font-size:clamp(2rem,4.6vw,2.9rem)}h2{font-size:clamp(1.55rem,3vw,2.15rem)}h3{font-size:1.15rem}
.footer h4,.umenu h4,.panel h4,.card h4{font-family:var(--font);font-weight:700;letter-spacing:0}
a{color:var(--accent-d)}
.testbar{background:#efe7da;color:#6a5f4d;border-bottom:0}
.wrap{max-width:1240px}
main#app{padding-bottom:24px}

/* buttons, fields */
.btn{border-radius:12px;background:var(--accent);font-weight:600}.btn:hover{background:var(--accent-d)}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid #cfc5b4}.btn.ghost:hover{background:#fff;border-color:var(--ink)}
.btn.sm{padding:.55em 1.05em}
input,select,textarea{border-radius:12px;border-color:var(--line2);background:#fff}
input:focus,select:focus,textarea:focus{outline:2px solid #a9bfb4;outline-offset:1px;border-color:var(--accent)}
.chip{border-radius:12px;border-color:var(--line2);background:#fff}.chip:hover{border-color:var(--accent)}
.chip.on{background:var(--accent);border-color:var(--accent);color:#fff}
.panel,.card{border-radius:var(--r);border-color:var(--line);box-shadow:none}
.lnk{color:var(--accent-d)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.center{text-align:center}
.fine{color:var(--soft)}

/* header: logo, small-caps centred nav, quiet actions */
.nav{background:rgba(251,248,243,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.hbar{display:grid;grid-template-columns:auto 1fr auto;gap:8px 18px;align-items:center;padding-top:12px;padding-bottom:12px}
.logo{font-family:var(--serif);font-weight:700;font-size:1.3rem;color:var(--ink);letter-spacing:-.01em}
.logo svg rect{fill:var(--accent)}
.snav{display:flex;justify-content:center;gap:4px;order:0}
.sn{padding:.55em 1.1em;border-radius:12px;color:var(--ink);text-decoration:none;font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;transition:background .15s}
.sn:hover{background:var(--p-sand)}.sn.on{background:var(--p-sage);color:var(--accent-d)}
.hr{margin-left:0;order:0;gap:8px}
.hr .btn.ghost{border-color:#cfc5b4}
.hr .signin{background:var(--ink);color:#fff}.hr .signin:hover{background:#000}
.umenu summary{border-radius:12px;padding:8px 10px;background:#fff;border-color:var(--line2)}
.umenu .pop{border-radius:16px;box-shadow:0 12px 40px rgba(60,50,35,.18);width:270px;border:1px solid var(--line)}
.umenu .pop a:hover{background:var(--p-sand)}
.show-m{display:none!important}
@media(max-width:899px){
  .hbar{grid-template-columns:1fr auto;padding-top:10px;padding-bottom:10px}
  .snav{display:none}.hide-m{display:none!important}.show-m{display:flex!important}
}

/* mobile tab bar */
@media(max-width:899px){
  .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;background:rgba(251,248,243,.97);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom));justify-content:space-around}
  .tabbar a{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:.68rem;font-weight:600;color:var(--soft);text-decoration:none;padding:4px 6px;flex:1;border-radius:12px}
  .tabbar a.on{color:var(--accent-d)}
  body{padding-bottom:70px}
}
.footer{background:#f1eadf;border-top:0;margin-top:70px}
.footer h4{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--soft);margin:0 0 8px}
.fcols{display:grid;grid-template-columns:1.3fr 1fr 1.2fr 1fr;gap:28px;margin-bottom:22px}
.fcols a{display:block;padding:3px 0;color:var(--ink)}
.flogo{font-family:var(--serif);font-size:1.25rem}
@media(max-width:700px){.fcols{grid-template-columns:1fr 1fr}}

/* ── home hero (full-bleed photo, serif headline, 3 facts) ── */
.home{padding-top:14px}
.hero{position:relative;border-radius:28px;overflow:hidden;min-height:640px;background:#3a3a36 center 78%/cover no-repeat;color:#fff;display:flex}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(24,22,20,.50) 0%,rgba(24,22,20,.34) 38%,rgba(24,22,20,.62) 100%)}
.hin{position:relative;z-index:1;width:100%;display:flex;flex-direction:column;align-items:center;text-align:center;padding:72px 28px 28px}
.eyebrow{font-size:.74rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;opacity:.92;margin-bottom:18px}
.hero h1{color:#fff;font-size:clamp(2.7rem,7.2vw,5.6rem);line-height:1;font-weight:700;max-width:11ch;margin:0 0 20px;letter-spacing:-.02em;font-variation-settings:"opsz" 144,"SOFT" 30;text-wrap:balance;text-shadow:0 2px 24px rgba(0,0,0,.25)}
.hline{font-size:1.1rem;max-width:34em;margin:0 0 26px;opacity:.95;color:#fff}
.hsearch{display:flex;align-items:center;gap:6px;background:#fff;border-radius:18px;padding:6px;width:min(640px,100%);box-shadow:0 12px 40px rgba(0,0,0,.25)}
.hsearch input{border:0;background:transparent;border-radius:12px;padding:.8em 1em;min-width:0;flex:1.3;color:var(--ink)}
.hsearch input+input{flex:1;border-left:1px solid var(--line);border-radius:0 12px 12px 0}
.hsearch input:focus{outline:none;box-shadow:none}
.hsearch:focus-within{box-shadow:0 12px 40px rgba(0,0,0,.25),0 0 0 3px rgba(255,255,255,.45)}
.pillbtn{border-radius:999px;background:var(--accent);color:#fff;padding:.8em 1.7em;flex:none}.pillbtn:hover{background:var(--accent-d)}
.facts3{margin-top:auto;padding-top:48px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:min(780px,100%);gap:0}
.facts3 a{color:#fff;text-decoration:none;display:flex;flex-direction:column;gap:3px;padding:6px 12px}
.facts3 a+a{border-left:1px solid rgba(255,255,255,.35)}
.facts3 span{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;opacity:.8}
.facts3 b{font-family:var(--serif);font-weight:500;font-size:1.15rem}
.facts3 a:hover b{text-decoration:underline;text-underline-offset:4px}
@media(max-width:700px){
  .hero{min-height:600px;border-radius:22px}.hin{padding:48px 18px 20px}
  .hero h1{font-size:clamp(2.5rem,12vw,3.6rem)}.hline{font-size:1rem}
  .hsearch{flex-direction:column;align-items:stretch;border-radius:18px}.hsearch input+input{border-left:0;border-top:1px solid var(--line);border-radius:0}.pillbtn{width:100%}
  .facts3{padding-top:34px}.facts3 a{padding:4px 6px;text-align:center;align-items:center}.facts3 b{font-size:.92rem}.facts3 span{font-size:.62rem;letter-spacing:.12em}
}

/* ── home sections: calm pastel blocks, max 4 per row ── */
.blk{border-radius:28px;padding:44px clamp(20px,4vw,48px) 40px;margin-top:28px}
.b-pro{background:var(--p-lilac)}.b-ev{background:var(--p-sand)}.b-pl{background:var(--p-sage)}
.blk .shead{margin:0 0 26px;display:block}.blk .shead h2{margin:0 0 6px}.blk .shead p{margin:0;color:var(--soft)}
.hgrid{display:grid;gap:26px 22px;grid-template-columns:repeat(4,minmax(0,1fr))}
.secbtn{display:flex;justify-content:center;margin-top:34px}
@media(max-width:1000px){.hgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.blk{border-radius:22px;padding:30px 16px 28px}.hgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 12px}.hgrid .pbody .sub,.hgrid .gcc,.hgrid .gorg{font-size:.82rem}}

/* ── cards ── */
.pgrid,.pgrid.lg{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:40px 26px}
@media(min-width:1100px){.pgrid,.pgrid.lg,.ggrid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.ggrid{gap:40px 26px}
.pimg,.gimg{border-radius:20px}.pimg{aspect-ratio:4/3}.gimg{aspect-ratio:4/3}
.pcard.pro .pimg{aspect-ratio:4/3}
.pbody h3,.gbody h3{font-family:var(--serif);font-weight:600;font-size:1.12rem;line-height:1.25}
.pbody{padding-top:14px}.gbody{padding-top:14px}
.pbody .sub{font-size:.9rem}
.pbadge{border-radius:8px;background:rgba(255,255,255,.94);font-weight:600;color:var(--ink);box-shadow:none}
.pbadge.gold{background:#f8efd6;color:#6f5413}
.pcard.pro .spec{color:var(--role);font-weight:600}
.pcard.pro .bk{display:none}
.rate .ico{color:var(--accent)}
.recline{font-weight:500;color:var(--soft)}.recline .ico{color:var(--accent)}
.hgrid .pimg,.hgrid .gimg{box-shadow:0 6px 18px rgba(60,50,35,.08)}
/* Mama care highlighted inside the practitioner row */
.pcard.pro.mama{background:#f6e2e6;border-radius:24px;padding:10px 10px 14px;margin:-10px;box-shadow:0 0 0 2px var(--mama-b,#e9b9c8) inset}
.pcard.pro.mama .pbody{padding:14px 6px 0}
.mamatag{border-radius:8px;font-weight:600}
.pcard.pro.mama .pimg .mamatag{background:var(--mama-l,#fbeaf0)}
.heart{border-radius:50%}
.spill{border-radius:8px}
.instt{display:inline-flex;align-items:center;gap:5px;font-size:.82rem;color:var(--accent-d);font-weight:600;margin-top:6px}.instt .ico{color:var(--accent)}
.gbody .badge.inst{display:none}
.gcard .gtype{letter-spacing:.1em;color:var(--role);font-weight:700}
.gcard .gwhen{font-weight:600}

/* initials avatars: calm dusty tones */
.avatar{font-family:var(--serif);font-weight:600}

/* ── filters on directory, events, places ── */
.dirhead,.evhead{align-items:flex-end;margin-bottom:22px}
.dirhead p,.evhead p{margin:0}
.mamalink{display:inline-flex;gap:8px;align-items:center;text-decoration:none;font-weight:600}
.dirfilters,.filters{display:block;background:#fff;border:1px solid var(--line);border-radius:20px;padding:14px;box-shadow:none;margin:0 0 6px}
.frow{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.frow .f1{flex:2 1 260px;min-width:0}.frow>input,.frow>select{flex:1 1 180px;width:auto;min-width:0}
.frow input,.frow select{margin:0;border-radius:12px}
.filters select,.filters input{border-radius:12px;font-size:1rem;padding:.75em .9em}
.morebtn{display:inline-flex;align-items:center;gap:7px;padding:.72em 1.1em;flex:none}
.fpanel,.evpanel{margin-top:12px;padding-top:14px;border-top:1px solid var(--line)}
.fpanel[hidden],.evpanel[hidden]{display:none}
.fpanel{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;align-items:center}
.fpanel select,.fpanel input{margin:0;width:100%;min-width:0;border-radius:12px;font-size:1rem;padding:.75em .9em}
.dirfilters .chk{border-radius:12px}.dirfilters .chk:has(input:checked){background:var(--accent);border-color:var(--accent)}
.evbar{position:static;background:#fff;border:1px solid var(--line);border-radius:20px;margin:0 0 18px;padding:14px}
.evtop{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.evtop .vseg{margin-left:auto}
.evpanel{display:grid;gap:12px}
.evpanel .typechips{flex-wrap:wrap;overflow:visible;margin:0}
.evdates{display:flex;gap:10px;align-items:center}
.evfilters{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;align-items:center}
.evfilters input,.evfilters select{margin:0;width:100%;border-radius:12px}
.vseg{border-radius:12px;border-color:var(--line2)}.vseg button{background:#fff}.vseg button.on{background:var(--accent);color:#fff}
.evbar .chip.on,.chip.tchip.on{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:none}
.chip.morebtn.on{background:var(--p-sage);color:var(--accent-d);border-color:#b9ccbd}
.resline{margin:18px 0 22px}
.evcount{margin:4px 0 18px}

/* misc pages */
.eqsec,.shead{margin-top:44px}
.joinband{border-radius:24px}
.notice{border-radius:14px}
.empty{border-radius:20px;background:var(--p-sand);padding:40px 20px}
.momcard,.ccard,.rcard{border-radius:20px}
.hrow>*{scroll-snap-align:start}
@media(max-width:560px){h1{font-size:2rem}}

/* hearts: rose when saved, always on the photo corner */
.heart.on svg{fill:#c9577a;stroke:#fff}.heart.inline.on svg{fill:#c9577a;stroke:#c9577a}
.gcard>.heart.inline{position:absolute;top:10px;right:10px}.gcard>.heart.inline svg{fill:rgba(0,0,0,.32);stroke:#fff}.gcard>.heart.inline.on svg{fill:#c9577a;stroke:#fff}
/* less text on cards */
.gcard .gorg,.gcard .glang{display:none}
.gcard .gcc{font-size:.88rem;color:var(--soft);text-transform:none;letter-spacing:0}
.facts3 a{align-items:center;text-align:center}
.hero::before{background:linear-gradient(180deg,rgba(24,22,20,.50) 0%,rgba(24,22,20,.30) 36%,rgba(24,22,20,.72) 100%)}

/* mobile polish */
@media(max-width:700px){
  .hgrid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:16px;margin:0 -16px;padding:10px 16px 14px;scrollbar-width:none}.hgrid::-webkit-scrollbar{display:none}
  .hgrid>*{flex:0 0 76%;scroll-snap-align:start}
  .hgrid .pbody .sub,.hgrid .gcc{font-size:.9rem}
  .pcard.pro.mama{margin:0}
  .hsearch{padding:8px}.hsearch input{padding:.85em 1em}
  .pgrid,.pgrid.lg,.ggrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 14px}
  .pbody h3,.gbody h3{font-size:1rem}
  .pcard.pro.mama{margin:-6px;padding:6px 6px 10px}
}
@media(max-width:420px){.pgrid,.pgrid.lg,.ggrid{grid-template-columns:1fr}}
