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

.about-hero{

    padding:50px 0 70px;

    background:#111;

}

.about-hero-container{

    display:grid;

    grid-template-columns:46% 54%;

    align-items:start;

    gap:45px;

    min-height:610px;

}

.about-hero-content{

    display:flex;

    flex-direction:column;

    justify-content:center;

    padding-top:70px;

}

.about-subtitle{

    display:inline-block;

    color:var(--color-primary);

    font-size:15px;

    font-weight:700;

    letter-spacing:3px;

    text-transform:uppercase;

    margin-bottom:20px;

}

.about-hero-content h1{

    font-size:60px;

    line-height:1.08;

}

.about-hero-content p{

    font-size:17px;

    line-height:1.8;

    color:#bdbdbd;

    max-width:600px;

    margin-bottom:40px;

}

.about-hero-content .btn-primary{

    width:fit-content;

    padding:18px 38px;

}

.about-hero-image{

    height:540px;

    margin-top:95px;

    border-radius:28px;

    overflow:hidden;

    box-shadow:
        0 30px 80px rgba(0,0,0,.45);
        

}

.about-hero-image img{

    width:100%;

    height:100%;

    object-fit:cover;

    transition:.8s;

}

.about-hero-image:hover img{

    transform:scale(1.02);

}

/*======================================
        NUESTRA HISTORIA
======================================*/

.about-history{

    padding:60px 0 70px;

    background:#111;

    border-top:1px solid rgba(255,255,255,.08);

}

.history-layout{

    display:grid;

    grid-template-columns:700px 1fr;

    gap:75px;

    align-items:start;

}

/*==============================
        COLUMNA IZQUIERDA
==============================*/

.history-left{

    position:relative;

    display:flex;

    flex-direction:column;

    gap:18px;

}

.history-left::before{

    content:"";

    position:absolute;

    left:92px;

    top:22px;

    bottom:22px;

    width:2px;

    background:linear-gradient(

        to bottom,

        rgba(218,170,59,.10),

        rgba(218,170,59,.75),

        rgba(218,170,59,.10)

    );

    z-index:1;

}

.history-step{

    display:grid;

    grid-template-columns:110px 1fr;

    align-items:center;

    gap:25px;

    margin-bottom:0;

}

/*==============================
        TIMELINE
==============================*/

.timeline-item{

    position:relative;

    text-align:right;

    padding-right:28px;

}

.timeline-item::after{

    content:"";

    position:absolute;

    right:-8px;

    top:22px;

    width:16px;

    height:16px;

    border-radius:50%;

    background:var(--color-primary);

    border:4px solid #111;

    box-shadow:
        0 0 0 2px rgba(218,170,59,.25);

    z-index:2;

    transition:.35s;

}

.timeline-item:hover::after{

    transform:scale(1.25);

    box-shadow:

        0 0 18px rgba(218,170,59,.45);

}

.timeline-item span{

    display:block;

    color:var(--color-primary);

    font-size:15px;

    font-weight:700;

    margin-bottom:20px;

    transition:.35s;

}

.timeline-item:hover span{

    transform:translateX(-5px);

    color:#f4c84f;

}

.timeline-item p{

    color:#bdbdbd;

    font-size:13px;

    line-height:1.5;

}

/*==============================
            IMÁGENES
==============================*/

.history-step img{

    width:100%;

    height:80px;

    object-fit:cover;

    display:block;

    border-radius:8px;

    border:1px solid rgba(218,170,59,.20);

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

    transition:
        transform .35s ease,
        border-color .35s ease,
        box-shadow .35s ease;

    cursor:pointer;

}

.history-step img:hover{

    transform:translateY(-6px) scale(1.01);

    border-color:rgba(218,170,59,.95);

    box-shadow:
        0 0 22px rgba(218,170,59,.18),
        0 28px 55px rgba(0,0,0,.45);

}

/*==============================
        CONTENIDO DERECHO
==============================*/

.history-content{

    max-width:520px;

}

.history-subtitle{

    display:flex;

    align-items:center;

    gap:18px;

    color:var(--color-primary);

    font-size:15px;

    font-weight:700;

    letter-spacing:3px;

    text-transform:uppercase;

    margin-bottom:22px;

}

.history-subtitle::after{

    content:"";

    width:110px;

    height:1px;

    background:rgba(218,170,59,.45);

}

.history-content h2{

    font-size:48px;

    line-height:1.05;

    margin-bottom:28px;

    color:#fff;

}

.history-content h2 span{

    color:var(--color-primary);

}

/*======================================
      RESPONSIVE - NOSOTROS
======================================*/

/* Notebook pequeño y tablet horizontal */
@media (max-width:1100px){

    .about-hero-container{
        grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
        gap:36px;
        min-height:0;
    }

    .about-hero-content{
        min-width:0;
        padding-top:48px;
    }

    .about-hero-content h1{
        font-size:50px;
    }

    .about-hero-image{
        height:460px;
        margin-top:70px;
    }

    .history-layout{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:48px;
    }

    .history-left,
    .history-content{
        min-width:0;
    }

    .history-step{
        grid-template-columns:100px minmax(0,1fr);
        gap:20px;
    }

    .history-left::before{
        left:82px;
    }

    .history-content h2{
        font-size:42px;
    }

    .history-content > p{
        font-size:16px;
        line-height:1.8;
    }
}

/* Tablet */
@media (max-width:992px){

    .about-hero{
        padding:132px 0 72px;
    }

    .about-hero-container{
        grid-template-columns:1fr;
        gap:46px;
    }

    .about-hero-content{
        max-width:720px;
        padding-top:0;
    }

    .about-hero-content h1{
        max-width:680px;
        font-size:46px;
    }

    .about-hero-content p{
        max-width:680px;
        margin-bottom:32px;
    }

    .about-hero-image{
        width:100%;
        height:auto;
        aspect-ratio:16 / 9;
        margin-top:0;
        border-radius:22px;
    }

    .about-history{
        padding:72px 0 80px;
    }

    .history-layout{
        grid-template-columns:1fr;
        gap:52px;
    }

    .history-content{
        order:-1;
        max-width:720px;
    }

    .history-left{
        width:100%;
        max-width:760px;
    }

    .history-step{
        grid-template-columns:110px minmax(0,1fr);
        gap:24px;
    }

    .history-left::before{
        left:92px;
    }

    .history-step img{
        height:130px;
    }

    /* Las animaciones laterales no deben ampliar el ancho de la pantalla. */
    .reveal-left,
    .reveal-right{
        transform:translateY(36px);
    }

    .reveal-left.active,
    .reveal-right.active{
        transform:translateY(0);
    }
}

/* Teléfono móvil */
@media (max-width:768px){

    .about-hero{
        padding:118px 0 58px;
    }

    .about-hero-container{
        gap:34px;
    }

    .about-subtitle,
    .history-subtitle{
        font-size:13px;
        letter-spacing:2px;
    }

    .about-hero-content h1{
        font-size:36px;
        line-height:1.12;
    }

    .about-hero-content p{
        font-size:16px;
        line-height:1.7;
        margin-bottom:28px;
    }

    .about-hero-content .btn-primary{
        padding:15px 26px;
    }

    .about-hero-image{
        aspect-ratio:4 / 3;
        border-radius:18px;
    }

    .about-history{
        padding:58px 0 68px;
    }

    .history-layout{
        gap:42px;
    }

    .history-subtitle{
        gap:12px;
        margin-bottom:18px;
    }

    .history-subtitle::after{
        width:70px;
    }

    .history-content h2{
        font-size:36px;
        margin-bottom:22px;
    }

    .history-content > p{
        font-size:15px;
        line-height:1.75;
        margin-bottom:34px;
    }

    .history-card{
        padding:18px 0;
    }

    .history-card h4{
        font-size:21px;
        margin-bottom:8px;
    }

    .history-card p{
        font-size:15px;
        line-height:1.7;
    }

    .history-left{
        gap:16px;
    }

    .history-left::before{
        left:82px;
        top:20px;
        bottom:20px;
    }

    .history-step{
        grid-template-columns:82px minmax(0,1fr);
        gap:16px;
    }

    .timeline-item{
        padding-right:18px;
    }

    .timeline-item::after{
        right:-8px;
        top:18px;
    }

    .timeline-item span{
        font-size:14px;
        margin-bottom:12px;
    }

    .timeline-item p{
        font-size:12px;
        line-height:1.4;
    }

    .history-step img{
        height:150px;
        border-radius:10px;
    }
}

/* Teléfono pequeño */
@media (max-width:480px){

    .about-hero{
        padding:110px 0 50px;
    }

    .about-subtitle{
        margin-bottom:16px;
    }

    .about-hero-content h1{
        font-size:31px;
    }

    .about-hero-content p{
        font-size:15px;
    }

    .about-hero-content .btn-primary{
        width:100%;
        justify-content:center;
        text-align:center;
    }

    .about-hero-image{
        aspect-ratio:1 / 1;
        border-radius:16px;
    }

    .about-history{
        padding:50px 0 58px;
    }

    .history-subtitle::after{
        width:42px;
    }

    .history-content h2{
        font-size:31px;
    }

    .history-card h4{
        font-size:20px;
    }

    .history-left::before{
        left:68px;
    }

    .history-step{
        grid-template-columns:68px minmax(0,1fr);
        gap:13px;
    }

    .timeline-item{
        padding-right:15px;
    }

    .timeline-item::after{
        right:-7px;
        width:14px;
        height:14px;
    }

    .timeline-item span{
        font-size:13px;
    }

    .timeline-item p{
        font-size:11px;
    }

    .history-step img{
        height:118px;
    }
}

@media (hover:none){

    .about-hero-image:hover img,
    .history-step img:hover,
    .history-card:hover,
    .timeline-item:hover span{
        transform:none;
    }
}

.history-content > p{

    color:#bdbdbd;

    font-size:18px;

    line-height:1.9;

    margin-bottom:45px;

}

.history-card{

    padding:14px 0;

    border-top:1px solid rgba(255,255,255,.08);

    transition:.35s;

    cursor:pointer;

}

.history-card:hover{

    transform:translateX(8px);

}

.history-card h4{

    font-size:24px;

    color:#fff;

    margin-bottom:10px;

    transition:.35s;

}

.history-card:hover h4{

    color:var(--color-primary);

}

.history-card p{

    color:#9d9d9d;

    line-height:1.8;

}

.history-card::after{

    content:"";

    display:block;

    width:0;

    height:2px;

    background:var(--color-primary);

    margin-top:12px;

    transition:.35s;

}

.history-card:hover::after{

    width:70px;

}

/*======================================
      SCROLL ANIMATION
======================================*/

.reveal{

    opacity:0;

    transform:translateY(50px);

    transition:
        opacity .8s ease,
        transform .8s ease;

}

.reveal.active{

    opacity:1;

    transform:translateY(0);

}

.reveal-left{

    opacity:0;

    transform:translateX(-60px);

    transition:
        opacity .8s ease,
        transform .8s ease;

}

.reveal-left.active{

    opacity:1;

    transform:translateX(0);

}

.reveal-right{

    opacity:0;

    transform:translateX(60px);

    transition:
        opacity .8s ease,
        transform .8s ease;

}

.reveal-right.active{

    opacity:1;

    transform:translateX(0);

}



.history-content h2 span{

    color:var(--color-primary);

}

/* Ajustes finales de cascada para reglas declaradas al cierre del archivo. */
@media (max-width:1100px){

    .history-content > p{
        font-size:16px;
        line-height:1.8;
    }
}

@media (max-width:992px){

    .reveal-left,
    .reveal-right{
        transform:translateY(36px);
    }

    .reveal-left.active,
    .reveal-right.active{
        transform:translateY(0);
    }
}

@media (max-width:768px){

    .history-content > p{
        font-size:15px;
        line-height:1.75;
        margin-bottom:34px;
    }

    .history-card{
        padding:18px 0;
    }

    .history-card h4{
        font-size:21px;
        margin-bottom:8px;
    }

    .history-card p{
        font-size:15px;
        line-height:1.7;
    }
}

@media (max-width:480px){

    .history-card h4{
        font-size:20px;
    }
}

@media (hover:none){

    .history-card:hover{
        transform:none;
    }
}

