@charset "UTF-8";
/* CSS Document */

/* =================================
   VARIABLES
================================= */

:root{

    --red:#e30613;
    --red-dark:#b9000b;

    --black:#080808;
    --dark:#111;

    --white:#ffffff;
    --gray:#f2f2ef;

    --yellow:#eaff00;

}


/* Adaptación para celulares */
@media (max-width: 768px) {
    .video-container {
        height: 300px;
    }

    .video-title {
        left: 20px;
        right: 20px;
        bottom: 20px;
    }

    .video-title h2 {
        font-size: 26px;
    }

    .video-title p {
        font-size: 15px;
    }
}




/* =================================
   AGREGADO
================================= */
.logo img {
    width: 180px;
    height: auto;
}

/* BOTELLAS
------------------------------*/
.footer {
  position: relative;
}

.footer-bottles {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 210px;
  opacity: 0.9; /* opcional */
  pointer-events: none; /* evita que bloquee clicks */
  transform: translateY(20px);
  transition: transform 1s ease-out, opacity 1s ease-out;
}

.footer-bottles.enter {
  transform: translateY(0);
  opacity: 1;
}

.decor-serpiente{
	position: absolute;
    width: 700px;
    height: auto;
	right: 0px;
}


.impact {
    position: relative;
}

.flor-portfolio {
    position: absolute;
    width: 350px;
    height: auto;
    right: 0;
    top: 100px;
    bottom: auto;
    z-index: 10;
    transform: none;
}











/* =================================
   RESET
================================= */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{

    font-family:'Inter',sans-serif;

    background:#fff;

    color:#111;

    overflow-x:hidden;

}

img,
video{

    width:100%;
    display:block;

}

a{

    text-decoration:none;
    color:inherit;

}

button{

    font-family:inherit;

}


/* =================================
   GLOBAL
================================= */

.container{

    width:min(1200px,90%);

    margin:auto;

}

h1,
h2,
h3,
.logo{

    font-family:'Anton',sans-serif;

}

h2{

    font-size:clamp(45px,6vw,78px);

    line-height:.92;

}

.eyebrow{

    font-size:10px;

    font-weight:900;

    letter-spacing:3px;

    margin-bottom:20px;

}

.dark{

    color:#111;

}


.btn{

    display:inline-flex;

    align-items:center;

    gap:15px;

    padding:14px 22px;

    font-size:10px;

    font-weight:900;

    transition:.3s;

}

.btn-red{

    background:var(--red);

    color:white;

}

.btn-red:hover{

    background:var(--red-dark);

    transform:translateY(-3px);

}


/* =================================
   HEADER
================================= */

.header{

    position:absolute;

    width:100%;

    top:0;

    left:0;

    z-index:50;

    display:flex;

    align-items:center;

    justify-content:space-between;

    padding:22px 5%;

    color:white;

}

.logo{

    font-size:30px;

    line-height:.8;

    font-style:italic;

}

.logo span{

    display:block;

    font-family:Inter;

    font-size:7px;

    letter-spacing:4px;

    margin-top:7px;

}


.nav{

    display:flex;

    gap:30px;

    font-size:11px;

    font-weight:700;

}

.nav a{

    transition:.3s;

}

.nav a:hover{

    color:var(--red);

}

.menu-btn{

    display:none;

    border:0;

    background:none;

    color:white;

    font-size:25px;

}


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

.hero{

    height:100vh;

    min-height:700px;

    position:relative;

    display:flex;

    align-items:center;

    color:white;

    overflow:hidden;

}

.hero-video{

    position:absolute;

    inset:0;

    width:100%;

    height:100%;

    object-fit:cover;

}

.hero-overlay{

    position:absolute;

    inset:0;

    background:

        linear-gradient(
            90deg,
            rgba(0,0,0,.88),
            rgba(0,0,0,.35),
            rgba(0,0,0,.1)
        );

}

.hero-content{

    position:relative;

    z-index:2;

    width:min(650px,80%);

    margin-left:7%;

    animation:heroIn 1.2s ease forwards;

}

.hero h1{

    font-size:clamp(65px,9vw,120px);

    line-height:.85;

    margin-bottom:30px;

}

.hero h1 span{

    display:block;

    color:var(--red);

}

.hero-description{

    max-width:480px;

    line-height:1.6;

    margin-bottom:30px;

}

.scroll{

    position:absolute;

    bottom:30px;

    left:6%;

    display:flex;

    gap:10px;

    align-items:center;

    font-size:9px;

    letter-spacing:3px;

}

.scroll span{

    width:12px;

    height:25px;

    border:1px solid white;

    border-radius:10px;

    position:relative;

}

.scroll span:after{

    content:"";

    width:2px;

    height:6px;

    background:white;

    position:absolute;

    top:5px;

    left:4px;

    animation:scrollMove 1.5s infinite;

}


/* =================================
   IMPACT
================================= */

.impact{

    background:var(--gray);

    padding:110px 0;

}

.impact-container{

    display:grid;

    grid-template-columns:1fr 1.7fr;

    gap:70px;

    align-items:center;

}

.impact-text{

    max-width:500px;

}

.impact-text>p{

    line-height:1.6;

    margin:25px 0;

}

.impact-items{

    display:grid;

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

}

.impact-item{

    text-align:center;

    padding:30px;

    border-left:1px solid #ccc;

}

.animated-icon{

    width:100px;

    height:100px;

    margin:auto;

    display:flex;

    align-items:center;

    justify-content:center;

    position:relative;

}

.icon-dot{

    width:12px;

    height:12px;

    background:#111;

    border-radius:50%;

    position:absolute;

    transition:.8s cubic-bezier(.2,.9,.2,1);

}

.animated-icon svg{

    width:75px;

    height:75px;

    fill:none;

    stroke:#111;

    stroke-width:3;

    stroke-linecap:round;

    stroke-linejoin:round;

    opacity:0;

    transform:scale(.2) rotate(-20deg);

    transition:.8s cubic-bezier(.2,.9,.2,1);

}

.impact-item.visible .icon-dot{

    transform:scale(0);

}

.impact-item.visible svg{

    opacity:1;

    transform:scale(1) rotate(0);

}

.animated-icon:after{

    content:"";

    position:absolute;

    width:95px;

    height:14px;

    background:var(--red);

    z-index:-1;

    transform:rotate(-8deg) scaleX(0);

    transition:.7s .2s;

}

.impact-item.visible .animated-icon:after{

    transform:rotate(-8deg) scaleX(1);

}

.impact-item h3{

    font-family:Inter;

    font-size:11px;

    font-weight:900;

    margin:15px 0;

}

.impact-item p{

    font-size:10px;

    color:#666;

    line-height:1.5;

}


/* =================================
   VIDEO
================================= */

.video-section{

    background:#000;

}

.video-container{

    height:650px;

    position:relative;

    overflow:hidden;

}

.video-container video{

    height:100%;

    object-fit:cover;

}

.video-container:after{

    content:"";

    position:absolute;

    inset:0;

    background:linear-gradient(
        transparent 50%,
        rgba(0,0,0,.8)
    );

    pointer-events:none;

}

.video-title{

    position:absolute;

    bottom:35px;

    left:5%;

    color:white;

    font-family:Anton;

    font-size:50px;

    z-index:3;

}

.video-title span{

    color:var(--red);

}


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

.services{

    background:#111;

    color:white;

    padding:110px 0;

}

.section-header{

    display:grid;

    grid-template-columns:1fr .7fr;

    gap:80px;

    align-items:end;

}

.section-header h2 span{

    color:var(--red);

}

.section-description{

    color:#aaa;

    line-height:1.6;

}

.services-grid{

    display:grid;

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

    gap:15px;

    margin-top:60px;

}

.service-card{

    position:relative;

    overflow:hidden;

}

.service-image{

    height:290px;

    overflow:hidden;

}

.service-image img{

    height:100%;

    object-fit:cover;

    transition:.8s cubic-bezier(.2,.8,.2,1);

}

.service-card:hover .service-image img{

    transform:scale(1.12) rotate(2deg);

}

.service-card:before{

    content:"";

    position:absolute;

    inset:0;

    border:2px solid var(--red);

    transform:scale(.92);

    opacity:0;

    z-index:2;

    transition:.4s;

    pointer-events:none;

}

.service-card:hover:before{

    transform:scale(1);

    opacity:1;

}

.service-number{

    display:inline-block;

    background:var(--red);

    color:white;

    padding:8px 12px;

    font-size:10px;

    font-weight:bold;

    margin-top:-5px;

    position:relative;

    z-index:3;

}

.service-card h3{

    font-family:Inter;

    font-size:13px;

    margin:20px 0 10px;

}

.service-card p{

    color:#aaa;

    font-size:10px;

    line-height:1.5;

}

.service-card>a{

    font-size:25px;

    display:block;

    margin-top:15px;

    transition:.3s;

}

.service-card:hover>a{

    color:var(--red);

    transform:translateX(8px);

}


/* =================================
   PROCESO
================================= */

.process{

    background:white;

    padding:110px 0;

}

.process-container{

    display:grid;

    grid-template-columns:.7fr 1.5fr;

    gap:80px;

    align-items:center;

}

.process-intro p{

    color:#666;

    line-height:1.6;

    margin-top:20px;

}

.steps{

    display:grid;

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

    gap:25px;

    align-items:center;

}

.step-number{

    width:55px;

    height:55px;

    background:var(--red);

    color:white;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    font-weight:900;

    font-size:12px;

    animation:numberJump 1.3s infinite;

}

.step:nth-child(3) .step-number{

    animation-delay:.25s;

}

.step:nth-child(5) .step-number{

    animation-delay:.5s;

}

.step-icon{

    font-size:45px;

    margin:15px 0;

}

.step h3{

    font-family:Inter;

    font-size:12px;

    margin-bottom:10px;

}

.step p{

    font-size:10px;

    color:#666;

    line-height:1.5;

}

.step-arrow{

    font-size:30px;

    color:var(--red);

}


/* =================================
   PROYECTOS
================================= */

.projects{

    background:#0b0b0b;

    color:white;

    padding:110px 0;

    overflow:hidden;

}

.projects-header{

    display:flex;

    align-items:end;

    justify-content:space-between;

}

.gallery-buttons{

    display:flex;

    gap:10px;

}

.gallery-buttons button{

    width:50px;

    height:50px;

    border:1px solid #555;

    background:none;

    color:white;

    cursor:pointer;

    transition:.3s;

}

.gallery-buttons button:hover{

    background:var(--red);

    border-color:var(--red);

}

.gallery{

    overflow:hidden;

    margin-top:50px;

}

.gallery-track{

    display:flex;

    gap:18px;

    transition:transform .7s cubic-bezier(.2,.8,.2,1);

}

.gallery-item{

    flex:0 0 calc((100% - 54px)/4);

    height:400px;

    position:relative;

    overflow:hidden;

}

.gallery-item img{

    height:100%;

    object-fit:cover;

    transition:.7s;

}

.gallery-item:hover img{

    transform:scale(1.08);

}

.gallery-item:after{

    content:"";

    position:absolute;

    inset:0;

    background:linear-gradient(
        transparent 45%,
        rgba(0,0,0,.8)
    );

}

.gallery-item span{

    position:absolute;

    bottom:20px;

    left:20px;

    z-index:2;

    font-size:10px;

    font-weight:bold;

}


/* =================================
   COBERTURA
================================= */

.coverage{

    background:var(--gray);

    padding:110px 0;

}

.coverage-container{

    display:grid;

    grid-template-columns:.8fr 1.2fr .6fr;

    gap:50px;

    align-items:center;

}

.coverage-text p{

    color:#666;

    line-height:1.6;

    margin-top:20px;

}

.map-area{

    text-align:center;

}

.mexico-map{

    position:relative;

    width:100%;

    max-width:500px;

    margin:auto;

}

.mexico-map img{

    filter:grayscale(1);

    opacity:.8;

}

.map-point{

    width:14px;

    height:14px;

    background:var(--red);

    border-radius:50%;

    position:absolute;

    z-index:3;

    cursor:pointer;

    box-shadow:0 0 0 5px rgba(227,6,19,.15);

    transition:.3s;

}

.map-point.active{

    transform:scale(1.8);

    box-shadow:
        0 0 0 8px rgba(227,6,19,.2),
        0 0 25px rgba(227,6,19,.7);

}


/* POSICIONES */

.cdmx{

    left:49%;
    top:58%;

}

.edomex{

    left:46%;
    top:55%;

}

.guadalajara{

    left:29%;
    top:58%;

}

.monterrey{

    left:72%;
    top:28%;

}

.puebla{

    left:53%;
    top:63%;

}

.queretaro{

    left:48%;
    top:48%;

}

.selected-city{

    color:var(--red);

    font-size:11px;

    font-weight:900;

    margin-top:15px;

}

.cities{

    display:flex;

    flex-direction:column;

    gap:4px;

}

.city{

    background:none;

    border:0;

    padding:8px 0;

    text-align:left;

    cursor:pointer;

    display:flex;

    gap:10px;

    align-items:center;

    font-size:11px;

    transition:.3s;

}

.city i{

    width:7px;

    height:7px;

    border-radius:50%;

    background:var(--red);

}

.city:hover,
.city.active{

    color:var(--red);

    font-weight:900;

    transform:translateX(5px);

}


/* =================================
   MURAL BANNER
================================= */

.mural-banner{

    height:560px;

    position:relative;

    color:white;

    overflow:hidden;

}

.mural-banner>img{

    position:absolute;

    inset:0;

    width:100%;

    height:100%;

    object-fit:cover;

}

.mural-overlay{

    position:absolute;

    inset:0;

    background:linear-gradient(
        90deg,
        rgba(0,0,0,.8),
        transparent
    );

}

.mural-content{

    height:100%;

    display:flex;

    align-items:center;

    position:relative;

}

.mural-content p:not(.eyebrow){

    max-width:400px;

    line-height:1.6;

    margin:20px 0;

}


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

.cta{

    background:#090909;

    color:white;

    padding:80px 0;

}

.cta-container{

    display:grid;

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

    gap:50px;

    align-items:center;

}

.cta h2{

    color:var(--red);

}

.cta p{

    color:#aaa;

    line-height:1.6;

}


/* =================================
   CONTACTO
================================= */

.contact{

    padding:110px 0;

    background:white;

}

.contact-container{

    display:grid;

    grid-template-columns:1fr .8fr;

    gap:80px;

}

.contact-info>p{

    max-width:500px;

    color:#666;

    line-height:1.6;

}

.contact-data{

    margin-top:50px;

    display:flex;

    flex-direction:column;

    gap:25px;

}

.contact-data small{

    display:block;

    font-size:9px;

    color:#777;

    letter-spacing:2px;

    margin-bottom:5px;

}

.contact-data a{

    font-weight:700;

}

.muralist{

    background:var(--red);

    color:white;

    padding:55px;

    position:relative;

    overflow:hidden;

}

.muralist:after{

    content:"";

    position:absolute;

    width:250px;

    height:250px;

    border:2px solid rgba(255,255,255,.2);

    border-radius:50%;

    right:-100px;

    top:-80px;

}

.muralist h2{

    font-size:65px;

    margin:10px 0 20px;

}

.muralist p:not(.eyebrow){

    line-height:1.6;

    max-width:400px;

    margin-bottom:30px;

}

.btn-white{

    background:white;

    color:#111;

}


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

footer{

    background:#080808;

    color:white;

    padding:60px 0 25px;

}

.footer-top{

    display:flex;

    justify-content:space-between;

    align-items:center;

}

.footer-links{

    display:flex;

    gap:25px;

    font-size:10px;

    color:#aaa;

}

.footer-links a:hover{

    color:white;

}

.footer-bottom{

    border-top:1px solid #333;

    margin-top:40px;

    padding-top:20px;

    display:flex;

    justify-content:space-between;

    font-size:9px;

    color:#666;

}


/* =================================
   WHATSAPP
================================= */

.whatsapp{

    position:fixed;

    bottom:25px;

    right:25px;

    width:55px;

    height:55px;

    background:#25d366;

    color:white;

    border-radius:50%;

    display:flex;

    justify-content:center;

    align-items:center;

    z-index:100;

    font-size:25px;

    box-shadow:0 5px 25px rgba(0,0,0,.3);

}


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

@keyframes heroIn{

    from{

        opacity:0;

        transform:translateY(50px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}


@keyframes scrollMove{

    0%{

        opacity:0;

        transform:translateY(0);

    }

    40%{

        opacity:1;

    }

    100%{

        opacity:0;

        transform:translateY(10px);

    }

}


@keyframes numberJump{

    0%,100%{

        transform:translateY(0);

    }

    35%{

        transform:translateY(-12px) rotate(-5deg);

    }

    55%{

        transform:translateY(0);

    }

    70%{

        transform:translateY(-5px);

    }

}


/* =================================
   SCROLL REVEAL
================================= */

.reveal{

    opacity:0;

    transform:translateY(40px);

    transition:

        opacity .8s ease,

        transform .8s cubic-bezier(.2,.8,.2,1);

}

.reveal.visible{

    opacity:1;

    transform:translateY(0);

}


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

@media(max-width:1000px){

    .nav{

        display:none;

    }

    .menu-btn{

        display:block;

    }

    .impact-container,
    .process-container,
    .coverage-container,
    .contact-container{

        grid-template-columns:1fr;

    }

    .impact-items{

        margin-top:50px;

    }

    .services-grid{

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

    }

    .steps{

        grid-template-columns:1fr;

    }

    .step-arrow{

        display:none;

    }

    .gallery-item{

        flex:0 0 calc((100% - 18px)/2);

    }

    .cta-container{

        grid-template-columns:1fr;

    }

}


@media(max-width:600px){

    .header{

        padding:20px;

    }

    .header .btn{

        display:none;

    }

    .hero-content{

        margin-left:20px;

        width:90%;

    }

    .hero h1{

        font-size:65px;

    }

    .impact-items{

        grid-template-columns:1fr;

    }

    .impact-item{

        border-left:0;

        border-top:1px solid #ccc;

    }

    .services-grid{

        grid-template-columns:1fr;

    }

    .section-header{

        grid-template-columns:1fr;

    }

    .video-container{

        height:500px;

    }

    .video-title{

        font-size:32px;

    }

    .gallery-item{

        flex:0 0 85%;

        height:430px;

    }

    .mural-banner{

        height:600px;

    }

    .muralist{

        padding:35px;

    }

    .muralist h2{

        font-size:52px;

    }

    .footer-top,
    .footer-bottom{

        flex-direction:column;

        align-items:flex-start;

        gap:20px;

    }

}