/* ============================================================
 * accent-2026.css
 * A 案 POPキューブ世界観の色だけを上書き
 * style.css の後ろで読み込むことで色味だけ刷新
 * ------------------------------------------------------------
 * CI/CD: main への push で GitHub Actions が Cloudflare Pages に
 *        自動デプロイ (.github/workflows/deploy.yml)。稼働確認: 2026-06-03
 * ============================================================ */

/* ページキャンバス色: #intro グラデーション上端と統一し、
   hero 下部〜スクロールヒントエリアの白浮きを解消 */
body { background-color: #f4f6fb; }

:root {
  /* モーダル内ロゴの最大寸法 (単一の正)。スポンサーモーダルとセッションモーダルの
     head-logo が両方これを参照する = 会社別 per-logo 調整を廃し、値のブレを構造的に防ぐ (#196・木全指示)。 */
  --modal-logo-max-w: 120px;
  --modal-logo-max-h: 44px;
  --accent-purple: #7b61ff;
  --accent-magenta: #ff61c7;
  --accent-cyan: #2ee0ff;
  --accent-pink: #ff8fb1;
  --accent-violet: #a988ff;
  --gradient-pop: linear-gradient(135deg, #7b61ff 0%, #ff61c7 50%, #2ee0ff 100%);
  --gradient-pop-soft: linear-gradient(135deg, #a988ff 0%, #ff8fb1 50%, #6fe6ff 100%);

  /* DAY01=青 / DAY02=オレンジ の色分け (サイト共通) */
  --color-day01: #2e7bff;
  --color-day01-text: #005dfd; /* 白背景上の小さいDAY01文字/補足ラベル/細枠の可読性用(基準より一段濃い青。
    白比 5.27:1・薄背景(#f4f6fb 4.87 / #eaf2ff 4.68 / rgba(46,123,255,.12)相当 4.56)でも4.5超を確保。
    --color-day02-text と対称のトークン。UI/UX監査 2026-07-02 P2) */
  --color-day02: #e8620c; /* DAY01=青/DAY02=オレンジ ゾーニングの基準オレンジ(バッジ背景・塗り・アイコン等の表現用) */
  --color-day02-text: #c8510a; /* 白背景上の小さいDAY02文字/補足ラベル/細枠の可読性用(基準より一段濃いオレンジ。白比 4.5:1) */
  --gradient-day01: linear-gradient(135deg, #2e7bff 0%, #2ee0ff 100%);
  --gradient-day02: linear-gradient(135deg, #ffab2e 0%, #ff5e3a 100%);

  /* 本文(説明文)の標準色。サイト全体の本文はこれに統一する(2026-06-18)。
     従来は #00144c(継承の多数派) / #444 / #23335f / #374151 / #333 が混在していた。
     本文を変えたいときはこの1か所を変更する(各本文ルールは var(--text-body) を参照)。 */
  --text-body: #00144c;
}

/* style.css の .btn-day1 (Channel 時間割表ボタン・session.html) は白文字×#007fff=3.83:1 で
   AA未達のため、色の変更は accent-2026.css で上書きする方針(#5)に従い darken (UI/UX監査 2026-07-02 P2) */
.btn-day1 {
  background: #0070e0;
}

/* トップナビの現在地表示 (3ページ間で揺れていた・UI/UX監査 2026-07-02 P3)。
   style.css の実際のルールは .site-header__nav .site-header__item .site-header__itemlink.is-active
   (詳細度 0,4,0) で pointer-events:none。index.html の「イベントTOP」は href="#pagetop"
   (先頭へ戻る操作) なので現在地表示にしつつクリックは活かすため、同じ祖先構造で詳細度を
   上回る(属性セレクタ込みで 0,5,0)セレクタで上書きする(ブラウザの CSSOM 実測で確認・
   単純な #home 前置きでは祖先構造が合わず不発だった・Codex レビュー済 2026-07-02) */
.site-header__nav .site-header__item .site-header__itemlink.is-active[href="#pagetop"] {
  pointer-events: auto;
}

#home .day01-tab-switch[hidden],
#home .day01-tab-content[hidden] {
  display: none !important;
}

#home #day01 .day01-tab-switch svg {
  display: none !important;
}

/* 横スクロール防止 (根治): キービジュアルの絶対配置カードが viewport 右にはみ出すと、
   モバイルでブラウザがページ全体をズームアウトして収めようとし、ヘッダー・タブが
   縮小されて崩れて見える (innerWidth が clientWidth より大きくなる)。main#home を
   overflow-x: clip でクリップして横はみ出しを止める。clip は (hidden と違い)
   スクロールコンテナを作らないため、内側の position: sticky を壊さない。 */
main#home {
  overflow-x: clip;
}

#teaser-toggle-btn {
  left: 20px !important;
  right: auto !important;
}

/* モーダル表示中はティーザー切替トグルを隠す。
   トグルは position:fixed・z-index:99999 でモーダル(z:1000)の外側最前面に出るため、
   モバイルではモーダル下部の主CTA「無料で参加登録する」に重なり、視覚的遮蔽＋タップ奪取
   (CTA下部のタップが teaser 切替に化ける) を起こす。表示中はトグルを操作する場面がないので消す。
   既存の back-to-top / kv-entry-cta の衝突回避 (:has パターン) と同方針。 */
body:has(.modal-channel.is-open) #teaser-toggle-btn,
body:has(.sponsor-modal-overlay.is-open) #teaser-toggle-btn {
  display: none !important;
}

/* セッション一覧ページ末尾の共通注記 (session.html 静的・2026-08-07 木全指示)。
   開催概要の下 = フッターの直前に置き、一覧全体に掛かる断り書きとして読ませる。
   左右の余白とレスポンシブは既存の .container-channel-box に載せて継承するので、
   ここではタイポグラフィと上下マージンだけを持たせる。 */
.session-list-note {
  color: #6d6a86;
  font-size: 13px;
  line-height: 1.7;
  margin: 0 0 40px;
}

/* セッションモーダル下部の共通注記 (session-ui.js が全モーダルへ注入・2026-08-07 木全指示)。
   モーダル本文の一番下 (登壇者リスト・概要の下 / 参加登録 CTA の上) に、
   本文より一段小さく弱い色で添える。 */
.session-modal-note {
  color: #8079a8;
  font-size: 12px;
  line-height: 1.6;
  margin: 20px 0 0;
}

/* 出展ブースカードのうち、事務局納品 Excel の本文を実際に流し込んだ 11 社は
   「確認いただきたい本文そのもの」が出ているので、メーカー確認時に "サンプル" と
   読まれないようラベルを隠す (2026-08-07 木全指示)。本文が 2026 提出文に差し替わって
   いない社にはラベルを残す。data-sample="true" 自体は残すので release の Coming Soon 化も
   CI 検査も従来どおり動く。 */
.booth-compact-card[data-sponsor-key="hpe"] .session-sample-label,
.booth-compact-card[data-sponsor-key="netapp"] .session-sample-label,
.booth-compact-card[data-sponsor-key="lenovo"] .session-sample-label,
.booth-compact-card[data-sponsor-key="aws"] .session-sample-label,
.booth-compact-card[data-sponsor-key="everpure"] .session-sample-label,
.booth-compact-card[data-sponsor-key="omnissa"] .session-sample-label,
.booth-compact-card[data-sponsor-key="zscaler"] .session-sample-label,
.booth-compact-card[data-sponsor-key="trend"] .session-sample-label,
.booth-compact-card[data-sponsor-key="microsoft"] .session-sample-label,
.booth-compact-card[data-sponsor-key="hclsw"] .session-sample-label,
.booth-compact-card[data-sponsor-key="menlo"] .session-sample-label {
  display: none !important;
}

.session-sample-label {
  color: #8079a8;
  display: block;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0;
  line-height: 1.45;
  margin-top: 8px;
}

.session-sample-label--modal {
  margin: 0 0 14px;
}

.session-view-item-card.is-session-comingsoon,
.day-session-pickup-block.is-session-comingsoon {
  background: #fff;
  border: 1px dashed #c9c5d6;
  cursor: default;
}

.session-view-item-card.is-session-comingsoon .session-view-item-card-head,
.day-session-pickup-block.is-session-comingsoon .day-session-pickup-block-title {
  color: #8079a8;
}

.m-channel-contents-card--comingsoon {
  background: #fff;
}

.gradient-text,
#home .merit-contnets-title .gradient-text,
#home .benefits-contnets-title-box .benefits-contnets-title .gradient-text {
  background: var(--gradient-pop);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  /* Task 2: 白背景での視認性向上 (グラデテキストは fill が透明なため影で輪郭を補う) */
  text-shadow: 0px 1px 3px rgba(0,0,0,0.12);
}

.site-header__nav .site-header__item .button-contact-square:not(.is-disabled):not(.is-end),
#home .btn-session-end-text,
.btn-secondary,
.btn-booth-cat-block-common .btn-primary,
.btn-booth-cat-block-common .btn-secondary {
  background: var(--gradient-pop);
  color: #fff;
}

.site-header__nav .site-header__item .button-contact-square:not(.is-disabled):not(.is-end):hover,
#home .btn-session-end-text:hover,
.btn-secondary:hover,
.btn-booth-cat-block-common .btn-primary:hover,
.btn-booth-cat-block-common .btn-secondary:hover {
  opacity: .84;
}

.site-header__nav .site-header__item .button-contact-square.is-entry {
  background: linear-gradient(135deg, #ff4ec3 0%, #ff2b9d 58%, #d71f83 100%) !important;
  color: #fff !important;
  cursor: default !important;
  font-weight: 900 !important;
  line-height: 1.16 !important;
  text-align: center !important;
  text-decoration: none !important;
  text-shadow: 0 2px 8px rgba(111, 0, 78, 0.22) !important;
  transition: background .2s ease, color .2s ease, text-shadow .2s ease !important;
}
body:not(.teaser-mode) .site-header__nav .site-header__item .button-contact-square.is-entry:hover {
  background: #ffe4f3 !important;
  color: #d71f83 !important;
  opacity: 1 !important;
  text-shadow: none !important;
}

@media only screen and (min-width: 768px) {
  .site-header__nav .site-header__item .button-contact-square.is-entry {
    box-shadow: none !important;
  }
}

.btn-detail-common-01,
.btn-detail-common-02,
#channel .day-session-pickup-block .btn-day-session-pickup-block,
.btn-session-list-block .btn-m-channel-close {
  color: var(--accent-purple);
}

.btn-detail-common-01::after,
.btn-detail-common-02::after {
  background: var(--gradient-pop);
}

#home #past .btn-detail-common-01::after {
  background: var(--accent-purple);
}

#channel .day-session-pickup-block .btn-day-session-pickup-block svg path {
  stroke: var(--accent-purple);
}

#home .hero-wrap .hero-card__body-list-item-title .day01,
.day01 {
  background: var(--gradient-day01);
  color: #fff;
}

#home .hero-wrap .hero-card__body-list-item-title .day02,
.day02 {
  background: var(--gradient-day02);
  color: #fff;
}

/* DAYピル: 文字の左右に余白を確保し角丸ピル状に */
#home .hero-wrap .kv-venue .day01,
#home .hero-wrap .kv-venue .day02 {
  padding: 4px 14px;
  border-radius: 6px;
  line-height: 1.25;
}

.text-day01 {
  color: var(--color-day01-text) !important; /* .text-day02 と対称(白比不足の是正・UI/UX監査 2026-07-02) */
}

.text-day02 {
  color: var(--color-day02-text) !important;
}

.text-secondary {
  color: var(--accent-purple) !important;
}

#home .intro-contents .intro-card .intro-card-body .intro-card-body-text .text-emphasis,
#home .past-events-contents .past-events-card .past-events-card-body .past-events-card-body-text .text-emphasis,
#home .news-contents .news-card .news-card-body .news-card-body-text .text-emphasis,
#home .day01-session-intro-block .day01-session-intro-block-text .pickup,
#home .day02-session-intro-block-item .day02-session-intro-block .day02-session-intro-block-text .pickupbox .pickup,
#channel .day-session-pickup-block .day-session-pickup-block-text .pickupbox .pickup {
  color: var(--accent-purple);
}

.page-section.bg-day01,
#channel .bg-day01-contnets-title {
  background-color: #fff;
  background-image:
    linear-gradient(to right, rgba(46, 123, 255, .13) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(46, 224, 255, .10) 1px, transparent 1px);
}

/* bg-day02: オレンジ格子 + 下部の白フェード
   グラデーション層は no-repeat で background-size/position を独立指定して繰り返しを防ぐ */
.page-section.bg-day02,
#channel .bg-day02-contnets-title {
  background-color: #ffffff;
  background-image:
    linear-gradient(to right, rgba(255, 123, 26, .13) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255, 94, 58, .12) 1px, transparent 1px);
  background-size: 100px 100px;
}
/* TOPページbg-day02のみ: プラチナスポンサー〜ボタン間を白グラデで消す */
#home .page-section.bg-day02 {
  background-image:
    linear-gradient(to bottom, transparent 0%, #ffffff 100%),
    linear-gradient(to right, rgba(255, 123, 26, .13) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255, 94, 58, .12) 1px, transparent 1px);
  background-size:
    100% 860px,
    100px 100px,
    100px 100px;
  background-position:
    0 bottom,
    0 0,
    0 0;
  background-repeat:
    no-repeat,
    repeat,
    repeat;
}

/* bg-primary: 白基調ペールグレー + SVGキューブ透かし */
.page-section.bg-primary {
  background-color: #f4f6fb;
  background-image: none;
  position: relative;
  overflow: hidden;
}
.page-section.bg-primary::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url('/assets/img/common/cube-wireframe.svg');
  background-size: 900px auto;
  background-repeat: repeat;
  opacity: 0.04;
  pointer-events: none;
  z-index: 0;
}
.page-section.bg-primary > * {
  position: relative;
  z-index: 1;
}

/* benefits: 上部を白→グレージュへグラデーション（境界のバツっと感を解消） */
#home #benefits.page-section {
  background-image: linear-gradient(to bottom, #ffffff 0%, #f4f6fb 12%);
}

/* pickup: 上部白→下部ペールグレーへグラデーション + キューブ境界演出 */
#home #pickup.page-section {
  background-image: linear-gradient(to bottom, #ffffff 0%, #f4f6fb 100%);
  position: relative;
  overflow: hidden;
}
#home #pickup.page-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url('/assets/img/common/cube-wireframe.svg');
  background-size: 900px auto;
  background-repeat: repeat;
  background-position: 60px 0; /* meritとずらしてオシャレに */
  opacity: 0.07;
  pointer-events: none;
  z-index: 0;
  -webkit-mask-image: linear-gradient(to bottom, black 0%, transparent 28%);
  mask-image: linear-gradient(to bottom, black 0%, transparent 28%);
}
#home #pickup.page-section > * {
  position: relative;
  z-index: 1;
}

/* intro: 上部グレー→下部白へグラデーション（meritセクションとの境界を自然に） */
#home #intro.page-section {
  background-image: linear-gradient(to bottom, #f4f6fb 0%, #ffffff 100%);
}
/* benefits: SVGキューブ柄を上部からフワッとフェードイン */
#home #benefits.page-section::before {
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 18%);
  mask-image: linear-gradient(to bottom, transparent 0%, black 18%);
}

/* benefits: ライト背景化に伴い白→濃紺に変更してBENEFITS透かし文字を復活 */
#home .benefits-contnets-title-box .title-bg-text {
  color: #00144c;
  opacity: 0.06;
}

#home .day01-contnets-title-box .title-bg-text,
#channel .bg-day01-contnets-title .day01-contnets-title-box .title-bg-text {
  color: var(--color-day01);
}

#home .day02-contnets-title-box .title-bg-text,
#channel .day02-contnets-title-box .title-bg-text,
.modal-channel .day02-contnets-title-box .title-bg-text {
  color: var(--color-day02-text);
}

#home .day01-contnets-title-box .day01-contnets-title .day01-contnets-title-inner::after,
#channel .bg-day01-contnets-title .day01-contnets-title-box .day01-contnets-title .day01-contnets-title-inner::after {
  background: linear-gradient(90deg, #2e7bff 0%, #2ee0ff 100%);
}

#home .day02-contnets-title-box .day02-contnets-title .day02-contnets-title-inner::after,
#channel .day02-contnets-title-box .day02-contnets-title .day02-contnets-title-inner::after,
.modal-channel .day02-contnets-title-box .day02-contnets-title .day02-contnets-title-inner::after {
  background: linear-gradient(90deg, #ffab2e 0%, #ff5e3a 100%);
}

#home .day01-contnets-title-box,
#home .day02-contnets-title-box {
  min-height: 150px !important;
  overflow: visible !important;
}

#home .day01-contnets-title-box .container-box,
#home .day02-contnets-title-box .container-box,
#home .day01-contnets-title,
#home .day02-contnets-title,
#home .day01-contnets-title-inner,
#home .day02-contnets-title-inner {
  overflow: visible !important;
}

#home .day01-contnets-title-inner,
#home .day02-contnets-title-inner {
  display: inline-block !important;
  line-height: 1.28 !important;
  padding: 0.08em 0 !important;
}

/* pickup: 完全分離ボタンへリデザイン */
#home .pickup-link-wrap {
  margin-bottom: 48px !important;
}
@media (min-width: 768px) {
  #home .pickup-link-wrap {
    margin-bottom: 60px !important;
  }
}
#home .pickup-link-wrap .pickup-link-list {
  gap: 16px !important;
}
@media (min-width: 768px) {
  #home .pickup-link-wrap .pickup-link-list {
    gap: 24px !important;
  }
}

#home .pickup-link-wrap .pickup-link-list .pickup-link-list-item .pickup-day {
  border-radius: 16px !important;
  cursor: pointer !important;
  transition: transform 0.2s ease, filter 0.2s ease, box-shadow 0.2s ease !important;
}
@media (min-width: 768px) {
  #home .pickup-link-wrap .pickup-link-list .pickup-link-list-item .pickup-day {
    border-radius: 20px !important;
  }
}
#home .pickup-link-wrap .pickup-link-list .pickup-link-list-item .pickup-day:hover {
  transform: translateY(-3px) !important;
  filter: brightness(108%) !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.20) !important;
}

#home .pickup-link-wrap .pickup-link-list .pickup-link-list-item .pickup-day.pickup-day01 {
  background: var(--gradient-day01) !important;
  border-radius: 16px !important;
}
@media (min-width: 768px) {
  #home .pickup-link-wrap .pickup-link-list .pickup-link-list-item .pickup-day.pickup-day01 {
    border-radius: 20px !important;
  }
}

#home .pickup-link-wrap .pickup-link-list .pickup-link-list-item .pickup-day.pickup-day02 {
  background: var(--gradient-day02) !important;
  border-radius: 16px !important;
}
@media (min-width: 768px) {
  #home .pickup-link-wrap .pickup-link-list .pickup-link-list-item .pickup-day.pickup-day02 {
    border-radius: 20px !important;
  }
}

#home .pickup-link-wrap .pickup-link-list .pickup-link-list-item .pickup-place-text svg {
  display: none !important;
}

/* pickup-block hover は下部の統一ルールで管理 */

#channel .day-session-pickup-block .day-session-pickup-block-text .text-lead {
  color: var(--color-day01-text);
}

#channel .day-session-pickup-block .day-session-pickup-block-text .text-lead.day2 {
  color: var(--color-day02-text);
}

#home .event-overview-contents .event-overview-card-list dt.text-day01,
#channel .event-overview-contents .event-overview-card-list dt.text-day01 {
  border-right-color: var(--color-day01);
}

#home .event-overview-contents .event-overview-card-list dt.text-day02,
#channel .event-overview-contents .event-overview-card-list dt.text-day02 {
  border-right-color: var(--color-day02-text);
}

/* ============================================================
 * channel-a (A 案) 専用: DAY01 / DAY02 の日付見出しを中央揃え
 * 既定は「左寄せ + 右へ伸びる装飾線」。A 案ではセンタリングする。
 * body[data-proto="A"] でスコープし、本番 channel.html / index.html には影響させない。
 * ============================================================ */
body[data-proto="A"] .day01-contnets-title-box,
body[data-proto="A"] .day02-contnets-title-box {
  justify-content: center;
}

/* 中央揃え時は右へ伸びる装飾線が非対称になるため非表示にする */
body[data-proto="A"] .day01-contnets-title-box .day01-contnets-title .day01-contnets-title-inner::after,
body[data-proto="A"] .day02-contnets-title-box .day02-contnets-title .day02-contnets-title-inner::after {
  display: none;
}

/* 左パディング(左寄せ前提の余白)を解除して中央位置を正確にする */
body[data-proto="A"] .day01-contnets-title-box .day01-contnets-title .day01-contnets-title-inner,
body[data-proto="A"] .day02-contnets-title-box .day02-contnets-title .day02-contnets-title-inner {
  padding-left: 0;
}

/* ============================================================
 * TOP ヒーロー (index.html): 見出しの中央揃え & テキスト視認性向上
 * 背景 KV (POPキューブ) が明るいため、濃紺テキスト(#00144c)に白いハローを
 * 付けてコントラストを確保する。#home スコープで TOP ページ限定。
 * ============================================================ */
/* カード自体が左固定配置(left:5%)のため、画面中央へ移動する。
   kv-fade-01 の GSAP は opacity のみで transform 未使用なので競合しない。 */
#home .hero-wrap .hero-card {
  left: 50%;
  right: auto;
  transform: translateX(-50%);
}

#home .hero-wrap .hero-card__head {
  text-align: center;
}

#home .hero-wrap .hero-card__head-title,
#home .hero-wrap .hero-card__head-text,
#home .hero-wrap .hero-card__body-list-item-text {
  text-shadow: 0 1px 10px rgba(255, 255, 255, .9), 0 0 3px rgba(255, 255, 255, .85);
}

/* 「お申し込みフォーム準備中」はボタンではなく告知。
   塗りボタン風(濃紺ベタ+角丸)をやめ、半透明白の控えめなインフォ表示にする */
#home .hero-wrap .kv-session-end-text {
  align-items: center !important;
  background:
    linear-gradient(135deg, rgba(0, 20, 76, 0.94), rgba(82, 56, 165, 0.88)) padding-box,
    linear-gradient(135deg, rgba(0, 238, 255, 0.9), rgba(255, 255, 255, 0.6), rgba(225, 66, 239, 0.9)) border-box !important;
  border: 2px solid transparent !important;
  border-radius: 18px !important;
  box-shadow: 0 16px 34px rgba(0, 20, 76, 0.28), 0 0 0 1px rgba(255, 255, 255, 0.16) inset !important;
  box-sizing: border-box !important;
  color: #fff !important;
  display: flex !important;
  justify-content: center !important;
  min-height: 88px !important;
  min-width: 172px !important;
  overflow: hidden !important;
  padding: 14px 18px !important;
  position: relative !important;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.26) !important;
}
#home .hero-wrap .kv-session-end-text::before {
  display: none !important;
}
#home .hero-wrap .kv-session-end-text::after {
  background: radial-gradient(circle at 50% 50%, rgba(255, 255, 255, 0.35), transparent 66%);
  content: "";
  height: 90px;
  pointer-events: none;
  position: absolute;
  right: -36px;
  top: -46px;
  width: 90px;
}
#home .hero-wrap .kv-session-end-text .session-end-title {
  color: #fff !important;
  display: block !important;
  font-size: 24px !important;
  font-weight: 900 !important;
  letter-spacing: 0 !important;
  line-height: 1.18 !important;
  position: relative !important;
  text-align: center !important;
  z-index: 1 !important;
}

/* 開催日・場所: DAY01 / DAY02 を左右に並べる。日付を大きく強調 */
/* ティザーモード: ボタンを disabled ステータス表示として再利用 */
body.teaser-mode .kv-entry-cta {
  background:
    linear-gradient(135deg, rgba(0, 20, 76, 0.94), rgba(82, 56, 165, 0.88)) padding-box,
    linear-gradient(135deg, rgba(0, 238, 255, 0.9), rgba(255, 255, 255, 0.6), rgba(225, 66, 239, 0.9)) border-box !important;
  border: 2px solid transparent !important;
  border-radius: 8px !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25) !important;
  cursor: default !important;
  display: flex !important;
  pointer-events: none !important;
}
body.teaser-mode .kv-entry-cta::before {
  display: none !important;
}
body.teaser-mode .kv-entry-cta::after {
  display: none !important;
}
/* テキスト切り替え: full テキストはデフォルト表示、teaser テキストは非表示 */
.session-end-title--teaser { display: none !important; }
body.teaser-mode .kv-entry-cta .session-end-title--teaser {
  display: block !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
  max-width: none !important;
}
body.teaser-mode .kv-entry-cta .session-end-title--full   { display: none !important; }

/* 過去の開催: フル版・ティザー両方で表示（昨年実績=社会的証明として残す・木全判断 2026-07-01。
   画像8枚は loading="lazy" 済で画面外読込のため初期表示 LCP には影響しない） */

/* Coming Soon ラッパー: ティザーモード時のみ表示 */
#home .hero-wrap .kv-coming-soon-wrap {
  display: none !important;
}
body.teaser-mode #home .hero-wrap .kv-coming-soon-wrap {
  bottom: 0 !important;
  display: block !important;
  pointer-events: none !important;
  position: absolute !important;
  right: 0 !important;
  user-select: none !important;
  z-index: 1 !important;
}
/* Coming Soon 大テキスト */
body.teaser-mode #home .hero-wrap .kv-coming-soon-bg {
  color: #fff !important;
  display: block !important;
  font-family: "gotham", sans-serif !important;
  font-size: 80px !important;
  font-style: italic !important;
  font-weight: 800 !important;
  line-height: 0.8 !important;
  opacity: 0.32 !important;
  text-align: right !important;
  white-space: nowrap !important;
}
@media screen and (min-width: 992px) {
  body.teaser-mode #home .hero-wrap .kv-coming-soon-wrap {
    left: 0 !important;
  }
  body.teaser-mode #home .hero-wrap .kv-coming-soon-bg {
    font-size: 220px !important;
  }
}
/* 「7月頃 受付開始予定」: 案D採用によりKVから削除 → 追従ボタンで表示 */
body.teaser-mode #home .hero-wrap .kv-teaser-label {
  align-items: center !important;
  color: #fff !important;
  display: none !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  gap: 12px !important;
  left: 0 !important;
  letter-spacing: 0.04em !important;
  position: absolute !important;
  right: 20px !important;
  text-shadow: 0 0 6px #ff2b9d, 0 1px 3px #ff2b9d, 0 0 14px rgba(255, 43, 157, 0.75) !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  white-space: nowrap !important;
}
/* 左側の線: 透明→白のグラデーション */
body.teaser-mode #home .hero-wrap .kv-teaser-label::before {
  background: linear-gradient(to right, transparent 0%, rgba(255, 255, 255, 0.65) 100%) !important;
  content: '' !important;
  flex: 1 !important;
  height: 1px !important;
}
@media screen and (min-width: 992px) {
  body.teaser-mode #home .hero-wrap .kv-teaser-label {
    font-size: 22px !important;
    right: 100px !important;
  }
}

.kv-entry-cta {
  align-items: center !important;
  appearance: none !important;
  background: linear-gradient(135deg, #ff4ec3 0%, #ff2b9d 52%, #d71f83 100%) !important;
  border: none !important;
  border-radius: 8px !important;
  bottom: 22px !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
  color: #fff !important;
  cursor: default !important;
  display: none !important;
  font-family: "M PLUS 2", "Noto Sans JP", sans-serif !important;
  justify-content: center !important;
  min-height: 64px !important;
  min-width: 140px !important;
  opacity: 1 !important;
  overflow: hidden !important;
  padding: 12px 18px !important;
  position: fixed !important;
  right: 16px !important;
  text-decoration: none !important;
  text-shadow: 0 1px 4px rgba(111, 0, 78, 0.3) !important;
  transform: none !important;
  width: auto !important;
  z-index: 99998 !important;
}

.kv-entry-cta::before {
  display: none !important;
}

.kv-entry-cta::after {
  display: none !important;
}

.kv-entry-cta .session-end-title {
  color: #fff !important;
  display: block !important;
  font-size: 17px !important;
  font-weight: 900 !important;
  letter-spacing: 0.02em !important;
  line-height: 1.25 !important;
  max-width: 6em !important;
  text-align: center !important;
  white-space: normal !important;
}

.kv-entry-cta .session-end-title--teaser {
  display: none !important;
}
body.teaser-mode .kv-entry-cta .session-end-title--full {
  display: none !important;
}
body.teaser-mode .kv-entry-cta .session-end-title--teaser {
  display: block !important;
}

@media screen and (max-width: 767px) {
  .kv-entry-cta {
    display: flex !important;
  }

  .kv-entry-cta .session-end-title {
    font-size: 16px !important;
  }

  /* フル版: text-shadow 強化 */
  .kv-entry-cta .session-end-title--full {
    font-size: 17px !important;
    text-shadow: 0 1px 6px rgba(111, 0, 78, 0.65) !important;
  }

  /* ティザー版: フォントサイズ拡大 + text-shadow */
  body.teaser-mode .kv-entry-cta .session-end-title--teaser {
    font-size: 15px !important;
    text-shadow: 0 1px 5px rgba(0, 0, 0, 0.5) !important;
  }
}

#home .hero-wrap .hero-card__body-list {
  list-style: none;
  display: flex;
  flex-direction: row;
  gap: 28px;
  margin: 60px 0 0; /* ロゴからしっかり離して、下の「お申し込み準備中」に寄せる */
  padding: 0;
}
#home .hero-wrap .hero-card__body-list-item {
  list-style: none;
  flex: 1 1 0;
}
/* モバイルは横並びだと収まらないので縦並びに戻す */
@media screen and (max-width: 767px) {
  #home .hero-wrap .hero-card__body-list {
    flex-direction: column;
    gap: 16px;
    margin-top: 0; /* PC の 60px はロゴ下の意図的な空白。モバイルは flow が異なるため 0 に詰める */
  }
  /* モバイル KV: 準備中の下に空く余白をカット (KV 高さを内容に合わせる) */
  #home .hero-wrap,
  #home .hero-wrap .bg-hero {
    height: 580px !important;
    min-height: 0 !important;
    max-height: none !important;
  }
  /* モバイルは縦並びなので会場名の高さ固定は不要 (DAY01 に余白が出るのを防ぐ) */
  #home .hero-wrap .kv-venue {
    min-height: 0;
  }
  /* モバイル: 日付を時間と同じくらいの幅に拡大 */
  #home .hero-wrap .hero-card__body .text-primary {
    font-size: 29px;
  }
  /* モバイル: 日付+時間を1行に / オンデマンドを1行に */
  #home .hero-wrap .hero-card__body-list-item {
    display: grid;
    grid-template-areas: "venue venue" "date time" "ondemand ondemand";
    grid-template-columns: auto 1fr;
    align-items: center;
    column-gap: 8px;
    row-gap: 2px;
  }
  #home .hero-wrap .kv-venue     { grid-area: venue; }
  #home .hero-wrap .kv-date-row  { grid-area: date; }
  #home .hero-wrap .kv-time      { grid-area: time; margin-top: 0; }
  #home .hero-wrap .kv-ondemand  { grid-area: ondemand; }
  /* 矢印ボタンはモバイルでは非表示 */
  #home .hero-wrap .kv-arrow { display: none !important; }
  /* オンデマンド: 改行を消して ｜ で繋ぐ */
  #home .hero-wrap .kv-ondemand br { display: none; }
  #home .hero-wrap .kv-ondemand-label::after { content: '\00a0\ff5c\00a0'; }
  /* Coming Soon: vw スケールで画面幅に収める（右端切れ防止・#215）。
     17vw だと 375px で 63.75px→テキスト実幅 432px となり右端の n が切れていた。
     14vw に下げ 375px で ~52px（実幅 ~356px）に収める。下限 40px は 320px 幅端末でも切れない値 */
  body.teaser-mode #home .hero-wrap .kv-coming-soon-wrap {
    left: 0 !important;
    overflow: hidden !important;
  }
  body.teaser-mode #home .hero-wrap .kv-coming-soon-bg {
    font-size: clamp(40px, 14vw, 80px) !important;
  }
}
/* オンデマンド配信: 半透明角丸バッジ */
#home .hero-wrap .kv-ondemand {
  align-items: center !important;
  backdrop-filter: blur(4px) !important;
  background: rgba(0, 100, 220, 0.5) !important;
  border: 1px solid rgba(100, 180, 255, 0.4) !important;
  border-radius: 100px !important;
  color: #fff !important;
  display: inline-flex !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  gap: 4px !important;
  justify-self: start !important;
  line-height: 1.3 !important;
  padding: 3px 10px 3px 8px !important;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.18) !important; /* 半透明バッジ上の白文字にごく軽い視認性補助 */
  white-space: nowrap !important;
}
#home .hero-wrap .kv-ondemand::before {
  content: '▶' !important;
  font-size: 7px !important;
  line-height: 1 !important;
  opacity: 0.85 !important;
}
#home .hero-wrap .kv-ondemand br {
  display: none !important;
}
#home .hero-wrap .kv-ondemand-label::after {
  content: '\0020' !important;
}
/* DAYピルを上に、その下に日付・時間・場所を縦に並べる */
#home .hero-wrap .hero-card__body-list-item-title {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
#home .hero-wrap .kv-datetime {
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: 1.12;
}
#home .hero-wrap .hero-card__body-list-item-title .text-primary {
  font-size: 30px;
  font-weight: 800;
  line-height: 1.1;
}
#home .hero-wrap .hero-card__body-list-item {
  text-align: left;
}
#home .hero-wrap .hero-card__body-list-item-title {
  justify-content: flex-start;
}
#home .hero-wrap .hero-card__body-list-item-text {
  margin-top: 4px;
  text-align: left;
}
/* 時間: 日付の下に、白文字 + 日付カラーの影 (日程の横幅に合わせて控えめに) */
#home .hero-wrap .kv-time {
  display: block;
  font-size: 20px;
  font-weight: 700;
  color: #fff;
  margin-top: 3px;
}
#home .hero-wrap .hero-card__body-list-item:nth-child(1) .kv-time {
  text-shadow: 0 0 5px #2e7bff, 0 1px 3px #2e7bff, 0 0 10px rgba(46, 123, 255, .7);
}
#home .hero-wrap .hero-card__body-list-item:nth-child(2) .kv-time {
  text-shadow: 0 0 5px #e8620c, 0 1px 3px #e8620c, 0 0 10px rgba(232, 98, 12, .7);
}
/* 場所 (会場名): 会場ヘッド内に表示 */
#home .hero-wrap .kv-place {
  font-size: 14px;
  font-weight: 600;
  color: #fff;
  line-height: 1.35;
  text-shadow: 0 1px 6px rgba(0, 20, 76, .6), 0 0 3px rgba(0, 20, 76, .5);
}

/* 開催情報を「会場名 ＋ 日付大 ＋ 矢印ボタン」(参考サイト風) に */
#home .hero-wrap .kv-venue {
  display: flex;
  align-items: center; /* DAYピルと会場名を互いの縦中央でそろえる */
  justify-content: flex-start;
  gap: 10px;
  margin-bottom: 6px;
  white-space: nowrap; /* 各行は折り返さない (改行は <br> で制御) */
  min-height: 2.7em; /* DAY01(1行)/DAY02(2行) で日付位置をそろえるため2行分確保 */
}
#home .hero-wrap .kv-date-row {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 14px;
}
#home .hero-wrap .kv-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  color: #fff;
  font-weight: 700; /* Task 2: カラー背景上の白テキスト視認性向上 */
  text-decoration: none;
  font-size: 18px;
  line-height: 1;
  flex-shrink: 0;
  transition: opacity .2s;
}
#home .hero-wrap .kv-arrow:hover { opacity: .82; }
#home .hero-wrap .kv-arrow--day01 { background: var(--color-day01); }
#home .hero-wrap .kv-arrow--day02 { background: var(--color-day02); }

/* 日付 (10.16/10.19) を読みやすく: 白ハローを強める */
/* 日付を白文字 + DAYカラーの影に (DAY01=青 / DAY02=オレンジ) */
#home .hero-wrap .hero-card__body-list-item .text-primary {
  color: #fff !important;
}
#home .hero-wrap .hero-card__body-list-item:nth-child(1) .text-primary {
  text-shadow: 0 0 6px #2e7bff, 0 1px 3px #2e7bff, 0 0 14px rgba(46, 123, 255, .75);
}
#home .hero-wrap .hero-card__body-list-item:nth-child(2) .text-primary {
  text-shadow: 0 0 6px #e8620c, 0 1px 3px #e8620c, 0 0 14px rgba(232, 98, 12, .75);
}
/* 曜日 (Fri./Mon.) は日付より 2 回りほど小さく */
#home .hero-wrap .text-primary .kv-dow {
  font-size: 0.6em;
  font-weight: 700;
  margin-left: 0.28em;
}

/* 会場名は item-text の中央揃えに含めて表示 (ホールE1 も中央) */

/* スクロール誘導 (KV の下の白背景に配置・紺色、縦線を光が上→下に流れる) */
#home .kv-scroll-hint {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  width: -webkit-fit-content;
  width: fit-content;
  margin: 20px auto 4px;
  text-decoration: none;
  position: relative;
  z-index: 5;
}
#home .kv-scroll-hint__text {
  font-size: 11px;
  letter-spacing: 0.22em;
  font-weight: 700;
  color: #00144c;
}
#home .kv-scroll-hint__line {
  position: relative;
  width: 1px;
  height: 46px;
  background: rgba(0, 20, 76, 0.2);
  overflow: hidden;
}
#home .kv-scroll-hint__line::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 40%;
  background: #00144c;
  animation: kvScrollFlow 1.8s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}
@keyframes kvScrollFlow {
  0% { transform: translateY(-100%); }
  60%, 100% { transform: translateY(250%); }
}
/* アクセシビリティ: モーション低減設定の利用者にはスクロール誘導(線フロー)を止める */
@media (prefers-reduced-motion: reduce) {
  #home .kv-scroll-hint__line::after { animation: none !important; }
}

/* KV ロゴ画像 (タイトル+キャッチ) のサイズと中央配置。
   ロゴ自体にふちが付いているので text-shadow は不要。 */
#home .hero-wrap .hero-card__head-logo {
  margin: 0 0 8px;
}

#home .hero-wrap .hero-card__head-logo img {
  width: 100%;
  max-width: 360px;
  height: auto;
  display: inline-block;
}

/* PC ではロゴを下の要素(DAY情報の横並び)とカード幅いっぱいに揃える */
@media screen and (min-width: 768px) {
  #home .hero-wrap,
  #home .hero-wrap .bg-hero {
    height: calc(100vh - 170px) !important;
    min-height: 620px !important;
    max-height: 800px !important;
  }
  /* 右寄り非対称: 右上ロゴ / 右下情報、左は余白(KVキューブを見せる) */
  #home .hero-wrap .hero-card {
    position: absolute;
    inset: 0;
    top: 0;
    left: 0;
    transform: none;
    width: auto;
    max-width: none;
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: 1fr auto;
    grid-template-areas:
      "logo"
      "info";
    justify-items: end;
    padding: 90px 64px 56px;
    box-sizing: border-box;
  }
  /* 縦書きキャッチは非表示 (ロゴ内のキャッチで足りるため) */
  #home .hero-wrap .hero-card__catch {
    display: none;
  }
  /* 右上: ロゴを主役に大きく */
  #home .hero-wrap .hero-card__head {
    grid-area: logo;
    justify-self: center;
    align-self: end;
    width: 100%;
    max-width: 720px;
    margin: 0 0 -12px;
    min-height: 0;
  }
  #home .hero-wrap .hero-card__head-logo {
    margin: 0;
    text-align: center;
  }
  #home .hero-wrap .hero-card__head-logo img {
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 26vh;
    object-fit: contain;
  }
  /* 開催情報(中央) + 準備中(右) を横並びに */
  #home .hero-wrap .hero-card__info {
    grid-area: info;
    justify-self: stretch;
    align-self: end;
    width: 100%;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 24px;
  }
  #home .hero-wrap .hero-card__body {
    grid-column: 2;
  }
  #home .hero-wrap .hero-card__body-list {
    flex-direction: row;
    gap: 24px;
    justify-content: center;
  }
  /* 開催情報を左端そろえに (DAYラベル・日付・時間の左を揃える) */
  #home .hero-wrap .hero-card__body-list-item {
    text-align: left;
  }
  #home .hero-wrap .kv-venue,
  #home .hero-wrap .kv-date-row {
    justify-content: flex-start;
  }
  #home .hero-wrap .kv-time {
    text-align: left;
  }
  #home .hero-wrap .hero-card__body .text-primary {
    font-size: 36px;
  }
  #home .hero-wrap .hero-card__body .kv-time {
    font-size: 25px;
  }
  #home .hero-wrap .hero-card__body .kv-place {
    font-size: 14px;
  }
  /* 開催情報の右側カラム(現在は空) */
  #home .hero-wrap .hero-card__foot {
    display: flex;
    justify-content: flex-end;
    margin-top: 0;
    grid-column: 3;
    justify-self: end;
    align-self: end;
  }
}

/* C: ヒーローのタイトル/キャッチ(ロゴ画像)・日付画像を背景の幾何模様から分離する。
   暗いオーバーレイは使わず、画像にごく軽い drop-shadow のみで明るい印象を維持。 */
#home .hero-wrap .hero-card__head-logo img {
  filter: drop-shadow(0 2px 8px rgba(0, 20, 76, 0.30));
}
#home .hero-wrap .kv-day-img {
  /* drop-shadow は付けない。SVG に CSS filter を掛けるとブラウザが一旦ラスタ化するため、
     高 DPI 画面(devicePixelRatio>=2)では低解像度で焼かれてジャギー(がびがび)になる。
     新デザインは会場名の白チップ＋数字の白フチで背景の幾何模様から十分分離できており、影は不要。 */
  filter: none;
}

/* ============================================================
 * ヘッダー / フッターロゴを 2 行レイアウト (比率 3.75:1) 用にサイズ調整。
 * 1 行ロゴ前提の既定サイズだと縦がはみ出すため、高さ基準で収める。
 * ============================================================ */
.site-header__logo img.d-md-block {
  height: 42px;
  width: auto;
}
/* SP ヘッダーのイベントロゴ (a.d-md-none) は縦のある 3.75:1 なので、高さを抑えて
   ヘッダー内に上下の余白を確保する (旧・企業ロゴ=横長薄型と同等の余白感に戻す・木全指摘「パツパツ」)。
   a.d-md-none は PC で display:none のため SP 限定で効く。 */
.site-header__logo a.d-md-none img {
  height: 30px !important;
  width: auto !important;
}

@media (min-width: 768px) and (max-width: 1040px) {
  .site-header__inner {
    padding-left: 18px !important;
  }
  .site-header__logo {
    flex: 0 0 auto !important;
    width: 335px !important;
  }
  .site-header__logo img.d-md-block {
    height: 34px !important;
  }
  .site-header__nav {
    flex: 1 1 auto !important;
    min-width: 0 !important;
  }
  .site-header__nav ul.site-header__menu {
    justify-content: flex-end !important;
    gap: 0 !important;
  }
  .site-header__nav .site-header__item {
    margin-left: 13px !important;
    white-space: nowrap !important;
  }
  .site-header__nav .site-header__item .site-header__itemlink {
    font-size: 14px !important;
  }
  .site-header__nav .site-header__item__button-square {
    margin-left: 14px !important;
  }
  .site-header__nav .site-header__item .button-contact-square {
    width: 100px !important;
    font-size: 13px !important;
  }
}

@media (min-width: 768px) and (max-width: 860px) {
  .site-header__inner {
    height: 72px !important;
    padding-left: 14px !important;
  }
  .site-header__logo {
    width: 300px !important;
  }
  .site-header__logo img.d-md-block {
    height: 30px !important;
  }
  .site-header__nav .site-header__item {
    margin-left: 10px !important;
  }
  .site-header__nav .site-header__item .site-header__itemlink {
    font-size: 13px !important;
  }
  .site-header__nav .site-header__item .button-contact-square {
    width: 96px !important;
    font-size: 12px !important;
  }
}

.site-footer__logo {
  text-align: center;
}

.site-footer__logo img {
  width: 200px;
  height: auto;
}

/* ============================================================
 * DAY01 ブロック = 青テーマ / DAY02 ブロック = オレンジテーマ
 * 各 DAY セクション内のアクセント(既定は紫 gradient-pop / accent-purple)を
 * その日のメインカラーに統一する。index(#home) と channel(#channel) 共通。
 * ============================================================ */

/* --- DAY01 セクション内を青に --- */
#home #day01 .btn-secondary,
#home #day01 .btn-booth-cat-block-common .btn-primary,
#home #day01 .btn-booth-cat-block-common .btn-secondary,
#channel #day01 .btn-secondary {
  background: var(--gradient-day01);
}

#home #day01 .btn-detail-common-01,
#home #day01 .btn-detail-common-02,
#home #day01 .text-secondary,
#channel #day01 .btn-detail-common-01,
#channel #day01 .btn-detail-common-02 {
  color: var(--color-day01-text) !important;
}

#home #day01 .btn-detail-common-01::after,
#home #day01 .btn-detail-common-02::after,
#channel #day01 .btn-detail-common-01::after,
#channel #day01 .btn-detail-common-02::after {
  background: var(--gradient-day01);
}

/* --- DAY02 セクション内をオレンジに --- */
#home #day01 .session-view-item-card-head,
#channel #day01 .session-view-item-card-head,
.session-list-day01-wrap .day-session-pickup-block-title,
.session-list-day01-wrap .session-view-item-card-head {
  color: var(--color-day01-text);
}

#home #day02 .session-view-item-card-head,
#home #day02 .day02-session-intro-block-title,
#channel #day02 .session-view-item-card-head,
.session-list-day02-wrap .day-session-pickup-block-title,
.session-list-day02-wrap .session-view-item-card-head {
  color: var(--color-day02-text);
}

#home #day02 .btn-secondary,
#home #day02 .btn-booth-cat-block-common .btn-primary,
#home #day02 .btn-booth-cat-block-common .btn-secondary,
#channel #day02 .btn-secondary {
  background: var(--gradient-day02);
}

#home #day02 .btn-detail-common-01,
#home #day02 .btn-detail-common-02,
#home #day02 .text-secondary,
#home #pickup .pickup-link-sub-list .btn-detail-common-02,
#channel #day02 .btn-detail-common-01,
#channel #day02 .btn-detail-common-02 {
  color: var(--color-day02-text) !important;
  border-color: var(--color-day02-text) !important;
}

#home #day02 .btn-detail-common-01::after,
#home #day02 .btn-detail-common-02::after,
#home #pickup .pickup-link-sub-list .btn-detail-common-02::after,
#channel #day02 .btn-detail-common-01::after,
#channel #day02 .btn-detail-common-02::after {
  background: var(--gradient-day02);
}

/* ── pickup サブリンク: チップ化 + DAY02直下配置 ── */
#home .pickup-link-wrap {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  column-gap: 16px !important;
  row-gap: 12px !important;
}
@media (min-width: 768px) {
  #home .pickup-link-wrap {
    column-gap: 24px !important;
  }
}
#home .pickup-link-wrap .pickup-link-list {
  grid-column: 1 / -1 !important;
  grid-row: 1 !important;
}
#home .pickup-link-wrap .pickup-link-sub-list {
  grid-column: 2 !important;
  grid-row: 2 !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  justify-content: flex-start !important;
  margin-top: 0 !important;
}
@media (max-width: 767px) {
  #home .pickup-link-wrap .pickup-link-sub-list {
    display: none !important;
  }
}
@media (min-width: 768px) {
  #home .pickup-link-wrap .pickup-link-sub-list {
    gap: 10px !important;
  }
}
#home #pickup .pickup-link-sub-list .btn-detail-common-02 {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  border-radius: 999px !important;
  padding: 12px 16px !important;
  font-size: 0.82rem !important;
  font-weight: 700 !important;
  background: transparent !important;
  color: var(--color-day02-text) !important;
  border: 1.5px solid var(--color-day02-text) !important;
  cursor: pointer !important;
  transition: background 0.15s, border-color 0.15s, color 0.15s !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  position: relative !important;
}
#home #pickup .pickup-link-sub-list .btn-detail-common-02:hover {
  background: rgba(232, 98, 12, 0.08) !important;
  border-color: #c04a00 !important;
  color: #c04a00 !important;
}
#home #pickup .pickup-link-sub-list .btn-detail-common-02::after {
  position: static !important;
  display: inline-block !important;
  width: 10px !important;
  height: 10px !important;
  border-radius: 50% !important;
  transform: none !important;
  flex-shrink: 0 !important;
  top: auto !important;
  right: auto !important;
  background: var(--gradient-day02) !important;
}

/* DAY02 の旧マゼンタ(#e142ef)文字をオレンジに統一
   (見どころ見出し・モーダルのDAY02ラベル・イントロのDAY02リード) */
.day02-headding-title-common,
.channel-text.day2,
.text-lead.day2 {
  color: var(--color-day02-text) !important;
}
/* 大きい DAY02 見出し(見どころ/出展ブース)とそのPickupキッカーは、茶寄りの
   text トークンではなく明るい基準オレンジ #e8620c を使う(小さい channel-text.day2 /
   text-lead.day2 は白背景上の可読性のため text トークンのまま) */
.day02-headding-title-common {
  color: var(--color-day02) !important;
}
/* DAY02 見出し(見どころ / 出展ブース)を中央寄せに */
#home .day02-headding-title-common {
  text-align: center !important;
}
/* 特別講演カード左上の「DAY02」ラベルをバッジ化
   (特別ゲストカードの .text-day02 バッジと同じ #ff7431 ピルに揃える。
   原色+白文字を維持(デザイナー指摘: 紺文字は見にくい・2026-07-02再指摘)。
   #home #day02 ... .pickup-text-data-head .text-lead が ID2つの高詳細度で
   padding-left:0 等を効かせているため、同等以上の詳細度で上書きし、
   左の縦棒(::before)・下線・余白もリセットする。 */
#home #day02 .day02-session-intro-block .day02-session-intro-block-text .text-lead.day2 {
  display: inline-block !important;
  width: auto !important;
  background: #ff7431 !important;
  color: #fff !important;
  border-radius: 99px !important;
  border-bottom: none !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  padding: 6px 12px !important;
  margin: 0 !important;
}
#home #day02 .day02-session-intro-block .day02-session-intro-block-text .text-lead.day2::before {
  display: none !important;
}

/* 「時間帯/カテゴリ別に見る」をタブ行の右上にテキストリンクとして配置
   column-reverse によりボタンがタブ上段に来る仕組みを維持したまま、
   ピル形状を廃しテキストリンク化して「浮き感」を解消する。 */
#home #day01 .btn-session-list-block-sm {
  justify-content: flex-end !important;
  margin-bottom: 0 !important;
}
#home #day01 .btn-session-list-block-sm .btn-secondary {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: var(--accent-purple) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  height: auto !important;
  min-height: 44px !important;
  letter-spacing: 0.03em !important;
  padding: 0 !important;
  white-space: nowrap !important;
  width: auto !important;
  display: inline-flex !important;
  align-items: center !important;
}
#home #day01 .btn-session-list-block-sm .btn-secondary::after {
  content: ' →' !important;
  font-weight: 400 !important;
}


@media (max-width: 767px) {
  #home #day01 .btn-session-list-block-sm {
    margin-bottom: 16px !important;
    padding-bottom: 12px !important;
    border-bottom: 1px solid rgba(0, 20, 76, 0.1) !important;
  }
}
/* モバイル: DAY01 チャンネルタブの文字が小さすぎて読めないため拡大 */
@media screen and (max-width: 767px) {
  .day01-tab-switch .day01-tab-switch-text {
    font-size: 14px !important;
  }
  /* モバイル: CH タブをスクロール中もヘッダー直下に固定し、見失わないようにする。
     タブを内包する .container-box を sticky 化する。親の .day01-session-contents が
     本文 (.day01-tab-contents-area) まで含む高さを持つため、本文スクロール中も追従する。
     z-index は本文(auto)より前面、ヘッダー(100)/メニュー(1000)/オーバーレイ(500)より背面。 */
  #home #day01 .day01-session-contents > .container-box {
    position: sticky;
    /* タブ帯はバー上端から 44px 下にある (column-reverse でテキストリンク 44px が上段)。
       top: 16px (= ヘッダー高 60 - リンク高 44) で固定時はリンクがヘッダー裏に隠れ、
       CH タブだけヘッダー直下 (60px) に出る。 */
    top: 16px;
    z-index: 90;
    /* 固定時に本文が透けないよう不透明背景を敷く。PC 版の #day01 セクションと
       同じ「白 + 青グリッド」に合わせる (紺ではなく)。 */
    background-color: #fff;
    background-image:
      linear-gradient(to right, rgba(46, 123, 255, .13) 1px, transparent 1px),
      linear-gradient(to bottom, rgba(46, 224, 255, .10) 1px, transparent 1px);
    background-size: 100px 100px;
  }
}

/* セッションタイムテーブルへのアンカー: 固定ヘッダー(約125px)に隠れないように */
#session-timetable {
  scroll-margin-top: 135px;
}

/* セッション一覧 / スポンサー ページの見出しにも、DAY01 と同じ薄い背景英字を表示 */
#channel .hero-wrap > .title-bg-text,
#sponsor .sponsor-contnets-title-box .title-bg-text {
  position: absolute;
  top: 0;
  left: 0;
  margin: 0;
  padding: 0;
  font-family: "gotham", sans-serif;
  font-weight: 800;
  font-style: italic;
  line-height: 0.75;
  opacity: 0.1;
  font-size: 70px;
  white-space: nowrap;
  pointer-events: none;
  user-select: none;
}
@media screen and (min-width: 992px) {
  #channel .hero-wrap > .title-bg-text,
  #sponsor .sponsor-contnets-title-box .title-bg-text {
    font-size: 222px;
  }
}
/* スポンサー見出しは背景英字の配置基準にするため relative に */
#sponsor .sponsor-contnets-title-box {
  position: relative;
}
/* セッション一覧の "Session" は KV(bg-hero)より前面・見出し(hero-card z2)より背面に。
   白文字・KV 下部に配置 */
#channel .hero-wrap > .title-bg-text {
  z-index: 1;
  color: #fff;
  opacity: 0.22;
  top: auto;
  bottom: 0;
}

/* ページ見出し「セッション一覧」「スポンサー」を中央配置に */
#channel .hero-wrap .hero-card {
  left: 0 !important;
  right: 0 !important;
  width: auto !important;
  text-align: center;
}
/* モバイル: ヘッダーとの間に余白を確保 (bg-heroの80pxを拡張して縦中央揃え) */
@media (max-width: 767px) {
  #channel .hero-wrap .bg-hero {
    height: 130px !important;
  }
  #channel .hero-wrap .hero-card {
    top: 50% !important;
    transform: translateY(-50%);
  }
}
#channel .hero-wrap .hero-card__head,
#channel .hero-wrap .hero-card__head-title {
  text-align: center;
}
#channel .session-time-title span::after {
  content: '\00a0｜\00a0';
  color: inherit;
  font-weight: inherit;
}
#sponsor .sponsor-contnets-title-box,
#sponsor .sponsor-contnets-title {
  text-align: center;
}
/* 見出しの文字サイズを2ページで統一 */
#channel .hero-wrap .hero-card__head-title,
#sponsor .sponsor-contnets-title {
  font-size: 38px;
}
/* スポンサー背景英字 Sponsors を見出し中央(やや上)に合わせる */
#sponsor .sponsor-contnets-title-box .title-bg-text {
  top: 50%;
  bottom: auto;
  transform: translateY(-58%);
}

/* モバイルナビ: 全項目左揃え + サブ項目スタイル */
@media (max-width: 767px) {
  .site-header__nav ul.site-header__menu {
    align-items: flex-start !important;
    padding-left: 40px;
  }
  /* ナビ内「参加登録」ボタン: 中央・大きめに */
  .site-header__nav .site-header__item__button-square {
    align-self: center !important;
    width: 100%;
    text-align: center;
    margin-top: 8px;
  }
  .site-header__nav .site-header__item__button-square .button-contact-square {
    width: 75% !important;
    font-size: 17px !important;
    padding: 14px 20px !important;
    height: auto !important;
  }
  .site-header__nav .nav-sub-item {
    align-self: stretch;
    line-height: 1;
    margin-top: -2px;
    padding-left: 40px;
  }
  .site-header__nav .nav-sub-item .site-header-foot__itemlink {
    display: inline-flex !important;
    align-items: center;
    gap: 6px;
    font-size: 14px !important;
    font-weight: 700 !important;
    color: rgba(0, 20, 76, 0.6) !important;
    padding: 5px 0 !important;
    text-decoration: none;
  }
  .site-header__nav .nav-sub-item .site-header-foot__itemlink::before {
    content: '–';
    color: rgba(0, 20, 76, 0.35);
    font-weight: 400;
    flex-shrink: 0;
    background: none !important;
    position: static !important;
    width: auto !important;
    height: auto !important;
  }
  .site-header__nav .nav-sub-item .site-header-foot__itemlink::after {
    display: none !important;
  }
  /* セッション一覧・スポンサーの前にセパレーター */
  .site-header__nav .last-diver,
  .site-header__nav .nav-section-start {
    border-top: 1px solid rgba(0, 20, 76, 0.15) !important;
    padding-top: 16px !important;
    margin-top: 8px !important;
    width: 100%;
    text-align: left !important;
  }
  .site-header__nav .last-diver .site-header__itemlink,
  .site-header__nav .nav-section-start .site-header__itemlink {
    text-align: left !important;
  }
  .site-header__nav .last-diver::after {
    display: none !important;
  }
}
/* ナビオープン中は右下CTAバナーを隠す */
body:has(#nav-toggle:checked) .kv-entry-cta {
  display: none !important;
}

/* ============================================================
 * カードホバー統一: translateY(-3px) + shadow 強化
 * ② session-view-item-card / ③ day02-session-intro-block-item
 * ============================================================ */
#home .session-view-item-card,
#channel .session-view-item-card {
  transition: transform 0.25s ease, box-shadow 0.25s ease !important;
}
/* style.css の #fdf4ff ピンク hover を全部打ち消す */
#home .merit-list .merit-item-card:hover,
#home .channel-block-card-01:hover,
#channel .day-session-pickup-block:hover {
  background-color: #fff !important;
}
/* day01/day02-session-intro-block の hover pink (#fdf4ff) を白で上書き */
#home .day01-session-intro-block:hover,
.day02-session-intro-block-item .day02-session-intro-block:hover {
  background-color: #fff !important;
}

#home .session-view-item-card:hover,
#channel .session-view-item-card:hover {
  background-color: #fff !important;
  box-shadow: 0 8px 24px rgba(0, 20, 76, 0.14) !important;
  transform: translateY(-3px) !important;
}
/* DAY01: blue glow  (#home #day01 で詳細度を上げて一般ルールに勝つ) */
#home #day01 .session-view-item-card:hover,
#channel .session-list-day01-wrap .session-view-item-card:hover {
  box-shadow: 0 8px 28px rgba(30, 100, 255, 0.28) !important;
}
/* DAY02: orange glow */
#home #day02 .session-view-item-card:hover,
#channel .session-list-day02-wrap .session-view-item-card:hover {
  box-shadow: 0 8px 28px rgba(255, 105, 15, 0.28) !important;
}

#home .day02-session-intro-block-item {
  border-radius: 20px;
  box-shadow: 0 2px 8px rgba(0, 20, 76, 0.05);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.day02-session-intro-block {
  transition: background-color 0.25s ease;
}
#home .day02-session-intro-block-item:hover {
  box-shadow: 0 8px 28px rgba(255, 105, 15, 0.28);
  transform: translateY(-3px);
}
/* 出展ブースカード (DAY02セクション内): orange glow */
.day02-session-special-booth .booth-compact-card:hover {
  box-shadow: 0 8px 28px rgba(255, 105, 15, 0.28) !important;
}
/* #151 B2: 未確定ブースカードの Coming Soon 表示 (release・comingsoon モード時に session-ui.js が付与)。
   グレー地・押下不可・薄紫文字。ホバー光彩は出さない (上の orange glow を !important で明示無効化)。
   ※ session-ui.css は index.html で読み込まれないため、index 専用のこのカードは accent-2026.css に
      #home スコープで置く (木全さん指示 2026-07-03・元 session-ui.css から移設)。ロゴは隠さない。 */
#home .day02-session-special-booth .booth-compact-card.booth-card--comingsoon,
#home .day02-session-special-booth .booth-compact-card.booth-card--comingsoon:hover {
  pointer-events: none;
  cursor: default;
  background: #f3f2f7;
  box-shadow: none !important;
  border-color: #e2e0ec;
}
#home .day02-session-special-booth .booth-card--comingsoon .booth-card__company {
  color: #8079a8;
  text-align: center;
  width: 100%;
}


/* ============================================================
 * channel セッション一覧: ピックアップセッションのアクセントを
 * DAY01=青 / DAY02=オレンジ に。DAY02 は内部の .text-lead.day2 で判定 (:has)。
 * ============================================================ */
/* DAY01 (青) — デフォルト */
#channel .day-session-pickup-block .btn-day-session-pickup-block,
#channel .day-session-pickup-block .day-session-pickup-block-text .pickupbox .pickup,
#channel .day-session-pickup-block .font-parts {
  color: var(--color-day01-text);
}
#channel .day-session-pickup-block .btn-day-session-pickup-block {
  font-weight: 700;
}

#channel .day-session-pickup-block .btn-day-session-pickup-block svg path {
  stroke: var(--color-day01);
}

/* DAY02 (オレンジ) — .text-lead.day2 を含むブロック */
#channel .day-session-pickup-block:has(.text-lead.day2) .btn-day-session-pickup-block,
#channel .day-session-pickup-block:has(.text-lead.day2) .day-session-pickup-block-text .pickupbox .pickup,
#channel .day-session-pickup-block:has(.text-lead.day2) .font-parts {
  color: var(--color-day02-text);
}

#channel .day-session-pickup-block:has(.text-lead.day2) .btn-day-session-pickup-block svg path {
  stroke: var(--color-day02);
}

/* ＼Pickup／ を廃し、index と同じ「PICKUP + 細い下線」の控えめラベルに統一。
   色は上の DAY01=青 / DAY02 ルールを継承(下線も currentColor で追従)。 */
#channel .day-session-pickup-block .day-session-pickup-block-text .pickupbox .pickup {
  display: inline-block !important;
  text-transform: uppercase !important;
  letter-spacing: .14em !important;
  font-weight: 800 !important;
  font-size: 13px !important;
  line-height: 1 !important;
  border-bottom: 2px solid currentColor !important;
  padding: 0 0 3px !important;
  margin-right: 10px !important;
  vertical-align: middle !important;
}

/* セッション一覧の「詳細はこちら」ボタンを index と同じ表記に統一:
   二重シェブロン(＞＞)SVGを隠し、末尾に ＋ を付与(色はリンク色を継承)。
   対象=各セッションカードのリンクと Pickup ブロックの大ボタン。 */
#channel .session-view-item-link .link-text svg,
#channel .day-session-pickup-block .btn-day-session-pickup-block svg {
  display: none !important;
}
#channel .session-view-item-link .link-text::after,
#channel .day-session-pickup-block .btn-day-session-pickup-block::after {
  content: "＋";
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
}

/* #home: モーダルを開く CTA のアイコンを「＋」に統一
   (ルール: popup=＋ / ページ移動=→。#channel 側と同規則を #home にも適用) */
#home .session-view-item-link .link-text svg,
#home .btn-day02-session-intro-block svg,
#home #specialguest .special-guest-card__cta svg {
  display: none !important;
}
#home .session-view-item-link .link-text::after,
#home .btn-day02-session-intro-block::after,
#home #specialguest .special-guest-card__cta::after {
  content: "＋";
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
}

/* 「詳細はこちら＋/→」: シンプルな紺テキストリンク（session.html ピックアップ CTA も統一） */
#home .session-view-item-link .link-text,
#channel .session-view-item-link .link-text,
#channel .day-session-pickup-block .btn-day-session-pickup-block,
#home .btn-day02-session-intro-block {
  align-items: center !important;
  background: none !important;
  border: none !important;
  border-radius: 0 !important;
  color: #00144c !important;
  display: inline-flex !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  gap: 4px !important;
  min-height: 0 !important;
  padding: 0 !important;
  white-space: nowrap !important;
}
/* ③ は style.css で position:absolute; right:35px; bottom:35px 済み */
#home .btn-day02-session-intro-block {
  display: flex !important;
}
/* DAY01バッジ: Pickupの直後・時間の直前 */
#channel .badge-day01 {
  background: var(--gradient-day01);
  color: #fff;
  border-radius: 4px;
  padding: 2px 6px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.4;
  margin: 0 6px;
  display: inline-block;
  vertical-align: middle;
}
/* CHバッジ: ピックアップカード用 */
#channel .badge-ch-pickup {
  background: rgba(46, 123, 255, 0.12);
  color: var(--color-day01-text);
  border-radius: 4px;
  padding: 2px 6px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.4;
  margin: 0 8px 0 0;
  display: inline-block;
  vertical-align: middle;
  white-space: nowrap;
}
/* DAY01バッジ: セッション一覧カード — 時間の左に配置 */
#channel .session-view-item-card .session-view-item-card-time-head:has(.text-day01)::before {
  content: "DAY01";
  background: var(--gradient-day01);
  color: #fff;
  border-radius: 4px;
  padding: 2px 2px 2px 6px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.4;
  margin-right: 4px;
  display: inline-flex;
  align-items: center;
  align-self: center;
  flex-shrink: 0;
}
/* セッション一覧カード: CHをバッジ化・縦線を消す・折り返し防止 */
#channel .session-view-item-card .session-view-item-card-time-head {
  flex-wrap: nowrap !important;
}
/* 時間を最後に: DAY01 → CH → 時間 の順に */
#channel .session-view-item-card .session-view-item-card-time-head .text-time {
  order: 1;
}
#channel .session-view-item-card .text-channel {
  background: rgba(46, 123, 255, 0.12);
  border-radius: 4px;
  padding: 2px 6px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.4;
  display: inline-flex !important;
  align-items: center;
  white-space: nowrap;
  flex-shrink: 0;
  margin-left: 0 !important;
  margin-right: 8px;
}
#channel .session-list-day02-wrap .session-view-item-card .text-channel {
  background: rgba(200, 81, 10, 0.12);
}
#channel .session-view-item-card .text-channel::before {
  display: none !important;
}
/* DAY02ピックアップ: 縦線を消してバッジ形状に・バッジを先頭に */
#channel .day-session-pickup-block .text-lead.day2::before {
  display: none !important;
}
#channel .day-session-pickup-block .text-lead.day2 {
  background: var(--gradient-day02) !important;
  color: #fff !important;
  border-radius: 4px !important;
  padding: 2px 8px !important;
  margin-left: 0 !important;
  margin-right: 6px !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  display: inline-flex !important;
  align-items: center !important;
  order: -1 !important;
}
/* is-disabled ブロックは詳細ボタンを非表示 */
#home .day-session-pickup-block.is-disabled .btn-day-session-pickup-block,
#channel .day-session-pickup-block.is-disabled .btn-day-session-pickup-block {
  display: none !important;
}
/* モバイルのみ: カード下paddingはボタン(詳細はこちら)用に60px確保しているが、
   ボタンも本文も無い is-disabled カード(開会のご挨拶等)では下が大きく空くため上と揃える */
@media (max-width: 767px) {
  #channel .day-session-pickup-block.is-disabled {
    padding-bottom: 30px;
  }
}
/* モバイル(縦積み時): ピックアップカードの人物写真エリアを中央寄せ。
   従来は grid 固定で左寄せ(右に空き)・1枚や奇数枚が左セルに寄っていた。
   flex+justify-content:center にすると 2枚は従来と同サイズのまま、1枚/奇数枚も中央に揃う */
@media (max-width: 991px) {
  #channel .day-session-pickup-block .day-session-pickup-block-user-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: flex-start;   /* 写真を縦に引き伸ばさない(stretchだと高さ計算が崩れ3枚目が枠外に溢れる) */
    align-content: flex-start; /* 複数行を上詰めにする */
    align-self: flex-start;    /* 親rowのstretchで縦に伸びないように */
    gap: 15px;
    margin-left: auto;
    margin-right: auto;
  }
  #channel .day-session-pickup-block .day-session-pickup-block-user-list .user-img {
    flex: 0 0 calc(50% - 7.5px);
    min-width: 0;
  }
}
/* span.text が style.css で purple/16px を持つため inherit で上書き */
#home .session-view-item-link .link-text .text,
#channel .session-view-item-link .link-text .text {
  color: inherit !important;
  font-size: inherit !important;
}

/* ピックアップブロック: 白背景 + hover で translateY(-3px) + カラー光彩 */
#channel .day-session-pickup-block {
  background-color: #fff !important;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
#channel .day-session-pickup-block:hover {
  background-color: #fff !important;
  transform: translateY(-3px);
}
/* DAY01=青光彩 */
#channel .day-contents-blocks[id^="day01-"] .day-session-pickup-block:hover,
#channel .day-session-pickup-block:not(:has(.text-lead.day2)):hover {
  box-shadow: 0 8px 28px rgba(30, 100, 255, 0.28) !important;
}
/* DAY02=橙光彩 */
#channel .day-contents-blocks[id^="day02-"] .day-session-pickup-block:hover,
#channel .day-session-pickup-block:has(.text-lead.day2):hover {
  box-shadow: 0 8px 28px rgba(255, 105, 15, 0.28) !important;
}

/* DAY01 タイムテーブル: 時間列を細く・文字を大きく(2行)、CH列を広げる */
.proto-a-sched-body .col-time {
  width: 68px !important;
}
.proto-a-sched-body .schedule-table__time {
  font-size: 16px !important;
  line-height: 1.3 !important;
  padding: 10px 8px !important;
  white-space: nowrap !important;
  text-align: left !important;
}

/* DAY01 タイムテーブル: セッションなし枠に薄い背景をつけてコンテンツ枠と区別する */
/* :has(a) で静的HTMLの「リンクなし=空き枠」を判別（.proto-cell はJS後付けのため不可） */
.proto-a-sched-body .schedule-table td:not(.schedule-table__time):not(:has(a)) {
  background-color: rgba(0, 20, 76, 0.08);
}

/* intro セクションの強調テキストを KV のピンクに */
#home .intro-contents .text-emphasis {
  color: #c93a70 !important; /* B: ピンク #e46c97(3.05) を 4.86 に。hue維持で数段濃く */
}

/* イベント紹介: 本文にジャンプ率をつける。メインメッセージ(H2相当の見た目)→リード→挨拶文 の順で強弱 */
#home #intro .intro-headline {
  margin: 0 0 16px;
  font-size: clamp(20px, 2.2vw, 28px);
  font-weight: 800;
  line-height: 1.6;
  letter-spacing: 0.01em;
  color: #00144c;
  text-align: center;
}
#home #intro .intro-lead {
  margin: 0 0 22px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.9;
  color: var(--text-body);
  text-align: center;
}
@media screen and (max-width: 767px) {
  /* スマホでは大きすぎないように。リードは段組みが狭いので左寄せで自然に */
  #home #intro .intro-headline { font-size: clamp(18px, 5vw, 22px); margin-bottom: 14px; }
  #home #intro .intro-lead { text-align: left; }
}

/* 本文として読ませるテキストは、body の 500 継承で全文太字に見えないよう 400 に統一 */
#home .intro-card-body-text,
#home .day01-session-intro-block-text,
#home .day02-session-intro-block-text,
#home .day02-session-intro-block-text-intro,
#home .day02-session-special-booth-card-text,
#home .day02-session-special-booth-sub-card-text,
#channel .m-channel-contents-card-text {
  font-weight: 400;
  line-height: 1.8;
}

#channel .day-session-pickup-block .day-session-pickup-block-text .text-intro,
#channel .session-view-item-card-body-text {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
  color: var(--text-body); /* 本文を標準色に統一(従来 text-intro は継承の#000だった) */
}
@media only screen and (min-width: 992px) {
  #channel .day-session-pickup-block .day-session-pickup-block-text .pickup-text-data {
    font-size: 16px;
  }
}

#channel .day-session-pickup-block .day-session-pickup-block-text .text-intro {
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  display: -webkit-box;
  overflow: hidden;
}

#channel .session-view-list .session-view-item-card-body-text {
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  display: -webkit-box;
  overflow: hidden;
}

#channel .session-view-list .session-view-item-card-head {
  font-size: 18px !important;
  line-height: 1.5 !important;
  /* カード上はタイトルを4行で省略(…)。全文はモーダルで表示。
     文字数制約(50字)超過時にカード高さが崩れないための保険(index #day01 と同挙動) */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
  overflow: hidden;
}

#home .day01-session-intro-block-text .pickup,
#home .day02-session-intro-block-text .pickup,
#channel .day-session-pickup-block-text .pickup,
#home .day01-session-intro-block-text .pickup-text-data,
#home .day02-session-intro-block-text .pickup-text-data,
#channel .day-session-pickup-block-text .pickup-text-data,
#home .day01-session-intro-block-text .pickup-manufacturer-text,
#home .day02-session-intro-block-text .pickup-manufacturer-text,
#channel .day-session-pickup-block-text .pickup-manufacturer-text {
  font-weight: 700;
}

/* intro: 左=タイトル+イラスト / 右=本文 の2カラム */
#home .intro-contents--visual-left {
  display: flex;
  align-items: center;
  gap: 48px;
}
#home .intro-contents--visual-left .intro-card {
  flex: 1 1 50%;
  min-width: 0;
}
#home .intro-contents--visual-left .intro-card .intro-img {
  margin: 28px 0 0;
  width: 100%;
}
#home .intro-contents--visual-left .intro-card .intro-img img {
  width: 100%;
  height: auto;
}
#home .intro-contents--visual-left .intro-card-body {
  flex: 1 1 50%;
  min-width: 0;
}
@media screen and (max-width: 767px) {
  #home .intro-contents--visual-left {
    flex-direction: column;
    gap: 28px;
  }
}

/* intro 左カラム: 思想コピー（右カラム headline の一段下）*/
#home #intro .intro-card-head {
  margin-bottom: 20px;
}
#home #intro .intro-card-head-sub-title {
  font-size: 22px;
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.4;
}
@media screen and (max-width: 767px) {
  #home #intro .intro-card-head {
    margin-bottom: 16px;
  }
  #home #intro .intro-card-head-sub-title {
    font-size: 19px;
  }
}

/* 参加特典・企画 見出し横の装飾線 (画像線・紫線とも) は不要のため非表示 */
#home .benefits-contnets-title-inner::before,
#home .benefits-contnets-title-inner::after {
  display: none !important;
}

/* 旧・番号タブ非表示 (カード内バッジに移行) */
#home .benefits-number-list-text {
  display: none !important;
}

/* 特典/企画カード内バッジ行 */
#home .benefits-head-badges {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 8px;
}
#home .benefits-type-pill {
  background: none;
  border-left: 3px solid #00144c;
  border-radius: 0;
  color: #00144c;
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.3;
  padding: 0 0 0 7px;
}
#home .benefits-day-pill {
  border-radius: 4px;
  color: #fff;
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  padding: 2px 10px;
}
#home .benefits-day-pill--day01 { background: var(--gradient-day01); }
#home .benefits-day-pill--day02 { background: var(--gradient-day02); }

/* フロアガイド: 縦長マップは原寸直貼りせず、コンパクトなサムネ→別タブで拡大 */
#home #exhibitionmap .floormap-thumb {
  position: relative;
  display: block;
  width: 100%;
  max-width: 320px;
  margin: 20px auto 0;
  border: 1px solid rgba(0, 20, 76, 0.12);
  border-radius: 10px;
  overflow: hidden;
  background: #f3f2f7;
  box-shadow: 0 4px 16px rgba(0, 20, 76, 0.08);
  transition: transform .18s ease, box-shadow .18s ease;
}
#home #exhibitionmap .floormap-thumb:hover,
#home #exhibitionmap .floormap-thumb:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0, 20, 76, 0.16);
}
#home #exhibitionmap .floormap-thumb img {
  display: block;
  width: 100%;
  height: auto;
}
#home #exhibitionmap .floormap-thumb__hint {
  position: absolute;
  right: 10px;
  bottom: 10px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 11px;
  font-size: 12px;
  font-weight: 700;
  color: #fff;
  background: rgba(0, 20, 76, 0.82);
  border-radius: 999px;
  backdrop-filter: blur(2px);
}
#home #exhibitionmap .floormap-thumb__hint svg {
  flex: none;
}
#home #exhibitionmap {
  margin-bottom: 48px !important;
}

/* 特別ゲスト調整中の案内: 上に Coming Soon (gotham italic・KV紫) */
#home .pickup-special-guest-notice .coming-soon-label {
  display: block;
  font-family: "gotham", sans-serif;
  font-style: italic;
  font-weight: 800;
  font-size: 2em;
  line-height: 1.2;
  margin-bottom: 0.6em;
  color: #6a4fd0; /* B: 紫 #7d68d9(4.33) を 5.77 に */
}

/* ============================================================
 * セクション見出し 一括中央寄せ
 * day01/day02（日付バナー）・event-overview（表形式）は除外
 * ============================================================ */
#home .pickup-special-guest-title,
#home .merit-contnets-title,
#home .benefits-contnets-title,
#home .sponsors-contnets-title,
#home .sponsors-contnets-intro-text,
#home .past-events-contnets-title,
#home .news-contnets-title,
#home .faq-contnets-title,
#home .faq-contnets-intor-text {
  text-align: center !important;
}

/* past-events見出し: スティッキー追従と背景ボックスを無効化 */
#home .past-events-contnets-title {
  position: static !important;
  background: transparent !important;
  padding: 0 0 20px !important;
}
/* past-events セクション: 上パディングを詰める */
#home #past.page-section {
  padding-top: 60px !important;
}
#home .bg-gray {
  padding-top: 0 !important;
}

/* セクション見出し: merit / benefits を 36px に揃える */
#home .merit-contnets-title,
#home .benefits-contnets-title {
  font-size: 36px !important;
  word-break: keep-all; /* 各文字 span 間での改行を防ぐ */
}
/* benefits 見出し: inline color を無効化して紺に統一 */
#home .benefits-contnets-title-inner span {
  color: #00144c !important;
}
/* 参加特典・企画 見出し下の補足注記 */
#home .benefits-contnets-title-note {
  text-align: center;
  font-size: 13px;
  color: #23335f;
  margin-top: 8px;
}
/* メリットカード間の縦線装飾を非表示 */
#home .merit-item-card::after {
  display: none !important;
}
/* メリットカード本文: 太字にマーカーハイライト（下線ではなく背景色） */
#home .merit-list-item .merit-item-card-body strong {
  color: #00144c !important;
  padding: 0 2px;
}
#home .merit-list-item:nth-child(1) .merit-item-card-body strong {
  background: linear-gradient(transparent 52%, rgba(211, 88, 192, 0.28) 52%);
}
#home .merit-list-item:nth-child(2) .merit-item-card-body strong {
  background: linear-gradient(transparent 52%, rgba(46, 123, 255, 0.28) 52%);
}
#home .merit-list-item:nth-child(3) .merit-item-card-body strong {
  background: linear-gradient(transparent 52%, rgba(246, 137, 83, 0.28) 52%);
}
/* 特典・企画(#benefits)カードの本文強調: メリットカードと同様 紺太字＋薄いカラーマーカーに統一
   (見出しのDAYピル・リンクは font-weight-bold を持たないため対象外) */
#home #benefits .benefits-item-card-body .text-day01.font-weight-bold,
#home #benefits .benefits-item-card-body .text-day02.font-weight-bold {
  color: #00144c !important;
  padding: 0 2px;
}
#home #benefits .benefits-item-card-body .text-day01.font-weight-bold {
  background: linear-gradient(transparent 52%, rgba(46, 123, 255, 0.28) 52%);
}
#home #benefits .benefits-item-card-body .text-day02.font-weight-bold {
  background: linear-gradient(transparent 52%, rgba(246, 137, 83, 0.28) 52%);
}

/* 特典・企画(#benefits)カードの画像枠を全カードで統一する。
   イラスト(SVG・透過)と写真(jpg・密な長方形)が混在しても「意図的」に見えるよう、
   ① 同一比率(8:5・現状レンダリング 280×175 と同値=CLS非発生) ② 角丸(カード10pxに合わせる)
   ③ 淡いステージ背景(白カードと差をつけ両メディアを同じ土台に乗せる) ④ 中央寄せ、を揃える。
   object-fit:contain でイラストは見切れず、写真も比率ほぼ一致でフィット。 */
#home #benefits .benefits-item-card-img {
  aspect-ratio: 8 / 5;
  border-radius: 10px;
  overflow: hidden;
  background: #eef0f7;
  display: flex;
  align-items: center;
  justify-content: center;
}
#home #benefits .benefits-item-card-img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
/* コーヒー受け取り(benefits_img_08)はイラストを縦中央でなく枠下端にそろえる
   (拡大・トリミングはせず contain のまま、余白は上側に寄せる)。 */
#home #benefits .benefits-item-card-img img[src*="benefits_img_08"] {
  object-position: center bottom;
}
/* ブースツアー(benefits_img_07)はアセットの周囲余白が広く図が小さく見えるため、
   枠内で少し拡大(周囲の余白分のみクリップ=人物は見切れない)。 */
#home #benefits .benefits-item-card-img img[src*="benefits_img_07"] {
  transform: scale(1.2);
}
/* 特典1・特典2(benefits_img_01/02)はアセットの周囲余白が狭く図が枠ギリギリのため、
   枠内で少し縮小して上下左右に余裕を持たせる。 */
#home #benefits .benefits-item-card-img img[src*="benefits_img_01"],
#home #benefits .benefits-item-card-img img[src*="benefits_img_02"] {
  transform: scale(0.85);
}

/* セッション一覧: 各タイトルの変な位置での改行を防ぐ */
#channel .day01-contnets-title,
#channel .day02-contnets-title,
#channel .session-time-title,
#channel .event-overview-contnets-title {
  word-break: keep-all;
}
#channel .day-session-pickup-block-title {
  font-size: 22px !important;
  line-height: 1.5 !important;
  overflow-wrap: break-word;
}



/* 旧紺背景用の白テキスト → ライト背景化に伴い濃紺に反転 */
.bg-primary .lp-cta-note {
  color: #23335f;
}
/* bg-primary 上の見出し・本文テキストを濃紺に統一 */
.page-section.bg-primary .benefits-contnets-title,
.page-section.bg-primary .faq-contnets-title,
.page-section.bg-primary .faq-contnets-intor-text,
.page-section.bg-primary h2,
.page-section.bg-primary h3,
.page-section.bg-primary p {
  color: #00144c;
}

/* ご参加メリットのカード: 「詳細はこちら」ボタンを KV 紫の単色に */
#home .merit-item-card .btn-detail-common-01 {
  color: #6a4fd0 !important; /* B: 紫リンク #7d68d9(4.33) を 5.77 に */
}
#home .merit-item-card .btn-detail-common-01::after {
  background: #7d68d9 !important;
}

/* メリットカード: タイトルの DAY ラベルを背景色付きピルに */
#home .merit-item-card-head .merit-day-pill {
  display: inline-block;
  padding: 2px 12px;
  border-radius: 6px;
  color: #fff;
  font-size: 0.8em;
  line-height: 1.45;
  vertical-align: 0.12em;
  margin-right: 8px;
  font-weight: 700;
}
#home .merit-day-pill--day01 {
  background: var(--gradient-day01);
}
#home .merit-day-pill--day02 {
  background: var(--gradient-day02);
}
#home .merit-day-pill--both {
  background: #d358c0;
}

/* メリットカードのタイトル文字色: カードごとにテーマカラー */
#home .merit-list-item:nth-child(1) .merit-item-card-head {
  color: var(--color-day01-text); /* 豪華参加特典・ = 青 */
}
#home .merit-list-item:nth-child(1) .merit-item-card-head .text-primary {
  color: var(--color-day02-text) !important; /* お楽しみ企画 = オレンジ */
}
#home .merit-list-item:nth-child(2) .merit-item-card-head {
  color: var(--color-day01-text);
}
#home .merit-list-item:nth-child(3) .merit-item-card-head {
  color: var(--color-day02-text);
}


/* ============================================================
 * メリットカード: C案リファクタリング (左ボーダーライン型)
 * ============================================================ */
/* セクションタイトル: ワードアート装飾を廃止し、ライト背景用に濃紺 */
#home .merit-contnets-title {
  color: #0b132b !important;
}
#home .merit-contnets-title span[style] {
  color: inherit !important;
}

/* カード本体: 左ボーダー + シャドウ + 白背景 */
#home .merit-item-card {
  background: #fff !important;
  border: none !important;
  border-left: 4px solid #ccc !important;
  border-radius: 0 12px 12px 0 !important;
  box-shadow: 0 4px 16px rgba(0, 20, 76, 0.09) !important;
}
#home .merit-item-card:hover {
  transform: translateY(-3px) !important;
}
/* 両日=マゼンタ / DAY01=ブルー / DAY02=オレンジ */
#home .merit-list-item:nth-child(1) .merit-item-card:hover {
  box-shadow: 0 8px 28px rgba(211, 88, 192, 0.32) !important;
}
#home .merit-list-item:nth-child(2) .merit-item-card:hover {
  box-shadow: 0 8px 28px rgba(30, 100, 255, 0.28) !important;
}
#home .merit-list-item:nth-child(3) .merit-item-card:hover {
  box-shadow: 0 8px 28px rgba(255, 105, 15, 0.28) !important;
}
/* カード1（両日）: ピンク */
#home .merit-list-item:nth-child(1) .merit-item-card {
  border-left-color: #d358c0 !important;
}
/* カード2（DAY01）: ブルー */
#home .merit-list-item:nth-child(2) .merit-item-card {
  border-left-color: #2e7bff !important;
}
/* カード3（DAY02）: オレンジ */
#home .merit-list-item:nth-child(3) .merit-item-card {
  border-left-color: #f68953 !important;
}

/* DAYバッジ: 角丸四角形（カプセルを廃止） */
#home .merit-item-card-head .merit-day-pill {
  border-radius: 4px !important;
}

/* タイトル: 全カード濃紺統一（カード別カラーを廃止） */
#home .merit-list-item .merit-item-card-head {
  color: #00144c !important;
}
/* nth-child の高い詳細度に対抗するため各カードを明示的に上書き */
#home .merit-list-item:nth-child(1) .merit-item-card-head,
#home .merit-list-item:nth-child(2) .merit-item-card-head,
#home .merit-list-item:nth-child(3) .merit-item-card-head {
  color: #00144c !important;
}
#home .merit-list-item:nth-child(1) .merit-item-card-head .text-primary,
#home .merit-list-item:nth-child(2) .merit-item-card-head .text-primary,
#home .merit-list-item:nth-child(3) .merit-item-card-head .text-primary {
  color: #00144c !important;
}

/* 本文: 濃紺ベース / 強調strong色を廃止してboldのみで表現 */
#home .merit-item-card-body-text {
  color: var(--text-body) !important;
}
#home .merit-item-card-body-text strong {
  color: #00144c !important;
  font-weight: 700;
}

/* イラスト: カード幅に合わせて縮小、最大高さを抑制 */
#home .merit-item-card-img {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
}
#home .merit-item-card-img img {
  max-height: 180px !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
}

/* 詳細はこちら: テキストリンク化（ボックス廃止、矢印付き） */
#home .merit-item-card .btn-detail-common-01 {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  color: #6a4fd0 !important; /* B: 紫リンク #7d68d9(4.33) を 5.77 に */
  font-size: 14px !important;
  font-weight: 600 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  letter-spacing: 0.03em !important;
}
#home .merit-item-card .btn-detail-common-01::after {
  content: " →" !important;
  background: none !important;
  width: auto !important;
  height: auto !important;
  position: static !important;
  display: inline !important;
  font-weight: 400 !important;
  font-size: 15px !important;
  vertical-align: middle !important;
  line-height: 1 !important;
  transform: none !important;
}
/* ティザー時: ボタンエリアが空・非表示の場合は余白ごと消す */
#home .merit-item-card-btn:empty { display: none !important; }
#home .merit-item-card-btn:has(> .d-none) { display: none !important; }
/* ===================================================
 * メリットセクション: ライトグラデーション + キューブ透かし
 * =================================================== */
#home #merit.page-section {
  background: #fff !important;
  position: relative;
  overflow: hidden;
}
/* キューブ柄: 上下でフェードイン/アウト */
#home #merit.page-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url('/assets/img/common/cube-wireframe.svg');
  background-size: 900px auto;
  background-repeat: repeat;
  opacity: 0.08;
  pointer-events: none;
  z-index: 0;
  -webkit-mask-image: linear-gradient(to bottom, black 0%, black 86%, transparent 100%);
  mask-image: linear-gradient(to bottom, black 0%, black 86%, transparent 100%);
}
/* ::after カラーオーバーレイ削除（カード hover 光彩に移行） */
/* カード等のコンテンツは前面に */
#home #merit.page-section > * {
  position: relative;
  z-index: 1;
}

/* TOP ヒーロー DAY01: オンデマンド配信の追記 (小さめ) */
#home .hero-wrap .kv-ondemand {
  margin-top: 6px;
  font-size: 12px;
  font-weight: 600;
  color: #fff;
  line-height: 1.45;
  text-shadow: 0 1px 6px rgba(0, 20, 76, .6), 0 0 3px rgba(0, 20, 76, .5);
}
#home .hero-wrap .kv-ondemand .kv-ondemand-label {
  font-weight: 700;
}

/* A案 時間割フローティングアイコンの紫をサイトの青に。普段は非表示だが、
   表示されたときの一貫性のため (#188 で絞り込み適用ボタン側は死蔵につき撤去済み)。 */
#channel .ico-floating-schedule {
  background-color: var(--color-day01) !important;
}

/* スポンサー一覧: ペールグレー + SVGキューブ透かし (cube_bg.webp廃止) */
#sponsor .bg-sponsor {
  background-color: #f4f6fb !important;
  background-image: none !important;
  position: relative;
  overflow: hidden;
}
#sponsor .bg-sponsor::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url('/assets/img/common/cube-wireframe.svg');
  background-size: 900px auto;
  background-repeat: repeat;
  opacity: 0.04;
  pointer-events: none;
  z-index: 0;
}
#sponsor .bg-sponsor > * {
  position: relative;
  z-index: 1;
}

/* Task 1-2: ロゴボタンを白カード化し背景テクスチャから完全分離 */
#sponsor .sponsor-slot--btn {
  background-color: #ffffff;
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

/* ============================================================
   DAY02出展カテゴリ別: ロゴ+キャッチコピー+詳細ボタンのカード型
   (スポンサーランク別はロゴのみのまま。カテゴリビュー限定で適用)
   ============================================================ */
/* カテゴリグリッド: 全カード固定幅(200px)・左寄せ。カテゴリ間でカードサイズを統一 */
#sponsor-category-wall .sponsor-grid--gold {
  grid-template-columns: repeat(auto-fill, 200px);
  justify-content: start;
  gap: 20px 20px;
  align-items: stretch;
}
/* カード本体 */
#sponsor-category-wall .sponsor-slot--card {
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  gap: 14px;
  width: 100%;
  max-width: 340px;
  height: 100%;
  padding: 22px 18px 20px;
  background: #fff;
  border: 1px solid #eaecf2;
  border-radius: 14px;
  box-shadow: 0 2px 10px rgba(0, 20, 76, 0.05);
  transition: box-shadow 0.18s, transform 0.18s, border-color 0.18s;
}
/* ホバー光彩: DAY02(オレンジ)コンテンツのため枠線・影をオレンジ系に */
#sponsor-category-wall .sponsor-slot--card:hover {
  box-shadow: 0 8px 24px rgba(232, 98, 12, 0.18);
  transform: translateY(-3px);
  border-color: rgba(232, 98, 12, 0.45);
}
/* ロゴ領域: 高さを揃える */
#sponsor-category-wall .sponsor-slot--card .sponsor-slot__logo {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 60px;
  margin-top: 4px;
}
#sponsor-category-wall .sponsor-slot--card .sponsor-slot__logo img {
  width: auto;
  /* 旧 max-width:82% (≈144px) は横長ロゴの箱幅(≤165px)を圧縮し optical 正規化(--lgh)の
     狙いより縮めていたため 100% に緩和。ink幅は式側の上限(132px)が余白を担保する */
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
/* キャッチコピー: 左寄せ・最大2行で打ち切り (全カードで2行分の高さを確保しCTA位置を揃える)。
   ロゴとの間に細い罫線を引き、ブランドと説明文を視覚的に分離 */
#sponsor-category-wall .sponsor-slot--card .sponsor-catchcopy {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  width: 100%;
  min-height: calc(1.55em * 2);
  padding-top: 12px;
  border-top: 1px solid #eaecf2;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.55;
  color: #444;
  text-align: left;
  white-space: normal;
}
/* 「詳細を見る ＋」: ブースカードと同様の右寄せテキストCTA。
   ＋ = ポップアップを開くサイン (↗=別ページ遷移 と区別。サイト共通の規約に準拠) */
#sponsor-category-wall .sponsor-slot--card .sponsor-card-cta {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  width: 100%;
  margin-top: auto;
  padding: 0;
  border: none;
  background: none;
  font-size: 11px;
  font-weight: 700;
  color: #4f33a6;
}
#sponsor-category-wall .sponsor-slot--card .sponsor-card-cta::after {
  content: "＋";
  margin-left: 4px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
}
@media (max-width: 767px) {
  #sponsor-category-wall .sponsor-grid--gold {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }
  #sponsor-category-wall .sponsor-slot--card {
    padding: 16px 12px 16px;
    gap: 10px;
  }
  #sponsor-category-wall .sponsor-slot--card .sponsor-slot__logo { height: 44px; }
  /* モバイルは11px: 全角20文字が2行に収まる幅(約117px content) */
  #sponsor-category-wall .sponsor-slot--card .sponsor-catchcopy { font-size: 11px; }
  /* 余り(孤立)カードの全幅化を無効化し、全カードを同サイズに揃える */
  #sponsor-category-wall .sponsor-grid--gold .sponsor-slot--card:last-child:nth-child(odd) {
    grid-column: auto;
    justify-self: stretch;
    width: 100%;
  }
}

/* 注記「※スポンサーは順次追加〜」を紺に (明るい背景で白文字が読めないため) */
#sponsor .text-note-white {
  color: #00144c;
}

/* ヘッダー: 背景を白1色に (キービジュアルはこのヘッダーの下から表示される) */
.site-header {
  background-color: #fff;
}

/* ヘッダーとサブナビ帯の間に区切り線 (左→右のグラデーション) */
.site-header-foot {
  position: relative;
}
.site-header-foot::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(to right, #7b61ff 0%, #ff61c7 50%, #2ee0ff 100%);
  z-index: 4;
}

/* 会社ロゴ(NETWORLD)とイベントロゴ(Networld Wiz)を横並び + 間に細い縦線 */
.site-header__logo {
  align-items: center;
  gap: 60px; /* 会社ロゴ右〜縦線、縦線〜Wizロゴ が各30px(左スペースと同じ)になる */
}
.header-corp-logo img {
  height: 26px;
  width: auto;
  display: block;
}
.header-corp-logo {
  position: relative;
}
.header-corp-logo::after {
  content: "";
  position: absolute;
  right: -30px; /* 会社ロゴ右端から30px右 = gapの中央に縦線 */
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 34px;
  background-color: #d4d4d8;
}

/* ============================================================
 * #past ライトボックス
 * ============================================================ */
.past-lb-trigger {
  display: block;
  cursor: zoom-in;
}
#past-lightbox {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, .96);
  z-index: 9000;
  align-items: center;
  justify-content: center;
  cursor: zoom-out;
}
#past-lightbox.is-open {
  display: flex;
}
#past-lightbox img {
  max-width: 90vw;
  max-height: 90vh;
  object-fit: contain;
  border-radius: 4px;
  pointer-events: none;
  box-shadow: 0 8px 40px rgba(0, 0, 0, .5);
}
#past-lb-close {
  position: absolute;
  top: 16px;
  right: 24px;
  color: #fff;
  font-size: 44px;
  font-weight: 300;
  line-height: 1;
  cursor: pointer;
  user-select: none;
  transition: opacity .2s;
}
#past-lb-close:hover {
  opacity: .6;
}

/* ============================================================
 * FAQ セクション: ホワイトアコーディオン UI
 * ============================================================ */
/* リスト幅を制限して中央寄せ */
#home .faq-contnets-wrap .faq-contnets-list {
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
}

/* アイテム: カード枠として機能させる */
#home .faq-contnets-wrap .faq-contnets-list .faq-item {
  margin-bottom: 12px !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  box-shadow: 0 2px 8px rgba(0, 20, 76, 0.08) !important;
  border: 1px solid #d4d8e0 !important; /* B: 細枠の視認性を少しだけ上げる(重くしない範囲) */
}
#home .faq-contnets-wrap .faq-contnets-list .faq-item:last-child {
  margin-bottom: 0 !important;
}

/* Q 帯: 黒背景廃止 → 白背景・濃紺テキスト */
#home .faq-contnets-wrap .faq-contnets-list .faq-header {
  background: #ffffff !important;
  color: #00144c !important;
  border-radius: 0 !important;
  padding: 16px 20px !important;
  cursor: pointer;
}

/* Q アイコン: マゼンタアクセント */
#home .faq-contnets-wrap .faq-contnets-list .faq-header::before {
  color: #d358c0 !important;
  font-size: 32px !important;
  margin-right: 14px !important;
  line-height: 1 !important;
  flex-shrink: 0 !important;
}

/* 質問テキスト */
#home .faq-contnets-wrap .faq-contnets-list .faq-header .title {
  color: #00144c !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  line-height: 1.55 !important;
}

/* A エリア: 薄グレー背景・ダークグレーテキスト */
#home .faq-contnets-wrap .faq-contnets-list .faq-body {
  background-color: #f8f9fa !important;
  border-top: 1px solid #d4d8e0 !important; /* B: 細枠の視認性を少しだけ上げる(重くしない範囲) */
  border-radius: 0 !important;
  padding: 16px 20px 16px 66px !important;
  font-size: 15px !important;
  line-height: 1.8 !important;
  color: var(--text-body) !important;
}

@media only screen and (min-width: 768px) {
  #home .faq-contnets-wrap .faq-contnets-list .faq-header {
    padding: 18px 28px !important;
  }
  #home .faq-contnets-wrap .faq-contnets-list .faq-header::before {
    font-size: 36px !important;
    margin-right: 18px !important;
  }
  #home .faq-contnets-wrap .faq-contnets-list .faq-header .title {
    font-size: 17px !important;
  }
  #home .faq-contnets-wrap .faq-contnets-list .faq-body {
    padding: 18px 28px 18px 82px !important;
    font-size: 15px !important;
    line-height: 1.8 !important;
  }
}

/* ── FAQ アコーディオン (#89): cursor:pointer に実挙動を付与 ──
   booth-cat-accordion と同方式の max-height トグル + .active(JS で aria-expanded も付与)。
   デフォルト閉(質問だけ一覧でき、ヘッダクリックで回答を展開)。
   base の max-height は !important を付けない → JS のインライン max-height(非 important)が勝つ。
   開閉インジケーターは Q アイコン(::before)と衝突しないよう ::after のシェブロンで表現。 */
#home .faq-contnets-wrap .faq-contnets-list .faq-header {
  padding-right: 46px !important;   /* インジケーター用の余白 */
  -webkit-user-select: none !important;
  user-select: none !important;
}
#home .faq-contnets-wrap .faq-contnets-list .faq-header::after {
  content: "";
  position: absolute;
  right: 20px;
  top: 50%;
  width: 9px;
  height: 9px;
  border-right: 2px solid #d358c0;
  border-bottom: 2px solid #d358c0;
  transform: translateY(-70%) rotate(45deg);   /* 閉=下向き */
  transition: transform .3s ease;
}
#home .faq-contnets-wrap .faq-contnets-list .faq-header.active::after {
  transform: translateY(-30%) rotate(225deg);  /* 開=上向き */
}
#home .faq-contnets-wrap .faq-contnets-list .faq-body {
  max-height: 0;
  overflow: hidden;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  border-top-width: 0 !important;
  transition: max-height .35s ease;
}
#home .faq-contnets-wrap .faq-contnets-list .faq-header.active + .faq-body {
  padding-top: 16px !important;
  padding-bottom: 16px !important;
  border-top-width: 1px !important;
}
@media only screen and (min-width: 768px) {
  #home .faq-contnets-wrap .faq-contnets-list .faq-header {
    padding-right: 56px !important;
  }
  #home .faq-contnets-wrap .faq-contnets-list .faq-header::after {
    right: 28px;
    width: 11px;
    height: 11px;
  }
  #home .faq-contnets-wrap .faq-contnets-list .faq-header.active + .faq-body {
    padding-top: 18px !important;
    padding-bottom: 18px !important;
  }
}

/* Shared session modal layout */
.modal-channel .modal-channel__dialog {
  overflow: hidden !important;
}
.modal-channel .modal-channel__dialog > .modal-channel__content {
  max-height: calc(100dvh - 24px) !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain !important;
  scrollbar-gutter: stable !important;
  /* 上下padding(30px)を0に。固定ヘッダー上/固定CTA下に帯が残り本文が貫通するのを防ぐ
     (ヘッダーは最上部・CTAは最下部までぴったり固定。未スクロール時の余白は container-box 側で確保) */
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
@media (min-width: 768px) {
  .modal-channel__dialog {
    max-width: 1080px !important;
    min-height: 80vh !important;
    max-height: calc(100dvh - 24px) !important;
  }
}
/* モバイル: スポンサーページのポップアップ同様、四辺に余白を付けて「ポップアップ」と分かるようにする
   (従来は全画面・角丸なしで LP のように見えていた)。背景の暗幕が四辺に覗く形にする */
@media (max-width: 767px) {
  .modal-channel.is-open {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 12px;
    box-sizing: border-box;
  }
  .modal-channel .modal-channel__dialog {
    width: 100%;
    height: auto !important;
    max-height: calc(100dvh - 24px) !important;
    margin: 0 !important;
    top: auto !important;
    transform: none !important;
    border-radius: 16px !important;
    overflow: hidden !important;
  }
}
.modal-channel__content .m-channel-contents {
  padding: 0 !important;
  max-height: none !important;
  overflow: visible !important;
}
.modal-channel__content .m-channel-contents .container-box {
  padding: 28px 32px 88px !important;
}
@media (min-width: 768px) {
  .modal-channel__content .m-channel-contents .m-channel-contents-card {
    display: flex !important;
    flex-direction: row-reverse !important;
    flex-wrap: nowrap !important;
    gap: 0 !important;
    align-items: flex-start !important;
  }
  .modal-channel__content .m-channel-contents .m-channel-contents-card-img-block {
    width: 340px !important;
    max-width: 340px !important;
    border-left: 1px solid #eee !important;
    padding-left: 28px !important;
    flex-shrink: 0 !important;
    margin: 0 !important;
  }
  .modal-channel__content .m-channel-contents .m-channel-contents-card-img-block::before {
    color: #9b8fc8;
    content: "登壇者";
    display: block;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.1em;
    margin-bottom: 14px;
  }
  .modal-channel__content .m-channel-contents .m-channel-contents-card-body {
    flex: 1 !important;
    width: auto !important;
    padding-left: 0 !important;
    padding-right: 32px !important;
    min-width: 0 !important;
  }
}
.modal-channel__content .m-channel-contents .m-channel-contents-card-img-list {
  grid-template-columns: 1fr !important;
  gap: 18px !important;
}
/* 登壇者枠: デスクトップも SP と同じ「左=写真 / 右=社名・役職・氏名」の横組みへ
   (木全指示 2026-08-10)。写真は 82px → 110px (約1.34倍)。SP は下の media で 60px を維持。 */
.modal-channel__content .m-channel-contents .m-channel-contents-card-img-item {
  align-items: center !important;
  column-gap: 16px !important;
  display: grid !important;
  grid-template-columns: 110px minmax(0, 1fr) !important;
  text-align: left !important;
}
.modal-channel__content .m-channel-contents .user-img-inner {
  width: 110px !important;
  height: 110px !important;
  max-width: 110px !important;
  border-radius: 6px !important;
  overflow: hidden !important;
  margin: 0 !important;
  display: block !important;
}
.modal-channel__content .m-channel-contents .user-img-inner img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}
/* 登壇者写真を四角(キューブテーマ)に。仮画像は円形素材のため四角シルエット仮画像(枠背景)を表示(差し替え時 is-placeholder を外す)。全ピックアップブロック/セッションモーダル共通 */
#home #day02 .user-img-inner,
#home #day01 .day-session-pickup-block .user-img-inner,
#channel .day-session-pickup-block .user-img-inner,
.modal-channel__content .m-channel-contents .user-img-inner {
  border-radius: 6px !important;
  overflow: hidden !important;
  background: #e6ecec url('/assets/img/user/placeholder-speaker.png') center / cover no-repeat !important;
}
#home #day02 .user-img-inner img.is-placeholder,
#home #day01 .day-session-pickup-block .user-img-inner img.is-placeholder,
#channel .day-session-pickup-block .user-img-inner img.is-placeholder,
.modal-channel__content .m-channel-contents .user-img-inner img.is-placeholder {
  visibility: hidden !important;
}
.modal-channel__content .m-channel-contents .user-img-text {
  font-size: 15px !important; /* session.html のインライン fork (15px/1.5) と揃える */
  text-align: left !important;
  line-height: 1.5 !important;
  overflow-wrap: anywhere !important;
}
.modal-channel__content .m-channel-contents .user-img-text .font-sm {
  font-size: 11px !important;
  color: #666 !important;
  display: block !important;
  margin-bottom: 2px !important;
  /* 肩書は半角スペース区切りを折り返し位置にする (木全指示 2026-08-10)。
     keep-all で日本語の途中改行を止め、スペースを優先的な改行候補にする。
     overflow-wrap は保険として残す — 1 語がカラム幅を超えるときだけ途中で折る
     (例「技術本部ソリューションアーキテクト部」)。これが無いと はみ出す。 */
  word-break: keep-all !important;
  overflow-wrap: anywhere !important;
}
/* モーダル左上の企業ロゴ (#196・木全指示: Pickup カード表はロゴ無し / モーダルには入れる)。
   カード表(セッションカード)はロゴを出さない Pickup 用に、詳細モーダルで登壇企業を明示する。 */
.modal-channel__content .m-channel-contents .m-channel-modal-logo {
  margin: 0 0 16px !important;
  text-align: left !important;
}
.modal-channel__content .m-channel-contents .m-channel-modal-logo img {
  width: auto !important;
  height: auto !important;
  max-height: 52px !important;
  max-width: 180px !important;
}
.modal-channel__content .m-channel-contents .m-channel-contents-card-title {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 8px !important;
  border-bottom: none !important;
  margin-bottom: 8px !important;
  padding-bottom: 0 !important;
  font-size: 14px !important;
}
.modal-channel__content .m-channel-contents .m-channel-contents-card-title .lead-text {
  background: none !important;
  color: inherit !important;
  padding: 0 !important;
  border-radius: 0 !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  width: auto !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
}
.modal-channel__content .m-channel-contents .m-channel-contents-card-title .lead-text-time {
  background: #f0edf8 !important;
  color: #4f33a6 !important;
  padding: 5px 14px !important;
  border-radius: 99px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  white-space: nowrap !important;
}
.modal-channel__content .m-channel-contents .m-channel-contents-card-title .lead-text-track {
  font-size: 13px !important;
  font-weight: 700 !important;
  color: #9b8fc8 !important;
}
.modal-channel__content .m-channel-contents .m-channel-contents-card-title .channel-text {
  background: #4f33a6 !important;
  color: #fff !important;
  padding: 5px 12px !important;
  border-radius: 99px !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  width: auto !important;
  border-left: none !important;
  margin-left: 0 !important;
  display: inline-block !important;
}
.modal-channel__content .m-channel-contents .m-channel-contents-card-cat-list {
  margin-top: 8px !important;
  margin-bottom: 16px !important;
  gap: 8px !important;
}
.modal-channel__content .m-channel-contents .m-channel-contents-card-cat-item {
  background: #eef5ff !important;
  color: #1255c2 !important;
  border: 1px solid rgba(46, 123, 255, 0.22) !important;
  font-size: 12px !important;
  padding: 4px 12px !important;
}
.modal-channel__content .m-channel-contents .m-channel-contents-card-em-text-list {
  font-size: 20px !important;
  font-weight: 800 !important;
  color: #1a1533 !important;
  margin-bottom: 16px !important;
}
.modal-channel__content .m-channel-contents .m-channel-contents-card-text {
  font-size: 16px !important;
  line-height: 1.85 !important;
  color: var(--text-body) !important;
  border-left: 3px solid #e0daf0 !important;
  padding-left: 14px !important;
  margin-top: 4px !important;
}
@media (max-width: 767px) {
  .modal-channel__content .m-channel-contents .container-box {
    padding: 24px 28px 28px !important;
  }
  .modal-channel__content .m-channel-contents .m-channel-contents-card {
    display: flex !important;
    flex-direction: column !important;
  }
  .modal-channel__content .m-channel-contents .m-channel-contents-card-body {
    order: 1 !important;
  }
  .modal-channel__content .m-channel-contents .m-channel-contents-card-img-block {
    border-top: 1px solid #eee !important;
    margin-top: 26px !important;
    order: 2 !important;
    padding-top: 24px !important;
  }
  .modal-channel__content .m-channel-contents .m-channel-contents-card-img-block::before {
    color: #9b8fc8;
    content: "登壇者";
    display: block;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.1em;
    margin-bottom: 14px;
  }
  .modal-channel__content .m-channel-contents .m-channel-contents-card-img-list {
    gap: 22px !important;
  }
  .modal-channel__content .m-channel-contents .m-channel-contents-card-img-item {
    align-items: center !important;
    column-gap: 14px !important;
    display: grid !important;
    grid-template-columns: 60px minmax(0, 1fr) !important;
    text-align: left !important;
  }
  .modal-channel__content .m-channel-contents .user-img-inner {
    height: 60px !important;
    margin: 0 !important;
    max-width: 60px !important;
    width: 60px !important;
  }
  .modal-channel__content .m-channel-contents .user-img-text {
    color: #1a1533 !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1.45 !important;
    text-align: left !important;
  }
  .modal-channel__content .m-channel-contents .user-img-text .font-sm {
    color: #666 !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1.45 !important;
  }
}
.modal-channel .modal-channel__close {
  position: absolute !important;
  background: rgba(26, 21, 51, 0.72) !important;
  border-radius: 50% !important;
  width: 38px !important;
  height: 38px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  top: 16px !important;
  right: 16px !important;
  transition: background 0.15s !important;
}
.modal-channel .modal-channel__close:hover {
  background: rgba(26, 21, 51, 0.92) !important;
}
.modal-channel .modal-channel__close img {
  width: 18px !important;
  height: 18px !important;
}
.modal-channel__head-new ~ .m-channel-contents-card .m-channel-contents-card-title {
  display: none !important;
}
.modal-channel .btn-session-list-block {
  display: none !important;
}
/* スポンサーページのポップアップを正として: ロゴ左・社名右(長い場合は折返し二段)・メタは下段 */
.modal-channel__head-new {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 20px;
  border-bottom: 1px solid #eee;
  padding-bottom: 18px;
  margin-bottom: 24px;
  padding-right: 44px; /* 右上の閉じる×を避ける */
}
.modal-channel__head-logo {
  flex: 0 0 auto;
  width: 120px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
}
/* サイズは :root の単一の正を参照 (スポンサーモーダルと共通)。 */
/* 会社別の例外 (2026-08-07 復活・木全さん指摘)。**木全さんの指示なしに触らないこと。**
   モーダルは :root の上限 1 個だけで、カード側の ink 正規化 (--lgh) が効かない。そのため
   **透明/白の余白が無い素材だけ枠いっぱいまで伸び**、他社より一回り大きく見える。
   実測 (枠 120x44 内の絵柄の高さ): IBM 44px / ネットワールド 44px に対し、
   HPE 28.8px・Datadog 26.4px・MOTEX 25.2px・Dell 13.6px。
   これは 7/9 (#196) にセッション側から撤去した 6 社リストと同じ仕組み。ただし当時の
   「base 60px を一律 0.7 倍」だと base 44px の今は元々小さい社まで潰れるので、
   **余白ゼロの素材だけ**に絞る。31px = 当時の比率 (42/60) を今の 44px に当てた値。
   スポンサーモーダルを正とし、セッションモーダルにも同じ値が効くよう両セレクタに書く
   (#196 の「両モーダルで値をブレさせない」ルールは維持)。
   ※ ネットワールドは 2026-08-07 にカード用へ画像の白余白をトリミングした副作用で
     32.9 → 44px になった。カード側はトリミングで正しくなるが、モーダル側はここで戻す。 */
.sponsor-modal__logo[src*="square_logo_ibm"],
.modal-channel__head-logo img[src*="square_logo_ibm"],
.sponsor-modal__logo[src*="square_logo_networld_ps"],
.modal-channel__head-logo img[src*="square_logo_networld_ps"] {
  --modal-logo-max-h: 31px;
}
/* Lenovo は余白がごく僅か (実測 40px) で IBM ほどではないため控えめに 34px。 */
.sponsor-modal__logo[src*="square_logo_lenovo"],
.modal-channel__head-logo img[src*="square_logo_lenovo"] {
  --modal-logo-max-h: 34px;
}
/* MOTEX は**高さではなく幅で頭打ちになる**型。横長 (ar 3.8) なので既定枠 120x44 では
   幅 120px が先に効いて高さ 31.5px に決まり、塗り面積 1,430px² = 全 77 社の中央値 (965) の 1.5 倍。
   高さは平均的なのに面積で突出する。**この型は max-height を下げても何も変わらない**ので
   (44→36 にしても幅 120 が支配的で不変・実測済み)、max-width の方を 100px に絞る
   → 実測 100x26.3・面積 約 1,000 で中央値付近になる。
   カード側は --lgh: 31 で既に 1 割縮小済み (2026-07-10) のため、これはモーダル**だけ**の現象
   (木全さん指摘 2026-08-07)。7/9 に撤去された 6 社リストにも入っていた社。 */
.sponsor-modal__logo[src*="square_logo_motex"],
.modal-channel__head-logo img[src*="square_logo_motex"] {
  --modal-logo-max-w: 100px;
}
/* Virtuozzo も MOTEX と同じ「幅で頭打ち」型 (ar 2.89)。加えて納品素材が紺グラデ背景の**矩形**
   なので、枠いっぱいが色面になり他社のワードマークより一段大きく見える (既定枠で 120x41.6)。
   ロゴウォール側は sponsor-wall.css の --lgh を 57→33 にして揃えたので、モーダルも同じ考え方で
   **高さを他社の帯 (IBM 31 / HPE 28.5 / Datadog 26.6 / MOTEX 26.3) に合わせる**。
   幅が支配的なので max-width を 87px に絞る → 実測 87x30.1 (木全さん指示 2026-08-07)。
   ※ ベタ塗り矩形は塗り面積で揃えると極端に小さくなるため、面積ではなく高さで合わせている。 */
.sponsor-modal__logo[src*="square_logo_virtuozzo"],
.modal-channel__head-logo img[src*="square_logo_virtuozzo"] {
  --modal-logo-max-w: 87px;
}
/* マケプレブースは networld_ps と同一構成 (NETWORLD/罫線/サブタイトル) の余白ゼロ素材へ
   再クロップ済み (ar 2.31 ≒ PS 2.40)。IBM/PS と同じ「余白ゼロ例外 31px」を適用して
   PS と同じ見栄えにする (木全指示 2026-08-10)。カード側は sponsor-wall.css の --lgh 41 (PS 同値)。 */
.sponsor-modal__logo[src*="square_logo_networld_marketplace"],
.modal-channel__head-logo img[src*="square_logo_networld_marketplace"] {
  --modal-logo-max-h: 31px;
}
.modal-channel__head-logo img {
  max-height: var(--modal-logo-max-h);
  max-width: var(--modal-logo-max-w);
  width: auto;
  object-fit: contain;
  display: block;
}
.modal-channel__head-name {
  flex: 1 1 0;
  min-width: 0;
  font-size: 18px;
  font-weight: 800;
  color: #1a1533;
  line-height: 1.5;
}
.modal-channel__head-meta {
  flex: 0 0 100%; /* ロゴ・社名の下段へ回す */
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.sm-session-time {
  background: #f0edf8;
  border-radius: 6px;
  color: #4f33a6;
  display: inline-block;
  font-size: 13px;
  font-weight: 700;
  padding: 5px 14px;
}
.sm-session-day {
  background: #4f33a6;
  border-radius: 6px;
  color: #fff;
  display: inline-block;
  font-size: 12px;
  font-weight: 800;
  padding: 5px 12px;
}
.sm-session-channel {
  background: #fff;
  border: 1px solid #d8d0f2;
  border-radius: 6px;
  color: #4f33a6;
  display: inline-block;
  font-size: 12px;
  font-weight: 800;
  padding: 4px 11px;
}

/* Event top: balanced DAY01 session cards */
#home #day01 .session-view-list {
  display: grid !important;
  align-items: stretch !important;
  gap: 18px !important;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)) !important;
}
#home #day01 .session-view-item-card {
  display: grid !important;
  gap: 10px 16px !important;
  grid-template-areas:
    "logo time"
    "manufacturer manufacturer"
    "title title"
    "link link";
  grid-template-columns: minmax(112px, 34%) minmax(0, 1fr) !important;
  grid-template-rows: auto auto minmax(0, 1fr) auto !important;
  height: 100% !important;
  min-height: 220px !important;
  padding: 20px !important;
  position: relative !important;
}
#home #day01 .session-view-item-card-logo {
  align-self: start !important;
  grid-area: logo;
  margin: 0 !important;
  max-width: 132px !important;
  width: 100% !important;
}
/* セッションカードのロゴの見た目サイズを揃える (木全指示 2026-07-04・#11)。
   スポンサーページ「DAY02 出展カテゴリ別」ビューが調整済みの --lgh (unnowataru さんのインク面積
   正規化・カテゴリ実効値) で揃っているため、その値をそのまま流用する。各ロゴはファイル余白量が
   違うため固定高さでは揃わない。値は diamond/platinum=カテゴリ override / gold・silver=base
   (= カテゴリ別ビューと同スケール)。56px 枠内で縦中央寄せ。Coming Soon カードもロゴを見せるので同じ枠を適用
   (以前 :not(.is-session-comingsoon) で除外していたが、CH.1 等 全枠 pending のチャンネルだけ素の大きさに戻り
   不揃いになったため除外を撤去・2026-07-04)。
   ※ Everpure は余白過多の square 版から wide 版へ移行済。ネットワールド枠は NW_std (square_logo_networld)。
   将来 unnowataru さんの --lgh 最適化システムへ統合予定。 */
#home #day01 .session-view-item-card .session-view-item-card-logo,
#channel .session-view-item-card .session-view-item-card-logo {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  height: 56px !important;
  overflow: hidden;
}
#home #day01 .session-view-item-card .session-view-item-card-logo img,
#channel .session-view-item-card .session-view-item-card-logo img {
  width: auto !important;
  height: calc(var(--lgh, 44) * 1px) !important;
  max-width: 100% !important;
  max-height: 56px !important;
  object-fit: contain;
  margin: 0 !important;
}
/* 幅クランプ補正 (Codex GPT-5.5 xhigh 検証 2026-07-04): --lgh はスポンサーのスロット内容幅
   165px 前提の値のため、セッションのロゴ枠 (index=grid minmax(112px,34%)・上限132px /
   session=160px) では横長ロゴ (networld/amd/arcserve 等・自然幅≈153-155px) が max-width:100% で
   幅クランプされ -13〜15% 縮んで不揃いに戻る。枠をコンテナ化し scale=min(1, 実枠幅/165) で
   全ロゴを同率縮小 (sponsor-wall.css の中間幅対応と同パターン)。実枠が 123px/112px に縮んでも
   比率が保たれる。sponsor 側の t3 制約 (fileAr×lgh≤165) により縮小後は幅クランプが構造的に
   発生しない。非対応ブラウザは上の固定 px + クランプに fallback。 */
@supports (container-type: inline-size) {
  #home #day01 .session-view-item-card .session-view-item-card-logo,
  #channel .session-view-item-card .session-view-item-card-logo {
    container-type: inline-size;
  }
  #home #day01 .session-view-item-card .session-view-item-card-logo img,
  #channel .session-view-item-card .session-view-item-card-logo img {
    height: calc(var(--lgh, 44) * min(1px, 100cqw / 165)) !important;
  }
}
/* per-logo --lgh = スポンサー「カテゴリ別」ビューの実効値を流用 (2026-07-04) */
.session-view-item-card-logo img[src*="square_logo_a10networks"]{--lgh:42;}
.session-view-item-card-logo img[src*="square_logo_accops"]{--lgh:52;}
.session-view-item-card-logo img[src*="square_logo_acronis"]{--lgh:50;}
.session-view-item-card-logo img[src*="square_logo_amd"]{--lgh:43;}
.session-view-item-card-logo img[src*="square_logo_amiya"]{--lgh:46;}
.session-view-item-card-logo img[src*="square_logo_arcserve"]{--lgh:46;}
.session-view-item-card-logo img[src*="square_logo_ascentech"]{--lgh:55;}
.session-view-item-card-logo img[src*="square_logo_avepoint"]{--lgh:43;}
.session-view-item-card-logo img[src*="square_logo_aws"]{--lgh:53;}
.session-view-item-card-logo img[src*="square_logo_canonits"]{--lgh:45;}
.session-view-item-card-logo img[src*="square_logo_cloudflare"]{--lgh:53;}
.session-view-item-card-logo img[src*="square_logo_comnet"]{--lgh:54;}
.session-view-item-card-logo img[src*="square_logo_crowdstrike"]{--lgh:45;}
.session-view-item-card-logo img[src*="square_logo_csc"]{--lgh:45;}
.session-view-item-card-logo img[src*="square_logo_ctc"]{--lgh:51;}
.session-view-item-card-logo img[src*="square_logo_ctcsp"]{--lgh:50;}
.session-view-item-card-logo img[src*="square_logo_cxj"]{--lgh:51;}
.session-view-item-card-logo img[src*="square_logo_datadog"]{--lgh:51;}
.session-view-item-card-logo img[src*="square_logo_dell"]{--lgh:48;}
.session-view-item-card-logo img[src*="square_logo_digicert"]{--lgh:51;}
.session-view-item-card-logo img[src*="square_logo_digitalarts"]{--lgh:51;}
.session-view-item-card-logo img[src*="square_logo_dos"]{--lgh:46;}
.session-view-item-card-logo img[src*="square_logo_edgemartrix"]{--lgh:50;}
.session-view-item-card-logo img[src*="square_logo_elecom"]{--lgh:46;}
.session-view-item-card-logo img[src*="square_logo_fortinet"]{--lgh:46;}
.session-view-item-card-logo img[src*="square_logo_gdep"]{--lgh:54;}
.session-view-item-card-logo img[src*="square_logo_hclsoftware"]{--lgh:49;}
.session-view-item-card-logo img[src*="square_logo_hp"]{--lgh:45;}
.session-view-item-card-logo img[src*="square_logo_hpe"]{--lgh:47;}
.session-view-item-card-logo img[src*="square_logo_ibm"]{--lgh:34;}
.session-view-item-card-logo img[src*="square_logo_intercom"]{--lgh:46;}
.session-view-item-card-logo img[src*="square_logo_isr"]{--lgh:58;}
.session-view-item-card-logo img[src*="square_logo_kaspersky"]{--lgh:46;}
.session-view-item-card-logo img[src*="square_logo_knowbe4"]{--lgh:45;}
.session-view-item-card-logo img[src*="square_logo_lenovo"]{--lgh:33;}
.session-view-item-card-logo img[src*="square_logo_lrm"]{--lgh:48;}
.session-view-item-card-logo img[src*="square_logo_menlo"]{--lgh:55;}
.session-view-item-card-logo img[src*="square_logo_microsoft"]{--lgh:42;}
.session-view-item-card-logo img[src*="square_logo_motex"]{--lgh:35;}
.session-view-item-card-logo img[src*="square_logo_netapp"]{--lgh:39;}
.session-view-item-card-logo img[src*="square_logo_nextset"]{--lgh:36;}
.session-view-item-card-logo img[src*="square_logo_nutanix"]{--lgh:46;}
.session-view-item-card-logo img[src*="square_logo_okta"]{--lgh:46;}
.session-view-item-card-logo img[src*="square_logo_omnissa"]{--lgh:54;}
.session-view-item-card-logo img[src*="square_logo_onebe"]{--lgh:50;}
.session-view-item-card-logo img[src*="square_logo_opswat"]{--lgh:42;}
.session-view-item-card-logo img[src*="square_logo_progress"]{--lgh:50;}
.session-view-item-card-logo img[src*="wide_logo_purestorage"]{--lgh:50;}
.session-view-item-card-logo img[src*="square_logo_qualitysoft"]{--lgh:48;}
.session-view-item-card-logo img[src*="square_logo_rsupport"]{--lgh:40;}
.session-view-item-card-logo img[src*="square_logo_rubrik"]{--lgh:53;}
.session-view-item-card-logo img[src*="square_logo_runexy"]{--lgh:53;}
.session-view-item-card-logo img[src*="square_logo_saisontech"]{--lgh:47;}
.session-view-item-card-logo img[src*="square_logo_schneider"]{--lgh:52;}
.session-view-item-card-logo img[src*="square_logo_sios"]{--lgh:48;}
.session-view-item-card-logo img[src*="square_logo_subgate"]{--lgh:56;}
.session-view-item-card-logo img[src*="square_logo_tenable"]{--lgh:48;}
.session-view-item-card-logo img[src*="square_logo_trendmicro"]{--lgh:50;}
.session-view-item-card-logo img[src*="square_logo_updater"]{--lgh:46;}
.session-view-item-card-logo img[src*="square_logo_upss"]{--lgh:54;}
.session-view-item-card-logo img[src*="square_logo_vaio"]{--lgh:56;}
.session-view-item-card-logo img[src*="square_logo_veeam"]{--lgh:44;}
.session-view-item-card-logo img[src*="square_logo_wasabi"]{--lgh:48;}
.session-view-item-card-logo img[src*="square_logo_zscaler"]{--lgh:48;}
.session-view-item-card-logo img[src*="square_logo_networld"]{--lgh:48;}
#home #day01 .session-view-item-card-time {
  align-self: start !important;
  grid-area: time;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  line-height: 1.45 !important;
  text-align: right !important;
}
#home #day01 .session-view-item-card-time .session-manufacturer-text {
  display: none !important;
}
#home #day01 .session-view-item-card > .session-manufacturer-text {
  color: #64708f !important;
  display: block !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  grid-area: manufacturer;
  line-height: 1.45 !important;
  margin: 0 !important;
  overflow: visible !important;
  overflow-wrap: anywhere !important;
  text-align: left !important;
  text-overflow: clip !important;
  white-space: normal !important;
}
#home #day01 .session-view-item-card-head {
  grid-area: title;
  margin: 0 !important;
  min-width: 0 !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 4 !important;
  overflow: hidden !important;
  font-size: 16px !important;
  line-height: 1.55 !important;
}
#home #day01 .session-view-item-card-head .font-sm {
  display: inline !important;
  font-size: inherit !important;
}
#home #day01 .session-view-item-card-body {
  display: none !important;
}
#home #day01 .session-view-item-link {
  align-self: end !important;
  grid-area: link;
  position: static !important;
  inset: auto !important;
  width: auto !important;
  height: auto !important;
  margin: auto 0 0 !important;
  padding: 0 !important;
  transform: none !important;
}
#home #day01 .session-view-item-link .link-text {
  align-items: center !important;
  display: inline-flex !important;
  gap: 6px !important;
  font-size: 12px !important;
  justify-content: flex-start !important;
  line-height: 1.3 !important;
  white-space: nowrap !important;
}
#home #day01 .session-view-item-link .text {
  display: inline-block !important;
}
#home #day01 .session-view-item-link svg {
  flex: 0 0 auto !important;
  height: auto !important;
  width: 15px !important;
}
@media (max-width: 767px) {
  #home #day01 .session-view-list {
    gap: 14px !important;
    grid-template-columns: 1fr !important;
  }
  #home #day01 .session-view-item-card {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    min-height: 0 !important;
    padding: 16px !important;
  }
  #home #day01 .session-view-item-card-logo {
    max-width: 110px !important;
    width: 48% !important;
  }
  #home #day01 .session-view-item-card-head {
    font-size: 15px !important;
    -webkit-line-clamp: 4 !important;
  }
}

/* #pickup 日程ナビの導入リード見出し（オンライン=DAY01 / 会場=DAY02 への誘導） */
#home #pickup .pickup-day-nav-title {
  text-align: center;
  color: #00144c;
  font-weight: 800;
  font-size: 40px;
  line-height: 1.4;
  letter-spacing: .01em;
  margin: 0 0 30px;
}
#home #pickup .pickup-day-nav-title .pickup-day-nav-title__br { display: none; }
/* キーワード「正解」: 文字は紺のまま、ピンクのマーカー(蛍光ペン)を下半分に引く
   (メリットカードの太字ハイライトと同系の強調言語。輪郭がはっきりしてクリーン) */
#home #pickup .pickup-day-nav-title .pickup-catch-accent {
  color: #00144c;
  font-weight: 800;
  background: linear-gradient(transparent 58%, rgba(255, 97, 199, 0.35) 58%);
  padding: 0 .1em;
}
@media (max-width: 767px) {
  #home #pickup .pickup-day-nav-title { font-size: 26px; line-height: 1.45; margin-bottom: 22px; }
  #home #pickup .pickup-day-nav-title .pickup-day-nav-title__br { display: inline; }
}

/* Special guest premium cards */
#home #specialguest .pickup-special-guest-title {
  margin-bottom: 30px !important;
  overflow: visible !important;
}
#home #specialguest .pickup-special-guest-list {
  display: grid !important;
  gap: 24px !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  margin: 34px auto 0 !important;
  max-width: 1080px !important;
  padding: 0 20px !important;
  width: 100% !important;
}
#home #specialguest .pickup-special-guest-list-item {
  box-sizing: border-box !important;
  margin: 0 !important;
  max-width: none !important;
  min-width: 0 !important;
  width: 100% !important;
}
@media (max-width: 767px) {
  #home #specialguest .pickup-special-guest-list {
    grid-template-columns: 1fr !important;
  }
}
#home #specialguest .special-guest-card {
  display: block !important;
  height: 100% !important;
  text-decoration: none !important;
  transition: transform 0.25s ease;
  width: 100% !important;
}
#home #specialguest .special-guest-card:hover {
  transform: translateY(-3px);
}
/* DAY01 guest: blue glow */
#home #specialguest .special-guest-card:hover .special-guest-card__inner {
  box-shadow: 0 12px 36px rgba(30, 100, 255, 0.28) !important;
}
/* DAY02 guest: orange glow */
#home #specialguest .special-guest-card--day02:hover .special-guest-card__inner {
  box-shadow: 0 12px 36px rgba(255, 105, 15, 0.28) !important;
}
#home #specialguest .special-guest-card__inner {
  background:
    #fff padding-box,
    linear-gradient(135deg, rgba(0, 127, 255, 0.78), rgba(0, 213, 255, 0.62), rgba(85, 112, 255, 0.7)) border-box !important;
  border: 1px solid transparent !important;
  border-radius: 8px !important;
  box-shadow: 0 18px 42px rgba(0, 20, 76, 0.12) !important;
  transition: box-shadow 0.25s ease !important;
  box-sizing: border-box !important;
  display: grid !important;
  gap: 18px 24px !important;
  grid-template-columns: 150px minmax(0, 1fr) !important;
  grid-template-rows: 1fr auto !important;
  height: 100% !important;
  min-height: 330px !important;
  overflow: hidden !important;
  padding: 24px !important;
  position: relative !important;
  width: 100% !important;
}
#home #specialguest .special-guest-card--day02 .special-guest-card__inner {
  background:
    #fff padding-box,
    linear-gradient(135deg, rgba(255, 116, 49, 0.9), rgba(255, 171, 77, 0.72), rgba(255, 89, 122, 0.62)) border-box !important;
}
#home #specialguest .special-guest-card__inner::before {
  background: none !important;
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
}
#home #specialguest .special-guest-card__row,
#home #specialguest .special-guest-card__cta {
  position: relative !important;
  z-index: 1 !important;
}
#home #specialguest .special-guest-card__row {
  display: contents !important;
}
#home #specialguest .special-guest-card__text {
  display: flex !important;
  flex-direction: column !important;
  grid-column: 2 !important;
  grid-row: 1 !important;
  min-width: 0 !important;
  overflow-wrap: anywhere !important;
}
#home #specialguest .channel-text-lead {
  align-items: center !important;
  color: #64708f !important;
  display: flex !important;
  flex-wrap: wrap !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  gap: 8px !important;
  line-height: 1.5 !important;
  margin: 0 0 14px !important;
  order: 1 !important;
}
#home #specialguest .channel-text-lead .text-day01,
#home #specialguest .channel-text-lead .text-day02 {
  border-radius: 99px !important;
  color: #fff !important;
  display: inline-block !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  margin-right: 8px !important;
  padding: 7px 12px !important;
}
/* day01(青)ピルの背景は白比4.5:1確保のため darken (旧#007fff=3.83:1・UI/UX監査 2026-07-02 P2) */
#home #specialguest .channel-text-lead .text-day01 {
  background: #0070e0 !important;
}
/* day02(オレンジ)は原色+白文字(上記共通ルールの既定)を維持
   (デザイナー指摘: 紺文字は見にくい・2026-07-02再指摘)。#ff7431 は上記 #day02 特別講演カードラベルとも共通 */
#home #specialguest .channel-text-lead .text-day02 {
  background: #ff7431 !important;
}
#home #specialguest .special-guest-card__title {
  color: #00144c !important;
  font-size: 19px !important;
  font-weight: 900 !important;
  letter-spacing: 0 !important;
  line-height: 1.44 !important;
  margin: 0 !important;
  order: 2 !important;
  overflow-wrap: anywhere !important;
}
#home #specialguest .special-guest-card__title .font-sm {
  color: #23335f !important;
  display: block !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  line-height: 1.55 !important;
  margin-top: 8px !important;
}
#home #specialguest .text-foot {
  color: #59647f !important;
  font-size: 12.5px !important;
  font-weight: 700 !important;
  line-height: 1.6 !important;
  margin: 14px 0 0 !important;
  order: 3 !important;
}
#home #specialguest .special-guest-card__media {
  align-self: stretch !important;
  display: flex !important;
  grid-column: 1 !important;
  grid-row: 1 / 3 !important;
  min-height: 0 !important;
  position: relative !important;
  z-index: 1 !important;
}
#home #specialguest .special-guest-card .user-img {
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
  height: 100% !important;
  min-height: 0 !important;
  text-align: center !important;
  width: 100% !important;
}
#home #specialguest .special-guest-card .user-img-inner {
  background: transparent !important;
  border-radius: 8px !important;
  box-shadow: none !important;
  flex: 0 0 286px !important;
  height: 286px !important;
  margin: 0 !important;
  max-width: none !important;
  min-height: 0 !important;
  overflow: hidden !important;
  width: 100% !important;
}
#home #specialguest .special-guest-card .user-img-inner img {
  border-radius: 8px !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center bottom !important;
  padding: 18px 14px 0 !important;
  width: 100% !important;
}
#home #specialguest .special-guest-card .user-img-inner img[src*="k0898_3.svg"] {
  filter: drop-shadow(0 18px 22px rgba(0, 20, 76, 0.16));
  object-fit: contain !important;
  object-position: center bottom !important;
  padding: 0 !important;
  transform: translateY(28px) scale(1.3);
  transform-origin: center bottom;
}
#home #specialguest .special-guest-card .user-img-inner:has(img[src*="k0898_3.svg"]),
#home #specialguest .special-guest-card--day02 .user-img-inner:has(img[src*="k0898_3.svg"]) {
  background: #fff !important;
}
#home #specialguest .special-guest-card--day02 .user-img-inner img[src*="k0898_3.svg"] {
  filter: sepia(0.08) saturate(0.9) hue-rotate(350deg) drop-shadow(0 18px 22px rgba(102, 43, 0, 0.14));
  opacity: 0.96;
  transform: translateY(28px) scale(1.3);
}
#home #specialguest .special-guest-card .user-img-inner img[src*="logo"] {
  background: #fff !important;
  object-fit: contain !important;
  object-position: center !important;
  padding: 18px !important;
}
#home #specialguest .special-guest-card .user-img-text {
  color: #00144c !important;
  font-size: 22px !important;
  font-weight: 900 !important;
  line-height: 1.45 !important;
  min-height: 1.45em !important;
}
#home #specialguest .special-guest-card__cta {
  align-items: center !important;
  align-self: end !important;
  background: none !important;
  border: none !important;
  border-radius: 0 !important;
  color: #00144c !important;
  display: inline-flex !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  grid-column: 2 !important;
  grid-row: 2 !important;
  gap: 4px !important;
  justify-self: end !important;
  min-height: 0 !important;
  margin-top: 0 !important;
  padding: 0 !important;
  white-space: nowrap !important;
}
#home #specialguest .special-guest-card__cta span {
  color: inherit !important;
  font-size: inherit !important;
  font-weight: inherit !important;
}
#home #specialguest .special-guest-card__cta svg {
  height: auto !important;
  width: 14px !important;
}
#home #specialguest .special-guest-card__cta svg path {
  stroke: currentColor !important;
}
@media (max-width: 767px) {
  #home #specialguest .pickup-special-guest-list {
    padding: 0 16px !important;
  }
  #home #specialguest .special-guest-card__inner {
    grid-template-columns: 116px minmax(0, 1fr) !important;
    min-height: 300px !important;
    padding: 20px !important;
  }
  #home #specialguest .special-guest-card__title {
    font-size: 17px !important;
  }
  #home #specialguest .text-foot {
    font-size: 12px !important;
  }
  #home #specialguest .special-guest-card .user-img-text {
    font-size: 20px !important;
  }
}
@media (max-width: 544px) {
  #home #specialguest .special-guest-card__inner {
    grid-template-columns: 1fr !important;
  }
  #home #specialguest .special-guest-card__media,
  #home #specialguest .special-guest-card__text,
  #home #specialguest .special-guest-card__cta {
    grid-column: 1 !important;
  }
  #home #specialguest .special-guest-card__media {
    grid-row: 1 !important;
    min-height: 260px !important;
  }
  #home #specialguest .special-guest-card__text {
    grid-row: 2 !important;
  }
  #home #specialguest .special-guest-card__cta {
    grid-row: 3 !important;
  }
  /* 写真が大きい1カラム表示ではゲスト名を主役級に */
  #home #specialguest .special-guest-card .user-img-text {
    font-size: 22px !important;
  }
}


/* ---- 右下CTA スクロール連動アニメーション ---- */
.kv-entry-cta {
  transition: transform 0.3s ease-in-out !important;
}
.kv-entry-cta.is-hidden {
  transform: skew(-9deg) rotate(-1deg) translateY(150%) !important;
}

/* ---- ページ先頭へ戻るボタン ---- */
.back-to-top {
  position: fixed;
  bottom: 24px;
  right: 24px;
  width: 40px;
  height: 86px;
  padding: 10px 0;
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 20px;
  appearance: none;
  -webkit-appearance: none;
  background: rgba(255, 255, 255, 0.22);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  color: #00144c;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 7px;
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transform: translateY(10px);
  transition: opacity 0.3s, transform 0.3s, background 0.2s;
  z-index: 80;
}
.back-to-top.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}
.back-to-top:hover,
.back-to-top:focus-visible {
  background: rgba(255, 255, 255, 0.38);
}
.back-to-top:focus-visible {
  outline: 2px solid rgba(0, 20, 76, 0.5);
  outline-offset: 4px;
}
.back-to-top__text {
  font-size: 10px;
  letter-spacing: 0.16em;
  font-weight: 700;
  line-height: 1;
  -webkit-text-stroke: 1.4px rgba(255, 255, 255, 0.9);
  paint-order: stroke fill;
  text-shadow: none;
}
.back-to-top__line {
  position: relative;
  width: 2px;
  height: 44px;
  background: rgba(0, 20, 76, 0.38);
  overflow: hidden;
  border-radius: 1px;
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.65),
    0 0 8px rgba(255, 255, 255, 0.5);
}
.back-to-top__line::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 40%;
  background: #00144c;
  animation: backToTopFlow 1.8s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}
.back-to-top__dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #00144c;
  box-shadow:
    0 0 0 1.5px rgba(255, 255, 255, 0.95),
    0 0 8px rgba(255, 255, 255, 0.7);
}
body.placeholder-mode .back-to-top,
body:has(#teaser-toggle-btn) .back-to-top {
  bottom: 70px;
}
@keyframes backToTopFlow {
  0% { transform: translateY(120%); }
  60%, 100% { transform: translateY(-260%); }
}
@media (max-width: 767px) {
  .back-to-top {
    /* レビュー会指摘「小さい/見えにくい」対応: 隅で邪魔にならない範囲で視認性を上げる。
       幅 34→44px (AAA タップ目標44px) + 背景不透明度 0.22→0.6 + 影で明るい背景から浮かせる (#—) */
    width: 44px;
    /* 84px = content (padding20 + TOP10 + gap7 + line32 + gap7 + dot6 = 82) が flex-shrink で
       潰れない高さ。72px だとドットが 6→4px に圧縮され潰れて見えた (木全指摘) ため +12px。 */
    height: 84px;
    bottom: 16px;
    right: 16px;
    background: rgba(255, 255, 255, 0.6);
    border-color: rgba(255, 255, 255, 0.75);
    box-shadow: 0 3px 12px rgba(0, 20, 76, 0.22);
  }
  .back-to-top__text {
    font-size: 10px;
  }
  .back-to-top__line {
    height: 32px;
  }
  body.placeholder-mode .back-to-top,
  body:has(#teaser-toggle-btn) .back-to-top {
    bottom: 64px;
  }
  body:has(.kv-entry-cta) .back-to-top {
    /* 参加登録フローティングCTA (.kv-entry-cta・上端≈86px) の上に余白付きで逃がす。
       88px だと TOP ボタン下端が CTA に約8px食い込み隠れていた (木全指摘) ため 108px に。 */
    bottom: 108px !important; /* #teaser-toggle-btn の ID 高優先度を上書き */
  }
}

/* 出展ブース Pickup 見出しを特別ゲストセクションと同構造に揃える */
.day02-day02-session-special-booth-contents .day02-headding-title-common .font-parts-block {
  display: block;
  font-size: 16px;
  color: var(--color-day02) !important; /* 茶トークンでなく明るい基準オレンジ */
}
@media (min-width: 768px) {
  .day02-day02-session-special-booth-contents .day02-headding-title-common .font-parts-block {
    display: inline-block;
  }
}

/* Pickup キッカーを2か所(特別ゲスト/出展ブース)で統一:
   ＼／ を廃し、PICKUP(大文字)+細い下線の控えめなラベルに。
   色は .text-secondary(紫=特ゲ) / .text-day02+booth上書き(オレンジ=ブース) を継承し、
   下線も currentColor で各色に追従。display(block/inline-block)の
   レスポンシブ指定は既存ルールを尊重(モバイル=独立行 / PC=タイトル前にインライン)。 */
#home #specialguest .pickup-special-guest-title .font-parts-block,
.day02-day02-session-special-booth-contents .day02-headding-title-common .font-parts-block {
  font-size: 14px !important;
  font-weight: 800 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  line-height: 1 !important;
  border-bottom: 2px solid currentColor !important;
  padding-bottom: 3px !important;
  margin-right: 14px !important;
  vertical-align: middle !important;
}
/* モバイルはキッカーが独立行(display:block)になるため、下線が全幅に伸びて
   区切り線に見えてしまう。display:table で内容幅に収め下線を文字幅に限定。
   中央寄せ見出し(特別ゲスト)は中央、左寄せ見出し(出展ブース)は左のまま。 */
@media (max-width: 767px) {
  #home #specialguest .pickup-special-guest-title .font-parts-block,
  .day02-day02-session-special-booth-contents .day02-headding-title-common .font-parts-block {
    display: table !important;
    margin: 0 auto 8px !important;
  }
}

/* ============================================================
 * ランディングページ内 ピンク CTA ボタン (.lp-cta-wrap)
 * ============================================================ */
.lp-cta-wrap {
  text-align: center;
  padding: 48px 20px 48px;
}
.lp-cta-note {
  font-size: 13px;
  font-weight: 600;
  color: #6e6e6e; /* B: グレー #888(3.54) を 5.1 に */
  margin-bottom: 14px;
  letter-spacing: 0.04em;
}
.lp-cta-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  /* 白文字コントラストを AA(4.5:1) 以上に調整 (旧 #ff0080/#ff5faa は 3.77:1 / 2.81:1・
     UI/UX監査 2026-07-02 P1)。同系のマゼンタ〜ピンクで色相は維持し、明度のみ落とす */
  background: linear-gradient(135deg, #c2005f 0%, #d4288a 100%);
  color: #fff !important;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.06em;
  padding: 17px 44px;
  border-radius: 10px;
  border: none;
  cursor: pointer;
  text-decoration: none !important;
  transition: transform 0.2s ease;
  max-width: 380px;
  width: 100%;
}
.lp-cta-btn:hover {
  transform: translateY(-2px);
  color: #fff !important;
  text-decoration: none !important;
}
.lp-cta-btn[aria-disabled="true"] {
  pointer-events: none;
  opacity: 0.75;
}
.lp-cta-btn__arrow {
  font-size: 20px;
  font-weight: 300;
  line-height: 1;
  transition: transform 0.15s ease;
}
.lp-cta-btn:hover .lp-cta-btn__arrow {
  transform: translateX(3px);
}
@media (max-width: 767px) {
  .lp-cta-wrap {
    padding: 36px 16px 36px;
  }
  .lp-cta-btn {
    font-size: 15px;
    padding: 15px 28px;
    max-width: 320px;
  }
  .lp-cta-note {
    font-size: 12px;
  }
}

/* スポンサーモーダル内のCTAはモーダルのサイズに合わせてコンパクトに */
.sponsor-modal__cta-wrap.lp-cta-wrap {
  padding: 24px 20px 24px !important;
}

/* =====================================================
 * ティザーモード: インページ CTA (.lp-cta-wrap) 調整
 * ===================================================== */
body.teaser-mode .lp-cta-note {
  display: none !important;
}
body.teaser-mode .lp-cta-btn {
  cursor: default !important;
  filter: saturate(0.55) brightness(0.95) !important;
  font-size: 0 !important;
  opacity: 0.72 !important;
  pointer-events: none !important;   /* 仮URL(href="#")を付与しても teaser 中は押させない (#45/#81 系) */
}
body.teaser-mode .lp-cta-btn .lp-cta-btn__arrow {
  display: none !important;
}
body.teaser-mode .lp-cta-btn::after {
  content: '7月頃 参加登録開始予定';
  font-size: 17px !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
}
@media (max-width: 767px) {
  body.teaser-mode .lp-cta-btn::after {
    font-size: 15px !important;
  }
}

/* CTA: フル表示時はヘッダー「参加登録」をクリック可能に見せる(仮URL #・hover は既存の opacity:.84)。
   teaser 中はカーソル既定 + 非クリックで「準備中」状態を保つ(本文 lp-cta-btn の無効化は上の teaser rule)。 */
body:not(.teaser-mode) .site-header__nav .site-header__item .button-contact-square.is-entry {
  cursor: pointer !important;
}
body.teaser-mode .site-header__nav .site-header__item .button-contact-square.is-entry {
  cursor: default !important;
  pointer-events: none !important;
}

/* フル表示: ヘッダー右上CTAをヘッダーから少し独立した角丸矩形にする */
@media only screen and (min-width: 768px) {
  body:not(.teaser-mode) .site-header__nav .site-header__item__button-square {
    height: auto !important;
    margin-right: 18px !important;
    margin-top: 0 !important;
  }
  body:not(.teaser-mode) .site-header__nav .site-header__item .button-contact-square.is-entry {
    border-radius: 4px !important;
    font-size: 20px !important;
    font-weight: 800 !important;
    height: 62px !important;
    letter-spacing: 0.06em !important;
    min-width: 180px !important;
    padding: 0 28px !important;
    text-shadow: none !important;
    width: auto !important;
  }
}

/* 幅狭PC: 大きいCTAルール(↑)のセレクター特異度に合わせ、後置で上書き */
@media (min-width: 768px) and (max-width: 1040px) {
  body:not(.teaser-mode) .site-header__nav .site-header__item__button-square {
    margin-right: 8px !important;
  }
  body:not(.teaser-mode) .site-header__nav .site-header__item .button-contact-square.is-entry {
    font-size: 13px !important;
    height: 44px !important;
    min-width: 0 !important;
    padding: 0 14px !important;
    width: 100px !important;
  }
}
@media (min-width: 768px) and (max-width: 860px) {
  body:not(.teaser-mode) .site-header__nav .site-header__item .button-contact-square.is-entry {
    font-size: 12px !important;
    height: 40px !important;
    width: 92px !important;
  }
}

/* ============================================================
 * セッションモーダル CTAボタン (session.html / index.html 共通)
 * ============================================================ */
.session-modal-cta-wrap {
  padding: 20px 24px 24px;
  border-top: 1px solid rgba(0, 20, 76, 0.08);
  margin-top: 8px;
}
.session-modal-cta-buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  max-width: 560px;
  margin: 0 auto;
}
.session-modal-cta-buttons .lp-cta-btn {
  flex: 1 1 0;
  min-width: 0;
  max-width: none;
  width: auto;
  text-align: center;
  padding-left: 16px !important;
  padding-right: 16px !important;
}
.session-modal-cta-secondary {
  background: #fff;
  border: 2px solid #d245aa;
  box-shadow: none;
  color: #d245aa !important;
}
.session-modal-cta-secondary:hover {
  background: #fff7fc;
  box-shadow: 0 8px 24px rgba(210, 69, 170, 0.18);
  color: #d245aa !important;
}

/* ============================================================
 * セッションモーダル: ヘッダー(上)とCTA(下)を固定し、本文(概要・登壇者)だけスクロール
 *  スクロール対象は既存の .modal-channel__content。その中で
 *  ヘッダーを sticky top / CTA を sticky bottom にして固定する。
 * ============================================================ */
.modal-channel .modal-channel__head-new {
  position: sticky;
  top: 0;
  z-index: 5;
  background: #fff;
  box-shadow: 0 6px 10px -8px rgba(0, 20, 76, 0.25);
  /* 上余白をヘッダー自身に持たせる(白背景で覆う)。container-box の上paddingは0にし、
     スクロール開始時にヘッダーが上へずれず最初から上端で固定されるように */
  padding-top: 28px;
}
.modal-channel .session-modal-cta-wrap {
  position: sticky;
  bottom: 0;
  z-index: 5;
  background: #fff;
  box-shadow: 0 -6px 12px -8px rgba(0, 20, 76, 0.22);
}
/* 閉じる × は固定ヘッダーより前面に */
.modal-channel .modal-channel__close { z-index: 10 !important; }
/* CTA が下部固定になったため、本文下の大きな余白(88px)を縮小。上paddingは0(ヘッダー側で余白確保=ヘッダー固定でずれない) */
.modal-channel__content .m-channel-contents .container-box { padding-top: 0 !important; padding-bottom: 24px !important; }

/* ============================================================
 * DAY01セッションエリア: 濃紺背景→ライトグレー+キューブ柄に刷新
 * ============================================================ */

/* 1. 濃紺コンテナ廃止 → ブルー系薄グレー無地 */
#home #day01 .day01-tab-contents-area {
  background-color: #eef1f8 !important;
  position: relative;
  overflow: hidden;
  margin-top: 20px !important;
}

/* 2. ボタン: デフォルトは白文字のまま、ホバー時に紺文字 */
#home #day01 .day01-tab-contents-area .btn-secondary:hover {
  color: #00144c !important;
}
/* 出展ブースCTA(btn-booth-cta)もホバーで紺文字に揃える(「全セッション」ボタンと統一) */
#home .btn-secondary.btn-booth-cta:hover {
  color: #00144c !important;
}

/* 3. セッションカードに浮遊感を追加 */
#home #day01 .session-view-item-card {
  box-shadow: 0 4px 12px rgba(0, 20, 76, 0.07) !important;
  border-radius: 10px !important;
}
/* 社名エリアを2行固定 → カードタイトルの開始位置を揃える */
#home #day01 .session-view-item-card .session-manufacturer-text--card {
  height: 35px !important;
  overflow: hidden !important;
}

/* 4. CHタブ: セグメントコントロール（カプセル型）化 */
#home #day01 .day01-tab-area {
  background: #e2e5ed !important;
  border-radius: 10px !important;
  padding: 4px !important;
  gap: 2px !important;
  display: inline-flex !important;
  width: fit-content !important;
  border: none !important;
}
#home #day01 .day01-tab-switch {
  background: transparent !important;
  color: #525a67 !important; /* B: 非アクティブCHタブ灰 #6b7280(3.84) を 5.52 に */
  border: none !important;
  border-radius: 7px !important;
  padding: 8px 24px !important;
  font-weight: 500 !important;
  transition: background 0.18s, box-shadow 0.18s, color 0.18s !important;
  box-shadow: none !important;
}
#home #day01 .day01-tab-switch.active {
  background: #ffffff !important;
  color: #00144c !important;
  box-shadow: 0 1px 6px rgba(0, 20, 76, 0.14) !important;
  font-weight: 600 !important;
}

/* DAY02 highlights下の余白を詰める */
#home #day02 .day02-highlights-wrap {
  margin-bottom: 0 !important;
}

/* [KV] 日程画像 (kv_day01/02.svg): 画像全体をリンク化(A案) + サイズ調整 + ホバー */
/* カードを縦並び中央揃えに（スマホ: 中央寄せ / PC: オンデマンドを画像の下・中央に） */
#home .hero-wrap .kv-img-item {
  display: flex;
  flex-direction: column;
  align-items: center;
}
#home .hero-wrap .kv-img-link {
  display: block;
  width: 300px;
  max-width: 100%;
  margin: 0 auto;
  border-radius: 16px;
  transition: transform .25s ease, filter .25s ease;
}
#home .hero-wrap .kv-img-link:hover {
  transform: translateY(-4px) scale(1.02);
  filter: drop-shadow(0 10px 22px rgba(0, 20, 76, .30));
}
#home .hero-wrap .kv-img-link:focus-visible {
  outline: 3px solid #2e7bff;
  outline-offset: 3px;
}
#home .hero-wrap .kv-day-img {
  display: block;
  width: 100%;
  height: auto;
}
@media (max-width: 767px) {
  #home .hero-wrap .kv-img-link {
    width: 220px;
  }
}

/* [#day01] スマホ: CH タブ(CH.1〜6)が右端で見切れる → 横パディングを詰めて1行に収め中央寄せ (周囲が !important のため揃える) */
@media (max-width: 767px) {
  #home #day01 .day01-tab-area {
    display: flex !important;
    width: fit-content !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  #home #day01 .day01-tab-switch {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
}

/* CTAボタン(lp-cta-btn)がスマホで切れないように: paddingを幅に含め、コンテナ内に収める */
.lp-cta-btn { box-sizing: border-box; max-width: 100%; }
/* ページ内CTAは文字幅に合わせる(上の max-width:100% が 380px 上限を上書きして全幅に間延びするのを解消)。モーダル内CTAは対象外 */
.lp-cta-wrap:not(.sponsor-modal__cta-wrap) > .lp-cta-btn { width: auto; }
/* モーダル/ポップアップ表示中は右下の追従CTAを隠す（重なり防止・全ページ共通） */
body:has(.sponsor-modal-overlay.is-open) .kv-entry-cta,
body:has(.modal-channel.is-open) .kv-entry-cta { display: none !important; }

/* ============================================================
 * アクセシビリティ (UI/UX監査 2026-07-02・見た目デフォルト不変)
 * ============================================================ */
/* 動きの抑制設定 (OS の「視差効果を減らす」等) を尊重: CSS のアニメ/トランジション/
   スムーススクロールを実質無効化。GSAP 側は common.js の timeScale ガードが担う */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  html { scroll-behavior: auto !important; }
}

/* SP の Back to Top はタップターゲット 34px と小さいため、透明ヒット領域で 44px 相当を確保
   (WCAG 2.5.8。描画は不変) */
@media (max-width: 767px) {
  .back-to-top::after {
    content: "";
    position: absolute;
    inset: -5px;
  }
}
