/* Public homepage — isolated production styles */
.public-homepage-layout {
    --home-green-950: #092f2c;
    --home-green-900: #0d4039;
    --home-green-800: #165349;
    --home-green-700: #25665a;
    --home-gold-500: #d5aa61;
    --home-gold-300: #ead2a6;
    --home-cream-100: #fbf8f1;
    --home-cream-200: #f5efe3;
    --home-ink: #17312d;
    --home-muted: #6f7771;
    --home-line: #e9e2d7;
    --home-shadow: 0 1.25rem 3.5rem rgb(43 48 42 / 10%);
    background: #fff;
}

.public-homepage-layout .public-main { overflow: hidden; }

.home-header {
    position: relative;
    z-index: 50;
    color: var(--home-ink);
    background: rgb(255 253 249 / 94%);
    border-bottom: 1px solid rgb(87 80 66 / 10%);
    box-shadow: 0 .35rem 1.4rem rgb(65 54 37 / 6%);
    backdrop-filter: blur(1rem);
}

.home-header__inner {
    min-height: 5.2rem;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 2rem;
}

.home-brand { display:flex; align-items:center; gap:.7rem; color:var(--home-green-950); text-decoration:none; white-space:nowrap; }
.home-brand__mark { width:2.8rem; height:2.8rem; display:grid; place-items:center; color:var(--home-green-700); }
.home-brand__mark svg { width:100%; height:100%; fill:currentColor; }
.home-brand strong { display:block; font-size:1.45rem; line-height:1; font-weight:850; }
.home-brand small { display:block; margin-top:.3rem; color:#7b817c; font-size:.58rem; }

.home-nav { display:flex; align-items:stretch; justify-content:center; gap:.15rem; }
.home-nav a { position:relative; padding:1.9rem .72rem 1.65rem; color:#31453f; font-size:.72rem; font-weight:650; text-decoration:none; transition:color 150ms ease; }
.home-nav a::after { position:absolute; inset-inline:30%; inset-block-end:1rem; height:2px; content:""; background:var(--home-gold-500); border-radius:999px; transform:scaleX(0); transition:transform 150ms ease; }
.home-nav a:hover,.home-nav a.is-active { color:var(--home-green-900); }
.home-nav a:hover::after,.home-nav a.is-active::after { transform:scaleX(1); }
.home-header__actions { display:flex; align-items:center; gap:.55rem; }

.home-btn { min-height:2.6rem; display:inline-flex; align-items:center; justify-content:center; gap:.55rem; padding:.55rem 1rem; color:var(--home-ink); font-size:.7rem; font-weight:750; line-height:1; text-decoration:none; border:1px solid transparent; border-radius:.55rem; transition:transform 150ms ease, box-shadow 150ms ease, background 150ms ease; }
.home-btn:hover { transform:translateY(-1px); }
.home-btn--primary { color:#fff; background:linear-gradient(135deg,var(--home-green-800),var(--home-green-950)); box-shadow:0 .7rem 1.6rem rgb(9 47 44 / 18%); }
.home-btn--ghost { color:#263c37; background:rgb(255 255 255 / 60%); border-color:#cfc8bb; }
.home-btn--soft { color:var(--home-ink); background:rgb(255 255 255 / 76%); border-color:rgb(255 255 255 / 80%); box-shadow:0 .6rem 1.5rem rgb(61 49 31 / 10%); }
.home-btn--gold { color:#183c35; background:linear-gradient(135deg,#efd39d,#ddb36c); box-shadow:0 .8rem 1.8rem rgb(0 0 0 / 18%); }
.home-btn--large { min-height:3.2rem; padding-inline:1.45rem; font-size:.76rem; }

.home-hero { position:relative; min-height:34rem; display:grid; align-items:center; overflow:hidden; background:linear-gradient(180deg,#e8dccb 0%,#f1d8af 43%,#bb9970 100%); }
.home-hero::after { position:absolute; inset:0; content:""; background:linear-gradient(90deg,rgb(255 246 226 / 30%),transparent 30% 70%,rgb(255 248 231 / 20%)),linear-gradient(180deg,rgb(19 48 44 / 8%),transparent 25%,rgb(255 246 227 / 18%)); pointer-events:none; }
.home-hero__sky { position:absolute; inset:0; overflow:hidden; }
.home-hero__sun { position:absolute; width:19rem; height:19rem; inset-block-start:2.4rem; inset-inline-start:50%; transform:translateX(50%); background:radial-gradient(circle,#fff8d9 0 5%,#ffdda1 18%,rgb(245 185 100 / 40%) 34%,transparent 70%); border-radius:50%; filter:blur(.25rem); }
.home-hero__mountain { position:absolute; inset-inline:-5%; inset-block-end:0; height:70%; transform-origin:center bottom; clip-path:polygon(0 78%,10% 55%,18% 68%,29% 32%,38% 61%,49% 23%,59% 62%,70% 37%,81% 64%,92% 42%,100% 72%,100% 100%,0 100%); }
.home-hero__mountain--back { background:linear-gradient(160deg,#8d8b74,#667b69); opacity:.56; transform:scaleY(.72); }
.home-hero__mountain--front { background:linear-gradient(160deg,#677661,#324f44); opacity:.55; transform:translateY(13%) scaleY(.82); }
.home-hero__mist { position:absolute; inset-inline:-10%; inset-block-end:3%; height:42%; background:radial-gradient(ellipse at 15% 65%,rgb(255 255 255 / 70%),transparent 28%),radial-gradient(ellipse at 52% 58%,rgb(255 251 238 / 66%),transparent 35%),radial-gradient(ellipse at 85% 70%,rgb(255 255 255 / 64%),transparent 30%); filter:blur(1.6rem); opacity:.75; }
.home-hero__branch { position:absolute; color:#375a42; font-family:serif; font-size:10rem; opacity:.48; line-height:1; transform:rotate(-25deg); }
.home-hero__branch--one { inset-inline-start:-1.5rem; inset-block-start:6rem; }
.home-hero__branch--two { inset-inline-end:-1rem; inset-block-end:1rem; transform:rotate(155deg); opacity:.35; }
.home-hero__candle { position:absolute; inset-block-end:0; width:3.5rem; height:7rem; background:linear-gradient(90deg,#f7e5c3,#fff8e9 55%,#d8bd91); border-radius:.5rem .5rem .15rem .15rem; box-shadow:0 0 2.5rem rgb(255 197 92 / 45%); opacity:.92; }
.home-hero__candle::before { position:absolute; width:1.1rem; height:2rem; inset-block-start:-1.7rem; inset-inline-start:50%; content:""; background:radial-gradient(ellipse at 50% 70%,#ff7d21 0 25%,#ffd77a 45%,transparent 72%); border-radius:60% 40% 55% 45%; transform:translateX(50%); }
.home-hero__candle--one { inset-inline-start:4.5rem; }
.home-hero__candle--two { inset-inline-start:8.7rem; width:2.5rem; height:4.7rem; }
.home-hero__content { position:relative; z-index:3; width:min(100%,67rem); padding-block:3rem 3.8rem; text-align:center; }
.home-hero__ornament { display:flex; align-items:center; justify-content:center; gap:.7rem; margin-bottom:.75rem; color:#bd8f4b; font-size:.72rem; }
.home-hero__ornament span { width:2.3rem; height:1px; background:linear-gradient(90deg,transparent,#c49b5e); }
.home-hero__ornament span:last-child { background:linear-gradient(90deg,#c49b5e,transparent); }
.home-hero h1 { margin:0; color:var(--home-green-950); font-size:clamp(1.9rem,3.2vw,2.85rem); font-weight:900; line-height:1.4; letter-spacing:-.035em; text-shadow:0 1px rgb(255 255 255 / 55%); }
.home-hero__content > p { max-width:46rem; margin:1rem auto 1.5rem; color:#354a43; font-size:.9rem; line-height:2; font-weight:520; }

.home-search { width:min(100%,53rem); min-height:4.4rem; display:grid; grid-template-columns:3.8rem minmax(0,1fr) 9rem; align-items:center; gap:.6rem; margin:0 auto; padding:.55rem; background:rgb(255 249 239 / 74%); border:1px solid rgb(158 118 66 / 16%); border-radius:1rem; box-shadow:0 1.4rem 3.5rem rgb(73 52 28 / 13%); backdrop-filter:blur(.75rem); }
.home-search input { min-width:0; height:3.25rem; padding-inline:1rem; color:#243c36; text-align:right; background:#fff; border:1px solid #e8dfd1; border-radius:.7rem; outline:none; }
.home-search input:focus { border-color:#6b8d7f; box-shadow:0 0 0 .2rem rgb(38 102 90 / 10%); }
.home-search__submit { width:3.25rem; height:3.25rem; display:grid; place-items:center; color:#fff; background:var(--home-green-900); border:0; border-radius:.65rem; cursor:pointer; }
.home-search__submit svg { width:1.25rem; height:1.25rem; fill:none; stroke:currentColor; stroke-width:1.8; }
.home-search__scope { height:3.25rem; display:flex; align-items:center; justify-content:center; gap:.55rem; padding-inline:.75rem; color:#2c403a; font-size:.7rem; font-weight:750; background:#fff; border:1px solid #e8dfd1; border-radius:.7rem; }
.home-search__scope span { color:#c3914a; }
.home-popular-searches { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:.65rem; margin-top:.8rem; color:#4c5a55; font-size:.62rem; }
.home-popular-searches strong { font-weight:750; }
.home-popular-searches a { padding:.28rem .65rem; color:#47534f; text-decoration:none; background:rgb(255 255 255 / 46%); border:1px solid rgb(255 255 255 / 52%); border-radius:999px; }
.home-hero__actions { display:flex; align-items:center; justify-content:center; gap:.85rem; margin-top:1.3rem; }

.home-section { padding-block:3.7rem; background:#fff; }
.home-section-heading { margin-bottom:2.1rem; text-align:center; }
.home-section-heading__leaf { display:block; height:1rem; color:#d4b980; font-size:1.2rem; line-height:1; }
.home-section-heading h2 { margin:.45rem 0 .3rem; color:var(--home-ink); font-size:1.55rem; font-weight:850; }
.home-section-heading p { margin:0; color:var(--home-muted); font-size:.72rem; line-height:1.7; }

.home-memorials { background:linear-gradient(180deg,#fff,#fbfaf7); }
.home-memorial-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:1rem; }
.home-memorial-grid.is-search { grid-template-columns:repeat(4,minmax(0,1fr)); }
.home-memorial-card { overflow:hidden; background:#fff; border:1px solid #e9e1d5; border-radius:.9rem; box-shadow:0 .65rem 1.8rem rgb(52 50 42 / 7%); transition:transform 170ms ease,box-shadow 170ms ease,border-color 170ms ease; }
.home-memorial-card:hover { transform:translateY(-3px); border-color:#d4b16e; box-shadow:var(--home-shadow); }
.home-memorial-card__media { height:9.4rem; display:block; overflow:hidden; background:linear-gradient(145deg,#eee6d7,#dfe9df); }
.home-memorial-card__media img { width:100%; height:100%; display:block; object-fit:cover; transition:transform 280ms ease; }
.home-memorial-card:hover img { transform:scale(1.035); }
.home-memorial-card__fallback { height:100%; display:grid; place-items:center; background:radial-gradient(circle at 70% 20%,#f2d7a8,transparent 24%),linear-gradient(145deg,#ece6da,#d9e3d8); }
.home-memorial-card__fallback svg { width:3.5rem; height:3.5rem; fill:#718b77; stroke:#fff; stroke-width:1.5; opacity:.65; }
.home-memorial-card__body { min-height:6.6rem; padding:.85rem; text-align:center; }
.home-memorial-card h3 { margin:0; font-size:.82rem; font-weight:800; }
.home-memorial-card h3 a { color:#203a34; text-decoration:none; }
.home-memorial-card__years { margin:.35rem 0 .45rem; color:#767b76; font-size:.62rem; }
.home-memorial-card__views { display:inline-flex; align-items:center; gap:.3rem; color:#a87d3f; font-size:.57rem; }
.home-empty-state { padding:2.6rem; text-align:center; background:#fbfaf7; border:1px dashed #d9d0c2; border-radius:1rem; }
.home-empty-state > span { display:block; color:#b49360; font-size:2rem; }
.home-empty-state strong { display:block; margin-top:.5rem; color:var(--home-ink); }
.home-empty-state p { margin:.35rem 0 .8rem; color:var(--home-muted); font-size:.72rem; }
.home-empty-state a { color:var(--home-green-800); font-size:.7rem; font-weight:750; }

.home-features { border-top:1px solid #f1ece4; }
.home-feature-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); }
.home-feature-card { position:relative; padding:0 1.1rem; text-align:center; }
.home-feature-card + .home-feature-card { border-inline-start:1px solid #ece5da; }
.home-feature-card__icon { width:3.4rem; height:3.4rem; display:grid; place-items:center; margin:0 auto .75rem; color:#315d52; font-size:1.35rem; background:linear-gradient(145deg,#f5edda,#ebe4d3); border-radius:50%; }
.home-feature-card h3 { margin:0; color:#273c37; font-size:.77rem; font-weight:800; }
.home-feature-card p { margin:.45rem 0 0; color:#777d78; font-size:.58rem; line-height:1.8; }

.home-intents { padding-top: .6rem; background: #fff; }
.home-intents__heading { max-width: 48rem; margin-inline: auto; }
.home-intent-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.9rem; }
.home-intent-card { min-width:0; display:flex; flex-direction:column; padding:1.15rem; background:linear-gradient(155deg,#fff,#fbf8f1); border:1px solid #ebe3d7; border-radius:.9rem; box-shadow:0 .7rem 1.8rem rgb(43 48 42 / 5%); }
.home-intent-card__eyebrow { color:#a77c41; font-size:.56rem; font-weight:800; }
.home-intent-card h3 { margin:.45rem 0 .5rem; color:var(--home-green-950); font-size:.88rem; font-weight:850; line-height:1.65; }
.home-intent-card p { margin:0; color:var(--home-muted); font-size:.62rem; line-height:1.95; }
.home-intent-card a { display:inline-flex; align-items:center; gap:.35rem; width:max-content; max-width:100%; margin-top:auto; padding-top:.9rem; color:var(--home-green-800); font-size:.6rem; font-weight:850; text-decoration:none; }
.home-intent-card a:hover { color:var(--home-green-950); }

.home-stats { padding-block:0 1.4rem; background:#fff; }
.home-stats__inner { display:grid; grid-template-columns:repeat(5,1fr); overflow:hidden; color:#fff; background:linear-gradient(110deg,#103b36,#08332f 55%,#0e443d); border:1px solid rgb(213 170 97 / 28%); border-radius:.95rem; box-shadow:0 1rem 2.7rem rgb(13 64 57 / 14%); }
.home-stat { position:relative; min-height:6rem; display:grid; grid-template-columns:auto auto; align-content:center; justify-content:center; column-gap:.7rem; padding:1rem; text-align:center; }
.home-stat + .home-stat::before { position:absolute; inset-block:1.25rem; inset-inline-start:0; width:1px; content:""; background:rgb(255 255 255 / 15%); }
.home-stat > span { grid-row:1/3; align-self:center; color:#e5b967; font-size:1.55rem; }
.home-stat strong { color:#e9c57f; font-size:1.05rem; font-weight:850; }
.home-stat small { color:#f1eee5; font-size:.57rem; }

.home-cta { padding-block:.4rem 2rem; background:#fff; }
.home-cta__panel { min-height:10.5rem; display:grid; grid-template-columns:15rem 1fr 15rem; align-items:center; gap:1.5rem; overflow:hidden; padding:1.3rem 2rem; color:#fff; background:radial-gradient(circle at 15% 50%,rgb(176 135 70 / 22%),transparent 22%),linear-gradient(120deg,#092e2b,#0d463e 60%,#07302d); border-radius:.95rem; box-shadow:0 1.4rem 3.5rem rgb(8 52 46 / 15%); }
.home-cta__still-life { position:relative; height:8rem; }
.home-cta__frame { position:absolute; width:5.6rem; height:6.8rem; inset-inline-start:1rem; inset-block-start:.2rem; border:.5rem solid #7e6244; background:linear-gradient(145deg,#42534c,#bd9b6b); transform:rotate(-4deg); box-shadow:.8rem 1rem 2rem rgb(0 0 0 / 28%); }
.home-cta__flower { position:absolute; inset-inline-start:6.2rem; inset-block-end:.6rem; color:#ede6d5; font-size:3.5rem; }
.home-cta__candle { position:absolute; width:2.8rem; height:5rem; inset-inline-end:1.4rem; inset-block-end:.2rem; background:linear-gradient(90deg,#dac49b,#fff2d0,#b99a69); border-radius:.35rem; box-shadow:0 0 2.4rem rgb(237 181 90 / 48%); }
.home-cta__candle::before { position:absolute; width:.8rem; height:1.5rem; inset-block-start:-1.2rem; inset-inline-start:50%; content:""; background:#ffc252; border-radius:70% 30% 65% 35%; filter:drop-shadow(0 0 .55rem #ffc252); transform:translateX(50%); }
.home-cta__copy { text-align:center; }
.home-cta__copy > span { color:#dcb671; font-size:.62rem; }
.home-cta__copy h2 { margin:.4rem 0 .45rem; color:#fff; font-size:1.6rem; font-weight:850; }
.home-cta__copy p { max-width:32rem; margin:0 auto; color:#d6e1dc; font-size:.7rem; line-height:1.8; }
.home-cta__action { display:flex; align-items:center; flex-direction:column; gap:.55rem; }
.home-cta__action small { color:#c3d2cd; font-size:.55rem; }

.home-guides { padding-top:2.8rem; }
.home-section-heading--with-action { display:flex; align-items:flex-end; justify-content:space-between; gap:1.5rem; }
.home-section-heading--with-action > div { min-width:0; }
.home-section-heading__link { display:inline-flex; align-items:center; gap:.4rem; padding:.55rem .8rem; color:#31564d; font-size:.6rem; font-weight:800; text-decoration:none; border:1px solid #ded8ce; border-radius:.65rem; background:#fff; white-space:nowrap; transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease; }
.home-section-heading__link:hover { transform:translateY(-1px); border-color:#c9b58f; box-shadow:0 .5rem 1.3rem rgb(50 45 36 / 7%); }
.home-guide-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.home-guide-card { min-width:0; overflow:hidden; background:#fff; border:1px solid #ebe4da; border-radius:.9rem; box-shadow:0 .6rem 1.8rem rgb(50 45 36 / 6%); }
.home-guide-card--article { display:flex; flex-direction:column; min-height:20rem; }
.home-guide-card__visual { position:relative; min-height:10.5rem; display:block; overflow:hidden; background:linear-gradient(145deg,#eee7da,#d6c3a3); }
.home-guide-card__visual img { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; transition:transform .35s ease; }
.home-guide-card:hover .home-guide-card__visual img { transform:scale(1.035); }
.home-guide-card__visual.is-fallback { display:grid; place-items:center; background:radial-gradient(circle at 25% 20%,rgb(214 176 111 / 38%),transparent 35%),linear-gradient(145deg,#173f37,#092d2b); }
.home-guide-card__fallback { position:relative; width:5rem; height:5rem; display:grid; place-items:center; color:#e2bd77; border:1px solid rgb(255 255 255 / 15%); border-radius:50%; }
.home-guide-card__fallback span { position:absolute; inset-inline-start:-.5rem; inset-block-start:-.5rem; font-size:2rem; opacity:.65; }
.home-guide-card__fallback strong { color:#fff; font-family:serif; font-size:2rem; }
.home-guide-card__content { flex:1; display:flex; flex-direction:column; padding:1rem 1rem .95rem; }
.home-guide-card__meta { min-height:1.5rem; display:flex; align-items:center; justify-content:space-between; gap:.65rem; }
.home-guide-card__tag { display:inline-block; padding:.16rem .45rem; color:#805f2d; font-size:.5rem; font-weight:750; background:#f6e9cd; border-radius:.3rem; }
.home-guide-card__meta time { color:#98968f; font-size:.5rem; }
.home-guide-card h3 { margin:.6rem 0 .35rem; font-size:.8rem; font-weight:850; line-height:1.75; }
.home-guide-card h3 a { color:#263d37; text-decoration:none; }
.home-guide-card p { display:-webkit-box; overflow:hidden; margin:0; color:#777e79; font-size:.58rem; line-height:1.9; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.home-guide-card__read { display:inline-flex; align-items:center; gap:.35rem; width:max-content; margin-top:auto; padding-top:.8rem; color:#31564d; font-size:.56rem; font-weight:800; text-decoration:none; }
.home-guides__empty { padding:2rem; text-align:center; color:#777e79; background:#fff; border:1px dashed #ddd4c7; border-radius:.9rem; }
.home-guides__empty > span { display:block; margin-bottom:.4rem; color:#b4894e; font-size:1.6rem; }
.home-guides__empty p { margin:.2rem 0 .8rem; font-size:.65rem; }
.home-guides__empty a { color:#31564d; font-size:.62rem; font-weight:800; text-decoration:none; }

.home-faq { padding:1.3rem 0 3.8rem; background:#fff; }
.home-faq__inner { display:grid; grid-template-columns:1fr 1.7fr auto; align-items:center; gap:2rem; padding:1.35rem 1.6rem; background:#faf7f0; border:1px solid #ebe2d4; border-radius:.85rem; }
.home-faq__inner span { color:#b4894e; font-size:.55rem; }
.home-faq__inner h2 { margin:.25rem 0 0; color:#233b35; font-size:1rem; }
.home-faq__inner p { margin:0; color:#6f7771; font-size:.65rem; line-height:1.85; }
.home-faq__inner a { color:var(--home-green-800); font-size:.66rem; font-weight:800; text-decoration:none; white-space:nowrap; }

.home-footer { color:#dce8e3; background:radial-gradient(circle at 8% 100%,#174d42,transparent 28rem),linear-gradient(135deg,#0d3a35,#062b29); }
.home-footer__grid { display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:3rem; padding-block:3rem 2.2rem; }
.home-footer__brand p,.home-footer section > p { max-width:18rem; color:#b9cbc5; font-size:.63rem; line-height:1.9; }
.home-brand--footer { color:#fff; }
.home-brand--footer .home-brand__mark { color:#ddb466; font-size:2rem; }
.home-footer section h2 { margin:0 0 .85rem; color:#e7c17c; font-size:.75rem; font-weight:800; }
.home-footer section > a,.home-footer section > span { display:block; width:max-content; max-width:100%; margin:.45rem 0; color:#d5e1dd; font-size:.62rem; text-decoration:none; }
.home-footer section > a:hover { color:#efc77c; }
.home-footer__socials { display:flex; gap:.55rem; margin-top:1rem; }
.home-footer__socials span { width:2rem; height:2rem; display:grid; place-items:center; color:#fff; background:rgb(255 255 255 / 9%); border:1px solid rgb(255 255 255 / 9%); border-radius:50%; }
.home-footer__bottom { min-height:4rem; display:flex; align-items:center; justify-content:space-between; border-top:1px solid rgb(255 255 255 / 10%); }
.home-footer__bottom p { margin:0; color:#9fb4ad; font-size:.57rem; }
.home-footer__bottom a { width:2.2rem; height:2.2rem; display:grid; place-items:center; color:#fff; text-decoration:none; background:rgb(255 255 255 / 8%); border-radius:50%; }

@media (max-width: 1199.98px) {
    .home-header__inner { grid-template-columns:auto 1fr; }
    .home-header__actions { display:none; }
    .home-nav { justify-content:flex-end; }
    .home-feature-grid { grid-template-columns:repeat(3,1fr); gap:1.6rem 0; }
    .home-feature-card:nth-child(4) { border-inline-start:0; }
    .home-intent-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .home-cta__panel { grid-template-columns:11rem 1fr 13rem; }
}

@media (max-width: 991.98px) {
    .home-header__inner { min-height:4.7rem; display:flex; }
    .home-nav { overflow-x:auto; justify-content:flex-start; margin-inline-start:auto; scrollbar-width:none; }
    .home-nav::-webkit-scrollbar { display:none; }
    .home-nav a { padding-block:1.6rem 1.45rem; white-space:nowrap; }
    .home-brand small { display:none; }
    .home-hero { min-height:32rem; }
    .home-memorial-grid,.home-memorial-grid.is-search { grid-template-columns:repeat(3,1fr); }
    .home-stats__inner { grid-template-columns:repeat(5,1fr); }
    .home-stat { padding:.8rem .3rem; }
    .home-cta__panel { grid-template-columns:1fr; text-align:center; }
    .home-cta__still-life { display:none; }
    .home-guide-grid { grid-template-columns:1fr; }
    .home-faq__inner { grid-template-columns:1fr; text-align:center; }
    .home-footer__grid { grid-template-columns:repeat(2,1fr); }
}

@media (max-width: 767.98px) {
    .home-header__inner { justify-content:space-between; gap:1rem; }
    .home-nav { display:none; }
    .home-brand__mark { width:2.35rem; height:2.35rem; }
    .home-brand strong { font-size:1.2rem; }
    .home-header__actions { display:flex; margin-inline-start:auto; }
    .home-header__actions .home-btn--ghost { display:none; }
    .home-header__actions .home-btn { min-height:2.35rem; padding-inline:.7rem; font-size:.6rem; }
    .home-hero { min-height:38rem; }
    .home-hero__content { padding-block:3.5rem 2.8rem; }
    .home-hero h1 { font-size:2.1rem; }
    .home-hero__content > p { font-size:.75rem; }
    .home-search { grid-template-columns:3.2rem 1fr; min-height:4rem; }
    .home-search__scope { display:none; }
    .home-search__submit { width:3rem; height:3rem; }
    .home-search input { height:3rem; }
    .home-hero__actions { align-items:stretch; flex-direction:column; width:min(100%,20rem); margin-inline:auto; margin-top:1.2rem; }
    .home-hero__candle--one { inset-inline-start:1rem; }
    .home-hero__candle--two { inset-inline-start:4.5rem; }
    .home-section { padding-block:3rem; }
    .home-memorial-grid,.home-memorial-grid.is-search { grid-template-columns:repeat(2,1fr); gap:.75rem; }
    .home-memorial-card__media { height:8rem; }
    .home-feature-grid { grid-template-columns:repeat(2,1fr); }
    .home-feature-card:nth-child(odd) { border-inline-start:0; }
    .home-intent-grid { grid-template-columns:1fr; }
    .home-intent-card { padding:1rem; }
    .home-stats { padding-inline:.75rem; }
    .home-stats__inner { grid-template-columns:repeat(2,1fr); }
    .home-stat:nth-child(odd)::before { display:none; }
    .home-stat:last-child { grid-column:1/-1; }
    .home-cta { padding-inline:.75rem; }
    .home-cta__panel { padding:1.8rem 1rem; }
    .home-footer__grid { grid-template-columns:1fr; gap:1.5rem; }
}

@media (max-width: 479.98px) {
    .home-header__actions .home-btn { padding-inline:.55rem; }
    .home-header__actions .home-btn span { display:none; }
    .home-memorial-grid,.home-memorial-grid.is-search { grid-template-columns:1fr; }
    .home-memorial-card { display:grid; grid-template-columns:7.5rem 1fr; }
    .home-memorial-card__media { height:100%; min-height:7.6rem; }
    .home-memorial-card__body { min-height:auto; display:flex; align-items:center; justify-content:center; flex-direction:column; }
    .home-feature-grid { grid-template-columns:1fr; }
    .home-feature-card { padding:1.1rem; }
    .home-feature-card + .home-feature-card { border-inline-start:0; border-top:1px solid #ece5da; }
}

/* ==========================================================================
   Homepage mobile polish
   Keeps desktop composition intact and gives handheld layouts their own rhythm.
   ========================================================================== */

@media (max-width: 767.98px) {
    .public-homepage-layout {
        overflow-x: clip;
    }

    .home-header__inner {
        min-height: 4.25rem;
        gap: .6rem;
    }

    .home-brand {
        gap: .45rem;
        min-width: 0;
    }

    .home-brand__mark {
        width: 2.15rem;
        height: 2.15rem;
        flex: 0 0 auto;
    }

    .home-brand strong {
        font-size: 1.08rem;
    }

    .home-header__actions {
        flex: 0 0 auto;
        margin-inline-start: 0;
    }

    .home-header__actions .home-btn {
        min-height: 2.35rem;
        padding-inline: .72rem;
        border-radius: .65rem;
        font-size: .62rem;
    }

    .home-hero {
        min-height: 33rem;
    }

    .home-hero__content {
        width: min(
            calc(100% - (2 * var(--rf-space-4))),
            67rem
        );
        padding-block: 2.7rem 4.4rem;
    }

    .home-hero__ornament {
        margin-bottom: .55rem;
    }

    .home-hero h1 {
        max-width: 24rem;
        margin-inline: auto;
        font-size: clamp(1.6rem, 6.4vw, 1.92rem);
        line-height: 1.5;
    }

    .home-hero__content > p {
        max-width: 31rem;
        margin: .8rem auto 1.15rem;
        font-size: .76rem;
        line-height: 1.95;
    }

    .home-search {
        width: min(100%, 31rem);
        min-height: 3.7rem;
        grid-template-columns: 3rem minmax(0, 1fr);
        gap: .4rem;
        padding: .38rem;
        border-radius: .85rem;
        box-shadow: 0 1rem 2.5rem rgb(73 52 28 / 13%);
    }

    .home-search__submit {
        width: 2.9rem;
        height: 2.9rem;
        border-radius: .62rem;
    }

    .home-search input {
        height: 2.9rem;
        padding-inline: .8rem;
        /* Prevent Safari from zooming the viewport on focus. */
        font-size: 1rem;
        border-radius: .62rem;
    }

    .home-popular-searches {
        max-width: 29rem;
        gap: .4rem;
        margin: .72rem auto 0;
        font-size: .6rem;
    }

    .home-popular-searches strong {
        width: 100%;
        text-align: center;
    }

    .home-popular-searches a {
        padding: .3rem .58rem;
    }

    .home-hero__actions {
        gap: .55rem;
        width: min(100%, 21rem);
        margin-top: 1rem;
    }

    .home-hero__actions .home-btn {
        width: 100%;
        min-height: 3rem;
    }

    .home-hero__branch {
        font-size: 7rem;
        opacity: .28;
    }

    .home-hero__candle--one {
        inset-inline-start: .6rem;
        transform: scale(.8);
        transform-origin: bottom left;
    }

    .home-hero__candle--two {
        inset-inline-start: 3.6rem;
        transform: scale(.78);
        transform-origin: bottom left;
    }

    .home-section {
        padding-block: 2.7rem;
    }

    .home-section-heading {
        margin-bottom: 1.55rem;
        padding-inline: .35rem;
    }

    .home-section-heading h2 {
        font-size: 1.35rem;
    }

    .home-section-heading p {
        font-size: .68rem;
        line-height: 1.8;
    }

    .home-memorial-grid,
    .home-memorial-grid.is-search {
        gap: .7rem;
    }

    .home-memorial-card {
        border-radius: .8rem;
    }

    .home-memorial-card__body {
        padding: .75rem .65rem;
    }

    .home-feature-grid {
        gap: .7rem;
    }

    .home-feature-card,
    .home-feature-card + .home-feature-card,
    .home-feature-card:nth-child(n) {
        min-height: 9.3rem;
        display: flex;
        align-items: center;
        flex-direction: column;
        justify-content: center;
        padding: 1rem .8rem;
        background: #fffdfa;
        border: 1px solid #eee7dc;
        border-radius: .8rem;
    }

    .home-feature-card__icon {
        width: 3rem;
        height: 3rem;
        margin-bottom: .6rem;
        font-size: 1.2rem;
    }

    .home-feature-card p {
        max-width: 15rem;
        font-size: .58rem;
    }

    .home-stats {
        padding: .25rem .75rem 1.55rem;
    }

    .home-stats__inner {
        gap: 0;
        border-radius: .85rem;
    }

    .home-stat {
        min-height: 5.25rem;
        grid-template-columns: auto auto;
        column-gap: .55rem;
        padding: .7rem .4rem;
    }

    .home-stat + .home-stat::before,
    .home-stat:nth-child(n)::before {
        display: none;
    }

    .home-stat:nth-child(1),
    .home-stat:nth-child(2) {
        border-bottom: 1px solid rgb(255 255 255 / 12%);
    }

    .home-stat:nth-child(odd):not(:last-child) {
        border-inline-end: 1px solid rgb(255 255 255 / 12%);
    }

    .home-stat:last-child {
        min-height: 4.9rem;
        border-top: 1px solid rgb(255 255 255 / 12%);
    }

    .home-stat > span {
        font-size: 1.35rem;
    }

    .home-stat strong {
        font-size: .95rem;
    }

    .home-cta {
        padding: .25rem .75rem 1.7rem;
    }

    .home-cta__panel {
        min-height: 0;
        gap: 1.15rem;
        padding: 1.7rem 1rem;
        border-radius: .85rem;
    }

    .home-cta__copy h2 {
        margin-top: .32rem;
        font-size: 1.35rem;
        line-height: 1.55;
    }

    .home-cta__copy p {
        font-size: .67rem;
    }

    .home-cta__action {
        width: min(100%, 18rem);
        margin-inline: auto;
    }

    .home-cta__action .home-btn {
        width: 100%;
    }

    .home-guide-card {
        min-height: 8.4rem;
        gap: .8rem;
        border-radius: .8rem;
    }

    .home-faq {
        padding: .7rem .75rem 2.8rem;
    }

    .home-faq__inner {
        gap: 1rem;
        padding: 1.25rem 1rem;
        border-radius: .8rem;
    }

    .home-faq__inner p {
        font-size: .66rem;
    }

    .home-faq__inner a {
        display: inline-flex;
        justify-content: center;
        padding: .65rem 1rem;
        background: #fff;
        border: 1px solid #e6dccd;
        border-radius: .6rem;
    }

    .home-footer__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1.8rem 1.2rem;
        padding-block: 2.4rem 1.8rem;
    }

    .home-footer__brand {
        grid-column: 1 / -1;
        padding-bottom: .4rem;
    }

    .home-footer__brand p,
    .home-footer section > p {
        font-size: .64rem;
    }

    .home-footer__bottom {
        gap: 1rem;
        min-height: 4.3rem;
    }
}

@media (max-width: 479.98px) {
    .home-header__inner {
        min-height: 4rem;
    }

    .home-brand strong {
        font-size: 1rem;
    }

    .home-header__actions .home-btn {
        min-height: 2.25rem;
        padding-inline: .62rem;
        font-size: .58rem;
    }

    .home-hero {
        min-height: 31.5rem;
    }

    .home-hero__content {
        padding-block: 2.35rem 4rem;
    }

    .home-hero h1 {
        font-size: 1.62rem;
    }

    .home-hero__content > p {
        font-size: .72rem;
    }

    .home-popular-searches a:nth-of-type(n+5) {
        display: none;
    }

    .home-memorial-card {
        grid-template-columns: 7rem minmax(0, 1fr);
    }

    .home-memorial-card__media {
        min-height: 7.2rem;
    }

    .home-memorial-card__body {
        align-items: flex-start;
        padding: .75rem;
        text-align: right;
    }

    .home-memorial-card__views {
        margin-top: .1rem;
    }

    .home-feature-grid {
        gap: .6rem;
    }

    .home-feature-card,
    .home-feature-card + .home-feature-card,
    .home-feature-card:nth-child(n) {
        min-height: 0;
        padding: 1.1rem;
    }

    .home-stats {
        padding-inline: .55rem;
    }

    .home-guide-card {
        gap: .55rem;
        padding: .55rem;
    }

    .home-guide-card__visual {
        min-height: 6.6rem;
    }

    .home-footer__grid {
        grid-template-columns: 1fr;
        gap: 1.45rem;
    }

    .home-footer__brand {
        grid-column: auto;
    }

    .home-footer__bottom {
        align-items: flex-start;
        flex-direction: column;
        justify-content: center;
        padding-block: .9rem;
    }
}

/* ==========================================================================
   Homepage mobile navigation
   Native details/summary keeps the menu keyboard-accessible without JS.
   ========================================================================== */

.home-mobile-nav {
    display: none;
}

@media (max-width: 767.98px) {
    .home-header {
        position: relative;
    }

    .home-header__inner {
        position: relative;
    }

    .home-mobile-nav {
        position: static;
        display: block;
        flex: 0 0 auto;
        margin-inline-start: auto;
    }

    .home-mobile-nav > summary {
        list-style: none;
    }

    .home-mobile-nav > summary::-webkit-details-marker {
        display: none;
    }

    .home-mobile-nav__toggle {
        min-width: 3.45rem;
        min-height: 2.45rem;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: .42rem;
        padding: .45rem .62rem;
        color: var(--home-green-950);
        font-size: .62rem;
        font-weight: 750;
        line-height: 1;
        cursor: pointer;
        user-select: none;
        background: rgb(255 255 255 / 72%);
        border: 1px solid #d8d1c5;
        border-radius: .65rem;
        transition:
            border-color 150ms ease,
            background 150ms ease,
            box-shadow 150ms ease;
    }

    .home-mobile-nav__toggle:hover,
    .home-mobile-nav[open] .home-mobile-nav__toggle {
        background: #fff;
        border-color: color-mix(
            in srgb,
            var(--home-green-700) 35%,
            #d8d1c5
        );
        box-shadow: 0 .45rem 1.2rem rgb(31 57 51 / 9%);
    }

    .home-mobile-nav__icon {
        width: 1rem;
        height: .85rem;
        display: grid;
        align-content: space-between;
    }

    .home-mobile-nav__icon i {
        width: 100%;
        height: 1.5px;
        display: block;
        background: currentcolor;
        border-radius: 999px;
        transform-origin: center;
        transition:
            transform 160ms ease,
            opacity 160ms ease;
    }

    .home-mobile-nav[open] .home-mobile-nav__icon i:nth-child(1) {
        transform: translateY(.35rem) rotate(45deg);
    }

    .home-mobile-nav[open] .home-mobile-nav__icon i:nth-child(2) {
        opacity: 0;
    }

    .home-mobile-nav[open] .home-mobile-nav__icon i:nth-child(3) {
        transform: translateY(-.35rem) rotate(-45deg);
    }

    .home-mobile-nav__panel {
        position: absolute;
        z-index: 80;
        inset-block-start: calc(100% + .55rem);
        inset-inline: .75rem;
        overflow: hidden;
        padding: .55rem;
        background:
            linear-gradient(
                160deg,
                rgb(255 254 251 / 99%),
                rgb(248 244 236 / 99%)
            );
        border: 1px solid rgb(94 83 65 / 14%);
        border-radius: .95rem;
        box-shadow:
            0 1.2rem 3rem rgb(42 55 49 / 18%),
            0 .2rem .8rem rgb(42 55 49 / 7%);
        transform-origin: top center;
    }

    .home-mobile-nav__links {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .35rem;
    }

    .home-mobile-nav__links a {
        min-height: 2.9rem;
        display: flex;
        align-items: center;
        gap: .55rem;
        padding: .55rem .65rem;
        color: #31453f;
        font-size: .66rem;
        font-weight: 680;
        text-decoration: none;
        background: rgb(255 255 255 / 48%);
        border: 1px solid transparent;
        border-radius: .65rem;
    }

    .home-mobile-nav__links a > span {
        width: 1.65rem;
        height: 1.65rem;
        display: inline-grid;
        flex: 0 0 auto;
        place-items: center;
        color: var(--home-green-800);
        background: #eef3ee;
        border-radius: .5rem;
    }

    .home-mobile-nav__links a:hover,
    .home-mobile-nav__links a:focus-visible,
    .home-mobile-nav__links a.is-active {
        color: var(--home-green-950);
        background: #fff;
        border-color: #e4ddd2;
    }

    .home-mobile-nav__links a.is-active > span {
        color: #fff;
        background: var(--home-green-800);
    }

    .home-mobile-nav__actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .45rem;
        margin-top: .55rem;
        padding-top: .55rem;
        border-top: 1px solid #e8e1d6;
    }

    .home-mobile-nav__actions .home-btn {
        width: 100%;
        min-height: 2.75rem;
        font-size: .64rem;
    }

    /*
     * The same actions already exist inside the mobile menu, so keeping the
     * desktop action cluster visible would overcrowd the header.
     */
    .home-header__actions {
        display: none;
    }
}

@media (max-width: 399.98px) {
    .home-mobile-nav__toggle > span:last-child {
        display: none;
    }

    .home-mobile-nav__toggle {
        min-width: 2.7rem;
        width: 2.7rem;
        padding-inline: .55rem;
    }

    .home-mobile-nav__links {
        grid-template-columns: 1fr;
        max-height: min(57vh, 23rem);
        overflow-y: auto;
        overscroll-behavior: contain;
    }

    .home-mobile-nav__actions {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   Homepage typography normalization
   Content text follows a readable production scale; decorative microcopy
   remains compact without dropping into 8–10px body-text territory.
   ========================================================================== */

.public-homepage-layout {
    --home-type-micro: .6875rem;
    --home-type-xs: .75rem;
    --home-type-sm: .8125rem;
    --home-type-base: .875rem;
    --home-type-md: 1rem;
}

/* Header and primary actions */
.home-brand small {
    font-size: var(--home-type-xs);
    line-height: 1.45;
}

.home-nav a {
    font-size: var(--home-type-sm);
}

.home-btn {
    font-size: var(--home-type-sm);
}

.home-btn--large {
    font-size: var(--home-type-base);
}

/* Hero supporting copy */
.home-hero__ornament,
.home-search__scope {
    font-size: var(--home-type-xs);
}

.home-popular-searches {
    font-size: var(--home-type-xs);
}

/* Section headings and reusable descriptive text */
.home-section-heading p {
    font-size: var(--home-type-sm);
    line-height: 1.85;
}

/* Memorial cards */
.home-memorial-card h3 {
    font-size: var(--home-type-base);
}

.home-memorial-card__years,
.home-memorial-card__views {
    font-size: var(--home-type-xs);
}

/* Feature cards */
.home-feature-card h3 {
    font-size: var(--home-type-base);
}

.home-feature-card p {
    font-size: var(--home-type-xs);
    line-height: 1.9;
}

/* Statistics */
.home-stat small {
    font-size: var(--home-type-xs);
    line-height: 1.55;
}

/* CTA */
.home-cta__copy > span,
.home-cta__action small {
    font-size: var(--home-type-xs);
}

.home-cta__copy p {
    font-size: var(--home-type-sm);
    line-height: 1.9;
}

/* Guides */
.home-guide-card__tag {
    font-size: var(--home-type-micro);
}

.home-guide-card h3 {
    font-size: var(--home-type-base);
}

.home-guide-card p {
    font-size: var(--home-type-xs);
    line-height: 1.9;
}

/* FAQ */
.home-faq__inner > div > span {
    font-size: var(--home-type-xs);
}

.home-faq__inner h2 {
    font-size: 1.125rem;
}

.home-faq__inner p,
.home-faq__inner a {
    font-size: var(--home-type-sm);
}

/* Footer: real content must remain comfortably readable. */
.home-footer__brand p,
.home-footer section > p {
    font-size: var(--home-type-xs);
    line-height: 1.95;
}

.home-footer section h2 {
    font-size: var(--home-type-base);
}

.home-footer section > a,
.home-footer section > span {
    font-size: var(--home-type-xs);
    line-height: 1.7;
}

.home-footer__bottom p {
    font-size: var(--home-type-micro);
    line-height: 1.65;
}

/* Mobile navigation is an interaction surface, not microcopy. */
@media (max-width: 767.98px) {
    .home-mobile-nav__toggle {
        font-size: var(--home-type-xs);
    }

    .home-mobile-nav__links a {
        font-size: var(--home-type-sm);
    }

    .home-mobile-nav__actions .home-btn {
        font-size: var(--home-type-sm);
    }

    .home-popular-searches {
        font-size: var(--home-type-xs);
    }

    .home-section-heading p {
        font-size: var(--home-type-sm);
    }

    .home-feature-card p {
        font-size: var(--home-type-xs);
    }

    .home-cta__copy p,
    .home-faq__inner p,
    .home-footer__brand p,
    .home-footer section > p {
        font-size: var(--home-type-xs);
    }

    .home-footer section > a,
    .home-footer section > span {
        font-size: var(--home-type-xs);
    }
}

@media (max-width: 767.98px) {
    .home-section-heading--with-action { align-items:flex-start; flex-direction:column; gap:.8rem; }
    .home-section-heading__link { align-self:flex-start; }
    .home-guide-card--article { min-height:0; }
    .home-guide-card__visual { min-height:11rem; }
}
