/* ==========================================================================
   RÔNEY NEMER — Site institucional 2026
   Design system + componentes. Autor: Maestro (orquestração).
   Paleta: Azul Institucional. Fontes: Libre Franklin + Inter.
   ========================================================================== */

/* ---------- Design tokens ---------- */
:root{
  /* Cores */
  --azul:#0B3D91;
  --azul-escuro:#082A63;
  --azul-900:#061f4a;
  --ambar:#FBB50A;        /* amarelo-campanha (marca do Rôney: amarelo + azul) */
  --ambar-escuro:#e09b00;
  --verde:#1E8449;
  --verde-wa:#25D366;
  --verde-wa-escuro:#1da851;
  --bg:#FFFDF5;
  --branco:#ffffff;
  --texto:#1A2233;
  --texto-2:#5B6B82;
  --borda:#E2E8F0;
  --borda-2:#cfd8e6;

  /* Tipografia */
  --font-titulo:'Libre Franklin', system-ui, sans-serif;
  --font-corpo:'Inter', system-ui, sans-serif;

  /* Espaçamento / raio / sombra */
  --raio:14px;
  --raio-sm:10px;
  --raio-lg:22px;
  --sombra-sm:0 1px 2px rgba(8,42,99,.06), 0 1px 3px rgba(8,42,99,.08);
  --sombra:0 4px 12px rgba(8,42,99,.08), 0 2px 4px rgba(8,42,99,.05);
  --sombra-lg:0 18px 40px rgba(8,42,99,.14);
  --container:1180px;
  --header-h:76px;

  --fs-scale:1;
}

/* Acessibilidade: modo fonte grande */
html[data-fonte="grande"]{ --fs-scale:1.14; }
html[data-contraste="alto"]{ --texto:#000; --texto-2:#26313f; --bg:#fff; --borda:#9aa7bd; }

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0;
  font-family:var(--font-corpo);
  font-size:calc(17px * var(--fs-scale));
  line-height:1.65;
  color:var(--texto);
  background:var(--bg);
  overflow-x:hidden;
}
h1,h2,h3,h4{ font-family:var(--font-titulo); line-height:1.15; color:var(--azul-escuro); margin:0 0 .5em; letter-spacing:-.01em; }
h1{ font-size:clamp(2.1rem,5vw,3.4rem); font-weight:800; }
h2{ font-size:clamp(1.7rem,3.5vw,2.5rem); font-weight:800; }
h3{ font-size:clamp(1.2rem,2vw,1.5rem); font-weight:700; }
p{ margin:0 0 1rem; }
a{ color:var(--azul); text-decoration:none; }
a:hover{ text-decoration:underline; }
img{ max-width:100%; display:block; }
ul{ margin:0; padding:0; }

.container{ width:100%; max-width:var(--container); margin-inline:auto; padding-inline:22px; }
.section{ padding:clamp(3rem,7vw,5.5rem) 0; }
.section--tint{ background:var(--branco); }
.eyebrow{ font-family:var(--font-titulo); text-transform:uppercase; letter-spacing:.12em; font-size:.8rem; font-weight:700; color:var(--azul); margin-bottom:.6rem; }
.section-head{ max-width:720px; margin-bottom:2.5rem; }
.section-head--center{ margin-inline:auto; text-align:center; }
.lead{ font-size:1.12rem; color:var(--texto-2); }
.text-muted{ color:var(--texto-2); }

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

/* Skip link */
.skip-link{ position:absolute; left:-999px; top:0; background:var(--azul); color:#fff; padding:.6rem 1rem; z-index:2000; border-radius:0 0 8px 0; }
.skip-link:focus{ left:0; }

/* ---------- Botões ---------- */
.btn{ display:inline-flex; align-items:center; gap:.5rem; font-family:var(--font-titulo); font-weight:700; font-size:1rem;
  padding:.85rem 1.5rem; border-radius:999px; border:2px solid transparent; cursor:pointer; transition:.18s ease; text-decoration:none; line-height:1; }
.btn:hover{ text-decoration:none; transform:translateY(-2px); }
.btn--primary{ background:var(--ambar); color:#3a2600; box-shadow:var(--sombra); }
.btn--primary:hover{ background:var(--ambar-escuro); }
.btn--light{ background:#fff; color:var(--azul-escuro); box-shadow:var(--sombra); }
.btn--dark{ background:var(--azul-escuro); color:#fff; box-shadow:var(--sombra); }
.btn--dark:hover{ background:var(--azul-900); color:#fff; }
.btn--outline{ background:transparent; color:#fff; border-color:rgba(255,255,255,.55); }
.btn--outline:hover{ background:rgba(255,255,255,.12); }
.btn--outline-dark{ background:transparent; color:var(--azul); border-color:var(--borda-2); }
.btn--outline-dark:hover{ background:var(--azul); color:#fff; }
.btn--wa{ background:var(--verde-wa); color:#062b13; }
.btn--wa:hover{ background:var(--verde-wa-escuro); color:#062b13; }
.btn--lg{ padding:1rem 1.8rem; font-size:1.05rem; }
.btn svg{ width:1.1em; height:1.1em; }

/* ---------- Header ---------- */
.site-header{ position:sticky; top:0; z-index:1000; background:rgba(9,26,58,.95); backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid rgba(245,181,10,.35); height:var(--header-h); display:flex; align-items:center; }
.site-header .container{ display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.brand{ display:flex; align-items:center; gap:.7rem; text-decoration:none; }
.brand__mark{ height:44px; width:auto; max-width:70px; object-fit:contain; display:block; flex:none; }
.brand__name{ font-family:var(--font-titulo); font-weight:800; color:#fff; font-size:1.18rem; line-height:1; }
.brand__tag{ display:block; font-family:var(--font-corpo); font-weight:500; font-size:.72rem; color:#a9bce3; letter-spacing:.02em; margin-top:2px; }
.nav{ display:flex; align-items:center; gap:.3rem; }
.nav a{ font-family:var(--font-titulo); font-weight:600; font-size:.96rem; color:#dbe4f5; padding:.5rem .8rem; border-radius:8px; }
.nav a:hover, .nav a[aria-current="page"]{ background:rgba(255,255,255,.1); color:#ffcf47; text-decoration:none; }
.header-actions{ display:flex; align-items:center; gap:.6rem; }
.a11y-toggle{ background:transparent; border:1px solid rgba(255,255,255,.35); color:#dbe4f5; width:40px; height:40px; border-radius:10px; cursor:pointer; font-weight:700; font-family:var(--font-titulo); }
.a11y-toggle:hover{ color:#ffcf47; border-color:#ffcf47; }
.nav-toggle{ display:none; background:transparent; border:1px solid rgba(255,255,255,.35); border-radius:10px; width:44px; height:44px; cursor:pointer; padding:0; }
.nav-toggle span{ display:block; width:20px; height:2px; background:#fff; margin:4px auto; transition:.2s; }

/* ---------- Hero ---------- */
.hero{ position:relative; background:radial-gradient(1200px 600px at 80% -10%, #123f8f 0, var(--azul-escuro) 55%, var(--azul-900) 100%); color:#fff; overflow:hidden; }
.hero::after{ content:""; position:absolute; inset:0; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60'%3E%3Cpath d='M0 59h60M59 0v60' stroke='%23ffffff' stroke-opacity='.05'/%3E%3C/svg%3E"); pointer-events:none; }
.hero .container{ position:relative; z-index:2; display:grid; grid-template-columns:1.1fr .9fr; gap:2.5rem; align-items:center; padding-top:clamp(2.5rem,5vw,4rem); padding-bottom:clamp(2.5rem,5vw,4rem); }

/* Hero com BANNER (header.jpg): texto à esquerda sobre véu, Rôney/skyline à direita */
.hero--photo{ background:#0d2f57; color:#fff; }
.hero--photo .hero__bg{ position:absolute; inset:0; z-index:0;
  background-image:url("../img/header.jpg");
  background-size:cover; background-position:center right; background-repeat:no-repeat; }
.hero--photo::before{ content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(90deg, rgba(7,26,58,.86) 0%, rgba(7,26,58,.66) 32%, rgba(7,26,58,.20) 52%, rgba(7,26,58,0) 66%); }
.hero--photo .container{ position:relative; z-index:2; grid-template-columns:1fr; min-height:clamp(520px,72vh,680px); align-content:center; }
.hero--photo .hero__content{ max-width:560px; }
.hero.hero--photo h1{ color:#fff; }
.hero.hero--photo .hero__text{ color:#e6edfb; }
.hero.hero--photo .hero__slogan{ color:#ffd257; }
.hero.hero--photo .kicker{ color:#ffd257; }
.hero.hero--photo .kicker::before{ background:#ffd257; }
.hero.hero--photo h1 .hl{ color:#0a2352; background:#F7B733; padding:0 .14em; border-radius:6px; }

/* Kicker editorial (substitui o "pill" de pré-candidato) */
.kicker{ display:inline-flex; align-items:center; gap:.75rem; font-family:var(--font-titulo); text-transform:uppercase; letter-spacing:.15em; font-size:.8rem; font-weight:700; color:var(--azul); margin:0 0 1.2rem; }
.kicker::before{ content:""; width:32px; height:3px; background:var(--ambar); border-radius:2px; }
.kicker--light{ color:#ffcf47; }
.hero__badge{ display:inline-flex; align-items:center; gap:.5rem; background:rgba(245,166,35,.16); border:1px solid rgba(245,166,35,.5); color:#ffd68a; font-weight:600; font-size:.85rem; padding:.4rem .9rem; border-radius:999px; margin-bottom:1.3rem; }
.hero__badge b{ color:#fff; }
.hero__badge .dot{ width:9px; height:9px; border-radius:50%; background:#31d07a; box-shadow:0 0 0 0 rgba(49,208,122,.6); animation:dotpulse 2.2s infinite; }
@keyframes dotpulse{ 70%{ box-shadow:0 0 0 7px rgba(49,208,122,0);} 100%{ box-shadow:0 0 0 0 rgba(49,208,122,0);} }
.hero h1{ color:#fff; margin-bottom:1rem; }
.hero h1 .hl{ color:var(--ambar); }
.hero__text{ font-size:1.15rem; color:#d6e0f5; max-width:52ch; margin-bottom:1.8rem; }
.hero__cta{ display:flex; flex-wrap:wrap; gap:.8rem; }
.hero__slogan{ font-style:italic; color:#9fb6e6; font-size:1.02rem; margin:1.5rem 0 0; }
.hero__portrait{ position:relative; }
.portrait{ position:relative; margin:0; aspect-ratio:4/5; border-radius:var(--raio-lg); background:#12326e; box-shadow:var(--sombra-lg); overflow:hidden; border:1px solid rgba(255,255,255,.22); }
.portrait img{ width:100%; height:100%; object-fit:cover; object-position:center 18%; display:block; }
.portrait figcaption{ position:absolute; left:0; right:0; bottom:0; padding:2rem .95rem .8rem; background:linear-gradient(transparent, rgba(6,31,74,.9)); color:#eaf0fd; font-size:.85rem; font-weight:500; }

/* ---------- Faixa de números ---------- */
.stats{ background:linear-gradient(100deg,#17181e,#20222b); color:#fff; }
.stats .grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; padding:2.5rem 0; text-align:center; }
.stat__num{ font-family:var(--font-titulo); font-weight:800; font-size:clamp(2rem,4vw,2.8rem); color:var(--ambar); line-height:1; }
.stat__label{ font-size:.95rem; color:#d8d0bd; margin-top:.4rem; }
.stat + .stat{ border-left:1px solid rgba(255,255,255,.12); }

/* ---------- Cards / grids genéricos ---------- */
.grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
.grid-2{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.4rem; }
.card{ background:#fff; border:1px solid var(--borda); border-radius:var(--raio); padding:1.6rem; box-shadow:var(--sombra-sm); transition:.2s; }
.card:hover{ box-shadow:var(--sombra); transform:translateY(-3px); border-color:var(--borda-2); }
.card__icon{ width:46px; height:46px; color:var(--azul); display:flex; align-items:center; margin-bottom:.9rem; }
.card__icon svg{ width:30px; height:30px; }
.card h3{ margin-bottom:.4rem; padding-bottom:.5rem; position:relative; }
.card h3::after{ content:""; position:absolute; left:0; bottom:0; width:34px; height:3px; border-radius:2px; background:var(--ambar); }
.card p{ color:var(--texto-2); margin:0; font-size:.98rem; }

/* Notícias */
.news-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
@media (max-width:900px){ .news-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .news-grid{ grid-template-columns:1fr; } }
.news-card__ph{ position:absolute; inset:0; display:grid; place-items:center; background:linear-gradient(135deg,var(--azul),var(--azul-escuro)); color:rgba(255,255,255,.92); font-family:var(--font-titulo); font-weight:800; text-transform:uppercase; letter-spacing:.1em; font-size:1.05rem; }
.news-card{ background:#fff; border:1px solid var(--borda); border-radius:var(--raio); overflow:hidden; box-shadow:var(--sombra-sm); transition:.2s; display:flex; flex-direction:column; }
.news-card:hover{ box-shadow:var(--sombra); transform:translateY(-3px); }
.news-card__img{ aspect-ratio:16/9; background:var(--azul-escuro); position:relative; overflow:hidden; }
.news-card__img img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s ease; }
.news-card:hover .news-card__img img{ transform:scale(1.04); }
.news-card__img svg{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:40px; height:40px; opacity:.5; color:#fff; }
.news-card__tag{ position:absolute; top:12px; left:12px; background:var(--ambar); color:#3a2600; font-family:var(--font-titulo); font-weight:700; font-size:.72rem; padding:.28rem .7rem; border-radius:999px; text-transform:uppercase; letter-spacing:.04em; }
.news-card__body{ padding:1.3rem; display:flex; flex-direction:column; flex:1; }
.news-card__date{ font-size:.8rem; color:var(--texto-2); margin-bottom:.4rem; }
.news-card h3{ font-size:1.12rem; margin-bottom:.6rem; }
.news-card h3 a{ color:var(--azul-escuro); }
.news-card p{ color:var(--texto-2); font-size:.94rem; flex:1; }
.news-card__more{ font-family:var(--font-titulo); font-weight:700; font-size:.9rem; margin-top:.8rem; }

/* ---------- Eixos / região chips ---------- */
.chips{ display:flex; flex-wrap:wrap; gap:.7rem; }
.chip{ display:inline-flex; align-items:center; gap:.45rem; background:#fff; border:1px solid var(--borda-2); border-radius:999px; padding:.55rem 1.05rem;
  font-family:var(--font-titulo); font-weight:600; font-size:.95rem; color:var(--azul-escuro); transition:.18s; }
.chip:hover{ background:var(--azul); color:#fff; border-color:var(--azul); text-decoration:none; }
.chip b{ color:var(--ambar-escuro); }
.chip:hover b{ color:#ffd68a; }

/* ---------- Faixa CTA ---------- */
.cta-band{ background:linear-gradient(120deg,var(--ambar),#ffbe4d); color:#3a2600; border-radius:var(--raio-lg); padding:clamp(2rem,5vw,3.2rem); text-align:center; box-shadow:var(--sombra-lg); }
.cta-band h2{ color:#3a2600; }
.cta-band p{ color:#5a3d00; font-size:1.1rem; max-width:55ch; margin-inline:auto; }
.cta-band .btns{ display:flex; gap:.8rem; justify-content:center; flex-wrap:wrap; margin-top:1.4rem; }

/* ---------- Bio split (trajetória) ---------- */
.bio-split{ display:grid; grid-template-columns:0.8fr 1.2fr; gap:2.5rem; align-items:start; }
.bio-photo{ margin:0; position:relative; border-radius:var(--raio-lg); overflow:hidden; box-shadow:var(--sombra); position:sticky; top:100px; }
.bio-photo img{ width:100%; display:block; }
.bio-photo figcaption{ position:absolute; left:0; right:0; bottom:0; padding:2rem 1rem .9rem; background:linear-gradient(transparent, rgba(6,31,74,.88)); color:#fff; font-style:italic; font-size:.95rem; }
@media (max-width:820px){ .bio-split{ grid-template-columns:1fr; } .bio-photo{ position:relative; top:0; max-width:340px; } }

/* ---------- Timeline (trajetória) ---------- */
.timeline{ position:relative; max-width:760px; margin-inline:auto; padding-left:2rem; }
.timeline::before{ content:""; position:absolute; left:7px; top:6px; bottom:6px; width:2px; background:var(--borda-2); }
.tl-item{ position:relative; padding-bottom:2rem; }
.tl-item::before{ content:""; position:absolute; left:-2rem; top:5px; width:16px; height:16px; border-radius:50%; background:var(--ambar); border:3px solid #fff; box-shadow:0 0 0 2px var(--ambar); }
.tl-year{ font-family:var(--font-titulo); font-weight:800; color:var(--azul); font-size:1.05rem; }
.tl-item h3{ font-size:1.15rem; margin:.1rem 0 .3rem; }
.tl-item p{ color:var(--texto-2); margin:0; }

/* ---------- Listas de realizações ---------- */
.filter-tabs{ display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:1.8rem; }
.filter-tabs button{ font-family:var(--font-titulo); font-weight:600; font-size:.95rem; padding:.55rem 1.1rem; border-radius:999px; border:1px solid var(--borda-2); background:#fff; color:var(--texto); cursor:pointer; transition:.15s; }
.filter-tabs button:hover{ border-color:var(--azul); color:var(--azul); }
.filter-tabs button.is-active{ background:var(--azul); color:#fff; border-color:var(--azul); }
.law-list{ display:grid; gap:.7rem; }
.law{ display:grid; grid-template-columns:auto 1fr; gap:1rem; align-items:start; background:#fff; border:1px solid var(--borda); border-radius:var(--raio-sm); padding:1rem 1.2rem; transition:.15s; }
.law:hover{ border-color:var(--borda-2); box-shadow:var(--sombra-sm); }
.law__num{ font-family:var(--font-titulo); font-weight:800; color:#fff; background:var(--azul); font-size:.82rem; padding:.35rem .6rem; border-radius:8px; white-space:nowrap; text-align:center; }
.law__num--pl{ background:var(--verde); }
.law__obj{ margin:0; color:var(--texto); font-size:.98rem; }

/* ---------- Formulário ---------- */
.form-card{ background:#fff; border:1px solid var(--borda); border-radius:var(--raio); padding:clamp(1.5rem,3vw,2.4rem); box-shadow:var(--sombra); }
.field{ margin-bottom:1.1rem; }
.field label{ display:block; font-family:var(--font-titulo); font-weight:600; font-size:.92rem; margin-bottom:.4rem; color:var(--azul-escuro); }
.field input, .field select, .field textarea{ width:100%; font-family:var(--font-corpo); font-size:1rem; padding:.8rem 1rem; border:1px solid var(--borda-2); border-radius:10px; background:#fff; color:var(--texto); transition:.15s; }
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--azul); box-shadow:0 0 0 3px rgba(11,61,145,.15); }
.field textarea{ min-height:130px; resize:vertical; }
.field--check{ display:flex; gap:.6rem; align-items:flex-start; }
.field--check input{ width:auto; margin-top:.25rem; }
.field--check label{ font-weight:400; font-family:var(--font-corpo); color:var(--texto-2); font-size:.9rem; }
.form-ok{ display:none; background:#e8f6ee; border:1px solid var(--verde); color:#155d33; padding:1rem 1.2rem; border-radius:10px; margin-bottom:1rem; }
.form-ok.show{ display:block; }

/* Info contato */
.info-list{ list-style:none; }
.info-list li{ display:flex; gap:.9rem; align-items:flex-start; margin-bottom:1.2rem; }
.info-list .ic{ width:44px; height:44px; border-radius:12px; background:#eaf0fd; color:var(--azul); display:grid; place-items:center; flex:none; }
.info-list .ic svg{ width:22px; height:22px; }
.info-list b{ display:block; font-family:var(--font-titulo); color:var(--azul-escuro); }
.info-list span{ color:var(--texto-2); }

/* ---------- Page hero (interior) ---------- */
.page-hero{ background:linear-gradient(115deg,#FDC21C 0%,#F3A80A 100%); color:#0A2352; padding:clamp(2.5rem,6vw,4rem) 0; }
.page-hero h1{ color:#0A2352; margin-bottom:.6rem; }
.page-hero p{ color:#5b4302; font-size:1.12rem; max-width:60ch; margin:0; }
.breadcrumb{ font-size:.85rem; color:#7a5c00; margin-bottom:1rem; }
.breadcrumb a{ color:#0A2352; font-weight:600; }

/* ---------- WhatsApp flutuante ---------- */
.wa-float{ position:fixed; right:20px; bottom:20px; z-index:1200; width:60px; height:60px; border-radius:50%; background:var(--verde-wa);
  display:grid; place-items:center; box-shadow:0 8px 24px rgba(37,211,102,.5); color:#fff; animation:wa-pulse 2.6s infinite; }
.wa-float:hover{ transform:scale(1.06); text-decoration:none; }
.wa-float svg{ width:32px; height:32px; }
@keyframes wa-pulse{ 0%{ box-shadow:0 8px 24px rgba(37,211,102,.5),0 0 0 0 rgba(37,211,102,.5);} 70%{ box-shadow:0 8px 24px rgba(37,211,102,.5),0 0 0 16px rgba(37,211,102,0);} 100%{ box-shadow:0 8px 24px rgba(37,211,102,.5),0 0 0 0 rgba(37,211,102,0);} }

/* ---------- Rodapé ---------- */
.site-footer{ background:linear-gradient(180deg,#181a22,#111319); color:#c9c3b4; padding-top:3.5rem; }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.3fr; gap:2rem; padding-bottom:2.5rem; }
.site-footer h4{ color:#fff; font-size:1rem; margin-bottom:1rem; }
.site-footer a{ color:#c3d0ea; }
.site-footer a:hover{ color:#fff; }
.footer-links{ list-style:none; display:grid; gap:.55rem; }
.footer-brand .brand__name{ color:#fff; }
.footer-brand p{ font-size:.92rem; margin-top:.8rem; max-width:34ch; }
.socials{ display:flex; gap:.6rem; margin-top:1rem; }
.socials a{ width:40px; height:40px; border-radius:10px; background:rgba(255,255,255,.08); display:grid; place-items:center; color:#fff; }
.socials a:hover{ background:var(--ambar); color:#3a2600; }
.socials svg{ width:20px; height:20px; }
.news-signup input{ width:100%; padding:.7rem .9rem; border-radius:10px 10px 0 0; border:1px solid rgba(255,255,255,.15); background:rgba(255,255,255,.06); color:#fff; }
.news-signup input::placeholder{ color:#8ea3ca; }
.news-signup button{ width:100%; border-radius:0 0 10px 10px; }
.footer-bottom{ border-top:1px solid rgba(255,255,255,.1); padding:1.3rem 0; font-size:.85rem; text-align:center; color:#8ea3ca; }
.footer-bottom a{ color:#c3d0ea; }

/* ---------- Página de matéria ---------- */
.article{ max-width:770px; }
.article .kicker{ margin-top:.4rem; }
.art-hero{ margin:1.2rem 0 1.7rem; border-radius:var(--raio); overflow:hidden; box-shadow:var(--sombra); }
.art-hero img{ width:100%; display:block; }
.article__body p{ font-size:1.08rem; line-height:1.78; color:var(--texto); margin:0 0 1.15rem; }
.article__body p:first-of-type{ font-size:1.18rem; color:var(--azul-escuro); font-weight:500; }

/* ---------- Reveal ---------- */
.reveal{ opacity:0; transform:translateY(24px); transition:.6s cubic-bezier(.2,.7,.3,1); }
.reveal.in{ opacity:1; transform:none; }

/* ---------- Responsivo ---------- */
@media (max-width:960px){
  .hero .container{ grid-template-columns:1fr; text-align:center; }
  .hero__portrait{ order:-1; max-width:340px; margin-inline:auto; }
  /* MOBILE: banner é um bloco no topo com altura limitada pela tela (encolhe em telas baixas → CTAs sempre visíveis) */
  .hero--photo{ background:linear-gradient(180deg,#F7B733,#EC9C07); }
  .hero--photo .hero__bg{ position:relative; inset:auto; width:100%; height:min(82vw,46dvh); background-image:url("../img/header-mobile.jpg"); background-size:cover; background-position:50% 24%; }
  .hero--photo::before{ display:none; }
  .hero--photo .container{ min-height:auto; grid-template-columns:1fr; align-content:start; padding-top:1.2rem; padding-bottom:1.4rem; text-align:left; }
  .hero--photo .hero__content{ max-width:100%; }
  .hero.hero--photo h1{ color:#0a2352; font-size:clamp(1.5rem,7vw,2.1rem); line-height:1.12; margin-bottom:.45rem; }
  .hero.hero--photo .hero__text{ color:#5b4302; font-size:.8rem; line-height:1.45; margin-bottom:.9rem; }
  .hero.hero--photo .hero__slogan{ color:#6b5000; font-size:.8rem; margin:.7rem 0 0; }
  .hero.hero--photo .kicker{ color:#0a2352; font-size:.68rem; margin-bottom:.6rem; }
  .hero.hero--photo .kicker::before{ background:#0a2352; }
  .hero.hero--photo h1 .hl{ color:#F7B733; background:#0a2352; }
  .hero--photo .btn--primary{ background:var(--azul-escuro); color:#fff; }
  .hero--photo .btn--outline{ border-color:var(--azul-escuro); color:var(--azul-escuro); }
  .hero--photo .hero__cta{ flex-direction:column; align-items:stretch; gap:.5rem; margin-top:.2rem; }
  .hero--photo .hero__cta .btn{ justify-content:center; padding:.75rem 1.2rem; font-size:.98rem; }
  .footer-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:1024px){
  .nav, .header-actions .btn{ display:none; }
  .nav-toggle{ display:block; }
  .nav.open{ display:flex; position:absolute; top:var(--header-h); left:0; right:0; flex-direction:column; align-items:stretch; background:#0a1c3a; border-bottom:1px solid rgba(245,181,10,.35); padding:.8rem; gap:.2rem; box-shadow:var(--sombra-lg); }
  .nav.open a{ padding:.8rem 1rem; }
}
@media (max-width:820px){
  .grid-3, .grid-2{ grid-template-columns:1fr; }
  .stats .grid{ grid-template-columns:1fr 1fr; gap:1.5rem 1rem; }
  .stat + .stat{ border-left:none; }
  .stat:nth-child(odd){ border-right:1px solid rgba(255,255,255,.12); }
}
@media (max-width:560px){
  .stats .grid{ grid-template-columns:1fr 1fr; }
  .footer-grid{ grid-template-columns:1fr; }
  .law{ grid-template-columns:1fr; gap:.5rem; }
  .law__num{ justify-self:start; }
}
/* Telas baixas: compacta ainda mais para os 2 CTAs sempre aparecerem */
@media (max-width:820px) and (max-height:730px){
  .hero--photo .hero__bg{ height:min(58vw,35dvh); }
  .hero.hero--photo h1{ font-size:clamp(1.35rem,6vw,1.8rem); margin-bottom:.35rem; }
  .hero.hero--photo .hero__text{ font-size:.74rem; line-height:1.35; margin-bottom:.55rem; }
  .hero.hero--photo .kicker{ margin-bottom:.4rem; }
  .hero.hero--photo .hero__slogan{ display:none; }
  .hero--photo .container{ padding-top:.9rem; }
  .hero--photo .hero__cta{ gap:.45rem; }
  .hero--photo .hero__cta .btn{ padding:.6rem 1rem; font-size:.92rem; }
}
@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; scroll-behavior:auto !important; }
  .reveal{ opacity:1; transform:none; transition:none; }
}
