/* ==========================================================
   LP 共通フッター（星川展示場・オーナー募集・仮設住宅）
   - lp-base.css を読まない LP（仮設住宅）でも単独で使えるよう、色は .gf の中で完結させる
   - 色は LP Design System の基本変数と同じ値（Text #333 / Sub #787878 / 強い罫線 #C8C8C8 / 面 #F5F5F5）
   - SP の下余白（追従CTAの分）は各 LP の style.css で .gf { padding-bottom } を上書きする
========================================================== */
.gf {
  --gf-bg: #F5F5F5;
  --gf-text: #333333;
  --gf-sub: #787878;
  --gf-line: #C8C8C8;
  --gf-ink: #000000;
  --gf-white: #FFFFFF;
  --gf-ease: cubic-bezier(.2,.7,.2,1);
  display: block;
  background: var(--gf-bg);
  color: var(--gf-text);
  border-top: 1px solid var(--gf-line);
  padding: 40px var(--gutter, var(--gut, 20px)) 32px;
  font-size: 12px;
  letter-spacing: .04em;
  line-height: 1.7;
}
.gf ul, .gf p { margin: 0; padding: 0; list-style: none; }
.gf a { color: inherit; }
.gf__in { max-width: 600px; margin: 0 auto; }

.gf__top { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-bottom: 24px; border-bottom: 1px solid var(--gf-line); }
.gf__logo { display: block; line-height: 0; margin: 0; }
.gf__logo img { display: block; height: 26px; width: auto; filter: none; opacity: 1; }
.gf__sns { display: flex; gap: 10px; }
.gf__sns a { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--gf-line); background: var(--gf-white); color: var(--gf-ink); transition: background-color .2s var(--gf-ease), color .2s var(--gf-ease), border-color .2s var(--gf-ease); }
.gf__sns .ic { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
@media (hover: hover) { .gf__sns a:hover { opacity: 1; background: var(--gf-ink); border-color: var(--gf-ink); color: var(--gf-white); } }

/* 展示場の所在地（星川のみ） */
.gf .gf__place { padding-top: 16px; font-size: 12px; line-height: 1.8; }
.gf__place a { text-decoration: underline; text-underline-offset: 3px; }

/* LP 相互リンク：今いるページを太字＋下線、ほかは通常の太さ */
.gf__lps { display: flex; flex-wrap: wrap; align-items: center; gap: 0 22px; padding-top: 16px; }
.gf__label { width: 100%; font-size: 11px; letter-spacing: .08em; color: var(--gf-sub); margin-bottom: 2px; }
.gf__lps a { min-height: 36px; display: inline-flex; align-items: center; text-decoration: none; font-weight: 400; color: var(--gf-text); }
.gf__lps a[aria-current] { font-weight: 700; color: var(--gf-ink); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; }
@media (hover: hover) { .gf__lps a:hover { text-decoration: underline; text-underline-offset: 6px; } }

/* サイト内リンク */
.gf__lps + .gf__nav { padding-top: 8px; }
.gf__nav { display: flex; flex-wrap: wrap; gap: 0 22px; padding-top: 16px; }
.gf__nav a { min-height: 36px; display: inline-flex; align-items: center; text-decoration: none; }
@media (hover: hover) { .gf__nav a:hover { text-decoration: underline; text-underline-offset: 3px; } }

/* 規約・コピーライト */
.gf__bottom { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding-top: 20px; }
.gf__bottom a { text-decoration: underline; text-underline-offset: 3px; min-height: 32px; display: inline-flex; align-items: center; }
.gf__legal { display: flex; flex-wrap: wrap; gap: 0 20px; }
.gf__copy { font-family: var(--en, 'Inter', system-ui, sans-serif); font-size: 12px; letter-spacing: .06em; }

@media (min-width: 960px) {
  .gf { padding: 48px var(--gutter, var(--gut, 32px)) 28px; font-size: 13px; }
  .gf__in { max-width: 1200px; }
  .gf__logo img { height: 34px; }
  .gf__sns a { width: 40px; height: 40px; }
  .gf__top { padding-bottom: 0; border-bottom: 0; }
  .gf__place > span:first-child { display: block; } /* PC：展示場名のあとで改行 */
  .gf__lps { gap: 0 32px; padding-top: 20px; }
  .gf__nav { gap: 0 32px; padding-top: 20px; }
  .gf__bottom { flex-direction: row; align-items: center; justify-content: space-between; padding-top: 20px; margin-top: 24px; border-top: 1px solid var(--gf-line); }
}
