/*
 * ======================================
 * 追加クラス一覧（共通SCSS取り込み検討用）
 * ======================================
 *
 * .eagle-header / __inner / __right / __tel / __cta   - サイト固有ヘッダー（白固定バー）
 * .eagle-logo ...                                     - 羽アイコン＋ロゴテキスト
 * .eagle-nav / __link                                 - PC横並び単一行ナビ
 * .eagle-header-spacer                                - 固定ヘッダー分の余白
 * .eagle-btn (--solid/--outline/--dark/--white/--tel) - ピル型ボタン一式
 * .eagle-head / __en / __ja (--left/--center/__ja--lg)- 英日2段見出し
 * .eagle-hero ...                                     - 下層ページヒーロー（クリーム＋ストライプ＋葉）
 * .eagle-mv ...                                       - メインビュー
 * .eagle-ph / __label (--g2/--g3)                     - 画像プレースホルダ（緑グラデ）
 * .eagle-card (--lift)                                - 白カード（角0・緑シャドウ）
 * .eagle-leaf (--lg) / .eagle-quarter                 - 葉型あしらい
 * .eagle-badge                                        - カテゴリバッジ
 * .eagle-news ...                                     - お知らせリスト
 * .eagle-cta ... / .eagle-cta-soft                    - CTAバンド（緑グラデ／クリーム）
 * .eagle-lead-title                                   - リード見出し
 * .eagle-footer ...                                   - クリームフッター
 * .eagle-step ...                                     - 利用の流れステップ
 * .eagle-form / .eagle-input/select/textarea ...      - お問い合わせフォーム
 * .eagle-table ...                                    - 会社概要テーブル
 * .eagle-ba ...                                       - ビフォーアフター
 * .eagle-sub-link                                     - 補助金リンクカード
 * .eagle-icon-circle (--lg)                           - アイコン円
 * .eagle-inner (--w*) / .eagle-py (--lg/--96/--sm)    - 幅・上下余白
 * .eagle-bg-mint / .eagle-bg-cream                    - セクション背景
 * .eagle-as-4-5 / --5-4 / --16-10                     - アスペクト比補完
 *
 * ======================================
 * 共通SCSSに不足していたもの（5分類）
 * ======================================
 * ・値の粒度不足：clamp()ベースのセクション余白・見出しサイズ（design準拠）
 * ・構造不足：英日2段見出し(en大/ja小)、MV、ビフォーアフター、ステップカード
 * ・装飾パターン不足：葉型あしらい(50% 50% 50% 0)、ストライプ地紋、緑グラデ画像枠
 */

/* ==========================================================================
 * カラー変数（参照用）
 *   主緑 #61BF32 / 濃緑 #243d1c / サブ緑 #46871f / クリーム #fbf8e9 / ミント #f4f8ef
 * ========================================================================== */

/* --------------------------------------------------------------------------
 * 幅・余白・背景ユーティリティ
 * -------------------------------------------------------------------------- */
.eagle-inner { width: 100%; max-width: 1280px; margin: 0 auto; padding-left: 24px; padding-right: 24px; }
.eagle-inner--w1180 { max-width: 1180px; }
.eagle-inner--w1080 { max-width: 1080px; }
.eagle-inner--w1040 { max-width: 1040px; }
.eagle-inner--w1000 { max-width: 1000px; }
.eagle-inner--w920  { max-width: 920px; }
.eagle-inner--w900  { max-width: 900px; }
.eagle-inner--w880  { max-width: 880px; }
.eagle-inner--w820  { max-width: 820px; }
.eagle-inner--w780  { max-width: 780px; }
.eagle-inner--w760  { max-width: 760px; }

.eagle-py      { padding-top: clamp(56px, 7vw, 104px); padding-bottom: clamp(56px, 7vw, 104px); }
.eagle-py--lg  { padding-top: clamp(64px, 8vw, 112px); padding-bottom: clamp(64px, 8vw, 112px); }
.eagle-py--96  { padding-top: clamp(56px, 7vw, 96px);  padding-bottom: clamp(56px, 7vw, 96px); }
.eagle-py--sm  { padding-top: clamp(48px, 6vw, 80px);  padding-bottom: clamp(48px, 6vw, 80px); }
.eagle-intro-py { padding-top: clamp(56px, 7vw, 96px); padding-bottom: clamp(20px, 3vw, 40px); }

.eagle-bg-mint  { background: #f4f8ef; }
.eagle-bg-cream { background: #fbf8e9; border-top: 1px solid #ece7d2; }

.eagle-as-4-5  { aspect-ratio: 4 / 5; }
.eagle-as-5-4  { aspect-ratio: 5 / 4; }
.eagle-as-16-10{ aspect-ratio: 16 / 10; }

/* --------------------------------------------------------------------------
 * ヘッダー（白固定バー）
 * -------------------------------------------------------------------------- */
.eagle-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 1280px;
  margin: 0 auto;
  height: 78px;
  padding: 0 24px;
}
.eagle-header-spacer { height: 78px; }

/* ロゴ */
.eagle-logo { display: flex; align-items: center; gap: 12px; flex-shrink: 0; text-decoration: none; }
.eagle-logo__img { display: block; height: 44px; width: auto; }
.eagle-logo__icon {
  width: 38px; height: 38px; border-radius: 50%;
  background: #61BF32; display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.eagle-logo__petal {
  display: block; width: 18px; height: 18px;
  border-radius: 0 50% 50% 50%; background: #ffffff; transform: rotate(45deg);
}
.eagle-logo__body { display: flex; flex-direction: column; line-height: 1.1; }
.eagle-logo__name { font-family: "Marcellus", serif; font-size: 23px; letter-spacing: 0.04em; color: #243d1c; }
.eagle-logo__sub  { font-family: "Zen Kaku Gothic New", sans-serif; font-size: 10px; letter-spacing: 0.18em; color: #6b7567; }

/* PCナビ */
.eagle-nav { display: flex; align-items: center; gap: 4px; margin-left: auto; }
.eagle-nav__link {
  position: relative; font-size: 14px; font-weight: 500; color: #2f3a2b;
  text-decoration: none; padding: 8px 14px; white-space: nowrap; transition: color .3s ease;
}
.eagle-nav__link::after {
  content: ""; position: absolute; left: 50%; bottom: 2px; width: 0; height: 2px;
  background: #61BF32; transition: width .3s ease, left .3s ease;
}
.eagle-nav__link:hover { color: #46871f; }
.eagle-nav__link:hover::after,
.eagle-nav__link.is-current::after { width: 60%; left: 20%; }
.eagle-nav__link.is-current { color: #46871f; }

/* 右側（電話＋CTA） */
.eagle-header__right { display: flex; align-items: center; gap: 18px; flex-shrink: 0; margin-left: 20px; }
.eagle-header__tel {
  display: flex; flex-direction: column; line-height: 1.1; text-decoration: none;
}
.eagle-header__tel-label { font-family: "Marcellus", serif; font-size: 11px; letter-spacing: 0.1em; color: #46871f; }
.eagle-header__tel-num   { font-family: "EB Garamond", serif; font-size: 21px; font-weight: 600; color: #243d1c; letter-spacing: 0.02em; }
.eagle-header__cta {
  font-size: 14px; font-weight: 700; color: #ffffff; background: #61BF32;
  padding: 12px 22px; border-radius: 999px; text-decoration: none; transition: background .3s ease;
  white-space: nowrap;
}
.eagle-header__cta:hover { background: #46871f; }

@media (max-width: 1100px) {
  .eagle-nav, .eagle-header__right { display: none; }
  .eagle-header__inner { height: 60px; }
  .eagle-header-spacer { height: 60px; }
}

/* --------------------------------------------------------------------------
 * ボタン（ピル型）
 * -------------------------------------------------------------------------- */
.eagle-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-size: 16px; font-weight: 700; line-height: 1.4; text-decoration: none;
  padding: 16px 38px; border-radius: 999px; border: none; cursor: pointer;
  transition: background .3s ease, color .3s ease, box-shadow .3s ease, transform .3s ease;
}
.eagle-btn--solid  { color: #ffffff; background: #61BF32; box-shadow: 0 10px 26px rgba(97,191,50,0.28); }
.eagle-btn--solid:hover { background: #52a828; transform: translateY(-2px); }
.eagle-btn--outline { color: #243d1c; background: #ffffff; border: 1.5px solid #61BF32; }
.eagle-btn--outline:hover { background: #61BF32; color: #ffffff; }
.eagle-btn--dark   { color: #ffffff; background: #61BF32; box-shadow: 0 10px 26px rgba(97,191,50,0.28); }
.eagle-btn--dark:hover { background: #52a828; transform: translateY(-2px); }
.eagle-btn--white  { color: #243d1c; background: #ffffff; }
.eagle-btn--white:hover { background: #eef7e6; }
.eagle-btn--tel {
  color: #243d1c; background: #ffffff; border: 1.5px solid #61BF32;
  padding: 15px 30px; font-size: 16px;
}
.eagle-btn--tel .eagle-btn__num { font-family: "EB Garamond", serif; font-size: 19px; color: #46871f; }
.eagle-btn--full { width: 100%; }

/* --------------------------------------------------------------------------
 * 見出し（英日2段）
 * -------------------------------------------------------------------------- */
.eagle-head { }
.eagle-head--center { text-align: center; }
.eagle-head--left   { text-align: left; }
.eagle-head__en {
  display: block; font-family: "Marcellus", serif;
  font-size: clamp(26px, 3.4vw, 40px); letter-spacing: 0.12em; color: #61BF32;
  line-height: 1.1; margin-bottom: 8px;
}
.eagle-head__ja {
  display: block; font-family: "Zen Old Mincho", serif; font-weight: 600;
  font-size: clamp(15px, 1.7vw, 19px); color: #243d1c; letter-spacing: 0.1em; line-height: 1.5;
}
.eagle-head__ja--lg { font-size: clamp(20px, 2.5vw, 28px); letter-spacing: 0.08em; }
.eagle-head--gap { margin-bottom: clamp(36px, 4vw, 56px); }
.eagle-head--gap-lg { margin-bottom: clamp(40px, 5vw, 64px); }

/* リード見出し（CTA等の大きめ日本語見出し） */
.eagle-lead-title {
  font-family: "Zen Old Mincho", serif; font-weight: 600;
  font-size: clamp(20px, 2.8vw, 30px); color: #243d1c; line-height: 1.6; letter-spacing: 0.03em;
}

/* --------------------------------------------------------------------------
 * 下層ページヒーロー
 * -------------------------------------------------------------------------- */
.eagle-hero { position: relative; overflow: hidden; background: #fbf8e9; border-bottom: 1px solid #ece7d2; }
.eagle-hero::before {
  content: ""; position: absolute; inset: 0;
  background: repeating-linear-gradient(115deg, rgba(36,61,28,0.028), rgba(36,61,28,0.028) 16px, transparent 16px, transparent 32px);
}
.eagle-hero::after {
  content: ""; position: absolute; right: -70px; bottom: -90px; width: 300px; height: 300px;
  border-radius: 50% 50% 50% 0; background: rgba(97,191,50,0.13); transform: rotate(-45deg);
}
.eagle-hero__inner {
  position: relative; max-width: 1280px; margin: 0 auto;
  padding: clamp(56px,8vw,104px) 24px clamp(48px,6vw,84px);
}
.eagle-hero__en { display: block; font-family: "Marcellus", serif; font-size: clamp(28px,4.5vw,52px); letter-spacing: 0.1em; color: #61BF32; margin-bottom: 2px; }
.eagle-hero__ja { display: block; font-family: "Zen Old Mincho", serif; font-weight: 600; font-size: clamp(18px,2.2vw,24px); color: #243d1c; letter-spacing: 0.08em; }
.eagle-hero__crumb { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 22px; font-size: 12.5px; color: #8a9b7e; }
.eagle-hero__crumb a { color: #8a9b7e; text-decoration: none; }
.eagle-hero__crumb a:hover { text-decoration: underline; }
.eagle-hero__crumb span.sep { opacity: 0.6; }
.eagle-hero__crumb span.cur { color: #243d1c; }

/* 背景写真つきヒーロー（$hero_img 指定時）：写真＋濃緑オーバーレイ＋白文字 */
.eagle-hero--photo { background-color: #243d1c; background-size: cover; background-position: center; background-repeat: no-repeat; }
.eagle-hero--photo::before { background: linear-gradient(105deg, rgba(28,49,21,0.72) 0%, rgba(28,49,21,0.5) 55%, rgba(28,49,21,0.35) 100%); }
.eagle-hero--photo::after { display: none; }
.eagle-hero--photo .eagle-hero__en { color: #9fe077; }
.eagle-hero--photo .eagle-hero__ja { color: #ffffff; }
.eagle-hero--photo .eagle-hero__crumb { color: rgba(255,255,255,0.75); }
.eagle-hero--photo .eagle-hero__crumb a { color: rgba(255,255,255,0.82); }
.eagle-hero--photo .eagle-hero__crumb span.cur { color: #ffffff; }

/* --------------------------------------------------------------------------
 * メインビュー
 * -------------------------------------------------------------------------- */
.eagle-mv { position: relative; min-height: clamp(560px, 84vh, 840px); display: flex; align-items: center; overflow: hidden; background: #1c3115; }
.eagle-mv__slideshow { position: absolute; inset: 0; z-index: 0; }
/* CMSスライダー（cms-slider）をMV枠いっぱいに表示
   ※CMS実出力の多重ラッパー構造（.slider_wrapper > .main_slider__outer > .main_slider(swiper) >
     .swiper-wrapper > .swiper-slide > .main_slider__inner > img）の全階層に高さを通す */
#slideshow #cms-slider-1-1-area { position: absolute; inset: 0; width: 100%; height: 100% !important; }
#slideshow .slider_wrapper,
#slideshow .main_slider__outer,
#slideshow .main_slider,
#slideshow .swiper-wrapper,
#slideshow .swiper-slide,
#slideshow .main_slider__inner { height: 100% !important; }
#slideshow .main_slider__inner img,
#slideshow .swiper-slide img { width: 100% !important; height: 100% !important; object-fit: cover !important; display: block; }
.eagle-mv__slide { position: absolute; inset: 0; background: linear-gradient(135deg, #2f5a23 0%, #1c3115 100%); }
.eagle-mv__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.eagle-mv__overlay { position: absolute; inset: 0; z-index: 1; background: linear-gradient(105deg, rgba(28,49,21,0.78) 0%, rgba(28,49,21,0.45) 45%, rgba(28,49,21,0.12) 100%); }
.eagle-mv__content { position: relative; z-index: 2; width: 100%; max-width: 1280px; margin: 0 auto; padding: 0 clamp(24px, 5vw, 56px); }
.eagle-mv__catch { font-family: "Zen Old Mincho", serif; font-weight: 600; font-size: clamp(24px, 3.6vw, 40px); line-height: 1.5; color: #ffffff; margin: 0; letter-spacing: 0.04em; text-shadow: 0 2px 20px rgba(0,0,0,0.18); }
.eagle-mv__lead { font-family: "Zen Kaku Gothic New", sans-serif; font-size: clamp(14px, 1.6vw, 18px); line-height: 2.1; color: #eaf2e4; margin: 28px 0 0; max-width: 540px; }
.eagle-mv__dots { position: absolute; bottom: 28px; left: 50%; transform: translateX(-50%); display: flex; gap: 10px; z-index: 3; }
.eagle-mv__dot { width: 10px; height: 10px; border-radius: 999px; border: none; padding: 0; cursor: pointer; background: rgba(255,255,255,0.5); transition: width .35s ease, background .35s ease; }
.eagle-mv__dot.is-active { width: 32px; background: #9fe077; }
/* SP: FVの高さを約60vhに（min-heightの560px下限を解除）。画像の縦100%は上のベース定義で対応 */
@media (max-width: 639px) {
  .eagle-mv { min-height: 0; height: 60vh; }
}

/* --------------------------------------------------------------------------
 * 画像プレースホルダ（緑グラデ）
 * -------------------------------------------------------------------------- */
.eagle-ph { position: relative; overflow: hidden; display: flex; align-items: flex-end; padding: 24px; background: linear-gradient(150deg, #6cbf3e, #2f5a23); }
.eagle-ph::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(115deg, rgba(255,255,255,0.05), rgba(255,255,255,0.05) 14px, transparent 14px, transparent 28px); }
.eagle-ph--g2 { background: linear-gradient(150deg, #5aa838, #2f5a23); }
.eagle-ph--g3 { background: linear-gradient(150deg, #7cc94e, #4a8c2f); }
.eagle-ph__label { position: relative; font-family: "Courier New", monospace; font-size: 12px; color: rgba(255,255,255,0.82); line-height: 1.6; }
/* .eagle-ph 内に実画像を入れると枠いっぱいを覆う（緑グラデはフォールバック） */
.eagle-ph img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

/* --------------------------------------------------------------------------
 * カード（白・角0・緑シャドウ）
 * -------------------------------------------------------------------------- */
.eagle-card { background: #ffffff; border: 1px solid #e7efe0; box-shadow: 0 12px 30px rgba(36,61,28,0.05); }
.eagle-card--soft { box-shadow: 0 10px 26px rgba(36,61,28,0.05); }
.eagle-card--lift { transition: transform .3s ease, box-shadow .3s ease; }
.eagle-card--lift:hover { transform: translateY(-5px); box-shadow: 0 18px 38px rgba(36,61,28,0.1); }

/* 葉型あしらい／バッジ */
.eagle-leaf { width: 18px; height: 18px; border-radius: 50% 50% 50% 0; background: #61BF32; transform: rotate(-45deg); flex-shrink: 0; }
.eagle-leaf--lg { width: 30px; height: 30px; }
.eagle-quarter { display: inline-flex; width: 48px; height: 48px; border-radius: 50% 50% 50% 0; background: #61BF32; transform: rotate(-45deg); }
.eagle-badge { display: inline-block; font-size: 11px; font-weight: 700; color: #46871f; background: #eef7e6; padding: 5px 13px; border-radius: 999px; letter-spacing: 0.02em; }

.eagle-icon-circle { display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%; background: #f1f8ea; flex-shrink: 0; }
.eagle-icon-circle--lg { width: 64px; height: 64px; }
.eagle-icon-circle i { color: #46871f; font-size: 22px; }
.eagle-icon-circle--lg i { font-size: 26px; }
.eagle-mt-card { margin-top: clamp(32px, 4vw, 48px); }

/* --------------------------------------------------------------------------
 * お知らせリスト
 * -------------------------------------------------------------------------- */
.eagle-news { border-top: 1px solid #e4ece0; }
.eagle-news__link { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 24px; padding: 26px 6px; border-bottom: 1px solid #e4ece0; text-decoration: none; transition: background .3s ease; }
.eagle-news__link:hover { background: #f7faf3; }
.eagle-news__date { font-family: "EB Garamond", serif; font-size: 16px; color: #6b7567; letter-spacing: 0.04em; min-width: 98px; }
.eagle-news__title { font-size: 15.5px; color: #2a332a; flex: 1; min-width: 240px; line-height: 1.6; transition: color .3s ease; }
.eagle-news__link:hover .eagle-news__title { color: #46871f; }
.eagle-news__arrow { color: #61BF32; font-size: 14px; }

/* --------------------------------------------------------------------------
 * CTAバンド（緑グラデ）
 * -------------------------------------------------------------------------- */
/* 背景画像は section 側で style="background-image:url(...)" 指定（グレーはフォールバック色） */
.eagle-cta { position: relative; overflow: hidden; background-color: #2b2e35; background-size: cover; background-position: center; background-repeat: no-repeat; }
/* 写真（宇宙画像）の上に重ねるグレーオーバーレイ（白文字の可読性確保） */
.eagle-cta::before { content: ""; position: absolute; inset: 0; background: linear-gradient(150deg, rgba(38,40,46,0.82), rgba(90,94,104,0.62)); }
.eagle-cta__inner { position: relative; z-index: 1; max-width: 900px; margin: 0 auto; padding: clamp(56px,7vw,96px) 24px; text-align: center; }
.eagle-cta__title { font-family: "Zen Old Mincho", serif; font-weight: 600; font-size: clamp(18px,2vw,22px); color: #ffffff; margin: 0 0 18px; line-height: 1.6; letter-spacing: 0.08em; }
.eagle-cta__lead { font-size: 15px; line-height: 2; color: #e8eaf0; margin: 0 0 36px; }
.eagle-cta__btns { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; }

/* CTAバンド（クリーム） */
.eagle-cta-soft { background: #fbf8e9; border-top: 1px solid #ece7d2; }

/* --------------------------------------------------------------------------
 * フッター（クリーム）
 * -------------------------------------------------------------------------- */
.eagle-footer { background: #fbf8e9; border-top: 1px solid #ece7d2; color: #4d574a; font-family: "Zen Kaku Gothic New", sans-serif; }
.eagle-footer__inner { max-width: 1280px; margin: 0 auto; padding: clamp(56px,7vw,88px) 24px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: clamp(40px,5vw,72px); align-items: start; }
.eagle-footer__col { display: flex; flex-direction: column; gap: 18px; }
.eagle-footer__tagline { font-family: "Zen Old Mincho", serif; font-size: 15px; line-height: 1.95; color: #243d1c; margin: 0; }
.eagle-footer__addr { font-size: 13.5px; line-height: 2; color: #6b7567; }
.eagle-footer__label { font-family: "Marcellus", serif; font-size: 13px; letter-spacing: 0.16em; color: #61BF32; margin: 0 0 6px; }
.eagle-footer__nav { display: flex; flex-direction: column; gap: 6px; }
.eagle-footer__nav a { font-size: 14.5px; color: #4d574a; padding: 3px 0; text-decoration: none; transition: color .3s ease; }
.eagle-footer__nav a:hover { color: #46871f; }
.eagle-footer__tel { display: flex; flex-direction: column; line-height: 1.2; text-decoration: none; }
.eagle-footer__tel-label { font-size: 11px; letter-spacing: 0.1em; color: #8a9b7e; }
.eagle-footer__tel-num { font-family: "Zen Old Mincho", serif; font-size: 26px; font-weight: 600; color: #243d1c; letter-spacing: 0.02em; }
.eagle-footer__map { width: 100%; aspect-ratio: 16 / 10; border-radius: 12px; overflow: hidden; border: 1px solid #dde6d4; background: #eef3ea; }
.eagle-footer__map iframe { display: block; width: 100%; height: 100%; border: 0; }
.eagle-footer__bottom { border-top: 1px solid #ece7d2; }
.eagle-footer__bottom-inner { max-width: 1280px; margin: 0 auto; padding: 20px 24px; display: flex; flex-wrap: wrap; gap: 8px 24px; align-items: center; justify-content: space-between; }
.eagle-footer__copy { font-size: 12px; color: #8a9b7e; }
.eagle-footer__brand { font-family: "Marcellus", serif; font-size: 12px; letter-spacing: 0.12em; color: #a8b59c; }

/* --------------------------------------------------------------------------
 * 利用の流れ（ステップ）
 * -------------------------------------------------------------------------- */
.eagle-step { display: flex; flex-direction: column; gap: 18px; }
.eagle-step__item { display: flex; gap: clamp(18px,3vw,32px); align-items: stretch; background: #ffffff; border: 1px solid #e7efe0; padding: clamp(24px,3vw,34px) clamp(22px,3vw,38px); box-shadow: 0 10px 26px rgba(36,61,28,0.04); }
.eagle-step__no { display: flex; flex-direction: column; align-items: center; flex-shrink: 0; }
.eagle-step__no-label { font-family: "Marcellus", serif; font-size: 13px; letter-spacing: 0.1em; color: #9db391; }
.eagle-step__no-num { font-family: "EB Garamond", serif; font-size: clamp(36px,5vw,54px); color: #61BF32; line-height: 1; }
.eagle-step__body { display: flex; flex-direction: column; justify-content: center; gap: 8px; flex: 1; }
.eagle-step__title { font-family: "Zen Old Mincho", serif; font-size: clamp(16px,1.9vw,19px); font-weight: 600; color: #243d1c; margin: 0; }
.eagle-step__desc { font-size: 14.5px; line-height: 1.9; color: #5b6557; margin: 0; }
.eagle-step__icon { flex-shrink: 0; width: 64px; height: 64px; border-radius: 50%; background: #f1f8ea; display: flex; align-items: center; justify-content: center; align-self: center; }
.eagle-step__icon i { color: #61BF32; font-size: 28px; }
@media (max-width: 639px) { .eagle-step__icon { display: none; } }
.eagle-anchor { scroll-margin-top: 90px; }

/* --------------------------------------------------------------------------
 * お問い合わせフォーム
 * -------------------------------------------------------------------------- */
.eagle-form { background: #ffffff; border: 1px solid #e7efe0; border-radius: 20px; padding: clamp(28px,4vw,48px); display: flex; flex-direction: column; gap: 24px; box-shadow: 0 14px 36px rgba(36,61,28,0.05); }
.eagle-form__row { display: flex; flex-direction: column; gap: 9px; }
.eagle-form__label { font-size: 14px; font-weight: 700; color: #243d1c; }
.eagle-form__req { color: #d24; font-size: 11px; font-weight: 700; margin-left: 4px; }
.eagle-form__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 20px; }
.eagle-input, .eagle-select, .eagle-textarea { width: 100%; border: 1px solid #d7e2cd; border-radius: 10px; padding: 14px 16px; font-size: 15px; background: #fbfdf9; transition: border-color .2s ease; font-family: inherit; color: #2a332a; }
.eagle-input:focus, .eagle-select:focus, .eagle-textarea:focus { border-color: #61BF32; outline: none; }
.eagle-textarea { resize: vertical; line-height: 1.7; }
.eagle-select { appearance: none; -webkit-appearance: none; -moz-appearance: none; padding-right: 44px; cursor: pointer; }
.eagle-select-wrap { position: relative; }
.eagle-select-wrap::after { content: ""; position: absolute; right: 18px; top: 50%; width: 9px; height: 9px; border-right: 2px solid #46871f; border-bottom: 2px solid #46871f; transform: translateY(-70%) rotate(45deg); pointer-events: none; }
.eagle-form__note { font-size: 12.5px; line-height: 1.7; color: #8a9b7e; margin: 0; }

/* --------------------------------------------------------------------------
 * 会社概要テーブル
 * -------------------------------------------------------------------------- */
.eagle-table { border-top: 1px solid #e4ece0; }
.eagle-table__row { display: grid; grid-template-columns: minmax(120px, 200px) 1fr; gap: 8px 24px; padding: 22px 8px; border-bottom: 1px solid #e4ece0; }
.eagle-table__key { font-family: "Zen Old Mincho", serif; font-size: 15px; font-weight: 600; color: #243d1c; }
.eagle-table__val { font-size: 15px; line-height: 1.85; color: #4d574a; white-space: pre-line; margin: 0; }
@media (max-width: 639px) { .eagle-table__row { grid-template-columns: 1fr; gap: 4px; } }

/* --------------------------------------------------------------------------
 * ビフォーアフター
 * -------------------------------------------------------------------------- */
.eagle-ba { display: grid; grid-template-columns: 1fr 1fr; position: relative; }
/* 縦写真が多いため高さを確保（4:3 → 4:5） */
.eagle-ba__cell { position: relative; display: block; aspect-ratio: 4 / 5; overflow: hidden; cursor: pointer; }
.eagle-ba__cell--before { background: #e9efe3; }
.eagle-ba__cell--after  { background: #dfe8d6; }
.eagle-ba__cell img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.eagle-ba__cell:hover img { transform: scale(1.05); }
.eagle-ba__label { position: absolute; bottom: 10px; font-family: "Courier New", monospace; font-size: 10px; padding: 3px 9px; border-radius: 6px; letter-spacing: 0.04em; z-index: 2; }
.eagle-ba__label--before { left: 10px; color: #243d1c; background: rgba(255,255,255,0.88); }
.eagle-ba__label--after  { right: 10px; color: #ffffff; background: rgba(70,135,31,0.92); }
.eagle-ba__arrow { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 38px; height: 38px; border-radius: 50%; background: #ffffff; display: flex; align-items: center; justify-content: center; font-size: 17px; color: #61BF32; box-shadow: 0 4px 14px rgba(0,0,0,0.18); pointer-events: none; z-index: 3; }

/* --------------------------------------------------------------------------
 * 補助金リンクカード
 * -------------------------------------------------------------------------- */
.eagle-sub-link { display: flex; align-items: center; justify-content: space-between; gap: 14px; border: 1px solid #d8e6cd; border-radius: 12px; padding: 18px 20px; text-decoration: none; transition: border-color .3s ease, background .3s ease; }
.eagle-sub-link:hover { border-color: #61BF32; background: #f7faf3; }
.eagle-sub-link__name { font-size: 15px; font-weight: 700; color: #243d1c; }
.eagle-sub-link__host { display: block; font-family: "Courier New", monospace; font-size: 11px; color: #8a9b7e; margin-top: 4px; }
.eagle-sub-link__arrow { font-size: 18px; color: #61BF32; flex-shrink: 0; }

/* --------------------------------------------------------------------------
 * 汎用テキスト（design準拠の本文）
 * -------------------------------------------------------------------------- */
.eagle-lede { font-size: 15px; line-height: 2.1; color: #4d574a; margin: 0 auto; }
.eagle-body { font-size: 15px; line-height: 2.05; color: #4d574a; }
.eagle-mincho { font-family: "Zen Old Mincho", serif; }
.eagle-garamond { font-family: "EB Garamond", serif; }
.eagle-num { font-family: "EB Garamond", serif; color: #61BF32; }

/* --------------------------------------------------------------------------
 * 余白ヘルパー（design準拠のカード内余白）
 * -------------------------------------------------------------------------- */
.eagle-p-18 { padding: 18px; }
.eagle-p-20 { padding: 20px 22px; }
.eagle-p-24 { padding: 24px 26px; }
.eagle-p-26 { padding: 26px 28px; }
.eagle-p-30 { padding: 30px 26px; }
.eagle-pad    { padding: clamp(28px, 4vw, 44px); }
.eagle-pad-lg { padding: clamp(32px, 5vw, 56px); }

/* サービスカード（画像上＋本文） */
.eagle-scard { display: flex; flex-direction: column; text-decoration: none; }
.eagle-scard__body { padding: 30px 28px 32px; display: flex; flex-direction: column; gap: 12px; flex: 1; }
.eagle-scard__no { font-family: "EB Garamond", serif; font-size: 16px; font-weight: 600; letter-spacing: 0.12em; color: #61BF32; }
.eagle-scard__title { font-family: "Zen Old Mincho", serif; font-size: 18px; font-weight: 600; color: #243d1c; margin: 0; line-height: 1.5; }
.eagle-scard__text { font-size: 14px; line-height: 1.95; color: #5b6557; margin: 0; flex: 1; }
.eagle-scard__more { font-size: 13px; font-weight: 700; color: #46871f; margin-top: 4px; }

/* お客様の声カード */
.eagle-voice { display: flex; flex-direction: column; gap: 16px; padding: 30px 28px; }
.eagle-voice__stars { color: #61BF32; font-size: 14px; letter-spacing: 2px; }
.eagle-voice__comment { font-family: "Zen Old Mincho", serif; font-size: 15px; line-height: 2; color: #3d473a; margin: 0; letter-spacing: 0.02em; flex: 1; }
.eagle-voice__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid #eef3ea; padding-top: 14px; }
.eagle-voice__name { font-size: 14px; font-weight: 700; color: #243d1c; }

/* 汎用テキストリンク（→付き） */
.eagle-link-arrow { font-size: 13px; font-weight: 700; color: #46871f; text-decoration: none; transition: opacity .3s ease; }
.eagle-link-arrow:hover { opacity: 0.7; }

/* 強みリスト（葉＋テキスト） */
.eagle-point { display: flex; gap: 16px; align-items: flex-start; }
.eagle-point__title { font-size: 16px; font-weight: 700; color: #243d1c; margin: 0 0 4px; }
.eagle-point__desc { font-size: 14px; line-height: 1.85; color: #5b6557; margin: 0; }

/* WHYセクション：右画像を画面右端までフルブリード
   左テキストは1280コンテナの左端に揃え、右画像は viewport 右端まで伸ばす */
.eagle-why { overflow: hidden; padding-top: clamp(64px, 8vw, 112px); padding-bottom: clamp(64px, 8vw, 112px); }
.eagle-why__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); gap: clamp(40px, 5vw, 64px); align-items: center; }
.eagle-why__text { padding-left: max(24px, calc((100vw - 1280px) / 2 + 24px)); padding-right: 24px; }
.eagle-why__img { width: 100%; height: clamp(380px, 46vw, 600px); border-radius: 20px 0 0 20px; }
@media (max-width: 900px) {
  /* 1カラムに折り返した際は左右とも24px余白＋角丸を戻す */
  .eagle-why__text { padding-left: 24px; }
  .eagle-why__img { border-radius: 20px; margin: 0 24px; width: auto; }
}
/* WHYセクションの背の高い画像（旧・後方互換） */
.eagle-tallimg { width: 100%; height: clamp(380px, 46vw, 600px); border-radius: 20px 0 0 20px; }

/* 補助金 対象バッジ（右） */
.eagle-chip { display: flex; align-items: center; justify-content: space-between; gap: 16px; background: #ffffff; border: 1px solid #e7efe0; padding: 18px 22px; }
.eagle-chip__name { font-size: 15px; font-weight: 500; color: #243d1c; }
.eagle-chip__tag { font-size: 12px; font-weight: 700; color: #46871f; background: #edf5d2; padding: 5px 13px; letter-spacing: 0.04em; }

/* 最大幅ヘルパー（design準拠） */
.eagle-mw-480 { max-width: 480px; }
.eagle-mw-500 { max-width: 500px; }
.eagle-mw-520 { max-width: 520px; }
.eagle-mw-540 { max-width: 540px; }
.eagle-mw-600 { max-width: 600px; }

/* 事業内容：リード文とカード群の間隔（タブレットで半減されない固定余白） */
.eagle-lead-gap { margin-bottom: clamp(80px, 9vw, 128px); }

/* セクション内サブ見出し（お客様の声／施工実績 等） */
.eagle-subhead { font-family: "Zen Old Mincho", serif; font-size: clamp(16px, 1.9vw, 20px); font-weight: 600; color: #243d1c; letter-spacing: 0.04em; margin: 0 0 24px; }

/* News 見出し英字（横並び用・下余白なし） */
.eagle-news-en { font-family: "Marcellus", serif; font-size: clamp(24px, 3vw, 38px); color: #61BF32; letter-spacing: 0.1em; line-height: 1; }

/* 補助テキスト色 */
.eagle-txt-sub { color: #6b7567; }
.eagle-txt-sub2 { color: #5b6557; line-height: 1.9; }
.eagle-work-text { font-size: 14px; line-height: 1.85; color: #5b6557; margin: 14px 0 0; }

/* ==========================================================================
 * 下層ページ専用
 * ========================================================================== */

/* --- 会社概要：ごあいさつ --- */
.eagle-inline-link { color: #46871f; font-weight: 700; border-bottom: 1px solid #9fe077; text-decoration: none; }
.eagle-sign { font-family: "Zen Old Mincho", serif; font-size: 20px; color: #243d1c; text-align: right; margin: 32px 0 0; }
.eagle-subtitle { font-family: "Zen Old Mincho", serif; font-weight: 600; font-size: clamp(20px, 2.6vw, 28px); color: #243d1c; line-height: 1.6; letter-spacing: 0.03em; margin: 0 0 28px; }
.eagle-prose { display: flex; flex-direction: column; gap: 18px; font-size: 15px; line-height: 2.15; color: #4d574a; }
.eagle-prose p { margin: 0; }

/* --- 会社概要：企業理念 --- */
.eagle-philo { background: #ffffff; border: 1px solid #e7efe0; padding: clamp(32px, 5vw, 56px); text-align: center; box-shadow: 0 14px 36px rgba(36,61,28,0.05); }
.eagle-philo__text { font-family: "Zen Old Mincho", serif; font-size: clamp(15px, 1.8vw, 20px); line-height: 2; color: #243d1c; letter-spacing: 0.03em; margin: 0; }
.eagle-principle { background: #ffffff; border: 1px solid #e7efe0; padding: 30px 26px; text-align: center; }
.eagle-principle__no { font-family: "EB Garamond", serif; font-size: 30px; font-weight: 600; color: #61BF32; margin: 0 0 14px; }
.eagle-principle__text { font-size: 15.5px; line-height: 1.8; color: #3d473a; font-weight: 500; margin: 0; white-space: pre-line; }

/* --- 事業案内：サービス行 --- */
.eagle-snum { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; }
.eagle-snum__n { font-family: "Marcellus", serif; font-size: 34px; color: #61BF32; }
.eagle-snum__line { height: 1px; flex: 1; background: #dbe6d3; }
.eagle-shead { font-family: "Zen Old Mincho", serif; font-weight: 600; font-size: clamp(19px, 2.2vw, 25px); color: #243d1c; letter-spacing: 0.03em; margin: 0 0 18px; }
.eagle-blist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.eagle-blist li { display: flex; gap: 12px; align-items: flex-start; font-size: 14.5px; line-height: 1.8; color: #3d473a; }
.eagle-callout { display: inline-block; background: #eef7e6; border-radius: 12px; padding: 16px 22px; font-size: 13.5px; line-height: 1.7; color: #46871f; font-weight: 700; margin: 0; }
.eagle-subcard { background: #ffffff; border: 1px solid #e7efe0; border-radius: 18px; padding: clamp(28px, 4vw, 40px); }
.eagle-subcard__title { font-family: "Zen Old Mincho", serif; font-size: 18px; color: #243d1c; margin: 0 0 8px; }
.eagle-subcard__note { font-size: 13.5px; color: #6b7567; margin: 0 0 22px; line-height: 1.7; }
.eagle-subgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 14px; }

/* --- 事業案内：安心カード --- */
.eagle-asr { background: #ffffff; border: 1px solid #e7efe0; padding: 30px 26px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 14px; }
.eagle-asr__title { font-family: "Zen Old Mincho", serif; font-size: 17px; font-weight: 600; color: #243d1c; margin: 0; }
.eagle-asr__desc { font-size: 13.5px; line-height: 1.85; color: #5b6557; margin: 0; }

/* --- はじめての方へ：お悩み --- */
.eagle-worry { display: flex; gap: 18px; align-items: flex-start; padding: 20px 0; border-top: 1px solid #e4ece0; }
.eagle-worry__n { font-family: "EB Garamond", serif; font-size: 24px; font-weight: 600; color: #61BF32; line-height: 1.2; flex-shrink: 0; }
.eagle-worry__t { font-size: 16px; line-height: 1.8; color: #3d473a; font-weight: 500; margin: 0; }
.eagle-block-title { font-family: "Zen Old Mincho", serif; font-weight: 600; font-size: clamp(18px, 2.2vw, 24px); color: #243d1c; letter-spacing: 0.04em; line-height: 1.6; margin: 0 0 12px; }
.eagle-bignum { font-family: "EB Garamond", serif; font-size: clamp(40px, 6vw, 84px); font-weight: 400; color: #61BF32; line-height: 1; letter-spacing: 0.02em; margin: 0 0 6px; }
.eagle-bignum__u { font-size: 0.42em; }

/* --- 施工実績：フィルタ --- */
.eagle-filter { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.eagle-filter__btn { font-size: 13.5px; font-weight: 700; padding: 9px 20px; border-radius: 999px; border: 1px solid #d3e0c8; background: #ffffff; color: #4d574a; cursor: pointer; transition: background .3s ease, color .3s ease, border-color .3s ease; }
.eagle-filter__btn.is-active,
.eagle-filter__btn:hover { background: #61BF32; border-color: #61BF32; color: #ffffff; }
/* 準備中カテゴリ */
.eagle-filter__soon { display: inline-block; margin-left: 6px; font-size: 10px; font-weight: 700; color: #a3b398; vertical-align: middle; }
.eagle-filter__btn.is-active .eagle-filter__soon,
.eagle-filter__btn:hover .eagle-filter__soon { color: rgba(255,255,255,0.85); }
.eagle-works-empty { max-width: 1040px; margin: 0 auto; text-align: center; padding: 64px 24px; background: #ffffff; border: 1px dashed #c9d9bd; border-radius: 18px; display: flex; flex-direction: column; align-items: center; gap: 18px; }
.eagle-works-empty p { font-size: 15px; color: #5b6557; line-height: 1.8; margin: 0; }
.eagle-works-empty b { color: #46871f; }

/* 施工実績：voiceカード拡張 */
.eagle-voice__head { font-family: "Zen Old Mincho", serif; font-size: clamp(18px, 2.2vw, 22px); font-weight: 600; color: #243d1c; line-height: 1.65; letter-spacing: 0.02em; border-left: 4px solid #61BF32; padding-left: 16px; margin: 0; }
.eagle-work-title { font-family: "Zen Old Mincho", serif; font-size: 18px; font-weight: 600; color: #243d1c; margin: 8px 0 0; }
.eagle-name { font-family: "Zen Old Mincho", serif; font-size: 18px; font-weight: 600; color: #243d1c; }
.eagle-cat { display: block; font-size: 12.5px; color: #8a9b7e; margin-top: 4px; }
.eagle-note { text-align: center; font-size: 12.5px; color: #8a9b7e; margin: 32px 0 0; }
.eagle-vstack { display: flex; flex-direction: column; gap: 24px; }
.eagle-hidden { display: none; }
.eagle-wgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 440px), 1fr)); gap: 48px 40px; max-width: 1040px; margin: 0 auto; }

/* --- お知らせ詳細：記事 --- */
.eagle-article__date { font-family: "EB Garamond", serif; font-size: 16px; color: #6b7567; letter-spacing: 0.04em; }
.eagle-article__title { font-family: "Zen Old Mincho", serif; font-weight: 600; font-size: clamp(24px, 3.4vw, 36px); color: #243d1c; line-height: 1.55; letter-spacing: 0.03em; border-bottom: 1px solid #e4ece0; padding-bottom: 30px; margin: 0 0 36px; }
.eagle-article__hero { width: 100%; aspect-ratio: 16 / 9; border-radius: 16px; margin-bottom: 40px; }
.eagle-article__body { font-size: 15.5px; line-height: 2.15; color: #3d473a; display: flex; flex-direction: column; gap: 22px; }
.eagle-article__body p { margin: 0; }
.eagle-hlbox { background: #f4f8ef; border-radius: 14px; padding: 26px 28px; border: 1px solid #e7efe0; }
.eagle-hlbox__label { font-family: "Zen Old Mincho", serif; font-size: 17px; color: #243d1c; margin: 0 0 10px; }
.eagle-hlbox__text { font-size: 15px; color: #3d473a; margin: 0; line-height: 1.9; }

/* --- ページネーション --- */
.eagle-pager { display: flex; justify-content: center; gap: 8px; margin-top: 48px; }
.eagle-pager a, .eagle-pager span { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; font-family: "EB Garamond", serif; font-size: 16px; font-weight: 600; text-decoration: none; border: 1px solid #d3e0c8; color: #4d574a; transition: background .3s ease, color .3s ease, border-color .3s ease; }
.eagle-pager a:hover { background: #eef7e6; border-color: #61BF32; }
.eagle-pager .is-current { background: #61BF32; border-color: #61BF32; color: #ffffff; }

/* ==========================================================================
 * SP調整オーバーライド（共通main.cssの上書き）
 * ========================================================================== */

/* ① ハンバーガーの角丸をなしに */
.nav-toggle { border-radius: 0; }

/* ② SPナビ：背景をオレンジ→白ベースのツヤっぽいクリーンなグラデーションに。
      白背景で文字が見えなくなるため、リンク・区切り線・ラベル・ボタンの色も調整 */
.sp-nav {
  background:
    radial-gradient(140% 55% at 50% 0%, rgba(255,255,255,0.95) 0%, rgba(255,255,255,0) 55%),
    linear-gradient(160deg, #ffffff 0%, #f6faf2 50%, #e9f1e2 100%);
}
.sp-nav__link { color: #243d1c; }
.sp-nav__link:hover { background: rgba(97,191,50,0.08); }
/* 表記位置を入れ替え：日本語を左・英語を右に（英語のmargin-right:autoを解除し、日本語に付与） */
.sp-nav__ja { margin-right: auto; }
.sp-nav__en { color: #61BF32; opacity: 0.9; margin-right: 14px; padding-left: 0; }
.sp-nav__item { border-bottom-color: rgba(36,61,28,0.12); }
.sp-nav__item:first-child { border-top-color: rgba(36,61,28,0.12); }
/* 下部の電話ボタン（白ボタンだと白背景に埋もれるため緑ソリッドに） */
.sp-nav__bottom .eagle-btn--white { background: #61BF32; color: #ffffff; box-shadow: 0 10px 26px rgba(97,191,50,0.28); }

/* ③ 事業内容：リード文とカードの間の余白。PCは従来どおり40px */
.eagle-serv-lead { margin-bottom: 40px; }

/* ↓↓↓ ここから下はSP（≤639px）限定の調整 ↓↓↓ */
@media (max-width: 639px) {
  /* ③ SPではリード文とカードの間をさらに広げる */
  .eagle-serv-lead { margin-bottom: 56px; }

  /* ⑤ 小見出しをセンター＋両端の横線で見出しらしく（お客様の声／施工実績） */
  .eagle-subhead--divider { display: flex; align-items: center; justify-content: center; gap: 20px; text-align: center; }
  .eagle-subhead--divider::before,
  .eagle-subhead--divider::after { content: ""; flex: 1 1 auto; max-width: 120px; height: 1px; background: #cdddc0; }

  /* ⑥ フッターのサイトマップを非表示 */
  .eagle-footer__col--sitemap { display: none; }
}

/* 【共通CSSの取りこぼし修正】.column2--5-5 だけ 896px以下のSP用 width:100% 上書きが無く
   （--6-4 / --7-3 には有る）、モバイルでも48%幅のまま縦積みされて狭くなる。他の比率と揃える。
   ※全ページの column2--5-5 に影響（＝本来のモバイル挙動に統一） */
@media (max-width: 896px) {
  .column2--5-5 > .column2__child { width: 100%; }
}
