/* =========================================================================
   BONGO INVEST - custom.css (style bloków i nowych elementów)
   Mobile-first: baza = mobile (<992px), jeden media query desktop (>=992px) na końcu.
   Komentarze sekcjami. Typografia i przyciski - patrz style.css.
   ========================================================================= */

/* ---- Animacje wejścia (system zgodny z Olza Logistic) ---- */
.fade-in,
.fade-up,
.fade-left,
.fade-right {
    opacity: 0;
    transition-property: opacity, transform;
    transition-timing-function: cubic-bezier(.22, 1, .36, 1);
    transition-duration: 600ms;
}
.fade-in { transform: translate3d(0, 0, 0); }
.fade-up { transform: translate3d(0, 32px, 0); }
.fade-left { transform: translate3d(-40px, 0, 0); }
.fade-right { transform: translate3d(40px, 0, 0); }
.fade-in.is-animated,
.fade-up.is-animated,
.fade-left.is-animated,
.fade-right.is-animated { opacity: 1; transform: translate3d(0, 0, 0); }
.fade-in[data-delay],
.fade-up[data-delay],
.fade-left[data-delay],
.fade-right[data-delay] { transition-delay: var(--anim-delay, 0ms); }

@media (prefers-reduced-motion: reduce) {
    .fade-in,
    .fade-up,
    .fade-left,
    .fade-right { opacity: 1; transform: none; transition: none; }
}

/* Animacje poziome nie mogą rozszerzać layoutu na urządzeniach dotykowych. */
@media (max-width: 991px) and (prefers-reduced-motion: no-preference) {
    .fade-left,
    .fade-right { transform: translate3d(0, 24px, 0); }
    .fade-left.is-animated,
    .fade-right.is-animated { transform: translate3d(0, 0, 0); }
}

/* ---- Elementy współdzielone ---- */
.container--narrow { max-width: 920px; }

.badge {
    display: inline-block;
    font-weight: 600;
    font-size: 11px;
    letter-spacing: 1px;
    text-transform: uppercase;
    padding: 7px 14px;
    color: #fff;
    background: #000;
}
.badge--gold { background: var(--gold); }
.badge--orange { background: var(--orange); }
.badge--green { background: var(--green); }
.badge--gray { background: var(--gray); }
.badge--dark { background: #000; }

.avatar-initials {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px; height: 42px;
    border-radius: 50%;
    background: var(--whybg);
    color: var(--gold-dk);
    font-family: var(--font-head);
    font-weight: 600;
    font-size: 15px;
    flex: none;
    overflow: hidden;
}
.avatar-initials img { width: 100%; height: 100%; object-fit: cover; }
.avatar-initials--lg { width: 96px; height: 96px; font-size: 30px; }

.back-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-body);
    font-weight: 600; font-size: 12px; letter-spacing: 1.2px;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--body); margin-bottom: 16px;
}
.back-link::before {
    content: "";
    width: 6px;
    height: 6px;
    border-left: 1px solid currentColor;
    border-bottom: 1px solid currentColor;
    transform: rotate(45deg);
    margin-top: -2px;
}
.back-link:hover { color: var(--gold); }

.chip {
    display: inline-flex; align-items: center;
    background: #fff; color: var(--ink);
    border: 1px solid var(--stroke);
    padding: 10px 18px;
    font-family: var(--font-body);
    font-weight: 600; font-size: 12px; letter-spacing: 1px; text-transform: uppercase;
    cursor: pointer; transition: background .15s, color .15s, border-color .15s;
}
.chip:hover { border-color: var(--ink); }
.chip.is-active { background: #000; color: #fff; border-color: #000; }

/* Wspólny mobilny wzorzec dla poziomych grup zakładek i chipów. */
.mobile-tabs-scroll { --mobile-tabs-bg: #fff; position: relative; width: 100%; min-width: 0; max-width: 100%; }
.section--gray .mobile-tabs-scroll { --mobile-tabs-bg: var(--whybg); }
.section--dark .mobile-tabs-scroll { --mobile-tabs-bg: #000; }
.mobile-tabs-scroll .mobile-tabs-scroll__track { display: flex; flex-wrap: nowrap; justify-content: flex-start; gap: 8px; width: 100%; min-width: 0; max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x proximity; scrollbar-width: thin; scrollbar-color: var(--gold) rgba(198,198,205,.45); padding: 0 0 10px; -webkit-overflow-scrolling: touch; }
.mobile-tabs-scroll__track::-webkit-scrollbar { height: 3px; }
.mobile-tabs-scroll__track::-webkit-scrollbar-track { background: rgba(198,198,205,.45); }
.mobile-tabs-scroll__track::-webkit-scrollbar-thumb { background: var(--gold); }
.mobile-tabs-scroll__track .chip { flex: 0 0 auto; scroll-snap-align: start; }
.mobile-tabs-scroll__next { position: absolute; z-index: 2; top: 0; right: -24px; display: flex; align-items: center; justify-content: center; width: 64px; height: 37px; padding: 0; border: 0; background: linear-gradient(90deg, transparent, var(--mobile-tabs-bg) 42%); color: var(--gold); cursor: pointer; pointer-events: none; opacity: 0; transition: opacity .18s ease; }
.mobile-tabs-scroll__next::before { content: ""; width: 6px; height: 6px; border-left: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: rotate(225deg); }
.mobile-tabs-scroll.is-scrollable:not(.is-at-end) .mobile-tabs-scroll__next { opacity: 1; pointer-events: auto; }
.mobile-tabs-scroll__next:focus-visible { outline: 2px solid var(--gold); outline-offset: -2px; }

/* Mobilne menu - linki z wp_nav_menu */
.mobile-menu ul, .mobile-menu li { list-style: none; margin: 0; padding: 0; }
.mobile-menu a, .mobile-menu .mobile-menu__list a {
    color: #fff;
    font-weight: 600; font-size: 15px; letter-spacing: 1.2px; text-transform: uppercase;
    padding: 18px 0; display: block;
    border-bottom: 1px solid rgba(255,255,255,.1);
}
.mobile-menu .btn {
    color: #fff;
    border-bottom: none;
    padding: 18px 20px;
}

/* ---- Blog: grid kart ---- */
.posts-grid { display: grid; grid-template-columns: 1fr; gap: 40px 32px; }
.post-card { display: flex; flex-direction: column; min-width: 0; }
.post-card__img { position: relative; display: block; aspect-ratio: 16/11; overflow: hidden; }
.post-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.post-card:hover .post-card__img img { transform: scale(1.025); }
.post-card__badge { position: absolute; z-index: 1; top: 16px; left: 0; padding: 5px 12px; background: #000; color: #fff; font-size: 13px; line-height: 20px; font-weight: 500; letter-spacing: 1px; text-transform: uppercase; }
.post-card__badge--featured { top: 20px; background: var(--gold); }
.post-card__body { display: flex; flex-direction: column; flex: 1; }
.post-card__meta { margin: 24px 0 12px; font-size: 11px; letter-spacing: 1px; text-transform: uppercase; color: var(--body); }
.post-card h3 { font-size: 22px; line-height: 30px; margin: 0 0 12px; }
.post-card p { margin: 0 0 18px; font-size: 15px; line-height: 23px; }
.post-card__more { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: 12px; letter-spacing: 1px; text-transform: uppercase; color: var(--gold); margin-top: auto; }
.posts-pagination { margin-top: 40px; text-align: center; }
.posts-pagination .page-numbers { display: inline-flex; padding: 10px 16px; margin: 0 4px; border: 1px solid var(--stroke); color: var(--ink); }
.posts-pagination .current { background: #000; color: #fff; border-color: #000; }

/* ---- Blog: archiwum blokowe ---- */
.blog-filter { position: relative; z-index: 5; background: #fff; border-bottom: 1px solid var(--stroke); }
.blog-filter__inner { display: flex; flex-direction: column; gap: 18px; padding-top: 20px; padding-bottom: 20px; }
.blog-filter__categories { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 2px; }
.blog-filter__categories .chip { flex: none; }
.blog-filter__search { position: relative; display: flex; align-items: center; min-width: 240px; border-bottom: 1px solid var(--ink); }
.blog-filter__search svg { position: absolute; left: 0; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.blog-filter__search input { width: 100%; border: 0; outline: 0; background: transparent; padding: 12px 8px 12px 29px; font: inherit; }
.featured-post { margin-bottom: 64px; }
.featured-post .eyebrow { margin-bottom: 24px; }
.featured-post__card { display: grid; background: var(--whybg); }
.featured-post__image { position: relative; display: block; min-height: 280px; overflow: hidden; }
.featured-post__image img { width: 100%; height: 100%; object-fit: cover; }
.featured-post__content { display: flex; flex-direction: column; justify-content: center; padding: 32px 24px; }
.featured-post__content .post-card__meta { margin-top: 0; }
.featured-post__content h2 { margin: 0 0 18px; font-size: clamp(28px, 3vw, 42px); }
.featured-post__content p { margin: 0 0 24px; line-height: 1.7; }
.featured-post__content .post-card__more { align-self: flex-start; }
.blog-posts__more { display: flex; justify-content: center; margin-top: 48px; }
.blog-posts__empty { text-align: center; }
.post-card.is-blog-hidden { display: none; }
.post-card.is-blog-revealing { animation: blog-card-reveal .4s ease both; }
@keyframes blog-card-reveal { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }

/* ---- Pojedynczy wpis ---- */
.single-post__header {
    padding: 48px 0 80px;
    background: var(--whybg);
}
.container--article-head { max-width: 880px; }
.single-post__kicker { display: flex; align-items: center; gap: 14px; margin-bottom: 24px; }
.single-post__kicker .back-link { margin: 0; }
.single-post__kicker .post-card__badge { position: static; }
.single-post__header h1 { margin: 0 0 28px; font-weight: 300; font-size: clamp(36px,5vw,52px); line-height: 1.15; letter-spacing: -.02em; }
.single-post__byline { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.single-post__byline .avatar-initials { background: var(--ink); color: #fff; width: 44px; height: 44px; }
.single-post__author-name { font-weight: 600; font-size: 14px; color: var(--ink); }
.single-post__author-role { font-size: 13px; color: var(--body); }
.single-post__author-meta { font-size: 13px; color: var(--body); }
.single-post__author-meta { display: flex; gap: 14px; }
.single-post__byline-separator { width: 1px; height: 32px; background: var(--stroke); margin: 0 8px; }
.single-post__cover {
    margin-top: -40px;
    position: relative;
}
.single-post__cover img { width: 100%; aspect-ratio: 21/9; object-fit: cover; }
.single-post__layout { display: grid; grid-template-columns: minmax(0,760px); justify-content: center; gap: 64px; padding-top: 64px; padding-bottom: 96px; }
.single-post__toc { display: none; }
.single-post__toc-title, .single-post__share span { font-weight: 600; font-size: 12px; letter-spacing: 1.2px; text-transform: uppercase; }
.single-post__toc-title span {
    margin-bottom: 15px;
}
.single-post__toc nav { display: flex; flex-direction: column; border-left: 1px solid rgba(198,198,205,.6);margin-top:20px; }
.single-post__toc nav a { padding: 8px 0 8px 18px; margin-left: -1px; border-left: 2px solid transparent; font-size: 14px; line-height: 20px; color: var(--body); }
.single-post__toc nav a.is-active { color: var(--ink); border-color: var(--gold); }
.single-post__share { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; margin-top: 32px; }
.single-post__share-links { display: flex; align-items: center; gap: 12px; }
.single-post__share a, .single-post__share button { border: 0; background: none; padding: 0; color: var(--body); font: inherit; cursor: pointer; }
.single-post__share a { display: inline-flex; align-items: center; justify-content: center; }
.single-post__share a svg { display: block; }
.single-post__share a:hover { color: var(--gold); }
.single-post__content { min-width: 0; }
.single-post__content > p:first-child { font-size: 21px; line-height: 32px; color: var(--ink); }
.single-post__content p, .single-post__content li { font-size: 18px; line-height: 30px; }
.single-post__content h2 { margin: 56px 0 20px; font-size: 32px; line-height: 40px; font-weight: 400; scroll-margin-top: 120px; }
.single-post__content h3 { margin: 36px 0 14px; font-size: 22px; line-height: 30px; }
.single-post__content blockquote { margin: 40px 0; padding: 8px 0 8px 28px; border-left: 3px solid var(--gold); }
.single-post__content blockquote p { margin: 0; font-family: var(--font-head); font-weight: 300; font-size: 26px; line-height: 36px; color: var(--ink); }
.single-post__content table { width: 100%; border-collapse: collapse; margin: 28px 0 32px; }
.single-post__content th, .single-post__content td { padding: 16px 20px; border: 1px solid var(--stroke); text-align: left; }
.single-post__content th { background: var(--whybg); font-size: 12px; letter-spacing: 1px; text-transform: uppercase; }
.single-post__content thead {border-bottom: 1px solid;}
.single-post__content .container { max-width: none; padding-left: 0; padding-right: 0; }
.single-post__content ul { margin: 24px 0 32px; padding-left: 26px; }
.single-post__content li::marker { color: var(--gold); }
.single-post__content details { position: relative; border-top: 1px solid var(--stroke); }
.single-post__content details:last-child { border-bottom: 1px solid rgba(198,198,205,.6); }
.single-post__content details summary { position: relative; display: block; padding: 24px 42px 24px 0; font-family: var(--font-head); font-weight: 500; font-size: 18px; line-height: 26px; color: var(--ink); cursor: pointer; list-style: none; }
.single-post__content details summary::-webkit-details-marker { display: none; }
.single-post__content details summary > .accordion-sign { position: absolute; right: 0; top: 50%; margin-top: -9px; }
.single-post__content details p { margin: 0 0 24px; font-size: 17px; line-height: 27px; }
.single-post__next { padding: 40px 0; background: var(--whybg); border-top: 1px solid rgba(198,198,205,.5); }
.single-post__next .container { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.single-post__next-label { margin-bottom: 8px; font-size: 12px; letter-spacing: 1.2px; text-transform: uppercase; }
.single-post__next div > a:not(.btn) { font-family: var(--font-head); font-weight: 500; font-size: 24px; color: var(--ink); }
.related-posts { background: #fff; }
.related-posts h2 { margin-bottom: 40px; font-size: 32px; line-height: 40px; letter-spacing: -.32px; font-weight: 400; }

/* ---- Blok: Tytuł strony ---- */
.page-title-block { padding: 48px 0 40px; }
.page-title-block.has-bg { background: #1c1b19; background-size: cover; background-position: center; }
.page-title-block.has-bg, .page-title-block.has-bg h1 { color: #fff; }
.page-title-block.has-bg::after { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.5); z-index: 0; }
.page-title-block .container { position: relative; z-index: 1; }
.page-title-block__grid { display: flex; flex-direction: column; gap: 24px; }
.page-title-block__intro { max-width: 640px; margin-top: 16px; }
.page-title-block__counter-num { font-family: var(--font-head); font-weight: 500; font-size: 56px; line-height: 1; color: var(--gold); }
.page-title-block__counter-label { font-size: 14px; color: var(--body); text-transform: uppercase; letter-spacing: 1px; }
.page-title-block__stats { gap: 0; margin-top: 48px; border-top: 1px solid rgba(198,198,205,.5); }
.page-title-block .page-title-block__stats .stats-block__item { background: transparent; padding: 32px 0; }
.page-title-block.has-bg .page-title-block__stats .stats-block__num { color: #fff; }
.page-title-block.has-bg .page-title-block__stats .stats-block__label { color: rgba(255,255,255,.75); }

/* Karty szybkiego kontaktu (opcjonalny wariant page-title, np. strona Kontakt) */
.page-title-block__quick { display: flex; flex-direction: column; gap: 12px; width: 100%; }
.page-title-quick { display: flex; align-items: center; gap: 16px; background: #fff; text-decoration: none; padding: 20px; box-shadow: 0 4px 30px rgba(0,0,0,.05); transition: transform .15s; }
.page-title-quick:hover { transform: translateY(-2px); }
.page-title-quick__icon { flex: none; color: var(--gold); display: inline-flex; }
.page-title-quick__icon svg { width: 22px; height: 26px; }
.page-title-quick__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.page-title-quick__label { font-size: 11px; letter-spacing: 1.2px; text-transform: uppercase; color: var(--body); }
.page-title-quick__value { font-family: var(--font-head); font-weight: 500; font-size: 18px; color: var(--ink); overflow-wrap: anywhere; }

/* ---- Blok: Hero Slider ---- */
.hero-slider { position: relative; min-height: 640px; display: flex; align-items: center; background: #1c1b19; overflow: hidden; padding: 120px 0 80px; }
.hero-slider__bg { position: absolute; inset: 0; }
.hero-slider__media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: opacity 1.4s ease; }
.hero-slider__youtube { overflow: hidden; pointer-events: none; }
.hero-slider__youtube iframe { position: absolute; top: 50%; left: 50%; width: 100vw; height: 56.25vw; min-width: 177.78vh; min-height: 100vh; border: 0; transform: translate(-50%, -50%); }
.hero-slider__overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.62), rgba(0,0,0,.35) 60%, rgba(0,0,0,.2)); }
.hero-slider__dots { position: absolute; right: 24px; bottom: 24px; z-index: 4; display: flex; gap: 12px; }
.hero-slider__dots button { width: 32px; height: 3px; border: none; padding: 0; cursor: pointer; background: rgba(255,255,255,.4); transition: background .3s; }
.hero-slider__dots button.is-active { background: #fff; }
.hero-slider__inner { position: relative; z-index: 3; }
.hero-slider__grid { display: grid; grid-template-columns: 1fr; gap: 40px; align-items: center; }
.hero-slider__content .eyebrow { letter-spacing: 3.6px; }
.hero-slider__lead h1 { color: #fff; }
.hero-slider__lead h2 {margin-top: 0;color: white;font-size: 40px;}
.hero-slider__lead p { color: rgba(255,255,255,.85); font-size: 18px; line-height: 28px; max-width: 540px; }
.hero-slider__buttons { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 32px; }
.hero-slider__quick { display: flex; flex-direction: column; gap: 16px; }
.hero-quick { display: flex; align-items: center; justify-content: space-between; gap: 16px; background: rgba(255,255,255,.08); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); box-shadow: inset 0 0 0 1px rgba(255,255,255,.14); padding: 22px 24px; color: #fff; }
.hero-quick span { font-weight: 600; font-size: 14px; letter-spacing: 1.4px; text-transform: uppercase; }
.hero-quick:hover { background: rgba(255,255,255,.16); color: #fff; }

/* ---- Blok: Wyszukiwarka ---- */
.search-box { padding: 0; position: relative; z-index: 5; margin-top: -44px; }
.search-box__form { background: #fff; box-shadow: 0 12px 40px rgba(0,0,0,.10); padding: 24px; display: grid; grid-template-columns: 1fr; gap: 18px; align-items: end; }
.search-box__field label { display: block; font-weight: 600; font-size: 12px; letter-spacing: 1.2px; color: var(--body); margin-bottom: 8px; }
.search-box__submit { height: 56px; }

/* ---- Blok: Wyróżniona inwestycja ---- */
.featured-investment__card { display: grid; grid-template-columns: 1fr; background: var(--whybg); }
.featured-investment__media { position: relative; aspect-ratio: 3/2; overflow: hidden; }
.featured-investment__media img { width: 100%; height: 100%; object-fit: cover; }
.featured-investment__media .badge { position: absolute; top: 24px; left: 24px; }
.featured-investment__body {
    padding: 20px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 24px;
}
.featured-investment__loc { display: flex; align-items: center; gap: 8px; font-size: 15px; color: var(--body); }
.featured-investment__stats { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: rgba(198,198,205,.5); }
.featured-investment__stat { background: var(--whybg); padding: 18px 12px; }
.featured-investment__stat-value {
    font-family: var(--font-head);
    font-weight: 500;
    font-size: 20px;
    line-height: 1.4;
    color: var(--ink);
}
.featured-investment__stat-label { font-size: 13px; letter-spacing: .5px; text-transform: uppercase; color: var(--body); margin-top: 4px; }
.featured-investment__body .btn { align-self: flex-start; }

/* ---- Blok: Realizacja z galerią ---- */
.realization-gallery__grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 40px; align-items: center; }
.realization-gallery__grid > * { min-width: 0; }
.realization-gallery__gallery-label { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; font-size: 12px; letter-spacing: 1px; text-transform: uppercase; color: var(--body); }
.realization-gallery .investment-hero__thumb { height: auto; aspect-ratio: 1/1; }
.realization-gallery__body { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; }
.realization-gallery__body h2 { margin: 0; }
.realization-gallery__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 12px; letter-spacing: 1.2px; text-transform: uppercase; }
.realization-gallery__meta span { color: var(--body); }
.realization-gallery__meta strong { color: var(--gold); }
.realization-gallery__text { max-width: 520px; }
.realization-gallery__stats { width: 100%; gap: 0; background: transparent; border: 1px solid rgba(198,198,205,.5); }
.realization-gallery__stats .featured-investment__stat { background: transparent; }
.realization-gallery__stats .featured-investment__stat:nth-child(odd):not(:last-child) { border-right: 1px solid rgba(198,198,205,.5); }
.realization-gallery__stats .featured-investment__stat:nth-child(n+3) { border-top: 1px solid rgba(198,198,205,.5); }
.section--dark .realization-gallery__gallery-label,
.section--dark .realization-gallery__meta span { color: rgba(255,255,255,.55); }
.section--dark .realization-gallery__stats { background: transparent; border-color: rgba(255,255,255,.18); }
.section--dark .realization-gallery__stats .featured-investment__stat { border-color: rgba(255,255,255,.18); }
.section--dark .realization-gallery__stats .featured-investment__stat-value { color: #fff; }
.section--dark .realization-gallery__stats .featured-investment__stat-label { color: rgba(255,255,255,.65); }
.section--dark .realization-gallery__text p { color: rgba(255,255,255,.7); }

/* ---- Blok: Kolumny CTA z obrazem ---- */
.image-cta-columns__grid { display: grid; grid-template-columns: 1fr; gap: 24px; }
.image-cta-columns__card { position: relative; overflow: hidden; min-height: 420px; display: flex; align-items: flex-end; }
.image-cta-columns__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.image-cta-columns__card.is-dark { background: #1c1b19; }
.image-cta-columns__card.is-dark .image-cta-columns__img { opacity: .7; }
.image-cta-columns__card.is-light { background: var(--whybg); }
.image-cta-columns__overlay { position: absolute; inset: 0; }
.image-cta-columns__card.is-dark .image-cta-columns__overlay { background: linear-gradient(180deg, rgba(0,0,0,.15), rgba(0,0,0,.78)); }
.image-cta-columns__card.is-light .image-cta-columns__overlay {
    background: linear-gradient(180deg, rgb(255 255 255 / 60%), rgba(255, 255, 255, .92));
}
.image-cta-columns__body { position: relative; z-index: 2; padding: 32px; max-width: 420px; }
.image-cta-columns__card.is-dark h3 { color: #fff; }
.image-cta-columns__card.is-dark p { color: rgba(255,255,255,.78); }
.image-cta-columns__card.is-light h3 { color: var(--ink); }
.image-cta-columns__card.is-light p { color: var(--body); }
.image-cta-columns__body p { margin-bottom: 24px; }

/* ---- Blok: Telefony - działy ---- */
.departments-phones__grid { display: grid; grid-template-columns: 1fr; gap: 1px; background: rgba(198,198,205,.5); border: 1px solid rgba(198,198,205,.5); }
.departments-phones__item { background: #fff; padding: 26px 24px; text-decoration: none; display: flex; flex-direction: column; gap: 14px; transition: background .15s; }
.departments-phones__item:hover { background: var(--whybg); }
.departments-phones__icon { width: 38px; height: 38px; background: var(--whybg); display: flex; align-items: center; justify-content: center; color: var(--gold); flex: none; }
.departments-phones__dept { font-weight: 600; font-size: 12px; letter-spacing: 1px; text-transform: uppercase; color: var(--body); }
.departments-phones__number { font-family: var(--font-head); font-weight: 500; font-size: 20px; color: var(--ink); }

/* ---- Blok: Statystyki ---- */
.stats-block__intro { max-width: 760px; margin: 0 auto; }
.stats-block__grid { display: grid; grid-template-columns: 1fr; gap: 8px; }
.stats-block__item {
    background: var(--statbg);
    padding: 32px 20px;
    text-align: left;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
}
.section--dark .stats-block__item { background: transparent; }
.stats-block__num { font-family: var(--font-head); font-weight: 300; font-size: 44px; line-height: 1.05; color: var(--ink); margin-bottom: 10px; }
.section--dark .stats-block__num { color: #fff; }
.stats-block__label { font-size: 16px; line-height: 24px; color: var(--body); }
.section--dark .stats-block__label { color: rgba(255,255,255,.7); }

/* Wariant tabelaryczny. Na single inwestycji jest automatycznie dodawany
   wyłącznie do pierwszego bloku stats. W innych miejscach można użyć klasy
   stats-block--table w istniejącym polu "Dodatkowe klasy". */
.stats-block--table .stats-block__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    border-top: 1px solid var(--stroke);
    border-left: 1px solid var(--stroke);
    background: #fff;
}
.stats-block--table .stats-block__item {
    background: #fff;
    border-right: 1px solid var(--stroke);
    border-bottom: 1px solid var(--stroke);
    padding: 24px 18px;
}
.stats-block--table .stats-block__item.fade-up {
    opacity: 1;
    transform: none;
    transition: none;
}
.stats-block--table .stats-block__num { color: var(--ink); font-size: 36px; margin-bottom: 8px; }
.stats-block--table .stats-block__label { color: var(--body); }

/* ---- Blok: Media i tekst ---- */
.media-text__grid { display: grid; grid-template-columns: 1fr; gap: 32px; align-items: center; }
.media-text__media img, .media-text__media video { width: 100%; aspect-ratio: 4/5; object-fit: cover; }
.media-text.is-landscape .media-text__media img, .media-text.is-landscape .media-text__media video { aspect-ratio: 16/9; }
.media-text.is-fill .media-text__media { position: relative; min-height: 320px; }
.media-text.is-fill .media-text__media img,
.media-text.is-fill .media-text__media video { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; }
.media-text.outside.is-fill { padding-top: 0; }
.media-text.outside.is-fill .media-text__body-inner { padding-top: 40px; }
.media-text__yt { position: relative; padding-top: 56.25%; }
.media-text__yt iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.media-text__body .btn { margin-top: 24px; }

/* Wariant "outside" (pełna szerokość, np. sekcja "Lifestyle") - obraz wypełnia kolumnę
   przez object-fit:cover + min-height. Aspect-ratio (4:5/16:9) jest tu nieużywany, bo przy
   szerokich kolumnach (pół szerokości ekranu) nienaturalnie rozciągałby całą sekcję. */
.media-text.outside .media-text__grid { align-items: stretch; }
.media-text.outside .media-text__media { position: relative; min-height: 320px; }
.media-text.outside .media-text__media img,
.media-text.outside .media-text__media video { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; }
/* Kolumna tekstu: pionowe wyśrodkowanie, przycisk POD tekstem (flex-column),
   treść ograniczona szerokością, by nie wychodziła poza czytelną kolumnę. */
.media-text.outside .media-text__body { display: flex; flex-direction: column; align-items: stretch; justify-content: center; }
.media-text.outside .media-text__body-inner { width: 100%; padding: 0 24px; }
.media-text.outside .media-text__body .rte { max-width: 520px; }

/* ---- Blok: Kolumny z ikonami ---- */
.icon-text-columns__cards { display: grid; grid-template-columns: 1fr; gap: 24px; }
.icon-text-columns__card { background: #fff; box-shadow: 0 4px 30px rgba(0,0,0,.03); padding: 32px; }
.section--gray .icon-text-columns__card { background: #fff; }
.icon-text-columns__icon { display: inline-flex; margin-bottom: 18px; color: var(--gold); }
.icon-text-columns__icon img { width: 28px; height: 28px; }
.icon-text-columns__icon svg { width: 26px; height: 32px; }
.icon-text-columns__card h4 { margin-bottom: 12px; }
.icon-text-columns__content { margin-top: 20px; }
.icon-text-columns--stacked .icon-text-columns__cards { gap: 1px; background: rgba(198,198,205,.5); border: 1px solid rgba(198,198,205,.5); }
.icon-text-columns--stacked .icon-text-columns__card { box-shadow: none; }

/* ---- Blok: Treść ze statystykami ---- */
.content-stats__grid { display: grid; grid-template-columns: 1fr; gap: 40px; align-items: start; }
.content-stats__stats { display: grid; grid-template-columns: 1fr; gap: 1px; background: rgba(198,198,205,.5); border: 1px solid rgba(198,198,205,.5); }
.content-stats__stat { background: #fff; padding: 28px; }
.content-stats__value { font-family: var(--font-head); font-weight: 400; font-size: 36px; line-height: 1; color: var(--ink); margin-bottom: 8px; }
.content-stats__label { font-size: 13px; letter-spacing: .5px; text-transform: uppercase; color: var(--body); }

/* ---- Blok: Galeria - siatka ---- */
.gallery-grid-block__intro { margin-bottom: 32px; }
.gallery-grid-block__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.gallery-grid-block__item { display: block; aspect-ratio: 1/1; overflow: hidden; }
.gallery-grid-block__item img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.01); transition: transform .6s; }
.gallery-grid-block__item:hover img { transform: scale(1.06); }
.gallery-grid-block__grid[data-photos="3"] { grid-template-columns: 1fr; grid-auto-rows: 220px; }
.gallery-grid-block__grid[data-photos="3"] .gallery-grid-block__item { aspect-ratio: auto; }

/* ---- Blok: Karty z obrazem i tekstem ---- */
.feature-cards__grid { display: grid; grid-template-columns: 1fr; gap: 32px; }
.feature-cards__card { display: flex; flex-direction: column; height: 100%; }
.feature-cards__media { display: block; aspect-ratio: 4/3; overflow: hidden; margin-bottom: 24px; }
.feature-cards__media img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.01); transition: transform .45s ease; }
a.feature-cards__media:hover img { transform: scale(1.04); }
.feature-cards__card h3 { font-size: 20px; margin-bottom: 10px; }
.feature-cards__card > p { margin-bottom: 0; }
.feature-cards__title-link { color: inherit; }
.feature-cards__title-link:hover { color: var(--gold); }
.feature-cards__button-wrap { margin-top: auto; padding-top: 20px; }

/* Checklista (WYSIWYG, np. "Zakres prac") - lista z ikoną check zamiast wypunktowania.
   Klasa "checklist" trafia na <section> przez pole "Dodatkowe klasy" bloku text-block. */
.checklist .rte ul { list-style: none; margin: 0; padding: 0; }
.checklist .rte li { display: flex; align-items: center; gap: 14px; padding: 18px 0; border-bottom: 1px solid var(--stroke); margin: 0; }
.checklist .rte li::before {
    content: ""; flex: none; width: 20px; height: 20px;
    background: var(--gold);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m8.5 12 2.5 2.5 4.5-5'/%3E%3C/svg%3E") center/contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m8.5 12 2.5 2.5 4.5-5'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* ---- Blok: Opinie ---- */
.reviews-block__rating { display: flex; align-items: center; gap: 18px; }
.reviews-block__rating-num { font-family: var(--font-head); font-weight: 500; font-size: 48px; line-height: 1; color: var(--ink); }
.reviews-block__stars { display: flex; gap: 3px; color: var(--gold); margin-bottom: 6px; }
.reviews-block__count { font-size: 14px; color: var(--body); border-bottom: 1px solid var(--stroke); }
.reviews-block__grid { display: grid; grid-template-columns: 1fr; gap: 24px; }
.reviews-block__card { background: #fff; box-shadow: 0 4px 30px rgba(0,0,0,.05); padding: 32px; display: flex; flex-direction: column; gap: 18px; }
.reviews-block__quote { font-family: var(--font-head); font-size: 18px; line-height: 28px; color: var(--ink); margin: 0; }
.reviews-block__author { display: flex; align-items: center; gap: 12px; margin-top: auto; }
.reviews-block__author-name { font-weight: 600; font-size: 14px; color: var(--ink); }
.reviews-block__author-ctx { font-size: 13px; color: var(--body); }
.reviews-block__read-more {
    align-self: flex-start;
    background: none; border: 0; padding: 0; cursor: pointer;
    font-size: 14px; font-weight: 600; color: var(--gold);
    border-bottom: 1px solid var(--gold);
    transition: color .18s, border-color .18s;
}
.reviews-block__read-more:hover { color: var(--gold-dk); border-color: var(--gold-dk); }

/* ---- Blok: Opinie Karuzela ---- */
/* Viewport przycina slajdy poza kadrem, a karuzela ma overflow:visible +
   pionowy padding, dzięki czemu pełny cień kart jest widoczny (jak w gridzie). */
.reviews-carousel__viewport { overflow: hidden; }
/* Podwójna klasa, aby przebić .swiper { overflow:hidden } z biblioteki Swiper. */
.reviews-carousel .reviews-carousel__carousel {
    width: 100%;
    overflow: visible;
    padding: 22px 0 34px;
    --swiper-theme-color: var(--gold);
    --swiper-pagination-bullet-inactive-opacity: .5;
}
.reviews-carousel__carousel .swiper-slide { height: auto; }
.reviews-carousel__card { height: 100%; box-sizing: border-box; }

/* Sterowanie: małe strzałki tuż obok wyśrodkowanych dotów (15px gapu) */
.reviews-carousel__controls {
    display: flex; align-items: center; justify-content: center;
    gap: 15px; margin-top: 4px;
    /* zmienne Swipera muszą być tu, bo paginacja jest poza elementem .swiper */
    --swiper-theme-color: var(--gold);
    --swiper-pagination-color: var(--gold);
    --swiper-pagination-bullet-inactive-opacity: .4;
}
.reviews-carousel__controls .swiper-button-prev,
.reviews-carousel__controls .swiper-button-next {
    position: static !important; inset: auto !important; margin: 0 !important; transform: none !important;
    flex: 0 0 auto;
    width: 36px; height: 36px; border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    background: #fff; color: var(--ink); border: 1px solid var(--stroke);
    box-shadow: 0 2px 12px rgba(0,0,0,.08); cursor: pointer;
    transition: color .18s, background .18s, border-color .18s;
}
.reviews-carousel__controls .swiper-button-prev:hover,
.reviews-carousel__controls .swiper-button-next:hover { color: var(--gold); border-color: var(--gold); }
.reviews-carousel__controls .swiper-button-prev::after,
.reviews-carousel__controls .swiper-button-next::after { display: none; }
.reviews-carousel__controls .swiper-button-prev svg,
.reviews-carousel__controls .swiper-button-next svg { width: 18px; height: 18px; }
.reviews-carousel__controls .swiper-button-disabled { opacity: .35; cursor: default; }
.reviews-carousel__controls .swiper-pagination {
    position: static !important; width: auto !important;
    inset: auto !important; margin: 0 !important; transform: none !important;
    flex: 0 0 auto;
    display: inline-flex; align-items: center; gap: 6px;
}
.reviews-carousel__controls .swiper-pagination-bullet {
    margin: 0 !important;
}
.reviews-carousel__all { text-align: center; margin-top: 28px; }
.section--dark .reviews-carousel__card { background: rgba(255,255,255,.04); }
.section--dark .reviews-carousel__card .reviews-block__quote,
.section--dark .reviews-carousel__card .reviews-block__author-name { color: #fff; }
.section--dark .reviews-carousel__card .reviews-block__author-ctx { color: rgba(255,255,255,.6); }

/* Modal opinii */
body.reviews-modal-open { overflow: hidden; }
.reviews-modal {
    position: fixed; inset: 0; z-index: 100000;
    opacity: 0; visibility: hidden; pointer-events: none;
    transition: opacity .25s ease, visibility .25s ease;
}
.reviews-modal.is-open { opacity: 1; visibility: visible; pointer-events: auto; }
.reviews-modal__overlay { position: absolute; inset: 0; background: rgba(25,28,31,.55); }
.reviews-modal__dialog {
    position: relative; z-index: 1;
    width: min(920px, calc(100vw - 40px));
    max-height: min(80vh, 820px);
    margin: 10vh auto;
    background: #fff;
    box-shadow: 0 24px 80px rgba(0,0,0,.28);
    display: flex; flex-direction: column;
    overflow: hidden;
}
.reviews-modal__header {
    flex: 0 0 auto;
    display: flex; align-items: center; justify-content: space-between; gap: 16px;
    padding: 24px 28px;
    border-bottom: 1px solid var(--stroke);
}
.reviews-modal__header h2 { margin: 0; font-size: 24px; }
.reviews-modal__close {
    flex: none; width: 44px; height: 44px;
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--whybg); border: 0; border-radius: 50%;
    color: var(--ink); cursor: pointer; transition: background .18s, color .18s;
}
.reviews-modal__close:hover { background: var(--gold); color: #fff; }
.reviews-modal__track {
    overflow-y: auto; padding: 28px;
    display: flex; flex-direction: column; gap: 20px;
    scrollbar-width: thin; scrollbar-color: var(--stroke) transparent;
}
.reviews-modal__card { transition: box-shadow .3s ease, transform .3s ease; }
.reviews-modal__card.is-highlighted { box-shadow: 0 0 0 2px var(--gold), 0 8px 40px rgba(185,151,91,.25); }

/* ---- Blok: CTA ---- */
.cta-block__inner { text-align: center; max-width: 720px; margin: 0 auto; }
.cta-block__text { margin: 16px 0 32px; }
.cta-block__buttons { display: flex; flex-wrap: wrap; gap: 16px; justify-content: center; }

/* ---- Blok: Blok tekstowy ---- */
.text-block__inner { max-width: 100%; }
.text-block.is-narrow .text-block__inner { max-width: 900px; }

/* ---- Tekst ze spisem treści (bloczek "text-with-toc") ---- */
.text-with-toc__layout { display: grid; grid-template-columns: minmax(0,720px); justify-content: center; gap: 56px; align-items: start; }
.text-with-toc__toc { display: none; }
.text-with-toc__toc-title { font-weight: 600; font-size: 12px; letter-spacing: 1.2px; text-transform: uppercase; color: var(--body); margin-bottom: 20px; }
.text-with-toc__toc nav { display: flex; flex-direction: column; border-left: 1px solid rgba(198,198,205,.6); }
.text-with-toc__toc nav a {
    padding: 9px 0 9px 18px;
    margin-left: -1px;
    border-left: 2px solid transparent;
    font-size: 14px;
    line-height: 20px;
    color: var(--body);
    transition: color .15s ease, border-color .15s ease;
}
.text-with-toc__toc nav a.is-active { color: var(--ink); border-color: var(--gold); }
.text-with-toc__content { min-width: 0; }
.text-with-toc__content > p:first-child { font-size: 19px; line-height: 30px; color: var(--ink); }
.text-with-toc__content p, .text-with-toc__content li { font-size: 17px; line-height: 29px; }
.text-with-toc__content h2 { margin: 64px 0 18px; font-size: 30px; line-height: 38px; font-weight: 400; letter-spacing: -.3px; scroll-margin-top: 120px; }
.text-with-toc__content h2:first-child { margin-top: 0; }
.text-with-toc__content h3 { margin: 32px 0 12px; font-size: 19px; line-height: 26px; font-weight: 500; }
.text-with-toc__content ul { padding-left: 22px; }

/* ---- Blok: Galeria ---- */
.gallery-block__intro { margin-bottom: 32px; }
.gallery-block__carousel { width: 100%; aspect-ratio: 16/9; --swiper-theme-color: var(--gold); --swiper-pagination-bullet-inactive-opacity: .5; }
.gallery-block__carousel .swiper-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gallery-block__carousel .swiper-button-prev,
.gallery-block__carousel .swiper-button-next {
    width: 44px;
    height: 44px;
    background: rgba(255,255,255,.92);
    color: var(--ink);
}
.gallery-block__carousel .swiper-button-prev::after,
.gallery-block__carousel .swiper-button-next::after { display: none; }
.gallery-block__carousel .swiper-button-prev:hover,
.gallery-block__carousel .swiper-button-next:hover { background: #fff; color: var(--gold); }
.gallery-block__carousel .swiper-button-prev svg,
.gallery-block__carousel .swiper-button-next svg { width: 24px; height: 24px; }

/* ---- Blok: Mapa ---- */
.map-block__full { width: 100vw; max-width: 100%; margin-right: auto; margin-left: auto; }
.map-block__frame { position: relative; }
.map-block__frame iframe { width: 100%; min-height: 400px; border: 0; display: block; }

/* ---- Blok: FAQ ---- */
.faq-block.is-narrow .container { max-width: 920px; }
.faq-block__list { border-top: 1px solid var(--stroke); }
.faq-block__item { border-bottom: 1px solid var(--stroke); }
.faq-block__q { width: 100%; background: none; border: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 24px 0; text-align: left; font-family: var(--font-head); font-size: 18px; color: var(--ink); }
.section--dark .faq-block__q { color: #fff; }
.accordion-sign { display: block; width: 18px; height: 18px; flex: none; overflow: visible; color: var(--gold); }
.accordion-sign path { fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: butt; vector-effect: non-scaling-stroke; }
.accordion-sign__vertical { stroke-dasharray: 1 0; transition: stroke-dasharray .25s ease; }
.faq-block__item.is-open .accordion-sign__vertical,
.floor-picker__item.is-open .accordion-sign__vertical,
.single-post__content details[open] .accordion-sign__vertical { stroke-dasharray: 0 1; }
.faq-block__a { max-height: 0; overflow: hidden; transition: max-height .3s ease; }
.faq-block__item.is-open .faq-block__a { max-height: 600px; }
.faq-block__a .rte { padding-bottom: 24px; }

/* ---- Blok: Kroki procesu ---- */
.steps-block__grid { display: grid; grid-template-columns: 1fr; gap: 24px; }
.steps-block__item { padding: 28px; background: #fff; box-shadow: 0 4px 30px rgba(0,0,0,.03); }
.section--dark .steps-block__item, .section--gray .steps-block__item { background: #fff; }
.section--dark .steps-block__item { background: rgba(255,255,255,.04); }
.steps-block__num { font-family: var(--font-head); font-weight: 400; font-size: 40px; color: var(--gold); margin-bottom: 12px; }
.section--dark .steps-block__item h4 { color: #fff; }
.section--dark .steps-block__item p { color: rgba(255,255,255,.7); }

/* ---- Blok: Zespół ---- */
.team-block__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.team-block__avatar { aspect-ratio: 1/1; background: var(--whybg); display: flex; align-items: center; justify-content: center; margin-bottom: 20px; overflow: hidden; }
.team-block__avatar img { width: 100%; height: 100%; object-fit: cover; }
.team-block__initials { font-family: var(--font-head); font-weight: 300; font-size: 48px; color: var(--gold); }
.team-block__name { font-family: var(--font-head); font-weight: 500; font-size: 18px; color: var(--ink); }
.team-block__role { font-size: 14px; color: var(--body); }

/* ---- Blok: Partnerzy ---- */
.logos-block__title { text-align: center; font-weight: 600; font-size: 12px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--body); margin-bottom: 32px; }
.logos-block__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: rgba(198,198,205,.4); border: 1px solid rgba(198,198,205,.4); }
.logos-block__item { display: flex; align-items: center; justify-content: center; height: 110px; padding: 16px; background: #fff; color: var(--body); font-family: var(--font-head); font-weight: 500; font-size: 18px; }
.logos-block__item img { max-height: 48px; width: auto; filter: grayscale(1); opacity: .7; }

/* ---- Blok: Harmonogram ---- */
.timeline-block .section-head { margin-bottom: 48px; }
.timeline-block__list { display: flex; flex-direction: column; }
.timeline-block__item { position: relative; padding: 0 0 28px 34px; }
.timeline-block__item:last-child { padding-bottom: 0; }
.timeline-block__rail { position: absolute; left: 0; top: 0; bottom: 0; display: flex; flex-direction: column; align-items: center; }
.timeline-block__dot { position: relative; z-index: 1; width: 16px; height: 16px; flex: none; border-radius: 50%; background: rgba(198,198,205,.45); box-shadow: 0 0 0 4px rgba(198,198,205,.16); }
.timeline-block__line { width: 2px; min-height: 36px; flex: 1; background: rgba(198,198,205,.6); }
.timeline-block__item:last-child .timeline-block__line { display: none; }
.section--dark .timeline-block__line { background: rgba(255,255,255,.2); }
.timeline-block__item.is-done .timeline-block__dot { background: var(--gold); box-shadow: 0 0 0 4px rgba(185,151,91,.18); }
.timeline-block__item.is-current .timeline-block__dot { background: var(--gold); box-shadow: 0 0 0 4px rgba(185,151,91,.18); }
.timeline-block__item.is-done .timeline-block__line { background: var(--gold); }
.timeline-block__date { font-weight: 600; font-size: 12px; letter-spacing: 1px; text-transform: uppercase; color: var(--gold); margin-bottom: 8px; }
.timeline-block__title { font-family: var(--font-head); font-weight: 500; font-size: 20px; line-height: 28px; color: var(--ink); margin-bottom: 6px; }
.timeline-block__body p { margin: 0; font-size: 13px; color: var(--body); }
.section--dark .timeline-block__title { color: #fff; }
.section--dark .timeline-block__body p { color: rgba(255,255,255,.55); }

/* ---- Blok: Harmonogram i checklista (dwie kolumny) ---- */
.timeline-checklist__grid { display: grid; grid-template-columns: 1fr; gap: 48px; align-items: start; }
.timeline-checklist__col .eyebrow { margin-bottom: 24px; }
.timeline-checklist__timeline { display: flex; flex-direction: column; }
.timeline-checklist__timeline-item { display: grid; grid-template-columns: 14px minmax(0, 1fr); column-gap: 20px; min-width: 0; }
.timeline-checklist__rail { display: flex; flex-direction: column; align-items: center; min-height: 100%; }
.timeline-checklist__dot { position: relative; z-index: 1; width: 14px; height: 14px; flex: none; border-radius: 50%; background: rgba(198,198,205,.45); box-shadow: 0 0 0 4px rgba(198,198,205,.16); }
.timeline-checklist__line { width: 2px; min-height: 36px; flex: 1; background: rgba(198,198,205,.6); }
.timeline-checklist__timeline-item:last-child .timeline-checklist__line { display: none; }
.timeline-checklist__timeline-item.is-done .timeline-checklist__dot,
.timeline-checklist__timeline-item.is-current .timeline-checklist__dot { background: var(--gold); box-shadow: 0 0 0 4px rgba(185,151,91,.18); }
.timeline-checklist__content { min-width: 0; padding-bottom: 28px; }
.timeline-checklist__timeline-item:last-child .timeline-checklist__content { padding-bottom: 0; }
.timeline-checklist__date { margin-bottom: 4px; font-weight: 600; font-size: 12px; letter-spacing: 1px; text-transform: uppercase; color: var(--gold); }
.timeline-checklist__title { font-family: var(--font-head); font-weight: 500; font-size: 19px; line-height: 26px; color: var(--ink); }
.timeline-checklist__list { display: flex; flex-direction: column; }
.timeline-checklist__row { display: flex; align-items: center; gap: 14px; padding: 18px 0; border-bottom: 1px solid rgba(198,198,205,.5); }
.timeline-checklist__row svg { flex: none; }
.timeline-checklist__row span { font-size: 16px; color: var(--ink); }
.section--dark .timeline-checklist__row { border-color: rgba(255,255,255,.15); }
.section--dark .timeline-checklist__row span { color: #fff; }
.section--dark .timeline-checklist__line { background: rgba(255,255,255,.2); }
.section--dark .timeline-checklist__title { color: #fff; }

/* ---- Blok: Przed / po ---- */
.before-after__wrap { position: relative; aspect-ratio: 16/9; overflow: hidden; user-select: none; }
.before-after__base, .before-after__top img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.before-after__top { position: absolute; inset: 0; z-index: 2; clip-path: inset(0 50% 0 0); }
.before-after__handle { position: absolute; top: 0; bottom: 0; left: 50%; z-index: 4; width: 2px; background: #fff; transform: translateX(-1px); pointer-events: none; box-shadow: 0 0 12px rgba(0,0,0,.3); }
.before-after__handle::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #fff url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9 7L4 12L9 17M15 7L20 12L15 17' stroke='%23191C1F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 20px 20px no-repeat;
    box-shadow: 0 2px 12px rgba(0,0,0,.25);
    transform: translate(-50%, -50%);
}
.before-after__label { position: absolute; top: 18px; z-index: 1; background: rgba(0,0,0,.7); color: #fff; font-size: 11px; letter-spacing: 1px; text-transform: uppercase; padding: 6px 12px; }
.before-after__label--a { right: 18px; background: var(--gold); }
.before-after__label--b { left: 18px; z-index: 3; }
.before-after__wrap input[type=range] { position: absolute; inset: 0; z-index: 5; width: 100%; height: 100%; opacity: 0; cursor: ew-resize; box-shadow: none; margin: 0; }

/* ---- Blok: Newsletter ---- */
.newsletter-block__grid { display: grid; grid-template-columns: 1fr; gap: 32px; align-items: center; }
.newsletter-block__inline { display: flex; gap: 12px; flex-wrap: wrap; }
.newsletter-block__inline input { flex: 1; min-width: 200px; }
.newsletter-block__note { font-size: 12px; color: rgba(255,255,255,.5); margin-top: 12px; }
.newsletter-block.section--dark input:not([type=submit]):not([type=checkbox]):not([type=radio]),
.newsletter-block.section--dark textarea,
.newsletter-block.section--dark select {
    background: transparent;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.2);
    color: #fff;
}
.newsletter-block.section--dark input:not([type=submit]):focus,
.newsletter-block.section--dark textarea:focus,
.newsletter-block.section--dark select:focus { box-shadow: inset 0 0 0 1px var(--gold); }
.newsletter-block.section--dark ::placeholder { color: rgba(255,255,255,.4); opacity: 1; }

/* ---- Blok: Formularz kontaktowy ---- */
.contact-form-block__grid { display: grid; grid-template-columns: 1fr; gap: 40px; align-items: start; }
.contact-form-block__intro .rte p { max-width: 440px; }
.contact-form-block__intro .contact-form-block__phone { display: inline-flex; align-items: center; gap: 14px; text-decoration: none; color: var(--gold); margin-top: 32px; }
.contact-form-block__phone span { font-weight: 500; font-size: 28px; }
.advisor-card { display: flex; align-items: center; gap: 18px; padding: 24px; }
.advisor-card--dark { background: rgba(255,255,255,.05); box-shadow: inset 0 0 0 1px rgba(255,255,255,.1); }
.advisor-card--light { background: var(--whybg); box-shadow: none; }
.advisor-card__avatar { width: 64px; height: 64px; border-radius: 50%; background: linear-gradient(135deg, var(--gold), var(--gold-dk)); display: flex; align-items: center; justify-content: center; color: #fff; font-family: var(--font-head); font-weight: 600; font-size: 20px; flex: none; overflow: hidden; }
.advisor-card__avatar img { width: 100%; height: 100%; object-fit: cover; }
.advisor-card__text { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; }
.advisor-card__name { font-family: var(--font-head); font-weight: 500; font-size: 18px; color: var(--ink); }
.advisor-card--dark .advisor-card__name { color: #fff; }
.advisor-card__role { font-size: 13px; color: var(--body); }
.advisor-card--dark .advisor-card__role { color: rgba(255,255,255,.6); }
.advisor-card__phone { display: inline-flex; align-items: center; gap: 10px; margin-top: 6px; font-weight: 500; font-size: 18px; color: var(--gold); text-decoration: none; }
.advisor-card__phone svg { flex: none; color: currentColor; }
.advisor-card__phone:hover { color: var(--gold-dk); }
.advisor-card--dark .advisor-card__phone:hover { color: #fff; }
.contact-form-block__advisor { margin-top: 32px; }
.contact-form-block__form { background: rgba(255,255,255,.05); backdrop-filter: blur(16px); box-shadow: inset 0 0 0 1px rgba(255,255,255,.1); padding: 32px; }
.section:not(.section--dark) .contact-form-block__form { background: #fff; box-shadow: 0 12px 40px rgba(0,0,0,.06); }

/* Stylowanie formularza CF7 zgodne z projektem (etykieta u góry, uppercase; inputy z
   ramką inset; złoty przycisk pełnej szerokości). Działa dla wariantu ciemnego i jasnego. */
.contact-form-block .wpcf7-form p, .contact-info-form .wpcf7-form p { margin: 0 0 20px; display: flex; flex-direction: column; gap: 8px; font-weight: 600; font-size: 12px; letter-spacing: 1.2px; text-transform: uppercase; }
.contact-form-block .wpcf7-form br, .contact-info-form .wpcf7-form br { display: none; }
.contact-form-block .wpcf7-form label, .contact-info-form .wpcf7-form label { display: flex; flex-direction: column; gap: 8px; font-weight: 600; font-size: 12px; letter-spacing: 1.2px; text-transform: uppercase; }
.contact-form-block .wpcf7-form .wpcf7-form-control-wrap, .contact-info-form .wpcf7-form .wpcf7-form-control-wrap { display: block; }
.contact-form-block .wpcf7-form input:not([type=submit]):not([type=checkbox]):not([type=radio]),
.contact-form-block .wpcf7-form textarea,
.contact-form-block .wpcf7-form select,
.contact-info-form .wpcf7-form input:not([type=submit]):not([type=checkbox]):not([type=radio]),
.contact-info-form .wpcf7-form textarea,
.contact-info-form .wpcf7-form select { width: 100%; border: none; border-radius: 0; padding: 14px 12px; font-family: var(--font-body); font-size: 16px; outline: none; }
.contact-form-block .wpcf7-form textarea, .contact-info-form .wpcf7-form textarea { min-height: 110px; resize: vertical; }
/* Wiersz z dwoma polami obok siebie (np. Imię i nazwisko + Telefon) - mobile: stos,
   desktop: 2 kolumny. Owija się wokół pól w treści formularza (patrz .cf7-row w
   bongo_di_kontakt_page_cf7_shortcode()); <p> pól wewnątrz zachowują styl z reguł wyżej. */
.contact-form-block .wpcf7-form .cf7-row, .contact-info-form .wpcf7-form .cf7-row { display: grid; grid-template-columns: 1fr; gap: 20px; margin-bottom: 20px;}
.contact-form-block .wpcf7-form .cf7-row p, .contact-info-form .wpcf7-form .cf7-row p { margin: 0; }
.contact-form-block .wpcf7-submit, .contact-info-form .wpcf7-submit { display: inline-flex; align-items: center; justify-content: center; width: 100%; background: var(--gold); color: #fff; border: none; cursor: pointer; padding: 18px 32px; font-family: var(--font-body); font-weight: 600; font-size: 12px; letter-spacing: 1.2px; text-transform: uppercase; transition: background .15s; }
.contact-form-block .wpcf7-submit:hover, .contact-info-form .wpcf7-submit:hover { background: var(--gold-dk); }
.contact-form-block .wpcf7-spinner, .contact-info-form .wpcf7-spinner { margin: 0 auto; }
.contact-form-block .wpcf7-not-valid-tip, .contact-info-form .wpcf7-not-valid-tip { font-size: 12px; letter-spacing: 0; text-transform: none; color: #f0a98c; font-weight: 500; }
.contact-form-block .wpcf7 form .wpcf7-response-output, .contact-info-form .wpcf7 form .wpcf7-response-output { border-color: rgba(255,255,255,.3); font-size: 13px; letter-spacing: 0; text-transform: none; margin: 8px 0 0; padding: 12px; }

/* Checkbox zgody (RODO): checkbox OBOK tekstu, nie nad nim - nadpisuje ogólną regułę
   "label { flex-direction: column }" (przeznaczoną dla etykiet pól typu "Telefon"),
   która łapała też wewnętrzny <label> checkboxa. Zwykła wielkość liter i waga - to
   tekst zgody, nie etykieta pola. */
.contact-form-block .wpcf7-form .wpcf7-acceptance .wpcf7-list-item, .contact-info-form .wpcf7-form .wpcf7-acceptance .wpcf7-list-item { display: block; margin: 0; }
.contact-form-block .wpcf7-form .wpcf7-acceptance label, .contact-info-form .wpcf7-form .wpcf7-acceptance label {
    flex-direction: row;
    align-items: flex-start;
    gap: 12px;
    font-weight: 400;
    font-size: 13px;
    line-height: 19px;
    letter-spacing: normal;
    text-transform: none;
    cursor: pointer;
}
.contact-form-block .wpcf7-form .wpcf7-acceptance input[type=checkbox], .contact-info-form .wpcf7-form .wpcf7-acceptance input[type=checkbox] {
    margin: 2px 0 0;
    width: 18px;
    height: 18px;
    flex: none;
    accent-color: var(--gold);
    cursor: pointer;
}
.contact-form-block .wpcf7-form .wpcf7-acceptance a, .contact-info-form .wpcf7-form .wpcf7-acceptance a { text-decoration: underline; color: var(--gold); }
/* wariant ciemny: przezroczyste inputy, biały tekst */
.contact-form-block.section--dark .wpcf7-form p, .contact-info-form.section--dark .wpcf7-form p,
.contact-form-block.section--dark .wpcf7-form label, .contact-info-form.section--dark .wpcf7-form label { color: rgba(255,255,255,.55); }
.contact-form-block.section--dark .wpcf7-form input:not([type=submit]):not([type=checkbox]):not([type=radio]),
.contact-form-block.section--dark .wpcf7-form textarea,
.contact-form-block.section--dark .wpcf7-form select,
.contact-info-form.section--dark .wpcf7-form input:not([type=submit]):not([type=checkbox]):not([type=radio]),
.contact-info-form.section--dark .wpcf7-form textarea,
.contact-info-form.section--dark .wpcf7-form select { background: transparent; box-shadow: inset 0 0 0 1px rgba(255,255,255,.2); color: #fff; }
.contact-form-block.section--dark .wpcf7-form input:focus,
.contact-form-block.section--dark .wpcf7-form textarea:focus,
.contact-form-block.section--dark .wpcf7-form select:focus,
.contact-info-form.section--dark .wpcf7-form input:focus,
.contact-info-form.section--dark .wpcf7-form textarea:focus,
.contact-info-form.section--dark .wpcf7-form select:focus { box-shadow: inset 0 0 0 1px var(--gold); }
.contact-form-block.section--dark .wpcf7-form ::placeholder, .contact-info-form.section--dark .wpcf7-form ::placeholder { color: rgba(255,255,255,.4); }
/* wariant jasny: białe inputy z szarą ramką */
.contact-form-block:not(.section--dark) .wpcf7-form p, .contact-info-form:not(.section--dark) .wpcf7-form p,
.contact-form-block:not(.section--dark) .wpcf7-form label, .contact-info-form:not(.section--dark) .wpcf7-form label { color: var(--body); }
.contact-form-block:not(.section--dark) .wpcf7-form input:not([type=submit]):not([type=checkbox]):not([type=radio]),
.contact-form-block:not(.section--dark) .wpcf7-form textarea,
.contact-form-block:not(.section--dark) .wpcf7-form select,
.contact-info-form:not(.section--dark) .wpcf7-form input:not([type=submit]):not([type=checkbox]):not([type=radio]),
.contact-info-form:not(.section--dark) .wpcf7-form textarea,
.contact-info-form:not(.section--dark) .wpcf7-form select { background: #fff; box-shadow: inset 0 0 0 1px var(--stroke); color: var(--ink); }
.contact-form-block:not(.section--dark) .wpcf7-form input:focus,
.contact-form-block:not(.section--dark) .wpcf7-form textarea:focus,
.contact-form-block:not(.section--dark) .wpcf7-form select:focus,
.contact-info-form:not(.section--dark) .wpcf7-form input:focus,
.contact-info-form:not(.section--dark) .wpcf7-form textarea:focus,
.contact-info-form:not(.section--dark) .wpcf7-form select:focus { box-shadow: inset 0 0 0 1px var(--gold); }

/* ---- Blok: Formularz z danymi kontaktowymi ---- */
.contact-info-form__grid { display: grid; grid-template-columns: 1fr; gap: 48px; align-items: start; }
.contact-info-form__form-col h2 { margin-bottom: 8px; }
.contact-info-form__note { font-size: 16px; margin-bottom: 28px; }
.contact-info-form__req { color: var(--gold); }
.contact-info-form__advisor { margin-bottom: 36px; }

.contact-info-form__info { display: flex; flex-direction: column; gap: 28px; border-left: 2px solid var(--gold); padding-left: 28px; margin-bottom: 40px; }
.contact-info-form__info-label { font-weight: 600; font-size: 12px; letter-spacing: 1.2px; text-transform: uppercase; color: var(--body); margin-bottom: 8px; }
.contact-info-form__info-value { font-family: var(--font-head); font-weight: 500; font-size: 18px; line-height: 1.4; color: var(--ink); }
.contact-info-form__info-value--link { text-decoration: none; color: var(--gold); }
.contact-info-form__info-value--link:hover { color: var(--gold-dk); }

.contact-info-form__map { display: block; position: relative; height: 240px; background: var(--whybg); overflow: hidden; text-decoration: none; }
.contact-info-form__map img { width: 100%; height: 100%; object-fit: cover; }
.contact-info-form__map-pin { position: absolute; left: 50%; top: 50%; width: 18px; height: 18px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 6px rgba(185,151,91,.3); transform: translate(-50%, -100%); }
.contact-info-form__map-label { position: absolute; left: 16px; bottom: 16px; background: #fff; color: var(--ink); font-weight: 600; font-size: 12px; letter-spacing: 1px; padding: 10px 16px; box-shadow: 0 4px 16px rgba(0,0,0,.1); }

/* ---- Blok: Lista ofert ---- */
.offers-listing--tight { padding-top: 0; }
.offers-listing__filters { display: flex; flex-direction: column; gap: 20px; padding: 24px 0; margin-bottom: 24px; border-bottom: 1px solid rgba(198,198,205,.5); }
.offers-listing__chip-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.offers-listing__filters-label { font-family: var(--font-body); font-weight: 600; font-size: 12px; letter-spacing: 1px; text-transform: uppercase; color: var(--body); margin-right: 4px; }
.offers-listing__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.offers-listing__selects { display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-end; }
.offers-listing__field { flex: 1 1 160px; min-width: 160px; }
.offers-listing__field-label { font-family: var(--font-body); font-weight: 600; font-size: 11px; letter-spacing: 1.2px; text-transform: uppercase; color: var(--body); margin-bottom: 8px; }
.offers-listing__field-label b { color: var(--ink); font-weight: 600; }
.offers-listing__field select {
    appearance: none; -webkit-appearance: none;
    width: 100%; height: 44px;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' stroke='%236b7280' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 14px center;
    box-shadow: inset 0 0 0 1px var(--stroke);
    padding: 0 38px 0 12px;
    font-family: var(--font-body); font-size: 15px; color: var(--ink);
    cursor: pointer;
}
.offers-listing__field input[type=range] { display: block; width: 100%; margin: 0; box-shadow: none; padding: 0; height: 44px; accent-color: var(--gold); }
.offers-listing__reset { flex: none; align-self: flex-end; height: 44px; text-transform: uppercase; }

/* Aktywna lokalizacja w trybie sprzedaży wyróżniona złotem (status - czarny) */
.offers-listing__filters[data-mode="sale"] .offers-listing__chips--loc .chip.is-active { background: var(--gold); border-color: var(--gold); color: #fff; }

.offers-listing__results-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 20px; }
.offers-listing__count { font-size: 14px; color: var(--body); }
.offers-listing__view-toggle { display: none; gap: 4px; background: var(--whybg); padding: 4px; }
.offers-listing__view-toggle button { display: flex; align-items: center; gap: 8px; background: transparent; color: #9aa0ab; border: none; cursor: pointer; padding: 10px 18px; font-family: var(--font-body); font-weight: 600; font-size: 11px; letter-spacing: 1px; text-transform: uppercase; }
.offers-listing__view-toggle button.is-active { background: #fff; color: var(--ink); }
.offers-listing__grid { display: grid; grid-template-columns: 1fr; gap: 24px; }
.offers-listing__grid[data-layout="list"] { grid-template-columns: 1fr; }
.offer-card { background: #fff; box-shadow: 0 4px 30px rgba(0,0,0,.05); display: flex; flex-direction: column; }
.offer-card__media { position: relative; aspect-ratio: 16/11; overflow: hidden; display: block; }
.offer-card__media img { width: 100%; height: 100%; object-fit: cover; }
.offer-card__media .badge { position: absolute; top: 16px; left: 16px; }
.offer-card__body { padding: 24px; display: flex; flex-direction: column; gap: 10px; }
.offer-card h3 { font-size: 20px; margin: 0; }
.offer-card h3 a { color: var(--ink); }
.offer-card h3 a:hover { color: var(--gold); }
.offer-card__loc { display: flex; align-items: center; gap: 6px; font-size: 14px; color: var(--body); }
.offer-card__meta { font-size: 14px; color: var(--body); }
.offer-card__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 8px; padding-top: 16px; border-top: 1px solid var(--stroke); }
.offer-card__price span { display: block; font-size: 12px; color: var(--body); text-transform: uppercase; letter-spacing: .5px; }
.offer-card__price strong { font-family: var(--font-head); font-size: 20px; color: var(--ink); }
.offer-card__btn { padding: 12px 20px; }
.offers-listing__empty { padding: 40px 0; text-align: center; color: var(--body); }
.offers-listing__benefits { padding: 64px 0; margin-top: 48px; }
.offers-listing__benefits-head { max-width: 620px; }
.offers-listing__benefits-grid { display: grid; grid-template-columns: 1fr; gap: 24px; }
.offers-listing__benefit { background: #fff; padding: 32px; box-shadow: 0 4px 30px rgba(0,0,0,.03); }

/* ---- Archiwum realizacji ---- */
.realizacje-archive__hero { padding-bottom: 0; }
.realizacje-archive__intro { max-width: 760px; margin-bottom: 48px; }
.realizacje-archive__intro p { font-size: 18px; line-height: 28px; }
.realizacje-archive__stats { border-top: 1px solid rgba(198,198,205,.5); }
.realizacje-archive__hero .stats-block__item { background: transparent; padding: 32px 0; text-align: left; }

/* ---- Blok: Realizacje ---- */
.realizacje-grid__filters { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 40px; }
.realizacje-grid__filters .chip {
    padding: 9px 18px;
    font-size: 12px;
    letter-spacing: 1px;
    line-height: 1.4;
    text-transform: uppercase;
    border-radius: 0;
    box-shadow: none;
}
.realizacje-grid__grid { display: grid; grid-template-columns: 1fr; gap: 24px; }
.realizacja-card { display: block; background: #fff; box-shadow: 0 4px 30px rgba(0,0,0,.05); }
.realizacja-card__media { position: relative; aspect-ratio: 4/3; overflow: hidden; }
.realizacja-card__media img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.01); transition: transform .6s; }
.realizacja-card:hover .realizacja-card__media img { transform: scale(1.04); }
.realizacja-card__media .badge { position: absolute; top: 16px; left: 16px; }
.realizacja-card__body { padding: 24px; }
.realizacja-card__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.realizacja-card__head h3 { font-size: 20px; margin: 0; }
.realizacja-card__year { font-size: 14px; color: var(--body); }
.realizacja-card__loc { display: flex; align-items: center; gap: 6px; font-size: 14px; color: var(--body); margin-top: 8px; }

/* ---- Blok: Inwestycja - nagłówek ---- */
.investment-hero { padding-top: 48px; }
.investment-hero__grid { display: grid; grid-template-columns: 1fr; gap: 40px; }
.investment-hero__grid > * { min-width: 0; }
.investment-hero__top { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.investment-hero__status { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; color: var(--green); }
.investment-hero__status .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--green); }
.investment-hero__loc { display: flex; align-items: center; gap: 8px; font-size: 15px; color: var(--body); margin-bottom: 20px; }
.investment-hero__facts { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--stroke); margin: 24px 0; }
.investment-hero__fact { background: #fff; padding: 18px; }
.investment-hero__fact-value { font-family: var(--font-head); font-weight: 500; font-size: 24px; color: var(--ink); }
.investment-hero__fact-label { font-size: 13px; text-transform: uppercase; letter-spacing: .5px; color: var(--body); }
.investment-hero__buttons { display: flex; flex-wrap: wrap; gap: 12px; }
.investment-hero__main { aspect-ratio: 4/3; }
.investment-hero__main .swiper-slide > a { display: block; width: 100%; height: 100%; }
.investment-hero__main .swiper-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.investment-hero__video { width: 100%; height: 100%; background: #000; }
.investment-hero__video video,
.investment-hero__video iframe { display: block; width: 100%; height: 100%; border: 0; }
.investment-hero__video video { object-fit: cover; }
.investment-hero__video--youtube { position: relative; overflow: hidden; }
.investment-hero__video--youtube iframe { position: absolute; inset: 0; transform: scale(1.35); pointer-events: none; }
.investment-hero__nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; background: rgba(255,255,255,.9); color: var(--ink); cursor: pointer; opacity: 0; transition: opacity .2s; }
.investment-hero__gallery:hover .investment-hero__nav { opacity: 1; }
.investment-hero__nav.swiper-button-disabled { opacity: 0 !important; pointer-events: none; }
.investment-hero__nav--prev { left: 12px; }
.investment-hero__nav--next { right: 12px; }
.investment-hero__thumbs { margin-top: 12px; }
.investment-hero__thumb { position: relative; width: auto; height: auto; aspect-ratio: 1/1; cursor: pointer; overflow: hidden; opacity: .55; transition: opacity .15s; }
.investment-hero__thumb.swiper-slide-thumb-active { opacity: 1; }
.investment-hero__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.investment-hero__thumb.is-video::after { content: ""; position: absolute; top: 50%; left: 50%; width: 0; height: 0; border-top: 8px solid transparent; border-bottom: 8px solid transparent; border-left: 12px solid #fff; filter: drop-shadow(0 1px 3px rgba(0,0,0,.65)); transform: translate(-40%,-50%); pointer-events: none; }
.investment-hero__thumb-placeholder { display: block; width: 100%; height: 100%; background: #1c1b19; }

/* Wariant "split" (Inwestycja): tekst i parametry po lewej, galeria po prawej */
.investment-hero.is-split { padding-top: 24px; }
.investment-hero.is-split .investment-hero__top { justify-content: flex-start; gap: 14px; margin-bottom: 24px; }
.investment-hero.is-split .back-link { margin-bottom: 0; font-size: 12px; letter-spacing: 1.2px; text-transform: uppercase; }
.investment-hero.is-split .investment-hero__status { background: rgba(22,163,74,.12); color: var(--green); font-size: 11px; padding: 6px 12px; }
.investment-hero.is-split .investment-hero__status .dot { width: 7px; height: 7px; }
.investment-hero.is-split .eyebrow { margin-bottom: 18px; letter-spacing: 3.6px; }
.investment-hero.is-split h1 { margin-bottom: 14px; font-size: 38px; line-height: 44px; letter-spacing: -0.76px; }
.investment-hero.is-split .investment-hero__loc { font-size: 17px; margin-bottom: 28px; }
.investment-hero.is-split .investment-hero__loc svg { width: 16px; height: 16px; }
.investment-hero.is-split .rte { max-width: 480px; margin-bottom: 32px; }
.investment-hero.is-split .rte p { font-size: 17px; line-height: 28px; margin-bottom: 0; }
.investment-hero.is-split .investment-hero__facts { max-width: 440px; margin: 0 0 32px; border: 1px solid rgba(198,198,205,.5); background: rgba(198,198,205,.5); }
.investment-hero.is-split .investment-hero__fact { padding: 16px 20px; }
.investment-hero.is-split .investment-hero__fact-value { font-size: 18px; line-height: 1.25; }
.investment-hero.is-split .investment-hero__fact-label { margin-bottom: 4px; font-size: 11px; color: var(--gray); }
.investment-hero.is-split .investment-hero__buttons { gap: 14px; }
.investment-hero.is-split .investment-hero__main { aspect-ratio: 16/11; margin-bottom: 12px; background: var(--whybg); }
.investment-hero.is-split .investment-hero__thumbs { margin-top: 0; }
.investment-hero.is-split .investment-hero__thumb { width: auto; height: auto; aspect-ratio: 1/1; outline: 2px solid transparent; outline-offset: -2px; }
.investment-hero.is-split .investment-hero__thumb.swiper-slide-thumb-active { outline-color: var(--gold); }

/* Wariant "stacked" (Realizacja): nagłówek pełnej szerokości, duże zdjęcie 21:9, miniatury w rzędzie flex:1 */
.investment-hero.is-stacked .investment-hero__stackhead { margin-bottom: 32px; }
.investment-hero.is-stacked .investment-hero__top { justify-content: flex-start; gap: 14px; margin-bottom: 20px; }
.investment-hero.is-stacked .back-link { margin-bottom: 0; font-size: 12px; letter-spacing: 1.2px; text-transform: uppercase; }
.investment-hero.is-stacked .investment-hero__status { background: #000; color: #fff; font-size: 11px; padding: 5px 12px; }
.investment-hero.is-stacked .investment-hero__status .dot { display: none; }
.investment-hero.is-stacked h1 { max-width: 920px; margin-bottom: 8px; font-size: 52px; line-height: 60px; letter-spacing: -1.04px; }
.investment-hero.is-stacked .investment-hero__loc { gap: 6px; font-size: 16px; margin-bottom: 0; }
.investment-hero.is-stacked .investment-hero__loc svg { width: 16px; height: 16px; }
.investment-hero.is-stacked .investment-hero__gallery { display: block; }
.investment-hero.is-stacked .investment-hero__main { aspect-ratio: 21/9; background: var(--whybg); margin-bottom: 16px; }
.investment-hero.is-stacked .investment-hero__thumb {
    width: auto;
    height: auto;
    aspect-ratio: 1/1;
}
.investment-hero.is-stacked .investment-hero__stackbody { margin-top: 40px; }

/* ---- Blok: Galeria z filtrami ---- */
.gallery-filter-block__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-bottom: 40px; }
.gallery-filter-block__tabs { display: flex; gap: 8px; flex-wrap: wrap; }
.gallery-filter-block__pane { display: none; }
.gallery-filter-block__pane.is-active { display: block; }
.gallery-filter-block__grid { display: grid; grid-template-columns: 1fr; gap: 16px; }
.gallery-filter-block__item { display: block; overflow: hidden; }
.gallery-filter-block__item img { width: 100%; height: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; transform: scale(1.01); transition: transform .3s; }
.gallery-filter-block__item:hover img { transform: scale(1.05); }

/* ---- Blok: Wybór piętra ---- */
.floor-picker.section,
.floor-picker.section--gray { background: var(--whybg); }
.floor-picker__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-bottom: 32px; }
.floor-picker__tabs-scroll { position: relative; width: 100%; min-width: 0; }
.floor-picker__tabs { display: flex; gap: 8px; flex-wrap: nowrap; justify-content: flex-start; width: 100%; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x proximity; scrollbar-width: thin; scrollbar-color: var(--gold) rgba(198,198,205,.45); padding: 0 0 10px; -webkit-overflow-scrolling: touch; }
.floor-picker__tabs::-webkit-scrollbar { height: 3px; }
.floor-picker__tabs::-webkit-scrollbar-track { background: rgba(198,198,205,.45); }
.floor-picker__tabs::-webkit-scrollbar-thumb { background: var(--gold); }
.floor-picker__tabs .chip { flex: 0 0 auto; scroll-snap-align: start; }
.floor-picker__tabs-more {
    position: absolute;
    z-index: 2;
    top: 0;
    right: -24px;
    bottom: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 37px;
    padding: 0;
    border: 0;
    background: linear-gradient(90deg, rgba(244, 245, 248, 0), var(--whybg) 42%);
    color: var(--gold);
    cursor: pointer;
    pointer-events: none;
    opacity: 0;
    transition: opacity .18s ease;
}
.floor-picker__tabs-more::before { content: ""; width: 6px; height: 6px; border-left: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: rotate(225deg); }
.floor-picker__tabs-scroll.is-scrollable:not(.is-at-end) .floor-picker__tabs-more { opacity: 1; pointer-events: auto; }
.floor-picker__tabs-more:focus-visible { outline: 2px solid var(--gold); outline-offset: -2px; }
.floor-picker__subtitle { font-size: 11px; letter-spacing: 1px; color: var(--gray); margin-bottom: 16px; }
/* Poniżej desktopa `.floor-picker__full` zachowuje się identycznie jak `.container`
   (ten sam max-width/padding) - split na pół viewportu włącza się dopiero na desktopie. */
.floor-picker__full { width: 100%; max-width: var(--maxw); margin: 0 auto; padding: 0 24px; }
.floor-picker__grid { display: grid; grid-template-columns: 1fr; gap: 32px; align-items: start; }
.floor-picker__media img { width: 100%; height: auto; display: block; }
.floor-picker__legend { display: flex; gap: 20px; flex-wrap: wrap; padding-top: 14px; }
.floor-picker__legend-item { display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--body); }
.floor-picker__dot { width: 10px; height: 10px; flex: none; display: inline-block; border-radius: 50%; }
.floor-picker__dot.is-available { background: var(--green); }
.floor-picker__dot.is-reserved { background: var(--gold); }
.floor-picker__dot.is-sold { background: var(--red); }
.floor-picker__dot.is-excluded { background: var(--gray); }
.floor-picker__pane { display: none; }
.floor-picker__pane.is-active { display: block; }
/* Łagodne przejście na dole listy: maska CSS na nieprzewijanym wrapperze (nie na samym
   elemencie ze scrollem - maskowanie bezpośrednio scrollującego overflow:auto potrafi
   nie odświeżać się w przeglądarce do czasu scrolla; na statycznym rodzicu renderuje się od razu). */
.floor-picker__list-wrap {
    -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 48px), transparent 100%);
    mask-image: linear-gradient(to bottom, #000 calc(100% - 48px), transparent 100%);
}
.floor-picker__list-col {
    /* `svh` (small viewport height) zamiast `vh` - `vh` w mobilnych przeglądarkach potrafi
       przeliczyć się (i urosnąć) w trakcie scrolla, gdy chowa się pasek adresu, co zmienia
       wysokość tego kontenera już PO scrollu (stąd wrażenie, że coś "dogrywa się" dopiero
       po przescrollowaniu). `svh` jest stabilne niezależnie od paska adresu; drugi zapis
       max-height to fallback dla starszych przeglądarek bez wsparcia dla svh. */
    max-height: 60vh;
    max-height: 60svh;
    overflow-y: auto; overscroll-behavior-y: contain;
    scrollbar-width: thin; scrollbar-color: var(--stroke) transparent; -webkit-overflow-scrolling: touch;
}
.floor-picker__list-col::-webkit-scrollbar { width: 8px; }
.floor-picker__list-col::-webkit-scrollbar-thumb { background: var(--stroke); border-radius: 4px; }
.floor-picker__list { display: flex; flex-direction: column; gap: 6px; }
.floor-picker__item { background: #fff; box-shadow: inset 0 0 0 1px var(--stroke); transition: box-shadow .15s; }
.floor-picker__item-head { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 16px; border: none; background: none; cursor: pointer; padding: 20px 24px; text-align: left; }
.floor-picker__item-main { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.floor-picker__item-name { font-family: var(--font-head); font-weight: 500; font-size: 17px; color: var(--ink); }
.floor-picker__item-meta { font-size: 13px; color: var(--gray); }
.floor-picker__item-right { display: flex; align-items: center; gap: 16px; flex: none; }
.floor-picker__status { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; }
.floor-picker__status.is-available { color: var(--green); }
.floor-picker__status.is-reserved { color: var(--gold); }
.floor-picker__status.is-sold { color: var(--red); }
.floor-picker__status.is-excluded { color: var(--gray); }
.floor-picker__item-body { max-height: 0; overflow: hidden; transition: max-height .3s ease; }
.floor-picker__item.is-open .floor-picker__item-body { max-height: 600px; }
.floor-picker__item-grid { padding: 0 24px 26px; display: grid; grid-template-columns: 1fr 1fr; gap: 16px 24px; }
.floor-picker__label { font-size: 11px; letter-spacing: .5px; text-transform: uppercase; color: var(--gray); margin-bottom: 4px; }
.floor-picker__value { font-family: var(--font-head); font-weight: 500; font-size: 16px; color: var(--ink); }
.floor-picker__item-cta { grid-column: 1 / 3; }
.floor-picker__item-cta .btn { display: flex; justify-content: center; width: 100%; }
.floor-picker__pdf { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; background: none; box-shadow: inset 0 0 0 1px var(--stroke); padding: 14px; font-weight: 600; font-size: 11px; letter-spacing: 1px; text-transform: uppercase; color: var(--ink); transition: box-shadow .15s; }
.floor-picker__pdf:hover { box-shadow: inset 0 0 0 1px var(--gold); color: var(--ink); }
.floor-picker__item-full { grid-column: 1 / 3; }
.floor-picker__layout { font-size: 14px; line-height: 22px; color: var(--body); }
.floor-picker__oldprice { color: var(--gray); margin-left: 6px; font-size: 13px; }

/* Interaktywny rzut SVG (kształty mieszkań id="m{nr}") */
.floor-picker__rzut svg { width: 100%; height: auto; display: block; }
.floor-picker__rzut .fp-shape { fill: transparent; stroke: transparent; cursor: pointer; transition: fill-opacity .15s; }
.floor-picker__rzut .fp-shape.is-available { fill: rgba(22,163,74,.32); }
.floor-picker__rzut .fp-shape.is-reserved  { fill: rgba(185,151,91,.38); }
.floor-picker__rzut .fp-shape.is-sold      { fill: rgba(233,30,30,.6); }
.floor-picker__rzut .fp-shape.is-excluded  { fill: rgba(120,124,132,.34); }
.floor-picker__rzut .fp-shape:hover { fill-opacity: .7; }
.floor-picker__rzut .fp-shape.is-hi { fill-opacity: .7; }
.floor-picker__item.is-hi { box-shadow: inset 0 0 0 2px var(--gold); }

/* Interaktywna elewacja budynku (widok "Wszystkie piętra") */
.floor-picker__budynek svg { width: 100%; height: auto; display: block; }
.floor-picker__budynek svg text {display: none;}
.floor-picker__budynek .fp-band { fill: rgba(185,151,91,.001); cursor: pointer; transition: fill .15s; }
.floor-picker__budynek .fp-band:hover { fill: rgba(185,151,91,.45); }

/* ---- Blok: Tabela mieszkań ---- */
.apartments-table__description { max-width: 820px; margin-top: 20px; }
.apartments-table__embed { width: 100%; overflow: hidden; }
.apartments-table__embed iframe { display: block; width: 100%; height: 1000px; border: 0; }

/* ---- Blok: Mapa z okolicą (POI) ---- */
.poi-map__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; min-width: 0; max-width: 100%; }
.poi-map__grid > * { min-width: 0; }
.poi-map__head { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; width: 100%; min-width: 0; }
.poi-map__head .section-head { margin-bottom: 0; }
.poi-map__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.poi-map__chips .chip { padding: 9px 16px; font-size: 11px; }
.poi-map__list-col { min-width: 0; }
.poi-map__list { display: flex; flex-direction: column; max-height: 440px; overflow-y: auto; background: #fff; box-shadow: 0 4px 30px rgba(0,0,0,.03); }
.poi-map__item { min-height: 74px; padding: 16px 20px; display: flex; align-items: center; justify-content: space-between; gap: 16px; box-shadow: inset 0 -1px 0 rgba(198,198,205,.4); }
.poi-map__item-main { display: flex; align-items: center; gap: 14px; min-width: 0; }
.poi-map__item-icon { width: 34px; height: 34px; flex: none; display: flex; align-items: center; justify-content: center; background: var(--whybg); color: var(--gold); }
.poi-map__item-icon img { display: block; width: 17px; height: 17px; object-fit: contain; }
.poi-map__item-name { display: block; font-size: 15px; color: var(--ink); }
.poi-map__item-meta { display: block; font-size: 12px; color: var(--gray); }
.poi-map__item-distance { flex: none; font-size: 13px; font-weight: 600; color: var(--body); }
.poi-map__map { position: relative; height: 320px; overflow: hidden; }
.poi-map__link { display: block; position: relative; width: 100%; height: 100%; }
.poi-map__map img { width: 100%; height: 100%; object-fit: cover; }
.poi-map__overlay { position: absolute; bottom: 18px; left: 18px; background: #fff; color: var(--ink); font-weight: 600; font-size: 12px; letter-spacing: 1px; padding: 10px 16px; box-shadow: 0 4px 16px rgba(0,0,0,.1); }
.poi-map h2 {
    margin-bottom: 0;
}
/* ---- Blok: Kalkulator ---- */
.calc-text__grid { display: grid; grid-template-columns: 1fr; gap: 40px; align-items: center; }
.calc-text__content h2 { margin-bottom: 20px; }
.calc-text__intro { max-width: 480px; font-size: 17px; line-height: 28px; }
.calc-text__full-link { display: inline-flex; align-items: center; gap: 10px; margin-top: 24px; padding-bottom: 4px; border-bottom: 1px solid currentColor; color: var(--ink); font-weight: 600; font-size: 12px; letter-spacing: 1.2px; text-transform: uppercase; }
.calc-text__calculator { padding: 32px 24px; background: var(--whybg); }
.calc-text__fields { display: flex; flex-direction: column; gap: 28px; margin-bottom: 32px; }
.calc-text__row-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 12px; }
.calc-text__row-head label { font-weight: 600; font-size: 12px; letter-spacing: 1px; text-transform: uppercase; color: var(--ink); }
.calc-text__row-head span { font-family: var(--font-head); font-weight: 500; font-size: 18px; color: var(--ink); }
.calc-text__row input[type=range] { display: block; width: 100%; margin: 0; padding: 0; box-shadow: none; accent-color: var(--gold); }
.calc-text__result { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; padding: 28px 32px; background: #000; color: #fff; }
.calc-text__result-label { margin-bottom: 6px; color: rgba(255,255,255,.55); font-size: 11px; letter-spacing: 1px; text-transform: uppercase; }
.calc-text__monthly { display: flex; align-items: baseline; gap: 8px; font-family: var(--font-head); font-weight: 300; font-size: 38px; line-height: 1; color: var(--gold); }
.calc-text__monthly small { font-family: var(--font-body); font-size: 14px; color: rgba(255,255,255,.6); }
.calc-text__result .btn { background: var(--gold); color: #fff; }

.calculator-block__grid { display: grid; grid-template-columns: 1fr; gap: 32px; align-items: start; }
.calculator-block__row { margin-bottom: 24px; }
.calculator-block__row label { display: flex; justify-content: space-between; gap: 12px; font-weight: 600; font-size: 14px; color: var(--ink); margin-bottom: 10px; }
.calculator-block__row label b { color: var(--gold); }
.calculator-block__row input[type=range] { width: 100%; box-shadow: none; padding: 0; accent-color: var(--gold); }
.calculator-block__scale { display: flex; justify-content: space-between; font-size: 12px; color: var(--body); margin-top: 4px; }
.calculator-block__seg { display: flex; gap: 8px; }
.calculator-block__seg button { flex: 1; padding: 12px; border: 1px solid var(--stroke); background: #fff; cursor: pointer; font-weight: 600; }
.calculator-block__seg button.is-active { background: #000; color: #fff; border-color: #000; }
.calculator-block__result { background: #000; color: #fff; padding: 32px; }
.calculator-block__result .eyebrow { color: var(--gold); }
.calculator-block__monthly { font-family: var(--font-head); font-weight: 500; font-size: 48px; color: var(--gold); margin-bottom: 24px; }
.calculator-block__monthly small { font-size: 16px; color: rgba(255,255,255,.6); }
.calculator-block__donut { display: flex; align-items: center; gap: 24px; margin-bottom: 24px; }
.calculator-block__legend { font-size: 14px; display: flex; flex-direction: column; gap: 8px; }
.calculator-block__legend .dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 8px; }
.dot--gold { background: var(--gold); }
.dot--faint { background: rgba(255,255,255,.15); }
.calculator-block__cells { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: rgba(255,255,255,.15); margin-bottom: 24px; }
.calculator-block__cells > div { background: #000; padding: 16px; }
.calculator-block__cells span { display: block; font-size: 12px; color: rgba(255,255,255,.6); text-transform: uppercase; }
.calculator-block__afford { padding: 16px; margin-bottom: 24px; font-size: 14px; }
.calculator-block__afford.is-ok { background: rgba(22,163,74,.15); color: #86efac; }
.calculator-block__afford.is-bad { background: rgba(212,88,75,.15); color: #f0a98c; }
.calculator-block__disclaimer { font-size: 12px; color: rgba(255,255,255,.5); margin-top: 16px; }

/* ---- Blok: Baner CTA (w treści) ---- */
.article-cta { background: #000; color: #fff; padding: 32px; margin: 32px 0; }
.article-cta h3 { color: #fff; }
.article-cta__inner { display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }
.blog-cta { margin: 48px 0; padding: 40px; background: #000; color: #fff; }
.blog-cta h3 { margin: 0 0 18px; color: #fff; font-size: 26px; line-height: 34px; }
.blog-cta p { max-width: 540px; margin: 0 0 26px; color: rgba(255,255,255,.7); font-size: 16px; line-height: 24px; }
.blog-cta .eyebrow { margin-bottom: 14px; }
.single-post__content .blog-cta .btn {
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 12px;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    text-decoration: none;
}

/* ---- Formularz wyszukiwania ---- */
.search-form { display: flex; }
.search-form input { flex: 1; }
.search-form button { background: #000; color: #fff; border: none; padding: 0 16px; cursor: pointer; }

/* =========================================================================
   DESKTOP (>=992px) - jedyny media query
   ========================================================================= */
@media (min-width: 992px) {
    .mobile-tabs-scroll { width: auto; max-width: 100%; }
    .mobile-tabs-scroll .mobile-tabs-scroll__track { flex-wrap: wrap; justify-content: flex-start; width: auto; overflow: visible; padding: 0; scrollbar-width: none; }
    .mobile-tabs-scroll__next { display: none; }

    .container--article-head { max-width: 1204px; }
    .container--article-head > * { max-width: 760px; }
    .single-post__header { padding-top: 80px; }
    .single-post__layout { grid-template-columns: 260px minmax(0,760px); }
    .single-post__toc { display: block; position: sticky; top: 120px; align-self: start; }

    .text-with-toc.has-toc .text-with-toc__layout { grid-template-columns: 280px minmax(0,720px); gap: 80px; }
    .text-with-toc__toc { display: block; position: sticky; top: 120px; align-self: start; }
    .blog-filter__inner { flex-direction: row; align-items: center; justify-content: space-between; }
    .featured-post__card { grid-template-columns: 1.2fr 1fr; }
    .featured-post__content { padding: 56px; }
    .posts-grid { grid-template-columns: repeat(3, 1fr); }

    .page-title-block { padding: 72px 0 56px; }
    .page-title-block__grid { flex-direction: row; align-items: flex-end; justify-content: space-between; gap: 64px; }
    .page-title-block__text { flex: 1.3; }
    .page-title-block__counter { text-align: right; }
    .page-title-block__counter-num { font-size: 72px; }
    .page-title-block__stats[data-cols="2"] { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .page-title-block__quick { flex: 1; max-width: 380px; }
    .page-title-quick__value { font-size: 22px; overflow-wrap: normal; }

    .hero-slider { min-height: 820px; padding: 150px 0 90px; }
    .hero-slider__grid { grid-template-columns: 1.3fr 0.85fr; gap: 60px; }

    .search-box__form { grid-template-columns: 1fr 1fr 1fr 1fr auto; padding: 32px; gap: 28px; }

    .image-cta-columns__grid[data-cols="2"] { grid-template-columns: repeat(2, 1fr); }
    .image-cta-columns__grid[data-cols="3"] { grid-template-columns: repeat(3, 1fr); }
    .image-cta-columns__body { padding: 48px; }

    .featured-investment__card { grid-template-columns: 1.15fr 1fr; }
    .featured-investment__media { aspect-ratio: auto; min-height: 480px; }
    .featured-investment__body { padding: 56px; }

    .realization-gallery__grid { grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr); gap: 64px; }
    .realization-gallery--gallery-right .realization-gallery__media { order: 2; }
    .realization-gallery--gallery-right .realization-gallery__body { order: 1; }

    .stats-block__grid[data-cols="3"] { grid-template-columns: repeat(3, 1fr); }
    .stats-block__grid[data-cols="4"] { grid-template-columns: repeat(4, 1fr); }
    .stats-block__grid[data-cols="6"] { grid-template-columns: repeat(6, 1fr); }
    .stats-block__item {padding: 52px 24px; }
    .stats-block__num { font-size: 64px; line-height: 1; margin-bottom: 14px; }
    .stats-block--table .stats-block__num { font-size: 64px; margin-bottom: 14px; }
    .stats-block__grid[data-cols="6"] .stats-block__num { font-size: 48px; line-height: 1.08; margin-bottom: 14px; }
    .stats-block--table .stats-block__item { padding: 52px 24px; }

    .media-text__grid { grid-template-columns: 1fr 1fr; gap: 60px; }
    .media-text.right .media-text__media { order: 2; }
    .media-text.outside .media-text__full { width: 100%; }
    .media-text.outside .media-text__grid { grid-template-columns: 1fr 1fr; gap: 0; }
    .media-text.outside .media-text__body { min-height: 60vh; padding: 0; }
    .media-text.outside .media-text__body-inner { max-width: calc(var(--maxw) / 2); padding: 96px 64px; margin-right: auto; }
    .media-text.right.outside .media-text__body-inner { margin-right: 0; margin-left: auto; }
    .media-text.outside .media-text__media { min-height: 560px; }
    .media-text.outside.is-fill { padding-top: 0; padding-bottom: 0; }
    .media-text.outside.is-fill .media-text__body-inner { padding-top: 0; padding-bottom: 0; }

    .icon-text-columns__grid { display: grid; grid-template-columns: minmax(0,420px) 1fr; gap: 48px; align-items: start; }
    .icon-text-columns__cards[data-cols="2"] { grid-template-columns: repeat(2, 1fr); }
    .icon-text-columns__cards[data-cols="3"] { grid-template-columns: repeat(3, 1fr); }
    .icon-text-columns__card { padding: 36px; }

    .feature-cards__grid[data-cols="2"] { grid-template-columns: repeat(2, 1fr); }
    .feature-cards__grid[data-cols="3"] { grid-template-columns: repeat(3, 1fr); }

    .timeline-block .section-head { margin-bottom: 56px; }
    .timeline-block__list { display: grid; grid-template-columns: repeat(var(--timeline-cols), minmax(0, 1fr)); }
    .timeline-block__item { padding: 0 24px 0 0; }
    .timeline-block__rail { position: static; flex-direction: row; width: 100%; margin-bottom: 20px; }
    .timeline-block__line { width: auto; height: 2px; min-height: 0; flex: 1; }

    .timeline-checklist__grid { grid-template-columns: 1fr 1fr; gap: 80px; }

    .departments-phones__grid { grid-template-columns: repeat(4, 1fr); }

    .content-stats__grid { grid-template-columns: 1fr 1fr; gap: 80px; }
    .content-stats.is-reverse .content-stats__grid { grid-template-columns: 1fr 1fr; }
    .content-stats.is-reverse .content-stats__text { order: 2; }
    .content-stats.is-reverse .content-stats__stats { order: 1; }
    .content-stats__stats { grid-template-columns: 1fr 1fr; }
    .content-stats__value { font-size: 44px; }
    .content-stats__stat { padding: 32px; }

    .gallery-grid-block__grid[data-cols="2"] { grid-template-columns: repeat(2, 1fr); }
    .gallery-grid-block__grid[data-cols="3"] { grid-template-columns: repeat(3, 1fr); }
    .gallery-grid-block__grid[data-cols="4"] { grid-template-columns: repeat(4, 1fr); }
    .gallery-grid-block__grid[data-photos="3"] { grid-template-columns: 2fr 1fr; grid-auto-rows: 240px; }
    .gallery-grid-block__grid[data-photos="3"] .gallery-grid-block__item:first-child { grid-row: span 2; }

    .reviews-block__grid { grid-template-columns: repeat(3, 1fr); }

    .steps-block__grid { grid-template-columns: repeat(4, 1fr); }

    /* Część interaktywna (media-col) wychodzi poza container i zajmuje połowę viewportu;
       lista (list-col) zajmuje drugą połowę, ale jej treść zatrzymuje się na krawędzi containera
       (ten sam mechanizm co blok "Media i tekst" wariant "outside": media-text__full/body-inner). */
    .floor-picker__full { max-width: none; padding: 0; }
    .floor-picker__grid { grid-template-columns: 1fr 1fr; gap: 0; align-items: start; }
    .floor-picker__list-wrap { max-width: calc(var(--maxw) / 2 - 60px - 48px); margin: 0 60px 0 48px; }
    .floor-picker__legend { justify-content: flex-end; }
    .floor-picker__tabs-scroll { width: auto; max-width: 100%; }
    .floor-picker__tabs { flex-wrap: wrap; justify-content: flex-end; width: auto; overflow: visible; padding: 0; scrollbar-width: none; }
    .floor-picker__tabs-more { display: none; }
    /* Sticky na całym panelu (zdjęcie/rzut + legenda razem), nie tylko na obrazku -
       inaczej legenda (niesticky) "odjeżdżała" osobno przy scrollu i nakładała się na obrazek. */
    .floor-picker__media-col .floor-picker__pane { position: sticky; top: 110px; }

    .team-block__grid[data-cols="3"] { grid-template-columns: repeat(3, 1fr); }
    .team-block__grid[data-cols="4"] { grid-template-columns: repeat(4, 1fr); }

    .logos-block__grid { grid-template-columns: repeat(6, 1fr); }

    .newsletter-block__grid { grid-template-columns: 1fr 1fr; gap: 64px; }

    .contact-form-block__grid { grid-template-columns: 1fr 1fr; gap: 80px; }
    .contact-form-block__form { padding: 48px; }

    .gallery-filter-block__grid { grid-template-columns: 2fr 1fr; grid-auto-rows: 240px; }
    .gallery-filter-block__item:first-child { grid-row: span 2; }
    .gallery-filter-block__item img { aspect-ratio: auto; }

    .contact-info-form__grid { grid-template-columns: 1.15fr 0.85fr; gap: 80px; }
    .contact-form-block .wpcf7-form .cf7-row, .contact-info-form .wpcf7-form .cf7-row { grid-template-columns: 1fr 1fr; gap: 20px 32px; }

    .offers-listing__filters { position: relative; background: #fff; z-index: 20; }
    .offers-listing__view-toggle { display: flex; }
    .offers-listing__grid { grid-template-columns: repeat(3, 1fr); }
    .offers-listing__grid[data-layout="list"] { grid-template-columns: 1fr; }
    .offers-listing__grid[data-layout="list"] .offer-card { flex-direction: row; }
    .offers-listing__grid[data-layout="list"] .offer-card__media { width: 320px; aspect-ratio: auto; flex: none; }
    .offers-listing__grid[data-layout="list"] .offer-card__body { flex: 1; }
    .offers-listing__benefits-grid { grid-template-columns: repeat(3, 1fr); }

    .realizacje-grid__grid { grid-template-columns: repeat(3, 1fr); }

    .investment-hero__grid { grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
    .investment-hero__thumb { width: 88px; height: 66px; aspect-ratio: auto; }
    .investment-hero.is-split .investment-hero__grid { grid-template-columns: 1fr 1.25fr; gap: 64px; }
    .investment-hero.is-split h1 { font-size: 56px; line-height: 62px; letter-spacing: -1.12px; }
    .investment-hero.is-split .investment-hero__thumb { width: auto; height: 96px; aspect-ratio: auto; }
    .investment-hero.is-stacked .investment-hero__thumb { height: 140px; aspect-ratio: auto; }
    .investment-hero__facts { grid-template-columns: repeat(2, 1fr); }

    .poi-map__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 32px; align-items: start; }
    .poi-map__head { grid-column: 1 / -1; flex-direction: row; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 8px; }
    .poi-map__map { height: 440px; }

    .calc-text__grid { grid-template-columns: 1fr 1fr; gap: 64px; }
    .calc-text--calc-left .calc-text__calculator { order: 1; }
    .calc-text--calc-left .calc-text__content { order: 2; }
    .calc-text__calculator { padding: 40px; }

    .calculator-block__grid { grid-template-columns: 1.4fr 1fr; }
    .calculator-block__result { position: sticky; top: 110px; }

    .article-cta__inner { flex-direction: row; align-items: center; justify-content: space-between; }
}

/* ---- Globalny wyglad selectow ---- */
select,
.contact-form-block .wpcf7-form select,
.contact-info-form .wpcf7-form select,
.contact-form-block.section--dark .wpcf7-form select,
.contact-info-form.section--dark .wpcf7-form select,
.contact-form-block:not(.section--dark) .wpcf7-form select,
.contact-info-form:not(.section--dark) .wpcf7-form select {
    -webkit-appearance: none;
    appearance: none;
    padding-right: 40px;
    background-image: url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%236B7280' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 12px 8px;
    cursor: pointer;
}

select::-ms-expand {
    display: none;
}

select:disabled {
    cursor: default;
}

/* Focus pól tekstowych: reguła na końcu pliku nadpisuje style komponentów i CF7. */
input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=submit]):focus,
textarea:focus,
select:focus {
    box-shadow: inset 0 0 0 1px var(--gold);
}
