/* F08 brand and native shell. Gold is decorative, never small text. */
:root { --page-bg:#faf7f2; --body-text:#292321; --heading:#620303; --accent-hover:#470202; --input-border:#73665d; --error:#9b1c1c; --success:#1a5c2b; --academy-ink:#620303; --academy-paper:#faf7f2; --academy-muted:#59514c; --academy-accent:#b56d22; }
body { font-family:Inter,sans-serif; font-size:18px; line-height:1.5; background:var(--academy-paper); color:#292321; }
h1,h2,h3,h4 { font-family:'Playfair Display',serif; }
.academy-section { max-width:72rem; padding:2rem 1.5rem; margin:0 auto; }
.academy-section p,.academy-section li { max-width:65ch; }
.academy-hero { padding-block:clamp(2rem,5vw,4.5rem); min-height:0; }
.academy-hero h1 { max-width:22ch; font-size:clamp(2rem,4vw,3.5rem); line-height:1.15; color:var(--academy-ink); }
.academy-actions { display:flex; flex-wrap:wrap; gap:1rem; margin-top:1.5rem; }
.academy-section a { color:var(--academy-ink); }
.academy-section .btn-primary { background:var(--academy-ink); color:var(--academy-paper); min-height:44px; padding:.7rem 1rem; }
.academy-section label { display:block; font-weight:600; margin-block:.6rem; }
.academy-section input,.academy-section select,.academy-section textarea { font:inherit; max-width:100%; padding:.65rem; border:1px solid #73665d; background:#fff; color:#292321; border-radius:4px; }
.academy-section form button { margin:.5rem; }
.academy-certificate { border:2px solid var(--academy-accent); padding:1.5rem; background:#fff; max-width:65ch; }
.academy-header { padding:1rem 1.5rem; display:flex; flex-wrap:wrap; align-items:center; gap:1rem; border-bottom:1px solid #c8b9a9; background:#faf7f2; }
.academy-brand { font:700 1.5rem 'Playfair Display',serif; color:#620303; }
.academy-primary { display:flex; flex-wrap:wrap; gap:.5rem; margin-left:auto; }
.academy-primary a,.academy-menu-button { display:inline-flex; align-items:center; min-height:44px; padding:.6rem .8rem; color:#620303; font:600 1rem Inter,sans-serif; }
.academy-menu-button { border:1px solid #620303; background:#faf7f2; border-radius:4px; cursor:pointer; }
.academy-more { flex-basis:100%; display:flex; flex-wrap:wrap; gap:1rem; }
.academy-more a { color:#620303; min-height:44px; display:inline-flex; align-items:center; }
.academy-footer { padding:2rem 1.5rem; background:#620303; color:#faf7f2; }
.academy-footer nav { display:flex; flex-wrap:wrap; gap:1.25rem; }
.academy-footer a { color:#faf7f2; min-height:24px; }
[hidden] { display:none!important; }
@media(max-width:600px) { .academy-header { padding:1rem; gap:.5rem; } .academy-primary { margin:0; order:3; width:100%; } .academy-primary a { flex:1; padding:.5rem .3rem; font-size:.9rem; text-align:center; justify-content:center; } .academy-menu-button { margin-left:auto; } .academy-more { order:4; } }
/* Tested dark foreground tokens replace low contrast gold and gray copy. */
:root { --accent:#620303; --text-muted:#59514c; --text-secondary:#59514c; }
:focus-visible { outline:3px solid #620303!important; outline-offset:3px!important; box-shadow:0 0 0 6px #faf7f2!important; }
button,input,select,summary { min-height:24px; }
.btn,.auth-form button,.contact-form button { min-height:44px; }
.skip-link { position:absolute; left:1rem; top:-100px; z-index:2147483647; background:#faf7f2; color:#620303; padding:1rem; }
.skip-link:focus { top:1rem; }
#main { min-width:0; }
.form-label,.contact-form label { display:block; color:#292321; }
.contact-card-detail,.contact-card-sub,.cert-state-faq-sub { color:#59514c!important; }
.contact-card { background:#faf7f2!important; color:#292321!important; }
.cert-state-hero-inner,.cert-course-hero-inner { min-width:0; overflow-wrap:anywhere; }
@media(max-width:600px) { .cert-state-hero-inner,.cert-course-hero-inner { width:100%; padding-inline:1rem; } .cert-state-stats,.cert-course-meta { flex-wrap:wrap; } .sm-map { gap:3px; } .sm-tile { min-width:24px; min-height:24px; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
.academy-state-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(145px,1fr)); gap:.6rem; }
.academy-state-grid button,.academy-state-grid a { min-height:44px; padding:.5rem; background:#faf7f2; color:#620303; border:1px solid #620303; border-radius:4px; font:inherit; }
.academy-policy-dialog { max-width:min(65ch,92vw); max-height:85vh; overflow:auto; padding:1.5rem; background:#faf7f2; color:#292321; border:2px solid #620303; }
.academy-policy-dialog::backdrop { background:rgba(0,0,0,.5); }
.cert-hours-badge,.cert-cat-badge,.cert-recert-badge { color:#620303!important; background:#faf7f2!important; }
.academy-filters { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:1rem; align-items:end; }
.academy-filters input,.academy-filters select { width:100%; }
.academy-course-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr)); gap:1.5rem; }
.academy-course-card { padding:1.5rem; background:#fff; border:1px solid #c8b9a9; border-radius:8px; }
.academy-course-card h2 { font-size:1.4rem; line-height:1.3; }

.about-hero .belle-gold-accent { color:#faf7f2!important; }
/* Belle 2026-09-20: links inside running text are underlined (axe link-in-text-block). */
main p a, main li a, main dd a, .academy-course-card a, .contact-card-detail a { text-decoration: underline; text-underline-offset: 2px; }
.academy-show-more { margin: 1.5rem auto; display: block; }
