/* ============================================================
   REGISTRAFROTA — Cadastro e gestão do RNTRC
   Folha de estilos principal — identidade visual oficial
   ============================================================ */

/* ---------- Fontes: Poppins (Bold em títulos, Regular no texto) ---------- */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700;800&display=swap');

/* ---------- Tokens — paleta oficial RegistraFrota ---------- */
:root{
  /* Azul-marinho (cor primária da marca) e suas variações tonais */
  --navy-950:#081226;
  --navy-900:#0D1B3D;   /* Azul Marinho oficial */
  --navy-700:#17335C;
  --navy-500:#274A80;

  /* Azul petróleo (cor secundária da marca) */
  --blue-500:#0077B6;   /* Azul Petróleo oficial */
  --blue-600:#00618F;
  --blue-050:#E5F3FA;

  /* Neutros da marca */
  --ink:#182233;
  --asphalt-soft:#4B5563;  /* Cinza Escuro oficial */
  --gray-100:#F2F4F7;      /* Cinza Claro oficial */
  --gray-150:#EAEDF1;
  --gray-200:#DEE2E8;
  --white:#FFFFFF;

  /* Verde (cor de destaque / CTA da marca) */
  --brand-green:#1BA14B;   /* Verde oficial */
  --brand-green-dark:#148A40;
  --brand-green-light:#E7F6EC;

  /* Estados — situação da consulta RNTRC (cores de apoio, fora da paleta de marca) */
  --green-600:#1BA14B;
  --green-050:#E7F6EC;
  --red-600:#C0392B;
  --red-050:#FCEBE9;
  --yellow-600:#B9860B;
  --yellow-050:#FBF1DC;

  --font-display: 'Poppins', sans-serif;
  --font-body: 'Poppins', sans-serif;

  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 14px;

  --shadow-card: 0 2px 10px rgba(7,27,51,0.08), 0 1px 2px rgba(7,27,51,0.06);
  --shadow-pop: 0 20px 60px rgba(7,27,51,0.35);

  --container: 1180px;
}

/* ---------- Reset básico ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--white);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{margin:0;padding:0;list-style:none;}
button{font-family:inherit;cursor:pointer;}
h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:800;
  line-height:1.05;
  margin:0 0 .5em;
  color:var(--navy-950);
  letter-spacing:.2px;
}
p{margin:0 0 1em;}
.container{
  width:100%;
  max-width:var(--container);
  margin:0 auto;
  padding:0 24px;
}
:focus-visible{
  outline:3px solid var(--brand-green);
  outline-offset:2px;
}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important; transition-duration:.001ms !important;}
}

/* ---------- Elemento assinatura: divisor "faixa de pista" ---------- */
.lane-divider{
  height:0;
  border-top:4px dashed var(--brand-green);
  opacity:.55;
  margin:0 auto;
  max-width:120px;
}
.lane-divider.left{margin:0;}
.section-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--font-display);
  font-weight:700;
  font-size:14px;
  letter-spacing:2.5px;
  text-transform:uppercase;
  color:var(--brand-green-dark);
  margin-bottom:10px;
}
.section-eyebrow::before{
  content:"";
  width:22px;
  height:3px;
  background:var(--brand-green);
  border-radius:2px;
}

/* ============================================================
   TOPO DE AVISO
   ============================================================ */
.top-bar{
  background:var(--navy-950);
  color:#C9D6E4;
  font-size:13px;
}
.top-bar .container{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding-top:8px;
  padding-bottom:8px;
  gap:12px;
  flex-wrap:wrap;
}
.top-bar strong{color:var(--white);}
.top-bar a{color:#C9D6E4;}
.top-bar a:hover{color:var(--brand-green);}
.top-bar .top-links{display:flex;gap:18px;align-items:center;}

/* ============================================================
   CABEÇALHO
   ============================================================ */
.site-header{
  position:sticky;
  top:0;
  z-index:60;
  background:var(--white);
  border-bottom:1px solid var(--gray-200);
}
.site-header .container{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-top:14px;
  padding-bottom:14px;
}
.brand{
  display:flex;
  align-items:center;
  gap:11px;
  font-family:var(--font-display);
  font-weight:800;
  font-size:24px;
  color:var(--navy-950);
  line-height:1.05;
}
.brand .brand-text{display:flex;flex-direction:column;}
.brand .brand-mark{
  width:40px;height:40px;
  flex-shrink:0;
}
.brand span{color:var(--brand-green-dark);}
.brand .brand-tag{
  display:block;
  font-family:var(--font-body);
  font-weight:600;
  font-size:10px;
  letter-spacing:1.6px;
  text-transform:uppercase;
  color:var(--asphalt-soft);
  margin-top:1px;
}
.main-nav ul{display:flex;gap:30px;}
.main-nav a{
  font-weight:600;
  font-size:15px;
  color:var(--ink);
  padding:6px 2px;
  border-bottom:2px solid transparent;
  transition:border-color .15s, color .15s;
}
.main-nav a:hover{color:var(--navy-900);border-color:var(--brand-green);}
.header-actions{display:flex;align-items:center;gap:14px;}
.phone-line{
  display:flex;
  flex-direction:column;
  font-size:13px;
  color:var(--asphalt-soft);
  text-align:right;
  line-height:1.3;
}
.phone-line strong{
  font-family:var(--font-display);
  font-size:18px;
  color:var(--navy-950);
  letter-spacing:.5px;
}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-weight:700;
  font-size:15px;
  padding:12px 22px;
  border-radius:var(--radius-md);
  border:2px solid transparent;
  transition:transform .12s ease, box-shadow .12s ease, background .15s, color .15s, border-color .15s;
  white-space:nowrap;
}
.btn:active{transform:translateY(1px);}
.btn-brand{
  background:var(--brand-green);
  color:var(--navy-950);
  box-shadow:0 2px 0 var(--brand-green-dark);
}
.btn-brand:hover{background:#ffb238;}
.btn-navy{
  background:var(--navy-950);
  color:var(--white);
}
.btn-navy:hover{background:var(--navy-700);}
.btn-outline{
  background:transparent;
  border-color:var(--white);
  color:var(--white);
}
.btn-outline:hover{background:rgba(255,255,255,.12);}
.btn-outline-navy{
  background:transparent;
  border-color:var(--navy-950);
  color:var(--navy-950);
}
.btn-outline-navy:hover{background:var(--navy-950);color:var(--white);}
.btn-block{width:100%;}
.btn-sm{padding:8px 14px;font-size:13px;}

.menu-toggle{
  display:none;
  width:42px;height:42px;
  border:1px solid var(--gray-200);
  border-radius:var(--radius-sm);
  background:var(--white);
  align-items:center;
  justify-content:center;
}
.menu-toggle span,.menu-toggle span::before,.menu-toggle span::after{
  content:"";
  display:block;
  width:20px;height:2px;
  background:var(--navy-950);
  position:relative;
}
.menu-toggle span::before{position:absolute;top:-6px;}
.menu-toggle span::after{position:absolute;top:6px;}

/* ============================================================
   HERO + CONSULTA RNTRC EM DESTAQUE
   ============================================================ */
.hero{
  background:
    radial-gradient(1100px 480px at 85% -10%, rgba(245,166,35,.16), transparent 60%),
    linear-gradient(180deg, var(--navy-950) 0%, var(--navy-900) 55%, var(--navy-700) 100%);
  color:var(--white);
  position:relative;
  overflow:hidden;
  padding:64px 0 90px;
}
.hero::before{
  /* linha de pista tracejada decorativa no rodapé do hero */
  content:"";
  position:absolute;
  left:0;right:0;bottom:36px;
  height:0;
  border-top:5px dashed rgba(245,166,35,.35);
}
.hero-grid{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:56px;
  align-items:start;
  position:relative;
  z-index:2;
}
.hero-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.18);
  padding:7px 14px;
  border-radius:999px;
  font-size:13px;
  font-weight:600;
  margin-bottom:20px;
}
.hero-badge .dot{
  width:8px;height:8px;border-radius:50%;
  background:#39D67A;
  box-shadow:0 0 0 3px rgba(57,214,122,.25);
}
.hero h1{
  font-size:52px;
  color:var(--white);
  max-width:600px;
}
.hero h1 em{
  font-style:normal;
  color:var(--brand-green);
}
.hero .lead{
  font-size:18px;
  color:#D6E0EB;
  max-width:520px;
  margin-bottom:28px;
}
.hero-cta-row{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:34px;}
.hero-stats{
  display:flex;
  gap:34px;
  flex-wrap:wrap;
  padding-top:22px;
  border-top:1px solid rgba(255,255,255,.14);
}
.hero-stats .stat b{
  display:block;
  font-family:var(--font-display);
  font-size:30px;
  color:var(--white);
}
.hero-stats .stat span{
  font-size:13px;
  color:#B7C6D6;
}

/* ---- Widget de consulta (cartão de destaque) ---- */
.consulta-card{
  background:var(--white);
  color:var(--ink);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-pop);
  padding:26px 26px 22px;
  position:relative;
  z-index:2;
}
.consulta-card::before{
  content:"";
  position:absolute;
  top:0;left:22px;right:22px;
  height:6px;
  background:repeating-linear-gradient(90deg, var(--brand-green) 0 18px, transparent 18px 30px);
  border-radius:0 0 4px 4px;
}
.consulta-card .cc-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  margin-bottom:6px;
}
.consulta-card h2{
  font-size:24px;
  margin-bottom:2px;
}
.consulta-card .cc-tag{
  font-size:11px;
  font-weight:700;
  letter-spacing:1px;
  text-transform:uppercase;
  background:var(--green-050);
  color:var(--green-600);
  padding:4px 9px;
  border-radius:999px;
  white-space:nowrap;
  margin-top:4px;
}
.consulta-card p.cc-desc{
  font-size:14px;
  color:var(--asphalt-soft);
  margin-bottom:18px;
}
.consulta-tabs{
  display:flex;
  gap:6px;
  background:var(--gray-100);
  padding:4px;
  border-radius:var(--radius-md);
  margin-bottom:14px;
}
.consulta-tabs button{
  flex:1;
  border:0;
  background:transparent;
  padding:9px 8px;
  font-weight:700;
  font-size:13px;
  border-radius:6px;
  color:var(--asphalt-soft);
  transition:background .15s, color .15s;
}
.consulta-tabs button.active{
  background:var(--white);
  color:var(--navy-950);
  box-shadow:var(--shadow-card);
}
.consulta-form{display:flex;flex-direction:column;gap:12px;}
.consulta-form label{
  font-size:12.5px;
  font-weight:700;
  color:var(--asphalt-soft);
  text-transform:uppercase;
  letter-spacing:.6px;
}
.field-input{
  width:100%;
  padding:13px 14px;
  border:1.5px solid var(--gray-200);
  border-radius:var(--radius-md);
  font-size:16px;
  font-family:var(--font-body);
  background:var(--gray-100);
  transition:border-color .15s, background .15s;
}
.field-input:focus{
  border-color:var(--brand-green);
  background:var(--white);
}
.consulta-form .cc-note{
  font-size:12px;
  color:var(--asphalt-soft);
  display:flex;
  gap:6px;
  align-items:flex-start;
}
.consulta-form .cc-note svg{flex-shrink:0;margin-top:2px;}

/* ============================================================
   MODAL DE RESULTADO DA CONSULTA
   ============================================================ */
.modal-overlay{
  position:fixed;inset:0;
  background:rgba(7,27,51,.62);
  backdrop-filter:blur(2px);
  display:none;
  align-items:center;
  justify-content:center;
  padding:20px;
  z-index:200;
}
.modal-overlay.open{display:flex;}
.modal-box{
  background:var(--white);
  border-radius:var(--radius-lg);
  max-width:480px;
  width:100%;
  max-height:90vh;
  overflow-y:auto;
  box-shadow:var(--shadow-pop);
  position:relative;
  animation:pop-in .18s ease;
}
@keyframes pop-in{
  from{opacity:0; transform:translateY(10px) scale(.98);}
  to{opacity:1; transform:translateY(0) scale(1);}
}
.modal-close{
  position:absolute;
  top:14px;right:14px;
  width:32px;height:32px;
  border-radius:50%;
  border:0;
  background:var(--gray-100);
  color:var(--ink);
  font-size:18px;
  line-height:1;
  z-index:2;
}
.modal-close:hover{background:var(--gray-200);}

/* ---- Cartão-credencial (elemento assinatura) ---- */
.credential{
  border-radius:var(--radius-lg) var(--radius-lg) 0 0;
  overflow:hidden;
}
.credential-strip{
  height:10px;
  background:var(--gray-200);
}
.credential-strip.status-regular{background:var(--green-600);}
.credential-strip.status-irregular{background:var(--red-600);}
.credential-strip.status-pendente{background:var(--yellow-600);}
.credential-head{
  padding:24px 28px 16px;
  background:var(--navy-950);
  color:var(--white);
}
.credential-head .cred-eyebrow{
  font-size:11px;
  letter-spacing:2px;
  text-transform:uppercase;
  color:#9FB3C8;
  font-weight:700;
  margin-bottom:6px;
}
.credential-head h3{
  color:var(--white);
  font-size:26px;
  margin-bottom:4px;
}
.status-pill{
  display:inline-flex;
  align-items:center;
  gap:7px;
  font-family:var(--font-display);
  font-weight:700;
  font-size:14px;
  letter-spacing:.6px;
  text-transform:uppercase;
  padding:5px 12px;
  border-radius:999px;
}
.status-pill .dot{width:8px;height:8px;border-radius:50%;}
.status-pill.status-regular{background:var(--green-050);color:var(--green-600);}
.status-pill.status-regular .dot{background:var(--green-600);}
.status-pill.status-irregular{background:var(--red-050);color:var(--red-600);}
.status-pill.status-irregular .dot{background:var(--red-600);}
.status-pill.status-pendente{background:var(--yellow-050);color:var(--yellow-600);}
.status-pill.status-pendente .dot{background:var(--yellow-600);}

.credential-body{padding:22px 28px 26px;}
.cred-row{
  display:flex;
  justify-content:space-between;
  gap:14px;
  padding:11px 0;
  border-bottom:1px dashed var(--gray-200);
  font-size:14.5px;
}
.cred-row:last-of-type{border-bottom:0;}
.cred-row span{color:var(--asphalt-soft);}
.cred-row strong{color:var(--navy-950); text-align:right;}
.credential-foot{
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid var(--gray-200);
  display:flex;
  flex-direction:column;
  gap:10px;
}
.credential-foot p{
  font-size:12.5px;
  color:var(--asphalt-soft);
  margin:0;
}

.modal-state{padding:40px 28px;text-align:center;}
.modal-state .spinner{
  width:38px;height:38px;
  border-radius:50%;
  border:3px solid var(--gray-200);
  border-top-color:var(--brand-green);
  margin:0 auto 18px;
  animation:spin 0.85s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg);}}
.modal-state h3{font-size:20px;margin-bottom:6px;}
.modal-state p{color:var(--asphalt-soft);font-size:14px;}
.modal-state.error h3{color:var(--red-600);}

/* ---- Prévia borrada (antes do pagamento) ---- */
.credential-body.is-blurred{position:relative;}
.blur-content{
  filter:blur(6px);
  user-select:none;
  pointer-events:none;
}
.blur-overlay{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  gap:8px;
  padding:0 20px;
  background:rgba(255,255,255,.35);
}
.blur-overlay .lock-badge{
  width:44px;height:44px;
  border-radius:50%;
  background:var(--navy-950);
  display:flex;align-items:center;justify-content:center;
  margin-bottom:4px;
}
.blur-overlay strong{
  font-family:var(--font-display);
  font-size:15px;
  color:var(--navy-950);
}
.blur-overlay span{
  font-size:12.5px;
  color:var(--asphalt-soft);
}

/* ---- Caixa de pagamento Pix ---- */
.pix-box{
  padding:22px 28px 26px;
  border-top:1px dashed var(--gray-200);
}
.pix-price{
  display:flex;
  align-items:baseline;
  justify-content:center;
  gap:6px;
  font-family:var(--font-display);
  font-size:28px;
  font-weight:800;
  color:var(--navy-950);
  margin-bottom:16px;
}
.pix-price span{
  font-family:var(--font-body);
  font-size:13px;
  font-weight:600;
  color:var(--asphalt-soft);
}
.pix-qr-wrap{
  display:flex;
  justify-content:center;
  margin-bottom:16px;
}
.pix-qr-wrap img{
  width:180px;height:180px;
  border:8px solid var(--white);
  outline:1px solid var(--gray-200);
  border-radius:10px;
}
.pix-copy{
  display:flex;
  gap:8px;
  margin-bottom:16px;
}
.pix-copy input{
  flex:1;
  padding:11px 12px;
  border:1.5px solid var(--gray-200);
  border-radius:var(--radius-md);
  font-size:12px;
  color:var(--asphalt-soft);
  background:var(--gray-100);
  font-family:monospace;
}
.pix-status{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  font-size:13.5px;
  font-weight:600;
  color:var(--asphalt-soft);
}
.pix-status .spinner-sm{
  width:16px;height:16px;
  border-radius:50%;
  border:2.5px solid var(--gray-200);
  border-top-color:var(--brand-green);
  animation:spin 0.85s linear infinite;
  flex-shrink:0;
}
.pix-status.paga{color:var(--green-600);}
.pix-expira{
  text-align:center;
  font-size:12px;
  color:var(--asphalt-soft);
  margin-top:10px;
}
.teste-banner{
  background:var(--yellow-050);
  color:var(--yellow-600);
  border:1px solid #F0DCA6;
  border-radius:var(--radius-md);
  padding:10px 14px;
  font-size:12.5px;
  font-weight:700;
  text-align:center;
  margin-bottom:16px;
}

/* ============================================================
   FAIXA DE CONFIANÇA
   ============================================================ */
.trust-strip{
  background:var(--gray-100);
  border-bottom:1px solid var(--gray-200);
  padding:26px 0;
}
.trust-strip .container{
  display:flex;
  justify-content:space-between;
  gap:24px;
  flex-wrap:wrap;
}
.trust-item{
  display:flex;
  align-items:center;
  gap:12px;
  font-size:14px;
  color:var(--asphalt-soft);
  font-weight:600;
}
.trust-item b{
  font-family:var(--font-display);
  font-size:24px;
  color:var(--navy-950);
  font-weight:800;
}

/* ============================================================
   SEÇÕES GERAIS
   ============================================================ */
.section{padding:88px 0;}
.section-alt{background:var(--gray-100);}
.section-head{
  max-width:640px;
  margin:0 auto 48px;
  text-align:center;
}
.section-head h2{font-size:38px;}
.section-head p{color:var(--asphalt-soft); font-size:16.5px;}
.section-head.left{margin:0 0 44px;text-align:left;}

/* ---- Toggle PF/PJ (reutilizável) ---- */
.pfpj-toggle{
  display:inline-flex;
  background:var(--white);
  border:1.5px solid var(--gray-200);
  border-radius:999px;
  padding:4px;
  margin:0 auto 40px;
}
.section-head.left .pfpj-toggle{margin:0 0 30px;}
.pfpj-toggle button{
  border:0;
  background:transparent;
  padding:10px 26px;
  font-weight:700;
  font-size:14px;
  border-radius:999px;
  color:var(--asphalt-soft);
  transition:background .15s,color .15s;
}
.pfpj-toggle button.active{
  background:var(--navy-950);
  color:var(--white);
}

/* ---- Cards de serviço ---- */
.services-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:22px;
}
.service-card{
  background:var(--white);
  border:1px solid var(--gray-200);
  border-radius:var(--radius-lg);
  padding:26px 22px;
  box-shadow:var(--shadow-card);
  display:flex;
  flex-direction:column;
  transition:transform .15s ease, box-shadow .15s ease;
}
.service-card:hover{
  transform:translateY(-4px);
  box-shadow:0 14px 30px rgba(7,27,51,.12);
}
.service-icon{
  width:48px;height:48px;
  border-radius:10px;
  background:var(--navy-950);
  display:flex;align-items:center;justify-content:center;
  margin-bottom:16px;
}
.service-card h3{font-size:21px;margin-bottom:8px;}
.service-card p{
  font-size:14px;
  color:var(--asphalt-soft);
  margin-bottom:18px;
  flex-grow:1;
}
.service-card .price-tag{
  font-size:12px;
  font-weight:700;
  color:var(--brand-green-dark);
  text-transform:uppercase;
  letter-spacing:.5px;
  margin-bottom:14px;
}
.service-card a.btn{align-self:flex-start;}

/* ---- Como funciona (linha do tempo) ---- */
.steps-row{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:0;
  position:relative;
}
.step{
  position:relative;
  padding:0 20px;
  text-align:center;
}
.step:not(:first-child)::before{
  content:"";
  position:absolute;
  top:29px;
  left:-50%;
  width:100%;
  border-top:3px dashed var(--gray-200);
  z-index:0;
}
.step-num{
  width:58px;height:58px;
  border-radius:50%;
  background:var(--white);
  border:3px solid var(--brand-green);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-display);
  font-size:24px;
  font-weight:800;
  color:var(--navy-950);
  margin:0 auto 18px;
  position:relative;
  z-index:1;
}
.step h3{font-size:19px;margin-bottom:6px;}
.step p{font-size:13.5px;color:var(--asphalt-soft);}

/* ---- Documentos ---- */
.docs-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:18px;
}
.doc-card{
  background:var(--white);
  border:1px solid var(--gray-200);
  border-radius:var(--radius-md);
  padding:20px 22px;
}
.doc-card h4{
  font-size:18px;
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:10px;
}
.doc-card h4 .tag-mini{
  font-family:var(--font-body);
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.5px;
  background:var(--brand-green-light);
  color:var(--brand-green-dark);
  padding:3px 8px;
  border-radius:999px;
}
.doc-card h4 .tag-mini.tag-blue{
  background:var(--blue-050);
  color:var(--blue-600);
}
.doc-card ul{display:flex;flex-direction:column;gap:8px;}
.doc-card li{
  font-size:14px;
  color:var(--asphalt-soft);
  display:flex;
  gap:9px;
  align-items:flex-start;
}
.doc-card li::before{
  content:"";
  width:6px;height:6px;
  border-radius:50%;
  background:var(--brand-green);
  margin-top:7px;
  flex-shrink:0;
}

/* ============================================================
   FORMULÁRIO DE SOLICITAÇÃO
   ============================================================ */
.form-panel{
  background:var(--white);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-card);
  border:1px solid var(--gray-200);
  padding:40px;
}
.form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px 20px;
}
.form-field{display:flex;flex-direction:column;gap:7px;}
.form-field.full{grid-column:1 / -1;}
.form-field label{
  font-size:13px;
  font-weight:700;
  color:var(--navy-950);
}
.form-field label .opt{
  font-weight:500;
  color:var(--asphalt-soft);
  text-transform:none;
}
.form-field select{
  width:100%;
  padding:13px 14px;
  border:1.5px solid var(--gray-200);
  border-radius:var(--radius-md);
  font-size:15px;
  font-family:var(--font-body);
  background:var(--white);
}
textarea.field-input{resize:vertical;min-height:90px;}

.upload-box{
  border:1.5px dashed var(--gray-200);
  border-radius:var(--radius-md);
  padding:16px;
  display:flex;
  align-items:center;
  gap:12px;
  background:var(--gray-100);
  transition:border-color .15s, background .15s;
  cursor:pointer;
}
.upload-box:hover{border-color:var(--brand-green);}
.upload-box.has-file{border-color:var(--green-600);background:var(--green-050);}
.upload-box input[type=file]{display:none;}
.upload-icon{
  width:38px;height:38px;
  border-radius:8px;
  background:var(--white);
  border:1px solid var(--gray-200);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.upload-text{font-size:13px;color:var(--asphalt-soft);}
.upload-text b{display:block;color:var(--navy-950);font-size:14px;}

.form-field.hidden{display:none;}

.consent-row{
  display:flex;
  gap:10px;
  align-items:flex-start;
  font-size:13px;
  color:var(--asphalt-soft);
  margin:22px 0 6px;
}
.consent-row input{margin-top:3px;}
.consent-row a{color:var(--blue-500); font-weight:600; text-decoration:underline;}

.form-msg{
  display:none;
  padding:14px 16px;
  border-radius:var(--radius-md);
  font-size:14px;
  font-weight:600;
  margin-top:18px;
}
.form-msg.show{display:block;}
.form-msg.success{background:var(--green-050);color:var(--green-600);}
.form-msg.error{background:var(--red-050);color:var(--red-600);}

/* ============================================================
   DEPOIMENTOS
   ============================================================ */
.testimonials-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
}
.testimonial{
  background:var(--white);
  border:1px solid var(--gray-200);
  border-radius:var(--radius-lg);
  padding:26px;
}
.stars{color:var(--brand-green);font-size:15px;margin-bottom:12px;letter-spacing:2px;}
.testimonial p{font-size:14.5px;color:var(--ink);margin-bottom:18px;}
.testi-author{display:flex;align-items:center;gap:10px;}
.testi-avatar{
  width:40px;height:40px;
  border-radius:50%;
  background:var(--navy-950);
  color:var(--white);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-display);
  font-weight:700;
}
.testi-author div span{display:block;font-size:12.5px;color:var(--asphalt-soft);}
.testi-author div b{font-size:14px;}

/* ============================================================
   FAQ
   ============================================================ */
.faq-list{max-width:820px;margin:0 auto;}
.faq-item{
  border-bottom:1px solid var(--gray-200);
}
.faq-q{
  width:100%;
  text-align:left;
  background:transparent;
  border:0;
  padding:20px 4px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  font-family:var(--font-display);
  font-size:19px;
  font-weight:700;
  color:var(--navy-950);
}
.faq-q .plus{
  width:26px;height:26px;
  border-radius:50%;
  border:1.5px solid var(--gray-200);
  flex-shrink:0;
  position:relative;
  transition:transform .2s ease, background .2s;
}
.faq-q .plus::before,.faq-q .plus::after{
  content:"";
  position:absolute;
  background:var(--navy-950);
  top:50%;left:50%;
  transform:translate(-50%,-50%);
}
.faq-q .plus::before{width:10px;height:2px;}
.faq-q .plus::after{width:2px;height:10px;transition:opacity .2s;}
.faq-item.open .faq-q .plus{background:var(--brand-green); border-color:var(--brand-green);}
.faq-item.open .faq-q .plus::after{opacity:0;}
.faq-a{
  max-height:0;
  overflow:hidden;
  transition:max-height .25s ease;
}
.faq-a p{
  padding:0 4px 20px;
  color:var(--asphalt-soft);
  font-size:14.5px;
  max-width:680px;
}

/* ============================================================
   CTA FINAL
   ============================================================ */
.cta-final{
  background:linear-gradient(120deg, var(--navy-950), var(--navy-700));
  color:var(--white);
  border-radius:var(--radius-lg);
  padding:56px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  flex-wrap:wrap;
}
.cta-final h2{color:var(--white);font-size:32px;margin-bottom:6px;}
.cta-final p{color:#C9D6E4;margin:0;}
.cta-final .cta-actions{display:flex;gap:12px;flex-wrap:wrap;}

/* ============================================================
   RODAPÉ
   ============================================================ */
.site-footer{
  background:var(--navy-950);
  color:#AFC0D2;
  padding:64px 0 24px;
  font-size:14px;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1.2fr;
  gap:36px;
  margin-bottom:40px;
}
.footer-brand .brand{color:var(--white);}
.footer-brand .brand span{color:var(--brand-green);}
.footer-brand p{margin-top:14px;color:#93A6BA;font-size:13.5px;line-height:1.6;}
.footer-col h5{
  font-family:var(--font-display);
  color:var(--white);
  font-size:16px;
  letter-spacing:.4px;
  margin-bottom:16px;
}
.footer-col ul{display:flex;flex-direction:column;gap:10px;}
.footer-col a:hover{color:var(--brand-green);}
.footer-disclaimer{
  border-top:1px solid rgba(255,255,255,.12);
  padding-top:22px;
  font-size:12.5px;
  color:#7E92A8;
  line-height:1.7;
}
.footer-bottom{
  display:flex;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  padding-top:20px;
  font-size:12.5px;
  color:#7E92A8;
}

/* ============================================================
   BOTÃO FLUTUANTE WHATSAPP
   ============================================================ */
.whats-float{
  position:fixed;
  bottom:22px;right:22px;
  width:60px;height:60px;
  border-radius:50%;
  background:#25D366;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 24px rgba(37,211,102,.45);
  z-index:100;
  transition:transform .15s ease;
}
.whats-float:hover{transform:scale(1.06);}

/* ============================================================
   RESPONSIVO
   ============================================================ */
@media (max-width:1024px){
  .hero-grid{grid-template-columns:1fr;gap:40px;}
  .hero h1{font-size:42px;}
  .services-grid{grid-template-columns:repeat(2,1fr);}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .docs-grid{grid-template-columns:1fr;}
  .testimonials-grid{grid-template-columns:1fr;}
}
@media (max-width:820px){
  .main-nav{display:none;}
  .menu-toggle{display:flex;}
  .phone-line{display:none;}
  .steps-row{grid-template-columns:1fr;gap:34px;}
  .step:not(:first-child)::before{display:none;}
  .form-grid{grid-template-columns:1fr;}
  .cta-final{flex-direction:column;text-align:center;}
  .top-bar .top-links{display:none;}
}
@media (max-width:560px){
  .hero{padding:44px 0 60px;}
  .hero h1{font-size:34px;}
  .section{padding:60px 0;}
  .services-grid{grid-template-columns:1fr;}
  .cta-final{padding:36px 24px;}
  .form-panel{padding:24px;}
  .credential-head,.credential-body{padding-left:20px;padding-right:20px;}
}

/* ---------- Menu mobile ---------- */
.mobile-nav{
  display:none;
  flex-direction:column;
  background:var(--white);
  border-top:1px solid var(--gray-200);
  padding:10px 24px 20px;
}
.mobile-nav.open{display:flex;}
.mobile-nav a{
  padding:12px 0;
  font-weight:600;
  border-bottom:1px solid var(--gray-150);
}
.mobile-nav .btn{margin-top:14px;}
