@charset "UTF-8";
/* =============================================================================
   Pickleball Japan ─ 特設ページ（LP）コンポーネント
   Version: 26.08.04.03
   対象   : page-lp.php（Template Name: 特設ページ（LP））
   -----------------------------------------------------------------------------
   設計方針
   1) すべて .pj-lp 配下にスコープする。
      main.css には .btn / .card / .stat / .faq / .timeline / .tl-item /
      .notice / .hero / .sec など汎用名が既にある。プレフィックスとスコープの
      両方をかけないと、テーマ側と相互に壊し合う。
   2) 色は main.css の :root トークンをそのまま参照する。ここで再定義しない。
   3) レイアウト枠は main.css の .container（max-width:1060px）を使い回す。
   4) 各コンポーネントのモバイル指定は、そのコンポーネントの直後に置く。
      ページ末尾に上書きを積まない（元LPが崩れた主因）。
   5) !important は使わない。
   ============================================================================= */

/* =========================================================
   0. ルート
   ========================================================= */
.pj-lp{
  line-height:1.8;
  line-break:strict;
  /* 日本語を文節単位で折り返す（対応ブラウザのみ） */
  word-break:auto-phrase;
  overflow-wrap:break-word;
}
.pj-lp img{max-width:100%;height:auto;display:block;}
.pj-lp a{color:inherit;}

/* main.css には要素セレクタの nav{} と footer{} がある。
   クラス名を lp- で分けても、素の要素セレクタは避けられずLP本文に当たってしまう。
   （nav{} は position:sticky / height:64px / display:flex を持つため、
     目次の <nav class="lp-toc"> がヘッダーのように固定されて崩れる）
   ここで打ち消す。各部品のクラス指定（0,2,0）の方が強いので上書きは効いたまま。 */
.pj-lp nav,
.pj-lp footer{
  position:static;top:auto;z-index:auto;
  display:block;height:auto;padding:0;
  background:none;backdrop-filter:none;
  border:0;box-shadow:none;
  align-items:normal;justify-content:normal;
}
.pj-lp h1,.pj-lp h2,.pj-lp h3,.pj-lp h4{text-wrap:balance;word-break:auto-phrase;}

/* 英字見出し（Bebas Neue） */
.pj-lp .lp-en{
  font-family:'Bebas Neue',sans-serif;
  letter-spacing:.04em;text-transform:uppercase;font-weight:400;
}
/* 折り返し禁止（日付・住所・メールなど） */
.pj-lp .lp-nb{display:inline-block;}

/* アンカー着地位置。このテンプレートはヘッダー（sticky nav）を出さないので、
   上に必要なのは余白ぶんだけ。 */
.pj-lp [id]{scroll-margin-top:24px;}

/* =========================================================
   1. ユーティリティ
   　 元LPで style="" に直書きされていた指定をここへ集約する
   ========================================================= */
.pj-lp .lp-lead{max-width:820px;margin:0 auto;font-weight:500;}
.pj-lp .lp-lead--narrow{max-width:780px;}
.pj-lp .lp-center{text-align:center;}
.pj-lp .lp-note{font-size:.85rem;color:var(--muted);font-weight:500;}
.pj-lp .lp-sec.is-navy .lp-note{color:rgba(255,255,255,.7);}
.pj-lp .lp-mt{margin-top:26px;}
.pj-lp .lp-mt-lg{margin-top:56px;}
.pj-lp .lp-mb{margin-bottom:26px;}
.pj-lp .lp-mb-lg{margin-bottom:40px;}

/* 本文リード：モバイルは中央揃えをやめて左揃えにする（可読性） */
@media(max-width:640px){
  .pj-lp .lp-lead{text-align:left;}
}

/* =========================================================
   2. リベール（スクロール連動フェードイン）
   ========================================================= */
.pj-lp .lp-rv{
  opacity:0;transform:translateY(26px);
  transition:opacity .7s ease,transform .7s ease;
}
.pj-lp .lp-rv.is-in{opacity:1;transform:none;}
.pj-lp .lp-d1{transition-delay:.12s;}
.pj-lp .lp-d2{transition-delay:.24s;}
.pj-lp .lp-d3{transition-delay:.36s;}

/* =========================================================
   3. セクション（No-Line ルール：罫線ではなく背景の交互で区切る）
   ========================================================= */
.pj-lp .lp-sec{padding:88px 0;background:var(--off);}
.pj-lp .lp-sec.is-alt{background:var(--white);}
.pj-lp .lp-sec.is-navy{
  /* ベタ塗りを避け、光のにじみ＋斜めグラデで奥行きを出す */
  background:
    radial-gradient(circle at 85% 0%, rgba(44,86,212,.45), transparent 55%),
    radial-gradient(circle at 0% 100%, rgba(29,63,170,.55), transparent 60%),
    linear-gradient(135deg,#0a1830 0%,#122040 55%,#1d3faa 100%);
  color:#fff;
}
@media(max-width:640px){
  .pj-lp .lp-sec{padding:56px 0;}
}

/* ── セクション見出し（eyebrow + h2 + sub） ── */
.pj-lp .lp-head{text-align:center;margin-bottom:48px;}
.pj-lp .lp-eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-size:.72rem;font-weight:700;letter-spacing:.22em;color:var(--gold);
  text-transform:uppercase;margin-bottom:10px;
}
.pj-lp .lp-eyebrow::before{content:"";width:24px;height:2px;background:var(--golda);}
.pj-lp .lp-head h2{
  font-size:clamp(1.6rem,3.4vw,2.4rem);
  font-weight:900;color:var(--ink);letter-spacing:.02em;line-height:1.4;
}
.pj-lp .lp-head .lp-sub{margin-top:12px;font-size:.95rem;color:var(--muted);font-weight:500;}

.pj-lp .lp-sec.is-navy .lp-head h2{color:#fff;}
.pj-lp .lp-sec.is-navy .lp-eyebrow{color:var(--golda);}
.pj-lp .lp-sec.is-navy .lp-head .lp-sub{color:rgba(255,255,255,.75);}

/* =========================================================
   4. ボタン
   　 main.css の .btn とは別物（和文なので uppercase をかけない）
   ========================================================= */
.pj-lp .lp-btn{
  display:inline-block;text-decoration:none;text-align:center;
  border-radius:3px;font-weight:700;line-height:1.4;cursor:pointer;
  padding:14px 32px;font-size:.85rem;
  background:var(--blue);color:#fff;
  transition:transform .2s,box-shadow .2s,background .2s;
}
.pj-lp .lp-btn:hover{
  background:var(--blue2);transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(29,63,170,.25);
}
/* ゴールドCTA：グラデーション＋背後からの光 */
.pj-lp .lp-btn.is-gold{
  background:linear-gradient(180deg,#FFDD66 0%,var(--golda) 55%,#E9B421 100%);
  color:var(--navy);
  box-shadow:0 0 34px rgba(247,200,50,.55),0 10px 24px rgba(10,24,48,.3);
}
.pj-lp .lp-btn.is-gold:hover{
  background:linear-gradient(180deg,#FFDD66 0%,var(--golda) 55%,#E9B421 100%);
  transform:translateY(-2px);
  box-shadow:0 0 48px rgba(247,200,50,.75),0 14px 28px rgba(10,24,48,.35);
}
.pj-lp .lp-btn.is-lg{padding:18px 48px;font-size:1rem;}
.pj-lp .lp-btn.is-sm{padding:11px 24px;font-size:.8rem;}
/* リンク切れ・準備中のCTAは押せない見た目にする */
.pj-lp .lp-btn.is-disabled{
  background:var(--line);color:var(--muted);box-shadow:none;
  pointer-events:none;cursor:default;
}

/* =========================================================
   5. ヒーロー（写真＋118度の斜めオーバーレイ／左寄せ）
   　 背景画像は本文側でインライン指定する：
   　 <div class="lp-hero" style="--lp-hero-img:url('…')">
   ========================================================= */
.pj-lp .lp-hero{
  position:relative;overflow:hidden;color:#fff;
  padding:96px 0 120px;
  background:
    linear-gradient(118deg,rgba(10,24,48,.92) 0%,rgba(10,24,48,.72) 45%,rgba(10,24,48,.10) 100%),
    var(--lp-hero-img,linear-gradient(135deg,#0a1830,#1d3faa)) center/cover no-repeat;
}
.pj-lp .lp-hero .container{position:relative;z-index:1;text-align:left;}

.pj-lp .lp-hero-badge{
  display:inline-block;background:var(--golda);color:var(--navy);
  font-weight:700;font-size:.8rem;letter-spacing:.1em;
  padding:5px 16px;border-radius:3px;margin-bottom:20px;
}
.pj-lp .lp-hero-present{
  font-family:'Bebas Neue',sans-serif;font-size:clamp(1rem,2.2vw,1.3rem);
  letter-spacing:.22em;color:var(--golda);text-transform:uppercase;
}
/* タイトルスポンサーのロゴ（透過PNG＋シルエットに沿った白グロー） */
.pj-lp .lp-hero-logos{display:flex;gap:34px;align-items:center;flex-wrap:wrap;margin-top:16px;}
.pj-lp .lp-hero-logos img{
  height:64px;width:auto;max-width:200px;object-fit:contain;
  filter:
    drop-shadow(0 0 6px rgba(255,255,255,.95))
    drop-shadow(0 0 14px rgba(255,255,255,.85))
    drop-shadow(0 0 28px rgba(255,255,255,.6));
}
.pj-lp .lp-hero-kicker{
  font-size:clamp(.95rem,2vw,1.1rem);font-weight:700;color:rgba(255,255,255,.85);
  letter-spacing:.14em;margin-top:14px;
}
.pj-lp .lp-hero-title{
  font-family:'Bebas Neue',sans-serif;font-weight:400;
  font-size:clamp(2.8rem,7.5vw,6rem);letter-spacing:.02em;line-height:1.02;
  margin:10px 0 14px;text-transform:uppercase;
  background:linear-gradient(90deg,var(--blue2) 0%,var(--golda) 55%,#fff 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
.pj-lp .lp-hero-ja{font-weight:700;font-size:clamp(.95rem,2vw,1.15rem);color:rgba(255,255,255,.92);}
.pj-lp .lp-hero-date{font-size:clamp(1.05rem,2.4vw,1.45rem);font-weight:700;margin-top:24px;}
.pj-lp .lp-hero-venue{font-size:.98rem;font-weight:500;color:rgba(255,255,255,.85);margin-top:4px;}
.pj-lp .lp-hero-cta{display:flex;gap:18px;flex-wrap:wrap;margin-top:36px;align-items:center;}
/* ゴーストイヤー（アウトライン文字） */
.pj-lp .lp-hero-ghost{
  position:absolute;right:10%;bottom:-4%;
  font-family:'Bebas Neue',sans-serif;font-size:clamp(8rem,22vw,17rem);
  color:transparent;-webkit-text-stroke:1.5px rgba(247,200,50,.28);
  line-height:1;pointer-events:none;user-select:none;
}
/* ダーク背景用の枠付きラベル（申し込み開始日など） */
.pj-lp .lp-hero-note,
.pj-lp .lp-opennote{
  display:inline-block;border:1.5px solid rgba(247,200,50,.55);color:var(--golda);
  font-weight:700;font-size:.85rem;letter-spacing:.06em;
  padding:7px 18px;border-radius:3px;
}
@media(max-width:640px){
  /* ゴーストイヤーがボタンに重ならないよう、下に逃がす */
  .pj-lp .lp-hero{padding:64px 0 150px;}
  .pj-lp .lp-hero-ghost{bottom:22px;right:20px;font-size:27vw;line-height:.8;}
  .pj-lp .lp-hero-logos{gap:14px;margin-top:12px;}
  .pj-lp .lp-hero-logos img{height:42px;}
  .pj-lp .lp-hero-cta .lp-btn.is-lg{padding:16px 20px;font-size:1rem;white-space:nowrap;}
}

/* =========================================================
   6. ティッカー帯
   ========================================================= */
.pj-lp .lp-ticker{
  background:linear-gradient(90deg,#122040 0%,#1d3faa 55%,#2c56d4 100%);
  overflow:hidden;white-space:nowrap;padding:10px 0;
}
.pj-lp .lp-ticker-track{display:inline-block;animation:lpMarquee 40s linear infinite;}
.pj-lp .lp-ticker span{
  font-weight:700;color:#fff;font-size:.92rem;letter-spacing:.1em;margin-right:56px;
}
.pj-lp .lp-ticker span em{color:var(--golda);font-style:normal;}
@keyframes lpMarquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* =========================================================
   7. 目次
   ========================================================= */
.pj-lp .lp-toc{background:#fff;padding:34px 0;border-bottom:1px solid var(--line);}
.pj-lp .lp-toc-title{
  text-align:center;font-family:'Bebas Neue',sans-serif;letter-spacing:.22em;
  color:var(--gold);font-size:1.05rem;margin-bottom:20px;
}
.pj-lp .lp-toc-links{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;}
.pj-lp .lp-toc-links a{
  text-decoration:none;border:1.5px solid var(--line);border-radius:3px;
  padding:7px 12px;font-size:.75rem;font-weight:700;color:var(--ink);
  transition:color .18s,border-color .18s,background .18s;
}
.pj-lp .lp-toc-links a:hover{color:var(--blue2);border-color:var(--blue2);background:var(--blue4);}
@media(max-width:640px){
  /* 2列にして左右のラインを揃える */
  .pj-lp .lp-toc-links{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
  .pj-lp .lp-toc-links a{text-align:center;padding:8px 6px;font-size:.72rem;}
}

/* =========================================================
   8. 数字ハイライト
   ========================================================= */
.pj-lp .lp-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;max-width:920px;margin:0 auto;}
.pj-lp .lp-stat{
  background:#fff;border-radius:4px;text-align:center;padding:34px 20px 30px;
  border-top:4px solid var(--blue);box-shadow:0 6px 32px rgba(29,63,170,.08);
}
.pj-lp .lp-stat .lp-num{
  font-family:'Bebas Neue',sans-serif;font-size:clamp(2.6rem,5vw,3.4rem);
  line-height:1;color:var(--navy);
}
/* 単位（人・面・+）：Bebas に和文グリフがないため Noto Sans 900 で小さめに */
.pj-lp .lp-num i{
  font-style:normal;color:var(--gold);
  font-family:'Noto Sans JP',sans-serif;font-weight:900;
  font-size:.42em;margin-left:4px;
}
.pj-lp .lp-stat .lp-lbl{font-weight:700;font-size:.95rem;margin-top:10px;color:var(--ink);}
.pj-lp .lp-stat .lp-cap{font-size:.8rem;color:var(--muted);margin-top:2px;}
@media(max-width:880px){
  .pj-lp .lp-stats{grid-template-columns:1fr;}
}

/* =========================================================
   9. カード（写真＋見出し＋本文）
   ========================================================= */
.pj-lp .lp-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.pj-lp .lp-cards.is-2{grid-template-columns:repeat(2,1fr);}
.pj-lp .lp-card{
  background:#fff;border-radius:4px;overflow:hidden;
  border-top:4px solid var(--blue);
  box-shadow:0 6px 32px rgba(29,63,170,.08);
  display:flex;flex-direction:column;
  transition:transform .2s,box-shadow .2s;
}
.pj-lp .lp-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(29,63,170,.1);}
.pj-lp .lp-card-ph{aspect-ratio:16/9;overflow:hidden;}
.pj-lp .lp-card-ph img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease;}
.pj-lp .lp-card:hover .lp-card-ph img{transform:scale(1.04);}
.pj-lp .lp-card-bd{padding:24px 26px 30px;flex:1;}
.pj-lp .lp-card h3{font-size:1.1rem;font-weight:900;color:var(--ink);margin-bottom:10px;}
/* カード本文は幅が狭いので文節折り返しを外し、自然に流す */
.pj-lp .lp-card p{font-size:.93rem;color:var(--muted);word-break:normal;}
@media(max-width:880px){
  .pj-lp .lp-cards,
  .pj-lp .lp-cards.is-2{grid-template-columns:1fr;}
}

/* =========================================================
   10. 実績ブロック（ダークセクション用：数字４つ＋写真３枚）
   ========================================================= */
.pj-lp .lp-figs{
  display:grid;grid-template-columns:repeat(4,1fr);gap:24px;
  max-width:960px;margin:0 auto 56px;text-align:center;
}
.pj-lp .lp-figs .lp-num{
  font-family:'Bebas Neue',sans-serif;font-size:clamp(1.9rem,4.5vw,3.2rem);
  color:var(--golda);line-height:1;white-space:nowrap;
}
.pj-lp .lp-figs .lp-num i{font-size:.45em;margin-left:3px;color:var(--golda);}
.pj-lp .lp-figs .lp-lbl{font-size:.88rem;font-weight:700;color:#fff;margin-top:8px;}
.pj-lp .lp-figs .lp-cap{font-size:.75rem;color:rgba(255,255,255,.65);margin-top:2px;}

.pj-lp .lp-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.pj-lp .lp-photos figure{margin:0;border-radius:4px;overflow:hidden;background:var(--navy2);}
.pj-lp .lp-photos img{width:100%;aspect-ratio:4/3;object-fit:cover;}
.pj-lp .lp-photos figcaption{font-size:.8rem;font-weight:500;color:rgba(255,255,255,.85);padding:10px 14px;}
@media(max-width:880px){
  .pj-lp .lp-figs{grid-template-columns:repeat(2,1fr);}
  .pj-lp .lp-photos{grid-template-columns:1fr;}
}

/* =========================================================
   11. ビッグナンバー（賞金総額など）
   ========================================================= */
.pj-lp .lp-bignum{display:inline-block;text-align:center;margin-bottom:40px;}
.pj-lp .lp-bignum-label{
  display:inline-flex;align-items:center;gap:12px;
  font-size:.85rem;font-weight:700;letter-spacing:.22em;color:var(--gold);
}
.pj-lp .lp-bignum-label::before,
.pj-lp .lp-bignum-label::after{content:"";width:28px;height:2px;background:var(--golda);}
.pj-lp .lp-bignum-num{
  position:relative;isolation:isolate;display:inline-block;
  font-family:'Bebas Neue',sans-serif;
  font-size:clamp(3.4rem,9vw,6.6rem);line-height:1.08;color:var(--navy);
  padding:0 .12em;margin-top:4px;
}
/* 数字の足元に走る蛍光マーカー風の帯 */
.pj-lp .lp-bignum-num::before{
  content:"";position:absolute;left:-.05em;right:-.05em;bottom:.1em;height:.32em;
  background:var(--golda);transform:skew(-8deg);z-index:-1;
}
.pj-lp .lp-bignum-sub{display:block;font-weight:700;font-size:1.05rem;color:var(--ink);margin-top:8px;}
@media(max-width:640px){
  /* 桁が多いと溢れるので横スクロールを許可する */
  .pj-lp .lp-bignum{display:block;width:100%;overflow-x:auto;}
  .pj-lp .lp-bignum-num{white-space:nowrap;}
}

/* =========================================================
   12. 表
   　 12-1 定義表（大会概要）／12-2 マトリクス表（賞金）／12-3 二列表（レーティング）
   ========================================================= */
.pj-lp .lp-table{
  width:100%;border-collapse:collapse;background:#fff;
  border-radius:4px;overflow:hidden;box-shadow:0 6px 32px rgba(29,63,170,.08);
}
.pj-lp .lp-table th,
.pj-lp .lp-table td{
  padding:20px 24px;text-align:left;vertical-align:top;font-size:.95rem;
  border-bottom:1px solid var(--line);
}
.pj-lp .lp-table tr:last-child th,
.pj-lp .lp-table tr:last-child td{border-bottom:none;}

/* 12-1 定義表 */
.pj-lp .lp-table--def th{
  width:11em;white-space:nowrap;font-weight:700;color:#fff;
  /* 単調な紺一色を避け、斜めグラデで奥行きを出す */
  background:linear-gradient(135deg,#0a1830 0%,#16274f 55%,#24428f 100%);
}
.pj-lp .lp-table--def tr:hover td{background:var(--blue4);}
.pj-lp .lp-table--def td strong{color:var(--gold);}
.pj-lp .lp-table--def ul{padding-left:1.3em;margin:4px 0;}
.pj-lp .lp-table--def li{margin:2px 0;}
@media(max-width:640px){
  .pj-lp .lp-table--def th{width:auto;display:block;border-bottom:none;padding:14px 18px 6px;}
  .pj-lp .lp-table--def td{display:block;padding:0 18px 14px;}
}

/* 12-2 マトリクス表（横スクロール） */
.pj-lp .lp-tablewrap{max-width:960px;margin:0 auto 44px;overflow-x:auto;}
.pj-lp .lp-table--matrix{
  width:100%;border-collapse:separate;border-spacing:3px;min-width:640px;
  font-size:.9rem;box-shadow:none;background:transparent;
}
.pj-lp .lp-table--matrix th,
.pj-lp .lp-table--matrix td{
  padding:14px 12px;text-align:center;white-space:nowrap;border-bottom:none;
}
.pj-lp .lp-table--matrix thead th{background:var(--blue);color:#fff;font-weight:700;border-radius:3px;}
.pj-lp .lp-table--matrix thead th:first-child{background:transparent;}
.pj-lp .lp-table--matrix tbody th{background:var(--blue);color:#fff;font-weight:700;border-radius:3px;}
.pj-lp .lp-table--matrix td{background:var(--blue4);color:var(--ink);font-weight:700;border-radius:3px;}

/* 12-3 二列表（左＝数値ラベル／右＝説明） */
.pj-lp .lp-table--pair th{
  width:5.5em;white-space:nowrap;text-align:center;color:#fff;background:var(--blue);
  font-family:'Bebas Neue',sans-serif;font-size:1.5rem;letter-spacing:.04em;
}
.pj-lp .lp-table--pair td{color:var(--ink);font-size:.92rem;}

/* =========================================================
   13. スポンサー
   ========================================================= */
.pj-lp .lp-sp-tier{margin-bottom:52px;text-align:center;}
.pj-lp .lp-sp-tier:last-child{margin-bottom:0;}
.pj-lp .lp-sp-tier h3{
  font-family:'Bebas Neue',sans-serif;font-size:1.4rem;letter-spacing:.22em;
  color:var(--gold);margin-bottom:26px;text-transform:uppercase;
}
.pj-lp .lp-sp-row{display:flex;justify-content:center;align-items:flex-start;gap:44px;flex-wrap:wrap;}
.pj-lp .lp-sp-row a{
  display:flex;flex-direction:column;align-items:center;gap:10px;
  transition:transform .2s,opacity .2s,box-shadow .2s;text-decoration:none;
}
.pj-lp .lp-sp-row a:hover{transform:translateY(-3px);opacity:.9;}
.pj-lp .lp-sp-row img{width:auto;object-fit:contain;-webkit-user-drag:none;user-select:none;}
.pj-lp .lp-sp-name{font-size:.75rem;font-weight:700;color:var(--ink);letter-spacing:.04em;}

/* タイトル協賛：ロゴは拡大せず、枠で格を出す */
.pj-lp .lp-sp-row.is-title a{
  width:320px;max-width:100%;
  background:#fff;border-radius:6px;padding:26px 40px;
  border-top:4px solid var(--gold);
  box-shadow:0 10px 34px rgba(29,63,170,.14);
}
.pj-lp .lp-sp-row.is-title a:hover{box-shadow:0 16px 42px rgba(29,63,170,.22);}
.pj-lp .lp-sp-row.is-title img{height:110px;}

/* 一般協賛：ロゴの見かけサイズを 3 段階で揃える */
.pj-lp .lp-sp-row.is-main img{height:64px;max-width:180px;}
.pj-lp .lp-sp-row.is-main .is-lg{height:84px;max-width:190px;}
.pj-lp .lp-sp-row.is-main .is-sm{height:52px;max-width:160px;}

/* ロゴ未支給のスポンサー：テキストチップで代替 */
.pj-lp .lp-sp-chip{
  display:flex;align-items:center;justify-content:center;
  background:#fff;border:1.5px solid var(--line);border-radius:4px;padding:10px 28px;
  font-weight:900;color:var(--navy);font-size:1.15rem;letter-spacing:.04em;
}
@media(max-width:640px){
  /* 社名を隠してロゴのみ2列に */
  .pj-lp .lp-sp-name{display:none;}
  .pj-lp .lp-sp-row.is-main{display:grid;grid-template-columns:1fr 1fr;gap:26px 14px;align-items:center;justify-items:center;}
  .pj-lp .lp-sp-row.is-main a{width:100%;}
  .pj-lp .lp-sp-row.is-main img{height:54px;max-width:150px;}
  .pj-lp .lp-sp-row.is-main .is-lg{height:64px;}
  .pj-lp .lp-sp-row.is-main .is-sm{height:46px;}
  .pj-lp .lp-sp-row.is-title{gap:16px;}
  .pj-lp .lp-sp-row.is-title a{padding:18px 22px;}
  .pj-lp .lp-sp-row.is-title img{height:88px;}
}

/* =========================================================
   14. タイムライン（日程）
   ========================================================= */
.pj-lp .lp-timeline{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:14px;}
.pj-lp .lp-tl{
  display:flex;align-items:stretch;background:#fff;border-radius:4px;overflow:hidden;
  border-top:4px solid var(--blue);box-shadow:0 6px 32px rgba(29,63,170,.08);
}
.pj-lp .lp-tl-day{
  flex:0 0 110px;display:flex;align-items:center;justify-content:center;
  background:var(--navy);color:#fff;
  font-family:'Bebas Neue',sans-serif;font-size:1.5rem;letter-spacing:.08em;
}
.pj-lp .lp-tl-body{padding:18px 24px;}
.pj-lp .lp-tl-date{font-weight:700;font-size:1.05rem;color:var(--ink);}
.pj-lp .lp-tl-desc{font-size:.92rem;color:var(--muted);margin-top:2px;}
@media(max-width:560px){
  .pj-lp .lp-tl-day{flex-basis:80px;font-size:1.2rem;}
}

/* =========================================================
   15. ドキュメントカード（規約・ルールなど長文）
   ========================================================= */
.pj-lp .lp-doc{
  max-width:860px;margin:0 auto 24px;background:#fff;border-radius:4px;
  border-top:4px solid var(--blue);box-shadow:0 6px 32px rgba(29,63,170,.08);
  padding:30px 34px 34px;
}
.pj-lp .lp-doc h3{
  font-size:1.15rem;font-weight:900;color:var(--navy);margin-bottom:16px;
  padding-bottom:12px;border-bottom:2px solid var(--blue4);
}
.pj-lp .lp-doc strong{color:var(--navy);}
.pj-lp .lp-doc a:not(.lp-btn){color:var(--blue2);text-decoration:underline;}

.pj-lp .lp-doc-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:12px;}
.pj-lp .lp-doc-list>li{position:relative;padding-left:1.4em;font-size:.92rem;color:var(--ink);line-height:1.9;}
.pj-lp .lp-doc-list>li::before{
  content:"";position:absolute;left:0;top:.7em;width:7px;height:7px;
  background:var(--gold);border-radius:50%;
}
/* 番号つき */
.pj-lp .lp-doc-list.is-ol{counter-reset:lpdoc;}
.pj-lp .lp-doc-list.is-ol>li{padding-left:1.9em;}
.pj-lp .lp-doc-list.is-ol>li::before{
  counter-increment:lpdoc;content:counter(lpdoc);
  top:.25em;width:1.4em;height:1.4em;border-radius:50%;background:var(--blue);
  color:#fff;font-size:.72rem;font-weight:700;
  display:flex;align-items:center;justify-content:center;
}
/* 入れ子 */
.pj-lp .lp-doc-sub{list-style:disc;padding-left:1.3em;margin:8px 0 2px;display:flex;flex-direction:column;gap:6px;}
.pj-lp .lp-doc-sub li{font-size:.92rem;color:var(--ink);line-height:1.9;}
/* 注意喚起ブロック */
.pj-lp .lp-doc-caution{
  margin-top:18px;padding:14px 18px;border-radius:4px;background:var(--goldb);
  border:1.5px solid var(--gold);font-size:.9rem;font-weight:500;color:var(--ink);line-height:1.85;
}
@media(max-width:640px){
  .pj-lp .lp-doc{padding:22px 18px 24px;}
}

/* =========================================================
   16. イベントカード（番号つき見出し＋定義リスト）
   ========================================================= */
.pj-lp .lp-ev{
  max-width:860px;margin:0 auto 24px;background:#fff;border-radius:4px;
  border-top:4px solid var(--blue);box-shadow:0 6px 32px rgba(29,63,170,.08);
  padding:30px 34px 34px;
}
.pj-lp .lp-ev h3{
  display:flex;align-items:center;gap:12px;
  font-size:1.2rem;font-weight:900;color:var(--navy);margin-bottom:16px;
  padding-bottom:14px;border-bottom:2px solid var(--blue4);
}
.pj-lp .lp-ev-num{
  flex:0 0 auto;min-width:1.9em;height:1.9em;padding:0 .35em;
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--blue);color:#fff;border-radius:4px;
  font-family:'Bebas Neue',sans-serif;font-size:1.1rem;letter-spacing:.02em;
}
.pj-lp .lp-ev-lead{font-size:.95rem;color:var(--ink);line-height:1.9;margin-bottom:14px;}
.pj-lp .lp-ev-alert{font-size:.85rem;color:var(--gold);font-weight:700;margin-bottom:14px;}
.pj-lp .lp-ev-meta{display:grid;grid-template-columns:6em 1fr;gap:10px 16px;margin:8px 0;font-size:.92rem;}
.pj-lp .lp-ev-meta dt{font-weight:700;color:var(--blue);}
.pj-lp .lp-ev-meta dd{color:var(--ink);margin:0;}
.pj-lp .lp-ev-sched{list-style:none;padding:0;display:flex;flex-direction:column;gap:6px;}
.pj-lp .lp-ev-sched li{padding-left:1em;position:relative;line-height:1.8;}
.pj-lp .lp-ev-sched li::before{
  content:"";position:absolute;left:0;top:.65em;width:6px;height:6px;
  background:var(--gold);border-radius:50%;
}
.pj-lp .lp-ev-btns{display:flex;flex-wrap:wrap;gap:10px;}
.pj-lp .lp-ev a:not(.lp-btn){color:var(--blue2);text-decoration:underline;word-break:break-all;}

/* 副賞などの順位リスト */
.pj-lp .lp-ev-prizes{margin-top:20px;padding-top:18px;border-top:1px dashed var(--line);}
.pj-lp .lp-ev-prizes-ttl{font-weight:900;color:var(--navy);margin-bottom:14px;}
.pj-lp .lp-ranklist{list-style:none;padding:0;display:flex;flex-direction:column;gap:14px;}
.pj-lp .lp-ranklist li{display:flex;gap:14px;align-items:flex-start;font-size:.9rem;line-height:1.85;color:var(--ink);}
.pj-lp .lp-rank-badge{
  flex:0 0 auto;min-width:3em;text-align:center;padding:5px 8px;border-radius:3px;
  background:var(--navy);color:#fff;font-weight:700;font-size:.82rem;
}
.pj-lp .lp-rank-badge.is-1{background:linear-gradient(180deg,#F7C832,#D4960C);color:var(--navy);}
.pj-lp .lp-rank-badge.is-2{background:#9AA7C4;}
.pj-lp .lp-rank-badge.is-3{background:#B87333;}
@media(max-width:640px){
  .pj-lp .lp-ev{padding:22px 18px 24px;}
  .pj-lp .lp-ev-meta{grid-template-columns:1fr;gap:2px 0;}
  .pj-lp .lp-ev-meta dt{margin-top:10px;}
  .pj-lp .lp-ranklist li{flex-direction:column;gap:6px;}
}

/* =========================================================
   17. FAQ（details / summary のアコーディオン）
   ========================================================= */
.pj-lp .lp-faqlist{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:12px;}
.pj-lp .lp-faq{
  background:#fff;border-radius:4px;border:1.5px solid var(--line);
  transition:border-color .18s,box-shadow .18s;overflow:hidden;
}
.pj-lp .lp-faq[open]{border-color:var(--blue2);box-shadow:0 8px 24px rgba(29,63,170,.1);}
.pj-lp .lp-faq summary{
  cursor:pointer;list-style:none;padding:18px 52px 18px 24px;position:relative;
  font-weight:700;font-size:.98rem;color:var(--ink);
}
.pj-lp .lp-faq summary::-webkit-details-marker{display:none;}
.pj-lp .lp-faq summary::after{
  content:"+";position:absolute;right:22px;top:50%;transform:translateY(-50%);
  font-size:1.5rem;color:var(--blue2);line-height:1;
}
.pj-lp .lp-faq[open] summary::after{content:"−";}
.pj-lp .lp-faq-a{padding:0 24px 20px;font-size:.92rem;color:var(--muted);}

/* =========================================================
   18. 名簿（役職＋氏名の2カラム）
   ========================================================= */
.pj-lp .lp-roster{
  max-width:760px;margin:0 auto;background:#fff;border-radius:4px;padding:14px 34px;
  border-top:4px solid var(--blue);box-shadow:0 6px 32px rgba(29,63,170,.08);
}
.pj-lp .lp-roster-row{
  display:flex;align-items:baseline;gap:18px;padding:15px 2px;
  border-bottom:1px solid var(--line);
}
.pj-lp .lp-roster-row:last-child{border-bottom:none;}
.pj-lp .lp-roster-role{flex:0 0 17em;font-weight:700;font-size:.92rem;color:var(--ink);line-height:1.5;}
.pj-lp .lp-roster-role small{display:block;font-weight:500;font-size:.78rem;color:var(--muted);}
.pj-lp .lp-roster-name{font-weight:500;font-size:.98rem;}
@media(max-width:640px){
  .pj-lp .lp-roster{padding:8px 20px;}
  .pj-lp .lp-roster-row{flex-direction:column;gap:2px;}
  .pj-lp .lp-roster-role{flex:none;}
}

/* =========================================================
   19. 2カラム（会場：地図＋情報）
   ========================================================= */
.pj-lp .lp-split{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;}
.pj-lp .lp-frame{border-radius:4px;overflow:hidden;box-shadow:0 6px 32px rgba(29,63,170,.12);background:#fff;}
.pj-lp .lp-frame iframe{display:block;border:0;width:100%;}
.pj-lp .lp-deflist dt{font-weight:700;color:var(--gold);margin-top:16px;font-size:.78rem;letter-spacing:.22em;}
.pj-lp .lp-deflist dd{font-weight:500;margin:0;}
@media(max-width:880px){
  .pj-lp .lp-split{grid-template-columns:1fr;gap:28px;}
}

/* =========================================================
   20. 準備中プレート
   ========================================================= */
.pj-lp .lp-plate{
  max-width:680px;margin:0 auto;background:#fff;border-radius:4px;
  border:1.5px solid var(--line);padding:34px 28px;text-align:center;
  font-weight:700;color:var(--ink);
}
.pj-lp .lp-plate-label{
  font-family:'Bebas Neue',sans-serif;font-size:1.3rem;letter-spacing:.22em;
  color:var(--gold);display:block;margin-bottom:6px;
}

/* =========================================================
   21. Reduced motion
   ========================================================= */
/* !important を使わない方針のため、打ち消し対象を個別に名指しする
   （.pj-lp * だと .pj-lp .lp-rv の方が詳細度で勝ってしまい効かない） */
@media (prefers-reduced-motion: reduce){
  .pj-lp .lp-rv{opacity:1;transform:none;transition:none;}
  .pj-lp .lp-ticker-track{animation:none;}
  .pj-lp .lp-btn,
  .pj-lp .lp-btn:hover,
  .pj-lp .lp-card,
  .pj-lp .lp-card:hover,
  .pj-lp .lp-card-ph img,
  .pj-lp .lp-card:hover .lp-card-ph img,
  .pj-lp .lp-sp-row a,
  .pj-lp .lp-sp-row a:hover,
  .pj-lp .lp-faq,
  .pj-lp .lp-toc-links a{transition:none;transform:none;}
}
