:root{
  --ground:#FAFAF8;
  --surface:#FFFFFF;
  --sunk:#F1F3EE;
  --ink:#2A2E31;
  --ink-2:#5E6668;
  --line:#E4E7E1;
  --rose:#B05A73;
  --rose-soft:#FBEEF2;
  --moss:#5E7663;
  --on-rose:#FFFFFF;
  --shadow:0 14px 34px -22px rgba(42,46,49,.22);
  --display:"Shippori Mincho B1","Hiragino Mincho ProN","Yu Mincho",serif;
  --body:"Zen Kaku Gothic New","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ground:#161A1B;--surface:#1F2426;--sunk:#262C2E;--ink:#E7E9E4;--ink-2:#A9B0AD;
    --line:#343B3D;--rose:#E09AAE;--rose-soft:#3A2A30;--moss:#9DB6A1;--on-rose:#1B1415;
    --shadow:0 18px 40px -24px rgba(0,0,0,.7);
  }
}
:root[data-theme="dark"]{
  --ground:#161A1B;--surface:#1F2426;--sunk:#262C2E;--ink:#E7E9E4;--ink-2:#A9B0AD;
  --line:#343B3D;--rose:#E09AAE;--rose-soft:#3A2A30;--moss:#9DB6A1;--on-rose:#1B1415;
  --shadow:0 18px 40px -24px rgba(0,0,0,.7);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.85;letter-spacing:.02em}
a{color:var(--rose)}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--rose);outline-offset:2px;border-radius:4px}
img{max-width:100%}
.wrap{max-width:1120px;margin-inline:auto;padding-inline:20px}
h1,h2,h3{font-family:var(--display);font-weight:700;line-height:1.4;text-wrap:balance;margin:0}
h2{font-size:clamp(26px,3.4vw,34px)}
h3{font-size:20px}
p{margin:0}
.eyebrow{font-size:13px;letter-spacing:.18em;color:var(--moss);font-weight:700}

/* header */
.site-head{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:color-mix(in srgb,var(--ground) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.site-head .wrap{display:flex;align-items:center;gap:24px;min-height:68px}
.logo{white-space:nowrap;display:flex;align-items:baseline;gap:10px;text-decoration:none;color:var(--ink)}
.logo b{font-family:var(--display);font-size:24px;letter-spacing:.12em}
.logo small{font-size:11px;color:var(--ink-2);letter-spacing:.2em}
.nav{display:flex;gap:22px;margin-left:auto;font-size:15px}
.nav a{color:var(--ink);text-decoration:none}
.nav a:hover{color:var(--rose)}
.btn{white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 22px;border-radius:999px;border:0;font:inherit;font-weight:700;font-size:15px;text-decoration:none;cursor:pointer}
.btn-rose{background:var(--rose);color:var(--on-rose)}
.btn-rose:hover{filter:brightness(1.07)}
.btn-line{background:transparent;color:var(--ink);border:1px solid var(--line)}
@media (max-width:860px){.nav{display:none}.logo small{display:none}.site-head .btn{margin-left:auto;min-height:40px;padding:0 16px;font-size:14px}}

/* hero */
.hero{padding-block:56px 72px}
.hero .wrap{display:grid;grid-template-columns:1fr 1.05fr;grid-template-areas:"copy chat" "points chat";grid-template-rows:auto 1fr;column-gap:48px;row-gap:0;align-items:start}
.hero .hero-copy{grid-area:copy}.hero .hero-points{grid-area:points}.hero .chat{grid-area:chat}
.nw{white-space:nowrap;display:inline-block}
.hero h1{font-size:clamp(34px,5vw,56px);letter-spacing:.06em;margin-block:14px 22px}
.hero h1 em{font-style:normal;color:var(--rose)}
.hero .lead{color:var(--ink-2);max-width:32em}
.points{list-style:none;padding:0;margin:28px 0 0;display:grid;gap:12px}
.points li{display:flex;gap:14px;align-items:baseline;padding-block:12px;border-top:1px solid var(--line)}
.points li:last-child{border-bottom:1px solid var(--line)}
.points b{font-family:var(--display);font-size:18px;min-width:7.5em;color:var(--ink)}
.points span{color:var(--ink-2);font-size:15px}
@media (max-width:900px){.hero .wrap{grid-template-columns:1fr;grid-template-areas:"copy" "chat" "points";row-gap:28px}.hero{padding-block:28px 48px}.hero h1{margin-block:10px 16px}}

/* chat */
.chat{background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);display:flex;flex-direction:column;height:560px;overflow:hidden}
.chat-head{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line)}
.chat-mark{width:40px;height:40px;border-radius:50%;background:var(--rose-soft);display:grid;place-items:center;flex:none}
.chat-head h2{font-size:18px}
.chat-head p{font-size:12.5px;color:var(--ink-2);line-height:1.5}
.status{margin-left:auto;font-size:12px;color:var(--moss);display:flex;align-items:center;gap:6px;white-space:nowrap}
.status::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--moss)}
.log{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:14px;background:var(--ground)}
.msg{max-width:88%;padding:12px 16px;border-radius:16px;font-size:15.5px;line-height:1.8;overflow-wrap:anywhere}
.msg.bot{background:var(--surface);border:1px solid var(--line);border-top-left-radius:4px;align-self:flex-start}
.msg.me{background:var(--rose);color:var(--on-rose);border-top-right-radius:4px;align-self:flex-end}
.msg ul{margin:6px 0;padding-left:1.2em}
.msg p+p{margin-top:8px}
.msg.wait{color:var(--ink-2)}
.msg.wait i{display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;margin-right:4px;animation:blink 1.2s infinite}
.msg.wait i:nth-child(2){animation-delay:.2s}.msg.wait i:nth-child(3){animation-delay:.4s}
@keyframes blink{0%,80%,100%{opacity:.25}40%{opacity:1}}
.chips{display:flex;flex-wrap:wrap;gap:8px;padding:12px 20px 0;background:var(--surface)}
.chip{font:inherit;font-size:13.5px;padding:7px 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer}
.chip:hover{border-color:var(--rose);color:var(--rose)}
.composer{display:flex;gap:10px;padding:14px 20px 16px;background:var(--surface)}
.composer textarea{flex:1;resize:none;font:inherit;font-size:16px;line-height:1.5;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--ground);color:var(--ink);min-height:48px;max-height:120px}
.composer .btn{min-height:48px;border-radius:12px;padding:0 18px}
.composer .btn:disabled{opacity:.5;cursor:default}
.chat-note{font-size:11.5px;color:var(--ink-2);padding:0 20px 14px;background:var(--surface);line-height:1.6}
@media (max-width:520px){.chips{flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.chip{flex:none;font-size:13px;padding:6px 12px}.chat{height:540px}.log{padding:14px}.chips,.composer{padding-inline:14px}.chat-note{padding-inline:14px}}

/* sections */
section.block{padding-block:72px;border-top:1px solid var(--line)}
.sec-head{display:grid;gap:10px;margin-bottom:36px;max-width:40em}
.sec-head p{color:var(--ink-2)}

.memorial{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:center}
.seasons{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.seasons div{background:var(--surface);padding:22px 16px;text-align:center}
.seasons b{display:block;font-family:var(--display);font-size:22px}
.seasons span{font-size:13px;color:var(--ink-2)}
@media (max-width:760px){.memorial{grid-template-columns:1fr}}

.flow{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:16px;counter-reset:step}
.flow>li{counter-increment:step;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:22px 18px;display:grid;gap:8px;align-content:start}
.flow>li::before{content:"STEP " counter(step);font-size:12px;letter-spacing:.16em;color:var(--rose);font-weight:700}
.flow h3{font-size:18px}
.flow p{font-size:14.5px;color:var(--ink-2);line-height:1.75}
@media (max-width:980px){.flow{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.flow{grid-template-columns:1fr}}

.price{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:start}
.rates{border-top:2px solid var(--ink)}
.rates div{display:flex;justify-content:space-between;gap:16px;padding:16px 4px;border-bottom:1px solid var(--line);align-items:baseline;flex-wrap:wrap}
.rates dt{font-weight:700}
.rates dd{margin:0;font-family:var(--display);font-size:22px;font-variant-numeric:tabular-nums}
.rates dd small{font-family:var(--body);font-size:13px;color:var(--ink-2);margin-left:4px}
.price-notes{margin-top:18px;font-size:14.5px;color:var(--ink-2);padding-left:1.2em}
.sim{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:26px;display:grid;gap:18px;box-shadow:var(--shadow)}
.sim h3{font-size:20px}
.sim-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.sim label{display:grid;gap:6px;font-size:13.5px;color:var(--ink-2)}
.sim input{font:inherit;font-size:18px;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--ground);color:var(--ink);width:100%;font-variant-numeric:tabular-nums}
.sim-out{background:var(--rose-soft);border-radius:12px;padding:18px 20px;display:grid;gap:4px}
.sim-out .total{font-family:var(--display);font-size:34px;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.3}
.sim-out .detail{font-size:13.5px;color:var(--ink-2);font-variant-numeric:tabular-nums}
@media (max-width:860px){.price{grid-template-columns:1fr}}
@media (max-width:420px){.sim-row{grid-template-columns:1fr 1fr}.sim{padding:20px}}

.table-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
table{border-collapse:collapse;width:100%;min-width:640px;font-size:15px}
th,td{text-align:left;padding:16px 18px;border-bottom:1px solid var(--line);vertical-align:top}
thead th{font-size:13px;letter-spacing:.1em;color:var(--ink-2);background:var(--sunk)}
tbody th{font-family:var(--display);font-size:18px;white-space:nowrap}
td.num{font-variant-numeric:tabular-nums;white-space:nowrap}
tbody tr:last-child>*{border-bottom:0}

.faq{display:grid;gap:10px;max-width:860px}
.faq details{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:0 20px}
.faq summary{cursor:pointer;list-style:none;padding:18px 28px 18px 0;font-weight:700;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:0;top:14px;font-size:22px;color:var(--rose)}
.faq details[open] summary::after{content:"−"}
.faq details p{padding-bottom:18px;color:var(--ink-2)}

.columns{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 40px}
.columns li{border-bottom:1px solid var(--line)}
.columns a{display:grid;gap:4px;padding:18px 0;text-decoration:none;color:var(--ink)}
.columns a:hover b{color:var(--rose)}
.columns time{font-size:13px;color:var(--ink-2);font-variant-numeric:tabular-nums}
.columns b{font-weight:700;line-height:1.6}
@media (max-width:760px){.columns{grid-template-columns:1fr}}

.cta{background:var(--rose-soft);color:var(--ink);border:1px solid color-mix(in srgb,var(--rose) 22%,transparent);border-radius:20px;padding:48px clamp(20px,5vw,56px);display:grid;grid-template-columns:1.4fr 1fr;gap:28px;align-items:center}
.cta h2{color:var(--ink)}
.cta p{color:var(--ink-2)}
.cta .actions{display:grid;gap:12px}
.cta .btn-line{color:var(--ink);background:var(--surface);border-color:color-mix(in srgb,var(--rose) 30%,transparent)}
@media (max-width:760px){.cta{grid-template-columns:1fr}}

.site-foot{padding-block:48px;border-top:1px solid var(--line);margin-top:72px;font-size:14px;color:var(--ink-2)}
.site-foot .wrap{display:flex;flex-wrap:wrap;gap:24px;justify-content:space-between}
.site-foot nav{display:flex;flex-wrap:wrap;gap:18px}
.site-foot a{color:var(--ink-2)}

[hidden]{display:none!important}
/* ===== サイト全体の追加スタイル ===== */
.skip{position:absolute;left:-9999px;top:0}
.skip:focus{left:12px;top:12px;z-index:100;background:var(--surface);padding:8px 14px;border-radius:8px}
.nav a[aria-current="page"]{color:var(--rose)}
.more{margin-top:20px;font-size:15px}
.more a{font-weight:700;text-decoration:none}
.more a+a{margin-left:16px}
.narrow{max-width:820px}

/* パンくず */
.crumbs ol{list-style:none;margin:0;padding:14px 0 0;display:flex;flex-wrap:wrap;gap:6px;font-size:13px;color:var(--ink-2)}
.crumbs li+li::before{content:"›";margin-right:6px;color:var(--line)}
.crumbs a{color:var(--ink-2)}

/* 下層ページの見出し */
.page-head{padding-block:40px 48px}
.page-head h1{font-size:clamp(30px,4.4vw,44px);letter-spacing:.05em;margin-block:10px 16px}
.page-head .lead{color:var(--ink-2);max-width:40em}

/* トップのご供養画像 */
.memorial{grid-template-columns:1fr 1.1fr}
.memorial-img{margin:0;border-radius:16px;overflow:hidden;aspect-ratio:4/3;background:var(--sunk)}
.memorial-img img{width:100%;height:100%;object-fit:cover;display:block}
.memorial .seasons{margin-top:18px}

/* 流れ（詳細） */
.flow-full{grid-template-columns:1fr;gap:14px}
.flow-full>li{grid-template-columns:9em 1fr;column-gap:24px;padding:24px}
.flow-full>li::before{grid-row:1/4}
.flow-full h3{font-size:21px}
.flow-full ul{margin:0;padding-left:1.2em;color:var(--ink-2);font-size:15.5px}
.flow-note{font-size:14px!important;color:var(--rose)!important;font-weight:700}
@media (max-width:640px){.flow-full>li{grid-template-columns:1fr}.flow-full>li::before{grid-row:auto}}

.prose-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.prose-grid h2{font-size:22px;margin-bottom:12px}
.prose-grid p{color:var(--ink-2)}
.prose-grid p+p{margin-top:10px}
.calc{font-variant-numeric:tabular-nums;color:var(--ink)!important}
@media (max-width:860px){.prose-grid{grid-template-columns:1fr}}
.dots{margin:0;padding-left:1.2em;color:var(--ink-2)}

/* 地域リンク */
.area-links{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.area-links a{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;padding:18px 20px;background:var(--surface);border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--ink)}
.area-links a:hover{border-color:var(--rose)}
.area-links b{font-family:var(--display);font-size:20px}
.area-links span{font-size:13.5px;color:var(--ink-2)}

/* コラム一覧カード */
.post-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px}
.post-cards a{display:grid;gap:8px;text-decoration:none;color:var(--ink)}
.post-cards img,.post-cards .noimg{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:12px;background:var(--sunk);display:grid;place-items:center;color:var(--rose)}
.post-cards time{font-size:13px;color:var(--ink-2);font-variant-numeric:tabular-nums}
.post-cards b{line-height:1.6}
.post-cards a:hover b{color:var(--rose)}
.post-cards span:last-child{font-size:14px;color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* 記事 */
.article{max-width:780px;padding-block:32px 24px}
.article-head h1{font-size:clamp(26px,3.6vw,36px);margin-block:10px 10px}
.dates{font-size:14px;color:var(--ink-2);font-variant-numeric:tabular-nums}
.article-img{margin:28px 0 8px;border-radius:14px;overflow:hidden;aspect-ratio:3/2;background:var(--sunk)}
.article-img img{width:100%;height:100%;object-fit:cover;display:block}
.prose{font-size:17px;line-height:2}
.prose>*+*{margin-top:1.1em}
.prose h2{font-size:24px;margin-top:2em;padding-bottom:8px;border-bottom:1px solid var(--line)}
.prose h3{font-size:20px;margin-top:1.6em}
.prose ul,.prose ol{padding-left:1.4em}
.prose li+li{margin-top:.3em}
.prose li>ul{margin-top:.3em;color:var(--ink-2)}
.prose blockquote{margin-inline:0;padding:16px 20px;background:var(--surface);border:1px solid var(--line);border-radius:12px;color:var(--ink)}
.prose table{min-width:520px}
.prose strong{color:var(--ink)}
.article-cta{margin-top:48px;padding:24px;border-radius:16px;background:var(--rose-soft);display:grid;gap:16px}
.article-cta b{display:block;font-family:var(--display);font-size:20px;margin-bottom:4px}
.article-cta .actions{display:flex;flex-wrap:wrap;gap:10px}

/* 会社概要 */
.company{margin:0;border-top:2px solid var(--ink)}
.company div{display:grid;grid-template-columns:9em 1fr;gap:16px;padding:16px 4px;border-bottom:1px solid var(--line)}
.company dt{font-weight:700}
.company dd{margin:0;color:var(--ink-2)}
@media (max-width:520px){.company div{grid-template-columns:1fr;gap:2px}}

/* お問い合わせフォーム */
.contact{display:grid;gap:22px;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:clamp(20px,4vw,40px)}
.field{display:grid;gap:8px;border:0;margin:0;padding:0;min-width:0}
.field label,.field legend{font-weight:700;font-size:15px;padding:0}
.field em,.field span{font-style:normal;font-size:11.5px;font-weight:700;margin-left:8px;padding:2px 8px;border-radius:999px;vertical-align:2px}
.field em{background:var(--rose);color:var(--on-rose)}
.field span{background:var(--sunk);color:var(--ink-2)}
.contact input:not([type=radio]):not([type=checkbox]),.contact select,.contact textarea{font:inherit;font-size:16px;padding:12px 14px;border-radius:10px;border:1px solid var(--line);background:var(--ground);color:var(--ink);width:100%}
.contact input[type=file]{padding:10px}
.contact [aria-invalid="true"]{border-color:var(--rose)!important;outline:2px solid color-mix(in srgb,var(--rose) 30%,transparent)}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:560px){.field-row{grid-template-columns:1fr}}
.choices{display:flex;flex-wrap:wrap;gap:10px}
.choices label{display:flex;align-items:center;gap:8px;padding:10px 16px;border:1px solid var(--line);border-radius:999px;font-weight:400;cursor:pointer}
.choices label:has(input:checked){border-color:var(--rose);background:var(--rose-soft)}
.hint{font-size:13px;color:var(--ink-2);margin-top:-12px}
.agree{display:flex;align-items:center;gap:10px;font-size:15px}
.agree input{width:20px;height:20px;accent-color:var(--rose)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-msg{padding:12px 16px;border-radius:10px;background:var(--rose-soft);color:var(--ink);font-size:15px}
.btn-wide{width:100%;min-height:56px;font-size:17px}
.btn:disabled{opacity:.6;cursor:default}

/* 浮かぶAI相談ボタン */
.chat-launch{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:40;display:flex;align-items:center;gap:8px;padding:12px 18px 12px 14px;border:0;border-radius:999px;background:var(--rose);color:var(--on-rose);font:inherit;font-weight:700;font-size:15px;box-shadow:0 12px 30px -10px rgba(0,0,0,.45);cursor:pointer}
.chat-launch[aria-expanded="true"]{display:none}
.chat-float{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:41;width:min(400px,calc(100vw - 32px));height:min(600px,calc(100vh - 100px))}
.chat-close{margin-left:auto;border:0;background:transparent;color:var(--ink-2);font-size:26px;line-height:1;cursor:pointer;padding:4px 8px;border-radius:8px}
.msg a{color:inherit;text-decoration:underline}
.msg.bot a{color:var(--rose)}

/* フッター */
.site-foot{margin-top:0}
.foot-grid{display:grid!important;grid-template-columns:1.4fr repeat(3,1fr);gap:32px}
.foot-brand b{color:var(--ink);font-family:var(--display);font-size:20px;letter-spacing:.1em}
.foot-brand p{margin-top:8px;line-height:1.8}
.site-foot nav{display:grid!important;gap:6px;align-content:start}
.site-foot h2{font-family:var(--body);font-size:13px;letter-spacing:.14em;color:var(--ink);margin-bottom:4px}
.site-foot .copy{margin-top:32px;font-size:12px}
@media (max-width:860px){.foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.foot-grid{grid-template-columns:1fr}}

/* 地域ページ */
.mb{margin-bottom:18px;color:var(--ink-2)}
.offices{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.offices li{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px 20px;display:grid;gap:4px}
.offices a{font-weight:700}
.offices span{font-size:14.5px;color:var(--ink-2);line-height:1.8}
.dots.big{font-size:16.5px;line-height:1.9;display:grid;gap:10px}
.dots.big li{color:var(--ink-2)}
.price h2{margin-bottom:6px}

/* 所在地の地図 */
.map-embed{border-radius:16px;overflow:hidden;border:1px solid var(--line);background:var(--sunk);aspect-ratio:16/9;max-width:100%}
.map-embed iframe{width:100%;height:100%;border:0;display:block}
@media (max-width:560px){.map-embed{aspect-ratio:4/3}}

/* 写真のヒーロー */
.hero-photo{position:relative;min-height:clamp(420px,62vh,620px);display:grid;place-items:center;overflow:hidden;isolation:isolate;background:#2A2724}
.hero-slides{position:absolute;inset:0;z-index:-2}
.hero-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.6s ease-in-out}
.hero-slide.is-on{opacity:1}
@media (prefers-reduced-motion: reduce){.hero-slide{transition:none}}
.hero-photo::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(26,22,20,.42) 0%,rgba(26,22,20,.22) 45%,rgba(26,22,20,.58) 100%)}
.hero-inner{text-align:center;color:#fff;padding:64px 20px;max-width:840px;display:grid;justify-items:center;gap:6px}
.hero-inner .eyebrow{color:rgba(255,255,255,.82)}
.hero-inner h1{font-size:clamp(30px,5.4vw,56px);letter-spacing:.08em;line-height:1.55;color:#fff;margin-block:10px 14px;text-shadow:0 2px 20px rgba(0,0,0,.45)}
.hero-inner .lead{color:rgba(255,255,255,.92);font-size:clamp(14.5px,1.5vw,17px);line-height:2;margin-bottom:22px;text-shadow:0 1px 12px rgba(0,0,0,.5)}
@media (max-width:640px){.hero-inner .lead br{display:none}}
.hero-chat{padding-block:48px 64px}
.hero-chat .wrap{display:grid;grid-template-columns:1fr 1.05fr;gap:40px;align-items:start}
.hero-chat .points{margin-top:0}
.hero-chat .hero-points>.points>li:first-child{border-top:0;padding-top:0}
@media (max-width:900px){.hero-chat .wrap{grid-template-columns:1fr;gap:28px}.hero-chat .wrap>.chat{order:-1}.hero-chat{padding-block:32px 48px}}
.memorial-noimg{grid-template-columns:1fr;max-width:820px}
