/* =========================================================
   ENCULFES2025 用スタイル（ティア固定枠＋ロゴ最大化＋Bronze集合）
   ========================================================= */

/* トークン */
:root{
  --bg:#cb912d;      /* 背景 */
  --fg:#fff;         /* 本文 */
  --muted:#ffeec4;   /* 補足 */
  --accent:#7c3aed;  /* アクセント（紫） */
  --panel:rgba(0,0,0,.24);
  --radius:16px;
  --max:1100px;
}

/* 親テーマの幅制限を解除（このテンプレだけ） */
body.page-template-template-enculfes2025 #content,
body.page-template-template-enculfes2025 .wrap,
body.page-template-template-enculfes2025 .entry-content,
body.page-template-template-enculfes2025 .post,
body.page-template-template-enculfes2025 #main,
body.page-template-template-enculfes2025 .l-content{
  max-width:100% !important;
  width:100% !important;
  padding:0 !important;
  margin:0 auto !important;
  background:transparent !important;
  box-shadow:none !important;
}

/* LP本体 */
.event-landing{
  color:var(--fg);
  font-family:system-ui,-apple-system,"Noto Sans JP",sans-serif;
  background:var(--bg) !important;
  min-height:100dvh;
}
.container{
  max-width:var(--max);
  margin:auto;
  padding:64px 20px;
}
@media (max-width:520px){
  .container{ padding:48px 16px; }
}

/* ===== ヒーロー（上下余白ゼロ・全高） ===== */
.hero{
  position:relative;
  min-height:100svh;
  overflow:hidden;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  padding:0;
  margin:0;
}
.hero-inner{
  text-align:center;
  z-index:2;
  margin:0;
  padding:0;
}
.hero-logo{
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0;
}
.hero-logo img{
  width:min(96vw, 1600px);
  height:auto;
  display:block;
}

/* ゆらゆら（速度/振幅調整） */
@keyframes ef_sway_fast{
  0%{transform:translateY(0) rotate(0)}
  25%{transform:translateY(-10px) rotate(-1.1deg)}
  50%{transform:translateY(0) rotate(0)}
  75%{transform:translateY(8px) rotate(.9deg)}
  100%{transform:translateY(0) rotate(0)}
}
body.page-template-template-enculfes2025 .hero-logo img{
  animation:ef_sway_fast 4.5s cubic-bezier(.45,.05,.55,.95) infinite !important;
  transform-origin:50% 50% !important;
}
@media (max-width:768px){
  @keyframes ef_sway_fast_sp{
    0%{transform:translateY(0) rotate(0)}
    25%{transform:translateY(-8px) rotate(-.8deg)}
    50%{transform:translateY(0) rotate(0)}
    75%{transform:translateY(6px) rotate(.7deg)}
    100%{transform:translateY(0) rotate(0)}
  }
  body.page-template-template-enculfes2025 .hero-logo img{
    animation:ef_sway_fast_sp 4.2s cubic-bezier(.45,.05,.55,.95) infinite !important;
  }
}

/* 見どころ／カード */
.highlights h2,
.schedule h2,
.access h2,
.sponsors h2{
  font-size:28px;
  margin:0 0 20px;
  color:#111;
}
.cards{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}
@media (max-width:900px){
  .cards{ grid-template-columns:1fr; }
}
.card{
  background:var(--panel);
  border:1px solid rgba(255,255,255,.28);
  border-radius:var(--radius);
  padding:20px;
}
.card h3{
  margin:0 0 8px;
  font-size:20px;
}

/* タイムテーブル */
.timeline{
  list-style:none;
  margin:0;
  padding:0;
  border-left:2px solid rgba(255,255,255,.12);
}
.timeline li{
  display:flex;
  gap:16px;
  padding:12px 0 12px 16px;
}
.timeline .t{
  color:var(--accent);
  min-width:110px;
  font-weight:700;
}
.timeline .d{ color:#fff; }
.schedule .schedule-note{
  color:var(--muted);
  margin-top:8px;
  font-size:13px;
}

/* マップ（枠いっぱい） */
.map-wrap{
  position:relative;
  aspect-ratio:16/9;
  border-radius:var(--radius);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.28);
  background:rgba(0,0,0,.15);
}
.map-wrap iframe{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  border:0 !important;
  display:block !important;
}

/* ===== 協賛ロゴ：ティアごとに枠サイズ固定＋ロゴ最大化 ===== */

/* 親グリッド：12列 */
.sponsor-grid{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:24px;
  align-items:stretch;
}

/* 共通の白枠カード（t1〜t3 と t4-wall） */
.sponsor-card{
  background:#fff;
  border:1px solid rgba(0,0,0,.08);
  border-radius:22px;
  box-shadow:0 6px 18px rgba(0,0,0,.12);
  padding:18px;
  display:block;
  overflow:hidden;
}

/* ロゴ最大化（枠の比率固定＋内側最大化） */
.logo-box{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
}
.logo-box img{
  width:auto;
  height:auto;
  max-width:92%;
  max-height:82%;
  object-fit:contain;
  display:block;
}

/* ティア別カードサイズ（PC基準：比率固定） */
.t1{ grid-column:span 6; aspect-ratio:16/6; }   /* platinum（大） */
.t2{ grid-column:span 6; aspect-ratio:16/8; }   /* gold（中） */
.t3{ grid-column:span 4; aspect-ratio:16/10; }  /* silver（小） */

/* ティア4（bronze）：1つの大枠の中で均等セル */
.t4-wall{ grid-column:span 12; padding:22px; }
.t4-grid{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:16px;
}
.t4-cell{
  background:#fff;
  border:1px solid rgba(0,0,0,.08);
  border-radius:18px;
  box-shadow:0 4px 14px rgba(0,0,0,.10);
  padding:10px;
  aspect-ratio:5/3;
  display:block;
  overflow:hidden;
}
.t4-cell .logo-box img{
  max-width:85%;
  max-height:75%;
}

/* レスポンシブ（比率は維持、列だけ変更） */
@media (max-width:1200px){
  .t1{ grid-column:span 12; aspect-ratio:16/8; }
  .t2{ grid-column:span 12; aspect-ratio:16/9; }
  .t3{ grid-column:span 6;  aspect-ratio:16/10; }
  .t4-grid{ grid-template-columns:repeat(4,1fr); }
}
@media (max-width:700px){
  .t1,.t2,.t3{ grid-column:span 12; aspect-ratio:16/11; }
  .t4-grid{ grid-template-columns:repeat(2,1fr); }
}

/* 安定化 */
body.page-template-template-enculfes2025 img,
body.page-template-template-enculfes2025 video,
body.page-template-template-enculfes2025 iframe{
  max-width:100%;
  height:auto;
}
body.page-template-template-enculfes2025{ overflow-x:hidden; }

/* 背景色の統一 */
html, body{ background:#cb912d !important; }
body.page-template-template-enculfes2025 #content,
body.page-template-template-enculfes2025 .site-main,
body.page-template-template-enculfes2025 .wrap,
body.page-template-template-enculfes2025 .content,
body.page-template-template-enculfes2025 .entry-content,
body.page-template-template-enculfes2025 main,
body.page-template-template-enculfes2025 .event-landing{
  background:#cb912d !important;
}

/* LP本体をセンター配置（左寄り解消） */
body.page-template-template-enculfes2025 .event-landing{
  width:auto !important;
  margin:0 auto !important;
  max-width:100%;
}
body.page-template-template-enculfes2025 .container{
  max-width:1100px;
  margin-inline:auto;
}

/* ===== ハロウィン装飾（固定貼り付きを禁止して“絶対配置”に統一） ===== */
.hw-decos{ position:relative; z-index:1; }
.hw-deco{ position:absolute !important; opacity:.9; pointer-events:none; }

/* 角＆端に小さめ配置 */
.bat-tl{ top:-12px; left:12px; width:84px; }
.bat-tr{ top:-8px; right:16px; width:92px; transform:scaleX(-1); }
.bat-br{ bottom:-10px; right:18px; width:96px; }
.castle-bl{ bottom:-8px; left:10px; width:120px; }
.pump-tl{ top:8px; left:64px; width:90px; }
.cat-br{ bottom:14px; right:36px; width:110px; }

@media (max-width:768px){
  .bat-tl{ width:64px; }
  .bat-tr{ width:70px; }
  .bat-br{ width:72px; }
  .castle-bl{ width:90px; }
  .pump-tl{ width:70px; }
  .cat-br{ width:88px; }
}

/* === SP：ヒーローの余白をゼロにして、直後の見どころに詰める === */
@media (max-width: 768px){
  .hero{
    min-height:auto !important;   /* 100svh を解除 */
    padding:0 !important;
    margin:0 !important;
  }
  .hero-inner{ padding:0 !important; margin:0 !important; }
  .hero-logo{ margin:0 !important; }
  .subtitle{ margin:6px 0 0 !important; }

  /* ヒーローの直後セクションを少し詰める（任意） */
  .highlights.container{ padding-top:16px !important; }
}

/* ──────────────────────────────────────────
   協賛：白枠を“ほんの少し”透過（背景デコがうっすら見える）
   ────────────────────────────────────────── */
.sponsor-card{
  background:rgba(255,255,255,0.90) !important;  /* ← 透過 */
  border:1px solid rgba(0,0,0,.08);
  border-radius:22px;
  box-shadow:0 6px 18px rgba(0,0,0,.12);
}
.t4-cell,
.t3-cell{
  background:rgba(255,255,255,0.92);             /* セルも同じく少し透過 */
  border:1px solid rgba(0,0,0,.08);
  border-radius:18px;
  box-shadow:0 4px 14px rgba(0,0,0,.10);
}

/* ロゴ最大化（枠内でフィット） */
.logo-box{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
}
.logo-box img{
  width:auto;
  height:auto;
  max-width:92%;
  max-height:82%;
  object-fit:contain;
  display:block;
}

/* ──────────────────────────────────────────
   ティア3：常に 2 列固定のウォール
   ────────────────────────────────────────── */
.t3-wall{ grid-column: span 12; padding: 22px; }
.t3-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);          /* 画面サイズに関係なく常に2列 */
  gap:16px;
}
.t3-cell{
  display:block;
  overflow:hidden;
  aspect-ratio:16 / 10;                          /* 枠の比率固定（端末差が出ない） */
}
.t3-cell .logo-box img{ max-width:88%; max-height:78%; }

/* ──────────────────────────────────────────
   ティア4：常に 3 列固定のウォール
   ────────────────────────────────────────── */
.t4-wall{ grid-column: span 12; padding: 22px; }
.t4-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr) !important; /* 画面サイズや個数に依存せず常に3列 */
  gap:16px;
}
.t4-cell{
  display:block;
  overflow:hidden;
  aspect-ratio:5 / 3;                              /* 見栄えの良い横長比率 */
}
.t4-cell .logo-box img{ max-width:85%; max-height:75%; }

/* 既存の t1/t2/t3（単体カード）の設定が残っていても
   こちらの “wall” 指定が出力されるため影響しません。 */

/* ===== Bronze 調整：もう少し大きく＆間隔を詰める ===== */
.t4-wall{ padding:14px 10px; }                    /* 内側余白を少し減らす */
.t4-grid{ gap:12px !important; }                  /* セル間の余白を少し詰める */
.t4-cell{ aspect-ratio:4 / 3 !important; }        /* 5/3 → 4/3 にして背を高く＝大きく見える */

/* ===== Bronze(t4)：内側タイルを廃止してロゴをど真ん中に ===== */

/* 大枠：少しだけ余白&間隔を詰めてロゴを大きく見せる */
.t4-wall{ padding:12px 8px !important; }
.t4-grid{
  gap:10px !important;
  grid-template-columns:repeat(3, 1fr) !important; /* 画面サイズに関係なく3列を固定 */
}

/* セルは“カードなし”でロゴのみ表示＆完全センター */
.t4-cell{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  padding:0 !important;

  display:flex !important;
  align-items:center !important;
  justify-content:center !important;

  aspect-ratio:4 / 3 !important;  /* 少し縦長＝視覚サイズUP */
  overflow:hidden;                 /* はみ出し保護 */
}

/* ロゴを縦横ともに中央・最大化（下寄り解消） */
.t4-cell .logo-box{
  width:100%; height:100%;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}
.t4-cell .logo-box img{
  display:block !重要;   /* ベースライン隙間を排除 */
  margin:0 auto !important;
  max-width:95% !important;
  max-height:90% !important;  /* もう少し大きくしたい時は 92〜94% に */
  object-fit:contain !important;
}

/* ===== Silver(t3) の列数は“常に2列固定”（参考：念押し） ===== */
.t3-grid{ grid-template-columns:repeat(2, 1fr) !important; }
@media (max-width:1200px){
  .t3-grid{ grid-template-columns:repeat(2, 1fr) !important; }
}
@media (max-width:700px){
  .t3-grid{ grid-template-columns:repeat(2, 1fr) !important; }
}

/* ===== Time Table：カード枠＋表風レイアウト ===== */

/* カードの外枠（角丸・枠線・影） */
.schedule .timeline{
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.22);
  border-radius:18px;
  box-shadow:0 12px 30px rgba(0,0,0,.14);
  padding:8px 0;                 /* 行の上下は各 li のパディングで調整 */
  overflow:hidden;               /* 角丸の内側に行を収める */
  margin-top:12px;               /* 見出しとの間隔 */
}

/* 行＝li を2カラム(時刻 / 内容)に */
.schedule .timeline li{
  list-style:none;
  display:grid;
  grid-template-columns:140px 1fr;   /* 時刻 / 説明 */
  gap:16px;
  align-items:center;
  padding:14px 18px;
  border-top:1px solid rgba(255,255,255,.12);
}
.schedule .timeline li:first-child{ border-top:none; }

/* しま模様で可読性UP */
.schedule .timeline li:nth-child(odd){
  background:rgba(0,0,0,.06);
}

/* 時刻：ピル型バッジ（アクセント色） */
.schedule .timeline .t{
  background:rgba(255,255,255,.92);
  color:var(--accent) !important;
  font-weight:800;
  letter-spacing:.03em;
  border-radius:999px;
  padding:.38em .80em;
  width:max-content;              /* 文字幅にフィット */
  line-height:1;
}

/* 説明テキストを少し読みやすく */
.schedule .timeline .d{
  color:#fff !important;
  line-height:1.65;
}

/* スマホは縦並び（時刻→説明）に */
@media (max-width:560px){
  .schedule .timeline li{
    grid-template-columns:1fr;    /* 1カラム */
    gap:8px;
    padding:14px 14px;
  }
  .schedule .timeline .t{ margin-bottom:2px; }
}

/* ==== Sponsors (T1/T2/T3): ロゴを枠内で最大化・中央揃え ==== */

/* ロゴ枠は余計な余白なし・中央揃え */
.sponsor-card .logo-box{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  padding:0;              /* ここに余白があると小さくなるので0に */
}

/* 比率維持のまま “出来る限り” 大きく見せる */
.sponsor-card.t1 .logo-box img,
.sponsor-card.t2 .logo-box img,
.sponsor-card.t3 .logo-box img{
  width:auto;
  height:auto;
  max-width:98%;         /* ほぼ枠いっぱいい */
  max-height:98%;
  object-fit:contain;    /* 比率は崩さない */
  display:block;
  margin:0 auto;         /* 念のため中央 */
}

/* 余白の取り方を少しだけタイトに（必要に応じて） */
.sponsor-card.t1,
.sponsor-card.t2,
.sponsor-card.t3{
  padding:14px;          /* カード内のパディングを控えめに */
}

/* ===================== PC専用：ティア高さを強制段階化 ===================== */
@media (min-width:1025px){

  /* t2 の基準高さ（ここだけ調整すれば t3=1/2, t4=1/4 が自動で連動） */
  :root{ --tier2-h: clamp(220px, 18vw, 340px); }

  /* 既存の aspect-ratio（!important含む）を**必ず**無効化する */
  body.page-template-template-enculfes2025 #sponsors .sponsor-card.t1,
  body.page-template-template-enculfes2025 #sponsors .sponsor-card.t2,
  body.page-template-template-enculfes2025 #sponsors .sponsor-card.t3,
  body.page-template-template-enculfes2025 #sponsors .t4-cell{
    aspect-ratio:auto !important;
    height:auto !important;
  }

  /* 高さを段階化：t2=基準, t3=1/2, t4セル=1/4 */
  body.page-template-template-enculfes2025 #sponsors .sponsor-card.t2{
    min-height:var(--tier2-h) !important;
  }
  body.page-template-template-enculfes2025 #sponsors .sponsor-card.t3{
    min-height:calc(var(--tier2-h) / 2) !important;
  }
  body.page-template-template-enculfes2025 #sponsors .t4-grid{
    grid-template-columns:repeat(3, 1fr);       /* 横3固定（必要なら 4 に） */
  }
  body.page-template-template-enculfes2025 #sponsors .t4-cell{
    min-height:calc(var(--tier2-h) / 4) !important;
    display:flex !important; align-items:center !important; justify-content:center !重要;
  }

  /* ロゴは常に“縦横ど真ん中 & 可能な限り大” */
  body.page-template-template-enculfes2025 #sponsors .sponsor-card .logo-box{
    display:flex !important; align-items:center !important; justify-content:center !important;
    width:100%; height:100%; padding:0;
  }
  body.page-template-template-enculfes2025 #sponsors .sponsor-card .logo-box img{
    width:auto; height:auto; max-width:98%; max-height:98%;
    object-fit:contain; display:block; margin:0 auto;
  }
}

/* ===== TIER3：外枠だけ。ロゴを直接並べる（常に横2列固定） ===== */
#sponsors .sponsor-card.t3-wall{
  background:rgba(255,255,255,.92);            /* 外枠は半透明白 */
  border:1px solid rgba(0,0,0,.08);
  border-radius:22px;
  box-shadow:0 10px 26px rgba(0,0,0,.12);
  padding:22px;
}
#sponsors .t3-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);        /* 画面サイズやロゴ数に関係なく横2列固定 */
  gap:clamp(16px, 2.2vw, 24px);
  align-items:center;
}

/* 内枠カードは作らない：クリック領域＋ロゴ最大化のみ */
#sponsors .t3-item{
  display:grid;
  place-items:center;
  min-height:92px;                              /* SPでの最低高さ（調整可） */
  background:transparent;
  border:0; box-shadow:none;
}
#sponsors .t3-item .logo-box{
  width:100%; height:100%;
  display:flex; align-items:center; justify-content:center;
}
#sponsors .t3-item img{
  width:auto; height:auto;
  max-width:96%; max-height:84%;               /* 枠内で“比率維持の最大” */
  object-fit:contain; display:block; margin:0 auto;
}

/* ─ PC の高さ段階差：t2 の 1/2 高さに（t4 は既存のまま） ─ */
@media (min-width:1025px){
  :root{ --tier2-h: clamp(240px, 18vw, 360px); }  /* t2 の想定高さ（既存に合わせて可） */

  /* t2（参考・既存）：min-height: var(--tier2-h); などで管理している想定 */

  /* t3 は t2 の 1/2 高さ */
  #sponsors .sponsor-card.t3-wall{
    min-height:calc(var(--tier2-h) / 2);
    display:flex; align-items:center;
  }
  #sponsors .t3-grid{ width:100%; }
}

/* ===== SP最適化：Tier3 を Tier4 同様に“枠ギリギリまで”広げる ===== */
@media (max-width:768px){
  /* 外枠の余白を絞って、内側のセルを大きく確保 */
  #sponsors .sponsor-card.t3-wall{ padding:10px; } /* ← 以前より小さく */

  /* セル間の隙間も控えめに（= ロゴを広く） */
  #sponsors .t3-grid{ gap:8px; }               /* 以前より狭く */

  /* セル自体を高さ大きめに確保（端末幅に応じて伸縮） */
  #sponsors .t3-item{
    min-height:clamp(140px, 40vw, 220px);
    display:grid; place-items:center;
  }

  /* ロゴは枠内で最大化（Tier4と同等の上限値に引き上げ） */
  #sponsors .t3-item .logo-box{
    width:100%; height:100%;
    display:flex; align-items:center; justify-content:center;
  }
  #sponsors .t3-item .logo-box img{
    max-width:98%; max-height:92%;
  }
}

/* === 見どころカード：画像付きレイアウト ====================== */
.highlights .cards{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:20px;
}
@media (max-width:1100px){
  .highlights .cards{ grid-template-columns:1fr; }
}

/* カード本体は既存の .card スタイルを活かしつつ2カラム化 */
.highlights .card{
  position:relative;
  display:grid;
  grid-template-columns:180px 1fr;
  gap:18px;
  align-items:center;
}
@media (max-width:700px){
  .highlights .card{
    grid-template-columns:1fr;
    gap:12px;
  }
}

/* 画像枠（角丸＋軽い影） */
.highlights .card-ill{
  margin:0;
  padding:0;
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 8px 18px rgba(0,0,0,.15);
  background:#fff3; /* 透け背景がある場合の保険 */
}
.highlights .card-ill img{
  display:block;
  width:100%;
  height:100%;
  max-width:100%;
  object-fit:cover;        /* 可能なら枠いっぱいに */
  aspect-ratio:4 / 3;      /* 無い画像でも安定表示 */
}

/* テキスト側 */
.highlights .card-body h3{
  margin:0 0 8px;
  font-size:clamp(18px, 2.2vw, 24px);
}
.highlights .card-body p{
  margin:0;
  line-height:1.7;
}

/* ===== 見どころ: PCは「画像 → タイトル・本文」の縦並びにする ===== */
.highlights .card{ position:relative; }
.highlights .card-ill img{
  width:100%; height:auto; display:block; border-radius:12px;
}

/* PCのみ配置を確実に縦並びへ（スマホは既存の縦） */
@media (min-width:900px){
  .highlights .card{
    display:grid;
    grid-template-rows:auto 1fr;  /* 画像 → 本文 */
    row-gap:14px;
    align-items:start;
  }
  .highlights .card-ill{ order:-1; } /* 念のため画像を先頭に */
  .highlights .card-ill img{
    height:240px;                 /* 見栄え用：同じ高さで揃える */
    object-fit:cover;
  }
}

/* ===== 開始時刻バッジ（右上） ===== */
.card-time{
  position:absolute; top:12px; right:12px;
  background:rgba(17,17,17,.92); color:#fff;
  padding:6px 10px; border-radius:999px;
  font-weight:700; font-size:13px; letter-spacing:.02em;
  box-shadow:0 4px 14px rgba(0,0,0,.25);
  line-height:1; cursor:default;
}

/* ホバー/フォーカス時にポップアップ（ツールチップ）を出す */
.card-time::after{
  content: attr(data-tip);
  position:absolute; top:100%; right:0;
  transform: translateY(8px);
  background:rgba(17,17,17,.95); color:#fff;
  padding:8px 10px; border-radius:10px;
  white-space:nowrap; pointer-events:none;
  opacity:0; transition:opacity .18s ease, transform .18s ease;
  box-shadow:0 8px 22px rgba(0,0,0,.28);
  font-size:12px;
}
.card-time:hover::after,
.card-time:focus::after{
  opacity:1; transform: translateY(6px);
}

/* ===== 見どころ: PCは「画像 → タイトル・本文」の縦並びにする ===== */
.highlights .card{ position:relative; }
.highlights .card-ill img{
  width:100%; height:auto; display:block; border-radius:12px;
}

/* PCのみ配置を確実に縦並びへ（スマホは既存の縦） */
@media (min-width:900px){
  .highlights .card{
    display:grid;
    grid-template-rows:auto 1fr;  /* 画像 → 本文 */
    row-gap:14px;
    align-items:start;
  }
  .highlights .card-ill{ order:-1; } /* 念のため画像を先頭に */
  .highlights .card-ill img{
    height:240px;                 /* 見栄え用：同じ高さで揃える */
    object-fit:cover;
  }
}

/* ===== 開始時刻バッジ（右上） ===== */
.card-time{
  position:absolute; top:12px; right:12px;
  background:rgba(17,17,17,.92); color:#fff;
  padding:6px 10px; border-radius:999px;
  font-weight:700; font-size:13px; letter-spacing:.02em;
  box-shadow:0 4px 14px rgba(0,0,0,.25);
  line-height:1; cursor:default;
}

/* ホバー/フォーカス時にポップアップ（ツールチップ）を出す */
.card-time::after{
  content: attr(data-tip);
  position:absolute; top:100%; right:0;
  transform: translateY(8px);
  background:rgba(17,17,17,.95); color:#fff;
  padding:8px 10px; border-radius:10px;
  white-space:nowrap; pointer-events:none;
  opacity:0; transition:opacity .18s ease, transform .18s ease;
  box-shadow:0 8px 22px rgba(0,0,0,.28);
  font-size:12px;
}
.card-time:hover::after,
.card-time:focus::after{
  opacity:1; transform: translateY(6px);
}

/* カードの中を縦積みに固定（画像 → タイトル → 本文） */
.highlights .card{
  position:relative;
  display:flex;
  flex-direction:column;
}
.highlights .card-ill{ order:0; margin-bottom:14px; }
.highlights .card-body{ order:1; }

/* 画像は幅いっぱい、角丸そろえ */
.highlights .card-ill img{
  width:100%; height:auto; display:block; border-radius:12px;
}

/* 既存のPC用グリッド指定は不要になるので影響を打ち消し */
@media (min-width:900px){
  .highlights .card{
    display:flex;               /* ← grid指定があっても上書き */
    flex-direction:column;
  }
}

/* バッジ本体 */
.card-time{
  position:absolute; top:12px; right:12px;
  background:#6d28d9;          /* 紫 */
  color:#fff;
  padding:10px 14px;
  border-radius:18px 18px 18px 6px;   /* 右上に付くフキダシ感 */
  font-weight:800; font-size:15px; letter-spacing:.02em;
  line-height:1; cursor:default;
  box-shadow:0 8px 22px rgba(0,0,0,.28);
}

/* 尾（フキダシのしっぽ） */
.card-time::before{
  content:"";
  position:absolute;
  right:6px; top:100%;
  border:8px solid transparent;
  border-top-color:#6d28d9;        /* 上方向へ三角 */
  transform: translateY(-2px);
}

/* ツールチップ（必要ならそのまま利用可） */
.card-time::after{
  content: attr(data-tip);
  position:absolute; top:100%; right:0;
  transform: translateY(10px);
  background:rgba(17,17,17,.95); color:#fff;
  padding:8px 10px; border-radius:10px;
  white-space:nowrap; pointer-events:none;
  opacity:0; transition:opacity .18s ease, transform .18s ease;
  box-shadow:0 8px 22px rgba(0,0,0,.28);
  font-size:12px;
}
.card-time:hover::after,
.card-time:focus::after{
  opacity:1; transform: translateY(8px);
}

/* SP: Tier3 の隙間を最小化＆ロゴを可能な限り拡大 */
@media (max-width: 768px){
  /* 外枠の余白も最小限に */
  #sponsors .sponsor-card.t3-wall{
    padding: 6px !important;
  }
  /* ロゴ間の隙間 ≒ 2px */
  #sponsors .t3-grid{
    gap: 2px !important;
  }
  /* 高さの上限は前回設定のまま（小さめ） */
  #sponsors .t3-item{
    min-height: clamp(50px, 11.25vw, 60px) !important;
    display: grid; place-items: center;
  }
  /* 余白ゼロでロゴを最大化 */
  #sponsors .t3-item .logo-box{
    width: 100%; height: 100%; padding: 0 !important;
    display: flex; align-items: center; justify-content: center;
  }
  #sponsors .t3-item .logo-box img{
    display:block; margin:0 auto;
    max-width: 98% !important;
    max-height: 88% !important; /* 必要なら 86〜90% で微調整可 */
    object-fit: contain !important;
  }
}
/* PCだけ：Tier3のセルに最低高さを与えて縦ロゴも大きく見せる */
@media (min-width:1025px){
  #sponsors .t3-grid{ align-items: stretch; }

  #sponsors .t3-item{
    min-height: clamp(180px, 15vw, 240px); /* ←ここがポイント */
    display: flex;
    align-items: center;
    justify-content: center;
  }
  #sponsors .t3-item .logo-box{ height: 100%; }
  #sponsors .t3-item .logo-box img{
    max-width: 98%;
    max-height: 96%;
  }

  /* 画像内余白の影響が大きい間の暫定ブースト（不要になったら削除） */
  #sponsors .t3-item img[src*="snk"]{
    transform: scale(1.6);
    transform-origin: center;
  }
}
/* ------- Tier4: 高さを現在の1/2にする ------- */
/* SP/タブレット：aspect-ratio を2倍（= 高さ 1/2） */
#sponsors .t4-cell{
  aspect-ratio: 8 / 3 !important;  /* 旧: 4/3 */
}

/* PC：以前の最小高さ（var(--tier2-h)/4）を 1/2 に */
@media (min-width: 1025px){
  #sponsors .t4-cell{
    min-height: calc(var(--tier2-h) / 8) !important;  /* 旧: /4 */
  }
}
/* ==== このテンプレだけ：上部「カミングスーン/告知バー」を消す ==== */
body.page-template-template-enculfes2025 .coming-soon,
body.page-template-template-enculfes2025 .comingsoon,
body.page-template-template-enculfes2025 .announcement-bar,
body.page-template-template-enculfes2025 .notice-bar,
body.page-template-template-enculfes2025 .announce,
body.page-template-template-enculfes2025 #coming-soon,
body.page-template-template-enculfes2025 header.l-header,
body.page-template-template-enculfes2025 .site-header{
  display:none !important;
}

/* バーの分の余白も詰める（このテンプレのみ） */
body.page-template-template-enculfes2025 #content,
body.page-template-template-enculfes2025 main,
body.page-template-template-enculfes2025 .event-landing,
body.page-template-template-enculfes2025 .hero{
  margin-top:0 !important;
  padding-top:0 !important;
}
/* ==== 右下→左下へ：POPの固定位置を左側に変更 ==== */
.pop-fixed{
  position: fixed;
  left: 16px;          /* ← 左に固定 */
  right: auto;         /* 右固定を無効化 */
  bottom: 96px;
  z-index: 9998;
  pointer-events: none;
}
.pop-fixed img{
  display: block;
  width: clamp(120px, 22vw, 240px);
  height: auto;
  filter: drop-shadow(0 8px 20px rgba(0,0,0,.35));
}

@media (max-width: 768px){
  .pop-fixed{
    left: 10px;        /* SPは少し内側に */
    right: auto;
    bottom: 84px;
  }
  .pop-fixed img{
    width: clamp(110px, 36vw, 180px);
  }
}
/* ==== POP：画面下ギリギリに配置（左下固定のまま） ==== */
.pop-fixed{
  position: fixed;
  left: 12px;               /* 左端に寄せる */
  right: auto;
  bottom: 8px;              /* PCなど通常環境は下8px */
  z-index: 9998;
  pointer-events: none;
}
.pop-fixed img{
  display: block;
  width: clamp(120px, 22vw, 240px);
  height: auto;
  filter: drop-shadow(0 8px 20px rgba(0,0,0,.35));
}

/* iPhone等のホームバーを考慮して本当に“下ギリギリ”に */
@media (max-width: 768px){
  .pop-fixed{
    left: 8px;
    bottom: calc(env(safe-area-inset-bottom, 0px) + 4px); /* ほぼ接地 */
  }
  .pop-fixed img{
    width: clamp(110px, 36vw, 180px);
  }
}

/* ==== コスプレ注意事項：アコーディオン安定化 ==== */
#cosplay-policy .acc { display: grid; gap: 12px; }

#cosplay-policy .acc-item {
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 14px;
  box-shadow: 0 10px 24px rgba(0,0,0,.16);
  overflow: hidden; /* ← はみ出し防止 */
}

/* 見出しボタン */
#cosplay-policy .acc-summary{
  width: 100%;
  appearance: none;
  background: linear-gradient(180deg, #c8923b, #bb8733);
  color: #fff;
  font-weight: 800;
  text-align: left;
  padding: 18px 54px 18px 24px;
  border: 0;
  cursor: pointer;
  position: relative;
}
#cosplay-policy .acc-summary:focus{ outline: 2px solid rgba(255,255,255,.65); outline-offset: 2px; }

/* ＋／－ アイコン（1個だけ出る） */
#cosplay-policy .acc-summary::after{
  content: "+";
  position: absolute;
  right: 16px; top: 50%;
  transform: translateY(-50%);
  font-size: 24px; line-height: 1;
}
#cosplay-policy .acc-item.is-open .acc-summary::after{ content: "−"; }

/* パネル本体：高さアニメは height を使用（max-heightは使わない） */
#cosplay-policy .acc-panel{
  box-sizing: border-box;
  height: 0;                     /* ← 初期は0 */
  overflow: hidden;              /* ← アニメと整合 */
  transition: height .36s ease;  /* ← height をアニメ */
  will-change: height;
  padding: 16px 18px;            /* ← margin 折り畳み防止 */
  background: rgba(0,0,0,.06);
}

/* margin-collapsing対策：内側の先頭/末尾の余白を抑える */
#cosplay-policy .acc-panel > :first-child{ margin-top: 0 !important; }
#cosplay-policy .acc-panel > :last-child { margin-bottom: 0 !important; }

/* 任意：段落などの読みやすさ */
#cosplay-policy .acc-panel p,
#cosplay-policy .acc-panel li{ line-height: 1.7; }
#cosplay-policy .acc-panel h4{ margin: 10px 0 6px; font-weight: 800; }

/* === 左下 常時表示 POP（さらに下＆小さく） === */
.pop-fixed{
  position: fixed !important;
  left: max(4px, env(safe-area-inset-left));      /* ほぼ端 */
  bottom: max(4px, env(safe-area-inset-bottom));  /* ほぼ端 */
  z-index: 10000;
  pointer-events: none;
}

/* PCではやや小さめキープ */
@media (min-width: 1025px){
  .pop-fixed img{ width: 180px; }
}


/* PCでは少し大きめでもOKなら */
@media (min-width: 1025px){
  .pop-fixed img{ width: 200px; }
}


/* モバイルだけ ほぼ下端まで寄せる */
@media (max-width: 768px){
  .pop-fixed{
    left: max(2px, env(safe-area-inset-left));          /* 左端ほぼピタ */
    bottom: max(0px, env(safe-area-inset-bottom));      /* 下端ピタ（ホームバー分だけ確保） */
  }
  .pop-fixed img{
    width: min(28vw, 120px);  /* 少しだけさらに小さく */
  }
}

/* ===== 更衣室案内（刷新） ===== */
.cos-rooms { margin-top: 40px; }
.cos-rooms h2 {
  font-size: clamp(22px, 2.2vw, 32px);
  margin-bottom: 16px;
}
.rooms-lead { margin: 0 0 16px; font-weight: 600; }

/* 2カード（女性・男性） */
.room-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(260px, 1fr));
  gap: 16px;
}
.room-card {
  position: relative;
  padding: 18px 16px 16px;
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,0.18), rgba(255,255,255,0.08));
  border: 2px solid rgba(255,255,255,0.35);
  box-shadow: 0 10px 20px rgba(0,0,0,0.18);
  backdrop-filter: blur(2px);
}
.room-card .room-tag {
  position: absolute;
  top: -12px; left: 12px;
  padding: 6px 10px;
  border-radius: 999px;
  color: #fff; font-weight: 800; letter-spacing: .05em;
  box-shadow: 0 6px 14px rgba(0,0,0,.18);
}
.room-card.female .room-tag { background: #e85a8a; } /* ピンク */
.room-card.male   .room-tag { background: #3a86ff; } /* ブルー */

.room-title { font-size: clamp(18px, 1.8vw, 24px); margin: 4px 0 8px; font-weight: 800; }
.room-where { margin: 0 0 6px; line-height: 1.6; }
.room-time  { margin: 0 0 4px; font-size: 1.05em; }

/* レイアウト画像カード */
.rooms-layout {
  margin: 18px 0 10px;
  background: rgba(255,255,255,0.12);
  border: 2px solid rgba(255,255,255,0.35);
  border-radius: 18px;
  padding: 10px;
  box-shadow: 0 10px 22px rgba(0,0,0,.18);
}
.rooms-layout img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 12px;
}
.rooms-layout figcaption {
  text-align: center;
  font-size: .95em;
  opacity: .9;
  margin-top: 6px;
}

/* 共通地図ボタン */
.rooms-map-single { margin: 10px 0 6px; text-align: center; }
.btn-map {
  display: inline-block;
  padding: 10px 18px;
  border-radius: 999px;
  background: #000;
  color: #fff;
  font-weight: 800;
  text-decoration: none;
  transition: transform .08s ease, box-shadow .08s ease;
  box-shadow: 0 8px 14px rgba(0,0,0,.25);
}
.btn-map:hover { transform: translateY(-1px); }

/* 注意書き */
.rooms-note { margin-top: 10px; font-size: .95em; opacity: .95; }

/* モバイル最適化 */
@media (max-width: 768px) {
  .room-grid { grid-template-columns: 1fr; gap: 12px; }
  .cos-rooms { margin-top: 28px; }
}
/* ===== ENCULFES 当日情報ページ ===== */
.event-info {
  background: linear-gradient(to bottom, #d39126, #c77c1e);
  color: #fff;
  min-height: 100vh;
  padding-bottom: 50px;
}

.info-hero {
  text-align: center;
  padding: 60px 20px 30px;
}
.info-hero h1 {
  font-size: clamp(24px, 3vw, 40px);
  font-weight: 900;
  margin-bottom: 10px;
}
.info-sub { font-weight: 600; margin-bottom: 8px; }
.info-time { opacity: .9; font-size: .9em; }

.container { width: min(90%, 900px); margin: 0 auto 40px; }

.status-card, .info-card {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  background: rgba(255,255,255,0.15);
  border-radius: 14px;
  padding: 16px 20px;
  border-left: 6px solid rgba(255,255,255,0.6);
  box-shadow: 0 10px 20px rgba(0,0,0,.15);
}
.status-card.ongoing { border-left-color: #00ff95; }
.status-card.cancel { border-left-color: #ff4d4d; }
.status-card.pending { border-left-color: #ffe066; }

.icon { font-size: 1.8em; line-height: 1; }
.status-body h3 { margin: 0; font-size: 1.4em; }

.timeline li {
  list-style: none;
  padding: 6px 0;
  border-bottom: 1px solid rgba(255,255,255,0.25);
}
.timeline strong { display: inline-block; width: 80px; }

.alert-card { border-left-color: #ff4d4d; }
.weather-card { border-left-color: #5ac8fa; }

.update-note {
  text-align: center;
  font-size: .9em;
  opacity: .85;
  margin-top: 40px;
}
/* --- 開催判断リンク（ヒーロー直下の大型ボタン） --- */
.judge-banner { margin: 20px auto 30px; }
.judge-btn{
  position: relative;
  display: grid;
  grid-template-columns: 1fr auto;
  row-gap: 4px;
  align-items: center;
  padding: clamp(14px, 2.5vw, 20px) clamp(16px, 3vw, 24px);
  border-radius: 14px;
  text-decoration: none;
  color: #1a1a1a;
  background:
    linear-gradient(135deg, #fff 0%, #fff7db 60%, #ffe69e 100%);
  box-shadow: 0 10px 24px rgba(0,0,0,.18), inset 0 1px 0 #fff;
  border: 1px solid rgba(0,0,0,.06);
}
.judge-btn .kicker{
  grid-column: 1 / 2;
  font-weight: 800;
  font-size: .96rem;
  color: #b55b00;
  letter-spacing: .03em;
}
.judge-btn .ttl{
  grid-column: 1 / 2;
  font-size: clamp(18px, 2.4vw, 22px);
  font-weight: 900;
  line-height: 1.25;
}
.judge-btn .sub{
  grid-column: 1 / 2;
  font-size: .92rem;
  opacity: .85;
}
.judge-btn .arrow{
  grid-column: 2 / 3;
  justify-self: end;
  font-size: clamp(28px, 3.5vw, 38px);
  color: #b55b00;
  transform: translateX(0);
  transition: transform .15s ease;
}
.judge-btn:hover .arrow{ transform: translateX(4px); }

/* コンテナ幅と並びをLPと揃える */
.judge-banner.container{ width: min(92%, 1100px); }

/* --- 右下のフローティングFAB（スマホ優先） --- */
.judge-fab{
  position: fixed;
  right: 14px;
  bottom: 88px;           /* 既存のpop-fixedと干渉しにくい位置。必要なら微調整可 */
  z-index: 1200;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 14px;
  border-radius: 999px;
  font-weight: 800;
  font-size: 14px;
  color: #1a1a1a;
  background: #ffe082;
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 10px 20px rgba(0,0,0,.18);
  text-decoration: none;
  transition: transform .15s ease, box-shadow .15s ease;
}
.judge-fab:hover{ transform: translateY(-2px); box-shadow: 0 14px 26px rgba(0,0,0,.22); }

/* PCではFABは控えめに（必要なら消してもOK） */
@media (min-width: 992px){
  .judge-fab{ bottom: 24px; right: 24px; }
}
/* 置き換え：.window-banner の定義を丸ごと更新 */
.window-banner{
  width:100%;
  box-sizing:border-box;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:12px 0 18px;
  padding:16px;
  border-radius:18px;
  font-weight:900;
  font-size:clamp(18px, 4.2vw, 22px);
  line-height:1.2;
  letter-spacing:.03em;
  box-shadow:0 10px 30px rgba(0,0,0,.15);
}
@media (max-width:640px){
  /* 高さ“倍”くらいに見えるようモバイルは少し大きめ */
  .window-banner{ padding:22px 18px; border-radius:20px; }
}
/* レベル別カラー（見やすくパキっと） */
.window-banner--go      { background:#16a34a; color:#fff; }
.window-banner--delay   { background:#e6a100; color:#fff; }
.window-banner--warning { background:#d9480f; color:#fff; }
.window-banner--cancel  { background:#c92a2a; color:#fff; }
.window-banner--info    { background:#2b7de9; color:#fff; }
.window-banner--unknown { background:#d1d5db; color:#111; }

/* ヒーローを基準に絶対配置できるように */
.hero { position: relative; }

/* 当日情報ボタン：左下の女の子の上で半透明＆ふわふわ */
.judge-fab{
  position: absolute;
  left: clamp(12px, 4vw, 64px);       /* 左寄せ（画面幅で可変） */
  bottom: clamp(16px, 10vh, 120px);   /* 下から少し浮かす（女の子の頭上に来る高さに） */

  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-width: 120px;
  padding: 10px 16px;
  border-radius: 999px;
  font-weight: 900;

  background: rgba(255,255,255,.70);  /* 半透明 */
  color: #5b3a00;                     /* 読みやすい濃い目ブラウン（必要なら調整） */
  border: 1px solid rgba(255,255,255,.65);
  box-shadow: 0 12px 30px rgba(0,0,0,.22);
  backdrop-filter: blur(8px);         /* ガラス風ぼかし */

  z-index: 5;                         /* ヒーローの上に出す */
  opacity: .95;

  animation: judge-bob 3.2s ease-in-out infinite; /* ふわふわ */
  transition: transform .2s ease, opacity .2s ease, background .2s ease;
}
.judge-fab:hover{
  transform: translateY(-2px) scale(1.02);
  background: rgba(255,255,255,.82);
  opacity: 1;
}

/* ふわふわ */
@keyframes judge-bob{
  0%,100% { transform: translateY(0); }
  50%     { transform: translateY(-6px); }
}

/* スマホ調整：小さめ＆やや内側に */
@media (max-width: 640px){
  .judge-fab{
    min-width: 98px;
    padding: 8px 12px;
    font-size: 14px;
    left: 12px;
    bottom: 18px;
  }
}
/* 基本の見た目（そのまま流用でOK） */
.judge-fab{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:120px; padding:10px 16px; border-radius:999px;
  font-weight:900; text-decoration:none;
  background:rgba(255,255,255,.72); color:#5b3a00;
  border:1px solid rgba(255,255,255,.6);
  backdrop-filter:blur(8px);
  box-shadow:0 12px 30px rgba(0,0,0,.22);
}

/* 画面中央の一番下に固定（スクロール追従） */
.judge-fab--dock{
  position: fixed !important;          /* ビューポート固定。古いCSSを上書き */
  z-index: 2147483647;                 /* 何よりも前面に */
  left: 50%;                           /* 横中央 */
  right: auto; top: auto;
  bottom: calc(env(safe-area-inset-bottom, 0px) + 16px); /* iPhone安全域考慮 */
  transform: translate(-50%, 0);       /* 中央寄せ */
  animation: judge-bob 3.2s ease-in-out infinite; /* ふわふわ */
  transition: transform .2s, background .2s;
}

.judge-fab--dock:hover{
  /* 中央寄せを維持したまま微調整 */
  transform: translate(-50%, -2px) scale(1.02);
  background: rgba(255,255,255,.85);
}

/* ふわふわ（中央寄せを壊さない keyframes） */
@keyframes judge-bob{
  0%,100%{ transform: translate(-50%, 0); }
  50%    { transform: translate(-50%, -6px); }
}

/* モバイルは少し小さめ */
@media (max-width:640px){
  .judge-fab--dock{
    min-width: 98px; padding: 8px 12px; font-size: 14px;
    bottom: calc(env(safe-area-inset-bottom, 0px) + 14px);
  }
}

