/* =========================================================
   企業型DCナビ  スタイルシート
   by 社会保険労務士法人ビジネスパートナー
   ---------------------------------------------------------
   色や文字サイズは下の :root を書き換えるとサイト全体に反映されます。
   ========================================================= */

:root {
  --navy:        #0d2b57;   /* メインの濃紺 */
  --navy-2:      #12386e;   /* 濃紺（少し明るい） */
  --blue:        #1e5aa8;   /* アクセントの青 */
  --blue-light:  #eaf1fa;   /* 薄い青の背景 */
  --orange:      #e97b0c;   /* CTAボタンのオレンジ */
  --orange-dark: #cf6a03;   /* オレンジ（ホバー） */
  --green:       #2ea44f;   /* チェックマーク */
  --gold:        #d8b24a;   /* 実績バッジ */
  --bg:          #ffffff;
  --bg-soft:     #f4f7fb;   /* 薄いグレー背景 */
  --text:        #1a2333;
  --muted:       #5b6b82;
  --line:        #e2e8f0;
  --radius:      10px;
  --shadow:      0 6px 24px rgba(13, 43, 87, .08);
  --container:   1200px;
  --font: "Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP",
          "Yu Gothic","YuGothic","Meiryo",sans-serif;
}

/* ---------- リセット ---------- */
*,*::before,*::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--font);
  color: var(--text);
  line-height: 1.8;
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
ul { margin: 0; padding: 0; list-style: none; }
h1,h2,h3,h4 { margin: 0; line-height: 1.4; }

/* ---------- 共通レイアウト ---------- */
.container { width: 92%; max-width: var(--container); margin-inline: auto; }
.section { padding: 72px 0; }
.section--soft { background: var(--bg-soft); }
.section-head { text-align: center; margin-bottom: 44px; }
.section-head h2 {
  font-size: clamp(27px, 3.8vw, 38px);
  color: var(--navy);
  font-weight: 800;
  letter-spacing: .02em;
}
.section-head p { color: var(--muted); margin: 10px 0 0; }

/* ---------- ボタン ---------- */
.btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 14px 26px; border-radius: 8px; font-weight: 700;
  font-size: 15px; cursor: pointer; border: 2px solid transparent;
  transition: transform .15s ease, background .15s ease, box-shadow .15s ease;
  white-space: nowrap;
}
.btn:hover { transform: translateY(-2px); }
.btn--primary { background: var(--orange); color: #fff; box-shadow: 0 6px 16px rgba(233,123,12,.35); }
.btn--primary:hover { background: var(--orange-dark); }
.btn--outline { background: #fff; color: var(--navy); border-color: var(--navy); }
.btn--outline:hover { background: var(--navy); color: #fff; }
.btn--ghost { background: rgba(255,255,255,.12); color: #fff; border-color: rgba(255,255,255,.5); }
.btn--ghost:hover { background: #fff; color: var(--navy); }
.btn .arrow { font-size: 13px; }

/* =========================================================
   ヘッダー
   ========================================================= */
.header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255,255,255,.96);
  backdrop-filter: saturate(140%) blur(6px);
  border-bottom: 1px solid var(--line);
}
.header__inner { display: flex; align-items: center; gap: 20px; height: 84px;
  width: 100%; max-width: 100%; padding: 0 40px; }   /* ヘッダーは画面いっぱいに広げる */
.brand { display: flex; align-items: center; gap: 10px; }
.brand__mark { font-size: 26px; line-height: 1; }
.brand__name { font-size: 20px; font-weight: 800; color: var(--navy); white-space: nowrap; }
.brand__sub { display: block; font-size: 10px; color: var(--muted); font-weight: 500; letter-spacing: .02em; }

/* ロゴ（文字ロゴ：企業型DC＝DCは青、下にライン付きの社名） */
.logo { display: inline-flex; flex-direction: column; align-items: center; line-height: 1; }
.logo__main { font-size: 29px; font-weight: 800; color: var(--navy); letter-spacing: .04em; white-space: nowrap; }
.logo__dc {
  background: linear-gradient(90deg, #1e5aa8 0%, #4d95e6 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: #2b6fc0;
  padding: 0 .04em;
}
.logo__sub { display: flex; align-items: center; gap: 10px; margin-top: 8px;
  font-size: 11.5px; font-weight: 600; color: var(--navy); white-space: nowrap; letter-spacing: .02em; }
.logo__sub::before, .logo__sub::after { content: ""; height: 1px; width: 20px; background: var(--navy); opacity: .6; }

.nav { margin-left: auto; }   /* メニューを右側に寄せる（ロゴは左端） */
.nav ul { display: flex; gap: 18px; align-items: center; }
.nav a { position: relative; font-size: 16px; font-weight: 600; color: var(--text); padding: 6px 2px; white-space: nowrap; }
.nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 2px;
  background: var(--blue); transform: scaleX(0); transform-origin: left; transition: transform .2s ease; }
.nav a:hover { color: var(--blue); }
.nav a:hover::after { transform: scaleX(1); }

.header__cta { display: flex; gap: 10px; }
.header__cta .btn { padding: 11px 20px; font-size: 14px; }
.header__cta .btn--dark { background: var(--navy); color: #fff; }
.header__cta .btn--dark:hover { background: var(--navy-2); }

.nav-toggle {
  display: none; margin-left: auto; width: 44px; height: 44px;
  border: 1px solid var(--line); background: #fff; border-radius: 8px; cursor: pointer;
  flex-direction: column; justify-content: center; align-items: center; gap: 5px;
}
.nav-toggle span { width: 22px; height: 2px; background: var(--navy); display: block; }

/* =========================================================
   ファーストビュー（ヒーロー）
   ========================================================= */
.hero {
  background:
    radial-gradient(120% 90% at 85% 10%, rgba(30,90,168,.55), transparent 60%),
    linear-gradient(135deg, var(--navy) 0%, var(--navy-2) 60%, #0a2145 100%);
  color: #fff; position: relative; overflow: hidden;
}
.hero__inner { display: grid; grid-template-columns: 1.15fr .85fr; gap: 40px; align-items: center; padding: 64px 0 72px; }
.hero__eyebrow { display: inline-block; font-size: 13px; font-weight: 700; color: #bcd4f2;
  border: 1px solid rgba(255,255,255,.35); border-radius: 999px; padding: 5px 14px; margin-bottom: 20px; }
.hero h1 { font-size: clamp(28px, 4.2vw, 44px); font-weight: 800; letter-spacing: .01em; }
.hero h1 .accent { color: #ffd47a; }
.hero__sub { font-size: clamp(16px, 2.2vw, 21px); font-weight: 700; margin: 14px 0 20px; color: #dfeaf8; }
.hero__lead { color: #c9d8ec; font-size: 15px; max-width: 40ch; }
.hero__cta { display: flex; gap: 14px; margin-top: 28px; flex-wrap: wrap; }
.hero__photo { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: var(--radius);
  box-shadow: var(--shadow); background: #eef4fc; }

/* トップバナー画像（1枚もの）版のヒーロー */
.hero--banner { position: relative; background: #fff; padding: 0; overflow: hidden; }
.hero__banner-img { width: 100%; height: auto; display: block; background: var(--blue-light); }
/* スマホ用（既定）：画像の下にボタンを中央並び */
.hero__cta--under { justify-content: center; margin: 0; padding: 18px 0 8px; }
/* PC用：バナー画像の左下（コピー文の真下）にボタンを重ねる */
@media (min-width: 900px) {
  .hero__cta--under {
    position: absolute; left: 5%; bottom: 4%;
    margin: 0; padding: 0; justify-content: flex-start; gap: 14px; z-index: 3;
  }
}

/* 画面読み上げ・検索エンジン用に残すが、目には見えないテキスト */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* 実績バッジ + ヒーロー画像 */
.hero__visual { position: relative; }
.hero__img { position: relative; }
.hero__badge {
  position: absolute; top: -18px; right: -8px; z-index: 3;
  width: 132px; height: 132px; border-radius: 50%;
  background: radial-gradient(circle at 50% 40%, #fff 0 62%, #fbf3dc 62% 100%);
  border: 3px solid var(--gold); box-shadow: var(--shadow);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; color: var(--navy);
}
.hero__badge small { font-size: 11px; font-weight: 700; }
.hero__badge b { font-size: 30px; font-weight: 800; line-height: 1; color: var(--navy); }
.hero__badge span { font-size: 12px; font-weight: 700; }

/* =========================================================
   画像プレースホルダー（仮画像）
   実写真が届いたら <img src="images/xxx.jpg"> に置き換えます。
   ========================================================= */
.ph {
  position: relative; background:
    repeating-linear-gradient(45deg, #dbe6f4 0 14px, #d2dff1 14px 28px);
  color: var(--navy); display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 700; border-radius: var(--radius); overflow: hidden;
}
.ph::after { content: "仮画像"; position: absolute; bottom: 8px; right: 10px;
  font-size: 10px; background: rgba(13,43,87,.75); color: #fff; padding: 2px 8px; border-radius: 999px; }
.ph--hero { aspect-ratio: 4/3; }
.ph--case { aspect-ratio: 16/11; }
.ph--col { aspect-ratio: 16/9; }
.ph--webinar { aspect-ratio: 16/10; }
.ph--face { width: 56px; height: 56px; border-radius: 50%; flex: none; }
.ph--face::after { content: ""; }

/* =========================================================
   数字で見るビジネスパートナー
   ========================================================= */
.stats { background: linear-gradient(180deg, var(--navy) 0%, #0a2247 100%); padding: 22px 0 44px; }
.stats__head { text-align: center; margin-bottom: 30px; }
.stats__head h2 { color: #fff; font-size: clamp(20px, 2.6vw, 26px); font-weight: 800; letter-spacing: .03em; }
.stats__bar { display: inline-block; width: 48px; height: 3px; background: var(--gold); border-radius: 2px; margin-top: 12px; }
.stats__grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 18px; }
.stat { text-align: center; color: #fff; padding: 18px 18px 16px; border-radius: 14px;
  background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1); transition: transform .15s ease, border-color .15s ease; }
.stat:hover { transform: translateY(-3px); border-color: rgba(216,178,74,.5); }
.stat__icon { width: 42px; height: 42px; margin: 0 auto 6px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: rgba(216,178,74,.12); border: 1px solid rgba(216,178,74,.55); color: var(--gold); }
.stat__icon svg { width: 21px; height: 21px; }
.stat__label { font-size: 15px; color: #bcd0ea; font-weight: 700; letter-spacing: .02em; }
.stat__num { font-size: clamp(30px, 4vw, 42px); font-weight: 800; margin: 3px 0 5px; line-height: 1; color: #fff; }
.stat__num .unit { font-size: 15px; font-weight: 700; margin-left: 3px; color: var(--gold); }
.stat__note { font-size: 10px; color: #8ea9cd; line-height: 1.6; }

/* =========================================================
   お悩み
   ========================================================= */
.worries { padding: 28px 0; background: #fff; }   /* 背景は白・上下の余白をさらに狭く */
.worries__layout { display: grid; grid-template-columns: 1fr 0.72fr; gap: 36px; align-items: center; }
.worries__list { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; align-content: center; }
.worries__visual { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 12px; }
.worries__mascot-name { font-weight: 800; font-size: 18px; color: var(--navy); letter-spacing: .08em; text-align: center; }
.worries__mascot-name::after { content: ""; display: block; width: 46px; height: 3px; border-radius: 2px;
  background: var(--gold); margin: 5px auto 0; }
.worries__mascot { position: relative; display: flex; justify-content: center; align-items: center; height: 300px; }
.worries__photo { height: 100%; width: auto; max-width: none; transition: opacity .25s ease; }
/* マウスオーバーで「喜ぶシャローチくん」に切り替わる（同じ高さで重ねる） */
.worries__photo--happy { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); opacity: 0; }
.worries__visual.is-happy .worries__photo--happy { opacity: 1; }
.worries__visual.is-happy .worries__photo--think { opacity: 0; }
.worry { display: flex; align-items: center; gap: 12px; background: #fff; border: 1px solid var(--line);
  border-left: 4px solid var(--orange); border-radius: 10px; padding: 15px 16px; font-weight: 600; font-size: 14px;
  box-shadow: 0 3px 12px rgba(13,43,87,.05); transition: transform .15s ease, box-shadow .15s ease; }
.worry:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(13,43,87,.10); }
.worry__mark { flex: none; width: 26px; height: 26px; border-radius: 50%; background: var(--navy);
  color: #fff; font-weight: 800; font-size: 15px; display: flex; align-items: center; justify-content: center; }

/* =========================================================
   選ばれる理由
   ========================================================= */
/* =========================================================
   導入企業が得られる3つのメリット（写真カード）
   ========================================================= */
.merits { background: linear-gradient(160deg, #fff7f0 0%, #fdeade 100%); }
/* メリット見出し（大きめ＋装飾） */
.merits__head { margin-bottom: 46px; }
.merits__eyebrow { display: inline-flex; align-items: center; gap: 16px; font-family: Georgia, "Times New Roman", serif;
  font-size: 24px; font-weight: 700; letter-spacing: .3em; color: #e8791f; margin-bottom: 14px; }
.merits__eyebrow::before, .merits__eyebrow::after { content: ""; width: 38px; height: 2px; background: #e8791f; opacity: .55; }
.merits__head h2 { font-size: clamp(34px, 5.2vw, 54px); position: relative; padding-bottom: 24px; }
.merits__head h2::after { content: ""; position: absolute; left: 50%; bottom: 0; transform: translateX(-50%);
  width: 88px; height: 5px; border-radius: 3px; background: linear-gradient(90deg, #f6a24a, #e8791f); }
.merits__num { color: #e8791f; font-size: 1.34em; padding: 0 .05em; }
.merits-list { display: flex; flex-direction: column; gap: 48px; }
.merit-row { display: grid; grid-template-columns: 220px 1fr; gap: 44px; align-items: center; }
.merit-row--reverse { grid-template-columns: 1fr 220px; }   /* 画像は常に220pxの正方形（3枚同サイズ） */
.merit-row--reverse .merit-row__img { order: 2; }
/* 正方形の枠を作り、その中に写真をトリミングして表示（確実に真四角） */
.merit-row__img { width: 220px; max-width: 100%; aspect-ratio: 1 / 1; margin-inline: auto;
  border-radius: 16px; overflow: hidden; box-shadow: 0 16px 36px rgba(176,104,40,.18); }
.merit-row__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* 太字＋黄色マーカーの強調 */
.hl { font-weight: 800; background: linear-gradient(transparent 55%, #ffe066 55%); padding: 0 3px; border-radius: 2px; }
.merit-row__text { position: relative; }
.merit-row__no { display: block; font-family: Georgia, "Times New Roman", serif; font-weight: 700;
  font-size: 92px; line-height: .82; color: rgba(232,121,31,.32); letter-spacing: .02em; margin-bottom: 4px; }
.merit-row__text h3 { font-size: clamp(25px, 3vw, 33px); color: var(--navy); font-weight: 900; line-height: 1.45;
  margin: 0 0 20px; padding-bottom: 18px; border-bottom: 3px solid rgba(232,121,31,.4); }
.merit-row__text p { font-size: 18px; color: #26333f; line-height: 1.95; margin: 0 0 14px; }
.merit-row__text p:last-child { margin-bottom: 0; }
.merit-note { font-size: 12px !important; color: var(--orange-dark) !important; margin-top: 10px !important; }

@media (max-width: 820px) {
  .merit-row, .merit-row--reverse { grid-template-columns: 1fr; gap: 20px; }
  .merit-row--reverse .merit-row__img { order: 0; }
  .merit-row__no { font-size: 60px; }
}

/* 選ばれる理由：淡いブルー背景＋白カードの横3列（コンパクト） */
.reasons { background: linear-gradient(160deg, #eef3fb 0%, #e4edf8 100%); padding: 48px 0; }
.reasons .section-head { margin-bottom: 26px; }
.reasons__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; align-items: stretch; }
.reason-card { display: flex; flex-direction: column; background: #fff; border-radius: 16px;
  padding: 26px 28px 28px; position: relative; overflow: hidden; box-shadow: 0 8px 24px rgba(13,43,87,.07);
  transition: transform .18s ease, box-shadow .18s ease; }
.reason-card:hover { transform: translateY(-5px); box-shadow: 0 18px 40px rgba(13,43,87,.13); }
.reason-card::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 5px; background: var(--gold); }
.reason-card__top { text-align: center; }
.reason-card__visual { display: flex; justify-content: center; margin-bottom: 4px; }
.reason-card__visual img { width: 100%; max-width: 168px; height: auto; }
.reason-card__no { display: block; font-family: Georgia, "Times New Roman", serif;
  font-size: 26px; font-weight: 700; line-height: 1; color: var(--gold); letter-spacing: .04em; }
.reason-card h3 { font-size: 19px; color: var(--navy); font-weight: 800; line-height: 1.6; margin: 6px 0 14px; }
.reason-card h3 span { background: linear-gradient(transparent 60%, rgba(230,185,63,.5) 60%);
  -webkit-box-decoration-break: clone; box-decoration-break: clone; padding: 0 3px; }
.reason-card__lead { color: var(--text); font-size: 14.5px; line-height: 1.85; margin: 0 0 14px; }
.reason-card__list { display: flex; flex-direction: column; gap: 11px; }
.reason-card__list li { position: relative; padding-left: 26px; font-size: 15px; line-height: 1.9; color: #253244; }
.reason-card__list li::before { content: "✓"; position: absolute; left: 0; top: 4px;
  width: 19px; height: 19px; border-radius: 50%; background: var(--gold); color: #fff;
  font-size: 11px; font-weight: 800; display: flex; align-items: center; justify-content: center; }

/* =========================================================
   導入の流れ
   ========================================================= */
/* 左→右の矢印つき横並びフロー */
.flow-steps { list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(6, 1fr); gap: 34px; }
.flow-step { position: relative; text-align: center; }
/* ステップ間の矢印 */
.flow-step:not(:last-child)::after { content: "→"; position: absolute; top: 34px; right: -28px;
  font-size: 28px; font-weight: 700; color: var(--gold); line-height: 1; }
/* アイコン（ホバーで動く） */
.flow-step__icon { position: relative; width: 94px; height: 94px; margin: 0 auto 16px; border-radius: 50%;
  background: #fff; border: 2px solid var(--gold); color: var(--navy);
  display: flex; align-items: center; justify-content: center;
  transition: transform .25s ease, background .25s ease, color .25s ease, box-shadow .25s ease; }
.flow-step__icon svg { width: 44px; height: 44px; }
.flow-step__num { position: absolute; top: -6px; right: -6px; width: 30px; height: 30px; border-radius: 50%;
  background: var(--gold); color: #fff; font-size: 15px; font-weight: 800; border: 2px solid var(--bg-soft);
  display: flex; align-items: center; justify-content: center; }
.flow-step:hover .flow-step__icon { transform: translateY(-7px) scale(1.06);
  background: var(--navy); color: #fff; box-shadow: 0 14px 28px rgba(13,43,87,.25); }
.flow-step h3 { font-size: 17px; color: var(--navy); margin: 0 0 7px; line-height: 1.5; }
.flow-step p { font-size: 14px; color: var(--muted); margin: 0; line-height: 1.75; }

@media (max-width: 1080px) {
  .flow-steps { grid-template-columns: repeat(3, 1fr); gap: 30px 16px; }
  .flow-step:not(:last-child)::after { display: none; }
}
@media (max-width: 560px) {
  .flow-steps { grid-template-columns: repeat(2, 1fr); }
}

/* =========================================================
   導入企業ロゴ（マーキー）
   ========================================================= */
.logos { padding: 30px 0 34px; background: #fff; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.logos__label { text-align: center; font-size: 14px; font-weight: 700; color: var(--muted); margin: 0 0 22px; }
.logos__note { font-size: 11px; font-weight: 500; color: #9aa7b8; margin-left: 8px; }
.logos__marquee { overflow: hidden;
  -webkit-mask-image: linear-gradient(to right, transparent, #000 7%, #000 93%, transparent);
  mask-image: linear-gradient(to right, transparent, #000 7%, #000 93%, transparent); }
.logos__track { display: flex; align-items: center; gap: 60px; width: max-content; list-style: none; margin: 0; padding: 0;
  animation: logosMarquee 30s linear infinite; }
.logos:hover .logos__track { animation-play-state: paused; }
@keyframes logosMarquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
/* 社数が少ないので1周が短い。間隔を広めに取り、速度も落ち着かせる */
.logos__track--few { gap: 84px; animation-duration: 77s; }
.logo-item { display: flex; align-items: center; justify-content: center; gap: 11px;
  height: 48px; color: #7a8798; white-space: nowrap; }
.logo-item svg { width: 30px; height: 30px; flex: none; }
/* ロゴは縦横比が全社バラバラなので、見た目の大きさが揃うよう高さを個別に指定する */
.logo-item img { height: 30px; width: auto; display: block; } /* 横長（かつらぎ・SHF） */
.logo-item--mid img  { height: 36px; }                        /* やや縦のある（ライズ） */
.logo-item--tall img { height: 48px; }                        /* 縦長（愛真美・不動産工房） */
.logo-item--wide img { height: 44px; }                        /* 3行組みで横に長い（優和） */
.logo-item span { font-size: 18px; font-weight: 800; letter-spacing: .02em; }
/* ロゴ画像が無い企業を社名だけで並べる場合用（現在は未使用） */
.logo-item--type span { font-size: 20px; font-weight: 900; color: #4a5a70; letter-spacing: .01em; }
@media (max-width: 700px) {
  .logos { padding: 24px 0 26px; }
  .logos__label { font-size: 13px; margin-bottom: 15px; }
  .logos__note { display: block; margin: 5px auto 0; font-size: 10.5px; line-height: 1.65; max-width: 22em; }
  .logos__track, .logos__track--few { gap: 56px; }
  .logo-item { height: 42px; }
  .logo-item img { height: 26px; }
  .logo-item--mid img  { height: 31px; }
  .logo-item--tall img { height: 42px; }
  .logo-item--wide img { height: 38px; }
  .logo-item--type span { font-size: 17px; }
}
@media (prefers-reduced-motion: reduce) { .logos__track { animation: none; } }

/* =========================================================
   オンライン無料相談（ティール帯）
   ========================================================= */
.online-cta { background: linear-gradient(120deg, #2c8698 0%, #1f5f6e 100%); color: #fff; overflow: hidden; }
.online-cta__inner { display: grid; grid-template-columns: 1.1fr .9fr; gap: 36px; align-items: center; padding: 46px 0; }
.online-cta__badges { display: flex; gap: 12px; margin-bottom: 18px; flex-wrap: wrap; }
.online-badge { border: 1.5px solid rgba(255,255,255,.7); border-radius: 8px; padding: 7px 16px; font-size: 14px; font-weight: 700; }
.online-cta__body h2 { font-size: clamp(26px, 3.6vw, 38px); font-weight: 800; margin: 0 0 16px; letter-spacing: .01em; }
.online-cta__body > p { font-size: 15px; line-height: 1.9; color: #e7f4f6; margin: 0 0 26px; max-width: 34em; }
.online-cta__btn { display: inline-flex; align-items: stretch; border-radius: 10px; overflow: hidden;
  box-shadow: 0 12px 28px rgba(0,0,0,.20); transition: transform .15s ease; }
.online-cta__btn:hover { transform: translateY(-3px); }
.online-cta__btn-tag { background: #1c505c; color: #fff; font-weight: 800; font-size: 13px; line-height: 1.25;
  display: flex; align-items: center; text-align: center; padding: 0 16px; }
.online-cta__btn-main { background: #fff; color: #1f5f6e; font-weight: 800; font-size: 17px;
  display: flex; align-items: center; gap: 12px; padding: 16px 26px; }
.online-cta__arrow { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px;
  border-radius: 50%; background: #2c8698; color: #fff; font-size: 14px; }
.online-cta__visual { display: flex; justify-content: center; }
.online-cta__visual img { width: 100%; max-width: 380px; height: auto; }

/* スクロール追従の浮くバナー（目立つパルス付き） */
.float-cta { position: fixed; right: 20px; bottom: 20px; z-index: 60; max-width: 330px;
  background: linear-gradient(120deg, #2c8698 0%, #1f5f6e 100%); color: #fff;
  border: 2px solid rgba(255,255,255,.30); border-radius: 15px; box-shadow: 0 16px 40px rgba(0,0,0,.32);
  opacity: 0; transform: translateY(28px); pointer-events: none;
  transition: opacity .3s ease, transform .3s ease; }
.float-cta.is-visible { opacity: 1; transform: translateY(0); pointer-events: auto;
  animation: ctaPulse 2.2s ease-in-out infinite; }
.float-cta.is-visible:hover { animation: none; box-shadow: 0 22px 48px rgba(0,0,0,.42); }
.float-cta.is-dismissed { display: none; }
@keyframes ctaPulse {
  0%   { box-shadow: 0 16px 40px rgba(0,0,0,.32), 0 0 0 0 rgba(232,121,31,.6); }
  70%  { box-shadow: 0 16px 40px rgba(0,0,0,.32), 0 0 0 13px rgba(232,121,31,0); }
  100% { box-shadow: 0 16px 40px rgba(0,0,0,.32), 0 0 0 0 rgba(232,121,31,0); }
}
.float-cta__link { display: flex; align-items: center; gap: 12px; padding: 12px 38px 12px 14px; color: #fff; }
.float-cta__illust { flex: none; width: 60px; height: auto; }
.float-cta__body { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; }
.float-cta__badge { flex: none; background: #e8791f; color: #fff; font-size: 10.5px; font-weight: 800;
  padding: 3px 9px; border-radius: 6px; letter-spacing: .04em; }
.float-cta__title { display: block; font-size: 15px; font-weight: 800; line-height: 1.4; }
.float-cta__sub { display: block; font-size: 12px; color: #eafafc; }
.float-cta__arrow { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px;
  border-radius: 50%; background: #ffffff; color: #1f5f6e; font-size: 11px; margin-left: 2px; }
/* 右端の縦型バナー（資料ダウンロード・オレンジ） */
.side-dl { position: fixed; right: 0; top: 44%; z-index: 59;
  display: flex; flex-direction: column; align-items: center; gap: 10px;
  background: linear-gradient(180deg, #f0912d 0%, #e8791f 100%); color: #fff;
  padding: 18px 11px 20px; border-radius: 14px 0 0 14px;
  box-shadow: -6px 8px 24px rgba(207,106,3,.38);
  opacity: 0; transform: translate(30px, -50%); pointer-events: none;
  transition: opacity .3s ease, transform .3s ease, background .2s ease; }
.side-dl.is-visible { opacity: 1; transform: translate(0, -50%); pointer-events: auto; }
.side-dl.is-visible:hover { transform: translate(-4px, -50%); background: linear-gradient(180deg, #ef9a3f 0%, #d96e14 100%); }
.side-dl svg { width: 20px; height: 20px; }
.side-dl__text { writing-mode: vertical-rl; font-size: 14.5px; font-weight: 800; letter-spacing: .14em; }
@media (max-width: 560px) {
  .side-dl { padding: 13px 8px 15px; }
  .side-dl__text { font-size: 12.5px; }
}
.float-cta__close { position: absolute; top: 6px; right: 8px; width: 24px; height: 24px; border: 0;
  background: rgba(255,255,255,.18); color: #fff; border-radius: 50%; font-size: 15px; line-height: 1; cursor: pointer;
  display: flex; align-items: center; justify-content: center; }
.float-cta__close:hover { background: rgba(255,255,255,.34); }
@media (max-width: 560px) {
  .float-cta { right: 12px; left: 12px; bottom: 12px; max-width: none; }
}

@media (max-width: 900px) {
  .online-cta__inner { grid-template-columns: 1fr; text-align: center; gap: 22px; }
  .online-cta__badges { justify-content: center; }
  .online-cta__body > p { margin-inline: auto; }
  .online-cta__visual { order: -1; }
  .online-cta__visual img { max-width: 280px; }
}

/* =========================================================
   ウェビナー
   ========================================================= */
.webinar { background: linear-gradient(135deg, var(--navy) 0%, var(--navy-2) 100%); }
.webinar .section-head h2, .webinar .section-head p { color: #fff; }
.webinar__grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.wcard { background: #fff; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); display: flex; flex-direction: column; }
.wcard__body { padding: 18px; display: flex; flex-direction: column; flex: 1; }
.badge-status { align-self: flex-start; font-size: 11px; font-weight: 800; padding: 3px 12px; border-radius: 4px; margin-bottom: 8px; }
.badge-status--open { background: #e5f6ea; color: var(--green); }
.badge-status--closed { background: #eef1f5; color: var(--muted); }
.wcard__date { font-size: 13px; font-weight: 700; color: var(--navy); }
.wcard h3 { font-size: 15.5px; color: var(--navy); margin: 6px 0 8px; }
.wcard__note { font-size: 12.5px; color: var(--muted); margin: 0 0 14px; }
.wcard .btn { margin-top: auto; justify-content: center; padding: 10px; font-size: 13px; }
.wcard .btn--webinar { border: 1px solid var(--orange); color: var(--orange-dark); background: #fff; }
.wcard .btn--webinar:hover { background: var(--orange); color: #fff; }

/* =========================================================
   コラム
   ========================================================= */
/* 見出し装飾 */
.columns__head { margin-bottom: 34px; }
.columns__eyebrow { display: inline-flex; align-items: center; gap: 16px; font-family: Georgia, "Times New Roman", serif;
  font-size: 22px; font-weight: 700; letter-spacing: .3em; color: var(--blue); margin-bottom: 12px; }
.columns__eyebrow::before, .columns__eyebrow::after { content: ""; width: 36px; height: 2px; background: var(--blue); opacity: .5; }
.columns__head h2 { font-size: clamp(30px, 4.6vw, 46px); position: relative; padding-bottom: 20px; }
.columns__head h2::after { content: ""; position: absolute; left: 50%; bottom: 0; transform: translateX(-50%);
  width: 78px; height: 5px; border-radius: 3px; background: linear-gradient(90deg, #4d8fd6, #1e5aa8); }

/* 横スクロール（4枚＋5枚目チラ見え） */
.columns__grid { display: flex; gap: 22px; overflow-x: auto; scroll-snap-type: x proximity;
  padding: 6px 4px 16px; margin: 0 -4px; scrollbar-width: thin; }
.col-card { flex: 0 0 22%; min-width: 258px; scroll-snap-align: start;
  display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line);
  border-top: 4px solid var(--blue); border-radius: 14px; padding: 16px 20px 18px;
  box-shadow: 0 6px 18px rgba(13,43,87,.05); transition: transform .18s ease, box-shadow .18s ease; }
.col-card:hover { transform: translateY(-5px); box-shadow: 0 16px 34px rgba(13,43,87,.12); }

/* サムネイル（カテゴリ別カラー＋アイコン） */
.col-card__thumb { display: flex; align-items: center; justify-content: center; height: 116px; border-radius: 10px;
  margin-bottom: 14px; color: #fff; overflow: hidden; background: var(--blue-light); }
.col-card__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.col-card__thumb svg { width: 46px; height: 46px; }
.col-card__thumb--basic { background: linear-gradient(135deg, #3f7fce, #1e5aa8); }
.col-card__thumb--compare { background: linear-gradient(135deg, #2c8698, #1f5f6e); }
.col-card__thumb--select { background: linear-gradient(135deg, #7186d6, #4a5fb4); }
.col-card__thumb--tax { background: linear-gradient(135deg, #f2a34f, #e8791f); }
.col-card__thumb--flow { background: linear-gradient(135deg, #3a5f97, #0d2b57); }
.col-card__thumb--use { background: linear-gradient(135deg, #45b083, #2e8d63); }

.col-card__cat { align-self: flex-start; font-size: 12px; font-weight: 700; color: var(--blue);
  background: var(--blue-light); padding: 4px 12px; border-radius: 999px; }
.col-card__title { font-size: 17px; color: var(--navy); font-weight: 800; line-height: 1.55; margin: 12px 0 10px; }
.req-check { font-size: .72em; color: var(--orange-dark); font-weight: 700; }
.col-card__excerpt { font-size: 13.5px; color: var(--muted); line-height: 1.8; margin: 0 0 16px; flex: 1; }
.col-card__foot { display: flex; align-items: center; justify-content: space-between;
  margin-top: auto; padding-top: 12px; border-top: 1px solid var(--line); }
.col-card__foot time { font-size: 12px; color: var(--muted); }
.col-card__more { font-size: 13px; font-weight: 700; color: var(--orange-dark); }
.columns__more { text-align: center; margin-top: 34px; }
.columns__note { text-align: center; font-size: 12px; color: var(--muted); margin-top: 16px; }

/* 横スクロールの矢印・フェード（右に続きがあることを示す） */
.columns__viewport { position: relative; }
.columns__nav { position: absolute; top: 82px; transform: translateY(-50%); z-index: 4;
  width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--line); background: #fff; color: var(--navy);
  box-shadow: 0 6px 18px rgba(13,43,87,.18); font-size: 22px; line-height: 1; cursor: pointer;
  display: flex; align-items: center; justify-content: center; transition: opacity .2s ease, background .2s ease, color .2s ease; }
.columns__nav:hover { background: var(--navy); color: #fff; }
.columns__nav--prev { left: -6px; }
.columns__nav--next { right: -6px; }
.columns__nav.is-hidden { opacity: 0; pointer-events: none; }
@keyframes navNudge { 0%, 100% { transform: translateY(-50%); } 50% { transform: translate(5px, -50%); } }
.columns__nav--next:not(.is-hidden) { animation: navNudge 1.5s ease-in-out infinite; }
.columns__nav--next:hover { animation: none; }
.columns__fade { position: absolute; top: 4px; right: -4px; bottom: 24px; width: 66px; pointer-events: none; z-index: 3;
  background: linear-gradient(to right, rgba(255,255,255,0), #ffffff); transition: opacity .25s ease; }
.columns__viewport.is-end .columns__fade { opacity: 0; }
@media (max-width: 700px) { .columns__nav { display: none; } }

/* =========================================================
   よくある質問
   ========================================================= */
.faq { max-width: 800px; margin-inline: auto; }
.faq__note { text-align: center; font-size: 12px; color: var(--orange-dark); margin-bottom: 20px; }
.qa { border: 1px solid var(--line); border-radius: 8px; margin-bottom: 12px; background: #fff; overflow: hidden; }
.qa__q { width: 100%; text-align: left; background: #fff; border: 0; cursor: pointer;
  padding: 18px 52px 18px 20px; font-size: 15px; font-weight: 700; color: var(--navy); position: relative; }
.qa__q::before { content: "Q"; color: var(--blue); font-weight: 800; margin-right: 12px; }
.qa__q::after { content: "+"; position: absolute; right: 20px; top: 50%; transform: translateY(-50%);
  font-size: 22px; color: var(--muted); transition: transform .2s; }
.qa.is-open .qa__q::after { content: "−"; }
.qa__a { max-height: 0; overflow: hidden; transition: max-height .3s ease; }
.qa__a-inner { padding: 0 20px 18px; color: var(--muted); font-size: 14px; }

/* =========================================================
   最終CTA
   ========================================================= */
.cta-band {
  background: linear-gradient(135deg, var(--blue) 0%, var(--navy) 100%);
  color: #fff; text-align: center;
}
.cta-band h2 { font-size: clamp(22px, 3vw, 30px); margin-bottom: 10px; }
.cta-band p { color: #d6e4f6; margin: 0 0 26px; }
.cta-band .hero__cta { justify-content: center; }
.cta-band small { display: block; margin-top: 16px; font-size: 12px; color: #a9c2e2; }

/* =========================================================
   フッター
   ========================================================= */
.footer { background: #0a1f42; color: #c3d2e8; padding: 56px 0 24px; font-size: 13.5px; }
.footer__top { display: grid; grid-template-columns: 1.4fr repeat(4, 1fr); gap: 30px; }
.footer__brand .brand__name { color: #fff; }
.footer__brand p { color: #8ba7cc; font-size: 12px; margin-top: 12px; }
.footer h4 { color: #fff; font-size: 14px; margin-bottom: 12px; }
.footer li { margin-bottom: 8px; }
.footer a:hover { color: #fff; }
.footer__bottom { border-top: 1px solid rgba(255,255,255,.12); margin-top: 36px; padding-top: 18px;
  display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; font-size: 12px; color: #7f9bc0; }
.footer__bottom a { margin-right: 16px; }

/* =========================================================
   レスポンシブ（スマホ・タブレット）
   ========================================================= */
/* ヘッダー：横幅が足りなくなる1360px以下では、折り返さずハンバーガーメニューに切り替え */
@media (max-width: 1360px) {
  .nav, .header__cta { display: none; }
  .nav-toggle { display: flex; }
  .header.is-open .nav { display: block; position: absolute; top: 84px; left: 0; right: 0;
    background: #fff; border-bottom: 1px solid var(--line); padding: 10px 0; box-shadow: var(--shadow); }
  .header.is-open .nav ul { flex-direction: column; align-items: stretch; gap: 0; }
  .header.is-open .nav a { padding: 14px 24px; border-bottom: 1px solid var(--line); }
  .header.is-open .nav a::after { display: none; }
}

@media (max-width: 900px) {
  .hero__inner { grid-template-columns: 1fr; gap: 30px; }
  .hero__visual { max-width: 420px; }
  .stats__grid { grid-template-columns: 1fr 1fr; }
  .webinar__grid { grid-template-columns: 1fr; }
  .reasons__grid { grid-template-columns: 1fr; gap: 16px; }
  .reason-card__visual img { max-width: 150px; }
  .columns__grid { grid-template-columns: 1fr 1fr; }
  .worries__layout { grid-template-columns: 1fr; gap: 20px; }
  .worries__visual { order: -1; }
  .worries__mascot { height: 240px; }
  .footer__top { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 520px) {
  .section { padding: 52px 0; }
  .columns__grid { grid-template-columns: 1fr; }
  .worries__list { grid-template-columns: 1fr; }
  .footer__top { grid-template-columns: 1fr; }
  .hero__badge { width: 108px; height: 108px; top: -10px; }
  .hero__badge b { font-size: 24px; }
}

/* =========================================================
   リデザイン 2.0：見出し統一・ミッション・アニメーション
   ========================================================= */
/* 英字の見出しラベル（全セクション共通） */
.sec-eyebrow { display: inline-flex; align-items: center; gap: 14px; font-family: Georgia, "Times New Roman", serif;
  font-size: 19px; font-weight: 700; letter-spacing: .3em; color: #c9992e; margin-bottom: 10px; }
.sec-eyebrow::before, .sec-eyebrow::after { content: ""; width: 34px; height: 2px; background: currentColor; opacity: .5; }
.sec-eyebrow--light { color: #e6c46a; }
.section-head--deco h2 { position: relative; padding-bottom: 18px; }
.section-head--deco h2::after { content: ""; position: absolute; left: 50%; bottom: 0; transform: translateX(-50%);
  width: 64px; height: 4px; border-radius: 2px; background: linear-gradient(90deg, #e5c15c, #c9992e); }

/* ミッション・ビジョン（縦積み＋背景に大きな英字） */
.mv { position: relative; overflow: hidden; color: #fff; padding: 36px 0;
  background: radial-gradient(110% 140% at 82% 8%, #17427e 0%, #0d2b57 55%, #091d3d 100%); }
.mv__block { position: relative; text-align: center; padding: 18px 0; }
.mv__word { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); z-index: 0;
  font-family: Georgia, "Times New Roman", serif; font-weight: 700; letter-spacing: .08em;
  font-size: clamp(52px, 8vw, 104px); color: rgba(255,255,255,.05); pointer-events: none; white-space: nowrap; }
.mv__label { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 14px;
  font-family: Georgia, "Times New Roman", serif; font-size: 20px; font-weight: 700;
  letter-spacing: .34em; color: var(--gold); margin-bottom: 18px; text-transform: uppercase; }
.mv__label::before, .mv__label::after { content: ""; width: 30px; height: 1.5px; background: currentColor; opacity: .55; }
.mv__text { position: relative; z-index: 1; font-size: clamp(23px, 2.9vw, 34px); font-weight: 800;
  line-height: 1.75; margin: 0; letter-spacing: .05em; }
/* スマホ専用の改行位置（PC・タブレットでは使わない） */
.mv__text .br-sp { display: none; }
/* ここでは折らせない、という指定（例：「保有率」の途中で切れるのを防ぐ） */
.nobr { white-space: nowrap; }
.mv__sep { display: flex; justify-content: center; align-items: center; gap: 14px;
  color: rgba(216,178,74,.85); font-size: 11px; }
.mv__sep::before, .mv__sep::after { content: ""; width: 130px; height: 1px; }
.mv__sep::before { background: linear-gradient(90deg, transparent, rgba(216,178,74,.55)); }
.mv__sep::after { background: linear-gradient(90deg, rgba(216,178,74,.55), transparent); }

/* 最大の強みカード（金融教育） */
.reason-card--featured { grid-column: 1 / -1; display: grid; grid-template-columns: 300px 1fr;
  column-gap: 38px; align-items: center; text-align: left; padding: 46px 38px 30px;
  border: 1.5px solid rgba(201,153,46,.55); }
.reason-card--featured::before { height: 6px; background: linear-gradient(90deg, #e5c15c, #c9992e); }
.reason-card--featured .reason-card__top { grid-row: 1 / span 2; }
.reason-card--featured .reason-card__visual img { max-width: 230px; }
.reason-card--featured h3 { font-size: 24px; }
.reason-card--featured .reason-card__lead,
.reason-card--featured .reason-card__list li { font-size: 16px; }
.reason-card__badge { position: absolute; top: -1px; left: 26px; z-index: 2;
  background: linear-gradient(135deg, #e5c15c, #c9992e); color: #fff; font-weight: 800; font-size: 13.5px;
  letter-spacing: .05em; padding: 9px 20px; border-radius: 0 0 12px 12px; box-shadow: 0 8px 18px rgba(176,124,20,.35); }

/* ヒーローの登場アニメーション */
@keyframes heroIn { from { opacity: 0; transform: scale(1.035); } to { opacity: 1; transform: none; } }
@keyframes fadeUp { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
.hero__banner-img { animation: heroIn 1.1s ease both; }
.hero__cta--under { animation: fadeUp .8s ease .45s both; }

/* スクロールで現れる動き */
.reveal { opacity: 0; }
.reveal.is-in { animation: revealUp .7s cubic-bezier(.22, .7, .3, 1) both; animation-delay: var(--rd, 0ms); }
.reveal.reveal-done { animation: none; opacity: 1; }
@keyframes revealUp { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }

/* ヘッダー：スクロール時にうっすら影 */
.header.is-scrolled { box-shadow: 0 6px 22px rgba(13, 43, 87, .10); }

@media (prefers-reduced-motion: reduce) {
  .reveal, .reveal.is-in { animation: none !important; opacity: 1 !important; transform: none !important; }
  .hero__banner-img, .hero__cta--under { animation: none !important; }
}
@media (max-width: 900px) {
  .mv { padding: 28px 0; }
  .mv__block { padding: 16px 0; }
  .mv__sep::before, .mv__sep::after { width: 70px; }
  .reason-card--featured { grid-template-columns: 1fr; text-align: center; padding: 52px 24px 26px; row-gap: 6px; }
  .reason-card--featured .reason-card__list { text-align: left; }
  .reason-card__badge { left: 50%; transform: translateX(-50%); white-space: nowrap; font-size: 12px; }
}

/* =========================================================
   リデザイン 2.1：お悩み吹き出し・ウェビナー/FAQ/フッター磨き
   ========================================================= */
/* お悩み＝吹き出しデザイン（マスコットに向かって話しかける） */
.worry { position: relative; display: flex; align-items: center; gap: 12px; background: #fff;
  border: 2px solid #d9e3f0; border-left: 2px solid #d9e3f0; border-radius: 18px; padding: 16px 18px;
  font-weight: 700; font-size: 15px; box-shadow: 0 6px 16px rgba(13,43,87,.07);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.worry:nth-child(odd) { transform: rotate(-.8deg); }
.worry:nth-child(even) { transform: rotate(.8deg); }
.worry::before { content: ""; position: absolute; right: -13px; top: 50%; margin-top: -8px;
  border: 8px solid transparent; border-left: 12px solid #d9e3f0; }
.worry::after { content: ""; position: absolute; right: -7px; top: 50%; margin-top: -6px;
  border: 6px solid transparent; border-left: 10px solid #fff; }
.worry:hover { transform: rotate(0deg) translateY(-3px); box-shadow: 0 12px 26px rgba(13,43,87,.15);
  border-color: rgba(233,123,12,.55); }
.worry__mark { flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--orange);
  color: #fff; font-weight: 800; font-size: 16px; display: flex; align-items: center; justify-content: center; }
/* 吹き出しはポンッと弾んで登場 */
.worry.reveal.is-in { animation: popWorry .55s cubic-bezier(.34, 1.56, .64, 1) both; animation-delay: var(--rd, 0ms); }
@keyframes popWorry { from { opacity: 0; transform: scale(.72); } to { opacity: 1; } }

/* お悩みの締めのひとこと */
.worries__punch { text-align: center; margin: 38px 0 0; font-size: clamp(17px, 2vw, 21px);
  font-weight: 800; color: var(--navy); }
.worries__punch strong { background: linear-gradient(transparent 55%, #ffe066 55%);
  padding: 0 4px; color: var(--orange-dark); font-size: 1.15em; }
.worries__punch-arrow { display: block; margin-top: 8px; color: var(--orange); font-size: 18px;
  animation: punchBounce 1.5s ease-in-out infinite; }
@keyframes punchBounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(7px); } }

/* ウェビナーカードの磨き */
.wcard { transition: transform .18s ease, box-shadow .18s ease; }
.wcard:hover { transform: translateY(-6px); box-shadow: 0 20px 44px rgba(0,0,0,.30); }
.wcard__date { display: inline-block; background: #eef3fb; padding: 3px 12px; border-radius: 6px; }

/* よくある質問：Q・Aのバッジで読みやすく */
.qa { border-radius: 12px; transition: border-color .2s ease, box-shadow .2s ease; }
.qa.is-open { border-color: rgba(201,153,46,.65); box-shadow: 0 8px 22px rgba(13,43,87,.08); }
.qa__q::before { content: "Q"; display: inline-flex; align-items: center; justify-content: center;
  width: 27px; height: 27px; border-radius: 50%; background: var(--navy); color: #fff;
  font-size: 13.5px; margin-right: 13px; }
.qa__a-inner { position: relative; padding: 2px 20px 18px 60px; }
.qa__a-inner::before { content: "A"; position: absolute; left: 20px; top: 0;
  display: inline-flex; align-items: center; justify-content: center; width: 27px; height: 27px;
  border-radius: 50%; background: var(--orange); color: #fff; font-weight: 800; font-size: 13.5px; }

/* フッターの磨き */
.footer { border-top: 4px solid var(--gold); }
.footer__brand .footer__mission { color: #d8c17a; font-weight: 700; font-size: 12.5px; }
.footer a { transition: color .15s ease; }
.footer__soon { margin-right: 16px; color: #6f8bb0; cursor: default; }

/* =========================================================
   リデザイン 2.2：資料ダウンロード・運営会社・ページトップ
   ========================================================= */
/* 資料ダウンロード */
.download { background: linear-gradient(160deg, #f4f8fd 0%, #e9f1fa 100%); }
.download__inner { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }
.download__visual { display: flex; justify-content: flex-start; }
/* 開く本：カーソルを合わせると表紙がめくれて中のページが見える */
.dl-book { position: relative; perspective: 1100px; width: 262px; aspect-ratio: 210 / 297;
  transition: transform .5s ease .1s; z-index: 1; }
.dl-book:hover { transform: translateX(-40px); z-index: 20; }   /* 本ごと左へ寄せて見開き分の場所を作る */
/* 中のページ（和紙風＋書道の文字） */
.dl-book__page { position: absolute; inset: 0; z-index: 0; border-radius: 14px 6px 6px 14px;
  background: linear-gradient(255deg, #efe9da 0%, #fbf7ec 22%, #fffdf6 100%);
  box-shadow: 20px 26px 46px rgba(13,43,87,.30), inset -14px 0 20px rgba(90,70,30,.14);
  display: flex; align-items: center; justify-content: center; padding: 20px; }
.dl-book__message { font-family: "HGP行書体", "HG行書体", "祥南行書体", "AR P行書体M", "Yu Mincho", "游明朝", serif;
  color: #17181c; text-align: center; font-size: 25px; line-height: 1.7; font-weight: 700;
  margin: 0; transform: rotate(-2deg);
  opacity: 0; transition: opacity .35s ease; }   /* 最後の1枚がめくれてから文字が浮かぶ */
.dl-book:hover .dl-book__message { opacity: 1; transition-delay: .6s; }
.dl-book__message span { display: block; margin-top: 10px; font-size: 46px; color: #a3151b; letter-spacing: .06em; }
/* 中間ページ（パラパラめくれる白紙） */
.dl-book__leaf { position: absolute; inset: 0; border-radius: 14px 6px 6px 14px;
  background: linear-gradient(255deg, #f3eee1 0%, #fffdf6 60%);
  box-shadow: inset -10px 0 14px rgba(90,70,30,.10), -2px 2px 8px rgba(13,43,87,.10);
  transform-origin: right center;
  transition: transform .55s cubic-bezier(.35, .1, .25, 1); }
.dl-book__leaf--1 { z-index: 3; transform: rotateY(11deg); transition-delay: .24s; }
.dl-book__leaf--2 { z-index: 2; transform: rotateY(10deg); transition-delay: .12s; }
.dl-book__leaf--3 { z-index: 1; transform: rotateY(9deg); transition-delay: 0s; }
.dl-book:hover .dl-book__leaf--1 { transform: rotateY(152deg); transition-delay: .14s; }
.dl-book:hover .dl-book__leaf--2 { transform: rotateY(157deg); transition-delay: .3s; }
.dl-book:hover .dl-book__leaf--3 { transform: rotateY(162deg); transition-delay: .46s; }
/* 表紙（最初にめくれる側・右開き） */
.dl-book__flip { position: absolute; inset: 0; z-index: 4; transform-style: preserve-3d;
  transform-origin: right center; transform: rotateY(12deg);
  transition: transform .6s cubic-bezier(.35, .1, .25, 1); transition-delay: .36s; }
.dl-book:hover .dl-book__flip { transform: rotateY(148deg); transition-delay: 0s; }
.dl-book__cover { position: absolute; inset: 0; overflow: hidden; backface-visibility: hidden;
  background: linear-gradient(210deg, var(--navy) 0%, #14407c 55%, #0a2145 100%);
  border-radius: 14px 6px 6px 14px; color: #fff; padding: 26px 24px; display: flex; flex-direction: column;
  box-shadow: 20px 26px 46px rgba(13,43,87,.35); }
/* 表紙の裏側（めくれたときに見える紙面） */
.dl-book__coverback { position: absolute; inset: 0; border-radius: 6px 14px 14px 6px;
  background: linear-gradient(105deg, #efe9da 0%, #fbf7ec 22%, #fffdf6 100%);
  box-shadow: inset 14px 0 20px rgba(90,70,30,.14);
  transform: rotateY(180deg); backface-visibility: hidden; }

/* 最後のページ（右側）＝写真。全部めくり終わってから現れる */
.dl-book__photo { position: absolute; top: 0; bottom: 0; left: 100%; width: 100%; z-index: 5;
  border-radius: 0 14px 14px 0; overflow: hidden;
  background: linear-gradient(105deg, #efe9da 0%, #fbf7ec 18%, #fffdf6 100%);
  box-shadow: inset 16px 0 22px rgba(90,70,30,.16), 14px 20px 40px rgba(13,43,87,.22);
  display: flex; align-items: center; justify-content: center; padding: 14px;
  opacity: 0; pointer-events: none; transition: opacity .4s ease; }
.dl-book:hover .dl-book__photo { opacity: 1; transition-delay: .75s; }
.dl-book__photo img { width: 100%; height: 100%; object-fit: cover; border-radius: 6px; }
.dl-book__cover::before { content: ""; position: absolute; right: 10px; top: 0; bottom: 0; width: 2px;
  background: rgba(255,255,255,.25); }
.dl-book__tag { align-self: flex-start; background: var(--gold); color: #fff; font-size: 11px;
  font-weight: 800; padding: 4px 13px; border-radius: 999px; }
.dl-book__logo { margin-top: 22px; font-size: 12px; color: #bcd0ea; font-weight: 700; letter-spacing: .06em; }
.dl-book__cover h3 { font-size: 27px; font-weight: 800; line-height: 1.5; margin: 8px 0 12px; }
.dl-book__cover p { font-size: 12px; color: #c9d8ec; margin: 0; line-height: 1.8; }
.dl-book__foot { margin-top: auto; font-size: 10.5px; color: #8ea9cd;
  border-top: 1px solid rgba(255,255,255,.2); padding-top: 12px; }
.download__body .sec-eyebrow { margin-bottom: 8px; }
.download__body h2 { font-size: clamp(25px, 3vw, 34px); color: var(--navy); font-weight: 800; margin: 0 0 16px; }
.download__lead { font-size: 15px; color: var(--muted); line-height: 1.95; margin: 0 0 22px; }
.download__list { display: grid; grid-template-columns: 1fr 1fr; gap: 11px 26px; margin: 0 0 28px; }
.download__list li { position: relative; padding-left: 27px; font-size: 14.5px; font-weight: 700; color: #253244; }
.download__list li::before { content: "✓"; position: absolute; left: 0; top: 4px; width: 19px; height: 19px;
  border-radius: 50%; background: var(--blue); color: #fff; font-size: 11px; font-weight: 800;
  display: flex; align-items: center; justify-content: center; }
.download__note { font-size: 12px; color: var(--muted); margin-top: 14px; }

/* 運営会社 */
.company { background: #fff; }
.company__inner { display: grid; grid-template-columns: 320px 1fr; gap: 50px; align-items: start; }
.company__rep { text-align: center; }
.company__photo { width: 190px; height: 190px; object-fit: cover; object-position: top;
  border-radius: 50%; margin: 0 auto 14px; box-shadow: var(--shadow); border: 4px solid #fff;
  outline: 1px solid var(--line); }
.company__rep-name small { display: block; font-size: 12px; color: var(--muted); font-weight: 700; }
.company__rep-name b { font-size: 23px; color: var(--navy); font-weight: 800; letter-spacing: .06em; }
.company__msg { margin: 16px 0 0; font-size: 13.5px; color: #3a4a5d; line-height: 1.95; text-align: left;
  background: var(--bg-soft); border-radius: 12px; padding: 16px 18px; }
.company__msg .req-check { display: block; margin-top: 6px; text-align: right; }
.company__table { width: 100%; border-collapse: collapse; font-size: 14.5px; }
.company__table th, .company__table td { text-align: left; padding: 15px 12px;
  border-bottom: 1px solid var(--line); vertical-align: top; line-height: 1.8; }
.company__table th { width: 130px; color: var(--navy); font-weight: 800; white-space: nowrap; }
.company__table a { color: var(--blue); font-weight: 700; }
.company__table a:hover { text-decoration: underline; }

/* ページトップへ戻る */
.page-top { position: fixed; right: 20px; bottom: 128px; z-index: 59; width: 46px; height: 46px;
  border-radius: 50%; border: 1px solid var(--line); background: rgba(255,255,255,.96); color: var(--navy);
  font-size: 18px; font-weight: 800; cursor: pointer; box-shadow: 0 8px 20px rgba(13,43,87,.18);
  opacity: 0; transform: translateY(14px); pointer-events: none;
  transition: opacity .3s ease, transform .3s ease, background .2s ease, color .2s ease; }
.page-top.is-visible { opacity: 1; transform: none; pointer-events: auto; }
.page-top:hover { background: var(--navy); color: #fff; }

@media (max-width: 900px) {
  .download__inner { grid-template-columns: 1fr; gap: 32px; }
  .download__list { grid-template-columns: 1fr; }
  .company__inner { grid-template-columns: 1fr; gap: 30px; }
  .page-top { bottom: 108px; right: 12px; }
}

/* =========================================================
   ヒーロー（写真＋HTMLテキスト版）
   左半分はCSSの白グラデーション。文字はHTMLなので後から修正可能。
   ========================================================= */
.hero--photo { position: relative; background: #fff; padding: 0; overflow: hidden; }
.hero-photo__bg { position: absolute; inset: 0; background: #fff; }
/* 画像は引き伸ばさず、右側に原寸ベースで配置（＝ぼやけない） */
.hero-photo__bg img { position: absolute; right: -2%; top: -14%; height: 128%; width: auto; max-width: none;
  animation: heroIn 1.2s ease both; }   /* 大きめ＝右端基準なので写真が左まで広がる */
/* 画像の左端を白へ自然になじませる */
.hero-photo__bg::after { content: ""; position: absolute; inset: 0;
  background: linear-gradient(to left,
    rgba(255,255,255,0) 0px, rgba(255,255,255,0) 460px,
    rgba(255,255,255,.3) 610px, rgba(255,255,255,.78) 730px, #ffffff 850px); }
.hero-photo__inner { position: relative; z-index: 1; width: 100%; max-width: 100%; margin: 0;
  padding: 44px 40px 50px clamp(40px, 6vw, 120px); }   /* 広い画面ではテキストを少し右へ */
.hero-photo__copy { max-width: 820px; }
.hero-photo__copy > * { animation: fadeUp .7s ease both; }
.hero-photo__copy > *:nth-child(1) { animation-delay: .05s; }
.hero-photo__copy > *:nth-child(2) { animation-delay: .18s; }
.hero-photo__copy > *:nth-child(3) { animation-delay: .30s; }
.hero-photo__copy > *:nth-child(4) { animation-delay: .42s; }
.hero-photo__copy > *:nth-child(5) { animation-delay: .54s; }
.hero-photo__badges { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 20px; }
/* 枠線タイプのバッジ（大きめ文字） */
.hero-photo__eyebrow-lg { display: inline-block; font-size: 17px; font-weight: 800; color: #b07f16;
  border: 2px solid rgba(201,153,46,.6); border-radius: 999px; padding: 8px 26px;
  background: rgba(255,255,255,.75); letter-spacing: .04em; }
.hero-photo__copy h1 { font-size: clamp(30px, 4.4vw, 55px); font-weight: 900; color: var(--navy);
  line-height: 1.38; letter-spacing: .005em; margin: 0;
  /* 明るい写真の上でも輪郭が立つように、白いにじみを敷く */
  text-shadow: 0 0 9px rgba(255,255,255,.98), 0 2px 18px rgba(255,255,255,.95),
               0 0 38px rgba(255,255,255,.85); }
/* 「ん」だけの改行を防ぎつつ、2行目にゴールドのマーカーを引く */
.hero-photo__copy h1 .keep-unit { display: inline-block; padding: 0 .08em;
  background: linear-gradient(transparent 68%, rgba(216,178,74,.45) 68%); }
.hero-photo__sub { font-size: clamp(18px, 2.6vw, 29px); font-weight: 800; color: var(--navy);
  margin: 18px 0 20px; line-height: 1.6;
  text-shadow: 0 0 8px rgba(255,255,255,.98), 0 2px 16px rgba(255,255,255,.92); }
.hero-photo__sub em { font-style: normal; color: #c9992e; }
.hero-photo__lead { font-size: 15.5px; color: #33455a; line-height: 1.95; max-width: 50ch;
  margin: 0 0 30px; text-shadow: 0 1px 10px rgba(255,255,255,.9); }
.hero-photo__cta { margin-top: 0; }

@media (max-width: 900px) {
  .hero-photo__inner { padding: 36px 20px 42px; }
  /* スマホは全面をうっすら白くして読みやすく */
  .hero-photo__bg::after { left: 0; width: 100%; background: linear-gradient(180deg,
    rgba(255,255,255,.94) 0%, rgba(255,255,255,.86) 60%, rgba(255,255,255,.78) 100%); }
  .hero-photo__copy { max-width: none; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-photo__bg img, .hero-photo__copy > * { animation: none !important; }
}

/* =========================================================
   導入事例（お客様の声風カード）
   ========================================================= */
.cases { background: linear-gradient(160deg, #10305f 0%, #0a1f42 100%); }
.cases .section-head h2 { color: #fff; }
.cases .section-head p { color: #a9c2e2; }
.cases__viewport { position: relative; }
.cases__grid { display: flex; gap: 24px; overflow-x: auto; scroll-snap-type: x proximity;
  padding: 8px 4px 18px; margin: 0 -4px; scrollbar-width: thin; }
/* PCではちょうど3枚が収まる幅。4枚目以降は横スクロールで見せる（gap 24px × 2）。
   min-width は 901px 時でも calc が勝つ値にしておく（3枚だけのとき偽の横スクロールを出さないため） */
.case-card { position: relative; overflow: hidden; flex: 0 0 calc((100% - 48px) / 3); min-width: 250px; scroll-snap-align: start;
  display: flex; flex-direction: column; background: #fff; border-radius: 18px;
  box-shadow: 0 10px 28px rgba(0,0,0,.25); transition: transform .18s ease, box-shadow .18s ease; }
.case-card:hover { box-shadow: 0 20px 44px rgba(0,0,0,.32); }
/* ホバーで光が走るシャイン（乗せたカードだけ一度光る。戻りの光は出さない） */
.case-card::before { content: ""; position: absolute; top: 0; left: -85%; width: 55%; height: 100%; z-index: 3;
  background: linear-gradient(105deg, transparent, rgba(255,255,255,.4), transparent);
  transform: skewX(-18deg); pointer-events: none; transition: none; }
.case-card:hover::before { left: 130%; transition: left .6s ease; }
/* 上部のブランド帯（業種の写真＋暗いグラデーション＋斜めストライプ）
   写真が読み込まれない場合は下の --a〜--f のグラデーションがそのまま出る */
.case-card__visual { position: relative; height: 160px; border-radius: 18px 18px 0 0; overflow: hidden; }
.case-card__photo { position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: center 38%; z-index: 0; }
/* 白いロゴプレートと社名が確実に読めるように、下へ向かって濃くなる幕をかける */
.case-card__visual::after { content: ""; position: absolute; inset: 0; z-index: 1;
  background:
    repeating-linear-gradient(-55deg, rgba(255,255,255,.05) 0 14px, transparent 14px 30px),
    linear-gradient(180deg, rgba(5,17,38,.14) 0%, rgba(5,17,38,.34) 48%, rgba(5,17,38,.82) 100%); }
.case-card__visual--a { background: linear-gradient(135deg, #1e5aa8, #0d2b57); }
.case-card__visual--b { background: linear-gradient(135deg, #2c8698, #1f5f6e); }
.case-card__visual--c { background: linear-gradient(135deg, #3a5f97, #22375c); }
.case-card__visual--d { background: linear-gradient(135deg, #c9992e, #8a6a17); }
.case-card__visual--e { background: linear-gradient(135deg, #2e7d63, #17503f); }
.case-card__visual--f { background: linear-gradient(135deg, #5b4b96, #2f2760); }
.case-card__visual--g { background: linear-gradient(135deg, #a8663f, #5f351d); }
.case-card__visual--h { background: linear-gradient(135deg, #4a5a6e, #232e3c); }
.case-card__quote { position: absolute; right: 20px; bottom: 6px; z-index: 2;
  color: rgba(255,255,255,.55); font-family: Georgia, "Times New Roman", serif; font-size: 84px; line-height: .5;
  text-shadow: 0 2px 10px rgba(0,0,0,.35); }
/* 帯の中の社名 */
.case-card__brand { position: absolute; left: 20px; bottom: 13px; z-index: 2;
  display: inline-flex; align-items: center; gap: 9px;
  color: #fff; font-weight: 800; font-size: 14px; letter-spacing: .04em;
  text-shadow: 0 1px 3px rgba(0,0,0,.75), 0 2px 12px rgba(0,0,0,.5); }
.case-card__brand svg { width: 22px; height: 22px; flex: none; }
/* 帯の中の白ロゴプレート（実ロゴ画像） */
.case-card__plate { position: absolute; left: 20px; top: 14px; z-index: 2;
  width: 172px; height: 80px; background: #fff; border-radius: 11px;
  box-shadow: 0 8px 20px rgba(4,18,40,.28); display: flex; align-items: center; justify-content: center;
  overflow: hidden; padding: 7px 11px; }
.case-card__plate img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
/* 横に極端に長いロゴ（税理士法人優和など）は枠を広げて読める大きさを確保する */
.case-card__plate--wide { width: 214px; }
/* ロゴ画像がない企業はロゴタイプ風の文字組みで揃える */
.case-card__plate--text > span { display: flex; flex-direction: column; align-items: center;
  line-height: 1.12; font-size: 25px; font-weight: 900; letter-spacing: .02em; color: var(--navy); }
.case-card__plate--text small { font-size: 11.5px; font-weight: 800; letter-spacing: .16em;
  color: #7f8ea3; margin-bottom: 2px; }
.case-card__body { display: flex; flex-direction: column; flex: 1; padding: 26px 24px 22px; }
.case-card__tags { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.case-tag { font-size: 12px; font-weight: 700; padding: 4px 13px; border-radius: 999px;
  background: #fff2e0; color: var(--orange-dark); }
.case-tag--size { background: var(--blue-light); color: var(--blue); }
.case-card__body h3 { font-size: 18.5px; color: var(--navy); font-weight: 800; line-height: 1.55;
  margin: 0 0 13px; letter-spacing: -.01em; }
/* 導入効果（数字ではなく“事実”を置く帯） */
.case-card__result { padding: 11px 14px; margin: 0 0 14px; border-radius: 8px;
  background: linear-gradient(90deg, #fdf6e7, #fff); border-left: 3px solid var(--gold); }
.case-card__result small { display: block; font-size: 11px; font-weight: 800; letter-spacing: .12em;
  color: #a4801f; margin-bottom: 3px; }
.case-card__result b { display: block; font-size: 14.5px; font-weight: 800; color: #7a5c0f; line-height: 1.6; }
/* 成果の数字（ゴールド強調） */
.case-card__metric { display: flex; align-items: baseline; gap: 7px; padding: 10px 14px; margin: 0 0 13px;
  background: linear-gradient(90deg, #fdf6e7, #fff); border-left: 3px solid var(--gold); border-radius: 8px; }
.case-card__metric small { font-size: 12.5px; font-weight: 700; color: #6b6046; }
.case-card__metric b { font-family: Georgia, "Times New Roman", serif; font-size: 32px; font-weight: 700;
  color: #c9992e; line-height: 1; }
.case-card__metric i { font-style: normal; font-size: 15px; margin-left: 1px; }
.case-card__body p { font-size: 13.5px; color: var(--muted); line-height: 1.85; margin: 0 0 13px; }
.case-card__foot { margin-top: auto; padding-top: 13px; border-top: 1px solid var(--line); }
.case-card__foot b { display: block; font-size: 11px; font-weight: 800; letter-spacing: .12em;
  color: var(--muted); margin-bottom: 3px; }
.case-card__foot span { font-size: 13px; color: var(--navy); font-weight: 800; line-height: 1.6; }
.case-card__person { display: flex; align-items: baseline; gap: 8px; }
.case-card__person b { font-size: 11.5px; color: var(--muted); font-weight: 700; }
.case-card__person span { font-size: 14px; color: var(--navy); font-weight: 800; }
.cases__note { margin: 16px 0 0; font-size: 11.5px; line-height: 1.8; color: #90aacd; }
/* 事例の横スクロール矢印・フェード */
.cases__nav { position: absolute; top: 42%; transform: translateY(-50%); z-index: 4;
  width: 42px; height: 42px; border-radius: 50%; border: 0; background: #fff; color: var(--navy);
  box-shadow: 0 6px 18px rgba(0,0,0,.35); font-size: 22px; line-height: 1; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: opacity .2s ease, background .2s ease, color .2s ease; }
.cases__nav:hover { background: var(--gold); color: #fff; }
.cases__nav--prev { left: -8px; }
.cases__nav--next { right: -8px; }
.cases__nav.is-hidden { opacity: 0; pointer-events: none; }
.cases__nav--next:not(.is-hidden) { animation: navNudge 1.5s ease-in-out infinite; }
.cases__nav--next:hover { animation: none; }
.cases__fade { position: absolute; top: 6px; right: -4px; bottom: 26px; width: 70px; z-index: 3;
  pointer-events: none; background: linear-gradient(to right, rgba(10,31,66,0), #0a1f42);
  transition: opacity .25s ease; }
.cases__viewport.is-end .cases__fade { opacity: 0; }
/* 「導入事例をすべて見る」ボタン */
.cases__more { display: flex; justify-content: center; margin: 26px 0 0; }
.btn--gold { background: linear-gradient(135deg, #e8c766, var(--gold)); color: #2a1f04;
  box-shadow: 0 8px 22px rgba(216,178,74,.32); }
.btn--gold:hover { background: linear-gradient(135deg, #f3d888, #e0be58); color: #2a1f04; }
@media (max-width: 900px) {
  .case-card { flex-basis: 78%; min-width: 264px; }
  .cases__nav { display: none; }
}

/* =========================================================
   ウェビナーのサムネイル（デザイン版）
   ========================================================= */
/* サムネはウェビナーの表紙。左＝カテゴリ＋タイトル＋講師名、右＝講師の写真 */
.wcard__thumb { position: relative; aspect-ratio: 16 / 10;
  display: block; color: #fff; overflow: hidden; }
.wcard__thumb::after { content: ""; position: absolute; inset: 0; z-index: 1;
  background: repeating-linear-gradient(-55deg, rgba(255,255,255,.06) 0 14px, transparent 14px 30px); }
.wcard__thumb-word { position: absolute; left: 34%; bottom: 2px; transform: translateX(-50%);
  font-family: Georgia, "Times New Roman", serif; font-weight: 700; font-size: 30px;
  letter-spacing: .28em; color: rgba(255,255,255,.13); white-space: nowrap; }
.wcard__thumb--a { background: linear-gradient(135deg, #3f7fce, #1e5aa8); }
.wcard__thumb--b { background: linear-gradient(135deg, #2c8698, #1f5f6e); }
.wcard__thumb--c { background: linear-gradient(135deg, #3a5f97, #22375c); }
/* 右側の人物。左端を斜めに切って、ただの半分割に見えないようにする */
.wcard__face { position: absolute; right: 0; top: 0; z-index: 2;
  width: 47%; height: 100%; object-fit: cover; object-position: center 10%;
  clip-path: polygon(13% 0, 100% 0, 100% 100%, 0 100%); }
/* 左側のコピー。下寄せに組んで、上は余白として抜く */
.wcard__copy { position: relative; z-index: 3; width: 57%; height: 100%;
  display: flex; flex-direction: column; align-items: flex-start;
  padding: 15px 6px 15px 18px; }
.wcard__cat { display: inline-block; font-size: 11px; font-weight: 900; letter-spacing: .1em;
  background: rgba(255,255,255,.94); color: var(--navy); padding: 4px 11px; border-radius: 4px; }
/* サムネのセミナータイトル。
   ※ .wcard h3（15.5px・紺色）の方が詳細度が高いので、クラスを2つ重ねて上書きする */
/* nowrap で <br> の位置だけで改行させ、「ト」「の」だけが次行に落ちるのを防ぐ */
.wcard .wcard__ttl { margin: auto 0 0; font-size: 18px; font-weight: 900;
  line-height: 1.45; letter-spacing: -.02em; color: #fff; white-space: nowrap;
  text-shadow: 0 2px 14px rgba(4,16,36,.55); }
.wcard__lect { margin: 11px 0 0; font-size: 12px; font-weight: 800; letter-spacing: .06em;
  color: #fff; background: rgba(4,16,36,.4); border: 1px solid rgba(255,255,255,.42);
  padding: 4px 12px; border-radius: 999px; }
/* 本文側はサブタイトル扱い（メインのタイトルはサムネに移した） */
.wcard__sub { font-size: 15px; font-weight: 800; color: var(--navy); line-height: 1.65;
  margin: 10px 0 12px; }

/* =========================================================
   スマホ総点検での修正（2026-07-31）
   ========================================================= */
/* 「3つ」が行またぎで分かれないように */
.merits__num { white-space: nowrap; }
/* 事例の成果行：「加入率」等のラベルが途中で折れないように */
.case-card__metric { flex-wrap: wrap; }
.case-card__metric small { white-space: nowrap; }
/* ガイドブック表紙の「導入ガイドブック」が折れないように */
.dl-book__cover h3 { font-size: 25px; }

@media (max-width: 560px) {
  /* ヒーロー見出し「〜ありません。」がどの幅でも2行で収まるサイズに */
  .hero-photo__copy h1 { font-size: clamp(18px, 6vw, 23px); letter-spacing: .01em; }
  /* ミッション・ビジョンはPC用の改行指定を外し、スマホ用の位置で折る
     （ミッションは「お金」から改行して2行のバランスを揃える） */
  .mv__text br { display: none; }
  .mv__text .br-sp { display: inline; }
  .mv__text { font-size: 20px; line-height: 2; }
}
@media (max-width: 700px) {
  /* スマホでは右端の縦型バナーが本文に重なるため非表示（下の相談バナーと資料DLセクションで代替） */
  .side-dl { display: none; }
}

/* =========================================================
   無料相談・お問い合わせ（フォーム）
   ========================================================= */
.contact { background: linear-gradient(135deg, var(--blue) 0%, var(--navy) 100%); }
.contact .section-head h2 { color: #fff; }
.contact .section-head p { color: #d6e4f6; }
.contact__inner { display: grid; grid-template-columns: 1.5fr .9fr; gap: 36px; align-items: start; }

/* フォーム本体（白カード） */
.contact-form { background: #fff; border-radius: 18px; padding: 34px 34px 30px;
  box-shadow: 0 18px 44px rgba(0,0,0,.25); }
.contact-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 22px; margin-bottom: 18px; }
.cf-field { display: flex; flex-direction: column; gap: 7px; }
.cf-field--full { margin-bottom: 18px; }
.cf-label { font-size: 13.5px; font-weight: 800; color: var(--navy); display: flex; align-items: center; gap: 8px; }
.cf-label em, .cf-consent em { font-style: normal; font-size: 10.5px; background: #e0453e; color: #fff;
  padding: 2px 8px; border-radius: 4px; font-weight: 700; }
.cf-field input, .cf-field select, .cf-field textarea {
  border: 1.5px solid var(--line); border-radius: 8px; padding: 12px 14px; font-size: 15px;
  font-family: inherit; background: #f8fafc; color: var(--text);
  transition: border-color .15s ease, background .15s ease; }
.cf-field input:focus, .cf-field select:focus, .cf-field textarea:focus {
  outline: none; border-color: var(--blue); background: #fff; }
.cf-field textarea { resize: vertical; }
.cf-consent { display: flex; gap: 10px; align-items: center; font-size: 14px; color: #2b3a4d;
  font-weight: 600; margin-bottom: 20px; cursor: pointer; }
.cf-consent input { width: 18px; height: 18px; accent-color: var(--blue); flex: none; }
.cf-consent a { color: var(--blue); text-decoration: underline; }
.contact-form__actions { text-align: center; }
.contact-form__submit { padding: 15px 56px; font-size: 16.5px; }
.contact-form__note { font-size: 12.5px; color: var(--muted); margin: 12px 0 0; }
.contact-form__note.is-alert { color: #c9430d; font-weight: 800; }

/* 右側：お急ぎの方 */
.contact-aside { color: #fff; }
.contact-aside h3 { font-size: 18px; margin: 6px 0 16px; padding-bottom: 10px;
  border-bottom: 2px solid rgba(216,178,74,.6); display: inline-block; }
.contact-aside__tel { display: block; background: rgba(255,255,255,.10); border: 1px solid rgba(255,255,255,.25);
  border-radius: 12px; padding: 16px 18px; margin-bottom: 14px; color: #fff;
  transition: background .15s ease; }
.contact-aside__tel:hover { background: rgba(255,255,255,.18); }
.contact-aside__tel small { display: block; font-size: 12px; color: #cfe0f4; margin-bottom: 4px; }
.contact-aside__tel b { font-size: 26px; letter-spacing: .03em; }
.contact-aside__mail { width: 100%; justify-content: center; }
.contact-aside__mascot { margin-top: 24px; text-align: center; }
.contact-aside__mascot img { width: 150px; height: auto; margin-inline: auto; }
.contact-aside__mascot p { font-size: 13px; color: #d6e4f6; margin: 10px 0 0; font-weight: 700; }

@media (max-width: 900px) {
  .contact__inner { grid-template-columns: 1fr; gap: 26px; }
  .contact-form { padding: 24px 18px 22px; }
  .contact-form__grid { grid-template-columns: 1fr; }
}

/* =========================================================
   法的ページ（プライバシーポリシー・特商法）
   ========================================================= */
.legal { max-width: 820px; padding: 52px 0 88px; }
.legal h1 { font-size: clamp(26px, 3.4vw, 34px); color: var(--navy); font-weight: 800;
  padding-bottom: 18px; margin-bottom: 22px; border-bottom: 3px solid var(--gold); }
.legal__draft { background: #fff4e5; border: 1.5px solid rgba(233,123,12,.45); border-radius: 10px;
  padding: 14px 18px; font-size: 13.5px; color: #8a4b06; line-height: 1.9; margin-bottom: 28px; }
.legal h2 { font-size: 19px; color: var(--navy); font-weight: 800; margin: 34px 0 12px;
  padding-left: 14px; border-left: 4px solid var(--gold); }
.legal p, .legal li { font-size: 15px; color: #2b3a4d; line-height: 2; }
.legal ul { padding-left: 1.4em; }
.legal li { list-style: disc; margin-bottom: 6px; }
.legal__date { margin-top: 36px; color: var(--muted); font-size: 13.5px; }
.legal__table { width: 100%; border-collapse: collapse; margin-top: 10px; }
.legal__table th, .legal__table td { text-align: left; padding: 15px 14px;
  border-bottom: 1px solid var(--line); vertical-align: top; font-size: 14.5px; line-height: 1.9; }
.legal__table th { width: 200px; color: var(--navy); font-weight: 800; white-space: nowrap; background: var(--bg-soft); }
.legal-back { margin-left: auto; padding: 10px 18px; font-size: 13.5px; }
@media (max-width: 700px) {
  .legal__table th { width: 120px; white-space: normal; }
  .legal-back { font-size: 12px; padding: 8px 12px; }
}

/* =========================================================
   資料ダウンロードのモーダルフォーム
   ========================================================= */
.dl-modal { position: fixed; inset: 0; z-index: 80; display: flex; align-items: center; justify-content: center;
  padding: 20px; opacity: 0; pointer-events: none; transition: opacity .25s ease; }
.dl-modal.is-open { opacity: 1; pointer-events: auto; }
.dl-modal__overlay { position: absolute; inset: 0; background: rgba(9,25,50,.62); backdrop-filter: blur(3px); }
.dl-modal__dialog { position: relative; width: 100%; max-width: 560px; max-height: 90vh; overflow-y: auto;
  background: #fff; border-radius: 18px; padding: 30px 30px 26px;
  box-shadow: 0 30px 80px rgba(0,0,0,.4);
  transform: translateY(18px); transition: transform .25s ease; }
.dl-modal.is-open .dl-modal__dialog { transform: none; }
.dl-modal__close { position: absolute; top: 12px; right: 14px; width: 32px; height: 32px; border: 0;
  border-radius: 50%; background: var(--bg-soft); color: var(--navy); font-size: 17px; line-height: 1;
  cursor: pointer; display: flex; align-items: center; justify-content: center; }
.dl-modal__close:hover { background: var(--navy); color: #fff; }
.dl-modal h3 { font-size: 21px; color: var(--navy); font-weight: 800; margin: 0 0 8px; line-height: 1.6; }
.dl-modal__lead { font-size: 13.5px; color: var(--muted); margin: 0 0 18px; }
.dl-modal__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; margin-bottom: 14px; }
.dl-modal .cf-field--full { margin-bottom: 14px; }
.dl-modal .cf-consent { margin-bottom: 18px; }
.dl-modal__submit { width: 100%; justify-content: center; padding: 14px; font-size: 16px; }
.dl-modal__note { font-size: 12.5px; margin: 10px 0 0; color: var(--muted); text-align: center; }
.dl-modal__note.is-alert { color: #c9430d; font-weight: 800; }
.dl-modal__thanks { text-align: center; padding: 18px 6px 8px; }
.dl-modal__thanks-icon { display: flex; align-items: center; justify-content: center;
  width: 64px; height: 64px; margin: 0 auto 16px; border-radius: 50%;
  background: #e5f6ea; color: var(--green); font-size: 30px; font-weight: 800; }
.dl-modal__thanks p { font-size: 14.5px; color: #2b3a4d; line-height: 2; margin: 12px 0 18px; }
.dl-modal__demo { font-size: 12px !important; color: var(--orange-dark) !important; }
@media (max-width: 560px) {
  .dl-modal__grid { grid-template-columns: 1fr; }
  .dl-modal__dialog { padding: 24px 18px 20px; }
}

/* =========================================================
   企業型DCとは（about-dc.html）
   ========================================================= */
/* ヘッダー（下層ページ用：ハンバーガーなしでも常に表示） */
.ab-nav { margin-left: auto; }
.ab-nav a { font-size: 15px; font-weight: 700; color: var(--text); }
.ab-nav a:hover { color: var(--blue); }
.header__cta--always { display: flex !important; }

/* パンくず */
.breadcrumb { background: var(--bg-soft); border-bottom: 1px solid var(--line); font-size: 12.5px; padding: 9px 0; }
.breadcrumb a { color: var(--blue); }
.breadcrumb span { margin: 0 8px; color: var(--muted); }
.breadcrumb b { color: var(--muted); font-weight: 600; }

/* タイトル */
.ab-hero { background: linear-gradient(135deg, #10305f 0%, #0a1f42 100%); color: #fff; padding: 56px 0 50px; }
.ab-hero__eyebrow { display: inline-flex; align-items: center; gap: 14px; font-family: Georgia, serif;
  font-size: 18px; font-weight: 700; letter-spacing: .3em; color: #e6c46a; margin-bottom: 14px; }
.ab-hero__eyebrow::before, .ab-hero__eyebrow::after { content: ""; width: 30px; height: 2px; background: currentColor; opacity: .5; }
.ab-hero h1 { font-size: clamp(23px, 3.2vw, 36px); font-weight: 800; line-height: 1.65; }
.ab-hero__lead { margin: 18px 0 0; font-size: 15.5px; color: #d6e4f6; line-height: 2; max-width: 46em; }
.ab-hero__note { margin: 14px 0 0; font-size: 12px; color: #8ea9cd; }

/* 目次 */
.ab-toc-wrap { padding: 34px 0 8px; }
.ab-toc { max-width: 760px; margin-inline: auto; background: #fff; border: 1.5px solid var(--line);
  border-top: 4px solid var(--gold); border-radius: 14px; padding: 22px 30px 24px; box-shadow: var(--shadow); }
.ab-toc h2 { font-size: 16.5px; color: var(--navy); font-weight: 800; margin-bottom: 12px; }
.ab-toc ol { margin: 0; padding-left: 1.4em; columns: 2; column-gap: 34px; }
.ab-toc li { font-size: 14px; margin-bottom: 8px; break-inside: avoid; }
.ab-toc a { color: #2b3a4d; font-weight: 600; }
.ab-toc a:hover { color: var(--blue); text-decoration: underline; }

/* 共通 */
.ab-sec .section-head { margin-bottom: 36px; }
.ab-sec p { font-size: 15.5px; line-height: 2.05; color: #2b3a4d; }
.ab-note { text-align: center; font-size: 13px; color: var(--muted); margin-top: 22px; }
.ab-textlink { color: var(--blue); font-weight: 700; }
.ab-textlink:hover { text-decoration: underline; }

/* 2カラム（文章＋図） */
.ab-2col { display: grid; grid-template-columns: 1.15fr .85fr; gap: 46px; align-items: center; }
.ab-2col__text p { margin: 0 0 16px; }
.ab-2col__visual { display: flex; justify-content: center; }
.ab-2col__visual img { max-width: 300px; width: 100%; height: auto; }

/* 年金の3階建て図 */
.ab-tiers { display: flex; flex-direction: column; align-items: center; gap: 8px; width: 100%; }
.ab-tier { display: flex; align-items: center; gap: 12px; border-radius: 10px; padding: 14px 18px;
  color: #fff; font-size: 13.5px; position: relative; }
.ab-tier b { flex: none; font-size: 12px; background: rgba(255,255,255,.2); border-radius: 6px; padding: 2px 9px; }
.ab-tier--3 { width: 72%; background: linear-gradient(135deg, #e5b13c, #c9992e);
  box-shadow: 0 10px 24px rgba(201,153,46,.35); font-weight: 800; }
.ab-tier--3 em { position: absolute; right: -8px; top: -14px; font-style: normal; font-size: 11px;
  background: #e0453e; color: #fff; border-radius: 999px; padding: 3px 10px; }
.ab-tier--2 { width: 86%; background: #3a5f97; }
.ab-tier--1 { width: 100%; background: var(--navy); }

/* 拠出方式3タイプ */
.ab-types { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.ab-type { background: #fff; border: 1.5px solid var(--line); border-radius: 16px; padding: 24px 22px;
  box-shadow: var(--shadow); }
.ab-type--focus { border-color: rgba(201,153,46,.6); box-shadow: 0 14px 32px rgba(201,153,46,.18); }
.ab-type__tag { display: inline-block; font-size: 11.5px; font-weight: 800; color: var(--blue);
  background: var(--blue-light); border-radius: 999px; padding: 3px 12px; margin-bottom: 10px; }
.ab-type__tag--gold { color: #8a6210; background: #faf0d8; }
.ab-type h3 { font-size: 19px; color: var(--navy); font-weight: 800; margin-bottom: 14px; }
.ab-type__bar { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; }
.ab-type .bar { display: block; font-size: 11px; font-weight: 700; color: #fff; border-radius: 6px; padding: 6px 10px; white-space: nowrap; }
.bar--salary { background: #3a5f97; }
.bar--company { background: var(--blue); }
.bar--select { background: linear-gradient(90deg, #e5b13c, #c9992e); }
.ab-type p { font-size: 13.5px; line-height: 1.95; margin: 0; }

/* 税制メリット3カード */
.ab-tax { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.ab-tax__card { background: #fff; border: 1.5px solid var(--line); border-radius: 16px; padding: 26px 24px;
  text-align: center; box-shadow: var(--shadow); }
.ab-tax__card--main { border-color: rgba(201,153,46,.6); }
.ab-tax__step { display: inline-block; font-family: Georgia, serif; font-size: 13px; font-weight: 700;
  letter-spacing: .2em; color: #c9992e; margin-bottom: 12px; }
.ab-tax__card svg { width: 44px; height: 44px; color: var(--navy); margin: 0 auto 12px; display: block; }
.ab-tax__card h3 { font-size: 19px; color: var(--navy); font-weight: 800; margin-bottom: 12px; }
.ab-tax__card p { font-size: 13.5px; line-height: 1.95; margin: 0; text-align: left; }

/* 選択制の会社メリット */
.ab-merits2 { display: grid; gap: 22px; max-width: 900px; margin-inline: auto; }
.ab-merit2 { background: #fff; border-radius: 16px; padding: 28px 32px; box-shadow: var(--shadow);
  border-left: 5px solid var(--gold); }
.ab-merit2 h3 { display: flex; align-items: center; gap: 12px; font-size: 19px; color: var(--navy);
  font-weight: 800; margin-bottom: 12px; }
.ab-merit2__no { flex: none; font-family: Georgia, serif; font-size: 22px; color: #c9992e; }
.ab-merit2 p { margin: 0; }

/* 注意ボックス */
.ab-warn { background: #fff4e5; border: 1.5px solid rgba(233,123,12,.45); border-radius: 12px;
  padding: 16px 20px; margin-top: 16px; }
.ab-warn b { display: block; color: #8a4b06; font-size: 14px; margin-bottom: 6px; }
.ab-warn p { font-size: 13.5px !important; line-height: 1.95 !important; margin: 0 !important; color: #6b4a20 !important; }

/* 比較表 */
.ab-table-wrap { overflow-x: auto; }
.ab-table { width: 100%; min-width: 700px; border-collapse: separate; border-spacing: 0; background: #fff;
  border-radius: 14px; overflow: hidden; box-shadow: var(--shadow); }
.ab-table th, .ab-table td { padding: 15px 16px; font-size: 14px; line-height: 1.8;
  border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.ab-table thead th { background: var(--navy); color: #fff; font-weight: 800; font-size: 15px; }
.ab-table thead th.ab-table__dc { background: linear-gradient(135deg, #e5b13c, #c9992e); }
.ab-table tbody th { background: var(--bg-soft); color: var(--navy); font-weight: 800; white-space: nowrap; width: 130px; }
.ab-table td.ab-table__dc { background: #fdf8ec; }
.ab-table tbody tr:last-child th, .ab-table tbody tr:last-child td { border-bottom: 0; }

/* デメリット */
.ab-demerits { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.ab-demerit { background: #fff; border: 1.5px solid var(--line); border-radius: 14px; padding: 24px 26px; box-shadow: var(--shadow); }
.ab-demerit h3 { font-size: 17px; color: var(--navy); font-weight: 800; margin-bottom: 10px;
  padding-left: 14px; border-left: 4px solid var(--orange); }
.ab-demerit p { font-size: 14px; line-height: 1.95; margin: 0; }

/* まとめ＋CTA */
.ab-summary { background: var(--bg-soft); }
.ab-summary__box { max-width: 820px; margin: 0 auto 36px; background: #fff; border-radius: 16px;
  border: 1.5px solid var(--line); padding: 28px 34px; box-shadow: var(--shadow); }
.ab-summary__box ul { display: grid; gap: 12px; }
.ab-summary__box li { position: relative; padding-left: 28px; font-size: 15px; line-height: 1.9; color: #2b3a4d; }
.ab-summary__box li::before { content: "✓"; position: absolute; left: 0; top: 3px; width: 20px; height: 20px;
  border-radius: 50%; background: var(--gold); color: #fff; font-size: 12px; font-weight: 800;
  display: flex; align-items: center; justify-content: center; }
.ab-cta { max-width: 820px; margin-inline: auto; display: flex; gap: 26px; align-items: center;
  background: linear-gradient(135deg, #10305f, #0a1f42); color: #fff; border-radius: 18px; padding: 30px 34px;
  box-shadow: 0 18px 40px rgba(10,31,66,.35); }
.ab-cta__mascot { flex: none; width: 110px; height: auto; }
.ab-cta__body h3 { font-size: 19px; font-weight: 800; line-height: 1.6; margin-bottom: 8px; }
.ab-cta__body p { font-size: 13.5px; color: #d6e4f6; line-height: 1.9; margin: 0 0 16px; }
.ab-cta__btns { display: flex; gap: 12px; flex-wrap: wrap; }

@media (max-width: 900px) {
  .ab-toc ol { columns: 1; }
  .ab-2col { grid-template-columns: 1fr; gap: 26px; }
  .ab-2col__visual { order: -1; }
  .ab-types, .ab-tax { grid-template-columns: 1fr; }
  .ab-demerits { grid-template-columns: 1fr; }
  .ab-merit2 { padding: 22px 20px; }
  .ab-cta { flex-direction: column; text-align: center; }
  .ab-cta__btns { justify-content: center; }
}

/* =========================================================
   コラム一覧ページ（column.html）
   ========================================================= */
.colpage { padding: 46px 0 72px; }
.colpage__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.colpage__grid .col-card { flex: none; min-width: 0; }
.colpage__grid .col-card__title { font-size: 16px; }
/* サムネイル上のステータスバッジ */
.col-card__thumb { position: relative; }
.col-status { position: absolute; top: 10px; left: 10px; z-index: 1; font-size: 11px; font-weight: 800;
  padding: 3px 12px; border-radius: 999px; letter-spacing: .04em; }
.col-status--live { background: #2ea44f; color: #fff; }
.col-status--soon { background: rgba(13,43,87,.78); color: #fff; }
/* 準備中カード（クリック不可・控えめ表示） */
.col-card--soon { opacity: .74; cursor: default; }
.col-card--soon:hover { transform: none; box-shadow: 0 6px 18px rgba(13,43,87,.05); }
@media (max-width: 900px) { .colpage__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .colpage__grid { grid-template-columns: 1fr; } }

/* =========================================================
   コラム記事ページ共通
   ========================================================= */
.art-meta { display: flex; gap: 14px; align-items: center; margin-top: 16px; }
.art-meta time { color: #bcd0ea; font-size: 13px; }
.art-cat { font-size: 12px; font-weight: 800; background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.4); color: #fff; padding: 3px 14px; border-radius: 999px; }
.article { max-width: 860px; margin-inline: auto; padding: 46px 0 24px; }
.article h2 { font-size: 22px; color: var(--navy); font-weight: 800; line-height: 1.6;
  margin: 44px 0 16px; padding-left: 14px; border-left: 5px solid var(--gold); }
.article h2:first-child { margin-top: 0; }
.article h3 { font-size: 17.5px; color: var(--navy); font-weight: 800; margin: 28px 0 10px; }
.article p { font-size: 15.5px; line-height: 2.05; color: #2b3a4d; margin: 0 0 16px; }
.article ul { margin: 0 0 18px; padding-left: 1.3em; }
.article ul li { list-style: disc; font-size: 15px; line-height: 2; color: #2b3a4d; margin-bottom: 6px; }
.article .ab-warn { margin: 18px 0 22px; }
.article .ab-table-wrap { margin: 20px 0 24px; }
.article .ab-summary__box { margin: 34px 0 0; }
.art-related { max-width: 860px; margin: 0 auto; padding: 26px 0 56px; }
.art-related h2 { font-size: 19px; color: var(--navy); font-weight: 800; margin-bottom: 14px; }
.art-related ul { display: grid; gap: 10px; }
.art-related li { position: relative; padding-left: 20px; }
.art-related li::before { content: "→"; position: absolute; left: 0; color: var(--gold); font-weight: 800; }
.art-related a { color: var(--blue); font-weight: 700; font-size: 14.5px; }
.art-related a:hover { text-decoration: underline; }

/* =========================================================
   パートナー募集LP（partner.html）
   ========================================================= */
/* ヒーロー */
.pt-hero { position: relative; overflow: hidden; color: #fff;
  background: radial-gradient(120% 150% at 85% 0%, #1a4a8c 0%, #0d2b57 48%, #081a38 100%); }
.pt-hero__inner { position: relative; padding: 84px 0 78px; }
.pt-hero__word { position: absolute; right: -10px; top: 8px; z-index: 0;
  font-family: Georgia, "Times New Roman", serif; font-weight: 700; letter-spacing: .08em;
  font-size: clamp(70px, 12vw, 170px); color: rgba(255,255,255,.05); pointer-events: none; }
.pt-hero__eyebrow { position: relative; display: inline-block; font-size: 14px; font-weight: 700;
  color: #e6c46a; border: 1.5px solid rgba(230,196,106,.55); border-radius: 999px;
  padding: 6px 18px; margin-bottom: 22px; animation: fadeUp .7s ease both; }
.pt-hero__inner h1 { position: relative; font-size: clamp(30px, 4.6vw, 52px); font-weight: 900;
  line-height: 1.55; letter-spacing: .02em; animation: fadeUp .7s ease .15s both; }
.pt-hero__inner h1 em { font-style: normal; color: #ffd47a; }
.pt-hero__lead { position: relative; margin: 22px 0 0; font-size: 16px; color: #d6e4f6;
  line-height: 2.05; max-width: 44em; animation: fadeUp .7s ease .3s both; }
.pt-hero__cta { position: relative; margin-top: 30px; animation: fadeUp .7s ease .45s both; }
.pt-hero__btn { padding: 17px 40px; font-size: 17px;
  animation: ctaPulse 2.2s ease-in-out infinite; }
.stats__grid--three { grid-template-columns: repeat(3, 1fr); }

/* 分岐セレクター */
.pt-choices { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; max-width: 860px;
  margin: 0 auto 40px; }
.pt-choice { position: relative; display: flex; flex-direction: column; align-items: center; gap: 8px;
  background: #fff; border: 2.5px solid var(--line); border-radius: 18px; padding: 28px 22px 34px;
  cursor: pointer; font-family: inherit; transition: transform .18s ease, border-color .2s ease, box-shadow .2s ease; }
.pt-choice svg { width: 44px; height: 44px; color: var(--navy); transition: color .2s ease; }
.pt-choice b { font-size: 19px; color: var(--navy); font-weight: 800; }
.pt-choice span { font-size: 13px; color: var(--muted); }
.pt-choice__arrow { position: absolute; bottom: 8px; left: 50%; transform: translateX(-50%);
  font-style: normal; font-size: 12px; color: var(--line); transition: color .2s ease; }
.pt-choice:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(13,43,87,.12); }
.pt-choice.is-active { border-color: #c9992e;
  box-shadow: 0 14px 34px rgba(201,153,46,.22); }
.pt-choice.is-active svg { color: #c9992e; }
.pt-choice.is-active .pt-choice__arrow { color: #c9992e; animation: punchBounce 1.4s ease-in-out infinite; }

/* パネル */
.pt-panel { display: none; }
.pt-panel.is-show { display: block; animation: revealUp .5s ease both; }
.pt-panel__head { text-align: center; max-width: 780px; margin: 0 auto 36px; }
.pt-panel__head h3 { font-size: clamp(21px, 2.8vw, 28px); color: var(--navy); font-weight: 900;
  line-height: 1.7; margin-bottom: 16px; }
.pt-panel__head h3 em { font-style: normal;
  background: linear-gradient(transparent 58%, rgba(230,185,63,.45) 58%); padding: 0 3px; }
.pt-panel__head p { font-size: 15.5px; color: #2b3a4d; line-height: 2; margin: 0; }

/* スキーム図（順番に光る） */
.pt-scheme { display: grid; grid-template-columns: 1fr 26px 1fr 26px 1fr 26px 1fr; gap: 6px;
  align-items: stretch; margin-bottom: 38px; }
.pt-scheme__step { position: relative; background: #fff; border: 1.5px solid var(--line);
  border-radius: 16px; padding: 26px 16px 20px; text-align: center;
  animation: ptGlow 5.2s ease-in-out infinite; }
.pt-scheme__step:nth-child(1) { animation-delay: 0s; }
.pt-scheme__step:nth-child(3) { animation-delay: 1.3s; }
.pt-scheme__step:nth-child(5) { animation-delay: 2.6s; }
.pt-scheme__step:nth-child(7) { animation-delay: 3.9s; }
@keyframes ptGlow {
  0%, 24%, 100% { box-shadow: 0 4px 14px rgba(13,43,87,.06); border-color: var(--line); transform: translateY(0); }
  8% { box-shadow: 0 14px 32px rgba(201,153,46,.3); border-color: rgba(201,153,46,.7); transform: translateY(-5px); }
}
.pt-scheme__no { position: absolute; top: -13px; left: 50%; transform: translateX(-50%);
  width: 27px; height: 27px; border-radius: 50%; background: var(--navy); color: #fff;
  font-size: 13.5px; font-weight: 800; display: flex; align-items: center; justify-content: center; }
.pt-scheme__step svg { width: 36px; height: 36px; color: var(--navy); margin: 0 auto 10px; display: block; }
.pt-scheme__step h4 { font-size: 15px; color: var(--navy); font-weight: 800; margin-bottom: 8px; }
.pt-scheme__step p { font-size: 12.5px; color: var(--muted); line-height: 1.8; margin: 0; }
.pt-scheme__step--key { border-color: rgba(201,153,46,.5); background: #fdf8ec; }
.pt-scheme__step--goal svg { color: #c9435c; }
.pt-scheme__arrow { display: flex; align-items: center; justify-content: center;
  color: #c9992e; font-size: 20px; font-weight: 800; }

/* 訴求ポイント3枚 */
.pt-points { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.pt-point { background: #fff; border-radius: 16px; padding: 26px 24px;
  border-top: 4px solid var(--gold); box-shadow: 0 8px 24px rgba(13,43,87,.07);
  transition: transform .18s ease, box-shadow .18s ease; }
.pt-point:hover { transform: translateY(-5px); box-shadow: 0 18px 38px rgba(13,43,87,.13); }
.pt-point h4 { font-size: 17.5px; color: var(--navy); font-weight: 800; margin-bottom: 12px; }
.pt-point p { font-size: 14px; color: #2b3a4d; line-height: 1.95; margin: 0; }

/* 共通の強み（ネイビー帯） */
.pt-strengths { background: linear-gradient(160deg, #10305f 0%, #0a1f42 100%); }
.pt-strengths .section-head h2 { color: #fff; }
.pt-strengths__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.pt-strength { position: relative; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.14);
  border-radius: 16px; padding: 28px 30px; color: #fff; overflow: hidden;
  transition: transform .18s ease, border-color .18s ease; }
.pt-strength:hover { transform: translateY(-4px); border-color: rgba(216,178,74,.55); }
.pt-strength__no { font-family: Georgia, "Times New Roman", serif; font-size: 30px; font-weight: 700;
  color: rgba(216,178,74,.85); display: block; margin-bottom: 8px; }
.pt-strength h3 { font-size: 19px; font-weight: 800; margin-bottom: 12px; }
.pt-strength p { font-size: 14px; color: #c9d8ec; line-height: 2; margin: 0; }
.pt-strength--gold { background: linear-gradient(135deg, rgba(230,177,60,.16), rgba(201,153,46,.08));
  border-color: rgba(216,178,74,.55); }
.pt-strength__cta { display: inline-block; margin-top: 12px; font-size: 13.5px; font-weight: 800; color: #ffd47a; }

/* 提携フロー（4ステップ） */
.flow-steps--four { grid-template-columns: repeat(4, 1fr); }

/* パートナーセミナー */
.pt-seminar__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.pt-seminar__card { background: #fff; border: 1.5px solid var(--line); border-radius: 16px;
  padding: 24px 24px 22px; box-shadow: var(--shadow); transition: transform .18s ease, box-shadow .18s ease; }
.pt-seminar__card:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(13,43,87,.12); }
.pt-seminar__card h3 { font-size: 16.5px; color: var(--navy); font-weight: 800; margin: 10px 0 10px; line-height: 1.6; }
.pt-seminar__card p { font-size: 13.5px; color: var(--muted); line-height: 1.9; margin: 0; }

@media (max-width: 900px) {
  .pt-hero__inner { padding: 56px 0 54px; }
  .pt-choices { grid-template-columns: 1fr; }
  .pt-scheme { grid-template-columns: 1fr; }
  .pt-scheme__arrow { transform: rotate(90deg); padding: 2px 0; }
  .pt-points, .pt-seminar__grid { grid-template-columns: 1fr; }
  .pt-strengths__grid { grid-template-columns: 1fr; }
  .flow-steps--four { grid-template-columns: repeat(2, 1fr); }
  .stats__grid--three { grid-template-columns: 1fr; }
}

/* パートナーLP：中間幅での4ステップ折返し調整 */
@media (max-width: 1080px) {
  .flow-steps--four { grid-template-columns: repeat(2, 1fr); }
}

/* グローバルメニューの「パートナー募集」（目立つゴールドピル） */
.nav a.nav-partner { color: #8a6210; font-weight: 800;
  background: linear-gradient(135deg, #fdf3dc, #f9e7bd);
  border: 1.5px solid rgba(201,153,46,.6); border-radius: 999px; padding: 8px 18px;
  transition: background .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease; }
.nav a.nav-partner:hover { color: #fff; background: linear-gradient(135deg, #e5b13c, #c9992e);
  transform: translateY(-2px); box-shadow: 0 8px 18px rgba(201,153,46,.35); }
.nav a.nav-partner::after { display: none; }   /* 下線アニメは付けない */
/* スマホのハンバーガーメニュー内では他項目と揃える */
@media (max-width: 1360px) {
  .header.is-open .nav a.nav-partner { border: 0; border-radius: 0; padding: 14px 24px;
    background: #fdf6e7; color: #8a6210; }
}

/* =========================================================
   パートナーLP v2：オレンジ基調・別テイスト
   （後方に書くことで v1 の指定を上書き）
   ========================================================= */
.pt { --pt-or: #e8791f; --pt-or2: #f29b3f; --pt-dark: #241b12; --pt-cream: #fff6ec; }

/* 見出し：左寄せ＋斜めタグ */
.pt-head { margin-bottom: 36px; }
.pt-head__tag { display: inline-block; background: var(--pt-or); color: #fff; font-weight: 800;
  font-size: 13px; letter-spacing: .2em; padding: 6px 18px; border-radius: 5px;
  transform: skewX(-12deg); margin-bottom: 14px; box-shadow: 4px 4px 0 rgba(36,27,18,.15); }
.pt-head h2 { font-size: clamp(26px, 3.4vw, 40px); color: var(--pt-dark); font-weight: 900; line-height: 1.5; }
.pt-head h2 em { font-style: normal; color: var(--pt-or); }
.pt-head p { color: #8a7660; margin: 10px 0 0; font-size: 15px; }
.pt-head--light h2 { color: #fff; }
.pt-head--light h2 em { color: #ffb867; }
.pt-head--light p { color: #f3d3ae; }

/* ヒーロー：温かいダーク＋オレンジ */
.pt-hero { background: radial-gradient(120% 150% at 85% 0%, #59331262 0%, #241b12 55%, #170f08 100%);
  background-color: #241b12; }
.pt-hero::after { content: ""; position: absolute; right: -140px; top: -100px; width: 460px; height: 700px;
  background: linear-gradient(135deg, var(--pt-or2), var(--pt-or)); transform: rotate(18deg);
  opacity: .14; border-radius: 70px; pointer-events: none; }
.pt-hero__word { color: rgba(242,155,63,.09); }
.pt-hero__eyebrow { color: #ffb867; border-color: rgba(242,155,63,.55); }
.pt-hero__inner h1 em { color: #ffa54d; }
.pt-hero__lead { color: #eed9c2; }

/* 実績カウンター：オレンジ帯 */
.pt .stats { background: linear-gradient(135deg, #e8791f 0%, #c25a06 100%); }
.pt .stat { background: rgba(255,255,255,.13); border-color: rgba(255,255,255,.28); }
.pt .stat:hover { border-color: #fff; }
.pt .stat__label { color: #ffe3c4; }
.pt .stat__num .unit { color: #ffd9a3; }
.pt .stat__note { color: #f6c795; }

/* 分岐カード：ずらしベタ影のポスター風 */
.pt-choice { border: 2.5px solid var(--pt-dark); border-radius: 18px; }
.pt-choice svg { color: #a08468; }
.pt-choice b { color: var(--pt-dark); }
.pt-choice:hover { transform: translate(-3px, -3px); box-shadow: 8px 8px 0 rgba(232,121,31,.28); }
.pt-choice.is-active { border-color: var(--pt-dark); background: #fff3e3;
  box-shadow: 8px 8px 0 rgba(232,121,31,.4); }
.pt-choice.is-active svg { color: var(--pt-or); }
.pt-choice.is-active .pt-choice__arrow { color: var(--pt-or); }
.pt-panel__head h3 { color: var(--pt-dark); }
.pt-panel__head h3 em { background: linear-gradient(transparent 58%, rgba(242,155,63,.5) 58%); }

/* スキーム：オレンジ発光に変更 */
@keyframes ptGlow {
  0%, 24%, 100% { box-shadow: 4px 4px 0 rgba(36,27,18,.08); border-color: var(--line); transform: translateY(0); }
  8% { box-shadow: 9px 9px 0 rgba(232,121,31,.35); border-color: var(--pt-or); transform: translateY(-5px); }
}
.pt-scheme__no { background: var(--pt-or); }
.pt-scheme__step h4 { color: var(--pt-dark); }
.pt-scheme__step svg { color: #4a3a26; }
.pt-scheme__step--key { background: #fff3e3; border-color: rgba(232,121,31,.55); }
.pt-scheme__arrow { color: var(--pt-or); }

/* 訴求ポイント：ベタ影カード */
.pt-point { border-top: 0; border: 2px solid var(--pt-dark); border-radius: 14px;
  box-shadow: 8px 8px 0 rgba(232,121,31,.25); }
.pt-point:hover { transform: translate(-3px, -3px); box-shadow: 11px 11px 0 rgba(232,121,31,.33); }
.pt-point h4 { color: var(--pt-dark); padding-bottom: 10px; border-bottom: 3px solid rgba(242,155,63,.6); }

/* 4つの理由：クリーム背景＋ボールドカード */
.pt-strengths { background: var(--pt-cream); }
.pt-strength { background: #fff; border: 2px solid var(--pt-dark); border-radius: 14px; color: var(--pt-dark);
  box-shadow: 8px 8px 0 rgba(232,121,31,.22); }
.pt-strength:hover { transform: translate(-3px, -3px); border-color: var(--pt-dark);
  box-shadow: 11px 11px 0 rgba(232,121,31,.3); }
.pt-strength__no { color: var(--pt-or); }
.pt-strength h3 { color: var(--pt-dark); }
.pt-strength p { color: #6b5a47; }
.pt-strength--gold { background: linear-gradient(135deg, #ffe9d2, #ffd9ae); border-color: var(--pt-dark); }
.pt-strength__cta { color: #c25a06; }

/* 提携ロードマップ（動く点線＋新イラスト） */
.pt-roadsec { background: #fff; }
.pt-road { list-style: none; margin: 0; padding: 10px 0 0; position: relative;
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 26px; }
.pt-road::before { content: ""; position: absolute; top: 62px; left: 7%; right: 7%; height: 3px;
  background: repeating-linear-gradient(90deg, rgba(232,121,31,.55) 0 14px, transparent 14px 26px);
  animation: roadDash 1.1s linear infinite; }
@keyframes roadDash { to { background-position: 26px 0; } }
.pt-road__step { position: relative; text-align: center; }
.pt-road__art { position: relative; z-index: 1; width: 106px; height: 106px; margin: 0 auto 16px;
  background: var(--pt-cream); border: 2px solid var(--pt-dark); border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 6px 6px 0 rgba(232,121,31,.25); color: var(--pt-dark);
  transition: transform .22s ease, box-shadow .22s ease, background .22s ease; }
.pt-road__art svg { width: 52px; height: 52px; }
.pt-road__step:hover .pt-road__art { transform: rotate(-8deg) scale(1.07); background: #fff3e3; }
.pt-road__step--goal .pt-road__art { background: linear-gradient(135deg, #ffe9d2, #ffd9ae); }
.pt-road__step--goal:hover .pt-road__art { transform: translateY(-9px) rotate(-8deg); }
.pt-road__step b { display: block; font-family: Georgia, serif; color: var(--pt-or);
  letter-spacing: .2em; font-size: 12.5px; margin-bottom: 5px; }
.pt-road__step h3 { font-size: 17.5px; font-weight: 800; color: var(--pt-dark); margin-bottom: 7px; }
.pt-road__step p { font-size: 13.5px; color: #8a7660; line-height: 1.85; margin: 0; }

/* セミナーカード：ベタ影 */
.pt-seminar__card { border: 2px solid var(--pt-dark); box-shadow: 8px 8px 0 rgba(232,121,31,.22); }
.pt-seminar__card:hover { transform: translate(-3px, -3px); box-shadow: 11px 11px 0 rgba(232,121,31,.3); }
.pt-seminar__card h3 { color: var(--pt-dark); }
.pt .badge-status--open { background: #ffe3c4; color: #c25a06; }

/* FAQ：クリーム背景＋オレンジQ */
.pt .section--soft { background: var(--pt-cream); }
.pt .qa { border: 2px solid #eeddc5; border-radius: 12px; }
.pt .qa__q { color: var(--pt-dark); }
.pt .qa__q::before { background: var(--pt-or); }
.pt .qa.is-open { border-color: rgba(232,121,31,.65); box-shadow: 6px 6px 0 rgba(232,121,31,.15); }
.pt .qa__a-inner::before { background: var(--pt-dark); }
.pt .faq__note { color: #c25a06; }

/* フォームセクション：温かいダーク */
.pt .contact { background: linear-gradient(135deg, #33200e 0%, #170f08 100%); }
.pt .contact-aside h3 { border-color: rgba(242,155,63,.65); }
.pt .contact-aside__tel { background: rgba(242,155,63,.14); border-color: rgba(242,155,63,.4); }
.pt .contact-aside__tel small { color: #f3d3ae; }
.pt .contact-aside__mascot p { color: #f3d3ae; }

@media (max-width: 900px) {
  .pt-road { grid-template-columns: 1fr 1fr; gap: 30px 16px; }
  .pt-road::before { display: none; }
  .pt-head h2 { font-size: 24px; }
}
@media (max-width: 560px) { .pt-road { grid-template-columns: 1fr; } }

/* =========================================================
   パートナーLP：浮きバナー＋実績カウンターのゴールド化
   ========================================================= */
/* 実績カウンター：ダークブラウン×ゴールド */
.pt .stats { background: linear-gradient(135deg, #2b1c0e 0%, #170f08 100%); }
.pt .stat { background: rgba(216,178,74,.08); border-color: rgba(216,178,74,.4); }
.pt .stat:hover { border-color: #f2c14e; }
.pt .stat__label { color: #f2c14e; }
.pt .stat__num { color: #ffd97a; }
.pt .stat__num .unit { color: #d8b24a; }
.pt .stat__note { color: #a8905c; }

/* 浮きバナー（パートナー相談・オレンジテーマ） */
.pt-float { position: fixed; right: 20px; bottom: 20px; z-index: 60; max-width: 330px;
  background: linear-gradient(135deg, #33200e 0%, #170f08 100%); color: #fff;
  border: 2px solid rgba(242,155,63,.65); border-radius: 15px;
  box-shadow: 0 16px 40px rgba(0,0,0,.38);
  opacity: 0; transform: translateY(28px); pointer-events: none;
  transition: opacity .3s ease, transform .3s ease; }
.pt-float.is-visible { opacity: 1; transform: translateY(0); pointer-events: auto;
  animation: ctaPulse 2.2s ease-in-out infinite; }
.pt-float.is-visible:hover { animation: none; box-shadow: 0 22px 48px rgba(0,0,0,.5); }
.pt-float.is-dismissed { display: none; }
.pt-float__link { display: flex; align-items: center; gap: 12px; padding: 14px 40px 14px 16px; color: #fff; }
.pt-float__badge { flex: none; background: var(--pt-or); color: #fff; font-size: 11px; font-weight: 800;
  padding: 5px 10px; border-radius: 7px; letter-spacing: .04em; }
.pt-float__body b { display: block; font-size: 15px; font-weight: 800; line-height: 1.4; }
.pt-float__body small { display: block; font-size: 12px; color: #f3d3ae; margin-top: 2px; }
.pt-float__body i { font-style: normal; display: inline-flex; align-items: center; justify-content: center;
  width: 18px; height: 18px; border-radius: 50%; background: #fff; color: #c25a06;
  font-size: 11px; margin-left: 4px; }
.pt-float__close { position: absolute; top: 6px; right: 8px; width: 24px; height: 24px; border: 0;
  background: rgba(255,255,255,.16); color: #fff; border-radius: 50%; font-size: 15px; line-height: 1;
  cursor: pointer; display: flex; align-items: center; justify-content: center; }
.pt-float__close:hover { background: rgba(255,255,255,.32); }
@media (max-width: 560px) {
  .pt-float { right: 12px; left: 12px; bottom: 12px; max-width: none; }
}

/* =========================================================
   パートナーLP：保険募集人への全力ピッチ（扉ギミック）
   ========================================================= */
.pt-pitch { position: relative; overflow: hidden; padding: 78px 0 72px; color: var(--pt-dark);
  background: linear-gradient(135deg, #f6a94f 0%, #e8791f 45%, #d3610a 100%); }
.pt-pitch__word { position: absolute; left: 50%; top: 4px; transform: translateX(-50%); z-index: 0;
  font-family: Georgia, "Times New Roman", serif; font-weight: 700; letter-spacing: .06em;
  font-size: clamp(60px, 10vw, 140px); color: rgba(255,255,255,.10); white-space: nowrap; pointer-events: none; }
.pt-pitch .container { position: relative; z-index: 1; }
.pt-pitch__intro { display: inline-block; background: var(--pt-dark); color: #ffb867; font-weight: 800;
  font-size: 14px; letter-spacing: .08em; padding: 7px 20px; border-radius: 6px;
  transform: skewX(-10deg); margin-bottom: 18px; }
.pt-pitch__title { font-size: clamp(26px, 4vw, 46px); font-weight: 900; line-height: 1.55; margin-bottom: 40px; }
.pt-pitch__title em { font-style: normal; color: #fff; text-shadow: 0 4px 18px rgba(36,27,18,.35); }

/* VS対決カード */
.pt-vs { display: grid; grid-template-columns: 1fr 74px 1fr; gap: 10px; align-items: stretch; margin-bottom: 44px; }
.pt-vs__card { position: relative; background: #fff; border: 2.5px solid var(--pt-dark); border-radius: 18px;
  padding: 30px 26px 56px; text-align: center; box-shadow: 10px 10px 0 rgba(36,27,18,.25); }
.pt-vs__card--lose { background: #efe9df; }
.pt-vs__card--lose h3, .pt-vs__card--lose p { opacity: .75; }
.pt-vs__card h3 { font-size: 18.5px; font-weight: 800; color: var(--pt-dark); margin: 0 0 10px; }
.pt-vs__card p { font-size: 14px; line-height: 1.95; color: #5c4d3d; margin: 0; }
.pt-vs__badge { align-self: center; justify-self: center; width: 62px; height: 62px; border-radius: 50%;
  background: var(--pt-dark); color: #ffb867; font-family: Georgia, serif; font-weight: 700; font-size: 22px;
  display: flex; align-items: center; justify-content: center; transform: rotate(-8deg);
  box-shadow: 5px 5px 0 rgba(36,27,18,.3); animation: vsWobble 2.4s ease-in-out infinite; }
@keyframes vsWobble { 0%,100% { transform: rotate(-8deg) scale(1); } 50% { transform: rotate(4deg) scale(1.07); } }
.pt-vs__label { position: absolute; left: 50%; bottom: 16px; transform: translateX(-50%);
  font-size: 13px; font-weight: 800; color: #8f7f6d; }
.pt-vs__label--win { color: #c25a06; font-size: 15px; }

/* 扉ギミック：保険＝ガタガタ開かない／DC＝バーンと開く */
.pt-door { position: relative; width: 86px; height: 116px; margin: 0 auto 18px;
  border: 3px solid var(--pt-dark); border-bottom-width: 7px; border-radius: 9px 9px 0 0;
  background: radial-gradient(circle at 35% 55%, #fff0b8 0%, #ffb85c 70%, #f0912d 100%);
  perspective: 520px; }
.pt-door__panel { position: absolute; inset: -1px; background: #8f7f6d; border-radius: 7px 7px 0 0;
  transform-origin: left center; transition: transform .55s cubic-bezier(.4, .1, .3, 1); }
.pt-door__panel::after { content: ""; position: absolute; right: 9px; top: 52%;
  width: 9px; height: 9px; border-radius: 50%; background: var(--pt-dark); }
.pt-door--open .pt-door__panel { background: #c9721c; transform: rotateY(-40deg); }
.pt-vs__card--win:hover .pt-door--open .pt-door__panel { transform: rotateY(-84deg); }
.pt-vs__card--lose:hover .pt-door--closed .pt-door__panel { animation: doorShake .45s ease; }
@keyframes doorShake {
  0%, 100% { transform: none; }
  25% { transform: translateX(-3px) rotate(-.6deg); }
  50% { transform: translateX(3px); }
  75% { transform: translateX(-2px); }
}

/* 3つの理由（ダークカード） */
.pt-pitch__reasons { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-bottom: 46px; }
.pt-pitch__reason { background: var(--pt-dark); color: #fff; border-radius: 16px; padding: 26px 26px 24px;
  box-shadow: 8px 8px 0 rgba(36,27,18,.3); transition: transform .18s ease; }
.pt-pitch__reason:hover { transform: translate(-3px, -3px); }
.pt-pitch__num { font-family: Georgia, serif; font-size: 26px; font-weight: 700; color: var(--pt-or2);
  display: block; margin-bottom: 8px; }
.pt-pitch__reason h3 { font-size: 18px; font-weight: 800; margin-bottom: 10px; line-height: 1.6; }
.pt-pitch__reason h3 em { font-style: normal; color: #ffb867; }
.pt-pitch__reason p { font-size: 13.5px; color: #e8d9c8; line-height: 1.95; margin: 0; }

/* 締めの一撃 */
.pt-pitch__cta { text-align: center; }
.pt-pitch__punch { font-size: clamp(22px, 3.2vw, 36px); font-weight: 900; margin: 0 0 22px; }
.pt-sweep { padding: 0 8px;
  background-image: linear-gradient(rgba(255,255,255,.95), rgba(255,255,255,.95));
  background-repeat: no-repeat; background-position: 0 58%; background-size: 0% 46%; }
.pt-pitch__cta.is-in .pt-sweep,
.pt-pitch__cta.reveal-done .pt-sweep { animation: ptSweep .8s ease .45s forwards; }
@keyframes ptSweep { to { background-size: 100% 46%; } }
.pt-pitch__btn { background: var(--pt-dark); color: #ffb867; font-size: 17.5px; padding: 17px 44px;
  animation: ptPulseW 2.2s ease-in-out infinite; }
.pt-pitch__btn:hover { background: #000; color: #ffd97a; animation: none; }
@keyframes ptPulseW {
  0% { box-shadow: 0 10px 26px rgba(36,27,18,.35), 0 0 0 0 rgba(255,255,255,.65); }
  70% { box-shadow: 0 10px 26px rgba(36,27,18,.35), 0 0 0 14px rgba(255,255,255,0); }
  100% { box-shadow: 0 10px 26px rgba(36,27,18,.35), 0 0 0 0 rgba(255,255,255,0); }
}
.pt-pitch__cta small { display: block; margin-top: 14px; font-size: 12.5px; color: rgba(36,27,18,.72); font-weight: 700; }

@media (max-width: 900px) {
  .pt-vs { grid-template-columns: 1fr; }
  .pt-vs__badge { margin: -4px auto; }
  .pt-pitch__reasons { grid-template-columns: 1fr; }
}

/* =========================================================
   パートナーLP：武器パワーアップ演出（アメコミ風）
   6秒サイクルで「武器が飛んでくる→変身→POWER UP!!」を繰り返す
   ========================================================= */
.pt-power { margin: 6px 0 48px; display: grid; grid-template-columns: 1fr 1fr; gap: 36px; align-items: center;
  background: #fff; border: 3px solid var(--pt-dark); border-radius: 22px; padding: 34px 38px;
  box-shadow: 12px 12px 0 rgba(36,27,18,.3); position: relative; overflow: hidden;
  background-image: radial-gradient(rgba(36,27,18,.08) 1.6px, transparent 1.6px);
  background-size: 16px 16px; }

/* ステージ */
.pt-power__stage { position: relative; height: 330px; display: flex; align-items: center; justify-content: center; }
.pt-power__heroWrap { position: relative; z-index: 2; width: 215px;
  animation: pwPump 7s ease-in-out infinite; }
.pt-power__heroWrap svg { width: 100%; height: auto; display: block; }
@keyframes pwPump {
  0%, 24% { transform: scale(1); filter: none; }
  28% { transform: scale(1.15) rotate(-2deg); }
  32% { transform: scale(1.05); }
  36% { transform: scale(1.1); filter: drop-shadow(0 0 20px rgba(255,180,80,.9)); }
  80% { transform: scale(1.1); filter: drop-shadow(0 0 14px rgba(255,180,80,.7)); }
  92%, 100% { transform: scale(1); filter: none; }
}
/* パワーアップで現れるパーツ（マント・エンブレム・オーラ・目の輝き） */
.pt-power .pw { opacity: 0; animation: pwShow 7s ease-in-out infinite; }
@keyframes pwShow { 0%, 24% { opacity: 0; } 30% { opacity: 1; } 84% { opacity: 1; } 92%, 100% { opacity: 0; } }
/* 集中線バースト */
.pt-power__burst { position: absolute; inset: -30px; border-radius: 50%; z-index: 1;
  background: repeating-conic-gradient(rgba(232,121,31,.4) 0deg 5deg, transparent 5deg 16deg);
  -webkit-mask-image: radial-gradient(circle, transparent 30%, #000 33%, #000 62%, transparent 65%);
  mask-image: radial-gradient(circle, transparent 30%, #000 33%, #000 62%, transparent 65%);
  opacity: 0; animation: pwBurst 7s ease-in-out infinite; }
@keyframes pwBurst {
  0%, 24% { opacity: 0; transform: scale(.6) rotate(0deg); }
  30% { opacity: 1; }
  80% { opacity: .9; transform: scale(1.06) rotate(40deg); }
  90%, 100% { opacity: 0; transform: scale(1.12) rotate(46deg); }
}
/* POWER UP!! の吹き出し */
.pt-power__boom { position: absolute; top: 6px; right: 0; z-index: 3;
  font-family: Georgia, "Times New Roman", serif; font-weight: 700; font-size: 28px; letter-spacing: .02em;
  color: #fff; background: var(--pt-or); border: 3px solid var(--pt-dark); border-radius: 6px;
  padding: 8px 18px; transform: rotate(8deg); box-shadow: 6px 6px 0 rgba(36,27,18,.35);
  opacity: 0; animation: pwText 7s ease-in-out infinite; }
@keyframes pwText {
  0%, 24% { opacity: 0; transform: scale(.3) rotate(-14deg); }
  29% { opacity: 1; transform: scale(1.18) rotate(8deg); }
  33% { transform: scale(1) rotate(8deg); }
  82% { opacity: 1; }
  90%, 100% { opacity: 0; transform: scale(.9) rotate(8deg); }
}
/* 飛んでくる武器チップ */
.pt-power__wpn { position: absolute; left: -10px; top: calc(18px + var(--i) * 56px); z-index: 1;
  display: inline-flex; align-items: center; gap: 7px;
  background: var(--pt-dark); color: #ffd97a; font-size: 12.5px; font-weight: 800;
  padding: 7px 14px; border-radius: 999px; box-shadow: 3px 3px 0 rgba(36,27,18,.3);
  opacity: 0; white-space: nowrap;
  animation: wpnFly 7s ease-in-out infinite; animation-delay: calc(var(--i) * .34s); }
.pt-power__wpn svg { width: 15px; height: 15px; flex: none; }
@keyframes wpnFly {
  0% { opacity: 0; transform: translateX(-130px) rotate(-14deg) scale(.7); }
  5% { opacity: 1; }
  15% { opacity: 1; transform: translateX(calc(140px - var(--i) * 10px)) rotate(0deg) scale(.95); }
  21% { opacity: 0; transform: translateX(175px) scale(.15); }
  100% { opacity: 0; }
}

/* コピー側 */
.pt-power__copy h3 { font-size: clamp(22px, 2.8vw, 30px); font-weight: 900; color: var(--pt-dark);
  line-height: 1.65; margin: 0 0 14px; }
.pt-power__copy h3 em { font-style: normal;
  background: linear-gradient(transparent 55%, #ffd97a 55%); padding: 0 4px; }
.pt-power__copy p { font-size: 14.5px; color: #5c4d3d; line-height: 2; margin: 0 0 18px; }
.pt-power__list { display: grid; gap: 10px; margin: 0; padding: 0; }
.pt-power__list li { list-style: none; position: relative; padding-left: 26px;
  font-size: 14.5px; font-weight: 800; color: var(--pt-dark); }
.pt-power__list li::before { content: "⚡"; position: absolute; left: 0; }

@media (max-width: 900px) {
  .pt-power { grid-template-columns: 1fr; padding: 26px 20px; }
  .pt-power__stage { height: 300px; }
  .pt-power__boom { font-size: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .pt-power__heroWrap, .pt-power .pw, .pt-power__burst, .pt-power__boom, .pt-power__wpn {
    animation: none !important; opacity: 1 !important; }
  .pt-power__wpn { position: static; margin: 4px; }
}

/* =========================================================
   セミナー／ウェビナー ページ
   seminar.html（一覧・SEO） / seminar-lp.html（広告・DM用LP）
   partner-seminar.html / partner-seminar-lp.html（オレンジ）
   ========================================================= */

/* ---------- LP専用ミニヘッダー（ナビなし＝離脱防止） ---------- */
.lp-header { position: sticky; top: 0; z-index: 120; background: #fff;
  border-bottom: 1px solid var(--line); box-shadow: 0 2px 10px rgba(13,43,87,.06); }
.lp-header__inner { display: flex; align-items: center; justify-content: space-between;
  gap: 16px; padding: 11px 26px; max-width: var(--container); margin: 0 auto; }
.lp-header__right { display: flex; align-items: center; gap: 16px; }
.lp-header__tel { text-decoration: none; color: var(--navy); text-align: right; line-height: 1.25; }
.lp-header__tel small { display: block; font-size: 10.5px; color: var(--muted); }
.lp-header__tel b { font-size: 19px; letter-spacing: .01em; }
@media (max-width: 760px) {
  .lp-header__tel { display: none; }
  .lp-header__inner { padding: 9px 14px; }
  .lp-header .btn { padding: 9px 15px; font-size: 12.5px; }
}

/* ---------- セミナーLP ヒーロー ---------- */
.sm-hero { position: relative; overflow: hidden; color: #fff; padding: 62px 0 70px;
  background: linear-gradient(135deg, #08203f 0%, #123a72 52%, #1c56a0 100%); }
.sm-hero::before { content: ""; position: absolute; inset: 0;
  background-image: radial-gradient(rgba(255,255,255,.07) 1.5px, transparent 1.5px);
  background-size: 22px 22px; }
.sm-hero__word { position: absolute; right: -30px; top: 4px; font-size: clamp(70px, 12vw, 150px);
  font-weight: 900; letter-spacing: .04em; color: rgba(255,255,255,.055);
  font-family: Georgia, "Times New Roman", serif; pointer-events: none; white-space: nowrap; }
.sm-hero__inner { position: relative; z-index: 2; }
.sm-hero__badges { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 18px; }
.sm-hero__badge { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px;
  font-weight: 800; padding: 6px 14px; border-radius: 999px;
  background: rgba(255,255,255,.13); border: 1px solid rgba(255,255,255,.3); }
.sm-hero__badge--hot { background: var(--orange); border-color: var(--orange); }
.sm-hero__badge--free { background: var(--gold); border-color: var(--gold); color: #3a2c08; }
.sm-hero h1 { font-size: clamp(26px, 4.2vw, 45px); font-weight: 900; line-height: 1.5;
  margin: 0 0 18px; letter-spacing: .01em; }
.sm-hero h1 em { font-style: normal; color: #ffd97a; }
.sm-hero h1 .sm-hl { background: linear-gradient(transparent 58%, rgba(232,123,12,.85) 58%); padding: 0 4px; }
.sm-hero__lead { font-size: 15.5px; line-height: 2; color: rgba(255,255,255,.9);
  max-width: 720px; margin: 0 0 26px; }
.sm-hero__grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 40px; align-items: start; }
@media (max-width: 980px) { .sm-hero__grid { grid-template-columns: 1fr; gap: 26px; } }

/* 開催日時カード（ヒーロー右） */
.sm-when { background: #fff; color: var(--text); border-radius: 14px; padding: 22px 24px 24px;
  box-shadow: 0 16px 40px rgba(0,0,0,.28); }
.sm-when__head { font-size: 12px; font-weight: 900; letter-spacing: .12em; color: var(--orange);
  margin: 0 0 12px; }
.sm-when__row { display: flex; gap: 12px; padding: 11px 0; border-bottom: 1px dashed var(--line);
  font-size: 14px; }
.sm-when__row:last-of-type { border-bottom: 0; }
.sm-when__row dt { flex: none; width: 66px; font-weight: 800; color: var(--muted); font-size: 12.5px;
  margin: 0; }
.sm-when__row dd { margin: 0; font-weight: 700; }
.sm-when__row dd b { color: var(--navy); font-size: 16px; }
.sm-when__seat { margin: 14px 0 0; background: #fff4e8; border: 1px dashed var(--orange);
  border-radius: 8px; padding: 9px 12px; font-size: 12.5px; font-weight: 800; color: #b45a02;
  text-align: center; }

/* ---------- 大きいCTAボタン ---------- */
.btn--sm-cta { display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  background: linear-gradient(180deg, #f6902a, #e2700a); color: #fff; font-size: 18px;
  font-weight: 900; padding: 19px 46px; border-radius: 999px; text-decoration: none;
  box-shadow: 0 10px 26px rgba(226,112,10,.45); position: relative; overflow: hidden;
  transition: transform .2s ease, box-shadow .2s ease; }
.btn--sm-cta::after { content: ""; position: absolute; inset: 0; border-radius: 999px;
  border: 2px solid rgba(255,255,255,.85); opacity: 0; animation: smPulse 2.4s ease-out infinite; }
@keyframes smPulse {
  0% { transform: scale(1); opacity: .85; }
  70%, 100% { transform: scale(1.16); opacity: 0; }
}
.btn--sm-cta:hover { transform: translateY(-3px); box-shadow: 0 14px 32px rgba(226,112,10,.55); }
.sm-cta-wrap { margin-top: 8px; }
.sm-cta-wrap small { display: block; margin-top: 11px; font-size: 12.5px; color: rgba(255,255,255,.78); }
.sm-cta-block { text-align: center; padding: 54px 0; background: var(--blue-light); }
.sm-cta-block h2 { font-size: clamp(20px, 2.6vw, 28px); font-weight: 900; color: var(--navy);
  margin: 0 0 8px; }
.sm-cta-block p { color: var(--muted); font-size: 14px; margin: 0 0 22px; }
.sm-cta-block small { color: var(--muted); }

/* ---------- 追従の申込バー（スマホ中心） ---------- */
.sm-sticky { position: fixed; left: 0; right: 0; bottom: 0; z-index: 110;
  background: rgba(9,30,60,.96); padding: 10px 14px; display: flex; align-items: center;
  gap: 12px; justify-content: center; transform: translateY(120%); transition: transform .3s ease;
  box-shadow: 0 -6px 20px rgba(0,0,0,.2); }
.sm-sticky.is-show { transform: translateY(0); }
.sm-sticky__txt { color: #fff; font-size: 12.5px; font-weight: 800; line-height: 1.4; }
.sm-sticky__txt b { color: #ffd97a; display: block; font-size: 14px; }
.sm-sticky .btn--sm-cta { padding: 13px 30px; font-size: 15px; }
@media (max-width: 620px) {
  .sm-sticky__txt { display: none; }
  .sm-sticky .btn--sm-cta { width: 100%; padding: 14px; }
}

/* ---------- 悩み（共感パート） ---------- */
.sm-pain { padding: 60px 0; background: #fff; }
.sm-pain__list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; max-width: 860px;
  margin: 0 auto 26px; }
.sm-pain__item { display: flex; align-items: center; gap: 12px; background: var(--bg-soft);
  border-left: 4px solid var(--blue); border-radius: 8px; padding: 15px 18px;
  font-size: 14.5px; font-weight: 700; color: var(--navy); }
.sm-pain__item::before { content: "?"; flex: none; width: 26px; height: 26px; border-radius: 50%;
  background: var(--blue); color: #fff; font-size: 15px; font-weight: 900;
  display: grid; place-items: center; }
.sm-pain__bridge { text-align: center; font-size: clamp(17px, 2.4vw, 23px); font-weight: 900;
  color: var(--navy); margin: 0; }
.sm-pain__bridge em { font-style: normal;
  background: linear-gradient(transparent 58%, #ffe08a 58%); padding: 0 5px; }
@media (max-width: 760px) { .sm-pain__list { grid-template-columns: 1fr; } }

/* ---------- このセミナーで得られること ---------- */
.sm-gain { padding: 64px 0; background: var(--bg-soft); }
.sm-gain__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.sm-gain__card { background: #fff; border-radius: 14px; padding: 30px 26px 28px; text-align: center;
  box-shadow: var(--shadow); position: relative; border-top: 4px solid var(--blue); }
.sm-gain__no { position: absolute; top: -16px; left: 50%; transform: translateX(-50%);
  width: 34px; height: 34px; border-radius: 50%; background: var(--blue); color: #fff;
  font-size: 14px; font-weight: 900; display: grid; place-items: center;
  font-family: Georgia, serif; }
.sm-gain__card svg { width: 46px; height: 46px; margin: 10px auto 14px; color: var(--blue);
  stroke-width: 1.6; }
.sm-gain__card h3 { font-size: 17px; font-weight: 900; color: var(--navy); margin: 0 0 10px;
  line-height: 1.6; }
.sm-gain__card p { font-size: 13.5px; color: var(--muted); line-height: 1.95; margin: 0; }
.sm-gain__card b { color: var(--navy); background: linear-gradient(transparent 60%, #ffe08a 60%); }
@media (max-width: 880px) { .sm-gain__grid { grid-template-columns: 1fr; } }

/* ---------- タイムテーブル ---------- */
.sm-time { padding: 64px 0; background: #fff; }
.sm-time__list { max-width: 760px; margin: 0 auto; position: relative; }
.sm-time__list::before { content: ""; position: absolute; left: 78px; top: 12px; bottom: 12px;
  width: 2px; background: linear-gradient(180deg, var(--blue), var(--blue-light)); }
.sm-time__item { display: grid; grid-template-columns: 78px 1fr; gap: 26px; position: relative;
  padding: 0 0 26px; }
.sm-time__item:last-child { padding-bottom: 0; }
.sm-time__clock { font-size: 14px; font-weight: 900; color: var(--blue); padding-top: 2px;
  font-family: Georgia, serif; letter-spacing: .02em; }
.sm-time__body { position: relative; padding-left: 22px; }
.sm-time__body::before { content: ""; position: absolute; left: -7px; top: 8px; width: 12px;
  height: 12px; border-radius: 50%; background: #fff; border: 3px solid var(--blue); }
.sm-time__body h3 { font-size: 16px; font-weight: 900; color: var(--navy); margin: 0 0 6px; }
.sm-time__body p { font-size: 13.5px; color: var(--muted); margin: 0; line-height: 1.9; }
@media (max-width: 620px) {
  .sm-time__list::before { left: 58px; }
  .sm-time__item { grid-template-columns: 58px 1fr; gap: 16px; }
  .sm-time__clock { font-size: 12.5px; }
}

/* ---------- 講師紹介 ---------- */
.sm-lect { padding: 62px 0; background: var(--bg-soft); }
.sm-lect__card { display: grid; grid-template-columns: 210px 1fr; gap: 34px; align-items: center;
  background: #fff; border-radius: 16px; padding: 34px 38px; box-shadow: var(--shadow);
  max-width: 900px; margin: 0 auto; }
.sm-lect__photo { width: 100%; aspect-ratio: 1/1; border-radius: 50%; object-fit: cover;
  border: 5px solid var(--blue-light); background: var(--blue-light); }
.sm-lect__role { font-size: 12.5px; font-weight: 800; color: var(--orange); letter-spacing: .06em;
  margin: 0 0 4px; }
.sm-lect__name { font-size: 24px; font-weight: 900; color: var(--navy); margin: 0 0 14px; }
.sm-lect__name span { font-size: 13px; color: var(--muted); font-weight: 700; margin-left: 10px; }
.sm-lect__card p { font-size: 14px; color: var(--muted); line-height: 2; margin: 0; }
@media (max-width: 780px) {
  .sm-lect__card { grid-template-columns: 1fr; text-align: center; padding: 28px 22px; }
  .sm-lect__photo { width: 160px; margin: 0 auto; }
}

/* ---------- 参加者の声 ---------- */
.sm-voice { padding: 62px 0; background: #fff; }
.sm-voice__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.sm-voice__card { background: var(--bg-soft); border-radius: 12px; padding: 26px 24px;
  position: relative; }
.sm-voice__card::before { content: "\201C"; position: absolute; top: 2px; left: 16px;
  font-size: 60px; color: var(--blue); opacity: .18; font-family: Georgia, serif; line-height: 1; }
.sm-voice__stars { color: var(--gold); font-size: 14px; letter-spacing: .1em; margin-bottom: 8px; }
.sm-voice__card p { font-size: 13.5px; line-height: 1.95; color: var(--text); margin: 0 0 14px;
  position: relative; }
.sm-voice__who { font-size: 12px; color: var(--muted); font-weight: 700; }
@media (max-width: 880px) { .sm-voice__grid { grid-template-columns: 1fr; } }

/* ---------- 開催概要テーブル ---------- */
.sm-outline { padding: 62px 0; background: var(--bg-soft); }
.sm-outline__table { max-width: 780px; margin: 0 auto; background: #fff; border-radius: 12px;
  overflow: hidden; box-shadow: var(--shadow); }
.sm-outline__row { display: grid; grid-template-columns: 170px 1fr; border-bottom: 1px solid var(--line); }
.sm-outline__row:last-child { border-bottom: 0; }
.sm-outline__row dt { background: #eef3fa; padding: 16px 22px; font-size: 13.5px; font-weight: 800;
  color: var(--navy); margin: 0; }
.sm-outline__row dd { padding: 16px 22px; font-size: 14px; margin: 0; color: var(--text); }
@media (max-width: 620px) {
  .sm-outline__row { grid-template-columns: 1fr; }
  .sm-outline__row dt { padding: 10px 16px; }
  .sm-outline__row dd { padding: 12px 16px; }
}

/* ---------- 申込フォーム ---------- */
.sm-apply { padding: 66px 0 74px; background: #fff; }
.sm-apply__box { max-width: 780px; margin: 0 auto; background: var(--bg-soft);
  border-radius: 16px; padding: 36px 40px 40px; border: 2px solid var(--line); }
.sm-apply__thanks { text-align: center; padding: 40px 20px; }
.sm-apply__thanks-icon { display: inline-grid; place-items: center; width: 62px; height: 62px;
  border-radius: 50%; background: var(--green); color: #fff; font-size: 30px; margin-bottom: 16px; }
.sm-apply__thanks h3 { font-size: 21px; font-weight: 900; color: var(--navy); margin: 0 0 12px;
  line-height: 1.6; }
.sm-apply__thanks p { font-size: 14px; color: var(--muted); line-height: 2; margin: 0 0 8px; }
@media (max-width: 620px) { .sm-apply__box { padding: 24px 18px 28px; } }

/* ---------- セミナー一覧ページ ---------- */
.sm-pagehead { background: linear-gradient(135deg, #0b2447, #1c56a0); color: #fff;
  padding: 52px 0 56px; position: relative; overflow: hidden; }
.sm-pagehead::before { content: ""; position: absolute; inset: 0;
  background-image: radial-gradient(rgba(255,255,255,.07) 1.5px, transparent 1.5px);
  background-size: 22px 22px; }
.sm-pagehead .container { position: relative; z-index: 2; }
.sm-pagehead__crumb { font-size: 12px; color: rgba(255,255,255,.72); margin: 0 0 14px; }
.sm-pagehead__crumb a { color: rgba(255,255,255,.9); }
.sm-pagehead h1 { font-size: clamp(24px, 3.4vw, 36px); font-weight: 900; margin: 0 0 12px; }
.sm-pagehead p { font-size: 14.5px; color: rgba(255,255,255,.86); margin: 0; max-width: 760px;
  line-height: 1.95; }

.sm-list { padding: 56px 0 20px; }
.sm-list + .sm-list { padding-top: 20px; }
.sm-list__title { display: flex; align-items: center; gap: 12px; font-size: 20px; font-weight: 900;
  color: var(--navy); margin: 0 0 24px; }
.sm-list__title::before { content: ""; width: 5px; height: 24px; border-radius: 3px;
  background: var(--orange); }
.smcard { display: grid; grid-template-columns: 200px 1fr 220px; gap: 26px; align-items: center;
  background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 22px 26px;
  margin-bottom: 18px; box-shadow: var(--shadow); transition: transform .22s ease, box-shadow .22s ease; }
.smcard:hover { transform: translateY(-3px); box-shadow: 0 14px 34px rgba(13,43,87,.14); }
.smcard--closed { opacity: .72; background: var(--bg-soft); }
.smcard--closed:hover { transform: none; box-shadow: var(--shadow); }
.smcard__date { text-align: center; border-right: 1px dashed var(--line); padding-right: 18px; }
.smcard__month { font-size: 12.5px; font-weight: 800; color: var(--muted); }
.smcard__day { font-size: 40px; font-weight: 900; color: var(--navy); line-height: 1.1;
  font-family: Georgia, serif; }
.smcard__wd { font-size: 12.5px; font-weight: 800; color: var(--orange); }
.smcard__time { font-size: 13px; font-weight: 700; color: var(--muted); margin-top: 6px; }
.smcard__body h3 { font-size: 18px; font-weight: 900; color: var(--navy); margin: 8px 0 8px;
  line-height: 1.6; }
.smcard__body p { font-size: 13.5px; color: var(--muted); margin: 0; line-height: 1.9; }
.smcard__tags { display: flex; flex-wrap: wrap; gap: 7px; }
.smcard__tag { font-size: 11px; font-weight: 800; padding: 3px 10px; border-radius: 999px;
  background: var(--blue-light); color: var(--blue); }
.smcard__act { text-align: center; }
.smcard__act .btn { width: 100%; }
.smcard__seat { font-size: 11.5px; font-weight: 800; color: var(--orange); margin-top: 9px; }
@media (max-width: 900px) {
  .smcard { grid-template-columns: 1fr; gap: 14px; text-align: center; }
  .smcard__date { border-right: 0; border-bottom: 1px dashed var(--line); padding: 0 0 12px; }
  .smcard__day { font-size: 34px; }
  .smcard__tags { justify-content: center; }
}

/* ---------- LP用ミニフッター ---------- */
.lp-footer { background: var(--navy); color: rgba(255,255,255,.8); padding: 30px 0;
  text-align: center; font-size: 12.5px; }
.lp-footer a { color: rgba(255,255,255,.9); margin: 0 10px; }
.lp-footer__co { color: #fff; font-weight: 800; font-size: 14px; margin: 0 0 8px; }

/* =========================================================
   パートナー向けセミナー（オレンジ版）の上書き
   ========================================================= */
.pt .sm-hero { background: linear-gradient(135deg, #241b12 0%, #6b3407 50%, #d3610a 100%); }
.pt .sm-hero h1 em { color: #ffd97a; }
.pt .sm-hero h1 .sm-hl { background: linear-gradient(transparent 58%, rgba(255,217,122,.4) 58%); }
.pt .sm-hero__badge--free { background: #ffd97a; border-color: #ffd97a; color: #4a3a26; }
.pt .sm-when__head { color: #d3610a; }
.pt .sm-when__row dd b { color: #241b12; }
.pt .sm-pain__item { border-left-color: #e8791f; color: #241b12; background: #fff6ec; }
.pt .sm-pain__item::before { background: #e8791f; }
.pt .sm-pain__bridge { color: #241b12; }
.pt .sm-gain, .pt .sm-lect, .pt .sm-outline { background: #fff6ec; }
.pt .sm-gain__card { border-top-color: #e8791f; }
.pt .sm-gain__no { background: #e8791f; }
.pt .sm-gain__card svg { color: #e8791f; }
.pt .sm-gain__card h3, .pt .sm-time__body h3, .pt .sm-lect__name,
.pt .sm-list__title, .pt .smcard__body h3, .pt .sm-outline__row dt { color: #241b12; }
.pt .sm-time__list::before { background: linear-gradient(180deg, #e8791f, #ffd9b0); }
.pt .sm-time__clock { color: #d3610a; }
.pt .sm-time__body::before { border-color: #e8791f; }
.pt .sm-lect__photo { border-color: #ffe3c6; background: #ffe3c6; }
.pt .sm-voice__card { background: #fff6ec; }
.pt .sm-voice__card::before { color: #e8791f; }
.pt .sm-outline__row dt { background: #ffe9d4; }
.pt .sm-cta-block { background: #fff6ec; }
.pt .sm-cta-block h2 { color: #241b12; }
.pt .sm-pagehead { background: linear-gradient(135deg, #241b12, #d3610a); }
.pt .sm-apply__box { background: #fff6ec; border-color: #ffd9b0; }
.pt .sm-apply__thanks h3 { color: #241b12; }
.pt .smcard__day { color: #241b12; }
.pt .smcard__wd, .pt .smcard__seat { color: #d3610a; }
.pt .smcard__tag { background: #ffe9d4; color: #b45a02; }
.pt .lp-footer { background: #241b12; }
.pt .sm-sticky { background: rgba(36,27,18,.96); }

/* ---------- パートナー募集をヘッダー最右端に ---------- */
.nav-partner--edge { display: inline-flex; align-items: center; margin-left: 12px;
  color: #8a6210; font-weight: 800; font-size: 13.5px; text-decoration: none;
  padding: 10px 18px; border-radius: 999px; white-space: nowrap;
  background: linear-gradient(135deg, #f4d788, #e0b34a);
  border: 1px solid #d8b24a; box-shadow: 0 3px 10px rgba(216,178,74,.35);
  transition: background .2s ease, color .2s ease, transform .2s ease; }
.nav-partner--edge:hover { color: #fff; transform: translateY(-2px);
  background: linear-gradient(135deg, #e5b13c, #c9992e); }
@media (min-width: 1361px) { .nav-partner-li { display: none; } }
@media (max-width: 1360px) { .nav-partner--edge { display: none; } }

/* =========================================================
   広告・DM専用LP 専用デザイン（メインサイトとは別テイスト）
   コンセプト：黒＋生成り＋蛍光のポスター／号外スタイル
   角丸なし・ベタ塗り・極太タイポ・罫線で構成する
   使用ページ：seminar-lp.html / partner-seminar-lp.html
   ========================================================= */
.xlp {
  --xk: #0B0B0C;            /* 黒 */
  --xp: #F2EEE3;            /* 生成り（紙） */
  --xa: #E3FF4F;            /* 蛍光アクセント（企業向け＝イエロー） */
  --xai: #0B0B0C;           /* アクセント上の文字色 */
  --xg: #8E8B82;            /* グレー */
  margin: 0; background: var(--xp); color: var(--xk);
}
.xlp--pt { --xa: #FF5C1A; --xai: #ffffff; }   /* パートナー向け＝蛍光オレンジ */

.x-wrap { max-width: 1160px; margin: 0 auto; padding: 0 24px; }
.x-en { font-family: Impact, "Haettenschweiler", "Arial Narrow", sans-serif; font-weight: 400; }

/* ---------- ヘッダー ---------- */
.x-head { position: sticky; top: 0; z-index: 120; background: var(--xk); color: #fff;
  border-bottom: 3px solid var(--xa); }
.x-head__in { display: flex; align-items: center; justify-content: space-between; gap: 16px;
  max-width: 1160px; margin: 0 auto; padding: 11px 24px; }
.x-logo { text-decoration: none; color: #fff; line-height: 1.15; }
.x-logo b { display: block; font-size: 19px; font-weight: 900; letter-spacing: .01em; }
.x-logo small { display: block; font-size: 10px; color: var(--xg); letter-spacing: .02em; }
.x-head__r { display: flex; align-items: center; gap: 16px; }
.x-tel { text-decoration: none; color: #fff; text-align: right; line-height: 1.2; }
.x-tel small { display: block; font-size: 10px; color: var(--xg); }
.x-tel b { font-size: 18px; letter-spacing: .01em; }
@media (max-width: 760px) { .x-tel { display: none; } .x-head__in { padding: 9px 14px; } }

/* ---------- ボタン（角ばった・ベタ影） ---------- */
.xbtn { display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  background: var(--xa); color: var(--xai); font-weight: 900; font-size: 17px;
  padding: 17px 38px; text-decoration: none; border: 2px solid var(--xk);
  box-shadow: 7px 7px 0 var(--xk); cursor: pointer;
  transition: transform .14s ease, box-shadow .14s ease; }
.xbtn:hover { transform: translate(4px, 4px); box-shadow: 3px 3px 0 var(--xk); }
.xbtn--sm { font-size: 13px; padding: 10px 18px; box-shadow: 4px 4px 0 var(--xk); }
.xbtn--sm:hover { transform: translate(2px,2px); box-shadow: 2px 2px 0 var(--xk); }
.xbtn--big { font-size: clamp(17px, 2.4vw, 22px); padding: 22px 50px; }
.xbtn--ondark { border-color: var(--xa); box-shadow: 7px 7px 0 rgba(255,255,255,.22); }
.xbtn--ondark:hover { box-shadow: 3px 3px 0 rgba(255,255,255,.22); }
.x-note { display: block; margin-top: 13px; font-size: 12.5px; color: var(--xg); }

/* ---------- ヒーロー ---------- */
.x-hero { background: var(--xk); color: #fff; position: relative; overflow: hidden;
  padding: 60px 0 70px; }
.x-hero::before { content: ""; position: absolute; inset: 0; opacity: .07;
  background: repeating-linear-gradient(-45deg, var(--xa) 0 2px, transparent 2px 16px); }
.x-hero__in { position: relative; z-index: 2; display: grid;
  grid-template-columns: 1.1fr .9fr; gap: 52px; align-items: center; }
.x-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.x-tag { font-size: 12px; font-weight: 900; letter-spacing: .04em; padding: 5px 12px;
  border: 2px solid var(--xa); color: var(--xa); }
.x-tag--fill { background: var(--xa); color: var(--xai); }
.x-hero h1 { font-size: clamp(31px, 5.6vw, 68px); font-weight: 900; line-height: 1.18;
  letter-spacing: -.02em; margin: 0 0 22px; }
.x-mark { background: var(--xa); color: var(--xai); padding: 0 .1em; }
.x-out { color: transparent; -webkit-text-stroke: 2px var(--xa); }
.x-hero__lead { font-size: 15px; line-height: 2.05; color: #d6d3cb; margin: 0 0 30px;
  max-width: 640px; border-left: 3px solid var(--xa); padding-left: 18px; }
.x-hero__lead strong { color: var(--xa); }

/* 日付ブロック */
.x-when { border: 3px solid var(--xa); background: rgba(255,255,255,.03); padding: 24px 26px 26px; }
.x-when__lb { font-size: 11px; font-weight: 900; letter-spacing: .2em; color: var(--xa);
  margin: 0 0 12px; }
.x-when__big { display: flex; align-items: flex-end; gap: 10px; margin-bottom: 16px;
  padding-bottom: 16px; border-bottom: 2px solid rgba(255,255,255,.18); }
.x-when__n { font-size: clamp(52px, 8vw, 86px); line-height: .82; color: var(--xa);
  letter-spacing: -.02em; }
.x-when__u { font-size: 13px; font-weight: 900; color: #fff; line-height: 1.5; padding-bottom: 4px; }
.x-when dl { margin: 0; display: grid; gap: 9px; }
.x-when dl > div { display: flex; gap: 12px; font-size: 13px; }
.x-when dt { flex: none; width: 52px; color: var(--xg); font-weight: 800; margin: 0; }
.x-when dd { margin: 0; font-weight: 700; color: #fff; }
.x-when__seat { margin: 16px 0 0; background: var(--xa); color: var(--xai);
  font-size: 12px; font-weight: 900; text-align: center; padding: 8px; }
@media (max-width: 980px) { .x-hero__in { grid-template-columns: 1fr; gap: 30px; } }

/* ---------- 流れる帯（マーキー） ---------- */
.x-mq { background: var(--xa); color: var(--xai); overflow: hidden; padding: 11px 0;
  border-top: 3px solid var(--xk); border-bottom: 3px solid var(--xk); }
.x-mq--tilt { transform: rotate(-1.2deg) scale(1.04); position: relative; z-index: 3; }
/* 上の帯は scale(1.04) でわざと画面幅を超えるため、そのままだと横スクロールが出る。
   body に指定するとビューポートへ伝播して効かないので、帯を含む main で切り落とす。
   clip は overflow:hidden と違いスクロールコンテナを作らないので sticky が壊れない */
.xlp main { overflow-x: clip; }
.x-mq__t { display: flex; gap: 34px; width: max-content; white-space: nowrap;
  font-weight: 900; font-size: 15px; letter-spacing: .05em;
  animation: xmq 26s linear infinite; }
@keyframes xmq { to { transform: translateX(-50%); } }

/* ---------- セクション共通 ---------- */
.x-sec { padding: 72px 0; }
.x-sec--k { background: var(--xk); color: #fff; }
.x-lab { display: inline-block; font-size: 13px; letter-spacing: .22em; margin: 0 0 14px;
  border-bottom: 3px solid var(--xa); padding-bottom: 3px; }
.x-t { font-size: clamp(25px, 4.2vw, 48px); font-weight: 900; line-height: 1.28;
  letter-spacing: -.01em; margin: 0 0 14px; }
.x-sub { font-size: 14px; line-height: 1.95; color: var(--xg); margin: 0 0 34px; max-width: 720px; }
.x-sec--k .x-sub { color: #a5a29a; }

/* ---------- お悩みリスト ---------- */
.x-pain { list-style: none; margin: 0; padding: 0; display: grid;
  grid-template-columns: repeat(2, 1fr); column-gap: 34px; border-top: 3px solid var(--xk); }
.x-pain li { display: flex; align-items: center; gap: 14px; padding: 19px 4px;
  border-bottom: 2px solid rgba(11,11,12,.16); font-size: 15.5px; font-weight: 800; }
.x-pain li::before { content: "✕"; flex: none; width: 30px; height: 30px; background: var(--xk);
  color: var(--xa); display: grid; place-items: center; font-size: 15px; font-weight: 900; }
@media (max-width: 800px) { .x-pain { grid-template-columns: 1fr; } }
/* 「こんな方におすすめ」は否定ではないので ✕ ではなく ✓ で出す */
.x-pain--ok li::before { content: "✓"; }

/* ---------- 申込セクション（Googleフォームへ誘導） ---------- */
.x-ask { list-style: none; margin: 0 0 26px; padding: 0; display: grid; gap: 11px; }
.x-ask li { display: flex; align-items: center; gap: 13px; font-size: 15.5px; font-weight: 800; }
.x-ask li::before { content: "？"; flex: none; width: 28px; height: 28px; background: var(--xa);
  color: var(--xai); display: grid; place-items: center; font-size: 14px; font-weight: 900; }
.x-entry { border: 3px solid var(--xa); padding: 32px 26px; text-align: center; margin: 10px 0 26px; }
.x-entry__d { display: flex; align-items: center; justify-content: center; gap: 18px; margin: 0 0 24px; }
.x-entry__d b { font-size: 48px; font-weight: 900; line-height: 1; color: var(--xa); }
.x-entry__d span { font-size: 13.5px; font-weight: 800; line-height: 1.75; text-align: left; color: #e8e5dd; }
.x-entry__n { font-size: 12.5px; color: var(--xg); margin: 15px 0 0; }
.x-disc { font-size: 12px; line-height: 1.9; color: var(--xg); margin: 0; }
@media (max-width: 520px) {
  .x-entry { padding: 24px 18px; }
  .x-entry__d { flex-direction: column; gap: 8px; }
  .x-entry__d span { text-align: center; }
  .x-entry__d b { font-size: 40px; }
}

/* ---------- 転換ブロック ---------- */
.x-turn { background: var(--xa); color: var(--xai); text-align: center; padding: 56px 0;
  border-top: 4px solid var(--xk); border-bottom: 4px solid var(--xk); }
.x-turn p { font-size: clamp(21px, 3.6vw, 42px); font-weight: 900; line-height: 1.45; margin: 0;
  letter-spacing: -.01em; }
.x-turn small { display: block; margin-top: 14px; font-size: 13px; font-weight: 800; opacity: .75; }

/* ---------- 得られること（巨大ナンバー） ---------- */
.x-get { border-top: 3px solid currentColor; }
.x-getrow { display: grid; grid-template-columns: 168px 1fr; gap: 34px; align-items: start;
  padding: 36px 0; border-bottom: 3px solid currentColor; }
.x-getrow__n { font-size: clamp(60px, 8vw, 108px); line-height: .78; color: transparent;
  -webkit-text-stroke: 2px var(--xa); }
.x-getrow h3 { font-size: clamp(19px, 2.7vw, 29px); font-weight: 900; line-height: 1.42;
  margin: 0 0 12px; }
.x-getrow p { font-size: 14.5px; line-height: 2.05; margin: 0; }
.x-sec--k .x-getrow p { color: #c9c6be; }
.x-getrow b { background: var(--xa); color: var(--xai); padding: 0 4px; font-weight: 900; }
.x-getrow small { display: block; margin-top: 8px; font-size: 11.5px; color: var(--xg); }
@media (max-width: 760px) {
  .x-getrow { grid-template-columns: 1fr; gap: 10px; }
  .x-getrow__n { -webkit-text-stroke-width: 2px; }
}

/* ---------- プログラム ---------- */
.x-prog { border-top: 3px solid var(--xk); }
.x-prog__r { display: grid; grid-template-columns: 128px 1fr; gap: 26px; padding: 22px 0;
  border-bottom: 1px solid rgba(11,11,12,.2); }
.x-prog__c { font-size: 25px; line-height: 1; padding-top: 3px; }
.x-prog__b h3 { font-size: 17px; font-weight: 900; margin: 0 0 6px; line-height: 1.5; }
.x-prog__b p { font-size: 13.5px; line-height: 1.9; color: #57544d; margin: 0; }
@media (max-width: 620px) {
  .x-prog__r { grid-template-columns: 84px 1fr; gap: 14px; }
  .x-prog__c { font-size: 19px; }
}

/* ---------- 講師 ---------- */
.x-lect { display: grid; grid-template-columns: 220px 1fr; gap: 36px; align-items: center;
  border: 3px solid var(--xa); padding: 32px 34px; }
/* height:auto がないと HTML の height 属性が効いてしまい、aspect-ratio が無視される */
.x-lect img { width: 100%; height: auto; aspect-ratio: 1/1; object-fit: cover; border: 3px solid var(--xa);
  background: #fff; }
.x-lect__role { font-size: 12px; font-weight: 900; letter-spacing: .1em; color: var(--xa);
  margin: 0 0 6px; }
.x-lect__nm { font-size: clamp(22px, 3vw, 32px); font-weight: 900; margin: 0 0 14px; }
.x-lect__nm span { font-size: 13px; color: var(--xg); font-weight: 700; margin-left: 10px; }
.x-lect p { font-size: 14px; line-height: 2; color: #c9c6be; margin: 0; }
.x-lect p small { color: var(--xg); }
@media (max-width: 780px) { .x-lect { grid-template-columns: 1fr; text-align: center; }
  .x-lect img { max-width: 180px; margin: 0 auto; } }
/* 講師を複数名並べる場合用（現在は各LP1名なので未使用） */
.x-lects { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.x-lect--duo { grid-template-columns: 148px 1fr; gap: 22px; padding: 26px 26px; align-items: start; }
.x-lect--duo .x-lect__nm { font-size: clamp(20px, 2.2vw, 26px); margin-bottom: 10px; }
.x-lect--duo .x-lect__nm span { display: block; margin: 5px 0 0; font-size: 12px; }
.x-lect--duo p { font-size: 13.5px; line-height: 1.95; }
@media (max-width: 980px) { .x-lects { grid-template-columns: 1fr; } }

/* ---------- 参加者の声 ---------- */
.x-vo { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 3px solid var(--xk); }
.x-vo article { padding: 30px 26px; border-bottom: 3px solid var(--xk);
  border-right: 1px solid rgba(11,11,12,.2); }
.x-vo article:last-child { border-right: 0; }
.x-vo__s { color: var(--xk); font-size: 15px; letter-spacing: .12em; margin-bottom: 10px; }
.x-vo p { font-size: 14px; line-height: 1.95; margin: 0 0 14px; font-weight: 700; }
.x-vo__w { font-size: 11.5px; font-weight: 800; color: #57544d;
  border-top: 2px solid var(--xk); padding-top: 10px; display: inline-block; }
@media (max-width: 880px) { .x-vo { grid-template-columns: 1fr; }
  .x-vo article { border-right: 0; } }

/* ---------- 開催概要 ---------- */
.x-info { border-top: 3px solid var(--xk); margin: 0; }
.x-info > div { display: grid; grid-template-columns: 176px 1fr;
  border-bottom: 1px solid rgba(11,11,12,.2); }
.x-info dt { padding: 16px 18px 16px 0; font-size: 13px; font-weight: 900; margin: 0;
  border-right: 2px solid var(--xk); }
.x-info dd { padding: 16px 0 16px 22px; font-size: 14px; margin: 0; line-height: 1.85; }
@media (max-width: 620px) {
  .x-info > div { grid-template-columns: 1fr; }
  .x-info dt { border-right: 0; border-bottom: 2px solid var(--xk); padding: 10px 0; }
  .x-info dd { padding: 12px 0; }
}

/* ---------- FAQ（detailsで開閉／JS不要） ---------- */
.x-qa { border-top: 3px solid var(--xk); }
.x-qa details { border-bottom: 2px solid rgba(11,11,12,.2); }
.x-qa summary { list-style: none; cursor: pointer; position: relative;
  padding: 20px 46px 20px 0; font-size: 15.5px; font-weight: 900; }
.x-qa summary::-webkit-details-marker { display: none; }
.x-qa summary::after { content: "+"; position: absolute; right: 8px; top: 50%;
  transform: translateY(-50%); width: 26px; height: 26px; background: var(--xk);
  color: var(--xa); display: grid; place-items: center; font-size: 18px; }
.x-qa details[open] summary::after { content: "−"; }
.x-qa__a { padding: 0 46px 22px 0; font-size: 14px; line-height: 2; color: #57544d; margin: 0; }

/* ---------- 申込フォーム ---------- */
.x-form { border: 3px solid var(--xa); padding: 34px 36px 38px; }
.x-form__g { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.x-fld { display: block; }
.x-fld--full { grid-column: 1 / -1; }
.x-fld span { display: block; font-size: 12.5px; font-weight: 900; margin-bottom: 7px; }
.x-fld em { font-style: normal; background: var(--xa); color: var(--xai); font-size: 10.5px;
  padding: 1px 7px; margin-left: 7px; }
.x-fld input, .x-fld select, .x-fld textarea { width: 100%; background: #17171a; color: #fff;
  border: 2px solid #3a3a3e; padding: 12px 14px; font-size: 14.5px; font-family: inherit; }
.x-fld input:focus, .x-fld select:focus, .x-fld textarea:focus { outline: none;
  border-color: var(--xa); }
.x-agree { display: flex; align-items: center; gap: 10px; margin: 20px 0 24px; font-size: 13px;
  font-weight: 700; }
.x-agree input { width: 18px; height: 18px; accent-color: var(--xa); flex: none; }
.x-agree a { color: var(--xa); }
.x-form__act { text-align: center; }
.x-form__note { font-size: 12px; color: var(--xg); margin: 14px 0 0; }
.x-thanks { text-align: center; padding: 46px 24px; border: 3px solid var(--xa); }
.x-thanks__i { display: inline-grid; place-items: center; width: 64px; height: 64px;
  background: var(--xa); color: var(--xai); font-size: 32px; font-weight: 900; margin-bottom: 18px; }
.x-thanks h3 { font-size: clamp(20px, 2.8vw, 28px); font-weight: 900; margin: 0 0 14px;
  line-height: 1.5; }
.x-thanks p { font-size: 14px; line-height: 2; color: #c9c6be; margin: 0 0 8px; }
@media (max-width: 700px) {
  .x-form { padding: 24px 18px 28px; }
  .x-form__g { grid-template-columns: 1fr; }
}

/* ---------- 追従バー ---------- */
.x-fix { position: fixed; left: 0; right: 0; bottom: 0; z-index: 130; background: var(--xk);
  border-top: 3px solid var(--xa); padding: 11px 16px; display: flex; gap: 16px;
  align-items: center; justify-content: center; transform: translateY(130%);
  transition: transform .3s ease; }
.x-fix.is-show { transform: none; }
.x-fix__t { color: #fff; font-size: 12.5px; font-weight: 900; line-height: 1.4; }
.x-fix__t b { display: block; color: var(--xa); }
@media (max-width: 640px) {
  .x-fix__t { display: none; }
  .x-fix .xbtn { width: 100%; padding: 15px; }
}

/* ---------- フッター ---------- */
.x-foot { background: var(--xk); color: var(--xg); text-align: center; padding: 38px 0 96px;
  font-size: 12.5px; border-top: 3px solid var(--xa); }
.x-foot b { display: block; color: #fff; font-size: 15px; margin-bottom: 8px; }
.x-foot a { color: #d6d3cb; margin: 0 9px; }

@media (prefers-reduced-motion: reduce) {
  .x-mq__t { animation: none; }
  .xbtn { transition: none; }
}

/* ---------- LPヒーローの写真ブロック（ポスター風のコラージュ） ---------- */
.x-hero__vis { position: relative; }
.x-photo { position: relative; margin: 0; overflow: hidden; aspect-ratio: 4 / 3.4;
  border: 3px solid var(--xa); box-shadow: 16px 16px 0 rgba(255,255,255,.1); }
.x-photo img { width: 100%; height: 100%; object-fit: cover; display: block;
  object-position: center 26%;   /* 人物の頭が切れないよう上寄せ */
  filter: contrast(1.12) saturate(.72) brightness(.94); }
/* アクセント色をうっすら乗せて、写真をデザインに馴染ませる */
.x-photo::after { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(200deg, transparent 42%, rgba(11,11,12,.72) 100%); }
.x-photo__badge { position: absolute; top: 16px; right: -6px; z-index: 2;
  background: var(--xa); color: var(--xai); font-size: 13px; font-weight: 900;
  letter-spacing: .04em; padding: 8px 16px; transform: rotate(3.5deg);
  box-shadow: 4px 4px 0 rgba(11,11,12,.55); }
/* 日付カードを写真に食い込ませる */
.x-hero__vis .x-when { position: relative; z-index: 3; background: var(--xk);
  margin: -58px 0 0 -22px; }
@media (max-width: 980px) {
  .x-photo { aspect-ratio: 16 / 9; box-shadow: 10px 10px 0 rgba(255,255,255,.1); }
  .x-hero__vis .x-when { margin: -44px 0 0 0; }
}
@media (max-width: 520px) {
  .x-photo { aspect-ratio: 4 / 3; }
  .x-photo__badge { font-size: 11.5px; padding: 6px 12px; }
}

/* =========================================================
   TRACK RECORD ― 実績の数字を主役にするセクション（トップpage）
   紺のグラデ地に、ゴールドの巨大数字。700社を単独で見せ、
   残り3つを罫線で仕切って支える構成。
   ※ partner.html の .stats とは別物（干渉しません）
   ========================================================= */
.rec { position: relative; overflow: hidden; color: #fff; padding: 78px 0 82px;
  background: radial-gradient(125% 105% at 78% -10%, #16407b 0%, #0a1e3d 48%, #050d1b 100%); }
/* 方眼のうっすらした地紋 */
.rec::before { content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
  background-size: 64px 64px; }
/* 背景の巨大な英字 */
.rec__word { position: absolute; right: -2%; top: 1%; z-index: 1; white-space: nowrap;
  font-family: Georgia, "Times New Roman", serif; font-weight: 700;
  font-size: clamp(64px, 13vw, 215px); letter-spacing: .02em;
  color: transparent; -webkit-text-stroke: 1.5px rgba(216,178,74,.17);
  pointer-events: none; user-select: none; }
.rec__inner { position: relative; z-index: 2; }

.rec__eyebrow { font-size: clamp(15px, 1.9vw, 19px); font-weight: 800; letter-spacing: .05em;
  color: #cfe0f5; margin: 0 0 36px; }
.rec__eyebrow em { font-style: normal; color: var(--gold); }

/* ラベル（ゴールドの罫線つき） */
.rec__head { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.rec__rule { flex: none; width: 34px; height: 3px;
  background: linear-gradient(90deg, var(--gold), rgba(216,178,74,.15)); }
.rec__label { font-size: 13px; font-weight: 800; letter-spacing: .07em; color: #a8c2e0; }

/* 数字（ゴールドのグラデーション） */
.rec__num { font-weight: 900; line-height: .9; letter-spacing: -.02em;
  font-size: clamp(48px, 7vw, 104px);
  background: linear-gradient(180deg, #fdf0c6 0%, #e8c766 42%, var(--gold) 68%, #a87f21 100%);
  -webkit-background-clip: text; background-clip: text;
  color: transparent; -webkit-text-fill-color: transparent; }
.rec__num--xl { font-size: clamp(78px, 15vw, 212px); }
.rec .unit { font-size: .27em; font-weight: 800; letter-spacing: .02em; margin-left: .14em;
  color: #fff; -webkit-text-fill-color: #fff; }
.rec__note { font-size: 12px; color: #89a3c3; margin: 12px 0 0; line-height: 1.7; }

/* 主役（700社）と、支える3つ */
.rec__hero { padding-bottom: 32px; margin-bottom: 34px;
  border-bottom: 1px solid rgba(216,178,74,.28); }
.rec__row { display: grid; grid-template-columns: repeat(3, 1fr); }
.rec__item { padding: 0 32px; }
.rec__item:first-child { padding-left: 0; }
.rec__item:last-child { padding-right: 0; }
.rec__item + .rec__item { border-left: 1px solid rgba(255,255,255,.11); }

@media (max-width: 860px) {
  .rec { padding: 56px 0 60px; }
  .rec__hero { padding-bottom: 26px; margin-bottom: 8px; }
  .rec__row { grid-template-columns: 1fr; }
  .rec__item { padding: 26px 0; }
  .rec__item + .rec__item { border-left: 0; border-top: 1px solid rgba(255,255,255,.11); }
  .rec__word { top: auto; bottom: 2%; right: -6%; }
}

/* ---------- TRACK RECORD：カウント到達時のひと押し ---------- */
.rec__num { display: inline-block; transform-origin: left bottom; will-change: transform; }
.rec__num.is-counted { animation: recLand .62s cubic-bezier(.18,1.5,.35,1) both; }
@keyframes recLand {
  0%   { transform: scale(1);     filter: none; }
  38%  { transform: scale(1.055); filter: drop-shadow(0 0 26px rgba(216,178,74,.55)); }
  100% { transform: scale(1);     filter: none; }
}
/* カウント中はうっすら発光させ、「回っている」ことを伝える */
.rec__num:not(.is-counted) { filter: drop-shadow(0 0 14px rgba(216,178,74,.22)); }

@media (prefers-reduced-motion: reduce) {
  .rec__num.is-counted { animation: none; }
  .rec__num:not(.is-counted) { filter: none; }
}

/* =========================================================
   PROBLEM ― 経営者の「本音」セクション
   整った箱の羅列をやめ、吹き出しを傾けて散らす。
   最後を紺の帯で断ち切り、「ぜんぶ、想定内です。」で受ける。
   ========================================================= */
.wo { position: relative; overflow: hidden; padding: 80px 0 0; background: #edf1f7; }
/* 淡いドットの地紋 */
.wo::before { content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image: radial-gradient(rgba(13,43,87,.07) 1.5px, transparent 1.5px);
  background-size: 20px 20px; }
/* 背面の巨大な英字 */
.wo__word { position: absolute; left: -2%; top: 26px; z-index: 0; white-space: nowrap;
  font-family: Georgia, "Times New Roman", serif; font-weight: 700;
  font-size: clamp(64px, 12vw, 190px); letter-spacing: .02em;
  color: transparent; -webkit-text-stroke: 1.5px rgba(13,43,87,.09);
  pointer-events: none; user-select: none; }
.wo > .container { position: relative; z-index: 2; }

.wo__head { margin-bottom: 40px; }
.wo__tag { display: inline-block; font-size: 12px; font-weight: 900; letter-spacing: .18em;
  color: #fff; background: var(--navy); padding: 5px 14px; margin-bottom: 16px; }
.wo__title { font-size: clamp(30px, 5vw, 58px); font-weight: 900; color: var(--navy);
  line-height: 1.3; letter-spacing: -.01em; margin: 0 0 12px; }
.wo__title em { font-style: normal; position: relative;
  background: linear-gradient(transparent 62%, rgba(216,178,74,.5) 62%); padding: 0 .06em; }
.wo__lead { font-size: 14.5px; color: #55627a; margin: 0; }

.wo__stage { display: grid; grid-template-columns: 1fr 290px; gap: 46px; align-items: center;
  padding-bottom: 64px; }

/* 吹き出し（傾けて散らす） */
.wo__bubbles { list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 30px 24px; }
.wo__b { position: relative; background: #fff; color: var(--navy);
  font-size: clamp(14px, 1.45vw, 16.5px); font-weight: 800; line-height: 1.65;
  padding: 17px 20px; border: 2px solid var(--navy);
  box-shadow: 5px 5px 0 rgba(13,43,87,.15);
  transform: rotate(var(--r, 0deg)) translateX(var(--x, 0));
  transition: transform .2s ease, box-shadow .2s ease; cursor: default; }
/* 吹き出しのしっぽ */
.wo__b::after { content: ""; position: absolute; left: 28px; bottom: -10px;
  width: 16px; height: 16px; background: #fff;
  border-right: 2px solid var(--navy); border-bottom: 2px solid var(--navy);
  transform: rotate(45deg); }
.wo__b:nth-child(even)::after { left: auto; right: 28px; }
.wo__b:hover { transform: rotate(0deg) translateY(-5px);
  box-shadow: 9px 9px 0 rgba(13,43,87,.26); }

/* 断ち切りの帯 */
.wo__cut { position: relative; z-index: 2; background: var(--navy); color: #fff;
  padding: 46px 0 50px; text-align: center;
  border-top: 5px solid var(--gold); }
.wo__cut-main { font-size: clamp(24px, 4.4vw, 50px); font-weight: 900; line-height: 1.35;
  letter-spacing: -.01em; margin: 0 0 12px; }
.wo__cut-main em { font-style: normal; color: var(--gold); }
.wo__cut-sub { font-size: 14px; color: #b8cbe4; margin: 0; }

@media (max-width: 900px) {
  .wo { padding-top: 56px; }
  .wo__stage { grid-template-columns: 1fr; gap: 30px; padding-bottom: 44px; }
  .wo__bubbles { grid-template-columns: 1fr; gap: 26px; }
  /* スマホでは傾きを弱めて読みやすさを優先 */
  .wo__b { transform: rotate(calc(var(--r, 0deg) * .45)) translateX(0); }
  .wo .worries__visual { max-width: 220px; margin: 0 auto; }
}
@media (prefers-reduced-motion: reduce) {
  .wo__b, .wo__b:hover { transform: none; transition: none; }
}

/* ---------- PROBLEM：シャローチくん（背景透過PNG） ---------- */
/* 透過素材になったため合成処理は不要。はみ出しだけ抑える */
.wo .worries__photo { height: 100%; width: auto; max-width: 100%;
  object-fit: contain; background: transparent; }
.wo .worries__mascot { background: transparent; box-shadow: none; border: 0; }
.wo .worries__visual { background: transparent; box-shadow: none; border: 0; }

/* =========================================================
   スマホ最適化（総仕上げ）
   ・横スクロールの原因を除去
   ・指で押せるサイズ（最低44px）をタップ要素に確保
   ========================================================= */
@media (max-width: 700px) {

  /* --- 1. 横スクロールの元凶を止める ---------------------------------
     ガイドブックの「本が開く」演出は left:100% の絶対配置。
     画面外にはみ出して横スクロールを生むうえ、タップ端末では
     ホバーが無く再生されないため、スマホでは無効化する。 */
  .dl-book__photo { display: none; }
  .dl-book, .download__visual { overflow: hidden; }

  /* --- 2. フッターのリンクを押しやすく（20px → 44px） --------------- */
  .footer__top ul li a { display: block; padding: 11px 0; }
  .footer__bottom a { display: inline-block; padding: 10px 0; margin-right: 20px; }

  /* --- 3. 同意チェックを押しやすく -------------------------------- */
  .cf-consent { gap: 13px; padding: 6px 0; line-height: 1.7; }
  .cf-consent input { width: 24px; height: 24px; }
  .cf-consent a { display: inline-block; padding: 6px 0; }

  /* --- 4. 「閉じる」ボタンを指のサイズに ---------------------------- */
  .float-cta__close { width: 38px; height: 38px; top: 4px; right: 4px; font-size: 19px; }
  .float-cta__link { padding-right: 46px; }
  .dl-modal__close { width: 44px; height: 44px; top: 8px; right: 8px; font-size: 22px; }

  /* --- 5. 会社概要のリンク ---------------------------------------- */
  .company__table a { display: inline-block; padding: 7px 0; }
}



/* --- 記事・LPページのヘッダー（header__cta--always）をスマホ幅に収める ---
   ロゴ＋ページ内ナビ＋CTAが横一列のままで、390px幅に対し553pxまで
   はみ出していた。ロゴを詰め、CTAを小型化し、ページ内ナビは非表示に
   （ロゴがトップへのリンクを兼ねる）。 */
@media (max-width: 700px) {
  .header__cta--always { flex: none; }
  .header__cta--always .btn { padding: 10px 13px; font-size: 12px; white-space: nowrap; }
  .header__inner:has(.header__cta--always) { padding-left: 14px; padding-right: 14px; gap: 10px; }
  .header__inner:has(.header__cta--always) .ab-nav { display: none; }
  .header__inner:has(.header__cta--always) .logo { min-width: 0; }
  .header__inner:has(.header__cta--always) .logo__main { font-size: 17px; }
  .header__inner:has(.header__cta--always) .logo__sub { font-size: 9px; letter-spacing: 0; }
}
@media (max-width: 400px) {
  .header__inner:has(.header__cta--always) .logo__sub { display: none; }
}

/* --- 広告LP（黒×蛍光）のスマホ調整 --- */
@media (max-width: 700px) {
  /* 傾けた帯は回転で横幅が膨らみ、横スクロールを生む。スマホでは水平に */
  .x-mq--tilt { transform: none; }
  /* 同意チェック・フッターリンクのタップ領域を確保 */
  .x-agree { gap: 13px; padding: 6px 0; align-items: flex-start; line-height: 1.7; }
  .x-agree input { width: 24px; height: 24px; margin-top: 2px; }
  .x-agree a { display: inline-block; padding: 5px 0; }
  .x-foot a { display: inline-block; padding: 9px 10px; margin: 0 2px; }
  .x-logo b { font-size: 17px; }
  .x-logo small { font-size: 9px; }
}

/* --- パートナーLP・セミナー系の浮きバナー「閉じる」もタップしやすく --- */
@media (max-width: 700px) {
  .pt-float__close { width: 38px; height: 38px; top: 4px; right: 4px; font-size: 19px; }
  .pt-float__link { padding-right: 48px; }
}

/* =========================================================
   スマホのスクロール短縮（トップページ）
   ・情報は削らず「畳む／別ページへ逃がす」方針
   ========================================================= */

/* --- フッター：リンク群を開閉式に（PCは常に開いたまま） --- */
.fnav > summary { list-style: none; cursor: default; }
.fnav > summary::-webkit-details-marker { display: none; }
.fnav > summary h4 { margin: 0; }

@media (max-width: 700px) {
  .fnav { border-bottom: 1px solid rgba(255,255,255,.13); }
  .fnav > summary { cursor: pointer; position: relative;
    padding: 14px 34px 14px 0; user-select: none; }
  .fnav > summary::after { content: "＋"; position: absolute; right: 4px; top: 50%;
    transform: translateY(-50%); font-size: 17px; color: var(--gold); font-weight: 700; }
  .fnav[open] > summary::after { content: "−"; }
  .fnav > ul { padding-bottom: 10px; }
  .footer__top { gap: 0; }
  .footer__brand { margin-bottom: 18px; }
}

/* --- ウェビナー：スマホでは日付＋タイトルの簡易リストに --- */
@media (max-width: 700px) {
  /* サムネはタイトルと講師を載せた表紙なので残す。文字だけ小さくして縦を抑える */
  .webinar .wcard__thumb { aspect-ratio: 16 / 9; }
  .webinar .wcard__copy { padding: 13px 6px 13px 15px; }
  .webinar .wcard__cat { font-size: 10.5px; padding: 3px 9px; }
  .webinar .wcard .wcard__ttl { font-size: 17px; }
  .webinar .wcard__thumb-word { font-size: 20px; bottom: 2px; }
  .webinar .wcard__lect { font-size: 11px; padding: 3px 10px; margin-top: 9px; }
  .webinar .wcard__note { display: none; }           /* タグと重複する説明 */
  .webinar .wcard { border-radius: 12px; }
  .webinar .wcard__body { padding: 15px 16px 16px; }
  .webinar .wcard__sub { font-size: 14px; margin: 8px 0 12px; }
  .webinar .wcard__date { font-size: 12.5px; }
  .webinar .btn--webinar { padding: 11px 14px; font-size: 13px; }
  .webinar__grid { gap: 14px; }
}

/* --- 導入事例：スマホ最適化 --- */
/* 案内は「横スクロールできる状態のときだけ」JSが hidden を外す */
.cases .scroll-hint { color: #a9c2e2; }
.scroll-hint[hidden] { display: none; }
@media (max-width: 700px) {
  .cases__grid { gap: 14px; }
  .case-card { flex-basis: 84%; min-width: 248px; border-radius: 14px; }
  .case-card__visual { height: 142px; border-radius: 14px 14px 0 0; }
  .case-card__plate { width: 150px; height: 70px; top: 12px; left: 16px; border-radius: 9px; padding: 6px 10px; }
  .case-card__plate--wide { width: 190px; }
  .case-card__plate--text > span { font-size: 21px; }
  .case-card__plate--text small { font-size: 10.5px; }
  .case-card__brand { left: 16px; bottom: 10px; font-size: 12.5px; }
  .case-card__quote { font-size: 66px; right: 14px; bottom: 4px; }
  .case-card__body { padding: 18px 17px 17px; }
  .case-card__body h3 { font-size: 16.5px; margin-bottom: 11px; }
  .case-card__body h3 br { display: none; }
  .case-card__result { padding: 10px 12px; margin-bottom: 12px; }
  .case-card__result b { font-size: 13.5px; }
  .case-card__body p { font-size: 13px; line-height: 1.8; margin-bottom: 13px; }
  .case-card__foot span { font-size: 12.5px; }
  .cases__more { margin-top: 20px; }
  .cases__more .btn { width: 100%; }
  .cases__note { font-size: 11px; margin-top: 13px; }
}

/* =========================================================
   導入事例一覧ページ（cases.html）
   ========================================================= */
.cases--list { padding-top: 40px; }
.cases-list__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
.cases-list__grid .case-card { min-width: 0; scroll-snap-align: none; }
.cases-list__count { margin: 0 0 20px; font-size: 13.5px; font-weight: 700; color: #a9c2e2; }
.cases-list__count b { font-family: Georgia, "Times New Roman", serif; font-size: 21px;
  color: var(--gold); margin: 0 3px; }
@media (max-width: 980px) { .cases-list__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; } }
@media (max-width: 700px) { .cases-list__grid { grid-template-columns: 1fr; gap: 16px; }
  .cases--list { padding-top: 26px; } }

/* --- 運営会社：表を開閉式に（PCは常に開いたまま） --- */
.company__acc > summary { list-style: none; }
.company__acc > summary::-webkit-details-marker { display: none; }
@media (min-width: 701px) { .company__acc > summary { display: none; } }
@media (max-width: 700px) {
  .company__acc > summary { cursor: pointer; position: relative; user-select: none;
    display: block; margin-top: 18px; padding: 15px 40px 15px 16px;
    background: #fff; border: 2px solid var(--navy); border-radius: 8px;
    font-size: 14.5px; font-weight: 800; color: var(--navy); }
  .company__acc > summary::after { content: "＋"; position: absolute; right: 16px; top: 50%;
    transform: translateY(-50%); color: var(--gold); font-size: 18px; }
  .company__acc[open] > summary::after { content: "−"; }
  .company__acc > summary + .company__table { margin-top: 12px; }
}





/* =========================================================
   選ばれる理由：横スクロール化（導入事例と同じ操作感に統一）
   縦に4枚積むとスマホで3画面分あったものを、1画面に収める。
   ========================================================= */
.reasons__viewport { position: relative; }
.reasons__grid { display: flex; gap: 24px; overflow-x: auto;
  scroll-snap-type: x proximity; padding: 4px 4px 14px;
  scrollbar-width: thin; -webkit-overflow-scrolling: touch; }
.reasons__grid::-webkit-scrollbar { height: 7px; }
.reasons__grid::-webkit-scrollbar-thumb { background: rgba(13,43,87,.22); border-radius: 4px; }

/* カードは横並びの等幅に。特別枠の「はみ出し配置」は解除する */
.reasons__grid > .reason-card { flex: 0 0 32%; min-width: 306px; scroll-snap-align: start; }
.reasons__grid > .reason-card--featured { grid-column: auto; display: flex;
  flex-direction: column; text-align: left; padding: 52px 26px 26px; }
.reasons__grid > .reason-card--featured .reason-card__top { grid-row: auto; }
.reasons__grid > .reason-card--featured .reason-card__visual img { max-width: 168px; }
.reasons__grid > .reason-card--featured h3 { font-size: 20px; }
.reasons__grid > .reason-card--featured .reason-card__lead,
.reasons__grid > .reason-card--featured .reason-card__list li { font-size: 15px; }

/* 右端のフェード（まだ続きがあることを示す） */
.reasons__fade { position: absolute; top: 0; bottom: 14px; right: 0; width: 56px;
  pointer-events: none; opacity: 1; transition: opacity .25s ease;
  background: linear-gradient(90deg, rgba(244,247,251,0), var(--bg-soft)); }
.reasons__viewport.is-end .reasons__fade { opacity: 0; }

/* 送りボタン（導入事例と同じ見た目・同じ揺れ） */
.reasons__nav { position: absolute; top: 42%; transform: translateY(-50%); z-index: 4;
  width: 44px; height: 44px; border-radius: 50%; border: 0; cursor: pointer;
  background: #fff; color: var(--navy); font-size: 24px; line-height: 1;
  box-shadow: 0 6px 18px rgba(13,43,87,.18); transition: background .2s ease, color .2s ease, opacity .25s ease; }
.reasons__nav:hover { background: var(--gold); color: #fff; }
.reasons__nav--prev { left: -8px; }
.reasons__nav--next { right: -8px; }
.reasons__nav.is-hidden { opacity: 0; pointer-events: none; }
.reasons__nav--next:not(.is-hidden) { animation: navNudge 1.5s ease-in-out infinite; }
.reasons__nav--next:hover { animation: none; }

/* --- 「横にスクロールできます →」の案内 --- */
.scroll-hint { display: flex; align-items: center; justify-content: flex-end; gap: 8px;
  font-size: 12.5px; font-weight: 800; color: var(--muted);
  margin: 0 0 12px; letter-spacing: .02em; }
.scroll-hint__arrow { font-style: normal; color: var(--gold); font-size: 16px;
  animation: hintSlide 1.4s ease-in-out infinite; }
@keyframes hintSlide {
  0%, 100% { transform: translateX(0); }
  50%      { transform: translateX(7px); }
}

@media (max-width: 900px) {
  .reasons__grid > .reason-card { flex-basis: 82%; min-width: 268px; }
  .reasons__grid > .reason-card--featured { padding: 50px 20px 22px; }
  .reasons__nav { display: none; }          /* 指で送れるため矢印ボタンは不要 */
  .scroll-hint { justify-content: center; } /* 案内は中央に置いて目立たせる */
}
@media (prefers-reduced-motion: reduce) {
  .scroll-hint__arrow, .reasons__nav--next { animation: none; }
}

/* =========================================================
   3つのメリット：スマホは「見出し一覧＋タップで本文」に
   画像を消すのではなく小さくして残し、長い本文だけを畳む。
   3つの見出しが1画面に並ぶので、比較して選べるようになる。
   ========================================================= */
.merit-acc > summary { list-style: none; }
.merit-acc > summary::-webkit-details-marker { display: none; }

@media (max-width: 700px) {
  .merits__rows { gap: 12px; }
  .merit-row, .merit-row--reverse {
    display: grid; grid-template-columns: 84px 1fr; gap: 14px;
    align-items: start; padding: 16px 14px;
    background: #fff; border: 1px solid var(--line); border-radius: 12px;
    box-shadow: 0 4px 14px rgba(13,43,87,.06); }
  /* 画像は小さなサムネイルとして残す（消すと単調になるため） */
  .merit-row__img { width: 84px; height: 84px; margin: 0; border-radius: 10px; overflow: hidden; }
  .merit-row__img img { width: 100%; height: 100%; object-fit: cover; }

  /* 見出し部＝タップ領域 */
  .merit-acc > summary { cursor: pointer; position: relative; user-select: none;
    display: block; padding: 2px 30px 2px 0; min-height: 84px; }
  .merit-acc > summary::after { content: "＋"; position: absolute; right: 0; top: 2px;
    width: 26px; height: 26px; border-radius: 50%; background: var(--blue-light);
    color: var(--blue); font-size: 15px; font-weight: 700; line-height: 26px;
    text-align: center; }
  .merit-acc[open] > summary::after { content: "−"; }
  .merit-row__no { font-size: 22px; line-height: 1; margin-bottom: 6px; }
  .merit-acc h3 { font-size: 16px; line-height: 1.55; margin: 0; }
  .merit-acc > p { font-size: 14px; line-height: 1.9; margin: 12px 0 2px;
    padding-top: 12px; border-top: 1px dashed var(--line); }
}

/* =========================================================
   導入の流れ：スマホは「縦のタイムライン」に
   同じ箱が6つ並ぶだけだと"手順"に見えず、ただ長く感じる。
   丸アイコンを縦線でつなぎ、進んでいく感覚を出す。
   ========================================================= */
@media (max-width: 700px) {
  .flow-steps, .flow-steps--four { display: block; }

  /* 子要素は「アイコン／見出し／説明」の3つ。自動配置だと説明文が
     2行目の左カラム（54px幅）に落ちて縦に伸びるため、位置を明示する */
  .flow-step { position: relative; display: grid;
    grid-template-columns: 54px 1fr; grid-template-rows: auto auto;
    column-gap: 15px; row-gap: 4px;
    align-items: start; text-align: left; padding: 0 0 20px; }
  .flow-step__icon { grid-area: 1 / 1 / 3 / 2; align-self: start; }
  .flow-step h3     { grid-area: 1 / 2 / 2 / 3; }
  .flow-step p      { grid-area: 2 / 2 / 3 / 3; }
  .flow-step:last-child { padding-bottom: 0; }

  /* 丸と丸をつなぐ縦線（最後のステップには引かない） */
  .flow-step:not(:last-child)::before {
    content: ""; position: absolute; left: 26px; top: 58px; bottom: -2px;
    width: 2px; background: linear-gradient(180deg, var(--gold), rgba(216,178,74,.3)); }
  .flow-step:not(:last-child)::after { display: none; }  /* PC用の「→」は消す */

  /* 丸アイコンは小さく、線の上に重ねる */
  .flow-step__icon { width: 54px; height: 54px; margin: 0; z-index: 2; border: 2px solid #fff; }
  .flow-step__icon svg { width: 25px; height: 25px; }
  .flow-step__num { font-size: 11px; width: 22px; height: 22px; line-height: 22px; }
  .flow-step:hover .flow-step__icon { transform: none; }

  /* 本文は行間を詰めて、1ステップを1かたまりに見せる */
  .flow-step h3 { font-size: 16px; line-height: 1.5; margin: 4px 0 5px; }
  .flow-step p { font-size: 13.5px; line-height: 1.7; }
}

/* =========================================================
   公開前の最終点検で見つかった修正（2026-08-06）
   ・タップ領域が 40px 未満だったもの
   ・スマホで 11px を下回っていた文字
   ========================================================= */

/* --- ヘッダーのロゴが高さ17pxしかなく、指で押しにくかった --- */
@media (max-width: 700px) {
  .header .logo { min-height: 44px; justify-content: center; }
  .x-head .x-logo { min-height: 44px; display: flex; flex-direction: column; justify-content: center; }
  .x-logo small { font-size: 11px; }   /* 9px は読めないので底上げ */
  .breadcrumb a { display: inline-block; padding: 6px 2px; }
}

/* --- 浮きバナーの「×」を 38px → 44px に --- */
@media (max-width: 700px) {
  .float-cta__close, .pt-float__close { width: 44px; height: 44px; top: 2px; right: 2px; font-size: 20px; }
}

/* --- 同意チェックの行全体を押せる高さに --- */
@media (max-width: 700px) {
  .cf-consent, .x-agree { min-height: 44px; }
  .x-agree input { width: 24px; height: 24px; }
}

/* --- 10px台で潰れていた注記・ラベルを底上げ --- */
@media (max-width: 700px) {
  .stat__note { font-size: 11.5px; }
  .logos__note { font-size: 11.5px; }
  .dl-book__foot { font-size: 11.5px; }
  .float-cta__badge, .pt-float__badge { font-size: 11.5px; }
  .cf-label em, .cf-consent em { font-size: 11px; padding: 2px 9px; }
  .cases__note { font-size: 11.5px; }
  .webinar .wcard__cat { font-size: 11.5px; }
  .x-when__lb { font-size: 11.5px; }
}

/* --- 法務ページのヘッダー：ロゴ副題が長く、狭い画面で戻るボタンを押し出していた --- */
@media (max-width: 760px) {
  .header--legal .header__inner { gap: 10px; }
  .header--legal .logo__sub { display: none; }
  .header--legal .logo__main { font-size: 21px; }
  .header--legal .legal-back { font-size: 12px; padding: 10px 12px; white-space: nowrap; flex: none; }
}

/* --- 見出しと本文の折り返しを整える（孤立した1〜2文字を防ぐ） ---
   balance は行数を均そうとするため、<br> で改行位置を決めている見出しに使うと
   意図しない行が増える（例：「管理者の手間を取らせない、」が2行に割れる）。
   そのため balance は <br> を持たない見出しだけに限定する。 */
.col-card__title, .wcard__sub { text-wrap: balance; }
h1, h2, h3, .x-t, p, li, dd { text-wrap: pretty; }

/* --- 記事ページの目次：リンクの高さが20pxしかなく指で押しにくかった --- */
@media (max-width: 700px) {
  .ab-toc ol { padding-left: 1.2em; }
  .ab-toc li { margin-bottom: 0; }
  .ab-toc a { display: block; padding: 11px 0; font-size: 14.5px; }
  .ab-toc li + li a { border-top: 1px solid var(--line); }
}

/* --- 横に長い比較表：スクロールできることが分かるようにする --- */
.ab-table-wrap { position: relative; }
@media (max-width: 780px) {
  .ab-table-wrap::after { content: "→ 横にスクロールできます"; display: block;
    margin: 10px 0 0; font-size: 12px; font-weight: 700; color: var(--muted); text-align: right; }
  .ab-table-wrap { -webkit-overflow-scrolling: touch; }
}

/* =========================================================
   スマホの読みやすさ・縦スクロール短縮（2026-08-06 第2弾）
   ========================================================= */

/* --- 1) 日本語の改行を文節単位に。「取らせな／い、」のような割れを防ぐ --- */
body { word-break: auto-phrase; }

/* --- 2) 幅に対して文字が大きすぎて不自然に折れていた箇所 --- */
@media (max-width: 700px) {
  .reasons__grid > .reason-card h3,
  .reasons__grid > .reason-card--featured h3 { font-size: 17px; line-height: 1.55; }
  .dl-book__message { font-size: 19px; }
  .dl-book__message span { font-size: 34px; margin-top: 6px; }
}

/* --- 3) ウェビナー：縦積み1,208px → 横スライダーに --- */
@media (max-width: 900px) {
  .webinar__viewport { position: relative; }
  .webinar .webinar__grid { display: flex; grid-template-columns: none;
    gap: 14px; overflow-x: auto; scroll-snap-type: x proximity;
    padding: 4px 4px 14px; margin: 0 -4px; scrollbar-width: thin; }
  .webinar .wcard { flex: 0 0 84%; min-width: 262px; scroll-snap-align: start; }
  .webinar__fade { position: absolute; top: 0; right: -4px; bottom: 20px; width: 56px; z-index: 3;
    pointer-events: none; background: linear-gradient(to right, rgba(10,31,66,0), #0a1f42);
    transition: opacity .25s ease; }
  .webinar__viewport.is-end .webinar__fade { opacity: 0; }
  .webinar .scroll-hint { color: #a9c2e2; }
}
@media (min-width: 901px) { .webinar .scroll-hint, .webinar__fade { display: none; } }

/* --- 4) 選ばれる理由：詳細をタップで開く（カード 758px → 約460px） --- */
.reason-acc { margin: 0; }
.reason-acc > summary { list-style: none; }
.reason-acc > summary::-webkit-details-marker { display: none; }
@media (min-width: 701px) { .reason-acc > summary { display: none; } }
@media (max-width: 700px) {
  .reason-acc > summary { cursor: pointer; user-select: none; position: relative;
    display: block; margin-top: 4px; padding: 12px 38px 12px 14px;
    background: var(--bg-soft); border: 1.5px solid var(--line); border-radius: 8px;
    font-size: 13.5px; font-weight: 800; color: var(--navy); }
  .reason-acc > summary::after { content: "＋"; position: absolute; right: 14px; top: 50%;
    transform: translateY(-50%); font-size: 15px; color: var(--gold); font-weight: 900; }
  .reason-acc[open] > summary::after { content: "−"; }
  .reason-acc[open] > summary { border-radius: 8px 8px 0 0; }
  .reason-acc .reason-card__list { margin-top: 0; padding-top: 12px; }
}

/* --- 5) 経営者の本音：8個の吹き出しを2列に（671px → 約340px） --- */
@media (max-width: 700px) {
  .wo__bubbles { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
  .wo__bubbles .wo__b { font-size: 12.5px; padding: 11px 12px; line-height: 1.55; }
}

/* --- 6) 数字で見る：3つの補助数字を横並びに --- */
@media (max-width: 700px) {
  /* 1fr のままだと中身の長い列（DCプランナー〜）だけ幅が広がって
     3列が不揃いになるため minmax(0,1fr) で必ず等幅にする */
  .rec__row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
  .rec__row .rec__item { text-align: center; }
  .rec__row .rec__head { justify-content: center; }
  .rec__row .rec__rule { display: none; }
  /* 「DCプランナー資格保有率」だけ列幅(約105px)を超えていて、
     端末によって2行に折れ、その列の数字だけ下にずれていた。
     ラベルを縮められるようにしたうえで2行ぶんの高さを確保し、
     下揃えにすることで3つの数字の位置を必ず揃える */
  .rec__row .rec__head { min-height: 30px; align-items: flex-end; margin-bottom: 10px; }
  .rec__row .rec__label { font-size: 10.5px; line-height: 1.4; min-width: 0;
    white-space: normal; text-align: center; }
  .rec__row .rec__num { font-size: 34px; }
  .rec__row .rec__num .unit { font-size: 12px; }
  .rec__row .rec__note { font-size: 10.5px; line-height: 1.5; }
}

/* --- 7) お問い合わせ横の補足：電話ボタンは残し、装飾のマスコットだけ省く --- */
@media (max-width: 700px) {
  .contact-aside__mascot { display: none; }
  .contact-aside { padding: 20px 18px; }
  .contact-aside h3 { margin-bottom: 12px; }
}

/* --- 8) 資料DLの本のビジュアルはスマホでは装飾。縦を詰める --- */
@media (max-width: 700px) {
  .download__visual { max-width: 220px; margin-inline: auto; }
  .download__lead { margin-bottom: 14px; }
}

/* --- 9) 導入効果の帯：<br>がないので balance で行を均す（末尾2文字を防ぐ） --- */
.case-card__result b { text-wrap: balance; }

/* =========================================================
   資料DLの本：スマホでは開かない・小さくしてボタンの横へ
   （タッチだと :hover が張り付いて開きっぱなしになり、
     3D変形のせいで表示が崩れていたため）
   ========================================================= */
@media (max-width: 700px) {
  /* 開く演出を全部止めて、表紙だけの小さなアイコンにする */
  .dl-book { width: 78px; aspect-ratio: 210 / 297; perspective: none; transition: none; }
  .dl-book:hover { transform: none; }
  .dl-book__page, .dl-book__leaf, .dl-book__photo { display: none; }
  .dl-book__flip { transform: none; transition: none; }
  .dl-book:hover .dl-book__flip { transform: none; }
  .dl-book__coverback { display: none; }
  .dl-book__cover { padding: 9px 8px; border-radius: 5px 3px 3px 5px;
    box-shadow: 4px 6px 14px rgba(13,43,87,.28); }
  .dl-book__cover::before { right: 4px; width: 1px; }
  .dl-book__tag { font-size: 6.5px; padding: 2px 4px; border-radius: 2px; letter-spacing: 0; }
  .dl-book__logo { font-size: 7px; margin-top: 4px; }
  .dl-book__cover h3 { font-size: 10px; line-height: 1.4; margin: 6px 0 3px; }
  .dl-book__cover h3 br { display: none; }
  .dl-book__cover p { font-size: 6.5px; line-height: 1.4; }
  .dl-book__cover p br { display: none; }
  .dl-book__foot { font-size: 5.5px; padding-top: 4px; }

  /* 本文の1カラム化と、ボタン横に並べる行 */
  .download__inner { display: block; }
  .download__visual { display: block; flex: none; }
  .download__ctarow { display: flex; align-items: center; gap: 14px; margin: 0 0 12px; }
  .download__ctarow .download__visual { flex: none; }
  .download__ctarow .btn { flex: 1; }
}

/* =========================================================
   フォームの横はみ出し対策
   grid/flex の子は「中身の最小幅」を下回れない仕様のため、
   input の既定幅（約20文字ぶん）が枠より広いと列がその幅まで膨らみ、
   狭い箱に入れたページ（seminar.html 等）で横スクロールが出ていた。
   minmax(0,1fr) と min-width:0 で、枠に合わせて縮むようにする。
   ========================================================= */
.contact-form__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.cf-field { min-width: 0; }
.cf-field input, .cf-field select, .cf-field textarea { width: 100%; min-width: 0; max-width: 100%; }
@media (max-width: 700px) {
  .contact-form__grid { grid-template-columns: minmax(0, 1fr); }
}

/* =========================================================
   スマホ表示の修正（2026-08-06 第3弾）
   ※PC表示は変更しない。すべて max-width 指定内に収める
   ========================================================= */

/* --- (4) ハンバーガーメニューの項目が重なるバグ ---
   .nav a は display:inline のまま padding:14px を当てていたため、
   インライン要素の上下パディングは行の高さに反映されず、
   li が29pxなのに a が53pxになって隣同士が重なっていた。 */
@media (max-width: 1360px) {
  .header.is-open .nav a,
  .header.is-open .nav a.nav-partner { display: block; }
}

@media (max-width: 700px) {
  /* --- (2) ロゴが大きく中央寄りだったので、小さく左端へ --- */
  .header__inner { padding: 0 16px; gap: 12px; height: 64px; }
  .header .logo { align-items: flex-start; justify-content: center; min-height: 44px; }
  .logo__main { font-size: 20px; letter-spacing: .02em; }
  .logo__sub { font-size: 9.5px; margin-top: 3px; gap: 6px; letter-spacing: 0; }
  .logo__sub::before, .logo__sub::after { width: 10px; }
  /* メニューはヘッダーの高さに合わせて開く */
  .header.is-open .nav { top: 64px; }

  /* --- (1) ヒーロー：写真を「文字の背後にうっすら」ではなく
         「上に写真、その下端にテキストを少し重ねる」構成に変更。
         写真はちゃんと見え、文字は明るい下地の上なので読みやすさも保てる。 --- */
  .hero--photo { background: linear-gradient(180deg, #f4f9fe 0%, #edf4fb 55%, #e6eff9 100%);
    --hp-h: 280px;    /* 写真の高さ */
    --hp-lift: 0px;   /* テキストを写真に重ねる量（0＝重ねない） */ }
  .hero-photo__bg { position: relative; inset: auto; height: var(--hp-h);
    background: transparent; overflow: hidden; }
  .hero-photo__bg img { display: block; position: absolute; inset: 0;
    width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 50% 0%;
    right: auto; top: auto; }
  /* 下端を下地の色へ溶かして、その上にテキストを重ねる */
  .hero-photo__bg::after { display: block; content: ""; position: absolute; inset: 0;
    background: linear-gradient(180deg,
      rgba(13,43,87,.14) 0%, rgba(13,43,87,.02) 12%, rgba(244,249,254,0) 68%,
      rgba(244,249,254,.5) 82%, #f4f9fe 94%); }
  /* 写真の下端にテキストを少しかぶせる */
  .hero-photo__inner { position: relative; z-index: 1;
    margin-top: calc(var(--hp-lift) * -1); padding: 0 20px 28px; }
  /* バッジは写真の左上へ。基準は .hero-photo__inner なので、
     写真の高さ分だけ戻して「写真の上端から14px」の位置に置く。
     文字と場所を取り合わなくなる分、見出しを上まで持ち上げられる */
  .hero-photo__badges { position: absolute; left: 20px; margin: 0; z-index: 2;
    top: calc(10px - (var(--hp-h) - var(--hp-lift))); }
  /* 色は元のまま（白地に金）。小さくするのと、写真の上に載るので
     白地の透け具合だけ濃くして文字を読めるようにする */
  .hero-photo__eyebrow-lg { font-size: 12px; padding: 4px 13px; letter-spacing: .02em;
    background: rgba(255,255,255,.94); }
  /* 写真を大きく見せた分、文字まわりの余白を少し詰めてボタンを押し上げる */
  .hero-photo__lead { margin-bottom: 14px; }
  /* 写真が無くなったので、読みにくさ対策の白いにじみも外す */
  .hero-photo__copy h1,
  .hero-photo__sub { text-shadow: none; }
  /* 「導入がゴールではありません。」は 14.23文字ぶんの幅が要る。
     25px固定だと390px幅で6px足りず「あ／りません。」と割れてしまうので、
     画面幅から逆算して必ず1行に収まるサイズにする（上限は従来どおり25px） */
  .hero-photo__copy h1 { font-size: min(25px, calc((100vw - 46px) / 14.3)); line-height: 1.45; }
  .hero-photo__sub { font-size: 16.5px; margin: 8px 0 10px; }
  .hero-photo__lead { font-size: 14px; line-height: 1.7; }

  /* --- (3) 資料DLの本：表紙の中身が枠から43pxはみ出して切れていた ---
         少し大きくし、細かい行はスマホでは省いて収める --- */
  .dl-book { width: 92px; }
  .dl-book__cover { padding: 9px 8px; justify-content: flex-start; }
  .dl-book__tag { font-size: 7px; padding: 2px 5px; }
  .dl-book__logo { font-size: 7.5px; margin-top: 5px; }
  .dl-book__cover h3 { font-size: 11px; line-height: 1.35; margin: 7px 0 0; }
  .dl-book__cover p { display: none; }
  .dl-book__foot { display: none; }
}

/* --- (1補) 見出しの黄色いマーカーが、折り返した2行目で文字より右へ伸びていた ---
   inline-block だと箱の幅（＝コンテナ幅）に背景が敷かれるため。
   inline に戻すと、行ごとに文字の分だけ色が付く。 */
@media (max-width: 700px) {
  .hero-photo__copy h1 .keep-unit { display: inline; padding: 0 .06em; }
}

/* --- (3補) 本の表紙タイトルが「企業型／DC導入ガイド／ブック」と3行に割れて
       間延びしていたので、少し広げて「企業型DC／導入ガイドブック」の2行に揃える --- */
@media (max-width: 700px) {
  .dl-book { width: 100px; }
  .dl-book__cover h3 { font-size: 10.5px; line-height: 1.4; letter-spacing: -.02em; }
  .dl-book__cover h3 br { display: block; }
  .download__ctarow { gap: 12px; }
}


/* --- (5) パートナー募集ページ：スマホで「POWER UP!!」がキャラクターに重なる ---
       PC（901px以上）は1段組の横並びでステージが広く重ならないため変更しない。
       スマホは横幅が足りないので、ステージを縦に伸ばして
       上段＝吹き出し／下段＝キャラクター、と縦に住み分けさせる。 --- */
@media (max-width: 700px) {
  .pt-power__stage { height: 336px; align-items: flex-end; padding-bottom: 6px; }
  .pt-power__heroWrap { width: 180px; }
  /* 集中線はキャラの位置に合わせて下寄せ（ステージ中央のままだとズレるため） */
  .pt-power__burst { inset: auto -22px -16px; height: 262px; }
  .pt-power__boom { top: 0; right: 16px; font-size: 17px; padding: 5px 11px;
    border-width: 2px; border-radius: 5px; box-shadow: 4px 4px 0 rgba(36,27,18,.35); }
  /* 飛んでくるチップも、下がったキャラの高さに合わせる */
  .pt-power__wpn { top: calc(118px + var(--i) * 46px); font-size: 11.5px; padding: 6px 11px; }
}

/* =========================================================
   導入前の従業員説明会（無料）  #brief
   「どうせ社員は入らないでしょ」への回答として、経営者の本音の直後に置く
   ========================================================= */
.brief { background: linear-gradient(180deg, #0d2b57 0%, #12386e 100%); color: #fff; position: relative; overflow: hidden; }
.brief::before { content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image: radial-gradient(rgba(255,255,255,.06) 1.5px, transparent 1.5px); background-size: 22px 22px; }
.brief .container { position: relative; z-index: 1; }

.brief__head { text-align: center; max-width: 780px; margin: 0 auto 44px; }
.brief__eyebrow { display: inline-flex; align-items: center; gap: 14px;
  font-family: Georgia, "Times New Roman", serif; font-size: 13px; font-weight: 700;
  letter-spacing: .28em; color: var(--gold); margin-bottom: 16px; }
.brief__eyebrow::before, .brief__eyebrow::after { content: ""; width: 30px; height: 2px; background: var(--gold); }
.brief__title { font-size: clamp(24px, 3.4vw, 40px); font-weight: 900; line-height: 1.6; margin: 0 0 20px; }
.brief__title em { font-style: normal; background: linear-gradient(transparent 58%, rgba(216,178,74,.45) 58%); padding: 0 .06em; }
.brief__lead { font-size: 16px; line-height: 2.1; color: #d6e4f6; margin: 0; }
.brief__lead strong { color: #fff; font-weight: 800; }

.brief__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin-bottom: 40px; }
.brief__card { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.16);
  border-radius: 16px; padding: 28px 24px 26px; }
.brief__num { display: block; font-family: Georgia, serif; font-size: 26px; font-weight: 700;
  color: var(--gold); line-height: 1; margin-bottom: 14px; }
.brief__card h3 { font-size: 17.5px; font-weight: 800; color: #fff; margin: 0 0 12px; line-height: 1.6; }
.brief__card p { font-size: 14.5px; line-height: 1.95; color: #c8daf0; margin: 0; }

.brief__why { background: rgba(0,0,0,.18); border-left: 4px solid var(--gold);
  border-radius: 0 14px 14px 0; padding: 26px 30px; margin-bottom: 38px; }
.brief__why h3 { font-size: 16.5px; font-weight: 800; color: var(--gold); margin: 0 0 14px; }
.brief__why ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.brief__why li { position: relative; padding-left: 26px; font-size: 14.5px; line-height: 1.95; color: #d6e4f6; }
.brief__why li::before { content: ""; position: absolute; left: 4px; top: .72em;
  width: 9px; height: 9px; border-radius: 50%; background: var(--gold); }
.brief__why b { color: #fff; }

.brief__cta { text-align: center; }
.brief__cta .btn--primary { font-size: 17px; padding: 18px 40px; }
.brief__note { margin: 16px 0 0; font-size: 12.5px; color: #9fbbdd; }

@media (max-width: 900px) {
  .brief__grid { grid-template-columns: 1fr; gap: 14px; }
  .brief__card { padding: 22px 20px; }
}
@media (max-width: 700px) {
  .brief__head { margin-bottom: 30px; }
  .brief__title { font-size: 23px; line-height: 1.55; }
  .brief__lead { font-size: 14.5px; line-height: 2; }
  .brief__why { padding: 20px 18px; border-radius: 0 12px 12px 0; }
  .brief__cta .btn--primary { width: 100%; font-size: 15.5px; padding: 16px 20px; }
}

/* --- ヒーロー下の「まず説明会から」への入口 --- */
.hero-brief { display: inline-flex; align-items: center; gap: 12px; margin-top: 18px;
  background: rgba(255,255,255,.92); border: 1.5px solid rgba(201,153,46,.55); border-radius: 999px;
  padding: 10px 20px 10px 12px; text-decoration: none;
  box-shadow: 0 4px 14px rgba(13,43,87,.08); transition: border-color .2s, box-shadow .2s, transform .2s; }
.hero-brief:hover { border-color: var(--gold); box-shadow: 0 6px 18px rgba(13,43,87,.14); transform: translateY(-1px); }
.hero-brief__tag { flex: none; font-size: 11.5px; font-weight: 800; color: #fff; letter-spacing: .04em;
  background: var(--gold); border-radius: 999px; padding: 4px 11px; }
.hero-brief__txt { font-size: 14.5px; font-weight: 700; color: var(--navy); line-height: 1.6; }
.hero-brief__txt b { color: var(--blue); }
.hero-brief__arrow { flex: none; font-size: 15px; font-weight: 800; color: var(--gold); }

@media (max-width: 700px) {
  .hero-brief { display: flex; width: 100%; margin-top: 14px; gap: 9px;
    padding: 9px 14px 9px 9px; border-radius: 14px; }
  .hero-brief__tag { font-size: 10.5px; padding: 3px 9px; }
  .hero-brief__txt { font-size: 12.5px; line-height: 1.55; }
  .hero-brief__arrow { margin-left: auto; }
}

/* --- 「経営者の本音」と説明会セクションの間が空きすぎていたので詰める ---
       どちらも紺なので、余白がそのまま「何もない帯」に見えてしまっていた --- */
.wo__cut { padding-bottom: 24px; }
.brief { padding-top: 40px; }
@media (max-width: 700px) {
  .brief { padding-top: 24px; }
}

/* --- 説明会セクションのCVボタン：紺の背景から浮き上がるように --- */
.brief__cta-lead { font-size: 15.5px; font-weight: 700; color: #d6e4f6; margin: 0 0 16px; }

.brief__btn { display: inline-flex; align-items: stretch; border-radius: 12px; overflow: hidden;
  text-decoration: none; position: relative; isolation: isolate;
  border: 2px solid rgba(255,255,255,.9);
  box-shadow: 0 14px 34px rgba(0,0,0,.34), 0 0 0 6px rgba(216,178,74,.18);
  transition: transform .16s ease, box-shadow .16s ease; }
.brief__btn:hover { transform: translateY(-3px);
  box-shadow: 0 18px 40px rgba(0,0,0,.4), 0 0 0 8px rgba(216,178,74,.3); }

.brief__btn-tag { flex: none; display: flex; align-items: center; justify-content: center; text-align: center;
  background: var(--gold); color: #3a2a06; font-size: 13px; font-weight: 900; line-height: 1.25;
  letter-spacing: .02em; padding: 0 16px; }
.brief__btn-main { display: flex; align-items: center; gap: 14px; padding: 20px 30px;
  background: linear-gradient(135deg, #f08a1c 0%, #e97b0c 55%, #cf6a03 100%);
  color: #fff; font-size: 18.5px; font-weight: 900; letter-spacing: .01em; }
.brief__btn-arrow { font-size: 18px; font-weight: 900;
  animation: briefArrow 1.5s ease-in-out infinite; }
@keyframes briefArrow { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(5px); } }

/* 注目させるための、ごく控えめな脈動 */
.brief__btn::after { content: ""; position: absolute; inset: -2px; border-radius: 12px; z-index: -1;
  border: 2px solid rgba(255,255,255,.85); opacity: 0; animation: briefPulse 2.6s ease-out infinite; }
@keyframes briefPulse {
  0% { transform: scale(1); opacity: .55; }
  70%, 100% { transform: scale(1.12); opacity: 0; }
}

@media (max-width: 700px) {
  .brief__cta-lead { font-size: 14px; margin-bottom: 12px; }
  .brief__btn { display: flex; width: 100%; border-radius: 14px; }
  .brief__btn-tag { font-size: 11.5px; padding: 0 12px; }
  .brief__btn-main { flex: 1; justify-content: center; gap: 10px; padding: 16px 12px; font-size: 15px; }
}
@media (prefers-reduced-motion: reduce) {
  .brief__btn-arrow, .brief__btn::after { animation: none; }
  .brief__btn::after { opacity: 0; }
}