@charset "UTF-8";
/* -----------------------------------------------
* Page エントリーポイント
-------------------------------------------------- */
/* FLOCSS
----------------------------------------------------- */
/* =====================================================
# 大和化成株式会社 TOP（index）page エントリ
# 各セクション SCSS を集約（fv / about / equipment / contact）。
# カンプ: DOC 4167×7816・4000px基準リキッド（vw() = 4167 基準）。
===================================================== */
/* =====================================================
# home-fv — ファーストビュー
# inspect fv [0,0,4167,2084]（表示域。psd グループは 2191 だが下 107px は about と重なる帯）
#   背景: 支給写真「外観.jpg」を全面表示（fv-bg.webp・2000×1000）
#         ※ 修正①（2026-08-05）で 斜めの白面＋青グラデを廃止。写真の上に文字が乗るため
#           キャッチ・SCROLL は 白文字＋濃色シャドウ に変更（旧: 濃紺文字＋白の外側光彩）
#   キャッチ: [2447,641,3591,1197] 4行・実寸106/行送り153(lh1.44)・Medium
#   SCROLL: 縦書き [4032,1654,4058,1821] 実寸34 ＋ 縦線3×153 [4042,1857] ＋ ドット17×16
# SP(md): 50svh の MV 領域に写真を cover で敷き、キャッチを写真上に重ねる（CEO方針 2026-07-24）
===================================================== */
.home-fv {
  position: relative;
  width: 100%;
}
.home-fv {
  /* 最上部だけの白ベール（下層 MV の __bg::after と同じ語彙・向きだけ縦）。
     修正①で斜めの白面が無くなり、ロゴ(青)とナビ(#333)が空の青に埋もれるため、
     ヘッダー帯だけを薄く起こして可読性を戻す。写真は透けたまま。 */
}
.home-fv::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: min(8.6393088553vw, 360px);
  background: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.82)), color-stop(46%, rgba(255, 255, 255, 0.46)), to(rgba(255, 255, 255, 0)));
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.82) 0%, rgba(255, 255, 255, 0.46) 46%, rgba(255, 255, 255, 0) 100%);
  pointer-events: none;
}
.home-fv__bg {
  line-height: 0;
}
.home-fv__bg img {
  display: block;
  width: 100%;
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
}
.home-fv__catch {
  position: absolute;
  top: min(14.6388288937vw, 610px);
  left: min(58.7233021358vw, 2447px);
  margin: 0;
  color: #fff;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: clamp(13px, min(2.5437964963vw, 106px), 106px);
  font-weight: 500;
  line-height: 1.44;
  letter-spacing: 0;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
  /* 修正①で背景が写真全面になったため、外側光彩を「白」から「濃色」へ反転。
     社屋の濃いグレー面でも空の明るい面でも読めるよう、
     近距離のにじみ（8/16）と遠距離の落ち影（26）を重ねて可読性を確保する。 */
  text-shadow: 0 0 clamp(3px, min(0.1919846412vw, 8px), 8px) rgba(7, 43, 104, 0.55), 0 0 clamp(4px, min(0.3839692825vw, 16px), 16px) rgba(7, 43, 104, 0.45), 0 0 clamp(6px, min(0.623950084vw, 26px), 26px) rgba(0, 0, 0, 0.35), 0 0 clamp(6px, min(0.623950084vw, 26px), 26px) rgba(0, 0, 0, 0.35);
}
.home-fv__catch-line {
  display: block;
  white-space: nowrap;
}
.home-fv {
  /* ▼ SCROLL インジケーター（右端・縦書き＋線＋ドット） */
}
.home-fv__scroll {
  position: absolute;
  right: min(2.6157907367vw, 109px);
  bottom: min(1.6078713703vw, 67px);
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: min(0.8639308855vw, 36px);
  color: #fff;
  -webkit-filter: drop-shadow(0 0 clamp(3px, min(0.2399808015vw, 10px), 10px) rgba(0, 0, 0, 0.45));
          filter: drop-shadow(0 0 clamp(3px, min(0.2399808015vw, 10px), 10px) rgba(0, 0, 0, 0.45));
}
.home-fv__scroll-txt {
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: clamp(13px, min(0.8159347252vw, 34px), 34px);
  font-weight: 500;
  letter-spacing: 0.18em;
  line-height: 1;
}
.home-fv__scroll-line {
  position: relative;
  width: clamp(2px, min(0.0719942405vw, 3px), 3px);
  height: min(3.8396928246vw, 160px);
  background-color: currentColor;
  /* ドット 17×16・線の上端から下端へ移動を無限ループ */
}
.home-fv__scroll-line::after {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  -webkit-transform: translate(-50%, 0);
          transform: translate(-50%, 0);
  width: clamp(8px, min(0.4079673626vw, 17px), 17px);
  height: clamp(8px, min(0.3839692825vw, 16px), 16px);
  border-radius: 50%;
  background-color: currentColor;
  -webkit-animation: home-fv-scroll-dot 2s ease-in-out infinite;
          animation: home-fv-scroll-dot 2s ease-in-out infinite;
}

/* SCROLL ドット: 線の高さ vw(160) − ドット高 vw(16) = vw(144) を上→下へ。
   始点・終点でフェードさせて折り返しを感じさせずループする */
@-webkit-keyframes home-fv-scroll-dot {
  0% {
    opacity: 0;
    -webkit-transform: translate(-50%, 0);
            transform: translate(-50%, 0);
  }
  15% {
    opacity: 1;
  }
  85% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    -webkit-transform: translate(-50%, min(3.4557235421vw, 144px));
            transform: translate(-50%, min(3.4557235421vw, 144px));
  }
}
@keyframes home-fv-scroll-dot {
  0% {
    opacity: 0;
    -webkit-transform: translate(-50%, 0);
            transform: translate(-50%, 0);
  }
  15% {
    opacity: 1;
  }
  85% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    -webkit-transform: translate(-50%, min(3.4557235421vw, 144px));
            transform: translate(-50%, min(3.4557235421vw, 144px));
  }
}
/* =====================================================
# home-about — 大和化成について
# inspect about [0,2083,4167,3938] H1855
#   左斜め帯: 三角形 (0,0)-(567,0)-(0,100%) #003d99（実測 傾き0.306＝コラージュと同角）
#   テキスト列: x811〜。en 28表記→実寸56 Bold #072b68 ／ 見出し 48表記→実寸96 Medium
#（先頭字のみ #2e8cff・残り #333333 実測）／ 罫線 210×2 #59c6ff ／ 本文 実寸42 行送り87(lh2.08)
#   VIEW MORE: 470×106 枠線ピル [811,3354]
#   右写真: about-photo.webp（修正① 2026-08-05・支給原寸 376×207）
# TB(768〜1199)/MD: 写真を本文の下に流して縦積み
===================================================== */
/* -----------------------------------------------------
# タブレット帯（768〜1199px）
#   css-mqpacker が「max-width:767px」ブロックを「max-width:1199px」より前にまとめるため、
#   素の mq(xl) を使うとタブレット指定が SP 指定を後勝ちで上書きしてしまう。
#   会社概要ページと同じく、重なりの無い帯域として出力する。
----------------------------------------------------- */
.home-about {
  position: relative;
  min-height: min(44.5164386849vw, 1855px);
  padding-top: min(5.7355411567vw, 239px);
  /* TB 以下は写真を本文の下に流すため、高さは中身なりにして下余白を持たせる */
}
.home-about {
  /* ▼ 左斜め帯（三角形） */
}
.home-about__band {
  position: absolute;
  top: 0;
  left: 0;
  width: min(13.6069114471vw, 567px);
  height: 100%;
  background-color: #003d99;
  -webkit-clip-path: polygon(0 0, 100% 0, 0 100%);
          clip-path: polygon(0 0, 100% 0, 0 100%);
}
.home-about {
  /* ▼ 右写真（修正① 2026-08-05）
     旧: PSD 由来の斜めコラージュ（幅 49.41%）
     新: 支給の樹脂製品カットを素の長方形で表示。
         支給原寸が 376×207 と小さいため、拡大率が 1.5 倍を超えない上限 560px で頭打ちにし、
         テキスト列（x811〜・右端およそ 47%）と重ならない右側の余白に上下中央で置く。 */
}
.home-about__photo {
  position: absolute;
  top: 50%;
  /* 本文列の左インセット（x=811）と同じ値を右にも取り、本文と写真の間が空きすぎないようにする
     （CEO 指示 2026-08-05／旧: vw(300)） */
  right: min(19.4624430046vw, 811px);
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  width: clamp(280px, min(26.3978881689vw, 1100px), 560px);
  line-height: 0;
}
.home-about__photo img {
  display: block;
  width: 100%;
  height: auto;
}
.home-about__photo {
  /* TB（768〜1199）以下は横に置くと本文と重なるため、本文の上に流す（既存 SP レイアウト踏襲） */
}
.home-about {
  /* ▼ テキスト列 */
}
.home-about__body {
  position: relative;
  z-index: 2;
  padding-left: min(19.4624430046vw, 811px);
  max-width: 66%;
}
.home-about__en {
  margin: 0;
  color: #072b68;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: clamp(13px, min(1.3438924886vw, 56px), 56px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.02em;
}
.home-about__ttl {
  margin: min(1.1519078474vw, 48px) 0 0;
  color: #333333;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: clamp(13px, min(2.3038156947vw, 96px), 96px);
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0;
}
.home-about__ttl-accent {
  color: #2e8cff;
}
.home-about {
  /* ▼ 罫線（210×2 #59c6ff） */
}
.home-about__rule {
  display: block;
  width: min(5.0395968323vw, 210px);
  height: clamp(1px, min(0.0479961603vw, 2px), 2px);
  margin: min(3.0717542597vw, 128px) 0 0;
  border: 0;
  background-color: #59c6ff;
}
.home-about__text {
  margin: min(2.3518118551vw, 98px) 0 0;
  color: #333333;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: clamp(13px, min(1.0079193665vw, 42px), 42px);
  font-weight: 400;
  line-height: 2.08;
  letter-spacing: -0.06em;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
}
.home-about__btn {
  margin-top: min(4.0076793856vw, 167px);
}

/* =====================================================
# home-equipment — 設備一覧
# inspect equipment [0,4187,4167,6191] H2004・前セクションとの白間隔 249
#   背景: 淡青 #eaf5ff（実測）多角形 (25.77%,0)-(100%,0)-(100%,100%)-(11.04%,100%)
#         左辺傾き 0.306（about 帯と同角・実測）
#   テキスト: x1332〜（en/見出し/罫線/本文は about と同型・オフセットも同値）
#   VIEW MORE: 470×105 グラデ塗り [3145,4547]（見出し行と同じ高さ・右端 552）
#   設備ストリップ: [0,5212,4167,5941] H729・5枚 縦長方形・間隔30（実測で垂直ギャップ）
#     幅: 488 / 1023 / 1023 / 1022 / 488
#     右→左の無限ループ（CSSマーキー）：同じ5枚を2セット出力し track を 0→-50% で送る
# XL: 維持（比例縮小） / MD: 見出し縦積み＋写真は PC 同様の右→左横ループスライダー
===================================================== */
.home-equipment {
  position: relative;
  margin-top: min(5.9755219582vw, 249px);
  padding-top: min(5.7355411567vw, 239px);
  padding-bottom: min(5.9995200384vw, 250px);
}
.home-equipment {
  /* ▼ 淡青多角形背景 */
}
.home-equipment::before {
  content: "";
  position: absolute;
  inset: 0;
  background-color: #eaf5ff;
  -webkit-clip-path: polygon(25.77% 0, 100% 0, 100% 100%, 11.04% 100%);
          clip-path: polygon(25.77% 0, 100% 0, 100% 100%, 11.04% 100%);
}
.home-equipment {
  /* ▼ 見出し行（左テキスト＋右ボタン） */
}
.home-equipment__head {
  position: relative;
  z-index: 2;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding-left: min(31.9654427646vw, 1332px);
  padding-right: min(13.2469402448vw, 552px);
}
.home-equipment__en {
  margin: 0;
  color: #072b68;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: clamp(13px, min(1.3438924886vw, 56px), 56px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.02em;
}
.home-equipment__ttl {
  margin: min(1.4158867291vw, 59px) 0 0;
  color: #333333;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: clamp(13px, min(2.3038156947vw, 96px), 96px);
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0;
}
.home-equipment__ttl-accent {
  color: #2e8cff;
}
.home-equipment__rule {
  display: block;
  width: min(5.0395968323vw, 210px);
  height: clamp(1px, min(0.0479961603vw, 2px), 2px);
  margin: min(3.0717542597vw, 128px) 0 0;
  border: 0;
  background-color: #59c6ff;
}
.home-equipment__text {
  margin: min(2.4478041757vw, 102px) 0 0;
  color: #333333;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: clamp(13px, min(1.0079193665vw, 42px), 42px);
  font-weight: 400;
  line-height: 2.08;
  letter-spacing: -0.03em;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
}
.home-equipment {
  /* 右 VIEW MORE（見出し ink 行に合わせ margin-top 105） */
}
.home-equipment__btn {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  margin-top: min(2.8797696184vw, 120px);
}
.home-equipment {
  /* ▼ 設備ストリップ枠（出現アニメ＝この外側／はみ出しはここで切る） */
}
.home-equipment__slider {
  position: relative;
  z-index: 2;
  margin-top: min(4.1756659467vw, 174px);
  overflow: hidden;
}
.home-equipment {
  /* ▼ 設備ストリップ（8枚×2セット・右→左ループ＝この内側）
     修正#2（2026-08-05）で支給写真8点に差し替え。全点が同じ 1023:729 比のため幅は1種類。
     枚数が4→8に倍増したので、流れる速さを保つため周期も 36s→72s に倍にしている */
}
.home-equipment__strip {
  list-style: none;
  margin: 0;
  padding: 0;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  -webkit-animation: home-equipment-strip-loop 72s linear infinite;
          animation: home-equipment-strip-loop 72s linear infinite;
}
.home-equipment__strip li {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  width: min(24.5500359971vw, 1023px);
  height: min(17.494600432vw, 729px);
  margin-right: min(0.7199424046vw, 30px);
  line-height: 0;
}
.home-equipment__strip img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

/* 設備ストリップ 右→左ループ：
   トラックは同じ5枚を2セット並べた幅なので、-50%＝ちょうど1セット分。
   終端で 0 に戻っても絵柄が一致するため継ぎ目が見えない */
@-webkit-keyframes home-equipment-strip-loop {
  from {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  to {
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
}
@keyframes home-equipment-strip-loop {
  from {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  to {
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
}
/* =====================================================
# home-contact — お問い合わせ
# inspect contact [0,6440,4167,7191] H751・前セクションとの白間隔 249
#   背景: グラデ 左下#003e9a→右上#007cc6（角度24deg・4隅実測一致）
#   左見出し: Contact（Allura 実寸200 白）[825,6737] ＋ お問い合わせ（実寸56 Medium 白・中央揃え）
#   電話ボックス: ラベル42 [1986,6724] ／ 白ピル 763×138 [1831,6788]（電話アイコン66×67
#     ＋ 番号 Manrope 実寸56 #003d99）／ 営業時間 32 [2061,6951]
#   仕切り縦線: [2731,6614,2733,7017]（白 α0.7・幅2）
#   FAXボックス: ラベル42 [3043,6724] ／ グラデピル 763×138 [2869,6788]
#（白枠 α0.35・FAXアイコン＋白番号）
# MD: 縦積み・仕切り非表示
===================================================== */
.home-contact {
  position: relative;
  margin-top: min(5.9755219582vw, 249px);
  background: linear-gradient(24deg, #0042a0 0%, #007cc6 100%);
  color: #fff;
}
.home-contact__inner {
  position: relative;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
      -ms-flex-align: start;
          align-items: flex-start;
  padding-top: min(6.7434605232vw, 281px);
  padding-left: min(19.7984161267vw, 825px);
  padding-bottom: min(3.3597312215vw, 140px);
}
.home-contact {
  /* ▼ 左見出し（Contact 筆記体＋お問い合わせ・中央揃え） */
}
.home-contact__ttl {
  margin: min(0.3599712023vw, 15px) 0 0;
  width: min(13.3909287257vw, 558px);
  text-align: center;
  line-height: 1;
}
.home-contact__ttl-en {
  display: block;
  font-family: "Allura", cursive;
  font-weight: 400;
  font-size: clamp(13px, min(5.1835853132vw, 216px), 216px);
  line-height: 0.6;
  letter-spacing: 0;
}
.home-contact__ttl-jp {
  display: block;
  margin-top: min(0.9599232061vw, 40px);
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-weight: 500;
  font-size: clamp(13px, min(1.3438924886vw, 56px), 56px);
  letter-spacing: 0.02em;
}
.home-contact {
  /* ▼ お問い合わせフォームへのボタン行（修正#3 2026-08-21 前田様ご指示で新設） */
}
.home-contact__form {
  padding-left: min(31.101511879vw, 1296px);
  padding-bottom: min(4.3196544276vw, 180px);
  text-align: center;
}
.home-contact {
  /* ▼ ボックス共通 */
}
.home-contact__box {
  text-align: center;
}
.home-contact__box--tel {
  margin-left: min(11.1591072714vw, 465px);
}
.home-contact__box--fax {
  margin-left: min(7.4154067675vw, 309px);
}
.home-contact__label {
  margin: 0;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-weight: 500;
  font-size: clamp(13px, min(1.0079193665vw, 42px), 42px);
  line-height: 1;
  letter-spacing: 0.02em;
}
.home-contact {
  /* ▼ ピル（763×138・角丸69） */
}
.home-contact__pill {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: clamp(8px, min(0.7199424046vw, 30px), 30px);
  width: min(17.494600432vw, 729px);
  height: clamp(40px, min(2.5197984161vw, 105px), 105px);
  margin: min(1.0079193665vw, 42px) auto 0;
  border-radius: clamp(20px, min(1.247900168vw, 52px), 52px);
  -webkit-box-shadow: 0 0 clamp(3px, min(0.2879769618vw, 12px), 12px) clamp(1px, min(0.0479961603vw, 2px), 2px) rgba(255, 255, 255, 0.5);
          box-shadow: 0 0 clamp(3px, min(0.2879769618vw, 12px), 12px) clamp(1px, min(0.0479961603vw, 2px), 2px) rgba(255, 255, 255, 0.5);
}
.home-contact__pill--tel {
  background-color: #fff;
  color: #003d99;
}
.home-contact__pill--fax {
  position: relative;
  background: -webkit-gradient(linear, left top, right top, from(#0d5be1), to(#013e9c));
  background: linear-gradient(90deg, #0d5be1 0%, #013e9c 100%);
  border: clamp(1px, min(0.0719942405vw, 3px), 3px) solid rgba(255, 255, 255, 0.35);
  color: #fff;
}
.home-contact__pill--fax::before {
  content: "";
  position: absolute;
  top: 50%;
  left: calc(min(7.4154067675vw, 309px) / -2);
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  width: clamp(1px, min(0.0479961603vw, 2px), 2px);
  height: min(9.6712263019vw, 403px);
  background-color: rgba(255, 255, 255, 0.7);
}
.home-contact__pill-icon {
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  width: clamp(16px, min(1.5838732901vw, 66px), 66px);
  height: clamp(16px, min(1.6078713703vw, 67px), 67px);
  line-height: 0;
}
.home-contact__pill-icon svg {
  display: block;
  width: 100%;
  height: 100%;
  fill: currentColor;
}
.home-contact__pill-num {
  font-family: "Manrope", "Helvetica Neue", Arial, sans-serif;
  font-weight: 600;
  font-size: clamp(13px, min(1.4398848092vw, 60px), 60px);
  line-height: 1;
  letter-spacing: 0.04em;
  white-space: nowrap;
}
.home-contact__hours {
  margin: min(0.6719462443vw, 28px) 0 0;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-weight: 400;
  font-size: clamp(13px, min(0.7679385649vw, 32px), 32px);
  line-height: 1;
  letter-spacing: 0.02em;
}

body.index {
  background-color: #ffffff;
}

/* メインコンテンツはカンプ幅 4167px で頭打ち・中央寄せ（超広幅での崩れ防止） */
.l-main {
  width: 100%;
  max-width: 4167px;
  margin-inline: auto;
  overflow-x: clip;
}

/* =====================================================
# business（事業内容）下層
#   MV（作業風景写真＋濃紺タイポ＋白グロー＋白ウェッジ／会社概要 MV と同型）
#   → プラスチック加工（TOP about 踏襲：左テキスト＋右に写真2枚を段違い）
#   → 大和化成の強み（淡青の斜め背景＋白カード3枚）
#   設計基準: カンプ DOC 4167px（vw()）／TB=mq(xl)／SP=mq(md)
#   配色は $color_main / $color_accent / $color_pale / $color_rule / $color_txt / $white のみ
===================================================== */
body.business {
  background-color: #ffffff;
}

/* =====================================================
# MV — 会社概要ページと同じ型（TOP FV の白い外側光彩を踏襲）
===================================================== */
.business-mv {
  position: relative;
  overflow: hidden;
  height: clamp(280px, min(25.1979841613vw, 1050px), 1050px);
}
.business-mv {
  /* ▼ 白ウェッジ（850×260・傾き 260/850=0.306。about 帯と同じ斜めの語彙で白地へ受け渡す） */
}
.business-mv::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  z-index: 1;
  width: min(20.3983681305vw, 850px);
  height: min(6.2395008399vw, 260px);
  background-color: #fff;
  -webkit-clip-path: polygon(0 0, 0 100%, 100% 100%);
          clip-path: polygon(0 0, 0 100%, 100% 100%);
}
.business-mv__bg {
  position: absolute;
  inset: 0;
  line-height: 0;
  /* picture は高さ auto のインライン要素なので、img の height:100% が効くように箱にする */
}
.business-mv__bg picture {
  display: block;
  width: 100%;
  height: 100%;
}
.business-mv__bg img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: 50% 85%;
     object-position: 50% 85%;
}
.business-mv {
  /* ▼ 見出し（about テキスト列と同じ x=811 アンカー・上下中央）
     js-fadeUp が transform(y) を使うため、中央寄せは transform ではなく flex で行う */
}
.business-mv__ttl {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin: 0;
  padding-left: min(19.4624430046vw, 811px);
}
.business-mv__en, .business-mv__ja {
  color: #072b68;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  line-height: 1;
  /* TOP FV キャッチと同じ白の外側光彩（写真上での可読性確保） */
  text-shadow: 0 0 clamp(3px, min(0.1919846412vw, 8px), 8px) rgba(255, 255, 255, 0.6), 0 0 clamp(4px, min(0.3839692825vw, 16px), 16px) rgba(255, 255, 255, 0.6), 0 0 clamp(6px, min(0.623950084vw, 26px), 26px) rgba(255, 255, 255, 0.6), 0 0 clamp(6px, min(0.623950084vw, 26px), 26px) rgba(255, 255, 255, 0.6);
}
.business-mv__en {
  font-size: clamp(13px, min(1.3438924886vw, 56px), 56px);
  font-weight: 700;
  letter-spacing: 0.02em;
}
.business-mv__ja {
  margin-top: min(1.1519078474vw, 48px);
  font-size: clamp(13px, min(2.3038156947vw, 96px), 96px);
  font-weight: 500;
  letter-spacing: 0;
}
.business-mv {
  /* 先頭字のみアクセント青（TOP 見出しと同じ語彙） */
}
.business-mv__ja-accent {
  color: #2e8cff;
}

/* =====================================================
# プラスチック加工（リード）— TOP about 踏襲
#   左: en → 見出し（先頭字アクセント）→ 罫線 → 本文
#   右: 写真2枚を段違いに絶対配置（右端へ寄せる＝about コラージュと同じ抜け方）
===================================================== */
.business-lead {
  position: relative;
  padding-block: min(5.7595392369vw, 240px) min(5.2795776338vw, 220px);
  min-height: min(46.1963042957vw, 1925px);
  /* タブレット帯: 2段組みだと本文が19文字/行まで詰まるので縦積みに切り替える */
}
.business-lead__body {
  position: relative;
  z-index: 2;
  padding-left: min(19.4624430046vw, 811px);
  max-width: min(51.5958723302vw, 2150px);
  /* 1行が長くなりすぎないよう読み幅で止めて中央に置く */
}
.business-lead__en {
  margin: 0;
  color: #072b68;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: clamp(13px, min(1.3438924886vw, 56px), 56px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.02em;
}
.business-lead__ttl {
  margin: min(1.1519078474vw, 48px) 0 0;
  color: #333333;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: clamp(13px, min(2.3038156947vw, 96px), 96px);
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0;
}
.business-lead__ttl-accent {
  color: #2e8cff;
}
.business-lead {
  /* ▼ 罫線（210×2 #59c6ff・TOP about と同寸） */
}
.business-lead__rule {
  display: block;
  width: min(5.0395968323vw, 210px);
  height: clamp(1px, min(0.0479961603vw, 2px), 2px);
  margin: min(3.0717542597vw, 128px) 0 0;
  background-color: #59c6ff;
}
.business-lead__text {
  margin: min(2.3518118551vw, 98px) 0 0;
  color: #333333;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: clamp(13px, min(1.0079193665vw, 42px), 42px);
  font-weight: 400;
  line-height: 2.08;
  letter-spacing: 0.02em;
  text-align: justify;
}
.business-lead {
  /* ▼ 写真2枚（段違い） */
}
.business-lead__photos {
  /* 縦積みに変わる BP では隣接ブロックの余白を必ず明示 */
}
.business-lead__photo {
  position: absolute;
  line-height: 0;
}
.business-lead__photo img {
  display: block;
  width: 100%;
  height: auto;
}
.business-lead__photo--01 {
  top: min(6.2874970002vw, 262px);
  right: min(2.7597792177vw, 115px);
  width: min(31.5814734821vw, 1316px);
}
.business-lead__photo--02 {
  top: min(25.1259899208vw, 1047px);
  right: min(15.310775138vw, 638px);
  width: min(27.6937844972vw, 1154px);
}
.business-lead__photo {
  /* 縦積み時は右バラし／左バラしの段違いを維持したまま静的配置に戻す */
}

/* =====================================================
# 大和化成の強み — 淡青の斜め背景＋白カード3枚（POINT 01〜03）
#   斜めの上辺は会社概要ページ アクセスと同じ語彙
===================================================== */
.business-strength {
  position: relative;
  padding-block: min(8.6393088553vw, 360px) min(7.6793856491vw, 320px);
}
.business-strength::before {
  content: "";
  position: absolute;
  inset: 0;
  background-color: #eaf5ff;
  -webkit-clip-path: polygon(0 min(3.8396928246vw, 160px), 100% 0, 100% 100%, 0 100%);
          clip-path: polygon(0 min(3.8396928246vw, 160px), 100% 0, 100% 100%, 0 100%);
}
.business-strength .inner {
  position: relative;
  z-index: 1;
}
.business-strength {
  /* ▼ 見出し（中央寄せ） */
}
.business-strength__head {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  text-align: center;
}
.business-strength__en {
  margin: 0;
  color: #072b68;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: clamp(13px, min(1.3438924886vw, 56px), 56px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.02em;
}
.business-strength__ttl {
  margin: min(1.1519078474vw, 48px) 0 0;
  color: #333333;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: clamp(13px, min(2.3038156947vw, 96px), 96px);
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0;
}
.business-strength__ttl-accent {
  color: #2e8cff;
}
.business-strength__rule {
  display: block;
  width: min(5.0395968323vw, 210px);
  height: clamp(1px, min(0.0479961603vw, 2px), 2px);
  margin: min(1.5358771298vw, 64px) 0 0;
  background-color: #59c6ff;
}
.business-strength {
  /* ▼ カード3枚 */
}
.business-strength__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: min(1.9198464123vw, 80px);
  margin: min(4.7996160307vw, 200px) 0 0;
  padding: 0;
  list-style: none;
  /* 1023px 以下は 3 列だと 1 行 14 文字まで詰まるので 1 列に落とす */
}
.business-strength__item {
  min-width: 0;
  background-color: #fff;
  padding: min(2.3038156947vw, 96px) min(1.7278617711vw, 72px) min(2.495800336vw, 104px);
}
.business-strength__label {
  margin: 0;
  color: #2e8cff;
  font-family: "Manrope", "Helvetica Neue", Arial, sans-serif;
  font-size: clamp(13px, min(1.1519078474vw, 48px), 48px);
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.16em;
  text-align: center;
}
.business-strength__num {
  margin: clamp(6px, min(0.4799616031vw, 20px), 20px) 0 0;
  color: #072b68;
  font-family: "Manrope", "Helvetica Neue", Arial, sans-serif;
  font-size: clamp(28px, min(2.6877849772vw, 112px), 112px);
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.02em;
  text-align: center;
}
.business-strength__card-ttl {
  margin: clamp(14px, min(1.0559155268vw, 44px), 44px) 0 0;
  color: #072b68;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: clamp(16px, min(1.4398848092vw, 60px), 60px);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.02em;
  text-align: center;
}
.business-strength__text {
  margin: clamp(14px, min(1.0559155268vw, 44px), 44px) 0 0;
  color: #333333;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: clamp(15px, min(0.9119270458vw, 38px), 38px);
  font-weight: 400;
  line-height: 1.9;
  letter-spacing: 0.02em;
  text-align: justify;
}

/* =====================================================
# equipment（設備一覧）下層 — 仕様書シート3 準拠
#   MV（工場内観写真＋濃紺タイポ＋白グロー＋白ウェッジ）
#   → 設備紹介（写真＋設備名の3列グリッド・件数可変）
#   → 所有機器（淡青の斜め背景＋機器名リスト）
#   設計基準: カンプ DOC 4167px（vw()）／TB=mq(xl)／SP=mq(md)
#   配色は $color_main / $color_accent / $color_pale / $color_rule / $color_txt / $white のみ
===================================================== */
body.equipment {
  background-color: #ffffff;
}

/* =====================================================
# MV — TOP FV／会社概要 MV 踏襲（写真＋濃紺タイポ＋白い外側光彩）
#   ヘッダーは透過オーバーレイなので写真上端に重なる（見出しは上下中央で干渉なし）
===================================================== */
.equipment-mv {
  position: relative;
  overflow: hidden;
  height: clamp(280px, min(25.1979841613vw, 1050px), 1050px);
}
.equipment-mv {
  /* ▼ 白ウェッジ（850×260・傾き 260/850=0.306。会社概要 MV と同じ斜めで白地へ受け渡す） */
}
.equipment-mv::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  z-index: 1;
  width: min(20.3983681305vw, 850px);
  height: min(6.2395008399vw, 260px);
  background-color: #fff;
  -webkit-clip-path: polygon(0 0, 0 100%, 100% 100%);
          clip-path: polygon(0 0, 0 100%, 100% 100%);
}
.equipment-mv__bg {
  position: absolute;
  inset: 0;
  line-height: 0;
  /* picture は inline のままだと img の height:100% が解決されず
     写真が実寸で伸びて天井側だけが見える。block 化して枠に一致させる */
}
.equipment-mv__bg picture {
  display: block;
  width: 100%;
  height: 100%;
}
.equipment-mv__bg img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: 50% 85%;
     object-position: 50% 85%;
  /* 修正①で写真を横長（約4:1）の旋盤カットに差し替えたため、
     帯が縦長寄りになる SP では中央だけが切り出されて機械が判別できない。
     SP のみ主役（チャック側）が入る位置へ寄せる */
}
.equipment-mv__bg {
  /* 見出しが乗る左側だけ白のヴェール（暗い工場写真でも濃紺タイポが読める）
     白ウェッジ・白い外側光彩と同じ「白で抜く」語彙で統一 */
}
.equipment-mv__bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: -webkit-gradient(linear, left top, right top, from(rgba(255, 255, 255, 0.78)), color-stop(30%, rgba(255, 255, 255, 0.5)), color-stop(60%, rgba(255, 255, 255, 0)));
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.78) 0%, rgba(255, 255, 255, 0.5) 30%, rgba(255, 255, 255, 0) 60%);
}
.equipment-mv {
  /* ▼ 見出し（会社概要 MV と同じ x=811 アンカー・上下中央）
     js-fadeUp が transform(y) を使うため、中央寄せは transform ではなく flex で行う */
}
.equipment-mv__ttl {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin: 0;
  padding-left: min(19.4624430046vw, 811px);
}
.equipment-mv__en, .equipment-mv__ja {
  color: #072b68;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  line-height: 1;
  /* TOP FV キャッチと同じ白の外側光彩（暗い工場写真のため会社概要より濃く） */
  text-shadow: 0 0 clamp(3px, min(0.1919846412vw, 8px), 8px) rgba(255, 255, 255, 0.85), 0 0 clamp(4px, min(0.3839692825vw, 16px), 16px) rgba(255, 255, 255, 0.85), 0 0 clamp(6px, min(0.623950084vw, 26px), 26px) rgba(255, 255, 255, 0.85), 0 0 clamp(6px, min(0.623950084vw, 26px), 26px) rgba(255, 255, 255, 0.85);
}
.equipment-mv__en {
  font-size: clamp(13px, min(1.3438924886vw, 56px), 56px);
  font-weight: 700;
  letter-spacing: 0.02em;
}
.equipment-mv__ja {
  margin-top: min(1.1519078474vw, 48px);
  font-size: clamp(13px, min(2.3038156947vw, 96px), 96px);
  font-weight: 500;
  letter-spacing: 0;
}
.equipment-mv {
  /* 先頭字のみアクセント青（TOP 見出しと同じ語彙） */
}
.equipment-mv__ja-accent {
  color: #2e8cff;
}

/* =====================================================
# セクション見出し（設備紹介／所有機器 共通の型）
#   en（小・濃紺）→ 和字見出し（大・先頭字アクセント）→ 短い水色罫線。中央寄せ。
===================================================== */
.equipment-list__head,
.equipment-machines__head {
  text-align: center;
}

.equipment-list__en {
  margin: 0;
  color: #072b68;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: clamp(13px, min(1.3438924886vw, 56px), 56px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.02em;
}

.equipment-list__ttl,
.equipment-machines__ttl {
  margin: min(1.1519078474vw, 48px) 0 0;
  color: #333333;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: clamp(13px, min(2.3038156947vw, 96px), 96px);
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0;
}

.equipment-list__ttl-accent,
.equipment-machines__ttl-accent {
  color: #2e8cff;
}

.equipment-list__rule,
.equipment-machines__rule {
  display: block;
  width: min(5.0395968323vw, 210px);
  height: clamp(1px, min(0.0479961603vw, 2px), 2px);
  margin: min(2.3038156947vw, 96px) auto 0;
  background-color: #59c6ff;
}

/* =====================================================
# 設備紹介 — 写真＋設備名の3列グリッド（白地・件数可変）
===================================================== */
.equipment-list {
  padding-block: min(5.2795776338vw, 220px) min(5.7595392369vw, 240px);
}
.equipment-list__grid {
  list-style: none;
  margin: min(3.599712023vw, 150px) 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  -webkit-column-gap: min(2.3038156947vw, 96px);
     -moz-column-gap: min(2.3038156947vw, 96px);
          column-gap: min(2.3038156947vw, 96px);
  row-gap: min(3.11975042vw, 130px);
}
.equipment-list__figure {
  margin: 0;
}
.equipment-list {
  /* 写真枠（比率 1023:729 ＝ TOP 設備写真の実寸比。差し替え時も枠は不変） */
}
.equipment-list__photo {
  line-height: 0;
  aspect-ratio: 1023/729;
  overflow: hidden;
  /* picture は inline のままだと img の height:100% が解決されず object-fit が効かない
     （縦長写真が上端だけ表示される）。block 化して枠に一致させる */
}
.equipment-list__photo picture {
  display: block;
  width: 100%;
  height: 100%;
}
.equipment-list__photo img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.equipment-list {
  /* 設備名（淡青の名札・仕様書のテキスト枠を TOP の配色語彙で表現） */
}
.equipment-list__name {
  padding: min(min(0.7199424046vw, 30px), 30px) min(min(0.3839692825vw, 16px), 16px);
  background-color: #eaf5ff;
  color: #072b68;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: clamp(15px, min(0.9599232061vw, 40px), 40px);
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.02em;
  text-align: center;
  overflow-wrap: anywhere;
}

/* =====================================================
# 所有機器 — 淡青の斜め背景＋機器名リスト
#   会社概要のアクセス（斜め上辺の淡青）と同じ語彙でページを締める
===================================================== */
.equipment-machines {
  position: relative;
  padding-block: min(7.6793856491vw, 320px) min(6.719462443vw, 280px);
}
.equipment-machines {
  /* ▼ 淡青の斜め背景（上辺だけ右上がり） */
}
.equipment-machines::before {
  content: "";
  position: absolute;
  inset: 0;
  background-color: #eaf5ff;
  -webkit-clip-path: polygon(0 min(3.8396928246vw, 160px), 100% 0, 100% 100%, 0 100%);
          clip-path: polygon(0 min(3.8396928246vw, 160px), 100% 0, 100% 100%, 0 100%);
}
.equipment-machines .inner {
  position: relative;
  z-index: 1;
}
.equipment-machines__table {
  width: 100%;
  max-width: calc(1000 * var(--to-rem));
  margin: min(3.599712023vw, 150px) auto 0;
}
.equipment-machines__row {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: stretch;
  -webkit-align-items: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  background-color: #fff;
  overflow: hidden;
}
.equipment-machines {
  /* 機器名ラベル — ヘッダー tel / VIEW MORE と同じ濃紺グラデーションの帯。
     白文字＋太字＋字間広めで、右の一覧に対する見出しとして立たせる */
}
.equipment-machines__label {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 26%;
      -ms-flex: 0 0 26%;
          flex: 0 0 26%;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: min(min(1.1519078474vw, 48px), 48px) min(min(0.5759539237vw, 24px), 24px);
  background: -webkit-gradient(linear, left top, right top, from(#0d5be1), to(#013e9c));
  background: linear-gradient(90deg, #0d5be1 0%, #013e9c 100%);
  color: #fff;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: clamp(15px, min(1.0079193665vw, 42px), 42px);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.12em;
  text-indent: 0.12em;
}
.equipment-machines__body {
  -webkit-box-flex: 1;
  -webkit-flex: 1 1 auto;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  margin: 0;
  padding: min(min(1.1519078474vw, 48px), 48px) min(min(1.5358771298vw, 64px), 64px) min(min(1.1519078474vw, 48px), 48px) min(min(2.3038156947vw, 96px), 96px);
}
.equipment-machines__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.equipment-machines__list-item {
  position: relative;
  padding-left: min(min(1.0559155268vw, 44px), 44px);
  color: #333333;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: clamp(15px, min(1.0079193665vw, 42px), 42px);
  font-weight: 400;
  line-height: 1.9;
  letter-spacing: 0.04em;
  overflow-wrap: anywhere;
}
.equipment-machines__list-item + .equipment-machines__list-item {
  margin-top: min(min(0.5759539237vw, 24px), 24px);
}
.equipment-machines__list-item {
  /* 行頭の水色ドット（見出し罫線と同じアクセント） */
}
.equipment-machines__list-item::before {
  content: "";
  position: absolute;
  top: 0.75em;
  left: 0;
  width: clamp(6px, min(0.3359731222vw, 14px), 14px);
  height: clamp(6px, min(0.3359731222vw, 14px), 14px);
  border-radius: 50%;
  background-color: #59c6ff;
}

/* =====================================================
# company（会社概要）下層
#   MV（青空写真＋濃紺タイポ＋白グロー＋白ウェッジ／仕様書どおり 日本語→英字 を中央揃え）
#   → OutLine / 会社概要（見出し＋テーブル10項目・白地）
#   → 働きやすさへの取り組み（淡青の斜め面＋白カード3枚 POINT 01〜03）
#   → Access Map / アクセスマップ（見出し＋Googleマップ＋Googlemap ボタン・白地）
#   設計基準: カンプ DOC 4167px（vw()）／TB=768〜1199px／SP=mq(md)
#   配色は $color_main / $color_accent / $color_pale / $color_rule / $color_txt / $white のみ
===================================================== */
body.company {
  background-color: #ffffff;
}

/* 下層の版面（見出し・表・カード・マップの左右を全セクションで揃える固定値） */
/* -----------------------------------------------------
# タブレット帯（768〜1199px）
#   本プロジェクトは css-mqpacker が「max-width:767px」ブロックを
#   「max-width:1199px」より前にまとめるため、素の mq(xl) を使うと
#   タブレット指定が SP 指定を上書きしてしまう（後勝ち）。
#   そこで既存 mixin を入れ子にして重なりの無い帯域として出力する
#   （出力: screen and (min-width:768px) and (max-width:1199px)）。
----------------------------------------------------- */
/* -----------------------------------------------------
# セクション見出しの型（TOP about / equipment 踏襲）
#   英字（濃紺 Bold）→ 日本語（先頭字アクセント）→ 短い罫線
#   OutLine と Access Map で共用する
----------------------------------------------------- */
/* =====================================================
# MV — TOP FV 踏襲（写真＋濃紺タイポ＋白い外側光彩）
#   ヘッダーは透過オーバーレイなので写真上端に重なる（見出しは上下中央で干渉なし）
===================================================== */
.company-mv {
  position: relative;
  overflow: hidden;
  height: clamp(280px, min(25.1979841613vw, 1050px), 1050px);
}
.company-mv {
  /* ▼ 白ウェッジ（850×260・傾き 260/850=0.306。about 帯と同じ斜めの語彙で白地へ受け渡す） */
}
.company-mv::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  z-index: 1;
  width: min(20.3983681305vw, 850px);
  height: min(6.2395008399vw, 260px);
  background-color: #fff;
  -webkit-clip-path: polygon(0 0, 0 100%, 100% 100%);
          clip-path: polygon(0 0, 0 100%, 100% 100%);
}
.company-mv__bg {
  position: absolute;
  inset: 0;
  line-height: 0;
  /* picture は高さ auto のインライン要素なので、img の height:100% が効くように箱にする */
}
.company-mv__bg picture {
  display: block;
  width: 100%;
  height: 100%;
}
.company-mv__bg img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: 50% 45%;
     object-position: 50% 45%;
}
.company-mv {
  /* ▼ 見出し（事業内容・設備一覧ページと同じ x=811 アンカー・上下中央／CEO 指示 2026-07-24）
     js-fadeUp が transform(y) を使うため、中央寄せは transform ではなく flex で行う */
}
.company-mv__ttl {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin: 0;
  padding-left: min(19.4624430046vw, 811px);
}
.company-mv__ja, .company-mv__en {
  color: #072b68;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  line-height: 1;
  /* TOP FV キャッチと同じ白の外側光彩（写真上での可読性確保。白なので白地側では不可視＝濁らない） */
  text-shadow: 0 0 clamp(3px, min(0.1919846412vw, 8px), 8px) rgba(255, 255, 255, 0.6), 0 0 clamp(4px, min(0.3839692825vw, 16px), 16px) rgba(255, 255, 255, 0.6), 0 0 clamp(6px, min(0.623950084vw, 26px), 26px) rgba(255, 255, 255, 0.6), 0 0 clamp(6px, min(0.623950084vw, 26px), 26px) rgba(255, 255, 255, 0.6);
}
.company-mv {
  /* 仕様書は日本語（大）が上・英字（小）が下 */
}
.company-mv__ja {
  font-size: clamp(13px, min(2.3038156947vw, 96px), 96px);
  font-weight: 500;
  letter-spacing: 0;
}
.company-mv__en {
  margin-top: min(1.1519078474vw, 48px);
  font-size: clamp(13px, min(1.3438924886vw, 56px), 56px);
  font-weight: 700;
  letter-spacing: 0.02em;
}
.company-mv {
  /* 先頭字のみアクセント青（TOP 見出しと同じ語彙） */
}
.company-mv__ja-accent {
  color: #2e8cff;
}

/* =====================================================
# OutLine — 会社概要（表）
#   白地・余白広め・下線 2 トーン（th=濃紺／td=濃紺20%）
#   見出しは表の版面（max-width 1000）左端に揃える
===================================================== */
.company-outline {
  padding-block: min(5.7595392369vw, 240px) min(5.9755219582vw, 249px);
}
.company-outline__body {
  width: 100%;
  max-width: calc(1400 * var(--to-rem));
  margin-inline: auto;
}
.company-outline__en {
  margin: 0;
  color: #072b68;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: clamp(13px, min(1.3438924886vw, 56px), 56px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.02em;
}
.company-outline__ttl {
  margin: min(1.1519078474vw, 48px) 0 0;
  color: #333333;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: clamp(13px, min(2.3038156947vw, 96px), 96px);
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0;
}
.company-outline__ttl-accent {
  color: #2e8cff;
}
.company-outline__rule {
  display: block;
  width: min(5.0395968323vw, 210px);
  height: clamp(1px, min(0.0479961603vw, 2px), 2px);
  margin: min(1.5358771298vw, 64px) 0 0;
  background-color: #59c6ff;
}
.company-outline__table {
  width: 100%;
  margin-top: min(3.8396928246vw, 160px);
  border-collapse: collapse;
}
.company-outline__table th,
.company-outline__table td {
  padding: min(min(1.3438924886vw, 56px), 56px) min(min(1.1519078474vw, 48px), 48px) min(min(1.3438924886vw, 56px), 56px) min(min(0.5759539237vw, 24px), 24px);
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: clamp(15px, min(1.0079193665vw, 42px), 42px);
  line-height: 1.9;
  letter-spacing: 0.04em;
  text-align: left;
  vertical-align: top;
}
.company-outline__table th {
  width: 26%;
  font-weight: 500;
  color: #072b68;
  border-bottom: clamp(1px, min(0.0719942405vw, 3px), 3px) solid #072b68;
}
.company-outline__table td {
  font-weight: 400;
  color: #333333;
  border-bottom: 1px solid rgba(7, 43, 104, 0.2);
}
.company-outline__table {
  /* SP: 項目名の上に値を縦積み（1行=1ブロック） */
}

/* =====================================================
# 働きやすさへの取り組み — 淡青の斜め面＋白カード3枚（POINT 01〜03）
#   斜めの上辺は TOP equipment / business の強みと同じ語彙
===================================================== */
.company-welfare {
  position: relative;
  padding-block: min(8.6393088553vw, 360px) min(7.6793856491vw, 320px);
}
.company-welfare::before {
  content: "";
  position: absolute;
  inset: 0;
  background-color: #eaf5ff;
  -webkit-clip-path: polygon(0 min(3.8396928246vw, 160px), 100% 0, 100% 100%, 0 100%);
          clip-path: polygon(0 min(3.8396928246vw, 160px), 100% 0, 100% 100%, 0 100%);
}
.company-welfare .inner {
  position: relative;
  z-index: 1;
}
.company-welfare {
  /* ▼ タイトル（仕様書どおり中央揃え・英字なし） */
}
.company-welfare__ttl {
  margin: 0;
  color: #333333;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: clamp(13px, min(2.3038156947vw, 96px), 96px);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0;
  text-align: center;
}
.company-welfare__ttl-accent {
  color: #2e8cff;
}
.company-welfare {
  /* ▼ カード2枚（修正① 2026-08-05 で「副業OK」を削除し 3枚→2枚）
     カード1枚あたりの幅は3枚時と揃うよう、版面を rem(920) に絞って中央寄せする */
}
.company-welfare__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: min(1.9198464123vw, 80px);
  width: 100%;
  max-width: calc(920 * var(--to-rem));
  margin: min(4.7996160307vw, 200px) auto 0;
  padding: 0;
  list-style: none;
}
.company-welfare__item {
  min-width: 0;
  background-color: #fff;
  padding: min(2.3038156947vw, 96px) min(1.7278617711vw, 72px) min(2.495800336vw, 104px);
}
.company-welfare__point {
  margin: 0;
  text-align: center;
}
.company-welfare__point-label {
  display: block;
  color: #2e8cff;
  font-family: "Manrope", "Helvetica Neue", Arial, sans-serif;
  font-size: clamp(13px, min(1.1519078474vw, 48px), 48px);
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.16em;
}
.company-welfare__point-num {
  display: block;
  margin-top: clamp(6px, min(0.4799616031vw, 20px), 20px);
  color: #072b68;
  font-family: "Manrope", "Helvetica Neue", Arial, sans-serif;
  font-size: clamp(13px, min(2.6877849772vw, 112px), 112px);
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.02em;
}
.company-welfare__item-ttl {
  margin: clamp(14px, min(1.0559155268vw, 44px), 44px) 0 0;
  color: #072b68;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: clamp(13px, min(1.4398848092vw, 60px), 60px);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.02em;
  text-align: center;
}
.company-welfare__text {
  margin: clamp(14px, min(1.0559155268vw, 44px), 44px) 0 0;
  color: #333333;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: clamp(13px, min(0.9119270458vw, 38px), 38px);
  font-weight: 400;
  line-height: 1.9;
  letter-spacing: 0.1em;
  text-align: justify;
}

/* =====================================================
# Access Map — アクセスマップ（見出し＋Googleマップ＋Googlemap ボタン）
#   直前の welfare が淡青面なので、こちらは白地で受けて締める
===================================================== */
.company-access {
  padding-block: min(7.6793856491vw, 320px) min(6.2395008399vw, 260px);
}
.company-access__body {
  width: 100%;
  max-width: calc(1400 * var(--to-rem));
  margin-inline: auto;
}
.company-access__en {
  margin: 0;
  color: #072b68;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: clamp(13px, min(1.3438924886vw, 56px), 56px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.02em;
}
.company-access__ttl {
  margin: min(1.1519078474vw, 48px) 0 0;
  color: #333333;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: clamp(13px, min(2.3038156947vw, 96px), 96px);
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0;
}
.company-access__ttl-accent {
  color: #2e8cff;
}
.company-access__rule {
  display: block;
  width: min(5.0395968323vw, 210px);
  height: clamp(1px, min(0.0479961603vw, 2px), 2px);
  margin: min(1.5358771298vw, 64px) 0 0;
  background-color: #59c6ff;
}
.company-access__map {
  margin-top: min(3.8396928246vw, 160px);
  line-height: 0;
}
.company-access__map iframe {
  display: block;
  width: 100%;
  height: clamp(300px, min(21.5982721382vw, 900px), 900px);
  border: 0;
}
.company-access {
  /* ▼ Googlemap ボタン（TOP の c-viewmore 塗りタイプを再利用・中央配置） */
}
.company-access__btnwrap {
  margin-top: min(3.8396928246vw, 160px);
  text-align: center;
}

/* =====================================================
# Contact Page（仕様書シート5・TOP デザイン踏襲）
#   contact-mv   … MV（事業内容／設備一覧／会社概要と同型：写真＋濃紺タイポ＋白ウェッジ）
#   contact-info … お電話・FAX（TOP home-contact 踏襲：青グラデ地＋ピル＋白仕切り線）
#   mail-form    … メールフォーム（白地／TOP about 踏襲の小英字＋和字大＋水色罫線）
#
# 単位は TOP と同じ 4167px カンプ基準の vw()。font-size は全て
# clamp(px下限, vw(N), Npx) の単調 clamp でリキッド均整を保つ。
===================================================== */
body.contact {
  background-color: #ffffff;
  /* ---------------------------------------------------
  # MV（事業内容／設備一覧／会社概要ページの MV と同型）
  --------------------------------------------------- */
}
body.contact .contact-mv {
  position: relative;
  overflow: hidden;
  height: clamp(280px, min(25.1979841613vw, 1050px), 1050px);
}
body.contact .contact-mv {
  /* ▼ 白ウェッジ（850×260・傾き 260/850=0.306。about 帯と同じ斜めの語彙） */
}
body.contact .contact-mv::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  z-index: 1;
  width: min(20.3983681305vw, 850px);
  height: min(6.2395008399vw, 260px);
  background-color: #fff;
  -webkit-clip-path: polygon(0 0, 0 100%, 100% 100%);
          clip-path: polygon(0 0, 0 100%, 100% 100%);
}
body.contact .contact-mv__bg {
  position: absolute;
  inset: 0;
  line-height: 0;
  /* picture は高さ auto のインライン要素なので、img の height:100% が効くように箱にする */
}
body.contact .contact-mv__bg picture {
  display: block;
  width: 100%;
  height: 100%;
}
body.contact .contact-mv__bg img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: 50% 15%;
     object-position: 50% 15%;
}
body.contact .contact-mv__bg {
  /* SP は写真をほぼ全景で見せるぶん見出し側が暗くなるため、
     他ページ MV と同じ明るさ帯に揃える白ベールを左から重ねる */
}
body.contact .contact-mv {
  /* ▼ 見出し（about テキスト列と同じ x=811 アンカー・上下中央。他の下層 MV と同じ）
     js-fadeUp が transform(y) を使うため、中央寄せは transform ではなく flex で行う */
}
body.contact .contact-mv__ttl {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin: 0;
  padding-left: min(19.4624430046vw, 811px);
}
body.contact .contact-mv__ja, body.contact .contact-mv__en {
  color: #072b68;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  line-height: 1;
  /* TOP FV キャッチと同じ白の外側光彩（写真上での可読性確保） */
  text-shadow: 0 0 clamp(3px, min(0.1919846412vw, 8px), 8px) rgba(255, 255, 255, 0.6), 0 0 clamp(4px, min(0.3839692825vw, 16px), 16px) rgba(255, 255, 255, 0.6), 0 0 clamp(6px, min(0.623950084vw, 26px), 26px) rgba(255, 255, 255, 0.6), 0 0 clamp(6px, min(0.623950084vw, 26px), 26px) rgba(255, 255, 255, 0.6);
}
body.contact .contact-mv {
  /* 仕様書は日本語（大）が上・英字（小）が下
     タブレット帯は mq(mmd)×mq(xl) の入れ子で出す（素の mq(xl) は mqpacker の並べ替えで
     SP 指定に上書きされるため。会社概要ページ mq-tb と同じ考え方） */
}
body.contact .contact-mv__ja {
  font-size: clamp(13px, min(2.3038156947vw, 96px), 96px);
  font-weight: 500;
  letter-spacing: 0;
}
body.contact .contact-mv__en {
  margin-top: min(1.1519078474vw, 48px);
  font-size: clamp(13px, min(1.3438924886vw, 56px), 56px);
  font-weight: 700;
  letter-spacing: 0.02em;
}
body.contact .contact-mv {
  /* 先頭字のみアクセント青（TOP 見出しと同じ語彙） */
}
body.contact .contact-mv__ja-accent {
  color: #2e8cff;
}
body.contact {
  /* ---------------------------------------------------
  # お電話・FAX でのお問い合わせ（TOP home-contact 踏襲）
  --------------------------------------------------- */
}
body.contact .contact-info {
  background: linear-gradient(24deg, #0042a0 0%, #007cc6 100%);
  color: #fff;
  padding-block: clamp(40px, min(3.599712023vw, 150px), 150px);
}
body.contact .contact-info__inner {
  text-align: center;
}
body.contact .contact-info__ttl {
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-weight: 500;
  font-size: clamp(20px, min(1.5358771298vw, 64px), 64px);
  line-height: 1.4;
  letter-spacing: 0.08em;
  text-indent: 0.08em;
}
body.contact .contact-info {
  /* 電話ボックス／仕切り線／FAX ボックスの横並び */
}
body.contact .contact-info__boxes {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: clamp(28px, min(2.1598272138vw, 90px), 90px);
}
body.contact .contact-info__box {
  -webkit-box-flex: 0;
  -webkit-flex: 0 1 auto;
      -ms-flex: 0 1 auto;
          flex: 0 1 auto;
  width: clamp(280px, min(21.5982721382vw, 900px), 900px);
  max-width: 50%;
  text-align: center;
}
body.contact .contact-info__label {
  margin: 0;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-weight: 500;
  font-size: clamp(15px, min(1.0079193665vw, 42px), 42px);
  line-height: 1.4;
  letter-spacing: 0.04em;
}
body.contact .contact-info {
  /* ピル（TOP home-contact__pill 踏襲） */
}
body.contact .contact-info__pill {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: clamp(8px, min(0.7199424046vw, 30px), 30px);
  width: clamp(240px, min(17.494600432vw, 729px), 729px);
  max-width: 100%;
  height: clamp(48px, min(2.5197984161vw, 105px), 105px);
  margin: clamp(14px, min(1.0079193665vw, 42px), 42px) auto 0;
  border-radius: clamp(24px, min(1.247900168vw, 52px), 52px);
  -webkit-box-shadow: 0 clamp(2px, min(0.1439884809vw, 6px), 6px) clamp(8px, min(0.5279577634vw, 22px), 22px) rgba(1, 32, 96, 0.45);
          box-shadow: 0 clamp(2px, min(0.1439884809vw, 6px), 6px) clamp(8px, min(0.5279577634vw, 22px), 22px) rgba(1, 32, 96, 0.45);
}
body.contact .contact-info__pill--tel {
  background-color: #fff;
  color: #003d99;
}
body.contact .contact-info__pill--fax {
  background: -webkit-gradient(linear, left top, right top, from(#0d5be1), to(#013e9c));
  background: linear-gradient(90deg, #0d5be1 0%, #013e9c 100%);
  border: clamp(1px, min(0.0719942405vw, 3px), 3px) solid rgba(255, 255, 255, 0.35);
  color: #fff;
}
body.contact .contact-info__pill-icon {
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  width: clamp(18px, min(1.5838732901vw, 66px), 66px);
  height: clamp(18px, min(1.6078713703vw, 67px), 67px);
  line-height: 0;
}
body.contact .contact-info__pill-icon svg {
  display: block;
  width: 100%;
  height: 100%;
  fill: currentColor;
}
body.contact .contact-info__pill-num {
  font-family: "Manrope", "Helvetica Neue", Arial, sans-serif;
  font-weight: 600;
  font-size: clamp(20px, min(1.4398848092vw, 60px), 60px);
  line-height: 1;
  letter-spacing: 0.04em;
  white-space: nowrap;
  /* PC は表示のみ（hover・リンクなし）。SP は tel-3.1.js が data-action="call" を発信化 */
}
body.contact .contact-info__hours {
  margin: clamp(10px, min(0.6719462443vw, 28px), 28px) 0 0;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-weight: 400;
  font-size: clamp(13px, min(0.7679385649vw, 32px), 32px);
  line-height: 1.4;
  letter-spacing: 0.04em;
}
body.contact .contact-info {
  /* 仕切り縦線（TOP home-contact__divider 踏襲） */
}
body.contact .contact-info__divider {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  -webkit-align-self: center;
      -ms-flex-item-align: center;
          align-self: center;
  width: clamp(1px, min(0.0479961603vw, 2px), 2px);
  height: clamp(80px, min(7.1994240461vw, 300px), 300px);
  margin-inline: clamp(20px, min(1.9198464123vw, 80px), 80px);
  background-color: rgba(255, 255, 255, 0.7);
}
body.contact {
  /* ---------------------------------------------------
  # メールでのお問い合わせ（フォーム・白地）
  --------------------------------------------------- */
}
body.contact .mail-form {
  background-color: #ffffff;
  padding-block: clamp(44px, min(3.8396928246vw, 160px), 160px);
}
body.contact .mail-form__inner {
  max-width: 1100px;
  padding-inline: 15px;
  margin-inline: auto;
}
body.contact .mail-form ::-webkit-input-placeholder {
  color: #aaa;
}
body.contact .mail-form ::-moz-placeholder {
  color: #aaa;
}
body.contact .mail-form :-ms-input-placeholder {
  color: #aaa;
}
body.contact .mail-form ::-ms-input-placeholder {
  color: #aaa;
}
body.contact .mail-form ::placeholder {
  color: #aaa;
}
body.contact .mail-form {
  /* 見出し（TOP about 踏襲：小英字 → 和字大 → 水色の短罫線） */
}
body.contact .mail-form__en {
  margin: 0;
  font-family: "Manrope", "Helvetica Neue", Arial, sans-serif;
  font-weight: 600;
  font-size: clamp(13px, min(0.7679385649vw, 32px), 32px);
  line-height: 1;
  letter-spacing: 0.12em;
  color: #2e8cff;
}
body.contact .mail-form__title {
  margin-top: clamp(10px, min(0.623950084vw, 26px), 26px);
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-weight: 500;
  font-size: clamp(22px, min(1.8238540917vw, 76px), 76px);
  line-height: 1.3;
  letter-spacing: 0.04em;
  color: #072b68;
}
body.contact .mail-form__rule {
  display: block;
  width: clamp(80px, min(5.0395968323vw, 210px), 210px);
  height: 2px;
  margin-top: clamp(14px, min(0.8159347252vw, 34px), 34px);
  background-color: #59c6ff;
}
body.contact .mail-form__text {
  margin-top: clamp(22px, min(1.4398848092vw, 60px), 60px);
  text-align: justify; /* EZルール：下層ページの本文は両端揃え */
}
body.contact .mail-form__text > p {
  font-size: clamp(16px, min(0.8399328054vw, 35px), 18px);
  line-height: 2;
}
body.contact .mail-form__text .label {
  margin-right: 5px;
}
body.contact .mail-form__note {
  margin-top: clamp(16px, min(1.0559155268vw, 44px), 44px);
  font-size: clamp(16px, min(0.8399328054vw, 35px), 18px);
  line-height: 2;
}
body.contact .mail-form__note .label {
  margin-right: 5px;
}
body.contact .mail-form {
  /* ---------- 必須ラベル ---------- */
}
body.contact .mail-form .label {
  display: inline-block;
  background-color: #072b68;
  color: #fff;
  font-size: 13px;
  text-align: center;
  width: 45px;
  height: calc(28 * var(--to-rem));
  line-height: calc(28 * var(--to-rem));
  letter-spacing: 0.02em;
}
body.contact .mail-form .form-p {
  display: inline-block;
}
body.contact .mail-form .form-input {
  border: 1px solid #aaa;
  border-radius: 4px;
  padding: 8px 10px;
  width: 100%;
  font-size: 16px; /* iOS の自動ズーム防止 */
  font-family: inherit;
}
body.contact .mail-form .form-input--shortbox {
  max-width: calc(220 * var(--to-rem));
}
body.contact .mail-form .form-input:focus {
  outline: 2px solid #2e8cff;
  outline-offset: 1px;
}
body.contact .mail-form {
  /* ---------- 入力テーブル ---------- */
}
body.contact .mail-form .horizontal-table {
  margin-top: clamp(22px, min(1.4398848092vw, 60px), 60px);
}
body.contact .mail-form .horizontal-table table {
  width: 100%;
}
body.contact .mail-form .horizontal-table th {
  width: 27%;
  padding: 20px;
  background-color: rgba(234, 245, 255, 0.6);
  border-bottom: 1px solid #ccc;
  border-left: 1px solid #ccc;
  font-size: 16px;
  font-weight: bold;
  vertical-align: middle;
  text-align: left;
}
body.contact .mail-form .horizontal-table th .required {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 10px;
}
body.contact .mail-form .horizontal-table th:first-child {
  border-top: 1px solid #ccc;
}
body.contact .mail-form .horizontal-table th:last-child {
  border-right-width: 0;
}
body.contact .mail-form .horizontal-table td {
  padding: 10px 20px;
  border-right: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
  vertical-align: middle;
}
body.contact .mail-form .horizontal-table td:first-of-type {
  border-top: 1px solid #ccc;
}
body.contact .mail-form {
  /* ---------- 個人情報の取扱いについて ---------- */
}
body.contact .mail-form .privacy-policy {
  margin-block: clamp(24px, min(1.6798656108vw, 70px), 70px) clamp(14px, min(0.7199424046vw, 30px), 30px);
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: clamp(17px, min(1.0559155268vw, 44px), 22px);
  font-weight: 500;
  text-align: center;
  color: #072b68;
}
body.contact .mail-form .box-scroll {
  width: 100%;
  height: 240px;
  padding: 20px;
  border: 1px solid #ddd;
  overflow: hidden;
  overflow-y: scroll;
  background-color: #fff;
  font-size: clamp(16px, min(0.8399328054vw, 35px), 18px);
  text-align: justify; /* EZルール：下層ページの本文は両端揃え */
  overflow-wrap: anywhere;
}
body.contact .mail-form .box-scroll__title {
  font-size: 18px;
  font-weight: 500;
  line-height: 1.4;
  border-left: 8px solid #072b68;
  margin-bottom: 8px;
  padding-left: 8px;
}
body.contact .mail-form .box-scroll__li {
  text-indent: -25px;
  padding-left: 25px;
  letter-spacing: 0;
  margin-bottom: 7px;
}
body.contact .mail-form .privacy-wrapper {
  margin-top: clamp(18px, min(1.1999040077vw, 50px), 50px);
  text-align: center;
}
body.contact .mail-form .privacy__title {
  font-weight: 600;
  border-bottom: 1px solid #666;
  padding-bottom: 5px;
  margin-bottom: 10px;
}
body.contact .mail-form .privacy__link {
  color: #003d99;
  text-decoration: underline;
}
body.contact .mail-form .privacy {
  /* 送信ボタン（TOP のボタングラデ $grad_btn を踏襲・先頭に矢印） */
}
body.contact .mail-form .privacy-btn {
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: clamp(8px, min(0.5759539237vw, 24px), 24px);
  max-width: 100%;
  min-width: clamp(280px, min(23.9980801536vw, 1000px), 620px);
  padding: 18px 24px;
  border: none;
  border-radius: clamp(30px, min(1.6798656108vw, 70px), 70px);
  background: -webkit-gradient(linear, left top, right top, from(#0d5be1), to(#013e9c));
  background: linear-gradient(90deg, #0d5be1 0%, #013e9c 100%);
  color: #fff;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-weight: 500;
  cursor: pointer;
  -webkit-box-shadow: 0 clamp(2px, min(0.1439884809vw, 6px), 6px) clamp(8px, min(0.5279577634vw, 22px), 22px) rgba(1, 32, 96, 0.25);
          box-shadow: 0 clamp(2px, min(0.1439884809vw, 6px), 6px) clamp(8px, min(0.5279577634vw, 22px), 22px) rgba(1, 32, 96, 0.25);
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}
body.contact .mail-form .privacy-btn {
  /* 仕様書の「＞」＝装飾の矢印。文言に混ぜず CSS で描画する */
}
body.contact .mail-form .privacy-btn::before {
  content: "";
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  width: clamp(7px, min(0.4319654428vw, 18px), 18px);
  height: clamp(7px, min(0.4319654428vw, 18px), 18px);
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
body.contact .mail-form .privacy-btn {
  /* 確認画面の「戻る」＝送信ボタンと区別するアウトライン型・矢印は左向き */
}
body.contact .mail-form .privacy-btn--back {
  border: 2px solid #072b68;
  background: #fff;
  color: #072b68;
  -webkit-box-shadow: none;
          box-shadow: none;
}
body.contact .mail-form .privacy-btn--back::before {
  -webkit-transform: rotate(-135deg);
          transform: rotate(-135deg);
}
body.contact .mail-form .privacy-btn__label {
  font-size: clamp(14px, min(0.9119270458vw, 38px), 19px);
  line-height: 1.4;
  letter-spacing: 0.04em;
  text-align: left;
}
body.contact .mail-form .privacy-btn__wrapper {
  margin-top: clamp(26px, min(1.9198464123vw, 80px), 80px);
  text-align: center;
}
body.contact .mail-form .privacy-btn__wrapper {
  /* 確認画面用：戻る／送信を横並び（SP は縦積みで「送信する」を上に） */
}
body.contact .mail-form .privacy-btn__wrapper--confirm {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: clamp(12px, min(1.3438924886vw, 56px), 28px);
}
body.contact .mail-form .privacy-btn__wrapper--confirm .privacy-btn {
  min-width: clamp(150px, min(13.438924886vw, 560px), 240px);
}
body.contact .mail-form .privacy-btn__wrapper {
  /* 入力画面では確認画面用ボタンを非表示（プログラマがこの class を外して流用） */
}
body.contact .mail-form .privacy-btn__wrapper--confirm.confirm-only {
  display: none;
}
body.contact .mail-form {
  /* ---------- ラジオボタン・チェックボックス ---------- */
}
body.contact .mail-form input[type=radio],
body.contact .mail-form input[type=checkbox] {
  opacity: 0;
  position: absolute;
}
body.contact .mail-form input[type=radio]:focus + span,
body.contact .mail-form input[type=checkbox]:focus + span {
  outline: 1px solid #ccc;
}
body.contact .mail-form input[type=radio] + span,
body.contact .mail-form input[type=checkbox] + span {
  display: inline-block;
  position: relative;
  margin: 0 2em 0 0;
  padding: 0.3em 0.3em 0.3em 2em;
  font-size: 16px;
  line-height: 1.4;
  vertical-align: middle;
  cursor: pointer;
}
body.contact .mail-form input[type=checkbox] + span:before {
  position: absolute;
  top: 0.2em;
  left: 0;
  content: "";
  width: 1.25em;
  height: 1.25em;
  border: 1px solid #999;
  background: #fff;
  line-height: 1;
  vertical-align: middle;
}
body.contact .mail-form input[type=checkbox] + span:after {
  content: "";
  display: none;
}
body.contact .mail-form input[type=checkbox]:checked + span:after {
  display: block;
  position: absolute;
  top: 0.3em;
  left: 0.4em;
  width: 0.5em;
  height: 1em;
  content: "";
  border-bottom: 3px solid #072b68;
  border-right: 3px solid #072b68;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
body.contact .mail-form {
  /* ---------- セレクトボックス ---------- */
}
body.contact .mail-form select {
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  display: block;
  width: 100%;
  padding: 8px 30px 8px 10px;
  border-radius: 4px;
  border: 1px solid #aaa;
  background-color: #fff;
  font-size: 16px;
  font-family: inherit;
}
body.contact .mail-form .selectWrap {
  position: relative;
  display: block;
  width: 30%;
}
body.contact .mail-form .selectWrap::after {
  position: absolute;
  right: 10px;
  top: 0;
  bottom: 0;
  margin: auto;
  content: "";
  display: block;
  width: 8px;
  height: 8px;
  border-right: 2px solid #999;
  border-bottom: 2px solid #999;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  pointer-events: none;
}
body.contact .mail-form {
  /* ---------- テキストエリア ---------- */
}
body.contact .mail-form textarea {
  resize: none;
}
body.contact {
  /* ---------------------------------------------------
  # 印刷（@media print）
  #   個人情報の取扱いはスクロール枠のため、印刷では全文が出るよう高さ制限を解除する
  #   （EZ 印刷チェック「すべてのコンテンツが表示される」）
  --------------------------------------------------- */
}

/* FLOCSS
----------------------------------------------------- */
/* FLOCSS
----------------------------------------------------- */
/*! destyle.css v2.0.2 | MIT License | https://github.com/nicolas-cusan/destyle.css */
/* Reset box-model and set borders */
/* ============================================ */
*,
::before,
::after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  border-style: solid;
  border-width: 0;
}

/* Document */
/* ============================================ */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 * 3. Remove gray overlay on links for iOS.
 */
html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  -webkit-tap-highlight-color: transparent; /* 3*/
}

/* Sections */
/* ============================================ */
/**
 * Remove the margin in all browsers.
 */
body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
  display: block;
}

/* Vertical rhythm */
/* ============================================ */
p,
table,
blockquote,
address,
pre,
iframe,
form,
figure,
dl {
  margin: 0;
}

/* Headings */
/* ============================================ */
h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  line-height: inherit;
  font-weight: inherit;
  margin: 0;
}

/* Lists (enumeration) */
/* ============================================ */
ul,
ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

/* Lists (definition) */
/* ============================================ */
dt {
  font-weight: bold;
}

dd {
  margin-left: 0;
}

/* Grouping content */
/* ============================================ */
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  -webkit-box-sizing: content-box;
          box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
  border-top-width: 1px;
  margin: 0;
  clear: both;
  color: inherit;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace; /* 1 */
  font-size: inherit; /* 2 */
}

address {
  font-style: inherit;
}

/* Text-level semantics */
/* ============================================ */
/**
 * Remove the gray background on active links in IE 10.
 */
a {
  background-color: transparent;
  text-decoration: none;
  color: inherit;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  text-decoration: underline; /* 2 */
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted; /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: inherit; /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content */
/* ============================================ */
/**
 * Prevent vertical alignment issues.
 */
img,
embed,
object,
iframe {
  vertical-align: bottom;
}

img {
  max-width: 100%;
}

/* Forms */
/* ============================================ */
/**
 * Reset form fields to make them styleable
 */
button,
input,
optgroup,
select,
textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  vertical-align: middle;
  color: inherit;
  font: inherit;
  background: transparent;
  padding: 0;
  margin: 0;
  outline: 0;
  border-radius: 0;
  text-align: inherit;
}

/**
 * Reset radio and checkbox appearance to preserve their look in iOS.
 */
[type=checkbox] {
  -webkit-appearance: checkbox;
  -moz-appearance: checkbox;
       appearance: checkbox;
}

[type=radio] {
  -webkit-appearance: radio;
  -moz-appearance: radio;
       appearance: radio;
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
  /* 1 */
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
  /* 1 */
  text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type=button],
[type=reset],
[type=submit] {
  cursor: pointer;
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
}

button[disabled],
[type=button][disabled],
[type=reset][disabled],
[type=submit][disabled] {
  cursor: default;
}

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Remove arrow in IE10 & IE11
 */
select::-ms-expand {
  display: none;
}

/**
 * Remove padding
 */
option {
  padding: 0;
}

/**
 * Reset to invisible
 */
fieldset {
  margin: 0;
  padding: 0;
  min-width: 0;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */
legend {
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 3 */
  white-space: normal; /* 1 */
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
  overflow: auto;
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the outline style in Safari.
 */
[type=search] {
  outline-offset: -2px; /* 1 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/**
 * Clickable labels
 */
label[for] {
  cursor: pointer;
}

/* Interactive */
/* ============================================ */
/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item;
}

/*
 * Remove outline for editable content.
 */
[contenteditable] {
  outline: none;
}

/* Table */
/* ============================================ */
table {
  border-collapse: collapse;
  border-spacing: 0;
}

caption {
  text-align: left;
}

td,
th {
  vertical-align: top;
  padding: 0;
}

th {
  text-align: left;
  font-weight: bold;
}

/* Misc */
/* ============================================ */
/**
 * Add the correct display in IE 10+.
 */
template {
  display: none;
}

/**
 * Add the correct display in IE 10.
 */
[hidden] {
  display: none;
}

:root {
  --to-rem: 0.0625rem;
}

main {
  overflow: hidden; /*横スクロールの発生を防止*/
  background-size: auto auto;
}

html {
  background-color: #fff;
}

body {
  max-width: 4167px;
  margin-inline: auto;
  font-size: calc(16 * var(--to-rem));
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.02em;
  color: #333333;
  background-color: #fff;
}

section > picture,
section picture {
  display: block;
  line-height: 0;
}

a {
  -webkit-transition: 0.25s;
  transition: 0.25s;
}

a:hover {
  text-decoration: none;
}

img {
  height: auto;
}

/* FLOCSS
----------------------------------------------------- */
.inner {
  padding-inline: 15px;
  max-width: calc(2545px + 30px);
  margin-inline: auto;
}

/* =====================================================
# l-header（大和化成・透過オーバーレイ）
# inspect header [108,42,4063,147]（DOC 4167 基準）
#   左: ロゴ画像 617×77 [108,54]（FV の青グラデ上に載る）
#   右: ナビ5項目（間隔104・フォント実寸48・#333333／現在地 #072b68）
#       ＋ 角丸 tel ボタン 522×105（グラデ #0d5be1→#013e9c・白文字40）
# 背景は持たない（FV 上 absolute）。.show（逆スクロール）時のみ白バー固定。
# XL 以下: ナビ非表示→ハンバーガー（ドロワー _l-drawer）。
===================================================== */
.l-header {
  position: absolute;
  inset: 0 0 auto 0;
  z-index: 50;
  width: 100%;
  max-width: 4167px;
  margin-inline: auto;
  padding-top: min(1.0079193665vw, 42px);
  height: calc(min(1.0079193665vw, 42px) + min(2.5197984161vw, 105px));
}
.l-header__inner {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: 100%;
  height: min(2.5197984161vw, 105px);
  padding-inline: min(2.5917926566vw, 108px) min(2.495800336vw, 104px);
}
.l-header {
  /* ▼ ロゴ（h1=index / div=下層） */
}
.l-header__logo {
  margin: 0;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
}
.l-header__logo-link {
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  text-decoration: none;
}
.l-header__logo-link img {
  display: block;
  width: clamp(180px, min(14.8068154548vw, 617px), 617px);
  height: auto;
}
.l-header {
  /* ▼ ナビ（リスト＋telボタン）。XL 以下は非表示（ドロワーへ） */
}
.l-header__nav {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: min(2.4718022558vw, 103px);
}
.l-header__nav-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: min(2.495800336vw, 104px);
}
.l-header__nav-list li {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
}
.l-header__nav-link {
  display: inline-block;
  color: #333333;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: clamp(13px, min(1.1519078474vw, 48px), 48px);
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0.02em;
  text-decoration: none;
  white-space: nowrap;
  -webkit-transition: color 0.3s ease;
  transition: color 0.3s ease;
}
.l-header__nav-link {
  /* 現在地: カンプ「ホーム」#072b68（aria-current="page" 併記） */
}
.l-header__nav-link.is-active {
  color: #072b68;
}
.l-header__nav-link {
  /* ▼ 下層ページのみ: MV の写真上に載って文字色が同化するため白の外側光彩で可読性を確保
     （CEO 指示 2026-07-24）。TOP は指示対象外なので body.index を除外。
     白バー固定の .show 状態では白地に白の光彩＝不可視のため見た目は変わらない */
}
body:not(.index) .l-header__nav-link {
  text-shadow: 0 0 clamp(3px, min(0.2399808015vw, 10px), 10px) rgba(255, 255, 255, 0.9), 0 0 clamp(5px, min(0.4799616031vw, 20px), 20px) rgba(255, 255, 255, 0.9), 0 0 clamp(8px, min(0.8159347252vw, 34px), 34px) rgba(255, 255, 255, 0.7);
}
.l-header {
  /* ▼ tel ボタン（522×105 角丸ピル・グラデ地・白文字）
     PC は表示のみ: hover / cursor / tel リンクなし（EZ 規約・SP は tel-3.1.js が発信化） */
}
.l-header__tel {
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  gap: 0.3em;
  width: clamp(200px, min(12.5269978402vw, 522px), 522px);
  height: clamp(40px, min(2.5197984161vw, 105px), 105px);
  border-radius: clamp(20px, min(1.2718982481vw, 53px), 53px);
  background: -webkit-gradient(linear, left top, right top, from(#0d5be1), to(#013e9c));
  background: linear-gradient(90deg, #0d5be1 0%, #013e9c 100%);
  color: #fff;
}
.l-header__tel-label, .l-header__tel-number {
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: clamp(13px, min(0.9599232061vw, 40px), 40px);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.l-header {
  /* ▼ ハンバーガー（XL 以下のみ表示・3本線） */
}
.l-header__hamburger {
  display: none;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  position: relative;
  width: calc(40 * var(--to-rem));
  height: calc(40 * var(--to-rem));
  background: none;
  border: 0;
  cursor: pointer;
  padding: 0;
}
.l-header__hamburger span {
  position: absolute;
  left: 50%;
  width: calc(30 * var(--to-rem));
  height: 2px;
  background-color: #072b68;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  -webkit-transition: opacity 0.3s ease, background-color 0.3s ease, -webkit-transform 0.3s ease;
  transition: opacity 0.3s ease, background-color 0.3s ease, -webkit-transform 0.3s ease;
  transition: transform 0.3s ease, opacity 0.3s ease, background-color 0.3s ease;
  transition: transform 0.3s ease, opacity 0.3s ease, background-color 0.3s ease, -webkit-transform 0.3s ease;
}
.l-header__hamburger span:nth-child(1) {
  top: calc(13 * var(--to-rem));
}
.l-header__hamburger span:nth-child(2) {
  top: calc(19 * var(--to-rem));
}
.l-header__hamburger span:nth-child(3) {
  top: calc(25 * var(--to-rem));
}
.l-header__hamburger.is-checked span:nth-child(1) {
  -webkit-transform: translate(-50%, calc(6 * var(--to-rem))) rotate(45deg);
          transform: translate(-50%, calc(6 * var(--to-rem))) rotate(45deg);
}
.l-header__hamburger.is-checked span:nth-child(2) {
  opacity: 0;
}
.l-header__hamburger.is-checked span:nth-child(3) {
  -webkit-transform: translate(-50%, calc(-6 * var(--to-rem))) rotate(-45deg);
          transform: translate(-50%, calc(-6 * var(--to-rem))) rotate(-45deg);
}

/* =====================================================
# 逆スクロール（上方向）で固定ヘッダー表示
#   script.js が #header に .show を付与。
#   通常は FV 上の透過オーバーレイ。.show 時のみ白バー＋影で可読性を確保
#  （本サイトはナビ文字が濃色のため白地バー）。
===================================================== */
.l-header.show {
  position: fixed;
  inset: 0 0 auto 0;
  margin-inline: auto;
  padding-top: 0;
  height: 80px; /* 逆スクロール表示時のヘッダー高さ（CEO 指定 2026-07-24）。初期の FV 上オーバーレイ側は変更しない */
  background-color: #fff;
  -webkit-box-shadow: 0 2px 12px rgba(7, 43, 104, 0.16);
          box-shadow: 0 2px 12px rgba(7, 43, 104, 0.16);
  -webkit-animation: l-header-slide-in 0.3s ease;
          animation: l-header-slide-in 0.3s ease;
}
.l-header.show .l-header__inner {
  height: 100%; /* 80px を満たして中身を上下中央に */
  padding-block: 0;
}

@-webkit-keyframes l-header-slide-in {
  from {
    -webkit-transform: translateY(-100%);
            transform: translateY(-100%);
  }
  to {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}

@keyframes l-header-slide-in {
  from {
    -webkit-transform: translateY(-100%);
            transform: translateY(-100%);
  }
  to {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
/* =====================================================
# l-drawer（SP ドロワーメニュー）
# 画面右外から is-checked でスライドイン。EZ 標準 script.js の
# #js-drawer-icon / #js-drawer-content / #js-drawer-close / a が is-checked をトグル。
# 暗紺地（$color_navy_deep）＋白文字。nav 5項目＋お問い合わせボタン＋Tel。
===================================================== */
.l-drawer {
  position: fixed;
  top: 0;
  right: 0;
  width: min(84vw, 340 * var(--to-rem));
  height: 100%;
  z-index: 105;
  background-color: #072b68;
  background-image: linear-gradient(165deg, #003d99 0%, #072b68 100%);
  -webkit-transform: translateX(100%);
          transform: translateX(100%);
  -webkit-transition: -webkit-transform 0.4s ease;
  transition: -webkit-transform 0.4s ease;
  transition: transform 0.4s ease;
  transition: transform 0.4s ease, -webkit-transform 0.4s ease;
  overflow-y: auto;
}
.l-drawer.is-checked {
  -webkit-transform: translateX(0);
          transform: translateX(0);
}
.l-drawer__close {
  position: absolute;
  top: calc(22 * var(--to-rem));
  right: calc(22 * var(--to-rem));
  width: calc(32 * var(--to-rem));
  height: calc(32 * var(--to-rem));
  background: none;
  border: 0;
  cursor: pointer;
  z-index: 2;
}
.l-drawer__close span {
  position: absolute;
  top: 50%;
  left: 50%;
  width: calc(24 * var(--to-rem));
  height: 2px;
  background-color: #fff;
}
.l-drawer__close span:nth-child(1) {
  -webkit-transform: translate(-50%, -50%) rotate(45deg);
          transform: translate(-50%, -50%) rotate(45deg);
}
.l-drawer__close span:nth-child(2) {
  -webkit-transform: translate(-50%, -50%) rotate(-45deg);
          transform: translate(-50%, -50%) rotate(-45deg);
}
.l-drawer__inner {
  padding: calc(80 * var(--to-rem)) calc(36 * var(--to-rem)) calc(48 * var(--to-rem));
}
.l-drawer__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.l-drawer__list li {
  border-bottom: 1px solid rgba(255, 255, 255, 0.18);
}
.l-drawer__list li:first-child {
  border-top: 1px solid rgba(255, 255, 255, 0.18);
}
.l-drawer__list a {
  display: block;
  padding: calc(17 * var(--to-rem)) calc(8 * var(--to-rem));
  color: #fff;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: calc(17 * var(--to-rem));
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1.4;
  text-decoration: none;
  -webkit-transition: padding-left 0.3s ease, opacity 0.3s ease;
  transition: padding-left 0.3s ease, opacity 0.3s ease;
}
.l-drawer__list a.is-active {
  color: #ffe082;
  padding-left: calc(16 * var(--to-rem));
}
.l-drawer {
  /* お問い合わせボタン（c-btn--contact 流用） */
}
.l-drawer__contact {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  margin: calc(35 * var(--to-rem)) auto 0;
}
.l-drawer__contact.c-btn--contact {
  width: 100%;
  height: calc(60 * var(--to-rem));
  gap: calc(12 * var(--to-rem));
}
.l-drawer__contact.c-btn--contact .c-btn__icon {
  width: calc(26 * var(--to-rem));
  height: calc(20 * var(--to-rem));
}
.l-drawer__contact.c-btn--contact .c-btn__label {
  font-size: calc(18 * var(--to-rem));
}
.l-drawer {
  /* 電話（下部） */
}
.l-drawer__tel {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: calc(5 * var(--to-rem));
  margin-top: calc(28 * var(--to-rem));
  text-align: left;
}
.l-drawer__tel-label {
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: calc(11 * var(--to-rem));
  font-weight: 500;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.7);
}
.l-drawer__tel-num {
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: calc(22 * var(--to-rem));
  font-weight: 700;
  letter-spacing: 0.06em;
  color: #fff;
}

/* =====================================================
# l-footer（大和化成）— PSD 厳格再現
# inspect footer [104,7307,4063,7758]・白地・ページ下端 7816
#   上段: 左ロゴ 617×77 [108,7307] ＋ 右ナビ5項目（間隔104・フォント48・#333333）
#   左下: 住所(36) [104,7478] ／ TEL/FAX(36) [104,7541]
#   右下: ©2026　大和化成株式会社(48) [3489,7711]
# 左右マージン 104（.inner 不使用・ヘッダーと同じ全幅マージン）
===================================================== */
.l-footer {
  position: relative;
  width: 100%;
  background-color: #ffffff;
  color: #333333;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
}
.l-footer__inner {
  padding: min(2.7837772978vw, 116px) min(2.495800336vw, 104px) min(1.3918886489vw, 58px) min(2.5917926566vw, 108px);
}
.l-footer {
  /* ▼ 上段: ロゴ ＋ ナビ */
}
.l-footer__top {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: calc(24 * var(--to-rem));
}
.l-footer__logo {
  margin: 0;
  line-height: 0;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
}
.l-footer__logo picture {
  display: block;
  line-height: 0;
}
.l-footer__logo img {
  display: block;
  width: clamp(180px, min(14.8068154548vw, 617px), 617px);
  height: auto;
}
.l-footer__nav {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
}
.l-footer__nav-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: min(2.495800336vw, 104px);
}
.l-footer__nav-list li {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
}
.l-footer__nav-link {
  color: #333333;
  font-size: clamp(13px, min(1.1519078474vw, 48px), 48px);
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0.02em;
  text-decoration: none;
  white-space: nowrap;
  -webkit-transition: color 0.3s ease;
  transition: color 0.3s ease;
}
.l-footer {
  /* ▼ 左下: 住所・TEL/FAX */
}
.l-footer__address {
  margin: min(2.0398368131vw, 85px) 0 0;
  font-size: clamp(13px, min(0.8639308855vw, 36px), 36px);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.02em;
}
.l-footer__tel {
  margin: min(0.1439884809vw, 6px) 0 0;
  font-size: clamp(13px, min(0.8639308855vw, 36px), 36px);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.02em;
}
.l-footer {
  /* ▼ 右下: コピーライト */
}
.l-footer__copyright {
  margin: min(2.4718022558vw, 103px) 0 0;
  text-align: right;
  font-size: clamp(13px, min(1.1519078474vw, 48px), 48px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.02em;
}
.l-footer__copyright small {
  font-size: inherit;
}

/* =====================================================
# ページトップへ戻るボタン（#js-pagetop / script.js が is-show をトグル）
#   単調 clamp で下限48pxを担保（EZ 標準・豆粒化防止）。
===================================================== */
.l-footer__pagetop {
  position: fixed;
  right: max(min(0.9599232061vw, 40px), (100vw - 4167px) / 2 + 40px);
  bottom: calc(min(0.9599232061vw, 40px) + 45px);
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: clamp(48px, min(2.1598272138vw, 90px), 90px);
  height: clamp(48px, min(2.1598272138vw, 90px), 90px);
  border-radius: 50%;
  background-color: #072b68;
  border: 1px solid #fff;
  color: #fff;
  text-decoration: none;
  opacity: 0;
  visibility: hidden;
  -webkit-transform: translateY(calc(10 * var(--to-rem)));
          transform: translateY(calc(10 * var(--to-rem)));
  -webkit-transition: opacity 0.3s, visibility 0.3s, -webkit-transform 0.3s;
  transition: opacity 0.3s, visibility 0.3s, -webkit-transform 0.3s;
  transition: opacity 0.3s, visibility 0.3s, transform 0.3s;
  transition: opacity 0.3s, visibility 0.3s, transform 0.3s, -webkit-transform 0.3s;
  z-index: 90;
}
.l-footer__pagetop.is-show {
  opacity: 1;
  visibility: visible;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

.l-footer__pagetop-arrow {
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-weight: 700;
  font-size: clamp(20px, min(0.8639308855vw, 36px), 36px);
  line-height: 1;
  color: #fff;
}

/* =====================================================
# 下層ページ メインビジュアル
===================================================== */
.mv {
  background-color: #fff;
  position: relative;
  z-index: 1;
}

/* FLOCSS
----------------------------------------------------- */
/* =====================================================
# c-btn — ボタン共通コンポーネント
#
# 1) c-btn--contact … お問い合わせ（白地 / #014099 文字 / 封筒アイコン）180×40
#      <a class="c-btn c-btn--contact">
#        <span class="c-btn__icon" aria-hidden="true"><svg .../></span>
#        <span class="c-btn__label">お問い合わせ</span>
#      </a>
#
# 2) c-btn--form … お問い合わせフォーム大ボタン（白地 / #014099 文字）480×100
#      <a class="c-btn c-btn--form">
#        <span class="c-btn__icon" aria-hidden="true"><svg .../></span>
#        <span class="c-btn__label">お問い合わせフォームはこちら</span>
#      </a>
#
# 3) c-btn--more … 「詳細を見る」240×60。矢印（線24×2 + 丸8×8）は __arrow 要素で描画。
#      modifier:
#        --ghost … 白地 / #014099 文字（淡背景・projects 等で使用）
#        --fill  … #014099 地 / 白文字（白パネル上・recruit 等で使用）
#      <a class="c-btn c-btn--more c-btn--ghost">
#        <span class="c-btn__label">詳細を見る</span>
#        <span class="c-btn__arrow" aria-hidden="true"></span>
#      </a>
#
# 共通: 図形は design 固定幅（width 固定）＋テキスト中央寄せ（padding で縮めない＝CJK 字送り差対策）。
#       hover は @include mq(mmd) 内・opacity:0.6。
===================================================== */
.c-btn {
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  text-decoration: none;
  text-align: center;
  white-space: nowrap;
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}
.c-btn__icon {
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  line-height: 0;
}
.c-btn__icon svg {
  display: block;
  width: 100%;
  height: 100%;
  fill: currentColor;
}
.c-btn__label {
  display: inline-block;
  line-height: 1.2;
}
.c-btn {
  /* ▼ お問い合わせ（白地・青文字・封筒アイコン）180×40 */
}
.c-btn--contact {
  width: clamp(140px, min(4.3196544276vw, 180px), 180px);
  height: clamp(36px, min(0.9599232061vw, 40px), 40px);
  gap: clamp(6px, min(0.2399808015vw, 10px), 10px);
  background-color: #fff;
  color: #072b68;
  border-radius: clamp(3px, min(0.0959923206vw, 4px), 4px);
}
.c-btn--contact .c-btn__icon {
  width: clamp(14px, min(0.5039596832vw, 21px), 21px);
  height: clamp(11px, min(0.3839692825vw, 16px), 16px);
}
.c-btn--contact .c-btn__label {
  font-size: clamp(13px, min(0.3839692825vw, 16px), 16px);
  font-weight: 500;
  letter-spacing: 0.04em;
  -webkit-transform: translateY(-1px);
          transform: translateY(-1px);
}
.c-btn {
  /* ▼ お問い合わせフォーム（白地・青文字・封筒アイコン）TOP お問い合わせセクション用
     修正#3（2026-08-21 前田様ご指示）で新設。角丸と外側グローは home-contact__pill と同値にし、
     電話・FAX ピルと同じ語彙で揃える（新しい型を作らない） */
}
.c-btn--form {
  width: clamp(260px, min(17.494600432vw, 729px), 729px);
  height: clamp(40px, min(2.5197984161vw, 105px), 105px);
  gap: clamp(8px, min(0.7199424046vw, 30px), 30px);
  background-color: #fff;
  color: #072b68;
  border-radius: clamp(20px, min(1.247900168vw, 52px), 52px);
  -webkit-box-shadow: 0 0 clamp(3px, min(0.2879769618vw, 12px), 12px) clamp(1px, min(0.0479961603vw, 2px), 2px) rgba(255, 255, 255, 0.5);
          box-shadow: 0 0 clamp(3px, min(0.2879769618vw, 12px), 12px) clamp(1px, min(0.0479961603vw, 2px), 2px) rgba(255, 255, 255, 0.5);
  -webkit-transition: opacity 0.3s ease, -webkit-transform 0.4s ease;
  transition: opacity 0.3s ease, -webkit-transform 0.4s ease;
  transition: opacity 0.3s ease, transform 0.4s ease;
  transition: opacity 0.3s ease, transform 0.4s ease, -webkit-transform 0.4s ease;
}
.c-btn--form .c-btn__icon {
  width: clamp(16px, min(1.3438924886vw, 56px), 56px);
  height: clamp(12px, min(1.0079193665vw, 42px), 42px);
}
.c-btn--form .c-btn__label {
  font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: clamp(13px, min(0.8639308855vw, 36px), 36px);
  font-weight: 500;
  letter-spacing: 0.02em;
}

/* =====================================================
# c-viewmore — VIEW MORE ピルボタン（大和化成 TOP）
# inspect: about [811,3354,1281,3460]=470×106（枠線 #072b68）
#          equipment [3145,4547,3615,4652]=470×105（グラデ塗り・白文字）
# ラベル: Manrope SemiBold 実寸38（ink [938..1153] w215 / 9字）
# シェブロン: 11×28 右端から18px（inspect パス [1252,3393,1263,3421]）
# 図形は design 固定幅（padding で縮めない＝CJK/字送り差対策の EZ 標準）。
# TOP 主要ボタン hover は scale(1.1)/0.4s（GSAP js-fadeUp と併用のため !important）。
#   <a class="c-viewmore c-viewmore--ghost" href="...">
#     <span class="c-viewmore__label">VIEW MORE</span>
#     <span class="c-viewmore__arrow" aria-hidden="true">（svg シェブロン）</span>
#   </a>
===================================================== */
.c-viewmore {
  position: relative;
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: clamp(180px, min(11.2790976722vw, 470px), 470px);
  height: clamp(48px, min(2.5437964963vw, 106px), 106px);
  border-radius: clamp(24px, min(1.2718982481vw, 53px), 53px);
  font-family: "Manrope", "Helvetica Neue", Arial, sans-serif;
  font-weight: 600;
  text-decoration: none;
  text-align: center;
  white-space: nowrap;
  -webkit-transition: -webkit-transform 0.4s ease;
  transition: -webkit-transform 0.4s ease;
  transition: transform 0.4s ease;
  transition: transform 0.4s ease, -webkit-transform 0.4s ease;
}
.c-viewmore__label {
  display: inline-block;
  font-size: clamp(13px, min(0.9119270458vw, 38px), 38px);
  letter-spacing: 0.05em;
  line-height: 1;
}
.c-viewmore {
  /* シェブロン 11×28（右端 18px・currentColor 追従） */
}
.c-viewmore__arrow {
  position: absolute;
  top: 50%;
  right: clamp(12px, min(0.7199424046vw, 30px), 30px);
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  display: inline-block;
  width: clamp(6px, min(0.2639788817vw, 11px), 11px);
  height: clamp(14px, min(0.6719462443vw, 28px), 28px);
  line-height: 0;
}
.c-viewmore__arrow svg {
  display: block;
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
}
.c-viewmore {
  /* ▼ 枠線タイプ（about・白地に濃紺） */
}
.c-viewmore--ghost {
  background-color: transparent;
  color: #072b68;
  border: clamp(1px, min(0.0719942405vw, 3px), 3px) solid #072b68;
}
.c-viewmore {
  /* ▼ 塗りタイプ（equipment・グラデ地に白） */
}
.c-viewmore--fill {
  background: -webkit-gradient(linear, left top, right top, from(#0d5be1), to(#013e9c));
  background: linear-gradient(90deg, #0d5be1 0%, #013e9c 100%);
  color: #fff;
  border: 0;
}

/* =====================================================
# c-photo-ofi — カタログ／CMS 画像のアスペクト自動フィット枠
#  EZ-programrule「カタログ用画像」公式 CSS 準拠。
#  どのような縦横比の画像が CMS で流し込まれても画像全体が表示されるよう
#  object-fit: scale-down + グレー地で受ける（プログラム設置ページ共通の標準枠）。
#  ※ アスペクト比（padding-bottom）は配置先で上書きする（既定 75% = 4:3）。
===================================================== */
.photo-ofi {
  display: block;
  height: 0;
  padding-bottom: 75%; /* 高さ＝枠の横幅基準（既定 4:3。配置先で上書き） */
  background-color: #efefef;
  overflow: hidden;
  position: relative;
}

.photo-ofi img {
  max-width: inherit;
  max-height: inherit;
  width: 100%;
  height: 100%;
  -o-object-fit: scale-down;
     object-fit: scale-down;
  font-family: "object-fit: scale-down;";
  position: absolute;
  left: 0;
  top: 0;
}

.u-visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

@media screen and (max-width: 767px) {
  .home-fv {
    height: 50vh;
    height: 50svh;
  }
  .home-fv::before {
    height: calc(96 * var(--to-rem));
    background: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.86)), color-stop(46%, rgba(255, 255, 255, 0.5)), to(rgba(255, 255, 255, 0)));
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.86) 0%, rgba(255, 255, 255, 0.5) 46%, rgba(255, 255, 255, 0) 100%);
  }
  .home-fv__bg {
    height: 100%;
  }
  .home-fv__bg picture {
    display: block;
    height: 100%;
  }
  .home-fv__bg img {
    height: 100%;
    -o-object-position: 58% 55%;
       object-position: 58% 55%;
  }
  .home-fv__catch {
    top: 50%;
    left: 0;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    padding: 0 calc(20 * var(--to-rem));
    font-size: clamp(13px, 5.7366362451vw, 44px);
    line-height: 1.5;
  }
  .home-fv__scroll {
    display: none;
  }
  .home-about {
    min-height: 0;
    padding-top: calc(48 * var(--to-rem));
    padding-bottom: calc(48 * var(--to-rem));
  }
  .home-about__band {
    width: 19.556714472vw;
    height: 54.7588005215vw;
  }
  .home-about__photo {
    position: static;
    -webkit-transform: none;
            transform: none;
    width: 88%;
    max-width: 376px;
    margin-left: auto;
    margin-right: auto;
    margin-top: calc(35 * var(--to-rem));
    margin-bottom: calc(35 * var(--to-rem));
  }
  .home-about__body {
    padding-inline: calc(20 * var(--to-rem));
    max-width: none;
    margin-top: calc(35 * var(--to-rem));
  }
  .home-about__en {
    font-size: clamp(13px, 3.6505867014vw, 28px);
  }
  .home-about__ttl {
    margin-top: calc(14 * var(--to-rem));
    font-size: clamp(13px, 6.7796610169vw, 52px);
  }
  .home-about__rule {
    width: calc(80 * var(--to-rem));
    margin-top: calc(24 * var(--to-rem));
  }
  .home-about__text {
    margin-top: calc(24 * var(--to-rem));
    font-size: clamp(13px, 3.9113428944vw, 30px);
    line-height: 1.9;
  }
  .home-about__text br {
    display: none;
  }
  .home-about__btn {
    margin-top: calc(28 * var(--to-rem));
  }
  .home-equipment {
    margin-top: calc(48 * var(--to-rem));
    padding-block: calc(48 * var(--to-rem));
  }
  .home-equipment::before {
    -webkit-clip-path: polygon(18% 0, 100% 0, 100% 100%, 6% 100%);
            clip-path: polygon(18% 0, 100% 0, 100% 100%, 6% 100%);
  }
  .home-equipment__head {
    display: block;
    padding-inline: calc(20 * var(--to-rem)) calc(20 * var(--to-rem));
  }
  .home-equipment__en {
    font-size: clamp(13px, 3.6505867014vw, 28px);
  }
  .home-equipment__ttl {
    margin-top: calc(14 * var(--to-rem));
    font-size: clamp(13px, 6.7796610169vw, 52px);
  }
  .home-equipment__rule {
    width: calc(80 * var(--to-rem));
    margin-top: calc(24 * var(--to-rem));
  }
  .home-equipment__text {
    margin-top: calc(24 * var(--to-rem));
    font-size: clamp(13px, 3.9113428944vw, 30px);
    line-height: 1.9;
  }
  .home-equipment__text br {
    display: none;
  }
  .home-equipment__btn {
    margin-top: calc(28 * var(--to-rem));
  }
  .home-equipment__slider {
    margin-top: calc(35 * var(--to-rem));
  }
  .home-equipment__strip li {
    width: 36.5058670143vw;
    height: 26.075619296vw;
    margin-right: 1.5645371578vw;
  }
  .home-equipment__strip picture {
    display: block;
    height: 100%;
  }
  .home-contact {
    margin-top: calc(48 * var(--to-rem));
  }
  .home-contact__inner {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    min-height: 0;
    padding: calc(44 * var(--to-rem)) calc(20 * var(--to-rem));
  }
  .home-contact__ttl {
    width: auto;
  }
  .home-contact__ttl-en {
    font-size: clamp(13px, 10.4302477184vw, 80px);
  }
  .home-contact__ttl-jp {
    margin-top: calc(12 * var(--to-rem));
    font-size: clamp(13px, 3.9113428944vw, 30px);
  }
  .home-contact__form {
    padding: 0 calc(20 * var(--to-rem)) calc(44 * var(--to-rem));
  }
  .home-contact__box {
    width: 100%;
  }
  .home-contact__box--tel {
    margin: calc(32 * var(--to-rem)) 0 0;
  }
  .home-contact__box--fax {
    margin: calc(28 * var(--to-rem)) 0 0;
  }
  .home-contact__label {
    font-size: clamp(13px, 3.6505867014vw, 28px);
  }
  .home-contact__pill--fax::before {
    display: none;
  }
  .home-contact__pill {
    width: 55vw;
    margin-top: calc(12 * var(--to-rem));
  }
  .home-contact__pill-icon {
    width: calc(18 * var(--to-rem));
    height: calc(18 * var(--to-rem));
  }
  .home-contact__hours {
    margin-top: calc(10 * var(--to-rem));
    font-size: clamp(13px, 3.1290743155vw, 24px);
  }
  .business-mv {
    height: calc(230 * var(--to-rem));
  }
  .business-mv::after {
    width: 41.7209908735vw;
    height: 12.777053455vw;
  }
  .business-mv__ttl {
    padding-inline: calc(20 * var(--to-rem));
  }
  .business-mv__en {
    font-size: clamp(13px, 3.6505867014vw, 28px);
  }
  .business-mv__ja {
    margin-top: calc(10 * var(--to-rem));
    font-size: clamp(13px, 6.7796610169vw, 52px);
  }
  .business-lead {
    padding-block: calc(48 * var(--to-rem)) calc(56 * var(--to-rem));
  }
  .business-lead__body {
    padding-inline: calc(20 * var(--to-rem));
    max-width: none;
  }
  .business-lead__en {
    font-size: clamp(13px, 3.6505867014vw, 28px);
  }
  .business-lead__ttl {
    margin-top: calc(14 * var(--to-rem));
    font-size: clamp(13px, 6.7796610169vw, 52px);
  }
  .business-lead__rule {
    width: calc(80 * var(--to-rem));
    margin-top: calc(24 * var(--to-rem));
  }
  .business-lead__text {
    margin-top: calc(24 * var(--to-rem));
    font-size: clamp(15px, 3.9113428944vw, 30px);
    line-height: 1.9;
  }
  .business-lead__photos {
    margin-top: calc(35 * var(--to-rem));
  }
  .business-lead__photo--01 {
    width: 86%;
  }
  .business-lead__photo--02 {
    width: 76%;
    margin-top: calc(20 * var(--to-rem));
  }
  .business-strength {
    padding-block: calc(56 * var(--to-rem)) calc(56 * var(--to-rem));
  }
  .business-strength::before {
    -webkit-clip-path: polygon(0 min(7.8226857888vw, 60px), 100% 0, 100% 100%, 0 100%);
            clip-path: polygon(0 min(7.8226857888vw, 60px), 100% 0, 100% 100%, 0 100%);
  }
  .business-strength__en {
    font-size: clamp(13px, 3.6505867014vw, 28px);
  }
  .business-strength__ttl {
    margin-top: calc(10 * var(--to-rem));
    font-size: clamp(13px, 6.7796610169vw, 52px);
  }
  .business-strength__rule {
    width: calc(80 * var(--to-rem));
    margin-top: calc(20 * var(--to-rem));
  }
  .business-strength__list {
    gap: calc(20 * var(--to-rem));
    margin-top: calc(35 * var(--to-rem));
  }
  .business-strength__item {
    padding: calc(28 * var(--to-rem)) calc(20 * var(--to-rem)) calc(32 * var(--to-rem));
  }
  .business-strength__label {
    font-size: clamp(13px, 3.3898305085vw, 26px);
  }
  .business-strength__num {
    margin-top: calc(6 * var(--to-rem));
    font-size: clamp(28px, 7.8226857888vw, 60px);
  }
  .business-strength__card-ttl {
    margin-top: calc(14 * var(--to-rem));
    font-size: clamp(16px, 4.9543676662vw, 38px);
  }
  .business-strength__text {
    margin-top: calc(14 * var(--to-rem));
    font-size: clamp(15px, 4.1720990874vw, 32px);
  }
  .equipment-mv {
    height: calc(230 * var(--to-rem));
  }
  .equipment-mv::after {
    width: 41.7209908735vw;
    height: 12.777053455vw;
  }
  .equipment-mv__bg img {
    -o-object-position: 22% 50%;
       object-position: 22% 50%;
  }
  .equipment-mv__bg::after {
    background: -webkit-gradient(linear, left top, right top, from(rgba(255, 255, 255, 0.86)), color-stop(46%, rgba(255, 255, 255, 0.66)), color-stop(92%, rgba(255, 255, 255, 0)));
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.86) 0%, rgba(255, 255, 255, 0.66) 46%, rgba(255, 255, 255, 0) 92%);
  }
  .equipment-mv__ttl {
    padding-inline: calc(20 * var(--to-rem));
  }
  .equipment-mv__en {
    font-size: clamp(13px, 3.6505867014vw, 28px);
  }
  .equipment-mv__ja {
    margin-top: calc(10 * var(--to-rem));
    font-size: clamp(13px, 6.7796610169vw, 52px);
  }
  .equipment-list__en {
    font-size: clamp(13px, 3.6505867014vw, 28px);
  }
  .equipment-list__ttl,
  .equipment-machines__ttl {
    margin-top: calc(12 * var(--to-rem));
    font-size: clamp(13px, 6.7796610169vw, 52px);
  }
  .equipment-list__rule,
  .equipment-machines__rule {
    width: calc(80 * var(--to-rem));
    margin-top: calc(22 * var(--to-rem));
  }
  .equipment-list {
    padding-block: calc(48 * var(--to-rem)) calc(52 * var(--to-rem));
  }
  .equipment-list__grid {
    margin-top: calc(32 * var(--to-rem));
    grid-template-columns: repeat(2, 1fr);
    -webkit-column-gap: calc(14 * var(--to-rem));
       -moz-column-gap: calc(14 * var(--to-rem));
            column-gap: calc(14 * var(--to-rem));
    row-gap: calc(30 * var(--to-rem));
  }
  .equipment-list__name {
    padding: calc(10 * var(--to-rem)) calc(6 * var(--to-rem));
    font-size: clamp(14px, 3.3898305085vw, 26px);
  }
  .equipment-machines {
    padding-block: calc(56 * var(--to-rem)) calc(52 * var(--to-rem));
  }
  .equipment-machines::before {
    -webkit-clip-path: polygon(0 min(7.8226857888vw, 60px), 100% 0, 100% 100%, 0 100%);
            clip-path: polygon(0 min(7.8226857888vw, 60px), 100% 0, 100% 100%, 0 100%);
  }
  .equipment-machines__table {
    margin-top: calc(32 * var(--to-rem));
  }
  .equipment-machines__row {
    display: block;
  }
  .equipment-machines__label {
    display: block;
    padding: calc(10 * var(--to-rem)) calc(16 * var(--to-rem));
    font-size: clamp(15px, 3.9113428944vw, 30px);
    text-align: center;
  }
  .equipment-machines__body {
    padding: calc(16 * var(--to-rem));
  }
  .equipment-machines__list-item {
    padding-left: calc(18 * var(--to-rem));
    font-size: clamp(15px, 3.9113428944vw, 30px);
  }
  .equipment-machines__list-item + .equipment-machines__list-item {
    margin-top: calc(8 * var(--to-rem));
  }
  .equipment-machines__list-item::before {
    width: calc(7 * var(--to-rem));
    height: calc(7 * var(--to-rem));
  }
  .company-mv {
    height: calc(230 * var(--to-rem));
  }
  .company-mv::after {
    width: 41.7209908735vw;
    height: 12.777053455vw;
  }
  .company-mv__ttl {
    padding-inline: calc(20 * var(--to-rem));
  }
  .company-mv__ja {
    font-size: clamp(13px, 6.7796610169vw, 52px);
  }
  .company-mv__en {
    margin-top: calc(10 * var(--to-rem));
    font-size: clamp(13px, 3.6505867014vw, 28px);
  }
  .company-outline {
    padding-block: calc(48 * var(--to-rem));
  }
  .company-outline__en {
    font-size: clamp(13px, 3.6505867014vw, 28px);
  }
  .company-outline__ttl {
    margin-top: calc(10 * var(--to-rem));
    font-size: clamp(13px, 6.7796610169vw, 52px);
  }
  .company-outline__rule {
    width: calc(80 * var(--to-rem));
    margin-top: calc(20 * var(--to-rem));
  }
  .company-outline__table {
    margin-top: calc(24 * var(--to-rem));
  }
  .company-outline__table,
  .company-outline__table tbody,
  .company-outline__table tr,
  .company-outline__table th,
  .company-outline__table td {
    display: block;
    width: 100%;
  }
  .company-outline__table tr {
    padding-block: calc(14 * var(--to-rem));
    border-bottom: 1px solid rgba(7, 43, 104, 0.2);
  }
  .company-outline__table th,
  .company-outline__table td {
    font-size: clamp(15px, 3.9113428944vw, 30px);
    line-height: 1.8;
  }
  .company-outline__table {
    /* 行の区切りは tr が持つので th/td の下線は落とす（二重線防止） */
  }
  .company-outline__table th {
    padding: 0 0 calc(4 * var(--to-rem));
    border-bottom: 0;
  }
  .company-outline__table td {
    padding: 0;
    border-bottom: 0;
  }
  .company-welfare {
    padding-block: calc(56 * var(--to-rem));
  }
  .company-welfare::before {
    -webkit-clip-path: polygon(0 min(7.8226857888vw, 60px), 100% 0, 100% 100%, 0 100%);
            clip-path: polygon(0 min(7.8226857888vw, 60px), 100% 0, 100% 100%, 0 100%);
  }
  .company-welfare__ttl {
    font-size: clamp(13px, 6.258148631vw, 48px);
  }
  .company-welfare__list {
    grid-template-columns: 1fr;
    gap: calc(20 * var(--to-rem));
    margin-top: calc(35 * var(--to-rem));
  }
  .company-welfare__item {
    padding: calc(28 * var(--to-rem)) calc(20 * var(--to-rem)) calc(32 * var(--to-rem));
  }
  .company-welfare__point-label {
    font-size: clamp(13px, 3.3898305085vw, 26px);
  }
  .company-welfare__point-num {
    margin-top: calc(6 * var(--to-rem));
    font-size: clamp(13px, 7.8226857888vw, 60px);
  }
  .company-welfare__item-ttl {
    margin-top: calc(14 * var(--to-rem));
    font-size: clamp(13px, 4.9543676662vw, 38px);
  }
  .company-welfare__text {
    margin-top: calc(14 * var(--to-rem));
    font-size: clamp(13px, 4.1720990874vw, 32px);
  }
  .company-access {
    padding-block: calc(56 * var(--to-rem)) calc(48 * var(--to-rem));
  }
  .company-access__en {
    font-size: clamp(13px, 3.6505867014vw, 28px);
  }
  .company-access__ttl {
    margin-top: calc(10 * var(--to-rem));
    font-size: clamp(13px, 6.7796610169vw, 52px);
  }
  .company-access__rule {
    width: calc(80 * var(--to-rem));
    margin-top: calc(20 * var(--to-rem));
  }
  .company-access__map {
    margin-top: calc(24 * var(--to-rem));
  }
  .company-access__map iframe {
    height: calc(280 * var(--to-rem));
  }
  .company-access__btnwrap {
    margin-top: calc(28 * var(--to-rem));
  }
  body.contact .contact-mv {
    height: calc(230 * var(--to-rem));
  }
  body.contact .contact-mv::after {
    width: 41.7209908735vw;
    height: 12.777053455vw;
  }
  body.contact .contact-mv__bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background: -webkit-gradient(linear, left top, right top, from(rgba(255, 255, 255, 0.74)), color-stop(52%, rgba(255, 255, 255, 0.5)), to(rgba(255, 255, 255, 0.1)));
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.74) 0%, rgba(255, 255, 255, 0.5) 52%, rgba(255, 255, 255, 0.1) 100%);
    pointer-events: none;
  }
  body.contact .contact-mv__ttl {
    padding-inline: calc(20 * var(--to-rem));
  }
  body.contact .contact-mv__ja {
    font-size: clamp(13px, 6.7796610169vw, 52px);
  }
  body.contact .contact-mv__en {
    margin-top: calc(10 * var(--to-rem));
    font-size: clamp(13px, 3.6505867014vw, 28px);
  }
  body.contact .contact-info {
    padding-block: calc(44 * var(--to-rem));
  }
  body.contact .contact-info__ttl {
    font-size: clamp(20px, 3.3898305085vw, 26px);
  }
  body.contact .contact-info__boxes {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    margin-top: calc(28 * var(--to-rem));
    /* 縦積みに変わるため隣接ブロックの間隔を明示（仕切り線は非表示のため gap は生じない） */
    gap: calc(35 * var(--to-rem));
  }
  body.contact .contact-info__box {
    width: 100%;
    max-width: none;
  }
  body.contact .contact-info__label {
    font-size: clamp(15px, 2.6075619296vw, 20px);
  }
  body.contact .contact-info__pill {
    width: min(84vw, 320 * var(--to-rem));
    height: calc(56 * var(--to-rem));
    margin-top: calc(12 * var(--to-rem));
  }
  body.contact .contact-info__pill-icon {
    width: calc(20 * var(--to-rem));
    height: calc(20 * var(--to-rem));
  }
  body.contact .contact-info__pill-num {
    font-size: clamp(20px, 3.6505867014vw, 28px);
  }
  body.contact .contact-info__hours {
    margin-top: calc(10 * var(--to-rem));
    font-size: clamp(13px, 1.9556714472vw, 15px);
  }
  body.contact .contact-info__divider {
    display: none;
  }
  body.contact .mail-form {
    padding-block: calc(50 * var(--to-rem));
  }
  body.contact .mail-form__en {
    font-size: clamp(13px, 1.8252933507vw, 14px);
  }
  body.contact .mail-form__title {
    font-size: clamp(22px, 3.3898305085vw, 26px);
  }
  body.contact .mail-form__rule {
    margin-top: calc(14 * var(--to-rem));
  }
  body.contact .mail-form__text {
    margin-top: calc(35 * var(--to-rem));
  }
  body.contact .mail-form__note {
    margin-top: calc(20 * var(--to-rem));
  }
  body.contact .mail-form .horizontal-table {
    margin-top: calc(30 * var(--to-rem));
  }
  body.contact .mail-form .box-scroll__title {
    font-size: 16px;
  }
  body.contact .mail-form .privacy-wrapper {
    margin-top: calc(20 * var(--to-rem));
  }
  body.contact .mail-form .privacy-btn {
    width: 100%;
    min-width: 0;
    padding: 14px 12px;
    gap: calc(8 * var(--to-rem));
  }
  body.contact .mail-form .privacy-btn__label {
    font-size: calc(14 * var(--to-rem));
    letter-spacing: 0;
    text-align: center;
  }
  body.contact .mail-form .privacy-btn__wrapper {
    margin-top: calc(30 * var(--to-rem));
  }
  body.contact .mail-form .privacy-btn__wrapper--confirm {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
    -webkit-flex-direction: column-reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
    gap: calc(14 * var(--to-rem));
  }
  body.contact .mail-form .privacy-btn__wrapper--confirm .privacy-btn {
    width: 100%;
    min-width: 0;
  }
  body.contact .mail-form input[type=radio] + span,
  body.contact .mail-form input[type=checkbox] + span {
    font-size: 15px;
    margin-right: 0;
    letter-spacing: 0;
  }
  body.contact .mail-form input[type=checkbox] + span:before {
    top: 0.3em;
  }
  body.contact .mail-form .selectWrap {
    width: 60%;
  }
  .l-header__logo-link img {
    width: calc(180 * var(--to-rem));
  }
  .l-footer__top {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: start;
    -webkit-align-items: flex-start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: calc(24 * var(--to-rem));
  }
  .l-footer__logo img {
    width: calc(180 * var(--to-rem));
  }
  .l-footer__nav-list {
    gap: calc(14 * var(--to-rem)) calc(20 * var(--to-rem));
  }
  .l-footer__address {
    margin-top: calc(35 * var(--to-rem));
    font-size: clamp(13px, 3.6505867014vw, 28px);
  }
  .l-footer__tel {
    margin-top: calc(8 * var(--to-rem));
    font-size: clamp(13px, 3.6505867014vw, 28px);
  }
  .l-footer__copyright {
    margin-top: calc(35 * var(--to-rem));
    text-align: left;
    font-size: clamp(13px, 3.6505867014vw, 28px);
  }
  .l-footer__pagetop {
    right: calc(16 * var(--to-rem));
    bottom: calc(16 * var(--to-rem));
  }
  .c-btn--contact {
    width: calc(220 * var(--to-rem));
    height: calc(48 * var(--to-rem));
    gap: calc(10 * var(--to-rem));
  }
  .c-btn--contact .c-btn__icon {
    width: calc(21 * var(--to-rem));
    height: calc(16 * var(--to-rem));
  }
  .c-btn--contact .c-btn__label {
    font-size: calc(15 * var(--to-rem));
  }
  .c-btn--form {
    width: min(calc(290 * var(--to-rem)), 100%);
    height: calc(48 * var(--to-rem));
    gap: calc(10 * var(--to-rem));
  }
  .c-btn--form .c-btn__icon {
    width: calc(20 * var(--to-rem));
    height: calc(15 * var(--to-rem));
  }
  .c-btn--form .c-btn__label {
    font-size: calc(15 * var(--to-rem));
  }
  .c-viewmore {
    width: calc(220 * var(--to-rem));
    height: calc(52 * var(--to-rem));
    border-radius: calc(26 * var(--to-rem));
  }
  .c-viewmore .c-viewmore__label {
    font-size: calc(14 * var(--to-rem));
  }
  .c-viewmore .c-viewmore__arrow {
    right: calc(16 * var(--to-rem));
    width: calc(7 * var(--to-rem));
    height: calc(16 * var(--to-rem));
  }
}

@media screen and (min-width: 768px) and (max-width: 991px) {
  .home-fv__catch {
    font-size: clamp(24px, min(2.8317734581vw, 118px), 118px);
  }
}

@media screen and (min-width: 768px) and (max-width: 1199px) {
  .home-about {
    min-height: 0;
    padding-bottom: calc(40 * var(--to-rem));
  }
  .home-about__photo {
    position: static;
    -webkit-transform: none;
            transform: none;
    width: 88%;
    max-width: 376px;
    margin-left: auto;
    margin-right: auto;
    margin-top: calc(30 * var(--to-rem));
    margin-bottom: calc(30 * var(--to-rem));
  }
  .home-about__body {
    max-width: none;
    padding-right: min(3.3361134279vw, 40px);
    margin-top: calc(30 * var(--to-rem));
  }
  .company-mv__ja {
    font-size: clamp(13px, 3.1693077565vw, 38px);
  }
  .company-mv__en {
    margin-top: min(1.0008340284vw, 12px);
    font-size: clamp(13px, 1.5012510425vw, 18px);
  }
  .company-outline {
    padding-block: min(5.3377814846vw, 64px) min(6.0050041701vw, 72px);
  }
  .company-outline__en {
    font-size: clamp(13px, 1.3344453711vw, 16px);
  }
  .company-outline__ttl {
    margin-top: min(1.0008340284vw, 12px);
    font-size: clamp(13px, 2.6688907423vw, 32px);
  }
  .company-outline__rule {
    width: min(6.6722268557vw, 80px);
    margin-top: min(1.6680567139vw, 20px);
  }
  .company-outline__table {
    margin-top: min(2.6688907423vw, 32px);
  }
  .company-outline__table th,
  .company-outline__table td {
    padding: min(1.5012510425vw, 18px) min(1.3344453711vw, 16px) min(1.5012510425vw, 18px) min(0.6672226856vw, 8px);
    font-size: clamp(15px, 1.4178482068vw, 17px);
  }
  .company-welfare {
    padding-block: min(6.0050041701vw, 72px) min(6.0050041701vw, 72px);
  }
  .company-welfare__ttl {
    font-size: clamp(13px, 2.6688907423vw, 32px);
  }
  .company-welfare__list {
    gap: min(1.6680567139vw, 20px);
    margin-top: min(3.3361134279vw, 40px);
  }
  .company-welfare__item {
    padding: min(2.3352793995vw, 28px) min(1.6680567139vw, 20px) min(2.6688907423vw, 32px);
  }
  .company-welfare__point-label {
    font-size: clamp(13px, 1.1676396997vw, 14px);
  }
  .company-welfare__point-num {
    margin-top: min(0.6672226856vw, 8px);
    font-size: clamp(13px, 3.5029190992vw, 42px);
  }
  .company-welfare__item-ttl {
    margin-top: min(1.0008340284vw, 12px);
    font-size: clamp(13px, 1.8348623853vw, 22px);
  }
  .company-welfare__text {
    margin-top: min(1.1676396997vw, 14px);
    font-size: clamp(13px, 1.4178482068vw, 17px);
  }
  .company-access {
    padding-block: min(5.3377814846vw, 64px) min(6.0050041701vw, 72px);
  }
  .company-access__en {
    font-size: clamp(13px, 1.3344453711vw, 16px);
  }
  .company-access__ttl {
    margin-top: min(1.0008340284vw, 12px);
    font-size: clamp(13px, 2.6688907423vw, 32px);
  }
  .company-access__rule {
    width: min(6.6722268557vw, 80px);
    margin-top: min(1.6680567139vw, 20px);
  }
  .company-access__map {
    margin-top: min(2.6688907423vw, 32px);
  }
  .company-access__btnwrap {
    margin-top: min(2.6688907423vw, 32px);
  }
  body.contact .contact-mv__ja {
    font-size: clamp(13px, 3.1693077565vw, 38px);
  }
  body.contact .contact-mv__en {
    margin-top: min(1.0008340284vw, 12px);
    font-size: clamp(13px, 1.5012510425vw, 18px);
  }
}

@media screen and (min-width: 768px) and (max-width: 1023px) {
  .home-equipment__head {
    padding-left: calc(min(31.9654427646vw, 1332px) - 25px);
  }
  .home-contact__form {
    padding-left: calc(min(31.101511879vw, 1296px) + 80px);
  }
  .home-contact__pill {
    width: calc(min(17.494600432vw, 729px) + 40px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-equipment__strip {
    -webkit-animation: none;
            animation: none;
  }
}

@media screen and (max-width: 1199px) {
  .business-lead {
    min-height: 0;
    padding-block: min(6.0050041701vw, 72px) min(6.6722268557vw, 80px);
  }
  .business-lead__body {
    padding-inline: min(3.3361134279vw, 40px);
    max-width: calc(680 * var(--to-rem));
    margin-inline: auto;
  }
  .business-lead__en {
    font-size: clamp(13px, 1.2510425354vw, 15px);
  }
  .business-lead__ttl {
    margin-top: min(1.0008340284vw, 12px);
    font-size: clamp(22px, 2.6688907423vw, 32px);
  }
  .business-lead__text {
    margin-top: min(2.0016680567vw, 24px);
    font-size: clamp(15px, 1.4178482068vw, 17px);
    line-height: 1.95;
  }
  .business-lead__photos {
    margin-top: min(3.3361134279vw, 40px);
  }
  .business-lead__photo {
    position: static;
  }
  .business-lead__photo--01 {
    width: 62%;
    margin-left: auto;
  }
  .business-lead__photo--02 {
    width: 54%;
    margin-top: min(2.0016680567vw, 24px);
    margin-right: auto;
  }
  .business-strength__en {
    font-size: clamp(13px, 1.2510425354vw, 15px);
  }
  .business-strength__ttl {
    margin-top: min(1.0008340284vw, 12px);
    font-size: clamp(22px, 2.6688907423vw, 32px);
  }
  .equipment-list__grid {
    -webkit-column-gap: min(2.3352793995vw, 28px);
       -moz-column-gap: min(2.3352793995vw, 28px);
            column-gap: min(2.3352793995vw, 28px);
    row-gap: min(3.6697247706vw, 44px);
  }
  .l-header__inner {
    height: calc(64 * var(--to-rem));
    padding-inline: calc(20 * var(--to-rem)) calc(16 * var(--to-rem));
  }
  .l-header__nav {
    display: none;
  }
  .l-header__hamburger {
    display: inline-block;
  }
  .l-header.show .l-header__inner {
    padding-block: 0;
  }
  .l-footer__inner {
    padding: calc(48 * var(--to-rem)) calc(20 * var(--to-rem)) calc(24 * var(--to-rem));
  }
  .l-footer__nav-list {
    gap: calc(20 * var(--to-rem));
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
  }
}

@media screen and (max-width: 1023px) {
  .business-strength__list {
    grid-template-columns: 1fr;
    gap: calc(20 * var(--to-rem));
    max-width: calc(760 * var(--to-rem));
    margin-inline: auto;
  }
  .business-strength__item {
    padding: calc(32 * var(--to-rem)) calc(28 * var(--to-rem)) calc(36 * var(--to-rem));
  }
  .business-strength__label {
    font-size: clamp(13px, 1.1676396997vw, 14px);
  }
  .business-strength__num {
    margin-top: calc(8 * var(--to-rem));
    font-size: clamp(30px, 3.5029190992vw, 42px);
  }
  .business-strength__card-ttl {
    margin-top: calc(12 * var(--to-rem));
    font-size: clamp(17px, 1.8348623853vw, 22px);
  }
  .business-strength__text {
    margin-top: calc(14 * var(--to-rem));
    font-size: clamp(15px, 1.4178482068vw, 17px);
  }
  body.contact .mail-form .horizontal-table th .required {
    -webkit-box-pack: start;
    -webkit-justify-content: flex-start;
        -ms-flex-pack: start;
            justify-content: flex-start;
  }
  body.contact .mail-form .horizontal-table th {
    border-bottom-width: 0;
    border-left: unset;
    border-right: 0;
    background-color: #eaf5ff;
    width: 100%;
    padding: 10px;
  }
  body.contact .mail-form .horizontal-table td {
    border-bottom-width: 0;
    border-right: unset;
    border-left: unset;
    width: 100%;
    padding: 10px;
  }
  body.contact .mail-form .horizontal-table tr {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  body.contact .mail-form .box-scroll {
    height: 220px;
    padding: 15px;
  }
}

@media screen and (min-width: 768px) {
  body.contact .mail-form .privacy__link:focus, body.contact .mail-form .privacy__link:hover {
    opacity: 0.6;
  }
  body.contact .mail-form .privacy-btn:focus, body.contact .mail-form .privacy-btn:hover {
    opacity: 0.6;
  }
  .l-header__nav-link:hover, .l-header__nav-link:focus {
    color: #072b68;
  }
  .l-drawer__list a:hover, .l-drawer__list a:focus {
    opacity: 0.6;
    padding-left: calc(16 * var(--to-rem));
  }
  .l-footer__nav-link:hover, .l-footer__nav-link:focus {
    color: #072b68;
  }
  .l-footer__pagetop.is-show:focus, .l-footer__pagetop.is-show:hover {
    opacity: 0.6;
    -webkit-transform: translateY(calc(-4 * var(--to-rem)));
            transform: translateY(calc(-4 * var(--to-rem)));
  }
  .c-btn:hover, .c-btn:focus {
    opacity: 0.6;
  }
  .c-btn--form:hover, .c-btn--form:focus {
    -webkit-transform: scale(1.1);
            transform: scale(1.1);
  }
  .c-viewmore:hover, .c-viewmore:focus {
    -webkit-transform: scale(1.1) !important;
            transform: scale(1.1) !important;
  }
  .hidden-pc {
    display: none;
  }
}

@media print {
  body.contact .mail-form .box-scroll {
    height: auto;
    max-height: none;
    overflow: visible;
    border: 1px solid #ddd;
  }
}