/* Calila theme.bundle.css — gerado por bin/build-theme-css.sh 2026-09-17T03:01Z */
/* Não editar à mão; altere os partials e rode o build. */

/* ===== global.css ===== */

/* ===== fonts.css ===== */
/*
 * Fontes locais — Literata (editorial) + IBM Plex Sans Condensed (UI).
 * Evita fallback Georgia/system quando Google Fonts falha ou atrasa.
 */

/* Literata variable — latin-ext + latin */
@font-face {
  font-family: 'Literata';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/literata-variable-latin-ext.woff2') format('woff2');
  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: 'Literata';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/literata-variable-latin.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;
}

/* IBM Plex Sans Condensed */
@font-face {
  font-family: 'IBM Plex Sans Condensed';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/ibm-plex-sans-condensed-400-latin-ext.woff2') format('woff2');
  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: 'IBM Plex Sans Condensed';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/ibm-plex-sans-condensed-400.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;
}

@font-face {
  font-family: 'IBM Plex Sans Condensed';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/ibm-plex-sans-condensed-500.woff2') format('woff2');
}

@font-face {
  font-family: 'IBM Plex Sans Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/ibm-plex-sans-condensed-600.woff2') format('woff2');
}

@font-face {
  font-family: 'IBM Plex Sans Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/ibm-plex-sans-condensed-700.woff2') format('woff2');
}

/* ===== tokens.css ===== */
:root {
  /* ── Marca Calila (logo, badges, destaques editoriais) ── */
  --calila-amarelo: #fbb034;
  --calila-amarelo-hover: #e9a020;
  --calila-laranja: #f5a623;
  --calila-laranja-escuro: #b8731a;
  --calila-verde: #52a83a; /* wordmark da logo — aberto, parceiro do laranja */
  --calila-verde-escuro: #3d8b37;

  /* UI suavizada — navegação, bordas, fundos */
  --calila-nav-bg: #faf8f5;
  --calila-nav-border: #ebe4d8;
  --calila-nav-text: #726c65;
  --calila-nav-text-muted: #8f8880;
  --calila-accent: #a67c3a;
  --calila-accent-soft: #c49a55;
  --calila-accent-muted: rgba(166, 124, 58, 0.1);
  --calila-accent-border: #e0d4c0;
  --calila-accent-hover: #8f682e;

  /* Categorias — tom editorial, não neon */
  --cat-default: #b8863f;
  --cat-policial: #b85c28;
  --cat-esportes: #3a8f5c;
  --cat-economia: #3d7a9e;
  --cat-politica: #a84840;
  --cat-regional: #b8863f;
  --cat-eleicoes: #a67c3a;
  --cat-agricultura: #4a8a44;

  /* Superfícies */
  --calila-branco: #ffffff;
  --calila-fundo: #f5f5f5;
  --calila-fundo-card: #ffffff;
  --calila-borda: #e8e8e8;
  --calila-footer: #f4f1eb;

  /* Texto — contraste editorial (NYT ink #121212 pattern) */
  --calila-texto: #141414;
  --calila-texto-suave: #3d3d3d;
  --calila-meta: #6b6b6b;
  --calila-meta-claro: #949494;

  /* Aliases legados */
  --calila-sol: var(--calila-laranja);
  --calila-sol-dark: var(--calila-laranja-escuro);
  --calila-amber: var(--calila-laranja);
  --calila-amber-dark: var(--calila-laranja-escuro);
  --calila-amber-soft: rgba(166, 124, 58, 0.08);
  --calila-terra: var(--cat-policial);
  --calila-terra-light: var(--cat-default);
  --calila-caatinga: var(--cat-esportes);
  --calila-pergaminho: var(--calila-fundo);
  --calila-pergaminho-dark: var(--calila-borda);
  --calila-cafe: var(--calila-texto);
  --calila-noite: #111111;
  --calila-cinza: var(--calila-texto-suave);
  --calila-cinza-light: var(--calila-meta);
  --calila-areia: var(--calila-fundo);
  --calila-areia-dark: var(--calila-borda);

  /*
   * Tipografia — 2 famílias (padrão jornal digital):
   *
   * Literata       → manchetes + corpo da matéria (serif editorial)
   * IBM Plex Cond. → nav, labels, meta, excerpts de card, eyebrows (sans UI)
   *
   * Fontes self-hosted em assets/fonts — sem depender do Google CDN.
   */
  --font-editorial: 'Literata', 'Iowan Old Style', 'Palatino Linotype', Palatino, serif;
  --font-ui: 'IBM Plex Sans Condensed', 'Avenir Next Condensed', 'Helvetica Neue', sans-serif;

  /* Aliases semânticos — todos apontam para Literata */
  --font-body: var(--font-editorial);
  --font-headline: var(--font-editorial);
  --font-display: var(--font-editorial);
  --font-label: var(--font-ui);

  /* Escala — mobile-first, 17px base (conforto de leitura em telas) */
  --text-caption: 0.75rem;       /* 12px — meta, labels (scan rápido) */
  --text-sm: 0.875rem;           /* 14px — excerpts, UI secundária */
  --text-base: 1.0625rem;        /* 17px — corpo geral */
  --text-md: 1.125rem;           /* 18px — cards desktop, lead */
  --text-lg: 1.25rem;            /* 20px — subtítulos, seções */
  --text-xl: 1.375rem;           /* 22px */
  --text-2xl: 1.625rem;          /* 26px — featured */
  --text-3xl: 2rem;              /* 32px */
  --text-article: 1.125rem;      /* 18px — corpo da matéria */
  --text-hero: clamp(1.5rem, 4vw, 2.25rem);

  /* Entrelinha — manchetes compactas; corpo confortável */
  --leading-caption: 1.35;
  --leading-ui: 1.3;
  --leading-body: 1.65;
  --leading-article: 1.68;
  --leading-headline: 1.22;
  --leading-display: 1.12;
  --leading-snug: 1.35;
  --leading-tight: 1.18;

  /* Tracking — Literata fecha levemente; Plex Cond. evita tracking largo */
  --tracking-section: 0.04em;
  --tracking-category: 0.055em;
  --tracking-ui: 0.01em;
  --tracking-nav: 0.04em;
  --tracking-meta: 0.015em;
  --tracking-headline: -0.018em;
  --tracking-display: -0.024em;

  /* Medida de leitura (~50–70 caracteres por linha) */
  --measure-compact: 32rem;
  --measure-article: 65ch;
  --measure-article-column: 45rem; /* coluna single centrada (~720px) */
  --measure-wide: 48rem;

  /* ── Espaçamento (8px) ── */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;

  --space-xs: var(--space-2);
  --space-sm: var(--space-3);
  --space-md: var(--space-4);
  --space-lg: var(--space-6);
  --space-xl: var(--space-8);
  --space-section: var(--space-10);
  --space-section-lg: var(--space-12);

  /* Páginas internas — respiro abaixo do header sticky */
  --inner-page-top: var(--space-6);
  --inner-page-gap: var(--space-6);
  --inner-page-block-gap: var(--space-8);

  --radius-sm: 0.25rem;
  --radius-card: 0.375rem;
  --radius-lg: 0.5rem;
  --radius-xl: 0.625rem;

  --shadow-card: 0 1px 3px rgba(0, 0, 0, 0.06);
  --shadow-card-hover: 0 4px 14px rgba(0, 0, 0, 0.07);
  --shadow-header: 0 1px 0 var(--calila-borda);

  /*
   * Espaços publicitários — tamanhos IAB (protótipo / Advanced Ads)
   * banner-sm 320×50 | leaderboard 728×90 | mpu 300×250
   */
  --ad-slot-gap: var(--space-2);
  --ad-slot-margin: var(--space-10);
  --ad-slot-margin-compact: var(--space-6);
  --ad-slot-flow-padding: var(--space-5);
  --ad-banner-sm-w: 20rem;
  --ad-banner-sm-h: 3.125rem;
  /* GPT desk-super / leaderboard 970×90 */
  --ad-leaderboard-w: 60.625rem;
  --ad-leaderboard-h: 5.625rem;
  /* GPT footer billboard 970×250 */
  --ad-billboard-w: 60.625rem;
  --ad-billboard-h: 15.625rem;
  --ad-mpu-w: 18.75rem;
  --ad-mpu-h: 15.625rem;
  /* GPT half-page / ROS */
  --ad-halfpage-w: 18.75rem;
  --ad-halfpage-h: 37.5rem;
  --ad-frame-bg: #f7f7f7;
  --ad-frame-border: color-mix(in srgb, var(--calila-borda) 80%, transparent);

  /* Utility — altura de toque (WCAG / iOS HIG) */
  --utility-height: var(--touch-min);
  --header-brand-min: 4rem;
  /* Mobile: ad fora do sticky — banner só ≥768px */
  --header-ad-height: 0px;
  --touch-min: 44px;
  /* Nav = altura de toque; sem padding vertical extra no mobile */
  --nav-height: var(--touch-min);
  --nav-font-size: 0.875rem;           /* 14px — Title Case precisa de um pouco mais que ALL CAPS */
  --nav-link-gap: var(--space-1);
  --nav-link-padding-x: var(--space-3);
  --header-sticky-height: calc(
    var(--utility-height) + var(--header-brand-min) + var(--nav-height)
  );
  --bp-sm: 640px;
  --bp-md: 768px;
  --bp-lg: 1024px;
  --bp-xl: 1280px;
  --content-max: 87.5rem;
  --content-wide: 96rem;
  --sidebar-width: 20rem;
  --page-gutter: var(--space-4);

  --focus-ring: 2px solid var(--calila-accent-soft);
  --focus-offset: 2px;

  /* Scrim mais forte no mobile — texto legível sobre placeholder e foto */
  --gradient-hero: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.92) 0%,
    rgba(0, 0, 0, 0.72) 42%,
    rgba(0, 0, 0, 0.28) 72%,
    rgba(0, 0, 0, 0.12) 100%
  );

  /* ── Superfícies (painéis, widgets, listas) ── */
  --surface-panel-bg: var(--calila-branco);
  --surface-panel-border: 1px solid var(--calila-borda);
  --surface-panel-radius: var(--radius-lg);
  --surface-panel-shadow: var(--shadow-card);
  --surface-panel-padding: var(--space-6) var(--space-5);
  --surface-panel-padding-md: var(--space-8) var(--space-6);
  --surface-list-padding: var(--space-3) var(--space-4);
  --surface-list-item-padding-y: var(--space-4);
  --surface-list-item-padding-x: var(--space-3);
  --surface-list-gap: 0;
  --surface-list-divider: color-mix(in srgb, var(--calila-borda) 55%, transparent);
  --surface-grid-col-gap: var(--space-8);
  --surface-grid-cell-padding-y: var(--space-5);
  --surface-grid-cell-padding-x: var(--space-4);
  --surface-grid-cell-hover: 5%;

  /*
   * Thumbnails — escala por contexto de componente
   *
   * editorial (16:10) → cards, destaques, matéria
   * video (16:9)       → TV Calila
   * compact (3:2)      → listas: altura = linha, largura pela proporção
   * rank (1:1)         → +Lidas itens 02–05 (sidebar)
   */
  --thumb-ratio-editorial: 16 / 10;
  --thumb-ratio-video: 16 / 9;
  --thumb-ratio-compact: 3 / 2;
  --thumb-radius: var(--radius-sm);
  --thumb-min-height-inline: 4.75rem;
  --thumb-max-width-compact: 8rem;
  --thumb-max-width-panel: 8.75rem;
  --thumb-size-rank: 4rem;
  /* Largura máxima da thumb 3:2 em painéis laterais (Fatos policiais, arquivo) */
  --panel-aside-thumb: 5.25rem;
  --panel-aside-row-min-h: 5.25rem;
  --panel-aside-row-py: var(--space-3);
  /* aliases legados */
  --thumb-ratio-inline: var(--thumb-ratio-compact);
  --thumb-width-inline: auto;
  --thumb-size-inline: var(--thumb-min-height-inline);

  --card-title-size: 1.125rem;        /* 18px — feed mobile */
  --card-title-size-md: 1.25rem;      /* 20px — feed desktop */
  --card-title-weight: 700;
  --card-title-weight-secondary: 600;
  --card-title-lines: 3;
  --card-excerpt-lines: 2;
  --card-compact-title-lines: 3;
  --card-title-block-h: calc(var(--card-title-size) * var(--leading-headline) * var(--card-title-lines));
  --card-title-block-h-md: calc(var(--card-title-size-md) * var(--leading-headline) * var(--card-title-lines));
  --card-excerpt-block-h: calc(var(--card-excerpt-size) * var(--card-excerpt-leading) * var(--card-excerpt-lines));
  --card-featured-title-block-h: calc(var(--text-2xl) * var(--leading-headline) * var(--card-title-lines));
  --card-lead-title-block-h: calc(var(--text-md) * var(--leading-headline) * var(--card-title-lines));
  --card-excerpt-size: 0.875rem;      /* 14px — resumo */
  --card-excerpt-weight: 400;
  --card-excerpt-leading: 1.45;
  --card-meta-weight: 500;
  --card-label-weight: 600;

  /* Listas editoriais — Esportes, Polícia, +Lidas, busca (painéis compactos) */
  --list-title-size: 0.9375rem;       /* 15px mobile */
  --list-title-size-md: 1.0625rem;    /* 17px desktop */
  --list-title-weight: 600;
  --list-title-leading: 1.28;
  --list-title-block-h: calc(var(--list-title-size) * var(--list-title-leading) * var(--card-compact-title-lines));
  --list-title-block-h-md: calc(var(--list-title-size-md) * var(--list-title-leading) * var(--card-compact-title-lines));

  /* + Lidas — ranks grandes claros; lista em peso regular (ref. 15:27) */
  --most-read-headline-size: 0.9375rem;       /* 15px */
  --most-read-headline-size-md: 1rem;         /* 16px */
  --most-read-headline-weight: 500;
  --most-read-headline-leading: 1.45;
  --most-read-lead-size: 1.0625rem;           /* 17px */
  --most-read-lead-size-md: 1.125rem;         /* 18px */
  --most-read-lead-weight: 700;
  --most-read-lead-leading: 1.35;
  --most-read-rank-col: 3.25rem;
  --most-read-num-size: 2.375rem;             /* 38px */
  --most-read-num-size-md: 2.75rem;           /* 44px */
  --most-read-num-weight: 500;
  --most-read-num-color: color-mix(in srgb, var(--calila-meta-claro) 58%, var(--calila-branco));
  --most-read-num-color-hover: var(--calila-accent);
  --most-read-watermark-size: 3rem;
  --most-read-watermark-size-md: 3.5rem;
  --most-read-eyebrow-weight: 700;
  --most-read-row-gap: var(--space-3);
  --most-read-row-padding-y: 0.875rem;

  /* alias legado */
  --card-compact-title-block-h: var(--list-title-block-h);

  /*
   * Matéria — conforto de leitura (referências)
   * Corpo 18px serif: leading 1.5–1.65 (WCAG 1.4.12, NNG, Bringhurst)
   * Texto bold precisa de leading ≥ corpo (Smashing/Literata x-height)
   * Parágrafos: espaço ≥ 1× leading entre blocos
   */
  --article-title-leading: 1.2;
  --article-title-tracking: -0.014em;
  --article-lead-size: 1.1875rem;     /* 19px */
  --article-lead-weight: 400;
  --article-lead-leading: 1.55;
  --article-lead-tracking: -0.01em;
  --article-body-leading: 1.6;
  --article-body-tracking: 0.004em;
  --article-deck-weight: 400;
  --article-heading-leading: 1.38;
  --article-heading-h2-leading: 1.34;
  --article-quote-leading: 1.62;
  --article-heading-tracking: -0.016em;
  --article-paragraph-gap: 2em;
  --article-section-entry-gap: 1.25em;
  --article-block-gap: 2.5em;
  --article-media-gap: 1.25em;
  --article-media-inner-gap: var(--space-2);

  /* ── Eyebrow de seção ── */
  --eyebrow-font: var(--font-ui);
  --eyebrow-size: 0.8125rem;           /* 13px */
  --eyebrow-size-md: 0.875rem;        /* 14px */
  --eyebrow-weight: 700;
  --eyebrow-tracking: var(--tracking-section);
  --eyebrow-color: var(--calila-texto);
  --eyebrow-divider: 2px solid var(--calila-accent-border);
  --eyebrow-gap: var(--space-3);

  /* ── Interação ── */
  --interactive-hover-bg: var(--calila-accent-muted);
  --interactive-hover-shift: -1px;
  --interactive-image-scale: 1.03;
  --interactive-tap-highlight: rgba(166, 124, 58, 0.12);
  --duration-fast: 0.15s;
  --duration-normal: 0.2s;
  --ease-standard: ease;

  /* ── Utilitários tipográficos / marca ── */
  --text-xs: 0.6875rem;
  --text-2xs: 0.625rem;
  --chevron-size: 0.625rem;
  --calila-barra-util: #eeeeee;
  --calila-whatsapp: #25d366;
  --calila-whatsapp-hover: #1da851;
}

@media (min-width: 768px) {
  :root {
    --page-gutter: var(--space-6);
    --space-section: var(--space-12);
    --inner-page-top: var(--space-10);
    --inner-page-gap: var(--space-8);
    --text-base: 1.125rem;       /* 18px desktop */
    --text-article: 1.1875rem;   /* 19px matéria */
    --article-lead-size: 1.25rem; /* 20px lead desktop */
    --article-body-leading: 1.65;
    --article-lead-leading: 1.58;
    --article-paragraph-gap: 2.125em;
    --article-section-entry-gap: 1.375em;
    --text-sm: 0.9375rem;            /* 15px — excerpt desktop */
    --text-caption: 0.8125rem;       /* 13px desktop */
    --list-title-size-md: 1.0625rem; /* 17px — listas desktop */
    --card-title-size-md: 1.25rem;   /* 20px — feed desktop */
    --list-title-block-h-md: calc(var(--list-title-size-md) * var(--list-title-leading) * var(--card-compact-title-lines));
    --card-title-block-h-md: calc(var(--card-title-size-md) * var(--leading-headline) * var(--card-title-lines));
    --card-compact-title-block-h: var(--list-title-block-h-md);
    --nav-font-size: 0.9375rem;      /* 15px */
    --nav-link-gap: var(--space-1);
    --nav-link-padding-x: var(--space-4);
    --eyebrow-size: var(--eyebrow-size-md);
    --header-brand-min: 7.5rem;
    --header-ad-height: 0px;
    --header-sticky-height: calc(var(--utility-height) + var(--header-brand-min) + var(--nav-height));
    --thumb-min-height-inline: 5rem;
    --thumb-max-width-compact: 8.5rem;
    --thumb-max-width-panel: 9.25rem;
    --thumb-size-rank: 4.5rem;
    --panel-aside-thumb: 5.5rem;
  }
}

@media (min-width: 1280px) {
  :root {
    --page-gutter: var(--space-8);
    --content-max: 96rem;
    --nav-link-gap: var(--space-3);
    --nav-link-padding-x: var(--space-6);
  }
}

/* ===== typography.css ===== */
/* ── Base editorial ── */
body {
  font-family: var(--font-editorial);
  font-size: var(--text-base);
  font-weight: 400;
  line-height: var(--leading-body);
  letter-spacing: 0.003em;
  color: var(--calila-texto-suave);
  font-optical-sizing: auto;
  font-feature-settings: 'kern' 1, 'liga' 1, 'calt' 1;
  font-variant-ligatures: common-ligatures;
  font-kerning: normal;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  hanging-punctuation: first last;
}

/* Headings globais — Literata; componentes resetam tamanho via classe */
h1,
h2,
h3,
h4 {
  font-family: var(--font-editorial);
  font-weight: 700;
  letter-spacing: var(--tracking-headline);
  line-height: var(--leading-headline);
  text-wrap: balance;
  color: var(--calila-texto);
  font-optical-sizing: auto;
}

h1 {
  font-size: var(--text-3xl);
  line-height: var(--leading-display);
  letter-spacing: var(--tracking-display);
}

h2 {
  font-size: var(--text-2xl);
}

h3 {
  font-size: var(--text-xl);
  font-weight: 600;
}

h4 {
  font-size: var(--text-lg);
  font-weight: 600;
}

/* ── Papéis tipográficos ── */

/** Manchetes de cards em grid (feed) */
.headline-text {
  font-family: var(--font-editorial);
  font-weight: var(--card-title-weight);
  letter-spacing: var(--tracking-headline);
  line-height: var(--leading-headline);
  color: var(--calila-texto);
  text-wrap: pretty;
}

/** Manchetes de listas editoriais (Esportes, +Lidas, busca) */
.list-headline-text {
  font-family: var(--font-editorial);
  font-size: var(--list-title-size);
  font-weight: var(--list-title-weight);
  line-height: var(--list-title-leading);
  letter-spacing: var(--tracking-headline);
  color: var(--calila-texto);
  text-wrap: pretty;
}

/** Labels de editoria, nav, meta — sans para contraste e scan */
.category-label,
.meta-text {
  font-family: var(--font-ui);
  letter-spacing: var(--tracking-ui);
}

.category-label {
  font-size: var(--text-caption);
  font-weight: var(--card-label-weight);
  line-height: var(--leading-ui);
  letter-spacing: var(--tracking-category);
  text-transform: uppercase;
}

.meta-text {
  font-size: var(--text-caption);
  font-weight: var(--card-meta-weight);
  line-height: var(--leading-caption);
  letter-spacing: var(--tracking-meta);
  color: var(--calila-meta);
}

/*
 * Cards — hierarquia de portal (manchete serif × chrome sans):
 * - Título: Literata 700
 * - Excerpt / meta / categoria: IBM Plex Sans Condensed
 */
.news-card .category-label,
.news-card .meta-text,
.news-card .news-card__municipality,
.news-card .news-card__location {
  font-family: var(--font-ui);
}

.news-card .category-label {
  font-weight: var(--card-label-weight);
  letter-spacing: var(--tracking-category);
}

.news-card .news-card__municipality,
.news-card .news-card__location,
.news-card__location {
  font-family: var(--font-ui);
  font-size: var(--text-caption);
  font-weight: var(--card-label-weight);
  letter-spacing: var(--tracking-category);
  line-height: var(--leading-ui);
  text-transform: uppercase;
  color: var(--news-accent, var(--cat-default));
}

.news-card .meta-text,
.news-card__meta {
  font-family: var(--font-ui);
  font-weight: var(--card-meta-weight);
  letter-spacing: var(--tracking-meta);
}

.news-card .news-card__excerpt,
.news-card .excerpt-text {
  font-family: var(--font-ui);
  font-size: var(--card-excerpt-size);
  font-weight: var(--card-excerpt-weight);
  line-height: var(--card-excerpt-leading);
  letter-spacing: 0.01em;
  color: var(--calila-texto-suave);
  text-wrap: pretty;
}

/** Lead de matéria — permanece editorial */
.lead-text {
  font-family: var(--font-editorial);
  font-weight: 400;
  text-wrap: pretty;
  font-size: var(--text-md);
  line-height: var(--leading-article);
  letter-spacing: -0.008em;
  color: var(--calila-texto-suave);
}

.excerpt-text {
  font-family: var(--font-ui);
  font-weight: 400;
  text-wrap: pretty;
  font-size: var(--card-excerpt-size);
  line-height: var(--card-excerpt-leading);
  color: var(--calila-texto-suave);
}

/** Eyebrows / títulos de seção */
.section-eyebrow,
.section-header__title,
.calila-eyebrow {
  font-family: var(--eyebrow-font);
  font-size: var(--eyebrow-size);
  font-weight: var(--eyebrow-weight);
  letter-spacing: var(--eyebrow-tracking);
  line-height: var(--leading-ui);
  text-transform: uppercase;
  color: var(--eyebrow-color);
  text-wrap: balance;
}

.section-header__link,
.calila-eyebrow-link {
  font-family: var(--font-ui);
  font-size: var(--text-caption);
  font-weight: 600;
  letter-spacing: var(--tracking-category);
  text-transform: uppercase;
  text-decoration: none;
}

.site-header__utility-link,
.site-header__utility-city,
.site-header__utility-date {
  letter-spacing: var(--tracking-meta);
}

.site-header__utility-city {
  font-weight: 600;
  letter-spacing: var(--tracking-category);
  text-transform: none;
}

@media (min-width: 768px) {
  .list-headline-text {
    font-size: var(--list-title-size-md);
  }

  .section-eyebrow,
  .section-header__title,
  .calila-eyebrow {
    font-size: var(--eyebrow-size-md);
  }
}

.line-clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.line-clamp-3 {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.tabular-nums {
  font-variant-numeric: tabular-nums;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ===== patterns.css ===== */
/*
 * Padrões visuais compartilhados — importado via global.css
 * Referência: tokens em surfaces.css + typography.css
 */

/* ── Eyebrow de seção ── */
.calila-eyebrow {
  margin: 0;
  font-family: var(--eyebrow-font);
  font-size: var(--eyebrow-size);
  font-weight: var(--eyebrow-weight);
  letter-spacing: var(--eyebrow-tracking);
  line-height: var(--leading-ui);
  text-transform: uppercase;
  color: var(--eyebrow-color);
  text-wrap: balance;
}

.calila-eyebrow-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  padding-bottom: var(--eyebrow-gap);
  border-bottom: var(--eyebrow-divider);
}

.calila-eyebrow-link {
  flex-shrink: 0;
  font-family: var(--font-ui);
  font-size: var(--text-caption);
  font-weight: 600;
  letter-spacing: var(--tracking-category);
  text-transform: uppercase;
  color: var(--calila-accent);
  white-space: nowrap;
  padding: var(--space-2) 0;
  text-decoration: none;
  touch-action: manipulation;
  transition: color var(--duration-fast) var(--ease-standard);
}

.calila-eyebrow-link:hover {
  color: var(--calila-accent-hover);
}

.calila-eyebrow-link:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
  border-radius: var(--radius-sm);
}

/* ── Painel (Esportes, Polícia, +Lidas, Mais Notícias) ── */
.calila-surface-panel {
  background: var(--surface-panel-bg);
  border: var(--surface-panel-border);
  border-radius: var(--surface-panel-radius);
  box-shadow: var(--surface-panel-shadow);
}

.calila-surface-list {
  background: var(--surface-panel-bg);
  border: var(--surface-panel-border);
  border-radius: var(--surface-panel-radius);
  padding: var(--surface-list-padding);
  display: flex;
  flex-direction: column;
  gap: var(--surface-list-gap);
}

/* Divisor suave entre itens — ritmo de leitura em listas de painel */
.calila-surface-list > .news-card--compact:not(:last-child) .news-card__link {
  border-bottom: 1px solid var(--surface-list-divider);
}

.calila-surface-list > .news-card--compact .news-card__link {
  border-radius: var(--radius-sm);
}

@media (hover: hover) {
  .calila-surface-list > .news-card--compact:not(:last-child) .news-card__link:hover {
    border-bottom-color: transparent;
  }
}

/* Lista lateral em painéis editoriais (Fatos policiais, arquivo) */
.calila-panel-list {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  min-width: 0;
}

.calila-panel-list__label {
  margin: 0;
  padding: var(--space-4) var(--space-4) var(--space-2);
  font-family: var(--font-ui);
  font-size: var(--text-caption);
  font-weight: 600;
  letter-spacing: var(--tracking-category);
  line-height: var(--leading-ui);
  text-transform: uppercase;
  flex-shrink: 0;
}

@media (min-width: 768px) {
  .calila-panel-list__label {
    padding: 0 0 var(--space-3);
  }
}

/*
 * Grid blocado (2 col) — divisor por LINHA, não por item.
 * Evita desalinhamento quando títulos têm alturas diferentes na mesma row.
 */
.calila-surface-grid {
  gap: 0;
}

.calila-surface-grid__row {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.calila-surface-grid__row:not(:last-child) {
  border-bottom: 1px solid var(--surface-list-divider);
}

.calila-surface-grid__row > .news-card {
  min-width: 0;
}

/* Mobile: itens empilhados dentro da row */
.calila-surface-grid__row > .news-card:not(:last-child) .news-card__link {
  border-bottom: 1px solid var(--surface-list-divider);
}

/* Hover blocada — preenche a célula, sem cantos soltos */
.calila-surface-grid .news-card--compact .news-card__link {
  border-radius: var(--radius-sm);
  transition:
    background-color var(--duration-fast) var(--ease-standard),
    color var(--duration-fast) var(--ease-standard);
}

@media (min-width: 768px) {
  .calila-surface-grid .news-card--compact .news-card__link {
    border-radius: 0;
  }
}

@media (hover: hover) {
  .calila-surface-grid .news-card--compact .news-card__link:hover {
    background: color-mix(
      in srgb,
      var(--news-accent) var(--surface-grid-cell-hover),
      var(--surface-panel-bg)
    );
  }

  .calila-surface-grid .news-card--compact .news-card__link:hover .news-card__title {
    color: var(--news-accent);
  }

  /* Divisores da row permanecem visíveis no hover */
  .calila-surface-grid__row > .news-card:not(:last-child) .news-card__link:hover {
    border-bottom-color: var(--surface-list-divider);
  }
}

.calila-surface-grid .news-card--compact .news-card__link:active {
  background: color-mix(
    in srgb,
    var(--news-accent) var(--surface-grid-cell-hover),
    var(--surface-panel-bg)
  );
}

.calila-surface-grid .news-card--compact .news-card__link:focus-visible {
  background: color-mix(
    in srgb,
    var(--news-accent) var(--surface-grid-cell-hover),
    var(--surface-panel-bg)
  );
}

@media (min-width: 768px) {
  .calila-surface-grid {
    padding: var(--space-5) var(--space-6);
  }

  .calila-surface-grid__row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 var(--surface-grid-col-gap);
    align-items: stretch;
  }

  /* Divisor interno só entre colunas; linha horizontal fica na row */
  .calila-surface-grid__row > .news-card .news-card__link {
    border-bottom: none;
    padding-block: var(--surface-grid-cell-padding-y);
    padding-inline: var(--surface-grid-cell-padding-x);
  }

  .calila-surface-grid__row:has(> .news-card:nth-child(2))::before {
    content: '';
    position: absolute;
    top: var(--space-4);
    bottom: var(--space-4);
    left: 50%;
    width: 1px;
    background: var(--surface-list-divider);
    transform: translateX(-0.5px);
    pointer-events: none;
    transition: opacity var(--duration-fast) var(--ease-standard);
  }

  @media (hover: hover) {
    .calila-surface-grid__row:has(> .news-card .news-card__link:hover)::before {
      opacity: 0;
    }
  }

  .calila-surface-grid__row > .news-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
  }

  .calila-surface-grid__row > .news-card .news-card__link {
    flex: 1;
    height: auto;
    box-sizing: border-box;
  }

  .calila-surface-grid .news-card--compact .news-card__figure {
    align-self: center;
    transition: box-shadow var(--duration-fast) var(--ease-standard);
  }

  @media (hover: hover) {
    .calila-surface-grid .news-card--compact .news-card__link:hover .news-card__figure {
      box-shadow: 0 0 0 1px color-mix(in srgb, var(--news-accent) 18%, transparent);
    }

    .calila-surface-grid .news-card--compact .news-card__link:hover .news-card__image {
      transform: none;
    }
  }
}

/* ── Linha interativa (listas, sidebar links) ── */
.calila-interactive-row {
  --row-hover-accent: var(--calila-accent);
  --row-hover-bg: var(--interactive-hover-bg);
  touch-action: manipulation;
  -webkit-tap-highlight-color: var(--interactive-tap-highlight);
  border-radius: var(--radius-sm);
  transition: background-color var(--duration-fast) var(--ease-standard);
}

@media (hover: hover) {
  .calila-interactive-row:hover {
    background: var(--row-hover-bg);
  }
}

.calila-interactive-row:active {
  background: var(--row-hover-bg);
}

.calila-interactive-row:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
  background: var(--row-hover-bg);
}

@media (min-width: 768px) {
  .calila-eyebrow {
    font-size: var(--eyebrow-size-md);
  }
}

@media (prefers-reduced-motion: reduce) {
  .calila-eyebrow-link,
  .calila-interactive-row,
  .calila-surface-grid .news-card--compact .news-card__link,
  .calila-surface-grid__row::before,
  .calila-surface-grid .news-card--compact .news-card__figure {
    transition: none;
  }
}

/* ===== thumbnails.css ===== */
/*
 * Thumbnails compartilhados — tokens em tokens.css
 * Cada componente usa o tamanho/ratio do seu papel na hierarquia visual.
 */

.calila-thumb {
  flex-shrink: 0;
  margin: 0;
  overflow: hidden;
  border-radius: var(--thumb-radius);
  background: var(--calila-fundo);
}

.calila-thumb img,
.calila-thumb__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.calila-thumb--editorial {
  aspect-ratio: var(--thumb-ratio-editorial);
}

.calila-thumb--inline {
  flex: 0 0 auto;
  align-self: stretch;
  width: auto;
  min-height: var(--thumb-min-height-inline);
  max-width: var(--thumb-max-width-compact);
  aspect-ratio: var(--thumb-ratio-compact);
}

.calila-thumb--rank {
  flex: 0 0 var(--thumb-size-rank);
  width: var(--thumb-size-rank);
  aspect-ratio: var(--thumb-ratio-inline);
}

/* ===== article.css ===== */
/*
 * Tipografia de matéria — single post WordPress
 * Literata end-to-end no fluxo editorial; UI sans só em chrome (legenda, tags).
 */

.article-page {
  padding-bottom: var(--space-section-lg);
}

.article-page__layout {
  display: grid;
  gap: var(--inner-page-gap);
  margin-top: 0;
}

/*
 * Shell centrado na largura da mídia (48rem);
 * texto/ads internos na coluna de leitura (45rem).
 */
.article-page__content {
  width: 100%;
  min-width: 0;
  max-width: min(var(--measure-wide), 100%);
  margin-inline: auto;
}

.article-page__sidebar {
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
  min-width: 0;
  width: 100%;
  max-width: min(var(--measure-article-column), 100%);
  margin-inline: auto;
  margin-top: var(--space-section);
  padding-top: var(--space-section);
  border-top: 1px solid var(--calila-borda);
}

.article-page__sidebar > .sidebar__ads {
  width: 100%;
}

.article-prose-ad {
  display: flex;
  justify-content: center;
  width: 100%;
  max-width: min(var(--measure-article-column), 100%);
  margin: var(--space-10) auto 0;
}

.article-inline-ad {
  display: flex;
  justify-content: center;
  width: 100%;
  max-width: min(var(--measure-article-column), 100%);
  margin: var(--space-8) auto;
}

.article-prose-ad .ad-slot,
.article-inline-ad .ad-slot {
  margin: 0;
  width: 100%;
}

.article-header {
  width: 100%;
  max-width: none;
  margin-inline: 0;
  text-align: left;
}

.article-header__category,
.article-header__title,
.article-header__lead,
.article-header__meta,
.article-header__share,
.article-prose,
.article-tags {
  width: 100%;
  max-width: min(var(--measure-article-column), 100%);
  margin-inline: auto;
  text-align: left;
}

/* ── Cabeçalho da matéria ── */
.article-header {
  margin-bottom: var(--space-5);
  padding-top: 0;
}

@media (min-width: 768px) {
  .article-header {
    margin-bottom: var(--space-6);
  }
}

/* Chrome: categoria em sans (scan); título/lead em Literata */
.article-header__category {
  display: inline-block;
  margin-bottom: var(--space-4);
  font-family: var(--font-ui);
  font-weight: var(--card-label-weight);
  letter-spacing: var(--tracking-category);
  line-height: var(--leading-ui);
  text-transform: uppercase;
  color: var(--calila-texto-suave);
}

.article-header__category.cat-policial { color: var(--cat-policial); }
.article-header__category.cat-esportes { color: var(--cat-esportes); }
.article-header__category.cat-economia { color: var(--cat-economia); }
.article-header__category.cat-politica { color: var(--cat-politica); }
.article-header__category.cat-eleicoes { color: var(--cat-eleicoes); }
.article-header__category.cat-agricultura { color: var(--cat-agricultura); }
.article-header__category.cat-regional,
.article-header__category.cat-default { color: var(--cat-default); }

.article-header__title {
  margin-block: 0;
  margin-inline: auto;
  font-family: var(--font-editorial);
  font-size: clamp(1.875rem, 3.6vw, 2.75rem);
  font-weight: 700;
  line-height: var(--article-title-leading);
  letter-spacing: var(--article-title-tracking);
  text-wrap: pretty;
  color: var(--calila-texto);
}

.article-header__lead {
  margin-block: var(--space-4) 0;
  margin-inline: auto;
  font-family: var(--font-editorial);
  font-size: var(--article-lead-size);
  font-weight: var(--article-lead-weight);
  line-height: var(--article-lead-leading);
  letter-spacing: var(--article-lead-tracking);
  color: var(--calila-texto-suave);
  text-wrap: pretty;
}

@media (min-width: 768px) {
  .article-header__lead {
    margin-block-start: var(--space-6);
  }
}

.article-header__meta {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-2);
  margin-top: var(--space-5);
  padding-top: var(--space-4);
  border-top: 1px solid var(--calila-borda);
}

@media (min-width: 480px) {
  .article-header__meta {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--space-2) var(--space-5);
    margin-top: var(--space-6);
    padding-top: var(--space-5);
  }
}

/* Meta / byline — sans de chrome (contraste com o fluxo editorial) */
.article-header__byline {
  font-family: var(--font-ui);
  font-size: var(--text-caption);
  font-weight: 400;
  letter-spacing: var(--tracking-meta);
  line-height: var(--leading-caption);
  color: var(--calila-meta);
}

.article-header__byline strong {
  font-weight: 600;
  color: var(--calila-texto-suave);
}

.article-header__meta .meta-text {
  font-family: var(--font-ui);
  font-weight: var(--card-meta-weight);
  letter-spacing: var(--tracking-meta);
}

.article-header__meta .category-label {
  font-family: var(--font-ui);
  font-weight: var(--card-label-weight);
  letter-spacing: var(--tracking-category);
  color: var(--calila-texto-suave);
}

.article-header__figure {
  display: block;
  box-sizing: border-box;
  width: 100%;
  max-width: min(var(--measure-wide), 100%);
  margin: var(--space-8) auto 0;
  border-radius: 0;
  overflow: hidden;
  background: var(--calila-fundo);
}

@media (min-width: 768px) {
  .article-header__figure {
    border-radius: var(--radius-lg);
  }
}

.article-header__figure img,
.article-header__image,
.article-header__figure .wp-post-image {
  display: block;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  height: auto;
  margin-inline: auto;
  aspect-ratio: var(--thumb-ratio-editorial);
  object-fit: cover;
  object-position: center;
}

.article-header__caption {
  margin: 0;
  padding: var(--space-3) var(--space-4);
  font-family: var(--font-ui);
  font-size: var(--text-caption);
  font-weight: 500;
  letter-spacing: var(--tracking-ui);
  line-height: var(--leading-caption);
  color: var(--calila-meta);
  background: var(--calila-fundo-card);
  border-top: 1px solid var(--calila-borda);
}

/* ── Corpo da matéria (prose) ── */
.article-prose {
  font-family: var(--font-editorial);
  font-size: var(--text-article);
  font-weight: 400;
  line-height: var(--article-body-leading);
  letter-spacing: var(--article-body-tracking);
  color: var(--calila-texto-suave);
  font-feature-settings: 'kern' 1, 'liga' 1, 'onum' 1;
  font-variant-ligatures: common-ligatures;
  hanging-punctuation: first last;
  text-align: left;
  text-wrap: pretty;
  hyphens: auto;
  hyphenate-limit-chars: 6 4 4;
}

/* Espaço entre parágrafos — ritmo de leitura longa */
.article-prose p {
  margin: 0;
}

.article-prose p + p {
  margin-top: var(--article-paragraph-gap);
}

/* Blocos intercalados (citação, listas) */
.article-prose p + :is(blockquote, ul, ol) {
  margin-top: var(--article-block-gap);
}

.article-prose :is(blockquote, ul, ol) + p {
  margin-top: var(--article-block-gap);
}

/* Mídia inline — Gutenberg, wp-caption, figure, wpautop */
.article-prose :is(
  figure,
  .wp-block-image,
  .wp-caption,
  p:has(> img:only-child),
  p:has(> a > img:only-child)
) {
  margin: 0;
}

.article-prose p + :is(
  figure,
  .wp-block-image,
  .wp-caption,
  p:has(> img:only-child),
  p:has(> a > img:only-child)
) {
  margin-top: var(--article-media-gap);
}

.article-prose :is(
  figure,
  .wp-block-image,
  .wp-caption,
  p:has(> img:only-child),
  p:has(> a > img:only-child)
) + p {
  margin-top: var(--article-media-gap);
}

.article-prose :is(
  figure,
  .wp-block-image,
  .wp-caption,
  p:has(> img:only-child),
  p:has(> a > img:only-child)
) + :is(
  figure,
  .wp-block-image,
  .wp-caption,
  p:has(> img:only-child),
  p:has(> a > img:only-child)
) {
  margin-top: var(--article-media-gap);
}

/* Parágrafos fantasma após wpautop / JNews */
.article-prose p:empty,
.article-prose p:has(> br:only-child) {
  display: none;
  margin: 0;
}

/* Intertítulo → primeiro parágrafo da seção */
.article-prose :is(h2, h3) + p {
  margin-top: var(--article-section-entry-gap);
}

/* Parágrafo antes de intertítulo */
.article-prose p + :is(h2, h3) {
  margin-top: var(--article-block-gap);
}

/* Primeiro parágrafo — mesma peso do corpo; cor ligeiramente mais forte */
.article-prose > p:first-of-type {
  font-weight: 400;
  font-size: inherit;
  line-height: var(--article-body-leading);
  letter-spacing: var(--article-body-tracking);
  color: var(--calila-texto);
}

.article-prose h2,
.article-prose h3 {
  margin-top: 0;
  margin-bottom: 0;
  font-family: var(--font-editorial);
  letter-spacing: var(--article-heading-tracking);
  color: var(--calila-texto);
  text-align: left;
  text-wrap: balance;
  scroll-margin-top: var(--space-4);
}

.article-prose h2 {
  position: relative;
  padding-top: var(--space-6);
  border-top: 1px solid var(--calila-borda);
  font-size: 1.3125em;
  font-weight: 700;
  line-height: var(--article-heading-h2-leading);
}

.article-prose h3 {
  font-size: 1.125em;
  font-weight: 600;
  line-height: var(--article-heading-leading);
}

.article-prose h2::before {
  content: '';
  position: absolute;
  top: -1px;
  left: 0;
  width: 2.75rem;
  height: 2px;
  background: var(--calila-accent);
}

.article-prose a {
  color: var(--calila-accent-hover);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}

.article-prose a:hover {
  color: var(--calila-laranja-escuro);
}

.article-prose strong {
  font-weight: 600;
  color: var(--calila-texto);
  letter-spacing: 0.005em;
}

.article-prose blockquote {
  margin: 0;
  padding: var(--space-5) var(--space-6);
  border-left: 3px solid var(--calila-accent);
  background: var(--calila-accent-muted);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  font-size: 1.0625em;
  font-weight: 500;
  font-style: normal;
  line-height: var(--article-quote-leading);
  letter-spacing: 0.006em;
  color: var(--calila-texto);
}

.article-prose ul,
.article-prose ol {
  margin: 0;
  padding-left: 1.4em;
}

.article-prose li + li {
  margin-top: 0.5em;
  line-height: var(--article-body-leading);
}

.article-prose figcaption,
.article-prose .wp-caption-text {
  margin-top: var(--article-media-inner-gap);
  margin-bottom: 0;
  font-family: var(--font-ui);
  font-size: var(--text-caption);
  font-weight: 500;
  letter-spacing: var(--tracking-ui);
  line-height: var(--leading-caption);
  color: var(--calila-meta);
  text-align: left;
}

/* ── Tags / rodapé da matéria ── */
.article-tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-top: var(--space-12);
  padding-top: var(--space-6);
  border-top: 1px solid var(--calila-borda);
}

.article-tags__label {
  font-family: var(--font-ui);
  font-size: var(--text-caption);
  font-weight: 600;
  letter-spacing: var(--tracking-category);
  text-transform: uppercase;
  color: var(--calila-meta);
  align-self: center;
  margin-right: var(--space-2);
}

.article-tags__link {
  display: inline-flex;
  align-items: center;
  min-height: var(--touch-min);
  padding: var(--space-2) var(--space-3);
  font-family: var(--font-ui);
  font-size: var(--text-caption);
  font-weight: 500;
  letter-spacing: var(--tracking-ui);
  color: var(--calila-texto-suave);
  background: var(--calila-branco);
  border: 1px solid var(--calila-borda);
  border-radius: var(--radius-sm);
  text-decoration: none;
  touch-action: manipulation;
  -webkit-tap-highlight-color: var(--interactive-tap-highlight);
  transition:
    border-color var(--duration-fast) var(--ease-standard),
    color var(--duration-fast) var(--ease-standard);
}

@media (hover: hover) {
  .article-tags__link:hover {
    border-color: var(--calila-accent-border);
    color: var(--calila-accent-hover);
  }
}

.article-tags__link:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
}

@media (min-width: 1024px) {
  .article-page__layout {
    display: grid;
    grid-template-columns: minmax(0, var(--measure-wide)) var(--ad-mpu-w);
    justify-content: center;
    align-items: start;
    gap: var(--space-8);
    width: 100%;
  }

  .article-page__content {
    max-width: none;
    margin-inline: 0;
    width: 100%;
  }

  .article-page__sidebar {
    position: static;
    width: var(--ad-mpu-w);
    max-width: none;
    margin: 0;
    padding: 0;
    border-top: none;
  }

  .article-prose {
    font-size: var(--text-article);
  }

  .article-header__title {
    font-size: clamp(2rem, 2.8vw, 2.75rem);
  }
}

@media (prefers-reduced-motion: reduce) {
  .article-tags__link {
    transition: none;
  }
}

/* ===== inner-page.css ===== */
/*
 * Páginas internas — arquivo, busca, matéria
 * Respiro abaixo do header sticky (main + sidebar alinhados).
 */

.page-layout.page-layout--inner {
  padding-top: var(--inner-page-top);
}

.page-layout--inner .page-layout__main {
  padding-bottom: var(--space-section-lg);
}

.page-layout--inner #main-content {
  display: flex;
  flex-direction: column;
  gap: var(--inner-page-gap);
}

.page-layout--inner #main-content > .content-section {
  margin-top: 0;
}

.page-layout--inner #main-content > .home-footer-ad {
  margin-top: 0;
  padding-top: var(--inner-page-block-gap);
  border-top: 1px solid var(--calila-borda);
}

/* ===== mobile.css ===== */
/*
 * Mobile-first — edge cases (320px, landscape, telas estreitas)
 */

@media (max-width: 359px) {
  :root {
    --page-gutter: var(--space-3);
    --inner-page-top: var(--space-6);
    --space-section: var(--space-8);
    --thumb-max-width-compact: 6.5rem;
    --thumb-min-height-inline: 4.25rem;
    --surface-list-item-padding-y: var(--space-3);
    --surface-list-item-padding-x: var(--space-2);
  }

  .site-header__utility-city span {
    max-width: 6rem;
  }

  .site-header__nav-link {
    padding: 0 var(--space-2);
  }

  .news-card--compact .news-card__link,
  .news-card--list .news-card__link {
    gap: var(--space-3);
  }

  .news-card-feed--dense .news-card--compact .news-card__figure,
  .news-card-feed--dense .news-card--list .news-card__figure {
    flex: 0 0 6.5rem;
    flex-basis: 6.5rem;
    width: 6.5rem;
    max-width: 6.5rem;
  }

  .news-card-feed--dense .news-card--compact .news-card__title,
  .news-card-feed--dense .news-card--list .news-card__title {
    font-size: 1rem;
    line-height: 1.3;
  }

  .news-card--featured .news-card__body {
    padding: var(--space-4) var(--space-4) var(--space-5);
  }

  .news-card--featured .news-card__title {
    font-size: var(--text-xl);
  }

  .article-header__title {
    font-size: 1.625rem;
  }

  .article-prose-ad,
  .article-inline-ad {
    margin-top: var(--space-8);
  }
}

@media (max-height: 32rem) and (orientation: landscape) {
  .site-header__utility {
    display: none;
  }

  .hero-grid {
    min-height: 0;
  }

  .hero-grid__main {
    min-height: 12.5rem;
  }

  .hero-grid__secondary-item {
    flex-basis: min(82vw, 16rem);
    min-height: 8rem;
  }

  .site-header__menu-dialog {
    width: min(100%, 22rem);
    margin-left: auto;
    margin-right: 0;
  }
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  overflow-x: clip;
}

@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;
  }
}

body {
  margin: 0;
  min-height: 100vh;
  min-height: 100dvh;
  background-color: var(--calila-fundo);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  touch-action: manipulation;
  -webkit-tap-highlight-color: rgba(166, 124, 58, 0.12);
}

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

a {
  color: inherit;
  text-decoration: none;
}

button {
  font: inherit;
  cursor: pointer;
  touch-action: manipulation;
}

:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
}

.skip-link {
  position: absolute;
  top: -100%;
  left: var(--page-gutter);
  z-index: 9999;
  padding: var(--space-3) var(--space-5);
  background: var(--calila-cafe);
  color: var(--calila-branco);
  border-radius: var(--radius-sm);
  font-family: var(--font-ui);
  font-weight: 600;
  font-size: var(--text-sm);
}

.skip-link:focus {
  top: max(var(--space-4), env(safe-area-inset-top, 0px));
  left: max(var(--page-gutter), env(safe-area-inset-left, 0px));
}

.app-shell {
  min-height: 100vh;
  min-height: 100dvh;
}

.page-layout {
  width: 100%;
  max-width: var(--content-max);
  margin: 0 auto;
  padding-inline: var(--page-gutter);
}

.page-layout--wide {
  max-width: var(--content-wide);
}

.page-layout__hero {
  margin-top: var(--space-4);
  margin-bottom: var(--space-5);
}

@media (min-width: 768px) {
  .page-layout__hero {
    margin-top: var(--space-6);
    margin-bottom: var(--space-section);
  }
}

.page-layout__main {
  display: flex;
  flex-direction: column;
  gap: var(--space-section);
  padding-bottom: var(--space-section-lg);
}

.page-layout__content {
  flex: 1;
  min-width: 0;
}

#main-content {
  scroll-margin-top: var(--space-4);
}

@media (min-width: 1024px) {
  .page-layout__main {
    flex-direction: row;
    align-items: flex-start;
    gap: var(--space-8);
  }

  .page-layout__sidebar {
    flex: 0 0 var(--sidebar-width);
    align-self: flex-start;
  }
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.animate-in {
  animation: fadeInUp 0.45s ease both;
}

.animate-in:nth-child(2) {
  animation-delay: 0.07s;
}

.animate-in:nth-child(3) {
  animation-delay: 0.14s;
}

@media (prefers-reduced-motion: reduce) {
  .animate-in {
    animation: none;
  }
}

/* ===== CalilaLogo.css ===== */
.calila-logo {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  color: inherit;
  text-decoration: none;
  touch-action: manipulation;
}

.calila-logo:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
  border-radius: var(--radius-sm);
}

.calila-logo__mark {
  display: inline-flex;
  min-width: 0;
  max-width: 100%;
}

.calila-logo__image {
  display: block;
  width: auto;
  max-width: 100%;
  object-fit: contain;
  object-position: left center;
}

/* Header — marca como âncora central no mobile */
.calila-logo--header {
  width: 100%;
}

.calila-logo--header .calila-logo__mark {
  margin-inline: auto;
}

.calila-logo--header .calila-logo__image {
  --logo-h: clamp(2.5rem, 7.5vw, 3.25rem);
  height: var(--logo-h);
  max-width: min(100%, calc(var(--logo-h) * 449 / 180));
  object-position: center;
}

.calila-logo--motion.calila-logo--header .logo-motion__brand .calila-logo__image {
  --logo-h: clamp(2.125rem, 6.5vw, 2.875rem);
  height: var(--logo-h);
  max-width: min(100%, calc(var(--logo-h) * 449 / 180));
  object-position: center;
}

.calila-logo--footer .calila-logo__image {
  --logo-h: 2.875rem;
  height: var(--logo-h);
  max-width: min(100%, calc(var(--logo-h) * 449 / 180));
}

@media (min-width: 768px) {
  .calila-logo--header {
    width: auto;
  }

  .calila-logo--header .calila-logo__mark {
    margin-inline: 0;
  }

  .calila-logo--header .calila-logo__image,
  .calila-logo--motion.calila-logo--header .logo-motion__brand .calila-logo__image {
    --logo-h: 4.5rem;
    object-position: left center;
  }
}

@media (min-width: 1024px) {
  .calila-logo--header .calila-logo__image,
  .calila-logo--motion.calila-logo--header .logo-motion__brand .calila-logo__image {
    --logo-h: 4.875rem;
  }
}

/* ===== LogoMotion.css ===== */
/* Lockup comemorativo — header */

.calila-logo--motion {
  min-width: 0;
  max-width: 100%;
}

.calila-logo--motion .logo-motion {
  display: inline-flex;
  max-width: 100%;
  min-width: 0;
}

.logo-motion__row {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  min-width: 0;
}

.logo-motion__brand {
  flex-shrink: 0;
  display: inline-flex;
  opacity: 1;
  transform: none;
}

.logo-motion__brand .calila-logo__image {
  display: block;
}

.logo-motion__anniversary {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  margin-left: var(--space-2);
  padding-left: var(--space-2);
  border-left: 2px solid var(--calila-accent-border);
  opacity: 1;
  transform: none;
  pointer-events: none;
}

.logo-motion__since-wrap {
  position: relative;
  display: inline-block;
  filter: drop-shadow(0 0.5px 0 rgba(107, 69, 16, 0.35));
}

.logo-motion__since {
  display: block;
  font-family: var(--font-ui);
  font-size: 0.8125rem;
  font-weight: var(--card-label-weight, 600);
  letter-spacing: 0.05em;
  line-height: var(--leading-tight);
  text-transform: uppercase;
  white-space: nowrap;
}

/* Base ouro — sempre visível */
.logo-motion__since--base {
  color: transparent;
  background-image: linear-gradient(
    180deg,
    #e8c66a 0%,
    #c9922e 38%,
    #b8731a 62%,
    #8f5a14 100%
  );
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* Reflexo — camada sobreposta, só o brilho se move */
.logo-motion__since--shine {
  position: absolute;
  inset: 0;
  color: transparent;
  pointer-events: none;
  background-image: linear-gradient(
    100deg,
    transparent 0%,
    transparent 36%,
    rgba(255, 248, 220, 0.45) 44%,
    rgba(255, 255, 255, 1) 50%,
    rgba(255, 248, 220, 0.45) 56%,
    transparent 64%,
    transparent 100%
  );
  background-size: 55% 100%;
  background-repeat: no-repeat;
  background-position: 180% 50%;
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* ── Entrada: logo → desde 2006 ── */
.logo-motion--intro .logo-motion__brand {
  opacity: 0;
  transform: translateY(3px);
  animation: logo-motion-brand-in 1.15s cubic-bezier(0.22, 1, 0.36, 1) 0.15s forwards;
}

.logo-motion--intro .logo-motion__anniversary {
  opacity: 0;
  transform: translateX(6px);
  animation: logo-motion-anni-in 1s cubic-bezier(0.22, 1, 0.36, 1) 1.55s forwards;
}

@keyframes logo-motion-brand-in {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes logo-motion-anni-in {
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.logo-motion.logo-motion--loop {
  --logo-motion-loop: 5s;
}

.logo-motion.logo-motion--loop .logo-motion__since--shine {
  animation: logo-motion-gold-sheen var(--logo-motion-loop) cubic-bezier(0.4, 0.05, 0.2, 1) infinite;
}

@keyframes logo-motion-gold-sheen {
  0%,
  40%,
  100% {
    background-position: 180% 50%;
  }

  56% {
    background-position: -80% 50%;
  }
}

@media (min-width: 768px) {
  .logo-motion__anniversary {
    margin-left: var(--space-3);
    padding-left: var(--space-3);
  }

  .logo-motion__since {
    font-size: 0.9375rem;
    letter-spacing: 0.06em;
  }
}

@media (min-width: 1024px) {
  .logo-motion__since {
    font-size: 1rem;
    letter-spacing: 0.065em;
  }
}

@media (prefers-reduced-motion: reduce) {
  .logo-motion--intro .logo-motion__brand,
  .logo-motion--intro .logo-motion__anniversary {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }

  .logo-motion__since--shine {
    display: none;
  }

  .logo-motion.logo-motion--loop .logo-motion__since--shine {
    animation: none !important;
  }

  .logo-motion__since--base {
    color: var(--calila-laranja-escuro) !important;
    background: none !important;
    -webkit-text-fill-color: currentColor !important;
  }

  .logo-motion__since-wrap {
    filter: none;
  }
}

/* ===== SiteHeader.css ===== */
.site-header {
  position: relative;
  z-index: 100;
  padding-top: env(safe-area-inset-top, 0);
  background: var(--calila-branco);
  box-shadow: var(--shadow-header);
}

.site-header__utility-inner,
.site-header__nav-inner {
  display: flex;
  align-items: center;
  width: 100%;
  max-width: var(--content-max);
  margin: 0 auto;
  padding: 0 var(--page-gutter);
}

.site-header__brand-inner {
  width: 100%;
  max-width: var(--content-max);
  margin: 0 auto;
  padding: 0 var(--page-gutter);
}

/* ── Faixa 1: utility — data + município ── */
.site-header__utility {
  background: var(--calila-barra-util);
  border-bottom: 1px solid var(--calila-borda);
}

.site-header__utility-inner {
  justify-content: space-between;
  gap: var(--space-3);
  height: var(--utility-height);
  min-height: var(--utility-height);
  padding-top: 0;
  padding-bottom: 0;
}

.site-header__utility-date {
  display: block;
  font-family: var(--font-ui);
  font-size: var(--text-caption);
  font-weight: 400;
  color: var(--calila-meta);
  text-transform: lowercase;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}

.site-header__utility-date::first-letter {
  text-transform: uppercase;
}

.site-header__utility-city {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  flex-shrink: 0;
  max-width: min(11rem, 42vw);
  min-height: calc(var(--touch-min) - 0.5rem);
  padding: 0 var(--space-3);
  border: 1px solid var(--calila-borda);
  border-radius: 999px;
  background: var(--calila-branco);
  font-family: var(--font-ui);
  font-size: var(--text-caption);
  font-weight: 600;
  color: var(--calila-texto-suave);
  touch-action: manipulation;
  cursor: pointer;
  transition:
    border-color var(--duration-fast) var(--ease-standard),
    color var(--duration-fast) var(--ease-standard),
    background-color var(--duration-fast) var(--ease-standard);
}

.site-header__utility-city span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.site-header__utility-city svg {
  flex-shrink: 0;
  color: var(--calila-laranja-escuro);
}

.site-header__utility-city:hover {
  border-color: color-mix(in srgb, var(--calila-laranja) 40%, var(--calila-borda));
  color: var(--calila-texto);
}

.site-header__utility-city:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
}

/* ── Faixa 2: mobile ☰ | logo | 🔍 (colunas iguais = logo optic. centrado) ── */
.site-header__brand {
  background: var(--calila-branco);
  border-bottom: 1px solid var(--calila-borda);
}

.site-header__brand-inner {
  display: grid;
  grid-template-columns: 2.75rem minmax(0, 1fr) 2.75rem;
  align-items: center;
  column-gap: var(--space-2);
  min-height: var(--header-brand-min);
  padding-top: var(--space-2);
  padding-bottom: var(--space-2);
}

.site-header__brand .calila-logo {
  justify-self: center;
  justify-content: center;
  min-width: 0;
  max-width: 100%;
}

.site-header__menu-btn {
  justify-self: start;
}

.site-header__brand-search {
  justify-self: end;
}

.site-header__brand-ad {
  display: none;
  min-width: 0;
}

.site-header__brand-ad .ad-slot--header {
  width: 100%;
  max-width: var(--ad-banner-sm-w);
}

.site-header__icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 2.75rem;
  height: 2.75rem;
  min-width: 2.75rem;
  min-height: 2.75rem;
  padding: 0;
  border: none;
  background: transparent;
  color: var(--calila-texto);
  border-radius: var(--radius-sm);
  touch-action: manipulation;
  transition: background-color var(--duration-fast) var(--ease-standard);
}

.site-header__icon-btn:hover {
  background: var(--calila-fundo);
}

.site-header__icon-btn:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
}


/* ── Faixa 3: nav amarela — mobile-first (pills + scroll; completa ≥768) ── */
.site-header__nav {
  width: 100%;
  background: var(--calila-amarelo);
}

.site-header__nav-inner {
  justify-content: flex-start;
  gap: 0;
  min-height: var(--nav-height);
  height: var(--nav-height);
  padding-top: 0;
  padding-bottom: 0;
}

.site-header__nav-scroll {
  flex: 1;
  min-width: 0;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x proximity;
  scroll-padding-inline: var(--space-2);
  scrollbar-width: none;
  touch-action: pan-x pan-y;
}

@media (max-width: 767px) {
  .site-header__nav-scroll {
    mask-image: none;
  }
}

@media (min-width: 768px) {
  .site-header__nav-scroll {
    mask-image: linear-gradient(to right, #000 calc(100% - 1.5rem), transparent);
  }
}

.site-header__nav-scroll::-webkit-scrollbar {
  display: none;
}

.site-header__nav-list {
  display: flex;
  align-items: stretch;
  min-width: min-content;
  height: 100%;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: var(--space-1);
}

.site-header__nav-item {
  flex-shrink: 0;
  scroll-snap-align: start;
}

/* Mobile: só editorias principais na faixa; submenus e secundários no drawer */
.site-header__nav-item--extended {
  display: none;
}

.site-header__nav-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-1);
  height: 100%;
  min-height: var(--nav-height);
  padding: 0 var(--space-3);
  font-family: var(--font-ui);
  font-size: var(--nav-font-size);
  font-weight: 600;
  letter-spacing: 0.01em;
  text-transform: none;
  color: var(--calila-branco);
  white-space: nowrap;
  touch-action: manipulation;
  border: none;
  border-radius: var(--radius-sm);
  background: transparent;
  cursor: pointer;
  text-decoration: none;
  transition:
    background-color var(--duration-fast) var(--ease-standard),
    color var(--duration-fast) var(--ease-standard);
}

.site-header__nav-link:hover {
  background: rgba(0, 0, 0, 0.1);
}

.site-header__nav-link:focus-visible {
  outline: 2px solid var(--calila-branco);
  outline-offset: 2px;
}

.site-header__nav-link--active {
  background: rgba(0, 0, 0, 0.14);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
}

.site-header__nav-link--open {
  background: rgba(0, 0, 0, 0.14);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
}

/* Submenu aberto: destaca o trigger e suprime “ativo” dos outros itens */
.site-header__nav-item--submenu.is-open > .site-header__nav-trigger,
.site-header__nav-item--submenu:focus-within > .site-header__nav-trigger {
  background: rgba(0, 0, 0, 0.14);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
}

.site-header__nav.has-open-submenu .site-header__nav-link--active:not(.site-header__nav-link--open) {
  background: transparent;
  box-shadow: none;
}

@media (hover: hover) {
  .site-header__nav-item--submenu:hover > .site-header__nav-trigger {
    background: rgba(0, 0, 0, 0.14);
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
  }

  .site-header__nav:has(.site-header__nav-item--submenu:hover) .site-header__nav-link--active:not(.site-header__nav-trigger) {
    background: transparent;
    box-shadow: none;
  }
}

.site-header__nav-link--highlight {
  background: rgba(0, 0, 0, 0.12);
}

.site-header__nav-chevron {
  flex-shrink: 0;
  width: 0.625rem;
  height: 0.625rem;
  opacity: 0.85;
  transition: transform var(--duration-fast) var(--ease-standard);
}

.site-header__nav-item--submenu.is-open .site-header__nav-chevron {
  transform: rotate(180deg);
}

/* ── Submenus desktop ── */
.site-header__submenu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 40;
  min-width: 16rem;
  max-height: min(70vh, 32rem);
  max-height: min(70dvh, 32rem);
  overflow: auto;
  overscroll-behavior: contain;
  background: var(--calila-branco);
  border: 1px solid var(--calila-borda);
  border-radius: 0 0 var(--radius-lg) var(--radius-lg);
  box-shadow: var(--shadow-card-hover);
}

.site-header__submenu-toolbar {
  padding: var(--space-3) var(--space-4);
  border-bottom: 1px solid var(--calila-borda);
  background: var(--calila-fundo);
}

.site-header__submenu-toolbar-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
  margin-bottom: var(--space-2);
}

.site-header__submenu-heading {
  margin: 0;
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  font-weight: 600;
  line-height: var(--leading-ui);
  letter-spacing: var(--tracking-ui);
  color: var(--calila-texto);
}

.site-header__submenu-mine {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  margin-left: auto;
  min-height: var(--touch-min);
  padding: 0 0.75rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--calila-verde) 12%, var(--calila-branco));
  font-family: var(--font-ui);
  font-size: var(--text-caption);
  font-weight: 600;
  color: var(--calila-verde-escuro);
  text-decoration: none;
  transition: background-color var(--duration-fast) var(--ease-standard);
}

.site-header__submenu-mine:hover {
  background: color-mix(in srgb, var(--calila-verde) 20%, var(--calila-branco));
}

.site-header__submenu-mine:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
}

.site-header__submenu-search {
  width: 100%;
  min-height: 2.25rem;
  padding: 0.375rem 0.75rem;
  border: 1px solid var(--calila-borda);
  border-radius: var(--radius-sm);
  background: var(--calila-branco);
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  font-weight: 400;
  line-height: var(--leading-ui);
  color: var(--calila-texto);
  transition: border-color var(--duration-fast) var(--ease-standard);
}

.site-header__submenu-search::placeholder {
  color: var(--calila-meta-claro);
  font-weight: 400;
}

.site-header__submenu-search:hover {
  border-color: color-mix(in srgb, var(--calila-laranja) 30%, var(--calila-borda));
}

.site-header__submenu-search:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
  border-color: var(--calila-laranja);
}

.site-header__submenu-empty {
  margin: 0;
  padding: var(--space-6) 0;
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  color: var(--calila-meta);
  text-align: center;
  grid-column: 1 / -1;
}

.site-header__submenu-inner {
  display: grid;
  gap: var(--space-4);
  padding: var(--space-4);
}

.site-header__submenu--editorias .site-header__submenu-inner {
  grid-template-columns: 1fr;
}

.site-header__submenu--editorias.site-header__submenu--cols-2 .site-header__submenu-inner {
  grid-template-columns: repeat(2, minmax(11rem, 1fr));
}

.site-header__submenu--editorias.site-header__submenu--cols-3 .site-header__submenu-inner {
  grid-template-columns: repeat(3, minmax(10rem, 1fr));
}

.site-header__submenu--editorias.site-header__submenu--cols-4 .site-header__submenu-inner {
  grid-template-columns: repeat(4, minmax(9rem, 1fr));
}

.site-header__submenu--municipios .site-header__submenu-inner {
  grid-template-columns: repeat(2, minmax(10rem, 1fr));
}

.site-header__submenu-group {
  min-width: 0;
}

.site-header__submenu-group-title {
  margin: 0 0 var(--space-3);
  padding-bottom: var(--space-2);
  border-bottom: 1px solid var(--calila-borda);
  font-family: var(--font-ui);
  font-size: var(--text-caption);
  font-weight: 700;
  letter-spacing: var(--tracking-category);
  text-transform: uppercase;
  color: var(--calila-meta);
}

.site-header__submenu-group--sisal .site-header__submenu-group-title {
  color: var(--calila-laranja-escuro);
}

.site-header__submenu-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-1) var(--space-3);
}

.site-header__submenu-group--bare {
  margin: 0;
}

.site-header__submenu--editorias .site-header__submenu-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}

.site-header__submenu-link {
  display: block;
  padding: var(--space-2) var(--space-1);
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  font-weight: 500;
  line-height: var(--leading-ui);
  color: var(--calila-texto-suave);
  border-radius: var(--radius-sm);
  text-decoration: none;
  transition:
    color var(--duration-fast) var(--ease-standard),
    background-color var(--duration-fast) var(--ease-standard);
}

.site-header__submenu-link:hover {
  color: var(--calila-accent-hover);
  background: var(--calila-accent-muted);
}

.site-header__submenu-link--current {
  font-weight: 700;
  color: var(--calila-verde-escuro);
  background: color-mix(in srgb, var(--calila-verde) 10%, var(--calila-branco));
}

.site-header__submenu-link:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
}

@media (max-width: 767px) {
  .site-header__submenu-search {
    min-height: var(--touch-min);
    font-size: max(1rem, var(--text-sm));
    padding: 0 var(--space-4);
  }
}

@media (min-width: 768px) {
  .site-header__nav-inner {
    gap: var(--space-4);
    padding-top: 0;
    padding-bottom: 0;
  }

  .site-header__nav-scroll {
    mask-image: none;
    scroll-snap-type: none;
  }

  .site-header__nav-list {
    align-items: stretch;
    gap: var(--nav-link-gap);
    padding: 0 var(--space-2) 0 0;
  }

  .site-header__nav-item--extended {
    display: list-item;
  }

  .site-header__nav-link {
    min-height: var(--nav-height);
    padding: 0 var(--nav-link-padding-x);
    border-radius: 0;
    border-bottom: 3px solid transparent;
    letter-spacing: 0.01em;
  }

  .site-header__nav-link--active {
    background: rgba(0, 0, 0, 0.1);
    box-shadow: none;
    border-bottom-color: var(--calila-laranja-escuro);
  }

  .site-header__nav-link--open {
    background: rgba(0, 0, 0, 0.12);
    border-bottom-color: var(--calila-laranja-escuro);
  }

  .site-header__nav-item--submenu.is-open > .site-header__nav-trigger,
  .site-header__nav-item--submenu:focus-within > .site-header__nav-trigger {
    background: rgba(0, 0, 0, 0.12);
    border-bottom-color: var(--calila-laranja-escuro);
  }

  .site-header__nav.has-open-submenu .site-header__nav-link--active:not(.site-header__nav-link--open) {
    background: transparent;
    border-bottom-color: transparent;
  }

  @media (hover: hover) {
    .site-header__nav-item--submenu:hover > .site-header__nav-trigger {
      background: rgba(0, 0, 0, 0.12);
      border-bottom-color: var(--calila-laranja-escuro);
    }

    .site-header__nav:has(.site-header__nav-item--submenu:hover) .site-header__nav-link--active:not(.site-header__nav-trigger) {
      background: transparent;
      border-bottom-color: transparent;
    }
  }

  .site-header__nav-link--highlight {
    background: rgba(0, 0, 0, 0.1);
  }

  .site-header__nav-item--submenu {
    position: static;
  }

  .site-header__submenu {
    display: block;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    left: 50%;
    right: auto;
    width: min(var(--content-wide), calc(100dvw - var(--page-gutter) * 2));
    min-width: 0;
    transform: translateX(-50%) translateY(0.25rem);
    transition:
      opacity var(--duration-fast) var(--ease-standard),
      transform var(--duration-fast) var(--ease-standard),
      visibility 0s linear var(--duration-fast);
  }

  @media (hover: hover) {
    .site-header__nav-item--submenu:hover .site-header__submenu,
    .site-header__nav-item--submenu:focus-within .site-header__submenu {
      visibility: visible;
      opacity: 1;
      pointer-events: auto;
      transform: translateX(-50%) translateY(0);
      transition-delay: 0s;
    }
  }

  .site-header__nav-item--submenu.is-open .site-header__submenu {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0);
  }
}

@media (min-width: 1024px) {
  .site-header__submenu--municipios .site-header__submenu-inner {
    grid-template-columns: repeat(3, minmax(9rem, 1fr));
  }
}

.site-header__nav-search {
  display: none;
  align-items: center;
  gap: var(--space-2);
  flex-shrink: 0;
  min-height: var(--nav-height);
  padding: 0 var(--space-4);
  margin-left: auto;
  border: none;
  background: transparent;
  color: var(--calila-branco);
  font-family: var(--font-ui);
  font-size: var(--nav-font-size);
  font-weight: 600;
  touch-action: manipulation;
  transition: background-color var(--duration-fast) var(--ease-standard);
}

.site-header__nav-search:hover {
  background: rgba(0, 0, 0, 0.08);
}

.site-header__nav-search:focus-visible {
  outline: 2px solid var(--calila-branco);
  outline-offset: -2px;
}

.site-header__nav-search-label {
  letter-spacing: 0.01em;
}

/* ── Painel de busca ── */
.site-header__search-panel {
  width: 100%;
  background: var(--calila-branco);
  border-bottom: 1px solid var(--calila-borda);
}

.site-header__search-form {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  width: 100%;
  max-width: var(--content-max);
  margin: 0 auto;
  padding: var(--space-4) var(--page-gutter);
}

@media (min-width: 640px) {
  .site-header__search-form {
    flex-direction: row;
    gap: var(--space-4);
    padding: var(--space-5) var(--page-gutter);
  }
}

.site-header__search-input {
  flex: 1;
  min-width: 0;
  min-height: var(--touch-min);
  padding: 0 var(--space-4);
  border: 1px solid var(--calila-borda);
  border-radius: var(--radius-sm);
  background: var(--calila-fundo);
  font-family: var(--font-ui);
  font-size: max(1rem, var(--text-base)); /* evita zoom iOS */
  font-weight: 400;
  letter-spacing: 0.01em;
  color: var(--calila-texto);
}

.site-header__search-input::placeholder {
  color: var(--calila-meta-claro);
  font-weight: 400;
}

.site-header__search-input:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
  background: var(--calila-branco);
}

.site-header__search-submit {
  flex-shrink: 0;
  min-height: var(--touch-min);
  padding: 0 var(--space-5);
  border: none;
  border-radius: var(--radius-sm);
  background: var(--calila-laranja);
  color: var(--calila-branco);
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  font-weight: 700;
  letter-spacing: var(--tracking-ui);
  touch-action: manipulation;
  transition: background-color var(--duration-fast) var(--ease-standard);
}

.site-header__search-submit:hover {
  background: var(--calila-laranja-escuro);
}

.site-header__search-submit:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
}

/* Dialogs — mobile-first: bottom sheet (cidade) + drawer full (menu) */
.site-header__menu-dialog,
.site-header__city-dialog {
  width: 100%;
  max-width: 100%;
  max-height: 100vh;
  max-height: 100dvh;
  margin: 0;
  padding: 0;
  padding-top: env(safe-area-inset-top, 0);
  border: none;
  background: var(--calila-branco);
  color: var(--calila-texto);
  overflow: hidden;
}

.site-header__menu-dialog {
  height: 100vh;
  height: 100dvh;
  touch-action: pan-y;
}

.site-header__menu-dialog[open] {
  display: flex;
  flex-direction: column;
}

.site-header__city-dialog {
  width: 100%;
  height: auto;
  max-height: min(88vh, 100vh);
  max-height: min(88dvh, 100dvh);
  margin: auto 0 0;
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
  touch-action: pan-y;
}

/* Só com [open]: display:flex anula o display:none nativo do <dialog> fechado */
.site-header__city-dialog[open] {
  display: flex;
  flex-direction: column;
}

.site-header__menu-dialog::backdrop,
.site-header__city-dialog::backdrop {
  background: rgba(0, 0, 0, 0.45);
}

.site-header__dialog-section--search {
  padding-top: var(--space-5);
  padding-bottom: var(--space-5);
}

.site-header__drawer-search {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  width: 100%;
  min-height: var(--touch-min);
  padding: var(--space-3) var(--space-4);
  border: 1px solid var(--calila-borda);
  border-radius: var(--radius-sm);
  background: var(--calila-fundo);
  font-family: var(--font-ui);
  font-size: var(--text-base);
  font-weight: 600;
  color: var(--calila-texto-suave);
  text-align: left;
  touch-action: manipulation;
  transition: background-color var(--duration-fast) var(--ease-standard);
}

.site-header__drawer-search:hover {
  background: var(--calila-branco);
}

.site-header__drawer-search:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
}

.site-header__dialog-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  padding: var(--space-4) max(var(--space-5), env(safe-area-inset-right, 0px))
    var(--space-4) max(var(--space-5), env(safe-area-inset-left, 0px));
  border-bottom: 1px solid var(--calila-borda);
  background: var(--calila-fundo);
}

.site-header__dialog-title {
  margin: 0;
  font-family: var(--font-ui);
  font-size: var(--text-lg);
  font-weight: 700;
  line-height: var(--leading-tight);
  text-wrap: balance;
}

.site-header__dialog-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-inline: max(0px, env(safe-area-inset-left, 0px)) max(0px, env(safe-area-inset-right, 0px));
  padding-bottom: max(var(--space-8), env(safe-area-inset-bottom));
}

.site-header__dialog-section {
  padding: var(--space-6) max(var(--space-5), env(safe-area-inset-right, 0px))
    var(--space-6) max(var(--space-5), env(safe-area-inset-left, 0px));
  border-bottom: 1px solid var(--calila-borda);
}

.site-header__dialog-section-title {
  margin: 0 0 var(--space-5);
  font-family: var(--font-ui);
  font-size: var(--text-caption);
  font-weight: 700;
  letter-spacing: var(--tracking-category);
  text-transform: uppercase;
  color: var(--calila-meta);
}

.site-header__dialog-section--quick {
  padding-top: var(--space-4);
  padding-bottom: var(--space-5);
}

.site-header__drawer-quick {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}

.site-header__drawer-quick-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--touch-min);
  padding: 0 var(--space-4);
  border: 1px solid var(--calila-borda);
  border-radius: 999px;
  background: var(--calila-fundo);
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--calila-texto-suave);
  text-decoration: none;
  touch-action: manipulation;
  transition:
    background-color var(--duration-fast) var(--ease-standard),
    border-color var(--duration-fast) var(--ease-standard),
    color var(--duration-fast) var(--ease-standard);
}

.site-header__drawer-quick-link--highlight {
  border-color: color-mix(in srgb, var(--calila-laranja) 35%, var(--calila-borda));
  background: color-mix(in srgb, var(--calila-laranja) 8%, var(--calila-fundo));
  color: var(--calila-laranja-escuro);
}

.site-header__drawer-quick-link--active {
  border-color: var(--calila-accent-border);
  background: var(--calila-accent-muted);
  color: var(--calila-accent-hover);
}

.site-header__drawer-quick-link:hover {
  border-color: var(--calila-accent-border);
  color: var(--calila-accent-hover);
}

.site-header__drawer-quick-link:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
}

.site-header__drawer-link--active {
  color: var(--calila-accent-hover);
  padding-left: var(--space-3);
  border-left: 3px solid var(--calila-accent);
}

.site-header__drawer-links {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}

/* WP `wp_nav_menu` — mesma escala de toque do drawer React */
.site-header__drawer-links > .menu-item > a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  width: 100%;
  min-height: var(--touch-min);
  padding: var(--space-3) 0;
  font-family: var(--font-ui);
  font-size: var(--text-base);
  font-weight: 600;
  color: var(--calila-texto);
  text-decoration: none;
  touch-action: manipulation;
}

.site-header__drawer-links > .menu-item.current-menu-item > a,
.site-header__drawer-links > .menu-item.current-menu-ancestor > a {
  color: var(--calila-accent-hover);
  padding-left: var(--space-3);
  border-left: 3px solid var(--calila-accent);
}

.site-header__drawer-links .sub-menu {
  list-style: none;
  margin: 0 0 var(--space-3);
  padding: 0 0 0 var(--space-3);
  border-left: 1px solid var(--calila-borda);
  display: flex;
  flex-direction: column;
}

.site-header__drawer-links .sub-menu a {
  display: flex;
  align-items: center;
  min-height: var(--touch-min);
  padding: var(--space-2) 0;
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  font-weight: 500;
  color: var(--calila-texto-suave);
  text-decoration: none;
  touch-action: manipulation;
}

@media (hover: hover) {
  .site-header__drawer-links > .menu-item > a:hover,
  .site-header__drawer-links .sub-menu a:hover {
    color: var(--calila-accent-hover);
  }
}

.site-header__drawer-links > .menu-item > a:focus-visible,
.site-header__drawer-links .sub-menu a:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
  border-radius: var(--radius-sm);
}

.site-header__drawer-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  width: 100%;
  min-height: var(--touch-min);
  padding: var(--space-3) 0;
  border: none;
  background: transparent;
  font-family: var(--font-ui);
  font-size: var(--text-base);
  font-weight: 600;
  color: var(--calila-texto);
  text-align: left;
  text-decoration: none;
  touch-action: manipulation;
  transition: color var(--duration-fast) var(--ease-standard);
}

.site-header__drawer-trigger {
  cursor: pointer;
}

.site-header__drawer-chevron {
  flex-shrink: 0;
  width: 0.75rem;
  height: 0.75rem;
  opacity: 0.65;
  transition: transform var(--duration-fast) var(--ease-standard);
}

.site-header__drawer-chevron--open {
  transform: rotate(180deg);
}

.site-header__drawer-submenu {
  padding: 0 0 var(--space-4) var(--space-3);
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}

.site-header__drawer-submenu-title {
  margin: 0 0 var(--space-3);
  font-family: var(--font-ui);
  font-size: var(--text-caption);
  font-weight: 700;
  letter-spacing: var(--tracking-category);
  text-transform: uppercase;
  color: var(--calila-meta);
}

.site-header__drawer-submenu-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-1) var(--space-4);
}

@media (min-width: 360px) {
  .site-header__drawer-submenu-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.site-header__drawer-submenu-link {
  display: flex;
  align-items: center;
  min-height: var(--touch-min);
  padding: var(--space-2) 0;
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  font-weight: 500;
  color: var(--calila-texto-suave);
  text-decoration: none;
  touch-action: manipulation;
  transition: color var(--duration-fast) var(--ease-standard);
}

.site-header__drawer-submenu-link:hover {
  color: var(--calila-accent-hover);
}

.site-header__drawer-submenu-link:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
  border-radius: var(--radius-sm);
}

.site-header__drawer-link:hover {
  color: var(--calila-accent-hover);
}

.site-header__drawer-link:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
  border-radius: var(--radius-sm);
}

.site-header__drawer-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-2) var(--space-5);
}

@media (min-width: 360px) {
  .site-header__drawer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.site-header__drawer-grid-link {
  display: flex;
  align-items: center;
  min-height: var(--touch-min);
  padding: var(--space-2) 0;
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  font-weight: 500;
  color: var(--calila-texto-suave);
  touch-action: manipulation;
  transition: color var(--duration-fast) var(--ease-standard);
}

.site-header__drawer-grid-link:hover {
  color: var(--calila-accent-hover);
}

.site-header__drawer-grid-link:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
  border-radius: var(--radius-sm);
}

.site-header__drawer-city {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-1);
  width: 100%;
  min-height: var(--touch-min);
  padding: var(--space-4);
  border: 1px solid var(--calila-borda);
  border-radius: var(--radius-lg);
  background: var(--interactive-hover-bg);
  text-align: left;
  touch-action: manipulation;
  transition:
    border-color 0.15s ease,
    background-color 0.15s ease;
}

.site-header__drawer-city:hover {
  border-color: var(--calila-accent-border);
  background: var(--calila-accent-muted);
}

.site-header__drawer-city:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
}

.site-header__drawer-city-label {
  font-family: var(--font-ui);
  font-size: var(--text-caption);
  font-weight: 700;
  letter-spacing: var(--tracking-category);
  text-transform: uppercase;
  color: var(--calila-meta);
}

.site-header__drawer-city-value {
  font-family: var(--font-editorial);
  font-size: var(--text-base);
  font-weight: 600;
  color: var(--calila-texto);
}

.site-header__drawer-meta {
  display: flex;
  flex-direction: column;
  padding: var(--space-5);
}

.site-header__drawer-meta a {
  display: flex;
  align-items: center;
  min-height: var(--touch-min);
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  font-weight: 500;
  color: var(--calila-meta);
  touch-action: manipulation;
  transition: color var(--duration-fast) var(--ease-standard);
}

.site-header__drawer-meta a:hover {
  color: var(--calila-accent-hover);
}

.site-header__drawer-meta a:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
  border-radius: var(--radius-sm);
}

.site-header__city-search-wrap {
  padding: var(--space-4) max(var(--space-5), env(safe-area-inset-right, 0px))
    var(--space-4) max(var(--space-5), env(safe-area-inset-left, 0px));
  border-bottom: 1px solid var(--calila-borda);
}

.site-header__city-search {
  width: 100%;
  min-height: var(--touch-min);
  padding: 0 var(--space-4);
  border: 1px solid var(--calila-borda);
  border-radius: var(--radius-sm);
  background: var(--calila-fundo);
  font-family: var(--font-ui);
  font-size: max(1rem, var(--text-base)); /* evita zoom iOS */
  font-weight: 400;
  letter-spacing: 0.01em;
  color: var(--calila-texto);
}

.site-header__city-search::placeholder {
  color: var(--calila-meta-claro);
  font-weight: 400;
}

.site-header__city-search:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
  background: var(--calila-branco);
}

.site-header__city-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: var(--space-3) var(--space-5) max(var(--space-8), env(safe-area-inset-bottom));
}

.site-header__city-empty {
  margin: 0;
  padding: var(--space-8) 0;
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  color: var(--calila-meta);
  text-align: center;
}

.site-header__city-group {
  padding: var(--space-3) 0;
  border-bottom: 1px solid var(--calila-borda);
}

.site-header__city-group:last-child {
  border-bottom: none;
}

.site-header__city-group-title {
  margin: 0 0 var(--space-3);
  font-family: var(--font-ui);
  font-size: var(--text-caption);
  font-weight: 700;
  letter-spacing: var(--tracking-category);
  text-transform: uppercase;
  color: var(--calila-accent);
}

.site-header__city-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.site-header__city-option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  box-sizing: border-box;
  width: 100%;
  min-height: var(--touch-min);
  padding: var(--space-2) var(--space-3);
  border: none;
  border-radius: var(--radius-sm);
  background: transparent;
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  font-weight: 500;
  line-height: var(--leading-ui);
  color: var(--calila-texto);
  text-align: left;
  text-decoration: none;
  touch-action: manipulation;
  transition:
    background-color var(--duration-fast) var(--ease-standard),
    color var(--duration-fast) var(--ease-standard);
}

.site-header__city-option:hover {
  background: var(--calila-fundo);
}

.site-header__city-option:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
}

.site-header__city-option--active {
  background: var(--calila-accent-muted);
  font-weight: 700;
  color: var(--calila-accent-hover);
}

.site-header__city-check {
  flex-shrink: 0;
  font-size: var(--text-sm);
  color: var(--calila-accent);
}


@media (min-width: 640px) {
  .site-header__utility-date {
    max-width: none;
  }
}

@media (min-width: 768px) {
  .site-header__brand-inner {
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: center;
    gap: var(--space-6);
    padding-top: var(--space-5);
    padding-bottom: var(--space-5);
  }

  .site-header__brand .calila-logo {
    justify-self: unset;
    justify-content: flex-start;
    width: auto;
    margin-right: auto;
  }

  .site-header__icon-btn {
    width: var(--touch-min);
    height: var(--touch-min);
    min-width: var(--touch-min);
    min-height: var(--touch-min);
  }

  .site-header__brand-search {
    display: none;
  }

  /* Busca migra da brand para a nav amarela a partir de 768 */
  .site-header__nav-search {
    display: inline-flex;
  }

  .site-header__brand-ad {
    display: flex;
    flex: 1 1 auto;
    justify-content: flex-end;
    max-width: var(--ad-leaderboard-w);
    margin-left: auto;
  }

  .site-header__brand-ad .ad-slot--header {
    max-width: var(--ad-leaderboard-w);
    align-items: flex-end;
  }

  .site-header__nav {
    position: relative;
    overflow-x: visible;
  }

  .site-header__nav-scroll {
    overflow-x: visible;
  }
}

@media (min-width: 1024px) {
  .site-header__menu-btn {
    display: none;
  }

  .site-header__menu-dialog {
    width: min(22rem, 92vw);
    height: 100dvh;
    margin-right: auto;
    border-radius: 0;
  }

  .site-header__city-dialog {
    width: min(26rem, 92vw);
    height: min(80dvh, 100dvh);
    max-height: min(80dvh, 100dvh);
    margin: auto;
    border-radius: var(--radius-lg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-header__icon-btn,
  .site-header__nav-link,
  .site-header__nav-search,
  .site-header__search-submit,
  .site-header__utility-city,
  .site-header__drawer-link,
  .site-header__drawer-grid-link,
  .site-header__drawer-city,
  .site-header__drawer-meta a,
  .site-header__city-option {
    transition: none;
  }
}

/* ===== SiteFooter.css ===== */
.site-footer {
  --footer-rule: color-mix(in srgb, var(--calila-borda) 85%, transparent);

  position: relative;
  margin-top: var(--space-section-lg);
  padding-block: var(--space-8) max(var(--space-8), env(safe-area-inset-bottom));
  padding-inline: max(var(--page-gutter), env(safe-area-inset-left))
    max(var(--page-gutter), env(safe-area-inset-right));
  /* Portal quiet: fundo neutro; marca só no filete fino do topo */
  background: var(--calila-footer);
  border-top: 1px solid color-mix(in srgb, var(--calila-amarelo) 45%, var(--calila-borda));
  color: var(--calila-texto);
}

.site-footer__inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  width: 100%;
  max-width: var(--content-wide);
  margin: 0 auto;
  min-width: 0;
}

/* ── Marca + CTA + redes (cluster denso, sem “vão” lateral) ── */
.site-footer__brand-block {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-4);
}

.site-footer__bar-brand {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
  width: 100%;
  min-width: 0;
}

.site-footer__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3);
  width: 100%;
}

@media (max-width: 767px) {
  .site-footer__brand-block {
    gap: var(--space-3);
  }

  .site-footer__actions {
    flex-wrap: nowrap;
    gap: var(--space-2);
  }

  .site-footer__whatsapp-cta {
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
  }

  .site-footer__social {
    flex-shrink: 0;
  }
}

.site-footer__whatsapp-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  width: 100%;
  min-height: var(--touch-min);
  padding: var(--space-2) var(--space-4);
  border-radius: var(--radius-sm);
  background: var(--calila-whatsapp);
  color: var(--calila-branco);
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  font-weight: 600;
  letter-spacing: var(--tracking-ui);
  text-decoration: none;
  touch-action: manipulation;
  -webkit-tap-highlight-color: var(--interactive-tap-highlight);
  transition:
    background-color var(--duration-fast) var(--ease-standard),
    transform var(--duration-fast) var(--ease-standard);
}

.site-footer__whatsapp-cta svg {
  flex-shrink: 0;
}

@media (hover: hover) {
  .site-footer__whatsapp-cta:hover {
    background: var(--calila-whatsapp-hover);
  }
}

.site-footer__whatsapp-cta:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
}

.site-footer__whatsapp-cta--placeholder {
  opacity: 0.55;
  cursor: default;
  pointer-events: none;
}

.site-footer__social {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
  list-style: none;
  margin: 0;
  padding: 0;
}

.site-footer__social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--touch-min);
  height: var(--touch-min);
  border: 1px solid var(--footer-rule);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--calila-branco) 80%, transparent);
  color: var(--calila-texto-suave);
  touch-action: manipulation;
  -webkit-tap-highlight-color: var(--interactive-tap-highlight);
  transition:
    color var(--duration-fast) var(--ease-standard),
    background-color var(--duration-fast) var(--ease-standard),
    border-color var(--duration-fast) var(--ease-standard);
}

@media (hover: hover) {
  .site-footer__social-link:hover {
    color: var(--calila-texto);
    background: var(--calila-branco);
    border-color: var(--calila-accent-border);
  }
}

.site-footer__social-link:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
}

/* ── Legal / copyright (mobile-first) ── */
.site-footer__legal {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  column-gap: var(--space-4);
  row-gap: var(--space-2);
  padding-top: var(--space-5);
  border-top: 1px solid var(--footer-rule);
}

.site-footer__copyright {
  grid-column: 1;
  margin: 0;
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  line-height: var(--leading-caption);
  color: var(--calila-meta);
}

.site-footer__top {
  grid-column: 2;
  display: inline-flex;
  align-items: center;
  justify-self: end;
  gap: var(--space-2);
  min-height: var(--touch-min);
  margin: 0;
  padding: 0;
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  font-weight: 500;
  letter-spacing: var(--tracking-meta);
  color: var(--calila-meta);
  text-decoration: none;
  touch-action: manipulation;
  -webkit-tap-highlight-color: var(--interactive-tap-highlight);
  transition: color var(--duration-fast) var(--ease-standard);
}

@media (hover: hover) {
  .site-footer__top:hover {
    color: var(--calila-texto);
  }
}

.site-footer__top:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
  border-radius: var(--radius-sm);
}

/* Links institucionais — fila flex (evita 2ª coluna órfã com 3 links) */
.site-footer__legal-nav {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-1) var(--space-4);
  margin: 0;
  width: 100%;
}

.site-footer__legal-nav a {
  display: inline-flex;
  align-items: center;
  min-height: var(--touch-min);
  padding: var(--space-2) 0;
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  font-weight: 500;
  letter-spacing: var(--tracking-meta);
  color: var(--calila-texto-suave);
  text-decoration: none;
  touch-action: manipulation;
  -webkit-tap-highlight-color: var(--interactive-tap-highlight);
  transition: color var(--duration-fast) var(--ease-standard);
}

@media (hover: hover) {
  .site-footer__legal-nav a:hover {
    color: var(--calila-texto);
    text-decoration: underline;
    text-underline-offset: 0.15em;
  }
}

.site-footer__legal-nav a:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
  border-radius: var(--radius-sm);
}

@media (max-width: 479px) {
  .site-footer__legal {
    grid-template-columns: 1fr;
    row-gap: var(--space-3);
    padding-top: var(--space-4);
  }

  .site-footer__top {
    grid-column: 1;
    justify-self: start;
    min-height: var(--touch-min);
  }

  .site-footer__legal-nav {
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
  }
}

@media (min-width: 768px) {
  .site-footer {
    padding-block: var(--space-8) max(var(--space-8), env(safe-area-inset-bottom));
  }

  .site-footer__inner {
    gap: var(--space-5);
  }

  .site-footer__brand-block {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4) var(--space-6);
    padding-bottom: var(--space-4);
    border-bottom: 1px solid var(--footer-rule);
  }

  .site-footer__bar-brand {
    flex: 1 1 18rem;
    gap: var(--space-2);
  }

  .site-footer__actions {
    flex: 0 1 auto;
    width: auto;
    justify-content: flex-end;
  }

  .site-footer__whatsapp-cta {
    width: auto;
  }

  .site-footer__legal {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2) var(--space-4);
    padding-top: var(--space-4);
  }

  .site-footer__copyright {
    flex: 0 0 auto;
    order: 1;
    font-size: var(--text-sm);
    line-height: var(--leading-ui);
  }

  .site-footer__legal-nav {
    flex: 1 1 auto;
    order: 2;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0 var(--space-1);
    width: auto;
    min-width: 0;
  }

  .site-footer__legal-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 0;
    padding: 0.25rem var(--space-3);
    font-size: var(--text-sm);
  }

  .site-footer__top {
    flex: 0 0 auto;
    order: 3;
    justify-self: auto;
    min-height: 0;
    font-size: var(--text-sm);
    white-space: nowrap;
  }
}

@media (min-width: 1024px) {
  .site-footer__inner {
    gap: var(--space-6);
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-footer__legal-nav a,
  .site-footer__social-link,
  .site-footer__whatsapp-cta,
  .site-footer__top {
    transition: none;
  }
}

/* ===== FooterSitemap.css ===== */
/* Mapa do rodapé — editorias (primário) + municípios (regional).
   Referência: doormat de 2 níveis (NN/G); editorias à esquerda (F-pattern + SEO). */

.footer-sitemap {
  width: 100%;
  min-width: 0;
}

.footer-sitemap__grid {
  display: flex;
  flex-direction: column;
  gap: 0;
  border-top: 1px solid color-mix(in srgb, var(--calila-accent-border) 70%, var(--calila-borda));
  border-bottom: 1px solid color-mix(in srgb, var(--calila-accent-border) 70%, var(--calila-borda));
}

.footer-sitemap__column {
  min-width: 0;
  border-bottom: 1px solid color-mix(in srgb, var(--calila-accent-border) 55%, var(--calila-borda));
}

.footer-sitemap__column:last-child {
  border-bottom: none;
}

/* Mobile: listas densas — 2 colunas fixas (evita 3ª coluna estreita) */
.footer-sitemap__list--medium {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: var(--space-3);
}

.footer-sitemap__column--editorias .footer-sitemap__list--medium,
.footer-sitemap__column--editorias .footer-sitemap__list--dense {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: var(--space-3);
}

@media (max-width: 767px) {
  .footer-sitemap__list a,
  .footer-sitemap__more-link {
    min-height: 2.5rem;
    padding: 0.3rem 0;
  }

  .footer-sitemap__column-title {
    padding: var(--space-1) 0;
  }

  .footer-sitemap__body {
    padding-bottom: var(--space-3);
  }

  .footer-sitemap__territories {
    gap: var(--space-4);
  }

  .footer-sitemap__column:not([open]) {
    border-bottom-color: color-mix(in srgb, var(--calila-accent-border) 40%, var(--calila-borda));
  }

  .footer-sitemap__column:not([open]) .footer-sitemap__body {
    padding-bottom: 0;
  }
}

.footer-sitemap__column-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  min-height: var(--touch-min);
  margin: 0;
  padding: var(--space-2) 0;
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  font-weight: 700;
  line-height: var(--leading-ui);
  letter-spacing: var(--tracking-section);
  text-transform: uppercase;
  color: var(--calila-texto-suave);
  text-wrap: balance;
  cursor: pointer;
  list-style: none;
  touch-action: manipulation;
  -webkit-tap-highlight-color: var(--interactive-tap-highlight);
  user-select: none;
  transition: color var(--duration-fast) var(--ease-standard);
}

.footer-sitemap__column-title::-webkit-details-marker {
  display: none;
}

.footer-sitemap__column-title::marker {
  content: '';
}

.footer-sitemap__column-title span {
  min-width: 0;
}

.footer-sitemap__column[open] > .footer-sitemap__column-title {
  color: var(--calila-texto);
}

.footer-sitemap__chevron {
  flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
  padding: 0.125rem;
  color: var(--calila-meta);
  transition:
    transform var(--duration-fast) var(--ease-standard),
    color var(--duration-fast) var(--ease-standard);
}

.footer-sitemap__column[open] > .footer-sitemap__column-title .footer-sitemap__chevron {
  transform: rotate(180deg);
  color: var(--calila-accent);
}

.footer-sitemap__body {
  min-width: 0;
}

.footer-sitemap__territories {
  display: grid;
  gap: var(--space-5);
}

.footer-sitemap__territory {
  min-width: 0;
}

.footer-sitemap__territory-title {
  margin: 0 0 var(--space-2);
  padding-bottom: var(--space-2);
  border-bottom: 1px solid color-mix(in srgb, var(--calila-accent-border) 55%, var(--calila-borda));
  font-family: var(--font-ui);
  font-size: var(--text-caption);
  font-weight: 700;
  line-height: var(--leading-ui);
  letter-spacing: var(--tracking-category);
  text-transform: uppercase;
  color: var(--calila-meta);
  text-wrap: balance;
}

.footer-sitemap__territory--featured .footer-sitemap__territory-title {
  color: var(--calila-meta);
  border-bottom-color: color-mix(in srgb, var(--calila-laranja) 45%, var(--calila-borda));
}

.footer-sitemap__territory-cols {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0 var(--space-3);
}

@media (min-width: 480px) {
  .footer-sitemap__territory-cols {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.footer-sitemap__list--territory {
  grid-template-columns: 1fr;
}

.footer-sitemap__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0;
  width: 100%;
}

.footer-sitemap__list li {
  min-width: 0;
}

.footer-sitemap__list a {
  display: flex;
  align-items: center;
  min-width: 0;
  min-height: var(--touch-min);
  padding: var(--space-2) 0;
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  font-weight: 500;
  line-height: 1.4;
  color: var(--calila-texto-suave);
  text-decoration: none;
  touch-action: manipulation;
  -webkit-tap-highlight-color: var(--interactive-tap-highlight);
  transition: color var(--duration-fast) var(--ease-standard);
}

.footer-sitemap__list--sparse {
  grid-template-columns: 1fr;
}

.footer-sitemap__list--dense {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: var(--space-3);
}

.footer-sitemap__more {
  margin: var(--space-2) 0 var(--space-3);
  padding: 0;
}

.footer-sitemap__more-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  min-height: var(--touch-min);
  padding: var(--space-2) 0;
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  font-weight: 600;
  line-height: 1.45;
  color: var(--calila-accent);
  text-decoration: none;
  touch-action: manipulation;
  -webkit-tap-highlight-color: var(--interactive-tap-highlight);
  transition: color var(--duration-fast) var(--ease-standard);
}

.footer-sitemap__more-link span {
  text-wrap: pretty;
}

.footer-sitemap__more-link svg {
  flex-shrink: 0;
  transition: transform var(--duration-fast) var(--ease-standard);
}

@media (hover: hover) {
  .footer-sitemap__list a:hover {
    color: var(--calila-texto);
    text-decoration: underline;
    text-decoration-color: var(--calila-accent-border);
    text-underline-offset: 0.15em;
  }

  .footer-sitemap__more-link:hover {
    color: var(--calila-texto);
  }

  .footer-sitemap__more-link:hover svg {
    transform: translateX(2px);
  }
}

.footer-sitemap__list a:focus-visible,
.footer-sitemap__more-link:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
  border-radius: var(--radius-sm);
}

.footer-sitemap__column--editorias[open] > .footer-sitemap__column-title .footer-sitemap__chevron {
  color: var(--calila-meta);
}

@media (min-width: 640px) {
  .footer-sitemap__territories {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-4) var(--space-5);
  }
}

@media (min-width: 768px) {
  .footer-sitemap__grid {
    display: grid;
    /* Editorias ~38% · Municípios ~62% — prioridade editorial sem esmagar região */
    grid-template-columns: minmax(13rem, 1.15fr) minmax(0, 1.85fr);
    gap: var(--space-5) var(--space-8);
    align-items: start;
    border-top: none;
    border-bottom: none;
  }

  .footer-sitemap__column {
    border-bottom: none;
  }

  .footer-sitemap__column--editorias {
    grid-column: 1;
    min-width: 0;
    padding-right: var(--space-6);
    border-right: 1px solid color-mix(in srgb, var(--calila-accent-border) 55%, var(--calila-borda));
  }

  .footer-sitemap__column--territory {
    grid-column: 2;
    min-width: 0;
  }

  .footer-sitemap__column--editorias .footer-sitemap__body {
    width: 100%;
    max-width: none;
  }

  .footer-sitemap__column-title {
    min-height: 0;
    padding: 0;
    margin-bottom: var(--space-3);
    border-bottom: none;
    cursor: default;
    pointer-events: none;
    font-size: var(--text-caption);
    letter-spacing: var(--tracking-category);
    color: var(--calila-meta);
  }

  .footer-sitemap__column[open] > .footer-sitemap__column-title {
    color: var(--calila-meta);
  }

  .footer-sitemap__chevron {
    display: none;
  }

  .footer-sitemap__territories {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-4) var(--space-5);
  }

  .footer-sitemap__list a {
    min-height: 0;
    padding: 0.22rem 0;
    font-size: var(--text-sm);
  }

  .footer-sitemap__column--editorias .footer-sitemap__list a {
    font-weight: 600;
    color: var(--calila-texto);
  }

  .footer-sitemap__list--medium {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: var(--space-4);
  }

  .footer-sitemap__list--dense {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: var(--space-3);
  }

  .footer-sitemap__column--editorias .footer-sitemap__list--medium,
  .footer-sitemap__column--editorias .footer-sitemap__list--dense {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    max-width: none;
    column-gap: var(--space-4);
  }

  .footer-sitemap__more {
    margin-top: var(--space-3);
    margin-bottom: 0;
  }

  .footer-sitemap__column--territory .footer-sitemap__more {
    margin-top: var(--space-4);
  }

  .footer-sitemap__more-link {
    min-height: 0;
    padding: 0.22rem 0;
    font-size: var(--text-sm);
  }
}

@media (min-width: 1024px) {
  .footer-sitemap__grid {
    grid-template-columns: minmax(15rem, 1.2fr) minmax(0, 2fr);
    gap: var(--space-6) var(--space-8);
  }

  .footer-sitemap__column--editorias {
    padding-right: var(--space-8);
  }

  .footer-sitemap__territories {
    gap: var(--space-5) var(--space-6);
  }
}

@media (min-width: 1280px) {
  .footer-sitemap__grid {
    grid-template-columns: minmax(16rem, 1.25fr) minmax(0, 2.1fr);
  }
}

@media (prefers-reduced-motion: reduce) {
  .footer-sitemap__list a,
  .footer-sitemap__more-link,
  .footer-sitemap__more-link svg,
  .footer-sitemap__chevron,
  .footer-sitemap__column-title {
    transition: none;
  }
}

/* ===== SectionHeader.css ===== */
.section-header {
  margin-bottom: var(--space-6);
}

.section-header__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  width: 100%;
}

.section-header__identity {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  min-width: 0;
}

.section-header__title {
  margin: 0;
  min-width: 0;
}

/* ── Feed home: hierarquia por ícone + tipo — sem filetes decorativos ── */
.section-header--feed {
  margin-bottom: var(--space-5);
}

.section-header__row--feed {
  align-items: center;
  gap: var(--space-3);
  padding-bottom: 0;
  border-bottom: none;
}

.section-header__identity--feed {
  gap: var(--space-3);
  padding-bottom: 0;
}

/* Sem underline amarelo / sem regra cinza — o ícone carrega a marca */
.section-header__identity--feed::after {
  content: none;
}

.section-header__title--feed {
  font-family: var(--font-ui);
  font-size: 1.0625rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.15;
  text-transform: uppercase;
  color: var(--calila-texto);
  text-wrap: balance;
}

.section-header__rule {
  display: none;
}

.section-header--latest .section-icon--recent {
  --section-icon-bg: color-mix(in srgb, var(--calila-amarelo) 32%, var(--calila-branco));
  --section-icon-color: color-mix(in srgb, var(--calila-texto) 72%, var(--calila-amarelo));
  --section-icon-border: transparent;
}

.section-header--more .section-icon--more {
  --section-icon-bg: color-mix(in srgb, var(--calila-accent) 14%, transparent);
  --section-icon-color: var(--calila-accent);
  --section-icon-border: transparent;
}

.section-header--latest .section-icon__pulse {
  stroke-dasharray: 4 3;
  transform-origin: center;
  animation: calila-section-pulse 2.8s var(--ease-standard) infinite;
}

@keyframes calila-section-pulse {
  0%,
  100% {
    opacity: 0.45;
    transform: scale(1);
  }
  50% {
    opacity: 1;
    transform: scale(1.06);
  }
}

.section-header--sports .section-header__link {
  color: var(--cat-esportes);
}

.section-header--sports .section-header__link:hover {
  color: color-mix(in srgb, var(--cat-esportes) 82%, #000);
}

.section-header--police .section-header__link {
  color: var(--cat-policial);
}

.section-header--police .section-header__link:hover {
  color: color-mix(in srgb, var(--cat-policial) 82%, #000);
}

.section-header--tv .section-header__link {
  color: var(--calila-laranja-escuro);
}

.section-header--tv .section-header__link:hover {
  color: color-mix(in srgb, var(--calila-laranja-escuro) 82%, #000);
}

.section-header--more .section-header__link {
  color: var(--calila-accent);
}

.section-header--more .section-header__link:hover {
  color: var(--calila-accent-hover);
}

@media (min-width: 768px) {
  .section-header {
    margin-bottom: var(--space-8);
  }

  .section-header--feed {
    margin-bottom: var(--space-6);
  }

  .section-header__identity {
    gap: var(--space-4);
  }

  .section-header__identity--feed {
    gap: var(--space-3);
  }

  .section-header__title--feed {
    font-size: 1.125rem;
    letter-spacing: 0.04em;
  }
}

@media (prefers-reduced-motion: reduce) {
  .section-header--latest .section-icon__pulse {
    animation: none;
    opacity: 0.7;
  }
}

/* ===== SectionIcon.css ===== */
.section-icon {
  --section-icon-bg: var(--calila-accent-muted);
  --section-icon-color: var(--calila-accent);
  --section-icon-border: color-mix(in srgb, var(--calila-accent) 22%, transparent);

  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  border-radius: var(--radius-sm);
  background: var(--section-icon-bg);
  color: var(--section-icon-color);
  border: 1px solid var(--section-icon-border);
}

.section-icon--most-read {
  --section-icon-bg: color-mix(in srgb, var(--calila-accent) 14%, transparent);
  --section-icon-color: var(--calila-accent-hover);
  --section-icon-border: color-mix(in srgb, var(--calila-accent) 24%, transparent);
}

.section-icon--recent {
  --section-icon-bg: color-mix(in srgb, var(--calila-amarelo) 22%, transparent);
  --section-icon-color: color-mix(in srgb, var(--calila-texto) 70%, var(--calila-amarelo));
  --section-icon-border: color-mix(in srgb, var(--calila-amarelo) 40%, transparent);
}

.section-icon--more {
  --section-icon-bg: var(--calila-accent-muted);
  --section-icon-color: var(--calila-accent);
  --section-icon-border: color-mix(in srgb, var(--calila-accent) 22%, transparent);
}

.section-icon--police {
  --section-icon-bg: color-mix(in srgb, var(--cat-policial) 12%, transparent);
  --section-icon-color: var(--cat-policial);
  --section-icon-border: color-mix(in srgb, var(--cat-policial) 28%, transparent);
}

.section-icon--tv {
  --section-icon-bg: color-mix(in srgb, var(--calila-laranja) 14%, transparent);
  --section-icon-color: var(--calila-laranja-escuro);
  --section-icon-border: color-mix(in srgb, var(--calila-laranja) 28%, transparent);
}

.section-icon svg {
  width: 1.125rem;
  height: 1.125rem;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
}

@media (min-width: 768px) {
  .section-icon {
    width: 2.25rem;
    height: 2.25rem;
  }

  .section-icon svg {
    width: 1.25rem;
    height: 1.25rem;
  }
}

/* ===== ContentSection.css ===== */
.content-section {
  margin-top: var(--space-section);
}

.content-section:first-child {
  margin-top: 0;
}

.content-section--panel {
  background: var(--surface-panel-bg);
  border: var(--surface-panel-border);
  border-radius: var(--surface-panel-radius);
  padding: var(--space-5) var(--space-4);
  box-shadow: var(--surface-panel-shadow);
}

.content-section--panel .section-header {
  margin-top: 0;
}

.content-section--accent {
  border-left: 3px solid var(--calila-accent-border);
  padding-left: var(--space-5);
}

.content-section--media {
  background: var(--surface-panel-bg);
  border-top: var(--eyebrow-divider);
  padding: var(--space-5) var(--space-4);
  box-shadow: var(--surface-panel-shadow);
}

.content-section--media .section-header {
  margin-top: 0;
}

@media (min-width: 768px) {
  .content-section--panel,
  .content-section--media {
    padding: var(--surface-panel-padding-md);
  }
}

/* ===== NewsCard.css ===== */
.news-card {
  position: relative;
  --news-accent: var(--calila-accent);
}

.news-card__link {
  position: relative;
  display: block;
  color: inherit;
  background: var(--calila-fundo-card);
  border: 1px solid var(--calila-borda);
  border-radius: var(--radius-lg);
  overflow: hidden;
  touch-action: manipulation;
  transition:
    border-color var(--duration-fast) var(--ease-standard),
    box-shadow var(--duration-normal) var(--ease-standard),
    transform var(--duration-normal) var(--ease-standard);
}

@media (hover: hover) {
  .news-card__link:hover {
    box-shadow: var(--shadow-card-hover);
  }

  .news-card--default .news-card__link:hover {
    transform: translateY(var(--interactive-hover-shift));
  }

  .news-card__link:hover .news-card__title {
    color: var(--news-accent);
  }

  .news-card__link:hover .news-card__image {
    transform: scale(var(--interactive-image-scale));
  }
}

.news-card__link:active {
  transform: scale(0.995);
}

.news-card--default .news-card__link:active {
  transform: translateY(0) scale(0.995);
}

.news-card__link:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
}

/* Faixa de categoria — hierarquia editorial */
.news-card__accent {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 2;
  height: 3px;
  background: var(--news-accent);
}

.news-card__figure {
  position: relative;
  flex-shrink: 0;
  margin: 0;
  overflow: hidden;
  border-radius: var(--thumb-radius);
  background: var(--calila-fundo);
}

.news-card__image {
  display: block;
  width: 100%;
  object-fit: cover;
  transition: transform var(--duration-normal) var(--ease-standard);
}

.news-card__scrim {
  position: absolute;
  inset: 0;
  background: var(--gradient-hero);
  pointer-events: none;
}

.news-card__body {
  padding: var(--space-4) var(--space-5) var(--space-5);
}

.news-card__body--overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1;
  padding: var(--space-10) var(--space-5) var(--space-5);
}

.news-card__tags {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-1) var(--space-2);
  margin-bottom: var(--space-2);
}

.news-card__category {
  font-family: var(--font-ui);
  font-size: var(--text-caption);
  font-weight: var(--card-label-weight);
  letter-spacing: var(--tracking-category);
  line-height: var(--leading-ui);
  text-transform: uppercase;
  color: var(--news-accent);
}

.news-card__municipality,
.news-card__location {
  font-family: var(--font-ui);
  font-size: var(--text-caption);
  font-weight: var(--card-label-weight);
  letter-spacing: var(--tracking-category);
  line-height: var(--leading-ui);
  text-transform: uppercase;
  color: var(--news-accent, var(--cat-default));
}

.news-card__municipality::before {
  content: '·';
  margin-right: var(--space-2);
  color: var(--calila-meta-claro);
}

/* Reset heading globals — card controla escala */
.news-card__title {
  margin: 0;
  font-family: var(--font-editorial);
  font-size: var(--card-title-size);
  font-weight: var(--card-title-weight);
  line-height: var(--leading-headline);
  letter-spacing: var(--tracking-headline);
  color: var(--calila-texto);
  text-wrap: pretty;
  font-optical-sizing: auto;
  transition: color var(--duration-fast) var(--ease-standard);
}

.news-card--default .news-card__meta {
  margin: var(--space-2) 0 0;
  font-size: var(--text-caption);
  letter-spacing: var(--tracking-meta);
}

.news-card__excerpt {
  margin: var(--space-2) 0 0;
  font-family: var(--font-ui);
  font-size: var(--card-excerpt-size);
  font-weight: var(--card-excerpt-weight);
  line-height: var(--card-excerpt-leading);
  letter-spacing: 0.01em;
  color: var(--calila-texto-suave);
  text-wrap: pretty;
}

.news-card__excerpt--placeholder {
  visibility: hidden;
  user-select: none;
  pointer-events: none;
}

.news-card__meta--overlay {
  margin-top: var(--space-2);
  color: rgba(255, 255, 255, 0.82);
}

.news-card--hero-main .news-card__category,
.news-card--hero-secondary .news-card__category,
.news-card__category--media {
  display: inline-block;
  padding: 0.125rem 0.375rem;
  background: var(--calila-laranja);
  color: var(--calila-branco);
  line-height: 1.25;
}

.news-card__category--media {
  position: absolute;
  bottom: var(--space-2);
  left: var(--space-2);
  z-index: 2;
  pointer-events: none;
}

/* ── Feed: imagem no topo, altura natural (sem stretch de grid) ── */
.news-card--default .news-card__link {
  display: flex;
  flex-direction: column;
}

.news-card--default .news-card__figure {
  width: 100%;
  aspect-ratio: var(--thumb-ratio-editorial);
  flex-shrink: 0;
  border-radius: 0;
  position: relative;
}

.news-card--default .news-card__figure::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.14) 0%, transparent 48%);
  pointer-events: none;
}

.news-card--default .news-card__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.news-card--default .news-card__body {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: var(--space-4) var(--space-5) var(--space-5);
}

.news-card--default .news-card__excerpt--placeholder {
  min-height: var(--card-excerpt-block-h);
}

@media (min-width: 768px) {
  .news-card--default .news-card__title {
    font-size: var(--card-title-size-md);
  }

  .news-card--default .news-card__body {
    padding: var(--space-5) var(--space-5) var(--space-6);
  }
}

/* ── Hero — flex-end: card cresce com o texto (não corta tags/título) ── */
.news-card--hero-main,
.news-card--hero-secondary {
  height: 100%;
  min-height: inherit;
}

.news-card--hero-main .news-card__link,
.news-card--hero-secondary .news-card__link {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  height: 100%;
  min-height: inherit;
  border: none;
  border-radius: inherit;
  background: var(--calila-noite);
  overflow: hidden;
  -webkit-tap-highlight-color: transparent;
}

.news-card--hero-main .news-card__figure,
.news-card--hero-secondary .news-card__figure {
  position: absolute;
  inset: 0;
  aspect-ratio: unset;
  border-radius: 0;
}

.news-card--hero-main .news-card__image,
.news-card--hero-secondary .news-card__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.news-card--hero-main .news-card__scrim,
.news-card--hero-secondary .news-card__scrim {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: var(--gradient-hero);
  pointer-events: none;
}

.news-card--hero-main .news-card__body,
.news-card--hero-main .news-card__body--overlay,
.news-card--hero-secondary .news-card__body,
.news-card--hero-secondary .news-card__body--overlay {
  position: relative;
  z-index: 2;
  margin-top: auto;
  padding: var(--space-5) var(--space-4) var(--space-4);
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.72) 0%,
    rgba(0, 0, 0, 0.28) 65%,
    transparent 100%
  );
}

.news-card--hero-main .news-card__tags,
.news-card--hero-secondary .news-card__tags {
  margin-bottom: var(--space-2);
}

.news-card--hero-main .news-card__location,
.news-card--hero-secondary .news-card__location {
  color: rgba(255, 255, 255, 0.92);
}

.news-card--hero-main .news-card__title {
  font-family: var(--font-editorial);
  font-size: clamp(1.25rem, 5vw, 1.625rem);
  font-weight: 700;
  line-height: 1.22;
  letter-spacing: var(--tracking-display);
  color: var(--calila-branco);
  text-wrap: pretty;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
}

.news-card--hero-secondary .news-card__title {
  font-size: var(--text-base);
  font-weight: 700;
  line-height: var(--leading-headline);
  color: var(--calila-branco);
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
  text-wrap: pretty;
}

.news-card--hero-main .news-card__municipality,
.news-card--hero-secondary .news-card__municipality {
  color: rgba(255, 255, 255, 0.78);
}

.news-card--hero-main .news-card__municipality::before,
.news-card--hero-secondary .news-card__municipality::before {
  color: rgba(255, 255, 255, 0.45);
}

.news-card--hero-main .news-card__meta--overlay,
.news-card--hero-secondary .news-card__meta--overlay {
  margin-top: var(--space-2);
  font-size: var(--text-caption);
  color: rgba(255, 255, 255, 0.78);
}

@media (min-width: 480px) {
  .news-card--hero-main .news-card__body,
  .news-card--hero-main .news-card__body--overlay,
  .news-card--hero-secondary .news-card__body,
  .news-card--hero-secondary .news-card__body--overlay {
    padding: var(--space-6) var(--space-5) var(--space-5);
  }

  .news-card--hero-main .news-card__title {
    font-size: var(--text-hero);
    line-height: var(--leading-display);
  }

  .news-card--hero-secondary .news-card__title {
    font-size: var(--text-base);
  }
}

@media (min-width: 768px) {
  .news-card--hero-main .news-card__body--overlay {
    padding: var(--space-10) var(--space-6) var(--space-6);
  }

  .news-card--hero-secondary .news-card__title {
    font-size: var(--text-md);
  }
}

@media (hover: hover) {
  .news-card--hero-main .news-card__link:hover,
  .news-card--hero-secondary .news-card__link:hover {
    border-color: transparent;
    box-shadow: none;
    transform: none;
  }

  .news-card--hero-main .news-card__link:hover .news-card__title,
  .news-card--hero-secondary .news-card__link:hover .news-card__title {
    color: var(--calila-branco);
    text-decoration: underline;
    text-decoration-color: rgba(255, 255, 255, 0.45);
    text-underline-offset: 0.2em;
  }

  .news-card--hero-main .news-card__link:hover .news-card__image,
  .news-card--hero-secondary .news-card__link:hover .news-card__image {
    transform: scale(1.05);
  }
}

.news-card--hero-main .news-card__link:active,
.news-card--hero-secondary .news-card__link:active {
  transform: none;
}

/* ── Compact / list — thumb fixo + texto ao lado (Esportes, Polícia, busca) ── */
.news-card--compact .news-card__link,
.news-card--list .news-card__link {
  display: flex;
  gap: var(--space-4);
  align-items: center;
  border: none;
  border-radius: var(--radius-sm);
  background: transparent;
  box-shadow: none;
  padding: var(--surface-list-item-padding-y) var(--surface-list-item-padding-x);
  border-bottom: none;
  touch-action: manipulation;
  -webkit-tap-highlight-color: var(--interactive-tap-highlight);
  transition:
    background-color var(--duration-fast) var(--ease-standard),
    transform var(--duration-fast) var(--ease-standard);
}

@media (hover: hover) {
  .news-card--compact .news-card__link:hover,
  .news-card--list .news-card__link:hover {
    background: color-mix(in srgb, var(--news-accent) 8%, transparent);
    transform: none;
  }

  .news-card--compact .news-card__link:hover .news-card__title,
  .news-card--list .news-card__link:hover .news-card__title {
    color: var(--news-accent);
  }
}

.news-card--compact .news-card__link:active,
.news-card--list .news-card__link:active {
  background: color-mix(in srgb, var(--news-accent) 8%, transparent);
  transform: none;
}

.news-card--compact .news-card__link:focus-visible,
.news-card--list .news-card__link:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
  background: color-mix(in srgb, var(--news-accent) 8%, transparent);
  transform: none;
}

.news-card--compact .news-card__figure,
.news-card--list .news-card__figure {
  display: block;
  flex: 0 0 var(--thumb-max-width-compact);
  align-self: center;
  width: var(--thumb-max-width-compact);
  height: auto;
  aspect-ratio: var(--thumb-ratio-compact);
  overflow: hidden;
  border-radius: var(--thumb-radius);
  line-height: 0;
}

.news-card--compact .news-card__image,
.news-card--list .news-card__image {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 100%;
  object-fit: cover;
  object-position: center;
}

.news-card--compact .news-card__body,
.news-card--list .news-card__body {
  flex: 1;
  min-width: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.news-card--compact .news-card__title,
.news-card--list .news-card__title {
  font-family: var(--font-editorial);
  font-size: var(--list-title-size);
  font-weight: var(--list-title-weight);
  line-height: var(--list-title-leading);
  letter-spacing: var(--tracking-headline);
  text-wrap: pretty;
}

.news-card--compact .news-card__tags,
.news-card--list .news-card__tags {
  margin-bottom: var(--space-2);
}

.news-card--compact .news-card__meta,
.news-card--list .news-card__meta {
  margin-top: var(--space-2);
  font-size: var(--text-caption);
}

.news-card--compact .news-card__excerpt {
  margin: var(--space-2) 0 0;
  font-size: var(--card-excerpt-size);
  line-height: var(--card-excerpt-leading);
  color: var(--calila-texto-suave);
}

.news-card--compact .news-card__excerpt--placeholder {
  visibility: hidden;
  user-select: none;
  pointer-events: none;
  min-height: calc(var(--card-excerpt-size) * var(--card-excerpt-leading) * 2);
}

@media (min-width: 768px) {
  .news-card--compact .news-card__title,
  .news-card--list .news-card__title {
    font-size: var(--list-title-size-md);
  }

  .news-card--featured .news-card__title {
    min-height: 0;
  }
}

/* Só reserva espaço à esquerda quando há índice (ranking) */
.news-card--list:has(.news-card__list-index) .news-card__link {
  padding-left: 2.75rem;
}

.news-card__list-index {
  position: absolute;
  left: 0;
  top: var(--space-4);
  font-family: var(--font-ui);
  font-size: var(--text-xl);
  font-weight: 700;
  color: var(--calila-accent);
  line-height: 1;
  min-width: 2.25rem;
  font-variant-numeric: tabular-nums;
}

/* ── Featured (Fatos policiais) ── */
.news-card--featured .news-card__link {
  border: none;
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.news-card--featured .news-card__figure {
  aspect-ratio: var(--thumb-ratio-editorial);
  border-radius: 0;
}

.news-card--featured .news-card__body {
  padding: var(--space-5) var(--space-5) var(--space-6);
}

.news-card--featured .news-card__title {
  font-family: var(--font-editorial);
  font-size: var(--text-2xl);
  font-weight: 700;
  line-height: var(--leading-headline);
  letter-spacing: var(--tracking-headline);
}

.news-card--featured .news-card__meta {
  margin-top: var(--space-3);
}

.news-card--featured .news-card__excerpt {
  margin-top: var(--space-3);
}

@media (hover: hover) {
  .news-card--featured .news-card__link:hover {
    transform: none;
    box-shadow: none;
    border-color: transparent;
  }
}

@media (prefers-reduced-motion: reduce) {
  .news-card__link,
  .news-card--compact .news-card__link,
  .news-card--list .news-card__link {
    transition: none;
  }
}

/* ===== NewsWireList.css ===== */
/* Mais notícias — foto + stack tipográfico (sem card bordado).
   Ritmo: stack interno apertado; separação entre itens generosa
   (sem caixa, só o espaço define o agrupamento). */

.news-wire {
  --wire-title-size: 1.125rem;
  --wire-title-leading: 1.28;
  /* Relacionados (lugar → manchete → meta) */
  --wire-stack-gap: var(--space-2);
  /* Foto → bloco de texto */
  --wire-media-gap: var(--space-3);
  /* Entre notícias (eixo Y / X) */
  --wire-row-gap: var(--space-10);
  --wire-col-gap: var(--space-6);
  /* Grid → Ver mais */
  --wire-more-gap: var(--space-10);

  margin-top: var(--space-8);
  padding-top: var(--space-6);
  border-top: none;
}

.news-wire__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: var(--wire-row-gap);
}

.news-wire__item {
  min-width: 0;
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
}

.news-wire__link {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--wire-media-gap);
  padding: 0;
  text-decoration: none;
  color: inherit;
  touch-action: manipulation;
  -webkit-tap-highlight-color: var(--interactive-tap-highlight);
}

.news-wire__figure {
  margin: 0;
  width: 100%;
  aspect-ratio: var(--thumb-ratio-editorial);
  overflow: hidden;
  background: var(--calila-borda);
  border-radius: var(--radius-sm);
}

.news-wire__figure--placeholder {
  background: color-mix(in srgb, var(--calila-borda) 70%, var(--calila-accent) 8%);
}

.news-wire__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--duration-medium, 0.35s) var(--ease-standard);
}

.news-wire__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--wire-stack-gap);
  min-width: 0;
}

.news-wire__place {
  font-family: var(--font-ui);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.045em;
  text-transform: uppercase;
  color: var(--calila-accent);
  line-height: 1.25;
}

.news-wire__title {
  margin: 0;
  font-family: var(--font-editorial);
  font-size: var(--wire-title-size);
  font-weight: 700;
  line-height: var(--wire-title-leading);
  letter-spacing: -0.014em;
  color: var(--calila-texto);
  text-wrap: pretty;
  overflow: visible;
  transition: color var(--duration-fast) var(--ease-standard);
}

.news-wire__meta {
  margin: 0;
  /* Meta mais leve: um passo a mais de ar vs. o stack do título */
  padding-top: var(--space-1);
  font-family: var(--font-ui);
  font-size: 0.8125rem;
  font-weight: 500;
  letter-spacing: 0.01em;
  line-height: 1.35;
  color: var(--calila-meta-claro);
}

.news-wire__meta-sep {
  white-space: pre;
}

.news-wire__time {
  font-variant-numeric: tabular-nums;
}

.news-wire__more {
  display: flex;
  justify-content: center;
  margin-top: var(--wire-more-gap);
}

.news-wire__more-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--touch-min);
  min-width: 11.5rem;
  padding: var(--space-2) var(--space-6);
  margin: 0;
  border: 1px solid color-mix(in srgb, var(--calila-borda) 55%, transparent);
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--calila-texto-suave);
  font-family: var(--font-ui);
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  cursor: pointer;
  touch-action: manipulation;
  -webkit-tap-highlight-color: var(--interactive-tap-highlight);
  transition:
    color var(--duration-fast) var(--ease-standard),
    border-color var(--duration-fast) var(--ease-standard),
    background-color var(--duration-fast) var(--ease-standard);
}

.news-wire__more-btn:hover {
  color: var(--calila-texto);
  border-color: color-mix(in srgb, var(--calila-accent) 40%, var(--calila-borda));
  background: color-mix(in srgb, var(--calila-accent) 5%, transparent);
}

.news-wire__more-btn:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
}

.news-wire__more-btn:disabled {
  opacity: 0.7;
  cursor: wait;
}

.news-wire__more[hidden] {
  display: none;
}

@media (hover: hover) {
  .news-wire__link:hover .news-wire__title {
    color: var(--calila-accent);
  }

  .news-wire__link:hover .news-wire__image {
    transform: scale(1.03);
  }
}

.news-wire__link:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
  border-radius: var(--radius-sm);
}

@media (min-width: 768px) {
  .news-wire {
    --wire-title-size: 1.1875rem;
    --wire-title-leading: 1.26;
    --wire-media-gap: var(--space-4);
    --wire-row-gap: var(--space-12);
    --wire-col-gap: var(--space-8);
    --wire-more-gap: var(--space-12);
    margin-top: var(--space-8);
    padding-top: var(--space-6);
  }

  .news-wire__list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--wire-row-gap) var(--wire-col-gap);
    align-items: start;
  }

  .news-wire__more-btn {
    min-width: 13rem;
  }
}

@media (min-width: 1024px) {
  .news-wire {
    --wire-title-size: 1.25rem;
    --wire-title-leading: 1.24;
    --wire-row-gap: var(--space-16);
    --wire-col-gap: var(--space-10);
  }
}

@media (prefers-reduced-motion: reduce) {
  .news-wire__title,
  .news-wire__image,
  .news-wire__more-btn {
    transition: none;
  }

  .news-wire__link:hover .news-wire__image {
    transform: none;
  }
}

/* ===== HeroGrid.css ===== */
/*
 * Mobile-first:
 * 1) Manchete dominante
 * 2) Secundários em faixa scroll-snap com peek
 * ≥480: 2 cols | ≥768: grid assimétrico
 */

.hero-grid {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.hero-grid__main {
  border-radius: var(--radius-xl);
  overflow: hidden;
  min-height: min(16rem, 52vw);
}

.hero-grid__secondary-hint {
  margin: 0;
  padding: 0 var(--page-gutter);
  font-family: var(--font-ui);
  font-size: var(--text-caption);
  font-weight: 500;
  line-height: var(--leading-caption);
  letter-spacing: var(--tracking-meta);
  color: var(--calila-meta);
}

.hero-grid__secondary {
  display: flex;
  gap: var(--space-3);
  overflow-x: auto;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x proximity;
  scroll-padding-inline: var(--page-gutter);
  margin-inline: calc(-1 * var(--page-gutter));
  padding-inline: var(--page-gutter);
  padding-bottom: var(--space-1);
  scrollbar-width: none;
  touch-action: pan-x pan-y;
}

.hero-grid__secondary::-webkit-scrollbar {
  display: none;
}

.hero-grid__secondary-item {
  flex: 0 0 min(78vw, 17.5rem);
  scroll-snap-align: start;
  border-radius: var(--radius-lg);
  overflow: hidden;
  min-height: 9.25rem;
  min-width: 0;
}

.hero-grid__secondary-item:last-child {
  scroll-snap-align: end;
}

@media (min-width: 480px) {
  .hero-grid {
    gap: var(--space-4);
  }

  .hero-grid__main {
    min-height: 17rem;
  }

  .hero-grid__secondary {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-4);
    overflow: visible;
    scroll-snap-type: none;
    margin-inline: 0;
    padding-inline: 0;
    padding-bottom: 0;
    touch-action: auto;
  }

  .hero-grid__secondary-item {
    flex: none;
    min-height: 11rem;
    width: auto;
  }
}

@media (min-width: 768px) {
  .hero-grid {
    display: grid;
    grid-template-columns: 1.65fr 1fr;
    grid-template-rows: 1fr 1fr;
    gap: var(--space-5);
    min-height: 28rem;
  }

  .hero-grid__main {
    grid-row: 1 / -1;
    min-height: 0;
  }

  .hero-grid__secondary-hint {
    display: none;
  }

  .hero-grid__secondary {
    display: contents;
  }

  .hero-grid__secondary-item {
    min-height: 0;
  }

  .hero-grid__secondary-item:first-child {
    grid-column: 2;
    grid-row: 1;
  }

  .hero-grid__secondary-item:last-child {
    grid-column: 2;
    grid-row: 2;
  }
}

@media (min-width: 1024px) {
  .hero-grid {
    min-height: 32rem;
    gap: var(--space-6);
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero-grid__secondary {
    scroll-behavior: auto;
  }
}

/* ===== PoliceSection.css ===== */
/*
 * Fatos policiais — boletim editorial
 * Destaque + índice (3 ocorrências). Thumbs 3:2 fixas.
 */

.police-section {
  --police-accent: var(--cat-policial);
  --police-accent-border: color-mix(in srgb, var(--cat-policial) 32%, var(--calila-borda));
  --police-item-thumb-w: 5.5rem;
  --police-rail: 3px;
}

.police-section .section-header__row.calila-eyebrow-row {
  border-bottom-color: var(--police-accent-border);
}

.police-section .section-header__link {
  color: var(--police-accent);
}

/* Mobile empilhado: “Últimas notícias” vira falso 2º header — some; aside já tem aria-label */
@media (max-width: 1023px) {
  .police-section__aside-label {
    display: none;
  }
}

.police-section__layout {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-left: var(--police-rail) solid var(--police-accent);
  background: var(--calila-branco);
}

/* ── Destaque ── */
.police-section__lead {
  min-width: 0;
}

.police-section__lead-link {
  display: block;
  color: inherit;
  text-decoration: none;
  touch-action: manipulation;
}

.police-section__lead-media {
  margin: 0;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--calila-fundo);
}

.police-section__lead-media.news-card__figure--placeholder {
  aspect-ratio: 16 / 9;
  min-height: 0;
}

.police-section__lead-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--duration-normal) var(--ease-standard);
}

.police-section__lead-body {
  padding: var(--space-4);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.police-section__lead-location {
  display: block;
  margin: 0;
  font-family: var(--font-ui);
  font-size: var(--text-caption);
  font-weight: 600;
  letter-spacing: var(--tracking-category);
  text-transform: uppercase;
  color: var(--police-accent);
  line-height: var(--leading-ui);
}

.police-section__lead-title {
  margin: 0;
  font-family: var(--font-editorial);
  font-size: clamp(1.1875rem, 3.8vw, 1.4375rem);
  font-weight: 700;
  line-height: var(--leading-headline);
  letter-spacing: var(--tracking-headline);
  color: var(--calila-texto);
  text-wrap: pretty;
  transition: color var(--duration-fast) var(--ease-standard);
}

.police-section__lead-meta {
  margin: 0;
  font-family: var(--font-ui);
}

@media (hover: hover) {
  .police-section__lead-link:hover .police-section__lead-image {
    transform: scale(var(--interactive-image-scale));
  }

  .police-section__lead-link:hover .police-section__lead-title {
    color: var(--police-accent);
  }
}

.police-section__lead-link:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
}

/* ── Lista / boletim ── */
.police-section__aside {
  display: flex;
  flex-direction: column;
  min-width: 0;
  border-top: 1px solid var(--police-accent-border);
  background: color-mix(in srgb, var(--police-accent) 4%, var(--calila-branco));
}

.police-section__aside-label.calila-panel-list__label {
  margin: 0;
  padding: var(--space-3) var(--space-4) var(--space-2);
  font-family: var(--font-ui);
  font-size: var(--text-caption);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--police-accent);
  line-height: var(--leading-ui);
}

.police-section__list {
  list-style: none;
  margin: 0;
  padding: 0 0 var(--space-3);
  display: flex;
  flex-direction: column;
  gap: 0;
}

.police-section__item-link {
  display: flex;
  gap: var(--space-4);
  align-items: flex-start;
  width: 100%;
  padding: var(--space-4) var(--space-4);
  color: inherit;
  text-decoration: none;
  touch-action: manipulation;
  transition:
    background-color var(--duration-fast) var(--ease-standard),
    box-shadow var(--duration-fast) var(--ease-standard);
}

.police-section__item:not(:last-child) .police-section__item-link {
  border-bottom: 1px solid var(--surface-list-divider);
}

.police-section__item-media {
  flex: 0 0 var(--police-item-thumb-w);
  width: var(--police-item-thumb-w);
  height: auto;
  aspect-ratio: 3 / 2;
  align-self: flex-start;
  margin: 0;
  max-width: none;
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: var(--calila-fundo);
}

.police-section__item-media.calila-thumb--placeholder {
  flex: 0 0 var(--police-item-thumb-w);
  width: var(--police-item-thumb-w);
  aspect-ratio: 3 / 2;
}

.police-section__item-media .calila-thumb__img,
.police-section__item-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.police-section__item-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 0;
  padding-top: 0.05em;
}

.police-section__item-location {
  font-family: var(--font-ui);
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: var(--tracking-category);
  text-transform: uppercase;
  color: var(--police-accent);
  line-height: 1.2;
}

.police-section__item-title {
  margin: 0;
  font-family: var(--font-editorial);
  font-size: var(--list-title-size);
  font-weight: var(--list-title-weight);
  line-height: 1.35;
  letter-spacing: var(--tracking-headline);
  color: var(--calila-texto);
  text-wrap: pretty;
  /* Até 3 linhas — equilibra a coluna; title= no markup traz o texto completo */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}

.police-section__item-date {
  font-family: var(--font-ui);
  font-size: var(--text-caption);
  color: var(--calila-meta);
  line-height: var(--leading-caption);
}

@media (hover: hover) {
  /* Fundo leve + título preto (contraste); accent só no município e trilho */
  .police-section__item-link:hover {
    background: color-mix(in srgb, var(--police-accent) 5%, var(--calila-branco));
    box-shadow: inset var(--police-rail) 0 0 var(--police-accent);
  }

  .police-section__item-link:hover .police-section__item-title {
    color: var(--calila-texto);
  }

  .police-section__item-link:hover .police-section__item-location {
    color: var(--police-accent);
  }

  .police-section__item:not(:last-child) .police-section__item-link:hover {
    border-bottom-color: transparent;
  }
}

.police-section__item-link:focus-visible {
  outline: var(--focus-ring);
  outline-offset: calc(var(--focus-offset) * -1);
}

@media (min-width: 480px) {
  .police-section__lead-body {
    padding: var(--space-5);
    gap: var(--space-3);
  }

  .police-section__aside-label.calila-panel-list__label {
    padding-inline: var(--space-5);
  }

  .police-section__item-link {
    padding-inline: var(--space-5);
  }
}

/* Desktop: duas colunas na mesma altura; divisor na coluna mais alta (aside) */
@media (min-width: 1024px) {
  .police-section {
    --police-item-thumb-w: 6.25rem;
  }

  .police-section__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(18rem, 1fr);
    align-items: stretch;
  }

  .police-section__lead {
    display: flex;
    flex-direction: column;
    align-self: stretch;
    min-height: 100%;
    background: var(--calila-branco);
  }

  .police-section__lead-link {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 100%;
  }

  /* 16:9 sem teto artificial — foto ancora a coluna esquerda */
  .police-section__lead-media {
    aspect-ratio: 16 / 9;
    flex: 0 0 auto;
    max-height: none;
  }

  .police-section__lead-media.news-card__figure--placeholder {
    aspect-ratio: 16 / 9;
    max-height: none;
  }

  .police-section__lead-body {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding: var(--space-5) var(--space-6);
    gap: var(--space-3);
  }

  .police-section__lead-meta {
    margin-top: auto;
    padding-top: var(--space-4);
  }

  .police-section__lead-title {
    font-size: clamp(1.25rem, 1.1rem + 0.4vw, 1.5rem);
  }

  .police-section__aside {
    border-top: none;
    border-left: 1px solid var(--police-accent-border);
    display: flex;
    flex-direction: column;
    align-self: stretch;
    min-height: 100%;
  }

  .police-section__aside-label.calila-panel-list__label {
    display: block;
    flex: 0 0 auto;
    padding: var(--space-4) var(--space-5) var(--space-2);
  }

  .police-section__list {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding: 0 0 var(--space-3);
  }

  .police-section__item {
    flex: 0 0 auto;
  }

  .police-section__item-link {
    padding: var(--space-4) var(--space-5);
    gap: var(--space-4);
  }

  .police-section__item-title {
    font-size: var(--list-title-size-md);
    line-height: 1.38;
  }
}

@media (min-width: 1280px) {
  .police-section__layout {
    grid-template-columns: minmax(0, 1.4fr) minmax(20rem, 1fr);
  }

  .police-section__lead-title {
    font-size: 1.5rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .police-section__lead-image,
  .police-section__item-title {
    transition: none;
  }
}

/* ===== SportsSection.css ===== */
.sports-section {
  --sports-accent: var(--cat-esportes);
  --sports-accent-soft: color-mix(in srgb, var(--cat-esportes) 10%, transparent);
  --sports-accent-border: color-mix(in srgb, var(--cat-esportes) 26%, var(--calila-borda));
  --section-hover-accent: var(--cat-esportes);
}

.sports-section .calila-eyebrow-row {
  border-bottom-color: var(--sports-accent-border);
}

.sports-section__layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  padding: 0;
  overflow: hidden;
  border-left: 3px solid var(--sports-accent);
  background: color-mix(in srgb, var(--sports-accent) 3.5%, var(--calila-branco));
}

/* ── Destaque ── */
.sports-section__lead {
  min-width: 0;
}

.sports-section__lead-link {
  display: flex;
  flex-direction: column;
  position: relative;
  color: inherit;
  text-decoration: none;
  touch-action: manipulation;
}

.sports-section__lead-accent {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1;
  height: 3px;
  background: linear-gradient(
    90deg,
    var(--sports-accent) 0%,
    color-mix(in srgb, var(--sports-accent) 55%, var(--calila-branco)) 100%
  );
}

.sports-section__lead-media {
  margin: 0;
  aspect-ratio: var(--thumb-ratio-editorial);
  overflow: hidden;
  background: var(--calila-fundo);
}

.sports-section__lead-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--duration-normal) var(--ease-standard);
}

.sports-section__lead-body {
  padding: var(--space-5);
  transition: background-color var(--duration-fast) var(--ease-standard);
}

.sports-section__lead-title {
  margin: 0;
  font-family: var(--font-editorial);
  font-size: var(--card-title-size);
  font-weight: var(--card-title-weight);
  line-height: var(--leading-headline);
  letter-spacing: var(--tracking-headline);
  color: var(--calila-texto);
  text-wrap: balance;
  transition: color var(--duration-fast) var(--ease-standard);
}

.sports-section__lead-meta {
  margin: var(--space-3) 0 0;
}

@media (hover: hover) {
  .sports-section__lead-link:hover .sports-section__lead-image {
    transform: scale(var(--interactive-image-scale));
  }

  .sports-section__lead-link:hover .sports-section__lead-title {
    color: var(--sports-accent);
  }

  .sports-section__lead-link:hover .sports-section__lead-body {
    background: color-mix(in srgb, var(--sports-accent) 5%, transparent);
  }
}

.sports-section__lead-link:active .sports-section__lead-body {
  background: color-mix(in srgb, var(--sports-accent) 7%, transparent);
}

.sports-section__lead-link:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
}

/* ── Lista lateral ── */
.sports-section__aside {
  display: flex;
  flex-direction: column;
  min-width: 0;
  border-top: 1px solid var(--sports-accent-border);
  background: color-mix(in srgb, var(--sports-accent) 2%, var(--calila-branco));
}

.sports-section__aside-label {
  margin: 0;
  padding: var(--space-4) var(--space-5) var(--space-2);
  font-family: var(--font-ui);
  font-size: var(--text-caption);
  font-weight: 600;
  letter-spacing: var(--tracking-category);
  line-height: var(--leading-ui);
  text-transform: uppercase;
  color: var(--sports-accent);
}

.sports-section__list {
  list-style: none;
  margin: 0;
  padding: 0 var(--space-2) var(--space-2);
  display: flex;
  flex-direction: column;
  gap: 0;
}

.sports-section__list-item {
  min-width: 0;
}

.sports-section .news-card--compact {
  --news-accent: var(--sports-accent);
}

.sports-section .news-card--compact .news-card__link {
  gap: var(--space-4);
  padding-block: var(--space-4);
  border-radius: var(--radius-sm);
}

.sports-section .news-card--compact:not(:last-child) .news-card__link {
  border-bottom: 1px solid var(--surface-list-divider);
}

.sports-section .news-card--compact .news-card__title {
  font-size: 1.125rem; /* 18px — alinha com Fatos policiais */
  font-weight: var(--card-title-weight);
  line-height: var(--leading-headline);
  color: var(--calila-texto-suave);
  min-height: 0;
}

.sports-section .news-card--compact .news-card__meta {
  margin-top: var(--space-2);
}

@media (hover: hover) {
  .sports-section .news-card--compact .news-card__link:hover {
    background: color-mix(in srgb, var(--sports-accent) 8%, var(--calila-branco));
    border-bottom-color: transparent;
  }

  .sports-section .news-card--compact .news-card__link:hover .news-card__title {
    color: var(--sports-accent);
  }
}

@media (min-width: 768px) {
  .sports-section__layout {
    grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr);
    align-items: stretch;
  }

  .sports-section__lead-link {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr;
    min-height: 100%;
  }

  .sports-section__lead-accent {
    grid-column: 1 / -1;
  }

  .sports-section__lead-media {
    aspect-ratio: unset;
    height: 100%;
    min-height: 14rem;
  }

  .sports-section__lead-body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: var(--space-6);
  }

  .sports-section__lead-title {
    font-size: var(--card-title-size-md);
  }

  .sports-section__aside {
    border-top: none;
    border-left: 1px solid var(--sports-accent-border);
  }

  .sports-section__list {
    padding: 0 var(--space-3) var(--space-3);
  }

  .sports-section .news-card--compact .news-card__link {
    padding-block: var(--space-5);
  }

  .sports-section .news-card--compact .news-card__title {
    font-size: 1.1875rem; /* 19px */
    min-height: 0;
  }
}

@media (min-width: 1024px) {
  .sports-section__lead-media {
    min-height: 15.5rem;
  }

  .sports-section__lead-title {
    font-size: var(--text-xl);
  }
}

@media (prefers-reduced-motion: reduce) {
  .sports-section__lead-image,
  .sports-section__lead-body,
  .sports-section__lead-title {
    transition: none;
  }
}

/* ===== MoreNewsSection.css ===== */
/* Altura dos cards — regras compartilhadas em App.css (.news-card-feed) */

/* ===== MostReadList.css ===== */
/*
 * Widget "+ Lidas"
 * Referência: ranking editorial (foto #01 + lista tipográfica 02–05).
 */

.most-read {
  --most-read-rank-size: var(--most-read-rank-col);
  --most-read-rail: 3px;
  --most-read-pad-x: var(--space-5);
  --most-read-list-lines: 3;
  overflow: clip;
  isolation: isolate;
}

/* ── Cabeçalho ── */
.most-read .section-header {
  margin-bottom: 0;
  padding: var(--space-4) var(--most-read-pad-x) 0;
}

.most-read .section-header__row {
  padding-bottom: var(--space-3);
  border-bottom: 1px solid var(--surface-list-divider);
}

.most-read .section-header__identity {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}

.most-read .calila-eyebrow {
  font-family: var(--font-ui);
  font-weight: var(--most-read-eyebrow-weight);
  letter-spacing: 0.06em;
}

.most-read--sidebar {
  position: static;
}

/* ── Zona #01 ── */
.most-read__spotlight {
  position: relative;
  border-bottom: 1px solid var(--calila-borda);
}

.most-read__spotlight::before {
  content: '';
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  bottom: 0;
  width: var(--most-read-rail);
  background: var(--calila-accent);
  pointer-events: none;
}

.most-read__ranking,
.most-read__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.most-read__item--lead .most-read__link {
  display: flex;
  flex-direction: column;
  gap: var(--space-5); /* espaço miniatura → título (margin falha com -webkit-box) */
  padding: var(--space-4) var(--most-read-pad-x);
  padding-left: calc(var(--most-read-pad-x) + var(--most-read-rail));
  color: inherit;
  text-decoration: none;
}

.most-read__lead-figure {
  position: relative;
  flex: 0 0 auto;
  margin: 0;
  overflow: hidden;
  border-radius: var(--radius-sm);
  background: var(--calila-fundo);
  /* Referência: foto quase quadrada, não widescreen raso */
  aspect-ratio: 4 / 3;
}

.most-read__lead-figure.news-card__figure--placeholder {
  aspect-ratio: 4 / 3;
  min-height: 0;
}

.most-read__lead-figure::after {
  content: '';
  position: absolute;
  inset: auto 0 0 0;
  height: 55%;
  background: linear-gradient(
    to top,
    rgba(17, 17, 17, 0.62) 0%,
    rgba(17, 17, 17, 0.22) 55%,
    transparent 100%
  );
  pointer-events: none;
}

.most-read__lead-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--duration-normal) var(--ease-standard);
}

.most-read__rank-watermark {
  position: absolute;
  z-index: 1;
  left: var(--space-3);
  bottom: var(--space-3);
  font-family: var(--font-ui);
  font-size: var(--most-read-watermark-size);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.04em;
  line-height: 1;
  color: #fff;
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.45);
  pointer-events: none;
}

.most-read__headline--lead {
  display: -webkit-box;
  margin: 0;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
  font-family: var(--font-editorial);
  font-size: var(--most-read-lead-size);
  font-weight: var(--most-read-lead-weight);
  line-height: var(--most-read-lead-leading);
  letter-spacing: var(--tracking-headline);
  color: var(--calila-texto);
  text-wrap: pretty;
  transition: color var(--duration-fast) var(--ease-standard);
}

/* ── Zona 02–05 ── */
.most-read__list {
  padding: 0 0 var(--space-3);
}

.most-read__item:not(.most-read__item--lead) .most-read__link {
  display: grid;
  grid-template-columns: var(--most-read-rank-size) minmax(0, 1fr);
  column-gap: var(--most-read-row-gap);
  align-items: center;
  /* Altura de ~3 linhas de manchete — evita linhas “finas” com título curto */
  min-height: calc(
    var(--most-read-headline-size) * var(--most-read-headline-leading) * var(--most-read-list-lines)
      + var(--most-read-row-padding-y) * 2
  );
  padding: var(--most-read-row-padding-y) var(--most-read-pad-x);
  padding-left: calc(var(--most-read-pad-x) + var(--most-read-rail));
  color: inherit;
  text-decoration: none;
  transition:
    background-color var(--duration-fast) var(--ease-standard),
    box-shadow var(--duration-fast) var(--ease-standard);
}

.most-read__item:not(.most-read__item--lead):not(:last-child) .most-read__link {
  border-bottom: 1px solid var(--surface-list-divider);
}

.most-read__rank-cell {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  min-height: 100%;
}

.most-read__num {
  display: block;
  font-family: var(--font-ui);
  font-size: var(--most-read-num-size);
  font-weight: var(--most-read-num-weight);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.045em;
  line-height: 1;
  color: var(--most-read-num-color);
  transition: color var(--duration-fast) var(--ease-standard);
}

.most-read__thumb {
  display: none;
}

.most-read__headline {
  margin: 0;
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
  font-family: var(--font-editorial);
  font-size: var(--most-read-headline-size);
  font-weight: var(--most-read-headline-weight);
  line-height: var(--most-read-headline-leading);
  letter-spacing: var(--tracking-headline);
  color: var(--calila-texto);
  text-wrap: pretty;
  transition: color var(--duration-fast) var(--ease-standard);
}

@media (hover: hover) {
  .most-read__item--lead .most-read__link:hover .most-read__lead-image {
    transform: scale(var(--interactive-image-scale));
  }

  .most-read__item--lead .most-read__link:hover .most-read__headline--lead {
    color: var(--calila-accent-hover);
  }

  .most-read__item:not(.most-read__item--lead) .most-read__link:hover {
    background: color-mix(in srgb, var(--calila-accent) 5%, var(--calila-branco));
    box-shadow: inset var(--most-read-rail) 0 0 var(--calila-accent);
  }

  .most-read__item:not(.most-read__item--lead) .most-read__link:hover .most-read__num {
    color: var(--most-read-num-color-hover);
  }

  .most-read__item:not(.most-read__item--lead) .most-read__link:hover .most-read__headline {
    color: var(--calila-accent-hover);
  }
}

.most-read__link:focus-visible {
  outline: var(--focus-ring);
  outline-offset: calc(var(--focus-offset) * -1);
}

.most-read__link:active {
  background: color-mix(in srgb, var(--calila-accent) 5%, transparent);
}

/* ── Feed mobile ── */
.most-read--feed {
  margin-inline: calc(-1 * var(--page-gutter));
  border-radius: 0;
  border-left: none;
  border-right: none;
}

.most-read--feed .most-read__item--lead .most-read__link,
.most-read--feed .most-read__item:not(.most-read__item--lead) .most-read__link {
  padding-inline: var(--page-gutter);
  padding-left: calc(var(--page-gutter) + var(--most-read-rail));
}

.most-read--feed .section-header {
  padding-inline: var(--page-gutter);
}

@media (min-width: 768px) {
  .most-read--feed {
    margin-inline: 0;
    border-radius: var(--surface-panel-radius);
    border: var(--surface-panel-border);
  }

  .most-read--feed .section-header,
  .most-read--feed .most-read__item--lead .most-read__link,
  .most-read--feed .most-read__item:not(.most-read__item--lead) .most-read__link {
    padding-inline: var(--most-read-pad-x);
    padding-left: calc(var(--most-read-pad-x) + var(--most-read-rail));
  }

  .most-read__headline {
    font-size: var(--most-read-headline-size-md);
  }

  .most-read__headline--lead {
    font-size: var(--most-read-lead-size-md);
  }

  .most-read__num {
    font-size: var(--most-read-num-size-md);
  }

  .most-read__rank-watermark {
    font-size: var(--most-read-watermark-size-md);
  }

  .most-read--sidebar {
    --most-read-rank-col: 3.5rem;
    --most-read-row-padding-y: 0.9375rem;
    --most-read-row-gap: var(--space-3);
    --most-read-pad-x: var(--space-5);
    --most-read-list-lines: 3;
  }

  .most-read--sidebar .section-header {
    padding-top: var(--space-5);
  }

  .most-read--sidebar .most-read__item--lead .most-read__link {
    gap: var(--space-6);
    padding-top: var(--space-4);
    padding-bottom: var(--space-4);
  }

  .most-read--sidebar .most-read__list {
    padding-bottom: var(--space-3);
  }

  .most-read--sidebar .most-read__item:not(.most-read__item--lead) .most-read__link {
    min-height: calc(
      var(--most-read-headline-size-md) * var(--most-read-headline-leading) * var(--most-read-list-lines)
        + var(--most-read-row-padding-y) * 2
    );
  }
}

@media (min-width: 1024px) {
  .most-read--feed {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .most-read__link,
  .most-read__headline,
  .most-read__headline--lead,
  .most-read__num,
  .most-read__lead-image {
    transition: none;
  }
}

/* ===== AdSlot.css ===== */
/*
 * Espaços publicitários — padrão portais (G1, Globo, Folha)
 * - Rótulo "Publicidade" discreto
 * - Inserção no fluxo editorial (sem position: sticky)
 * - Tamanhos IAB reservados (evita CLS)
 */

.ad-slot {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--ad-slot-gap);
  width: 100%;
  position: relative;
}

.ad-slot__label {
  font-family: var(--font-ui);
  font-size: var(--text-2xs);
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--calila-meta-claro);
  line-height: 1;
}

.ad-slot__frame {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--ad-frame-border);
  border-radius: var(--radius-sm);
  background: var(--ad-frame-bg);
  overflow: hidden;
}

.ad-slot__size {
  font-family: var(--font-ui);
  font-size: var(--text-caption);
  font-weight: 500;
  letter-spacing: var(--tracking-ui);
  color: var(--calila-meta);
  user-select: none;
}

.ad-slot__size--lg {
  display: none;
}

/* Header — faixa da marca (leaderboard desktop) */
.ad-slot--header {
  margin: 0;
  gap: var(--space-1);
}

.ad-slot--header .ad-slot__frame {
  width: min(100%, var(--ad-banner-sm-w));
  height: var(--ad-banner-sm-h);
}

/* In-feed — MPU no meio do fluxo de notícias / matéria */
.ad-slot--in-feed {
  margin-block: var(--ad-slot-margin-compact);
  padding-block: var(--ad-slot-flow-padding);
  border-block: 1px solid var(--ad-frame-border);
}

.ad-slot--in-feed .ad-slot__frame {
  width: min(100%, var(--ad-mpu-w));
  height: var(--ad-mpu-h);
  border: none;
  background: var(--calila-branco);
}

/* Sidebar — MPU no rail; espaçamento via .sidebar__ads gap */
.ad-slot--sidebar,
.ad-slot--sidebar-2,
.ad-slot--sidebar-3 {
  margin: 0;
  padding-bottom: 0;
  border-bottom: none;
}

.ad-slot--sidebar .ad-slot__frame,
.ad-slot--sidebar-3 .ad-slot__frame {
  width: 100%;
  max-width: var(--ad-mpu-w);
  height: var(--ad-mpu-h);
}

.ad-slot--sidebar-2 .ad-slot__frame {
  width: 100%;
  max-width: var(--ad-halfpage-w);
  min-height: var(--ad-mpu-h);
  height: auto;
}

/* Footer — leaderboard antes do rodapé do site */
.ad-slot--footer {
  margin-block: var(--space-section) var(--space-8);
  padding-top: var(--space-6);
  border-top: 1px solid var(--calila-borda);
}

.ad-slot--footer .ad-slot__frame {
  width: min(100%, var(--ad-banner-sm-w));
  height: var(--ad-banner-sm-h);
}

/* Criativo do plugin Calila Publicidade */
.calila-pub-ad__link,
.calila-pub-ad__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.calila-pub-ad__link {
  line-height: 0;
}

.calila-pub-ad__code {
  display: flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  max-width: 100%;
  margin-inline: auto;
  line-height: 0;
  overflow: visible;
}

/* GPT / iframe: encolher ao criativo (evita overlay AdChoices no vazio) */
.ad-slot__frame:has(.calila-pub-ad__code) {
  width: fit-content;
  max-width: 100%;
  height: auto;
  min-height: 0;
  overflow: visible;
  border: none;
  background: transparent;
}

.calila-ad-desk,
.calila-ad-mob {
  width: fit-content;
  max-width: 100%;
  margin-inline: auto;
  line-height: 0;
}

.ad-slot--header .ad-slot__frame:has(.calila-pub-ad__code) {
  min-height: var(--ad-banner-sm-h);
}

.ad-slot--footer .ad-slot__frame:has(.calila-pub-ad__code) {
  min-height: var(--ad-banner-sm-h);
}

.ad-slot--in-feed .ad-slot__frame:has(.calila-pub-ad__code),
.ad-slot--sidebar .ad-slot__frame:has(.calila-pub-ad__code),
.ad-slot--sidebar-2 .ad-slot__frame:has(.calila-pub-ad__code),
.ad-slot--sidebar-3 .ad-slot__frame:has(.calila-pub-ad__code) {
  width: fit-content;
  max-width: 100%;
  height: auto;
  min-height: 0;
}

/* Imagens escalam; iframes GPT mantêm width/height do slot (não espremer 728→300) */
.calila-pub-ad__code img,
.calila-pub-ad__code ins {
  max-width: 100%;
}

.calila-pub-ad__code iframe {
  max-width: none;
  display: block;
}

.calila-ad-desk {
  display: none;
}

.calila-ad-mob {
  display: block;
  text-align: center;
}

@media (min-width: 768px) {
  .calila-ad-desk {
    display: block;
    text-align: center;
  }

  .calila-ad-mob {
    display: none;
  }
}

@media (min-width: 768px) {
  .ad-slot__size--sm {
    display: none;
  }

  .ad-slot__size--lg {
    display: block;
  }

  .ad-slot--header .ad-slot__frame {
    width: min(100%, var(--ad-leaderboard-w));
    height: var(--ad-leaderboard-h);
  }

  .ad-slot--header .ad-slot__frame:has(.calila-pub-ad__code) {
    width: fit-content;
    max-width: min(100%, var(--ad-leaderboard-w));
    height: auto;
    min-height: var(--ad-leaderboard-h);
  }

  .ad-slot--footer .ad-slot__frame {
    width: min(100%, var(--ad-billboard-w));
    height: var(--ad-billboard-h);
  }

  .ad-slot--footer .ad-slot__frame:has(.calila-pub-ad__code) {
    width: fit-content;
    max-width: min(100%, var(--ad-billboard-w));
    height: auto;
    min-height: var(--ad-billboard-h);
  }
}

/* ===== Pagination.css ===== */
/* Paginação — arquivo, busca e listagens internas */

.pagination {
  margin-top: var(--space-8);
  padding: var(--space-5) var(--space-4);
  border: 1px solid var(--calila-borda);
  border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--calila-fundo) 55%, var(--calila-branco));
  box-shadow: 0 1px 0 color-mix(in srgb, var(--calila-borda) 80%, transparent);
}

.pagination__status {
  margin: 0 0 var(--space-4);
  text-align: center;
  font-weight: 600;
  letter-spacing: var(--tracking-category);
  text-transform: uppercase;
  color: var(--calila-meta);
  font-variant-numeric: tabular-nums;
}

.pagination__bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
}

.pagination__control {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  min-height: var(--touch-min);
  padding: var(--space-2) var(--space-4);
  border: 1px solid var(--calila-borda);
  border-radius: var(--radius-sm);
  background: var(--calila-branco);
  color: var(--calila-texto);
  font-family: var(--font-ui);
  font-size: var(--text-caption);
  font-weight: 600;
  letter-spacing: var(--tracking-ui);
  text-decoration: none;
  touch-action: manipulation;
  -webkit-tap-highlight-color: var(--interactive-tap-highlight);
  transition:
    background-color var(--duration-fast) var(--ease-standard),
    border-color var(--duration-fast) var(--ease-standard),
    color var(--duration-fast) var(--ease-standard),
    box-shadow var(--duration-fast) var(--ease-standard);
}

.pagination__control-icon {
  font-size: 0.9em;
  line-height: 1;
  opacity: 0.72;
}

@media (hover: hover) {
  .pagination__control:hover:not(.pagination__control--disabled) {
    border-color: var(--calila-accent);
    color: var(--calila-accent-hover);
    box-shadow: 0 1px 0 color-mix(in srgb, var(--calila-accent) 18%, transparent);
  }
}

.pagination__control:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
}

.pagination__control--disabled,
.pagination__control:disabled {
  opacity: 0.42;
  cursor: not-allowed;
  pointer-events: none;
}

.pagination__list {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--space-1);
  margin: 0;
  padding: var(--space-1) var(--space-2);
  list-style: none;
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--calila-branco) 88%, transparent);
}

.pagination__page {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: var(--touch-min);
  min-height: var(--touch-min);
  padding: 0 var(--space-3);
  border: 1px solid transparent;
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--calila-texto);
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  text-decoration: none;
  touch-action: manipulation;
  -webkit-tap-highlight-color: var(--interactive-tap-highlight);
  transition:
    background-color var(--duration-fast) var(--ease-standard),
    border-color var(--duration-fast) var(--ease-standard),
    color var(--duration-fast) var(--ease-standard),
    transform var(--duration-fast) var(--ease-standard);
}

@media (hover: hover) {
  .pagination__page:hover {
    background: var(--interactive-hover-bg);
    border-color: color-mix(in srgb, var(--calila-accent-border) 65%, transparent);
  }
}

.pagination__page:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
}

.pagination__page--current {
  border-color: color-mix(in srgb, var(--calila-laranja) 45%, var(--calila-borda));
  background: color-mix(in srgb, var(--calila-laranja) 16%, var(--calila-branco));
  color: var(--calila-laranja-escuro);
  box-shadow: 0 1px 0 color-mix(in srgb, var(--calila-laranja) 22%, transparent);
}

.pagination__ellipsis {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.75rem;
  min-height: var(--touch-min);
  color: var(--calila-meta-claro);
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  font-weight: 600;
  user-select: none;
}

@media (max-width: 639px) {
  .pagination {
    padding: var(--space-4) var(--space-3);
  }

  .pagination__bar {
    gap: var(--space-3);
  }

  .pagination__list {
    flex: 1 1 100%;
    order: -1;
    padding: var(--space-2);
    gap: var(--space-1);
  }

  .pagination__control {
    flex: 1 1 calc(50% - var(--space-2));
    min-width: 0;
  }

  .pagination__control--prev {
    justify-content: flex-start;
  }

  .pagination__control--next {
    justify-content: flex-end;
  }
}

@media (min-width: 640px) {
  .pagination__bar {
    gap: var(--space-4);
  }

  .pagination__control--prev {
    margin-right: auto;
  }

  .pagination__control--next {
    margin-left: auto;
  }

  .pagination__list {
    flex: 0 1 auto;
    margin: 0 auto;
  }
}

@media (min-width: 768px) {
  .pagination {
    padding: var(--space-6) var(--space-5);
  }
}

@media (prefers-reduced-motion: reduce) {
  .pagination__control,
  .pagination__page {
    transition: none;
  }
}

/* ===== ArchiveHeader.css ===== */
/* Cabeçalho de arquivo — padrão editorial do portal (eyebrow + H1 + meta) */

.archive-header {
  margin: 0;
  padding-bottom: var(--space-5);
  border-bottom: 1px solid color-mix(in srgb, var(--calila-accent-border) 65%, var(--calila-borda));
}

.archive-header__breadcrumb-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-1) var(--space-2);
  margin: 0 0 var(--space-4);
  padding: 0;
  list-style: none;
  font-family: var(--font-ui);
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  color: var(--calila-meta);
}

.archive-header__breadcrumb-item {
  display: inline-flex;
  align-items: center;
  min-width: 0;
}

.archive-header__breadcrumb-item:not(:last-child)::after {
  content: '/';
  margin-left: var(--space-2);
  color: var(--calila-meta-claro);
}

.archive-header__breadcrumb-item a {
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  padding: 0.125rem 0;
  color: var(--calila-accent);
  text-decoration: none;
  touch-action: manipulation;
  -webkit-tap-highlight-color: var(--interactive-tap-highlight);
  transition: color var(--duration-fast) var(--ease-standard);
}

@media (hover: hover) {
  .archive-header__breadcrumb-item a:hover {
    color: var(--calila-accent-hover);
    text-decoration: underline;
    text-underline-offset: 0.15em;
  }
}

.archive-header__breadcrumb-item a:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
  border-radius: var(--radius-sm);
}

.archive-header__breadcrumb-item [aria-current='page'] {
  color: var(--calila-texto-suave);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 14rem;
}

.archive-header__intro {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-2);
  min-width: 0;
}

.archive-header__eyebrow {
  margin: 0;
  font-family: var(--eyebrow-font);
  font-size: var(--eyebrow-size);
  font-weight: var(--eyebrow-weight);
  letter-spacing: var(--eyebrow-tracking);
  text-transform: uppercase;
  color: var(--calila-accent);
}

.archive-header__title {
  margin: 0;
  font-family: var(--font-editorial);
  font-size: clamp(1.75rem, 1.25rem + 2vw, 2.375rem);
  font-weight: 700;
  line-height: var(--leading-display);
  letter-spacing: var(--tracking-display);
  color: var(--calila-texto);
  text-wrap: balance;
}

.archive-header__description {
  margin: var(--space-1) 0 0;
  max-width: var(--measure-compact);
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  line-height: var(--leading-body);
  color: var(--calila-texto-suave);
  text-wrap: pretty;
}

.archive-header__count {
  margin: var(--space-1) 0 0;
  font-family: var(--font-ui);
  font-size: var(--text-caption);
  font-weight: 500;
  letter-spacing: var(--tracking-meta);
  color: var(--calila-meta);
  font-variant-numeric: tabular-nums;
}

@media (min-width: 768px) {
  .archive-header {
    padding-bottom: var(--space-6);
  }

  .archive-header__breadcrumb-list {
    margin-bottom: var(--space-5);
  }

  .archive-header__intro {
    gap: var(--space-3);
  }

  .archive-header__description {
    font-size: var(--text-base);
  }

  .archive-header__breadcrumb-item [aria-current='page'] {
    max-width: none;
    white-space: normal;
  }
}

@media (prefers-reduced-motion: reduce) {
  .archive-header__breadcrumb-item a {
    transition: none;
  }
}

/* ===== ArchivePage.css ===== */
/* Página de arquivo (categoria / município) — mobile-first */

.archive-page,
.page-layout--inner #main-content:has(> .archive-header) {
  min-width: 0;
}

.archive-empty {
  padding: var(--space-8) var(--space-4);
  border-top: 1px dashed var(--calila-borda);
  border-bottom: 1px dashed var(--calila-borda);
  background: transparent;
  text-align: center;
}

@media (min-width: 768px) {
  .archive-empty {
    padding: var(--space-10) var(--space-5);
  }
}

.archive-empty__title {
  margin: 0 0 var(--space-3);
  font-family: var(--font-editorial);
  font-size: var(--text-xl);
  font-weight: 700;
  color: var(--calila-texto);
}

.archive-empty__text {
  margin: 0 auto;
  max-width: var(--measure-compact);
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  line-height: var(--leading-body);
  color: var(--calila-meta);
}

.archive-empty__text code {
  font-family: ui-monospace, monospace;
  font-size: 0.92em;
}

/* ===== SearchResultsPage.css ===== */
/* Página de resultados de busca — mobile-first */

.search-results {
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
  min-width: 0;
}

.search-results__header {
  margin: 0;
  padding-bottom: var(--space-5);
  border-bottom: 1px solid color-mix(in srgb, var(--calila-accent-border) 65%, var(--calila-borda));
}

.search-results__title {
  margin: 0;
  font-family: var(--font-editorial);
  font-size: var(--text-xl);
  font-weight: 700;
  line-height: 1.2;
  color: var(--calila-texto);
  text-wrap: balance;
}

.search-results__count {
  margin: var(--space-2) 0 0;
  color: var(--calila-meta);
}

.search-results__form {
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
}

.search-results__controls {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: 0;
  width: 100%;
  border: 1px solid var(--calila-borda);
  border-radius: var(--radius-md);
  background: var(--calila-branco);
  box-shadow: 0 1px 2px color-mix(in srgb, var(--calila-texto) 5%, transparent);
  overflow: hidden;
  transition:
    border-color var(--duration-fast) var(--ease-standard),
    box-shadow var(--duration-fast) var(--ease-standard);
}

.search-results__controls:focus-within {
  border-color: var(--calila-accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--calila-accent) 16%, transparent);
}

.search-results__input {
  flex: 1;
  min-width: 0;
  width: auto;
  min-height: var(--touch-min);
  padding: var(--space-3) var(--space-4);
  border: none;
  border-radius: 0;
  background: transparent;
  color: var(--calila-texto);
  font-family: var(--font-ui);
  font-size: max(1rem, var(--text-base)); /* evita zoom iOS */
  line-height: 1.4;
  touch-action: manipulation;
}

.search-results__input::placeholder {
  color: var(--calila-meta-claro);
}

.search-results__input:focus-visible {
  outline: none;
  box-shadow: none;
}

.search-results__submit {
  flex-shrink: 0;
  min-height: var(--touch-min);
  margin: 0;
  padding: var(--space-3) var(--space-5);
  border: none;
  border-left: 1px solid var(--calila-borda);
  border-radius: 0;
  background: var(--calila-accent);
  color: var(--calila-branco);
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  font-weight: 700;
  letter-spacing: var(--tracking-ui);
  text-transform: uppercase;
  white-space: nowrap;
  touch-action: manipulation;
  -webkit-tap-highlight-color: var(--interactive-tap-highlight);
  transition: background-color var(--duration-fast) var(--ease-standard);
}

@media (hover: hover) {
  .search-results__submit:hover {
    background: var(--calila-accent-hover);
  }
}

.search-results__submit:focus-visible {
  outline: var(--focus-ring);
  outline-offset: -2px;
}

.search-results__empty {
  padding: var(--space-8) var(--space-4);
  border: 1px dashed var(--calila-borda);
  border-radius: var(--radius-lg);
  background: var(--calila-branco);
  text-align: center;
  color: var(--calila-meta);
  font-size: var(--text-md);
  line-height: var(--leading-body);
  text-wrap: pretty;
}

@media (min-width: 768px) {
  .search-results {
    gap: var(--space-8);
  }

  .search-results__title {
    font-size: var(--text-2xl);
  }

  .search-results__controls {
    max-width: 36rem;
  }

  .search-results__submit {
    padding: var(--space-3) var(--space-6);
  }

  .search-results__empty {
    padding: var(--space-8) var(--space-5);
    border-radius: var(--radius-lg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .search-results__controls,
  .search-results__submit {
    transition: none;
  }
}

/* ===== ShareButton.css ===== */
.share-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  width: 100%;
  min-height: var(--touch-min);
  padding: 0 var(--space-4);
  border: none;
  border-radius: var(--radius-sm);
  background: var(--calila-whatsapp);
  color: var(--calila-branco);
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  font-weight: 600;
  letter-spacing: var(--tracking-ui);
  touch-action: manipulation;
  transition: background-color var(--duration-fast) var(--ease-standard);
}

.share-button:hover {
  background: var(--calila-whatsapp-hover);
}

.share-button:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
}

@media (min-width: 480px) {
  .share-button {
    width: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  .share-button {
    transition: none;
  }
}

/* ===== TvCalilaEmbed.css ===== */
.tv-calila__player {
  border-radius: var(--surface-panel-radius);
  overflow: hidden;
  background: var(--calila-noite);
}

.tv-calila__thumbnail-btn {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  touch-action: manipulation;
  overflow: hidden;
}

.tv-calila__thumbnail-btn:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
}

.tv-calila__thumbnail {
  display: block;
  width: 100%;
  aspect-ratio: var(--thumb-ratio-video);
  object-fit: cover;
  transition: transform var(--duration-normal) var(--ease-standard);
}

.tv-calila__thumbnail--empty {
  background:
    linear-gradient(
      135deg,
      color-mix(in srgb, var(--calila-laranja) 35%, var(--calila-noite)) 0%,
      var(--calila-noite) 100%
    );
}

.tv-calila__play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: transform var(--duration-fast) var(--ease-standard);
}

.tv-calila__play circle {
  transition: fill var(--duration-fast) var(--ease-standard);
}

@media (hover: hover) {
  .tv-calila__thumbnail-btn:hover .tv-calila__thumbnail {
    transform: scale(1.04);
  }

  .tv-calila__thumbnail-btn:hover .tv-calila__play {
    transform: translate(-50%, -50%) scale(1.08);
  }

  .tv-calila__thumbnail-btn:hover .tv-calila__play circle {
    fill: rgba(0, 0, 0, 0.78);
  }

  .tv-calila__thumbnail-btn:hover .tv-calila__title {
    color: var(--calila-branco);
  }
}

.tv-calila__thumbnail-btn:active .tv-calila__play {
  transform: translate(-50%, -50%) scale(1.02);
}

.tv-calila__title {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: var(--space-8) var(--space-4) var(--space-4);
  background: var(--gradient-hero);
  color: var(--calila-branco);
  font-family: var(--font-editorial);
  font-size: var(--text-base);
  font-weight: 700;
  line-height: var(--leading-headline);
  letter-spacing: var(--tracking-headline);
  text-align: left;
  text-wrap: balance;
  transition: color var(--duration-fast) var(--ease-standard);
}

@media (min-width: 768px) {
  .tv-calila__title {
    padding: var(--space-10) var(--space-5) var(--space-5);
    font-size: var(--text-lg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .tv-calila__thumbnail,
  .tv-calila__play,
  .tv-calila__play circle,
  .tv-calila__title {
    transition: none;
  }
}

/* ===== ArticlePage.css ===== */
.article-header__share {
  margin-top: var(--space-5);
}

@media (min-width: 768px) {
  .article-header__share {
    margin-top: var(--space-6);
  }
}

/* ===== StaticPage.css ===== */
/* Páginas institucionais — Política de Privacidade, Sobre, etc. */

.static-page {
  min-width: 0;
}

.static-page__article {
  max-width: min(var(--measure-article-column), 100%);
}

.static-page__header {
  margin: 0 0 var(--space-6);
  padding-bottom: var(--space-5);
  border-bottom: 1px solid color-mix(in srgb, var(--calila-accent-border) 65%, var(--calila-borda));
}

.static-page__title {
  margin: 0;
  font-family: var(--font-editorial);
  font-size: clamp(1.75rem, 1.3rem + 1.8vw, 2.25rem);
  font-weight: 700;
  line-height: var(--leading-display);
  letter-spacing: var(--tracking-display);
  color: var(--calila-texto);
  text-wrap: balance;
}

.static-page__meta {
  margin: var(--space-3) 0 0;
  font-family: var(--font-ui);
  font-size: var(--text-caption);
  color: var(--calila-meta);
}

.static-page__body {
  margin: 0;
}

.static-page__body > :first-child {
  margin-top: 0;
}

@media (min-width: 768px) {
  .static-page__header {
    margin-bottom: var(--space-8);
    padding-bottom: var(--space-6);
  }
}

/* ===== CategoryFeed.css ===== */
/* Feed de editoria em páginas — [calila_category_feed] modo legacy */

/* Landing espelhada: H1 da página + archive header + feed */
.static-page.archive-page .static-page__article {
  margin-bottom: 0;
}

.static-page.archive-page .content-section {
  margin-top: var(--space-8);
}

.editoria-landing__intro-ad {
  margin-top: var(--space-6);
}

.calila-category-feed {
  margin-top: var(--space-8);
  margin-bottom: var(--space-8);
  padding-top: var(--space-6);
}

.article-prose .calila-category-feed {
  margin-left: 0;
  margin-right: 0;
}

.article-prose .calila-category-feed h2 {
  margin-top: 0;
  margin-bottom: 0;
  font-size: inherit;
  line-height: inherit;
}

.article-prose .calila-category-feed .news-card-feed {
  margin-top: var(--space-6);
  margin-bottom: 0;
}

.calila-category-feed__header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--space-3) var(--space-4);
  margin-bottom: var(--space-4);
}

.calila-category-feed__header-text {
  min-width: 0;
}

.calila-category-feed__title {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: 700;
  line-height: 1.2;
  color: var(--calila-text);
}

.calila-category-feed__meta {
  margin: var(--space-1) 0 0;
}

.calila-category-feed__all-link {
  flex-shrink: 0;
  font-size: var(--text-sm);
}

.calila-category-feed__hero {
  margin-bottom: var(--space-6);
}

.calila-category-feed__more {
  margin-top: var(--space-8);
}

.calila-category-feed__empty,
.calila-category-feed__notice {
  margin: var(--space-4) 0 0;
}

.skel-card-compact {
  display: flex;
  gap: var(--space-3);
  align-items: flex-start;
}

.skel-card-compact__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  min-width: 0;
}

.skel-card-compact .skel--media {
  width: 6.5rem;
  height: 4.5rem;
  flex-shrink: 0;
  border-radius: var(--radius-sm);
}

@media (min-width: 768px) {
  .calila-category-feed__title {
    font-size: var(--text-2xl);
  }
}

/* ===== AnunciePage.css ===== */
/* Página Anuncie Aqui — mídia kit comercial */

.anuncie-page {
  min-width: 0;
  padding-bottom: var(--space-section-lg);
}

.anuncie-section {
  margin-top: var(--space-section);
  padding-top: var(--space-section);
  border-top: 1px solid color-mix(in srgb, var(--calila-accent-border) 55%, var(--calila-borda));
}

.anuncie-section__title {
  margin: 0 0 var(--space-3);
  font-family: var(--font-editorial);
  font-size: clamp(1.35rem, 1.1rem + 1vw, 1.65rem);
  font-weight: 700;
  line-height: var(--leading-display);
  letter-spacing: var(--tracking-display);
  color: var(--calila-texto);
  text-wrap: balance;
}

.anuncie-section__lead {
  margin: 0 0 var(--space-5);
  max-width: var(--measure-prose);
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  line-height: var(--leading-prose);
  color: var(--calila-texto-suave);
}

/* ── Hero ── */
.anuncie-hero {
  padding-bottom: var(--space-6);
  border-bottom: 1px solid color-mix(in srgb, var(--calila-accent-border) 65%, var(--calila-borda));
}

.anuncie-hero__eyebrow {
  margin: 0 0 var(--space-2);
}

.anuncie-hero__title {
  margin: 0;
  font-family: var(--font-editorial);
  font-size: clamp(1.75rem, 1.3rem + 1.8vw, 2.35rem);
  font-weight: 700;
  line-height: var(--leading-display);
  letter-spacing: var(--tracking-display);
  color: var(--calila-texto);
  text-wrap: balance;
}

.anuncie-hero__lead {
  margin: var(--space-4) 0 var(--space-5);
  max-width: var(--measure-prose);
  font-family: var(--font-ui);
  font-size: var(--text-base);
  line-height: var(--leading-prose);
  color: var(--calila-texto-suave);
}

.anuncie-hero__note {
  margin: var(--space-4) 0 0;
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  font-weight: 600;
  line-height: var(--leading-ui);
  color: var(--calila-accent);
}

.anuncie-hero__actions,
.anuncie-cta-band__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
}

.anuncie-hero__btn,
.anuncie-cta-band__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  min-height: var(--touch-min);
  padding: var(--space-2) var(--space-5);
  border-radius: var(--radius-sm);
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  font-weight: 600;
  letter-spacing: var(--tracking-ui);
  text-decoration: none;
  touch-action: manipulation;
  transition:
    background-color var(--duration-fast) var(--ease-standard),
    color var(--duration-fast) var(--ease-standard),
    border-color var(--duration-fast) var(--ease-standard);
}

.anuncie-hero__btn--whatsapp,
.anuncie-cta-band__btn--whatsapp {
  background: var(--calila-whatsapp);
  color: var(--calila-branco);
  border: 1px solid transparent;
}

.anuncie-hero__btn--whatsapp:hover,
.anuncie-cta-band__btn--whatsapp:hover {
  background: var(--calila-whatsapp-hover);
}

.anuncie-hero__btn--email,
.anuncie-cta-band__btn--email {
  background: var(--calila-branco);
  color: var(--calila-texto);
  border: 1px solid var(--calila-borda);
}

.anuncie-hero__btn--email:hover,
.anuncie-cta-band__btn--email:hover {
  border-color: var(--calila-accent-border);
  color: var(--calila-accent);
}

.anuncie-hero__btn:focus-visible,
.anuncie-cta-band__btn:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
}

/* ── Por que Calila ── */
.anuncie-why__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--space-3);
}

.anuncie-why__list li {
  position: relative;
  padding-left: var(--space-5);
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  line-height: var(--leading-prose);
  color: var(--calila-texto-suave);
}

.anuncie-why__list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: var(--calila-laranja);
}

/* ── Mapa de páginas ── */
.anuncie-page-map__grid {
  display: grid;
  gap: var(--space-4);
}

.anuncie-page-map__card {
  padding: var(--space-4);
  border: 1px solid var(--calila-borda);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--calila-branco) 92%, var(--calila-fundo));
}

.anuncie-page-map__card-title {
  margin: 0 0 var(--space-3);
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  font-weight: 700;
  letter-spacing: var(--tracking-section);
  text-transform: uppercase;
  color: var(--calila-meta);
}

.anuncie-page-map__wireframe {
  margin-bottom: var(--space-4);
  padding: var(--space-3);
  border: 1px dashed color-mix(in srgb, var(--calila-borda) 80%, transparent);
  border-radius: var(--radius-sm);
  background: var(--calila-fundo);
}

.anuncie-page-map__wire-header {
  height: 0.5rem;
  margin-bottom: var(--space-2);
  border-radius: 2px;
  background: color-mix(in srgb, var(--calila-laranja) 35%, var(--calila-borda));
}

.anuncie-page-map__wire-body {
  display: grid;
  grid-template-columns: 1fr minmax(4rem, 28%);
  gap: var(--space-2);
}

.anuncie-page-map__wire-main {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  min-width: 0;
}

.anuncie-page-map__wire-side {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.anuncie-page-map__wire-line {
  display: block;
  height: 0.35rem;
  border-radius: 2px;
  background: color-mix(in srgb, var(--calila-borda) 70%, transparent);
}

.anuncie-page-map__wire-block {
  display: block;
  height: 2rem;
  border-radius: var(--radius-sm);
  border: 1px solid var(--ad-frame-border);
  background: var(--ad-frame-bg);
}

.anuncie-page-map__wire-block--tall {
  height: 3.5rem;
}

.anuncie-page-map__pin {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  padding: 0.15rem 0.5rem;
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--calila-laranja) 18%, var(--calila-branco));
  font-family: var(--font-ui);
  font-size: var(--text-2xs);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--calila-laranja-escuro);
}

.anuncie-page-map__zones {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1) var(--space-2);
}

.anuncie-page-map__zone-name {
  font-family: var(--font-ui);
  font-size: var(--text-caption);
  color: var(--calila-texto-suave);
}

.anuncie-page-map__zones li:not(:last-child) .anuncie-page-map__zone-name::after {
  content: '·';
  margin-left: var(--space-2);
  color: var(--calila-meta);
}

/* ── Grid de formatos ── */
.anuncie-formats__grid {
  display: grid;
  gap: var(--space-4);
}

.anuncie-zone-card {
  display: grid;
  gap: var(--space-4);
  padding: var(--space-4);
  border: 1px solid var(--calila-borda);
  border-radius: var(--radius-md);
  background: var(--calila-branco);
}

.anuncie-zone-card__preview {
  margin: 0;
}

.anuncie-zone-card__preview .ad-slot__frame {
  margin: 0 auto;
}

.anuncie-zone-card__title {
  margin: 0 0 var(--space-2);
  font-family: var(--font-ui);
  font-size: var(--text-base);
  font-weight: 700;
  line-height: var(--leading-ui);
  color: var(--calila-texto);
}

.anuncie-zone-card__desc {
  margin: 0 0 var(--space-3);
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  line-height: var(--leading-prose);
  color: var(--calila-texto-suave);
}

.anuncie-zone-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3) var(--space-5);
  margin: 0 0 var(--space-2);
}

.anuncie-zone-card__meta dt {
  font-family: var(--font-ui);
  font-size: var(--text-2xs);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--calila-meta);
}

.anuncie-zone-card__meta dd {
  margin: 0.15rem 0 0;
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--calila-texto);
}

.anuncie-zone-card__pages {
  margin: 0;
  font-family: var(--font-ui);
  font-size: var(--text-caption);
  color: var(--calila-meta);
}

/* ── Outras opções ── */
.anuncie-extras__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--space-3);
}

.anuncie-extras__item {
  padding: var(--space-4);
  border: 1px solid var(--calila-borda);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--calila-fundo) 60%, var(--calila-branco));
}

.anuncie-extras__item-title {
  margin: 0 0 var(--space-2);
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  font-weight: 700;
  color: var(--calila-texto);
}

.anuncie-extras__item p {
  margin: 0;
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  line-height: var(--leading-prose);
  color: var(--calila-texto-suave);
}

.anuncie-extras__note {
  margin-bottom: var(--space-4);
}

/* ── Specs ── */
.anuncie-specs__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--space-2);
}

.anuncie-specs__list li {
  position: relative;
  padding-left: var(--space-4);
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  line-height: var(--leading-prose);
  color: var(--calila-texto-suave);
}

.anuncie-specs__list li::before {
  content: '—';
  position: absolute;
  left: 0;
  color: var(--calila-laranja);
  font-weight: 700;
}

/* ── CTA band ── */
.anuncie-cta-band {
  margin-top: var(--space-section);
  padding: var(--space-6) var(--space-4);
  border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--calila-laranja) 12%, var(--calila-fundo));
  border: 1px solid color-mix(in srgb, var(--calila-laranja) 35%, var(--calila-borda));
}

.anuncie-cta-band__inner {
  max-width: var(--measure-prose);
}

.anuncie-cta-band__title {
  margin: 0 0 var(--space-2);
  font-family: var(--font-editorial);
  font-size: clamp(1.35rem, 1.1rem + 1vw, 1.65rem);
  font-weight: 700;
  line-height: var(--leading-display);
  color: var(--calila-texto);
}

.anuncie-cta-band__lead {
  margin: 0 0 var(--space-5);
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  line-height: var(--leading-prose);
  color: var(--calila-texto-suave);
}

.anuncie-cta-band__contact {
  margin: var(--space-4) 0 0;
}

.anuncie-cta-band__contact a {
  color: var(--calila-texto-suave);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.anuncie-cta-band__contact a:hover {
  color: var(--calila-texto);
}

@media (min-width: 640px) {
  .anuncie-page-map__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .anuncie-formats__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .anuncie-extras__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .anuncie-zone-card {
    grid-template-columns: minmax(10rem, 38%) 1fr;
    align-items: start;
  }
}

@media (min-width: 768px) {
  .anuncie-hero__actions .anuncie-hero__btn,
  .anuncie-cta-band__actions .anuncie-cta-band__btn {
    min-width: 11rem;
  }
}

@media (min-width: 1024px) {
  .anuncie-formats__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .anuncie-extras__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 479px) {
  .anuncie-hero__actions,
  .anuncie-cta-band__actions {
    flex-direction: column;
  }

  .anuncie-hero__btn,
  .anuncie-cta-band__btn {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .anuncie-hero__btn,
  .anuncie-cta-band__btn {
    transition: none;
  }
}

/* ===== app.css ===== */
/* Grid de cards editoriais — Notícias Recentes, Mais Notícias */

.news-card-feed {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}

/* Arquivo / busca — lista editorial densa, full-width */
.news-card-feed--dense {
  gap: 0;
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 0;
}

.news-card-feed--dense .news-card-feed__item + .news-card-feed__item {
  border-top: 1px solid var(--surface-list-divider);
}

.news-card-feed--dense .news-card,
.news-card-feed--dense .news-card__link {
  width: 100%;
  max-width: none;
}

.news-card-feed--dense .news-card--compact .news-card__link,
.news-card-feed--dense .news-card--list .news-card__link {
  display: flex;
  gap: var(--space-4);
  align-items: flex-start;
  box-sizing: border-box;
  width: 100%;
  padding: var(--space-4) 0;
  border-radius: var(--radius-sm);
}

.news-card-feed--dense .news-card--compact .news-card__figure,
.news-card-feed--dense .news-card--list .news-card__figure {
  flex: 0 0 7.25rem;
  flex-basis: 7.25rem;
  width: 7.25rem;
  max-width: 7.25rem;
  aspect-ratio: 4 / 3;
  align-self: stretch;
}

.news-card-feed--dense .news-card--compact .news-card__body,
.news-card-feed--dense .news-card--list .news-card__body {
  flex: 1 1 auto;
  min-width: 0;
  justify-content: flex-start;
  gap: var(--space-1);
  padding-block: 0.125rem;
}

.news-card-feed--dense .news-card--compact .news-card__tags,
.news-card-feed--dense .news-card--list .news-card__tags {
  margin-bottom: var(--space-1);
}

.news-card-feed--dense .news-card--compact .news-card__title,
.news-card-feed--dense .news-card--list .news-card__title {
  font-size: 1.125rem; /* 18px */
  font-weight: 700;
  line-height: 1.28;
}

.news-card-feed--dense .news-card--compact .news-card__meta,
.news-card-feed--dense .news-card--list .news-card__meta {
  margin-top: var(--space-2);
  font-size: var(--text-caption);
}

.news-card-feed--dense .news-card-feed__ad {
  border-top: 1px solid var(--surface-list-divider);
  margin: 0;
  padding: var(--space-4) 0;
}

.news-card-feed__item {
  display: flex;
  width: 100%;
  min-width: 0;
}

.news-card-feed__ad {
  display: flex;
  justify-content: center;
  width: 100%;
  margin: var(--space-2) 0;
  padding: var(--space-2) 0;
}

.news-card-feed__ad .ad-slot {
  margin: 0;
}

/* Cards do feed — altura uniforme no grid */
.news-card-feed .news-card--default {
  display: flex;
  flex-direction: column;
  width: 100%;
}

.news-card-feed .news-card--default .news-card__link {
  flex: 1;
  height: 100%;
}

.news-card-feed .news-card--default .news-card__body {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.news-card-feed .news-card--no-excerpt .news-card__meta,
.news-card-feed .news-card--default .news-card__meta {
  margin-top: auto;
  padding-top: var(--space-3);
}

.news-card-feed .news-card--default .news-card__figure {
  overflow: hidden;
}

@media (min-width: 768px) {
  .news-card-feed:not(.news-card-feed--dense) {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    align-items: stretch;
    gap: var(--space-5);
  }

  .news-card-feed:not(.news-card-feed--dense) .news-card-feed__ad {
    grid-column: 1 / -1;
    margin: 0;
    padding: var(--space-4) 0;
  }

  /* Lista editorial aberta — sem card (padrão do portal) */
  .news-card-feed--dense {
    background: transparent;
    border: none;
    border-radius: 0;
    padding: 0;
  }

  .news-card-feed--dense .news-card--compact .news-card__link,
  .news-card-feed--dense .news-card--list .news-card__link {
    gap: var(--space-5);
    padding: var(--space-5) var(--space-3);
    margin-inline: calc(-1 * var(--space-3));
  }

  .news-card-feed--dense .news-card--compact .news-card__figure,
  .news-card-feed--dense .news-card--list .news-card__figure {
    flex: 0 0 10.5rem;
    flex-basis: 10.5rem;
    width: 10.5rem;
    max-width: 10.5rem;
    aspect-ratio: 4 / 3;
  }

  .news-card-feed--dense .news-card--compact .news-card__title,
  .news-card-feed--dense .news-card--list .news-card__title {
    font-size: 1.25rem; /* 20px */
    line-height: 1.26;
  }

  .news-card-feed--dense .news-card--compact .news-card__meta,
  .news-card-feed--dense .news-card--list .news-card__meta {
    margin-top: var(--space-3);
  }
}

@media (min-width: 1024px) {
  .news-card-feed:not(.news-card-feed--dense) {
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-6);
  }
}

@media (min-width: 1280px) {
  .news-card-feed:not(.news-card-feed--dense) {
    gap: var(--space-8) var(--space-6);
  }
}

.most-read-mobile {
  margin-top: var(--space-section);
}

@media (min-width: 1024px) {
  .most-read-mobile {
    display: none;
  }
}

.page-layout__sidebar {
  display: none;
  flex-direction: column;
  gap: var(--space-6);
  min-width: 0;
}

.page-layout__sidebar > .most-read,
.page-layout__sidebar > .sidebar__ads {
  width: 100%;
}

/* Rail mobile — sidebar widgets abaixo do conteúdo (<1024) */
.page-layout__mobile-rail {
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
  margin-top: var(--space-section);
  padding-top: var(--space-section);
  border-top: 1px solid var(--calila-borda);
}

.page-layout__mobile-rail .ad-slot {
  margin: 0;
  padding-bottom: 0;
  border-bottom: none;
}

@media (min-width: 1024px) {
  .page-layout__sidebar {
    display: flex;
  }

  .page-layout__mobile-rail {
    display: none;
  }
}

.home-footer-ad {
  width: 100%;
}

.page-layout:not(.page-layout--inner) .home-footer-ad {
  margin-top: 0;
}

.page-layout__hero-ad {
  display: flex;
  justify-content: center;
  margin-bottom: var(--space-5);
  padding-block: var(--space-1);
}

.page-layout__hero-ad .ad-slot--header {
  margin: 0;
}

@media (min-width: 768px) {
  .page-layout__hero-ad {
    display: none;
  }
}

/* MPU 300×250 central — somente mobile (<768px) */
@media (min-width: 768px) {
  .calila-ad--mobile-only,
  .news-card-feed__ad,
  .article-inline-ad,
  .article-prose-ad {
    display: none !important;
  }
}

/* ===== wp-compat.css ===== */
/**
 * Compat WordPress — reseta estilos padrão que quebram o BEM do protótipo.
 */

.site-header__nav-list,
.site-header__nav-list ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.site-header__nav-list a {
  text-decoration: none;
}

/* WP costuma injetar .screen-reader-text / skip links */
.skip-link.visually-hidden:focus {
  position: static;
  width: auto;
  height: auto;
  margin: 0;
  padding: var(--space-2) var(--space-4);
  clip: auto;
  overflow: visible;
}

/* Placeholder quando o post não tem featured image */
.news-card__figure--placeholder,
.police-section__lead-media.news-card__figure--placeholder,
.police-section__item-media.calila-thumb--placeholder,
.most-read__media.news-card__figure--placeholder,
.most-read__lead-figure.news-card__figure--placeholder,
.article-header__figure-placeholder {
  margin: 0;
  background:
    linear-gradient(145deg, #c49a55 0%, #a0672e 42%, #6b3a14 100%);
}

.most-read__lead-figure.news-card__figure--placeholder {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  min-height: 0;
}

.article-header__figure-placeholder {
  display: block;
  width: 100%;
  aspect-ratio: var(--thumb-ratio-editorial);
  min-height: 12rem;
}

/* Gutenberg / conteúdo WP — coluna editorial sempre esquerda */
.article-prose.entry-content,
.article-prose.entry-content > p,
.article-prose.entry-content > h2,
.article-prose.entry-content > h3,
.article-prose .has-text-align-center,
.article-prose .has-text-align-right {
  text-align: left !important;
}

/* Rail ads — gap único (sem margin duplo do .ad-slot--sidebar) */
.sidebar__ads {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  width: 100%;
  min-width: 0;
}

.sidebar__ads .ad-slot--sidebar,
.sidebar__ads .ad-slot--sidebar-2,
.sidebar__ads .ad-slot--sidebar-3 {
  margin: 0;
  padding-bottom: 0;
  border-bottom: none;
}

.sidebar__ads .ad-slot__frame {
  width: 100%;
  max-width: var(--ad-mpu-w);
}

.sidebar,
.page-layout__sidebar,
.article-page__sidebar {
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
  min-width: 0;
}

.page-layout__sidebar {
  display: none;
}

@media (min-width: 1024px) {
  .page-layout__sidebar {
    display: flex;
  }
}

.article-prose .aligncenter,
.article-prose .wp-block-image.aligncenter {
  margin-inline: auto;
  text-align: center;
}

.article-prose .wp-block-image,
.article-prose .wp-caption {
  max-width: 100%;
}

.article-prose .wp-block-image img,
.article-prose .wp-caption img,
.article-prose .alignwide img,
.article-prose .alignfull img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
}

.article-prose .wp-caption {
  width: auto !important;
  padding: 0;
  border: none;
  background: transparent;
}

.article-prose .wp-caption-text {
  padding: 0;
}

.police-section__item-media.calila-thumb--placeholder {
  flex: 0 0 var(--police-item-thumb-w, 5.5rem);
  width: var(--police-item-thumb-w, 5.5rem);
  aspect-ratio: 3 / 2;
}

.police-section__lead-media.news-card__figure--placeholder {
  aspect-ratio: 16 / 9;
  min-height: 0;
}

@media (min-width: 1024px) {
  .police-section__lead-media.news-card__figure--placeholder {
    aspect-ratio: 16 / 9;
    max-height: none;
  }
}

.news-card--hero-main,
.news-card--hero-secondary {
  min-height: 16rem;
}

@media (min-width: 768px) {
  .news-card--hero-main {
    min-height: 22rem;
  }

  .news-card--hero-secondary {
    min-height: 10.5rem;
  }
}

.page-layout__content .news-card--default .news-card__link {
  min-height: 0;
}

/* ===== Skeleton.css ===== */
/**
 * Skeleton / shimmer — só para conteúdo ainda não disponível (AJAX / img pending).
 */

:root {
  --skel-base: var(--calila-borda, #e8e8e8);
  --skel-shine: color-mix(in srgb, var(--calila-fundo, #f5f5f5) 70%, var(--calila-borda, #e8e8e8));
}

.skel {
  display: block;
  border-radius: var(--radius-sm, 4px);
  background: var(--skel-base);
  background-image: linear-gradient(
    90deg,
    var(--skel-base) 0%,
    var(--skel-shine) 45%,
    var(--skel-base) 90%
  );
  background-size: 200% 100%;
  animation: calila-skel-shimmer 1.15s ease-in-out infinite;
}

.skel--media {
  width: 100%;
  aspect-ratio: var(--thumb-ratio-editorial, 16 / 10);
  border-radius: var(--radius-sm, 4px);
}

.skel--title {
  height: 1.05em;
  width: 92%;
  margin: 0.15rem 0;
}

.skel--title-short {
  width: 68%;
}

.skel--meta {
  height: 0.75em;
  width: 55%;
  margin-top: 0.35rem;
}

.skel--place {
  height: 0.65em;
  width: 42%;
  max-width: 9rem;
}

.skel-wire-item {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  min-width: 0;
  list-style: none;
}

.skel-wire-item__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.4rem;
}

@keyframes calila-skel-shimmer {
  0% {
    background-position: 100% 0;
  }
  100% {
    background-position: -100% 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .skel {
    animation: none;
    background-image: none;
    background: var(--skel-base);
  }
}

/* Media reveal — figure fica “mock” até a img carregar */
.news-card__figure.is-pending,
.news-wire__figure.is-pending {
  background: var(--skel-base);
  background-image: linear-gradient(
    90deg,
    var(--skel-base) 0%,
    var(--skel-shine) 45%,
    var(--skel-base) 90%
  );
  background-size: 200% 100%;
  animation: calila-skel-shimmer 1.15s ease-in-out infinite;
}

.news-card__figure.is-pending .news-card__image,
.news-card__figure.is-pending .calila-media-reveal,
.news-wire__figure.is-pending .news-wire__image,
.news-wire__figure.is-pending .calila-media-reveal {
  opacity: 0;
}

.calila-media-reveal {
  opacity: 0;
  transition: opacity 0.28s var(--ease-standard, ease);
}

.calila-media-reveal.is-loaded {
  opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
  .news-card__figure.is-pending,
  .news-wire__figure.is-pending {
    animation: none;
    background-image: none;
  }

  .calila-media-reveal {
    opacity: 1;
    transition: none;
  }
}
