/* ================================================================
   WCAG AA ACCESSIBILITY FIXES — Text & Interaction Only
   NO background color changes — original glassmorphism preserved.
   Only text colors, font sizes, focus states, and ARIA patterns.
================================================================ */

/* ================================================================
   PRIORITY 1 — CONTRAST: TEXT COLORS ONLY
   Original glass backgrounds untouched.
   Dark ink for sections with light glass (most of the site).
   White text for inherently dark panels (gate, weather bar).
================================================================ */

/* ── Section headers ── */
.sec-title {
  color: #0f172a !important;
  background: none !important;
  -webkit-background-clip: unset !important;
  -webkit-text-fill-color: #0f172a !important;
  background-clip: unset !important;
}
.sec-subtitle  { color: #1e293b !important; }
.sec-eyebrow   { color: #334155 !important; }
.sec-num       { display: none !important; }

/* ── Navbar ── */
.nav-logo-name { color: #FFFFFF !important; }
.nav-logo-role { color: rgba(255,255,255,0.85) !important; }
.nav-link      { color: #1e293b !important; }
.nav-link:hover, .nav-link.active, .nav-link.is-active { color: #0f172a !important; }
.nav-resume-btn { color: #0f172a !important; }
.nav-mob-link  { color: #1e293b !important; }

/* ── Weather bar — floats on photo, no card, needs white ── */
.wb-time         { color: #FFFFFF !important; }
.wb-date         { color: rgba(255,255,255,0.90) !important; }
.wb-weather-text { color: rgba(255,255,255,0.90) !important; }
.wb-icon         { color: rgba(255,255,255,0.90) !important; }
.wb-sep          { color: rgba(255,255,255,0.55) !important; }

/* ── Gate card — sits on dark photo, white text ── */
.gate-card h2        { color: #FFFFFF !important; }
.gate-card h2 span   { color: #D4A840 !important; }
.gate-card .gate-subtitle { color: rgba(255,255,255,0.90) !important; }
.gate-logo           { color: rgba(255,255,255,0.90) !important; }
.gate-field label    { color: rgba(255,255,255,0.90) !important; }
.gate-field input    { color: #FFFFFF !important; }
#gateWelcome p.gate-subtitle { color: rgba(255,255,255,0.90) !important; }

/* ── Hero ── */
.hvc-val           { color: #0f172a !important; }
.hvc-icon          { color: #334155 !important; }
.hvc-lbl           { color: #334155 !important; }
.hero-eyebrow-text { color: #1e293b !important; }
.hnr-tag           { color: #1e293b !important; }
.hero-statement    { color: #1e293b !important; }
.hero-name-first, .hero-name-last {
  color: #0f172a !important;
  background: none !important;
  -webkit-background-clip: unset !important;
  -webkit-text-fill-color: #0f172a !important;
  background-clip: unset !important;
}
.kpi-num   { color: #0f172a !important; -webkit-text-fill-color: #0f172a !important; }
.kpi-unit  { color: #334155 !important; }
.kpi-label { color: #334155 !important; }
.hero-badge { color: #1e293b !important; }

/* ── Why Hire ── */
.wh-title        { color: #0f172a !important; }
.wh-desc         { color: #1e293b !important; }
.wh-proof        { color: #334155 !important; }
.wh-proof span   { color: #334155 !important; }
.wh-badge        { color: #0f172a !important; font-weight: 700; }
.wh-badge-green  { color: #14532d !important; }
.wh-badge-amber  { color: #78350f !important; }
.wh-badge-teal   { color: #134e4a !important; }
.wh-badge-rose   { color: #881337 !important; }
.wh-badge-purple { color: #4c1d95 !important; }
.ps-num          { color: #0f172a !important; }
.ps-label        { color: #334155 !important; }
.stb-label       { color: #1e293b !important; }
.stb-sector      { color: #1e293b !important; }

/* ── About ── */
.bio-lead        { color: #0f172a !important; }
.bio-body        { color: #1e293b !important; }
.astat-num       { color: #0f172a !important; }
.astat-label     { color: #334155 !important; }
.ach-text strong { color: #0f172a !important; }
.ach-text span   { color: #1e293b !important; }
.p-chip          { color: #1e293b !important; }

/* ── Projects ── */
.mc-title         { color: #0f172a !important; }
.mc-org           { color: #334155 !important; }
.mc-sector        { color: #334155 !important; }
.mc-desc          { color: #1e293b !important; }
.csm-lbl          { color: #334155 !important; }
.csm-val          { color: #0f172a !important; }
.mc-outcome-label { color: #334155 !important; }
.mc-outcome-val   { color: #0f172a !important; }
.mc-tool-tag      { color: #1e293b !important; }
.pc-block-text    { color: #1e293b !important; }
.pc-impact        { color: #1e293b !important; }
.pc-tool-badge    { color: #1e293b !important; }
.pc-block-label.challenge { color: #92400e !important; }
.pc-block-label.solution  { color: #166534 !important; }

/* ── Capabilities cards (gc-cards) sit on photo — dark text on their own glass ── */
.gc-card-title { color: #0f172a !important; }
.gc-card-body  { color: #1e293b !important; }
.gc-stat       { color: #334155 !important; }
.gc-tag        { color: #1e293b !important; }

/* ── Experience ── */
.exp-role         { color: #0f172a !important; }
.exp-company      { color: #1e293b !important; }
.exp-bullet       { color: #1e293b !important; }
.exp-quote        { color: #1e293b !important; }
.exp-quote-author { color: #334155 !important; }
.exp-stat-chip    { color: #0f172a !important; }
.exp-meta-chip    { color: #334155 !important; }

/* ── Education ── */
.edu-description { color: #1e293b !important; }
.edu-result      { color: #1e293b !important; }
.edu-date        { color: #334155 !important; }

/* ── Arsenal ── */
.ac-title    { color: #0f172a !important; }
.ac-subtitle { color: #334155 !important; }
.tool-chip   { color: #1e293b !important; }
.lang-name   { color: #0f172a !important; }
.lang-level  { color: #334155 !important; }

/* ── References ── */
.ref-name       { color: #0f172a !important; }
.ref-title      { color: #1e293b !important; }
.ref-company    { color: #334155 !important; }
.ref-note       { color: #1e293b !important; }
.ref-rel-pill   { color: #1e293b !important; }
.ref-disclaimer { color: #334155 !important; }
.ref-view-link  { color: #005f94 !important; }

/* ── Contact / Engage ── */
.engage-status-text { color: #0f172a !important; }
.engage-version     { color: #334155 !important; }
.engage-intro       { color: #1e293b !important; }
.er-label           { color: #334155 !important; }
.er-value           { color: #0f172a !important; }
.er-cta             { color: #0f172a !important; }
.erc-title          { color: #0f172a !important; }
.erc-sub            { color: #334155 !important; }

/* CTA buttons with dark tinted backgrounds — keep white */
.cta-resume .cta-btn-label   { color: rgba(255,255,255,0.90) !important; }
.cta-whatsapp .cta-btn-label { color: rgba(255,255,255,0.90) !important; }
.cta-resume .cta-btn-arrow   { color: rgba(255,255,255,0.90) !important; }
.cta-whatsapp .cta-btn-arrow { color: rgba(255,255,255,0.90) !important; }

/* ── Footer ── */
.footer-name    { color: #0f172a !important; }
.footer-role    { color: #334155 !important; }
.footer-copy    { color: #334155 !important; }
.footer-links a { color: #1e293b !important; }

/* ── Review box — sits inside engage panel ── */
.review-box-title    { color: #0f172a !important; }
.review-box-hint     { color: #1e293b !important; }
.review-rating-label { color: #1e293b !important; }
.review-char-count   { color: #334155 !important; -webkit-text-fill-color: #334155 !important; }
#reviewThanks p:first-of-type { color: #0f172a !important; }
#reviewThanks p:last-of-type  { color: #1e293b !important; }

/* ── Published review cards ── */
.rc-text { color: #1e293b !important; }
.rc-name { color: #0f172a !important; }
.rc-date { color: #334155 !important; }

/* ── Misc ── */
.hlb-label    { color: #0f172a !important; }
.hlb-id       { color: #334155 !important; }
.hap-status   { color: #1a7a36 !important; }
.hap-pill     { color: #1e293b !important; }
.aac-title    { color: #0f172a !important; }
.aac-org      { color: #334155 !important; }
.aac-desc     { color: #1e293b !important; }
.cc-name, .cc-issuer { color: #0f172a !important; }
.cc-date, .cc-id     { color: #334155 !important; }
.engage-recruiter span:last-child { color: #334155 !important; }


/* ================================================================
   PRIORITY 2 — MINIMUM FONT SIZES
   16px body, 14px labels/metadata, 16px buttons
================================================================ */

body { font-size: 16px !important; }

/* Labels & metadata — 14px minimum */
.hvc-lbl           { font-size: 14px !important; }
.hero-eyebrow-text { font-size: 14px !important; }
.hnr-tag           { font-size: 14px !important; }
.kpi-label         { font-size: 14px !important; }
.kpi-unit          { font-size: 14px !important; }
.astat-label       { font-size: 14px !important; }
.ach-text span     { font-size: 14px !important; }
.p-chip            { font-size: 14px !important; }
.ps-label          { font-size: 14px !important; }
.stb-label         { font-size: 14px !important; }
.stb-sector        { font-size: 14px !important; }
.nav-mob-link      { font-size: 16px !important; }
.mc-sector         { font-size: 14px !important; }
.csm-lbl           { font-size: 14px !important; }
.mc-outcome-label  { font-size: 14px !important; }
.mc-tool-tag       { font-size: 14px !important; }
.pc-block-label    { font-size: 14px !important; }
.pc-block-text     { font-size: 14px !important; }
.pc-impact         { font-size: 14px !important; }
.pc-tool-badge     { font-size: 14px !important; }
.exp-quote-author  { font-size: 14px !important; }
.exp-stat-chip     { font-size: 14px !important; }
.exp-meta-chip     { font-size: 14px !important; }
.exp-bullet        { font-size: 16px !important; }
.exp-quote         { font-size: 16px !important; }
.edu-date          { font-size: 14px !important; }
.ac-subtitle       { font-size: 14px !important; }
.tool-chip         { font-size: 14px !important; }
.lang-level        { font-size: 14px !important; }
.ref-title         { font-size: 14px !important; }
.ref-company       { font-size: 14px !important; }
.ref-note          { font-size: 14px !important; }
.ref-rel-pill      { font-size: 14px !important; }
.ref-disclaimer    { font-size: 14px !important; }
.er-label          { font-size: 14px !important; }
.er-cta            { font-size: 14px !important; }
.erc-sub           { font-size: 14px !important; }
.engage-version    { font-size: 14px !important; }
.engage-status-text { font-size: 14px !important; }
.footer-role       { font-size: 14px !important; }
.footer-copy       { font-size: 14px !important; }
.sec-eyebrow       { font-size: 14px !important; }
.sec-subtitle      { font-size: 16px !important; }
.review-char-count { font-size: 14px !important; }
.rc-date           { font-size: 14px !important; }
.hlb-id            { font-size: 14px !important; }
.hap-pill          { font-size: 14px !important; }
.aac-desc          { font-size: 14px !important; }
.aac-org           { font-size: 14px !important; }
.cc-date, .cc-id   { font-size: 14px !important; }
.engage-recruiter  { font-size: 14px !important; }
.gc-stat           { font-size: 14px !important; }
.gc-tag            { font-size: 14px !important; }

/* Buttons — 16px minimum */
.gate-btn          { font-size: 16px !important; }
.review-submit-btn { font-size: 16px !important; }
.engage-cta-btn    { font-size: 16px !important; }
.msc-btn           { font-size: 16px !important; }
.exp-tab           { font-size: 16px !important; }
.fa-btn-label      { font-size: 14px !important; }

/* Form inputs */
#reviewName      { font-size: 16px !important; }
.review-textarea { font-size: 16px !important; }
#visitorName     { font-size: 16px !important; }
#reviewName::placeholder      { font-size: 16px !important; color: rgba(0,0,0,0.45) !important; }
.review-textarea::placeholder { font-size: 16px !important; }

/* Mobile: never below 14px */
@media (max-width: 767px) {
  .hvc-lbl, .kpi-label, .ps-label, .ac-subtitle,
  .nav-link, .tool-chip, .ref-note, .er-label,
  .stb-sector, .exp-meta-chip, .exp-stat-chip { font-size: 14px !important; }
  .nav-mob-link, .exp-bullet { font-size: 16px !important; }
}


/* ================================================================
   PRIORITY 3 — STAR RATING: ARIA RADIO VISUAL STATES
================================================================ */

.review-stars[role="radiogroup"] {
  display: inline-flex !important;
  gap: 4px !important;
  align-items: center !important;
}

.review-star[role="radio"] {
  cursor: pointer !important;
  outline: none !important;
  font-size: 28px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 40px !important;
  min-height: 40px !important;
  padding: 4px !important;
  border-radius: 8px !important;
  transition: transform 0.18s ease, color 0.15s ease !important;
  background: transparent !important;
  user-select: none !important;
  -webkit-user-select: none !important;
}

.review-star[role="radio"]:focus-visible,
.review-star[role="radio"]:focus {
  outline: 2px solid #0f172a !important;
  outline-offset: 2px !important;
  background: rgba(0,0,0,0.06) !important;
  border-radius: 8px !important;
}

.review-star[role="radio"][aria-checked="true"],
.review-star[role="radio"].active,
.review-star[role="radio"]:hover {
  color: #f59e0b !important;
  -webkit-text-stroke: 0px transparent !important;
  text-shadow: 0 0 14px rgba(245,158,11,0.65) !important;
  transform: scale(1.22) !important;
}


/* ================================================================
   PRIORITY 4 — FORM: LABEL VISIBILITY
================================================================ */

.gate-field label {
  font-size: 14px !important;
  font-weight: 700 !important;
  color: rgba(255,255,255,0.90) !important;
  display: block !important;
}

.review-field-label {
  display: block !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #1e293b !important;
  margin-bottom: 6px !important;
}

input:focus-visible, textarea:focus-visible {
  outline: 2px solid #0f172a !important;
  outline-offset: 2px !important;
}

.gate-field input:focus,
.gate-field input:focus-visible {
  outline: 2px solid #D4A840 !important;
  outline-offset: 2px !important;
  border-color: rgba(212,168,64,0.80) !important;
  box-shadow: 0 0 0 4px rgba(212,168,64,0.18) !important;
}

#reviewName:focus, #reviewName:focus-visible,
.review-textarea:focus, .review-textarea:focus-visible {
  outline: 2px solid #0f172a !important;
  outline-offset: 2px !important;
  border-color: rgba(15,23,42,0.40) !important;
}


/* ================================================================
   PRIORITY 7 — FOCUS STATES: VISIBLE FOR ALL INTERACTIVE ELEMENTS
================================================================ */

/* Default: dark ring on light glass */
:focus-visible {
  outline: 2px solid #0f172a !important;
  outline-offset: 3px !important;
  border-radius: 6px !important;
}

/* Gate elements on dark background — white ring */
.gate-btn:focus-visible,
.gate-close:focus-visible,
#gateClose:focus-visible {
  outline: 2px solid #D4A840 !important;
  outline-offset: 3px !important;
}

.nav-link:focus-visible {
  outline: 2px solid #0f172a !important;
  outline-offset: 3px !important;
  background: rgba(255,255,255,0.20) !important;
}

.nav-resume-btn:focus-visible,
.nav-mob-toggle:focus-visible,
.nav-mob-link:focus-visible {
  outline: 2px solid #0f172a !important;
  outline-offset: 3px !important;
}

.exp-tab:focus-visible {
  outline: 2px solid #0f172a !important;
  outline-offset: 3px !important;
}

.fab-main:focus-visible,
.fab-option:focus-visible {
  outline: 2px solid #FFFFFF !important;
  outline-offset: 3px !important;
}

.footer-glass-btn:focus-visible,
.fa-btn:focus-visible,
.es-pill:focus-visible,
.ref-linkedin-btn:focus-visible,
.engage-cta-btn:focus-visible,
.erc-download:focus-visible,
.msc-btn:focus-visible,
.pdf-modal-btn:focus-visible,
.hie-modal-btn:focus-visible {
  outline: 2px solid #0f172a !important;
  outline-offset: 3px !important;
}

.engage-row:focus-visible {
  outline: 2px solid #0f172a !important;
  outline-offset: 3px !important;
  background: rgba(255,255,255,0.12) !important;
}

.review-submit-btn:focus-visible {
  outline: 2px solid #0f172a !important;
  outline-offset: 3px !important;
}

/* Skip nav */
.skip-nav-link:focus {
  top: 0 !important;
  outline: 3px solid #D4A840 !important;
  outline-offset: 0 !important;
  font-size: 16px !important;
  color: #FFFFFF !important;
}

/* Suppress outline on mouse clicks, keep for keyboard */
*:focus:not(:focus-visible) { outline: none !important; }
