/* 祈願祭（/kitougan/）。Figma「天社宮WEB」の「祈願祭」画面に合わせる（四季の会のページと同じ作り）。
   地紋の背景と申込フォームのカードは onmyodo-forms.css、文字サイズは onmyodo-typography.css に任せる。 */
.p-kigan {
  --kigan-ink: #1a1a1a;
  --kigan-heading: #27211f;
  --kigan-line: #080d1b;
  --kigan-accent: #bf3823;
  --kigan-soft: rgba(226, 226, 224, .35);
  padding: 0 20px 120px;
  color: var(--kigan-ink);
  font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
}

.p-kigan p { margin: 0; }

/* 「お申し込みへ」などで飛んだ見出しが、固定ヘッダーの下に隠れないように（四季の会と同じ） */
.p-kigan [id] { scroll-margin-top: 120px; }

/* ---------- いちばん上の線画（位置は Figma の幅1000×369に対する割合） ---------- */
.p-kigan__hero {
  position: relative;
  width: min(1000px, 100%);
  aspect-ratio: 1000 / 369;
  margin: 53px auto 0;
}

.p-kigan__hero-art {
  position: absolute;
  display: block;
  height: auto;
}

.p-kigan__hero-art--cloud-left { left: 0; top: .55%; width: 37.96%; }
.p-kigan__hero-art--seimei { left: 10.01%; top: 43.44%; width: 25.96%; }
.p-kigan__hero-art--cloud-right { left: 63.69%; top: 0; width: 36.31%; }

.p-kigan__hero-title {
  position: absolute;
  left: 49.8%;
  top: 14.63%;
  width: 4.4%;
  margin: 0;
}

.p-kigan__hero-title img { display: block; width: 100%; height: auto; }

/* Figma では線画の枠（幅1000）が画面の中央より20px左にあり、題字だけが画面の中央にある。
   枠を中央に置くと題字が右へずれるので、PC では枠ごと 2%（1000px で 20px）左へ寄せて Figma の位置に合わせる */
@media screen and (min-width: 768px) {
  .p-kigan__hero { transform: translateX(-2%); }
}

/* 解除の儀（Figma「解除の儀」）：同じ 1000×369 の枠に、御幣を持つ晴明公と縦書きの題字「解除の儀」 */
.p-kigan--yaku .p-kigan__hero-art--cloud-left { left: 0; top: .62%; width: 27.64%; }
.p-kigan--yaku .p-kigan__hero-art--seimei { left: 9.2%; top: 35.85%; width: 27.66%; }
.p-kigan--yaku .p-kigan__hero-art--cloud-right { left: 63.68%; top: 0; width: 36.32%; }

/* 雲は左右にゆっくり漂う（2026-10-25 宮の指示。祈願祭・解除の儀とも。由緒・御祭神の雲と同じ動き）。動きを減らす設定の画面では動かさない。
   右の雲の画像には北斗七星も描かれているので、右は画像の中（hero-cloud-right.svg の class="cloud"）で雲だけを動かし、星は動かさない */
.p-kigan__hero-art--cloud-left { animation: kigan-cloud-left 9s ease-in-out infinite alternate; }

@keyframes kigan-cloud-left {
  from { transform: translate(-8px, 0); }
  to   { transform: translate(8px, -2px); }
}

@media (prefers-reduced-motion: reduce) {
  .p-kigan__hero-art--cloud-left { animation: none; }
}
.p-kigan--yaku .p-kigan__hero-title { top: 26.59%; }

/* ---------- 各セクション ---------- */
.p-kigan__section {
  max-width: 1100px;
  margin: 88px auto 0;
}

.p-kigan__section + .p-kigan__section { margin-top: 158px; }

.p-kigan__heading {
  margin: 0 0 53px;
  padding: 32px 0;
  border-top: .5px solid var(--kigan-line);
  border-bottom: .5px solid var(--kigan-line);
  color: var(--kigan-heading);
  font-weight: 500;
  letter-spacing: .1em;
  text-align: center;
}

.p-kigan__text {
  max-width: 910px;
  margin: 0 auto !important;
  text-align: center;
}

/* 段落が続く本文は、段落の間をあける */
.p-kigan__text > p + p,
.p-kigan__text + .p-kigan__text { margin-top: 1.6em !important; }
.p-kigan :is(.p-kigan__text, .p-kigan__box-text) a { text-decoration: underline; text-underline-offset: .25em; }

/* 解除の儀：次回のカードの注意書きは中央そろえ（一文だけのため） */
.p-kigan--yaku .p-kigan__next-notes { text-align: center; }

/* 申込フォーム：御初穂料（合計）の上に線を引き、入力欄と分ける */
.p-kigan__form #total-amount-section {
  margin-top: 32px !important;
  padding-top: 32px;
  border-top: .5px solid rgba(26, 26, 26, .15);
}

/* ---------- 次回の祈願祭 ---------- */
.p-kigan__next {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 22px;
  max-width: 830px;
  margin: 58px auto 0;
  padding: 32px 40px;
  border: .5px solid var(--kigan-ink);
  border-radius: 10px;
}

.p-kigan__next-title {
  color: var(--kigan-heading);
  font-weight: 500;
  letter-spacing: 2.4px;
  text-align: center;
}

.p-kigan__next-date {
  width: 100%;
  padding: 12px 16px;
  border-radius: 6px;
  background: #fff;
  color: var(--kigan-heading);
  font-weight: 600;
  letter-spacing: 2.4px;
  text-align: center;
}

.p-kigan__next-notes {
  width: 100%;
  color: var(--kigan-accent);
  line-height: 1.65;
}

/* フォームのカードの中では、地の色を変え角を少し小さく（Figma どおり） */
.p-kigan__next--in-form {
  margin: 0 0 40px;
  border-radius: 6px;
}

.p-kigan__next--in-form .p-kigan__next-date { background: var(--kigan-soft); }

.p-kigan__btn-wrap {
  margin-top: 59px !important;
  text-align: center;
}

/* ---------- 祈願の種類：3列のカード ---------- */
.p-kigan__kinds {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px 32px;
  margin: 40px 0 0;
  padding: 0;
  list-style: none;
}

.p-kigan__kind {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 24px 16px;
  border-radius: 6px;
  background: #fff;
  text-align: center;
}

.p-kigan__kind-name {
  font-weight: 500;
  line-height: 1.2;
}

.p-kigan__kind-mark { color: var(--kigan-accent); }

.p-kigan__kind-fuda { line-height: 1.3; }

.p-kigan__kind-price { line-height: 1.3; }


/* ---------- 授与品・厄祓いの囲み ---------- */
.p-kigan__box {
  max-width: 910px;
  margin: 53px auto 0;
  padding: 32px 40px;
  border-radius: 10px;
  background: var(--kigan-soft);
}

.p-kigan__box + .p-kigan__box { margin-top: 32px; }

.p-kigan__box-title {
  margin: 0 0 14px;
  padding: 0;
  border: 0;
  color: var(--kigan-heading);
  font-weight: 500;
  letter-spacing: 2.4px;
  text-align: left;
}

.p-kigan__box-text { line-height: 1.65; }

/* 番号付きの手順（解除の儀の「お申込みから授与品受け取りまでの流れ」） */
.p-kigan__steps { margin: 0; padding: 0 0 0 21px; list-style: decimal; }
.p-kigan__steps li { padding-left: .2em; }
.p-kigan__steps li + li { margin-top: 1.2em; }
.p-kigan__steps li::marker { font-weight: 500; }
.p-kigan__step-title { display: block; margin-bottom: .2em; color: var(--kigan-heading); font-weight: 500; letter-spacing: .05em; }
.p-kigan__step-text { display: block; }

.p-kigan__box--yaku,
.p-kigan__box--row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
}

.p-kigan__box--yaku :is(.p-kigan__box-title, .p-kigan__box-text) { color: var(--kigan-accent); }
.p-kigan__box--yaku .c-btn,
.p-kigan__box--row .c-btn { flex-shrink: 0; }
.p-kigan__box--row .c-btn { min-width: 262px; }
/* 各言語版などで長いボタンの文字は折り返し、ボタンを横に広げすぎない（2026-10-25 宮の指示。左の文が細くならないように）。日本語の短いボタンは1行のまま */
.p-kigan__box--yaku > :first-child,
.p-kigan__box--row > :first-child { flex: 1 1 auto; min-width: 0; }
.p-kigan__box--yaku .c-btn,
.p-kigan__box--row .c-btn { flex-shrink: 0; min-width: 262px; max-width: 340px; padding-top: 12px; padding-bottom: 12px; white-space: normal; }
.p-kigan__box--yaku .c-btn span,
.p-kigan__box--row .c-btn span { white-space: normal; text-align: center; line-height: 1.6; }

/* ---------- 申込フォーム（カードの中身は onmyodo-forms.css） ---------- */
.p-kigan__section--apply .p-form-form__wrap {
  width: auto;
  max-width: none;
  margin: 0;
  padding: 0;
}

.l-main .p-kigan form.p-kigan__form:has(.p-form-table) {
  width: auto;
  max-width: 910px;
  margin-right: auto !important;
  margin-left: auto !important;
  margin-top: 73px !important;
  margin-bottom: 0 !important;
  padding: 42px 40px 56px !important;
}

/* ---------- スマホ ---------- */
@media screen and (max-width: 767px) {
  .p-kigan { padding: 0 16px 72px; }
  /* スマホでは題字が小さくなりすぎるので、線画の場所を縦に広げ、題字を大きくする */
  .p-kigan__hero { width: 100%; margin-top: 24px; aspect-ratio: 1000 / 600; }
  .p-kigan__hero-title { left: 50%; top: 6%; width: 26px; transform: translateX(-50%); }
  .p-kigan__hero-art--seimei { top: 52%; }
  .p-kigan--yaku .p-kigan__hero-title { top: 10%; width: 30px; }
  .p-kigan--yaku .p-kigan__hero-art--seimei { top: 46%; }
  .p-kigan .p-kigan__hero-title--text { top: 6%; transform: translateX(-50%); letter-spacing: .2em; }
  .tensha-lang-en .p-kigan .p-kigan__hero-title--text { height: 40%; letter-spacing: .04em; }
  .p-kigan--ml .tensha-tx .p-kigan__heading { margin-bottom: 28px; }
  .p-kigan--ml .tensha-tx .p-kigan__box { margin-top: 32px; padding: 24px 20px; }
  .p-kigan__section { margin-top: 56px; }
  .p-kigan__section + .p-kigan__section { margin-top: 88px; }
  .p-kigan__heading { margin-bottom: 28px; padding: 22px 0; }
  .p-kigan__text { text-align: left; }
  .p-kigan__text br,
  .p-kigan__box-text br { display: none; }
  .p-kigan__next { margin-top: 32px; padding: 24px 16px; }
  .p-kigan__btn-wrap { margin-top: 32px !important; }
  .p-kigan__kinds { grid-template-columns: 1fr; gap: 10px; margin-top: 28px; }
  .p-kigan__kind { padding: 16px 12px; gap: 6px; }
  .p-kigan__next-date { padding: 12px 6px; letter-spacing: 0; }
  .p-kigan__box { margin-top: 32px; padding: 24px 20px; }
  .p-kigan__box + .p-kigan__box { margin-top: 16px; }
  :is(.p-kigan__box--yaku, .p-kigan__box--row) { flex-direction: column; align-items: stretch; gap: 20px; }
  :is(.p-kigan__box--yaku, .p-kigan__box--row) .c-btn { align-self: center; }
  /* 各言語版のスマホでは長いボタンを箱の幅いっぱいにして、折り返しを少なくする（日本語版は前のまま） */
  .p-kigan--ml :is(.p-kigan__box--yaku, .p-kigan__box--row) .c-btn { width: 100%; max-width: none; }
  .l-main .p-kigan form.p-kigan__form:has(.p-form-table) {
    margin-top: 40px !important;
    padding: 20px 16px 32px !important;
  }
  .p-kigan__next--in-form { margin-bottom: 24px; padding: 20px 12px; }
}

/* お名前欄の上の注記（誰の名前を書くか）。入力欄の前に読めるよう、上に置いて下に間をあける */
.l-main form .p-form-table .p-kigan__field-note { margin: 0 0 12px; }

/* ---------- 文字サイズ（Figma「祈願祭」画面の値） ----------
   文字サイズは typography 側が @layer の中で !important で決めているため、
   それより先に読み込むこのファイルでレイヤーを作って上書きする（ボタンと同じ方法）。 */
@layer onmyodo-kigan {
  body .p-kigan .p-kigan__heading { font-size: 2.4rem !important; line-height: 26.25px !important; }
  /* 各言語版の箱の中のボタンは文字が長いので、字の間を詰めて折り返しを少なくする */
  body .p-kigan--ml :is(.p-kigan__box--yaku, .p-kigan__box--row) .c-btn,
  body .p-kigan--ml :is(.p-kigan__box--yaku, .p-kigan__box--row) .c-btn span { letter-spacing: .02em !important; }
  /* 確認・奉納・完了の画面：見出しは申込みページの罫線の見出しと同じ大きさ、表は日本語版の確認画面と同じ（項目名 18px・内容 16px） */
  body .p-kigan--step .p-form-head .c-title span { font-size: 2.4rem !important; line-height: 26.25px !important; }
  body .p-kigan--step .tensha-tx--complete h2 { font-size: 2.4rem !important; line-height: 26.25px !important; }
  body .p-kigan--step .tensha-tx--complete :is(p, .tensha-tx__notice) { font-size: 1.7rem !important; line-height: 33.6px !important; }
  body .p-kigan--step :is(.p-form-head .p-form-form__wrap, .tensha-tx__lead) { font-size: 1.7rem !important; line-height: 33.6px !important; }
  body .p-kigan--step .tensha-tx__card .tensha-tx__table th { font-size: 1.8rem !important; line-height: 30px !important; }
  body .p-kigan--step .tensha-tx__card :is(.tensha-tx__table td, .tensha-tx__total, .p-agree label, #card-errors) { font-size: 1.6rem !important; line-height: 30px !important; }
  body .p-kigan :is(.p-kigan__text, .p-kigan__text > p) { font-size: 1.7rem !important; line-height: 33.6px !important; }
  body .p-kigan .p-kigan__next-title,
  body .p-kigan .p-kigan__box-title { font-size: 1.8rem !important; line-height: 26.25px !important; }
  body .p-kigan .p-kigan__next-date { font-size: 2.2rem !important; line-height: 26.25px !important; }
  body .p-kigan .p-kigan__steps .p-kigan__step-title { font-size: 1.6rem !important; line-height: 1.6 !important; }
  body .p-kigan :is(.p-kigan__next-notes, .p-kigan__next-notes *, .p-kigan__box-text, .p-kigan__steps li) { font-size: 1.5rem !important; line-height: 23px !important; }
  /* フォーム内の赤い注釈と、確認ボタン上の案内は 15px */
  body .p-kigan .p-kigan__form .p-form-item__caution2,
  body .p-kigan .p-kigan__form .p-kigan__form-hint,
  body .p-kigan #total-amount-view.is-prompt { font-size: 1.5rem !important; line-height: 1.7 !important; }
  body .p-kigan .p-kigan__kind-name { font-size: 1.8rem !important; }
  body .p-kigan .p-kigan__kind-fuda { font-size: 1.6rem !important; }
  body .p-kigan .p-kigan__kind-price { font-size: 1.6rem !important; }
  /* 各言語版の題字（文字の縦書き） */
  body .p-kigan .p-kigan__hero-title--text { font-size: 3.2rem !important; line-height: 1.4 !important; }
  body.tensha-lang-en .p-kigan .p-kigan__hero-title--text { font-size: 2.4rem !important; line-height: 1.3 !important; }
  /* 各言語版の申込みフォーム（inc/tensha-kigan-ml-form.php）。日本語版のフォームの中の指定（page-kitougan.php の #kitou-form）と同じ大きさ */
  body .p-kigan .p-kigan__form--ml :is(.p-form-table td p, .p-form-item__label, .p-form-item__caution2, .c-input__wrap label, #total-amount-section h3) { font-size: 1.8rem !important; font-weight: 300; line-height: 3rem !important; letter-spacing: 0; }
  body .p-kigan .p-kigan__form--ml .p-form-item__label { font-weight: 500; }
  body .p-kigan .p-kigan__form--ml #total-amount-section h3 { font-size: 2rem !important; font-weight: 500; line-height: 1.7 !important; }
  body .p-kigan .p-kigan__form--ml .p-form-item__label span { font-size: 1.2rem !important; line-height: 1.5 !important; }
  body .p-kigan .p-kigan__form--ml :is(.c-input, .c-select select, .c-radio label, .unit) { font-size: 1.6rem !important; line-height: 2.4rem !important; letter-spacing: 0; }
  body .p-kigan--ml .tensha-tx__error { font-size: 1.5rem !important; line-height: 1.7 !important; }
  /* 各言語版の灰色の箱（お届け・形代の手順など手続きの文）は、前の 16px より小さくしない */
  body .p-kigan--ml .tensha-tx .p-kigan__box-text { font-size: 1.6rem !important; line-height: 1.75 !important; }
  @media screen and (max-width: 767px) {
    body .p-kigan .p-kigan__hero-title--text, body.tensha-lang-en .p-kigan .p-kigan__hero-title--text { font-size: 1.6rem !important; line-height: 1.3 !important; }
    body .p-kigan .p-kigan__form--ml :is(.p-form-table td p, .p-form-item__label, .c-input__wrap label, #total-amount-section h3) { font-size: 17px !important; line-height: 1.9 !important; }
    body .p-kigan .p-kigan__form--ml .p-form-item__label span { font-size: 13px !important; }
    body .p-kigan .p-kigan__form--ml :is(.c-input, .c-select select, .c-radio label, .unit) { font-size: 16px !important; line-height: 1.5 !important; }
  }
}

/* ---------- 各言語版の申込みページ（template-multilingual-transaction.php。2026-10-25）----------
   日本語版と同じ線画・罫線の見出し・カードにする。申込みフォームは日本語版と同じ部品で組み（inc/tensha-kigan-ml-form.php）、
   テンプレートの中の古い指定（白地・灰色の項目名・角の小さい入力欄）をここで打ち消す */
.p-kigan .p-kigan__hero-title--text {
  left: 52%;
  top: 50%;
  width: auto;
  color: var(--kigan-heading);
  font-weight: 500;
  letter-spacing: .3em;
  white-space: nowrap;
  writing-mode: vertical-rl;
  transform: translate(-50%, -50%);
}
/* 英語は字を倒して縦に並べ、長い題は2列に折り返して線画の高さに収める */
.tensha-lang-en .p-kigan .p-kigan__hero-title--text { height: 84%; letter-spacing: .04em; white-space: normal; text-align: center; }
.tensha-lang-ko .p-kigan--ml { word-break: keep-all; }

.p-kigan--ml .tensha-tx { padding: 0; background: none; color: var(--kigan-ink); }
.p-kigan--ml .tensha-tx__inner { max-width: none; }
.p-kigan--ml .tensha-tx .p-kigan__heading { margin: 0 0 53px; }
.p-kigan--ml .tensha-tx .p-kigan__text { max-width: 910px; margin: 0 auto !important; }
.p-kigan--ml .tensha-tx .p-kigan__box { max-width: 910px; margin: 53px auto 0; padding: 32px 40px; border: 0; border-radius: 10px; background: var(--kigan-soft); }
.p-kigan--ml .tensha-tx__error { max-width: 910px; margin: 40px auto 0; }

/* 各言語版の申込みフォームは日本語版と同じ部品（.p-form-table・.c-input など）で組むので、ここで足す指定はない（inc/tensha-kigan-ml-form.php） */

/* 確認ボタン上の案内（祈願の種類が未選択のとき・必須の項目に漏れがあるとき）は朱の文字 */
#total-amount-view.is-prompt,
.p-kigan__form-hint { color: var(--kigan-accent); font-weight: 400; }
.p-kigan__form-hint { margin: 4px 0 0 !important; text-align: center; }
.p-kigan__form-hint:empty { display: none; }

/* 入力に漏れがあるあいだの「確認へ進む」 */
.p-kigan__form .c-submit-btn:disabled { opacity: .4; cursor: not-allowed; }

/* 解除の儀のフォームに残る古い指定（姓・名の札を横並び用に幅2.8emで固定）が、縦並びでは高さになって間が空くため、祈願祭と同じに戻す */
.p-kigan__form .c-input__wrap--name-part label {
  flex: 0 1 auto !important;
  min-width: 0 !important;
  margin-right: 0 !important;
}

/* ---------- 確認・奉納・完了の画面（日本語版・各言語版。2026-10-25 宮の指示「確認画面などもデザイン反映」）----------
   申込みページと同じ線画の見出し（inc/tensha-kigan-step.php）の下に、罫線の見出し・本文・カード（onmyodo-forms.css の白いカード）を置く */
.p-kigan--step .p-form-head,
.p-kigan--step .p-form__contents { max-width: 1100px; margin: 88px auto 0; padding: 0; background: none; }
.p-kigan--step .p-form__contents { margin-top: 0; }
.p-kigan--step .p-form-head .l-pad,
.p-kigan--step .p-form__contents > .p-form-form__wrap { padding-right: 0; padding-left: 0; }
.p-kigan--step .p-form-head .c-title {
  margin: 0 0 40px !important;
  padding: 32px 0;
  border-top: .5px solid var(--kigan-line);
  border-bottom: .5px solid var(--kigan-line);
  color: var(--kigan-heading);
  text-align: center;
}
.p-kigan--step .p-form-head .c-title span { display: inline; font-weight: 500; letter-spacing: .1em; }
.p-kigan--step .p-form-head .c-title span::before,
.p-kigan--step .p-form-head .c-title span::after { content: none; display: none; }
.p-kigan--step .p-form-head .c-title + br,
.p-kigan--step .p-form-head .c-title + br + br { display: none; }
.p-kigan--step .p-form-head .p-form-form__wrap { max-width: 910px; margin: 0 auto 0 !important; }

/* 各言語の確認・奉納の段（template-multilingual-transaction.php の .tensha-tx--step） */
.p-kigan--step .tensha-tx--step { padding: 88px 0 0; background: none; color: var(--kigan-ink); }
.p-kigan--step .tensha-tx--step .tensha-tx__inner { max-width: 1100px; }
.p-kigan--step .tensha-tx--step h2.p-kigan__heading { margin: 0 0 40px; padding: 32px 0; }
.p-kigan--step .tensha-tx--step .tensha-tx__lead { max-width: 910px; margin: 0 auto; text-align: center; }
.p-kigan--step .tensha-tx__card { max-width: 910px; margin: 53px auto 0; padding: 54px 78px 56px; border-radius: 10px; background: rgba(255, 255, 255, .9); }
.p-kigan--step .tensha-tx__card .tensha-tx__table { border-top: 0; }
.p-kigan--step .tensha-tx__card .tensha-tx__table :is(th, td) { padding: 20px 0; border-bottom: .5px solid rgba(26, 26, 26, .15); background: none; }
.p-kigan--step .tensha-tx__card .tensha-tx__table th { width: 207px; padding-right: 24px; color: var(--kigan-ink); font-weight: 700; }
.p-kigan--step .tensha-tx__card .tensha-tx__total { margin: 32px 0 0; font-weight: 500; text-align: center; }
.p-kigan--step .tensha-tx__card .tensha-tx__actions { gap: 16px; margin-top: 32px; }
/* ボタンは日本語版の「訂正する」「奉納へ進む」と同じ（朱の塗りと、黒の線） */
.p-kigan--step .tensha-tx__card .tensha-tx__button { min-width: 215px; min-height: 66px; border: 1px solid #bf3823; border-radius: 8px; background: #bf3823; color: #fff; }
.p-kigan--step .tensha-tx__card .tensha-tx__button--secondary { border-color: #1a1a1a; background: transparent; color: #1a1a1a; }
.p-kigan--step .tensha-tx__card #card-errors { color: #bf3823; }
@media screen and (max-width: 767px) {
  .p-kigan--step .p-form-head,
  .p-kigan--step .tensha-tx--step { margin-top: 56px; padding-top: 0; }
  .p-kigan--step .p-form-head .c-title,
  .p-kigan--step .tensha-tx--step h2.p-kigan__heading { margin-bottom: 28px !important; padding: 22px 0; }
  .p-kigan--step .p-form-head .p-form-form__wrap,
  .p-kigan--step .tensha-tx--step .tensha-tx__lead { text-align: left; }
  .p-kigan--step .tensha-tx__card { margin-top: 32px; padding: 28px 20px 32px; }
  .p-kigan--step .tensha-tx__card .tensha-tx__table th { width: 100%; padding: 16px 0 4px; border-bottom: 0; }
  .p-kigan--step .tensha-tx__card .tensha-tx__table td { padding: 0 0 16px; }
  .p-kigan--step .tensha-tx__card .tensha-tx__button { width: 100%; }
}
/* 各言語の完了の段（tensha_tx_complete_section が日本語の完了画面の見出しの所に差し込む） */
.p-kigan--step .tensha-tx--complete { max-width: 1100px; margin: 88px auto 0; padding: 0; background: none; color: var(--kigan-ink); }
.p-kigan--step .tensha-tx--complete .tensha-tx__inner { max-width: none; }
.p-kigan--step .tensha-tx--complete h2 { margin: 0 0 40px; padding: 32px 0; border-top: .5px solid var(--kigan-line); border-bottom: .5px solid var(--kigan-line); color: var(--kigan-heading); font-weight: 500; letter-spacing: .1em; }
.p-kigan--step .tensha-tx--complete .tensha-tx__inner > :not(h2) { max-width: 910px; margin-right: auto; margin-left: auto; }
.p-kigan--step .tensha-tx--complete .tensha-tx__notice { border: 0; border-radius: 10px; background: var(--kigan-soft); }
.p-kigan--step .tensha-tx--complete .tensha-tx__button { min-width: 215px; min-height: 66px; margin-top: 32px; border: 1px solid #bf3823; border-radius: 8px; background: #bf3823; }
.p-kigan--step .tensha-tx--complete a:not(.tensha-tx__button) { color: #bf3823; text-decoration: underline; text-underline-offset: .25em; }
@media screen and (max-width: 767px) {
  .p-kigan--step .tensha-tx--complete { margin-top: 56px; }
  .p-kigan--step .tensha-tx--complete h2 { margin-bottom: 28px; padding: 22px 0; }
}
/* 各言語の奉納の段のカードの欄（template-multilingual-transaction.php の .p-kigan__pay-form）。日本語版の奉納画面（page-yakubarai-hounou.php の .StripeElement）と同じ枠 */
.p-kigan__pay-form .StripeElement { min-height: 0; padding: 15px !important; border: 1px solid rgba(128, 128, 128, .4) !important; border-radius: 0; background: #fff; }
.p-kigan__pay-form #card-errors { margin: 16px 0 0; color: #bf3823; font-weight: 700; text-align: center; }
.p-kigan__pay-form #card-errors:empty { display: none; }
/* 英語などは項目名が長く折り返すので、項目名は左にそろえ、必須の札を後ろに続ける */
.p-kigan--ml .p-kigan__pay-form .p-form-item__label { flex-wrap: wrap; justify-content: flex-start; gap: 4px 12px; text-align: left; }

/* ---------- 天壇奉賛（page-kifu.php。2026-10-29 Figma「天壇奉賛」node 650:59632）----------
   Figma にあるのは上の縦書きの題字と天壇の線画、罫線の見出しまで（題字の上端は上の帯から 73px、題字・線画・見出しの間は 66px）。
   その下は祈願祭の組み（.p-kigan）を使い、寄付だけの部分（金額の表・写真・左寄せの本文）をここで決める */
.p-kifu__hero { display: flex; flex-direction: column; align-items: center; gap: 66px; margin: 73px auto 0; }
.p-kifu__hero-title { margin: 0; line-height: 0; }
.p-kifu__hero-title img { display: block; width: 104px; height: auto; }
.p-kifu__hero-art { display: block; width: min(506px, 100%); height: auto; }
.p-kifu .p-kifu__hero + .p-kigan__section { margin-top: 66px; }
.p-kifu__photo { max-width: 910px; margin: 64px auto 48px; }
.p-kifu__photo img { display: block; width: 100%; height: auto; border-radius: 10px; }
.p-kifu .p-kifu__text { max-width: 860px; text-align: left; }
.p-kifu__sub { display: inline-block; margin-top: 8px; color: var(--kigan-heading); font-weight: 600; }
@media screen and (max-width: 767px) {
  .p-kifu__hero { gap: 32px; margin-top: 32px; }
  .p-kifu__hero-title img { width: 72px; }
  .p-kifu__hero-art { width: 86%; }
  .p-kifu .p-kifu__hero + .p-kigan__section { margin-top: 40px; }
  .p-kifu__photo { margin: 32px auto 28px; }
  .p-kifu .p-kifu__text br { display: inline; } /* 寄付の本文は段落の区切りを改行でしているので、スマホでも改行を残す */
}
@layer onmyodo-kigan {
  body .p-kifu .p-kifu__figure dt { font-size: 1.5rem !important; line-height: 1.6 !important; }
  body .p-kifu .p-kifu__figure dd { font-size: 1.8rem !important; line-height: 1.4 !important; }
  body .p-kifu .p-kifu__figure-num { font-size: 3.4rem !important; line-height: 1.2 !important; }
  body .p-kifu .p-kifu__figure--goal .p-kifu__figure-num { font-size: 2.4rem !important; }
  body .p-kifu :is(.p-kifu__asof, .p-kifu__unit) { font-size: 1.5rem !important; line-height: 1.6 !important; }
  body .p-kifu .p-kifu__unit strong { font-size: 1.8rem !important; }
  @media screen and (max-width: 767px) {
    body .p-kifu .p-kifu__figure-num { font-size: 2.8rem !important; }
    body .p-kifu .p-kifu__figure--goal .p-kifu__figure-num { font-size: 2rem !important; }
  }
  body .p-kifu .p-kifu__sub { font-size: 1.9rem !important; line-height: 1.6 !important; }
}
/* 天壇奉賛：郵便番号の欄のすぐ横に「検索」のボタン（2026-10-29 宮の指示「住所の検索ボタンは郵便番号横に配置して」）。
   ボタンはほかのフォームの線のボタンと同じ形（墨の線・角丸8px、押すと墨の塗り） */
.p-kifu__zip { display: flex; align-items: stretch; gap: 12px; }
.p-kifu__zip .c-input { flex: 0 1 180px; min-width: 0; }
.l-main .p-kifu .p-kifu__zip .p-form-addressSearch { display: inline-flex; align-items: center; justify-content: center; align-self: stretch; flex: 0 0 auto; height: auto; min-height: 4.4rem; margin: 0; padding: 0 20px; border: 1px solid #1a1a1a; border-radius: 8px; background: #fff; color: #1a1a1a; cursor: pointer; }
.l-main .p-kifu .p-kifu__zip .p-form-addressSearch:hover { background: #1a1a1a; color: #fff; }
.l-main .p-kifu .p-kifu__address2-note { color: #bf3823; } /* 建物名・部屋番号の注記は朱（お会計と同じ） */

/* 天壇奉賛の金額の組み（2026-10-29 宮の指示「もう少しわかりやすい、見やすい組み方に」）：
   白い札の中に、現在の御奉賛額（大きく）と目標額を左右に並べ、その下に進み具合の帯（朱）と日付。一口の額は札の下に一行で */
.p-kifu__progress { width: 100%; box-sizing: border-box; padding: 28px 32px 20px; border-radius: 8px; background: #fff; }
.p-kifu__figures { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px 24px; margin: 0; }
.p-kifu__figure dt { color: rgba(26, 26, 26, .6); font-weight: 400; }
.p-kifu__figure dd { margin: 4px 0 0; color: var(--kigan-heading); font-weight: 500; }
.p-kifu__figure-num { font-weight: 600; letter-spacing: .04em; }
.p-kifu__figure--goal { text-align: right; }
.p-kifu__figure--goal dd { color: rgba(26, 26, 26, .75); }
.p-kifu__bar { height: 10px; margin: 18px 0 0; overflow: hidden; border-radius: 999px; background: rgba(226, 226, 224, .9); }
.p-kifu__bar span { display: block; height: 100%; border-radius: inherit; background: var(--kigan-accent); }
.p-kifu__asof { margin: 10px 0 0 !important; color: rgba(26, 26, 26, .6); text-align: right; }
.p-kifu__unit { margin: 0 !important; color: var(--kigan-heading); text-align: center; letter-spacing: .06em; }
.p-kifu__unit strong { font-weight: 600; }
@media screen and (max-width: 767px) {
  .p-kifu__progress { padding: 20px 16px 16px; }
  .p-kifu__figures { flex-direction: column; align-items: stretch; gap: 12px; }
  .p-kifu__figure--goal { text-align: left; }
}
/* 各言語版の天壇奉賛：日本語版の説明の訳（template-multilingual-transaction.php の .tensha-tx__kifu-info。2026-10-29）。日本語版の本文と同じく左寄せ */
.p-kifu .tensha-tx__kifu-info { max-width: 860px; margin: 56px auto 0; text-align: left; }
.p-kifu .tensha-tx__kifu-info p { margin: 0 0 1.4em; line-height: 1.95; }
.p-kifu .tensha-tx__kifu-title { margin: 48px 0 20px; padding: 0 0 12px; border-bottom: .5px solid var(--kigan-ink); color: var(--kigan-heading); font-weight: 500; letter-spacing: .06em; }
.p-kifu .tensha-tx__kifu-info > .tensha-tx__kifu-title:first-child { margin-top: 0; }
.p-kifu .tensha-tx__kifu-sub { margin: 32px 0 12px; color: var(--kigan-heading); font-weight: 600; }
.p-kifu .tensha-tx__kifu-list { margin: 0 0 1.4em; padding-left: 1.4em; }
.p-kifu .tensha-tx__kifu-list li { margin: 0 0 .5em; line-height: 1.8; list-style: disc outside; }
@layer onmyodo-kigan {
  body .p-kifu .tensha-tx__kifu-info :is(p, li) { font-size: 1.7rem !important; line-height: 1.95 !important; }
  body .p-kifu .tensha-tx__kifu-title { font-size: 2rem !important; line-height: 1.5 !important; }
  body .p-kifu .tensha-tx__kifu-sub { font-size: 1.8rem !important; line-height: 1.5 !important; }
}
/* 各言語版の天壇奉賛の申込みのフォーム（template-multilingual-transaction.php の .tensha-tx__card 内の表）：日本語版のフォーム（.p-kigan__form）と同じ欄・必須の札・選択の矢印にそろえる（2026-10-29 宮「他言語でデザインが反映されてない箇所が多々ある」） */
.p-kifu.p-kigan--ml .tensha-tx__card :is(input[type=text], input[type=email], input[type=tel], input[type=number], input[type=date], select) { width: 100%; min-height: 45px; padding: 5px 8px; border: .5px solid var(--kigan-ink); border-radius: 10px; background-color: #fff; color: var(--kigan-ink); font: inherit; box-sizing: border-box; }
.p-kifu.p-kigan--ml .tensha-tx__card select { padding-right: 32px; -webkit-appearance: none; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%231a1a1a'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; background-size: 10px 6px; }
.p-kifu.p-kigan--ml .tensha-tx__card .tensha-tx__required { margin-left: 8px; padding: 0 4px; border-radius: 4px; background: var(--kigan-accent); color: #fff; font-weight: 500; line-height: 1.4; vertical-align: .1em; }
.p-kifu.p-kigan--ml .tensha-tx__card .tensha-tx__hint { color: var(--kigan-accent); }
.p-kifu.p-kigan--ml .tensha-tx__card .tensha-tx__optional-note { margin: 0 0 24px; color: var(--kigan-ink); }
.p-kifu.p-kigan--ml .tensha-tx__card .tensha-tx__privacy { justify-content: center; margin: 40px 0 0; }
.p-kifu.p-kigan--ml .tensha-tx__card .tensha-tx__privacy a { color: var(--kigan-accent); text-decoration: underline; text-underline-offset: .25em; }
/* 奉納の段の振込のご案内：完了の段と同じ灰色の箱 */
.p-kifu.p-kigan--ml .tensha-tx--step .tensha-tx__notice { max-width: 910px; margin: 53px auto 0; padding: 32px 40px; border: 0; border-radius: 10px; background: var(--kigan-soft); }
.p-kifu.p-kigan--ml .tensha-tx--step .tensha-tx__notice + form .tensha-tx__actions { margin-top: 40px; }
.p-kifu.p-kigan--ml .tensha-tx--step > .tensha-tx__inner > form .tensha-tx__button { min-width: 215px; min-height: 66px; border: 1px solid #bf3823; border-radius: 8px; background: #bf3823; color: #fff; }
.p-kifu.p-kigan--ml .tensha-tx--step > .tensha-tx__inner > form .tensha-tx__button--secondary { border-color: #1a1a1a; background: transparent; color: #1a1a1a; }
@media screen and (max-width: 767px) {
  .p-kifu.p-kigan--ml .tensha-tx--step .tensha-tx__notice { margin-top: 32px; padding: 24px 20px; }
  .p-kifu.p-kigan--ml .tensha-tx--step > .tensha-tx__inner > form .tensha-tx__button { width: 100%; }
}
@layer onmyodo-kigan {
  body .p-kifu.p-kigan--ml .tensha-tx__card .tensha-tx__required { font-size: 1.35rem !important; }
  body .p-kifu.p-kigan--ml .tensha-tx__card :is(input, select, .tensha-tx__privacy) { font-size: 1.6rem !important; line-height: 1.5 !important; }
  body .p-kifu.p-kigan--ml .tensha-tx__card .tensha-tx__hint { font-size: 1.4rem !important; line-height: 1.7 !important; }
  body .p-kifu.p-kigan--ml .tensha-tx--step .tensha-tx__notice { font-size: 1.6rem !important; line-height: 1.9 !important; }
}
/* 各言語の確認・申込みのカードの表：サイト全体の表の左右の線を消し、行の間の線だけにする（2026-10-29 宮「フォームの区切り線が変」） */
.p-kigan--step .tensha-tx__card .tensha-tx__table { border: 0; }
.p-kigan--step .tensha-tx__card .tensha-tx__table tr:last-child > :is(th, td) { border-bottom: 0; }
/* 各言語版の天壇奉賛：金額の箱と天壇の写真（日本語版の .p-kifu__summary・.p-kifu__photo と同じ。説明の上） */
.p-kifu .tensha-tx__kifu-summary { max-width: 910px; margin: 56px auto 0; }
.p-kifu .tensha-tx__kifu-summary + .p-kifu__photo { max-width: 910px; margin: 40px auto 0; }
@media screen and (max-width: 767px) {
  .p-kifu .tensha-tx__kifu-summary { margin-top: 32px; }
  .p-kifu .tensha-tx__kifu-summary + .p-kifu__photo { margin-top: 24px; }
}
/* ---------- 泰山府君本命属星祭・名越祓・八朔祈祷祭の申込み・確認・奉納・完了（page-saisi*.php・page-hassaku*.php。2026-10-29 宮「祭典の申込みから」）----------
   祈願祭と同じ線画（題は祭の名を文字で縦書き）・罫線の見出し・左寄せの本文・白いカード。文は変えない */
.p-kigan--festival .p-kigan__hero-title--text { left: 50%; letter-spacing: .3em; }
.p-kigan--festival .p-form-head__title {
  max-width: 1100px;
  margin: 0 auto 40px;
  padding: 32px 0;
  border-top: .5px solid var(--kigan-line);
  border-bottom: .5px solid var(--kigan-line);
  color: var(--kigan-heading);
  font-weight: 500;
  letter-spacing: .1em;
  text-align: center;
}
.p-kigan--festival .p-form-head__title::before,
.p-kigan--festival .p-form-head__title::after { content: none; display: none; }
.p-kigan--festival .p-form-head .p-form-form__wrap { margin-bottom: 0 !important; }
.p-kigan--festival .p-form-head .c-title { margin-top: 88px !important; }
.p-kigan--festival hr.saisihr { display: none; }
.p-kigan--festival h2.saisih2 {
  margin: 64px 0 24px;
  padding: 0 0 12px;
  border-bottom: .5px solid var(--kigan-ink);
  color: var(--kigan-heading);
  font-weight: 500;
  letter-spacing: .06em;
  text-align: left !important;
}
.p-kigan--festival form .saisih2:first-of-type { margin-top: 0; }
.p-kigan--festival .p-form__contents { margin-top: 0; }
@media screen and (max-width: 767px) {
  .p-kigan--festival .p-form-head__title { margin-bottom: 28px; padding: 22px 0; }
  .p-kigan--festival .p-form-head .c-title { margin-top: 56px !important; }
  .p-kigan--festival h2.saisih2 { margin-top: 48px; }
}
@layer onmyodo-kigan {
  body .p-kigan--festival .p-form-head__title { font-size: 2.4rem !important; line-height: 1.4 !important; }
  body .p-kigan--festival h2.saisih2 { font-size: 2rem !important; line-height: 1.5 !important; }
  body .p-kigan--festival .p-kigan__hero-title--text { font-size: 3.2rem !important; line-height: 1.4 !important; }
  @media screen and (max-width: 767px) {
    body .p-kigan--festival .p-form-head__title { font-size: 2.1rem !important; }
    body .p-kigan--festival .p-kigan__hero-title--text { font-size: 2rem !important; }
  }
}
/* 受付を締め切ったときのお知らせ（前は赤い枠）：灰色の箱に朱の字 */
.p-kigan--festival .p-kigan__closed { max-width: 910px; margin: 40px auto 0; padding: 32px 40px; border-radius: 10px; background: var(--kigan-soft); color: var(--kigan-accent); text-align: center; }
.p-kigan--festival { padding-bottom: 120px; }
@media screen and (max-width: 767px) {
  .p-kigan--festival .p-kigan__closed { padding: 24px 20px; }
  .p-kigan--festival { padding-bottom: 80px; }
}
@layer onmyodo-kigan {
  body .p-kigan--festival .p-kigan__closed { font-size: 1.7rem !important; line-height: 1.9 !important; }
}
.p-kigan--festival .hassaku-registration-closed { max-width: 910px; margin: 40px auto 0 !important; padding: 32px 40px; border: 0 !important; border-radius: 10px; background: var(--kigan-soft) !important; color: var(--kigan-accent) !important; text-align: center; }
@media screen and (max-width: 767px) { .p-kigan--festival .hassaku-registration-closed { padding: 24px 20px; } }
@layer onmyodo-kigan { body .p-kigan--festival .hassaku-registration-closed { font-size: 1.7rem !important; line-height: 1.9 !important; } }
/* 星祭のお申し込みの三つの形（前は画像）：白い札を三つ横に。スマホは縦に */
.p-kigan__options { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; max-width: 910px; margin: 40px auto 0; padding: 0; list-style: none; }
.p-kigan__option { padding: 28px 24px; border-radius: 10px; background: rgba(255, 255, 255, .9); }
.p-kigan__option-title { margin: 0 0 14px; padding: 0 0 14px; border-bottom: .5px solid var(--kigan-ink); color: var(--kigan-heading); font-weight: 500; letter-spacing: .1em; text-align: center; }
.p-kigan__option-text { margin: 0; text-align: left; }
.p-kigan__box--flow { margin-top: 32px; text-align: left; }
.p-kigan__step-note { display: inline-block; margin-top: .4em; color: var(--kigan-accent); }
@media screen and (max-width: 767px) {
  .p-kigan__options { grid-template-columns: 1fr; gap: 16px; margin-top: 28px; }
  .p-kigan__option { padding: 20px; }
  .p-kigan__box--flow { padding: 24px 20px; }
}
@layer onmyodo-kigan {
  body .p-kigan__option-title { font-size: 2rem !important; line-height: 1.5 !important; }
  body .p-kigan__option-text, body .p-kigan__box--flow .p-kigan__step-text { font-size: 1.6rem !important; line-height: 1.85 !important; }
  body .p-kigan__box--flow .p-kigan__step-title { font-size: 1.8rem !important; line-height: 1.6 !important; }
  body .p-kigan__box--flow .p-kigan__step-note { font-size: 1.4rem !important; line-height: 1.7 !important; }
}

/* 星祭・名越祓のフォームの崩れを直す（2026-10-29 宮「フォームが崩れてる」） */
/* 姓・名・せい・めいは 2 つずつ 2 段に（前は 3 つと 1 つに折れていた） */
.p-kigan--festival .c-input__wrap__wrap > .c-input__wrap { flex: 0 0 calc(50% - 8px) !important; width: calc(50% - 8px) !important; min-width: 0 !important; max-width: calc(50% - 8px) !important; margin: 0 !important; }
.p-kigan--festival .c-input__wrap__wrap { gap: 14px 16px !important; }
/* 「御祈祷」の選択の下の注記：表の 2 列目に押し込まず、表の幅いっぱいに */
.p-kigan--festival .p-form-table2 tr[style*="border:none"] { display: block !important; }
.p-kigan--festival .p-form-table2 tr[style*="border:none"] > td { display: block; width: 100% !important; }
.p-kigan--festival .p-form-table2 tr[style*="border:none"] p { margin: 0 0 8px !important; color: var(--kigan-accent); }
/* 選択肢は横に並べる（前は 3 列の枠で縦に落ちていた） */
.p-kigan--festival .c-radio__wrap { display: flex !important; flex-wrap: wrap; gap: 8px 32px; }
.p-kigan--festival .c-radio__wrap .c-radio { width: auto !important; margin: 0 !important; }
/* 郵便番号の検索ボタン・申込者の追加と削除は、祈願祭のボタンと同じ墨の線 */
.p-kigan--festival .p-form-addressSearch { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; margin: 8px 0 0; padding: 4px 16px; border: .5px solid var(--kigan-ink) !important; border-radius: 8px; background: #fff !important; color: var(--kigan-ink) !important; cursor: pointer; }
.p-kigan--festival .button-container { display: flex; justify-content: center; margin: 32px 0; }
.p-kigan--festival .custom-button { display: inline-flex; align-items: center; gap: 8px; min-height: 52px; padding: 8px 28px; border: .5px solid var(--kigan-ink) !important; border-radius: 8px; background: #fff !important; color: var(--kigan-ink) !important; box-shadow: none !important; cursor: pointer; }
.p-kigan--festival .custom-button .icon { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border-radius: 50%; background: var(--kigan-ink); color: #fff; line-height: 1; }
.p-kigan--festival .remove-kitou { display: block; margin: 0 0 16px auto; padding: 6px 16px; border: .5px solid var(--kigan-accent); border-radius: 8px; background: #fff; color: var(--kigan-accent); cursor: pointer; }
.p-kigan--festival .kitou-form + .kitou-form { margin-top: 40px; padding-top: 40px; border-top: .5px solid rgba(26, 26, 26, .3); }
/* フォームの中の「＿ 参列について ＿」などの古い飾りの見出しと、その本文 */
.p-kigan--festival form h3, .p-kigan--festival form .saisih3 { text-decoration: none; }
/* 同じ内容の選択（参列のお申込者と同じ・1人目と同じご住所） */
.p-kigan--festival .p-kigan__same { display: flex; align-items: flex-start; gap: 10px; margin: 0 0 24px; padding: 16px 20px; border-radius: 10px; background: var(--kigan-soft); cursor: pointer; }
.p-kigan--festival .p-kigan__same input[type=checkbox] { display: inline-block !important; flex: none; width: 18px !important; height: 18px !important; min-height: 0 !important; margin: 4px 0 0 !important; opacity: 1 !important; position: static !important; -webkit-appearance: checkbox !important; appearance: auto !important; accent-color: #bf3823; }
.p-kigan--festival .p-kigan__same-note { display: block; margin-top: 2px; color: #5d5552; }
.p-kigan--festival .is-same-hidden { display: none !important; }
@layer onmyodo-kigan {
  body .p-kigan--festival .p-kigan__same { font-size: 1.6rem !important; line-height: 1.7 !important; }
  body .p-kigan--festival .p-kigan__same-note { font-size: 1.4rem !important; }
  body .p-kigan--festival :is(.p-form-addressSearch, .custom-button, .remove-kitou) { font-size: 1.5rem !important; line-height: 1.5 !important; }
}
/* フォーム・確認の画面の中の「必ずお読みください」の説明（#saisidisc）：灰色の箱に、見出しは左寄せの細い下線（前は「＿ 参列について ＿」の飾り） */
.p-kigan--festival #saisidisc { margin: 40px 0 0; padding: 28px 32px; border-radius: 10px; background: var(--kigan-soft); text-align: left; }
.p-kigan--festival #saisidisc > p:first-child { text-align: left !important; color: var(--kigan-accent) !important; }
.p-kigan--festival #saisidisc > br:first-of-type { display: none; }
.p-kigan--festival .title-container { display: block; margin: 16px 0 8px; padding: 0 0 8px; border-bottom: .5px solid var(--kigan-ink); }
.p-kigan--festival .title-container .line { display: none; }
.p-kigan--festival .title-container .title { color: var(--kigan-heading); font-weight: 500; letter-spacing: .06em; }
.p-kigan--festival #saisidisc [style*="#cc0000"], .p-kigan--festival [style*="color:#cc0000"] { color: var(--kigan-accent) !important; }
@media screen and (max-width: 767px) { .p-kigan--festival #saisidisc { padding: 20px; } }
@layer onmyodo-kigan {
  body .p-kigan--festival #saisidisc { font-size: 1.6rem !important; line-height: 1.85 !important; }
  body .p-kigan--festival .title-container .title { font-size: 1.8rem !important; }
  body .p-kigan--festival #saisidisc > p:first-child { font-size: 1.6rem !important; }
}
/* 名越祓の「御祈祷の種類」の行は、スクリプトが display: table-row を書き込むため、ほかの行と同じ並びに戻す */
@media screen and (min-width: 768px) { .p-kigan--festival tr.kitou-type-row[style*="table-row"] { display: grid !important; } }
@media screen and (max-width: 767px) { .p-kigan--festival tr.kitou-type-row[style*="table-row"] { display: block !important; } }
/* 星祭のフォーム：参列と御祈祷を別々の白いカードに（2026-10-29 宮「参列フォームとご祈祷フォームの白枠を分けて」）。フォーム全体のカードは外し、確認へ進むボタンはカードの外 */
.l-main .p-kigan--festival form.p-kigan__form:has(.p-kigan__form-card) { padding: 0 !important; border-radius: 0; background: none !important; }
.p-kigan--festival .p-kigan__form-card { padding: 42px 40px 56px; border-radius: 10px; background: rgba(255, 255, 255, .9); }
.p-kigan--festival .p-kigan__form-card + .p-kigan__form-card { margin-top: 40px; }
.p-kigan--festival .p-kigan__form-card--kitou #kitou-forms > .saisih2:first-of-type,
.p-kigan--festival .p-kigan__form-card--kitou #kitou-forms > h2:first-of-type { margin-top: 0; }
.p-kigan--festival .p-kigan__form-card #total-amount-section { margin-bottom: 0 !important; }
@media screen and (max-width: 767px) {
  .p-kigan--festival .p-kigan__form-card { padding: 28px 20px 32px; }
  .p-kigan--festival .p-kigan__form-card + .p-kigan__form-card { margin-top: 24px; }
}

/* フォームの横幅を祈願祭（幅910px）にそろえる（2026-10-29 宮「フォームの横幅を他のとそろえて」。前は外側の枠で800pxに絞られていた） */
.p-kigan--festival .p-form__contents > .p-form-form__wrap { width: auto; max-width: 910px; margin-right: auto; margin-left: auto; }
.l-main .p-kigan--festival form.p-kigan__form { width: auto !important; max-width: 910px !important; }
/* 見出しの幅・高さを祈願祭の罫線の見出し（.p-kigan__heading：幅いっぱい1100px・上下32px・24px／行の高さ26.25px・下に53px）とカードの中の見出し（中央・22.5px）にそろえる（2026-10-29 宮「見出しの幅や高さも揃えて」） */
.p-kigan--festival .p-form-head__title,
.p-kigan--festival .p-form-head .c-title { max-width: 1100px !important; margin-right: auto !important; margin-bottom: 53px !important; margin-left: auto !important; padding: 32px 0 !important; border-top: .5px solid var(--kigan-line) !important; border-bottom: .5px solid var(--kigan-line) !important; color: var(--kigan-heading); font-weight: 500 !important; letter-spacing: .1em !important; text-align: center; }
.p-kigan--festival .p-form-head .c-title span { font-weight: 500 !important; letter-spacing: .1em !important; }
.p-kigan--festival h2.saisih2 { margin: 0 0 24px !important; padding: 0 !important; border: 0 !important; text-align: center !important; letter-spacing: normal; }
.p-kigan--festival form .kitou-form + .kitou-form h2.saisih2 { margin-top: 40px !important; }
@media screen and (max-width: 767px) {
  .p-kigan--festival .p-form-head__title,
  .p-kigan--festival .p-form-head .c-title { margin-bottom: 28px !important; padding: 22px 0 !important; }
}
@layer onmyodo-kigan {
  body .p-kigan--festival :is(.p-form-head__title, .p-form-head .c-title, .p-form-head .c-title span) { font-size: 2.4rem !important; line-height: 26.25px !important; }
  body .p-kigan--festival h2.saisih2 { font-size: 2.25rem !important; line-height: 36px !important; }
  @media screen and (max-width: 767px) {
    body .p-kigan--festival :is(.p-form-head__title, .p-form-head .c-title, .p-form-head .c-title span) { font-size: 2.2rem !important; line-height: 1.4 !important; }
    body .p-kigan--festival h2.saisih2 { font-size: 1.9rem !important; line-height: 1.6 !important; }
  }
}
/* 「お申し込みのご案内」は案内の文の枠（910px）の中にあるので、見出しだけ枠の外まで広げて、ほかの罫線の見出しと同じ幅にする */
.p-kigan--festival .p-form-head .c-title { position: relative; left: 50%; width: min(1100px, calc(100vw - 40px)); max-width: none !important; margin-right: 0 !important; margin-left: 0 !important; transform: translateX(-50%); }
@media screen and (max-width: 767px) { .p-kigan--festival .p-form-head .c-title { width: calc(100vw - 32px); } }
/* カードの中の見出し（参列・泰山府君本命属星祭祈祷など）の下に細い線（2026-10-29 宮「参列下にライン入れて」） */
.p-kigan--festival h2.saisih2 { padding-bottom: 16px !important; border-bottom: .5px solid var(--kigan-ink) !important; }
/* 生年月日の年・月・日の選択がくっつかないように間を空ける（2026-10-29 宮「くっついてる」） */
.p-kigan--festival .c-birthday-select { display: flex !important; flex-wrap: wrap; align-items: center; gap: 8px 10px !important; }
.p-kigan--festival .c-birthday-select > .c-select { margin: 0 !important; }
/* 郵便番号の欄と検索ボタンを横に並べる（天壇奉賛と同じ形。2026-10-29 宮「入力枠と検索ボタンを横に並べて」） */
.p-kigan--festival .c-input__wrap:has(> .p-form-addressSearch) { display: grid !important; grid-template-columns: minmax(0, 180px) auto; justify-content: start; align-items: stretch; gap: 6px 12px; }
.p-kigan--festival .c-input__wrap:has(> .p-form-addressSearch) > label { grid-column: 1 / -1; }
.p-kigan--festival .c-input__wrap:has(> .p-form-addressSearch) > input { width: 100% !important; margin: 0 !important; }
.l-main .p-kigan--festival .c-input__wrap > .p-form-addressSearch { align-self: stretch; height: auto; min-height: 4.4rem; margin: 0 !important; padding: 0 20px; border: 1px solid #1a1a1a !important; border-radius: 8px; white-space: nowrap; }
.l-main .p-kigan--festival .c-input__wrap > .p-form-addressSearch:hover { background: #1a1a1a !important; color: #fff !important; }
/* 参列合計人数の欄は数字が入るだけの幅に（2026-10-29 宮「入力枠の幅こんなにいらない」） */
.p-kigan--festival input[name="total_participants"] { flex: 0 0 auto !important; width: 120px !important; max-width: 120px !important; }
.p-kigan--festival td:has(> div > input[name="total_participants"]) > div,
.p-kigan--festival td:has(input[name="total_participants"]) .c-input__wrap { display: flex !important; flex-direction: row !important; align-items: center; gap: 10px; }
/* 「必ずお読みください」の箱を、祈願祭の灰色の箱と同じ組みに整える（2026-10-29 宮「視線が散乱するから整理して」）：
   中央寄せと左寄せが混ざっていたのを、すべて左寄せに。小見出しは線を付けず太めの字だけ（.p-kigan__box-title と同じ）、行の間の余分な改行は消し、段落の間を一定に */
.p-kigan--festival #saisidisc { text-align: left !important; }
.p-kigan--festival #saisidisc > br { display: none; }
.p-kigan--festival #saisidisc > p:first-child { margin: 0 0 20px !important; text-align: left !important; }
.p-kigan--festival #saisidisc .title-container { display: block !important; width: auto !important; margin: 32px 0 10px !important; padding: 0 !important; border: 0 !important; text-align: left !important; }
.p-kigan--festival #saisidisc > p:first-child + .title-container,
.p-kigan--festival #saisidisc > p:first-child + br + .title-container { margin-top: 0 !important; }
.p-kigan--festival #saisidisc .title-container .line { display: none !important; }
.p-kigan--festival #saisidisc .title-container .title { display: block; text-align: left !important; letter-spacing: 2.4px; }
.p-kigan--festival #saisidisc > div[style*="color"] { margin-top: 12px; }
@layer onmyodo-kigan {
  body .p-kigan--festival #saisidisc > p:first-child { font-size: 1.5rem !important; line-height: 1.6 !important; }
}
/* 注意の箱の小見出しの頭に「○」（祈願祭の灰色の箱の「○授与品について」と同じ形。2026-10-29 宮「注意箱の見出し頭に○つけて」） */
.p-kigan--festival #saisidisc .title-container .title::before { content: "○"; }
/* 申込みのフォームでは注意の箱を参列の見出しのすぐ下に置く（2026-10-29）：箱の下に選択との間を空ける */
.p-kigan--festival .p-kigan__form-card--sanretsu > #saisidisc { margin: 0 0 32px; }
/* 御祈祷の選択の下の注意書き（※参列のみを… ※複数人分…）を、参列の注意の箱と同じ灰色の箱に（2026-10-29 宮「この注意書きも参列の注意箱と同じ感じにして」。文は変えない） */
.p-kigan--festival .p-form-table2 tr[style*="border:none"] > td > p { margin: 8px 0 24px !important; padding: 24px 32px; border-radius: 10px; background: var(--kigan-soft); color: var(--kigan-ink) !important; text-align: left; }
@media screen and (max-width: 767px) { .p-kigan--festival .p-form-table2 tr[style*="border:none"] > td > p { padding: 20px; } }
@layer onmyodo-kigan {
  body .p-kigan--festival .p-form-table2 tr[style*="border:none"] > td > p { font-size: 1.6rem !important; line-height: 1.85 !important; }
}
/* 入力を戻したとき、2人目以降にも同じ注意書きが出るので、1人目のところだけに出す */
.p-kigan--festival .kitou-form + .kitou-form .p-form-table2 tr[style*="border:none"] { display: none !important; }
/* 御祈祷の注意書きを見出しのすぐ下に置いた箱（参列の注意の箱と同じ形。2026-10-29） */
.p-kigan--festival .p-kigan__festival-note { margin: 0 0 32px; padding: 24px 32px; border-radius: 10px; background: var(--kigan-soft); color: var(--kigan-ink); text-align: left; }
.p-kigan--festival .p-kigan__festival-note p { margin: 0 !important; }
.p-kigan--festival .p-kigan__festival-note p + p { margin-top: .4em !important; }
@media screen and (max-width: 767px) { .p-kigan--festival .p-kigan__festival-note { padding: 20px; } }
@layer onmyodo-kigan {
  body .p-kigan--festival .p-kigan__festival-note p { font-size: 1.6rem !important; line-height: 1.85 !important; }
}
.p-kigan--festival .p-kigan__gift[hidden] { display: none !important; }
/* 「下記の申込者を削除」は、追加のボタンと同じ墨の線のボタンに（前は朱の塗り。2026-10-29 宮「デザインを合わせて。黒ボタンに」） */
.l-main .p-kigan--festival .remove-kitou { display: inline-flex !important; align-items: center; justify-content: center; min-height: 44px; margin: 0 0 16px auto !important; padding: 6px 20px !important; border: .5px solid var(--kigan-ink) !important; border-radius: 8px !important; background: #fff !important; color: var(--kigan-ink) !important; box-shadow: none !important; cursor: pointer; }
.l-main .p-kigan--festival .remove-kitou:hover { background: var(--kigan-ink) !important; color: #fff !important; }
.p-kigan--festival .kitou-form { display: flex; flex-direction: column; }
.p-kigan--festival .kitou-form > .remove-kitou { align-self: flex-end; }
/* 「申込者を削除」：位置は元のとおり右寄せ（スマホは横いっぱい）、黒の塗りのボタン（2026-10-29 宮「位置は元の場所で、黒ベタのボタン」） */
.l-main .p-kigan--festival .remove-kitou { display: block !important; width: fit-content; margin: 0 0 16px auto !important; border: 1px solid var(--kigan-ink) !important; background: var(--kigan-ink) !important; color: #fff !important; }
.l-main .p-kigan--festival .remove-kitou:hover { background: #3a3a3a !important; border-color: #3a3a3a !important; color: #fff !important; }
@media screen and (max-width: 767px) { .l-main .p-kigan--festival .remove-kitou { width: 100%; margin: 0 0 12px !important; } }
/* 御祈祷の申込者の番号（「御祈祷のお申し込み 2」など。2026-10-29 宮「申し込み２とか増やしたカウントをして」）と、その右に削除のボタン */
.p-kigan--festival .kitou-form { position: relative; }
.p-kigan--festival .p-kigan__kitou-num { margin: 0 0 24px !important; padding: 0 0 12px; border-bottom: .5px solid rgba(26, 26, 26, .3); color: var(--kigan-heading); font-weight: 500; letter-spacing: .06em; }
.p-kigan--festival .p-kigan__kitou-num[hidden] { display: none !important; }
@media screen and (min-width: 768px) {
  .l-main .p-kigan--festival .kitou-form > .remove-kitou { position: absolute; top: -6px; right: 0; margin: 0 !important; }
}
@layer onmyodo-kigan { body .p-kigan--festival .p-kigan__kitou-num { font-size: 1.8rem !important; line-height: 1.6 !important; } }
@media screen and (min-width: 768px) {
  .l-main .p-kigan--festival #hassaku-form .kitou-form > .remove-kitou { position: absolute !important; top: -6px; right: 0; margin: 0 !important; }
}
@media screen and (min-width: 768px) {
  /* 2人目以降の欄は上に区切りの線と40pxの余白があるので、その分下げて番号の見出しと同じ高さに */
  .l-main .p-kigan--festival #hassaku-form .kitou-form + .kitou-form > .remove-kitou { top: 34px; }
}
/* 番号の見出しの下の線は付けない（2026-10-29 宮「線いらない」） */
.p-kigan--festival .p-kigan__kitou-num { padding-bottom: 0; border-bottom: 0; }
/* 「確認へ進む」は入力に漏れがあるあいだ押せない（祈願祭と同じ。2026-10-29） */
.p-kigan--festival .c-submit-btn:disabled { opacity: .4; cursor: not-allowed; }
.p-kigan--festival #festival-form-hint { max-width: 910px; margin: 24px auto 0 !important; color: var(--kigan-accent); text-align: center; }
.p-kigan--festival #festival-form-hint:empty { display: none; }
@layer onmyodo-kigan { body .p-kigan--festival #festival-form-hint { font-size: 1.5rem !important; line-height: 1.7 !important; } }
/* 申込みの説明の統一（星祭・名越祓。2026-10-29）：案内の前書き、注意の箱の段落、人数の注記、送れなかったときの知らせ */
.p-kigan--festival .p-kigan__guide-lead { max-width: 910px; margin: 0 auto; text-align: center; }
.p-kigan--festival #saisidisc .p-kigan__notice-p { margin: 0 !important; }
.p-kigan--festival #saisidisc .p-kigan__notice-p + .p-kigan__notice-p { margin-top: .6em !important; }
.p-kigan--festival .p-kigan__count-note { margin: 8px 0 0 !important; color: var(--kigan-ink) !important; }
.p-kigan--festival .p-kigan__form-error { max-width: 910px; margin: 0 auto 24px !important; padding: 16px 24px; border-radius: 10px; background: #fff; border: 1px solid var(--kigan-accent); color: var(--kigan-accent); text-align: center; }
.p-kigan--festival #saisidisc:empty { display: none; }
@layer onmyodo-kigan {
  body .p-kigan--festival .p-kigan__guide-lead { font-size: 1.7rem !important; line-height: 1.9 !important; }
  body .p-kigan--festival #saisidisc .p-kigan__notice-p { font-size: 1.6rem !important; line-height: 1.85 !important; }
  body .p-kigan--festival .p-kigan__form-error { font-size: 1.6rem !important; line-height: 1.8 !important; }
}
@media screen and (max-width: 767px) { .p-kigan--festival .p-kigan__guide-lead { text-align: left; } }
.p-kigan--festival #festival-form-error { scroll-margin-top: 120px; }
