/* ==========================================================
   DJ FÉLIX MONZÓN
   PREMIUM OPEN FORMAT LANDING
   STYLE.CSS
========================================================== */


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

:root {

    --black: #050505;
    --black-soft: #0d0d0d;
    --dark: #151515;

    --white: #ffffff;
    --gray: #a5a5a5;

    --red: #e00000;
    --red-dark: #9b0000;

    --border: rgba(255,255,255,0.08);

    --transition: .35s ease;

    --container: 1200px;

    --shadow:
    0 20px 60px rgba(0,0,0,.55);

}



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


* {

    margin: 0;
    padding: 0;

    box-sizing: border-box;

}



html {

    scroll-behavior: smooth;

}



body {

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

    background: var(--black);

    color: var(--white);

    overflow-x: hidden;

}



img {

    width:100%;

    display:block;

}



a {

    text-decoration:none;

    color:inherit;

}



ul {

    list-style:none;

}



button,
input,
textarea {

    font-family:inherit;

}



/* ==========================================================
   CONTAINER
========================================================== */


.container {

    width:90%;

    max-width:var(--container);

    margin:auto;

}



/* ==========================================================
   SECCIONES GENERALES
========================================================== */


section {

    padding:100px 0;

    position:relative;

}



.section-title {

    text-align:center;

    max-width:800px;

    margin:0 auto 60px;

}



.section-title span,
.section-tag,
.hero-tag {

    display:inline-block;

    color:var(--red);

    font-size:.85rem;

    font-weight:700;

    letter-spacing:3px;

    text-transform:uppercase;

    margin-bottom:15px;

}



.section-title h2 {

    font-size:clamp(2rem,4vw,3.2rem);

    line-height:1.2;

    font-weight:800;

    margin-bottom:20px;

}



.section-title p {

    color:var(--gray);

    line-height:1.8;

}



/* ==========================================================
   BOTONES
========================================================== */


.btn-primary {


    display:inline-flex;

    align-items:center;

    justify-content:center;

    gap:10px;


    padding:15px 35px;


    background:var(--red);


    color:white;


    font-weight:700;


    border-radius:50px;


    transition:var(--transition);


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


}



.btn-primary:hover {


    background:transparent;

    color:var(--red);


    transform:translateY(-3px);


}






.btn-outline {


    display:inline-flex;


    align-items:center;


    justify-content:center;


    padding:15px 35px;


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


    border-radius:50px;


    font-weight:700;


    transition:var(--transition);


}



.btn-outline:hover {


    border-color:var(--red);


    color:var(--red);


}





/* ==========================================================
   PRELOADER
========================================================== */


#preloader {


    position:fixed;


    inset:0;


    background:#000;


    display:flex;


    align-items:center;


    justify-content:center;


    z-index:9999;


}



.loader {


    display:flex;


    gap:8px;


}



.loader span {


    width:12px;


    height:12px;


    background:var(--red);


    border-radius:50%;


    animation:pulse 1s infinite;


}



.loader span:nth-child(2){

    animation-delay:.2s;

}


.loader span:nth-child(3){

    animation-delay:.4s;

}





@keyframes pulse {


    50%{

        transform:scale(1.6);

        opacity:.5;

    }


}



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


#header {


    position:fixed;


    top:0;


    left:0;


    width:100%;


    z-index:1000;


    padding:25px 0;


    transition:var(--transition);


}



#header.scrolled {


    background:rgba(0,0,0,.9);


    backdrop-filter:blur(15px);


    padding:15px 0;


    border-bottom:1px solid var(--border);


}





.header-container {


    display:flex;


    align-items:center;


    justify-content:space-between;


}




.logo {


    font-size:1.5rem;


    font-weight:800;


    letter-spacing:1px;


}



.logo span {


    color:var(--red);


}




#menu ul {


    display:flex;


    gap:35px;


}



#menu a {


    font-size:.9rem;


    font-weight:600;


    transition:var(--transition);


}



#menu a:hover {


    color:var(--red);


}





.btn-header {


    padding:12px 25px;


    background:var(--red);


    border-radius:50px;


    font-weight:700;


    transition:var(--transition);


}



.btn-header:hover {


    background:white;


    color:black;


}





.menu-toggle {


    display:none;


    background:none;


    border:0;


    color:white;


    font-size:1.8rem;


}





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


.hero {


    min-height:100vh;


    display:flex;


    align-items:center;


    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,.85),

    rgba(0,0,0,.45)

    );


}



.hero-container {


    position:relative;


    z-index:2;


}



.hero-content {


    max-width:800px;


}



.hero-tag {


    background:rgba(224,0,0,.15);


    padding:8px 18px;


    border-radius:30px;


}





.hero h1 {


    font-size:clamp(2.8rem,6vw,5rem);


    line-height:1.05;


    font-weight:900;


    margin-bottom:25px;


}



.hero p {


    color:#ddd;


    font-size:1.1rem;


    line-height:1.8;


    max-width:650px;


    margin-bottom:35px;


}





.hero-buttons {


    display:flex;


    gap:20px;


    flex-wrap:wrap;


}





.social-links {


    margin-top:35px;


    display:flex;


    gap:15px;


}



.social-links a {


    width:45px;


    height:45px;


    border:1px solid var(--border);


    display:flex;


    align-items:center;


    justify-content:center;


    border-radius:50%;


    transition:var(--transition);


}



.social-links a:hover {


    background:var(--red);


    border-color:var(--red);


}





.scroll-indicator {


    position:absolute;


    bottom:30px;


    left:50%;


    transform:translateX(-50%);


    animation:float 2s infinite;


}



@keyframes float {


    50%{

        transform:translate(-50%,15px);

    }

}
/* ==========================================================
   CLIENTES / EXPERIENCIA
========================================================== */


.clients {

    background:
    linear-gradient(
    180deg,
    var(--black),
    var(--black-soft)
    );

}



.clients-grid {


    display:grid;

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

    gap:20px;


}



.client-item {


    background:var(--dark);

    border:1px solid var(--border);

    padding:35px 20px;

    text-align:center;

    border-radius:15px;

    transition:var(--transition);


}



.client-item i {


    font-size:2rem;

    color:var(--red);

    margin-bottom:15px;


}



.client-item span {


    display:block;

    font-size:.9rem;

    color:#ddd;

    font-weight:600;


}



.client-item:hover {


    transform:translateY(-10px);

    border-color:var(--red);

    box-shadow:var(--shadow);


}





/* ==========================================================
   SOBRE MI
========================================================== */


.about {


    background:var(--black-soft);


}



.about-grid {


    display:grid;

    grid-template-columns:

    1fr 1fr;


    gap:70px;

    align-items:center;


}




.about-image {


    position:relative;


}



.about-image img {


    border-radius:20px;

    height:650px;

    object-fit:cover;


}



.experience-box {


    position:absolute;


    bottom:30px;


    right:30px;


    background:rgba(0,0,0,.85);


    backdrop-filter:blur(10px);


    border:1px solid var(--border);


    padding:25px 35px;


    border-radius:15px;


    text-align:center;


}



.experience-box strong {


    display:block;


    font-size:3rem;


    color:var(--red);


    line-height:1;


}



.experience-box span {


    font-size:.85rem;


    color:#ddd;


}





.about-content h2 {


    font-size:clamp(2rem,4vw,3rem);


    line-height:1.2;


    margin-bottom:25px;


}



.about-content p {


    color:#bbb;


    line-height:1.9;


    margin-bottom:18px;


}





.about-content .btn-primary {


    margin-top:20px;


}






/* ==========================================================
   DIFERENCIALES
========================================================== */


.features {


    background:#000;


}




.features-grid {


    display:grid;


    grid-template-columns:

    repeat(4,1fr);


    gap:25px;


}



.feature-card {


    background:

    linear-gradient(

    145deg,

    #151515,

    #090909

    );


    padding:40px 30px;


    border-radius:20px;


    border:1px solid var(--border);


    transition:var(--transition);


}



.feature-card:hover {


    transform:translateY(-12px);


    border-color:var(--red);


}



.feature-card .icon {


    width:65px;


    height:65px;


    display:flex;


    align-items:center;


    justify-content:center;


    background:rgba(224,0,0,.12);


    border-radius:50%;


    margin-bottom:25px;


}



.feature-card i {


    color:var(--red);


    font-size:1.5rem;


}




.feature-card h3 {


    font-size:1.2rem;


    margin-bottom:15px;


}



.feature-card p {


    color:#aaa;


    line-height:1.7;


    font-size:.95rem;


}






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


.services {


    background:

    linear-gradient(

    180deg,

    #050505,

    #111

    );


}




.services-grid {


    display:grid;


    grid-template-columns:

    repeat(4,1fr);


    gap:25px;


}




.service-card {


    background:#0d0d0d;


    border:1px solid var(--border);


    padding:40px 30px;


    border-radius:20px;


    text-align:center;


    transition:var(--transition);


}



.service-card:hover {


    transform:translateY(-10px);


    border-color:var(--red);


}



.service-card i {


    font-size:2.5rem;


    color:var(--red);


    margin-bottom:25px;


}




.service-card h3 {


    font-size:1.2rem;


    margin-bottom:15px;


}



.service-card p {


    color:#aaa;


    line-height:1.7;


    font-size:.95rem;


}
/* ==========================================================
   PRÓXIMAS FECHAS
========================================================== */


.events {

    background:var(--black-soft);

}



.events-grid {


    display:flex;

    flex-direction:column;

    gap:20px;


}



.event-card {


    display:flex;

    align-items:center;

    gap:30px;


    background:#0d0d0d;


    border:1px solid var(--border);


    padding:25px 35px;


    border-radius:18px;


    transition:var(--transition);


}



.event-card:hover {


    transform:translateX(10px);


    border-color:var(--red);


}



.event-date {


    min-width:90px;


    height:90px;


    display:flex;


    flex-direction:column;


    justify-content:center;


    align-items:center;


    background:var(--red);


    border-radius:15px;


}



.event-date span {


    font-size:2.5rem;


    font-weight:900;


    line-height:1;


}



.event-date strong {


    font-size:.9rem;


    letter-spacing:2px;


}



.event-info h3 {


    font-size:1.4rem;


    margin-bottom:8px;


}



.event-info p {


    color:#ddd;


    margin-bottom:8px;


}



.event-info span {


    color:#888;


    font-size:.9rem;


}






/* ==========================================================
   GALERÍA
========================================================== */


.gallery {


    background:#000;


}



.gallery-grid {


    display:grid;


    grid-template-columns:

    2fr 1fr 1fr;


    grid-template-rows:

    repeat(2,280px);


    gap:20px;


}




.gallery-main {


    grid-row:

    span 2;


}



.gallery-grid img {


    width:100%;


    height:100%;


    object-fit:cover;


    border-radius:18px;


    transition:.5s ease;


}



.gallery-grid div {


    overflow:hidden;


    border-radius:18px;


}




.gallery-grid div:hover img {


    transform:scale(1.08);


}







/* ==========================================================
   MEDIA / VIDEOS
========================================================== */


.media {


    background:var(--black-soft);


}



.media-grid {


    display:grid;


    grid-template-columns:

    repeat(2,1fr);


    gap:30px;


}



.media-card {


    text-align:center;


    background:#0d0d0d;


    border:1px solid var(--border);


    border-radius:20px;


    padding:50px 30px;


    transition:var(--transition);


}



.media-card:hover {


    border-color:var(--red);


    transform:translateY(-10px);


}



.media-icon {


    width:90px;


    height:90px;


    margin:0 auto 25px;


    display:flex;


    align-items:center;


    justify-content:center;


    border-radius:50%;


    background:rgba(224,0,0,.15);


}



.media-icon i {


    font-size:3rem;


    color:var(--red);


}



.media-card h3 {


    font-size:1.5rem;


    margin-bottom:15px;


}



.media-card p {


    color:#aaa;


    line-height:1.7;


    margin-bottom:25px;


}



.media-card a {


    display:inline-block;


    padding:12px 30px;


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


    border-radius:50px;


    color:var(--red);


    font-weight:700;


    transition:var(--transition);


}



.media-card a:hover {


    background:var(--red);


    color:white;


}
/* ==========================================================
   TESTIMONIOS
========================================================== */


.testimonials {


    background:#000;


}



.testimonials-grid {


    display:grid;


    grid-template-columns:

    repeat(3,1fr);


    gap:25px;


}




.testimonial-card {


    background:#0d0d0d;


    border:1px solid var(--border);


    padding:40px 30px;


    border-radius:20px;


    transition:var(--transition);


}



.testimonial-card:hover {


    transform:translateY(-10px);


    border-color:var(--red);


}




.quote {


    color:var(--red);


    font-size:2rem;


    margin-bottom:20px;


}



.testimonial-card p {


    color:#ccc;


    line-height:1.8;


    margin-bottom:25px;


    font-style:italic;


}




.author strong {


    display:block;


    font-size:1rem;


}



.author span {


    color:#888;


    font-size:.85rem;


}






/* ==========================================================
   FAQ
========================================================== */

.faq {
    background: var(--black-soft);
}

.faq-container {
    max-width: 900px;
    margin: auto;
}

.faq-item {
    border-bottom: 1px solid var(--border);
}

.faq-question {
    width: 100%;
    background: none;
    border: 0;
    color: white;
    padding: 25px 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    cursor: pointer;
    font-size: 1.05rem;
    font-weight: 700;
    text-align: left;
}

.faq-question i {
    flex: 0 0 auto;
    color: var(--red);
    transition: transform .3s ease;
}

.faq-item.faq-open .faq-question i {
    transform: rotate(45deg);
}

.faq-answer[hidden] {
    display: none;
}

.faq-answer {
    display: block;
}

.faq-answer p {
    color: #aaa;
    line-height: 1.8;
    padding-bottom: 25px;
}


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


.cta {


    background:


    linear-gradient(

    135deg,

    #150000,

    #050505

    );


}



.cta-content {


    text-align:center;


    max-width:800px;


    margin:auto;


}



.cta h2 {


    font-size:clamp(2rem,4vw,3.5rem);


    font-weight:800;


    margin-bottom:20px;


}



.cta p {


    color:#ccc;


    font-size:1.1rem;


    margin-bottom:35px;


}








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


.contact {


    background:#000;


}




.contact-grid {


    display:grid;


    grid-template-columns:

    1fr 1fr;


    gap:70px;


    align-items:start;


}




.contact-info h2 {


    font-size:clamp(2rem,4vw,3rem);


    line-height:1.2;


    margin-bottom:25px;


}



.contact-info p {


    color:#aaa;


    line-height:1.8;


    margin-bottom:35px;


}



.contact-items {


    display:flex;


    flex-direction:column;


    gap:20px;


    margin-bottom:35px;


}




.contact-item {


    display:flex;


    gap:20px;


    align-items:center;


}



.contact-item i {


    width:50px;


    height:50px;


    display:flex;


    justify-content:center;


    align-items:center;


    background:rgba(224,0,0,.15);


    color:var(--red);


    border-radius:50%;


}



.contact-item strong {


    display:block;


}



.contact-item span {


    color:#888;


}







/* FORMULARIO */


.contact-form {


    background:#0d0d0d;


    padding:40px;


    border-radius:20px;


    border:1px solid var(--border);


}



.form-group {


    margin-bottom:20px;


}



.form-group input,
.form-group textarea {


    width:100%;


    background:#050505;


    border:1px solid var(--border);


    color:white;


    padding:16px 20px;


    border-radius:10px;


    outline:none;


    transition:.3s;


}



.form-group input:focus,
.form-group textarea:focus {


    border-color:var(--red);


}



.form-group textarea {


    resize:none;


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


.footer {


    background:#050505;


    border-top:1px solid var(--border);


    padding-top:60px;


}



.footer-container {


    display:flex;


    justify-content:space-between;


    align-items:center;


    gap:30px;


    padding-bottom:40px;


}



.footer-brand h3 {


    font-size:1.8rem;


    margin-bottom:15px;


}



.footer-brand p {


    color:#888;


    max-width:450px;


    line-height:1.7;


}




.footer-social {


    display:flex;


    gap:15px;


}



.footer-social a {


    width:45px;


    height:45px;


    border-radius:50%;


    border:1px solid var(--border);


    display:flex;


    justify-content:center;


    align-items:center;


    transition:var(--transition);


}



.footer-social a:hover {


    background:var(--red);


    border-color:var(--red);


}



.copyright {


    text-align:center;


    padding:20px;


    border-top:1px solid var(--border);


    color:#666;


    font-size:.85rem;


}








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


.floating-whatsapp {


    position:fixed;


    right:25px;


    bottom:25px;


    width:60px;


    height:60px;


    background:#25D366;


    color:white;


    border-radius:50%;


    display:flex;


    justify-content:center;


    align-items:center;


    font-size:2rem;


    z-index:900;


    box-shadow:

    0 10px 30px rgba(0,0,0,.5);


    transition:.3s;


}



.floating-whatsapp:hover {


    transform:scale(1.1);


}







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


.reveal {


    opacity:0;


    transform:translateY(40px);


    transition:

    opacity .8s ease,

    transform .8s ease;


}



.reveal.active {


    opacity:1;


    transform:translateY(0);


}








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


@media(max-width:1100px){



.clients-grid {


    grid-template-columns:

    repeat(3,1fr);


}



.features-grid {


    grid-template-columns:

    repeat(2,1fr);


}



.services-grid {


    grid-template-columns:

    repeat(2,1fr);


}



.testimonials-grid {


    grid-template-columns:

    repeat(2,1fr);


}



}








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


@media(max-width:768px){



section {


    padding:70px 0;


}





/* HEADER */


#menu {


    position:absolute;


    top:80px;


    left:0;


    width:100%;


    background:#050505;


    padding:30px;


    display:none;


}



#menu.active {


    display:block;


}



#menu ul {


    flex-direction:column;


    gap:25px;


}



.btn-header {


    display:none;


}



.menu-toggle {


    display:block;


}







/* HERO */


.hero {


    min-height:100svh;


}



.hero h1 {


    font-size:2.5rem;


}



.hero p {


    font-size:1rem;


}



.hero-buttons {


    flex-direction:column;


    align-items:flex-start;


}



.btn-primary,
.btn-outline {


    width:100%;


}







/* ABOUT */


.about-grid {


    grid-template-columns:1fr;


}



.about-image img {


    height:450px;


}




.experience-box {


    right:15px;


    bottom:15px;


}





/* CLIENTS */


.clients-grid {


    grid-template-columns:

    repeat(2,1fr);


}






/* FEATURES */


.features-grid {


    grid-template-columns:1fr;


}




/* SERVICES */


.services-grid {


    grid-template-columns:1fr;


}






/* EVENTS */


.event-card {


    flex-direction:column;


    align-items:flex-start;


}





/* GALLERY */


.gallery-grid {


    grid-template-columns:1fr;


    grid-template-rows:auto;


}



.gallery-main {


    grid-row:auto;


}



.gallery-grid div {


    height:280px;


}







/* MEDIA */


.media-grid {


    grid-template-columns:1fr;


}






/* TESTIMONIALS */


.testimonials-grid {


    grid-template-columns:1fr;


}






/* CONTACT */


.contact-grid {


    grid-template-columns:1fr;


}



.contact-form {


    padding:25px;


}






/* FOOTER */


.footer-container {


    flex-direction:column;


    text-align:center;


}


}