/* FAQ */
.faq { display: grid; gap: 10px; }
.faq details { border: 1px solid var(--borda-suave); border-radius: var(--raio); background: #fff; transition: border-color .15s; }
.faq details[open] { border-color: var(--borda); }
.faq summary { position: relative; padding: 16px 48px 16px 20px; font-weight: 600; list-style: none; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; position: absolute; right: 20px; top: 50%; transform: translateY(-50%); font-size: 1.4rem; color: var(--az); }
.faq details[open] summary::after { content: "–"; }
.faq summary:hover { color: var(--az); }
.faq p { margin: 0; padding: 0 20px 18px; color: var(--tx2); }

/* Texto (páginas legais e institucionais) */
.texto { color: var(--tx2); }
.texto h1, .texto h2, .texto h3, .texto h4, .texto h5 { color: var(--tx); margin: 1.6em 0 .5em; font-size: 1.25rem; }
.texto h1:first-child, .texto h2:first-child, .texto h3:first-child, .texto h4:first-child { margin-top: 0; }
.texto p, .texto li { max-width: 75ch; }
.texto ul, .texto ol { margin: 0 0 1em 1.3em; padding: 0; list-style: disc; }
.texto ol { list-style: decimal; }
.texto li { margin-bottom: .4em; }
.texto table { width: 100%; border-collapse: collapse; margin: 1em 0; }
.texto th, .texto td { padding: 10px 12px; border: 1px solid var(--borda-suave); text-align: left; }
.texto img { border-radius: var(--raio); }

/* Formulários (mesmo padrão do login do cliente) */
.contato { display: grid; grid-template-columns: 1.4fr .6fr; gap: 40px; align-items: start; }
.form { padding: 32px; background: #fff; border: 1px solid var(--borda-suave); border-radius: var(--raio-g); box-shadow: var(--sombra); }
.linha { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.campo { margin-bottom: 16px; }
.campo label { display: block; margin-bottom: 6px; font-size: .85rem; font-weight: 600; color: #25324d; }
.campo input, .campo select, .campo textarea, .news input { width: 100%; padding: .7em .9em; border: 1.5px solid #a9b6cc; border-radius: 10px; background: #fff; outline: 0; transition: border-color .15s, box-shadow .15s; }
.campo input, .campo select { height: 48px; }
.campo textarea { resize: vertical; min-height: 140px; }
.campo input:hover, .campo select:hover, .campo textarea:hover { border-color: #8b9bb5; }
.campo input:focus, .campo select:focus, .campo textarea:focus, .news input:focus { border-color: var(--az); box-shadow: 0 0 0 4px var(--az-foco); }
.campo--erro input, .campo--erro select, .campo--erro textarea { border-color: #ef4444; }
.campo small { display: block; margin-top: 4px; color: #b91c1c; font-size: .82rem; }
.seguro { margin: 16px 0 0; text-align: center; color: #94a3b8; font-size: .8rem; }
.lateral { padding: 24px; background: var(--fundo2); border: 1px solid var(--borda-suave); border-radius: var(--raio-g); }
.lateral h2 { font-size: 1.15rem; }
.lista-contato { display: grid; gap: 10px; margin-bottom: 18px; }
.lista-contato span { display: block; font-size: .8rem; color: var(--tx3); }
.lista-contato a { font-weight: 600; word-break: break-all; }
.aviso { display: flex; align-items: flex-start; gap: 10px; margin: 20px 0; padding: 12px 16px; border: 1px solid; border-radius: 10px; font-size: .95rem; }
.aviso--ok { background: var(--vd-claro); border-color: #bbf7d0; color: #166534; }
.aviso--erro { background: #fef2f2; border-color: #fecaca; color: #991b1b; }

.ip-caixa { display: inline-grid; gap: 8px; padding: 32px 48px; border: 1px solid var(--borda-suave); border-radius: var(--raio-g); background: var(--fundo2); }
.ip-caixa span { color: var(--tx3); }
.ip-caixa strong { font-size: clamp(1.6rem, 5vw, 2.6rem); letter-spacing: .02em; }
.erro__codigo { margin: 0; font-size: clamp(4rem, 14vw, 8rem); font-weight: 800; line-height: 1; color: var(--az); opacity: .15; }

/* Rodapé */
.cta-rodape { background: linear-gradient(135deg, var(--az), var(--az-esc)); color: #fff; }
.cta-rodape__in { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 36px 0; flex-wrap: wrap; }
.cta-rodape h2 { margin: 0 0 4px; font-size: 1.5rem; }
.cta-rodape p { margin: 0; opacity: .85; }
.rodape { background: #0b1220; color: #cbd5e1; font-size: .92rem; }
.rodape__grade { display: grid; grid-template-columns: 1.3fr .8fr .8fr 1.2fr; gap: 40px; padding: 56px 0 40px; }
.rodape h3 { color: #fff; font-size: 1rem; margin-bottom: 14px; }
.rodape a { color: #cbd5e1; }
.rodape a:hover { color: #fff; }
.rodape ul { display: grid; gap: 8px; }
.rodape address { font-style: normal; line-height: 1.7; }
.redes { display: flex; gap: 10px; margin-top: 14px; }
.redes a { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid #334155; border-radius: 10px; transition: background-color .15s, border-color .15s, color .15s; }
.redes a:hover { background: var(--az); border-color: var(--az); color: #fff; text-decoration: none; }
.news { margin-top: 18px; }
.news label { display: block; margin-bottom: 6px; font-weight: 600; color: #fff; }
.news__linha { display: flex; gap: 8px; }
.news input { height: 44px; background: #0f1a2e; border-color: #334155; color: #fff; }
.news input::placeholder { color: #64748b; }
.news .btn { flex: none; }
.rodape .btn--primario { border-color: var(--az); }
.rodape__base { border-top: 1px solid #1e293b; }
.rodape__base-in { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 20px 0; font-size: .85rem; color: #94a3b8; }
.legais { display: flex; flex-wrap: wrap; gap: 6px 18px; }

.cookies { position: fixed; z-index: 90; left: 16px; right: 16px; bottom: 16px; max-width: 760px; margin-inline: auto; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 16px 18px; background: #fff; border: 1px solid var(--borda); border-radius: var(--raio); box-shadow: 0 16px 48px -12px rgba(15,23,42,.35); font-size: .9rem; }
.cookies[hidden] { display: none; }
.cookies p { flex: 1 1 280px; margin: 0; color: var(--tx2); }
.cookies .btn + .btn { margin-left: 0; }

/* Responsivo */
@media (max-width: 1200px) {
  .menu-btn { display: inline-grid; place-items: center; }
  .menu { position: absolute; left: 0; right: 0; top: 100%; display: none; flex-direction: column; align-items: stretch; gap: 14px; max-height: calc(100vh - 104px); overflow-y: auto; padding: 14px 20px 20px; background: #fff; border-bottom: 1px solid var(--borda-suave); box-shadow: 0 24px 40px -24px rgba(15,23,42,.35); }
  .menu.aberto { display: flex; }
  .menu__lista { flex-direction: column; align-items: stretch; gap: 2px; }
  .menu__link { width: 100%; justify-content: space-between; }
  .sub { position: static; display: none; min-width: 0; margin: 2px 0 6px 10px; box-shadow: none; opacity: 1; visibility: visible; transform: none; }
  .tem-sub:hover > .sub, .tem-sub:focus-within > .sub { display: none; }
  .tem-sub.aberto > .sub { display: block; }
  .menu__acoes { flex-direction: column; }
  .menu__acoes .btn { width: 100%; }
  .hero__in { grid-template-columns: 1fr; padding: 48px 0; }
  .confianca__in { grid-template-columns: 1fr 1fr; }
  .rodape__grade { grid-template-columns: 1fr 1fr; }
  .contato, .duas-colunas { grid-template-columns: 1fr; gap: 32px; }
}
@media (max-width: 560px) {
  .topo__in { min-height: 80px; }
  .logo img { height: 56px; }
  .menu { max-height: calc(100vh - 80px); }
  .secao { padding: 48px 0; }
  .confianca__in, .rodape__grade, .linha { grid-template-columns: 1fr; }
  .busca { flex-wrap: wrap; } .busca .btn { width: 100%; } .busca__prefixo { display: none; } .busca input { padding-left: 12px; }
  .form { padding: 22px; }
  .news__linha { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; scroll-behavior: auto !important; } }

/* Ajustes: atributo hidden sempre vence o display das grades; textos longos não estouram a tela */
[hidden] { display: none !important; }
.texto { overflow-wrap: anywhere; }
.texto table { display: block; overflow-x: auto; }

