/* ============================================================
 * Footer — sundayfolk-child
 *
 * HTML/css/top-orange-navy.css から切り出し（Step 10-3f）。
 *   - ベース: L1697-1735 / L3309-3338
 *   - タブレット (≤959px): L2256-2262
 *   - SP (≤599px): L2791-2809
 *
 * top-orange-navy.css 側は当面残置（Step 10-9 で一括分割するまで動作担保）。
 * 全ページ enqueue 化のため sf-swell-header と同ブロックに追加。
 *
 * スコープ方針:
 *   - .container / .c-arrow は .site-footer 配下のみに適用しグローバル汚染を避ける
 *   - CSS変数 (--c-navy-dk 等) は top-orange-navy.css に依存するため
 *     非トップページでも壊れないようフォールバック値を併記
 * ============================================================ */

/* container / c-arrow をフッタースコープで再定義（他ページ汚染防止） */
.site-footer .container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 48px;
}
.site-footer .c-arrow {
  position: relative;
  display: inline-block;
  width: 20px;
  height: 1px;
  vertical-align: middle;
  flex-shrink: 0;
}
.site-footer .c-arrow::after {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 1px;
  background-color: currentColor;
}
.site-footer .c-arrow::before {
  content: '';
  position: absolute;
  right: 0; top: 0;
  width: 9px; height: 1px;
  background-color: currentColor;
  transform-origin: right top;
  transform: rotate(30deg);
}

/* SWELL .l-content の bottom-margin (6em ≒ 96px) を打ち消す
 * 独自テンプレは Contact CTA / 独自セクション側でフッター前の間隔を確保するため不要。
 * 404 やアーカイブなど SWELL 標準表示では既定余白を残す。
 *
 * .sf-custom-template は inc/sf-custom-template.php で一括付与（A-1 / 2026-05-28）。
 * 既存の個別クラス列挙は当面残置（案①: 追記のみ・後方互換重視）。
 * 将来のすっきり化（案②）は Step 10-9 で実施予定 — 詳細は
 * inc/sf-custom-template.php 冒頭の「AI 向けメモ」参照。 */
.home .l-content,
.company-philosophy-page .l-content,
.company-page .l-content,
.company-overview-page .l-content,
.company-history-page .l-content,
.company-message-page .l-content,
.service-page .l-content,
.sf-custom-template .l-content { margin-bottom: 0; }

.site-footer {
  background: var(--c-navy-dk, #131f34); color: rgba(255,255,255,.88);
  font-family: 'Montserrat', 'Noto Sans JP', 'Hiragino Sans', sans-serif;
  font-weight: 600;
  padding: 80px 0 40px;
}
.footer__inner {
  display: grid; grid-template-columns: minmax(320px, 1.4fr) 2.3fr;
  gap: 64px; margin-bottom: 60px;
}
/* 右側ナビ：上段3カラム + 下段（事業内容 独立見出し＋3カラム） */
.footer__nav-groups {
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.footer__row--top {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
}
/* 事業内容：見出しを左上に独立させ、3カラムは上ツラを揃える（字下げは「-」で代替） */
.footer__service-cols {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
}
.footer__logo {
  display: inline-flex;
  align-items: center;
}
.footer__logo img {
  height: 68px;
  width: auto;
}
.footer__address { font-size: 12px; line-height: 2.1; margin-top: 20px; opacity: 1; color: rgba(255,255,255,.9); }
/* 電話リンクは住所テキストと同色。発信導線としてホバーでオレンジ */
.footer__address a { color: inherit; transition: color .2s; }
.footer__address a:hover { color: var(--c-orange, #e05531); }
.footer__address-sp-break,
.footer__address-sp-indent { display: none; }
.footer__sns { display: flex; gap: 10px; margin-top: 24px; }
.footer__sns a {
  width: 34px; height: 34px; border-radius: 50%;
  border: 1px solid rgba(255,255,255,.28);
  display: flex; align-items: center; justify-content: center;
  font-size: 14px; color: rgba(255,255,255,.82); transition: all .2s;
}
.footer__sns a:hover { border-color: var(--c-orange, #e05531); color: var(--c-orange, #e05531); }
.footer__col-title {
  font-family: 'Noto Sans JP', 'Hiragino Sans', sans-serif; font-size: 12px; font-weight: 700;
  letter-spacing: .06em; color: #fff;
  margin-bottom: 18px;
}
.footer__col-title a { color: inherit; transition: color .2s; }
.footer__col-title a:hover { color: var(--c-orange, #e05531); }
/* 事業内容・会社案内の見出し（2px大きいリンクと同サイズ＝13px） */
.footer__col-title--lg {
  font-size: 13px;
  margin-bottom: 16px;
}
/* 事業内容見出しの出し分け：既定（PC）は全幅版を表示、SP版は隠す */
.footer__service-head--sp { display: none; }
.footer__nav li { margin-bottom: 12px; }
.footer__nav a { font-size: 11px; color: rgba(255,255,255,.85); transition: color .2s; }
.footer__nav a:hover { color: #fff; }
/* 上段左・中のリンクは他メニューより2px大きく（13px） */
.footer__nav--lg a { font-size: 13px; }
/* 上段左・中の8リンクは会社案内・事業内容と同じオレンジ色ホバー */
.footer__nav--lg a:hover { color: var(--c-orange, #e05531); }
/* 子メニュー（会社案内・事業内容の各リンク）：左に「-」のぶら下げ */
.footer__nav--child li {
  position: relative;
  padding-left: 1.1em;
  transition: transform .2s ease;
}
.footer__nav--child li::before {
  content: '-';
  position: absolute;
  left: 0;
  color: rgba(255,255,255,.55);
}
/* ホバーで少し右へスライド（「-」付き子メニューのみ） */
.footer__nav--child li:hover {
  transform: translateX(4px);
}

.site-footer .footer__bottom {
  border-top: 1px solid rgba(255,255,255,.14);
  padding-top: 32px;
  font-size: 11px;
  letter-spacing: .05em;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.footer__compliance {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 600;
  color: #fff;
  border: 1px solid rgba(255,255,255,.4);
  padding: 6px 14px;
  transition: color .2s ease, border-color .2s ease;
}
.footer__compliance:hover {
  color: #fff;
  border-color: rgba(255,255,255,.8);
}
.footer__compliance i { font-size: 11px; opacity: 1; }
.footer__copyright {
  font-size: 12px;
  color: rgba(255,255,255,.85);
}

/* スマホ改行 (見出し用) — top-orange-navy.css と同方針 */
.site-footer .br-sp-only { display: none; }

/* タブレット (≤959px) */
@media screen and (max-width: 959px) {
  .site-footer .container { padding: 0 32px; }
  .footer__inner {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  /* ブランドが上に積まれ幅が広がるため、ナビは3カラム×2段を維持 */
  .footer__nav-groups {
    gap: 40px 32px;
  }
}

/* SP (≤599px) */
@media screen and (max-width: 599px) {
  .site-footer .container { padding: 0 20px; }
  .site-footer .br-sp-only { display: block; }
  .footer__address-pc-space { display: none; }
  .footer__address-sp-break,
  .footer__address-sp-indent { display: inline; }
  .footer__inner {
    grid-template-columns: 1fr;
    gap: 36px;
  }
  /* 全6グループを2カラム3段に。各コンテナを平坦化して nav-groups 直下の
   * グリッドアイテムにし、ホーム系/コンテンツ → 会社案内/事業内容 → 施設+教育/人材 と並べる */
  .footer__nav-groups {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px 20px;
  }
  .footer__row--top,
  .footer__row--service,
  .footer__service-cols { display: contents; }
  /* 見出しの出し分け：SPは EVENT 列頭の見出しを使い、PC全幅見出しは隠す */
  .footer__service-head--pc { display: none; }
  .footer__service-head--sp { display: block; }

  .site-footer .footer__bottom {
    flex-direction: column;
    align-items: center;
    gap: 12px;
  }
  .site-footer .footer__compliance {
    font-weight: 400;
    align-items: center;
    line-height: 1.5;
    padding: 8px 28px;
  }
}

/* ============================================================
 * （旧）SWELL #body_wrap 謎余白の !important 打ち消し → 2026-06-19 撤去
 *
 * 真因は SWELL ではなく自テーマのセレクタ衝突だった。トップBLOGセクション
 * <section class="blog"> を狙った素の `.blog`(sf-top.css) が、SWELL が
 * #body_wrap に付与する body_class "blog"(ホーム=blog index) にも一致し、
 * #body_wrap に padding(--sec-pad=100px)/背景が漏れていた。上側は spfix の
 * #body_wrap{padding-top:0!important} で相殺され、下側100pxだけがフッター下に残存。
 * → sf-top.css 側を `section.blog` に限定して発生源で解消。element-base対応のため
 *   ここの `#body_wrap{padding-bottom:0!important;margin-bottom:0!important}` は撤去。
 * ============================================================ */

/* ============================================================
 * パンくず フォント統一（全ページ enqueue＝sf-footer.css に置く）
 *
 * パンくず（SWELL parts/breadcrumb）は #body_wrap 直下に出るため、
 * ページ別バンドルが #body_wrap（body_class）に指定する font-family を継承する。
 * 会社案内 sf-company.css / SERVICE sf-service.css はページルートに
 * 'Montserrat'+'Noto Sans JP' を指定 → パンくずもそれを継承するが、
 * アーカイブ sf-archive.css には同等指定が無く SWELL 既定フォントのまま＝不揃い。
 * パンくず自身へ直接指定して継承差を打ち消し、全ページでサイト標準ボディフォントに統一する。
 * （直接指定は継承値に常に勝つため、読み込み順・詳細度に依存しない）
 *
 * font-weight も統一する。会社案内 sf-company.css / SERVICE sf-service.css は
 * ページルートに font-weight:600 を指定しており、パンくずがそれを継承して
 * 太字化していた（アーカイブは SWELL 既定の通常ウェイト）。パンくずは通常
 * ウェイトが自然なため 400 に統一する。
 * ============================================================ */
.p-breadcrumb,
.p-breadcrumb__list {
  font-family: 'Montserrat', 'Noto Sans JP', 'Hiragino Sans', sans-serif;
  font-weight: 400;
}
