:root{

    --primary:#24781E;
    --primary-dark:#185514;
    --primary-soft:#EAF6E8;

    --text:#142018;
    --muted:#66756A;
    --line:#DDE8DD;

    --card:#FFFFFF;
    --bg:#F5FAF4;

    --danger:#B42318;
    --success:#24781E;

    --radius-lg:30px;
    --radius-md:18px;

}

*{

    margin:0;
    padding:0;
    box-sizing:border-box;

}

html{

    scroll-behavior:smooth;

}

body{

    font-family:"Inter",sans-serif;

    color:var(--text);

    background:
    radial-gradient(circle at top left,
    rgba(36,120,30,.16),
    transparent 34rem),
    linear-gradient(
    180deg,
    #fff 0%,
    var(--bg) 46%,
    #fff 100%);

    min-height:100vh;

}

a{

    text-decoration:none;

}

.site-header{

    width:min(1180px,calc(100% - 32px));

    margin:18px auto 0;

    padding:14px 18px;

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:16px;

    background:rgba(255,255,255,.85);

    backdrop-filter:blur(18px);

    border-radius:999px;

    border:1px solid rgba(36,120,30,.12);

    box-shadow:0 14px 40px rgba(20,32,24,.08);

    position:sticky;

    top:14px;

    z-index:10;

}

.brand{

    display:flex;

    align-items:center;

}

.brand-logo{

    width:190px;

    transition:.3s;

}

.brand:hover .brand-logo{

    transform:scale(1.03);

}

.header-actions{

    display:flex;

    gap:12px;

}

.header-link{

    background:var(--primary);

    color:#fff;

    padding:12px 22px;

    border-radius:999px;

    font-weight:700;

    transition:.3s;

}

.header-link:hover{

    transform:translateY(-2px);

    background:var(--primary-dark);

}

.header-link.secondary{

    background:#fff;

    color:var(--primary);

    border:1px solid var(--line);

}

.header-link.secondary:hover{

    background:var(--primary);

    color:#fff;

}

main{

    width:min(1180px,calc(100% - 32px));

    margin:auto;

}

.hero{

    text-align:center;

    padding:70px 0 40px;

}

.hero-copy{

    max-width:800px;

    margin:auto;

}

.eyebrow{

    display:inline-flex;

    padding:10px 16px;

    border-radius:999px;

    background:var(--primary-soft);

    color:var(--primary);

    font-size:.85rem;

    font-weight:800;

}

.hero h1{

    margin:20px 0;

    font-size:clamp(2.3rem,5vw,4rem);

    line-height:1.1;

    letter-spacing:-.04em;

}

.hero p{

    color:var(--muted);

    line-height:1.8;

    font-size:1.05rem;

}

.hero-badges{

    display:flex;

    justify-content:center;

    gap:14px;

    flex-wrap:wrap;

    margin-top:30px;

}

.hero-badges span{

    background:#fff;

    border:1px solid var(--line);

    border-radius:999px;

    padding:12px 18px;

    font-weight:700;

}

.consulta-shell{

    display:flex;

    justify-content:center;

    padding-bottom:80px;

}

.consulta-card{

    width:100%;

    max-width:600px;

    background:#fff;

    border-radius:30px;

    padding:40px;

    border:1px solid rgba(36,120,30,.08);

    box-shadow:

    0 15px 35px rgba(0,0,0,.05),

    0 30px 70px rgba(36,120,30,.08);

}

.section-heading{

    text-align:center;

    margin-bottom:35px;

}

.section-heading span{

    color:var(--primary);

    text-transform:uppercase;

    font-size:.8rem;

    font-weight:800;

    letter-spacing:.08em;

}

.section-heading h2{

    margin:10px 0;

    font-size:2rem;

}

.section-heading p{

    color:var(--muted);

    line-height:1.6;

}

.field{

    display:flex;

    flex-direction:column;

    gap:10px;

}

.field label{

    font-weight:700;

}

.field input{

    height:60px;

    border:1px solid var(--line);

    border-radius:18px;

    padding:0 18px;

    font-size:16px;

    outline:none;

    transition:.25s;

}

.field input:focus{

    border-color:var(--primary);

    box-shadow:0 0 0 5px rgba(36,120,30,.12);

}

.primary-button{

    width:100%;

    margin-top:28px;

    height:60px;

    border:none;

    border-radius:18px;

    cursor:pointer;

    font-size:1rem;

    font-weight:800;

    color:#fff;

    background:linear-gradient(

    135deg,

    var(--primary),

    var(--primary-dark)

    );

    transition:.3s;

    box-shadow:

    0 18px 35px

    rgba(36,120,30,.22);

}

.primary-button:hover{

    transform:translateY(-3px);

}

.resultado{

    margin-top:35px;

    min-height:120px;

    border-radius:20px;

    padding:25px;

    background:var(--bg);

    border:1px solid var(--line);

    text-align:center;

    display:flex;

    align-items:center;

    justify-content:center;

    flex-direction:column;

    gap:12px;

}

.resultado:empty{

    display:none;

}

.resultado.success{

    background:#EDF9EC;

    border-color:#8ACB85;

}

.resultado.error{

    background:#FFF2F0;

    border-color:#F0A29B;

}

.resultado h3{

    font-size:1.4rem;

}

.resultado p{

    color:var(--muted);

    line-height:1.6;

}

.site-footer{

    text-align:center;

    padding:35px;

    color:var(--muted);

}

@media(max-width:768px){

.site-header{

    flex-direction:column;

    border-radius:25px;

    padding:18px;

}

.brand-logo{

    width:130px;

}

.header-actions{

    width:100%;

}

.header-link{

    flex:1;

    text-align:center;

}

.hero{

    padding:45px 0 30px;

}

.hero h1{

    font-size:2.2rem;

}

.consulta-card{

    padding:25px;

}

}

.asesores{

    display:flex;

    gap:16px;

    justify-content:center;

    margin-top:25px;

    flex-wrap:wrap;

}

.asesor-btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    min-width:150px;

    padding:14px 24px;

    border-radius:999px;

    background:linear-gradient(
        135deg,
        var(--primary),
        var(--primary-dark)
    );

    color:#fff;

    font-weight:700;

    transition:.3s;

    box-shadow:0 12px 30px rgba(36,120,30,.20);

}

.asesor-btn:hover{

    transform:translateY(-3px);

}

.resultado{

    opacity:0;

    transform:translateY(20px);

    transition:

    opacity .35s ease,

    transform .35s ease;

}

.resultado.show{

    opacity:1;

    transform:translateY(0);

}

.primary-button.loading{

    pointer-events:none;

    opacity:.95;

}

.primary-button.loading .button-loader{

    display:inline-block;

}

.button-loader{

    display:none;

    width:18px;

    height:18px;

    border-radius:50%;

    border:3px solid rgba(255,255,255,.35);

    border-top-color:#fff;

    animation:spin .8s linear infinite;

}

@keyframes spin{

    to{

        transform:rotate(360deg);

    }

}

.success-icon{

    width:80px;

    height:80px;

    margin:0 auto 20px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    background:linear-gradient(
        135deg,
        #2DBE60,
        var(--primary)
    );

    color:#fff;

    font-size:2rem;

    font-weight:800;

    box-shadow:0 15px 35px rgba(45,190,96,.25);

}

.error-icon{

    width:80px;

    height:80px;

    margin:0 auto 20px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    background:#FFECEC;

    color:#D92D20;

    font-size:2rem;

    font-weight:800;

}

.consulta-card{

    animation:fadeUp .7s ease;

}

.hero{

    animation:fadeUp .8s ease;

}

@keyframes fadeUp{

    from{

        opacity:0;

        transform:translateY(30px);

    }

    to{

        opacity:1;

        transform:none;

    }

}

.brand-logo{

    transition:.35s;

}

.brand:hover .brand-logo{

    transform:scale(1.05);

}

.asesor-btn::after{

    content:"";

    position:absolute;

    inset:0;

    background:rgba(255,255,255,.12);

    transform:translateX(-100%);

    transition:.45s;

}

.asesor-btn:hover::after{

    transform:translateX(100%);

}

.field input{

    transition:.3s;

}

.field input:focus{

    transform:translateY(-2px);

}

::selection{

    background:var(--primary);

    color:#fff;

}

.hero-badges span{

    transition:.25s;

}

.hero-badges span:hover{

    transform:translateY(-3px);

    box-shadow:0 10px 25px rgba(0,0,0,.08);

}

.button-text{

display:flex;

align-items:center;

}

.asesor-btn{

position:relative;

overflow:hidden;

}