/* ============================================================
   Rose Financial Management — rosefinancialmanagement.com
   Design system per rose-financial-brand-guide-ai.html + CLAUDE.md
   Static site. No build step.
   ============================================================ */

:root{
  --navy:#0d1c28;
  --navy-mid:#1a2e40;
  --teal:#61c08e;
  --mint:#addbc2;
  --forest:#315b51;
  --gray:#2a4a3e;
  --muted:#7a9a90;
  --border:#c8ddd6;
  --offwhite:#f4f7f6;
  --white:#ffffff;
  --light-teal:#e8f5ef;
  --threat:#a8553e;

  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'DM Sans',system-ui,sans-serif;
  --mono:'DM Mono',monospace;

  --maxw:1240px;
  --measure:70ch;
  --radius:3px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation:none!important;transition:none!important;}
}

body{
  font-family:var(--sans);
  font-weight:300;
  font-size:16px;
  line-height:1.8;
  color:var(--gray);
  background:var(--offwhite);
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%;display:block;}
a{color:var(--forest);text-decoration-color:rgba(97,192,142,.5);text-underline-offset:3px;}
a:hover{color:var(--navy);text-decoration-color:var(--teal);}
:focus-visible{outline:2px solid var(--teal);outline-offset:3px;border-radius:2px;}

h1,h2,h3{color:var(--navy);font-family:var(--serif);font-weight:300;}
h1{font-size:clamp(40px,6vw,76px);line-height:1.04;letter-spacing:-.02em;}
h2{font-size:clamp(30px,4vw,46px);line-height:1.15;letter-spacing:-.01em;}
h3{font-size:clamp(21px,2.4vw,26px);font-weight:500;line-height:1.3;letter-spacing:.01em;}
h1 em,h2 em{font-style:italic;color:var(--teal);}
.on-dark h1,.on-dark h2,.on-dark h3{color:var(--white);}

.eyebrow{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--teal);
  display:block;
  margin-bottom:18px;
}
.eyebrow--forest{color:var(--forest);}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 80px;}
@media(max-width:900px){.wrap{padding:0 24px;}}

.section{padding:104px 0;}
.section--tight{padding:72px 0;}
.section--dark{background:var(--navy);color:rgba(255,255,255,.72);}
.section--mid{background:var(--navy-mid);color:rgba(255,255,255,.72);}
.section--white{background:var(--white);}
.section--panel{background:var(--light-teal);}
@media(max-width:700px){.section{padding:72px 0;}.section--tight{padding:56px 0;}}

.rule{border:none;border-top:1px solid rgba(97,192,142,.18);margin:0;}
.section--white .rule,.section--panel .rule{border-top-color:var(--border);}

.lede{font-size:clamp(17px,1.6vw,20px);line-height:1.8;max-width:var(--measure);}
.section--dark .lede,.section--mid .lede{color:rgba(255,255,255,.72);}

/* ---------- Buttons ---------- */
.btn{
  display:inline-block;
  font-family:var(--sans);
  font-weight:500;
  font-size:12px;
  letter-spacing:.15em;
  text-transform:uppercase;
  text-decoration:none;
  padding:14px 30px;
  border-radius:2px;
  border:1px solid var(--teal);
  transition:background .18s ease,color .18s ease;
  cursor:pointer;
}
.btn--solid{background:var(--teal);color:var(--navy);}
.btn--solid:hover{background:var(--mint);border-color:var(--mint);color:var(--navy);}
.btn--ghost{background:transparent;color:var(--teal);}
.btn--ghost:hover{background:var(--teal);color:var(--navy);}
.btn--ghost-navy{background:transparent;color:var(--navy);border-color:var(--forest);}
.btn--ghost-navy:hover{background:var(--navy);color:var(--white);border-color:var(--navy);}
.btn-row{display:flex;gap:16px;flex-wrap:wrap;align-items:center;}

.textlink{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
  text-decoration:none;
  color:var(--forest);
  border-bottom:1px solid rgba(97,192,142,.4);
  padding-bottom:3px;
}
.textlink:hover{color:var(--navy);border-bottom-color:var(--teal);}
.on-dark .textlink,.section--dark .textlink,.section--mid .textlink{color:var(--teal);}
.on-dark .textlink:hover{color:var(--mint);}

/* ---------- Header / Nav ---------- */
.site-header{
  background:var(--navy);
  border-bottom:1px solid rgba(97,192,142,.15);
  position:sticky;
  top:0;
  z-index:50;
}
.nav-bar{
  max-width:var(--maxw);
  margin:0 auto;
  padding:0 80px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:76px;
  gap:24px;
}
.nav-logo img{height:44px;width:auto;}
.nav-links{display:flex;align-items:center;gap:34px;list-style:none;}
.nav-links a{
  font-size:13.5px;
  font-weight:300;
  letter-spacing:.04em;
  color:rgba(255,255,255,.78);
  text-decoration:none;
  padding:6px 0;
  border-bottom:1px solid transparent;
}
.nav-links a:hover{color:var(--teal);}
.nav-links a[aria-current="page"]{color:var(--teal);border-bottom-color:rgba(97,192,142,.5);}
.nav-cta{margin-left:6px;}
/* .nav-links a sets padding:6px 0 and outranks .btn on specificity, which strips the
   CTA button's horizontal padding. Restore it with a higher-specificity rule. */
.nav-links .btn{padding:12px 24px;}
.nav-toggle{
  display:none;
  background:none;border:1px solid rgba(97,192,142,.4);border-radius:2px;
  padding:9px 11px;cursor:pointer;
}
.nav-toggle span{display:block;width:20px;height:1.5px;background:var(--teal);margin:4.5px 0;transition:transform .2s ease,opacity .2s ease;}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg);}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}

@media(max-width:940px){
  .nav-bar{padding:0 24px;min-height:68px;}
  .nav-logo img{height:36px;}
  .nav-toggle{display:block;}
  .nav-links{
    position:absolute;
    top:100%;left:0;right:0;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    background:var(--navy);
    border-bottom:1px solid rgba(97,192,142,.2);
    padding:8px 24px 20px;
    display:none;
  }
  .nav-links.open{display:flex;}
  .nav-links a{padding:13px 4px;border-bottom:1px solid rgba(255,255,255,.06);}
  .nav-cta{margin:14px 0 0;}
  .nav-cta .btn{display:block;text-align:center;}
}

/* ---------- Hero ---------- */
.hero{
  background:var(--navy);
  color:rgba(255,255,255,.72);
  position:relative;
  overflow:hidden;
}
.hero .wrap{position:relative;z-index:2;}
.hero-inner{padding:128px 0 136px;max-width:820px;}
@media(max-width:700px){.hero-inner{padding:88px 0 96px;}}
.hero h1{color:var(--white);margin-bottom:26px;}
.hero .lede{margin-bottom:38px;}
.hero-sub{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--muted);
  margin-top:46px;
}
.hero-sub b{color:var(--teal);font-weight:400;}

/* Signature: the flight path. One ascending trajectory with waypoints. */
.flightpath{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  opacity:.9;
}
.flightpath svg{width:100%;height:100%;}
.fp-line{
  fill:none;
  stroke:rgba(97,192,142,.28);
  stroke-width:1.25;
  stroke-dasharray:3 7;
}
.fp-tick{stroke:rgba(97,192,142,.45);stroke-width:1;}
.fp-label{
  font-family:'DM Mono',monospace;
  font-size:8.5px;
  letter-spacing:.14em;
  fill:rgba(122,154,144,.75);
  text-transform:uppercase;
}
.fp-plane path{stroke-width:1.4;stroke-linejoin:round;stroke:rgba(97,192,142,.8);}
@media (prefers-reduced-motion:no-preference){
  .fp-line{stroke-dashoffset:400;animation:fp-draw 2.8s ease-out forwards;}
  @keyframes fp-draw{to{stroke-dashoffset:0;}}
}
@media(max-width:700px){.flightpath{opacity:.5;}}

/* ---------- Page hero (interior pages) ---------- */
.page-hero{background:var(--navy);color:rgba(255,255,255,.72);}
.page-hero-inner{padding:88px 0 80px;max-width:820px;}
.page-hero h1{color:var(--white);font-size:clamp(36px,5vw,60px);margin-bottom:20px;}
.page-hero .lede{color:rgba(255,255,255,.72);}
@media(max-width:700px){.page-hero-inner{padding:60px 0 56px;}}

/* ---------- Cards ---------- */
.grid{display:grid;gap:20px;}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-2{grid-template-columns:repeat(2,1fr);}
@media(max-width:940px){.grid-3{grid-template-columns:1fr;}.grid-2{grid-template-columns:1fr;}}

.card{
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:40px 36px;
  transition:border-color .18s ease,background .18s ease;
}
.card:hover{border-color:var(--teal);}
.card h3{margin:14px 0 12px;}
.card p{font-size:14.5px;line-height:1.8;}
.card .eyebrow{margin-bottom:0;}

.card--dark{
  background:var(--navy-mid);
  border:1px solid rgba(97,192,142,.18);
  color:rgba(255,255,255,.7);
}
.card--dark:hover{border-color:rgba(97,192,142,.5);background:#1e3448;}
.card--dark h3{color:var(--white);}

/* ---------- Moment list (transitions the practice serves) ---------- */
.moments{display:grid;grid-template-columns:repeat(2,1fr);gap:2px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;}
@media(max-width:800px){.moments{grid-template-columns:1fr;}}
.moment{background:var(--white);padding:34px 36px;}
.moment h3{font-size:20px;margin:8px 0 8px;}
.moment p{font-size:14px;line-height:1.75;}
.moment .eyebrow{margin-bottom:0;font-size:10px;color:var(--forest);}

/* ---------- ATC beats ---------- */
.beats{display:grid;grid-template-columns:repeat(3,1fr);gap:56px;margin-top:56px;}
@media(max-width:900px){.beats{grid-template-columns:1fr;gap:36px;}}
.beat{border-top:1px solid rgba(97,192,142,.25);padding-top:22px;}
.beat h3{color:var(--white);font-size:22px;margin-bottom:10px;}
.beat p{font-size:14.5px;color:rgba(255,255,255,.62);line-height:1.8;}
.beat .eyebrow{margin-bottom:14px;}

/* ---------- Quote band ---------- */
.quoteband{
  text-align:center;
  max-width:760px;
  margin:0 auto;
}
.quoteband blockquote{
  font-family:var(--serif);
  font-style:italic;
  font-weight:300;
  font-size:clamp(24px,3vw,34px);
  line-height:1.45;
  color:var(--mint);
}
.quoteband cite{
  display:block;
  font-family:var(--mono);
  font-style:normal;
  font-size:10px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:rgba(97,192,142,.55);
  margin-top:20px;
}

/* ---------- CTA band ---------- */
.cta-band{background:var(--navy);text-align:center;}
.cta-band .inner{padding:96px 0;max-width:680px;margin:0 auto;}
.cta-band h2{color:var(--white);margin-bottom:18px;}
.cta-band p{color:rgba(255,255,255,.66);margin-bottom:34px;}
.cta-band .btn-row{justify-content:center;}

/* ---------- Two-column feature ---------- */
.split{display:grid;grid-template-columns:5fr 7fr;gap:72px;align-items:start;}
@media(max-width:900px){.split{grid-template-columns:1fr;gap:36px;}}
.split .sticky-col{position:sticky;top:110px;}
@media(max-width:900px){.split .sticky-col{position:static;}}

/* ---------- Service tiers ---------- */
.tiers{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:stretch;}
@media(max-width:900px){.tiers{grid-template-columns:1fr;}}
.tier{
  border-radius:var(--radius);
  padding:48px 44px;
  display:flex;
  flex-direction:column;
}
.tier--primary{background:var(--navy);color:rgba(255,255,255,.72);border:1px solid var(--navy);}
.tier--primary h3{color:var(--white);font-size:28px;}
.tier--secondary{background:var(--white);border:1px solid var(--border);}
.tier--secondary h3{font-size:28px;}
.tier .eyebrow{margin-bottom:16px;}
.tier-tag{
  font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  display:inline-block;padding:5px 10px;border-radius:2px;margin-bottom:22px;align-self:flex-start;
}
.tier--primary .tier-tag{background:rgba(97,192,142,.15);color:var(--teal);}
.tier--secondary .tier-tag{background:var(--light-teal);color:var(--forest);}
.tier p{font-size:15px;margin-bottom:18px;}
.tier ul{list-style:none;margin:8px 0 26px;}
.tier li{
  padding:11px 0 11px 26px;
  position:relative;
  font-size:14.5px;
  line-height:1.65;
  border-bottom:1px solid rgba(200,221,214,.35);
}
.tier--primary li{border-bottom-color:rgba(255,255,255,.08);}
.tier li:last-child{border-bottom:none;}
.tier li::before{
  content:'';
  position:absolute;left:0;top:20px;
  width:12px;height:1.5px;background:var(--teal);
}
.tier .tier-foot{margin-top:auto;font-size:13px;color:var(--muted);}
.tier--primary .tier-foot{color:rgba(255,255,255,.45);}

/* ---------- Process steps ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;counter-reset:step;}
@media(max-width:940px){.steps{grid-template-columns:1fr 1fr;}}
@media(max-width:600px){.steps{grid-template-columns:1fr;}}
.step{background:var(--white);padding:32px 30px;}
.step-num{
  font-family:var(--mono);font-size:10px;letter-spacing:.18em;color:var(--teal);
  text-transform:uppercase;display:block;margin-bottom:14px;
}
.step h3{font-size:19px;margin-bottom:8px;}
.step p{font-size:13.5px;line-height:1.75;}

/* ---------- Credentials ---------- */
.creds{list-style:none;margin-top:8px;}
.creds li{
  padding:16px 0 16px 30px;position:relative;border-bottom:1px solid var(--border);
  font-size:15px;line-height:1.7;
}
.creds li:last-child{border-bottom:none;}
.creds li::before{content:'';position:absolute;left:0;top:28px;width:14px;height:1.5px;background:var(--teal);}
.creds b{font-weight:500;color:var(--navy);}

/* ---------- KB landing ---------- */
/* Knowledge Base filter */
.kb-filter{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:28px;}
html:not(.js) .kb-filter{display:none;}
.kb-filter-btn{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  padding:9px 18px;
  background:transparent;
  color:var(--gray);
  border:1px solid var(--border);
  border-radius:var(--radius);
  cursor:pointer;
  transition:background .15s ease,color .15s ease,border-color .15s ease;
}
.kb-filter-btn:hover{background:var(--light-teal);border-color:var(--muted);}
.kb-filter-btn.is-active{background:var(--navy);color:var(--white);border-color:var(--navy);}
.kb-filter-btn:focus-visible{outline:2px solid var(--teal);outline-offset:2px;}
.kb-card.is-filtered{display:none;}

.kb-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
@media(max-width:940px){.kb-grid{grid-template-columns:1fr;}}
.kb-card{
  display:flex;flex-direction:column;
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:38px 34px;
  text-decoration:none;
  color:var(--gray);
  transition:border-color .18s ease;
  position:relative;
}
a.kb-card:hover{border-color:var(--teal);color:var(--gray);}
a.kb-card:hover h3{color:var(--forest);}
.kb-card h3{margin:12px 0 10px;transition:color .18s ease;}
.kb-card p{font-size:14px;line-height:1.75;}
.kb-card .kb-count{
  margin-top:auto;padding-top:24px;
  font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--forest);
}
.kb-card--soon{background:var(--offwhite);border-style:dashed;}
.kb-card--soon h3{color:var(--muted);}
.kb-card--soon p{color:var(--muted);}
.soon-tag{
  position:absolute;top:20px;right:20px;
  font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);border:1px solid var(--border);border-radius:2px;padding:3px 8px;
}

/* ---------- Article list ---------- */
.article-list{list-style:none;border-top:1px solid var(--border);}
.article-list li{border-bottom:1px solid var(--border);}
.article-list a{
  display:grid;
  grid-template-columns:110px 1fr auto;
  gap:28px;align-items:baseline;
  padding:30px 8px;
  text-decoration:none;color:var(--gray);
  transition:background .15s ease;
}
.article-list a:hover{background:var(--white);}
.article-list .phase{
  font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--forest);
}
.article-list h3{font-size:22px;transition:color .15s ease;}
.article-list a:hover h3{color:var(--forest);}
.article-list .desc{grid-column:2;font-size:14px;line-height:1.7;margin-top:4px;max-width:64ch;}
.article-list .arrow{font-family:var(--mono);color:var(--teal);font-size:14px;}
@media(max-width:700px){
  .article-list a{grid-template-columns:1fr;gap:6px;padding:24px 4px;}
  .article-list .desc{grid-column:1;}
  .article-list .arrow{display:none;}
}

/* ---------- Article template ---------- */
.article{background:var(--white);}
.article-head{background:var(--navy);color:rgba(255,255,255,.7);}
.article-head-inner{max-width:820px;margin:0 auto;padding:80px 80px 68px;}
@media(max-width:900px){.article-head-inner{padding:56px 24px 48px;}}
.article-head h1{color:var(--white);font-size:clamp(34px,4.6vw,56px);margin:0 0 18px;}
.article-head .meta{
  font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);
  display:flex;gap:22px;flex-wrap:wrap;margin-top:26px;
}
.article-head .meta b{color:var(--teal);font-weight:400;}
.crumbs{
  font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  margin-bottom:30px;
}
.crumbs a{color:var(--muted);text-decoration:none;}
.crumbs a:hover{color:var(--teal);}
.crumbs span{color:rgba(255,255,255,.3);margin:0 8px;}

.article-body{max-width:820px;margin:0 auto;padding:72px 80px 40px;}
@media(max-width:900px){.article-body{padding:48px 24px 32px;}}
.article-body>p{margin-bottom:26px;max-width:var(--measure);}
.article-body>ul,.article-body>ol{margin:0 0 26px 22px;max-width:var(--measure);}
.article-body li{margin-bottom:12px;line-height:1.75;}
.article-body h2{margin:64px 0 22px;font-size:clamp(26px,3vw,36px);}
.article-body h3{margin:44px 0 16px;}
.article-body strong{font-weight:500;color:var(--navy);}

/* Observe box: the practice's orientation component */
.observe{
  background:var(--light-teal);
  border-left:3px solid var(--teal);
  border-radius:0 var(--radius) var(--radius) 0;
  padding:26px 30px;
  margin:0 0 44px;
  max-width:var(--measure);
}
.observe .eyebrow{color:var(--forest);margin-bottom:10px;font-size:10px;}
.observe p{font-size:16px;line-height:1.75;color:var(--gray);margin:0;}

/* Deadline / waypoint items */
.runway{list-style:none;margin:8px 0 40px;border-top:1px solid var(--border);max-width:var(--measure);}
.runway li{border-bottom:1px solid var(--border);padding:24px 4px;}
.runway .window{
  font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--navy);background:var(--mint);
  display:inline-block;padding:4px 10px;border-radius:2px;margin-bottom:10px;
}
.runway .window--hard{background:var(--threat);color:var(--white);}
.runway h3{font-size:20px;margin:2px 0 8px;}
.runway p{font-size:14.5px;line-height:1.75;margin:0;}
.runway p+p{margin-top:10px;}

/* Timeline (waypoints) */
.timeline{list-style:none;margin:12px 0 44px;position:relative;max-width:var(--measure);padding-left:34px;}
.timeline::before{
  content:'';position:absolute;left:6px;top:8px;bottom:8px;
  border-left:1px dashed rgba(97,192,142,.55);
}
.timeline li{position:relative;padding:0 0 40px;}
.timeline li:last-child{padding-bottom:0;}
.timeline li::before{
  content:'';position:absolute;left:-32px;top:9px;
  width:9px;height:9px;border-radius:50%;
  background:var(--teal);border:2px solid var(--white);
  box-shadow:0 0 0 1px var(--teal);
}
.timeline .window{
  font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--forest);
  display:block;margin-bottom:6px;
}
.timeline h3{font-size:20px;margin:0 0 8px;}
.timeline p{font-size:14.5px;line-height:1.75;margin:0 0 8px;}
.timeline ul{margin:8px 0 0 18px;}
.timeline ul li{padding:0 0 8px;font-size:14.5px;}
.timeline ul li::before{display:none;}

/* Comparison table */
.compare{width:100%;border-collapse:collapse;font-size:14px;margin:8px 0 44px;}
.compare th{
  text-align:left;padding:12px 14px;background:var(--light-teal);
  font-weight:500;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--forest);
  border-bottom:2px solid var(--teal);
}
.compare td{padding:14px;border-bottom:1px solid var(--border);vertical-align:top;line-height:1.65;}
.compare td:first-child{font-weight:500;color:var(--navy);white-space:nowrap;}
.compare tr:last-child td{border-bottom:none;}
@media(max-width:700px){
  .compare{display:block;overflow-x:auto;}
}

/* Article CTA */
.article-cta{
  background:var(--navy);
  border-radius:var(--radius);
  padding:48px 48px;
  margin:72px 0 0;
}
.article-cta .eyebrow{margin-bottom:14px;}
.article-cta h2{color:var(--white);font-size:clamp(24px,3vw,32px);margin:0 0 14px;}
.article-cta p{color:rgba(255,255,255,.66);font-size:15px;margin-bottom:28px;max-width:56ch;}
@media(max-width:700px){.article-cta{padding:36px 26px;}}

/* Educational disclosure on KB pages */
.edu-note{
  max-width:820px;margin:0 auto;padding:36px 80px 80px;
}
@media(max-width:900px){.edu-note{padding:28px 24px 60px;}}
.edu-note p{
  font-size:12px;line-height:1.8;color:var(--muted);
  border-top:1px solid var(--border);padding-top:24px;
}

/* Article footer nav */
.article-nav{
  max-width:820px;margin:0 auto;padding:0 80px 72px;
  display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
}
@media(max-width:900px){.article-nav{padding:0 24px 56px;}}

/* ---------- Contact ---------- */
.contact-grid{display:grid;grid-template-columns:5fr 6fr;gap:64px;align-items:start;}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr;gap:40px;}}
.contact-detail{list-style:none;}
.contact-detail li{padding:18px 0;border-bottom:1px solid var(--border);font-size:15px;}
.contact-detail li:last-child{border-bottom:none;}
.contact-detail .lbl{
  font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--forest);
  display:block;margin-bottom:5px;
}
.contact-detail a{color:var(--navy);text-decoration:none;border-bottom:1px solid rgba(97,192,142,.4);}
.contact-detail a:hover{border-bottom-color:var(--teal);}

.form{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:44px 40px;}
@media(max-width:700px){.form{padding:30px 22px;}}
.form-field{margin-bottom:22px;}
.form label{
  display:block;font-family:var(--mono);font-size:10px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--forest);margin-bottom:8px;
}
.form input,.form select,.form textarea{
  width:100%;
  font-family:var(--sans);font-weight:300;font-size:15px;color:var(--navy);
  background:var(--offwhite);
  border:1px solid var(--border);
  border-radius:2px;
  padding:13px 14px;
}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--teal);outline-offset:0;border-color:var(--teal);}
.form textarea{min-height:130px;resize:vertical;}
.form-note{font-size:12px;color:var(--muted);margin-top:16px;line-height:1.7;}

/* ---------- Footer ---------- */
.site-footer{background:var(--navy);color:rgba(255,255,255,.55);font-size:13px;}
.footer-top{
  max-width:var(--maxw);margin:0 auto;padding:72px 80px 48px;
  display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px;
}
@media(max-width:940px){.footer-top{grid-template-columns:1fr 1fr;padding:56px 24px 36px;}}
@media(max-width:600px){.footer-top{grid-template-columns:1fr;}}
.footer-brand img{height:40px;width:auto;margin-bottom:18px;}
.footer-brand p{font-size:13px;line-height:1.8;max-width:34ch;}
.footer-col h4{
  font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--teal);font-weight:400;margin-bottom:16px;
}
.footer-col ul{list-style:none;}
.footer-col li{margin-bottom:10px;}
.footer-col a{color:rgba(255,255,255,.6);text-decoration:none;font-size:13.5px;}
.footer-col a:hover{color:var(--teal);}
.footer-disclosure{
  max-width:var(--maxw);margin:0 auto;padding:36px 80px 52px;
  border-top:1px solid rgba(97,192,142,.15);
  font-size:11px;line-height:1.85;color:rgba(255,255,255,.42);
}
@media(max-width:900px){.footer-disclosure{padding:28px 24px 40px;}}
.footer-disclosure p{margin-bottom:12px;}
.footer-disclosure a{color:rgba(173,219,194,.7);}
.footer-disclosure a:hover{color:var(--mint);}
.footer-meta{
  font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;
  color:rgba(255,255,255,.3);margin-top:22px;
}

/* ---------- Reveal on scroll (progressive, JS-gated) ---------- */
.js .reveal{opacity:0;transform:translateY(14px);transition:opacity .55s ease,transform .55s ease;}
.js .reveal.in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  .js .reveal{opacity:1;transform:none;}
}

/* ---------- Utility ---------- */
.mt-0{margin-top:0;}
.mb-lg{margin-bottom:56px;}
.mb-md{margin-bottom:36px;}
.mb-sm{margin-bottom:20px;}
.center{text-align:center;}
.measure{max-width:var(--measure);}
.nowrap{white-space:nowrap;}

/* ============================================================
   v2.2 additions — Loss of a Loved One kit
   Footnote pattern (new article content standard) + benefit map
   ============================================================ */

/* ---------- Footnotes / source citations ---------- */
.fnref{
  font-family:var(--mono);font-size:11px;color:var(--forest);
  text-decoration:none;vertical-align:super;line-height:0;
  padding:0 2px;border-bottom:none;
}
.fnref:hover{color:var(--navy);}
.footnotes{
  margin:64px 0 8px;padding:28px 30px;
  background:var(--offwhite);border:1px solid var(--border);border-radius:var(--radius);
}
.footnotes h2{font-size:22px;margin:0 0 6px;}
.footnotes .fn-standard{font-size:12.5px;color:var(--muted);line-height:1.7;margin:0 0 18px;max-width:64ch;}
.footnotes ol{list-style:none;counter-reset:fn;margin:0;}
.footnotes li{
  counter-increment:fn;position:relative;
  padding:7px 0 7px 30px;font-size:13px;color:var(--gray);line-height:1.65;
  border-bottom:1px solid var(--border);margin:0;
}
.footnotes li:last-child{border-bottom:none;}
.footnotes li::before{
  content:counter(fn);position:absolute;left:0;top:10px;
  font-family:var(--mono);font-size:9px;color:var(--forest);
  border:1px solid var(--teal);width:17px;height:17px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
}
.footnotes li b{font-weight:500;color:var(--navy);}
.footnotes .fn-back{font-family:var(--mono);font-size:11px;text-decoration:none;margin-left:6px;}

/* ---------- Benefit map (tax treatment x timing grid) ---------- */
.bmap{
  display:grid;grid-template-columns:92px 1fr 1fr;gap:2px;
  background:var(--border);border:1px solid var(--border);
  border-radius:var(--radius);overflow:hidden;margin:8px 0 18px;
}
.bmap-corner{
  background:var(--navy);padding:12px 14px;
  font-family:var(--mono);font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;
  color:rgba(255,255,255,.45);display:flex;flex-direction:column;justify-content:space-between;gap:4px;
}
.bmap-colh{background:var(--navy);padding:12px 16px;}
.bmap-colh b{display:block;font-family:var(--serif);font-weight:400;font-size:19px;color:var(--white);line-height:1.2;}
.bmap-colh span{font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--teal);}
.bmap-rowh{
  background:var(--navy-mid);padding:16px 14px;
  font-family:var(--mono);font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--teal);
  display:flex;align-items:flex-start;
}
.bmap-cell{background:var(--white);padding:6px 18px 10px;}
.bm-item{padding:12px 0;border-bottom:1px solid var(--border);}
.bm-item:last-child{border-bottom:none;}
.bm-name{font-size:14.5px;font-weight:500;color:var(--navy);line-height:1.4;}
.bm-name .fnref{font-weight:400;}
.bm-val{font-family:var(--mono);font-size:12.5px;margin:2px 0 3px;}
.bmap-cell.tf .bm-val{color:var(--forest);}
.bmap-cell.tx .bm-val{color:var(--threat);}
.bm-sub{font-size:12.5px;color:var(--gray);font-weight:300;line-height:1.6;}
.bm-tag{
  display:inline-block;font-family:var(--mono);font-size:8px;letter-spacing:.1em;text-transform:uppercase;
  background:var(--light-teal);color:var(--forest);padding:2px 7px;border-radius:2px;margin-left:7px;vertical-align:middle;
}
@media(max-width:760px){
  .bmap{grid-template-columns:1fr;}
  .bmap-corner{display:none;}
  .bmap-rowh{padding:10px 16px;}
}

/* ---------- Kit-local: quiet phase label for grouped checklists ---------- */
.phase-label{
  font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--forest);margin:56px 0 6px;
}
.phase-label:first-of-type{margin-top:8px;}

/* ── Loss-kit audience selector (v2.4) ── */
.aud-filter{margin-bottom:30px;}
.aud-filter-label{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--forest);margin-bottom:10px;}
.aud-filter-btns{display:flex;flex-wrap:wrap;gap:10px;}
html:not(.js) .aud-filter-btns{display:none;}
.aud-btn{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;padding:9px 18px;background:transparent;color:var(--gray);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease;}
.aud-btn:hover{background:var(--light-teal);border-color:var(--muted);}
.aud-btn.is-active{background:var(--navy);color:var(--white);border-color:var(--navy);}
.aud-btn:focus-visible{outline:2px solid var(--teal);outline-offset:2px;}
.article-list li.is-aud-filtered{display:none;}
.aud-note{max-width:66ch;margin-top:14px;padding:12px 16px;background:var(--light-teal);border-left:3px solid var(--teal);font-size:13.5px;color:var(--gray);border-radius:0 var(--radius) var(--radius) 0;}

/* OnceHub booking widget container */
.booking-embed{margin:0 0 34px;max-width:760px;}
.booking-embed noscript p{background:var(--light-teal);border-left:3px solid var(--teal);padding:14px 18px;border-radius:0 var(--radius) var(--radius) 0;}

/* OnceHub calendar. The vendor snippet ships a fixed height:700px which clips the
   time-slot list under the date picker. Height is set here instead so it can be tuned
   in one place and made responsive. If it still clips, raise these values. */
.oh-cal{min-width:320px;height:1000px;}
@media(max-width:900px){.oh-cal{height:1150px;}}
@media(max-width:600px){.oh-cal{height:1250px;}}

/* Printable packet download band (Loss kit) */
.download-band{
  display:flex;align-items:center;justify-content:space-between;gap:26px;
  background:var(--light-teal);border-left:3px solid var(--teal);
  padding:24px 28px;margin:0 0 34px;border-radius:0 var(--radius) var(--radius) 0;
}
.download-band h3{margin:4px 0 6px;font-size:20px;color:var(--navy);}
.download-band p{margin:0;max-width:52ch;font-size:14.5px;color:var(--gray);}
.download-band .btn{flex:0 0 auto;}
@media(max-width:700px){
  .download-band{flex-direction:column;align-items:flex-start;gap:16px;padding:20px 22px;}
}
