/* ===================================================================
   マーチング祭 公式サイト スタイルシート
   ブランドカラー：赤 #E30613 ／ 黒 #0B0B0C
   書体：見出し英文 Oswald ／ 和文 Noto Sans JP
   =================================================================== */

:root{
  --red:#E30613;
  --ink:#0B0B0C;
  --ink2:#141419;
  --paper:#FFFFFF;
  --grey:#8A8A8E;
  --line:#E4E4E7;
  --en:'Oswald','Arial Narrow',Impact,sans-serif;
  --jp:'Noto Sans JP','Yu Gothic','Hiragino Sans',sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--jp);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;line-height:1.7}
img{max-width:100%;height:auto;display:block}

.inner{max-width:1080px;margin:0 auto;padding:0 32px}

/* 写真が入る場所（写真を入れるまでの仮表示） */
.ph{position:relative;background:repeating-linear-gradient(135deg,#1A1A1F 0 12px,#202027 12px 24px);
    display:flex;align-items:center;justify-content:center;overflow:hidden}
.ph span{font-size:11px;letter-spacing:.13em;color:#6E6E78;text-align:center;line-height:1.9;padding:16px;z-index:2}
/* 全画面ヒーローでは、写真の指示テキストを表示しない（文字が重なって読みにくくなるため）*/
.hero .ph span,.phero .ph span{display:none}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}

.eyebrow{font-family:var(--en);font-size:13px;letter-spacing:.28em;text-transform:uppercase;color:var(--red);
         font-weight:700;display:flex;align-items:center;gap:12px}
.eyebrow::after{content:"";flex:1;height:1px;background:var(--line)}
.dark .eyebrow::after{background:#2E2E36}
.h2{font-family:var(--en);font-size:42px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;line-height:1.05;margin:14px 0 6px}
.h2jp{font-size:15px;font-weight:700;letter-spacing:.06em;color:var(--grey)}

/* ボタン（全種類に同じ枠を持たせて高さを揃える） */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-weight:700;font-size:14px;
     letter-spacing:.04em;padding:16px 30px;text-decoration:none;cursor:pointer;
     border:1px solid transparent;line-height:1.2}
.btn-red{background:var(--red);color:#fff;border-color:var(--red)}
.btn-line{border-color:var(--ink);color:var(--ink);background:transparent}
/* 暗い背景の上では、枠線ボタンを白くする（黒背景に黒文字で消えるのを防ぐ） */
.dark .btn-line,
.cta .btn-line,
.feat .btn-line,
.arcbar .btn-line{border-color:#5A5A64;color:#fff}
.cta .btn-line:hover,
.feat .btn-line:hover{border-color:#fff;opacity:1}
.btn:hover{opacity:.85}
.acts{display:flex;align-items:stretch;gap:10px;flex-wrap:wrap}

/* ---------- ヘッダー ---------- */
.hd{background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:space-between;
    padding:0 28px;height:74px;position:relative;z-index:20}
/* ロゴ（画像が無いときの「祭」の丸） */
.hd .logo{width:46px;height:46px;border-radius:50%;background:#fff;color:var(--ink);
          display:flex;align-items:center;justify-content:center;font-weight:900;font-size:20px;text-decoration:none}
/* ロゴ画像を置いたとき：白丸なしで、そのまま表示（白抜きロゴ向け） */
.hd .logo.has-img{width:auto;height:46px;background:transparent;border-radius:0}
.hd .logo.has-img img{height:100%;width:auto;max-width:200px;object-fit:contain}
/* site.json で logoCircle を true にしたとき：白い丸の中に表示（濃い色のロゴ向け） */
.hd .logo.has-img.circle{width:46px;background:#fff;border-radius:50%;padding:7px}
.hd .logo.has-img.circle img{height:100%;width:100%}
.nav{display:flex;gap:28px;font-size:13px;font-weight:700;letter-spacing:.05em}
.nav a{color:#fff;text-decoration:none;padding:6px 0;border-bottom:2px solid transparent}
.nav a:hover,.nav a.cur{border-color:var(--red)}
.hd .acts a{font-size:12px;font-weight:700;padding:11px 18px;text-decoration:none}
.a-red{background:var(--red);color:#fff}
.a-out{border:1px solid #4A4A54;color:#fff}
.navtoggle{display:none}

/* ---------- トップのヒーロー ---------- */
.hero{position:relative;height:560px;background:var(--ink)}
.hero .ph{position:absolute;inset:0}
.hero .veil{position:absolute;inset:0;z-index:3;
  background:linear-gradient(180deg,rgba(11,11,12,.55) 0%,rgba(11,11,12,.35) 45%,rgba(11,11,12,.92) 100%)}
.hero .cont{position:relative;z-index:4;height:100%;display:flex;flex-direction:column;justify-content:center;color:#fff}
.hero .sos{font-family:var(--en);font-size:12px;letter-spacing:.42em;opacity:.8;text-transform:uppercase}
.hero h1{font-family:var(--en);font-size:104px;font-weight:700;letter-spacing:.02em;line-height:.92;text-transform:uppercase;margin:12px 0 0}
.hero h1 em{font-style:normal;color:var(--red)}
.hero .jp{font-size:22px;font-weight:700;letter-spacing:.14em;margin-top:20px}
.hero .slg{font-family:var(--en);font-size:14px;letter-spacing:.34em;margin-top:14px;color:#B9B9C0}
.hero .bar{width:64px;height:4px;background:var(--red);margin-top:28px}

/* ---------- 2大大会 ---------- */
.duo{background:var(--ink);padding:0 0 96px}
.duo .lead{color:#fff;padding:64px 0 28px}
.duo .grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.card{position:relative;display:block;height:390px;text-decoration:none;overflow:hidden;background:#000}
.card .ph{position:absolute;inset:0}
.card .veil{position:absolute;inset:0;z-index:3;
  background:linear-gradient(180deg,rgba(0,0,0,.15) 0%,rgba(0,0,0,.55) 55%,rgba(0,0,0,.93) 100%)}
.card .edge{position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--red);z-index:5}
.card .body{position:absolute;left:0;right:0;bottom:0;padding:34px 32px;z-index:6;color:#fff}
.card .kn{font-family:var(--en);font-size:12px;letter-spacing:.26em;opacity:.75;text-transform:uppercase}
.card h3{font-family:var(--en);font-size:30px;font-weight:700;line-height:1.06;letter-spacing:.03em;text-transform:uppercase;margin:10px 0 8px}
.card .sub{font-size:14px;font-weight:700;letter-spacing:.08em}
.card .meta{margin-top:16px;padding-top:16px;border-top:1px solid rgba(255,255,255,.22);
            display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#D2D2D8}
.card .go{font-family:var(--en);font-size:13px;letter-spacing:.16em;color:#fff}
.card:hover .go{color:var(--red)}

/* ---------- お知らせ ---------- */
.news{padding:88px 0}
.news ul{list-style:none;margin-top:26px;border-top:1px solid var(--line)}
.news li{border-bottom:1px solid var(--line)}
.news li a{display:flex;align-items:center;gap:18px;padding:17px 4px;text-decoration:none;color:var(--ink)}
.news li a:hover{color:var(--red)}
.tag{font-size:11px;font-weight:700;letter-spacing:.06em;color:#fff;background:var(--ink);
     padding:5px 11px;min-width:112px;text-align:center;flex-shrink:0}
.tag.r{background:var(--red)}
.news .dt{font-family:var(--en);font-size:13px;color:var(--grey);letter-spacing:.08em;width:56px;flex-shrink:0}
.news .tx{font-size:15px;font-weight:500}
.news .allrow{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding:16px 4px;
  border-bottom:2px solid var(--ink);text-decoration:none;color:var(--ink);font-size:13px;font-weight:700;letter-spacing:.06em}
.news .allrow:hover{color:var(--red);border-bottom-color:var(--red)}
.news .allrow .ar{font-family:var(--en);font-size:15px}

/* ---------- about ---------- */
.about{background:#F5F5F7;padding:88px 0}
.about .lay{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.about p{font-size:15px;line-height:2.1;margin-top:22px;color:#3A3A40}
.about .ph{height:300px}

/* ---------- もっと知る ---------- */
.more{padding:88px 0}
.cols{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;margin-top:34px}
.cols h4{font-size:13px;font-weight:700;letter-spacing:.08em;padding-bottom:12px;border-bottom:2px solid var(--red);margin-bottom:16px}
.cols a{display:block;text-decoration:none;color:var(--ink);padding:11px 0;border-bottom:1px solid var(--line)}
.cols a:hover{color:var(--red)}
.cols .t{display:block;font-size:13px;font-weight:700;line-height:1.5}
.cols .d{display:block;font-size:11px;color:var(--grey);margin-top:5px;line-height:1.65}

/* ---------- 寄付 ---------- */
.dn{background:var(--red);color:#fff;padding:52px 0}
.dn .lay{display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap}
.dn h3{font-size:24px;font-weight:900;letter-spacing:.04em}
.dn p{font-size:13px;margin-top:8px;opacity:.9}
.dn .btn{background:#fff;color:var(--red);border-color:#fff}

/* ---------- 下層ページのヒーロー ---------- */
.phero{position:relative;height:400px;background:var(--ink)}
.phero .ph{position:absolute;inset:0}
.phero .veil{position:absolute;inset:0;z-index:3;background:linear-gradient(180deg,rgba(11,11,12,.45),rgba(11,11,12,.93))}
.phero .cont{position:relative;z-index:4;height:100%;display:flex;flex-direction:column;justify-content:center;color:#fff}
.phero .kn{font-family:var(--en);font-size:12px;letter-spacing:.3em;opacity:.75;text-transform:uppercase}
.phero h1{font-family:var(--en);font-size:52px;font-weight:700;line-height:1.06;letter-spacing:.03em;text-transform:uppercase;margin:12px 0 10px}
.phero h1 em{font-style:normal;color:var(--red)}
.phero .jp{font-size:15px;font-weight:700;letter-spacing:.09em;color:#C9C9D0}
.phero .cap{font-family:var(--en);font-size:13px;letter-spacing:.22em;margin-top:14px;opacity:.85}
.phero .bar{width:56px;height:4px;background:var(--red);margin-top:20px}

/* ---------- シーズン帯 ---------- */
.strip{background:var(--ink2);color:#fff}
.strip .grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #26262E}
.strip a{display:block;padding:28px 26px;text-decoration:none;color:#fff;border-right:1px solid #26262E;position:relative}
.strip a:last-child{border-right:0}
.strip a:hover{background:#1B1B21}
.strip .d{font-family:var(--en);font-size:30px;letter-spacing:.02em;line-height:1}
.strip .d i{font-style:normal;font-size:14px;color:var(--grey);margin-left:8px}
.strip .n{font-size:15px;font-weight:700;margin-top:10px;letter-spacing:.04em}
.strip .v{font-size:12px;color:#9A9AA2;margin-top:5px}
.strip .fin{position:absolute;top:0;left:0;right:0;height:4px;background:var(--red)}
.strip .flag{display:inline-block;background:var(--red);font-size:10px;font-weight:700;letter-spacing:.14em;padding:3px 8px;margin-bottom:10px}

/* ---------- FINAL大型ブロック ---------- */
.feat{background:var(--ink2);color:#fff;padding:70px 0 80px}
.feat+.feat{padding-top:0}
.feat .box{display:grid;grid-template-columns:1.1fr 1fr;background:#000;margin-top:22px}
.feat .ph{min-height:420px}
.feat .txt{padding:44px 42px;display:flex;flex-direction:column;justify-content:center}
.feat .flag{display:inline-block;background:var(--red);color:#fff;font-size:11px;font-weight:700;letter-spacing:.16em;padding:7px 14px;align-self:flex-start}
.feat h2{font-family:var(--en);font-size:44px;font-weight:700;line-height:1;text-transform:uppercase;margin:18px 0 6px;letter-spacing:.03em}
.feat .jp{font-size:14px;font-weight:700;color:#B9B9C0;letter-spacing:.07em}
.feat dl{margin:24px 0 28px;border-top:1px solid #2E2E36}
.feat .row{display:flex;gap:18px;padding:12px 0;border-bottom:1px solid #2E2E36;font-size:13px}
.feat dt{width:74px;color:var(--grey);letter-spacing:.1em;flex-shrink:0;font-family:var(--en);font-size:12px;text-transform:uppercase}
.feat dd{font-weight:700;line-height:1.7}
.feat dd .thin{font-weight:400;color:#9A9AA2;font-size:12px;display:block;margin-top:4px}

/* ---------- 大会詳細カード ---------- */
.evs{padding:80px 0}
.ev{border:1px solid var(--line);margin-top:22px;display:grid;grid-template-columns:250px 1fr}
.ev .ph{min-height:240px}
.ev .body{padding:30px 32px}
.ev .top{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.ev .date{font-family:var(--en);font-size:34px;line-height:1}
.ev .dow{font-size:12px;color:var(--grey);letter-spacing:.1em}
.ev .region{font-size:11px;font-weight:700;letter-spacing:.1em;color:#fff;background:var(--ink);padding:5px 10px}
.ev h3{font-size:22px;font-weight:900;letter-spacing:.04em;margin:12px 0 4px}
.ev .venue{font-size:13px;color:#4A4A52;font-weight:700}
.ev .co{font-size:12px;color:var(--grey);margin-top:4px}
.ev dl{margin-top:18px;border-top:1px solid var(--line)}
.ev .r{display:flex;gap:16px;padding:11px 0;border-bottom:1px solid var(--line);font-size:13px}
.ev dt{width:78px;color:var(--grey);font-size:12px;font-weight:700;letter-spacing:.06em;flex-shrink:0}
.ev dd{line-height:1.75}
.ev dd .thin{display:block;font-size:12px;color:var(--grey);margin-top:4px}

/* ---------- お知らせ枠（中止など） ---------- */
.notice{background:#FFF4F4;border:1px solid #F3C9CB;border-left:5px solid var(--red);padding:24px 28px;margin-top:26px}
.notice h4{font-size:15px;font-weight:900;color:var(--red);margin-bottom:8px;letter-spacing:.04em}
.notice p{font-size:13px;line-height:1.95;color:#4A4A52}
.notice ul{margin:10px 0 0 18px;font-size:13px;line-height:1.9;color:#4A4A52}

/* ---------- 出場チーム（タブ） ---------- */
.teams{background:#F5F5F7;padding:80px 0}
.tabs{display:flex;margin-top:28px;border-bottom:2px solid var(--ink)}
.tab{flex:1;font-family:var(--jp);background:transparent;border:0;border-bottom:4px solid transparent;
     padding:15px 12px;cursor:pointer;font-size:15px;font-weight:700;letter-spacing:.04em;color:#9A9AA2;text-align:center}
.tab i{display:block;font-family:var(--en);font-style:normal;font-size:12px;letter-spacing:.1em;margin-top:5px;color:var(--grey)}
.tab:hover{color:var(--ink)}
.tab.on{color:var(--ink);border-bottom-color:var(--red)}
.tab.on i{color:var(--red)}
.tp{display:none;padding-top:26px}
.tp.on{display:block}
.tg{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.tcol{background:#fff;padding:26px 24px;border-top:4px solid var(--red)}
.tcol h4{font-size:14px;font-weight:900;letter-spacing:.06em;margin-bottom:14px}
.tcol a,.tcol>span{display:block;font-size:13px;padding:8px 0;border-bottom:1px solid var(--line);
                   text-decoration:none;color:var(--ink);line-height:1.5}
.tcol a:hover{color:var(--red)}
.tcol .pref{display:inline;font-size:11px;color:var(--grey);margin-left:4px}
.tbd{background:#fff;padding:64px 30px;text-align:center;border-top:4px solid var(--line)}
.tbd .k{font-family:var(--en);font-size:13px;letter-spacing:.22em;color:var(--grey)}
.tbd p{font-size:14px;margin-top:12px;color:#4A4A52;line-height:1.9}

/* ---------- MIX3 スケジュール ---------- */
.sch{padding:80px 0}
.slist{margin-top:28px;border-top:2px solid var(--ink)}
.srow{display:grid;grid-template-columns:52px 92px 1fr 200px 104px;gap:18px;align-items:center;
      padding:20px 6px;border-bottom:1px solid var(--line)}
.srow:hover{background:#FAFAFB}
.srow .no{font-family:var(--en);font-size:14px;color:var(--grey);letter-spacing:.06em}
.srow .d{font-family:var(--en);font-size:26px;line-height:1}
.srow .d i{display:block;font-family:var(--jp);font-style:normal;font-size:11px;color:var(--grey);letter-spacing:.08em;margin-top:4px}
.srow .n{font-size:16px;font-weight:700;letter-spacing:.03em}
.srow .n em{font-style:normal;display:inline-block;background:var(--red);color:#fff;font-size:10px;
            padding:3px 8px;margin-left:9px;vertical-align:2px;letter-spacing:.1em}
.srow .divi{display:inline-block;border:1px solid var(--line);font-size:10px;color:#55555C;
            padding:3px 7px;margin-left:8px;letter-spacing:.06em;vertical-align:2px}
.srow .j{font-size:11px;color:var(--grey);margin-top:5px;line-height:1.6}
.srow .v{font-size:12px;color:#55555C;line-height:1.7}
.srow .p{font-family:var(--en);font-size:15px;text-align:right}
.srow .p i{display:block;font-family:var(--jp);font-style:normal;font-size:10px;color:var(--grey);margin-top:3px}

/* ---------- 3部門 ---------- */
.divs{background:#F5F5F7;padding:80px 0}
.dgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:30px}
.dcard{background:#fff;padding:30px 26px;border-top:4px solid var(--red)}
.dcard .n{font-family:var(--en);font-size:12px;letter-spacing:.2em;color:var(--red)}
.dcard h4{font-size:19px;font-weight:900;margin:9px 0 10px;letter-spacing:.04em}
.dcard p{font-size:13px;line-height:1.95;color:#4A4A52}
.chips{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.chip{font-size:11px;font-weight:700;letter-spacing:.05em;border:1px solid var(--line);padding:6px 11px;color:#55555C}

/* ---------- エントリー ---------- */
.cta{background:var(--ink);color:#fff;padding:74px 0;text-align:center}
.cta h3{font-family:var(--en);font-size:40px;text-transform:uppercase;letter-spacing:.05em;font-weight:700}
.cta p{font-size:14px;color:#A8A8B0;margin:14px 0 28px;line-height:2}
.cta .acts{justify-content:center;gap:12px}

/* ---------- アーカイブ ---------- */
.arcbar{background:var(--ink);color:#fff;padding:26px 0}
.arcbar .in{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.arcbar .t{font-size:15px;font-weight:700;letter-spacing:.05em}
.arcbar .s{font-size:12px;color:#9A9AA2;margin-top:5px}
.arc{padding:70px 0}
.yr{margin-top:40px}
.yrh{display:flex;align-items:baseline;gap:16px;border-bottom:2px solid var(--ink);padding-bottom:10px}
.yrh .y{font-family:var(--en);font-size:38px;line-height:1}
.yrh .c{font-size:12px;color:var(--grey)}
.ag{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px}
.ag a{border:1px solid var(--line);padding:20px;text-decoration:none;color:var(--ink)}
.ag a:hover{border-color:var(--red)}
.ag .k{font-family:var(--en);font-size:11px;letter-spacing:.16em;color:var(--red)}
.ag .t{font-size:15px;font-weight:700;margin:7px 0 4px}
.ag .m{font-size:11px;color:var(--grey);line-height:1.7}

/* ---------- 下層ページ共通 ---------- */
.pg-lead{padding:64px 0 10px}
.pg-lead p{font-size:17px;line-height:2.1;font-weight:500;max-width:820px;color:#2A2A30}
.pg-body{padding:52px 0}
.pg-body .prose{margin-top:22px;max-width:820px}
.pg-body .prose p{font-size:15px;line-height:2.15;color:#3A3A40;margin-bottom:18px}
.pg-body .prose p:last-child{margin-bottom:0}
.pg-body .prose b{font-weight:700;color:var(--ink)}

.pg-cards{padding:60px 0}
.pg-cards.grey,.pg-list.grey,.pg-links.grey{background:#F5F5F7}
.cgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:28px}
.ccard{display:block;background:#fff;border:1px solid var(--line);padding:26px 24px;text-decoration:none;color:var(--ink)}
.ccard:hover{border-color:var(--red)}
.ccard .en{display:block;font-family:var(--en);font-size:11px;letter-spacing:.18em;color:var(--red);text-transform:uppercase}
.ccard .t{display:block;font-size:16px;font-weight:700;margin:8px 0 6px;line-height:1.5}
.ccard .d{display:block;font-size:12px;color:var(--grey);line-height:1.8}

.pg-list{padding:60px 0}
.deflist{margin-top:26px;border-top:2px solid var(--ink);max-width:900px}
.deflist .dr{display:flex;gap:24px;padding:15px 4px;border-bottom:1px solid var(--line)}
.deflist dt{width:170px;flex-shrink:0;font-size:13px;font-weight:700;letter-spacing:.06em;color:#55555C}
.deflist dd{font-size:14px;line-height:1.85}
.deflist dd a{color:var(--ink)}
.deflist dd a:hover{color:var(--red)}

.pg-links{padding:60px 0}
.linklist{list-style:none;margin-top:26px;border-top:1px solid var(--line);max-width:900px}
.linklist li{border-bottom:1px solid var(--line)}
.linklist a{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 4px;
            text-decoration:none;color:var(--ink);font-size:15px;font-weight:500}
.linklist a::after{content:"→";font-family:var(--en);color:var(--grey);font-size:14px}
.linklist a:hover{color:var(--red)}
.linklist a:hover::after{color:var(--red)}
.linklist .note{display:block;font-size:12px;color:var(--grey);font-weight:400;margin-top:4px}

/* ---------- アーカイブ詳細 ---------- */
.arc-ev{border:1px solid var(--line);padding:32px 34px;margin-top:22px}
.arc-head{border-bottom:2px solid var(--ink);padding-bottom:14px}
.arc-date{font-family:var(--en);font-size:20px;letter-spacing:.04em;color:var(--red)}
.arc-ev h3{font-size:22px;font-weight:900;letter-spacing:.03em;margin:8px 0 6px;line-height:1.4}
.arc-venue{font-size:14px;font-weight:700;color:#4A4A52}
.arc-venue .divi{display:inline-block;border:1px solid var(--line);font-size:10px;color:#55555C;padding:3px 7px;letter-spacing:.06em;vertical-align:2px;font-weight:400}
.arc-ev .deflist{border-top:0;max-width:none}
.arc-ev .deflist dt{width:110px}
.arc-teams{margin-top:26px;padding-top:24px;border-top:1px solid var(--line)}
.arc-teams-h{font-size:13px;font-weight:900;letter-spacing:.08em;margin-bottom:16px;color:var(--red)}
.arc-teams .tg{gap:16px}
.arc-teams .tcol{background:#F5F5F7;border-top-width:3px;padding:20px 18px}
.arc-teams .tcol h4{font-size:12px;margin-bottom:10px}
.arc-teams .tcol span{display:block;font-size:12px;padding:6px 0;border-bottom:1px solid #E0E0E4;line-height:1.5}
.arc-credits{margin-top:26px;font-size:12px;color:var(--grey);line-height:1.9}

/* 準備中の行 */
.linklist li.soon{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 4px;
                  font-size:15px;font-weight:500;color:#9A9AA2}
.linklist li.soon em{font-style:normal;font-size:11px;font-weight:700;letter-spacing:.08em;
                     border:1px solid var(--line);padding:5px 10px;color:var(--grey);flex-shrink:0}
/* リンクではない説明カード */
.ccard.static{cursor:default}
.ccard.static:hover{border-color:var(--line)}

/* ---------- フッター ---------- */
.ft{background:var(--ink);color:#fff;padding:56px 0 30px}
.ft .lay{display:flex;justify-content:space-between;gap:40px;padding-bottom:34px;border-bottom:1px solid #26262E;flex-wrap:wrap}
.ft .en{font-family:var(--en);font-size:26px;letter-spacing:.18em;text-transform:uppercase}
.ft .sm{font-size:12px;color:#8A8A8E;line-height:2;margin-top:14px}
.ft .sm a{color:#8A8A8E}
.ft .cp{font-family:var(--en);font-size:11px;letter-spacing:.16em;color:#61616B;padding-top:22px}

/* ---------- スマホ表示 ---------- */
@media(max-width:900px){
  .inner{padding:0 20px}
  .hd{flex-wrap:wrap;height:auto;padding:14px 20px;gap:10px}
  .nav{gap:16px;font-size:12px;order:3;width:100%;flex-wrap:wrap;padding-top:6px;border-top:1px solid #26262E}
  .hero{height:auto;padding:80px 0 60px}
  .hero h1{font-size:52px}
  .hero .jp{font-size:17px}
  .h2{font-size:30px}
  .phero{height:auto;padding:70px 0 50px}
  .phero h1{font-size:34px}
  .duo .grid,.about .lay,.cols,.tg,.dgrid,.ag{grid-template-columns:1fr}
  .feat .box,.ev{grid-template-columns:1fr}
  .feat .ph,.ev .ph{min-height:220px}
  .feat .txt,.ev .body{padding:28px 22px}
  .srow{grid-template-columns:1fr;gap:8px}
  .srow .p{text-align:left}
  /* 大会の日付リストは、スマホでも横3つ並び（縦に長くしないため） */
  .strip .grid{grid-template-columns:repeat(3,1fr)}
  .strip a{padding:16px 8px 18px}
  .strip .d{font-size:20px;line-height:1.05}
  .strip .d i{display:block;margin-left:0;margin-top:4px;font-size:11px}
  .strip .n{font-size:11px;font-weight:700;margin-top:8px;letter-spacing:0;line-height:1.4}
  .strip .v{font-size:10px;margin-top:4px;line-height:1.4}
  .strip a{padding-top:28px}
  .strip .flag{position:absolute;top:4px;left:0;right:0;margin:0;text-align:center;
               font-size:8px;letter-spacing:.06em;padding:3px 0}
  /* 出場チームのタブも、スマホで横3つ並び */
  .tabs{flex-direction:row;border-bottom:2px solid var(--ink)}
  .tab{flex:1;text-align:center;padding:12px 4px;font-size:11px;letter-spacing:0;line-height:1.35;
       border-bottom:4px solid transparent}
  .tab i{font-size:10px;letter-spacing:.02em;margin-top:4px}
  .tab.on{border-bottom-color:var(--red)}
  .cta h3{font-size:28px}
}

/* チケット購入ボタン（横並び。狭い画面では縦に積む） */
.ev .tkt{margin-top:18px;display:flex;gap:10px;flex-wrap:wrap}
.ev .tkt .btn{text-decoration:none}
@media(max-width:768px){.ev .tkt .btn{width:100%}}

/* 黒いボタン */
.btn-dark{background:var(--ink);color:#fff;border-color:var(--ink)}


/* ===================================================================
   小さな窓（モーダル）
   「スーパーエキサイティングシートとは？」のボタンで開きます
   =================================================================== */
.modal{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px}
.modal[hidden]{display:none}
.modal-bg{position:absolute;inset:0;background:rgba(11,11,12,.72);opacity:0;transition:opacity .2s ease}
.modal-box{position:relative;background:#fff;width:min(680px,100%);max-height:min(84vh,760px);
           display:flex;flex-direction:column;box-shadow:0 24px 60px rgba(0,0,0,.35);
           opacity:0;transform:translateY(12px) scale(.985);transition:opacity .22s ease,transform .22s cubic-bezier(.22,.61,.36,1)}
.modal.show .modal-bg{opacity:1}
.modal.show .modal-box{opacity:1;transform:none}
.modal-x{position:absolute;top:8px;right:10px;z-index:2;width:36px;height:36px;border:0;background:transparent;
         font-size:26px;line-height:1;color:var(--grey);cursor:pointer;font-family:var(--jp)}
.modal-x:hover{color:var(--ink)}
.modal-scroll{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:34px 34px 30px}
body.modal-open{overflow:hidden}

/* 窓の中身 */
.ses .kicker{font-family:var(--en);font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--red);font-weight:700}
.ses h2{font-size:21px;font-weight:900;letter-spacing:.02em;margin-top:8px;line-height:1.4}
.ses .lead{font-size:13.5px;color:#3A3A42;margin-top:14px}
.ses h3{font-size:14px;font-weight:900;letter-spacing:.05em;display:flex;align-items:center;gap:10px;
        margin-top:26px;padding-top:20px;border-top:1px solid var(--line)}
.ses h3 i{font-family:var(--en);font-style:normal;color:var(--red);font-size:18px;font-weight:700}
.ses .catch{font-size:16px;font-weight:900;line-height:1.7;margin-top:14px}
.ses .catch em{font-style:normal;color:var(--red)}
.ses .note{font-size:12.5px;color:#5A5A62;margin-top:12px}
.ses .steps{list-style:none;margin-top:14px}
.ses .steps li{display:grid;grid-template-columns:24px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.ses .steps li:last-child{border-bottom:0;padding-bottom:0}
.ses .steps .num{width:22px;height:22px;border-radius:50%;background:var(--ink);color:#fff;font-family:var(--en);
                 font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-top:1px}
.ses .steps b{display:block;font-size:13.5px;font-weight:900;letter-spacing:.03em}
.ses .steps p{font-size:12.5px;color:#5A5A62;margin-top:5px}
.ses .steps .ast{display:block;font-size:11px;color:var(--grey);margin-top:4px}
.ses .map{margin-top:22px;border:1px solid var(--line);padding:12px}
.ses .map figcaption{font-size:11px;color:var(--grey);margin-top:8px;text-align:center;letter-spacing:.03em}
@media(max-width:768px){
  .modal{padding:0}
  .modal-box{width:100%;max-height:100%;height:100%}
  .modal-scroll{padding:26px 20px 40px}
  .ses h2{font-size:18px}
  .ses .catch{font-size:15px}
}

/* ===================================================================
   さりげない動き
   ・「視差効果を減らす」設定の端末では、すべて自動的にオフになります
   ・JavaScriptが動かない環境では最初から表示されます（html の js クラスで制御）
   =================================================================== */
@media (prefers-reduced-motion: no-preference){

  /* スクロールで、ふわっと浮かび上がる */
  .js .rv{opacity:0;transform:translateY(16px);
          transition:opacity .75s ease,transform .75s cubic-bezier(.22,.61,.36,1)}
  .js .rv.shown{opacity:1;transform:none}

  /* ヒーロー写真：読み込み時にゆっくり寄りが引く */
  .hero .ph img,.phero .ph img{animation:mmZoom 8s cubic-bezier(.16,.7,.3,1) both}
  @keyframes mmZoom{from{transform:scale(1.08)}to{transform:scale(1)}}

  /* ヒーローの文字：順番に出てくる */
  .hero .cont .inner>*,.phero .cont .inner>*{animation:mmUp .9s cubic-bezier(.22,.61,.36,1) both}
  .hero .cont .inner>*:nth-child(1),.phero .cont .inner>*:nth-child(1){animation-delay:.10s}
  .hero .cont .inner>*:nth-child(2),.phero .cont .inner>*:nth-child(2){animation-delay:.20s}
  .hero .cont .inner>*:nth-child(3),.phero .cont .inner>*:nth-child(3){animation-delay:.30s}
  .hero .cont .inner>*:nth-child(4),.phero .cont .inner>*:nth-child(4){animation-delay:.40s}
  .hero .cont .inner>*:nth-child(5),.phero .cont .inner>*:nth-child(5){animation-delay:.50s}
  @keyframes mmUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
}

/* マウスを乗せたときの動き（軽いので常時オン） */
.duo .card .ph img,.feat .ph img,.ev .ph img,.about .ph img{transition:transform .6s cubic-bezier(.2,.6,.3,1)}
.duo .card:hover .ph img{transform:scale(1.05)}
.feat .box:hover .ph img,.ev:hover .ph img{transform:scale(1.03)}
.duo .card .go{transition:transform .3s ease;display:inline-block}
.duo .card:hover .go{transform:translateX(6px)}
.strip a{transition:background .25s ease}
.btn{transition:opacity .2s ease,transform .2s ease,background .2s ease,color .2s ease,border-color .2s ease}
.btn:hover{transform:translateY(-2px)}
.more .cols a,.ag a,.tcol a{transition:color .2s ease,transform .2s ease}
.more .cols a:hover,.ag a:hover{transform:translateX(3px)}
.nav a{transition:border-color .2s ease}
.hd .logo img{transition:transform .3s ease}
.hd .logo:hover img{transform:scale(1.06)}
@media (prefers-reduced-motion: reduce){
  .duo .card:hover .ph img,.feat .box:hover .ph img,.ev:hover .ph img{transform:none}
  .btn:hover{transform:none}
}

/* ------------------------------------------------------------------
   スマホでのカード一覧（2026/8/29 追加）
   「メディア」「育成・支援」などの一覧カードが、スマホでも3列のまま
   細くなり、文字が1文字ずつ折り返してしまっていたのを直します。
   ------------------------------------------------------------------ */
@media(max-width:768px){ .cgrid{grid-template-columns:repeat(2,1fr);gap:12px} }
@media(max-width:560px){ .cgrid{grid-template-columns:1fr} }


/* ===================================================================
   実施要項の閲覧ページ（/guidelines/）まわりの調整
   =================================================================== */

/* 一覧表（項目：内容）の中の「※」などの補足文を、小さくグレーで出す */
.deflist .thin{display:block;font-size:12px;color:var(--grey);margin-top:6px;
               line-height:1.9;font-weight:400;letter-spacing:0}

/* スマホでは「項目」と「内容」を縦に積む（横に並べると内容が細くなりすぎるため） */
@media(max-width:768px){
  .deflist .dr{flex-direction:column;gap:6px;padding:14px 4px}
  .deflist dt{width:auto}
}


/* ===================================================================
   横浜FINAL「3日間 × 部門」の帯（祭AJCSページ）
   =================================================================== */
.fdays{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#2E2E36;
       border:1px solid #2E2E36;margin:0 0 16px;list-style:none}
.fdays li{background:#0B0B0C;padding:14px 12px;display:block}
.fdays .k{display:block;font-family:var(--en);font-size:10px;letter-spacing:.18em;color:var(--red);font-weight:700}
.fdays .dt{display:block;font-family:var(--en);font-size:19px;letter-spacing:.02em;color:#fff;margin-top:6px;line-height:1.1}
.fdays .dt i{display:block;font-style:normal;font-family:var(--jp);font-size:11px;
              color:#9A9AA2;margin-top:4px}
.fdays .c{display:block;font-size:12px;font-weight:700;color:#fff;margin-top:7px;letter-spacing:.04em;line-height:1.4}
.fnote{font-size:11px;color:#9A9AA2;margin:0 0 24px}

@media(max-width:768px){
  /* 3つ並びは、スマホでも横3列のまま（サイト全体のルールに合わせる） */
  .fdays li{padding:11px 7px}
  .fdays .k{font-size:9px;letter-spacing:.1em}
  .fdays .dt{font-size:15px}
  .fdays .dt i{font-size:10px;margin-top:3px}
  .fdays .c{font-size:11px;letter-spacing:0}
}


/* ===================================================================
   企業協賛ページ（/sponsor/）
   ・協賛プランの3枚カード（.plans）
   ・協賛企業一覧（.logowall）
   =================================================================== */

.pg-plans{padding:60px 0}
.pg-logos{padding:60px 0}
.pg-plans.grey,.pg-logos.grey,.pg-body.grey{background:#F5F5F7}

.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:28px;align-items:stretch}
.plan{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);padding:28px 24px 26px}
.plan .en{display:block;font-family:var(--en);font-size:11px;letter-spacing:.18em;
          color:var(--red);text-transform:uppercase;font-weight:700}
.plan .t{display:block;font-size:17px;font-weight:900;letter-spacing:.04em;margin:8px 0 14px}
.plan .price{display:block;font-family:var(--en);font-size:34px;line-height:1;letter-spacing:.01em;font-weight:700}
.plan .price small{font-family:var(--jp);font-size:13px;font-weight:700;letter-spacing:.04em;margin-left:2px}
.plan .pn{display:block;font-size:11px;color:var(--grey);margin-top:8px;letter-spacing:.04em}
.plan .pf{list-style:none;margin:20px 0 0;padding-top:18px;border-top:1px solid var(--line)}
.plan .pf li{position:relative;padding-left:18px;font-size:13px;line-height:1.95;color:#3A3A40;margin-bottom:9px}
.plan .pf li:last-child{margin-bottom:0}
.plan .pf li::before{content:"";position:absolute;left:0;top:11px;width:8px;height:2px;background:var(--red)}

/* ゴールドプランだけ、少し目立たせる */
.plan.gold{border-color:var(--ink);background:var(--ink);color:#fff}
.plan.gold .price,.plan.gold .t{color:#fff}
.plan.gold .pf{border-top-color:#33333C}
.plan.gold .pf li{color:#D6D6DC}
.plan.gold .pn{color:#9A9AA2}

.plans-note{font-size:12px;color:var(--grey);line-height:1.95;margin-top:20px}

/* 協賛企業一覧 */
.logowall{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
          background:var(--line);border:1px solid var(--line);margin-top:28px}
.logowall li{background:#fff;min-height:104px;display:flex;align-items:center;justify-content:center;padding:20px}
.logowall a{display:flex;align-items:center;justify-content:center;width:100%;height:100%;text-decoration:none}
.logowall img{max-height:56px;width:auto;object-fit:contain}
.logowall span{font-size:13px;font-weight:700;text-align:center;line-height:1.7;color:var(--ink);letter-spacing:.04em}
.logowall a span:hover{color:var(--red)}

.logo-soon{margin-top:28px;background:#fff;border:1px dashed #C9C9D0;padding:34px 28px;text-align:center;
           font-size:13px;color:#55555C;line-height:1.95}
.logo-soon em{display:inline-block;font-style:normal;font-size:11px;font-weight:700;letter-spacing:.1em;
              color:#fff;background:var(--grey);padding:4px 10px;margin-left:10px;vertical-align:2px}

@media(max-width:900px){
  .plans{grid-template-columns:1fr}
  .logowall{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:560px){
  .plan{padding:24px 20px}
  .plan .price{font-size:29px}
  .logowall{grid-template-columns:repeat(2,1fr)}
  .logowall li{min-height:88px;padding:16px}
}

/* 黒い帯が2本続くときは、あいだに細い線を入れて区切る */
.arcbar + .arcbar{border-top:1px solid #2E2E36}
