/* ═══════════════════════════════════════════════════════
   INMOVILLA CONNECTOR — STYLES v3.0
   Professional Real Estate Layouts
   ═══════════════════════════════════════════════════════ */

:root {
    --inmo-primary: #1a3a5c;
    --inmo-primary-light: #2a5a8c;
    --inmo-accent: #c8963e;
    --inmo-accent-light: #dab36a;
    /* Accessible text colors for colored surfaces (computed from admin colors when set) */
    --inmo-on-primary: #ffffff;
    --inmo-on-accent: #000000;
    --inmo-bg: #f8f9fa;
    --inmo-card-bg: #ffffff;
    --inmo-text: #2d3436;
    --inmo-text-light: #636e72;
    --inmo-border: #e9ecef;
    --inmo-shadow: 0 2px 12px rgba(0,0,0,.08);
    --inmo-shadow-hover: 0 8px 30px rgba(0,0,0,.12);
    --inmo-radius: 12px;
    --inmo-radius-sm: 8px;
    --inmo-transition: .25s cubic-bezier(.4,0,.2,1);
    --inmo-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
}

/* ─── RESET / BASE ─── */
.inmo-search *, .inmo-grid *, .inmo-ficha *, .inmo-lightbox * {
    box-sizing: border-box;
}

/* ═══════════════════════════════════════════
   SEARCH FORM
   ═══════════════════════════════════════════ */

.inmo-search {
    background: var(--inmo-card-bg);
    border-radius: var(--inmo-radius);
    box-shadow: var(--inmo-shadow);
    padding: 28px;
    font-family: var(--inmo-font);
}

.inmo-search__fields {
    display: grid;
    gap: 16px;
}

.inmo-search--horizontal .inmo-search__fields {
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    align-items: end;
}

.inmo-search--vertical .inmo-search__fields {
    grid-template-columns: 1fr;
}

.inmo-search__label {
    display: block;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--inmo-text-light);
    margin-bottom: 6px;
}

.inmo-search__select,
.inmo-search__input {
    width: 100%;
    padding: 12px 14px;
    border: 1.5px solid var(--inmo-border);
    border-radius: var(--inmo-radius-sm);
    font-size: 14px;
    color: var(--inmo-text);
    background: var(--inmo-card-bg);
    transition: border-color var(--inmo-transition), box-shadow var(--inmo-transition);
    appearance: none;
    font-family: var(--inmo-font);
}

.inmo-search__select {
    background-image: 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='%23636e72' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 36px;
}

.inmo-search__select:focus,
.inmo-search__input:focus {
    outline: none;
    border-color: var(--inmo-primary);
    box-shadow: 0 0 0 3px rgba(26,58,92,.12);
}

.inmo-search__price-row {
    display: flex;
    gap: 8px;
    align-items: center;
}

.inmo-search__price-sep {
    color: var(--inmo-text-light);
    flex-shrink: 0;
}

.inmo-search__advanced-toggle {
    margin-top: 16px;
}

.inmo-search__toggle-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    border: 2px solid var(--inmo-primary);
    border-radius: 10px;
    background: #fff;
    color: var(--inmo-primary);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}
.inmo-search__toggle-btn:hover { background: rgba(0,0,0,.02); }
.inmo-search__toggle-btn:focus-visible { outline: 3px solid rgba(0,0,0,.35); outline-offset: 2px; }

.inmo-search__toggle-btn:hover {
    color: var(--inmo-primary-light);
}

.inmo-search__advanced {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--inmo-border);
    animation: inmo-slideDown .3s ease;
}

@keyframes inmo-slideDown {
    from { opacity: 0; transform: translateY(-8px); }
    to { opacity: 1; transform: translateY(0); }
}

.inmo-search__adv-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 12px;
}

.inmo-search__check {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: var(--inmo-text);
    cursor: pointer;
}

.inmo-search__check input[type="checkbox"] {
    accent-color: var(--inmo-primary);
    width: 16px;
    height: 16px;
}

.inmo-search__field--inline {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.inmo-search__field--inline label {
    font-size: 13px;
    color: var(--inmo-text-light);
}

.inmo-search__input--small {
    width: 100%;
    max-width: 120px;
}

.inmo-search__actions {
    margin-top: 20px;
    display: flex;
    justify-content: flex-end;
}

.inmo-search__submit {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 13px 32px;
    background: #fff;
    color: var(--inmo-primary);
    border: 2px solid var(--inmo-primary);
    border-radius: var(--inmo-radius-sm);
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    transition: background var(--inmo-transition), transform var(--inmo-transition), box-shadow var(--inmo-transition);
    font-family: var(--inmo-font);
}

/* Ensure nested text inherits the intended contrast color */
.inmo-search__submit *,
.inmo-searchbar__submit * {
    color: inherit;
}

.inmo-search__submit:hover {
    background: color-mix(in srgb, var(--inmo-primary) 10%, white);
    transform: translateY(-1px);
}

.inmo-search__submit:active {
    transform: translateY(0);
}

/* ═══════════════════════════════════════════
   RESULTS HEADER
   ═══════════════════════════════════════════ */

.inmo-results__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 1.25rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid #e5e7eb;
}

.inmo-results__count {
    color: var(--inmo-text-light);
    font-size: 14px;
    margin: 0;
    font-family: var(--inmo-font);
}

.inmo-sort {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.inmo-sort__label {
    font-size: 13px;
    color: var(--inmo-text-light);
    white-space: nowrap;
}
.inmo-sort__select {
    font-size: 13px;
    padding: 6px 28px 6px 10px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%236b7280' viewBox='0 0 16 16'%3E%3Cpath d='M1.646 4.646a.5.5 0 01.708 0L8 10.293l5.646-5.647a.5.5 0 01.708.708l-6 6a.5.5 0 01-.708 0l-6-6a.5.5 0 010-.708z'/%3E%3C/svg%3E") no-repeat right 8px center;
    -webkit-appearance: none;
    appearance: none;
    cursor: pointer;
    color: var(--inmo-text);
    font-family: var(--inmo-font);
}
.inmo-sort__select:focus {
    outline: 2px solid var(--inmo-primary);
    outline-offset: -1px;
}

/* ═══════════════════════════════════════════
   CARD GRID
   ═══════════════════════════════════════════ */

.inmo-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    font-family: var(--inmo-font);
}

.inmo-grid[data-columns="2"] { grid-template-columns: repeat(2, 1fr); }
.inmo-grid[data-columns="4"] { grid-template-columns: repeat(4, 1fr); }

@media (max-width: 980px) {
    .inmo-grid { grid-template-columns: repeat(2, 1fr); }
    .inmo-grid[data-columns="4"] { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
    .inmo-grid { grid-template-columns: 1fr !important; }
}

/* ═══════════════════════════════════════════
   PROPERTY CARD
   ═══════════════════════════════════════════ */

.inmo-card {
    background: var(--inmo-card-bg);
    border-radius: var(--inmo-radius);
    overflow: hidden;
    box-shadow: var(--inmo-shadow);
    transition: box-shadow var(--inmo-transition), transform var(--inmo-transition);
}

.inmo-card:hover {
    box-shadow: var(--inmo-shadow-hover);
    transform: translateY(-4px);
}

.inmo-card__image-link {
    display: block;
    position: relative;
    overflow: hidden;
    aspect-ratio: 4/3;
    background: var(--inmo-bg);
}

.inmo-card__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .4s cubic-bezier(.4,0,.2,1);
}

.inmo-card:hover .inmo-card__image {
    transform: scale(1.05);
}

.inmo-card__image--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--inmo-bg);
}

.inmo-card__badge {
    position: absolute;
    top: 12px;
    left: 12px;
    background: var(--inmo-primary);
    color: var(--inmo-on-primary);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    padding: 5px 12px;
    border-radius: 4px;
    z-index: 2;
}

.inmo-card__photo-count {
    position: absolute;
    bottom: 12px;
    right: 12px;
    background: rgba(0,0,0,.65);
    color: #fff;
    font-size: 12px;
    padding: 4px 10px;
    border-radius: 4px;
    display: flex;
    align-items: center;
    gap: 4px;
    z-index: 2;
}

.inmo-card__body {
    padding: 18px 20px 20px;
}

.inmo-card__price {
    font-size: 22px;
    font-weight: 800;
    color: var(--inmo-primary);
    margin-bottom: 6px;
    line-height: 1.2;
}

.inmo-card__title {
    font-size: 15px;
    font-weight: 600;
    margin: 0 0 8px;
    line-height: 1.4;
}

.inmo-card__title a {
    color: var(--inmo-text);
    text-decoration: none;
}

.inmo-card__title a:hover {
    color: var(--inmo-primary);
}

.inmo-card__location {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 13px;
    color: var(--inmo-text-light);
    margin-bottom: 12px;
}

.inmo-card__location svg {
    flex-shrink: 0;
    color: var(--inmo-accent);
}

.inmo-card__features {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    padding-top: 12px;
    border-top: 1px solid var(--inmo-border);
}

.inmo-card__feat {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 13px;
    color: var(--inmo-text-light);
    white-space: nowrap;
}

.inmo-card__feat svg {
    color: var(--inmo-primary);
    flex-shrink: 0;
}

.inmo-card__ref {
    font-size: 11px;
    color: #adb5bd;
    margin-top: 8px;
    text-transform: uppercase;
    letter-spacing: .04em;
}

/* ═══════════════════════════════════════════
   PAGINATION
   ═══════════════════════════════════════════ */

.inmo-pagination {
    display: flex;
    justify-content: center;
    gap: 6px;
    margin-top: 40px;
    flex-wrap: wrap;
    font-family: var(--inmo-font);
}

.inmo-pagination a,
.inmo-pagination span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 12px;
    border-radius: var(--inmo-radius-sm);
    font-size: 14px;
    text-decoration: none;
    transition: all var(--inmo-transition);
}

.inmo-pagination a {
    background: var(--inmo-card-bg);
    color: var(--inmo-text);
    border: 1px solid var(--inmo-border);
}

.inmo-pagination a:hover {
    background: var(--inmo-primary);
    color: #fff;
    border-color: var(--inmo-primary);
}

.inmo-pagination .current {
    background: var(--inmo-primary);
    color: #fff;
    border: 1px solid var(--inmo-primary);
    font-weight: 700;
}

.inmo-pagination .dots {
    border: none;
    color: var(--inmo-text-light);
}

/* ═══════════════════════════════════════════
   EMPTY STATE
   ═══════════════════════════════════════════ */

.inmo-empty {
    text-align: center;
    padding: 60px 20px;
    color: var(--inmo-text-light);
    font-family: var(--inmo-font);
}

.inmo-empty p {
    font-size: 16px;
    margin: 16px 0 24px;
}

/* ═══════════════════════════════════════════
   BUTTONS
   ═══════════════════════════════════════════ */

.inmo-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 11px 22px;
    border-radius: var(--inmo-radius-sm);
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    transition: all var(--inmo-transition);
    border: 2px solid transparent;
    font-family: var(--inmo-font);
}

.inmo-btn--primary {
    background: var(--inmo-primary);
    color: #fff;
    border-color: var(--inmo-primary);
}

.inmo-btn--primary:hover {
    background: var(--inmo-primary-light);
    border-color: var(--inmo-primary-light);
    color: #fff;
}

.inmo-btn--outline {
    background: transparent;
    color: var(--inmo-primary);
    border-color: var(--inmo-primary);
}

.inmo-btn--outline:hover {
    background: var(--inmo-primary);
    color: var(--inmo-on-primary);
}

.inmo-btn--full {
    width: 100%;
    justify-content: center;
}

/* ═══════════════════════════════════════════
   FICHA COMPLETA
   ═══════════════════════════════════════════ */

.inmo-ficha {
    font-family: var(--inmo-font);
    color: var(--inmo-text);
    max-width: 1200px;
    margin: 0 auto;
}

/* Header */
.inmo-ficha__header {
    margin-bottom: 24px;
}

.inmo-ficha__header-top {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
}

.inmo-ficha__badge {
    background: var(--inmo-primary);
    color: var(--inmo-on-primary);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    padding: 5px 14px;
    border-radius: 4px;
}

.inmo-ficha__ref {
    font-size: 13px;
    color: var(--inmo-text-light);
}

.inmo-ficha__title {
    font-size: 28px;
    font-weight: 800;
    line-height: 1.25;
    margin: 0 0 8px;
    color: var(--inmo-text);
}

.inmo-ficha__location {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 15px;
    color: var(--inmo-text-light);
    margin-bottom: 12px;
}

.inmo-ficha__location svg {
    color: var(--inmo-accent);
}

.inmo-ficha__price {
    font-size: 32px;
    font-weight: 800;
    color: var(--inmo-primary);
}

/* ═══════════════════════════════════════════
   GALLERY
   ═══════════════════════════════════════════ */

.inmo-gallery {
    margin-bottom: 32px;
}

.inmo-gallery__main {
    position: relative;
    border-radius: var(--inmo-radius);
    overflow: hidden;
    background: var(--inmo-bg);
    aspect-ratio: 16/9;
    cursor: pointer;
}

.inmo-gallery__hero {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: opacity .3s ease;
}

.inmo-gallery__fullscreen {
    position: absolute;
    top: 16px;
    right: 16px;
    background: rgba(0,0,0,.5);
    color: #fff;
    border: none;
    border-radius: 8px;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background var(--inmo-transition);
    z-index: 3;
}

.inmo-gallery__fullscreen:hover {
    background: rgba(0,0,0,.8);
}

.inmo-gallery__nav {
    position: absolute;
    bottom: 16px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    gap: 12px;
    background: rgba(0,0,0,.55);
    padding: 6px 14px;
    border-radius: 24px;
    z-index: 3;
}

.inmo-gallery__nav-btn {
    background: none;
    border: none;
    color: #fff;
    font-size: 22px;
    cursor: pointer;
    padding: 2px 6px;
    line-height: 1;
    transition: opacity var(--inmo-transition);
}

.inmo-gallery__nav-btn:hover {
    opacity: .7;
}

.inmo-gallery__counter {
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    user-select: none;
}

.inmo-gallery__thumbs {
    display: flex;
    gap: 8px;
    margin-top: 12px;
    overflow-x: auto;
    padding-bottom: 4px;
    scrollbar-width: thin;
}

.inmo-gallery__thumb {
    flex-shrink: 0;
    width: 80px;
    height: 60px;
    border-radius: 6px;
    overflow: hidden;
    border: 2px solid transparent;
    cursor: pointer;
    opacity: .6;
    transition: all var(--inmo-transition);
    padding: 0;
    background: none;
}

.inmo-gallery__thumb:hover,
.inmo-gallery__thumb--active {
    opacity: 1;
    border-color: var(--inmo-primary);
}

.inmo-gallery__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* ═══════════════════════════════════════════
   HIGHLIGHTS BAR
   ═══════════════════════════════════════════ */

.inmo-ficha__highlights {
    display: flex;
    gap: 0;
    background: var(--inmo-card-bg);
    border-radius: var(--inmo-radius);
    box-shadow: var(--inmo-shadow);
    overflow: hidden;
    margin-bottom: 32px;
}

.inmo-highlight {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 20px 16px;
    border-right: 1px solid var(--inmo-border);
    text-align: center;
}

.inmo-highlight:last-child {
    border-right: none;
}

.inmo-highlight svg {
    color: var(--inmo-accent);
}

.inmo-highlight__value {
    font-size: 18px;
    font-weight: 800;
    color: var(--inmo-text);
}

.inmo-highlight__label {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--inmo-text-light);
}

@media (max-width: 640px) {
    .inmo-ficha__highlights {
        flex-wrap: wrap;
    }
    .inmo-highlight {
        flex: 1 1 calc(50% - 1px);
        border-bottom: 1px solid var(--inmo-border);
    }
    .inmo-highlight:nth-child(2n) {
        border-right: none;
    }
}

/* ═══════════════════════════════════════════
   CONTENT LAYOUT (MAIN + SIDEBAR)
   ═══════════════════════════════════════════ */

.inmo-ficha__content {
    display: grid;
    grid-template-columns: 1fr 360px;
    gap: 32px;
    align-items: start;
}

@media (max-width: 980px) {
    .inmo-ficha__content {
        grid-template-columns: 1fr;
    }
}

/* Sections */
.inmo-ficha__section {
    margin-bottom: 36px;
}

.inmo-ficha__section-title {
    font-size: 20px;
    font-weight: 700;
    margin: 0 0 18px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--inmo-primary);
    color: var(--inmo-text);
}

.inmo-ficha__description {
    font-size: 15px;
    line-height: 1.75;
    color: var(--inmo-text);
}

.inmo-ficha__description p {
    margin: 0 0 14px;
}

/* ═══════════════════════════════════════════
   DETAILS TABLE
   ═══════════════════════════════════════════ */

.inmo-details {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0;
}

@media (max-width: 480px) {
    .inmo-details { grid-template-columns: 1fr; }
}

.inmo-details__item {
    display: flex;
    justify-content: space-between;
    padding: 12px 16px;
    border-bottom: 1px solid var(--inmo-border);
}

.inmo-details__item:nth-child(odd) {
    background: var(--inmo-bg);
}

.inmo-details__label {
    font-size: 14px;
    color: var(--inmo-text-light);
}

.inmo-details__value {
    font-size: 14px;
    font-weight: 600;
    color: var(--inmo-text);
}

/* ═══════════════════════════════════════════
   EXTRAS GRID
   ═══════════════════════════════════════════ */

.inmo-extras {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 10px;
}

.inmo-extras__item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    background: var(--inmo-bg);
    border-radius: 6px;
    font-size: 14px;
    color: var(--inmo-text);
}

.inmo-extras__item svg {
    color: #27ae60;
    flex-shrink: 0;
}

/* ═══════════════════════════════════════════
   ENERGY CERTIFICATION
   ═══════════════════════════════════════════ */

.inmo-energy__row {
    margin-bottom: 20px;
}

.inmo-energy__type {
    display: block;
    font-size: 14px;
    font-weight: 600;
    color: var(--inmo-text);
    margin-bottom: 10px;
}

.inmo-energy__scale {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.inmo-energy__bar {
    display: flex;
    align-items: center;
    padding: 4px 12px;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    border-radius: 3px;
    opacity: .35;
    transition: all var(--inmo-transition);
    position: relative;
}

.inmo-energy__bar:nth-child(1) { width: 25%; }
.inmo-energy__bar:nth-child(2) { width: 35%; }
.inmo-energy__bar:nth-child(3) { width: 45%; }
.inmo-energy__bar:nth-child(4) { width: 55%; }
.inmo-energy__bar:nth-child(5) { width: 65%; }
.inmo-energy__bar:nth-child(6) { width: 80%; }
.inmo-energy__bar:nth-child(7) { width: 100%; }

.inmo-energy__bar--active {
    opacity: 1;
    padding: 8px 14px;
    font-size: 14px;
    box-shadow: 0 2px 8px rgba(0,0,0,.2);
}

.inmo-energy__val {
    margin-left: auto;
    font-size: 11px;
    font-weight: 400;
    opacity: .9;
}

/* ═══════════════════════════════════════════
   VIDEOS
   ═══════════════════════════════════════════ */

.inmo-videos {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 16px;
    margin-bottom: 16px;
}

.inmo-videos__item {
    border-radius: var(--inmo-radius-sm);
    overflow: hidden;
    aspect-ratio: 16/9;
    background: #000;
}

.inmo-videos__item iframe {
    width: 100%;
    height: 100%;
}

.inmo-tour-links {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

/* ═══════════════════════════════════════════
   MAP
   ═══════════════════════════════════════════ */

.inmo-map {
    border-radius: var(--inmo-radius);
    overflow: hidden;
    box-shadow: var(--inmo-shadow);
}

.inmo-map iframe {
    display: block;
}

/* ═══════════════════════════════════════════
   SIDEBAR
   ═══════════════════════════════════════════ */

.inmo-sidebar-card {
    background: var(--inmo-card-bg);
    border-radius: var(--inmo-radius);
    box-shadow: var(--inmo-shadow);
    padding: 24px;
    margin-bottom: 20px;
}

.inmo-sidebar-card--price {
    background: var(--inmo-primary);
    color: #fff;
    text-align: center;
}

.inmo-sidebar-card__price {
    font-size: 32px;
    font-weight: 800;
    margin-bottom: 4px;
}

.inmo-sidebar-card__op {
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .06em;
    opacity: .85;
}

.inmo-sidebar-card__ref {
    font-size: 12px;
    margin-top: 8px;
    opacity: .65;
}

.inmo-sidebar-card__title {
    font-size: 16px;
    font-weight: 700;
    margin: 0 0 16px;
    color: var(--inmo-text);
}

/* ═══════════════════════════════════════════
   CONTACT FORM
   ═══════════════════════════════════════════ */

.inmo-contact-form__field {
    margin-bottom: 12px;
}

.inmo-contact-form__input {
    width: 100%;
    padding: 11px 14px;
    border: 1.5px solid var(--inmo-border);
    border-radius: var(--inmo-radius-sm);
    font-size: 14px;
    color: var(--inmo-text);
    font-family: var(--inmo-font);
    transition: border-color var(--inmo-transition);
    resize: vertical;
}

.inmo-contact-form__input:focus {
    outline: none;
    border-color: var(--inmo-primary);
    box-shadow: 0 0 0 3px rgba(26,58,92,.1);
}

.inmo-contact-form__status {
    margin-top: 12px;
    font-size: 13px;
    text-align: center;
    min-height: 20px;
}

.inmo-contact-form__status--success { color: #27ae60; }
.inmo-contact-form__status--error { color: #e74c3c; }

/* ═══════════════════════════════════════════
   SHARE BUTTONS
   ═══════════════════════════════════════════ */

.inmo-share {
    display: flex;
    gap: 10px;
}

.inmo-share__btn {
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    border: 1.5px solid var(--inmo-border);
    background: var(--inmo-card-bg);
    color: var(--inmo-text-light);
    cursor: pointer;
    transition: all var(--inmo-transition);
    text-decoration: none;
}

.inmo-share__btn:hover {
    border-color: var(--inmo-primary);
    color: var(--inmo-primary);
}

.inmo-share__btn--whatsapp:hover {
    border-color: #25d366;
    color: #25d366;
    background: rgba(37,211,102,.08);
}

/* ═══════════════════════════════════════════
   LIGHTBOX
   ═══════════════════════════════════════════ */

.inmo-lightbox {
    position: fixed;
    inset: 0;
    z-index: 999999;
    background: rgba(0,0,0,.92);
    display: flex;
    align-items: center;
    justify-content: center;
    backdrop-filter: blur(8px);
}

.inmo-lightbox[hidden] {
    display: none;
}

.inmo-lightbox__close {
    position: absolute;
    top: 20px;
    right: 24px;
    background: none;
    border: none;
    color: #fff;
    font-size: 36px;
    cursor: pointer;
    z-index: 10;
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity var(--inmo-transition);
}

.inmo-lightbox__close:hover { opacity: .7; }

.inmo-lightbox__prev,
.inmo-lightbox__next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(255,255,255,.1);
    border: none;
    color: #fff;
    font-size: 40px;
    cursor: pointer;
    z-index: 10;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background var(--inmo-transition);
}

.inmo-lightbox__prev { left: 20px; }
.inmo-lightbox__next { right: 20px; }

.inmo-lightbox__prev:hover,
.inmo-lightbox__next:hover {
    background: rgba(255,255,255,.25);
}

.inmo-lightbox__content {
    max-width: 90vw;
    max-height: 85vh;
    display: flex;
    align-items: center;
    justify-content: center;
}

.inmo-lightbox__img {
    max-width: 100%;
    max-height: 85vh;
    object-fit: contain;
    border-radius: 4px;
}

.inmo-lightbox__counter {
    position: absolute;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%);
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    background: rgba(0,0,0,.5);
    padding: 6px 16px;
    border-radius: 20px;
}

/* ═══════════════════════════════════════════
   RESPONSIVE MOBILE
   ═══════════════════════════════════════════ */

@media (max-width: 768px) {
    .inmo-search {
        padding: 20px;
    }

    .inmo-search--horizontal .inmo-search__fields {
        grid-template-columns: 1fr;
    }

    .inmo-ficha__title {
        font-size: 22px;
    }

    .inmo-ficha__price {
        font-size: 26px;
    }

    .inmo-gallery__main {
        aspect-ratio: 4/3;
    }

    .inmo-gallery__thumb {
        width: 64px;
        height: 48px;
    }

    .inmo-sidebar-card__price {
        font-size: 26px;
    }

    .inmo-lightbox__prev,
    .inmo-lightbox__next {
        width: 40px;
        height: 40px;
        font-size: 28px;
    }

    .inmo-lightbox__prev { left: 8px; }
    .inmo-lightbox__next { right: 8px; }
}

/* ═══════════════════════════════════════════
   ACCESSIBILITY
   ═══════════════════════════════════════════ */

@media (prefers-reduced-motion: reduce) {
    .inmo-card, .inmo-card__image, .inmo-search__advanced,
    .inmo-gallery__hero, .inmo-energy__bar {
        transition: none !important;
        animation: none !important;
    }
    .inmo-card:hover {
        transform: none;
    }
}

/* Focus visible */
.inmo-search__select:focus-visible,
.inmo-search__input:focus-visible,
.inmo-contact-form__input:focus-visible,
.inmo-btn:focus-visible,
.inmo-gallery__thumb:focus-visible,
.inmo-share__btn:focus-visible {
    outline: 2px solid var(--inmo-primary);
    outline-offset: 2px;
}

/* Skip link support */
.inmo-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
    border: 0;
}

/* ═══════════════════════════════════════════
   SEARCH BAR (COMPACT)
   ═══════════════════════════════════════════ */

.inmo-searchbar {
    font-family: var(--inmo-font);
    width: 100%;
}

.inmo-searchbar__grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 10px;
    align-items: center;
}

.inmo-searchbar__cell { grid-column: span 2; }
.inmo-searchbar__cell--map,
.inmo-searchbar__cell--adv { grid-column: span 1; }
.inmo-searchbar__cell--submit { grid-column: span 2; }

.inmo-searchbar__control {
    width: 100%;
    min-height: 44px;
    padding: 10px 12px;
    border: 1px solid rgba(0,0,0,.18);
    border-radius: 10px;
    background: #fff;
    font-size: 15px;
}

.inmo-searchbar__control:focus {
    outline: 2px solid rgba(26,58,92,.35);
    outline-offset: 1px;
    border-color: var(--inmo-primary);
}

.inmo-searchbar__submit {
    width: 100%;
    min-height: 44px;
    border: 2px solid var(--inmo-primary);
    border-radius: 10px;
    background: #fff;
    color: var(--inmo-primary);
    font-weight: 700;
    cursor: pointer;
}

.inmo-searchbar__submit:focus-visible,
.inmo-search__submit:focus-visible {
    outline: 3px solid rgba(0,0,0,.35);
    outline-offset: 2px;
}

.inmo-searchbar__submit:hover { background: color-mix(in srgb, var(--inmo-primary) 10%, white); }

.inmo-searchbar__check {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    padding: 0 10px;
    border-radius: 10px;
    background: rgba(255,255,255,.7);
    border: 1px solid rgba(0,0,0,.12);
    font-size: 14px;
}

.inmo-searchbar__advbtn {
    width: 100%;
    min-height: 44px;
    border: 2px solid var(--inmo-primary);
    border-radius: 10px;
    background: #fff;
    color: var(--inmo-primary);
    cursor: pointer;
    font-weight: 600;
}
.inmo-searchbar__advbtn:hover { background: rgba(0,0,0,.02); }
.inmo-searchbar__advbtn:focus-visible { outline: 3px solid rgba(0,0,0,.35); outline-offset: 2px; }

.inmo-searchbar__advanced {
    margin-top: 10px;
    padding: 12px;
    border: 1px solid rgba(0,0,0,.12);
    border-radius: 12px;
    background: #fff;
}

.inmo-searchbar__advanced-grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 10px;
    align-items: center;
}

/* ═══════════════════════════════════════════
   FORMIDABLE (CONTACT FORM) — ACCESSIBLE BUTTONS
   Scoped to the property layout to avoid affecting site-wide forms.
   ═══════════════════════════════════════════ */
.inmo-ficha .frm_forms .frm_button_submit,
.inmo-ficha .frm_forms button.frm_button_submit,
.inmo-ficha .frm_forms input.frm_button_submit {
    background: #fff !important;
    color: var(--inmo-primary) !important;
    border: 2px solid var(--inmo-primary) !important;
    border-radius: 10px !important;
    font-weight: 700 !important;
    min-height: 44px;
    padding: 12px 18px !important;
}

.inmo-ficha .frm_forms .frm_button_submit:hover {
    background: color-mix(in srgb, var(--inmo-primary) 10%, white) !important;
}

.inmo-ficha .frm_forms .frm_button_submit:focus-visible {
    outline: 3px solid rgba(0,0,0,.35) !important;
    outline-offset: 2px;
}

.inmo-searchbar__advanced-grid > * { grid-column: span 3; }

@media (max-width: 980px) {
    .inmo-searchbar__cell { grid-column: span 6; }
    .inmo-searchbar__cell--map,
    .inmo-searchbar__cell--adv,
    .inmo-searchbar__cell--submit { grid-column: span 6; }
    .inmo-searchbar__advanced-grid > * { grid-column: span 6; }
}

@media (max-width: 560px) {
    .inmo-searchbar__cell,
    .inmo-searchbar__cell--map,
    .inmo-searchbar__cell--adv,
    .inmo-searchbar__cell--submit { grid-column: span 12; }
    .inmo-searchbar__advanced-grid > * { grid-column: span 12; }
}

/* ═══════════════════════════════════════════
   CARD — SOLD / RENTED BADGE
   ═══════════════════════════════════════════ */

.inmo-card--vendido,
.inmo-card--alquilado {
    opacity: .85;
}

.inmo-card--vendido .inmo-card__image,
.inmo-card--alquilado .inmo-card__image {
    filter: grayscale(.35);
}

.inmo-card__sold-badge {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(-8deg);
    background: rgba(180, 40, 40, .88);
    color: #fff;
    font-size: 1.15rem;
    font-weight: 700;
    letter-spacing: .08em;
    padding: 6px 22px;
    border-radius: 4px;
    z-index: 4;
    pointer-events: none;
    text-transform: uppercase;
    box-shadow: 0 2px 12px rgba(0,0,0,.25);
}

/* ═══════════════════════════════════════════
   CARD — PRICE BLOCK / DISCOUNT
   ═══════════════════════════════════════════ */

.inmo-card__price-block {
    margin-bottom: 4px;
}

.inmo-card__discount {
    font-size: .82rem;
    line-height: 1.3;
    margin-top: 2px;
}

.inmo-card__old-price {
    color: #999;
}

.inmo-card__old-price del {
    text-decoration: line-through;
}

.inmo-card__discount-pct {
    color: #b42828;
    font-weight: 600;
    margin-left: 4px;
}

/* ═══════════════════════════════════════════
   CARD — DESCRIPTION EXCERPT
   ═══════════════════════════════════════════ */

.inmo-card__excerpt {
    font-size: .84rem;
    line-height: 1.45;
    color: #555;
    margin: 4px 0 8px;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ═══════════════════════════════════════════
   FICHA — SOLD / RENTED BADGE
   ═══════════════════════════════════════════ */

.inmo-ficha__sold-badge {
    display: inline-block;
    background: #b42828;
    color: #fff;
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: .06em;
    padding: 5px 18px;
    border-radius: 4px;
    text-transform: uppercase;
    margin-bottom: 10px;
}

/* ═══════════════════════════════════════════
   FICHA — PRICE BLOCK / DISCOUNT
   ═══════════════════════════════════════════ */

.inmo-ficha__price-block {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-bottom: 6px;
}

.inmo-ficha__discount {
    display: inline-block;
    background: #9b4444;
    color: #fff;
    font-size: .95rem;
    font-weight: 600;
    padding: 6px 16px;
    border-radius: 6px;
}

.inmo-ficha__old-price del {
    text-decoration: line-through;
    opacity: .9;
}

.inmo-ficha__discount-pct {
    margin-left: 6px;
    font-weight: 700;
}

/* ═══════════════════════════════════════════
   HERO SLIDER — SECTION
   ═══════════════════════════════════════════ */

.inmo-hero {
    position: relative;
    width: 100%;
    max-width: 1400px;
    margin: 0 auto 40px;
    padding: 0 20px;
}

.inmo-hero__header {
    text-align: center;
    margin-bottom: 28px;
    padding-top: 10px;
}

.inmo-hero__title {
    font-size: clamp(1.6rem, 3.5vw, 2.4rem);
    font-weight: 700;
    color: var(--inmo-primary, #1a3a5c);
    margin: 0 0 6px;
    line-height: 1.2;
}

.inmo-hero__subtitle {
    font-size: clamp(.95rem, 1.5vw, 1.15rem);
    color: #666;
    margin: 0;
    font-weight: 400;
}

/* ── Slider wrapper ── */

.inmo-hero__slider-wrap {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
}

.inmo-hero__track-container {
    overflow: hidden;
    flex: 1;
    border-radius: 12px;
}

.inmo-hero__track {
    display: flex;
    transition: transform .45s cubic-bezier(.4, 0, .2, 1);
    gap: 16px;
    will-change: transform;
}

.inmo-hero__track.is-dragging {
    transition: none;
    cursor: grabbing;
}

/* ── Cards in slider ── */

.inmo-hero__card {
    flex: 0 0 calc((100% - (var(--slider-cols, 3) - 1) * 16px) / var(--slider-cols, 3));
    min-width: 0;
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(0,0,0,.08);
    transition: box-shadow .3s, transform .3s;
}

.inmo-hero__card:hover {
    box-shadow: 0 8px 28px rgba(0,0,0,.12);
    transform: translateY(-3px);
}

.inmo-hero__card-link {
    display: block;
    color: inherit;
    text-decoration: none;
}

.inmo-hero__card-img {
    position: relative;
    aspect-ratio: 16/10;
    overflow: hidden;
    background: #f0f0f0;
}

.inmo-hero__card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .4s ease;
}

.inmo-hero__card:hover .inmo-hero__card-img img {
    transform: scale(1.06);
}

.inmo-hero__card-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f5f5f5;
}

.inmo-hero__card-badge {
    position: absolute;
    top: 10px;
    left: 10px;
    background: var(--inmo-primary, #1a3a5c);
    color: #fff;
    font-size: .72rem;
    font-weight: 600;
    padding: 3px 10px;
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: .04em;
    z-index: 2;
}

.inmo-hero__card-discount-badge {
    position: absolute;
    top: 10px;
    right: 10px;
    background: #b42828;
    color: #fff;
    font-size: .75rem;
    font-weight: 700;
    padding: 3px 9px;
    border-radius: 4px;
    z-index: 2;
}

.inmo-hero__card-body {
    padding: 14px 16px 16px;
}

.inmo-hero__card-price {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--inmo-primary, #1a3a5c);
    margin-bottom: 4px;
    display: flex;
    align-items: baseline;
    gap: 8px;
    flex-wrap: wrap;
}

.inmo-hero__card-old-price {
    font-size: .8rem;
    font-weight: 400;
    color: #999;
}

.inmo-hero__card-old-price del {
    text-decoration: line-through;
}

.inmo-hero__card-title {
    font-size: .88rem;
    font-weight: 600;
    color: #333;
    margin: 0 0 5px;
    line-height: 1.35;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.inmo-hero__card-location {
    font-size: .78rem;
    color: #555;
    display: flex;
    align-items: center;
    gap: 4px;
    margin-bottom: 8px;
}

.inmo-hero__card-feats {
    display: flex;
    gap: 12px;
    font-size: .76rem;
    color: #666;
}

.inmo-hero__card-feats span {
    display: flex;
    align-items: center;
    gap: 2px;
    white-space: nowrap;
}

/* ── Arrows ── */

.inmo-hero__arrow {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 1px solid #ddd;
    background: rgba(255,255,255,.92);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all .25s;
    color: #555;
    z-index: 3;
    box-shadow: 0 2px 8px rgba(0,0,0,.08);
}

.inmo-hero__arrow:hover {
    background: var(--inmo-primary, #1a3a5c);
    color: #fff;
    border-color: var(--inmo-primary, #1a3a5c);
}

.inmo-hero__arrow:disabled {
    opacity: .3;
    cursor: default;
    pointer-events: none;
}

/* ── Dots ── */

.inmo-hero__dots {
    display: flex;
    justify-content: center;
    gap: 4px;
    margin-top: 18px;
}

.inmo-hero__dot {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: none;
    background: transparent;
    cursor: pointer;
    transition: all .3s;
    padding: 0;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Visual dot inside the touch target */
.inmo-hero__dot::after {
    content: '';
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 2px solid #767676;
    background: transparent;
    transition: all .3s;
    display: block;
}

.inmo-hero__dot.active::after,
.inmo-hero__dot:hover::after {
    background: var(--inmo-primary, #1a3a5c);
    border-color: var(--inmo-primary, #1a3a5c);
}

/* ═══════════════════════════════════════════
   HERO — SEARCH BAR
   ═══════════════════════════════════════════ */

.inmo-hero__search {
    margin-top: 28px;
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 4px 24px rgba(0,0,0,.10);
    padding: 0;
    overflow: visible;
}

.inmo-hero__search-tabs {
    display: flex;
    border-bottom: 2px solid #f0f0f0;
    border-top: none;
    border-left: none;
    border-right: none;
    margin: 0;
    padding: 0;
}

.inmo-hero__tab {
    flex: 1;
    text-align: center;
    padding: 14px 12px;
    font-size: .9rem;
    font-weight: 600;
    color: #555;
    cursor: pointer;
    transition: all .25s;
    position: relative;
    border-bottom: 3px solid transparent;
    margin-bottom: -2px;
    user-select: none;
}

.inmo-hero__tab:hover {
    color: var(--inmo-primary, #1a3a5c);
    background: rgba(0,0,0,.015);
}

.inmo-hero__tab.active {
    color: var(--inmo-primary, #1a3a5c);
    border-bottom-color: var(--inmo-accent, #c8963e);
}

.inmo-hero__search-fields {
    display: flex;
    align-items: center;
    padding: 14px 16px;
    gap: 10px;
}

.inmo-hero__search-field {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 8px;
    background: #f7f8fa;
    border: 1px solid #e4e7ec;
    border-radius: 10px;
    padding: 0 14px;
    height: 48px;
    transition: border-color .2s, box-shadow .2s;
}

.inmo-hero__search-field:focus-within {
    border-color: var(--inmo-primary, #1a3a5c);
    box-shadow: 0 0 0 3px rgba(26,58,92,.1);
}

.inmo-hero__search-field svg {
    flex-shrink: 0;
    color: #666;
}

.inmo-hero__search-field--city {
    flex: 1.5;
}

.inmo-hero__search-field input[type="text"] {
    flex: 1;
    border: none;
    background: transparent;
    font-size: .9rem;
    color: #333;
    outline: none;
    padding: 0;
    min-width: 0;
    height: 100%;
}

.inmo-hero__search-field input[type="text"]::placeholder {
    color: #767676;
}

.inmo-hero__select {
    flex: 1;
    border: none;
    background: transparent;
    font-size: .87rem;
    color: #333;
    outline: none;
    cursor: pointer;
    padding: 0;
    height: 100%;
    min-width: 0;
    -webkit-appearance: none;
    appearance: none;
}

.inmo-hero__search-btn {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    background: var(--inmo-primary, #1a3a5c);
    color: var(--inmo-on-primary, #fff);
    border: none;
    border-radius: 10px;
    padding: 0 24px;
    height: 48px;
    font-size: .92rem;
    font-weight: 600;
    cursor: pointer;
    transition: background .25s, transform .15s;
    white-space: nowrap;
}

.inmo-hero__search-btn:hover {
    background: color-mix(in srgb, var(--inmo-primary, #1a3a5c) 85%, black);
    transform: translateY(-1px);
}

.inmo-hero__search-btn:active {
    transform: translateY(0);
}

/* ═══════════════════════════════════════════
   HERO — RESPONSIVE
   ═══════════════════════════════════════════ */

@media (max-width: 1100px) {
    .inmo-hero__card {
        flex: 0 0 calc((100% - 16px) / 2);
        --slider-cols: 2 !important;
    }
    .inmo-hero__track {
        --slider-cols: 2 !important;
    }
}

@media (max-width: 768px) {
    .inmo-hero {
        padding: 0 12px;
    }

    .inmo-hero__card {
        flex: 0 0 100%;
        --slider-cols: 1 !important;
    }
    .inmo-hero__track {
        --slider-cols: 1 !important;
    }

    .inmo-hero__arrow {
        width: 34px;
        height: 34px;
    }

    .inmo-hero__search-tabs {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .inmo-hero__tab {
        padding: 12px 10px;
        font-size: .82rem;
        white-space: nowrap;
    }

    .inmo-hero__search-fields {
        flex-direction: column;
        padding: 12px;
        gap: 8px;
    }

    .inmo-hero__search-field,
    .inmo-hero__search-field--city {
        width: 100%;
        flex: unset;
    }

    .inmo-hero__search-btn {
        width: 100%;
        justify-content: center;
    }
}

@media (max-width: 480px) {
    .inmo-hero__arrow {
        display: none;
    }

    .inmo-hero__slider-wrap {
        gap: 0;
    }

    .inmo-hero__track-container {
        border-radius: 10px;
    }

    .inmo-hero__card-body {
        padding: 12px 14px 14px;
    }
}

/* ═══════════════════════════════════════════
   ADMIN — CPT LIST COLUMNS
   ═══════════════════════════════════════════ */

.column-inmo_photo img {
    border-radius: 3px;
    object-fit: cover;
}

.inmo-sold-badge {
    display: inline-block;
    background: #b42828;
    color: #fff;
    font-size: .72rem;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 3px;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.inmo-sold-badge.alquilado {
    background: #c07b27;
}

/* ═══════════════════════════════════════════
   PRINT
   ═══════════════════════════════════════════ */

@media print {
    body * { visibility: hidden; }
    .inmo-ficha, .inmo-ficha * { visibility: visible; }
    .inmo-ficha { position: absolute; left: 0; top: 0; width: 100%; }

    .inmo-search, .inmo-searchbar, .inmo-lightbox, .inmo-share,
    .inmo-formidable, .inmo-gallery__fullscreen,
    .inmo-gallery__nav, .inmo-gallery__thumbs, .inmo-search__actions,
    .inmo-ficha__action-btn, .inmo-sidebar-card:has(.inmo-formidable),
    .inmo-sidebar-card__whatsapp-btn,
    .inmo-sidebar-card:has(.inmo-share),
    .inmo-similar, .inmo-mortgage-calc, .inmo-breadcrumbs,
    .inmo-tour-links, .inmo-videos, header, footer, nav,
    #wpadminbar, .site-header, .site-footer { display: none !important; }

    .inmo-ficha__content { grid-template-columns: 1fr !important; }
    .inmo-ficha__sidebar { display: none !important; }
    .inmo-card { break-inside: avoid; page-break-inside: avoid; box-shadow: none; border: 1px solid #ddd; }
    .inmo-gallery__hero { max-height: 350px; object-fit: contain; }
    .inmo-ficha__header { border-bottom: 2px solid #333; padding-bottom: 0.5rem; }
    .inmo-ficha__title { font-size: 1.5rem !important; }
    .inmo-map iframe { height: 250px !important; }
    a[href]:after { content: " (" attr(href) ")"; font-size: 0.75em; color: #666; }
    .inmo-share a[href]:after, .inmo-ficha__action-btn[href]:after { content: none; }
}

/* ═══════════════════════════════════════════
   AJAX PAGINATION (v4)
   ═══════════════════════════════════════════ */

.inmo-pagination {
    display: flex;
    justify-content: center;
    margin: 2rem 0 1rem;
}

.inmo-pagination__inner {
    display: flex;
    gap: 4px;
    align-items: center;
    flex-wrap: wrap;
    justify-content: center;
}

.inmo-pagination__btn {
    min-width: 38px;
    height: 38px;
    padding: 0 10px;
    border: 1px solid #ddd;
    background: #fff;
    color: var(--inmo-primary, #1a3a5c);
    font-size: .875rem;
    font-weight: 500;
    border-radius: 4px;
    cursor: pointer;
    transition: background .15s, color .15s, border-color .15s;
    line-height: 1;
}

.inmo-pagination__btn:hover {
    background: var(--inmo-primary, #1a3a5c);
    color: #fff;
    border-color: var(--inmo-primary, #1a3a5c);
}

.inmo-pagination__btn--active {
    background: var(--inmo-accent, #c8963e);
    color: #fff;
    border-color: var(--inmo-accent, #c8963e);
    pointer-events: none;
}

.inmo-pagination__ellipsis {
    padding: 0 4px;
    color: #888;
    line-height: 38px;
}

/* Load more button */
.inmo-load-more {
    display: block;
    margin: 1.5rem auto 0;
    padding: .75rem 2.5rem;
    background: var(--inmo-primary, #1a3a5c);
    color: #fff;
    border: none;
    border-radius: 4px;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: background .15s, transform .1s;
    text-align: center;
}

.inmo-load-more:hover { background: var(--inmo-accent, #c8963e); transform: translateY(-1px); }
.inmo-load-more:disabled { opacity: .6; cursor: not-allowed; transform: none; }

/* ═══════════════════════════════════════════
   MORTGAGE CALCULATOR (v4)
   ═══════════════════════════════════════════ */

.inmo-mortgage-calc {
    background: #f8f9fa;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    padding: 1.5rem;
    margin-top: 1.5rem;
}

.inmo-mortgage-calc h3 {
    margin: 0 0 1.25rem;
    font-size: 1.05rem;
    color: var(--inmo-primary, #1a3a5c);
    display: flex;
    align-items: center;
    gap: .5rem;
}

.inmo-mortgage__field {
    margin-bottom: 1rem;
}

.inmo-mortgage__field label {
    display: flex;
    justify-content: space-between;
    font-size: .82rem;
    font-weight: 600;
    color: #444;
    margin-bottom: .35rem;
}

.inmo-mortgage__field label span {
    font-weight: 400;
    color: var(--inmo-accent, #c8963e);
}

.inmo-mortgage__field input[type="range"] {
    width: 100%;
    accent-color: var(--inmo-accent, #c8963e);
}

.inmo-mortgage__field input[type="number"] {
    width: 100%;
    padding: .45rem .75rem;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: .9rem;
    margin-top: .35rem;
}

.inmo-mortgage__results {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .75rem;
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid #e0e0e0;
}

.inmo-mortgage__result-item {
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    padding: .75rem 1rem;
    text-align: center;
}

.inmo-mortgage__result-item--highlight {
    background: var(--inmo-primary, #1a3a5c);
    border-color: var(--inmo-primary, #1a3a5c);
    color: #fff;
    grid-column: 1 / -1;
}

.inmo-mortgage__result-label {
    font-size: .75rem;
    color: #888;
    margin-bottom: .25rem;
    display: block;
}

.inmo-mortgage__result-item--highlight .inmo-mortgage__result-label {
    color: rgba(255,255,255,.75);
}

.inmo-mortgage__result-value {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--inmo-accent, #c8963e);
}

.inmo-mortgage__result-item--highlight .inmo-mortgage__result-value {
    color: #fff;
    font-size: 1.5rem;
}

.inmo-mortgage__disclaimer {
    font-size: .72rem;
    color: #999;
    margin-top: .75rem;
    text-align: center;
}

/* ═══════════════════════════════════════════
   RESULTS COUNTER (v4)
   ═══════════════════════════════════════════ */

.inmo-results-count {
    font-size: .9rem;
    color: #666;
    margin-bottom: 1rem;
    font-style: italic;
}

/* Loading state */
.inmo-listado__grid[style*="opacity: 0.5"],
.inmo-listado__results[style*="opacity: 0.5"] {
    pointer-events: none;
}

/* ═══════════════════════════════════════════
   BREADCRUMBS (v4)
   ═══════════════════════════════════════════ */

.inmo-breadcrumbs {
    font-size: .8rem;
    color: #888;
    margin-bottom: 1rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .25rem;
}

.inmo-breadcrumbs a {
    color: var(--inmo-primary, #1a3a5c);
    text-decoration: none;
}

.inmo-breadcrumbs a:hover { text-decoration: underline; }

.inmo-breadcrumbs__sep {
    color: #bbb;
    font-size: .9em;
}

.inmo-breadcrumbs__current {
    color: #555;
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 200px;
}

/* ═══════════════════════════════════════════
   FICHA HEADER ACTIONS (print / whatsapp buttons)
   ═══════════════════════════════════════════ */

.inmo-ficha__header-actions {
    display: flex;
    gap: .5rem;
    margin-left: auto;
    align-items: center;
    flex-wrap: wrap;
}

.inmo-ficha__action-btn {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .4rem .85rem;
    border-radius: 4px;
    font-size: .8rem;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    transition: background .15s, color .15s;
    white-space: nowrap;
    border: none;
}

.inmo-ficha__print-btn {
    background: #f0f0f0;
    color: #444;
}

.inmo-ficha__print-btn:hover { background: #e0e0e0; }

.inmo-ficha__whatsapp-btn {
    background: #25d366;
    color: #fff;
}

.inmo-ficha__whatsapp-btn:hover { background: #1da851; color: #fff; }

/* ═══════════════════════════════════════════
   SIDEBAR WHATSAPP BUTTON (v4)
   ═══════════════════════════════════════════ */

.inmo-sidebar-card__whatsapp-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    width: 100%;
    margin-top: 1rem;
    padding: .75rem 1rem;
    background: #25d366;
    color: #fff;
    border-radius: 6px;
    text-decoration: none;
    font-weight: 700;
    font-size: .9rem;
    transition: background .15s, transform .1s;
}

.inmo-sidebar-card__whatsapp-btn:hover {
    background: #1da851;
    color: #fff;
    transform: translateY(-1px);
}

/* ═══════════════════════════════════════════
   SIMILAR PROPERTIES (v4)
   ═══════════════════════════════════════════ */

.inmo-similar { margin-top: 2.5rem; }
.inmo-similar__grid { margin-top: 1rem; }

/* ═══════════════════════════════════════════
   RESPONSIVE IMPROVEMENTS (v4.1)
   ═══════════════════════════════════════════ */

@media (max-width: 768px) {
    .inmo-results__header {
        flex-direction: column;
        align-items: flex-start;
    }
    .inmo-sort {
        width: 100%;
    }
    .inmo-sort__select {
        flex: 1;
    }
    .inmo-mortgage-calc > div[style*="grid"] {
        grid-template-columns: 1fr !important;
    }
    .inmo-ficha__header-actions {
        flex-wrap: wrap;
        gap: 0.5rem;
    }
}
