@charset "UTF-8";
/*
 * ======================================
 * 追加クラス一覧（共通SCSS取り込み検討用）
 * ======================================
 *
 * .ga-header / .ga-nav            - 浮遊ピル型グローバルナビ（透過→スクロールで白背景）
 * .ga-fv                          - TOPメインビュー（斜めクリップ＋写真ドロップ＋イラスト）
 * .ga-sec-head                    - セクション見出し（Quicksand英字アイ＋日本語＋グラデ下線）
 * .ga-btn                         - ピル型ボタン（blue / green / outline）
 * .ga-photo-drop                  - 写真ドロップ用プレースホルダー
 * .ga-worry / .ga-biz / .ga-thoughts / .ga-guide  - TOP各セクション
 * .ga-cta                         - 共通CTA帯（ブルー→グリーン グラデ）
 * .ga-footer                      - ダーク3カラムフッター
 * .ga-phero                       - 下層ページヒーロー
 * .ga-greeting / .ga-philo / .ga-profile          - 会社概要
 * .ga-srv / .ga-srv-intro                          - サービス案内
 * .ga-bz-* / .ga-strength / .ga-voice / .ga-sim / .ga-flow  - 法人のお客様へ
 * .ga-form-box / .ga-input / .ga-privacy 等         - お問い合わせ
 *
 * ======================================
 * 共通SCSSに不足していたもの（5分類）
 * ======================================
 * ・構造不足：小型アイ英字＋日本語の左寄せ見出し（heading は英字が大きすぎる）→ .ga-sec-head
 * ・装飾パターン不足：斜めクリップMV／ブルー→グリーンのグラデCTA／浮遊ピルナビ → .ga-fv / .ga-cta / .ga-nav
 * ・値の粒度不足：デザインが px 指定（44/25/14.5px 等）で rem 刻みに一致しない → site.css で px 指定
 * ・状態不足：スクロール連動でヘッダー背景を切り替える → .ga-header.is-scrolled（JSで付与）
 */

/* ==========================================================================
   0. tokens / helpers
   ========================================================================== */
:root {
  --ga-blue: #0075bc;
  --ga-green: #009b6e;
  --ga-navy: #15384e;
  --ga-grad: linear-gradient(135deg, #0075bc, #009b6e);
}
body { background: #fff; }
body.is-nav-open { overflow: hidden; }

.ga-en { font-family: "Quicksand", sans-serif; }

/* 汎用 写真ドロップ プレースホルダー */
.ga-photo-drop {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #eef4f8;
  color: #9fb6c4;
  font-size: 13px;
  font-weight: 500;
  text-align: center;
  padding: 12px;
}

/* セクション見出し */
.ga-sec-head { text-align: center; }
.ga-sec-head__en {
  display: block;
  font-family: "Quicksand", sans-serif;
  font-weight: 600;
  font-size: 16px;
  letter-spacing: .2em;
  color: var(--ga-blue);
}
.ga-sec-head--green .ga-sec-head__en { color: var(--ga-green); }
.ga-sec-head__ja {
  font-size: 25px;
  font-weight: 700;
  color: var(--ga-navy);
  margin-top: 12px;
  letter-spacing: .02em;
  line-height: 1.5;
}
.ga-sec-head__lead {
  font-size: 15px;
  color: #5a7384;
  margin-top: 14px;
  font-weight: 500;
}
/* 「ご縁を、信頼へ。」のリードと同じ大きめスタイル */
.ga-sec-head__lead--lg {
  font-size: 16.5px;
  line-height: 2.1;
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}
.ga-sec-head__bar {
  display: block;
  width: 48px;
  height: 3px;
  border-radius: 2px;
  background: linear-gradient(90deg, #0075bc, #009b6e);
  margin: 18px auto 0;
}
.ga-sec-head--left { text-align: left; }
.ga-sec-head--left .ga-sec-head__bar { margin: 18px 0 0; }

/* 汎用ボタン（ピル） */
.ga-btn {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-weight: 700;
  font-size: 15px;
  border-radius: 999px;
  padding: 15px 30px;
  text-decoration: none;
  transition: transform .25s ease, box-shadow .25s ease, opacity .25s ease, background .25s ease;
  cursor: pointer;
}
.ga-btn svg { display: block; }
.ga-btn--blue  { background: #0075bc; color: #fff; box-shadow: 0 10px 24px rgba(0,117,188,.22); }
.ga-btn--green { background: #009b6e; color: #fff; box-shadow: 0 10px 24px rgba(0,155,110,.22); }
.ga-btn--outline { background: #fff; color: #0075bc; border: 1.5px solid #cfe3ef; padding: 13px 28px; font-size: 14.5px; }
.ga-btn--sm { padding: 13px 28px; font-size: 14.5px; }
.ga-btn--blue:hover, .ga-btn--green:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(0,117,188,.28); }
.ga-btn--outline:hover { background: #f2f9fd; transform: translateY(-2px); }

.ga-center { text-align: center; margin-top: 44px; }

/* ==========================================================================
   1. ヘッダー / ナビ
   ========================================================================== */
.ga-header {
  position: fixed;
  top: 0; left: 0;
  width: 100%;
  z-index: 1000;
  transition: background .3s ease, box-shadow .3s ease, padding .3s ease;
}
.ga-header__inner {
  max-width: 1500px;
  margin: 0 auto;
  padding: 20px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  transition: padding .3s ease;
}
.ga-header.is-scrolled {
  background: rgba(255,255,255,.92);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  box-shadow: 0 4px 22px rgba(21,56,78,.08);
}
.ga-header.is-scrolled .ga-header__inner { padding: 12px 32px; }

.ga-header__logo {
  display: flex;
  flex-direction: column;
  gap: 4px;
  align-items: flex-start;
  text-decoration: none;
  flex-shrink: 0;
}
.ga-header__logo img { height: 36px; width: auto; display: block; }
.ga-header__logo-sub {
  font-size: 11px;
  letter-spacing: .16em;
  color: #0075bc;
  font-weight: 500;
  padding-left: 2px;
}

.ga-nav { display: flex; align-items: center; gap: 14px; }
.ga-nav__pill {
  display: flex;
  align-items: center;
  gap: 26px;
  background: #fff;
  border: 1px solid #e7f0f6;
  border-radius: 999px;
  padding: 13px 30px;
  box-shadow: 0 10px 30px rgba(21,56,78,.12);
}
.ga-nav__link {
  font-size: 14.5px;
  font-weight: 500;
  color: #2c4e63;
  text-decoration: none;
  white-space: nowrap;
  transition: color .2s ease;
}
.ga-nav__link:hover { color: #0075bc; }
.ga-nav__link.is-current { font-weight: 700; color: #0075bc; }
.ga-nav__divider { width: 1px; height: 22px; background: #e2ecf1; }
.ga-nav__tel {
  display: flex;
  align-items: center;
  gap: 7px;
  color: #0075bc;
  font-family: "Quicksand", sans-serif;
  font-weight: 600;
  font-size: 18px;
  text-decoration: none;
  white-space: nowrap;
}
.ga-nav__cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--ga-grad);
  color: #fff;
  font-weight: 700;
  font-size: 14.5px;
  padding: 16px 26px;
  border-radius: 999px;
  box-shadow: 0 10px 24px rgba(0,117,188,.26);
  text-decoration: none;
  white-space: nowrap;
  transition: transform .25s ease, box-shadow .25s ease;
}
.ga-nav__cta:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(0,117,188,.34); }

/* SPナビ下部の電話（framework sp-nav 内） */
.ga-spnav__tel {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #fff;
  font-family: "Quicksand", sans-serif;
  font-weight: 600;
  font-size: 22px;
  text-decoration: none;
}

/* ==========================================================================
   1.5 ページローダー（ブランドの木＋ロゴ／中央・木の下にロゴ）
   ========================================================================== */
.ga-loader {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #e3eef6, #eef7f3);
  transition: opacity .6s ease, visibility .6s ease;
}
.ga-loader.is-loaded {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.ga-loader__inner {
  display: flex;
  flex-direction: column;   /* 上に木・下にロゴ */
  align-items: center;
  gap: 26px;
}
.ga-loader__tree {
  height: 190px;
  width: auto;
  filter: drop-shadow(0 14px 30px rgba(21,56,78,.14));
  animation: ga-loader-tree 1.6s ease-in-out infinite alternate;
}
.ga-loader__logo {
  width: 220px;
  max-width: 60vw;
  height: auto;
  opacity: 0;
  animation: ga-loader-logo .8s ease .25s forwards;
}
@keyframes ga-loader-tree {
  from { transform: translateY(0) scale(1); }
  to   { transform: translateY(-6px) scale(1.03); }
}
@keyframes ga-loader-logo {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .ga-loader__tree { animation: none; }
  .ga-loader__logo { animation: none; opacity: 1; }
}

/* ==========================================================================
   2. TOP メインビュー
   ========================================================================== */
.ga-fv {
  position: relative;
  overflow: visible;   /* イラストをFV下端からはみ出させる */
  background: #fff;
  height: 660px;
}
.ga-fv__panel {
  position: absolute;
  top: 40px; bottom: 40px; right: 40px;
  width: calc(65% - 40px);
  border-radius: 56px 8px;   /* カード群と同じ非対称ピル（大型なので拡大） */
  overflow: hidden;
  background: linear-gradient(135deg, #e3eef6, #eef7f3);
  box-shadow: 0 20px 50px rgba(21,56,78,.10);
}
/* FV CMSスライダー（外枠＝斜めクリップのパネルいっぱいに表示） */
.ga-fv__slider { width: 100%; height: 100%; }
.ga-fv__slider #cms-slider-1-1-area,
.ga-fv__slider .swiper,
.ga-fv__slider .swiper-container,
.ga-fv__slider .swiper-wrapper,
.ga-fv__slider .swiper-slide { width: 100%; height: 100%; }
.ga-fv__slider .swiper-slide img,
.ga-fv__slider img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* CMSが注入する実DOM（.slider_wrapper / .main_slider__outer）は height:auto のため、
   ここで高さの連鎖が切れて写真がパネルの縦幅いっぱいに広がらない。
   ラッパーIDは動的に変わるためクラスで指定し、CMSのID指定(auto)を !important で上書きして縦いっぱいにする */
.ga-fv__slider .slider_wrapper,
.ga-fv__slider .main_slider__outer,
.ga-fv__slider .main_slider,
.ga-fv__slider .main_slider__inner { height: 100% !important; }
.ga-fv__slider .main_slider__inner img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ブランドモチーフの木（グランアルブル＝大きな木）。もとのイラスト位置＝右側に置き、根を下端でクリップして「土台」を印象づける */
.ga-fv__tree {
  position: absolute;
  right: 20px;
  bottom: -80px;
  height: 400px;
  width: auto;
  z-index: 4;
  pointer-events: none;
  user-select: none;
  filter: drop-shadow(0 14px 30px rgba(21,56,78,.14));
}
/* もとは左に置いていたイラストを、木があった右側の位置へ移動（木はローダーへ転用） */
.ga-fv__illust {
  position: absolute;
  right: 40px;         /* 木があった右側に立たせる */
  bottom: -60px;       /* FV下端から下にはみ出す量 */
  height: 300px;
  width: auto;
  z-index: 5;
  filter: drop-shadow(0 12px 26px rgba(21,56,78,.20));
}
.ga-fv__inner {
  position: relative;
  max-width: 1200px;
  margin: 0 auto;
  height: 100%;
  padding: 0 28px;
  display: flex;
  align-items: center;
  z-index: 4;
}
.ga-fv__content { width: 530px; max-width: 100%; }
.ga-fv__eyebrow {
  display: inline-block;
  font-family: "Quicksand", sans-serif;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: .22em;
  color: #0075bc;
  margin-bottom: 18px;
}
.ga-fv__title {
  font-size: 44px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: .01em;
  color: #15384e;
  margin-bottom: 24px;
  text-shadow: 0 1px 0 rgba(255,255,255,.6);
}
.ga-fv__title span { color: #0075bc; }
.ga-fv__lead {
  font-size: 16px;
  line-height: 2;
  color: #46637a;
  font-weight: 500;
}
.ga-fv__lead b { color: #15384e; font-weight: 700; }

/* ==========================================================================
   3. TOP こんなお困り
   ========================================================================== */
.ga-worry { background: #fff; padding: 88px 28px; }
.ga-worry__inner { max-width: 1120px; margin: 0 auto; }
.ga-worry__grid {
  display: grid;
  grid-template-columns: 0.78fr 1.22fr;
  gap: 50px;
  align-items: center;
}
.ga-worry__illust { width: 100%; max-width: 330px; height: auto; display: block; margin-top: 28px; }
.ga-worry__list { display: flex; flex-direction: column; gap: 14px; }
.ga-worry__item {
  background: #f7fbfd;
  border: 1px solid #e7f0f6;
  border-radius: 27px 4px;
  padding: 22px 26px;
  display: flex;
  gap: 16px;
  align-items: flex-start;
}
.ga-worry__item--green { background: #f7fbf7; border-color: #e4f1ea; }
.ga-worry__item svg { flex-shrink: 0; margin-top: 2px; }
.ga-worry__item p { font-size: 15.5px; line-height: 1.7; color: #3a586d; font-weight: 500; }
.ga-worry__item b { color: #15384e; }
.ga-worry__note {
  text-align: center;
  margin-top: 46px;
  font-size: 17px;
  color: #15384e;
  font-weight: 700;
  letter-spacing: .02em;
}
.ga-worry__note span { color: #009b6e; }

/* ==========================================================================
   4. TOP 事業を支える3つの柱
   ========================================================================== */
.ga-biz {
  position: relative;
  background: linear-gradient(180deg, #f4f9fb, #eef7f3);
  padding: 90px 28px;
}
.ga-biz__inner { max-width: 1160px; margin: 0 auto; }
.ga-biz__tree { display: block; margin: 8px auto 30px; }
.ga-biz__grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  align-items: stretch;
}
.ga-biz__item { padding: 0 34px; text-align: center; }
.ga-biz__item--mid { border-left: 1px solid #d7e3ea; border-right: 1px solid #d7e3ea; }
.ga-biz__item img { height: auto; display: block; margin: 0 auto 26px; }
.ga-biz__img1 { width: 78%; max-width: 240px; }
.ga-biz__img2 { width: 64%; max-width: 200px; }
.ga-biz__img3 { width: 80%; max-width: 248px; }
.ga-biz__head { margin-bottom: 18px; }
.ga-biz__item h3 { font-size: 20px; font-weight: 700; color: #15384e; margin-bottom: 6px; }
.ga-biz__label {
  font-family: "Quicksand", sans-serif;
  font-size: 12px;
  letter-spacing: .12em;
  font-weight: 600;
  margin-bottom: 16px;
}
.ga-biz__label--blue  { color: #0075bc; }
.ga-biz__label--green { color: #009b6e; }
.ga-biz__item p { font-size: 14.5px; line-height: 1.85; color: #5a7384; font-weight: 500; text-align: left; }

/* ==========================================================================
   5. TOP ご縁を、信頼へ（OUR THOUGHTS）
   ========================================================================== */
.ga-thoughts {
  position: relative;
  overflow: hidden;
  background: #f9f8f4;
  color: #15384e;
  padding: 96px 28px;
}
.ga-thoughts__deco { position: absolute; left: -120px; bottom: -160px; opacity: .5; pointer-events: none; }
/* ブランドモチーフの木（グランアルブル＝大きな木）。右下に淡く配置し、根が下端でクリップされ「土台」を印象づける */
.ga-thoughts__tree {
  position: absolute;
  left: -50px;
  bottom: -40px;
  width: 540px;
  max-width: 46%;
  height: auto;
  opacity: .18;
  pointer-events: none;
  user-select: none;
  z-index: 0;
}
.ga-thoughts__inner { max-width: 1000px; margin: 0 auto; text-align: center; position: relative; }
.ga-thoughts__en {
  font-family: "Quicksand", sans-serif;
  font-weight: 600;
  font-size: 16px;
  letter-spacing: .24em;
  color: #009b6e;
}
.ga-thoughts__title {
  font-size: 25px;
  font-weight: 700;
  margin: 16px 0 0;
  letter-spacing: .03em;
  line-height: 1.5;
  color: #15384e;
}
.ga-thoughts__lead {
  font-size: 16.5px;
  line-height: 2.1;
  color: #5a7384;
  max-width: 900px;
  margin: 22px auto 0;
  font-weight: 500;
}
.ga-feature {
  margin-top: 50px;
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 48px;
}
.ga-feature__row {
  position: relative;
  background: #fff;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  min-height: 340px;
  border-radius: 170px; /* 両端まる（カードの高さ340pxの半分＝カプセル形） */
}
.ga-feature__photo { height: 340px; padding: 26px; }
.ga-feature__photo--l { padding-right: 0; }
.ga-feature__photo--r { padding-left: 0; }
.ga-feature__photo .ga-photo-drop { border-radius: 0; }
.ga-feature__img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* 写真の外側の端も半円に丸め、白フチのカプセルと同心にする（写真高さ288pxの半分＝144px） */
.ga-feature__photo--l .ga-feature__img { border-radius: 144px 0 0 144px; }
.ga-feature__photo--r .ga-feature__img { border-radius: 0 144px 144px 0; }
.ga-feature__body { padding: 30px 60px; position: relative; z-index: 2; }
.ga-feature__body .ga-feature__num {
  font-family: "Playwrite NZ Basic", cursive;
  font-weight: 400;
  font-size: 50px;
  line-height: 1.1;
  letter-spacing: .02em;
  color: #3690cf;
  max-width: none;
  margin-bottom: 0;
  opacity: .5;
  position: relative;
  z-index: 0;
}
.ga-feature__body .ga-feature__num--green { color: #009b6e; }
.ga-feature__body h4 {
  font-size: 24px;
  font-weight: 700;
  color: #15384e;
  margin-top: -32px;   /* 数字に被せる */
  margin-bottom: 14px;
  position: relative;
  z-index: 1;
}
/* 英語あしらい：カード上端から少しはみ出す */
.ga-feature__en {
  position: absolute;
  top: -12px;
  z-index: 3;
  font-family: "Playwrite NZ Basic", cursive;
  font-size: 38px;
  font-weight: 400;
  color: #3690cf;
  letter-spacing: .02em;
  line-height: 1;
}
.ga-feature__en--green { color: #009b6e; }
/* 本文カラム側にアクセントを寄せる（奇数行＝本文右で右寄せ／偶数行＝本文左） */
.ga-feature__row:nth-child(odd) .ga-feature__en { right: 60px; }
.ga-feature__row:nth-child(even) .ga-feature__en { left: 60px; }
.ga-feature__body p { font-size: 15px; line-height: 2; color: #5a7384; font-weight: 500; max-width: 380px; }

/* ==========================================================================
   6. TOP 各ページのご案内
   ========================================================================== */
.ga-guide { background: #fff; padding: 88px 28px; }
.ga-guide__inner { max-width: 1160px; margin: 0 auto; }
.ga-guide__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 48px; }
.ga-guide__card {
  display: block;
  border: 1px solid #e2ecf1;
  border-radius: 40px 6px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 8px 24px rgba(21,56,78,.04);
  text-decoration: none;
  transition: transform .3s ease, box-shadow .3s ease;
}
.ga-guide__card:hover { transform: translateY(-5px); box-shadow: 0 16px 36px rgba(21,56,78,.10); }
.ga-guide__photo { width: 100%; height: 210px; }
.ga-guide__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ga-guide__body { padding: 26px 30px 32px; }
.ga-guide__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.ga-guide__head h3 { font-size: 19px; font-weight: 700; color: #15384e; }
.ga-guide__body p { font-size: 14px; line-height: 1.8; color: #7d96a6; font-weight: 500; }

/* ==========================================================================
   7. 共通CTA帯
   ========================================================================== */
.ga-cta {
  background: var(--ga-grad);
  color: #fff;
  padding: 74px 28px;
  text-align: center;
}
.ga-cta__inner { max-width: 860px; margin: 0 auto; }
.ga-cta__title { font-size: 28px; font-weight: 700; letter-spacing: .03em; margin-bottom: 16px; }
.ga-cta__text { font-size: 15.5px; line-height: 1.9; color: rgba(255,255,255,.9); font-weight: 500; margin-bottom: 34px; }
.ga-cta__actions { display: flex; align-items: center; justify-content: center; gap: 16px; flex-wrap: wrap; }
.ga-cta__btn {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  background: #fff;
  color: #0075bc;
  font-weight: 700;
  font-size: 16px;
  padding: 17px 36px;
  border-radius: 999px;
  box-shadow: 0 12px 28px rgba(0,0,0,.14);
  text-decoration: none;
  transition: transform .25s ease;
}
.ga-cta__btn:hover { transform: translateY(-2px); }
.ga-cta__tel {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #fff;
  font-family: "Quicksand", sans-serif;
  font-weight: 600;
  font-size: 24px;
  border: 1.5px solid rgba(255,255,255,.5);
  padding: 13px 28px;
  border-radius: 999px;
  text-decoration: none;
}

/* ==========================================================================
   8. フッター
   ========================================================================== */
.ga-footer { background: #102a3c; color: #fff; padding: 60px 28px 28px; }
.ga-footer__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: 40px;
  padding-bottom: 44px;
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.ga-footer__logo img { height: 30px; width: auto; display: block; filter: brightness(0) invert(1); }
.ga-footer__logo-sub { display: block; font-size: 11px; letter-spacing: .14em; color: #7fd3f5; margin-top: 8px; padding-left: 2px; }
.ga-footer__lead { font-size: 13.5px; line-height: 1.9; color: #9fb6c4; font-weight: 500; max-width: 340px; margin-top: 18px; }
.ga-footer__addr { font-size: 13px; color: #7e98a8; margin-top: 18px; line-height: 1.8; }
.ga-footer__heading {
  font-family: "Quicksand", sans-serif;
  font-size: 12px;
  letter-spacing: .16em;
  color: #7fd3f5;
  font-weight: 600;
  margin-bottom: 18px;
}
.ga-footer__links { display: flex; flex-direction: column; gap: 13px; }
.ga-footer__links a { font-size: 14px; color: #cfe0ea; font-weight: 500; text-decoration: none; transition: color .2s ease; }
.ga-footer__links a:hover { color: #fff; }
.ga-footer__tel {
  display: flex;
  align-items: center;
  gap: 9px;
  color: #fff;
  font-family: "Quicksand", sans-serif;
  font-weight: 600;
  font-size: 22px;
  margin-bottom: 18px;
  text-decoration: none;
}
.ga-footer__tel svg { color: #7fd3f5; }
.ga-footer__formbtn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #009b6e;
  color: #fff;
  font-weight: 700;
  font-size: 14px;
  padding: 13px 26px;
  border-radius: 999px;
  text-decoration: none;
  transition: opacity .2s ease;
}
.ga-footer__formbtn:hover { opacity: .88; }
.ga-footer__copy {
  max-width: 1200px;
  margin: 22px auto 0;
  font-size: 12px;
  color: #6b8595;
  font-family: "Quicksand", sans-serif;
  letter-spacing: .04em;
}

/* ==========================================================================
   9. 下層ページ ヒーロー
   ========================================================================== */
.ga-phero {
  position: relative;
  overflow: hidden;
  background: linear-gradient(165deg, #f1f7fa, #eef7f3);
  padding: 142px 28px 58px;
}
.ga-phero__deco { position: absolute; right: -40px; top: -60px; opacity: .5; pointer-events: none; }
.ga-phero__inner { max-width: 1200px; margin: 0 auto; position: relative; }
.ga-phero__en {
  font-family: "Quicksand", sans-serif;
  font-weight: 600;
  font-size: 16px;
  letter-spacing: .22em;
  color: #009b6e;
}
.ga-phero__title { font-size: 34px; font-weight: 700; color: #15384e; margin-top: 10px; letter-spacing: .03em; }
.ga-phero__crumb { display: flex; align-items: center; gap: 10px; margin-top: 16px; font-size: 12.5px; color: #7d96a6; font-weight: 500; }
.ga-phero__crumb a { color: #0075bc; text-decoration: none; }

/* ==========================================================================
   10. 会社概要
   ========================================================================== */
/* ブランド由来のスモールコンテンツ（会社情報テーブルの下・木モチーフのカード帯） */
.ga-roots { margin-top: 44px; }
.ga-roots__inner {
  position: relative;
  overflow: hidden;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 34px;
  background: linear-gradient(135deg, #f4f9f7, #f1f7fb);
  border: 1px solid #e2ecf1;
  border-radius: 40px 6px;   /* サイトの非対称ピルに統一 */
  padding: 40px 46px;
}
.ga-roots__inner::before,
.ga-roots__inner::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}
.ga-roots__inner::before { width: 220px; height: 220px; background: #009b6e; opacity: .06; left: -70px; bottom: -90px; }
.ga-roots__inner::after  { width: 160px; height: 160px; background: #0075bc; opacity: .06; right: -50px; top: -60px; }
.ga-roots__tree {
  position: relative;
  flex-shrink: 0;
  height: 116px;
  width: auto;
  filter: drop-shadow(0 12px 24px rgba(21,56,78,.14));
}
.ga-roots__body { position: relative; text-align: left; }
.ga-roots__en {
  display: block;
  font-family: "Quicksand", sans-serif;
  font-weight: 600;
  font-size: 12px;
  letter-spacing: .24em;
  color: #009b6e;
  margin-bottom: 8px;
}
.ga-roots__title { font-size: 24px; font-weight: 700; color: #15384e; letter-spacing: .04em; margin-bottom: 14px; }
.ga-roots__text { font-size: 14.5px; line-height: 1.95; color: #5a7384; font-weight: 500; }

.ga-greeting { background: #fff; padding: 84px 28px; }
.ga-greeting__inner { max-width: 820px; margin: 0 auto; }
.ga-prose { margin-top: 24px; }
.ga-prose p { font-size: 15.5px; line-height: 2.05; color: #46637a; font-weight: 500; }
.ga-prose p + p { margin-top: 18px; }
.ga-greeting__sign { margin-top: 28px; display: flex; align-items: baseline; gap: 14px; }
.ga-greeting__sign-label { font-size: 13px; color: #7d96a6; font-weight: 500; }
.ga-greeting__sign-name { font-size: 21px; font-weight: 700; color: #15384e; letter-spacing: .06em; }

.ga-philo {
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, #f4f9fb, #eef7f3);
  padding: 88px 28px;
}
.ga-philo__inner { max-width: 980px; margin: 0 auto; text-align: center; }
.ga-philo__main { position: relative; background: #fff; border: 1px solid #e2ecf1; border-radius: 40px 6px; padding: 48px 44px; margin-top: 32px; }
.ga-philo__main-head { font-size: 24px; font-weight: 700; color: #15384e; line-height: 1.7; letter-spacing: .02em; text-align: left; }
.ga-philo__main-head span { color: #0075bc; }
.ga-philo__main-text { font-size: 15.5px; line-height: 2.05; color: #5a7384; font-weight: 500; margin-top: 24px; max-width: 780px; text-align: left; }
.ga-philo__illust { position: absolute; right: -40px; bottom: -30px; width: 190px; height: auto; pointer-events: none; }
.ga-philo__cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 26px; text-align: left; }
.ga-philo__card { background: #fff; border: 1px solid #e2ecf1; border-radius: 24px 4px; padding: 26px 24px; }
.ga-philo__card h4 { font-size: 16px; font-weight: 700; color: #15384e; margin-bottom: 10px; display: flex; align-items: center; gap: 8px; }
.ga-philo__card h4 i { width: 8px; height: 8px; border-radius: 50%; background: #0075bc; display: inline-block; }
.ga-philo__card h4 i.is-green { background: #009b6e; }
.ga-philo__card p { font-size: 13.5px; line-height: 1.85; color: #7d96a6; font-weight: 500; }

.ga-profile { background: #fff; padding: 88px 28px; }
.ga-profile__inner { max-width: 880px; margin: 0 auto; }
.ga-deftable { width: 100%; border-collapse: collapse; border-top: 1px solid #e2ecf1; margin-top: 44px; }
.ga-deftable th, .ga-deftable td { border-bottom: 1px solid #e2ecf1; padding: 22px 28px; text-align: left; vertical-align: top; }
.ga-deftable th { width: 200px; font-size: 14.5px; font-weight: 700; color: #15384e; }
.ga-deftable td { font-size: 15px; color: #46637a; font-weight: 500; line-height: 1.9; }

/* ==========================================================================
   11. サービス案内
   ========================================================================== */
.ga-srv-intro { background: #fff; padding: 76px 28px 30px; }
.ga-srv-intro__inner { max-width: 880px; margin: 0 auto; text-align: center; }
.ga-srv-intro h2 { font-size: 25px; font-weight: 700; color: #15384e; line-height: 1.6; margin-bottom: 22px; }
.ga-srv-intro h2 span { color: #0075bc; }
.ga-srv-intro p { font-size: 15.5px; line-height: 2; color: #5a7384; font-weight: 500; }
.ga-srv-intro__note { font-size: 13.5px; color: #9fb6c4; }

.ga-srv { background: #fff; padding: 40px 28px 90px; }
.ga-srv__inner { max-width: 1080px; margin: 0 auto; display: flex; flex-direction: column; gap: 28px; }
.ga-srv__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border: 1px solid #e2ecf1;
  border-radius: 40px 6px;
  overflow: hidden;
  box-shadow: 0 12px 34px rgba(21,56,78,.05);
}
.ga-srv__visual { position: relative; overflow: hidden; min-height: 240px; }
.ga-srv__visual--blue { background: linear-gradient(155deg, #e3f1fa, #d3e9f6); }
.ga-srv__visual--green { background: linear-gradient(155deg, #dff3ec, #d0ece1); }
.ga-srv__visual--mix { background: linear-gradient(155deg, #e3f1fa, #dff3ec); }
.ga-srv__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.ga-srv__label {
  position: absolute;
  top: 18px;
  left: 18px;
  z-index: 1;
  background: rgba(255,255,255,.94);
  padding: 5px 13px;
  border-radius: 999px;
  font-family: "Quicksand", sans-serif;
  font-size: 12px;
  letter-spacing: .14em;
  font-weight: 600;
  box-shadow: 0 2px 8px rgba(21,56,78,.14);
}
.ga-srv__label--blue { color: #0075bc; }
.ga-srv__label--green { color: #009b6e; }
.ga-srv__body { padding: 38px 40px; }
/* サービスロゴ（グランSIM等のブランドロゴを見出し上に配置） */
.ga-srv__logo { display: block; width: auto; height: 58px; margin-bottom: 16px; }
.ga-srv__body h3 { font-size: 22px; font-weight: 700; color: #15384e; margin-bottom: 6px; }
.ga-srv__sub { font-size: 13.5px; font-weight: 600; margin-bottom: 18px; }
.ga-srv__sub--blue { color: #0075bc; }
.ga-srv__sub--green { color: #009b6e; }
.ga-srv__body p { font-size: 14.5px; line-height: 1.95; color: #5a7384; font-weight: 500; margin-bottom: 22px; }
.ga-srv__badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 14px;
  padding: 7px 16px;
  border-radius: 999px;
  background: linear-gradient(135deg, #009b6e, #0075bc);
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .04em;
  box-shadow: 0 6px 16px rgba(0, 155, 110, .28);
}
.ga-srv__badge svg { width: 15px; height: 15px; }

/* 代理店募集バッジ（お問い合わせへのリンク）：暖色で違和感あるくらい目立たせる */
.ga-srv__badge--hot {
  padding: 12px 26px;
  font-size: 18px;
  letter-spacing: .06em;
  gap: 10px;
  background: linear-gradient(135deg, #ff8a00, #ff4d2e);
  color: #fff;
  box-shadow: 0 10px 26px rgba(255, 77, 46, .45);
  border: 2px solid #fff;
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease;
  animation: ga-badge-pulse 1.3s ease-in-out infinite;
}
.ga-srv__badge--hot svg { width: 20px; height: 20px; }
.ga-srv__badge--hot .ga-srv__badge-arrow { transition: transform .2s ease; }
.ga-srv__badge--hot:hover {
  transform: translateY(-2px) scale(1.04);
  box-shadow: 0 14px 32px rgba(255, 77, 46, .55);
  animation-play-state: paused;
}
.ga-srv__badge--hot:hover .ga-srv__badge-arrow { transform: translateX(4px); }
@keyframes ga-badge-pulse {
  0%, 100% { transform: scale(1); box-shadow: 0 10px 26px rgba(255, 77, 46, .45); }
  50%      { transform: scale(1.06); box-shadow: 0 12px 34px rgba(255, 77, 46, .6); }
}
@media (prefers-reduced-motion: reduce) {
  .ga-srv__badge--hot { animation: none; }
}

/* ==========================================================================
   12. 法人のお客様へ
   ========================================================================== */
.ga-bz-intro { background: #fff; padding: 80px 28px 60px; }
.ga-bz-intro__inner { max-width: 920px; margin: 0 auto; text-align: center; }
.ga-bz-intro h2 { font-size: 27px; font-weight: 700; color: #15384e; line-height: 1.6; margin-bottom: 28px; }
.ga-bz-intro h2 span { color: #0075bc; }
.ga-bz-intro__img { width: 100%; max-width: 480px; height: auto; display: block; margin: 0 auto 34px; }
.ga-bz-intro p { font-size: 15.5px; line-height: 2.1; color: #5a7384; font-weight: 500; text-align: left; }

.ga-bz-worry { background: linear-gradient(180deg, #f4f9fb, #eef7f3); padding: 80px 28px; }
.ga-bz-worry__inner { max-width: 1180px; margin: 0 auto; }
.ga-bz-worry__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; margin-top: 42px; }
.ga-bz-worry__item { background: #fff; border: 1px solid #e7f0f6; border-radius: 27px 4px; padding: 24px 24px; display: flex; gap: 14px; align-items: flex-start; }
.ga-bz-worry__item--green { border-color: #e4f1ea; }
.ga-bz-worry__item svg { flex-shrink: 0; margin-top: 2px; }
.ga-bz-worry__item p { font-size: 15px; line-height: 1.7; color: #3a586d; font-weight: 500; }

.ga-bz-cando { background: #fff; padding: 84px 28px; position: relative; }
.ga-bz-cando__deco { max-width: 1200px; margin: 0 auto; position: relative; }
.ga-bz-cando__illust { position: absolute; right: 24px; top: -150px; width: 152px; height: auto; z-index: 5; pointer-events: none; }
.ga-bz-cando__inner { max-width: 920px; margin: 0 auto; }
.ga-bz-cando__head { display: flex; align-items: center; gap: 12px; margin-bottom: 24px; }
.ga-bz-cando__head h2 { font-size: 25px; font-weight: 700; color: #15384e; }
.ga-bz-cando__inner p { font-size: 15.5px; line-height: 2.05; color: #5a7384; font-weight: 500; }
.ga-bz-cando__inner p + p { margin-top: 18px; }

.ga-bz-detail { background: linear-gradient(180deg, #f4f9fb, #fff); padding: 80px 28px; }
.ga-bz-detail__inner { max-width: 1000px; margin: 0 auto; display: flex; flex-direction: column; gap: 30px; }
.ga-bz-card { background: #fff; border: 1px solid #e2ecf1; border-radius: 40px 6px; padding: 44px 48px; box-shadow: 0 12px 34px rgba(21,56,78,.05); }
/* 見出しブロック＋サービスロゴの横並び（ロゴがある事業カードのみ） */
.ga-bz-card__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 32px; }
.ga-bz-card__headtxt { flex: 1 1 auto; min-width: 0; }
.ga-bz-card__logo { flex: 0 0 auto; width: auto; height: 86px; margin-top: 2px; }
.ga-bz-card__num { font-family: "Quicksand", sans-serif; font-size: 12.5px; letter-spacing: .16em; font-weight: 600; margin-bottom: 6px; }
.ga-bz-card__num--blue { color: #0075bc; }
.ga-bz-card__num--green { color: #009b6e; }
.ga-bz-card__title { font-size: 22px; font-weight: 700; color: #15384e; line-height: 1.45; margin-bottom: 22px; }
.ga-bz-card__title span { font-size: 15px; color: #5a7384; font-weight: 500; }
.ga-bz-card__text { font-size: 14.5px; line-height: 1.95; color: #5a7384; font-weight: 500; margin-bottom: 24px; }
.ga-bz-expect { border-radius: 14px; padding: 24px 28px; }
.ga-bz-expect--blue { background: #f7fbfd; }
.ga-bz-expect--green { background: #f6fbf8; }
.ga-bz-expect__label { font-size: 13.5px; font-weight: 700; margin-bottom: 14px; }
.ga-bz-expect--blue .ga-bz-expect__label { color: #0075bc; }
.ga-bz-expect--green .ga-bz-expect__label { color: #009b6e; }
.ga-bz-expect__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 11px 28px; }
.ga-bz-expect__grid span { display: flex; gap: 9px; align-items: flex-start; font-size: 14px; color: #46637a; font-weight: 500; }
.ga-bz-expect__grid svg { flex-shrink: 0; margin-top: 2px; }

.ga-strength { background: #15384e; color: #fff; padding: 84px 28px; }
.ga-strength__inner { max-width: 1000px; margin: 0 auto; }
.ga-strength .ga-sec-head__en { color: #7fd3f5; }
.ga-strength .ga-sec-head__ja { color: #fff; }
.ga-strength__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 40px; }
.ga-strength__card { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); border-radius: 40px 6px; padding: 36px 34px; }
.ga-strength__icon { width: 52px; height: 52px; border-radius: 14px; display: flex; align-items: center; justify-content: center; margin-bottom: 20px; }
.ga-strength__icon--blue { background: rgba(127,211,245,.16); }
.ga-strength__icon--green { background: rgba(111,217,182,.16); }
.ga-strength__card h3 { font-size: 18px; font-weight: 700; margin-bottom: 12px; }
.ga-strength__card p { font-size: 14px; line-height: 1.9; color: #b9cdd9; font-weight: 500; }

.ga-voice { background: #fff; padding: 84px 28px; }
.ga-voice__inner { max-width: 1000px; margin: 0 auto; }
.ga-voice__note { font-size: 13px; color: #9fb6c4; margin-top: 10px; font-weight: 500; }
.ga-voice__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-top: 40px; }
.ga-voice__card { border: 1px solid #e2ecf1; border-radius: 40px 6px; padding: 30px 28px; background: #fff; box-shadow: 0 8px 24px rgba(21,56,78,.04); }
.ga-voice__quote { margin-bottom: 14px; }
.ga-voice__card p { font-size: 14.5px; line-height: 1.9; color: #46637a; font-weight: 500; margin-bottom: 20px; }
.ga-voice__cite { font-size: 13px; color: #7d96a6; font-weight: 700; }

.ga-sim { background: linear-gradient(180deg, #f4f9fb, #eef7f3); padding: 80px 28px; }
.ga-sim__inner { max-width: 920px; margin: 0 auto; }
.ga-sim__box { position: relative; background: #fff; border: 1px solid #e2ecf1; border-radius: 40px 6px; padding: 48px 50px; box-shadow: 0 14px 38px rgba(21,56,78,.06); }
.ga-sim__illust { position: absolute; top: -74px; right: -18px; width: 158px; height: auto; z-index: 3; pointer-events: none; }
.ga-sim__box h2 { font-size: 23px; font-weight: 700; color: #15384e; margin-bottom: 20px; }
.ga-sim__box p { font-size: 15px; line-height: 2; color: #5a7384; font-weight: 500; margin-bottom: 18px; }
.ga-sim__note { font-size: 13px; color: #9fb6c4; font-weight: 500; padding-top: 16px; border-top: 1px dashed #e2ecf1; }

.ga-flow { background: #fff; padding: 84px 28px; }
.ga-flow__inner { max-width: 1040px; margin: 0 auto; }
.ga-flow__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 48px; }
.ga-flow__item { border-radius: 24px 4px; padding: 30px 24px; }
.ga-flow__item--blue { background: #f7fbfd; border: 1px solid #e7f0f6; }
.ga-flow__item--green { background: #f6fbf8; border: 1px solid #e4f1ea; }
.ga-flow__top { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
.ga-flow__num { font-family: "Quicksand", sans-serif; font-size: 30px; font-weight: 600; }
.ga-flow__num--blue { color: #0075bc; }
.ga-flow__num--green { color: #009b6e; }
.ga-flow__item h3 { font-size: 16px; font-weight: 700; color: #15384e; margin-bottom: 10px; }
.ga-flow__item p { font-size: 13px; line-height: 1.85; color: #7d96a6; font-weight: 500; }

/* ==========================================================================
   13. お問い合わせ
   ========================================================================== */
.ga-contact { background: #fff; padding: 72px 28px 96px; }
.ga-contact__inner { max-width: 1080px; margin: 0 auto; }
.ga-contact__lead { text-align: center; font-size: 15.5px; line-height: 2; color: #5a7384; font-weight: 500; margin-bottom: 48px; }
.ga-ct-top { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-bottom: 24px; }
.ga-ct-tel { background: #15384e; color: #fff; padding: 28px 32px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.ga-ct-tel__label { font-family: "Quicksand", sans-serif; font-size: 12px; letter-spacing: .16em; color: #7fd3f5; font-weight: 600; margin-bottom: 8px; }
.ga-ct-tel__sub { font-size: 13px; color: #b9cdd9; font-weight: 500; }
.ga-ct-tel__num { display: flex; align-items: center; gap: 10px; color: #fff; font-family: "Quicksand", sans-serif; font-weight: 600; font-size: 25px; white-space: nowrap; text-decoration: none; }
.ga-ct-tel__num svg { color: #7fd3f5; }
.ga-ct-welcome { border: 1px solid #e2ecf1; padding: 24px 30px; background: #f7fbfd; }
.ga-ct-welcome h3 { font-size: 15px; font-weight: 700; color: #15384e; margin-bottom: 14px; }
.ga-ct-welcome__list { display: flex; flex-direction: column; gap: 11px; }
.ga-ct-welcome__list span { display: flex; gap: 10px; align-items: flex-start; font-size: 13.5px; color: #46637a; font-weight: 500; line-height: 1.55; }
.ga-ct-welcome__list svg { flex-shrink: 0; margin-top: 2px; }

.ga-form-box { border: 1px solid #e2ecf1; padding: 44px 46px; box-shadow: 0 12px 36px rgba(21,56,78,.05); }
.ga-field { margin-bottom: 24px; }
.ga-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 24px; }
.ga-label { display: flex; align-items: center; gap: 9px; font-size: 14px; font-weight: 700; color: #15384e; margin-bottom: 9px; }
.ga-badge-req { font-size: 11px; font-weight: 700; color: #fff; background: #e26d5c; padding: 2px 8px; border-radius: 5px; letter-spacing: .04em; }
.ga-badge-opt { font-size: 11px; font-weight: 700; color: #7d96a6; background: #eef3f6; padding: 2px 8px; border-radius: 5px; letter-spacing: .04em; }
.ga-input, .ga-textarea, .ga-select {
  width: 100%;
  font-size: 15px;
  color: #15384e;
  background: #fff;
  border: 1.5px solid #d8e4ec;
  font-family: inherit;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.ga-input { height: 50px; padding: 0 16px; }
.ga-select { height: 50px; padding: 0 16px; -webkit-appearance: none; appearance: none; cursor: pointer; }
.ga-textarea { padding: 14px 16px; line-height: 1.7; resize: vertical; }
.ga-input:focus, .ga-textarea:focus, .ga-select:focus { outline: none; border-color: #0075bc; box-shadow: 0 0 0 3px rgba(0,117,188,.12); }
.ga-input::placeholder, .ga-textarea::placeholder { color: #a9bdc9; }
.ga-select-wrap { position: relative; }
.ga-select-wrap svg { position: absolute; right: 16px; top: 16px; pointer-events: none; }
.ga-file { display: flex; align-items: center; gap: 13px; width: 100%; padding: 18px 20px; border: 1.5px dashed #cddde7; background: #f7fbfd; cursor: pointer; }
.ga-file svg { flex-shrink: 0; }
.ga-file span { font-size: 13.5px; color: #5a7384; font-weight: 500; }
.ga-file input { display: none; }
.ga-submit {
  width: 100%;
  height: 58px;
  margin-top: 8px;
  background: var(--ga-grad);
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  border: none;
  border-radius: 999px;
  cursor: pointer;
  box-shadow: 0 12px 26px rgba(0,117,188,.24);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  transition: transform .25s ease;
}
.ga-submit:hover { transform: translateY(-2px); }

/* --------------------------------------------------------------------------
   CMSお問い合わせフォーム上書き（静的フォームのデザインを再現）
   ※ CMSの mail-form.css は body へ後読みされるため specificity を上げつつ
     要所は !important で確実に上書きする
   -------------------------------------------------------------------------- */
/* .ga-form-box が枠と余白を担うので CMS 側の内側余白・背景はリセット */
.ga-form-box .form-contents { padding: 0 !important; margin: 0; background: transparent !important; }
.ga-form-box .form-contents form dl { margin-bottom: 8px; }

/* dt/dd を横並び（280pxフロート）→ ラベル上・入力下の縦積みへ */
.ga-form-box .form-contents form dl dt:not(.pattern-exclusion) {
  float: none;
  width: 100%;
  padding-top: 0;
  margin: 0 0 9px;
  text-align: left;
}
.ga-form-box .form-contents form dl dd:not(.pattern-exclusion) {
  padding: 0 0 24px;
  margin: 0;
  line-height: 1.7;
  border-bottom: none;   /* pattern-1 の区切り線を消す */
}

/* ラベル（静的 .ga-label 相当） */
.ga-form-box .form-contents dl dt:not(.pattern-exclusion) span {
  display: inline-flex !important;
  align-items: center;
  font-size: 14px !important;
  font-weight: 700 !important;
  color: #15384e !important;
}
/* 必須バッジ（静的 .ga-badge-req 相当：赤オレンジ角丸／ラベルの後ろ） */
.ga-form-box .form-contents dl dt:not(.pattern-exclusion) span.required::before {
  content: '必須';
  order: 2;
  margin: 0 0 0 9px;
  padding: 2px 8px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .04em;
  color: #fff;
  background: #e26d5c;
  border-radius: 5px;
  top: 0;
}
.ga-form-box .form-contents dl dt:not(.pattern-exclusion) span.optional::before {
  content: '任意';
  order: 2;
  margin: 0 0 0 9px;
  padding: 2px 8px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .04em;
  color: #7d96a6;
  background: #eef3f6;
  border-radius: 5px;
  top: 0;
}

/* 入力欄（静的 .ga-input / .ga-textarea 相当：角丸なし・細ボーダー） */
.ga-form-box .form-contents dd:not(.pattern-exclusion) .textarea,
.ga-form-box .form-contents dd:not(.pattern-exclusion) .textarea-serect {
  width: 100%;
  font-size: 15px;
  color: #15384e;
  background: #fff;
  border: 1.5px solid #d8e4ec !important;
  border-radius: 0 !important;
  font-family: inherit;
  box-sizing: border-box;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.ga-form-box .form-contents dd:not(.pattern-exclusion) input.textarea,
.ga-form-box .form-contents dd:not(.pattern-exclusion) .textarea-serect {
  height: 50px !important;
  padding: 0 16px !important;
}
.ga-form-box .form-contents dd:not(.pattern-exclusion) textarea.textarea {
  min-height: 150px;
  padding: 14px 16px !important;
  line-height: 1.7;
  resize: vertical;
}
.ga-form-box .form-contents dd:not(.pattern-exclusion) .textarea:focus {
  outline: none;
  border-color: #0075bc !important;
  box-shadow: 0 0 0 3px rgba(0,117,188,.12);
}
.ga-form-box .form-contents dd:not(.pattern-exclusion) .textarea::placeholder { color: #a9bdc9; }

/* 送信ボタン（静的 .ga-submit 相当：全幅・グラデ・ピル・矢印アイコン） */
.ga-form-box .form-contents .submit-btn,
.ga-form-box .form-pattern-1 .submit-btn {
  width: 100% !important;
  max-width: none !important;
  height: 58px;
  margin: 8px 0 0 !important;
  padding: 0 !important;
  background: var(--ga-grad) !important;
  color: #fff !important;
  font-size: 16px;
  font-weight: 700;
  border: none !important;
  border-radius: 999px !important;
  cursor: pointer;
  box-shadow: 0 12px 26px rgba(0,117,188,.24);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  transition: transform .25s ease, box-shadow .25s ease;
}
.ga-form-box .form-pattern-1 .submit-btn:hover,
.ga-form-box .form-contents :not(.pattern-exclusion) button.submit-btn:hover {
  background: var(--ga-grad) !important;
  transform: translateY(-2px);
}
/* CMS標準のメール封筒アイコンを消し、静的と同じ右矢印を付与 */
.ga-form-box .form-contents .submit-btn::before { display: none !important; }
.ga-form-box .form-contents .submit-btn::after {
  content: "";
  display: inline-block;
  width: 18px;
  height: 18px;
  background-color: #fff;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E") no-repeat center / contain;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E") no-repeat center / contain;
}

/* エラーメッセージ／完了メッセージ（サイトのトーンに合わせる） */
.ga-form-box .form-contents .form-err-msg {
  background: #fdecea;
  border: 1px solid #e26d5c;
  color: #c0392b;
  border-radius: 8px;
}
.ga-form-box .form-pattern-1 .form-thanks-msg {
  border: 1px solid #cfe0ea;
  border-radius: 12px;
  background: #f7fbfd;
}
.ga-form-box .form-pattern-1 .form-thanks-msg .back-home-btn a {
  background: var(--ga-grad);
  border: none;
  border-radius: 999px;
  color: #fff;
}
.ga-form-box .form-pattern-1 .form-thanks-msg .back-home-btn a:hover { background: var(--ga-grad); opacity: .92; }

.ga-privacy { border: 1px solid #e2ecf1; padding: 40px 46px; margin-top: 24px; background: #fff; }
.ga-privacy__head { display: flex; align-items: baseline; gap: 12px; margin-bottom: 20px; }
.ga-privacy__en { font-family: "Quicksand", sans-serif; font-weight: 600; font-size: 13px; letter-spacing: .18em; color: #0075bc; }
.ga-privacy__head h3 { font-size: 18px; font-weight: 700; color: #15384e; }
.ga-privacy__intro { font-size: 13.5px; line-height: 1.95; color: #5a7384; font-weight: 500; margin-bottom: 22px; }
.ga-privacy__items { display: flex; flex-direction: column; gap: 18px; }
.ga-privacy__items h4 { font-size: 14.5px; font-weight: 700; color: #15384e; margin-bottom: 7px; display: flex; align-items: center; gap: 8px; }
.ga-privacy__items h4 i { width: 7px; height: 7px; border-radius: 50%; background: #0075bc; display: inline-block; }
.ga-privacy__items h4 i.is-green { background: #009b6e; }
.ga-privacy__items p { font-size: 13.5px; line-height: 1.9; color: #5a7384; font-weight: 500; padding-left: 15px; }

/* ==========================================================================
   14. レスポンシブ
   ========================================================================== */
@media (max-width: 1100px) {
  .ga-nav { display: none; }
  .ga-header__inner { padding: 16px 20px; }
  .ga-header.is-scrolled .ga-header__inner { padding: 12px 20px; }
}

@media (max-width: 896px) {
  .ga-fv { height: auto; padding: 120px 0 0; }
  .ga-fv__inner { display: block; padding: 0 24px; }
  .ga-fv__content { width: 100%; }
  .ga-fv__title { font-size: 32px; }
  .ga-fv__panel { position: relative; inset: auto; width: 100%; height: 240px; border-radius: 28px 6px; margin-top: 30px; }
  .ga-fv__illust { display: none; }
  .ga-fv__tree { display: none; }

  .ga-worry__grid { grid-template-columns: 1fr; gap: 30px; }
  .ga-biz__grid { grid-template-columns: 1fr; gap: 30px; }
  .ga-biz__item { padding: 0 14px; }
  .ga-biz__item--mid { border: none; padding: 30px 14px; border-top: 1px solid #d7e3ea; border-bottom: 1px solid #d7e3ea; }
  .ga-feature__row { grid-template-columns: 1fr; min-height: 0; border-radius: 28px; }
  .ga-feature__photo { height: 220px; padding: 20px 20px 0; order: -1; }
  .ga-feature__photo--l .ga-feature__img,
  .ga-feature__photo--r .ga-feature__img { border-radius: 16px; }
  .ga-feature__body { padding: 24px 28px 30px; }
  .ga-guide__grid { grid-template-columns: 1fr; }
  .ga-philo__cards { grid-template-columns: 1fr; }
  .ga-philo__illust { display: none; }
  .ga-srv__row { grid-template-columns: 1fr; }
  .ga-bz-card__head { gap: 22px; }
  .ga-bz-card__logo { height: 70px; }
  .ga-bz-worry__grid { grid-template-columns: 1fr; }
  .ga-bz-expect__grid { grid-template-columns: 1fr; }
  .ga-strength__grid { grid-template-columns: 1fr; }
  .ga-voice__grid { grid-template-columns: 1fr; }
  .ga-flow__grid { grid-template-columns: 1fr 1fr; }
  .ga-bz-cando__illust, .ga-sim__illust { display: none; }
  .ga-footer__inner { grid-template-columns: 1fr; gap: 30px; }
  .ga-ct-top { grid-template-columns: 1fr; }
  .ga-form-row { grid-template-columns: 1fr; }
  .ga-deftable th { width: 130px; padding: 16px; }
  .ga-deftable td { padding: 16px; }
}

@media (max-width: 639px) {
  .ga-worry, .ga-biz, .ga-thoughts, .ga-guide, .ga-greeting, .ga-philo, .ga-profile,
  .ga-srv-intro, .ga-srv, .ga-bz-intro, .ga-bz-worry, .ga-bz-cando, .ga-bz-detail,
  .ga-strength, .ga-voice, .ga-sim, .ga-flow, .ga-contact { padding-left: 18px; padding-right: 18px; }
  .ga-flow__grid { grid-template-columns: 1fr; }
  .ga-sec-head__ja { font-size: 22px; }
  .ga-cta__title { font-size: 22px; }
  .ga-cta__actions { flex-direction: column; }
  .ga-cta__tel { font-size: 20px; }
  .ga-phero { padding: 120px 18px 44px; }
  .ga-phero__title { font-size: 26px; }
  .ga-ct-tel { flex-direction: column; align-items: flex-start; gap: 10px; }
  .ga-form-box, .ga-privacy, .ga-bz-card, .ga-philo__main, .ga-sim__box { padding-left: 22px; padding-right: 22px; }
  .ga-srv__body, .ga-bz-cando__inner { padding-left: 24px; padding-right: 24px; }
  .ga-srv__logo { height: 48px; margin-bottom: 14px; }
  .ga-bz-card__head { flex-direction: column-reverse; align-items: flex-start; gap: 0; }
  .ga-bz-card__logo { height: 58px; margin: 0 0 18px; }
}
