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

body{
font-family:'Inter',sans-serif;
background:#ffffff;
color:#111;

padding-top:70px;
}

/* HEADER */

.header{
position:fixed;
top:0;
left:0;
width:100%;
background:white;
border-bottom:1px solid #eee;
z-index:100;
}

.logo img{
height:100px;
}

.nav a{
margin-left:30px;
text-decoration:none;
color:#333;
font-size:14px;
}

.nav a:hover{
color:#0071e3;
}

/* HERO */

.hero{
height:70vh;
min-height:650px;
display:flex;
align-items:center;
padding:120px 0;
background-image:url("../img/fondo1.png");
background-size:cover;
background-repeat:no-repeat;
background-position:center;
background-color:black;
position:relative;
overflow:hidden;
animation:heroMove 25s ease-in-out infinite alternate;
}

@keyframes heroMove{
0%{background-position:center top;}
50%{background-position:center center;}
100%{background-position:center bottom;}
}

.hero .container{
margin-left:0;
margin-right:auto;
position:relative;
z-index:2;
}

.hero-text{
max-width:600px;
text-align:left;
margin-left:120px;
margin-top:-60px;
}

.hero h1{
font-size:60px;
font-weight:700;
margin-bottom:10px;
color:white;
}

.hero h2{
font-size:28px;
font-weight:500;
margin-bottom:20px;
color:white;
}

.hero p{
font-size:16px;
margin-bottom:40px;
color:white;
}

/* BOTONES */

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

.btn-primary{
background:#0071e3;
color:white;
padding:12px 30px;
border-radius:30px;
text-decoration:none;
}

.btn-primary:hover{
background:#005fcc;
}

.btn-secondary{
display:inline-block;
padding:14px 28px;
border-radius:30px;
border:2px solid #4d7cff;
color:white;
text-decoration:none;
margin-left:15px;
font-weight:500;
transition:all .3s ease;
}

.btn-secondary:hover{
background:#4d7cff;
transform:translateY(-2px);
}

/* UNIDADES */

.units{
padding:90px 80px;
text-align:center;
background:#f5f5f7;
opacity:0;
transform:translateY(40px);
animation:fadeUp 1s ease forwards;
animation-delay:.3s;
}

.units h2{
font-size:38px;
font-weight:600;
margin-bottom:80px;
color:#111;
letter-spacing:-0.5px;
font-family:'Space Grotesk',sans-serif;
}

.units-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
gap:80px;
max-width:1200px;
margin:auto;
align-items:center;
}

.unit{
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
padding:40px 20px;
border-radius:16px;
transition:all .35s ease;
cursor:pointer;
}

.unit:hover{
background:white;
transform:translateY(-6px);
box-shadow:0 20px 40px rgba(0,0,0,0.08);
}

.unit img{
width:180px;
height:100px;
object-fit:contain;
margin-bottom:20px;
transition:transform .35s ease;
}

.unit:hover img{
transform:scale(1.08);
}

.unit[data-tienda="PhoneDepot"] img,
.unit[data-tienda="CompuMac"] img{
width:360px;
height:140px;
}

.unit p{
font-size:15px;
font-weight:500;
color:#444;
letter-spacing:0.2px;
}

/* FOOTER */

.footer{
text-align:center;
padding:40px;
border-top:1px solid #eee;
color:#777;
background:white;
}

/* CONTENEDORES */

.container{
max-width:1400px;
margin:auto;
padding:0 40px;
}

.header-container{
display:flex;
justify-content:space-between;
align-items:center;
height:70px;
}

/* MODAL */

.modal{
display:none;
position:fixed;
z-index:1000;
left:0;
top:0;
width:100%;
height:100%;
background:rgba(0,0,0,0.6);
backdrop-filter:blur(3px);
justify-content:center;
align-items:center;
}

.modal-content{
background:white;
padding:40px;
border-radius:20px;
max-width:900px;
width:90%;
max-height:90vh;
overflow:auto;
position:relative;
box-shadow:0 20px 50px rgba(0,0,0,0.3);
animation:modalFade .3s ease;
display:flex;
flex-direction:column;
}

.modal-close{
position:absolute;
right:20px;
top:10px;
font-size:30px;
cursor:pointer;
}

@keyframes modalFade{
from{transform:translateY(-20px);opacity:0;}
to{transform:translateY(0);opacity:1;}
}

.modal-grid{
display:grid;
grid-template-columns:1fr 1fr;
gap:40px;
align-items:start;
}

.modal-img{
width:100%;
border-radius:12px;
object-fit:cover;
box-shadow:0 10px 25px rgba(0,0,0,0.15);
}

.modal-vendedores{
display:flex;
flex-direction:column;
gap:12px;
margin-top:20px;
}

.vendedor{
background:#f5f5f7;
padding:12px 15px;
border-radius:12px;
font-size:14px;
display:flex;
flex-direction:column;
box-shadow:0 3px 10px rgba(0,0,0,0.08);
}

.vendedor-nombre{font-weight:600;color:#111;}
.vendedor-cargo{font-size:13px;color:#666;}
.vendedor-contacto{font-size:13px;color:#0071e3;margin-top:3px;}

.modal-right{
display:flex;
flex-direction:column;
height:100%;
}

.modal-buttons{
margin-top:auto;
display:flex;
gap:15px;
justify-content:flex-end;
}

.btn-social{
width:45px;
height:45px;
display:flex;
align-items:center;
justify-content:center;
border-radius:50%;
background:#f5f5f7;
transition:all .25s ease;
}

.btn-social img{
width:22px;
height:22px;
}

.btn-social:hover{
transform:translateY(-3px);
box-shadow:0 8px 18px rgba(0,0,0,0.2);
}

/* SECCION GRUPO CTN */

.ctn-info{
padding:140px 80px;
background:linear-gradient(to bottom,#ffffff,#f7f9fc);
position:relative;
}

.ctn-info .ctn-grid{
display:grid;
grid-template-columns:1fr 1.2fr;
gap:80px;
align-items:center;
}

.ctn-contact{
background:linear-gradient(135deg,#0071e3,#005fcc);
color:white;
padding:60px 50px;
border-radius:22px;
box-shadow:0 30px 70px rgba(0,0,0,0.15);
position:relative;
}

.ctn-contact h3{
font-size:30px;
margin-bottom:20px;
font-family:'Space Grotesk',sans-serif;
}

.contact-item{
margin-bottom:20px;
font-size:15px;
}

.contact-item span{
font-weight:600;
display:block;
margin-top:4px;
}

.ctn-about h2{
font-size:38px;
margin-bottom:20px;
font-family:'Space Grotesk',sans-serif;
}

.ctn-about p{
margin-bottom:35px;
color:#444;
line-height:1.7;
font-size:16px;
}

.map iframe{
width:100%;
height:300px;
border-radius:16px;
box-shadow:0 20px 50px rgba(0,0,0,0.15);
border:0;
}

/* VIDEOS */

.videos{
padding:80px 0;
background:#f5f5f7;
width:100%;
}

.videos h2{
text-align:center;
font-size:42px;
font-weight:600;
margin-bottom:60px;
font-family:'Space Grotesk',sans-serif;
}

.videos-grid{
display:grid;
grid-template-columns:repeat(4,260px);
gap:30px;
justify-content:center;
max-width:1400px;
margin:0 auto;
}

.video-card{
border-radius:20px;
overflow:hidden;
background:#000;
box-shadow:0 10px 25px rgba(0,0,0,.15);
transition:transform .3s ease;
width:260px;
}

.video-card:hover{
transform:translateY(-6px);
}

.video-card video{
width:100%;
aspect-ratio:9/16;
object-fit:cover;
display:block;
background:#000;
}

.videos .section-title{
display:block;
text-align:center;
margin:0 auto 60px auto;
width:fit-content;
}
/* RESPONSIVE */

@media (max-width:1100px){
.videos-grid{grid-template-columns:repeat(2,260px);}
}

@media (max-width:768px){

.header{padding:0 20px;}

.hero{padding:100px 30px;}

.hero-text{margin-left:0;}

.hero h1{font-size:40px;}

.hero h2{font-size:22px;}

.units{padding:80px 30px;}

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

.modal-buttons{justify-content:flex-start;}

.ctn-info{padding:100px 30px;}

.ctn-info .ctn-grid{grid-template-columns:1fr;}

.map iframe{height:250px;}

}

@media (max-width:700px){

.videos{padding:60px 20px;}

.videos-grid{
grid-template-columns:260px;
gap:25px;
}

}

/* MENU HAMBURGUESA */

.menu-toggle{
display:none;
font-size:28px;
cursor:pointer;
}

@media (max-width:768px){

.menu-toggle{display:block;}

.nav{
position:absolute;
top:70px;
left:0;
width:100%;
background:white;
display:flex;
flex-direction:column;
align-items:center;
max-height:0;
overflow:hidden;
transition:max-height .3s ease;
}

.nav a{
width:100%;
text-align:center;
padding:15px;
margin:0;
border-bottom:1px solid #eee;
}

.nav.active{
max-height:300px;
}

}

@keyframes fadeUp{
from{opacity:0;transform:translateY(40px);}
to{opacity:1;transform:translateY(0);}
}

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

/* Transiciones compartidas */

.logo img,
.btn-primary,
.unit,
.nav a{
transition:all .3s ease;
}


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

.hero-text{
opacity:0;
transform:translateY(40px);
animation:heroFade 1.2s ease forwards;
animation-delay:.3s;
}

@keyframes heroFade{

from{
opacity:0;
transform:translateY(40px);
}

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

}


/* =============================== */
/* BOTON ANIMACION */
/* =============================== */

.btn-primary:hover{
transform:translateY(-3px);
box-shadow:0 10px 25px rgba(0,113,227,.4);
}


/* =============================== */
/* NAV HOVER */
/* =============================== */

.nav a{
position:relative;
}

.nav a::after{
content:"";
position:absolute;
left:0;
bottom:-6px;
width:0;
height:2px;
background:#0071e3;
transition:.3s;
}

.nav a:hover::after{
width:100%;
}


/* =============================== */
/* LOGO HOVER */
/* =============================== */

.logo img:hover{
transform:scale(1.08);
}


/* =============================== */
/* UNITS HOVER */
/* =============================== */

.unit:hover{
transform:translateY(-6px);
}

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

.contact-modern{
display:grid;
grid-template-columns:1fr 1fr;
min-height:700px;
font-family:'Inter',sans-serif;
}

/* ========================= */
/* LADO IZQUIERDO */
/* ========================= */

.contact-left{

background-image:url("img/contact-bg.jpg");
background-size:cover;
background-position:center;

position:relative;

color:white;

display:flex;
align-items:center;

overflow:hidden;

}

/* overlay tecnológico */

.contact-left::before{

content:"";
position:absolute;
inset:0;

background:
radial-gradient(circle at 20% 20%, rgba(59,130,246,.25), transparent 40%),
linear-gradient(135deg,#020617,#0f172a);

}

/* grid tecnológico sutil */

.contact-left::after{

content:"";
position:absolute;
inset:0;

background-image:
linear-gradient(rgba(59,130,246,.08) 1px, transparent 1px),
linear-gradient(90deg, rgba(59,130,246,.08) 1px, transparent 1px);

background-size:80px 80px;

opacity:.35;

}

/* ========================= */
/* CONTENIDO IZQUIERDO */
/* ========================= */

.contact-info{

position:relative;
z-index:2;

padding:80px;

max-width:420px;

}

.contact-info h2{

font-size:48px;
font-weight:600;
margin-bottom:50px;

letter-spacing:.5px;

text-shadow:0 8px 30px rgba(59,130,246,.35);

}

/* bloques */

.info-block{
margin-bottom:40px;
}

.info-block h4{

margin-bottom:8px;

color:#8fa8ff;

font-weight:500;

font-size:16px;

letter-spacing:.3px;

}

.info-block p{

line-height:1.6;

color:#d4d7dd;

font-size:15px;

}

/* ========================= */
/* LADO DERECHO */
/* ========================= */

.contact-right{

background:white;

padding:80px;

display:flex;
flex-direction:column;
justify-content:center;

}

.contact-right h2{

font-size:40px;

margin-bottom:40px;

font-weight:600;

color:#0f172a;

}

/* ========================= */
/* FORM */
/* ========================= */

.modern-form{
display:flex;
flex-direction:column;
gap:22px;
}

.form-row{
display:flex;
gap:20px;
}

/* inputs */

.modern-form input,
.modern-form textarea{

padding:16px 18px;

border:1px solid #e5e7eb;

border-radius:10px;

font-size:14px;

transition:all .25s ease;

background:#fafafa;

}

/* focus elegante */

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

outline:none;

border-color:#3b82f6;

background:white;

box-shadow:0 0 0 3px rgba(59,130,246,.15);

}

/* textarea */

.modern-form textarea{
height:150px;
resize:none;
}

/* botón */

.modern-form button{

margin-top:10px;

padding:16px;

background:linear-gradient(135deg,#2563eb,#1d4ed8);

border:none;

color:white;

font-size:16px;

border-radius:10px;

cursor:pointer;

font-weight:500;

transition:all .25s ease;

box-shadow:0 8px 25px rgba(37,99,235,.35);

}

.modern-form button:hover{

transform:translateY(-2px);

box-shadow:0 12px 35px rgba(37,99,235,.45);

background:linear-gradient(135deg,#1d4ed8,#1e40af);

}

/* ========================= */
/* STATUS MENSAJE */
/* ========================= */

.form-status{

margin-top:15px;

font-size:14px;

color:#16a34a;

font-weight:500;

opacity:0;

transition:opacity .3s ease;

}

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

@media(max-width:900px){

.contact-modern{
grid-template-columns:1fr;
}

.contact-left{
min-height:350px;
}

.contact-info{
padding:60px 40px;
}

.contact-right{
padding:60px 30px;
}

.form-row{
flex-direction:column;
}

}

/* MENU HAMBURGUESA */
#chatbot-button{
position:fixed;
bottom:25px;
right:25px;
width:60px;
height:60px;
background:#0071e3;
color:white;
border-radius:50%;
display:flex;
align-items:center;
justify-content:center;
font-size:24px;
cursor:pointer;
box-shadow:0 10px 30px rgba(0,0,0,.2);
z-index:9999;
}

#chatbot-window{
position:fixed;
bottom:100px;
right:25px;
width:320px;
height:420px;
background:white;
border-radius:12px;
box-shadow:0 20px 40px rgba(0,0,0,.2);
display:none;
flex-direction:column;
overflow:hidden;
font-family:Inter;
}

.chatbot-header{
background:#0071e3;
color:white;
padding:12px;
font-weight:600;
}

#chatbot-messages{
flex:1;
padding:10px;
overflow-y:auto;
font-size:14px;
}

.bot-message{
background:#f2f2f2;
padding:8px 10px;
border-radius:8px;
margin-bottom:8px;
}

.user-message{
background:#0071e3;
color:white;
padding:8px 10px;
border-radius:8px;
margin-bottom:8px;
text-align:right;
}

.chatbot-input{
display:flex;
border-top:1px solid #ddd;
}

.chatbot-input input{
flex:1;
border:none;
padding:10px;
outline:none;
}

.chatbot-input button{
background:#0071e3;
color:white;
border:none;
padding:10px 15px;
cursor:pointer;
}

/* ======================= */
/* CHATBOT */
/* ======================= */

/* BOTON CHATBOT */

#chatbot-button{
position:fixed;
bottom:30px;
right:30px;
width:64px;
height:64px;

background:linear-gradient(135deg,#4f7cff,#0071e3);

border-radius:50%;
display:flex;
align-items:center;
justify-content:center;

font-size:28px;
color:white;

cursor:pointer;

box-shadow:0 12px 30px rgba(0,0,0,0.25);

transition:all .25s ease;

z-index:9999;
}

/* hover */

#chatbot-button:hover{
transform:translateY(-4px) scale(1.05);
box-shadow:0 18px 40px rgba(0,0,0,0.35);
}

/* animacion flotante */

@keyframes chatbotFloat{

0%{transform:translateY(0)}
50%{transform:translateY(-6px)}
100%{transform:translateY(0)}

}

#chatbot-button{
animation:chatbotFloat 4s ease-in-out infinite;
}