/* FightforLife / typography and finish / 2026-10-03 */

.ffl-skip-link {
  position: fixed; z-index: 100000; left: 16px; top: 16px;
  padding: 12px 20px; background: #fff; color: #111;
  border: 2px solid #246ac8; border-radius: 4px;
  transform: translateY(-200%); font-weight: 700;
}
.ffl-skip-link:focus { transform: none; }
#main:focus { outline: none; }

:root {
  --ffl-font-jp: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  --ffl-font-en: "Manrope", var(--ffl-font-jp);
}
body { font-family: var(--ffl-font-jp); }
.ffl-kicker, .ffl-eyebrow, .ffl-home-eyebrow,
.ffl-case-label, .ffl-home-card-label, .ffl-feature-no,
.ffl-home-step-number, .ffl-service-row > span, .ffl-flow article > span {
  font-family: var(--ffl-font-en);
  font-weight: 800;
}
.ffl-eyebrow, .ffl-home-refine .ffl-home-eyebrow {
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: .14em;
}
.ffl-kicker { font-size: 12px; letter-spacing: .12em; }
.ffl-countup {
  font-family: var(--ffl-font-en);
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  letter-spacing: -.045em;
}
.ffl-stat-value small { letter-spacing: 0; }
.ffl-title, .ffl-home-refine h2 { letter-spacing: -.03em; }
.ffl-home-refine h3 { letter-spacing: -.02em; }
.ffl-home-card-label { font-size: 10px; letter-spacing: .1em; }
.ffl-home-step-number { font-variant-numeric: tabular-nums; letter-spacing: .01em; }
.ffl-btn, .ffl-text-link, .ffl-home-link { font-weight: 700; }
.ffl-btn:focus-visible, .ffl-text-link:focus-visible,
.ffl-nav a:focus-visible, .ffl-footer a:focus-visible,
.ffl-faq summary:focus-visible {
  outline: 2px solid #246ac8;
  outline-offset: 5px;
}
.ffl-home-service-card { border-color: #e5e5e5; }
.ffl-home-service-card h3 { line-height: 1.5; }
.ffl-home-service-card > p { color: #50545a; }
.ffl-home-service-topics { border-color: #e5e5e5; }
.ffl-home-link, .ffl-text-link { text-underline-offset: 5px; }
.ffl-faq summary { line-height: 1.7; }
.ffl-footer-nav a { line-height: 1.7; }
@media (min-width: 981px) {
  .ffl-hero h1 { letter-spacing: -.035em; }
}
@media (max-width: 760px) {
  .ffl-eyebrow, .ffl-home-refine .ffl-home-eyebrow { font-size: 11px; }
  .ffl-kicker { font-size: 11px; }
  .ffl-home-card-label { font-size: 10px; }
  .ffl-home-step-number { font-size: 13px; }
}

/* Consultation copy and supporting text — 2026-10-07 */
:root { --ffl-gray-500: #60666f; }
.ffl-section .ffl-cta p.ffl-cta-copy {
  margin-top:22px;
  font-size:17px;
  font-weight:500;
  line-height:1.9;
  color:#fff;
}
.ffl-cta-copy .ffl-cta-sentence { display:block; }
.ffl-cta-copy .ffl-cta-sentence + .ffl-cta-sentence { margin-top:6px; }
.ffl-cta-copy .ffl-cta-phrase { display:inline-block; max-width:100%; }
.ffl-section--soft .ffl-eyebrow,
.ffl-section--soft .ffl-service-row > span,
.home #problem .ffl-eyebrow,
.home .ffl-home-refine .ffl-home-eyebrow,
.ffl-field .ffl-required { color:#d60011; }
.home .ffl-profile-role { color:#d60011 !important; }
@media (max-width:760px) {
  .ffl-section .ffl-cta p.ffl-cta-copy { margin-top:20px; font-size:16px; line-height:1.9; }
  .ffl-cta-copy .ffl-cta-sentence + .ffl-cta-sentence { margin-top:10px; }
}
@media (max-width:360px) {
  .ffl-section .ffl-cta h2,
  .home .ffl-section .ffl-cta h2 { font-size:20px; }
}

/* Keep the mobile portrait entrance inside the viewport. */
@media (max-width:640px) {
  .ffl-js .ffl-profile-page-photo.ffl-reveal--image:not(.is-visible) { transform:translate3d(0,18px,0); }
}

