@charset "UTF-8";
/* =========================================================
   いつきセレモニー 共通スタイル
   ---------------------------------------------------------
   配色
     深緑   #235529  見出し・罫・帯
     黄緑   #84bc54  下線アクセント・カード枠
     淡緑   #bae78e  タグ・ボタン
     極淡緑 #ddf4c5  丸メニュー背景
     背景緑 #f4fbec  セクション交互背景
     ホバー #edffdb  メニューホバー
     価格   #f90
     赤     #dc0208  「お急ぎの方へ」
   ========================================================= */

/* ---------- 基本 ---------- */
* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0 0 80px;
  background: #fff;
  color: #000;
  text-align: center;
  font-family: "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3",
               HiraKakuPro-W3, Meiryo, "メイリオ", Verdana, sans-serif;
  line-height: 1.6;
}

img { border: none; max-width: 100%; height: auto; vertical-align: middle; }
a   { color: #000; text-decoration: none; }
ul  { list-style: none; margin: 0; padding: 0; }
h1, h2, h3, h4 { font-weight: normal; margin: 0; }

/* 中央寄せコンテナ（旧 .contentW / header / footer 相当） */
.container {
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
  padding: 0 10px;
}

/* SEO用の小さなグレーテキスト（旧 h1 / h2.seo） */
.seo-text {
  font-size: 80%;
  color: #000;
  text-align: left;
  padding-top: 3px;
  margin: 0;
}
.seo-lead { text-align: center; padding: 20px 0; }
.seo-foot { text-align: center; padding: 40px 0 0; }

/* ---------- ヘッダー ---------- */
.brand-row {
  display: flex;
  align-items: center;
  background: url("../images/back_title.png") left top no-repeat;
  text-align: left;
}
.brand-name    { flex: 0 0 58%; }
.brand-actions { flex: 0 0 13%; }
.brand-contact { flex: 0 0 29%; }

/* 社名（旧 h2.maintitle） */
.company-name {
  font-size: 42px;
  line-height: 40px;
  color: #235529;
  padding: 15px 0 15px 85px;
}
.company-name .prefix { font-size: 19px; margin-right: 5px; }

/* 「お急ぎの方へ」「事前相談」ボタン */
.btn-emergency,
.btn-counsel {
  display: inline-block;
  width: 110px;
  margin: 5px 0 0;
  padding: 1px 3px;
  border-radius: 5px;
  text-align: center;
  color: #fff;
  background: #dc0208;
}
.btn-counsel {
  background: #bae78e;
  color: #235529;
  letter-spacing: 3px;
}
.brand-actions p { margin: 0; }

/* 電話まわり */
.brand-contact p {
  margin: 2px 0 0;
  font-size: 95%;
  line-height: 30px;
}
.emphasis  { font-size: 120%; }
.icon-free { height: 23px; width: auto; margin-right: 7px; vertical-align: baseline; }
.tel-number { font-size: 190%; }

/* ---------- グローバルメニュー ---------- */
.nav-main,
.nav-sub {
  max-width: 960px;
  margin: 20px auto 0;
  padding: 0 10px;
}
.nav-sub { margin: -5px auto 0; }

.nav-main ul,
.nav-sub ul {
  display: flex;
  border-left: 1px solid #ccc;
}
.nav-main li,
.nav-sub li {
  flex: 1 1 20%;
  height: 25px;
  border-right: 1px solid #ccc;
  letter-spacing: 1px;
}
.nav-main a,
.nav-sub a { display: block; }
.nav-main a:hover,
.nav-sub a:hover {
  background-color: #edffdb;
  border-bottom: 2px solid #235529;
}
.small-note { font-size: 80%; }

/* ---------- メインビジュアル ---------- */
.hero {
  display: block;
  width: 100%;
  margin: 10px auto;
  border-top: 1px solid #235529;
  border-bottom: 1px solid #235529;
}

/* ---------- セクション ---------- */
.section { padding: 50px 0; }
.section--tint { background-color: #f4fbec; }

/* セクション見出し（旧 h2.subtitle） */
.section-title {
  position: relative;
  margin: 0 auto 15px;
  padding: 0 0 0 63px;
  background: url("../images/logo.png") left top / 54px no-repeat;
  border-bottom: 3px solid #235529;
  font-size: 150%;
  text-align: left;
  color: #235529;
  letter-spacing: 2px;
}
.section-title::before {
  content: '';
  position: absolute;
  left: 0;
  bottom: -3px;
  width: 95%;
  height: 3px;
  background: #84bc54;
}

.lead { margin: 40px auto 0; line-height: 30px; }

/* ---------- 葬儀プラン ---------- */
.plan-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin-top: 40px;
}
.plan-item { padding: 18px 24px; }
.plan-item:nth-child(odd)  { border-right: 2px dotted #dcdcdc; }
.plan-item:nth-child(-n+2) { border-bottom: 2px dotted #dcdcdc; }
.plan-item a { display: block; }

.plan-name {
  position: relative;
  display: inline-block;
  padding: 0.2em 1em 0.1em;
  font-size: 120%;
  color: #235529;
  letter-spacing: 0.3em;
}
.plan-name::before,
.plan-name::after {
  content: '';
  position: absolute;
  top: 0;
  width: 8px;
  height: 100%;
  border-top: 1px solid #dcdcdc;
  border-bottom: 1px solid #dcdcdc;
}
.plan-name::before { left: 0;  border-left: 1px solid #dcdcdc; }
.plan-name::after  { right: 0; border-right: 1px solid #dcdcdc; }
.plan-name .plan-kind { font-size: 170%; }

.plan-price {
  line-height: 30px;
  margin: 10px 0 12px;
}
.price-figure {
  font-size: 200%;
  color: #f90;
  margin-right: 3px;
}
.small { font-size: 80%; }

.arrow { width: 8px; flex: none; margin: 0 7px 3px 0; vertical-align: middle; }
.arrow--right { margin: 0 7px 3px 30px; }

.framed { border: 1px solid #dcdcdc; }
.plan-photo {
  width: 100%;
  max-width: 400px;
  aspect-ratio: 3 / 2;
  object-fit: contain;
  background: #fff;
}

/* 福祉葬ボックス */
.fukushi {
  width: max-content;
  max-width: 100%;
  margin: 40px auto 20px;
  padding: 10px 40px;
  background-color: #ffffe5;
  border: 2px solid #ff0;
  border-radius: 3px;
}
.fukushi h3 {
  margin: 10px auto;
  font-size: 150%;
  color: #235529;
}
.fukushi p { line-height: 30px; margin: 20px 0 10px; }

/* 樹の会 */
.society {
  display: flex;
  align-items: center;
  gap: 24px;
  width: 80%;
  margin: 40px auto 0;
}
.society-figure { flex: 0 0 32%; }
.society-card   { width: 250px; }
.society-body   { flex: 1 1 auto; padding-top: 5px; }
.society-body p { line-height: 30px; margin: 0; }

.society-merits {
  display: flex;
  justify-content: space-between;
  width: 80%;
  margin: 0 auto;
}
.society-merits li {
  width: 140px;
  margin: 20px 10px 10px;
  padding: 4px;
  background: #bae78e;
  border-radius: 3px;
}

/* ---------- 式場 ---------- */
.hall-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 24px;
  margin-top: 40px;
}
.hall-item { width: 400px; max-width: 100%; }
.hall-item img:not(.arrow) {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}
.hall-item p { margin: 8px 0 0; }

/* ---------- カード（商品・お悩み・葬儀後） ---------- */
.card-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 16px;
  margin-top: 40px;
}
.card {
  width: 300px;
  max-width: 100%;
  padding: 8px 0;
  background: #fff;
  border: 1px solid #84bc54;
  border-radius: 3px 20px 3px 3px;
}
.card a { display: block; }
.card p {
  display: flex;
  align-items: center;
  min-height: 2.6em;
  margin: 0 0 8px;
  padding: 0 0.8em;
  text-align: left;
  line-height: 1.3;
}
.card img:not(.arrow) {
  width: 92%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}
.card a:hover { opacity: 0.7; }
.flip { transform: scale(-1, 1); }

/* ---------- 便利メニュー ---------- */
.round-menu {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin-top: 40px;
}
.round-menu a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 115px;
  height: 115px;
  margin: 6px 7px 0;
  background: #ddf4c5;
  border: 1px solid #235529;
  border-radius: 50%;
  font-size: 95%;
  line-height: 25px;
}
.round-menu a:hover { opacity: 0.7; }
.round-menu p { margin: 0; }

/* ---------- 会社情報 ---------- */
.company-bar {
  background-color: #235529;
  color: #fff;
  padding: 20px 0;
  border-top: 3px double #fff;
}
.company-bar a { color: #fff; }
.company-inner { display: flex; align-items: center; }
.company-block1 { flex: 0 0 70%; display: flex; flex-wrap: wrap; align-items: center; }
.company-block2 { flex: 0 0 17%; }
.company-block3 { flex: 0 0 12%; }

.company-bar .company-name {
  flex: 0 0 50%;
  padding: 0;
  color: #fff;
  font-size: 30px;
  text-align: left;
}
.company-address {
  flex: 0 0 50%;
  padding-top: 10px;
  margin: 0;
  text-align: left;
}
.company-tel {
  width: 100%;
  line-height: 40px;
  text-align: right;
  padding-right: 10px;
  margin: 0;
}
.company-block2 p {
  margin: 0;
  padding: 2px 0 0 20px;
  line-height: 40px;
  text-align: left;
  white-space: nowrap;
}
.qr-image { width: 80px; }

/* ---------- コピーライト ---------- */
.copyright {
  font-size: 75%;
  padding: 8px 0;
  margin: 0;
}
.copyright .credit { padding: 0 0.5em 0 2em; }

/* ---------- 追従フッター・ページトップ ---------- */
.fixed-bar {
  position: fixed;
  left: 0;
  bottom: 0;
  width: 100%;
  z-index: 1002;
  background: #fff;
  border-top: 2px solid #235529;
  padding: 7px 0 0;
  display: none;
}
.fixed-bar.is-visible { display: block; }

.page-top {
  position: fixed;
  right: 30px;
  bottom: 90px;
  z-index: 1003;
  margin: 0;
  display: none;
}
.page-top.is-visible { display: block; }
.page-top a {
  display: block;
  width: 50px;
  height: 50px;
  background: url("../images/page-top.png") no-repeat;
}
.page-top a:hover { opacity: 0.7; }

/* =========================================================
   タブレット （〜980px）
   ========================================================= */
@media screen and (max-width: 980px) {
  .brand-row { background-size: cover; }
  .company-name { font-size: 34px; padding-left: 70px; }

  .plan-photo { width: 100%; }
  .society { width: 92%; }

  .card { width: 46%; margin: 0 1.5% 16px; }
}

/* =========================================================
   スマートフォン （〜600px）
   ========================================================= */
@media screen and (max-width: 600px) {
  .saijo-grid { grid-template-columns: 1fr; }
  body { margin-bottom: 64px; }

  /* ヘッダーを縦積みに */
  .brand-row {
    display: block;
    background: none;
    text-align: center;
    padding-top: 10px;
  }
  .company-name {
    font-size: 26px;
    line-height: 1.3;
    padding: 0 0 10px;
    text-align: center;
  }
  .company-name .prefix { display: block; font-size: 14px; margin: 0; }

  .brand-actions {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-bottom: 8px;
  }
  .btn-emergency,
  .btn-counsel { width: 45%; padding: 6px 3px; }

  .brand-contact p { text-align: center; font-size: 90%; }
  .tel-number { font-size: 165%; }

  /* メニューは2列 */
  .nav-main ul,
  .nav-sub ul {
    display: grid;
    grid-template-columns: 1fr 1fr;
    border-left: none;
    border-top: 1px solid #ccc;
  }
  .nav-main li,
  .nav-sub li {
    height: auto;
    padding: 8px 0;
    border-right: 1px solid #ccc;
    border-bottom: 1px solid #ccc;
  }
  .nav-main li:nth-child(odd),
  .nav-sub li:nth-child(odd) { border-left: 1px solid #ccc; }
  .nav-main li:last-child:nth-child(odd),
  .nav-sub li:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .nav-sub { margin-top: 10px; }

  .section { padding: 35px 0; }
  .section-title {
    font-size: 120%;
    padding-left: 48px;
    background-size: 40px;
  }
  .lead { margin-top: 25px; line-height: 26px; font-size: 93%; }

  /* プランは1列 */
  .plan-grid { grid-template-columns: 1fr; }
  .plan-item {
    padding: 18px 6px;
    border-right: none;
    border-bottom: 2px dotted #dcdcdc;
  }
  .plan-grid > .plan-item:last-child { border-bottom: none; }
  .plan-name { letter-spacing: 0.15em; }

  .fukushi { padding: 10px 15px; width: auto; }
  .fukushi h3 { font-size: 120%; }
  .fukushi p { line-height: 26px; font-size: 93%; }

  /* 樹の会は縦積み */
  .society { display: block; width: 100%; }
  .society-card { width: 200px; }
  .society-body { padding-top: 15px; }
  .society-merits { width: 100%; justify-content: center; }
  .society-merits li { width: 44%; margin: 15px 5px 5px; }

  /* 式場・カードは1列 */
  .hall-grid { gap: 20px; }
  .hall-item { width: 100%; }
  .card { width: 100%; }
  .card p { min-height: 0; }
  .card img:not(.arrow) { width: 94%; }

  /* 丸メニューは3列 */
  .round-menu a {
    width: 100px;
    height: 100px;
    margin: 6px;
    font-size: 88%;
    line-height: 22px;
  }

  /* 会社情報は縦積み */
  .company-inner { display: block; }
  .company-block1 { display: block; }
  .company-bar .company-name {
    font-size: 22px;
    text-align: center;
    padding-bottom: 8px;
  }
  .company-address,
  .company-tel {
    text-align: center;
    padding: 0;
    line-height: 26px;
  }
  .company-block2 p {
    padding: 10px 0 0;
    text-align: center;
    line-height: 32px;
  }
  .arrow--right { margin-left: 0; display: block; margin: 8px auto 0; }
  .company-block3 { padding-top: 12px; }

  .copyright { font-size: 70%; line-height: 2; }
  .copyright .credit { display: block; padding: 0; }

  /* 追従バーは電話ボタンに */
  .fixed-bar { padding: 0; }
  .fixed-bar .container { padding: 0; max-width: none; }
  .fixed-call {
    display: flex;
  }
  .fixed-call a {
    flex: 1;
    padding: 12px 0;
    font-size: 100%;
    font-weight: bold;
    color: #fff;
    background: #235529;
  }
  .fixed-call a.is-emergency { background: #dc0208; }

  .page-top { right: 12px; bottom: 70px; }
  .page-top a { width: 40px; height: 40px; background-size: 40px; }
}

/* PC専用 / スマホ専用の出し分け */
.pc-only { display: block; }
.sp-only { display: none; }
@media screen and (max-width: 600px) {
  .pc-only { display: none; }
  .sp-only { display: block; }
}

/* =========================================================
   下層ページ共通
   ========================================================= */
/* ページタイトル帯 */
.page-title {
  max-width: 960px;
  margin: 8px auto 0;
  padding: 8px 0;
  background: url("../images/back_pagetitle.jpg") center/cover no-repeat, #eef4e6;
}
.page-title h2 {
  margin: 0;
  padding: 15px 0;
  font-size: 175%;
  color: #000;
  letter-spacing: 0.15em;
  text-shadow: 2px 1px 2px #fff;
  background: rgba(255,255,255,0.5);
}

/* 本文の共通パーツ */
.text-lead { line-height: 30px; margin: 0 auto; }
.note-small { font-size: 90%; margin: 12px auto 0; }
.waku { border: 3px double #dcdcdc; }
.section .text-lead + .note-small { margin-top: 10px; }

/* 見出し（subtitle） */
.subtitle {
  position: relative;
  max-width: 960px;
  margin: 0 auto 15px;
  padding: 0 0 4px 63px;
  background: url("../images/logo.png") left top/54px no-repeat;
  border-bottom: 3px solid #235529;
  font-size: 150%;
  text-align: left;
  color: #235529;
  letter-spacing: 2px;
}
.subtitle::before {
  content: '';
  position: absolute; left: 0; bottom: -3px;
  width: 95%; height: 3px; background: #84bc54;
}
.subtitle span { font-size: 80%; }

/* 斎場（2列・写真は同一比率の枠でぴったり揃える） */
.saijo-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px 24px;
  margin: 40px auto 0;
}
.saijo-item { display: block; }
.saijo-photo {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 2;
  border: 3px double #dcdcdc;
  background: #f0ece2;
  overflow: hidden;
}
.saijo-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.saijo-item p { margin: 8px 0 0; }

/* 下部リンク集 */
.bottom-links {
  max-width: 960px;
  margin: 0 auto;
  font-size: 90%;
  padding: 15px 0 10px;
}
.bl-groups {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 4px 0;
  border-bottom: 1px solid #dcdcdc;
  padding-bottom: 10px;
  text-align: left;
}
.bl-col {
  flex: 0 0 auto;
  padding: 0 14px;
  border-left: 1px solid #eee;
}
.bl-col:first-child { border-left: none; }
.bl-col p { margin: 0 0 4px; }
.bl-current a { background: #235529; color: #fff; padding: 0 0.3em; }
.bl-shared { padding: 12px 0 0; text-align: center; }
.bl-shared a { padding: 0 15px; display: inline-block; }

@media screen and (max-width: 980px) {

  .bl-col { flex: 0 0 auto; width: auto; margin-bottom: 12px; }
}
@media screen and (max-width: 600px) {
  .page-title h2 { font-size: 135%; }
  .subtitle { font-size: 120%; padding-left: 48px; background-size: 40px; }

  .bl-col { width: 45%; border-left: none; }
  .bl-shared a { display: block; padding: 4px 0; }
}

/* =========================================================
   料金プラン（price）
   ========================================================= */
.plan-anchornav {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 10px;
  margin: 30px auto 0;
}
.plan-anchornav a {
  padding: 8px 18px; border: 1px solid #235529; border-radius: 4px;
  color: #235529; font-size: 95%;
}
.plan-anchornav a:hover { background: #235529; color: #fff; }

.plan-block { max-width: 900px; margin: 0 auto 40px; }
.planTitle {
  font-size: 120%; color: #235529; letter-spacing: 0.2em;
  border-bottom: 3px dotted #235529; width: max-content; max-width: 100%;
  margin: 2rem auto; padding-bottom: 4px;
}
.planTitle .fontBig { font-size: 170%; }
.planTitle .mini { font-size: 66%; letter-spacing: 0; color: #555; }
.fontPrice { font-size: 200%; color: #f90; margin-right: 3px; }
.plan-pre { color: #c00; font-size: 92%; margin: 0 auto 10px; }
.plan-note2 { font-size: 82%; color: #555; text-align: left; max-width: 760px; margin: 8px auto 0; line-height: 1.7; }

/* アイコン明細（絵＋ラベルを1セル化・絶対にズレない） */
.icon-set { max-width: 840px; margin: 10px auto 0; text-align: center; font-size: 0; }
.icon-cell {
  display: inline-block;
  vertical-align: top;
  width: 12.4%;
  margin-bottom: 8px;
}
.icon-pic {
  display: block;
  width: 88px; height: 88px;
  margin: 0 auto 2px;
  background-image: url("../images/icon_set.png");
  background-repeat: no-repeat;
  background-size: 616px 265px; /* 700x301 を 88/100 に縮小 */
}
.icon-lbl {
  display: block;
  font-size: 12px;
  line-height: 1.35;
  letter-spacing: 0.04em;
}
.icon-pic.coffin{background-position:0 0}
.icon-pic.urn{background-position:-88px 0}
.icon-pic.dryice{background-position:-176px 0}
.icon-pic.car{background-position:-264px 0}
.icon-pic.iei{background-position:-352px 0}
.icon-pic.frame{background-position:-440px 0}
.icon-pic.uketsuke{background-position:-528px 0}
.icon-pic.kumotsu{background-position:0 -88px}
.icon-pic.daikou{background-position:-88px -88px}
.icon-pic.staff1{background-position:-176px -88px}
.icon-pic.staff2{background-position:-264px -88px}
.icon-pic.makurakazari{background-position:-352px -88px}
.icon-pic.flower{background-position:-440px -88px}
.icon-pic.reikyu{background-position:-528px -88px}
.icon-pic.owakareflower{background-position:0 -176px}

@media screen and (max-width: 600px) {
  .icon-cell { width: 25%; }
  .icon-pic { width: 64px; height: 64px; background-size: 448px 193px; }
  .icon-pic.coffin{background-position:0 0}
  .icon-pic.urn{background-position:-64px 0}
  .icon-pic.dryice{background-position:-128px 0}
  .icon-pic.car{background-position:-192px 0}
  .icon-pic.iei{background-position:-256px 0}
  .icon-pic.frame{background-position:-320px 0}
  .icon-pic.uketsuke{background-position:-384px 0}
  .icon-pic.kumotsu{background-position:0 -64px}
  .icon-pic.daikou{background-position:-64px -64px}
  .icon-pic.staff1{background-position:-128px -64px}
  .icon-pic.staff2{background-position:-192px -64px}
  .icon-pic.makurakazari{background-position:-256px -64px}
  .icon-pic.flower{background-position:-320px -64px}
  .icon-pic.reikyu{background-position:-384px -64px}
  .icon-pic.owakareflower{background-position:0 -128px}
  .plan-anchornav a { padding: 6px 12px; font-size: 88%; }
}

/* プラン写真（アイコン明細の上） */
.plan-photos {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 16px;
  margin: 14px auto 20px;
}
.plan-photos img {
  width: 400px; max-width: 46%; height: auto;
}
@media screen and (max-width: 600px) {
  .plan-photos img { max-width: 100%; width: 100%; }
}



/* ===== 説明ページ共通 ===== */
.desc-h3 {
  font-size: 118%; color: #235529; font-weight: bold;
  line-height: 1.7; margin: 0 auto 10px; letter-spacing: 0.02em;
}
.desc-cols {
  display: flex; align-items: center; justify-content: center;
  gap: 30px; margin: 24px auto 0; flex-wrap: wrap;
}
.dc-col { flex: 1 1 0; min-width: 0; }
.dc-media { max-width: 42%; }
.dc-media img { width: 100%; height: auto; }
.dc-text { text-align: left; line-height: 30px; }
.dc-text p { margin: 0; }
.desc-single-img { text-align: center; margin: 24px auto; }
.desc-single-img img { max-width: 100%; height: auto; }
.text-lead.txtL { text-align: center; }
@media screen and (max-width: 600px) {
  .desc-cols { flex-direction: column; gap: 16px; }
  .dc-col, .dc-media { max-width: 100%; width: 100%; }
  .dc-media { order: -1; }
}

/* ===== 自動レイアウト本文（説明・商品ページ共通） ===== */
.auto-body { max-width: 900px; }
.auto-body .subtitle { margin: 30px auto 15px; }
.auto-body .desc-h3 { margin: 24px auto 12px; }
.auto-body .text-lead { margin: 16px auto; }
.auto-body p a { color: #235529; text-decoration: underline; }
.auto-body .ya, .auto-body .yaR { width: 8px; margin-right: 5px; vertical-align: middle; }

/* 画像ギャラリー（枚数で列数自動） */
.auto-gallery {
  display: grid;
  gap: 16px;
  margin: 24px auto;
  justify-items: center;
}
.auto-gallery img { width: 100%; height: auto; }
.auto-gallery.g1 { grid-template-columns: minmax(0, 500px); justify-content: center; }
.auto-gallery.g2 { grid-template-columns: repeat(2, 1fr); }
.auto-gallery.g3 { grid-template-columns: repeat(3, 1fr); }
@media screen and (max-width: 600px) {
  .auto-gallery.g2, .auto-gallery.g3 { grid-template-columns: 1fr 1fr; }
}

/* ===== 2カラム行（row2）本文用 ===== */
.row2 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 30px;
  margin: 24px auto 0;
  flex-wrap: wrap;
}
.row2 .col { min-width: 0; }
.row2 .col.w60 { flex: 0 1 56%; }
.row2 .col.w40 { flex: 0 1 38%; }
.row2 .col.w50 { flex: 0 1 46%; }
.row2 .col p { text-align: left; line-height: 30px; margin: 0 0 16px; }
.row2 .col p:last-child { margin-bottom: 0; }
.row2 + .text-lead { margin-top: 30px; }
.row2 .col img:not(.ya):not(.icon-free) { width: 100%; height: auto; }
.flip-h { transform: scaleX(-1); }
.jump-link { text-align: right; margin: 0 0 6px; }
.jump-link a { color: #235529; }
.jump-link .ya { width: 8px; margin-right: 5px; vertical-align: middle; }
@media screen and (max-width: 600px) {
  .row2 { flex-direction: column; gap: 16px; }
  .row2 .col { flex: 1 1 100% !important; width: 100%; }
  .row2 .col img { max-width: 360px; margin: 0 auto; display: block; }
}

/* 帯画像・ボタン行 */
.obi { margin: 30px auto; text-align: center; }
.obi img { width: 100%; height: auto; }
.btn-line { margin-top: 14px !important; }
.btn-line .link-btn {
  display: inline-block; margin: 0 16px 0 0; color: #235529;
}
.btn-line .link-btn .ya { width: 8px; margin-right: 5px; vertical-align: middle; }

/* 矢印アイコンは常に8px固定（拡大防止・全箇所共通） */
img.ya, img.yaR { width: 8px !important; height: auto !important; display: inline !important; vertical-align: middle; margin-right: 5px; }
img.yaR { transform: none; }

/* ===== 箇条書きリスト（お悩み例・お知らせ事項） ===== */
.check-list {
  max-width: 760px; margin: 20px auto; padding: 0; text-align: left;
}
.check-list li {
  position: relative; list-style: none;
  padding: 10px 10px 10px 34px; margin: 0 0 8px;
  background: #fff; border: 1px solid #bae78e; border-radius: 4px;
  line-height: 1.6;
}
.check-list li::before {
  content: "✓"; position: absolute; left: 12px; top: 10px;
  color: #235529; font-weight: bold;
}
.section--tint .check-list li { background: #fff; }

/* row2 上揃え・中央寄せバリエーション */
.row2.top { align-items: flex-start; }
.row2 .col.center { text-align: center; }
.row2 .col.center img { max-width: 100%; }
.row2 .col .cap { margin: 6px 0 0; font-size: 90%; color: #555; }

/* 緊急ページの電話ブロック */
.tel-block { text-align: center; margin: 20px 0 18px; line-height: 1.5; }
.tel-block .icon-free { height: 30px !important; width: auto; margin-right: 8px; vertical-align: middle; }
.tel-block .tel-number { font-family: "Noto Serif JP",serif; font-size: 230%; color: #235529; font-weight: 600; letter-spacing: 0.02em; vertical-align: middle; }
.tel-block .tel-note { font-size: 100%; color: #333; }

/* フリーダイヤルアイコンは高さ固定（拡大防止・全箇所共通） */
img.icon-free { height: 26px !important; width: auto !important; display: inline !important; vertical-align: middle; }

/* ===== 商品写真グリッド（お料理・返礼品・仏壇など）※元HP準拠 ===== */
.ph-grid {
  display: grid !important;
  gap: 22px 26px;
  margin: 24px auto 0;
  max-width: 860px;
  align-items: start;
}
.ph-grid.g2 { grid-template-columns: repeat(2, 1fr) !important; max-width: 720px; }
.ph-grid.g3 { grid-template-columns: repeat(3, 1fr) !important; }
.ph-grid .ph-item { margin: 0; min-width: 0; display: flex; justify-content: center; }
.ph-grid .ph-item img { width: 100% !important; height: auto !important; display: block; box-sizing: border-box; }
@media screen and (max-width: 600px) {
  .ph-grid.g2, .ph-grid.g3 { grid-template-columns: 1fr 1fr !important; gap: 12px; }
}

/* ===== 樹木葬 ６つの特長テーブル ===== */
.tree-features {
  width: 100%;
  margin: 20px auto;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
}
.tree-features td {
  border: 1px solid #d4f984;
  padding: 8px 4px;
  background-color: #d4f984;
  text-align: center;
  font-size: 95%;
  letter-spacing: 0.02em;
}
.tree-features td.alt {
  border: 1px solid #e9ffb9;
  background-color: #e9ffb9;
}
@media screen and (max-width: 600px) {
  .tree-features td { font-size: 86%; padding: 8px 2px; }
}

/* ===== 海洋散骨 ３種類（テキストセルのグリッド） ===== */
.kaiyoso-catch { margin-top: 34px; text-align: left; }
.kaiyoso-grid .ph-item { display: block; min-width: 0; }
.kaiyoso-grid .ph-item p { text-align: left; line-height: 28px; margin: 0; }
.kaiyoso-label {
  font-size: 115%;
  margin: 0 0 12px !important;
  padding: 6px 0;
  border-radius: 3px;
  text-align: center !important;
  background-color: #9cf;
}
.kaiyoso-label.kl2 { background-color: #cf9; }
.kaiyoso-label.kl3 { background-color: #99ffd4; }
@media screen and (max-width: 600px) {
  .kaiyoso-grid { grid-template-columns: 1fr !important; gap: 20px; }
}

/* ===== 葬儀後の手続き 士業バッジ（小アイコンなので拡大を明示的に抑止） ===== */
.badge-set { margin: 6px auto 0; }
.badge-row { display: grid; gap: 10px; justify-items: center; }
.badge-row.g2 { grid-template-columns: repeat(2, 1fr); max-width: 72%; margin: 0 auto; }
.badge-row.g3 { grid-template-columns: repeat(3, 1fr); margin-top: 16px; }
.badge-item { text-align: center; font-size: 93%; line-height: 1.6; }
.badge-item span { display: block; margin-top: 4px; }
.row2 .col .badge-item img { width: 72px !important; height: auto !important; display: block; margin: 0 auto; }
@media screen and (max-width: 600px) {
  .badge-row.g2 { max-width: 60%; }
  .row2 .col .badge-item img { width: 62px !important; }
}

/* ===== 番号付きステップ（遺品整理サービスの流れ） ===== */
.step-block {
  position: relative;
  min-height: 84px;
  padding-left: 96px;
  background-position: left 4px;
  background-repeat: no-repeat;
  background-size: 78px auto;
}
.step-block h3 { text-align: left; margin-top: 0; }
.step-block p { margin-top: 12px; text-align: left; }
.step1 { background-image: url("../images/back_num_1.png"); }
.step2 { background-image: url("../images/back_num_2.png"); }
.step3 { background-image: url("../images/back_num_3.png"); }
.step4 { background-image: url("../images/back_num_4.png"); }
.step5 { background-image: url("../images/back_num_5.png"); }
.row2 .col .ihin-photo { width: 100% !important; aspect-ratio: 3 / 2; object-fit: cover; }
@media screen and (max-width: 600px) {
  .step-block { padding-left: 70px; background-size: 58px auto; min-height: 64px; }
}

/* ===== 楕円ラベル（その他の作業） ===== */
.circle-list { display: flex; justify-content: center; flex-wrap: wrap; gap: 18px; margin: 26px auto 0; }
.circle {
  width: 180px; height: 85px;
  display: flex; align-items: center; justify-content: center;
  background: #ddf4c5; border: 1px solid #235529; border-radius: 50%;
  line-height: 26px; text-align: center;
}
.circle p { margin: 0; font-size: 93%; }
@media screen and (max-width: 600px) {
  .circle-list { gap: 12px; }
  .circle { width: 46%; height: 78px; }
  .circle p { font-size: 86%; }
}

/* ===== ５つのお約束 ===== */
.promise-catch { font-size: 150%; text-align: center; margin: 0 auto; }
.promise-tel { margin-top: 14px; }
.promise-tel p { text-align: left; line-height: 1.7; }
.photo-caption { margin-top: 6px; text-align: center; font-size: 90%; }

/* ===== 樹（いつき）の会 ===== */
.soc-catch { text-align: left; }
.soc-merit { display: flex; align-items: center; justify-content: center; gap: 24px; flex-wrap: wrap; margin: 24px auto 0; }
.soc-merit-text { flex: 1 1 46%; text-align: left; line-height: 30px; margin: 0; }
.circle--soc { width: 140px; height: 100px; background: #e4ffc9; border: 2px solid #235529; flex: 0 0 auto; }
.circle--soc p { color: #235529; font-size: 118%; font-weight: bold; line-height: 26px; }
.soc-label { font-size: 120%; letter-spacing: 1px; text-align: left; margin: 0 0 10px; }
.soc-label .rate { font-size: 165%; color: #f90; margin-right: 3px; }
.soc-saidan { align-items: flex-start; }
.soc-floral { display: flex; align-items: center; justify-content: center; gap: 20px; flex-wrap: wrap; margin: 20px auto 0; }
.soc-floral-text { flex: 1 1 40%; text-align: left; }
.soc-floral-text p { text-align: left; margin: 0 0 8px; line-height: 28px; }
.soc-floral-img { flex: 0 0 auto; }
.soc-floral-img img { width: auto !important; height: 170px; }
@media screen and (max-width: 600px) {
  .soc-merit { gap: 14px; }
  .circle--soc { width: 46%; height: 88px; }
  .circle--soc p { font-size: 100%; }
  .soc-merit-text { flex: 1 1 100%; order: 3; }
  .soc-floral-img img { height: 120px; }
  .soc-floral-text { flex: 1 1 100%; order: -1; }
}

/* 縦長写真のカラム（御見積書など） */
.row2 .col--narrow { flex: 0 1 26%; }
@media screen and (max-width: 600px) {
  .row2 .col--narrow { max-width: 60%; margin: 0 auto; }
}

/* ===== ご葬儀の流れ ===== */
.flow-section { padding: 34px 0; }
.flow-title {
  font-size: 110%;
  letter-spacing: 0.07em;
  margin: 0 auto 24px;
  padding: 8px 0 8px 14px;
  text-align: left;
  border: 1px solid #dcdcdc;
  border-radius: 5px;
  box-shadow: 2px 2px 2px 1px rgba(0,0,0,0.05);
  background-image: linear-gradient(#fff 0%, #def8e3 100%);
}
.flow-row { display: flex; align-items: center; justify-content: center; gap: 26px; flex-wrap: wrap; }
.flow-text { flex: 1 1 68%; text-align: left; line-height: 30px; }
.flow-sub { display: inline-block; margin-top: 10px; }
.flow-illust { flex: 0 0 auto; width: 160px; }
.flow-illust .flow-img { width: 100%; height: auto; display: block; }
.mark { font-size: 85%; margin: 0 0.3em 0 0; color: #235529; }
@media screen and (max-width: 600px) {
  .flow-section { padding: 26px 0; }
  .flow-row { gap: 14px; }
  .flow-text { flex: 1 1 100%; order: 2; line-height: 27px; }
  .flow-illust { width: 116px; margin: 0 auto; }
}

/* ===== 供花・供物 注文フロー ===== */
.floral-steps { display: flex; justify-content: center; gap: 0; list-style: none; margin: 24px auto 0; padding: 0; max-width: 640px; }
.floral-steps .flow-step {
  flex: 1 1 0; text-align: center; font-size: 90%; color: #999;
  padding: 8px 4px; border-bottom: 3px solid #dcdcdc; position: relative;
}
.floral-steps .flow-step.is-active { color: #235529; font-weight: bold; border-bottom-color: #84bc54; }
.floral-steps .fs-num {
  display: inline-flex; align-items: center; justify-content: center;
  width: 22px; height: 22px; margin-right: 6px; border-radius: 50%;
  background: #dcdcdc; color: #fff; font-size: 85%; vertical-align: middle;
}
.floral-steps .flow-step.is-active .fs-num { background: #84bc54; }
.fw-green { color: #235529; font-weight: bold; }
.fw-red { color: #c0392b; font-weight: bold; }
.fw-tel { color: #235529; font-weight: bold; font-size: 108%; }
.fw-note { font-size: 90%; color: #666; text-align: left; margin: 14px auto 0; padding: 10px 14px; background: #f7f7f2; border-left: 3px solid #84bc54; }
.fw-fax { text-align: left; margin-top: 16px; }
.fw-fax a { color: #235529; text-decoration: underline; }
.fw-after { margin-top: 30px; }

/* 商品グリッド（写真＋名前＋価格＋ボタン） */
.floral-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px 20px; margin: 6px auto 0; }
.fw-item { background: #fff; border: 1px solid #e2e2d8; border-radius: 4px; padding: 14px; text-align: center; }
.fw-photo img { width: 100%; height: auto; border: 3px double #dcdcdc; box-sizing: border-box; }
.fw-name { margin: 12px 0 4px; font-weight: bold; }
.fw-price { margin: 0 0 12px; font-size: 110%; color: #c0392b; }
.fw-price .tax { font-size: 72%; color: #666; margin-left: 2px; }
.order-btn {
  display: inline-block; padding: 10px 22px; background: #235529; color: #fff;
  border: none; border-radius: 4px; font-size: 95%; cursor: pointer; text-decoration: none;
}
.order-btn:hover { background: #2f6d38; }
.fw-btn { margin: 0; }
@media screen and (max-width: 600px) {
  .floral-grid { grid-template-columns: repeat(2, 1fr); gap: 14px 10px; }
  .floral-steps { font-size: 78%; }
  .floral-steps .fs-num { width: 18px; height: 18px; margin-right: 3px; }
}

/* 選択中の品サマリー */
.order-summary { margin: 24px auto 0; padding: 16px 20px; background: #f4fbec; border: 1px solid #d5e8c3; border-radius: 4px; }
.os-label { margin: 0 0 10px; font-weight: bold; color: #235529; text-align: center; }
.os-body { display: flex; align-items: center; justify-content: center; gap: 18px; }
.os-photo { width: 110px; height: auto; border: 3px double #dcdcdc; }
.os-name { margin: 0 0 4px; font-weight: bold; font-size: 108%; text-align: center; }
.os-price { margin: 0; color: #c0392b; font-size: 112%; text-align: center; }
.os-price .tax { font-size: 72%; color: #666; }
.os-change { margin: 12px 0 0; text-align: center; }
.os-change a { color: #235529; text-decoration: underline; font-size: 92%; }

/* 入力フォーム */
.order-form { margin: 26px auto 0; }
.of-row { display: flex; flex-wrap: wrap; margin: 0 0 16px; text-align: left; }
.of-row dt { flex: 0 0 100%; font-weight: bold; margin-bottom: 6px; font-size: 95%; }
.of-row dd { flex: 1 1 100%; margin: 0; }
.of-row input, .of-row textarea {
  width: 100%; padding: 9px 12px; border: 1px solid #ccc; border-radius: 4px;
  font-size: 100%; box-sizing: border-box; font-family: inherit;
}
.of-row input:focus, .of-row textarea:focus { outline: none; border-color: #84bc54; box-shadow: 0 0 0 2px rgba(132,188,84,0.2); }
.fw-req { color: #c0392b; font-weight: bold; }
.of-submit { text-align: center; margin-top: 24px; }
.of-submit .order-btn { padding: 12px 40px; font-size: 105%; }

/* 確認画面 */
.confirm-box { margin: 22px auto 0; border-top: 1px solid #dcdcdc; }
.cf-row { display: flex; flex-wrap: wrap; margin: 0; padding: 14px 4px; border-bottom: 1px solid #dcdcdc; text-align: left; }
.cf-row dt { flex: 0 0 34%; font-weight: bold; font-size: 93%; color: #444; }
.cf-row dd { flex: 1 1 60%; margin: 0; word-break: break-all; }
.cf-actions { display: flex; justify-content: center; align-items: center; gap: 20px; flex-wrap: wrap; margin-top: 26px; }
.cf-actions p { margin: 0; }
.link-back { color: #235529; text-decoration: underline; }
@media screen and (max-width: 600px) {
  .os-photo { width: 84px; }
  .cf-row dt { flex: 0 0 100%; margin-bottom: 4px; }
  .cf-row dd { flex: 1 1 100%; }
}

/* 完了画面 */
.thanks-box { text-align: center; padding: 20px 0; }
.thanks-box .desc-h3 { text-align: center; }
.thanks-tel { display: inline-block; margin: 20px auto 0; }
.thanks-tel p { text-align: center; }
.thanks-home { text-align: center; }

/* ===== 問い合わせフォーム 追加分 ===== */
.floral-steps.steps3 { max-width: 480px; }
.fw-note-c { color: #c0392b; font-weight: bold; margin-top: 8px; }
.inquiry-tel { margin: 18px auto 0; padding: 16px; text-align: center; background: #f4fbec; border: 1px solid #d5e8c3; border-radius: 4px; }
.inquiry-tel p { margin: 0; line-height: 1.7; }
.of-row select {
  width: 100%; padding: 9px 12px; border: 1px solid #ccc; border-radius: 4px;
  font-size: 100%; box-sizing: border-box; font-family: inherit; background: #fff;
}
.of-row select:focus { outline: none; border-color: #84bc54; box-shadow: 0 0 0 2px rgba(132,188,84,0.2); }
.of-radio { display: inline-block; margin-right: 20px; cursor: pointer; }
.of-radio input { margin-right: 5px; }
.of-privacy { text-align: center; margin-top: 20px; font-size: 92%; }
.of-privacy a { color: #235529; text-decoration: underline; }

/* ===== 施行例 グリッド微調整 ===== */
.form-grid { margin-top: 10px; }
.form-grid .ph-item img { width: 100%; height: auto; border: 3px double #dcdcdc; box-sizing: border-box; }
.form-hero { margin-top: 24px; }

/* ===== テキスト主体ページ（プライバシー・リンク・推奨環境・共通資産） ===== */
.doc-body { text-align: left; max-width: 860px; margin: 0 auto; }
.doc-body h3 { text-align: left; font-size: 116%; color: #235529; margin: 32px 0 12px; padding-left: 12px; border-left: 4px solid #84bc54; }
.doc-body h3:first-child { margin-top: 0; }
.doc-body p { text-align: left; line-height: 30px; margin: 0 0 16px; }
.doc-body ul { margin: 0 0 16px; padding-left: 1.4em; }
.doc-body ul li { line-height: 28px; list-style: disc; margin-bottom: 6px; }
.doc-body ol { margin: 0 0 16px; padding-left: 1.6em; }
.doc-body ol li { line-height: 28px; list-style: decimal; margin-bottom: 6px; }
.doc-body .doc-date { text-align: right; margin-top: 30px; font-size: 92%; color: #666; }
.doc-body dl.doc-def { margin: 0 0 16px; }
.doc-body dl.doc-def dt { font-weight: bold; margin-top: 14px; }
.doc-body dl.doc-def dd { margin: 4px 0 0; line-height: 28px; }

/* ===== リンク集 ===== */
.linkcat-title {
  text-align: left; color: #fff; font-size: 106%;
  margin: 0 0 16px; padding: 8px 16px;
  background: #235529; border-radius: 3px;
}
.linkcat-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px 30px; margin: 0; padding: 0; list-style: none; }
.linkcat-list li { line-height: 28px; }
.linkcat-list li a { color: #333; text-decoration: none; }
.linkcat-list li a:hover { color: #235529; text-decoration: underline; }
.linkcat-list .ya { margin-right: 6px; }
@media screen and (max-width: 600px) {
  .linkcat-list { grid-template-columns: 1fr; }
}

/* ===== 斎場個別ページ ===== */
.hall-place { text-align: center; color: #235529; font-weight: bold; margin: 0 0 16px; letter-spacing: 1px; }
.hall-grid .ph-item { text-align: center; }
.hall-grid .ph-item img { width: 100%; height: auto; border: 3px double #dcdcdc; box-sizing: border-box; }
.hall-cap { margin: 6px 0 0; font-size: 92%; }
.hall-detail { margin: 0 0 18px; }
.hall-detail dt { font-weight: bold; color: #235529; margin-bottom: 4px; }
.hall-detail dt::before { content: "◆ "; }
.hall-detail dd { margin: 0; line-height: 28px; }
.hall-address { text-align: center; margin: 0 auto 20px; }
.hall-address p { line-height: 1.8; }
.hall-access { margin: 0 0 18px; }
.hall-access dt { font-weight: bold; color: #235529; margin-bottom: 6px; }
.hall-access dd { margin: 0; line-height: 28px; }
.hall-access .mark { color: #84bc54; margin-right: 4px; }
.hall-access-body { max-width: 760px; }

/* ===== 供花 複数選択（チェック＋個数） ===== */
.fw-item.is-selected { border-color: #84bc54; box-shadow: 0 0 0 2px rgba(132,188,84,0.25); }
.fw-select { display: flex; align-items: center; justify-content: center; gap: 12px; flex-wrap: wrap; margin-top: 6px; }
.fw-check { display: inline-flex; align-items: center; gap: 5px; cursor: pointer; font-weight: bold; color: #235529; }
.fw-check input { width: 18px; height: 18px; cursor: pointer; }
.fw-qty { display: inline-flex; align-items: center; gap: 5px; font-size: 92%; }
.fw-qty-label { color: #666; }
.fw-qty-input { width: 56px; padding: 5px 6px; border: 1px solid #ccc; border-radius: 4px; text-align: center; font-size: 100%; font-family: inherit; }
.fw-qty-input:disabled { background: #f0f0f0; color: #bbb; }

/* カートバー */
.fw-cart-bar { text-align: center; margin: 26px auto 0; padding: 20px; background: #f4fbec; border: 1px solid #d5e8c3; border-radius: 4px; }
.fw-cart-count { margin: 0 0 12px; font-weight: bold; color: #235529; font-size: 108%; }
.fw-cart-btn { margin: 0; }
.fw-cart-btn .order-btn:disabled { background: #b7c9ad; cursor: not-allowed; }
.fw-cart-hint { margin: 10px 0 0; font-size: 88%; color: #c0392b; }

/* ご注文の品（複数行リスト） */
.os-list { margin: 0 auto; }
.os-line { display: flex; align-items: center; gap: 16px; padding: 12px 0; border-bottom: 1px dashed #d5e8c3; }
.os-line:last-child { border-bottom: none; }
.os-line .os-photo { width: 88px; height: auto; border: 3px double #dcdcdc; flex: 0 0 auto; }
.os-line .os-text { flex: 1 1 auto; text-align: left; }
.os-line .os-name { margin: 0 0 4px; font-weight: bold; }
.os-line .os-price { margin: 0; color: #c0392b; font-size: 96%; }
.os-line .os-price .tax { font-size: 76%; color: #666; }
.os-sub { margin: 0; flex: 0 0 auto; font-weight: bold; color: #c0392b; font-size: 106%; }
.os-total { text-align: right; margin: 14px 0 0; font-size: 110%; }
.os-total strong { color: #c0392b; font-size: 118%; }
.os-total .tax { font-size: 74%; color: #666; }
@media screen and (max-width: 600px) {
  .os-line { flex-wrap: wrap; gap: 10px; }
  .os-line .os-photo { width: 64px; }
  .os-line .os-text { flex: 1 1 60%; }
  .os-sub { flex: 1 1 100%; text-align: right; }
  .os-total { text-align: right; }
}

/* ===== 共通資産ページ（辞典・挨拶・忌日計算） ===== */
.note-lead { margin-top: 28px; }
/* 葬儀辞典 */
.dict-list dt { font-weight: bold; color: #235529; margin-top: 14px; }
.dict-list dd { margin: 4px 0 0; line-height: 28px; }
/* 挨拶文例 */
.aisatsu-ex {
  background: #f7f7f2; border-left: 4px solid #84bc54;
  padding: 16px 20px; margin: 0 0 20px; line-height: 32px;
}
/* 忌日・年忌法要計算 */
.kinichi-form {
  display: flex; align-items: center; justify-content: center; gap: 12px;
  flex-wrap: wrap; margin: 24px auto; padding: 24px;
  background: #f4fbec; border: 1px solid #d5e8c3; border-radius: 4px;
}
.kinichi-form label { font-weight: bold; color: #235529; }
.kinichi-form input[type="date"] {
  padding: 9px 12px; border: 1px solid #ccc; border-radius: 4px;
  font-size: 100%; font-family: inherit;
}
.kinichi-note { text-align: center; }
.kinichi-result { margin-top: 24px; }
.kinichi-table { width: 100%; border-collapse: collapse; margin: 12px auto 28px; }
.kinichi-table th, .kinichi-table td { border: 1px solid #dcdcdc; padding: 11px 14px; text-align: left; }
.kinichi-table th {
  width: 38%; background: #eef7e2; font-weight: bold; color: #235529;
}
.kinichi-table .yomi { display: block; font-size: 78%; color: #888; font-weight: normal; margin-top: 2px; }
@media screen and (max-width: 600px) {
  .kinichi-form { flex-direction: column; align-items: stretch; }
  .kinichi-table th { width: 44%; }
  .kinichi-table th, .kinichi-table td { padding: 9px 8px; font-size: 92%; }
}

/* ===== 共通資産ページ 見た目強化 ===== */
.asset-lead-box {
  max-width: 860px; margin: 20px auto 8px; padding: 18px 24px;
  background: #f4fbec; border: 1px dashed #84bc54; border-radius: 6px;
}
.asset-lead-box p { text-align: center; line-height: 30px; margin: 0; }
/* 番号付き見出し（エンディングノート） */
.asset-h3 { display: flex; align-items: center; gap: 10px; }
.asset-num {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 38px; height: 38px; border-radius: 50%;
  background: #84bc54; color: #fff; font-size: 88%; font-weight: bold;
}
/* タグ風見出し（挨拶・忌日・辞典行） */
.asset-tag { border-left: none !important; padding-left: 0 !important; }
.asset-tag::before {
  content: ""; display: inline-block; width: 10px; height: 22px;
  background: #84bc54; border-radius: 2px; margin-right: 10px; vertical-align: middle;
}
.asset-gyo {
  border-left: none !important; padding: 6px 16px !important; color: #fff !important;
  background: #235529; border-radius: 3px; font-size: 104% !important;
}
/* アイコン見出し（マナー） */
.asset-icon-cloth::before, .asset-icon-money::before,
.asset-icon-hand::before, .asset-icon-heart::before {
  content: ""; display: inline-block; width: 24px; height: 24px; margin-right: 8px;
  vertical-align: middle; background: #84bc54;
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-position: center; mask-position: center;
  border-radius: 4px;
}
/* チェックリスト */
.asset-check { list-style: none; padding-left: 0; }
.asset-check li { position: relative; padding-left: 28px; line-height: 28px; margin-bottom: 8px; }
.asset-check li::before {
  content: "\2714"; position: absolute; left: 0; top: 0;
  color: #84bc54; font-weight: bold;
}
/* ステップリスト（お焼香手順） */
.asset-step { counter-reset: step; list-style: none; padding-left: 0; }
.asset-step li { position: relative; padding-left: 40px; line-height: 28px; margin-bottom: 12px; }
.asset-step li::before {
  counter-increment: step; content: counter(step);
  position: absolute; left: 0; top: 0;
  width: 26px; height: 26px; border-radius: 50%;
  background: #235529; color: #fff; font-size: 84%;
  display: flex; align-items: center; justify-content: center;
}
@media screen and (max-width: 600px) {
  .asset-num { min-width: 32px; height: 32px; }
}

/* ===== お葬式見積フォーム ===== */
.estimate-form .of-hint { font-size: 90%; color: #235529; text-align: left; margin: 0 0 8px; }
.of-sublabel { display: block; text-align: left; font-size: 92%; margin: 10px 0 4px; font-weight: bold; }
.of-eg { font-size: 84%; color: #888; font-weight: normal; margin-left: 8px; }
.estimate-form select {
  width: 100%; padding: 9px 12px; border: 1px solid #ccc; border-radius: 4px;
  font-size: 100%; box-sizing: border-box; font-family: inherit; background: #fff;
}
.estimate-form select:focus { outline: none; border-color: #84bc54; box-shadow: 0 0 0 2px rgba(132,188,84,0.2); }
/* 参列者数 */
.of-guests { text-align: left; }
.og-group { font-weight: bold; color: #235529; margin: 10px 0 6px; }
.og-line { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
.og-label { flex: 0 0 88px; font-size: 93%; }
.og-line select { flex: 1 1 auto; }
/* お客様情報 アコーディオン */
.customer-info { margin-top: 26px; padding: 20px; background: #f4fbec; border: 1px solid #d5e8c3; border-radius: 6px; }
.ci-head { font-weight: bold; color: #235529; font-size: 108%; margin: 0 0 14px; text-align: left; }
.ci-detail { animation: ciFade 0.25s ease; }
@keyframes ciFade { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
.ci-close { text-align: center; margin: 6px 0 0; }
.ci-close span { display: inline-block; padding: 6px 20px; color: #235529; font-size: 92%; cursor: pointer; border: 1px solid #84bc54; border-radius: 20px; background: #fff; }
.ci-close span:hover { background: #eef7e2; }

/* ===== 地図・アクセス ===== */
.map-embed { position: relative; width: 100%; max-width: 860px; margin: 8px auto 30px; padding-bottom: 56.25%; height: 0; overflow: hidden; border: 1px solid #dcdcdc; }
.map-embed iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
.map-info { max-width: 860px; margin: 0 auto; }
.map-dl { display: grid; grid-template-columns: 160px 1fr; gap: 0; margin: 0; border-top: 1px solid #dcdcdc; }
.map-dl dt { padding: 13px 16px; background: #eef7e2; font-weight: bold; color: #235529; border-bottom: 1px solid #dcdcdc; }
.map-dl dd { padding: 13px 16px; margin: 0; text-align: left; border-bottom: 1px solid #dcdcdc; }
.map-dl dd a { color: #235529; }
.map-free { font-weight: bold; font-size: 112%; }
.map-cta { text-align: center; margin-top: 28px; }
.map-cta .btn-line { display: inline-block; margin: 0 10px; }
@media screen and (max-width: 600px) {
  .map-embed { padding-bottom: 75%; }
  .map-dl { grid-template-columns: 100px 1fr; }
  .map-dl dt, .map-dl dd { padding: 10px 8px; font-size: 92%; }
  .map-cta .btn-line { display: block; margin: 10px 0; }
}
.hp-field { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }