/*
 * パルム電子芳名板 表示スタイル
 * パルム公式サイト準拠: コンテンツ幅1100px / タン #CEBA8D / パルム赤 #E61117 / 見出し明朝
 */

.ph-board,
.ph-arch,
.ph-years,
.ph-title {
  --ph-tan: #CEBA8D;
  --ph-tan-lt: #E4D8BE;
  --ph-red: #E61117;
  --ph-ink: #231815;
  --ph-mincho: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "Noto Serif JP", "Noto Serif CJK JP", serif;
}

.ph-board { margin: 0 auto; }

.ph-notice {
  background: #FDECEC; border: 1px solid #E61117; color: #8a1010;
  padding: .8em 1.2em; border-radius: 5px; font-size: .85rem;
}
.ph-draft {
  background: #F2F2F2; color: #666; padding: .6em 1.2em;
  border-radius: 5px; font-size: .8rem; text-align: center;
}

/* ── タイトル ── */
.ph-title {
  max-width: 880px;
  margin: 0 auto 14px;
  padding: 4px 16px 0;
  text-align: center;
  font-family: var(--ph-mincho);
  color: var(--ph-ink);
}
.ph-title__line {
  display: block;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .14em;
  text-indent: .14em; /* letter-spacing のぶん右にずれるのを戻す */
}
.ph-title__line--sub  { font-size: .95rem; letter-spacing: .26em; text-indent: .26em; color: #6b5c45; }
.ph-title__line--mid  { font-size: 1.3rem;  margin-top: .18em; }
.ph-title__line--main { font-size: 1.55rem; margin-top: .1em; }

@media (max-width: 599px) {
  .ph-title { margin-bottom: 12px; padding: 2px 12px 0; }
  .ph-title__line--sub  { font-size: .82rem; }
  .ph-title__line--mid  { font-size: 1.05rem; }
  .ph-title__line--main { font-size: 1.2rem; letter-spacing: .06em; text-indent: .06em; }
}

/* ── 年度ナビ ── */
.ph-years {
  display: flex; justify-content: center; align-items: center;
  gap: 6px; flex-wrap: wrap; padding: 0 0 4px;
  font-family: var(--ph-mincho); font-size: .95rem;
}
.ph-years a { color: #7a6a4d; text-decoration: none; padding: .3em .9em; border-radius: 4px; }
.ph-years a:hover { background: var(--ph-tan-lt); }
.ph-years__now {
  background: var(--ph-red); color: #fff; padding: .28em 1em;
  border-radius: 4px; font-size: .82rem; white-space: nowrap;
}
@media (max-width: 599px) {
  .ph-years__now { font-size: .76rem; padding: .28em .9em; }
}

/* ── 段（金額カテゴリ） ── */
.ph-tier { margin: 0 0 40px; }
.ph-tier__label {
  display: flex; align-items: center; gap: 16px; margin: 0 0 16px;
  font-family: var(--ph-mincho); font-size: 1.3rem; font-weight: 700;
  letter-spacing: .2em; justify-content: center; color: var(--ph-ink);
}
.ph-tier__label::before,
.ph-tier__label::after {
  content: ""; height: 1px; background: var(--ph-tan); flex: 1; max-width: 200px;
}

.ph-tier__list {
  list-style: none; margin: 0; padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, var(--ph-w, 208px));
  justify-content: center;
  gap: 8px;
}

/* ── 木札 ── */
.ph-plate {
  height: var(--ph-h, 76px);
  display: flex; flex-direction: column;
  justify-content: center; align-items: center; text-align: center;
  padding: 6px 12px;
  font-family: var(--ph-mincho);
  color: var(--ph-ink);
  background:
    var(--ph-plate-img, repeating-linear-gradient(0deg, rgba(150,110,60,.09) 0 1px, transparent 1px 6px))
    center / cover no-repeat,
    var(--ph-bg, #EADCBE);
  border: var(--ph-bw, 1px) solid var(--ph-bc, #BFA97C);
  border-radius: 3px;
  box-shadow: var(--ph-sh, none);
  overflow: hidden;
  margin: 0;
}
.ph-plate__sub {
  display: block; line-height: 1.15;
  /* 小書きでも読める大きさを保つ。本体の約8割 */
  font-size: calc(.82rem * var(--ph-s, 1) * var(--ph-fs, 1));
  color: #5b4a30;
}
.ph-plate__main {
  display: block; line-height: 1.15;
  font-size: calc(1.05rem * var(--ph-s, 1) * var(--ph-fs, 1));
  font-weight: 700; letter-spacing: .04em; white-space: nowrap;
}
.ph-plate__hon { font-size: .82em; font-weight: 400; margin-left: .15em; }

/* ひとつの名前が2行に分かれている札。上下を同じ大きさに揃える */
.ph-plate--even .ph-plate__sub {
  font-size: calc(1.05rem * var(--ph-s, 1) * var(--ph-fs, 1));
  font-weight: 700;
  letter-spacing: .04em;
  color: inherit;
  line-height: 1.25;
}
.ph-plate--even .ph-plate__main { line-height: 1.25; }

.ph-plate--w2 { grid-column: span 2; }
.ph-plate--long   { --ph-s: .84; }
.ph-plate--xlong  { --ph-s: .70; }
.ph-plate--xxlong { --ph-s: .58; }

/* ── 強調レベル ── */
.ph-tier[data-rank="5"] .ph-plate {
  --ph-fs: 1.5; --ph-bg: #F2E3C0; --ph-bc: #A8843C; --ph-bw: 2px;
  --ph-sh: inset 0 0 0 4px #F7EED8, inset 0 0 0 5px #C9A253;
}
.ph-tier[data-rank="4"] .ph-plate {
  --ph-fs: 1.22; --ph-bg: #EEE0BC; --ph-bc: #AE9152; --ph-bw: 2px;
}
.ph-tier[data-rank="2"] .ph-plate { --ph-fs: .94; }
.ph-tier[data-rank="1"] .ph-plate { --ph-fs: .88; --ph-bg: #E4D8BE; --ph-bc: #C6B48C; }

.ph-tier[data-rank="5"] .ph-tier__label { font-size: 1.7rem; }
.ph-tier[data-rank="4"] .ph-tier__label { font-size: 1.45rem; }
.ph-tier[data-rank="2"] .ph-tier__label,
.ph-tier[data-rank="1"] .ph-tier__label { font-size: 1.12rem; }

/* ── 協力者（タン帯・全幅） ── */
.ph-kyo {
  background: var(--ph-tan, #CEBA8D);
  width: 100vw; margin-left: calc(50% - 50vw); margin-top: 56px;
}
.ph-kyo__inner { max-width: 1100px; margin: 0 auto; padding: 52px 20px; }
.ph-kyo__head {
  font-family: "Hiragino Mincho ProN", "Yu Mincho", serif;
  text-align: center; color: #fff; margin: 0 0 4px;
  font-size: 1.85rem; font-weight: 700; letter-spacing: .2em;
}
.ph-kyo__sub {
  text-align: center; color: #fff; opacity: .9;
  font-size: .78rem; letter-spacing: .15em; margin: 0 0 26px;
}
.ph-kyo__img {
  display: block; width: 100%; height: auto; margin: 0 0 12px;
  background: #fff; border-radius: 3px;
}
.ph-kyo__img:last-of-type { margin-bottom: 0; }

/* ── 年度一覧ボックス ── */
.ph-arch {
  position: relative; border: 1px solid #ddd; border-radius: 5px;
  padding: 20px 24px 20px 44px; margin: 44px 0 0; text-align: center;
  font-family: var(--ph-mincho); font-size: .92rem; line-height: 2.1;
}
.ph-arch::before {
  content: "›"; position: absolute; left: 18px; top: 16px;
  color: var(--ph-red); font-size: 1.1rem;
}
.ph-arch__t { font-weight: 700; margin: 0 0 4px; }
.ph-arch a { color: var(--ph-ink); text-decoration: none; display: block; }
.ph-arch a:hover { color: var(--ph-red); }
.ph-arch small {
  font-family: inherit; color: #999; font-size: .72rem; margin-left: .6em;
}
.ph-arch__more { margin-top: 10px; }
.ph-arch__more a { color: var(--ph-red); font-size: .85rem; }

.ph-arch--list { border: 0; padding-left: 0; text-align: left; }
.ph-arch--list::before { content: none; }
.ph-arch--list a {
  border-bottom: 1px solid #eee; padding: .8em 0;
}

/* ── レスポンシブ ── */
@media (max-width: 599px) {
  .ph-tier__list { gap: 6px; }
  .ph-tier__list { grid-template-columns: repeat(auto-fit, min(var(--ph-w, 208px), 168px)); }
  .ph-plate { height: min(var(--ph-h, 76px), 66px); padding: 5px 8px; }
  .ph-kyo__inner { padding: 36px 16px; }
  .ph-kyo__head { font-size: 1.4rem; }
}
