/* =====================================================
   CONFIGURACIÓN GENERAL
===================================================== */

*{
    box-sizing:border-box;
}

body{
    margin:0;
    font-family:Arial,sans-serif;
    background:#f7f5ef;
    color:#173554;
}

h1{
    font-size:36px;
    color:#163a5a;
}

h3{
    font-size:18px;
    margin-bottom:20px;
    text-align:center;
}

h4{
    font-size:18px;
    margin-bottom:20px;
}

p{
    text-align:left;
}

ul{
    margin:0 0 35px 5px;
}

li{
    margin-bottom:8px;
}


/* =====================================================
   HERO
===================================================== */

.hero{
    max-width:1150px;

    margin:0 auto;

    display:grid;
    grid-template-columns:1fr 1fr;

    align-items:stretch;
}

.hero-texto{
    padding:50px 50px 50px 0;
}

.logo{
    max-width:280px;
}

.hero h1{
    font-size:36px;
    color:#163a5a;
}

.hero h2{
    color:#5f8c57;
    font-size:26px;
}

.hero-imagen{
    height:100%;
    display:flex;
}

.hero-imagen img{
    width:100%;
    height:100%;

    display:block;

    object-fit:cover;
}


/* =====================================================
   MENÚ SUPERIOR
===================================================== */

.top-menu{
    max-width:1200px;

    margin:0 auto;

    background:#013f4e;

    border:none;

    border-radius:14px;

    overflow:hidden;
}

.top-menu ul{
    list-style:none;

    display:flex;

    justify-content:center;
    align-items:center;

    flex-wrap:wrap;

    gap:40px;

    padding:18px 20px;

    margin:0;
}

.top-menu li{
    border-right:1px solid #ffffff;

    padding-right:20px;
    margin-right:20px;
}

.top-menu li:last-child{
    border-right:none;

    padding-right:0;
    margin-right:0;
}

.top-menu a{
    text-decoration:none;

    color:#ffffff;

    font-size:16px;
    font-weight:600;

    padding:8px 12px;

    transition:0.3s;
}

.top-menu a:hover{
    opacity:0.8;
}


/* =====================================================
   BOTÓN HAMBURGUESA
===================================================== */

.menu-toggle {
    display: none;
}

@media (max-width: 768px) {

    .menu-toggle {
        display: block;
        width: 100%;
        padding: 15px;
        background: #013f4e;
        color: white;
        border: none;
        font-size: 28px;
        cursor: pointer;
    }

    .top-menu ul {
        display: none !important;
        margin: 0;
        padding: 0;
        flex-direction: column;
    }

    .top-menu ul.menu-abierto {
        display: flex !important;
    }
}


/* =====================================================
   ESTRUCTURA PRINCIPAL
===================================================== */

.layout{
    max-width:1200px;

    margin:30px auto;

    display:flex;

    align-items:flex-start;

    gap:30px;
}


/* =====================================================
   SIDEBAR
===================================================== */

@media (max-width: 768px){

    .sidebar{
        display:none;
    }

}

.sidebar{
    width:250px;

    background:#ffffff;

    border-radius:15px;

    padding:20px;

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

    flex-shrink:0;
}

.sidebar ul{
    list-style:none;

    margin:0;
    padding:0;
}

.sidebar li{
    border-bottom:1px solid #dcdcdc;
}

.sidebar li:last-child{
    border-bottom:none;
}

.sidebar a{
    display:block;

    padding:14px 10px;

    text-decoration:none;

    color:#013f4e;

    font-weight:600;

    transition:.3s;
}

.sidebar a:hover{
    background:#f5f5f5;
}


/* =====================================================
   SIDEBAR FOOTER
===================================================== */

.sidebarFOOTER{
        display:none;
}

@media (max-width: 768px){

.sidebarFOOTER{
        display:block;
}

.sidebarFOOTER{
    width:100%;

    background:#ffffff;

    border-radius:15px;

    padding:20px;

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

    flex-shrink:0;
}

.sidebarFOOTER ul{
    list-style:none;
    margin:0;
    padding:0;
}

.sidebarFOOTER li{
    border-bottom:1px solid #dcdcdc;
    text-align: center;
}

.sidebarFOOTER li:last-child{
    border-bottom:none;
}

.sidebarFOOTER a{
    display:block;

    padding:14px 10px;

    text-decoration:none;

    color:#013f4e;

    font-weight:600;

    transition:.3s;
}

.sidebarFOOTER a:hover{
    background:#f5f5f5;
}

}





/* =====================================================
   CONTENIDO PRINCIPAL
===================================================== */

.contenido-principal{
    max-width:100%;
}


/* =====================================================
   BENEFICIOS
===================================================== */

.beneficios{
    max-width:100%;

    margin:auto;
    padding:0;
}

.beneficios h2{
    text-align:center;

    margin-bottom:50px;
}

.beneficios li{
    margin-bottom:15px;
    line-height:1;
}


.beneficiosblanco{
    max-width:100%;

    padding:0;

    background:#ffffff;

    border-radius:30px;
}

.beneficiosblanco h2{
    text-align:center;

    padding-right:20px;
}

.beneficiosblanco li{
    line-height:1;
}

.beneficiosblanco img{
    display:block;

    width:100%;

    margin:0;
    padding:0;

    border-radius:20px;
}


/* =====================================================
   CARDS
===================================================== */

.cards{
    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:30px;
}

.card{
    text-align:center;
}

.card img{
    width:120px;
}


/* =====================================================
   BLOQUES
===================================================== */

.bloques{
    max-width:50%;

    margin:auto;

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:30px;

    padding:40px 20px;
}

.bloque{
    background:#f1eee8;

    border-radius:20px;

    padding:40px;
}


/* =====================================================
   CAJAS
===================================================== */

.contenedor-cajas{
    display:flex;

    gap:30px;

    margin-top:30px;
}

.caja{
    flex:1;

    padding:30px;

    border-radius:20px;

    background:#f1eee8;
}

.caja h2{
    text-align:center;
}

.caja li::marker{
    color:#6fa24c;
}


/* =====================================================
   FRASE FINAL
===================================================== */

.frase-final{
    max-width:50%;

    margin:auto;

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:30px;

    padding:40px 20px;
}


/* =====================================================
   SERVICIOS
===================================================== */

.servicios{
    width:100%;

    margin-top:50px;
}

.servicio-item{
    display:grid;

    grid-template-columns:1fr 1fr;

    gap:60px;

    align-items:center;

    margin-bottom:50px;
}

.servicio-texto li::marker{
    color:#6fa24c;
}

.servicio-imagen{
    position:relative;
}

.servicio-imagen img{
    width:100%;

    display:block;

    border-radius:25px;
}

.badge{
    position:absolute;

    top:15px;
    right:15px;

    background:#ffffff;

    color:#24345c;

    padding:10px 20px;

    border-radius:30px;

    font-size:14px;
    font-weight:700;

    z-index:2;
}

.btn-servicio{
    display:inline-block;

    padding:16px 35px;

    border:2px solid #ef3b45;

    border-radius:40px;

    color:#ef3b45;

    text-decoration:none;

    font-weight:600;

    transition:.3s;
}

.btn-servicio:hover{
    background:#ef3b45;
    color:#ffffff;
}

.reverse{
    margin-top:50px;
}


/* =====================================================
   BARRA INFERIOR
===================================================== */

.barra-inf{
    background:#013f4e;

    max-width:1200px;

    margin:40px auto 0;

    border-radius:20px;

    padding:20px;
}

.barra-inf nav{
    display:flex;

    justify-content:center;
    align-items:center;

    flex-wrap:wrap;
}

.barra-inf a{
    display:flex;

    align-items:center;

    gap:10px;

    color:#ffffff;

    text-decoration:none;

    padding:0 25px;

    font-size:18px;
}

.barra-inf a img{
    width:22px;
    height:22px;

    object-fit:contain;
}

.barra-inf a:not(:last-child){
    border-right:1px solid #ffffff;
}


/* =====================================================
   FRASE MOTIVACIONAL
===================================================== */

.frase-motivacional{
    width:100%;

    margin:40px 0;

    background:#dee0c0;

    border-radius:20px;

    padding:25px 40px;

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:30px;
}

.frase-col{
    flex:1;

    display:flex;

    align-items:center;

    justify-content:center;

    gap:20px;

    text-align:center;
}

.icono,
.icono-hoja{
    display:flex;

    align-items:center;
    justify-content:center;
}

.icono img{
    width:70px;
    height:70px;

    display:block;
}

.icono-hoja img{
    width:60px;
    height:auto;

    display:block;
}

.texto{
    color:#1c3455;

    font-size:18px;

    line-height:1.5;
}

.texto strong{
    font-size:20px;
}

.texto span{
    color:#6fa24c;

    font-weight:600;
}

.separador{
    width:1px;

    align-self:stretch;

    background:#7aa060;
}


/* =====================================================
   COPYRIGHT
===================================================== */

.copyright{
    text-align:center;

    padding:20px;

    color:#666;

    font-size:14px;
}


/* =====================================================
   TABLET Y MÓVIL
   Hasta 768px
===================================================== */

@media (max-width:768px){

    body{
        width:100%;
        overflow-x:hidden;
    }


    /* -------------------------
       TIPOGRAFÍA
    ------------------------- */

    h1{
        font-size:30px;
        line-height:1.2;
    }

    h2{
        font-size:26px;
        line-height:1.25;
    }

    h3,
    h4{
        font-size:18px;
        line-height:1.3;
    }

    p{
        font-size:16px;
        line-height:1.5;
    }

    ul{
        padding-left:20px;
    }

    li{
        margin-bottom:10px;
        line-height:1.4;
    }


    /* -------------------------
       HERO
    ------------------------- */

    .hero{
        width:100%;
        max-width:100%;

        display:flex;

        flex-direction:column;

        margin:0;
    }

    .hero-texto{
        padding:30px 20px;
    }

    .hero-imagen{
        width:100%;
        height:auto;
    }

    .hero-imagen img{
        width:100%;
        height:auto;

        min-height:180px;

        object-fit:cover;
    }

    .logo{
        width:100%;
        max-width:220px;
    }

    .hero h1{
        font-size:30px;
    }

    .hero h2{
        font-size:23px;
    }


    /* -------------------------
       MENÚ
    ------------------------- */

    .top-menu{
        width:calc(100% - 20px);

        margin:10px auto;

        border-radius:12px;
    }

    .menu-toggle{
        display:block;

        width:100%;

        padding:15px;

        background:#013f4e;

        color:#ffffff;

        border:none;

        font-size:28px;

        cursor:pointer;
    }

    .top-menu ul{
        display:none !important;

        flex-direction:column;

        width:100%;

        gap:0;

        padding:0;

        margin:0;
    }

    .top-menu ul.menu-abierto{
        display:flex !important;
    }

    .top-menu li{
        width:100%;

        margin:0;
        padding:0;

        border-right:none;

        border-bottom:1px solid rgba(255,255,255,.3);
    }

    .top-menu li:last-child{
        border-bottom:none;
    }

    .top-menu a{
        display:block;

        width:100%;

        padding:15px;

        text-align:center;
    }


    /* -------------------------
       LAYOUT
    ------------------------- */

    .layout{
        width:100%;

        margin:20px 0;

        padding:0 15px;

        flex-direction:column;

        gap:20px;
    }

    .sidebar{
        width:100%;

        padding:15px;
    }

    .contenido-principal{
        width:100%;
        max-width:100%;
    }


    /* -------------------------
       BENEFICIOS
    ------------------------- */

    .beneficios{
        width:100%;
    }

    .beneficios h2{
        margin-bottom:30px;
    }

    .beneficiosblanco{
        width:100%;
        border-radius:20px;
    }

    .beneficiosblanco h2{
        padding:0 15px;
    }

    .beneficiosblanco img{
        width:100%;
        height:auto;

        border-radius:15px;
    }


    /* -------------------------
       CARDS
    ------------------------- */

    .cards{
        grid-template-columns:1fr;

        gap:25px;
    }

    .card{
        width:100%;
    }

    .card img{
        width:100px;
        height:auto;
    }


    /* -------------------------
       BLOQUES
    ------------------------- */

    .bloques{
        width:100%;
        max-width:100%;

        grid-template-columns:1fr;

        gap:20px;

        padding:25px 15px;
    }

    .bloque{
        padding:25px 20px;
    }


    /* -------------------------
       CAJAS
    ------------------------- */

    .contenedor-cajas{
        width:100%;

        flex-direction:column;

        gap:20px;

        margin-top:20px;
    }

    .caja{
        width:100%;

        padding:25px 20px;
    }


    /* -------------------------
       FRASE FINAL
    ------------------------- */

    .frase-final{
        width:100%;
        max-width:100%;

        grid-template-columns:1fr;

        gap:20px;

        padding:25px 15px;
    }


    /* -------------------------
       SERVICIOS
    ------------------------- */

    .servicios{
        margin-top:30px;
    }

    .servicio-item{
        display:flex;

        flex-direction:column;

        gap:25px;

        margin-bottom:40px;

        align-items:stretch;
    }

    .servicio-texto{
        width:100%;
        order:1;
    }

    .servicio-imagen{
        width:100%;
        order:2;
    }

    .servicio-imagen img{
        width:100%;
        height:auto;

        border-radius:20px;
    }

    .badge{
        top:10px;
        right:10px;

        padding:8px 15px;

        font-size:13px;
    }

    .btn-servicio{
        display:block;

        width:100%;

        padding:14px 25px;

        text-align:center;
    }

    .reverse{
        margin-top:30px;
    }


    /* -------------------------
       BARRA INFERIOR
    ------------------------- */

    .barra-inf{
        width:calc(100% - 20px);

        margin:30px auto 0;

        padding:20px 15px;

        border-radius:15px;
    }

    .barra-inf nav{
        flex-direction:column;

        gap:5px;
    }

    .barra-inf a{
        width:100%;

        justify-content:center;

        padding:12px 10px;

        font-size:16px;
    }

    .barra-inf a:not(:last-child){
        border-right:none;
    }


    /* -------------------------
       FRASE MOTIVACIONAL
    ------------------------- */

    .frase-motivacional{
        width:calc(100% - 20px);

        margin:30px auto;

        padding:25px 20px;

        flex-direction:column;

        gap:20px;

        border-radius:18px;
    }

    .frase-col{
        width:100%;

        flex-direction:column;

        gap:10px;

        text-align:center;
    }

    .icono img{
        width:55px;
        height:55px;
    }

    .icono-hoja img{
        width:50px;
    }

    .texto{
        font-size:16px;
        line-height:1.4;
    }

    .texto strong{
        font-size:18px;
    }

    .separador{
        width:100%;
        height:1px;

        align-self:auto;
    }


    /* -------------------------
       COPYRIGHT
    ------------------------- */

    .copyright{
        padding:20px 15px;

        font-size:13px;

        line-height:1.4;
    }

}


/* =====================================================
   MÓVILES PEQUEÑOS
   Hasta 480px
===================================================== */

@media (max-width:480px){

    h1{
        font-size:27px;
    }

    h2{
        font-size:23px;
    }

    .hero-texto{
        padding:25px 15px;
    }

    .hero h1{
        font-size:27px;
    }

    .hero h2{
        font-size:21px;
    }

    .layout{
        padding:0 10px;
    }

    .bloques{
        padding:20px 10px;
    }

    .bloque,
    .caja{
        padding:20px 15px;
    }

    .frase-final{
        padding:20px 10px;
    }

    .barra-inf{
        width:calc(100% - 10px);
    }

    .frase-motivacional{
        width:calc(100% - 10px);
        padding:20px 15px;
    }

}

