/*
Theme Name: Amir F. Faria
Theme URI: https://amirffaria.com.br
Author: AFF
Author URI: https://amirffaria.com.br
Description: Block theme editorial: luxe minimal, ink + paper + âmbar.
Version: 1.1.0
Requires at least: 6.4
Requires PHP: 8.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: aff
Tags: block-theme, editorial, full-site-editing, one-column, custom-colors,
      custom-typography, dark-mode, blog, portfolio, news
*/

/* ════════════════════════════════════════════════════════════════════
   AFF · Design tokens
   theme.json já expõe estes valores como --wp--preset-- variáveis.
   Este arquivo complementa com tokens internos e utilitárias.
   ════════════════════════════════════════════════════════════════════ */

:root {
  /* Cor — repete o que está em theme.json para uso em CSS custom */
  --aff-ink:        #0c0c0c;
  --aff-paper:      #ECE7DA;
  --aff-gold:       #E8B500;
  --aff-gold-soft:  rgba(232,181,21,0.18);
  --aff-card:       #141414;
  --aff-sub:        rgba(236,231,218,0.5);
  --aff-faint:      rgba(236,231,218,0.12);

  /* Light-mode override (aplicado via data-theme="light") */
  --aff-bg:         var(--aff-ink);
  --aff-fg:         var(--aff-paper);

  /* Tipografia */
  --aff-font-display: 'Sora', system-ui, -apple-system, sans-serif;
  --aff-font-accent:  'JetBrains Mono', ui-monospace, monospace;

  /* Escala — referencia theme.json font sizes */
  --aff-fs-xs:    11px;
  --aff-fs-sm:    13px;
  --aff-fs-base:  16px;
  --aff-fs-md:    19px;
  --aff-fs-lg:    24px;
  --aff-fs-xl:    36px;
  --aff-fs-2xl:   56px;
  --aff-fs-3xl:   88px;
  --aff-fs-4xl:   124px;

  /* Tracking */
  --aff-tracking-tight:  -0.04em;
  --aff-tracking-snug:   -0.025em;
  --aff-tracking-normal: -0.005em;
  --aff-tracking-loose:   0.02em;
  --aff-tracking-wider:   0.14em;
  --aff-tracking-widest:  0.24em;

  /* Leading */
  --aff-leading-display: 0.95;
  --aff-leading-snug:    1.15;
  --aff-leading-body:    1.55;
  --aff-leading-long:    1.75;

  /* Espaçamento — 8-px scale */
  --aff-space-1:   8px;
  --aff-space-2:  16px;
  --aff-space-3:  24px;
  --aff-space-4:  32px;
  --aff-space-5:  48px;
  --aff-space-6:  64px;
  --aff-space-7:  80px;
  --aff-space-8: 120px;

  /* Padding global de seção */
  --aff-pad-x: 80px;

  /* Borders */
  --aff-hairline: 1px solid var(--aff-faint);
  --aff-border-gold: 1px solid var(--aff-gold);
}

@media (max-width: 768px) {
  :root {
    --aff-pad-x: 24px;
    --aff-fs-3xl: 56px;
    --aff-fs-4xl: 64px;
    --aff-fs-2xl: 40px;
    --aff-fs-xl:  26px;
  }
}

/* Modo claro */
[data-theme="light"] {
  --aff-ink:    #FAF7F0;
  --aff-paper:  #0c0c0c;
  --aff-card:   #ffffff;
  --aff-sub:    rgba(12,12,12,0.55);
  --aff-faint:  rgba(12,12,12,0.12);
  --aff-bg:     #FAF7F0;
  --aff-fg:     #0c0c0c;
}

/* ════════════════════════════════════════════════════════════════════
   Base
   ════════════════════════════════════════════════════════════════════ */

html { background: var(--aff-bg); }
body {
  background: var(--aff-bg);
  color: var(--aff-fg);
  font-family: var(--aff-font-display);
  font-weight: 300;
  font-size: var(--aff-fs-base);
  line-height: var(--aff-leading-body);
  letter-spacing: var(--aff-tracking-normal);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

a { color: inherit; text-decoration: none; }
a:hover { color: var(--aff-gold); }

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

/* Mídia responsiva — nunca estoura o container (desktop e mobile) */
img, svg, video, iframe, embed, object { max-width: 100%; }
img { height: auto; }
iframe { border: 0; }

/* ════════════════════════════════════════════════════════════════════
   Headings (Sora 200, tight tracking)
   ════════════════════════════════════════════════════════════════════ */

h1, h2, h3, h4, h5, h6,
.has-display-font-family { font-family: var(--aff-font-display); }

h1 { font-size: var(--aff-fs-3xl); font-weight: 200; line-height: var(--aff-leading-display); letter-spacing: var(--aff-tracking-tight); margin: 0; }
h2 { font-size: var(--aff-fs-2xl); font-weight: 200; line-height: 1.1;  letter-spacing: var(--aff-tracking-snug); margin: 0; }
h3 { font-size: var(--aff-fs-xl);  font-weight: 200; line-height: 1.15; letter-spacing: var(--aff-tracking-snug); margin: 0; }
h4 { font-size: var(--aff-fs-lg);  font-weight: 300; line-height: 1.25; letter-spacing: var(--aff-tracking-normal); margin: 0; }

em, i { font-style: italic; font-weight: 200; }

/* ════════════════════════════════════════════════════════════════════
   Componentes do design system
   Aplique como classes em qualquer block / template part.
   ════════════════════════════════════════════════════════════════════ */

/* Marca tipográfica — A · F · F */
.aff-logo {
  font-family: var(--aff-font-display);
  font-size: 17px;
  font-weight: 300;
  letter-spacing: 0.3em;
  text-transform: uppercase;
}

/* Eyebrow — pequeno rótulo mono, dourado por padrão */
.aff-eyebrow {
  font-family: var(--aff-font-accent);
  font-size: var(--aff-fs-xs);
  color: var(--aff-gold);
  letter-spacing: var(--aff-tracking-widest);
  text-transform: uppercase;
  font-weight: 400;
}
.aff-eyebrow--sub { color: var(--aff-sub); }

/* Divider — usado entre seções com step + label */
.aff-divider {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 0 var(--aff-pad-x);
}
.aff-divider__line { flex: 1; height: 1px; background: var(--aff-faint); }
.aff-divider__step,
.aff-divider__label {
  font-family: var(--aff-font-accent);
  font-size: var(--aff-fs-xs);
  letter-spacing: var(--aff-tracking-widest);
  text-transform: uppercase;
}
.aff-divider__step  { color: var(--aff-gold); }
.aff-divider__label { color: var(--aff-sub); }

/* Botões */
.aff-btn {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 14px 28px;
  font-family: var(--aff-font-display);
  font-size: var(--aff-fs-sm);
  font-weight: 500;
  letter-spacing: 0.02em;
  background: var(--aff-gold);
  color: var(--aff-ink);
  border: none;
  border-radius: 0;
  cursor: pointer;
  text-decoration: none;
}
.aff-btn:hover { color: var(--aff-ink); background: #FFD300; }
.aff-btn--secondary {
  background: transparent;
  color: var(--aff-fg);
  border: var(--aff-hairline);
}
.aff-btn--secondary:hover { color: var(--aff-fg); border-color: var(--aff-gold); }

/* Link dourado — sublinhado fino */
.aff-link {
  color: var(--aff-fg);
  border-bottom: 1px solid var(--aff-gold);
  padding-bottom: 4px;
  display: inline-flex;
  gap: 12px;
  align-items: center;
}

/* Tag / pill */
.aff-tag {
  display: inline-block;
  font-family: var(--aff-font-accent);
  font-size: var(--aff-fs-xs);
  letter-spacing: var(--aff-tracking-wider);
  text-transform: uppercase;
  padding: 6px 12px;
  border-radius: 99px;
  border: var(--aff-hairline);
  color: var(--aff-sub);
  background: transparent;
}
.aff-tag--active {
  border-color: var(--aff-gold);
  color: var(--aff-gold);
  background: rgba(232,181,21,0.08);
}

/* Card — hairline border, fundo card */
.aff-card {
  background: var(--aff-card);
  border: var(--aff-hairline);
  padding: var(--aff-space-4);
}
.aff-card--gold {
  border: var(--aff-border-gold);
  background: var(--aff-gold-soft);
}

/* Form fields no estilo "underline-only" */
.aff-form-row {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 18px 0;
  border-bottom: var(--aff-hairline);
}
.aff-form-row label {
  font-family: var(--aff-font-accent);
  font-size: 10px;
  color: var(--aff-gold);
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.aff-form-row input,
.aff-form-row select,
.aff-form-row textarea {
  background: transparent;
  border: none;
  border-radius: 0;
  color: var(--aff-fg);
  font-family: var(--aff-font-display);
  font-weight: 300;
  font-size: var(--aff-fs-md);
  letter-spacing: var(--aff-tracking-normal);
  padding: 4px 0;
  outline: none;
  appearance: none;
  width: 100%;
}

/* Drop cap — para inicial de ensaio */
.aff-dropcap::first-letter {
  font-size: 96px;
  font-family: var(--aff-font-display);
  font-weight: 200;
  line-height: 0.85;
  float: left;
  margin: 6px 16px 0 0;
  color: var(--aff-gold);
}

/* Hero — wrapper de page header com eyebrow + título grande */
.aff-page-hero {
  padding: 88px var(--aff-pad-x) 56px;
}
.aff-page-hero__eyebrow-row {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 40px;
}
.aff-page-hero__eyebrow-row::before {
  content: "";
  display: inline-block;
  width: 32px;
  height: 1px;
  background: var(--aff-gold);
}
.aff-page-hero h1 {
  font-size: clamp(48px, 8vw, 104px);
}
.aff-page-hero__subtitle {
  margin-top: var(--aff-space-4);
  font-size: var(--aff-fs-lg);
  line-height: var(--aff-leading-body);
  color: var(--aff-fg);
  font-weight: 300;
  max-width: 720px;
}
.aff-page-hero__meta {
  margin-top: var(--aff-space-5);
  padding-top: var(--aff-space-3);
  border-top: var(--aff-hairline);
  display: flex;
  gap: var(--aff-space-4);
  font-family: var(--aff-font-accent);
  font-size: var(--aff-fs-xs);
  color: var(--aff-sub);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  flex-wrap: wrap;
}

/* Section padding helper */
.aff-section { padding: var(--aff-space-6) var(--aff-pad-x); }

/* Container widths — alinhar com theme.json layout */
.aff-container       { max-width: 1280px; margin: 0 auto; }
.aff-container--prose{ max-width:  880px; margin: 0 auto; }
.aff-container--medium { max-width: 1080px; margin: 0 auto; }

/* Cabeçalho — desktop
   O bloco template-part envolve o header num <header> externo.
   O sticky precisa ficar NESSE wrapper, senão não há contexto de scroll. */
header.wp-block-template-part {
  position: sticky;
  top: 0;
  z-index: 50;
}
.aff-site-header {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  padding: 28px var(--aff-pad-x);
  background: var(--aff-bg);
  border-bottom: var(--aff-hairline);
}
.aff-site-header__nav {
  display: flex;
  gap: 28px;
  justify-content: flex-end;
  align-items: center;
  font-size: var(--aff-fs-sm);
  font-weight: 300;
  letter-spacing: 0.02em;
}
.aff-site-header__nav .current-menu-item a {
  color: var(--aff-gold);
  border-bottom: 1px solid var(--aff-gold);
  padding-bottom: 2px;
}

/* Mobile nav — header colapsa para 2 colunas; nav vira hamburger via overlayMenu */
@media (max-width: 768px) {
  .aff-site-header { grid-template-columns: auto 1fr; padding: 16px var(--aff-pad-x); }
  .aff-site-header__meta { display: none; }
  .aff-site-header__logo { justify-self: start; }
  .aff-page-hero { padding: 40px var(--aff-pad-x) 32px; }
  .aff-divider { gap: 12px; padding: 0 var(--aff-pad-x); }
}

/* Footer */
.aff-site-footer {
  border-top: var(--aff-hairline);
  margin-top: var(--aff-space-7);
  padding: var(--aff-space-6) var(--aff-pad-x) var(--aff-space-3);
}
.aff-site-footer__grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: var(--aff-space-6);
}
@media (max-width: 768px) {
  .aff-site-footer__grid { grid-template-columns: 1fr 1fr; gap: var(--aff-space-4); }
}
.aff-site-footer__legal {
  margin-top: var(--aff-space-4);
  padding-top: var(--aff-space-3);
  border-top: var(--aff-hairline);
  display: flex;
  justify-content: space-between;
  font-family: var(--aff-font-accent);
  font-size: 10px;
  color: var(--aff-sub);
  letter-spacing: var(--aff-tracking-widest);
  text-transform: uppercase;
}

/* ════════════════════════════════════════════════════════════════════
   Utilitárias de cor (úteis em block editor)
   ════════════════════════════════════════════════════════════════════ */

.has-gold-color    { color: var(--aff-gold) !important; }
.has-sub-color     { color: var(--aff-sub)  !important; }
.has-paper-color   { color: var(--aff-paper) !important; }

.has-ink-background-color   { background: var(--aff-ink); }
.has-card-background-color  { background: var(--aff-card); }
.has-gold-background-color  { background: var(--aff-gold); color: var(--aff-ink); }

/* Editor — manter consistência do block editor com o front */
.editor-styles-wrapper { background: var(--aff-ink) !important; color: var(--aff-paper); }

/* ════════════════════════════════════════════════════════════════════
   Acessibilidade
   ════════════════════════════════════════════════════════════════════ */

:focus-visible {
  outline: 2px solid var(--aff-gold);
  outline-offset: 3px;
}
.screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* ════════════════════════════════════════════════════════════════════
   AFF · Templates — estilos dos block templates e parts
   ════════════════════════════════════════════════════════════════════ */

.aff-main { display: block; }
.aff-empty { color: var(--aff-sub); font-size: var(--aff-fs-md); padding: var(--aff-space-5) 0; }

/* ── Header — meta, logo, toggle, nav ───────────────────────────────── */
.aff-site-header__meta {
  font-family: var(--aff-font-accent);
  font-size: var(--aff-fs-xs);
  color: var(--aff-sub);
  letter-spacing: var(--aff-tracking-widest);
  text-transform: uppercase;
  margin: 0;
}
.aff-site-header__logo { justify-self: center; color: var(--aff-fg); }
.aff-site-header__nav .wp-block-navigation { font-size: var(--aff-fs-sm); }
.aff-site-header__nav .wp-block-navigation a { color: var(--aff-fg); }
.aff-site-header__nav .wp-block-navigation a:hover { color: var(--aff-gold); }
.aff-site-header__nav .wp-block-navigation .current-menu-item a,
.aff-site-header__nav .wp-block-navigation .current_page_item a {
  color: var(--aff-gold);
  border-bottom: 1px solid var(--aff-gold);
  padding-bottom: 2px;
}
.aff-theme-toggle {
  width: 34px; height: 34px; border-radius: 50%;
  background: transparent; border: var(--aff-hairline);
  color: var(--aff-fg); cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 13px; padding: 0; flex: none;
  transition: border-color .2s;
}
.aff-theme-toggle:hover { border-color: var(--aff-gold); }
.aff-site-header__mobile-actions { gap: var(--aff-space-2); align-items: center; }
.aff-site-header--mobile { display: none; }

/* ── Footer ─────────────────────────────────────────────────────────── */
.aff-site-footer__brand .aff-logo { display: inline-block; margin-bottom: var(--aff-space-2); }
.aff-site-footer__bio { color: var(--aff-sub); line-height: var(--aff-leading-long); max-width: 320px; margin: 0; }
.aff-site-footer__email { margin-top: var(--aff-space-3); }
.aff-site-footer__title { margin: 0 0 var(--aff-space-2); }
.aff-site-footer__list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.aff-site-footer__list a { font-size: 14px; color: var(--aff-fg); }
.aff-site-footer__list a:hover { color: var(--aff-gold); }

/* ── Page hero — variações ──────────────────────────────────────────── */
.aff-page-hero__h1 { font-size: clamp(48px, 8vw, 104px); }
.aff-page-hero .wp-block-query-title { font-size: clamp(48px, 8vw, 104px); font-weight: 200; letter-spacing: var(--aff-tracking-tight); line-height: var(--aff-leading-display); }

/* ── Hero da home ───────────────────────────────────────────────────── */
.aff-hero { padding-top: var(--aff-space-7); padding-bottom: var(--aff-space-8); }
.aff-hero__title { font-size: clamp(56px, 9vw, 124px); }
.aff-hero__title em { font-style: italic; font-weight: 200; }
.aff-hero__roles {
  font-family: var(--aff-font-accent); font-size: var(--aff-fs-sm);
  color: var(--aff-sub); text-transform: uppercase;
  letter-spacing: 0.16em; margin: var(--aff-space-4) 0 0;
}
.aff-hero__lead { font-size: 22px; line-height: var(--aff-leading-body); max-width: 540px; margin-top: var(--aff-space-5); }
.aff-hero__ctas { gap: var(--aff-space-4); align-items: center; margin-top: var(--aff-space-6); }
.aff-hero__cta-sub { margin: 0; color: var(--aff-sub); font-size: 14px; }

/* Placeholder de retrato 4:5 */
.aff-portrait-ph {
  width: 100%; aspect-ratio: 4 / 5; position: relative;
  background: repeating-linear-gradient(135deg, var(--aff-faint) 0 12px, transparent 12px 24px);
  border: var(--aff-hairline);
  display: flex; align-items: flex-end; padding: 24px;
}
.aff-portrait-ph__mark {
  position: absolute; top: 20px; left: 20px;
  font-family: var(--aff-font-accent); font-size: 10px; color: var(--aff-gold);
  letter-spacing: var(--aff-tracking-widest); text-transform: uppercase;
}
.aff-portrait-ph__note {
  font-family: var(--aff-font-accent); font-size: 10px; color: var(--aff-sub);
  letter-spacing: 0.18em; text-transform: uppercase;
}
.aff-portrait {
  display: block; width: 100%; height: auto;
  border: var(--aff-hairline);
}
.aff-whatsapp-cta {
  display: flex; flex-direction: column; align-items: flex-start;
  gap: var(--aff-space-4);
}

/* ── Manifesto + estatísticas ───────────────────────────────────────── */
.aff-manifesto__lead { font-size: clamp(28px, 4vw, 48px); line-height: 1.25; font-weight: 200; letter-spacing: var(--aff-tracking-snug); margin: 0; }
.aff-manifesto__body { font-size: var(--aff-fs-md); line-height: var(--aff-leading-long); color: var(--aff-sub); margin-top: var(--aff-space-5); max-width: 720px; }
.aff-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); align-items: start; gap: var(--aff-space-5); margin-top: var(--aff-space-7); padding-top: var(--aff-space-4); border-top: var(--aff-hairline); }
.aff-stats > * { margin-block-start: 0; margin-top: 0; }
.aff-stat__num { font-size: var(--aff-fs-2xl); font-weight: 200; letter-spacing: var(--aff-tracking-tight); line-height: 1; color: var(--aff-gold); margin: 0; }
.aff-stat__label { font-family: var(--aff-font-accent); font-size: var(--aff-fs-xs); color: var(--aff-sub); margin-top: var(--aff-space-2); text-transform: uppercase; letter-spacing: 0.16em; }

/* ── Lista de escritos ──────────────────────────────────────────────── */
.aff-writing-list__body { display: block; }
.aff-writing-row {
  display: grid; grid-template-columns: 130px 110px 1fr; gap: var(--aff-space-4);
  padding: var(--aff-space-3) 0; border-bottom: var(--aff-hairline); align-items: baseline;
}
.aff-writing-row__date,
.aff-writing-row__type {
  font-family: var(--aff-font-accent); font-size: var(--aff-fs-xs);
  color: var(--aff-sub); text-transform: uppercase; letter-spacing: 0.14em;
}
.aff-writing-row__title { font-size: var(--aff-fs-lg); font-weight: 300; line-height: 1.3; letter-spacing: var(--aff-tracking-normal); }
.aff-writing-row__title a { color: var(--aff-fg); }
.aff-writing-row:hover .aff-writing-row__title a,
.aff-writing-row__title a:hover { color: var(--aff-gold); }
.aff-section__more { margin-top: var(--aff-space-5); }

/* ── Cartões sociais ────────────────────────────────────────────────── */
.aff-social-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: var(--aff-space-2); }
.aff-social-card {
  border: var(--aff-hairline); padding: 32px 20px; color: var(--aff-fg);
  display: flex; flex-direction: column; gap: var(--aff-space-1);
  min-height: 160px; justify-content: space-between;
  transition: border-color .2s;
}
.aff-social-card:hover { border-color: var(--aff-gold); color: var(--aff-fg); }
.aff-social-card__num { font-family: var(--aff-font-accent); font-size: 10px; color: var(--aff-sub); letter-spacing: 0.18em; text-transform: uppercase; }
.aff-social-card__name { display: block; font-size: 22px; font-weight: 300; }
.aff-social-card__handle { display: block; font-family: var(--aff-font-accent); font-size: var(--aff-fs-xs); color: var(--aff-sub); margin-top: 6px; }
.aff-social-card__foot { display: flex; justify-content: space-between; align-items: baseline; border-top: var(--aff-hairline); padding-top: 12px; font-family: var(--aff-font-accent); font-size: var(--aff-fs-xs); color: var(--aff-sub); }
.aff-social-card__arrow { color: var(--aff-gold); font-size: 14px; }

/* ── Contato (home) + formulários ───────────────────────────────────── */
.aff-contact__title { font-size: clamp(40px, 6vw, 64px); }
.aff-contact__note { color: var(--aff-sub); margin-top: var(--aff-space-3); }
.aff-contact__channels { margin-top: var(--aff-space-5); line-height: 1.9; }
.aff-form { display: flex; flex-direction: column; }
.aff-form .aff-btn,
.aff-subscribe__form .aff-btn { align-self: flex-start; margin-top: var(--aff-space-3); }
.aff-form-row textarea { resize: vertical; }

/* ── Paginação ──────────────────────────────────────────────────────── */
.aff-pagination { margin-top: var(--aff-space-6); padding-top: var(--aff-space-3); border-top: var(--aff-hairline); font-family: var(--aff-font-accent); font-size: var(--aff-fs-xs); letter-spacing: 0.14em; text-transform: uppercase; }
.aff-pagination a:hover { color: var(--aff-gold); }
.aff-pagination .current { color: var(--aff-gold); }

/* ── Busca ──────────────────────────────────────────────────────────── */
.aff-search-field { margin-top: var(--aff-space-4); max-width: 540px; }
.aff-search-field .wp-block-search__input {
  background: transparent; border: none; border-bottom: var(--aff-hairline);
  border-radius: 0; color: var(--aff-fg); font-family: var(--aff-font-display);
  font-size: var(--aff-fs-lg); font-weight: 300; padding: 8px 0;
}
.aff-search-field .wp-block-search__input:focus { border-bottom-color: var(--aff-gold); outline: none; }
.aff-search-field .wp-block-search__button { background: var(--aff-gold); color: var(--aff-ink); border: none; font-weight: 500; }

/* ── Single — breadcrumb, header, byline, artigo ────────────────────── */
.aff-breadcrumb { padding: var(--aff-space-3) var(--aff-pad-x); border-bottom: var(--aff-hairline); display: flex; flex-wrap: nowrap; gap: 0.45em; align-items: baseline; }
.aff-breadcrumb__crumb { font-family: var(--aff-font-accent); font-size: var(--aff-fs-xs); color: var(--aff-sub); letter-spacing: 0.16em; text-transform: uppercase; margin: 0; }
.aff-breadcrumb__crumb a { color: var(--aff-gold); }
.aff-article-head { padding: var(--aff-space-6) var(--aff-pad-x) 0; }
.aff-article-head__kicker { display: block; margin-bottom: var(--aff-space-3); }
.aff-article-head__title { font-size: clamp(40px, 6vw, 64px); font-weight: 200; }
.aff-article-head__lead { font-size: 22px; line-height: var(--aff-leading-body); color: var(--aff-sub); margin-top: var(--aff-space-3); }
.aff-byline { margin-top: var(--aff-space-5); padding: var(--aff-space-3) 0; border-top: var(--aff-hairline); border-bottom: var(--aff-hairline); gap: var(--aff-space-3); }
.aff-byline__author { gap: var(--aff-space-2); align-items: center; }
.aff-byline__avatar img { border-radius: 50%; }
.aff-byline__name { font-size: var(--aff-fs-base); margin: 0; }
.aff-byline__date { font-family: var(--aff-font-accent); font-size: var(--aff-fs-xs); color: var(--aff-sub); letter-spacing: 0.1em; margin: 0; }
.aff-article-cover { margin: var(--aff-space-5) auto; max-width: 1080px; }
.aff-article-cover img { width: 100%; }
.aff-article { padding: var(--aff-space-6) var(--aff-pad-x); }
.aff-article__body { font-size: var(--aff-fs-md); line-height: var(--aff-leading-long); }
.aff-article__body p { margin: 0 0 var(--aff-space-3); }
.aff-article-foot { padding: 0 var(--aff-pad-x) var(--aff-space-6); }
.aff-article-foot__tags { display: flex; gap: var(--aff-space-1); flex-wrap: wrap; }

/* ── Related cards ──────────────────────────────────────────────────── */
.aff-related__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--aff-space-3); }
.aff-related__grid--three { grid-template-columns: repeat(3, 1fr); }
.aff-related__card { display: flex; flex-direction: column; gap: var(--aff-space-2); transition: border-color .2s; }
.aff-related__card:hover { border-color: var(--aff-gold); }
.aff-related__card-title { font-size: var(--aff-fs-lg); font-weight: 300; }
.aff-related__card-date { font-family: var(--aff-font-accent); font-size: var(--aff-fs-xs); color: var(--aff-sub); letter-spacing: 0.12em; margin: 0; }

/* ── Comentários ────────────────────────────────────────────────────── */
.aff-comments { padding: var(--aff-space-6) var(--aff-pad-x); border-top: var(--aff-hairline); }
.aff-comment__author { font-size: var(--aff-fs-base); }
.aff-comment__date { font-family: var(--aff-font-accent); font-size: var(--aff-fs-xs); color: var(--aff-sub); }

/* ── 404 ────────────────────────────────────────────────────────────── */
.aff-404__hero { text-align: center; padding-top: var(--aff-space-7); }
.aff-404__big { font-size: clamp(96px, 18vw, 200px); color: var(--aff-gold); line-height: 1; }
.aff-404__copy { font-size: var(--aff-fs-lg); color: var(--aff-sub); margin-top: var(--aff-space-3); }
.aff-404__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--aff-space-3); }
.aff-404__card { display: flex; flex-direction: column; gap: var(--aff-space-2); transition: border-color .2s; }
.aff-404__card:hover { border-color: var(--aff-gold); }
.aff-404__card-title { font-size: var(--aff-fs-lg); }
.aff-404__card-note { color: var(--aff-sub); font-size: 14px; }

/* ── Sobre — intro, timeline, crenças ───────────────────────────────── */
.aff-about-intro__lead { font-size: var(--aff-fs-xl); font-weight: 200; line-height: 1.3; letter-spacing: var(--aff-tracking-snug); }
.aff-timeline { list-style: none; padding: 0; margin: 0; }
.aff-timeline__item { display: grid; grid-template-columns: 90px 1fr; gap: var(--aff-space-4); padding: var(--aff-space-4) 0; border-bottom: var(--aff-hairline); }
.aff-timeline__year { font-family: var(--aff-font-accent); font-size: var(--aff-fs-sm); color: var(--aff-gold); letter-spacing: 0.1em; }
.aff-timeline__body { color: var(--aff-sub); line-height: var(--aff-leading-long); }
.aff-timeline__body strong { color: var(--aff-fg); font-weight: 400; }
.aff-belief-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--aff-space-5); }
.aff-belief__num { font-family: var(--aff-font-accent); font-size: var(--aff-fs-sm); color: var(--aff-gold); letter-spacing: 0.2em; }
.aff-belief h4 { margin: var(--aff-space-2) 0; }
.aff-belief p { color: var(--aff-sub); }

/* ── CTA band ───────────────────────────────────────────────────────── */
.aff-cta-band { text-align: center; }
.aff-cta-band__note { color: var(--aff-sub); margin: var(--aff-space-3) 0 var(--aff-space-4); }

/* ── Consultoria — ofertas, processo, FAQ ───────────────────────────── */
.aff-offer-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--aff-space-3); }
.aff-offer { border: var(--aff-hairline); background: var(--aff-card); padding: var(--aff-space-4); display: flex; flex-direction: column; gap: var(--aff-space-2); position: relative; }
.aff-offer--featured { border-color: var(--aff-gold); }
.aff-offer__tag { position: absolute; top: -11px; left: var(--aff-space-4); background: var(--aff-gold); color: var(--aff-ink); font-family: var(--aff-font-accent); font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; padding: 4px 10px; }
.aff-offer__name { font-size: var(--aff-fs-xl); font-weight: 200; }
.aff-offer__price { font-size: 32px; color: var(--aff-gold); font-weight: 200; margin: 0; }
.aff-offer__desc { color: var(--aff-sub); }
.aff-offer__list { list-style: none; padding: var(--aff-space-2) 0; margin: 0; display: flex; flex-direction: column; gap: var(--aff-space-1); border-top: var(--aff-hairline); }
.aff-offer__list li { font-size: 14px; color: var(--aff-sub); padding-left: 18px; position: relative; }
.aff-offer__list li::before { content: "—"; position: absolute; left: 0; color: var(--aff-gold); }
.aff-offer .aff-btn { margin-top: auto; align-self: flex-start; }
.aff-process { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--aff-space-4); }
.aff-process__num { font-family: var(--aff-font-accent); font-size: var(--aff-fs-sm); color: var(--aff-gold); letter-spacing: 0.2em; }
.aff-process__step h4 { margin: var(--aff-space-2) 0; }
.aff-process__step p { color: var(--aff-sub); font-size: 14px; }
.aff-quote-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--aff-space-3); }
.aff-testimonial { margin: 0; }
.aff-testimonial p { font-size: var(--aff-fs-lg); font-weight: 200; line-height: 1.4; }
.aff-testimonial cite { display: block; margin-top: var(--aff-space-3); font-family: var(--aff-font-accent); font-size: var(--aff-fs-xs); color: var(--aff-sub); letter-spacing: 0.14em; text-transform: uppercase; font-style: normal; }
.aff-faq__item { border-bottom: var(--aff-hairline); padding: var(--aff-space-2) 0; }
.aff-faq__item summary { display: flex; justify-content: space-between; align-items: center; gap: var(--aff-space-3); cursor: pointer; font-size: var(--aff-fs-lg); font-weight: 300; list-style: none; }
.aff-faq__item summary::-webkit-details-marker { display: none; }
.aff-faq__icon { color: var(--aff-gold); font-size: var(--aff-fs-xl); flex: none; transition: transform .2s; }
.aff-faq__item[open] .aff-faq__icon { transform: rotate(45deg); }
.aff-faq__item p { color: var(--aff-sub); margin: var(--aff-space-2) 0 0; }

/* ── Palestras — temas, agenda ──────────────────────────────────────── */
.aff-topic-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--aff-space-3); }
.aff-topic h4 { margin: var(--aff-space-2) 0; }
.aff-topic p { color: var(--aff-sub); }
.aff-agenda__body { display: block; }
.aff-agenda-row { display: grid; grid-template-columns: 1fr auto; gap: var(--aff-space-4); padding: var(--aff-space-3) 0; border-bottom: var(--aff-hairline); align-items: baseline; }
.aff-agenda-row__title { font-size: var(--aff-fs-lg); font-weight: 300; }
.aff-agenda-row__note { color: var(--aff-sub); font-size: 14px; }

/* ── Contato (página) — canais ──────────────────────────────────────── */
.aff-channels { display: flex; flex-direction: column; gap: var(--aff-space-4); }
.aff-channel { display: flex; flex-direction: column; gap: 4px; padding-bottom: var(--aff-space-3); border-bottom: var(--aff-hairline); }
.aff-channel__value { font-size: var(--aff-fs-md); }
.aff-channel__note { color: var(--aff-sub); font-size: 14px; }

/* ── Obrigado ───────────────────────────────────────────────────────── */
.aff-thanks__hero { text-align: center; }
.aff-thanks__check { display: inline-flex; align-items: center; justify-content: center; width: 72px; height: 72px; border-radius: 50%; border: var(--aff-border-gold); color: var(--aff-gold); font-size: 32px; margin-bottom: var(--aff-space-4); }
.aff-thanks__title { font-size: clamp(56px, 10vw, 96px); }
.aff-thanks__copy { font-size: var(--aff-fs-lg); color: var(--aff-sub); margin-top: var(--aff-space-3); }
.aff-steps-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--aff-space-3); }
.aff-step-card { display: flex; flex-direction: column; gap: var(--aff-space-1); }
.aff-step-card h4 { margin: var(--aff-space-1) 0; }
.aff-step-card p { color: var(--aff-sub); font-size: 14px; }
.aff-cross-card { text-align: center; align-items: center; }
.aff-cross-card .aff-btn { margin-top: var(--aff-space-3); }

/* ── Newsletter ─────────────────────────────────────────────────────── */
.aff-subscribe { text-align: center; align-items: center; }
.aff-subscribe__form { width: 100%; max-width: 420px; margin: var(--aff-space-3) auto 0; }
.aff-subscribe__note { color: var(--aff-sub); font-size: 13px; margin-top: var(--aff-space-3); }
.aff-value-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--aff-space-5); }
.aff-value__num { font-family: var(--aff-font-accent); font-size: var(--aff-fs-sm); color: var(--aff-gold); letter-spacing: 0.2em; }
.aff-value h4 { margin: var(--aff-space-2) 0; }
.aff-value p { color: var(--aff-sub); }

/* ── Privacidade — TOC + corpo legal ────────────────────────────────── */
.aff-legal-toc { display: flex; flex-direction: column; gap: var(--aff-space-2); position: sticky; top: 100px; }
.aff-legal-toc a { display: flex; gap: var(--aff-space-2); font-size: 14px; color: var(--aff-sub); }
.aff-legal-toc a:hover { color: var(--aff-gold); }
.aff-legal-toc span { font-family: var(--aff-font-accent); color: var(--aff-gold); font-size: var(--aff-fs-xs); }
.aff-dpo-card { margin-top: var(--aff-space-4); display: flex; flex-direction: column; gap: var(--aff-space-2); }
.aff-dpo-card p { font-size: 14px; margin: 0; }
.aff-legal-body section { padding-bottom: var(--aff-space-5); }
.aff-legal-body h3 { display: flex; gap: var(--aff-space-2); align-items: baseline; margin-bottom: var(--aff-space-2); }
.aff-legal-body__num { font-family: var(--aff-font-accent); font-size: var(--aff-fs-sm); color: var(--aff-gold); }
.aff-legal-body p { font-size: 17px; line-height: var(--aff-leading-long); color: var(--aff-sub); }

/* ── Livros — catálogo e detalhe ────────────────────────────────────── */
.aff-book-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--aff-space-4); }
.aff-book-card { display: flex; flex-direction: column; gap: var(--aff-space-2); }
.aff-book-card__cover img { width: 100%; }
.aff-book-card__title { font-size: var(--aff-fs-lg); font-weight: 300; }
.aff-book-card__desc { color: var(--aff-sub); font-size: 14px; }
.aff-book-hero__title { font-size: clamp(36px, 5vw, 56px); font-weight: 200; }
.aff-book-hero__lead { font-size: var(--aff-fs-md); color: var(--aff-sub); margin-top: var(--aff-space-2); }
.aff-book-meta { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--aff-space-3); margin: var(--aff-space-4) 0; padding: var(--aff-space-3) 0; border-top: var(--aff-hairline); border-bottom: var(--aff-hairline); }
.aff-book-meta dt { font-family: var(--aff-font-accent); font-size: 10px; color: var(--aff-sub); letter-spacing: 0.16em; text-transform: uppercase; }
.aff-book-meta dd { margin: 4px 0 0; font-size: var(--aff-fs-lg); color: var(--aff-gold); font-weight: 200; }
.aff-book-cta { display: flex; gap: var(--aff-space-2); flex-wrap: wrap; }

/* ── Carta convidada ────────────────────────────────────────────────── */
.aff-guest-hero__name { font-size: clamp(40px, 6vw, 88px); font-weight: 200; }
.aff-guest-hero__bio { color: var(--aff-sub); font-size: var(--aff-fs-md); margin-top: var(--aff-space-2); }
.aff-guest-hero__date { font-family: var(--aff-font-accent); font-size: var(--aff-fs-xs); color: var(--aff-sub); letter-spacing: 0.14em; margin-top: var(--aff-space-3); }
.aff-guest-hero__portrait img { width: 100%; }
.aff-guest-title { padding: var(--aff-space-4) var(--aff-pad-x) 0; font-size: clamp(32px, 4vw, 48px); }

/* ════════════════════════════════════════════════════════════════════
   AFF · Responsivo — breakpoint único 768px
   ════════════════════════════════════════════════════════════════════ */

@media (max-width: 768px) {
  .aff-hero__cols,
  .aff-contact-cols,
  .aff-contact-page,
  .aff-about-intro,
  .aff-book-hero__cols,
  .aff-guest-hero__cols,
  .aff-legal-cols { flex-direction: column; }

  .aff-stats,
  .aff-belief-grid,
  .aff-process,
  .aff-offer-grid,
  .aff-value-grid,
  .aff-steps-grid,
  .aff-404__grid,
  .aff-book-grid { grid-template-columns: 1fr; }

  .aff-social-grid,
  .aff-topic-grid,
  .aff-quote-grid,
  .aff-related__grid,
  .aff-related__grid--three { grid-template-columns: 1fr 1fr; }

  .aff-book-meta { grid-template-columns: 1fr 1fr; }

  .aff-writing-row { grid-template-columns: 1fr; gap: var(--aff-space-1); }

  .aff-stats { gap: var(--aff-space-4); }
  .aff-stat__num { font-size: var(--aff-fs-xl); }

  .aff-section { padding: var(--aff-space-5) var(--aff-pad-x); }
  .aff-breadcrumb,
  .aff-article-head,
  .aff-article,
  .aff-article-foot,
  .aff-comments { padding-left: var(--aff-pad-x); padding-right: var(--aff-pad-x); }

  .aff-legal-toc { position: static; }
}

/* ════════════════════════════════════════════════════════════════════
   AFF · Light mode — overrides quando data-theme="light"
   ════════════════════════════════════════════════════════════════════ */

[data-theme="light"] body,
[data-theme="light"] header.wp-block-template-part,
[data-theme="light"] .aff-site-header { background: var(--aff-bg); color: var(--aff-fg); }
[data-theme="light"] .editor-styles-wrapper { background: #FAF7F0 !important; color: #0c0c0c; }

/* ════════════════════════════════════════════════════════════════════
   AFF · Ajustes pós-revisão de UX/UI
   ════════════════════════════════════════════════════════════════════ */

/* Espaçamento de listas e parágrafos dentro do corpo de leitura */
.aff-article__body ul,
.aff-article__body ol { margin: 0 0 var(--aff-space-3); padding-left: 1.4em; }
.aff-article__body li { margin-bottom: var(--aff-space-1); }
.aff-article__body ul + p,
.aff-article__body ol + p,
.aff-article__body p + ul,
.aff-article__body p + ol { margin-top: var(--aff-space-3); }
.aff-article__body h2,
.aff-article__body h3 { margin-top: var(--aff-space-5); }

/* Mensagem de lista vazia centralizada no container */
.aff-empty { width: 100%; text-align: center; }

/* Imagens e embeds de vídeo no corpo do artigo
   Resolve a thumbnail do YouTube (1280px) estourando a coluna de leitura. */
.aff-article__body img,
.aff-article__body figure,
.aff-article__body .wp-block-embed,
.aff-article__body iframe { display: block; margin: var(--aff-space-4) auto; }
.aff-article__body figure { margin-left: 0; margin-right: 0; }
.aff-article__body figure img { margin: 0; }
/* thumbnail de vídeo clicável (link com imagem, vinda do markdown) */
.aff-article__body a > img { width: 100%; }
/* embeds reais de vídeo (iframe) sempre em proporção 16:9 */
.aff-article__body iframe,
.aff-article__body .wp-block-embed__wrapper iframe {
  width: 100%;
  aspect-ratio: 16 / 9;
  height: auto;
}
