/* =========================================================
   AZZÓRI ASSESSORIA CONTÁBIL — FOLHA DE ESTILO
   Versão 1.8.0

   AO ALTERAR ESTE ARQUIVO: suba a versão aqui e em
   index.html, na query <link ... style.css?v=N.N.N>.
   As duas precisam bater, senão o cliente vê o CSS antigo.

   Navy e papel, tirados do próprio logo.
   O único recurso gráfico é o fio de 1px — o mesmo da marca.
   Sem gradiente, sem sombra colorida, sem vidro.
   ========================================================= */

:root{
  /* Tinta e papel */
  --ink:#22264B;              /* navy do logo */
  --ink-2:#3A3F66;
  --ink-soft:#5C6178;
  --ink-mute:#8A8EA0;
  --paper:#F7F5F1;            /* creme da placa do logo */
  --paper-2:#EFEBE3;
  --paper-3:#FBFAF7;
  --rule:rgba(34,38,75,.14);
  --rule-soft:rgba(34,38,75,.08);

  /* Azul de destaque — o navy do logo aberto até ficar visível
     como cor, não como quase-preto. 5.7:1 sobre o papel. */
  --blue:#2F5EA8;
  --blue-light:#7FA8E0;       /* a versão para fundo escuro, 6.4:1 */
  --blue-rgb:47,94,168;       /* para rgba() sem criar variável nova */
  --blue-wash:rgba(47,94,168,.15);

  /* Verde oficial do WhatsApp. Fica fora da paleta de propósito:
     o reconhecimento imediato vale mais que a harmonia. */
  --whatsapp:#25D366;
  --whatsapp-dark:#1EBC5A;
  --whatsapp-ink:#07361F;     /* texto sobre o verde — 7.8:1 */

  /* Serifada institucional de traço sólido e contraste baixo.
     Substituiu a Cormorant Garamond, cujo peso 300 tinha
     hastes quase capilares — o "fonte fina" que o cliente
     rejeitou. Aqui o peso de trabalho é 600, não 300. */
  --serif:'Source Serif 4','Source Serif Pro',Georgia,'Times New Roman',serif;
  --sans:'Jost',-apple-system,'Segoe UI',system-ui,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,'SFMono-Regular',Consolas,monospace;

  --wrap:1140px;
  --gutter:clamp(1.5rem,5vw,4rem);
  --pad:clamp(4.5rem,9vw,8.5rem);
  --ease:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body{
  font-family:var(--sans);font-weight:400;font-size:1.0125rem;line-height:1.75;
  color:var(--ink-soft);background:var(--paper);overflow-x:hidden;
  font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul,ol,dl{list-style:none}
::selection{background:var(--ink);color:var(--paper)}
:focus-visible{outline:1px solid var(--ink);outline-offset:4px}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}

.skip-link{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--paper);
  padding:.75rem 1.25rem;z-index:200;font-size:.8rem}
.skip-link:focus{left:1rem;top:1rem}

/* =====================================================
   MALHA QUADRICULADA
   O quadrado do logo é uma malha. Repetir esse desenho
   como papel milimetrado, a 4% de tinta, é o que dá o
   ar de cálculo sem virar decoração.
   ===================================================== */
.graph{position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:
    linear-gradient(to right,rgba(34,38,75,.05) 1px,transparent 1px),
    linear-gradient(to bottom,rgba(34,38,75,.05) 1px,transparent 1px);
  background-size:56px 56px;
  -webkit-mask-image:linear-gradient(to bottom,#000 0%,rgba(0,0,0,.35) 62%,transparent 100%);
  mask-image:linear-gradient(to bottom,#000 0%,rgba(0,0,0,.35) 62%,transparent 100%)}
.graph-light{background-image:
  linear-gradient(to right,rgba(247,245,241,.07) 1px,transparent 1px),
  linear-gradient(to bottom,rgba(247,245,241,.07) 1px,transparent 1px)}

/* ===================== TIPOGRAFIA ===================== */
.eyebrow{
  font-family:var(--mono);font-weight:400;font-size:.6875rem;line-height:1.6;
  letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mute);
}
.eyebrow-light{color:rgba(247,245,241,.6)}

h1,h2,h3{font-family:var(--serif);font-weight:600;color:var(--ink);letter-spacing:-.015em}
h1 em,h2 em,h3 em{font-style:italic;font-weight:600;color:var(--blue)}

/* =====================================================
   DESTAQUE NO CORPO DO TEXTO
   Azul mais uma faixa de 15% que fica atrás da linha de
   base, não atrás do bloco inteiro. É o realce editorial
   feito a lápis, não o marca-texto fluorescente — e por
   ser background-image acompanha a quebra de linha.
   Use pouco: 3 ou 4 por página. Mais que isso e nada
   está mais em destaque.
   ===================================================== */
.mk{color:var(--blue);
  background-image:linear-gradient(to top,
    var(--blue-wash) 0,var(--blue-wash) .34em,transparent .34em);
  padding-bottom:.02em}
.mk-light{color:var(--blue-light);
  background-image:linear-gradient(to top,
    rgba(127,168,224,.18) 0,rgba(127,168,224,.18) .34em,transparent .34em)}

/* Corpos reduzidos cerca de 15% em relação à versão anterior.
   A Cormorant tem altura-x muito baixa e pedia tamanho grande
   para ser legível; a Source Serif ocupa bem mais espaço no
   mesmo corpo. Sem essa correção os títulos estouravam. */
.hero-title{font-size:clamp(1.9375rem,4.7vw,3.5rem);line-height:1.16}
.section-title{font-size:clamp(1.625rem,3.4vw,2.5rem);line-height:1.2;margin-bottom:2.25rem}
.cta-title{font-size:clamp(1.625rem,3.7vw,2.75rem);line-height:1.2;color:var(--paper)}
.cta-title em{color:rgba(247,245,241,.7)}

.lead{font-size:clamp(1.0625rem,1.5vw,1.1875rem);line-height:1.75;color:var(--ink-soft)}
p + p{margin-top:1.25rem}

/* ===================== MARCA ===================== */
.brand{display:inline-flex;flex-direction:column;align-items:center;gap:.4rem;
  --brand-bg:var(--paper);--brand-ink:var(--ink)}
.brand-frame{position:relative;display:block;border:1px solid var(--brand-ink);
  padding:.4rem 1.15rem .35rem}
.brand-notch{position:absolute;top:0;left:50%;transform:translate(-50%,-50%);
  width:14px;height:14px;background:var(--brand-bg);display:block}
.brand-notch::after{content:'';position:absolute;inset:1.5px;background-color:var(--brand-ink);
  background-image:
    repeating-linear-gradient(0deg,transparent 0 1px,rgba(255,255,255,.55) 1px 2px),
    repeating-linear-gradient(90deg,transparent 0 1px,rgba(255,255,255,.55) 1px 2px)}
/* O wordmark do logo é uma sans geométrica leve, não serifada.
   Jost 300 com tracking largo é o que mais se aproxima. */
.brand-name{font-family:var(--sans);font-weight:400;font-size:1.125rem;line-height:1.2;
  letter-spacing:.26em;text-transform:uppercase;color:var(--brand-ink);display:block;
  padding-left:.26em}
.brand-sub{font-family:var(--sans);font-weight:500;font-size:.5rem;line-height:1;
  letter-spacing:.28em;text-transform:uppercase;color:var(--brand-ink);padding-left:.28em}
.brand-light{--brand-bg:var(--ink);--brand-ink:var(--paper)}

/* =====================================================
   HEADER — invertido: navy de fundo, informação em branco.
   A barra passa a ser o bloco mais sólido da página e
   ancora o topo. Como o hero é creme, o contraste também
   resolve um problema que existia antes: header claro sobre
   fundo claro dependia de um fio de 1px para se distinguir.
   ===================================================== */
.header{position:fixed;top:0;left:0;width:100%;z-index:100;
  background:var(--ink);border-bottom:1px solid transparent;
  transition:box-shadow .3s var(--ease)}
.header.is-scrolled{box-shadow:0 1px 0 rgba(34,38,75,.18),0 10px 30px -18px rgba(34,38,75,.5)}
.header-inner{display:flex;align-items:center;justify-content:space-between;
  min-height:88px;gap:2rem}

/* o lockup da marca herda a variante clara */
.header .brand{--brand-bg:var(--ink);--brand-ink:var(--paper)}

.nav{display:flex;align-items:center;gap:2.25rem}
.nav a{font-size:.8125rem;font-weight:400;letter-spacing:.06em;
  color:rgba(247,245,241,.72);
  padding:.35rem 0;position:relative;transition:color .25s var(--ease)}
.nav a::after{content:'';position:absolute;left:0;bottom:0;width:0;height:1px;
  background:var(--blue-light);transition:width .3s var(--ease)}
.nav a:hover{color:var(--paper)}
.nav a:hover::after,.nav a.is-active::after{width:100%}
.nav a.is-active{color:var(--paper)}

.nav-contact{font-family:var(--mono);font-size:.75rem;letter-spacing:.04em;
  color:var(--paper) !important;border:1px solid rgba(247,245,241,.3);
  padding:.55rem 1.1rem !important}
.nav-contact::after{display:none}
.nav-contact:hover{background:var(--paper);color:var(--ink) !important;
  border-color:var(--paper)}

.burger{display:none;flex-direction:column;gap:6px;padding:10px 4px;z-index:110}
.burger span{display:block;width:24px;height:1px;background:var(--paper);
  transition:transform .3s var(--ease)}
.burger.is-open span:first-child{transform:translateY(3.5px) rotate(45deg)}
.burger.is-open span:last-child{transform:translateY(-3.5px) rotate(-45deg)}

/* =====================================================
   ÍCONES
   Traço de 1px que não engrossa quando o ícone cresce:
   vector-effect mantém a espessura igual à dos fios da
   página em qualquer tamanho.
   ===================================================== */
/* Cada ícone vive dentro de uma moldura de 1px com fundo azul
   suave. É o mesmo gesto da moldura do logo, reduzido à escala
   do ícone — dá peso visual sem recorrer a cor forte.

   O padding é aplicado no próprio <svg>: o viewBox se encaixa
   na caixa de conteúdo, então a moldura sai de graça e sem
   precisar de um <span> em volta de cada um dos 29 usos. */
.ic{width:48px;height:48px;padding:10px;box-sizing:border-box;
  flex:none;display:block;
  border:1px solid rgba(var(--blue-rgb),.28);
  background:rgba(var(--blue-rgb),.05);
  fill:none;stroke:var(--blue);stroke-width:1.2;
  stroke-linecap:square;stroke-linejoin:miter;
  transition:background-color .3s var(--ease),border-color .3s var(--ease),
             stroke .3s var(--ease)}
/* pega path, circle e o que mais entrar nos símbolos */
.ic > *{vector-effect:non-scaling-stroke}

.ic-lg{width:62px;height:62px;padding:13px}

/* A moldura acende quando a linha ou o cartão recebe o ponteiro */
.list-row:hover .ic,
.compare-card:hover .ic,
.pillars li:hover .ic,
.deliver li:hover .ic,
.steps li:hover .ic{border-color:var(--blue);
  background:rgba(var(--blue-rgb),.11)}

/* Sobre fundo navy a lógica inverte: moldura e traço em creme */
.deadline .ic{border-color:rgba(247,245,241,.28);
  background:rgba(247,245,241,.07);stroke:var(--blue-light)}

/* ===================== BOTÕES ===================== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.7rem;
  font-family:var(--sans);font-weight:500;font-size:.75rem;line-height:1;
  letter-spacing:.16em;text-transform:uppercase;
  padding:1.125rem 2.25rem;border:1px solid var(--ink);
  transition:background-color .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease)}
.btn-ic{width:17px;height:17px;flex:none;fill:currentColor;stroke:none}
.btn-lg{padding:1.25rem 2.75rem;font-size:.8125rem}

.btn-solid{background:var(--ink);color:var(--paper)}
.btn-solid:hover{background:transparent;color:var(--ink)}
.btn-line{background:transparent;color:var(--ink);border-color:var(--rule)}
.btn-line:hover{border-color:var(--ink)}
.btn-light{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.btn-light:hover{background:transparent;color:var(--paper)}

/* Verde do WhatsApp com tinta verde-escura em cima.
   Texto branco sobre #25D366 dá 1.98:1 e é ilegível —
   a tinta escura preserva o verde exato e chega a 7.8:1. */
.btn-wpp{background:var(--whatsapp);border-color:var(--whatsapp);color:var(--whatsapp-ink)}
.btn-wpp:hover{background:var(--whatsapp-dark);border-color:var(--whatsapp-dark);
  color:var(--whatsapp-ink)}

/* ===================== HERO ===================== */
.hero{padding:calc(88px + clamp(4rem,8vw,7rem)) 0 0;position:relative;overflow:hidden}
.hero > .wrap{position:relative;z-index:1}
.hero .eyebrow{margin-bottom:2rem}
.hero-title{margin-bottom:3rem}

/* Hero em duas colunas: argumento à esquerda, rosto à direita.
   Serviço pessoal vende mais com alguém em quadro — o retrato
   no primeiro terço da tela é o que diferencia "um escritório"
   de "esta pessoa cuida da minha empresa". */
.hero-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);
  gap:clamp(2.5rem,5vw,4.5rem);align-items:start}
.hero-main .lead{max-width:48ch}

.hero-foto{position:relative;padding:12px;margin-top:.5rem}
.hero-foto::before{content:'';position:absolute;inset:0;
  border:1px solid var(--rule);pointer-events:none}
.hero-foto-img{overflow:hidden;background:var(--paper-2)}
.hero-foto img{width:100%;height:auto;display:block;aspect-ratio:4/5;
  object-fit:cover;object-position:center 15%}
.hero-foto figcaption{display:flex;flex-direction:column;gap:.25rem;
  margin-top:1rem;padding-top:.875rem;border-top:1px solid var(--ink)}
.hero-foto-nome{font-family:var(--serif);font-weight:600;font-size:1.0625rem;
  line-height:1.25;letter-spacing:-.01em;color:var(--ink)}
.hero-foto-cargo{font-family:var(--mono);font-weight:400;font-size:.5625rem;
  letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mute)}

.hero-actions{display:flex;gap:.75rem;flex-wrap:wrap;
  margin-top:clamp(2.5rem,4vw,3.25rem);padding-bottom:clamp(3.5rem,7vw,6rem)}

.pillars{display:grid;grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--rule)}
.pillars li{padding:2.5rem 2.5rem 3rem 0;position:relative}
.pillars li + li{padding-left:2.5rem;border-left:1px solid var(--rule)}
/* Ícone à esquerda, número à direita, fio fechando embaixo —
   cabeçalho de coluna de tabela. */
.pillar-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding-bottom:.875rem;margin-bottom:1.125rem;border-bottom:1px solid var(--rule)}
.pillar-index{font-family:var(--mono);font-weight:400;font-size:.6875rem;letter-spacing:.16em;
  color:var(--ink-mute)}
.pillars h2{font-size:1.1875rem;line-height:1.35;margin-bottom:.625rem;letter-spacing:-.01em}
.pillars p{font-size:.9375rem;line-height:1.7;max-width:32ch}

/* ===================== SEÇÕES ===================== */
.section{padding:var(--pad) 0;border-top:1px solid var(--rule)}
.section-paper{background:var(--paper-2);border-top-color:transparent}

.cols{display:grid;grid-template-columns:minmax(150px,1fr) minmax(0,3fr);gap:2rem 5rem}
.col-label .eyebrow{padding-top:.6rem}
.col-text{max-width:64ch}

/* =====================================================
   SOBRE · RETRATO
   A moldura de 1px deslocada 14px para fora é o mesmo
   gesto da moldura do logo — passepartout, não borda.
   ===================================================== */
.about{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.35fr);
  gap:clamp(2.5rem,6vw,5rem);align-items:start;margin-top:2.5rem}

.portrait{position:relative;padding:14px}
.portrait::before{content:'';position:absolute;inset:0;
  border:1px solid var(--rule);pointer-events:none}
.portrait-img{position:relative;overflow:hidden;background:var(--paper-2)}
.portrait img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;
  object-position:center 12%;filter:grayscale(.14) contrast(1.02)}

.portrait figcaption{display:flex;flex-direction:column;gap:.3rem;
  margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--ink)}
.portrait-name{font-family:var(--serif);font-weight:600;font-size:1.1875rem;line-height:1.25;
  letter-spacing:-.01em;color:var(--ink)}
.portrait-role{font-family:var(--mono);font-weight:400;font-size:.625rem;
  letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mute)}

.about-text .section-title{margin-bottom:1.75rem}

/* =====================================================
   RAZÃO
   Rótulo à esquerda, valor à direita, guia pontilhada
   entre os dois. É o desenho de uma linha de balanço,
   e fecha com a linha dupla de total da escrituração.
   ===================================================== */
.ledger{margin-top:2.75rem;border-top:1px solid var(--rule)}
.ledger-row{display:flex;align-items:baseline;gap:.75rem;padding:.875rem 0}
.ledger-row dt{font-family:var(--mono);font-weight:400;font-size:.6875rem;
  letter-spacing:.18em;text-transform:uppercase;color:var(--ink-mute);flex:none}
.ledger-row::after{content:'';flex:1 1 auto;height:0;
  border-bottom:1px dotted rgba(34,38,75,.3);transform:translateY(-.25rem);order:2}
.ledger-row dd{order:3;flex:none;font-family:var(--serif);font-weight:600;font-size:1.0625rem;
  line-height:1.35;letter-spacing:-.01em;color:var(--ink);text-align:right}
.ledger-total{position:relative;border-bottom:1px solid var(--ink)}
.ledger-total::before{content:'';position:absolute;left:0;right:0;bottom:-4px;
  border-bottom:1px solid var(--ink)}

/* =====================================================
   QUEM ATENDE — resumo na página inicial
   Versão curta do conteúdo que mora em sobre.html. Existe
   para dar rosto sem transformar a inicial numa biografia.
   ===================================================== */
.meet{display:grid;grid-template-columns:minmax(0,.5fr) minmax(0,1fr);
  gap:clamp(2rem,5vw,4rem);align-items:center}
.meet-foto{position:relative;padding:12px}
.meet-foto::before{content:'';position:absolute;inset:0;
  border:1px solid var(--rule);pointer-events:none}
.meet-foto img{width:100%;height:auto;display:block;aspect-ratio:4/5;
  object-fit:cover;object-position:center 20%}
.meet-text .eyebrow{margin-bottom:1.5rem}
.meet-text .section-title{margin-bottom:1.5rem}
.meet-actions{margin-top:2rem}

/* seta que indica saída para outra página */
.btn-arrow{width:14px;height:14px;flex:none;fill:none;stroke:currentColor;
  stroke-width:1.5;stroke-linecap:square;transition:transform .3s var(--ease)}
.btn:hover .btn-arrow{transform:translate(2px,-2px)}

/* =====================================================
   ABERTURA DAS PÁGINAS INTERNAS
   ===================================================== */
.page-head{position:relative;overflow:hidden;background:var(--paper);
  padding:calc(88px + clamp(3rem,6vw,5rem)) 0 clamp(2.5rem,5vw,4rem)}
.page-head > .wrap{position:relative;z-index:1}
.page-head .eyebrow{margin:2rem 0 1.5rem}
.back-link{display:inline-flex;align-items:center;gap:.6rem;
  font-family:var(--mono);font-size:.6875rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink-mute);
  transition:color .25s var(--ease)}
.back-link:hover{color:var(--blue)}
.back-link .btn-arrow{width:13px;height:13px}
.back-link:hover .btn-arrow{transform:translate(-2px,2px)}

/* =====================================================
   FAIXA DE POSICIONAMENTO
   Foto e painel navy lado a lado, sem sobreposição de
   texto na imagem. Escolha deliberada: texto sobre foto
   depende de a luz da imagem colaborar, e essa tem janela
   ao fundo. Duas colunas garantem o contraste sempre.
   ===================================================== */
.stance{display:grid;grid-template-columns:1fr 1fr;
  border-top:1px solid var(--rule);background:var(--ink)}
.stance-foto{position:relative;overflow:hidden;min-height:clamp(340px,44vw,620px)}
.stance-foto img{position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center 30%}
.stance-panel{display:flex;align-items:center;
  padding:clamp(3rem,5.5vw,5.5rem) clamp(1.5rem,4vw,4.5rem)}
.stance-inner{max-width:52ch}
.stance-panel .eyebrow{margin-bottom:1.75rem}
.stance-title{font-family:var(--serif);font-weight:600;
  font-size:clamp(1.75rem,3.6vw,2.75rem);line-height:1.15;letter-spacing:-.02em;
  color:var(--paper);margin-bottom:1.75rem}
.stance-title em{font-style:italic;color:var(--blue-light)}
.stance-panel p{color:rgba(247,245,241,.72);font-size:1rem;line-height:1.8}
.stance-sign{margin-top:2.25rem;padding-top:1.25rem;
  border-top:1px solid rgba(247,245,241,.22);
  font-family:var(--serif);font-weight:600;font-size:1.125rem;
  line-height:1.4;color:var(--paper)}
.stance-sign span{font-family:var(--mono);font-weight:400;font-size:.5625rem;
  letter-spacing:.2em;text-transform:uppercase;color:rgba(247,245,241,.5)}

/* =====================================================
   ENTREGÁVEIS
   Mesma gramática dos passos, com o número em mono.
   ===================================================== */
.deliver{margin-top:2.5rem;border-top:1px solid var(--rule)}
.deliver li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.4rem 1.875rem;
  padding:1.625rem 0;border-bottom:1px solid var(--rule)}
.deliver-mark{grid-row:span 2;display:flex;flex-direction:column;align-items:center;
  gap:.5rem;padding-top:.25rem}
.deliver-n{font-family:var(--mono);font-weight:400;font-size:.75rem;
  letter-spacing:.1em;color:var(--ink-mute)}
.deliver h3{font-size:1.0625rem;line-height:1.4}
.deliver p{font-size:.9375rem;line-height:1.75;max-width:56ch}

/* ===================== LISTAS ===================== */
.list{border-top:1px solid var(--rule)}
.list-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);
  gap:.5rem 2.5rem;padding:1.5rem 0;border-bottom:1px solid var(--rule)}
.list-row dt{display:flex;align-items:center;gap:1.125rem;
  font-family:var(--serif);font-weight:600;font-size:1.125rem;line-height:1.4;
  letter-spacing:-.01em;color:var(--ink)}

.list-row dd{font-size:.9375rem;line-height:1.75}
.list-tight .list-row{padding:1.5rem 0}

/* ===================== PASSOS ===================== */
.steps{border-top:1px solid var(--rule)}
.steps li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.4rem 1.875rem;
  padding:1.875rem 0;border-bottom:1px solid var(--rule)}
.step-mark{grid-row:span 2;display:flex;flex-direction:column;align-items:center;
  gap:.625rem;padding-top:.35rem}
.step-n{font-family:var(--mono);font-weight:400;font-size:.8125rem;
  letter-spacing:.1em;line-height:1.2;color:var(--ink-mute)}
.steps h3{font-size:1.125rem;line-height:1.4}
.steps p{font-size:.9375rem;line-height:1.75;max-width:56ch}

/* ===================== REFORMA / COMPARATIVO ===================== */
.compare{display:grid;grid-template-columns:repeat(2,1fr);gap:0;
  margin-top:clamp(3rem,6vw,4.5rem);border:1px solid var(--rule);background:var(--paper-3)}
.compare-card{padding:clamp(2rem,3.5vw,2.75rem)}
.compare-card + .compare-card{border-left:1px solid var(--rule)}
.compare-tag{font-family:var(--mono);font-weight:400;font-size:.625rem;
  letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mute);
  padding-bottom:1rem;margin-bottom:1.25rem;border-bottom:1px solid var(--rule)}
.compare-card .ic-lg{margin-bottom:1.25rem}
.compare-card h3{font-size:1.25rem;line-height:1.35;margin-bottom:1rem}
.compare-card p{font-size:.9375rem;line-height:1.75}
.compare-note{padding-top:1.125rem;margin-top:1.125rem;border-top:1px solid var(--rule-soft)}
.compare-note strong{display:block;font-family:var(--mono);font-weight:400;font-size:.625rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ink);margin-bottom:.35rem}

.deadline{display:flex;align-items:flex-start;gap:1.75rem;
  margin-top:2.5rem;padding:2rem 2.25rem;background:var(--ink);color:rgba(247,245,241,.75)}
.deadline .ic-lg{margin-top:.25rem}
.deadline-body{display:flex;flex-direction:column;gap:.5rem;min-width:0}
.deadline-label{font-family:var(--mono);font-weight:400;font-size:.625rem;
  letter-spacing:.2em;text-transform:uppercase;color:rgba(247,245,241,.55);
  padding-bottom:.875rem;border-bottom:1px solid rgba(247,245,241,.18)}
.deadline strong{font-family:var(--mono);font-weight:500;font-size:clamp(1.25rem,2.6vw,1.75rem);
  line-height:1.25;color:var(--paper);letter-spacing:.02em;padding-top:.25rem}
.deadline-note{font-size:.9375rem;line-height:1.7;max-width:52ch}
/* CTA no pico de intenção: a pessoa acabou de ler que precisa
   escolher entre dois regimes e não sabe qual. O botão fica ali. */
.deadline-cta{align-self:flex-start;margin-top:1.25rem}

/* ===================== CTA ===================== */
.cta{background:var(--ink);padding:clamp(5rem,9vw,8rem) 0;position:relative;overflow:hidden}
.cta-inner{max-width:64ch;position:relative;z-index:1}
.cta .eyebrow{margin-bottom:1.75rem}
.cta-title{margin-bottom:1.75rem}
.cta-lead{color:rgba(247,245,241,.7);font-size:1.0625rem;line-height:1.75;
  max-width:48ch;margin-bottom:2.75rem}
.cta-foot{margin-top:1.75rem;padding-top:1.25rem;border-top:1px solid rgba(247,245,241,.16);
  display:inline-block;font-family:var(--mono);font-size:.6875rem;letter-spacing:.1em;
  text-transform:uppercase;color:rgba(247,245,241,.5)}

/* ===================== FOOTER ===================== */
.footer{background:var(--ink);color:rgba(247,245,241,.65);
  padding:clamp(3.5rem,6vw,5rem) 0 2rem;border-top:1px solid rgba(247,245,241,.14)}
.footer-top{display:flex;justify-content:space-between;flex-wrap:wrap;gap:3rem;
  padding-bottom:3.5rem}
.footer-cols{display:grid;grid-template-columns:repeat(3,minmax(140px,auto));gap:2.5rem 4rem}
.footer-cols h3{font-family:var(--mono);font-weight:400;font-size:.625rem;
  letter-spacing:.2em;text-transform:uppercase;color:rgba(247,245,241,.45);
  padding-bottom:1rem;margin-bottom:1rem;border-bottom:1px solid rgba(247,245,241,.14)}
.footer-cols p{font-size:.9375rem;line-height:1.9;margin:0}
.footer-cols a{transition:color .25s var(--ease)}
.footer-cols a:hover{color:var(--paper)}
.footer-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.75rem;
  padding-top:1.75rem;border-top:1px solid rgba(247,245,241,.12);
  font-family:var(--mono);font-size:.6875rem;letter-spacing:.08em;
  color:rgba(247,245,241,.42)}

/* ===================== WHATSAPP ===================== */
.wpp{position:fixed;right:clamp(1rem,3vw,2rem);bottom:clamp(1rem,3vw,2rem);
  width:54px;height:54px;display:grid;place-items:center;z-index:90;
  background:var(--whatsapp);color:var(--whatsapp-ink);border-radius:50%;
  box-shadow:0 6px 20px -6px rgba(7,54,31,.45);
  transition:opacity .3s var(--ease),transform .3s var(--ease),background-color .3s var(--ease)}
.wpp:hover{background:var(--whatsapp-dark)}
.wpp:hover{transform:translateY(-2px)}

/* ===================== REVEAL ===================== */
.reveal{opacity:0;transform:translateY(14px);
  transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.is-in{opacity:1;transform:none}

/* ===================== RESPONSIVO ===================== */
@media (max-width:960px){
  /* No celular o texto vem primeiro: a promessa tem de ser lida
     antes do rosto, senão a foto empurra o H1 para fora da tela. */
  .hero-grid{grid-template-columns:1fr;gap:2.5rem}
  .hero-foto{max-width:320px;margin-top:0}

  .meet{grid-template-columns:1fr;gap:2.25rem}
  .meet-foto{max-width:300px}

  .stance{grid-template-columns:1fr}
  .stance-foto{min-height:0;aspect-ratio:3/2}
  .stance-foto img{position:static;height:auto;aspect-ratio:3/2}

  .pillars{grid-template-columns:1fr}
  .pillars li{padding:2rem 0}
  .pillars li + li{padding-left:0;border-left:0;border-top:1px solid var(--rule)}
  .pillars p{max-width:52ch}
  .cols{grid-template-columns:1fr;gap:1.5rem}
  .col-label .eyebrow{padding-top:0}
  .about{grid-template-columns:1fr;gap:2.5rem}
  .portrait{max-width:380px}
  .compare{grid-template-columns:1fr}
  .compare-card + .compare-card{border-left:0;border-top:1px solid var(--rule)}
  .footer-top{flex-direction:column}
}

@media (max-width:768px){
  .burger{display:flex}
  /* painel mobile acompanha a inversão do header */
  .nav{position:fixed;inset:0;background:var(--ink);
    flex-direction:column;align-items:flex-start;justify-content:center;
    gap:0;padding:0 var(--gutter);
    transform:translateX(100%);transition:transform .4s var(--ease);
    overflow-y:auto}
  .nav.is-open{transform:none}
  .nav a{width:100%;font-family:var(--serif);font-weight:600;font-size:1.375rem;
    letter-spacing:-.01em;color:var(--paper);padding:1.125rem 0;
    border-bottom:1px solid rgba(247,245,241,.16)}
  .nav a::after{display:none}
  .nav a:hover,.nav a.is-active{color:var(--blue-light)}
  .nav-contact{border:0;padding:1.125rem 0 !important;font-family:var(--mono) !important;
    font-size:.9375rem !important;letter-spacing:.06em;
    color:var(--blue-light) !important}
  .nav-contact:hover{background:none;color:var(--blue-light) !important}

  .header-inner{min-height:76px}
  .hero{padding-top:calc(76px + 3.5rem)}
  .hero-actions{flex-direction:column;width:100%;max-width:340px}
  .btn{width:100%}

  .list-row,.steps li,.deliver li{grid-template-columns:1fr;gap:.5rem}
  /* no celular a marca vira linha: ícone e número lado a lado */
  .step-mark,.deliver-mark{grid-row:auto;flex-direction:row;align-items:center;
    gap:.875rem;margin-bottom:.5rem}
  /* molduras um pouco menores para sobrar largura ao texto */
  .ic{width:42px;height:42px;padding:9px}
  .ic-lg{width:52px;height:52px;padding:11px}
  .list-row dt{gap:.875rem}
  .deadline{padding:1.75rem;flex-direction:column;gap:1.25rem}
  .deadline .ic-lg{margin-top:0}
  .deadline-cta{align-self:stretch}
  .footer-cols{grid-template-columns:1fr 1fr;gap:2rem}

  /* A guia pontilhada não cabe em 375px: rótulo em cima, valor embaixo. */
  .ledger-row{flex-wrap:wrap;gap:.25rem .75rem;padding:1rem 0;
    border-bottom:1px solid var(--rule-soft)}
  .ledger-row::after{display:none}
  .ledger-row dt{width:100%}
  .ledger-row dd{text-align:left;font-size:1.125rem}
  .ledger-total{border-bottom-color:var(--ink)}
}

@media (max-width:480px){
  .footer-cols{grid-template-columns:1fr}
  .wpp{width:48px;height:48px}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}
  .reveal{opacity:1;transform:none}
}
