:root{
    --navy:#042D62;
    --sage:#7A8F6B;
    --white:#FFFFFF;
    --soft:#F3F6F1;
    color-scheme:light;
    box-sizing:border-box;
    padding-top:env(safe-area-inset-top,0px);
    padding-bottom:env(safe-area-inset-bottom,0px)
}

*,*::before,*::after{box-sizing:inherit}

html{
    scroll-behavior:smooth;
    scroll-padding-top:84px
}

body{
    margin:0;
    background:var(--white);
    color:var(--navy);
    font-family:Nunito,system-ui,sans-serif;
    line-height:1.65
}

h1,h2,h3,.nav a,.btn{
    font-family:Quicksand,system-ui,sans-serif
}

img{
    max-width:100%
}

header{
    position:fixed;
    top:env(safe-area-inset-top,0px);
    left:0;
    right:0;
    z-index:20;
    background:var(--navy);
    box-shadow:0 2px 14px rgba(4,45,98,.25)
}

.bar{
    max-width:1120px;
    margin:auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:14px 22px
}

.bar img{
    height:30px;
    display:block
}

.nav{
    display:flex;
    gap:26px
}

.nav a{
    color:var(--white);
    text-decoration:none;
    font-weight:600;
    font-size:.95rem;
    padding:4px 0;
    border-bottom:2px solid transparent;
    transition:.2s
}

.nav a:hover{
    border-color:var(--sage)
}

#tg{
    display:none
}

.burger{
    display:none;
    cursor:pointer;
    color:#fff;
    font-size:1.7rem;
    line-height:1
}

section{
    padding:92px 22px
}

.wrap{
    max-width:1120px;
    margin:auto
}

.tag{
    display:inline-block;
    color:var(--sage);
    font-family:Quicksand,sans-serif;
    font-weight:700;
    letter-spacing:.14em;
    text-transform:uppercase;
    font-size:.8rem;
    margin-bottom:8px
}
h2{
    font-size:clamp(1.8rem,4vw,2.5rem);
    margin:0 0 18px;
    line-height:1.2
}
.center{
    text-align:center
}
.btn{
    display:inline-block;
    background:var(--sage);
    color:#fff;
    text-decoration:none;
    font-weight:700;
    padding:14px 30px;
    border-radius:999px;
    border:0;
    font-size:1rem;
    cursor:pointer;
    transition:.2s
}
.btn:hover{
    background:var(--white);
    transform:translateY(-2px);
    color:var(--sage);
    border: var(--sage) 1px solid;
}
.btn.alt{
    background:var(--white);
    color:var(--navy)
}
.btn.alt:hover
{
    background:var(--sage);color:#fff
}

/* hero */
#inicio{
    background:var(--navy);
    color:var(--white);
    padding-top:150px;
    overflow:hidden
}

.hero{
    display:grid;
    grid-template-columns:1.05fr 1fr;
    gap:48px;
    align-items:center
}

#inicio h1{
    font-size:clamp(2.1rem,5vw,3.4rem);
    line-height:1.15;margin:0 0 20px
}

#inicio h1 span{
    color:var(--sage)
}

#inicio p{
    font-size:1.1rem;
    opacity:.92;
    max-width:520px;
    margin:0 0 28px
}

/* quienes */
#quienes{
    background:var(--white)
}
.about{
    display:grid;
    grid-template-columns:1fr 1.2fr;
    gap:56px;align-items:center
}

.pill{
    background:var(--soft)
    ;border-left:5px solid var(--sage);
    border-radius:16px;
    padding:30px;font-family:Quicksand,sans-serif;
    font-size:1.35rem;
    font-weight:600;
    line-height:1.5
}

.about p{
    margin:0 0 14px
}
/* competencias */
#competencias{
    background:var(--soft)
}

.grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px;
    margin-top:40px
}

.card{
    perspective:1000px;
    height:250px;outline:none
}
.in{
    position:relative;
    width:100%;
    height:100%;
    transition:transform .6s;
    transform-style:preserve-3d
}
.card:hover .in,.card:focus .in{
    transform:rotateY(180deg)
}
.face{
    position:absolute;
    inset:0;
    backface-visibility:hidden;
    -webkit-backface-visibility:hidden;
    border-radius:20px;
    padding:26px;display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    text-align:center
}
.front{
    background:var(--white);
    box-shadow:0 8px 24px rgba(4,45,98,.1);
    border-bottom:5px solid var(--sage)
}
.front svg{
    width:54px;
    height:54px;
    stroke:var(--navy);
    fill:none;
    stroke-width:1.7;
    stroke-linecap:round;
    stroke-linejoin:round;
    margin-bottom:14px
}
.front h3{
    margin:0;
    font-size:1.25rem
}
.back{
    background:var(--navy);
    color:#fff;
    transform:rotateY(180deg)
}
.back h3{
    margin:0 0 8px;
    color:var(--sage);
    font-size:1.1rem
}
.back p{
    margin:0;
    font-size:.95rem
}
.hint{
    font-size:.88rem;
    opacity:.7
}
/* comunidad */
#comunidad{
    background:var(--navy);
    color:#fff
}
.comm{
    display:grid;
    grid-template-columns:1.2fr 1fr;
    gap:48px;align-items:center
}
#comunidad h2 span{
    color:var(--sage)
}
#comunidad p{
    font-size:1.1rem;
    opacity:.93
}
.phone{
    margin:auto;
    width:230px;
    height:400px;
    border-radius:34px;
    border:5px solid #fff;
    background:linear-gradient(160deg,#0a3f84,#031f45);
    padding:22px 16px;
    display:flex;
    flex-direction:column;
    gap:12px
}
.phone i{
    display:block;
    height:46px;
    border-radius:12px;
    background:rgba(255,255,255,.14)
}
.phone i:nth-child(2){
    background:var(--sage);
    width:78%
}
.phone i:nth-child(4){
    width:60%
}
.phone b{
    margin-top:auto;
    text-align:center;
    font-family:Quicksand,sans-serif;
    background:#fff;
    color:var(--navy);
    border-radius:999px;
    padding:10px
}
/* experiencias */
.testi{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px;
    margin-top:40px
}
.t{
    background:var(--soft);
    border-radius:20px;
    padding:30px;
    position:relative;
    display:flex;
    flex-direction:column;
    transition:.25s
}
.t:hover{
    transform:translateY(-6px);
    box-shadow:0 14px 30px rgba(4,45,98,.14)
}
.t::before{
    content:"“";
    font-family:Georgia,serif;
    font-size:4.6rem;
    line-height:.6;
    color:var(--sage);
    display:block;
    height:30px
}
.t p{
    margin:0 0 20px;
    font-size:.96rem;
    flex:1
}
.t strong{
    display:block;
    font-family:Quicksand,sans-serif
}
.t span{
    font-size:.85rem;
    color:var(--sage);
    font-weight:600
}
/* contacto */
#contacto{
    background:var(--soft)
}
.contact{
    display:grid;
    grid-template-columns:1fr 1.2fr;
    gap:48px;
    align-items:start
}
.info p{
    margin:6px 0
}
.info a{
    color:var(--navy);
    font-weight:700
}
form{
    background:#fff;
    border-radius:22px;
    padding:32px;
    box-shadow:0 12px 34px rgba(4,45,98,.1);
    display:grid;gap:16px
}
.row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px
}
label{
    font-family:Quicksand,sans-serif;
    font-weight:700;
    font-size:.9rem;
    display:grid;
    gap:6px
}
input,select,textarea{
    font:inherit;
    padding:12px 14px;
    border:2px solid #d7ded3;
    border-radius:12px;
    color:var(--navy);
    background:#fff;
    width:100%
}
input:focus,select:focus,textarea:focus{
    outline:none;
    border-color:var(--sage)
}
textarea{
    min-height:110px;
    resize:vertical
}
#ok{
    display:none;
    color:var(--sage);
    font-weight:700;margin:0
}
/* footer */
footer{
    background:var(--navy);
    color:#fff;
    padding:48px 22px 30px;
    text-align:center
}
footer img{
    height:34px
}
.soc{
    display:flex;
    justify-content:center;
    gap:14px;
    margin:24px 0
}
.soc a{
    width:46px;
    height:46px;
    border-radius:50%;
    border:2px solid rgba(255,255,255,.35);
    display:grid;
    place-items:center;
    transition:.2s
}
.soc a:hover{
    background:var(--sage);
    border-color:var(--sage);
    transform:translateY(-3px)
}
.soc svg{
    width:21px;
    height:21px;
    fill:#fff
}
footer small{
    opacity:.65
}
.hero-logo{
    display:flex;
    justify-content:center;
    align-items:center;
}
.hero-logo img{
    width:auto;
    height:auto;
    max-height:420px;   
    max-width:100%;
    display:block;
}

@media(max-width:900px){
    .hero-logo img{max-height:260px}
}
@media(max-width:900px){
.hero,.about,.comm,.contact{grid-template-columns:1fr}
.grid,.testi{grid-template-columns:1fr 1fr}
.burger{display:block}
.nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--navy);flex-direction:column;padding:10px 22px 22px;gap:16px}
#tg:checked~.nav{display:flex}
}
@media(max-width:600px){.grid,.testi,.row{grid-template-columns:1fr}section{padding:70px 20px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}


.whatsapp-footer {
        position: fixed;
        bottom: -20px; /*  margen inferior para estar pegado a la parte inferior */
        right: 20px;
        z-index: 9999;
    }

    .whatsapp-button {
        display: inline-block;
        width: 180px; /* Aumenta el tamaño en todos los dispositivos */
        height: 180px; /* Aumenta el tamaño en todos los dispositivos */
        background-color: transparent; /* Fondo transparente */
        text-align: center;
        padding: 0;
        overflow: hidden; /* Asegura que la imagen no se desborde */
        border-radius: 10px; /* Bordes redondeados */
    }

    .whatsapp-button img {
        width: 100%;
        height: 100%;
        object-fit: contain; /* Mantiene la proporción de la imagen */
    }

    /* Estilos para dispositivos con pantallas más pequeñas */
    @media (max-width: 768px) {
        .whatsapp-footer {
            bottom: -20px; /* margen inferior para estar pegado a la parte inferior */
            right: 10px; /* Ajusta la posición */
        }

        .whatsapp-button {
            width: 180px; /* Mantén el tamaño más grande en pantallas medianas */
            height: 180px;
        }
    }

    /* Estilos para dispositivos con pantallas muy pequeñas */
    @media (max-width: 480px) {
        .whatsapp-footer {
            bottom: -20px; /* margen inferior para estar pegado a la parte inferior */
            right: 10px; /* Ajusta la posición */
        }

        .whatsapp-button {
            width: 180px; /* Mantén el tamaño más grande en móviles */
            height: 180px;
        }
    }

/* Competencias */

/* servicios */
#servicios{
    background:var(--white)
}
.srv-intro{
    max-width:820px;
    margin:0 auto 36px;
    font-size:1.05rem
}
.tabs{
    display:flex;
    justify-content:center;
    gap:12px;
    flex-wrap:wrap;
    margin-bottom:40px
}
.tab{
    font-family:Quicksand,sans-serif;
    font-weight:700;
    font-size:1.05rem;
    color:var(--navy);
    background:var(--soft);
    border:2px solid transparent;
    border-radius:16px;
    padding:14px 28px;
    cursor:pointer;
    transition:.2s;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:2px
}
.tab small{
    font-size:.72rem;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--sage)
}
.tab:hover{
    border-color:var(--sage)
}
.tab.active{
    background:var(--navy);
    color:#fff
}
.tab.active small{
    color:#b5c4a8
}
.panel{
    display:none
}
.panel.active{
    display:block;
    animation:fadeUp .4s ease
}
@keyframes fadeUp{
    from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}
}
.sub{
    font-size:1.5rem;
    margin:0 0 12px;
    position:relative;
    padding-bottom:10px
}
.sub::after{
    content:"";
    position:absolute;
    left:0;
    bottom:0;
    width:46px;
    height:4px;
    border-radius:4px;
    background:var(--sage)
}
.lead{
    margin:0 0 40px;
    max-width:860px;
    font-size:1.05rem
}

/* pasos */
.steps{list-style:none;margin:20px 0 44px;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:18px;position:relative;text-align:center}
.steps::before{content:"";position:absolute;top:19px;left:10%;right:10%;height:2px;background:var(--sage);opacity:.6}
.steps li{position:relative;display:flex;flex-direction:column;align-items:center}
.num{width:40px;height:40px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-family:Quicksand,sans-serif;font-weight:700;position:relative;z-index:1;margin-bottom:12px;border:4px solid #fff;box-sizing:content-box}
.opt .num{background:#fff;color:var(--navy);border:2px dashed var(--navy)}
.steps h4{margin:0 0 6px;font-family:Quicksand,sans-serif}
.steps p{margin:0;font-size:.9rem;opacity:.85}
.badge{font-style:normal;font-size:.7rem;font-weight:700;background:var(--soft);color:var(--sage);border-radius:999px;padding:3px 10px;margin-bottom:8px}

/* bonus */
.bonus{display:flex;gap:24px;align-items:center;background:linear-gradient(135deg,var(--navy),#0a3f84);color:#fff;border-radius:22px;padding:28px 32px}
.gift{width:72px;height:72px;border-radius:18px;background:var(--sage);display:grid;place-items:center;font-size:2rem;flex-shrink:0}
.bonus small{text-transform:uppercase;letter-spacing:.14em;font-size:.7rem;opacity:.7}
.bonus h3{margin:2px 0 12px;font-size:1.7rem}
.chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.chips li{background:#fff;color:var(--navy);font-weight:700;font-size:.85rem;border-radius:999px;padding:6px 14px}

/* formacion 1:1 */
.uno-top{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:center;margin-bottom:36px}
.uno-top .lead{margin:0}
.uno-card{background:linear-gradient(135deg,var(--navy),#0a3f84);color:#fff;border-radius:22px;padding:34px 28px;text-align:center;box-shadow:0 18px 40px rgba(4,45,98,.25)}
.duo{display:flex;justify-content:center;align-items:center;gap:14px;margin-bottom:22px}
.duo i{width:42px;height:42px;border-radius:50%;background:#fff;display:block}
.duo i.a{background:var(--sage)}
.duo b{color:var(--sage);font-size:1.6rem}
.uno-card small{display:block;color:var(--sage);font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-size:.72rem;margin-bottom:6px}
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-bottom:36px}
.box{background:#fff;border:1.5px solid #e1e7dd;border-radius:20px;padding:26px}
.box.yes{background:var(--soft);border-color:var(--sage)}
.box.no{background:#f8f9fb}
.box h4{margin:0 0 14px;font-family:Quicksand,sans-serif;font-size:1.15rem}
.box ul{list-style:none;margin:0;padding:0;display:grid;gap:12px;font-size:.92rem}
.box li{position:relative;
    padding-left:26px}
.box li::before{
    position:absolute;left:0;top:1px;font-weight:700}
.dots li::before{
    content:"●";
    color:var(--sage);
    font-size:.7rem;
    top:5px
}
.ok li::before{
    content:"✓";
    color:var(--navy)
}
.bad li::before{
    content:"✕";
    color:#5b6573
}

/* que no es */
.noes{
    background:linear-gradient(135deg,var(--navy),#0a3f84);
    color:#fff;
    border-radius:24px;
    padding:36px
}
.noes h3{
    margin:0 0 6px;
    font-size:1.6rem
}
.noes>p{
    margin:0 0 22px;
    opacity:.92
}
.duo-cards{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
    margin-bottom:24px
}
.duo-cards div{
    background:#fff;
    color:var(--navy);
    border-radius:14px;
    padding:18px 20px
}
.duo-cards strong,.duo-cards span{
    display:block
}
.duo-cards span{
    font-size:.88rem;
    opacity:.8;
    margin-top:4px
}
.noes .crit{
    margin:0 0 14px;
    font-size:.95rem;
    border-top:1px solid rgba(255,255,255,.2);
    padding-top:20px
}
.rem{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:14px;
    margin-bottom:14px
}
.rem div{
    background:rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.15);
    border-radius:14px;
    padding:14px;
    display:flex;
    gap:10px;
    align-items:center;
    font-size:.88rem
}
.rem span{
    flex-shrink:0;
    width:26px;
    height:26px;
    border-radius:50%;
    background:var(--sage);
    display:grid;
    place-items:center;
    font-weight:700;
    font-size:.8rem
}
.alerta{
    border:1.5px solid rgba(255,255,255,.55);
    border-radius:14px;
    padding:14px 18px;
    font-weight:700;
    font-size:.9rem
}

@media(max-width:900px){
  .uno-top,.duo-cards,.rem{grid-template-columns:1fr}
  .trio{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr;text-align:left}
  .steps::before{display:none}
  .steps li{flex-direction:row;flex-wrap:wrap;align-items:center;gap:0 14px}
  .steps h4,.steps p{flex-basis:calc(100% - 70px);margin-left:54px}
  .num{position:absolute;left:0;top:0;margin:0}
  .steps li{padding-left:0;min-height:60px}
  .bonus{flex-direction:column;text-align:center}
}

#estado{margin:0;font-weight:700;display:none}
#estado.ok{display:block;color:var(--sage)}
#estado.error{display:block;color:#b3261e}
.btn:disabled{opacity:.6;cursor:wait;transform:none}