/* db-kit の一覧・詳細。色はテーマの CSS 変数（無ければ既定色）。片側だけの線は使わない */
.dbk-content { --dbk-accent: var(--accent, #2f5a58); --dbk-soft: var(--accent-soft, #e9f0ee); --dbk-ink: var(--ink, #1d2830); --dbk-sub: var(--ink-soft, #4a5761); --dbk-r: var(--radius, 12px); }
.dbk-content .dbk-h1 { margin: 0 0 .4em; padding: 0; background: none; font-size: 28px; line-height: 1.45; }
@media (max-width: 599px) { .dbk-content .dbk-h1 { font-size: 23px; } }
.dbk-lead { margin: 0 0 1.4em; color: var(--dbk-sub); }
.dbk-detail__meta, .dbk-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 1.2em; color: var(--dbk-sub); font-size: 16px; }
.dbk-badge { display: inline-block; padding: 2px 12px; border-radius: 999px; background: var(--dbk-soft); color: var(--dbk-accent); font-weight: 700; font-size: 15px; }
.dbk-facts { width: 100%; }
.dbk-facts th { width: 30%; white-space: nowrap; }
@media (max-width: 599px) { .dbk-facts th, .dbk-facts td { display: block; width: 100%; } .dbk-facts th { white-space: normal; } }
.dbk-values { margin: 0 !important; padding-left: 1.2em !important; }
.dbk-values li { margin: 0 0 .2em; }
.dbk-src { display: block; margin-top: 6px; font-size: 14px; line-height: 1.6; color: var(--dbk-sub); }
.dbk-unknown { color: var(--dbk-sub); }
.dbk-notice { padding: 14px 18px; border-radius: var(--dbk-r); background: #fdf3e7; }
.dbk-arealink a, .dbk-back a, .dbk-other a { font-weight: 700; }
.dbk-arealink { margin: 1.4em 0; padding: 16px 20px; border-radius: var(--dbk-r); background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.08); }
.dbk-sourcenote { margin-top: 2em; padding: 18px 20px; border-radius: var(--dbk-r); background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.06); font-size: 15px; color: var(--dbk-sub); }
.dbk-sourcenote p { margin: 0 0 .4em; }
/* 地域から探す */
.dbk-geo { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; margin: 0 0 2em !important; padding: 0 !important; }
.dbk-geo li { margin: 0 !important; }
.dbk-geo a { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 14px 16px; border-radius: var(--dbk-r); background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.08); color: var(--dbk-ink); font-weight: 700; text-decoration: none; min-height: 48px; }
.dbk-geo a span { font-weight: 400; font-size: 15px; color: var(--dbk-sub); }
.dbk-geo a:hover, .dbk-geo a:focus-visible { background: var(--dbk-soft); }
/* 絞り込み */
.dbk-filter { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 1.2em; }
.dbk-filter__label { font-weight: 700; font-size: 15px; margin-right: 4px; }
.dbk-chip { display: inline-flex; align-items: center; min-height: 40px; padding: 6px 14px; border-radius: 999px; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.1); color: var(--dbk-ink); font-size: 15px; text-decoration: none; }
.dbk-chip.is-on { background: var(--dbk-accent); color: #fff; box-shadow: none; }
/* 一覧 */
.dbk-list { display: grid; gap: 14px; margin: 0 0 1.6em; }
.dbk-card { padding: 18px 20px; border-radius: var(--dbk-r); background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.08); }
.dbk-card__name { margin: 0 0 .3em !important; padding: 0 !important; background: none !important; font-size: 20px; line-height: 1.5; }
.dbk-card__name a { color: var(--dbk-ink); }
.dbk-card__meta { margin: 0 0 .6em; }
.dbk-card__facts { display: grid; gap: 4px; margin: 0; }
.dbk-card__facts > div { display: grid; grid-template-columns: 6em 1fr; gap: 8px; }
.dbk-card__facts dt { font-weight: 700; color: var(--dbk-sub); font-size: 15px; }
.dbk-card__facts dd { margin: 0; }
/* ページ送り */
.dbk-pager ul { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; padding: 0 !important; margin: 0 0 2em !important; }
.dbk-pager li { margin: 0 !important; }
.dbk-pager a, .dbk-pager span { display: inline-flex; align-items: center; justify-content: center; min-width: 48px; min-height: 48px; padding: 0 14px; border-radius: 999px; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.1); text-decoration: none; color: var(--dbk-ink); }
.dbk-pager span[aria-current] { background: var(--dbk-accent); color: #fff; box-shadow: none; font-weight: 700; }
.dbk-related { margin-bottom: 1.6em !important; }
/* 地図 */
.dbk-map { position: relative; width: 100%; aspect-ratio: 16 / 9; margin: 0 0 6px; border-radius: var(--dbk-r); overflow: hidden; background: var(--dbk-soft); }
.dbk-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
@media (max-width: 599px) { .dbk-map { aspect-ratio: 4 / 3; } }
.dbk-map__credit { margin: 0 0 1.4em; font-size: 13px; color: var(--dbk-sub); text-align: right; }
/* 霊園：詳細 */
.rn-hero { margin: 0 0 1.2em; }
.rn-hero img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--dbk-r); }
.rn-hero--card img { aspect-ratio: 1200 / 630; }
.rn-hero figcaption, .rn-gallery figcaption { margin-top: 6px; font-size: 13px; line-height: 1.6; color: var(--dbk-sub); }
.rn-summary { list-style: none; margin: 0 0 1em !important; padding: 0 !important; display: grid; gap: 6px; }
.rn-summary li { margin: 0 !important; display: grid; grid-template-columns: 6.5em 1fr; gap: 10px; }
.rn-summary span { font-weight: 700; color: var(--dbk-sub); font-size: 15px; }
.rn-actions, .rn-share { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 2em; }
.rn-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 18px; border-radius: 999px; background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.12); color: var(--dbk-ink) !important; font-weight: 700; font-size: 16px; text-decoration: none !important; border: 0; cursor: pointer; font-family: inherit; }
.rn-btn:hover, .rn-btn:focus-visible { background: var(--dbk-soft); }
.rn-btn--cta { background: var(--cta, #b5562b); color: #fff !important; }
.rn-btn--cta:hover, .rn-btn--cta:focus-visible { background: var(--cta-strong, #93431f); }
.rn-items { display: grid; gap: 0; margin: 0 0 1.6em; border-radius: var(--dbk-r); background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.08); overflow: hidden; }
.rn-item { display: grid; grid-template-columns: 11em 1fr; gap: 16px; padding: 16px 20px; }
.rn-item + .rn-item { box-shadow: 0 -1px 0 rgba(0,0,0,.07); }
.rn-item dt { font-weight: 700; color: var(--dbk-sub); }
.rn-item dd { margin: 0; }
@media (max-width: 599px) { .rn-item { grid-template-columns: 1fr; gap: 4px; padding: 14px 16px; } }
.rn-note { margin: -.4em 0 1em; font-size: 14px; color: var(--dbk-sub); }
.rn-gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; margin: 0 0 2em; }
.rn-gallery figure { margin: 0; }
.rn-gallery img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--dbk-r); }
.rn-block { margin: 2.4em 0; padding: 24px 22px 8px; border-radius: var(--dbk-r); background: var(--dbk-soft); }
.rn-block > h2:first-child { margin-top: 0; }
.rn-block .rn-items { background: #fff; }
.rn-city { margin: 0 0 1.4em; padding: 16px 20px; border-radius: var(--dbk-r); background: #fff; }
.rn-city__title { margin: 0 0 .4em; font-weight: 700; }
.rn-city ul { margin: 0 0 .4em !important; }
.rn-city__src { margin: 0 0 .2em; font-size: 14px; color: var(--dbk-sub); }
.rn-steps { margin: 0 0 1.4em !important; }
.rn-steps li { margin-bottom: .5em; }
.rn-near { list-style: none; margin: 0 0 1.6em !important; padding: 0 !important; display: grid; gap: 8px; }
.rn-near li { margin: 0 !important; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px; padding: 14px 18px; border-radius: var(--dbk-r); background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.08); }
.rn-near a { font-weight: 700; }
.rn-near span { color: var(--dbk-sub); font-size: 15px; }
.rn-share { align-items: center; padding: 18px 20px; border-radius: var(--dbk-r); background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.06); }
.rn-share p { margin: 0 8px 0 0; font-weight: 700; }
.rn-bar { display: none; }
@media (max-width: 781px) {
  .rn-bar { display: grid; grid-auto-flow: column; grid-auto-columns: auto; position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; gap: 6px; padding: 8px 10px calc(8px + env(safe-area-inset-bottom)); background: rgba(255,255,255,.97); box-shadow: 0 -2px 10px rgba(0,0,0,.12); }
  .rn-bar a { display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 12px; border-radius: 999px; background: var(--dbk-soft); color: var(--dbk-ink); font-weight: 700; font-size: 15px; text-decoration: none; white-space: nowrap; }
  .rn-bar a.is-cta { background: var(--cta, #b5562b); color: #fff; }
  .dbk-main { padding-bottom: 80px; }
}
/* 霊園：カード */
.dbk-list, .rn-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; margin: 0 0 1.6em; }
.rn-card { display: flex; flex-direction: column; border-radius: var(--dbk-r); background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.1); overflow: hidden; }
.rn-card__img img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.rn-card__img--none { display: flex; align-items: center; justify-content: center; aspect-ratio: 3 / 2; background: var(--dbk-soft); color: var(--dbk-sub); font-size: 14px; text-decoration: none; }
.rn-card__body { padding: 14px 16px 16px; }
.rn-card__name { margin: 0 0 .4em !important; padding: 0 !important; background: none !important; font-size: 19px; line-height: 1.45; }
.rn-card__name a { color: var(--dbk-ink); }
.rn-card__tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 .5em; }
.rn-tag { display: inline-block; padding: 2px 10px; border-radius: 999px; background: #f6f0e6; font-size: 14px; }
.rn-card__line { margin: 0; font-size: 15px; line-height: 1.6; }
.rn-card__line--sub { color: var(--dbk-sub); }
/* 霊園：名前で探す */
.rn-search { margin: 0 0 2em; }
.rn-search label { display: block; font-weight: 700; margin-bottom: 6px; }
.rn-search input { width: 100%; min-height: 52px; padding: 0 16px; font-size: 17px; border-radius: var(--dbk-r); border: 2px solid var(--dbk-accent); background: #fff; }
#rn-results { list-style: none; margin: 8px 0 0 !important; padding: 0 !important; display: grid; gap: 6px; }
#rn-results li { margin: 0 !important; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px; padding: 12px 16px; border-radius: var(--dbk-r); background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
#rn-results a { font-weight: 700; }
#rn-results span { color: var(--dbk-sub); font-size: 15px; }
/* 霊園の詳細では、サイト共通の固定バーの代わりに霊園用（経路・電話・見積もり）を出す */
body:has(.rn-bar) .ohaka-spbar { display: none !important; }
@media (max-width: 781px) { body:has(.rn-bar) .p-fixBtnWrap { bottom: 84px; } }
/* 墓じまいの3ステップ（同じ形のカード） */
.rn-block__lead { margin: 0 0 1.2em; font-weight: 700; }
.rn-steps2 { list-style: none; margin: 0 0 1.6em !important; padding: 0 !important; display: grid; gap: 14px; counter-reset: none; }
.rn-step { margin: 0 !important; padding: 20px 22px; border-radius: var(--dbk-r); background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.08); }
.rn-step__no { display: inline-block; margin: 0 0 8px; padding: 2px 12px; border-radius: 999px; background: var(--dbk-accent); color: #fff; font-weight: 700; font-size: 14px; letter-spacing: .04em; }
.rn-step__title { margin: 0 0 6px; font-size: 20px; font-weight: 700; line-height: 1.45; color: var(--dbk-ink); }
.rn-step__text { margin: 0 0 12px; }
.rn-step__act { margin: 4px 0 0; }
.rn-step .rn-items { margin: 0 0 12px; box-shadow: none; background: var(--dbk-soft); }
.rn-step .rn-item { grid-template-columns: 9em 1fr; padding: 12px 16px; }
@media (max-width: 599px) { .rn-step .rn-item { grid-template-columns: 1fr; } }
.rn-step .rn-city { margin: 0 0 12px; padding: 12px 16px; background: var(--dbk-soft); }
.rn-form { margin: 0; }
.rn-form .lead-entry { margin: 0 0 16px; }
.dbk-content .rn-step .rn-step__no { color: #fff !important; background: var(--dbk-accent); font-size: 15px; padding: 4px 14px; }
/* 霊園のタグ */
.rn-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 1em; }
.rn-tag { display: inline-flex; align-items: center; min-height: 30px; padding: 2px 12px; border-radius: 999px; background: #f1ede6; color: var(--dbk-ink); font-size: 14px; font-weight: 700; line-height: 1.4; }
.rn-tag--ok { background: #e3f1e6; color: #1f6a3a; }
.rn-tag--part { background: #fbf0d6; color: #7a5a10; }
.rn-tag--ng { background: #eceff1; color: #4a5761; }
.rn-card .rn-tags { margin: 0 0 .5em; }
.rn-card .rn-tag { min-height: 26px; font-size: 13px; padding: 1px 10px; }
.rn-tagfilter { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 1.2em; }
.rn-tagfilter .dbk-chip { border: 0; cursor: pointer; font-family: inherit; }
.rn-tagfilter .dbk-chip.is-on { background: var(--dbk-accent); color: #fff; }
.rn-tagfilter__none { padding: 14px 18px; border-radius: var(--dbk-r); background: #fff; }
.rn-card[hidden] { display: none; }
.rn-quick { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 10px 0 0; font-size: 15px; font-weight: 700; }
.rn-quick button { min-height: 40px; padding: 0 14px; border: 0; border-radius: 999px; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.12); font: inherit; font-weight: 700; cursor: pointer; }
.rn-quick button:hover, .rn-quick button:focus-visible { background: var(--dbk-soft); }
/* お寺 */
.rn-note-box { margin: 0 0 1.6em; padding: 18px 20px; border-radius: var(--dbk-r); background: #fff; }
.rn-note-box__title { margin: 0 0 .4em; font-weight: 700; }
.rn-note-box p:last-child { margin-bottom: 0; }
.rn-card--text .rn-card__body { padding: 16px 18px; }
.rn-results { list-style: none; margin: 8px 0 0 !important; padding: 0 !important; display: grid; gap: 6px; }
.rn-results li { margin: 0 !important; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px; padding: 12px 16px; border-radius: var(--dbk-r); background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.rn-results a { font-weight: 700; }
.rn-results span { color: var(--dbk-sub); font-size: 15px; }

/* 一覧カード：背景の絵に文字を重ねる（カード画像 s と同じ配置。600×400 を基準に cqw で縮める） */
.rn-art { position: relative; display: block; container-type: inline-size; }
.rn-art__text { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: flex-start; padding: 13cqw 0 0 6.7cqw; box-sizing: border-box;
  background: linear-gradient(90deg, rgba(252,249,242,.55), rgba(252,249,242,0)); width: 62%; height: 100%; color: #222a2a; font-family: "BIZ UDPGothic", sans-serif; font-weight: 700; line-height: 1.25; }
.rn-art__label { font-size: 2.9cqw; color: #2f5a58; margin-bottom: 1.6cqw; }
.rn-art__name { font-size: 7.6cqw; margin-bottom: 1.4cqw; word-break: keep-all; overflow-wrap: anywhere; }
.rn-art__place { font-size: 3.4cqw; color: #4a5555; }
.rn-art__badge { margin-top: 2.6cqw; padding: .5cqw 1.6cqw; font-size: 2.5cqw; background: #2f5a58; color: #fff; }
.rn-art__site { position: absolute; left: 6.7cqw; bottom: 6cqw; font-size: 2.5cqw; color: #2f5a58; }

/* 窓口DB・補助金DB（media-kit/db-madoguchi.php・db-subsidy.php） */
.md-points { margin: 0 0 12px; padding-left: 1.2em; }
.md-points li { margin: 4px 0; }
.md-resv { margin: 8px 0 4px; padding: 10px 12px; background: #fff; border-radius: 8px; font-size: .92em; }
.md-juri ul.dbk-values { columns: 2; column-gap: 24px; padding-left: 1.2em; }
@media (max-width: 599px) { .md-juri ul.dbk-values { columns: 1; } }
.md-links { padding-left: 1.2em; }
.md-links li { margin: 4px 0; }
.md-three table { width: 100%; }
.md-entry { margin: 32px 0 8px; padding: 16px 18px; border: 1px solid #d9dee5; border-radius: 10px; background: #f7f9fb; }
.md-entry__title { font-weight: 700; margin: 0 0 8px; }
.md-entry ul { margin: 0 0 12px; padding-left: 1.2em; font-size: .92em; }
.md-entry li { margin: 4px 0; }
.md-entry__task { display: inline-block; margin-right: 6px; padding: 0 6px; border-radius: 4px; background: #e6edf5; font-size: .85em; }
.sb-status { display: inline-block; padding: 4px 10px; border-radius: 6px; font-size: .9em; }
.sb-status--open { background: #e8f5ec; color: #1d6b38; }
.sb-status--closed { background: #f6eceb; color: #8a2a20; }
.sb-quote { margin: 0 0 8px; padding: 12px 14px; border-left: 4px solid #c9d3df; background: #fff; font-size: .92em; }
.sb-table { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.sb-table table { min-width: 520px; }
.mk-spec { width: 100%; border-collapse: collapse; font-size: .92em; }
.mk-spec th, .mk-spec td { display: table-cell !important; padding: 8px 10px; border: 1px solid #d9dee5; text-align: left; vertical-align: top; }
.mk-spec thead th { background: #eef2f6; font-weight: 700; }
.mk-spec tr { display: table-row !important; }
.mk-spec thead { display: table-header-group !important; }
.mk-spec tbody { display: table-row-group !important; }
.post_content .sb-table .mk-spec { min-width: 600px !important; width: 100% !important; table-layout: auto !important; }
.mk-spec td + td, .mk-spec th + th { white-space: nowrap; }
.mk-spec td:first-child { min-width: 140px; }
.post_content .mk-spec thead th { color: #1f2d3d !important; background: #e6edf5 !important; }
