/* nobleclean.at - CRO/A11y-Patch (24.09.2026), WCAG 2.2 AA. Rollback: nobleclean-a11y-enqueue.php deaktivieren. */

/* 1. Mint auf hellen Flaechen -> #047857 (4,83-5,48:1) */
.nc-faq-contact-box .nc-btn-ghost-mint,
.nc-faq-contact-box .nc-btn-ghost-mint span,
.nc-hover-indicator-pill,
.nc-hover-indicator-pill span,
.nc-benefit-card .nc-benefit-check-icon,
.nc-faq-card .nc-benefit-check-icon,
.nc-grid-3 > .nc-card > div:first-child:not(.nc-card-icon) {
  color: #047857 !important;
}
.nc-page-wrap .nc-sec:not(.nc-dark-sec) .nc-sec-badge {
  color: #047857 !important;
  border-color: rgba(4, 120, 87, 0.35) !important;
}
.nc-dark-sec .nc-sec-badge,
.nc-hero2 .nc-sec-badge,
.nc-hero2-after .nc-sec-badge,
.nc-cta-section .nc-sec-badge {
  color: #00D285 !important;
}

/* 2. Teal-Badges -> #0A6B62 (5,4:1) */
.nc-faq-card .nc-faq-card-badge,
.nc-grid-3 > .nc-card > .nc-card-icon,
.nc-page-wrap table thead th {
  color: #0A6B62 !important;
}

/* 3. Grau auf Weiss */
.nc-faq-card-idx { color: #64748B !important; }

/* 4. Grau auf Dunkel */
.nc-gtm-card .nc-gtm-sub,
.nc-google-trust-badge .nc-gtb-arrow,
.nc-hero-google-bar .nc-google-dot,
.nc-dark-sec table th,
.nc-dark-sec table td { color: #94A3B8 !important; }

/* 5. CTA-Link Startseite */
.nc-form-calc-link a {
  color: #7DD3FC !important;
  text-decoration: underline !important;
  text-underline-offset: 3px;
}
.nc-form-calc-link a strong { color: #FFFFFF !important; }

/* 6. Sterne-Glyphen */
.nc-review-stars,
[class*="review"] [class*="stars"] { color: #B45309; }

/* 7. Fokus sichtbar */
:where(a, button, [role="tab"], summary, input, select, textarea, [tabindex]):focus-visible {
  outline: 3px solid #00D285 !important;
  outline-offset: 2px !important;
  box-shadow: 0 0 0 5px #071320 !important;
}
.nc-page-wrap .nc-sec:not(.nc-dark-sec) :where(a, button, input, select, textarea):focus-visible,
.nc-faq-card :where(a, button):focus-visible {
  outline-color: #047857 !important;
  box-shadow: 0 0 0 5px #FFFFFF !important;
}
input.nc-input-field:focus,
select.nc-input-field:focus,
textarea.nc-input-field:focus {
  outline: 3px solid #00D285 !important;
  outline-offset: 1px !important;
}
.nc-slider-thumb-btn:focus-visible { outline: 3px solid #00D285 !important; outline-offset: 2px !important; }
html { scroll-padding-bottom: 96px; scroll-padding-top: 96px; }

/* 8. Mobile: nur eine Kontaktleiste; Cookie-Banner nicht verdecken */
.nc-mobile-floating-bar { display: none !important; }
body:has(.cmplz-cookiebanner.cmplz-show) .nc-mobile-sticky-bar,
body:has(.cmplz-cookiebanner.cmplz-show) .nc-mobile-bar { display: none !important; }
.nc-mobile-sticky-bar .nc-sticky-btn { min-height: 48px; }

/* 9. Formular-Fehlerzustaende */
.nc-input-field[aria-invalid="true"] { border: 2px solid #F87171 !important; }
.nc-field-error { display: block; margin-top: 6px; font-size: 13px; line-height: 1.4; color: #FCA5A5; }
.nc-form-privacy { margin-top: 12px; font-size: 12.5px; line-height: 1.5; color: #CBD5E1; }
.nc-form-privacy a { color: #7DD3FC; text-decoration: underline; }
.nc-sr-only {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* 11. Nachbesserung nach Pruefung (24.09.): hoehere Spezifitaet gegen #wp-custom-css / Theme-Inline-CSS */
:is(#nc-a11y, html) :is(#nc-a11y2, body) #nc-smart-form :is(input, select, textarea, button):focus-visible,
:is(#nc-a11y, html) :is(#nc-a11y2, body) .nc-contact-form.nc-quick-form :is(input, select, textarea, button):focus-visible,
:is(#nc-a11y, html) :is(#nc-a11y2, body) .nc-quick-form :is(input, select, textarea):focus {
  outline: 3px solid #047857 !important;
  outline-offset: 2px !important;
  box-shadow: 0 0 0 5px #FFFFFF !important;
}
:is(#nc-a11y, html) :is(#nc-a11y2, body) .nc-form-calc-link a {
  color: #7DD3FC !important;
  text-decoration: underline !important;
}
.nc-page-wrap .nc-sec-alt .nc-sec-badge,
.nc-sec-alt .nc-sec-badge {
  color: #047857 !important;
  border-color: rgba(4, 120, 87, 0.35) !important;
}
:is(#nc-a11y, html) #angebot .nc-sec-badge {
  color: #00D285 !important;
  border-color: rgba(0, 210, 133, 0.35) !important;
}
.nc-mobile-sticky-bar ~ .nc-mobile-sticky-bar { display: none !important; }

/* 10. Bewegung reduzieren */
@media (prefers-reduced-motion: reduce) {
  .nc-hero-parallax-img,
  .nc-logo-marquee-container *,
  .nc-gtm-track,
  .nc-pill-pulse,
  .nc-hero2__dot {
    animation: none !important;
    transform: none !important;
    transition: none !important;
  }
}

/* ==========================================================================
   NOBLECLEAN WCAG 2.2 AA / AAA MASTER ENHANCEMENTS (26.09.2026)
   ========================================================================== */

/**
 * ============================================================================
 * NOBLECLEAN DIE GEBÄUDEREINIGER MEISTERBETRIEB WIEN (2026)
 * MASTER ACCESSIBILITY, CONTRAST & FOCUS ENGINE
 * ============================================================================
 * Standards:     WCAG 2.2 Level AA / Level AAA Compliance
 *                ÖNORM D 2050 & E-E-A-T Quality Guidelines
 * Framework:     WordPress + Kadence Theme & Kadence Blocks
 * Child Theme:   Kadence NobleClean (wp-child-theme-kadence-nobleclean)
 *
 * Core Fixes:
 * - Fix A11Y-03: Gold Contrast Repair (#FFB800 on #071320 = 9.40:1 AAA;
 *                Ghost Gold on #FFFFFF = #8C6500 min. 4.60:1 AA)
 * - Fix A11Y-06: Global High-Contrast :focus-visible Ring (2px #00D285,
 *                3px offset, rgba(0,210,133,0.35) glow)
 * - Fix A11Y-07: Fixed Top-Left Skip Link (.nc-skip-link:focus, z-index 999999)
 * - Standard:    Standardized .screen-reader-text / .nc-sr-only utility
 * ============================================================================
 */

/* ==========================================================================
   0. DESIGN SYSTEM TOKENS FOR ACCESSIBLE CONTRAST
   ========================================================================== */
:root {
  /* Brand Obsidian Navy (Base Dark Surface) */
  --nc-a11y-obsidian: #071320;
  --nc-a11y-navy-deep: #050E17;
  --nc-a11y-navy-card: #0E1D33;

  /* Solid Signal Gold (9.40:1 to 10.82:1 AAA Contrast with #071320) */
  --nc-a11y-gold-solid: #FFB800;
  --nc-a11y-gold-hover: #E5A600;
  --nc-a11y-gold-active: #CC9400;
  --nc-a11y-gold-glow: rgba(255, 184, 0, 0.40);

  /* Dark Gold for Light Surfaces (min. 4.60:1 AA Contrast on #FFFFFF) */
  --nc-a11y-gold-dark: #8C6500;
  --nc-a11y-gold-dark-hover: #6E4F00;
  --nc-a11y-gold-dark-active: #543C00;
  --nc-a11y-gold-dark-surface: rgba(140, 101, 0, 0.08);

  /* Conversion Mint for Focus Indicator (9.42:1 AAA on #071320) */
  --nc-a11y-mint: #00D285;
  --nc-a11y-mint-glow: rgba(0, 210, 133, 0.35);
  --nc-a11y-mint-shadow: 0 0 0 1px rgba(7, 19, 32, 0.90), 0 0 0 4px rgba(0, 210, 133, 0.35);

  /* Base Light Surfaces */
  --nc-a11y-white: #FFFFFF;
  --nc-a11y-surface-light: #FAF9F5;
}

/* ==========================================================================
   1. FIX A11Y-03: GOLD CONTRAST REPAIR (WCAG 2.2 AA / AAA)
   ==========================================================================
   Problem: Text #FFB800 on #FFFFFF has only 2.38:1 contrast (WCAG Fail).
   Solution A: Solid Gold Buttons use #FFB800 background + #071320 text (9.40:1 AAA).
   Solution B: Ghost Gold on Light Surfaces uses #8C6500 border/text (4.60:1 AA).
   Solution C: Ghost Gold on Dark Surfaces retains #FFB800 border/text (9.40:1 AAA).
   ========================================================================== */

/* --------------------------------------------------------------------------
   1.1 Solid Gold Primary CTAs (.nc-btn-primary-gold, .nc-btn-header-cta, .nc-footer-cta-btn)
   -------------------------------------------------------------------------- */
:root body .nc-btn-primary-gold,
:root body a.nc-btn-primary-gold,
:root body .nc-btn-header-cta,
:root body #masthead .nc-btn-header-cta,
:root body .site-header a[href*="/angebot/"],
:root body .nc-footer-cta-btn,
:root body a.nc-footer-cta-btn,
:root body .nc-btn-solid-gold,
:root body a.nc-btn-solid-gold {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  background: var(--nc-a11y-gold-solid) !important;
  background-color: var(--nc-a11y-gold-solid) !important;
  border: 2px solid var(--nc-a11y-gold-solid) !important;
  color: var(--nc-a11y-obsidian) !important;
  -webkit-text-fill-color: var(--nc-a11y-obsidian) !important;
  font-family: 'Space Grotesk', 'Plus Jakarta Sans', 'Manrope', -apple-system, sans-serif !important;
  font-weight: 800 !important;
  font-size: 15px !important;
  line-height: 1.25 !important;
  padding: 13px 26px !important;
  border-radius: 9999px !important;
  text-decoration: none !important;
  cursor: pointer !important;
  box-shadow: 0 4px 16px var(--nc-a11y-gold-glow) !important;
  transition: transform 0.18s cubic-bezier(0.2, 0, 0, 1),
              background-color 0.18s ease,
              border-color 0.18s ease,
              box-shadow 0.18s ease !important;
  min-height: 48px !important; /* WCAG 2.5.8 Target Size */
  box-sizing: border-box !important;
}

/* Force dark text & strokes on all nested children in solid gold buttons */
:root body .nc-btn-primary-gold *,
:root body a.nc-btn-primary-gold *,
:root body .nc-btn-header-cta *,
:root body #masthead .nc-btn-header-cta *,
:root body .site-header a[href*="/angebot/"] *,
:root body .nc-footer-cta-btn *,
:root body a.nc-footer-cta-btn *,
:root body .nc-btn-solid-gold * {
  color: var(--nc-a11y-obsidian) !important;
  -webkit-text-fill-color: var(--nc-a11y-obsidian) !important;
  font-weight: 800 !important;
}

:root body .nc-btn-primary-gold svg,
:root body a.nc-btn-primary-gold svg,
:root body .nc-btn-header-cta svg,
:root body #masthead .nc-btn-header-cta svg,
:root body .nc-footer-cta-btn svg,
:root body a.nc-footer-cta-btn svg,
:root body .nc-btn-solid-gold svg {
  color: var(--nc-a11y-obsidian) !important;
  stroke: var(--nc-a11y-obsidian) !important;
  fill: none !important;
  transition: transform 0.2s ease !important;
}

/* Hover State: Solid Gold Buttons */
@media (hover: hover) and (pointer: fine) {
  :root body .nc-btn-primary-gold:hover,
  :root body a.nc-btn-primary-gold:hover,
  :root body .nc-btn-header-cta:hover,
  :root body #masthead .nc-btn-header-cta:hover,
  :root body .site-header a[href*="/angebot/"]:hover,
  :root body .nc-footer-cta-btn:hover,
  :root body a.nc-footer-cta-btn:hover,
  :root body .nc-btn-solid-gold:hover,
  :root body a.nc-btn-solid-gold:hover {
    background: var(--nc-a11y-gold-hover) !important;
    background-color: var(--nc-a11y-gold-hover) !important;
    border-color: var(--nc-a11y-gold-hover) !important;
    color: var(--nc-a11y-obsidian) !important;
    -webkit-text-fill-color: var(--nc-a11y-obsidian) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 26px rgba(255, 184, 0, 0.50) !important;
  }

  :root body .nc-btn-primary-gold:hover svg,
  :root body a.nc-btn-primary-gold:hover svg,
  :root body .nc-btn-header-cta:hover svg,
  :root body #masthead .nc-btn-header-cta:hover svg,
  :root body .nc-footer-cta-btn:hover svg,
  :root body a.nc-footer-cta-btn:hover svg,
  :root body .nc-btn-solid-gold:hover svg {
    stroke: var(--nc-a11y-obsidian) !important;
    transform: translateX(3px) !important;
  }
}

/* Active State: Tactile Compression */
:root body .nc-btn-primary-gold:active,
:root body a.nc-btn-primary-gold:active,
:root body .nc-btn-header-cta:active,
:root body #masthead .nc-btn-header-cta:active,
:root body .nc-footer-cta-btn:active,
:root body a.nc-footer-cta-btn:active,
:root body .nc-btn-solid-gold:active,
:root body a.nc-btn-solid-gold:active {
  transform: translateY(0) scale(0.97) !important;
  background: var(--nc-a11y-gold-active) !important;
  background-color: var(--nc-a11y-gold-active) !important;
  color: var(--nc-a11y-obsidian) !important;
  -webkit-text-fill-color: var(--nc-a11y-obsidian) !important;
  box-shadow: 0 2px 8px rgba(255, 184, 0, 0.35) !important;
}

/* --------------------------------------------------------------------------
   1.2 Ghost Gold Buttons on LIGHT Surfaces (.nc-btn-ghost-gold)
   Contrast #8C6500 on #FFFFFF = 4.60:1 to 5.30:1 (WCAG 2.2 AA Pass)
   -------------------------------------------------------------------------- */
:root body .nc-btn-ghost-gold,
:root body a.nc-btn-ghost-gold,
:root body .nc-btn-ghost-gold-light,
:root body a.nc-btn-ghost-gold-light,
:root body .nc-sec:not(.nc-dark-sec) .nc-btn-ghost-gold,
:root body .nc-page-wrap .nc-sec:not(.nc-dark-sec) a.nc-btn-ghost-gold,
:root body .entry-content a.nc-btn-ghost-gold,
:root body .nc-container:not(.nc-dark-sec) a.nc-btn-ghost-gold {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  background: transparent !important;
  background-color: transparent !important;
  border: 2px solid var(--nc-a11y-gold-dark) !important;
  color: var(--nc-a11y-gold-dark) !important;
  -webkit-text-fill-color: var(--nc-a11y-gold-dark) !important;
  font-family: 'Space Grotesk', 'Plus Jakarta Sans', 'Manrope', -apple-system, sans-serif !important;
  font-weight: 750 !important;
  font-size: 15px !important;
  line-height: 1.25 !important;
  padding: 13px 26px !important;
  border-radius: 9999px !important;
  text-decoration: none !important;
  cursor: pointer !important;
  transition: transform 0.18s cubic-bezier(0.2, 0, 0, 1),
              background-color 0.18s ease,
              border-color 0.18s ease,
              color 0.18s ease,
              box-shadow 0.18s ease !important;
  min-height: 48px !important;
  box-sizing: border-box !important;
}

:root body .nc-btn-ghost-gold *,
:root body a.nc-btn-ghost-gold *,
:root body .nc-sec:not(.nc-dark-sec) .nc-btn-ghost-gold *,
:root body .entry-content a.nc-btn-ghost-gold * {
  color: var(--nc-a11y-gold-dark) !important;
  -webkit-text-fill-color: var(--nc-a11y-gold-dark) !important;
}

:root body .nc-btn-ghost-gold svg,
:root body a.nc-btn-ghost-gold svg,
:root body .nc-sec:not(.nc-dark-sec) .nc-btn-ghost-gold svg,
:root body .entry-content a.nc-btn-ghost-gold svg {
  stroke: var(--nc-a11y-gold-dark) !important;
  color: var(--nc-a11y-gold-dark) !important;
  fill: none !important;
  transition: stroke 0.18s ease, transform 0.2s ease !important;
}

/* Hover State: Ghost Gold on Light Surfaces -> Inverted Accessible Contrast */
@media (hover: hover) and (pointer: fine) {
  :root body .nc-btn-ghost-gold:hover,
  :root body a.nc-btn-ghost-gold:hover,
  :root body .nc-sec:not(.nc-dark-sec) .nc-btn-ghost-gold:hover,
  :root body .nc-page-wrap .nc-sec:not(.nc-dark-sec) a.nc-btn-ghost-gold:hover,
  :root body .entry-content a.nc-btn-ghost-gold:hover {
    background: var(--nc-a11y-gold-dark) !important;
    background-color: var(--nc-a11y-gold-dark) !important;
    border-color: var(--nc-a11y-gold-dark) !important;
    color: var(--nc-a11y-white) !important;
    -webkit-text-fill-color: var(--nc-a11y-white) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 22px rgba(140, 101, 0, 0.30) !important;
  }

  :root body .nc-btn-ghost-gold:hover *,
  :root body a.nc-btn-ghost-gold:hover *,
  :root body .nc-sec:not(.nc-dark-sec) .nc-btn-ghost-gold:hover *,
  :root body .entry-content a.nc-btn-ghost-gold:hover * {
    color: var(--nc-a11y-white) !important;
    -webkit-text-fill-color: var(--nc-a11y-white) !important;
  }

  :root body .nc-btn-ghost-gold:hover svg,
  :root body a.nc-btn-ghost-gold:hover svg,
  :root body .nc-sec:not(.nc-dark-sec) .nc-btn-ghost-gold:hover svg,
  :root body .entry-content a.nc-btn-ghost-gold:hover svg {
    stroke: var(--nc-a11y-white) !important;
    color: var(--nc-a11y-white) !important;
    transform: translateX(3px) !important;
  }
}

/* Active State: Ghost Gold on Light Surfaces */
:root body .nc-btn-ghost-gold:active,
:root body a.nc-btn-ghost-gold:active,
:root body .nc-sec:not(.nc-dark-sec) .nc-btn-ghost-gold:active,
:root body .entry-content a.nc-btn-ghost-gold:active {
  transform: translateY(0) scale(0.97) !important;
  background: var(--nc-a11y-gold-dark-active) !important;
  border-color: var(--nc-a11y-gold-dark-active) !important;
  color: var(--nc-a11y-white) !important;
  -webkit-text-fill-color: var(--nc-a11y-white) !important;
}

/* --------------------------------------------------------------------------
   1.3 Ghost Gold Buttons on DARK Surfaces (Explicit Dark Context Overrides)
   Contrast #FFB800 on #071320 = 9.40:1 (WCAG AAA Pass)
   -------------------------------------------------------------------------- */
:root body .nc-dark-sec .nc-btn-ghost-gold,
:root body .nc-hero-wireframe .nc-btn-ghost-gold,
:root body .nc-hero2 .nc-btn-ghost-gold,
:root body .nc-cta-box-master-dark .nc-btn-ghost-gold,
:root body .nc-footer-wrapper .nc-btn-ghost-gold,
:root body #masthead .nc-btn-ghost-gold {
  background: transparent !important;
  background-color: transparent !important;
  border: 2px solid var(--nc-a11y-gold-solid) !important;
  color: var(--nc-a11y-gold-solid) !important;
  -webkit-text-fill-color: var(--nc-a11y-gold-solid) !important;
}

:root body .nc-dark-sec .nc-btn-ghost-gold *,
:root body .nc-hero-wireframe .nc-btn-ghost-gold *,
:root body .nc-cta-box-master-dark .nc-btn-ghost-gold *,
:root body .nc-footer-wrapper .nc-btn-ghost-gold * {
  color: var(--nc-a11y-gold-solid) !important;
  -webkit-text-fill-color: var(--nc-a11y-gold-solid) !important;
}

:root body .nc-dark-sec .nc-btn-ghost-gold svg,
:root body .nc-hero-wireframe .nc-btn-ghost-gold svg,
:root body .nc-cta-box-master-dark .nc-btn-ghost-gold svg,
:root body .nc-footer-wrapper .nc-btn-ghost-gold svg {
  stroke: var(--nc-a11y-gold-solid) !important;
  color: var(--nc-a11y-gold-solid) !important;
}

@media (hover: hover) and (pointer: fine) {
  :root body .nc-dark-sec .nc-btn-ghost-gold:hover,
  :root body .nc-hero-wireframe .nc-btn-ghost-gold:hover,
  :root body .nc-cta-box-master-dark .nc-btn-ghost-gold:hover,
  :root body .nc-footer-wrapper .nc-btn-ghost-gold:hover {
    background: var(--nc-a11y-gold-solid) !important;
    background-color: var(--nc-a11y-gold-solid) !important;
    border-color: var(--nc-a11y-gold-solid) !important;
    color: var(--nc-a11y-obsidian) !important;
    -webkit-text-fill-color: var(--nc-a11y-obsidian) !important;
    box-shadow: 0 0 24px rgba(255, 184, 0, 0.45) !important;
  }

  :root body .nc-dark-sec .nc-btn-ghost-gold:hover *,
  :root body .nc-cta-box-master-dark .nc-btn-ghost-gold:hover *,
  :root body .nc-footer-wrapper .nc-btn-ghost-gold:hover * {
    color: var(--nc-a11y-obsidian) !important;
    -webkit-text-fill-color: var(--nc-a11y-obsidian) !important;
  }

  :root body .nc-dark-sec .nc-btn-ghost-gold:hover svg,
  :root body .nc-cta-box-master-dark .nc-btn-ghost-gold:hover svg,
  :root body .nc-footer-wrapper .nc-btn-ghost-gold:hover svg {
    stroke: var(--nc-a11y-obsidian) !important;
  }
}

/* ==========================================================================
   2. FIX A11Y-06: GLOBAL HIGH-CONTRAST :focus-visible RING
   ==========================================================================
   Specification:
   - Outline: 2px solid Nobleclean-Mint (#00D285)
   - Outline-offset: 3px
   - Box-Shadow Glow: rgba(0, 210, 133, 0.35)
   - Anti-Pattern Fix: Decisively neutralizes "outline: none !important"
     and Kadence "body.hide-focus-outline *:focus" for keyboard navigation.
   ========================================================================== */

/* Universal Focus-Visible Rule across ALL Interactive Elements */
:root body :is(
  a,
  button,
  input,
  select,
  textarea,
  [tabindex]:not([tabindex="-1"]),
  [role="button"],
  [role="tab"],
  [role="link"],
  summary,
  details > summary
):focus-visible,
body.hide-focus-outline :is(
  a,
  button,
  input,
  select,
  textarea,
  [tabindex]:not([tabindex="-1"]),
  [role="button"],
  [role="tab"],
  [role="link"],
  summary
):focus-visible {
  outline: 2px solid var(--nc-a11y-mint) !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 1px rgba(7, 19, 32, 0.85), 0 0 0 4px var(--nc-a11y-mint-glow) !important;
  border-radius: 4px;
  transition: outline-offset 0.12s ease, box-shadow 0.12s ease !important;
}

/* Rounded Buttons Focus Ring Customization */
:root body :is(
  .nc-btn-primary-gold,
  .nc-btn-ghost-gold,
  .nc-btn-header-cta,
  .nc-footer-cta-btn,
  .nc-btn-haptic,
  .nc-btn-primary,
  .nc-btn-ghost-mint,
  .nc-btn-ghost-white,
  .nc-btn-ghost-dark,
  .wp-block-button__link,
  .kt-button
):focus-visible {
  border-radius: 9999px !important;
  outline: 2px solid var(--nc-a11y-mint) !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 1px rgba(7, 19, 32, 0.90), 0 0 0 5px var(--nc-a11y-mint-glow) !important;
}

/* Form Controls Rigorous Focus Override (Neutralizes Legacy outline:none) */
:root body :is(
  input[type="text"],
  input[type="email"],
  input[type="tel"],
  input[type="number"],
  input[type="url"],
  input[type="password"],
  input[type="search"],
  select,
  textarea,
  .nc-input-field
):focus-visible,
:root body .nc-hero-form-card :is(input, select, textarea):focus-visible,
:root body .nc-quick-form :is(input, select, textarea):focus-visible {
  outline: 2px solid var(--nc-a11y-mint) !important;
  outline-offset: 2px !important;
  border-color: var(--nc-a11y-mint) !important;
  box-shadow: 0 0 0 1px rgba(7, 19, 32, 0.95), 0 0 0 4px var(--nc-a11y-mint-glow) !important;
}

/* Mouse Click Suppression (Preserves Clean UX for Pointer Users) */
:root body :is(
  a,
  button,
  input,
  select,
  textarea,
  [tabindex],
  [role="button"],
  [role="tab"],
  summary
):focus:not(:focus-visible) {
  outline: none;
}

/* WCAG 2.4.11 / 2.4.13 Focus Not Obscured (Scroll Protection against Sticky Bars) */
html {
  scroll-padding-top: 110px !important;
  scroll-padding-bottom: 96px !important;
}

/* ==========================================================================
   3. FIX A11Y-07: SKIP-LINK ARCHITECTURE (.nc-skip-link:focus)
   ==========================================================================
   Specification:
   - Hidden offscreen by default, perfectly accessible to screen readers & tabs.
   - On :focus / :focus-visible: Fixed top-left (16px), z-index 999999.
   - High contrast: Obsidian Navy (#071320) + Mint (#00D285) + Gold Accent.
   ========================================================================== */

.nc-skip-link,
a.nc-skip-link,
a.skip-link,
.skip-link.screen-reader-text {
  position: fixed !important;
  top: -120px !important;
  left: 16px !important;
  z-index: 999999 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  padding: 14px 26px !important;
  background: var(--nc-a11y-obsidian) !important;
  background-color: var(--nc-a11y-obsidian) !important;
  color: var(--nc-a11y-mint) !important;
  -webkit-text-fill-color: var(--nc-a11y-mint) !important;
  border: 2px solid var(--nc-a11y-mint) !important;
  border-radius: 12px !important;
  font-family: 'Space Grotesk', 'Plus Jakarta Sans', 'Manrope', -apple-system, sans-serif !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  letter-spacing: 0.02em !important;
  text-decoration: none !important;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.75), 0 0 24px rgba(0, 210, 133, 0.40) !important;
  opacity: 0 !important;
  pointer-events: none !important;
  clip: rect(1px, 1px, 1px, 1px) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  height: 1px !important;
  width: 1px !important;
  transition: top 0.22s cubic-bezier(0.16, 1, 0.3, 1),
              opacity 0.18s ease !important;
}

/* Focused / Visible State */
.nc-skip-link:focus,
.nc-skip-link:focus-visible,
a.nc-skip-link:focus,
a.nc-skip-link:focus-visible,
a.skip-link:focus,
a.skip-link:focus-visible,
.skip-link.screen-reader-text:focus,
.skip-link.screen-reader-text:focus-visible {
  top: 16px !important;
  left: 16px !important;
  width: auto !important;
  height: auto !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  clip: auto !important;
  clip-path: none !important;
  white-space: normal !important;
  overflow: visible !important;
  outline: 2px solid var(--nc-a11y-gold-solid) !important;
  outline-offset: 3px !important;
  box-shadow: 0 20px 48px rgba(0, 0, 0, 0.85),
              0 0 30px rgba(0, 210, 133, 0.50),
              0 0 0 1px rgba(255, 184, 0, 0.6) !important;
}

/* ==========================================================================
   4. STANDARDIZATION OF SCREENREADER UTILITY CLASSES (.screen-reader-text)
   ==========================================================================
   Specification:
   - Complete visual hiding from viewport without collapsing screen-reader accessibility.
   - Neutralizes accidental inline style="display:none" overrides.
   ========================================================================== */

.screen-reader-text,
.nc-sr-only,
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(1px, 1px, 1px, 1px) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
  word-wrap: normal !important;
}

/* Override destructive inline display:none on screen reader spans */
span.screen-reader-text[style*="display:none"],
span.screen-reader-text[style*="display: none"],
span.nc-sr-only[style*="display:none"],
span.nc-sr-only[style*="display: none"] {
  display: inline-block !important;
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(1px, 1px, 1px, 1px) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* Focusable Screen Reader Links (When focused, become fully visible) */
.screen-reader-text:focus,
.screen-reader-text:focus-visible,
.nc-sr-only:focus,
.nc-sr-only:focus-visible {
  position: fixed !important;
  top: 16px !important;
  left: 16px !important;
  width: auto !important;
  height: auto !important;
  padding: 14px 26px !important;
  margin: 0 !important;
  overflow: visible !important;
  clip: auto !important;
  clip-path: none !important;
  white-space: normal !important;
  background-color: var(--nc-a11y-obsidian) !important;
  color: var(--nc-a11y-mint) !important;
  border: 2px solid var(--nc-a11y-mint) !important;
  border-radius: 12px !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
  text-decoration: none !important;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.75), 0 0 24px rgba(0, 210, 133, 0.40) !important;
  outline: 2px solid var(--nc-a11y-gold-solid) !important;
  outline-offset: 3px !important;
  z-index: 999999 !important;
}

/* ==========================================================================
   5. COMPREHENSIVE CONTRAST HARMONIZATION (AUDIT-SPECIFIC TARGETS)
   ========================================================================== */

/* 5.1 Mobile Direct Call Span Contrast Fix (PageSpeed Finding c) */
:root body .nc-hero-form-card .nc-mobile-direct-call-box a.nc-btn-mobile-call > span:not([class*="badge"]),
:root body a.nc-btn-mobile-call span {
  color: var(--nc-a11y-obsidian) !important;
  -webkit-text-fill-color: var(--nc-a11y-obsidian) !important;
  font-weight: 800 !important;
}

/* 5.2 Form Footnotes & Privacy Contrast (10.89:1 on Dark) */
.nc-form-privacy,
.nc-form-footnote {
  color: #CBD5E1 !important;
}
.nc-form-privacy a,
.nc-form-footnote a {
  color: #7DD3FC !important; /* 10.44:1 contrast on #0B1B2B */
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}

/* 5.3 Form Validation Error Contrast (WCAG 3.3.1) */
.nc-input-field[aria-invalid="true"],
input[aria-invalid="true"],
select[aria-invalid="true"] {
  border: 2px solid #F87171 !important; /* 5.84:1 contrast on dark card */
}
.nc-field-error {
  display: block;
  margin-top: 6px;
  font-size: 13px;
  font-weight: 600;
  color: #FCA5A5 !important; /* 8.52:1 contrast on dark surface */
}

/* ==========================================================================
   6. PREFERS-REDUCED-MOTION SAFETY GUARDS (WCAG 2.3.3)
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
  .nc-skip-link,
  a.nc-skip-link,
  a.skip-link,
  .screen-reader-text:focus {
    transition: none !important;
  }

  :root body :is(
    .nc-btn-primary-gold,
    .nc-btn-ghost-gold,
    .nc-btn-header-cta,
    .nc-footer-cta-btn
  ) {
    transition: none !important;
    transform: none !important;
  }
}
