/*================================================
 *	メインビジュアル
 ================================================*/
/* メインビジュアル全体のラッパー */
/* メインビジュアル外枠 */
.main-visual {
  width: 100%;
  position: relative;
}

/* 縦横比を固定するコンテナ（PC用の150:65） */
.mv-aspect-wrapper {
  position: relative;
  width: 100%;
  padding-top: 43.333%; 
  overflow: hidden;
  background-color: #0b1c2c;
}

.mv-background,
.mv-content {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.mv-background img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;
}

/* PC用：コンテンツエリア（縦方向中央配置） */
.mv-content {
  z-index: 2;
  display: flex;
  align-items: center; 
}

.container {
  width: 100%;
  max-width: 100%;
  padding: 0 6vw;
  position: relative;
}

/* PC用：白帯キャッチコピー */
.catch-badge {
  display: inline-block;
  background-color: #fff;
  color: #333;
  padding: 0.6vw 2.5vw;
  font-family: "Noto Serif JP", "YuMincho", "Yu Mincho", "Hiragino Mincho ProN", "MS Serif", serif;
  font-weight: 700;
  font-size: 1.5vw; 
  letter-spacing: 0.1em;
  margin-bottom: 1.5vw;
  clip-path: polygon(0 0, 95% 0, 100% 100%, 0 100%);
}

/* PC用：メインタイトル */
.main-title {
  font-family: "Noto Serif JP", "YuMincho", "Yu Mincho", "Hiragino Mincho ProN", "MS Serif", serif;
  font-size: 4.5vw; 
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.05em;
  margin-bottom: 2vw;
  text-shadow: 0px 0.3vw 0.8vw rgba(0,0,0,0.6);
}

/* PC用：説明文 */
.description {
  font-size: 1.3vw; 
  line-height: 2;
  letter-spacing: 0.08em;
  font-weight: 400;
  color: #fff;
  text-shadow: 0px 0.2vw 0.6vw rgba(0,0,0,0.6);
}

/* PC用：右上の100周年記念ロゴ配置エリア */
.anniversary-logo {
  position: absolute;
  top: -4vw;
  right: 6vw;
}

.anniversary-logo img {
  width: 13vw;
  height: auto;
  display: block;
}


/* ========================================================
   スマートフォン用スタイリング（画面幅768px以下）
======================================================== */
@media (max-width: 768px) {
  
  /* 縦横比をスマホ用の「376:526」に変更 */
  .mv-aspect-wrapper {
    padding-top: 139.893%; 
  }

  /* 【修正】コンテンツを左下に配置するためのフレックスボックス指定 */
  .mv-content {
    align-items: flex-end; /* 上下方向を「下揃え」に変更 */
    padding-bottom: 8vw;   /* 下からの適切な余白（位置調整用） */
  }

  /* 【修正】各パーツを横幅70%の中に収め、縦一列にする指定 */
  .container {
    display: flex;
    flex-direction: column;   /* 中の要素を上から下に縦並びにする */
    align-items: flex-start;  /* 左揃え */
    width: 100%;
    max-width: 70%;           /* 【重要】全体の表示範囲を左から70%に制限 */
    padding: 0 0 0 6vw;       /* 左側だけに余白を設定 */
  }

  /* 【修正】100周年記念ロゴ：位置をリセットして、縦並びの「一番最初」にする */
  .anniversary-logo {
    position: static;         /* PC時の絶対配置(absolute)を解除 */
    margin-bottom: 4vw;       /* 下のパーツとの余白 */
    order: 1;                 /* HTMLの記述順に関わらず、1番目に表示 */
  }

  .anniversary-logo img {
    width: 21vw;              /* 1.5倍の大きさに調整 */
    height: auto;
    display: block;
  }

  /* 白帯のキャッチコピー */
  .catch-badge {
    padding: 1.2vw 3.5vw;
    font-size: 3.5vw; 
    margin-bottom: 3vw;
    order: 2;                 /* 2番目に表示 */
  }

  /* メインタイトル */
  .main-title {
    font-size: 5vw; 
    margin-bottom: 4vw;
    text-shadow: 0px 0.5vw 1.2vw rgba(0,0,0,0.7);
    order: 3;                 /* 3番目に表示 */
  }

  /* 説明文 */
  .description {
    font-size: 3vw; 
    line-height: 1.7;
    text-shadow: 0px 0.4vw 1vw rgba(0,0,0,0.8);
    order: 4;                 /* 4番目に表示 */
  }
}

/* 大画面時の最大値制限（1920px以上で固定） */
@media (min-width: 1920px) {
  .mv-aspect-wrapper {
    max-width: 1920px;
    margin: 0 auto;
    padding-top: 832px;
  }
}

/* ==========================================================================
   💻 輸送部門　共通・PC用レイアウト（基本設定：幅1100px固定・中央配置）
   ========================================================================== */
.transport-section {
  width: 1100px;
  margin: 80px auto 0 auto;
  position: relative;
  padding-bottom: 50px; /* 右下の「詳しく見る」を配置するための下部スペース */
}

/* 写真エリア（縦横比 110:44） */
.top-hero {
  width: 100%;
  aspect-ratio: 110 / 44;
  position: relative;
  /* 輸送部門の画像パスをベースに設定 */
  background: url('../images/top/transportation.webp') center center / cover no-repeat;
}

/* 写真上の薄いグラデーションオーバーレイ */
.top-hero::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(to right, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0));
  z-index: 1;
}

/* 写真左下の透かし背景英字 */
.hero-watermark {
  position: absolute;
  left: 110px;
  bottom: 55px; /* 【修正】75pxから20px下げて55pxに変更 */
  font-size: 25px;
  font-weight: 800;
  color: rgba(255, 255, 255, 0.9);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  z-index: 2;
}

/* メッセージ白カード（写真の右側に絶対配置で重ねる） */
.info-card {
  position: absolute;
  top: calc(29% - 65px); /* 【修正】15px＋50px＝計65px上に引き上げ配置 */
  right: 50px;
  width: 420px;
  background-color: #ffffff;
  padding: 35px 35px 35px 50px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
  z-index: 3;
}
/* 白カードの左側縦ライン（テキスト量に合わせて自動で上下いっぱいに伸びる） */
.info-card::before {
  content: '';
  position: absolute;
  top: 35px;
  bottom: 35px;
  left: 25px;
  width: 3px;
  background-color: #0c3e75; /* 輸送部門のカラーをベースに設定 */
}

.card-category {
  font-size: 13px;
  font-weight: bold;
  color: #0c3e75;
  letter-spacing: 0.05em;
  margin-bottom: 15px;
  display: inline-block;
}

/* 極太ゴシック専用の書体（Black / Heavyウエイト）を指定 */
.card-title {
  font-size: 34px;
  font-family: "Noto Sans JP", "Hiragino Sans", "Arial Black", sans-serif;
  font-weight: 900; 
  color: #0c3e75;
  margin-bottom: 20px;
  letter-spacing: 0.05em;
}

/* 「輸送」「電気」の赤文字部分（極太書体を適用） */
.title-red {
  color: #8b262a;
  font-family: "Noto Sans JP", "Hiragino Sans", "Arial Black", sans-serif;
  font-weight: 900;
}

.card-text {
  font-size: 16px;
  color: #333;
  line-height: 1.8;
}

/* 下部：実績データエリア（輸送部門の濃いブルーをベースに設定） */
.bottom-stats {
  width: 80%;
  margin: -50px auto 0; /* 写真の下部に50px引き上げて重ねる */
  position: relative;
  z-index: 4;
  background-color: #004077; 
  color: #ffffff;
  display: flex;
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.15);
}

/* 各カラム共通スタイル */
.stat-item {
  flex: 1;
  padding: 35px 25px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
  background-repeat: no-repeat;
  background-position: 20px 20px;
  background-size: 60px auto;
}

/* PC用の縦仕切り線（上下に15pxずつのあきを作る） */
.stat-item::after {
  content: '';
  position: absolute;
  top: 15px;
  bottom: 15px;
  right: 0;
  width: 1px;
  background-color: rgba(255, 255, 255, 0.2);
}
.stat-item:last-child::after {
  display: none;
}

/* 輸送部門用の透かし背景画像パス */
.stat-long  { background-image: url('../images/top/t_1.webp'); }
.stat-wide  { background-image: url('../images/top/t_2.webp'); }
.stat-area  { background-image: url('../images/top/t_3.webp'); background-size: 80px auto; }
.stat-truck { background-image: url('../images/top/t_4.webp'); }

/* 実績エリア内テキスト・数字 */
.stat-header { font-size: 15px; font-weight: bold; margin-bottom: 15px; opacity: 0.9; text-align: center; position: relative; z-index: 2; }
.stat-value-box { margin-bottom: 20px; display: flex; align-items: baseline; justify-content: center; position: relative; z-index: 2; }
.stat-number { font-size: 34px; font-weight: bold; font-family: 'Arial Black', sans-serif; line-height: 1; }
.stat-number1 { font-size: 40px; font-weight: bold; font-family: 'Arial Black', sans-serif; line-height: 1; }
.stat-unit { font-size: 18px; font-weight: bold; margin-left: 5px; }
.stat-desc { font-size: 13px; line-height: 1.6; opacity: 0.8; text-align: center; position: relative; z-index: 2; }

/* 「詳しく見る」リンク（輸送部門の濃いブルーをベースに設定） */
.more-link {
  position: absolute;
  right: 10%; /* 実績エリアの右端のラインに揃える */
  bottom: 0;
  display: inline-flex;
  align-items: center;
  gap: 10px;

}
.more-link:hover {
  opacity: 0.7;
}

/* 左側の「丸矢印アイコン」（インラインSVG） */
.more-link::before {
  content: '';
  display: inline-block;
}

/* ==========================================================================
   タブレット・中画面向けのレスポンシブ対応（横幅はみ出し・文字潰れ防止）
   ========================================================================== */
@media (max-width: 1140px) {
  /* 1100px固定を解除し、画面幅に合わせて伸縮させる */
  .transport-section {
    width: 100%;
    max-width: 100%;
    padding-left: 20px;
    padding-right: 20px;
    box-sizing: border-box;
  }

  /* 写真エリアの横幅追従 */
  .top-hero {
    width: 100%;
  }

  /* ★ 白メッセージカード：より小さく、もっと上へ、重なり順(z-index)を保証 ★ */
  .info-card {
    position: absolute;
    top: 20px;            /* 【変更】写真を飛び越えてさらに上部へ引き上げ配置 */
    right: 30px;
    width: 320px;          /* 【変更】横幅を 320px にコンパクト化 */
    padding: 20px 20px 20px 35px; /* 【変更】カードの縮小に合わせて内側の余白をタイトに */
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
    z-index: 10;           /* 写真や実績エリアより確実に前面に出るよう設定 */
  }

  /* 白カードの左側縦ラインの余白調整 */
  .info-card::before {
    top: 20px;
    bottom: 20px;
    left: 18px;
  }

  /* ★ カード縮小に伴う文字サイズの調整 ★ */
  .card-category {
    font-size: 11px;       /* カテゴリー文字を一回り小さく */
    margin-bottom: 8px;
  }

  .card-title {
    font-size: 24px;       /* 【変更】タイトルを 34px → 24px に縮小してハミ出しを防止 */
    margin-bottom: 12px;
  }

  .card-text {
    font-size: 14px;       /* 【変更】本文のフォントサイズを 16px → 14px に調整 */
    line-height: 1.6;
  }

  /* 電気工事部門（左側配置）の白カード位置調整 */
  .power-version .info-card {
    left: 20px;
    right: auto;
  }

  /* --- 実績データエリアを2カラム×2列のグリッドへ早期移行 --- */
  .bottom-stats {
    width: 90%;
    margin: -30px auto 40px;
    flex-wrap: wrap;
    z-index: 5;            /* 白カード(z-index:10)の下、写真(z-index:1)の上になるよう配慮 */
  }

  .stat-item {
    flex: none;
    width: 50%;
    padding: 25px 15px;
    box-sizing: border-box;
  }

  /* PC用の縦仕切り線を一度クリア */
  .stat-item::after {
    display: none;
  }

  /* 奇数（左側）のカラムの右側にのみ縦線を引く */
  .stat-item:nth-child(odd) {
    border-right: 1px solid rgba(255, 255, 255, 0.2);
  }

  /* 中央に水平の横仕切り線を設置 */
  .bottom-stats::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 15px;
    right: 15px;
    height: 1px;
    background-color: rgba(255, 255, 255, 0.2);
    z-index: 3;
  }

  /* 下部リンクの位置調整 */
  .more-link {
    right: 5%;
    bottom: -10px;
  }
}

/* ==========================================================================
   📱 共通・スマートフォン用レイアウト（画面幅767px以下）
   ========================================================================== */
@media (max-width: 767px) {
  body {
    padding: 0;
    background-color: #fff;
  }

  .transport-section {
    width: 100%;
    display: flex;
    flex-direction: column;
    padding-bottom: 60px;
  }

  /* 1. 最上部：白メッセージカード */
  .info-card {
    position: relative;
    top: auto; right: auto;
    transform: none;
    order: 1;
    width: 80%;
    margin: 30px auto -15px; /* 写真に上側から15pxかぶせる */
    padding: 30px 20px 30px 45px;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);
    z-index: 10;
  }

  .info-card::before {
    top: 30px;
    bottom: 30px;
    height: auto;
    left: 20px;
    width: 4px;
  }

  .card-category { font-size: 12px; margin-bottom: 8px; }
  .card-title { font-size: 38px; margin-bottom: 25px; }
  .card-text { font-size: 15px; line-height: 1.9; }

  /* 2. 中央：写真エリア（縦横比 376:261） */
  .top-hero {
    width: 100%;
    aspect-ratio: 376 / 261; 
    order: 2;
    margin-bottom: 0;
    /* 輸送部門の画像パスをベースに設定 */
    background-image: url('../images/top/transportation_sp.webp');
    z-index: 1;
  }

  .hero-watermark {
    left: 50%;
    bottom: 35px;
    transform: translateX(-50%);
    font-size: 24px;
    color: rgba(255, 255, 255, 0.9);
    width: 100%;
    text-align: center;
  }

  /* 3. 最下部：実績データエリア（2カラム×2列のグリッド） */
  .bottom-stats {
    order: 3;
    width: 80%;
    margin: -20px auto 40px; /* 写真の下部に20pxかぶせる */
    position: relative;
    z-index: 4; 
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.15); 
  }

  .stat-item {
    flex: none;
    width: 50%;
    padding: 30px 15px;
    background-position: 15px 15px;
    background-size: 50px auto;
  }

  .stat-item::after {
    display: none;
  }

  /* 奇数カラム（左側2つ）の右側にのみ縦の仕切り線を設置 */
  .stat-item:nth-child(odd) {
    border-right: 1px solid rgba(255, 255, 255, 0.2);
  }

  /* 実績エリアのジャスト中央に水平横仕切り線を1本引く */
  .bottom-stats::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 15px;
    right: 15px;
    height: 1px;
    background-color: rgba(255, 255, 255, 0.2);
    z-index: 3;
  }

  .stat-header { font-size: 12px; margin-bottom: 10px; }
  .stat-number { font-size: 30px; }
  .stat-number1 { font-size: 35px; }
  .stat-unit { font-size: 16px; }
  .stat-desc { font-size: 11px; padding: 0 5px; }

  /* スマホ版「詳しく見る」 */
  .more-link {
    right: 10%;
    bottom: 15px;
    font-size: 15px;
  }
  .more-link::before {
    background-size: 12px;
  }
}

/* ==========================================================================
   ⚡ 電気工事部門用の追加（差分上書き）スタイル
   ========================================================================== */

/* 💻 PC版：電気工事部門の個別指定 */

/* 輸送部門セクションとの間に80pxの余白を作る */
.power-version {
  margin-top: 80px !important;
}

/* 電気工事部門の白カードのみ、PC表示時に「左側」へ配置を入れ替える */
.power-version .info-card {
  right: auto; 
  left: 50px;  
}

/* 【追加】電気工事部門の透かし英字のみ、PC表示時に「右側」へ配置を入れ替える */
.power-version .hero-watermark {
  left: auto;       /* PCベース側の左配置設定をリセット */
  right: 110px;      /* 右側から110pxの位置に固定 */
  text-align: right; /* 右揃え */
}

/* PC用の背景写真を上書き */
.power-version .top-hero {
  background-image: url('../images/top/power_distribution.webp');
}

/* 白カードの左側ラインとカテゴリー文字の色を変更 */
.power-version .info-card::before { background-color: #3364a9; }
.power-version .card-category { color: #3364a9; }

/* 実績データエリアの背景色を上書き（#3c6eb4） */
.power-version .bottom-stats {
  background-color: #3c6eb4;
}

/* 4つのカラムの透かし背景画像パスをそれぞれ上書き */
.power-version .power-tech   { background-image: url('../images/top/p_1.webp'); }
.power-version .power-area   { background-image: url('../images/top/p_2.webp'); background-size: 80px auto; }
.power-version .power-car    { background-image: url('../images/top/p_3.webp'); }
.power-version .power-rescue { background-image: url('../images/top/p_4.webp'); }

/* 右下「詳しく見る」の文字色と丸矢印カラーを変更 */
.power-version .more-link { color: #3364a9; }
.power-version .more-link::before { background-color: #3364a9; }


/* 📱 スマートフォン版：電気工事部門の個別上書き指定 */
@media (max-width: 767px) {
  /* スマホ表示時のセクション間の隙間を50pxに調整 */
  .power-version {
    margin-top: 50px !important;
  }
  
  /* スマホ用の背景写真を上書き */
  .power-version .top-hero {
    background-image: url('../images/top/power_distribution_sp.webp');
  }
  .power-version .info-card {
  right: auto; 
  left: auto;  
  }

   /* 【追加】スマホ版の透かし英字は元の「中央揃え」のままキープするため、右寄せをリセット */
   .power-version .hero-watermark {
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    width: 100%;
    text-align: center;
   	}
}




/* ==========================================================================
   一貫システムセクション専用スタイル
   ========================================================================== */
.system-section {
  max-width: 1100px;
  margin: 60px auto;
  padding: 0 20px;
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  color: #333333;
  line-height: 1.6;
  box-sizing: border-box;
}
.system-section * {
  box-sizing: border-box;
}

/* --------------------------------------------------------------------------
   ヘッダー・リード文（極太書体 + 圏点マーク + 特定文字の60%縮小）
   -------------------------------------------------------------------------- */
.system-section .sys-title {
  text-align: center;
  font-size: 32px;
  font-weight: 900;
  font-family: "Arial Black", "Impact", "Noto Sans JP", "Hiragino Sans", "Segoe UI Black", "Meiryo UI", sans-serif;
  color: #0c3467;
  margin-bottom: 30px;
  letter-spacing: 0.04em;
  line-height: 1.8;
}

.system-section .sys-title span.accent {
  color: #a82424;
  font-weight: 900;
  -webkit-text-emphasis: filled dot #a82424;
  text-emphasis: filled dot #a82424;
  -webkit-text-emphasis-position: over right;
  text-emphasis-position: over right;
}

.system-section .sys-title span.symbol {
  margin: 0 4px;
}

.system-section .sys-title span.reduce {
  font-size: 60%;
  font-weight: 900;
  display: inline-block;
  transform: translateY(-2px);
}

.system-section .sys-lead {
  text-align: center;
  font-size: 18px;
  max-width: 700px;
  margin: 0 auto 50px auto;
  color: #444444;
}
.system-section .sys-lead p {
  margin-bottom: 8px;
}
.system-section .sys-lead-bold {
  font-weight: bold;
  font-size: 20px;
  color: #333333;
}

/* --------------------------------------------------------------------------
   メインレイアウト（PC基準：3カラム横並び）
   -------------------------------------------------------------------------- */
.system-section .sys-wrapper {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 20px;
}
.system-section .sys-column {
  width: 40%;
}

/* 中央の「一貫対応」画像バッジ */
.system-section .sys-center-badge {
  width: 150px;
  margin: 0 20px;
  flex-shrink: 0;
}
.system-section .sys-center-badge img {
  width: 100%;
  height: auto;
  display: block;
}

/* --------------------------------------------------------------------------
   各部門ヘッダー（ボタンの外側に線を伸ばす構造）
   -------------------------------------------------------------------------- */
.system-section .sys-dept-header {
  color: #ffffff;
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 25px;
  text-align: center;
  display: flex;
  align-items: center;
  width: 100%;
}

.system-section .sys-dept-header::before,
.system-section .sys-dept-header::after {
  content: "";
  flex-grow: 1;
  height: 2px;
}

.system-section .sys-dept-header-text {
  display: inline-block;
  padding: 10px 40px;
  border-radius: 30px;
  flex-shrink: 0;
}

/* 輸送部門カラー */
.system-section .sys-transport .sys-dept-header .sys-dept-header-text {
  background-color: #0c3467;
}
.system-section .sys-transport .sys-dept-header::before,
.system-section .sys-transport .sys-dept-header::after {
  background-color: #0c3467;
}

/* 電気工事部門カラー */
.system-section .sys-electric .sys-dept-header .sys-dept-header-text {
  background-color: #3a75c4;
}
.system-section .sys-electric .sys-dept-header::before,
.system-section .sys-electric .sys-dept-header::after {
  background-color: #3a75c4;
}

/* --------------------------------------------------------------------------
   業務カードアイテム・中身の比率設定（40% : 55%）
   -------------------------------------------------------------------------- */
.system-section .sys-card {
  display: flex;
  align-items: flex-start;
  padding-bottom: 25px;
  margin-bottom: 25px;
  background: none;
  border-bottom: 1px dashed #b0c4de;
}

.system-section .sys-column .sys-card:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}

.system-section .sys-card-icon {
  width: 40%;
  margin-right: 5%;
  flex-shrink: 0;
  display: block;
}
.system-section .sys-card-icon img {
  width: 100%;
  height: auto;
  display: block;
}

.system-section .sys-card-body {
  width: 55%;
  flex-grow: 1;
}
.system-section .sys-card-title {
  font-size: 20px;
  font-weight: bold;
  color: #333333;
  margin-bottom: 6px;
}
.system-section .sys-electric .sys-card-title {
  color: #1a4a8a;
}
.system-section .sys-card-desc {
  font-size: 15px;
  color: #555555;
  line-height: 1.5;
  margin: 0;
}

/* --------------------------------------------------------------------------
   【新規追加】最下部「詳しく見る」ボタンのスタイル（画像再現）
   -------------------------------------------------------------------------- */
.system-section .sys-btn-container {
  text-align: center;
  margin-top: 50px; /* 上のコンテンツとの十分な余白 */
  width: 100%;
}
.system-section .sys-more-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  
  /* ボタンの幅と高さ（必要に応じて調整してください） */
  width: 320px;
  max-width: 100%;
  padding: 15px 20px;
  
  /* 画像デザインの再現 */
  background-color: #f5f7fa; /* 非常に薄い青みがかったグレー */
  color: #333333;
  font-size: 15px;
  font-weight: bold;
  text-decoration: none;
  letter-spacing: 0.05em;
  
  /* 繊細な角丸と薄いシャドウ */
  border-radius: 4px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08), 0 1px 1px rgba(0, 0, 0, 0.05);
  border: 1px solid rgba(0, 0, 0, 0.03); /* 目立たない極薄の境界線 */
  
  transition: all 0.2s ease;
}

/* 右側の矢印（>）マークをCSS疑似要素で再現 */
.system-section .sys-more-btn::after {
  content: "";
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
  width: 7px;
  height: 7px;
  border-top: 2px solid #555555;
  border-right: 2px solid #555555;
}

/* マウスホバー時の少し沈むような柔らかいエフェクト（任意） */
.system-section .sys-more-btn:hover {
  background-color: #ecf0f5;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

/* ==========================================================================
   スマートフォン用（768px 以下）
   ========================================================================== */
@media screen and (max-width: 768px) {
  .system-section {
    padding: 0;
    margin: 40px auto;
  }
  
  .system-section .sys-title {
    font-size: 22px;
    text-align: center;
    padding: 0 15px;
  }
  
  .system-section .sys-lead {
    text-align: center;
    font-size: 14px;
    margin-bottom: 30px;
    padding: 0 15px;
  }
  
  .system-section .sys-wrapper {
    display: block;
    width: 100%;
  }
  
  /* カラム幅80%、左右余白10% */
  .system-section .sys-column {
    width: 80%;
    margin: 0 auto 30px auto;
  }
  
  .system-section .sys-column .sys-card:last-child {
    border-bottom: 1px dashed #b0c4de;
    margin-bottom: 25px;
    padding-bottom: 25px;
  }
  
  .system-section .sys-dept-header {
    margin-bottom: 20px;
    justify-content: center;
  }
  
  .system-section .sys-dept-header::before,
  .system-section .sys-dept-header::after {
    display: none;
  }

  .system-section .sys-center-badge {
    position: relative;
    top: 0;
    left: 0;
    transform: none;
    margin: 30px auto;
    width: 120px;
    clear: both;
  }
  
  /* スマホ表示時のボタン幅の微調整 */
  .system-section .sys-more-btn {
    width: 40%; 
    min-width: 160px; /* 文字の1行維持のためのセーフティ幅 */
    
    padding: 9px 20px; /* 上下のパディングを15pxから「9px（60%）」に縮小 */
    font-size: 14px;   /* 高さに合わせて文字サイズも1px微調整してバランスを最適化 */
  }
}

/* ==========================================
  採用情報セクション
   ========================================== */
.recruit-section {
  width: 100%;
  /* 縦横比15:7のレスポンシブ維持（7 ÷ 15 × 100 ≒ 46.66vw） */
  min-height: 46.66vw; 
  /* 指定された背景画像パスを反映 */
  background-image: url('../images/top/recruit.webp'); 
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  display: flex;
  align-items: center;
  padding: 60px 20px;
}

/* コンテンツ幅制限コンテナ */
.recruit-container {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
}

/* 採用情報ヘッダーエリア */
.recruit-header {
  text-align: center;
  margin-bottom: 40px;
}
.recruit-title-en {
  display: block;
  font-size: 15px;
  color: #777777;
  margin: 0;
  font-weight: bold;
  color: #4a72b2;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 4px;
}
.recruit-title-ja {
  font-size: 32px;
  font-weight: bold;
  color: #0b316a;
  margin: 0 0 10px 0;
  letter-spacing: 0.05em;
  font-family: "Arial Black", "Impact", "Noto Sans JP", "Hiragino Sans", "Segoe UI Black", "Meiryo UI", sans-serif;
}

/* メインコピー */
.recruit-catch {
  font-size: 36px;
  font-weight: 900;
  color: #07224f;
  text-align: center;
  margin-bottom: 30px;
  letter-spacing: 0.05em;
}

/* 説明テキスト */
.recruit-description {
  font-size: 18px;
  font-weight: 500;
  color: #334e77;
  max-width: 750px;
  margin: 0 auto 50px auto;
  text-align: center; /* PC版も中央揃えにする場合 */
}
.recruit-description p {
  margin-bottom: 8px;
}

/* スマホ専用改行をPCでは非表示にする */
.sp-only-br {
  display: none;
}
/* ボタンエリア */
.recruit-buttons {
  display: flex;
  flex-direction: column;
  gap: 20px;
  max-width: 320px;
}

/* リンクボタン共通 */
.recruit-btn {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  height: 54px;
  padding: 0 24px;
  background-color: rgba(255, 255, 255, 0.9);
  border: 1px solid #1a4789;
  border-radius: 4px;
  color: #1a4789;
  font-size: 15px;
  font-weight: bold;
  text-decoration: none;
  transition: all 0.3s ease;
  position: relative;
}
/* ボタンホバー時 */
.recruit-btn:hover {
  background-color: #1a4789;
  color: #ffffff;
}

/* 矢印アイコンをCSSで表現 */
.recruit-btn::after {
  content: '';
  width: 25px;
  height: 1px;
  background-color: #1a4789;
  display: inline-block;
  position: relative;
  transition: background-color 0.3s ease;
}
.recruit-btn::before {
  content: '';
  width: 6px;
  height: 6px;
  border-top: 1px solid #1a4789;
  border-right: 1px solid #1a4789;
  transform: rotate(45deg);
  position: absolute;
  right: 24px;
  top: 50%;
  margin-top: -3px;
  transition: border-color 0.3s ease;
}
.recruit-btn:hover::after {
  background-color: #ffffff;
}
.recruit-btn:hover::before {
  border-color: #ffffff;
}
/* ==========================================
   レスポンシブ対応（画面幅768px以下）
   ========================================== */
@media (max-width: 768px) {
  .recruit-section {
    /* スマホ専用の背景画像 */
    background-image: url('../images/top/recruit_sp.webp'); 
    
    /* スマホ用の新しい縦横比 376 : 650 を維持（650 ÷ 376 × 100 ≒ 172.87vw） */
    min-height: 172.87vw;
    
    background-size: cover;
    background-position: center top;
    padding: 50px 24px;
    align-items: flex-start; /* コンテンツを上寄せに配置 */
  }
  .recruit-container {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center; /* 子要素をすべて中央揃えに */
  }

  /* 採用情報ヘッダーエリア */
  .recruit-header {
    margin-bottom: 40px;
  }
  .recruit-title-ja {
    font-size: 28px;
    font-weight: 900;
  }
  .recruit-title-en {
    font-size: 13px;
  }

  /* キャッチコピー（スマホ版画像ではリード文と統合されているため非表示） */
  .recruit-catch {
    font-size: 18px; 
  }

  /* 説明テキスト（スマホ用の改行と中央揃えを再現） */
  .recruit-description {
    font-size: 15px;
    font-weight: bold;
    color: #1a3154;
    text-align: center;
    max-width: 100%;
    margin: 0 auto 40px auto;
    line-height: 1.8;
  }
  .recruit-description p {
    margin-bottom: 24px;
  }
  .recruit-description p:last-child {
    margin-bottom: 0;
  }

  /* スマホ版のときだけ改行を有効化 */
  .sp-only-br {
    display: block;
  }
  /* ボタンエリア（横幅いっぱいに広げる） */
  .recruit-buttons {
    width: 100%;
    max-width: 100%;
    gap: 16px;
  }

  /* リンクボタン（高さを少し高くし、影をつけて立体感を再現） */
  .recruit-buttons {
    width: 60%;         /* 横幅を画面の60%に指定 */
    max-width: 100%;
    margin: 0 auto;     /* ボタンエリア自体を中央揃えに */
    gap: 16px;
  }

  /* リンクボタン共通 */
  .recruit-btn {
    height: 58px;
    background-color: #ffffff;
    box-shadow: 0 4px 10px rgba(26, 49, 84, 0.15);
    border: 1px solid #4a72b2;
    color: #1a4789;
    font-size: 16px;
    padding: 0 20px;
  }
}

/* ==========================================
  安全活動セクション
   ========================================== */
/* 全体背景（画面全体の100%に効く背景色） */
.safety-csr {
  width: 100%;
  background-color: #ebf2f9; /* ご指定の背景グレー */
  padding: 80px 0;
  box-sizing: border-box;
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
}

/* コンテンツ幅（1100px）の設定 */
.safety-csr__inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 20px;
  box-sizing: border-box;
}

/* タイトル部分 */
.safety-csr__header {
  text-align: center;
  margin-bottom: 50px;
}

.safety-csr__title {
  font-size: 32px;
  font-weight: bold;
  color: #0b316a;
  margin: 0 0 10px 0;
  letter-spacing: 0.05em;
  font-family: "Arial Black", "Impact", "Noto Sans JP", "Hiragino Sans", "Segoe UI Black", "Meiryo UI", sans-serif;
}

.safety-csr__subtitle {
  font-size: 15px;
  color: #777777;
  margin: 0;
  font-weight: bold;
  color: #4a72b2;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 4px;
}

/* バナーの横並び設定 */
.safety-csr__container {
  display: flex;
  justify-content: space-between;
  gap: 30px;
}

/* カード（バナー）の共通スタイル */
.safety-csr__card {
  width: 480px;
  height: 280px;
  flex-shrink: 0;
  position: relative;
  text-decoration: none;
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
  background-size: 100% 100%;
  background-position: center;
  background-repeat: no-repeat;
  display: flex;
  align-items: flex-end;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.safety-csr__card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.25);
}

/* バナーパスの指定（WebP） */
.safety-csr__card--safety {
  background-image: url('../images/top/safety_bn.webp'); 
}

.safety-csr__card--csr {
  background-image: url('../images/top/csr_bn.webp'); 
}

/* カード内テキスト領域 */
.safety-csr__card-content {
  position: relative;
  z-index: 2;
  padding: 30px;
  color: #ffffff;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  /* justify-content: flex-end; を以下に変更 */
  justify-content: center; /* 💡中身の要素を上下中央に配置 */
}

/* 左上リボン風タイトル */
.safety-csr__card-title {
  position: absolute;
  top: 0;
  left: 0;
  margin: 0;
  padding: 14px 35px 14px 20px;
  font-size: 24px;
  font-weight: bold;
  color: #ffffff;
  letter-spacing: 0.05em;
  clip-path: polygon(0 0, 100% 0, calc(100% - 20px) 100%, 0 100%);
}

.safety-csr__card--safety .safety-csr__card-title {
  background-color: #0b2d64;
}

.safety-csr__card--csr .safety-csr__card-title {
  background-color: #0c4323;
}

/* 【修正】説明テキスト：margin-bottomを70pxにしてさらに20px上に配置しました */
.safety-csr__card-text {
  font-size: 17px;
  font-weight: bold;
  line-height: 1.65;
  text-align: left; /* 💡左揃えに指定 */
  margin: 40px 0 0 0; /* 💡左上のタイトルと重ならないように上部に余白を確保 */
  text-shadow: 1px 1px 4px rgba(0, 0, 0, 0.8), 0 0 2px rgba(0, 0, 0, 0.5);
}

/* 「詳しく見る」リンク部分 */
.safety-csr__card-link {
  font-size: 16px;
  font-weight: bold;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.8);
}

/* 白丸の矢印 */
.safety-csr__card-link::before {
  content: '';
  display: inline-block;
  width: 20px;
  height: 20px;
  background-color: #ffffff;
  border-radius: 50%;
  position: relative;
  flex-shrink: 0;
}

.safety-csr__card-link::after {
  content: '';
  position: absolute;
  left: 7px;
  width: 5px;
  height: 5px;
  border-top: 2px solid #000;
  border-right: 2px solid #000;
  transform: rotate(45deg);
}

.safety-csr__card--safety .safety-csr__card-link::after {
  border-top-color: #0b2d64;
  border-right-color: #0b2d64;
}

.safety-csr__card--csr .safety-csr__card-link::after {
  border-top-color: #0c4323;
  border-right-color: #0c4323;
}

/* タブレット対応 */
@media (max-width: 1140px) {
  .safety-csr__container {
    gap: 20px;
  }
  .safety-csr__card {
    width: calc(50% - 10px);
    height: auto;
    aspect-ratio: 535 / 330;
  }
}

/* スマホ対応 */
@media (max-width: 768px) {
  .safety-csr {
    padding: 50px 0;
  }
  .safety-csr__container {
    flex-direction: column;
    align-items: center;
    gap: 20px;
  }
  .safety-csr__card {
    width: 80%;
    height: auto;
    aspect-ratio: 535 / 330;
  }
  .safety-csr__card-title {
    font-size: 18px;
    padding: 10px 25px 10px 15px;
  }
  .safety-csr__card-content {
    /* padding: 60px 15px 15px 15px; を以下に変更 */
    padding: 20px 20px 20px 20px; 
  }
    /* 【修正】スマホ表示時もmargin-bottomを60pxに増やして上へ引き上げ */
  .safety-csr__card-text {
    font-size: 14px;
    text-align: left; /* 💡スマホでも左揃え */
    margin: 35px 0 0 0; /* 💡スマホ用のタイトル被り防止余白 */
  }
 }
/* ==========================================
  Instagramセクション
   ========================================== */
/* 全体背景（画面全体の100%に効く背景色） */.insta-section {
  max-width: 900px;
  margin: 0 auto;
  padding: 80px 10px;
  text-align: center;
  font-family: 'Helvetica Neue', Arial, 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif;
}

/* タイトル */
.insta-section__title {
  font-size: 32px;
  font-weight: bold;
  color: #0b316a;
  margin: 0 0 10px 0;
  letter-spacing: 0.05em;
  font-family: "Arial Black", "Impact", "Noto Sans JP", "Hiragino Sans", "Segoe UI Black", "Meiryo UI", sans-serif;
}

/* サブタイトル */
.insta-section__subtitle {
  font-size: 15px;
  color: #777777;
  margin: 0;
  font-weight: bold;
  color: #4a72b2;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 20px;}

/* リードコピー */
.insta-section__lead {
  font-size: 18px;
  color: #333333;
  line-height: 1.8;
  margin: 0 0 40px 0;
}

/* iframe外枠 */
.insta-section__iframe-wrapper {
  width: 100%;
  max-width: 760px;
  min-height: 400px;
  margin: 0 auto 40px auto;
  background-color: #f9f9f9;
  border: 1px dashed #cccccc;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* プレースホルダーテキスト */
.insta-section__placeholder {
  color: #999999;
  font-size: 14px;
}

/* ボタンエリア */
.insta-section__btn-container {
  display: inline-block;
}

.insta-section__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  background-color: #ffffff;
  color: #333333;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  padding: 12px 35px;
  border: 1px solid #dcdcdc;
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04);
  transition: all 0.2s ease;
}

.insta-section__btn:hover {
  border-color: #b5b5b5;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.08);
}

.insta-section__btn-arrow {
  color: #888888;
  font-family: serif;
  transition: transform 0.2s ease;
}

.insta-section__btn:hover .insta-section__btn-arrow {
  transform: translateX(3px);
}

/* ユーティリティ・レスポンシブ制御 */
.u-pc-only {
  display: block;
}

@media (max-width: 768px) {
  .insta-section {
    padding: 40px 16px;
  }
  .insta-section__title {
    font-size: 24px;
  }
  .insta-section__lead {
    font-size: 14px;
  }
  .u-pc-only {
    display: none;
  }
  .insta-section__iframe-wrapper {
    min-height: 300px;
    margin-bottom: 30px;
  }
}
