 :root {
     --azul: #3b589c;
     --azul-escuro: #2f4880;
     --azul-claro: #4d6db0;
     --ouro: #dba34b;
     --ouro-claro: #e8b85a;
     --cinza: #e8e8e8;
     --branco: #ffffff;
     --texto: #2b3a5c;
     --subtexto: #556080;
     --sombra-p: 0 2px 14px rgba(59, 88, 156, .09);
     --sombra-m: 0 8px 32px rgba(59, 88, 156, .15);
     --sombra-g: 0 20px 60px rgba(59, 88, 156, .2);
     --borda: 12px;
     --serif: 'Ancizar Serif', Georgia, serif;
     --sans: 'Montserrat', sans-serif;
     --trans: .3s cubic-bezier(.4, 0, .2, 1);
 }

 *,
 *::before,
 *::after {
     box-sizing: border-box;
     margin: 0;
     padding: 0;
 }

 html {
     scroll-behavior: smooth;
     font-size: 16px;
 }

 body {
     font-family: var(--sans);
     background: var(--cinza);
     color: var(--texto);
     line-height: 1.7;
     overflow-x: hidden;
 }

 a {
     text-decoration: none;
     color: inherit;
 }

 img {
     display: block;
     max-width: 100%;
 }

 ul {
     list-style: none;
 }

 .container {
     max-width: 1160px;
     margin: 0 auto;
     padding: 0 24px;
 }

 @keyframes fadeUp {
     from {
         opacity: 0;
         transform: translateY(28px);
     }

     to {
         opacity: 1;
         transform: translateY(0);
     }
 }

 @keyframes fadeIn {
     from {
         opacity: 0;
     }

     to {
         opacity: 1;
     }
 }

 @keyframes shimmer {
     0% {
         background-position: -200% center;
     }

     100% {
         background-position: 200% center;
     }
 }

 @keyframes float {

     0%,
     100% {
         transform: translateY(0);
     }

     50% {
         transform: translateY(-10px);
     }
 }

 @keyframes pulse-wa {

     0%,
     100% {
         box-shadow: 0 0 0 0 rgba(37, 211, 102, .5);
     }

     70% {
         box-shadow: 0 0 0 12px rgba(37, 211, 102, 0);
     }
 }

 .reveal {
     opacity: 0;
     transform: translateY(32px);
     transition: opacity .7s ease, transform .7s ease;
 }

 .reveal.visible {
     opacity: 1;
     transform: none;
 }

 /* BOTÕES */
 .btn {
     display: inline-flex;
     align-items: center;
     gap: 8px;
     padding: 14px 30px;
     border-radius: 6px;
     font-family: var(--sans);
     font-weight: 600;
     font-size: .93rem;
     letter-spacing: .03em;
     transition: all var(--trans);
     cursor: pointer;
     border: 2px solid transparent;
     white-space: nowrap;
 }

 .btn-ouro {
     background: var(--ouro);
     color: var(--branco);
     border-color: var(--ouro);
 }

 .btn-ouro:hover {
     background: #c48e38;
     border-color: #c48e38;
     transform: translateY(-2px);
     box-shadow: 0 8px 24px rgba(219, 163, 75, .38);
 }

 .btn-borda {
     background: transparent;
     color: var(--branco);
     border-color: rgba(255, 255, 255, .65);
 }

 .btn-borda:hover {
     background: var(--branco);
     color: var(--azul);
     border-color: var(--branco);
     transform: translateY(-2px);
 }

 .btn-borda-azul {
     background: transparent;
     color: var(--azul);
     border-color: var(--azul);
 }

 .btn-borda-azul:hover {
     background: var(--azul);
     color: var(--branco);
     transform: translateY(-2px);
 }

 .btn-wa {
     background: #25D366;
     color: var(--branco);
     border-color: #25D366;
 }

 .btn-wa:hover {
     background: #1ebe5d;
     transform: translateY(-2px);
     box-shadow: 0 8px 24px rgba(37, 211, 102, .38);
 }

 /* TIPOGRAFIA */
 .label {
     display: inline-block;
     font-size: .74rem;
     font-weight: 700;
     letter-spacing: .16em;
     text-transform: uppercase;
     color: var(--ouro);
     margin-bottom: 12px;
 }

 .titulo {
     font-family: var(--serif);
     font-size: clamp(1.9rem, 4vw, 3rem);
     font-weight: 700;
     color: var(--azul);
     line-height: 1.15;
     margin-bottom: 20px;
 }

 .titulo em {
     font-style: italic;
     color: var(--ouro);
 }

 .subtitulo {
     font-size: 1.02rem;
     color: var(--subtexto);
     max-width: 620px;
     line-height: 1.8;
 }

 .divisor {
     width: 60px;
     height: 3px;
     background: var(--ouro);
     margin: 18px 0 34px;
     border-radius: 2px;
 }

 .centro {
     text-align: center;
 }

 .centro .subtitulo {
     margin: 0 auto;
 }

 .centro .divisor {
     margin: 18px auto 34px;
 }

 /* HEADER */
 #header {
     position: fixed;
     top: 0;
     left: 0;
     right: 0;
     z-index: 900;
     padding: 12px 0;
     transition: all .4s ease;
     background: var(--cinza);
     box-shadow: 0 2px 12px rgba(59, 88, 156, .1);
 }

 #header.scrolled {
     padding: 8px 0;
     box-shadow: 0 2px 20px rgba(59, 88, 156, .15);
 }

 #header .container {
     display: flex;
     align-items: center;
     justify-content: space-between;
     gap: 20px;
 }

 .logo-img {
     height: 72px;
     width: auto;
     object-fit: contain;
     transition: height .3s;
 }

 #header.scrolled .logo-img {
     height: 64px;
 }

 nav {
     display: flex;
     align-items: center;
     gap: 36px;
 }

 .nav-links {
     display: flex;
     align-items: center;
     gap: 28px;
 }

 .nav-links a {
     font-size: .85rem;
     font-weight: 600;
     color: var(--azul);
     position: relative;
     padding-bottom: 2px;
     transition: color .3s;
     letter-spacing: .02em;
 }

 .nav-links a::after {
     content: '';
     position: absolute;
     bottom: -2px;
     left: 0;
     width: 0;
     height: 2px;
     background: var(--ouro);
     transition: width .3s;
 }

 .nav-links a:hover {
     color: var(--ouro);
 }

 .nav-links a:hover::after {
     width: 100%;
 }

 .hamburger {
     display: none;
     flex-direction: column;
     gap: 5px;
     cursor: pointer;
     padding: 4px;
     background: none;
     border: none;
 }

 .hamburger span {
     display: block;
     width: 24px;
     height: 2px;
     background: var(--azul);
     border-radius: 2px;
     transition: all .3s;
 }

 .hamburger.open span:nth-child(1) {
     transform: rotate(45deg) translate(5px, 5px);
 }

 .hamburger.open span:nth-child(2) {
     opacity: 0;
 }

 .hamburger.open span:nth-child(3) {
     transform: rotate(-45deg) translate(5px, -5px);
 }

 .menu-mobile {
     display: none;
     position: fixed;
     inset: 0;
     background: var(--azul);
     z-index: 800;
     flex-direction: column;
     align-items: center;
     justify-content: center;
     gap: 36px;
 }

 .menu-mobile.open {
     display: flex;
     animation: fadeIn .3s ease;
 }

 .menu-mobile a {
     font-family: var(--serif);
     font-size: 2rem;
     color: var(--branco);
     font-weight: 600;
 }

 .menu-mobile a:hover {
     color: var(--ouro);
 }

 .menu-fechar {
     position: absolute;
     top: 22px;
     right: 24px;
     background: none;
     border: none;
     color: var(--branco);
     font-size: 2rem;
     cursor: pointer;
 }

 @media(max-width:820px) {

     .nav-links,
     .nav-cta {
         display: none;
     }

     .hamburger {
         display: flex;
     }
 }

 /* HERO */
 #hero {
     position: relative;
     min-height: 100vh;
     display: flex;
     align-items: center;
     overflow: hidden;
     background: var(--azul);
 }

 .hero-bg {
     position: absolute;
     inset: 0;
     background: radial-gradient(ellipse 80% 60% at 75% 35%, rgba(219, 163, 75, .18) 0%, transparent 60%), radial-gradient(ellipse 60% 80% at 5% 80%, rgba(47, 72, 128, .95) 0%, transparent 65%), linear-gradient(135deg, #2f4880 0%, #3b589c 55%, #4d6db0 100%);
 }

 .hero-grid {
     position: absolute;
     inset: 0;
     background-image: linear-gradient(rgba(255, 255, 255, .04) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .04) 1px, transparent 1px);
     background-size: 60px 60px;
 }

 .hero-orb {
     position: absolute;
     width: 520px;
     height: 520px;
     right: -80px;
     top: 50%;
     transform: translateY(-50%);
     border-radius: 50%;
     background: radial-gradient(circle, rgba(219, 163, 75, .18) 0%, transparent 68%);
     animation: float 7s ease-in-out infinite;
 }

 #hero .container {
     position: relative;
     z-index: 2;
     padding: 140px 24px 100px;
 }

 .hero-badge {
     display: inline-flex;
     align-items: center;
     gap: 8px;
     background: rgba(219, 163, 75, .18);
     border: 1px solid rgba(219, 163, 75, .4);
     color: var(--ouro-claro);
     font-size: .76rem;
     font-weight: 700;
     letter-spacing: .12em;
     text-transform: uppercase;
     padding: 8px 18px;
     border-radius: 100px;
     margin-bottom: 30px;
     animation: fadeUp .8s ease both;
 }

 #hero h1 {
     font-family: var(--serif);
     font-size: clamp(2.4rem, 5.5vw, 4.4rem);
     font-weight: 700;
     color: var(--branco);
     line-height: 1.1;
     max-width: 800px;
     margin-bottom: 28px;
     animation: fadeUp .9s .1s ease both;
 }

 #hero h1 em {
     font-style: italic;
     background: linear-gradient(90deg, var(--ouro), var(--ouro-claro), var(--ouro));
     background-size: 200% auto;
     -webkit-background-clip: text;
     -webkit-text-fill-color: transparent;
     background-clip: text;
     animation: shimmer 3s linear infinite;
 }

 .hero-sub {
     font-size: clamp(1rem, 2vw, 1.18rem);
     color: rgba(255, 255, 255, .72);
     max-width: 620px;
     margin-bottom: 48px;
     font-weight: 300;
     line-height: 1.85;
     animation: fadeUp .9s .2s ease both;
 }

 .hero-cta {
     display: flex;
     gap: 16px;
     flex-wrap: wrap;
     animation: fadeUp .9s .3s ease both;
 }

 .hero-vantagens {
     display: flex;
     flex-wrap: wrap;
     gap: 24px;
     margin-top: 68px;
     padding-top: 42px;
     border-top: 1px solid rgba(255, 255, 255, .12);
     animation: fadeUp .9s .45s ease both;
 }

 .hero-vantagem {
     display: flex;
     align-items: flex-start;
     gap: 16px;
     flex: 1 1 210px;
 }

 .hero-vantagem-icone {
     width: 80px;
     height: 80px;
     border-radius: 10px;
     flex-shrink: 0;
     background: rgba(219, 163, 75, .2);
     border: 1px solid rgba(219, 163, 75, .32);
     display: flex;
     align-items: center;
     justify-content: center;
 }

 .vantagem-icon-img {
     width: 56px;
     height: 56px;
     object-fit: contain;
     filter: brightness(0) invert(1);
 }

 .hero-vantagem-titulo {
     font-size: .88rem;
     font-weight: 700;
     color: var(--branco);
     margin-bottom: 4px;
 }

 .hero-vantagem-desc {
     font-size: .78rem;
     color: rgba(255, 255, 255, .55);
     line-height: 1.55;
 }

 @media(max-width:680px) {
     #hero h1 {
         font-size: 2.2rem;
     }

     .hero-vantagem {
         flex: 1 1 100%;
     }

     .hero-cta .btn {
         width: 100%;
         justify-content: center;
     }
 }

 /* SEÇÃO PJE-CALC INTRO */
 #pjec {
     padding: 90px 0;
     background: var(--azul);
 }

 #pjec .layout {
     display: grid;
     grid-template-columns: 1fr 2fr;
     gap: 70px;
     align-items: start;
 }

 @media(max-width:820px) {
     #pjec .layout {
         grid-template-columns: 1fr;
         gap: 36px;
     }
 }

 .pjec-lateral .label {
     color: var(--ouro-claro);
 }

 .pjec-lateral .titulo {
     color: var(--branco);
     font-size: clamp(1.6rem, 3vw, 2.2rem);
 }

 .pjec-lateral .divisor {
     background: var(--ouro);
 }

 .pjec-destaque {
     background: rgba(219, 163, 75, .12);
     border: 1px solid rgba(219, 163, 75, .3);
     border-radius: var(--borda);
     padding: 22px 24px;
     margin-top: 24px;
 }

 .pjec-destaque p {
     font-size: .9rem;
     color: rgba(255, 255, 255, .75);
     line-height: 1.85;
     font-style: italic;
     margin: 0;
 }

 .pjec-conteudo p {
     color: rgba(255, 255, 255, .75);
     font-size: .95rem;
     line-height: 1.9;
     margin-bottom: 18px;
 }

 .pjec-conteudo p:last-child {
     margin-bottom: 0;
 }

 .pjec-conteudo strong {
     color: var(--ouro-claro);
     font-weight: 600;
 }

 /* PROBLEMA */
 #problema {
     background: var(--cinza);
     padding: 100px 0;
 }

 #problema .layout {
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: 80px;
     align-items: center;
 }

 @media(max-width:820px) {
     #problema .layout {
         grid-template-columns: 1fr;
         gap: 40px;
     }
 }

 .pain-list {
     display: flex;
     flex-direction: column;
     gap: 14px;
 }

 .pain-item {
     display: flex;
     align-items: flex-start;
     gap: 14px;
     background: var(--branco);
     padding: 18px 22px;
     border-radius: var(--borda);
     box-shadow: var(--sombra-p);
     border-left: 3px solid #d32f2f;
     transition: transform var(--trans), box-shadow var(--trans);
 }

 .pain-item:hover {
     transform: translateX(4px);
     box-shadow: var(--sombra-m);
 }

 .pain-icone {
     color: #d32f2f;
     font-size: 1rem;
     margin-top: 3px;
     flex-shrink: 0;
 }

 .pain-item p {
     margin: 0;
     font-size: .92rem;
     font-weight: 500;
     color: var(--texto);
 }

 .callout {
     background: var(--azul);
     color: var(--branco);
     padding: 36px;
     border-radius: var(--borda);
     margin-top: 24px;
 }

 .callout p {
     margin: 0;
     font-size: 1rem;
     line-height: 1.88;
     color: rgba(255, 255, 255, .82);
 }

 .callout strong {
     color: var(--ouro-claro);
 }

 /* SOLUÇÃO */
 #solucao {
     padding: 100px 0;
     background: var(--branco);
 }

 .beneficios-grid {
     display: grid;
     grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
     gap: 22px;
 }

 .beneficio-card {
     background: var(--cinza);
     border-radius: var(--borda);
     padding: 36px 26px;
     text-align: center;
     transition: all var(--trans);
     border: 2px solid transparent;
     cursor: default;
 }

 .beneficio-card:hover {
     background: var(--branco);
     border-color: var(--ouro);
     transform: translateY(-6px);
     box-shadow: var(--sombra-g);
 }

 .beneficio-icone {
     width: 160px;
     height: 160px;
     background: rgba(219, 163, 75, .12);
     border-radius: 50%;
     display: flex;
     align-items: center;
     justify-content: center;
     margin: 0 auto 28px;
     transition: background var(--trans);
 }

 .beneficio-icon-img {
     width: 140px;
     height: 140px;
     object-fit: contain;
 }

 .beneficio-card:hover .beneficio-icone {
     background: rgba(219, 163, 75, .22);
 }

 .beneficio-card h3 {
     font-size: 1rem;
     font-weight: 600;
     color: var(--azul);
     margin-bottom: 10px;
 }

 .beneficio-card p {
     font-size: .88rem;
     color: var(--subtexto);
     margin: 0;
 }

 /* ARTIGO */
 #artigo {
     padding: 100px 0;
     background: var(--cinza);
 }

 #artigo .artigo-inner {
     max-width: 860px;
     margin: 0 auto;
 }

 .artigo-header {
     display: flex;
     align-items: center;
     gap: 20px;
     margin-bottom: 40px;
 }

 .artigo-icone-grande {
     width: 72px;
     height: 72px;
     border-radius: 50%;
     background: var(--azul);
     display: flex;
     align-items: center;
     justify-content: center;
     color: var(--ouro);
     font-size: 1.8rem;
     flex-shrink: 0;
     box-shadow: var(--sombra-m);
 }

 .artigo-header-texto .label {
     display: block;
 }

 .artigo-header-texto .titulo {
     margin-bottom: 0;
     font-size: clamp(1.5rem, 3vw, 2.2rem);
 }

 .artigo-body p {
     font-size: .97rem;
     color: var(--subtexto);
     line-height: 1.95;
     margin-bottom: 22px;
 }

 .artigo-body p:last-child {
     margin-bottom: 0;
 }

 .artigo-body strong {
     color: var(--azul);
     font-weight: 700;
 }

 .artigo-vantagens {
     display: grid;
     grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
     gap: 20px;
     margin: 36px 0;
 }

 .artigo-vantagem {
     background: var(--branco);
     border-radius: var(--borda);
     padding: 24px;
     border-left: 4px solid var(--ouro);
     box-shadow: var(--sombra-p);
 }

 .artigo-vantagem h4 {
     font-size: .92rem;
     font-weight: 700;
     color: var(--azul);
     margin-bottom: 8px;
 }

 .artigo-vantagem p {
     font-size: .86rem;
     color: var(--subtexto);
     line-height: 1.75;
     margin: 0;
 }

 .artigo-conclusao {
     background: var(--azul);
     color: var(--branco);
     border-radius: var(--borda);
     padding: 32px 36px;
     margin-top: 32px;
 }

 .artigo-conclusao p {
     margin: 0;
     font-size: .97rem;
     line-height: 1.9;
     color: rgba(255, 255, 255, .85);
 }

 .artigo-conclusao strong {
     color: var(--ouro-claro);
 }

 /* SERVIÇOS */
 #servicos {
     padding: 100px 0;
     background: var(--azul);
     position: relative;
     overflow: hidden;
 }

 #servicos::before {
     content: '';
     position: absolute;
     inset: 0;
     background-image: linear-gradient(rgba(255, 255, 255, .04) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .04) 1px, transparent 1px);
     background-size: 50px 50px;
 }

 #servicos .container {
     position: relative;
 }

 #servicos .label {
     color: var(--ouro-claro);
 }

 #servicos .titulo {
     color: var(--branco);
 }

 #servicos .subtitulo {
     color: rgba(255, 255, 255, .65);
 }

 .servicos-wrapper {
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: 24px;
 }

 @media(max-width:820px) {
     .servicos-wrapper {
         grid-template-columns: 1fr;
     }
 }

 .tabela-precos {
     background: rgba(255, 255, 255, .06);
     border: 1px solid rgba(255, 255, 255, .14);
     border-radius: var(--borda);
     padding: 36px 32px;
 }

 .tabela-precos h3 {
     font-family: var(--serif);
     font-size: 1.5rem;
     color: var(--branco);
     margin-bottom: 6px;
 }

 .tabela-precos .desc {
     font-size: .86rem;
     color: rgba(255, 255, 255, .55);
     margin-bottom: 28px;
 }

 .preco-item {
     display: flex;
     align-items: center;
     justify-content: space-between;
     gap: 16px;
     padding: 16px 0;
     border-bottom: 1px solid rgba(255, 255, 255, .08);
 }

 .preco-item:last-of-type {
     border-bottom: none;
 }

 .preco-nome {
     font-size: .88rem;
     color: rgba(255, 255, 255, .85);
     font-weight: 500;
     flex: 1;
 }

 .preco-tag {
     background: var(--ouro);
     color: var(--branco);
     padding: 6px 14px;
     border-radius: 100px;
     font-size: .85rem;
     font-weight: 700;
     white-space: nowrap;
 }

 .pacote-card {
     background: rgba(219, 163, 75, .1);
     border: 2px solid rgba(219, 163, 75, .55);
     border-radius: var(--borda);
     padding: 36px 32px;
     display: flex;
     flex-direction: column;
     position: relative;
     overflow: hidden;
 }

 .pacote-card::before {
     content: '';
     position: absolute;
     top: 0;
     left: 0;
     right: 0;
     height: 3px;
     background: var(--ouro);
 }

 .pacote-card h3 {
     font-family: var(--serif);
     font-size: 1.65rem;
     color: var(--branco);
     margin-bottom: 12px;
 }

 .pacote-card .desc {
     font-size: .88rem;
     color: rgba(255, 255, 255, .6);
     margin-bottom: 22px;
 }

 .pacote-card ul {
     flex: 1;
     display: flex;
     flex-direction: column;
     gap: 10px;
     margin-bottom: 28px;
 }

 .pacote-card ul li {
     display: flex;
     align-items: flex-start;
     gap: 10px;
     font-size: .87rem;
     color: rgba(255, 255, 255, .82);
 }

 .pacote-card ul li i {
     color: var(--ouro-claro);
     margin-top: 3px;
     flex-shrink: 0;
     font-size: .82rem;
 }

 /* COMO FUNCIONA */
 #como-funciona {
     padding: 100px 0;
     background: var(--branco);
 }

 .fluxo-intro {
     max-width: 700px;
     margin: 0 auto 60px;
     text-align: center;
     font-size: .97rem;
     color: var(--subtexto);
     line-height: 1.9;
 }

 .fluxo-steps {
     display: flex;
     flex-direction: column;
     gap: 0;
     max-width: 760px;
     margin: 0 auto;
 }

 .fluxo-step {
     display: flex;
     gap: 28px;
     align-items: flex-start;
     position: relative;
     padding-bottom: 36px;
 }

 .fluxo-step:last-child {
     padding-bottom: 0;
 }

 .fluxo-step::before {
     content: '';
     position: absolute;
     left: 28px;
     top: 56px;
     bottom: 0;
     width: 2px;
     background: linear-gradient(to bottom, var(--ouro), rgba(219, 163, 75, .1));
 }

 .fluxo-step:last-child::before {
     display: none;
 }

 .fluxo-num {
     width: 56px;
     height: 56px;
     border-radius: 50%;
     background: var(--azul);
     color: var(--branco);
     display: flex;
     align-items: center;
     justify-content: center;
     font-family: var(--serif);
     font-size: 1.5rem;
     font-weight: 700;
     flex-shrink: 0;
     box-shadow: 0 4px 20px rgba(59, 88, 156, .25);
     transition: all var(--trans);
     position: relative;
     z-index: 1;
 }

 .fluxo-step:hover .fluxo-num {
     background: var(--ouro);
     transform: scale(1.1);
     box-shadow: 0 8px 28px rgba(219, 163, 75, .4);
 }

 .fluxo-conteudo {
     padding-top: 10px;
     flex: 1;
 }

 .fluxo-conteudo h3 {
     font-size: 1.05rem;
     font-weight: 700;
     color: var(--azul);
     margin-bottom: 8px;
 }

 .fluxo-conteudo p {
     font-size: .9rem;
     color: var(--subtexto);
     margin: 0;
     line-height: 1.8;
 }

 .entrega-lista {
     display: flex;
     flex-direction: column;
     gap: 10px;
     margin-top: 14px;
 }

 .entrega-item {
     display: flex;
     align-items: center;
     gap: 10px;
     font-size: .88rem;
     color: var(--subtexto);
 }

 .entrega-item i {
     color: var(--ouro);
     font-size: .9rem;
 }

 /* TRIPARTIDO / DONUT */
 .tripartido-box {
     background: var(--cinza);
     border-radius: var(--borda);
     padding: 40px 32px;
     margin-top: 60px;
 }

 .donut-wrapper {
     display: flex;
     align-items: center;
     gap: 50px;
     flex-wrap: wrap;
     justify-content: center;
     margin: 8px 0 28px;
 }

 .donut-svg {
     width: 280px;
     height: 280px;
     display: block;
     flex-shrink: 0;
 }

 .donut-legenda {
     display: flex;
     flex-direction: column;
     gap: 22px;
     max-width: 340px;
 }

 .donut-leg-item {
     display: flex;
     align-items: flex-start;
     gap: 14px;
 }

 .donut-leg-cor {
     display: block;
     width: 18px;
     height: 18px;
     border-radius: 4px;
     flex-shrink: 0;
     margin-top: 3px;
 }

 .donut-leg-titulo {
     font-size: .95rem;
     font-weight: 700;
     color: var(--azul);
     margin-bottom: 4px;
 }

 .donut-leg-desc {
     font-size: .83rem;
     color: var(--subtexto);
     line-height: 1.6;
 }

 .tripartido-chamada {
     background: var(--azul);
     border-radius: 10px;
     padding: 28px 32px;
     margin-top: 24px;
 }

 .tripartido-chamada p {
     margin: 0;
     color: rgba(255, 255, 255, .82);
     font-size: .95rem;
     line-height: 1.88;
 }

 .tripartido-chamada strong {
     color: var(--ouro-claro);
 }

 @media(max-width:640px) {
     .donut-svg {
         width: 220px;
         height: 220px;
     }
 }

 /* CTA FINAL */
 #cta-final {
     padding: 100px 0;
     background: var(--azul);
     position: relative;
     overflow: hidden;
 }

 #cta-final::before {
     content: '';
     position: absolute;
     top: -100px;
     right: -100px;
     width: 500px;
     height: 500px;
     border-radius: 50%;
     background: radial-gradient(circle, rgba(219, 163, 75, .16) 0%, transparent 70%);
 }

 #cta-final::after {
     content: '';
     position: absolute;
     bottom: -80px;
     left: -80px;
     width: 400px;
     height: 400px;
     border-radius: 50%;
     background: radial-gradient(circle, rgba(47, 72, 128, .6) 0%, transparent 70%);
 }

 #cta-final .container {
     position: relative;
     z-index: 1;
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: 80px;
     align-items: center;
 }

 @media(max-width:900px) {
     #cta-final .container {
         grid-template-columns: 1fr;
         gap: 50px;
     }
 }

 .cta-esq .label {
     color: var(--ouro-claro);
 }

 .cta-esq .titulo {
     color: var(--branco);
 }

 .cta-esq .subtitulo {
     color: rgba(255, 255, 255, .65);
 }

 .cta-esq .divisor {
     background: var(--ouro);
 }

 .cta-botoes {
     display: flex;
     flex-direction: column;
     gap: 14px;
     margin-top: 32px;
 }

 .cta-botoes .btn {
     justify-content: center;
 }

 .cta-form {
     background: var(--branco);
     border-radius: var(--borda);
     padding: 44px 40px;
     box-shadow: var(--sombra-g);
 }

 @media(max-width:500px) {
     .cta-form {
         padding: 32px 22px;
     }
 }

 .cta-form h3 {
     font-family: var(--serif);
     font-size: 1.7rem;
     color: var(--azul);
     margin-bottom: 6px;
 }

 .cta-form .form-sub {
     font-size: .84rem;
     color: var(--subtexto);
     margin-bottom: 28px;
 }

 .form-grupo {
     margin-bottom: 20px;
 }

 .form-grupo label {
     display: block;
     font-size: .78rem;
     font-weight: 700;
     color: var(--azul);
     margin-bottom: 8px;
     letter-spacing: .04em;
     text-transform: uppercase;
 }

 .form-grupo input,
 .form-grupo textarea,
 .form-grupo select {
     width: 100%;
     padding: 13px 16px;
     border: 1.5px solid #cfcfcf;
     border-radius: 8px;
     font-family: var(--sans);
     font-size: .92rem;
     color: var(--texto);
     background: var(--cinza);
     transition: border-color .3s, box-shadow .3s;
     outline: none;
 }

 .form-grupo input:focus,
 .form-grupo textarea:focus,
 .form-grupo select:focus {
     border-color: var(--ouro);
     box-shadow: 0 0 0 3px rgba(219, 163, 75, .18);
     background: var(--branco);
 }

 .form-grupo textarea {
     resize: vertical;
     min-height: 110px;
 }

 .btn-enviar {
     width: 100%;
     background: var(--azul);
     color: var(--branco);
     border: none;
     padding: 16px;
     border-radius: 8px;
     font-family: var(--sans);
     font-size: .98rem;
     font-weight: 700;
     cursor: pointer;
     transition: all var(--trans);
     display: flex;
     align-items: center;
     justify-content: center;
     gap: 10px;
 }

 .btn-enviar:hover {
     background: var(--ouro);
     transform: translateY(-2px);
     box-shadow: 0 8px 24px rgba(219, 163, 75, .38);
 }

 /* FOOTER */
 footer {
     background: var(--azul-escuro);
     border-top: 1px solid rgba(255, 255, 255, .07);
     padding: 70px 0 30px;
 }

 footer .footer-grid {
     display: grid;
     grid-template-columns: 2fr 1fr 1fr 1fr;
     gap: 50px;
     margin-bottom: 60px;
 }

 @media(max-width:900px) {
     footer .footer-grid {
         grid-template-columns: 1fr 1fr;
         gap: 36px;
     }
 }

 @media(max-width:560px) {
     footer .footer-grid {
         grid-template-columns: 1fr;
     }
 }

 .footer-logo-img {
     height: 60px;
     width: auto;
     object-fit: contain;
     margin-bottom: 18px;
 }

 .footer-jg-img {
     height: 70px;
     width: auto;
     margin: 0 auto 16px;
     display: block;
     opacity: .85;
 }

 .footer-marca p {
     font-size: .84rem;
     color: rgba(255, 255, 255, .5);
     line-height: 1.88;
     max-width: 280px;
 }

 footer h4 {
     font-size: .73rem;
     font-weight: 700;
     letter-spacing: .12em;
     text-transform: uppercase;
     color: rgba(255, 255, 255, .36);
     margin-bottom: 20px;
 }

 footer ul {
     display: flex;
     flex-direction: column;
     gap: 12px;
 }

 footer ul li a {
     font-size: .84rem;
     color: rgba(255, 255, 255, .6);
     transition: color .3s;
 }

 footer ul li a:hover {
     color: var(--ouro-claro);
 }

 .rede-social {
     display: flex;
     gap: 12px;
     margin-top: 24px;
 }

 .rede-icone {
     width: 38px;
     height: 38px;
     background: rgba(255, 255, 255, .08);
     border: 1px solid rgba(255, 255, 255, .12);
     border-radius: 8px;
     display: flex;
     align-items: center;
     justify-content: center;
     color: rgba(255, 255, 255, .6);
     font-size: .95rem;
     transition: all var(--trans);
 }

 .rede-icone:hover {
     background: var(--ouro);
     border-color: var(--ouro);
     color: var(--branco);
     transform: translateY(-3px);
 }

 .rodape {
     display: flex;
     align-items: center;
     justify-content: space-between;
     flex-wrap: wrap;
     gap: 16px;
     padding-top: 24px;
     border-top: 1px solid rgba(255, 255, 255, .07);
     font-size: .78rem;
     color: rgba(255, 255, 255, .32);
 }

 .rodape a {
     color: rgba(255, 255, 255, .48);
     transition: color .3s;
 }

 .rodape a:hover {
     color: var(--ouro-claro);
 }

 /* WA FLUTUANTE + TOPO */
 #wa-float {
     position: fixed;
     bottom: 28px;
     right: 28px;
     width: 58px;
     height: 58px;
     background: #25D366;
     color: var(--branco);
     border-radius: 50%;
     display: flex;
     align-items: center;
     justify-content: center;
     font-size: 1.5rem;
     box-shadow: 0 4px 20px rgba(37, 211, 102, .5);
     cursor: pointer;
     z-index: 1000;
     border: none;
     text-decoration: none;
     animation: pulse-wa 2.5s infinite;
     transition: transform .3s;
 }

 #wa-float:hover {
     transform: scale(1.1);
 }

 #topo-btn {
     position: fixed;
     bottom: 28px;
     right: 100px;
     width: 46px;
     height: 46px;
     background: var(--ouro);
     color: var(--branco);
     border-radius: 50%;
     display: flex;
     align-items: center;
     justify-content: center;
     font-size: 1rem;
     box-shadow: 0 4px 16px rgba(219, 163, 75, .4);
     cursor: pointer;
     opacity: 0;
     transform: translateY(20px);
     transition: all var(--trans);
     z-index: 800;
     border: none;
 }

 #topo-btn.visivel {
     opacity: 1;
     transform: translateY(0);
 }

 #topo-btn:hover {
     background: var(--azul-escuro);
     transform: translateY(-3px);
 }