*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    font-family:'Montserrat',sans-serif;
    color:#393a3a;
    background:#fff;
    overflow-x:hidden;
}

img{
    max-width:100%;
    display:block;
}

.container{
    width:90%;
    max-width:1200px;
    margin:auto;
}

.narrow{
    max-width:820px;
}

.section{
    padding:120px 0;
}

.section-gray{
    background:#fafafa;
}

/* ======================================
   LOADER
====================================== */

.loader{
    position:fixed;
    inset:0;
    background:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    z-index:99999;
    transition:1s;
}

.loader img{
    width:80px;
    animation:pulse 1.5s infinite;
}

.loader.hide{
    opacity:0;
    visibility:hidden;
}

@keyframes pulse{

    0%{
        transform:scale(1);
    }

    50%{
        transform:scale(1.08);
    }

    100%{
        transform:scale(1);
    }

}

/* ======================================
   HEADER
====================================== */

.header{
    position:fixed;
    top:0;
    left:0;
    width:100%;
    background:rgba(255,255,255,.95);
    backdrop-filter:blur(10px);
    border-bottom:1px solid rgba(0,0,0,.05);
    z-index:999;

    transition:
    transform .4s ease,
    opacity .4s ease;
}

.header-hidden{
    transform:translateY(-100%);
    opacity:0;
}

.nav-container{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:18px 0;
}

.logo{
    height:42px;
}

.nav{
    display:flex;
    gap:28px;
}

.nav a{
    text-decoration:none;
    color:#393a3a;
    font-size:13px;
    letter-spacing:1px;
    font-weight:600;
}

/* ======================================
   HERO
====================================== */

.hero{
    position:relative;
    min-height:100svh;
    min-height:100vh;

    display:flex;
    align-items:center;
    justify-content:center;

    overflow:hidden;
}

.hero-image{
    position:absolute;
    inset:0;

    width:100%;
    height:100%;

    object-fit:cover;
}

.hero-overlay{
    position:absolute;
    inset:0;
    background:rgba(0,0,0,.52);
}

.hero-content{
    position:relative;
    z-index:2;

    text-align:center;
    color:white;

    width:100%;

    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
}

.hero-isotipo{
    width:90px;
    margin-bottom:28px;
}

.hero h1{
    font-family:'Bebas Neue',sans-serif;
    font-size:92px;
    line-height:.92;
    letter-spacing:2px;
    font-weight:400;
}

.hero p{
    margin-top:24px;
    font-size:22px;
}

.hero-buttons{
    margin-top:45px;

    display:flex;
    justify-content:center;
    gap:18px;
    flex-wrap:wrap;
}

/* ======================================
   BOTONES
====================================== */

.btn{
    padding:16px 28px;
    border-radius:999px;
    text-decoration:none;
    font-weight:700;
    transition:.3s;
}

.btn:hover{
    transform:translateY(-3px);
}

.btn-primary{
    background:#842f83;
    color:#fff;
}

.btn-secondary{
    border:1px solid rgba(255,255,255,.4);
    color:#fff;
}

.btn-dark{
    border:1px solid #393a3a;
    color:#393a3a;
}

/* ======================================
   TITULOS
====================================== */

.section-title{
    text-align:center;
    margin-bottom:60px;
}

.section-title span{
    color:#842f83;
    font-size:12px;
    letter-spacing:4px;
    font-weight:700;
}

.section-title h2{
    font-family:'Bebas Neue',sans-serif;
    font-size:54px;
    line-height:1;
    margin-top:20px;
    font-weight:400;
}

.text-block p{
    margin-bottom:24px;
    font-size:19px;
    line-height:1.9;
}

/* ======================================
   QUOTES
====================================== */

.quote-section{
    min-height:72vh;
    padding:120px 0;

    display:flex;
    align-items:center;
    justify-content:center;

    text-align:center;
}

.quote-section .container{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
}

.quote-section h2{
    font-family:'Bebas Neue',sans-serif;
    font-size:58px;
    line-height:1;
    font-weight:400;
}

.quote-soft{
    background:#faf7fa;
    border-top:1px solid rgba(0,0,0,.04);
    border-bottom:1px solid rgba(0,0,0,.04);
}

.quote-soft h2{
    color:#393a3a;
}

.quote-section.dark{
    background:#393a3a;
    color:white;
}

.quote-extra{
    margin-top:24px;
    opacity:.8;
    font-size:18px;
    line-height:1.8;
}

/* ======================================
   EXPERIENCE
====================================== */

.experience-section{
    background:#393a3a;
    color:white;
    padding:140px 0;
}

.experience-header{
    text-align:center;
    margin-bottom:80px;
}

.experience-header span{
    letter-spacing:4px;
    font-size:12px;
    color:rgba(255,255,255,.7);
}

.experience-header h2{
    font-family:'Bebas Neue',sans-serif;
    font-size:62px;
    line-height:1;
    margin-top:20px;
    font-weight:400;
}

.experience-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px;
}

.experience-card{
    background:rgba(255,255,255,.05);
    border:1px solid rgba(255,255,255,.08);

    padding:34px;
    border-radius:28px;
}

.experience-card span{
    color:#842f83;
    font-family:'Bebas Neue',sans-serif;
    font-size:34px;
}

.experience-card h3{
    margin:14px 0;
    font-size:20px;
}

.experience-card p{
    color:rgba(255,255,255,.75);
    line-height:1.7;
    font-size:15px;
}

.light-card{
    background:white !important;
    color:#393a3a !important;
}

.light-card p{
    color:#666 !important;
}

/* ======================================
   IMAGE SECTION
====================================== */

.image-section{
    display:grid;
    grid-template-columns:1fr 1fr;
    align-items:center;
}

.image-section.reverse{
    direction:rtl;
}

.image-section.reverse .content-side{
    direction:ltr;
}

.image-side{
    overflow:hidden;
}

.image-side img{
    width:100%;
    height:100%;
    object-fit:cover;

    transition:1.2s;
}

.image-side:hover img{
    transform:scale(1.04);
}

.content-side{
    padding:80px;
}

.content-side span{
    color:#842f83;
    font-size:12px;
    letter-spacing:4px;
    font-weight:700;
}

.content-side h2{
    font-family:'Bebas Neue',sans-serif;
    font-size:50px;
    line-height:1;
    margin:22px 0;
    font-weight:400;
}

.content-side p{
    margin-bottom:20px;
    font-size:18px;
    line-height:1.8;
}

/* ======================================
   GALERÍAS
====================================== */

.gallery-section{
    padding:120px 0;
    background:#fff;
}

/* TITULO DEL CARRUSEL */

.gallery-header{
    text-align:center;
    margin-bottom:50px;
}

.gallery-header span{
    color:#842f83;
    font-size:12px;
    letter-spacing:4px;
    font-weight:700;
}

.gallery-header h2{
 font-family:'Bebas Neue',sans-serif;
    font-size:54px;
    line-height:.95;
    margin-top:18px;
    font-weight:400;

    max-width:700px;

    margin-left:auto;
    margin-right:auto;
}

.gallery-wrapper{
    position:relative;
    width:100%;
    overflow:hidden;
}

.gallery-track{
    display:flex;
    align-items:center;
    gap:22px;

    overflow-x:auto;

    scroll-snap-type:x mandatory;

    scrollbar-width:none;

    padding:0 6vw;
}

.gallery-track::-webkit-scrollbar{
    display:none;
}

.gallery-item{
    flex:0 0 auto;

    width:78vw;
    max-width:1100px;

    border-radius:30px;
    overflow:hidden;

    background:#f5f5f5;

    scroll-snap-align:center;

    display:flex;
    align-items:center;
    justify-content:center;
}

.gallery-item img{
    width:100%;
    height:auto;

    max-height:82vh;

    object-fit:contain;

    display:block;
}

/* ======================================
   FLECHAS GALERÍA
====================================== */

.gallery-arrow{
    position:absolute;
    top:50%;

    transform:translateY(-50%);

    width:64px;
    height:64px;

    border:none;
    border-radius:50%;

    background:rgba(255,255,255,.92);

    color:#393a3a;

    font-size:42px;
    font-weight:300;

    display:flex;
    align-items:center;
    justify-content:center;

    cursor:pointer;

    z-index:20;

    box-shadow:
    0 10px 30px rgba(0,0,0,.12);

    transition:.3s;
}

.gallery-arrow:hover{
    transform:
    translateY(-50%)
    scale(1.08);
}

.gallery-prev{
    left:26px;
}

.gallery-next{
    right:26px;
}

/* ======================================
   FAQ
====================================== */

.faq-list{
    display:flex;
    flex-direction:column;
    gap:18px;
}

.faq-item{
    background:#f5f5f5;
    padding:34px;
    border-radius:24px;
}

.faq-item h3{
    margin-bottom:12px;
    font-size:21px;
}

.faq-item p{
    line-height:1.8;
}

/* ======================================
   CONTACTO
====================================== */

.contact-section{
    padding:140px 0;
    text-align:center;
}

.contact-logo{
    width:100px;
    margin:auto auto 26px;
}

.contact-content h2{
    font-family:'Bebas Neue',sans-serif;
    font-size:58px;
    line-height:1;
    font-weight:400;
}

.contact-text{
    max-width:700px;
    margin:28px auto 0;

    font-size:18px;
    line-height:1.9;
}

.contact-buttons{
    margin-top:42px;

    display:flex;
    justify-content:center;
    gap:18px;
    flex-wrap:wrap;
}

/* ======================================
   FOOTER
====================================== */

.footer{
    padding:28px 0;
    border-top:1px solid rgba(0,0,0,.08);
    text-align:center;
}

.footer-content{
    display:flex;
    flex-direction:column;
    gap:8px;
}

.footer-brand{
    font-family:'Bebas Neue',sans-serif;
    font-size:18px !important;
    letter-spacing:2px;
}

.footer-sub{
    font-size:13px !important;
    letter-spacing:1px;
    text-transform:uppercase;
}

.footer-name{
    font-size:14px !important;
}

.footer p{
    opacity:.7;
}

/* ======================================
   WHATSAPP FLOAT
====================================== */

.whatsapp-float{
    position:fixed;

    bottom:24px;
    right:24px;

    background:rgba(132,47,131,.92);
    color:white;

    text-decoration:none;

    padding:17px 24px;

    border-radius:999px;

    font-weight:700;

    z-index:999;

    box-shadow:
    0 10px 30px rgba(0,0,0,.18);

    backdrop-filter:blur(10px);

    transition:
    opacity .35s ease,
    transform .35s ease;
}

.whatsapp-hidden{
    opacity:0;
    pointer-events:none;
    transform:translateY(20px);
}

/* ======================================
   REVEAL
====================================== */

.reveal{
    opacity:0;
    transform:translateY(40px);
    transition:1s;
}

.reveal.active{
    opacity:1;
    transform:translateY(0);
}

/* ======================================
   MOBILE
====================================== */

@media(max-width:980px){

    .nav{
        display:none;
    }

    .hero{
        min-height:100svh;
        min-height:100vh;
    }

    .hero h1{
        font-size:64px;
    }

    .hero p{
        font-size:19px;
    }

    .section-title h2,
    .content-side h2,
    .experience-header h2,
    .quote-section h2,
    .contact-content h2,
    .gallery-header h2{

    font-size:36px;
    line-height:1;

    max-width:320px;

    margin-left:auto;
    margin-right:auto;
    }

    .quote-soft h2{
    font-size:32px;
    line-height:.95;

    max-width:300px;

    margin-left:auto;
    margin-right:auto;
    }
.quote-section h2{
    text-wrap:balance;
}
    .experience-grid,
    .image-section{

        grid-template-columns:1fr !important;
    }

    .content-side{
        padding:50px 30px;
    }

    .section{
        padding:90px 0;
    }

    .quote-section{
        min-height:60vh;
        padding:90px 0;
    }

    .gallery-section{
        padding:90px 0;
    }

    .gallery-track{
        gap:14px;

        padding:
        0 18px
        24px 18px;
    }

    .gallery-item{
        width:88vw;
        min-width:88vw;

        border-radius:24px;
    }

    .gallery-item img{
        max-height:68vh;
    }

    .gallery-arrow{
        width:52px;
        height:52px;

        font-size:34px;
    }

    .gallery-prev{
        left:12px;
    }

    .gallery-next{
        right:12px;
    }

    .contact-buttons,
    .hero-buttons{
        flex-direction:column;
        align-items:center;
    }

    .btn{
        width:100%;
        max-width:320px;
        text-align:center;
    }

    .whatsapp-float{
        right:16px;
        bottom:16px;

        padding:15px 20px;

        font-size:14px;
    }

.content-side{
    padding:50px 30px;
    text-align:center;
}

.content-side span{
    display:block;
    text-align:center;
}

.content-side h2{
    text-align:center;
}

.content-side p{
    text-align:left;
}

.image-section{
    padding-bottom:10px;
}

.gallery-section{
    padding-top:10px;
}

}
/* ======================================
   CENTRO DE DECISIÓN
====================================== */

.nav a.nav-decision-link{
    color:#842f83;

    padding:9px 14px;

    border:1px solid rgba(132,47,131,.22);
    border-radius:999px;

    margin:-9px 0;

    transition:
    background .25s ease,
    color .25s ease,
    border-color .25s ease,
    transform .25s ease;
}

.nav a.nav-decision-link:hover{
    color:#fff;

    background:#842f83;
    border-color:#842f83;

    transform:translateY(-1px);
}

.btn-decision-hero{
    background:rgba(255,255,255,.10);

    box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.08);
}

.btn-decision-hero:hover{
    background:rgba(255,255,255,.18);
}

.decision-bridge{
    padding:84px 0;

    background:#fff;
}

.decision-bridge-card{
    position:relative;

    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:end;
    gap:42px;

    overflow:hidden;

    padding:66px 70px;

    border:1px solid rgba(255,255,255,.14);
    border-radius:34px;

    background:
    radial-gradient(
        circle at 92% 4%,
        rgba(193,101,202,.34),
        transparent 34%
    ),
    radial-gradient(
        circle at 4% 100%,
        rgba(132,47,131,.38),
        transparent 38%
    ),
    linear-gradient(
        135deg,
        #261027 0%,
        #4f1d56 55%,
        #842f83 100%
    );

    color:#fff;

    box-shadow:
    0 28px 70px rgba(69,24,72,.22);
}

.decision-bridge-card::after{
    content:"";

    position:absolute;
    top:-170px;
    right:-110px;

    width:380px;
    height:380px;

    border:1px solid rgba(255,255,255,.12);
    border-radius:50%;

    pointer-events:none;
}

.decision-bridge-copy{
    position:relative;
    z-index:1;
}

.decision-bridge-copy span{
    display:block;

    margin-bottom:20px;

    color:rgba(255,255,255,.72);

    font-size:12px;
    font-weight:700;
    letter-spacing:3px;
}

.decision-bridge-copy h2{
    max-width:650px;

    font-family:'Bebas Neue',sans-serif;
    font-size:62px;
    line-height:.95;
    font-weight:400;
}

.decision-bridge-copy p{
    max-width:590px;

    margin-top:24px;

    color:rgba(255,255,255,.84);

    font-size:18px;
    line-height:1.75;
}

.decision-bridge-button{
    position:relative;
    z-index:1;

    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:16px;

    min-width:250px;

    padding:18px 24px;

    border-radius:999px;

    background:#fff;
    color:#842f83;

    text-decoration:none;

    font-size:14px;
    font-weight:700;

    box-shadow:
    0 14px 30px rgba(0,0,0,.20);

    transition:
    transform .25s ease,
    box-shadow .25s ease,
    background .25s ease;
}

.decision-bridge-button strong{
    font-size:23px;
    line-height:1;
    font-weight:400;
}

.decision-bridge-button:hover{
    transform:translateY(-4px);

    background:#faf2fb;

    box-shadow:
    0 20px 38px rgba(0,0,0,.26);
}

@media(max-width:980px){

    .decision-bridge{
        padding:64px 0;
    }

    .decision-bridge-card{
        grid-template-columns:1fr;
        align-items:start;

        gap:32px;

        padding:48px 34px;

        border-radius:28px;
    }

    .decision-bridge-copy h2{
        max-width:330px;

        font-size:44px;
    }

    .decision-bridge-copy p{
        max-width:440px;

        font-size:16px;
    }

    .decision-bridge-button{
        width:100%;
        min-width:0;
    }

}

/* ======================================
   VIDEO BACKSTAGE LANDING
====================================== */

.landing-backstage-section{
    padding:120px 0;

    background:
    linear-gradient(
        180deg,
        #ffffff 0%,
        #faf7fa 100%
    );
}

.landing-backstage-header{
    max-width:760px;

    margin:0 auto 70px;

    text-align:center;
}

.landing-backstage-header span{
    color:#842f83;

    font-size:12px;
    letter-spacing:4px;
    font-weight:700;
}

.landing-backstage-header h2{
    margin-top:20px;

    font-family:'Bebas Neue',sans-serif;
    font-size:58px;
    line-height:.95;
    font-weight:400;
}

.landing-backstage-header p{
    max-width:680px;

    margin:24px auto 0;

    color:#666;

    font-size:18px;
    line-height:1.8;
}

.landing-backstage-layout{
    display:grid;
    grid-template-columns:minmax(280px,420px) minmax(0,1fr);
    align-items:center;
    gap:70px;

    max-width:1040px;

    margin:0 auto;
}

.landing-backstage-video-card{
    position:relative;

    padding:12px;

    border:1px solid rgba(132,47,131,.18);
    border-radius:34px;

    background:
    linear-gradient(
        145deg,
        rgba(255,255,255,.98),
        rgba(253,247,253,.96)
    );

    box-shadow:
    0 28px 70px rgba(45,38,48,.16),
    0 10px 24px rgba(132,47,131,.10);
}

.landing-backstage-video-frame{
    position:relative;

    isolation:isolate;

    overflow:hidden;

    aspect-ratio:9 / 16;

    border:1px solid rgba(255,255,255,.52);
    border-radius:26px;

    background:#000;

    box-shadow:
    inset 0 0 0 1px rgba(132,47,131,.10);
}

.landing-backstage-video-frame::after{
    content:"";

    position:absolute;
    inset:0;
    z-index:1;

    background:
    linear-gradient(
        180deg,
        rgba(8,16,29,.10) 0%,
        rgba(8,16,29,.02) 48%,
        rgba(8,16,29,.28) 100%
    );

    pointer-events:none;

    opacity:1;

    transition:opacity .26s ease;
}

.landing-backstage-video-frame.is-playing::after{
    opacity:0;
}

.landing-backstage-video{
    position:relative;
    z-index:0;

    width:100%;
    height:100%;

    display:block;

    object-fit:cover;

    cursor:pointer;
}

.landing-backstage-play-button{
    position:absolute;
    top:50%;
    left:50%;
    z-index:2;

    width:76px;
    height:76px;

    display:flex;
    align-items:center;
    justify-content:center;

    transform:translate(-50%,-50%);

    border:1px solid rgba(255,255,255,.76);
    border-radius:50%;

    background:rgba(255,255,255,.92);

    cursor:pointer;

    box-shadow:
    0 16px 38px rgba(0,0,0,.24),
    0 8px 18px rgba(132,47,131,.18);

    transition:
    transform .18s ease,
    opacity .22s ease,
    box-shadow .18s ease;
}

.landing-backstage-play-button:hover{
    transform:translate(-50%,-50%) scale(1.07);

    box-shadow:
    0 20px 44px rgba(0,0,0,.28),
    0 10px 24px rgba(132,47,131,.24);
}

.landing-backstage-play-button:focus-visible{
    outline:3px solid rgba(132,47,131,.36);
    outline-offset:4px;
}

.landing-backstage-play-icon{
    width:0;
    height:0;

    margin-left:5px;

    border-top:11px solid transparent;
    border-bottom:11px solid transparent;
    border-left:17px solid #842f83;
}

.landing-backstage-video-frame.is-playing .landing-backstage-play-button{
    opacity:0;

    pointer-events:none;

    transform:translate(-50%,-50%) scale(.88);
}

.landing-backstage-copy{
    max-width:520px;
}

.landing-backstage-copy span{
    display:block;

    color:#842f83;

    font-size:12px;
    letter-spacing:4px;
    font-weight:700;
}

.landing-backstage-copy h3{
    margin:20px 0 24px;

    font-family:'Bebas Neue',sans-serif;
    font-size:54px;
    line-height:.95;
    font-weight:400;

    color:#393a3a;
}

.landing-backstage-copy p{
    margin-bottom:20px;

    color:#5f6060;

    font-size:18px;
    line-height:1.8;
}

/* ======================================
   VIDEO BACKSTAGE LANDING · MOBILE
====================================== */

@media(max-width:980px){

    .landing-backstage-section{
        padding:90px 0;
    }

    .landing-backstage-header{
        margin-bottom:48px;
    }

    .landing-backstage-header h2{
        max-width:340px;

        margin-left:auto;
        margin-right:auto;

        font-size:40px;
    }

    .landing-backstage-header p{
        font-size:16px;
    }

    .landing-backstage-layout{
        grid-template-columns:1fr;

        gap:42px;

        max-width:460px;
    }

    .landing-backstage-video-card{
        max-width:360px;

        margin:0 auto;

        padding:10px;

        border-radius:28px;
    }

    .landing-backstage-video-frame{
        border-radius:22px;
    }

    .landing-backstage-play-button{
        width:68px;
        height:68px;
    }

    .landing-backstage-play-icon{
        margin-left:4px;

        border-top-width:10px;
        border-bottom-width:10px;
        border-left-width:15px;
    }

    .landing-backstage-copy{
        max-width:360px;

        margin:0 auto;

        text-align:center;
    }

    .landing-backstage-copy h3{
        max-width:320px;

        margin-left:auto;
        margin-right:auto;

        font-size:38px;
    }

    .landing-backstage-copy p{
        text-align:left;

        font-size:16px;
    }

}

/* ======================================
   CONTROL MANUAL · CENTRO DE DECISIÓN
====================================== */

/*
Para ocultar todos los accesos desde la landing
hacia el Centro de Decisión, descomentar este bloque.
*/

/* 
.decision-center-toggle{
    display:none !important;
}
 */