/* Asari Sync — frontend base styles (Faza 3.3.1) */

:root {
    /* Kolory dziedziczone z palety Kadence (Customizer → Kolory globalne).
       Wartości po przecinku to zapas, gdyby motyw kiedyś się zmienił. */
    --asari-color-text: var(--global-palette3, #242d2d);
    --asari-color-text-muted: var(--global-palette5, #5f5f5f);
    --asari-color-bg: var(--global-palette9, #ffffff);
    --asari-color-bg-soft: var(--global-palette8, #f7f7f7);
    --asari-color-accent: var(--global-palette1, #b39700);
    --asari-color-border: var(--global-palette6, #c5c5c5);
    --asari-color-gold: var(--global-palette1, #b39700);  /* złoto marki — podpisy, ikony, akcenty */
    --asari-color-hero-bg: var(--global-palette3, #242d2d);  /* grafit — ciemny pas i panel wyszukiwarki */

    --asari-space-xs: 0.5rem;
    --asari-space-sm: 1rem;
    --asari-space-md: 1.5rem;
    --asari-space-lg: 2rem;
    --asari-space-xl: 3rem;

    /* Kadence trzyma rogi prawie ostre — dopasowane do przycisków motywu. */
    --asari-radius-sm: 2px;
    --asari-radius-md: 3px;

    /* Fonty motywu: Poppins w nagłówkach, Open Sans w treści. */
    --asari-font-heading: var(--global-heading-font-family, inherit);
    --asari-font-body: var(--global-body-font-family, inherit);

    --asari-font-size-sm: 0.875rem;
    --asari-font-size-base: 1rem;
    --asari-font-size-lg: 1.25rem;
    --asari-font-size-xl: 1.5rem;
    --asari-font-size-2xl: 2rem;

    --asari-line-height: 1.6;

    /* Wysokość przezroczystego nagłówka Kadence. Dokładną wartość ustawia JS
       (frontend.js) po zmierzeniu nagłówka; to poniżej to punkt wyjścia na
       pierwszą klatkę, dobrany z pomiarów: 160px @1440, 111px @768-1024, 119px @375. */
    --asari-header-h: 111px;
}

@media (min-width: 1200px) {
    :root { --asari-header-h: 160px; }
}

@media (max-width: 767px) {
    :root { --asari-header-h: 119px; }
}

/* --- Typografia zgodna z motywem (Poppins / Open Sans) --- */

.asari-archive,
.asari-archive__topband,
.asari-single,
.asari-inv,
.asari-inv-archive,
.asari-special,
.asari-search-form {
    font-family: var(--asari-font-body);
}

.asari-single__title,
.asari-single__section-header,
.asari-card__title,
.asari-price__amount,
.asari-archive__counter-number,
.asari-special__heading,
.asari-inv__title,
.asari-inv__section-header,
.asari-inv-card__title,
.asari-inv-archive__title {
    font-family: var(--asari-font-heading);
}

/* --- Archive oferta — root + empty state --- */

.asari-archive {
    max-width: 1280px;
    margin: var(--asari-space-xl) auto;
    padding: 0 var(--asari-space-md);
    color: var(--asari-color-text);
    line-height: var(--asari-line-height);
}

/* Ciemny pas u góry archiwum: mieści wyszukiwarkę i podkłada tło pod białe menu
   Kadence (nagłówek jest position:absolute, więc nachodziłby na jasną treść). */
.asari-archive__topband {
    background: var(--asari-color-hero-bg);
    padding: calc(var(--asari-header-h) + var(--asari-space-lg))
             var(--asari-space-md)
             var(--asari-space-xl);
}

.asari-archive__topband-inner {
    max-width: 1280px;
    margin: 0 auto;
}

/* Formularz dziedziczy tło z pasa — bez własnego panelu i podwójnego paddingu. */
.asari-archive__topband .asari-search-form--hero {
    background: transparent;
    padding: 0;
    margin-bottom: 0;
}

.asari-archive__topband + .asari-archive {
    margin-top: var(--asari-space-xl);
}

.asari-archive__empty {
    color: var(--asari-color-text-muted);
    font-style: italic;
}

/* ================================================================
   Archive — real layout (Faza 3.3.2)
   ================================================================ */

.asari-archive__list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--asari-space-md);
    margin: 0;
    padding: 0;
    list-style: none;
}

/* === Faza 3.5.2: Responsive grid breakpoints === */
@media (max-width: 900px) {
    .asari-archive__list { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 480px) {
    .asari-archive__list { grid-template-columns: 1fr; }
}

/* === Card === */

.asari-card {
    background: var(--asari-color-bg);
    border: 1px solid var(--asari-color-border);
    border-radius: var(--asari-radius-md);
    overflow: hidden;
}

.asari-card__media {
    display: block;
    aspect-ratio: 4 / 3;
    background: var(--asari-color-bg-soft);
}

.asari-card__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.asari-card__media-placeholder {
    display: block;
    width: 100%;
    height: 100%;
    background: var(--asari-color-bg-soft);
}

.asari-card__body {
    display: flex;
    flex-direction: column;
    gap: var(--asari-space-xs);
    padding: var(--asari-space-md);
    min-width: 0;
}

.asari-card__title {
    margin: 0;
    font-size: var(--asari-font-size-base);
    line-height: 1.4;
    font-weight: 600;
    /* Multiline title — clamp to 2 lines for consistent card heights (Q4 2026-05-22) */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.asari-card__link {
    display: block;
    text-decoration: none;
    color: inherit;
    transition: opacity 150ms ease;
}

.asari-card__link:hover,
.asari-card__link:focus {
    opacity: 0.85;
}

.asari-card__meta {
    list-style: none;
    margin: var(--asari-space-xs) 0 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: var(--asari-space-md);
    color: var(--asari-color-text-muted);
    font-size: var(--asari-font-size-sm);
}

.asari-card__meta-item {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.asari-card__meta-icon {
    display: inline-flex;
    align-items: center;
    color: var(--asari-color-text-muted);
}

.asari-card__meta-icon svg {
    width: 14px;
    height: 14px;
    display: block;
}

/* === Meta block (used in card + single) === */

.asari-meta {
    list-style: none;
    margin: var(--asari-space-xs) 0 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: var(--asari-space-md);
    color: var(--asari-color-text-muted);
    font-size: var(--asari-font-size-sm);
}

.asari-meta__item {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.asari-meta__icon {
    display: inline-flex;
    align-items: center;
    color: var(--asari-color-text-muted);
}

.asari-meta__icon svg {
    width: 18px;
    height: 18px;
    display: block;
}

.asari-meta__value {
    line-height: 1;
}

/* === Price block (used in card + single) === */

.asari-price {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.2rem;
}

.asari-price__amount {
    font-size: var(--asari-font-size-xl);
    font-weight: 700;
    color: #000; /* Marta 2026-06-04: pure black price (was #1a1a1a). Shared card + single. */
    line-height: 1.2;
}

.asari-price__per-m2 {
    font-size: var(--asari-font-size-sm);
    color: var(--asari-color-text-muted);
}

/* === Pagination === */

.asari-archive__pagination {
    margin-top: var(--asari-space-xl);
}

.asari-archive__pagination .page-numbers {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: var(--asari-space-xs);
    justify-content: center;
}

.asari-archive__pagination .page-numbers li {
    margin: 0;
    padding: 0;
}

.asari-archive__pagination .page-numbers a,
.asari-archive__pagination .page-numbers span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.25rem;
    height: 2.25rem;
    padding: 0 0.6rem;
    border: 1px solid var(--asari-color-border);
    border-radius: var(--asari-radius-sm);
    font-size: var(--asari-font-size-sm);
    text-decoration: none;
}

.asari-archive__pagination .page-numbers span.current {
    background: var(--asari-color-accent);
    color: var(--asari-color-bg);
    border-color: var(--asari-color-accent);
}

/* ================================================================
   Single oferta — real layout (Faza 3.3.2)
   ================================================================ */

.asari-single {
    max-width: 1280px;
    margin: 0 auto var(--asari-space-xl);
    padding: 0 var(--asari-space-md);
    color: var(--asari-color-text);
    line-height: var(--asari-line-height);
}

.asari-single__back {
    margin: var(--asari-space-md) 0 var(--asari-space-sm);
    font-size: var(--asari-font-size-sm);
}

.asari-single__back a {
    color: var(--asari-color-text-muted);
    text-decoration: none;
}

.asari-single__back a:hover,
.asari-single__back a:focus {
    color: var(--asari-color-text);
}

.asari-single__type-label {
    margin: 0;
    color: var(--asari-color-gold);
    font-size: var(--asari-font-size-sm);
    font-weight: 500;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

.asari-single__title {
    margin: 0;
    font-size: var(--asari-font-size-2xl);
    line-height: 1.2;
    font-weight: 400;
}

.asari-single__title-separator {
    color: var(--asari-color-text-muted);
    margin: 0 0.2em;
}

.asari-single__area-accent {
    color: var(--asari-color-gold);
    font-style: italic;
}

.asari-single__address {
    margin: 0;
    font-style: normal;
    color: var(--asari-color-text-muted);
    font-size: var(--asari-font-size-sm);
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

/* === Parameter table === */

.asari-params {
    list-style: none;
    margin: 0;
    padding: 0;
    border-top: 1px solid var(--asari-color-border);
}

.asari-params__row {
    display: flex;
    align-items: center;
    gap: var(--asari-space-sm);
    padding: 0.75rem 0;
    border-bottom: 1px solid var(--asari-color-border);
}

.asari-params__icon {
    flex-shrink: 0;
    display: inline-flex;
    color: var(--asari-color-text-muted);
}

.asari-params__icon svg {
    width: 20px;
    height: 20px;
    display: block;
}

.asari-params__label {
    flex: 1;
    color: var(--asari-color-text);
    font-size: var(--asari-font-size-sm);
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.asari-params__value {
    color: var(--asari-color-text);
    font-weight: 600;
    text-align: right;
}

.asari-single__section-header {
    margin: 0 0 var(--asari-space-md);
    color: var(--asari-color-gold);
    font-size: var(--asari-font-size-xl);
    font-weight: 400;
    letter-spacing: 0.05em;
}

.asari-single__content {
    color: var(--asari-color-text);
    font-size: var(--asari-font-size-base);
    line-height: var(--asari-line-height);
}

.asari-single__content p {
    margin: 0 0 var(--asari-space-sm);
}

/* === Contact section === */

.asari-single__contact {
    /* Lives in the info grid's right column (5.x.10) — grid gap handles spacing. */
    margin: 0;
}

.asari-single__agent-name {
    margin: 0 0 var(--asari-space-xs);
    font-size: var(--asari-font-size-lg);
    font-weight: 600;
    color: var(--asari-color-text);
}

.asari-single__agent-position {
    margin: 0 0 var(--asari-space-sm);
    font-size: var(--asari-font-size-base);
    color: var(--asari-color-text-muted);
}

.asari-single__contact-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--asari-space-xs);
}

.asari-single__contact-link {
    color: var(--asari-color-text);
    text-decoration: none;
    font-size: var(--asari-font-size-base);
}

.asari-single__contact-link:hover,
.asari-single__contact-link:focus {
    text-decoration: underline;
}

/* Agent card — photo left, name+contacts right (horizontal layout) */
.asari-single__agent-card {
    display: flex;
    align-items: center;
    gap: var(--asari-space-md);
}

.asari-single__agent-photo {
    flex: 0 0 auto;
}

.asari-single__agent-photo-img {
    display: block;
    width: 240px;            /* 2x powiększenie (Marta 5.x.10.2); ≤920px card stackuje więc bez squeeze info */
    aspect-ratio: 10 / 13;   /* foto opiekuna 1000×1300 — naturalny portret, zero cropu (5.x.10.1) */
    object-fit: cover;
    border-radius: var(--asari-radius-md);
}

.asari-single__agent-info {
    min-width: 0;
}

/* ≤920px: photo 240px zżera info przy side-by-side (2-col band + mobile),
   więc card przechodzi na pion — photo NAD info, każde full-width (5.x.10.2) */
@media (max-width: 920px) {
    .asari-single__agent-card {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* === Faza 3.3.3.1: Hero featured image + header section === */

.asari-single__hero-image {
    /* Siostra <main>, więc pełna szerokość bez 100vw (to dokładało poziomy scroll). */
    position: relative;
    width: 100%;

    /* Zdjęcie ma sięgać samej góry, pod przezroczysty nagłówek (z-index 11 trzyma
       logo i menu na wierzchu, gradient niżej daje im tło). Zwykle Kadence samo
       nakłada nagłówek na treść i nie trzeba nic przesuwać — stąd domyślne 0.
       Gdy motyw zarezerwuje odstęp, frontend.js zmierzy go i ustawi tę zmienną.
       Sztywna wartość ucinała tu 111-160px zdjęcia (o.5). */
    margin-top: calc(var(--asari-hero-pull, 0px) * -1);

    /* Kadrowanie 21:9, maksymalnie 600px na szerokich ekranach */
    aspect-ratio: 21 / 9;
    max-height: 600px;

    overflow: hidden;
    background: var(--asari-color-bg-soft);
}

/* Przyciemnienie górnej krawędzi: nagłówek Kadence jest przezroczysty i ma białe
   menu, które na jasnym zdjęciu znikało. Gradient kończy się tuż pod nagłówkiem. */
.asari-single__hero-image::after {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: calc(var(--asari-header-h) + var(--asari-space-sm));
    background: linear-gradient(
        to bottom,
        rgba(36, 45, 45, 0.70) 0%,
        rgba(36, 45, 45, 0.45) 45%,
        rgba(36, 45, 45, 0) 100%
    );
    pointer-events: none;
}

.asari-single__hero-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.asari-single__hero-placeholder {
    width: 100%;
    height: 100%;
    background: var(--asari-color-bg-soft);
}

.asari-single__header {
    margin-bottom: 0;
    display: flex;
    flex-direction: column;
    gap: var(--asari-space-xs);
}

/* === Kafle nachodzące na dół zdjęcia (wzorzec /fordon-mieszkanie-404-m2/):
   ciemny z adresem po lewej, jasny z ceną po prawej. === */

.asari-single__cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--asari-space-md);
    margin-top: -5rem;   /* nachodzi na zdjęcie */
    margin-bottom: var(--asari-space-xl);
    position: relative;  /* nad zdjęciem */
    z-index: 1;
}

.asari-single__card {
    padding: var(--asari-space-lg);
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: var(--asari-space-xs);
}

.asari-single__card--title {
    background: var(--asari-color-hero-bg);
    color: var(--global-palette9, #fff);
}

.asari-single__card--title .asari-single__title {
    color: var(--global-palette9, #fff);
    font-size: clamp(1.75rem, 1.2rem + 2vw, 2.8rem);  /* wzorzec: 45px na desktopie */
}

/* Jasnoszary zamiast wyblakłego --text-muted: ten jest liczony dla białego tła. */
.asari-single__card--title .asari-single__address,
.asari-single__card--title .asari-single__type-label {
    color: var(--global-palette6, #c5c5c5);
}

.asari-single__card--price .asari-price__amount {
    color: var(--asari-color-text);
    font-size: clamp(1.5rem, 1.1rem + 1.5vw, 2.2rem);
    margin: 0;
}

.asari-single__card--price .asari-price__per-m2 {
    margin: 0;
}

.asari-single__card--price {
    background: var(--asari-color-bg);
    border: 1px solid var(--asari-color-border);
    align-items: flex-start;
}

@media (max-width: 768px) {
    .asari-single__cards {
        grid-template-columns: 1fr;
        margin-top: -3rem;
    }
}

/* === Dwie kolumny: opis (L) | Szczegóły (R). Zwija się do jednej ≤900px. === */

.asari-single__cols {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
    gap: var(--asari-space-xl);
    margin-bottom: var(--asari-space-xl);
    align-items: start;
}

@media (max-width: 900px) {
    .asari-single__cols {
        grid-template-columns: 1fr;
        gap: var(--asari-space-lg);
    }
}

.asari-single__headline {
    font-family: var(--asari-font-heading);
    font-size: var(--asari-font-size-xl);
    font-weight: 600;
    line-height: 1.3;
    margin: 0 0 var(--asari-space-md);
}

/* Wyróżniony blok (np. wyłączność) — złota belka, jak akcenty motywu. */
.asari-single__exclusive {
    border-left: 3px solid var(--asari-color-gold);
    background: var(--asari-color-bg-soft);
    padding: var(--asari-space-sm) var(--asari-space-md);
    margin: 0 0 var(--asari-space-lg);
    font-weight: 600;
}

.asari-single__exclusive p:last-child {
    margin-bottom: 0;
}

/* === Mapka i formularz pod ofertą === */

.asari-single__map,
.asari-single__form {
    margin-bottom: var(--asari-space-xl);
}

.asari-single__map-frame {
    aspect-ratio: 16 / 9;
    max-height: 420px;
    overflow: hidden;
    border: 1px solid var(--asari-color-border);
}

.asari-single__map-frame iframe {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}

.asari-single__map-link {
    margin-top: var(--asari-space-xs);
    font-size: var(--asari-font-size-sm);
}

.asari-single__map-link a {
    color: var(--asari-color-text-muted);
    text-decoration: none;
}

.asari-single__map-link a:hover,
.asari-single__map-link a:focus {
    color: var(--asari-color-text);
}

/* === Faza 5.x.10 (Opcja B): 2-col info grid — params (L) | agent (R),
   description full-width below. Stacks to single column ≤768px. === */

.asari-single__info-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--asari-space-lg);
    align-items: start;
    margin: var(--asari-space-lg) 0 var(--asari-space-xl);
}

.asari-single__info-col {
    min-width: 0;
}

.asari-single__description {
    margin-bottom: var(--asari-space-xl);
}

@media (max-width: 768px) {
    .asari-single__info-grid {
        grid-template-columns: 1fr;
        gap: var(--asari-space-md);
    }
}

.asari-params__row--price {
    border-top: 2px solid var(--asari-color-text);
    border-bottom: none;
    padding-top: var(--asari-space-md);
    margin-top: var(--asari-space-xs);
}

.asari-params__price-stack {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.1rem;
}

.asari-params__price-stack-amount {
    color: var(--asari-color-text);
    font-size: var(--asari-font-size-lg);
    font-weight: 700;
    line-height: 1.2;
}

.asari-params__price-stack-m2 {
    color: var(--asari-color-text-muted);
    font-size: var(--asari-font-size-sm);
}

/* === Faza 3.3.3.3: Gallery section (Nestin masonry primary, fallback grid) === */

.asari-single__gallery {
    margin: var(--asari-space-xl) 0;
}

.asari-single__gallery-fallback {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--asari-space-sm);
}

.asari-single__gallery-fallback-img {
    width: 100%;
    height: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    display: block;
}

/* === Mobile responsive (single breaks at 880px, wider than archive's 720px — single has bigger content areas) === */

@media (max-width: 880px) {
    .asari-single__title {
        font-size: var(--asari-font-size-xl);
    }

    .asari-params {
        float: none;
        width: 100%;
        max-width: none;
        min-width: 0;
        margin-right: 0;
        margin-bottom: var(--asari-space-lg);
    }

    .asari-single__gallery-fallback {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ================================================================
   Search form + archive counter (Faza 3.4, expanded 5.x.2)
   ================================================================ */

.asari-search-form {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
    gap: var(--asari-space-md);
    padding: var(--asari-space-lg);
    margin-bottom: var(--asari-space-xl);
    background: var(--asari-color-bg-soft);
    border-radius: var(--asari-radius-md);
}

.asari-search-form__field {
    display: flex;
    flex-direction: column;
    gap: var(--asari-space-xs);
    min-width: 0;
}

.asari-search-form__field label,
.asari-search-form__rooms-legend {
    display: flex;
    align-items: center;
    gap: var(--asari-space-xs);
    font-size: var(--asari-font-size-sm);
    color: var(--asari-color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* Lucide icon in label — gold accent (decorative, per gold-color rule). */
.asari-search-form__icon {
    display: inline-flex;
    flex-shrink: 0;
    color: var(--asari-color-gold);
}

.asari-search-form__icon svg {
    display: block;
    width: 1rem;
    height: 1rem;
}

.asari-search-form__label-text {
    min-width: 0;
}

/* rooms multi-select rendered as checkbox-buttons (5.x.2.1 — replaces <select multiple>). */
/* Field spans 2 grid cells (both variants) — one cell (170px/140px) can't fit 4 readable
   buttons (~184px min). 5.x.3.2 unifies archive with hero; ≤480 resets span (single col). */
.asari-search-form__field--rooms {
    grid-column: span 2;
}

/* fieldset+legend a11y (5.x.6.5) — reset native chrome, replicate field column gap inside */
.asari-search-form__rooms-fieldset {
    border: 0;
    padding: 0;
    margin: 0;
    min-width: 0; /* fieldset intrinsic min-width breaks grid/flex shrink without this */
}

.asari-search-form__rooms-legend {
    padding: 0; /* reset native legend padding */
    width: 100%;
    margin-bottom: var(--asari-space-xs); /* was field gap label→checkboxes, now inside fieldset */
}

.asari-search-form__rooms-checkboxes {
    display: flex;
    gap: var(--asari-space-xs);
}

.asari-search-form__room-checkbox {
    position: relative;
    flex: 1;
    cursor: pointer;
}

.asari-search-form__room-checkbox input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.asari-search-form__room-checkbox span {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 2.5rem;
    min-width: 2.5rem;
    width: 100%;
    box-sizing: border-box;
    border: 1px solid var(--asari-color-border);
    border-radius: var(--asari-radius-sm, 4px);
    background: var(--asari-color-bg);
    transition: all 0.15s ease;
    font-size: var(--asari-font-size-sm);
}

.asari-search-form__room-checkbox input:checked + span {
    background: var(--asari-color-text);
    color: var(--asari-color-bg);
    border-color: var(--asari-color-text);
}

.asari-search-form__room-checkbox:hover span {
    border-color: var(--asari-color-text);
}

/* keyboard focus visibility (input is visually hidden) */
.asari-search-form__room-checkbox input:focus-visible + span {
    outline: 2px solid var(--asari-color-text);
    outline-offset: 1px;
}

/* conditional disable (5.x.4) — fields irrelevant to selected property_type */
.asari-search-form__field[data-disabled="true"] {
    opacity: 0.5;
}

.asari-search-form__field[data-disabled="true"] .asari-search-form__room-checkbox {
    cursor: not-allowed;
}

.asari-search-form__field select,
.asari-search-form__field input {
    height: 2.5rem;
    padding: 0 var(--asari-space-xs);
    background: var(--asari-color-bg);
    border: 1px solid var(--asari-color-border);
    border-radius: var(--asari-radius-sm);
    font-size: var(--asari-font-size-base);
    color: var(--asari-color-text);
    font-family: inherit;
    width: 100%;
    box-sizing: border-box;
}

.asari-search-form__field select:focus,
.asari-search-form__field input:focus {
    outline: 2px solid var(--asari-color-text);
    outline-offset: 1px;
    border-color: var(--asari-color-text);
}

.asari-search-form__actions {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--asari-space-md);
}

.asari-search-form__submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.5rem;
    padding: 0 var(--asari-space-lg);
    background: var(--global-palette-btn-bg, var(--asari-color-text));
    color: var(--global-palette-btn, var(--asari-color-bg));
    border: 1px solid var(--global-palette-btn-bg, var(--asari-color-text));
    border-radius: var(--asari-radius-sm);
    font-size: var(--asari-font-size-base);
    font-family: inherit;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    cursor: pointer;
}

.asari-search-form__submit:hover,
.asari-search-form__submit:focus {
    background: var(--asari-color-bg);
    color: var(--asari-color-text);
}

.asari-search-form__clear {
    color: var(--asari-color-text-muted);
    font-size: var(--asari-font-size-sm);
    text-decoration: underline;
}

.asari-search-form__clear:hover,
.asari-search-form__clear:focus {
    color: var(--asari-color-text);
}

.asari-archive__counter {
    margin: 0 0 var(--asari-space-lg);
    font-size: var(--asari-font-size-lg);
    color: var(--asari-color-text);
}

.asari-archive__counter-number {
    color: var(--asari-color-gold);
    font-weight: 600;
}

/* === Hero variant (5.x.3) — dark panel under homepage hero, 2-row layout ===
   White inputs (inherited bg), light labels, gold icons, light CTA (gold rule
   excludes CTAs). Fixed 6-col on desktop; base media queries collapse it ≤900px. */
.asari-search-form--hero {
    grid-template-columns: repeat(6, 1fr);
    background: var(--asari-color-hero-bg);
    padding: var(--asari-space-xl);
    color: #fff;
}

.asari-search-form--hero .asari-search-form__room-checkbox span {
    background: transparent;
    border: 1.5px solid #fff;
    color: #fff;
    min-width: 3rem;
    font-weight: 500;
}

.asari-search-form--hero .asari-search-form__room-checkbox:hover span {
    border-color: var(--asari-color-gold);
}

.asari-search-form--hero .asari-search-form__room-checkbox input:checked + span {
    background: var(--asari-color-gold);
    color: var(--asari-color-text);
    border-color: var(--asari-color-gold);
}

.asari-search-form--hero .asari-search-form__field label,
.asari-search-form--hero .asari-search-form__rooms-legend {
    color: rgba(255, 255, 255, 0.85);
}

.asari-search-form--hero .asari-search-form__submit {
    background: var(--global-palette-btn-bg, #fff);
    color: var(--global-palette-btn, var(--asari-color-text));
    border-color: var(--global-palette-btn-bg, #fff);
}

.asari-search-form--hero .asari-search-form__submit:hover,
.asari-search-form--hero .asari-search-form__submit:focus {
    /* Motyw daje tu biały tekst na #ffdf33 (kontrast ~1.4:1) — świadomie grafit. */
    background: var(--global-palette-btn-bg-hover, var(--asari-color-gold));
    color: var(--global-palette3, var(--asari-color-text));
    border-color: var(--global-palette-btn-bg-hover, var(--asari-color-gold));
}

.asari-search-form--hero .asari-search-form__clear {
    color: rgba(255, 255, 255, 0.7);
}

.asari-search-form--hero .asari-search-form__clear:hover,
.asari-search-form--hero .asari-search-form__clear:focus {
    color: #fff;
}

@media (max-width: 900px) {
    .asari-search-form {
        grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    }
}

@media (max-width: 480px) {
    .asari-search-form {
        grid-template-columns: 1fr;
        padding: var(--asari-space-md);
    }

    /* single column — reset rooms span (span 2 here would force an implicit 2nd column) */
    .asari-search-form__field--rooms {
        grid-column: auto;
    }

    .asari-search-form__actions {
        flex-direction: column;
        align-items: stretch;
    }

    .asari-search-form__submit {
        width: 100%;
    }

    .asari-search-form__clear {
        text-align: center;
    }
}

/* ================================================================
   Rynek pierwotny — inwestycje (Faza 5.x.14 / Faza 2)
   Reuses --asari-* tokens; adds status colors only.
   ================================================================ */

:root {
    --asari-inv-building: #b8853a;   /* amber — under construction */
    --asari-inv-building-bg: #f4ead6;
    --asari-inv-ready: #5a7d6a;      /* muted green — ready/existing */
    --asari-inv-ready-bg: #e4ede7;
}

/* --- Single: container + hero --- */
.asari-inv {
    max-width: 1120px;
    margin: 0 auto var(--asari-space-xl);
    padding: 0 var(--asari-space-md);
    color: var(--asari-color-text);
    line-height: var(--asari-line-height);
}
.asari-inv__hero-image {
    width: 100vw;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    max-height: 62vh;
    overflow: hidden;
    background: var(--asari-color-bg-soft);
}
.asari-inv__hero-img { width: 100%; height: 100%; max-height: 62vh; object-fit: cover; display: block; }
.asari-inv__hero-placeholder { width: 100%; aspect-ratio: 21 / 9; background: var(--asari-color-bg-soft); }

.asari-inv__back { margin: var(--asari-space-md) 0 0; font-size: var(--asari-font-size-sm); }
.asari-inv__back a { color: var(--asari-color-text-muted); text-decoration: none; }
.asari-inv__back a:hover { color: var(--asari-color-text); }

/* --- Single: header --- */
.asari-inv__header { margin-top: var(--asari-space-md); }
.asari-inv__status {
    display: inline-flex; align-items: center; gap: 0.45rem;
    font-size: var(--asari-font-size-sm); font-weight: 600; letter-spacing: 0.03em;
    padding: 0.3rem 0.75rem 0.3rem 0.6rem; border-radius: 999px; margin: 0;
}
.asari-inv__status-dot { width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.asari-inv__status--building { color: var(--asari-inv-building); background: var(--asari-inv-building-bg); }
.asari-inv__status--ready { color: var(--asari-inv-ready); background: var(--asari-inv-ready-bg); }
.asari-inv__title {
    font-size: var(--asari-font-size-2xl); line-height: 1.1; margin: 0.6rem 0 0.4rem;
    text-wrap: balance;
}
.asari-inv__location {
    display: flex; align-items: center; gap: 0.5rem;
    color: var(--asari-color-text-muted); font-size: var(--asari-font-size-lg); margin: 0;
}
.asari-inv__location-icon { color: var(--asari-color-gold); display: inline-flex; }

/* --- Single: stat band --- */
.asari-inv__stats {
    margin-top: var(--asari-space-lg);
    display: grid; grid-template-columns: repeat(4, 1fr);
    gap: 1px; background: var(--asari-color-border);
    border: 1px solid var(--asari-color-border); border-radius: var(--asari-radius-md); overflow: hidden;
}
.asari-inv__stat { background: var(--asari-color-bg); padding: var(--asari-space-md); }
.asari-inv__stat-k {
    display: block; font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.08em;
    color: var(--asari-color-text-muted);
}
.asari-inv__stat-v {
    display: block; margin-top: 0.35rem; font-size: var(--asari-font-size-xl);
    font-variant-numeric: tabular-nums;
}

/* --- Single: sections --- */
.asari-inv__section-header {
    font-size: var(--asari-font-size-xl); margin: var(--asari-space-xl) 0 var(--asari-space-md);
    padding-bottom: var(--asari-space-xs); border-bottom: 1px solid var(--asari-color-border);
}
.asari-inv__content { max-width: none; }
.asari-inv__content p { margin: 0 0 var(--asari-space-sm); }

/* Gallery fallback (Bold Themes masonry used when available) */
.asari-inv__gallery-fallback { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--asari-space-xs); }
.asari-inv__gallery-fallback-img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--asari-radius-sm); }

/* --- Single: map --- */
.asari-inv__map-frame {
    position: relative; width: 100%; aspect-ratio: 16 / 8;
    border: 1px solid var(--asari-color-border); border-radius: var(--asari-radius-md); overflow: hidden;
    background: var(--asari-color-bg-soft);
}
.asari-inv__map-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.asari-inv__map-link { margin: var(--asari-space-xs) 0 0; font-size: var(--asari-font-size-sm); }
.asari-inv__map-link a { color: var(--asari-color-text-muted); text-decoration: none; }
.asari-inv__map-link a:hover { color: var(--asari-color-text); }

/* --- Single: units table --- */
.asari-inv__table { border: 1px solid var(--asari-color-border); border-radius: var(--asari-radius-md); overflow: hidden; }
.asari-inv__thead, .asari-inv__urow {
    display: grid; grid-template-columns: 1.1fr 0.8fr 0.9fr 1.2fr 130px; align-items: center;
}
.asari-inv__thead {
    padding: 0.7rem var(--asari-space-md); background: var(--asari-color-bg-soft);
    border-bottom: 1px solid var(--asari-color-border);
    font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.07em; color: var(--asari-color-text-muted);
}
.asari-inv__urow {
    padding: var(--asari-space-sm) var(--asari-space-md);
    border-bottom: 1px solid var(--asari-color-border);
    text-decoration: none; color: inherit; transition: background 0.15s ease;
}
.asari-inv__urow:last-child { border-bottom: 0; }
.asari-inv__urow:hover { background: var(--asari-color-bg-soft); }
.asari-inv__uarea, .asari-inv__ufloor { font-variant-numeric: tabular-nums; }
.asari-inv__ufloor { color: var(--asari-color-text-muted); }
.asari-inv__uprice { font-variant-numeric: tabular-nums; }
.asari-inv__uprice b { font-weight: 600; }
.asari-inv__uprice small { display: block; color: var(--asari-color-text-muted); font-size: 0.76rem; }
.asari-inv__uprice--ask { font-weight: 500; color: var(--asari-color-text-muted); }
.asari-inv__ucta { justify-self: end; font-size: var(--asari-font-size-sm); font-weight: 600; color: var(--asari-color-gold); }
.asari-inv__urow:hover .asari-inv__ucta { color: var(--asari-color-text); }

/* --- Archive: Rynek pierwotny --- */
.asari-inv-archive {
    max-width: 1280px; margin: var(--asari-space-xl) auto; padding: 0 var(--asari-space-md);
    color: var(--asari-color-text); line-height: var(--asari-line-height);
}
.asari-inv-archive__head { margin-bottom: var(--asari-space-lg); }
.asari-inv-archive__title { font-size: var(--asari-font-size-2xl); margin: 0 0 0.3rem; }
.asari-inv-archive__lead { color: var(--asari-color-text-muted); margin: 0; max-width: 60ch; }
.asari-inv-archive__empty { color: var(--asari-color-text-muted); font-style: italic; }
.asari-inv-archive__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--asari-space-md); }

.asari-inv-card { background: var(--asari-color-bg); border: 1px solid var(--asari-color-border); border-radius: var(--asari-radius-md); overflow: hidden; transition: box-shadow 0.18s ease, transform 0.18s ease; }
.asari-inv-card:hover { box-shadow: 0 12px 30px -18px rgba(0,0,0,0.35); transform: translateY(-2px); }
.asari-inv-card__link { text-decoration: none; color: inherit; display: block; }
.asari-inv-card__media { position: relative; aspect-ratio: 3 / 2; background: var(--asari-color-bg-soft); overflow: hidden; }
.asari-inv-card__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.asari-inv-card__media-placeholder { position: absolute; inset: 0; background: var(--asari-color-bg-soft); }
.asari-inv-card__status {
    position: absolute; top: 0.7rem; left: 0.7rem;
    font-size: 0.72rem; font-weight: 600; letter-spacing: 0.03em;
    padding: 0.25rem 0.6rem; border-radius: 999px; backdrop-filter: blur(3px);
}
.asari-inv-card__status--building { color: var(--asari-inv-building); background: color-mix(in srgb, var(--asari-inv-building-bg) 88%, transparent); }
.asari-inv-card__status--ready { color: var(--asari-inv-ready); background: color-mix(in srgb, var(--asari-inv-ready-bg) 88%, transparent); }
.asari-inv-card__body { padding: var(--asari-space-md); }
.asari-inv-card__title { font-size: var(--asari-font-size-lg); margin: 0 0 0.3rem; }
.asari-inv-card__loc { display: flex; align-items: center; gap: 0.4rem; color: var(--asari-color-text-muted); font-size: var(--asari-font-size-sm); margin: 0 0 0.5rem; }
.asari-inv-card__loc-icon { color: var(--asari-color-gold); display: inline-flex; }
.asari-inv-card__meta { font-size: var(--asari-font-size-sm); color: var(--asari-color-text); font-variant-numeric: tabular-nums; margin: 0; }
.asari-inv-archive__pagination { margin-top: var(--asari-space-lg); }

/* --- Responsive --- */
@media (max-width: 900px) {
    .asari-inv__stats { grid-template-columns: repeat(2, 1fr); }
    .asari-inv-archive__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 680px) {
    .asari-inv__thead { display: none; }
    .asari-inv__urow { grid-template-columns: 1fr 1fr; gap: 0.2rem 0.8rem; padding: var(--asari-space-sm); }
    .asari-inv__uprice { grid-column: 1 / 3; margin-top: 0.3rem; }
    .asari-inv__ucta { grid-column: 1 / 3; justify-self: start; margin-top: 0.4rem; }
    .asari-inv__gallery-fallback { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 520px) {
    .asari-inv__stats { grid-template-columns: 1fr 1fr; }
    .asari-inv-archive__grid { grid-template-columns: 1fr; }
}

/* Unit → parent investment backlink (single-oferta, gated to units with _asari_parent_id) */
.asari-oferta-invlink {
    display: flex; align-items: center; gap: var(--asari-space-sm);
    margin-top: var(--asari-space-md);
    padding: var(--asari-space-sm) var(--asari-space-md);
    border: 1px solid var(--asari-color-border); border-left: 3px solid var(--asari-color-gold);
    border-radius: var(--asari-radius-md); background: var(--asari-color-bg-soft);
    text-decoration: none; color: var(--asari-color-text);
    transition: background 0.15s ease, border-color 0.15s ease;
}
.asari-oferta-invlink:hover { background: var(--asari-color-bg); border-left-color: var(--asari-color-text); }
.asari-oferta-invlink__icon { color: var(--asari-color-gold); display: inline-flex; flex: none; }
.asari-oferta-invlink__text { font-size: var(--asari-font-size-base); }
.asari-oferta-invlink__text b { font-weight: 600; }
.asari-oferta-invlink__arrow { margin-left: auto; font-size: var(--asari-font-size-sm); font-weight: 600; color: var(--asari-color-gold); white-space: nowrap; }
.asari-oferta-invlink:hover .asari-oferta-invlink__arrow { color: var(--asari-color-text); }
@media (max-width: 560px) {
    .asari-oferta-invlink { flex-wrap: wrap; }
    .asari-oferta-invlink__arrow { margin-left: 0; width: 100%; }
}

/* Unit offer number (listingId) under the "Układ" cell in the units table */
.asari-inv__uno { display: block; margin-top: 0.15rem; font-size: 0.72rem; color: var(--asari-color-text-muted); font-variant-numeric: tabular-nums; }

/* Wideo (single-oferta) — responsive 16:9 YouTube embed */
.asari-single__video-frame {
    position: relative; width: 100%; aspect-ratio: 16 / 9;
    border: 1px solid var(--asari-color-border); border-radius: var(--asari-radius-md);
    overflow: hidden; background: var(--asari-color-bg-soft);
}
.asari-single__video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
