/* ============================================================
   複数PDFのロールオーバーメニュー
   PDFが複数含まれるリンクボタンにマウスを合わせると、
   各PDFをプルダウンで表示する。
   ============================================================ */

.pdfmenu {
  position: relative;
  display: inline-block;
}

/* トリガー横の小さな▼マーク */
.pdfmenu-caret {
  display: inline-block;
  width: 0;
  height: 0;
  margin-left: 6px;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid currentColor;
  vertical-align: middle;
}

/* プルダウン本体 */
.pdfmenu-list {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 80;
  min-width: 260px;
  margin: 0;
  padding: 6px 0;
  list-style: none;
  background: #fff;
  border: 1px solid #d4d8df;
  border-radius: 5px;
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.2);
  opacity: 0;
  visibility: hidden;
  transform: translateY(5px);
  transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;
}

.pdfmenu:hover .pdfmenu-list,
.pdfmenu:focus-within .pdfmenu-list,
.pdfmenu.is-open .pdfmenu-list {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* トリガー（ボタン自体はリンクではなくメニューを開く） */
.pdfmenu-trigger {
  cursor: pointer;
}

/* サイドメニュー内でプルダウンが隠れないよう、
   pdfmenu を含む側のリストははみ出しを許可する。 */
.side-list:has( .pdfmenu ) {
  overflow: visible;
}

/* .side-list の最後の要素が .pdfmenu (プルダウン付きリンク) だった場合、
   その中の .side-link には border-bottom が残ってしまう
   (:last-child が .pdfmenu にマッチして .side-link にはマッチしないため)。
   最後の pdfmenu 内の .side-link は下線を消す。 */
.side-list > .pdfmenu:last-child > .side-link {
  border-bottom: 0;
}

.pdfmenu-list li {
  margin: 0;
}

.pdfmenu-list a {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px 16px;
  font-size: 13px;
  line-height: 1.4;
  color: #16243f;
  text-decoration: none;
  white-space: nowrap;
}

.pdfmenu-list a:hover {
  background: #f1f3f6;
}

/* 各項目の右端の「›」 */
.pdfmenu-list a::after {
  content: "›";
  margin-left: auto;
  padding-left: 14px;
  color: #8a93a3;
  font-weight: 700;
}

/* ハンバーガーメニュー／サイドメニュー内に置く場合は右寄せ解除 */
.pdfmenu.pdfmenu-block {
  display: block;
}
.pdfmenu.pdfmenu-block .pdfmenu-list {
  left: 0;
  right: auto;
  min-width: 280px;
}

/* スマートフォンでは画面幅に収め、はみ出さないように */
@media (max-width: 768px) {
  .pdfmenu-list {
    min-width: 220px;
    max-width: 84vw;
  }
  .pdfmenu-list a {
    white-space: normal;
  }
}

/* ============================================================
   所属一覧：見出し（ラベル）を固定
   表を縦スクロールしてもラベルが上部に固定される。
   ============================================================ */
.shozoku-scroll .shz-th {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  z-index: 6;
}

/* スマホ：25行ごとの区切り見出しも表示し、
   どの位置までスクロールしても常に見出しが上部に固定されるようにする。 */
@media (max-width: 768px) {
  .shozoku-scroll .shz-col:not(:first-child) .shz-th {
    display: block;
  }
}

/* ============================================================
   ハンバーガーメニュー：PDFを内包する親項目
   親（協会について／ジュニア規定関連）は矢印を下向きにし、
   その下のPDF項目はアイコンを1文字ぶん字下げする。
   ============================================================ */
.nv-arw-down {
  transform: rotate(135deg);
}
.nav-link-child {
  padding-left: 1.6em;
}

/* ============================================================
   添付ファイルアイコン：Word（DOC）用
   （PDF・XLS は style.css に定義済み）
   ============================================================ */
.ic-doc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 27px;
  height: 27px;
  border-radius: 5px;
  flex: none;
  font-size: 9px;
  font-weight: 700;
  color: #fff;
  background: #2b579a;
}

/* ============================================================
   お知らせ記事 詳細ページ（2カラム）
   ============================================================ */
.news-detail {
  display: grid;
  /* 記事本文（右カラム）は最大744px。サイドバー248px＋gap24px＝計1016pxの
     2カラムブロックを、コンテナ内で中央寄せする。 */
  grid-template-columns: 248px minmax(0, 744px);
  gap: 24px;
  justify-content: center;
  padding: 0 0 60px;
}
.news-detail-side {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

/* 記事上部のナビ（左：次の記事へ／右：前の記事へ） */
.article-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid #e0e4ea;
  margin-bottom: 14px;
}
.article-nav-prev {
  text-align: right;
  margin-left: auto;
}
.article-nav a {
  color: #102e6b;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
}
.article-nav a:hover {
  text-decoration: underline;
}

/* 記事本文ブロックの背景は白 */
.news-article-body {
  background: #fff;
}
/* 記事メタ：カテゴリ（左）と日付（右）を罫線直下の同じ行に並べる */
.article-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 40px;
}
.article-date {
  margin: 0 0 0 auto; /* 常に右端へ */
}
.article-date time {
  font-size: 14px;
  font-weight: 600;
  color: #102e6b;
  letter-spacing: 0.04em;
}
/* 記事カテゴリ（メタ行の左側） */
.article-cat {
  margin: 0;
}
.article-cat-tag {
  display: inline-block;
  background: #102e6b;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.4;
  text-decoration: none;
  padding: 3px 12px;
  border-radius: 3px;
  margin: 2px 6px 2px 0;
}
.article-cat-tag:hover {
  background: #0a2350;
}
.article-title {
  text-align: center;
  font-size: 20px;
  line-height: 1.55;
  color: #102e6b;
  font-weight: 700;
  /* タイトル↔本文の40pxを「20px＋罫線＋20px」に分け、罫線を中央に置く。
     罫線は記事ナビ下と同じ 1px solid #e0e4ea。 */
  margin: 0 0 20px;
  padding-bottom: 20px;
  border-bottom: 1px solid #e0e4ea;
}
.article-body {
  font-size: 14px;
  line-height: 1.95;
  color: #16243f;
}
.article-body p {
  margin: 0 0 1em;
}
.article-body img {
  max-width: 100%;
  height: auto;
}

.article-back {
  text-align: right;
  margin-top: 60px;
}
.article-back-btn {
  display: inline-block;
  color: #102e6b;
  text-decoration: none;
  font-size: 13px;
  font-weight: 700;
}
.article-back-btn:hover {
  text-decoration: underline;
}

/* カレンダー（WordPress標準 get_calendar） */
.news-cal-body .wp-calendar-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}
.news-cal-body .wp-calendar-table th,
.news-cal-body .wp-calendar-table td {
  text-align: center;
  padding: 5px 2px;
  border: 1px solid #e0e4ea;
}
.news-cal-body .wp-calendar-table th {
  background: #102e6b;
  color: #fff;
  font-weight: 600;
}
.news-cal-body .wp-calendar-table td a {
  color: #102e6b;
  font-weight: 700;
}
.news-cal-body .wp-calendar-nav {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  padding-top: 6px;
}

@media (max-width: 768px) {
  .news-detail {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .news-detail-main {
    order: 1;
  }
  .news-detail-side {
    order: 2;
  }
}

/* ============================================================
   協賛バナー：画像を枠内にフィットさせる
   ============================================================ */
.sponsor-main img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

/* ============================================================
   フォームのバリデーションエラー表示
   （送信時に未入力／不正な項目をハイライトしフォーム上部にサマリ）
   ============================================================ */
.f-input.is-error,
.f-date-sel.is-error,
.combo input.is-error {
  border-color: #d63638 !important;
  background: #fef0f0 !important;
}

.form-consent.is-error {
  background: #fef0f0;
  border-left: 3px solid #d63638;
  padding-left: 8px;
}

.field-error {
  color: #d63638;
  font-size: 12px;
  margin-top: 4px;
  line-height: 1.4;
}

.form-error-banner {
  background: #fdecea;
  border: 1px solid #d63638;
  color: #7a1f1c;
  padding: 12px 16px;
  margin: 14px 0 20px;
  border-radius: 5px;
  font-size: 13px;
}
.form-error-banner strong {
  display: block;
  margin-bottom: 6px;
}
.form-error-banner ul {
  margin: 6px 0 0 18px;
  padding: 0;
  list-style: disc;
}
.form-error-banner li {
  margin: 2px 0;
  line-height: 1.5;
}


