/* Estilos compartidos: landings por parroquia y galería de trabajos */
.hero-section {
  background: linear-gradient(135deg, #0d6efd 0%, #0a58ca 100%);
  color: white;
}
.hero-img {
  width: 100%;
  height: 360px;
  object-fit: cover;
}
.breadcrumb-light .breadcrumb-item a { color: rgba(255,255,255,.85); }
.breadcrumb-light .breadcrumb-item.active,
.breadcrumb-light .breadcrumb-item + .breadcrumb-item::before { color: rgba(255,255,255,.65); }
.section-highlight {
  background-color: #f8f9fa;
  border-left: 5px solid #0d6efd;
}
.icon-circle {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #0d6efd;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.gal-img {
  height: 220px;
  object-fit: cover;
}
.dropdown-scroll {
  max-height: 60vh;
  overflow-y: auto;
}
@media (max-width: 576px) {
  .hero-img { height: 240px; }
}
video, img { max-width: 100%; }

/* Galería ANTES / DESPUÉS */
.card-ab { background: transparent; cursor: pointer; transition: transform .15s ease; }
.card-ab:hover { transform: translateY(-3px); }
.ab-portada { height: 280px; object-fit: cover; }
.foto-ab { position: relative; }
.foto-ab img { width: 100%; height: 260px; object-fit: cover; }
.sello-ab {
  position: absolute;
  top: 10px;
  left: 10px;
  color: #fff;
  font-weight: 800;
  font-size: 1.25rem;
  letter-spacing: .05em;
  padding: .2rem .7rem;
  border-radius: .4rem;
  box-shadow: 0 2px 6px rgba(0,0,0,.35);
  z-index: 1;
}
.sello-grande { font-size: 2.5rem; top: 16px; left: 16px; padding: .2rem 1rem; }

/* Mapa interactivo de zonas */
.mapa-barinas { height: 460px; width: 100%; border-radius: .5rem; box-shadow: 0 4px 12px rgba(0,0,0,.12); z-index: 0; }
.leyenda-punto { display: inline-block; width: 12px; height: 12px; border-radius: 50%; border: 2px solid #fff; box-shadow: 0 0 0 1px rgba(0,0,0,.25); vertical-align: middle; }
@media (max-width: 576px) { .mapa-barinas { height: 360px; } }

/* Etiquetas largas (nombres de parroquias) hacen salto de línea en móvil */
.hero-section .badge { white-space: normal; text-align: left; line-height: 1.3; }

/* Franja "Atendido por Omar Santiago" */
.atendido-por { background: linear-gradient(135deg, #0a58ca 0%, #084298 100%); color: #fff; }

/* Barra fija de contacto (Llamar / WhatsApp) */
body { padding-bottom: 84px; }
.barra-contacto {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1030;
  display: flex;
  gap: 12px;
  padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
  background: #111;
  box-shadow: 0 -4px 14px rgba(0,0,0,.35);
}
.btn-barra {
  flex: 1 1 0;
  max-width: 540px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  border-radius: 8px;
  color: #fff;
  font-weight: 800;
  font-size: 1.15rem;
  letter-spacing: .02em;
  text-decoration: none;
  transition: filter .15s ease;
}
.btn-barra:hover, .btn-barra:focus { color: #fff; filter: brightness(1.08); }
.btn-llamar { background: #dc3232; margin-left: auto; }
.btn-wa { background: #25d366; margin-right: auto; }
@media (max-width: 400px) { .btn-barra { font-size: 1rem; } }

/* Modal "Las cámaras que reparamos" */
.marca-camara { background: #f8f9fa; border-left: 4px solid #0d6efd; border-radius: .5rem; padding: 1rem; }
.chip-camara { display: inline-block; background: #fff; border: 1px solid #ced4da; border-radius: 999px; padding: .25rem .75rem; margin: 0 .25rem .4rem 0; font-weight: 600; }
.navbar .nav-link { white-space: nowrap; }
@media (min-width: 992px) and (max-width: 1199.98px) {
  .navbar-brand { font-size: 1rem; }
  .navbar .nav-link { font-size: .85rem; padding-left: .4rem !important; padding-right: .4rem !important; }
}
