/* ==========================================================================
   TequeMedia — Landing "O YouTube de Quem Vende Caro"
   Sistema visual neobrutalista TEQUEMEDIA: fundo claro, laranja #fe5b18,
   cinza #e4e3d1, preto #000. Bordas grossas, sombras duras sem desfoque,
   Bricolage Grotesque (Google Fonts) + Caveat pra anotações manuscritas.
   Nunca cor solta no código: sempre usar var(--token).
   ========================================================================== */

/* --------------------------------------------------------------------------
   0. Fontes self-hosted (sem CDN) — Bricolage Grotesque variável + Caveat.
   font-display: swap; o preload da Bricolage latin está no <head> das páginas.
   -------------------------------------------------------------------------- */
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-display: swap;
  font-weight: 200 800;
  src: url('../fonts/bricolage-latin-wght-normal.woff2') format('woff2-variations');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-display: swap;
  font-weight: 200 800;
  src: url('../fonts/bricolage-latin-ext-wght-normal.woff2') format('woff2-variations');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
    U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
    U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url('../fonts/caveat-latin-600.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}

/* --------------------------------------------------------------------------
   1. Tokens — paleta fixa da marca (só laranja, cinza, preto e branco)
   -------------------------------------------------------------------------- */
:root {
  /* Fundo e superfície */
  --color-bg: #ffffff;
  --color-surface: #ffffff;
  --color-surface-raised: #ffffff;
  --color-surface-alt: #e4e3d1;   /* cinza de apoio da marca */
  --color-surface-hover: #e4e3d1;
  --color-surface-active: #e4e3d1;
  --color-border: #000000;

  /* Texto */
  --color-ink: #000000;
  --color-text: #000000;
  --color-text-secondary: rgba(0, 0, 0, 0.74);
  --color-text-muted: rgba(0, 0, 0, 0.62);
  --color-text-disabled: rgba(0, 0, 0, 0.38);

  /* Marca */
  --color-primary: #fe5b18;
  --color-primary-hover: #fe5b18;
  --color-primary-active: #fe5b18;
  --color-on-primary: #000000;    /* texto preto sobre laranja: contraste alto */
  --color-accent: #fe5b18;        /* acento único: laranja */

  /* Foco, sempre visível na navegação por teclado */
  --color-focus-ring: #fe5b18;
  --focus-ring: 0 0 0 3px #fe5b18;

  /* Erro de formulário — paleta restrita: atenção é laranja + preto */
  --color-danger: #fe5b18;
  --color-danger-bg: #e4e3d1;
  --color-danger-text: #000000;

  /* Sombras duras: deslocadas, sem desfoque (neobrutalismo) */
  --shadow-sm: 3px 3px 0 var(--color-ink);
  --shadow-md: 5px 5px 0 var(--color-ink);
  --shadow-lg: 8px 8px 0 var(--color-ink);
  --shadow-primary: 5px 5px 0 var(--color-primary);

  /* Borda grossa padrão */
  --border-w: 2px;
  --border-w-lg: 3px;

  /* Tipografia — Bricolage Grotesque com reserva geométrica; mono retro */
  --font-sans: 'Bricolage Grotesque', Futura, 'Century Gothic', 'Segoe UI',
    Arial, sans-serif;
  --font-hand: 'Caveat', 'Segoe Script', cursive;
  --font-mono: 'Courier New', Courier, monospace;
  --fs-display: clamp(2.75rem, 6vw, 4.25rem);
  --fs-h1: clamp(2rem, 4.2vw, 2.75rem);
  --fs-h2: clamp(1.6rem, 3vw, 2.25rem);
  --fs-h3: 1.25rem;        /* 20px */
  --fs-body: 1rem;         /* 16px — corpo 16/24, altura de linha no grid de 8 */
  --fs-small: 0.875rem;    /* 14px */
  --fs-micro: 0.8125rem;   /* 13px */
  --lh-display: 1.02;
  --lh-h1: 1.08;
  --lh-h2: 1.15;
  --lh-h3: 1.2;            /* 24px em 20px */
  --lh-body: 1.5;          /* 24px em 16px */

  /* Raio de borda — cantos retos, estética neobrutalista */
  --radius-sm: 0;
  --radius-md: 0;
  --radius-lg: 0;
  --radius-xl: 0;
  --radius-full: 0;

  /* Espaçamento — escala base 4px */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;
  --space-24: 96px;

  /* Layout */
  --container-max: 1120px;
  --container-narrow: 720px;
  --container-pad: var(--space-6);

  /* Papel quadriculado retro (hero) */
  --grid-paper:
    linear-gradient(rgba(0, 0, 0, 0.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0, 0, 0, 0.07) 1px, transparent 1px);
}

/* --------------------------------------------------------------------------
   2. Reset enxuto e base
   -------------------------------------------------------------------------- */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  /* Âncoras (#form) e foco por teclado nunca escondem atrás do header sticky */
  scroll-padding-top: 96px;
}

body {
  font-family: var(--font-sans);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  color: var(--color-text);
  background-color: var(--color-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  min-height: 100vh;
}

::selection {
  background-color: var(--color-primary);
  color: var(--color-ink);
}

img,
svg,
picture {
  max-width: 100%;
  display: block;
}

a {
  color: var(--color-ink);
  text-decoration: underline;
  text-decoration-color: var(--color-primary);
  text-decoration-thickness: 2px;
  text-underline-offset: 2px;
}
a:hover {
  background-color: var(--color-primary);
  text-decoration: none;
}

ul,
ol {
  list-style: none;
}

button,
input,
select,
textarea {
  font: inherit;
  color: inherit;
}

:where(h1, h2, h3) {
  font-weight: 800;
  line-height: var(--lh-h1);
  letter-spacing: -0.01em;
  text-wrap: balance;
}

/* Números sempre com largura tabular */
.tabular {
  font-variant-numeric: tabular-nums;
}

/* Marca-texto laranja sobre palavra-chave (traço de canetão da marca) */
.hl {
  background-color: var(--color-primary);
  color: var(--color-ink);
  padding: 0 0.14em;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

/* Rabisco laranja sob a palavra (SVG inline, sem dependência) */
.scribble {
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 12' preserveAspectRatio='none'><path d='M2 8 Q 18 2 34 7 T 66 7 T 98 6 T 118 7' fill='none' stroke='%23fe5b18' stroke-width='6' stroke-linecap='round'/></svg>")
    bottom left / 100% 0.4em no-repeat;
  padding-bottom: 0.32em;
}

/* --------------------------------------------------------------------------
   3. Foco — anel laranja sempre visível no teclado
   -------------------------------------------------------------------------- */
:focus-visible {
  outline: 3px solid var(--color-focus-ring);
  outline-offset: 2px;
}
/* Remove o outline só quando o foco veio do mouse (mantém no teclado) */
:focus:not(:focus-visible) {
  outline: none;
}

/* Acessibilidade — conteúdo só para leitor de tela */
.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;
}

.skip-link {
  position: absolute;
  left: var(--space-4);
  top: -100px;
  z-index: 100;
  padding: var(--space-2) var(--space-4);
  background: var(--color-ink);
  color: var(--color-bg);
  border: var(--border-w) solid var(--color-ink);
  box-shadow: var(--shadow-primary);
  font-weight: 700;
  transition: top 0.15s ease;
}
.skip-link:focus {
  top: var(--space-4);
  text-decoration: none;
}

/* --------------------------------------------------------------------------
   4. Layout — container, section
   -------------------------------------------------------------------------- */
.container {
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-pad);
}
.container--narrow {
  max-width: var(--container-narrow);
}

.section {
  padding-block: var(--space-16);
}
.section--tight {
  padding-block: var(--space-12);
}
/* Fundos alternados: cinza de apoio (ex-night) e branco (ex-prússia) */
.section--night {
  background-color: var(--color-surface-alt);
  border-block: var(--border-w-lg) solid var(--color-ink);
}
.section--prussia {
  background-color: var(--color-bg);
}

.section__title {
  font-size: var(--fs-h2);
  line-height: var(--lh-h2);
  font-weight: 800;
  margin-bottom: var(--space-4);
  max-width: 26ch;
}
.section__lead {
  font-size: var(--fs-body);
  color: var(--color-text-secondary);
  max-width: 60ch;
}

/* Marcador de placeholder de conteúdo/prova — anotação manuscrita */
.placeholder-slot {
  border: var(--border-w) dashed var(--color-ink);
  padding: var(--space-6);
  color: var(--color-text-muted);
  font-family: var(--font-hand);
  font-size: 1.35rem;
  line-height: 1.3;
  text-align: center;
  background-color: var(--color-surface);
}

/* Placeholder de imagem — listras retro + borda tracejada preta */
.img-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: var(--space-8);
  min-height: 220px;
  border: var(--border-w) dashed var(--color-ink);
  background: repeating-linear-gradient(
    45deg,
    var(--color-surface-alt) 0 14px,
    var(--color-surface) 14px 28px
  );
  color: var(--color-text-muted);
  font-family: var(--font-hand);
  font-size: 1.35rem;
  line-height: 1.3;
}

/* --------------------------------------------------------------------------
   5. Componentes — botão chunky (borda preta + sombra dura que desloca)
   -------------------------------------------------------------------------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-6);
  border: var(--border-w-lg) solid var(--color-ink);
  background-color: var(--color-surface);
  color: var(--color-ink);
  font-size: var(--fs-body);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  line-height: 1.2;
  cursor: pointer;
  text-decoration: none;
  box-shadow: 4px 4px 0 var(--color-ink);
  transition: transform 0.1s ease, box-shadow 0.1s ease;
}
.btn:hover {
  text-decoration: none;
  background-color: var(--color-surface);
  transform: translate(-2px, -2px);
  box-shadow: 6px 6px 0 var(--color-ink);
}
.btn:active {
  transform: translate(3px, 3px);
  box-shadow: 0 0 0 var(--color-ink);
}
.btn[disabled],
.btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.btn--primary {
  background-color: var(--color-primary);
  color: var(--color-on-primary);
}
.btn--primary:hover {
  background-color: var(--color-primary);
}
.btn--primary:active {
  background-color: var(--color-primary);
}

.btn--secondary {
  background-color: var(--color-surface);
  color: var(--color-ink);
}
.btn--secondary:hover {
  background-color: var(--color-surface-alt);
}

.btn--block {
  display: flex;
  width: 100%;
}

.btn--lg {
  padding: var(--space-4) var(--space-8);
  font-size: 1.125rem; /* 18px */
}

/* --------------------------------------------------------------------------
   6. Componentes — card (borda preta grossa + sombra dura)
   -------------------------------------------------------------------------- */
.card {
  background-color: var(--color-surface);
  border: var(--border-w-lg) solid var(--color-ink);
  box-shadow: var(--shadow-md);
  padding: var(--space-6);
}
.card--feature {
  padding: var(--space-8);
  background-color: var(--color-surface-alt);
  box-shadow: 8px 8px 0 var(--color-primary);
}
.card__title {
  font-size: var(--fs-h3);
  line-height: var(--lh-h3);
  font-weight: 800;
  margin-bottom: var(--space-2);
}
.card__body {
  color: var(--color-text-secondary);
}

/* Stat card (prova, cap.2) — número gigante preto, sombra laranja */
.stat {
  background-color: var(--color-surface);
  border: var(--border-w-lg) solid var(--color-ink);
  box-shadow: var(--shadow-primary);
  padding: var(--space-6);
}
.stat__number {
  font-size: var(--fs-display);
  line-height: var(--lh-display);
  font-weight: 800;
  color: var(--color-ink);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
}
.stat__label {
  margin-top: var(--space-3);
  font-size: var(--fs-small);
  color: var(--color-text-secondary);
}

/* Badge / tag — etiqueta mono retro com borda preta */
.badge {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  padding: var(--space-1) var(--space-3);
  font-family: var(--font-mono);
  font-size: var(--fs-micro);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  border: var(--border-w) solid var(--color-ink);
  background-color: var(--color-surface-alt);
  color: var(--color-ink);
  box-shadow: var(--shadow-sm);
}
.badge--accent {
  background-color: var(--color-primary);
  color: var(--color-on-primary);
}

/* Callout — nota de destaque com barra lateral laranja */
.callout {
  border: var(--border-w-lg) solid var(--color-ink);
  border-left: 10px solid var(--color-primary);
  background-color: var(--color-surface);
  box-shadow: var(--shadow-sm);
  padding: var(--space-4) var(--space-6);
  color: var(--color-text-secondary);
  font-size: var(--fs-small);
}

/* Value stack — lista numerada dos capítulos (sumário real) */
.stack-list {
  counter-reset: stack;
  display: grid;
  gap: var(--space-3);
}
.stack-list li {
  counter-increment: stack;
  display: flex;
  align-items: baseline;
  gap: var(--space-4);
  background-color: var(--color-surface);
  border: var(--border-w) solid var(--color-ink);
  box-shadow: var(--shadow-sm);
  padding: var(--space-4) var(--space-6);
}
.stack-list li::before {
  content: counter(stack, decimal-leading-zero);
  font-family: var(--font-mono);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  /* Preto, não laranja: 16px sobre branco precisa de 4.5:1 (AA) */
  color: var(--color-ink);
  flex-shrink: 0;
}

/* Card de desculpa (cap.4) — número em bloco laranja + objeção + virada */
.excuse {
  background-color: var(--color-surface);
  border: var(--border-w-lg) solid var(--color-ink);
  box-shadow: var(--shadow-md);
  padding: var(--space-6);
}
.excuse__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: var(--border-w) solid var(--color-ink);
  background-color: var(--color-primary);
  color: var(--color-on-primary);
  font-family: var(--font-mono);
  font-size: var(--fs-body);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  box-shadow: var(--shadow-sm);
  margin-bottom: var(--space-3);
}
.excuse__quote {
  font-size: var(--fs-h3);
  line-height: var(--lh-h3);
  font-weight: 800;
  margin-bottom: var(--space-2);
}
.excuse__body {
  color: var(--color-text-secondary);
}

/* Grid utilitário para cards/stats */
.grid {
  display: grid;
  gap: var(--space-6);
}
.grid--2 { grid-template-columns: repeat(2, 1fr); }
.grid--3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 860px) {
  .grid--2,
  .grid--3 { grid-template-columns: 1fr; }
}

/* --------------------------------------------------------------------------
   7. Componentes — formulário (input, select, checkbox, label, erro)
   -------------------------------------------------------------------------- */
.field {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  margin-bottom: var(--space-4);
}
.label {
  font-family: var(--font-mono);
  font-size: var(--fs-micro);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-ink);
}
.label .req {
  /* Preto: asterisco de 13px em laranja sobre branco fica em ~3.1:1 e falha AA */
  color: var(--color-ink);
}

.input,
.select {
  width: 100%;
  padding: var(--space-3) var(--space-4);
  background-color: var(--color-surface);
  color: var(--color-ink);
  border: var(--border-w) solid var(--color-ink);
  border-radius: 0;
  line-height: 1.4;
  transition: box-shadow 0.1s ease;
}
.input::placeholder {
  color: var(--color-text-muted);
}
.input:hover,
.select:hover {
  box-shadow: var(--shadow-sm);
}
.input:focus,
.select:focus {
  outline: none;
  border-color: var(--color-ink);
  box-shadow: 4px 4px 0 var(--color-primary);
}
.input[aria-invalid='true'],
.select[aria-invalid='true'] {
  border-color: var(--color-primary);
  box-shadow: inset 0 0 0 1px var(--color-primary);
}

.select {
  appearance: none;
  -webkit-appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, var(--color-ink) 50%),
    linear-gradient(135deg, var(--color-ink) 50%, transparent 50%);
  background-position: calc(100% - 20px) center, calc(100% - 14px) center;
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
  padding-right: var(--space-12);
}

/* Checkbox de consentimento LGPD */
.checkbox {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  font-size: var(--fs-small);
  color: var(--color-text-secondary);
}
.checkbox input[type='checkbox'] {
  /* Alvo de toque mínimo 24×24 (WCAG 2.2, 2.5.8) */
  width: 24px;
  height: 24px;
  margin-top: 0;
  accent-color: var(--color-primary);
  flex-shrink: 0;
}
.checkbox a {
  color: var(--color-ink);
  text-decoration: underline;
  text-decoration-color: var(--color-primary);
}

/* Mensagem de erro inline — preto forte com marcador laranja
   (laranja nunca vira texto pequeno sobre fundo claro) */
.field__error {
  font-size: var(--fs-small);
  font-weight: 700;
  color: var(--color-danger-text);
  border-left: 4px solid var(--color-primary);
  padding-left: var(--space-2);
}

/* Aviso (ex.: ?erro=1) */
.alert {
  padding: var(--space-3) var(--space-4);
  font-size: var(--fs-small);
  font-weight: 700;
  margin-bottom: var(--space-4);
}
.alert--danger {
  background-color: var(--color-danger-bg);
  color: var(--color-danger-text);
  border: var(--border-w) solid var(--color-ink);
  border-left: 10px solid var(--color-primary);
}

/* Form de captura (lead) — card chunky nas duas posições */
.lead-form {
  background-color: var(--color-surface);
  border: var(--border-w-lg) solid var(--color-ink);
  box-shadow: var(--shadow-lg);
  padding: var(--space-8);
  text-align: left;
  max-width: 560px;
}
.lead-form--center {
  margin-inline: auto;
}
.lead-form__title {
  font-size: var(--fs-h3);
  line-height: var(--lh-h3);
  font-weight: 800;
  margin-bottom: var(--space-4);
  padding-bottom: var(--space-3);
  border-bottom: var(--border-w-lg) solid var(--color-primary);
}
.lead-form .btn[type='submit'] {
  margin-top: var(--space-2);
}

/* Honeypot — off-screen, fora do fluxo e do foco (SPEC §5) */
.hp-field {
  position: absolute !important;
  left: -9999px !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* --------------------------------------------------------------------------
   8. Header e footer — logo pequeno sobre fundo laranja (marca)
   -------------------------------------------------------------------------- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background-color: var(--color-primary);
  border-bottom: var(--border-w-lg) solid var(--color-ink);
}
.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  padding-block: var(--space-3);
}
/* Botão do header: branco sobre o laranja, pra saltar da faixa */
.site-header .btn--primary {
  background-color: var(--color-surface);
  color: var(--color-ink);
}
.brand {
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
  color: var(--color-ink);
  text-decoration: none;
}
.brand:hover {
  text-decoration: none;
  background-color: transparent;
}
.brand__logo {
  width: 40px;
  height: 40px;
}
.brand__name {
  font-weight: 800;
  font-size: var(--fs-h3);
  letter-spacing: -0.01em;
  text-transform: uppercase;
}
/* Header estreito: marca não encolhe; botão compacta pra caber ao lado */
.site-header .brand {
  flex-shrink: 0;
}
@media (max-width: 480px) {
  .brand__logo {
    width: 32px;
    height: 32px;
  }
  .brand__name {
    font-size: var(--fs-body);
  }
  .site-header .btn {
    padding: var(--space-2) var(--space-3);
    font-size: var(--fs-small);
    box-shadow: 3px 3px 0 var(--color-ink);
  }
}

.site-footer {
  background-color: var(--color-surface-alt);
  border-top: var(--border-w-lg) solid var(--color-ink);
  padding-block: var(--space-12);
  color: var(--color-text-secondary);
  font-size: var(--fs-small);
}
.site-footer__inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}
.site-footer__links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
}
.site-footer__links a {
  color: var(--color-ink);
  /* Alvo de toque ≥24px de altura */
  display: inline-block;
  padding-block: var(--space-2);
}
.site-footer__legal {
  color: var(--color-text-muted);
  font-family: var(--font-mono);
  font-size: var(--fs-micro);
}

/* --------------------------------------------------------------------------
   9. Hero — papel quadriculado retro + título display gigante
   -------------------------------------------------------------------------- */
.hero {
  background-color: var(--color-bg);
  background-image: var(--grid-paper);
  background-size: 32px 32px;
  padding-block: var(--space-16);
}
.hero__grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: var(--space-12);
  align-items: center;
}
.hero__title {
  margin-top: var(--space-4);
  font-size: var(--fs-display);
  line-height: var(--lh-display);
  font-weight: 800;
  letter-spacing: -0.02em;
}
.hero__subtitle {
  margin-top: var(--space-4);
  font-size: var(--fs-h3);
  font-weight: 500;
  color: var(--color-text-secondary);
  max-width: 44ch;
}
/* Preço como etiqueta: bloco preto com sombra laranja */
.hero__price {
  display: inline-block;
  margin-top: var(--space-6);
  padding: var(--space-2) var(--space-4);
  font-size: var(--fs-h2);
  font-weight: 800;
  background-color: var(--color-ink);
  color: var(--color-bg);
  box-shadow: var(--shadow-primary);
}
@media (max-width: 860px) {
  .hero__grid { grid-template-columns: 1fr; gap: var(--space-8); }
  .hero__title { font-size: 2.25rem; }
}

/* --------------------------------------------------------------------------
   10. Preferência de movimento reduzido
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
