/**
 * IA QUE VENDE — Visual tokens V1
 * Status: CANONICO INTERNO V1 / publish=no
 * External production still requires channel-specific human approval.
 */

:root {
  /* CANÔNICO V1: yellow, white, black gradient and the values below. */
  --iaqv-black-origin: #050505;
  --iaqv-black: #0a0a0a;
  --iaqv-black-mineral: #101113;
  --iaqv-graphite: #171717;
  --iaqv-graphite-light: #25272b;
  --iaqv-white: #ffffff;
  --iaqv-white-warm: #f7f5ef;
  --iaqv-yellow: #f5c400;
  --iaqv-yellow-active: #ffd633;
  --iaqv-yellow-deep: #8a6700;
  --iaqv-gray-text: #5b5b55;
  --iaqv-gray-reverse: #b9b7ae;
  --iaqv-divider-light: #e4e1d8;

  --iaqv-gradient-black-hero: linear-gradient(
    135deg,
    #050505 0%,
    #0a0a0a 32%,
    #17191c 68%,
    #080808 100%
  );
  --iaqv-gradient-black-editorial:
    radial-gradient(circle at 18% 0%, rgb(255 255 255 / 7%), transparent 38%),
    linear-gradient(145deg, #080808 0%, #111214 58%, #070707 100%);

  --iaqv-color-bg: var(--iaqv-white-warm);
  --iaqv-color-surface: var(--iaqv-white);
  --iaqv-color-surface-inverse: var(--iaqv-graphite);
  --iaqv-color-text: var(--iaqv-black);
  --iaqv-color-text-muted: var(--iaqv-gray-text);
  --iaqv-color-text-inverse: var(--iaqv-white);
  --iaqv-color-text-inverse-muted: var(--iaqv-gray-reverse);
  --iaqv-color-accent: var(--iaqv-yellow);
  --iaqv-color-accent-hover: var(--iaqv-yellow-active);
  --iaqv-color-accent-text-on-light: var(--iaqv-yellow-deep);
  --iaqv-color-on-accent: var(--iaqv-black);
  --iaqv-color-border: rgb(10 10 10 / 12%);
  --iaqv-color-border-inverse: rgb(255 255 255 / 14%);

  --iaqv-font-sans: "Sora", "Inter", "Avenir Next", Arial, sans-serif;
  --iaqv-font-serif: "Source Serif 4", Georgia, "Times New Roman", serif;
  --iaqv-font-mono: "IBM Plex Mono", "SFMono-Regular", Consolas, monospace;

  --iaqv-font-size-12: 0.75rem;
  --iaqv-font-size-14: 0.875rem;
  --iaqv-font-size-16: 1rem;
  --iaqv-font-size-18: 1.125rem;
  --iaqv-font-size-22: 1.375rem;
  --iaqv-font-size-28: 1.75rem;
  --iaqv-font-size-36: 2.25rem;
  --iaqv-font-size-48: 3rem;
  --iaqv-font-size-64: 4rem;
  --iaqv-font-size-80: 5rem;

  --iaqv-line-compact: 1.05;
  --iaqv-line-heading: 1.18;
  --iaqv-line-body: 1.625;
  --iaqv-line-label: 1.333;

  --iaqv-weight-regular: 400;
  --iaqv-weight-medium: 500;
  --iaqv-weight-semibold: 650;
  --iaqv-weight-bold: 750;

  --iaqv-space-0: 0;
  --iaqv-space-1: 0.25rem;
  --iaqv-space-2: 0.5rem;
  --iaqv-space-3: 0.75rem;
  --iaqv-space-4: 1rem;
  --iaqv-space-6: 1.5rem;
  --iaqv-space-8: 2rem;
  --iaqv-space-12: 3rem;
  --iaqv-space-16: 4rem;
  --iaqv-space-20: 5rem;
  --iaqv-space-24: 6rem;
  --iaqv-space-32: 8rem;

  --iaqv-radius-control: 0.5rem;
  --iaqv-radius-card: 1rem;
  --iaqv-radius-surface: 1.5rem;
  --iaqv-radius-pill: 999px;

  --iaqv-border: 1px solid var(--iaqv-color-border);
  --iaqv-border-inverse: 1px solid var(--iaqv-color-border-inverse);
  --iaqv-shadow-card: 0 12px 36px rgb(5 5 5 / 10%);
  --iaqv-shadow-raised: 0 24px 72px rgb(5 5 5 / 16%);

  --iaqv-grid-columns-desktop: 12;
  --iaqv-grid-columns-tablet: 8;
  --iaqv-grid-columns-mobile: 4;
  --iaqv-grid-gutter-desktop: 1.5rem;
  --iaqv-grid-gutter-mobile: 1rem;
  --iaqv-page-margin-desktop: 4rem;
  --iaqv-page-margin-tablet: 2rem;
  --iaqv-page-margin-mobile: 1.25rem;
  --iaqv-content-max: 80rem;
  --iaqv-reading-max: 62ch;

  --iaqv-duration-instant: 120ms;
  --iaqv-duration-fast: 200ms;
  --iaqv-duration-base: 320ms;
  --iaqv-duration-slow: 480ms;
  --iaqv-ease-standard: cubic-bezier(0.2, 0.8, 0.2, 1);

  --iaqv-focus-dark: 0 0 0 3px var(--iaqv-yellow);
  --iaqv-focus-light:
    0 0 0 2px var(--iaqv-black),
    0 0 0 4px var(--iaqv-yellow);
}

/* Reference primitives. Keep opt-in to avoid global side effects. */
.iaqv-surface-hero {
  color: var(--iaqv-color-text-inverse);
  background: var(--iaqv-gradient-black-hero);
}

.iaqv-surface-editorial {
  color: var(--iaqv-color-text-inverse);
  background: var(--iaqv-gradient-black-editorial);
}

.iaqv-focusable:focus-visible {
  outline: none;
  box-shadow: var(--iaqv-focus-light);
}

.iaqv-surface-hero .iaqv-focusable:focus-visible,
.iaqv-surface-editorial .iaqv-focusable:focus-visible {
  box-shadow: var(--iaqv-focus-dark);
}

.iaqv-button-primary {
  min-block-size: 3rem;
  padding: var(--iaqv-space-3) var(--iaqv-space-6);
  color: var(--iaqv-color-on-accent);
  font: var(--iaqv-weight-semibold) var(--iaqv-font-size-16) / 1 var(--iaqv-font-sans);
  background: var(--iaqv-color-accent);
  border: 1px solid var(--iaqv-black);
  border-radius: var(--iaqv-radius-control);
  transition:
    background-color var(--iaqv-duration-fast) var(--iaqv-ease-standard),
    transform var(--iaqv-duration-fast) var(--iaqv-ease-standard);
}

.iaqv-button-primary:hover {
  background: var(--iaqv-color-accent-hover);
}

.iaqv-button-primary:active {
  transform: translateY(1px);
}

@media (max-width: 47.999rem) {
  :root {
    --iaqv-font-size-80: 2.75rem;
    --iaqv-font-size-64: 2.75rem;
    --iaqv-font-size-48: 2.375rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .iaqv-scope *,
  .iaqv-scope *::before,
  .iaqv-scope *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}

@media (forced-colors: active) {
  .iaqv-button-primary {
    color: ButtonText;
    background: ButtonFace;
    border-color: ButtonText;
  }

  .iaqv-focusable:focus-visible {
    outline: 2px solid Highlight;
    outline-offset: 3px;
    box-shadow: none;
  }
}
