/* ====== Tema: azul old money, latão e branco (versão leve) ====== */
:root {
  --marfim: #FFFFFF;
  --pedra: #F4F6F9;
  --bordo: #142540;
  --bordo-escuro: #0B1628;
  --tinta: #18202C;
  --suave: #566173;
  --linha: rgba(20, 37, 64, .13);
  --ouro: #B8945A;
  --ouro-claro: #DCC28C;
  --noite: #08111F;
  --bronze: #8A6A35;
  --creme: #F4EFE6;
  --ouro-grad: linear-gradient(115deg, #8F7040 0%, #E2C98F 30%, #B8945A 52%, #F1E2BC 72%, #9C7A45 100%);
  --azul-grad: linear-gradient(135deg, #2C4568 0%, #142540 55%, #0B1628 100%);
}
body { background: #FFFFFF; }

/* fundo branco com papel de segurança gravado (desenhado uma vez, só desliza) */
.fundo { position: fixed; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; }
.papel { position: absolute; top: 0; left: 0; }
.secao-pedra { background: rgba(244, 246, 249, .88); }

/* aberturas em azul-marinho */
.hero, .pagina-topo, .secao-bordo { position: relative; overflow: hidden; isolation: isolate; }
.hero, .pagina-topo {
  margin-top: -79px; color: var(--creme); border-bottom: 0;
  background:
    radial-gradient(70% 80% at 12% 15%, rgba(44, 69, 104, .7), transparent 70%),
    radial-gradient(55% 65% at 90% 85%, rgba(184, 148, 90, .14), transparent 70%),
    linear-gradient(165deg, #11213A 0%, #08111F 55%, #142540 100%);
}
.hero { padding-top: calc(clamp(3rem, 7vw, 5.5rem) + 79px); padding-bottom: clamp(5rem, 9vw, 7rem); }
.pagina-topo { padding-top: calc(clamp(3.5rem, 8vw, 5.5rem) + 79px); padding-bottom: clamp(3rem, 6vw, 4.5rem); }
.secao-bordo { background: radial-gradient(60% 80% at 20% 20%, rgba(44, 69, 104, .55), transparent 70%), linear-gradient(160deg, #11213A 0%, #142540 45%, #0B1628 100%); }
.secao-bordo .lead, .secao-bordo p { color: #D9D6CF; }
.hero::before, .pagina-topo::before {
  content: ""; position: absolute; inset: 0; z-index: -2; pointer-events: none;
  background:
    radial-gradient(28% 34% at 30% 38%, rgba(64, 98, 145, .3), transparent 70%),
    radial-gradient(24% 30% at 72% 62%, rgba(226, 201, 143, .09), transparent 70%);
}
.faixa.fora .faixa-trilho { animation-play-state: paused; }

/* selo guilloché: camadas desenhadas uma vez e giradas pela placa de vídeo */
.selo { position: absolute; z-index: -1; pointer-events: none; transition: transform 1.4s cubic-bezier(.2, .7, .2, 1); }
.selo svg { position: absolute; inset: 0; overflow: visible; }
.ondas { position: absolute; inset: 0; z-index: -1; pointer-events: none; overflow: hidden; }
.ondas svg { position: absolute; left: 0; }
.luz-cursor { position: absolute; left: 0; top: 0; width: 700px; height: 700px; margin: -350px 0 0 -350px; z-index: -1; pointer-events: none; border-radius: 50%; background: radial-gradient(closest-side, rgba(226, 201, 143, .1), transparent); opacity: 0; transition: opacity .6s; will-change: transform; }
.hero:hover .luz-cursor { opacity: 1; }

.hero h1, .pagina-topo h1, .final h2, .secao-bordo h2, .secao-bordo h3 { color: #F8F6F1; }
.hero h1::before, .pagina-topo h1::before { content: ""; display: block; width: 84px; height: 3px; margin-bottom: 1.6rem; background: var(--ouro-grad); }
.hero .lead, .pagina-topo .lead { color: #D9D6CF; }
.hero-local { color: #A9B3C2; }
.hero .btn-linha { border-color: rgba(244, 239, 230, .65); color: var(--creme); }
.hero .btn-linha:hover { background: var(--creme); color: var(--bordo); }
.pagina-topo .indice a { border-color: rgba(244, 239, 230, .5); color: var(--creme); background: rgba(255, 255, 255, .04); }
.pagina-topo .indice a:hover { background: var(--ouro-grad); color: var(--noite); border-color: transparent; }

/* painel do cálculo rápido */
.templo-luz { filter: drop-shadow(0 26px 40px rgba(0, 0, 0, .45)); }
.templo { background: linear-gradient(180deg, #FFFFFF 0%, #F3F5F8 100%); color: var(--tinta); }
.templo::before { background: var(--ouro-grad); }
.templo h2, .templo label { color: var(--bordo); }
.templo > p, .templo .pequena, .rapido-res span { color: var(--suave); }
.templo input, .templo select { border-color: rgba(20, 37, 64, .18); }
.rapido-res { border-top-color: var(--linha); }
.rapido-res strong, .resultado-topo strong { background: linear-gradient(120deg, #2C4568, #0B1628 75%); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* topo: sem desfoque (mais leve) */
#topo { background: rgba(255, 255, 255, .97); backdrop-filter: none; -webkit-backdrop-filter: none; transition: background-color .4s, border-color .4s; }
#topo.no-escuro { background: transparent; border-bottom-color: rgba(244, 239, 230, .14); }
#topo.no-escuro .marca-txt strong, #topo.no-escuro .marca-txt small { color: var(--creme); }
#topo.no-escuro .menu-btn { color: var(--creme); border-color: rgba(244, 239, 230, .7); }
@media (min-width: 1121px) {
  #topo.no-escuro .menu a:not(.btn) { color: var(--creme); }
  #topo.no-escuro .menu .btn { background: var(--ouro-grad); color: var(--noite); }
}

/* botões */
.btn { position: relative; overflow: hidden; transition: transform .25s, box-shadow .25s, background-color .2s, color .2s, border-color .2s; }
.btn::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(105deg, transparent 35%, rgba(255, 255, 255, .4) 50%, transparent 65%); transform: translateX(-120%); transition: transform .7s; }
.btn:hover { transform: translateY(-2px); }
.btn:hover::after { transform: translateX(120%); }
.btn-bordo, .btn-bordo:hover { background: var(--azul-grad); color: #F8F6F1; box-shadow: 0 10px 24px -12px rgba(11, 22, 40, .8); }
.btn-ouro, .btn-ouro:hover, .hero .btn-bordo, .hero .btn-bordo:hover { background: var(--ouro-grad); color: var(--noite); box-shadow: 0 12px 30px -14px rgba(184, 148, 90, .9); }

/* faixa inclinada */
.faixa { position: relative; z-index: 2; margin: -1.6rem 0 0; transform: rotate(-1.4deg) scale(1.03); background: linear-gradient(90deg, #0B1628, #1F3556 50%, #0B1628); border-block: 0; box-shadow: 0 18px 40px -20px rgba(8, 17, 31, .6); }
.faixa-trilho { color: #E2C98F; will-change: transform; }
.faixa + .secao { padding-top: clamp(5rem, 10vw, 8rem); }

/* detalhes em latão */
.calcs { border-top: 3px solid transparent; border-image: var(--ouro-grad) 1; }
.calcs a, .calcs a + a { padding: 2rem 1.75rem 2.2rem; position: relative; isolation: isolate; }
.calcs a::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(120% 90% at 50% 0%, rgba(226, 201, 143, .26), transparent 70%); opacity: 0; transition: opacity .4s; }
.calcs a:hover::before { opacity: 1; }
.calcs .ir { color: var(--bordo); }
.situacoes li { transition: background-color .35s; }
.situacoes li:hover { background: rgba(244, 246, 249, .9); }
.situacoes h3 { transition: color .3s, transform .35s; }
.situacoes li:hover h3 { color: var(--bronze); transform: translateX(8px); }
.compromissos div { border-top: 0; position: relative; padding-top: 1.6rem; }
.compromissos div::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 3px; background: var(--ouro-grad); transform: scaleX(.18); transform-origin: left; transition: transform .5s; }
.compromissos div:hover::before { transform: scaleX(1); }

.foto { background: linear-gradient(135deg, #F4F6F9, #E6EAF0); border-color: rgba(184, 148, 90, .45); }
.areas-lista li { background: #FFFFFF; border-color: rgba(184, 148, 90, .45); }
.etapas li::before { background: var(--ouro-grad); -webkit-background-clip: text; background-clip: text; color: transparent; font-size: 4.2rem; }
.artigos article { padding-top: 1.4rem; border-top: 1px solid rgba(184, 148, 90, .5); transition: transform .35s; }
.artigos article:hover { transform: translateY(-4px); }
.artigos .tema { color: var(--bronze); }
.faq details[open] { background: #FFFFFF; box-shadow: inset 3px 0 0 #B8945A; }
.faq details[open] summary, .faq details[open] p { padding-left: 1.25rem; }
.empresas { background: #FFFFFF; border-color: rgba(184, 148, 90, .5); }
.calc form, #form-contato { background: #FFFFFF; border: 1px solid rgba(184, 148, 90, .38); box-shadow: 0 30px 60px -40px rgba(11, 22, 40, .35); }
.resultado-topo { border-bottom: 3px solid transparent; border-image: var(--ouro-grad) 1; }

#rodape { position: relative; color: #D9D6CF; background: linear-gradient(170deg, #11213A, #08111F); }
#rodape a { color: var(--creme); }
.rodape-marca strong { color: var(--creme); }
.rodape-fim { color: #9AA4B3; }
#rodape::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--ouro-grad); }

/* entrada suave dos blocos ao rolar */
.revela:not(.visivel) { opacity: 0; }
.revela.visivel { animation: surge .8s cubic-bezier(.2, .7, .2, 1) var(--atraso, 0ms) backwards; }
@keyframes surge { from { opacity: 0; transform: translateY(24px); } }

/* aviso discreto nas calculadoras */
.aviso-calc { margin: .9rem 0 0; font-size: .78rem; line-height: 1.5; color: var(--suave); text-align: center; max-width: none; }
.templo .pequena { font-size: .78rem; }
.menu a { white-space: nowrap; }
/* telas médias (notebooks pequenos e tablets deitados): menu recolhido */
@media (min-width: 961px) and (max-width: 1120px) {
  .menu-btn { display: inline-block; }
  .menu { display: none; position: absolute; top: 100%; left: 0; right: 0; flex-direction: column; align-items: stretch; gap: 0; background: var(--marfim); border-bottom: 1px solid var(--linha); padding: .5rem 1.25rem 1.25rem; }
  .menu.aberto { display: flex; }
  .menu a:not(.btn) { padding: .9rem 0; border-bottom: 1px solid var(--linha); }
  .menu .btn { margin-top: 1rem; }
}
@media (min-width: 1121px) and (max-width: 1280px) {
  .menu { gap: 1rem; }
  .menu a:not(.btn) { font-size: .9rem; }
  .menu .btn { padding: .6rem 1rem; font-size: .88rem; }
  .marca-txt strong { font-size: 1.1rem; letter-spacing: .1em; }
  .marca-txt small { font-size: .58rem; letter-spacing: .24em; }
}

@media (max-width: 560px) {
  .faixa { transform: rotate(-2deg) scale(1.06); }
}
/* equipe (página inicial) e redes (contato) */
.equipe { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 1.5rem 4rem; align-items: start; }
.equipe .areas-lista { margin-top: 1.4rem; }
.redes { display: flex; flex-wrap: wrap; gap: .7rem; margin: 1.4rem 0 .4rem; }
.redes a[aria-disabled="true"] { opacity: .55; cursor: default; }
.canais strong { display: block; font-weight: 600; color: var(--tinta); }
@media (max-width: 960px) { .equipe { grid-template-columns: 1fr; } }

@media (prefers-reduced-motion: reduce) {
  .btn::after { display: none; }
  .revela.visivel { animation: none; }
}