/* ============================================================
   Site stylesheet
   Palette: granite + bronze — materials from the subject itself.
   ============================================================ */

:root{
  --granite:#3C4650;
  --granite-deep:#2B333B;
  --paper:#F2F3F1;
  --stone:#D6D8D3;
  --hair:#EBECE9;
  --bronze:#8A6A3B;
  --bronze-lift:#9C7942;
  --moss:#4F6350;
  --rust:#8C4A3A;
  --muted:#6B7580;
  --body:#4A545E;
  --white:#fff;
  --serif:"Source Serif 4",Georgia,"Times New Roman",serif;
  --sans:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

*,*::before,*::after{box-sizing:border-box;}

html{-webkit-text-size-adjust:100%;}

body{
  margin:0;
  font-family:var(--sans);
  color:var(--granite-deep);
  background:var(--paper);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}

.wrap{max-width:44rem;margin:0 auto;padding:0 1.5rem;}

/* ---------- masthead ---------- */
.masthead{border-bottom:1px solid var(--stone);background:var(--white);}
.masthead .wrap{
  display:flex;align-items:baseline;justify-content:space-between;
  gap:1.5rem;padding-top:1.125rem;padding-bottom:1.125rem;flex-wrap:wrap;
}
.brand{
  font-family:var(--serif);font-size:1.25rem;font-weight:600;
  color:var(--granite-deep);text-decoration:none;letter-spacing:-.01em;
}
.brand:hover{color:var(--bronze);}
.brand{
  display:inline-flex;
  align-items:center;
}



@media (max-width: 700px){
  
}

.masthead nav{display:flex;gap:1.25rem;}
.masthead nav a{
  font-size:.9375rem;color:var(--muted);text-decoration:none;
  border-bottom:1px solid transparent;padding-bottom:2px;
}
.masthead nav a:hover,.masthead nav a[aria-current="page"]{
  color:var(--granite-deep);border-bottom-color:var(--bronze);
}

/* ---------- type ---------- */
main{padding:2.5rem 0 3rem;}
h1{
  font-family:var(--serif);font-size:2rem;font-weight:600;line-height:1.2;
  letter-spacing:-.015em;margin:0 0 .875rem;
}
h2{
  font-family:var(--serif);font-size:1.5rem;font-weight:600;line-height:1.25;
  margin:2.5rem 0 .875rem;letter-spacing:-.01em;
}
p{font-family:var(--serif);font-size:1.0625rem;line-height:1.65;color:var(--body);
  margin:0 0 1rem;max-width:36rem;}
.lede{font-size:1.125rem;line-height:1.6;margin-bottom:2rem;}
b,strong{color:var(--granite-deep);font-weight:600;}
ul{margin:0 0 1.25rem;padding-left:1.125rem;max-width:36rem;}
li{font-family:var(--serif);font-size:1.0625rem;line-height:1.6;
  margin-bottom:.625rem;color:var(--body);}
a{color:var(--granite);}

/* ---------- shared blocks ---------- */
.panel{background:var(--white);padding:1.75rem 1.5rem;margin-bottom:1.5rem;}
.panel h3{font-family:var(--sans);font-size:.9375rem;font-weight:600;
  margin:0 0 .875rem;color:var(--granite);}
.panel ul{margin:0;padding-left:1.125rem;}
.panel li{font-size:1rem;margin-bottom:.5rem;}
.panel li:last-child{margin-bottom:0;}

.dark{background:var(--granite-deep);color:#C4C9CE;padding:1.75rem 1.5rem;margin:2.5rem 0;}
.dark h3{font-family:var(--serif);font-size:1.375rem;font-weight:600;
  margin:0 0 .625rem;color:var(--white);line-height:1.3;}
.dark p{color:#C4C9CE;margin:0 0 1.25rem;}

a.cta{
  display:inline-block;font-family:var(--sans);font-size:1.0625rem;font-weight:600;
  background:var(--bronze);color:var(--white);padding:.875rem 1.5rem;text-decoration:none;
}
a.cta:hover{background:var(--bronze-lift);}
a.cta:focus-visible{outline:2px solid var(--white);outline-offset:2px;}

.flag{border-left:3px solid var(--rust);background:var(--white);
  padding:1.25rem 1.375rem;margin:2rem 0;}
.flag h3{font-family:var(--sans);font-size:.9375rem;font-weight:600;
  margin:0 0 .5rem;color:var(--rust);}
.flag p{margin:0;font-size:1rem;}

.fine{font-size:.875rem;font-family:var(--sans);line-height:1.6;color:var(--muted);
  border-top:1px solid var(--stone);padding-top:1.25rem;margin-top:2.5rem;max-width:36rem;}
.fine a{color:var(--granite);}

/* ---------- home cards ---------- */
.tools{display:grid;gap:1rem;margin:2rem 0 0;}
a.tool{
  display:block;background:var(--white);border-left:3px solid var(--bronze);
  padding:1.5rem;text-decoration:none;color:inherit;
  transition:border-left-width .15s ease;
}
a.tool:hover{border-left-width:7px;}
a.tool:focus-visible{outline:2px solid var(--bronze);outline-offset:2px;}
a.tool h2{margin:0 0 .5rem;font-size:1.3125rem;}
a.tool p{margin:0;font-size:1rem;}

/* ---------- wizard (VA tool) ---------- */
.rail{display:flex;gap:.375rem;margin-bottom:.5rem;}
.rail i{display:block;height:3px;flex:1;background:var(--stone);transition:background .25s ease;}
.rail i.on{background:var(--bronze);}
.railtext{font-family:var(--sans);font-size:.8125rem;color:var(--muted);margin:0 0 1.5rem;}

/* Reserve height for JS-rendered content so content below never shifts (CLS) */
#vahc-stage{min-height:29rem;}
#vaic-out{min-height:31rem;}
.q{font-family:var(--serif);font-size:1.75rem;line-height:1.25;font-weight:600;
  margin:0 0 .625rem;letter-spacing:-.01em;}
.sub{font-family:var(--serif);font-size:1.0625rem;line-height:1.55;color:#5A646E;
  margin:0 0 1.75rem;max-width:34rem;}
.opts{display:flex;flex-direction:column;gap:.625rem;}
button.opt{
  font-family:var(--sans);font-size:1.0625rem;font-weight:500;text-align:left;
  background:var(--white);color:var(--granite-deep);
  border:1px solid var(--stone);border-left:3px solid var(--stone);
  padding:1rem 1.125rem;cursor:pointer;line-height:1.4;
  transition:border-color .15s ease;
}
button.opt small{display:block;font-size:.875rem;font-weight:400;color:var(--muted);margin-top:.25rem;}
button.opt:hover{border-color:var(--granite);border-left-color:var(--bronze);}
button.opt:focus-visible{outline:2px solid var(--bronze);outline-offset:2px;}
button.back{
  margin-top:2rem;background:none;border:none;padding:0;cursor:pointer;
  font-family:var(--sans);font-size:.9375rem;color:var(--muted);
  border-bottom:1px solid var(--stone);
}
button.back:hover{color:var(--granite-deep);border-bottom-color:var(--granite);}
button.restart{
  margin-top:1.5rem;background:none;border:1px solid var(--stone);
  padding:.75rem 1.25rem;cursor:pointer;font-family:var(--sans);
  font-size:.9375rem;color:var(--granite);
}
button.restart:hover{border-color:var(--granite);}

.verdict{border-top:4px solid var(--moss);background:var(--white);
  padding:1.75rem 1.5rem;margin-bottom:1.5rem;}
.verdict.no{border-top-color:var(--rust);}
.verdict.maybe{border-top-color:var(--bronze);}
.verdict h2{font-family:var(--serif);font-size:1.625rem;font-weight:600;
  line-height:1.25;margin:0 0 .625rem;letter-spacing:-.01em;}
.verdict p{font-size:1.0625rem;margin:0 0 .875rem;}
.verdict p:last-child{margin-bottom:0;}

/* ---------- estimator ---------- */
.calc{background:var(--white);padding:1.75rem 1.5rem;margin-bottom:2rem;}
.calc h2{margin:0 0 .375rem;font-size:1.375rem;}
.calc p.hint{font-size:.9375rem;font-family:var(--sans);color:var(--muted);margin:0 0 1.5rem;}
fieldset{border:none;margin:0 0 1.375rem;padding:0;}
legend{font-family:var(--sans);font-size:.9375rem;font-weight:600;
  color:var(--granite);padding:0;margin-bottom:.625rem;}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;}
.chips label{
  font-size:.9375rem;font-weight:500;border:1px solid var(--stone);
  background:var(--white);padding:.625rem .875rem;cursor:pointer;line-height:1.3;
  transition:border-color .15s ease;
}
.chips input{position:absolute;opacity:0;width:0;height:0;}
.chips label:hover{border-color:var(--granite);}
.chips label:has(input:checked){
  background:var(--granite-deep);border-color:var(--granite-deep);color:var(--white);
}
.chips input:focus-visible + span{outline:2px solid var(--bronze);outline-offset:4px;}

.out{border-top:4px solid var(--bronze);background:var(--white);padding:1.75rem 1.5rem;}
.total{font-family:var(--serif);font-size:2.25rem;font-weight:600;line-height:1.1;
  letter-spacing:-.02em;margin:0 0 .25rem;color:var(--granite-deep);}
.total span{font-size:1rem;font-weight:400;color:var(--muted);display:block;
  font-family:var(--sans);letter-spacing:0;margin-top:.375rem;}
table{width:100%;border-collapse:collapse;margin:1.5rem 0 0;font-size:.9375rem;}
th{text-align:left;font-family:var(--sans);font-weight:600;font-size:.8125rem;
  color:var(--muted);padding:0 0 .625rem;border-bottom:1px solid var(--stone);}
th:last-child{text-align:right;}
td{padding:.75rem 0;border-bottom:1px solid var(--hair);vertical-align:top;color:var(--body);}
td:last-child{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;
  color:var(--granite-deep);font-weight:500;}
td small{display:block;color:#8A939C;font-size:.8125rem;margin-top:.1875rem;}
tr.zero td{color:#9AA2AA;}
.note{font-size:.9375rem;font-family:var(--sans);color:var(--muted);line-height:1.6;
  margin:1.25rem 0 0;padding-top:1.25rem;border-top:1px solid var(--stone);}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--stone);background:var(--white);
  padding:2rem 0;margin-top:3rem;}
footer p{font-family:var(--sans);font-size:.875rem;color:var(--muted);
  margin:0 0 .5rem;max-width:40rem;}
footer nav{display:flex;gap:1.25rem;flex-wrap:wrap;margin-bottom:1rem;}
footer nav a{font-size:.875rem;color:var(--granite);text-decoration:none;}
footer nav a:hover{text-decoration:underline;}

@media (max-width:600px){
  .wrap{padding:0 1.125rem;}
  h1{font-size:1.625rem;}
  .q{font-size:1.4375rem;}
  .total{font-size:1.875rem;}
  .verdict h2{font-size:1.375rem;}
  .chips label{font-size:.875rem;padding:.5625rem .75rem;}
  .masthead .wrap{gap:.75rem;}
  #vahc-stage{min-height:33rem;}
  #vaic-out{min-height:36rem;}
}
@media (prefers-reduced-motion:reduce){*{transition:none !important;}}

/* ---------- direct-answer block (GEO: extractable by AI engines) ---------- */
.answer{
  border-left:3px solid var(--bronze);
  background:var(--white);
  padding:1.125rem 1.375rem;
  margin:0 0 1.5rem;
  max-width:38rem;
}
.answer p{margin:0;font-size:1.0625rem;line-height:1.6;color:var(--granite-deep);}
.answer p + p{margin-top:.75rem;}

/* ---------- breadcrumb ---------- */
.crumb{font-family:var(--sans);font-size:.875rem;color:var(--muted);margin:0 0 1rem;}
.crumb a{color:var(--muted);text-decoration:none;}
.crumb a:hover{color:var(--granite-deep);text-decoration:underline;}

/* ---------- related links ---------- */
.related{border-top:1px solid var(--stone);margin-top:2.5rem;padding-top:1.5rem;}
.related h2{font-size:1.25rem;margin:0 0 .875rem;}
.related ul{list-style:none;padding:0;margin:0;}
.related li{margin-bottom:.5rem;font-size:1rem;}
.related a{color:var(--granite-deep);}

/* ---------- fact table ---------- */
table.facts{margin:1.5rem 0;max-width:38rem;}
table.facts td:first-child{width:40%;font-weight:500;color:var(--granite-deep);}
table.facts td:last-child{text-align:left;white-space:normal;font-weight:400;color:var(--body);}

/* ---------- screen-reader only ---------- */
.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

/* ---------- skip link ---------- */
.skip{
  position:absolute;left:-9999px;top:0;z-index:100;
  background:var(--granite-deep);color:var(--white);
  padding:.75rem 1.25rem;font-family:var(--sans);font-size:.9375rem;
  text-decoration:none;
}
.skip:focus{left:0;}

/* ---------- document tables ---------- */
table.docs{margin:1rem 0 2rem;max-width:38rem;}
table.docs td:first-child{
  width:34%;vertical-align:top;font-family:var(--sans);font-size:.875rem;
  font-weight:600;color:var(--granite-deep);white-space:normal;
}
table.docs td:last-child{
  text-align:left;white-space:normal;font-weight:400;color:var(--body);
  font-family:var(--serif);font-size:1rem;line-height:1.5;
}
table.docs td small{
  display:block;font-family:var(--sans);font-size:.8125rem;
  color:var(--muted);margin-top:.375rem;line-height:1.5;
}
h3{
  font-family:var(--sans);font-size:1rem;font-weight:600;
  color:var(--granite);margin:2rem 0 .5rem;
  padding-bottom:.375rem;border-bottom:1px solid var(--stone);
  max-width:38rem;
}
@media (max-width:600px){
  table.docs td:first-child{width:40%;font-size:.8125rem;}
  table.docs td:last-child{font-size:.9375rem;}
}

/* ---------- ordered list ---------- */
ol{margin:0 0 1.5rem;padding-left:1.375rem;max-width:36rem;}
ol li{
  font-family:var(--serif);font-size:1.0625rem;line-height:1.6;
  margin-bottom:.75rem;color:var(--body);padding-left:.25rem;
}
ol li::marker{font-family:var(--sans);font-weight:600;color:var(--bronze);font-size:.9375rem;}

/* ---------- fact table row headers ---------- */
table.facts th[scope="row"]{
  width:40%;text-align:left;padding:.75rem 1rem .75rem 0;
  border-bottom:1px solid var(--hair);vertical-align:top;
  font-family:var(--sans);font-size:.9375rem;font-weight:600;
  color:var(--granite-deep);
}

/* ---------- main focus ring suppressed (skip-link target) ---------- */
main:focus{outline:none;}

/* ---------- figures ----------
   Diagrams break out of the 44rem reading column. Prose wants a short
   line; a diagram wants room. Capped at 62rem so it stays legible. */
figure.fig{
  margin:2.5rem 0;
  padding:0;
  width:min(62rem, calc(100vw - 3rem));
  margin-left:calc(50% - min(31rem, calc(50vw - 1.5rem)));
}
figure.fig picture,figure.fig img{display:block;}
figure.fig img{
  width:100%;height:auto;
  background:var(--paper);
  border:1px solid var(--stone);
}
figure.fig figcaption{
  font-family:var(--sans);
  font-size:.875rem;
  line-height:1.6;
  color:var(--muted);
  margin-top:.75rem;
  max-width:36rem;
}
figure.fig figcaption{
  margin-left:auto;margin-right:auto;
  max-width:44rem;
}

@media (max-width:900px){
  figure.fig{
    width:calc(100vw - 2.25rem);
    margin-left:calc(50% - 50vw + 1.125rem);
  }
}
@media (max-width:600px){
  figure.fig{
    width:100vw;
    margin-left:calc(50% - 50vw);
    margin-top:1.75rem;margin-bottom:1.75rem;
  }
  figure.fig img{border-left:none;border-right:none;}
  figure.fig figcaption{padding:0 1.125rem;}
}

/* ---------- interactive checklist ---------- */
.tool{background:var(--white);padding:1.75rem 1.5rem;margin:1.5rem 0 2rem;}

.prog{margin-bottom:1.5rem;}
.prog-bar{height:4px;background:var(--stone);overflow:hidden;}
.prog-bar i{display:block;height:100%;background:var(--bronze);transition:width .3s ease;}
.prog-text{font-family:var(--sans);font-size:.8125rem;color:var(--muted);margin:.5rem 0 0;}

ol.checks{list-style:none;margin:0;padding:0;counter-reset:none;max-width:none;}
ol.checks li{margin:0;padding:0;border-top:1px solid var(--hair);}
ol.checks li:first-child{border-top:none;}
ol.checks label{
  display:flex;gap:.875rem;align-items:flex-start;
  padding:1rem 0;cursor:pointer;
}
ol.checks input{position:absolute;opacity:0;width:0;height:0;}
ol.checks .box{
  flex:0 0 20px;width:20px;height:20px;margin-top:2px;
  border:2px solid var(--stone);background:var(--white);
  transition:border-color .15s ease,background .15s ease;
}
ol.checks label:hover .box{border-color:var(--granite);}
ol.checks input:focus-visible + .box{outline:2px solid var(--bronze);outline-offset:3px;}
ol.checks li.on .box{
  background:var(--moss);border-color:var(--moss);
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path d='M5 10.5l3.5 3.5L15 7' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-size:contain;
}
ol.checks .txt{flex:1;}
ol.checks .txt b{
  display:block;font-family:var(--sans);font-size:1.0625rem;font-weight:600;
  color:var(--granite-deep);line-height:1.35;
}
ol.checks .txt small{
  display:block;font-family:var(--serif);font-size:1rem;line-height:1.55;
  color:var(--body);margin-top:.3125rem;
}
ol.checks li.on .txt b{color:var(--muted);text-decoration:line-through;text-decoration-thickness:1px;}
ol.checks li.on .txt small{color:#8A939C;}
ol.checks .txt a{color:var(--bronze);font-family:var(--sans);font-size:.9375rem;
  text-decoration:none;white-space:nowrap;}
ol.checks .txt a:hover{text-decoration:underline;}

.done-note{
  font-family:var(--serif);font-size:1.0625rem;line-height:1.6;
  color:var(--granite-deep);margin:1.25rem 0 0;padding-top:1.25rem;
  border-top:2px solid var(--moss);
}

/* ---------- legal nav in footer ---------- */
footer nav.legal-nav{
  margin-top:1rem;padding-top:1rem;
  border-top:1px solid var(--hair);
}
footer nav.legal-nav a{color:var(--muted);}

/* Memorial Types — clean homepage grid */

main#main > .tools:first-of-type {
  display: block;
}

main#main > .tools:first-of-type > .tool {
  display: block;
  width: auto;
  margin-bottom: 28px;
}

main#main > .home-section .tools {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  margin-top: 28px;
  align-items: start;
}

main#main > .home-section .tools .tool {
  display: flex;
  flex-direction: column;
  min-height: 0;
  margin-bottom: 0;
  padding: 30px 28px 26px;
  background: #fff;
  border: 1px solid rgba(92, 78, 58, 0.16);
  border-left: 3px solid #9a7740;
  box-shadow: 0 8px 24px rgba(40, 35, 28, 0.045);
  text-decoration: none;
  overflow: hidden;
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

main#main > .home-section .tools .tool:hover {
  transform: translateY(-3px);
  border-left-color: #76582d;
  box-shadow: 0 12px 30px rgba(40, 35, 28, 0.09);
}

main#main > .home-section .tools .tool h2 {
  margin: 0 0 12px;
  font-size: 1.35rem;
  line-height: 1.18;
}

main#main > .home-section .tools .tool p {
  margin: 0;
  line-height: 1.65;
  color: #5f6468;
}

@media (max-width: 700px) {
  main#main > .home-section .tools {
    grid-template-columns: 1fr;
  }

  main#main > .home-section .tools .tool {
    min-height: auto;
    padding: 26px 22px 24px;
  }
}


/* Memorial card images */

main#main > .home-section .tools .tool {
  overflow: hidden;
}

main#main > .home-section .tools .tool img {
  display: block;
  width: calc(100% + 44px);
  max-width: none;
  height: 190px;
  margin: -26px -22px 22px;
  object-fit: cover;
}

@media (max-width: 700px) {
  main#main > .home-section .tools .tool img {
    height: 170px;
  }
}


/* Memorial card CTA */
main#main > .home-section .tools .card-link {
  display: inline-block;
  margin-top: 6px;
  color: #8a5a20;
  font-family: "IBM Plex Sans", sans-serif;
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  text-decoration: none;
}

main#main > .home-section .tools .tool:hover .card-link {
  text-decoration: underline;
  text-underline-offset: 3px;
}


/* Tighten memorial card grid */
main#main > .home-section .tools {
  row-gap: 18px;
}

main#main > .home-section .tools .tool {
  display: flex;
  flex-direction: column;
}

main#main > .home-section .tools .card-link {
  margin-top: auto;
  padding-top: 12px;
}


/* Final spacing for memorial cards */
main#main > .home-section .tools {
  row-gap: 18px !important;
  align-items: start;
}

main#main > .home-section .tools .tool {
  align-self: start;
}


/* Clean memorial grid spacing */
main#main > .home-section .tools {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 18px;
  row-gap: 18px !important;
  align-items: start;
}

main#main > .home-section .tools .tool {
  margin-bottom: 0 !important;
  align-self: start;
}


/* Equal-height memorial cards */
main#main > .home-section .tools .tool {
  height: 430px;
  box-sizing: border-box;
}

@media (max-width: 700px) {
  main#main > .home-section .tools .tool {
    height: auto;
  }
}


/* ---------- Header refinement ---------- */

.masthead .wrap{
  max-width:72rem;
  padding-top:1.2rem;
  padding-bottom:1.2rem;
}

.brand{
  font-size:1.4rem;
  letter-spacing:-.015em;
}

.masthead nav{
  gap:1.6rem;
  align-items:center;
}

.masthead nav a{
  font-size:.9rem;
  letter-spacing:.01em;
  padding-bottom:3px;
}

@media (max-width:700px){
  .masthead .wrap{
    align-items:flex-start;
    gap:.85rem;
    padding-top:1rem;
    padding-bottom:1rem;
  }

  .brand{
    font-size:1.3rem;
  }

  .masthead nav{
    width:100%;
    gap:.75rem 1.25rem;
    flex-wrap:wrap;
  }

  .masthead nav a{
    font-size:.82rem;
  }
}


/* ---------- Memorial Guide Hero ---------- */

.sm-discovery{
  width:100%;
  padding:4.5rem 0 4rem;
}

.sm-discovery-inner{
  max-width:72rem;
  margin:0 auto;
  padding:0 1.5rem;
}

.sm-hero-copy{
  max-width:760px;
  margin:0 auto;
  text-align:center;
}

.sm-eyebrow{
  margin:0 0 1.15rem;
  color:#9a7740;
  font-family:"IBM Plex Sans",sans-serif;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.22em;
  text-transform:uppercase;
}

.sm-hero-copy h1{
  margin:0;
  color:var(--granite-deep);
  font-family:var(--serif);
  font-size:clamp(3.2rem,6vw,5rem);
  font-weight:400;
  line-height:.98;
  letter-spacing:-.035em;
}

.sm-hero-subtitle{
  margin:1.6rem auto 0;
  max-width:650px;
  color:var(--muted);
  font-family:"IBM Plex Sans",sans-serif;
  font-size:1.1rem;
  line-height:1.65;
}

.sm-hero-actions{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:.8rem;
  margin-top:2.1rem;
}

.sm-hero-actions a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:52px;
  padding:0 1.5rem;
  font-family:"IBM Plex Sans",sans-serif;
  font-size:.92rem;
  font-weight:600;
  text-decoration:none;
  transition:all .2s ease;
}

.sm-hero-primary{
  background:#9a7740;
  color:#fff;
  border:1px solid #9a7740;
}

.sm-hero-primary:hover{
  background:#86652f;
  border-color:#86652f;
}

.sm-hero-secondary{
  background:transparent;
  color:#5f513f;
  border:1px solid #b79b6d;
}

.sm-hero-secondary:hover{
  background:#fff;
}

@media (max-width:700px){
  .sm-discovery{
    padding:3.2rem 0 3rem;
  }

  .sm-hero-copy h1{
    font-size:3rem;
  }

  .sm-hero-subtitle{
    font-size:1rem;
  }

  .sm-hero-actions{
    flex-direction:column;
    width:100%;
  }

  .sm-hero-actions a{
    width:100%;
    max-width:280px;
  }
}


/* ---------- Real Cost panel ---------- */

.sm-cost-panel{
  display:grid;
  grid-template-columns:minmax(0, 1.25fr) minmax(260px, .75fr);
  gap:48px;
  margin:56px 0 64px;
  padding:38px 40px;
  background:#f7f5f0;
  border:1px solid rgba(92,78,58,.16);
  border-top:3px solid #9a7740;
}

.sm-cost-panel .sm-eyebrow{
  margin:0 0 14px;
}

.sm-cost-panel h2{
  margin:0 0 14px;
  font-size:1.65rem;
  line-height:1.2;
}

.sm-cost-panel p{
  margin:0;
  max-width:34rem;
  line-height:1.65;
}

.sm-cost-links{
  display:flex;
  flex-direction:column;
  justify-content:center;
  border-left:1px solid rgba(92,78,58,.16);
  padding-left:32px;
}

.sm-cost-links a{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  padding:14px 0;
  color:#4f4b45;
  text-decoration:none;
  font-family:"IBM Plex Sans",sans-serif;
  font-size:.95rem;
  font-weight:600;
  border-bottom:1px solid rgba(92,78,58,.13);
}

.sm-cost-links a:first-child{
  padding-top:0;
}

.sm-cost-links a:last-child{
  border-bottom:0;
  padding-bottom:0;
}

.sm-cost-links a span{
  color:#9a7740;
  font-size:1.05rem;
  transition:transform .18s ease;
}

.sm-cost-links a:hover{
  color:#8a5a20;
}

.sm-cost-links a:hover span{
  transform:translateX(3px);
}

@media (max-width:700px){
  .sm-cost-panel{
    grid-template-columns:1fr;
    gap:28px;
    margin:44px 0 52px;
    padding:28px 24px;
  }

  .sm-cost-panel h2{
    font-size:1.4rem;
  }

  .sm-cost-links{
    border-left:0;
    border-top:1px solid rgba(92,78,58,.16);
    padding-left:0;
    padding-top:18px;
  }
}


/* ---------- Three Things cards ---------- */

.things-heading{
  margin-top:64px;
  margin-bottom:24px;
}

.things-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:18px;
  margin:0 0 3rem;
  padding:0;
  list-style:none;
  max-width:none;
}

.things-grid li{
  margin:0;
  padding:26px 24px 24px;
  background:#fff;
  border:1px solid rgba(92,78,58,.15);
  border-top:2px solid #9a7740;
  box-shadow:0 6px 20px rgba(40,35,28,.035);
  font-size:.98rem;
  line-height:1.65;
}

.things-grid li strong{
  display:block;
  margin-bottom:10px;
  font-family:"IBM Plex Sans",sans-serif;
  font-size:.96rem;
  line-height:1.4;
  color:#34383c;
}

@media (max-width:900px){
  .things-grid{
    grid-template-columns:1fr;
    gap:14px;
  }

  .things-grid li{
    padding:22px 20px;
  }
}


/* ---------- Three Things — editorial layout ---------- */

.things-heading{
  margin-top:64px;
  margin-bottom:28px;
}

.things-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:0;
  margin:0 0 3.5rem;
  padding:0;
  list-style:none;
  max-width:none;
}

.things-grid li{
  position:relative;
  margin:0;
  padding:26px 24px 26px 82px;
  background:transparent;
  border:0;
  border-top:1px solid rgba(92,78,58,.16);
  box-shadow:none;
  font-size:1rem;
  line-height:1.65;
  color:#5f6468;
}

.things-grid li:last-child{
  border-bottom:1px solid rgba(92,78,58,.16);
}

.things-grid li::before{
  content:counter(thing);
  counter-increment:thing;
  position:absolute;
  left:0;
  top:27px;
  width:48px;
  color:#9a7740;
  font-family:"IBM Plex Sans",sans-serif;
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.12em;
}

.things-grid{
  counter-reset:thing;
}

.things-grid li strong{
  display:inline;
  margin:0;
  font-family:"IBM Plex Sans",sans-serif;
  font-size:.98rem;
  line-height:1.5;
  color:#34383c;
}

@media (max-width:700px){
  .things-heading{
    margin-top:48px;
  }

  .things-grid li{
    padding:22px 8px 22px 58px;
  }

  .things-grid li::before{
    top:23px;
    width:38px;
  }
}


/* =========================================================
   HOMEPAGE — WIDE EDITORIAL REFINEMENT
   ========================================================= */

/* ---------- Memorial type cards ---------- */

main#main > .home-section .tools{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
  margin-top:28px;
}

main#main > .home-section .tools .tool{
  height:360px;
  min-height:0;
  padding:24px 22px 20px;
}

main#main > .home-section .tools .tool img{
  height:155px;
  width:calc(100% + 44px);
  margin:-20px -22px 20px;
}

main#main > .home-section .tools .tool h2{
  font-size:1.18rem;
  margin-bottom:9px;
}

main#main > .home-section .tools .tool p{
  font-size:.96rem;
  line-height:1.5;
}

main#main > .home-section .tools .card-link{
  font-size:.88rem;
  padding-top:10px;
}

/* ---------- Real Cost ---------- */

.sm-cost-panel{
  grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);
  gap:52px;
  margin:30px 0 0;
  padding:34px 42px;
}

.sm-cost-panel h2{
  font-size:1.65rem;
}

/* ---------- Three Things ---------- */

.things-heading{
  margin-top:56px;
  margin-bottom:20px;
}

.things-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  margin-bottom:52px;
}

.things-grid li{
  padding:0 30px 0 64px;
  border-top:0;
  border-bottom:0;
  min-height:180px;
}

.things-grid li + li{
  border-left:1px solid rgba(92,78,58,.16);
}

.things-grid li::before{
  left:0;
  top:1px;
  width:48px;
  font-size:.9rem;
}

.things-grid li strong{
  display:block;
  margin-bottom:8px;
  font-size:1rem;
  line-height:1.35;
}

.things-grid li:not(:last-child){
  border-right:0;
}

/* ---------- Content below Three Things ---------- */

.things-grid + h2{
  margin-top:0;
  padding-top:36px;
  border-top:1px solid rgba(92,78,58,.14);
}

.things-grid + h2 + p{
  max-width:48rem;
  font-size:1.05rem;
  line-height:1.7;
}

/* ---------- Wider editorial rhythm ---------- */

main#main > h2{
  max-width:60rem;
}

main#main > h2 + p{
  max-width:48rem;
}

/* ---------- Responsive ---------- */

@media (max-width:1100px){
  main#main > .home-section .tools{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  main#main > .home-section .tools .tool{
    height:390px;
  }

  .things-grid{
    grid-template-columns:1fr;
    gap:0;
  }

  .things-grid li{
    min-height:0;
    padding:24px 20px 24px 64px;
    border-top:1px solid rgba(92,78,58,.14);
  }

  .things-grid li + li{
    border-left:0;
  }

  .things-grid li:last-child{
    border-bottom:1px solid rgba(92,78,58,.14);
  }
}

@media (max-width:700px){
  main#main > .home-section .tools{
    grid-template-columns:1fr;
  }

  main#main > .home-section .tools .tool{
    height:auto;
  }

  .sm-cost-panel{
    grid-template-columns:1fr;
    gap:28px;
    padding:28px 24px;
  }
}


/* =========================================================
   FINAL HOMEPAGE PROPORTIONS
   ========================================================= */

/* Give the homepage discovery area room to breathe */
main#main{
  max-width:72rem;
}

/* Keep the editorial reading sections comfortably narrow */
main#main > h2,
main#main > h2 + p,
main#main > h2 + p + p,
main#main > h2 + p + p + ul{
  max-width:48rem;
}

/* ---------- Memorial cards ---------- */

main#main > .home-section{
  width:100%;
}

main#main > .home-section .tools{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:20px;
  width:100%;
}

main#main > .home-section .tools .tool{
  height:390px;
  min-width:0;
  padding:24px 22px 20px;
  overflow:hidden;
}

main#main > .home-section .tools .tool img{
  height:150px;
  width:calc(100% + 44px);
  object-fit:cover;
  margin:-20px -22px 20px;
}

main#main > .home-section .tools .tool h2{
  font-size:1.18rem;
  line-height:1.2;
  margin-bottom:10px;
}

main#main > .home-section .tools .tool p{
  font-size:.94rem;
  line-height:1.48;
  margin-bottom:0;
}

main#main > .home-section .tools .card-link{
  margin-top:auto;
  padding-top:12px;
}

/* ---------- Cost panel ---------- */

.sm-cost-panel{
  width:100%;
  box-sizing:border-box;
  margin-top:30px;
}

/* ---------- Three Things ---------- */

.things-heading{
  max-width:none !important;
  margin-top:58px;
  margin-bottom:24px;
}

.things-grid{
  width:100%;
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin-bottom:58px;
}

.things-grid li{
  min-width:0;
  padding:0 34px 0 62px;
  min-height:175px;
}

.things-grid li:first-child{
  padding-left:62px;
}

.things-grid li::before{
  left:0;
}

.things-grid li + li{
  border-left:1px solid rgba(92,78,58,.16);
}

/* ---------- Long-form content below ---------- */

.things-grid + h2{
  max-width:48rem !important;
  margin-top:0;
}

.things-grid + h2 + p,
.things-grid + h2 + p + p,
.things-grid + h2 + p + p + ul{
  max-width:48rem;
}

/* Keep later editorial sections readable */
main#main > h2:not(.things-heading){
  max-width:48rem;
}

main#main > h2:not(.things-heading) + p,
main#main > h2:not(.things-heading) + p + p{
  max-width:48rem;
}

@media (max-width:1100px){
  main#main{
    max-width:72rem;
  }

  main#main > .home-section .tools{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .things-grid{
    grid-template-columns:1fr;
  }

  .things-grid li{
    min-height:0;
    padding:24px 20px 24px 62px;
  }

  .things-grid li + li{
    border-left:0;
    border-top:1px solid rgba(92,78,58,.14);
  }
}

@media (max-width:700px){
  main#main{
    max-width:100%;
  }

  main#main > .home-section .tools{
    grid-template-columns:1fr;
  }

  main#main > .home-section .tools .tool{
    height:auto;
  }

  .sm-cost-panel{
    width:100%;
  }
}

/* ---------- Shared header alignment ---------- */

.masthead .wrap{
  max-width:72rem;
}

/* FINAL HEADER LOGO */
.masthead .brand{
  display:inline-flex;
  align-items:center;
  flex-shrink:0;
}

.masthead .brand img{
  display:block;
  width:210px;
  height:auto;
  max-width:210px;
  object-fit:contain;
}

@media (max-width:700px){
  .masthead .brand img{
    width:175px;
    max-width:175px;
  }
}

/* sm-interactive-home-v1 */
.sm-finder{margin:clamp(70px,9vw,120px) 0 0;padding:clamp(34px,5vw,64px);background:#f3f3f1;border-top:1px solid #d8d8d5;border-bottom:1px solid #d8d8d5}
.sm-finder-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(32px,6vw,90px);align-items:start}
.sm-finder-copy h2,.sm-visual-guide h2,.sm-quick-tools h2{margin:0;max-width:680px;font-weight:400;letter-spacing:-.025em}
.sm-finder-copy>p:not(.sm-eyebrow){max-width:470px;margin:18px 0 0;color:#5d5d5a;line-height:1.7}
.sm-finder-progress{display:flex;gap:7px;margin-top:30px}.sm-finder-progress span{width:34px;height:2px;background:#c9c9c5;transition:width .25s ease,background .25s ease}.sm-finder-progress span.is-active{width:58px;background:#151515}
.sm-finder-panel{min-height:290px;padding:clamp(24px,3.5vw,42px);background:#fff;border:1px solid #d6d6d2}.sm-finder-step,.sm-finder-result{animation:smFadeIn .35s ease both}
.sm-finder-label{margin:0 0 22px;font-size:12px;letter-spacing:.13em;text-transform:uppercase;color:#6b6b67}
.sm-finder-options{display:grid;gap:10px}.sm-finder-options button{width:100%;padding:17px 18px;text-align:left;font:inherit;color:#171717;background:#fafaf8;border:1px solid #d5d5d1;cursor:pointer;transition:transform .2s ease,border-color .2s ease,background .2s ease}.sm-finder-options button:hover,.sm-finder-options button:focus-visible{transform:translateX(4px);border-color:#171717;background:#f1f1ef;outline:none}
.sm-finder-result h3{margin:0 0 12px;font-size:clamp(25px,3vw,38px);font-weight:400;letter-spacing:-.02em}.sm-finder-result p:not(.sm-finder-label){margin:0;max-width:620px;line-height:1.7;color:#5d5d5a}.sm-finder-result-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:26px}.sm-finder-reset{border:0;background:transparent;padding:12px 4px;font:inherit;text-decoration:underline;cursor:pointer;color:#444}
.sm-visual-guide{margin:clamp(80px,10vw,135px) 0 0}.sm-visual-guide-head{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:28px}.sm-visual-guide-head>p{max-width:390px;margin:0;color:#666;line-height:1.6}.sm-visual-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.sm-visual-card{display:block;color:inherit;text-decoration:none;overflow:hidden;background:#f4f4f2}.sm-visual-card img{display:block;width:100%;aspect-ratio:1.18/1;object-fit:cover;filter:grayscale(100%);transition:transform .55s ease,filter .35s ease}.sm-visual-card:hover img,.sm-visual-card:focus-visible img{transform:scale(1.035);filter:grayscale(15%)}.sm-visual-card span{display:block;margin:18px 18px 6px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#777}.sm-visual-card strong{display:block;margin:0 18px 22px;font-weight:400;line-height:1.35}
.sm-quick-tools{margin:clamp(80px,10vw,135px) 0 clamp(70px,9vw,110px)}.sm-quick-tools-head{margin-bottom:28px}.sm-tool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.sm-tool-card{min-height:230px;display:flex;flex-direction:column;padding:28px;color:#171717;text-decoration:none;border:1px solid #d6d6d2;background:#fff;transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}.sm-tool-card:hover,.sm-tool-card:focus-visible{transform:translateY(-4px);border-color:#1a1a1a;box-shadow:0 14px 35px rgba(0,0,0,.07);outline:none}.sm-tool-number{font-size:11px;letter-spacing:.12em;color:#777}.sm-tool-card h3{margin:34px 0 10px;font-size:25px;font-weight:400;letter-spacing:-.02em}.sm-tool-card p{margin:0;max-width:330px;color:#666;line-height:1.65}.sm-tool-arrow{margin-top:auto;padding-top:26px;font-size:13px;letter-spacing:.02em}
@keyframes smFadeIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@media (max-width:900px){.sm-finder-grid{grid-template-columns:1fr}.sm-visual-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sm-tool-grid{grid-template-columns:1fr}}
@media (max-width:700px){.sm-finder{padding:28px 20px}.sm-visual-guide-head{display:block}.sm-visual-guide-head>p{margin-top:14px}.sm-visual-grid{gap:8px}.sm-visual-card span{margin:14px 12px 5px}.sm-visual-card strong{margin:0 12px 17px;font-size:14px}.sm-tool-card{min-height:205px;padding:23px}.sm-tool-card h3{margin-top:26px}}
@media (prefers-reduced-motion:reduce){.sm-finder-step,.sm-finder-result{animation:none}.sm-finder-options button,.sm-visual-card img,.sm-tool-card{transition:none}}

/* sm-header-v3 */
.masthead > .wrap{
  width:min(1080px, calc(100% - 48px));
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:55px;
}

.masthead .brand{
  flex:0 0 auto;
}

.masthead nav{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:24px;
  margin:0;
}

.masthead nav a{
  white-space:nowrap;
}

@media (max-width:700px){
  .masthead > .wrap{
    width:calc(100% - 32px);
    justify-content:flex-start;
    gap:18px;
  }

  .masthead nav{
    gap:10px;
    overflow-x:auto;
    scrollbar-width:none;
  }

  .masthead nav::-webkit-scrollbar{
    display:none;
  }
}

/* Stone & Marker — unified header */
.masthead > .wrap{
  width:min(1080px, calc(100% - 48px));
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:55px;
}

.masthead .brand{
  flex:0 0 auto;
}

.masthead nav{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:24px;
  margin:0;
}

.masthead nav a{
  white-space:nowrap;
}

/* Terms / legal pages */
.terms-masthead .terms-header-wrap{
  width:min(1080px, calc(100% - 48px));
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:55px;
}

.terms-masthead .terms-brand{
  flex:0 0 auto;
}

.terms-masthead nav{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:24px;
  margin:0;
}

.terms-masthead nav a{
  white-space:nowrap;
}

@media (max-width:700px){
  .masthead > .wrap,
  .terms-masthead .terms-header-wrap{
    width:calc(100% - 32px);
    justify-content:flex-start;
    gap:18px;
  }

  .masthead nav,
  .terms-masthead nav{
    gap:10px;
    overflow-x:auto;
    scrollbar-width:none;
  }

  .masthead nav::-webkit-scrollbar,
  .terms-masthead nav::-webkit-scrollbar{
    display:none;
  }
}

