/* ============================================================
   IZZAT BRAND OS · Accessibility Layer (a11y.css)
   ------------------------------------------------------------
   10 utilities + media queries · agente 3 · 2026-05-16
   Carregar APÓS tokens.css e brand-os.css.
   ============================================================ */

/* ── 1. Skip-link · cross-page utility · WCAG AA contrast ───────────────────── */
.skip-link {
  position: absolute;
  top: -40px;
  left: 12px;
  z-index: 9999;
  padding: 10px 18px;
  background: var(--brand-black, #010101);
  color: #fff;
  font-family: var(--font-primary, system-ui, -apple-system, sans-serif);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  border-radius: 8px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18);
  transition: top 180ms cubic-bezier(0.2, 0, 0, 1);
}
.skip-link:focus,
.skip-link:focus-visible {
  top: 12px;
  outline: 3px solid #fff;
  outline-offset: 2px;
}

/* ── 8. Visually-hidden utility (modern clip-path) ───────── */
.visually-hidden,
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.visually-hidden-focusable:not(:focus):not(:focus-within) {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* ── 9. Focus ring · 3 variantes ─────────────────────────── */
:focus-visible {
  outline: 2px solid var(--accent, #FF6A00);
  outline-offset: 3px;
  border-radius: 4px;
}
.focus-ring-inset:focus-visible {
  outline: 2px solid var(--accent, #FF6A00);
  outline-offset: -2px;
  border-radius: inherit;
}
.focus-ring-glow:focus-visible {
  outline: none;
  box-shadow:
    0 0 0 3px rgba(255, 106, 0, 0.35),
    0 0 0 6px rgba(255, 106, 0, 0.15);
  border-radius: inherit;
}

/* ── 10. Touch target enforcer (Apple HIG 44pt) ──────────── */
[data-touch],
[data-touch] a,
[data-touch] button {
  min-width: 44px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* ── 2. High contrast preference ─────────────────────────── */
@media (prefers-contrast: more) {
  :root {
    --border: rgba(0, 0, 0, 0.65) !important;
    --text-secondary: #1d1d1f !important;
    --text-tertiary: #2c2c2e !important;
  }
  [data-theme="dark"] {
    --border: rgba(255, 255, 255, 0.65) !important;
    --text-secondary: #f5f5f7 !important;
    --text-tertiary: #d1d1d6 !important;
  }
  :focus-visible {
    outline-width: 3px;
    outline-offset: 4px;
  }
  a,
  button,
  [role="button"] {
    text-decoration-thickness: 2px;
  }
}

/* ── 3. Forced colors mode (Windows High Contrast) ───────── */
@media (forced-colors: active) {
  *,
  *::before,
  *::after {
    background-image: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
  body {
    background: Canvas !important;
    color: CanvasText !important;
  }
  a {
    color: LinkText !important;
  }
  a:visited {
    color: VisitedText !important;
  }
  button,
  .btn,
  [role="button"] {
    background: ButtonFace !important;
    color: ButtonText !important;
    border: 1px solid ButtonBorder !important;
    forced-color-adjust: none;
  }
  :focus-visible {
    outline: 3px solid Highlight !important;
    outline-offset: 2px !important;
  }
  .glass,
  [class*="glass"] {
    background: Canvas !important;
    border: 1px solid CanvasText !important;
  }
}

/* ── 4. Print stylesheet ─────────────────────────────────── */
@media print {
  *,
  *::before,
  *::after {
    background: transparent !important;
    color: #000 !important;
    box-shadow: none !important;
    text-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    filter: none !important;
  }
  html,
  body {
    background: #fff !important;
    color: #000 !important;
    font-size: 11pt;
    line-height: 1.45;
  }
  nav,
  header nav,
  .topbar,
  .side-nav,
  .nav,
  .navbar,
  footer,
  .footer,
  .cursor,
  .custom-cursor,
  [class*="cursor-"],
  .cta,
  .cta-block,
  .btn-cta,
  .floating,
  .skip-link,
  video,
  .video,
  iframe,
  [data-no-print] {
    display: none !important;
  }
  a {
    color: #000 !important;
    text-decoration: underline;
  }
  a[href^="http"]:not([href*="izzatglobal"])::after {
    content: " (" attr(href) ")";
    font-size: 9pt;
    color: #555 !important;
    word-break: break-all;
  }
  section,
  article,
  figure,
  table,
  pre {
    page-break-inside: avoid;
    break-inside: avoid;
  }
  h1,
  h2,
  h3 {
    page-break-after: avoid;
    break-after: avoid;
  }
  img {
    max-width: 100% !important;
    page-break-inside: avoid;
  }
}

/* ── 5. Auto dark mode (apenas quando NÃO há override claro) ─ */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]):not([data-theme]) {
    --bg-primary: #0a0a0c;
    --bg-secondary: #161618;
    --bg-tertiary: #1c1c1e;
    --text-primary: #f5f5f7;
    --text-secondary: #a1a1a6;
    --text-tertiary: #86868b;
    --border: rgba(255, 255, 255, 0.08);
    --glass-light: rgba(20, 20, 22, 0.65);
    --glass-strong: rgba(20, 20, 22, 0.85);
    color-scheme: dark;
  }
  :root:not([data-theme="light"]):not([data-theme]) body {
    background: var(--bg-primary);
    color: var(--text-primary);
  }
  /* accent #FF6A00 mantém — já contrasta AA em ambos modos */
}

/* ── 6. Reduced data ─ economia mobile/3G ────────────────── */
@media (prefers-reduced-data: reduce) {
  img[data-decorative],
  picture[data-decorative],
  [data-decorative-bg] {
    display: none !important;
  }
  *,
  *::before,
  *::after {
    background-image: none !important;
  }
  .particles,
  .hero-mesh,
  .hero-v2-bg,
  .grain,
  [class*="noise"] {
    display: none !important;
  }
  body,
  * {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI",
      system-ui, sans-serif !important;
  }
  video[autoplay] {
    display: none !important;
  }
}

/* ── 7. Reduced transparency ─ desliga blur/glass ────────── */
@media (prefers-reduced-transparency: reduce) {
  *,
  *::before,
  *::after {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
  .glass,
  [class*="glass"],
  .hero-v2-eyebrow,
  .topbar,
  .side-nav,
  .nav,
  .navbar {
    background: var(--bg-secondary, #f5f5f7) !important;
    border: 1px solid var(--border, rgba(0, 0, 0, 0.12)) !important;
  }
  [data-theme="dark"] .glass,
  [data-theme="dark"] [class*="glass"] {
    background: var(--bg-secondary, #161618) !important;
  }
}

/* ── Reinforce reduced-motion (defensive cross-page) ─────── */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}
