/* =====================================================================
   v24 - Legibility + polish layer (loaded LAST, after mnc.css)
   Fixes: near-white text on white cards, low-contrast chips / links /
   logo, plus consistent focus + hover states. Roll back by removing the
   v24.css / v24.js tags from the pages.
   ===================================================================== */
:root{
  --gs-ink:#0b1d10;        /* headings on light surfaces  (contrast 17:1) */
  --gs-body:#37473a;       /* body copy on light surfaces (contrast 9:1)  */
  --gs-soft:#55655a;       /* secondary copy              (contrast 5.9:1) */
  --gs-green:#2c6b05;      /* links / labels on light     (contrast 6.3:1) */
  --gs-lime:#a6ee2e;       /* accent on dark surfaces                      */
  --gs-chip:#eaf5d3;
  --gs-chip-line:#c5df94;
  --gs-line:#dbe4d0;
}

/* ---------- 1. Light cards: dark, readable text ---------- */
body[data-v20] .card :is(h2,h3,h4,strong){color:var(--gs-ink)!important}
body[data-v20] .card :is(p,li,dd,small,.muted){color:var(--gs-body)!important;opacity:1!important}
body[data-v20] .card :is(.num,.eyebrow){color:var(--gs-green)!important}
body[data-v20] .card a.text-link,
body[data-v20] .card .text-link{color:var(--gs-green)!important;font-weight:700;text-decoration:underline;text-decoration-color:rgba(44,107,5,.35);text-underline-offset:3px}
body[data-v20] .card a.text-link:hover{text-decoration-color:currentColor}
body[data-v20] .card :is(.tag,.pill),
body[data-v20] .tech-micro span{background:var(--gs-chip)!important;border:1px solid var(--gs-chip-line)!important;color:#25400a!important;font-weight:700}
body[data-v20] .card .btn-ghost{background:#fff!important;color:var(--gs-ink)!important;border:1.5px solid #8fb060!important}
body[data-v20] .card .btn-ghost:hover,body[data-v20] .card .btn-ghost:focus-visible{background:var(--gs-lime)!important;border-color:var(--gs-lime)!important;color:#0b1d10!important}
body[data-v20] .card .btn-primary{color:#0b1d10!important}

/* picture captions inside cards stay dark-green with light text */
body[data-v20] .card .cvx-cap b{color:#b6f24a!important}
body[data-v20] .card .cvx-cap span{color:#eef5e0!important}

/* ---------- 2. Dark contexts keep light text ---------- */
body[data-v20] :is(.dark-cards,.dark-feature,.login-art,.hero,.cta-panel.dark) .card :is(h2,h3,h4,strong){color:#fffef7!important}
body[data-v20] :is(.dark-cards,.dark-feature,.login-art,.hero,.cta-panel.dark) .card :is(p,li,dd,small,.muted){color:#dfe9cf!important}
body[data-v20] :is(.dark-cards,.dark-feature,.login-art,.hero,.cta-panel.dark) .card :is(.num,.eyebrow){color:var(--gs-lime)!important}
body[data-v20] .service-card :is(h2,h3,h4){color:var(--gs-ink)!important}
body[data-v20] .service-card :is(p,li){color:var(--gs-body)!important}
body[data-v20] .service-card :is(.num,.eyebrow,.tag){color:var(--gs-green)!important}

/* ---------- 3. Header / logo ---------- */
body[data-v20] .header .logo span,
body[data-v20] .logo span{color:var(--gs-green)!important}
body[data-v20] .footer .logo span{color:var(--gs-lime)!important}
body[data-v20] .header .navlinks a:not(.btn){color:var(--gs-ink)}

/* ---------- 4. Keyboard focus is always visible ---------- */
:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid #7fc10f;outline-offset:3px;border-radius:6px}

/* ---------- 5. Dark panels keep light text (were dark-on-dark) ---------- */
body[data-v20] :is(.cta-panel,.visual-card,section.cta,.login-art,.dark-visual) :is(h1,h2,h3,h4,strong){color:#fffef7!important}
body[data-v20] :is(.cta-panel,.visual-card,section.cta,.login-art,.dark-visual) :is(p,li,.lead,small,.muted){color:#dbe7cc!important}
body[data-v20] :is(.cta-panel,.visual-card,section.cta,.login-art,.dark-visual) :is(.eyebrow,.num){color:var(--gs-lime)!important}
body[data-v20] :is(.cta-panel,.visual-card,section.cta,.login-art) .btn-ghost{background:transparent!important;color:#fffef7!important;border:1.5px solid rgba(200,239,74,.65)!important}
body[data-v20] :is(.cta-panel,.visual-card,section.cta,.login-art) .btn-ghost:hover{background:var(--gs-lime)!important;color:#0b1d10!important;border-color:var(--gs-lime)!important}
/* same text on the coloured dark chips inside dark panels */
body[data-v20] :is(.visual-card,.login-art,.dark-visual) :is(.tag,.pill){background:rgba(200,239,74,.12)!important;border:1px solid rgba(200,239,74,.45)!important;color:#e9f7c4!important}

/* ---------- 6. Forms: readable labels, real fields, tidy layout ---------- */
body[data-v20] form :is(label,legend){display:block;color:var(--gs-ink)!important;font-weight:700;font-size:.9rem;margin:0 0 6px}
body[data-v20] form :is(input:not([type=checkbox]):not([type=radio]),select,textarea){
  width:100%;box-sizing:border-box;font:inherit;font-size:1rem;color:var(--gs-ink);background:#fff;
  border:1.5px solid #b7c8a4;border-radius:10px;padding:12px 14px;min-height:46px;appearance:auto}
body[data-v20] form textarea{min-height:130px;resize:vertical;line-height:1.5}
body[data-v20] form :is(input,select,textarea)::placeholder{color:#6b7a68;opacity:1}
body[data-v20] form :is(input,select,textarea):focus{outline:3px solid rgba(127,193,15,.45);outline-offset:0;border-color:#5c9a08}
body[data-v20] form :is(.field,.form-row,.form-group,.form-field){margin-bottom:16px}
body[data-v20] .demo-form{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px;align-items:start}
body[data-v20] .demo-form>*{margin:0;min-width:0}
body[data-v20] .demo-form :is(textarea,.full,button,.btn,.form-note,.notice,h2,h3,p){grid-column:1/-1}
@media(max-width:720px){body[data-v20] .demo-form{grid-template-columns:1fr}}

/* ---------- 7. Small contrast nudges ---------- */
body[data-v20] .flow-arrow{color:#3f6f14!important;font-weight:800}
body[data-v20] .login-panel a:not(.btn){color:var(--gs-green)!important;font-weight:700}
body[data-v20] .filter{color:#2b3f26!important}
body[data-v20] .filter[aria-pressed=true],body[data-v20] .filter.active{color:#0b1d10!important}
body[data-v20] form label :is(input:not([type=checkbox]):not([type=radio]),select,textarea){display:block;margin-top:6px;font-weight:400}
body[data-v20] .demo-form label:has(textarea){grid-column:1/-1}
body[data-v20] .demo-form :is(button,.btn){justify-self:start}

/* ---------- 8. Home card detail strip + legacy flow chips ---------- */
body[data-v20] .card-detail-grid b{color:var(--gs-green)!important;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}
body[data-v20] .card-detail-grid span{color:var(--gs-body)!important}
body[data-v20] .cv-flow span{color:#25400a!important}
body[data-v20] .cv-flow i{color:#3f6f14!important}
body[data-v20] .engineering-detail .flow-arrow,body[data-v20] .flow-arrow{color:#2c6b05!important;opacity:1!important;font-weight:800}
