/* houyou-eson スタイル（souryo-boshu の設計思想を流用・法要サイト向け調整・モバイルファースト§1.1） */
:root{
  --konjo:#0E1B36; --konjo-2:#16264a; --shu:#b23a2b; --shu-2:#8f2d20;
  --kindei:#b8995a; --kinari:#f5f1e8; --kinari-2:#efe9db; --gline:#ddd5c4;
  --ink:#2a2f3a; --mist:#7a7568; color-scheme:light;
}
*{box-sizing:border-box}
html{font-size:16px;-webkit-text-size-adjust:100%}
body{margin:0;font-family:"Noto Sans JP",sans-serif;color:var(--ink);background:#fff;line-height:1.9}
h1,h2,h3,.brand,.sec,.phero h1{font-family:"Shippori Mincho B1",serif;font-weight:600}
a{color:var(--konjo)}
img{max-width:100%;height:auto}
.wrap{width:min(1080px,92%);margin-inline:auto}
.skiplink{position:absolute;left:-9999px}
.skiplink:focus{left:8px;top:8px;background:#fff;padding:8px;z-index:1000}

/* ヘッダー／ナビ（ハンバーガー） */
.bar{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.95);backdrop-filter:blur(6px);border-bottom:1px solid var(--gline);display:flex;align-items:center;justify-content:space-between;padding:12px 16px;gap:12px}
.bar .brand{font-size:1.02rem;color:var(--konjo);text-decoration:none;line-height:1.4;display:flex;align-items:center;min-width:0}
.bar .brand .brandlogo{display:block;height:28px;width:auto;max-width:66vw;object-fit:contain}
@media(min-width:640px){.bar .brand .brandlogo{height:34px}}
@media(min-width:980px){.bar .brand .brandlogo{height:42px;max-width:none}}
.navtoggle{border:1px solid var(--gline);background:#fff;color:var(--konjo);font:inherit;padding:.5em .9em;border-radius:4px;cursor:pointer}
.nav{display:none;flex-wrap:wrap;gap:2px}
.nav.open{display:flex;position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid var(--gline);flex-direction:column;padding:8px 16px 16px}
.nav a{padding:.7em .2em;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--kinari-2)}
.nav a[aria-current=page]{color:var(--shu);font-weight:600}
.nav .navcta{color:var(--shu);font-weight:600}
@media(min-width:980px){
  .navtoggle{display:none}
  .nav{display:flex !important;position:static;flex-direction:row;border:none;padding:0;align-items:center;gap:14px}
  .nav a{border:none;padding:.2em .1em;font-size:.92rem}
}

/* ヒーロー */
.phero{background:linear-gradient(160deg,var(--konjo),var(--konjo-2));color:#f5f3ee;padding:clamp(40px,8vw,84px) 0}
.phero .eyebrow{color:var(--kindei);letter-spacing:.12em;font-size:.82rem;margin:0 0 10px}
.phero h1{font-size:clamp(1.5rem,5vw,2.4rem);line-height:1.5;margin:0}
.phero .yomi{display:block;font-size:.6em;color:#cbb98e;margin-top:.4em}
.phero .sub{margin:1.2em 0 0;font-size:1rem;line-height:2;opacity:.92;max-width:42em}
.phero .pherohero{display:flex;flex-direction:column;gap:20px;align-items:center}
.phero .phcopy{min-width:0}
.phero .phfig{flex:none;line-height:0}
.phero .phfig img{display:block;height:auto;width:auto;max-height:300px;max-width:62vw;margin-inline:auto}
@media(min-width:860px){
  .phero .pherohero{flex-direction:row;align-items:center;justify-content:space-between;gap:36px}
  .phero .phcopy{flex:1}
  .phero .phfig img{max-height:440px;max-width:240px}
}

/* セクション見出し */
.eyebrow-line{color:var(--kindei);letter-spacing:.1em;font-size:.8rem;margin:0 0 8px}
h2.sec{font-size:clamp(1.3rem,3.6vw,1.8rem);margin:.2em 0 .6em}
.sec-lead,.lede,.lead{font-size:1.02rem;line-height:2.05;color:#3b3a34;max-width:44em}

/* サービス導線グリッド */
.hub{padding:clamp(40px,7vw,72px) 0;background:var(--kinari)}
.grid{display:grid;grid-template-columns:1fr;gap:16px;margin-top:26px}
@media(min-width:640px){.grid{grid-template-columns:1fr 1fr}}
@media(min-width:960px){.grid{grid-template-columns:1fr 1fr 1fr}}
.card{display:block;background:#fff;border:1px solid var(--gline);border-radius:6px;padding:22px 20px;text-decoration:none;color:var(--ink);transition:transform .2s,box-shadow .2s;position:relative;overflow:hidden}
.card::before{content:"";position:absolute;top:0;left:0;width:100%;height:3px;background:linear-gradient(90deg,var(--kindei),var(--shu))}
.card:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(14,27,54,.1)}
.card h3{color:var(--konjo);font-size:1.18rem;margin:.2em 0 .5em}
.card p{font-size:.92rem;color:#46453d;margin:0 0 .8em}
.card .go{color:var(--shu);font-size:.86rem;font-weight:600}
.card .yen{color:var(--mist);font-size:.82rem}

/* 本文 prose */
.prose{padding:clamp(36px,6vw,64px) 0}
.prose h2{font-size:1.3rem;color:var(--konjo);margin:1.8em 0 .6em;padding-left:14px;border-left:3px solid var(--kindei)}
.prose h3{font-size:1.08rem;color:var(--shu);margin:1.4em 0 .4em}
.prose p,.prose li{font-size:1rem;line-height:2.05;color:#33312b}
.prose ul{padding-left:1.3em}
.prose blockquote{margin:1em 0;padding:.8em 1.1em;background:var(--kinari);border-left:3px solid var(--kindei);color:#46453d;font-size:.95rem}
.prose hr{border:none;border-top:1px solid var(--gline);margin:1.6em 0}
.prose table{width:100%;border-collapse:collapse;margin:1.2em 0;font-size:.95rem;table-layout:fixed}
.prose th,.prose td{border:1px solid var(--gline);padding:.55em .7em;text-align:left;vertical-align:top;line-height:1.7;word-break:normal;overflow-wrap:anywhere}
.prose th{background:var(--kinari);color:var(--konjo);font-weight:600;white-space:nowrap}
.draftnote{background:#fff7e8;border:1px solid var(--kindei);border-radius:4px;padding:12px 16px;font-size:.86rem;color:#7a5a1e;margin:0 0 18px}

/* 安心注記（§15・全ページ共通） */
.anshin{background:var(--kinari-2);padding:clamp(32px,5vw,56px) 0}
.anshin .box{background:#fff;border:1px solid var(--gline);border-radius:6px;padding:24px 22px}
.anshin h2{color:var(--konjo);font-size:1.2rem;margin:0 0 .8em}
.anshin ul{list-style:none;padding:0;margin:0}
.anshin li{position:relative;padding:10px 0 10px 26px;border-bottom:1px solid var(--kinari-2);font-size:.96rem;line-height:1.9}
.anshin li:last-child{border-bottom:none}
.anshin li::before{content:"";position:absolute;left:2px;top:18px;width:8px;height:8px;border:1px solid var(--kindei);transform:rotate(45deg)}

/* CTA ボタン */
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.btn{display:inline-block;padding:.8em 1.5em;border-radius:3px;text-decoration:none;font-weight:600;font-size:.95rem;transition:transform .2s,background .2s}
.btn-shu{background:var(--shu);color:#fff;box-shadow:0 6px 18px rgba(178,58,43,.26)}
.btn-shu:hover{background:var(--shu-2);transform:translateY(-1px)}
.btn-ghost{border:1px solid var(--kindei);color:var(--konjo)}
/* 濃紺背景（ヒーロー・CTA帯）内のゴーストボタンは文字が背景と同色で消えるため明色に上書き（白背景の用途はそのまま） */
.phero .btn-ghost,.cta .btn-ghost{color:#f5f3ee;border-color:rgba(245,243,238,.6)}
.phero .btn-ghost:hover,.cta .btn-ghost:hover{background:rgba(245,243,238,.12);transform:translateY(-1px)}
.cta{background:linear-gradient(160deg,var(--konjo),var(--konjo-2));color:#f5f3ee;padding:clamp(40px,7vw,72px) 0;text-align:center}
.cta h2{font-size:1.5rem;margin:0 0 .5em}
.cta .actions{justify-content:center}

/* フッター */
footer{background:#0a1530;color:#cfd6e6;padding:40px 0;font-size:.86rem;line-height:1.95}
footer .fbrand{font-family:"Shippori Mincho B1",serif;color:#fff;font-size:1.05rem;margin-bottom:.6em}
footer a{color:#cbb98e}
footer address{font-style:normal}
footer .ftag{font-size:.86rem;opacity:.8;margin-top:-.4em}
footer .flinks{border-top:1px solid rgba(255,255,255,.16);padding-top:16px;margin-top:18px}
.crumb{background:var(--kinari);font-size:.84rem;padding:10px 0;border-bottom:1px solid var(--gline)}
.crumb a{color:var(--konjo);text-decoration:none}
.crumb span{color:var(--mist);margin:0 .4em}

/* ── 予約フォーム /reserve/（§5.1・§1.1 モバイル）── */
.rwrap{width:min(720px,94%);margin:0 auto;padding:clamp(28px,5vw,52px) 0}
.rpick{display:grid;grid-template-columns:1fr;gap:12px}
@media(min-width:600px){.rpick{grid-template-columns:1fr 1fr}}
.rpick a{display:block;border:1px solid var(--gline);border-radius:6px;padding:16px 18px;text-decoration:none;color:var(--ink);background:#fff}
.rpick a:hover{border-color:var(--kindei);box-shadow:0 4px 14px rgba(14,27,54,.08)}
.rpick b{display:block;color:var(--konjo);font-size:1.05rem;margin-bottom:.2em}
.rpick span{font-size:.86rem;color:var(--mist)}
.rpick .soudan{border-color:var(--shu);background:#fff8f6}
.rform{display:block}
.fgroup{margin:0 0 20px}
.fgroup>label,.flabel{display:block;font-weight:600;color:var(--konjo);margin-bottom:6px;font-size:.96rem}
.fgroup .hint{font-size:.82rem;color:var(--mist);margin:.2em 0 .5em;line-height:1.7}
.field{width:100%;font:inherit;padding:.7em .8em;border:1px solid var(--gline);border-radius:5px;background:#fff;min-height:44px}
.field:focus{outline:2px solid var(--kindei);outline-offset:1px}
textarea.field{min-height:90px}
.radios{display:flex;flex-wrap:wrap;gap:10px}
.radios label{display:flex;align-items:center;gap:.45em;border:1px solid var(--gline);border-radius:5px;padding:.6em .9em;min-height:44px;cursor:pointer;font-size:.95rem}
.radios input{width:20px;height:20px}
.chk{display:flex;align-items:flex-start;gap:.6em;font-size:.95rem;line-height:1.7}
.chk input{width:22px;height:22px;margin-top:2px;flex:none}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.calnav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.calnav button{min-height:44px;min-width:64px;border:1px solid var(--gline);background:#fff;border-radius:5px;font:inherit;cursor:pointer}
.calnav .mon{font-weight:600;color:var(--konjo)}
.calgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.calgrid .dow{text-align:center;font-size:.78rem;color:var(--mist);padding:4px 0}
.calcell{min-height:44px;border:1px solid var(--kinari-2);border-radius:5px;background:#fff;font:inherit;cursor:pointer;padding:4px 0;font-size:.92rem}
.calcell.empty{border:none;background:transparent;cursor:default}
.calcell.disabled{color:#c9c4b6;background:#f6f3ec;cursor:not-allowed}
.calcell.sel{background:var(--konjo);color:#fff;border-color:var(--konjo)}
.higrid{display:grid;grid-template-columns:auto repeat(4,1fr);gap:4px;font-size:.85rem;overflow-x:auto}
.higrid .hh{font-weight:600;color:var(--konjo);text-align:center;padding:6px 2px;font-size:.8rem}
.higrid .hd{padding:8px 4px;color:var(--ink);white-space:nowrap}
.hcell{min-height:46px;border:1px solid var(--kinari-2);border-radius:5px;background:#fff;cursor:pointer;font:inherit;font-size:1.05rem}
.hcell.x{color:#c9c4b6;background:#f6f3ec;cursor:not-allowed}
.hcell.sel{background:var(--konjo);color:#fff;border-color:var(--konjo)}
.feebox{background:var(--kinari);border:1px solid var(--gline);border-radius:6px;padding:16px 18px;margin:8px 0 22px}
.feebox h3{margin:0 0 .5em;color:var(--konjo);font-size:1rem}
.feebox .row{display:flex;justify-content:space-between;font-size:.95rem;padding:3px 0}
.feebox .tot{border-top:1px solid var(--gline);margin-top:6px;padding-top:8px;font-weight:700;font-size:1.1rem;color:var(--shu)}
.feebox .note{font-size:.8rem;color:var(--mist);margin-top:.6em;line-height:1.6}
.rsubmit{width:100%;min-height:52px;background:var(--shu);color:#fff;border:none;border-radius:5px;font-weight:700;font-size:1.05rem;cursor:pointer;box-shadow:0 6px 18px rgba(178,58,43,.26)}
.rsubmit:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}
.rmsg{padding:12px 14px;border-radius:5px;margin:12px 0;font-size:.92rem;display:none}
.rmsg.err{display:block;background:#fdecea;border:1px solid #e6a79f;color:#8f2d20}
.rmsg.ok{display:block;background:#eef7ee;border:1px solid #a6cba6;color:#2f6b2f}
.donebox{background:#fff;border:1px solid var(--gline);border-radius:6px;padding:28px 24px;text-align:center}
.donebox .num{font-size:1.2rem;color:var(--konjo);font-weight:700;margin:.4em 0}

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