/* main */
.main {
    background-color: var(--colorPrincipal);
    padding: 0 0 5rem 0;
}

.titulo-seccion {
    font-size: 3rem;
    text-align: center;
    margin-bottom: 0;
    padding: 5rem 2rem;
    color: var(--blanco);
    text-transform: uppercase;
}


.sub-seccion {
    font-size: 2rem;
    text-align: center;
    margin-bottom: 0;
    padding: 2rem;
    color: var(--blanco);
    text-transform: uppercase;
}

.grid-destacados {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: 2rem;
    padding: 0 0 2rem 0
}

@media (min-width: 768px){ 
    .grid-destacados {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (min-width: 992px) {
    .grid-destacados {
        grid-template-columns: repeat(3, 1fr);
    }
}

.fa-heart:hover{
    color:red;
}

.fa-whatsapp:hover{
    color:green
}

.options:hover{
    color:burlywood;
}

.btn-edit{
    display: inline-flex;
    padding: .5rem;
    border: 1px solid orange;
    border-radius: 5px;
    color: orange;
    transition: .3s;
}

.btn-edit:hover{
    display: inline-flex;
    padding: .5rem;
    border: 1px solid white;
    border-radius: 5px;
    color: white;
    background-color: orange;
}

.btn-success{
    display: inline-flex;
    padding: .5rem;
    border: 1px solid green;
    border-radius: 5px;
    color: green;
    transition: .3s;
}
.btn-success:hover{
    display: inline-flex;
    padding: .5rem;
    border: 1px solid white;
    border-radius: 5px;
    color: white;
    background-color: green;
}

.btn-error{
    display: inline-flex;
    padding: .5rem;
    border: 1px solid red;
    border-radius: 5px;
    color: red;
    transition: .3s;
    background-color: transparent;
}
.btn-error:hover{
    display: inline-flex;
    padding: .5rem;
    border: 1px solid white;
    border-radius: 5px;
    color: white;
    background-color: red;
}

.radio-success{
    color:green;
    font-size: .5rem;
    transition: .3s;
    cursor: pointer;
}

.radio-success:hover{
    scale: 1.1;
}

.radio-error{
    color:red;
    font-size: .5rem;
    transition: .3s;
}

.radio-error:hover{
    scale: 1.1;
}

input[type="search"]::-webkit-search-cancel-button {
  display: none;
  -webkit-appearance: none;
}

/* .boton-busqueda:hover{
    background-color: #000;
    scale: 1.2;
    color:#ff6600;
} */

pre{
    white-space: pre-wrap;
    word-wrap: break-word;
    font-family: Arial, Helvetica, sans-serif;
}

/* Estilos del botón flotante */
.whatsapp-float {
    position: fixed;
    width: 60px;
    height: 60px;
    bottom: 20px;
    right: 20px;
    background-color: #25D366;
    color: white;
    border-radius: 50%;
    text-align: center;
    font-size: 30px;
    box-shadow: 2px 2px 5px rgba(0,0,0,0.3);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.2s;
}

.whatsapp-float:hover {
    transform: scale(1.1);
}

@media print {
    .whatsapp-float {
        display: none !important;
    }

    .no-print {
        display: none !important;
    }
}

/* Ocultar por defecto en la web */
.only-print {
    display: none;
}

@media print {
    /* Mostrar solo al imprimir */
    .only-print {
        display: block !important;
        text-align: center;
        font-size: 12px;
        color: #555;
        margin-top: 20px;
        border-top: 1px solid #ccc;
        padding-top: 10px;
    }

    /* Opcional: ocultar el resto del footer real si no lo quieres en papel */
   
}

@media print {
    /* Fuerza un salto de página ANTES del elemento */
    .salto-pagina {
        break-before: page;
        /* Compatibilidad con navegadores antiguos */
        page-break-before: always;
    }

    /* Evita que un elemento se corte entre dos páginas */
    .evitar-corte {
        break-inside: avoid;
    }
}

/* ══════════════════════════════════════════════════════════════════
   Nocturne — páginas públicas (Inicio, Listado, Contacto). Los
   componentes (.btn, .card, .field, .input, .tag) vienen de nocturne.css.
   ══════════════════════════════════════════════════════════════════ */
body {
    background: var(--color-bg);
}

.pub-hero {
    max-width: 1280px;
    margin: 0 auto;
    width: 100%;
    padding: 72px var(--space-8) 40px;
    position: relative;
    background: radial-gradient(120% 60% at 85% -10%, color-mix(in srgb, var(--color-accent-900) 55%, transparent), transparent 60%);
}

/* Cuando la inmobiliaria tiene imagen de portada cargada, se usa como
   fondo del hero (vía inline style, la URL es dinámica). Sin portada el
   hero no reserva alto extra: se ajusta al contenido de texto solamente. */
.pub-hero--portada {
    min-height: 360px;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    overflow: hidden;
}

.pub-hero--portada::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(100deg, var(--color-bg) 12%, color-mix(in srgb, var(--color-bg) 62%, transparent) 42%, transparent 75%),
        radial-gradient(120% 60% at 85% -10%, color-mix(in srgb, var(--color-accent-900) 35%, transparent), transparent 60%);
    pointer-events: none;
}

.pub-hero--portada .pub-hero__intro,
.pub-hero--portada .pub-hero__search {
    position: relative;
    z-index: 1;
}

.pub-hero__intro {
    max-width: 640px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.pub-hero--portada .pub-hero__intro {
    min-height: 260px;
}

.pub-hero__kicker {
    font-size: 12px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--color-accent-300);
    margin-bottom: var(--space-3);
}

.pub-hero__intro h1 {
    font-size: 48px;
    line-height: 1.08;
    margin-bottom: var(--space-4);
}

.pub-hero__lead {
    font-size: 17px;
    opacity: 0.75;
    max-width: 520px;
}

.pub-hero__search {
    margin-top: 40px;
    padding: var(--space-6);
}

.pub-section {
    max-width: 1280px;
    margin: 0 auto;
    width: 100%;
    padding: 24px var(--space-8) 80px;
}

.pub-section__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: var(--space-6);
    flex-wrap: wrap;
    gap: var(--space-3);
}

.pub-section__head h2,
.pub-section__head h1 {
    font-size: 26px;
    margin: 0;
}

.pub-grid {
    display: grid;
    /* auto-fill (no auto-fit): si hay menos propiedades que columnas, las
       columnas vacías quedan como espacio libre en vez de estirar las
       cards existentes para llenar la fila (lo que deformaba las fotos). */
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: var(--space-6);
}

.pub-card--filler {
    background: color-mix(in srgb, var(--color-accent) 6%, var(--color-surface));
    border: 1px dashed var(--color-accent-800);
}

.pub-card--filler .pub-card__image {
    display: flex;
    align-items: center;
    justify-content: center;
    background: color-mix(in srgb, var(--color-accent) 9%, var(--color-surface));
}

.pub-card--filler .pub-card__image img {
    width: auto;
    height: auto;
    max-width: 55%;
    max-height: 55%;
    object-fit: contain;
    opacity: 0.9;
}

.pub-card--filler .pub-card__body {
    text-align: center;
    align-items: center;
    justify-content: center;
    gap: 4px;
}

.pub-card--filler .card-title {
    font-size: 15px;
}

.pub-card-link {
    text-decoration: none;
    color: inherit;
    display: block;
    height: 100%;
}

.pub-card {
    padding: 0;
    overflow: hidden;
    height: 100%;
}

.pub-card__image {
    position: relative;
    height: 190px;
    overflow: hidden;
    flex: none;
}

.pub-card__image picture,
.pub-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.pub-card__image source {
    display: none;
}

.pub-card__image .tag {
    position: absolute;
    top: 10px;
    left: 10px;
}

.pub-card__body {
    padding: var(--space-4);
    display: flex;
    flex-direction: column;
    flex: 1;
}

.pub-card__footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: auto;
    padding-top: var(--space-3);
}

.pub-card__price {
    font-family: var(--font-heading);
    font-size: 17px;
}

.pub-listado {
    max-width: 1280px;
    margin: 0 auto;
    width: 100%;
    padding: var(--space-6) var(--space-8) 80px;
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: var(--space-8);
}

@media (max-width: 860px) {
    .pub-listado {
        grid-template-columns: 1fr;
    }
}

.pub-listado__filters {
    align-self: start;
    padding: var(--space-6);
    gap: var(--space-4);
}

.pub-listado__filters h3 {
    font-size: 16px;
}

/* La búsqueda es un partial compartido con la hero card de Inicio (ancha,
   varias columnas); acá, en la columna angosta del listado, siempre va en
   una sola columna. */
.pub-listado__filters .busqueda__formulario {
    grid-template-columns: 1fr;
}

.pub-listado__filters .busqueda-orden,
.pub-listado__filters #orden {
    max-width: none;
    min-width: 0;
    width: 100%;
}

.pub-contacto {
    max-width: 960px;
    margin: 0 auto;
    width: 100%;
    padding: 64px var(--space-8) 100px;
    display: grid;
    grid-template-columns: 1fr 1.3fr;
    gap: 64px;
}

@media (max-width: 780px) {
    .pub-contacto {
        grid-template-columns: 1fr;
    }
}

.pub-contacto__info h1 {
    font-size: 36px;
    margin-bottom: var(--space-4);
}

.pub-contacto__item {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    margin-top: var(--space-4);
}

.pub-contacto__item .material-symbols-outlined {
    color: var(--color-accent);
    flex: none;
}

.pub-contacto__item p {
    margin: 0;
    font-size: 14px;
}

.pub-contacto__form {
    padding: var(--space-6);
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}