*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:'Inter', Arial, sans-serif;
}

:root{
    --blue:#0b2c4d;
    --yellow:#f2a900;
}

html, body{
    max-width:100%;
    overflow-x:hidden;
}

/* ================= BASE ================= */

body{
    background:linear-gradient(180deg,#eef2f6 0%, #f9fbfd 60%);
    color:var(--blue);
    text-align:center;
}

section{
    background:white;
    margin:40px auto;
    max-width:1100px;
    padding:50px 30px;
    border-radius:16px;
    box-shadow:0 20px 50px rgba(11,44,77,.08);
}

/* ================= ANIMATIONS ================= */

.hidden{
    opacity:0;
    transform:translateY(40px);
    transition:all .7s ease;
}

.show{
    opacity:1;
    transform:translateY(0);
}

/* ================= HEADER ================= */

.site-header{
    background:#ffffff;
    border-bottom:1px solid #e5eaf0;
}

.header-container{
    max-width:1200px;
    margin:auto;
    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
    padding:25px 20px;
}

.header-logo{
    height:80px;
    justify-self:start;
}

.header-text{
    text-align:center;
}

.header-text h1{
    font-size:26px;
    font-weight:700;
    margin-bottom:4px;
}

.header-text p{
    font-size:15px;
    color:#5b6f89;
}

.header-spacer{
    justify-self:end;
}

.header-bar{
    background:linear-gradient(135deg,#f2a900,#ffbf3f);
    padding:12px 20px;
    text-align:center;
}

.header-bar a{
    color:#0b2c4d;
    font-weight:600;
    text-decoration:none;
}

/* ================= HERO ================= */

.hero{
    padding: 20px 30px;
}

.hero h1{
    font-size:42px;
    font-weight:700;
    letter-spacing:-1px;
}

.hero p{
    font-size:22px;
    color:#5b6f89;
    margin-top:10px;
}

/* ================= REQUISITOS ================= */

.requisitos ul{
    list-style:none;
    max-width:900px;
    margin:40px auto 0;
    text-align:left;
    font-size:18px;
}

.requisitos li{
    padding:16px 0 16px 35px;
    border-bottom:1px solid #e3e8ef;
    position:relative;
}

.requisitos li::before{
    content:"✔";
    position:absolute;
    left:0;
    color:var(--yellow);
    font-weight:bold;
}

/* ================= CTA ================= */

.cta{
    background:linear-gradient(135deg,#0b2c4d,#123f6b);
    color:white;
    max-width:500px;
    margin:60px auto;
    border-radius:18px;
    padding:60px 30px;
}

.cta h2{
    font-size:40px;
    margin-bottom:25px;
}

.btn{
    display:inline-block;
    background:linear-gradient(135deg,#f2a900,#ffcc55);
    color:#0b2c4d;
    padding:16px 42px;
    font-size:18px;
    font-weight:600;
    border-radius:30px;
    box-shadow:0 15px 35px rgba(242,169,0,.4);
    transition:.3s;
}

.btn:hover{
    transform:translateY(-3px);
    box-shadow:0 20px 45px rgba(242,169,0,.55);
}

/* ================= FOOTER ================= */

.site-footer{
    background:linear-gradient(180deg,#0b2c4d,#09233c);
    color:white;
    padding:45px 20px;
    margin-top:80px;
}

.site-footer h3{
    font-size:20px;
    margin-bottom:30px;
}

.footer-content{
    max-width:1100px;
    margin:auto;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:25px;
    font-size:16px;
}

.footer-item,
.footer-item a{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:8px;
}

.footer-copy{
    margin-top:30px;
    font-size:14px;
    opacity:.8;
}

/* ================= LINKS ================= */

a{
    color:inherit;
    text-decoration:none;
}

a:hover{
    opacity:.85;
}

/* ================= RESPONSIVE ================= */

@media (max-width:1024px){
    .hero h1{font-size:34px}
    .hero p{font-size:20px}
    .cta h2{font-size:32px}
}

@media (max-width:768px){

    .header-container{
        grid-template-columns:1fr;
        gap:12px;
        text-align:center;
    }

    .header-logo{
        margin:auto;
        height:48px;
    }

    .header-spacer{
        display:none;
    }

    .header-text h1{
        font-size:22px;
    }

    .header-text p{
        font-size:14px;
    }

    .hero{
        padding: 10px 20px;
    }

    .hero h1{
        font-size:26px;
        line-height:1.3;
    }

    .hero p{
        font-size:17px;
    }

    .requisitos ul{
        font-size:17px;
    }

    .cta{
        padding:45px 20px;
    }

    .cta h2{
        font-size:26px;
    }

    .btn{
        font-size:16px;
        padding:14px 30px;
    }

    .footer-content{
        grid-template-columns:1fr;
        gap:18px;
    }
}

@media (max-width:480px){

    .hero h1{font-size:22px}
    .hero p{font-size:16px}

    .btn{
        width:100%;
        max-width:260px;
    }
}
