:root {
  /* Accessible palette (higher contrast) */
  --primary: #006fae;
  /* links, primary buttons */
  --primary-contrast: #003a62;
  /* darker primary for borders/hover */
  --primary-text-on: #ffffff;
  /* text on primary backgrounds */
  --secondary: #132f4d;
  /* secondary UI elements */
  --light: #ffffff;
  /* light text color */
  --dark: #0f2340;
  /* page dark tone */
  --nav-h: 80px;
}

/* Accessibility helpers: contrast, focus and control colors */
.text-light {
  color: var(--light) !important;
}

.btn-primary,
.card_pepi,
.badge.bg-primary,
.home-cards-grid .badge.bg-primary {
  background-color: var(--primary) !important;
  color: var(--primary-text-on) !important;
  border-color: var(--primary-contrast) !important;
}

.btn-primary:hover,
.card_pepi:hover,
.badge.bg-primary:hover {
  background-color: var(--primary-contrast) !important;
  color: var(--primary-text-on) !important;
}

a {
  color: var(--primary) !important;
  text-decoration: underline;
}

a:hover,
a:focus {
  color: var(--primary-contrast) !important;
  text-decoration: underline;
}

:focus {
  outline: 3px solid rgba(0, 111, 174, 0.18);
  outline-offset: 2px;
}

.pagination .page-link {
  color: var(--dark);
}

.pagination .page-item.active .page-link {
  background-color: var(--primary) !important;
  color: var(--primary-text-on) !important;
  border-color: var(--primary-contrast) !important;
}

.news-card .news-card-overlay .badge {
  background-color: rgba(0, 0, 0, 0.6) !important;
  color: var(--light) !important;
}

.btn-close:focus {
  box-shadow: 0 0 0 3px rgba(0, 111, 174, 0.18);
}

.btn-menu-search {
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.15);
  border: 1px solid rgba(255, 255, 255, 0.75);
  color: #ffffff !important;
  font-weight: 700;
  border-radius: 8px;
  text-decoration: none !important;
}

.btn-menu-search:hover,
.btn-menu-search:focus,
.btn-menu-search.active {
  background: #ffffff;
  border-color: #ffffff;
  color: #0f3f75 !important;
}

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

html,
body {
  height: 100%;
}

body {
  font-family: 'Archivo', sans-serif;
  overflow-x: hidden;
  min-height: 100vh;
  padding-top: 0 !important;
}

/* Force Archivo in CAV pages (material wizard overrides) */
.cav-page,
.cav-page * {
  font-family: 'Archivo', sans-serif !important;
}

.cav-page .cav-choice-button input[type="radio"] {
  transform: scale(1.6);
  accent-color: var(--primary);
}

.cav-page .cav-choice-button input[type="radio"] {
  margin-right: 10px;
}

/* UTILIDADES */
.rounded-topP {
  border-radius: 20px 20px 0 0;
}

.rounded-fullP {
  border-radius: 20px;
}

/* HERO */
.hero-wrapper {
  height: calc(100vh + var(--nav-h));
  min-height: 650px;
  margin-top: calc(var(--nav-h) * -1);
  padding-top: 0;
  position: relative;
  overflow: hidden;
}

.hero-wrapper #header-carousel {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  z-index: 0;
}

.hero-wrapper #header-carousel {
  margin-top: 0;
}

.carousel,
.carousel-inner,
.carousel-item,
.carousel-img {
  height: 100%;
}

.carousel-item {
  overflow: hidden;
}

.carousel-img {
  width: 100%;
  height: 100%;
  display: block;
}

.hero-wrapper .carousel,
.hero-wrapper .carousel-inner,
.hero-wrapper .carousel-item,
.hero-wrapper .carousel-img {
  height: 120vh;
  min-height: 100vh;
}

.carousel-img {
  object-fit: cover;
}

/* Home: hero casi de pantalla completa, dejando asomar la primera fila */
.home-hero {
  height: calc(90vh + var(--nav-h));
  min-height: 600px;
}

.home-hero #header-carousel,
.home-hero .carousel,
.home-hero .carousel-inner,
.home-hero .carousel-item,
.home-hero .carousel-img {
  height: 90vh;
  min-height: 600px;
}

.home-hero .carousel-img-first {
  object-position: center 30%;
}

.carousel-item.slide-bg {
  position: relative;
}

.carousel-item.slide-bg::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: var(--slide-bg);
  background-size: cover;
  background-position: center;
  filter: blur(16px);
  transform: scale(1.08);
  z-index: 0;
}

.carousel-item.slide-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.2);
  z-index: 0;
}

.carousel-item.slide-bg .carousel-img {
  position: relative;
  z-index: 1;
}

@media (max-width: 768px) {
  .home-hero {
    height: calc(82vh + var(--nav-h)) !important;
    min-height: 420px !important;
  }

  .home-hero #header-carousel,
  .home-hero .carousel,
  .home-hero .carousel-inner,
  .home-hero .carousel-item,
  .home-hero .carousel-img {
    height: 82vh !important;
    min-height: 420px !important;
  }

  .home-hero .carousel-img {
    object-fit: contain;
    object-position: center 25%;
  }

  .home-hero .carousel-img-first {
    object-position: center 20%;
  }
}

.carousel-caption {
  inset: 0;
  display: flex !important;
  align-items: center;
  justify-content: center;
  background: linear-gradient(to bottom, rgba(0, 0, 0, .25), rgba(0, 0, 0, .6));
  text-align: center;
}

/* MAIN debajo del hero */
.content-after-hero {
  margin-top: 0;
  padding-top: 0;
}

.content-after-hero {
  margin-top: -70px;
}



/* ========================================================*/
/* CARDS */
.card_pepi {
  border-radius: 20px;
  background-color: var(--primary);
  box-shadow: 0 6px 20px rgba(0, 0, 0, .15);
  transition: .3s;
  color: #fff;
}

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

/* Wrapper link del card */
.card-link-wrapper {
  display: block;
  height: 100%;
  color: inherit;
}

.card-link-wrapper.card-button {
  background: transparent;
  border: 0;
  padding: 0;
  width: 100%;
  text-align: inherit;
}

/* Cursor */
.card-link-wrapper:hover {
  text-decoration: none;
}

/* Animación del card */
.card-link-wrapper .card_pepi {
  transition: transform 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease;
}

/* Hover effect */
.card-link-wrapper:hover .card_pepi {
  transform: translateY(-10px) scale(1.00);
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.2);
  background-color: var(--secondary)
}

/* Hover zona inferior */
.card-link-wrapper:hover .team-text {
  background-color: var(--primary);
}

/* Asegura que el card no recorte el borde */
.team-item.card_pepi {
  overflow: hidden;
  border-radius: 20px;
  min-height: 0;
}

/* Imagen un poco más compacta si hace falta */
.team-item.card_pepi img {
  display: block;
  margin-top: -30px;
  padding-bottom: 25px;
}

/* Parte inferior más chica y más cerca de la imagen */
.team-text {
  padding-top: 0.9rem !important;
  padding-bottom: 1.1rem !important;
  margin-top: -60px;
  /* acerca el texto a la imagen */
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
}

/* Mantener redondeo inferior */
#rounded-bottomP {
  border-radius: 0 0 20px 20px;
}

/* También en hover */
.card-link-wrapper:hover #rounded-bottomP {
  border-radius: 0 0 20px 20px !important;
}

/* Hover card */
.card-link-wrapper:hover .card_pepi {
  transform: translateY(-10px) scale(1.02);
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.2);
  background-color: var(--secondary);
}

/* Hover fondo inferior */
.card-link-wrapper:hover .team-text {
  background-color: var(--primary);
  color: #fff;
}

.mascotas-info-banner {
  background: linear-gradient(135deg, rgba(5, 129, 201, 0.12), rgba(28, 64, 112, 0.12));
  border: 1px solid rgba(5, 129, 201, 0.2);
  border-radius: 20px;
  padding: 2.2rem 2.4rem;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.12);
}

.mascotas-info-banner-alt {
  background: linear-gradient(135deg, rgba(28, 64, 112, 0.18), rgba(5, 129, 201, 0.08));
}

.mascotas-info-inner {
  max-width: 980px;
  margin: 0 auto;
}

.mascotas-info-title {
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 0.8rem;
  color: var(--secondary);
}

.mascotas-info-list {
  margin: 0.9rem 0 1rem;
  padding-left: 1.2rem;
}

.mascotas-info-list li {
  margin-bottom: 0.35rem;
}

.mascotas-info-highlight {
  font-weight: 700;
  text-transform: uppercase;
  color: var(--secondary);
  margin-top: 0.8rem;
}

.mascotas-card-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 120px;
  margin-bottom: 12px;
}

.mascotas-card-icon i {
  font-size: 3rem;
  color: #fff;
}

.adop-card {
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.14);
  border: 1px solid rgba(0, 0, 0, 0.06);
}

.adop-card-img {
  width: 100%;
  height: 420px;
  object-fit: cover;
  background: transparent;
  padding: 0;
  border-radius: 14px 14px 0 0;
}

.telemedicina-media {
  width: 100%;
  height: 240px;
  object-fit: contain;
  background: #f8f9fa;
  border-radius: 16px;
  padding: 12px;
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.12);
  border: 1px solid rgba(0, 0, 0, 0.06);
}

.telemedicina-zoom {
  cursor: zoom-in;
}

#telemedicinaModal .btn-close {
  z-index: 2000;
}

.huerta-info-banner {
  background: linear-gradient(135deg, rgba(93, 172, 69, 0.15), rgba(201, 222, 98, 0.18));
  border: 1px solid rgba(93, 172, 69, 0.25);
  border-radius: 20px;
  padding: 2rem 2.2rem;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12);
}

.huerta-info-inner {
  max-width: 900px;
  margin: 0 auto;
}

.huerta-info-title {
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--secondary);
}

.huerta-carousel-img {
  width: 100%;
  height: 420px;
  object-fit: cover;
  border-radius: 18px;
}

.huerta-carousel-section .carousel,
.huerta-carousel-section .carousel-inner,
.huerta-carousel-section .carousel-item {
  height: auto !important;
}

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

.huerta-card-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 140px;
  margin-bottom: 8px;
}

.huerta-card-icon i {
  font-size: 3rem;
  color: #fff;
}

.huerta-cta .team-item.card_pepi {
  border-radius: 20px;
  overflow: hidden;
}

.huerta-cta .huerta-card-icon {
  height: 160px;
  margin-bottom: 0;
  align-items: flex-start;
  padding-top: 15px;
}

.huerta-section-title {
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 1.5rem;
  color: var(--secondary);
}

.cupo-info-banner {
  background: linear-gradient(135deg, rgba(135, 97, 194, 0.18), rgba(135, 97, 194, 0.08));
  border: 1px solid rgba(135, 97, 194, 0.28);
  border-radius: 20px;
  padding: 2rem 2.2rem;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12);
}

.cupo-info-inner {
  max-width: 900px;
  margin: 0 auto;
}

.cupo-info-title {
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #8761c2;
  margin-bottom: 0.8rem;
}

.cupo-info-image {
  border-radius: 18px;
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.12);
}

.curso-info-banner {
  background: linear-gradient(135deg, rgba(5, 129, 201, 0.12), rgba(28, 64, 112, 0.12));
  border: 1px solid rgba(5, 129, 201, 0.2);
  border-radius: 20px;
  padding: 2rem 2.2rem;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12);
}

.curso-info-title {
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--secondary);
  margin-bottom: 0.8rem;
}

.curso-video {
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 16px;
  overflow: hidden;
}

.limpio-video-wrapper {
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12);
}

.limpio-video {
  width: 100%;
  height: 520px;
  border: 0;
  display: block;
}

@media (max-width: 768px) {
  .limpio-video {
    height: 320px;
  }
}

.cupo-card-icon {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  height: 160px;
  margin-bottom: 0;
  padding-top: 15px;
}

.cupo-card-icon i {
  font-size: 3rem;
  color: #fff;
}

.cupo-cta .team-item.card_pepi {
  min-height: 0;
}

.huerta-doc-card {
  border-radius: 16px;
  border: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
}

.huerta-cta-section {
  margin-top: 0;
  padding-top: 25px;
}

.huerta-carousel-section {
  margin-bottom: 0px;
}

@media (min-width: 992px) {
  .telemedicina-media {
    height: 260px;
  }
}

.home-card-col {
  flex: 0 0 50%;
  max-width: 50%;
}

@media (min-width: 768px) {
  .home-card-col {
    flex: 0 0 25%;
    max-width: 25%;
  }
}

@media (min-width: 768px) and (max-width: 991.98px) {
  .home-card-col .team-item.card_pepi img {
    margin-top: -20px;
    padding-bottom: 18px;
    transform: scale(0.96);
    transform-origin: center top;
  }

  .home-card-col .team-text {
    font-size: 0.82rem;
    line-height: 1.15;
    letter-spacing: 0.6px;
    padding-left: 0.45rem !important;
    padding-right: 0.45rem !important;
  }
}

@media (min-width: 992px) {
  .home-card-col {
    flex: 0 0 20%;
    max-width: 20%;
  }
}


/* ================== AJUSTES CARDS MOBILE ================== */
@media (max-width: 767.98px) {

  /* Card general */
  .team-item.card_pepi {
    border-radius: 14px;
    overflow: hidden;
    /* evita que algo se salga */
    max-width: 100%;
    aspect-ratio: 1 / 1;
    display: flex;
    flex-direction: column;
  }

  /* Imagen dentro del card */
  .team-item.card_pepi img {
    width: 100%;
    max-height: 148px;
    /* controla la altura */
    object-fit: contain;
    /* evita deformacion */
    padding: 24px 6px;
    /* aire interno */
  }

  /* Contenedor imagen */
  .team-item.card_pepi .position-relative {
    display: flex;
    justify-content: center;
    align-items: center;
    flex: 1;
  }

  /* Texto inferior */
  .team-item.card_pepi .team-text {
    padding: 0.6rem 0.5rem !important;
    font-size: 0.65rem;
    /* texto mas chico */
    line-height: 1.2;
    min-height: auto;
    flex: 0;
  }

  .home-card-col {
    padding-left: 6px;
    padding-right: 6px;
  }

  /* Sin hover en moviles */
  .card-link-wrapper:hover .card_pepi,
  .card-link-wrapper:hover .team-text {
    transform: none !important;
    box-shadow: none !important;
    background-color: var(--primary) !important;
  }
}



/*========================================================*/



/* TR�MITES */
.tramites-intro {
  background: rgba(28, 64, 112, 0.08);
  border-radius: 16px;
}

.tramites-grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 24px;
}

.tramites-item {
  position: relative;
  margin: 0;
}

.tramites-item:nth-child(odd) {
  grid-column: 1 / span 6;
}

.tramites-item:nth-child(even) {
  grid-column: 7 / span 6;
}

.tramites-card {
  position: relative;
  background: var(--secondary);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  height: 100%;
  color: #f8f9fa;
}

.tramites-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 32px rgba(0, 0, 0, 0.35);
}

.tramites-card-alt {
  background: rgba(28, 64, 112, 0.92);
}

.tramites-app {
  background: rgba(28, 64, 112, 0.95);
  border-color: rgba(255, 255, 255, 0.12);
}

.tramites-step {
  padding-left: 42px;
}

.tramites-step::before {
  content: attr(data-step);
  position: absolute;
  left: 16px;
  top: 16px;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--primary);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 0 4px rgba(5, 129, 201, 0.18);
  z-index: 1;
}

.tramites-card .alert {
  background: rgba(255, 255, 255, 0.08);
  color: #f8f9fa;
  border-color: rgba(255, 255, 255, 0.18);
}

.alert-amarillo {
  background: rgba(255, 242, 0, 0.48) !important;
  border-color: rgba(255, 255, 255, 0.55) !important;
  color: #eef7ff !important;
}

.alert-celeste {
  background: rgba(5, 129, 201, 0.28) !important;
  border-color: rgba(5, 129, 201, 0.55) !important;
  color: #eef7ff !important;
}

.tramites-btn {
  width: 95%;
  border-radius: 50px;
  border: 2px solid #fff;
  background: var(--primary);
  color: #fff;
  transition: .3s;
}

.tramites-btn:hover {
  background: var(--secondary);
}

@media (max-width: 991.98px) {
  .tramites-grid {
    grid-template-columns: 1fr !important;
  }

  .tramites-item {
    grid-column: 1 / -1 !important;
    width: 100% !important;
  }
}

/* MENU */

/* ================= NAVBAR COLORES ================= */

#mainNavbar.fixed-top {
  background: transparent;
  backdrop-filter: none;
  border-bottom: none;
  transition: .3s;
}

#mainNavbar.fixed-top.scrolled {
  background: rgba(78, 102, 150, .92) !important;
}

@media (max-width: 767.98px) {
  .mascotas-cards .team-text {
    font-size: 0.85rem;
    line-height: 1.25;
    padding: 0.9rem 0.85rem !important;
    letter-spacing: 0.7px;
  }
}

@media (max-width: 767.98px) {
  #mainNavbar.fixed-top {
    background: rgb(28, 64, 112) !important;
    backdrop-filter: saturate(120%) blur(6px);
  }

  #mainNavbar:not(.scrolled),
  #mainNavbar .container-fluid,
  #mainNavbar .navbar-collapse,
  .navbar {
    background: rgb(28, 64, 112) !important;
    background-color: rgb(28, 64, 112) !important;
  }
}

/* Admin navbar */
.admin-page #mainNavbar.fixed-top {
  background: rgba(0, 0, 0, 0.6) !important;
}

.admin-page #mainNavbar.fixed-top.scrolled {
  background: rgba(0, 0, 0, 0.75) !important;
}

/* Navbar superpuesta y sticky */
#mainNavbar.navbar-absolute {
  position: fixed !important;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
}

#mainNavbar {
  --bs-navbar-bg: transparent;
  box-shadow: none !important;
}

#mainNavbar:not(.scrolled) {
  background: transparent !important;
  background-color: transparent !important;
}

#mainNavbar .container-fluid {
  background: transparent !important;
  background-color: transparent !important;
}

#mainNavbar .navbar-collapse {
  background: transparent !important;
  background-color: transparent !important;
}

.navbar {
  background: transparent !important;
  background-color: transparent !important;
}


#mainNavbar .navbar-nav .nav-link {
  color: var(--light) !important;
  /* amarillo */
  font-weight: 500;
  padding: 0.6rem 1.1rem;
  border-radius: 8px;
  transition: all 0.25s ease;
}

/* Hover links */
#mainNavbar .navbar-nav .nav-link:hover {
  color: var(--light) !important;
  background: var(--secondary);
}

/* Activo */
#mainNavbar .navbar-nav .nav-link.active,
#mainNavbar .navbar-nav .show>.nav-link {
  background: #0581c9;
  color: #ffffff !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
}

/* ================= SUBMENU ================= */

#mainNavbar .dropdown-menu {
  background: #e9ecef;
  border: none;
  border-radius: 10px;
  padding: 0.5rem;
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.25);
}

/* Items submenu */
#mainNavbar .dropdown-menu .dropdown-item {
  color: #111;
  padding: 0.55rem 1rem;
  border-radius: 6px;
  transition: all 0.2s ease;
}

/* Hover submenu */
#mainNavbar .dropdown-menu .dropdown-item:hover {
  background: #046ea9;
  color: #fff !important;
}

/* Activo submenu */
#mainNavbar .dropdown-menu .dropdown-item.active,
#mainNavbar .dropdown-menu .dropdown-item.active:focus,
#mainNavbar .dropdown-menu .dropdown-item.active:active,
#mainNavbar .dropdown-menu .dropdown-item:active {
  background: #046ea9;
  color: #fff !important;
  font-weight: 600;
}

/* Quitar caret feo en mobile */
.navbar-toggler {
  border-color: rgba(255, 255, 255, 0.5);
}

/* Icono hamburguesa visible */
.navbar-toggler-icon {
  filter: brightness(10);
}

/* ========== NAV INDICATOR SLIDE ========== */

.navbar-nav {
  position: relative;
}

.nav-indicator {
  position: absolute;
  bottom: 0;
  height: 3px;
  background: var(--light);
  border-radius: 10px;
  transition: all 0.35s ease;
  opacity: 0;
}

/* ===== Carousel indicators (home) ===== */
#header-carousel .carousel-indicators [data-bs-target] {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.45);
  margin: 0 6px;
  opacity: 1;
  border: 2px solid rgba(255, 255, 255, 0.6);
}

#header-carousel .carousel-indicators .active {
  background-color: #ffffff;
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.25);
}

/* ===== Carousel arrows (home) ===== */
#header-carousel .carousel-control-prev-icon,
#header-carousel .carousel-control-next-icon {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background-color: rgba(0, 0, 0, 0.45);
  background-size: 55% 55%;
}

#header-carousel .carousel-control-prev,
#header-carousel .carousel-control-next {
  width: 6%;
}

/* ================= NOTICIAS ================= */
.hero-news .carousel-caption {
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 0.7));
}

.hero-news .caption-content {
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
  background: rgba(0, 0, 0, 0.5);
  padding: 2.5rem;
  border-radius: 16px;
  backdrop-filter: blur(4px);
}

#news-carousel .carousel-control-prev,
#news-carousel .carousel-control-next {
  width: 8%;
}

@media (max-width: 768px) {
  .hero-news .carousel-caption {
    align-items: center !important;
    padding: 0 14%;
  }

  #news-carousel .carousel-control-prev,
  #news-carousel .carousel-control-next {
    width: 12%;
  }
  
  .hero-news .caption-content p.lead {
    display: none;
  }
}

.news-filters {
  margin-top: 5rem;
}

.news-filters .form-label {
  font-weight: 600;
}

.news-card {
  display: block;
  aspect-ratio: 1 / 1;
  background-size: cover;
  background-position: center;
  border-radius: 16px;
  overflow: hidden;
  text-decoration: none;
  color: #fff;
  position: relative;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.2);
  transition: transform .25s ease, box-shadow .25s ease;
}

.news-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 32px rgba(0, 0, 0, 0.28);
}

.news-card-overlay {
  position: absolute;
  inset: 0;
  padding: 1rem;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0.2));
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

.news-card-overlay .badge {
  display: inline-block;
  width: auto;
  align-self: flex-start;
}

.news-card h5 {
  font-weight: 700;
  font-size: .92rem;
  line-height: 1.2;
  margin-bottom: .5rem;
  color: #ffffff !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.45);
}

.news-card small {
  color: #d7e8ff !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
}

.news-card p {
  margin-bottom: .5rem;
  font-size: .95rem;
}

.news-detail-hero {
  position: relative;
  height: calc(76vh + var(--nav-h));
  min-height: 340px;
  margin-top: calc(var(--nav-h) * -1);
  background-size: cover;
  background-position: center 32%;
  background-repeat: no-repeat;
}

.news-detail-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(0, 0, 0, 0.18) 0%, rgba(0, 0, 0, 0.28) 42%, rgba(0, 0, 0, 0.82) 100%);
  color: #fff;
  display: flex;
  align-items: flex-end;
  padding: 2rem 0;
}

.news-detail-overlay .container {
  position: relative;
  z-index: 1;
}

.news-detail-overlay h1 {
  max-width: 44ch;
  margin-bottom: .45rem;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.2;
  text-shadow: 0 10px 24px rgba(0, 0, 0, .35);
}

.news-detail-overlay p {
  margin-bottom: 0;
  font-weight: 600;
  text-shadow: 0 8px 20px rgba(0, 0, 0, .3);
}

.news-detail-body {
  font-size: 1.05rem;
  line-height: 1.7;
}

/* ================= NOTICIAS COMPARTIR (ESTILO PERIODICO) ================= */
.news-share-card {
  position: relative;
  padding: 1.5rem 0;
  margin-top: 4rem !important;
  border-top: 2px solid #1c4070;
  border-bottom: 1px solid #e0e0e0;
  background: transparent;
  box-shadow: none;
  border-radius: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  overflow: visible;
}

.news-share-card::before {
  display: none;
}

.news-share-header {
  margin-bottom: 0;
  flex: 0 0 auto;
}

.news-share-kicker {
  display: flex;
  align-items: center;
  gap: 10px;
  background: transparent;
  padding: 0;
  color: #1c4070;
  font-size: 0.9rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.news-share-kicker::after {
  content: ":";
}

.news-share-header h2 {
  display: none;
}

.news-share-actions {
  display: flex;
  gap: 0.8rem;
  grid-template-columns: none;
}

.news-share-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  min-height: auto;
  padding: 0;
  border-radius: 50%;
  background: #f8f9fa;
  border: 1px solid #dee2e6;
  color: #555;
  text-decoration: none;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: none;
}

.news-share-btn span {
  display: none;
}

.news-share-btn i {
  font-size: 1.15rem;
}

.news-share-btn:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 15px rgba(0, 0, 0, 0.1);
  color: #fff;
  border-color: transparent;
}

.news-share-btn.is-facebook:hover {
  background-color: #1877f2;
}

.news-share-btn.is-whatsapp:hover {
  background-color: #25d366;
}

.news-share-btn.is-linkedin:hover {
  background-color: #0a66c2;
}

.news-share-btn.is-instagram:hover {
  background: linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);
}

.news-share-btn.is-x:hover {
  background-color: #000;
}

.news-share-help {
  width: 100%;
  margin-top: 1rem;
  color: #888;
  font-size: 0.82rem;
  font-style: italic;
  order: 3;
}

.news-share-feedback {
  position: absolute;
  bottom: -25px;
  left: 0;
  font-size: 0.85rem;
  font-weight: 600;
  color: #1c4070;
}

@media (max-width: 768px) {
  .news-share-card {
    flex-direction: column;
    align-items: flex-start;
    padding: 1.2rem 0;
  }

  .news-share-header {
    margin-bottom: 0.8rem;
  }
}

.news-share-feedback.is-visible {
  opacity: 1;
}

.news-share-feedback.is-error {
  color: #b42318;
}

.news-detail-body a {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  margin: .2rem .35rem .2rem 0;
  padding: .15rem 1rem;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--primary), var(--secondary));
  color: #fff;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.14);
  word-break: break-word;
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}

/* ================= NOTICIAS RELACIONADAS ================= */
.related-news {
  border-top: 1px solid #eee;
  margin-top: 3rem;
}

.related-news-header {
  position: relative;
  display: flex;
  align-items: center;
  gap: 1.5rem;
}

.related-news-title {
  color: #1c4070;
  font-weight: 800;
  font-size: 1.5rem;
  margin-bottom: 0;
  white-space: nowrap;
}

.related-news-divider {
  flex-grow: 1;
  height: 2px;
  background: #1c4070;
  opacity: 0.15;
}

@media (max-width: 768px) {
  .related-news-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
  }

  .related-news-divider {
    width: 100%;
    flex-grow: 0;
  }
}

@media (max-width: 991.98px) {
  .news-detail-hero {
    height: calc(40vh + var(--nav-h));
    min-height: 260px;
    background-position: center 24%;
  }

  .news-detail-overlay {
    padding: 1.5rem 0;
  }

  .news-detail-overlay h1 {
    max-width: 100%;
    font-size: clamp(1.05rem, 3.8vw, 0.45rem);
    line-height: 1.15;
  }

  .news-share-card {
    padding: 1rem 1rem .9rem;
    border-radius: 20px;
  }

  .news-share-header h2 {
    font-size: 1.16rem;
  }

  .news-share-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
  }

  .news-share-btn {
    width: 42px;
    height: 42px;
    min-height: 42px;
    padding: 0;
    border-radius: 50%;
  }
}

@media (max-width: 575.98px) {
  .news-share-actions {
    gap: .6rem;
  }

  .news-share-btn {
    width: 40px;
    height: 40px;
    min-height: 40px;
    padding: 0;
    border-radius: 50%;
    justify-content: center;
  }
}

/*.news-detail-body a::after{
    content: "\200D";
    font-size: .95em;
    line-height: 1;
}*/
.news-detail-body a:hover {
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.18);
  filter: brightness(1.03);
}

.news-gallery-img {
  width: 100%;
  height: 240px;
  object-fit: cover;
}

.news-gallery-trigger {
  cursor: zoom-in;
}

#newsModalImage {
  max-height: 85vh;
  width: auto;
}

/* ================= banner EMBED ================= */
.Pagina-embed {
  width: 100%;
  height: 120vh;
  min-height: 600px;
  overflow: hidden;
  border-radius: 12px;
}

.Pagina-embed2 {
  width: 100%;
  height: 160vh;
  min-height: 600px;
  overflow: hidden;
  border-radius: 12px;
}

.Pagina-embed3 {
  width: 100%;
  height: 50vh;
  min-height: 600px;
  overflow: hidden;
  border-radius: 12px;
}

.Pagina-embed4 {
  width: 100%;
  height: 90vh;
  min-height: 600px;
  overflow: hidden;
  border-radius: 12px;
}

.Pagina-embed5 {
  width: 100%;
  height: 180vh;
  min-height: 600px;
  overflow: hidden;
  border-radius: 12px;
}


/* ================= TELEFONOS HERO ================= */
.phone-hero {
  position: relative;
  height: 40vh;
  min-height: 260px;
  background: url("../img/head_News.jpg") center/cover no-repeat;
  margin-top: calc(var(--nav-h) * -1);
}

.phone-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 0.65));
  display: flex;
  align-items: flex-end;
  padding: 2rem 0;
  color: #fff;
}

/* ================= TELEMEDICINA HERO ================= */

.Telem-hero {
  position: relative;
  height: 40vh;
  min-height: 260px;
  background: url("../img/head_Tele.jpg") center/cover no-repeat;
  margin-top: calc(var(--nav-h) * -1);
}


/* ================= ITRAMITES HERO ================= */

.iTram-hero {
  position: relative;
  height: 40vh;
  min-height: 260px;
  background: url("../img/head_Tramites.jpg") center/cover no-repeat;
  margin-top: calc(var(--nav-h) * -1);
}

/* ================= ITRAMITES HERO ================= */

.Autoges-hero {
  position: relative;
  height: 40vh;
  min-height: 260px;
  background: url("../img/head_Autogestion.jpg") center/cover no-repeat;
  margin-top: calc(var(--nav-h) * -1);
}

/* ================= ITRAMITES HERO ================= */

.Defcons-hero {
  position: relative;
  height: 40vh;
  min-height: 260px;
  background: url("../img/head_defcons.jpg") center/cover no-repeat;
  margin-top: calc(var(--nav-h) * -1);
}


/* ================= EESTACIONAMIENTO HERO ================= */

.Estacionamiento-hero {
  position: relative;
  height: 40vh;
  min-height: 260px;
  background: url("../img/head_Esta.jpg") center/cover no-repeat;
  margin-top: calc(var(--nav-h) * -1);
}

/* ================= MASCOTAS HERO ================= */

.Masco-hero {
  position: relative;
  height: 40vh;
  min-height: 260px;
  background: url("../img/head_Masco.jpg") center/cover no-repeat;
  margin-top: calc(var(--nav-h) * -1);
}

/* ================= HUERTA HERO ================= */

.Huerta-hero {
  position: relative;
  height: 40vh;
  min-height: 260px;
  background: url("../img/head_Huerta.jpg") center/cover no-repeat;
  margin-top: calc(var(--nav-h) * -1);
}


/* ================= LIMPIO HERO ================= */

.limpio-hero {
  position: relative;
  height: 40vh;
  min-height: 260px;
  background: url("../img/head_limpio.jpg") center/cover no-repeat;
  margin-top: calc(var(--nav-h) * -1);
}

/* ================= CALIDAD HERO ================= */

.calidad-hero {
  position: relative;
  height: 40vh;
  min-height: 260px;
  background: url("../img/head_Iso.jpg") center/cover no-repeat;
  margin-top: calc(var(--nav-h) * -1);
}

.calidad-card-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 140px;
  color: #fff;
  margin-bottom: 20px;
}

.calidad-card-icon i {
  font-size: 3rem;
  color: #fff;
}

.calidad-card-img {
  width: 192px;
  height: 192px;
  object-fit: contain;
}

.calidad-sections {
  display: block;
}

.calidad-section {
  display: none;
  margin-top: 2rem;
}

.calidad-section:target {
  display: block;
  background: #f7f9fb;
  border-radius: 24px;
  padding: 2rem;
  box-shadow: 0 12px 26px rgba(12, 39, 74, 0.08);
  color: #1c4070;
}

.calidad-section.is-open {
  display: block;
  background: #f7f9fb;
  border-radius: 24px;
  padding: 2rem;
  box-shadow: 0 12px 26px rgba(12, 39, 74, 0.08);
  color: #1c4070;
}

.calidad-section.is-open [data-aos] {
  opacity: 1 !important;
  transform: none !important;
  visibility: visible !important;
}

.calidad-section:target [data-aos] {
  opacity: 1 !important;
  transform: none !important;
  visibility: visible !important;
}

.calidad-force-visible {
  opacity: 1 !important;
  transform: none !important;
  visibility: visible !important;
  position: relative;
  z-index: 1;
}

.calidad-force-visible * {
  visibility: visible !important;
}

.calidad-section.is-open a {
  color: inherit;
}

.calidad-section.is-open .table {
  color: #1c4070;
}

.calidad-section.is-open .table td,
.calidad-section.is-open .table th {
  color: inherit;
}

.calidad-banner img {
  width: 100%;
  border-radius: 16px;
  box-shadow: 0 12px 26px rgba(0, 0, 0, 0.18);
  margin-bottom: 1.6rem;
}

.calidad-commit {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 2rem;
  background: #eef2f5;
  border-radius: 18px;
  padding: 2.4rem 2.4rem;
  box-shadow: 0 12px 26px rgba(0, 0, 0, 0.12);
}

.calidad-commit-tag {
  grid-column: 1 / -1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 1.2rem;
  padding: 0.45rem 1.2rem;
  background: #0b4a7a;
  color: #fff;
  border-radius: 999px;
  font-weight: 700;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  font-size: 0.9rem;
  max-width: 50%;
  justify-self: center;
}

.calidad-commit-sep {
  margin: 0 0.45rem;
  opacity: 0.9;
}

.calidad-policy {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 2.5rem;
  background: #f1f3f4;
  border-radius: 22px;
  padding: 2.8rem 2.6rem;
  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.14);
}

.calidad-policy-left {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
}

.calidad-policy-header {
  display: flex;
  align-items: center;
  gap: 1.4rem;
}

.calidad-policy-header .calidad-policy-title {
  margin: 0;
}

.calidad-policy-icon {
  position: relative;
  width: 84px;
  height: 84px;
  border-radius: 18px;
  background: #0b4a7a;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  box-shadow: 0 10px 20px rgba(12, 39, 74, 0.2);
}

.calidad-policy-icon i {
  font-size: 2.2rem;
}

.calidad-policy-icon i.bi-award-fill {
  position: absolute;
  right: -8px;
  bottom: -6px;
  background: #0b4a7a;
  border-radius: 50%;
  padding: 6px;
  font-size: 1rem;
  box-shadow: 0 6px 12px rgba(12, 39, 74, 0.2);
}

.calidad-policy-title {
  margin: 0;
  color: #1c4070;
  font-weight: 900;
  font-size: 2.4rem;
  line-height: 1.05;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.calidad-policy-rule {
  height: 2px;
  background: rgba(28, 64, 112, 0.35);
  border-radius: 999px;
}

.calidad-policy-body {
  margin: 0;
  color: #1c4070;
  font-size: 1.05rem;
  line-height: 1.6;
}

.calidad-policy-note {
  margin: 0;
  font-weight: 700;
  color: #1c4070;
  font-size: 1.05rem;
}

.calidad-policy-right {
  display: flex;
  align-items: center;
}

.calidad-policy-card {
  background: #e2e4e6;
  border-radius: 26px;
  padding: 2.2rem;
  width: 100%;
}

.calidad-policy-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}

.calidad-policy-item {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  color: #2b2f33;
  font-size: 1.05rem;
  line-height: 1.5;
}

.calidad-policy-check {
  flex: 0 0 auto;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #0b4a7a;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 1rem;
}

.calidad-files {
  background: #f1f3f4;
  border-radius: 22px;
  padding: 2.6rem;
  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.14);
}

.calidad-hallazgos-table thead th {
  background: #4f78ae;
  color: #fff;
  font-weight: 700;
  border: none;
}

.calidad-hallazgos-table tbody tr {
  background: #fff;
}

.calidad-hallazgos-table tbody td {
  border-color: rgba(28, 64, 112, 0.12);
}

.hallazgos-filter .form-label {
  font-weight: 700;
  color: #1c4070;
}

.hallazgos-pager-card {
  background: #f1f3f4;
  border-radius: 18px;
  padding: 1rem 1.2rem;
  box-shadow: 0 10px 20px rgba(12, 39, 74, 0.12);
}

.hallazgos-modal-header {
  background: #4f78ae;
  color: #fff;
  border-bottom: none;
}

.hallazgos-modal-header .btn-close {
  filter: invert(1);
}

.hallazgos-modal-body {
  background: #f7f9fb;
}

.hallazgos-modal-body h5 {
  color: #1c4070;
  font-weight: 700;
}

.modal.show {
  display: block;
}

/*
.licencias-hero{
  background:
    linear-gradient(135deg, rgba(18,65,120,0.88), rgba(7,130,201,0.72)),
    url('img/logos/licencia.png') center/cover no-repeat;
  min-height: 320px;
  display: flex;
  align-items: center;
}*/
.licencias-hero {
  position: relative;
  height: 40vh;
  min-height: 260px;
  background: url("../img/head_Licencia.jpg") center/cover no-repeat;
  margin-top: calc(var(--nav-h) * -1);
}

.licencias-panel {
  background: linear-gradient(180deg, #f7fbff 0%, #eef5fb 100%);
  border-radius: 24px;
  padding: 2rem;
  box-shadow: 0 16px 34px rgba(15, 55, 95, 0.12);
  border: 1px solid rgba(8, 129, 201, 0.14);
}

.licencias-panel-accent {
  background: linear-gradient(135deg, #13406f 0%, #0581c9 100%);
  color: #ffffff;
}

.licencias-panel-icon {
  width: 72px;
  height: 72px;
  border-radius: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.14);
  color: inherit;
  font-size: 2rem;
  margin-bottom: 1.2rem;
}

.licencias-panel-title {
  font-size: 2rem;
  font-weight: 800;
  color: inherit;
  margin-bottom: 0.8rem;
}

.licencias-panel-text {
  font-size: 1.05rem;
  line-height: 1.7;
  margin-bottom: 1.4rem;
}

.licencias-turno-btn {
  font-weight: 700;
  padding: 0.85rem 1.3rem;
}

.licencias-info-list {
  display: grid;
  gap: 1rem;
}

.licencias-info-item {
  background: rgba(255, 255, 255, 0.88);
  border-radius: 18px;
  padding: 1rem 1.1rem;
}

.licencias-info-label {
  display: block;
  font-size: 0.88rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #0581c9;
  margin-bottom: 0.35rem;
}

.licencias-section-block {
  background: #f7f9fb;
  border-radius: 26px;
  padding: 2rem;
  box-shadow: 0 14px 28px rgba(12, 39, 74, 0.08);
}

.licencias-section-header {
  margin-bottom: 1.5rem;
}

.licencias-section-header h2 {
  margin: 0 0 0.35rem;
  color: #1c4070;
  font-size: 2rem;
  font-weight: 800;
}

.licencias-section-header p {
  margin: 0;
  color: #51657e;
}

.licencias-accordion .accordion-item {
  border: none;
  border-radius: 18px !important;
  overflow: hidden;
  margin-bottom: 1rem;
  box-shadow: 0 8px 20px rgba(12, 39, 74, 0.08);
}

.licencias-accordion .accordion-button {
  background: linear-gradient(135deg, #1c4070 0%, #4f78ae 100%);
  color: #ffffff;
  font-weight: 700;
  font-size: 1.05rem;
  box-shadow: none;
}

.licencias-accordion .accordion-button:not(.collapsed) {
  color: #ffffff;
  box-shadow: none;
}

.licencias-accordion .accordion-button::after {
  filter: brightness(0) invert(1);
}

.licencias-accordion .accordion-body {
  background: #ffffff;
  color: #24384f;
  line-height: 1.75;
}

.licencias-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.licencias-download-card {
  height: 100%;
  display: flex;
  gap: 1rem;
  text-decoration: none;
  background: #ffffff;
  border-radius: 22px;
  padding: 1.35rem;
  box-shadow: 0 12px 24px rgba(12, 39, 74, 0.08);
  border: 1px solid rgba(8, 129, 201, 0.12);
  transition: transform 0.22s ease, box-shadow 0.22s ease;
}

.licencias-download-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 32px rgba(12, 39, 74, 0.14);
}

.licencias-download-icon {
  width: 58px;
  height: 58px;
  min-width: 58px;
  border-radius: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #e9f4ff 0%, #d8ecff 100%);
  color: #0581c9;
  font-size: 1.7rem;
}

.licencias-download-content h3 {
  margin: 0 0 0.35rem;
  color: #1c4070;
  font-size: 1.1rem;
  font-weight: 800;
}

.licencias-download-content p {
  margin: 0 0 0.6rem;
  color: #51657e;
  font-size: 0.96rem;
}

.licencias-download-content span {
  color: #0581c9;
  font-weight: 700;
}

.deportes-hero {
  position: relative;
  height: 40vh;
  min-height: 260px;
  background: url("../img/head_Deportes.jpg") center/cover no-repeat;
  margin-top: calc(var(--nav-h) * -1);
}

.deportes-panel {
  background: linear-gradient(180deg, #f8fbff 0%, #edf5fc 100%);
  border-radius: 24px;
  padding: 2rem;
  box-shadow: 0 16px 34px rgba(15, 55, 95, 0.12);
  border: 1px solid rgba(8, 129, 201, 0.12);
}

.deportes-panel-accent {
  background: linear-gradient(135deg, #1c4070 0%, #0581c9 100%);
  color: #ffffff;
}

.deportes-panel-icon {
  width: 72px;
  height: 72px;
  border-radius: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.14);
  color: inherit;
  font-size: 2rem;
  margin-bottom: 1.2rem;
}

.deportes-panel-title {
  font-size: 2rem;
  font-weight: 800;
  color: inherit;
  margin-bottom: 0.8rem;
}

.deportes-panel-text {
  font-size: 1.05rem;
  line-height: 1.7;
  margin-bottom: 0;
}

.deportes-info-list {
  display: grid;
  gap: 1rem;
}

.deportes-info-item {
  background: rgba(255, 255, 255, 0.9);
  border-radius: 18px;
  padding: 1rem 1.1rem;
}

.deportes-info-label {
  display: block;
  font-size: 0.88rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #0581c9;
  margin-bottom: 0.35rem;
}

.deportes-section-block {
  background: #f7f9fb;
  border-radius: 26px;
  padding: 2rem;
  box-shadow: 0 14px 28px rgba(12, 39, 74, 0.08);
}

.deportes-section-header {
  margin-bottom: 1.5rem;
}

.deportes-section-header h2 {
  margin: 0 0 0.35rem;
  color: #1c4070;
  font-size: 2rem;
  font-weight: 800;
}

.deportes-section-header p {
  margin: 0;
  color: #51657e;
}

.deportes-accordion .accordion-item {
  border: none;
  border-radius: 18px !important;
  overflow: hidden;
  margin-bottom: 1rem;
  box-shadow: 0 8px 20px rgba(12, 39, 74, 0.08);
}

.deportes-accordion .accordion-button {
  background: linear-gradient(135deg, #1c4070 0%, #4f78ae 100%);
  color: #ffffff;
  font-weight: 700;
  font-size: 1.05rem;
  box-shadow: none;
}

.deportes-accordion .accordion-button:not(.collapsed) {
  color: #ffffff;
  box-shadow: none;
}

.deportes-accordion .accordion-button::after {
  filter: brightness(0) invert(1);
}

.deportes-accordion .accordion-body {
  background: #ffffff;
}

.deportes-tools {
  background: #ffffff;
  border-radius: 20px;
  padding: 1rem 1.1rem;
  box-shadow: 0 10px 22px rgba(12, 39, 74, 0.06);
  margin-bottom: 1.25rem;
}

.deportes-counter {
  height: 100%;
  min-height: 46px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 16px;
  background: linear-gradient(135deg, #eaf4ff 0%, #dceeff 100%);
  color: #1c4070;
  font-weight: 800;
  font-size: 1.05rem;
}

.deportes-counter span {
  font-size: 1.4rem;
  margin-right: 0.35rem;
}

.deportes-table-wrap {
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 12px 24px rgba(12, 39, 74, 0.08);
}

.deportes-table {
  margin: 0;
  background: #ffffff;
}

.deportes-table thead th {
  background: linear-gradient(135deg, #1c4070 0%, #4f78ae 100%);
  color: #ffffff;
  border: none;
  white-space: nowrap;
  font-size: 0.92rem;
}

.deportes-table tbody td {
  color: #33475f;
  border-color: rgba(28, 64, 112, 0.1);
  vertical-align: middle;
}

.deportes-table tbody tr:nth-child(even) {
  background: #f8fbff;
}

.deportes-pager {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.85rem;
}

.deportes-page-info {
  min-width: 140px;
  text-align: center;
  font-weight: 700;
  color: #1c4070;
}

.deportes-detail-modal .modal-header {
  background: linear-gradient(135deg, #1c4070 0%, #4f78ae 100%);
  color: #ffffff;
}

.deportes-detail-modal .btn-close {
  filter: brightness(0) invert(1);
}

.deportes-detail-modal .modal-body {
  background: #f8fbff;
}

.deportes-detail-grid {
  display: grid;
  gap: 0.9rem;
}

.deportes-detail-grid span,
.deportes-detail-note span {
  display: block;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #0581c9;
  margin-bottom: 0.15rem;
}

.deportes-detail-grid p,
.deportes-detail-note p {
  margin: 0;
  color: #33475f;
  line-height: 1.6;
}

.deportes-detail-note {
  margin-top: 1rem;
  background: #eff6fc;
  border-radius: 16px;
  padding: 0.9rem 1rem;
}

.deportes-activity-card {
  height: 100%;
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  border-radius: 22px;
  padding: 1.35rem;
  box-shadow: 0 12px 24px rgba(12, 39, 74, 0.08);
  border: 1px solid rgba(8, 129, 201, 0.12);
}

.deportes-activity-card h3 {
  margin: 0 0 1rem;
  color: #1c4070;
  font-size: 1.15rem;
  font-weight: 800;
}

.deportes-activity-meta {
  display: grid;
  gap: 0.8rem;
}

.deportes-activity-meta span {
  display: block;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #0581c9;
  margin-bottom: 0.15rem;
}

.deportes-activity-meta p {
  margin: 0;
  color: #33475f;
  line-height: 1.55;
}

.deportes-activity-note {
  margin-top: 1rem;
  background: #eff6fc;
  border-radius: 16px;
  padding: 0.9rem 1rem;
  color: #33475f;
  line-height: 1.6;
}

.calidad-files-header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 2rem;
}

.calidad-files-title {
  margin: 0;
  color: #1c4070;
  font-weight: 900;
  font-size: 2rem;
  letter-spacing: 1px;
}

.calidad-files-subtitle {
  margin: 0;
  color: #51657e;
  font-size: 1rem;
}

.calidad-files-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem;
}

.calidad-file-card {
  display: flex;
  gap: 1.2rem;
  align-items: center;
  padding: 1.6rem;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 10px 20px rgba(12, 39, 74, 0.12);
  text-decoration: none;
  color: inherit;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.calidad-file-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 26px rgba(12, 39, 74, 0.18);
}

.calidad-file-icon {
  width: 56px;
  height: 56px;
  border-radius: 14px;
  background: #0b4a7a;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.8rem;
}

.calidad-file-content h4 {
  margin: 0 0 0.35rem;
  font-weight: 800;
  color: #1c4070;
}

.calidad-file-content p {
  margin: 0 0 0.6rem;
  color: #51657e;
  font-size: 0.98rem;
}

.calidad-file-action {
  color: #0b4a7a;
  font-weight: 700;
  font-size: 0.95rem;
}

.calidad-indicador-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.6rem;
}

.calidad-indicador-card {
  background: #ffffff;
  border-radius: 18px;
  padding: 1.6rem;
  box-shadow: 0 10px 22px rgba(12, 39, 74, 0.12);
  display: flex;
  flex-direction: column;
  gap: 1rem;
  align-items: flex-start;
}

.calidad-indicador-card h4 {
  margin: 0;
  color: #1c4070;
  font-weight: 800;
  font-size: 1.1rem;
}

.calidad-indicador-modal .modal-header {
  background: #4f78ae;
  color: #fff;
  border-bottom: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.calidad-indicador-modal .btn-close {
  filter: invert(1);
}

.calidad-indicador-head {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.calidad-indicador-icon {
  width: 50px;
  height: 50px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.18);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
}

.calidad-indicador-date {
  background: #e7eff7;
  color: #2b3f59;
  padding: 0.4rem 0.75rem;
  border-radius: 999px;
  font-weight: 700;
  font-size: 0.85rem;
}

.indicador-section {
  border: 1px solid rgba(28, 64, 112, 0.15);
  border-radius: 16px;
  overflow: hidden;
  margin-bottom: 1.4rem;
}

.indicador-title {
  background: #4f78ae;
  color: #fff;
  padding: 0.75rem 1.2rem;
  font-weight: 700;
}

.indicador-body {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 1.5rem;
  padding: 1.4rem 1.2rem;
  background: #fff;
}

.indicador-value-box {
  background: #4f78ae;
  color: #fff;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 1rem;
  min-height: 120px;
}

.indicador-value {
  font-size: 2rem;
  font-weight: 800;
  line-height: 1.1;
}

.indicador-info {
  color: #2b3f59;
  font-size: 1rem;
}

.indicador-target {
  display: inline-block;
  background: #e7eff7;
  color: #2b3f59;
  padding: 0.4rem 0.7rem;
  border-radius: 999px;
  font-weight: 700;
  margin-bottom: 0.8rem;
  max-width: 100%;
  white-space: normal;
  line-height: 1.3;
}

.indicador-history {
  display: grid;
  grid-template-columns: repeat(3, minmax(110px, 1fr));
  gap: 0.9rem;
  margin-top: 1.2rem;
}

.indicador-history-item {
  background: #7ea3d1;
  color: #fff;
  border-radius: 10px;
  padding: 0.8rem 0.6rem 0.7rem;
  text-align: center;
  box-shadow: 0 8px 16px rgba(79, 120, 174, 0.18);
}

.indicador-history-value {
  font-size: 1.15rem;
  font-weight: 800;
  line-height: 1.1;
  margin-bottom: 0.25rem;
}

.indicador-history-date {
  font-size: 0.92rem;
  font-weight: 700;
  line-height: 1.15;
}

.calidad-title {
  margin: 0 0 1rem;
  color: #1c4070;
  font-weight: 900;
  letter-spacing: 1px;
  text-transform: uppercase;
  line-height: 1.05;
  font-size: 2rem;
}

.calidad-body {
  color: #1c4070;
  font-size: 1.05rem;
  line-height: 1.55;
  margin: 0;
}

.calidad-emphasis {
  font-weight: 800;
  color: #1c4070;
}

.calidad-commit-card {
  background: #e3e6ea;
  border-radius: 18px;
  padding: 1.8rem 1.8rem;
  color: #1c4070;
  font-size: 1.1rem;
  line-height: 1.5;
  display: flex;
  gap: 0.9rem;
  align-items: flex-start;
}

.calidad-check {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #1c4070;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 34px;
  margin-top: 2px;
}

.calidad-check i {
  font-size: 1.1rem;
}

.calidad-divider {
  height: 2px;
  background: linear-gradient(90deg, rgba(28, 64, 112, 0.12), rgba(28, 64, 112, 0.45), rgba(28, 64, 112, 0.12));
  margin: 2.5rem 0;
  border-radius: 999px;
}

@media (max-width: 991.98px) {
  .calidad-commit {
    grid-template-columns: 1fr;
  }

  .calidad-section.is-open {
    padding: 1.4rem;
  }

  .calidad-policy {
    grid-template-columns: 1fr;
  }

  .calidad-policy-right {
    justify-content: center;
  }

  .calidad-files-header {
    flex-direction: column;
    align-items: flex-start;
  }

  .calidad-files-grid {
    grid-template-columns: 1fr;
  }

  .licencias-hero {
    min-height: 250px;
  }

  .licencias-panel,
  .licencias-section-block {
    padding: 1.4rem;
  }

  .licencias-panel-title,
  .licencias-section-header h2 {
    font-size: 1.55rem;
  }

  .deportes-hero {
    min-height: 250px;
  }

  .deportes-panel,
  .deportes-section-block {
    padding: 1.4rem;
  }

  .deportes-tools {
    padding: 0.9rem;
  }

  .deportes-panel-title,
  .deportes-section-header h2 {
    font-size: 1.55rem;
  }

  .deportes-pager {
    flex-wrap: wrap;
  }

  .calidad-indicador-grid {
    grid-template-columns: 1fr;
  }

  .indicador-body {
    grid-template-columns: 1fr;
  }

  .indicador-history {
    grid-template-columns: 1fr;
  }

  .calidad-title {
    font-size: 1.7rem;
  }

  .calidad-commit-tag {
    max-width: 100%;
    width: 100%;
    font-size: 0.85rem;
    letter-spacing: 0.3px;
    padding: 0.5rem 0.9rem;
    text-align: center;
    line-height: 0.9;
    flex-wrap: wrap;
  }

  .calidad-commit-sep {
    display: block;
    width: 100%;
    margin: 0;
    opacity: 0;
  }
}


/* ================= DENUNCIA HERO ================= */

.Denuncia-hero {
  position: relative;
  height: 40vh;
  min-height: 260px;
  background: url("../img/head_Denuncia.jpg") center/cover no-repeat;
  margin-top: calc(var(--nav-h) * -1);
}

.denuncia-card {
  background-color: rgba(28, 64, 112, 0.08);
}


/* ================= BOLETO HERO ================= */

.Boleto-hero {
  position: relative;
  height: 40vh;
  min-height: 260px;
  background: url("../img/head_Bole.jpg") center/cover no-repeat;
  margin-top: calc(var(--nav-h) * -1);
}

/* ================= GENERO HERO ================= */

.Genero-hero {
  position: relative;
  height: 40vh;
  min-height: 260px;
  background: url("../img/head_Gene.jpg") center/cover no-repeat;
  margin-top: calc(var(--nav-h) * -1);
}

.Cupo-hero {
  position: relative;
  height: 40vh;
  min-height: 260px;
  background: url("../img/head_Cupo.jpg") center/cover no-repeat;
  margin-top: calc(var(--nav-h) * -1);
}


/*========================= menu ===============================*/


/* ================= BANNER LUJÁN FULL WIDTH ================= */

.banner-lujan-centrado {
  padding: 3rem 0;
}

.banner-centrado-wrapper {
  position: relative;
  width: 100%;
  overflow: hidden;
}

/* Fondo */
.banner-centrado-fondo {
  position: relative;
}

.centrado-fondo-img {
  width: 100%;
  height: 360px;
  object-fit: cover;
  display: block;
}

.centrado-fondo-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.25);
}

/* Logo centrado */
.logo-centrado-container {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

/*
.logo-centrado-inner {
  background: rgba(255,255,255,0.92);
  padding: 26px 40px;
  border-radius: 20px;
}
*/

.logo-centrado-img {
  max-width: 600px;
  width: 100%;
  height: auto;
  display: block;
}

/* ================= MOBILE ================= */

@media (max-width: 768px) {

  .banner-lujan-centrado {
    padding: 2rem 0;
  }

  .centrado-fondo-img {
    height: 230px;
  }

  .logo-centrado-inner {
    padding: 14px 22px;
  }

  .logo-centrado-img {
    max-width: 310px;
  }
}


/*========================================================*/

/* FOOTER */
footer {
  background: var(--dark);
  color: #eee;
  padding: 2rem;
  text-align: center;
}

/* Estilos para íconos sociales en footer */
.item.social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: white;
  background: transparent;
  border: 2px solid rgba(255, 255, 255, 0.4);
  border-radius: 50%;
  transition: all 0.3s ease;
  font-size: 1.4rem;
  /* tamaño del ícono */
  text-decoration: none;
}

.item.social a:hover {
  background: rgba(255, 255, 255, 0.945);
  border-color: white;
  transform: translateY(-3px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

/* Ajuste específico para Instagram  */
.item.social a[href*="instagram"]:hover {
  color: #e1306c;
  /* color típico de Instagram */
  border-color: #e1306c;
}

/* Ajuste específico para facebook  */
.item.social a[href*="facebook"]:hover {
  color: #3330e1;
  /* color típico de facebook */
  border-color: #3c30e1;
}

/* Ajuste específico para X  */
.item.social a[href*="x"]:hover {
  color: #121213;
  /* color típico de X */
  border-color: #0f0f0f;
}

/* Ajuste específico para youtube  */
.item.social a[href*="youtube"]:hover {
  color: #c4183d;
  /* color típico de youtube */
  border-color: #dd194a;
}

/* Ajuste específico para Linkedin */
.item.social a[href*="linkedin"]:hover {
  color: #0A66C2;
  /* color típico de linkedin */
  border-color: #0A66C2;
}







/* ================= CAV ================= */
.cav-hero {
  position: relative;
  height: 40vh;
  min-height: 260px;
  /*background: linear-gradient(135deg, rgba(28,64,112,0.85), rgba(5,129,201,0.75));*/
  background: url("../img/head_cav.jpg") center/cover no-repeat;
  margin-top: calc(var(--nav-h) * -1);
}

.cav-page .cav-shell {
  max-width: 1100px;
  margin: 0 auto;
}

.cav-page .cav-card {
  background: #0f1f3a;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 20px;
  padding: 28px;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.35);
  color: #eef4ff;
}

.cav-page .cav-header {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-bottom: 18px;
}

.cav-page .cav-logo {
  width: 164px;
  height: 164px;
  object-fit: contain;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  padding: 8px;
}

.cav-page .cav-title {
  font-size: 1.4rem;
  margin: 0 0 4px 0;
  color: #ffffff;
}

.cav-page .cav-subtitle {
  margin: 0;
  color: rgba(238, 244, 255, 0.8);
}

.cav-page .cav-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 18px 0 22px;
}

.cav-page .cav-tab {
  color: #dfe9ff;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  padding: 10px 14px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 600;
  font-size: 0.95rem;
  transition: all 0.2s ease;
}

.cav-page .cav-tab.active,
.cav-page .cav-tab:hover {
  background: rgba(5, 129, 201, 0.6);
  border-color: rgba(5, 129, 201, 0.8);
  color: #fff;
}

.cav-page .info-text {
  color: #dfe9ff;
}

.cav-page .form-control,
.cav-page select {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.16);
  color: #f5f8ff;
}

.cav-page .form-control:focus,
.cav-page select:focus {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(5, 129, 201, 0.8);
  box-shadow: 0 0 0 0.2rem rgba(5, 129, 201, 0.25);
  color: #fff;
}

.cav-page .control-label {
  color: rgba(238, 244, 255, 0.7);
}

.cav-page .choice {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 16px;
  padding: 18px;
  text-align: center;
  cursor: pointer;
}

.cav-page .choice .icon {
  color: #fff;
}

.cav-page .cav-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 20px;
  gap: 12px;
}

.cav-page .cav-actions-right {
  display: flex;
  gap: 10px;
}

.cav-page .cav-estado-result {
  margin-top: 24px;
  background: rgba(5, 129, 201, 0.15);
  border: 1px solid rgba(5, 129, 201, 0.4);
  border-radius: 16px;
  padding: 16px;
}

.cav-page .cav-estado-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
}

@media (max-width: 768px) {
  .cav-page .cav-card {
    padding: 20px;
  }

  .cav-page .cav-header {
    flex-direction: column;
    align-items: flex-start;
  }
}

.cav-choice-button {
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: rgba(5, 129, 201, 0.35);
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.cav-choice-button:hover {
  background: rgba(5, 129, 201, 0.55);
  transform: translateY(-2px);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.25);
}

.cav-choice-button input[type=radio] {
  pointer-events: none;
}

.cav-narrow {
  min-width: 70px;
}

.cav-form .form-group {
  margin-bottom: 26px;
}

.cav-form .row {
  row-gap: 18px;
}

.cav-form select,
.cav-form .form-control {
  width: 100%;
}

.cav-form .select2-container {
  width: 100% !important;
}

.cav-form .select2-container .select2-selection--single {
  height: 46px;
  display: flex;
  align-items: center;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.16);
}

.cav-form .select2-container .select2-selection__rendered {
  padding-left: 12px;
  color: #eef4ff;
}

.cav-form .select2-container .select2-selection__arrow {
  height: 46px;
}

.cav-form select option {
  color: #0f1f3a;
  background: #ffffff;
}

.cav-form select {
  color-scheme: dark;
}

.cav-form .select2-dropdown {
  background: #ffffff;
  color: #0f1f3a;
}

.cav-form .select2-results__option {
  color: #0f1f3a;
}

.cav-form .select2-results__option--highlighted {
  background: rgba(5, 129, 201, 0.2);
  color: #0f1f3a;
}

.cav-invalid {
  border-color: #ff6b6b !important;
  box-shadow: 0 0 0 0.2rem rgba(255, 107, 107, 0.25) !important;
  background: rgba(255, 107, 107, 0.08) !important;
}

.boleto-card {
  background: var(--secondary);
  color: #f8f9fa;
}

.boleto-card .form-label,
.boleto-card label,
.boleto-card .form-check-label {
  color: #f8f9fa;
}

.boleto-card .form-control,
.boleto-card .form-select {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.18);
  color: #f8f9fa;
}

.boleto-card .form-control:focus,
.boleto-card .form-select:focus {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(5, 129, 201, 0.8);
  box-shadow: 0 0 0 0.2rem rgba(5, 129, 201, 0.25);
  color: #fff;
}

.boleto-card .text-muted {
  color: rgba(248, 249, 250, 0.75) !important;
}

.boleto-card select option {
  color: #0f1f3a;
  background: #ffffff;
}

.boleto-card select {
  color-scheme: dark;
}

.boleto-card .form-select:invalid {
  color: rgba(248, 249, 250, 0.6);
}

.boleto-card .is-invalid {
  border-color: #ff6b6b !important;
  box-shadow: 0 0 0 0.2rem rgba(255, 107, 107, 0.25) !important;
}

.boleto-card .boleto-title {
  color: #ffffff;
  font-weight: 700;
  letter-spacing: 0.5px;
}

.boleto-card .boleto-subtitle {
  color: rgba(248, 249, 250, 0.8) !important;
}

.boleto-card .boleto-submit {
  background: var(--primary);
  border-color: var(--primary);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.boleto-card .boleto-submit:hover {
  background: #0a6fb3;
  border-color: #0a6fb3;
}

.boleto-card .boleto-submit:disabled {
  background: rgba(5, 129, 201, 0.45);
  border-color: rgba(5, 129, 201, 0.45);
}

/* Home cards uniform size */
.home-cards-grid {
  align-items: stretch;
}

.home-links-wrap {
  max-width: 1240px;
}

.home-links-grid .home-card-col {
  flex: 0 0 auto;
  width: 100%;
  max-width: 214px;
}

.home-links-grid .card-link-wrapper,
.home-links-grid .team-item.card_pepi {
  width: 100%;
}

.home-links-grid .team-item.card_pepi {
  aspect-ratio: auto !important;
}

@media (min-width: 992px) {
  .home-links-grid .home-card-col {
    flex: 0 0 auto;
    width: 100%;
    max-width: 198px;
  }
}

@media (max-width: 767.98px) {
  .home-links-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-links-grid .home-card-col {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
  }

  .home-links-grid .home-card-col:last-child {
    grid-column: 1 / -1;
    justify-self: center;
    width: 50% !important;
    max-width: 50% !important;
  }
}

.home-links-title {
  color: var(--primary);
  font-weight: 800;
  font-size: 1.55rem;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  position: relative;
  display: inline-block;
  padding: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  transition: none;
}

.home-cards-grid .home-card-col {
  display: flex;
}

.home-cards-grid .home-card-col .card-link-wrapper {
  display: flex;
  height: 100%;
}

.home-cards-grid .team-item.card_pepi {
  width: 100%;
  aspect-ratio: 1 / 1;
  height: auto;
  display: flex;
  flex-direction: column;
}

.home-cards-grid .team-item.card_pepi .position-relative {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px 14px 0;
}

.home-cards-grid .team-item.card_pepi img {
  margin-top: 0;
  padding-bottom: 0;
  max-height: 100%;
  object-fit: contain;
}

.home-cards-grid .team-item.card_pepi .team-text {
  margin-top: 0;
  min-height: 68px;
  flex: 0 0 68px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.6rem 0.7rem !important;
  font-size: clamp(0.72rem, 0.35vw + 0.65rem, 0.95rem);
  line-height: 1.2;
  letter-spacing: 0.6px;
  white-space: normal;
  text-align: center;
  overflow: hidden;
}

@media (max-width: 768px) {
  .home-hero .carousel-img {
    object-fit: cover !important;
    object-position: center 25% !important;
  }
}

@media (max-width: 767.98px) {
  .home-cards-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 230px;
    gap: 24px;
  }

  .home-cards-grid .home-card-col {
    max-width: 100% !important;
    flex: 0 0 auto !important;
    margin-bottom: 0 !important;
  }

  .home-cards-grid .team-item.card_pepi {
    height: 230px !important;
    min-height: 230px !important;
    max-height: 230px !important;
    aspect-ratio: auto !important;
  }

  .home-cards-grid .home-card-col,
  .home-cards-grid .home-card-col .card-link-wrapper,
  .home-cards-grid .home-card-col .team-item.card_pepi {
    height: 230px !important;
    min-height: 230px !important;
    max-height: 230px !important;
  }

  .home-cards-grid .team-item.card_pepi .position-relative {
    flex: 1 1 auto;
    padding: 14px 12px 0;
    height: calc(100% - 56px) !important;
  }

  .home-cards-grid .team-item.card_pepi img {
    max-height: 120px;
  }

  .home-cards-grid .team-item.card_pepi .team-text {
    min-height: 56px;
    max-height: 56px;
    flex: 0 0 56px;
    font-size: 0.7rem;
    padding: 0.5rem 0.5rem !important;
    line-height: 1.15;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }
}

.admin-thumb-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: #e8eef6;
  color: #6a7b95;
  font-size: .65rem;
  text-align: center;
  line-height: 1.1;
  padding: 6px;
}

/*.organigrama-hero{
  background:
    linear-gradient(135deg, rgba(15, 31, 58, 0.78), rgba(5, 129, 201, 0.62)),
    radial-gradient(circle at top right, rgba(255,255,255,0.18), transparent 36%);
  min-height:280px;
  display:flex;
  align-items:center;
}*/

.organigrama-hero {
  position: relative;
  height: 40vh;
  min-height: 260px;
  /*background: linear-gradient(135deg, rgba(28,64,112,0.85), rgba(5,129,201,0.75));*/
  background: url("../img/head_Orgeniza.jpg") center/cover no-repeat;
  margin-top: calc(var(--nav-h) * -1);
}

.impuestos-hero {
  position: relative;
  height: 34vh;
  min-height: 240px;
  background: url("../img/head_Tazas.jpg") center/cover no-repeat;
  /*linear-gradient(135deg, rgba(28,64,112,0.88), rgba(5,129,201,0.76)),
    radial-gradient(circle at top right, rgba(255,255,255,0.18), transparent 36%);*/
  margin-top: calc(var(--nav-h) * -1);
}

.search-hero {
  position: relative;
  height: 28vh;
  min-height: 180px;
  background:
    linear-gradient(135deg, rgba(28, 64, 112, 0.88), rgba(5, 129, 201, 0.72)),
    radial-gradient(circle at top right, rgba(255, 255, 255, 0.18), transparent 36%);
  margin-top: calc(var(--nav-h) * -1);
}

.search-panel {
  background: #ffffff;
  border: 1px solid rgba(78, 102, 150, 0.12);
  border-radius: 28px;
  box-shadow: 0 20px 46px rgba(22, 46, 82, 0.10);
  padding: 1.75rem;
}

.search-title {
  color: #1c4070;
  font-weight: 800;
  text-transform: uppercase;
}

.search-count {
  color: #4b5f7c;
  font-weight: 600;
}

.search-result-card {
  display: block;
  text-decoration: none;
  background: #ffffff;
  border-radius: 24px;
  border: 1px solid rgba(78, 102, 150, 0.12);
  box-shadow: 0 16px 34px rgba(22, 46, 82, 0.08);
  padding: 1.4rem 1.5rem;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.search-result-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 18px 36px rgba(22, 46, 82, 0.12);
  border-color: rgba(5, 129, 201, 0.32);
}

.search-result-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .35rem .75rem;
  border-radius: 999px;
  background: rgba(5, 129, 201, 0.10);
  color: #1c4070;
  font-size: .78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.search-result-card h3 {
  margin: .75rem 0 .55rem;
  color: #1c4070;
  font-size: 1.2rem;
  font-weight: 800;
}

.search-result-card p {
  margin: 0 0 .7rem;
  color: #4b5f7c;
  line-height: 1.6;
}

.search-result-link {
  color: #0581c9;
  font-size: .9rem;
  font-weight: 700;
}

.organigrama-board {
  background: #ffffff;
  border-radius: 28px;
  box-shadow: 0 20px 46px rgba(22, 46, 82, 0.10);
  border: 1px solid rgba(78, 102, 150, 0.12);
  padding: 2rem 1.5rem;
  max-width: 900px;
  margin: 0 auto;
}

.organigrama-board-inner {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 2.15rem;
  align-items: start;
}

.organigrama-main {
  position: sticky;
  top: 96px;
}

.organigrama-main-node {
  position: relative;
  text-align: center;
  padding-top: .15rem;
}

.organigrama-main-node::after {
  content: "";
  position: absolute;
  top: 52px;
  right: -2.15rem;
  width: 2.15rem;
  height: 1px;
  background: #434343;
}

.organigrama-main-photo-ring,
.organigrama-branch-photo-ring {
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  background: #ffffff;
  border: 2px solid #8fc3e8;
  box-shadow: 0 0 0 6px rgba(143, 195, 232, 0.22);
}

.organigrama-main-photo-ring {
  width: 102px;
  height: 102px;
  margin: 0 auto .8rem;
}

.organigrama-main-photo,
.organigrama-branch-photo,
.organigrama-photo {
  width: 88px;
  height: 88px;
  border-radius: 50%;
  object-fit: cover;
  background: #dfe8f4;
}

.organigrama-photo-fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #7c8faa;
  font-size: 2.8rem;
}

.organigrama-main-text {
  padding: 0 .4rem;
  text-align: center;
}

.organigrama-main-text h2,
.organigrama-branch-text h2 {
  margin: 0 0 .25rem;
  color: #1b4377;
  font-size: .88rem;
  font-weight: 800;
  text-transform: uppercase;
  line-height: 1.1;
  letter-spacing: .02em;
}

.organigrama-main-text h3,
.organigrama-branch-text h3 {
  margin: 0;
  color: #1e1e1e;
  font-size: .68rem;
  font-weight: 700;
  line-height: 1.15;
  text-transform: uppercase;
}

.organigrama-main-text p,
.organigrama-branch-text p {
  margin: .28rem 0 0;
  color: #b24a3d;
  line-height: 1.2;
  font-size: .62rem;
  font-weight: 700;
  text-transform: uppercase;
}

.organigrama-tree {
  position: relative;
  padding-left: 1.65rem;
}

.organigrama-tree-line {
  position: absolute;
  left: 0;
  top: .35rem;
  bottom: .35rem;
  width: 1px;
  background: #434343;
}

.organigrama-branch {
  position: relative;
  padding-left: 1.05rem;
}

.organigrama-branch+.organigrama-branch {
  margin-top: .85rem;
}

.organigrama-branch-link {
  position: absolute;
  left: 0;
  top: 50%;
  width: 1.05rem;
  height: 1px;
  background: #434343;
}

.organigrama-branch-node {
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: .7rem;
  align-items: center;
}

.organigrama-branch-photo-ring {
  width: 56px;
  height: 56px;
  box-shadow: 0 0 0 4px rgba(143, 195, 232, 0.18);
}

.organigrama-branch-photo {
  width: 46px;
  height: 46px;
}

.organigrama-branch-text {
  text-align: left;
  max-width: 240px;
}

@media (max-width: 991.98px) {
  .organigrama-board {
    padding: 1.35rem 1.05rem;
  }

  .organigrama-board-inner {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .organigrama-main {
    position: static;
  }

  .organigrama-main-node::after {
    display: none;
  }

  .organigrama-tree {
    padding-left: 1.2rem;
  }

  .organigrama-branch {
    padding-left: 1rem;
  }

  .organigrama-branch-link {
    width: 1rem;
  }

  .organigrama-branch-node {
    grid-template-columns: 60px 1fr;
    gap: .7rem;
  }

  .organigrama-branch-photo-ring {
    width: 56px;
    height: 56px;
  }

  .organigrama-branch-photo {
    width: 46px;
    height: 46px;
  }
}

@media (max-width: 575.98px) {
  .organigrama-hero {
    min-height: 140px;
  }

  .organigrama-board {
    border-radius: 22px;
    padding: 1.05rem .85rem;
  }

  .organigrama-main-photo-ring {
    width: 92px;
    height: 92px;
  }

  .organigrama-main-photo {
    width: 78px;
    height: 78px;
  }

  .organigrama-branch-node {
    grid-template-columns: 50px 1fr;
    gap: .55rem;
  }

  .organigrama-branch-photo-ring {
    width: 46px;
    height: 46px;
  }

  .organigrama-branch-photo {
    width: 36px;
    height: 36px;
  }

  .organigrama-main-text h2,
  .organigrama-branch-text h2 {
    font-size: .8rem;
  }

  .organigrama-main-text h3,
  .organigrama-branch-text h3 {
    font-size: .64rem;
  }

  .organigrama-main-text p,
  .organigrama-branch-text p {
    font-size: .58rem;
  }
}

/* ================= ALERTA 24 ================= */
.alerta24-hero {
  position: relative;
  height: 40vh;
  min-height: 260px;
  background: url("../img/alerta24/BannerAlerta.png") center/cover no-repeat;
  margin-top: calc(var(--nav-h) * -1);
}

.alerta24-hero-overlay {
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.18), rgba(0, 0, 0, 0.52));
}

.alerta24-page {
  max-width: 1140px;
}

.alerta24-card,
.alerta24-banner,
.alerta24-info-box {
  border-radius: 28px;
  overflow: hidden;
}

.alerta24-video-card {
  background: #f4f5f7;
  box-shadow: 0 18px 38px rgba(15, 55, 95, 0.10);
}

.alerta24-video-wrap iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

.alerta24-banner {
  position: relative;
  min-height: 360px;
  box-shadow: 0 18px 38px rgba(15, 55, 95, 0.10);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.alerta24-banner-app {
  background-image: url("../img/alerta24/Alerta02.png");
}

.alerta24-banner-109 {
  background-image: url("../img/alerta24/Alerta03.png");
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

.alerta24-banner-cpc {
  background-image: url("../img/alerta24/Alerta04.png");
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

.alerta24-overlay-card {
  position: absolute;
  right: 5.5%;
  top: 50%;
  transform: translateY(-50%);
  background: linear-gradient(135deg, #0d78ea 0%, #0a66d0 100%);
  color: #fff;
  border-radius: 26px;
  box-shadow: 0 20px 42px rgba(8, 73, 156, 0.26);
}

.alerta24-overlay-card-app {
  width: min(100%, 385px);
  padding: 1.7rem 1.6rem 1.5rem;
}

.alerta24-app-head {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1rem;
}

.alerta24-app-head h2 {
  margin: 0;
  font-size: clamp(1.5rem, 1vw, 2.1rem);
  color: #fff;
  font-weight: 700;
}

.alerta24-app-logo {
  width: 152px;
  max-width: 40%;
  height: auto;
  flex: 0 0 auto;
}

.alerta24-qr-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.alerta24-qr-item span {
  display: block;
  font-size: .95rem;
  font-weight: 300;
  margin-bottom: .45rem;
}

.alerta24-qr-item img {
  display: block;
  width: 100%;
  max-width: 150px;
  height: auto;
}

.alerta24-overlay-card-109 {
  width: min(100%, 360px);
  padding: 1.6rem 1.7rem;
}

.alerta24-overlay-card-cpc {
  width: min(100%, 430px);
  padding: 1.5rem 1.6rem;
}

.alerta24-inline-head {
  display: flex;
  align-items: center;
  gap: .95rem;
  margin-bottom: .85rem;
}

.alerta24-inline-head span {
  display: block;
  color: #fff;
  font-size: clamp(1.55rem, 2vw, 2.2rem);
  line-height: 1.05;
  font-weight: 700;
}

.alerta24-overlay-card-cpc .alerta24-inline-head {
  margin-bottom: 0;
}

.alerta24-overlay-card-cpc .alerta24-inline-head span {
  font-size: clamp(1.45rem, 2vw, 2rem);
}

.alerta24-inline-icon {
  width: 38px;
  height: 38px;
  object-fit: contain;
  flex: 0 0 auto;
}

.alerta24-overlay-card-109 .alerta24-inline-icon {
  filter: brightness(0) invert(1);
}

.alerta24-inline-icon-cpc {
  width: 92px;
  height: 92px;
}

.alerta24-overlay-card p {
  margin: 0;
  color: rgba(255, 255, 255, 0.98);
  font-size: 1rem;
  line-height: 1.45;
}

.alerta24-info-box {
  background: #edf2f7;
  padding: 1.8rem 1.9rem;
  color: #344054;
  box-shadow: 0 14px 28px rgba(15, 55, 95, 0.08);
}

.alerta24-banner-109+.alerta24-info-box,
.alerta24-banner-cpc+.alerta24-info-box {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
  margin-top: -1px !important;
}

.alerta24-info-box p {
  margin-bottom: 1.2rem;
  line-height: 1.8;
}

@media (max-width: 991.98px) {
  .alerta24-banner {
    min-height: 480px;
    background-position: 34% center;
  }

  .alerta24-overlay-card {
    right: 1.25rem;
    left: 1.25rem;
    top: auto;
    bottom: 1.25rem;
    transform: none;
    width: auto;
  }

  .alerta24-overlay-card-cpc .alerta24-inline-head span {
    font-size: 1.5rem;
  }
}

@media (max-width: 767.98px) {
  .alerta24-hero {
    height: 34vh;
    min-height: 230px;
    background-position: 36% center;
  }

  .alerta24-banner {
    min-height: 440px;
    background-position: 30% center;
  }

  .alerta24-overlay-card-app {
    padding: 1.35rem 1.2rem;
  }

  .alerta24-app-head {
    gap: .75rem;
  }

  .alerta24-app-head h2 {
    font-size: 1.45rem;
  }

  .alerta24-qr-grid {
    gap: .8rem;
  }

  .alerta24-qr-item img {
    max-width: 128px;
  }

  .alerta24-inline-head {
    gap: .7rem;
  }

  .alerta24-inline-head span {
    font-size: 1.5rem;
  }

  .alerta24-inline-icon-cpc {
    width: 64px;
    height: 64px;
  }

  .alerta24-info-box {
    padding: 1.35rem 1.15rem;
  }

  .alerta24-info-box p {
    line-height: 1.65;
    font-size: .98rem;
  }
}

/* ================= SALUD ================= */
.salud-hero {
  position: relative;
  height: 40vh;
  min-height: 260px;
  background: url("../img/salud/Banner_Salud.jpg") center/cover no-repeat;
  margin-top: calc(var(--nav-h) * -1);
}

.salud-hero-overlay {
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.18), rgba(0, 0, 0, 0.55));
}

.salud-page {
  max-width: 1180px;
}

.salud-search-card {
  background: linear-gradient(135deg, #f8fbff 0%, #eef5fb 100%);
  border: 1px solid rgba(8, 129, 201, 0.10);
  border-radius: 24px;
  padding: 1.6rem;
  box-shadow: 0 18px 36px rgba(15, 55, 95, 0.08);
}

.salud-search-title {
  font-size: 1.75rem;
  color: #143e6b;
  margin: 0 0 .35rem;
  font-weight: 700;
}

.salud-search-copy {
  color: #4b6078;
}

.salud-search-btn {
  min-width: 120px;
  border-radius: 12px;
}

.salud-search-summary {
  color: #143e6b;
  font-weight: 600;
  margin-bottom: .5rem;
}

.salud-search-result-card {
  background: #fff;
  border-radius: 22px;
  overflow: hidden;
  border: 1px solid rgba(8, 129, 201, 0.08);
  box-shadow: 0 16px 32px rgba(15, 55, 95, 0.10);
}

.salud-search-result-head {
  padding: 1.3rem 1.35rem 1rem;
  background: linear-gradient(135deg, #0f4c88 0%, #0781e6 100%);
  color: #fff;
}

.salud-search-result-head h3 {
  margin: 0 0 .4rem;
  font-size: 1.35rem;
  font-weight: 700;
  text-transform: uppercase;
}

.salud-search-result-head p {
  opacity: .9;
  line-height: 1.45;
}

.salud-search-phone {
  opacity: .95;
}

.salud-search-table thead th {
  background: #edf4fb;
  color: #1c4070;
  text-transform: uppercase;
  font-size: .78rem;
  letter-spacing: .05em;
  border-bottom: none;
}

.salud-search-table tbody td {
  border-color: rgba(28, 64, 112, 0.08);
}

.salud-action-card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  gap: .9rem;
  min-height: 172px;
  padding: 1.4rem 1rem 0rem;
  border: none;
  border-radius: 18px;
  text-decoration: none;
  background: linear-gradient(180deg, #13589c 0%, #0781e6 100%);
  box-shadow: 0 16px 32px rgba(15, 55, 95, 0.16);
  transition: transform .2s ease, box-shadow .2s ease;
  width: 100%;

}

.salud-action-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 22px 38px rgba(15, 55, 95, 0.22);
}

.salud-action-card img {
  width: 74px;
  height: 74px;
  object-fit: contain;
}

.salud-action-card span {
  display: block;
  width: calc(100% + 2rem);
  margin: 0 -1rem;
  padding: .95rem .65rem;
  border-radius: 0 0 18px 18px;
  background: rgba(3, 94, 183, 0.95);
  color: #fff;
  font-family: "Archivo", sans-serif;
  font-size: .95rem;
  text-transform: uppercase;
  text-align: center;
  line-height: 1.2;
}

.salud-action-card.is-active span {
  background: #0f4c88;
}

.salud-centro-card {
  background: #1698db;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 18px 34px rgba(15, 55, 95, 0.12);
  border: 1px solid rgba(8, 129, 201, 0.08);
  display: flex;
  flex-direction: column;
}

.salud-centro-media {
  position: relative;
  min-height: 190px;
  max-height: 190px;
  background: linear-gradient(180deg, #12345d 0%, #0a74ca 100%);
  overflow: hidden;
}

.salud-centro-image {
  width: 100%;
  height: 190px;
  object-fit: cover;
  display: block;
}

.salud-centro-image-fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.92);
  font-size: 4rem;
}

.salud-centro-btn {
  position: absolute;
  top: 14px;
  right: 14px;
  margin-top: 0;
  border-radius: 12px;
  padding: .7rem 1.15rem;
  box-shadow: 0 12px 24px rgba(7, 129, 230, 0.26);
}

.salud-centro-info {
  background: #1698db;
  padding: .75rem .75rem .85rem;
  flex: 1 1 auto;
}

.salud-centro-card h3 {
  display: block;
  margin: 0 0 .65rem;
  padding: 0;
  background: transparent;
  color: #ffffff;
  font-size: 1.05rem;
  font-weight: 800;
  text-transform: uppercase;
  line-height: 1;
}

.salud-centro-meta-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .65rem;
}

.salud-centro-meta-card {
  background: transparent;
  border-left: none;
  padding: 0;
  min-height: 48px;
}

.salud-centro-meta-inline {
  display: flex;
  align-items: center;
  gap: .55rem;
}

.salud-centro-meta-inline i {
  color: #ffffff;
  font-size: 1rem;
  flex: 0 0 auto;
}

.salud-centro-label {
  display: block;
  color: #032644;
  text-transform: uppercase;
  font-size: .96rem;
  font-weight: 800;
  letter-spacing: .06em;
  margin-bottom: .18rem;
}

.salud-centro-meta-card p {
  margin: 0;
  color: #ffffff;
  line-height: 1.28;
  font-size: .94rem;
}

.salud-centro-meta-card:last-child p {
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: .01em;
}

.salud-modal-dialog {
  max-width: 920px;
}

.salud-modal-content {
  border: none;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 24px 52px rgba(15, 55, 95, 0.22);
}

.salud-modal-impact {
  position: relative;
  display: block;
  background:
    radial-gradient(circle at top right, rgba(7, 129, 230, 0.16), transparent 34%),
    linear-gradient(135deg, #e4eff8 0%, #d1e2f2 100%);
}

.salud-modal-close {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 3;
  background-color: rgba(20, 62, 107, 0.88);
  border-radius: 50%;
  padding: .7rem;
  opacity: 1;
  filter: invert(1) grayscale(1) brightness(200%);
}

.salud-modal-visual {
  min-height: 100%;
  background: linear-gradient(180deg, #12345d 0%, #0a74ca 100%);
}

.salud-modal-image {
  width: 100%;
  height: 100%;
  min-height: 280px;
  max-height: 340px;
  object-fit: cover;
  display: block;
}

.salud-modal-image-fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.9);
  font-size: 5rem;
}

.salud-modal-body {
  padding: 2rem 2rem 1.85rem;
}

.salud-modal-badge {
  display: inline-flex;
  align-items: center;
  padding: .4rem .8rem;
  border-radius: 999px;
  background: rgba(7, 129, 230, 0.12);
  color: #0f4c88;
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.salud-modal-title {
  font-size: 2rem;
  line-height: 1.05;
  margin: 1rem 0 1.1rem;
  color: #143e6b;
  font-weight: 800;
  text-transform: uppercase;
}

.salud-modal-meta-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.salud-modal-meta-item {
  background: #fff;
  border: 1px solid rgba(8, 129, 201, 0.25);
  border-radius: 18px;
  padding: 1rem 1.05rem;
  box-shadow: 0 8px 16px rgba(15, 55, 95, 0.15);
}

.salud-modal-meta-label {
  display: block;
  color: #0781e6;
  text-transform: uppercase;
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .06em;
  margin-bottom: .22rem;
}

.salud-modal-meta-item p {
  margin: 0;
  color: #2f4157;
  line-height: 1.5;
}

.salud-modal-meta-inline p {
  display: flex;
  align-items: center;
  gap: .55rem;
}

.salud-modal-meta-inline i {
  color: #0a74ca;
  font-size: 1rem;
  flex: 0 0 auto;
}

.salud-modal-specialties {
  margin-top: 1.35rem;
}

.salud-modal-specialties h3 {
  font-size: 1.05rem;
  color: #143e6b;
  text-transform: uppercase;
  letter-spacing: .05em;
  margin-bottom: .85rem;
}

.salud-specialty-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .7rem;
}

.salud-specialty-list li {
  position: relative;
  background: #fff;
  border: 1px solid rgba(8, 129, 201, 0.25);
  border-radius: 16px;
  padding: .9rem 1rem .9rem 2.7rem;
  box-shadow: 0 8px 16px rgba(15, 55, 95, 0.15);
  color: #25364b;
  font-weight: 600;
}

.salud-specialty-list li::before {
  content: "";
  position: absolute;
  left: 1rem;
  top: 50%;
  width: 1rem;
  height: 1rem;
  border-radius: 50%;
  transform: translateY(-50%);
  background: linear-gradient(135deg, #0a74ca 0%, #16a4ff 100%);
  box-shadow: 0 0 0 6px rgba(7, 129, 230, 0.12);
}

@media (max-width: 991.98px) {
  .salud-action-card {
    min-height: 160px;
  }

  .salud-search-title {
    font-size: 1.55rem;
  }

  .salud-modal-image {
    min-height: 280px;
    max-height: 320px;
  }

  .salud-centro-card h3 {
    font-size: 1rem;
  }

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

@media (max-width: 767.98px) {
  .salud-hero {
    height: 34vh;
    min-height: 230px;
    background-position: center;
  }

  .salud-action-card {
    min-height: 152px;
    padding-top: 1.15rem;
  }

  .salud-search-card {
    padding: 1.25rem;
    border-radius: 20px;
  }

  .salud-search-title {
    font-size: 1.35rem;
  }

  .salud-search-result-head h3 {
    font-size: 1.12rem;
  }

  .salud-action-card img {
    width: 90px;
    height: 90px;
  }

  .salud-action-card span {
    font-size: .82rem;
    padding: .82rem .55rem;
  }

  .salud-centro-media,
  .salud-centro-image {
    min-height: 170px;
    max-height: 170px;
    height: 170px;
  }

  .salud-centro-btn {
    top: 12px;
    right: 12px;
    padding: .62rem .95rem;
    font-size: .92rem;
  }

  .salud-centro-info {
    padding: .55rem .55rem .7rem;
  }

  .salud-centro-card h3 {
    font-size: .96rem;
    margin: 0 0 .6rem;
  }

  .salud-centro-meta-grid {
    grid-template-columns: 1fr;
  }

  .salud-centro-meta-card {
    min-height: auto;
  }

  .salud-modal-content {
    border-radius: 18px;
  }

  .salud-modal-body {
    padding: 1.2rem 1rem 1.1rem;
  }

  .salud-modal-image {
    min-height: 220px;
    max-height: 250px;
  }

  .salud-modal-title {
    font-size: 1.45rem;
    margin: .85rem 0 1rem;
  }

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

  .salud-specialty-list {
    grid-template-columns: 1fr;
  }

  .salud-specialty-list li {
    padding: .82rem .9rem .82rem 2.45rem;
  }
}

/* Salud - ajuste grilla CAPS: 5 por fila en pantallas grandes */
@media (min-width: 1200px) {
  .col-xxl-caps-5 {
    flex: 0 0 auto;
    width: 20%;
  }

  .salud-centro-btn {
    top: 10px;
    right: 10px;
    padding: .44rem .78rem;
    font-size: .84rem;
    border-radius: 12px;
  }

  .salud-centro-info {
    padding: .62rem .62rem .78rem;
  }

  .salud-centro-card h3 {
    font-size: 1.02rem;
    margin: 0 0 .48rem;
  }

  .salud-centro-label {
    font-size: .83rem;
    letter-spacing: .045em;
  }

  .salud-centro-meta-card p {
    font-size: .98rem;
    line-height: 1.22;
  }

  .salud-centro-meta-inline i {
    font-size: .94rem;
  }
}

/* Salud - mobile: ocultar direccion en cards para priorizar imagen, nombre y telefono */
@media (max-width: 767.98px) {
  .salud-centro-info>.salud-centro-meta-card:first-of-type {
    display: none;
  }
}

/* Salud cards: telefono/whatsapp en una sola linea y direccion truncada */
.salud-centro-meta-inline {
  flex-wrap: nowrap;
}

.salud-centro-meta-inline p {
  margin: 0;
  white-space: nowrap;
  overflow: visible;
  text-overflow: clip;
  min-width: 0;
  font-size: clamp(.78rem, 1.35vw, .98rem);
  letter-spacing: .01em;
}

.salud-centro-info>.salud-centro-meta-card:first-of-type p {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin: 0;
}

/* Salud cards: quitar label Direccion y separar bloques con lineas sutiles */
.salud-centro-info .salud-centro-label {
  display: none;
}

.salud-centro-info>h3 {
  padding-bottom: .26rem;
  margin-bottom: .28rem;
  border-bottom: 1px solid rgba(255, 255, 255, .34);
}

.salud-centro-info>.salud-centro-meta-card:first-of-type {
  padding-bottom: .2rem;
  margin-bottom: .18rem;
  border-bottom: 1px solid rgba(255, 255, 255, .26);
}

.salud-centro-info>.salud-centro-meta-card:first-of-type p {
  margin-bottom: 0;
}

.salud-centro-meta-grid {
  gap: .2rem;
  margin-top: 0;
}

.salud-centro-meta-inline {
  margin: 0;
  padding-top: 0;
  padding-bottom: 0;
  min-height: 0;
}

.salud-centro-meta-grid>.salud-centro-meta-inline:only-child {
  grid-column: 1 / -1;
}

.salud-centro-meta-card {
  min-height: 0 !important;
}

/* Accessibility adjustments: stronger contrasts for key UI elements */
.btn-primary {
  background-color: var(--primary) !important;
  border-color: var(--primary) !important;
  color: #ffffff !important;
}

.btn-primary:hover,
.btn-primary:focus {
  background-color: #004b8c !important;
  border-color: #004b8c !important;
}

/* Links and focus states */
a {
  color: var(--primary);
}

a:hover,
a:focus {
  color: #003e6b;
}

/* Ensure footer text is readable */
footer .text-light {
  color: #e9f2fb !important;
}

/* Pagination active state consistent with primary color */
.pagination .page-item.active .page-link {
  background-color: var(--primary) !important;
  border-color: var(--primary) !important;
  color: #ffffff !important;
}

/* small utility: visible focus outline for keyboard users */
:focus {
  outline: 3px solid rgba(0, 94, 166, 0.25);
  outline-offset: 2px;
}

.telemedicina-btn-white,
.telemedicina-btn-white:hover,
.telemedicina-btn-white:focus,
.telemedicina-btn-white:active {
  color: #ffffff !important;
}