/* =====================================================
   RESET
===================================================== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{

    font-family:'Inter',sans-serif;
    background:#ffffff;
    color:#1f2937;
    overflow-x:hidden;
    -webkit-font-smoothing:antialiased;

}

img{

    max-width:100%;
    display:block;

}

a{

    text-decoration:none;

}

button{

    font-family:inherit;
    border:none;
    cursor:pointer;

}

.container{

    width:min(92%,1200px);
    margin:auto;

}

/* =====================================================
   HEADER
===================================================== */

.header{

    position:fixed;
    top:0;
    left:0;
    width:100%;
    z-index:1000;

    background:rgba(255,255,255,.90);

    backdrop-filter:blur(12px);

    border-bottom:1px solid rgba(0,0,0,.05);

}

.header .container{

    height:74px;

    display:flex;

    justify-content:space-between;

    align-items:center;

}

.logo{

    font-size:24px;

    font-weight:800;

    letter-spacing:1px;

    color:#2563eb;

}

.logo span{

    color:#111827;

}

.btn-header{

    background:#2563eb;

    color:#fff;

    padding:14px 26px;

    border-radius:50px;

    font-weight:700;

    transition:.30s;

}

.btn-header:hover{

    transform:translateY(-2px);

    box-shadow:0 12px 30px rgba(37,99,235,.25);

}

/* =====================================================
   HERO
===================================================== */

.hero{

    padding-top:140px;

    padding-bottom:90px;

}

.hero-container{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:70px;

    align-items:center;

}

.badge{

    display:inline-flex;

    align-items:center;

    gap:10px;

    background:#eff6ff;

    color:#2563eb;

    padding:12px 22px;

    border-radius:100px;

    font-weight:600;

    margin-bottom:28px;

}

.hero h1{

    font-size:58px;

    line-height:1.1;

    font-weight:800;

    color:#111827;

    margin-bottom:28px;

}

.hero p{

    font-size:21px;

    line-height:1.8;

    color:#6b7280;

    margin-bottom:45px;

}

.hero-buttons{

    display:flex;

    gap:20px;

    flex-wrap:wrap;

}

.btn-primary{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    background:#25D366;

    color:#fff;

    padding:20px 42px;

    border-radius:60px;

    font-size:18px;

    font-weight:700;

    transition:.30s;

}

.btn-primary:hover{

    transform:translateY(-4px);

    box-shadow:0 18px 35px rgba(37,211,102,.35);

}

.hero-image{

    position:relative;

}

.hero-image img{

    width:100%;

    border-radius:30px;

    box-shadow:0 40px 80px rgba(0,0,0,.12);

}

/* =====================================================
   BENEFITS
===================================================== */

.benefits{

    padding:90px 0;

    background:#f8fafc;

}

.benefits h2{

    text-align:center;

    font-size:42px;

    margin-bottom:60px;

}

.cards{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:30px;

}

.card{

    background:#fff;

    border-radius:24px;

    padding:45px;

    transition:.35s;

    border:1px solid rgba(0,0,0,.04);

}

.card:hover{

    transform:translateY(-10px);

    box-shadow:0 30px 60px rgba(0,0,0,.08);

}

.icon{

    font-size:50px;

    margin-bottom:25px;

}

.card h3{

    font-size:24px;

    margin-bottom:18px;

}

.card p{

    color:#6b7280;

    line-height:1.8;

}

/* =====================================================
   COMO FUNCIONA
===================================================== */

.steps{

    padding:110px 0;

    background:#ffffff;

}

.steps h2{

    text-align:center;

    font-size:42px;

    font-weight:800;

    margin-bottom:70px;

    color:#111827;

}

.step-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:35px;

}

.step{

    position:relative;

    background:#ffffff;

    border:1px solid rgba(0,0,0,.05);

    border-radius:28px;

    padding:50px 40px;

    text-align:center;

    transition:.35s;

    overflow:hidden;

}

.step::before{

    content:"";

    position:absolute;

    left:0;

    top:0;

    width:100%;

    height:6px;

    background:linear-gradient(90deg,#2563eb,#25D366);

}

.step:hover{

    transform:translateY(-10px);

    box-shadow:0 30px 60px rgba(0,0,0,.08);

}

.step span{

    width:72px;

    height:72px;

    display:flex;

    align-items:center;

    justify-content:center;

    margin:0 auto 30px;

    border-radius:50%;

    background:#2563eb;

    color:#fff;

    font-size:30px;

    font-weight:800;

}

.step h3{

    font-size:26px;

    margin-bottom:18px;

    color:#111827;

}

.step p{

    font-size:17px;

    line-height:1.8;

    color:#6b7280;

}

/* =====================================================
   FAQ
===================================================== */

.faq{

    padding:110px 0;

    background:#f8fafc;

}

.faq h2{

    text-align:center;

    font-size:42px;

    margin-bottom:60px;

    color:#111827;

}

.faq-item{

    max-width:900px;

    margin:0 auto 20px;

    background:#fff;

    border-radius:20px;

    border:1px solid rgba(0,0,0,.05);

    overflow:hidden;

    transition:.30s;

}

.faq-item:hover{

    box-shadow:0 15px 40px rgba(0,0,0,.08);

}

.faq-item button{

    width:100%;

    background:#fff;

    padding:28px 35px;

    text-align:left;

    font-size:20px;

    font-weight:700;

    color:#111827;

    display:flex;

    justify-content:space-between;

    align-items:center;

}

.faq-item button::after{

    content:"+";

    font-size:28px;

    color:#2563eb;

    transition:.3s;

}

.faq-item.active button::after{

    transform:rotate(45deg);

}

.faq-item div{

    max-height:0;

    overflow:hidden;

    transition:max-height .35s ease;

}

.faq-item.active div{

    max-height:300px;

}

.faq-item p{

    padding:0 35px 30px;

    font-size:17px;

    line-height:1.8;

    color:#6b7280;

}

/* =====================================================
   CTA
===================================================== */

.cta{

    padding:120px 0;

    background:linear-gradient(135deg,#2563eb,#1d4ed8);

    color:#ffffff;

    text-align:center;

}

.cta h2{

    font-size:48px;

    font-weight:800;

    margin-bottom:25px;

}

.cta p{

    max-width:760px;

    margin:0 auto 45px;

    font-size:21px;

    line-height:1.8;

    opacity:.95;

}

.btn-primary.big{

    padding:24px 60px;

    font-size:22px;

    border-radius:60px;

    box-shadow:0 20px 45px rgba(0,0,0,.18);

}

.btn-primary.big:hover{

    transform:translateY(-5px) scale(1.02);

}

/* =====================================================
   FOOTER
===================================================== */

footer{

    background:#111827;

    color:#d1d5db;

    padding:45px 0;

}

footer .container{

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:30px;

    flex-wrap:wrap;

}

footer p{

    font-size:15px;

}

.footer-links{

    display:flex;

    gap:25px;

}

.footer-links a{

    color:#d1d5db;

    transition:.3s;

}

.footer-links a:hover{

    color:#ffffff;

}

/* =====================================================
   ELEMENTOS GLOBAIS
===================================================== */

section{

    position:relative;

}

h1,h2,h3{

    letter-spacing:-1px;

}

::selection{

    background:#2563eb;

    color:#ffffff;

}

::-webkit-scrollbar{

    width:10px;

}

::-webkit-scrollbar-track{

    background:#f3f4f6;

}

::-webkit-scrollbar-thumb{

    background:#2563eb;

    border-radius:30px;

}

::-webkit-scrollbar-thumb:hover{

    background:#1d4ed8;

}

/* =====================================================
   EFEITOS VISUAIS PREMIUM
===================================================== */

.hero{
    position:relative;
    overflow:hidden;
}

.hero::before{
    content:"";
    position:absolute;
    width:700px;
    height:700px;
    background:radial-gradient(circle,rgba(37,99,235,.10),transparent 70%);
    top:-250px;
    right:-180px;
    border-radius:50%;
    pointer-events:none;
}

.hero::after{
    content:"";
    position:absolute;
    width:500px;
    height:500px;
    background:radial-gradient(circle,rgba(37,211,102,.08),transparent 70%);
    bottom:-200px;
    left:-120px;
    border-radius:50%;
    pointer-events:none;
}

.hero-container{
    position:relative;
    z-index:2;
}

.hero-image{
    animation:floatImage 6s ease-in-out infinite;
}

.card,
.step,
.faq-item{

    position:relative;

}

.card::after,
.step::after{

    content:"";

    position:absolute;

    inset:0;

    border-radius:inherit;

    padding:1px;

    background:linear-gradient(
        135deg,
        rgba(255,255,255,.7),
        rgba(255,255,255,0)
    );

    -webkit-mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);

    -webkit-mask-composite:xor;

    mask-composite:exclude;

    pointer-events:none;

}

.card:hover{

    transform:translateY(-12px) scale(1.02);

}

.step:hover{

    transform:translateY(-12px) scale(1.02);

}

.hero h1{

    max-width:650px;

}

.hero p{

    max-width:580px;

}

.benefits h2,
.steps h2,
.faq h2{

    font-weight:800;

    color:#111827;

}

/* =====================================================
   BOTÕES
===================================================== */

.btn-primary,
.btn-header{

    position:relative;

    overflow:hidden;

}

.btn-primary::before,
.btn-header::before{

    content:"";

    position:absolute;

    top:0;

    left:-120%;

    width:60%;

    height:100%;

    background:rgba(255,255,255,.25);

    transform:skewX(-25deg);

    transition:.7s;

}

.btn-primary:hover::before,
.btn-header:hover::before{

    left:150%;

}

.btn-primary:active,
.btn-header:active{

    transform:scale(.98);

}

/* =====================================================
   IMAGENS
===================================================== */

.hero-image img{

    transition:transform .5s;

}

.hero-image:hover img{

    transform:scale(1.03);

}

/* =====================================================
   LINKS
===================================================== */

a{

    transition:.25s;

}

/* =====================================================
   FOCUS
===================================================== */

button:focus,
a:focus{

    outline:3px solid rgba(37,99,235,.25);

    outline-offset:5px;

}

/* =====================================================
   ESPAÇAMENTO
===================================================== */

section{

    scroll-margin-top:100px;

}

.card p,
.step p{

    font-size:17px;

}

.card h3,
.step h3{

    font-weight:700;

}

/* =====================================================
   TRANSIÇÕES
===================================================== */

.card,
.step,
.faq-item,
.btn-primary,
.btn-header{

    transition:
    transform .35s,
    box-shadow .35s,
    background .35s,
    color .35s;

}

/* =====================================================
   SOMBRAS
===================================================== */

.hero-image img{

    box-shadow:
    0 25px 80px rgba(0,0,0,.10),
    0 10px 30px rgba(0,0,0,.08);

}

.card{

    box-shadow:
    0 5px 15px rgba(0,0,0,.03);

}

.step{

    box-shadow:
    0 5px 15px rgba(0,0,0,.03);

}

/* =====================================================
   DIVISORES
===================================================== */

.benefits::before,
.steps::before,
.faq::before{

    content:"";

    position:absolute;

    top:0;

    left:50%;

    transform:translateX(-50%);

    width:90px;

    height:4px;

    border-radius:20px;

    background:#2563eb;

}

/* =====================================================
   TEXTO
===================================================== */

body{

    line-height:1.6;

}

p{

    font-weight:400;

}

h1,h2,h3{

    font-weight:800;

}

/* =====================================================
   BADGE
===================================================== */

.badge{

    box-shadow:
    0 12px 25px rgba(37,99,235,.08);

}

/* =====================================================
   ANIMAÇÃO SUAVE
===================================================== */

@keyframes floatImage{

    0%{

        transform:translateY(0px);

    }

    50%{

        transform:translateY(-12px);

    }

    100%{

        transform:translateY(0px);

    }

}

/* =====================================================
   PARTE 4/4
   ACABAMENTO FINAL
===================================================== */

/* Glass Effect */

.header{

    box-shadow:
    0 8px 30px rgba(0,0,0,.04);

}

/* Gradiente do botão */

.btn-primary{

    background:
    linear-gradient(
        135deg,
        #25D366,
        #1fb857
    );

}

/* Gradiente botão header */

.btn-header{

    background:
    linear-gradient(
        135deg,
        #2563eb,
        #1d4ed8
    );

}

/* Hero */

.hero-text{

    position:relative;

    z-index:2;

}

/* Cartões */

.card{

    overflow:hidden;

}

.card::before{

    content:"";

    position:absolute;

    width:180px;

    height:180px;

    right:-70px;

    top:-70px;

    border-radius:50%;

    background:rgba(37,99,235,.03);

}

.step::before{

    transition:.4s;

}

.step:hover::before{

    height:8px;

}

/* FAQ */

.faq-item{

    transition:
    .3s ease;

}

.faq-item.active{

    border-color:#2563eb;

}

/* CTA */

.cta{

    position:relative;

    overflow:hidden;

}

.cta::before{

    content:"";

    position:absolute;

    width:600px;

    height:600px;

    border-radius:50%;

    background:rgba(255,255,255,.05);

    right:-220px;

    top:-250px;

}

.cta::after{

    content:"";

    position:absolute;

    width:400px;

    height:400px;

    border-radius:50%;

    background:rgba(255,255,255,.04);

    left:-160px;

    bottom:-180px;

}

/* Footer */

footer{

    position:relative;

}

footer::before{

    content:"";

    position:absolute;

    top:0;

    left:0;

    width:100%;

    height:1px;

    background:rgba(255,255,255,.05);

}

/* Hover Links */

.footer-links a{

    position:relative;

}

.footer-links a::after{

    content:"";

    position:absolute;

    left:0;

    bottom:-4px;

    width:0;

    height:2px;

    background:#25D366;

    transition:.3s;

}

.footer-links a:hover::after{

    width:100%;

}

/* Seleção */

::selection{

    background:#2563eb;

    color:#fff;

}

/* Inputs futuros */

input,
textarea,
select{

    font-family:inherit;

}

/* Melhor renderização */

body{

    text-rendering:optimizeLegibility;

}

/* Remove highlight Android */

*{

    -webkit-tap-highlight-color:transparent;

}

/* Evita imagens arrastáveis */

img{

    user-select:none;

    -webkit-user-drag:none;

}

/* Melhor clique */

.btn-primary,
.btn-header{

    touch-action:manipulation;

}

/* Pequeno efeito nas seções */

.benefits,
.steps,
.faq,
.cta{

    position:relative;

    z-index:1;

}

/* Espaçamento extra em desktop */

@media(min-width:1600px){

.container{

    max-width:1400px;

}

.hero h1{

    font-size:66px;

}

.hero p{

    font-size:23px;

}

.benefits h2,
.steps h2,
.faq h2,
.cta h2{

    font-size:52px;

}

}

/* FIM DO style.css */



/* ==========================================
   FORMULÁRIO DE COTAÇÃO
========================================== */

.cotacao {
    padding: 90px 20px;
    background: #f7f9fc;
}


.cotacao-header {
    max-width: 750px;
    margin: 0 auto 40px;
    text-align: center;
}


.cotacao-header h2 {
    font-size: 38px;
    margin: 15px 0;
}


.cotacao-header p {
    font-size: 17px;
    line-height: 1.7;
    color: #666;
}


.form-cotacao {
    max-width: 720px;
    margin: 0 auto;
    padding: 40px;
    background: #ffffff;
    border-radius: 18px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.08);
}


.form-group {
    margin-bottom: 30px;
}


.form-group > label {
    display: block;
    margin-bottom: 12px;
    font-size: 16px;
    font-weight: 700;
}


.form-row {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 12px;
}


.form-cotacao input[type="text"],
.form-cotacao input[type="number"],
.form-cotacao input[type="tel"],
.form-cotacao select {
    width: 100%;
    padding: 15px;
    border: 1px solid #dfe3e8;
    border-radius: 10px;
    font-size: 15px;
    box-sizing: border-box;
    background: #fff;
}


.form-cotacao input:focus,
.form-cotacao select:focus {
    outline: none;
    border-color: #1683ff;
    box-shadow: 0 0 0 3px rgba(22,131,255,0.10);
}


/* ==========================================
   OPÇÕES
========================================== */

.opcoes {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}


.opcao {
    cursor: pointer;
}


.opcao input {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
}


.opcao span {
    min-height: 70px;
    padding: 15px;
    border: 1px solid #dfe3e8;
    border-radius: 12px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 5px;
    transition: 0.2s;
}


.opcao span strong {
    font-size: 13px;
}


.opcao input:checked + span {
    border-color: #1683ff;
    background: #f0f7ff;
    box-shadow: 0 0 0 2px rgba(22,131,255,0.10);
}


/* ==========================================
   IDADES
========================================== */

.idade-row {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}


.idade-row input {
    flex: 1;
}


.remover-pessoa {
    width: 42px;
    height: 42px;
    border: none;
    border-radius: 8px;
    background: #ffe8e8;
    color: #d33;
    font-size: 22px;
    cursor: pointer;
}


.btn-adicionar {
    margin-top: 5px;
    padding: 10px 15px;
    border: none;
    background: transparent;
    color: #1683ff;
    font-weight: 700;
    cursor: pointer;
}


/* ==========================================
   BOTÃO
========================================== */

.btn-cotacao {
    width: 100%;
    border: none;
    cursor: pointer;
}


.form-aviso {
    margin-top: 15px;
    text-align: center;
    font-size: 13px;
    color: #777;
}


/* ==========================================
   MOBILE
========================================== */

@media (max-width: 650px) {

    .cotacao {
        padding: 60px 15px;
    }


    .cotacao-header h2 {
        font-size: 30px;
    }


    .form-cotacao {
        padding: 25px 18px;
    }


    .form-row {
        grid-template-columns: 1fr;
    }


    .opcoes {
        grid-template-columns: 1fr;
    }


    .opcao span {
        min-height: 55px;
        flex-direction: row;
        justify-content: flex-start;
        text-align: left;
    }

}



/* ==========================================
   CORREÇÃO DOS CAMPOS DO FORMULÁRIO
========================================== */

.form-cotacao input[type="text"],
.form-cotacao input[type="number"],
.form-cotacao input[type="tel"],
.form-cotacao select {
    position: relative;
    z-index: 20;
    pointer-events: auto !important;
    opacity: 1 !important;
}


/* Campos de texto */

.form-cotacao input[type="text"],
.form-cotacao input[type="number"],
.form-cotacao input[type="tel"] {
    display: block !important;
    visibility: visible !important;
    cursor: text;
}


/* Select */

.form-cotacao select {
    display: block !important;
    visibility: visible !important;
    cursor: pointer;
}


/* Radios */

.form-cotacao .opcao input[type="radio"] {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
    pointer-events: none;
}