/* Final high-contrast pass — 2026-08-19
   Goal: readable text on every light/dark surface without changing layout. */
:root{
  --text-strong:#0a213b;
  --text-body:#405a72;
  --text-muted:#52697e;
  --text-gold:#806112;
  --dark-text:#dbe9f5;
  --dark-muted:#b9d0e2;
  --dark-gold:#ffd66d;
  --dark-link:#85ddff;
}

body{color:var(--text-strong)}
p{color:var(--text-body)}
.muted{color:var(--text-muted)!important}
.eyebrow,.kicker{color:var(--text-gold)}

/* Light surfaces */
:is(.feature-card,.problem-card,.entry-card,.proof-card,.info-card,.process-card,.timeline-step,.program-card:not(.featured),.surface,.form-card,.faq-item,.pricing-row,.policy-card,.success-card,.mini-float,.stage-card){color:var(--text-strong)!important}
:is(.feature-card,.problem-card,.entry-card,.proof-card,.info-card,.process-card,.timeline-step,.program-card:not(.featured),.surface,.form-card,.faq-item,.pricing-row,.policy-card,.success-card,.mini-float,.stage-card) :is(h1,h2,h3,h4,strong){color:var(--text-strong)!important}
:is(.feature-card,.problem-card,.entry-card,.proof-card,.info-card,.process-card,.timeline-step,.program-card:not(.featured),.surface,.form-card,.faq-item,.pricing-row,.policy-card,.success-card,.mini-float,.stage-card) :is(p,small,li){color:var(--text-body)!important}

.entry-card .query,.tag,.pill,.proof-pills span{color:#2f536e!important;background:#edf4f8!important}
.entry-card .text-link,.text-link{color:#075f99!important}
.problem-card .num,.timeline-step .phase,.program-card:not(.featured) .tier{color:#8a6110!important}

/* Dark surfaces */
.section-dark{color:#fff}
.section-dark > .container > .section-head :is(h1,h2,h3,h4),
.section-dark > .container > .section-head .section-copy :is(h1,h2,h3,h4),
.section-dark > .container > .section-head .section-copy{color:#fff!important}
.section-dark > .container > .section-head .section-copy p{color:var(--dark-muted)!important}
.section-dark .kicker.light,.section-dark .eyebrow{color:var(--dark-gold)!important}
.section-dark .campus-toolbar,.section-dark .campus-toolbar h3{color:#fff!important}
.section-dark .campus-toolbar span{color:#c8dceb!important}
.section-dark .filter-btn{color:#dceaf5!important}
.section-dark .filter-btn.active{color:var(--text-strong)!important}

.form-aside{color:#fff!important}
.form-aside :is(h1,h2,h3,h4,strong){color:#fff!important}
.form-aside p,.form-aside small{color:#d0dfeb!important}
.form-aside .kicker,.form-aside .kicker.light{color:var(--dark-gold)!important}
.form-aside .note{color:#eef7ff!important}
.form-aside .note a{color:#ffe18b!important}

.program-card.featured{color:#fff!important}
.program-card.featured :is(h1,h2,h3,h4,strong){color:#fff!important}
.program-card.featured :is(p,li,.role){color:#d4e2ed!important}
.program-card.featured .tier{color:#ffe08a!important}
.program-card.featured .text-link{color:#9fe5ff!important}

.cta-panel{color:var(--text-strong)!important}
.cta-panel :is(h1,h2,h3,h4,strong){color:var(--text-strong)!important}
.cta-panel p{color:var(--text-body)!important}

/* Footer and overlays */
.site-footer{color:#d3e1ec!important}
.footer-brand p,.footer-col a,.footer-bottom,.footer-bottom a{color:#afc4d4!important}
.footer-col h4,.footer-brand .brand{color:#fff!important}
.footer-col a:hover,.footer-bottom a:hover{color:#fff!important}
.cookie-banner{color:#fff!important}.cookie-banner p{color:#c9d9e6!important}
.toast{color:#fff!important}

/* Form contrast */
.field label{color:#2e4d68!important}
.field input,.field select,.field textarea{color:#0a213b!important;background:#fff!important;border-color:#9fb0bf!important}
.field input::placeholder,.field textarea::placeholder{color:#6b7e90!important;opacity:1}
.consent,.consent span{color:#4c647a!important}.consent a{color:#075f99!important;text-decoration:underline}
.form-status.success{color:#075d4b!important}.form-status.error{color:#8f3025!important}

/* Buttons and links */
.btn-primary{color:#08213a!important}
.btn-dark{color:#fff!important}
.btn-light{color:#071b31!important}
.btn-outline{color:#0a2948!important}
.faq-q{color:#0a213b!important}
.faq-a>div{color:#405a72!important}

/* Localized parity refinements */
.localized-hero .hero-copy .lead{color:#405a72!important}
.localized-hero .stage-card strong{color:#0a213b!important}
.localized-hero .stage-card small{color:#405a72!important}
.clean-list{margin:0;padding-left:22px}.clean-list li{margin:10px 0;color:#405a72}
.report-surface .metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:18px}
.report-surface .metric{padding:18px;border:1px solid rgba(15,54,85,.1);border-radius:18px;background:#f4f8fb}
.report-surface .metric strong{display:block;color:#0a2946!important;font-size:12px;letter-spacing:.08em}
.report-surface .metric span{display:block;margin-top:6px;color:#6b60d8!important;font-size:24px;font-weight:900}

/* Focus visibility */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #0a84ff!important;outline-offset:3px}

@media(max-width:720px){
  .report-surface .metric-grid{grid-template-columns:1fr 1fr}
  .section-copy p{font-size:16px}
}


/* Comprehensive contrast hardening — final pass */
/* Light cards / surfaces: never inherit white or low-opacity text. */
:is(.signal,.check-card,.diagnostic-option,.compare-card,.report-card,.report-metric,.toc,.article-callout,.policy-card,.pricing-row,.success-card,.school-disclaimer,.mini-chart,.calculator-shell:not(:has(.calculator-result)),.article-body){color:#0a213b!important}
:is(.signal,.check-card,.diagnostic-option,.compare-card,.report-card,.report-metric,.toc,.article-callout,.policy-card,.pricing-row,.success-card,.school-disclaimer) :is(h1,h2,h3,h4,strong){color:#0a213b!important}
:is(.signal,.check-card,.diagnostic-option,.compare-card,.report-card,.report-metric,.toc,.article-callout,.policy-card,.pricing-row,.success-card,.school-disclaimer) :is(p,small,li,span:not(.check):not(.mark)){color:#405a72!important}
.signal span,.check-card p,.report-head span,.report-metric small,.pricing-row small,.article-meta span{color:#52697e!important}
.pricing-row span{color:#806112!important}
.article-body p,.article-body li,.article-body ol,.article-body ul{color:#405a72!important}
.article-meta span{background:#e8f0f5!important}
.article-callout{background:#fff6dd!important;border-left-color:#b98312!important}
.school-disclaimer{background:#fff5d9!important;color:#654d16!important;border-color:rgba(128,97,18,.28)!important}
.school-disclaimer *{color:#654d16!important}

/* Dark cards / surfaces: never inherit dark text. */
:is(.data-panel,.diagnostic-banner,.article-cta,.report-plan,.calculator-result,.stage-caption,.mega-intro){color:#fff!important}
:is(.data-panel,.diagnostic-banner,.article-cta,.report-plan,.calculator-result,.stage-caption,.mega-intro) :is(h1,h2,h3,h4,strong){color:#fff!important}
:is(.data-panel,.diagnostic-banner,.article-cta,.report-plan,.calculator-result,.stage-caption,.mega-intro) :is(p,small,li){color:#c9dced!important}
.data-panel .data-stat span,.data-panel .source-note{color:#c9dced!important}
.data-panel .kicker,.data-panel .eyebrow{color:#ffd66d!important}
.calculator-result small{color:#c6d9e9!important}
.calculator-result strong{color:#fff!important}
.calculator-result p{color:#d1e1ee!important}

/* Dark section process cards are intentionally light cards; lock their text to ink. */
.section-dark :is(.process-card,.entry-card,.feature-card,.check-card,.diagnostic-option,.timeline-step){color:#0a213b!important}
.section-dark :is(.process-card,.entry-card,.feature-card,.check-card,.diagnostic-option,.timeline-step) :is(h1,h2,h3,h4,strong){color:#0a213b!important}
.section-dark :is(.process-card,.entry-card,.feature-card,.check-card,.diagnostic-option,.timeline-step) :is(p,small,li){color:#405a72!important}
.section-dark .program-card.featured :is(h1,h2,h3,h4,strong){color:#fff!important}
.section-dark .program-card.featured :is(p,small,li){color:#d4e2ed!important}

/* Dark calculator shell (defined in extra.css) */
.calculator-shell{color:#fff!important}
.calculator-shell label{color:#d5e4ef!important}
.calculator-shell input{color:#fff!important;background:rgba(255,255,255,.12)!important;border-color:rgba(255,255,255,.26)!important}
.calculator-shell input::placeholder{color:#c7d8e5!important;opacity:1}

/* Header, breadcrumbs and tiny text get a minimum readable contrast. */
.breadcrumbs,.breadcrumbs span{color:#52697e!important}
.breadcrumbs a{color:#255b82!important}
.brand-copy small{color:#725614!important}
.utility{color:#dbe9f5!important}

/* Modal / quiz surfaces */
.modal-panel,.quiz-wrap,.quiz-step,.quiz-result{color:#0a213b!important}
.modal-panel :is(h1,h2,h3,h4,strong),.quiz-wrap :is(h1,h2,h3,h4,strong){color:#0a213b!important}
.modal-panel :is(p,small,li),.quiz-wrap :is(p,small,li){color:#405a72!important}

/* Ensure disabled/placeholder UI is still legible. */
button:disabled,[aria-disabled="true"]{opacity:.72}

/* Localized pages use the same visual density and line-height as Korean pages. */
html:is([lang="en"],[lang="ja"],[lang="zh-Hans"]) .section-copy p,
html:is([lang="en"],[lang="ja"],[lang="zh-Hans"]) .lead{color:#405a72!important}
html:is([lang="en"],[lang="ja"],[lang="zh-Hans"]) .localized-detail-card p{color:#405a72!important}
html:is([lang="en"],[lang="ja"],[lang="zh-Hans"]) .localized-detail-card h3{color:#0a213b!important}

/* SMS fallback: clear, tappable path when automatic provider delivery is unavailable */
.form-status.sms-fallback-status{display:flex;flex-wrap:wrap;align-items:center;gap:10px;color:#0b2a4a;background:#eef7ff;border:1px solid #b8d8ef;padding:14px 16px;border-radius:16px;font-weight:700;line-height:1.55}
.form-status .sms-fallback-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:9px 14px;border-radius:999px;background:#0b5fa5;color:#fff!important;text-decoration:none;font-weight:800;box-shadow:0 8px 20px rgba(11,95,165,.18)}
.form-status .sms-fallback-link:hover,.form-status .sms-fallback-link:focus-visible{background:#084e89;outline:3px solid rgba(56,189,248,.3);outline-offset:2px}

.sms-assist-note{margin:10px 2px 0;text-align:center;color:#4c657d!important;font-size:12px;font-weight:700;line-height:1.55}
.form-status .sms-copy-again{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:9px 14px;border:1px solid #9fc6e6;border-radius:999px;background:#fff;color:#0b2a4a!important;font:inherit;font-weight:800;cursor:pointer;box-shadow:0 6px 18px rgba(7,27,49,.08)}
.form-status .sms-copy-again:hover,.form-status .sms-copy-again:focus-visible{background:#f7fbff;border-color:#6ca9d5;outline:3px solid rgba(56,189,248,.24);outline-offset:2px}
.sms-resume-panel{position:fixed;z-index:10020;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(92vw,560px);padding:18px 20px;border:1px solid rgba(142,190,223,.55);border-radius:22px;background:rgba(248,252,255,.98);box-shadow:0 24px 70px rgba(2,18,35,.28);color:#0b2a4a;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.sms-resume-panel p{margin:0 36px 14px 0;color:#234a6d!important;font-size:14px;font-weight:750;line-height:1.55}
.sms-resume-actions{display:flex;flex-wrap:wrap;gap:10px}.sms-resume-actions .btn{flex:1 1 180px;min-height:46px}
.sms-resume-close{position:absolute;right:12px;top:10px;width:34px;height:34px;border:0;border-radius:999px;background:#e9f2f8;color:#0b2a4a;font-size:22px;line-height:1;cursor:pointer}
@media(max-width:640px){.sms-resume-panel{bottom:max(84px,calc(env(safe-area-inset-bottom) + 72px));padding:16px;border-radius:20px}.sms-resume-panel p{font-size:13px}.sms-resume-actions{gap:8px}}
