/* ==========================================================
   PAGES.CSS – ORDENADO (SALUDANIMAL CASABLANCA)
   ----------------------------------------------------------
   1) HEROES (Instalaciones / Quiénes somos)
   2) INSTALACIONES (grid + cards + lightbox)
   3) SOBRE NOSOTROS (grid + imagen)
   4) VALORES (cards)S
   5) EQUIPO (grid básico)
   6) SERVICIOS (cards premium)
   7) ANIMACIONES (fade-in)
   8) CONTACTO (grid + formulario)
   9) INFO + HORARIO (sección completa)
   10) COMUNIDAD (texto + imagen)
   ========================================================== */


/* ==========================================================
   1) HEROES
========================================================== */

/* ==========================================================
   HEROES (variantes de imagen)
   - Se usan con: <section class="hero hero-xxxx">
   - La clase .hero (estructura/overlay/tipografía) ya está definida
     en tu CSS base (style.css / components.css)
========================================================== */

/* ---------- HERO QUIÉNES SOMOS (imagen diferente) ---------- */
.hero-quienes{
  background-image: url("../img/hero/quienes-somos.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

/* ---------- HERO INSTALACIONES (imagen diferente) ---------- */
.hero-instalaciones{
  background-image: url("../img/hero/instalaciones-hero.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

/* ==========================================================
   (OPCIONAL) Si NO usas page-hero en ninguna página,
   puedes borrar estos estilos antiguos para evitar conflictos:

   .page-hero { ... }
   .page-hero-instalaciones { ... }

   Si prefieres no borrarlos todavía, déjalos comentados.
========================================================== */

/* ==========================================================
   INTRO INSTALACIONES (estilo hero)
========================================================== */

.instalaciones-intro{
  padding: 120px 0 80px;
  text-align: center;
}

.instalaciones-intro .container{
  max-width: 900px;
  margin: 0 auto;
}

.instalaciones-intro h2{
  margin-bottom: 22px;
  font-family: 'Nunito', sans-serif;
  font-weight: 800;

  font-size: clamp(28px, 3.2vw, 46px);
  line-height: 1.1;
}

.instalaciones-intro p{
  font-family: 'Nunito', sans-serif;
  font-weight: 400;

  font-size: clamp(16px, 1.2vw, 20px);
  line-height: 1.6;

  color: rgba(17,24,39,0.75);
}


/* Promo ocupando columna 1 y 2 */
.promo-wrap-left{
  grid-column: 1 / 3;   /* ocupa col 1 y 2 */
  align-self: stretch;
}

.promo-wrap-left .promo-inner{
    max-width: 100%;
  margin: 0;

  display: grid;
  grid-template-columns: 1.10fr 0.60fr;
  gap: 8px;
  align-items: center;
}


.promo-wrap-left .promo-hero-img{
  width: 280px;
  max-width: 100%;
  right: 290px;
}

.promo-wrap-left .promo-left{
  position: relative;
  z-index: 2;
  left: 0px;
}



/* =========================
   PROMO BLOCK (flotante, sin cápsula)
   - Ocupa 2 columnas en tu grid de instalaciones
   - Imagen compuesta a la derecha (sin burbujas CSS)
   - Texto con estilo (título + highlight + botón)
========================= */

/* Wrapper en tu grid 3 columnas: ocupa col 2 y 3 */
.promo-wrap{
  grid-column: 2 / 4;
  align-self: stretch;
}

/* Bloque libre */
.promo-block{
  padding: 0;
  background: transparent;
  overflow: visible;
}

/* Layout interno (2 columnas: texto / imagen) */
.promo-inner{
  max-width: 100%;
  margin: 0;

  display: grid;
  grid-template-columns: 1.15fr 0.90fr;
  gap: 18px;
  align-items: center;
}

/* =========================
   IZQUIERDA (TEXTO)
========================= */

.promo-left{
  position: relative;
  z-index: 2; /* por encima de la imagen si se acercan */
  left: 90px;
}

.promo-title{
  font-size: clamp(28px, 3.6vw, 66px);
  line-height: 1.02;
  letter-spacing: -0.02em;
  margin: 0 0 16px 100px;
  color: #2f2f2f;
  font-weight: 800;
}

.promo-title .hl{
  background: #0ea5a4;
  color: #fff;
  padding: 6px 12px;
  border-radius: 10px;
  display: inline-block;
  transform: translateY(-2px);
  
}

.promo-sub{
  margin: 0 0 22px 100px;
  color: #8a8a8a;
  font-size: 18px;
  line-height: 1.6;
}

.promo-btn{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 16px 100px;
  background: #0ea5a4;
  color: #fff;
  text-decoration: none;
  font-weight: 800;
  letter-spacing: .2px;

  padding: 14px 26px;
  border-radius: 8px;

  box-shadow: 0 14px 28px rgba(255,74,61,.22);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}

.promo-btn:hover{
  transform: translateY(-2px);
  box-shadow: 0 18px 34px rgba(255,74,61,.28);
  filter: brightness(1.02);
}

.promo-btn:active{
  transform: translateY(0);
}

.promo-btn .paw{
  font-size: 18px;
}

/* =========================
   DERECHA (IMAGEN + DECOS)
========================= */

.promo-right{
  position: relative;
  min-height: 420px;  /* importante para que “quepa” la composición */
  overflow: visible;
  z-index: 1;
}

/* Imagen compuesta (la generada por IA) */
.promo-hero-img{
  position: absolute;
  right: 90px;
  bottom: 0;

  width: min(520px, 100%);
  height: auto;
  display: block;
}

/* Estrellitas decorativas */
.promo-sparkle{
  position: absolute;
  color: #0ea5a4;
  font-size: 22px;
  opacity: .9;
  text-shadow: 0 10px 18px rgba(0,0,0,.08);
  z-index: 2;
  pointer-events: none;
}

.promo-sparkle.s1{
  right: 105px;
  top: 105px;
  transform: rotate(12deg);
}

.promo-sparkle.s2{
  right: 58px;
  top: 165px;
  font-size: 18px;
  transform: rotate(-8deg);
  opacity: .75;
}

/* Corazón doodle */
.promo-heart{
  position: absolute;
  left: 140px;
  bottom: 70px;

  font-size: 44px;
  color: #0ea5a4;
  transform: rotate(-10deg);
  opacity: .95;

  z-index: 2;
  pointer-events: none;
}

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

@media (max-width: 1100px){
  .promo-inner{
    grid-template-columns: 1.2fr 0.8fr;
    gap: 22px;
  }

  .promo-right{
    min-height: 380px;
  }

  .promo-hero-img{
    width: min(480px, 100%);
  }

  .promo-heart{
    left: 110px;
    bottom: 55px;
  }

  .promo-sparkle.s1{ right: 90px; top: 95px; }
  .promo-sparkle.s2{ right: 50px; top: 150px; }
}

@media (max-width: 900px){
  /* Si tu grid de instalaciones baja a 1 columna, el promo ocupa todo */
  .promo-wrap{
    grid-column: 1 / -1;
  }

  .promo-inner{
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .promo-right{
    min-height: 360px;
  }

  /* centra imagen en móvil */
  .promo-hero-img{
    right: 50%;
    transform: translateX(50%);
    width: min(520px, 95%);
  }

  .promo-heart{
    left: 35px;
    bottom: 35px;
    font-size: 40px;
  }

  .promo-sparkle.s1{ right: 70px; top: 95px; }
  .promo-sparkle.s2{ right: 40px; top: 150px; }
}



/* =========================
   INSTALACIONES – CONTEXTO VISUAL
========================= */

.instalacion-tag{
  display: inline-block;
  margin-bottom: 18px;
  padding: 6px 18px;

  font-family: 'Nunito', sans-serif;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.4px;

  border-radius: 9px;
  background: rgba(141,217,233,0.20);
  color: rgba(17,24,39,0.85);
  border: 1px solid rgba(141,217,233,0.50);
}

.instalacion-content h3{
  display: flex;
  align-items: center;
  gap: 10px;
}




/* ==========================================================
   2) INSTALACIONES (ESTILO HERO + MÁS ANCHO)
========================================================== */

.instalaciones-section{
  padding: 100px 0;
}

/* Grid más ancho, similar sensación al hero */
.instalaciones-grid{
  display: grid;
   grid-template-columns: repeat(3, 2fr); /* 3 columnas exactas */
  gap: 60px;
   row-gap: 120px;
  width: 90%;
  max-width: 1700px;
  margin: 0 auto;
  padding: 0 30px; /* mismo aire lateral que el hero */
}

/* Card contenedor sin fondo */
.instalacion-card{
  background: transparent;
  box-shadow: none;
  border-radius: 0;
  overflow: visible;
  transition: transform 0.3s ease;
}

.instalacion-card:hover{
  transform: translateY(-8px);
}

/* Cápsula SOLO imagen */
.instalacion-card .lightbox-link{
  display: block;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 20px 50px rgba(0,0,0,0.10);
  transition: box-shadow 0.3s ease;
}

.instalacion-card:hover .lightbox-link{
  box-shadow: 0 28px 65px rgba(0,0,0,0.14);
}

.instalacion-card img{
  width: 100%;
  height: 310px;   /* más grandes */
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}

.instalacion-card:hover img{
  transform: scale(1.04);
}

/* =========================
   INSTALACIONES – TIPOGRAFÍA HERO (más sutil)
========================= */

.instalacion-content{
  margin-top: 18px;
}

/* Título */
.instalacion-content h3{
  margin: 0 0 10px;
  font-family: 'Nunito', sans-serif;
  font-weight: 800;

  font-size: clamp(20px, 1.8vw, 26px);
  line-height: 1.15;
}

/* Descripción */
.instalacion-content p{
  margin: 0;
  font-family: 'Nunito', sans-serif;
  font-weight: 400;

  font-size: clamp(15px, 1.05vw, 17px);
  line-height: 1.6;
  max-width: 580px;

  color: rgba(17,24,39,0.72);
}


/* ================= LIGHTBOX (sin cambios estructurales) ================= */

.lightbox{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.85);
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
  z-index: 9999;
}

.lightbox.open{ display: flex; }

.lightbox-figure{
  max-width: min(1200px, 94vw);
  max-height: 85vh;
  display: flex;
  flex-direction: column;
  gap: 14px;
  align-items: center;
}

.lightbox img{
  max-width: 100%;
  max-height: 78vh;
  border-radius: 10px;
  box-shadow: 0 25px 70px rgba(0,0,0,0.45);
}

.lightbox figcaption{
  color: #f3f4f6;
  font-weight: 700;
  text-align: center;
}

.lightbox-close{
  position: absolute;
  top: 20px;
  right: 20px;
  width: 46px;
  height: 46px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.25);
  background: rgba(255,255,255,0.12);
  color: #fff;
  cursor: pointer;
  font-size: 18px;
  font-weight: 900;
}

.lightbox-nav{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 52px;
  height: 52px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.25);
  background: rgba(255,255,255,0.12);
  color: #fff;
  cursor: pointer;
  font-size: 28px;
  font-weight: 900;
}

.lightbox-nav.prev{ left: 20px; }
.lightbox-nav.next{ right: 20px; }

@media (max-width: 900px){
  .instalaciones-grid{
    padding: 0 30px;
    gap: 40px;
  }

  .instalacion-card img{
    height: 320px;
  }
}

@media (max-width: 600px){
  .instalaciones-grid{
    padding: 0 20px;
  }

  .instalacion-card img{
    height: 280px;
  }

  .lightbox-nav{ display: none; }
}



/* ==========================================================
   3) SOBRE NOSOTROS
========================================================== */

.sobre-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
  align-items: center;
}

.sobre-imagen img{
  width: 100%;
  border-radius: 18px;
  box-shadow: 0 15px 35px rgba(0,0,0,0.1);
}

@media (max-width: 900px){
  .sobre-grid{
    grid-template-columns: 1fr;
  }
}



/* ==========================================================
   4) VALORES
========================================================== */

.valores-section{
  padding: 100px 20px;
  background: #f8fafc;
}

.valores-section h2{
  font-family: 'Nunito', sans-serif;
  font-weight: 800;
  font-size: clamp(32px, 4vw, 48px);
  margin-bottom: 10px;
  color: #1f2937;
}

.valores-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 35px;
  margin-top: 50px;
}

.valor-card{
  background: #ffffff;
  padding: 35px 28px;
  border-radius: 20px;
  box-shadow: 0 12px 28px rgba(0,0,0,0.06);
  transition: transform .35s ease, box-shadow .35s ease;
  text-align: center;
  position: relative;
}

.valor-card:hover{
  transform: translateY(-6px);
  box-shadow: 0 18px 40px rgba(0,0,0,0.10);
}

.valor-card h3{
  margin: 10px 0;
  font-weight: 800;
  font-size: 20px;
  color: #138a98;
}

.valor-card p{
  margin: 0;
  color: #6b7280;
  font-size: 16px;
  line-height: 1.6;
}

.valor-card::after{
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 40px;
  height: 4px;
  border-radius: 999px;
  background: rgba(13,110,253,0.2);
}

.valor-icon{
  font-size: 34px;
  width: 64px;
  height: 64px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 16px;
  background: #f1f5f9;
  border-radius: 50%;
}


/* ==========================================================
   SECCIÓN EQUIPO – Estilo elegante informal (con label + name)
   (ESTE es el diseño bueno. No lo mezcles con un "equipo-grid básico")
========================================================== */

.equipo{
  padding: 110px 20px;
  background: #f4f6f8;
  font-family: 'Nunito', sans-serif;
}

/* Intro */
.equipo-intro{
  text-align: center;
  max-width: 800px;
  margin: 0 auto 70px auto;
}

.equipo-intro h2{
  font-size: clamp(38px, 4.8vw, 56px);
  margin-bottom: 18px;
  color: #3b3b3b;
  font-weight: 800;
  letter-spacing: -0.02em;
}

.equipo-intro p{
  font-size: 20px;
  line-height: 1.6;
  color: #8a8a8a;
}

/* GRID (2 columnas en desktop) */
.equipo-grid{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 60px;
  max-width: 1100px;
  margin: 0 auto;
}

/* CARD (contenedor, NO tarjeta blanca con padding) */
.equipo-card{
  display: flex;
  flex-direction: column;
}

/* Imagen */
.equipo-img{
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  background: #e9eef3;
}

.equipo-img img{
  width: 100%;
  height: 520px;
  object-fit: cover;
  display: block;
  transition: transform 0.45s ease;
}

/* Hover suave */
.equipo-card:hover .equipo-img img{
  transform: scale(1.03);
}

/* Especialización (pastilla blanca) */
.equipo-label{
  position: absolute;
  bottom: 85px;
  left: 50%;
  transform: translateX(-50%);

  background: #ffffff;
  padding: 7px 15px;
  border-radius: 4px;

  font-weight: 800;
  font-size: 16px;
  line-height: 1;

  color: #138a98;
  box-shadow: 0 6px 18px rgba(0,0,0,0.10);
  white-space: nowrap;
}

/* Nombre (bloque azul) */
.equipo-name{
  position: absolute;
  bottom: 28px;
  left: 50%;
  transform: translateX(-50%);

  background: #138a98;
  color: #ffffff;

  padding: 10px 20px;
  border-radius: 4px;

  font-weight: 800;
  font-size: 28px;
  line-height: 1;

  box-shadow: 0 10px 24px rgba(0,0,0,0.16);
  white-space: nowrap;
}

/* Info */
.equipo-info{
  margin-top: 22px;
  padding: 0 4px;
}

/* Lista por apartados */
.equipo-lista{
  list-style: none;
  margin: 0;
  padding: 18px 18px;

  background: rgba(255,255,255,0.85);
  border-radius: 14px;

  box-shadow: 0 10px 24px rgba(0,0,0,0.06);
  border: 1px solid rgba(13,110,253,0.10);
}

.equipo-lista li{
  position: relative;
  padding: 12px 12px 12px 34px;

  font-size: 16px;
  line-height: 1.65;
  color: #4b5563;
}

.equipo-lista li + li{
  border-top: 1px solid rgba(17,24,39,0.08);
}

.equipo-lista li::before{
  content: "";
  position: absolute;
  left: 12px;
  top: 18px;

  width: 10px;
  height: 10px;
  border-radius: 999px;

  background: #138a98;
  box-shadow: 0 0 0 4px rgba(13,110,253,0.15);
}

/* Punto final destacado */
.equipo-lista .equipo-areas{
  background: rgba(13,110,253,0.06);
  border-radius: 12px;
  margin-top: 12px;
  border-top: none;
}

.equipo-lista .equipo-areas::before{
  top: 18px;
  box-shadow: 0 0 0 4px rgba(13,110,253,0.20);
}

.equipo-lista strong{
  color: #1f2937;
  font-weight: 800;
}

/* RESPONSIVE */
@media (max-width: 900px){
  .equipo-grid{
    grid-template-columns: 1fr;
    gap: 50px;
  }

  .equipo-img img{
    height: 420px;
  }

  .equipo-name{
    font-size: 24px;
    padding: 12px 24px;
  }

  .equipo-label{
    bottom: 86px;
    font-size: 15px;
    padding: 8px 18px;
  }
}

@media (max-width: 520px){
  .equipo-label,
  .equipo-name{
    white-space: normal;
    text-align: center;
    width: calc(100% - 40px);
  }

  .equipo-label{
    bottom: 92px;
  }
}


/* ==========================================================
   6) SERVICIOS (CARDS PREMIUM)
========================================================== */

.servicios-section{
  background: linear-gradient(to bottom, #f8fafc, #ffffff);
}

.servicios-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 30px;
}

.servicio-card{
  background: white;
  padding: 35px 30px;
  border-radius: 22px;
  box-shadow: 0 20px 45px rgba(0,0,0,0.08);
  transition: all 0.35s ease;
  position: relative;
  overflow: hidden;
}

.servicio-card::before{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(14,165,164,0.08), transparent);
  opacity: 0;
  transition: opacity 0.3s ease;
}

.servicio-card:hover::before{
  opacity: 1;
}

.servicio-card:hover{
  transform: translateY(-8px);
  box-shadow: 0 25px 60px rgba(14,165,164,0.25);
}

.servicio-icon{
  font-size: 36px;
  margin-bottom: 18px;
  background: rgba(14,165,164,0.1);
  width: 70px;
  height: 70px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 18px;
}



/* ==========================================================
   7) ANIMACIONES (FADE-IN)
========================================================== */

.fade-in{
  opacity: 0;
  transform: translateY(40px);
  transition: all 0.8s ease;
  transition-delay: var(--delay);
}

.fade-in.visible{
  opacity: 1;
  transform: translateY(0);
}



/* ==========================================================
   8) CONTACTO (GRID + FORM)
========================================================== */

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

.contacto-info h2,
.contacto-form h2{
  margin-bottom: 25px;
}

.contacto-item{
  margin-bottom: 25px;
}

.contacto-item h3{
  font-size: 16px;
  margin-bottom: 6px;
}

/* Formulario */
.form-group{
  margin-bottom: 20px;
}

.form-group label{
  display: block;
  margin-bottom: 6px;
  font-weight: 600;
}

.form-group input,
.form-group textarea{
  width: 100%;
  padding: 12px;
  border-radius: 12px;
  border: 1px solid #e5e7eb;
  font-size: 14px;
  transition: border 0.2s ease, box-shadow 0.2s ease;
}

.form-group input:focus,
.form-group textarea:focus{
  outline: none;
  border-color: #0ea5a4;
  box-shadow: 0 0 0 3px rgba(14,165,164,0.15);
}

@media (max-width: 900px){
  .contacto-grid{
    grid-template-columns: 1fr;
  }
}



/* ==========================================================
   9) INFO + HORARIO (SECCIÓN COMPLETA)
========================================================== */

.info-horario{
  padding: 150px 0px 150px 0px;
  background: #ffffff;
}

.info-horario-wrap{
  display: grid;
  grid-template-columns: 1.6fr 1fr;
  gap: 40px;
  align-items: start;
}

/* Fotos arriba */
.info-photos{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
  margin-bottom: 26px;
}

.photo-card{
  border-radius: 14px;
  overflow: hidden;
  background: #f3f4f6;
  box-shadow: 0 18px 35px rgba(0,0,0,0.12);
  position: relative;
  aspect-ratio: 16 / 9;
}

.photo-card img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Polaroid decorativo */
.photo-1 .polaroid{
  position: absolute;
  left: 16px;
  top: 14px;
  width: 120px;
  height: 140px;
  border: 6px solid #fff;
  border-bottom-width: 22px;
  border-radius: 6px;
  transform: rotate(-12deg);
  box-shadow: 0 18px 35px rgba(0,0,0,0.18);
  pointer-events: none;
  opacity: .95;
}

/* Contenido + checks */
.info-content{
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 30px;
  align-items: start;
}

.info-text h2{
  margin: 0 0 14px;
  font-size: clamp(22px, 2.4vw, 34px);
  line-height: 1.15;
  color: #111827;
  font-weight: 800;
}

.info-text p{
  margin: 0 0 18px;
  color: #6b7280;
  line-height: 1.7;
  font-size: 16px;
}

.info-link{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-weight: 800;
  color: #0ea5b7;
  text-decoration: none;
}

.info-link:hover{
  text-decoration: underline;
}

/* Checks */
.info-checks{
  list-style: none;
  margin: 6px 0 0;
  padding: 0;
  display: grid;
  gap: 12px;
  color: #374151;
  font-weight: 600;
}

.info-checks li{
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 16px;
}

.info-checks .check{
  width: 22px;
  height: 22px;
  border-radius: 6px;
  display: grid;
  place-items: center;
  background: rgba(14,165,183,.14);
  color: #0ea5b7;
  font-weight: 900;
  flex: 0 0 22px;
}

/* Tarjeta horario */
.hours-card{
  border-radius: 16px;
  background: #f6f2ea;
  box-shadow: 0 18px 40px rgba(0,0,0,0.10);
  padding: 34px 30px;
  position: relative;
  overflow: hidden;
}

.hours-card::before{
  content:"";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 20% 10%, rgba(0,0,0,0.05), transparent 55%),
    radial-gradient(circle at 80% 30%, rgba(0,0,0,0.04), transparent 55%),
    radial-gradient(circle at 30% 85%, rgba(0,0,0,0.03), transparent 60%);
  opacity: .55;
  pointer-events: none;
}

.hours-card > *{ position: relative; }

.hours-card h3{
  margin: 0 0 12px;
  font-size: 34px;
  line-height: 1.05;
  font-weight: 900;
  color: #111827;
}

.hours-note{
  margin: 0 0 22px;
  color: #6b7280;
  line-height: 1.7;
  font-size: 15px;
}

.hours-list{
  display: grid;
  gap: 14px;
  margin-bottom: 26px;
}

.hours-row{
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: baseline;
  gap: 18px;
  padding-bottom: 10px;
  border-bottom: 1px dashed rgba(17,24,39,0.18);
}

.hours-left strong{
  display: block;
  font-weight: 800;
  color: #374151;
}

.hours-left span{
  display: block;
  color: #6b7280;
  margin-top: 2px;
  font-size: 14px;
}

.hours-right{
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  color: #ef4444;
  font-weight: 900;
  letter-spacing: .5px;
  white-space: nowrap;
}

.hours-right.is-closed{
  color: #ef4444;
}

.hours-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 220px;
  height: 56px;
  border-radius: 10px;
  background: #0f7b86;
  color: #fff;
  font-weight: 900;
  text-decoration: none;
  box-shadow: 0 16px 30px rgba(15,123,134,0.28);
}

.hours-btn:hover{
  filter: brightness(1.05);
}

/* Responsive info/horario */
@media (max-width: 980px){
  .info-horario-wrap{
    grid-template-columns: 1fr;
  }
  .hours-card{
    max-width: 520px;
    margin: 0 auto;
  }
}

@media (max-width: 700px){
  .info-content{
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .photo-1 .polaroid{
    width: 92px;
    height: 110px;
    border-width: 5px;
    border-bottom-width: 18px;
  }
}



/* ==========================================================
   10) COMUNIDAD
========================================================== */

.comunidad-section{
  padding: 110px 20px;
  background: #ffffff;
}

.comunidad-section h2{
  font-family: 'Nunito', sans-serif;
  font-weight: 800;
  font-size: clamp(32px, 4vw, 48px);
  margin-bottom: 20px;
  color: #1f2937;
}

.comunidad-texto{
  max-width: 750px;
  margin: 0 auto 50px auto;
  font-size: 18px;
  line-height: 1.7;
  color: #6b7280;
}

.comunidad-imagen{
  max-width: 1000px;
  margin: 0 auto;
}

.comunidad-imagen img{
  width: 100%;
  height: auto;
  border-radius: 20px;
  box-shadow: 0 20px 45px rgba(0,0,0,0.12);
  transition: transform 0.4s ease;
}

.comunidad-imagen img:hover{
  transform: scale(1.02);
}

@media (max-width: 768px){
  .comunidad-texto{
    font-size: 16px;
  }
}


/* =========================
   SECCIÓN MARCAS
========================= */

.brands-section{
  width: 100%;
  background: #c9a7bb;
  padding: 160px 0;
  margin-top: 100px;

}


.brands-container{
  max-width: 1600px;
  margin: 0 auto;

  display: flex;
  align-items: center;
  justify-content: center;   /* ← centrado real */

  gap: 120px;   /* ← mismo espacio entre todas */

  padding: 0 80px;
}


/* Logos */
.brands-container img{
  max-height: 100px;
  width: auto;
  opacity: 0.8;
  filter: grayscale(100%);
  transition: all .3s ease;
}

.brands-container img:hover{
  opacity: 1;
  filter: grayscale(0%);
  transform: scale(1.05);
}


@media (max-width: 900px){
  .brands-container{
    flex-wrap: wrap;
    justify-content: center;
    gap: 40px;
  }

  .brands-container img{
    max-height: 45px;
  }
}


/* =========================
   CABECERA MARCAS
========================= */

.section-head{
  padding: 80px 20px;
  font-family: 'Nunito', sans-serif;  /* ← tipografía */
}

.section-head .container{
  max-width: 980px;
  margin: 0 auto;
  text-align: center;
}

.section-title{
  font-family: 'Nunito', sans-serif;
  font-weight: 800;

  font-size: clamp(34px, 4.6vw, 72px);
  line-height: 1.05;
  letter-spacing: -0.02em;

  color: #2f2f2f;
  margin: 0 0 22px;
}

.section-subtitle{
  font-family: 'Nunito', sans-serif;
  font-weight: 400;

  max-width: 860px;
  margin: 0 auto;

  font-size: 20px;
  line-height: 1.75;
  color: #8a8a8a;
}


/* ==========================================================
   RESPONSIVE – Instalaciones + Promos + Marcas
   (pegar al FINAL de pages.css)
========================================================== */

/* ---------- Tablet (<= 1100px) ---------- */
@media (max-width: 1100px){

  /* Grid instalaciones: 2 columnas */
  .instalaciones-grid{
    grid-template-columns: repeat(2, 1fr);
    column-gap: 40px;
    row-gap: 80px;
    width: 92%;
    padding: 0 24px;
  }

  /* Promos: que ocupen ancho completo en grid 2 cols */
  .promo-wrap,
  .promo-wrap-left{
    grid-column: 1 / -1;
  }

  /* Promo: baja un poco tamaños */
  .promo-right{ min-height: 360px; }

  .promo-hero-img{
    right: 20px;              /* evita desbordes */
    width: min(460px, 100%);
  }

  /* Quita desplazamientos duros */
  .promo-left{ left: 0; }
  .promo-title,
  .promo-sub,
  .promo-btn{
    margin-left: 0;
  }
}


/* ---------- Móvil (<= 900px) ---------- */
@media (max-width: 900px){

  /* Grid instalaciones: 1 columna */
  .instalaciones-grid{
    grid-template-columns: 1fr;
    width: 94%;
    padding: 0 18px;

    column-gap: 0;
    row-gap: 70px;     /* ritmo vertical */
  }

  /* Cards: imagen un poco más baja para móvil */
  .instalacion-card img{
    height: 280px;
  }

  /* Promos: 1 columna y centrado visual */
  .promo-wrap,
  .promo-wrap-left{
    grid-column: 1 / -1;
  }

  .promo-inner,
  .promo-wrap-left .promo-inner{
    grid-template-columns: 1fr;
    gap: 16px;
  }

  /* Texto promo: sin offsets ni márgenes raros */
  .promo-left,
  .promo-wrap-left .promo-left{
    left: 0;
    padding-left: 0;
    text-align: left;
  }

  .promo-title,
  .promo-sub,
  .promo-btn{
    margin-left: 0;
  }

  /* Imagen promo: centrada */
  .promo-right{
    min-height: 320px;
  }

  .promo-hero-img{
    right: 50%;
    transform: translateX(50%);
    width: min(420px, 92%);
  }

  /* Decos: reajuste para que no se vayan fuera */
  .promo-sparkle.s1{ right: 60px; top: 75px; }
  .promo-sparkle.s2{ right: 35px; top: 125px; }
  .promo-heart{ left: 22px; bottom: 22px; font-size: 38px; }

  /* Promo perro (wrap-left): NO uses right fijo */
  .promo-wrap-left .promo-hero-img{
    width: min(360px, 92%);
    right: 50%;
  }

  /* Marcas: wrap y centrado */
  .brands-container{
    flex-wrap: wrap;
    justify-content: center;
    gap: 34px;
    padding: 0 18px;
  }

  .brands-container img{
    max-height: 52px;
  }
}


/* ---------- Móvil pequeño (<= 600px) ---------- */
@media (max-width: 600px){

  .instalaciones-grid{
    width: 96%;
    padding: 0 14px;
    row-gap: 60px;
  }

  .instalacion-card img{
    height: 250px;
  }

  .promo-right{
    min-height: 300px;
  }

  .promo-hero-img{
    width: min(360px, 95%);
  }

  .brands-section{
    padding: 120px 0; /* menos alto en móvil pequeño */
  }

  .brands-container img{
    max-height: 46px;
  }
}


/* ---------- HERO SERVICIOS (imagen diferente) ---------- */
.hero-servicios{
  background-image: url("../img/hero/servicios-hero.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

/* ===============================
   HERO – Tipografía consistente
================================= */

.hero h1{
  font-size: 48px;
  font-weight: 700;
  line-height: 1.2;
}

.hero p{
  font-size: 20px;
  font-weight: 400;
  margin-top: 20px;
  max-width: 650px;
}


/* ===============================
   HERO – Título principal
================================= */

.hero h1,
.page-hero h1{
  font-size: 64px;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.5px;
}

/* -------- TABLET -------- */
@media (max-width: 1024px){
  .hero h1,
  .page-hero h1{
    font-size: 48px;
    font-weight: 800;
    line-height: 1.15;
  }
}

/* -------- MÓVIL -------- */
@media (max-width: 768px){
  .hero h1,
  .page-hero h1{
    font-size: 34px;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -0.2px;
  }
}

/* =========================================
   SERVICIOS PRO (banner + cards montadas)
========================================= */

.servicios-pro{
  padding: 90px 0;
}

.servicios-pro-title{
  text-align: center;
  font-weight: 800;
  margin-bottom: 28px;
}

/* Contenedor del bloque */
.servicios-bloque-pro{
  --radius: 7px;
  --bannerH: 380px;     /* altura del banner (más ancho visual) */
  --overlap: 60px;      /* cuánto montan las cards sobre el banner */
  margin: 44px 0;
}

/* Banner (imagen grande) */
.servicios-banner{
  height: var(--bannerH);
  border-radius: var(--radius);
  background-image: var(--bg);
  background-size: cover;
  background-position: center;
  position: relative;
  overflow: hidden;
}

/* Overlay suave (para estética) */
.servicios-banner::before{
  content:"";
  position:absolute;
  inset:0;
  background: rgba(0,0,0,0.18);
}

/* Grid de cards */
.servicios-cards-pro{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  justify-items: center;

  /* 👇 esto crea el efecto “tapan un poco” */
  margin-top: calc(var(--overlap) * -1);
  padding: 0 14px;
}

/* Variante para 2 cards centradas */
.servicios-cards-pro--2{
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 860px;
  margin-left: auto;
  margin-right: auto;
}

/* Card: más estrecha y más alta */
.servicio-card-pro{
  width: min(320px, 100%);   /* estrechas */
  min-height: 260px;         /* alargadas */
  background: rgba(255,255,255,0.96);
  border-radius: 10px;
  padding: 34px 22px 22px;
  box-shadow: 0 18px 38px rgba(0,0,0,0.14);
  position: relative;
  text-align: center;
}

/* Icono “badge” arriba-centro (flotante) */
.servicio-badge{
  position: absolute;
  left: 50%;
  top: 0;
  transform: translate(-50%, -50%);

  width: 52px;
  height: 52px;
  border-radius: 12px;
  background: #0b1220;
  color: #fff;

  display: grid;
  place-items: center;

  font-size: 22px;
  box-shadow: 0 12px 24px rgba(0,0,0,0.22);
}

/* Texto */
.servicio-card-pro h3{
  margin-top: 10px; /* ya dejamos hueco por el badge */
  font-size: 18px;
  font-weight: 800;
}

.servicio-card-pro p{
  margin-top: 12px;
  font-size: 15px;
  line-height: 1.6;
  color: rgba(17,24,39,0.75);
}

/* Hover sutil premium */
.servicio-card-pro:hover{
  transform: translateY(-6px);
  transition: transform .25s ease, box-shadow .25s ease;
  box-shadow: 0 24px 48px rgba(0,0,0,0.18);
}

/* Tablet */
@media (max-width: 1024px){
  .servicios-cards-pro{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .servicios-bloque-pro{
    --bannerH: 260px;
    --overlap: 54px;
  }
}

/* Móvil */
@media (max-width: 768px){
  .servicios-cards-pro{
    grid-template-columns: 1fr;
    margin-top: -42px;
  }
  .servicios-cards-pro--2{
    grid-template-columns: 1fr;
  }
  .servicios-bloque-pro{
    --bannerH: 220px;
    --overlap: 46px;
  }
  .servicio-card-pro{
    width: min(360px, 100%);
  }
}


.servicios-intro{
  max-width: 720px;
  margin: 60px auto 20px;
  text-align: center;
}

.servicios-intro h3{
  font-size: 26px;
  font-weight: 800;
  margin-bottom: 12px;
}

.servicios-intro p{
  font-size: 16px;
  line-height: 1.6;
  color: rgba(17,24,39,0.75);
}

/* =========================================
   TEXTOS TIPO HERO (para Servicios)
========================================= */

.hero-like{
  max-width: 860px;          /* similar al ancho de lectura del hero */
  margin: 70px auto 22px;    /* separación elegante antes del bloque */
  text-align: center;        /* si tu hero va centrado */
}

/* Si tu hero va a la izquierda, usa esto en vez de center:
.hero-like{ text-align:left; margin:70px 0 22px; }
*/

.hero-like-title{
  font-size: 46px;           /* similar al h1/hero pero un paso menos */
  font-weight: 800;
  line-height: 1.12;
  letter-spacing: -0.5px;
  margin: 0;
}

.hero-like-text{
  margin-top: 18px;
  font-size: 20px;           /* igual que el p del hero */
  line-height: 1.6;
  color: rgba(17,24,39,0.78);
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
}

/* TABLET */
@media (max-width: 1024px){
  .hero-like-title{
    font-size: 38px;
  }
  .hero-like-text{
    font-size: 18px;
  }
}

/* MÓVIL */
@media (max-width: 768px){
  .hero-like{
    margin: 54px auto 18px;
    padding: 0 8px;
  }
  .hero-like-title{
    font-size: 30px;
    letter-spacing: -0.2px;
  }
  .hero-like-text{
    font-size: 16px;
  }
}

/* =========================================
   ENUNCIADOS SERVICIOS (misma tipografía hero)
========================================= */

.servicios-intro{
  max-width: 860px;
  margin: 70px auto 24px;
  text-align: center; /* o left si tu hero va alineado izquierda */
}

.servicios-intro h2{
  font-family: 'Nunito', sans-serif;
  font-weight: 800;         /* mismo peso que el hero */
  font-size: 46px;          /* un punto por debajo del h1 del hero */
  line-height: 1.12;
  letter-spacing: -0.5px;
  margin: 0;
}

.servicios-intro p{
  font-family: 'Nunito', sans-serif;
  font-weight: 400;
  font-size: 20px;          /* mismo tamaño que el p del hero */
  line-height: 1.6;
  margin-top: 18px;
  color: rgba(17,24,39,0.8);
}

@media (max-width: 1024px){
  .servicios-intro h2{
    font-size: 38px;
  }
  .servicios-intro p{
    font-size: 18px;
  }
}

@media (max-width: 768px){
  .servicios-intro{
    margin: 54px auto 20px;
    padding: 0 12px;
  }
  .servicios-intro h2{
    font-size: 30px;
    letter-spacing: -0.2px;
  }
  .servicios-intro p{
    font-size: 16px;
  }
}

/* ---------- HERO GALERÍA (imagen diferente) ---------- */
.hero-galeria{
  background-image: url("../img/hero/galeria-hero.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

/* ---------- HERO INSTALACIONES (imagen diferente) ---------- */
.hero-instalaciones{
  background-image: url("../img/hero/instalaciones-hero.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}



/* ==========================================================
   GALERÍA – REDES SOCIALES (versión refinada y estilizada)
   ========================================================== */

.redes-sociales{
  padding: 80px 0;
  text-align: center;
}

.redes-title{
  font-size: 2rem;
  margin-bottom: 20px;
}

.redes-text{
  max-width: 720px;
  margin: 0 auto 40px;
  line-height: 1.6;
  opacity: .85;
}

/* Links */
.redes-links{
  display: flex;
  justify-content: center;
  gap: 20px;
  flex-wrap: wrap;
}

/* ==========================================================
   BOTÓN BASE – Más estrecho y alargado
   ========================================================== */

.red-btn{
  display: inline-flex;
  align-items: center;
  gap: 12px;

  padding: 5px 26px;              /* más fino vertical, más largo horizontal */
  border-radius: 15px;            /* forma píldora elegante */
  text-decoration: none;

  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 8px 18px rgba(0,0,0,.06);

  font-weight: 600;
  font-size: 1.15rem;
  line-height: 1;

  transition: all .2s ease;
}

.red-btn:hover{
  transform: translateY(-2px);
  box-shadow: 0 14px 26px rgba(0,0,0,.10);
}

/* Texto */
.red-btn__text{
  line-height: 1;
}

/* ==========================================================
   ICONO
   ========================================================== */

.red-btn__icon{
  width: 32px;
  height: 32px;

  display: flex;
  align-items: center;
  justify-content: center;

  border-radius: 50%;
  overflow: hidden;           /* evita desbordes */
}

.red-btn__icon img{
  width: 32px;                /* tamaño real visible */
  height: 32px;
  object-fit: contain;        /* mantiene proporción */
  display: block;
}

/* ==========================================================
   INSTAGRAM
   ========================================================== */

.red-btn--ig{
  color: #C13584;
}

.red-btn__icon--ig{
  background: linear-gradient(
    135deg,
    #F58529,
    #DD2A7B,
    #8134AF,
    #515BD4
  );
}

/* Icono blanco sobre degradado */
.red-btn__icon--ig img{
  filter: brightness(0) invert(1);
}

/* ==========================================================
   FACEBOOK
   ========================================================== */

.red-btn--fb{
  color: #1877F2;
}

.red-btn__icon--fb{
  background: #1877F2;
}

/* Icono blanco sobre azul */
.red-btn__icon--fb img{
  filter: brightness(0) invert(1);
}

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

@media (max-width: 520px){
  .red-btn{
    padding: 9px 20px;
    font-size: .9rem;
  }

  .red-btn__icon{
    width: 30px;
    height: 30px;
  }

  .red-btn__icon img{
    width: 16px;
    height: 16px;
  }
}

/* ==========================================================
   GALERÍA – MASONRY REAL (ajustada)
   ========================================================== */

.galeria-masonry{
  padding: 90px 0;
}

/* 🔹 Contenedor más ancho */
.galeria-masonry .container{
  max-width: 1400px;   /* antes ~1200 */
  width: 92%;
}

/* Masonry real */
.masonry-grid{
  column-count: 3;
  column-gap: 35px;   /* más espacio entre columnas */
}

@media (max-width: 1100px){
  .masonry-grid{ column-count: 2; }
}

@media (max-width: 650px){
  .masonry-grid{ column-count: 1; }
}

/* Espacio vertical mayor */
.masonry-item{
  break-inside: avoid;
  -webkit-column-break-inside: avoid;
  margin: 0 0 26px;   /* antes 18px */
   margin-bottom: 35px; /* vertical */
}

/* Tarjeta visual */
.masonry-card{
  position: relative;
  border-radius: 5px;   /* menos redondeado (antes 18px) */
  overflow: hidden;
  background: #fff;
  box-shadow: 0 14px 32px rgba(0,0,0,0.09);
  transform: translateY(0);
  transition: transform .3s ease, box-shadow .3s ease;
}

/* Hover más elegante */
.masonry-card:hover{
  transform: translateY(-6px);
  box-shadow: 0 22px 50px rgba(0,0,0,0.14);
}

/* Imagen */
.masonry-card img{
  width: 100%;
  height: auto;
  display: block;
}

/* Overlay */
.masonry-overlay{
  position: absolute;
  inset: auto 0 0 0;
  padding: 16px 18px;
  background: linear-gradient(to top, rgba(0,0,0,.7), rgba(0,0,0,0));
  color: #fff;
}

.masonry-overlay h3{
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
}

.masonry-overlay p{
  margin: 4px 0 0;
  font-size: .92rem;
  opacity: .9;
}

/* Link ocupa toda la card */
.masonry-link{
  display: block;
  color: inherit;
  text-decoration: none;
  cursor: zoom-in;
}

/* =========================
   LIGHTBOX / SLIDER (AUTO-SIZE + CONTROLES FUERA)
   - Imagen a tamaño real hasta el máximo del viewport
   - Flechas fijas izq/der
   - Contador fijo arriba izq (fuera de la imagen)
   ========================= */

.lb{
  position: fixed;
  inset: 0;
  display: none;
  z-index: 9999;

  /* centrado del contenido */
  align-items: center;
  justify-content: center;

  /* aire en bordes para que no toque el viewport */
  padding: 24px;
}

.lb.is-open{ display: flex; }

.lb-backdrop{
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.75);
}

/* Dialog: NO fija tamaños, solo centra */
.lb-dialog{
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;

  /* para que no se “corte” nada por padding del .lb */
  max-width: 100%;
  max-height: 100%;
}

/* Figure */
.lb-figure{
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  max-width: 100%;
}

/* Imagen: tamaño real, limitada solo por pantalla */
.lb-img{
  width: auto;
  height: auto;

  /* límites reales del viewport (restando el padding y dejando espacio a caption) */
  max-width: calc(100vw - 48px);
  max-height: calc(100vh - 140px);

  object-fit: contain;
  border-radius: 16px;
  background: rgba(255,255,255,.04);
}

/* Caption debajo */
.lb-caption{
  color: #fff;
  text-align: center;
  max-width: min(900px, calc(100vw - 48px));
}

/* =========================
   CONTADOR: fijo arriba izquierda (FUERA de la imagen)
   ========================= */
.lb-counter{
  position: fixed;
  top: 20px;
  left: 20px;

  padding: 6px 12px;
  border-radius: 999px;

  font-size: .95rem;
  color: #fff;
  opacity: .9;

  background: rgba(0,0,0,.45);
  backdrop-filter: blur(6px);

  pointer-events: none;
  z-index: 10001;
}

/* =========================
   CERRAR: fijo arriba derecha
   ========================= */
.lb-close{
  position: fixed;
  top: 20px;
  right: 20px;

  width: 44px;
  height: 44px;
  border-radius: 999px;
  border: 0;
  cursor: pointer;

  font-size: 28px;
  line-height: 1;

  background: rgba(255,255,255,.12);
  backdrop-filter: blur(6px);
  color: #fff;

  z-index: 10001;
}

/* =========================
   FLECHAS: fijas en los lados (FUERA de la imagen)
   ========================= */
.lb-nav{
  position: fixed;
  top: 50%;
  transform: translateY(-50%);

  width: 54px;
  height: 54px;
  border-radius: 999px;
  border: 0;
  cursor: pointer;

  font-size: 30px;
  line-height: 1;

  background: rgba(255,255,255,.12);
  backdrop-filter: blur(6px);
  color: #fff;

  transition: background .2s ease;
  z-index: 10001;
}

.lb-nav:hover{
  background: rgba(255,255,255,.25);
}

.lb-prev{ left: 20px; }
.lb-next{ right: 20px; }

/* Mobile */
@media (max-width: 520px){
  .lb{ padding: 14px; }

  .lb-img{
    max-width: calc(100vw - 28px);
    max-height: calc(100vh - 160px);
    border-radius: 14px;
  }

  .lb-nav{
    width: 44px;
    height: 44px;
    font-size: 24px;
  }

  .lb-prev{ left: 10px; }
  .lb-next{ right: 10px; }

  .lb-counter{
    top: 12px;
    left: 12px;
    font-size: .9rem;
  }

  .lb-close{
    top: 12px;
    right: 12px;
  }
}


/* ---------- HERO CONTACTO (imagen diferente) ---------- */
.hero-contacto{
  background-image: url("../img/hero/contacto-hero.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}



/* ==========================================================
   CONTACTO – DÓNDE ENCONTRARNOS
========================================================== */

.encuentranos{
  padding: 190px 0;
}

.encuentranos-grid{
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 70px;
  align-items: center;
}

.encuentranos-kicker{
  font-size: .9rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #0ea5a4;
  font-weight: 800;
  margin-bottom: 10px;
}

.encuentranos-title{
  font-size: clamp(2rem, 2.4vw, 2.6rem);
  line-height: 1.1;
  font-weight: 800;   /* más gordo */
  letter-spacing: -0.5px; /* opcional, más compacto y premium */
}

.encuentranos-line{
  width: 64px;
  height: 3px;
  background: #0ea5a4;
  border-radius: 99px;
  margin-bottom: 18px;
}

.encuentranos-text{
  color: rgba(0,0,0,.72);
  line-height: 1.75;
  margin: 0 0 14px;
}

.encuentranos-list{
  list-style: none;
  padding: 0;
  margin: 24px 0 30px;
  display: grid;
  gap: 18px;
}

.encuentranos-list li{
  display: grid;
  grid-template-columns: 26px 1fr;
  gap: 14px;
  align-items: start;
}

.encuentranos-list .ico{
  font-size: 18px;
  line-height: 1.2;
}

.item-content{
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.item-content strong{
  font-weight: 700;
}

.item-content span{
  line-height: 1.6;
  color: rgba(0,0,0,.75);
}

.item-content a{
  text-decoration: none;
  color: inherit;
  border-bottom: 1px solid rgba(14,165,164,.35);
}

.item-content a:hover{
  border-bottom-color: #0ea5a4;
}

.encuentranos-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;

  padding: 12px 18px;
  border-radius: 12px;

  background: #0ea5a4;
  color: #fff;
  text-decoration: none;
  font-weight: 800;

  box-shadow: 0 14px 30px rgba(14,165,164,.25);
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.encuentranos-btn:hover{
  transform: translateY(-2px);
  box-shadow: 0 18px 40px rgba(14,165,164,.33);
  background: #0c9392;
}

.encuentranos-media{
  border-radius: 10px; /* menos redondeado */
  overflow: hidden;
  box-shadow: 0 18px 50px rgba(0,0,0,.10);
  background: #f5f5f5; /* fondo neutro por si sobra espacio */
}

.encuentranos-media img{
  width: 100%;
  height: auto;        /* importante */
  display: block;
  object-fit: contain; /* asegura que no se recorte */
}

/* Responsive */
@media (max-width: 980px){
  .encuentranos{
    padding: 70px 0;
  }
  .encuentranos-grid{
    grid-template-columns: 1fr;
    gap: 34px;
  }
  .encuentranos-media img{
    height: 360px;
  }
}

.encuentranos,
.encuentranos * {
  font-family: inherit;
}

/* ==========================================================
   CONTACTO – H2 MÁS POTENTES (igual que "Dónde encontrarnos")
========================================================== */

.contacto-section h2{
  font-weight: 800;
  font-size: clamp(2rem, 2.4vw, 2.6rem);
  line-height: 1.1;
  letter-spacing: -0.5px;
  margin: 0 0 14px;
}


/* ==========================================================
   CONTACTO – FONDO CLARO MINIMAL
========================================================== */

.contacto-section{
  background: #f8f8f8;   /* gris muy suave */
  padding: 120px 0;
}

/* =================================
   CONTACTO – Espaciado cabeceras
   ================================= */

/* Cabecera principal del bloque */
.contacto-info h2,
.contacto-form h2{
  margin-bottom: 32px;   /* antes suele estar en 16-20px */
}

/* Subtítulos (Dirección, Teléfono, Email, Horario) */
.contacto-item h3{
  margin-top: 26px;
  margin-bottom: 10px;
}

/* Primera cabecera que no tenga margen superior extra */
.contacto-item:first-child h3{
  margin-top: 0;
}


/* =================================
   REDES SOCIALES – Cabecera más potente
   ================================= */

.redes-title{
  font-family: 'Nunito', sans-serif;
  font-weight: 800;        /* más gruesa */
  font-size: 2.4rem;       /* más grande */
  letter-spacing: -0.5px;
  margin-bottom: 22px;
}

/* Texto descriptivo más equilibrado */
.redes-text{
  max-width: 720px;
  margin: 0 auto 40px auto;
  font-size: 1.05rem;
  line-height: 1.7;
  color: #555;
}

@media (max-width: 768px){

  .site-header .header-top{
    height: 30px;
    min-height: 30px;
    padding: 0;
    overflow: hidden;
  }

  /* Oculta TODO el contenido interno (texto, iconos, links, etc.) */
  .site-header .header-top > *{
    display: none !important;
  }

}



/* 📟 Tablets / Surface Pro / iPad: desplazar menú a la izquierda */
@media (min-width: 769px) and (max-width: 1024px){

  .main-nav{
    position: relative;
    transform: translateX(-60px) scale(.96); /* 👈 mueve bastante a la izquierda */
    transform-origin: right center;
  }

  /* por si el contenedor recorta */
  .site-header{
    overflow: visible;
  }
}

/* Botón hamburguesa */
#menuToggle{
  background: #0ea5a4 !important;
  border: none !important;
  color: #fff !important;
}

/* Icono dentro (Material Symbols) */
#menuToggle .material-symbols-outlined{
  color: #fff !important;
  font-size: 28px;
}

/* Logo más pequeño en móviles */
@media (max-width: 768px){

  .site-header img{
    height: 62px !important;
    width: auto;
  }

}

/* ============================
   OFFCANVAS ESTABLE (móvil)
============================ */
@media (max-width: 768px){

  body.nav-open{ overflow: hidden; }

  /* Overlay REAL */
  #navOverlay{
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.60);
    z-index: 10040;
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s ease;
  }
  body.nav-open #navOverlay{
    opacity: 1;
    pointer-events: auto;
  }

  /* Panel */
  #mainNav{
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    left: auto !important;
    height: 100vh !important;
    width: min(360px, 86vw) !important;

    background: #0f0f10 !important;
    color: #fff !important;

    z-index: 10041 !important;
    transform: translateX(105%) !important;
    transition: transform .28s ease !important;

    overflow-y: auto !important;
    padding: 18px 16px !important;

    visibility: hidden !important;
    pointer-events: none !important;
  }

  body.nav-open #mainNav{
    transform: translateX(0) !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }

  /* Estilo items */
  #mainNav ul{ margin: 0; padding: 0; list-style: none; }
  #mainNav li{ border-bottom: 1px solid rgba(255,255,255,.08); }

  #mainNav a{
    display: block;
    padding: 16px 12px !important;
    color: rgba(255,255,255,.85) !important;
    text-decoration: none !important;
    background: transparent !important;
    border: 0 !important;
    text-transform: uppercase;
    letter-spacing: .10em;
    font-weight: 700;
  }
}

/* ============================
   RESET TOTAL (desktop/tablet)
   evita “cosas raras” al scroll/resize
============================ */
@media (min-width: 769px){

  body.nav-open{ overflow: auto; }

  #navOverlay{ display: none !important; }

  #mainNav{
    position: static !important;
    width: auto !important;
    height: auto !important;
    transform: none !important;
    transition: none !important;
    background: transparent !important;
    color: inherit !important;
    visibility: visible !important;
    pointer-events: auto !important;
    overflow: visible !important;
    padding: 0 !important;
    z-index: auto !important;
  }
}

/* =========================
   DISEÑO MENÚ MÓVIL BLANCO
========================= */
@media (max-width:768px){

  /* panel blanco */
  #mainNav{
    background:#ffffff !important;
    color:#1f2937 !important;
    box-shadow:-20px 0 50px rgba(0,0,0,.15);
  }

  /* quitar flechas si existen */
  #mainNav .submenu-toggle,
  #mainNav .arrow,
  #mainNav .dropdown-icon{
    display:none !important;
  }

  /* lista */
  #mainNav ul{
    margin:40px 0 0;
    padding:0;
  }

  /* separadores suaves */
  #mainNav li{
    border-bottom:1px solid #ececec;
  }

  /* enlaces */
  #mainNav a{
    padding:18px 16px !important;
    color:#111827 !important;
    font-weight:600;
    letter-spacing:.08em;
    text-transform:uppercase;
    font-size:15px;
  }

  #mainNav a:hover{
    color:#1fb6a6 !important; /* tu color veterinaria */
  }

}

/* ==========================================================
   MENÚ MÓVIL DEDICADO (como PT) – SaludAnimal
   Breakpoint: <= 992px
   ========================================================== */

/* Por defecto (desktop): panel móvil oculto */
.mnav-mask, .mnav-panel{ display:none; }

/* Botón hamburguesa: oculto en desktop por defecto (si no lo haces ya) */
@media (min-width: 993px){
  #menuToggle{ display:none !important; }
}

/* Móvil/Tablet */
@media (max-width: 992px){

  /* Oculta el nav de escritorio */
  #mainNav{ display:none !important; }

  /* Muestra el botón hamburguesa */
  #menuToggle{
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    width:44px;
    height:44px;
    border:0;
    border-radius:12px;
    background:#0b2d5c; /* ajusta al azul de tu web */
    color:#fff;
    cursor:pointer;
    line-height:1;
  }

  /* Overlay */
  .mnav-mask{
    display:block;
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.55);
    opacity:0;
    visibility:hidden;
    transition:.2s;
    z-index:10040;
  }
  .mnav-mask.is-active{
    opacity:1;
    visibility:visible;
  }

  /* Panel */
  .mnav-panel{
    display:block;
    position:fixed;
    top:0;
    bottom:0;
    left:0;
    width:min(86vw, 360px);
    background:#0b2d5c; /* ajusta al azul de tu web */
    color:#fff;
    transform:translateX(-100%);
    transition:transform .28s ease;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    z-index:10050;
  }
  .mnav-panel.is-active{
    transform:translateX(0);
  }

  /* Cabecera panel */
  .mnav-header{
    position:sticky;
    top:0;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:12px 14px;
    background:#0b2d5c;
    border-bottom:1px solid rgba(255,255,255,.16);
    z-index:1;
  }
  .mnav-logo img{
    max-height:46px;
    width:auto;
    display:block;
  }
  .mnav-close{
    appearance:none;
    border:0;
    background:transparent;
    color:#fff;
    font-size:28px;
    line-height:1;
    width:44px;
    height:44px;
    cursor:pointer;
  }

  .mnav-inner{
    padding:6px 12px 18px;
  }

  /* Lista */
  .mnav-list{
    list-style:none;
    margin:0;
    padding:0;
  }
  .mnav-list li{
    border-bottom:1px solid rgba(255,255,255,.14);
  }
  .mnav-list a{
    display:block;
    color:#fff;
    text-decoration:none;
    padding:14px 10px;
    border-radius:10px;
    font-weight:700;
  }
  .mnav-list a:hover{
    background:rgba(255,255,255,.10);
  }

  /* Datos abajo */
  .mnav-extra{
    margin-top:14px;
    padding-top:12px;
    border-top:1px solid rgba(255,255,255,.14);
  }
  .mnav-line{
    display:flex;
    align-items:flex-start;
    gap:10px;
    margin:12px 0;
    line-height:1.25;
  }
  .mnav-line .material-symbols-outlined{
    font-size:20px;
    line-height:1;
    margin-top:1px;
  }
  .mnav-extra a{
    color:#fff;
    text-decoration:none;
  }

  .mnav-social{
    display:flex;
    gap:12px;
    margin-top:10px;
  }
  .mnav-social a{
    color:#fff;
    text-decoration:none;
    width:36px;
    height:36px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(255,255,255,.25);
    border-radius:12px;
  }
}


/* ==========================================================
   MENÚ MÓVIL DEDICADO – Diseño (derecha + colores SaludAnimal)
   ========================================================== */

:root{
  --sa-blue:#0ea5a4;
  --sa-blue-2:#ffffff;
  --sa-text:#111111;
}

@media (max-width: 992px){

  /* overlay */
  .mnav-mask{
    position: fixed !important;
    inset: 0 !important;
    background: rgba(0,0,0,.55) !important;
    z-index: 10040 !important;
    opacity: 0;
    visibility: hidden;
    transition: .2s;
  }

  .mnav-mask.is-active{
    opacity: 1;
    visibility: visible;
  }

  /* panel */

  .mnav-panel{
    position: fixed !important;
    top: 0 !important;
    bottom: 0 !important;
    right: 0 !important;
    left: auto !important;

    width: min(88vw, 380px) !important;

    background:#ffffff !important;
    color:#111 !important;

    transform: translateX(105%) !important;
    transition: transform .28s ease !important;
    z-index: 10050 !important;

    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;

    max-width: 100vw !important;
  }

  .mnav-panel.is-active{
    transform: translateX(0) !important;
  }

  /* cabecera */

  .mnav-header{
    position: sticky !important;
    top: 0 !important;

    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;

    gap: 12px !important;
    padding: 14px 16px !important;

    background:#ffffff !important;
    border-bottom:1px solid #e8e8e8 !important;

    z-index:1 !important;
  }

  .mnav-logo img{
    display:block;
    width:auto;
    max-height:54px;
  }

  /* X cerrar */

  .mnav-close{
    appearance:none;
    border:0;
    background:transparent;

    color:var(--sa-blue);

    font-size:30px;
    width:44px;
    height:44px;
    line-height:1;
    cursor:pointer;
  }

  /* lista */

  .mnav-inner{
    padding:25px 14px 18px !important;
  }

  .mnav-list{
    list-style:none;
    margin:0;
    padding:0;
  }

  .mnav-list li{
    margin-bottom: 4px;
  }

  /* botones */

  .mnav-list a{

    display:block;
    padding:14px 12px;

    border-radius:14px;

    color:#111;
    text-decoration:none;

    font-weight:700;
    letter-spacing:.2px;

    transition:.18s;
  }

  /* hover */

  .mnav-list a:hover{
    background:#f3f4f6;
  }

  /* activo */

  .mnav-list a.is-active,
  .mnav-list a[aria-current="page"]{

    background:var(--sa-blue);
    color:#ffffff;
  }

  /* bloque inferior */

  .mnav-extra{

    margin-top:20px;
    padding-top:16px;

    border-top:1px solid #ececec;

    text-align:center;
  }

  /* lineas contacto */

  .mnav-line{

    display:flex;
    align-items:center;
    justify-content:center;

    gap:8px;

    margin:34px 0;

    font-size:14px;
  }

  .mnav-line .material-symbols-outlined{
  color: #0f7b86;     /* color corporativo */
  font-size: 22px;
  vertical-align: middle;
}

  .mnav-extra a{
    color:#111;
    text-decoration:none;
  }

  .mnav-extra a:hover{
    text-decoration:underline;
  }

  /* =========================
   REDES SOCIALES MENÚ MÓVIL
========================= */

.mnav-social{
  display:flex;
  justify-content:center;
  gap:14px;
  margin-top:82px;
}

.mnav-social a{

  width:42px;
  height:42px;

  display:flex;
  align-items:center;
  justify-content:center;

  border-radius:50%;

  background:#eef9f9;   /* fondo suave */
  text-decoration:none;

  transition:.2s ease;
}

/* iconos */

/* tamaño iconos */

.mnav-social svg{
  width:20px;
  height:20px;
}

/* Instagram */

.mnav-social a:nth-child(1) svg{
  fill:#E1306C;   /* rosa Instagram */
}

/* Facebook */

.mnav-social a:nth-child(2) svg{
  fill:#2e7cf8;   /* azul Facebook */
}

/* hover */

.mnav-social a:hover{

  background:#0ea5a4;
}

.mnav-social a:hover svg{

  fill:#ffffff;
}

}



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

.hero{
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}


/* ================================
   AJUSTES HERO MÓVIL
================================ */

@media (max-width:768px){

.hero-inicio{
  background-position:65% 25%;
}

.hero-quienes{
  background-position:40% 25%;
}

.hero-instalaciones{
  background-position:40% 25%;
}

.hero-servicios{
  background-position:40% 25%;
}

.hero-galeria{
  background-position:45% 25%;
}

.hero-contacto{
  background-position:75% 25%;
}

}


/* ================================
   HERO TEXTO MÓVIL MEJORADO
================================ */

@media (max-width:768px){

.hero-inicio .container,
.hero-quienes .container,
.hero-instalaciones .container,
.hero-servicios .container,
.hero-galeria .container,
.hero-contacto .container{
  padding-left:24px;
  padding-right:24px;
}

/* título */

.hero-inicio h1,
.hero-quienes h1,
.hero-instalaciones h1,
.hero-servicios h1,
.hero-galeria h1,
.hero-contacto h1{
  font-size:28px;
  line-height:1.25;
  font-weight:800;
  max-width:520px;
}

/* texto */

.hero-inicio h3,
.hero-quienes h3,
.hero-instalaciones h3,
.hero-servicios h3,
.hero-galeria h3,
.hero-contacto h3{
  font-size:17px;
  line-height:1.6;
  font-weight:500;
  max-width:520px;
}

/* sombra texto */

.hero-inicio h1,
.hero-inicio h3,
.hero-quienes h1,
.hero-quienes h3,
.hero-instalaciones h1,
.hero-instalaciones h3,
.hero-servicios h1,
.hero-servicios h3,
.hero-galeria h1,
.hero-galeria h3,
.hero-contacto h1,
.hero-contacto h3{
  text-shadow:0 2px 6px rgba(0,0,0,.25);
}

}

/* ================================
   HERO TEXTO MÓVIL GLOBAL
================================ */

@media (max-width:768px){

section.hero > .container{
  padding-left:22px;
  padding-right:22px;
}

/* título */

section.hero h1{
  font-size:28px;
  line-height:1.25;
  font-weight:800;
  max-width:520px;
}

/* texto */

section.hero h3{
  font-size:17px;
  line-height:1.6;
  font-weight:500;
  max-width:520px;
}

/* sombra suave */

section.hero h1,
section.hero h3{
  text-shadow:0 2px 6px rgba(0,0,0,.25);
}

}


@media (max-width:768px){

.hero-inicio h3,
.hero-quienes h3,
.hero-instalaciones h3{
  font-size:20px !important;
  
}

}

/* =================================================
   Ajuste menú tablet (iPad Pro / Nest Hub)
   Añade padding a la derecha
================================================= */

@media (max-width: 1024px){

  #mainNav,
  #mainNav ul{
    padding-right: 24px !important;
  }

  #mainNav ul{
    justify-content: flex-end;
  }

  #mainNav a{
    padding-left: 10px !important;
    padding-right: 10px !important;
  }
}


/* ================================
   AJUSTES HERO MÓVIL
================================ */

@media (max-width:1024px){



.hero-contacto{
  background-position:75% 25%;
}

}



/* =====================================
   ESPACIO ENTRE BLOQUES DE SERVICIOS
===================================== */

.servicios-pro{
  padding: 60px 0;
}

.servicios-intro{
  margin-top: 80px;
  margin-bottom: 70px;
}

.servicios-bloque-pro{
  margin-bottom: 400px;
}

/* =====================================
   SEPARADOR ENTRE BLOQUES SERVICIOS
===================================== */

.servicios-bloque-pro{
  position: relative;
  margin-bottom: 190px;
}

/* línea decorativa */
.servicios-bloque-pro::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:-60px;
  transform:translateX(-50%);
  width:120px;
  height:2px;

  background:linear-gradient(
    90deg,
    transparent,
    #0b5ed7,
    transparent
  );

  opacity:0.35;
}

.servicios-bloque-pro:last-of-type::after{
  display:none;
}

/* =========================
   PROMO BLOCK 2
   SOLO columnas 1 y 2
   Texto e imagen más juntos
========================= */

.promo-wrap-left{
  grid-column: 1 / 3;
  align-self: stretch;
}

.promo-wrap-left .promo-block{
  padding: 0;
  background: transparent;
  overflow: visible;
}

.promo-wrap-left .promo-inner{
  max-width: 100%;
  margin: 0;
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 0;
  align-items: center;
}

/* =========================
   IZQUIERDA (TEXTO)
========================= */

.promo-wrap-left .promo-left{
  position: relative;
  z-index: 2;
  left: 0;
  margin-left: 80px;
}

.promo-wrap-left .promo-title{
  margin: 0 0 14px 0;
  line-height: 1.05;
}

.promo-wrap-left .promo-sub{
  margin: 0 0 20px 0;
  max-width: 420px;
}

.promo-wrap-left .promo-btn{
  margin: 0;
}

/* =========================
   DERECHA (IMAGEN + DECOS)
========================= */

.promo-wrap-left .promo-right{
  position: relative;
  min-height: 340px;
  overflow: visible;
  z-index: 1;
}

.promo-wrap-left .promo-hero-img{
  position: absolute;
  left: -30px;   /* clave: acerca la imagen al texto */
  bottom: 0;
  width: min(250px, 100%);
  height: auto;
  display: block;
}

/* decoraciones */
.promo-wrap-left .promo-sparkle{
  position: absolute;
  z-index: 2;
  pointer-events: none;
}

.promo-wrap-left .promo-sparkle.s1{
  left: 95px;
  top: 70px;
}

.promo-wrap-left .promo-sparkle.s2{
  left: 145px;
  top: 125px;
}

.promo-wrap-left .promo-heart{
  position: absolute;
  left: -10px;
  bottom: 45px;
  z-index: 2;
  pointer-events: none;
}

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

@media (max-width: 1100px){
  .promo-wrap-left .promo-inner{
    grid-template-columns: 1.08fr 0.92fr;
    gap: 0;
  }

  .promo-wrap-left .promo-right{
    min-height: 300px;
  }

  .promo-wrap-left .promo-hero-img{
    left: -28px;
    width: min(225px, 100%);
  }

  .promo-wrap-left .promo-heart{
    left: 0;
    bottom: 30px;
  }

  .promo-wrap-left .promo-sparkle.s1{
    left: 82px;
    top: 60px;
  }

  .promo-wrap-left .promo-sparkle.s2{
    left: 128px;
    top: 110px;
  }
}

/* =========================
   MÓVIL
========================= */

@media (max-width: 900px){
  .promo-wrap-left{
    grid-column: 1 / -1;
  }

  .promo-wrap-left .promo-inner{
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .promo-wrap-left .promo-right{
    min-height: 260px;
  }

  .promo-wrap-left .promo-hero-img{
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: min(210px, 90%);
  }

  .promo-wrap-left .promo-heart{
    left: 20px;
    bottom: 20px;
  }

  .promo-wrap-left .promo-sparkle.s1{
    left: auto;
    right: 60px;
    top: 40px;
  }

  .promo-wrap-left .promo-sparkle.s2{
    left: auto;
    right: 30px;
    top: 90px;
  }
}
/* =========================
   TABLET – AJUSTE TEXTO
========================= */

@media (max-width: 1100px){

  .promo-wrap-left .promo-left{
    max-width: 100%;
  }

  .promo-wrap-left .promo-title{
    max-width: 560px;
    line-height: 1.12;
    font-size: clamp(2.1rem, 3vw, 3rem);
  }

  .promo-wrap-left .promo-sub{
    max-width: 520px;
    line-height: 1.5;
  }

}


/* =========================
   MÓVIL – AJUSTE TEXTO
========================= */

@media (max-width: 900px){

  .promo-wrap-left .promo-left{
    max-width: 100%;
  }

  .promo-wrap-left .promo-title{
    max-width: 100%;
    line-height: 1.15;
    font-size: clamp(2rem, 6vw, 2.8rem);
  }

  .promo-wrap-left .promo-sub{
    max-width: 100%;
    line-height: 1.5;
  }

}

@media (max-width: 900px){
  .promo-wrap-left .promo-title .hl{
    display: inline-block;
    white-space: nowrap;
  }
}

/* =========================
   TABLET – AJUSTE TEXTO
========================= */

@media (max-width: 1100px){

  .promo-wrap-left .promo-left{
    max-width: 560px;
    margin-left: 0;
    padding-left: 0;
  }

  .promo-wrap-left .promo-title{
    line-height: 1.12;
  }

  .promo-wrap-left .promo-sub{
    max-width: 520px;
  }

}


/* =========================
   MÓVIL – AJUSTE TEXTO
========================= */

@media (max-width: 900px){

  .promo-wrap-left .promo-left{
    max-width: 100%;
    margin-left: 0;
    padding-left: 0;
  }

  .promo-wrap-left .promo-title{
    line-height: 1.15;
  }

  .promo-wrap-left .promo-sub{
    max-width: 100%;
  }

}

/* =========================
   MÓVIL – MÁS ESPACIO TEXTO / IMAGEN
========================= */

@media (max-width: 900px){

  .promo-wrap-left .promo-right{
    margin-top: 25px;
  }

}


/* =========================
   RESPONSIVE – anular el primer <br> en promo 2
========================= */

@media (max-width: 900px){

  .promo-wrap-left .promo-sub br:nth-of-type(1){
    display: none !important;
  }

}

/* =========================
   RESPONSIVE – solo móviles normales
========================= */

@media (min-width: 381px) and (max-width: 900px){

  .promo-wrap-left .promo-title{
    white-space: nowrap;
    font-size: clamp(1.75rem, 5vw, 2rem);
  }

  .promo-wrap-left .promo-title .hl{
    white-space: nowrap;
  }

  .promo-wrap-left .promo-sub{
    max-width: 360px;
  }

}

/* ========================================
   FIX MÓVILES PEQUEÑOS
   iPhone SE / Galaxy S8+ / Galaxy Fold
======================================== */

@media (max-width: 380px){

  body{
    overflow-x: hidden;
  }

  .container{
    
    padding-right: 14px;
  }

  /* evita que algún bloque se salga */
  .promo-wrap,
  .promo-wrap-left,
  .promo-inner,
  .promo-right{
    max-width: 100%;
    overflow: hidden;
  }

  /* asegurar centrado de imágenes */
  .instalacion-card img,
  .promo-hero-img{
    max-width: 100%;
    height: auto;
  }

}

/* =========================
   MÓVILES PEQUEÑOS
========================= */

@media (max-width: 380px){

  .promo-wrap-left .promo-title{
    white-space: nowrap;
    font-size: 1.6rem;
  }

  .promo-wrap-left .promo-title .hl{
    white-space: nowrap;
  }

  .promo-wrap-left .promo-sub{
    max-width: 100%;
  }

}

/* =========================
   MÓVILES PEQUEÑOS (≤380px)
   permitir salto de línea
========================= */

@media (max-width: 380px){

  .promo-wrap-left .promo-title{
    white-space: normal;
    font-size: 1.65rem;
  }

  .promo-wrap-left .promo-title .hl{
    white-space: normal;
  }

}



/* ==========================================
   Ocultar contenido del header-top
   en tablets tipo Surface Pro
========================================== */

@media (min-width: 900px) and (max-width: 1100px){

  .header-top .header-top-container{
    visibility: hidden;
  }

}


/* =========================================
   FIX scroll lateral / Surface / instalaciones
   Solo tablet y pantallas medias/pequeñas
========================================= */

@media (max-width: 1280px){

  html,
  body{
    max-width: 100%;
    overflow-x: hidden;
  }

  img{
    max-width: 100%;
    height: auto;
    display: block;
  }

  main,
  section,
  .container,
  .hero,
  .hero-instalaciones{
    max-width: 100%;
  }

  .hero-instalaciones{
    overflow: hidden;
  }

  /* Menú móvil */
  .mnav-mask{
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.35);
    z-index: 10020;
  }

  .mnav-panel{
    position: fixed;
    top: 0;
    right: 0;
    width: min(86vw, 380px);
    height: 100dvh;
    background: #fff;
    z-index: 10030;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    transform: translate3d(100%, 0, 0);
    transition: transform .28s ease;
    will-change: transform;
  }

  body.menu-open .mnav-panel{
    transform: translate3d(0, 0, 0);
  }

  .mnav-panel[hidden],
  .mnav-mask[hidden]{
    display: none !important;
  }

  /* Imagen conflictiva */
  img[src*="gosbi.png"]{
    max-width: 100%;
    height: auto;
    display: block;
    margin-left: 0 !important;
    margin-right: 0 !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
    position: relative;
  }
}


/* =========================================
   AJUSTES SOLO PARA TABLETS / DISPOSITIVOS MEDIOS
   iPad Pro / Surface Pro 7 / Nest Hub / Nest Hub Max
========================================= */

@media (min-width: 900px) and (max-width: 1280px){

  .brands-container{
    gap: 28px;
    padding: 0 24px;
  }

  .brands-container img{
    height: 60px;
    max-width: 140px;
  }
}

/* =========================================
   TITULOS SECCION
========================================= */

.section-head .section-title{
  font-size: 50px;
}

.section-head .section-subtitle{
  font-size: 22px;
  max-width: 700px;
  margin: 0 auto;
}

/* =========================================
   TABLET (iPad Pro / Surface / Nest Hub)
========================================= */

@media (max-width: 1280px){

  .section-head .section-title{
    font-size: 38px;
  }

  .section-head .section-subtitle{
    font-size: 18px;
    max-width: 640px;
  }

}

/* =========================================
   TABLET PEQUEÑA
========================================= */

@media (max-width: 900px){

  .section-head .section-title{
    font-size: 32px;
  }

  .section-head .section-subtitle{
    font-size: 17px;
    max-width: 560px;
  }

}

/* =========================================
   MOVIL
========================================= */

@media (max-width: 600px){

  .section-head .section-title{
    font-size: 26px;
  }

  .section-head .section-subtitle{
    font-size: 15px;
    max-width: 90%;
  }

}


/* ==========================================
   PÁGINAS LEGALES
========================================== */

.hero-legal{
  padding: 120px 0 70px;
  background: 
    linear-gradient(rgba(0,0,0,0.45), rgba(0,0,0,0.45)),
    url("../img/hero/legal.jpg") center/cover no-repeat;
  text-align: left;   /* antes estaba center */
  color: #ffffff;
}





.hero-legal .container{
  max-width: 900px;
}

.legal-kicker{
  display: inline-block;
  margin-bottom: 14px;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.14);
  border: 1px solid rgba(255, 255, 255, 0.32);
  font-size: 14px;
  font-weight: 700;
  color: #ffffff;
  letter-spacing: 0.02em;
  backdrop-filter: blur(4px);
}

.hero-legal h1{
  max-width: 760px;
  margin: 0 0 18px;   /* quitamos auto */
  font-size: 56px;
  line-height: 1.05;
  color: #ffffff;
}

.hero-legal p{
  max-width: 760px;
  margin: 0;          /* quitamos auto */
  font-size: 20px;
  line-height: 1.65;
  color: rgba(255,255,255,0.92);
}

.legal-content{
  padding: 40px 0 70px;
  background: #ffffff;
}

.legal-card{
  max-width: 950px;
  margin: 0 auto;
  padding: 42px 42px 36px;
  background: #ffffff;
  border: 1px solid rgba(31, 41, 55, 0.08);
  border-radius: 28px;
  box-shadow: 0 18px 45px rgba(31, 41, 55, 0.06);
}

.legal-intro{
  margin: 0 0 28px;
  font-size: 17px;
  line-height: 1.8;
  color: #374151;
}

.legal-data{
  margin: 0 0 34px;
  padding: 18px 22px;
  background: #f8fafc;
  border: 1px solid rgba(14, 165, 164, 0.14);
  border-radius: 22px;
}

.legal-data-row{
  display: grid;
  grid-template-columns: 210px 1fr;
  gap: 14px;
  padding: 12px 0;
  border-bottom: 1px solid rgba(31, 41, 55, 0.08);
}

.legal-data-row:last-child{
  border-bottom: none;
}

.legal-label{
  font-weight: 700;
  color: #1f2937;
}

.legal-value{
  color: #4b5563;
  line-height: 1.6;
}

.legal-block{
  padding: 24px 0;
  border-bottom: 1px solid rgba(31, 41, 55, 0.08);
}

.legal-block-last{
  border-bottom: none;
  padding-bottom: 0;
}

.legal-block h2{
  margin: 0 0 14px;
  font-size: 28px;
  line-height: 1.2;
  color: #1f2937;
}

.legal-block p{
  margin: 0 0 14px;
  font-size: 17px;
  line-height: 1.8;
  color: #374151;
}

.legal-block p:last-child{
  margin-bottom: 0;
}

.legal-links-band{
  padding: 0 0 80px;
  background: #ffffff;
}

.legal-links-band .container{
  max-width: 950px;
  text-align: center;
}

.legal-links-band p{
  margin: 0 0 18px;
  font-size: 18px;
  color: #4b5563;
}

.legal-links{
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 14px;
}

.legal-links a{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 20px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 700;
  color: #1f2937;
  background: #ffffff;
  border: 1px solid rgba(14, 165, 164, 0.18);
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.legal-links a:hover{
  transform: translateY(-2px);
  background: #0ea5a4;
  color: #ffffff;
  box-shadow: 0 10px 24px rgba(14, 165, 164, 0.18);
}

/* Tablet */
@media (max-width: 1024px){

  .hero-legal{
    padding: 105px 0 60px;
  }

  .hero-legal h1{
    max-width: 760px;
    font-size: 44px;
  }

  .hero-legal p{
    max-width: 760px;
    font-size: 18px;
  }

  .legal-card{
    padding: 34px 28px;
  }

  .legal-data-row{
    grid-template-columns: 180px 1fr;
  }

  .legal-block h2{
    font-size: 24px;
  }
}

/* Móvil */
@media (max-width: 700px){

  .hero-legal{
    padding: 95px 0 50px;
    background-position: center;
  }

  .hero-legal h1{
    max-width: 100%;
    font-size: 34px;
  }

  .hero-legal p{
    max-width: 100%;
    font-size: 16px;
    line-height: 1.7;
  }

  .legal-content{
    padding: 30px 0 50px;
  }

  .legal-card{
    padding: 24px 18px;
    border-radius: 22px;
  }

  .legal-intro{
    font-size: 15px;
  }

  .legal-data{
    padding: 14px 16px;
    border-radius: 18px;
  }

  .legal-data-row{
    grid-template-columns: 1fr;
    gap: 6px;
    padding: 10px 0;
  }

  .legal-label{
    font-size: 14px;
  }

  .legal-value{
    font-size: 15px;
  }

  .legal-block{
    padding: 20px 0;
  }

  .legal-block h2{
    font-size: 21px;
  }

  .legal-block p{
    font-size: 15px;
    line-height: 1.75;
  }

  .legal-links-band{
    padding: 0 0 55px;
  }

  .legal-links-band p{
    font-size: 16px;
  }

  .legal-links{
    gap: 10px;
  }

  .legal-links a{
    width: 100%;
  }
}

/* ==========================================
   PÁGINAS LEGALES
========================================== */

.hero-politica{
  padding: 120px 0 70px;
  background:
    linear-gradient(rgba(29, 29, 29, 0.7)),
    url("../img/hero/politica.jpg") center/cover no-repeat;
  text-align: center;
  color: #ffffff;
}

.hero-legal .container{
  max-width: 900px;
}

.legal-kicker{
  display: inline-block;
  margin-bottom: 14px;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.14);
  border: 1px solid rgba(255, 255, 255, 0.32);
  font-size: 14px;
  font-weight: 700;
  color: #ffffff;
  letter-spacing: 0.02em;
  backdrop-filter: blur(4px);
}

.hero-legal h1{
  margin: 0 0 18px;
  font-size: 56px;
  line-height: 1.05;
  color: #ffffff;
}

.hero-legal p{
  max-width: 760px;
  margin: 0 auto;
  font-size: 20px;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.92);
}

.legal-content{
  padding: 40px 0 70px;
  background: #ffffff;
}

.legal-card{
  max-width: 950px;
  margin: 0 auto;
  padding: 42px 42px 36px;
  background: #ffffff;
  border: 1px solid rgba(31, 41, 55, 0.08);
  border-radius: 28px;
  box-shadow: 0 18px 45px rgba(31, 41, 55, 0.06);
}

.legal-intro{
  margin: 0 0 28px;
  font-size: 17px;
  line-height: 1.8;
  color: #374151;
}

.legal-data{
  margin: 0 0 34px;
  padding: 18px 22px;
  background: #f8fafc;
  border: 1px solid rgba(14, 165, 164, 0.14);
  border-radius: 22px;
}

.legal-data-row{
  display: grid;
  grid-template-columns: 210px 1fr;
  gap: 14px;
  padding: 12px 0;
  border-bottom: 1px solid rgba(31, 41, 55, 0.08);
}

.legal-data-row:last-child{
  border-bottom: none;
}

.legal-label{
  font-weight: 700;
  color: #1f2937;
}

.legal-value{
  color: #4b5563;
  line-height: 1.6;
}

.legal-block{
  padding: 24px 0;
  border-bottom: 1px solid rgba(31, 41, 55, 0.08);
}

.legal-block-last{
  border-bottom: none;
  padding-bottom: 0;
}

.legal-block h2{
  margin: 0 0 14px;
  font-size: 28px;
  line-height: 1.2;
  color: #1f2937;
}

.legal-block p{
  margin: 0 0 14px;
  font-size: 17px;
  line-height: 1.8;
  color: #374151;
}

.legal-block p:last-child{
  margin-bottom: 0;
}

.legal-list{
  margin: 10px 0 0;
  padding-left: 22px;
  list-style: disc;
}

.legal-list li{
  margin: 10px 0;
  color: #374151;
  font-size: 17px;
  line-height: 1.75;
}

.legal-links-band{
  padding: 0 0 80px;
  background: #ffffff;
}

.legal-links-band .container{
  max-width: 950px;
  text-align: center;
}

.legal-links-band p{
  margin: 0 0 18px;
  font-size: 18px;
  color: #4b5563;
}

.legal-links{
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 14px;
}

.legal-links a{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 20px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 700;
  color: #1f2937;
  background: #ffffff;
  border: 1px solid rgba(14, 165, 164, 0.18);
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.legal-links a:hover{
  transform: translateY(-2px);
  background: #0ea5a4;
  color: #ffffff;
  box-shadow: 0 10px 24px rgba(14, 165, 164, 0.18);
}

/* Mini aviso para formularios */
.form-privacy-note{
  margin-top: 14px;
  padding: 14px 16px;
  border-radius: 14px;
  background: #f8fafc;
  border: 1px solid rgba(14, 165, 164, 0.14);
  font-size: 14px;
  line-height: 1.7;
  color: #4b5563;
}

.form-privacy-check{
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-top: 14px;
  font-size: 15px;
  line-height: 1.6;
  color: #374151;
}

.form-privacy-check input{
  margin-top: 4px;
  accent-color: #0ea5a4;
}

.form-privacy-check a,
.form-privacy-note a{
  color: #0ea5a4;
  font-weight: 700;
}

/* Tablet */
@media (max-width: 1024px){

  .hero-legal{
    padding: 105px 0 60px;
  }

  .hero-legal h1{
    font-size: 44px;
  }

  .hero-legal p{
    font-size: 18px;
  }

  .legal-card{
    padding: 34px 28px;
  }

  .legal-data-row{
    grid-template-columns: 180px 1fr;
  }

  .legal-block h2{
    font-size: 24px;
  }

  .legal-list li{
    font-size: 16px;
  }
}

/* Móvil */
@media (max-width: 700px){

  .hero-legal{
    padding: 95px 0 50px;
    background-position: center;
  }

  .hero-legal h1{
    font-size: 34px;
  }

  .hero-legal p{
    font-size: 16px;
    line-height: 1.7;
  }

  .legal-content{
    padding: 30px 0 50px;
  }

  .legal-card{
    padding: 24px 18px;
    border-radius: 22px;
  }

  .legal-intro{
    font-size: 15px;
  }

  .legal-data{
    padding: 14px 16px;
    border-radius: 18px;
  }

  .legal-data-row{
    grid-template-columns: 1fr;
    gap: 6px;
    padding: 10px 0;
  }

  .legal-label{
    font-size: 14px;
  }

  .legal-value{
    font-size: 15px;
  }

  .legal-block{
    padding: 20px 0;
  }

  .legal-block h2{
    font-size: 21px;
  }

  .legal-block p{
    font-size: 15px;
    line-height: 1.75;
  }

  .legal-list{
    padding-left: 18px;
  }

  .legal-list li{
    font-size: 15px;
    line-height: 1.7;
  }

  .legal-links-band{
    padding: 0 0 55px;
  }

  .legal-links-band p{
    font-size: 16px;
  }

  .legal-links{
    gap: 10px;
  }

  .legal-links a{
    width: 100%;
  }

  .form-privacy-note{
    font-size: 13px;
  }

  .form-privacy-check{
    font-size: 14px;
  }
}


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

.hero.hero-legal{
  padding: 120px 0 70px;
  background:
    linear-gradient(rgba(0,0,0,0.45)),
    url("../img/hero/legal.jpg") center/cover no-repeat;
  color: #ffffff;
}

.hero.hero-legal .container{
  max-width: 900px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
}

.hero.hero-legal .legal-kicker{
  display: inline-block;
  margin: 0 0 14px;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.14);
  border: 1px solid rgba(255, 255, 255, 0.32);
  font-size: 14px;
  font-weight: 700;
  color: #ffffff;
  letter-spacing: 0.02em;
  backdrop-filter: blur(4px);
}

.hero.hero-legal h1{
  width: 100%;
  max-width: 760px;
  margin: 0 0 18px !important;
  text-align: left !important;
  font-size: 56px;
  line-height: 1.05;
  color: #ffffff;
}

.hero.hero-legal p{
  width: 100%;
  max-width: 760px;
  margin: 0 !important;
  text-align: left !important;
  font-size: 20px;
  line-height: 1.65;
  color: rgba(255,255,255,0.92);
}

/* Tablet */
@media (max-width: 1024px){

  .hero.hero-legal{
    padding: 105px 0 60px;
  }

  .hero.hero-legal h1{
    font-size: 44px;
  }

  .hero.hero-legal p{
    font-size: 18px;
  }
}

/* Móvil */
@media (max-width: 700px){

  .hero.hero-legal{
    padding: 95px 0 50px;
    background-position: center;
  }

  .hero.hero-legal .container{
    align-items: flex-start;
    text-align: left;
  }

  .hero.hero-legal h1{
    max-width: 100%;
    font-size: 34px;
  }

  .hero.hero-legal p{
    max-width: 100%;
    font-size: 16px;
    line-height: 1.7;
  }
}

/* ==========================================
   HERO POLÍTICA DE COOKIES
========================================== */

.hero-cookies{
  padding: 120px 0 70px;
  background:
    linear-gradient(rgba(0,0,0,0.45), rgba(0,0,0,0.45)),
    url("../img/hero/legal.jpg") center/cover no-repeat;
  text-align: center;
  color: #ffffff;
}

.hero-cookies .container{
  max-width: 900px;
}

.hero-cookies h1{
  font-size: 52px;
  line-height: 1.1;
  margin-bottom: 16px;
}

.hero-cookies p{
  font-size: 20px;
  line-height: 1.6;
  opacity: 0.95;
}

.hero-cookies .legal-kicker{
  display: inline-block;
  margin-bottom: 14px;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,0.14);
  border: 1px solid rgba(255,255,255,0.32);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.02em;
  backdrop-filter: blur(4px);
}


/* ==========================================
   CONTENIDO LEGAL
========================================== */

.legal-content{
  padding: 90px 0;
}

.legal-content .container{
  max-width: 900px;
}

.legal-content h2{
  font-size: 30px;
  margin-top: 40px;
  margin-bottom: 16px;
}

.legal-content h3{
  font-size: 22px;
  margin-top: 20px;
  margin-bottom: 8px;
}

.legal-content p{
  font-size: 17px;
  line-height: 1.7;
  margin-bottom: 14px;
}

.legal-content ul{
  margin: 10px 0 22px 22px;
}

.legal-content li{
  margin-bottom: 6px;
}


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

/* Tablet */

@media (max-width: 1200px){

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

  .hero-cookies p{
    font-size: 18px;
  }

  .legal-content h2{
    font-size: 26px;
  }

}


/* Móvil */

@media (max-width: 600px){

  .hero-cookies{
    padding: 100px 0 60px;
  }

  .hero-cookies h1{
    font-size: 32px;
  }

  .hero-cookies p{
    font-size: 16px;
  }

  .legal-content{
    padding: 70px 0;
  }

  .legal-content h2{
    font-size: 22px;
  }

  .legal-content h3{
    font-size: 18px;
  }

  .legal-content p{
    font-size: 15px;
  }

}

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

.hero-cookies{
  padding: 120px 0 70px;
  background:
    linear-gradient(rgba(29,29,29,0.7)),
    url("../img/hero/cookies.jpg") center/cover no-repeat;
  text-align: center;
  color: #ffffff;
}

.hero-cookies .container{
  max-width: 900px;
}

.hero-cookies h1{
  font-size: 52px;
  line-height: 1.1;
  margin-bottom: 16px;
}

.hero-cookies p{
  font-size: 20px;
  line-height: 1.6;
}

.hero-cookies .legal-kicker{
  display: inline-block;
  margin-bottom: 14px;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,0.14);
  border: 1px solid rgba(255,255,255,0.32);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.02em;
  backdrop-filter: blur(4px);
}


/* ==========================================
   CONTENIDO LEGAL
========================================== */

.legal-content{
  padding: 90px 0;
}

.legal-content .container{
  max-width: 900px;
}


/* ==========================================
   TARJETA LEGAL
========================================== */

.legal-card{
  background: #ffffff;
  border-radius: 18px;
  padding: 50px;
  box-shadow: 0 10px 40px rgba(0,0,0,0.06);
}

.legal-intro{
  font-size: 18px;
  line-height: 1.7;
  margin-bottom: 35px;
  color: #444;
}


/* ==========================================
   BLOQUES DE CONTENIDO
========================================== */

.legal-block{
  margin-bottom: 34px;
}

.legal-block h2{
  font-size: 24px;
  margin-bottom: 12px;
}

.legal-block p{
  font-size: 16px;
  line-height: 1.7;
  margin-bottom: 12px;
}

.legal-block-last{
  margin-bottom: 0;
}


/* ==========================================
   DATOS LEGALES
========================================== */

.legal-data{
  margin: 30px 0 40px;
}

.legal-data-row{
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 24px;
  padding: 12px 0;
  border-bottom: 1px solid #eee;
}

.legal-label{
  font-weight: 600;
  color: #222;
}

.legal-value{
  color: #555;
  text-align: right;
}


/* ==========================================
   LISTAS LEGALES
========================================== */

.legal-list{
  margin-top: 10px;
  padding-left: 18px;
}

.legal-list li{
  margin-bottom: 8px;
  line-height: 1.6;
}


/* ==========================================
   BANDA ENLACES LEGALES
========================================== */

.legal-links-band{
  padding: 50px 0;
  text-align: center;
  background: #f7f7f7;
}

.legal-links-band p{
  margin-bottom: 14px;
  font-weight: 600;
}

.legal-links a{
  margin: 0 10px;
  text-decoration: none;
  font-weight: 600;
  color: #0b7a7a;
}

.legal-links a:hover{
  text-decoration: underline;
}


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

@media (max-width: 900px){

  .hero-cookies h1{
    font-size: 36px;
  }

  .hero-cookies p{
    font-size: 17px;
  }

  .legal-card{
    padding: 35px 25px;
  }

  .legal-block h2{
    font-size: 20px;
  }

  .legal-data-row{
    flex-direction: column;
    gap: 6px;
  }

  .legal-value{
    text-align: left;
  }

}