/* ══════════════════════════════════════════════════════════
   VEXUM AI LAB 詳細ページ 共通スタイル

   VEXUM AI LAB #02 以降の各回ページが読み込む。
   #01（seminar/vexum-ai-lab-01/index.html）は同じ内容を
   ページ内の <style> に持ったままなので、こちらを変更しても
   #01には反映されない。将来 #01 もこのファイルに寄せること。

   ※このファイルを変更したら、読み込んでいる全ページの
     ?v= を必ず更新すること（キャッシュ対策）。
════════════════════════════════════════════════════════════ */
/* ══════════════════════════════════════════════════════════
   VEXUM AI LAB LP — 特集メディア型
   紙面のような大きな余白・太い罫線・オレンジのアクセントで、
   1イベントを1本の特集記事として見せる。
   ページ固有のスタイルはすべてこのファイル内に閉じている。
════════════════════════════════════════════════════════════ */
.sem{
  --paper:#ffffff;      /* 地（サイト共通の白） */
  --paper2:#F8F9FA;     /* 一段沈めた面 */
  --sink:#0d0d0d;       /* インク（本文・反転面の地） */
  --flame:#00BCD4;      /* アクセント＝サイトのシアン */
  --flame2:#26C6DA;     /* 暗い面で使う明るいシアン */
  --gold:#E8A317;       /* CTAボタン（サイト共通） */
  --gold-h:#D4941A;
  --rule:rgba(0,0,0,.1);/* 罫線 */
  --mute:rgba(13,13,13,.58);
  background:var(--paper);
  color:var(--sink);
}
.sem section{padding:6rem 4rem;}
.sem-inner{max-width:1160px;margin:0 auto;}

/* 見出しの共通パーツ */
.sem-eyebrow{
  font-family:var(--ff);font-size:.7rem;font-weight:900;
  letter-spacing:.24em;color:var(--flame);text-transform:uppercase;
}
.sem-head{
  display:grid;grid-template-columns:300px 1fr;gap:3rem;
  align-items:start;margin-bottom:3rem;
}
.sem-head h2{
  font-family:var(--ffj);font-size:clamp(1.7rem,3.2vw,2.5rem);
  font-weight:800;line-height:1.35;letter-spacing:.02em;margin-top:.7rem;
}
.sem-head-note{
  font-family:var(--ffj);font-size:.82rem;font-weight:300;
  line-height:2.1;color:var(--mute);padding-top:1.2rem;
}

/* ── HERO ───────────────────────────────── */
.sem-hero{
  padding:9rem 4rem 4.5rem !important;
  border-bottom:1px solid var(--rule);
  position:relative;overflow:hidden;
}
.sem-hero-inner{max-width:1160px;margin:0 auto;position:relative;z-index:1;}
.sem-hero-grid{display:grid;grid-template-columns:1fr 420px;gap:3.5rem;align-items:start;}
.sem-hero-copy{min-width:0;}
/* ── ヒーローの見出しまわり ─────────────────
   表記は全ページ共通で、上から次の4段に固定する。
     ① .sem-hero-en     VEXUM AI LAB #02｜製造・建設業編 Vol.2
     ② .sem-hero-catch  1時間でわかる！              （任意）
     ③ h1               結局、会社ではどのAIを使えばいい？
     ④ .sem-hero-sub    主要な生成AI・法人プランの違いと、自社に合う選び方（任意）
   ②④は原稿がない回では丸ごと省略してよい。
   ①の「#通し番号」と「Vol.シリーズ内番号」は別物なので取り違えないこと。
──────────────────────────────────────── */
.sem-hero-en{
  font-family:var(--ff);font-size:.72rem;font-weight:900;
  letter-spacing:.26em;color:var(--flame);margin-bottom:2rem;
}
/* ② キャッチ。見出しの前に置く短い一言。 */
.sem-hero-catch{
  font-family:var(--ffj);font-size:clamp(.95rem,1.7vw,1.15rem);
  font-weight:800;letter-spacing:.04em;line-height:1.6;
  color:var(--gold);margin-bottom:.9rem;
}
.sem-hero h1{
  font-family:var(--ffj);
  font-size:clamp(2.3rem,6.2vw,5rem);
  font-weight:900;line-height:1.18;letter-spacing:-.01em;
  max-width:18em;
}
.sem-hero h1 em{font-style:normal;color:var(--flame);}
/* ④ サブタイトル。見出しの補足で、リード文より一段強い扱い。 */
.sem-hero-sub{
  font-family:var(--ffj);font-size:clamp(.95rem,1.9vw,1.25rem);
  font-weight:700;line-height:1.75;letter-spacing:.01em;
  color:var(--sink);max-width:32em;margin-top:1.3rem;
  padding-left:1rem;border-left:3px solid var(--flame);
}
.sem-hero-lead{
  font-family:var(--ffj);font-size:.9rem;font-weight:300;
  line-height:2.2;color:var(--mute);
  max-width:40em;margin-top:2.2rem;
}
.sem-hero-foot{
  display:flex;flex-wrap:wrap;align-items:center;gap:1rem;
  margin-top:3rem;
}
.sem-chip{
  font-family:var(--ff);font-size:.66rem;font-weight:700;
  letter-spacing:.14em;
  border:1px solid var(--sink);color:var(--sink);
  padding:.5rem .95rem;white-space:nowrap;
}
.sem-chip.fill{background:var(--sink);color:var(--paper);border-color:var(--sink);}
.sem-chip.flame{background:var(--flame);color:var(--sink);border-color:var(--flame);}
/* 残席表示のCSS（.sem-seats-hero / .sem-seats 系）は
   2026-10-17 に残席のリアルタイム表示を廃止したため削除した。
   復活させない方針なので、追加し直さないこと。 */
/* ヒーロー内のチップ列に並べる「開催終了」表示 */
.sem-chip.closed{
  background:rgba(13,13,13,.06);border-color:rgba(13,13,13,.12);
  color:var(--mute);font-weight:800;
}
/* 紙面の余白に置いた大きな番号 */
.sem-hero-mark{
  position:absolute;left:-.04em;bottom:-.36em;
  font-family:var(--ff);font-size:clamp(9rem,20vw,17rem);
  font-weight:900;line-height:.8;letter-spacing:-.05em;
  color:rgba(0,0,0,.04);
  pointer-events:none;user-select:none;z-index:0;
}

/* ── ポスター掲出 ───────────────────────────
   ヒーロー右列。自作ポスターをそのまま貼る枠。
   画像を用意したら .sem-poster-ph を消して <img> を出す。 */
.sem-poster-frame{margin:0;position:relative;}
.sem-poster-frame img{
  display:block;width:100%;height:auto;
  border:1px solid var(--rule);background:#fff;
}
.sem-poster-ph{
  aspect-ratio:2/3;                     /* 現ポスターは1024×1536。比率が変わったらここも変更 */
  border:1px solid var(--rule);background:var(--paper2);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:.9rem;text-align:center;padding:1.5rem;
}
.sem-poster-ph span{
  font-family:var(--ff);font-size:.66rem;font-weight:900;
  letter-spacing:.24em;color:var(--flame);
}
.sem-poster-ph p{
  font-family:var(--ffj);font-size:.76rem;font-weight:400;
  line-height:1.9;color:var(--mute);
}
.sem-poster-frame figcaption{
  font-family:var(--ffj);font-size:.7rem;font-weight:300;
  line-height:1.9;color:var(--mute);margin-top:.9rem;
}
.sem-poster-dl{
  display:inline-flex;align-items:center;gap:.5rem;
  font-family:var(--ff);font-size:.64rem;font-weight:900;letter-spacing:.16em;
  color:var(--sink);text-decoration:none;
  border:1px solid var(--sink);padding:.6rem 1rem;margin-top:.9rem;
  transition:background .25s,color .25s;
}
.sem-poster-dl:hover{background:var(--sink);color:var(--paper);}

/* ── OUTLINE（開催概要）───────────────────── */
.sem-outline{background:var(--sink);color:#fff;border-bottom:1px solid var(--sink);}
.sem-outline-grid{
  display:grid;grid-template-columns:260px 1fr;gap:0;
  border:1px solid rgba(255,255,255,.14);
}
.sem-date{
  background:linear-gradient(155deg,var(--flame),var(--flame2));color:var(--sink);
  padding:2.8rem 1.6rem;text-align:center;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;
}
.sem-date small{font-family:var(--ff);font-size:.72rem;font-weight:800;letter-spacing:.24em;}
.sem-date strong{font-family:var(--ff);font-size:5rem;font-weight:900;line-height:1;letter-spacing:-.04em;}
.sem-date b{font-family:var(--ff);font-size:.8rem;font-weight:800;letter-spacing:.14em;}
.sem-date span{
  font-family:var(--ff);font-size:.82rem;font-weight:700;letter-spacing:.06em;
  margin-top:1.1rem;padding-top:1.1rem;
  border-top:1px solid rgba(13,13,13,.32);width:70%;
}
.sem-spec{padding:2.4rem 2.6rem;}
.sem-spec dl{display:grid;grid-template-columns:7.5rem 1fr;gap:0;}
.sem-spec dt,.sem-spec dd{
  padding:.95rem 0;border-bottom:1px solid rgba(255,255,255,.1);
  font-family:var(--ffj);font-size:.82rem;line-height:1.8;
}
.sem-spec dt{font-weight:700;color:rgba(255,255,255,.5);letter-spacing:.08em;}
.sem-spec dd{font-weight:400;color:rgba(255,255,255,.88);}
.sem-spec dl > :nth-last-child(1),
.sem-spec dl > :nth-last-child(2){border-bottom:none;}
.sem-spec-note{
  font-family:var(--ffj);font-size:.72rem;font-weight:300;
  line-height:1.9;color:rgba(255,255,255,.42);margin-top:1.4rem;
}

/* ── WHY（このセミナーで扱うこと）──────────── */
.sem-why{border-bottom:1px solid var(--rule);}
.sem-why-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  border-top:2px solid var(--sink);
}
.sem-why-grid article{
  padding:2.4rem 2rem 2.6rem;
  border-right:1px solid var(--rule);
}
.sem-why-grid article:last-child{border-right:none;}
.sem-why-num{
  font-family:var(--ff);font-size:.72rem;font-weight:900;
  letter-spacing:.2em;color:var(--flame);margin-bottom:1.2rem;
}
.sem-why-grid h3{
  font-family:var(--ffj);font-size:1.05rem;font-weight:800;
  line-height:1.6;margin-bottom:1rem;
}
.sem-why-grid p{
  font-family:var(--ffj);font-size:.8rem;font-weight:300;
  line-height:2.1;color:var(--mute);
}

/* ── TARGET（こんな方へ）─────────────────── */
.sem-target{background:var(--paper2);border-bottom:1px solid var(--rule);}
.sem-target-list{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:0;}
.sem-target-list li{
  display:flex;align-items:flex-start;gap:1rem;
  font-family:var(--ffj);font-size:.86rem;font-weight:400;line-height:1.9;
  padding:1.3rem .5rem;border-top:1px solid var(--rule);
}
.sem-target-list li::before{
  content:'';flex:none;
  width:7px;height:13px;margin:.45rem .2rem 0 .2rem;
  border:solid var(--flame);border-width:0 2px 2px 0;
  transform:rotate(45deg);
}

/* ── PROGRAM（プログラム）───────────────── */
.sem-program{border-bottom:1px solid var(--rule);}
.sem-program-list{border-top:2px solid var(--sink);}
.sem-program-list article{
  display:grid;grid-template-columns:5.5rem 11rem 1fr;
  gap:2rem;align-items:baseline;
  padding:1.9rem .4rem;border-bottom:1px solid var(--rule);
}
.sem-program-no{
  font-family:var(--ff);font-size:1.5rem;font-weight:900;
  color:var(--flame);line-height:1;letter-spacing:-.02em;
}
.sem-program-time{
  font-family:var(--ff);font-size:.78rem;font-weight:700;
  letter-spacing:.08em;color:var(--mute);
}
.sem-program-body h3{
  font-family:var(--ffj);font-size:1rem;font-weight:800;
  line-height:1.6;margin-bottom:.5rem;
}
.sem-program-body p{
  font-family:var(--ffj);font-size:.79rem;font-weight:300;
  line-height:2;color:var(--mute);
}
/* 見出しに添える「希望者のみ」などの但し書き */
.sem-program-opt{
  display:inline-block;vertical-align:middle;
  margin-left:.7em;padding:.25em .7em;
  font-family:var(--ffj);font-size:.66rem;font-weight:700;letter-spacing:.04em;
  color:var(--sink);border:1px solid var(--rule);background:var(--paper2);
}

/* ── SPEAKER（登壇者）───────────────────── */
.sem-speaker{background:var(--paper2);border-bottom:1px solid var(--rule);}
.sem-speaker-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;}
.sem-speaker-grid article{
  background:var(--paper);
  border:1px solid var(--rule);border-top:3px solid var(--sink);
  padding:2.2rem 2rem;
  display:grid;grid-template-columns:84px 1fr;gap:1.6rem;align-items:start;
}
.sem-speaker-face{
  width:84px;height:84px;flex:none;
  background:var(--paper2);border:1px solid var(--rule);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--ff);font-size:.58rem;font-weight:700;
  letter-spacing:.1em;color:var(--mute);text-align:center;
  overflow:hidden;
}
.sem-speaker-face img{width:100%;height:100%;object-fit:cover;display:block;}
.sem-speaker-role{
  font-family:var(--ff);font-size:.64rem;font-weight:800;
  letter-spacing:.16em;color:var(--flame);margin-bottom:.5rem;
}
.sem-speaker-name{
  font-family:var(--ffj);font-size:1.1rem;font-weight:800;
  line-height:1.4;margin-bottom:.8rem;
}
.sem-speaker-bio{
  font-family:var(--ffj);font-size:.78rem;font-weight:300;
  line-height:2;color:var(--mute);
}

/* ── ARIS（主催）───────────────────────── */
.sem-aris{border-bottom:1px solid var(--rule);}
.sem-aris-box{
  display:grid;grid-template-columns:1fr 340px;gap:3.5rem;align-items:start;
  border-top:2px solid var(--sink);padding-top:2.6rem;
}
.sem-aris-box p{
  font-family:var(--ffj);font-size:.85rem;font-weight:300;
  line-height:2.2;color:var(--mute);
}
.sem-aris-box p + p{margin-top:1.1rem;}
.sem-aris-metrics{list-style:none;}
.sem-aris-metrics li{
  font-family:var(--ffj);font-size:.82rem;font-weight:700;
  padding:1rem 0;border-bottom:1px solid var(--rule);
}
.sem-aris-metrics li:first-child{border-top:1px solid var(--rule);}
.sem-aris-link{
  display:inline-flex;align-items:center;gap:.6rem;
  font-family:var(--ff);font-size:.72rem;font-weight:800;letter-spacing:.14em;
  color:var(--sink);text-decoration:none;
  margin-top:1.6rem;padding-bottom:.4rem;
  border-bottom:2px solid var(--flame);
  transition:gap .25s,color .25s;
}
.sem-aris-link:hover{gap:1.1rem;color:var(--flame);}

/* ── FAQ ───────────────────────────────── */
.sem-faq{border-bottom:1px solid var(--rule);}
.sem-faq-list{border-top:2px solid var(--sink);}
.sem-faq-list details{border-bottom:1px solid var(--rule);}
.sem-faq-list summary{
  list-style:none;cursor:pointer;
  display:flex;align-items:flex-start;gap:1.1rem;
  padding:1.5rem .4rem;
  font-family:var(--ffj);font-size:.9rem;font-weight:700;line-height:1.7;
}
.sem-faq-list summary::-webkit-details-marker{display:none;}
.sem-faq-list summary::before{
  content:'Q';flex:none;
  font-family:var(--ff);font-size:.85rem;font-weight:900;
  color:var(--flame);line-height:1.7;
}
.sem-faq-list summary::after{
  content:'';margin-left:auto;flex:none;
  width:9px;height:9px;margin-top:.55rem;
  border:solid var(--sink);border-width:0 2px 2px 0;
  transform:rotate(45deg);transition:transform .25s;
}
.sem-faq-list details[open] summary::after{transform:rotate(-135deg);margin-top:.85rem;}
.sem-faq-answer{
  display:flex;gap:1.1rem;
  padding:0 .4rem 1.6rem;
}
.sem-faq-answer::before{
  content:'A';flex:none;
  font-family:var(--ff);font-size:.85rem;font-weight:900;
  color:var(--mute);line-height:2.1;
}
.sem-faq-answer p{
  font-family:var(--ffj);font-size:.81rem;font-weight:300;
  line-height:2.1;color:var(--mute);
}

/* ── APPLY（申込）──────────────────────── */
.sem-apply{background:var(--sink);color:#fff;}
.sem-apply .sem-eyebrow{color:var(--flame2);}
.sem-apply h2{
  font-family:var(--ffj);font-size:clamp(1.7rem,3.4vw,2.6rem);
  font-weight:900;line-height:1.35;color:#fff;margin:.8rem 0 1.2rem;
}
.sem-apply-lead{
  font-family:var(--ffj);font-size:.85rem;font-weight:300;
  line-height:2.2;color:rgba(255,255,255,.55);max-width:44em;margin-bottom:2.8rem;
}
/* ── QR / 直リンク ───────────────────────────
   PCで見ている人がスマホで申し込めるようにする枠。
   同じ画像をポスター側にも流用できる。 */
.sem-qr{
  display:grid;grid-template-columns:150px 1fr;gap:1.8rem;align-items:center;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.14);
  padding:1.6rem 1.8rem;margin-bottom:1.6rem;
}
.sem-qr-code{
  width:150px;aspect-ratio:1;background:#fff;padding:.5rem;
  display:flex;align-items:center;justify-content:center;
}
.sem-qr-code img{width:100%;height:auto;display:block;}
.sem-qr-ph{
  font-family:var(--ff);font-size:.6rem;font-weight:900;letter-spacing:.18em;
  color:rgba(0,0,0,.38);text-align:center;line-height:2;
}
.sem-qr-txt strong{
  display:block;font-family:var(--ffj);font-size:.95rem;font-weight:800;
  color:#fff;margin-bottom:.6rem;
}
.sem-qr-txt p{
  font-family:var(--ffj);font-size:.8rem;font-weight:300;
  line-height:1.9;color:rgba(255,255,255,.6);
}
.sem-qr-url{
  display:inline-block;font-family:var(--ff);font-size:.78rem;font-weight:700;
  color:var(--flame2);text-decoration:none;word-break:break-all;
  border-bottom:1px solid rgba(38,198,218,.5);margin-top:.9rem;
}
.sem-form-embed{
  background:#fff;
  border:1px solid rgba(255,255,255,.14);
  min-height:520px;
  display:flex;align-items:center;justify-content:center;
  padding:1rem;
}
/* 埋め込む iframe / script が入ったら幅いっぱいに広がるようにしておく */
.sem-form-embed iframe{width:100%;min-height:900px;border:0;display:block;}
.sem-form-placeholder{
  text-align:center;
  font-family:var(--ffj);font-size:.8rem;font-weight:400;
  line-height:2.1;color:rgba(0,0,0,.42);
}
.sem-form-placeholder strong{
  display:block;font-family:var(--ff);font-size:.7rem;font-weight:800;
  letter-spacing:.18em;color:var(--flame);margin-bottom:.8rem;
}
.sem-apply-note{
  font-family:var(--ffj);font-size:.74rem;font-weight:300;
  line-height:2;color:rgba(255,255,255,.4);margin-top:1.6rem;
}
.sem-apply-note a{color:rgba(255,255,255,.7);}

/* ── 追従CTA（スマホのみ）─────────────────── */
.sem-sticky{
  position:fixed;left:0;right:0;bottom:0;z-index:80;
  display:none;
  padding:.7rem 1rem calc(.7rem + env(safe-area-inset-bottom));
  background:rgba(13,13,13,.94);
  backdrop-filter:blur(8px);
  border-top:1px solid rgba(255,255,255,.12);
}
.sem-sticky a{
  display:flex;align-items:center;justify-content:center;gap:.6rem;
  background:var(--gold);color:#fff;text-decoration:none;
  font-family:var(--ffj);font-size:.86rem;font-weight:800;letter-spacing:.06em;
  padding:.95rem 1rem;
}

/* CTAボタン（ヒーロー用） */
.sem-btn{
  display:inline-flex;align-items:center;gap:.7rem;
  background:var(--gold);color:#fff;text-decoration:none;
  font-family:var(--ffj);font-size:.86rem;font-weight:800;letter-spacing:.06em;
  padding:1.05rem 2.4rem;
  transition:gap .25s,background .25s;
}
.sem-btn:hover{gap:1.3rem;background:var(--gold-h);}
/* 申込セクションの主CTA（申込ページへ遷移する） */
.sem-apply-go{
  display:flex;flex-direction:column;align-items:center;gap:1.1rem;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.14);
  padding:2.6rem 2rem;margin-bottom:1.6rem;text-align:center;
}
.sem-apply-go a{
  display:inline-flex;align-items:center;gap:.9rem;
  background:var(--gold);color:#fff;text-decoration:none;
  font-family:var(--ffj);font-size:1rem;font-weight:800;letter-spacing:.06em;
  padding:1.15rem 3rem;transition:gap .25s,background .25s;
}
.sem-apply-go a:hover{gap:1.4rem;background:var(--gold-h);}
.sem-apply-go p{
  font-family:var(--ffj);font-size:.78rem;font-weight:300;line-height:1.9;
  color:rgba(255,255,255,.6);
}
/* 開催が終わった回で、申込セクションの主CTAの代わりに出す枠。
   次の回を終了にするときは .sem-apply-go をこれに置き換える。
   チップ列の「開催終了」は .sem-chip.closed（上部で定義）。 */
.sem-closed-box{
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.14);
  padding:2.6rem 2rem;margin-bottom:1.6rem;text-align:center;
}
.sem-closed-box strong{
  display:block;
  font-family:var(--ffj);font-size:1.05rem;font-weight:800;letter-spacing:.04em;
  color:#fff;margin-bottom:.9rem;
}
.sem-closed-box p{
  font-family:var(--ffj);font-size:.82rem;font-weight:300;line-height:1.95;
  color:rgba(255,255,255,.6);
}
.sem-closed-box a{
  color:var(--flame2);text-decoration:none;border-bottom:1px solid rgba(38,198,218,.45);
}

/* ── RESPONSIVE ──────────────────────────── */
/* 中間幅。ポスターを420pxのままにすると見出し側が窮屈になるので従来幅に戻す。 */
@media(max-width:1200px){
  .sem-hero-grid{grid-template-columns:1fr 340px;gap:2.8rem;}
}
@media(max-width:1024px){
  .sem section{padding:4.5rem 2.2rem;}
  .sem-hero{padding:7.5rem 2.2rem 3.5rem !important;}
  .sem-hero-grid{grid-template-columns:1fr;gap:2.8rem;}
  .sem-poster-frame{max-width:340px;}
  .sem-head{grid-template-columns:1fr;gap:.6rem;margin-bottom:2.2rem;}
  .sem-head-note{padding-top:.6rem;}
  .sem-outline-grid{grid-template-columns:1fr;}
  .sem-date{padding:2.2rem 1.4rem;}
  .sem-spec{padding:2rem 1.8rem;}
  .sem-why-grid{grid-template-columns:1fr;}
  .sem-why-grid article{border-right:none;border-bottom:1px solid var(--rule);}
  .sem-why-grid article:last-child{border-bottom:none;}
  .sem-speaker-grid{grid-template-columns:1fr;gap:1.2rem;}
  .sem-aris-box{grid-template-columns:1fr;gap:2rem;}
  .sem-program-list article{grid-template-columns:4rem 1fr;gap:1rem 1.4rem;}
  .sem-program-time{grid-column:2;}
  .sem-program-body{grid-column:2;}
  .sem-program-no{grid-row:span 2;}
}
@media(max-width:640px){
  .sem section{padding:3.6rem 1.4rem;}
  .sem-hero{padding:6.5rem 1.4rem 3rem !important;}
  .sem-hero-catch{margin-bottom:.7rem;}
  .sem-hero-sub{font-size:.95rem;line-height:1.7;margin-top:1.1rem;padding-left:.8rem;}
  .sem-hero-lead{font-size:.85rem;line-height:2.05;margin-top:1.8rem;}
  .sem-hero-foot{gap:.6rem;margin-top:2.2rem;}
  .sem-hero-mark{font-size:8rem;bottom:-.3em;left:-.03em;}
  .sem-poster-frame{max-width:none;}
  .sem-qr{grid-template-columns:1fr;justify-items:center;text-align:center;padding:1.4rem 1.2rem;}
  .sem-chip{font-size:.6rem;padding:.42rem .75rem;}
  .sem-spec{padding:1.6rem 1.2rem;}
  .sem-spec dl{grid-template-columns:1fr;}
  .sem-spec dt{padding:.9rem 0 .1rem;border-bottom:none;color:rgba(255,255,255,.45);font-size:.72rem;}
  .sem-spec dd{padding:0 0 .9rem;}
  .sem-spec dl > :nth-last-child(2){border-bottom:none;}
  .sem-date strong{font-size:4rem;}
  .sem-target-list{grid-template-columns:1fr;}
  .sem-target-list li{font-size:.82rem;padding:1.1rem .2rem;}
  .sem-program-list article{grid-template-columns:3.4rem 1fr;gap:.6rem 1rem;padding:1.5rem .2rem;}
  .sem-program-no{font-size:1.2rem;}
  .sem-speaker-grid article{grid-template-columns:64px 1fr;gap:1.1rem;padding:1.6rem 1.3rem;}
  .sem-speaker-face{width:64px;height:64px;}
  .sem-faq-list summary{font-size:.84rem;padding:1.2rem .2rem;gap:.8rem;}
  .sem-form-embed{min-height:420px;padding:.6rem;}
  .sem-btn{width:100%;justify-content:center;}
  /* スマホでは下部に申込ボタンを常時表示する */
  .sem-sticky{display:block;}
  .sem-apply{padding-bottom:7rem !important;}
  .ft-main{padding-bottom:6rem;}
}
@media(prefers-reduced-motion:reduce){
  .sem-btn,.sem-aris-link,.sem-faq-list summary::after{transition:none;}
}

/* ポスター未用意の回は右列を持たず1カラムで組む（#02以降） */
.sem-hero-grid.no-poster{grid-template-columns:1fr;}

/* ══════════════════════════════════════════════════════════
   VEXUM AI LAB #03 だけの調整（2026-10-20）
   このファイルは #02 と共用なので、必ず body[data-page] で
   スコープして書くこと。スコープを外すと #02 の見た目が変わる。
   このファイルを変更したら、参照している全HTMLの ?v= も必ず上げる
   （CSSは24時間キャッシュのため、上げないと旧版が残って見える）。
════════════════════════════════════════════════════════════ */

/* ── 見出しを1行に収める ───────────────────
   右にポスター（420px）が入るぶん、見出しカラムは約680pxまで
   狭くなる。「AIを「使う」から「作る」へ。」は約14文字なので、
   1文字あたり48px以下に抑えないと折り返す。
   clamp の上限3rem＝48pxはその上限値。
   見出しの文言を変えたときは、この値も合わせて見直すこと。
──────────────────────────────────────── */
/* ── 見出しブロックをポスターに対して上下中央に置く ──
   既定は align-items:start で両列とも上揃え。#03 はポスター（約520px）が
   本文ブロックより高く、上揃えだと本文の下に大きな余白が空く。
   ポスター側が行の高さを決め、本文がその中央に来るようにしている。
──────────────────────────────────────── */
body[data-page="seminar-lab-03"] .sem-hero-grid{align-items:center;}

body[data-page="seminar-lab-03"] .sem-hero h1{
  font-size:clamp(1.8rem,3.3vw,3rem);
  max-width:none;
}
/* スマホでは1行に入りきらないので折り返すが、そのとき「作る」のような
   語の途中で割れると読みにくい。HTML側で句ごとに span で包んであるので、
   inline-block にして句の境目でだけ改行させる。 */
body[data-page="seminar-lab-03"] .sem-hero h1 span{display:inline-block;}

/* ── 登壇者を枠なしで出す ───────────────────
   既定（#02）はカード型（白地＋罫線＋上辺3px）。#03 は依頼により
   枠・背景・余白を外した素の並びにする。
──────────────────────────────────────── */
body[data-page="seminar-lab-03"] .sem-speaker-grid article{
  background:none;
  border:none;
  padding:0;
}
