.ft27 {
    --line: rgba(255,255,255,0.11);
    --gold: #C9A85C; --gold-bright: #E8CE8C;
    --sub: #8FA0B5; --text: #F2F5F9;
    margin-top: auto;
    background: linear-gradient(180deg, #152E4A, #1B2E4B);
    border-top: 0.0625rem solid var(--line);
    color: var(--text);
    font-family: "Zen Kaku Gothic New", "Noto Sans JP", sans-serif;
    /* ヘッダー同様に全幅 (ページシェル max 77rem から脱出)。 内側は 120rem 上限 */
    width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
    box-sizing: border-box;
  }
  /* ダーク背景ページ (TOP / レース情報 / 推奨馬分析) ではソースどおり背景透過 = body のグラデが透ける */
  body.tp27-body .ft27, body.rw27-body .ft27, body.an27-body .ft27, body.pd27-body .ft27, body.cx27-body .ft27, body.rk27-body .ft27,
  body.cv27-body .ft27, body.gx27-body .ft27, body.lg27-body .ft27,
  body.fl27-body .ft27, body.nf27-body .ft27, body.lgn27-body .ft27, body.mp27-body .ft27 { background: transparent; }
  .ft27 a { color: inherit; text-decoration: none; }
  .ft27-inner { max-width: 120rem; margin: 0 auto; box-sizing: border-box; padding: 3.625rem 2rem 2.375rem; }
  .ft27-inner--btm { padding: 0 2rem 1.625rem; }
  /* 区切り線はインナーの外 = ヘッダー/フッター上端と同じ全幅 */
  .ft27-divider { height: 0.0625rem; background: var(--line); }
  .ft27-top {
    display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 2rem;
  }
  @media (max-width: 860px) { .ft27-top { grid-template-columns: 1fr 1fr; } }
  @media (max-width: 560px) {
    .ft27-inner { padding: 2.5rem 1rem 1.75rem; }
    .ft27-inner--btm { padding: 0 1rem 1.375rem; }
  }
  .ft27-label {
    font-family: Georgia, serif; font-style: italic;
    font-size: 0.7rem; letter-spacing: 0.26em; color: var(--sub);
    margin-bottom: 1.25rem; display: flex; align-items: center; gap: 0.625rem;
  }
  .ft27-label::before { content: ""; width: 1.5rem; height: 0.0625rem; background: var(--gold); }
  .ft27-tagline {
    font-family: "Shippori Mincho", "Noto Serif JP", "Hiragino Mincho ProN", serif;
    font-size: 1.7rem; font-weight: 700; line-height: 1.5; letter-spacing: 0.04em;
  }
  .ft27-tagline .g { color: var(--gold-bright); }
  .ft27-desc { font-size: 0.82rem; color: var(--sub); margin-top: 0.875rem; line-height: 1.8; max-width: 21.25rem; }
  .ft27-col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.8125rem; }
  .ft27-col a { font-size: 0.85rem; font-weight: 500; color: rgba(242,245,249,0.82); transition: color .15s; }
  .ft27-col a:hover { color: var(--gold-bright); }
  .ft27-bottom {
    display: flex; align-items: center; justify-content: space-between; gap: 0.875rem;
    padding-top: 1.375rem; font-size: 0.74rem; color: rgba(143,160,181,0.7); flex-wrap: wrap;
  }
