@charset "UTF-8";
/*
 * ======================================
 * 追加クラス一覧（共通SCSS取り込み検討用）
 * ======================================
 *
 * .to-heading / __en / __en-cap / __ja   - 大文字始まりの英字＋和ラベルのセクション見出し（Claude Design のシグネチャ見出し）
 * .to-heading--center / --white / --sm / --hero - 見出しの配置・色・サイズ差分
 * .to-bar / --sm            - 見出し下のオレンジ短線（アクセント下線）
 * .to-sec-gray              - 薄グレー背景＋上境界線のセクション
 * .to-sec-head              - セクション見出し＋VIEW ALLリンクの両端揃えヘッダー
 * .to-viewall               - 英字下線リンク（VIEW ALL WORKS →）
 * .to-mv / __overlay / __text / __label / __title / __lead - MVの左寄せテキスト・グラデ暗幕
 * .to-about / __img / __body / __inner / __title / __text  - 会社紹介（斜めクリップ画像＋テキスト2カラム）
 * .to-bizgrid / __cell / __head / __num / __en / __title / __text - 事業内容の1pxヘアライン2×2グリッド
 * .to-statbox / __cell / __label / __num / __big / __plus / __unit / __text - 強み（15年・100棟の数値ボックス）
 * .to-strength-cards / .to-strength-card / __title / __text - 強み下段の上ボーダー3カラム
 * .to-work / __img / __cap  - TOP実績カード（画像＋キャプション）
 * .to-worklist              - TOP実績グリッドの余白調整
 * .to-cta / __inner / __left / __right / __title / __desc / __tel-block / __tel / __note - お問い合わせCTA帯
 * .to-btn / --lg            - オレンジ角ボタン（ヘッダー/フッター/CTA共通の見た目）
 * .to-headtel / __note      - ヘッダー電話番号ブロック
 * .to-footer / __inner / __top / __brand / __logo-en / __logo-ja / __desc / __contact / __tel-block / __tel / __note / __bottom / __policy / __copy - フッター
 * .to-phero                 - 下層ページのベタ塗りヒーロー帯
 * .to-lead                  - 下層ページのリード文
 * .to-table / __row / __th / __td - 会社概要テーブル（グリッド型）
 * .to-worksgrid / .to-workcard / __img / __badge / __body / __title / __spec / __spec-k / __spec-v - 実績一覧カード
 * .to-works-note            - 実績一覧の補足テキスト
 * .to-contact / .to-cinfo / .to-form 一式 - お問い合わせページ
 *
 * ======================================
 * 共通SCSSに不足していたもの（5分類）
 * ======================================
 * ・構造不足：大文字始まり英字見出し（先頭1文字だけ拡大＋和ラベル）は共通heading系に該当なし → .to-heading を追加
 * ・構造不足：斜めクリップの画像＋テキスト47/53グリッド、1pxヘアライン2×2グリッド、数値インパクトの2枠ボックス → site固有で追加
 * ・装飾パターン不足：見出し下の細く短いアクセント下線（.to-bar）
 * ・値の粒度不足：MV高さ648px固定・各文字サイズ/余白がデザイン固有値のため site で指定
 * ・状態不足：オレンジCTAボタンの角形（角丸なし・枠なし）ホバー暗色化（.to-btn）
 */

/* ============================================================
 * 全体フォントスケール（依頼683076：全体的に少し大きめ・しっかり見せる）
 * 全サイズが rem 指定のため、ルートを 62.5%→67.5%（約+8%）に上げて
 * ナビ・見出し・本文をまとめて拡大する（余白は px 指定のため崩れない）。
 * ============================================================ */
html { font-size: 67.5%; }

/* ============================================================
 * ベース：固定ヘッダー分の余白
 * ============================================================ */
body { padding-top: 80px; }

/* ============================================================
 * ヘッダー（共通 header を Claude Design の見た目に調整）
 * ============================================================ */
.header__inner {
  max-width: none;
  padding: 0 30px;
  height: 80px;
}
.header__logo img { height: 60px; }

/* ロゴ左寄せ・ナビ（＋電話/CTA）を右寄せに（依頼683076：参考サイト kankyou-kuukan.com に合わせる） */
.header__inner--spread { justify-content: flex-start; }
.header__inner--spread .header__nav { margin-left: auto; margin-right: 30px; }
.header__nav-item a { padding: 8px 22px; }
.header__nav-en {
  font-size: 1.0rem;
  color: #9aa3b0;
  letter-spacing: 0.12em;
  font-weight: 600;
}
.header__nav-ja {
  font-size: 17px; /* 依頼683076：本文系フォント下限17px */
  font-weight: 500;
  color: #14161c;
  margin-top: 3px;
}
.header__nav-item--current .header__nav-ja { color: #0e258b; font-weight: 700; }
.header__nav-item--current .header__nav-en { color: #0e258b; }

/* ホバー/アクティブ下線を中央基準に（共通CSSの left:10% スライドを上書き） */
.header__nav-item a::after {
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  transition: width 0.3s ease;
}
.header__nav-item a:hover::after { left: 50%; width: 80%; }
.header__nav-item--current a::after { left: 50%; width: 20px; transform: translateX(-50%); }

.header__right { gap: 26px; }
.to-headtel { display: flex; flex-direction: column; align-items: flex-end; line-height: 1; }
.header__tel { font-size: 2.5rem; letter-spacing: 0.02em; }
.header__tel::before { content: none; }
.to-headtel__note { font-size: 1.05rem; color: #5b6472; letter-spacing: 0.04em; margin-top: 3px; }

.header__cta {
  flex-direction: row;
  height: auto;
  padding: 13px 22px;
  background: #fe3f12;
  color: #fff;
  font-size: 1.4rem;
  font-weight: 700;
}
.header__cta:hover { background: #e1330a; }

/* ============================================================
 * シグネチャ見出し（.to-heading）
 * ============================================================ */
.to-heading { text-align: left; }
.to-heading--center { text-align: center; }
.to-heading__en {
  display: inline-block;
  font-family: "Barlow Condensed", sans-serif;
  font-weight: 700;
  color: #0e258b;
  line-height: 0.9;
  letter-spacing: 0.005em;
  font-size: 4.6rem;
}
.to-heading__en-cap { font-size: 7rem; }
.to-heading__ja {
  display: block;
  margin-top: 10px;
  font-size: 1.6rem;
  font-weight: 700;
  color: #14161c;
  letter-spacing: 0.08em;
}
.to-heading--white .to-heading__en { color: #fff; }
.to-heading--white .to-heading__ja { color: #fff; }
.to-heading--sm .to-heading__en { font-size: 4.2rem; }
.to-heading--sm .to-heading__en-cap { font-size: 6.2rem; }
.to-heading--hero .to-heading__en { font-size: 5.6rem; }
.to-heading--hero .to-heading__en-cap { font-size: 8.4rem; }
.to-heading--hero .to-heading__ja { font-size: 1.8rem; letter-spacing: 0.1em; margin-top: 12px; }

/* アクセント短線 */
.to-bar { display: block; width: 44px; height: 2px; background: #fe3f12; margin-top: 32px; }
.to-bar--sm { margin-top: 22px; }

/* ============================================================
 * セクション背景・見出しヘッダー
 * ============================================================ */
.to-sec-gray { background: #f6f7f9; border-top: 1px solid #e9ebef; }
.section { padding: 112px 0; }

.to-sec-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 44px;
  gap: 24px;
}
.to-viewall {
  font-family: "Barlow Condensed", sans-serif;
  font-weight: 600;
  font-size: 1.6rem;
  letter-spacing: 0.12em;
  color: #0e258b;
  border-bottom: 1px solid #0e258b;
  padding-bottom: 4px;
  text-decoration: none;
  white-space: nowrap;
}
.to-viewall:hover { color: #0483b8; border-color: #0483b8; opacity: 1; }

/* ============================================================
 * メインビジュアル（#slideshow＝CMSスライダー差し替え枠）
 * 本番はCMSスライダー（内部Swiper）が #slideshow 内に .swiper-slide を出力し、
 * 高さ100%で外枠(#slideshow)の指定高さに追従する。生成時は静止画1枚。
 * ============================================================ */
.to-mv { position: relative; overflow: hidden; }
/* 外枠：高さをレスポンシブで明示指定（CMSスライダーはこの高さに追従） */
#slideshow {
  position: relative;
  z-index: 0;
  width: 100%;
  height: 648px;
}
#slideshow .swiper-slide { width: 100%; height: 100%; }
#slideshow .main_slider__inner { width: 100%; height: 100%; }
#slideshow img { width: 100%; height: 100%; object-fit: cover; display: block; }

.to-mv__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(95deg, rgba(6,16,52,0.66) 0%, rgba(6,16,52,0.30) 52%, rgba(6,16,52,0.02) 100%);
}
.to-mv__text {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
  color: #fff;
}
.to-mv__text .container { width: 100%; padding: 0 32px; }
.to-mv__label {
  display: block;
  font-family: "Barlow Condensed", sans-serif;
  font-weight: 600;
  letter-spacing: 0.32em;
  font-size: 1.5rem;
  color: #8fb9ea;
}
.to-mv__title {
  font-size: 5.2rem;
  font-weight: 700;
  color: #fff;
  line-height: 1.4;
  margin: 20px 0 0;
  letter-spacing: 0.02em;
}
.to-mv__lead {
  margin: 26px auto 0;
  max-width: 700px;
  color: rgba(255,255,255,0.92);
  font-size: 1.6rem;
  line-height: 2.1;
}
/* MV上部中央のブランド表記（TRUST-ONE） */
.to-mv__brand {
  font-family: "Anton", sans-serif;
  font-weight: 400;
  font-size: 8rem;
  line-height: 1;
  letter-spacing: 0.04em;
  color: #fff;
  white-space: nowrap;
  margin-bottom: 12px;
  text-shadow: 0 2px 14px rgba(6,16,52,0.45);
}
/* 1文字ずつフェードイン */
.to-mv__brand span {
  display: inline-block;
  opacity: 0;
  animation: to-brand-fade 0.6s ease forwards;
}
.to-mv__brand span:nth-child(1) { animation-delay: 0.10s; }
.to-mv__brand span:nth-child(2) { animation-delay: 0.22s; }
.to-mv__brand span:nth-child(3) { animation-delay: 0.34s; }
.to-mv__brand span:nth-child(4) { animation-delay: 0.46s; }
.to-mv__brand span:nth-child(5) { animation-delay: 0.58s; }
.to-mv__brand span:nth-child(6) { animation-delay: 0.70s; }
.to-mv__brand span:nth-child(7) { animation-delay: 0.82s; }
.to-mv__brand span:nth-child(8) { animation-delay: 0.94s; }
.to-mv__brand span:nth-child(9) { animation-delay: 1.06s; }
@keyframes to-brand-fade {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .to-mv__brand span { animation: none; opacity: 1; }
}

/* ============================================================
 * 会社紹介（About）
 * ============================================================ */
.to-about-sec { background: #fff; }
.to-about { display: grid; grid-template-columns: 54% 46%; align-items: center; margin: 0 auto; padding: 0 20px; }
.to-about__img {
  position: relative;
  width: 100%;
  max-width: 790px;
  aspect-ratio: 1821 / 1254;
  margin-left: auto;
  background-size: cover;
  background-position: center;
}
.to-about__body { display: flex; align-items: center; }
.to-about__inner { padding: 104px 64px 104px 76px; max-width: 760px; }
.to-about__title {
  margin: 26px 0 0;
  font-size: 2.6rem;
  font-weight: 700;
  line-height: 1.7;
  color: #0e258b;
  letter-spacing: 0.02em;
}
.to-about__title span { font-size: 1.9rem; color: #14161c; }
.to-about__text { margin: 20px 0 0; font-size: 1.6rem; line-height: 2.3; color: #333a45; }
.to-about__title + .to-about__text { margin-top: 26px; }

/* ============================================================
 * 主な事業内容（Business）
 * ============================================================ */
.to-bizgrid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background: #e4e7ec;
  border: 1px solid #e4e7ec;
}
.to-bizgrid__cell { background: #fff; padding: 40px; }
.to-bizgrid__head { display: flex; align-items: baseline; gap: 14px; }
.to-bizgrid__num {
  font-family: "Barlow Condensed", sans-serif;
  font-weight: 700;
  font-size: 2.2rem;
  color: #0e258b;
}
.to-bizgrid__en {
  font-family: "Barlow Condensed", sans-serif;
  font-weight: 600;
  font-size: 1.4rem;
  letter-spacing: 0.14em;
  color: #0483b8;
}
.to-bizgrid__title { margin: 16px 0 0; font-size: 2rem; font-weight: 700; line-height: 1.5; color: #14161c; }
.to-bizgrid__text { margin: 14px 0 0; font-size: 17px; line-height: 2; color: #5b6472; }

/* ============================================================
 * トラストワンの強み（Strength）
 * ============================================================ */
.to-statbox {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border: 1px solid #e4e7ec;
  margin-bottom: 40px;
}
.to-statbox__cell { padding: 48px; }
.to-statbox__cell:first-child { border-right: 1px solid #e4e7ec; }
.to-statbox__label {
  font-family: "Barlow Condensed", sans-serif;
  font-weight: 600;
  font-size: 1.3rem;
  letter-spacing: 0.22em;
  color: #0483b8;
}
.to-statbox__num { display: flex; align-items: baseline; gap: 8px; margin-top: 6px; }
.to-statbox__big {
  font-family: "Barlow Condensed", sans-serif;
  font-weight: 700;
  font-size: 7.8rem;
  line-height: 0.9;
  color: #0e258b;
}
.to-statbox__plus {
  font-family: "Barlow Condensed", sans-serif;
  font-weight: 700;
  font-size: 4.4rem;
  line-height: 0.9;
  color: #fe3f12;
}
.to-statbox__unit { font-size: 1.6rem; color: #5b6472; font-weight: 500; }
.to-statbox__text { margin: 16px 0 0; font-size: 17px; color: #333a45; line-height: 1.9; }

.to-strength-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.to-strength-card { border-top: 2px solid #0e258b; padding: 26px 4px 0; }
.to-strength-card__title { margin: 0; font-size: 1.7rem; font-weight: 700; color: #14161c; }
.to-strength-card__text { margin: 12px 0 0; font-size: 17px; line-height: 1.95; color: #5b6472; }

/* ============================================================
 * 実績（Works・TOP）
 * ============================================================ */
.to-worklist { gap: 24px; }
.to-work {
  display: block;
  background: #fff;
  border: 1px solid #e4e7ec;
  text-decoration: none;
  color: #14161c;
  transition: box-shadow 0.3s ease, transform 0.3s ease;
}
.to-work:hover { transform: translateY(-4px); box-shadow: 0 12px 30px rgba(11,28,86,0.12); opacity: 1; }
.to-work__img { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: #eef1f5; }
.to-work__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.to-work__cap { padding: 18px 20px; font-size: 17px; color: #5b6472; letter-spacing: 0.04em; }

/* ============================================================
 * オレンジCTAボタン
 * ============================================================ */
.to-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #fe3f12;
  color: #fff;
  font-weight: 700;
  font-size: 1.4rem;
  padding: 13px 22px;
  text-decoration: none;
  line-height: 1.2;
  white-space: nowrap;
  transition: background 0.3s ease;
}
.to-btn:hover { background: #e1330a; color: #fff; opacity: 1; }
.to-btn--lg { font-size: 1.5rem; padding: 18px 32px; }

/* 電話・メールアイコン（見出し内テキストの前置アイコン） */
.to-ico { margin-right: 0.5em; font-size: 0.82em; }

/* ============================================================
 * お問い合わせCTA帯
 * ============================================================ */
.to-cta { padding: 76px 0; }
.to-cta__inner { justify-content: space-between; align-items: center; gap: 40px; padding: 0 32px; }
.to-cta__title { margin: 16px 0 0; font-size: 2.6rem; font-weight: 700; color: #fff; line-height: 1.6; }
.to-cta__desc { margin: 14px 0 0; color: rgba(255,255,255,0.82); font-size: 17px; line-height: 1.9; }
.to-cta__right { display: flex; align-items: center; gap: 28px; flex-shrink: 0; }
.to-cta__tel-block { text-align: right; }
.to-cta__tel {
  font-family: "Barlow Condensed", sans-serif;
  font-weight: 700;
  font-size: 3.8rem;
  color: #fff;
  line-height: 1;
  text-decoration: none;
}
.to-cta__note { display: block; font-size: 1.2rem; color: rgba(255,255,255,0.75); letter-spacing: 0.04em; margin-top: 4px; }

/* ============================================================
 * フッター
 * ============================================================ */
.to-footer { background: #0b1c56; color: #fff; }
.to-footer__inner { max-width: 1200px; margin: 0 auto; padding: 62px 32px 34px; }
.to-footer__top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 40px;
  padding-bottom: 40px;
  border-bottom: 1px solid rgba(255,255,255,0.16);
}
.to-footer__logo { display: inline-block; margin-bottom: 14px; background: #fff; padding: 10px 14px; border-radius: 6px; }
.to-footer__logo img { height: 42px; width: auto; display: block; }
.to-footer__desc { margin-top: 6px; font-size: 1.25rem; color: rgba(255,255,255,0.7); line-height: 1.9; }
.to-footer__contact { display: flex; align-items: center; gap: 26px; }
.to-footer__tel-block { text-align: right; }
.to-footer__tel {
  font-family: "Barlow Condensed", sans-serif;
  font-weight: 700;
  font-size: 3rem;
  line-height: 1;
  color: #fff;
  text-decoration: none;
}
.to-footer__note { display: block; font-size: 1.2rem; color: rgba(255,255,255,0.75); margin-top: 6px; }
.to-footer__bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  padding-top: 22px;
}
.to-footer__policy { margin: 0; font-size: 1.25rem; color: rgba(255,255,255,0.72); line-height: 1.9; }
.to-footer__copy {
  font-family: "Barlow Condensed", sans-serif;
  font-size: 1.25rem;
  letter-spacing: 0.1em;
  color: rgba(255,255,255,0.6);
}

/* ============================================================
 * 下層ページ：ヒーロー / リード / テーブル
 * ============================================================ */
.to-phero {
  padding: 72px 0 76px;
  background:
    linear-gradient(rgba(6,15,48,0.35), rgba(6,15,48,0.50)),
    url('https://ros-cdn.s3.ap-northeast-1.amazonaws.com/hp/img/ros_keiyaku/28425/page-hero.jpg') center / cover no-repeat;
}

.to-lead { max-width: 900px; font-size: 1.7rem; line-height: 2.35; color: #333a45; }

/* 導入文＋ロゴマーク横並び */
.to-intro { display: flex; align-items: flex-start; gap: 48px; }
.to-intro__mark { flex-shrink: 0; width: 190px; }
.to-intro__mark img { width: 100%; height: auto; display: block; }
.to-intro__text { max-width: none; }

.to-table { border-top: 2px solid #0e258b; }
.to-table__row { display: grid; grid-template-columns: 240px 1fr; border-bottom: 1px solid #e4e7ec; }
.to-table__th { padding: 24px 28px; background: #f6f7f9; font-weight: 700; font-size: 17px; color: #14161c; }
.to-table__td { padding: 24px 28px; font-size: 17px; color: #333a45; line-height: 2; }

/* ============================================================
 * 実績一覧（works.php）
 * ============================================================ */
.to-worksgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.to-workcard { background: #fff; border: 1px solid #e4e7ec; }
.to-workcard__img { position: relative; aspect-ratio: 4 / 3; background: #eef1f5; overflow: hidden; }
.to-workcard__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.to-workcard__badge {
  position: absolute;
  top: 0;
  left: 0;
  background: #0e258b;
  color: #fff;
  font-family: "Barlow Condensed", sans-serif;
  font-weight: 600;
  font-size: 1.3rem;
  letter-spacing: 0.14em;
  padding: 6px 12px;
}
.to-workcard__body { padding: 22px 24px 26px; }
.to-workcard__title { margin: 0 0 16px; font-size: 1.6rem; font-weight: 700; color: #14161c; }
.to-workcard__spec {
  display: grid;
  grid-template-columns: auto 1fr;
  row-gap: 11px;
  column-gap: 18px;
  font-size: 17px;
}
.to-workcard__spec-k { color: #8a93a2; }
.to-workcard__spec-v { color: #14161c; font-weight: 500; }
.to-works-note { margin: 56px 0 0; text-align: center; font-size: 1.4rem; color: #8a93a2; }
.to-lead-note { margin: 16px 0 0; font-size: 1.3rem; line-height: 1.9; color: #8a93a2; }

/* ============================================================
 * お問い合わせ（contact.php）
 * ============================================================ */
.to-contact { display: grid; grid-template-columns: 360px 1fr; gap: 64px; align-items: start; }
.to-cinfo__head { border-top: 2px solid #0e258b; padding-top: 26px; }
.to-cinfo__label {
  font-family: "Barlow Condensed", sans-serif;
  font-weight: 600;
  font-size: 1.4rem;
  letter-spacing: 0.2em;
  color: #0483b8;
}
.to-cinfo__tel {
  display: block;
  font-family: "Barlow Condensed", sans-serif;
  font-weight: 700;
  font-size: 4rem;
  color: #0e258b;
  line-height: 1.1;
  margin-top: 8px;
  text-decoration: none;
}
.to-cinfo__telnote { margin-top: 8px; font-size: 1.4rem; color: #5b6472; line-height: 1.9; }
.to-cinfo__box { margin-top: 34px; background: #f6f7f9; border-left: 3px solid #fe3f12; padding: 22px 24px; }
.to-cinfo__box p { margin: 0; font-size: 1.35rem; line-height: 2; color: #333a45; }
.to-cinfo__box strong { color: #14161c; }
.to-cinfo__foot { margin: 20px 0 0; font-size: 1.25rem; color: #8a93a2; line-height: 1.9; }

.to-form { border: 1px solid #e4e7ec; padding: 44px 48px; }
.to-form__grid { display: grid; gap: 26px; }
.to-form__row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.to-form__label { display: flex; align-items: center; gap: 10px; font-size: 17px; font-weight: 700; color: #14161c; margin-bottom: 10px; }
.to-form__req { background: #fe3f12; color: #fff; font-size: 1rem; font-weight: 700; padding: 2px 8px; }
.to-form__input {
  width: 100%;
  padding: 14px 16px;
  border: 1px solid #d5d9e0;
  font-size: 17px;
  background: #fff;
  color: #14161c;
  font-family: inherit;
}
.to-form__input:focus { outline: none; border-color: #0e258b; }
textarea.to-form__input { resize: vertical; line-height: 1.8; }
.to-form__submit {
  margin-top: 6px;
  width: 100%;
  background: #fe3f12;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 1.6rem;
  padding: 18px;
  border: none;
  cursor: pointer;
  letter-spacing: 0.04em;
  transition: background 0.3s ease;
}
.to-form__submit:hover { background: #e1330a; }

/* ============================================================
 * ページトップボタン用アイコン色
 * ============================================================ */
.page-top__link { background: #0e258b; }

/* ============================================================
 * レスポンシブ
 * ============================================================ */
@media (max-width: 1100px) {
  body { padding-top: 60px; }
  .header__inner { height: 60px; padding: 0 15px; }
}

@media (max-width: 896px) {
  .section { padding: 60px 0; }
  .to-about { grid-template-columns: 1fr; }
  .to-about__img { min-height: 320px; clip-path: none; }
  .to-about__inner { padding: 48px 24px; max-width: 100%; }
  .to-cta__inner { flex-direction: column; align-items: flex-start; }
  .to-contact { grid-template-columns: 1fr; gap: 40px; }
  .to-worksgrid { grid-template-columns: repeat(2, 1fr); }
  .to-statbox__big { font-size: 6rem; }
  #slideshow { height: 520px; }
  .to-mv__brand { font-size: 6rem; }
}

@media (max-width: 639px) {
  #slideshow { height: 440px; }
  .to-mv__brand { font-size: 3.6rem; }
  .to-mv__title { font-size: 3.2rem; }
  .to-mv__label { font-size: 1.2rem; letter-spacing: 0.24em; }
  .to-sec-head { flex-direction: column; align-items: flex-start; gap: 16px; }
  .to-bizgrid { grid-template-columns: 1fr; }
  .to-statbox { grid-template-columns: 1fr; }
  .to-statbox__cell:first-child { border-right: none; border-bottom: 1px solid #e4e7ec; }
  .to-strength-cards { grid-template-columns: 1fr; }
  .to-worksgrid { grid-template-columns: 1fr; }
  .to-worklist { gap: 16px; }
  .to-footer__top { flex-direction: column; }
  .to-footer__contact { align-items: flex-start; }
  .to-footer__tel-block { text-align: left; }
  .to-footer__bottom { flex-direction: column; align-items: flex-start; gap: 10px; }
  .to-cta__right { flex-direction: column; align-items: flex-start; gap: 16px; }
  .to-cta__tel-block { text-align: left; }
  .to-form { padding: 28px 20px; }
  .to-form__row2 { grid-template-columns: 1fr; }
  .to-table__row { grid-template-columns: 1fr; }
  .to-table__th { padding: 16px 18px 6px; }
  .to-table__td { padding: 0 18px 16px; }
  .to-heading__en-cap { font-size: 5.2rem; }
  .to-heading__en { font-size: 3.4rem; }
  .to-heading--hero .to-heading__en-cap { font-size: 6rem; }
  .to-heading--hero .to-heading__en { font-size: 4rem; }
  .to-intro { flex-direction: column; align-items: center; gap: 24px; }
  .to-intro__mark { width: 130px; }
}

/* ============================================================
 * フォームCMS（cms_ajax）出力の上書き
 * CMS側のCSSに勝つ必要があるため !important を使用（例外的措置）
 * ============================================================ */
/* 送信ボタンをサイトのオレンジ角ボタンに・中央配置 */
.submit-btn {
  display: block !important;
  margin: 24px auto 0 !important;
  min-width: 280px !important;
  max-width: 100% !important;
  background: #fe3f12 !important;
  color: #fff !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 18px 32px !important;
  font-family: "Noto Sans JP", sans-serif !important;
  font-weight: 700 !important;
  font-size: 1.6rem !important;
  letter-spacing: 0.04em !important;
  line-height: 1.2 !important;
  cursor: pointer !important;
  transition: background 0.3s ease !important;
}
.submit-btn:hover { background: #e1330a !important; }

/* 必須バッジの色をサイトのアクセントカラーに */
.form-pattern-1 dl dt:not(.pattern-exclusion) span.required::before {
  content: '必須' !important;
  color: #fff !important;
  background: #fe3f12 !important;
}
