@charset "utf-8";
/*
 * ======================================
 * 追加クラス一覧（共通SCSS取り込み検討用）
 * ======================================
 *
 * [値の粒度不足]
 * .et-mb-* / .et-mt-* / .et-pt-* / .et-pb-* / .et-gap-*
 *                          - design 実数値（4/6/8/12/14/16/18/22/24/26/28/32/34/38/44/48/52/54/56/64/66/72/76/88px）の余白・gap
 * .et-container-sm         - コンテナ幅 780px（container-narrow 900px との中間粒度）
 * .container / .container-narrow の左右padding 28px 上書き
 *
 * [構造不足]
 * .et-heading-en(+--sm/--lg/--xl/--num/--icon) / .et-heading-icon--*
 *                          - 立体ステッチ英字見出し（塗り+1pxストローク+4〜5pxオフセット影）＋横並びアイコン
 * .et-ttl-lg / --md / .et-ttl-sub / --22 / .et-card-ttl / .et-card-text / .et-body-text / .et-lead-text
 *                          - 見出し・本文の実数値セット
 * .et-header*              - オーバーレイ型ヘッダー（左上ロゴ角丸ボックス＋右上ピルナビ＋円形CTA。ナビ／CTAはfixedで追従）
 * .et-mv*                  - MV（角丸カット・グラデ暗幕・立体見出し）
 * .et-frame / __inner / __grid
 *                          - ベタ塗り枠の内側に白パネルを敷く重ね枠（GREETING / WORK STYLE）
 * .et-band                 - 写真＋ネイビー78%暗幕の横並びCTA帯
 * .et-biz*                 - 円形写真＋ホバー星あしらいの3列事業紹介
 * .et-ct*                  - 写真の上に白ラベルが重なるコンテンツカード
 * .et-page-hero*           - 写真＋ネイビー82%暗幕の下層ヒーロー
 * .et-spec*                - ピルラベル＋点線区切りの定義リスト（table-basic では再現不可）
 * .et-stat*                - 数値＋イラスト2分割の実績カード
 * .et-row2 / .et-photo / .et-flow
 *                          - 画像＋テキストの等幅2カラム（gap 52px）と縦積みラッパー
 * .et-sched* / .et-badge-day
 *                          - 縦線つなぎのスケジュール表
 * .et-slider*              - CSSトランスフォーム式カードスライダー（矢印＋ドット）
 * .et-card-outline / --soft / .et-card-recommend / .et-card-voice(--cta) / .et-card-news*
 *                          - 太枠カード・淡色カード・イラストカード・声カード・お知らせカード
 * .et-telbox*              - ピル枠＋ラベル突き出しの電話ボックス
 * .et-form*                - ラベル＋必須バッジ＋淡色入力欄のフォーム
 * .et-news-row* / .et-pager / .et-entry* / .et-side-ttl
 *                          - お知らせ一覧行・円形ページネーション・記事詳細
 * .et-cta* / .et-footer*   - フッター上CTAパネル・3カラムフッター（ナビは3項目×2列）
 *
 * [装飾パターン不足]
 * .et-wave / --flip        - 26px の低い波型ディバイダー（wave-divider は 60px 固定）
 * .et-illust / .et-illust-reveal
 *                          - セクション四隅のイラスト＋円形クリップの出現アニメ
 * .et-pop                  - スクロールインでの跳ねる拡大アニメ
 * .et-link-underline       - サブカラー2px下線のテキストリンク
 *
 * [装飾パターン不足・追記]
 * .et-btn--3d              - 下端の厚み＋落ち影＋上面ハイライトの立体ボタン（hover/activeで押し込む）
 *
 * .et-btn-row(+--center/--gap16)
 *                          - 横並びボタンを等幅（広い方に合わせる）にするグリッド
 *
 * [状態不足]
 * .et-btn.btn--white:hover / .et-btn--ghost:hover
 *                          - hover時に「淡色背景・文字色は据え置き」の反転しないボタン
 * .et-card-news:hover / .et-ct__card:hover / .et-card-recommend:hover
 *                          - hover時の枠線色変化＋画像ズーム／浮き上がり
 * .et-header__nav .header__nav-item a::after
 *                          - ナビ下線の中央合わせ（共通CSSは hover が left:10%+width:80%、
 *                            current が transform:translateX(-50%) を残すため両立時に中央からズレる）
 *
 * [色の粒度不足]
 * .et-c-body(#41506B) / .et-c-mute(#5B6B8C)
 *                          - $txt(#1B2437) と $txt_light(#6C7E9E) の中間本文色2段
 *
 * ======================================
 * 共通SCSSに不足していたもの
 * ======================================
 * ・値の粒度不足：余白・gap が 5px 刻み（20/25/30…）のみで、design の 4/6/22/26/34/52/76px 等に当たらない
 * ・値の粒度不足：fz が 56→64→80 と飛ぶため 68/72/88px の大型英字が作れない
 * ・値の粒度不足：コンテナ幅が 1200/1500/900 の3段のみ（1180/780 が無い）／左右padding が wide 以下でのみ 10px
 * ・構造不足：英字見出しに「塗り＋ストローク＋オフセット影」の立体表現がない（heading-stroke は輪郭のみ）
 * ・構造不足：ヘッダーが「バー型／sticky／サイドバー」の3型のみで、ロゴ・ナビが独立して浮くオーバーレイ型がない
 * ・構造不足：定義リストが table 前提で、ラベルをピル型バッジにする構造がない
 * ・構造不足：JS前提の軽量カードスライダー（矢印＋ドット）がない
 * ・装飾パターン不足：wave-divider の高さが 60/70/80px 固定で、26px の低い波が作れない
 * ・状態不足：ボタン hover が「色反転」前提で、淡色背景に変えるだけの hover がない
 */

/* ==========================================================================
   0. 値の粒度不足を埋めるユーティリティ
   ========================================================================== */
.et-mb-4  { margin-bottom: 4px; }
.et-mb-6  { margin-bottom: 6px; }
.et-mb-8  { margin-bottom: 8px; }
.et-mb-12 { margin-bottom: 12px; }
.et-mb-14 { margin-bottom: 14px; }
.et-mb-16 { margin-bottom: 16px; }
.et-mb-18 { margin-bottom: 18px; }
.et-mb-22 { margin-bottom: 22px; }
.et-mb-24 { margin-bottom: 24px; }
.et-mb-26 { margin-bottom: 26px; }
.et-mb-28 { margin-bottom: 28px; }
.et-mb-32 { margin-bottom: 32px; }
.et-mb-34 { margin-bottom: 34px; }
.et-mb-38 { margin-bottom: 38px; }
.et-mb-54 { margin-bottom: 54px; }
.et-mb-56 { margin-bottom: 56px; }
.et-mt-12 { margin-top: 12px; }
.et-mt-16 { margin-top: 16px; }
.et-mt-22 { margin-top: 22px; }
.et-mt-26 { margin-top: 26px; }
.et-mt-44 { margin-top: 44px; }
.et-mt-52 { margin-top: 52px; }
.et-mt-70 { margin-top: 70px; }
.et-pt-8  { padding-top: 8px; }
.et-pt-36 { padding-top: 36px; }
.et-pt-56 { padding-top: 56px; }
.et-pt-66 { padding-top: 66px; }
.et-pt-76 { padding-top: 76px; }
.et-pt-88 { padding-top: 88px; }
.et-pb-64 { padding-bottom: 64px; }
.et-pb-72 { padding-bottom: 72px; }
.et-pb-88 { padding-bottom: 88px; }
.et-gap-6  { gap: 6px; }
.et-gap-12 { gap: 12px; }
.et-gap-14 { gap: 14px; }
.et-gap-16 { gap: 16px; }
.et-gap-18 { gap: 18px; }
.et-gap-22 { gap: 22px; }
.et-gap-24 { gap: 24px; }
.et-gap-26 { gap: 26px; }
.et-gap-32 { gap: 32px; }
.et-gap-36 { gap: 36px; }
.et-gap-44 { gap: 44px; }
.et-gap-48 { gap: 48px; }
.et-gap-52 { gap: 52px; }
.et-gap-56 { gap: 56px; }
.et-gap-72 { gap: 72px; }

/* -- ページ内アンカーの着地位置（固定ナビ・CTAの下に隠れないように） -------- */
.et-anchor { scroll-margin-top: 120px; }

/* -- 本文色2段（$txt と $txt_light の中間） -------------------------------- */
.et-ls-8 { letter-spacing: 0.08em; }
.et-c-body { color: #41506B; }
.et-c-mute { color: #5B6B8C; }

/* -- コンテナ左右padding（design: 28px 固定） ------------------------------ */
.container,
.container-narrow { padding-left: 28px; padding-right: 28px; }
.et-container-sm  { max-width: 780px; margin: 0 auto; padding: 0 28px; }

/* ==========================================================================
   1. 見出し（立体ステッチ英字＋日本語）
   ========================================================================== */
.et-heading-en {
  display: block;
  font-family: "Roboto", sans-serif;
  font-size: 5.6rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0.005em;
  color: #E8F1FC;
  -webkit-text-stroke: 1px #4A90D9;
  text-shadow: 4px 4px 0 #4A90D9;
  padding: 15px 15px 15px 0;
  margin: 0 0 6px;
}
.et-heading-en--sm  { font-size: 5.2rem; }
.et-heading-en--lg  { font-size: 6.8rem; }
.et-heading-en--xl  { font-size: 7.2rem; text-shadow: 5px 5px 0 #4A90D9; }
.et-heading-en--num { font-size: 8.8rem; text-shadow: 5px 5px 0 #4A90D9; padding: 0; }
.et-heading-en--icon { display: flex; align-items: center; gap: 10px; }
.et-heading-en--icon-6  { gap: 6px; }
.et-heading-en--icon-14 { gap: 14px; }
.et-heading-en--tight { margin-bottom: 4px; }

.et-heading-icon { width: auto; display: block; flex-shrink: 0; }
.et-heading-icon--46 { height: 46px; margin-top: -6px; }
.et-heading-icon--66 { height: 66px; margin-bottom: 8px; }
.et-heading-icon--72 { height: 72px; margin-top: -10px; }
.et-heading-icon--74 { height: 74px; margin-top: -14px; }
.et-heading-icon--96 { height: 96px; margin-top: -30px; }

.et-ttl-lg  { font-size: 3rem;   font-weight: 900; color: #1F3C88; letter-spacing: 0.02em; line-height: 1.5; margin-top: 0; }
.et-ttl-md  { font-size: 2.8rem; font-weight: 900; color: #1F3C88; letter-spacing: 0.02em; line-height: 1.5; margin-top: 0; }
.et-ttl-sub { font-size: 2rem;   font-weight: 700; color: #1F3C88; letter-spacing: 0.08em; line-height: 1.9; margin-top: 0; }
.et-ttl-sub--22 { font-size: 2.2rem; letter-spacing: 0.06em; }
.et-ttl-white { color: #FFFFFF; }
/* .et-ttl-sp-fit … スマホで想定行数に収めるため、画面幅に追従させる見出し（指定はSP側のみ） */
/* 見出し先頭のアイコン（Font Awesome） */
.et-ttl-icon { display: flex; align-items: center; gap: 12px; }
.et-ttl-icon > i { color: #4A90D9; font-size: 0.92em; flex-shrink: 0; line-height: 1; }

.et-card-ttl  { font-size: 2.3rem; font-weight: 900; color: #1F3C88; line-height: 1.6; margin-top: 15px; }
.et-card-ttl--19 { font-size: 1.9rem; margin-top: 0; }
.et-card-ttl--check { display: flex; align-items: center; gap: 10px; font-size: 2rem; margin-top: 0; }
.et-card-ttl--check .fa-check { color: #4A90D9; font-size: 1.6rem; flex-shrink: 0; }
.et-card-text { font-size: 1.6rem; line-height: 1.95; color: #5B6B8C; }
.et-body-text { font-size: 1.6rem; line-height: 2.1; color: #41506B; }
.et-lead-text { font-size: 1.7rem; line-height: 2.15; color: #41506B; }

.et-link-underline {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 700;
  color: #1F3C88;
  border-bottom: 2px solid #4A90D9;
  padding-bottom: 3px;
}
.et-link-underline:hover { color: #4A90D9; opacity: 1; }

/* ==========================================================================
   2. ボタン
   ========================================================================== */
.et-btn {
  max-width: none;
  width: auto;
  font-family: inherit;
  padding: 17px 34px;
  border-radius: 9999px;
  border-width: 2px;
  font-size: 1.6rem;
  font-weight: 700;
  gap: 10px;
  line-height: 1.4;
}
/* -- ボタン横並び：列を等幅にし、幅の広いボタンに合わせる ------------------ */
.et-btn-row {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 1fr;
  gap: 14px;
  width: -webkit-fit-content;
  width: fit-content;
  max-width: 100%;
}
.et-btn-row--center { margin-left: auto; margin-right: auto; }
.et-btn-row--gap16 { gap: 16px; }
.et-btn-row > .btn { width: 100%; max-width: none; }

.et-btn--sm { padding: 14px 30px; font-size: 1.5rem; border-width: 1.5px; }
.et-btn--thin { border-width: 1.5px; }
.et-btn--md { padding: 15px 32px; font-size: 1.5rem; }
.et-btn--lg { padding: 18px 38px; }
.et-btn--submit { padding: 18px 60px; border: none; }
.et-btn--tel { padding: 16px 34px; }
.et-btn--tel .fa-phone { font-size: 0.9em; }
.et-btn.btn--white { border-color: #1F3C88; color: #1F3C88; }
.et-btn.btn--white:hover { background: #EDF3FB; border-color: #1F3C88; color: #1F3C88; opacity: 1; }
.et-btn--ghost {
  background: rgba(255, 255, 255, 0.12);
  border: 1.5px solid rgba(255, 255, 255, 0.6);
  color: #FFFFFF;
}
.et-btn--ghost:hover { background: rgba(255, 255, 255, 0.26); border-color: #FFFFFF; color: #FFFFFF; opacity: 1; }
.et-btn--white-solid { background: #FFFFFF; border-color: #FFFFFF; color: #1F3C88; }
.et-btn--white-solid:hover { background: #EDF3FB; border-color: #EDF3FB; color: #1F3C88; opacity: 1; }
.et-btn--sub { background: #4A90D9; border-color: #4A90D9; color: #FFFFFF; }
.et-btn--sub:hover { background: #1F3C88; border-color: #1F3C88; color: #FFFFFF; opacity: 1; }

/* -- 立体ボタン（MV）：色味は据え置きで、下端の厚み＋落ち影＋上面ハイライトを重ね、
      hover/active で押し込む。厚みの色は各ボタンの地色に合わせる -------------- */
.et-btn--3d {
  position: relative;
  transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.3s ease, border-color 0.3s ease, color 0.3s ease;
}
.et-btn--3d.et-btn--sub {
  box-shadow: 0 5px 0 #2B5F9C, 0 12px 24px rgba(10, 26, 64, 0.4),
              inset 0 1px 0 rgba(255, 255, 255, 0.38), inset 0 -2px 0 rgba(10, 26, 64, 0.18);
}
.et-btn--3d.et-btn--sub:hover {
  transform: translateY(3px);
  box-shadow: 0 2px 0 #152C63, 0 6px 14px rgba(10, 26, 64, 0.35),
              inset 0 1px 0 rgba(255, 255, 255, 0.3), inset 0 -2px 0 rgba(10, 26, 64, 0.22);
}
.et-btn--3d.et-btn--sub:active {
  transform: translateY(5px);
  box-shadow: 0 0 0 #152C63, 0 3px 8px rgba(10, 26, 64, 0.3),
              inset 0 2px 4px rgba(10, 26, 64, 0.3);
}
.et-btn--3d.et-btn--ghost {
  backdrop-filter: blur(4px);
  box-shadow: 0 5px 0 rgba(21, 44, 99, 0.55), 0 12px 24px rgba(10, 26, 64, 0.35),
              inset 0 1px 0 rgba(255, 255, 255, 0.45), inset 0 -2px 0 rgba(10, 26, 64, 0.12);
}
.et-btn--3d.et-btn--ghost:hover {
  transform: translateY(3px);
  box-shadow: 0 2px 0 rgba(21, 44, 99, 0.6), 0 6px 14px rgba(10, 26, 64, 0.3),
              inset 0 1px 0 rgba(255, 255, 255, 0.5), inset 0 -2px 0 rgba(10, 26, 64, 0.14);
}
.et-btn--3d.et-btn--ghost:active {
  transform: translateY(5px);
  box-shadow: 0 0 0 rgba(21, 44, 99, 0.6), 0 3px 8px rgba(10, 26, 64, 0.25),
              inset 0 2px 4px rgba(10, 26, 64, 0.22);
}
.et-btn--3d.et-btn--white-solid {
  box-shadow: 0 5px 0 #A9BEDE, 0 12px 24px rgba(10, 26, 64, 0.4),
              inset 0 1px 0 rgba(255, 255, 255, 0.9), inset 0 -2px 0 rgba(31, 60, 136, 0.1);
}
.et-btn--3d.et-btn--white-solid:hover {
  transform: translateY(3px);
  box-shadow: 0 2px 0 #97AFD4, 0 6px 14px rgba(10, 26, 64, 0.35),
              inset 0 1px 0 rgba(255, 255, 255, 0.9), inset 0 -2px 0 rgba(31, 60, 136, 0.12);
}
.et-btn--3d.et-btn--white-solid:active {
  transform: translateY(5px);
  box-shadow: 0 0 0 #97AFD4, 0 3px 8px rgba(10, 26, 64, 0.3),
              inset 0 2px 4px rgba(31, 60, 136, 0.22);
}
/* ネイビーベタ（btn--solid） */
.et-btn--3d.btn--solid {
  box-shadow: 0 5px 0 #142A5E, 0 12px 24px rgba(10, 26, 64, 0.3),
              inset 0 1px 0 rgba(255, 255, 255, 0.28), inset 0 -2px 0 rgba(10, 26, 64, 0.25);
}
.et-btn--3d.btn--solid:hover {
  transform: translateY(3px);
  box-shadow: 0 2px 0 #2B5F9C, 0 6px 14px rgba(10, 26, 64, 0.28),
              inset 0 1px 0 rgba(255, 255, 255, 0.3), inset 0 -2px 0 rgba(10, 26, 64, 0.2);
}
.et-btn--3d.btn--solid:active {
  transform: translateY(5px);
  box-shadow: 0 0 0 #2B5F9C, 0 3px 8px rgba(10, 26, 64, 0.25),
              inset 0 2px 4px rgba(10, 26, 64, 0.3);
}
/* 白地＋ネイビー枠（btn--white） */
.et-btn--3d.btn--white {
  box-shadow: 0 5px 0 #AFC2E0, 0 12px 24px rgba(10, 26, 64, 0.22),
              inset 0 1px 0 rgba(255, 255, 255, 0.9), inset 0 -2px 0 rgba(31, 60, 136, 0.08);
}
.et-btn--3d.btn--white:hover {
  transform: translateY(3px);
  box-shadow: 0 2px 0 #9BB2D6, 0 6px 14px rgba(10, 26, 64, 0.2),
              inset 0 1px 0 rgba(255, 255, 255, 0.9), inset 0 -2px 0 rgba(31, 60, 136, 0.1);
}
.et-btn--3d.btn--white:active {
  transform: translateY(5px);
  box-shadow: 0 0 0 #9BB2D6, 0 3px 8px rgba(10, 26, 64, 0.18),
              inset 0 2px 4px rgba(31, 60, 136, 0.18);
}

/* ==========================================================================
   3. ヘッダー（オーバーレイ型）
   ========================================================================== */
.et-header { position: absolute; top: 0; left: 0; right: 0; pointer-events: none; }
.et-header__inner {
  max-width: 100%;
  padding: 0;
  height: auto;
  align-items: flex-start;
  gap: 24px;
}
.et-header__logo {
  pointer-events: auto;
  display: flex;
  align-items: center;
  gap: 14px;
  background: #FFFFFF;
  padding: 20px 34px 20px 28px;
  border-radius: 0 0 22px 0;
  box-shadow: 0 8px 26px rgba(21, 44, 99, 0.14);
}
.et-header__logo img { height: 60px; width: auto; display: block; }
.et-header__logo:hover { opacity: 0.85; }
/* ナビ＋メールCTAはスクロール追従（ロゴボックスはページ左上に留まる） */
.et-header__right {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 100;
  pointer-events: auto;
  align-items: center;
  gap: 14px;
  padding: 24px 24px 0 0;
  height: auto;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.et-header__nav {
  margin: 0;
  gap: 22px;
  background: #FFFFFF;
  border-radius: 28px;
  padding: 12px 28px;
  box-shadow: 0 8px 26px rgba(21, 44, 99, 0.16);
}
.et-header__nav .header__nav-item a { padding: 0; gap: 3px; }
/* 下線は常に中央基準（共通CSSは hover:left10%+width80% / current:translateX(-50%) が
   併走してズレるため、left は 50% 固定 + transform で中央合わせに統一する） */
.et-header__nav .header__nav-item a::after {
  bottom: -6px;
  left: 50%;
  width: 0;
  transform: translateX(-50%);
  background: #4A90D9;
  transition: width 0.3s ease;
}
.et-header__nav .header__nav-item a:hover::after,
.et-header__nav .header__nav-item--current a::after {
  left: 50%;
  width: 80%;
  transform: translateX(-50%);
}
.et-header__nav .header__nav-en { font-size: 1.2rem; letter-spacing: 0.14em; color: #4A90D9; }
.et-header__nav .header__nav-ja {
  font-size: 1.6rem;
  font-weight: 700;
  color: #1F3C88;
  letter-spacing: 0.04em;
  white-space: nowrap;
  margin-top: 0;
}
.et-header__cta {
  width: 82px;
  height: 82px;
  flex-shrink: 0;
  padding: 0;
  border-radius: 9999px;
  background: #1F3C88;
  border: 3px solid #FFFFFF;
  box-shadow: 0 8px 26px rgba(21, 44, 99, 0.18);
  font-size: 2.8rem;
}
.et-header__cta-text {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
.et-nav-toggle {
  top: 14px;
  right: 14px;
  background: #FFFFFF;
  box-shadow: 0 6px 18px rgba(21, 44, 99, 0.18);
  border-radius: 9999px;
}
.et-nav-toggle .nav-toggle__line { background: #1F3C88; }

/* -- SPナビ（ハンバーガー内） --------------------------------------------- */
.sp-nav__en { font-size: 1.5rem; }
.sp-nav__link::after { margin-left: 10px; }

/* ==========================================================================
   4. メインビュー
   ========================================================================== */
.et-mv { padding: 0; }
.et-mv__frame {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 780px;
  padding: 170px 28px 150px;
  background: #274494;
  border-radius: 0 0 72px 72px;
  overflow: hidden;
}
#slideshow {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 780px;
  z-index: 0;
}
#slideshow .swiper-slide,
#slideshow .main_slider__inner { width: 100%; height: 100%; }
#slideshow img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
}
.et-mv__overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  background: linear-gradient(180deg, rgba(21, 44, 99, 0.58) 0%, rgba(21, 44, 99, 0.44) 45%, rgba(21, 44, 99, 0.68) 100%);
}
.et-mv__body {
  position: relative;
  z-index: 2;
  max-width: 960px;
  color: #FFFFFF;
}
.et-mv__ttl {
  font-size: 6rem;
  line-height: 1.35;
  font-weight: 900;
  letter-spacing: 0.02em;
  color: #FFFFFF;
  -webkit-text-stroke: 1.5px #1F3C88;
  text-shadow: 4px 4px 0 rgba(21, 44, 99, 0.9), 0 2px 16px rgba(10, 26, 64, 0.55);
  paint-order: stroke fill;
  margin: 0 0 22px;
}
.et-mv__en {
  font-family: "Roboto", sans-serif;
  font-size: 2.2rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  color: #EAF2FF;
  text-shadow: 0 2px 12px rgba(10, 26, 64, 0.6);
  margin: 0 0 30px;
}
.et-mv__lead {
  font-size: 1.7rem;
  line-height: 2;
  color: #EEF4FF;
  text-shadow: 0 1px 10px rgba(10, 26, 64, 0.65);
  margin: 0 auto 38px;
  max-width: 36em;
}

/* ==========================================================================
   5. お知らせカード（TOP）
   ========================================================================== */
.et-card-news {
  display: block;
  border: 3px solid #1F3C88;
  border-radius: 18px;
  overflow: hidden;
  background: #FFFFFF;
  color: #1B2437;
  transition: border-color 0.3s ease;
}
.et-card-news:hover { border-color: #4A90D9; opacity: 1; }
.et-card-news__img {
  aspect-ratio: 16 / 10;
  background-size: cover;
  background-position: center;
  background-color: #EDF3FB;
}
.et-card-news__body { padding: 20px 22px 24px; }
.et-card-news__ttl { font-size: 1.6rem; line-height: 1.7; font-weight: 700; color: #1B2437; }
.et-date {
  font-family: "Roboto", sans-serif;
  font-size: 1.6rem;
  font-weight: 700;
  color: #4A90D9;
  letter-spacing: 0.06em;
}

/* ==========================================================================
   6. 重ね枠（GREETING / WORK STYLE）
   ========================================================================== */
.et-frame { background: #1F3C88; padding: 34px; }
.et-frame__inner { background: #FFFFFF; border-radius: 6px; padding: 76px 80px; }
.et-frame__inner--sm { padding: 66px 80px; }
.et-frame__grid {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 56px;
  align-items: center;
}

/* ==========================================================================
   7. 事業紹介（円形写真＋星）
   ========================================================================== */
.et-biz { display: grid; grid-template-columns: repeat(3, 1fr); gap: 44px; }
.et-biz__item { text-align: center; }
.et-biz__circle {
  position: relative;
  margin: 0 auto 26px;
  transition: transform 0.28s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.et-biz__circle:hover { transform: scale(1.07) rotate(-2deg); }
.et-biz__photo {
  width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: 9999px;
  overflow: hidden;
  background-size: cover;
  background-position: center;
}
.et-biz__star {
  position: absolute;
  top: -11%;
  left: -17%;
  width: 46%;
  height: auto;
  pointer-events: none;
  z-index: 3;
  transform-origin: 70% 70%;
  opacity: 0;
  transform: scale(0.25) rotate(-30deg);
  transition: opacity 0.18s ease, transform 0.2s ease;
}
.et-biz__circle:hover .et-biz__star {
  opacity: 1;
  transform: scale(1) rotate(0deg);
  transition: opacity 0.18s ease, transform 0.42s cubic-bezier(0.34, 1.7, 0.64, 1);
}
.et-biz__ttl { font-size: 2.5rem; font-weight: 900; color: #1F3C88; letter-spacing: 0.02em; margin-bottom: 14px; }
.et-biz__text { font-size: 1.6rem; line-height: 1.95; color: #5B6B8C; text-align: left; }

/* ==========================================================================
   8. 採用CTA帯（写真＋暗幕）
   ========================================================================== */
.et-band {
  position: relative;
  background-size: cover;
  background-position: center;
  color: #FFFFFF;
}
.et-band::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(21, 44, 99, 0.78);
}
.et-band__inner {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 36px;
  flex-wrap: wrap;
}
.et-band--85::before { background: rgba(21, 44, 99, 0.85); }
.et-self-start { align-self: flex-start; }
.et-band__lead { font-size: 1.6rem; line-height: 1.9; color: rgba(255, 255, 255, 0.92); }

/* ==========================================================================
   9. コンテンツカード（TOP）
   ========================================================================== */
.et-ct { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; }
.et-ct__card {
  position: relative;
  display: block;
  border: 2px solid #1F3C88;
  border-radius: 14px;
  padding: 26px;
  background: #FFFFFF;
  transition: border-color 0.3s ease;
}
.et-ct__card:hover { border-color: #4A90D9; opacity: 1; }
.et-ct__thumb { aspect-ratio: 3 / 4; border-radius: 10px; overflow: hidden; }
.et-ct__img {
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  transform: scale(1);
  transition: transform 0.5s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.et-ct__card:hover .et-ct__img { transform: scale(1.07); }
.et-ct__body {
  position: absolute;
  right: 26px;
  bottom: 26px;
  left: 64px;
  background: #FFFFFF;
  padding: 22px 18px 20px;
  text-align: center;
}
.et-ct__num-row { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; }
.et-ct__line { flex: 1; height: 1px; background: #DCE4F0; }
.et-ct__num { font-family: "Roboto", sans-serif; font-size: 1.5rem; font-weight: 900; color: #1F3C88; letter-spacing: 0.08em; }
.et-ct__en {
  font-family: "Roboto", sans-serif;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: #4A90D9;
  margin: 0 0 10px;
}
.et-ct__ja { font-size: 1.6rem; font-weight: 700; color: #1F3C88; letter-spacing: 0.04em; margin: 0 0 18px; }
.et-ct__rule { display: block; height: 1px; background: #DCE4F0; }

/* ==========================================================================
   10. 下層ページヒーロー
   ========================================================================== */
.et-page-hero { background-size: cover; background-position: center; color: #FFFFFF; }
.et-page-hero__overlay { background: rgba(21, 44, 99, 0.82); }
.et-page-hero__inner { position: relative; z-index: 2; padding: 190px 0 72px; }
.et-page-hero__ja { font-size: 2.1rem; font-weight: 700; letter-spacing: 0.08em; color: #FFFFFF; margin-top: 0; }
.et-page-hero__lead { font-size: 1.7rem; line-height: 2; color: #DCE6F5; max-width: 42em; }
/* PC時に1行で収める（42em の折り返し制限を解除） */
.et-page-hero__lead--wide { max-width: none; }

/* ==========================================================================
   11. 定義リスト（会社概要 / 募集要項）
   ========================================================================== */
.et-spec { display: flex; flex-direction: column; }
.et-spec__row {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 28px;
  align-items: start;
  padding: 18px 0;
  border-bottom: 2px dotted #DCE4F0;
}
.et-spec__row:last-child { border-bottom: none; }
.et-spec__label {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #1F3C88;
  color: #FFFFFF;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  padding: 13px 20px;
  border-radius: 9999px;
  text-align: center;
}
.et-spec__body { font-size: 1.6rem; line-height: 2; color: #41506B; padding-top: 9px; }
.et-spec__note { font-size: 1.3rem; color: #6C7E9E; }

/* ==========================================================================
   12. 実績カード / 2カラム
   ========================================================================== */
.et-stat {
  background: #F4F7FC;
  border-radius: 20px;
  padding: 34px 20px 34px 34px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  align-items: center;
}
.et-stat__label { font-size: 1.8rem; font-weight: 700; color: #41506B; letter-spacing: 0.06em; margin-bottom: 8px; }
.et-stat__value {
  font-family: "Roboto", sans-serif;
  font-size: 5.2rem;
  font-weight: 900;
  color: #1F3C88;
  line-height: 1;
  letter-spacing: 0.01em;
  margin-bottom: 12px;
}
.et-stat__text { font-size: 1.6rem; line-height: 1.8; color: #6C7E9E; }

.et-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 52px; align-items: center; }
/* PCのみ左右入れ替え（HTMLは常に画像→説明文の順。SPはその順で縦積みされる） */
.et-row2--reverse > :first-child { order: 2; }
.et-flow { display: flex; flex-direction: column; gap: 72px; }
.et-photo { aspect-ratio: 4 / 3; border-radius: 18px; background-size: cover; background-position: center; background-color: #EDF3FB; }

/* ==========================================================================
   13. カード（太枠 / 淡色 / イラスト / 声）
   ========================================================================== */
.et-card-outline { border: 3px solid #1F3C88; border-radius: 18px; padding: 28px 26px; }
.et-card-outline__img { border-radius: 12px; }
.et-card-outline--sched { padding: 32px 32px 26px; }
.et-card-soft { background: #F4F7FC; border-radius: 18px; padding: 30px 28px; }
.et-card-recommend {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  border: 3px solid #1F3C88;
  border-radius: 16px;
  padding: 32px 24px;
  background: #FFFFFF;
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
/* hover：1〜2px浮かせて影を濃くし、イラストだけ軽く跳ねさせる */
.et-card-recommend:hover {
  transform: translateY(-4px);
  border-color: #4A90D9;
  box-shadow: 0 12px 26px rgba(31, 60, 136, 0.16);
}
.et-card-recommend img {
  width: 150px;
  height: 150px;
  display: block;
  transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.et-card-recommend:hover img { transform: scale(1.08) rotate(-2deg); }
.et-card-recommend p { font-size: 1.6rem; line-height: 1.95; color: #41506B; text-align: left; transition: color 0.3s ease; }
.et-card-recommend:hover p { color: #1F3C88; }

.et-voice { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.et-card-voice { background: #FFFFFF; border-radius: 18px; padding: 30px 28px; }
.et-card-voice__text { font-size: 1.6rem; line-height: 2; color: #1B2437; font-weight: 500; margin-bottom: 16px; }
.et-card-voice__name { font-size: 1.5rem; color: #6C7E9E; text-align: right; }
.et-card-voice--cta {
  background: #4A90D9;
  border: 3px solid #FFFFFF;
  display: flex;
  flex-direction: column;
  justify-content: center;
  box-shadow: 0 10px 30px rgba(10, 26, 64, 0.35);
}
.et-card-voice--cta .et-card-voice__text {
  color: #FFFFFF;
  font-size: 1.7rem;
  line-height: 1.9;
  font-weight: 900;
  margin-bottom: 20px;
}

/* ==========================================================================
   14. スケジュール
   ========================================================================== */
.et-badge-day {
  display: inline-flex;
  align-items: center;
  background: #1F3C88;
  color: #FFFFFF;
  font-size: 1.8rem;
  font-weight: 700;
  padding: 7px 20px;
  border-radius: 9999px;
  margin-bottom: 26px;
}
.et-badge-day--sub { background: #4A90D9; }
.et-sched { display: flex; flex-direction: column; }
.et-sched__row {
  display: grid;
  grid-template-columns: 88px 1fr;
  gap: 18px;
  padding: 0 0 22px 22px;
  margin-left: 6px;
  border-left: 2px solid #DCE6F5;
}
.et-sched__row:last-child { padding-bottom: 0; border-left-color: transparent; }
.et-sched__time { font-family: "Roboto", sans-serif; font-size: 1.6rem; font-weight: 700; color: #4A90D9; }
.et-sched__text { font-size: 1.6rem; line-height: 1.8; color: #41506B; }

/* ==========================================================================
   15. カードスライダー（当日のポジション）
   ========================================================================== */
.et-slider { position: relative; overflow: hidden; padding: 3px 0; }
.et-slider__track {
  display: flex;
  width: calc(var(--pos-count, 4) * 100%);
  transform: translateX(0);
  transition: transform 0.5s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.et-slider__item { width: calc(100% / var(--pos-count, 4)); flex-shrink: 0; padding: 0 8px; }
.et-slider__card {
  height: 360px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: stretch;
  border: 3px solid #1F3C88;
  border-radius: 18px;
  overflow: hidden;
}
.et-slider__photo { width: 100%; height: 100%; background-size: cover; background-position: center; background-color: #EDF3FB; }
.et-slider__body { padding: 26px 34px; display: flex; flex-direction: column; justify-content: center; }
.et-slider__nav { display: flex; align-items: center; justify-content: center; gap: 22px; margin-top: 26px; }
.et-slider__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  padding: 0;
  border-radius: 9999px;
  border: 2px solid #1F3C88;
  background: #FFFFFF;
  color: #1F3C88;
  cursor: pointer;
  transition: background 0.3s ease;
}
.et-slider__arrow:hover { background: #EDF3FB; }
.et-slider__dots { display: flex; align-items: center; gap: 10px; }
.et-slider__dot {
  width: 11px;
  height: 11px;
  padding: 0;
  border: none;
  border-radius: 9999px;
  background: #DCE4F0;
  cursor: pointer;
  transition: background 0.3s ease;
}
.et-slider__dot.is-current { background: #1F3C88; }

/* ==========================================================================
   16. FAQ（accordion 上書き）
   ========================================================================== */
.et-faq { background: #F4F7FC; border: none; border-radius: 18px; overflow: hidden; }
.et-faq:first-child { border-top: none; }
.et-faq .accordion__head {
  background: transparent;
  padding: 26px 74px 26px 84px;
  font-family: inherit;
  font-size: 1.7rem;
  font-weight: 900;
  color: #1F3C88;
  line-height: 2;
}
.et-faq .accordion__head:hover { background: rgba(31, 60, 136, 0.04); }
.et-faq .accordion__head::before {
  top: 24px;
  left: 30px;
  width: 36px;
  height: 36px;
  font-family: "Roboto", sans-serif;
  font-size: 1.7rem;
  font-weight: 900;
  background: #1F3C88;
}
.et-faq .accordion__head::after {
  content: "";
  position: absolute;
  top: 36px;
  right: 34px;
  width: 9px;
  height: 9px;
  margin: 0;
  border: none;
  border-bottom: 2px solid #1F3C88;
  border-right: 2px solid #1F3C88;
  transform: rotate(45deg);
  transition: transform 0.25s ease;
  font-size: 0;
  color: transparent;
}
.et-faq.is-open .accordion__head::after { content: ""; transform: rotate(-135deg); }
.et-faq .accordion__body,
.et-faq.is-open .accordion__body {
  padding: 0 30px 0 84px;
  background: transparent;
  border-top: none;
  font-size: 1.5rem;
  line-height: 2;
  color: #41506B;
}
.et-faq.is-open .accordion__body { padding-bottom: 28px; }
.et-faq .accordion__body::before {
  top: 0;
  left: 30px;
  width: 36px;
  height: 36px;
  background: #4A90D9;
  font-family: "Roboto", sans-serif;
  font-size: 1.7rem;
  font-weight: 900;
}

/* ==========================================================================
   17. 電話ボックス / フォーム（お問い合わせ）
   ========================================================================== */
.et-telbox {
  position: relative;
  background: #FFFFFF;
  border: 2px solid #4A90D9;
  border-radius: 9999px;
  padding: 44px 40px 38px;
  text-align: center;
  margin: 34px 0 64px;
}
.et-telbox__label {
  position: absolute;
  top: -21px;
  left: 50%;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  background: #4A90D9;
  color: #FFFFFF;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  padding: 11px 34px;
  border-radius: 9999px;
  white-space: nowrap;
}
.et-telbox__tel {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  font-family: "Roboto", sans-serif;
  font-size: 4.6rem;
  font-weight: 900;
  color: #1F3C88;
  letter-spacing: 0.01em;
  line-height: 1;
}
.et-telbox__tel .fa-phone { font-size: 0.75em; }
.et-telbox__tel:hover { opacity: 0.8; }
.et-telbox__note { font-size: 1.4rem; line-height: 1.9; color: #5B6B8C; margin-top: 16px; }

.et-form { display: flex; flex-direction: column; gap: 26px; }
.et-form__row { display: flex; flex-direction: column; gap: 10px; }
.et-form__label { font-size: 1.5rem; font-weight: 700; color: #1F3C88; display: flex; align-items: center; gap: 10px; }
.et-form__req { font-size: 1.1rem; font-weight: 700; color: #FFFFFF; background: #4A90D9; padding: 3px 9px; border-radius: 4px; }
.et-form .form-input {
  background: #FBFCFE;
  border: 1px solid #DCE4F0;
  border-radius: 10px;
  padding: 15px 18px;
  font-size: 1.5rem;
  line-height: 1.9;
  color: #1B2437;
}
.et-form .form-input:focus { border-color: #4A90D9; }
.et-form__select {
  background-color: #FBFCFE;
  background-position: right 16px center;
  background-size: 16px;
  border: 1px solid #DCE4F0;
  border-radius: 10px;
  padding: 15px 44px 15px 18px;
  font-size: 1.5rem;
  font-family: inherit;
  color: #1B2437;
}
.et-form__select:focus { border-color: #4A90D9; }
.et-msg {
  background: #EDF3FB;
  border: 2px solid #4A90D9;
  border-radius: 14px;
  padding: 22px 26px;
  font-size: 1.5rem;
  line-height: 2;
  color: #1F3C88;
  font-weight: 700;
}

/* ==========================================================================
   18. お知らせ一覧 / 詳細
   ========================================================================== */
.et-news-row {
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 26px;
  padding: 26px 8px;
  border-bottom: 1px solid #EDF1F8;
  align-items: start;
  color: #1B2437;
  transition: background 0.3s ease;
}
.et-news-row:hover { background: #F8FAFE; opacity: 1; }
.et-news-row__meta { display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
.et-news-row__ttl { font-size: 1.6rem; line-height: 1.85; font-weight: 700; color: #1B2437; }
/* サイドバー（月別アーカイブ） */
.et-side-ttl {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 1.8rem;
  font-weight: 900;
  color: #1F3C88;
  letter-spacing: 0.04em;
  padding-bottom: 12px;
  margin-bottom: 6px;
  border-bottom: 2px solid #1F3C88;
}
.et-side-ttl > i { color: #4A90D9; font-size: 0.9em; }
.main-side__side .news-cat-nav a { font-size: 1.6rem; }

/* 共通CSSの疑似要素アイコンは Font Awesome 5 の family 名で書かれているため、
   読み込んでいる Font Awesome 6 の family 名に読み替える */
.header__tel::before,
.news-cat-nav a::after,
.sp-nav__link::after,
.heading-category::before,
.btn-cta-tel::before,
.btn-cta-mail::before,
.footer-cta__tel::before,
.footer-cta__mail::before {
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
}

.et-pager { margin: 44px 0 0; }
.et-pager .pagination__link {
  min-width: 42px;
  width: 42px;
  height: 42px;
  padding: 0;
  border-radius: 9999px;
  font-family: "Roboto", sans-serif;
  font-size: 1.5rem;
  font-weight: 700;
  color: #5B6B8C;
}
.et-entry__ttl { font-size: 3.2rem; line-height: 1.6; font-weight: 900; color: #1F3C88; letter-spacing: 0.02em; }
.et-entry__img { aspect-ratio: 16 / 9; border-radius: 18px; background-size: cover; background-position: center; background-color: #EDF3FB; }
.et-entry__body p { font-size: 1.6rem; line-height: 2.2; color: #41506B; }
.et-entry__body p + p { margin-top: 24px; }
.et-entry__foot { border-top: 1px solid #EDF1F8; }

/* ==========================================================================
   19. お問い合わせCTA（フッター上）
   ========================================================================== */
.et-cta { background: #EDF3FB; }
.et-cta__inner { padding-top: 56px; padding-bottom: 64px; }
.et-cta__card {
  background: #FFFFFF;
  border-radius: 10px;
  padding: 64px 64px 60px;
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 48px;
  align-items: center;
}
.et-cta__ttl {
  font-size: 3.2rem;
  font-weight: 900;
  color: #1F3C88;
  letter-spacing: 0.02em;
  line-height: 1.6;
  margin: 0 0 20px;
}
.et-cta__lead { font-size: 1.6rem; line-height: 2; margin: 0 0 34px; }
.et-wave { margin-bottom: 0; }
.et-wave svg { height: 26px; }
.et-wave--flip svg { transform: scaleY(-1); }

/* ==========================================================================
   20. フッター
   ========================================================================== */
.et-footer { padding: 0; }
.et-footer__inner {
  display: grid;
  grid-template-columns: 1.2fr 1fr 1fr;
  gap: 48px;
  max-width: 1180px;
  padding: 64px 28px 40px;
}
/* フッターは白抜きロゴをそのまま置く（白背景ボックスなし・共通CSSの白反転フィルタも無効化） */
.et-footer__logo { display: inline-block; margin-bottom: 22px; }
.et-footer__logo img { height: 75px; width: auto; display: block; filter: none; }
.et-footer__name { font-size: 1.6rem; font-weight: 700; letter-spacing: 0.06em; margin-bottom: 14px; color: #FFFFFF; }
.et-footer__info { font-size: 1.4rem; line-height: 2; color: #B9C7E4; margin-bottom: 0; }
.et-footer__sns {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 22px;
  color: #FFFFFF;
  font-size: 1.3rem;
  font-weight: 700;
  border: 1px solid rgba(255, 255, 255, 0.35);
  padding: 10px 18px;
  border-radius: 9999px;
}
.et-footer__sns:hover { background: rgba(255, 255, 255, 0.12); color: #FFFFFF; opacity: 1; }
.et-footer__nav { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.et-footer__nav-ttl {
  font-family: "Roboto", sans-serif;
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: #7E93BF;
  margin-bottom: 6px;
}
.et-footer__nav a { font-size: 1.4rem; color: #DCE6F5; }
.et-footer__nav a:hover { color: #FFFFFF; opacity: 1; }
.et-footer-bottom { background: #152C63; border-top: 1px solid rgba(255, 255, 255, 0.14); padding: 0; text-align: left; }
.et-footer-bottom__inner { padding-top: 22px; padding-bottom: 22px; }
.et-footer-bottom__copyright { font-size: 1.2rem; color: #7E93BF; letter-spacing: 0.06em; }

/* ==========================================================================
   20b. SP固定バー / ページトップ（サイトのピルボタンに合わせる）
   ========================================================================== */
.sp-fixed-bar {
  gap: 10px;
  padding: 10px 12px;
  padding-bottom: max(10px, env(safe-area-inset-bottom));
  border-top: 1px solid #DCE4F0;
  box-shadow: 0 -4px 16px rgba(21, 44, 99, 0.12);
}
.sp-fixed-bar__link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 13px 8px;
  border-radius: 9999px;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.02em;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.sp-fixed-bar__link i { font-size: 0.9em; }
/* 左：電話（白地＋ネイビー枠） */
.sp-fixed-bar__item:first-child .sp-fixed-bar__link {
  background: #FFFFFF;
  color: #1F3C88;
  border: 2px solid #1F3C88;
  box-shadow: 0 3px 0 #AFC2E0;
}
/* 右：お問い合わせ（ネイビーベタ） */
.sp-fixed-bar__item:last-child .sp-fixed-bar__link {
  background: #1F3C88;
  color: #FFFFFF;
  box-shadow: 0 3px 0 #142A5E;
}
.sp-fixed-bar__item:first-child .sp-fixed-bar__link:hover,
.sp-fixed-bar__item:first-child .sp-fixed-bar__link:active { color: #1F3C88; }
.sp-fixed-bar__item:last-child .sp-fixed-bar__link:hover,
.sp-fixed-bar__item:last-child .sp-fixed-bar__link:active { color: #FFFFFF; }
.sp-fixed-bar__link:active { transform: translateY(3px); box-shadow: none; }

/* -- ページトップボタン：立体化（サイトのボタンと同じ押し込み挙動） -------- */
.page-top__link {
  box-shadow: 0 4px 0 #142A5E, 0 10px 20px rgba(10, 26, 64, 0.3),
              inset 0 1px 0 rgba(255, 255, 255, 0.28), inset 0 -2px 0 rgba(10, 26, 64, 0.25);
  transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.3s ease;
}
.page-top__link:hover {
  background: #4A90D9;
  transform: translateY(2px);
  box-shadow: 0 2px 0 #2B5F9C, 0 6px 12px rgba(10, 26, 64, 0.28),
              inset 0 1px 0 rgba(255, 255, 255, 0.3), inset 0 -2px 0 rgba(10, 26, 64, 0.2);
}
.page-top__link:active {
  transform: translateY(4px);
  box-shadow: 0 0 0 #2B5F9C, 0 3px 8px rgba(10, 26, 64, 0.25),
              inset 0 2px 4px rgba(10, 26, 64, 0.3);
}

/* ==========================================================================
   21. 装飾アニメーション
   ========================================================================== */
@keyframes etPop {
  0%   { transform: scale(0.72) translateY(18px); opacity: 0; }
  62%  { transform: scale(1.06) translateY(0); opacity: 1; }
  82%  { transform: scale(0.97); }
  100% { transform: scale(1); opacity: 1; }
}
@keyframes etIllustReveal {
  0%   { clip-path: circle(0% at 50% 50%); transform: scale(0.86); opacity: 0; }
  55%  { opacity: 1; }
  100% { clip-path: circle(78% at 50% 50%); transform: scale(1); opacity: 1; }
}
.et-pop {
  animation: etPop 0.85s cubic-bezier(0.34, 1.56, 0.64, 1) backwards;
  animation-play-state: paused;
}
.et-pop.is-in { animation-play-state: running; }
.et-pop--d1 { animation-delay: 0.14s; }
.et-pop--d2 { animation-delay: 0.28s; }

.et-reveal { opacity: 0; transform: translateY(24px); transition: opacity 0.7s ease, transform 0.7s ease; }
.et-reveal.is-in { opacity: 1; transform: none; }

.et-illust { position: absolute; width: 350px; height: 350px; display: block; pointer-events: none; }
.et-illust--tl { top: 20px; left: 0; }
.et-illust--br { bottom: 20px; right: 0; }
.et-illust-reveal {
  animation: etIllustReveal 0.9s cubic-bezier(0.34, 1.56, 0.64, 1) backwards;
  animation-play-state: paused;
}
.et-illust-reveal.is-in { animation-play-state: running; }
.et-illust-reveal--d1 { animation-delay: 0.15s; }


/* -- 2カラムの比率バリエーション / 地図枠 / 各種グリッド（追加） ---------- */
.et-row2--4-6 { grid-template-columns: 0.8fr 1.2fr; gap: 56px; align-items: start; }
.et-row2--start { align-items: start; }
.et-map { border-radius: 14px; overflow: hidden; border: 2px solid #1F3C88; }
.et-map iframe { height: 420px; }
.et-sign { font-size: 1.5rem; font-weight: 700; color: #1F3C88; letter-spacing: 0.04em; }
.et-stat-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.et-recommend { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }

@media (max-width: 896px) {
  .et-row2--4-6 { grid-template-columns: 1fr; }
  .et-map iframe { height: 280px; }
  .et-stat-grid { grid-template-columns: 1fr; gap: 20px; }
  .et-recommend { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 639px) {
  .et-recommend { grid-template-columns: 1fr; max-width: 380px; margin: 0 auto; }
}

/* ==========================================================================
   22. レスポンシブ
   ========================================================================== */
@media (max-width: 1320px) {
  .et-footer__inner { max-width: 95%; }
}

@media (max-width: 1100px) {
  .et-header__logo { padding: 14px 24px 14px 20px; border-radius: 0 0 18px 0; }
  .et-header__logo img { height: 38px; }
  .et-mv__ttl { font-size: 4.8rem; }
  .et-frame__inner, .et-frame__inner--sm { padding: 52px 40px; }
  .et-cta__card { padding: 48px 40px 44px; }
}

@media (max-width: 896px) {
  .container, .container-narrow, .et-container-sm { padding-left: 20px; padding-right: 20px; }

  .et-mv__frame { min-height: 560px; padding: 130px 20px 90px; border-radius: 0 0 44px 44px; }
  #slideshow { height: 560px; }
  .et-mv__ttl { font-size: 3.6rem; }
  .et-mv__en { font-size: 1.8rem; }
  .et-mv__lead { font-size: 1.5rem; margin-bottom: 28px; }

  .et-heading-en { font-size: 4rem; padding: 10px 10px 10px 0; }
  .et-heading-en--sm { font-size: 3.8rem; }
  .et-heading-en--lg { font-size: 4.4rem; }
  .et-heading-en--xl { font-size: 4.8rem; }
  .et-heading-en--num { font-size: 6rem; }
  .et-heading-icon--46 { height: 34px; }
  .et-heading-icon--66 { height: 48px; }
  .et-heading-icon--72 { height: 52px; }
  .et-heading-icon--74 { height: 54px; margin-top: -8px; }
  .et-heading-icon--96 { height: 66px; margin-top: -18px; }

  .et-ttl-lg { font-size: 2.4rem; }
  .et-ttl-md { font-size: 2.2rem; }
  .et-ttl-sub, .et-ttl-sub--22 { font-size: 1.8rem; }
  .et-cta__ttl { font-size: 2.4rem; }
  .et-entry__ttl { font-size: 2.4rem; }
  .et-lead-text { font-size: 1.5rem; }
  .et-body-text { font-size: 1.5rem; }

  .et-frame { padding: 18px; }
  .et-frame__inner, .et-frame__inner--sm { padding: 40px 24px; }
  .et-frame__grid { grid-template-columns: 1fr; gap: 32px; }

  .et-page-hero__inner { padding: 140px 0 52px; }
  .et-page-hero__ja { font-size: 1.8rem; }
  .et-page-hero__lead { font-size: 1.5rem; }

  .et-biz { grid-template-columns: 1fr; gap: 36px; max-width: 420px; margin: 0 auto; }
  .et-ct { grid-template-columns: 1fr; gap: 24px; max-width: 420px; margin: 0 auto; }
  .et-voice { grid-template-columns: 1fr; }
  .et-row2 { grid-template-columns: 1fr; gap: 28px; }
  .et-row2--reverse > :first-child { order: 0; }
  .et-flow { gap: 44px; }
  .et-stat { grid-template-columns: 1fr; padding: 26px; }
  .et-stat__value { font-size: 4.2rem; }

  .et-band__inner { padding-top: 52px; padding-bottom: 52px; }

  .et-spec__row { grid-template-columns: 1fr; gap: 10px; }
  .et-spec__label { justify-self: start; }
  .et-spec__body { padding-top: 0; }

  .et-slider__card { grid-template-columns: 1fr; height: auto; }
  .et-slider__photo { height: 200px; }
  .et-slider__body { padding: 22px 24px 26px; }

  .et-faq .accordion__head { padding: 20px 54px 20px 66px; font-size: 1.5rem; line-height: 1.8; }
  .et-faq .accordion__head::before { top: 18px; left: 18px; width: 32px; height: 32px; font-size: 1.5rem; }
  .et-faq .accordion__head::after { top: 28px; right: 24px; }
  .et-faq .accordion__body,
  .et-faq.is-open .accordion__body { padding: 0 20px 0 66px; font-size: 1.4rem; }
  .et-faq.is-open .accordion__body { padding-bottom: 22px; }
  .et-faq .accordion__body::before { left: 18px; width: 32px; height: 32px; font-size: 1.5rem; }

  .et-telbox { border-radius: 24px; padding: 40px 24px 30px; }
  .et-telbox__tel { font-size: 3rem; gap: 10px; }
  .et-telbox__label { font-size: 1.3rem; padding: 9px 22px; }

  .et-cta__card { grid-template-columns: 1fr; gap: 28px; padding: 40px 24px 36px; }
  .et-cta__illust { max-width: 320px; margin: 0 auto; }

  .et-footer__inner { grid-template-columns: 1fr; gap: 32px; padding: 44px 20px 32px; }

  .et-footer-bottom__inner { padding-bottom: 96px; }

  /* SP固定バーに被らない位置へ */
  .page-top { right: 14px; bottom: 88px; }

  .et-news-row { grid-template-columns: 1fr; gap: 12px; padding: 20px 4px; }
  .et-news-row__meta { flex-direction: row; align-items: center; gap: 12px; }

  .et-illust { width: 150px; height: 150px; opacity: 0.55; }
}

@media (max-width: 639px) {
  .et-mv__frame { min-height: 480px; padding: 110px 20px 70px; }
  #slideshow { height: 480px; }
  .et-mv__ttl { font-size: 2.8rem; }
  .et-mv__en { font-size: 1.5rem; }

  .et-ttl-sp-fit { font-size: clamp(1.5rem, 5.6vw, 2.4rem); }

  .et-heading-en { font-size: 3.2rem; }
  .et-heading-en--lg, .et-heading-en--xl { font-size: 3.6rem; }
  .et-heading-en--num { font-size: 4.8rem; }
  .et-heading-icon--66 { height: 40px; }
  .et-heading-icon--96 { height: 52px; margin-top: -12px; }

  /* スマホではフッターのサイトマップナビを非表示（SPナビに集約） */
  .et-footer__nav { display: none; }

  .et-card-outline, .et-card-outline--sched, .et-card-soft, .et-card-voice { padding: 22px 20px; }
  .et-card-recommend img { width: 120px; height: 120px; }
  .et-btn-row { grid-auto-flow: row; grid-auto-columns: auto; width: 100%; }
  .et-btn { padding: 15px 26px; font-size: 1.4rem; }
  .et-btn--submit { padding: 16px 44px; }
  .et-sched__row { grid-template-columns: 1fr; gap: 4px; }
  /* スマホでは2つとも「応募する」ボタンの左右に配置 */
  .et-illust { width: 100px; height: 100px; opacity: 0.6; }
  .et-illust--tl { top: auto; bottom: 24px; left: -6px; }
  .et-illust--br { bottom: 24px; right: -6px; }
}

/* ==========================================================================
   23. CMSフォーム（form-pattern-1）の出力上書き
   CMS側のCSSが後から読み込まれ、詳細度も高いため、この節のみ !important を使う
   ========================================================================== */

/* -- 送信ボタン：サイトの立体ボタン（.et-btn--3d + .btn--solid）に合わせる -- */
.submit-btn {
  display: block !important;
  width: -webkit-fit-content !important;
  width: fit-content !important;
  max-width: 100% !important;
  margin: 8px auto 0 !important;
  padding: 18px 60px !important;
  background: #1F3C88 !important;
  border: none !important;
  border-radius: 9999px !important;
  color: #FFFFFF !important;
  font-family: inherit !important;
  font-size: 1.6rem !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  letter-spacing: 0.04em !important;
  text-align: center !important;
  text-decoration: none !important;
  cursor: pointer !important;
  box-shadow: 0 5px 0 #142A5E, 0 12px 24px rgba(10, 26, 64, 0.3),
              inset 0 1px 0 rgba(255, 255, 255, 0.28), inset 0 -2px 0 rgba(10, 26, 64, 0.25) !important;
  transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.3s ease !important;
}
.submit-btn:hover {
  background: #4A90D9 !important;
  transform: translateY(3px) !important;
  box-shadow: 0 2px 0 #2B5F9C, 0 6px 14px rgba(10, 26, 64, 0.28),
              inset 0 1px 0 rgba(255, 255, 255, 0.3), inset 0 -2px 0 rgba(10, 26, 64, 0.2) !important;
}
.submit-btn:active {
  transform: translateY(5px) !important;
  box-shadow: 0 0 0 #2B5F9C, 0 3px 8px rgba(10, 26, 64, 0.25),
              inset 0 2px 4px rgba(10, 26, 64, 0.3) !important;
}

/* -- 必須バッジ：サイトの .et-form__req（サブカラー）に合わせる ------------- */
.form-pattern-1 dl dt:not(.pattern-exclusion) span.required::before {
  content: '必須' !important;
  color: #FFFFFF !important;
  background: #4A90D9 !important;
  font-family: inherit !important;
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  line-height: 1.6 !important;
  padding: 3px 9px !important;
  border-radius: 4px !important;
  letter-spacing: 0.04em !important;
}

/* -- 送信完了ページ（thanks.php） ----------------------------------------- */
.et-thanks__icon {
  display: block;
  margin: 0 auto 22px;
  font-size: 6.4rem;
  color: #4A90D9;
}
.et-msg a { color: #1F3C88; text-decoration: underline; }

@media (max-width: 896px) {
  .submit-btn { padding: 16px 44px !important; font-size: 1.5rem !important; }
  .et-thanks__icon { font-size: 4.8rem; margin-bottom: 16px; }
}
