/* =========================================================
   mega-menu.css
   - PCメガメニューとモバイルハンバーガーメニューの見た目用CSS
    - 共通の変数とアニメーション定義
    - PC/Desktop用スタイル
    - Mobile/Hamburger用スタイル
   ========================================================= */

/* =========================================================
   ベース変数
   - サイト全体で使う基本色
   - ヘッダー高さ
   - メガメニューの基準高さ
   - 共通角丸・横幅
   ========================================================= */

/* ベース変数 */
:root {
  --tt-blue:#123f92;
  --tt-blue-deep:#0d2f74;
  --tt-cyan:#2ea8ff;
  --tt-ink:#142033;
  --tt-muted:#657289;
  --tt-line:rgba(18,63,146,.10);
  --tt-header-h-desktop:78px;
  --tt-header-h-mobile:66px;
  --tt-current-header-h:78px;
  --tt-panel-h:238px;
  --tt-panel-h-scrolled:186px;
  --tt-card-radius:16px;
  --tt-shell:min(1500px,calc(100vw - 34px));
  --tt-shell-scrolled:min(1500px,calc(100vw - 26px))
}
/* メガメニュー表示中は横スクロールを抑制 */
body.tt-mega-open {
  overflow-x:hidden
}
/* =========================================================
   アニメーション定義
   - 列の表示アニメーション
   - 線の伸び演出
   - ボタンのシマー
   - CTA のグロー
   - モバイルメニューのスライド
   ========================================================= */

/* アニメーション定義 */
@keyframes ttColReveal {
  from {
    opacity:0;
    transform:translateY(8px)
  }
  to {
    opacity:1;
    transform:translateY(0)
  }

}
@keyframes ttLineSweep {
  from {
    transform:scaleX(0)
  }
  to {
    transform:scaleX(1)
  }

}
@keyframes ttShimmer {
  0% {
    left:-100%
  }
  100% {
    left:120%
  }

}
@keyframes ttGlowPulse {
  0%,100% {
    box-shadow:0 0 0 1px rgba(255,255,255,.3),0 3px 8px rgba(46,168,255,.10)
  }
  50% {
    box-shadow:0 0 0 1px rgba(255,255,255,.3),0 3px 12px rgba(46,168,255,.20)
  }

}
@keyframes ttEntryGlow {
  0%,100% {
    border-color:rgba(46,168,255,.22);
    box-shadow:0 0 0 0 rgba(46,168,255,0),0 2px 8px rgba(18,63,146,.06)
  }
  50% {
    border-color:rgba(46,168,255,.50);
    box-shadow:0 0 0 4px rgba(46,168,255,.06),0 4px 16px rgba(18,63,146,.08)
  }

}
@keyframes ttSlideDown {
  from {
    opacity:0;
    transform:translateY(-8px)
  }
  to {
    opacity:1;
    transform:translateY(0)
  }

}
/* =========================================================
   PC / Desktop Mega Menu
   - 961px以上
   ========================================================= */
@media screen and (min-width:961px) {

  /* ---------------------------------------------------------
     PC表示ではハンバーガー関連を非表示
     --------------------------------------------------------- */
  .menu_btn,#g_navi,  /* メニュー展開時の背景オーバーレイ */
.bg_bl {
    display:none!important
  }
  /* ---------------------------------------------------------
     PCヘッダー本体
     - 固定配置
     - ロゴ + グローバルナビの2カラム構成
      - ロゴは左寄せ、ナビは右寄せ
     --------------------------------------------------------- */
  /* モバイルヘッダー
     - ロゴを左
     - ハンバーガーボタンを右上固定
  */
header {
    position:fixed;
    top:0;
    left:0;
    right:0;
    z-index:5000;
    height:var(--tt-header-h-desktop);
    padding:0 22px 0 20px;
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    align-items:center;
    gap:28px;
    box-sizing:border-box;
    background:rgba(255,255,255,.97);
    border-bottom:1px solid var(--tt-line);
    backdrop-filter:blur(14px);
    box-shadow:0 1px 0 rgba(18,63,146,.05);
    transition:height .24s ease,box-shadow .24s ease
  }
  /* スクロール時はヘッダーを少し薄く */
header.is-scrolled {
    height:64px;
    box-shadow:0 1px 0 rgba(18,63,146,.05),0 4px 20px rgba(18,40,84,.06)
  }
header h1,header h1 a {
    display:flex;
    align-items:center;
    margin:0;
    line-height:1
  }
header h1 img,header h1 a img {
    display:block;
    height:46px;
    width:auto;
    transition:height .24s ease;
    position:static!important;
    transform:none!important;
    margin:0!important
  }
header.is-scrolled h1 img,header.is-scrolled h1 a img {
    height:39px
  }
  /* PC用グローバルナビ全体 */
#pc_nav {
    display:block;
    width:100%;
    min-width:0
  }
  /* PCナビの一次メニュー並び */
#pc_nav>ul {
    position:relative;
    list-style:none;
    display:flex;
    justify-content:flex-end;
    align-items:center;
    gap:0;
    margin:0;
    padding:0
  }
#pc_nav>ul>li {
    position:static;
    flex:0 0 auto;
    list-style:none
  }
  /* 一次メニューリンク
     - ヘッダー全高に近い当たり判定
     - 下線は疑似要素で制御
  */
#pc_nav>ul>li>a {
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:var(--tt-header-h-desktop);
    padding:0 clamp(10px,1.1vw,16px);
    color:var(--tt-ink);
    text-decoration:none;
    white-space:nowrap;
    font-size:14px;
    font-weight:700;
    letter-spacing:.02em;
    transition:color .18s ease;
    writing-mode:horizontal-tb!important
  }
header.is-scrolled #pc_nav>ul>li>a {
    min-height:64px
  }
#pc_nav>ul>li>a::after {
    display:none
  }
#pc_nav>ul>li:hover>a,#pc_nav>ul>li.open>a,#pc_nav>ul>li:focus-within>a,#pc_nav>ul>li>a[aria-current="page"] {
    color:var(--tt-blue)
  }
  /* お問い合わせボタン
  */
#pc_nav>ul>li.contact>a {
    min-height:44px;
    height:44px;
    padding:0 18px;
    border-radius:10px;
    color:#fff;
    background:var(--tt-blue);
    box-shadow:0 2px 10px rgba(18,63,146,.18);
    transition:box-shadow .18s ease
  }
#pc_nav>ul>li.contact>a::after {
    display:none
  }
#pc_nav>ul>li.contact:hover>a,#pc_nav>ul>li.contact:focus-within>a {
    color:#fff;
    box-shadow:0 4px 16px rgba(18,63,146,.26)
  }
header.is-scrolled #pc_nav>ul>li.contact>a {
    min-height:40px;
    height:40px
  }
  /* 現在位置やアクティブ項目を示すアンダーライン */
.pc-nav-indicator {
    position:absolute;
    bottom:8px;
    left:0;
    height:3px;
    border-radius:999px;
    background:linear-gradient(90deg,var(--tt-blue),var(--tt-cyan));
    opacity:0;
    pointer-events:none;
    transition:transform .26s cubic-bezier(.22,1,.36,1),width .26s cubic-bezier(.22,1,.36,1),opacity .16s ease;
    animation:ttGlowPulse 3.5s ease-in-out infinite;
    will-change:transform,width
  }
.pc-nav-indicator.is-instant {
    transition:none
  }
  /* メガメニューの背景オーバーレイ
     - 固定配置でヘッダー直下に表示
  */
.tt-morph-bg {
    position:fixed;
    left:0;
    right:0;
    z-index:4899;
    top:var(--tt-current-header-h);
    height:0;
    background:#f6f8fc;
    border-top:1px solid rgba(18,63,146,.05);
    box-shadow:0 8px 32px rgba(18,40,84,.07);
    pointer-events:none;
    opacity:0;
    transition:height .36s cubic-bezier(.22,1,.36,1),top .28s ease,opacity .22s ease;
    will-change:height
  }
body.tt-mega-open .tt-morph-bg {
    opacity:1
  }
.mega-parent {
    position:static
  }
  /* メガメニュー本体
     - fixed でヘッダー直下に表示
     - 表示 / 非表示は opacity と visibility で切り替える
  */
.mega-panel {
    position:fixed;
    left:0;
    right:0;
    top:var(--tt-current-header-h);
    z-index:4900;
    padding:10px 0 14px;
    background:transparent;
    border:none;
    box-shadow:none;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .28s ease,visibility 0s linear .28s
  }
.mega-parent.open>.mega-panel,.mega-parent.touch-open>.mega-panel,.mega-parent:focus-within>.mega-panel {
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transition-delay:0s
  }
  /* メガメニュー内部のグリッド
     - 実際の列レイアウトは各メニュー種別ごとに上書き
  */
.mega-panel .mega-inner {
    width:var(--tt-shell);
    max-width:var(--tt-shell);
    margin:0 auto;
    min-height:var(--tt-panel-h);
    display:grid;
    gap:12px;
    align-items:stretch;
    grid-auto-rows:1fr
  }
  /* 会社情報 / 事業内容 / 採用情報の基本グリッド
     左から
     1. タイトル
     2. メインカラム
     3. 関連リンク
     4. アクセント / CTA
  */
.mega-company .mega-inner,.mega-business .mega-inner,/* 採用情報メガメニュー専用の再レイアウト
   Entry を目立たせつつ、他メニューと高さ感を揃える
*/
.mega-recruit .mega-inner {
    grid-template-columns:clamp(160px,13vw,210px) minmax(0,1.18fr) minmax(210px,.98fr) minmax(210px,.9fr)
  }
  /* グリッド内の各列
     初期状態では透明にして、開いたときに段差表示する
  */
.mega-col {
    min-width:0;
    opacity:0
  }
.mega-parent.open .mega-col,.mega-parent.touch-open .mega-col,.mega-parent:focus-within .mega-col {
    animation:ttColReveal .4s cubic-bezier(.22,1,.36,1) both
  }
.mega-parent.open .mega-col:nth-child(1),.mega-parent.touch-open .mega-col:nth-child(1),.mega-parent:focus-within .mega-col:nth-child(1) {
    animation-delay:0s
  }
.mega-parent.open .mega-col:nth-child(2),.mega-parent.touch-open .mega-col:nth-child(2),.mega-parent:focus-within .mega-col:nth-child(2) {
    animation-delay:.03s
  }
.mega-parent.open .mega-col:nth-child(3),.mega-parent.touch-open .mega-col:nth-child(3),.mega-parent:focus-within .mega-col:nth-child(3) {
    animation-delay:.06s
  }
.mega-parent.open .mega-col:nth-child(4),.mega-parent.touch-open .mega-col:nth-child(4),.mega-parent:focus-within .mega-col:nth-child(4) {
    animation-delay:.09s
  }
.mega-parent.open .mega-col::before,.mega-parent.touch-open .mega-col::before,.mega-parent:focus-within .mega-col::before {
    animation:ttLineSweep .35s ease both
  }
.mega-parent.open .mega-col:nth-child(2)::before,.mega-parent.touch-open .mega-col:nth-child(2)::before,.mega-parent:focus-within .mega-col:nth-child(2)::before {
    animation-delay:.05s
  }
.mega-parent.open .mega-col:nth-child(3)::before,.mega-parent.touch-open .mega-col:nth-child(3)::before,.mega-parent:focus-within .mega-col:nth-child(3)::before {
    animation-delay:.10s
  }
.mega-parent.open .mega-col:nth-child(4)::before,.mega-parent.touch-open .mega-col:nth-child(4)::before,.mega-parent:focus-within .mega-col:nth-child(4)::before {
    animation-delay:.15s
  }
  /* 左端の見出しカラム */
.mega-col.mega-title {
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
    padding:14px 10px 0 2px
  }
.jp-title {
    display:block;
    margin:0;
    color:var(--tt-ink);
    font-size:clamp(17px,2.2vw,22px);
    font-weight:800;
    letter-spacing:.03em;
    line-height:1.2
  }
.en-title {
    display:block;
    margin-top:10px;
    color:#8896ad;
    font-size:10px;
    font-weight:800;
    letter-spacing:.14em;
    text-transform:uppercase
  }
  /* 各カードの共通見た目
     - 白背景
     - 枠線
     - 軽いシャドウ
     - 上部ラインは ::before で演出
  */
.mega-card,.mega-links,.mega-media,.mega-cta-stack,  /* 右端などで使うアクセントカード
     - Latest / News / 補助導線などを強調する
  */
.mega-accent {
    position:relative;
    min-height:var(--tt-panel-h);
    padding:14px 16px 16px;
    border-radius:var(--tt-card-radius);
    background:#fff;
    border:1px solid rgba(18,63,146,.06);
    box-shadow:0 1px 2px rgba(14,34,70,.03),0 4px 16px rgba(14,34,70,.03);
    box-sizing:border-box;
    overflow:hidden
  }
.mega-card::before,.mega-links::before,.mega-media::before,.mega-cta-stack::before,.mega-accent::before {
    content:"";
    position:absolute;
    inset:0 auto auto 0;
    width:100%;
    height:2px;
    background:linear-gradient(90deg,var(--tt-blue),rgba(46,168,255,.45),transparent);
    transform:scaleX(0);
    transform-origin:left
  }
.mega-title {
    display:block;
    margin:0 0 10px;
    color:var(--tt-muted);
    font-size:10px;
    font-weight:800;
    letter-spacing:.12em;
    text-transform:uppercase
  }
.mega-links ul,.mega-card ul,.mega-media ul,.mega-cta-stack ul {
    margin:0;
    padding:0;
    list-style:none
  }
.mega-links ul {
    display:grid;
    gap:0
  }
  .mega-links li {
    list-style:none
  }
  /* テキストリンク型の一覧
     左側の小さなドットで情報の区切りを見せる
  */
.mega-links a {
    position:relative;
    display:block;
    padding:5px 6px 5px 18px;
    border-radius:5px;
    color:var(--tt-ink);
    text-decoration:none;
    transition:color .15s ease
  }
.mega-links a::before {
    content:"";
    position:absolute;
    left:5px;
    top:12px;
    width:4px;
    height:4px;
    border-radius:50%;
    background:rgba(18,63,146,.22);
    transition:background .15s ease
  }
.mega-links a:hover,.mega-links a:focus-visible {
    color:var(--tt-blue)
  }
.mega-links a:hover::before,.mega-links a:focus-visible::before {
    background:var(--tt-cyan)
  }
.mega-link-main {
    display:block;
    color:inherit;
    font-size:13px;
    line-height:1.4;
    font-weight:700
  }
  /* 会社情報の画像カード一覧
     2カラムでコンパクトに並べる
  */
.mega-company .mega-card ul {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    padding-top:4px;
  }
/* 会社情報メニューは内容量に合わせて高さを詰める（不要な下余白を防止） */
.mega-company .mega-inner {
    min-height:auto;
    grid-auto-rows:auto;
    align-items:start
  }
.mega-company .mega-card,.mega-company .mega-links,.mega-company .mega-accent {
    min-height:auto;
    padding-top:12px;
    padding-bottom:10px
  }
.mega-company .mega-card a,.mega-media .mega-pick-card {
    display:block;
    position:relative;
    overflow:hidden;
    border-radius:10px;
    color:#fff;
    text-decoration:none
  }
.mega-company .mega-card li > a {
    margin-top:6px
  }
.mega-company .mega-card img,.mega-media img {
    display:block;
    width:100%;
    height:110px;
    object-fit:cover;
    object-position:center center;
    border:none;
    transition:transform .3s ease
  }
.mega-company .mega-card a:hover img,.mega-media .mega-pick-card:hover img {
    transform:scale(1.04)
  }
.mega-company .mega-card a::after,.mega-media .mega-pick-card::after {
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(180deg,rgba(10,20,40,0) 30%,rgba(10,20,40,.7));
    pointer-events:none
  }
.mega-company .mega-card li > a > span,.mega-media .mega-pick-card span {
    position:absolute;
    left:10px;
    right:10px;
    bottom:10px;
    z-index:1;
    display:block;
    margin:0;
    font-size:13px;
    font-weight:700;
    color:#fff;
    line-height:1.3;
    text-shadow:0 1px 4px rgba(0,0,0,.3)
  }
.mega-media ul {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px
  }
.mega-company .mega-links ul {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:4px 10px
  }
.mega-business .mega-links:first-of-type ul {
    gap:2px
  }
.mega-business .mega-media,.mega-company .mega-accent {
    display:flex;
    flex-direction:column
  }
.mega-accent {
    justify-content:space-between;
    background:linear-gradient(160deg,#fff 60%,#f4f8ff)
  }
.mega-accent-badge {
    display:inline-flex;
    align-items:center;
    width:fit-content;
    padding:4px 9px;
    border-radius:999px;
    background:rgba(18,63,146,.05);
    color:var(--tt-blue);
    font-size:9px;
    font-weight:800;
    letter-spacing:.12em;
    text-transform:uppercase
  }
.mega-accent-title {
    margin:10px 0 4px;
    color:var(--tt-ink);
    font-size:16px;
    font-weight:800;
    line-height:1.3
  }
.mega-accent-text {
    color:var(--tt-muted);
    font-size:11px;
    line-height:1.5
  }
.mega-accent-link {
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:38px;
    padding:0 18px;
    border-radius:8px;
    color:#fff;
    text-decoration:none;
    font-size:12.5px;
    font-weight:700;
    background:var(--tt-blue);
    box-shadow:0 2px 10px rgba(18,63,146,.16);
    transition:box-shadow .18s ease;
    overflow:hidden
  }
.mega-company .mega-accent-link {
    margin-top:8px
  }
.mega-accent-link::after {
    content:"";
    position:absolute;
    top:0;
    left:-100%;
    width:60%;
    height:100%;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.10),transparent);
    pointer-events:none
  }
.mega-accent-link:hover,.mega-accent-link:focus-visible {
    box-shadow:0 4px 16px rgba(18,63,146,.22)
  }
.mega-accent-link:hover::after {
    animation:ttShimmer .5s ease forwards
  }
  /* エントリーCTA —  */
  /* 採用情報用のエントリーエリア
     - 通常のリンク一覧ではなく、視線を集める CTA 
  */
/* エントリーエリアのレイアウト調整
   - 2カラム構成
*/
.mega-recruit .mega-cta-stack {
    display:flex;
    flex-direction:row;
    gap:8px;
    background:linear-gradient(145deg,#e8eeff,#dde6ff);
    border-color:rgba(46,168,255,.15)
  }
  /* エントリーカード本体
     hover / touch で背景が展開する印象的な演出を持たせる
  */
.mega-recruit-cta {
    position:relative;
    display:flex;
    flex-direction:column;
    gap:3px;
    flex:1 1 0;
    padding:12px 12px 12px 18px;
    border-radius:12px;
    color:var(--tt-ink);
    text-decoration:none;
    background:#fff;
    border:2px solid rgba(46,168,255,.22);
    box-shadow:0 2px 8px rgba(18,63,146,.06);
    overflow:hidden;
    animation:ttEntryGlow 2.4s ease-in-out infinite;
    transition:border-color .3s ease,box-shadow .3s ease
  }
.mega-recruit-cta .mega-cta-eyebrow,.mega-recruit-cta strong,.mega-recruit-cta .mega-cta-link {
    position:relative;
    z-index:2;
    transition:opacity .25s ease,transform .25s ease
  }
.mega-recruit-cta::before {
    content:"";
    position:absolute;
    top:-10px;
    right:-10px;
    width:36px;
    height:36px;
    border-radius:50%;
    z-index:1;
    transform:scale(0);
    transition:transform .4s cubic-bezier(.4,0,.2,1)
  }
.mega-recruit-cta--fresh::before {
    background:var(--tt-blue)
  }
  .mega-recruit-cta--career::before {
    background:#4a3db8
  }
.mega-recruit-cta::after {
    content:"ENTRY";
    position:absolute;
    inset:0;
    z-index:3;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    font-size:16px;
    font-weight:800;
    letter-spacing:.12em;
    opacity:0;
    transform:scale(.9);
    transition:opacity .25s ease .08s,transform .25s cubic-bezier(.22,1,.36,1) .08s;
    pointer-events:none
  }
.mega-recruit-cta:hover,.mega-recruit-cta.tt-touch-active {
    border-color:transparent;
    box-shadow:0 8px 28px rgba(18,63,146,.18);
    animation:none
  }
.mega-recruit-cta:hover::before,.mega-recruit-cta.tt-touch-active::before {
    transform:scale(18)
  }
.mega-recruit-cta:hover .mega-cta-eyebrow,.mega-recruit-cta:hover strong,.mega-recruit-cta:hover .mega-cta-link,.mega-recruit-cta.tt-touch-active .mega-cta-eyebrow,.mega-recruit-cta.tt-touch-active strong,.mega-recruit-cta.tt-touch-active .mega-cta-link {
    opacity:0;
    transform:translateY(-6px)
  }
.mega-recruit-cta:hover::after,.mega-recruit-cta.tt-touch-active::after {
    opacity:1;
    transform:scale(1)
  }
.mega-recruit-cta:focus-visible {
    border-color:transparent;
    box-shadow:0 8px 28px rgba(18,63,146,.18);
    animation:none
  }
.mega-recruit-cta:focus-visible::before {
    transform:scale(18)
  }
.mega-recruit-cta:focus-visible .mega-cta-eyebrow,.mega-recruit-cta:focus-visible strong,.mega-recruit-cta:focus-visible .mega-cta-link {
    opacity:0;
    transform:translateY(-6px)
  }
.mega-recruit-cta:focus-visible::after {
    opacity:1;
    transform:scale(1)
  }
.mega-cta-eyebrow {
    color:var(--tt-blue);
    font-size:9px;
    font-weight:800;
    letter-spacing:.14em;
    text-transform:uppercase
  }
.mega-recruit-cta strong {
    display:block;
    color:var(--tt-ink);
    font-size:13px;
    line-height:1.3;
    font-weight:800
  }
.mega-cta-link {
    display:inline-flex;
    align-items:center;
    gap:5px;
    margin-top:2px;
    width:fit-content;
    padding:5px 10px;
    border-radius:999px;
    background:rgba(18,63,146,.06);
    color:var(--tt-blue);
    font-size:10px;
    font-weight:700
  }

  /* ---------------------------------------------------------
     スクロール時にメガメニューを縮小しない仕様へ変更
     （hoverアウトで閉じる運用のため、圧縮スタイルは適用しない）
     --------------------------------------------------------- */
  /* 1280px以下では少し密度を高めて収める */
@media screen and (max-width:1280px) {
    .mega-panel .mega-inner {
      gap:10px
    }
    .mega-company .mega-inner,.mega-business .mega-inner,.mega-recruit .mega-inner {
      grid-template-columns:170px minmax(0,1.14fr) minmax(190px,.96fr) minmax(200px,.84fr)
    }
    .mega-card,.mega-links,.mega-media,.mega-cta-stack,.mega-accent {
      padding:14px 14px 16px
    }
    .mega-company .mega-card img,.mega-media img {
      height:90px
    }

  }
  /* 1120px以下ではさらに列幅と文字サイズを微調整 */
@media screen and (max-width:1120px) {
    #pc_nav>ul {
      gap:11px
    }
    #pc_nav>ul>li>a {
      font-size:13px
    }
    .mega-company .mega-inner,.mega-business .mega-inner,.mega-recruit .mega-inner {
      grid-template-columns:155px minmax(0,1.1fr) minmax(180px,.95fr) minmax(190px,.82fr)
    }
    .mega-company .mega-links ul {
      grid-template-columns:repeat(2,minmax(0,1fr));
      gap:4px 8px
    }
    .mega-link-main {
      font-size:12.5px
    }
    .mega-accent-text {
      font-size:10px
    }
    .mega-recruit .mega-cta-stack {
      flex-direction:column
    }

  }
}
/* MOBILE <=960 */
/* =========================================================
   モバイル / ハンバーガーメニュー
   - 960px以下
   ========================================================= */
@media screen and (max-width:960px) {

  /* ---------------------------------------------------------
     モバイル / ハンバーガーメニュー
     - PCナビは非表示
     --------------------------------------------------------- */
  #pc_nav {
    display:none!important
  }
  .tt-morph-bg {
    display:none!important
  }
  /* モバイルヘッダー
     - ロゴを左
     - ハンバーガーボタンを右上固定
  */
header {
    position:fixed!important;
    top:0!important;
    left:0!important;
    right:0!important;
    z-index:5000!important;
    height:var(--tt-header-h-mobile)!important;
    padding:0 60px 0 16px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    background:#fff!important;
    border-bottom:1px solid rgba(18,63,146,.08)!important;
    backdrop-filter:blur(10px);
    box-sizing:border-box!important
  }
header h1,header h1 a {
    display:flex!important;
    align-items:center!important;
    margin:0!important;
    line-height:1!important
  }
header h1 img,header h1 a img {
    display:block!important;
    height:34px!important;
    width:auto!important;
    position:static!important;
    transform:none!important;
    margin:0!important
  }
.bg_bl {
    position:fixed!important;
    top:var(--tt-header-h-mobile)!important;
    left:0!important;
    right:0!important;
    bottom:0!important;
    width:100%!important;
    height:calc(100% - var(--tt-header-h-mobile))!important;
    height:calc(100dvh - var(--tt-header-h-mobile))!important;
    z-index:4990!important;
    background:rgba(0,0,0,.35)!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    filter:none!important;
    padding:0!important;
    margin:0!important;
    border-radius:0!important;
    transition:opacity .24s ease,visibility 0s linear .24s!important
  }
  /* ハンバーガーボタン本体
     - 3本線 → 開いた時は × に変形
  */
.menu_btn {
    position:fixed!important;
    top:12px!important;
    right:14px!important;
    left:auto!important;
    z-index:5100!important;
    width:42px!important;
    height:42px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    border-radius:0!important;
    border:none!important;
    background:transparent!important;
    box-shadow:none!important;
    cursor:pointer!important;
    padding:0!important;
    outline:none!important;
    -webkit-tap-highlight-color:transparent;
    -webkit-appearance:none!important
  }
.menu_btn:hover,.menu_btn:focus,.menu_btn:focus-visible,.menu_btn:active {
    cursor:pointer!important;
    outline:none!important;
    box-shadow:none!important;
    border:none!important
  }
.menu_btn.opened {
    background:transparent!important;
    border:none!important;
    box-shadow:none!important;
    outline:none!important
  }
.menu_btn span {
    position:absolute!important;
    display:block!important;
    width:22px!important;
    height:2px!important;
    border-radius:1px!important;
    background:var(--tt-ink)!important;
    left:50%!important;
    top:50%!important;
    margin-left:-11px!important;
    transition:transform .25s cubic-bezier(.22,1,.36,1),opacity .12s ease!important
  }
.menu_btn span.top {
    transform:translateY(-7px)!important
  }
  .menu_btn span.middle {
    transform:translateY(0)!important;
    width:22px!important;
    margin-left:-11px!important
  }
  .menu_btn span.bottom {
    transform:translateY(7px)!important
  }
.menu_btn:hover span.top {
    transform:translateY(-7px)!important
  }
  .menu_btn:hover span.bottom {
    transform:translateY(7px)!important
  }
.menu_btn.opened span {
    background:var(--tt-ink)!important
  }
  .menu_btn.opened span.top {
    transform:rotate(45deg) translateY(0)!important
  }
  .menu_btn.opened span.middle {
    opacity:0!important;
    transform:translateX(20px)!important
  }
  .menu_btn.opened span.bottom {
    transform:rotate(-45deg) translateY(0)!important
  }
  /* モバイルメニュー本体
     - ヘッダー直下から全画面に広げる
     - スクロールはメニュー内部のみ
  */
#g_navi {
    position:fixed!important;
    top:var(--tt-header-h-mobile)!important;
    left:0!important;
    right:0!important;
    bottom:0!important;
    width:100%!important;
    height:calc(100% - var(--tt-header-h-mobile))!important;
    height:calc(100dvh - var(--tt-header-h-mobile))!important;
    z-index:5001!important;
    display:block!important;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(-8px);
    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch;
    background:#f5f7fa!important;
    border-top:1px solid rgba(18,63,146,.06)!important;
    padding:0!important;
    margin:0!important;
    transition:opacity .24s ease,transform .24s ease,visibility 0s linear .24s
  }
#g_navi ul {
    display:block!important;
    min-height:0!important;
    height:auto!important;
    flex-flow:unset!important;
    -webkit-flex-flow:unset!important;
    justify-content:unset!important;
    -webkit-justify-content:unset!important;
    padding:0!important;
    margin:0!important
  }
#g_navi.tt-menu-open .sp-nav-inner {
    animation:ttSlideDown .3s ease both
  }
body.tt-mobile-menu-open #g_navi {
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translateY(0);
    transition-delay:0s
  }
body.tt-mobile-menu-open .bg_bl {
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transition-delay:0s!important
  }
  /* モバイルメニューの中身コンテナ */
#g_navi .sp-nav-inner {
    width:min(100%,760px);
    margin:0 auto;
    padding:16px 16px 32px!important;
    box-sizing:border-box
  }
#g_navi .sp-nav-list {
    margin:0!important;
    padding:0!important;
    list-style:none!important;
    display:grid!important;
    gap:0!important
  }
#g_navi .sp-nav-item {
    list-style:none!important;
    display:block!important
  }
  /* 一次メニューの共通見た目
     - 通常リンクとアコーディオントグルの見た目を揃える
  */
#g_navi .sp-nav-item>a,#g_navi .sp-nav-toggle {
    position:relative!important;
    width:100%!important;
    min-height:52px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:12px!important;
    padding:0 14px!important;
    box-sizing:border-box!important;
    border-radius:0!important;
    border:none!important;
    border-bottom:1px solid rgba(18,63,146,.07)!important;
    background:#f5f7fa!important;
    color:var(--tt-ink)!important;
    text-decoration:none!important;
    font-size:14px!important;
    font-weight:700!important;
    line-height:1.4!important;
    float:none!important;
    box-shadow:none!important;
    letter-spacing:0!important;
    outline:none!important;
    text-align:left!important
  }
#g_navi .sp-nav-toggle {
    cursor:pointer!important
  }
#g_navi .sp-nav-item>a::before,#g_navi .sp-nav-toggle::before {
    display:inline-flex!important;
    align-items:center;
    justify-content:center;
    width:20px!important;
    height:auto!important;
    margin-right:12px!important;
    border-radius:0!important;
    background:transparent!important;
    color:var(--tt-muted)!important;
    font-family:"Font Awesome 5 Free"!important;
    font-weight:900!important;
    font-size:14px!important;
    flex:0 0 auto!important;
    position:static!important;
    top:auto!important;
    left:auto!important;
    content:""!important;
    padding:0!important
  }
#g_navi .sp-home>a::before {
    content:"\f015"!important
  }
  #g_navi .sp-company>.sp-nav-toggle::before {
    content:"\f1ad"!important
  }
  #g_navi .sp-business>.sp-nav-toggle::before {
    content:"\f0b1"!important
  }
  #g_navi .sp-recruit>.sp-nav-toggle::before {
    content:"\f0c0"!important
  }
  #g_navi .sp-access>a::before {
    content:"\f3c5"!important
  }
  #g_navi .sp-privacy>a::before {
    content:"\f023"!important
  }
  #g_navi .sp-contact>a::before {
    content:"\f0e0"!important
  }
#g_navi .sp-nav-toggle>span:first-child,#g_navi .sp-nav-item>a {
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    text-align:left!important;
    flex:1 1 auto!important
  }
#g_navi .sp-nav-arrow {
    position:relative!important;
    width:20px!important;
    height:20px!important;
    flex:0 0 20px!important;
    margin-left:auto!important;
    border-radius:0!important;
    background:transparent!important;
    transition:transform .25s cubic-bezier(.22,1,.36,1)!important
  }
#g_navi .sp-nav-arrow::before,#g_navi .sp-nav-arrow::after {
    content:""!important;
    position:absolute!important;
    top:8px!important;
    width:7px!important;
    height:2px!important;
    border-radius:1px!important;
    background:var(--tt-muted)!important;
    transition:transform .25s cubic-bezier(.22,1,.36,1)!important
  }
#g_navi .sp-nav-arrow::before {
    left:3px!important;
    transform:rotate(45deg)!important
  }
  #g_navi .sp-nav-arrow::after {
    right:3px!important;
    transform:rotate(-45deg)!important
  }
#g_navi .sp-nav-item.is-open>.sp-nav-toggle {
    border-bottom-color:var(--tt-blue)!important;
    background:#eef2f8!important;
    box-shadow:none!important
  }
#g_navi .sp-nav-item.is-open>.sp-nav-toggle .sp-nav-arrow {
    transform:rotate(180deg)!important
  }
#g_navi .sp-nav-item.is-open>.sp-nav-toggle .sp-nav-arrow::before {
    transform:rotate(-45deg)!important
  }
  #g_navi .sp-nav-item.is-open>.sp-nav-toggle .sp-nav-arrow::after {
    transform:rotate(45deg)!important
  }
#g_navi .sp-nav-item.is-current>a,#g_navi .sp-nav-item.is-current>.sp-nav-toggle {
    background:var(--tt-blue)!important;
    color:#fff!important;
    border-bottom-color:var(--tt-blue-deep)!important
  }
#g_navi .sp-nav-item.is-current>a::before,#g_navi .sp-nav-item.is-current>.sp-nav-toggle::before {
    color:#fff!important
  }
#g_navi .sp-nav-item.is-current>.sp-nav-toggle .sp-nav-arrow::before,#g_navi .sp-nav-item.is-current>.sp-nav-toggle .sp-nav-arrow::after {
    background:#fff!important
  }
#g_navi .sp-nav-item.is-current.is-open>.sp-nav-toggle {
    background:var(--tt-blue-deep)!important;
    border-bottom-color:var(--tt-blue-deep)!important
  }
  /* アコーディオンで開閉するサブメニュー領域 */
#g_navi .sp-submenu {
    display:grid!important;
    grid-template-rows:0fr;
    overflow:hidden;
    opacity:0!important;
    transition:grid-template-rows .28s ease,opacity .2s ease!important;
    margin-top:0!important;
    padding:0 0 0 24px!important
  }
#g_navi .sp-submenu > ul {
    min-height:0
  }
#g_navi .sp-nav-item.is-open>.sp-submenu {
    grid-template-rows:1fr;
    opacity:1!important
  }
#g_navi .sp-submenu>ul {
    margin:0!important;
    padding:4px 0!important;
    list-style:none!important;
    border-radius:0!important;
    background:transparent!important;
    border:none!important;
    display:block!important;
    min-height:0!important
  }
#g_navi .sp-submenu li {
    list-style:none!important;
    display:block!important
  }
  /* サブメニュー内の通常テキストリンク */
#g_navi .sp-submenu a,#g_navi .sp-submenu li a {
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    float:none!important;
    padding:10px 14px!important;
    color:var(--tt-ink)!important;
    text-decoration:none!important;
    font-size:13px!important;
    font-weight:600!important;
    line-height:1.5!important;
    border:none!important;
    background:transparent!important;
    width:auto!important;
    outline:none!important;
    text-align:left!important
  }
#g_navi .sp-submenu a::before,#g_navi .sp-submenu a:before {
    display:none!important
  }
  /* モバイル版のお問い合わせCTA */
#g_navi .sp-contact>a,#g_navi ul li.contact a {
    color:#fff!important;
    text-align:left!important;
    background:var(--tt-blue)!important;
    box-shadow:none!important;
    border-color:transparent!important;
    width:100%!important;
    border-radius:0!important;
    border-bottom:none!important;
    outline:none!important
  }
#g_navi .sp-contact>a::before {
    color:#fff!important;
    background:transparent!important
  }
#g_navi .sp-contact>a:hover,#g_navi ul li.contact a:hover {
    background:var(--tt-blue-deep)!important;
    color:#fff!important
  }
body.fixed {
    width:100%!important;
    position:fixed!important;
    left:0!important;
    right:0!important;
    overflow:hidden!important
  }
}
/* 共通フォーカススタイル */
/* =========================================================
   アクセシビリティ
   - キーボード操作時のフォーカス可視化
   ========================================================= */
a:focus-visible,button:focus-visible {
  outline:2px solid rgba(46,168,255,.6);
  outline-offset:3px
}
.menu_btn:focus-visible {
  outline:none!important
}
/* 動きを減らす設定向け */
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important
  }

}

:root {
    --tt-mega-bg:#f5f7fb;
    --tt-mega-card:#ffffff;
    --tt-mega-border:rgba(25,63,140,.08);
    --tt-mega-shadow:0 18px 40px rgba(12,28,61,.08);
    --tt-mega-shadow-soft:0 10px 24px rgba(12,28,61,.05);
    --tt-mega-blue:#1f56c5;
    --tt-mega-blue-soft:#e9f0ff;

}
/* メガメニューの背面背景 */
.tt-morph-bg {
    background:var(--tt-mega-bg) !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    border-top:1px solid rgba(25,63,140,.06) !important;
    box-shadow:0 20px 42px rgba(12,28,61,.08) !important;
    transition:    height .30s cubic-bezier(.22,1,.36,1),    top .22s ease,    opacity .16s ease,    visibility 0s linear .16s !important;

}
body.tt-mega-open .tt-morph-bg {
    opacity:1 !important;
    visibility:visible !important;
    transition:    height .30s cubic-bezier(.22,1,.36,1),    top .22s ease,    opacity .16s ease,    visibility 0s linear 0s !important;

}
.mega-panel {
    background:transparent !important;

}
.mega-card,.mega-links,.mega-media,.mega-related,.mega-cta-stack,.mega-accent {
    background:var(--tt-mega-card) !important;
    border:1px solid var(--tt-mega-border) !important;
    box-shadow:var(--tt-mega-shadow-soft) !important;
    border-radius:20px !important;

}
.mega-links,.mega-related {
    padding:18px 18px 18px !important;

}
.mega-links ul,.mega-related ul {
    gap:5px 10px !important;

}
.mega-links li,.mega-related li {
    min-width:0 !important;

}
.mega-links a,.mega-related a {
    line-height:1.45 !important;

}
/* 見出しのバランス */
.mega-title,.mega-eyebrow {
    letter-spacing:.14em !important;

}
.mega-title {
    color:#7d8ba8 !important;
    font-size:12px !important;
    font-weight:700 !important;

}
.mega-main-title,.mega-heading,.mega-heading strong {
    letter-spacing:.02em !important;

}
/* 採用パネルのレイアウト：視覚的な高さを統一／間隔を狭くする */
.mega-recruit .mega-inner {
    grid-template-columns:    clamp(150px, 11vw, 178px)    minmax(0, .98fr)    minmax(186px, .78fr)    minmax(386px, 1.04fr) !important;
    gap:12px !important;
    align-items:stretch !important;

}
.mega-recruit .mega-side,.mega-recruit .mega-label,.mega-recruit .mega-head {
    min-width:0 !important;

}
.mega-recruit .mega-links,.mega-recruit .mega-related {
    min-width:0 !important;
    min-height:var(--tt-panel-h) !important;
    height:var(--tt-panel-h) !important;
    display:flex !important;
    flex-direction:column !important;
    justify-content:flex-start !important;

}
/* エントリーエリア */
.mega-recruit .mega-cta-stack {
    display:grid !important;
    grid-template-columns:repeat(2, minmax(0,1fr)) !important;
    grid-template-rows:auto 1fr !important;
    gap:10px !important;
    min-width:0 !important;
    min-height:var(--tt-panel-h) !important;
    height:var(--tt-panel-h) !important;
    padding:10px !important;
    align-items:stretch !important;
    background:var(--tt-mega-blue-soft) !important;
    border:1px solid rgba(56,111,224,.14) !important;
    border-radius:22px !important;
    box-shadow:0 10px 28px rgba(31,86,197,.06) !important;

}
.mega-recruit .mega-cta-stack .mega-title {
    grid-column:1 / -1 !important;
    margin:0 0 2px !important;
    color:#7f8dab !important;

}
/* 採用CTAカード */
.mega-recruit-cta {
    min-width:0 !important;
    min-height:0 !important;
    height:100% !important;
    padding:14px 14px 12px !important;
    border-radius:16px !important;
    border:1px solid rgba(80,151,255,.22) !important;
    background:#fff !important;
    box-shadow:0 8px 18px rgba(31,86,197,.05) !important;
    display:flex !important;
    flex-direction:column !important;
    justify-content:space-between !important;
    gap:6px !important;

}
.mega-cta-eyebrow {
    font-size:11px !important;
    font-weight:800 !important;
    letter-spacing:.16em !important;
    color:var(--tt-mega-blue) !important;

}
.mega-recruit-cta strong {
    display:block !important;
    font-size:13px !important;
    line-height:1.42 !important;
    letter-spacing:.01em !important;
    color:#1a2640 !important;
    margin:0 !important;

}
.mega-cta-link {
    margin-top:auto !important;
    display:inline-flex !important;
    align-items:center !important;
    gap:6px !important;
    font-size:12px !important;
    font-weight:800 !important;
    color:var(--tt-mega-blue) !important;

}
.mega-cta-link::after {
    content:"→";
    font-size:12px;
    line-height:1;

}
/* 採用パネルの見出し */
.mega-recruit .mega-main-title,.mega-recruit .mega-heading {
    margin-bottom:8px !important;

}
.mega-recruit .mega-links .desc,.mega-recruit .mega-related .desc {
    font-size:11px !important;
    line-height:1.45 !important;

}
/* レスポンシブ対応 */
@media screen and (max-width: 1460px) {
    .mega-recruit .mega-inner {
        grid-template-columns:      144px      minmax(0, .96fr)      minmax(170px, .72fr)      minmax(312px, .96fr) !important;
        gap:10px !important;

  }  .mega-recruit .mega-links,  .mega-recruit .mega-related {
        padding:15px 15px 15px !important;

  }
}
@media screen and (max-width: 1380px) {
    .mega-recruit .mega-cta-stack {
        grid-template-columns:1fr !important;
        grid-template-rows:auto 1fr 1fr !important;
        gap:8px !important;
        padding:9px !important;

  }  .mega-recruit-cta {
        padding:12px 12px 10px !important;

  }  .mega-recruit-cta strong {
        font-size:12px !important;

  }
}
/* スクロール時のヘッダー状態：他のメガメニューと高さを合わせる */
header.is-scrolled .mega-recruit .mega-links,header.is-scrolled .mega-recruit .mega-related,header.is-scrolled .mega-recruit .mega-cta-stack {
    min-height:var(--tt-panel-h-scrolled) !important;
    height:var(--tt-panel-h-scrolled) !important;

}
header.is-scrolled .mega-recruit .mega-inner {
    grid-template-columns:    144px    minmax(0,.96fr)    minmax(170px,.72fr)    minmax(300px,.94fr) !important;
    gap:10px !important;

}
header.is-scrolled .mega-recruit .mega-links,header.is-scrolled .mega-recruit .mega-related {
    padding:14px 14px 14px !important;

}
header.is-scrolled .mega-recruit .mega-cta-stack {
    padding:8px !important;
    gap:8px !important;

}
header.is-scrolled .mega-recruit-cta {
    padding:11px 11px 10px !important;

}
header.is-scrolled .mega-recruit-cta strong {
    font-size:12px !important;

}
/* ハンバーガーボタン */
.menu_btn {
    overflow:visible !important;

}
/* 
    ハンバーガーボタンの微発光エフェクト
*/
.menu_btn::before {
    content:"" !important;
    position:absolute !important;
    left:50% !important;
    top:50% !important;
    width:44px !important;
    height:44px !important;
    transform:translate(-50%,-50%) scale(.84) !important;
    border-radius:999px !important;
    background:radial-gradient(circle, rgba(56,111,224,.16), rgba(56,111,224,0) 68%) !important;
    opacity:0 !important;
    transition:transform .58s cubic-bezier(.22,1,.36,1), opacity .3s ease !important;
    pointer-events:none !important;

}
.menu_btn:hover::before,.menu_btn.opened::before {
    opacity:1 !important;
    transform:translate(-50%,-50%) scale(1) !important;

}
.menu_btn span {
    transition:    transform .72s cubic-bezier(.22,1.2,.3,1),    opacity .24s ease,    width .28s ease,    background-color .22s ease,    box-shadow .28s ease !important;

}
.menu_btn.opened span.top {
    transform:translateY(0) rotate(225deg) scaleX(1.05) !important;

}
.menu_btn.opened span.middle {
    opacity:0 !important;
    transform:scaleX(.1) !important;

}
.menu_btn.opened span.bottom {
    transform:translateY(0) rotate(-225deg) scaleX(1.05) !important;

}
#g_navi {
    transition:    clip-path .78s cubic-bezier(.22,1,.36,1),    opacity .42s ease,    transform .78s cubic-bezier(.22,1,.36,1) !important;

}
#g_navi .sp-nav-inner {
    transition:    transform .74s cubic-bezier(.22,1,.36,1),    opacity .42s ease,    filter .42s ease !important;

}
/* =========================================================
   PCヘッダーのお問い合わせボタン
   ========================================================= */

@media screen and (min-width: 961px)  {
    #pc_nav > ul > li.contact > a  {
        min-height: 34px;
        height: 34px;
        padding: 0 14px;
        border-radius: 0;
        color: #fff;
        background: #180985;
        box-shadow: none;
        font-size: 14px;
        font-weight: 700;
        line-height: 34px;

  }  
  /* 微調整 */  
  
#pc_nav > ul > li.contact:hover > a,  #pc_nav > ul > li.contact:focus-within > a  {
        color: #1bd;
        background: #180985;
        box-shadow: none;

  }  
header.is-scrolled #pc_nav > ul > li.contact > a  {
        min-height: 34px;
        height: 34px;

  }  
#pc_nav > ul > li.contact > a i  {
        margin-right: 6px;

  }  
#pc_nav > ul > li.contact > a::after  {
        display: none;

  }
}

@media screen and (min-width: 961px)  {

:root  {
        --tt-panel-h: auto;
        --tt-panel-h-scrolled: auto;

  }  
.mega-panel .mega-inner,  header.is-scrolled .mega-panel .mega-inner  {
        min-height: 0;
        align-items: start;
        grid-auto-rows: auto;

  }  
.mega-card,  .mega-links,  .mega-media,  .mega-cta-stack,  .mega-accent,  header.is-scrolled .mega-card,  header.is-scrolled .mega-links,  header.is-scrolled .mega-media,  header.is-scrolled .mega-cta-stack,  header.is-scrolled .mega-accent  {
        min-height: 0;
        height: auto;

  }  
header.is-scrolled .mega-panel  {
        padding: 10px 0 14px;

  }  
header.is-scrolled .mega-company .mega-card img,  header.is-scrolled .mega-media img  {
        height: 92px;

  }  
.mega-company .mega-card,  .mega-business .mega-media,  .mega-company .mega-accent  {
        align-self: start;

  }  
.mega-company .mega-inner {
        align-items: stretch;
        grid-auto-rows: 1fr;

  }
.mega-company .mega-card,  .mega-company .mega-links,  .mega-company .mega-accent {
        align-self: stretch;
        height: 100%;

  }
.mega-card,  .mega-links,  .mega-media,  .mega-accent  {
        padding-bottom: 14px;

  }  
.mega-card ul,  .mega-media ul  {
        margin-bottom: 0;

  }
  .mega-company .mega-card,
  .mega-company .mega-links,
  .mega-company .mega-accent {
        padding-top: 11px;
        padding-bottom: 11px;
  }
  .mega-company .mega-links {
        display: grid;
        grid-template-rows: auto 1fr;
        align-content: start;
        gap: 10px;
  }
  .mega-company .mega-links .mega-title {
        margin: 0;
  }
  .mega-company .mega-links ul {
        margin: 0;
        padding-top: 0;
        align-content: start;
        align-self: start;
  }
.mega-company .mega-card ul {
        gap: 8px;
        margin-top: 0;
  }
.mega-company .mega-card a {
        aspect-ratio: 16 / 10;
        background: #f4f7ff;
  }
  .mega-company .mega-card img {
        height: 100%;
        object-fit: cover;
        object-position: center center;
  }
  .mega-company .mega-accent-link {
        margin-bottom: 0;
  }
  .mega-company .mega-accent {
        justify-content: flex-start;
        gap: 12px;
  }

  /* 会社概要: トピックスセクションを「見出し + カードグリッド」の2段構成で安定化 */
  .mega-company .mega-card {
        display: grid;
        grid-template-rows: auto 1fr;
        align-content: stretch;
        gap: 10px;
  }
  .mega-company .mega-card > .mega-title {
        margin: 0;
        display: block;
  }
  .mega-company .mega-card ul {
        margin: 0;
        padding-top: 0;
        align-content: center;
        align-self: stretch;
        min-height: 0;
  }
  .mega-company .mega-card li > a {
        margin-top: 0;
        aspect-ratio: 16 / 10;
  }
  .mega-company .mega-card img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: 50% 50%;
  }
}


/* お知らせアンカー位置調整 (#news 中央に来るように) */
html{
scroll-behavior:smooth;
}

#news{
scroll-margin-top:35vh;
}

/* --- 2026-04: 事業内容メニュー再設計 / SPメニュー簡素化 --- */
@media screen and (min-width:961px){
  .mega-business .mega-inner{
    grid-template-columns:clamp(156px,14vw,210px) minmax(0,1fr) !important;
    gap:clamp(18px,2vw,30px) !important;
    align-items:stretch !important;
  }

  .mega-business .mega-business-heading{
    padding:18px 10px 4px 2px !important;
    border-right:1px solid rgba(25,63,140,.1);
    min-height:100%;
    display:flex;
    flex-direction:column;
  }

  .mega-business .mega-business-grid-wrap{
    min-width:0;
  }

  .mega-business-card-grid{
    margin:0;
    padding:0;
    list-style:none;
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:clamp(8px,.9vw,14px);
  }

  .mega-business-card-link{
    display:flex !important;
    flex-direction:column;
    gap:8px;
    min-height:100% !important;
    padding:clamp(9px,0.8vw,12px) !important;
    border:1px solid rgba(25,63,140,.1) !important;
    border-radius:12px !important;
    background:#fff !important;
    box-shadow:0 6px 14px rgba(12,28,61,.06) !important;
    text-decoration:none !important;
  }

  .mega-business-card-media{
    display:block;
    aspect-ratio:16 / 9;
    border-radius:10px;
    overflow:hidden;
    background:#dfe8f8;
  }

  .mega-business-card-media img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center center;
    transition:transform .28s ease;
  }

  .mega-business-card-link:hover .mega-business-card-media img{
    transform:scale(1.03);
  }

  .mega-business-card-title{
    display:block;
    color:var(--tt-ink);
    font-size:clamp(12px,.88vw,14px);
    line-height:1.45;
    font-weight:700;
  }
}

@media screen and (max-width:1360px) and (min-width:961px){
  .mega-business .mega-inner{
    grid-template-columns:146px minmax(0,1fr) !important;
    gap:14px !important;
  }

  .mega-business-card-grid{
    gap:8px;
  }

  .mega-business-card-link{
    padding:8px !important;
  }
}

@media screen and (max-width:1120px) and (min-width:961px){
  .mega-business .mega-inner{
    grid-template-columns:132px minmax(0,1fr) !important;
  }

  .mega-business-card-title{
    font-size:12px;
    line-height:1.35;
  }
}

@media screen and (max-width:960px){
  #g_navi .sp-business .sp-submenu{
    padding:0 !important;
  }

  #g_navi .sp-business .sp-submenu a,
  #g_navi .sp-business .sp-submenu li a{
    justify-content:flex-start !important;
    text-align:left !important;
    padding:10px clamp(10px,2.5vw,16px) !important;
  }
}

/* --- 2026-04: 会社情報 / 採用情報メガメニュー統一レイアウト --- */
@media screen and (min-width:961px){
  .mega-company .mega-inner,
  .mega-recruit .mega-inner{
    grid-template-columns:clamp(160px,14vw,220px) minmax(0,1fr) !important;
    gap:clamp(22px,2.2vw,34px) !important;
    align-items:stretch !important;
  }

  .mega-company .mega-company-heading,
  .mega-recruit .mega-recruit-heading{
    padding:18px 10px 4px 2px !important;
    border-right:1px solid rgba(25,63,140,.1);
    min-height:100%;
    display:flex;
    flex-direction:column;
  }

  .mega-company-grid-wrap,
  .mega-recruit-grid-wrap{
    min-width:0;
    padding-right:2px;
  }

  .mega-company-grid-content,
  .mega-recruit-grid-content{
    display:grid;
    gap:clamp(10px,1vw,14px);
  }

  .mega-company-grid-content{
    grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(210px,.9fr);
  }

  .mega-company .mega-card ul{
    padding-top:4px;
  }

  .mega-recruit-grid-content{
    grid-template-columns:minmax(0,1fr) minmax(0,.9fr) minmax(240px,1fr);
  }

  .mega-recruit .mega-links ul{
    gap:4px;
  }
}

@media screen and (max-width:1440px) and (min-width:961px){
  .mega-company .mega-inner,
  .mega-recruit .mega-inner{
    gap:26px !important;
  }

  .mega-company-grid-content{
    grid-template-columns:minmax(0,1fr) minmax(0,.95fr) minmax(200px,.85fr);
  }
}

@media screen and (max-width:1280px) and (min-width:961px){
  .mega-company .mega-inner,
  .mega-recruit .mega-inner{
    grid-template-columns:156px minmax(0,1fr) !important;
    gap:24px !important;
  }

  .mega-company-grid-content{
    grid-template-columns:minmax(0,1fr) minmax(0,.9fr) minmax(186px,.82fr);
  }

  .mega-recruit-grid-content{
    grid-template-columns:minmax(0,1fr) minmax(0,.86fr) minmax(210px,.94fr);
  }
}

@media screen and (max-width:1140px) and (min-width:961px){
  .mega-company .mega-inner,
  .mega-recruit .mega-inner,
  .mega-business .mega-inner{
    gap:20px !important;
  }

  .mega-company .mega-company-heading,
  .mega-recruit .mega-recruit-heading,
  .mega-business .mega-business-heading{
    padding-right:8px !important;
  }

  .mega-company-grid-content,
  .mega-recruit-grid-content{
    gap:10px;
  }

  .mega-company-grid-content{
    grid-template-columns:minmax(0,.96fr) minmax(0,.9fr) minmax(170px,.78fr);
  }

  .mega-recruit-grid-content{
    grid-template-columns:minmax(0,.94fr) minmax(0,.84fr) minmax(190px,.9fr);
  }
}

@media screen and (max-width:1024px) and (min-width:961px){
  .mega-company .mega-inner,
  .mega-recruit .mega-inner,
  .mega-business .mega-inner{
    grid-template-columns:132px minmax(0,1fr) !important;
    gap:16px !important;
  }

  .mega-company-grid-content,
  .mega-recruit-grid-content{
    gap:8px;
  }

  .mega-company-grid-content{
    grid-template-columns:minmax(0,1fr) minmax(0,.86fr) minmax(160px,.74fr);
  }

  .mega-recruit-grid-content{
    grid-template-columns:minmax(0,.94fr) minmax(0,.8fr) minmax(176px,.86fr);
  }
}
