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

.hero{
    min-height:100vh;
    padding-top:140px;
    padding-bottom:60px;
    position:relative;
    overflow:hidden;
    background:
    linear-gradient(
        135deg,
        #ffffff 0%,
        #fff8e1 50%,
        #fff3e0 100%
    );
}

.hero-particles{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    z-index:1;
    pointer-events:none;
}

.hero-overlay{
    position:absolute;
    top:-100px;
    right:-100px;
    width:800px;
    height:800px;
    border-radius:50%;
    background:
    radial-gradient(
        rgba(255,214,0,.15),
        transparent 70%
    );
    z-index:1;
    animation:heroOverlayFloat 8s ease-in-out infinite;
}

@keyframes heroOverlayFloat{
    0%,100%{ transform:translate(0,0) scale(1); }
    50%{ transform:translate(-30px,20px) scale(1.05); }
}

/* DECORATIVE SHAPES */
.hero-deco{
    position:absolute;
    border-radius:50%;
    z-index:1;
    pointer-events:none;
}

.hero-deco-1{
    width:120px;
    height:120px;
    background:rgba(213,0,0,.06);
    top:20%;
    left:5%;
    animation:decoFloat1 6s ease-in-out infinite;
}

.hero-deco-2{
    width:80px;
    height:80px;
    background:rgba(255,214,0,.1);
    bottom:30%;
    left:15%;
    animation:decoFloat2 7s ease-in-out infinite;
}

.hero-deco-3{
    width:60px;
    height:60px;
    background:rgba(46,125,50,.06);
    top:40%;
    right:5%;
    animation:decoFloat3 5s ease-in-out infinite;
}

@keyframes decoFloat1{
    0%,100%{ transform:translate(0,0) rotate(0deg); }
    50%{ transform:translate(15px,-20px) rotate(180deg); }
}

@keyframes decoFloat2{
    0%,100%{ transform:translate(0,0) scale(1); }
    50%{ transform:translate(-10px,15px) scale(1.2); }
}

@keyframes decoFloat3{
    0%,100%{ transform:translate(0,0); }
    33%{ transform:translate(-12px,-10px); }
    66%{ transform:translate(8px,-15px); }
}

.mobile-hint {
    display: none;
    margin-top: 20px;
    font-size: 0.9rem;
    color: var(--negro);
    font-weight: 500;
    opacity: 0.8;
}

@media(max-width: 992px) {
    .mobile-hint {
        display: block;
    }
}

.hero-container{
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:60px;
    align-items:center;
}

/* HERO CONTENT */
.hero-content{
    padding-bottom:30px;
}

.hero-badge{
    display:inline-flex;
    align-items:center;
    gap:10px;
    background:var(--verde);
    color:white;
    padding:10px 22px;
    border-radius:40px;
    font-size:13px;
    font-weight:600;
    margin-bottom:28px;
    letter-spacing:.5px;
    box-shadow:0 6px 20px rgba(46,125,50,.2);
    animation:badgePop .8s cubic-bezier(.175,.885,.32,1.275) forwards;
    opacity:0;
    transform:scale(.5);
}

@keyframes badgePop{
    to{
        opacity:1;
        transform:scale(1);
    }
}

.hero-title{
    font-size:5.2rem;
    line-height:.95;
    color:#222;
    margin-bottom:28px;
}

.title-word{
    display:inline-block;
    opacity:0;
    transform:translateY(40px) rotateX(40deg);
    animation:titleReveal .7s cubic-bezier(.175,.885,.32,1.275) forwards;
}

.title-word:nth-child(1){ animation-delay:.3s; }
.title-word:nth-child(2){ animation-delay:.42s; }
.title-word:nth-child(3){ animation-delay:.54s; }
/* the <br> is :nth-child(4) */
.title-word:nth-child(5){ animation-delay:.66s; }
.title-word:nth-child(6){ animation-delay:.78s; }

.title-accent{
    color:var(--rojo);
}

@keyframes titleReveal{
    to{
        opacity:1;
        transform:translateY(0) rotateX(0deg);
    }
}

.hero-desc{
    font-size:1.08rem;
    color:#555;
    line-height:1.85;
    max-width:540px;
    margin-bottom:35px;
}

/* ANIM UTILITIES */
.anim-slide-up{
    opacity:0;
    transform:translateY(30px);
    animation:animSlideUp .8s ease forwards;
    animation-delay:.9s;
}

.anim-delay-2{
    animation-delay:1.1s;
}

@keyframes animSlideUp{
    to{
        opacity:1;
        transform:translateY(0);
    }
}

.hero-buttons{
    display:flex;
    gap:20px;
    flex-wrap:wrap;
}

/* HERO IMAGE */
.hero-image{
    position:relative;
    animation:heroImageEntry 1s cubic-bezier(.175,.885,.32,1.275) forwards;
    animation-delay:.4s;
    opacity:0;
    transform:translateX(60px) scale(.9);
}

@keyframes heroImageEntry{
    to{
        opacity:1;
        transform:translateX(0) scale(1);
    }
}

.hero-image-wrapper{
    position:relative;
    overflow:hidden;
    border-radius:30px;
    box-shadow:0 30px 80px rgba(0,0,0,.18);
}

.hero-image img{
    width:100%;
    display:block;
    transition:transform .6s cubic-bezier(.4,0,.2,1);
}

.hero-image:hover img{
    transform:scale(1.05);
}

/* SHINE EFFECT ON HERO IMAGE */
.hero-image-shine{
    position:absolute;
    top:0;
    left:-100%;
    width:60%;
    height:100%;
    background:linear-gradient(90deg, transparent, rgba(255,255,255,.15), transparent);
    transform:skewX(-20deg);
    animation:imageShine 4s ease infinite;
    animation-delay:2s;
}

@keyframes imageShine{
    0%{ left:-100%; }
    30%{ left:150%; }
    100%{ left:150%; }
}

/* ==========================
   BENEFITS
========================== */

.benefits{
    background:#fff;
    margin-top:-40px;
    position:relative;
    z-index:5;
}

.benefits-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:25px;
}

.benefit-card{
    background:white;
    border-radius:24px;
    padding:35px 25px;
    text-align:center;
    box-shadow:0 10px 30px rgba(0,0,0,.08);
    transition:all .45s cubic-bezier(.4,0,.2,1);
    position:relative;
    overflow:hidden;
    cursor:default;
    transform-style:preserve-3d;
    perspective:600px;
}

.benefit-card:hover{
    transform:translateY(-12px);
    box-shadow:0 25px 50px rgba(0,0,0,.14);
}

/* CARD SHINE ON HOVER */
.card-shine{
    position:absolute;
    top:0;
    left:-100%;
    width:100%;
    height:100%;
    background:linear-gradient(105deg, transparent 40%, rgba(255,255,255,.5) 50%, transparent 60%);
    transition:left .7s ease;
    pointer-events:none;
    z-index:2;
}

.benefit-card:hover .card-shine{
    left:100%;
}

.card-icon-wrap{
    width:70px;
    height:70px;
    border-radius:20px;
    background:linear-gradient(135deg, rgba(213,0,0,.08), rgba(255,214,0,.08));
    display:flex;
    align-items:center;
    justify-content:center;
    margin:0 auto 18px;
    transition:all .4s cubic-bezier(.4,0,.2,1);
}

.benefit-card:hover .card-icon-wrap{
    transform:scale(1.1) rotate(5deg);
    background:linear-gradient(135deg, rgba(213,0,0,.15), rgba(255,214,0,.15));
}

.benefit-card i{
    font-size:2rem;
    color:var(--rojo);
    transition:all .4s;
}

.benefit-card:hover i{
    color:var(--amarillo);
    transform:scale(1.1);
}

.benefit-card h3{
    font-size:1.15rem;
    margin:10px 0;
    color:var(--rojo);
    transition:color .3s;
}

.benefit-card p{
    color:#666;
    font-size:.88rem;
    line-height:1.6;
}

/* CARD BOTTOM ACCENT LINE */
.benefit-card::after{
    content:'';
    position:absolute;
    bottom:0;
    left:50%;
    width:0;
    height:3px;
    background:linear-gradient(90deg, var(--rojo), var(--amarillo));
    transition:all .4s cubic-bezier(.4,0,.2,1);
    transform:translateX(-50%);
    border-radius:10px;
}

.benefit-card:hover::after{
    width:60%;
}

/* ==========================
   STATS
========================== */

.stats{
    background:var(--negro);
    padding:60px 0;
    position:relative;
    overflow:hidden;
}

.stats::before{
    content:'';
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    background:
    radial-gradient(ellipse at 20% 50%, rgba(213,0,0,.08), transparent 50%),
    radial-gradient(ellipse at 80% 50%, rgba(255,214,0,.06), transparent 50%);
    pointer-events:none;
}

.stats-grid{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:50px;
    flex-wrap:wrap;
}

.stat-item{
    text-align:center;
    flex:1;
    min-width:140px;
}

.stat-number{
    font-family:'Oswald',sans-serif;
    font-size:3.5rem;
    font-weight:700;
    color:var(--amarillo);
    line-height:1;
    margin-bottom:8px;
}

.stat-label{
    color:rgba(255,255,255,.6);
    font-size:.85rem;
    font-weight:400;
    letter-spacing:.5px;
}

.stat-divider{
    width:1px;
    height:60px;
    background:rgba(255,255,255,.1);
}

/* ==========================
   EXPERIENCE
========================== */

.experience{
    background:#f8f8f8;
    position:relative;
    overflow:hidden;
}

.experience-container{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:80px;
    align-items:center;
}

.experience-gallery{
    display:grid;
    grid-template-columns:1fr;
    gap:20px;
}

.gallery-item{
    position:relative;
    overflow:hidden;
    border-radius:25px;
    box-shadow:0 15px 40px rgba(0,0,0,.12);
}

.gallery-item img{
    width:100%;
    display:block;
    object-fit:cover;
    transition:transform .6s cubic-bezier(.4,0,.2,1);
}

.gallery-item:hover img{
    transform:scale(1.08);
}

.gallery-item-overlay{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    background:rgba(213,0,0,.0);
    display:flex;
    align-items:center;
    justify-content:center;
    transition:all .4s ease;
}

.gallery-item-overlay i{
    color:white;
    font-size:1.5rem;
    opacity:0;
    transform:scale(.5);
    transition:all .35s cubic-bezier(.175,.885,.32,1.275);
}

.gallery-item:hover .gallery-item-overlay{
    background:rgba(213,0,0,.25);
}

.gallery-item:hover .gallery-item-overlay i{
    opacity:1;
    transform:scale(1);
}

.experience-content span{
    margin-bottom:5px;
}

.experience-content h2{
    font-size:3.5rem;
    margin:18px 0;
    line-height:1.05;
    position:relative;
}

.experience-content p{
    color:#555;
    line-height:1.9;
    margin-bottom:25px;
    font-size:1.02rem;
}

/* EXPERIENCE FEATURES */
.experience-features{
    display:flex;
    flex-direction:column;
    gap:12px;
    margin-bottom:30px;
}

.exp-feature{
    display:flex;
    align-items:center;
    gap:12px;
    font-size:.95rem;
    color:#444;
}

.exp-feature i{
    color:var(--verde);
    font-size:1.1rem;
}

/* ==========================
   CTA
========================== */

.cta{
    background:
    linear-gradient(
        135deg,
        #d50000 0%,
        #b00000 50%,
        #8b0000 100%
    );
    color:white;
    text-align:center;
    position:relative;
    overflow:hidden;
}

.cta-particles{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    background:
    radial-gradient(ellipse at 30% 0%, rgba(255,214,0,.15), transparent 50%),
    radial-gradient(ellipse at 70% 100%, rgba(255,255,255,.05), transparent 50%);
    pointer-events:none;
}

.cta-content{
    position:relative;
    z-index:2;
}

.cta h2{
    font-size:3.5rem;
    margin:20px 0;
    line-height:1.1;
}

.cta p{
    max-width:600px;
    margin:auto;
    margin-bottom:35px;
    font-size:1.05rem;
    opacity:.9;
}

.cta-buttons{
    display:flex;
    gap:20px;
    justify-content:center;
    flex-wrap:wrap;
}

.cta .btn-primary{
    background:white;
    color:var(--rojo);
}

.cta .btn-primary::after{
    background:linear-gradient(90deg, transparent, rgba(213,0,0,.1), transparent);
}

.cta .btn-primary:hover{
    box-shadow:0 18px 35px rgba(0,0,0,.25);
}

/* ==========================
   ANIMACIONES
========================== */

@keyframes slideLeft{
    from{
        opacity:0;
        transform:translateX(-60px);
    }
    to{
        opacity:1;
        transform:translateX(0);
    }
}

@keyframes slideRight{
    from{
        opacity:0;
        transform:translateX(60px);
    }
    to{
        opacity:1;
        transform:translateX(0);
    }
}

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

.scroll-hidden{
    opacity:0;
    transform:translateY(60px);
    transition:all .9s cubic-bezier(.4,0,.2,1);
}

.scroll-hidden.scroll-show{
    opacity:1;
    transform:translateY(0);
}

/* Staggered delays for cards */
.benefit-card.scroll-hidden:nth-child(1){ transition-delay:.05s; }
.benefit-card.scroll-hidden:nth-child(2){ transition-delay:.15s; }
.benefit-card.scroll-hidden:nth-child(3){ transition-delay:.25s; }
.benefit-card.scroll-hidden:nth-child(4){ transition-delay:.35s; }

/* Slide from left */
.scroll-left{
    opacity:0;
    transform:translateX(-80px);
    transition:all .9s cubic-bezier(.4,0,.2,1);
}

.scroll-left.scroll-show{
    opacity:1;
    transform:translateX(0);
}

/* Slide from right */
.scroll-right{
    opacity:0;
    transform:translateX(80px);
    transition:all .9s cubic-bezier(.4,0,.2,1);
}

.scroll-right.scroll-show{
    opacity:1;
    transform:translateX(0);
}

/* Scale up */
.scroll-scale{
    opacity:0;
    transform:scale(.8);
    transition:all .9s cubic-bezier(.4,0,.2,1);
}

.scroll-scale.scroll-show{
    opacity:1;
    transform:scale(1);
}

/* ==========================
   RIPPLE
========================== */

.ripple{
    position:absolute;
    border-radius:50%;
    transform:scale(0);
    animation:ripple .6s linear;
    background:rgba(255,255,255,.4);
}

@keyframes ripple{
    to{
        transform:scale(4);
        opacity:0;
    }
}

/* ==========================
   RESPONSIVE
========================== */

@media(max-width:1200px){

    .hero-title{
        font-size:4.2rem;
    }

    .hero-container{
        gap:45px;
    }

    .experience-container{
        gap:50px;
    }

}

@media(max-width:992px){

    .hero-container{
        grid-template-columns:1fr;
        text-align:center;
        gap:40px;
    }

    .hero-desc{
        margin:auto auto 35px;
    }

    .hero-buttons{
        justify-content:center;
    }

    .hero-image{
        max-width:500px;
        margin:0 auto;
    }

    .experience-container{
        grid-template-columns:1fr;
        text-align:center;
        gap:45px;
    }

    .experience-features{
        align-items:center;
    }

    .benefits-grid{
        grid-template-columns:1fr 1fr;
    }

    .experience-content h2{
        font-size:3rem;
    }

    .cta h2{
        font-size:3rem;
    }

    .stats-grid{
        gap:30px;
    }

    .stat-divider{
        display:none;
    }

    .stat-number{
        font-size:2.8rem;
    }

    .hero-deco{
        display:none;
    }

}

@media(max-width:768px){

    .hero{
        padding-top:110px;
        min-height:auto;
        padding-bottom:50px;
    }

    .hero-title{
        font-size:3rem;
    }

    .hero-overlay{
        width:400px;
        height:400px;
    }

    .cta h2{
        font-size:2.5rem;
    }

    .experience-content h2{
        font-size:2.5rem;
    }

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

    .gallery-item img{
        max-height:280px;
    }

    .stats-grid{
        gap:20px;
    }

    .stat-item{
        min-width:120px;
    }

    .stat-number{
        font-size:2.2rem;
    }

    .stat-label{
        font-size:.78rem;
    }

}

@media(max-width:576px){

    .hero{
        padding-top:100px;
        padding-bottom:35px;
    }

    .hero-title{
        font-size:2.5rem;
        line-height:1;
        margin-bottom:20px;
    }

    .hero-desc{
        font-size:.92rem;
        margin-bottom:25px;
    }

    .hero-badge{
        font-size:11px;
        padding:8px 16px;
        margin-bottom:18px;
    }

    .benefits{
        margin-top:-20px;
    }

    .benefits-grid{
        grid-template-columns:1fr;
        gap:16px;
    }

    .benefit-card{
        padding:28px 20px;
        border-radius:20px;
    }

    .card-icon-wrap{
        width:60px;
        height:60px;
        border-radius:16px;
    }

    .benefit-card i{
        font-size:1.6rem;
    }

    .benefit-card h3{
        font-size:1.05rem;
    }

    .hero-buttons{
        flex-direction:column;
    }

    .cta-buttons{
        flex-direction:column;
        align-items:center;
    }

    .experience-content h2{
        font-size:2rem;
    }

    .experience-content p{
        font-size:.92rem;
    }

    .gallery-item img{
        border-radius:18px;
        max-height:220px;
    }

    .gallery-item{
        border-radius:18px;
    }

    .cta h2{
        font-size:2rem;
    }

    .cta p{
        font-size:.92rem;
    }

    .stats{
        padding:45px 0;
    }

    .stats-grid{
        gap:15px;
    }

    .stat-item{
        min-width:100px;
    }

    .stat-number{
        font-size:2rem;
    }

}

@media(max-width:380px){

    .hero-title{
        font-size:2.1rem;
    }

    .cta h2{
        font-size:1.7rem;
    }

    .experience-content h2{
        font-size:1.7rem;
    }

}