:root{
  --bg:#0d1b2a;
  --fg:#ffffff;
  --accent:#ff7b00;
  --muted:#e0e0e0;
  --container:1200px;
}

*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Poppins',sans-serif;background:var(--bg);color:var(--fg);line-height:1.6;overflow-x:hidden}
.container{max-width:var(--container);margin:0 auto;padding:2rem}

/* Header */
header{position:sticky;top:0;z-index:1000;background:rgba(13,27,42,.95);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid rgba(255,255,255,.1)}
.brand img{width:180px;height:100px;object-fit:contain}
nav{display:flex;gap:1rem}
nav a{text-decoration:none;color:var(--fg);transition:.3s}
nav a:hover{color:var(--accent)}
.menu-toggle{display:none;font-size:1.8rem;background:none;border:none;color:var(--fg);cursor:pointer}

.btn{background:var(--accent);color:var(--bg);padding:.6rem 1rem;border-radius:8px;text-decoration:none;font-weight:600;transition:.3s;border:0;cursor:pointer;display:inline-block}
.btn:hover{opacity:.85}

/* Hero */
.hero{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:center;padding:6rem 0}
.hero h1{font-size:clamp(2rem,5vw,3rem);color:var(--accent);margin-bottom:1rem}
.hero p{color:var(--fg);font-size:1.1rem;margin-bottom:2rem}
.hero img{width:80%;border-radius:12px;object-fit:cover}

/* Cards & Services */
.features{display:flex;gap:1rem;flex-wrap:wrap;margin-top:3rem}
.card,.service-box{background:#1b263b;padding:1rem;border-radius:12px;box-shadow:0 4px 10px rgba(0,0,0,.3);transition:.3s}
.card:hover,.service-box:hover{transform:translateY(-8px);background:#23344d}
.service-box h3{margin-bottom:.5rem;color:var(--accent)}
.service-box p{color:var(--muted);font-size:.9rem}
.services{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem;margin-bottom:4rem}

.carousel {
  position: relative;
  overflow: hidden;
  width: 100%;
  max-width: 900px;
  margin: 2rem auto;
}

.carousel-track {
  display: flex;
  transition: transform 0.5s ease-in-out;
}

.carousel-track img{
  flex: 0 0 100%;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  display: block;
}

.carousel-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(0,0,0,0.5);
  border: none;
  color: white;
  font-size: 2rem;
  padding: 0.5rem 0.8rem;
  cursor: pointer;
  z-index: 10;
  border-radius: 50%;
}

.carousel-btn:hover { background: rgba(0,0,0,0.7); }
.carousel-btn.prev { left: 10px; }
.carousel-btn.next { right: 10px; }

/* Clients */
.clients {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
  align-items: center;
  margin-bottom: 4rem;
  justify-items: center;
}

@media (max-width: 1024px) { .clients { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 768px) { .clients { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .clients { grid-template-columns: 1fr; } }

.clients img{
  display: block;
  height: auto;
  max-width: 220px;
  width: 80%;
  filter: grayscale(100%);
  opacity: 0.8;
  transition: 0.3s;
}
.clients img:hover { filter: grayscale(0); opacity: 1; }

/* Testimonials */
.testimonials{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem;margin-top:2rem;margin-bottom:4rem}
.testimonial{background:#1b263b;padding:1rem;border-radius:12px;box-shadow:0 4px 10px rgba(0,0,0,.3)}
.testimonial p{color:var(--muted);font-size:.95rem;margin-bottom:.5rem}
.testimonial strong{color:var(--accent)}

/* Contact Section */
.contact-info{text-align:center;margin-bottom:1.5rem}
.contact-info p{font-size:1.1rem;margin:0.3rem 0}
.contact-info a{color:var(--accent);text-decoration:none}
.contact-info a:hover{text-decoration:underline}
.contacto{text-align:center;margin-bottom:4rem;display:grid;grid-template-columns: 1fr 1fr; gap:1.5rem; align-items:stretch}
#contactForm{display:grid;gap:.5rem;max-width:640px;margin:0 auto 2rem auto}
#contactForm input,#contactForm select,#contactForm textarea{padding:.6rem;border-radius:8px;border:1px solid #e6eef6;font-family:'Poppins',sans-serif;font-size:1rem}
.mapa{width:100%;height:400px;border-radius:12px;overflow:hidden;margin-bottom:4rem}

/* Footer */
footer{margin-top:3rem;padding:2rem 0;border-top:1px solid rgba(255,255,255,.1);color:var(--muted);font-size:.9rem;text-align:center}
.footer-nav{margin-top:1rem;display:flex;justify-content:center;flex-wrap:wrap;gap:1rem}
.footer-nav a{color:var(--muted);text-decoration:none;transition:.3s}
.footer-nav a:hover{color:var(--accent)}

/* WhatsApp button */
.whatsapp-btn{position:fixed;bottom:20px;right:20px;width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 10px rgba(0,0,0,.3);z-index:2000;cursor:pointer}
.whatsapp-btn img{width:60px;height:60px}

/* Fade-in animations */
.fade-in{opacity:0;transform:translateY(20px);transition:opacity 0.8s ease-out, transform 0.8s ease-out;}
.fade-in.show{opacity:1;transform:translateY(0);}

@media(max-width:900px){
  .hero{grid-template-columns:1fr;text-align:center}
  .hero img{margin-top:1.5rem}
  nav{display:none;flex-direction:column;gap:.5rem;background:#1b263b;position:absolute;top:70px;right:20px;padding:1rem;border-radius:8px}
  .menu-toggle{display:block}
  .contacto{grid-template-columns:1fr}
}

/* Videos */
#videos { margin-bottom: 4rem; }
.video-grid{ display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1.5rem; margin-top: 1.2rem; }
.video-card{ background:#1b263b; border-radius:12px; box-shadow:0 4px 10px rgba(0,0,0,.3); overflow:hidden; transition:.3s; }
.video-card:hover{ transform:translateY(-8px); background:#23344d; }
.video-wrap{ position: relative; width: 100%; padding-top: 56.25%; background:#000; }
.video-wrap iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.video-meta{ padding: 1rem; text-align:left; }
.video-meta strong{ display:block; color: var(--accent); margin-bottom: .25rem; font-size: 1rem; }
.video-meta div{ color: var(--muted); font-size: .92rem; }

@media (max-width: 768px){ .carousel-track img{ height: 260px; } }
@media (max-width: 480px){ .carousel-track img{ height: 200px; } }

/* ====== Extra: calculadora ====== */
#mapTarifa { height: 420px; border-radius: 12px; overflow:hidden; }
.muted { color: #6c757d; font-size: .95rem; }
#tarifas input, #tarifas select{
  width:100%;
  padding:12px;
  border-radius:10px;
  border:1px solid rgba(13,27,42,.18);
  font-family:'Poppins',sans-serif;
  font-size:1rem;
}
.btn-row{ margin-top:14px; display:flex; gap:.75rem; flex-wrap:wrap; justify-content:center; }

/* =====================================================
   PARCHE TEMA: Blanco + Azul + Naranja (PEGAR AL FINAL)
   ===================================================== */
:root{
  --bg:#ffffff;
  --fg:#0d1b2a;
  --accent:#ff7b00;
  --accent-2:#ff9a3d;
  --muted:#5b6777;
  --primary:#0b5ed7;
  --container:1200px;
}

body{ background:var(--bg); color:var(--fg); }

header{
  background:rgba(255,255,255,.92);
  border-bottom:1px solid rgba(13,27,42,.12);
}

nav a{ color:var(--fg); }
nav a:hover{ color:var(--accent); }

.btn{ background:var(--primary); color:#fff; }
.btn:hover{ opacity:.9; }

.btn-accent{ background: var(--accent-2); color:#fff; }
.btn-outline{ background:transparent; border:2px solid var(--primary); color:var(--primary); }

.hero h1{ color:var(--primary); }
.hero p{ color:var(--fg); }

.card,.service-box,.testimonial,.video-card{
  background:#ffffff;
  border:1px solid rgba(13,27,42,.10);
  box-shadow:0 6px 16px rgba(13,27,42,.08);
}
.card:hover,.service-box:hover,.video-card:hover{
  background:#fff;
  transform:translateY(-8px);
  box-shadow:0 10px 22px rgba(13,27,42,.12);
}

.service-box h3,
.video-meta strong,
.testimonial strong{
  color:var(--accent);
}

.service-box p,
.testimonial p,
.video-meta div{
  color:var(--muted);
}

@media(max-width:900px){
  nav{
    background:#ffffff;
    border:1px solid rgba(13,27,42,.10);
    box-shadow:0 10px 22px rgba(13,27,42,.12);
  }
  .menu-toggle{ color:var(--fg); }
}

#contactForm input,#contactForm select,#contactForm textarea{
  border:1px solid rgba(13,27,42,.18);
  background:#fff;
  color:var(--fg);
}
#contactForm input:focus,#contactForm select:focus,#contactForm textarea:focus{
  outline:none;
  border-color:rgba(11,94,215,.55);
  box-shadow:0 0 0 .2rem rgba(11,94,215,.15);
}

footer{
  border-top:1px solid rgba(13,27,42,.12);
  color:var(--muted);
}
.footer-nav a{ color:var(--muted); }
.footer-nav a:hover{ color:var(--accent); }
/* ===== Fixes finales (sin cambiar la base) ===== */

/* 1) Menú mobile: que respete el tema claro del parche */
@media(max-width:900px){
  nav{
    background:#ffffff !important;
    border:1px solid rgba(13,27,42,.10) !important;
    box-shadow:0 10px 22px rgba(13,27,42,.12) !important;
  }
}

/* 2) Solo en la calculadora (#tarifas) mantenemos 2 columnas (inputs + mapa)
      y evitamos que se rompa el contacto */
#tarifas .contacto{
  grid-template-columns: 1fr 1.2fr;
  align-items: start;
}

/* en mobile, #tarifas sí o sí 1 columna */
@media(max-width:900px){
  #tarifas .contacto{
    grid-template-columns: 1fr;
  }
}

/* 3) Inputs del datalist (autocomplete) más prolijos */
#tarifas input, #tarifas select{
  background:#fff;
  color:var(--fg);
}

/* Botones de la fila en tarifa: alineados */
#tarifas .btn-row{
  justify-content: flex-start;
}
