/* thg-corporate 共通様式。navy #1A3A5C 基調・紙地。
   #E85A2C は封印の朱＝門のみ（サイト内で唯一クリック可能な朱）。
   グラデーション・M PLUS Rounded は使わない。モーションは確定モーションセットのみ
   （D-0047・2026-07-09配線）。成立条件＝動セクション末尾の @media (prefers-reduced-motion: reduce) で
   静止と等価（その後段は @media print のみ＝印刷も常に全可視。動の追記はRM節への同selector追記とセット）。 */

:root {
  --paper: #F5F0E6;
  --paper-light: #FBF6EA;
  --ink: #1A3A5C;
  --ink-dim: #546A80; /* 淡色（未決の栓・状態語）。紙地に対しAA(4.5:1)以上を実測済み */
  --shu: #E85A2C;
  /* 動（D-0047・確定モーションセット共通） */
  --ease: cubic-bezier(.22, 1, .36, 1);
  --dur-base: .9s;
  --dur-fast: .24s;
}

* { box-sizing: border-box; }

html { background: var(--paper); }

body {
  margin: 0;
  color: var(--ink);
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  font-size: 16px;
  line-height: 2;
}

h1, h2, h3, .site-name, .ku, .mei {
  font-family: "Kaisei Tokumin", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-weight: 500;
}

a { color: var(--ink); }

/* ルビ（読みはページ内初出の一回のみ付す） */
ruby rt { font-size: .5em; letter-spacing: .1em; opacity: .8; }

/* 頭 */
.site-head {
  max-width: 960px;
  margin: 0 auto;
  padding: 2.5rem 1.5rem 1.5rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
}

.site-name {
  font-size: 1rem;
  letter-spacing: .45em;
  text-decoration: none;
}

.site-head nav a {
  position: relative; /* sen（状態下線）の基準 */
  margin-left: 1.75em;
  text-decoration: none;
  letter-spacing: .3em;
  font-size: .95rem;
}

/* P4 sen＝状態下線（hover・focus・現在地の状態表示のみ。塗り等の hover 演出は不採用＝D-0047） */
.site-head nav a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -.3em;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--dur-fast) ease-out;
}

.site-head nav a:hover::after,
.site-head nav a:focus-visible::after,
.site-head nav a[aria-current]::after { transform: scaleX(1); }

/* 胴 */
main {
  max-width: 720px;
  margin: 0 auto;
  padding: 3rem 1.5rem 7rem;
}

h1 {
  font-size: 1.5rem;
  letter-spacing: .6em;
  margin: 2.5rem 0 3.5rem;
}

h2 {
  font-size: 1.15rem;
  letter-spacing: .4em;
  margin: 4.5rem 0 2rem;
}

/* 未決の栓（〔問◯〕） */
.pending { color: var(--ink-dim); }

/* トップ */
.top .photo-frame {
  border: 1px solid var(--ink);
  background: var(--paper-light);
  aspect-ratio: 3 / 2;
  margin: 2rem 0 4rem;
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}

.ku {
  text-align: center;
  font-size: 1.3rem;
  letter-spacing: .35em;
  margin: 5rem 0;
}

/* 三導き（伊勢の動詞カテゴリ導線の型） */
.michibiki {
  display: flex;
  justify-content: center;
  gap: 5rem;
  margin: 7rem 0 5rem;
}

.michibiki a {
  writing-mode: vertical-rl;
  height: 8em;
  font-family: "Kaisei Tokumin", "Yu Mincho", serif;
  font-size: 1.1rem;
  letter-spacing: .5em;
  text-decoration: none;
  border-left: 1px solid rgba(26, 58, 92, .25);
  padding-left: 1.25rem;
}

.michibiki a:hover { border-left-color: var(--ink); }

/* 下層導線 */
.kaso {
  margin: 5rem 0 0;
  letter-spacing: .2em;
}

/* 祭事暦（一行の様式＝八月の儀・四節。増やすだけで減らさない） */
.koyomi { list-style: none; padding: 0; margin: 2rem 0; }

.koyomi li {
  padding: 1em 0;
  border-bottom: 1px solid rgba(26, 58, 92, .25);
  letter-spacing: .1em;
}

/* 見つける：境内図 */
.keidai { margin: 2rem 0 0; }
.keidai svg { width: 100%; height: auto; display: block; }
.keidai .shima { fill: var(--paper-light); stroke: var(--ink); stroke-width: 2; }
.keidai .tatemono { fill: var(--ink); }
.keidai .hikisen { stroke: var(--ink); stroke-width: .75; opacity: .55; }
.keidai text {
  font-family: "Kaisei Tokumin", "Yu Mincho", serif;
  font-size: 13px;
  fill: var(--ink);
  letter-spacing: .08em;
}

/* 門（サイト内で唯一クリック可能な朱） */
.gate {
  margin: 9rem 0 3rem;
  text-align: center;
}

.gate .shuin {
  display: inline-block;
  width: 64px;
  height: 64px;
  line-height: 62px;
  border: 2px solid var(--shu);
  color: var(--shu);
  font-family: "Kaisei Tokumin", serif;
  font-size: 1.6rem;
  text-decoration: none;
}

.gate p {
  margin-top: 2rem;
  letter-spacing: .2em;
}

/* 浸かる */
.hombun p { margin: 2.5em 0; }

/* 面白がる */
.engi { margin: 3rem 0; }
.saiki-link { margin: 3rem 0 0; letter-spacing: .2em; }

.nenpyo {
  list-style: none;
  padding: 0;
  margin: 2rem 0;
}

.nenpyo li {
  display: grid;
  grid-template-columns: 7em 1fr;
  gap: 1.5em;
  padding: 1em 0;
  border-bottom: 1px solid rgba(26, 58, 92, .25);
}

.nenpyo .toki { letter-spacing: .1em; }

/* 蔵 */
.kitei ol { padding-left: 0; list-style: none; }
.kitei li { margin: 1.75em 0; }
.kitei .jo { font-family: "Kaisei Tokumin", serif; }

.mokuroku { list-style: none; padding: 0; }

.hin {
  border-top: 1px solid rgba(26, 58, 92, .25);
  padding: 2rem 0 2.5rem;
}

.hin-head { margin: 0 0 1.25rem; }
.hin-title { font-family: "Kaisei Tokumin", serif; letter-spacing: .1em; }
.hin-state { margin-left: 1.5em; font-size: .85rem; color: var(--ink-dim); }

/* 銘：縦書き（収蔵規程第六条） */
.mei {
  writing-mode: vertical-rl;
  height: 15em;
  max-height: 70vh;
  margin: 0 0 0 auto;
  line-height: 2.4;
  letter-spacing: .1em;
}

.kura-note { font-size: .85rem; color: var(--ink-dim); margin: 2rem 0; }

/* 図版（開封期間のみ実在＝build --kaifu が生成。静的・動なし） */
.zuhan { margin: 1.5rem 0 0; }
.zuhan img { display: block; width: 100%; height: auto; border: 1px solid rgba(26, 58, 92, .25); }

/* 裾 */
footer {
  border-top: 1px solid var(--ink);
  font-size: .85rem;
}

.foot-inner {
  max-width: 960px;
  margin: 0 auto;
  padding: 3rem 1.5rem 4.5rem;
  display: flex;
  flex-wrap: wrap;
  gap: 4rem;
}

footer h2 {
  font-size: .95rem;
  letter-spacing: .35em;
  margin: 0 0 1.5rem;
}

footer dl { margin: 0; }

footer dl div {
  display: grid;
  grid-template-columns: 5em 1fr;
  gap: 1em;
}

footer dt { letter-spacing: .2em; }
footer dd { margin: 0; }

.foot-fui a { letter-spacing: .3em; text-decoration: none; }
.foot-fui a:hover { border-bottom: 1px solid var(--ink); }

/* 動（確定モーションセット・D-0047・2026-07-09配線）
   P2 reveal＝内容の顕れ（[data-reveal]）／P3 tate＝銘（.mei）も同扱い／P1 line-draw＝欧文ワードマーク（トップのみ）。
   fold は対象なし（祭記の構造は裁定待ちのため触れない）。門・禁足は静的のまま。
   assets/motion.js が読まれない環境では html に js クラスが付かず、初期状態＝静止・全可視のまま成立する。 */

html.js [data-reveal],
html.js .mei {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity var(--dur-base) var(--ease), transform var(--dur-base) var(--ease);
  transition-delay: calc(var(--i, 0) * 90ms);
}

html.js [data-reveal].is-in,
html.js .mei.is-in {
  opacity: 1;
  transform: none;
}

/* P1 line-draw（欧文ワードマーク・トップのみ） */
.ld {
  display: block;
  margin: 1.5rem auto 0;
  max-width: 22rem;
}

.ld__t {
  font-family: "Century Gothic", "Futura", system-ui, sans-serif;
  font-size: 64px;
  font-weight: 300;
  fill: none;
  stroke: var(--ink);
  stroke-width: 1;
  stroke-dasharray: 2400;
  stroke-dashoffset: 0;
}

html.js .ld:not(.is-in) .ld__t { stroke-dashoffset: 2400; }
html.js .ld.is-in .ld__t { transition: stroke-dashoffset 1.6s var(--ease); stroke-dashoffset: 0; }

/* 静止等価（D-0047の成立条件）。感嘆符禁則のため important は使わず、
   同一selector（＝同一specificity）を後置して上書きする。動を足すときは必ずここにも同じselectorを足す。 */
@media (prefers-reduced-motion: reduce) {
  .site-head nav a::after,
  html.js [data-reveal],
  html.js .mei,
  html.js .ld.is-in .ld__t { transition: none; }

  html.js [data-reveal],
  html.js .mei { opacity: 1; transform: none; }

  html.js .ld:not(.is-in) .ld__t { stroke-dashoffset: 0; }
}

/* 印刷（規程第五条・印刷可能） */
@media print {
  @page { margin: 20mm; }
  html, body { background: #fff; color: #000; }
  .site-head nav { display: none; }
  a { color: #000; text-decoration: none; }
  .gate .shuin { color: #000; border-color: #000; }
  .photo-frame { display: none; }
  .hin { break-inside: avoid; }
  .mei { max-height: none; }
  .keidai .tatemono { fill: #000; }
  .keidai text { fill: #000; }
  .keidai .shima, .keidai .hikisen { stroke: #000; }
  /* 動は印刷で常に静止・全可視（規程第五条・印刷可能を保つ。important不使用＝感嘆符禁則） */
  html.js [data-reveal], html.js .mei { opacity: 1; transform: none; transition: none; }
  html.js .ld:not(.is-in) .ld__t { stroke-dashoffset: 0; }
  .ld__t { stroke: #000; }
}
