/* =====================================================================
   ESTILOS PROPIOS DEL PORTAL
   ---------------------------------------------------------------------
   Solo ajustes sobre la plantilla Homelengo. No modificar styles.css de
   la plantilla: así se puede actualizar sin perder cambios.
   ===================================================================== */

/* Logo: el actual tiene fondo propio */
.logo img, .nav-logo img, .footer-logo img { height: 48px; width: auto; }

/* H2 bajo el H1 en cabeceras de página y portada (la plantilla no lo trae) */
.flat-title-page h2.subtitulo-pagina { font-size: 18px; line-height: 1.5; font-weight: 500; letter-spacing: 0; margin-top: 12px; }
@media (max-width: 767px) {
    .flat-title-page h2.subtitulo-pagina, .flat-slider h2.subtitle { font-size: 15px; }
    .flat-title-page h1.title { font-size: 26px; }
}
.flat-slider .heading .subtitle { font-size: 18px; font-weight: 500; }
.flat-slider .heading .title-large { font-size: clamp(28px, 4vw, 48px); line-height: 1.2; }
.subtitulo-ficha { font-weight: 500; margin: 8px 0 16px; }

/* Texto SEO sobre los listados */
.texto-seo { font-size: 16px; line-height: 1.7; color: var(--Text, #5c6368); }

/* Listas de provincias y zonas del lateral */
.lista-ubicaciones { list-style: none; padding: 0; margin: 12px 0 0; columns: 2; column-gap: 16px; }
.lista-ubicaciones li { break-inside: avoid; padding: 4px 0; }
.lista-ubicaciones a:hover { color: var(--ah-primario); }
.lista-ubicaciones-horizontal { columns: auto; display: flex; flex-wrap: wrap; gap: 8px 20px; }

/* Selects nativos con el aspecto de la plantilla */
.form-select { height: 48px; border-radius: 8px; }

/* Ficha */
.migas-ficha { display: flex; flex-wrap: wrap; gap: 6px; padding: 20px 0 0; margin: 0; font-size: 14px; }
.migas-ficha a { color: inherit; text-decoration: underline; }
.mapa-ficha { height: 320px; border-radius: 12px; z-index: 0; }
.single-property-info .inner-box { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid #e4e4e4; }

/* Estado vacío de listados */
.sin-resultados { padding: 40px; text-align: center; background: #f7f7f7; border-radius: 16px; }

/* Textos legales heredados */
.texto-legal p, .texto-legal li { line-height: 1.7; margin-bottom: 12px; }
.texto-legal h3 { margin: 24px 0 12px; }

/* Artículos del blog */
.cuerpo-articulo h2 { font-size: 24px; margin: 30px 0 12px; }
.cuerpo-articulo p, .cuerpo-articulo li { line-height: 1.8; margin-bottom: 14px; }
.cuerpo-articulo blockquote { border-left: 4px solid var(--ah-primario); padding: 8px 16px; margin: 20px 0; font-style: italic; }

/* Accesibilidad: foco visible en teclado */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
    outline: 3px solid var(--ah-primario); outline-offset: 2px;
}

/* Imagen de cabecera propia (sustituye a las imágenes de demostración de la plantilla) */
.flat-slider.home-1 { position: relative; }   /* Fondo de la portada: ver «PORTADA: fondo de marca» al final */
.flat-slider.home-1 .container { position: relative; z-index: 1; }
.flat-title-page { background-size: cover; background-position: center; position: relative; }
.flat-title-page::before { content: ""; position: absolute; inset: 0; background: linear-gradient(120deg, rgba(1, 36, 70, .92), rgba(1, 36, 70, .75)); }
.flat-title-page .container { position: relative; z-index: 1; }

/* La plantilla pone en mayúscula cada palabra de algunos títulos: se respetan los textos tal cual */
.single-property-element .title, .homelengo-box .link, .header-property-detail .title { text-transform: none; }

/* Crédito del pie */
.copyright a { color: #fff; text-decoration: underline; }

/* =====================================================================
   BLOQUE 3 · DISEÑO TIPO AIRBNB SOBRE LA PLANTILLA
   Colores y radios comunes (se apoyan en las variables de la plantilla)
   ===================================================================== */
:root {
    /* Colores de la marca (logo 2026). Cambiar aquí cambia toda la web propia;
       los de la plantilla se generan con herramientas/generar-colores-marca.php */
    --ah-coral: #e25a44;            /* Coral del logo (decoración, iconos, fondos suaves) */
    --ah-primario: #c8432d;         /* Coral accesible: botones y enlaces (contraste 4,9:1 con blanco) */
    --ah-primario-oscuro: #a93824;
    --ah-coral-suave: #fdeeea;
    --ah-marino: #012446;           /* Azul marino del logo */
    --ah-marino-medio: #1d3f66;
    --ah-marino-suave: #eaf0f7;
    --ah-texto: #012446;
    --ah-suave: #5b6676;
    --ah-borde: #e3e7ed;
    --ah-fondo: #f6f7f9;
    --ah-radio: 16px;
    --ah-sombra: 0 8px 24px rgba(1, 36, 70, .08);
    --ah-estrella: #012446;
    --ah-favorito: #e25a44;
}

/* ---------- Utilidades */
.campo-trampa { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.tf-btn.pequeno { padding: 8px 16px; font-size: 14px; min-height: 0; }
.tf-btn.btn-peligro { background: #d92d20; color: #fff; border: 0; }
.tf-btn.cargando { opacity: .6; pointer-events: none; }
.avatar-inicial { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%;
    background: var(--ah-texto); color: #fff; font-weight: 700; font-size: 14px; flex-shrink: 0; }
.avatar-inicial.grande { width: 48px; height: 48px; font-size: 20px; }
.respuesta-form:empty { display: none; }
.respuesta-form { padding: 10px 14px; border-radius: 10px; margin: 0 0 14px; font-size: 14px; }
.respuesta-form.ok { background: #ecfdf3; color: #067647; }
.respuesta-form.error { background: #fef3f2; color: #b42318; }
.aviso-flotante { position: fixed; right: 20px; bottom: 20px; z-index: 2000; max-width: 360px; padding: 14px 18px; border-radius: 12px;
    background: var(--ah-texto); color: #fff; box-shadow: var(--ah-sombra); transform: translateY(20px); opacity: 0; transition: .3s; }
.aviso-flotante.error { background: #b42318; }
.aviso-flotante.visible { transform: none; opacity: 1; }
@media (max-width: 991px) { .aviso-flotante { bottom: 84px; left: 16px; right: 16px; max-width: none; } }

/* ---------- Cabecera: menú de cuenta */
.menu-cuenta .boton-cuenta { display: flex; align-items: center; gap: 10px; padding: 5px 5px 5px 14px; border: 1px solid var(--ah-borde);
    border-radius: 999px; background: #fff; position: relative; transition: box-shadow .2s; }
.menu-cuenta .boton-cuenta:hover { box-shadow: var(--ah-sombra); }
.menu-cuenta .punto-aviso { position: absolute; top: 2px; right: 2px; width: 10px; height: 10px; border-radius: 50%; background: var(--ah-favorito); border: 2px solid #fff; }
.menu-cuenta .dropdown-menu { border-radius: 12px; border: 0; box-shadow: var(--ah-sombra); padding: 8px 0; min-width: 220px; }
.menu-cuenta .dropdown-item { padding: 10px 18px; }

/* ---------- Formularios de cuenta (acceder, contraseña, activación) */
.caja-cuenta { max-width: 460px; margin: 0 auto; padding: 32px; border: 1px solid var(--ah-borde); border-radius: var(--ah-radio); background: #fff; }

/* ---------- Área privada */
.area-privada { background: var(--ah-fondo); padding: 40px 0 60px; }
.menu-privado { background: #fff; border-radius: var(--ah-radio); padding: 20px; position: sticky; top: 100px; }
.menu-privado-usuario { display: flex; gap: 12px; align-items: center; padding-bottom: 16px; margin-bottom: 8px; border-bottom: 1px solid var(--ah-borde); }
.menu-privado ul { list-style: none; padding: 0; margin: 0; }
.menu-privado li a { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 10px; color: var(--ah-texto); }
.menu-privado li a:hover, .menu-privado li a.activo { background: var(--ah-fondo); font-weight: 600; }
.menu-privado .contador { margin-left: auto; background: var(--ah-favorito); color: #fff; border-radius: 999px; font-size: 12px; padding: 1px 8px; }
.area-privada .flat-counter-v2 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.area-privada .flat-counter-v2 .counter-box { background: #fff; border-radius: var(--ah-radio); padding: 20px; display: flex; gap: 14px; align-items: center; }
.area-privada .flat-counter-v2 .box-icon { width: 48px; height: 48px; border-radius: 12px; background: var(--ah-fondo); display: flex; align-items: center; justify-content: center; font-size: 22px; }
@media (max-width: 767px) { .area-privada .flat-counter-v2 { grid-template-columns: repeat(2, 1fr); } .menu-privado { position: static; } }

/* Mis anuncios */
.mi-anuncio { display: flex; gap: 18px; background: #fff; border-radius: var(--ah-radio); padding: 16px; margin-bottom: 16px; }
.mi-anuncio-foto { flex: 0 0 180px; }
.mi-anuncio-foto img { width: 180px; height: 135px; object-fit: cover; border-radius: 12px; }
.mi-anuncio-datos { flex: 1; min-width: 0; }
.mi-anuncio-datos h2 a { color: var(--ah-texto); }
.acciones-mi-anuncio { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 8px; }
.aviso-pendiente { display: inline-block; background: #fff4e5; color: #b54708; border-radius: 8px; padding: 4px 10px; font-size: 13px; font-weight: 600; }
.enlace-eliminar, .enlace-denunciar { background: none; border: 0; padding: 0; color: var(--ah-suave); text-decoration: underline; font-size: 14px; }
.enlace-eliminar:hover { color: #b42318; }
@media (max-width: 575px) { .mi-anuncio { flex-direction: column; } .mi-anuncio-foto, .mi-anuncio-foto img { width: 100%; flex-basis: auto; height: 180px; } }

.estado { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; background: var(--ah-fondo); color: var(--ah-texto); }
.estado-publicado, .estado-aceptada { background: #ecfdf3; color: #067647; }
.estado-pendiente, .estado-borrador { background: #fff4e5; color: #b54708; }
.estado-rechazada, .estado-retirado, .estado-cancelada, .estado-caducado { background: #f2f4f7; color: #475467; }
.estado-pausado { background: #eff8ff; color: #175cd3; }

/* Pestañas y solicitudes */
.pestanas { display: flex; gap: 8px; list-style: none; padding: 0; flex-wrap: wrap; }
.pestanas a { display: block; padding: 8px 18px; border-radius: 999px; background: #fff; color: var(--ah-texto); border: 1px solid var(--ah-borde); }
.pestanas a.activa { background: var(--ah-texto); color: #fff; border-color: var(--ah-texto); }
.solicitud-cabecera { display: flex; gap: 14px; align-items: center; margin-bottom: 12px; }
.solicitud-cabecera img { width: 64px; height: 64px; border-radius: 12px; object-fit: cover; }
.mensaje-solicitud { background: var(--ah-fondo); border-radius: 12px; padding: 12px 16px; margin: 0 0 12px; white-space: normal; }
.datos-contacto { background: #ecfdf3; border-radius: 10px; padding: 10px 14px; margin-bottom: 12px; }
.datos-reserva { margin-bottom: 10px; }
.acciones-solicitud { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.zona-peligro { border: 1px solid #fecdca; }

/* ---------- Asistente de publicación */
.pasos-asistente { display: flex; list-style: none; padding: 0; margin: 0 0 24px; gap: 6px; counter-reset: paso; }
.pasos-asistente li { flex: 1; }
.pasos-asistente li > a, .pasos-asistente li > span { display: flex; flex-direction: column; gap: 6px; color: var(--ah-suave); font-size: 13px; }
.pasos-asistente li::before { content: ""; display: block; height: 4px; border-radius: 4px; background: var(--ah-borde); margin-bottom: 8px; }
.pasos-asistente li.hecho::before, .pasos-asistente li.actual::before { background: var(--ah-texto); }
.pasos-asistente li.actual { color: var(--ah-texto); font-weight: 700; }
.pasos-asistente .numero { display: none; }
@media (max-width: 575px) { .pasos-asistente .texto { display: none; } .pasos-asistente li.actual .texto { display: inline; } }

.tarjetas-opcion { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.tarjetas-opcion.tres { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 767px) { .tarjetas-opcion, .tarjetas-opcion.tres { grid-template-columns: 1fr; } }
.tarjeta-opcion { position: relative; cursor: pointer; margin: 0; }
.tarjeta-opcion input { position: absolute; opacity: 0; }
.tarjeta-opcion .contenido { display: flex; flex-direction: column; gap: 4px; height: 100%; padding: 18px; border: 1.5px solid var(--ah-borde); border-radius: 14px; transition: .2s; }
.tarjeta-opcion .contenido .icon { font-size: 26px; margin-bottom: 6px; }
.tarjeta-opcion .contenido small { color: var(--ah-suave); }
.tarjeta-opcion input:checked + .contenido { border-color: var(--ah-texto); box-shadow: 0 0 0 1px var(--ah-texto); background: var(--ah-fondo); }
.tarjeta-opcion input:focus-visible + .contenido { outline: 3px solid var(--ah-primario); }
.tarjeta-opcion input:disabled + .contenido { opacity: .6; cursor: not-allowed; }

.opciones-pastilla { display: inline-flex; flex-wrap: wrap; gap: 8px; }
.opciones-pastilla label { padding: 7px 18px; border: 1px solid var(--ah-borde); border-radius: 999px; cursor: pointer; margin: 0; background: #fff; }
.opciones-pastilla .btn-check:checked + label { background: var(--ah-texto); color: #fff; border-color: var(--ah-texto); }
.opciones-pastilla .btn-check:focus-visible + label { outline: 3px solid var(--ah-primario); }
.fila-si-no { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--ah-borde); }
.fila-si-no:last-of-type { border-bottom: 0; }

.rejilla-servicios { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.rejilla-servicios .servicio { display: flex; align-items: center; gap: 10px; padding: 12px; border: 1px solid var(--ah-borde); border-radius: 12px; cursor: pointer; margin: 0; }
.rejilla-servicios .icon { font-size: 20px; }

.zona-subida { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 36px 20px; border: 2px dashed var(--ah-borde); border-radius: var(--ah-radio); cursor: pointer; text-align: center; }
.zona-subida:hover { border-color: var(--ah-texto); }
.zona-subida .icon { font-size: 36px; }
.zona-subida small { color: var(--ah-suave); }
.rejilla-fotos { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 12px; }
.foto-subida { position: relative; border-radius: 12px; overflow: hidden; aspect-ratio: 4 / 3; }
.foto-subida img { width: 100%; height: 100%; object-fit: cover; }
.foto-subida .etiqueta-portada { position: absolute; top: 8px; left: 8px; background: #fff; border-radius: 999px; padding: 2px 10px; font-size: 12px; font-weight: 700; }
.foto-subida .acciones { position: absolute; inset: auto 0 0 0; display: flex; gap: 6px; padding: 8px; background: linear-gradient(transparent, rgba(0,0,0,.6)); }
.foto-subida .acciones button { flex: 1; border: 0; border-radius: 8px; padding: 4px; font-size: 12px; background: #fff; }
.botones-asistente { display: flex; justify-content: space-between; gap: 12px; margin-top: 8px; }

/* ---------- Calendario */
.calendario { position: relative; }
.calendario-navegacion { position: absolute; right: 0; top: -4px; display: flex; gap: 6px; }
.calendario-navegacion button { width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--ah-borde); background: #fff; font-size: 18px; line-height: 1; }
.calendario-meses { display: grid; grid-template-columns: repeat(2, 1fr); gap: 32px; }
@media (max-width: 767px) { .calendario-meses { grid-template-columns: 1fr; } }
.calendario-titulo { font-weight: 700; text-transform: capitalize; margin-bottom: 12px; }
.calendario-rejilla { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; text-align: center; }
.calendario-rejilla > span { font-size: 12px; color: var(--ah-suave); padding: 4px 0; }
.calendario .dia { aspect-ratio: 1; border: 0; background: none; border-radius: 50%; font-weight: 600; font-size: 14px; }
.calendario .dia:hover:not(:disabled) { box-shadow: inset 0 0 0 1.5px var(--ah-texto); }
.calendario .dia.pasado, .calendario .dia.ocupado { color: #c2c5cc; text-decoration: line-through; font-weight: 400; }
.calendario[data-editable] .dia.ocupado { background: #f2f4f7; color: var(--ah-suave); }
.calendario .dia.reservado { background: #fff4e5 !important; color: #b54708 !important; text-decoration: none; cursor: default; }
.calendario .dia.seleccionado { background: var(--ah-texto); color: #fff; text-decoration: none; }
.calendario .dia.en-rango { background: var(--ah-fondo); border-radius: 0; }
.leyenda-calendario { display: flex; gap: 14px; align-items: center; margin-top: 12px; font-size: 13px; color: var(--ah-suave); }
.leyenda-calendario .muestra { display: inline-block; width: 14px; height: 14px; border-radius: 50%; border: 1px solid var(--ah-borde); }
.leyenda-calendario .muestra.ocupado { background: #f2f4f7; }

/* Estrellas del formulario de reseña (de derecha a izquierda para que el hover marque las anteriores) */
.fila-estrellas { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--ah-borde); }
.estrellas { display: inline-flex; flex-direction: row-reverse; }
.estrellas input { position: absolute; opacity: 0; width: 1px; }
.estrellas label { font-size: 28px; color: #d0d5dd; cursor: pointer; padding: 0 2px; margin: 0; line-height: 1; }
.estrellas input:checked ~ label, .estrellas label:hover, .estrellas label:hover ~ label { color: #f5a524; }
.estrellas input:focus-visible + label { outline: 2px solid var(--ah-primario); }

/* ---------- Tarjetas de anuncio */
.rejilla-anuncios { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px 24px; }
.rejilla-anuncios.tres { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1199px) { .rejilla-anuncios { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 991px) { .rejilla-anuncios, .rejilla-anuncios.tres { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575px) { .rejilla-anuncios, .rejilla-anuncios.tres { grid-template-columns: 1fr; } }
.tarjeta-anuncio { position: relative; }
.tarjeta-anuncio.no-disponible { opacity: .6; }
.tarjeta-foto { position: relative; border-radius: 14px; overflow: hidden; aspect-ratio: 20 / 19; background: var(--ah-fondo); }
.tarjeta-foto img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.tarjeta-anuncio:hover .tarjeta-foto img { transform: scale(1.04); }
.tarjeta-etiquetas { position: absolute; top: 12px; left: 12px; display: flex; gap: 6px; flex-wrap: wrap; }
.tarjeta-etiquetas .etiqueta { background: #fff; color: var(--ah-texto); border-radius: 999px; padding: 3px 10px; font-size: 12px; font-weight: 700; box-shadow: 0 1px 4px rgba(0,0,0,.15); }
.tarjeta-etiquetas .etiqueta.destacada { background: var(--ah-texto); color: #fff; }
.tarjeta-etiquetas .etiqueta.urgente { background: #fef3f2; color: #b42318; }
.boton-favorito { border: 0; background: none; padding: 0; cursor: pointer; }
.tarjeta-foto .boton-favorito { position: absolute; top: 10px; right: 10px; width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; }
.boton-favorito svg { width: 24px; height: 24px; fill: rgba(0,0,0,.45); stroke: #fff; stroke-width: 2; transition: transform .15s; }
.boton-favorito:hover svg { transform: scale(1.1); }
.boton-favorito.activo svg { fill: var(--ah-favorito); }
.tarjeta-datos { padding-top: 10px; font-size: 15px; line-height: 1.4; }
.tarjeta-linea1 { display: flex; justify-content: space-between; gap: 8px; }
.tarjeta-lugar { font-weight: 600; color: var(--ah-texto); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tarjeta-nota { white-space: nowrap; color: var(--ah-texto); }
.tarjeta-nota small { color: var(--ah-suave); }
.tarjeta-titulo { font-size: 15px; font-weight: 400; line-height: 1.4; margin: 2px 0 0; letter-spacing: 0; }
.tarjeta-titulo a { color: var(--ah-suave); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.tarjeta-titulo a::after { content: ""; position: absolute; inset: 0; z-index: 1; }   /* Toda la tarjeta es clicable */
.tarjeta-foto .boton-favorito { z-index: 2; }
.tarjeta-rasgos { color: var(--ah-suave); margin: 2px 0 0; font-size: 14px; }
.tarjeta-precio { margin: 6px 0 0; color: var(--ah-texto); }

/* ---------- Portada: buscador en píldora */
.buscador-pildora { display: flex; align-items: center; max-width: 860px; margin: 32px auto 0; background: #fff; border-radius: 999px; box-shadow: 0 8px 30px rgba(0,0,0,.2); padding: 8px; }
.buscador-pildora .campo { flex: 1; padding: 6px 24px; border-right: 1px solid var(--ah-borde); min-width: 0; }
.buscador-pildora .campo:nth-child(4) { border-right: 0; }
.buscador-pildora label { display: block; font-size: 12px; font-weight: 700; color: var(--ah-texto); margin: 0; }
.buscador-pildora select, .buscador-pildora input { width: 100%; border: 0; padding: 2px 0; background: transparent; color: var(--ah-suave); font-size: 15px; outline: none; box-shadow: none; height: auto; }
.buscador-pildora .boton-buscar { display: flex; align-items: center; gap: 8px; border: 0; border-radius: 999px; background: var(--ah-primario); color: #fff; padding: 14px 22px; font-weight: 700; }
@media (max-width: 767px) {
    .buscador-pildora { flex-direction: column; border-radius: 20px; align-items: stretch; }
    .buscador-pildora .campo { border-right: 0; border-bottom: 1px solid var(--ah-borde); padding: 10px 16px; }
    .buscador-pildora .boton-buscar { justify-content: center; margin-top: 8px; }
}

/* ---------- Cabecera compacta y barra de filtros de los listados */
.cabecera-listado { padding: 24px 0 8px; }
.cabecera-listado .migas-ficha { padding: 0 0 8px; }
.titulo-listado { font-size: clamp(22px, 2.6vw, 30px); line-height: 1.25; font-weight: 800; margin: 0 0 6px; }
.subtitulo-listado { font-size: 16px; line-height: 1.5; font-weight: 400; color: var(--ah-suave); margin: 0; letter-spacing: 0; }
.barra-filtros { position: sticky; top: 80px; z-index: 50; background: #fff; border-bottom: 1px solid var(--ah-borde); padding: 12px 0; }
.barra-filtros .container { display: flex; justify-content: space-between; gap: 16px; align-items: center; flex-wrap: wrap; }
.chips { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; padding: 2px; }
.chips::-webkit-scrollbar { display: none; }
.chip { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; padding: 8px 16px; border: 1px solid var(--ah-borde); border-radius: 999px; background: #fff; color: var(--ah-texto); font-size: 14px; }
.chip:hover { border-color: var(--ah-texto); }
.chip.activo { background: var(--ah-texto); color: #fff; border-color: var(--ah-texto); }
.chips .separador { width: 1px; background: var(--ah-borde); margin: 4px 4px; }
.herramientas-listado { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.filtro-precio { display: flex; align-items: center; border: 1px solid var(--ah-borde); border-radius: 999px; overflow: hidden; }
.filtro-precio input { width: 86px; border: 0; padding: 8px 12px; font-size: 14px; outline: none; }
.filtro-precio input + input { border-left: 1px solid var(--ah-borde); }
.filtro-precio button { border: 0; background: var(--ah-texto); color: #fff; padding: 8px 12px; }
.selector-orden { border: 1px solid var(--ah-borde); border-radius: 999px; padding: 8px 14px; font-size: 14px; background: #fff; }
.seccion-resultados { padding: 24px 0 60px; }
.seccion-resultados .texto-seo { font-size: 15px; margin-bottom: 12px; }
.total-resultados { font-weight: 600; margin-bottom: 16px; }
.mapa-listado { height: 460px; border-radius: var(--ah-radio); margin-bottom: 28px; z-index: 0; }
.marcador-precio span { display: inline-block; transform: translate(-50%, -50%); background: #fff; color: var(--ah-texto); font-weight: 700; font-size: 13px;
    padding: 4px 10px; border-radius: 999px; box-shadow: 0 2px 8px rgba(0,0,0,.25); white-space: nowrap; }
.marcador-precio span:hover { background: var(--ah-texto); color: #fff; }
.como-funciona { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin: 56px 0 8px; }
.como-funciona > div { background: var(--ah-fondo); border-radius: var(--ah-radio); padding: 24px; }
.como-funciona .numero { display: inline-flex; width: 36px; height: 36px; border-radius: 50%; background: var(--ah-texto); color: #fff; align-items: center; justify-content: center; font-weight: 700; margin-bottom: 10px; }
.como-funciona .paso-titulo { font-size: 20px; font-weight: 700; color: var(--ah-marino); margin-bottom: 6px; }
@media (max-width: 767px) { .como-funciona { grid-template-columns: 1fr; } .barra-filtros { top: 64px; } }
.explorar-ubicaciones { margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--ah-borde); }
.explorar-ubicaciones .titulo-ubicaciones { font-size: 20px; font-weight: 700; color: var(--ah-marino); margin-bottom: 12px; }

/* ---------- Ficha */
.ficha-airbnb { padding-bottom: 60px; }
.ficha-airbnb .migas-ficha { padding-top: 24px; }
.titulo-ficha { font-size: clamp(22px, 2.6vw, 28px); line-height: 1.3; font-weight: 700; margin: 12px 0 8px; letter-spacing: 0; }
.meta-ficha { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 20px; }
.meta-izquierda { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.meta-nota { font-weight: 600; color: var(--ah-texto); text-decoration: underline; }
.meta-lugar { text-decoration: underline; font-weight: 600; }
.meta-derecha { display: flex; gap: 6px; }
.boton-texto { display: inline-flex; align-items: center; gap: 6px; border: 0; background: none; padding: 8px 10px; border-radius: 8px; text-decoration: underline; font-weight: 600; color: var(--ah-texto); }
.boton-texto:hover { background: var(--ah-fondo); }
.boton-favorito-texto svg { width: 18px; height: 18px; fill: none; stroke: var(--ah-texto); }
.boton-favorito-texto.activo svg { fill: var(--ah-favorito); stroke: var(--ah-favorito); }

.mosaico-fotos { position: relative; display: grid; gap: 8px; border-radius: var(--ah-radio); overflow: hidden; height: 440px; }
.mosaico-fotos.fotos-1 { grid-template-columns: 1fr; }
.mosaico-fotos.fotos-2 { grid-template-columns: 1fr 1fr; }
.mosaico-fotos.fotos-3 { grid-template-columns: 2fr 1fr; grid-template-rows: 1fr 1fr; }
.mosaico-fotos.fotos-3 .foto-mosaico:first-child { grid-row: span 2; }
.mosaico-fotos.fotos-4, .mosaico-fotos.fotos-5 { grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 1fr 1fr; }
.mosaico-fotos.fotos-4 .foto-mosaico:first-child, .mosaico-fotos.fotos-5 .foto-mosaico:first-child { grid-row: span 2; }
.mosaico-fotos.fotos-4 .foto-mosaico:nth-child(2) { grid-row: span 2; }
.foto-mosaico { display: block; overflow: hidden; background: var(--ah-fondo); }
.foto-mosaico picture, .foto-mosaico img { width: 100%; height: 100%; object-fit: cover; display: block; transition: filter .2s; }
.foto-mosaico:hover img { filter: brightness(.9); }
.ver-todas-fotos { position: absolute; right: 16px; bottom: 16px; display: inline-flex; gap: 6px; align-items: center; background: #fff; border: 1px solid var(--ah-texto); border-radius: 8px; padding: 6px 14px; font-weight: 600; font-size: 14px; }
@media (max-width: 767px) {
    .mosaico-fotos { height: 280px; margin: 0 -15px; border-radius: 0; grid-template-columns: 1fr !important; grid-template-rows: 1fr !important; }
    .mosaico-fotos .foto-mosaico:not(:first-child) { display: none; }
}

.cuerpo-ficha { margin-top: 32px; }
.bloque-ficha { padding: 28px 0; border-bottom: 1px solid var(--ah-borde); }
.bloque-ficha:first-child { padding-top: 0; }
.titulo-bloque { font-size: 22px; font-weight: 700; margin-bottom: 16px; letter-spacing: 0; }
.subtitulo-ficha { font-size: 20px; line-height: 1.4; font-weight: 600; margin: 0 0 4px; letter-spacing: 0; }
.linea-resumen { color: var(--ah-suave); margin-bottom: 0; }
.anfitrion-mini { display: flex; gap: 14px; align-items: center; margin-top: 20px; }
.anfitrion-mini strong { display: block; }
.anfitrion-mini span { color: var(--ah-suave); font-size: 14px; }
.tarjeta-anfitrion .anfitrion-mini { margin-top: 0; }
.destacados-ficha { display: grid; gap: 20px; }
.destacado { display: flex; gap: 18px; align-items: flex-start; }
.destacado .icon { font-size: 26px; width: 30px; }
.destacado strong { display: block; }
.destacado span { color: var(--ah-suave); font-size: 14px; }
.texto-descripcion { line-height: 1.7; }
.lista-servicios { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px 24px; }
.lista-servicios li { display: flex; gap: 14px; align-items: center; }
.lista-servicios .icon { font-size: 22px; width: 26px; }
.datos-ficha { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 32px; }
.datos-ficha .dato { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid #f0f1f3; }
.datos-ficha .dato span { color: var(--ah-suave); }
@media (max-width: 575px) { .lista-servicios, .datos-ficha { grid-template-columns: 1fr; } }

.nota-grande { font-size: 24px; }
.barras-criterios { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px 48px; margin-bottom: 28px; }
.criterio { display: grid; grid-template-columns: 1fr 100px 30px; gap: 12px; align-items: center; font-size: 14px; }
.criterio .barra { height: 4px; background: var(--ah-borde); border-radius: 4px; overflow: hidden; }
.criterio .barra i { display: block; height: 100%; background: var(--ah-texto); }
.lista-resenas { display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px 48px; }
@media (max-width: 767px) { .barras-criterios, .lista-resenas { grid-template-columns: 1fr; } }
.resena-autor { display: flex; gap: 12px; align-items: center; margin-bottom: 8px; }
.resena-autor strong { display: block; }
.resena-autor span { color: var(--ah-suave); font-size: 13px; }
.resena-estrellas { color: var(--ah-estrella); font-size: 12px; letter-spacing: 1px; margin-bottom: 6px; }
.resena-estrellas span { color: #d0d5dd; }
.resena p { line-height: 1.6; margin-bottom: 8px; }
.resena .enlace-denunciar { font-size: 12px; }
.nota-verificacion { display: flex; gap: 8px; align-items: flex-start; margin-top: 20px; font-size: 13px; color: var(--ah-suave); }

.caja-reserva { border: 1px solid var(--ah-borde); border-radius: var(--ah-radio); padding: 24px; box-shadow: var(--ah-sombra); background: #fff; }
.precio-caja { display: flex; align-items: baseline; gap: 6px; margin-bottom: 18px; flex-wrap: wrap; }
.precio-caja strong { font-size: 24px; }
.precio-caja .nota-caja { margin-left: auto; font-size: 14px; color: var(--ah-texto); text-decoration: underline; }
.fechas-caja { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid #b0b0b0; border-radius: 10px; margin-bottom: 10px; overflow: hidden; }
.fechas-caja > * { padding: 8px 12px; margin: 0; font-size: 14px; }
.fechas-caja > * + * { border-left: 1px solid #b0b0b0; }
.fechas-caja span { display: block; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.fechas-caja input { border: 0; padding: 0; width: 100%; font-size: 14px; outline: none; background: transparent; }
.fila-caja { margin-bottom: 10px; }
.fila-caja label { font-size: 13px; font-weight: 600; margin-bottom: 4px; }
.desglose { margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--ah-borde); }
.desglose > div { display: flex; justify-content: space-between; padding: 4px 0; }
.desglose .total { font-weight: 700; border-top: 1px solid var(--ah-borde); margin-top: 8px; padding-top: 10px; }
.desglose .d-aviso { color: #b42318; font-size: 13px; margin: 6px 0 0; }
.anuncios-similares { margin-top: 48px; }

.barra-movil-ficha { display: none; }
@media (max-width: 991px) {
    .caja-reserva { position: static; margin-top: 32px; }
    .barra-movil-ficha { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 100; justify-content: space-between; align-items: center;
        gap: 12px; padding: 12px 16px; background: #fff; border-top: 1px solid var(--ah-borde); }
    .barra-movil-ficha small { display: block; }
    .ficha-airbnb { padding-bottom: 100px; }
    .progress-wrap { bottom: 90px !important; }
}

/* =====================================================================
   BLOQUES 4-5-6
   ===================================================================== */

/* ---------- Banner de cookies */
.banner-cookies { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 3000; max-width: 980px; margin: 0 auto; background: #fff;
    border-radius: var(--ah-radio); box-shadow: 0 10px 40px rgba(0,0,0,.2); padding: 20px 24px; display: flex; gap: 20px; align-items: center; }
.banner-cookies[hidden] { display: none; }
.banner-cookies p { margin: 4px 0 0; font-size: 14px; }
.banner-cookies-opciones { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 10px; font-size: 14px; }
.banner-cookies-opciones[hidden] { display: none; }
.banner-cookies-opciones label { display: flex; gap: 6px; align-items: center; margin: 0; }
.banner-cookies-botones { display: flex; gap: 8px; flex-wrap: wrap; flex-shrink: 0; }
.banner-cookies-botones .tf-btn { padding: 10px 18px; }
@media (max-width: 767px) { .banner-cookies { flex-direction: column; align-items: stretch; bottom: 8px; left: 8px; right: 8px; }
    .banner-cookies-botones .tf-btn { flex: 1; } }

/* ---------- Alertas en listados */
.fila-total { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.fila-total .total-resultados { margin: 0; }
.form-alerta .respuesta-form { display: none; }

/* ---------- Panel de administración (estilo dashboard de la plantilla) */
.menu-admin { background: var(--ah-marino); color: #fff; }
.menu-admin .menu-privado-usuario { border-color: rgba(255,255,255,.12); }
.menu-admin .menu-privado-usuario .icon { font-size: 24px; }
.menu-admin .caption-2 { color: rgba(255,255,255,.5); }
.menu-admin li a { color: rgba(255,255,255,.75); }
.menu-admin li a:hover, .menu-admin li a.activo { background: rgba(255,255,255,.08); color: #fff; }
.menu-admin .volver-cuenta { display: block; margin-top: 16px; color: rgba(255,255,255,.6); font-size: 14px; }
.area-admin .flat-counter-v2 { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.area-admin a.counter-box { color: var(--ah-texto); transition: box-shadow .2s; }
.area-admin a.counter-box:hover { box-shadow: var(--ah-sombra); }
.filtros-admin { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 16px; }
.filtros-admin .form-control, .filtros-admin .form-select { max-width: 320px; height: 44px; }
.tabla-admin { width: 100%; }
.tabla-admin th { font-size: 13px; color: var(--ah-suave); font-weight: 600; padding: 10px 12px; border-bottom: 1px solid var(--ah-borde); white-space: nowrap; }
.tabla-admin td { padding: 12px; border-bottom: 1px solid #f0f1f3; vertical-align: top; }
.tabla-admin tr.inactiva td { opacity: .5; }
.celda-anuncio { display: flex; gap: 12px; min-width: 280px; }
.celda-anuncio img { width: 72px; height: 54px; border-radius: 8px; object-fit: cover; flex-shrink: 0; }
.acciones-admin { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.lista-admin { list-style: none; padding: 0; margin: 0; }
.lista-admin li { padding: 10px 0; border-bottom: 1px solid #f0f1f3; display: flex; flex-direction: column; }
.lista-admin li span { font-size: 13px; color: var(--ah-suave); }
.paginacion-admin { display: flex; gap: 12px; align-items: center; justify-content: center; margin: 20px 0; font-size: 14px; }
.cuerpo-correo { white-space: pre-wrap; background: var(--ah-fondo); padding: 16px; border-radius: 12px; font-size: 13px; max-height: 360px; overflow: auto; }
.rejilla-producto { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 16px; }
@media (max-width: 767px) { .rejilla-producto { grid-template-columns: 1fr 1fr; } }

/* ---------- Promocionar anuncio */
.precio-producto { margin-top: 8px; font-size: 22px; font-weight: 800; color: var(--ah-texto); }
.miniatura-promocion { width: 96px; height: 72px; object-fit: cover; border-radius: 10px; }
.aviso-destacado { display: inline-block; background: var(--ah-texto); color: #fff; border-radius: 8px; padding: 4px 10px; font-size: 13px; font-weight: 600; margin-right: 6px; }
details.widget-box-2 summary { cursor: pointer; }

/* =====================================================================
   IMAGEN CORPORATIVA 2026 (azul marino + coral) Y MEJORAS VISUALES
   ===================================================================== */

/* ---------- Generales de marca */
body { color: var(--ah-texto); }
::selection { background: var(--ah-coral); color: #fff; }
.text-primary { color: var(--ah-primario) !important; }
.tf-btn.primary { box-shadow: 0 6px 16px rgba(200, 67, 45, .22); }
.tf-btn.primary:hover { background: var(--ah-primario-oscuro); }
.tf-btn.btn-line { border-color: var(--ah-borde); color: var(--ah-texto); }
.tf-btn.btn-line:hover { border-color: var(--ah-marino); background: var(--ah-marino); color: #fff; }
.logo img, .nav-logo img, .footer-logo img { height: 44px; width: auto; }
.main-header .navigation > li > a:hover { color: var(--ah-primario); }

/* Cabeceras de páginas interiores: azul marino con un detalle coral */
.flat-title-page { padding: 56px 0 48px; }
.flat-title-page h1.title { font-size: clamp(26px, 3vw, 38px); }
.flat-title-page h1.title::after { content: ""; display: block; width: 64px; height: 4px; border-radius: 4px; background: var(--ah-coral); margin: 16px auto 0; }
.flat-title-page .breadcrumb a, .flat-title-page .breadcrumb li { color: rgba(255,255,255,.75) !important; }

/* Portada */
.flat-slider.home-1 .heading .title-large { text-shadow: 0 2px 20px rgba(1, 36, 70, .35); }
.flat-slider.home-1 .heading .subtitle { color: rgba(255,255,255,.9) !important; }
.buscador-pildora { max-width: 980px; }
.buscador-pildora .campo label { color: var(--ah-marino); }
.como-funciona > div { background: #fff; border: 1px solid var(--ah-borde); transition: transform .2s, box-shadow .2s; }
.como-funciona > div:hover { transform: translateY(-4px); box-shadow: var(--ah-sombra); }
.como-funciona .numero { background: var(--ah-coral); }

/* Títulos de sección con acento */
.titulo-bloque, .titulo-ubicaciones, .anuncios-similares > h3 { position: relative; }
.titulo-ubicaciones::before, .anuncios-similares > h3::before { content: ""; display: inline-block; width: 6px; height: 22px; border-radius: 3px; background: var(--ah-coral); margin-right: 10px; vertical-align: -3px; }

/* Tarjetas */
.tarjeta-foto { box-shadow: 0 1px 2px rgba(1,36,70,.06); }
.tarjeta-anuncio:hover .tarjeta-foto { box-shadow: var(--ah-sombra); }
.tarjeta-etiquetas .etiqueta.destacada { background: var(--ah-coral); }
.tarjeta-etiquetas .etiqueta.profesional { background: var(--ah-marino); color: #fff; }
.tarjeta-precio strong { color: var(--ah-marino); font-size: 16px; }
.tarjeta-foto picture, .tarjeta-foto picture img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* ---------- Barra de categorías (filtros rápidos) */
.barra-filtros { padding: 0; box-shadow: 0 2px 10px rgba(1,36,70,.04); }
.barra-filtros .container { flex-wrap: nowrap; gap: 24px; }
.categorias { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; flex: 1; min-width: 0; -webkit-mask-image: linear-gradient(90deg, #000 92%, transparent); mask-image: linear-gradient(90deg, #000 92%, transparent); }
.categorias::-webkit-scrollbar { display: none; }
.categoria { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 14px 14px 12px; min-width: 88px; color: var(--ah-suave);
    border-bottom: 2px solid transparent; font-size: 13px; font-weight: 600; white-space: nowrap; transition: color .2s, border-color .2s; }
.categoria .icon { font-size: 24px; transition: transform .2s; }
.categoria:hover { color: var(--ah-marino); border-bottom-color: var(--ah-borde); }
.categoria:hover .icon { transform: translateY(-2px); }
.categoria.activa { color: var(--ah-marino); border-bottom-color: var(--ah-marino); }
.categoria.activa .icon { color: var(--ah-coral); }
.herramientas-listado { flex-shrink: 0; display: flex; gap: 8px; flex-wrap: nowrap; }
.boton-herramienta { position: relative; display: inline-flex; align-items: center; gap: 8px; padding: 11px 16px; border: 1px solid var(--ah-borde); border-radius: 12px;
    background: #fff; color: var(--ah-marino); font-weight: 600; font-size: 14px; transition: box-shadow .2s, border-color .2s; }
.boton-herramienta:hover { border-color: var(--ah-marino); box-shadow: var(--ah-sombra); }
.boton-herramienta.activo { background: var(--ah-marino); color: #fff; border-color: var(--ah-marino); }
.contador-filtros { position: absolute; top: -7px; right: -7px; min-width: 20px; height: 20px; border-radius: 10px; background: var(--ah-primario); color: #fff;
    font-size: 11px; display: flex; align-items: center; justify-content: center; padding: 0 5px; border: 2px solid #fff; }
@media (max-width: 767px) {
    .barra-filtros { top: 64px; }
    .barra-filtros .container { gap: 8px; }
    .categoria { min-width: 72px; padding: 10px 8px; font-size: 12px; }
    .boton-herramienta span { display: none; }
    .boton-herramienta { padding: 11px 12px; }
}

/* Ventana de filtros */
.ventana-filtros { border-radius: 20px; border: 0; }
.ventana-filtros .modal-header { justify-content: center; position: relative; border-color: var(--ah-borde); }
.ventana-filtros .modal-header .btn-close { position: absolute; left: 20px; }
.ventana-filtros section { padding: 20px 4px; border-bottom: 1px solid var(--ah-borde); }
.ventana-filtros section:last-child { border-bottom: 0; }
.ventana-filtros .titulo-filtro { font-size: 18px; font-weight: 700; color: var(--ah-marino); margin-bottom: 14px; }
.ciudades-filtro { border-top: 1px solid var(--ah-borde); padding-top: 16px; margin-top: 8px; }
.ciudades-filtro summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; margin: 0; }
.ciudades-filtro summary::-webkit-details-marker { display: none; }
.ciudades-filtro summary::after { content: "+"; font-size: 22px; color: var(--ah-coral); line-height: 1; }
.ciudades-filtro[open] summary::after { content: "−"; }
.ciudades-filtro ul { list-style: none; padding: 12px 0 0; margin: 0; columns: 3; column-gap: 12px; font-size: 13px; }
.ciudades-filtro li { break-inside: avoid; padding: 3px 0; }
.ciudades-filtro a { color: var(--ah-marino); }
.ciudades-filtro a:hover, .ciudades-filtro a.activa { color: var(--ah-primario); font-weight: 700; }
.ciudades-filtro span { color: var(--ah-suave); }
@media (max-width: 575px) { .ciudades-filtro ul { columns: 2; } }
.titulo-sin-resultados { font-size: 20px; font-weight: 700; color: var(--ah-marino); }
.rango-precio { display: flex; align-items: center; gap: 12px; }
.rango-precio label { flex: 1; border: 1px solid #b8c0cc; border-radius: 12px; padding: 8px 14px; margin: 0; }
.rango-precio label span { display: block; font-size: 12px; color: var(--ah-suave); }
.rango-precio input { border: 0; width: 100%; outline: none; font-size: 16px; font-weight: 600; color: var(--ah-marino); padding: 0; }
.precios-rapidos { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.pastilla { border: 1px solid var(--ah-borde); border-radius: 999px; background: #fff; padding: 6px 14px; font-size: 14px; }
.pastilla:hover, .pastilla.activa { border-color: var(--ah-marino); background: var(--ah-marino-suave); }
.ventana-filtros .ayuda { font-size: 13px; color: var(--ah-suave); margin: 6px 0 0; }
.ventana-filtros .modal-footer { justify-content: space-between; border-color: var(--ah-borde); }
.enlace-borrar { font-weight: 600; text-decoration: underline; color: var(--ah-marino); }

/* ---------- Promoción en el panel del anunciante */
.banner-promocion { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; padding: 28px 32px; margin-bottom: 24px;
    border-radius: 20px; color: #fff; background: radial-gradient(circle at 90% 10%, rgba(255,255,255,.18), transparent 40%), linear-gradient(120deg, var(--ah-primario), var(--ah-coral)); box-shadow: 0 12px 30px rgba(200, 67, 45, .3); }
.banner-promocion h2 { color: #fff; font-size: 24px; margin: 8px 0 6px; }
.banner-promocion p { color: rgba(255,255,255,.92); margin: 0; max-width: 560px; }
.etiqueta-banner { display: inline-flex; align-items: center; gap: 6px; background: rgba(255,255,255,.2); border-radius: 999px; padding: 4px 12px; font-size: 13px; font-weight: 700; }
.caja-descarga .etiqueta-banner { background: var(--ah-coral-suave); color: var(--ah-primario); }
.tf-btn.boton-blanco { background: #fff; color: var(--ah-primario); font-weight: 700; border: 0; }
.tf-btn.boton-blanco:hover { background: var(--ah-marino); color: #fff; }
.boton-promocionar { background: linear-gradient(120deg, var(--ah-primario), var(--ah-coral)) !important; border: 0 !important; color: #fff !important; }
.aviso-caducidad { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 13px; color: var(--ah-suave); margin: 6px 0; }
.aviso-caducidad.pronto { color: var(--ah-primario-oscuro); font-weight: 600; }
.nota-subida { font-size: 13px; color: var(--ah-suave); padding: 6px 0; }
.aviso-destacado { background: var(--ah-coral); }
.mi-anuncio { border: 1px solid transparent; transition: border-color .2s; }
.mi-anuncio:hover { border-color: var(--ah-borde); }

/* Asistente: tipo de anunciante */
.aviso-tipo-anunciante { display: flex; gap: 8px; align-items: baseline; background: var(--ah-marino-suave); border-radius: 12px; padding: 12px 16px; margin: 0; font-size: 14px; }
.aviso-tipo-anunciante .icon { color: var(--ah-marino); }
.valor-fijo { height: 48px; display: flex; align-items: center; gap: 6px; padding: 0 16px; border-radius: 8px; background: var(--ah-fondo); font-weight: 600; }

/* ---------- Ficha: disponibilidad, valoraciones y anunciante */
.periodo-disponible { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; padding: 16px 20px; border: 1px solid var(--ah-borde); border-radius: 14px; }
.periodo-disponible > div { display: flex; flex-direction: column; }
.periodo-disponible span { font-size: 12px; font-weight: 700; text-transform: uppercase; color: var(--ah-suave); }
.periodo-disponible strong { font-size: 16px; color: var(--ah-marino); }
.periodo-disponible .icon { color: var(--ah-coral); }
.como-valorar { display: flex; gap: 14px; margin-top: 24px; padding: 18px; background: var(--ah-marino-suave); border-radius: 14px; }
.como-valorar > .icon { font-size: 24px; color: var(--ah-marino); }
.como-valorar p { margin: 4px 0 0; font-size: 14px; color: var(--ah-suave); }
.como-valorar a { color: var(--ah-primario); font-weight: 600; }
.sello-verificado { display: inline-flex; align-items: center; gap: 4px; color: #067647; font-size: 13px; font-weight: 700; }
.nota-anunciante { margin: 12px 0 0; font-weight: 600; }
.datos-profesional { display: grid; grid-template-columns: max-content 1fr; gap: 6px 16px; margin: 16px 0 0; padding: 14px 16px; background: var(--ah-fondo); border-radius: 12px; font-size: 14px; }
.datos-profesional dt { color: var(--ah-suave); font-weight: 600; }
.datos-profesional dd { margin: 0; }
.caja-reserva { border-top: 4px solid var(--ah-coral); }
.precio-caja strong { color: var(--ah-marino); }
.criterio .barra i { background: var(--ah-coral); }
.resena-estrellas { color: var(--ah-coral); }
.nota-grande::first-letter { color: var(--ah-coral); }

/* Valoraciones en «Mi cuenta» */
.explicacion-valoraciones { display: flex; gap: 14px; background: #fff; border-left: 4px solid var(--ah-coral); border-radius: 12px; padding: 16px 18px; margin-bottom: 24px; }
.explicacion-valoraciones .icon { font-size: 22px; color: var(--ah-coral); }
.explicacion-valoraciones p { margin: 0; font-size: 14px; }
.fila-por-valorar { display: flex; align-items: center; gap: 14px; }
.fila-por-valorar img { width: 64px; height: 64px; object-fit: cover; border-radius: 12px; }
.fila-por-valorar > div { flex: 1; }

/* Cuenta profesional */
.caja-profesional { border: 1px solid var(--ah-marino-suave); }
.caja-profesional .title .estado { margin-left: 8px; vertical-align: middle; }
.fila-profesional { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 14px 0; border-bottom: 1px solid var(--ah-borde); }

/* ---------- Contacto */
.seccion-contacto { background: var(--ah-fondo); }
.contacto-rejilla { display: grid; grid-template-columns: 5fr 7fr; gap: 0; background: #fff; border-radius: 24px; overflow: hidden; box-shadow: var(--ah-sombra); }
.contacto-info { position: relative; padding: 44px 40px; color: #fff; background: radial-gradient(circle at 100% 100%, rgba(226, 90, 68, .35), transparent 45%), var(--ah-marino); }
.contacto-info img { height: 40px; width: auto; margin-bottom: 28px; }
.contacto-info h2 { color: #fff; font-size: 30px; margin-bottom: 10px; }
.contacto-info > p { color: rgba(255,255,255,.8); }
.contacto-info ul { list-style: none; padding: 0; margin: 28px 0; display: grid; gap: 18px; }
.contacto-info li { display: flex; gap: 14px; align-items: flex-start; }
.contacto-info li .icon { width: 44px; height: 44px; border-radius: 12px; background: rgba(255,255,255,.1); display: flex; align-items: center; justify-content: center; font-size: 20px; color: var(--ah-coral); flex-shrink: 0; }
.contacto-info li strong { display: block; color: #fff; }
.contacto-info li span, .contacto-info li a { color: rgba(255,255,255,.75); font-size: 14px; }
.contacto-atajos { display: grid; gap: 8px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.15); }
.contacto-atajos a { color: #fff; font-weight: 600; }
.contacto-atajos a:hover { color: var(--ah-coral); }
.contacto-aviso { margin-top: 24px; font-size: 13px; color: rgba(255,255,255,.65) !important; }
.contacto-formulario { padding: 44px 44px 36px; }
.etiqueta-campo { display: block; font-weight: 600; margin-bottom: 10px; }
.motivos-contacto label { font-size: 14px; padding: 6px 14px; }
.campo-flotante { position: relative; }
.campo-flotante .form-control, .campo-flotante .textarea { height: 56px; padding: 22px 16px 6px; border-radius: 12px; }
.campo-flotante .textarea { height: auto; padding-top: 26px; }
.campo-flotante label { position: absolute; left: 17px; top: 17px; margin: 0; color: var(--ah-suave); pointer-events: none; transition: all .15s; }
.campo-flotante .form-control:focus + label, .campo-flotante .form-control:not(:placeholder-shown) + label,
.campo-flotante .textarea:focus + label, .campo-flotante .textarea:not(:placeholder-shown) + label { top: 7px; font-size: 12px; font-weight: 700; color: var(--ah-primario); }
.boton-enviar { padding-left: 32px; padding-right: 32px; }
@media (max-width: 991px) { .contacto-rejilla { grid-template-columns: 1fr; } .contacto-info, .contacto-formulario { padding: 32px 24px; } }

/* ---------- Textos legales */
.version-legal { display: inline-block; background: var(--ah-marino-suave); border-radius: 999px; padding: 4px 14px; font-size: 13px; font-weight: 600; }
.texto-legal h3 { color: var(--ah-marino); font-size: 20px; }
.tabla-legal { width: 100%; font-size: 14px; margin: 8px 0 16px; border-collapse: collapse; }
.tabla-legal th { background: var(--ah-marino); color: #fff; padding: 10px 12px; text-align: left; }
.tabla-legal td { padding: 10px 12px; border-bottom: 1px solid var(--ah-borde); vertical-align: top; }
.tabla-legal tr:nth-child(even) td { background: var(--ah-fondo); }

/* ---------- Contrato */
.caja-descarga { display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap; padding: 32px; border-radius: 20px; background: #fff; border: 1px solid var(--ah-borde); box-shadow: var(--ah-sombra); }
.caja-descarga h3 { margin: 10px 0 6px; }
.caja-descarga p { margin: 0; max-width: 560px; color: var(--ah-suave); }
.botones-descarga { display: flex; flex-direction: column; gap: 10px; }
.rejilla-incluye { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.rejilla-incluye > div { display: grid; grid-template-columns: 28px 1fr; gap: 2px 10px; padding: 16px; border-radius: 14px; background: var(--ah-fondo); }
.rejilla-incluye .icon { color: var(--ah-coral); font-size: 20px; grid-row: span 2; }
.rejilla-incluye span { font-size: 14px; color: var(--ah-suave); }
.aviso-legal-contrato { margin-top: 24px; padding: 16px 18px; border-left: 4px solid var(--ah-coral); background: var(--ah-coral-suave); border-radius: 0 12px 12px 0; font-size: 14px; }
.cta-contrato { margin-top: 40px; padding: 32px; border-radius: 20px; text-align: center; background: var(--ah-marino); color: #fff; }
.cta-contrato h3 { color: #fff; }
.cta-contrato p { color: rgba(255,255,255,.8); }
@media (max-width: 767px) { .rejilla-incluye { grid-template-columns: 1fr; } }

/* ---------- Blog: artículo y editor del panel */
.meta-articulo { color: var(--ah-suave); font-size: 14px; margin: -6px 0 20px; }
.imagen-articulo img { border-radius: 16px; width: 100%; height: auto; }
.editor-articulo .campo-grande { font-size: 22px; font-weight: 700; height: 56px; }
.campo-url { display: flex; align-items: center; border: 1px solid var(--ah-borde); border-radius: 8px; overflow: hidden; }
.campo-url span { padding: 0 10px; background: var(--ah-fondo); color: var(--ah-suave); font-size: 13px; height: 48px; display: flex; align-items: center; white-space: nowrap; }
.campo-url input { border: 0; flex: 1; height: 48px; padding: 0 10px; outline: none; min-width: 0; }
.editor-quill { min-height: 420px; font-size: 16px; }
.ql-toolbar.ql-snow, .ql-container.ql-snow { border-color: var(--ah-borde); }
.ql-toolbar.ql-snow { border-radius: 12px 12px 0 0; }
.ql-container.ql-snow { border-radius: 0 0 12px 12px; }
.vista-google { padding: 16px; border: 1px solid var(--ah-borde); border-radius: 12px; font-family: Arial, sans-serif; }
.vista-google span { display: block; }
.vista-google .url { font-size: 13px; color: #202124; }
.vista-google .titulo { font-size: 20px; color: #1a0dab; margin: 2px 0; }
.vista-google .descripcion { font-size: 14px; color: #4d5156; }
.comprobaciones-seo { list-style: none; padding: 0; margin: 16px 0 0; display: grid; gap: 6px; font-size: 14px; }
.comprobaciones-seo li::before { content: "✕"; display: inline-block; width: 22px; color: #b42318; font-weight: 700; }
.comprobaciones-seo li.ok::before { content: "✓"; color: #067647; }
.contador-caracteres { display: block; text-align: right; font-size: 12px; color: var(--ah-suave); }
.contador-caracteres.excedido { color: #b42318; font-weight: 700; }
.imagen-destacada-previa { width: 100%; border-radius: 12px; margin-bottom: 10px; }
.zona-subida.pequena { padding: 16px; flex-direction: row; gap: 10px; }

/* ---------- Acceso con Google */
.boton-google { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; height: 48px; border: 1px solid var(--ah-borde); border-radius: 999px;
    background: #fff; color: #1f1f1f; font-weight: 600; transition: box-shadow .2s, border-color .2s; }
.boton-google:hover { border-color: #b8c0cc; box-shadow: var(--ah-sombra); color: #1f1f1f; }
.nota-google { font-size: 12px; color: var(--ah-suave); text-align: center; margin: 8px 0 0; }
.separador-o { display: flex; align-items: center; gap: 12px; margin: 16px 0; color: var(--ah-suave); font-size: 13px; }
.separador-o::before, .separador-o::after { content: ""; flex: 1; height: 1px; background: var(--ah-borde); }
.aviso-destacado.marino { background: var(--ah-marino); }

/* =====================================================================
   TARJETAS V2: caja blanca, foto que llena su hueco y datos clave en coral
   ===================================================================== */
.rejilla-anuncios > div { display: flex; }
.tarjeta-anuncio { display: flex; flex-direction: column; width: 100%; background: #fff; border: 1px solid var(--ah-borde); border-radius: var(--ah-radio);
    overflow: hidden; transition: transform .25s, box-shadow .25s, border-color .25s; }
.tarjeta-anuncio:hover { transform: translateY(-4px); box-shadow: 0 14px 34px rgba(1,36,70,.12); border-color: transparent; }
.tarjeta-foto { border-radius: 0; aspect-ratio: 4 / 3; box-shadow: none !important; }
.tarjeta-foto > a { display: block; width: 100%; height: 100%; }
.tarjeta-foto::after { content: ""; position: absolute; inset: auto 0 0; height: 40%; background: linear-gradient(transparent, rgba(1,36,70,.25)); pointer-events: none; }
.tarjeta-datos { display: flex; flex-direction: column; flex: 1; padding: 14px 16px 16px; }
.tarjeta-lugar { display: inline-flex; align-items: center; gap: 4px; color: var(--ah-primario); font-weight: 700; font-size: 14px; }
.tarjeta-lugar .icon { color: var(--ah-coral); font-size: 15px; }
.tarjeta-titulo { margin-top: 6px; }
.tarjeta-titulo a { color: var(--ah-marino); font-weight: 600; }
ul.tarjeta-rasgos { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; padding: 0; margin: 10px 0 0; }
ul.tarjeta-rasgos li { display: inline-flex; align-items: center; gap: 5px; padding: 3px 9px; border-radius: 999px; background: var(--ah-coral-suave); color: var(--ah-marino); font-size: 12px; font-weight: 600; }
ul.tarjeta-rasgos .icon { color: var(--ah-coral); font-size: 13px; }
.tarjeta-pie { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; padding-top: 12px; border-top: 1px dashed var(--ah-borde); }
.tarjeta-rasgos + .tarjeta-pie, .tarjeta-titulo + .tarjeta-pie { margin-top: auto; }
.tarjeta-datos > .tarjeta-pie { margin-top: auto; }
.tarjeta-titulo, ul.tarjeta-rasgos { margin-bottom: 12px; }
.tarjeta-precio { margin: 0; color: var(--ah-suave); font-size: 13px; }
.tarjeta-precio strong { color: var(--ah-primario); font-size: 20px; font-weight: 800; }
.tarjeta-dispo { font-size: 12px; font-weight: 600; color: var(--ah-suave); white-space: nowrap; }
.tarjeta-dispo.ya { color: #067647; }
.tarjeta-dispo.ya::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: #17b26a; margin-right: 5px; vertical-align: 1px; }

/* Tarjeta «Publica tu habitación» que completa la última fila de 4 columnas */
.tarjeta-cta { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 8px; width: 100%; padding: 28px 24px; border-radius: var(--ah-radio);
    background: linear-gradient(150deg, var(--ah-marino) 0%, var(--ah-marino-medio) 100%); color: #fff; position: relative; overflow: hidden; }
.tarjeta-cta::after { content: ""; position: absolute; width: 220px; height: 220px; right: -70px; top: -70px; border-radius: 50%; background: radial-gradient(var(--ah-coral), transparent 70%); opacity: .45; }
.tarjeta-cta .icon { font-size: 40px; color: var(--ah-coral); }
.tarjeta-cta .cta-titulo { font-size: 22px; font-weight: 800; line-height: 1.25; margin: 0; color: #fff; }
.tarjeta-cta p { margin: 0 0 8px; color: rgba(255,255,255,.85); position: relative; z-index: 1; }
.tarjeta-cta .tf-btn { position: relative; z-index: 1; }
@media (min-width: 992px) and (max-width: 1199px) { .tarjeta-cta { display: none; } }   /* En 3 columnas sobraría */

/* Filtros rápidos: iconos siempre en coral */
.categoria .icon { color: var(--ah-coral); }

/* =====================================================================
   SELECTOR DE CIUDAD Y ZONA (cabecera de los listados)
   ===================================================================== */
.cabecera-listado-fila { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px 24px; flex-wrap: wrap; }
.selector-ubicacion { display: flex; gap: 0; background: #fff; border: 1px solid var(--ah-borde); border-radius: 999px; box-shadow: 0 4px 14px rgba(1,36,70,.06); padding: 4px; }
.campo-ubicacion { position: relative; display: flex; align-items: center; gap: 8px; margin: 0; padding: 6px 14px; border-radius: 999px; cursor: pointer; transition: background .2s; }
.campo-ubicacion + .campo-ubicacion { border-left: 1px solid var(--ah-borde); border-radius: 0 999px 999px 0; }
.campo-ubicacion:hover { background: var(--ah-fondo); }
.campo-ubicacion .icon { color: var(--ah-coral); font-size: 18px; }
.campo-ubicacion span { position: absolute; top: 3px; left: 40px; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--ah-suave); pointer-events: none; }
.campo-ubicacion select { appearance: none; border: 0; background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23012446' stroke-width='3'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right center;
    padding: 12px 20px 0 0; font-weight: 700; color: var(--ah-marino); font-size: 14px; max-width: 200px; cursor: pointer; outline: none; box-shadow: none; height: auto; }
.campo-ubicacion:focus-within { outline: 2px solid var(--ah-primario); outline-offset: -2px; }
@media (max-width: 767px) {
    .selector-ubicacion { width: 100%; }
    .campo-ubicacion { flex: 1; min-width: 0; }
    .campo-ubicacion select { max-width: 100%; width: 100%; }
}

/* =====================================================================
   PORTADA: fondo azul marino liso
   ===================================================================== */
.flat-slider.home-1.portada-airbnb { background: var(--ah-marino); }   /* Azul oscuro liso, sin foto ni dibujos */
.flat-slider.home-1.portada-airbnb .slider-content { position: relative; z-index: 1; padding: 110px 0 140px; }
@media (max-width: 767px) { .flat-slider.home-1.portada-airbnb .slider-content { padding: 56px 0 80px; } }
.portada-airbnb .heading h1 span.acento, .portada-airbnb .heading h1 em { color: var(--ah-coral); font-style: normal; }

/* =====================================================================
   GUÍAS DE CIUDAD Y BARRIO (listados de provincia y zona, página 1)
   ===================================================================== */
.guia-ubicacion { margin: 48px 0 8px; padding: 28px; border-radius: var(--ah-radio); background: var(--ah-fondo); border: 1px solid var(--ah-borde); }
.guia-ubicacion h2 { margin: 0 0 16px; }
.guia-datos { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; list-style: none; padding: 0; margin: 0; }
.guia-datos li { background: #fff; border-radius: 12px; padding: 14px 16px; border: 1px solid var(--ah-borde); }
.guia-datos b { display: block; color: var(--ah-primario); font-size: 20px; font-weight: 800; }
.guia-datos span { font-size: 13px; color: var(--ah-suave); }
@media (max-width: 767px) { .guia-datos { grid-template-columns: repeat(2, 1fr); } .guia-ubicacion { padding: 20px; } }
.guia-nota { font-size: 12px; color: var(--ah-suave); margin: 8px 0 0; }
.guia-zonas { margin: 16px 0 0; }
.guia-zonas a { color: var(--ah-primario); font-weight: 600; }
.guia-texto { margin-top: 20px; line-height: 1.7; }
.guia-texto h3 { font-size: 18px; margin: 20px 0 8px; }
.guia-texto ul { padding-left: 20px; list-style: disc; }

/* =====================================================================
   CHAT DE SOLICITUDES (Mis mensajes → Conversación)
   ===================================================================== */
.chat { max-width: 760px; margin: 0 auto; background: #fff; border: 1px solid var(--ah-borde); border-radius: var(--ah-radio); overflow: hidden; }
.chat-cabecera { display: flex; align-items: center; gap: 12px; padding: 14px 18px; border-bottom: 1px solid var(--ah-borde); }
.chat-cabecera img { width: 48px; height: 48px; border-radius: 10px; object-fit: cover; }
.chat-cabecera > div { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.chat-cabecera > div a { color: var(--ah-suave); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.chat-volver { font-size: 20px; color: var(--ah-marino); }
.chat-aviso { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; padding: 10px 18px; background: var(--ah-marino-suave); font-size: 13px; color: var(--ah-marino); }
.chat-aviso .icon { color: var(--ah-coral); }
.chat-mensajes { display: flex; flex-direction: column; gap: 10px; padding: 18px; max-height: 60vh; min-height: 260px; overflow-y: auto; background: var(--ah-fondo); }
.burbuja { max-width: 78%; align-self: flex-start; }
.burbuja .texto { background: #fff; border: 1px solid var(--ah-borde); padding: 10px 14px; border-radius: 16px 16px 16px 4px; color: var(--ah-marino); overflow-wrap: anywhere; }
.burbuja.mia { align-self: flex-end; text-align: right; }
.burbuja.mia .texto { background: var(--ah-primario); color: #fff; border-color: var(--ah-primario); border-radius: 16px 16px 4px 16px; text-align: left; }
.burbuja .hora { display: block; font-size: 11px; color: var(--ah-suave); margin-top: 3px; padding: 0 4px; }
.chat-formulario { display: flex; gap: 8px; align-items: flex-end; padding: 12px; border-top: 1px solid var(--ah-borde); }
.chat-formulario textarea { flex: 1; resize: none; border: 1px solid var(--ah-borde); border-radius: 22px; padding: 10px 16px; min-height: 44px; max-height: 140px; outline: none; }
.chat-formulario textarea:focus { border-color: var(--ah-marino); }
.chat-formulario .tf-btn { width: 44px; height: 44px; padding: 0; border-radius: 50%; display: flex; align-items: center; justify-content: center; }
/* La plantilla da ancho mínimo y alto a .tf-btn y a los textarea: se fuerza el botón redondo y el campo de una línea */
.chat-formulario .tf-btn.primary { flex: 0 0 44px; width: 44px !important; min-width: 44px !important; height: 44px !important; min-height: 0 !important; line-height: 1 !important; padding: 0 !important; }
.resena-tarjeta .resena-estrellas { font-size: 16px; }
.resena-tarjeta .resena-autor strong { font-weight: 700; }
.chat-formulario textarea { height: 44px; }
.chat-decidir { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; justify-content: space-between; padding: 14px 18px; background: #fff7f5; border-bottom: 1px solid var(--ah-borde); }
.chat-decidir strong { color: var(--ah-marino); font-size: 16px; }
.chat-decidir-botones { display: flex; gap: 10px; flex-wrap: wrap; }
.chat-decidir .respuesta-form { flex-basis: 100%; }
/* Botón secundario bien visible (borde marino) para «Rechazar» */
.tf-btn.boton-rechazar { background: #fff; color: var(--ah-marino); border: 2px solid var(--ah-marino); }
.tf-btn.boton-rechazar:hover { background: var(--ah-marino); color: #fff; }

/* Reseñas: tarjeta con reseña y respuesta claramente separadas */
.resena-tarjeta { background: #fff; border: 1px solid var(--ah-borde); border-radius: 14px; padding: 18px 20px; }
.resena-texto { background: var(--ah-fondo); border-radius: 4px 14px 14px 14px; padding: 12px 16px; margin-bottom: 12px; }
.respuesta-anunciante { margin: 0 0 8px 28px; padding: 12px 16px; background: #f5f8ff; border-left: 3px solid var(--ah-marino); border-radius: 0 12px 12px 0; }
.respuesta-etiqueta { display: block; font-size: 13px; font-weight: 700; color: var(--ah-marino); margin-bottom: 4px; }
.respuesta-nueva .textarea { background: #fff; }
.lista-resenas .resena { border-bottom: 1px solid var(--ah-borde); padding-bottom: 18px; margin-bottom: 18px; }
.lista-resenas .resena:last-child { border-bottom: 0; }
.chat-contacto { background: #e8f6ee; }
.chat-contacto a { color: var(--ah-marino); font-weight: 600; }
.chat + .caption-2, .chat .caption-2 { padding: 0 18px 14px; }
.chat-cerrado { margin: 0; padding: 14px 18px; text-align: center; color: var(--ah-suave); border-top: 1px solid var(--ah-borde); }
.boton-chat { position: relative; }
.contador-chat { display: inline-flex; min-width: 20px; height: 20px; border-radius: 10px; background: #fff; color: var(--ah-primario); font-size: 11px; align-items: center; justify-content: center; padding: 0 5px; margin-left: 4px; }

/* Panel: cifras resumen y listas simples (Alertas, Guías) */
.resumen-admin { display: flex; flex-wrap: wrap; gap: 12px; list-style: none; padding: 0; }
.resumen-admin li { background: #fff; border: 1px solid var(--ah-borde); border-radius: 12px; padding: 12px 18px; min-width: 120px; }
.resumen-admin b { display: block; font-size: 22px; color: var(--ah-primario); }
.resumen-admin span { font-size: 13px; color: var(--ah-suave); }
.lista-admin-simple { list-style: none; padding: 0; margin: 0; max-height: 520px; overflow-y: auto; }
.lista-admin-simple li { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; padding: 7px 0; border-bottom: 1px solid var(--ah-borde); }
.lista-admin-simple .estado { margin-left: auto; }

/* Título de las tarjetas: completo en el HTML y siempre en 2 líneas (misma altura en todas) */
.tarjeta-titulo { font-size: 15px; line-height: 1.35; min-height: calc(2em * 1.35); }
.tarjeta-titulo a { -webkit-line-clamp: 2; line-clamp: 2; }

/* Ficha sin fotos: la imagen «SIN IMÁGENES» entera, sobre su mismo color de fondo (ocupa todo el hueco) */
.mosaico-fotos.sin-fotos .foto-mosaico { background: #eaf0f7; }
.mosaico-fotos.sin-fotos img { object-fit: contain; }

/* =====================================================================
   FICHA: datos con icono y tarjeta del anunciante
   ===================================================================== */
.datos-ficha .dato { justify-content: flex-start; align-items: center; gap: 12px; }
.datos-ficha .dato > .icon { flex: 0 0 36px; height: 36px; border-radius: 10px; background: var(--ah-coral-suave); color: var(--ah-coral); display: flex; align-items: center; justify-content: center; font-size: 18px; }
.datos-ficha .dato > div { display: flex; justify-content: space-between; gap: 12px; flex: 1; min-width: 0; }
.datos-ficha .dato strong { text-align: right; color: var(--ah-marino); }
.datos-ficha .dato.dato-no > .icon { background: var(--ah-fondo); color: #9aa4b2; }
.datos-ficha .dato.dato-no strong { color: var(--ah-suave); font-weight: 500; }

.avatar-foto { border-radius: 50%; object-fit: cover; width: 32px; height: 32px; }
.avatar-foto.grande { width: 48px; height: 48px; }
.avatar-foto.enorme, .avatar-inicial.enorme { width: 96px; height: 96px; font-size: 38px; }
/* Columna lateral de la ficha: caja de contacto + tarjeta del anunciante, fijas juntas al hacer scroll.
   Si en pantallas bajas no caben, la columna se desplaza por dentro para que no quede nada oculto. */
.lateral-ficha { position: sticky; top: 100px; display: flex; flex-direction: column; gap: 16px;
    max-height: calc(100vh - 116px); overflow-y: auto; scrollbar-width: thin; padding: 0 4px 12px; margin: 0 -4px; }
@media (max-width: 991px) { .lateral-ficha { position: static; max-height: none; overflow: visible; } }
.lateral-ficha > .caja-reserva, .lateral-ficha > .tarjeta-anfitrion { box-shadow: 0 2px 10px rgba(1,36,70,.06); }   /* Sombra corta: no se recorta */
.tarjeta-anfitrion { background: #fff; border: 1px solid var(--ah-borde); border-radius: var(--ah-radio); padding: 20px; box-shadow: var(--ah-sombra); }
.titulo-anfitrion { font-size: 16px; font-weight: 700; color: var(--ah-marino); margin: 0 0 14px; letter-spacing: 0; }
.anfitrion-identidad { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.avatar-foto.mediano, .avatar-inicial.mediano { width: 56px; height: 56px; font-size: 22px; flex-shrink: 0; }
.anfitrion-nombre { display: block; font-size: 17px; color: var(--ah-marino); line-height: 1.2; }
.anfitrion-tipo { font-size: 13px; color: var(--ah-suave); }
.anfitrion-nota { color: var(--ah-marino); }
.anfitrion-datos { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; font-size: 14px; }
.anfitrion-datos li { display: flex; align-items: center; gap: 10px; color: var(--ah-marino); line-height: 1.3; }
.anfitrion-datos .icon { flex: 0 0 28px; height: 28px; border-radius: 50%; background: var(--ah-marino-suave); color: var(--ah-marino-medio); display: flex; align-items: center; justify-content: center; font-size: 13px; }
.anfitrion-datos li.ok .icon { background: #e7f6ee; color: #067647; }
.anfitrion-sobre { margin: 14px 0 0; padding-top: 12px; border-top: 1px solid var(--ah-borde); font-size: 14px; line-height: 1.6;
    display: -webkit-box; -webkit-line-clamp: 4; line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.tarjeta-anfitrion .datos-profesional { font-size: 13px; margin: 12px 0 0; }
.anfitrion-aviso { margin: 12px 0 0; font-size: 12px; color: var(--ah-suave); }

/* Caja lateral: personas interesadas */
.interesados { display: flex; align-items: center; gap: 10px; padding: 10px 12px; margin: 0 0 16px; border-radius: 12px; background: var(--ah-coral-suave); color: var(--ah-marino); font-size: 14px; }
.interesados .icon { color: var(--ah-coral); font-size: 20px; }

/* Datos personales: foto de perfil */
.foto-perfil-editar { display: flex; gap: 16px; align-items: center; }
.foto-perfil-editar .avatar-foto.grande, .foto-perfil-editar .avatar-inicial.grande { width: 72px; height: 72px; font-size: 28px; flex-shrink: 0; }

/* =====================================================================
   ESTADÍSTICAS DEL ANUNCIO (Mis anuncios → Estadísticas)
   ===================================================================== */
.cabecera-estadisticas { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; align-items: flex-end; margin-bottom: 20px; }
.kpis-anuncio { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 20px; }
@media (max-width: 991px) { .kpis-anuncio { grid-template-columns: repeat(2, 1fr); } }
.kpi { position: relative; background: #fff; border: 1px solid var(--ah-borde); border-radius: var(--ah-radio); padding: 18px 18px 16px 70px; min-height: 100px; }
.kpi > .icon { position: absolute; left: 18px; top: 18px; width: 40px; height: 40px; border-radius: 12px; background: var(--ah-coral-suave); color: var(--ah-coral); display: flex; align-items: center; justify-content: center; font-size: 19px; }
.kpi span { display: block; font-size: 13px; color: var(--ah-suave); }
.kpi b { display: block; font-size: 28px; line-height: 1.2; color: var(--ah-marino); }
.kpi .tendencia { display: inline-block; font-size: 12px; font-weight: 700; margin-top: 2px; }
.tendencia.sube { color: #067647; }
.tendencia.baja { color: #b42318; }
.grafico-visitas { margin: 0; }
.grafico-visitas svg { width: 100%; height: 180px; display: block; }
.grafico-visitas rect { fill: var(--ah-marino); }
.grafico-visitas rect:hover { fill: var(--ah-coral); }
.grafico-visitas .eje { stroke: var(--ah-borde); stroke-width: .3; }
.grafico-visitas figcaption { display: flex; justify-content: space-between; font-size: 12px; color: var(--ah-suave); margin-top: 6px; }
.tabla-datos { margin-top: 12px; font-size: 14px; }
.tabla-datos summary { cursor: pointer; color: var(--ah-primario); font-weight: 600; }
.tabla-datos table { margin-top: 8px; }
.lista-rendimiento, .lista-consejos { list-style: none; padding: 0; margin: 0; display: grid; gap: 14px; }
.lista-rendimiento li { display: flex; gap: 12px; align-items: center; }
.lista-rendimiento li > .icon, .lista-consejos .icon { flex: 0 0 36px; height: 36px; border-radius: 10px; background: var(--ah-coral-suave); color: var(--ah-coral); display: flex; align-items: center; justify-content: center; }
.lista-rendimiento b { display: block; color: var(--ah-marino); font-size: 18px; }
.lista-rendimiento span { font-size: 13px; color: var(--ah-suave); }
.lista-consejos li { display: flex; gap: 12px; align-items: flex-start; font-size: 14px; }
.caja-posicion .puesto { font-size: 44px; font-weight: 800; line-height: 1; color: var(--ah-primario); margin: 4px 0 6px; }
.comparativa-precio { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.comparativa-precio div { background: var(--ah-fondo); border-radius: 12px; padding: 12px; }
.comparativa-precio span { display: block; font-size: 12px; color: var(--ah-suave); }
.comparativa-precio b { font-size: 20px; color: var(--ah-marino); }

/* Tarjetas: colores más suaves (ubicación y precio en azul de marca; el coral solo en el icono de ubicación) */
.tarjeta-lugar { color: var(--ah-marino-medio); font-weight: 600; }
.tarjeta-lugar .icon { color: var(--ah-coral); }
.tarjeta-precio strong { color: var(--ah-marino); }
ul.tarjeta-rasgos li { background: var(--ah-marino-suave); color: var(--ah-marino-medio); font-weight: 500; }
ul.tarjeta-rasgos .icon { color: var(--ah-marino-medio); }

/* Filtros rápidos: iconos en azul de marca; los activos (se pueden combinar) en coral */
.categoria .icon { color: var(--ah-marino-medio); }
.categoria:hover .icon { color: var(--ah-marino); }
.categoria.activa { color: var(--ah-primario); border-bottom-color: var(--ah-coral); }
.categoria.activa .icon { color: var(--ah-coral); }

/* Menú móvil: «Mi cuenta / Salir» (o «Acceder / Registrarse») como dos botones visibles */
.cuenta-movil { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 16px 0; margin-bottom: 8px; border-bottom: 1px solid var(--ah-borde); }
.cuenta-movil-hola { grid-column: 1 / -1; margin: 0; font-size: 15px; color: var(--ah-suave); }
.cuenta-movil-hola strong { color: var(--ah-marino); }
.boton-cuenta-movil { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 11px 12px; border-radius: 12px; font-weight: 700; font-size: 15px;
    border: 1.5px solid var(--ah-marino); color: var(--ah-marino); background: #fff; }
.boton-cuenta-movil.principal { background: var(--ah-marino); color: #fff; }
.boton-cuenta-movil:hover { color: inherit; opacity: .9; }
.boton-cuenta-movil.principal:hover { color: #fff; }
.contador-cuenta { min-width: 20px; height: 20px; border-radius: 10px; background: var(--ah-coral); color: #fff; font-size: 11px; display: inline-flex; align-items: center; justify-content: center; padding: 0 5px; }

/* Paginación de los listados: centrada y separada de los anuncios */
.paginacion-listado { margin-top: 56px; }
.paginacion-listado .wd-navigation { justify-content: center; flex-wrap: wrap; gap: 8px; }
.paginacion-listado .nav-item { min-width: 44px; height: 44px; }
@media (max-width: 575px) { .paginacion-listado { margin-top: 40px; } }

/* Botón eliminar (Mis anuncios y panel): borde rojo para distinguirlo */
.tf-btn.boton-eliminar { color: #b42318; border-color: #f1c4bf; }
.tf-btn.boton-eliminar:hover { background: #fef3f2; color: #b42318; border-color: #b42318; }
.tarjeta-foto.sin-foto::after { display: none; }   /* Sin degradado sobre la imagen «Sin fotos» */

/* =====================================================================
   SERVICIOS CERCANOS (/servicios/ y bloque de la ficha)
   ===================================================================== */
.rejilla-servicios { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
@media (max-width: 1199px) { .rejilla-servicios { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 991px) { .rejilla-servicios { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575px) { .rejilla-servicios { grid-template-columns: 1fr; } }
.rejilla-servicios.compacta { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 575px) { .rejilla-servicios.compacta { grid-template-columns: 1fr; } }
.tarjeta-servicio { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--ah-borde); border-radius: var(--ah-radio); overflow: hidden; transition: box-shadow .2s, transform .2s; }
.tarjeta-servicio:hover { box-shadow: 0 10px 26px rgba(1,36,70,.10); transform: translateY(-2px); }
.tarjeta-servicio.destacado { border-color: var(--ah-marino-medio); }
.servicio-imagen { position: relative; aspect-ratio: 16 / 10; background: var(--ah-marino-suave); display: flex; align-items: center; justify-content: center; }
.servicio-imagen img { width: 100%; height: 100%; object-fit: cover; }
.servicio-icono { font-size: 44px; color: var(--ah-marino-medio); opacity: .7; }
.etiqueta-servicio { position: absolute; top: 10px; left: 10px; background: var(--ah-marino); color: #fff; font-size: 12px; font-weight: 700; padding: 3px 10px; border-radius: 999px; }
.servicio-datos { display: flex; flex-direction: column; flex: 1; padding: 14px 16px 16px; }
.servicio-categoria { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; color: var(--ah-marino-medio); text-transform: uppercase; letter-spacing: .03em; }
.servicio-nombre { font-size: 17px; font-weight: 700; color: var(--ah-marino); margin: 6px 0 6px; line-height: 1.3; letter-spacing: 0; }
.servicio-descripcion { font-size: 14px; color: var(--ah-suave); margin: 0 0 10px; display: -webkit-box; -webkit-line-clamp: 3; line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.servicio-info { list-style: none; padding: 0; margin: 0 0 12px; display: grid; gap: 4px; font-size: 13px; color: var(--ah-marino); }
.servicio-info li { display: flex; gap: 6px; align-items: center; }
.servicio-info .icon { color: var(--ah-marino-medio); }
.servicio-botones { display: flex; gap: 8px; flex-wrap: wrap; margin-top: auto; }
.rejilla-servicios.compacta .servicio-imagen { aspect-ratio: 16 / 7; }
.rejilla-servicios.compacta .servicio-descripcion { -webkit-line-clamp: 2; line-clamp: 2; }
.enlace-mas { font-weight: 600; color: var(--ah-primario); }
.cta-servicios { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; margin: 48px 0 8px; padding: 24px 28px; border-radius: var(--ah-radio); background: var(--ah-marino); color: #fff; }
.cta-servicios > .icon { font-size: 40px; color: var(--ah-coral); }
.cta-servicios > div { flex: 1; min-width: 220px; }
.cta-servicios .cta-titulo { font-size: 20px; font-weight: 800; margin: 0 0 4px; color: #fff; }
.cta-servicios p { margin: 0; color: rgba(255,255,255,.85); }
/* Panel: categorías de servicios en línea */
.lista-categorias-admin { display: grid; gap: 8px; }
.fila-categoria { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--ah-borde); }
.fila-categoria > .icon { width: 28px; font-size: 18px; color: var(--ah-marino-medio); }
.fila-categoria input[name=nombre] { flex: 1 1 200px; max-width: 280px; }
.fila-categoria input[name=icono] { max-width: 160px; }
.fila-categoria input[name=orden] { max-width: 80px; }
.categoria { flex-shrink: 0; }   /* Que las categorías largas no se monten unas sobre otras */
.servicio-info .icon { font-size: 14px; width: 16px; }
.servicio-precio { font-weight: 700; }
.servicio-botones .tf-btn { flex: 1 1 auto; justify-content: center; padding: 9px 14px; font-size: 14px; min-height: 0; }
.servicio-botones .tf-btn .icon { font-size: 14px; }
.etiqueta-servicio { z-index: 1; color: #fff !important; }
#arQuitarImagen[hidden] { display: none; }

/* Barra «Guardar» fija en la parte de abajo de los editores largos (blog y servicios) */
.barra-guardar-fija { position: sticky; bottom: 0; z-index: 20; display: flex; justify-content: flex-end; align-items: center; gap: 16px;
    margin-top: 8px; padding: 12px 16px; background: #fff; border: 1px solid var(--ah-borde); border-radius: 14px; box-shadow: 0 -6px 20px rgba(1,36,70,.08); }

/* Pasos del asistente en móvil: números redondos que se pueden tocar para ir directo a cada apartado */
@media (max-width: 767px) {
    .pasos-asistente { gap: 4px; }
    .pasos-asistente li::before { display: none; }
    .pasos-asistente li > a, .pasos-asistente li > span { align-items: center; text-align: center; gap: 4px; padding: 4px 0; min-height: 44px; }
    .pasos-asistente .numero { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%;
        border: 1.5px solid var(--ah-borde); background: #fff; font-weight: 700; color: var(--ah-suave); }
    .pasos-asistente li.hecho .numero { border-color: var(--ah-marino-medio); color: var(--ah-marino); }
    .pasos-asistente li.actual .numero { background: var(--ah-marino); border-color: var(--ah-marino); color: #fff; }
    .pasos-asistente .texto, .pasos-asistente li.actual .texto { display: block; font-size: 11px; line-height: 1.2; }
    .pasos-asistente li > a .numero { box-shadow: 0 1px 4px rgba(1,36,70,.12); }
}
.barra-guardar-fija .respuesta-form { flex: 1; margin: 0; } .barra-guardar-fija .respuesta-form:not(:empty) + span { display: none; }

/* Panel · Denuncias: separa lo denunciado del texto de la denuncia */
.denuncia-bloque { padding: 12px 16px; border-radius: 10px; margin-bottom: 10px; border-left: 4px solid; }
.denuncia-etiqueta { display: block; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .4px; margin-bottom: 4px; }
.denuncia-objeto { background: var(--ah-fondo); border-color: var(--ah-marino); }
.denuncia-objeto .denuncia-etiqueta { color: var(--ah-marino); }
.denuncia-texto { background: #fff4e5; border-color: #e08a00; }
.denuncia-texto .denuncia-etiqueta { color: #9a5b00; }

/* =====================================================================
   PIE DE PÁGINA (rediseño): llamada a la acción, marca y columnas más limpias
   ===================================================================== */
.pie-ah { padding-top: 56px; }
.pie-cta { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap;
    padding: 28px 32px; border-radius: var(--ah-radio); background: linear-gradient(120deg, var(--ah-marino-medio), #0b3157);
    border: 1px solid rgba(255,255,255,.08); }
.pie-cta-titulo { color: #fff; font-size: 22px; font-weight: 800; margin-bottom: 4px; }
.pie-cta p { color: rgba(255,255,255,.75); margin: 0; }
.pie-cta-botones { display: flex; gap: 12px; flex-wrap: wrap; }
.pie-cta-botones .icon { margin-right: 6px; }
.tf-btn.pie-boton-claro { background: transparent; color: #fff; border: 2px solid rgba(255,255,255,.6); }
.tf-btn.pie-boton-claro:hover { background: #fff; color: var(--ah-marino); }
.pie-ah .inner-footer { padding-top: 48px; }
.pie-marca .footer-logo { display: inline-block; margin-bottom: 14px; }
.pie-marca p { color: rgba(255,255,255,.7); font-size: 14px; line-height: 1.6; margin-bottom: 14px; }
.pie-ventajas { margin-bottom: 16px; }
.pie-ventajas li { color: rgba(255,255,255,.85); font-size: 14px; display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.pie-ventajas .icon { color: var(--ah-coral); }
.pie-contacto { display: inline-flex; align-items: center; gap: 8px; color: #fff; font-weight: 600; font-size: 14px; margin-bottom: 18px; }
.pie-contacto:hover { color: var(--ah-coral); }
.pie-redes { display: flex; gap: 10px; }
.pie-redes a { width: 38px; height: 38px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
    background: rgba(255,255,255,.08); color: #fff; transition: .2s; }
.pie-redes a:hover { background: var(--ah-primario); }
/* Títulos de columna con una pequeña línea coral debajo */
/* (solo escritorio: en móvil la plantilla usa ::after para el icono del acordeón) */
@media (min-width: 768px) {
    .pie-titulo { position: relative; padding-bottom: 10px; }
    .pie-titulo::after { content: ""; position: absolute; left: 0; bottom: 0; width: 28px; height: 3px; border-radius: 2px; background: var(--ah-coral); }
}
.pie-ah .navigation-menu-footer li { margin-bottom: 4px; }
.pie-ah .navigation-menu-footer a { color: rgba(255,255,255,.7); transition: color .2s, padding-left .2s; }
.pie-ah .navigation-menu-footer a:hover { color: #fff; padding-left: 4px; }
/* Últimos anuncios: una línea por anuncio con icono */
.pie-ultimos a { display: flex; align-items: center; gap: 8px; }
.pie-ultimos a span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.pie-ultimos a::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--ah-coral); flex-shrink: 0; }
.pie-ah .bottom-footer { background: rgba(0,0,0,.18); margin-top: 32px; }
.pie-ah .bottom-footer .content-footer-bottom { border-top: 0; padding: 18px 0; }
.pie-ah .copyright, .pie-ah .menu-bottom a { color: rgba(255,255,255,.65); font-size: 13px; }
.pie-ah .copyright a, .pie-ah .menu-bottom a:hover { color: #fff; }
@media (max-width: 767px) {
    .pie-ah { padding-top: 32px; }
    .pie-cta { padding: 22px 20px; }
    .pie-cta-titulo { font-size: 19px; }
    .pie-cta-botones, .pie-cta-botones .tf-btn { width: 100%; justify-content: center; }
    .pie-marca { margin-bottom: 20px; }
    .pie-ah .content-footer-bottom { flex-direction: column; align-items: flex-start; gap: 10px; }
    .pie-ah .menu-bottom { display: flex; flex-wrap: wrap; gap: 6px 16px; }
    .pie-ah .menu-bottom li { margin: 0; }
}
