/* ===== reset ===== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --navy:#102e6b;
  --navy-d:#0a2350;
  --red:#e3211b;
  --yellow:#fff100;
  --sky:#29a9e0;
  --green:#1c9c3f;
  --gray:#aeb5bd;
  --text:#16243f;
  --container:1360px;
}
html{-webkit-text-size-adjust:100%}
body{
  font-family:"Noto Sans JP",sans-serif;
  color:var(--text);
  background:#fff;
  line-height:1.7;
  font-size:15px;
}
a{color:inherit;text-decoration:none}
ul{list-style:none}
img{max-width:100%;display:block}
button{font-family:inherit;cursor:pointer;border:0;background:none}
.container{max-width:var(--container);margin:0 auto;padding:0 28px;width:100%}

/* file badges */
.ic-pdf,.ic-xls{
  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;
}
.ic-pdf{background:#e3211b}
.ic-xls{background:#1c9c3f}

/* ===================== HERO + HEADER ===================== */
/* ヒーロー：背景を position:fixed の .hero-bg に分離し、コンテンツが
   スクロールしても背景（紺グラデ＋ボール＋HOKKAIDO）が残るパララックス。
   3レイヤーに分け、ボール／HOKKAIDOは個別の不透明度を持たせる */
.hero{
  position:relative;
  background:transparent;
  padding-bottom:0;
}
.hero-bg{
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background-color:#0a2350;
  background-image:
    radial-gradient(circle at 50% 6%,rgba(255,255,255,.10),transparent 26%),
    radial-gradient(ellipse at 72% 12%,#1c459b 0%,#102e6b 46%,#0a2350 100%);
}
.hero-bg::before,
.hero-bg::after{
  content:"";
  position:absolute;
  inset:0;
  background-repeat:no-repeat;
}
.hero-bg::before{ /* テニスボール */
  background-image:url("../assets/bg-ball.webp");
  background-position:left 105px;
  background-size:auto 255vh;
  opacity:.28;
  mix-blend-mode:multiply;
}
.hero-bg::after{ /* HOKKAIDO */
  background-image:url("../assets/bg-hokkaido.svg");
  background-position:left 150px;
  background-size:auto 210vh;
  opacity:.3;
}

.site-header{background:transparent;position:relative} /* .header-meta の絶対配置基準 */
.header-inner{
  max-width:var(--container); /* 本文 .container と同幅（1360px）に揃え、ロゴを左カラムと整列 */
  margin:0 auto;width:100%;
  display:flex;align-items:stretch;min-height:104px;
  padding:0 28px; /* 本文 .container と同じ左右余白 */
}
/* お問合せ・メニューはスクロールしても画面右上に固定表示 */
.header-actions{
  position:fixed;top:0;right:0;z-index:95;
  display:flex;height:104px;
}
.logo{display:flex;align-items:center;align-self:center;padding:14px 0;position:relative;top:20px}
.logo-img{height:76px;width:auto;display:block}

/* PDFリンク・電話番号は .header-actions(188px) の左隣に常時貼り付け。
   ブラウザ幅が変わってもボタン群と一緒に右端から追従する。 */
.header-meta{
  position:absolute;top:0;right:188px;height:104px;
  display:flex;flex-direction:column;
  justify-content:center;align-items:flex-end;gap:14px;padding:0 26px;
}
.header-pdfs{display:flex;gap:30px;position:relative;top:30px}
.hpdf{display:flex;align-items:center;gap:9px;color:#fff;font-size:14px;font-weight:500}
.hpdf:hover{color:var(--yellow)}
.header-tel{display:flex;align-items:baseline;gap:12px;color:#fff;position:relative;top:15px}
.tel-label{font-size:14px}
.header-tel strong{font-size:25px;font-weight:700;letter-spacing:.02em}

.hbtn-tel{display:none}
.hbtn-contact,.hbtn-menu{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:5px;width:94px;font-size:12px;font-weight:500;flex:none;
}
.hbtn-contact{background:var(--red);color:#fff}
.hbtn-contact:hover{background:#c91a14}
.hbtn-menu{background:#fff;color:var(--navy);font-weight:700}
.hbtn-menu:hover{background:#eef1f6}
/* メニュー文字をお問合せの文字と下端で揃える（6px下げ） */
.hbtn-menu>span:last-child{position:relative;top:6px}
.menu-bars{display:flex;flex-direction:column;gap:4px;width:24px}
.menu-bars i{height:3px;background:var(--navy);border-radius:2px;display:block}

/* breadcrumb */
.breadcrumb{display:flex;align-items:center;gap:10px;color:#fff;font-size:15px;padding:20px 0 24px}
.breadcrumb a:hover{text-decoration:underline}
.sp-schedule-btn{display:none}
.sp-tabbar{display:none}

/* ===================== MAIN GRID ===================== */
.main-grid{
  display:grid;
  grid-template-columns:248px minmax(0,1fr) 326px;
  grid-template-rows:auto auto;
  gap:24px;
}
/* 同じ行のパネルを揃える：最新情報↔緊急情報、トピックス↔協賛 */
.panel-news,.panel-note{grid-column:2;grid-row:1}
.panel-topics{grid-column:2;grid-row:2}
.panel-emergency{grid-column:3;grid-row:1}
.sponsors{grid-column:3;grid-row:2}

/* ----- SIDEBAR ----- */
.sidebar{display:flex;flex-direction:column;gap:13px;grid-column:1;grid-row:1/3;align-self:start}
.side-home{
  display:flex;align-items:center;justify-content:center;gap:11px;
  background:#fff;border-radius:9px;padding:14px;
  font-size:21px;font-weight:700;color:var(--navy);
  box-shadow:0 3px 7px rgba(0,0,0,.3);
}
.side-home:hover{background:#f1f4f9}
.side-home-img{height:40px;width:auto;display:block;flex:none}

.side-list{background:#fff;border-radius:9px;overflow:hidden;box-shadow:0 3px 7px rgba(0,0,0,.3)}
.side-link{
  display:flex;align-items:center;
  padding:15px 16px;min-height:54px;
  font-size:18px;font-weight:700;color:var(--navy);
  border-bottom:1px solid #e4e4e4;
}
.side-link:last-child{border-bottom:0}
.side-link:hover{background:#f1f4f9}
/* 一般大会・ベテラン大会・ジュニア大会の枠を各5px低く */
.sidebar>.side-list>.side-link{padding-top:12.5px;padding-bottom:12.5px;min-height:49px}
.arw{
  margin-left:auto;flex:none;position:relative;
  width:23px;height:23px;background:#111;border-radius:3px;
}
.arw::before{
  content:"";position:absolute;top:50%;left:calc(53% - 1px);
  transform:translate(-50%,-50%) rotate(45deg);
  width:6px;height:6px;border-top:2px solid #fff;border-right:2px solid #fff;
}

.side-apply{
  display:flex;flex-direction:column;align-items:center;gap:1px;
  background:linear-gradient(180deg,#e8443c,#d11a13);
  border-radius:9px;padding:13px;color:#fff;text-align:center;
  font-size:21px;font-weight:700;box-shadow:0 3px 7px rgba(0,0,0,.3);
}
.side-apply small{font-size:16px;font-weight:500;color:#ffe0df;margin-top:-5px}
.side-apply:hover{filter:brightness(1.05)}

.side-yellow{
  background:var(--yellow);border-radius:9px;padding:13px;
  display:flex;flex-direction:column;gap:14px;
  box-shadow:0 3px 7px rgba(0,0,0,.3);
}
/* ジュニアランキングを囲う白枠の角丸を1px大きく */
.side-yellow .side-list{border-radius:10px}
/* 検索窓：紺ピル型の入力欄＋虫眼鏡アイコン（送信ボタン） */
.search-box{
  width:100%;max-width:100%;align-self:stretch; /* Edge 等で親の align-items に影響されずに横幅100%を保つ */
  display:flex;align-items:center;gap:8px;
  background:var(--navy);
  padding:14px 16px;border-radius:999px;box-shadow:0 2px 5px rgba(0,0,0,.3);
}
.search-box:focus-within{box-shadow:0 0 0 2px rgba(255,241,0,.7)}
.search-ico{flex:none;display:flex;color:#fff;padding:0}
.search-ico:hover{color:var(--yellow)}
.search-input{
  flex:1 1 0;min-width:0;width:0; /* Edge で input の intrinsic width が flex を押し出すのを防ぐ */
  background:transparent;border:0;outline:0;
  color:#fff;font-family:inherit;font-size:14px;font-weight:500;
}
.search-input::placeholder{color:rgba(255,255,255,.6)}
.search-input::-webkit-search-cancel-button{filter:invert(1)}
.search-note{color:var(--navy);font-size:14px;text-align:center;font-weight:500;margin-top:4px}

/* ----- PANELS ----- */
/* ラッパーは透過し、4パネルをグリッドの直接の子として配置 */
.col-center,.col-right{display:contents}
.panel{border-radius:5px;overflow:hidden;box-shadow:0 3px 12px rgba(0,0,0,.28)}
.panel-head{display:flex;align-items:center;justify-content:space-between;padding:12px 20px}
.panel-head h2{font-size:21px;font-weight:700}
.panel-head-yellow{background:var(--yellow);color:var(--navy)}
.panel-head-red{background:var(--red);color:#fff}
.see-all{display:flex;align-items:center;gap:7px;font-size:16px;font-weight:700;color:var(--navy)}
.chev{
  width:7px;height:7px;border-top:2px solid currentColor;border-right:2px solid currentColor;
  transform:rotate(45deg);display:inline-block;
}
.panel-body{background:var(--gray);padding:18px 20px}

/* news */
.news-tabs{display:flex;gap:3px;border-bottom:3px solid var(--yellow);margin-bottom:14px}
.news-tab{
  flex:1;background:#fff;color:var(--navy);
  font-size:16px;font-weight:700;padding:9px 2px;text-align:center;
  border-radius:5px 5px 0 0;
  white-space:nowrap;
}
.news-tab.is-active{background:var(--yellow)}
.news-tab:hover{filter:brightness(.97)}
/* お知らせは5件分の高さで固定（件数が少なくても枠の高さを保つ） */
.news-list{display:flex;flex-direction:column;gap:3px;padding:4px 2px;min-height:145px}
.news-item{display:flex;align-items:baseline;gap:14px;font-size:14.5px}
/* 固定バッジは下段の年月日の幅に合わせて狭める */
.news-item time{color:var(--navy);font-weight:500;flex:none;width:84px}
.news-badge{
  flex:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;
  width:84px;
  background:var(--red);color:#fff;font-size:12px;font-weight:700;
  padding:3px 9px;border-radius:3px;
}
/* 位置ピン形のアイコン */
.pin{
  position:relative;flex:none;
  width:11px;height:11px;background:#fff;display:inline-block;
  border-radius:50% 50% 50% 0;transform:rotate(-45deg);
}
.pin::after{
  content:"";position:absolute;top:50%;left:50%;
  width:4px;height:4px;background:var(--red);border-radius:50%;
  transform:translate(-50%,-50%);
}
/* 記事タイトルは1行：収まらない場合は折り返さず「…」省略 */
.news-text{
  color:var(--text);
  display:block;flex:1;min-width:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.news-text:hover{text-decoration:underline}

/* topics：本文グレー枠をパネル高さいっぱいに伸ばし、左右カラムと下端を揃える */
.panel-topics{display:flex;flex-direction:column}
.panel-topics .panel-body{flex:1}
.topics{position:relative;padding:26px 26px 44px}
.topic-viewport{overflow:hidden}
.topic-track{display:flex;transition:transform .4s ease}
.topic-slide{flex:0 0 100%;padding:0 2px}
/* h3・本文を固定行数でクランプ：幅が変わっても高さを変えず、あふれは「…」 */
.topic-slide h3{
  font-size:18px;font-weight:700;color:var(--navy);margin-bottom:14px;line-height:1.5;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;
  overflow:hidden;min-height:27px;
}
.topic-slide p{
  font-size:14px;color:#1f1f1f;margin-bottom:13px;line-height:1.7;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;
  overflow:hidden;min-height:95px;
}
.topic-slide p~p{display:none}
.topic-more{display:flex;justify-content:flex-end;align-items:center;gap:7px;color:var(--navy);font-weight:700;font-size:13.5px}
.topic-more:hover{color:var(--red)}
/* スクロール操作部：白バー＋赤い角型ボタン＋赤/黒ドット */
.topics::before{
  content:"";position:absolute;left:0;right:0;bottom:0;
  height:44px;background:#fff;
}
.topic-arrow{
  position:absolute;bottom:0;
  width:44px;height:44px;border-radius:0;background:var(--red);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:15px;
}
.topic-arrow:hover{background:#c91a14}
.topic-prev{left:0}
.topic-next{right:0}
.topic-dots{
  position:absolute;left:0;right:0;bottom:17px;
  display:flex;justify-content:center;gap:10px;
}
.topic-dots button{width:10px;height:10px;border-radius:50%;background:#000}
.topic-dots button.is-active{background:var(--red)}

/* 最新情報・緊急情報：本文グレー枠をパネルいっぱいに伸ばし下端を揃える */
.panel-news,
.panel-emergency{display:flex;flex-direction:column}
.panel-news .panel-body{flex:1}
.panel-emergency .panel-body{flex:1;display:flex;align-items:center;justify-content:center}
.emergency-body{text-align:justify;text-align-last:left;text-justify:inter-ideograph;color:#2c3956;font-size:14.5px;padding:42px 18px;width:100%}

/* sponsors：DUNLOPと協賛枠を同サイズの4枠にし、トピックスと同じ高さに伸長 */
.sponsors{display:flex;flex-direction:column;gap:14px}
.sponsor-main{
  flex:1 1 0;min-height:70px;
  display:flex;align-items:center;justify-content:center;
  background:#fff;border-radius:5px;padding:10px 18px;
  box-shadow:0 3px 12px rgba(0,0,0,.28);
}
.dunlop{
  display:inline-flex;align-items:center;gap:7px;
  font-family:"Arial Black",Arial,sans-serif;font-weight:900;font-style:italic;
  font-size:31px;color:#0a2342;letter-spacing:.01em;
}
.dunlop-d{
  width:36px;height:27px;background:var(--red);color:#fff;
  border-radius:50%/62%;display:flex;align-items:center;justify-content:center;
  font-size:21px;
}
/* 協賛リストのラッパーは透過し、各枠を sponsors の直接の子に */
.sponsor-list{display:contents}
.sponsor-slot{
  flex:1 1 0;min-height:70px;
  display:flex;align-items:center;justify-content:center;
  background:#c4cad2;border-radius:3px;padding:10px 22px;
  color:#69748a;font-weight:700;font-size:15px;letter-spacing:.4em;
}
.sponsor-slot:hover{background:#b9c0c9}

/* ===================== SECTIONS ===================== */
/* 講習会以降のブロック：白背景を3カラム幅(1304px)に狭め、左右は背景を見せる
   ブロックの上下マージンは60px（隣接ブロック間はマージン相殺で60px） */
.section{margin:60px 0;padding:0}
.section>.container{
  background:#fff;
  max-width:1304px;
  padding:36px 28px;
}
.section-band{
  background:var(--sky);color:#fff;font-size:20px;font-weight:700;
  padding:14px 26px;border-radius:3px;margin-bottom:32px;
}
.section-band small{font-size:13px;font-weight:500;margin-left:4px}

/* courses */
.course-block{margin-bottom:32px}
/* 見出し文字頭を「講習会・研修会」バンドの文字位置に合わせて右へ */
.course-cat{font-size:18px;font-weight:700;color:var(--navy);margin-bottom:10px;padding-left:26px}
.course-cat-green{color:var(--green)}
/* 見出し下の罫線：K100・1px */
.course-list{border-top:1px solid #000}
.course-item{
  display:grid;grid-template-columns:minmax(0,1fr) auto auto;
  align-items:center;gap:26px;
  /* 記事タイトル頭をカテゴリ見出しと揃える（左26px）。罫線はitem全幅で不変 */
  padding:17px 6px 17px 26px;
  /* 記事間の罫線：K100・1px・点線（線分3pt相当） */
  border-bottom:1px dashed #000;
}
/* 各カテゴリ最下段の罫線：K100・1px・実線 */
.course-item:last-child{border-bottom:1px solid #000}
/* PC版は罫線をK100に統一（水色・緑のアクセント罫線は使わない） */
.course-title{font-size:15.5px;font-weight:500}
.course-deadline{font-size:14px;font-weight:700;color:var(--red);white-space:nowrap}
.course-deadline span{margin-right:4px}
.course-files{display:flex;align-items:center;gap:17px}
.file-link{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:500}
.file-link+.file-link{padding-left:18px;border-left:1px dashed #bdbdbd}
.file-link:hover{color:var(--red);text-decoration:underline}

/* region */
/* 4列×5行のグリッドで列分割を固定（5,5,5,2）。列下端を確実に判定できる */
.region-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  grid-template-rows:repeat(5,auto);
  grid-auto-flow:column;
}
/* 列間の縦の点線罫線（1〜3列目の右側） */
.region-grid>.region-link:nth-child(-n+15){border-right:1px dashed #c2c2c2}
.region-link{
  display:flex;align-items:center;font-size:14.5px;font-weight:700;color:var(--navy);
  padding:14px 22px;border-bottom:1px dashed #c2c2c2;break-inside:avoid;
}
.region-link:hover{color:var(--red)}
/* 各列の最下段リンク（共和／北見／函館／紋別）は下線なし＝最上段と同じあしらい */
/* 最下段（5行目）に来る共和・北見・函館のみ下線なし＝最上段と同じあしらい */
.region-grid .region-link:nth-child(5),
.region-grid .region-link:nth-child(10),
.region-grid .region-link:nth-child(15){border-bottom:0}
.rg-arw{
  width:7px;height:7px;margin-left:8px;
  border-top:2px solid currentColor;border-right:2px solid currentColor;
  transform:rotate(45deg);display:inline-block;
}
.region-extra{
  margin-top:30px;padding-top:26px;border-top:1px solid #cfcfcf;
  display:flex;flex-wrap:wrap;gap:14px 50px;
}
/* 関連リンク（全道高校体育連盟／グラスホパー）の文字頭を加盟地域リンクと揃える */
.region-extra .region-link{border-bottom:0;padding:0 0 0 22px}

/* ===================== FOOTER ===================== */
.site-footer{
  background:
    radial-gradient(ellipse at 75% 35%,#1b4490 0%,#102e6b 56%,#0a2350 100%);
  color:#fff;padding:46px 0 0;
}
.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap}
.footer-brand{display:flex;align-items:center}
.footer-logo-img{height:70px;width:auto;display:block}
/* SP用：縦積みロゴと住所改行はPCでは非表示 */
.footer-logo-stack{display:none}
.sp-br{display:none}
.footer-info{text-align:right;color:#c8d2e2}
.footer-tel{display:flex;align-items:baseline;gap:14px;justify-content:flex-end;flex-wrap:wrap}
.ft-label{font-size:13px}
.ft-num{font-size:24px;font-weight:700}
.ft-fax{font-size:20px;font-weight:700}
.footer-addr{font-size:13px;margin-top:10px}
/* コピーライト：所在地と右端を揃え、右揃え・行間も合わせる */
.copyright{
  max-width:var(--container);margin:14px auto 0;padding:0 28px 24px;
  text-align:right;color:#9fb0c8;font-size:12px;line-height:1.7;
  font-family:"EB Garamond",serif;letter-spacing:.04em;
}

/* ===================== 下部ページ（一般大会など） ===================== */
/* 3カラム上部を1行レイアウトに（トップは2行構成のため modifier で上書き） */
.main-grid.is-single{grid-template-rows:auto}
.main-grid.is-single .sidebar{grid-row:1;align-self:stretch}
/* サイドバーをお知らせ枠の高さまで伸ばし、現在地リンクで余白を埋める */
.main-grid.is-single .side-list{flex:1;display:flex;flex-direction:column}

/* 現在地のサイドバーリンク：黄色ハイライト＋文字拡大＋枠を伸長 */
.side-link.is-current{flex:1;background:var(--yellow);font-size:24px}
.side-link.is-current:hover{background:var(--yellow)}

/* ---- 年・月セレクター ---- */
.select-area{padding:44px 0 0}
.select-heading{
  color:#fff;font-size:21px;font-weight:700;text-align:center;margin-bottom:24px;
}
.year-tabs{display:flex;gap:6px;align-items:flex-end;border-bottom:2px solid #fff}
.year-tab{
  flex:1;text-align:center;padding:12px 4px;
  background:#8a94af;color:#fff;font-size:16px;font-weight:700;line-height:1;
  border-radius:7px 7px 0 0;
}
.year-tab small{font-size:11px;font-weight:500;margin-left:1px}
.year-tab.is-active{background:var(--yellow);color:var(--navy)}
.year-tab:hover{filter:brightness(1.07)}
.year-tab.is-active:hover{filter:none}
/* 過去データ未整備の年（2018・2017）の空き枠 */
.year-tab.is-empty{background:rgba(138,148,175,.32);pointer-events:none}
.month-tabs{display:flex;gap:6px;margin-top:9px}
.month-tab{
  flex:1;text-align:center;padding:10px 2px;
  background:#8a94af;color:#fff;font-size:15px;font-weight:700;line-height:1;
  border-radius:7px 7px 0 0;
}
.month-tab small{font-size:10px;font-weight:500;margin-left:1px}
.month-tab.is-active{background:var(--red);color:#fff}
.month-tab:hover{filter:brightness(1.07)}
.month-tab.is-active:hover{filter:none}
/* 年・月ドロップダウン（SP用。PCでは非表示） */
.select-dropdowns{display:none}

/* ---- 大会ブロック：シアン帯＋テーブル ---- */
/* 白枠は上部3カラム（.container連動）と同じ幅にする：
   .container で左右余白を取り、その内側いっぱいに .tourney-box を白枠で配置 */
.tourney{margin:60px 0}
.tourney-box{background:#fff;overflow:hidden}
.tourney-band{
  background:var(--sky);color:#fff;font-size:19px;font-weight:700;padding:14px 26px;
}
.tourney-table{width:100%;border-collapse:collapse}
.tourney-table th,
.tourney-table td{
  text-align:left;font-size:15px;padding:15px 24px;
  border-bottom:1px dashed #c9c9c9;vertical-align:middle;
}
.tourney-table tr:last-child th,
.tourney-table tr:last-child td{border-bottom:0}
.tourney-table th{width:188px;background:#e6e6e6;color:var(--navy);font-weight:700}
.tourney-table td{background:#fff;color:var(--text)}
.tourney-deadline{color:var(--red);font-weight:700}
.tourney-table .file-link{font-size:14px}

/* ---- 大会共通情報（各大会ページ上部・月タブの選択に関わらず常時表示） ---- */
.tourney-notice-section{margin:30px 0 10px}
.tourney-notice-head{
  background:var(--yellow);color:var(--navy);font-size:17px;font-weight:700;
  padding:11px 22px;margin:0;letter-spacing:.04em;border-radius:6px 6px 0 0;
}
.tourney-notice{
  background:#fff;padding:20px 24px;border-bottom:1px dashed #c9c9c9;
}
.tourney-notice:last-child{border-bottom:0;border-radius:0 0 6px 6px}
.tourney-notice-title{
  font-size:17px;font-weight:700;color:var(--navy);margin:0 0 10px;
}
.tourney-notice-body{font-size:15px;line-height:1.85;color:var(--text)}
.tourney-notice-body p{margin:0 0 .8em}
.tourney-notice-body p:last-child{margin-bottom:0}
.tourney-notice-files{list-style:none;padding:0;margin:14px 0 0;display:flex;flex-wrap:wrap;gap:10px 16px}
.tourney-notice-files li{font-size:14px}
@media (max-width:768px){
  .tourney-notice-head{font-size:15px;padding:9px 16px}
  .tourney-notice{padding:16px 16px}
  .tourney-notice-title{font-size:15.5px}
  .tourney-notice-body{font-size:14px}
}

/* ===================== 下部ページ：ジュニア所属一覧 ===================== */
/* このページのサイドバーは伸長させず自然な高さ・上揃え */
.main-grid.is-single .sidebar.is-static{align-self:start}
.main-grid.is-single .sidebar.is-static .side-list{flex:none;display:block}

/* 注意事項パネル */
.panel-note{display:flex;flex-direction:column}
.panel-head h2 small{font-size:13px;font-weight:500;margin-left:10px}
.panel-note .panel-body{flex:1}
.note-body{background:#fff;color:var(--text)}
.note-body p{font-size:14px;line-height:1.85}
.note-body p+p{margin-top:12px}
/* 注意事項のアコーディオン開閉アイコン（SPのみ表示） */
.note-acc-ico{display:none}
.em-red{color:var(--red);font-weight:700}

/* 検索バンド（黄色ボックス） */
.shozoku-search{
  background:var(--yellow);border-radius:9px;
  padding:16px 22px;margin-bottom:14px;
  display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap;
}
.shz-search-form{flex:none}
.shozoku-search .search-box{width:300px}
.shz-search-note{color:var(--navy);font-size:14px;font-weight:500}

/* あ行フィルタータブ */
.shozoku-tabs{display:flex;gap:6px}
.shz-tab{
  flex:1;text-align:center;padding:11px 4px;
  background:#8a94af;color:#fff;font-size:15px;font-weight:700;line-height:1;
  border-radius:7px 7px 0 0;
}
.shz-tab.is-active{background:var(--red);color:#fff}
.shz-tab:hover{filter:brightness(1.07)}
.shz-tab.is-active:hover{filter:none}
/* 絞り込み検索ボタン（SP用・PCでは非表示） */
.shozoku-filter-btn{display:none}

/* 所属一覧テーブル：PC＝25行表示・横スクロール／SP＝15行表示・縦スクロール */
.shozoku-list{margin:0 0 60px}
.shz-sort-note{display:none}
.shozoku-frame{position:relative}
.shozoku-scroll{
  overflow-x:auto;overflow-y:hidden;
  height:894px;-webkit-overflow-scrolling:touch;
  cursor:grab;
}
.shozoku-scroll.is-dragging{cursor:grabbing}
.shozoku-scroll.is-dragging *{cursor:grabbing!important}
.shozoku-table{display:flex;width:max-content}
.shz-col{
  flex:0 0 326px;
  display:grid;grid-template-columns:116px minmax(0,1fr);
  align-content:start;
}
.shz-col+.shz-col{border-left:1px solid #cdd4da}
.shz-th,.shz-code,.shz-name{
  display:block;padding:0 13px;font-size:14px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  border-bottom:1px solid #d8dde2;
}
.shz-th{
  height:40px;line-height:40px;background:var(--sky);color:#fff;font-weight:700;
  border:0;border-bottom:0;width:100%;text-align:left;cursor:pointer;
  font-family:inherit;-webkit-appearance:none;appearance:none;
  transition:background-color .15s ease;
}
.shz-th:hover{background:#1f93c2}
.shz-arw{display:inline-block;margin-left:5px;font-size:10px;font-style:normal;line-height:1;vertical-align:1px}
.shz-code{height:34px;line-height:34px;background:#eaf0f4;color:var(--navy);font-weight:500}
.shz-name{height:34px;line-height:34px;background:#fff;color:var(--text)}
.shz-empty{
  padding:60px 20px;text-align:center;font-size:15px;color:#fff;
  font-weight:500;width:100%;
}

/* 横スクロールを示すオーバーレイ（PCのみ・マウス操作で消える） */
.shozoku-hint{
  position:absolute;inset:0;z-index:5;
  background:rgba(3,25,63,.6);
  display:flex;align-items:center;justify-content:center;
  transition:opacity .35s ease;cursor:default;
}
.shozoku-hint.is-hidden{opacity:0;pointer-events:none}
.hint-inner{display:flex;flex-direction:column;align-items:center;gap:14px}
.hint-mouse{width:32px;height:auto}
.hint-row{display:flex;align-items:center;gap:13px}
.hint-text{color:#fff;font-size:18px;font-weight:700;letter-spacing:.05em}

/* 絞り込み検索ポップアップ（SPのみ表示） */
.shz-modal{
  position:fixed;inset:0;z-index:120;display:none;
  background:rgba(3,25,63,.55);
  align-items:center;justify-content:center;padding:24px;
}
.shz-modal.is-open{display:flex}
.shz-modal-panel{
  position:relative;background:#fff;border-radius:12px;
  width:100%;max-width:420px;padding:30px 20px 24px;
}
.shz-modal-title{
  text-align:center;color:var(--navy);font-size:18px;font-weight:700;
  margin:0 0 18px;
}
.shz-modal-close{
  position:absolute;top:8px;right:12px;
  width:36px;height:36px;border:0;background:none;
  font-size:28px;line-height:1;color:var(--navy);cursor:pointer;
}
.shz-modal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.shz-mtab{
  padding:15px 4px;border:0;border-radius:7px;
  background:#8a94af;color:#fff;font-size:15px;font-weight:700;line-height:1;
  font-family:inherit;cursor:pointer;
}
.shz-mtab.is-active{background:var(--red)}
.shz-mtab-clear{background:var(--navy)}
.hint-arw{width:15px;height:15px;flex:none}
.hint-col{display:flex;flex-direction:column;align-items:center;gap:8px}

/* ジュニアランキング表：左＝縦スクロール案内／右＝横スクロール案内 */
.jr-hint{display:block}
.jr-hint-zone{
  position:absolute;top:0;bottom:0;
  display:flex;align-items:center;justify-content:center;
}
.jr-hint-v{left:0;width:752px;border-right:2px solid rgba(255,255,255,.45)}
.jr-hint-h{left:752px;right:0}

/* ===================== ジュニアランキング ===================== */
.jrrank-heading{
  color:#fff;font-size:22px;font-weight:700;text-align:center;margin:0 0 32px;
}
.jrrank-heading .jrrank-date{font-size:18px;font-weight:600;margin-left:2px}
.jrrank-controls{
  display:flex;justify-content:space-between;align-items:stretch;gap:30px;
  position:relative;margin-bottom:20px;
}
/* タブ下の白い罫線を表の右端まで伸ばす */
.jrrank-controls::before{
  content:'';position:absolute;left:0;right:0;top:42px;height:2px;background:#fff;
}
.jrrank-controls-l{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
.jrrank-controls-r{
  flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:14px;
}
.jrrank-cats{display:flex;gap:6px;align-items:flex-end;position:relative;z-index:1}
.jr-cat{
  padding:13px 22px;border:0;border-radius:7px 7px 0 0;
  background:#8a94af;color:#fff;font-size:16px;font-weight:700;line-height:1;
  font-family:inherit;cursor:pointer;
}
.jr-cat.is-active{background:var(--yellow);color:var(--navy)}
.jr-cat:hover{filter:brightness(1.07)}
.jr-cat.is-active:hover{filter:none}
.jr-cat-sp{display:none}
.jrrank-actions{display:flex;gap:14px;margin-top:20px}
.jr-btn{
  display:inline-block;padding:13px 26px;border:0;border-radius:6px;
  font-size:15px;font-weight:700;font-family:inherit;cursor:pointer;line-height:1;
  box-shadow:0 2px 6px rgba(0,0,0,.25);
}
.jr-btn-white{background:#fff;color:var(--navy)}
.jr-btn-gray{background:#8a94af;color:#fff}
.jr-btn:hover{filter:brightness(1.05)}
.jrrank-note{color:#fff;font-size:14px;line-height:1.4;text-align:right;margin:-10px 0 0}
.jr-howto{
  display:inline-flex;align-items:center;gap:8px;margin-top:auto;
  background:#fff;color:var(--navy);font-size:15px;font-weight:700;line-height:1;
  padding:10px 22px;border-radius:6px;box-shadow:0 2px 6px rgba(0,0,0,.25);
}
.jr-howto:hover{filter:brightness(1.05)}
.jr-q{
  width:21px;height:21px;border:2px solid var(--navy);border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;font-size:12px;flex:none;
}

/* ランキングテーブル */
.jrrank-list{margin:0 0 60px}
.jr-sort-note{display:none}
.jr-filter-bar{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.4);
  border-radius:6px;padding:10px 16px;margin-bottom:14px;
  color:#fff;font-size:14px;
}
.jr-filter-bar[hidden]{display:none}
.jr-filter-label strong{font-weight:700}
.jr-filter-clear{
  border:0;background:var(--red);color:#fff;font-weight:700;
  padding:7px 18px;border-radius:5px;font-size:13px;cursor:pointer;font-family:inherit;
}
.jr-filter-clear:hover{filter:brightness(1.08)}
.jrrank-frame{position:relative}
.jrrank-scroll{
  overflow:auto;height:966px;
  -webkit-overflow-scrolling:touch;background:#fff;border-radius:4px;
  cursor:grab;
}
.jrrank-scroll.is-dragging{cursor:grabbing}
.jrrank-scroll.is-dragging *{cursor:grabbing!important}
.jrrank-table{border-collapse:collapse;width:max-content;font-size:13px}
.jr-th{padding:0;position:sticky;top:0;z-index:2}
.jr-thbtn{
  display:block;width:100%;border:0;cursor:pointer;font-family:inherit;
  background:var(--sky);color:#fff;font-size:13px;font-weight:700;
  padding:11px 12px;white-space:nowrap;text-align:center;line-height:1.3;
}
.jr-thbtn:hover{filter:brightness(1.07)}
.jr-th-pt .jr-thbtn{background:#20559e}
.jr-th-r .jr-thbtn{color:var(--yellow)}
.jr-arw{margin-left:4px;font-size:9px;font-style:normal;vertical-align:1px}
.jrrank-table tbody tr{background:#fff}
.jrrank-table tbody tr:nth-child(even){background:#f4f7f9}
.jr-td{
  padding:7px 12px;border-bottom:1px solid #e0e5ea;border-right:1px solid #eef1f4;
  white-space:nowrap;text-align:center;color:var(--text);
  background-color:inherit;
}
.jr-td-name{text-align:left;font-weight:500;overflow:hidden;text-overflow:ellipsis}
.jr-td-affil{
  text-align:left;color:var(--navy);cursor:pointer;
  text-decoration:underline;text-underline-offset:2px;
  overflow:hidden;text-overflow:ellipsis;
}
.jr-td-affil:hover{background:#fff3b8}
.jr-td-pt{color:#43506a}
.jr-empty{padding:50px 20px;text-align:center;color:var(--navy);font-weight:600}

/* RP と 旭室 の境目で左右分割：左8列は横位置を固定（縦のみスクロール）、
   旭室以降は横スクロール */
.jr-fz{position:sticky;z-index:1}
.jr-th.jr-fz{z-index:3}
.jr-fz0{left:0;width:108px;min-width:108px;max-width:108px}
.jr-fz1{left:108px;width:150px;min-width:150px;max-width:150px}
.jr-fz2{left:258px;width:56px;min-width:56px;max-width:56px}
.jr-fz3{left:314px;width:92px;min-width:92px;max-width:92px}
.jr-fz4{left:406px;width:160px;min-width:160px;max-width:160px}
.jr-fz5{left:566px;width:46px;min-width:46px;max-width:46px}
.jr-fz6{left:612px;width:74px;min-width:74px;max-width:74px}
.jr-fz7{left:686px;width:66px;min-width:66px;max-width:66px;
  box-shadow:4px 0 6px -3px rgba(0,0,0,.32);}

/* ===================== NAV OVERLAY ===================== */
.nav-overlay{
  position:fixed;inset:0;z-index:100;
  background:rgba(255,255,255,.55);backdrop-filter:blur(2px);
  opacity:0;visibility:hidden;transition:opacity .25s ease;
}
.nav-overlay.is-open{opacity:1;visibility:visible}
.nav-panel{
  position:absolute;top:0;left:0;right:0;
  background:rgba(255,255,255,.97);box-shadow:0 14px 40px rgba(0,0,0,.25);
  transform:translateY(-14px);transition:transform .28s ease;
  max-height:100vh;overflow-y:auto;
}
.nav-overlay.is-open .nav-panel{transform:translateY(0)}
.nav-top{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 26px;border-bottom:1px solid #e5e8ee;
}
.nav-logo{display:flex;align-items:center}
.nav-logo-img{height:46px;width:auto;display:block}
.nav-close{
  width:54px;height:54px;background:var(--navy);color:#fff;border-radius:4px;
  display:flex;align-items:center;justify-content:center;
}
.nav-close:hover{background:var(--navy-d)}
.nav-body{
  display:grid;grid-template-columns:1fr 1fr;gap:0 56px;
  max-width:980px;margin:0 auto;padding:30px 26px;
}
.nav-link{
  display:flex;align-items:center;gap:10px;
  padding:13px 4px;border-bottom:1px solid #e3e6ec;font-size:15px;
}
.nav-link-main{font-weight:700;color:var(--navy)}
.nav-link-pdf{font-weight:500;color:#3a3a3a;font-size:13.5px}
.nav-link:hover{color:var(--red)}
.nv-arw{
  width:7px;height:7px;margin-left:auto;flex:none;
  border-top:2px solid currentColor;border-right:2px solid currentColor;
  transform:rotate(45deg);
}
.nav-foot{
  background:#fff;border-top:1px solid #e5e8ee;
  display:flex;align-items:center;justify-content:center;gap:46px;
  flex-wrap:wrap;padding:24px 26px 34px;
}
.nav-foot-brand{display:flex;align-items:center}
.nav-foot-logo-img{height:50px;width:auto;display:block}
.nav-foot-info{font-size:13px;color:#33415a}
.nav-foot-info .ft-label{font-size:12px}

body.no-scroll{overflow:hidden}

/* ===================== RESPONSIVE ===================== */
@media (max-width:1180px){
  .header-pdfs{gap:18px}
  .header-tel strong{font-size:21px}
}

/* 3カラムが詰まる幅ではカテゴリタブの文字を縮小（折り返し回避） */
@media (min-width:1081px) and (max-width:1180px){
  .news-tab{font-size:13px}
}

@media (max-width:1080px){
  .main-grid{display:flex;flex-direction:column;align-items:stretch;gap:18px}
  .sidebar{display:none}
  .col-center,.col-right{display:contents}
  .panel-news{order:1}
  .panel-emergency{order:2}
  .panel-topics{order:3}
  .sponsors{order:4}
  .header-meta{display:none}
  .hbtn-tel{
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:4px;width:84px;color:#fff;font-size:11px;flex:none;
  }
  .logo{margin-right:auto;top:0}
}

@media (max-width:768px){
  body{font-size:14px}
  .container{padding:0 16px}

  /* header */
  .header-inner{min-height:62px;padding:0 16px;padding-right:62px}
  .header-actions{height:62px}
  .logo{padding:8px 0}
  .logo-img{height:42px}
  .hbtn-contact{display:none}
  .hbtn-tel,.hbtn-menu{width:62px;font-size:9.5px;gap:3px}
  .hbtn-tel svg{width:21px;height:21px}
  .menu-bars{width:19px}
  .menu-bars i{height:2px}

  /* hero */
  .hero{padding-bottom:30px}
  /* SP用の背景サイズ・位置（HOKKAIDO / ボール） */
  .hero-bg::before{
    background-position:68% 140px;
    background-size:auto 200vh;
  }
  .hero-bg::after{
    background-position:left 150px;
    background-size:auto 78vh;
  }
  .breadcrumb{display:none}
  .sp-schedule-btn{
    display:inline-flex;align-items:center;gap:8px;
    color:#fff;font-weight:700;font-size:13px;
    padding:10px 16px;margin:14px 0;
  }
  .main-grid{gap:14px}
  .panel-head h2{font-size:17px}
  /* 注意事項見出し：「※必ず〜」を改行して別行に */
  .panel-head h2 small{display:block;margin-left:0;margin-top:2px}
  /* SP：注意事項パネルをアコーディオン化（初期は畳む） */
  .note-acc-head{cursor:pointer}
  .note-acc-head h2{padding-right:8px}
  .note-acc-ico{
    display:block;flex:none;width:11px;height:11px;margin:-3px 3px 0 0;
    border-right:2.6px solid currentColor;border-bottom:2.6px solid currentColor;
    transform:rotate(45deg);transition:transform .25s ease;
  }
  .panel-note.is-open .note-acc-ico{transform:rotate(-135deg);margin-top:3px}
  .panel-note .note-body{display:none}
  .panel-note.is-open .note-body{display:block}
  /* SP: パネル本文は白、お知らせカテゴリタブは別ページのため非表示 */
  .panel-body{background:#fff}
  .news-tabs{display:none}
  .news-list{gap:0;padding:2px 2px}
  .news-item{
    display:block;font-size:13.5px;
    padding:13px 2px;border-bottom:1px dashed #cfcfcf;
  }
  .news-item:last-child{border-bottom:0}
  .news-item time{display:block;margin-bottom:3px}
  .news-badge{margin-bottom:5px}

  /* topics：下部コントロールバー（i.png 準拠：グレーのバー＋両端の赤い矢印） */
  .topics{padding:20px 16px 63px}
  .topics::before{background:#c4cad2}
  /* 本文の余白を詰め、「続きを見る」を矢印から離す */
  .topic-slide p{min-height:80px}

  /* sponsors hidden on SP */
  .sponsors{display:none}

  /* sections */
  .section{margin:36px 0;padding:0}
  /* トピックス↔講習会・研修会の間隔を40pxに（ヒーロー下padding30px＋上margin10px） */
  #koushukai{margin-top:10px}
  .section-band{font-size:16px;padding:12px 16px}
  .section-band small{display:block;font-size:12px;margin:2px 0 0}

  /* courses -> stacked cards */
  .course-cat{
    background:var(--navy);color:#fff;font-size:15px;
    padding:14px 16px;text-align:center;margin-bottom:0;
  }
  .course-cat-green{background:var(--green);color:#fff}
  .course-list{border-top:0;margin-top:14px;display:flex;flex-direction:column;gap:14px}
  .course-item{
    display:block;border:0;border-top:3px solid var(--navy);padding:0;margin:0;background:#fff;
  }
  .course-item.course-accent-sky{border-top:3px solid var(--sky)}
  .course-item.course-accent-green{border-top:3px solid var(--green)}
  .course-title{padding:16px 4px;font-size:15px;font-weight:700}
  .course-deadline{padding:14px 4px;border-top:1px dashed #bdbdbd;font-size:15px;white-space:normal}
  .course-files{
    padding:14px 4px;border-top:1px dashed #bdbdbd;
    border-bottom:2px solid #1c1c1c;gap:14px;flex-wrap:wrap;
  }
  .file-link{font-size:14px}
  .file-link+.file-link{padding-left:14px}

  /* region -> single column */
  .region-grid{display:block}
  .region-grid>.region-link:nth-child(-n+15){border-right:0}
  /* SPは1列なので途中の列下端線（5/10/15番目）は通常の点線に戻す */
  .region-grid>.region-link:nth-child(5),
  .region-grid>.region-link:nth-child(10),
  .region-grid>.region-link:nth-child(15){border-bottom:1px dashed #c2c2c2}
  .region-grid>.region-link:last-child{border-bottom:0}
  .region-link{padding:16px 6px;font-size:15px}
  .region-extra{flex-direction:column;gap:18px;margin-top:24px}
  /* SPでも関連リンクの文字頭を加盟地域リンク（左6px）に揃える */
  .region-extra .region-link{padding-left:6px}

  /* footer：SPは縦積みロゴ＋中央寄せ（spフッター.png 準拠） */
  .site-footer{padding:40px 0 0;text-align:center}
  .footer-inner{flex-direction:column;gap:26px}
  .footer-brand{justify-content:center}
  .footer-logo-img{display:none}
  .footer-logo-stack{display:flex;flex-direction:column;align-items:center;gap:8px}
  .footer-stack-mark{height:80px;width:auto;display:block}
  .footer-stack-ja{
    font-family:"Noto Serif JP",serif;font-weight:600;
    font-size:26px;color:#fff;letter-spacing:.12em;
  }
  .footer-stack-en{
    font-family:"EB Garamond",serif;
    font-size:13px;color:#c8d2e2;letter-spacing:.06em;
    position:relative;top:-5px;
  }
  .footer-info{text-align:center}
  /* 電話番号（事務局）＋番号は1行、FAXは次行 */
  .footer-tel{
    display:flex;flex-direction:row;flex-wrap:wrap;
    justify-content:center;align-items:baseline;column-gap:8px;row-gap:6px;
  }
  .ft-num{font-size:22px}
  .ft-fax{flex-basis:100%;font-size:19px}
  .footer-addr{font-size:12.5px;margin-top:14px;line-height:1.95}
  .sp-br{display:inline}
  .copyright{text-align:center;padding:0 16px 24px;margin-top:18px}

  /* nav overlay -> single column */
  .nav-top{padding:12px 16px}
  .nav-logo-img{height:34px}
  .nav-close{width:46px;height:46px}
  .nav-body{grid-template-columns:1fr;gap:0;padding:14px 16px 24px}
  .nav-link{padding:14px 4px;font-size:15px}
  .nav-link-pdf{font-size:13px}
  .nav-foot{flex-direction:column;gap:18px;padding:20px 16px 30px}
  .nav-foot-info{text-align:center}
  /* 2026-08-03: SPでも PDF サブ項目を表示 (以前は非表示化していたが 実運用で到達経路がないためユーザー要望で復活)
     .nav-link-pdf { display:none } は解除。子リンクとして少し左インデントで表示。 */
  .nav-link-pdf{
    padding-left:20px;font-size:13px;color:#3a3a3a;
    background:#f5f7fa;border-left:3px solid var(--yellow,#fff100);
  }

  /* SP下部固定アイコンバー */
  body{padding-bottom:66px}
  .sp-tabbar{
    display:flex;position:fixed;left:0;right:0;bottom:0;z-index:90;
    background:#fff;border-top:1px solid #dcdcdc;
    box-shadow:0 -2px 10px rgba(0,0,0,.12);
  }
  .sp-tab{
    flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;
    padding:9px 2px 8px;font-size:10.5px;font-weight:700;color:#7a8190;
  }
  .sp-tab.is-active{color:var(--navy)}
  .sp-tab:active{background:#f1f3f7}

  /* 下部ページ：セレクターはドロップダウン、大会テーブルは縦積み */
  .select-area{padding:30px 0 0}
  .select-heading{font-size:16px;margin-bottom:18px}
  .year-tabs,.month-tabs{display:none}
  .select-dropdowns{display:flex;gap:12px}
  .select-field{
    position:relative;border-radius:6px;overflow:hidden;
    background:linear-gradient(to right,#fff calc(100% - 42px),var(--sky) calc(100% - 42px));
  }
  .select-field-year{flex:1.5}
  .select-field-month{flex:1}
  .select-field select{
    appearance:none;-webkit-appearance:none;
    width:100%;padding:13px 52px 13px 16px;
    background:transparent;border:0;outline:0;
    font-family:inherit;font-size:16px;font-weight:700;color:var(--navy);
  }
  .select-field::after{
    content:"";position:absolute;top:50%;right:14px;transform:translateY(-50%);
    border-left:7px solid transparent;border-right:7px solid transparent;
    border-top:8px solid #fff;pointer-events:none;
  }
  .tourney-band{font-size:15px;padding:12px 16px}
  /* 大会テーブル：縦積み（ラベル上・値下） */
  .tourney-table,.tourney-table tbody{display:block}
  .tourney-table tr{display:block;border-bottom:1px dashed #c9c9c9}
  .tourney-table tr:last-child{border-bottom:0}
  .tourney-table th,
  .tourney-table td{display:block;width:auto;background:transparent;border-bottom:0}
  .tourney-table th{padding:14px 16px 0;font-size:14px;color:var(--navy)}
  .tourney-table td{padding:5px 16px 14px;font-size:14px}
  .tourney-table .tr-file{border-bottom:0}
  .tourney-table .tr-file th{display:none}
  .tourney-table .tr-file td{padding:8px 16px}
  .tourney-table tr:not(.tr-file)+.tr-file td{padding-top:14px}
  .tourney-table .tr-file:has(+tr:not(.tr-file)){border-bottom:1px dashed #c9c9c9}
  .tourney-table .tr-file:has(+tr:not(.tr-file)) td{padding-bottom:14px}
  /* 下部ページのお知らせ：SPは最新3件・余白を詰める */
  .news-list-sub .news-item:nth-child(n+4){display:none}
  .news-list-sub .news-item:nth-child(3){border-bottom:0}
  /* トップページ最新情報：SPは3件表示 */
  #newsList .news-item:nth-child(n+4){display:none}
  #newsList .news-item:nth-child(3){border-bottom:0}
  .news-list-sub .news-item{padding-top:8px;padding-bottom:8px}
  .news-list-sub .news-item time{margin-bottom:0}
  .news-list-sub .news-badge{margin-bottom:2px}
  /* SP：大会ブロック前後のマージンは30px */
  .tourney{margin:30px 0}

  /* ジュニア所属一覧：SP調整 */
  .shozoku-search{flex-direction:column;gap:10px;padding:14px 16px}
  .shozoku-search .search-box{width:100%}
  .shozoku-tabs{display:none}
  .shozoku-filter-btn{
    display:block;margin:0 auto;
    background:#fff;color:var(--navy);font-weight:700;font-size:15px;
    padding:13px 52px;border-radius:6px;box-shadow:0 2px 6px rgba(0,0,0,.25);
  }
  .shz-sort-note{display:block;color:#fff;font-size:13px;line-height:1.7;margin:14px 0 10px}
  .shozoku-list{margin-bottom:30px}
  /* 所属一覧：SPは1列・縦スクロール（15行）。横スクロールは無効 */
  .shozoku-scroll{overflow-x:hidden;overflow-y:auto;height:550px}
  .shozoku-table{flex-direction:column;width:100%}
  .shz-col{flex:none;width:100%;grid-template-columns:116px minmax(0,1fr)}
  .shz-col+.shz-col{border-left:0}
  .shz-col:not(:first-child) .shz-th{display:none}
  .shz-th,.shz-code,.shz-name{font-size:13px;padding:0 12px}
  .shozoku-hint{display:none}

  /* ジュニアランキング：SP調整 */
  .jrrank-heading{font-size:17px;margin-bottom:16px}
  .jrrank-heading .jrrank-date{display:block;font-size:15px;margin:4px 0 0}
  .jrrank-controls{display:flex;flex-wrap:wrap;gap:12px}
  .jrrank-controls::before{top:38px}
  .jrrank-controls-l,.jrrank-controls-r{display:contents}
  .jrrank-cats{order:1;flex:0 0 100%;gap:5px}
  .jr-cat{flex:1;padding:12px 4px;font-size:14px;text-align:center}
  .jr-cat-pc{display:none}
  .jr-cat-sp{display:inline}
  .jrrank-note{display:none}
  .jrrank-actions{order:2;flex:1 1 auto;display:flex;margin-top:0;gap:10px}
  .jr-btn{padding:12px 18px;font-size:14px}
  .jr-btn-white{display:none}
  .jr-btn-gray{flex:1}
  .jr-howto{order:3;flex:none;margin-top:0;padding:11px;border-radius:50%}
  .jr-howto-label{display:none}
  .jr-sort-note{display:block;color:#fff;font-size:13px;line-height:1.7;margin:14px 0 10px}
  .jrrank-list{margin-bottom:30px}
  .jrrank-scroll{height:534px}
  .jrrank-table{font-size:12px}
  .jr-thbtn{font-size:12px;padding:9px 10px}
  .jr-td{padding:6px 10px}
  /* SPは横スクロール案内のみ。固定2列（縦スクロール側）には編みかけしない */
  .jrrank-frame .shozoku-hint{display:flex;background:transparent}
  .jr-hint-v{display:none}
  /* 横スクロール案内：固定2列の右（実際に横スクロールする領域）に表示 */
  .jr-hint-h{left:184px;right:0;background:rgba(3,25,63,.6)}
  .jr-hint-h .hint-text{font-size:15px;white-space:nowrap}
  /* SP：横位置の固定はJTA登録番号と選手名の2列のみ。
     生年〜RP は横スクロール対象にするが、ヘッダーは縦方向に固定したまま残す */
  .jr-td.jr-fz2,.jr-td.jr-fz3,.jr-td.jr-fz4,
  .jr-td.jr-fz5,.jr-td.jr-fz6,.jr-td.jr-fz7{position:static}
  .jr-th.jr-fz2,.jr-th.jr-fz3,.jr-th.jr-fz4,
  .jr-th.jr-fz5,.jr-th.jr-fz6,.jr-th.jr-fz7{left:auto;z-index:2}
  .jr-fz7{box-shadow:none}
  .jr-fz0{left:0;width:80px;min-width:80px;max-width:80px}
  .jr-fz1{left:80px;width:104px;min-width:104px;max-width:104px;
    box-shadow:4px 0 6px -3px rgba(0,0,0,.32);}
}

/* ===================== ジュニア申請受付（jrshinsei） ===================== */
/* ページ見出し（紺背景に白文字） */
.apply-title{
  color:#fff;font-weight:700;text-align:center;
  font-size:32px;line-height:1.4;padding:26px 0 50px;
}
.apply-title small{font-size:.62em;font-weight:700;letter-spacing:.02em}

/* ---- 注意事項＋高校登録様式（2カラム） ---- */
.apply-notice-sec{padding:14px 0 48px}
.apply-notice{max-width:1200px}
/* メイングリッド由来の grid-column 指定を打ち消す */
.apply-notice .panel-note{grid-column:auto;grid-row:auto}
/* 注意事項の見出しは中央揃え（矢印はSP時に右端） */
.apply-note .panel-head h2{flex:1;text-align:center}
/* 注意事項パネル本文：左＝注意文／右＝高校登録様式（入れ子） */
.apply-note-body{display:flex;gap:28px;align-items:stretch}
.apply-note-text{flex:1.1;min-width:0}
.koukou-box{
  flex:1;min-width:0;display:flex;flex-direction:column;
  padding-left:26px;border-left:1px solid #d8dde2;
}
.koukou-head{
  font-size:17px;font-weight:700;color:var(--navy);
  text-align:center;margin-bottom:12px;
}
.koukou-text{font-size:14px;line-height:1.85;flex:1}
.koukou-dl{
  display:inline-flex;align-items:center;gap:9px;align-self:flex-start;
  margin-top:14px;font-size:14px;font-weight:700;color:var(--navy);
}
.koukou-dl:hover{color:var(--red);text-decoration:underline}
.koukou-arw{
  width:7px;height:7px;border-top:2px solid currentColor;border-right:2px solid currentColor;
  transform:rotate(45deg);display:inline-block;
}

/* ---- 届出選択（タブ） ---- */
.apply-select{padding:8px 0 0}
.apply-select>.container{max-width:1080px}
.apply-select-heading{
  color:#fff;font-size:21px;font-weight:700;text-align:center;margin-bottom:52px;
}
.form-tabs{display:flex;gap:6px}
.form-tab{
  flex:1;padding:15px 8px;line-height:1.2;
  background:#8a94af;color:#fff;font-size:16px;font-weight:700;
  border-radius:8px 8px 0 0;font-family:inherit;
  transition:background-color .15s ease,color .15s ease;
}
.form-tab.is-active{background:var(--yellow);color:var(--navy)}
.form-tab:not(.is-active):hover{filter:brightness(1.07)}

/* ---- フォーム本体 ---- */
.apply-form-sec{padding:0 0 70px}
.apply-form-sec>.container{max-width:1080px}
.form-panel{
  display:none;
  background:#fff;border-radius:0 0 8px 8px;overflow:hidden;
  box-shadow:0 6px 18px rgba(0,0,0,.3);
}
.form-panel.is-active{display:block}
.form-panel-head{
  background:var(--yellow);color:var(--navy);text-align:center;
  font-size:20px;font-weight:700;padding:16px 20px;
}
.form-block{padding:30px 44px 0}
.form-block:last-of-type{padding-bottom:6px}

/* セクション小見出し（①②） */
.form-subhead{
  display:flex;align-items:center;gap:11px;
  font-size:17px;font-weight:700;color:var(--navy);
  padding-bottom:9px;border-bottom:2px solid var(--navy);
  margin-bottom:16px;
}

/* ①②の入力欄を囲うグレーカード */
.form-card{
  background:#e8ebf0;border-radius:8px;
  padding:2px 24px;
}
.form-num{font-size:21px;line-height:1;color:var(--navy)}
.form-subhead-note{
  margin-left:auto;color:var(--red);font-size:13px;font-weight:700;
  text-decoration:underline;text-underline-offset:2px;
}
/* セクション見出し下の注意文（赤・中央） */
.form-caption{
  color:var(--red);font-weight:700;font-size:13.5px;
  text-align:center;line-height:1.7;margin:0 0 16px;
}
/* インライン小欄（学年など） */
.f-inline{display:flex;align-items:center;gap:8px}

/* 入力行 */
.form-row{
  display:grid;grid-template-columns:200px minmax(0,1fr);
  border-bottom:1px solid #fff;
}
.form-row:last-child{border-bottom:0}
.form-label{
  display:flex;align-items:center;gap:8px;
  padding:16px 14px 16px 6px;
  font-size:14.5px;font-weight:700;color:var(--navy);
}
.form-field{
  display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;
  padding:13px 6px;
}
.f-input{
  width:100%;max-width:430px;
  padding:10px 13px;border:1px solid #c4cad2;border-radius:5px;
  font-family:inherit;font-size:14px;color:var(--text);background:#fff;
}
.f-input::placeholder{color:#9aa1ac}
.f-input:focus{outline:0;border-color:var(--navy);box-shadow:0 0 0 3px rgba(16,46,107,.14)}
.f-input.is-error{border-color:var(--red)}
.f-input.is-error:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(227,33,27,.16)}
.f-input.is-flash-warn{animation:hta-flash-warn .5s ease}
@keyframes hta-flash-warn{
  0%{background:#fff}
  30%{background:#fff1f0;box-shadow:0 0 0 3px rgba(227,33,27,.22)}
  100%{background:#fff;box-shadow:none}
}
.f-input.is-auto-filled{animation:hta-flash-ok 1.2s ease}
@keyframes hta-flash-ok{
  0%{background:#fff}
  20%{background:#e8f8ec;box-shadow:0 0 0 3px rgba(35,165,90,.22)}
  100%{background:#fff;box-shadow:none}
}

/* 入力エラーメッセージ */
.f-error{
  width:100%;margin-top:7px;
  color:var(--red);font-size:12.5px;font-weight:700;line-height:1.6;
}
.f-error[hidden]{display:none}

/* 所属名：絞り込みコンボボックス */
.combo{position:relative;width:100%;max-width:430px}
.f-combo{width:100%;max-width:none;padding-right:38px}
.combo-caret{
  position:absolute;top:50%;right:15px;margin-top:-5px;
  width:8px;height:8px;pointer-events:none;
  border-right:2px solid var(--navy);border-bottom:2px solid var(--navy);
  transform:rotate(45deg);
}
.combo-list{
  position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:20;
  max-height:262px;overflow-y:auto;
  background:#fff;border:1px solid #c4cad2;border-radius:5px;
  box-shadow:0 8px 18px rgba(0,0,0,.22);
}
.combo-list[hidden]{display:none}
.combo-opt{
  padding:9px 14px;font-size:14px;color:var(--text);cursor:pointer;
  border-bottom:1px solid #eef0f3;
}
.combo-opt:last-child{border-bottom:0}
.combo-opt:hover,
.combo-opt.is-active{background:#eef3fb}
.combo-note{padding:9px 14px;font-size:12px;color:#8a909c;background:#f6f7f9}
.combo-empty{padding:16px 14px;font-size:13px;color:#8a909c;text-align:center}

/* 姓・名／セイ・メイ */
.form-field-name{gap:14px 22px}
.f-sub{display:flex;align-items:center;gap:8px}
.f-sub-lbl{flex:none;font-size:13px;font-weight:700;color:var(--navy)}
.f-sub .f-input{width:170px}

/* 性別ラジオ */
.f-radio{display:inline-flex;align-items:center;gap:7px;cursor:pointer;font-weight:700;color:var(--text)}
.f-radio input{width:17px;height:17px;accent-color:var(--navy);cursor:pointer}

/* 生年月日 */
.form-field-date .f-date{display:flex;align-items:center;gap:7px}
.f-input-md{width:64px}
.f-date-sel{
  appearance:none;-webkit-appearance:none;
  border:1px solid #c4cad2;border-radius:5px;background:#fff;
  font-family:inherit;font-size:14px;color:var(--text);cursor:pointer;
  padding:10px 30px 10px 12px;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8'><path d='M1 1l5 5 5-5' stroke='%23102e6b' stroke-width='2' fill='none'/></svg>");
  background-repeat:no-repeat;background-position:right 10px center;
}
.f-date-sel:focus{outline:0;border-color:var(--navy);box-shadow:0 0 0 3px rgba(16,46,107,.14)}
.f-date-year{width:110px}
.f-date-md{width:82px}
.f-unit{font-size:13px;font-weight:700;color:var(--navy)}

/* 住所 */
.form-field-addr{flex-direction:column;align-items:stretch;gap:10px}
.form-field-addr .f-input{max-width:none}
/* 郵便番号欄は電話番号欄と同じ幅に */
.form-field-addr .f-input-zip{max-width:430px}
.f-input-zip{max-width:260px}

/* 選手ブロック */
.player-block+.player-block{margin-top:22px}
.player-bar{
  display:flex;align-items:center;justify-content:space-between;
  background:var(--navy);color:#fff;
  padding:9px 16px;margin:0 -24px;
  font-size:14px;font-weight:700;
}
/* 選手が1名のときは選手バーを表示しない（デザイン準拠） */
.player-list:not(.is-multi) .player-bar{display:none}
.player-del{
  background:#fff;color:var(--navy);font-family:inherit;
  font-size:12px;font-weight:700;padding:5px 14px;border-radius:4px;
}
.player-del:hover{background:#eef1f6}

/* もう1名追加 */
.player-add-wrap{text-align:center;margin-top:24px}
.form-add-btn{
  display:inline-flex;align-items:center;gap:11px;
  background:#fff;border:1.5px solid #b9c0cc;color:var(--navy);
  font-family:inherit;font-size:15px;font-weight:700;
  padding:11px 30px;border-radius:999px;
}
.form-add-btn:hover{background:#eef1f6;border-color:var(--navy)}
.add-ico{
  display:inline-flex;align-items:center;justify-content:center;
  width:23px;height:23px;border-radius:50%;
  background:var(--navy);color:#fff;font-size:15px;line-height:1;
}

/* プライバシーポリシー */
.privacy-head{
  text-align:center;font-size:17px;font-weight:700;color:var(--navy);
  margin-bottom:14px;
}
.privacy-box{
  border:1px solid #c4cad2;background:#f7f8fa;border-radius:4px;
  padding:18px 20px;max-height:210px;overflow-y:auto;
  font-size:12.5px;line-height:1.95;color:#3a4254;
}
.privacy-box>p{margin-top:9px}
.privacy-box>p:first-child{margin-top:0}
.privacy-box .pp-h{font-size:13px;font-weight:700;color:var(--navy);margin-top:15px}
.privacy-box .pp-list{list-style:none;margin:5px 0 0}
.privacy-box .pp-list li{padding-left:1.7em;text-indent:-1.7em;margin-top:3px}
.privacy-box .pp-foot{margin-top:18px;text-align:right}
.privacy-box .pp-foot p{margin-top:8px}
.form-consent{
  display:flex;align-items:center;justify-content:center;gap:10px;
  margin-top:20px;font-size:15px;font-weight:700;color:var(--navy);cursor:pointer;
}
.form-consent input{width:19px;height:19px;accent-color:var(--navy);cursor:pointer}

/* 送信ボタン */
.form-submit-wrap{text-align:center;padding:28px 44px 42px}
.form-submit{
  display:inline-flex;align-items:center;gap:13px;
  background:linear-gradient(180deg,#1c459b,#102e6b);
  color:#fff;font-family:inherit;font-size:18px;font-weight:700;
  padding:17px 60px;border-radius:7px;
  box-shadow:0 4px 11px rgba(0,0,0,.32);
}
.form-submit:not(:disabled):hover{filter:brightness(1.08)}
.form-submit:disabled{opacity:.42;cursor:not-allowed}
.submit-arw{
  width:8px;height:8px;border-top:2px solid currentColor;border-right:2px solid currentColor;
  transform:rotate(45deg);display:inline-block;
}

/* ---- 確認画面 ---- */
.confirm-steps{
  display:flex;justify-content:center;gap:10px;margin-bottom:22px;
}
.cstep{
  background:rgba(255,255,255,.16);color:#cdd6e6;
  font-size:13px;font-weight:700;padding:7px 18px;border-radius:999px;
}
.cstep.is-current{background:var(--yellow);color:var(--navy)}
.confirm-lead{padding:22px 44px 0;font-size:14.5px;color:#3a4254}
.confirm-table{width:100%;border-collapse:collapse}
.confirm-table th,
.confirm-table td{
  text-align:left;font-size:14.5px;padding:14px 18px;
  border-bottom:1px dashed #d3d7dd;vertical-align:top;
}
.confirm-table tr:first-child th,
.confirm-table tr:first-child td{border-top:1px dashed #d3d7dd}
.confirm-table th{
  width:210px;background:#eef1f5;color:var(--navy);font-weight:700;
}
.confirm-blank{color:#9aa1ac;font-weight:500}
.confirm-player+.confirm-player{margin-top:22px}
.confirm-player-no{
  background:var(--navy);color:#fff;font-size:14px;font-weight:700;
  padding:9px 16px;border-radius:5px 5px 0 0;
}
.confirm-consent-note{
  text-align:center;font-size:14px;font-weight:700;color:var(--navy);
  margin-top:24px;
}
.confirm-actions{
  display:flex;justify-content:center;gap:16px;
  padding:26px 44px 42px;flex-wrap:wrap;
}
.confirm-btn{
  display:inline-flex;align-items:center;gap:12px;
  font-family:inherit;font-size:16px;font-weight:700;
  padding:15px 44px;border-radius:7px;
}
.confirm-btn-back{
  background:#fff;border:2px solid #8a94af;color:#56607a;
}
.confirm-btn-back:hover{background:#eef1f6}
.confirm-btn-send{
  background:linear-gradient(180deg,#1c459b,#102e6b);color:#fff;
  box-shadow:0 4px 11px rgba(0,0,0,.32);
}
.confirm-btn-send:hover{filter:brightness(1.08)}
.confirm-empty{padding:70px 30px;text-align:center;font-size:15px;color:#56607a}
.confirm-back-link{color:var(--navy);font-weight:700;text-decoration:underline}
.confirm-done{padding:60px 30px 64px;text-align:center}
.confirm-done-ico{
  width:66px;height:66px;margin:0 auto 20px;border-radius:50%;
  background:var(--green);color:#fff;font-size:34px;
  display:flex;align-items:center;justify-content:center;
}
.confirm-done-title{font-size:23px;font-weight:700;color:var(--navy)}
.confirm-done-text{margin:14px 0 26px;font-size:15px;line-height:1.9;color:#3a4254}
.confirm-done-home{padding:14px 38px}

/* 注意事項を1カラムに畳む中間幅 */
@media (max-width:960px){
  .apply-notice{grid-template-columns:1fr}
}

@media (max-width:768px){
  .apply-title{font-size:22px;padding:4px 0 22px}
  .apply-title small{display:block;font-size:.7em;margin-top:2px}
  .apply-notice-sec{padding:10px 0 32px}
  .apply-note-body{flex-direction:column;gap:16px}
  .koukou-box{width:auto;padding:16px 0 0;border-left:0;border-top:1px solid #d8dde2}
  .koukou-head{font-size:16px}

  .apply-select-heading{font-size:16px;margin-bottom:16px}
  .form-tab{font-size:13px;padding:13px 4px;border-radius:7px 7px 0 0}

  .apply-form-sec{padding:0 0 44px}
  .form-panel-head{font-size:16px;padding:13px 14px}
  .form-block{padding:24px 16px 0}
  .form-card{padding:2px 13px}
  .form-subhead{font-size:15px;flex-wrap:wrap;gap:8px}
  .form-subhead-note{margin-left:0;flex-basis:100%;font-size:12px}

  /* 入力行：ラベル上・入力欄下の縦積み */
  .form-row{grid-template-columns:1fr;border-bottom:1px solid #fff;padding-bottom:6px}
  .form-label{padding:11px 4px 2px;font-size:14px}
  .form-field{padding:8px 4px 12px}
  .player-bar{margin:0 -13px}
  .f-input{max-width:none}
  .form-field-name{flex-direction:column;align-items:stretch;gap:11px}
  .f-sub{gap:10px}
  .f-sub .f-input{flex:1;width:auto}
  .f-sub-lbl{width:42px}
  .f-input-zip{max-width:none}

  .player-add-wrap{margin-top:18px}
  .form-add-btn{font-size:14px;padding:12px 22px}
  .privacy-box{max-height:180px}
  .form-submit-wrap{padding:24px 16px 34px}
  .form-submit{font-size:16px;padding:15px 0;width:100%;justify-content:center}

  /* 確認画面：SP */
  .confirm-lead{padding:18px 16px 0;font-size:14px}
  .confirm-table th,
  .confirm-table td{display:block;width:auto;border-bottom:0;padding:0}
  .confirm-table tr{
    display:block;padding:12px 2px;border-bottom:1px dashed #d3d7dd;
  }
  .confirm-table tr:first-child{border-top:1px dashed #d3d7dd}
  .confirm-table th{
    background:transparent;padding:0 0 4px;font-size:13px;
  }
  .confirm-table td{font-size:14.5px}
  .confirm-actions{padding:22px 16px 34px;gap:12px;flex-direction:column}
  .confirm-btn{width:100%;justify-content:center;padding:14px 0}
}

/* ===================== お問合せ（otoiawase） ===================== */
/* お電話でのお問合せ ボックス（注意事項パネル内・右カラム） */
.contact-tel-box{
  flex:.82;min-width:0;
  display:flex;flex-direction:column;justify-content:center;align-items:center;
  text-align:center;
  padding-left:26px;border-left:1px solid #d8dde2;
}
.contact-tel-box .contact-tel-lead{font-size:19px;font-weight:700;color:var(--navy)}
.contact-tel-box .contact-tel-num{
  font-size:34px;font-weight:700;color:var(--navy);
  margin-top:8px;letter-spacing:.02em;
}
.contact-tel-box .contact-tel-note{font-size:14px;color:#56607a;margin-top:12px}

/* ラベル内の補足（任意 など） */
.form-label-sub{font-size:11px;font-weight:500;color:#6b7486}

/* お問合せ内容テキストエリア */
.f-textarea{
  width:100%;
  padding:11px 13px;border:1px solid #c4cad2;border-radius:5px;
  font-family:inherit;font-size:14px;color:var(--text);line-height:1.7;
  resize:vertical;
}
.f-textarea::placeholder{color:#9aa1ac}
.f-textarea:focus{outline:0;border-color:var(--navy);box-shadow:0 0 0 3px rgba(16,46,107,.14)}

/* ファイル添付 */
.file-attach{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.file-input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}
.file-btn{
  display:inline-flex;align-items:center;
  background:var(--navy);color:#fff;font-size:14px;font-weight:700;
  padding:9px 22px;border-radius:5px;cursor:pointer;
}
.file-btn:hover{background:var(--navy-d)}
.file-input:focus-visible+.file-btn{box-shadow:0 0 0 3px rgba(16,46,107,.3)}
.file-name{font-size:13.5px;color:#56607a}
.file-clear{
  display:inline-flex;align-items:center;
  background:#fff;color:#b32d2e;border:1px solid #d0d0d0;
  font-size:12.5px;font-weight:600;
  padding:5px 12px;border-radius:4px;cursor:pointer;line-height:1.2;
  transition:background .12s ease, border-color .12s ease;
}
.file-clear:hover{background:#fbeaea;border-color:#b32d2e}
.file-clear:focus-visible{outline:2px solid #b32d2e;outline-offset:2px}
.file-clear[hidden]{display:none !important}
.file-formats{
  display:flex;align-items:center;flex-wrap:wrap;gap:7px;
  margin:10px 0 6px;flex-basis:100%; /* 親が flex のとき改行させる */
}
.file-formats-label{
  font-size:12.5px;font-weight:700;color:var(--navy);letter-spacing:.02em;
}
.file-format-badge{
  display:inline-block;font-size:11px;font-weight:700;letter-spacing:.04em;
  padding:3px 9px;border-radius:3px;color:#fff;line-height:1.5;
}
.file-format-jpg{background:#1a8a4d}
.file-format-pdf{background:#d33b2f}
.file-formats-size{font-size:12px;color:#6b7486}
.file-note{font-size:12px;color:#6b7486;line-height:1.7;margin-top:6px;flex-basis:100%}

/* reCAPTCHA（ダミー表示） */
.recaptcha-wrap{display:flex;justify-content:center;margin-top:20px}
.recaptcha-mock{
  display:flex;align-items:center;gap:11px;
  width:304px;max-width:100%;
  background:#f9f9f9;border:1px solid #d3d3d3;border-radius:3px;
  padding:11px 13px;cursor:pointer;
  box-shadow:0 1px 4px rgba(0,0,0,.08);
}
.recaptcha-mock input{position:absolute;width:1px;height:1px;opacity:0}
.recaptcha-box{
  flex:none;width:28px;height:28px;
  background:#fff;border:2px solid #c1c1c1;border-radius:2px;
}
.recaptcha-mock input:checked+.recaptcha-box{
  border-color:#1c9c3f;
  background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='22' height='22'><path d='M4 11l5 5 9-12' stroke='%231c9c3f' stroke-width='3' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat center;
}
.recaptcha-label{flex:1;font-size:14px;color:#222}
.recaptcha-brand{display:flex;flex-direction:column;align-items:center;gap:1px;flex:none}
.recaptcha-logo{
  width:30px;height:30px;border-radius:50%;
  border:3px solid #1c63d1;border-top-color:transparent;transform:rotate(-30deg);
}
.recaptcha-brand-name{font-size:10px;color:#555;transform:rotate(0)}
.recaptcha-brand-links{font-size:8px;color:#9a9a9a}

@media (max-width:768px){
  .contact-tel-box{
    flex:none;border-left:0;border-top:1px solid #d8dde2;
    padding:16px 0 0;
  }
  .contact-tel-box .contact-tel-lead{font-size:17px}
  .contact-tel-box .contact-tel-num{font-size:29px}
  .file-note{font-size:11.5px}
  .recaptcha-mock{width:100%}
}

/* ===================== お知らせ一覧（news） ===================== */
/* PC：3カラム／SP：カテゴリ別（1080pxで切替） */
.news-pc{
  display:grid;
  grid-template-columns:248px minmax(0,1fr) 326px;
  gap:24px;align-items:start;
  padding-bottom:60px;
}
.news-sp{display:none}
.news-col{display:flex;flex-direction:column;gap:24px}

/* アーカイブ */
.news-archive-head{background:#fff;color:var(--navy)}
.news-archive-body{background:#fff;padding:8px 0}
.archive-list{display:flex;flex-direction:column}
.archive-list li{border-bottom:1px dashed #d9dde3}
.archive-list li:last-child{border-bottom:0}
.archive-link{
  display:flex;align-items:center;justify-content:center;gap:4px;
  padding:11px 14px;font-size:15px;font-weight:500;color:var(--navy);
}
.archive-link:hover{background:#eef1f6;color:var(--red)}
.archive-count{font-size:13px;color:#6b7486}

/* カレンダー */
.news-cal-body{background:#fff;padding:12px 12px 14px}
.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.cal-title{font-size:15px;font-weight:700;color:var(--navy)}
.cal-arw{
  width:28px;height:28px;border-radius:5px;
  background:var(--navy);color:#fff;font-size:16px;line-height:1;
  display:flex;align-items:center;justify-content:center;
}
.cal-arw:hover{background:var(--navy-d)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.cal-dow{text-align:center;font-size:11px;font-weight:700;color:#6b7486;padding:3px 0}
.cal-dow-0{color:#d8453f}
.cal-dow-6{color:#2f6ad0}
.cal-cell{
  display:flex;align-items:center;justify-content:center;
  height:30px;font-size:13px;color:#b6bcc6;border-radius:5px;
}
.cal-empty{visibility:hidden}
.cal-has{
  color:var(--navy);font-weight:700;cursor:pointer;font-family:inherit;
  background:#eef1f5;
}
.cal-has:hover{background:#dde3ec}
.cal-has.is-active{background:var(--navy);color:#fff}

/* 検索ボックス */
.news-search{align-items:center;gap:8px}
/* 検索結果バー */
.news-search-bar{
  display:flex;align-items:center;justify-content:space-between;
  gap:12px;flex-wrap:wrap;
  background:#eef3fb;border:1px solid #cdd9ee;border-radius:6px;
  padding:10px 14px;margin-bottom:14px;
}
.news-search-bar[hidden]{display:none}
.news-search-result{font-size:14px;color:var(--navy)}
.news-search-result strong{font-size:16px}
.news-search-clear{
  background:var(--navy);color:#fff;font-family:inherit;
  font-size:12.5px;font-weight:700;padding:6px 15px;border-radius:5px;
}
.news-search-clear:hover{background:var(--navy-d)}

/* 最新情報パネル本文 */
.news-latest-body{background:#fff}
.news-list-page{min-height:0;gap:0}
.news-list-page .news-item{padding:13px 4px;border-bottom:1px dashed #d9dde3}
.news-list-page .news-item:last-child{border-bottom:0}
.news-empty{padding:40px 10px;text-align:center;color:#6b7486;font-size:14px}

/* ページ送り */
.news-pager{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;
  gap:6px 10px;padding:18px 4px 4px;
}
.news-pager-btn{
  background:none;font-family:inherit;font-size:13.5px;font-weight:700;
  color:var(--navy);padding:4px 6px;
}
.news-pager-btn:hover:not([disabled]){color:var(--red);text-decoration:underline}
.news-pager-btn[disabled]{color:#b6bcc6;cursor:default}
.news-pager-num{
  min-width:28px;height:28px;padding:0 6px;
  background:#eef1f5;color:var(--navy);font-family:inherit;
  font-size:13.5px;font-weight:700;border-radius:4px;
}
.news-pager-num:hover{background:#dde3ec}
.news-pager-num.is-active{background:var(--navy);color:#fff}
.news-pager-num.is-active:hover{background:var(--navy)}

/* トピックス */
.news-topics-panel{display:flex;flex-direction:column}
.news-topics-body{background:#fff;flex:1;padding:4px 20px}
.topic-card{padding:18px 0;border-bottom:1px solid #e2e6ec}
.topic-card:last-child{border-bottom:0}
.topic-card-title{
  font-size:16px;font-weight:700;color:var(--navy);line-height:1.55;margin-bottom:9px;
}
.topic-card-body{font-size:13.5px;line-height:1.8;color:#2c3650}
.topic-card-more{
  display:flex;align-items:center;justify-content:flex-end;gap:7px;
  margin-top:10px;font-size:13px;font-weight:700;color:var(--navy);
}
.topic-card-more:hover{color:var(--red)}

/* SP：カテゴリ別パネル */
.news-cat-panel{margin-bottom:18px}
.news-cat-head h2{font-size:18px}
.news-cat-more{
  display:flex;align-items:center;gap:7px;
  font-size:14px;font-weight:700;color:var(--navy);
}
.news-cat-more:hover{color:var(--red)}
.news-cat-body{background:#fff}
.news-cat-body .news-list{min-height:0;gap:0}
.news-cat-body .news-item{padding:13px 4px;border-bottom:1px dashed #d9dde3}
.news-cat-body .news-item:last-child{border-bottom:0}
.news-sp-topics{margin-top:4px}


/* PC幅でない場合：カテゴリ別レイアウトに切替 */
@media (max-width:1080px){
  .news-pc{display:none}
  .news-sp{display:block;padding-bottom:50px}
}

@media (max-width:768px){
  .news-cat-head h2{font-size:16px}
  .news-cat-more{font-size:12.5px}
  .topic-card-title{font-size:15px}
  .news-topics-body{padding:4px 16px}
}

/* ===================== サイト内検索（search） ===================== */
.search-page{max-width:620px;margin:0 auto;padding:6px 0 56px}
.search-hero{margin-bottom:4px}

/* よく見られているページ */
.search-hub-head{
  color:#fff;font-size:19px;font-weight:700;text-align:center;
  margin:30px 0 16px;
}
.search-links{
  background:var(--gray);border-radius:6px;overflow:hidden;
  display:grid;grid-template-columns:1fr 1fr;
}
.search-link{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:15px 16px;font-size:14.5px;font-weight:700;color:var(--navy);
  border-bottom:1px dashed #9aa2af;
}
.search-link:nth-child(odd){border-right:1px dashed #9aa2af}
.search-link:nth-last-child(-n+2){border-bottom:0}
.search-link:hover{background:rgba(255,255,255,.45)}
.search-link-arw{
  flex:none;width:7px;height:7px;
  border-top:2px solid currentColor;border-right:2px solid currentColor;
  transform:rotate(45deg);
}
.search-apply{margin-top:20px}
.search-pdfs{margin-top:16px;display:flex;flex-direction:column}
.search-pdf{
  display:flex;align-items:center;gap:11px;
  color:#fff;font-size:15px;font-weight:500;padding:12px 4px;
}
.search-pdf:hover{color:var(--yellow)}
.search-pdf .search-link-arw{margin-left:auto}

/* 検索結果 */
.search-result-panel{
  background:#fff;border-radius:8px;padding:24px 28px;
  box-shadow:0 6px 18px rgba(0,0,0,.3);margin-top:16px;
}
.search-result-head{
  font-size:15px;font-weight:700;color:var(--navy);
  padding-bottom:11px;border-bottom:2px solid var(--navy);margin-bottom:4px;
}
.search-result-head strong{font-size:18px}
.search-result{
  display:block;padding:16px 6px;border-bottom:1px dashed #d3d7dd;
}
.search-result:last-child{border-bottom:0}
.search-result-title{display:block;font-size:16px;font-weight:700;color:var(--navy)}
.search-result:hover .search-result-title{text-decoration:underline}
.search-result-desc{font-size:13.5px;line-height:1.75;color:#3a4254;margin-top:5px}
.search-empty{padding:34px 10px;text-align:center;color:#6b7486;font-size:14px;line-height:1.8}
.search-cat-head{
  font-size:14px;font-weight:700;color:#fff;background:var(--navy);
  margin:18px -28px 0;padding:7px 28px;letter-spacing:.03em;
}
.search-cat-head:first-of-type{margin-top:14px}
.search-cat-count{font-weight:400;font-size:12px;color:#dbe3f0;margin-left:6px}
@media (max-width:768px){
  .search-cat-head{margin:14px -16px 0;padding:6px 16px}
}

@media (max-width:768px){
  .search-result-panel{padding:20px 16px}
  .search-result-title{font-size:15px}
  .search-hub-head{font-size:17px}
}

/* ===== 大会エントリー（プランB） ===== */
.entry-tour-info{background:#f7f7f7;padding:14px 18px;border-left:4px solid #d0a000;border-radius:4px;margin-bottom:20px}
.entry-tour-name{font-size:18px;font-weight:700;margin:0 0 10px}
.entry-tour-meta{display:grid;grid-template-columns:7em 1fr;gap:4px 12px;font-size:14px;margin:0}
.entry-tour-meta dt{font-weight:600;color:#555}
.entry-tour-closed{margin-top:10px;font-size:14px}
.entry-form .form-section{border:1px solid #e0e0e0;border-radius:6px;padding:16px 20px;margin-bottom:18px}
.entry-form .form-section legend{font-weight:700;padding:0 8px;color:#0a0a0a}
.entry-form .form-row{margin-bottom:12px}
.entry-form .form-row-2col{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.entry-form .form-label{display:block;font-weight:600;font-size:14px;margin-bottom:4px}
.entry-form .form-required::after{content:'必須';margin-left:6px;font-size:11px;background:#c8102e;color:#fff;padding:1px 6px;border-radius:3px;font-weight:700;vertical-align:middle}
.entry-form .form-help{font-size:12px;color:#666;margin-top:4px}
.entry-form .form-checkgroup label{display:inline-block;margin-right:18px;font-weight:600}
.entry-form input[type="text"],.entry-form input[type="tel"],.entry-form input[type="email"],.entry-form input[type="date"],.entry-form select,.entry-form textarea{
  width:100%;padding:8px 10px;border:1px solid #ccc;border-radius:4px;font-size:14px}
.entry-form .form-consent-wrap{background:#fffbf0;border:1px solid #f1d678;border-radius:6px;padding:14px 18px;margin-bottom:18px}
.entry-form .form-consent{display:block;margin-bottom:8px;font-size:14px}
.entry-form .form-consent input{margin-right:8px}
.entry-form .form-submit-wrap{text-align:center;margin-top:24px}
.entry-form .form-errors{background:#fff0f0;border:1px solid #d04040;color:#a00;border-radius:4px;padding:12px 18px;margin-bottom:18px}
.entry-form .form-errors ul{margin:0;padding-left:20px}
.entry-confirm-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;z-index:9999;overflow-y:auto}
.entry-confirm-box{background:#fff;border-radius:6px;padding:24px 28px;max-width:760px;width:100%;box-shadow:0 4px 24px rgba(0,0,0,.2)}
.entry-confirm-box h2{font-size:18px;margin-bottom:14px;border-bottom:2px solid #c8102e;padding-bottom:8px}
.entry-confirm dl{display:grid;grid-template-columns:8em 1fr;gap:6px 12px;font-size:14px;margin-bottom:18px}
.entry-confirm dt{font-weight:600;color:#555}
.entry-confirm-box .form-back{background:#f0f0f0;color:#333;border:1px solid #ccc;padding:10px 18px;border-radius:4px;cursor:pointer;margin-right:12px}
@media (max-width:640px){
  .entry-form .form-row-2col{grid-template-columns:1fr}
  .entry-tour-meta{grid-template-columns:6em 1fr}
  .entry-confirm dl{grid-template-columns:6em 1fr}
}

/* ===== エントリーフォーム JPIN 情報表示 ===== */
.entry-jpin-info{
  margin-top:8px;padding:10px 14px;border-radius:5px;font-size:13px;line-height:1.55;
}
.entry-jpin-info.is-found{background:#eef7f0;border:1px solid #b6dcc1;color:#1a4623}
.entry-jpin-info.is-unknown{background:#fff5e8;border:1px solid #f0c993;color:#7c4a14}
.entry-jpin-info .entry-jpin-name{font-weight:700;font-size:14px;margin-bottom:3px}
.entry-jpin-info .entry-jpin-club{font-weight:400;color:#456;margin-left:4px;font-size:12px}
.entry-jpin-info .entry-jpin-ranks{font-size:12px;color:#345}
.entry-jpin-info .entry-jpin-ranks.is-none{color:#7a8694;font-style:italic}
.entry-jpin-info .entry-jpin-ranks strong{color:#c8102e;font-weight:700}
.entry-no-jpin{font-size:13px;color:#555;background:#fafafa;padding:6px 10px;border-radius:4px;display:flex;align-items:center;gap:6px;cursor:pointer}
.entry-no-jpin input{margin:0}
.combo.is-disabled .f-combo{background:#f0f0f0;color:#888;cursor:not-allowed}
.combo.is-disabled .combo-caret{opacity:.3}

/* ===== エントリー完了者一覧ページ ===== */
.entry-list-sec{padding:30px 0 80px}
.entry-list-ref-note{background:#fffbe6;border:1px solid #f1d678;color:#5a4400;padding:14px 18px;border-radius:6px;margin-bottom:18px;font-size:14px}
.entry-list-ref-note code{background:#fff;padding:2px 8px;border-radius:3px;font-family:Menlo,monospace;font-weight:700}
.entry-list-help{background:#f7f7f7;padding:14px 20px;border-left:4px solid #c8102e;border-radius:4px;margin-bottom:24px;font-size:14px}
.entry-list-help p{margin:0 0 6px}
.entry-list-help ul{margin:6px 0 0 18px;font-size:13px;color:#444}
.entry-list-help ul li{margin-bottom:3px}
.entry-list-tour{margin-bottom:42px;border:1px solid #e2e6ea;border-radius:8px;padding:22px 26px;background:#fff}
.entry-list-tour-name{font-size:20px;font-weight:700;margin:0 0 4px;color:#0a0a0a;border-bottom:2px solid #c8102e;padding-bottom:8px}
.entry-list-tour-meta{font-size:12px;color:#666;margin:6px 0 18px}
.entry-list-div{font-size:16px;font-weight:700;background:#eef3fb;color:#1a3b66;padding:8px 14px;border-radius:4px;margin:22px 0 12px}
.entry-list-event{margin:0 0 16px;padding:0 4px}
.entry-list-event-head{font-size:14px;font-weight:600;color:#333;margin:14px 0 6px;border-bottom:1px solid #ddd;padding-bottom:4px}
.entry-list-count{font-size:12px;color:#888;font-weight:400;margin-left:6px}
.entry-list-singles,.entry-list-doubles{list-style:none;margin:0;padding:0}
.entry-list-row{display:flex;align-items:center;gap:14px;padding:8px 10px;border-bottom:1px solid #f0f0f0;font-size:14px;flex-wrap:wrap}
.entry-list-row:last-child{border-bottom:0}
.entry-list-row.is-self{background:#fffbe6;border-radius:4px;padding-left:14px;border-left:3px solid #c8102e}
.entry-list-name{font-weight:600;color:#0a0a0a}
.entry-list-club{color:#456;font-size:13px}
.entry-list-tag{display:inline-block;background:#e6effb;color:#1a3b66;font-size:11px;padding:1px 6px;border-radius:3px;margin-left:6px;font-weight:400}
.entry-list-tag-warn{background:#fff0e0;color:#a04a00}
.entry-list-pair{align-items:stretch}
.entry-list-player{flex:1 1 200px;min-width:0;display:flex;flex-direction:column;gap:2px}
.entry-list-pair-amp{flex:0 0 auto;color:#888;font-weight:700;font-size:18px;padding:0 4px}
.entry-list-row.is-waiting{background:#fff8f0}
.entry-list-name-pending{color:#a04a00}
.entry-list-updated{text-align:right;color:#888;font-size:12px;margin-top:24px}
.entry-confirm-done .entry-confirm-receipt{font-size:16px;color:#1a4623}
.entry-confirm-done .form-submit{display:inline-block;text-decoration:none;padding:12px 22px;background:#c8102e;color:#fff;border-radius:4px;font-weight:700}
@media (max-width:640px){
  .entry-list-tour{padding:16px}
  .entry-list-pair{flex-direction:column;align-items:flex-start}
  .entry-list-pair-amp{display:none}
}

/* 完了者一覧：JPIN 列 */
.entry-list-jpin{
  font-family:Menlo,Consolas,monospace;font-size:13px;color:#1a3b66;
  background:#eef3fb;padding:2px 8px;border-radius:3px;
  min-width:80px;display:inline-block;text-align:center;font-weight:600;
}
.entry-list-jpin-none{color:#aab;font-weight:400}
.entry-list-pair .entry-list-jpin{margin-bottom:2px}
@media (max-width:640px){
  .entry-list-jpin{min-width:0;padding:1px 6px;font-size:12px}
}

/* ===================== 2026-08-03 SP 修正まとめ ===================== */

/* SP 専用表示 / PC 専用表示のヘルパー */
.sp-only{display:none}
@media (max-width:768px){
  .sp-only{display:block}
  .pc-only{display:none}
}

/* 1) SP フォーム: 姓/名 の 2カラム が はみ出す問題 (強制上書き) */
@media (max-width:768px){
  /* 姓名フィールドは 縦積み + 各行 100%幅 に強制 */
  .form-field-name{
    display:flex !important;flex-direction:column !important;
    gap:11px !important;width:100% !important;
  }
  .form-field-name .f-sub{
    display:flex !important;flex-wrap:nowrap !important;
    width:100% !important;min-width:0 !important;
    align-items:center !important;gap:8px !important;
    box-sizing:border-box;
  }
  .form-field-name .f-sub-lbl{
    flex:none !important;width:auto !important;min-width:1.5em !important;
    font-size:14px !important;
  }
  .form-field-name .f-sub .f-input{
    flex:1 1 0 !important;min-width:0 !important;
    width:100% !important;max-width:100% !important;
    box-sizing:border-box !important;
  }
  /* 単独 f-input / textarea も 全幅 */
  .form-field > .f-input,
  .form-field > .f-textarea,
  .f-input, .f-textarea{
    max-width:100% !important;box-sizing:border-box !important;
  }
}

/* 2) SP 所属一覧の検索ボックス: 幅ゼロ問題 */
@media (max-width:768px){
  .shozoku-search{
    padding:14px 14px;gap:12px;flex-direction:column;
  }
  .shozoku-search .shz-search-form{
    width:100%;flex:1 1 auto;
  }
  .shozoku-search .search-box{
    width:100%;max-width:100%;
    padding:12px 16px;
  }
  .shozoku-search .search-input{
    width:100%;min-width:0;
  }
  .shz-search-note{font-size:13px;text-align:center}
}

/* 3) SP 大会ページ: 年度・月タブが横スクロールで見えるように */
@media (max-width:768px){
  .year-tabs, .month-tabs{
    overflow-x:auto;overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
    flex-wrap:nowrap;
    padding-bottom:4px;
    margin-bottom:8px;
    scrollbar-width:thin;
  }
  .year-tab, .month-tab{
    flex:none;white-space:nowrap;
    padding:8px 12px;font-size:13px;
  }
  .year-tabs::-webkit-scrollbar, .month-tabs::-webkit-scrollbar{
    height:4px;
  }
  .year-tabs::-webkit-scrollbar-thumb, .month-tabs::-webkit-scrollbar-thumb{
    background:rgba(0,0,0,.2);border-radius:2px;
  }
}

/* 4) SP: トップページのクイックリンク (トピックスと講習会の間) */
/*    デザインは検索ページと同じ (既存 .search-links / .search-link / .side-apply を流用)
     PCでは非表示、SPのみ表示。
     上margin=6px : hero下padding 30px と足して 36px (講習会↔加盟地域協会 と同じ間隔)
     下margin=36px : 講習会の margin-top 36px と collapse で 36px  */
.sp-quick-hub{display:none}
@media (max-width:768px){
  .sp-quick-hub{
    display:block;
    margin:6px 0 36px;
    padding:0;
  }
  .sp-quick-hub .container{padding:0 16px}
}

/* 6) iOS Safari の フォーム focus時 自動ズーム 対策
      input/select/textarea の font-size を 16px 以上にすると 自動ズームしない */
@media (max-width:768px){
  input[type="text"],
  input[type="email"],
  input[type="tel"],
  input[type="password"],
  input[type="search"],
  input[type="number"],
  input[type="url"],
  input[type="date"],
  input[type="month"],
  select, textarea{
    font-size:16px !important;
  }
}

/* 7) SP 所属一覧「絞り込み検索」ボタン → 検索実行と誤認されない色・文言に */
@media (max-width:768px){
  .shozoku-filter-btn{
    display:flex !important;align-items:center;justify-content:center;gap:8px;
    background:transparent !important;
    color:#fff !important;font-weight:600 !important;font-size:14px !important;
    padding:11px 24px !important;border:1.5px solid rgba(255,255,255,.55) !important;
    border-radius:6px !important;box-shadow:none !important;
  }
  .shozoku-filter-btn .shz-filter-ico{
    font-size:11px;line-height:1;display:inline-block;
  }
  .shozoku-filter-btn:active{background:rgba(255,255,255,.12) !important}
}

/* 8) SP お知らせ 空表示 (.news-empty) が読みにくい問題 */
.news-empty{
  padding:24px 14px;text-align:center;
  color:#6b7486;font-size:14px;
  background:#f8f9fb;border-radius:6px;
  margin:8px 0;list-style:none;
}
@media (max-width:768px){
  .news-empty{padding:20px 12px;font-size:13.5px}
}

/* 9) 記事詳細ページ (single.php: 通常投稿・トピックス) のスタイル */
/* .news-detail 全体レイアウト (2カラム PC / 1カラム SP) */
/* PC/SP ともに ヘッダー(ロゴ・パンくず) との余白を確保するため padding-top を広めに */
.news-detail{
  display:grid;grid-template-columns:280px minmax(0,1fr);
  gap:24px;padding:48px 0 60px;
}
.news-detail-side{min-width:0;display:flex;flex-direction:column;gap:16px}
.news-detail-main{min-width:0}
@media (max-width:960px){
  .news-detail{grid-template-columns:1fr;gap:20px;padding:52px 0 40px}
}
@media (max-width:768px){
  /* SP: DOM順 aside → main を order で逆転させて main(黄色バー含む)を上に配置。
     site-header(紺帯) と 黄色バー「お知らせ記事」との間の余白は
     grid コンテナ padding-top だと 効かないケースがあったため
     news-detail-main に margin-top を直接付けて確実に効かせる */
  .news-detail{gap:16px;padding:0 0 30px}
  .news-detail-main{order:1;margin-top:60px !important}
  .news-detail-side{order:2}
}
/* 検索ボックス (news-detail-side, news-search) の幅を100%に */
.news-detail-side .search-box,
.news-search .search-box{
  width:100%;max-width:100%;
  box-sizing:border-box;
}
.news-detail-side .search-input,
.news-search .search-input{
  flex:1 1 0;min-width:0;width:100%;
}
.news-article-body{padding:24px 28px 30px !important}
.article-nav{
  display:flex;justify-content:space-between;align-items:center;
  margin-bottom:16px;font-size:13px;
}
.article-nav a{color:#0b53c8;text-decoration:none}
.article-nav a:hover{text-decoration:underline}
.article-meta{
  display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;
  margin:0 0 10px;
}
.article-cat{margin:0}
.article-cat-tag{
  display:inline-block;background:#e30521;color:#fff;
  padding:3px 12px;font-size:12px;font-weight:700;border-radius:3px;
  text-decoration:none;line-height:1.6;
}
.article-date{margin:0;color:#666;font-size:14px;font-weight:500}
.article-title{
  font-size:24px;font-weight:700;color:#102e6b;
  line-height:1.5;margin:8px 0 20px;
  padding-bottom:14px;border-bottom:2px solid #fff100;
  word-break:break-word;
}
.article-body{
  color:#333;font-size:15px;line-height:1.9;
  padding:12px 0 32px;word-break:break-word;
}
.article-body p{margin:0 0 1em}
.article-body h2, .article-body h3, .article-body h4{
  margin:1.8em 0 0.6em;color:#102e6b;font-weight:700;
}
.article-body h2{font-size:19px;padding:6px 10px;background:#f0f4fa;border-left:4px solid #102e6b}
.article-body h3{font-size:17px;padding-left:8px;border-left:3px solid #fff100}
.article-body a{color:#0b53c8;text-decoration:underline}
.article-body a:hover{color:#e30521}
.article-body img{max-width:100%;height:auto;margin:12px 0;border-radius:4px}
.article-body ul, .article-body ol{margin:0 0 1em 1.5em}
.article-body ul li, .article-body ol li{margin:.3em 0}
.article-body blockquote{
  margin:1em 0;padding:12px 16px;
  background:#f8f9fb;border-left:4px solid #ccd3dd;color:#555;
}
.article-back{padding:20px 0 0;border-top:1px solid #dcdcdc;margin-top:20px;text-align:center}
.article-back-btn,
.news-article-body .article-back-btn,
.article-back-btn:link,
.article-back-btn:visited{
  display:inline-block !important;
  background:#102e6b !important;
  color:#fff !important;
  padding:12px 28px !important;
  border-radius:5px !important;
  font-weight:700 !important;
  text-decoration:none !important;
  border:0 !important;
}
.article-back-btn:hover{background:#0a2050 !important;color:#fff !important}

/* 10) 固定ページ (page.php) タイトルの SP マージン + 本文Gutenberg h1 の SP縮小 */
@media (max-width:768px){
  /* ページ見出し (.apply-title = 白文字ヒーロー内タイトル) の左右余白確保 +
     SP: site-header(紺ロゴ帯) と タイトルの間の余白を margin-top で稼ぐ */
  .apply-title{
    margin-top:36px !important;
    padding:6px 22px 22px !important;
    font-size:20px !important;
    line-height:1.45 !important;
    word-break:break-word;
  }
  /* 本文コンテナ (.page-generic-body) SP 左右padding 拡大 */
  .page-generic-body{
    padding-left:20px !important;
    padding-right:20px !important;
  }
  /* Gutenberg 本文の h1 (inline style font-size:32px) を SP で強制縮小
     → inline style の specificity(1,0,0,0) を !important で上書き */
  .page-generic-body h1,
  .page-generic-body h1.wp-block-heading,
  .page-generic-body h1[style]{
    font-size:18px !important;
    line-height:1.5 !important;
    padding:0 !important;
    margin:12px 0 12px !important;
    word-break:break-word;
    text-align:center;
  }
  .page-generic-body h2,
  .page-generic-body h2.wp-block-heading,
  .page-generic-body h2[style]{
    font-size:16.5px !important;line-height:1.55 !important;
    word-break:break-word;
  }
  .page-generic-body h3,
  .page-generic-body h3.wp-block-heading,
  .page-generic-body h3[style]{
    font-size:15px !important;line-height:1.55 !important;
    word-break:break-word;
  }
  /* Gutenberg group ブロック (青背景ボックス) の SP 内側余白 */
  .page-generic-body .wp-block-group{
    padding-left:14px !important;
    padding-right:14px !important;
  }
  /* 本文ブロック内の要素も左右がはみ出ない */
  .page-generic-body p,
  .page-generic-body ul,
  .page-generic-body ol,
  .page-generic-body figure{
    max-width:100%;word-break:break-word;overflow-wrap:break-word;
  }
  .page-generic-body figure img{max-width:100%;height:auto}
  .page-generic-body figure.wp-block-table{overflow-x:auto}
}

@media (max-width:768px){
  .news-article-body{padding:18px 16px 22px !important}
  .article-title{font-size:19px;line-height:1.5;margin:6px 0 14px;padding-bottom:10px}
  .article-body{font-size:15px;padding:6px 0 22px}
  .article-body h2{font-size:17px}
  .article-body h3{font-size:16px}
  .article-meta{gap:8px;margin-bottom:6px}
  .article-date{font-size:13px}
  .article-nav{font-size:12.5px;margin-bottom:12px}
  .article-back{padding:16px 0 0;margin-top:16px}
  .article-back-btn{padding:11px 20px;font-size:14px}
}

/* 5) SP: 各大会ページ「お知らせ」パネル 空時 の余白圧縮 */
@media (max-width:768px){
  .panel-news .news-list{
    min-height:0 !important;
  }
  .panel-news .panel-body{
    padding:12px 14px !important;
  }
  /* 実際に お知らせ 1件以上ある場合は 通常余白を維持 */
  .panel-news .news-list .news-item{
    padding:10px 2px;
  }
  /* お知らせ (news) ページ の各パネル 空時 の余白圧縮 */
  .emergency-body{padding:16px 18px !important}
  .news-latest-body{padding:12px 14px !important}
  .news-topics-body{padding:12px 14px !important}
  .news-cat-body{padding:0 !important}
  .news-cat-body .news-list{min-height:0 !important}
  /* トピックスが 0件時に body が空 = 余白ゼロに */
  .news-topics-body:empty{padding:0 !important;min-height:0 !important}
  .news-topics-panel .panel-body:empty{padding:0 !important}
}
/* 5) SP: reCAPTCHA v3 バッジ が下部固定タブバー(sp-tabbar)と重なる → 上に持ち上げる */
@media (max-width:768px){
  .grecaptcha-badge{
    bottom:70px !important;
    box-shadow:0 0 6px rgba(0,0,0,.3) !important;
  }
}
/* ===================== /2026-08-03 SP 修正まとめ ===================== */
