
/* ==============================================
   HERO COMERCIAL V2 — CRIADEROS VERIFICADOS
   Azul: #1D428A
   Amarillo: #FCBD02
   ============================================== */

.cv-hero-original.cv-hero-v2 {
  --cv-hero-blue: #1D428A;
  width: 100%;
  max-width: none;
  margin: 0 !important;
  padding: 0 !important;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: var(--cv-hero-blue) !important;
  color: #fff;
}

/* COLUMNAS */
.cv-hero-v2 .cv-hero-original-columnas {
  display: grid !important;
  grid-template-columns: minmax(0, 53%) minmax(0, 47%);
  gap: 0 !important;
  margin: 0 !important;
  min-height: 570px;
  align-items: stretch;
}

/* COLUMNA DE TEXTO */
.cv-hero-v2 .cv-hero-original-texto {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  z-index: 2;
  min-width: 0;
  padding: 72px 35px 100px max(32px, calc((100vw - 1440px)/2));
  margin: 0 !important;
}

/* ETIQUETA SUPERIOR */
.cv-hero-v2 .cv-hero-etiqueta {
  font-size: 13px;
  letter-spacing: .16em;
  font-weight: 700;
  text-transform: uppercase;
  color: #FCBD02 !important;
  margin: 0 0 15px !important;
}

/* TÍTULO */
.cv-hero-v2 h1.cv-hero-original-titulo,
.cv-hero-v2 .cv-hero-original-titulo {
  color: #FFFFFF !important;
  font-size: clamp(36px, 3.6vw, 60px) !important;
  line-height: 1.12 !important;
  font-weight: 800 !important;
  letter-spacing: -.025em;
  margin: 0 0 22px !important;
}

/* ENTRADILLA */
.cv-hero-v2 .cv-hero-original-entradilla {
  color: #EAF1FB !important;
  font-size: clamp(17px, 1.2vw, 20px);
  line-height: 1.65;
  max-width: 650px;
  margin: 0 0 30px !important;
}

/* CONTENEDOR DEL BOTÓN */
.cv-hero-v2 .cv-hero-original-botones {
  display: flex;
  gap: 12px;
  margin: 0 0 23px !important;
}

/* BOTÓN AMARILLO */
.cv-hero-v2 .cv-hero-boton-contacto .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  border-radius: 12px !important;
  padding: 15px 30px !important;
  font-size: 17px;
  line-height: 1.35;
  font-weight: 800;
  color: #1D428A !important;
  background: #FCBD02 !important;
  text-decoration: none;
  box-shadow: 0 7px 20px rgba(10, 30, 70, .20);
  transition: background .2s ease, transform .2s ease;
}

.cv-hero-v2 .cv-hero-boton-contacto .wp-block-button__link:hover {
  background: #FFDA61 !important;
  color: #1D428A !important;
  transform: translateY(-2px);
}

/* TEXTO INFERIOR */
.cv-hero-v2 .cv-hero-original-cierre {
  color: #EAF1FB !important;
  font-size: 15px;
  line-height: 1.6;
  margin: 0 !important;
  max-width: 590px;
}

/* FOTOGRAFÍA */
.cv-hero-v2 .cv-hero-original-foto {
  position: relative;
  min-width: 0;
  min-height: 570px;
  margin: 0 !important;
  overflow: hidden;
}

.cv-hero-v2 .cv-hero-original-foto .wp-block-shortcode,
.cv-hero-v2 .cv-hero-original-foto .wp-block-shortcode > p {
  height: 100%;
  margin: 0 !important;
}

.cv-hero-v2 .cv-hero-original-foto img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 570px;
  object-fit: cover;
  object-position: 50% 46%;
  border-radius: 0 !important;
}

/* DEGRADADO AZUL SOBRE LA IMAGEN */
.cv-hero-v2 .cv-hero-original-foto::before {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 42%;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(
    90deg,
    #1D428A 0%,
    rgba(29, 66, 138, .78) 27%,
    transparent 100%
  );
}


/* TABLET */
@media (max-width: 900px) {
  .cv-hero-v2 .cv-hero-original-columnas {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .cv-hero-v2 .cv-hero-original-foto {
    grid-row: 1;
    min-height: 0;
    height: 340px;
  }

  .cv-hero-v2 .cv-hero-original-foto img {
    min-height: 0;
    height: 340px;
  }

  .cv-hero-v2 .cv-hero-original-foto::before {
    width: 100%;
    height: 45%;
    inset: auto 0 0;
    background: linear-gradient(
      0deg,
      #1D428A,
      transparent
    );
  }

  .cv-hero-v2 .cv-hero-original-texto {
    grid-row: 2;
    padding: 20px 26px 85px;
  }

}

/* MÓVIL */
@media (max-width: 480px) {
  .cv-hero-v2 .cv-hero-original-foto,
  .cv-hero-v2 .cv-hero-original-foto img {
    height: 260px;
  }

  .cv-hero-v2 .cv-hero-original-texto {
    padding: 20px 20px 80px;
  }

  .cv-hero-v2 .cv-hero-original-botones .wp-block-button,
  .cv-hero-v2 .cv-hero-boton-contacto .wp-block-button__link {
    width: 100%;
  }
}
/* Integrar fotografía en el Hero */

.cv-hero-v2 .cv-hero-original-foto img {
    border-radius: 0 !important;
}

.cv-hero-v2 .cv-hero-original-foto::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 40%;
    background: linear-gradient(
        90deg,
        #1D428A 0%,
        rgba(29, 66, 138, 0) 100%
    );
    z-index: 1;
    pointer-events: none;
}

.cv-hero-v2 .cv-hero-original-texto {
    padding-right: 55px;
}
/* =====================================
   HERO COMERCIAL — MÓVIL
   ===================================== */

@media (max-width: 900px) {

  .cv-hero-v2 .cv-hero-original-columnas {
    display: grid !important;
    grid-template-columns: 1fr !important;
    min-height: 0 !important;
    gap: 0 !important;
  }

  /* Fotografía arriba */
  .cv-hero-v2 .cv-hero-original-foto {
    grid-row: 1;
    height: 280px !important;
    min-height: 0 !important;
    margin: 0 !important;
  }

  .cv-hero-v2 .cv-hero-original-foto img {
    width: 100%;
    height: 280px !important;
    min-height: 0 !important;
    object-fit: cover;
    object-position: center 42%;
    border-radius: 0 !important;
  }

  /* Degradado hacia el fondo azul */
  .cv-hero-v2 .cv-hero-original-foto::before {
    content: "";
    position: absolute;
    inset: auto 0 0 !important;
    width: 100% !important;
    height: 55% !important;
    background: linear-gradient(
      0deg,
      #1D428A 0%,
      rgba(29, 66, 138, 0) 100%
    ) !important;
  }

  /* Texto debajo de la imagen */
  .cv-hero-v2 .cv-hero-original-texto {
    grid-row: 2;
    padding: 26px 24px 85px !important;
    text-align: left;
  }

  /* Etiqueta */
  .cv-hero-v2 .cv-hero-etiqueta {
    font-size: 11px !important;
    margin-bottom: 12px !important;
  }

  /* Título */
  .cv-hero-v2 .cv-hero-original-titulo {
    font-size: clamp(30px, 7vw, 38px) !important;
    line-height: 1.15 !important;
    margin-bottom: 20px !important;
  }

  /* Descripción */
  .cv-hero-v2 .cv-hero-original-entradilla {
    font-size: 17px !important;
    line-height: 1.65 !important;
    margin-bottom: 25px !important;
  }

  /* Botón a ancho completo */
  .cv-hero-v2 .cv-hero-original-botones,
  .cv-hero-v2 .cv-hero-boton-contacto {
    width: 100%;
  }

  .cv-hero-v2 .cv-hero-boton-contacto .wp-block-button__link {
    width: 100%;
    box-sizing: border-box;
    text-align: center;
  }

  /* Texto de cierre */
  .cv-hero-v2 .cv-hero-original-cierre {
    font-size: 14px !important;
    line-height: 1.6;
  }

  /* Curva blanca inferior */
  .cv-hero-original.cv-hero-v2::after {
    height: 28px;
  }
}

/* ==================================
   LISTADO DE CRIADEROS COMERCIAL
   ================================== */

.cv-criaderos-listado {
    width: 100%;
    max-width: 1232px;
    margin: 0 auto 60px;
    padding: 0 20px;
    box-sizing: border-box;
}

.cv-criaderos-listado .archive-container {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 26px;
    width: 100%;
    height: auto;
    margin: 0;
}

.cv-criaderos-listado .grid-item {
    min-width: 0;
    padding: 16px;
    background: #FFFFFF;
    border: 1px solid #E1E4EA;
    border-radius: 20px;
    box-shadow: 0 5px 18px rgba(0,0,0,.05);
    overflow: hidden;
    text-align: center;
}

.cv-criaderos-listado .grid-item a {
    display: block;
    color: #1D428A;
    text-decoration: none;
}

.cv-criaderos-listado .thumbnail img {
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    height: auto;
    object-fit: cover;
    border-radius: 12px;
    margin: 0;
}

.cv-criaderos-listado .grid-item h2 {
    font-family: 'Baloo 2', sans-serif;
    color: #1D428A;
    font-size: 26px;
    line-height: 1.25;
    font-weight: 700;
    text-align: center;
    margin: 18px 0 8px;
    overflow-wrap: anywhere;
}

.cv-criaderos-listado .grid-item:hover {
    box-shadow: 0 10px 28px rgba(29,66,138,.12);
    transform: translateY(-3px);
    transition: .2s ease;
}

/* TABLET */
@media (max-width: 991px) {
    .cv-criaderos-listado .archive-container {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 20px;
    }
}

/* MÓVIL */
@media (max-width: 600px) {
    .cv-criaderos-listado .archive-container {
        grid-template-columns: 1fr;
    }

    .cv-criaderos-listado {
        padding: 0 16px;
    }
}

/* ====================================
   MAPA DE CRIADEROS — COMERCIAL
   ==================================== */

.cv-seccion-mapa {
    width: 100%;
    max-width: 1280px;
    margin: 30px auto 80px !important;
    padding: 35px 24px;
    box-sizing: border-box;
}

/* Título del mapa */
.cv-seccion-mapa .cv-titulo-mapa {
    font-family: inherit;
    color: #1D428A;
    font-size: clamp(28px, 3vw, 42px);
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    margin: 0 0 18px;
}

/* Texto introductorio */
.cv-seccion-mapa .cv-texto-mapa {
    font-family: inherit;
    color: #4A5568;
    font-size: inherit;
    line-height: 1.6;
    text-align: center;
    margin: 0 auto 35px;
    max-width: 800px;
}

/* Contenedor Leaflet */
.cv-seccion-mapa .cv-mapa-comercial {
    width: 100%;
    height: 460px;
    background: #EAF1FB;
    border-radius: 20px;
    border: 1px solid #DEE6F2;
    overflow: hidden;
    box-shadow: 0 8px 24px rgba(29, 66, 138, .08);
    z-index: 1;
}

/* Nombre de criadero en el popup */
.cv-mapa-comercial .leaflet-popup-content a {
    color: #1D428A;
    font-weight: 700;
    text-decoration: none;
}

.cv-mapa-comercial .leaflet-popup-content a:hover {
    text-decoration: underline;
}

/* Móvil */
@media (max-width: 767px) {
    .cv-seccion-mapa {
        padding: 20px 16px;
        margin-bottom: 45px !important;
    }

    .cv-seccion-mapa .cv-mapa-comercial {
        height: 330px;
        border-radius: 14px;
    }
}