:root{--brand:#617a33;--brand-tint:#f1f4ea;--brand-ink:#ffffff;--cta:#4f6429;--cta-hover:#3e4f20;--cta-ink:#ffffff;--urgent:#cf0033;--urgent-hover:#b8002d;--urgent-ink:#ffffff}
/* ===== design/tokens/*.css をそのまま連結（colors → fonts → typography → spacing → layout → radius → base） ===== */
/* tokens/colors.css */
/* ワイヤーモード。色は3系統（brand / cta / urgent）のみ。 */
:root{
--wire-0:#ffffff;--wire-50:#f6f6f6;--wire-100:#ececec;--wire-200:#dcdcdc;--wire-300:#c4c4c4;--wire-400:#a3a3a3;--wire-500:#858585;--wire-600:#666666;--wire-700:#4d4d4d;--wire-800:#333333;--wire-900:#1f1f1f;



--surface-page:var(--wire-0);--surface-alt:var(--wire-50);--surface-card:var(--wire-0);--surface-photo:var(--wire-200);--surface-dark:var(--wire-800);
--text-body:var(--wire-900);--text-sub:var(--wire-700);--text-note:var(--wire-600);--text-on-dark:var(--wire-0);--text-on-dark-sub:var(--wire-200);
--line:var(--wire-200);--line-strong:var(--wire-400);--line-on-dark:var(--wire-500);--focus:var(--wire-900);
}

/* tokens/fonts.css */
:root{--font-sans:"Noto Sans JP","Hiragino Sans","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;--font-num:"Noto Sans JP",system-ui,sans-serif}

/* tokens/typography.css */
:root{
--fs-note:18px;--fs-sub:18px;--fs-body:18px;--fs-lead:20px;--fs-h4:20px;--fs-h3:24px;--fs-h2:32px;--fs-h2-sp:26px;--fs-h1:44px;--fs-h1-sp:30px;
--fs-tel:32px;--fs-tel-lg:40px;--fs-price:32px;--fs-number:48px;--fs-button:18px;
--fw-regular:400;--fw-medium:500;--fw-bold:700;
--lh-body:1.8;--lh-sub:1.7;--lh-heading:1.45;--lh-tight:1.2;
--ls-body:0.04em;--ls-heading:0.06em;
}

/* tokens/spacing.css */
:root{
--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:40px;--sp-8:48px;--sp-9:64px;--sp-10:80px;--sp-11:96px;--sp-12:120px;
--section-pad-pc:96px;--section-pad-sp:56px;--gutter-pc:40px;--gutter-sp:20px;--card-pad:24px;--stack-heading:48px;
}

/* tokens/layout.css */
:root{
--container-xl:1248px;--container-lg:1160px;--container-md:1040px;--container-sm:880px;
--btn-min-m:160px;--btn-min-l:260px;--btn-min-sub:300px;--btn-h-m:56px;--btn-h-l:72px;--btn-h-sub:80px;
--tap-min:44px;--header-h-pc:96px;--header-h-sp:64px;
}

/* tokens/radius.css */
:root{--radius-none:0;--radius-s:4px;--radius-m:8px;--radius-pill:999px;--radius-button:var(--radius-s);--radius-card:var(--radius-s);--radius-tag:var(--radius-s);--border-w:1px;--border-w-strong:2px}

/* tokens/base.css */
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);letter-spacing:var(--ls-body);color:var(--text-body);background:var(--surface-page)}
a{color:var(--text-body);text-decoration:underline;text-underline-offset:3px}
*,*::before,*::after{box-sizing:border-box}


/* ===== design/斎場サイト.dc.html の <style> ===== */
:root{--content-width:960px;--container-xl:var(--content-width);--container-lg:var(--content-width);--container-md:var(--content-width);--container-sm:var(--content-width)}
a:hover{color:var(--text-sub)}

/* ===== 土台 ===== */
img,svg{display:block;max-width:100%}
h1,h2,h3,h4{margin:0;line-height:var(--lh-heading);letter-spacing:var(--ls-heading)}
h1{font-size:var(--fs-h1);text-wrap:balance}
h2{font-size:var(--fs-h2)}
h3{font-size:var(--fs-h3)}
p{margin:0}
button{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.icon{flex:none}
.skip-link{position:absolute;left:8px;top:-200px;z-index:100;padding:12px 20px;background:var(--surface-page);color:var(--text-body);font-weight:700}
.skip-link:focus{top:8px}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* 追従CTAに隠れない余白は、フッターの濃い背景の中に取る（bodyに付けると最下部に白い帯が出る） */
.site-footer{padding-bottom:var(--float-cta-h,120px)}

/* ===== Section ===== */
.section{background:var(--surface-page);padding-block:var(--section-pad-pc)}
.section--alt{background:var(--surface-alt)}
.section--tint{background:var(--brand-tint)}
.section--dark{background:var(--surface-dark);color:var(--text-on-dark)}
.section--compact{padding-block:64px}
.container{max-width:var(--container-xl);margin:0 auto;padding-inline:var(--gutter-pc)}
.container--xl{max-width:var(--container-xl)}
.container--lg{max-width:var(--container-lg)}
.container--md{max-width:var(--container-md)}
.container--sm{max-width:var(--container-sm)}
.container > * + *{margin-top:24px}

/* ===== SectionHeading ===== */
.sec-head{display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px;margin-bottom:var(--stack-heading)}
.sec-head--left{align-items:flex-start;text-align:left}
.sec-head__sub{font-size:18px;font-weight:500;letter-spacing:.12em;color:var(--text-sub)}
.sec-head__title{font-weight:700;line-height:1.45;letter-spacing:.06em}
.sec-head__title--h2{font-size:32px}
.sec-head__title--h3{font-size:24px}
.sec-head__rule{display:block;width:48px;height:2px;background:var(--brand)}
.sec-head__lead{font-size:18px;line-height:1.8;color:var(--text-sub);max-width:var(--container-sm)}
.sec-head--on-dark .sec-head__sub,.sec-head--on-dark .sec-head__lead{color:var(--text-on-dark-sub)}
.sec-head--on-dark .sec-head__rule{background:var(--text-on-dark)}

/* ===== Button ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;box-sizing:border-box;border:2px solid;border-radius:var(--radius-button);font-size:18px;font-weight:700;letter-spacing:.06em;line-height:1.4;text-align:center;text-decoration:none;cursor:pointer;transition:background .15s ease}
.btn--large{min-width:var(--btn-min-l);min-height:var(--btn-h-l);padding:0 32px}
.btn--medium{min-width:var(--btn-min-m);min-height:var(--btn-h-m);padding:0 24px}
.btn--sub{min-width:var(--btn-min-sub);min-height:var(--btn-h-sub);padding:12px 28px}
.btn--full{width:100%}
.btn__text{display:flex;flex-direction:column;align-items:center}
.btn__sub{font-size:18px;font-weight:500;letter-spacing:.04em}
.btn--urgent{background:var(--urgent);color:var(--urgent-ink);border-color:var(--urgent)}
.btn--urgent:hover{background:var(--urgent-hover);color:var(--urgent-ink)}
.btn--cta{background:var(--cta);color:var(--cta-ink);border-color:var(--cta)}
.btn--cta:hover{background:var(--cta-hover);color:var(--cta-ink)}
.btn--outline{background:transparent;color:var(--text-body);border-color:var(--line-strong)}
.btn--ghost{background:transparent;color:var(--text-body);border-color:transparent}
.btn--outline:hover,.btn--ghost:hover{background:var(--surface-alt);color:var(--text-body)}
.btn--on-dark.btn--outline,.btn--on-dark.btn--ghost{color:var(--text-on-dark)}
.btn--on-dark.btn--outline{border-color:var(--text-on-dark)}
.btn--on-dark.btn--outline:hover,.btn--on-dark.btn--ghost:hover{background:var(--wire-700);color:var(--text-on-dark)}
.btn-row{display:flex;justify-content:center;margin-top:48px}

/* ===== Tag ===== */
.tag{display:inline-flex;align-items:center;min-height:32px;padding:2px 12px;border-radius:var(--radius-tag);font-size:18px;line-height:1.5}
.tag--type{border:1px solid var(--line-strong);color:var(--text-sub)}
.tag--badge{background:var(--brand);color:var(--brand-ink);font-weight:700}
.tag-list{display:flex;flex-wrap:wrap;gap:8px}

/* ===== PhotoFrame ===== */
.photo{margin:0}
.photo img{width:100%;height:auto;aspect-ratio:1.618/1;object-fit:cover;background:var(--surface-photo)}
.photo--silver img{aspect-ratio:1.414/1}
.photo--square img{aspect-ratio:1/1}
.photo-note{margin-top:8px;font-size:18px;color:var(--text-note)}

/* ===== Card（デザインの 6px 6px 0 のベタ影） ===== */
.card{background:var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:6px 6px 0 var(--wire-300);overflow:hidden}

/* ===== TelBlock ===== */
.tel-block{display:flex;flex-direction:column;gap:4px}
.tel-block__num{display:inline-flex;align-items:center;gap:8px;font-weight:700;line-height:1.2;letter-spacing:.02em;white-space:nowrap;text-decoration:none;color:var(--text-body)}
.tel-block__hours{font-size:18px;color:var(--text-sub)}
.tel-block__lead{font-size:18px;font-weight:500}
.tel-block--header{align-items:flex-end;text-align:right}
.tel-block--header .tel-block__num{font-size:28px}
.tel-block--stacked{align-items:center;text-align:center;gap:8px}
.tel-block--stacked .tel-block__num{font-size:var(--fs-tel-lg)}
.tel-block--inline{flex-direction:row;flex-wrap:wrap;align-items:center;column-gap:16px}
.tel-block--inline .tel-block__num{font-size:var(--fs-tel)}
.tel-block--on-dark .tel-block__num{color:var(--text-on-dark)}
.tel-block--on-dark .tel-block__hours{color:var(--text-on-dark-sub)}

/* ===== 電話ボタン（スタッフ写真なし） ===== */
.tel-button{display:flex;flex-wrap:nowrap;align-items:center;justify-content:center;gap:clamp(12px,3vw,32px);width:min(100%,800px);box-sizing:border-box;padding:24px clamp(16px,4vw,40px);background:var(--urgent);border-radius:12px;box-shadow:0 8px 0 var(--wire-500);color:var(--urgent-ink);text-decoration:none;transition:background-color .15s}
.tel-button:hover{background:var(--urgent-hover);color:var(--urgent-ink);transform:translateY(6px);box-shadow:0 2px 0 var(--wire-500)}
.tel-button__body{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0;text-align:left}
.tel-button__lead{font-size:22px;font-weight:700;line-height:1.4}
.tel-button__num{display:flex;align-items:center;gap:10px;font-size:clamp(28px,6vw,72px);font-weight:700;line-height:1.1;letter-spacing:.02em;white-space:nowrap}
.tel-button__chips{display:flex;flex-wrap:wrap;gap:12px}
.tel-button__chip{padding:4px 12px;border:2px solid currentColor;font-size:20px;font-weight:500;white-space:nowrap}

/* ===== ヘッダー ===== */
.site-header{position:sticky;top:0;z-index:10;background:var(--surface-page);border-bottom:1px solid var(--line)}
.site-header__inner{position:relative;max-width:1248px;margin:0 auto;padding:12px var(--gutter-pc);min-height:var(--header-h-pc);box-sizing:border-box;display:flex;flex-wrap:wrap;align-items:center;column-gap:40px;row-gap:8px}
.site-logo{text-decoration:none;display:flex;flex-direction:column;line-height:1.3;flex-shrink:0}
.site-logo__tagline{font-size:18px;color:var(--text-sub)}
.site-logo__name{font-size:24px;font-weight:700;letter-spacing:.08em}
.site-header__tel{margin-left:auto;flex-shrink:0}
.site-nav{flex:1 1 100%;order:3;min-width:0;padding-top:10px;border-top:1px solid var(--line)}
.site-nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 20px}
.site-nav a{display:block;font-size:18px;font-weight:500;text-decoration:none;white-space:nowrap;padding-bottom:4px;border-bottom:2px solid transparent}
.site-nav a[aria-current="page"]{border-bottom-color:var(--text-body)}
.header-call,.menu-toggle{display:none}
.menu-toggle__close{display:none}
.menu-toggle[aria-expanded="true"] .menu-toggle__open{display:none}
.menu-toggle[aria-expanded="true"] .menu-toggle__close{display:block}
.menu-toggle__label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ===== 下層のページタイトル＋パンくず ===== */
.page-title{background:var(--surface-alt);border-bottom:1px solid var(--line)}
.page-title__inner{max-width:var(--container-xl);margin:0 auto;padding:56px var(--gutter-pc)}
.page-title h1{font-size:var(--fs-h1);line-height:1.45;letter-spacing:.06em;text-wrap:balance;text-align:center}
.breadcrumb{background:var(--surface-page);border-top:1px solid var(--line)}
.breadcrumb ol{list-style:none;max-width:var(--container-xl);margin:0 auto;padding:10px var(--gutter-pc);display:flex;flex-wrap:wrap;gap:8px;font-size:18px;line-height:1.5;color:var(--text-note)}
.breadcrumb li{display:flex;gap:8px}
.breadcrumb a{color:var(--text-sub)}

/* ===== ページ末のCTA ===== */
.final-cta{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center}
.final-cta__title{font-size:22px;font-weight:700;color:var(--text-body)}
.contact-links{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 20px;font-size:18px;line-height:1.6;color:var(--text-sub)}
.contact-links p{margin:0}
.contact-links ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 20px}
.contact-link{display:inline-flex;align-items:center;min-height:44px;color:var(--text-body);font-weight:500;text-decoration:underline;text-underline-offset:4px}
.call-card .contact-links{justify-content:flex-start}

/* ===== フッター ===== */
.site-footer{background:var(--wire-900);color:var(--text-on-dark)}
.site-footer a{color:var(--text-on-dark)}
.site-footer a:hover{color:var(--text-on-dark-sub)}
.site-footer__inner{max-width:1248px;margin:0 auto;padding:64px var(--gutter-pc) 32px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:48px}
.site-footer__info{display:flex;flex-direction:column;gap:12px}
.site-footer__name{font-size:24px;font-weight:700;letter-spacing:.08em}
.site-footer__sub,.site-footer__notice{font-size:18px;color:var(--text-on-dark-sub)}
.site-footer__sub a{color:var(--text-on-dark-sub)}
.site-footer__tel{margin-top:8px}
.site-footer__nav ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;font-size:18px}
.site-footer__copy{text-align:center;font-size:18px;color:var(--text-on-dark-sub);padding:16px 0 24px}

/* ===== フローティングCTA（電話のみ。スタッフ写真なし） ===== */
.float-cta{position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--surface-dark);padding:16px clamp(12px,2vw,24px)}
.float-cta__inner{max-width:1248px;margin:0 auto;display:flex;align-items:center;justify-content:center;gap:clamp(12px,2vw,40px)}
.float-cta__status{flex:none;display:flex;flex-direction:column;background:var(--surface-card);border-radius:var(--radius-card);padding:8px 20px}
.float-cta__now{font-size:18px;line-height:1.4;color:var(--text-sub);white-space:nowrap}
.float-cta__ok{font-size:24px;font-weight:700;line-height:1.4;color:var(--text-body);white-space:nowrap}
.float-cta__tel{flex:none;display:flex;flex-direction:column;gap:2px;color:var(--text-on-dark);text-decoration:none}
.float-cta__tel:hover{color:var(--text-on-dark)}
.float-cta__label{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.float-cta__title{font-size:18px;font-weight:700;white-space:nowrap}
.float-cta__chip{padding:0 8px;background:var(--surface-card);color:var(--text-body);border-radius:var(--radius-card);font-size:18px;font-weight:500;white-space:nowrap}
.float-cta__num{display:flex;align-items:center;gap:8px;font-size:clamp(28px,3vw,48px);font-weight:700;line-height:1.15;letter-spacing:.02em;white-space:nowrap}
@media (max-width:999.98px){.float-cta__status{display:none}}

/* ===== よくある質問（HTMLでは開いた状態。JSが aria-expanded を切り替えて畳む） ===== */
.faq{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.faq__item{border-bottom:1px solid var(--line)}
.faq__q{width:100%;display:grid;grid-template-columns:32px 1fr 24px;gap:16px;align-items:center;padding:20px 0;background:none;border:0;text-align:left;font-size:20px;font-weight:700;color:var(--text-body);cursor:pointer;min-height:var(--tap-min)}
.faq__q .faq__mark{color:var(--text-note)}
.faq__text{line-height:1.6}
.faq__toggle{color:var(--text-sub)}
.faq__toggle .icon:first-child{display:none}
.faq__q[aria-expanded="false"] .faq__toggle .icon:first-child{display:block}
.faq__q[aria-expanded="false"] .faq__toggle .icon:last-child{display:none}
.faq__a{display:grid;grid-template-columns:32px 1fr;gap:16px;padding:0 40px 24px 0;font-size:18px;line-height:1.8;color:var(--text-sub)}
.faq__a[hidden]{display:none}
.faq__a .faq__mark{font-weight:700;color:var(--text-note)}
.faq__a p{text-wrap:pretty}

/* ===== 表 ===== */
.table-scroll{overflow-x:auto;background:var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:6px 6px 0 var(--wire-300)}
.data-table{width:100%;border-collapse:collapse;font-size:18px;line-height:1.6}
.data-table--wide{min-width:640px}
.data-table thead tr{background:var(--wire-100)}
.data-table th,.data-table td{text-align:left;padding:16px 20px}
.data-table tbody tr{border-top:1px solid var(--line)}
.data-table th[scope="row"]{font-weight:700}
.data-table td{color:var(--text-sub)}
.data-table .is-right{text-align:right;white-space:nowrap}
.data-table .is-center{text-align:center}
.data-table td.is-right{font-weight:700;color:var(--text-body)}
.cell-note{display:block;font-weight:400;color:var(--text-note)}

/* ===== 本文セクション共通 ===== */
.note{font-size:18px;line-height:1.7;color:var(--text-note)}
.source-note{margin:12px 0 0}
.source-note a{color:inherit}
.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:24px}
.tag-list--center{justify-content:center}
.zoom{display:block;text-decoration:none;color:inherit}
.zoom:hover img{outline:3px solid var(--line-strong);outline-offset:-3px}

/* ===== FV（左右2分割） ===== */
.fv{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,480px),1fr));align-items:center;background:var(--surface-alt)}
.fv__body{display:flex;flex-direction:column;justify-content:center;gap:28px;min-width:0;padding:64px 48px 64px max(var(--gutter-pc),calc((100vw - 1248px) / 2))}
.fv__title{display:flex;flex-direction:column;gap:8px}
.fv__sub{font-size:20px;font-weight:500;line-height:1.45;color:var(--text-sub)}
.fv__title h1{font-size:var(--fs-h1);font-weight:700;line-height:1.45;letter-spacing:.06em}
.fv__kana{font-size:18px;color:var(--text-note)}
.fv__facts{margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.fv__fact{display:flex;flex-direction:column;align-items:center;gap:2px;padding:16px 8px;background:var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-card);text-align:center}
.fv__fact dt{font-size:18px;color:var(--text-sub)}
.fv__fact dd{margin:0;font-size:28px;font-weight:700;line-height:1.3}
.fv .tel-button{width:100%}
.fv .tel-button__num{font-size:clamp(28px,3.4vw,48px)}
.fv .tel-button__lead{font-size:20px}
.fv__photo{min-width:0;align-self:stretch;display:flex;flex-direction:column}
.fv__photo .photo{flex:1 1 auto;display:flex;flex-direction:column}
.fv__photo .photo img{flex:1 1 auto;height:100%;min-height:360px}
.fv__photo .photo-note{margin:0;padding:8px var(--gutter-pc);background:var(--surface-alt)}
/* 公式サイトではない旨。FVの本文の中に置き、最初の画面に必ず入れる */
.fv-notice{margin:0;padding:10px 16px;background:var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-card);font-size:18px;line-height:1.6;color:var(--text-sub)}

/* ===== 斎場の特徴 ===== */
.feature{display:flex;flex-direction:column}
.card .photo-note{margin:0;padding:8px var(--card-pad) 0}
.feature__body{padding:var(--card-pad);display:flex;flex-direction:column;gap:12px}
.feature__no{font-size:18px;font-weight:700;color:var(--text-note);letter-spacing:.06em}
.feature h3{font-size:24px;line-height:1.45}
.feature p{font-size:18px;line-height:1.8;color:var(--text-sub);text-wrap:pretty}

/* ===== 施設のご案内・式場 ===== */
.gallery{display:flex;flex-direction:column;gap:16px}
.gallery__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:16px}
.container > .tag-list{margin-top:32px}
.room-list{display:flex;flex-direction:column;gap:24px}
.room{display:flex;flex-wrap:wrap}
.room__photo{flex:0 1 380px;min-width:260px;display:flex;flex-direction:column}
.room__photo .photo{flex:1 1 auto;display:flex;flex-direction:column}
.room__photo .photo img{flex:1 1 auto;height:100%;min-height:235px;aspect-ratio:auto}
.room__photo .photo-note{margin:0;padding:8px 16px}
.room__body{flex:1 1 360px;min-width:0;padding:24px 32px;display:flex;flex-direction:column;justify-content:center;gap:12px}
.room h3{font-size:24px;line-height:1.45}
.room p{font-size:18px;line-height:1.8;color:var(--text-sub);text-wrap:pretty}
.check-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.check-list li{display:flex;gap:12px;align-items:flex-start;font-size:18px;line-height:1.8}
.check-list .icon{color:var(--brand);margin-top:4px}
.closed-days{display:flex;flex-wrap:wrap;gap:8px 16px;padding:16px 24px;background:var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-card)}

/* ===== 葬儀プラン ===== */
.plan-card{display:flex;flex-direction:column;text-decoration:none;color:var(--text-body);transition:background .15s ease}
a.plan-card:hover{background:var(--surface-alt);color:var(--text-body)}
.plan-card__body{flex:1;padding:24px 24px 20px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;container-type:inline-size}
.plan-card__tagline{font-size:18px;color:var(--text-sub);text-wrap:pretty}
.plan-card h3{margin-bottom:8px;font-size:min(var(--fs-h2),10.5cqi);line-height:1.45;letter-spacing:.04em}
.plan-card__price{display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;column-gap:4px;font-weight:700;line-height:1.3}
.plan-card__num{font-size:min(var(--fs-number),15cqi);white-space:nowrap}
.plan-card__unit{font-size:24px}
.plan-card__tax,.plan-card__ex{font-size:18px;font-weight:500;color:var(--text-sub)}
.plan-card__people{margin-top:8px;font-size:18px;color:var(--text-sub)}
.plan-card__rites{background:var(--wire-100);padding:16px 24px}
.plan-card__note{padding:16px 24px;border-top:1px solid var(--line);font-size:18px;line-height:1.7;color:var(--text-note)}

/* ===== 葬儀の流れ（タブはJSがあるときだけ出す） ===== */
.flow-tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-bottom:32px}
html:not(.js) .flow-tabs{display:none}
.flow-tab{min-height:56px;min-width:140px;padding:0 24px;border:2px solid var(--cta);border-radius:var(--radius-button);background:var(--surface-card);color:var(--cta);font-size:18px;font-weight:700;cursor:pointer;transition:background .15s ease}
.flow-tab[aria-selected="true"]{background:var(--cta);color:var(--cta-ink)}
.flow-panels{display:flex;flex-direction:column;gap:64px}
.flow-panel[hidden]{display:none}
.flow-panel__title{font-size:24px;line-height:1.45;text-align:center}
.flow-panel__lead{margin:8px 0 24px;font-size:18px;color:var(--text-sub);text-align:center}
.flow-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.flow-steps > li{display:flex;flex-direction:column;align-items:center}
.flow-steps__arrow{width:0;height:0;margin:16px 0;border-left:20px solid transparent;border-right:20px solid transparent;border-top:20px solid var(--wire-300)}
.flow-step{width:100%;display:flex;flex-direction:column;gap:12px;padding:32px 40px;background:var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-card)}
.flow-step__title{display:flex;align-items:center;gap:12px;font-size:22px;line-height:1.45}
.flow-step__num{flex:none;width:40px;height:40px;border-radius:50%;background:var(--brand);color:var(--brand-ink);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:20px}
.flow-step p{font-size:18px;line-height:1.8;color:var(--text-sub)}
.flow-steps > li.flow-steps__skip{display:block;margin-top:24px;padding:16px 24px;background:var(--wire-100);border-radius:var(--radius-card);font-size:18px;color:var(--text-sub)}

/* ===== アクセス ===== */
.map-frame{aspect-ratio:1.618/1;background:var(--surface-photo);border:1px solid var(--line)}
.map-frame iframe{display:block;width:100%;height:100%;border:0}
.info-list{margin:0;display:grid;grid-template-columns:minmax(0,180px) minmax(0,1fr);font-size:18px;line-height:1.7;background:var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:6px 6px 0 var(--wire-300);overflow:hidden}
.info-list dt{padding:16px 20px;border-bottom:1px solid var(--line);background:var(--wire-100);font-weight:700}
.info-list dd{margin:0;padding:16px 20px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.container > .info-list{margin-top:32px}
.container > .sec-head + .info-list{margin-top:0}
.container > .route-list{margin-top:48px}
.route{display:flex;flex-direction:column;gap:12px;padding:24px;background:var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-card)}
.route h2{display:flex;align-items:center;gap:8px;font-size:22px;line-height:1.45}
.route p{font-size:18px;line-height:1.8;color:var(--text-sub);text-wrap:pretty}

/* ===== 768px未満 ===== */
@media (max-width:767.98px){
  /* 3列以上の表は、スマホでは行ごとのカードにする（横スクロールで料金が隠れないように） */
  .data-table--wide{min-width:0}
  .data-table--wide thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .data-table--wide tr,.data-table--wide th[scope="row"],.data-table--wide td{display:block}
  .data-table--wide th[scope="row"]{padding:16px 20px 8px}
  .data-table--wide td{display:flex;gap:16px;justify-content:space-between;padding:6px 20px;text-align:right}
  .data-table--wide td:last-child{padding-bottom:16px}
  .data-table--wide td[data-label]::before{content:attr(data-label);flex:none;font-weight:700;color:var(--text-body);text-align:left}
  .data-table--wide .is-center,.data-table--wide .is-right{text-align:right;white-space:normal}
  .section{padding-block:var(--section-pad-sp)}
  .section--compact{padding-block:var(--section-pad-sp)}
  .container,.page-title__inner,.breadcrumb ol,.site-footer__inner{padding-inline:var(--gutter-sp)}
  h1,.page-title h1{font-size:var(--fs-h1-sp)}
  h2,.sec-head__title--h2{font-size:var(--fs-h2-sp)}
  .page-title__inner{padding-block:40px}
  .site-footer__inner{padding-top:48px}

  .site-header__inner{min-height:var(--header-h-sp);padding:8px var(--gutter-sp);column-gap:8px;flex-wrap:nowrap}
  .site-logo{flex:1 1 auto;min-width:0}
  .site-logo__tagline{display:none}
  .site-logo__name{font-size:18px;letter-spacing:0}
  .site-header__tel{display:none}
  .header-call{display:inline-flex;align-items:center;gap:6px;margin-left:auto;min-height:var(--tap-min);padding:0 10px;border-radius:var(--radius-button);background:var(--urgent);color:var(--urgent-ink);font-size:18px;font-weight:700;text-decoration:none;white-space:nowrap}
  .header-call:hover{background:var(--urgent-hover);color:var(--urgent-ink)}
  .site-nav ul{justify-content:flex-start}
  .js .menu-toggle{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0;border:2px solid var(--line-strong);border-radius:var(--radius-button);background:var(--surface-page);color:var(--text-body);cursor:pointer}
  .js .site-nav{display:none;position:absolute;left:0;right:0;top:100%;padding:0;background:var(--surface-page);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .js .site-nav.is-open{display:block}
  .js .site-nav ul{flex-direction:column;gap:0}
  .js .site-nav a{padding:14px var(--gutter-sp);border-bottom:1px solid var(--line);min-height:var(--tap-min)}
  .js .site-nav a[aria-current="page"]{font-weight:700;border-bottom-color:var(--line);background:var(--surface-alt)}
  html:not(.js) .site-header{position:static}
  html:not(.js) .site-header__inner{flex-wrap:wrap}

  .tel-button__lead{font-size:20px}
  .fv__body{padding:40px var(--gutter-sp);gap:24px}
  .fv__title h1{font-size:var(--fs-h1-sp)}
  .fv__fact{padding:12px 4px}
  .fv__fact dd{font-size:22px}
  .fv__photo .photo img{min-height:0}
  .fv__photo .photo-note{padding-inline:var(--gutter-sp)}
  .btn-row .btn{width:100%;min-width:0;padding-inline:16px}
  .room__photo{flex-basis:100%;min-width:0}
  .room__body{padding:20px}
  .flow-step{padding:24px 20px}
  .flow-tab{min-width:0;flex:1 1 auto;padding:0 12px;word-break:keep-all;overflow-wrap:anywhere}
  .info-list{grid-template-columns:minmax(0,110px) minmax(0,1fr)}
  .info-list dt,.info-list dd{padding:12px 14px}
  .faq__a{padding-right:0}
  .float-cta{padding:10px var(--gutter-sp)}
  .float-cta__title{display:none}
  .float-cta__tel{align-items:center}
  body{--float-cta-h:104px}
}

/* ===== 下層ページ（予約・運営会社・サイトマップ） ===== */
.lead-text{margin:0 0 32px;font-size:18px;line-height:1.8;text-wrap:pretty}
.call-card{display:flex;flex-direction:column;gap:16px;padding:32px}
.call-card h3{margin:0;display:flex;align-items:center;gap:10px;font-size:24px;line-height:1.45}
.call-card p{margin:0;font-size:18px;line-height:1.8;color:var(--text-sub)}
.call-card + .note{margin-top:16px}
.task-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:12px}
.task-list li{display:flex;align-items:center;gap:12px;padding:16px 20px;background:var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-card);font-size:18px;line-height:1.5}
.task-list .icon{flex:none;color:var(--brand)}
.step-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;border-top:1px solid var(--line)}
.step-list li{display:flex;align-items:flex-start;gap:20px;padding:20px 0;border-bottom:1px solid var(--line)}
.step-list__num{flex:none;width:40px;height:40px;border-radius:50%;background:var(--brand);color:var(--brand-ink);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:20px}
.step-list div{min-width:0}
.step-list h3{margin:0 0 4px;font-size:22px;line-height:1.45}
.step-list p{margin:0;font-size:18px;line-height:1.8;color:var(--text-sub)}
.link-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:48px}
.link-group h2{margin:0 0 16px;padding-bottom:12px;border-bottom:2px solid var(--text-body);font-size:22px;line-height:1.45}
.link-list{list-style:none;margin:0;padding:0}
.link-list li{border-bottom:1px solid var(--line)}
.link-list a{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 4px;font-size:18px;text-decoration:none;color:inherit;overflow-wrap:anywhere}
.closed-days + .check-list,.check-list + .closed-days{margin-top:24px}

/* 写真拡大（script.js が必要になったときに作る dialog） */
.zoom-dialog{max-width:min(96vw,1200px);max-height:96vh;margin:auto;padding:16px;border:0;border-radius:var(--radius-card);background:var(--surface-card);color:var(--text-body);overflow:auto}
.zoom-dialog::backdrop{background:var(--surface-dark)}
.zoom-dialog__img{display:block;max-width:100%;max-height:calc(96vh - 120px);width:auto;height:auto;margin:0 auto}
.zoom-dialog__close{display:block;min-width:var(--tap-min);min-height:var(--tap-min);margin:16px auto 0;padding:0 24px;border:2px solid var(--line-strong);border-radius:var(--radius-button);background:var(--surface-card);color:var(--text-body);font:inherit;font-size:18px;font-weight:700;cursor:pointer}
