/*
Theme Name: L/A COM
Theme URI: https://lacom.ag
Description: Tema do site da L/A COM. Home, cases (categoria "Cases", com campos estruturados) e análises (categoria "Análises") vêm do WordPress; o visual reproduz o sistema da home original.
Version: 1.0.0
Requires at least: 6.4
Requires PHP: 8.1
Text Domain: lacom
*/

/* ============================================================
   L/A COM — sistema visual
   Tokens, tipografia e componentes da home.
   ============================================================ */

/* --- 1. Tokens ------------------------------------------- */
:root {
  /* superfícies */
  --bg:        #F6F8FA;
  --surface:   #FFFFFF;
  --grid:      #E7EDF1;

  /* texto (todos >= 4.5:1 sobre --bg) */
  --ink:       #0C1E2E;  /* 15.9:1 */
  --body:      #33485A;  /*  8.9:1 */
  --muted:     #4E626F;  /*  6.0:1 */
  --quiet:     #5E7180;  /*  4.8:1 */

  /* linhas */
  --rule:      #C8D4DC;  /* divisor de seção */
  --rule-2:    #D3DDE3;  /* divisor interno  */
  --line:      #78899A;  /* borda de campo (>=3:1, WCAG 1.4.11) */

  /* marca */
  --blue:      #0967C0;  /*  5.3:1 sobre --bg */
  --cyan:      #2FDEE1;  /*  decorativo apenas */
  --teal:      #0B7A98;  /*  4.6:1 sobre --bg / 4.9:1 com texto branco */
  --teal-disp: #128FAE;  /*  3.5:1 — só texto grande (>=24px bold) */

  /* gradientes */
  --grad:      linear-gradient(100deg, var(--blue) 0%, var(--cyan) 100%);      /* decorativo */
  --grad-disp: linear-gradient(100deg, var(--blue) 0%, var(--teal-disp) 100%); /* texto grande */
  --grad-ui:   linear-gradient(100deg, var(--blue) 0%, var(--teal) 100%);      /* botão / texto pequeno */

  /* tipografia */
  --sans:  'Archivo', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --serif: 'Spectral', Georgia, 'Times New Roman', serif;
  --mono:  'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  /* medidas */
  --maxw: 1280px;
  --gut:  40px;
}

@media (max-width: 900px) { :root { --gut: 26px; } }
@media (max-width: 480px) { :root { --gut: 18px; } }

/* --- 2. Base --------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;   /* nunca bloqueia o zoom */
  scroll-behavior: smooth;
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

body {
  margin: 0;
  background: var(--bg);
  background-image:
    linear-gradient(var(--grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid) 1px, transparent 1px);
  background-size: 64px 64px;
  background-position: -1px -1px;
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img, svg { display: block; max-width: 100%; }
.svg-defs { position: absolute; width: 0; height: 0; overflow: hidden; }
h1, h2, h3, p, figure, blockquote { margin: 0; }

a { color: var(--blue); text-decoration: none; }
a:hover { color: var(--ink); }

:focus-visible {
  outline: 3px solid var(--blue);
  outline-offset: 3px;
}
::selection { background: var(--cyan); color: var(--ink); }

.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 100;
  background: var(--ink); color: var(--bg);
  font-family: var(--mono); font-size: 13px;
  padding: 12px 20px;
}
.skip-link:focus { left: 0; color: var(--bg); }

.wrap {
  max-width: var(--maxw);
  margin-inline: auto;
  padding-inline: var(--gut);
}

/* --- 3. Cabeçalho ---------------------------------------- */
.topbar { height: 3px; background: var(--grad); }

.site-header {
  position: sticky; top: 0; z-index: 20;
  background: var(--bg);
}
/* impede que o cabeçalho fixo cubra o alvo das âncoras */
:target, section[id], main[id] { scroll-margin-top: 116px; }
.site-header__inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: 32px; flex-wrap: wrap;
  padding-block: 26px;
  border-bottom: 1px solid var(--rule);
}

.brand { display: block; flex: 0 0 auto; }
.brand__mark { width: 185px; height: auto; }
/* em tela estreita a testeira fica fixa por mais tempo: encolhe o respiro */
@media (max-width: 640px) { .site-header__inner { padding-block: 19px; } }
@media (max-width: 480px) { .brand__mark { width: 152px; } }

.nav {
  display: flex; flex-wrap: wrap; align-items: center; gap: 26px;
  font-family: var(--mono); font-size: 12px; letter-spacing: .04em;
}
.nav a {
  color: var(--muted);
  padding-bottom: 2px;
  border-bottom: 1px solid transparent;
  transition: color .15s, border-color .15s;
}
.nav a:hover, .nav a:focus-visible { color: var(--ink); border-bottom-color: var(--cyan); }
.nav a.is-cta { color: var(--blue); font-weight: 500; border-bottom-color: var(--blue); }
.nav a.is-cta:hover, .nav a.is-cta:focus-visible { color: var(--ink); border-bottom-color: var(--ink); }

/* --- 4. Utilitários tipográficos -------------------------- */
.eyebrow {
  font-family: var(--mono);
  font-size: 11.5px; letter-spacing: .16em; text-transform: uppercase;
  color: var(--muted);
}
.eyebrow .mark { color: var(--blue); }

.lead {
  font-family: var(--serif);
  font-size: clamp(16.5px, 1.85vw, 21px);      /* frase da home reduzida */
  line-height: 1.5;
  color: var(--body);
  max-width: 52ch;
  text-wrap: pretty;
}

.prose { font-family: var(--serif); font-size: 16px; line-height: 1.6; color: var(--body); text-wrap: pretty; }
.meta  { font-family: var(--mono); font-size: 11px; line-height: 1.65; color: var(--quiet); }

.grad-text {
  background-image: var(--grad-disp);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  color: var(--blue);          /* fallback onde background-clip não aplica */
}

/* --- 5. Botões ------------------------------------------- */
.btn {
  display: inline-block;
  font-family: var(--mono); font-size: 13px; font-weight: 500;
  padding: 15px 26px;
  border: 0; border-radius: 0;
  cursor: pointer;
  transition: filter .15s, color .15s, background .15s;
}
.btn--primary { background-image: var(--grad-ui); color: #FFFFFF; }
.btn--primary:hover { filter: saturate(1.25) brightness(1.08); color: #FFFFFF; }

.btn--ghost {
  padding: 13.5px 26px;
  color: var(--blue);
  border: 1.5px solid transparent;
  background-image: linear-gradient(var(--bg), var(--bg)), var(--grad);
  background-origin: border-box;
  background-clip: padding-box, border-box;
}
.btn--ghost:hover { color: var(--ink); }

.btn--solid {
  background: var(--ink); color: var(--bg);
  border: 1px solid var(--ink);
}
.btn--solid:hover { background: var(--blue); border-color: var(--blue); color: #FFFFFF; }

/* --- 6. Estrutura de seção ------------------------------- */
main { max-width: var(--maxw); margin-inline: auto; padding-inline: var(--gut); }

.section {
  border-top: 1px solid var(--rule);
  padding-block: 64px;
  display: flex; flex-wrap: wrap; gap: 26px 48px;
}
.section__index {
  flex: 0 0 132px;
  font-family: var(--mono);
  font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
  line-height: 1.7; color: var(--quiet);
}
.section__index b { color: var(--blue); font-weight: 700; }
.section__body { flex: 1 1 520px; min-width: 0; display: flex; flex-direction: column; gap: 28px; }

.h2 {
  font-weight: 800;
  font-size: clamp(28px, 4.4vw, 52px);
  line-height: 1; letter-spacing: -.04em;
  text-wrap: balance;
}
.h3 { font-weight: 700; font-size: 21px; line-height: 1.12; letter-spacing: -.03em; }

/* --- 7. Hero --------------------------------------------- */
.hero { padding: 80px 0 64px; display: flex; flex-direction: column; gap: 32px; }
.hero__title {
  font-weight: 800;
  font-size: clamp(46px, 9.4vw, 124px);
  line-height: .9; letter-spacing: -.05em;
  max-width: 14ch; text-wrap: balance;
}
.hero__actions { display: flex; flex-wrap: wrap; gap: 12px; padding-top: 4px; }

/* --- 8. 01 Números --------------------------------------- */
.stats {
  border-top: 1px solid var(--rule);
  display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
}
.stat { padding: 30px 24px 30px 0; border-right: 1px solid var(--rule-2); }
.stat:last-child { padding-right: 0; border-right: 0; }
.stat__label {
  display: block; font-family: var(--mono);
  font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--quiet);
}
.stat__value {
  display: block; margin-top: 12px;
  font-weight: 800; font-size: clamp(36px, 4.4vw, 56px);
  letter-spacing: -.05em; line-height: 1; font-variant-numeric: tabular-nums;
}

/* --- 9. 02 Clientes -------------------------------------- */
.logos {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(172px, 1fr));
  gap: 1px; background: var(--rule-2); border: 1px solid var(--rule-2);
}
.logos li {
  list-style: none;
  background: var(--bg);
  aspect-ratio: 16 / 7;
  display: flex; align-items: center; justify-content: center;
  padding: 16px;
  font-family: var(--mono); font-size: 12px; letter-spacing: .04em;
  color: var(--muted); text-align: center; line-height: 1.4;
  transition: background .15s, color .15s;
}
.logos li:hover { background: var(--surface); color: var(--ink); }
.logos { margin: 0; padding: 0; }

/* --- 10. 03 Camadas -------------------------------------- */
.layers {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  border-top: 1px solid var(--rule);
}
.layer {
  padding: 26px 26px 26px 0;
  border-right: 1px solid var(--rule-2);
  display: flex; flex-direction: column; gap: 10px;
}
.layer:last-child { padding-right: 0; border-right: 0; }
.layer__tag {
  font-family: var(--mono); font-size: 10.5px; font-weight: 500;
  letter-spacing: .14em; text-transform: uppercase; color: var(--blue);
}

/* rodapé de card: "Cases · nome, nome" */
.cases-note {
  margin-top: auto; padding-top: 14px;
  font-family: var(--mono); font-size: 11px; line-height: 1.65; color: var(--quiet);
}
.cases-note b { color: var(--blue); font-weight: 700; }
.cases-note span { color: var(--ink); font-weight: 500; }

/* --- 11. 04 Serviços ------------------------------------- */
.services {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(276px, 1fr));
  gap: 1px; background: var(--rule-2);
  border-top: 1px solid var(--rule-2); border-left: 1px solid var(--rule-2);
}
.service {
  background: var(--bg); padding: 26px;
  display: flex; flex-direction: column; gap: 9px; min-width: 0;
}
.service__num { font-family: var(--mono); font-size: 11px; font-weight: 700; color: var(--blue); letter-spacing: .08em; }
.service .cases-note { border-top: 1px solid var(--rule-2); }

/* --- 12. 05 Cases ---------------------------------------- */
.section__head { display: flex; flex-wrap: wrap; gap: 10px 24px; align-items: baseline; justify-content: space-between; }
.counter { font-family: var(--mono); font-size: 11.5px; letter-spacing: .12em; color: var(--quiet); }

.cases {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 1px; background: var(--rule-2); border: 1px solid var(--rule-2);
}
.case {
  background: var(--bg); padding: 26px;
  display: flex; flex-direction: column; justify-content: space-between; gap: 22px;
  min-height: 262px; min-width: 0;
  color: var(--ink);
  transition: background .15s;
}
.case:hover { background: var(--surface); color: var(--ink); }
.case__head { display: flex; flex-direction: column; gap: 8px; }
.case__when {
  font-family: var(--mono); font-size: 10.5px;
  letter-spacing: .12em; text-transform: uppercase; color: var(--quiet);
}
.case__desc { font-family: var(--serif); font-size: 15.5px; line-height: 1.55; color: var(--body); }
.case__figure {
  display: block; font-weight: 800;
  font-size: clamp(32px, 3.6vw, 46px); letter-spacing: -.05em; line-height: .95;
  color: var(--blue); font-variant-numeric: tabular-nums;
}
.case__caption { display: block; margin-top: 8px; font-family: var(--mono); font-size: 11px; line-height: 1.55; color: var(--quiet); }

/* --- 13. 06 Diferencial ---------------------------------- */
.split {
  flex: 1 1 520px; min-width: 0;
  display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 28px 56px; align-items: start;
}
.argument {
  display: flex; flex-direction: column; gap: 18px; min-width: 0;
  font-family: var(--serif); font-size: 17px; line-height: 1.65; color: var(--body);
}
.pull {
  padding-left: 22px;
  border-left: 3px solid var(--cyan);
  font-family: var(--sans); font-weight: 600;
  font-size: 19px; line-height: 1.4; letter-spacing: -.02em;
  color: var(--ink); text-wrap: pretty;
}

/* --- 14. 07 Análises ------------------------------------- */
.posts { display: flex; flex-direction: column; border-top: 1px solid var(--rule); }
.post {
  display: flex; flex-wrap: wrap; gap: 8px 28px;
  padding: 24px 0; border-bottom: 1px solid var(--rule-2);
  color: var(--ink);
}
.post:hover { color: var(--blue); }
.post__date {
  flex: 0 0 104px; padding-top: 5px;
  font-family: var(--mono); font-size: 11px;
  letter-spacing: .1em; text-transform: uppercase; color: var(--quiet);
}
.post__body { flex: 1 1 360px; min-width: 0; }
.post__title { display: block; max-width: 44ch; color: inherit; font-weight: 700; font-size: 21px; line-height: 1.2; letter-spacing: -.03em; }
.post__byline { display: block; margin-top: 7px; font-family: var(--mono); font-size: 11px; color: var(--quiet); }

/* --- 15. 08 Contato -------------------------------------- */
.contact__intro { margin-top: 20px; font-size: 17px; max-width: 40ch; }
.contact-lines { margin-top: 22px; font-family: var(--mono); font-size: 12px; line-height: 2; color: var(--muted); }
.form__actions { padding-top: 8px; }
.section--last { padding-bottom: 80px; }
.contact-lines a { border-bottom: 1px solid var(--line); }

.form { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.hp-field { position: absolute !important; left: -9999px !important; top: -9999px !important; height: 1px; width: 1px; overflow: hidden; }
.form__err { font-family: var(--mono); font-size: 12px; color: #b3261e; }
.form-thanks { font-size: 17px; max-width: 40ch; padding-top: 8px; }
.field { display: flex; flex-direction: column; gap: 6px; }
.field label {
  font-family: var(--mono); font-size: 10.5px;
  letter-spacing: .14em; text-transform: uppercase; color: var(--muted);
}
.field input, .field textarea {
  font-family: var(--sans); font-size: 16px;   /* 16px evita zoom automático no iOS */
  color: var(--ink); background: transparent;
  border: 0; border-bottom: 1px solid var(--line);
  border-radius: 0; padding: 9px 0;
  width: 100%;
}
.field textarea { resize: vertical; min-height: 60px; }
.field input:focus, .field textarea:focus { border-bottom-color: var(--blue); }

/* --- 16. Rodapé ------------------------------------------ */
.site-footer { border-top: 1px solid var(--rule); }
.site-footer__inner {
  display: flex; flex-wrap: wrap; gap: 24px 48px;
  justify-content: space-between; align-items: flex-end;
  padding: 32px 0 52px;
}
.site-footer .brand__mark { width: 132px; margin-bottom: 12px; }
.site-footer p { font-family: var(--mono); font-size: 11px; color: var(--quiet); line-height: 1.9; }
.site-footer__legal { text-align: right; }
@media (max-width: 560px) { .site-footer__legal { text-align: left; } }

/* --- 17. Ajustes finos de viewport ----------------------- */
@media (max-width: 560px) {
  .section { padding-block: 48px; }
  .hero { padding: 56px 0 48px; }
  .stat { padding-right: 16px; }
  .layer { padding-right: 0; border-right: 0; border-bottom: 1px solid var(--rule-2); }
  .layer:last-child { border-bottom: 0; }
  .section__index { flex-basis: 100%; }
}

@media print {
  body { background: #FFF; }
  .site-header, .form, .btn { display: none; }
}

/* --- 18. Páginas de case ---------------------------------- */
.crumbs {
  padding: 28px 0 0;
  font-family: var(--mono); font-size: 11px;
  letter-spacing: .12em; text-transform: uppercase; color: var(--quiet);
}
.crumbs a { color: var(--blue); }
.crumbs a:hover { color: var(--ink); }
.crumbs span { color: var(--quiet); }

.case-hero { padding: 32px 0 56px; display: flex; flex-direction: column; gap: 22px; }
.case-hero__client {
  font-family: var(--mono); font-size: 11.5px;
  letter-spacing: .16em; text-transform: uppercase; color: var(--blue);
}
.case-hero__title {
  font-weight: 800;
  font-size: clamp(34px, 5.6vw, 68px);
  line-height: .96; letter-spacing: -.04em;
  max-width: 20ch; text-wrap: balance;
}
.case-hero__sub {
  font-family: var(--serif); font-size: clamp(17px, 2vw, 22px);
  line-height: 1.45; color: var(--body); max-width: 46ch;
}

.tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; }
.tags li {
  list-style: none;
  font-family: var(--mono); font-size: 10.5px;
  letter-spacing: .08em;
  color: var(--muted);
  border: 1px solid var(--rule);
  padding: 6px 11px;
}

.case-body { border-top: 1px solid var(--rule); padding-bottom: 8px; }
.case-block {
  display: flex; flex-wrap: wrap; gap: 26px 48px;
  padding-block: 48px;
  border-bottom: 1px solid var(--rule-2);
}
.case-block__label {
  flex: 0 0 132px;
  font-family: var(--mono); font-size: 11px;
  letter-spacing: .14em; text-transform: uppercase;
  line-height: 1.7; color: var(--quiet);
}
.case-block__label b { color: var(--blue); font-weight: 700; }
.case-block__text {
  flex: 1 1 520px; min-width: 0;
  display: flex; flex-direction: column; gap: 18px;
  font-family: var(--serif); font-size: 17px; line-height: 1.65;
  color: var(--body); text-wrap: pretty;
  max-width: 68ch;
}
.case-block--period .case-block__text {
  font-family: var(--mono); font-size: 12.5px; line-height: 1.8; color: var(--muted);
}

.case-foot {
  padding: 48px 0 80px;
  display: flex; flex-wrap: wrap; gap: 20px 48px;
  align-items: center; justify-content: space-between;
}
.case-foot__back { font-family: var(--mono); font-size: 12px; color: var(--blue); }
.case-foot__back:hover { color: var(--ink); }

@media (max-width: 560px) {
  .case-block { padding-block: 36px; }
  .case-block__label { flex-basis: 100%; }
  .case-hero { padding: 24px 0 40px; }
  .case-foot { padding-bottom: 56px; }
}

/* --- 19. Imagens dos cases -------------------------------- */

/* Card da home: quadrado sangrado no topo. */
.case { padding: 0; gap: 0; min-height: 0; }
.case__media {
  position: relative;
  display: block;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: var(--surface);
  border-bottom: 1px solid var(--rule-2);
}
.case__media img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.case__inner {
  flex: 1;
  padding: 26px;
  display: flex; flex-direction: column; justify-content: space-between;
  gap: 22px; min-height: 236px; min-width: 0;
}

/* Placeholder tipográfico — sai quando a imagem real entrar. */
.media-empty {
  background-color: #EDF1F4;
  background-image:
    linear-gradient(var(--grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid) 1px, transparent 1px);
  background-size: 32px 32px;
  background-position: -1px -1px;
  display: flex; align-items: flex-end;
  padding: 20px 22px;
}
.media-empty::before {
  content: ""; position: absolute; inset: 0 0 auto 0; height: 4px;
  background: var(--grad);
}
.media-empty b {
  font-weight: 800; font-size: clamp(44px, 6.5vw, 76px);
  letter-spacing: -.055em; line-height: .82;
  font-variant-numeric: tabular-nums;
  background-image: var(--grad-disp);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: var(--blue);
}

/* Página de case: imagem principal na forma real, altura travada. */
.case-figure { margin: 0; }
.case-figure__frame {
  position: relative;
  border: 1px solid var(--rule-2);
  background: var(--surface);
  display: flex; align-items: center; justify-content: center;
  padding: 0;
}
.case-figure__frame img {
  display: block;
  max-width: 100%; max-height: 620px;
  width: auto; height: auto;
  margin-inline: auto;
}
.case-figure__frame.media-empty { aspect-ratio: 16 / 10; padding: 24px 26px; }
.case-figure figcaption {
  margin-top: 12px;
  font-family: var(--mono); font-size: 11px; line-height: 1.7; color: var(--quiet);
  max-width: 68ch;
}

.case-lead { padding-block: 40px 8px; }

/* Imagens adicionais. */
.case-gallery {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 16px; margin: 0; padding: 0;
}
.case-gallery li { list-style: none; margin: 0; }
.case-gallery .case-figure__frame { aspect-ratio: 4 / 3; }
.case-gallery .case-figure__frame img { max-height: none; width: 100%; height: 100%; object-fit: cover; }
.case-gallery .media-empty b { font-size: clamp(30px, 4vw, 44px); }

@media (max-width: 560px) {
  .case__inner { padding: 22px; min-height: 0; }
  .case-lead { padding-block: 28px 4px; }
}

/* --- 20. Logos de cliente ---------------------------------
   SVG monocromático vetorizado dos originais; a largura de cada marca
   é ajustada opticamente (por área de tinta), não pela caixa. */
.logos li { padding: 0; }
.logo svg { width: var(--lw, 55%); height: auto; fill: currentColor; }
.logo--anprotec    { --lw: 66.0%; }
.logo--anpei       { --lw: 48.5%; }
.logo--eldorado    { --lw: 63.2%; }
.logo--zilia       { --lw: 32.8%; }
.logo--tecnosinos  { --lw: 60.2%; }
.logo--vdi         { --lw: 31.6%; }
.logo--lnnano      { --lw: 31.8%; }
.logo--ideiaz      { --lw: 56.2%; }
.logo--stine       { --lw: 40.6%; }
.logo--adyen       { --lw: 41.2%; }

/* --- 21. Páginas de análise ------------------------------- */
.article-hero {
  padding: 32px 0 48px;
  display: flex; flex-direction: column; gap: 22px;
}
.article-hero__meta {
  font-family: var(--mono); font-size: 11.5px;
  letter-spacing: .14em; text-transform: uppercase; color: var(--quiet);
}
.article-hero__meta b { color: var(--blue); font-weight: 500; }
.article-hero__title {
  font-weight: 800;
  font-size: clamp(32px, 5vw, 60px);
  line-height: 1; letter-spacing: -.04em;
  max-width: 24ch; text-wrap: balance;
}

.entry {
  display: flex; flex-direction: column; gap: 20px;
  font-family: var(--serif); font-size: 18px; line-height: 1.7;
  color: var(--body); text-wrap: pretty;
  max-width: 68ch;
}
.entry > * { margin: 0; }
.entry h2, .entry h3, .entry h4 { font-family: var(--sans); color: var(--ink); text-wrap: balance; }
.entry h2 { font-weight: 800; font-size: clamp(24px, 3vw, 32px); line-height: 1.1; letter-spacing: -.035em; margin-top: 20px; }
.entry h3 { font-weight: 700; font-size: 21px; line-height: 1.2; letter-spacing: -.03em; margin-top: 12px; }
.entry h4 { font-family: var(--mono); font-size: 12px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--blue); }
.entry strong { color: var(--ink); }
.entry a { border-bottom: 1px solid var(--line); }
.entry a:hover { border-bottom-color: var(--ink); }
.entry ul, .entry ol { padding-left: 1.2em; display: flex; flex-direction: column; gap: 8px; }
.entry blockquote {
  padding-left: 22px; border-left: 3px solid var(--cyan);
  font-family: var(--sans); font-weight: 600; font-size: 20px; line-height: 1.4;
  letter-spacing: -.02em; color: var(--ink);
}
.entry blockquote p + p { margin-top: 10px; }
.entry cite, .entry figcaption, .entry .wp-caption-text {
  display: block; margin-top: 10px;
  font-family: var(--mono); font-size: 11px; font-style: normal; line-height: 1.7; color: var(--quiet);
}
.entry figure, .entry .wp-caption { margin: 8px 0; max-width: 100%; }
.entry img { height: auto; border: 1px solid var(--rule-2); background: var(--surface); }
.entry hr { width: 100%; border: 0; border-top: 1px solid var(--rule); margin: 12px 0; }
.entry .alignleft, .entry .alignright, .entry .aligncenter { float: none; margin-inline: 0; }
.entry table { border-collapse: collapse; font-family: var(--sans); font-size: 15px; width: 100%; }
.entry th, .entry td { border-bottom: 1px solid var(--rule-2); padding: 10px 12px 10px 0; text-align: left; vertical-align: top; }
.entry th { font-family: var(--mono); font-size: 10.5px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }

/* --- 22. Listagens (arquivo, 404) -------------------------- */
.posts--more { border-top: 0; }
.more-link { font-family: var(--mono); font-size: 12px; }
.pager { display: flex; justify-content: space-between; gap: 24px; font-family: var(--mono); font-size: 12px; padding-top: 8px; }
.empty-note { font-family: var(--serif); font-size: 17px; color: var(--body); }
h2.case-block__label { font-weight: 400; }
.case-foot nav { display: contents; }
