
:root{
  --ink:#1f2733;
  --ink-2:#41506a;
  --ink-3:#5a6884;
  --navy:#22364f;
  --navy-deep:#081c2e;
  --paper:#ffffff;       /* off-white quente, editorial */
  --paper-2:#ffffff;
  --card:#ffffff;
  --accent:#3667c9;      /* azul royal de ação */
  --accent-2:#2d569f;
  --accent-ink:#2d569f;
  --accent-soft:#eef3fb;
  --accent-line:#d3e0f5;
  --gold:#a98a52;        /* fio editorial discreto, não dourado dominante */
  --danger:#ad2b1c;
  --wa:#004411;
  --wa-2:#002200;
  --line:#e3e0d6;
  --line-2:#ece9e1;
  --maxw:1200px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:"Spline Sans",system-ui,sans-serif;color:var(--ink);background:var(--paper);font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased}
::selection{background:var(--navy);color:#fff}
/* Fallback global de tamanho de ícone: SVG inline sem dimensão própria não
   pode estourar para o tamanho do container. Regras específicas (.svc .ic svg,
   .chk svg, etc.) têm maior especificidade e sobrescrevem este teto.
   Exceções: mapas/imagens que legitimamente ocupam largura total. */
svg:not([width]):not([class*="map"]){max-width:48px;max-height:48px}
.ic{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}
.svc .ic{width:46px;height:46px}
:where(.top) .ic{width:44px;height:44px;border-radius:8px;background:var(--accent-soft)}
:where(.top) .ic svg{width:22px;height:22px;color:var(--accent-ink);stroke-width:1.6}
h1,h2,h3,h4{font-family:"Fraunces",Georgia,serif;line-height:1.08;letter-spacing:-.02em;color:var(--navy);font-weight:600}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px}

/* etiqueta de seção estilo dossiê */
.eyebrow{display:inline-flex;align-items:center;gap:12px;font-family:"Spline Sans";font-size:.72rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--accent-ink)}

.eyebrow::after{content:"";width:46px;height:1px;background:var(--accent-line)}
.eyebrow.on-dark{color:#9db8ff}.eyebrow.on-dark::after{background:rgba(255,255,255,.2)}
.eyebrow.center{justify-content:center}

/* BOTÕES — maiúsculo */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:11px;font-family:"Spline Sans";font-weight:700;font-size:.86rem;letter-spacing:.08em;text-transform:uppercase;line-height:1;border:0;border-radius:2px;padding:18px 32px;cursor:pointer;transition:transform .18s cubic-bezier(.2,.8,.2,1),background .18s;will-change:transform}
.btn-wa{background:var(--wa);color:#fff;box-shadow:0 1px 0 rgba(0,0,0,.04),0 12px 28px -12px rgba(0,68,17,.6)}
.btn-wa:hover{background:var(--wa-2);transform:translateY(-2px);box-shadow:0 18px 36px -14px rgba(0,34,0,.7)}
.btn-accent{background:var(--accent);color:#fff;box-shadow:0 12px 28px -14px rgba(27,77,216,.7)}
.btn-accent:hover{background:var(--accent-2);transform:translateY(-2px)}
.btn-ghost{background:transparent;color:var(--navy);border:1px solid var(--line);border-radius:2px}
.btn-ghost:hover{border-color:var(--navy);background:#fff}
.btn-ghost.on-dark{color:#fff;border-color:rgba(255,255,255,.28)}
.btn-ghost.on-dark:hover{background:rgba(255,255,255,.07);border-color:#fff}
.btn .ico{width:19px;height:19px;flex:0 0 19px}
.btn-note{font-size:.82rem;color:var(--ink-3);margin-top:16px;display:flex;align-items:center;gap:8px}
.btn-note .chk{width:15px;height:15px;color:var(--wa);flex:0 0 15px}
.btn-note.on-dark{color:#93a4c4}.btn-note.on-dark .chk{color:#5fd58c}

/* topbar */
.topbar{background:var(--navy);color:#cdd8ec;font-size:.82rem;text-align:center;padding:11px 20px;letter-spacing:.01em}
.topbar strong{color:#fff}.topbar .em{color:#ffd479;font-weight:600}

/* header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(251,250,247,.85);backdrop-filter:blur(14px) saturate(1.4);border-bottom:1px solid var(--line)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:78px}
.brand{display:flex;align-items:center;gap:13px;font-family:"Fraunces";font-weight:600;font-size:1.4rem;color:var(--navy);letter-spacing:-.02em}
.brand .mark{width:40px;height:40px;border-radius:3px;background:var(--navy);display:grid;place-items:center;color:#fff;position:relative;overflow:hidden}
.brand .mark::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 55%,rgba(255,255,255,.16) 56%)}
.brand .mark svg{width:21px;height:21px;position:relative;z-index:1}
.primary-nav{display:flex;gap:24px;align-items:center;font-size:.95rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.primary-nav a{color:var(--ink-2);position:relative;padding:4px 0;transition:color .15s}
.primary-nav a::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:1.5px;background:var(--accent);transition:width .22s}
.primary-nav a:hover{color:var(--navy)}.primary-nav a:hover::after{width:100%}
.header-cta{padding:13px 22px;font-size:.78rem}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;padding:6px}.nav-toggle svg{width:26px;height:26px;color:var(--navy)}

/* breadcrumbs */
.breadcrumb{background:var(--paper-2);border-bottom:1px solid var(--line)}
.breadcrumb .wrap{padding:14px 32px}
.breadcrumb ol{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:9px;font-size:.84rem;color:var(--ink-3)}
.breadcrumb li{display:flex;align-items:center;gap:9px}
.breadcrumb a{color:var(--accent-ink);font-weight:500;transition:color .15s}
.breadcrumb a:hover{color:var(--navy)}
.breadcrumb .sep{color:var(--line);font-size:.8rem}
.breadcrumb [aria-current]{color:var(--ink-2);font-weight:600}
@media(max-width:560px){.breadcrumb .wrap{padding:11px 22px}}

/* menu dropdown */
.primary-nav .has-sub{position:relative}
.primary-nav .has-sub>a{display:inline-flex;align-items:center;gap:5px;cursor:pointer}
.primary-nav .has-sub>a .ca{width:14px;height:14px;transition:transform .2s;opacity:.7}
.primary-nav .has-sub:hover>a .ca,.primary-nav .has-sub:focus-within>a .ca{transform:rotate(180deg)}
.primary-nav .submenu{position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%) translateY(8px);min-width:268px;background:#fff;border:1px solid var(--line);border-radius:4px;box-shadow:0 24px 50px -24px rgba(11,31,58,.4);padding:8px;opacity:0;visibility:hidden;transition:opacity .2s,transform .2s;z-index:60}
.primary-nav .submenu::before{content:"";position:absolute;top:-7px;left:50%;transform:translateX(-50%) rotate(45deg);width:12px;height:12px;background:#fff;border-left:1px solid var(--line);border-top:1px solid var(--line)}
.primary-nav .has-sub:hover .submenu,.primary-nav .has-sub:focus-within .submenu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.primary-nav .submenu a{display:block;padding:12px 16px;border-radius:3px;font-size:.86rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-2);white-space:nowrap;transition:background .15s,color .15s}
.primary-nav .submenu a::after{display:none}
.primary-nav .submenu a:hover{background:var(--accent-soft);color:var(--accent-ink)}
@media(max-width:940px){
  .primary-nav .submenu{position:static;transform:none;opacity:1;visibility:visible;box-shadow:none;border:0;border-left:2px solid var(--line);border-radius:0;margin:4px 0 4px 12px;padding:0 0 0 8px;min-width:0}
  .primary-nav .submenu::before{display:none}
  .primary-nav .has-sub>a .ca{display:none}
}


/* HERO editorial */
.hero{position:relative;background:var(--navy);color:#fff;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background:
  radial-gradient(55% 65% at 88% 4%,rgba(120,150,200,.30),transparent 62%),
  radial-gradient(45% 55% at 0% 100%,rgba(120,150,200,.16),transparent 62%)}
.hero::after{content:"";position:absolute;inset:0;opacity:.5;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:68px 68px;mask-image:radial-gradient(120% 100% at 70% 0%,#000,transparent 72%)}
.hero .wrap{position:relative;z-index:2;display:grid;grid-template-columns:1.18fr .82fr;gap:60px;align-items:center;padding:96px 32px 104px}
.hero .lead .eyebrow{margin-bottom:26px}
.hero h1{font-size:clamp(2.6rem,5.2vw,4.6rem);font-weight:500;color:#fff;letter-spacing:-.025em}
.hero h1 em{font-style:italic;font-weight:400;color:#9db8ff}
.hero h1 .u{position:relative;white-space:nowrap}
.hero h1 .u::after{content:"";position:absolute;left:0;right:0;bottom:.08em;height:.07em;background:var(--gold);opacity:.85}
.hero .sub{font-size:1.18rem;line-height:1.6;color:#fff;margin-top:28px;max-width:540px;font-weight:400}
.hero .sub strong,.hero .sub em,.hero .sub b,.hero .sub dfn,.hero .sub abbr{color:#fff}
.hero .sub mark{background:rgba(255,210,80,.22);color:#fff;padding:0 .15em;border-radius:2px}
.hero .cta-row{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:38px}
.hero .figures{margin-top:48px;padding-top:30px;border-top:1px solid rgba(255,255,255,.14);display:grid;grid-template-columns:repeat(3,auto);gap:40px;justify-content:start}
.hero .figures .v{font-family:"Fraunces";font-size:1.7rem;font-weight:500;color:#fff;line-height:1}
.hero .figures .v em{font-style:italic;color:#9db8ff}
.hero .figures .l{font-size:.82rem;color:#93a4c4;margin-top:6px;max-width:150px;line-height:1.4}

/* card de risco — dossiê */
.dossier{background:var(--card);color:var(--ink);border-radius:4px;box-shadow:0 40px 80px -30px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.04);position:relative}
.dossier::before{content:"";position:absolute;top:0;left:28px;right:28px;height:3px;background:var(--danger)}
.dossier .d-head{padding:30px 30px 18px}
.dossier .d-tag{font-family:"Spline Sans";font-size:.68rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--danger);display:flex;align-items:center;gap:8px}
.dossier .d-tag .dot{width:7px;height:7px;border-radius:50%;background:var(--danger);box-shadow:0 0 0 3px rgba(173,43,28,.15);animation:pulse 2s infinite}
@keyframes pulse{50%{filter:drop-shadow(0 0 6px rgba(173,43,28,0))}}
.dossier h2{font-size:1.4rem;margin-top:9px;letter-spacing:-.02em}
.dossier ul{list-style:none;padding:4px 30px}
.dossier li{display:flex;gap:14px;align-items:flex-start;padding:15px 0;border-bottom:1px solid var(--line-2);font-size:.95rem;color:var(--ink-2)}
.dossier li:last-child{border-bottom:0}
.dossier li .n{font-family:"Fraunces";font-size:.85rem;font-weight:600;color:var(--danger);flex:0 0 auto;width:18px;padding-top:2px}
.dossier li strong{color:var(--ink);font-weight:700}
.dossier .d-foot{padding:14px 30px 30px}.dossier .d-foot .btn{width:100%}

/* faixa selos */
.proof{background:var(--card);border-bottom:1px solid var(--line)}
.proof .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:0;padding:0}
.proof .item{padding:30px 28px;border-right:1px solid var(--line-2);display:flex;gap:14px;align-items:flex-start}
.proof .item:last-child{border-right:0}
.proof .item .ic{flex:0 0 26px;width:26px;height:26px;color:var(--accent-ink)}
.proof .item .ic svg{width:26px;height:26px}
.proof .item b{display:block;font-size:.94rem;color:var(--navy);margin-bottom:2px;font-weight:600}
.proof .item span{font-size:.82rem;color:var(--ink-3);line-height:1.45}

/* marquee base legal */
.legal{background:var(--paper-2);padding:18px 0;overflow:hidden;border-bottom:1px solid var(--line)}
.legal .lab{text-align:center;font-size:.7rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3);margin-bottom:12px}
.marquee{position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.marquee-track{display:inline-flex;align-items:center;gap:14px;white-space:nowrap;animation:scroll 34s linear infinite;will-change:transform}
.marquee:hover .marquee-track{animation-play-state:paused}
.chip{display:inline-flex;align-items:center;gap:9px;font-size:.9rem;font-weight:600;color:var(--navy);padding:7px 18px;background:#fff;border:1px solid var(--line);border-radius:999px}
.chip svg{width:14px;height:14px;color:var(--accent);flex:0 0 14px}
@keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.marquee-track{animation:none;flex-wrap:wrap;white-space:normal;justify-content:center}}

/* seções base */
.section{padding:108px 0}
.section.alt{background:var(--paper-2)}
.section.dark{background:var(--navy);color:#fff}
.s-head{max-width:780px;margin-bottom:60px}
.s-head.center{margin:0 auto 60px;text-align:center}
.s-head h2{font-size:clamp(2.1rem,3.6vw,3rem);margin-top:18px;font-weight:500;letter-spacing:-.025em}
.s-head h2 em{font-style:italic;color:var(--accent-ink)}
.section.dark .s-head h2{color:#fff}.section.dark .s-head h2 em{color:#9db8ff}
.s-head p{font-size:1.15rem;color:var(--ink-2);margin-top:18px;line-height:1.65}
.section.dark .s-head p{color:#bccadf}

/* RISCO — cards editoriais numerados */
.risk-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line)}
.risk-cell{padding:40px 36px 40px 0;border-bottom:1px solid var(--line);border-right:1px solid var(--line);position:relative}
.risk-cell:nth-child(3n){border-right:0;padding-right:0}
.risk-cell:nth-child(n){padding-left:36px}
.risk-cell:nth-child(3n+1){padding-left:0}
.risk-cell .rn{font-family:"Fraunces";font-size:1rem;font-style:italic;color:var(--gold);margin-bottom:16px}
.risk-cell .ric{width:30px;height:30px;color:var(--accent-ink);margin-bottom:18px}
.risk-cell .ric svg{width:30px;height:30px}
.risk-cell h3{font-size:1.32rem;margin-bottom:11px;font-weight:600;letter-spacing:-.02em}
.risk-cell p{font-size:.97rem;color:var(--ink-2);line-height:1.68}
.pull{margin-top:56px;display:grid;grid-template-columns:auto 1fr;gap:28px;align-items:center;padding:38px 44px;background:var(--navy);color:#fff;border-radius:4px;position:relative;overflow:hidden}
.pull::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 120% at 90% 0,rgba(120,150,200,.28),transparent 62%)}
.pull .mark{font-family:"Fraunces";font-size:4rem;line-height:.7;color:var(--gold);opacity:.5;position:relative}
.pull p{position:relative;font-family:"Fraunces";font-size:1.4rem;line-height:1.45;font-weight:400;color:#fff;opacity:1}
.pull strong{color:#fff;font-weight:700}

/* EXIGÊNCIA */
.tech{display:grid;grid-template-columns:.8fr 1.2fr;gap:64px;align-items:start}
.tech-copy h2{font-size:clamp(2rem,3.2vw,2.7rem);margin-top:18px;font-weight:500;letter-spacing:-.025em}
.tech-copy h2 em{font-style:italic;color:var(--accent-ink)}
.tech-copy p{margin-top:18px;color:var(--ink-2);font-size:1.04rem;line-height:1.78}
.tech-copy p strong{color:var(--ink)}
.factors{list-style:none;counter-reset:f}
.factors li{counter-increment:f;display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:baseline;padding:24px 0;border-bottom:1px solid var(--line)}
.factors li:first-child{border-top:1px solid var(--line)}
.factors li::before{content:"0" counter(f);font-family:"Fraunces";font-size:1.15rem;font-weight:500;color:var(--gold);font-style:italic}
.factors h3{font-size:1.12rem;margin-bottom:5px;font-family:"Spline Sans";font-weight:700;color:var(--navy)}
.factors p{font-size:.95rem;color:var(--ink-2)}

/* DADOS — claro, editorial */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:2px solid var(--navy)}
.stats .stat{padding:34px 28px 34px 0;border-right:1px solid var(--line)}
.stats .stat:last-child{border-right:0;padding-right:0}
.stats .stat:not(:first-child){padding-left:28px}
.stats dt{font-family:"Fraunces";font-size:2.9rem;font-weight:500;color:var(--navy);line-height:1;letter-spacing:-.03em}
.stats dt em{font-style:italic;color:var(--accent-ink);font-size:2rem}
.stats dd{font-size:.9rem;color:var(--ink-2);margin-top:14px;line-height:1.55}
.stats-src{font-size:.8rem;color:var(--ink-3);margin-top:28px;font-style:italic;font-family:"Fraunces"}

/* ENTREGÁVEL */
.deliver{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.deliver h2{font-size:clamp(2rem,3.2vw,2.7rem);margin-top:18px;font-weight:500;letter-spacing:-.025em}
.deliver h2 em{font-style:italic;color:var(--accent-ink)}
.deliver .intro{font-size:1.06rem;color:var(--ink-2);margin-top:18px;line-height:1.75}
.deliver .actions{margin-top:30px}
.spec{list-style:none;counter-reset:s}
.spec li{counter-increment:s;padding:22px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:auto 1fr;gap:20px}
.spec li:first-child{border-top:1px solid var(--line)}
.spec li .chk{flex:0 0 26px;width:26px;height:26px;min-width:26px;aspect-ratio:1;border-radius:50%;background:var(--accent);display:inline-flex;align-items:center;justify-content:center;margin-top:2px}
.spec li .chk svg{width:14px;height:14px;flex:0 0 14px;color:#fff}
.spec li b{display:block;font-size:1.06rem;color:var(--navy);font-weight:600;margin-bottom:3px;font-family:"Spline Sans"}
.spec li span{font-size:.94rem;color:var(--ink-2);line-height:1.55}

/* SERVIÇOS */
.svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.svc{background:var(--card);padding:44px 40px;transition:background .2s}
.svc:hover{background:var(--accent-soft)}
.svc .top{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}
.svc .ic{width:46px;height:46px;color:var(--accent-ink)}.svc .ic svg{width:46px;height:46px;stroke-width:1.4}
.svc .sn{font-family:"Fraunces";font-style:italic;font-size:1.1rem;color:var(--gold)}
.svc h3{font-size:1.34rem;margin-bottom:10px;font-weight:600;letter-spacing:-.02em}
.svc p{font-size:.98rem;color:var(--ink-2);line-height:1.65}

/* CUSTO tabela */
.cost-wrap{max-width:940px;margin:0 auto;border:1px solid var(--line);border-radius:4px;overflow:hidden;background:#fff}
.cost-table{width:100%;border-collapse:collapse}
.cost-table th,.cost-table td{padding:22px 26px;text-align:left;border-bottom:1px solid var(--line-2);vertical-align:top}
.cost-table thead th{background:var(--navy);color:#fff;font-family:"Spline Sans";font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.cost-table tbody th{font-family:"Fraunces";font-weight:600;color:var(--navy);font-size:1.1rem}
.cost-table tbody td{color:var(--ink-2);font-size:.96rem}
.cost-table tbody tr:last-child th,.cost-table tbody tr:last-child td{border-bottom:0}
.cost-table tbody tr:hover{background:var(--paper-2)}
.cost-table .danger{color:var(--danger);font-weight:700;font-family:"Spline Sans"}
.cost-table .good{color:var(--wa-2);font-weight:700;font-family:"Spline Sans"}

/* DEPOIMENTOS */
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.quote{background:var(--card);border:1px solid var(--line);border-radius:4px;padding:34px;display:flex;flex-direction:column;position:relative}
.quote::before{content:"\201C";position:absolute;top:14px;right:26px;font-family:"Fraunces";font-size:4rem;color:var(--accent-soft);line-height:1}
.quote .stars{display:flex;gap:3px;margin-bottom:16px;position:relative}
.quote .stars svg{width:17px;height:17px;color:var(--gold)}
.quote blockquote{font-family:"Fraunces";font-size:1.1rem;line-height:1.55;color:var(--ink);flex:1;font-weight:400;position:relative}
.quote figcaption{display:flex;align-items:center;gap:13px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line-2)}
.quote .av{width:44px;height:44px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-family:"Fraunces";font-weight:500;font-size:1rem;flex:0 0 44px}
.quote .who b{display:block;font-size:.94rem;color:var(--navy);font-weight:600}
.quote .who span{font-size:.82rem;color:var(--ink-3)}
.disclaimer{text-align:center;font-size:.8rem;color:var(--ink-3);margin-top:28px;font-style:italic;font-family:"Fraunces"}

/* PROCESSO */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:2px solid var(--navy)}
.steps li{list-style:none;padding:36px 30px 36px 0;border-right:1px solid var(--line)}
.steps li:last-child{border-right:0;padding-right:0}
.steps li:not(:first-child){padding-left:30px}
.steps .num{font-family:"Fraunces";font-size:2.4rem;font-weight:500;color:var(--navy);line-height:1;letter-spacing:-.03em}
.steps .num em{font-style:italic;color:var(--gold)}
.steps h3{font-size:1.14rem;margin:16px 0 9px;font-family:"Spline Sans";font-weight:700}
.steps p{font-size:.93rem;color:var(--ink-2);line-height:1.6}

/* OFERTA */
.offer{display:grid;grid-template-columns:1.15fr .85fr;gap:0;background:var(--card);border:1px solid var(--line);border-radius:4px;overflow:hidden;box-shadow:0 40px 80px -40px rgba(11,31,58,.5)}
.offer .l{padding:52px}
.offer h2{font-size:clamp(1.8rem,2.6vw,2.3rem);margin:14px 0 16px;font-weight:500;letter-spacing:-.02em}
.offer .l p{color:var(--ink-2);line-height:1.7}
.offer ul{list-style:none;margin-top:24px}
.offer ul li{display:flex;gap:13px;align-items:flex-start;padding:11px 0;font-size:1rem;color:var(--ink)}
.offer ul li svg{flex:0 0 20px;width:20px;height:20px;color:var(--accent);margin-top:4px}
.offer .r{background:var(--navy);color:#fff;padding:52px;display:flex;flex-direction:column;justify-content:center;text-align:center;position:relative;overflow:hidden}
.offer .r::before{content:"";position:absolute;inset:0;background:radial-gradient(70% 80% at 50% 0,rgba(120,150,200,.3),transparent 62%)}
.offer .r>*{position:relative}
.offer .r .old{font-size:.94rem;color:#93a4c4;text-decoration:line-through}
.offer .r .price{font-family:"Fraunces";font-size:3.2rem;font-weight:500;line-height:1;margin:8px 0 4px;color:#fff}
.offer .r .price em{font-style:italic;font-size:1.1rem;color:#9db8ff}
.offer .r .why{font-size:.86rem;color:#bccadf;margin:10px 0 26px;line-height:1.55}
.offer .r .btn{width:100%}

/* CONTATO */
.contact{display:grid;grid-template-columns:.9fr 1.1fr;gap:60px;align-items:start}
.contact h2{font-size:clamp(1.9rem,3.2vw,2.6rem);font-weight:500;letter-spacing:-.025em}
.contact h2 em{font-style:italic;color:var(--accent-ink)}
.contact .lead{font-size:1.06rem;color:var(--ink-2);margin-top:18px;line-height:1.7}
.contact .actions{margin-top:26px}
.assurance{display:flex;gap:15px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:4px;padding:22px;margin-top:28px}
.assurance svg{flex:0 0 26px;width:26px;height:26px;color:var(--accent-ink)}
.assurance b{display:block;color:var(--navy);margin-bottom:3px;font-weight:600}
.assurance p{font-size:.9rem;color:var(--ink-2)}
.divider{display:flex;align-items:center;gap:16px;margin:32px 0 4px;font-size:.74rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
.divider::before,.divider::after{content:"";flex:1;height:1px;background:var(--line)}
.form{background:var(--card);border:1px solid var(--line);border-radius:4px;padding:38px;box-shadow:0 30px 70px -40px rgba(11,31,58,.4)}
.field{margin-bottom:18px}
.field label{display:block;font-weight:600;font-size:.86rem;margin-bottom:7px;color:var(--navy)}
.field input,.field select{width:100%;padding:14px 16px;border:1px solid var(--line);border-radius:2px;font-family:inherit;font-size:1rem;color:var(--ink);background:#fff;transition:border-color .15s,box-shadow .15s}
.field input:focus,.field select:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.form .btn{width:100%;margin-top:8px}
.form-note{font-size:.81rem;color:var(--ink-3);margin-top:15px;text-align:center}
.form-ok{display:none;background:var(--card);border:1px solid var(--line);border-radius:4px;padding:44px;text-align:center;box-shadow:0 30px 70px -40px rgba(11,31,58,.4)}
.form-ok[data-visible="true"]{display:block}
.form-ok .mk{width:62px;height:62px;border-radius:50%;background:var(--accent-soft);display:grid;place-items:center;color:var(--accent-ink);margin:0 auto 20px}
.form-ok h2{font-size:1.5rem;margin-bottom:8px}.form-ok p{color:var(--ink-2)}

.faq-sec{background:#ffffff}
.sec-cta{margin-top:48px;display:flex}
.sec-cta.center{justify-content:center}
/* FAQ da HOME (escopado em .faq-sec para vencer o .faq genérico sem colidir) */
.faq-sec .faq{max-width:880px;margin:0 auto;border-top:1px solid var(--line);display:block;gap:0}
.faq-sec .faq details{border:0;border-bottom:1px solid var(--line);border-radius:0;padding:0;background:transparent}
.faq-sec .faq details[open]{border-color:var(--line)}
.faq-sec .faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:28px 6px;font-family:"Fraunces";font-weight:500;font-size:1.22rem;color:var(--navy);letter-spacing:-.01em}
.faq-sec .faq summary::-webkit-details-marker{display:none}
.faq-sec .faq summary::after{content:none}
.faq-sec .faq summary .pm{flex:0 0 26px;width:26px;height:26px;position:relative;transition:transform .25s}
.faq-sec .faq summary .pm::before,.faq-sec .faq summary .pm::after{content:"";position:absolute;background:var(--accent);transition:opacity .2s}
.faq-sec .faq summary .pm::before{top:12px;left:3px;right:3px;height:2px}
.faq-sec .faq summary .pm::after{left:12px;top:3px;bottom:3px;width:2px}
.faq-sec .faq details[open] summary .pm{transform:rotate(135deg)}
.faq-sec .faq .a{padding:0 6px 28px;margin-top:0;color:var(--ink-2);font-size:1.01rem;line-height:1.7;max-width:780px}

/* CTA FINAL */
.final{background:var(--navy);color:#fff;text-align:center;position:relative;overflow:hidden}
.final::before{content:"";position:absolute;inset:0;background:radial-gradient(55% 70% at 50% 0,rgba(120,150,200,.28),transparent 62%)}
.final::after{content:"";position:absolute;inset:0;opacity:.4;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:60px 60px;mask-image:radial-gradient(80% 80% at 50% 0,#000,transparent 70%)}
.final .wrap{position:relative;z-index:2;padding:104px 32px}
.final h2{color:#fff;font-size:clamp(2.2rem,3.6vw,3.2rem);max-width:820px;margin:18px auto 0;font-weight:500;letter-spacing:-.025em}
.final h2 em{font-style:italic;color:#9db8ff}
.final p{font-size:1.12rem;color:#bccadf;max-width:580px;margin:20px auto 0;line-height:1.7}
.final .actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:38px}

/* RODAPÉ */
.footer{background:#081c2e;color:#fff;padding:64px 0 30px;font-size:.92rem}
.footer .cols{display:grid;grid-template-columns:1.7fr 1fr 1fr 1.1fr;gap:40px;padding-bottom:36px;border-bottom:1px solid rgba(255,255,255,.1)}
.footer .brand{color:#fff;margin-bottom:16px}.footer .brand .mark{background:rgba(27,77,216,.3)}
.footer p{max-width:340px;line-height:1.65}
.footer h2{color:#fff;font-family:"Spline Sans";font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;margin-bottom:16px}.footer-title{color:#fff;font-family:"Spline Sans";font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;margin-bottom:16px;display:block}
.footer nav a{display:block;padding:6px 0;transition:color .15s;color:#fff}.footer nav a:hover{color:#9db8ff}
.footer .contact-col a{display:block;padding:6px 0;transition:color .15s;color:#fff}.footer .contact-col a:hover{color:#9db8ff}
.footer .contact-col .who{color:#fff;font-size:.86rem;margin-bottom:2px;margin-top:10px}
.footer .legal-row{padding-top:26px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.82rem;color:#fff}

/* flutuante + mobile */
.wa-fab{position:fixed;right:24px;bottom:26px;z-index:60;display:inline-flex;align-items:center;gap:11px;background:var(--wa);color:#fff;font-weight:700;font-size:.82rem;text-transform:uppercase;letter-spacing:.05em;padding:15px 22px 15px 17px;border-radius:999px;box-shadow:0 18px 40px -14px rgba(31,168,85,.7);transition:transform .16s,background .16s}
.wa-fab:hover{transform:translateY(-2px);background:var(--wa-2)}.wa-fab svg{width:23px;height:23px}
.mobile-bar{display:none;position:fixed;bottom:0;left:0;right:0;z-index:55;padding:11px 16px;background:rgba(11,31,58,.97);backdrop-filter:blur(8px);border-top:1px solid rgba(27,77,216,.4)}
.mobile-bar .btn{width:100%;padding:15px}

@media (prefers-reduced-motion:no-preference){
  .reveal{opacity:1;transform:translateY(0);transition:opacity .7s cubic-bezier(.2,.8,.2,1),transform .7s cubic-bezier(.2,.8,.2,1)}
  .reveal.vis{opacity:1;transform:none}
}
@media(max-width:1100px){
  .hero .wrap{grid-template-columns:1fr;gap:48px;padding:64px 32px 76px}
  .tech,.deliver,.contact,.offer{grid-template-columns:1fr;gap:40px}
  .risk-grid,.svc-grid,.quotes,.stats,.steps,.proof .wrap,.footer .cols{grid-template-columns:1fr}
  .risk-cell,.proof .item{border-right:0!important;padding:32px 0!important}
  .stats .stat,.steps li{border-right:0;border-bottom:1px solid var(--line);padding:28px 0!important}
  .hero .figures{grid-template-columns:1fr 1fr}
  .primary-nav,.header-cta{display:none}.nav-toggle{display:block}
}
@media(max-width:560px){
  body{font-size:16px}.section{padding:64px 0}.wrap{padding:0 22px}
  .offer .l,.offer .r{padding:30px}
  .pull{grid-template-columns:1fr;gap:10px;padding:30px}
  .wa-fab .lbl{display:none}.wa-fab{padding:14px;border-radius:50%;bottom:78px}
  .mobile-bar{display:block}
}

/* ===== MOBILE-FIRST OPTIMIZATIONS ===== */
@media(max-width:600px){
  .eyebrow{letter-spacing:.1em;font-size:.7rem}
  body{padding-bottom:72px}              /* respiro p/ barra fixa inferior */
  .wa-fab{display:none!important}          /* evita 2 botões no mobile */
  .btn{min-height:48px;padding-top:13px;padding-bottom:13px}
  .menu-toggle{min-width:48px;min-height:48px}
  .cost-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .cost-table{min-width:520px}
  .section{padding:54px 0}
  .hero{padding:40px 0 46px}
  .dossier{margin-top:26px}
  .sec-cta .btn{width:100%;justify-content:center}
  .s-head h2{font-size:clamp(1.7rem,7vw,2.2rem)}
}
/* Card de captura sticky: desktop sim, mobile não (a barra fixa inferior cobre a captura) */
@media(max-width:980px){
}


/* FIX HOVER SUBMENU: ponte invisível cobre o gap para o menu não fechar ao atravessar */
.has-sub::after{content:"";position:absolute;top:100%;left:0;right:0;height:18px;background:transparent;display:none}
.has-sub:hover::after{display:block}
.submenu{transition:opacity .2s ease,transform .2s ease,visibility 0s linear .15s}
.has-sub:hover .submenu,.primary-nav .has-sub:focus-within .submenu{transition:opacity .2s ease,transform .2s ease,visibility 0s}


/* ===== BANNER PRAZO NR-1 (bottom pop-out) ===== */
.nr1-banner{position:fixed;left:0;right:0;bottom:0;z-index:70;background:linear-gradient(90deg,#7a1420,#a51c2c);color:#fff;transform:translateY(110%);transition:transform .45s cubic-bezier(.2,.8,.2,1);box-shadow:0 -8px 30px rgba(0,0,0,.22);will-change:transform}
.nr1-banner.show{transform:translateY(0)}
.nr1-banner.pulse{animation:nr1pulse 1s ease 3}
@keyframes nr1pulse{0%,100%{filter:drop-shadow(0 -8px 30px rgba(0,0,0,.22))}50%{filter:drop-shadow(0 -2px 40px rgba(255,80,80,.8))}}
.nr1-banner .nb-wrap{max-width:1200px;margin:0 auto;padding:13px 54px 13px 22px;display:flex;align-items:center;gap:18px;position:relative}
.nr1-banner .nb-ic{flex:0 0 auto;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center}
.nr1-banner .nb-ic svg{width:19px;height:19px}
.nr1-banner .nb-tx{flex:1;font-family:"Spline Sans";font-size:.92rem;line-height:1.35}
.nr1-banner .nb-tx strong{font-weight:700}
.nr1-banner .nb-tx .em{color:#ffd7a8;font-weight:700}
.nr1-banner .nb-cta{flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;background:#25d366;color:#fff;font-family:"Spline Sans";font-weight:700;font-size:.85rem;text-transform:uppercase;letter-spacing:.03em;padding:11px 20px;border-radius:7px;text-decoration:none;transition:filter .2s;white-space:nowrap}
.nr1-banner .nb-cta:hover{filter:brightness(.95)}
.nr1-banner .nb-close{position:absolute;right:14px;top:50%;transform:translateY(-50%);width:30px;height:30px;border:0;background:rgba(255,255,255,.14);color:#fff;border-radius:50%;cursor:pointer;font-size:17px;line-height:1;display:flex;align-items:center;justify-content:center}
.nr1-banner .nb-close:hover{background:rgba(255,255,255,.28)}
@media(max-width:720px){
  .nr1-banner .nb-wrap{flex-wrap:wrap;padding:12px 48px 12px 16px;gap:10px}
  .nr1-banner .nb-ic{display:none}
  .nr1-banner .nb-tx{flex:1 1 100%;font-size:.85rem}
  .nr1-banner .nb-cta{flex:1 1 100%;justify-content:center;padding:12px}
  /* no mobile, banner sobe acima da barra fixa de WhatsApp */
  .nr1-banner.show{transform:translateY(0)}
  body.has-nr1-banner .mobile-bar{bottom:0}
}


/* fab sobe quando o banner de prazo está visível */
body.has-nr1-banner .wa-fab{bottom:96px;transition:bottom .4s cubic-bezier(.2,.8,.2,1),transform .16s,background .16s}
@media(max-width:720px){ body.has-nr1-banner .wa-fab{bottom:120px} }


/* mobile: empilhar barra acima do banner de prazo (sem sobrepor) */
@media(max-width:720px){
  body.has-nr1-banner .mobile-bar{bottom:140px;transition:bottom .4s cubic-bezier(.2,.8,.2,1)}
  body.has-nr1-banner{padding-bottom:210px}
}


/* LEAD CAPTURE MODAL */
.lead-capture{position:fixed;bottom:0;right:-400px;width:380px;max-height:90vh;background:#fff;border:1px solid var(--line);border-radius:8px 8px 0 0;box-shadow:0 -12px 40px rgba(0,0,0,.2);overflow:hidden;z-index:65;transition:right .35s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column}
.lead-capture[data-visible="true"]{right:0}
.lc-head{padding:24px;border-bottom:1px solid var(--line);background:var(--paper-2);position:relative}
.lc-head .tag{display:inline-block;font-family:"Spline Sans";font-size:.68rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--wa);margin-bottom:12px}
.lc-head h3{font-size:1.26rem;color:var(--navy);margin:0;font-weight:600}
.lc-close{position:absolute;top:18px;right:18px;width:32px;height:32px;border:0;background:none;cursor:pointer;color:var(--ink-2);font-size:26px;line-height:1;display:flex;align-items:center;justify-content:center;transition:color .15s}
.lc-close:hover{color:var(--navy)}
.lc-body{flex:1;overflow-y:auto;padding:24px}
.lc-body>p:first-child{font-size:.96rem;color:var(--ink-2);margin-bottom:20px;line-height:1.6}
.lc-body .field{margin-bottom:18px}
.lc-body .btn{width:100%;margin-top:6px}
.form-note{font-size:.82rem;color:var(--ink-3);text-align:center;margin-top:12px}
.form-ok{display:none;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 24px}
.form-ok[data-visible="true"]{display:flex}
.form-ok .mk{width:64px;height:64px;border-radius:50%;background:var(--wa);color:#fff;display:flex;align-items:center;justify-content:center;margin-bottom:20px}
.form-ok .mk svg{width:36px;height:36px}
.form-ok h2{font-size:1.4rem;color:var(--navy);margin-bottom:10px;font-weight:600}
.form-ok p{font-size:.94rem;color:var(--ink-2);line-height:1.6}
@media(max-width:480px){
  .lead-capture{width:100%;right:-100%;border-radius:16px 16px 0 0}
  .lc-body{padding:20px}
  .lc-head{padding:20px}
}


/* ============================================================
   BRIDGE CSS — mapeia classes do scaffold (programmatic city pages)
   para a identidade visual do legacy. Mantém .hero dark do legacy
   para a HOME e define .hero-page (variante clara editorial) para
   pillar/city/secondary pages.
   ============================================================ */

/* containers */
.container { max-width: var(--maxw); margin: 0 auto; padding: 0 32px; }

/* sections */
.section { padding: 72px 0; }
.section-tight { padding: 32px 0; }
.section-soft { background: var(--accent-soft); }
.section-dark { background: var(--navy-deep); color: #fff; }
.section-dark h1, .section-dark h2, .section-dark h3 { color: #fff; }
.section-dark .lead { color: #cdd8ec; }
.section-dark a { color: #9db8ff; }
.section-dark a:hover { color: #fff; }
section + section { margin-top: 0; }
section h2 { margin-top: 0; margin-bottom: 18px; font-size: clamp(1.6rem, 3vw, 2.2rem); }
section h3 { margin-top: 28px; margin-bottom: 10px; font-size: 1.2rem; color: var(--navy); }
section p { margin-bottom: 14px; color: var(--ink-2); }
section ul { margin: 14px 0 14px 22px; }
section ul li { margin-bottom: 8px; color: var(--ink-2); }
section .lead { font-size: clamp(1.05rem, 1.5vw, 1.2rem); color: var(--ink-2); max-width: 75ch; line-height: 1.55; margin-bottom: 18px; }

/* .hero (legacy dark) NÃO é redefinido aqui — preservado intencionalmente para
   home e pillars portados. City/pillar/secondary scaffolds usam .hero-light. */

/* .hero-light — hero da home/pillars (single-column, fundo navy + grid sutil) */
.hero-light { position: relative; background: var(--navy); color: #fff; overflow: hidden; }
.hero-light::before { content: ""; position: absolute; inset: 0; background:
  radial-gradient(55% 65% at 88% 4%, rgba(120,150,200,.30), transparent 62%),
  radial-gradient(45% 55% at 0% 100%, rgba(120,150,200,.16), transparent 62%); }
.hero-light::after { content: ""; position: absolute; inset: 0; opacity: .5;
  background-image: linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size: 68px 68px; mask-image: radial-gradient(120% 100% at 70% 0%, #000, transparent 72%); }
.hero-light .wrap { position: relative; z-index: 2; max-width: 880px; padding: 92px 32px 100px; }
.hero-light .eyebrow { color: var(--gold); margin-bottom: 22px; }
.hero-light h1 { font-size: clamp(2.4rem, 5vw, 4.2rem); font-weight: 500; color: #fff; letter-spacing: -.025em; line-height: 1.05; }
.hero-light h1 em { font-style: italic; font-weight: 400; color: #9db8ff; }
.hero-light .lead { font-size: clamp(1.1rem, 1.6vw, 1.3rem); line-height: 1.6; color: #c4d2ea; margin-top: 26px; max-width: 70ch; }
.hero-light .lead dfn { font-style: normal; font-weight: 600; color: #fff; }
.hero-light .lead mark { background: rgba(245,200,80,.22); color: #fff; padding: 0 4px; border-radius: 3px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 32px; }
/* ghost button no hero navy: texto/borda claros (senão fica invisível) */
.hero-light .btn-ghost { color: #fff; border-color: rgba(255,255,255,.42); }
.hero-light .btn-ghost:hover { background: rgba(255,255,255,.10); border-color: #fff; }

/* btn aliases — bridge para classes legacy */
.btn-cta { background: var(--wa); color: #fff; box-shadow: 0 12px 28px -12px rgba(0,68,17,.6); }
.btn-cta:hover { background: var(--wa-2); transform: translateY(-2px); }
.btn-primary { background: var(--accent); color: #fff; }
.btn-primary:hover { background: var(--accent-2); transform: translateY(-2px); }
.btn-outline { background: transparent; color: var(--navy); border: 1px solid var(--line); border-radius: 2px; padding: 17px 31px; }
.btn-outline:hover { border-color: var(--navy); background: #fff; }
.btn-lg { padding: 20px 36px; font-size: .9rem; }

/* grid utils */
.grid { display: grid; gap: 24px; }
.grid-2 { grid-template-columns: 1fr; }
.grid-3 { grid-template-columns: 1fr; }
.grid-4 { grid-template-columns: 1fr; }
@media (min-width: 700px) { .grid-2, .grid-3 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .grid-3 { grid-template-columns: repeat(3, 1fr); } .grid-4 { grid-template-columns: repeat(4, 1fr); } }

/* card */
.card { background: var(--card); border: 1px solid var(--line); border-radius: 4px; padding: 28px; transition: transform .15s, box-shadow .15s, border-color .15s; }
.card:hover { transform: translateY(-2px); box-shadow: 0 12px 28px -16px rgba(0,0,0,.18); border-color: var(--accent-line); }
.card-icon { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; background: var(--accent-soft); color: var(--accent-ink); border-radius: 3px; margin-bottom: 16px; font-family: Fraunces, serif; font-weight: 600; font-size: 1.2rem; }
.card h3 { font-size: 1.15rem; margin-top: 0; margin-bottom: 10px; }
.card p { color: var(--ink-2); font-size: .95rem; margin-bottom: 12px; }
.card-link { font-weight: 700; font-size: .82rem; letter-spacing: .06em; text-transform: uppercase; color: var(--accent-ink); }
.card-link:hover { color: var(--navy); }

/* stats — força 2x2 (2 colunas em qualquer viewport ≥ 500px) */
.stats { display: grid; gap: 20px 28px; grid-template-columns: 1fr; padding: 28px; background: var(--paper-2); border: 1px solid var(--line); border-radius: 4px; margin: 24px 0; }
@media (min-width: 500px) {
  .stats { grid-template-columns: repeat(2, 1fr) !important; }
}
.stats > div { padding: 8px 0; }
.stat-value { font-family: Fraunces, Georgia, serif; font-size: 1.9rem; font-weight: 600; color: var(--navy); line-height: 1; letter-spacing: -.02em; }
.stat-label { font-size: .82rem; color: var(--ink-3); margin-top: 6px; }

/* faq (uses <details>/<summary>) */
.faq { display: flex; flex-direction: column; gap: 12px; }
.faq details { border: 1px solid var(--line); border-radius: 4px; padding: 16px 22px; background: #fff; }
.faq details[open] { border-color: var(--accent-line); }
.faq summary { font-weight: 600; cursor: pointer; list-style: none; color: var(--navy); font-family: Fraunces, serif; font-size: 1.02rem; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; float: right; color: var(--accent); font-weight: 700; font-family: "Spline Sans", sans-serif; }
.faq details[open] summary::after { content: "−"; }
.faq p { margin-top: 12px; color: var(--ink-2); font-size: .96rem; }

/* eyebrow (já no legacy, garantir margin) */
section .eyebrow { margin-bottom: 16px; }

/* pillar hub: UF blocks + city grid */
.uf-block { margin-bottom: 48px; }
.uf-block h3 { font-size: 1.35rem; margin-bottom: 18px; color: var(--navy); border-bottom: 1px solid var(--line); padding-bottom: 10px; }
.city-link-list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 6px 24px; }
.city-link-list li { padding: 3px 0; }
.city-link-list a { color: var(--accent-ink); font-size: .9rem; transition: color .15s; }
.city-link-list a:hover { color: var(--navy); text-decoration: underline; }
.city-grid details { margin-bottom: 14px; border: 1px solid var(--line); border-radius: 4px; padding: 14px 20px; }
.city-grid summary { font-family: Fraunces, serif; font-weight: 600; cursor: pointer; color: var(--navy); list-style: none; }
.city-grid summary::-webkit-details-marker { display: none; }
.city-grid summary::after { content: "▾"; float: right; color: var(--ink-3); transition: transform .2s; display: inline-block; }
.city-grid details[open] summary::after { transform: rotate(180deg); }

/* mark / dfn / abbr typography */
mark { background: rgba(54, 103, 201, .12); color: var(--navy); padding: 0 4px; border-radius: 2px; font-weight: 500; }
dfn { font-style: normal; font-weight: 600; color: var(--navy); border-bottom: 1px dotted var(--ink-3); }
abbr[title] { text-decoration: none; border-bottom: 1px dotted var(--ink-3); cursor: help; }

/* footer extras (legacy footer assume cols layout). Sem margin-top para evitar
   linha em branco entre section-dark e footer; padding-top único controla espaçamento. */
.footer { background: #0a0f17; color: #cdd8ec; padding: 56px 0 32px; margin-top: 0; border-top: 1px solid rgba(255,255,255,.07); }
.footer .cols { display: grid; grid-template-columns: 1fr; gap: 32px; margin-bottom: 32px; }
@media (min-width: 700px) { .footer .cols { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1000px) { .footer .cols { grid-template-columns: 1.6fr 1fr 1fr 1.2fr; } }
.footer p { color: rgba(205, 216, 236, .8); font-size: .92rem; line-height: 1.6; margin-top: 14px; }
.footer .brand { color: #fff; }
.footer .brand .mark { background: rgba(255, 255, 255, .12); }
.footer-title { display: block; font-family: Fraunces, serif; font-weight: 600; color: #fff; font-size: 1rem; margin-bottom: 16px; }
.footer nav a { display: block; color: rgba(205, 216, 236, .85); font-size: .92rem; padding: 5px 0; transition: color .15s; }
.footer nav a:hover { color: #fff; }
.footer .contact-col a { display: block; color: rgba(205, 216, 236, .85); font-size: .92rem; padding: 5px 0; }
.footer .contact-col a:hover { color: #fff; }
.footer .contact-col strong { color: #fff; }
.footer .contact-col .who { font-size: .78rem; color: rgba(205, 216, 236, .55); margin-top: 14px; text-transform: uppercase; letter-spacing: .08em; }
.footer .legal-row { display: flex; flex-wrap: wrap; gap: 16px; justify-content: space-between; padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, .08); font-size: .82rem; color: rgba(205, 216, 236, .6); }
.footer .legal-row a { color: rgba(205, 216, 236, .8); }
.footer .legal-row a:hover { color: #fff; }

/* breadcrumb already covered in legacy CSS */

/* accessibility */
:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 2px; }

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

/* print */
@media print { .site-header, .footer, .topbar, .nav-toggle { display: none; } body { color: #000; background: #fff; } }

/* ============================================================
   CITY PAGE — Layout 2 colunas com sidebar sticky
   ============================================================ */

/* 2col layout: simplificado — sem sticky em grid (browsers tem bugs); flex no aside */
.city-2col { display: block; }
.city-2col .main-col { min-width: 0; }
.city-2col .main-col > section { padding: 48px 0; border-bottom: 1px solid var(--line-2); }
.city-2col .main-col > section:first-child { padding-top: 32px; }
.city-2col .main-col > section:last-child { border-bottom: 0; }
.city-2col .aside-col { display: flex; flex-direction: column; gap: 24px; margin-top: 32px; }

@media (min-width: 900px) {
  .city-2col { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 48px; align-items: start; }
  .city-2col .aside-col { margin-top: 0; position: sticky; top: 96px; align-self: start; }
  .city-2col .main-col > section { padding: 56px 0; }
}

/* Dentro da coluna de conteúdo (páginas de serviço), os blocos que na home
   são 2-col lado a lado DEVEM empilhar — senão viram 3 colunas espremidas
   ao lado da sidebar de conversão. Escopado em .main-col: não afeta a home. */
.city-2col .main-col .tech,
.city-2col .main-col .deliver,
.city-2col .main-col .contact,
.city-2col .main-col .offer { grid-template-columns: 1fr; gap: 36px; align-items: start; }
.city-2col .main-col .tech .spec { max-width: 640px; }

/* Lead form (captura sticky) */
.lead-form { background: var(--card); border: 1px solid var(--line); border-radius: 4px; padding: 28px 24px; box-shadow: 0 12px 28px -18px rgba(11, 31, 58, .15); }
.lead-form .form-tag { display: inline-flex; align-items: center; gap: 8px; font-size: .72rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--accent-ink); margin-bottom: 12px; }
.lead-form .form-tag .dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--wa); animation: pulse 2s infinite; }
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: .5; } }
.lead-form h3 { font-family: Fraunces, serif; font-size: 1.4rem; font-weight: 600; color: var(--navy); margin-bottom: 8px; line-height: 1.15; letter-spacing: -.01em; }
.lead-form .form-desc { font-size: .9rem; color: var(--ink-2); margin-bottom: 18px; line-height: 1.5; }
.lead-form .form-field { margin-bottom: 12px; }
.lead-form label { display: block; font-size: .75rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 4px; }
.lead-form input, .lead-form select, .lead-form textarea { width: 100%; padding: 11px 14px; font-family: "Spline Sans", sans-serif; font-size: .95rem; color: var(--ink); background: #fafafa; border: 1px solid var(--line); border-radius: 3px; transition: border-color .15s, background .15s; }
.lead-form input:focus, .lead-form select:focus, .lead-form textarea:focus { outline: 0; border-color: var(--accent); background: #fff; box-shadow: 0 0 0 3px rgba(54, 103, 201, .08); }
.lead-form .btn { width: 100%; margin-top: 8px; padding: 16px 20px; font-size: .82rem; }
.lead-form .form-note { font-size: .72rem; color: var(--ink-3); margin-top: 14px; line-height: 1.5; display: flex; align-items: flex-start; gap: 8px; }
.lead-form .form-note svg { width: 14px; height: 14px; flex: 0 0 14px; color: var(--wa); margin-top: 2px; }

/* City map */
.city-map { border: 1px solid var(--line); border-radius: 4px; overflow: hidden; background: var(--paper-2); }
.city-map .map-head { padding: 14px 18px; border-bottom: 1px solid var(--line); display: flex; align-items: center; gap: 10px; }
.city-map .map-head svg { width: 18px; height: 18px; color: var(--accent); }
.city-map .map-head h3 { font-family: Fraunces, serif; font-size: 1rem; font-weight: 600; color: var(--navy); margin: 0; }
.city-map iframe { display: block; width: 100%; height: 260px; border: 0; }
.city-map .map-foot { padding: 12px 18px; font-size: .82rem; color: var(--ink-3); border-top: 1px solid var(--line); }
.city-map .map-foot a { color: var(--accent-ink); font-weight: 600; }

/* Trust / credentials sidebar block */
.trust-card { background: var(--accent-soft); border: 1px solid var(--accent-line); border-radius: 4px; padding: 22px 20px; }
.trust-card h3 { font-family: Fraunces, serif; font-size: 1rem; font-weight: 600; color: var(--navy); margin-bottom: 14px; }
.trust-card ul { list-style: none; padding: 0; margin: 0; }
.trust-card li { display: flex; gap: 10px; padding: 8px 0; font-size: .88rem; color: var(--ink-2); border-bottom: 1px solid rgba(54, 103, 201, .12); }
.trust-card li:last-child { border-bottom: 0; }
.trust-card li svg { width: 16px; height: 16px; flex: 0 0 16px; color: var(--wa); margin-top: 3px; }

/* Inline conversion banner (entre seções da main-col) */
.cta-banner { background: var(--navy); color: #fff; padding: 28px 26px; border-radius: 4px; margin: 32px 0; display: flex; flex-wrap: wrap; gap: 18px; align-items: center; justify-content: space-between; position: relative; overflow: hidden; }
.cta-banner::before { content: ""; position: absolute; top: 0; right: 0; width: 50%; height: 100%; background: radial-gradient(circle at 100% 0%, rgba(120, 150, 200, .18), transparent 60%); pointer-events: none; }
.cta-banner .cta-text { position: relative; z-index: 1; flex: 1 1 360px; }
.cta-banner h3 { font-family: Fraunces, serif; font-size: 1.25rem; font-weight: 600; color: #fff; margin-bottom: 4px; line-height: 1.2; }
.cta-banner p { color: #c4d2ea; font-size: .92rem; margin: 0; }
.cta-banner .btn { position: relative; z-index: 1; }

/* Mobile: aside vai pro fim e some o sticky */
@media (max-width: 999px) {
  .city-2col .aside-col { position: static; }
  .city-2col .main-col > section { padding: 40px 0; }
}

/* ============================================================
   MÉTODO 2x2 + CLUSTER GEOGRÁFICO refinado
   ============================================================ */

/* Método grid: força 2x2 em qualquer viewport ≥ 600px */
.method-grid { grid-template-columns: 1fr !important; gap: 18px !important; }
@media (min-width: 600px) {
  .method-grid { grid-template-columns: repeat(2, 1fr) !important; }
}
.method-grid .card { padding: 24px 22px; }
.method-grid .card-icon { width: 38px; height: 38px; font-size: 1.05rem; margin-bottom: 14px; }
.method-grid .card h3 { font-size: 1.05rem; margin-bottom: 6px; }
.method-grid .card p { font-size: .92rem; line-height: 1.55; margin-bottom: 0; }

/* Cluster geográfico — header + grid de link-cards */
.cluster-block { margin-top: 32px; }
.cluster-block:first-of-type { margin-top: 24px; }
.cluster-head { margin-bottom: 18px; }
.cluster-head h3 { font-family: Fraunces, serif; font-size: 1.4rem; font-weight: 600; color: var(--navy); margin-bottom: 6px; letter-spacing: -.01em; }
.cluster-head p { font-size: .92rem; color: var(--ink-2); margin: 0; line-height: 1.55; max-width: 70ch; }

.link-card-grid { display: grid; grid-template-columns: 1fr; gap: 12px; }
@media (min-width: 700px) { .link-card-grid { grid-template-columns: repeat(2, 1fr) !important; } }
@media (min-width: 1100px) { .link-card-grid { grid-template-columns: repeat(3, 1fr) !important; } }
/* Dentro da coluna de conteúdo (service×city / hub), os cards têm pouco espaço
   por causa da sidebar de 340px: limitar a no máx. 2 colunas para não estourar.
   Especificidade maior que .link-card-grid → vence o repeat(3) !important acima. */
.city-2col .main-col .link-card-grid { grid-template-columns: minmax(0, 1fr) !important; }
@media (min-width: 760px) {
  .city-2col .main-col .link-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
.city-2col .main-col .uf-card-grid { grid-template-columns: 1fr; }
@media (min-width: 760px) {
  .city-2col .main-col .uf-card-grid { grid-template-columns: repeat(2, 1fr); }
}

.link-card { display: flex; align-items: center; gap: 14px; padding: 16px 18px; background: #fff; border: 1px solid var(--line); border-radius: 4px; transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease; text-decoration: none; min-width: 0; overflow: hidden; }
.link-card:hover { transform: translateY(-2px); box-shadow: 0 10px 24px -16px rgba(11, 31, 58, .25); border-color: var(--accent-line); text-decoration: none; }
.link-card-icon { flex: 0 0 38px; width: 38px; height: 38px; display: grid; place-items: center; background: var(--accent-soft); color: var(--accent-ink); border-radius: 4px; }
.link-card-icon svg { width: 18px; height: 18px; }
.link-card-icon.icon-accent { background: var(--navy); color: #fff; }
.link-card-body { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.2; }
.link-card-title { font-family: Fraunces, serif; font-weight: 600; font-size: 1rem; color: var(--navy); margin-bottom: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.link-card-sub { font-size: .78rem; color: var(--ink-3); letter-spacing: .02em; text-transform: uppercase; }
.link-card-cta { flex: 0 0 24px; color: var(--accent); opacity: .5; transition: opacity .15s, transform .15s; }
.link-card-cta svg { width: 18px; height: 18px; }
.link-card:hover .link-card-cta { opacity: 1; transform: translateX(3px); }

/* service card variant (3 outros serviços) — destaque maior */
.link-card-service { background: #fff; border-color: var(--accent-line); }
.link-card-service:hover { background: var(--accent-soft); border-color: var(--accent); }

/* Eyebrow dentro de section-soft */
.section-soft .eyebrow { margin-bottom: 14px; }
.section-soft h2 { margin-bottom: 12px; }

/* ============================================================
   CTA FINAL — centralizado + estilizado (city pages)
   ============================================================ */
.final-cta { padding: 88px 0 72px !important; text-align: center; position: relative; overflow: hidden; }
.final-cta::before { content: ""; position: absolute; inset: 0; background: radial-gradient(60% 70% at 50% 0%, rgba(120,150,200,.16), transparent 60%); pointer-events: none; }
.final-cta .wrap { position: relative; z-index: 1; }
.final-cta-content { max-width: 720px; margin: 0 auto; }
.final-cta .eyebrow { margin-bottom: 18px; justify-content: center; }
.final-cta h2 { color: #fff; font-size: clamp(1.8rem, 3.2vw, 2.6rem); font-weight: 600; letter-spacing: -.02em; line-height: 1.15; margin: 0 0 16px; }
.final-cta h2 em { font-style: italic; color: #9db8ff; font-weight: 400; }
.final-cta .lead { color: #c4d2ea; font-size: clamp(1rem, 1.4vw, 1.15rem); max-width: 580px; margin: 0 auto 36px; line-height: 1.55; }
.final-cta-buttons { display: flex; justify-content: center; gap: 14px; flex-wrap: wrap; margin-bottom: 32px; }
.final-cta-buttons .btn { padding: 20px 36px; font-size: .9rem; }
.final-cta-trust { display: flex; justify-content: center; gap: 18px 28px; flex-wrap: wrap; font-size: .8rem; color: rgba(205, 216, 236, .65); margin: 0; }
.final-cta-trust > span { display: inline-flex; align-items: center; gap: 7px; }
.final-cta-trust svg { width: 14px; height: 14px; color: #5fd58c; flex: 0 0 14px; }

/* ============================================================
   WHATSAPP BUTTON — contraste máximo (fonte branca pura + peso 800)
   ============================================================ */
.btn-wa,
.btn-wa:visited,
.btn-wa:link {
  color: #ffffff !important;
  font-weight: 800 !important;
  letter-spacing: .09em !important;
  text-shadow: 0 1px 0 rgba(0, 0, 0, .22);
  -webkit-font-smoothing: antialiased;
}
.btn-wa:hover { color: #ffffff !important; }
.btn-wa svg, .btn-wa .ico { color: #ffffff !important; fill: #ffffff; }
/* Ícone visível sobre o verde */
.btn-wa .ico path { fill: #ffffff !important; }

/* ============================================================
   /cidades/ sitemap HTML — índice geral + 27 UFs
   ============================================================ */

/* UF cards (visão rápida) */
.uf-card-grid { display: grid; grid-template-columns: 1fr; gap: 12px; margin-top: 18px; }
@media (min-width: 600px)  { .uf-card-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px)  { .uf-card-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1100px) { .uf-card-grid { grid-template-columns: repeat(4, 1fr); } }

.uf-card { display: flex; align-items: center; gap: 14px; padding: 16px 18px; background: #fff; border: 1px solid var(--line); border-radius: 4px; transition: transform .15s, box-shadow .15s, border-color .15s; text-decoration: none; }
.uf-card:hover { transform: translateY(-2px); box-shadow: 0 10px 24px -16px rgba(11,31,58,.25); border-color: var(--accent-line); text-decoration: none; }
.uf-card-uf { font-family: Fraunces, serif; font-weight: 600; font-size: 1.5rem; color: var(--navy); width: 44px; text-align: center; border-right: 1px solid var(--line); padding-right: 12px; }
.uf-card-body { flex: 1; min-width: 0; }
.uf-card-name { font-family: Fraunces, serif; font-weight: 600; font-size: 1rem; color: var(--navy); margin-bottom: 2px; }
.uf-card-meta { font-size: .78rem; color: var(--ink-3); letter-spacing: .01em; }

/* UF details (collapsible) */
.uf-details-list { display: flex; flex-direction: column; gap: 8px; margin-top: 18px; }
.uf-details { border: 1px solid var(--line); border-radius: 4px; background: #fff; transition: border-color .15s; }
.uf-details[open] { border-color: var(--accent-line); }
.uf-details summary { padding: 16px 22px; cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; }
.uf-details summary::-webkit-details-marker { display: none; }
.uf-details summary::after { content: "+"; color: var(--accent); font-weight: 700; font-size: 1.4rem; line-height: 1; transition: transform .2s; }
.uf-details[open] summary::after { content: "−"; }
.uf-details summary strong { font-family: Fraunces, serif; font-weight: 600; color: var(--navy); font-size: 1.1rem; }
.uf-count { font-size: .82rem; color: var(--ink-3); font-weight: 400; }
.uf-details-body { padding: 0 22px 24px; border-top: 1px solid var(--line-2); margin-top: 12px; padding-top: 18px; }
.uf-link { display: inline-block; color: var(--accent-ink); font-weight: 600; font-size: .9rem; margin-bottom: 12px; }
.uf-link:hover { color: var(--navy); }

/* Letras + listas de cidades */
.cities-letter-block { margin-bottom: 22px; }
.cities-letter { font-family: Fraunces, serif; font-weight: 600; color: var(--navy); font-size: 1.05rem; margin: 0 0 8px; padding-bottom: 4px; border-bottom: 1px solid var(--line-2); }
.cities-letter small { color: var(--ink-3); font-weight: 400; font-size: .82rem; margin-left: 6px; }
.uf-details-body .city-link-list,
.cities-letter-block .city-link-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 4px 22px; padding: 0; margin: 0; list-style: none; }
.uf-details-body .city-link-list li { padding: 3px 0; margin: 0; }
.cities-letter-block .city-link-list li { padding: 3px 0; margin: 0; }
.uf-details-body .city-link-list a { color: var(--accent-ink); font-size: .88rem; }
.cities-letter-block .city-link-list a { color: var(--accent-ink); font-size: .88rem; }
.uf-details-body .city-link-list a:hover,
.cities-letter-block .city-link-list a:hover { color: var(--navy); text-decoration: underline; }

/* ============================================================
   Credit bar — Anderson Melo SEO (destacada do footer principal)
   ============================================================ */
.credit-bar {
  background: #000;
  color: #fff;
  padding: 13px 0;
}
.credit-bar .wrap { display: flex; justify-content: center; align-items: center; }
.credit-bar p {
  margin: 0;
  font-size: 0.78rem;
  letter-spacing: 0.02em;
  text-align: center;
  color: #fff;
  white-space: nowrap;
}
.credit-bar .credit-link {
  color: #fff;
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px dotted rgba(255, 255, 255, 0.5);
  transition: border-color 0.15s, opacity 0.15s;
}
.credit-bar .credit-link:hover {
  opacity: 0.8;
  border-bottom-color: #fff;
}
@media (max-width: 600px) {
  .credit-bar p { white-space: normal; font-size: 0.72rem; }
}

/* ============================================================
   Scroll anchor: offset pro header sticky de 78px
   ============================================================ */
#lead-form,
.lead-form,
.dossier,
section[aria-labelledby] {
  scroll-margin-top: 96px;  /* header 78px + folga */
}

/* Visual feedback quando user clica num CTA → form ativa pulse */
@keyframes formHighlight {
  0%, 100% { box-shadow: 0 12px 28px -18px rgba(11, 31, 58, .15); }
  20%      { box-shadow: 0 0 0 4px rgba(54, 103, 201, .25), 0 12px 28px -18px rgba(11, 31, 58, .15); }
}
.lead-form.is-highlighted { animation: formHighlight 1.6s ease-out 1; }

/* ============================================================
   POPUP LEADGEN — exit-intent + scroll 25% + 45s fallback
   ============================================================ */
.popup-overlay {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.popup-overlay.is-open { display: flex; animation: popupFadeIn .25s ease-out; }
@keyframes popupFadeIn { from { opacity: 0; } to { opacity: 1; } }
.popup-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(8, 28, 46, 0.78);
  backdrop-filter: blur(4px);
}
.popup-card {
  position: relative;
  background: #fff;
  max-width: 540px;
  width: 100%;
  border-radius: 8px;
  box-shadow: 0 30px 80px -20px rgba(0, 0, 0, .5), 0 0 0 1px rgba(255, 255, 255, .06);
  overflow: hidden;
  animation: popupSlideUp .35s cubic-bezier(.2,.8,.2,1);
  max-height: calc(100vh - 40px);
  overflow-y: auto;
}
@keyframes popupSlideUp { from { transform: translateY(24px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.popup-close {
  position: absolute;
  top: 12px;
  right: 14px;
  width: 36px;
  height: 36px;
  background: transparent;
  border: 0;
  font-size: 1.6rem;
  font-weight: 300;
  line-height: 1;
  color: var(--ink-3);
  cursor: pointer;
  border-radius: 50%;
  transition: background .15s, color .15s;
  z-index: 2;
}
.popup-close:hover { background: var(--accent-soft); color: var(--navy); }
.popup-content { padding: 36px 32px 28px; }
.popup-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--accent-ink);
  margin-bottom: 14px;
}
.popup-eyebrow .dot {
  width: 8px;
  height: 8px;
  background: var(--wa);
  border-radius: 50%;
  animation: pulse 2s infinite;
}
.popup-content h2 {
  font-family: Fraunces, serif;
  font-size: clamp(1.4rem, 2.6vw, 1.85rem);
  font-weight: 600;
  color: var(--navy);
  line-height: 1.15;
  letter-spacing: -.015em;
  margin: 0 0 12px;
}
.popup-content h2 em { font-style: italic; color: var(--accent-ink); font-weight: 500; }
.popup-lead { font-size: .98rem; line-height: 1.55; color: var(--ink-2); margin-bottom: 22px; }

.popup-form .form-field { margin-bottom: 12px; }
.popup-form label { display: block; font-size: .72rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 4px; }
.popup-form input { width: 100%; padding: 12px 14px; font-family: "Spline Sans", sans-serif; font-size: .95rem; color: var(--ink); background: #fafafa; border: 1px solid var(--line); border-radius: 3px; transition: border-color .15s, background .15s; }
.popup-form input:focus { outline: 0; border-color: var(--accent); background: #fff; box-shadow: 0 0 0 3px rgba(54, 103, 201, .08); }
.popup-form-row { display: grid; gap: 12px; }
@media (min-width: 480px) { .popup-form-row { grid-template-columns: 1fr 1fr; gap: 12px; } }

.popup-form .btn { width: 100%; margin-top: 14px; padding: 16px 20px; font-size: .85rem; }
.popup-dismiss {
  display: block;
  width: 100%;
  margin-top: 10px;
  background: transparent;
  border: 0;
  color: var(--ink-3);
  font-size: .82rem;
  text-decoration: underline;
  cursor: pointer;
  padding: 10px;
  font-family: "Spline Sans", sans-serif;
}
.popup-dismiss:hover { color: var(--navy); }

/* Mobile: card ocupa quase tela inteira */
@media (max-width: 480px) {
  .popup-card { max-width: none; border-radius: 6px; }
  .popup-content { padding: 28px 22px 20px; }
}

/* ============================================================
   ENTITY SEO components — author box, comparison table, timeline,
   definitions, 5W1H, howto.
   ============================================================ */

/* Author box (NEEAT — Jason Barnard) */
.author-box .author-card {
  display: grid;
  grid-template-columns: 96px 1fr;
  gap: 20px;
  align-items: start;
  background: #fff;
  border: 1px solid var(--line, #E5E7EB);
  border-radius: 14px;
  padding: 24px;
  box-shadow: 0 4px 14px -8px rgba(11, 31, 58, .08);
  max-width: 920px;
}
.author-box .author-avatar { margin: 0; }
.author-box .author-avatar img {
  width: 96px; height: 96px;
  border-radius: 50%;
  object-fit: cover;
  background: #EEF4FA;
  display: block;
}
.author-box .author-name {
  margin: 0 0 6px;
  font-size: 1.05rem;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.author-box .author-role { font-weight: 400; font-size: .95rem; color: var(--ink-3, #6B7280); }
.author-box .author-bio { margin: 8px 0 10px; line-height: 1.55; color: var(--ink, #1F2937); }
.author-box .author-meta { margin: 0; font-size: .9rem; color: var(--ink-3, #6B7280); }
.author-box .author-meta a { color: var(--navy, #1E3A5F); text-decoration: underline; text-underline-offset: 2px; }
@media (max-width: 640px) {
  .author-box .author-card { grid-template-columns: 64px 1fr; padding: 18px; }
  .author-box .author-avatar img { width: 64px; height: 64px; }
}

/* author hero avatar (página de autor) */
.author-hero-photo{float:right;margin:0 0 16px 24px}
.author-hero-photo img{width:160px;height:160px;border-radius:18px;object-fit:cover;border:4px solid var(--accent,#10B981);box-shadow:0 8px 24px rgba(16,24,40,.12)}
.author-hero-initials{display:flex;align-items:center;justify-content:center;width:160px;height:160px;border-radius:18px;background:var(--primary,#1E3A5F);border:4px solid var(--accent,#10B981)}
.author-hero-initials span{font-family:var(--font-display,'Fraunces',serif);font-size:3.4rem;font-weight:700;color:#fff;letter-spacing:.02em}
@media (max-width:640px){.author-hero-photo,.author-hero-initials{float:none;margin:0 auto 18px}}

/* Comparison table (atributo coverage — Koray) */
.table-wrap { overflow-x: auto; margin: 18px 0; }
.comparison-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .95rem;
  background: #fff;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid var(--line, #E5E7EB);
}
.comparison-table caption { caption-side: top; text-align: left; font-size: .9rem; color: var(--ink-3, #6B7280); padding: 6px 0; }
.comparison-table thead { background: var(--navy, #1E3A5F); color: #fff; }
.comparison-table th, .comparison-table td {
  padding: 12px 14px;
  text-align: left;
  border-bottom: 1px solid var(--line, #E5E7EB);
  vertical-align: top;
}
.comparison-table tbody th { background: #F8FAFC; font-weight: 600; }
.comparison-table tbody tr:last-child th, .comparison-table tbody tr:last-child td { border-bottom: none; }
.comparison-table mark { background: #FEF3C7; padding: 0 4px; border-radius: 3px; }

/* Timeline regulatória */
.timeline {
  list-style: none;
  padding: 0;
  margin: 18px 0 0;
  border-left: 2px solid var(--navy, #1E3A5F);
}
.timeline li { position: relative; padding: 8px 0 18px 24px; }
.timeline li::before {
  content: "";
  position: absolute;
  left: -7px; top: 14px;
  width: 12px; height: 12px;
  background: var(--accent, #10B981);
  border: 2px solid #fff;
  border-radius: 50%;
  box-shadow: 0 0 0 1px var(--navy, #1E3A5F);
}
.timeline-date { display: block; font-weight: 700; font-size: 1rem; color: var(--navy, #1E3A5F); margin-bottom: 4px; }
.timeline-desc { margin: 0; line-height: 1.55; color: var(--ink, #1F2937); }

/* Definitions <dl> (LLM extraction) */
.definitions {
  display: grid;
  grid-template-columns: max-content 1fr;
  column-gap: 18px;
  row-gap: 10px;
  margin: 18px 0 0;
}
.definitions dt { font-weight: 700; color: var(--navy, #1E3A5F); white-space: nowrap; }
.definitions dt dfn { font-style: normal; text-decoration: underline dotted; text-underline-offset: 3px; }
.definitions dd { margin: 0; line-height: 1.55; color: var(--ink, #1F2937); }
@media (max-width: 640px) {
  .definitions { grid-template-columns: 1fr; row-gap: 4px; }
  .definitions dd { margin-bottom: 8px; }
}

/* 5W1H block (Information Gain) */
.five-w-one-h {
  display: grid;
  grid-template-columns: minmax(160px, max-content) 1fr;
  column-gap: 22px;
  row-gap: 14px;
  margin: 18px 0 24px;
  padding: 22px;
  background: #F8FAFC;
  border-left: 4px solid var(--navy, #1E3A5F);
  border-radius: 6px;
}
.five-w-one-h dt { color: var(--navy, #1E3A5F); align-self: start; }
.five-w-one-h dd { margin: 0; line-height: 1.6; color: var(--ink, #1F2937); }
@media (max-width: 640px) {
  .five-w-one-h { grid-template-columns: 1fr; row-gap: 6px; padding: 16px; }
  .five-w-one-h dd { margin-bottom: 10px; }
}
.sources-label { margin: 18px 0 6px; font-weight: 700; color: var(--navy, #1E3A5F); font-size: .95rem; }
.sources { margin: 0 0 0 18px; padding: 0; font-size: .9rem; }
.sources li { margin: 4px 0; }
.sources cite { font-style: normal; }
.sources a { color: var(--navy, #1E3A5F); text-decoration: underline; text-underline-offset: 2px; }

/* HowTo list */
.howto { list-style: none; padding: 0; margin: 18px 0 0; counter-reset: howto; }
.howto > li {
  counter-increment: howto;
  position: relative;
  padding: 18px 18px 18px 64px;
  margin-bottom: 12px;
  background: #fff;
  border: 1px solid var(--line, #E5E7EB);
  border-radius: 10px;
}
.howto > li::before {
  content: counter(howto);
  position: absolute;
  left: 18px; top: 18px;
  width: 34px; height: 34px;
  background: var(--navy, #1E3A5F);
  color: #fff;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-weight: 700;
  font-size: 1rem;
}
.howto h3 { margin: 0 0 6px; font-size: 1.1rem; color: var(--navy, #1E3A5F); }
.howto p { margin: 0; line-height: 1.55; color: var(--ink, #1F2937); }


/* ============================================================
   FORM HIGHLIGHT — override forte (sobrescreve a versão sutil)
   Dispara quando user clica num CTA "#lead-form".
   ============================================================ */
@keyframes formHighlightStrong {
  0%   { box-shadow: 0 0 0 0 rgba(54,103,201,.55), 0 12px 28px -18px rgba(11,31,58,.15); border-color: var(--accent); }
  30%  { box-shadow: 0 0 0 6px rgba(54,103,201,.28), 0 16px 36px -16px rgba(11,31,58,.25); border-color: var(--accent); transform: scale(1.015); }
  60%  { box-shadow: 0 0 0 3px rgba(54,103,201,.18), 0 12px 28px -18px rgba(11,31,58,.15); border-color: var(--accent); transform: scale(1); }
  100% { box-shadow: 0 12px 28px -18px rgba(11,31,58,.15); border-color: var(--line); transform: scale(1); }
}
.lead-form.is-highlighted {
  animation: formHighlightStrong 1.5s cubic-bezier(.2,.8,.2,1) 1 !important;
  border-color: var(--accent) !important;
  position: relative;
  z-index: 5;
}
@media (prefers-reduced-motion: reduce) {
  .lead-form.is-highlighted { animation: none !important; box-shadow: 0 0 0 4px rgba(54,103,201,.3) !important; }
}


/* ============================================================
   Blog hub — /blog/ (full-width, cards + filtros + paginação)
   ============================================================ */
.hero-blog { padding-bottom: 0; }
.hero-blog .wrap { display: block; }
.hero-blog .lead { max-width: 760px; }

.blog-hub { background: var(--paper); }
.blog-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 36px; }
.blog-hub-h2 { font-size: 1.5rem; margin: 0; display: flex; align-items: center; gap: 12px; }
.blog-count { font-family: "Spline Sans", sans-serif; font-size: .82rem; font-weight: 600; color: var(--accent-ink); background: var(--accent-soft); border-radius: 999px; padding: 3px 11px; }

.blog-filters { display: flex; flex-wrap: wrap; gap: 8px; }
.blog-filter { font-family: "Spline Sans", sans-serif; font-size: .86rem; font-weight: 600; color: var(--ink-2); background: #fff; border: 1px solid var(--line); border-radius: 999px; padding: 8px 16px; cursor: pointer; transition: all .15s; }
.blog-filter:hover { border-color: var(--accent-line); color: var(--navy); }
.blog-filter.is-active { background: var(--navy); border-color: var(--navy); color: #fff; }

.blog-grid { display: grid; grid-template-columns: 1fr; gap: 28px; }
@media (min-width: 640px) { .blog-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (min-width: 1000px) { .blog-grid { grid-template-columns: repeat(3, minmax(0,1fr)); } }

.blog-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; transition: transform .18s, box-shadow .18s, border-color .18s; }
.blog-card:hover { transform: translateY(-3px); box-shadow: 0 18px 38px -22px rgba(11,31,58,.4); border-color: var(--accent-line); }
.blog-card-media { position: relative; display: block; aspect-ratio: 3 / 2; overflow: hidden; background: var(--accent-soft); }
.blog-card-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.blog-card:hover .blog-card-media img { transform: scale(1.04); }
.blog-card-cat { position: absolute; top: 12px; left: 12px; font-family: "Spline Sans", sans-serif; font-size: .68rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #fff; background: rgba(11,31,58,.82); backdrop-filter: blur(4px); padding: 5px 11px; border-radius: 999px; }
.blog-card-body { display: flex; flex-direction: column; flex: 1; padding: 22px 22px 24px; }
.blog-card-meta { font-size: .78rem; color: var(--ink-3); letter-spacing: .02em; margin: 0 0 10px; }
.blog-card-title { font-family: "Fraunces", serif; font-size: 1.2rem; line-height: 1.25; font-weight: 600; margin: 0 0 10px; }
.blog-card-title a { color: var(--navy); text-decoration: none; }
.blog-card-title a:hover { color: var(--accent-ink); }
.blog-card-desc { font-size: .94rem; color: var(--ink-2); line-height: 1.6; margin: 0 0 18px; flex: 1; }
.blog-card-link { display: inline-flex; align-items: center; gap: 7px; font-family: "Spline Sans", sans-serif; font-size: .82rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--accent-ink); text-decoration: none; margin-top: auto; }
.blog-card-link svg { width: 16px; height: 16px; transition: transform .15s; }
.blog-card-link:hover svg { transform: translateX(3px); }

.blog-empty { text-align: center; color: var(--ink-2); padding: 48px 0; font-size: 1.02rem; }

.blog-pagination { display: flex; justify-content: center; gap: 8px; margin-top: 48px; }
.blog-page-btn { min-width: 40px; height: 40px; padding: 0 12px; font-family: "Spline Sans", sans-serif; font-weight: 600; font-size: .92rem; color: var(--navy); background: #fff; border: 1px solid var(--line); border-radius: 6px; cursor: pointer; transition: all .15s; }
.blog-page-btn:hover:not(:disabled) { border-color: var(--accent); color: var(--accent-ink); }
.blog-page-btn.is-active { background: var(--navy); border-color: var(--navy); color: #fff; }
.blog-page-btn:disabled { opacity: .4; cursor: not-allowed; }

/* ============================================================
   Artigo de blog (blog_post) — hero, TOC scroll-spy, rail, related
   ============================================================ */
.art-hero { background: var(--navy); color: #fff; padding: 56px 0 48px; position: relative; overflow: hidden; }
.art-hero::before { content: ""; position: absolute; inset: 0; background: radial-gradient(70% 120% at 85% 0, rgba(120,150,200,.22), transparent 60%); pointer-events: none; }
.art-hero .wrap { position: relative; z-index: 1; max-width: 860px; }
.art-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: .82rem; color: rgba(205,216,236,.7); margin-bottom: 22px; }
.art-breadcrumb a { color: rgba(205,216,236,.85); text-decoration: none; }
.art-breadcrumb a:hover { color: #fff; }
.art-breadcrumb span[aria-current] { color: #fff; }
.art-hero-cat { display: inline-block; font-family: "Spline Sans", sans-serif; font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--navy); background: var(--gold); padding: 5px 12px; border-radius: 999px; margin-bottom: 18px; }
.art-hero h1 { color: #fff; font-size: clamp(1.9rem, 4vw, 2.9rem); line-height: 1.1; margin: 0 0 18px; }
.art-hero-desc { font-size: 1.15rem; line-height: 1.6; color: #cdd8ec; max-width: 680px; margin: 0 0 26px; }
.art-hero-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; font-size: .9rem; color: rgba(205,216,236,.8); }
.art-hero-meta time, .art-hero-meta b { color: #fff; }
.art-hero-author { display: inline-flex; align-items: center; gap: 9px; }
.art-hero-av { width: 30px; height: 30px; border-radius: 50%; background: var(--gold); color: var(--navy); display: grid; place-items: center; font-family: "Fraunces", serif; font-weight: 600; font-size: .82rem; }
img.art-hero-av { object-fit: cover; background: none; }
.art-hero-author a { color: inherit; text-decoration: none; }
.art-hero-author a:hover { text-decoration: underline; text-underline-offset: 2px; }
.art-hero-sep { color: rgba(205,216,236,.4); }

.art-shell { display: grid; grid-template-columns: minmax(0,1fr); gap: 48px; padding-top: 56px; padding-bottom: 56px; align-items: start; }
@media (min-width: 1000px) { .art-shell { grid-template-columns: minmax(0,1fr) 340px; } }

.art-body { min-width: 0; font-size: 1.06rem; line-height: 1.78; color: var(--ink); }
.art-feat { margin: 0 0 32px; border-radius: 10px; overflow: hidden; }
.art-feat img { width: 100%; height: auto; display: block; aspect-ratio: 3/2; object-fit: cover; }
.art-lide { font-size: 1.22rem; line-height: 1.6; color: var(--navy); font-family: "Fraunces", serif; font-weight: 400; margin: 0 0 26px; }
.art-body h2 { font-size: 1.6rem; margin: 44px 0 16px; scroll-margin-top: 90px; }
.art-body h3 { font-size: 1.22rem; margin: 30px 0 12px; }
.art-body p { margin: 0 0 18px; }
.art-body a { color: var(--accent-ink); font-weight: 600; text-decoration: underline; text-decoration-color: var(--accent-line); text-underline-offset: 2px; }
.art-body a:hover { text-decoration-color: var(--accent); }
.art-body ul, .art-body ol { margin: 0 0 22px; padding-left: 22px; }
.art-body li { margin-bottom: 9px; }
.art-body table { width: 100%; border-collapse: collapse; margin: 0 0 26px; font-size: .98rem; }
.art-body th, .art-body td { text-align: left; padding: 13px 16px; border-bottom: 1px solid var(--line); }
.art-body thead th { background: var(--accent-soft); color: var(--navy); font-family: "Spline Sans", sans-serif; }
.art-body tbody th { font-weight: 600; color: var(--navy); white-space: nowrap; }
.art-body blockquote { margin: 32px 0; padding: 24px 28px; background: var(--navy); color: #fff; border-radius: 10px; font-family: "Fraunces", serif; font-size: 1.3rem; line-height: 1.45; position: relative; }
.art-body blockquote::before { content: "\201C"; position: absolute; top: 2px; left: 16px; font-family: "Fraunces", serif; font-size: 3.4rem; color: var(--gold); opacity: .5; }
.art-body blockquote { padding-left: 56px; }

/* FAQ dentro do artigo (escopado — vence a regra genérica .faq{display:flex}) */
.art-body .faq { display: block; gap: 0; border-top: 1px solid var(--line); margin-top: 8px; }
.art-body .faq details { border: 0; border-bottom: 1px solid var(--line); border-radius: 0; padding: 0; background: transparent; }
.art-body .faq summary::after, .art-body .faq details[open] summary::after { content: none; }
.art-body .faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 22px 4px; font-family: "Fraunces", serif; font-weight: 500; font-size: 1.12rem; color: var(--navy); }
.art-body .faq summary::-webkit-details-marker { display: none; }
.art-body .faq summary .pm { flex: 0 0 22px; width: 22px; height: 22px; position: relative; transition: transform .25s; }
.art-body .faq summary .pm::before, .art-body .faq summary .pm::after { content: ""; position: absolute; background: var(--accent); }
.art-body .faq summary .pm::before { top: 10px; left: 2px; right: 2px; height: 2px; }
.art-body .faq summary .pm::after { left: 10px; top: 2px; bottom: 2px; width: 2px; }
.art-body .faq details[open] summary .pm { transform: rotate(135deg); }
.art-body .faq .a { padding: 0 4px 22px; color: var(--ink-2); font-size: 1rem; }
.art-body .faq .a p { margin: 0; }

/* Related no meio do corpo */
.art-related { margin: 40px 0; padding: 28px; background: var(--bg-soft, #f8fafc); border: 1px solid var(--line); border-radius: 12px; }
.art-related-eyebrow { font-family: "Spline Sans", sans-serif; font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--accent-ink); margin: 0 0 16px; }
.art-related-grid { display: grid; grid-template-columns: 1fr; gap: 16px; }
@media (min-width: 620px) { .art-related-grid { grid-template-columns: repeat(3, minmax(0,1fr)); } }
.rel-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; text-decoration: none; transition: transform .15s, box-shadow .15s, border-color .15s; }
.rel-card:hover { transform: translateY(-2px); box-shadow: 0 12px 26px -18px rgba(11,31,58,.4); border-color: var(--accent-line); }
.rel-card-media { display: block; aspect-ratio: 3/2; overflow: hidden; background: var(--accent-soft); }
.rel-card-media img { width: 100%; height: 100%; object-fit: cover; }
.rel-card-body { padding: 14px 16px 18px; }
.rel-card-cat { display: block; font-family: "Spline Sans", sans-serif; font-size: .66rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--accent-ink); margin-bottom: 6px; }
.rel-card-title { font-family: "Fraunces", serif; font-weight: 600; font-size: 1rem; line-height: 1.3; color: var(--navy); }

/* Author box (EEAT) */
.art-author { display: flex; gap: 18px; align-items: flex-start; margin: 44px 0 0; padding: 26px; background: var(--accent-soft); border-radius: 12px; }
.art-author-av { flex: 0 0 54px; width: 54px; height: 54px; border-radius: 50%; background: var(--navy); color: var(--gold); display: grid; place-items: center; font-family: "Fraunces", serif; font-weight: 600; font-size: 1.2rem; }
img.art-author-av { object-fit: cover; background: none; }
.art-author-name a { color: inherit; text-decoration: none; }
.art-author-name a:hover { text-decoration: underline; text-underline-offset: 2px; }
.art-author-role { font-family: "Spline Sans", sans-serif; font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--accent-ink); margin: 0 0 3px; }
.art-author-name { font-family: "Fraunces", serif; font-size: 1.2rem; font-weight: 600; color: var(--navy); margin: 0 0 8px; }
.art-author-bio { font-size: .94rem; line-height: 1.6; color: var(--ink-2); margin: 0 0 10px; }
.art-author-link { font-family: "Spline Sans", sans-serif; font-size: .84rem; font-weight: 700; color: var(--accent-ink); text-decoration: none; }
.art-author-link:hover { text-decoration: underline; }

/* Prev/Next */
.art-nav { display: grid; grid-template-columns: 1fr; gap: 14px; margin-top: 36px; }
@media (min-width: 600px) { .art-nav { grid-template-columns: 1fr 1fr; } }
.art-nav-link { display: flex; flex-direction: column; gap: 6px; padding: 18px 20px; border: 1px solid var(--line); border-radius: 10px; text-decoration: none; transition: border-color .15s, background .15s; }
.art-nav-link:not(.art-nav-empty):hover { border-color: var(--accent-line); background: var(--accent-soft); }
.art-nav-next { text-align: right; align-items: flex-end; }
.art-nav-empty { border: none; }
.art-nav-dir { font-family: "Spline Sans", sans-serif; font-size: .76rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--accent-ink); }
.art-nav-title { font-family: "Fraunces", serif; font-weight: 600; font-size: 1.02rem; color: var(--navy); line-height: 1.3; }

/* Rail (aside): TOC scroll-spy + lead capture */
.art-rail { display: flex; flex-direction: column; gap: 24px; }
@media (min-width: 1000px) { .art-rail { position: sticky; top: 90px; align-self: start; } }
.toc { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 22px 24px; }
.toc-title { font-family: "Spline Sans", sans-serif; font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); margin: 0 0 14px; }
.toc a { display: block; font-size: .92rem; line-height: 1.4; color: var(--ink-2); text-decoration: none; padding: 7px 0 7px 14px; border-left: 2px solid var(--line); transition: color .15s, border-color .15s; }
.toc a:hover { color: var(--navy); }
.toc a.is-active { color: var(--accent-ink); border-left-color: var(--accent); font-weight: 600; }

.art-cta-card { background: var(--navy); color: #fff; border-radius: 14px; padding: 26px 24px; }
.art-cta-tag { display: inline-flex; align-items: center; gap: 7px; font-family: "Spline Sans", sans-serif; font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--gold); margin-bottom: 12px; }
.art-cta-tag .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--gold); }
.art-cta-title { color: #fff; font-size: 1.32rem; line-height: 1.2; margin: 0 0 8px; }
.art-cta-desc { font-size: .92rem; line-height: 1.55; color: #cdd8ec; margin: 0 0 18px; }
.art-cta-form { display: flex; flex-direction: column; gap: 10px; }
.art-cta-form .form-field { display: flex; flex-direction: column; gap: 4px; }
.art-cta-form label { font-size: .76rem; font-weight: 600; color: rgba(205,216,236,.8); }
.art-cta-form input { width: 100%; padding: 11px 13px; border: 1px solid rgba(255,255,255,.18); border-radius: 7px; background: rgba(255,255,255,.06); color: #fff; font-size: .92rem; }
.art-cta-form input::placeholder { color: rgba(205,216,236,.5); }
.art-cta-form input:focus { outline: none; border-color: var(--gold); background: rgba(255,255,255,.1); }
.art-cta-form .btn { margin-top: 4px; width: 100%; justify-content: center; }
.art-cta-list { list-style: none; padding: 18px 0 0; margin: 16px 0 0; border-top: 1px solid rgba(255,255,255,.1); display: flex; flex-direction: column; gap: 10px; }
.art-cta-list li { display: flex; align-items: center; gap: 10px; font-size: .86rem; color: #cdd8ec; }
.art-cta-list svg { flex: 0 0 16px; width: 16px; height: 16px; color: var(--gold); }
.art-cta-alt { display: block; margin-top: 16px; text-align: center; font-family: "Spline Sans", sans-serif; font-size: .84rem; font-weight: 600; color: var(--gold); text-decoration: none; }
.art-cta-alt:hover { text-decoration: underline; }

/* ============================================================
   Acessibilidade + refinamento mobile
   ============================================================ */
/* Skip-link: oculto até receber foco via teclado */
.skip-link { position: absolute; left: 12px; top: -48px; z-index: 999; background: var(--navy); color: #fff; padding: 10px 18px; border-radius: 0 0 8px 8px; font-family: "Spline Sans", sans-serif; font-weight: 600; font-size: .9rem; text-decoration: none; transition: top .18s; }
.skip-link:focus { top: 0; outline: 3px solid var(--gold); outline-offset: 2px; }

/* Foco visível consistente (WCAG 2.4.7) */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible {
  outline: 3px solid var(--accent); outline-offset: 2px; border-radius: 3px;
}

/* Artigo no mobile: no <1000px o rail vem ANTES do corpo longo, para a captura
   de lead e o índice ficarem acessíveis sem rolar o artigo inteiro. */
@media (max-width: 999px) {
  .art-shell { display: flex; flex-direction: column; gap: 32px; }
  .art-rail { order: -1; }
  .art-rail .toc { display: none; }   /* TOC longo atrapalha no topo do mobile; sumário fica no fluxo do conteúdo */
  .art-cta-card { order: -1; }
}

/* Touch targets ≥44px (WCAG 2.5.5) em controles do blog */
@media (max-width: 700px) {
  .blog-filter { padding: 11px 18px; }
  .blog-page-btn { min-width: 44px; height: 44px; }
  .art-hero { padding: 40px 0 36px; }
  .art-body { font-size: 1rem; }
  .art-body blockquote { font-size: 1.12rem; padding: 20px 22px 20px 48px; }
}
