/* style.css — estilos globales */
/* Paleta: Azul rey #0033A0, Azul claro #3FA9F5, Blanco #FFFFFF, Gris #F5F5F5 */
:root{
  --azul-rey: #0033A0;
  --azul-claro: #3FA9F5;
  --blanco: #FFFFFF;
  --gris-suave: #F5F5F5;
  --texto: #222;
  --max-width: 1100px;
  --radius: 10px;
  --trans: 0.28s cubic-bezier(.22,.9,.22,1);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
  color:var(--texto);
  background:var(--blanco);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  line-height:1.5;
}

/* container */
.container{
  width:94%;
  max-width:var(--max-width);
  margin:0 auto;
}

/* Header */
.site-header{
  background:linear-gradient(90deg,var(--blanco), #f8fbff);
  border-bottom:1px solid rgba(0,0,0,0.05);
  position:sticky;
  top:0;
  z-index:40;
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;

}
.logo{
  text-decoration:none;
  color:var(--azul-rey);
  display:flex;
  align-items:center;

  height: 120px;
}
.logo-text .brand-title{
  font-weight:700;
  font-size:18px;
}
.logo-text .brand-tag{
  display:block;
  font-size:12px;
  color:#666;
}

/* Nav */
.main-nav{position:relative}
.nav-toggle{display:none;background:none;border:0;font-size:20px}
.nav-list{
  list-style:none;margin:0;padding:0;display:flex;gap:14px; align-items:left;
}
.nav-list a{
  text-decoration:none;color:var(--azul-rey);padding:8px 12px;border-radius:8px;
  transition:background var(--trans), color var(--trans);
}
.nav-list a:hover, .nav-list a.active{background:var(--azul-claro); color: #fff}


 @media (max-width: 768px) {
 .nav-list{
  width: 160px;
}

}
/* Buttons */
.btn-primary{
  display:inline-block;
  background:var(--azul-rey);
  color:#fff;padding:10px 16px;border-radius:10px;text-decoration:none;
  transition:transform var(--trans), box-shadow var(--trans);
}
.btn-primary:hover{transform:translateY(-3px);box-shadow:0 8px 20px rgba(3,54,124,0.12)}

.btn-outline2{
  display:inline-block;
  background:transparent;border:2px solid var(--azul-rey);color:var(--azul-rey);
  padding:8px 14px;border-radius:10px;text-decoration:none;
}
.center{text-align:center;}

/* Carousel (promos) */
.carousel{
  position:relative;overflow:hidden;border-radius:12px;margin:18px 0;
  background:var(--gris-suave);
}
.carousel .carousel-item{
  width:100%;height:220px;display:none;align-items:center;justify-content:center;
}
.carousel .carousel-item img{
  width:100%;height:100%;object-fit:cover;display:block;border-radius:12px;
}
.carousel .carousel-item.active{display:flex}

@media (max-width: 768px) {
  .carousel{
  position:relative;overflow:hidden;border-radius:12px;margin:18px 0;
  background:var(--gris-suave);
}
.carousel .carousel-item{
  width:100%;height:130px;display:none;align-items:center;justify-content:center;
}
.carousel .carousel-item img{
  width:100%;height:100%;object-fit:cover;display:block;border-radius:12px;
}
.carousel .carousel-item.active{display:flex}
}

/* About */
.about{padding:28px 0}
.quick-info{display:flex;gap:18px;flex-wrap:wrap;margin-top:12px}
.quick-info > div{flex:1;min-width:220px;background:#fff;padding:12px;border-radius:10px;border:1px solid rgba(0,0,0,0.04)}

/* Grids */
.grid{display:grid;gap:14px}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){ .grid-4{grid-template-columns:repeat(3,1fr)} .grid-3{grid-template-columns:repeat(2,1fr)} }
@media(max-width:600px){ .grid-3,.grid-4{grid-template-columns:repeat(1,1fr)} }

/* Thumbnails / Gallery */
.thumb, .catalog-item{
  background:#fff;border-radius:10px;overflow:hidden;border:1px solid rgba(0,0,0,0.04);
  cursor:pointer;transition:transform var(--trans), box-shadow var(--trans);
}
.thumb img, .catalog-item img{width:100%;height:190px;object-fit:cover;display:block}
.thumb figcaption, .catalog-item figcaption{padding:8px;font-weight:600;color:var(--azul-rey);text-align:center}
.thumb:hover, .catalog-item:hover{transform:translateY(-6px);box-shadow:0 10px 30px rgba(3,54,124,0.08)}

/* Modal */
.modal{
  position:fixed;left:0;top:0;width:100%;height:100%;display:none;align-items:center;justify-content:center;
  background:rgba(0,0,0,0.6);z-index:999;
}
.modal[aria-hidden="false"]{display:flex}
.modal-content{
  width:92%;max-width:900px;background:#fff;border-radius:12px;padding:14px;display:flex;gap:12px;align-items:flex-start;
  animation:pop .22s ease;
}
@keyframes pop{from{transform:scale(.98);opacity:0}to{transform:scale(1);opacity:1}}
.modal-content img{width:48%;height:380px;object-fit:cover;border-radius:8px}
.modal-body{padding:6px;width:52%}
.modal-close{position:absolute;right:22px;top:18px;border:0;background:#fff;border-radius:50%;width:38px;height:38px;cursor:pointer}

/* Quick contact buttons */
.quick-contact .contact-buttons{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px}
.contact-btn{display:inline-block;padding:10px 12px;border-radius:10px;text-decoration:none;color:#fff}
.contact-btn.phone{background:linear-gradient(90deg,var(--azul-rey),#062f86)}
.contact-btn.whatsapp{background:#25D366}
.contact-btn.mail{background:#3FA9F5}

/* Footer */
.footer-left, .footer-mid, .footer-right{flex:1;}


/* Contact form and contact grid */
.contact-grid{display:grid;grid-template-columns:1fr 360px;gap:20px}
@media(max-width:900px){ .contact-grid{grid-template-columns:1fr} .modal-content img{display:none} }
.contact-form label{display:block;margin-top:10px}
.contact-form input, .contact-form textarea{width:100%;padding:10px;border-radius:8px;border:1px solid #ddd;margin-top:6px}
.form-actions{margin-top:12px}

/* Map sim */
.map-sim img{width:100%;height:240px;object-fit:cover;border-radius:8px;border:1px solid rgba(0,0,0,0.06)}

/* Fade-in animation utility */
.fade-in{opacity:0;transform:translateY(8px);transition:opacity .6s ease, transform .6s ease}
.fade-in.visible{opacity:1;transform:none}

/* Kids page styles */
.kids-page .kids-hero{background:linear-gradient(90deg,#FFFAF0, #e6f7ff);padding:32px 0;text-align:center}
.kids-page .kids-gallery .catalog-item img{height:220px;object-fit:cover}

/* small screens nav */
@media(max-width:800px){
  .nav-toggle{display:block}
  .nav-list{position:absolute;right:10px;top:56px;background:var(--blanco);padding:12px;border-radius:8px;box-shadow:0 8px 30px rgba(0,0,0,0.08);flex-direction:column;display:none}
  .nav-list.open{display:flex}
}

/* utilities */
.small{font-size:13px;color:#666}


/* ===========================
   SECCIÓN CONTACTO (FONDO CLARO)
   =========================== */
.contacto {
    padding: 4rem 10%;
    background-color: #f8f9fa;
    text-align: center;
}

.contacto-header h2 {
    font-size: 2.5rem;
    margin-bottom: 1rem;
    color: #023459;
}

.contacto-header p {
    font-size: 1.1rem;
    margin-bottom: 3rem;
    color: #666;
}

.contacto-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
    margin-bottom: 4rem;
}

.contacto-card {
    background-color: #ffffff;
    border-radius: 12px;
    padding: 2rem;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease;
}

.contacto-card:hover {
    transform: translateY(-5px);
}

.contacto-icon {
    width: 70px;
    height: 70px;
    margin: 0 auto 1.5rem;
    background-color: #f5f5f5;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.contacto-icon img {
    width: 40px;
    height: 40px;
}

.contacto-card h3 {
    font-size: 1.5rem;
    margin-bottom: 1rem;
    color: #023459;
}

.contacto-card p {
    color: #666;
    margin-bottom: 0.5rem;
}

.contacto-resaltado {
    font-weight: bold;
    color: #023459 !important;
    font-size: 1.1rem;
    margin: 1rem 0 !important;
}

.btn-whatsapp {
    background-color: #25D366;
    color: white;
    margin-top: 1.5rem;
    padding: 0.8rem 1.5rem;
    font-size: 1rem;
    font-weight: bold;
    border-radius: 6px;
    text-decoration: none;
    transition: all 0.3s ease-in-out;
    display: inline-block;
    border: none;
}

.btn-whatsapp:hover {
    background-color: #128C7E;
}

.btn-telefono {
    background-color: #007bff;
    color: white;
    margin-top: 1.5rem;
    padding: 0.8rem 1.5rem;
    font-size: 1rem;
    font-weight: bold;
    border-radius: 6px;
    text-decoration: none;
    transition: all 0.3s ease-in-out;
    display: inline-block;
    border: none;
}

.btn-telefono:hover {
    background-color: #0056b3;
}

.btn-email {
    background-color: #6f42c1;
    color: white;
    margin-top: 1.5rem;
    padding: 0.8rem 1.5rem;
    font-size: 1rem;
    font-weight: bold;
    border-radius: 6px;
    text-decoration: none;
    transition: all 0.3s ease-in-out;
    display: inline-block;
    border: none;
}

.btn-email:hover {
    background-color: #563d7c;
}

/* Redes Sociales */
.redes-sociales {
    margin-top: 3rem;
}

.redes-sociales h3 {
    margin-bottom: 1.5rem;
    color: #023459;
}

.redes-icons {
    display: flex;
    justify-content: center;
    gap: 1.5rem;
    flex-wrap: wrap;
}

.redes-link {
    display: inline-block;
    transition: transform 0.3s ease;
}

.redes-link:hover {
    transform: scale(1.1);
}

.redes-link img {
    width: 40px;
    height: 40px;
}

/* ===========================
   RESPONSIVE
   =========================== */
@media (max-width: 992px) {
    .contacto {
        padding: 3rem 5%;
    }
    
    .contacto-grid {
        grid-template-columns: 1fr;
        max-width: 500px;
        margin: 0 auto 4rem;
    }
}

@media (max-width: 576px) {
    .contacto-header h2 {
        font-size: 2rem;
    }
    
    .redes-icons {
        gap: 1rem;
    }
    
    .redes-link img {
        width: 35px;
        height: 35px;
    }
}

:root {
  --azul-rey: #0033A0;
  --azul-claro: #3FA9F5;
  --blanco: #FFFFFF;
  --texto: #222;
  --max-width: 1200px;
  --radius: 10px;
  --trans: 0.35s cubic-bezier(.22, .9, .22, 1);
}

/* 🔹 SECCIÓN HERO */
.hero-pro {
  background: linear-gradient(to bottom, var(--azul-rey) 0%, var(--azul-claro) 75%, var(--blanco) 100%);
  color: var(--blanco);
  min-height: 85vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 3rem 1rem;
  position: relative;
  overflow: hidden;
}

/* 🔹 Contenedor principal */
.hero-container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  max-width: var(--max-width);
  width: 100%;
  gap: 3rem;
  align-items: center;
  z-index: 2;
  position: relative;
}

/* 🔹 Columna de texto */
.hero-text {
  animation: slideInLeft 1.2s ease forwards;
  opacity: 0;
}

/* 🔹 Títulos y texto */
.hero-tagline {
  display: inline-block;
  font-size: 0.95rem;
  background: rgba(255,255,255,0.15);
  padding: 0.4rem 0.8rem;
  border-radius: 20px;
  letter-spacing: 1px;
  margin-bottom: 1rem;
}

.hero-pro h1 {
  font-size: 2.8rem;
  margin-bottom: 1.2rem;
  line-height: 1.2;
  text-shadow: 0 3px 10px rgba(0,0,0,0.3);
}

.hero-desc {
  font-size: 1.1rem;
  line-height: 1.7;
  margin-bottom: 2rem;
  color: #f0f0f0;
}

/* 🔹 Botones */
.hero-buttons {
  display: flex;
  gap: 1rem;
  margin-bottom: 2rem;
  flex-wrap: wrap;
}

.btn {
  text-decoration: none;
  padding: 0.9rem 2rem;
  border-radius: var(--radius);
  font-weight: 600;
  transition: all var(--trans);
  font-size: 1rem;
}

.btn-primary {
  background: var(--blanco);
  color: var(--azul-rey);
  box-shadow: 0 5px 15px rgba(255,255,255,0.3);
}

.btn-primary:hover {
  background: var(--azul-claro);
  color: var(--blanco);
}

.btn-outline {
  border: 2px solid var(--blanco);
  color: var(--blanco);
}

.btn-outline:hover {
  background: var(--blanco);
  color: var(--azul-rey);
}

/* 🔹 Cobertura */
.hero-coverage {
  background: rgba(0, 51, 160, 0.5); /* azul translúcido */
  padding: 1rem 1.5rem;
  border-radius: var(--radius);
  font-size: 0.95rem;
  line-height: 1.5;
  border-left: 4px solid var(--azul-claro);
  text-align: left; /* mantenemos alineación a la izquierda */
}

.hero-coverage h4 {
  margin-bottom: 0.3rem;
  color: var(--azul-claro);
}

/* 🔹 Columna derecha */
.hero-media {
  position: relative;
  height: 100%;
  animation: slideInRight 1.4s ease forwards;
  opacity: 0;
}

.hero-media img,
.hero-media video {
  width: 100%;
  height: 100%;
  border-radius: var(--radius);
  object-fit: cover;
  box-shadow: 0 10px 25px rgba(0,0,0,0.25);
}

/* 🔹 Overlay decorativo */
.media-overlay {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at center, rgba(0,51,160,0.15), transparent 70%);
  border-radius: var(--radius);
  z-index: 1;
}

/* 🔹 Animaciones */
@keyframes slideInLeft {
  0% { opacity: 0; transform: translateX(-60px); }
  100% { opacity: 1; transform: translateX(0); }
}

@keyframes slideInRight {
  0% { opacity: 0; transform: translateX(60px); }
  100% { opacity: 1; transform: translateX(0); }
}

/* 🔹 RESPONSIVE */
@media (max-width: 992px) {
  .hero-container {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .hero-media {
    display: none; /* Imagen oculta en móvil */
  }

  .hero-pro h1 {
    font-size: 2.2rem;
  }

  .hero-desc {
    color: #fff; /* ✅ mantenemos blanco en móvil */
  }

  .hero-coverage {
    text-align: left; /* ✅ alinea a la izquierda también en móvil */
  }

  .hero-pro {
    background: linear-gradient(to bottom, var(--azul-rey) 0%, var(--azul-claro) 80%, var(--blanco) 100%);
  }
}


/* 🔹 FOOTER GENERAL */
.footer {
  color: var(--blanco);
  font-family: 'Poppins', sans-serif;
  width: 100%;
  margin: 0;
  padding: 0;
}

/* 🔹 PARTE SUPERIOR */
.footer-top {
  background: var(--azul-claro);
  padding: 1.8rem 1rem;
  width: 100%;
  border-top-left-radius: 14px;   /* 🔵 esquinas superiores */
  border-top-right-radius: 14px;
}

.footer-container {
  max-width: 100%; /* ✅ ocupa todo el ancho */
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
}

.footer-left h3 {
  font-size: 1.4rem;
  margin-bottom: 0.3rem;
  font-weight: 700;
}

.footer-left p {
  font-size: 1rem;
  opacity: 0.95;
}

.footer-right h4 {
  font-size: 1.1rem;
  margin-bottom: 0.3rem;
  font-weight: 600;
}

.footer-right p {
  margin: 0.2rem 0;
  font-size: 0.95rem;
}

.footer-right a {
  color: var(--blanco);
  text-decoration: none;
  transition: color 0.3s;
}

.footer-right a:hover {
  color: var(--azul-rey);
}

/* 🔹 PARTE INFERIOR */
.footer-bottom {
  background: var(--azul-rey);
  text-align: center;
  padding: 0.8rem 0.5rem;
  font-size: 0.85rem;
  line-height: 1.4;
  border-bottom-left-radius: 14px;  /* 🔵 esquinas inferiores */
  border-bottom-right-radius: 14px;
}


.footer-bottom .powered {
  font-size: 0.8rem;
  opacity: 0.85;
}

.footer-bottom a {
  color: var(--blanco);
  font-weight: 600;
  text-decoration: none;
}

.footer-bottom a:hover {
  color: var(--azul-claro);
}

/* 🔹 RESPONSIVE */
@media (max-width: 768px) {
  .footer-container {
    flex-direction: column;
    text-align: center;
  }

  .footer-left, .footer-right {
    width: 100%;
  }

  .footer-left h3 {
    font-size: 1.3rem;
  }

  .footer-right h4 {
    font-size: 1rem;
  }
}

/* 🔹 FOOTER GENERAL2 */

.footer2 {
  color: var(--blanco);
  font-family: 'Poppins', sans-serif;
  width: 100%;
  margin: 0;
  padding: 0;
}

/* 🔹 PARTE SUPERIOR */

.footer-top2 {
  background: var(--azul-claro);
  padding: 1.8rem 2rem; 
  width: 100%;
  margin-top: 100px;
}

/* 🔹 Contenedor interior centrado */
.footer-container2 {
  max-width: 1100px;       /* ancho máximo de contenido */
  margin: 0 auto;          /* centra horizontalmente */
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 2rem;
}

.footer-left2 h3 {
  font-size: 1.4rem;
  margin-bottom: 0.3rem;
  font-weight: 700;
}

.footer-left2 p {
  font-size: 1rem;
  opacity: 0.95;
}

.footer-right2 h4 {
  font-size: 1.1rem;
  margin-bottom: 0.3rem;
  font-weight: 600;
}

.footer-right2 p {
  margin: 0.2rem 0;
  font-size: 0.95rem;
}

.footer-right2 a {
  color: var(--blanco);
  text-decoration: none;
  transition: color 0.3s;
}

.footer-right2 a:hover {
  color: var(--azul-rey);
}

/* 🔹 PARTE INFERIOR */
.footer-bottom2 {
  background: var(--azul-rey);
  text-align: center;
  padding: 0.8rem 0.5rem;
  font-size: 0.85rem;
  line-height: 1.4;
}


.footer-bottom2 .powered {
  font-size: 0.8rem;
  opacity: 0.85;
}

.footer-bottom2 a {
  color: var(--blanco);
  font-weight: 600;
  text-decoration: none;
}

.footer-bottom2 a:hover {
  color: var(--azul-claro);
}

/* 🔹 RESPONSIVE */
@media (max-width: 768px) {
  .footer-container2 {
    flex-direction: column;
    text-align: center;
  }

  .footer-left2, .footer-right2 {
    width: 100%;
  }

  .footer-left2 h3 {
    font-size: 1.3rem;
  }

  .footer-right2 h4 {
    font-size: 1rem;
  }
}

/* Media queries para móvil */
@media (max-width: 768px) {
  
  #modalImage {
    max-height: 25vh; width: fit-content;
  }

}