:root{
  --pink:#f56d8d;
  --pink-cta:#f0739b;
  --pink-cta-hover:#e85d8b;
  --pink-soft:rgba(245,109,141,.12);
  --yellow:#ffcf2a;
  --blue:#4ad2d0;
  --blue-deep:#129c98;
  --periwinkle:#90b4ff;
  --deep-green:#123f3d;
  --ink:#1d2430;
  --text:#111;
  --lead:#4b4b4b;
  --label:#5a636c;
  --navy:#12325f;
  --muted:#667085;
  --line:#e7edf0;
  --white:#fff;
  --section-teal:#92e4e3;
  --section-mint:#e8f8f9;
  --section-paper:#f5f7f7;
  --eyebrow:#d2f4f3;

  --nav-pad-y:16px;
  --nav-logo-h:60px;
  --nav-toggle-size:44px;
  --nav-border:1px;
  --header-height:calc(var(--nav-pad-y) * 2 + max(var(--nav-logo-h), var(--nav-toggle-size)) + var(--nav-border));

  --page-width:1200px;
  --pw:min(100vw, var(--page-width));
  --gutter:36px;
  --content-w:calc(var(--pw) - var(--gutter) * 2);
  --panel-radius:clamp(28px,calc(var(--pw) * .04),48px);
  --card-radius:14px;
  --card-border:#dedede;
  --card-shadow:0 8px 22px rgba(29,36,48,.04);
  --font-base:"Noto Sans JP","Noto Sans",sans-serif;
}

/* ---------- ページ土台 ---------- */

body.event{
  margin:0;
  padding:0;
  font-family:var(--font-base);
  color:var(--ink);
  background:var(--section-paper);
  line-height:1.7;
}

/* 親サイトの CSS に box-sizing のリセットが無いため、イベントページ内だけ border-box に統一する
   （無いと .ev-container の padding ぶん横幅が画面からはみ出す） */
body.event,
body.event *,
body.event *::before,
body.event *::after{ box-sizing:border-box; }

/* =========================================================
   共通ヘッダー・フッター・追従ボタン（BellbizHR.Header / Footer）
   LP(style-v2.css) の該当部分を body.event スコープで移植。
   コラムの css/style.css が body.column で同じことをしているのと同じ構成。
   ========================================================= */

body.event .nav{
  position:fixed; top:0; left:0; right:0;
  width:100%; max-width:var(--page-width); margin:0 auto; z-index:1000;
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  padding:var(--nav-pad-y) 36px;
  border-bottom:var(--nav-border) solid var(--line);
  background:var(--white);
  box-sizing:border-box;
}
body.event .nav .logo{ display:flex; align-items:center; flex:0 1 auto; min-width:0; gap:18px; }
body.event .nav .logo-item{ display:block; height:var(--nav-logo-h); width:auto; max-width:none; object-fit:contain; object-position:center; }
body.event .nav .menu{
  display:flex; flex:1 1 auto; min-width:0; justify-content:flex-end;
  gap:clamp(8px, calc(var(--pw) * .01833), 22px); align-items:center;
  margin:0; padding:0;
  font-size:clamp(12px, calc(var(--pw) * .01167), 14px); font-weight:700; color:var(--ink);
}
body.event .nav .menu a:not(.menu-cta){ color:var(--ink); letter-spacing:.04em; text-decoration:none; transition:color .2s ease; }
body.event .nav .menu a:not(.menu-cta):hover{ color:var(--pink); }
body.event .nav .menu-cta{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:42px; margin-left:8px; padding:0 18px; border-radius:999px;
  background:var(--pink); color:#fff; font-size:13px; font-weight:900; letter-spacing:.04em; line-height:1.2; white-space:nowrap;
  text-decoration:none;
  box-shadow:0 8px 18px rgba(245,109,141,.28);
  transition:transform .2s ease, background .2s ease, box-shadow .2s ease;
}
body.event .nav .menu-cta:hover{ transform:translateY(-1px); background:#e85a7d; color:#fff; box-shadow:0 10px 22px rgba(245,109,141,.34); }
body.event .nav .menu-cta svg{ flex:0 0 auto; }

body.event .nav .nav-toggle{
  display:none; position:relative; flex:0 0 auto;
  width:var(--nav-toggle-size); height:var(--nav-toggle-size);
  margin:0; padding:0; border:0; border-radius:10px; background:transparent; appearance:none; cursor:pointer;
}
body.event .nav .nav-toggle__bars,
body.event .nav .nav-toggle__bars::before,
body.event .nav .nav-toggle__bars::after{
  position:absolute; left:50%; width:24px; height:2px; border-radius:2px; background:var(--ink);
  transition:transform .25s ease, opacity .25s ease; content:"";
}
body.event .nav .nav-toggle__bars{ top:50%; transform:translate(-50%,-50%); }
body.event .nav .nav-toggle__bars::before{ top:-7px; transform:translateX(-50%); }
body.event .nav .nav-toggle__bars::after{ top:7px; transform:translateX(-50%); }
body.event .nav.is-open .nav-toggle__bars{ background:transparent; }
body.event .nav.is-open .nav-toggle__bars::before{ top:0; transform:translateX(-50%) rotate(45deg); }
body.event .nav.is-open .nav-toggle__bars::after{ top:0; transform:translateX(-50%) rotate(-45deg); }

/* 追従ボタン */
body.event .scroll-top,
body.event .floating-cta{
  --cta-glow:0 0 8px rgba(255,255,255,.6),0 0 18px rgba(255,255,255,.4),0 0 34px rgba(255,255,255,.22);
  --cta-glow-hover:0 0 11px rgba(255,255,255,.75),0 0 23px rgba(255,255,255,.5),0 0 42px rgba(255,255,255,.3);
  box-sizing:border-box; text-decoration:none;
}
body.event .scroll-top{
  position:fixed; right:24px; bottom:32px; z-index:1100;
  display:flex; align-items:center; justify-content:center; width:54px; height:54px; padding:0;
  border:3px solid #fff; border-radius:50%; background:var(--blue); color:#fff; box-shadow:var(--cta-glow);
  opacity:0; visibility:hidden; pointer-events:none; transform:translateY(12px);
  transition:opacity .3s ease, visibility .3s ease, transform .3s ease, background .2s ease, box-shadow .2s ease;
}
body.event .scroll-top.is-visible{ opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0); }
body.event .scroll-top:hover,
body.event .scroll-top.is-visible:hover{ background:#3bc4c2; transform:translateY(-3px); box-shadow:var(--cta-glow-hover); }
body.event .scroll-top svg{ display:block; flex:0 0 auto; }
body.event .floating-cta{
  position:fixed; right:90px; bottom:32px; z-index:1100;
  display:flex; align-items:center; justify-content:center; gap:11px; min-height:54px; padding:0 22px;
  border:3px solid #fff; border-radius:16px; background:var(--pink-cta); color:#fff; font-size:16px; font-weight:900; line-height:1; white-space:nowrap;
  box-shadow:var(--cta-glow); opacity:0; visibility:hidden; pointer-events:none; transform:translateY(12px);
  transition:opacity .3s ease, visibility .3s ease, transform .3s ease, box-shadow .2s ease, background .2s ease;
}
body.event .floating-cta.is-visible{ opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0); }
body.event .floating-cta-text{ display:flex; align-items:center; gap:9px; }
body.event .floating-cta-free{
  display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:26px; padding:0 7px;
  border-radius:7px; background:#fff; color:var(--pink-cta); font-size:13px; font-weight:900; line-height:1;
}
body.event .floating-cta svg{ display:block; flex:0 0 auto; }
body.event .floating-cta:hover,
body.event .floating-cta.is-visible:hover{ transform:translateY(-3px); background:var(--pink-cta-hover); color:#fff; box-shadow:var(--cta-glow-hover); }

/* フッター */
body.event .footer{ width:100%; max-width:var(--page-width); margin:0 auto; padding:0; background:var(--white); text-align:left; }
body.event .footer .container{ width:100%; max-width:var(--page-width); margin:0 auto; padding-left:56px; padding-right:56px; box-sizing:border-box; }
body.event .footer__logos{ padding:48px 0 42px; background:var(--white); }
body.event .footer__logos-inner{ display:flex; justify-content:center; align-items:stretch; gap:clamp(20px,calc(var(--pw) * .03),44px); }
body.event .footer__logo-item{
  display:flex; flex:0 1 300px; flex-direction:column; align-items:center; justify-content:center;
  padding:14px 20px 12px; border:1px solid #dfe4ea; border-radius:14px; background:var(--white);
  box-shadow:0 2px 10px rgba(19,37,57,.06); text-align:center; transition:border-color .2s ease, box-shadow .2s ease;
}
body.event .footer__logo-item:hover{ border-color:#c3ccd6; box-shadow:0 6px 18px rgba(19,37,57,.1); }
body.event .footer__logo-item a{ display:inline-block; color:inherit; text-decoration:none; }
body.event .footer__logo-item img{ display:block; width:auto; max-width:100%; max-height:74px; height:auto; margin:0 auto; object-fit:contain; }
body.event .footer__logo-item:first-child img{ max-height:80px; }
body.event .footer__logo-text{ margin:14px 0 0; font-size:12px; font-weight:700; color:#333; line-height:1.5; }
body.event .footer__copyright{ padding:22px 0 28px; background:#000; text-align:center; }
body.event .footer__copyright small{ color:#fff; font-size:12px; font-weight:400; line-height:1.6; }

@media (max-width:1100px){
  body.event{ --nav-pad-y:14px; --nav-logo-h:46px; }
  body.event .nav{ gap:16px; padding-left:24px; padding-right:24px; }
  body.event .nav .logo{ gap:12px; }
  body.event .nav .menu{ gap:13px; font-size:13px; }
  body.event .nav .menu-cta{ min-height:38px; margin-left:4px; padding:0 13px; font-size:12px; }
}

@media (max-width:820px){
  body.event{ --nav-pad-y:12px; --nav-logo-h:40px; }
  body.event .nav{ gap:12px; flex-direction:row; padding-left:20px; padding-right:20px; }
  body.event .nav .logo{ gap:10px; }
  body.event .nav .nav-toggle{ display:block; }
  body.event .nav .menu{
    position:absolute; top:100%; left:0; right:0; flex-direction:column; align-items:stretch; justify-content:flex-start;
    gap:0; padding:0 20px; border-bottom:1px solid var(--line); background:var(--white);
    box-shadow:0 14px 24px rgba(15,22,32,.08); opacity:0; visibility:hidden; max-height:0; overflow:hidden;
    transition:opacity .25s ease, max-height .3s ease, visibility .25s ease;
  }
  body.event .nav.is-open .menu{ opacity:1; visibility:visible; max-height:calc(100svh - var(--header-height)); padding:6px 20px 18px; overflow-y:auto; }
  body.event .nav .menu a:not(.menu-cta){ display:block; padding:14px 2px; border-bottom:1px solid var(--line); font-size:15px; }
  body.event .nav .menu-cta{ margin:16px 0 0; min-height:48px; }

  body.event .footer .container{ padding-left:22px; padding-right:22px; }
  body.event .footer__logos{ padding:36px 0 32px; }
  body.event .footer__logos-inner{ align-items:stretch; gap:12px; }
  body.event .footer__logo-item{ flex:1 1 0; min-width:0; padding:12px 10px 10px; }
  body.event .footer__logo-item img{ max-height:44px; }
  body.event .footer__logo-item:first-child img{ max-height:48px; }
  body.event .footer__logo-text{ margin-top:8px; font-size:11px; }

  body.event .scroll-top{ right:16px; bottom:20px; width:46px; height:46px; }
  body.event .floating-cta{ right:78px; bottom:20px; min-height:46px; gap:8px; padding:0 15px; border-radius:13px; font-size:13px; }
  body.event .floating-cta-text{ gap:7px; }
  body.event .floating-cta-free{ min-width:36px; min-height:21px; border-radius:6px; font-size:11px; }
  body.event .floating-cta svg{ width:17px; height:17px; }
}

@media (max-width:600px){
  body.event{ --nav-pad-y:10px; --nav-logo-h:31px; }
  body.event .nav{ padding-left:16px; padding-right:16px; }
  body.event .nav .logo{ gap:8px; }
  body.event .nav .menu{ padding:0 16px; }
  body.event .nav.is-open .menu{ padding:6px 16px 16px; }
  body.event .footer .container{ padding-left:16px; padding-right:16px; }
  body.event .scroll-top{ right:14px; bottom:16px; }
  body.event .floating-cta{ right:72px; bottom:16px; }
}

/* iPhone SE（320〜375px）：ロゴ2枚＋メニューボタンが1行に収まるよう一段縮める */
@media (max-width:380px){
  body.event{ --nav-logo-h:26px; }
  body.event .nav{ padding-left:12px; padding-right:12px; }
  body.event .nav .logo{ gap:6px; }
  body.event .floating-cta{ right:66px; padding:0 12px; font-size:12px; }
}

@media (prefers-reduced-motion:reduce){
  body.event .floating-cta,
  body.event .scroll-top{ transition:none; }
}

/* LPのCSSが h2 を opacity:0 で待機させるため、イベントページでは常時表示にする */
.event h1,
.event h2,
.event h3,
.event h4{
  opacity:1;
  transform:none;
}

/* LPのCSSが section に大きな padding を持たせているので、イベント側の
   section だけ外す。共通モジュール（Footer / RequestDocCTA）には触れない。 */
/* :where() で詳細度を (0,1,0) に抑え、後ろで定義する .ev-widget / .ev-apply /
   .ev-related 自身の padding・position が必ず勝つようにする。 */
.ev-main :where(.ev-section, .ev-widget, .ev-apply, .ev-related){
  position:static;
  padding:0;
  border:0;
}

.ev-main a{ color:inherit; text-decoration:none; }
/* 共通ヘッダー・フッターのロゴ（.logo-item 等は height 指定で大きさを決めている）に
   当たらないよう、イベント本文の中だけに限定する。 */
.ev-main img{ max-width:100%; height:auto; }

.pc-only{ display:inline; }
.sp-only{ display:none; }

.ev-main{
  padding:calc(var(--header-height) + clamp(24px,calc(var(--pw) * .03),40px)) 0 clamp(48px,calc(var(--pw) * .06),80px);
  /* iOS Safari は html/body の overflow-x 指定を無視して横パンできてしまうことがあるため、
     コンテンツ側で横はみ出しを切る（clip はスクロールコンテナを作らないので sticky に影響しない） */
  overflow-x:clip;
}

.ev-container{
  width:100%;
  max-width:var(--page-width);
  margin:0 auto;
  padding:0 var(--gutter);
}

.ev-section{
  margin-top:clamp(36px,calc(var(--pw) * .05),64px);
}

/* ---------- パンくず ---------- */

.ev-breadcrumb{
  margin:0 0 18px;
  font-size:12px;
  color:var(--muted);
}

.ev-breadcrumb ol{
  display:flex;
  flex-wrap:wrap;
  gap:4px 0;
  list-style:none;
  margin:0;
  padding:0;
}

.ev-breadcrumb li + li::before{
  content:"/";
  margin:0 8px;
  color:#b5bcc5;
}

.ev-breadcrumb a:hover{ color:var(--blue-deep); }

.ev-breadcrumb li[aria-current]{
  max-width:32em;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* ---------- ページ見出し（LPの巨大英字eyebrowを踏襲） ---------- */

.ev-pagehead{
  position:relative;
  padding-bottom:clamp(14px,calc(var(--pw) * .02),24px);
  text-align:center;
}

.ev-eyebrow{
  display:block;
  margin:0 0 -0.32em;
  color:var(--eyebrow);
  font-size:clamp(64px,calc(var(--pw) * .118),132px);
  font-weight:900;
  letter-spacing:.04em;
  line-height:.85;
  text-align:center;
  user-select:none;
}

.ev-pagetitle{
  position:relative;
  z-index:1;
  margin:0;
  padding:0;
  color:var(--text);
  font-size:clamp(24px,calc(var(--pw) * .03),36px);
  font-weight:900;
  line-height:1.45;
  letter-spacing:.02em;
}

.ev-lead{
  max-width:40em;
  margin:14px auto 0;
  color:var(--muted);
  font-size:clamp(13px,calc(var(--pw) * .013),15px);
  line-height:1.8;
  text-wrap:pretty;
}

/* セクション見出し（LPのoperationセクションの「下線付き小見出し＋大見出し」） */

.ev-heading{
  margin:0 0 clamp(18px,calc(var(--pw) * .024),28px);
  text-align:center;
}

.ev-heading__label{
  display:table;
  margin:0 auto 12px;
  padding:0 0 7px .24em;
  border-bottom:2px solid currentColor;
  color:var(--blue-deep);
  font-size:clamp(13px,calc(var(--pw) * .014),16px);
  font-weight:900;
  letter-spacing:.24em;
  line-height:1;
}

.ev-heading__title{
  margin:0;
  padding:0;
  text-align:inherit;
  color:var(--ink);
  font-size:clamp(20px,calc(var(--pw) * .024),28px);
  font-weight:900;
  line-height:1.45;
  letter-spacing:.02em;
}

.ev-heading--left{ text-align:left; }
.ev-heading--left .ev-heading__label{ margin-left:0; }

/* ---------- バッジ・ピル ---------- */

.ev-badge{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:4px 10px;
  border-radius:4px;
  background:#1c1c1e;
  color:var(--white);
  font-size:11px;
  font-weight:700;
  letter-spacing:.08em;
  line-height:1.3;
  white-space:nowrap;
}

.ev-badge--format{ background:var(--navy); }
.ev-badge--online{ background:var(--blue-deep); }
.ev-badge--venue{ background:var(--navy); }
.ev-badge--hybrid{ background:#5b6ea8; }

.ev-badge--status{ background:var(--pink); }
.ev-badge--full{ background:var(--yellow); color:var(--ink); }
.ev-badge--closed{ background:#8a939e; }

.ev-badge--free{ background:var(--white); color:var(--pink); border:1px solid var(--pink); }

.ev-pill{
  display:inline-block;
  padding:4px 10px;
  border:1px solid #d5d5d5;
  border-radius:999px;
  background:var(--white);
  color:#444;
  font-size:11px;
  line-height:1.4;
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}

.ev-pill:hover{
  background:#f4f4f4;
  border-color:#b5b5b5;
  color:#222;
}

/* ---------- イベントカード ---------- */

.ev-cards{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:clamp(14px,calc(var(--pw) * .018),22px);
  list-style:none;
  margin:0;
  padding:0;
}

.ev-cards--2col{
  grid-template-columns:repeat(2, minmax(0, 1fr));
}

.ev-card{
  position:relative;
  display:flex;
  flex-direction:column;
  height:100%;
  overflow:hidden;
  border:1px solid var(--card-border);
  border-radius:var(--card-radius);
  background:var(--white);
  box-shadow:var(--card-shadow);
  transition:transform .2s ease, box-shadow .2s ease;
}

.ev-card:hover{
  transform:translateY(-3px);
  box-shadow:0 14px 30px rgba(29,36,48,.1);
}

.ev-card__thumb{
  position:relative;
  display:block;
  aspect-ratio:16 / 9;
  overflow:hidden;
  background:#eef2f3;
  flex-shrink:0;
}

.ev-card__thumb img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .4s ease;
}

.ev-card:hover .ev-card__thumb img{ transform:scale(1.04); }

/* 左上の日付ブロック */
.ev-card__date{
  position:absolute;
  top:0;
  left:0;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-width:64px;
  padding:8px 10px 7px;
  border-radius:0 0 12px 0;
  background:var(--white);
  color:var(--ink);
  line-height:1;
  box-shadow:0 4px 12px rgba(29,36,48,.12);
}

.ev-card__date-month{
  font-size:11px;
  font-weight:700;
  letter-spacing:.08em;
  color:var(--blue-deep);
}

.ev-card__date-day{
  margin-top:4px;
  font-size:26px;
  font-weight:900;
  letter-spacing:-.02em;
}

.ev-card__date-dow{
  margin-top:4px;
  font-size:10px;
  color:var(--muted);
}

.ev-card__badges{
  position:absolute;
  top:10px;
  right:10px;
  z-index:2;
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:6px;
}

.ev-card__body{
  display:flex;
  flex-direction:column;
  flex:1;
  gap:10px;
  padding:16px 16px 18px;
}

.ev-card__cats{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:0;
}

.ev-card__title{
  margin:0;
  font-size:15px;
  font-weight:700;
  line-height:1.6;
  text-align:left;
}

.ev-card__title a{ color:var(--ink); }
.ev-card__title a:hover{ color:var(--deep-green); }

.ev-card__meta{
  display:flex;
  flex-direction:column;
  gap:4px;
  margin:auto 0 0;
  padding-top:10px;
  border-top:1px dashed var(--line);
  font-size:12.5px;
  color:var(--label);
}

.ev-card__meta li{
  display:flex;
  align-items:flex-start;
  gap:6px;
  list-style:none;
}

.ev-card__meta svg{
  flex:0 0 auto;
  width:14px;
  height:14px;
  margin-top:3px;
  color:var(--blue-deep);
}

/* 終了イベント：「開催終了」帯（サムネイルはカラーのまま） */
.ev-card.is-closed .ev-card__date{ background:#f0f2f4; color:var(--muted); }
.ev-card.is-closed .ev-card__date-month{ color:var(--muted); }
.ev-card.is-closed .ev-card__title a{ color:#5f6771; }

.ev-card.is-closed .ev-card__thumb::after{
  content:"開催終了";
  position:absolute;
  left:50%;
  bottom:12px;
  transform:translateX(-50%);
  padding:5px 16px;
  border-radius:999px;
  background:rgba(29,36,48,.78);
  color:var(--white);
  font-size:12px;
  font-weight:700;
  letter-spacing:.1em;
}

/* 開催予定なしのメッセージ */
.ev-empty{
  padding:clamp(28px,calc(var(--pw) * .04),48px) 24px;
  border:1px dashed #cfd6db;
  border-radius:var(--card-radius);
  background:var(--white);
  color:var(--muted);
  font-size:14px;
  text-align:center;
}

/* ---------- 一覧ページ：2カラムレイアウト ---------- */

.ev-layout{
  display:grid;
  grid-template-columns:minmax(0, 1fr) 300px;
  gap:clamp(24px,calc(var(--pw) * .036),44px);
  align-items:start;
}

.ev-content{ min-width:0; }

.ev-sidebar{
  display:flex;
  flex-direction:column;
  gap:22px;
  position:sticky;
  top:calc(var(--header-height) + 20px);
}

.ev-widget{
  padding:20px 20px 22px;
  border:1px solid var(--card-border);
  border-radius:var(--card-radius);
  background:var(--white);
  box-shadow:var(--card-shadow);
}

.ev-widget__title{
  margin:0 0 14px;
  padding:0 0 10px;
  border-bottom:2px solid var(--section-teal);
  color:var(--ink);
  font-size:15px;
  font-weight:900;
  letter-spacing:.04em;
  text-align:left;
}

.ev-mini{
  list-style:none;
  margin:0;
  padding:0;
}

.ev-mini li + li{
  margin-top:10px;
  padding-top:10px;
  border-top:1px solid var(--line);
}

.ev-mini a{
  display:grid;
  grid-template-columns:48px minmax(0, 1fr);
  gap:12px;
  align-items:start;
}

.ev-mini__date{
  display:flex;
  flex-direction:column;
  align-items:center;
  padding:6px 0 5px;
  border-radius:8px;
  background:var(--section-mint);
  color:var(--ink);
  line-height:1;
}

.ev-mini__date-month{ font-size:10px; font-weight:700; color:var(--blue-deep); letter-spacing:.06em; }
.ev-mini__date-day{ margin-top:3px; font-size:18px; font-weight:900; }

.ev-mini__title{
  display:block;
  font-size:13px;
  line-height:1.55;
  color:var(--ink);
}

.ev-mini a:hover .ev-mini__title{ color:var(--deep-green); }

.ev-mini__sub{
  display:block;
  margin-top:3px;
  font-size:11px;
  color:var(--muted);
}

.ev-mini li.is-closed{ display:none; }

.ev-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.ev-tab{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:7px 12px;
  border:1px solid #d5d5d5;
  border-radius:999px;
  background:var(--white);
  font-size:12.5px;
  color:#444;
  transition:background .2s ease,border-color .2s ease,color .2s ease;
}

.ev-tab:hover{
  background:var(--section-mint);
  border-color:var(--blue);
  color:var(--ink);
}

/* カテゴリアーカイブで現在の種別 */
.ev-tab.is-active{
  background:var(--blue-deep);
  border-color:var(--blue-deep);
  color:var(--white);
  pointer-events:none;
}
.ev-tab.is-active .ev-tab__count{
  background:var(--white);
}

.ev-tab__count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:20px;
  height:20px;
  padding:0 6px;
  border-radius:999px;
  background:var(--section-teal);
  color:var(--ink);
  font-size:11px;
  font-weight:700;
}

/* サイドバーの資料DL導線（既存モジュール .entry-cta の受け皿） */
.ev-widget--cta{
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
}

/* ---------- ページネーション（コラムと同じマークアップ） ---------- */

.ev-pagination{
  margin-top:clamp(28px,calc(var(--pw) * .036),44px);
}

.ev-pagination ul{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:8px;
  list-style:none;
  margin:0;
  padding:0;
}

.ev-pagination .pageitem{ display:inline-flex; }

.ev-pagination a,
.ev-pagination span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:40px;
  height:40px;
  padding:0 12px;
  border:1px solid #d5d5d5;
  border-radius:999px;
  background:var(--white);
  color:#444;
  font-size:14px;
  font-weight:700;
  transition:background .2s ease,border-color .2s ease,color .2s ease;
}

.ev-pagination a:hover{
  background:var(--section-mint);
  border-color:var(--blue);
}

.ev-pagination .current_page{
  border-color:var(--blue);
  background:var(--blue);
  color:var(--white);
}

/* ---------- 「一覧を見る」ボタン（LP .content-more 踏襲） ---------- */

.ev-more{
  margin:clamp(22px,calc(var(--pw) * .03),36px) 0 0;
  text-align:center;
}

.ev-more a{
  display:inline-block;
  min-width:280px;
  padding:14px 40px;
  border:3px solid #40d4d2;
  border-radius:999px;
  background:var(--white);
  color:#555;
  font-size:16px;
  font-weight:900;
  letter-spacing:.06em;
  line-height:1.4;
  transition:background .2s ease,border-color .2s ease;
}

.ev-more a:hover{
  background:#f4fffe;
  border-color:#2ec4c2;
}

/* =========================================================
   詳細ページ
   ========================================================= */

.ev-entry{ min-width:0; }

/* ---------- ヒーロー ---------- */

.ev-hero{
  position:relative;
  overflow:hidden;
  border-radius:var(--panel-radius);
  background:var(--white);
  box-shadow:0 10px 30px rgba(29,36,48,.07);
}

.ev-hero__inner{
  display:grid;
  grid-template-columns:minmax(0, 1fr) 44%;
  gap:clamp(20px,calc(var(--pw) * .03),40px);
  align-items:center;
  padding:clamp(24px,calc(var(--pw) * .034),44px) clamp(22px,calc(var(--pw) * .036),48px);
}

.ev-hero__badges{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 14px;
}

.ev-hero__title{
  margin:0;
  padding:0;
  color:var(--text);
  font-size:clamp(22px,calc(var(--pw) * .028),34px);
  font-weight:900;
  line-height:1.45;
  letter-spacing:.02em;
  text-align:left;
  text-wrap:pretty;
  overflow-wrap:anywhere;
}

.ev-hero__lead{
  margin:14px 0 0;
  color:var(--lead);
  font-size:clamp(13px,calc(var(--pw) * .013),15px);
  line-height:1.8;
}

.ev-hero__schedule{
  display:grid;
  grid-template-columns:auto minmax(0, 1fr);
  gap:14px;
  align-items:center;
  margin:clamp(18px,calc(var(--pw) * .022),26px) 0 0;
  padding:14px 18px;
  border-radius:12px;
  background:var(--section-mint);
}

.ev-hero__date{
  display:flex;
  align-items:baseline;
  gap:6px;
  color:var(--ink);
  line-height:1;
}

.ev-hero__date-year{ font-size:13px; font-weight:700; color:var(--blue-deep); }
.ev-hero__date-md{ font-size:clamp(28px,calc(var(--pw) * .03),36px); font-weight:900; letter-spacing:-.02em; }
.ev-hero__date-dow{ font-size:13px; font-weight:700; color:var(--muted); }

.ev-hero__timeplace{
  display:flex;
  flex-direction:column;
  gap:4px;
  font-size:13.5px;
  color:var(--ink);
}

.ev-hero__timeplace span{
  display:flex;
  align-items:flex-start;
  gap:6px;
}

.ev-hero__timeplace svg{
  flex:0 0 auto;
  width:15px;
  height:15px;
  margin-top:4px;
  color:var(--blue-deep);
}

.ev-hero__cta{
  margin:clamp(18px,calc(var(--pw) * .022),26px) 0 0;
}

.ev-hero__visual{
  position:relative;
  overflow:hidden;
  border-radius:clamp(12px,calc(var(--pw) * .016),20px);
  background:#eef2f3;
  aspect-ratio:4 / 3;
}

.ev-hero__visual img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

/* バナー型ヒーロー：アイキャッチ（告知バナー等）を上部に全幅・原寸比で見せ、
   テキストはその下に1カラムで置く。画像をトリミングしないので見切れない。
   使い方：<header class="ev-hero ev-hero--banner"> とし、.ev-hero__visual を
   .ev-hero__text より前に置く。日時と申込ボタンは .ev-hero__bottom で囲む。 */
.ev-hero--banner .ev-hero__inner{
  display:block;
  padding:0;
}

.ev-hero--banner .ev-hero__visual{
  order:0;
  aspect-ratio:auto;
  border-radius:0;
  background:#0b1a3a;
}

.ev-hero--banner .ev-hero__visual img{
  width:100%;
  height:auto;
}

.ev-hero--banner .ev-hero__text{
  padding:clamp(22px,calc(var(--pw) * .03),36px) clamp(22px,calc(var(--pw) * .036),48px) clamp(26px,calc(var(--pw) * .034),44px);
}

.ev-hero--banner .ev-hero__title{
  font-size:clamp(22px,calc(var(--pw) * .026),31px);
}

.ev-hero--banner .ev-hero__bottom{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:clamp(14px,calc(var(--pw) * .02),28px);
  align-items:center;
  margin-top:clamp(18px,calc(var(--pw) * .022),26px);
}

.ev-hero--banner .ev-hero__schedule,
.ev-hero--banner .ev-hero__cta{ margin:0; }

.ev-entry.is-closed .ev-hero__schedule{ background:#f0f2f4; }
.ev-entry.is-closed .ev-hero__date-year{ color:var(--muted); }

/* ---------- 申込ボタン（LP .cta-button 踏襲） ---------- */

.ev-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-width:min(100%, 300px);
  padding:clamp(13px,calc(var(--pw) * .014),18px) clamp(24px,calc(var(--pw) * .03),40px);
  border:0;
  border-radius:999px;
  background:var(--pink-cta);
  color:var(--white);
  font-family:inherit;
  font-size:clamp(15px,calc(var(--pw) * .015),18px);
  font-weight:900;
  letter-spacing:.04em;
  line-height:1.3;
  box-shadow:0 10px 24px rgba(240,115,155,.32);
  cursor:pointer;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.ev-btn svg{
  flex:0 0 auto;
  width:18px;
  height:18px;
}

.ev-btn:hover{
  transform:translateY(-3px);
  background:var(--pink-cta-hover);
  box-shadow:0 16px 32px rgba(240,115,155,.42);
}

.ev-btn--secondary{
  background:var(--white);
  color:#555;
  border:3px solid #40d4d2;
  box-shadow:none;
}

.ev-btn--secondary:hover{
  background:#f4fffe;
  border-color:#2ec4c2;
  box-shadow:none;
}

.ev-btn--disabled,
.ev-btn--disabled:hover{
  transform:none;
  background:#c3c9d0;
  color:var(--white);
  box-shadow:none;
  cursor:default;
  pointer-events:none;
}

.ev-btn__note{
  display:block;
  margin-top:8px;
  font-size:12px;
  color:var(--muted);
}

/* ---------- 開催概要（定義リスト表） ---------- */

.ev-summary{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:0 clamp(18px,calc(var(--pw) * .03),40px);
  margin:0;
  padding:clamp(18px,calc(var(--pw) * .024),30px) clamp(20px,calc(var(--pw) * .03),36px);
  border-radius:var(--card-radius);
  background:var(--white);
  border:1px solid var(--card-border);
  box-shadow:var(--card-shadow);
}

.ev-summary__row{
  display:grid;
  grid-template-columns:7em minmax(0, 1fr);
  gap:12px;
  padding:13px 0;
  border-bottom:1px solid var(--line);
}

.ev-summary__row:nth-last-child(-n+2){ border-bottom:0; }

/* 主催・共催：社名ごとに <span class="ev-org">。社名の途中では折らず、
   狭い幅では社名単位で改行する（区切りの「／」は 2 つ目以降の前に CSS で付ける） */
.ev-summary__orgs{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:2px 0;
}
/* 複数社のときは行を全幅にして 1 行に収める（テンプレートが「／」入りなら --wide を付ける） */
.ev-summary__row--wide{ grid-column:1 / -1; border-bottom:0; }
.ev-summary:has(.ev-summary__row--wide:last-child) .ev-summary__row:nth-last-child(-n+3):not(.ev-summary__row--wide){ border-bottom:1px solid var(--line); }
.ev-org{ white-space:nowrap; }
.ev-org:not(:last-child)::after{
  content:"／";
  margin:0 .5em;
  color:#b5bcc5;
}
/* スマホは 1 社 1 行で積む（区切り記号なし） */
@media (max-width:600px){
  .ev-summary__orgs{ flex-direction:column; align-items:flex-start; gap:4px; }
  .ev-org:not(:last-child)::after{ content:none; }
}

.ev-summary dt{
  display:flex;
  align-items:flex-start;
  gap:8px;
  color:var(--label);
  font-size:13px;
  font-weight:700;
  letter-spacing:.04em;
}

.ev-summary dt::before{
  content:"";
  flex:0 0 auto;
  width:4px;
  height:1.1em;
  margin-top:.3em;
  border-radius:2px;
  background:var(--blue);
}

.ev-summary dd{
  margin:0;
  color:var(--ink);
  font-size:14px;
  line-height:1.7;
}

.ev-summary dd a{ color:var(--blue-deep); text-decoration:underline; }

/* ---------- こんな方におすすめ（LP TARGET の色面ずらし） ---------- */

.ev-target{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:clamp(14px,calc(var(--pw) * .02),28px);
  list-style:none;
  margin:0;
  padding:0;
}

.ev-target__item{
  --target-color:var(--pink);
  --shape-shift:10px;
  position:relative;
  padding:var(--shape-shift) var(--shape-shift) 0 0;
}

.ev-target__item:nth-child(3n+1){ --target-color:var(--pink); }
.ev-target__item:nth-child(3n+2){ --target-color:var(--yellow); }
.ev-target__item:nth-child(3n+3){ --target-color:var(--blue); }

.ev-target__item::before{
  content:"";
  position:absolute;
  top:0;
  right:0;
  bottom:var(--shape-shift);
  left:var(--shape-shift);
  border-radius:14px;
  background:var(--target-color);
}

.ev-target__card{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:10px;
  height:100%;
  padding:22px 20px 24px;
  border-radius:12px;
  background:var(--white);
  box-shadow:0 6px 18px rgba(29,36,48,.08);
}

/* 「CASE 01」の番号はCSSカウンターで付ける（HTML側に番号を書かなくてよい） */
.ev-target{ counter-reset:ev-case; }

.ev-target__card::before{
  counter-increment:ev-case;
  content:"CASE " counter(ev-case, decimal-leading-zero);
  display:inline-block;
  width:max-content;
  padding:4px 10px;
  border-radius:4px;
  background:#1c1c1e;
  color:var(--white);
  font-size:11px;
  letter-spacing:.08em;
  line-height:1.3;
}

.ev-target__text{
  margin:0;
  color:var(--text);
  font-size:14.5px;
  font-weight:700;
  line-height:1.7;
}

/* ---------- 登壇者 ---------- */

/* 縦型カード。人数ぶんだけ中央に並ぶ（1〜3名）。カード幅は 220〜300px */
.ev-speakers{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(min(100%, 220px), 300px));
  justify-content:center;
  gap:clamp(14px,calc(var(--pw) * .018),22px);
  list-style:none;
  margin:0;
  padding:0;
}

.ev-speaker{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  overflow:hidden;
  padding:clamp(26px,calc(var(--pw) * .028),34px) 20px clamp(22px,calc(var(--pw) * .024),28px);
  border:1px solid var(--card-border);
  border-radius:var(--card-radius);
  background:var(--white);
  box-shadow:var(--card-shadow);
  text-align:center;
}

/* 上部の薄いミント帯。写真が帯に少しかかる */
.ev-speaker::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:clamp(56px,calc(var(--pw) * .06),72px);
  background:var(--section-mint);
}

.ev-speaker > div:not(.ev-speaker__photo){
  width:100%;
  min-width:0;
}

.ev-speaker__photo{
  position:relative;
  flex:0 0 auto;
  width:clamp(108px,calc(var(--pw) * .11),132px);
  height:clamp(108px,calc(var(--pw) * .11),132px);
  overflow:hidden;
  border-radius:50%;
  background:var(--white);
  box-shadow:0 0 0 2px var(--section-teal), 0 0 0 6px var(--white);
}

/* 顔が中央に寄るよう少し拡大して上寄せ（はみ出した分は overflow:hidden で切る） */
.ev-speaker__photo img{
  display:block;
  width:150%;
  height:120%;
  object-fit:cover;
}

.ev-speaker__photo--placeholder{
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--blue-deep);
}

.ev-speaker__photo--placeholder svg{ width:48px; height:48px; }

.ev-speaker__role{
  margin:16px 0 0;
  color:var(--blue-deep);
  font-size:12.5px;
  font-weight:700;
  letter-spacing:.04em;
  line-height:1.5;
  word-break:keep-all;
  overflow-wrap:anywhere;
}

/* 役職（社名の下に一回り小さく） */
.ev-speaker__title{
  margin:2px 0 0;
  color:var(--muted);
  font-size:12px;
  font-weight:400;
  letter-spacing:.02em;
  line-height:1.5;
}

.ev-speaker__name{
  margin:6px 0 0;
  color:var(--ink);
  font-size:clamp(17px,calc(var(--pw) * .017),20px);
  font-weight:900;
  line-height:1.4;
  text-align:center;
}

.ev-speaker__profile{
  margin:12px 0 0;
  color:var(--lead);
  font-size:13px;
  line-height:1.75;
  text-align:left;
}

/* ---------- 本文（自由記述） ---------- */

.ev-body{
  padding:clamp(20px,calc(var(--pw) * .028),36px) clamp(20px,calc(var(--pw) * .03),40px);
  border-radius:var(--card-radius);
  background:var(--white);
  border:1px solid var(--card-border);
  box-shadow:var(--card-shadow);
  font-size:15px;
  line-height:1.9;
  color:var(--text);
}

.ev-body > :first-child{ margin-top:0; }
.ev-body > :last-child{ margin-bottom:0; }

.ev-body h2{
  position:relative;
  margin:40px 0 18px;
  padding:0 0 10px 14px;
  border-bottom:2px solid var(--line);
  color:var(--ink);
  font-size:clamp(18px,calc(var(--pw) * .02),22px);
  font-weight:900;
  line-height:1.5;
  text-align:left;
}

.ev-body h2::before{
  content:"";
  position:absolute;
  top:.25em;
  left:0;
  width:5px;
  height:1.1em;
  border-radius:3px;
  background:var(--blue);
}

.ev-body h3{
  margin:28px 0 12px;
  color:var(--ink);
  font-size:17px;
  font-weight:900;
  line-height:1.5;
}

.ev-body h4{
  margin:22px 0 10px;
  font-size:15.5px;
  font-weight:700;
}

.ev-body p{ margin:0 0 1.2em; }
.ev-body ul,
.ev-body ol{ margin:0 0 1.2em; padding-left:1.6em; }
.ev-body li{ margin:.3em 0; }
.ev-body li::marker{ color:var(--blue-deep); }
.ev-body a{ color:var(--blue-deep); text-decoration:underline; }
.ev-body strong{ font-weight:900; }
.ev-body img{ display:block; max-width:100%; height:auto; margin:1.4em auto; border-radius:10px; }

.ev-body blockquote{
  margin:1.4em 0;
  padding:16px 20px;
  border-left:4px solid var(--section-teal);
  border-radius:0 10px 10px 0;
  background:var(--section-mint);
  color:var(--lead);
}

/* 本文内の表はスマホで幅に収まらないことがあるので、表だけ横スクロールさせる */
.ev-body table{
  display:block;
  width:100%;
  max-width:100%;
  margin:1.4em 0;
  overflow-x:auto;
  border-collapse:collapse;
  font-size:14px;
  -webkit-overflow-scrolling:touch;
}

.ev-body th,
.ev-body td{
  padding:10px 14px;
  border:1px solid var(--line);
  text-align:left;
  vertical-align:top;
}

.ev-body th{
  background:var(--section-mint);
  font-weight:700;
  white-space:nowrap;
}

/* 注意事項ボックス（本文内で <div class="ev-note"> として使える） */
.ev-note{
  margin:1.4em 0;
  padding:16px 20px;
  border:1px solid #f6c9d6;
  border-radius:10px;
  background:#fff6f8;
  font-size:13.5px;
  color:var(--lead);
}

.ev-note__title{
  margin:0 0 6px;
  color:var(--pink);
  font-size:13px;
  font-weight:900;
  letter-spacing:.08em;
}

.ev-note ul{ margin:0; padding-left:1.4em; }

/* ---------- 申込CTA（LP .cta-panel 踏襲） ---------- */

.ev-apply{
  margin-top:clamp(36px,calc(var(--pw) * .05),64px);
  padding:clamp(22px,calc(var(--pw) * .03),44px) clamp(18px,calc(var(--pw) * .03),40px);
  border-radius:var(--panel-radius);
  background:var(--section-teal);
}

.ev-apply__panel{
  max-width:860px;
  margin:0 auto;
  padding:clamp(24px,calc(var(--pw) * .034),48px) clamp(20px,calc(var(--pw) * .034),52px);
  border-radius:clamp(20px,calc(var(--pw) * .03),36px);
  background:var(--white);
  text-align:center;
}

.ev-apply__kicker{
  margin:0;
  color:var(--ink);
  font-size:clamp(15px,calc(var(--pw) * .017),20px);
  font-weight:900;
  letter-spacing:.02em;
}

.ev-apply__title{
  margin:clamp(8px,calc(var(--pw) * .01),14px) 0 0;
  padding:0;
  color:var(--ink);
  font-size:clamp(24px,calc(var(--pw) * .03),36px);
  font-weight:900;
  line-height:1.4;
  letter-spacing:.03em;
}

.ev-apply__lead{
  margin:12px auto 0;
  max-width:36em;
  color:var(--lead);
  font-size:clamp(12.5px,calc(var(--pw) * .012),14px);
  line-height:1.8;
}

.ev-apply__summary{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:8px 20px;
  margin:18px 0 0;
  padding:12px 16px;
  border-radius:10px;
  background:var(--section-mint);
  font-size:13.5px;
  color:var(--ink);
}

.ev-apply__summary span{ display:inline-flex; align-items:center; gap:6px; }
.ev-apply__summary svg{ width:15px; height:15px; color:var(--blue-deep); }

.ev-apply__action{
  margin:clamp(20px,calc(var(--pw) * .026),32px) 0 0;
}

.ev-apply__action .ev-btn{ width:min(100%, 410px); }

/* 申込フォーム（EventApplyUrl の外部フォームを iframe で埋め込み。クロスオリジンのため
   高さは固定し、はみ出した分は iframe 内でスクロールさせる） */
.ev-apply__form{
  margin:clamp(20px,calc(var(--pw) * .026),32px) 0 0;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--white);
}

.ev-apply__form iframe{
  display:block;
  width:100%;
  height:1260px;
  border:0;
}

.ev-apply__fallback{
  margin:12px 0 0;
  color:var(--muted);
  font-size:12.5px;
  line-height:1.6;
}

.ev-apply__fallback a{ color:var(--blue-deep); text-decoration:underline; }

.ev-apply__closed{ display:none; }
.ev-entry.is-closed .ev-apply__open{ display:none; }
.ev-entry.is-closed .ev-apply__closed{ display:block; }

/* ---------- 前後ページャ ---------- */

.ev-pager{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px;
  margin-top:clamp(28px,calc(var(--pw) * .04),48px);
}

.ev-pager__link{
  display:flex;
  flex-direction:column;
  gap:6px;
  height:100%;
  padding:16px 18px;
  border:1px solid var(--card-border);
  border-radius:var(--card-radius);
  background:var(--white);
  box-shadow:var(--card-shadow);
  transition:border-color .2s ease, transform .2s ease;
}

.ev-pager__link:hover{
  border-color:var(--blue);
  transform:translateY(-2px);
}

.ev-pager__item--next .ev-pager__link{ text-align:right; align-items:flex-end; }

.ev-pager__head{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:var(--blue-deep);
  font-size:11px;
  font-weight:900;
  letter-spacing:.14em;
}

.ev-pager__title{
  font-size:13.5px;
  line-height:1.55;
  color:var(--ink);
}

/* ---------- 関連イベント ---------- */

.ev-related{ margin-top:clamp(36px,calc(var(--pw) * .05),64px); }

/* ---------- 一覧へ戻る ---------- */

.ev-back{
  margin-top:clamp(24px,calc(var(--pw) * .03),36px);
  text-align:center;
}

.ev-back a{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--blue-deep);
  font-size:14px;
  font-weight:700;
}

.ev-back a:hover{ text-decoration:underline; }

/* =========================================================
   レスポンシブ
   ========================================================= */

@media (max-width:1024px){
  .ev-layout{
    grid-template-columns:minmax(0, 1fr) 260px;
  }
  .ev-cards--2col{ grid-template-columns:1fr; }
}

@media (max-width:820px){
  :root{
    --gutter:20px;
    --nav-pad-y:10px;
    --nav-logo-h:40px;
  }

  .ev-main{ padding-bottom:96px; }

  .pc-only{ display:none; }
  .sp-only{ display:inline; }

  .ev-eyebrow{ margin-bottom:-.28em; }

  .ev-cards,
  .ev-cards--2col{ grid-template-columns:1fr; }

  .ev-layout{
    grid-template-columns:1fr;
  }

  .ev-sidebar{ position:static; }

  .ev-hero__inner{
    grid-template-columns:1fr;
    padding:18px 18px 22px;
  }

  .ev-hero__visual{ order:-1; aspect-ratio:16 / 9; }

  .ev-hero__schedule{
    grid-template-columns:1fr;
    gap:8px;
  }

  .ev-hero__cta .ev-btn{ width:100%; }

  .ev-hero--banner .ev-hero__visual{ aspect-ratio:auto; }
  .ev-hero--banner .ev-hero__text{ padding:18px 16px 22px; }
  .ev-hero--banner .ev-hero__bottom{ grid-template-columns:1fr; gap:14px; }
}

/* スマホのヒーロー見出し：画面幅に比例させ、<br> までの 1 行目（15 字程度）が
   途中で折れないようにする（390px で約 20px、360px で約 18.4px） */
@media (max-width:600px){
  .ev-hero__title,
  .ev-hero--banner .ev-hero__title{
    font-size:clamp(17px, 5.1vw, 21px);
    letter-spacing:0;
    line-height:1.5;
  }

  .ev-summary{
    grid-template-columns:1fr;
    padding:6px 18px;
  }

  .ev-summary__row{ grid-template-columns:6em minmax(0, 1fr); }
  .ev-summary__row:nth-last-child(-n+2){ border-bottom:1px solid var(--line); }
  .ev-summary__row:last-child{ border-bottom:0; }

  .ev-target{ grid-template-columns:1fr; gap:18px; }

  /* スマホは縦型カードのまま 1 列に積む（写真と肩書きを大きく見せる） */
  .ev-speakers{ grid-template-columns:1fr; gap:14px; }
  .ev-speaker{ padding:26px 20px 22px; }
  .ev-speaker::before{ height:60px; }
  .ev-speaker__photo{ width:104px; height:104px; }
  .ev-speaker__role{ margin-top:14px; font-size:12.5px; }
  .ev-speaker__title{ font-size:12px; }
  .ev-speaker__name{ font-size:18px; }
  .ev-speaker__profile{ font-size:12.5px; }

  .ev-body{ font-size:14.5px; }

  .ev-apply{ padding:16px; border-radius:24px; }
  .ev-apply__panel{ padding:24px 18px; border-radius:18px; }
  .ev-apply__form{ margin-left:-6px; margin-right:-6px; border-radius:12px; }
  .ev-apply__form iframe{ height:1420px; }

  .ev-pager{ grid-template-columns:1fr; }
}

@media (max-width:480px){
  .ev-card__date{ min-width:56px; padding:7px 8px 6px; }
  .ev-card__date-day{ font-size:22px; }
  .ev-more a{ min-width:0; width:100%; }
}

/* iPhone SE（320〜375px）。横スクロールが出ないよう余白と文字を一段詰める */
@media (max-width:380px){
  :root{ --gutter:16px; }

  .ev-breadcrumb{ font-size:11px; }
  .ev-breadcrumb li[aria-current]{ max-width:14em; }

  .ev-eyebrow{ font-size:52px; }
  .ev-pagetitle{ font-size:22px; }

  .ev-heading__title{ font-size:19px; }
  .ev-badge{ padding:3px 8px; font-size:10px; }

  .ev-hero{ border-radius:20px; }
  .ev-hero__inner,
  .ev-hero--banner .ev-hero__text{ padding:16px 14px 20px; }
  .ev-hero__title,
  .ev-hero--banner .ev-hero__title{ font-size:clamp(16px, 5.1vw, 20px); }
  .ev-hero__lead{ font-size:13px; }
  .ev-hero__schedule{ padding:12px 14px; }
  .ev-hero__date-md{ font-size:26px; }
  .ev-hero__timeplace{ font-size:13px; }

  .ev-btn{ padding:13px 18px; font-size:15px; }

  .ev-summary{ padding:4px 14px; }
  .ev-summary__row{ grid-template-columns:5em minmax(0, 1fr); gap:8px; padding:11px 0; }
  .ev-summary dd{ font-size:13.5px; }

  .ev-body{ padding:18px 16px; font-size:14px; }
  .ev-body h2{ font-size:17px; }

  .ev-target__card{ padding:18px 16px 20px; }
  .ev-target__text{ font-size:14px; }

  .ev-speakers{ gap:12px; }
  .ev-speaker{ padding:22px 16px 20px; }
  .ev-speaker::before{ height:54px; }
  .ev-speaker__photo{ width:92px; height:92px; }
  .ev-speaker__name{ font-size:17px; }

  .ev-apply{ padding:12px; border-radius:20px; }
  .ev-apply__panel{ padding:22px 14px; border-radius:16px; }
  .ev-apply__title{ font-size:21px; }
  .ev-apply__summary{ gap:6px 14px; padding:10px 12px; font-size:12.5px; }

  .ev-widget{ padding:16px 14px 18px; }
}

@media (prefers-reduced-motion:reduce){
  .ev-card,
  .ev-card__thumb img,
  .ev-btn,
  .ev-pager__link{ transition:none; }
}

/* =========================================================
   資料DL CTA（BellbizHR.RequestDocCTA モジュール用・イベントトンマナ版）
   申込パネル(.ev-apply)と同じ「ティール面＋白パネル」、見出しは .ev-heading、
   ボタンは .ev-btn と同じピンクのピル。モジュール HTML はコラムと共通。
   ========================================================= */
.ev-main .cta-request-doc{ margin:0; }

.ev-main .cta-request-doc.cta-request-doc--panel{
  padding:clamp(18px,calc(var(--pw) * .024),32px);
  border:0;
  border-radius:var(--panel-radius);
  background:var(--section-teal);
  box-shadow:none;
  overflow:visible;
}

.ev-main .cta-request-doc p{
  margin:0;
  padding:0;
  background:none;
  letter-spacing:normal;
}

.ev-main .cta-request-doc .cta-request-doc__head,
.ev-main .cta-request-doc .cta-request-doc__body{
  background:var(--white);
}

.ev-main .cta-request-doc .cta-request-doc__head{
  padding:clamp(24px,calc(var(--pw) * .03),40px) clamp(20px,calc(var(--pw) * .03),44px) 0;
  border-radius:clamp(18px,calc(var(--pw) * .026),30px) clamp(18px,calc(var(--pw) * .026),30px) 0 0;
  text-align:center;
}

.ev-main .cta-request-doc .cta-request-doc__eyebrow{
  display:table;
  margin:0 auto 14px;
  padding:0 0 7px .2em;
  border-bottom:2px solid currentColor;
  color:var(--blue-deep);
  font-size:clamp(12px,calc(var(--pw) * .012),14px);
  font-weight:900;
  letter-spacing:.14em;
  line-height:1.5;
}

.ev-main .cta-request-doc .cta-request-doc__main{
  color:var(--ink);
  font-size:clamp(20px,calc(var(--pw) * .026),30px);
  font-weight:900;
  line-height:1.4;
  letter-spacing:.03em;
}

.ev-main .cta-request-doc .cta-request-doc__body{
  padding:clamp(16px,calc(var(--pw) * .02),24px) clamp(20px,calc(var(--pw) * .03),44px) clamp(26px,calc(var(--pw) * .032),40px);
  border-radius:0 0 clamp(18px,calc(var(--pw) * .026),30px) clamp(18px,calc(var(--pw) * .026),30px);
  text-align:center;
}

.ev-main .cta-request-doc .cta-request-doc__text{
  max-width:40em;
  margin:0 auto 10px;
  color:var(--lead);
  font-size:clamp(13px,calc(var(--pw) * .013),15px);
  font-weight:400;
  line-height:1.9;
  letter-spacing:.02em;
  text-align:left;
}
.ev-main .cta-request-doc .cta-request-doc__text:last-of-type{ margin-bottom:clamp(20px,calc(var(--pw) * .026),30px); }

.ev-main .cta-request-doc .cta-request-doc__button{ text-align:center; }

.ev-main .cta-request-doc .cta-request-doc__button a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:min(100%, 410px);
  padding:clamp(13px,calc(var(--pw) * .014),18px) clamp(24px,calc(var(--pw) * .03),40px);
  border:0;
  border-radius:999px;
  background:var(--pink-cta);
  color:var(--white);
  font-size:clamp(15px,calc(var(--pw) * .015),18px);
  font-weight:900;
  line-height:1.3;
  letter-spacing:.02em;
  text-decoration:none;
  box-sizing:border-box;
  box-shadow:0 12px 26px rgba(240,115,155,.36);
  transition:transform .2s ease, background .2s ease, box-shadow .2s ease;
}
.ev-main .cta-request-doc .cta-request-doc__button a:hover{
  transform:translateY(-3px);
  background:var(--pink-cta-hover);
  box-shadow:0 16px 32px rgba(240,115,155,.42);
}

/* 一覧・カテゴリのサイドバー（幅320px以下）はコンパクトに */
.ev-sidebar .cta-request-doc.cta-request-doc--panel{ padding:12px; border-radius:var(--card-radius); }
.ev-sidebar .cta-request-doc .cta-request-doc__head{ padding:20px 16px 0; border-radius:10px 10px 0 0; }
.ev-sidebar .cta-request-doc .cta-request-doc__eyebrow{ margin-bottom:10px; font-size:11px; letter-spacing:.08em; }
.ev-sidebar .cta-request-doc .cta-request-doc__main{ font-size:18px; }
.ev-sidebar .cta-request-doc .cta-request-doc__body{ padding:12px 16px 20px; border-radius:0 0 10px 10px; }
.ev-sidebar .cta-request-doc .cta-request-doc__text{ font-size:13px; line-height:1.8; }
.ev-sidebar .cta-request-doc .cta-request-doc__text:last-of-type{ margin-bottom:16px; }
.ev-sidebar .cta-request-doc .cta-request-doc__button a{ width:100%; padding:12px 16px; font-size:14px; box-shadow:0 8px 18px rgba(240,115,155,.3); }

@media (max-width:768px){
  .ev-main .cta-request-doc.cta-request-doc--panel{ padding:12px; border-radius:20px; }
  .ev-main .cta-request-doc .cta-request-doc__head{ padding:22px 16px 0; border-radius:14px 14px 0 0; }
  .ev-main .cta-request-doc .cta-request-doc__eyebrow{ font-size:11.5px; letter-spacing:.08em; }
  .ev-main .cta-request-doc .cta-request-doc__main{ font-size:19px; }
  .ev-main .cta-request-doc .cta-request-doc__body{ padding:14px 16px 24px; border-radius:0 0 14px 14px; }
  .ev-main .cta-request-doc .cta-request-doc__text{ font-size:13.5px; line-height:1.85; }
  .ev-main .cta-request-doc .cta-request-doc__button a{ width:100%; padding:14px 20px; font-size:15px; }
}

@media (prefers-reduced-motion:reduce){
  .ev-main .cta-request-doc .cta-request-doc__button a{ transition:none; }
}
