/* =====================================================================================================
 * TopCuidadores — estilos propios (único CSS propio de la web; se carga después de Bootstrap 5.3).
 * Al modificarlo, sube VERSION_ESTATICOS en app/arranque.php para que los navegadores descarguen la versión nueva.
 *
 * Índice: 1. Variables y base · 2. Cabecera · 3. Botones y formularios · 4. Portada · 5. Listados y tarjetas
 *         6. Ficha de anuncio · 7. Perfiles y valoraciones · 8. Contenidos · 9. Mi cuenta · 10. Panel admin
 *         11. Pie, avisos y utilidades
 * ===================================================================================================== */

/* 1. Variables y base ------------------------------------------------------------------------------ */
:root {
    --tc-marino: #162a4d;      /* Azul oscuro del logotipo */
    --tc-azul: #2a5ea8;        /* Azul principal (contraste AA sobre blanco) */
    --tc-azul-claro: #5c7fb1;  /* Azul claro del logotipo */
    --tc-azul-fondo: #eaf0f8;
    --tc-fondo: #f5f7fb;
    --tc-borde: #dfe5ee;
    --tc-texto: #1d2b44;
    --tc-suave: #55657e;
    --tc-acento: #c4447a;      /* Color de acento (frambuesa suave). Se puede cambiar en Admin → Ajustes → color_acento */
    --tc-acento-oscuro: color-mix(in srgb, var(--tc-acento) 80%, #000);
    --tc-acento-suave: color-mix(in srgb, var(--tc-acento) 11%, #fff);
    --tc-acento-medio: color-mix(in srgb, var(--tc-acento) 30%, #fff);
    --tc-verde: #1d7a46;
    --tc-sombra: 0 1px 2px rgba(22, 42, 77, .06), 0 4px 16px rgba(22, 42, 77, .07);
    --tc-radio: .75rem;

    --bs-body-font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --bs-body-font-size: 1.0625rem;
    --bs-body-color: var(--tc-texto);
    --bs-body-bg: #fff;
    --bs-primary: #2a5ea8;
    --bs-primary-rgb: 42, 94, 168;
    --bs-link-color: #2a5ea8;
    --bs-link-color-rgb: 42, 94, 168;
    --bs-link-hover-color: #162a4d;
    --bs-link-hover-color-rgb: 22, 42, 77;
    --bs-border-color: var(--tc-borde);
    --bs-border-radius: .6rem;
    --bs-border-radius-lg: .8rem;
    --bs-secondary-color: var(--tc-suave);
}

body { line-height: 1.6; -webkit-font-smoothing: antialiased; }
h1, h2, h3, .h1, .h2, .h3, .h4, .h5 { color: var(--tc-marino); font-weight: 700; letter-spacing: -.01em; }
h1 { font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.35rem); }
h2 { font-size: clamp(1.3rem, 1.1rem + .8vw, 1.65rem); }
a { text-underline-offset: .18em; }
:focus-visible { outline: 3px solid #f0a020 !important; outline-offset: 2px; }
.saltar { position: absolute; left: 1rem; top: .5rem; z-index: 2000; background: #fff; padding: .5rem 1rem; border-radius: .5rem; }
.fondo-suave { background: var(--tc-fondo); }
.fondo-marca { background: linear-gradient(120deg, var(--tc-marino), var(--tc-azul)); color: #fff; }
.fondo-marca h2 { color: #fff; }
.titulo-seccion { margin-bottom: 1.25rem; }
.campo-trampa { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* 2. Cabecera ---------------------------------------------------------------------------------------- */
.cabecera { background: #fff; border-bottom: 1px solid var(--tc-borde); position: sticky; top: 0; z-index: 1030; }
.cabecera .navbar { padding: .45rem 0; }
.cabecera .navbar-brand img { height: 46px; width: auto; }
.cabecera .nav-link { font-weight: 600; color: var(--tc-marino); padding: .6rem .9rem !important; border-radius: .5rem; }
.cabecera .nav-link:hover { background: var(--tc-azul-fondo); }
.menu-servicios .dropdown-item { padding: .55rem 1rem; }
.menu-servicios i, .dropdown-item i { color: var(--tc-azul); width: 1.4rem; display: inline-block; }
.navbar-toggler { border: 0; font-size: 1.8rem; color: var(--tc-marino); padding: .25rem .4rem; }
.btn-icono { font-size: 1.35rem; color: var(--tc-marino); padding: .35rem .6rem; }
.btn-cuenta { display: inline-flex; align-items: center; gap: .45rem; font-weight: 600; color: var(--tc-marino); border: 0; }
.enlace-acceso { font-weight: 600; text-decoration: none; color: var(--tc-marino); }
.contador { position: absolute; top: 0; right: 0; background: #d63333; color: #fff; font-size: .7rem; font-weight: 700; min-width: 1.15rem; height: 1.15rem;
    border-radius: 1rem; display: inline-flex; align-items: center; justify-content: center; padding: 0 .25rem; }
.contador-linea { position: static; }
.aviso-suplantacion { background: #fff3cd; text-align: center; padding: .4rem 1rem; font-size: .95rem; }
@media (max-width: 991.98px) {
    .cabecera .navbar-brand img { height: 38px; }
    .enlace-acceso span { display: none; }
    .enlace-acceso i { font-size: 1.4rem; }
}

/* 3. Botones y formularios ----------------------------------------------------------------------------- */
.btn { font-weight: 600; padding: .6rem 1.1rem; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: .4rem; }
.btn-sm { min-height: 36px; padding: .35rem .8rem; }
.btn-lg { min-height: 52px; }
.btn-primary { --bs-btn-bg: var(--tc-azul); --bs-btn-border-color: var(--tc-azul); --bs-btn-hover-bg: var(--tc-marino); --bs-btn-hover-border-color: var(--tc-marino);
    --bs-btn-active-bg: var(--tc-marino); --bs-btn-disabled-bg: var(--tc-azul-claro); --bs-btn-disabled-border-color: var(--tc-azul-claro); }
.btn-outline-primary { --bs-btn-color: var(--tc-azul); --bs-btn-border-color: var(--tc-azul); --bs-btn-hover-bg: var(--tc-azul); --bs-btn-hover-border-color: var(--tc-azul); --bs-btn-active-bg: var(--tc-marino); }
.btn-publicar { background: var(--tc-acento); color: #fff; border: 0; }
.btn-publicar:hover, .btn-publicar:focus { background: var(--tc-acento-oscuro); color: #fff; }
.btn-whatsapp { background: #1a7f45; color: #fff; }
.btn-whatsapp:hover { background: #136536; color: #fff; }
.form-control, .form-select { min-height: 46px; border-color: #c8d2e0; }
.form-control:focus, .form-select:focus { border-color: var(--tc-azul-claro); box-shadow: 0 0 0 .2rem rgba(42, 94, 168, .2); }
.form-label { font-weight: 600; color: var(--tc-marino); }
legend.form-label { font-size: 1rem; }
.form-check-input { width: 1.2em; height: 1.2em; }
.form-check-label { padding-left: .2rem; }
.is-invalid ~ .invalid-feedback { display: block; }
.paso-formulario[hidden] { display: none !important; }
.progreso-pasos { display: flex; gap: .5rem; list-style: none; padding: 0; margin: 0 0 1.5rem; counter-reset: paso; }
.progreso-pasos li { flex: 1; text-align: center; font-size: .9rem; color: var(--tc-suave); position: relative; padding-top: 2.4rem; counter-increment: paso; }
.progreso-pasos li::before { content: counter(paso); position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 2rem; height: 2rem; border-radius: 50%;
    background: var(--tc-azul-fondo); color: var(--tc-azul); font-weight: 700; display: flex; align-items: center; justify-content: center; }
.progreso-pasos li.activo { color: var(--tc-marino); font-weight: 700; }
.progreso-pasos li.activo::before, .progreso-pasos li.hecho::before { background: var(--tc-azul); color: #fff; }
.opciones-tarjeta { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: .6rem; }
.opciones-tarjeta input { position: absolute; opacity: 0; }
.opciones-tarjeta label { display: flex; flex-direction: column; gap: .3rem; align-items: flex-start; border: 2px solid var(--tc-borde); border-radius: var(--tc-radio);
    padding: .8rem; cursor: pointer; height: 100%; font-weight: 600; }
.opciones-tarjeta label small { font-weight: 400; color: var(--tc-suave); }
.opciones-tarjeta input:checked + label { border-color: var(--tc-azul); background: var(--tc-azul-fondo); }
.opciones-tarjeta input:focus-visible + label { outline: 3px solid #f0a020; }
.fotos-subidas { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: .6rem; }
.fotos-subidas figure { position: relative; margin: 0; }
.fotos-subidas img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: .5rem; }
.fotos-subidas button { position: absolute; top: .3rem; right: .3rem; }

/* 4. Portada ---------------------------------------------------------------------------------------------- */
/* Portada: banda con degradado corporativo (marino → azul) y destellos suaves para dar impacto */
.portada-hero { position: relative; overflow: hidden; color: #fff; padding: 3rem 0 3.5rem;
    background: radial-gradient(700px 320px at 90% 10%, rgba(255, 255, 255, .16) 0, transparent 60%),
                radial-gradient(600px 300px at 0% 100%, color-mix(in srgb, var(--tc-acento) 35%, transparent) 0, transparent 60%),
                linear-gradient(135deg, var(--tc-marino) 0%, var(--tc-azul) 100%); }
.portada-hero h1 { font-size: clamp(1.75rem, 1.2rem + 2vw, 2.7rem); color: #fff; }
.portada-hero .lead { color: #dbe6f5; max-width: 40rem; }
.portada-hero .buscador { box-shadow: 0 18px 40px rgba(10, 20, 40, .3); border: 0; color: var(--tc-texto, #1f2a3d); }
.portada-hero .hero-ventajas { color: #fff; }
.portada-hero .hero-ventajas i { color: #7fd6a4; }
.portada-hero .hero-icono { background: rgba(255, 255, 255, .95); border-radius: 50%; padding: 1.5rem; aspect-ratio: 1; height: auto; object-fit: contain; filter: drop-shadow(0 18px 30px rgba(0, 0, 0, .25)); }
.hero-icono { width: 100%; max-width: 320px; display: block; margin-left: auto; filter: drop-shadow(0 18px 30px rgba(22, 42, 77, .15)); }
.hero-ventajas { list-style: none; padding: 0; margin: 1.2rem 0 0; display: flex; flex-wrap: wrap; gap: .5rem 1.4rem; color: var(--tc-marino); font-weight: 600; font-size: .98rem; }
.hero-ventajas i { color: var(--tc-verde); }
.buscador { display: grid; grid-template-columns: 1fr 1fr auto; gap: .75rem; align-items: end; background: #fff; border: 1px solid var(--tc-borde);
    border-radius: var(--tc-radio); padding: 1rem; box-shadow: var(--tc-sombra); }
.buscador .form-label { font-size: .92rem; margin-bottom: .3rem; }
.buscador-grande { padding: 1.25rem; }
.btn-buscar { min-height: 46px; padding-inline: 1.6rem; }
@media (max-width: 767.98px) { .buscador { grid-template-columns: 1fr; } .btn-buscar { width: 100%; } }
.rejilla-categorias { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 1rem; }
.tarjeta-categoria { display: flex; flex-direction: column; gap: .2rem; padding: 1.2rem; border: 1px solid var(--tc-borde); border-radius: var(--tc-radio);
    background: #fff; text-decoration: none; color: var(--tc-marino); transition: transform .15s, box-shadow .15s; }
.tarjeta-categoria:hover { transform: translateY(-2px); box-shadow: var(--tc-sombra); }
.tarjeta-categoria i { font-size: 2rem; color: var(--tc-azul); }
.tarjeta-categoria .nombre { font-weight: 700; font-size: 1.05rem; }
.tarjeta-categoria .numero { color: var(--tc-suave); font-size: .9rem; }
.tarjeta-empresas { background: var(--tc-azul-fondo); }
.tarjeta-destacada { background: #fff; border-radius: var(--tc-radio); padding: 1.5rem; height: 100%; box-shadow: var(--tc-sombra); }
.tarjeta-destacada > i { font-size: 2.2rem; color: var(--tc-azul); }
.tarjeta-destacada li { padding: .2rem 0; }
.caja-marca { background: var(--tc-azul-fondo); border-radius: var(--tc-radio); padding: 2rem; }

/* 5. Listados y tarjetas ------------------------------------------------------------------------------------ */
.migas .breadcrumb { font-size: .92rem; margin-bottom: .8rem; }
.cabecera-listado h1 { margin-bottom: .75rem; }
.rejilla-anuncios { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 1.1rem; }
.rejilla-4 { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }
.tarjeta-anuncio { position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--tc-borde); border-radius: var(--tc-radio);
    overflow: hidden; transition: box-shadow .15s, transform .15s; }
.tarjeta-anuncio:hover { box-shadow: var(--tc-sombra); transform: translateY(-2px); }
.tarjeta-foto { position: relative; display: block; aspect-ratio: 4/3; background: var(--tc-azul-fondo); }
.tarjeta-foto img { width: 100%; height: 100%; object-fit: cover; }
.sin-foto { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 3.4rem; color: #fff;
    background: linear-gradient(135deg, var(--tc-azul-claro), var(--tc-azul)); }
.etiqueta-tipo { position: absolute; left: .6rem; top: .6rem; font-size: .78rem; font-weight: 700; padding: .2rem .55rem; border-radius: 2rem; background: #fff; color: var(--tc-azul); }
.etiqueta-tipo.busco { background: var(--tc-acento-suave); color: var(--tc-acento-oscuro); }
.etiqueta-tipo.estatica { position: static; display: inline-block; }
.etiqueta-servicio { font-size: .85rem; font-weight: 600; margin-left: .4rem; }
.tarjeta-cuerpo { padding: .9rem 1rem 1rem; display: flex; flex-direction: column; flex: 1; }
.tarjeta-servicio { font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; color: var(--tc-azul); font-weight: 700; margin: 0 0 .2rem; }
.tarjeta-titulo { font-size: 1.05rem; line-height: 1.35; margin: 0 0 .35rem; }
.tarjeta-titulo a { color: var(--tc-marino); text-decoration: none; }
.tarjeta-titulo a::after { content: ""; position: absolute; inset: 0; }   /* Toda la tarjeta es clicable */
.tarjeta-lugar { font-size: .9rem; color: var(--tc-suave); margin: 0 0 .35rem; }
.tarjeta-texto { font-size: .92rem; color: var(--tc-suave); margin: 0 0 .7rem; }
.tarjeta-pie { margin-top: auto; display: flex; justify-content: space-between; align-items: center; gap: .5rem; }
.tarjeta-precio { font-weight: 800; color: var(--tc-marino); }
.tarjeta-anunciante { display: flex; align-items: center; gap: .45rem; font-size: .88rem; border-top: 1px solid var(--tc-borde); margin-top: .7rem; padding-top: .6rem; color: var(--tc-suave); }
.sello { color: var(--tc-azul); }
.btn-favorito { position: absolute; top: .5rem; right: .5rem; z-index: 2; width: 42px; height: 42px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .95);
    color: var(--tc-marino); font-size: 1.15rem; display: flex; align-items: center; justify-content: center; box-shadow: 0 1px 4px rgba(0, 0, 0, .15); }
.btn-favorito.activo, .btn-favorito-ficha.activo i { color: #d63333; }
.estrellas { display: inline-flex; align-items: center; gap: .3rem; color: var(--tc-texto); white-space: nowrap; }
.estrellas .bi { color: #e8a317; }
.estrellas-compacta { font-size: .88rem; }
.chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.chip { display: inline-flex; align-items: center; gap: .4rem; padding: .45rem .9rem; border-radius: 2rem; background: var(--tc-azul-fondo); color: var(--tc-marino);
    text-decoration: none; font-weight: 600; font-size: .95rem; min-height: 40px; }
.chip span { background: #fff; border-radius: 1rem; padding: 0 .45rem; font-size: .8rem; }
.chip:hover { background: #d6e2f3; }
.filtros { background: var(--tc-fondo); border-radius: var(--tc-radio); padding: 1.1rem; }
.filtros-titulo { font-weight: 700; color: var(--tc-marino); }
.barra-filtros-movil { position: sticky; top: 62px; z-index: 5; display: flex; justify-content: space-between; align-items: center; background: #fff; padding: .5rem 0; }
@media (max-width: 991.98px) { .filtros { background: none; padding: 0; } }
.cabecera-resultados { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: .75rem; margin-bottom: 1rem; }
.pildoras { display: flex; flex-wrap: wrap; gap: .45rem; margin-bottom: 1rem; }
.pildora { display: inline-flex; align-items: center; gap: .35rem; background: var(--tc-marino); color: #fff; padding: .35rem .8rem; border-radius: 2rem; text-decoration: none; font-size: .9rem; }
.pildora:hover { background: var(--tc-azul); color: #fff; }
.pildora-borrar { background: transparent; color: var(--tc-azul); text-decoration: underline; }
.paginacion { margin-top: 2rem; }
.page-link { min-width: 44px; min-height: 44px; display: flex; align-items: center; justify-content: center; color: var(--tc-azul); }
.page-item.active .page-link { background: var(--tc-azul); border-color: var(--tc-azul); }
.estado-vacio { text-align: center; padding: 2.5rem 1rem; border: 2px dashed var(--tc-borde); border-radius: var(--tc-radio); }
.estado-vacio > i { font-size: 2.6rem; color: var(--tc-azul-claro); }
.estado-vacio-titulo { font-size: 1.2rem; font-weight: 700; color: var(--tc-marino); margin: .5rem 0; }
.caja-alerta { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; background: var(--tc-azul-fondo); border-radius: var(--tc-radio); padding: 1rem 1.2rem; margin-top: 2rem; }
.caja-alerta > i { font-size: 1.6rem; color: var(--tc-azul); }
.caja-alerta > div { flex: 1; min-width: 220px; }
.texto-seo { color: var(--tc-suave); max-width: 60rem; }
.como-funciona { background: var(--tc-fondo); border-radius: var(--tc-radio); padding: 1.8rem; margin-top: 2.5rem; }
.como-funciona .pasos { list-style: none; padding: 0; margin: 1rem 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1.2rem; }
.como-funciona .pasos li { display: flex; flex-direction: column; gap: .2rem; }
.como-funciona .pasos strong { color: var(--tc-marino); font-size: 1.05rem; }
.como-funciona .pasos span:not(.paso-icono) { color: var(--tc-suave); }
.paso-icono { width: 3rem; height: 3rem; border-radius: 50%; background: #fff; color: var(--tc-azul); display: flex; align-items: center; justify-content: center; font-size: 1.4rem; margin-bottom: .4rem; }
.como-funciona.compacta h2 { font-size: 1.25rem; }

/* 6. Ficha de anuncio ---------------------------------------------------------------------------------------- */
.ficha-cabecera { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.2rem; }
.ficha-cabecera h1 { margin: .4rem 0; }
.ficha-meta { display: flex; flex-wrap: wrap; gap: .3rem 1.2rem; color: var(--tc-suave); font-size: .95rem; margin: 0; }
.galeria { display: grid; gap: .5rem; border-radius: var(--tc-radio); overflow: hidden; margin-bottom: 1.5rem; aspect-ratio: 16/9; }
.galeria-1 { grid-template-columns: 1fr; }
.galeria-2 { grid-template-columns: 1fr 1fr; }
.galeria-3 { grid-template-columns: 2fr 1fr; grid-template-rows: 1fr 1fr; }
.galeria-3 .galeria-foto:first-child { grid-row: span 2; }
.galeria-4, .galeria-5 { grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 1fr 1fr; }
.galeria-4 .galeria-foto:first-child, .galeria-5 .galeria-foto:first-child { grid-row: span 2; }
.galeria-4 .galeria-foto:last-child { grid-column: span 2; }
.galeria-foto { position: relative; border: 0; padding: 0; background: var(--tc-azul-fondo); cursor: zoom-in; overflow: hidden; }
.galeria-foto img { width: 100%; height: 100%; object-fit: cover; transition: transform .25s; }
.galeria-foto:hover img { transform: scale(1.03); }
.galeria-mas { position: absolute; inset: 0; background: rgba(22, 42, 77, .55); color: #fff; font-size: 1.6rem; font-weight: 700; display: flex; align-items: center; justify-content: center; }
@media (max-width: 575.98px) { .galeria { aspect-ratio: 4/3; grid-template-columns: 1fr !important; grid-template-rows: 1fr !important; } .galeria-foto:not(:first-child) { display: none; } }
.bloque { border-top: 1px solid var(--tc-borde); padding: 1.4rem 0; }
.bloque h2 { font-size: 1.3rem; }
.texto-anuncio { font-size: 1.05rem; }
.detalles { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: .9rem; margin: 0; }
.detalles div { background: var(--tc-fondo); border-radius: .6rem; padding: .7rem .9rem; }
.detalles dt { font-size: .85rem; color: var(--tc-suave); font-weight: 600; }
.detalles dd { margin: 0; font-weight: 600; color: var(--tc-marino); }
.columna-contacto { position: sticky; top: 84px; display: flex; flex-direction: column; gap: 1rem; }
.caja-contacto, .caja-anunciante { background: #fff; border: 1px solid var(--tc-borde); border-radius: var(--tc-radio); padding: 1.3rem; box-shadow: var(--tc-sombra); }
.precio-grande { font-size: 1.6rem; font-weight: 800; color: var(--tc-marino); margin-bottom: .8rem; }
.sellos { list-style: none; padding: 0; margin: .9rem 0; font-size: .92rem; }
.sellos li { padding: .15rem 0; }
.sellos i { color: var(--tc-azul); }
.aviso-intermediario { font-size: .88rem; color: var(--tc-suave); background: var(--tc-fondo); border-radius: .6rem; padding: .8rem 1rem; }
.visor .modal-content { background: #0b1220; }
.visor .carousel-item img { width: 100%; height: 100%; object-fit: contain; }
.visor-cerrar { position: absolute; top: 1rem; right: 1rem; z-index: 10; width: 2rem; height: 2rem; }

/* 7. Perfiles y valoraciones -------------------------------------------------------------------------------------- */
.avatar { border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.avatar-iniciales { --tam: 40px; width: var(--tam); height: var(--tam); display: inline-flex; align-items: center; justify-content: center; background: var(--tc-azul);
    color: #fff; font-weight: 700; font-size: calc(var(--tam) * .4); }
.perfil-cabecera { display: flex; gap: 1.4rem; align-items: center; flex-wrap: wrap; background: var(--tc-fondo); border-radius: var(--tc-radio); padding: 1.5rem; margin-bottom: 1.5rem; }
.perfil-cabecera h1 { margin: 0 0 .3rem; }
.valoracion { border-bottom: 1px solid var(--tc-borde); padding: 1rem 0; }
.valoracion .criterios span + span::before { content: " · "; }
.valoracion .respuesta { background: var(--tc-fondo); border-left: 4px solid var(--tc-azul-claro); padding: .6rem .9rem; border-radius: .4rem; margin-top: .5rem; font-size: .95rem; }
.reparto { list-style: none; padding: 0; margin: 0; }
.reparto li { display: grid; grid-template-columns: 4.5rem 1fr 2rem; align-items: center; gap: .6rem; font-size: .92rem; }
.reparto .barra { height: .55rem; background: var(--tc-azul-fondo); border-radius: 1rem; overflow: hidden; }
.reparto .barra span { display: block; height: 100%; background: #e8a317; }
.selector-estrellas { display: inline-flex; flex-direction: row-reverse; gap: .2rem; }
.selector-estrellas input { position: absolute; opacity: 0; }
.selector-estrellas label { font-size: 2rem; color: #c9d2df; cursor: pointer; line-height: 1; }
.selector-estrellas input:checked ~ label, .selector-estrellas label:hover, .selector-estrellas label:hover ~ label { color: #e8a317; }
.selector-estrellas input:focus-visible + label { outline: 3px solid #f0a020; }

/* 8. Contenidos (páginas, blog, preguntas) ------------------------------------------------------------------------- */
.contenido-texto { max-width: 52rem; }
.contenido-texto h2 { margin-top: 2rem; font-size: 1.35rem; }
.contenido-texto img { max-width: 100%; height: auto; border-radius: .6rem; }
.tarjeta-articulo { background: #fff; border: 1px solid var(--tc-borde); border-radius: var(--tc-radio); overflow: hidden; height: 100%; position: relative; }
.tarjeta-articulo img { width: 100%; aspect-ratio: 16/9; object-fit: cover; }
.tarjeta-articulo .cuerpo { padding: 1rem 1.2rem; }
.tarjeta-articulo h2, .tarjeta-articulo h3 { font-size: 1.15rem; }
.tarjeta-articulo a.estirar::after { content: ""; position: absolute; inset: 0; }
.accordion-button { font-weight: 600; color: var(--tc-marino); font-size: 1.05rem; }
.accordion-button:not(.collapsed) { background: var(--tc-azul-fondo); color: var(--tc-marino); }

/* 9. Mi cuenta y acceso ------------------------------------------------------------------------------------------------ */
.caja-acceso { max-width: 30rem; margin: 2.5rem auto; background: #fff; border: 1px solid var(--tc-borde); border-radius: var(--tc-radio); padding: 2rem; box-shadow: var(--tc-sombra); }
.marco-cuenta { display: grid; grid-template-columns: 250px 1fr; gap: 2rem; padding: 2rem 0; }
.marco-cuenta > * { min-width: 0; }   /* Evita que el menú horizontal del móvil ensanche la página */
.menu-cuenta { list-style: none; padding: 0; margin: 0; position: sticky; top: 84px; }
.menu-cuenta a { display: flex; align-items: center; gap: .6rem; padding: .7rem .9rem; border-radius: .6rem; color: var(--tc-marino); text-decoration: none; font-weight: 600; }
.menu-cuenta a:hover { background: var(--tc-fondo); }
.menu-cuenta a.activo { background: var(--tc-azul-fondo); color: var(--tc-azul); }
.menu-cuenta .badge { margin-left: auto; }
@media (max-width: 991.98px) {
    .marco-cuenta { grid-template-columns: 1fr; gap: 1rem; padding-top: 1rem; }
    .menu-cuenta { position: static; display: flex; overflow-x: auto; gap: .3rem; padding-bottom: .4rem; }
    .menu-cuenta a { white-space: nowrap; padding: .5rem .8rem; background: var(--tc-fondo); }
}
.panel { background: #fff; border: 1px solid var(--tc-borde); border-radius: var(--tc-radio); padding: 1.4rem; margin-bottom: 1.4rem; }
.panel > h2 { font-size: 1.2rem; margin-bottom: 1rem; }
.cifras { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 1rem; }
.cifra { background: var(--tc-fondo); border-radius: var(--tc-radio); padding: 1rem; text-decoration: none; color: var(--tc-marino); }
.cifra strong { display: block; font-size: 1.8rem; }
.fila-lista { display: flex; align-items: center; gap: 1rem; padding: .9rem 0; border-bottom: 1px solid var(--tc-borde); flex-wrap: wrap; }
.fila-lista:last-child { border-bottom: 0; }
.fila-lista .miniatura { width: 84px; height: 63px; object-fit: cover; border-radius: .4rem; background: var(--tc-azul-fondo); flex-shrink: 0;
    display: flex; align-items: center; justify-content: center; color: var(--tc-azul-claro); font-size: 1.6rem; }
.fila-lista .datos { flex: 1; min-width: 200px; }
.fila-lista.no-leida { background: #f6f9ff; }
.estado { font-size: .78rem; font-weight: 700; padding: .2rem .6rem; border-radius: 2rem; text-transform: uppercase; letter-spacing: .03em; }
.estado-publicado, .estado-aceptada, .estado-activo { background: #e3f4ea; color: #155d35; }
.estado-pausado, .estado-pendiente, .estado-borrador { background: #fff3cd; color: #7a5800; }
.estado-rechazado, .estado-rechazada, .estado-eliminado, .estado-bloqueado, .estado-caducado, .estado-cancelada, .estado-retirada, .estado-denunciada { background: #fbe4e4; color: #8f1f1f; }
.chat { display: flex; flex-direction: column; gap: .6rem; max-height: 60vh; overflow-y: auto; padding: 1rem; background: var(--tc-fondo); border-radius: var(--tc-radio); }
.burbuja { max-width: 80%; padding: .6rem .9rem; border-radius: 1rem; background: #fff; box-shadow: 0 1px 2px rgba(0, 0, 0, .06); }
.burbuja.mia { align-self: flex-end; background: var(--tc-azul); color: #fff; }
.burbuja small { display: block; opacity: .75; font-size: .75rem; margin-top: .2rem; }
.datos-contacto { background: #e3f4ea; border-radius: var(--tc-radio); padding: 1rem; }

/* 10. Panel de administración ----------------------------------------------------------------------------------------- */
.zona-admin { background: var(--tc-fondo); }
.zona-admin .panel { box-shadow: none; }
.tabla-admin { font-size: .93rem; }
.tabla-admin td, .tabla-admin th { vertical-align: middle; }
.tabla-admin th { white-space: nowrap; color: var(--tc-marino); }

/* 11. Pie, avisos y utilidades ------------------------------------------------------------------------------------------ */
.pie { background: var(--tc-marino); color: #d6deea; padding: 3rem 0 1.5rem; margin-top: 3rem; font-size: .95rem; }
.pie a { color: #fff; text-decoration: none; }
.pie a:hover { text-decoration: underline; }
.pie li { padding: .2rem 0; }
.pie-logo { background: #fff; border-radius: .6rem; padding: .5rem .7rem; height: auto; }
.pie-titulo { color: #fff; font-weight: 700; margin-bottom: .6rem; }
.pie-aviso { font-size: .85rem; color: #b6c2d6; }
.pie-final { display: flex; justify-content: space-between; border-top: 1px solid rgba(255, 255, 255, .15); margin-top: 2rem; padding-top: 1.2rem; font-size: .9rem; }
.pie-final .bi { font-size: 1.3rem; }
.aviso-cookies { position: fixed; inset: 0; z-index: 1090; display: flex; align-items: center; justify-content: center; padding: 1rem; background: rgba(15, 25, 45, .6); }
.aviso-cookies[hidden] { display: none; }
.aviso-cookies-caja { width: 100%; max-width: 34rem; background: #fff; border-radius: var(--tc-radio); padding: 1.4rem 1.5rem; box-shadow: 0 10px 40px rgba(0, 0, 0, .3); }
.zona-admin .pie, .zona-cuenta .pie { margin-top: 0; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; } }

/* Icono propio de huella para la categoría Mascotas (Bootstrap Icons no incluye uno). Se usa como clase "bi bi-huella". */
.bi-huella::before {
    content: ""; display: inline-block; width: 1em; height: 1em; vertical-align: -.125em; background-color: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cellipse cx='6' cy='9' rx='2.2' ry='2.9'/%3E%3Cellipse cx='10' cy='5.2' rx='2.2' ry='2.9'/%3E%3Cellipse cx='14' cy='5.2' rx='2.2' ry='2.9'/%3E%3Cellipse cx='18' cy='9' rx='2.2' ry='2.9'/%3E%3Cpath d='M12 11c-3 0-6.5 4.2-6.5 7 0 1.8 1.4 2.6 3 2.6 1.4 0 2.3-.8 3.5-.8s2.1.8 3.5.8c1.6 0 3-.8 3-2.6 0-2.8-3.5-7-6.5-7z'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cellipse cx='6' cy='9' rx='2.2' ry='2.9'/%3E%3Cellipse cx='10' cy='5.2' rx='2.2' ry='2.9'/%3E%3Cellipse cx='14' cy='5.2' rx='2.2' ry='2.9'/%3E%3Cellipse cx='18' cy='9' rx='2.2' ry='2.9'/%3E%3Cpath d='M12 11c-3 0-6.5 4.2-6.5 7 0 1.8 1.4 2.6 3 2.6 1.4 0 2.3-.8 3.5-.8s2.1.8 3.5.8c1.6 0 3-.8 3-2.6 0-2.8-3.5-7-6.5-7z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.table-responsive { position: relative; }   /* Contiene los textos .visually-hidden de las tablas (evita desbordes en móvil) */
.alert code { color: inherit; font-weight: 600; }
@media (max-width: 575.98px) {
    .cabecera .navbar > .container-xl { flex-wrap: nowrap; gap: .25rem; }
    .cabecera .navbar-brand { margin-right: 0; flex-shrink: 1; min-width: 0; }
    .cabecera .navbar-brand img { height: 32px; max-width: 100%; }
    .cabecera .btn-icono, .cabecera .btn-cuenta, .cabecera .btn-publicar { padding-inline: .45rem; }
}
.paso-formulario h2:focus { outline: none; }
/* Etiqueta en las tarjetas que usan una imagen ilustrativa de la categoría (anuncio sin fotos propias). */
.etiqueta-ilustrativa { position: absolute; right: .5rem; bottom: .5rem; font-size: .72rem; background: rgba(22, 42, 77, .75); color: #fff; padding: .1rem .45rem; border-radius: .3rem; }


/* ===== v3.5 ===================================================================================== */

/* Últimos anuncios de la portada (10): 1 → 2 → 4 (se ocultan 2 para no dejar huecos) → 5 columnas */
.rejilla-ultimos { grid-template-columns: 1fr; }
@media (min-width: 576px) { .rejilla-ultimos { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 992px) { .rejilla-ultimos { grid-template-columns: repeat(4, 1fr); } .rejilla-ultimos > :nth-child(n+9) { display: none; } }
@media (min-width: 1200px) { .rejilla-ultimos { grid-template-columns: repeat(5, 1fr); } .rejilla-ultimos > :nth-child(n+9) { display: flex; } }

/* Botón del panel de administración: color corporativo bien visible */
.btn-admin { background: var(--tc-marino); color: #fff; border: 0; font-weight: 600; align-items: center; gap: .35rem; }
.btn-admin:hover, .btn-admin:focus { background: var(--tc-azul); color: #fff; }

/* Menú "Buscar cuidadores" en columnas: categoría + sus servicios */
.menu-mega { padding: .75rem; }
.menu-mega-rejilla { display: grid; gap: .25rem 1rem; }
@media (min-width: 992px) { .menu-mega { min-width: 46rem; } .menu-mega-rejilla { grid-template-columns: repeat(3, 1fr); } }
.menu-mega-cat { font-weight: 700; color: var(--tc-marino); border-radius: .4rem; }
.menu-mega-sub { font-size: .9rem; color: var(--tc-suave); padding-left: 2.4rem !important; white-space: normal; padding-top: .3rem !important; padding-bottom: .3rem !important; }
.menu-mega-grupo { padding-bottom: .5rem; }

/* Cabecera de páginas informativas (quiénes somos, legales, preguntas, contacto) */
.cabecera-pagina { text-align: center; color: #fff; padding: 1.25rem 0 4.5rem; margin-bottom: -3rem;
    background: radial-gradient(600px 260px at 85% 0%, rgba(255, 255, 255, .14) 0, transparent 60%), linear-gradient(135deg, var(--tc-marino), var(--tc-azul)); }
.cabecera-pagina h1 { color: #fff; font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.4rem); max-width: 50rem; margin: .5rem auto; }
.cabecera-pagina .lead { color: #dbe6f5; max-width: 42rem; margin: 0 auto; font-size: 1.05rem; }
.cabecera-pagina .migas { display: flex; justify-content: center; }
.cabecera-pagina .breadcrumb { --bs-breadcrumb-divider-color: #b9c9e3; --bs-breadcrumb-item-active-color: #dbe6f5; margin-bottom: 1rem; }
.cabecera-pagina .breadcrumb a { color: #fff; }
.cabecera-pagina-icono { display: inline-flex; width: 4rem; height: 4rem; border-radius: 50%; align-items: center; justify-content: center; font-size: 1.9rem;
    background: rgba(255, 255, 255, .15); border: 1px solid rgba(255, 255, 255, .3); }
.hoja { position: relative; background: #fff; border: 1px solid var(--tc-borde); border-radius: calc(var(--tc-radio) * 1.5); padding: clamp(1.25rem, 3vw, 2.75rem);
    box-shadow: 0 12px 34px rgba(22, 42, 77, .08); }
.hoja.contenido-texto { max-width: 52rem; margin: 0 auto; }
.hoja h2 { font-size: 1.35rem; margin-top: 1.8rem; color: var(--tc-marino); }
.hoja h2:first-child { margin-top: 0; }
.contenido-centrado { position: relative; max-width: 52rem; margin: 0 auto; }
.otras-legales { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem 1.5rem; margin-top: 1.5rem; font-size: .95rem; }
.caja-cta { text-align: center; max-width: 52rem; margin-left: auto; margin-right: auto; }
.caja-cta p { font-size: 1.1rem; font-weight: 600; color: var(--tc-marino); }
.rejilla-ventajas { position: relative; display: grid; gap: 1rem; max-width: 52rem; margin: 0 auto 1.5rem; }
@media (min-width: 768px) { .rejilla-ventajas { grid-template-columns: repeat(3, 1fr); } }
.ventaja { background: #fff; border: 1px solid var(--tc-borde); border-radius: var(--tc-radio); padding: 1.25rem; text-align: center; display: flex; flex-direction: column; gap: .3rem;
    box-shadow: 0 8px 24px rgba(22, 42, 77, .07); }
.ventaja i { font-size: 1.8rem; color: var(--tc-azul); }
.ventaja span { font-size: .92rem; color: var(--tc-suave); }
.acordeon-preguntas .accordion-item { border: 1px solid var(--tc-borde); border-radius: var(--tc-radio) !important; margin-bottom: .6rem; overflow: hidden; }
.acordeon-preguntas .accordion-button { font-weight: 600; color: var(--tc-marino); }
.acordeon-preguntas .accordion-button:not(.collapsed) { background: var(--tc-azul-fondo); box-shadow: none; }
.tarjeta-ayuda { position: relative; display: flex; gap: .9rem; align-items: flex-start; background: #fff; border: 1px solid var(--tc-borde); border-radius: var(--tc-radio);
    padding: 1.1rem; margin-bottom: 1rem; color: inherit; text-decoration: none; box-shadow: 0 8px 24px rgba(22, 42, 77, .07); }
a.tarjeta-ayuda:hover { border-color: var(--tc-azul); }
.tarjeta-ayuda i { font-size: 1.6rem; color: var(--tc-azul); }
.tarjeta-ayuda span { font-size: .92rem; color: var(--tc-suave); }
.tarjeta-ayuda strong { display: block; color: var(--tc-marino); font-size: 1rem; }

/* Blog: artículo con barra lateral */
.contenido-articulo img { max-width: 100%; height: auto; border-radius: var(--tc-radio); }
.blog-lateral { position: sticky; top: 1rem; }
.lateral-bloque { background: #fff; border: 1px solid var(--tc-borde); border-radius: var(--tc-radio); padding: 1.1rem; margin-bottom: 1rem; }
.lateral-titulo { font-weight: 700; color: var(--tc-marino); margin-bottom: .6rem; }
.lista-lateral { list-style: none; padding: 0; margin: 0; }
.lista-lateral li { border-top: 1px solid var(--tc-borde); }
.lista-lateral li:first-child { border-top: 0; }
.lista-lateral a { display: block; padding: .45rem 0; text-decoration: none; }
.lista-lateral i { color: var(--tc-azul); margin-right: .25rem; }
.lista-recientes small { display: block; color: var(--tc-suave); margin-top: -.3rem; padding-bottom: .4rem; }
.lateral-cta { background: var(--tc-azul-fondo); }
/* Cabecera: los enlaces y botones no se parten en dos líneas; en pantallas medianas se compactan */
.cabecera .nav-link, .cabecera .btn-publicar, .cabecera .btn-admin { white-space: nowrap; }
@media (min-width: 992px) and (max-width: 1199.98px) { .cabecera .navbar-nav .nav-link { padding-left: .45rem; padding-right: .45rem; font-size: .95rem; } }
@media (min-width: 992px) and (max-width: 1199.98px) {
    .cabecera .btn-publicar span, .cabecera .btn-cuenta > span.d-md-inline { display: none !important; } /* solo iconos en este ancho */
}

/* ===== v3.6 ===================================================================================== */

/* Rejilla de listados y perfil: columnas fijas (1 → 2 → 3) */
.rejilla-anuncios:not(.rejilla-4):not(.rejilla-ultimos) { grid-template-columns: 1fr; }
@media (min-width: 576px) { .rejilla-anuncios:not(.rejilla-4):not(.rejilla-ultimos) { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 992px) { .rejilla-anuncios:not(.rejilla-4):not(.rejilla-ultimos) { grid-template-columns: repeat(3, 1fr); } }
/* Tarjeta final del listado: empieza en el primer hueco libre y llega hasta el final de la fila */
.tarjeta-relleno { grid-column: auto / -1; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: .6rem;
    padding: 1.5rem; border: 2px dashed var(--tc-acento-medio); border-radius: var(--tc-radio); background: var(--tc-acento-suave); min-height: 12rem; }
.tarjeta-relleno i { font-size: 2rem; color: var(--tc-acento); }
.tarjeta-relleno p { margin: 0; color: var(--tc-marino); max-width: 26rem; }

/* Referencia única del anuncio (TC-00000) */
.tarjeta-servicio { display: flex; justify-content: space-between; gap: .5rem; align-items: baseline; }
.ref-anuncio { flex-shrink: 0; font-size: .72rem; font-weight: 700; letter-spacing: .02em; color: var(--tc-marino); background: var(--tc-azul-fondo);
    border-radius: .35rem; padding: .05rem .4rem; text-transform: none; white-space: nowrap; }
.ref-grande { font-size: .9rem; vertical-align: middle; padding: .15rem .55rem; }

/* Ubicación destacada y homogénea (tarjetas, ficha y perfil) */
.lugar-destacado { display: inline-flex; align-items: center; gap: .3rem; max-width: 100%; background: var(--tc-acento-suave); color: var(--tc-acento-oscuro); font-weight: 600;
    font-size: .85rem; border-radius: 2rem; padding: .15rem .65rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lugar-destacado i { color: var(--tc-acento); }
.tarjeta-lugar { overflow: hidden; }

/* Sello verde de correo confirmado */
.sellos .sello-verde, .sellos .sello-verde i { color: var(--tc-verde); font-weight: 600; }
.sellos-pildora .sello-verde { background: #e3f4ea; }
.sello-verde-mini { color: var(--tc-verde); font-weight: 600; font-size: .85rem; }

/* Quiénes somos: logotipo */
.logo-quienes { display: block; text-align: center; margin-bottom: 1.5rem; }
.logo-quienes img { max-width: 300px; width: 70%; height: auto; }

/* Perfil público */
.perfil-portada { height: 9.5rem; padding-top: 1rem; background: radial-gradient(600px 240px at 85% 0%, rgba(255, 255, 255, .15) 0, transparent 60%),
    linear-gradient(135deg, var(--tc-marino), var(--tc-azul)); }
.perfil-portada .breadcrumb { --bs-breadcrumb-divider-color: #b9c9e3; --bs-breadcrumb-item-active-color: #dbe6f5; }
.perfil-portada .breadcrumb a { color: #fff; }
.perfil-tarjeta { position: relative; margin-top: -4.5rem; margin-bottom: 1.5rem; background: #fff; border: 1px solid var(--tc-borde); border-radius: calc(var(--tc-radio) * 1.5);
    box-shadow: 0 12px 34px rgba(22, 42, 77, .1); padding: 1.5rem; display: grid; gap: 1.25rem; grid-template-columns: auto 1fr; align-items: center; }
.perfil-avatar > * { border: 4px solid #fff; box-shadow: 0 6px 18px rgba(22, 42, 77, .2); border-radius: 50%; }
.perfil-info h1 { font-size: clamp(1.35rem, 1.1rem + 1vw, 1.9rem); margin: 0 0 .5rem; }
.perfil-tipo { margin: 0 0 .2rem; color: var(--tc-azul); font-weight: 600; font-size: .9rem; }
.sellos-pildora { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; }
.sellos-pildora li { background: var(--tc-azul-fondo); border-radius: 2rem; padding: .2rem .7rem; font-size: .85rem; }
.perfil-cifras { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, 1fr); margin: 0; border-top: 1px solid var(--tc-borde); padding-top: 1rem; text-align: center; }
.perfil-cifras dt { font-weight: 400; font-size: .82rem; color: var(--tc-suave); text-transform: uppercase; letter-spacing: .04em; }
.perfil-cifras dd { margin: 0; font-size: 1.5rem; font-weight: 700; color: var(--tc-marino); }
.perfil-cifras dd a { text-decoration: none; color: inherit; }
.perfil-cifras dd i { color: #f2a516; font-size: 1.1rem; }
.perfil-cifras small { display: block; font-size: .78rem; font-weight: 400; color: var(--tc-suave); }
@media (min-width: 992px) {
    .perfil-tarjeta { grid-template-columns: auto 1fr auto; padding: 1.75rem 2rem; }
    .perfil-cifras { grid-column: auto; border-top: 0; border-left: 1px solid var(--tc-borde); padding: 0 0 0 1.5rem; gap: 1.5rem; }
}
@media (max-width: 575.98px) { .perfil-tarjeta { grid-template-columns: 1fr; text-align: center; } .perfil-avatar { justify-self: center; } .sellos-pildora { justify-content: center; } }
.linea-tiempo { list-style: none; padding: 0 0 0 1.2rem; margin: 0; border-left: 2px solid var(--tc-azul-fondo); }
.linea-tiempo li { position: relative; padding: 0 0 1.1rem .6rem; }
.linea-tiempo li::before { content: ""; position: absolute; left: -1.62rem; top: .35rem; width: .8rem; height: .8rem; border-radius: 50%; background: var(--tc-azul); border: 2px solid #fff; }
.correo-masivo summary { cursor: pointer; }

/* ===== v3.7 ===================================================================================== */

/* Nombre del lugar resaltado en los listados por ciudad/provincia */
.ciudad-resaltada { color: var(--tc-acento); background: linear-gradient(transparent 62%, var(--tc-acento-medio) 62%); padding: 0 .1em; }

/* Logotipo bajo las tarjetas de ayuda del formulario de contacto */
.logo-contacto { display: block; text-align: center; margin-top: 1.5rem; }
.logo-contacto img { max-width: 240px; width: 80%; height: auto; }

/* Ficha de anuncio: banda con rayas (anuncio) y cabecera en tarjeta superpuesta */
.ficha-portada { height: 8.5rem; padding-top: 1rem; }
.ficha-portada-ofrezco { background: repeating-linear-gradient(135deg, rgba(255, 255, 255, .06) 0 14px, transparent 14px 28px), linear-gradient(120deg, var(--tc-azul), var(--tc-azul-claro)); }
.ficha-portada-busco { background: repeating-linear-gradient(135deg, rgba(255, 255, 255, .08) 0 14px, transparent 14px 28px), linear-gradient(120deg, var(--tc-acento-oscuro), var(--tc-acento)); }
.ficha-portada .breadcrumb { --bs-breadcrumb-divider-color: rgba(255, 255, 255, .7); --bs-breadcrumb-item-active-color: rgba(255, 255, 255, .9); }
.ficha-portada .breadcrumb a { color: #fff; }
.ficha-tarjeta { position: relative; margin-top: -4.5rem; background: #fff; border: 1px solid var(--tc-borde); border-left: 6px solid var(--tc-acento);
    border-radius: calc(var(--tc-radio) * 1.5); box-shadow: 0 12px 34px rgba(22, 42, 77, .1); padding: 1.4rem 1.6rem; margin-bottom: 1.5rem; }
.ficha-sobretitulo { margin: 0 0 .35rem; font-size: .8rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--tc-acento); }
.ficha .col-lg-8 > .bloque { background: #fff; border: 1px solid var(--tc-borde); border-radius: var(--tc-radio); padding: 1.3rem 1.4rem; margin-bottom: 1.2rem; }

/* ===== v3.8 ===================================================================================== */
/* «Ver todos los anuncios» del menú, como botón visible */
.menu-mega .menu-mega-todos { display: block; text-align: center; background: var(--tc-acento); color: #fff; font-weight: 700; border-radius: .5rem; padding: .6rem 1rem; }
.menu-mega .menu-mega-todos:hover, .menu-mega .menu-mega-todos:focus { background: var(--tc-acento-oscuro); color: #fff; }
.menu-mega .menu-mega-todos i { color: #fff; }
/* Botón para quitar el servicio y el lugar elegidos en el buscador del listado */
.borrar-busqueda { display: flex; justify-content: flex-end; margin: .6rem 0 1rem; }

/* ===== v3.9: configuración de cookies ============================================================= */
.cookies-config { border-top: 1px solid var(--tc-borde); margin-top: .8rem; padding-top: .8rem; }
.cookies-config .form-check { margin-bottom: .5rem; }
.cookies-config small { display: block; color: var(--tc-suave); }
.enlace-cookies { background: none; border: 0; padding: 0; color: inherit; text-decoration: underline; cursor: pointer; }

/* v3.14: el panel de filtros del listado acompaña al desplazamiento (escritorio), como la columna de contacto de la ficha */
@media (min-width: 992px) {
    #panelFiltros { position: sticky; top: 1rem; max-height: calc(100vh - 2rem); overflow-y: auto; }
}

/* v3.15: créditos del pie y referencia junto al título */
.pie-creditos { text-align: center; font-size: .82rem; opacity: .8; margin: 1rem 0 0; }
.pie-creditos a { color: inherit; }
.tarjeta-titulo .ref-anuncio, h1 .ref-anuncio { vertical-align: middle; }
