/* GreenBurialCR.com — shared design system
   Extracted from the homepage prototype. Light, single committed theme.
   Display: Young Serif. Body/UI: Hanken Grotesk. */

:root{
  color-scheme: light;
  --ivory:#F8F6F1;
  --ink:#181817;
  --ink-soft:#57584A;
  --olive:#686B50;
  --olive-deep:#4C4F39;
  --moss:#A9AA91;
  --moss-tint:#ECEBE0;
  --slate:#445565;
  --slate-deep:#3A4653;
  --slate-soft:#C4CBD0;
  --slate-tint:#E7EAEC;
  --sage-light:#C6CDB5;
  --stone:#DCD9CC;

  --serif:"Young Serif", Georgia, "Times New Roman", serif;
  --sans:"Hanken Grotesk", -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

  --measure: 40rem;
  --outer: 72rem;
  --pad-inline: clamp(1.25rem, 5vw, 3rem);
  --pad-block: clamp(4rem, 8vw, 7rem);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
body{
  margin:0;
  background:var(--ivory);
  color:var(--ink);
  font-family:var(--sans);
  font-size:1.0625rem;
  line-height:1.68;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:var(--olive-deep); text-decoration-thickness:1px; text-underline-offset:3px; }
a:hover{ color:var(--ink); }
a,.btn,.cards a,.form button{ transition:color .12s ease, background-color .12s ease, border-color .12s ease; }
:focus-visible{ outline:2px solid var(--slate); outline-offset:3px; }

h1,h2,h3{
  font-family:var(--serif);
  font-weight:400;
  line-height:1.08;
  text-wrap:balance;
  margin:0;
}

.skip{
  position:absolute; left:-9999px; top:0;
  background:var(--ink); color:var(--ivory);
  padding:.6rem 1rem; z-index:20;
}
.skip:focus{ left:.5rem; top:.5rem; }

.tag{
  text-align:center;
  font-size:.72rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--ivory);
  background:var(--olive);
  padding:.45rem 1rem;
  margin:0;
}

.wrap{
  max-width:var(--outer);
  margin-inline:auto;
  padding-inline:var(--pad-inline);
}

/* ---- header / nav ---- */
.site-head{ border-bottom:1px solid var(--stone); }
.site-head__inner{
  display:flex;
  flex-wrap:wrap;
  gap:.9rem 1.5rem;
  padding-block:1.25rem;
}
/* top row: wordmark on the left, quiz button on the right, vertically centred;
   the nav sits on its own row beneath */
.site-head__top{
  flex-basis:100%;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:.5rem 1.25rem;
}
.brand{
  font-family:var(--serif);
  font-size:1.4rem;
  letter-spacing:.01em;
  color:var(--ink);
  text-decoration:none;
  white-space:nowrap;
}
.brand span{ color:var(--olive); }

.head-guide{
  display:inline-block;
  font-family:var(--sans);
  font-weight:600;
  font-size:.78rem;
  letter-spacing:.015em;
  line-height:1.3;
  color:var(--olive-deep);
  text-decoration:none;
  background:var(--moss-tint);
  border:1px solid var(--olive);
  padding:.34rem .72rem;
  transition:background-color .12s ease, border-color .12s ease, color .12s ease;
}
.head-guide:hover{
  background:var(--olive);
  border-color:var(--olive);
  color:var(--ivory);
}

.nav{
  flex-basis:100%;
  display:flex;
  flex-wrap:wrap;
  gap:.35rem 1.4rem;
  font-size:.9rem;
}
.nav a{ color:var(--ink-soft); text-decoration:none; }
.nav a:hover{ color:var(--olive-deep); text-decoration:underline; }
.nav a[aria-current="page"]{
  color:var(--ink);
  text-decoration:underline;
  text-decoration-thickness:2px;
  text-underline-offset:5px;
}
.nav-toggle{ display:none; }

@media (max-width:52rem){
  .nav-toggle{
    display:inline-block;
    font:inherit; font-size:.8rem; font-weight:600;
    letter-spacing:.08em; text-transform:uppercase;
    background:transparent; border:1px solid var(--stone); color:var(--ink);
    padding:.4rem .75rem; cursor:pointer;
  }
  .js .nav{
    display:none;
    flex-direction:column;
    justify-content:flex-start;
    gap:0;
    border-top:1px solid var(--stone);
  }
  .js .nav.is-open{ display:flex; }
  .js .nav a{ padding:.75rem 0; border-bottom:1px solid var(--stone); }
  .js .nav a:last-child{ border-bottom:0; }
}

/* ---- sections ---- */
.section{ padding-block:var(--pad-block); border-top:1px solid var(--stone); }
.section:first-of-type{ border-top:0; }
.section--moss{ background:var(--moss-tint); }
.section--slate{ background:var(--slate); color:var(--ivory); }
.section--slate h2,.section--slate h3{ color:var(--ivory); }
.section--slate a{ color:var(--ivory); }
.section--slate a:hover{ color:#DCE3D6; }
.section--slate .link-arrow{ border-bottom-color:var(--sage-light); }
.section--slate .link-arrow:hover{ border-bottom-color:#DCE3D6; }

.grid-head{
  display:grid;
  grid-template-columns:1fr;
  gap:.75rem 2.5rem;
}
.eyebrow{
  font-family:var(--sans);
  font-weight:600;
  font-size:.75rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--olive-deep);
  margin:0;
}
.section--slate .eyebrow{ color:var(--sage-light); }
.hero .eyebrow,.page-hero .eyebrow{ margin-bottom:1.1rem; }
.h2{ font-size:clamp(1.9rem, 3.4vw, 2.9rem); }
.lead{
  font-size:1.22rem;
  line-height:1.55;
  max-width:var(--measure);
  margin:1.1rem 0 0;
}

.prose{ max-width:var(--measure); margin-top:1.25rem; }
.prose--wide{ max-width:46rem; }
.prose > *:first-child{ margin-top:0; }
.prose p{ margin:1rem 0 0; }
.prose ul,.prose ol{ margin:1rem 0 0; padding-left:1.25rem; }
.prose li{ margin:.4rem 0; }
.prose li::marker{ color:var(--olive); }
.section--slate .prose li::marker{ color:var(--sage-light); }
.prose h3{ font-size:1.3rem; margin-top:2.1rem; }
.prose h3 + p,.prose h3 + ul,.prose h3 + ol{ margin-top:.6rem; }

.source-note{
  max-width:46rem;
  margin-top:1.6rem;
  font-size:.85rem;
  line-height:1.55;
  color:var(--ink-soft);
  border-left:2px solid var(--olive);
  padding-left:.9rem;
}
.section--slate .source-note{ color:var(--slate-soft); border-left-color:var(--sage-light); }

.verify{
  margin:1.9rem 0 0;
  max-width:46rem;
  border:1px solid var(--slate);
  border-left-width:3px;
  background:var(--ivory);
  padding:1rem 1.15rem;
  font-size:.93rem;
  line-height:1.55;
}
.verify strong{
  display:block;
  font-family:var(--sans);
  font-size:.72rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--slate);
  margin-bottom:.4rem;
}
.verify p{ margin:.5rem 0 0; }
.verify p:first-of-type{ margin-top:0; }

@media (min-width:60rem){
  .grid-head{ grid-template-columns:9rem 1fr; }
  .grid-head .eyebrow{ padding-top:.5rem; }
}

/* ---- hero (home) & page hero ---- */
.hero{ padding-block:clamp(3.5rem,9vw,6.5rem); }
.hero h1{
  font-size:clamp(2.75rem, 6.6vw, 5rem);
  line-height:1.02;
  letter-spacing:-.015em;
  max-width:16ch;
}
.hero .lead{ margin-top:1.4rem; }

.page-hero{ padding-block:clamp(3rem,7vw,5rem); }
.page-hero h1{
  font-size:clamp(2.15rem,5vw,3.5rem);
  line-height:1.05;
  letter-spacing:-.01em;
  max-width:22ch;
}
.page-hero .lead{ margin-top:1.3rem; }

.credit{ margin-top:1.4rem; font-size:.9rem; color:var(--ink-soft); }

.actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:1rem 1.6rem;
  margin-top:2rem;
}
.btn{
  display:inline-block;
  background:var(--olive);
  color:var(--ivory);
  font-weight:600;
  font-size:.95rem;
  letter-spacing:.01em;
  padding:.85rem 1.4rem;
  text-decoration:none;
}
.btn:hover{ background:var(--olive-deep); color:var(--ivory); }
.link-arrow{
  font-weight:600;
  font-size:.95rem;
  color:var(--olive-deep);
  text-decoration:none;
  border-bottom:2px solid var(--olive);
  padding-bottom:2px;
}
.link-arrow:hover{ color:var(--ink); border-bottom-color:var(--ink); }

/* ---- placeholder image ---- */
.ph{ margin:2.75rem 0 0; }
.ph__img{
  position:relative;
  aspect-ratio:16/7;
  border:1px solid var(--stone);
  background:linear-gradient(115deg, var(--olive) 0%, var(--moss) 55%, var(--ivory) 100%);
  overflow:hidden;
}
.ph--slate .ph__img{
  background:linear-gradient(115deg, var(--slate-deep) 0%, var(--slate) 45%, var(--moss) 100%);
  border-color:rgba(248,246,241,.25);
}
.ph__img::after{
  content:"";
  position:absolute;
  inset:0;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='140' height='140' filter='url(%23n)' opacity='0.5'/></svg>");
  mix-blend-mode:overlay;
  opacity:.6;
}
.ph img{ display:block; width:100%; height:auto; border:1px solid var(--stone); }
.ph figcaption{
  margin-top:.6rem;
  font-size:.82rem;
  color:var(--ink-soft);
  max-width:var(--measure);
}
.section--slate .ph figcaption{ color:var(--slate-soft); }

/* ---- cards grid ---- */
.cards{
  list-style:none;
  margin:2.5rem 0 0;
  padding:0;
  display:grid;
  gap:0;
  border:1px solid var(--stone);
}
.cards li{ border-top:1px solid var(--stone); }
.cards li:first-child{ border-top:0; }
.cards a{
  display:block;
  padding:1.4rem clamp(1.1rem,3vw,1.75rem);
  text-decoration:none;
  color:var(--ink);
  height:100%;
}
.cards a:hover{ background:var(--moss-tint); }
.cards h3{ font-size:1.28rem; }
.cards p{ margin:.35rem 0 0; font-size:.95rem; color:var(--ink-soft); max-width:46ch; }
.cards .arr{ color:var(--olive); }
@media (min-width:44rem){
  .cards{ grid-template-columns:1fr 1fr; }
  .cards li:nth-child(1),.cards li:nth-child(2){ border-top:0; }
  .cards li:nth-child(odd){ border-right:1px solid var(--stone); }
  .cards li:last-child{ border-right:0; }
}

/* ---- statement band ---- */
.band{
  background:var(--moss-tint);
  border-top:1px solid var(--stone);
  border-bottom:1px solid var(--stone);
  padding-block:clamp(3rem,7vw,5.5rem);
}
.band p{
  margin:0;
  font-family:var(--serif);
  font-size:clamp(1.9rem,5.2vw,3.4rem);
  line-height:1.12;
  color:var(--olive);
  max-width:20ch;
}

/* ---- tables ---- */
.table-scroll{ overflow-x:auto; margin-top:2rem; }
table.fees{
  border-collapse:collapse;
  width:100%;
  min-width:32rem;
  font-variant-numeric:tabular-nums;
}
table.fees th,table.fees td{
  text-align:left;
  padding:.8rem 1rem;
  border-bottom:1px solid var(--stone);
}
table.fees thead th{
  font-family:var(--sans);
  font-weight:600;
  font-size:.8rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--ink-soft);
}
table.fees td.num,table.fees th.num{ text-align:right; }
table.fees tbody tr.total td{
  border-bottom:0;
  border-top:2px solid var(--olive);
  font-weight:600;
}

table.compare{
  border-collapse:collapse;
  width:100%;
  min-width:44rem;
  font-size:.92rem;
}
table.compare th,table.compare td{
  text-align:left;
  vertical-align:top;
  padding:.75rem .85rem;
  border-bottom:1px solid var(--stone);
}
table.compare thead th{
  font-family:var(--sans);
  font-weight:600;
  font-size:.75rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--ink);
  border-bottom:2px solid var(--olive);
}
table.compare tbody th{
  font-family:var(--sans);
  font-weight:600;
  font-size:.82rem;
  color:var(--ink);
  width:11rem;
}

.caption{
  margin-top:1rem;
  font-size:.82rem;
  line-height:1.55;
  color:var(--ink-soft);
  max-width:46rem;
}

/* ---- spec list ---- */
dl.spec{ margin:1.6rem 0 0; max-width:46rem; }
dl.spec > div{ border-top:1px solid var(--stone); padding:.9rem 0; }
dl.spec dt{ font-weight:600; }
dl.spec dd{ margin:.15rem 0 0; color:var(--ink-soft); }
@media (min-width:40rem){
  dl.spec > div{ display:grid; grid-template-columns:13rem 1fr; gap:1.25rem; }
  dl.spec dd{ margin:0; }
}

/* ---- FAQ ---- */
.faq{ margin-top:2rem; border-top:1px solid var(--stone); max-width:52rem; }
.faq > div{ border-bottom:1px solid var(--stone); padding:1.4rem 0; }
.faq h3{ font-size:1.2rem; }
.faq p{ margin:.4rem 0 0; color:var(--ink-soft); max-width:62ch; }
.faq p + p{ margin-top:.6rem; }

/* ---- steps ---- */
.steps{
  margin:1.6rem 0 0;
  padding:0;
  list-style:none;
  counter-reset:step;
  max-width:46rem;
}
.steps li{
  counter-increment:step;
  border-top:1px solid var(--stone);
  padding:1.15rem 0 1.15rem 3rem;
  position:relative;
}
.steps li::before{
  content:counter(step);
  position:absolute;
  left:0;
  top:1.05rem;
  font-family:var(--serif);
  font-size:1.15rem;
  color:var(--olive);
  line-height:1;
}
.steps h3{ font-size:1.12rem; }
.steps p{ margin:.3rem 0 0; color:var(--ink-soft); max-width:58ch; }
.steps p + p{ margin-top:.5rem; }

/* ---- forms ---- */
.form{
  margin-top:1.8rem;
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  max-width:var(--measure);
}
.form label{ flex:1 1 16rem; font-size:.85rem; color:var(--ink-soft); }
.form input,.form select,.form textarea{
  display:block;
  width:100%;
  margin-top:.35rem;
  padding:.8rem .9rem;
  font:inherit;
  color:var(--ink);
  background:var(--ivory);
  border:1px solid var(--ink-soft);
}
.form textarea{ min-height:8rem; resize:vertical; }
.form .full{ flex-basis:100%; }
.form button{
  align-self:flex-end;
  background:var(--olive);
  color:var(--ivory);
  border:0;
  font:inherit;
  font-weight:600;
  padding:.85rem 1.4rem;
  cursor:pointer;
}
.form button:hover{ background:var(--olive-deep); }
.consent{ margin-top:.9rem; font-size:.8rem; color:var(--ink-soft); max-width:var(--measure); }
.proto-note{
  margin-top:.6rem;
  font-size:.78rem;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--olive-deep);
}

/* ---- resource / plain list ---- */
.res{ list-style:none; margin:2rem 0 0; padding:0; max-width:48rem; }
.res li{ border-top:1px solid var(--stone); padding:1rem 0; }
.res li:first-child{ border-top:0; }
.res a,.res strong{ color:var(--ink); font-size:1.02rem; }
.res a:hover{ color:var(--olive-deep); }
.res p{ margin:.3rem 0 0; font-size:.9rem; color:var(--ink-soft); }

/* ---- pills / labels ---- */
.pill{
  display:inline-block;
  font-family:var(--sans);
  font-weight:600;
  font-size:.68rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  padding:.25rem .55rem;
  border:1px solid var(--olive-deep);
  color:var(--olive-deep);
  background:transparent;
  vertical-align:middle;
}
.pill--paid{ border-color:var(--slate); color:var(--slate); }
.pill--fact{ border:0; background:var(--olive); color:var(--ivory); }
.pill--muted{ border-color:var(--ink-soft); color:var(--ink-soft); }

/* ---- directory previews ---- */
.dir-note{
  margin-top:1.4rem;
  font-size:.82rem;
  line-height:1.55;
  color:var(--ink-soft);
  border-left:2px solid var(--slate);
  padding-left:.9rem;
  max-width:46rem;
}
.listing{ margin-top:1.9rem; border:1px solid var(--stone); }
.listing__row{ padding:1.25rem clamp(1.1rem,3vw,1.6rem); border-top:1px solid var(--stone); }
.listing__row:first-child{ border-top:0; }
.listing__row--featured{ background:var(--moss-tint); border-top:2px solid var(--olive); }
.listing__name{
  font-family:var(--serif);
  font-size:1.15rem;
  display:flex; flex-wrap:wrap; align-items:center; gap:.6rem;
}
.listing__meta{
  margin:.5rem 0 0; padding:0; list-style:none;
  font-size:.9rem; color:var(--ink-soft);
  display:grid; gap:.2rem .5rem;
}
.listing__meta b{
  font-family:var(--sans); font-weight:600; color:var(--ink);
  font-size:.72rem; letter-spacing:.08em; text-transform:uppercase;
}
@media (min-width:40rem){ .listing__meta{ grid-template-columns:11rem 1fr; } }
.listing__desc{ margin:.75rem 0 0; font-size:.92rem; color:var(--ink-soft); max-width:52ch; }
.listing__gb{ margin-top:1.1rem; padding-top:.95rem; border-top:1px solid var(--stone); }
.listing__gb-label{
  font-family:var(--sans); font-weight:600;
  font-size:.72rem; letter-spacing:.08em; text-transform:uppercase;
  color:var(--ink-soft); margin:0 0 .4rem;
}
.listing__gb p{ margin:0; font-size:.92rem; }
.listing__gb p + p{ margin-top:.4rem; }

.supplier-cards{
  list-style:none; margin:1.9rem 0 0; padding:0;
  display:grid; gap:1rem;
}
@media (min-width:46rem){ .supplier-cards{ grid-template-columns:1fr 1fr; } }
.supplier-cards li{ border:1px solid var(--stone); padding:1.25rem; background:var(--ivory); }
.supplier-cards li.is-sponsored{ border:2px solid var(--olive); }
.supplier-cards h3{ font-size:1.1rem; display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; }
.supplier-cards dl{ margin:.7rem 0 0; font-size:.88rem; }
.supplier-cards dt{
  font-family:var(--sans); font-weight:600;
  font-size:.7rem; letter-spacing:.08em; text-transform:uppercase;
  color:var(--ink-soft); margin-top:.6rem;
}
.supplier-cards dd{ margin:.1rem 0 0; color:var(--ink); }
.supplier-cards.supplier-cards--stack{ grid-template-columns:1fr; max-width:46rem; }
.supplier-cards .opts{ margin-top:1.1rem; }
.supplier-cards .opts .lbl{
  font-family:var(--sans); font-weight:600;
  font-size:.7rem; letter-spacing:.08em; text-transform:uppercase;
  color:var(--ink-soft); margin:0 0 .5rem;
}
.supplier-cards .opts p{ margin:.55rem 0 0; font-size:.9rem; }
.supplier-cards .opts .note{ font-size:.82rem; color:var(--ink-soft); margin-top:.7rem; }

/* ---- green vs conventional comparison ---- */
.vs{ margin-top:2.25rem; border:1px solid var(--stone); }
.vs__row{ border-top:1px solid var(--stone); padding:1.2rem clamp(1rem,3vw,1.6rem); }
.vs__row:first-child{ border-top:0; }
.vs__row > h3{
  font-family:var(--sans);
  font-weight:600;
  font-size:.72rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--olive-deep);
  margin:0 0 .7rem;
}
.vs__pair{ display:grid; gap:.9rem; }
.vs__pair > div{ padding-left:.9rem; border-left:2px solid var(--stone); }
.vs__pair > .vs-g{ border-left-color:var(--olive); }
.vs__pair > .vs-c{ border-left-color:var(--slate); }
.vs__pair .k{
  display:block;
  font-family:var(--sans);
  font-weight:600;
  font-size:.68rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--ink-soft);
  margin-bottom:.2rem;
}
.vs__pair p{ margin:0; font-size:.95rem; }
@media (min-width:44rem){
  .vs__pair{ grid-template-columns:1fr 1fr; gap:1.75rem; }
}

/* ---- grave diagram ---- */
.gd{ display:grid; gap:2.25rem; margin-top:2.4rem; }
.gd__col h3{ font-size:1.2rem; margin-bottom:1.1rem; }
.gd__layer{ background:var(--moss-tint); border:1px solid var(--stone); padding:.85rem 1rem; }
.gd__col--conv .gd__layer{ background:var(--slate-tint); }
.gd__layer .l{ display:block; font-family:var(--sans); font-weight:600; font-size:.98rem; }
.gd__layer .d{ font-size:.86rem; color:var(--ink-soft); }
.gd__layer--open{ background:transparent; border-style:dashed; }
.gd__arrow{ text-align:center; color:var(--olive); font-size:1.1rem; line-height:1; padding:.4rem 0; }
.gd__col--conv .gd__arrow{ color:var(--slate); }
@media (min-width:46rem){
  .gd{ grid-template-columns:1fr 1fr; gap:3rem; }
}

/* ---- funeral-director conversation guide ---- */
.conv__lead{ font-size:1.08rem; line-height:1.6; max-width:46rem; margin:1.15rem 0 0; }
.conv__block{ margin-top:1.7rem; max-width:46rem; }
.conv__label{
  font-family:var(--sans); font-weight:600;
  font-size:.72rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--olive-deep); margin:0 0 .55rem;
}
.section--slate .conv__label{ color:var(--sage-light); }
.conv__block > p{ margin:.5rem 0 0; }
.conv__block > p:first-of-type{ margin-top:0; }

.qs{ list-style:none; margin:.3rem 0 0; padding:0; max-width:46rem; }
.qs li{
  border-left:2px solid var(--olive);
  padding:.35rem 0 .35rem .95rem;
  margin:.55rem 0;
  font-size:1.02rem;
}
.section--slate .qs li{ border-left-color:var(--sage-light); }

.callout{
  margin:1.9rem 0 0;
  max-width:46rem;
  border:1px solid var(--olive);
  border-left-width:3px;
  background:var(--moss-tint);
  padding:1.1rem 1.25rem;
}
.callout > *{ margin:.5rem 0 0; }
.callout > *:first-child{ margin-top:0; }
.callout .big{ font-family:var(--serif); font-size:1.15rem; line-height:1.32; }
.section--moss .callout{ background:var(--ivory); }

.note{
  margin-top:1.6rem; max-width:46rem;
  border:1px solid var(--stone);
  padding:1rem 1.15rem 1.15rem;
}
.note__label{
  font-family:var(--sans); font-weight:600;
  font-size:.7rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink-soft); margin:0 0 .7rem;
}
.note__label + p{ margin:0 0 .7rem; font-size:.92rem; color:var(--ink-soft); }
.note .line{ border-bottom:1px solid var(--stone); height:1.7rem; }
.note .line + .line{ margin-top:.55rem; }

.record{
  margin-top:1.5rem; max-width:34rem;
  border:1px solid var(--stone); padding:1.1rem 1.25rem;
  display:grid; gap:1rem;
}
.record label{
  font-family:var(--sans); font-weight:600;
  font-size:.7rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink-soft);
}
.record input{
  display:block; width:100%; margin-top:.35rem;
  font:inherit; color:var(--ink); background:transparent;
  border:0; border-bottom:1px solid var(--ink-soft);
  padding:.3rem 0;
}

.ws{ margin-top:1.75rem; max-width:38rem; border:1px solid var(--stone); }
.ws__row{
  display:flex; align-items:baseline; justify-content:space-between; gap:1.5rem;
  padding:.8rem clamp(1rem,3vw,1.3rem);
  border-top:1px solid var(--stone);
}
.ws__row:first-child{ border-top:0; }
.ws__row .v{
  flex:none; min-width:7rem;
  border-bottom:1px solid var(--ink-soft);
  text-align:right; font-variant-numeric:tabular-nums;
}
.ws__row .v::before{ content:"$ "; color:var(--ink-soft); }
.ws__row--total{ border-top:2px solid var(--olive); font-weight:600; }

.split3{ display:grid; gap:1.1rem; margin-top:1.5rem; max-width:46rem; }
@media (min-width:44rem){ .split3{ grid-template-columns:1fr 1fr 1fr; } }
.split3 .col{ border:1px solid var(--stone); padding:.9rem 1rem 1.1rem; }
.split3 .note__label{ margin-bottom:.65rem; }

.phrases{ list-style:none; margin:1.2rem 0 0; padding:0; max-width:46rem; }
.phrases li{
  border-left:2px solid var(--olive);
  padding:.4rem 0 .4rem .95rem;
  margin:.6rem 0;
  font-size:1.02rem;
}
.phrases--ask li{ border-left-color:var(--slate); }

.checklist{ list-style:none; margin:1.25rem 0 0; padding:0; max-width:46rem; }
.checklist li{ display:flex; gap:.7rem; align-items:flex-start; padding:.45rem 0; }
.checklist input{ margin-top:.28rem; width:1rem; height:1rem; flex:none; accent-color:var(--olive); }
.checklist label{ font-size:1rem; }

.guide-actions{ display:flex; flex-wrap:wrap; gap:1rem 1.4rem; align-items:center; margin-top:1.8rem; }
.btn-quiet{
  font:inherit; font-weight:600; font-size:.9rem;
  background:transparent; border:1px solid var(--olive); color:var(--olive-deep);
  padding:.7rem 1.1rem; cursor:pointer;
}
.btn-quiet:hover{ background:var(--olive); color:var(--ivory); }

@media print{
  .tag,.site-head,.site-foot,.nav-toggle,.skip,.guide-actions,.related,.proto-note{ display:none !important; }
  body{ background:#fff; color:#000; font-size:11pt; }
  .section{ padding-block:.9rem !important; border-top:1px solid #999; }
  .section--moss,.section--slate{ background:#fff !important; color:#000 !important; }
  .section--slate .conv__label,.section--slate .eyebrow,.section--slate h2,.section--slate h3{ color:#000 !important; }
  .section--slate .qs li{ border-left-color:#000 !important; }
  a{ color:#000; }
  .callout,.note,.ws,.checklist li,.conv__block,.split3 .col,.record{ break-inside:avoid; }
  .grid-head{ display:block; }
  h1{ font-size:20pt; } h2{ font-size:15pt; }
}

/* ---- portrait ---- */
.portrait{ margin:1.6rem 0 0; max-width:17rem; }
.portrait img{ display:block; width:100%; height:auto; border:1px solid var(--stone); }
.portrait figcaption{ margin-top:.55rem; font-size:.82rem; color:var(--ink-soft); }

/* ---- editorial bio: portrait beside text ---- */
.bio-cols{ margin-top:1.6rem; }
.bio-cols .portrait{ margin:0; max-width:22rem; }
.bio-cols .portrait img{
  aspect-ratio:4 / 5;            /* single column: gentle crop, not cut off */
  object-fit:cover;
  object-position:50% 20%;
}
.bio-cols__text .prose{ margin-top:1.4rem; }

@media (min-width:52rem){
  .bio-cols{
    display:grid;
    grid-template-columns:42% 1fr;
    column-gap:clamp(2rem, 5vw, 3.5rem);
    align-items:start;
  }
  .bio-cols .portrait{ max-width:none; }
  .bio-cols .portrait img{
    aspect-ratio:1 / 1;          /* two column: about waist / hip up, with headroom */
    object-position:50% 12%;
  }
  .bio-cols__text{ max-width:34rem; }
  .bio-cols__text .prose{ margin-top:0; }
}

/* ---- site-plan figure ---- */
.siteplan{ margin:2.5rem 0 0; }
.siteplan > a{
  display:block;
  border:1px solid var(--stone);
  background:var(--ivory);
  line-height:0;
}
.siteplan > a:hover{ border-color:var(--olive); }
.siteplan img{ width:100%; height:auto; }
.siteplan figcaption{ margin-top:.8rem; }
.siteplan__cap{ display:block; font-size:.85rem; color:var(--ink-soft); max-width:52rem; }
.siteplan__note{ display:block; margin-top:.3rem; font-size:.8rem; color:var(--ink-soft); max-width:52rem; }

/* ---- related pages ---- */
.related{
  margin-top:2.75rem;
  border-top:1px solid var(--stone);
  padding-top:1.5rem;
  max-width:46rem;
}
.related .eyebrow{ margin-bottom:.75rem; }
.related ul{ list-style:none; margin:0; padding:0; display:grid; gap:.55rem; }
.related a{ color:var(--ink); font-weight:500; }

/* ---- footer ---- */
.site-foot{ background:var(--slate-deep); color:var(--ivory); padding-block:3.5rem; }
.site-foot a{ color:var(--ivory); }
.foot-brand{ font-family:var(--serif); font-size:1.25rem; }
.foot-brand span{ color:var(--moss); }
.site-foot p{ max-width:46rem; }
.site-foot .disclaimer{ font-size:.88rem; color:#D7DCE0; margin-top:1rem; }
.site-foot .fineprint{ font-size:.8rem; color:var(--slate-soft); margin-top:1.4rem; }
.foot-nav{
  display:flex; flex-wrap:wrap; gap:.4rem 1.3rem;
  font-size:.85rem; margin-top:1.6rem;
}

/* ---- decision guide (Could green burial be right for you?) ---- */
.dg{ margin-top:.5rem; max-width:46rem; transition:opacity .15s ease; }
.dg.is-fading{ opacity:0; }
html:not(.js) .dg{ display:none; }

/* compact, undivided intro: eyebrow, heading, copy, timing line and Start button
   read as one block, with no divider and tight spacing between them */
.dg-lede .eyebrow{ margin-bottom:.7rem; }
.dg-lede .lead{ margin-top:1rem; }
.dg-lede .lead + .lead{ margin-top:.8rem; }
.dg-lede .dg{ margin-top:1.4rem; }

.dg__meta{
  margin:0 0 .75rem;
  font-family:var(--sans);
  font-size:.82rem;
  letter-spacing:.02em;
  color:var(--olive);
}

.dg__note{ margin:1.2rem 0 0; font-size:.95rem; color:var(--ink-soft); max-width:42rem; }

.dg__progress{
  margin:0 0 1rem;
  font-family:var(--sans); font-weight:600;
  font-size:.72rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--olive-deep);
}

.dg__qtext{
  font-family:var(--serif); font-weight:400; line-height:1.14;
  text-wrap:balance;
  font-size:clamp(1.5rem, 3.2vw, 2.1rem);
  margin:0 0 1.5rem;
}
.dg__qtext:focus{ outline:none; }
.dg__qtext:focus-visible{ outline:2px solid var(--slate); outline-offset:6px; }

.dg__options{ display:grid; gap:.75rem; }
.dg__opt{
  font:inherit; line-height:1.5; text-align:left;
  color:var(--ink); background:var(--ivory);
  border:1px solid var(--stone);
  padding:1rem 1.15rem;
  cursor:pointer;
}
.dg__opt:hover{ border-color:var(--olive); background:var(--moss-tint); }
.dg__opt.is-chosen{
  border-color:var(--olive-deep);
  border-left-width:3px;
  padding-left:calc(1.15rem - 2px);
  background:var(--moss-tint);
}

.dg__nav{ margin-top:1.6rem; }

.dg__rhead{ font-size:clamp(1.6rem, 3.4vw, 2.3rem); margin:0 0 1rem; }
.dg__rhead:focus{ outline:none; }
.dg__rhead:focus-visible{ outline:2px solid var(--slate); outline-offset:6px; }
.dg__rbody{ margin:0; max-width:42rem; }
.dg__rbody p{ margin:0 0 1rem; font-size:1.08rem; line-height:1.6; }
.dg__rbody p:last-child{ margin-bottom:0; }
.dg__open{ margin:.2rem 0 1rem; padding-left:1.15rem; font-size:1rem; line-height:1.55; }
.dg__open li{ margin:.3rem 0; }
.dg__disclaimer{
  margin:1.6rem 0 0; max-width:42rem;
  font-size:.9rem; line-height:1.55; color:var(--ink-soft);
  border-left:2px solid var(--olive); padding-left:.9rem;
}
.dg__ctas{ display:flex; flex-wrap:wrap; gap:1rem 1.75rem; margin-top:1.9rem; }
.dg__restart{ margin-top:1.9rem; }

/* ---- decision-guide feature block (contextual invitations) ---- */
.dg-feature{
  background:var(--moss-tint);
  border-top:1px solid var(--stone);
  border-bottom:1px solid var(--stone);
  padding-block:clamp(3rem, 6vw, 4.5rem);
}
.dg-feature__inner{ max-width:44rem; }
.dg-feature .eyebrow{ margin-bottom:1rem; }
.dg-feature__h{
  font-family:var(--serif); font-weight:400;
  font-size:clamp(1.8rem, 3.4vw, 2.5rem);
  line-height:1.1;
  text-wrap:balance;
  margin:0;
}
.dg-feature__p{
  margin:1.15rem 0 0;
  max-width:40rem;
  font-size:1.08rem; line-height:1.6;
}
.dg-feature__cta{ margin:1.9rem 0 0; }

/* the one placement meant to read as the primary invitation */
.dg-feature--lead{
  border-top:2px solid var(--olive);
  padding-block:clamp(3.5rem, 7vw, 5.5rem);
}
.dg-feature--lead .dg-feature__h{ font-size:clamp(2rem, 4vw, 3rem); }

/* ---- compact decision-guide prompt (quieter placements) ---- */
.dg-cta{ margin:2.1rem 0 0; max-width:42rem; }
.dg-cta p{ margin:0; }
.dg-cta p + p{ margin-top:1.1rem; }

@media (prefers-reduced-motion: reduce){
  *{ transition:none !important; }
}
