/* APPROVED Design System v1.0. Generated from the live token ledger; CTA remains pending. */
:root {
  --bf-blue-primary: #2E66B5;
  --bf-blue-dark: #193E6C;
  --bf-blue-light: #E8F2FC;
  --bf-blue-soft: #F3F7FC;
  --bf-cyan-accent: #42B7EE;
  --bf-cta-coral: #F28380;
  --bf-cta-hover: #EF7774;
  --bf-text-main: #243447;
  --bf-text-sub: #596B80;
  --bf-border: #DCE6F2;
  --bf-border-control: #7D8FA6;
  --bf-background: #FFFFFF;
  --bf-error: #B42318;
  --bf-success: #176B45;
  --bf-focus: #193E6C;
  --bf-type-h1-size: 40px;
  --bf-type-h1-weight: 700;
  --bf-type-h1-leading: 1.4;
  --bf-type-h1-tracking: .02em;
  --bf-type-h1-margin-end: 24px;
  --bf-type-h2-size: 30px;
  --bf-type-h2-weight: 700;
  --bf-type-h2-leading: 1.5;
  --bf-type-h2-tracking: .02em;
  --bf-type-h2-margin-end: 24px;
  --bf-type-h3-size: 24px;
  --bf-type-h3-weight: 700;
  --bf-type-h3-leading: 1.5;
  --bf-type-h3-tracking: .02em;
  --bf-type-h3-margin-end: 16px;
  --bf-type-h4-size: 20px;
  --bf-type-h4-weight: 700;
  --bf-type-h4-leading: 1.6;
  --bf-type-h4-tracking: .02em;
  --bf-type-h4-margin-end: 12px;
  --bf-type-body-size: 16px;
  --bf-type-body-weight: 400;
  --bf-type-body-leading: 1.9;
  --bf-type-body-tracking: .02em;
  --bf-type-body-margin-end: 16px;
  --bf-type-small-size: 14px;
  --bf-type-small-weight: 400;
  --bf-type-small-leading: 1.7;
  --bf-type-small-tracking: .02em;
  --bf-type-small-margin-end: 8px;
  --bf-type-label-size: 12px;
  --bf-type-label-weight: 700;
  --bf-type-label-leading: 1.5;
  --bf-type-label-tracking: .08em;
  --bf-type-label-margin-end: 8px;
  --bf-type-button-size: 16px;
  --bf-type-button-weight: 700;
  --bf-type-button-leading: 1.5;
  --bf-type-button-tracking: .02em;
  --bf-type-button-margin-end: 0px;
  --bf-type-handwriting-size: 28px;
  --bf-type-handwriting-weight: 400;
  --bf-type-handwriting-leading: 1.7;
  --bf-type-handwriting-tracking: .04em;
  --bf-type-handwriting-margin-end: 16px;
  --bf-font-body: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  --bf-font-handwriting: "Zen Kurenaido", "Noto Sans JP", sans-serif;
  --bf-space-section-y: 128px;
  --bf-space-hero-y: 80px;
  --bf-space-hero-gap: 48px;
  --bf-space-heading-body: 24px;
  --bf-space-body-image: 32px;
  --bf-space-image-next: 32px;
  --bf-space-card-padding: 32px;
  --bf-space-card-compact: 24px;
  --bf-space-card-gap: 24px;
  --bf-space-cta-y: 48px;
  --bf-space-cta-content: 24px;
  --bf-space-button-gap: 16px;
  --bf-space-header-height: 80px;
  --bf-space-footer-y: 64px;
  --bf-space-footer-gap: 32px;
  --bf-space-footer-copy: 32px;
  --bf-space-breadcrumb-y: 16px;
  --bf-space-block-gap: 48px;
  --bf-space-paragraph-gap: 16px;
  --bf-space-faq-y: 24px;
  --bf-space-0: 0px;
  --bf-space-4: 4px;
  --bf-space-8: 8px;
  --bf-space-12: 12px;
  --bf-space-16: 16px;
  --bf-space-20: 20px;
  --bf-space-24: 24px;
  --bf-space-32: 32px;
  --bf-space-40: 40px;
  --bf-space-48: 48px;
  --bf-space-56: 56px;
  --bf-space-64: 64px;
  --bf-space-72: 72px;
  --bf-space-80: 80px;
  --bf-space-96: 96px;
  --bf-container-wide: 1280px;
  --bf-container-default: 1120px;
  --bf-container-narrow: 960px;
  --bf-container-article: 760px;
  --bf-container-gutter: 32px;
  --bf-breakpoint-tablet: 768px;
  --bf-breakpoint-desktop: 1200px;
  --bf-radius-none: 0px;
  --bf-radius-sm: 4px;
  --bf-radius-card: 16px;
  --bf-radius-round: 50%;
  --bf-shadow-none: none;
  --bf-shadow-soft: 0 4px 16px rgba(25,62,108,0.06);
  --bf-shadow-raised: 0 8px 24px rgba(25,62,108,0.10);
  --bf-button-min-height: 48px;
  --bf-button-padding-y: 12px;
  --bf-button-padding-x: 24px;
  --bf-focus-width: 3px;
  --bf-focus-offset: 2px;
  --bf-border-width: 1px;
  --bf-icon-stroke: 1.5px;
  --bf-motion-fast: 150ms;
  --bf-space-section-compact-y: 96px;
  --bf-space-128: 128px;
  --bf-radius-pill: 9999px;
  --bf-radius-card-compact: 12px;
  --bf-radius-hero: 24px;
  --bf-radius-legal-table: 8px;
}
@media (min-width: 768px) and (max-width: 1199px) { :root {
  --bf-type-h1-size: 34px;
  --bf-type-h1-margin-end: 20px;
  --bf-type-h2-size: 26px;
  --bf-type-h2-margin-end: 20px;
  --bf-type-h3-size: 22px;
  --bf-type-h4-size: 18px;
  --bf-type-handwriting-size: 24px;
  --bf-space-section-y: 96px;
  --bf-space-hero-y: 64px;
  --bf-space-hero-gap: 32px;
  --bf-space-heading-body: 20px;
  --bf-space-body-image: 24px;
  --bf-space-image-next: 24px;
  --bf-space-card-padding: 24px;
  --bf-space-card-compact: 20px;
  --bf-space-cta-y: 40px;
  --bf-space-button-gap: 12px;
  --bf-space-header-height: 72px;
  --bf-space-footer-y: 48px;
  --bf-space-footer-gap: 24px;
  --bf-space-footer-copy: 24px;
  --bf-space-breadcrumb-y: 12px;
  --bf-space-block-gap: 40px;
  --bf-space-faq-y: 20px;
  --bf-container-gutter: 24px;
  --bf-space-section-compact-y: 72px;
} }
@media (max-width: 767px) { :root {
  --bf-type-h1-size: 28px;
  --bf-type-h1-margin-end: 16px;
  --bf-type-h2-size: 24px;
  --bf-type-h2-margin-end: 16px;
  --bf-type-h3-size: 20px;
  --bf-type-h4-size: 18px;
  --bf-type-handwriting-size: 20px;
  --bf-space-section-y: 80px;
  --bf-space-hero-y: 40px;
  --bf-space-hero-gap: 24px;
  --bf-space-heading-body: 16px;
  --bf-space-body-image: 24px;
  --bf-space-image-next: 24px;
  --bf-space-card-padding: 24px;
  --bf-space-card-compact: 16px;
  --bf-space-card-gap: 16px;
  --bf-space-cta-y: 32px;
  --bf-space-cta-content: 20px;
  --bf-space-button-gap: 12px;
  --bf-space-header-height: 64px;
  --bf-space-footer-y: 40px;
  --bf-space-footer-gap: 24px;
  --bf-space-footer-copy: 24px;
  --bf-space-breadcrumb-y: 12px;
  --bf-space-block-gap: 32px;
  --bf-space-faq-y: 20px;
  --bf-container-gutter: 20px;
  --bf-space-section-compact-y: 64px;
  --bf-radius-hero: 20px;
} }

/* TOP Visual Final v0.2.10 primitives. Opt-in: page layouts remain reference-specific. */
:root {
  --bf-visual-container: var(--bf-container-wide);
  --bf-visual-section-gap: 24px;
  --bf-visual-card-gap: 24px;
  --bf-visual-card-radius: 6px;
  --bf-visual-heading-size: 32px;
  --bf-visual-heading-leading: 1.35;
  --bf-visual-copy-size: 16px;
  --bf-visual-button-min-height: 44px;
  --bf-visual-button-primary-radius: var(--bf-radius-pill);
  --bf-visual-border: 1px solid var(--bf-border);
}
@media (min-width:768px) and (max-width:1199px) { :root {
  --bf-visual-heading-size: 28px;
  --bf-visual-card-gap: 18px;
} }
@media (max-width:767px) { :root {
  --bf-visual-heading-size: 25px;
  --bf-visual-section-gap: 26px;
  --bf-visual-card-gap: 16px;
} }
