/* ===========================================================
   SEGURO DE MARCAS — Design System
   =========================================================== */

:root {
  /* Identidade */
  --brand: #44409B;
  --brand-500: #514CB4;
  --brand-600: #3A3688;
  --brand-700: #2C2A69;
  --brand-800: #1E1C4A;
  --brand-900: #14122F;
  --brand-tint: #EEEDF8;

  --gold: #F4B400;
  --gold-600: #D89E00;
  --gold-tint: #FFF6DC;

  --wa: #25D366;
  --wa-600: #1EB955;

  --danger: #D92D20;
  --danger-tint: #FEF0EF;
  --success: #067647;

  --ink: #131130;
  --body: #4B4A63;
  --muted: #74738C;
  --line: #E7E6F1;
  --line-soft: #F1F0F8;
  --white: #FFFFFF;
  --bg-soft: #F7F7FC;

  --font-display: 'Sora', system-ui, sans-serif;
  --font-body: 'Inter', system-ui, sans-serif;

  --r-sm: 10px;
  --r-md: 14px;
  --r-lg: 20px;
  --r-xl: 28px;
  --r-full: 999px;

  --shadow-sm: 0 1px 2px rgba(19, 17, 48, .06), 0 1px 3px rgba(19, 17, 48, .05);
  --shadow-md: 0 4px 12px rgba(19, 17, 48, .07), 0 2px 4px rgba(19, 17, 48, .04);
  --shadow-lg: 0 18px 40px rgba(19, 17, 48, .12), 0 4px 12px rgba(19, 17, 48, .06);
  --shadow-xl: 0 32px 70px rgba(12, 10, 40, .28), 0 10px 24px rgba(12, 10, 40, .16);

  --header-h: 84px;
  --container: 1200px;
  --ease: cubic-bezier(.22, 1, .36, 1);

  /* Ritmo dos elementos que se movem sozinhos (bem lentos, a pedido) */
  --giro-selo: 10s;
  --flutuar: 5s;
  --flutuar-cert: 5s;
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }

html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-h) + 16px);
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.65;
  color: var(--body);
  background: var(--white);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

img, svg, video { display: block; max-width: 100%; height: auto; }

/* O atributo hidden deve vencer qualquer display definido por classe */
[hidden] { display: none !important; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; background: none; border: 0; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; padding: 0; }

h1, h2, h3, h4 {
  font-family: var(--font-display);
  color: var(--ink);
  line-height: 1.14;
  letter-spacing: -.025em;
  font-weight: 700;
  text-wrap: balance;
}

p { text-wrap: pretty; }

:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: 3px;
  border-radius: 4px;
}

::selection { background: var(--brand); color: #fff; }

/* ---------- Layout ---------- */
.container {
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: 20px;
}

.section { padding: clamp(60px, 8vw, 104px) 0; }
.section--soft { background: var(--bg-soft); }
.section--tight { padding: clamp(48px, 6vw, 72px) 0; }

.section-head {
  max-width: 830px;
  margin: 0 auto clamp(36px, 5vw, 56px);
  text-align: center;
}

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-body);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--brand);
  background: var(--brand-tint);
  padding: 7px 14px;
  border-radius: var(--r-full);
  margin-bottom: 18px;
}

.eyebrow--gold { color: #7A5A00; background: var(--gold-tint); }

.section-head h2 {
  font-size: clamp(1.75rem, 3.6vw, 2.6rem);
  margin-bottom: 14px;
}

.section-head p {
  font-size: clamp(1rem, 1.6vw, 1.125rem);
  color: var(--muted);
}

.text-brand { color: var(--brand); }
.text-gold { color: var(--gold-600); }

.hl {
  background: linear-gradient(to top, rgba(244, 180, 0, .38) 0 38%, transparent 38%);
  padding: 0 2px;
}

/* ---------- Botões ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: .975rem;
  line-height: 1;
  padding: 15px 26px;
  border-radius: var(--r-full);
  border: 1.5px solid transparent;
  transition: transform .2s var(--ease), box-shadow .25s var(--ease), background-color .2s, color .2s, border-color .2s;
  white-space: nowrap;
  text-align: center;
}

.btn svg { flex: none; }
.btn:hover { transform: translateY(-2px); }
.btn:active { transform: translateY(0); }

.btn--primary {
  background: var(--brand);
  color: #fff;
  box-shadow: 0 8px 22px rgba(68, 64, 155, .32);
}
.btn--primary:hover { background: var(--brand-600); box-shadow: 0 14px 30px rgba(68, 64, 155, .4); }

.btn--gold {
  background: var(--gold);
  color: #2A1F00;
  box-shadow: 0 8px 22px rgba(244, 180, 0, .38);
}
.btn--gold:hover { background: var(--gold-600); box-shadow: 0 14px 30px rgba(244, 180, 0, .45); }

.btn--wa {
  background: var(--wa);
  color: #04331A;
  box-shadow: 0 8px 22px rgba(37, 211, 102, .32);
}
.btn--wa:hover { background: var(--wa-600); color: #fff; box-shadow: 0 14px 30px rgba(37, 211, 102, .42); }

.btn--ghost {
  background: transparent;
  color: var(--ink);
  border-color: var(--line);
}
.btn--ghost:hover { border-color: var(--brand); color: var(--brand); background: var(--brand-tint); }

.btn--ghost-light {
  background: rgba(255, 255, 255, .08);
  color: #fff;
  border-color: rgba(255, 255, 255, .28);
  backdrop-filter: blur(6px);
}
.btn--ghost-light:hover { background: rgba(255, 255, 255, .16); border-color: rgba(255, 255, 255, .5); }

.btn--lg { padding: 18px 34px; font-size: 1.05rem; }
.btn--block { width: 100%; }

/* ===========================================================
   HEADER
   =========================================================== */
.topbar {
  background: var(--brand-900);
  color: rgba(255, 255, 255, .78);
  font-size: .8rem;
  border-bottom: 1px solid rgba(255, 255, 255, .08);
}

.topbar__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 28px;
  min-height: 38px;
  flex-wrap: wrap;
  padding-block: 7px;
}

.topbar__item { display: inline-flex; align-items: center; gap: 7px; }
.topbar__item svg { color: var(--gold); flex: none; }
.topbar__item strong { color: #fff; font-weight: 600; }

.header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(255, 255, 255, .88);
  backdrop-filter: blur(14px) saturate(1.4);
  -webkit-backdrop-filter: blur(14px) saturate(1.4);
  border-bottom: 1px solid var(--line-soft);
  transition: background-color .3s, box-shadow .3s;
}

.header.is-stuck { background: rgba(255, 255, 255, .97); box-shadow: 0 10px 30px rgba(19, 17, 48, .08); }

.header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-height: var(--header-h);
}

.brand { display: flex; align-items: center; gap: 11px; flex: none; }
.brand img { height: 52px; width: auto; }

.nav { display: flex; align-items: center; gap: 4px; }

.nav a {
  position: relative;
  padding: 9px 13px;
  font-size: .9rem;
  font-weight: 500;
  color: var(--body);
  border-radius: var(--r-sm);
  white-space: nowrap;
  transition: color .2s, background-color .2s;
}

.nav a:hover { color: var(--ink); background: var(--bg-soft); }

.nav a.is-active { color: var(--ink); font-weight: 600; }
.nav a.is-active::after {
  content: '';
  position: absolute;
  left: 14px;
  right: 14px;
  bottom: 2px;
  height: 2px;
  background: var(--brand);
  border-radius: 2px;
}

.header__cta { display: flex; align-items: center; gap: 10px; flex: none; }
.header__cta .btn { padding: 12px 20px; font-size: .9rem; }

.burger {
  display: none;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  border-radius: var(--r-sm);
  color: var(--ink);
  border: 1px solid var(--line);
}
.burger:hover { background: var(--bg-soft); }

/* ===========================================================
   HERO — topo claro, contraste preto + azul
   =========================================================== */
.hero {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background:
    radial-gradient(55% 70% at 86% 42%, rgba(68, 64, 155, .14), transparent 70%),
    radial-gradient(38% 50% at 0% 0%, rgba(68, 64, 155, .07), transparent 70%),
    linear-gradient(180deg, #fff 0%, var(--bg-soft) 100%);
}

/* Malha pontilhada discreta, que desaparece nas bordas */
.hero::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image: radial-gradient(rgba(68, 64, 155, .2) 1px, transparent 1.5px);
  background-size: 26px 26px;
  -webkit-mask-image: radial-gradient(62% 75% at 26% 40%, #000, transparent 78%);
  mask-image: radial-gradient(62% 75% at 26% 40%, #000, transparent 78%);
  opacity: .5;
}

.hero__grade {
  display: grid;
  grid-template-columns: minmax(0, 1.14fr) minmax(0, .86fr);
  gap: clamp(36px, 4vw, 64px);
  align-items: center;
  padding-block: clamp(48px, 6vw, 90px) clamp(60px, 7vw, 104px);
}

.hero__texto { max-width: 700px; }

.hero__flag {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: var(--shadow-sm);
  color: var(--brand-700);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: 8px 16px 8px 13px;
  border-radius: var(--r-full);
  margin-bottom: 26px;
}

.hero__flag .pulse {
  flex: none;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--brand);
  box-shadow: 0 0 0 0 rgba(68, 64, 155, .55);
  animation: pulse 2.4s infinite;
}

@keyframes pulse {
  70% { box-shadow: 0 0 0 9px rgba(68, 64, 155, 0); }
  100% { box-shadow: 0 0 0 0 rgba(68, 64, 155, 0); }
}

.hero h1 {
  color: var(--ink);
  font-size: clamp(2.35rem, 4.4vw, 3.55rem);
  font-weight: 800;
  line-height: 1.04;
  letter-spacing: -.045em;
  margin-bottom: 22px;
}

.hero h1 em {
  font-style: normal;
  color: var(--brand);
  white-space: nowrap;
  background: linear-gradient(to top, rgba(68, 64, 155, .13) 0 .26em, transparent .26em);
  padding-inline: .04em;
}

.hero h1 sup {
  position: relative;
  top: -1.05em;
  font-size: .36em;
  font-weight: 700;
  line-height: 0;
  vertical-align: baseline;
  margin-left: .06em;
}

.hero__lead {
  font-size: clamp(1.04rem, 1.6vw, 1.2rem);
  color: var(--body);
  max-width: 545px;
  margin-bottom: 32px;
}
.hero__lead strong { color: var(--ink); font-weight: 600; }

.hero__acoes { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 40px; }
.hero__acoes .btn--primary { box-shadow: 0 16px 36px rgba(68, 64, 155, .38); }
.hero__acoes .btn--ghost { background: #fff; }
.hero__acoes .btn--ghost:hover { background: var(--brand-tint); }

.hero__confianca {
  display: flex;
  align-items: center;
  gap: 16px 20px;
  flex-wrap: wrap;
  padding-top: 26px;
  border-top: 1px solid var(--line);
  font-size: .84rem;
  color: var(--muted);
  line-height: 1.4;
}
.hero__confianca b { display: block; color: var(--ink); font-weight: 600; font-size: .92rem; }

.hero__equipe { display: flex; align-items: center; gap: 12px; }
.hero__avatares { display: flex; flex: none; }
.hero__avatares img {
  width: 83px;
  height: 83px;
  border-radius: 50%;
  object-fit: cover;
  border: 3px solid #fff;
  box-shadow: var(--shadow-md);
}
.hero__avatares img + img { margin-left: -24px; }
.nw { white-space: nowrap; }
.hero__divisor { flex: none; width: 1px; height: 34px; background: var(--line); }
@media (min-width: 1081px) {
  .hero__acoes { flex-wrap: nowrap; }
  .hero__confianca { flex-wrap: nowrap; }
  .hero__equipe { flex: none; }
  .hero__local { flex: 1; min-width: 0; }
}
/* --- CTA amarelo com setas e raio --- */
.btn--cta { text-transform: uppercase; letter-spacing: .01em; font-weight: 800; gap: 10px; padding-inline: 28px; animation: ctaPulso 2.6s ease-out infinite; }
.btn__raio { transition: transform .3s var(--ease); }
.btn--cta:hover .btn__raio { transform: scale(1.2) rotate(-8deg); }
.btn__setas { display: inline-flex; margin-right: 2px; }
.btn__setas i {
  width: 9px; height: 9px;
  border-top: 2.6px solid currentColor;
  border-right: 2.6px solid currentColor;
  transform: rotate(45deg);
  margin-right: 2px;
  opacity: .2;
  animation: setaCta 1.2s infinite;
}
.btn__setas i:nth-child(2) { animation-delay: .2s; }
.btn__setas i:nth-child(3) { animation-delay: .4s; }
@keyframes setaCta { 0%, 100% { opacity: .2; } 40% { opacity: 1; } }
@keyframes ctaPulso {
  0% { box-shadow: 0 10px 26px rgba(244, 180, 0, .4), 0 0 0 0 rgba(244, 180, 0, .5); }
  70%, 100% { box-shadow: 0 10px 26px rgba(244, 180, 0, .4), 0 0 0 16px rgba(244, 180, 0, 0); }
}

/* --- Selo 100% online --- */
.hero__online {
  display: inline-flex; align-items: center; gap: 12px;
  padding: 9px 18px 9px 14px;
  border-radius: var(--r-full);
  white-space: nowrap;
  background: #fff;
  border: 1px solid var(--line);
  font-size: .8rem; color: var(--muted); line-height: 1.25;
}
.hero__online b { display: block; font-family: var(--font-display); font-size: 1rem; color: var(--ink); text-transform: uppercase; letter-spacing: .02em; }
.hero__online > span:last-child { text-align: left; }
.hero__online-ponto {
  flex: none; width: 11px; height: 11px; border-radius: 50%;
  background: var(--wa);
  box-shadow: 0 0 0 0 rgba(37, 211, 102, .6);
  animation: pulsoOnline 2s infinite;
}
@keyframes pulsoOnline { 70% { box-shadow: 0 0 0 9px rgba(37, 211, 102, 0); } 100% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0); } }

/* --- Lado visual --- */
.hero__visual { position: relative; padding-left: clamp(18px, 3vw, 44px); }

/* Painel azul atrás da foto: dá profundidade e traz a cor da marca */
.hero__visual::before {
  content: '';
  position: absolute;
  top: -22px;
  right: -18px;
  bottom: 38px;
  left: calc(clamp(18px, 3vw, 44px) + 52px);
  border-radius: 34px;
  background:
    radial-gradient(70% 60% at 80% 10%, rgba(255, 255, 255, .16), transparent 70%),
    linear-gradient(150deg, var(--brand-500), var(--brand-800));
}

.hero__foto {
  position: relative;
  z-index: 1;
  aspect-ratio: 1 / 1.02;
  border-radius: 28px;
  overflow: hidden;
  background: var(--brand-900);
  box-shadow: 0 40px 80px rgba(19, 17, 48, .26), 0 10px 24px rgba(19, 17, 48, .12);
}

/* A camada é 12% mais alta que a moldura: é a sobra que o parallax usa */
.hero__foto picture { position: absolute; inset: -6% 0; display: block; }
.hero__foto img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 36% 50%;
  filter: brightness(1.14) saturate(1.05);
}

.hero__foto::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 58%, rgba(20, 18, 47, .38));
  pointer-events: none;
}

/* Selo do Google girando */
.hero__selo {
  position: absolute;
  z-index: 3;
  top: 7%;
  left: 0;
  width: clamp(120px, 11vw, 152px);
  aspect-ratio: 1;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 22px 46px rgba(19, 17, 48, .22);
  translate: -34% 0;
}

.hero__selo-anel {
  position: absolute;
  inset: 4%;
  width: 92%;
  height: 92%;
  animation: giraSelo var(--giro-selo) linear infinite;
  will-change: transform;
}
.hero__selo-anel text { fill: var(--ink); font: 700 11.5px var(--font-display); letter-spacing: 1.4px; }

.hero__selo-disco {
  position: absolute;
  inset: 24%;
  border-radius: 50%;
  display: grid;
  place-content: center;
  justify-items: center;
  text-align: center;
  color: #fff;
  background: radial-gradient(circle at 30% 25%, var(--brand-500), var(--brand-800));
  box-shadow: inset 0 0 0 3px rgba(255, 255, 255, .12);
}
.hero__selo-disco b { font: 800 clamp(1.05rem, 1.6vw, 1.4rem)/1 var(--font-display); letter-spacing: -.02em; }
.hero__selo-disco i { font-style: normal; color: var(--gold); font-size: .5rem; letter-spacing: 1px; line-height: 1.5; }
.hero__selo-disco small { font-size: .48rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; opacity: .82; line-height: 1; }

/* Cartão da garantia, flutuando devagar */
.hero__garantia {
  position: absolute;
  z-index: 3;
  right: -12px;
  bottom: 9%;
  display: flex;
  align-items: center;
  gap: 12px;
  background: #fff;
  padding: 13px 20px 13px 13px;
  border-radius: 18px;
  box-shadow: 0 24px 50px rgba(19, 17, 48, .22);
  font-size: .8rem;
  color: var(--muted);
  line-height: 1.35;
  animation: certFloat var(--flutuar) ease-in-out infinite;
  will-change: transform;
}
.hero__garantia b { display: block; font-family: var(--font-display); font-size: .92rem; color: var(--ink); }
.hero__garantia-ico {
  flex: none;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  background: var(--brand);
  color: #fff;
}

/* ===========================================================
   JANELA DO ORÇAMENTO
   =========================================================== */
/* Reserva a barra de rolagem só onde ela ocupa espaço, para a página não "pular" ao abrir */
@media (hover: hover) and (pointer: fine) { html { scrollbar-gutter: stable; } }
html.modal-aberto, html.modal-aberto body { overflow: hidden; }

.modal-orc {
  position: fixed;
  inset: 0;
  z-index: 400;
  display: grid;
  place-items: center;
  padding: 24px;
}

.modal-orc__fundo {
  position: absolute;
  inset: 0;
  background: rgba(14, 12, 38, .62);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  animation: fundoIn .3s ease both;
}

.modal-orc__janela {
  position: relative;
  width: min(600px, 100%);
  animation: janelaIn .45s var(--ease) both;
}

/* O cartão rola por dentro; o botão de fechar fica sempre visível */
.modal-orc .qual {
  max-height: calc(100vh - 48px);
  max-height: calc(100dvh - 48px);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: rgba(68, 64, 155, .35) transparent;
}
.modal-orc .qual__top { padding-right: 66px; }

.modal-orc__fechar {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 5;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--brand-900);
  color: #fff;
  border: 2px solid rgba(255, 255, 255, .75);
  box-shadow: 0 6px 18px rgba(12, 10, 40, .3);
  transition: transform .25s var(--ease), background-color .2s;
}
.modal-orc__fechar:hover { background: var(--brand); transform: rotate(90deg); }

.modal-orc.is-saindo .modal-orc__fundo { animation: fundoOut .22s ease both; }
.modal-orc.is-saindo .modal-orc__janela { animation: janelaOut .22s ease both; }

@keyframes fundoIn { from { opacity: 0; } }
@keyframes fundoOut { to { opacity: 0; } }
@keyframes janelaIn { from { opacity: 0; transform: translateY(26px) scale(.97); } }
@keyframes janelaOut { to { opacity: 0; transform: translateY(14px) scale(.98); } }
@keyframes folhaIn { from { transform: translateY(100%); } }
@keyframes folhaOut { to { transform: translateY(100%); } }

.stars { color: var(--gold); display: inline-flex; gap: 1px; }

/* ===========================================================
   QUALIFICADOR
   =========================================================== */
.qual {
  background: #fff;
  border-radius: var(--r-xl);
  box-shadow: var(--shadow-xl);
  overflow: hidden;
  position: relative;
}

.qual__top {
  background: linear-gradient(135deg, var(--brand-700), var(--brand));
  color: #fff;
  padding: 20px 26px 16px;
}

.qual__badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: var(--gold);
  color: #2A1F00;
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: 5px 11px;
  border-radius: var(--r-full);
  margin-bottom: 11px;
}

.qual__top h2 {
  color: #fff;
  font-size: 1.3rem;
  letter-spacing: -.02em;
  margin-bottom: 5px;
}

.qual__top p { font-size: .855rem; color: rgba(255, 255, 255, .78); }

.qual__progress { margin-top: 16px; }

.qual__bar {
  height: 5px;
  background: rgba(255, 255, 255, .2);
  border-radius: var(--r-full);
  overflow: hidden;
}

.qual__bar i {
  display: block;
  height: 100%;
  width: 20%;
  background: var(--gold);
  border-radius: var(--r-full);
  transition: width .45s var(--ease);
}

.qual__steps {
  display: flex;
  justify-content: space-between;
  margin-top: 8px;
  font-size: .7rem;
  color: rgba(255, 255, 255, .6);
  font-weight: 500;
}

.qual__body { padding: 24px 26px 26px; }

.qual__step { display: none; animation: stepIn .4s var(--ease); }
.qual__step.is-active { display: block; }

@keyframes stepIn {
  from { opacity: 0; transform: translateX(14px); }
  to { opacity: 1; transform: translateX(0); }
}

.qual__q {
  font-family: var(--font-display);
  font-size: 1.06rem;
  font-weight: 700;
  color: var(--ink);
  letter-spacing: -.015em;
  margin-bottom: 4px;
}

.qual__hint { font-size: .82rem; color: var(--muted); margin-bottom: 16px; }

.field { margin-bottom: 15px; }

.field label {
  display: block;
  font-size: .8rem;
  font-weight: 600;
  color: var(--ink);
  margin-bottom: 7px;
}

.field input,
.field select,
.field textarea {
  width: 100%;
  padding: 13px 15px;
  border: 1.5px solid var(--line);
  border-radius: var(--r-md);
  background: #fff;
  font-size: .95rem;
  color: var(--ink);
  transition: border-color .2s, box-shadow .2s;
}

.field textarea { resize: vertical; min-height: 84px; line-height: 1.55; }

.field input::placeholder, .field textarea::placeholder { color: #A7A6BC; }

.field input:focus,
.field select:focus,
.field textarea:focus {
  outline: none;
  border-color: var(--brand);
  box-shadow: 0 0 0 4px rgba(68, 64, 155, .12);
}

.field select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2374738C' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 40px;
  cursor: pointer;
}

.field.has-error input,
.field.has-error select,
.field.has-error textarea { border-color: #F0A8A1; background-color: #FFF6F5; }

.field__err {
  display: none;
  font-size: .76rem;
  color: #B9443B;
  margin-top: 6px;
  font-weight: 500;
}
.field.has-error .field__err { display: block; }

/* Cards de opção */
.opts { display: grid; gap: 9px; margin-bottom: 16px; }
.opts--2 { grid-template-columns: 1fr 1fr; }

.opt {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 13px 15px;
  border: 1.5px solid var(--line);
  border-radius: var(--r-md);
  background: #fff;
  text-align: left;
  width: 100%;
  transition: border-color .18s, background-color .18s, transform .18s var(--ease);
}

.opt:hover { border-color: var(--brand-500); background: #FBFBFE; transform: translateY(-1px); }

.opt.is-on {
  border-color: var(--brand);
  background: var(--brand-tint);
  box-shadow: 0 0 0 3px rgba(68, 64, 155, .1);
}

.opt__ico {
  flex: none;
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: var(--brand-tint);
  color: var(--brand);
  transition: background-color .18s, color .18s;
}

.opt.is-on .opt__ico { background: var(--brand); color: #fff; }

.opt__txt b {
  display: block;
  font-size: .9rem;
  font-weight: 600;
  color: var(--ink);
  line-height: 1.35;
}

.opt__txt span {
  display: block;
  font-size: .775rem;
  color: var(--muted);
  line-height: 1.45;
  margin-top: 2px;
}

.opt.is-on::after {
  content: '';
  position: absolute;
  top: 10px;
  right: 12px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--brand) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='11' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/11px no-repeat;
}

.opt--compact { padding: 11px 14px; }
.opt--compact .opt__txt b { font-size: .86rem; }

.qual__nav { display: flex; gap: 10px; margin-top: 4px; }
.qual__nav .btn { flex: 1; }
.qual__back { flex: 0 0 auto !important; width: 48px; padding: 15px 0; }

.qual__legal {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: .73rem;
  color: var(--muted);
  margin-top: 14px;
  text-align: center;
}
.qual__legal svg { flex: none; color: var(--success); }

/* ---------- Caixas de atividade (passo 2) ---------- */
.tipos { display: grid; gap: 10px; margin-bottom: 14px; }

.tipo {
  border: 1.5px solid var(--line);
  border-radius: var(--r-md);
  background: #fff;
  overflow: hidden;
  transition: border-color .25s, box-shadow .25s;
}

.tipo.is-marcado { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(68, 64, 155, .09); }

/* Marcado sem atividade: rosa claro de campo obrigatório, sem agressividade.
   A caixinha continua azul; só o que falta preencher muda de cor. */
.tipo.is-pendente { border-color: #F3B8B3; box-shadow: 0 0 0 3px rgba(240, 128, 118, .12); }
.tipo.is-pendente .tipo__select { border-color: #F0A8A1; background-color: #FFF6F5; }
.tipo.is-pendente .tipo__label { color: #C4483F; }

.tipo__falta {
  display: none;
  align-items: center;
  gap: 7px;
  margin-top: 8px;
  padding: 7px 10px;
  border-radius: var(--r-sm);
  background: #FDEFEE;
  font-size: .78rem;
  font-weight: 500;
  color: #B9443B;
}
.tipo__falta svg { flex: none; }
.tipo.is-pendente .tipo__falta { display: flex; }

.tipo.alerta { animation: alertaPendente .9s var(--ease); }
@keyframes alertaPendente {
  0%   { box-shadow: 0 0 0 3px rgba(240, 128, 118, .12); }
  35%  { box-shadow: 0 0 0 8px rgba(240, 128, 118, .24); }
  100% { box-shadow: 0 0 0 3px rgba(240, 128, 118, .12); }
}

.tipo__head {
  display: flex;
  align-items: center;
  gap: 13px;
  width: 100%;
  padding: 14px 15px;
  text-align: left;
  cursor: pointer;
  transition: background-color .2s;
}
.tipo__head:hover { background: #FBFBFE; }
.tipo__head:hover .tipo__check { border-color: var(--brand); }

.tipo__check {
  flex: none;
  width: 24px;
  height: 24px;
  border: 2px solid #C9C7DB;
  border-radius: 7px;
  background: #fff;
  transition: background-color .2s, border-color .2s;
}

.tipo.is-marcado .tipo__check {
  background: var(--brand) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/14px no-repeat;
  border-color: var(--brand);
}

.tipo__txt { flex: 1; min-width: 0; }
.tipo__txt b {
  display: block;
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.25;
  letter-spacing: -.01em;
}
.tipo__txt span { display: block; font-size: .765rem; color: var(--muted); line-height: 1.4; margin-top: 2px; }

/* Selo de certificação com a quantidade dentro */
.tipo__selo {
  position: relative;
  flex: none;
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  color: var(--brand);
}
.tipo__selo svg { width: 30px; height: 30px; fill: var(--brand-tint); }

.tipo__n {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-family: var(--font-display);
  font-size: .72rem;
  font-weight: 800;
  color: var(--brand);
}


.tipo__body { display: none; padding: 0 15px 15px; }
.tipo.is-open .tipo__body { display: block; animation: stepIn .3s var(--ease); }

.tipo__ajuda {
  font-size: .78rem;
  color: var(--muted);
  padding: 10px 0 12px;
  border-top: 1px dashed var(--line);
  line-height: 1.5;
}

.tipo__label {
  display: block;
  font-size: .76rem;
  font-weight: 600;
  color: var(--ink);
  margin-bottom: 6px;
}

.tipo__select {
  width: 100%;
  padding: 11px 38px 11px 13px;
  border: 1.5px solid var(--line);
  border-radius: var(--r-sm);
  background: #fff;
  font-size: .88rem;
  color: var(--ink);
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2374738C' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 13px center;
  cursor: pointer;
}
.tipo__select:focus { outline: none; border-color: var(--brand); box-shadow: 0 0 0 4px rgba(68, 64, 155, .12); }

.tipo__itens { display: grid; gap: 7px; margin-bottom: 13px; }
.tipo__itens:empty { margin-bottom: 0; }

.chip {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 11px;
  background: var(--brand-tint);
  border: 1px solid rgba(68, 64, 155, .2);
  border-radius: var(--r-sm);
  animation: stepIn .25s var(--ease);
}

.chip__ico {
  flex: none;
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 7px;
  background: #fff;
  color: var(--brand);
  border: 1px solid rgba(68, 64, 155, .2);
}

.chip__txt { flex: 1; font-size: .81rem; color: var(--ink); line-height: 1.4; }

.chip__x {
  flex: none;
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  border-radius: 6px;
  color: var(--muted);
  transition: background-color .2s, color .2s;
}
.chip__x:hover { background: var(--danger-tint); color: var(--danger); }

/* Resumo ao vivo */
.resumo-live {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding: 12px 15px;
  border-radius: var(--r-sm);
  background: var(--gold-tint);
  border: 1px solid rgba(244, 180, 0, .38);
  font-size: .83rem;
  color: #7A5A00;
  margin-bottom: 14px;
  animation: stepIn .3s var(--ease);
}
.resumo-live b { color: var(--ink); font-weight: 700; }

/* ---------- Planilha de orçamento (passo 4) ---------- */
.orc {
  border: 1.5px solid var(--line);
  border-radius: var(--r-md);
  overflow: hidden;
  margin-bottom: 22px;
  animation: stepIn .4s var(--ease);
}

.orc__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 13px 15px;
  background: var(--brand);
  color: #fff;
}
.orc__head b { font-family: var(--font-display); font-size: .97rem; }
.orc__head span { font-size: .78rem; color: rgba(255, 255, 255, .8); }

.orc__tabela { overflow-x: auto; }
.orc__tabela table { width: 100%; border-collapse: collapse; font-size: .8rem; }

.orc__tabela th {
  text-align: left;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--muted);
  background: var(--bg-soft);
  padding: 9px 10px;
  white-space: nowrap;
  border-bottom: 1px solid var(--line);
}

.orc__tabela td { padding: 10px; border-bottom: 1px solid var(--line-soft); vertical-align: top; }
.orc__tabela tbody tr:last-child td { border-bottom: 0; }

.orc__ativ { display: flex; gap: 10px; align-items: flex-start; }

.orc__ico {
  flex: none;
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: var(--brand-tint);
  color: var(--brand);
}

.orc__ativ-txt { min-width: 0; }
.orc__ativ b { display: block; font-weight: 600; color: var(--ink); line-height: 1.35; }
.orc__tipo { display: block; font-size: .72rem; color: var(--muted); margin-top: 2px; }

.orc__multi {
  display: block;
  font-size: .69rem;
  color: var(--success);
  font-weight: 600;
  margin-top: 3px;
}

.orc__v { text-align: right; white-space: nowrap; font-weight: 600; color: var(--ink); }
.orc__v--fraco { font-weight: 500; color: var(--muted); font-size: .76rem; }

/* Fechamento: destaque nos honorários, taxas em segundo plano */
.orc__fechamento { border-top: 1px solid var(--line); }

.orc__destaque {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 15px;
  background: var(--brand-tint);
}
.orc__destaque > span { font-size: .88rem; font-weight: 600; color: var(--ink); }
.orc__destaque small { display: block; font-size: .72rem; font-weight: 400; color: var(--muted); margin-top: 2px; }
.orc__destaque > b {
  font-family: var(--font-display);
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--brand);
  letter-spacing: -.03em;
  white-space: nowrap;
}

.orc__menor {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 7px 15px;
  font-size: .78rem;
  color: var(--muted);
}
.orc__menor b { font-weight: 600; color: var(--body); white-space: nowrap; }
.orc__menor--total { border-top: 1px dashed var(--line); padding-top: 9px; padding-bottom: 12px; }
.orc__menor--total b { color: var(--ink); }

.orc__radar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 13px 15px;
  border-top: 1px dashed var(--line);
  background: #fff;
}
.orc__radar span b { display: block; font-size: .85rem; color: var(--ink); }
.orc__radar span { font-size: .76rem; color: var(--muted); line-height: 1.45; }
.orc__radar-v {
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--ink);
  white-space: nowrap;
}
.orc__radar-v small { font-size: .7rem; font-weight: 500; color: var(--muted); }

.orc__radar--gratis { background: rgba(6, 118, 71, .06); align-items: flex-start; }
.orc__radar--gratis svg { flex: none; color: var(--success); margin-top: 2px; }
.orc__radar--gratis b { color: var(--success); }

.orc__obs {
  padding: 11px 15px;
  font-size: .73rem;
  color: var(--muted);
  line-height: 1.5;
  background: var(--bg-soft);
  border-top: 1px solid var(--line-soft);
}

/* No celular a tabela vira cartões empilhados, sem rolagem lateral */
@media (max-width: 560px) {
  .orc__tabela thead { display: none; }
  .orc__tabela table, .orc__tabela tbody, .orc__tabela tfoot,
  .orc__tabela tr, .orc__tabela td { display: block; width: 100%; }

  .orc__tabela tbody tr { padding: 12px 14px; border-bottom: 1px solid var(--line-soft); }
  .orc__tabela tbody tr:last-child { border-bottom: 0; }
  .orc__tabela td { padding: 0; border: 0; }

  .orc__ativ { margin-bottom: 8px; }

  /* Precisa vencer a regra .orc__tabela td acima, que é mais específica */
  .orc__tabela td.orc__v {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 14px;
    text-align: right;
    padding: 4px 0 0;
    font-size: .82rem;
  }
  .orc__tabela td.orc__v::before {
    content: attr(data-rotulo);
    font-weight: 500;
    color: var(--muted);
    font-size: .76rem;
  }

  .orc__tabela tfoot tr { padding: 12px 14px; background: var(--bg-soft); border-top: 1px solid var(--line); }
  .orc__tabela tfoot td { background: none; border: 0; }
  .orc__tabela tfoot td:first-child { margin-bottom: 6px; }

  .orc__total { flex-direction: column; align-items: flex-start; gap: 6px; }
  .orc__radar { flex-direction: column; align-items: flex-start; gap: 8px; }
}

.aviso-classe {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  font-size: .76rem;
  color: var(--success);
  background: rgba(6, 118, 71, .07);
  border: 1px solid rgba(6, 118, 71, .2);
  border-radius: var(--r-sm);
  padding: 9px 12px;
  margin-bottom: 14px;
  line-height: 1.45;
}
.aviso-classe svg { flex: none; margin-top: 2px; }

.qual__voltar-txt { flex: 1; font-size: .78rem; color: var(--muted); align-self: center; }

.qual__q--seg { margin-top: 18px; margin-bottom: 10px; }

/* Opções de porte: rádio, texto e preço de partida */
.opt--porte { align-items: center; }
.opt--porte.is-on::after { display: none; }
.opt__radio {
  flex: none;
  width: 19px;
  height: 19px;
  border-radius: 50%;
  border: 2px solid #C9C7DB;
  transition: border .18s;
}
.opt--porte.is-on .opt__radio { border: 6px solid var(--brand); }

/* Recursos não inclusos */
.nao-incluso {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  font-size: .76rem;
  line-height: 1.45;
  color: #8A3A33;
  background: #FDF1F0;
  border-left: 3px solid #E8857C;
  border-radius: 0 var(--r-sm) var(--r-sm) 0;
  padding: 9px 12px;
}
.nao-incluso svg { flex: none; width: 15px; height: 15px; margin-top: 1px; color: #D0645B; }
.plan__condicoes { display: grid; gap: 9px; margin: -6px 0 18px; }
.plan__condicoes .garantia-nota { margin-bottom: 0; }

/* Garantia Seguro de Marcas (simulador e planos) */
.garantia-nota {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 11px 13px;
  margin-bottom: 9px;
  background: var(--brand-tint);
  border-left: 3px solid var(--brand);
  border-radius: 0 var(--r-sm) var(--r-sm) 0;
  font-size: .78rem;
  line-height: 1.45;
  color: var(--brand-700);
}
.garantia-nota svg { flex: none; color: var(--brand); margin-top: 1px; }
.garantia-nota b { display: block; font-family: var(--font-display); font-size: .84rem; color: var(--brand-700); margin-bottom: 1px; }
.garantia-nota small { display: block; font-size: .7rem; color: var(--muted); margin-top: 3px; }

.orc__rodape { padding: 12px 15px; border-top: 1px dashed var(--line); }
.doc__nao-incluso { padding: 10px 15px 0; }

/* Campo-armadilha: invisível para pessoas, preenchido só por robôs */
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.consentimento {
  font-size: .72rem;
  color: var(--muted);
  line-height: 1.5;
  margin: -4px 0 14px;
}

/* ---------- Documento final (passo 5) ---------- */
.doc {
  border: 1.5px solid var(--line);
  border-radius: var(--r-md);
  overflow: hidden;
  margin-bottom: 16px;
  animation: stepIn .4s var(--ease);
}

.doc__topo {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  padding: 15px;
  background: var(--brand-900);
  color: #fff;
}
.doc__marca {
  display: block;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--gold);
}
.doc__titulo { display: block; font-family: var(--font-display); font-size: 1rem; margin-top: 3px; }

.doc__protocolo { text-align: right; flex: none; }
.doc__protocolo span { display: block; font-size: .65rem; color: rgba(255, 255, 255, .6); text-transform: uppercase; letter-spacing: .08em; }
.doc__protocolo b { font-family: var(--font-display); font-size: .92rem; color: #fff; }

.doc__meta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 14px;
  padding: 14px 15px;
  background: var(--bg-soft);
  border-bottom: 1px solid var(--line);
}
.doc__meta span { display: block; font-size: .66rem; text-transform: uppercase; letter-spacing: .07em; color: var(--muted); }
.doc__meta b { font-size: .84rem; color: var(--ink); font-weight: 600; line-height: 1.35; }

.doc__pag { padding: 15px; border-top: 1px solid var(--line); }
.doc__pag > b { display: block; font-family: var(--font-display); font-size: .9rem; color: var(--ink); margin-bottom: 11px; }
.doc__pag ul { display: grid; gap: 9px; }
.doc__pag li { font-size: .8rem; color: var(--muted); line-height: 1.45; }
.doc__pag li b { display: block; color: var(--ink); font-weight: 600; font-size: .83rem; }
.doc__pag-obs { font-size: .73rem; color: var(--muted); margin-top: 11px; font-style: italic; }

.doc__aviso {
  padding: 14px 15px;
  background: var(--gold-tint);
  border-top: 1px solid rgba(244, 180, 0, .4);
}
.doc__aviso > b { display: block; font-size: .82rem; color: #7A5A00; margin-bottom: 8px; }
.doc__aviso p { font-size: .74rem; color: #6B5200; line-height: 1.55; margin-bottom: 7px; }
.doc__aviso p:last-child { margin-bottom: 0; }
.doc__aviso strong { font-weight: 700; }

.doc__acoes { display: grid; gap: 9px; }

/* ===========================================================
   ORÇAMENTO EM PDF (papel timbrado A4)
   =========================================================== */
#pdfOrcamento { display: none; }

@media print {
  /* A janela do orçamento trava a rolagem; na impressão isso cortaria as páginas */
  html.imprimindo-orcamento, html.imprimindo-orcamento body { background: #fff !important; overflow: visible !important; height: auto !important; }
  html.imprimindo-orcamento body > *:not(#pdfOrcamento) { display: none !important; }
  html.imprimindo-orcamento #pdfOrcamento { display: block !important; }
}

.pdf {
  position: relative;
  color: #131130;
  font: 9.4pt/1.45 Inter, system-ui, sans-serif;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}
.pdf * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }

/* Marca d'água repetida em todas as páginas */
.pdf__agua {
  position: fixed;
  top: 50%;
  left: 50%;
  width: 92mm;
  transform: translate(-50%, -50%);
  opacity: .032;
  z-index: 0;
  pointer-events: none;
}
.pdf > *:not(.pdf__agua) { position: relative; z-index: 1; }

.pdf__topo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8mm;
  padding: 5mm 7mm;
  background: #14122F;
  background-image: radial-gradient(70% 140% at 100% 0%, rgba(68, 64, 155, .75), transparent 70%);
  border-radius: 4mm 4mm 0 0;
  color: #fff;
}
.pdf__logo { height: 12.5mm; width: auto; display: block; }
.pdf__titulo { text-align: right; }
.pdf__titulo span {
  display: block;
  font-size: 7.4pt;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #F4B400;
}
.pdf__titulo b { display: block; font: 700 14pt/1.2 Sora, sans-serif; margin: .8mm 0 .4mm; letter-spacing: -.01em; }
.pdf__titulo small { font-size: 7.6pt; color: rgba(255, 255, 255, .72); }

.pdf__friso { height: 1.4mm; background: linear-gradient(90deg, #F4B400, #FFD976 55%, #F4B400); border-radius: 0 0 1mm 1mm; }

.pdf__cliente {
  display: grid;
  grid-template-columns: .95fr .75fr 1.65fr .85fr;
  gap: 3mm 4mm;
  padding: 3.6mm 1mm 3mm;
  border-bottom: .3mm solid #E7E6F1;
}
.pdf__cliente span, .pdf__kpi span {
  display: block;
  font-size: 6.6pt;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #74738C;
  margin-bottom: .6mm;
}
.pdf__cliente b { font-size: 9pt; font-weight: 600; line-height: 1.3; }

.pdf__kpis { display: grid; grid-template-columns: .8fr 1.25fr 1fr; gap: 3.5mm; margin: 3.5mm 0; }
.pdf__kpi {
  border: .3mm solid #E7E6F1;
  border-radius: 2.5mm;
  padding: 2.4mm 3.2mm;
  background: #fff;
}
.pdf__kpi b { display: block; font: 700 12pt/1.15 Sora, sans-serif; color: #131130; letter-spacing: -.01em; }
.pdf__kpi small { display: block; font-size: 7pt; color: #74738C; margin-top: .6mm; }
.pdf__kpi--destaque { background: #44409B; border-color: #44409B; }
.pdf__kpi--destaque span { color: rgba(255, 255, 255, .72); }
.pdf__kpi--destaque b { color: #fff; font-size: 15pt; }
.pdf__kpi--destaque small { color: rgba(255, 255, 255, .72); }

.pdf__h2 {
  font: 700 10.5pt Sora, sans-serif;
  color: #131130;
  margin: 1mm 0 2.2mm;
  padding-left: 2.5mm;
  border-left: 1mm solid #F4B400;
  letter-spacing: -.005em;
}

.pdf__tabela { width: 100%; border-collapse: collapse; font-size: 8.8pt; }
.pdf__tabela thead { display: table-header-group; }
.pdf__tabela tr { break-inside: avoid; page-break-inside: avoid; }
.pdf__tabela th {
  background: #14122F;
  color: #fff;
  font-size: 6.8pt;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
  text-align: left;
  padding: 1.8mm 2.5mm;
}
.pdf__tabela th:nth-child(3), .pdf__tabela th:nth-child(4) { text-align: right; }
.pdf__tabela td { padding: 1.6mm 2.5mm; border-bottom: .25mm solid #EEEDF6; vertical-align: middle; }

.pdf__grupo td {
  background: #EEEDF8;
  border-bottom: 0;
  padding: 1.4mm 2.5mm;
}
.pdf__grupo b { font: 700 8.6pt Sora, sans-serif; color: #2C2A69; }
.pdf__grupo span { font-size: 7.2pt; color: #74738C; margin-left: 2mm; }

.pdf__n { width: 6mm; color: #74738C; font-weight: 600; }
.pdf__ativ { display: flex; gap: 2.5mm; align-items: center; }
.pdf__ico {
  flex: none;
  width: 5.5mm;
  height: 5.5mm;
  display: grid;
  place-items: center;
  border-radius: 1.4mm;
  background: #EEEDF8;
  color: #44409B;
}
.pdf__ico svg { width: 3.5mm; height: 3.5mm; }
.pdf__ativ b { display: block; font-weight: 600; line-height: 1.35; }
.pdf__ativ small { display: block; font-size: 7pt; color: #067647; font-weight: 600; margin-top: .5mm; }
.pdf__v { text-align: right; white-space: nowrap; font-weight: 600; width: 27mm; }
.pdf__v--taxa { color: #4B4A63; font-weight: 500; width: 24mm; }

.pdf__subtotal td {
  background: #F7F7FC;
  font-weight: 700;
  border-top: .4mm solid #14122F;
  border-bottom: 0;
  padding-top: 2mm;
  padding-bottom: 2mm;
}

.pdf__fecho {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 5mm;
  margin-top: 3.5mm;
  break-inside: avoid;
  page-break-inside: avoid;
}

.pdf__pag h3, .pdf__aviso h3 { font: 700 9pt Sora, sans-serif; margin-bottom: 2mm; color: #131130; }
.pdf__pag ul { list-style: none; padding: 0; display: grid; gap: 1.6mm; }
.pdf__pag li { padding-left: 3.5mm; position: relative; font-size: 8.2pt; color: #4B4A63; line-height: 1.35; }
.pdf__pag li::before { content: ''; position: absolute; left: 0; top: 1.5mm; width: 1.5mm; height: 1.5mm; border-radius: 50%; background: #F4B400; }
.pdf__pag li b { color: #131130; font-weight: 600; margin-right: 1mm; }
.pdf__pag p { font-size: 7.4pt; color: #74738C; margin-top: 2mm; font-style: italic; }

.pdf__totais { border: .3mm solid #E7E6F1; border-radius: 2.5mm; overflow: hidden; align-self: start; }
.pdf__totais > div {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 3mm;
  padding: 1.8mm 3.5mm;
  font-size: 8.2pt;
  color: #4B4A63;
}
.pdf__totais b { white-space: nowrap; color: #131130; font-weight: 600; }
.pdf__total-destaque { background: #44409B; padding: 3mm 3.5mm !important; }
.pdf__total-destaque span { color: #fff; font-weight: 600; font-size: 9pt; }
.pdf__total-destaque b { color: #fff !important; font: 800 14pt Sora, sans-serif; }
.pdf__total-geral { border-top: .25mm dashed #E7E6F1; }

.pdf__condicoes {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 3.5mm;
  margin-top: 3mm;
  break-inside: avoid;
}

.pdf__garantia {
  display: flex;
  gap: 2.5mm;
  align-items: flex-start;
  padding: 2.4mm 3.2mm;
  background: #EEEDF8;
  border-left: 1mm solid #44409B;
  border-radius: 0 1.5mm 1.5mm 0;
}
.pdf__garantia svg { flex: none; width: 5mm; height: 5mm; color: #44409B; margin-top: .3mm; }
.pdf__garantia p { font-size: 7.8pt; color: #2C2A69; line-height: 1.4; }
.pdf__garantia b { display: block; font: 700 8.4pt Sora, sans-serif; color: #2C2A69; margin-bottom: .4mm; }
.pdf__garantia small { display: block; font-size: 6.6pt; color: #74738C; margin-top: .6mm; }

.pdf__nao-incluso {
  padding: 2.4mm 3.2mm;
  border-left: 1mm solid #E8857C;
  background: #FDF1F0;
  color: #8A3A33;
  font-size: 7.8pt;
  line-height: 1.4;
  border-radius: 0 1.5mm 1.5mm 0;
}
.pdf__nao-incluso b { font-weight: 700; color: #A8433A; }

.pdf__passos {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3mm;
  margin-top: 3mm;
  break-inside: avoid;
}
.pdf__passos div { display: flex; gap: 2mm; align-items: flex-start; font-size: 7.6pt; color: #4B4A63; line-height: 1.35; }
.pdf__passos b {
  flex: none;
  width: 5mm;
  height: 5mm;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #F4B400;
  color: #2A1F00;
  font: 800 7.5pt Sora, sans-serif;
}

.pdf__aviso {
  margin-top: 3mm;
  padding: 2.5mm 3.2mm;
  background: #F7F7FC;
  border: .3mm solid #E7E6F1;
  border-radius: 2.5mm;
  break-inside: avoid;
}
.pdf__aviso h3 { margin-bottom: 1.2mm; }
.pdf__aviso p { font-size: 6.9pt; color: #4B4A63; line-height: 1.4; margin-bottom: .7mm; }
.pdf__aviso p:last-child { margin-bottom: 0; }

.pdf__rodape {
  margin-top: 3mm;
  padding-top: 2mm;
  border-top: .6mm solid #44409B;
  text-align: center;
  font-size: 7.2pt;
  color: #74738C;
  line-height: 1.55;
  break-inside: avoid;
}
.pdf__rodape b { color: #2C2A69; }

/* Resultado do diagnóstico */
.diag { animation: stepIn .45s var(--ease); }

.diag__head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-bottom: 15px;
  margin-bottom: 15px;
  border-bottom: 1px dashed var(--line);
}

.diag__seal {
  flex: none;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--brand-tint);
  color: var(--brand);
}

.diag__head b {
  display: block;
  font-family: var(--font-display);
  font-size: 1.02rem;
  color: var(--ink);
  letter-spacing: -.015em;
}
.diag__head span { font-size: .8rem; color: var(--muted); }

.diag__rows { display: grid; gap: 9px; margin-bottom: 16px; }

.diag__row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  font-size: .855rem;
  padding-bottom: 9px;
  border-bottom: 1px solid var(--line-soft);
}
.diag__row:last-child { border-bottom: 0; padding-bottom: 0; }
.diag__row dt { color: var(--muted); flex: none; }
.diag__row dd { color: var(--ink); font-weight: 600; text-align: right; }

.tag {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: var(--r-full);
}
.tag--high { background: var(--danger-tint); color: var(--danger); }
.tag--mid { background: var(--gold-tint); color: #8A6800; }

.diag__alert {
  display: flex;
  gap: 11px;
  padding: 13px 15px;
  border-radius: var(--r-md);
  background: var(--danger-tint);
  border: 1px solid rgba(217, 45, 32, .18);
  margin-bottom: 16px;
}
.diag__alert svg { flex: none; color: var(--danger); margin-top: 2px; }
.diag__alert p { font-size: .83rem; color: #7A1D15; line-height: 1.5; }
.diag__alert strong { font-weight: 700; }

.diag__note { font-size: .73rem; color: var(--muted); text-align: center; margin-top: 12px; line-height: 1.5; }

/* ===========================================================
   FAIXA DE MARCAS
   =========================================================== */
.logos { padding: 34px 0; background: #fff; border-bottom: 1px solid var(--line-soft); }

.logos__title {
  text-align: center;
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 22px;
}

.logos__track {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(18px, 4vw, 48px);
  flex-wrap: wrap;
}

.logos__track img {
  height: clamp(52px, 7vw, 76px);
  width: auto;
  object-fit: contain;
  filter: grayscale(1);
  opacity: .58;
  transition: filter .3s, opacity .3s, transform .3s var(--ease);
}

.logos__track img:hover { filter: grayscale(0); opacity: 1; transform: scale(1.06); }

/* ===========================================================
   CARDS DE RISCO
   =========================================================== */
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }

.risk {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: 26px 24px;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s;
  position: relative;
  overflow: hidden;
}

.risk::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--danger), #F97066);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .4s var(--ease);
}

.risk:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); border-color: transparent; }
.risk:hover::before { transform: scaleX(1); }

.risk__ico {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  background: var(--danger-tint);
  color: var(--danger);
  margin-bottom: 16px;
}

.risk h3 { font-size: 1.08rem; margin-bottom: 8px; }
.risk p { font-size: .925rem; color: var(--muted); }

/* ===========================================================
   AUTORIDADE
   =========================================================== */
.auth {
  background: var(--brand-900);
  color: #fff;
  position: relative;
  overflow: hidden;
}

.auth::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(70% 90% at 85% 15%, rgba(68, 64, 155, .5), transparent 65%),
    radial-gradient(50% 60% at 8% 88%, rgba(244, 180, 0, .11), transparent 70%);
  pointer-events: none;
}

.auth .container { position: relative; }
.auth .section-head h2 { color: #fff; }
.auth .section-head p { color: rgba(255, 255, 255, .7); }
.auth .eyebrow { background: rgba(244, 180, 0, .14); color: #FFD976; }

.auth__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
}

.pillar {
  display: flex;
  gap: 16px;
  padding: 24px;
  border-radius: var(--r-lg);
  background: rgba(255, 255, 255, .05);
  border: 1px solid rgba(255, 255, 255, .1);
  transition: background-color .3s, border-color .3s, transform .3s var(--ease);
}

.pillar:hover { background: rgba(255, 255, 255, .08); border-color: rgba(244, 180, 0, .4); transform: translateY(-4px); }

.pillar__ico {
  flex: none;
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: rgba(244, 180, 0, .15);
  color: var(--gold);
}

.pillar h3 { color: #fff; font-size: 1.05rem; margin-bottom: 7px; }
.pillar p { font-size: .9rem; color: rgba(255, 255, 255, .72); }

.auth__cta { text-align: center; margin-top: 40px; }

/* Placa de vitória */
.win {
  margin-top: 22px;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 20px;
  align-items: center;
  padding: 24px 28px;
  border-radius: var(--r-lg);
  background: linear-gradient(120deg, rgba(244, 180, 0, .12), rgba(244, 180, 0, .04));
  border: 1px solid rgba(244, 180, 0, .3);
}

.win__score {
  font-family: var(--font-display);
  font-size: clamp(1.6rem, 3vw, 2.1rem);
  font-weight: 800;
  color: var(--gold);
  letter-spacing: -.03em;
  line-height: 1;
  text-align: center;
}
.win__score small { display: block; font-size: .68rem; font-weight: 600; letter-spacing: .1em; color: rgba(255, 255, 255, .55); text-transform: uppercase; margin-top: 6px; }
.win p { font-size: .95rem; color: rgba(255, 255, 255, .82); }
.win p strong { color: #fff; }

/* ===========================================================
   PROCESSO
   =========================================================== */
.steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; counter-reset: s; }

.step {
  position: relative;
  padding: 26px 22px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}

.step:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); }

.step__n {
  counter-increment: s;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--brand);
  color: #fff;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: .95rem;
  margin-bottom: 15px;
  box-shadow: 0 6px 16px rgba(68, 64, 155, .3);
}
.step__n::before { content: counter(s, decimal-leading-zero); }

.step img { width: 100%; height: 132px; object-fit: contain; margin-bottom: 14px; }
.step h3 { font-size: 1rem; margin-bottom: 7px; }
.step p { font-size: .875rem; color: var(--muted); }

/* ===========================================================
   DEPOIMENTOS
   =========================================================== */
.rating-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 26px;
  flex-wrap: wrap;
  padding: 22px 28px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-sm);
  max-width: 760px;
  margin: 0 auto 38px;
}

.rating-bar__score {
  font-family: var(--font-display);
  font-size: 2.4rem;
  font-weight: 800;
  color: var(--ink);
  line-height: 1;
  letter-spacing: -.04em;
}

.rating-bar__meta { font-size: .85rem; color: var(--muted); }
.rating-bar__meta b { display: block; color: var(--ink); font-size: .95rem; font-weight: 600; }

.rating-bar img {
  width: 250px;
  height: auto;
  border-radius: var(--r-md);
  border: 1px solid var(--line);
}

.quote {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: 26px 24px;
  display: flex;
  flex-direction: column;
  gap: 15px;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}

.quote:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }

.quote p { font-size: .95rem; color: var(--body); flex: 1; }

.quote__foot { display: flex; align-items: center; gap: 12px; }

.quote__av {
  width: 42px;
  height: 42px;
  flex: none;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--brand), var(--brand-500));
  color: #fff;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1rem;
}

.quote__foot b { display: block; font-size: .9rem; color: var(--ink); font-weight: 600; }
.quote__foot span { font-size: .8rem; color: var(--muted); }

/* ===========================================================
   CTA FINAL
   =========================================================== */
.cta-final {
  position: relative;
  background: linear-gradient(135deg, var(--brand-700), var(--brand));
  color: #fff;
  overflow: hidden;
  isolation: isolate;
}

.cta-final::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background: radial-gradient(60% 80% at 80% 20%, rgba(244, 180, 0, .18), transparent 65%);
}

.cta-final__inner {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: clamp(32px, 5vw, 60px);
  align-items: center;
}

.cta-final h2 { color: #fff; font-size: clamp(1.7rem, 3.2vw, 2.4rem); margin-bottom: 14px; }
.cta-final > .container > .cta-final__inner p { color: rgba(255, 255, 255, .85); font-size: 1.05rem; margin-bottom: 26px; }

.cta-final__acts { display: flex; gap: 12px; flex-wrap: wrap; }

.office {
  background: rgba(255, 255, 255, .07);
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: var(--r-lg);
  padding: 26px;
  backdrop-filter: blur(8px);
}

.office h3 { color: #fff; font-size: 1.02rem; margin-bottom: 16px; }

.office__list { display: grid; gap: 14px; }

.office__item { display: flex; gap: 12px; align-items: flex-start; }
.office__item svg { flex: none; color: var(--gold); margin-top: 3px; }
.office__item b { display: block; font-size: .87rem; color: #fff; font-weight: 600; }
.office__item span { font-size: .84rem; color: rgba(255, 255, 255, .72); line-height: 1.5; }
.office__item a:hover { color: var(--gold); }

/* ===========================================================
   FOOTER
   =========================================================== */
.footer { background: var(--brand-900); color: rgba(255, 255, 255, .62); padding: 56px 0 0; }

.footer__grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1.1fr;
  gap: 36px;
  padding-bottom: 40px;
}

.footer img.footer__logo { height: 46px; width: auto; margin-bottom: 16px; }
.footer p { font-size: .88rem; line-height: 1.7; max-width: 300px; }

.footer h4 {
  color: #fff;
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  margin-bottom: 16px;
}

.footer__links { display: grid; gap: 10px; }
.footer__links a { font-size: .89rem; transition: color .2s; }
.footer__links a:hover { color: var(--gold); }

.footer__bottom {
  border-top: 1px solid rgba(255, 255, 255, .1);
  padding: 20px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  font-size: .8rem;
}

.footer__bottom p { max-width: none; }

/* ===========================================================
   WHATSAPP FLUTUANTE
   =========================================================== */
.wa-float {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 90;
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--wa);
  color: #04331A;
  font-weight: 600;
  font-size: .9rem;
  padding: 13px 20px 13px 15px;
  border-radius: var(--r-full);
  box-shadow: 0 10px 30px rgba(37, 211, 102, .42);
  transition: transform .25s var(--ease), box-shadow .25s var(--ease);
  animation: floatIn .5s var(--ease) .9s both;
}

.wa-float:hover { transform: translateY(-3px) scale(1.03); box-shadow: 0 16px 38px rgba(37, 211, 102, .5); }
.wa-float svg { flex: none; }

@keyframes floatIn {
  from { opacity: 0; transform: translateY(22px) scale(.9); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

/* ===========================================================
   PÁGINAS INTERNAS
   =========================================================== */
.page-hero {
  background: var(--brand-900);
  color: #fff;
  padding: clamp(48px, 6vw, 80px) 0;
  position: relative;
  overflow: hidden;
}

.page-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(70% 100% at 75% 10%, rgba(68, 64, 155, .55), transparent 65%);
}

.page-hero .container { position: relative; max-width: 800px; text-align: center; }
.page-hero h1 { color: #fff; font-size: clamp(1.9rem, 4vw, 2.9rem); margin-bottom: 16px; }
.page-hero p { color: rgba(255, 255, 255, .78); font-size: clamp(1rem, 1.6vw, 1.12rem); }
.page-hero .eyebrow { background: rgba(244, 180, 0, .14); color: #FFD976; }

.crumbs {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: .82rem;
  color: rgba(255, 255, 255, .55);
  margin-bottom: 18px;
}
.crumbs a:hover { color: var(--gold); }

.spec {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: 28px 26px;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s;
  height: 100%;
}

.spec:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); border-color: rgba(68, 64, 155, .3); }

.spec__ico {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  background: var(--brand-tint);
  color: var(--brand);
  margin-bottom: 17px;
}

.spec h3 { font-size: 1.1rem; margin-bottom: 9px; }
.spec p { font-size: .92rem; color: var(--muted); margin-bottom: 14px; }

.spec__list { display: grid; gap: 8px; }
.spec__list li { display: flex; gap: 9px; font-size: .865rem; color: var(--body); align-items: flex-start; }
.spec__list svg { flex: none; color: var(--brand); margin-top: 4px; }

.note-box {
  display: flex;
  gap: 16px;
  padding: 24px 26px;
  border-radius: var(--r-lg);
  background: var(--brand-tint);
  border: 1px solid rgba(68, 64, 155, .18);
  align-items: flex-start;
}
.note-box svg { flex: none; color: var(--brand); margin-top: 2px; }
.note-box h3 { font-size: 1.02rem; margin-bottom: 7px; }
.note-box p { font-size: .92rem; color: var(--body); }

/* Contato */
.contact-grid { display: grid; grid-template-columns: 1fr 1.15fr; gap: 40px; align-items: start; }

.contact-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: 28px 26px;
  box-shadow: var(--shadow-sm);
}

.contact-card h3 { font-size: 1.15rem; margin-bottom: 18px; }

.contact-item {
  display: flex;
  gap: 14px;
  padding: 15px 0;
  border-bottom: 1px solid var(--line-soft);
  align-items: flex-start;
}
.contact-item:last-of-type { border-bottom: 0; }

.contact-item__ico {
  flex: none;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  background: var(--brand-tint);
  color: var(--brand);
}

.contact-item b { display: block; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin-bottom: 3px; }
.contact-item span, .contact-item a { font-size: .95rem; color: var(--ink); font-weight: 500; line-height: 1.5; }
.contact-item a:hover { color: var(--brand); }

.map {
  border-radius: var(--r-lg);
  overflow: hidden;
  border: 1px solid var(--line);
  box-shadow: var(--shadow-md);
  min-height: 420px;
}
.map iframe { width: 100%; height: 100%; min-height: 420px; border: 0; display: block; }

.verified {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: rgba(37, 211, 102, .12);
  border: 1px solid rgba(37, 211, 102, .32);
  color: #04331A;
  font-size: .78rem;
  font-weight: 600;
  padding: 6px 13px;
  border-radius: var(--r-full);
  margin-top: 12px;
}
.verified svg { color: var(--wa); flex: none; }

/* FAQ */
.faq { max-width: 800px; margin-inline: auto; display: grid; gap: 12px; }

.faq__item {
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: #fff;
  overflow: hidden;
  transition: border-color .25s, box-shadow .25s;
}
.faq__item[open] { border-color: rgba(68, 64, 155, .35); box-shadow: var(--shadow-md); }

.faq__item summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 22px;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: .99rem;
  color: var(--ink);
  cursor: pointer;
  list-style: none;
  transition: background-color .2s;
}
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary:hover { background: var(--bg-soft); }

.faq__item summary::after {
  content: '';
  flex: none;
  width: 20px;
  height: 20px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%2344409B' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center/contain no-repeat;
  transition: transform .3s var(--ease);
}
.faq__item[open] summary::after { transform: rotate(180deg); }

.faq__item div { padding: 0 22px 20px; font-size: .93rem; color: var(--muted); }

/* ===========================================================
   CERTIFICADO — seção com profundidade
   =========================================================== */
.cert {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background: var(--brand-900);
  color: #fff;
  padding: clamp(70px, 9vw, 120px) 0;
}

.cert__bg {
  position: absolute;
  inset: -16% 0;
  z-index: -2;
  background-image: url('../img/hero-desktop.jpg');
  background-size: cover;
  background-position: center 30%;
  filter: saturate(.7);
  will-change: transform;
}

.cert::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(115deg, rgba(14, 12, 38, .97) 0%, rgba(20, 18, 47, .93) 45%, rgba(28, 25, 68, .86) 100%),
    radial-gradient(60% 70% at 78% 40%, rgba(244, 180, 0, .16), transparent 68%);
}

.cert__inner {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  gap: clamp(36px, 5vw, 72px);
  align-items: center;
}

/* --- O documento --- */
.cert__media {
  position: relative;
  display: grid;
  place-items: center;
}

/* Documento e selo flutuam juntos, numa única camada. A inclinação é
   estática, dentro dela: se o ângulo fizesse parte do transform animado,
   a GPU reaplicaria a rotação a cada quadro e as linhas finas tremeriam. */
.cert__float {
  position: relative;
  width: min(330px, 78%);
  animation: certFloat var(--flutuar-cert) ease-in-out infinite;
  will-change: transform;
}

@keyframes certFloat {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-14px); }
}

.cert__doc {
  display: block;
  width: 100%;
  border-radius: 6px;
  transform: rotate(-3deg);
  box-shadow:
    0 40px 80px rgba(6, 5, 24, .55),
    0 12px 28px rgba(6, 5, 24, .4);
}

.cert__halo {
  position: absolute;
  width: min(440px, 92%);
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(244, 180, 0, .28), rgba(244, 180, 0, .08) 40%, transparent 70%);
  z-index: -1;
  animation: haloPulse var(--flutuar-cert) ease-in-out infinite;
  will-change: opacity;
}

@keyframes haloPulse {
  0%, 100% { opacity: .5; }
  50%      { opacity: .95; }
}

.cert__seal {
  position: absolute;
  right: -16%;
  bottom: 7%;
  display: flex;
  align-items: center;
  gap: 9px;
  white-space: nowrap;
  background: var(--gold);
  color: #2A1F00;
  font-family: var(--font-display);
  font-size: .82rem;
  font-weight: 700;
  padding: 11px 18px;
  border-radius: var(--r-full);
  box-shadow: 0 14px 30px rgba(12, 10, 40, .45);
}

.cert__seal svg { flex: none; }

/* --- Texto --- */
.cert__copy .eyebrow { background: rgba(244, 180, 0, .14); color: #FFD976; }

.cert__copy h2 {
  color: #fff;
  font-size: clamp(1.8rem, 3.4vw, 2.6rem);
  margin-bottom: 16px;
}

.cert__copy > p {
  color: rgba(255, 255, 255, .8);
  font-size: clamp(1rem, 1.6vw, 1.1rem);
  margin-bottom: 26px;
}

.cert__list { display: grid; gap: 15px; margin-bottom: 30px; }

.cert__list li {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  padding-bottom: 15px;
  border-bottom: 1px solid rgba(255, 255, 255, .1);
}
.cert__list li:last-child { border-bottom: 0; padding-bottom: 0; }

.cert__list .ico {
  flex: none;
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  background: rgba(244, 180, 0, .14);
  color: var(--gold);
}

.cert__list b { display: block; font-family: var(--font-display); font-size: .98rem; color: #fff; margin-bottom: 3px; }
.cert__list span { font-size: .89rem; color: rgba(255, 255, 255, .7); line-height: 1.55; }

/* ===========================================================
   GARANTIA — primeiro o problema, depois a solução
   =========================================================== */
.garantia {
  position: relative;
  overflow: hidden;
  padding: clamp(64px, 8vw, 110px) 0;
  background:
    radial-gradient(50% 55% at 92% 8%, rgba(68, 64, 155, .08), transparent 70%),
    var(--bg-soft);
}

.eyebrow--alerta { color: #B9443B; background: #FDEFEE; }

/* --- 1. O problema --- */
.garantia__problema {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
  gap: clamp(36px, 6vw, 84px);
  align-items: center;
}

.garantia__intro h2 { font-size: clamp(1.8rem, 3.6vw, 2.7rem); margin-bottom: 16px; }
.garantia__intro h2 em { font-style: normal; color: var(--brand); }
.garantia__intro > p { font-size: clamp(1rem, 1.6vw, 1.1rem); color: var(--body); margin-bottom: 28px; max-width: 590px; }
.garantia__intro > p strong { color: var(--ink); font-weight: 600; }

.garantia__riscos { display: grid; gap: 18px; }
.garantia__riscos li { display: flex; gap: 14px; align-items: flex-start; font-size: .92rem; color: var(--body); line-height: 1.5; }
.garantia__riscos b { display: block; font-family: var(--font-display); font-size: .98rem; color: var(--ink); margin-bottom: 2px; }
.garantia__risco-ico {
  flex: none;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  background: #FDEFEE;
  color: #C4483F;
}

/* Ilustração: uma busca que encontra marcas parecidas no mesmo ramo */
.busca {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 22px;
  box-shadow: var(--shadow-lg);
  padding-bottom: 18px;
  overflow: hidden;
}

.busca__topo {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 18px;
  background: var(--bg-soft);
  border-bottom: 1px solid var(--line-soft);
  font-size: .74rem;
  font-weight: 500;
  color: var(--muted);
}
.busca__pontos { display: flex; gap: 5px; }
.busca__pontos i { width: 9px; height: 9px; border-radius: 50%; background: var(--line); }

.busca__campo {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 18px 18px 6px;
  padding: 12px 14px;
  border: 1.5px solid var(--brand);
  border-radius: 14px;
  box-shadow: 0 0 0 4px rgba(68, 64, 155, .1);
  color: var(--brand);
}
.busca__campo span { flex: 1; font: 700 1rem var(--font-display); color: var(--ink); letter-spacing: .04em; }
.busca__campo em {
  font-style: normal;
  font-size: .7rem;
  font-weight: 700;
  color: #B9443B;
  background: #FDEFEE;
  padding: 4px 10px;
  border-radius: var(--r-full);
  white-space: nowrap;
}

.busca__lista { padding: 2px 18px 0; }
.busca__lista li {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 7px 12px;
  align-items: center;
  padding: 12px 0;
  border-bottom: 1px dashed var(--line);
}
.busca__lista b { font: 600 .9rem var(--font-display); color: var(--ink); letter-spacing: .03em; }
.busca__tag {
  justify-self: end;
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #B9443B;
  background: #FDEFEE;
  padding: 3px 8px;
  border-radius: var(--r-full);
}
.busca__barra { height: 6px; border-radius: var(--r-full); background: var(--line-soft); overflow: hidden; }
.busca__barra i {
  display: block;
  height: 100%;
  width: var(--v);
  border-radius: inherit;
  background: linear-gradient(90deg, #F3B8B3, #E8857C);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 1.4s var(--ease);
}
.busca.is-in .busca__barra i { transform: none; }
.busca.is-in li:nth-child(2) .busca__barra i { transition-delay: .15s; }
.busca.is-in li:nth-child(3) .busca__barra i { transition-delay: .3s; }
.busca.is-in li:nth-child(4) .busca__barra i { transition-delay: .45s; }
.busca__lista small { font-size: .74rem; font-weight: 700; color: #B9443B; text-align: right; }

.busca__alerta {
  display: flex;
  align-items: center;
  gap: 11px;
  margin: 14px 18px 0;
  padding: 12px 14px;
  border-radius: 14px;
  background: #FDF1F0;
  color: #C4483F;
  font-size: .72rem;
  line-height: 1.35;
}
.busca__alerta svg { flex: none; }
.busca__alerta b { display: block; font: 700 .86rem var(--font-display); color: #8A3A33; }

/* --- Ponte entre problema e solução --- */
.garantia__ponte { display: flex; align-items: center; gap: 16px; margin: clamp(50px, 6vw, 76px) 0 clamp(26px, 3vw, 34px); }
.garantia__ponte > span { flex: 1; height: 1px; background: linear-gradient(90deg, transparent, var(--line) 35%, var(--line) 65%, transparent); }
.garantia__ponte b {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font: 700 .76rem var(--font-display);
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--brand);
  background: #fff;
  border: 1px solid var(--line);
  padding: 10px 18px;
  border-radius: var(--r-full);
  box-shadow: var(--shadow-sm);
  text-align: center;
}

/* --- 2. A solução --- */
.garantia__solucao {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  display: grid;
  grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr);
  gap: clamp(32px, 5vw, 72px);
  align-items: center;
  padding: clamp(32px, 5vw, 64px);
  border-radius: 32px;
  color: rgba(255, 255, 255, .8);
  background:
    radial-gradient(55% 90% at 14% 50%, rgba(81, 76, 180, .6), transparent 70%),
    radial-gradient(40% 60% at 100% 0%, rgba(244, 180, 0, .12), transparent 70%),
    var(--brand-900);
  box-shadow: var(--shadow-xl);
}

.garantia__solucao::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image: radial-gradient(rgba(255, 255, 255, .14) 1px, transparent 1.5px);
  background-size: 24px 24px;
  -webkit-mask-image: radial-gradient(50% 80% at 18% 50%, #000, transparent 75%);
  mask-image: radial-gradient(50% 80% at 18% 50%, #000, transparent 75%);
}

.garantia__selo { position: relative; width: min(290px, 88%); aspect-ratio: 1; margin-inline: auto; }

.garantia__anel {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  animation: giraSelo var(--giro-selo) linear infinite;
  will-change: transform;
}
.garantia__anel text { fill: rgba(255, 255, 255, .88); font: 700 13px var(--font-display); letter-spacing: 2.4px; }
@keyframes giraSelo { to { transform: rotate(-360deg); } }

.garantia__disco {
  position: absolute;
  inset: 19%;
  border-radius: 50%;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 6px;
  color: var(--gold);
  background: linear-gradient(145deg, var(--brand-500), var(--brand-700));
  box-shadow:
    0 24px 50px rgba(0, 0, 0, .35),
    inset 0 0 0 6px rgba(255, 255, 255, .1),
    0 0 0 10px rgba(244, 180, 0, .16);
}
.garantia__disco b {
  font: 800 1.05rem var(--font-display);
  color: #fff;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.garantia__etiqueta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--gold);
  background: rgba(244, 180, 0, .12);
  border: 1px solid rgba(244, 180, 0, .3);
  padding: 7px 14px;
  border-radius: var(--r-full);
  margin-bottom: 18px;
}

.garantia__copy h2 { color: #fff; font-size: clamp(1.8rem, 3.5vw, 2.75rem); margin-bottom: 14px; }
.garantia__copy h2 em { font-style: normal; color: #ABA7F8; }
.garantia__copy > p { font-size: clamp(1rem, 1.6vw, 1.1rem); margin-bottom: 26px; max-width: 620px; }
.garantia__copy > p b { color: #fff; font-weight: 600; }

.garantia__passos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-bottom: 30px; }
.garantia__passos li {
  padding: 18px 16px 16px;
  border-radius: 16px;
  background: rgba(255, 255, 255, .05);
  border: 1px solid rgba(255, 255, 255, .1);
  font-size: .82rem;
  line-height: 1.45;
  color: rgba(255, 255, 255, .66);
}
.garantia__passos li > span {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--brand);
  color: #fff;
  font: 700 .8rem var(--font-display);
  margin-bottom: 10px;
}
.garantia__passos b { display: block; font: 700 .9rem/1.3 var(--font-display); color: #fff; margin-bottom: 5px; }
.garantia__passos li:last-child { background: rgba(244, 180, 0, .09); border-color: rgba(244, 180, 0, .34); }
.garantia__passos li:last-child > span { background: var(--gold); color: #2A1F00; }

.garantia__acoes { display: flex; align-items: center; gap: 18px 22px; flex-wrap: wrap; }
.garantia__nota { font-size: .75rem; color: rgba(255, 255, 255, .55); max-width: 340px; line-height: 1.45; }

/* ===========================================================
   PREÇOS
   =========================================================== */
.switch {
  display: inline-flex;
  gap: 5px;
  padding: 5px;
  background: var(--bg-soft);
  border: 1px solid var(--line);
  border-radius: var(--r-full);
  margin: 0 auto 38px;
}

.switch__btn {
  padding: 12px 24px;
  border-radius: var(--r-full);
  font-size: .92rem;
  font-weight: 600;
  color: var(--muted);
  transition: background-color .25s var(--ease), color .25s, box-shadow .25s;
  white-space: nowrap;
}

.switch__btn.is-on {
  background: var(--brand);
  color: #fff;
  box-shadow: 0 6px 16px rgba(68, 64, 155, .28);
}

.switch__btn:not(.is-on):hover { color: var(--ink); }

.tier { display: none; animation: stepIn .4s var(--ease); }
.tier.is-on { display: block; }

.plans { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; align-items: start; }

/* A grade se ajusta à quantidade de planos definida em precos-dados.js */
.plans[data-count="1"] { grid-template-columns: 1fr; max-width: 560px; margin-inline: auto; }
.plans[data-count="3"] { grid-template-columns: repeat(3, 1fr); }
.plans[data-count="4"] { grid-template-columns: repeat(2, 1fr); }

.precos__aviso {
  max-width: 760px;
  margin: 30px auto 0;
  text-align: center;
  font-size: .8rem;
  color: var(--muted);
  line-height: 1.6;
}
.precos__aviso span { display: block; margin-top: 4px; font-weight: 600; color: var(--body); }

.plan {
  position: relative;
  background: #fff;
  border: 1.5px solid var(--line);
  border-radius: var(--r-xl);
  padding: 30px 28px;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s;
}

.plan:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }

.plan--featured {
  border-color: var(--brand);
  box-shadow: 0 18px 44px rgba(68, 64, 155, .16);
}

.plan__tag {
  position: absolute;
  top: -13px;
  left: 28px;
  background: var(--gold);
  color: #2A1F00;
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
  padding: 6px 14px;
  border-radius: var(--r-full);
}

.plan__name {
  font-family: var(--font-display);
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--ink);
  letter-spacing: -.02em;
  margin-bottom: 6px;
}

.plan__for { font-size: .88rem; color: var(--muted); margin-bottom: 22px; min-height: 42px; }

.plan__price {
  display: flex;
  align-items: baseline;
  gap: 7px;
  padding-bottom: 6px;
}

.plan__price small { font-size: 1.05rem; font-weight: 600; color: var(--muted); }

.plan__price b {
  font-family: var(--font-display);
  font-size: clamp(2.1rem, 4vw, 2.7rem);
  font-weight: 800;
  color: var(--brand);
  letter-spacing: -.04em;
  line-height: 1;
}

.plan__note { font-size: .82rem; color: var(--muted); margin-bottom: 20px; }

.plan__list { display: grid; gap: 11px; padding: 20px 0; border-top: 1px solid var(--line-soft); }

.plan__list li { display: flex; gap: 10px; align-items: flex-start; font-size: .89rem; color: var(--body); }
.plan__list svg { flex: none; color: var(--brand); margin-top: 3px; }
.plan__list b { color: var(--ink); font-weight: 600; }

.fees {
  background: var(--bg-soft);
  border: 1px dashed var(--line);
  border-radius: var(--r-md);
  padding: 16px 18px;
  margin-bottom: 20px;
}

.fees__title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 12px;
}
.fees__title svg { color: var(--brand); flex: none; }

.fees__row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: .87rem;
  padding: 6px 0;
}
.fees__row span { color: var(--body); }
.fees__row b { color: var(--ink); font-weight: 600; white-space: nowrap; }
.fees__total {
  border-top: 1px solid var(--line);
  margin-top: 8px;
  padding-top: 10px;
  font-size: .9rem;
}
.fees__total b { color: var(--brand); }

.fees__nota {
  margin-top: 11px;
  padding-top: 11px;
  border-top: 1px dashed var(--line);
  font-size: .78rem;
  line-height: 1.55;
  color: var(--muted);
}
.fees__nota strong { color: var(--body); font-weight: 600; }

.pay {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.pay__card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: 22px 20px;
  text-align: center;
}

.pay__ico {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  margin: 0 auto 14px;
  border-radius: 12px;
  background: var(--brand-tint);
  color: var(--brand);
}

.pay__card b { display: block; font-family: var(--font-display); font-size: 1rem; color: var(--ink); margin-bottom: 6px; }
.pay__card span { font-size: .86rem; color: var(--muted); }

.compare {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  border-radius: var(--r-lg);
  overflow: hidden;
  border: 1px solid var(--line);
  max-width: 860px;
  margin-inline: auto;
}

.compare__side { padding: 28px 26px; }
.compare__side:first-child { background: var(--danger-tint); }
.compare__side:last-child { background: var(--brand-tint); }

.compare__side h3 { font-size: 1.05rem; margin-bottom: 14px; display: flex; align-items: center; gap: 9px; }
.compare__side:first-child h3 { color: var(--danger); }
.compare__side:last-child h3 { color: var(--brand); }

.compare__side ul { display: grid; gap: 10px; }
.compare__side li { font-size: .89rem; color: var(--body); display: flex; gap: 9px; align-items: flex-start; }
.compare__side li svg { flex: none; margin-top: 3px; }
.compare__side:first-child li svg { color: var(--danger); }
.compare__side:last-child li svg { color: var(--brand); }

/* ===========================================================
   MOVIMENTO E INTERAÇÃO
   =========================================================== */

/* --- Entrada em cascata --- */
.reveal { opacity: 0; transform: translateY(26px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.is-in { opacity: 1; transform: none; }

.reveal--left  { transform: translateX(-34px); }
.reveal--right { transform: translateX(34px); }
.reveal--zoom  { transform: scale(.94); }

/* --- Luz que acompanha o cursor sobre os cards --- */
@media (hover: hover) and (pointer: fine) {
  .risk, .spec, .quote, .step, .plan, .pillar, .pay__card, .contact-card { position: relative; }

  .risk::after, .spec::after, .quote::after, .step::after,
  .plan::after, .pay__card::after, .contact-card::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: radial-gradient(460px circle at var(--mx, 50%) var(--my, 50%), rgba(68, 64, 155, .09), transparent 62%);
    opacity: 0;
    transition: opacity .4s var(--ease);
    pointer-events: none;
    z-index: 0;
  }

  .risk:hover::after, .spec:hover::after, .quote:hover::after, .step:hover::after,
  .plan:hover::after, .pay__card:hover::after, .contact-card:hover::after { opacity: 1; }

  /* Nos blocos escuros a luz é dourada */
  .pillar::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 50%), rgba(244, 180, 0, .15), transparent 60%);
    opacity: 0;
    transition: opacity .4s var(--ease);
    pointer-events: none;
  }
  .pillar:hover::after { opacity: 1; }

  .risk > *, .spec > *, .quote > *, .step > *, .plan > *, .pillar > * { position: relative; z-index: 1; }
}

/* --- Brilho que atravessa os botões --- */
.btn { position: relative; overflow: hidden; }

.btn--primary::after, .btn--gold::after, .btn--wa::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(105deg, transparent 38%, rgba(255, 255, 255, .42) 50%, transparent 62%);
  transform: translateX(-130%);
  transition: transform .75s var(--ease);
  pointer-events: none;
}

.btn--primary:hover::after, .btn--gold:hover::after, .btn--wa:hover::after { transform: translateX(130%); }

/* --- Imagens do processo respiram no hover --- */
.step img { transition: transform .5s var(--ease); }
.step:hover img { transform: translateY(-6px) scale(1.04); }

.spec__ico, .risk__ico, .pillar__ico, .pay__ico { transition: transform .4s var(--ease); }
.spec:hover .spec__ico, .risk:hover .risk__ico,
.pillar:hover .pillar__ico, .pay__card:hover .pay__ico { transform: scale(1.09) rotate(-4deg); }

/* --- Números que sobem --- */
.num { font-variant-numeric: tabular-nums; }

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

/* --- Entrada do hero, em sequência --- */
@media (prefers-reduced-motion: no-preference) {
  .hero__flag, .hero h1, .hero__lead, .hero__acoes, .hero__confianca {
    animation: heroIn .85s var(--ease) both;
  }
  .hero__flag       { animation-delay: .05s; }
  .hero h1          { animation-delay: .14s; }
  .hero__lead       { animation-delay: .24s; }
  .hero__acoes      { animation-delay: .34s; }
  .hero__confianca  { animation-delay: .46s; }
  .hero__visual     { animation: visualIn 1.1s var(--ease) .2s both; }
}

@keyframes heroIn {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: none; }
}

@keyframes visualIn {
  from { opacity: 0; transform: translateY(26px) scale(.98); }
  to   { opacity: 1; transform: none; }
}

/* --- Brilho lento no fundo das seções escuras --- */
.auth::after, .cta-final::after {
  content: '';
  position: absolute;
  width: 60vw;
  height: 60vw;
  max-width: 800px;
  max-height: 800px;
  top: -20%;
  right: -10%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(244, 180, 0, .09), transparent 62%);
  filter: blur(40px);
  pointer-events: none;
  animation: derivar 16s ease-in-out infinite alternate;
  z-index: 0;
}

.auth > .container, .cta-final > .container { position: relative; z-index: 1; }

@keyframes derivar {
  from { transform: translate(0, 0) scale(1); }
  to   { transform: translate(-8%, 10%) scale(1.15); }
}

@media (prefers-reduced-motion: reduce) {
  /* Encurtar uma animação infinita a 0,01 ms faz o elemento saltar para uma posição
     aleatória a cada quadro (parece girar rápido e tremer). Por isso ela roda uma vez só. */
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }

  /* Os movimentos decorativos já são muito lentos e suaves: mantidos */
  .hero__selo-anel, .garantia__anel { animation: giraSelo var(--giro-selo) linear infinite !important; }
  .hero__garantia { animation: certFloat var(--flutuar) ease-in-out infinite !important; }
  .cert__float { animation: certFloat var(--flutuar-cert) ease-in-out infinite !important; }
  .btn__setas i, .btn--cta, .hero__online > span:last-child { text-align: left; }
.hero__online-ponto { animation: none !important; }
  .btn__setas i { opacity: 1; }
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; }
}

/* ===========================================================
   RESPONSIVO
   =========================================================== */
@media (max-width: 1080px) {
  .hero__grade { grid-template-columns: 1fr; gap: 56px; padding-top: 44px; }
  .hero__texto { max-width: 680px; margin-inline: auto; text-align: center; }
  .hero__lead { margin-inline: auto; }
  .hero__acoes, .hero__confianca { justify-content: center; }
  .hero__confianca { text-align: left; }
  .hero__visual { width: 100%; max-width: 540px; margin-inline: auto; padding-left: 0; }
  .hero__visual::before { left: 52px; }
  .hero__selo { translate: -26% 0; }
  .cta-final__inner { grid-template-columns: 1fr; }
  .contact-grid { grid-template-columns: 1fr; }
  .footer__grid { grid-template-columns: 1fr 1fr; gap: 32px; }

  .garantia__problema { grid-template-columns: 1fr; }
  .garantia__intro { max-width: 680px; }
  .busca { max-width: 540px; width: 100%; margin-inline: auto; }
  .garantia__solucao { grid-template-columns: 1fr; text-align: center; }
  .garantia__selo { width: min(230px, 62%); }
  .garantia__copy > p, .garantia__nota { margin-inline: auto; }
  .garantia__passos { text-align: left; }
  .garantia__acoes { justify-content: center; }
  .garantia__nota { text-align: center; }

  .cert__inner { grid-template-columns: 1fr; gap: 42px; }
  .cert__media { order: 2; }
  .cert__copy { order: 1; }
  .cert__float { width: min(300px, 62%); }
  .cert__seal { right: -12%; }
}

@media (max-width: 1080px) {
  .nav { display: none; }
  .burger { display: flex; }

  .nav.is-open {
    display: flex;
    position: fixed;
    inset: calc(var(--header-h)) 0 auto;
    flex-direction: column;
    align-items: stretch;
    gap: 2px;
    padding: 14px 20px 22px;
    background: #fff;
    border-bottom: 1px solid var(--line);
    box-shadow: 0 24px 40px rgba(19, 17, 48, .12);
    max-height: calc(100dvh - var(--header-h));
    overflow-y: auto;
    animation: stepIn .28s var(--ease);
  }

  .nav.is-open a { padding: 14px 16px; font-size: 1rem; border-radius: var(--r-md); }
  .nav.is-open a.is-active::after { display: none; }
  .nav.is-open a.is-active { background: var(--brand-tint); color: var(--brand); }

  .brand img { height: 42px; }
  .header__cta .btn span { display: none; }
  .header__cta .btn { padding: 12px; width: 44px; height: 44px; }

  .grid-3, .grid-4, .grid-2, .auth__grid { grid-template-columns: 1fr 1fr; }
  .steps { grid-template-columns: 1fr 1fr; }
  .topbar__inner { gap: 16px; font-size: .74rem; }
}

@media (max-width: 1080px) {
  .plans[data-count="3"] { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 880px) {
  .plans, .plans[data-count="3"], .plans[data-count="4"] { grid-template-columns: 1fr; max-width: 560px; margin-inline: auto; }
  .compare { grid-template-columns: 1fr; }
  .pay { grid-template-columns: 1fr; max-width: 560px; margin-inline: auto; }
}

@media (max-width: 720px) {
  .topbar__item:nth-child(2), .topbar__item:nth-child(3) { display: none; }
  .brand img { height: 38px; }

  .hero__grade { gap: 50px; padding-block: 30px 64px; }
  .hero__flag { font-size: .76rem; padding: 7px 14px 7px 11px; margin-bottom: 18px; letter-spacing: 0; text-transform: none; }
  .hero h1 { font-size: clamp(2.1rem, 9.6vw, 2.7rem); margin-bottom: 16px; }
  .hero__lead { font-size: 1rem; margin-bottom: 24px; }
  .hero__acoes { flex-direction: column; margin-bottom: 30px; }
  .hero__acoes .btn { width: 100%; }
  .hero__online { justify-content: center; }
  .hero__avatares img { width: 64px; height: 64px; }
  .hero__confianca { flex-direction: column; gap: 14px; padding-top: 22px; }
  .hero__divisor { display: none; }
  .hero__local { text-align: center; }

  .hero__visual { padding-inline: 6px; }
  .hero__visual::before { top: -16px; right: -4px; bottom: 34px; left: 44px; border-radius: 26px; }
  .hero__foto { aspect-ratio: 4 / 4.5; border-radius: 22px; }
  .hero__foto img { object-position: 50% 30%; }
  .hero__selo { width: 106px; top: -30px; left: -2px; translate: none; }
  .hero__garantia { right: auto; left: 50%; bottom: -24px; translate: -50% 0; white-space: nowrap; padding: 11px 16px 11px 11px; }
  .hero__garantia b { font-size: .86rem; }

  .modal-orc { place-items: end center; padding: 10px 0 0; }
  .modal-orc__janela { width: 100%; animation-name: folhaIn; }
  .modal-orc .qual { max-height: calc(100vh - 10px); max-height: calc(100dvh - 10px); border-radius: 22px 22px 0 0; }
  .modal-orc__fechar { top: 12px; right: 12px; width: 36px; height: 36px; }
  .modal-orc.is-saindo .modal-orc__janela { animation-name: folhaOut; }

  .grid-3, .grid-4, .grid-2, .auth__grid, .steps { grid-template-columns: 1fr; }
  .opts--2 { grid-template-columns: 1fr; }
  .footer__grid { grid-template-columns: 1fr; }
  .win { grid-template-columns: 1fr; text-align: center; gap: 12px; }
  .rating-bar { gap: 16px; padding: 18px; }

  /* Botões de texto longo quebram em vez de forçar rolagem lateral */
  .btn { white-space: normal; max-width: 100%; }
  .btn--lg { padding: 16px 22px; font-size: .97rem; }

  .garantia__passos { grid-template-columns: 1fr; }
  .garantia__disco { gap: 3px; }
  .garantia__disco svg { width: 40px; height: 40px; }
  .garantia__disco b { font-size: .8rem; letter-spacing: .12em; }
  .garantia__solucao { padding: 32px 20px 26px; border-radius: 24px; }
  .garantia__ponte { gap: 10px; }
  .garantia__ponte b { font-size: .68rem; padding: 9px 14px; letter-spacing: .08em; }
  .busca__lista b { font-size: .84rem; }
  .garantia__acoes .btn { width: 100%; }

  .cert__bg { background-image: url('../img/hero-mobile.jpg'); }
  .cert__float { width: min(260px, 72%); }
  .cert__seal { right: -8%; bottom: 5%; font-size: .74rem; padding: 9px 14px; }
  .cert__list li { gap: 11px; }
  .wa-float span { display: none; }
  .wa-float { padding: 15px; right: 14px; bottom: 14px; }

  .switch { display: flex; flex-direction: column; width: 100%; border-radius: var(--r-lg); }
  .switch__btn { width: 100%; border-radius: var(--r-md); padding: 13px 16px; font-size: .88rem; }
  .plan { padding: 26px 22px; }
  .plan__for { min-height: 0; }
  .compare__side { padding: 24px 20px; }
  .footer__bottom { flex-direction: column; text-align: center; }
  .diag__row { flex-direction: column; gap: 3px; }
  .diag__row dd { text-align: left; }
}

@media (max-width: 420px) {
  .container { padding-inline: 16px; }
  .qual__top, .qual__body { padding-inline: 18px; }
  .btn { padding: 14px 20px; font-size: .92rem; }
  .qual__steps { font-size: .64rem; }
}

/* ===========================================================
   PESQUISA DE MARCA — barra na página inicial
   =========================================================== */
.pq-home {
  position: relative;
  padding: 0 0 clamp(52px, 6vw, 80px);
  background: var(--bg-soft);
}

.pq-home__caixa {
  position: relative;
  max-width: 880px;
  margin: 0 auto;
  padding: clamp(26px, 3.4vw, 40px) clamp(20px, 4vw, 48px) clamp(24px, 3vw, 34px);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 28px;
  box-shadow: 0 30px 70px rgba(19, 17, 48, .1);
  text-align: center;
}

.pq-home__titulo {
  display: block;
  font: 800 clamp(1.35rem, 2.6vw, 1.9rem)/1.1 var(--font-display);
  letter-spacing: -.03em;
  color: var(--ink);
  margin-bottom: 18px;
}
.pq-home__titulo em { font-style: normal; color: var(--brand); }
.pq-home__titulo svg { display: inline-block; vertical-align: -4px; margin-right: 8px; color: var(--brand); }

.pq-home__barra {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 7px 7px 7px 22px;
  border: 1.5px solid var(--line);
  border-radius: var(--r-full);
  background: #fff;
  box-shadow: 0 6px 20px rgba(19, 17, 48, .06);
  transition: border-color .2s, box-shadow .2s;
}
.pq-home__barra:hover { box-shadow: 0 10px 26px rgba(19, 17, 48, .1); }
.pq-home__barra:focus-within { border-color: var(--brand); box-shadow: 0 0 0 5px rgba(68, 64, 155, .12); }
.pq-home__barra > svg { color: var(--muted); flex: none; }

.pq-home__barra input {
  flex: 1;
  min-width: 0;
  border: 0;
  outline: 0;
  background: transparent;
  font-size: 1.12rem;
  font-weight: 500;
  color: var(--ink);
  padding: 12px 0;
}
.pq-home__barra input::placeholder { color: #9A99AF; }
.pq-home__barra .btn { padding: 15px 28px; flex: none; }

.pq-home__tipos { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; margin-top: 18px; }

.pq-home__tipo { position: relative; }
.pq-home__tipo input { position: absolute; opacity: 0; pointer-events: none; }
.pq-home__tipo span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 16px;
  border-radius: var(--r-full);
  border: 1px solid var(--line);
  background: var(--bg-soft);
  font-size: .86rem;
  font-weight: 600;
  color: var(--body);
  cursor: pointer;
  transition: background-color .2s, border-color .2s, color .2s, transform .2s var(--ease);
}
.pq-home__tipo span:hover { border-color: var(--brand-500); color: var(--brand); transform: translateY(-1px); }
.pq-home__tipo input:checked + span,
.pq-home__tipo.is-demo span { background: var(--brand); border-color: var(--brand); color: #fff; }
.pq-home__tipo input:focus-visible + span { outline: 3px solid var(--gold); outline-offset: 2px; }

.pq-home__nota { margin-top: 14px; font-size: .8rem; color: var(--muted); }

/* ===========================================================
   PESQUISA DE MARCA — página
   =========================================================== */
.crumbs--claro { color: var(--muted); }
.crumbs--claro a:hover { color: var(--brand); }

.pq-hero {
  position: relative;
  padding: clamp(28px, 4vw, 44px) 0 clamp(60px, 8vw, 100px);
  background:
    radial-gradient(50% 50% at 85% 0%, rgba(68, 64, 155, .1), transparent 70%),
    linear-gradient(180deg, #fff, var(--bg-soft));
}

.pq-hero__cabeca { max-width: 760px; margin: 22px auto 30px; text-align: center; }
.pq-hero__cabeca h1 { font-size: clamp(2rem, 4.4vw, 3.3rem); font-weight: 800; letter-spacing: -.04em; margin-bottom: 14px; }
.pq-hero__cabeca h1 em { font-style: normal; color: var(--brand); display: block; }
.pq-hero__cabeca p { font-size: clamp(1rem, 1.6vw, 1.12rem); color: var(--body); }

.pq-busca {
  max-width: 920px;
  margin: 0 auto;
  padding: clamp(22px, 3.4vw, 40px);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 28px;
  box-shadow: 0 30px 70px rgba(19, 17, 48, .1);
}

.pq-passo { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 16px; }
.pq-passo + .pq-passo { margin-top: 28px; padding-top: 28px; border-top: 1px dashed var(--line); }
.pq-passo__n {
  width: 38px; height: 38px; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--brand); color: #fff;
  font: 700 .95rem var(--font-display);
}
.pq-rotulo { display: block; font: 700 1.12rem/1.3 var(--font-display); color: var(--ink); margin: 6px 0 14px; letter-spacing: -.01em; }

.pq-campo {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0 20px;
  border: 1.5px solid var(--line);
  border-radius: var(--r-full);
  background: #fff;
  color: var(--muted);
  transition: border-color .2s, box-shadow .2s;
}
.pq-campo:focus-within { border-color: var(--brand); box-shadow: 0 0 0 5px rgba(68, 64, 155, .12); color: var(--brand); }
.pq-campo.has-error { border-color: #F0A8A1; background: #FFF6F5; }
.pq-campo input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; padding: 16px 0; font-size: 1.1rem; font-weight: 500; color: var(--ink); }
.pq-campo--atv { border-radius: 16px; }
.pq-campo--atv input { font-size: 1rem; padding: 13px 0; }

.pq-tipos { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.pq-tipo {
  padding: 8px 15px;
  border-radius: var(--r-full);
  border: 1px solid var(--line);
  background: var(--bg-soft);
  font-size: .84rem;
  font-weight: 600;
  color: var(--body);
  transition: background-color .2s, border-color .2s, color .2s;
}
.pq-tipo:hover { border-color: var(--brand-500); color: var(--brand); }
.pq-tipo.is-on { background: var(--brand); border-color: var(--brand); color: #fff; }

.pq-sugestoes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  max-height: 318px;
  overflow-y: auto;
  margin-top: 12px;
  padding: 4px 6px 4px 0;
  scrollbar-width: thin;
  scrollbar-color: rgba(68, 64, 155, .3) transparent;
}

.pq-atv {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  padding: 11px 13px;
  border: 1.5px solid var(--line);
  border-radius: 14px;
  background: #fff;
  text-align: left;
  transition: border-color .2s, background-color .2s;
}
.pq-atv:hover { border-color: var(--brand-500); background: #FBFBFE; }
.pq-atv.is-on { border-color: var(--brand); background: var(--brand-tint); }
.pq-atv__check {
  flex: none;
  width: 20px; height: 20px;
  margin-top: 1px;
  border-radius: 6px;
  border: 2px solid var(--line);
  background: #fff;
}
.pq-atv.is-on .pq-atv__check {
  border-color: var(--brand);
  background: var(--brand) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/12px no-repeat;
}
.pq-atv__txt b { display: block; font-size: .87rem; font-weight: 600; color: var(--ink); line-height: 1.35; }
.pq-atv__txt small { font-size: .72rem; color: var(--muted); }
.pq-vazio { grid-column: 1 / -1; padding: 16px; text-align: center; font-size: .88rem; color: var(--muted); background: var(--bg-soft); border-radius: 14px; }

.pq-escolhidas { display: flex; align-items: flex-start; gap: 10px; margin-top: 14px; }
.pq-escolhidas__rotulo { flex: none; font-size: .8rem; font-weight: 600; color: var(--muted); padding-top: 6px; }
#pqEscolhidas { display: flex; flex-wrap: wrap; gap: 6px; }
.pq-escolhidas__vazio { font-size: .8rem; color: #9A99AF; padding-top: 6px; }

.pq-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 8px 6px 12px;
  border-radius: var(--r-full);
  background: var(--brand-tint);
  color: var(--brand-700);
  font-size: .78rem;
  font-weight: 600;
  line-height: 1.3;
}
.pq-chip button { width: 20px; height: 20px; border-radius: 50%; display: grid; place-items: center; color: var(--brand); font-size: 1rem; line-height: 1; }
.pq-chip button:hover { background: var(--brand); color: #fff; }
.pq-chip--vazio { background: #FDF1F0; color: #8A3A33; padding-right: 12px; }

.pq-enviar { display: flex; flex-direction: column; align-items: center; gap: 10px; margin-top: 30px; padding-top: 26px; border-top: 1px solid var(--line-soft); }
.pq-enviar small { font-size: .8rem; color: var(--muted); }
.pq-erro { font-size: .86rem; font-weight: 600; color: #B9443B; background: #FDEFEE; padding: 8px 14px; border-radius: 10px; }

/* --- Resultado --- */
.pq-resultado { max-width: 920px; margin: 34px auto 0; scroll-margin-top: calc(var(--header-h) + 20px); outline: none; }

.pq-carregando {
  padding: 34px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 24px;
  text-align: center;
  box-shadow: var(--shadow-lg);
}
.pq-carregando__lupa {
  width: 58px; height: 58px; margin: 0 auto 12px;
  display: grid; place-items: center;
  border-radius: 50%;
  background: var(--brand-tint);
  color: var(--brand);
  animation: lupaBusca 1.2s ease-in-out infinite;
}
.pq-carregando__lupa svg { width: 26px; height: 26px; }
@keyframes lupaBusca { 0%, 100% { transform: translate(-6px, 0); } 50% { transform: translate(6px, -4px); } }
.pq-carregando > b { display: block; font: 700 1.1rem var(--font-display); color: var(--ink); margin-bottom: 16px; }
.pq-carregando ul { display: inline-grid; gap: 8px; text-align: left; }
.pq-carregando li { position: relative; padding-left: 28px; font-size: .9rem; color: #9A99AF; transition: color .3s; }
.pq-carregando li::before { content: ''; position: absolute; left: 0; top: 3px; width: 18px; height: 18px; border-radius: 50%; border: 2px solid var(--line); transition: all .3s; }
.pq-carregando li.is-ok { color: var(--ink); }
.pq-carregando li.is-ok::before {
  border-color: var(--success);
  background: var(--success) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/10px no-repeat;
}

.pq-parecer {
  --tom: var(--success);
  --tom-fundo: #ECF8F1;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 26px;
  box-shadow: var(--shadow-xl);
  overflow: hidden;
  animation: janelaIn .5s var(--ease) both;
}
.pq-parecer--atencao { --tom: #C98A00; --tom-fundo: #FFF6DC; }
.pq-parecer--risco { --tom: #C4483F; --tom-fundo: #FDEFEE; }

.pq-parecer__topo {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 6px 16px;
  padding: 14px 28px;
  background: var(--brand-900);
  color: rgba(255, 255, 255, .72);
  font-size: .78rem;
}
.pq-parecer__topo span:first-child { color: #fff; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }

.pq-parecer__resumo {
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr);
  gap: clamp(20px, 4vw, 40px);
  align-items: center;
  padding: clamp(24px, 4vw, 38px) clamp(20px, 4vw, 38px);
  background: linear-gradient(180deg, var(--tom-fundo), #fff);
}

.pq-medidor {
  width: 190px;
  aspect-ratio: 1;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: conic-gradient(var(--tom) calc(var(--p) * 1%), var(--line-soft) 0);
}
.pq-medidor__miolo {
  width: 78%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: #fff;
  display: grid;
  place-content: center;
  text-align: center;
  box-shadow: inset 0 0 0 1px var(--line-soft);
}
.pq-medidor__miolo b { font: 800 2.5rem/1 var(--font-display); color: var(--tom); letter-spacing: -.03em; }
.pq-medidor__miolo small { display: block; max-width: 110px; margin: 6px auto 0; font-size: .68rem; line-height: 1.3; color: var(--muted); }

.pq-veredito {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 14px;
  border-radius: var(--r-full);
  background: var(--tom);
  color: #fff;
  font-size: .8rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.pq-parecer__texto h2 { font-size: clamp(1.6rem, 3.4vw, 2.3rem); margin: 12px 0 10px; word-break: break-word; }
.pq-parecer__atvs { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.pq-parecer__texto p { font-size: .96rem; color: var(--body); }
.pq-parecer__texto em { display: block; margin-top: 6px; font-style: normal; font-size: .82rem; color: var(--muted); }

.pq-parecer__bloco { padding: 26px clamp(20px, 4vw, 38px); border-top: 1px solid var(--line-soft); }
.pq-parecer__bloco h3 { font-size: 1.05rem; margin-bottom: 14px; }

.pq-criterios { display: grid; gap: 10px; }
.pq-crit {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  gap: 14px;
  align-items: start;
  padding: 14px 16px;
  border-radius: 16px;
  background: var(--bg-soft);
}
.pq-crit__ico { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; }
.pq-crit b { display: block; font-size: .93rem; color: var(--ink); margin-bottom: 2px; }
.pq-crit p { font-size: .85rem; color: var(--body); line-height: 1.5; }
.pq-crit__tag { font-size: .68rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; padding: 4px 10px; border-radius: var(--r-full); white-space: nowrap; }
.pq-crit--ok .pq-crit__ico, .pq-crit--ok .pq-crit__tag { background: #ECF8F1; color: var(--success); }
.pq-crit--atencao .pq-crit__ico, .pq-crit--atencao .pq-crit__tag { background: #FFF6DC; color: #9A6A00; }
.pq-crit--risco .pq-crit__ico, .pq-crit--risco .pq-crit__tag { background: #FDEFEE; color: #C4483F; }
.pq-crit--pendente .pq-crit__ico, .pq-crit--pendente .pq-crit__tag { background: var(--brand-tint); color: var(--brand); }

.pq-pendente { display: flex; gap: 14px; padding: 16px 18px; border-radius: 16px; background: var(--brand-tint); }
.pq-pendente__ico { flex: none; width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--brand); color: #fff; }
.pq-pendente b { display: block; color: var(--brand-700); margin-bottom: 3px; }
.pq-pendente p { font-size: .87rem; color: var(--brand-700); }
.pq-nota-ok { padding: 14px 16px; border-radius: 14px; background: #ECF8F1; color: var(--success); font-size: .9rem; }

.pq-tabela { overflow-x: auto; }
.pq-tabela table { width: 100%; border-collapse: collapse; font-size: .86rem; }
.pq-tabela th { text-align: left; font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); padding: 0 10px 10px; border-bottom: 1px solid var(--line); }
.pq-tabela td { padding: 12px 10px; border-bottom: 1px solid var(--line-soft); vertical-align: top; color: var(--body); }
.pq-tabela td b { display: block; color: var(--ink); }
.pq-tabela td small { display: block; font-size: .72rem; color: var(--muted); margin-top: 2px; }
.pq-sem { display: flex; align-items: center; gap: 8px; min-width: 130px; }
.pq-sem i { flex: 1; height: 6px; border-radius: 99px; background: linear-gradient(90deg, var(--c) var(--v), var(--line-soft) var(--v)); }
.pq-sem b { font-size: .84rem; }
.pq-sem--ok { --c: var(--success); }
.pq-sem--atencao { --c: #E0A100; }
.pq-sem--risco { --c: #E8857C; }

.pq-parecer__acoes { display: flex; flex-wrap: wrap; gap: 12px; padding: 24px clamp(20px, 4vw, 38px) 8px; border-top: 1px solid var(--line-soft); }
.pq-aviso { padding: 12px clamp(20px, 4vw, 38px) 26px; font-size: .74rem; color: var(--muted); line-height: 1.5; }

@media (max-width: 720px) {
  .pq-home__barra { flex-wrap: wrap; padding: 8px; border-radius: 22px; }
  .pq-home__barra > svg { margin-left: 10px; }
  .pq-home__barra input { font-size: 1rem; }
  .pq-home__barra .btn { width: 100%; }
  .pq-home__tipo span { font-size: .8rem; padding: 8px 12px; }

  .pq-passo { grid-template-columns: 1fr; gap: 8px; }
  .pq-passo__n { width: 30px; height: 30px; font-size: .82rem; }
  .pq-sugestoes { grid-template-columns: 1fr; max-height: 280px; }
  .pq-escolhidas { flex-direction: column; gap: 6px; }
  .pq-enviar .btn { width: 100%; }

  .pq-parecer__resumo { grid-template-columns: 1fr; justify-items: center; text-align: center; }
  .pq-parecer__atvs { justify-content: center; }
  .pq-medidor { width: 170px; }
  .pq-crit { grid-template-columns: 30px minmax(0, 1fr); }
  .pq-crit__ico { width: 30px; height: 30px; }
  .pq-crit__tag { grid-column: 2; justify-self: start; }
  .pq-parecer__acoes .btn { width: 100%; }
  .pq-parecer__topo { padding-inline: 20px; }
}

@media (prefers-reduced-motion: reduce) {
  .pq-carregando__lupa { animation: none !important; }
}
