/* Family sites — one stylesheet. Each site supplies its palette as :root
   variables (paper, top, ink, mute, line, accent, on-accent) from its
   content file; nothing here names a color directly except neutrals. */

*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html,body{margin:0;padding:0}
body{background:var(--paper);color:var(--ink);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
a{color:inherit}
img{max-width:100%}
.wrap{max-width:1000px;margin:0 auto;padding:0 22px}
.narrow{max-width:720px}
h1,h2,h3{font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;line-height:1.08;margin:0}
h1{font-size:clamp(40px,7vw,64px);letter-spacing:-.01em}
h2{font-size:clamp(30px,4.4vw,40px);margin-bottom:18px}
h3{font-size:24px;font-weight:600}
p{margin:0 0 16px}
.eyebrow{font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--mute);margin:0 0 14px}

/* buttons */
.btn{display:inline-block;background:var(--accent);color:var(--on-accent);font:600 15px/1 Inter,sans-serif;
  padding:14px 24px;border-radius:999px;text-decoration:none;border:1.5px solid var(--accent);cursor:pointer;transition:filter .15s,background .15s}
.btn:hover{filter:brightness(.92)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--accent);filter:none}
.ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}

/* header */
.top{background:var(--top);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:72px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}
.brand img{width:36px;height:36px;flex:none}
.brand .wm{display:flex;flex-direction:column;line-height:1.15}
.brand b{font-family:"Cormorant Garamond",serif;font-size:23px;font-weight:600}
.brand small{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);font-weight:500}
nav{display:flex;gap:22px;align-items:center;font-size:14.5px}
nav a{text-decoration:none;color:var(--ink)}
nav a:hover,nav a.on{color:var(--accent-text)}
nav a.cta{background:var(--accent);color:var(--on-accent);padding:9px 16px;border-radius:999px}
nav a.cta:hover{color:var(--on-accent);filter:brightness(.92)}
.navtoggle{display:none;background:none;border:0;font-size:24px;color:var(--ink);cursor:pointer;padding:6px}
@media (max-width:720px){
  .navtoggle{display:block}
  nav{display:none;position:absolute;left:0;right:0;top:72px;flex-direction:column;align-items:stretch;gap:0;
    background:var(--top);border-bottom:1px solid var(--line);padding:6px 22px 18px}
  nav.open{display:flex}
  nav a{padding:13px 0;border-bottom:1px solid var(--line);font-size:16px}
  nav a.cta{margin-top:14px;text-align:center;border-bottom:0}
  .brand b{font-size:20px}
}

/* sections */
.hero{padding:88px 0 40px}
.hero h1{max-width:15ch}
.lede{font-size:clamp(18px,2.2vw,21px);max-width:36em;margin-top:22px;color:var(--ink);opacity:.86}
.block{padding:44px 0}
.block + .block{padding-top:12px}
blockquote{margin:0 0 20px;padding:18px 22px;border-left:3px solid var(--accent);background:var(--card,rgba(255,255,255,.55));font-style:italic}
.lines{list-style:none;margin:0;padding:0}
.lines li{padding:14px 0 14px 26px;border-bottom:1px solid var(--line);position:relative}
.lines li:before{content:"";position:absolute;left:0;top:25px;width:9px;height:9px;border-radius:50%;background:var(--accent)}
.lines li:last-child{border-bottom:0}
.close{font-family:"Cormorant Garamond",serif;font-size:26px;font-style:italic;margin-top:22px}
.notfor{border:1px solid var(--line);border-radius:16px;padding:28px 28px 12px;background:var(--card,rgba(255,255,255,.5))}
.notfor h2{font-size:30px}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.card{background:var(--card,rgba(255,255,255,.6));border:1px solid var(--line);border-radius:16px;padding:24px}
.card h3{margin-bottom:10px}
.card p{margin:0;font-size:16px}
@media (max-width:760px){.cards{grid-template-columns:1fr}}
.steps{list-style:none;counter-reset:s;margin:8px 0 20px;padding:0}
.steps li{counter-increment:s;position:relative;padding:14px 0 14px 50px;border-bottom:1px solid var(--line)}
.steps li:last-child{border-bottom:0}
.steps li:before{content:counter(s);position:absolute;left:0;top:12px;width:32px;height:32px;border-radius:50%;
  background:var(--accent);color:var(--on-accent);font:600 14px/32px Inter,sans-serif;text-align:center}
.offers{display:grid;gap:14px;margin-top:10px}
.offer{border:1px solid var(--line);border-radius:16px;padding:22px 24px 8px;background:var(--card,rgba(255,255,255,.55))}
.offer h3{margin-bottom:10px;display:flex;flex-wrap:wrap;align-items:baseline;gap:10px}
.tag{font:600 11px/1 Inter,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-text);
  border:1px solid var(--line);border-radius:999px;padding:5px 9px}
.person{padding:8px 0 20px;border-bottom:1px solid var(--line);margin-bottom:24px}
.person:last-child{border-bottom:0}
.person h3{font-size:30px;margin-bottom:6px}
.creds{font-size:14px;letter-spacing:.04em;color:var(--mute)}
.band{background:var(--top);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:56px 0;margin-top:40px;text-align:center}
.band .ctas{justify-content:center}
.band p{max-width:34em;margin:0 auto}
.narrowp{max-width:40em}

/* family grid (sections + footer) */
.fam-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin-top:6px}
.fam-item{display:block;text-decoration:none;padding:14px 16px 14px 34px;border:1px solid var(--line);border-radius:12px;position:relative;
  background:var(--card,rgba(255,255,255,.45));transition:border-color .15s}
.fam-item:hover{border-color:var(--c)}
.fam-item .dot{position:absolute;left:14px;top:20px;width:10px;height:10px;border-radius:50%;background:var(--c)}
.fam-item .dot{box-shadow:0 0 0 1.5px var(--dot-ring,transparent)}
.fam-item .dot.inv{background:#FBF7EF;box-shadow:inset 0 0 0 3px #8C1414,0 0 0 1.5px var(--dot-ring,transparent)}
.fam-item b{display:block;font-size:15px;font-weight:600}
.fam-item small{display:block;font-size:13px;color:var(--mute);line-height:1.4;margin-top:2px}

/* form */
.intake{display:grid;gap:16px;margin-top:6px}
.intake label{display:grid;gap:6px;font-size:14px;font-weight:600}
.intake input,.intake select,.intake textarea{font:400 16px/1.4 Inter,sans-serif;color:var(--field-ink,var(--ink));background:var(--field,#fff);
  border:1px solid var(--line);border-radius:10px;padding:12px 13px;width:100%}
.intake input:focus,.intake select:focus,.intake textarea:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}
.intake .btn{justify-self:start;margin-top:4px}
.opt{font-weight:400;color:var(--mute)}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.err{background:#fff3f1;border:1px solid #e7b4ab;color:#7a1d10;border-radius:10px;padding:12px 14px}
.sent{border:1px solid var(--line);border-radius:16px;padding:32px;background:var(--card,rgba(255,255,255,.6))}
.fine{font-size:13px;color:var(--mute)}

/* footer */
.foot{background:var(--top);border-top:1px solid var(--line);margin-top:64px;padding:44px 0 36px;font-size:14.5px}
.page-home .foot,.band + .foot{margin-top:0}
.foot-base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:18px;margin-top:30px;padding-top:22px;border-top:1px solid var(--line)}
.foot-base p{margin:0}
.foot a{color:var(--ink)}

@media (max-width:560px){
  body{font-size:16.5px}
  .hero{padding:56px 0 24px}
  .block{padding:34px 0}
  .notfor,.offer,.sent{padding-left:20px;padding-right:20px}
}
