/* Accessibility layer: focus visibility, contrast, motion controls. Loaded after all other styles. */

/* 1. Keyboard focus: cyan ring everywhere, offset so it clears dark and light grounds */
:focus { outline: none; }
:focus-visible { outline: 3px solid #2ebeef; outline-offset: 3px; border-radius: 4px; box-shadow: 0 0 0 6px rgba(6,15,24,.85); }
.site-header.overlay:not(.stuck) :focus-visible, .dk :focus-visible, .ho-below :focus-visible, .ho-hero :focus-visible { box-shadow: 0 0 0 6px rgba(6,15,24,.9); }
.site-header.stuck :focus-visible, .site-header:not(.overlay) :focus-visible, .sub :focus-visible { box-shadow: 0 0 0 6px #fff; }
.skip-link:focus-visible { outline-offset: 0; }

/* 2. Contrast: small uppercase labels and captions on dark grounds were 50-65% white (below 4.5:1) */
.fac-spec .k, .hero-b .stat .lbl, .hero-c .stat .lbl, .sc-info .specs, .ho-row .specs, .ho-row .desc,
.ho-ticker span.line, .ho-tile p, .ho-inverters .lead, .ho-cta-sec p, .ho-stat .lbl, .ho-card p,
.wx-sub, .svc-photo .cap, .dcx-feature .cap, .ho-kicker, .ho-eyebrow-muted, .footer-copy,
.pf-sub, .dk .form .form-note, .dk .muted, .dk .card p, .dk small, .ho-service-strip p, .ho-service-strip .sub,
.sc-info .desc, .ho-below .lead, .ho-manifesto .lead, .ho-factory .lead, .fc-step p, .gfx-step p, .fc-card p {
  color: rgba(255,255,255,.82) !important;
}
.pf-sub { fill: rgba(255,255,255,.82) !important; }
.footer-copy { color: rgba(255,255,255,.78) !important; }
/* cyan-on-dark kickers are fine; mint eyebrow is fine (#43efb0 ≈ 11:1). Lift the cyan one notch for 11px type. */
.ho-kicker { color: #43efb0 !important; }

/* 3. Scroll-driven cards: hidden visually until revealed, but never hidden from assistive tech. */
.ho-card, .ho-stat, [data-reveal] { visibility: visible; }

/* 4. Motion controls for autoplaying video */
.video-ctl { position: absolute; right: 18px; bottom: 18px; z-index: 5; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border-radius: 999px; border: 1px solid rgba(255,255,255,.5); background: rgba(6,15,24,.7); color: #fff; font: 700 12px/1 var(--font-btn); letter-spacing: 1.6px; text-transform: uppercase; cursor: pointer; backdrop-filter: blur(6px); }
.video-ctl:hover { border-color: #2ebeef; color: #2ebeef; }
@media (prefers-reduced-motion: reduce) { .video-ctl { display: none; } }

/* 5. External links: visible hint after text for sighted users; label is in aria-label */
a[target="_blank"]:not(.ho-pill):not(.btn)::after { content: " \2197"; font-size: .85em; }

/* 6. Touch targets: footer and submenu links reach 44px on touch devices */
@media (pointer: coarse) {
  .footer-links a, .sub li a { display: inline-block; min-height: 44px; line-height: 44px; }
}
