/* DXポート 共通スタイル（サイト刷新・架電直結型）
   デザイントークンは design_handoff_dxport/tokens.css の値をそのまま採用。
   1440px のデザインを基準に、960px／640px でモバイルに畳む。 */
:root{
  --dx-blue:#1E6CFF;
  --dx-blue-light:#3B86FF;
  --dx-blue-soft:#7fa6ff;
  --dx-navy:#0b1a3a;
  --dx-text:#41506b;
  --dx-text-muted:#8a97ad;
  --dx-text-sub:#5b6a85;
  --dx-bg-soft:#f6f9ff;
  --dx-bg-tint:#eef3fb;
  --dx-bg-gray:#f4f6fa;
  --dx-line:rgba(11,26,58,.08);
  --dx-line-soft:rgba(11,26,58,.06);
  --dx-line-strong:rgba(11,26,58,.14);
  --dx-required:#e0452a;
  --dx-on-navy:#b9c6e0;
  --dx-on-navy-muted:#9fb0d0;
  --font-heading:'Zen Kaku Gothic New',sans-serif;
  --font-body:'Noto Sans JP',sans-serif;
  --font-num:'Plus Jakarta Sans',sans-serif;
  --font-mark:'Sora',sans-serif;
  --radius-pill:999px; --radius-card:20px; --radius-input:10px; --radius-tag:6px;
  --shadow-card:0 1px 2px rgba(11,26,58,.04);
  --shadow-hover:0 14px 30px -12px rgba(11,26,58,.22);
  --shadow-cta:0 12px 28px -10px rgba(30,108,255,.5);
  --grad-cta:linear-gradient(135deg,#3B86FF 0%,#1E6CFF 100%);
  --container-pad:56px; --page-max:1440px; --doc-max:800px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--dx-navy);font-family:var(--font-body);-webkit-font-smoothing:antialiased;line-height:1.6}
a{color:var(--dx-blue);text-decoration:none}
button{font-family:inherit}
img{max-width:100%;display:block}
[hidden]{display:none!important}
.dx-page{width:100%;overflow-x:hidden}
.dx-wrap{max-width:var(--page-max);margin:0 auto}

/* ---------- 動き ---------- */
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes pop{from{opacity:0;transform:scale(.96) translateY(10px)}to{opacity:1;transform:none}}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(30,108,255,.45)}100%{box-shadow:0 0 0 12px rgba(30,108,255,0)}}
@keyframes drift{0%{transform:translate(0,0)}50%{transform:translate(0,-14px)}100%{transform:translate(0,0)}}
.rise{animation:rise .7s cubic-bezier(.2,.7,.2,1) both}
.rise-1{animation-delay:.04s}.rise-2{animation-delay:.08s}.rise-3{animation-delay:.16s}.rise-4{animation-delay:.24s}.rise-5{animation-delay:.32s}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
}

/* ---------- ボタン ---------- */
.dx-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;cursor:pointer;border-radius:var(--radius-pill);font:700 14px var(--font-body);white-space:nowrap;transition:transform .18s,box-shadow .18s}
.dx-btn:hover{transform:translateY(-2px)}
.dx-btn--grad{background:var(--grad-cta);color:#fff;padding:12px 20px;box-shadow:0 6px 18px rgba(30,108,255,.28)}
.dx-btn--grad:hover{color:#fff}
.dx-btn--lg{padding:15px 28px;font-size:15px;box-shadow:var(--shadow-cta)}
.dx-btn--white{background:#fff;color:var(--dx-navy);padding:12px 22px}
.dx-btn--white:hover{color:var(--dx-navy)}
.dx-btn--navy{background:var(--dx-navy);color:#fff;padding:0 22px;height:46px}
.dx-btn--navy:hover{color:#fff}
.dx-ext-icon{width:12px;height:12px;flex:none}

/* ---------- ヘッダー ---------- */
.dx-header{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:20px;height:76px;padding:0 var(--container-pad);background:rgba(255,255,255,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--dx-line-soft)}
.dx-logo{display:flex;align-items:center;gap:10px;color:inherit}
.dx-logo__mark{width:36px;height:36px;flex:none}
.dx-logo__text{display:flex;flex-direction:column;justify-content:center;gap:3px;line-height:1}
.dx-logo__name{display:flex;align-items:baseline;line-height:1;font:900 24px/1 var(--font-heading);white-space:nowrap}
.dx-logo__name b{font-weight:900;letter-spacing:.02em;color:var(--dx-blue)}
.dx-logo__name span{letter-spacing:.06em;color:var(--dx-navy)}
.dx-logo__en{font:700 9px/1 var(--font-mark);letter-spacing:.32em;color:var(--dx-text-muted)}
.dx-logo--sm .dx-logo__mark{width:32px;height:32px}
.dx-logo--sm .dx-logo__name{font-size:22px}
.dx-logo--xs .dx-logo__mark{width:24px;height:24px}
.dx-logo--xs .dx-logo__name{font-size:16px}
.dx-logo--xs .dx-logo__en{font-size:8px}
.dx-nav{display:flex;gap:32px;font:500 15px var(--font-body);color:var(--dx-text)}
.dx-nav a{color:var(--dx-text);display:inline-flex;align-items:center;gap:4px}
.dx-nav a:hover{color:var(--dx-navy)}
.dx-nav .is-current{color:var(--dx-navy);font-weight:700;border-bottom:2px solid var(--dx-blue);padding-bottom:2px}
.dx-header__right{display:flex;align-items:center;gap:12px}
.dx-hours{font:500 13px var(--font-body);color:var(--dx-text)}
.dx-nav-toggle{display:none;width:40px;height:40px;border:1.5px solid var(--dx-line-strong);border-radius:10px;background:#fff;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:0}
.dx-nav-toggle span{display:block;width:18px;height:2px;border-radius:2px;background:var(--dx-navy)}

/* ---------- ヒーロー（TOP） ---------- */
.dx-hero{position:relative;overflow:hidden;background:linear-gradient(160deg,#eaf1ff 0%,#f6f9ff 45%,#ffffff 100%);padding:64px var(--container-pad) 56px}
.dx-hero__dots{position:absolute;inset:0;background-image:radial-gradient(rgba(30,108,255,.13) 1px,transparent 1px);background-size:22px 22px;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.9),transparent 80%);mask-image:linear-gradient(180deg,rgba(0,0,0,.9),transparent 80%);pointer-events:none}
.dx-hero__glow{position:absolute;right:-120px;top:-160px;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(30,108,255,.16),rgba(30,108,255,0) 70%);pointer-events:none;animation:drift 9s ease-in-out infinite}
.dx-hero__grid{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.dx-hero__left{display:flex;flex-direction:column;gap:22px}
.dx-hero__badge{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;background:#fff;border:1.5px solid var(--dx-blue);color:var(--dx-blue);border-radius:var(--radius-pill);padding:7px 14px 7px 10px;font:700 13px var(--font-body)}
.dx-hero__stop{align-self:flex-start;margin-top:-12px;font:500 12px var(--font-body);color:var(--dx-text-muted);text-decoration:underline;text-underline-offset:3px}
.dx-hero__stop:hover{color:var(--dx-blue)}
/* 1181〜1440px（15インチ・拡大率150%など）で「申／込み」が分断されないよう、見出しは幅に追従させる */
.dx-hero__title{margin:0;font:900 clamp(48px,4vw,58px)/1.22 var(--font-heading);letter-spacing:-.01em;color:var(--dx-navy);text-wrap:pretty}
.dx-hero__nowrap{white-space:nowrap}
.dx-hero__mark{position:relative;display:inline-block;color:var(--dx-blue)}
.dx-hero__mark>span{position:relative;z-index:1}
.dx-hero__mark::after{content:"";position:absolute;left:-2px;right:-2px;bottom:6px;height:14px;background:rgba(30,108,255,.16);border-radius:3px}
.dx-hero__lead{margin:0;font:400 17px/1.8 var(--font-body);color:var(--dx-text);max-width:520px}
.dx-hero__block{display:flex;flex-direction:column;gap:12px}
.dx-hero__label{display:flex;align-items:center;gap:8px;font:700 12px var(--font-body);letter-spacing:.14em;color:var(--dx-blue)}
.dx-hero__label--muted{color:var(--dx-text-muted);letter-spacing:.14em;gap:8px}

/* 主催企業タイル */
.dx-hosts{display:flex;gap:10px;flex-wrap:wrap}
.dx-host{cursor:pointer;display:flex;flex-direction:column;align-items:stretch;gap:0;padding:6px;border-radius:16px;border:2px solid rgba(11,26,58,.12);background:#fff;box-shadow:var(--shadow-card);transition:all .18s ease;width:156px;text-align:left;color:var(--dx-text)}
.dx-host:hover{transform:translateY(-2px)}
.dx-host.is-on{border-color:var(--dx-blue);background:var(--dx-bg-tint);box-shadow:0 8px 20px rgba(30,108,255,.22);color:var(--dx-blue)}
.dx-host__logo{height:64px;border-radius:10px;overflow:hidden;background:#fff;display:grid;place-items:center;padding:8px 12px;font:900 17px var(--font-heading);color:var(--dx-navy)}
.dx-host__logo img{width:100%;height:100%;max-height:48px;object-fit:contain}
.dx-host__foot{display:flex;justify-content:space-between;align-items:center;padding:8px 6px 4px;font:700 12px var(--font-body)}
.dx-host__count{opacity:.75}
/* 過去共催（0件・終了しました）: 押すと右の注目カードにクリエイティブが出る。枠は破線・文字は薄く */
.dx-host--past{border-style:dashed;border-color:rgba(11,26,58,.16);box-shadow:none}
.dx-host--past.is-on{border-style:solid}
.dx-host--past .dx-host__foot{color:var(--dx-text-muted)}
/* 運営会社ロゴ→押すと右の注目カードに研修クリエイティブ（CTAで特設サイトへ） */
.dx-host--link{text-decoration:none;border-color:rgba(30,108,255,.35)}
.dx-host--link:hover{border-color:var(--dx-blue);box-shadow:0 8px 20px rgba(30,108,255,.22)}
.dx-host--link .dx-host__foot{color:var(--dx-blue)}

/* 日程ピル */
.dx-dates{display:flex;gap:8px;flex-wrap:wrap}
.dx-date{cursor:pointer;display:inline-flex;align-items:baseline;gap:4px;padding:9px 14px;border-radius:var(--radius-pill);border:1.5px solid rgba(11,26,58,.16);background:#fff;color:var(--dx-navy);font:700 14px var(--font-heading);transition:all .18s ease}
.dx-date span{font:500 11px var(--font-body);opacity:.8}
.dx-date.is-on{background:var(--dx-blue);color:#fff;border-color:var(--dx-blue);box-shadow:0 8px 20px rgba(30,108,255,.3)}

/* 注目カード */
.dx-featured{position:relative;animation:pop .8s .2s cubic-bezier(.2,.7,.2,1) both;scroll-margin-top:88px}
.dx-featured__back{position:absolute;left:-18px;top:-18px;right:18px;bottom:18px;border-radius:28px;background:var(--dx-blue);opacity:.08;transform:rotate(-2deg)}
.dx-featured__card{position:relative;background:#fff;border-radius:24px;box-shadow:0 30px 60px -20px rgba(11,26,58,.28),0 2px 6px rgba(11,26,58,.06);overflow:hidden}
.dx-featured__media{position:relative;aspect-ratio:1200/628;background:var(--dx-bg-tint)}
.dx-featured__media img{width:100%;height:100%;object-fit:contain}
/* ショーケースでクリエイティブが無い企業はロゴを中央に小さく出す */
.dx-featured__media.is-logo{background:#fff}
.dx-featured__media.is-logo img{box-sizing:border-box;padding:22% 26%}
.dx-featured__badges{position:absolute;left:18px;top:18px;display:flex;gap:8px;pointer-events:none}
.dx-featured__badge{display:inline-flex;align-items:center;gap:6px;background:#fff;border-radius:var(--radius-pill);padding:6px 12px;font:700 12px var(--font-body);color:var(--dx-navy)}
.dx-featured__badge--dark{background:rgba(11,26,58,.85);color:#fff}
.dx-featured__pulse{width:8px;height:8px;border-radius:50%;background:var(--dx-blue);animation:pulse 1.6s ease-out infinite}
.dx-featured__cd{background:var(--dx-navy);color:#fff;padding:10px 24px;display:flex;gap:14px;align-items:baseline;justify-content:flex-end}
.dx-featured__cd-label{font:500 11px var(--font-body);color:var(--dx-on-navy-muted);letter-spacing:.12em}
.dx-featured__cd-num{font:800 22px var(--font-mark);letter-spacing:.02em;font-variant-numeric:tabular-nums}
.dx-featured__cd-unit{font:500 12px var(--font-body);margin:0 6px 0 2px;color:var(--dx-on-navy-muted)}
.dx-featured__cd-unit:last-child{margin-right:0}
.dx-featured__body{padding:22px 24px 24px;display:flex;flex-direction:column;gap:14px}
.dx-featured__head{display:flex;gap:18px;align-items:flex-start}
.dx-featured__date{flex:none;text-align:center;background:var(--dx-bg-tint);border-radius:14px;padding:8px 12px;min-width:66px}
.dx-featured__month{font:700 11px var(--font-body);color:var(--dx-blue);letter-spacing:.1em}
.dx-featured__day{font:800 32px/1 var(--font-mark);color:var(--dx-navy)}
.dx-featured__wd{font:700 12px var(--font-body);color:var(--dx-text)}
.dx-featured__text{display:flex;flex-direction:column;gap:6px;min-width:0}
.dx-featured__title{font:900 19px/1.45 var(--font-heading);color:var(--dx-navy);text-wrap:pretty}
.dx-featured__meta{font:500 13px var(--font-body);color:var(--dx-text)}
.dx-featured__tags{display:flex;gap:6px;flex-wrap:wrap;font:500 12px var(--font-body);color:var(--dx-text)}
.dx-featured__tags span{background:var(--dx-bg-gray);border-radius:var(--radius-tag);padding:4px 8px}
.dx-featured__cta{display:flex;align-items:center;justify-content:center;gap:10px;background:var(--grad-cta);color:#fff;border-radius:14px;padding:16px;font:700 17px var(--font-body);box-shadow:0 10px 24px rgba(30,108,255,.32);transition:transform .18s}
.dx-featured__cta:hover{transform:translateY(-2px);color:#fff}
.dx-featured__cta-sub{font:500 13px var(--font-body);opacity:.85}

/* ---------- 数字帯 ---------- */
.dx-facts{border-top:1px solid var(--dx-line-soft);border-bottom:1px solid var(--dx-line-soft);background:#fff;display:flex;justify-content:space-between;align-items:center;padding:26px var(--container-pad);gap:24px}
.dx-fact{display:flex;align-items:baseline;gap:8px}
.dx-fact__num{font:800 38px/1 var(--font-num);letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--dx-navy)}
.dx-fact__unit{font:700 15px var(--font-heading);margin-left:4px;color:var(--dx-navy)}
.dx-fact__desc{font:500 13px var(--font-body);color:var(--dx-text-sub)}
.dx-facts__sep{width:1px;height:36px;background:var(--dx-line)}

/* ---------- セクション共通 ---------- */
.dx-section{padding:72px var(--container-pad);background:#fff}
.dx-section--soft{background:var(--dx-bg-soft);padding:64px var(--container-pad) 72px}
.dx-eyebrow{font:700 12px var(--font-body);letter-spacing:.16em;color:var(--dx-blue);margin-bottom:12px}
.dx-h2{margin:0;font:900 36px/1.3 var(--font-heading);color:var(--dx-navy)}
.dx-h2 small{font:500 16px var(--font-body);color:var(--dx-text);margin-left:10px}
.dx-lead{margin:14px 0 0;font:400 15px/1.8 var(--font-body);color:var(--dx-text)}

/* HOW TO */
.dx-howto{display:grid;grid-template-columns:320px 1fr;gap:48px;align-items:start}
.dx-howto__steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.dx-step{position:relative;background:var(--dx-bg-soft);border-radius:var(--radius-card);padding:28px 24px 24px;display:flex;flex-direction:column;gap:12px;min-height:200px}
.dx-step__num{font:800 40px/1 var(--font-mark);color:var(--dx-blue)}
.dx-step__title{font:900 18px var(--font-heading)}
.dx-step__desc{font:400 13.5px/1.7 var(--font-body);color:var(--dx-text)}
.dx-step--navy{background:var(--dx-navy);color:#fff}
.dx-step--navy .dx-step__num{color:var(--dx-blue-soft)}
.dx-step--navy .dx-step__desc{color:var(--dx-on-navy)}

/* ---------- 絞り込み ---------- */
.dx-upcoming__head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:26px}
.dx-filters{display:flex;flex-direction:column;gap:10px;margin-bottom:22px}
.dx-filter-row{display:flex;align-items:center;gap:12px}
.dx-filter-row__label{flex:none;width:72px;font:700 12px var(--font-body);letter-spacing:.08em;color:var(--dx-text-muted)}
.dx-pills{display:flex;gap:8px;flex-wrap:wrap}
.dx-pill{cursor:pointer;padding:9px 14px;border-radius:var(--radius-pill);border:1.5px solid rgba(11,26,58,.12);background:#fff;color:var(--dx-text);font:700 13px var(--font-body);transition:all .18s ease}
.dx-pill--host.is-on{background:var(--dx-bg-tint);color:var(--dx-blue);border-color:var(--dx-blue)}
.dx-pill--cat.is-on{background:var(--dx-navy);color:#fff;border-color:var(--dx-navy)}
.dx-pill--date.is-on{background:var(--dx-blue);color:#fff;border-color:var(--dx-blue)}

/* ---------- 行（TOP） ---------- */
.dx-rows{display:flex;flex-direction:column;gap:12px}
.dx-row{display:grid;grid-template-columns:88px 200px 1fr auto;gap:24px;align-items:center;background:#fff;border-radius:18px;padding:16px 20px 16px 16px;border:1px solid var(--dx-line-soft);box-shadow:var(--shadow-card);animation:rise .4s both;transition:box-shadow .2s,transform .2s;color:inherit}
.dx-row:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px);color:inherit}
.dx-row__date{text-align:center;background:var(--dx-bg-tint);border-radius:12px;padding:10px 0;color:var(--dx-navy)}
.dx-row.is-first .dx-row__date{background:var(--dx-blue);color:#fff}
.dx-row__day{font:800 30px/1 var(--font-mark)}
.dx-row__wd{font:700 12px var(--font-body);opacity:.8;margin-top:3px}
.dx-row__thumb{height:104px;border-radius:12px;overflow:hidden;background:var(--dx-bg-tint)}
.dx-row__thumb img,.dx-card__thumb img{width:100%;height:100%;object-fit:cover}
.dx-row__body{display:flex;flex-direction:column;gap:8px;min-width:0}
.dx-row__title{font:900 19px/1.4 var(--font-heading);color:var(--dx-navy);text-wrap:pretty}
.dx-row__meta,.dx-card__meta{display:flex;gap:14px;align-items:center;flex-wrap:wrap;font:500 13px var(--font-body);color:var(--dx-text)}
.dx-tag{background:var(--dx-bg-tint);color:var(--dx-blue);border-radius:var(--radius-tag);padding:3px 8px;font-weight:700}
.dx-tag--target{background:#fff4ef;color:#b24a2a}
.dx-row__btn{display:inline-flex;align-items:center;gap:8px;padding:13px 22px;border-radius:var(--radius-pill);background:#fff;color:var(--dx-blue);border:1.5px solid var(--dx-blue);font:700 14px var(--font-body);white-space:nowrap}
.dx-row.is-first .dx-row__btn{background:var(--dx-blue);color:#fff}
.dx-empty{background:#fff;border-radius:18px;padding:36px;text-align:center;border:1.5px dashed rgba(30,108,255,.4);font:500 15px var(--font-body);color:var(--dx-text)}
.dx-more{margin-top:22px;text-align:right;font:700 15px var(--font-body)}

/* 行ホバーでバナーを大きく表示（JSが body 直下に生成） */
.dx-preview{position:fixed;z-index:70;border-radius:14px;overflow:hidden;background:var(--dx-bg-tint);border:1px solid var(--dx-line);box-shadow:0 22px 60px rgba(11,26,58,.28);pointer-events:none;opacity:0;visibility:hidden;transform:scale(.96);transition:opacity .16s ease,transform .16s ease,visibility 0s .16s}
.dx-preview.is-on{opacity:1;visibility:visible;transform:none;transition:opacity .16s ease,transform .16s ease}
.dx-preview img{width:100%;height:auto;display:block}

/* ---------- 一覧（カード） ---------- */
.dx-list{display:flex;flex-direction:column;gap:12px}
.dx-list__bar{display:flex;justify-content:space-between;font:500 13px var(--font-body);color:var(--dx-text-muted);margin-bottom:4px}
.dx-group{display:flex;flex-direction:column;gap:12px}
.dx-group__head{display:flex;align-items:center;gap:12px;margin:14px 0 2px;color:var(--dx-navy)}
.dx-group.is-first .dx-group__head{color:var(--dx-blue)}
.dx-group__label{font:800 16px var(--font-mark)}
.dx-group__badge{font:700 12px var(--font-body);background:var(--dx-bg-gray);border-radius:var(--radius-tag);padding:3px 8px}
.dx-group.is-first .dx-group__badge{background:var(--dx-bg-tint)}
.dx-group__line{flex:1;height:1px;background:var(--dx-line)}
.dx-card{display:grid;grid-template-columns:180px 1fr auto;gap:22px;align-items:center;background:#fff;border-radius:16px;padding:14px;border:1px solid var(--dx-line);transition:box-shadow .2s,transform .2s;color:inherit;animation:rise .4s both}
.dx-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px);color:inherit}
.dx-card__thumb{height:96px;border-radius:10px;overflow:hidden;background:var(--dx-bg-tint)}
.dx-card__body{display:flex;flex-direction:column;gap:8px;min-width:0}
.dx-card__title{font:900 18px/1.4 var(--font-heading);color:var(--dx-navy)}
.dx-card__time{font:700 14px var(--font-mark);color:var(--dx-navy)}
.dx-card__btn{padding:12px 22px;border-radius:var(--radius-pill);background:#fff;color:var(--dx-blue);border:1.5px solid var(--dx-blue);font:700 14px var(--font-body);white-space:nowrap}
.dx-group.is-first .dx-card:first-of-type .dx-card__btn{background:var(--dx-blue);color:#fff}
.dx-list-hero{background:linear-gradient(180deg,#f6f9ff,#fff);padding:40px var(--container-pad) 28px;border-bottom:1px solid var(--dx-line-soft)}
.dx-list-hero h1{margin:0;font:900 40px/1.2 var(--font-heading);color:var(--dx-navy)}
.dx-list-hero p{margin:10px 0 0;font:400 15px var(--font-body);color:var(--dx-text)}
.dx-list-hero .dx-filters{margin:28px 0 0;gap:12px}
.dx-list-hero .dx-filter-row{gap:14px}
.dx-list-hero .dx-filter-row__label{letter-spacing:.1em}
.dx-notify{margin:0 var(--container-pad) 56px;background:var(--dx-bg-soft);border-radius:var(--radius-card);padding:28px 32px;display:flex;justify-content:space-between;align-items:center;gap:24px}
.dx-notify__title{font:900 18px var(--font-heading);color:var(--dx-navy)}
.dx-notify__desc{font:400 14px var(--font-body);color:var(--dx-text);margin-top:4px}

/* ---------- 研修帯 ---------- */
.dx-training{position:relative;background:var(--dx-navy);color:#fff;padding:0 var(--container-pad);overflow:hidden}
.dx-training__grid{display:grid;grid-template-columns:1fr 440px;gap:56px;align-items:center;min-height:300px}
.dx-training__text{padding:56px 0;display:flex;flex-direction:column;gap:14px}
.dx-training .dx-eyebrow{color:var(--dx-blue-soft);margin:0}
.dx-training h2{margin:0;font:900 32px/1.35 var(--font-heading);text-wrap:pretty}
.dx-training p{margin:0;font:400 15px/1.8 var(--font-body);color:var(--dx-on-navy);max-width:520px}
.dx-training__facts{display:flex;gap:18px;font:500 14px var(--font-body);color:var(--dx-on-navy);flex-wrap:wrap}
.dx-training__facts b{color:#fff;font:800 18px var(--font-mark)}
.dx-training__media{position:relative;height:100%;min-height:300px}
.dx-training__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.dx-training__media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0b1a3a 0%,rgba(11,26,58,0) 40%);pointer-events:none}

/* ---------- 参加者の声 ---------- */
.dx-voice__grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.dx-quote{display:grid;grid-template-columns:72px 1fr;gap:20px;background:var(--dx-bg-soft);border-radius:var(--radius-card);padding:26px}
.dx-quote__avatar{width:72px;height:72px;border-radius:50%;background:var(--dx-bg-tint);color:var(--dx-blue);display:grid;place-items:center;font:800 26px var(--font-mark);overflow:hidden}
.dx-quote__avatar img{display:block;width:100%;height:100%;object-fit:cover}
.dx-quote__text{font:500 15px/1.85 var(--font-body);color:var(--dx-navy)}
.dx-quote__who{margin-top:12px;font:500 13px var(--font-body);color:var(--dx-text-muted)}

/* ---------- 最終CTA ---------- */
.dx-final{position:relative;overflow:hidden;background:linear-gradient(135deg,#1E6CFF 0%,#2f7bff 60%,#5f9bff 100%);color:#fff;padding:72px var(--container-pad);text-align:center}
.dx-final__dots{position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.18) 1px,transparent 1px);background-size:22px 22px;pointer-events:none}
.dx-final h2{position:relative;margin:0;font:900 40px/1.3 var(--font-heading)}
.dx-final p{position:relative;margin:12px 0 26px;font:400 16px var(--font-body);opacity:.92}
.dx-final__btn{position:relative;display:inline-flex;align-items:center;gap:10px;background:#fff;color:var(--dx-blue);border-radius:var(--radius-pill);padding:18px 34px;font:700 17px var(--font-body);box-shadow:0 16px 40px rgba(11,26,58,.25);transition:transform .18s}
.dx-final__btn:hover{transform:translateY(-2px)}

/* ---------- フッター ---------- */
.dx-footer{background:#fff;border-top:1px solid var(--dx-line-soft);padding:36px var(--container-pad) 110px;font:500 13px var(--font-body);color:var(--dx-text)}
.dx-footer__grid{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:start}
.dx-footer__brand{display:flex;flex-direction:column;gap:14px}
.dx-footer__desc{font:400 12.5px/1.7 var(--font-body);color:var(--dx-text-muted);max-width:520px}
.dx-footer__links{display:grid;grid-template-columns:auto auto;gap:10px 40px}
.dx-footer__links a{color:var(--dx-text);display:inline-flex;align-items:center;gap:4px}
.dx-footer__links a:hover{color:var(--dx-blue)}
.dx-footer__phone{margin-top:28px;display:flex;justify-content:space-between;align-items:center;gap:24px;background:var(--dx-bg-soft);border-radius:14px;padding:16px 20px}
.dx-footer__phone-text{display:flex;align-items:center;gap:12px}
.dx-footer__phone-text b{color:var(--dx-navy)}
.dx-footer__phone-link{white-space:nowrap;font-weight:700}
.dx-footer__bottom{margin-top:22px;display:flex;justify-content:space-between;color:var(--dx-text-muted);font-size:12px;gap:12px;flex-wrap:wrap}

/* ---------- 追従バー ---------- */
.dx-stickybar{position:fixed;left:0;right:0;bottom:0;z-index:90;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px var(--container-pad);background:rgba(255,255,255,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--dx-line);box-shadow:0 -10px 30px rgba(11,26,58,.08)}
.dx-stickybar__info{display:flex;align-items:center;gap:16px;min-width:0}
.dx-stickybar__label{font:700 12px var(--font-body);letter-spacing:.12em;color:var(--dx-blue);white-space:nowrap}
.dx-stickybar__date{font:800 18px var(--font-mark);color:var(--dx-navy);white-space:nowrap}
.dx-stickybar__date span{font:700 14px var(--font-body)}
.dx-stickybar__title{font:500 14px var(--font-body);color:var(--dx-text);max-width:560px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------- 中間シート（申込前の確認） ---------- */
.dx-sheet{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:20px}
.dx-sheet__backdrop{position:absolute;inset:0;background:rgba(11,26,58,.55)}
.dx-sheet__panel{position:relative;width:100%;max-width:480px;background:#fff;border-radius:28px;padding:14px 20px 28px;display:flex;flex-direction:column;gap:14px;animation:rise .4s both;box-shadow:0 30px 60px -20px rgba(11,26,58,.4)}
.dx-sheet__handle{width:44px;height:5px;border-radius:3px;background:#d7dee9;align-self:center}
.dx-sheet__head{display:flex;align-items:center;gap:10px}
.dx-sheet__icon{width:36px;height:36px;border-radius:10px;background:var(--dx-bg-tint);display:grid;place-items:center;flex:none}
.dx-sheet__title{font:900 20px var(--font-heading);color:var(--dx-navy)}
.dx-sheet__desc{font:400 13.5px/1.7 var(--font-body);color:var(--dx-text)}
.dx-sheet__summary{background:var(--dx-bg-soft);border-radius:14px;padding:14px;display:flex;gap:12px;align-items:center}
.dx-sheet__date{flex:none;text-align:center;background:#fff;border-radius:10px;padding:6px 10px}
.dx-sheet__day{font:800 22px/1 var(--font-mark);color:var(--dx-navy)}
.dx-sheet__wd{font:700 11px var(--font-body);color:var(--dx-text)}
.dx-sheet__stitle{font:700 14px/1.4 var(--font-body);color:var(--dx-navy)}
.dx-sheet__smeta{font:500 12px var(--font-body);color:var(--dx-text);margin-top:2px}
.dx-sheet__checks{display:flex;flex-direction:column;gap:8px;font:500 13px var(--font-body);color:var(--dx-text)}
.dx-sheet__checks div{display:flex;gap:8px;align-items:center}
.dx-sheet__checks span{color:var(--dx-blue)}
.dx-sheet__go{display:block;background:var(--grad-cta);color:#fff;border-radius:14px;padding:16px;text-align:center;font:700 16px var(--font-body);box-shadow:0 10px 24px rgba(30,108,255,.3)}
.dx-sheet__go:hover{color:#fff}
.dx-sheet__cancel{background:none;border:0;cursor:pointer;text-align:center;font:500 13px var(--font-body);color:var(--dx-text-muted);padding:6px}
.dx-sheet__cancel:hover{color:var(--dx-navy)}

/* ---------- 下層ページ（会社概要・お電話・お問い合わせ・プラポリ） ---------- */
.dx-subbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 var(--container-pad);height:68px;border-bottom:1px solid var(--dx-line)}
.dx-subbar__back{font:500 14px var(--font-body);color:var(--dx-text);white-space:nowrap}
.dx-subbar__back:hover{color:var(--dx-blue)}
.dx-doc{max-width:var(--doc-max);margin:0 auto;padding:64px 40px 48px;display:flex;flex-direction:column;gap:40px}
.dx-doc__head{display:flex;flex-direction:column;gap:14px}
.dx-doc__eyebrow{font:700 12px var(--font-body);letter-spacing:.16em;color:var(--dx-blue)}
.dx-doc h1{margin:0;font:900 40px/1.25 var(--font-heading);letter-spacing:-.01em;color:var(--dx-navy)}
.dx-doc__lead{margin:0;font:400 16px/1.9 var(--font-body);color:var(--dx-text);text-wrap:pretty}
.dx-doc__lead b,.dx-doc p b{color:var(--dx-navy)}
.dx-doc h2{margin:0 0 16px;padding-left:14px;border-left:4px solid var(--dx-blue);font:900 22px/1.3 var(--font-heading);color:var(--dx-navy)}
.dx-doc p{margin:0;font:400 15px/1.9 var(--font-body);color:var(--dx-text);text-wrap:pretty}
.dx-doc p+p{margin-top:12px}
.dx-doc ul{margin:0;padding-left:22px;font:400 15px/1.9 var(--font-body);color:var(--dx-text);display:flex;flex-direction:column;gap:6px}
.dx-doc__note{font-size:13px!important;line-height:1.8!important;color:var(--dx-text-muted)!important}
.dx-doc a{font-weight:700}
.dx-doc__box{background:var(--dx-bg-soft);border-radius:var(--radius-card);padding:32px;display:flex;flex-direction:column;gap:16px}
.dx-doc__stack{display:flex;flex-direction:column;gap:14px}
.dx-doc__foot{display:flex;justify-content:space-between;align-items:center;gap:24px;padding-top:32px;border-top:1px solid var(--dx-line);flex-wrap:wrap}
.dx-copyright{text-align:center;padding:24px;border-top:1px solid var(--dx-line-soft);color:var(--dx-text-muted);font:500 12px var(--font-body)}
.dx-table{border-top:2px solid var(--dx-navy)}
.dx-table__row{display:grid;grid-template-columns:180px 1fr;gap:24px;padding:20px 0;border-bottom:1px solid var(--dx-line)}
.dx-table__th{font:700 14px/1.7 var(--font-body);color:var(--dx-text-muted)}
.dx-table__td{font:400 15px/1.85 var(--font-body);color:var(--dx-navy)}
.dx-table__td small{color:var(--dx-text);font-size:14px}
.dx-table__td .dx-doc__note{display:block}
.dx-table__td b{font:800 20px var(--font-num);color:var(--dx-blue);margin:0 2px}
.dx-numbers{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.dx-number{display:flex;align-items:baseline;gap:12px;padding:14px 18px;background:var(--dx-bg-soft);border-radius:12px;flex-wrap:wrap}
.dx-number__main{font:800 22px/1 var(--font-num);letter-spacing:.02em;color:var(--dx-navy)}
.dx-number__raw{font:500 13px var(--font-body);color:var(--dx-text-muted)}
.dx-faq{display:flex;flex-direction:column}
.dx-faq__item{padding:18px 0;border-bottom:1px solid var(--dx-line);display:flex;flex-direction:column;gap:8px}
.dx-faq__q{display:flex;gap:12px;align-items:flex-start;font:700 15px/1.6 var(--font-body);color:var(--dx-navy)}
.dx-faq__q::before{content:"Q";flex:none;font:800 15px/1.6 var(--font-num);color:var(--dx-blue)}
.dx-faq__a{display:flex;gap:12px;align-items:flex-start;font:400 14.5px/1.85 var(--font-body);color:var(--dx-text)}
.dx-faq__a::before{content:"A";flex:none;font:800 14.5px/1.85 var(--font-num);color:var(--dx-text-muted)}

/* フォーム */
.dx-form{display:flex;flex-direction:column;gap:22px;position:relative}
.dx-field{display:flex;flex-direction:column;gap:8px}
.dx-label{font:700 14px var(--font-body);color:var(--dx-navy)}
.dx-req{font:700 10px var(--font-body);color:#fff;background:var(--dx-required);border-radius:4px;padding:2px 6px;margin-left:8px;vertical-align:middle}
.dx-input,.dx-select,.dx-textarea{width:100%;border:1.5px solid var(--dx-line-strong);border-radius:var(--radius-input);background:#fff;font:400 15px var(--font-body);color:var(--dx-navy);padding:0 16px;height:48px;outline:none;transition:border-color .15s,box-shadow .15s}
.dx-input::placeholder,.dx-textarea::placeholder{color:#a0abbf}
.dx-input:focus,.dx-select:focus,.dx-textarea:focus{border-color:var(--dx-blue);box-shadow:0 0 0 3px rgba(30,108,255,.15)}
.dx-select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2341506b' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:44px}
.dx-textarea{height:160px;padding:12px 16px;resize:vertical;line-height:1.7}
.dx-agree{display:flex;align-items:flex-start;gap:10px;font:400 13.5px/1.8 var(--font-body);color:var(--dx-text)}
.dx-agree input{width:18px;height:18px;margin-top:4px;accent-color:var(--dx-blue);flex:none}
.dx-honeypot{position:absolute;left:-9999px;top:-9999px}
.dx-submit{align-self:flex-start;border:0;cursor:pointer}
.dx-context{background:#fff;border-left:4px solid var(--dx-blue);border-radius:10px;padding:16px 22px;box-shadow:var(--shadow-card);border:1px solid var(--dx-line);border-left-width:4px}
.dx-context__title{font:700 15.5px var(--font-heading);color:var(--dx-blue);margin-bottom:4px}
.dx-done{margin-top:4px;padding:16px 20px;border-radius:10px;background:#eaf6ec;color:#2f6b3a;font:700 14.5px var(--font-body);text-align:center}
.dx-error{margin-top:4px;padding:16px 20px;border-radius:10px;background:#fdebe6;color:#b2422a;font:700 14px var(--font-body);text-align:center}

/* ---------- レスポンシブ ---------- */
@media (max-width:1180px){
  :root{--container-pad:32px}
  .dx-hero__title{font-size:clamp(38px,4vw,48px)}
  .dx-row{grid-template-columns:80px 160px 1fr auto;gap:16px}
}
@media (max-width:960px){
  :root{--container-pad:24px}
  .dx-header{height:64px;gap:10px}
  .dx-logo__name{font-size:20px}
  .dx-logo__en{font-size:8px}
  .dx-nav,.dx-hours{display:none}
  .dx-nav-toggle{display:inline-flex}
  .dx-header.is-open .dx-nav{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:#fff;border-bottom:1px solid var(--dx-line);padding:4px var(--container-pad) 8px;box-shadow:0 14px 30px -12px rgba(11,26,58,.22)}
  .dx-header.is-open .dx-nav a{padding:14px 0;border-bottom:1px solid var(--dx-line-soft);font-size:15px}
  .dx-header.is-open .dx-nav a:last-child{border-bottom:0}
  .dx-hero{padding:36px var(--container-pad) 40px}
  .dx-hero__grid{grid-template-columns:1fr;gap:36px}
  .dx-hero__title{font-size:34px;line-height:1.3}
  .dx-hero__lead{font-size:15px}
  .dx-host{width:calc((100% - 20px)/3)}
  .dx-featured__cd{padding:8px 12px;gap:10px}
  .dx-featured__cd-num{font-size:18px}
  .dx-facts{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:22px var(--container-pad)}
  .dx-facts__sep{display:none}
  .dx-fact{flex-direction:column;gap:4px}
  .dx-section,.dx-section--soft{padding:48px var(--container-pad)}
  .dx-h2,.dx-final h2{font-size:28px}
  .dx-h2 small{display:block;margin:6px 0 0}
  .dx-howto,.dx-howto__steps,.dx-voice__grid,.dx-footer__grid,.dx-training__grid{grid-template-columns:1fr}
  .dx-howto{gap:28px}
  .dx-step{min-height:0}
  .dx-upcoming__head{flex-direction:column;align-items:flex-start;gap:8px}
  .dx-filter-row{flex-direction:column;align-items:flex-start;gap:6px}
  .dx-filter-row__label{width:auto}
  .dx-row{grid-template-columns:64px 1fr;gap:12px;padding:12px 14px}
  .dx-row__thumb{display:none}
  .dx-row__title{font-size:16px}
  .dx-row__btn{grid-column:1/-1;justify-content:center}
  .dx-card{grid-template-columns:1fr;gap:12px}
  .dx-card__thumb{height:auto;aspect-ratio:1200/628}
  .dx-card__btn{text-align:center}
  .dx-list-hero h1{font-size:30px}
  .dx-notify{flex-direction:column;align-items:flex-start;margin-bottom:40px}
  .dx-training{padding:0}
  .dx-training__text{padding:40px var(--container-pad);order:2}
  .dx-training__media{min-height:220px;order:1}
  .dx-training__media::after{background:linear-gradient(180deg,rgba(11,26,58,0) 60%,#0b1a3a 100%)}
  .dx-footer{padding-bottom:120px}
  .dx-footer__phone{flex-direction:column;align-items:flex-start}
  .dx-stickybar{padding:10px var(--container-pad)}
  .dx-stickybar__title,.dx-stickybar__label{display:none}
  .dx-stickybar__date{font-size:15px}
  .dx-sheet{align-items:flex-end;padding:0}
  .dx-sheet__panel{max-width:none;border-radius:28px 28px 0 0;padding-bottom:calc(28px + env(safe-area-inset-bottom))}
  .dx-subbar{height:60px}
  .dx-doc{padding:40px 20px 40px;gap:32px}
  .dx-doc h1{font-size:30px}
  .dx-table__row{grid-template-columns:1fr;gap:6px;padding:16px 0}
  .dx-numbers{grid-template-columns:1fr}
  .dx-doc__box{padding:24px 20px}
}
@media (max-width:640px){
  /* ショーケース（過去共催・研修）のCTAは本文が長いので、スマホでは補足を省いて1行に収める */
  .dx-featured.is-showcase .dx-featured__cta-sub{display:none}
  :root{--container-pad:20px}
  .dx-hero__title{font-size:30px}
  .dx-host{width:calc((100% - 10px)/2)}
  .dx-fact__num{font-size:30px}
  .dx-h2,.dx-final h2{font-size:26px}
  .dx-final__btn{padding:16px 24px;font-size:15px}
  .dx-featured__head{gap:12px}
  .dx-featured__title{font-size:16px}
  .dx-quote{grid-template-columns:56px 1fr;gap:14px;padding:20px}
  .dx-quote__avatar{width:56px;height:56px;font-size:20px}
  .dx-footer__links{grid-template-columns:1fr 1fr}
  .dx-btn--grad{padding:11px 16px;font-size:13px}
}

/* ===== セミナーを実施されたい方へ（organizers / for-organizers） =====
   本文は Claude Design 由来のインラインスタイルのまま。ここでは共通部品との継ぎ目、フォーム部品、
   スマホ幅の上書きだけを持つ。属性セレクタはブラウザが正規化した書式（"padding: 96px 56px 0px" のように
   スペース入り・0px）に合わせているので、ソースのインラインを手で直すときは書式を変えないこと。 */
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes ring{0%{transform:rotate(0)}10%{transform:rotate(-14deg)}20%{transform:rotate(12deg)}30%{transform:rotate(-8deg)}40%{transform:rotate(6deg)}50%{transform:rotate(0)}100%{transform:rotate(0)}}
.og-body{max-width:1440px;margin:0 auto;background:#fff;color:#0b1a3a}
.og-body a{text-decoration:none}
.og-body button{font-family:inherit}
.og-form input:not([type="checkbox"]):not([type="hidden"]){width:100%;height:46px;border:1.5px solid rgba(11,26,58,.14);border-radius:10px;padding:0 14px;font:400 14px var(--font-body);color:var(--dx-navy);background:#fff;box-sizing:border-box}
.og-form input:focus{outline:2px solid var(--dx-blue);outline-offset:1px}
.og-form input::placeholder{color:#a0abbf}
.og-form [data-dept].is-on{background:var(--dx-bg-tint)!important;color:var(--dx-blue)!important;border-color:var(--dx-blue)!important}
.og-form .dx-agree{font-size:12px}
.og-form .dx-done,.og-form .dx-error{margin:0}
@media (prefers-reduced-motion:reduce){.og-body *{animation:none!important}}
/* 幅広画面: ヘッダー・フッターと同じく本文も全幅にし、各セクションの内容は1440pxで中央寄せ。ヒーローの背景色だけは画面端まで伸ばす */
.og-body{max-width:none}
.og-body>div{max-width:1440px;margin-left:auto;margin-right:auto}
.og-body>[style*="padding: 72px 56px 64px"]{max-width:none}
.og-body>[style*="padding: 72px 56px 64px"]>[style*="display: grid"]{max-width:1328px;margin:0 auto}
.og-body>[style*="margin: 96px 56px"]{width:calc(100% - 112px);max-width:1328px;margin-left:auto!important;margin-right:auto!important}
@media (max-width:980px){
  .og-body [style*="minmax(400px"],.og-body [style*="minmax(380px"],.og-body [style*="minmax(360px"],.og-body [style*="minmax(340px"],
  .og-body [style*="grid-template-columns: 130px 1fr"],.og-body [style*="grid-template-columns: 1fr 1fr 1fr"],.og-body [style*="grid-template-columns: 1fr 1fr;"],
  .og-body [style*="minmax(260px"],.og-body [style*="minmax(200px"]{grid-template-columns:1fr!important}
  .og-body [style*="minmax(140px"]{grid-template-columns:1fr 1fr!important}
  .og-body [style*="padding: 96px 56px"],.og-body [style*="padding: 88px 56px"]{padding:56px 20px 0!important}
  .og-body [style*="padding: 72px 56px 64px"]{padding:44px 20px 40px!important}
  .og-body>[style*="margin: 96px 56px"]{width:auto}
  .og-body [style*="margin: 96px 56px 0px"]{margin:56px 16px 0!important;padding:28px 20px!important}
  .og-body [style*="margin: 96px 56px 64px"]{margin:56px 16px 40px!important;padding:40px 20px!important}
  .og-body h2{font-size:28px!important;line-height:1.3!important}
  .og-body [style*="font: 800 72px"]{font-size:48px!important}
  .og-body [style*="font: 800 44px"]{font-size:32px!important}
  .og-body [style*="justify-self: end"]{justify-self:stretch!important;max-width:none!important}
  .og-body [style*="grid-template-columns: 130px 1fr"]{gap:6px!important}
  .og-body [style*="align-items: flex-end"][style*="gap: 32px"]{flex-direction:column!important;align-items:stretch!important;gap:12px!important}
}
