/* =========================================================
   SINGLE Empresa — Estilos finales (blanco + #2596be)
   ========================================================= */
:root{
  --principal:#2596be; --secundario:#2596be;
  --negro:#111; --blanco:#fff;
  --borde:rgba(0,0,0,.12); --borde-suave:#e6edf2; --texto-suave:#4a4a4a;
}

/* Base */
.container-wrap .main-content{ color:var(--negro); }
.container-wrap .main-content a,
.container-wrap .main-content .app-link{ color:var(--principal); text-decoration:none; }
.container-wrap .main-content a:hover,
.container-wrap .main-content .app-link:hover{ opacity:.9; text-decoration:underline; }
.container-wrap .main-content h1,.container-wrap .main-content h2{ margin:0 0 12px; line-height:1.25; }

/* Spacing entre sections */
.container-wrap .main-content section{ margin-bottom:48px; }
@media (min-width:1100px){ .container-wrap .main-content section{ margin-bottom:64px; } }

/* HERO */
.container-wrap .main-content .hero{ display:grid; grid-template-columns:1.2fr .8fr; gap:24px; padding:32px 0 8px; }
@media (max-width:920px){ .container-wrap .main-content .hero{ grid-template-columns:1fr; } }
.container-wrap .main-content .hero .banner{ position:relative; border:1px solid var(--borde); border-radius:18px; min-height:260px; background:#f7fbfd; overflow:hidden; }
.container-wrap .main-content .hero .banner .banner-img{ position:absolute; inset:0; background-size:cover; background-position:center; filter:saturate(1.05); }
.container-wrap .main-content .hero .copy{ display:flex; flex-direction:column; gap:10px; }
.container-wrap .main-content .hero .title-row{ display:flex; align-items:center; gap:14px; }
.container-wrap .main-content .hero .brandmark{ height:56px; width:56px; border-radius:12px; border:1px solid var(--borde); object-fit:contain; background:#fff; }
.container-wrap .main-content .hero .hero-title{ margin:0; color:var(--negro); }
.container-wrap .main-content .hero .hero-desc{ margin:6px 0 0; color:var(--texto-suave); }

/* Badges (chips) — fondo azul + texto blanco */
/* Badges (chips) — fondo dinámico + texto blanco */
.container-wrap .main-content .badges,
.container-wrap .main-content .badges--terms{
  display:flex; flex-wrap:wrap; gap:8px;
}

/* Usa --badge-bg si viene desde inline style; fallback al azul original */
.container-wrap .main-content .badges--terms a,
.container-wrap .main-content .badges a{
  --badge-bg: #2596be;
  display:inline-block;
  font-size:12px;
  border-radius:999px;
  padding:6px 12px;
  background: var(--badge-bg);
  color:#fff;
  border:1px solid var(--badge-bg);
  text-decoration:none;
  line-height:1;
  font-weight:600; /* opcional: quítalo si no lo quieres */
}

.container-wrap .main-content .badges--terms a:hover,
.container-wrap .main-content .badges a:hover{
  filter:brightness(0.95);
}


/* Grid + Cards */
.container-wrap .main-content .grid{ display:grid; gap:24px; }
.container-wrap .main-content .grid2{ grid-template-columns:1fr 1fr; }
@media (max-width:920px){ .container-wrap .main-content .grid2{ grid-template-columns:1fr; } }
.container-wrap .main-content .card{ background:#fff; border:1px solid var(--borde); border-radius:18px; padding:18px; }
.container-wrap .main-content .card .button,
.container-wrap .main-content .contact-form .button{
  background:#2596be; color:#fff; border:none; border-radius:999px;
  padding:10px 18px; font-weight:700; letter-spacing:.1px; cursor:pointer;
}
.container-wrap .main-content .card .button:hover,
.container-wrap .main-content .contact-form .button:hover{ filter:brightness(0.95); }

/* Datos de contacto (lista) */
.container-wrap .main-content .data-list{ list-style:none; padding:0; margin:0; display:grid; gap:12px; }
.container-wrap .main-content .data-list li{
  border:1px dashed var(--borde); border-radius:12px; padding:10px 12px; font-size:14px; background:#fff; line-height:1.45;
}
.container-wrap .main-content .data-list li strong{ color:#0e1217; display:block; margin-bottom:4px; }
@media (min-width:700px){
  .container-wrap .main-content .data-list li{ display:grid; grid-template-columns:160px 1fr; gap:10px; align-items:flex-start; }
  .container-wrap .main-content .data-list li strong{ margin:0; align-self:center; }
}

/* Formulario */
.container-wrap .main-content .contact-form label{ display:block; font-size:14px; color:var(--negro); margin:0 0 10px; }
.container-wrap .main-content .contact-form input,
.container-wrap .main-content .contact-form textarea{
  width:100%; background:#fff; color:var(--negro);
  border:1px solid var(--borde-suave); border-radius:10px; padding:10px 12px;
  outline:none; transition:border-color .15s, box-shadow .15s; margin-bottom:12px;
}
.container-wrap .main-content .contact-form textarea{ resize:vertical; }
.container-wrap .main-content .contact-form input:focus,
.container-wrap .main-content .contact-form textarea:focus{
  border-color:var(--principal); box-shadow:0 0 0 3px rgba(37,150,190,.12);
}

/* Redes — centradas */
.container-wrap .main-content .datos__info-rrss{
  margin-top:8px; display:flex; flex-wrap:wrap; justify-content:center; gap:18px; align-items:center;
}
.container-wrap .main-content .datos__info-rrss a{
  display:inline-flex; align-items:center; justify-content:center;
  width:52px; height:52px; border:1px solid var(--borde); border-radius:999px; background:#fff;
  transition:box-shadow .15s, border-color .15s, transform .08s;
}
.container-wrap .main-content .datos__info-rrss a:hover{ border-color:var(--principal); box-shadow:0 4px 16px rgba(37,150,190,.18); transform:translateY(-1px); }
.container-wrap .main-content .datos__info-rrss .rrss-img{ width:24px !important; height:24px !important; object-fit:contain; display:block; }

/* Carta (PDF) */
.container-wrap .main-content #carta .card-head{ display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:8px; }
.container-wrap .main-content #carta .pdf-wrap{ margin-top:12px; border:1px solid var(--borde); border-radius:12px; overflow:hidden; height:520px; background:#fafafa; }
.container-wrap .main-content #carta .note{ color:#666; padding:16px; }
@media (max-width:920px){ .container-wrap .main-content #carta .pdf-wrap{ height:55vh; } }

/* Galería — 1 en 1 y ancho completo (dentro de .card) */
.container-wrap .main-content .card.galeria{ max-width:100% !important; width:100%; }
#carousel.f-carousel{
  --f-carousel-slide-width:100% !important;
  --f-carousel-slides-per-page:1 !important;
  --f-carousel-spacing:0px !important;
}
#carousel.f-carousel .f-carousel__slide{
  flex:0 0 var(--f-carousel-slide-width) !important;
  max-width:var(--f-carousel-slide-width) !important;
}
#carousel.f-carousel .f-carousel__viewport,
#carousel.f-carousel .f-carousel__track{ width:100% !important; }
#carousel.f-carousel .f-carousel__slide img{
  width:100%; height:360px; object-fit:cover; display:block; border-radius:12px;
}
@media (max-width:768px){ #carousel.f-carousel .f-carousel__slide img{ height:240px; } }
/* Fallback si NO está iniciado: 1 en 1 */
#carousel:not(.is-initialized){ display:block !important; }
#carousel:not(.is-initialized) .f-carousel__slide{ margin-bottom:12px; }

/* Ubicación — mapa más alto */
.container-wrap .main-content #map-empresa{ height:360px; position:relative; }
@media (min-width:1100px){ .container-wrap .main-content #map-empresa{ height:420px; } }
.container-wrap .main-content #mapLoadingIndicator{ display:none; }


/* BUSCADOR DE EMPRESAS  */

/* =========================================================
   LISTADO / BUSCADOR DE EMPRESAS — estilos complementarios
   (encaja con el single: blanco + #2596be)
   ========================================================= */

/* Barra de filtros */
.filtros{
  background:#fff;
  border:1px solid var(--borde);
  border-radius:14px;
  overflow:hidden;
  margin-bottom:24px;
}
.filtros__form{
  display:flex; gap:24px; align-items:flex-end;
  padding:16px;
  flex-wrap:wrap;
}
.filtros__input{ flex:1 1 280px; min-width:260px; }
.filtros__input label{ display:block; font-weight:600; margin:0 0 6px; color:var(--negro); }

/* Input + botón de búsqueda en línea */
.filtros__input-buscar{
  display:flex; align-items:center; gap:10px;
}
.filtros__input-buscar #buscar{
  flex:1 1 auto;
  background:#fff; color:var(--negro);
  border:1px solid var(--borde-suave);
  border-radius:10px; padding:10px 12px;
  outline:none; transition:border-color .15s, box-shadow .15s;
}
.filtros__input-buscar #buscar:focus{
  border-color:var(--principal); box-shadow:0 0 0 3px rgba(37,150,190,.12);
}

/* Botón buscar */
.filtros__btn{
  background:#2596be; color:#fff; border:none;
  border-radius:999px; padding:10px 18px;
  font-weight:700; cursor:pointer; white-space:nowrap;
}
.filtros__btn:hover{ filter:brightness(.95); }
.filtros__btn:disabled{ opacity:.45; cursor:not-allowed; }

/* Select2 a juego */
.select2-container--default .select2-selection--single{
  min-height:44px; border-radius:10px !important;
  border:1px solid var(--borde-suave) !important;
  background:#fff !important;
}
.select2-container--default .select2-selection--single .select2-selection__rendered{
  line-height:42px; padding:0 36px 0 12px; color:var(--negro);
}
.select2-container--default .select2-selection--single .select2-selection__arrow{
  height:42px; right:8px;
}
.select2-container--default .select2-dropdown{ border:1px solid var(--borde-suave); }
.select2-container--default .select2-results__option--highlighted[aria-selected]{
  background:#2596be; color:#fff;
}

/* Contenedor de resultados */
.main-empresas{ width:100%; }
#resultsContainer{
  position:relative;
  display:flex; flex-direction:column; gap:20px;
}

/* Overlay de carga */
#resultsLoadingIndicator{
  position:absolute; inset:0;
  background:rgba(255,255,255,.8);
  display:none; align-items:center; justify-content:center;
  z-index:10;
}
#resultsLoadingIndicator.active{ display:flex; }
.spinner{
  width:42px; height:42px;
  border:4px solid rgba(0,0,0,.12);
  border-top-color:#2596be;
  border-radius:50%; animation:spin .6s linear infinite;
}

/* Grid de cards */
#empresas{
  display:grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap:16px;
}

/* Estado vacío alineado y legible */
#empresas > p{
  grid-column:1 / -1;
  text-align:center; margin:16px 0; color:#555;
}

/* Card de empresa (reutiliza naming previo .empresa) */
#empresas .empresa{
  background:#fff;
  border:1px solid var(--borde);
  border-radius:14px; overflow:hidden;
  display:flex; flex-direction:column;
  transition: box-shadow .15s, transform .08s, border-color .15s;
}
#empresas .empresa:hover{
  border-color: rgba(37,150,190,.35);
  box-shadow: 0 6px 24px rgba(37,150,190,.12);
  transform: translateY(-1px);
}

/* Imagen/cover */
#empresas .empresa__top{ width:100%; position:relative; }
#empresas .empresa__top .empresa__top-image{
  width:100%; height:180px; object-fit:cover; display:block;
}
#empresas .empresa__top .empresa__top-image.logo{
  height:110px; width:auto; object-fit:contain; margin:16px auto 0;
}

/* Cuerpo */
#empresas .empresa__bottom{
  display:flex; flex-direction:column; gap:8px;
  padding:14px;
}
#empresas .empresa__bottom-top{
  font-size:12px; color:#6b7280;
}
#empresas .empresa__bottom-bottom{
  font-size:18px; font-weight:700; line-height:1.25;
}
#empresas .empresa__bottom-bottom a{
  color:inherit; text-decoration:none;
}
#empresas .empresa__bottom-bottom a:hover{ color:#2596be; }

/* Botón “Ver más” */
#resultsContainer .button#cargar_mas{
  align-self:center;
  background:#2596be; color:#fff; border:none;
  border-radius:999px; padding:10px 18px;
  font-weight:700; cursor:pointer;
  display:none; /* se muestra vía JS cuando hay más */
}
#resultsContainer .button#cargar_mas:hover{ filter:brightness(.95); }

/* Responsive tweaks */
@media (max-width:720px){
  .filtros__input{ min-width:100%; }
  #empresas{ grid-template-columns: 1fr; }
}


.js-oferta-modal {
  color: #ffffff !important;
}

.js-oferta-modal:hover {
  color: #2596be !important;
}