/* FundEDU v2 token stylesheet. Loaded only on the v2 pages by fundedu-v2-site.php.
   Plan: docs/superpowers/plans/2026-10-05-v2-token-pass.md. Tracker rows in brackets.
   Every rule is scoped to #main-content: the Theme Builder header and footer are Cassus's. */

@font-face { font-family: 'FE Gilroy'; src: url('/wp-content/uploads/fstc-hub/assets/fonts/Gilroy-Regular.ttf') format('truetype'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'FE Gilroy'; src: url('/wp-content/uploads/fstc-hub/assets/fonts/Gilroy-Bold.ttf') format('truetype'); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'FE Glacial'; src: url('/wp-content/uploads/fstc-hub/assets/fonts/GlacialIndifference-Regular.ttf') format('truetype'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'FE Glacial'; src: url('/wp-content/uploads/fstc-hub/assets/fonts/GlacialIndifference-Bold.ttf') format('truetype'); font-weight: 700; font-style: normal; font-display: swap; }

body.fe-v2 {
  --fe-navy: #1A3A6E;
  --fe-navy-dark: #13284D;
  --fe-gold: #D8A83B;
  --fe-gold-hover: #DDB253;
  --fe-charcoal: #262323;
  --fe-ink-muted: #767474;
  --fe-hairline: #E5E5E5;
  --fe-white: #FFFFFF;
  --fe-font-head: 'FE Gilroy', 'Helvetica Neue', Arial, sans-serif;
  --fe-font-body: 'FE Glacial', 'Helvetica Neue', Arial, sans-serif;
}

/* [S-41, S-42] brand faces in the page body; the footer module sets its own face on a and friends directly */
body.fe-v2 #main-content p, body.fe-v2 #main-content li, body.fe-v2 #main-content a, body.fe-v2 #main-content span:not(.et-pb-icon),
body.fe-v2 #main-content strong, body.fe-v2 #main-content em, body.fe-v2 #main-content td, body.fe-v2 #main-content th,
body.fe-v2 #main-content blockquote, body.fe-v2 #main-content .et_pb_blurb_description,
body.fe-v2 #main-content .et_pb_toggle_content { font-family: var(--fe-font-body) !important; }
/* Divi wraps every blurb title in a span inside the h3; the span keeps the head face, not the body face.
   The :not() matches the body span selector's specificity so this later rule wins, and icon glyphs stay out. */
body.fe-v2 #main-content h1 span:not(.et-pb-icon), body.fe-v2 #main-content h2 span:not(.et-pb-icon),
body.fe-v2 #main-content h3 span:not(.et-pb-icon), body.fe-v2 #main-content h4 span:not(.et-pb-icon),
body.fe-v2 #main-content h5 span:not(.et-pb-icon), body.fe-v2 #main-content .et_pb_module_header span:not(.et-pb-icon),
body.fe-v2 #main-content .et_pb_module_header a { font-family: var(--fe-font-head) !important; }
body.fe-v2 #main-content h1, body.fe-v2 #main-content h2, body.fe-v2 #main-content h3,
body.fe-v2 #main-content h4, body.fe-v2 #main-content h5, body.fe-v2 #main-content .et_pb_module_header,
body.fe-v2 #main-content .et_pb_section .et_pb_button { font-family: var(--fe-font-head) !important; font-weight: 700 !important; }

/* [S-55] long words never overflow; [S-64] h3 titles breathe */
body.fe-v2 #main-content h1, body.fe-v2 #main-content h2, body.fe-v2 #main-content h3 { overflow-wrap: anywhere; min-width: 0; }
body.fe-v2 #main-content h3 { line-height: 1.2 !important; }

/* [S-51, S-52] reading cap; FAQ answers sit under their question at body size */
body.fe-v2 #main-content .et_pb_text_inner > p, body.fe-v2 #main-content .et_pb_text_inner > ul,
body.fe-v2 #main-content .et_pb_text_inner > ol { max-width: 66ch; }
/* centred modules: centre the capped lede; sides only, so the inline 14px bottom margin survives */
body.fe-v2 #main-content .et_pb_text_align_center .et_pb_text_inner > p, body.fe-v2 #main-content .et_pb_text_align_center .et_pb_text_inner > ul,
body.fe-v2 #main-content .et_pb_text_align_center .et_pb_text_inner > ol { margin-left: auto !important; margin-right: auto !important; }
body.fe-v2 #main-content .et_pb_toggle_content { max-width: 66ch; margin-left: 0; margin-right: 0; font-size: 17px !important; }
/* spe guide: the joinder section is a code block, outside any text module */
body.fe-v2 #main-content #fstc-spe-joinder p { max-width: 66ch; }

/* [S-46] adjacent white bands keep a seam */
body.fe-v2 #main-content .et_pb_section.fe-band-after-white { border-top: 1px solid var(--fe-hairline); }

/* [S-04, S-63] gold buttons: charcoal label; hover lightens the fill; Divi blue never appears */
body.fe-v2 #main-content .et_pb_section .et_pb_button.fe-btn-gold { color: var(--fe-charcoal) !important; }
body.fe-v2 #main-content .et_pb_section .et_pb_button.fe-btn-gold:hover,
body.fe-v2 #main-content .et_pb_section .et_pb_button.fe-btn-gold:active { color: var(--fe-charcoal) !important; background-color: var(--fe-gold-hover) !important; border-color: var(--fe-gold-hover) !important; }
/* [S-01, S-84] outlined on light: navy label and edge; hover fills navy */
body.fe-v2 #main-content .et_pb_section .et_pb_button.fe-btn-outline:hover,
body.fe-v2 #main-content .et_pb_section .et_pb_button.fe-btn-outline:active { color: var(--fe-white) !important; background-color: var(--fe-navy) !important; border-color: var(--fe-navy) !important; }
/* [S-10] outlined on navy: white label and edge; hover fills white */
body.fe-v2 #main-content .et_pb_section .et_pb_button.fe-btn-outline-on-navy:hover,
body.fe-v2 #main-content .et_pb_section .et_pb_button.fe-btn-outline-on-navy:active { color: var(--fe-navy) !important; background-color: var(--fe-white) !important; border-color: var(--fe-white) !important; }

/* [S-10] hero buttons on one row */
body.fe-v2 #main-content .et_pb_section_0 .et_pb_button_module_wrapper { display: inline-block; margin-right: 16px; }

/* [S-02] one focus ring, keyboard only, instant: navy on light and gold fills, gold on navy grounds */
body.fe-v2 #main-content a:focus-visible, body.fe-v2 #main-content button:focus-visible,
body.fe-v2 #main-content .et_pb_toggle_title:focus-visible, body.fe-v2 #main-content [tabindex]:focus-visible { outline: 2px solid var(--fe-navy) !important; outline-offset: 2px; transition: none !important; }
body.fe-v2 #main-content .fe-ground-navy a:focus-visible, body.fe-v2 #main-content .fe-ground-navy button:focus-visible { outline: 2px solid var(--fe-gold) !important; outline-offset: 2px; transition: none !important; }
body.fe-v2 #main-content .fe-ground-navy .et_pb_button.fe-btn-gold:focus-visible { outline: 2px solid var(--fe-white) !important; outline-offset: 2px; transition: none !important; }

/* [S-09, S-58] accordion: white rows, hairline dividers, navy titles and glyph (D-1) */
body.fe-v2 #main-content .et_pb_toggle { background: var(--fe-white) !important; border: 0 !important; border-bottom: 1px solid var(--fe-hairline) !important; }
body.fe-v2 #main-content .et_pb_toggle_title, body.fe-v2 #main-content .et_pb_toggle h3,
body.fe-v2 #main-content .et_pb_toggle h5 { color: var(--fe-navy) !important; line-height: 1.3 !important; }
body.fe-v2 #main-content .et_pb_toggle_title::before { color: var(--fe-navy) !important; }
/* [S-59] the button fundedu-v2-toggles.js puts inside each title renders exactly like the title text */
body.fe-v2 #main-content .et_pb_toggle_title .fe-toggle-btn { display: block; width: 100%; background: none; border: 0; padding: 0; margin: 0; font: inherit; color: inherit; text-align: inherit; text-transform: inherit; letter-spacing: inherit; cursor: pointer; }

/* [S-49, S-57] named properties, gated on the user's motion setting */
body.fe-v2 #main-content .et_pb_section .et_pb_button { transition: none !important; }
@media (prefers-reduced-motion: no-preference) {
  body.fe-v2 #main-content .et_pb_section .et_pb_button { transition: color 150ms, background-color 150ms !important; }
}

/* [ruling 2 A, Chris 2026-10-15] text module links: the dotted underline takes the link colour (Contact 3623, Resources 3617) */
body.fe-v2 #main-content .et_pb_text_inner a { text-decoration-color: currentColor; }

/* [Late rulings 4, Chris 2026-10-15] Schools (3572), "What FundEDU handles for your school": rows 2 and 3 of cards sit as far below the row above as the two cards of a row sit apart */
body.fe-v2.page-id-3572 #main-content .et_pb_row:has(.et_pb_blurb) + .et_pb_row:has(.et_pb_blurb) { margin-top: calc(min(92%, 1180px) * 0.055 - 18px); }
@media (max-width: 980px) { body.fe-v2.page-id-3572 #main-content .et_pb_row:has(.et_pb_blurb) + .et_pb_row:has(.et_pb_blurb) { margin-top: 30px; } }
