/* ==========================================================================
   SM Logistic - custom.css
   Style elementów dodanych na potrzeby motywu WordPress (bloczki/szablony,
   których nie ma w głównym style.css). Mobile-first, 1x media query 992px.
   ========================================================================== */

/* ==========================================================================
   Fonty ladowane lokalnie (self-hosted) - Manrope, wagi realnie uzywane w
   motywie (400/500/600/700/800). Pobrane z Google Fonts, zapisane w
   assets/fonts/.
   ========================================================================== */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/manrope-400-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/manrope-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/manrope-500-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/manrope-500-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/manrope-600-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/manrope-600-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/manrope-700-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/manrope-700-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('../fonts/manrope-800-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('../fonts/manrope-800-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* --- Fallback fontu (ograniczenie CLS) --- */
body {
    font-family: "Manrope", "Segoe UI", system-ui, -apple-system, sans-serif;
}

/* --- Zabezpieczenie przed poziomym przewijaniem na mobile (clip nie psuje
       position: sticky, w przeciwieństwie do overflow: hidden).
       body ze style.css ma overflow-x: hidden, co wymusza overflow-y: auto
       i czyni z body kontener przewijania - to blokuje position: sticky
       w całym motywie. Nadpisujemy na clip (blokuje poziomy scroll, nie łamie sticky). --- */
html { overflow-x: clip; }
body { overflow-x: clip; }

/* --- Korekta ścieżki tła strzałki (style.css jest w katalogu głównym motywu,
       a nie w /assets/, więc oryginalne ../assets/img/ prowadziłoby poza motyw).
       Z poziomu /assets/css/ poprawna ścieżka to ../img/. --- */
.icon-circle::after {
    background-image: url("../img/icon-arrow-up-right.svg");
}

/* --- Odstępy bloczków (margines/padding góra-dół) ustawiane są teraz per blok
       wartościami liczbowymi w polach ACF -> inline-style na sekcji, więc nie ma
       tu wspólnych klas .margin-top/.margin-bottom. --- */

/* ======================
   SYSTEM: animacje wejscia blokow (Olza Logistic)
   ====================== */
.fade-in,
.fade-up,
.fade-left,
.fade-right {
    opacity: 0;
    transition-property: opacity, transform;
    transition-timing-function: cubic-bezier(0.22, 1, 0.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);
}

/* --- Odsunięcie treści od stałego (fixed) nagłówka na podstronach --- */
.site-main > section:first-child:not(.hero):not(.page-title-block) {
    margin-top: 112px;
}

/* --- Header lity (ciemny) na stronach bez ciemnego hero u góry,
       inaczej białe linki menu byłyby niewidoczne na jasnym tle --- */
body.header-solid .header {
    background-color: var(--color-dark);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
}

/* ======================
   MOBILE: korekty responsywnosci
   ====================== */
@media (max-width: 991.98px) {
    .hero {
        height: 100svh;
        min-height: 0;
        overflow: hidden;
    }
    .hero .container {
        position: relative;
    }
    .hero__inner {
        min-height: 0;
        padding-top: 0;
        padding-bottom: 120px;
        gap: 12px;
        justify-content: center;
        align-items: stretch;
    }
    .hero__wrapper {
        min-height: 0;
        max-width: 100%;
        width: 100%;
    }
    .hero .section-label {
        margin-bottom: 8px;
    }
    .hero h1 {
        font-size: clamp(36px, 9vw, 42px);
        margin-bottom: 8px;
        line-height: 1.15;
    }
    .hero h2 {
        font-size: clamp(20px, 6vw, 26px);
        margin-bottom: 8px;
        line-height: 1.2;
    }
    .hero p {
        font-size: 14px;
        line-height: 1.42;
        margin-bottom: 16px;
    }
    .hero__actions {
        gap: 8px;
    }
    .hero__actions .btn {
        min-height: 46px;
        padding: 12px 18px;
    }
    .hero__stats {
        position: absolute;
        left: 20px;
        right: 20px;
        bottom: 20px;
        width: auto;
        min-width: 0;
        gap: 0;
        padding: 10px 0 0;
        flex-shrink: 1;
    }
    .hero__stat {
        min-width: 0;
        padding: 0 8px;
    }
    .hero__stat-value {
        font-size: clamp(24px, 8vw, 34px);
        letter-spacing: -1px;
        white-space: nowrap;
    }
    .hero__stat-value span {
        font-size: 13px;
        line-height: 1;
    }
    .hero__stat-label {
        font-size: 9px;
        line-height: 1.15;
        letter-spacing: 0.4px;
    }

    .tabs-section,
    .tabs-section__grid,
    .tabs-section__tabs,
    .tabs-content,
    .tabs-pane {
        min-width: 0;
        max-width: 100%;
        overflow-wrap: normal;
        word-break: normal;
    }
    .tabs-nav {
        max-width: 100%;
        overscroll-behavior-x: contain;
    }
    .tabs-nav::after {
        width: var(--tabs-scroll-width, 100%);
        min-width: 100%;
        right: auto;
    }
    .tabs-nav__btn {
        z-index: 1;
    }
    .tabs-nav__indicator {
        z-index: 2;
    }

    .image-text,
    .image-text .container,
    .image-text__row,
    .image-text__col,
    .image-text__content,
    .image-text__media {
        min-width: 0;
        max-width: 100%;
    }
    .image-text__content {
        overflow-wrap: normal;
        word-break: normal;
    }
    .image-text__content h1,
    .image-text__content h2 {
        max-width: 100%;
        font-size: 32px;
        line-height: 1.2;
        overflow-wrap: normal;
        word-break: normal;
    }
    .image-text__media img,
    .image-text__media video,
    .image-text__media .media-text__video {
        max-width: 100%;
    }

    .cards-grid__wrapper.mobile-scroll,
    .gallery__carousel.mobile-scroll {
        width: calc(100vw - 20px);
        max-width: calc(100vw - 20px);
        margin-left: 0;
        margin-right: calc(50% - 50vw);
        overflow-y: hidden;
        padding-left: 0;
        padding-right: 0;
        scroll-padding-left: 0;
        align-items: stretch;
        overscroll-behavior-x: contain;
        overscroll-behavior-y: auto;
        touch-action: pan-y;
    }
    .cards-grid__wrapper.mobile-scroll > *,
    .gallery__carousel.mobile-scroll > * {
        scroll-snap-align: start;
        flex-shrink: 0;
    }
    .cards-grid__wrapper.mobile-scroll.is-touch-dragging,
    .gallery__carousel.mobile-scroll.is-touch-dragging {
        scroll-snap-type: none;
        scroll-behavior: auto;
    }
    .cards-grid__wrapper.mobile-scroll::after,
    .gallery__carousel.mobile-scroll::after {
        content: "";
        display: block;
        flex: 0 0 20px;
    }
}

@media (max-width: 420px) and (max-height: 720px) {
    .hero__inner {
        padding-top: 80px;
        padding-bottom: 110px;
        gap: 20px;
    }
    .hero p {
        font-size: 13px;
        line-height: 1.35;
        margin-bottom: 14px;
    }
    .hero__actions .btn {
        min-height: 44px;
        padding: 10px 16px;
    }
    .hero__stats {
        bottom: 0px;
        padding-top: 8px;
    }
    .hero__stat-value {
        font-size: clamp(22px, 7vw, 30px);
    }
    .hero__stat-label {
        font-size: 8px;
    }
}

/* --- Telefony w orientacji poziomej (landscape): przy niskiej wysokości
       widoku sztywne 100svh przycina treść na dole i chowa górę pod headerem.
       Sekcja rośnie do wysokości treści (min-height zamiast height),
       hero__stats wraca do normalnego przepływu (position: static)
       zamiast nakładać się na przyciski. --- */
@media (max-width: 991.98px) and (orientation: landscape) and (max-height: 500px) {
    .hero {
        height: auto;
        min-height: 100svh;
        overflow: visible;
    }
    .hero__inner {
        padding-top: 110px;
        padding-bottom: 24px;
        justify-content: flex-start;
    }
    .hero__stats {
        position: static;
        left: auto;
        right: auto;
        bottom: auto;
        margin-top: 20px;
        padding-top: 14px;
        border-top: 1px solid rgba(255, 255, 255, 0.15);
    }
}

@media (max-width: 420px) {
    .car-card__info {
        flex-wrap: wrap;
        align-items: flex-start;
    }
    .car-card__price {
        width: 100%;
        flex-basis: 100%;
    }
    .car-card__info .btn {
        flex: 0 0 auto;
        margin-top: 10px;
    }
}

/* ======================
   BLOK: TYTUŁ STRONY
   ====================== */
.page-title-block {
    background-color: var(--color-dark);
    color: var(--color-white);
    padding: 130px 0 45px;
    position: relative;
}
.page-title-block.has-bg {
    background-size: cover;
    background-position: center;
    filter: contrast(1.15) saturate(1.1) brightness(1.05);
}
.page-title-block.has-bg::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(6, 16, 10, 0.62);
}
.page-title-block .container { position: relative; z-index: 1; }
.page-title-block h1 { color: var(--color-white); margin-bottom: 15px; }
.page-title-block .section-label span {
    color: var(--color-primary);
}
.page-title-block p strong em { color: var(--color-white-muted); font-style: italic; }

/* Breadcrumbs */
.breadcrumbs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 14px;
    font-size: 13px;
    color: rgba(255, 255, 255, 0.6);
}
.breadcrumbs a { color: var(--color-accent); }
.breadcrumbs span { color: rgba(255, 255, 255, 0.5); }

/* ======================
   KARTY jako linki (CPT / kafelki)
   We froncie .service-card i .car-card__image to elementy blokowe (div).
   W motywie część z nich renderujemy jako klikalne <a> (link do CPT),
   a anchor jest domyślnie inline - przez co aspect-ratio, position:relative
   i overflow przestają działać i layout karty się rozjeżdża.
   ====================== */
a.service-card,
a.car-card__image,
.service-card > .service-card__image,
.car-card > .car-card__image {
    display: block;
}

/* Archiwum samochodów zawsze pozostaje siatką, bez poziomego slidera. */
.archive-samochody .cards-grid__wrapper {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 15px;
    margin: 0;
    padding: 0;
    overflow: visible;
    scroll-snap-type: none;
}
.archive-samochody .cards-grid__wrapper > * {
    min-width: 0;
    max-width: 100%;
}

@media (min-width: 768px) {
    .archive-samochody .cards-grid__wrapper {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 992px) {
    .archive-samochody .cards-grid__wrapper {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* ======================
   BLOK: KOLUMNY Z IKONAMI (columns-icons)
   Dedykowana klasa bloku (wcześniej współdzielona image-text is-trust).
   Style siatki/kolumn (.trust-grid, .trust-item, .trust-contact) pozostają
   w style.css - tu tylko to, co było zależne od .image-text.is-trust.
   ====================== */
.columns-icons {
    background-color: var(--color-surface);
    border-bottom: 1px solid var(--color-border);
}
.columns-icons h2 {
    max-width: 700px;
    margin-bottom: 42px;
}
.columns-icons .trust-item {
    overflow-wrap: normal;
    word-break: normal;
}

/* ======================
   BLOK: BLOK TEKSTOWY / OBRAZ - zawężenie
   ====================== */
.text-block .wysiwyg.is-narrow,
.image-block__figure.is-narrow {
    margin-left: auto;
    margin-right: auto;
}
.image-block__figure { margin: 0; }
.image-block__figure img { width: 100%; height: auto; border-radius: 20px; }
.image-block__figure figcaption {
    margin-top: 10px;
    font-size: 13px;
    color: rgba(6, 16, 10, 0.6);
}

/* ======================
   BLOK: KARUZELA LOGO - pelna szerokosc
   ====================== */
.logos .container {
    width: 100%;
    max-width: none;
    padding-left: 0;
    padding-right: 0;
}
.logos-swiper__slide {
    width: auto !important;
    flex: 0 0 auto;
    padding-left: 0;
    padding-right: 0;
}
.logos-swiper .swiper-wrapper {
    width: auto;
    transition: transform 4200ms linear !important;
}
.logos-swiper.swiper-initialized .swiper-wrapper {
    transition: transform 4200ms linear !important;
}
.logos-swiper .swiper-wrapper[data-marquee-ready="true"] {
    animation: none;
}

/* ======================
   BLOK: MEDIA I TEKST - wideo / YouTube / wariant "na zewnątrz"
   ====================== */
/* Kotwica dla opcjonalnej nakładki .tag-block__overlay na obrazie */
.image-text__media { position: relative; }
.image-text:is(.is-left, .is-right) .image-text__content .section-label {
    margin-bottom: 20px;
}
.image-text:is(.is-left, .is-right) .image-text__media {
    min-height: 320px;
    display: flex;
}
.image-text:is(.is-left, .is-right) .image-text__media img,
.image-text:is(.is-left, .is-right) .image-text__media video,
.image-text:is(.is-left, .is-right) .image-text__media .media-text__video {
    width: 100%;
    min-height: inherit;
    border-radius: 20px;
    display: block;
}
.image-text:is(.is-left, .is-right) .image-text__media img,
.image-text:is(.is-left, .is-right) .image-text__media video {
    height: 100%;
    object-fit: cover;
}
.image-text:is(.is-left, .is-right) .image-text__media img {
	max-height: 800px;
}
.media-text__video {
    position: relative;
    height: 100%;
    aspect-ratio: auto;
    overflow: hidden;
}
.media-text__video iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

/* ======================
   BLOK: FORMULARZ KONTAKTOWY
   ====================== */
.contact-form__grid { display: grid; gap: 30px; }
/* Etykiety pól: odstęp między tekstem etykiety a polem (formularz i popup) */
.contact-form label,
.popup-form label { display: block; font-size: 14px; font-weight: 600; color: var(--color-text); }
.contact-form .wpcf7-form-control-wrap,
.popup-form .wpcf7-form-control-wrap { display: block; margin-top: 8px; }
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.contact-form input[type="date"],
.contact-form select,
.contact-form textarea,
.popup-form input[type="text"],
.popup-form input[type="email"],
.popup-form input[type="tel"],
.popup-form input[type="date"],
.popup-form select,
.popup-form textarea {
    width: 100%;
    padding: 13px 15px;
    border: 1px solid var(--color-border);
    border-radius: 8px;
    font-family: inherit;
    font-size: 15px;
    background-color: var(--color-white);
    margin-bottom: 14px;
    color: var(--color-text);
}
.contact-form textarea,
.popup-form textarea { min-height: 120px; resize: vertical; }
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus,
.popup-form input:focus,
.popup-form select:focus,
.popup-form textarea:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(39, 164, 81, 0.12);
}
.contact-form .wpcf7-submit,
.popup-form .wpcf7-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 15px 30px;
    border-radius: 4px;
    font-weight: 700;
    font-size: 15px;
    background-color: var(--color-primary);
    color: var(--color-white);
    cursor: pointer;
    transition: all 0.3s ease;
    border: none;
}
.contact-form .wpcf7-submit:hover,
.popup-form .wpcf7-submit:hover { background-color: var(--color-primary-hover); }
.cf7-row label { display: block; font-size: 14px; font-weight: 600; }
.cf7-row--2 { display: grid; gap: 0 16px; }
.cf7-row--consent { font-size: 13px; margin-bottom: 14px; color: var(--color-text-muted); }
.cf7-row--consent .wpcf7-list-item { margin: 0; }
.popup-form .cf7-row--2 { grid-template-columns: 1fr; }

.contact-form__intro { color: var(--color-text-muted); font-size: 16px; line-height: 1.5; margin-bottom: 30px; }
.contact-form__note { font-size: 13px; color: rgba(6, 16, 10, 0.6); line-height: 1.5; margin-top: 16px; }

/* --- Sidebar kontaktu --- */
.contact-form__sidebar { display: grid; gap: 20px; align-content: start; }
.contact-sidebar__card { border-radius: 16px; padding: 28px 24px; }
.contact-sidebar__card.is-dark { background-color: var(--color-dark); color: var(--color-white); }
.contact-sidebar__card.is-light { background-color: var(--color-surface); }
.contact-sidebar__label {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 1.98px;
    text-transform: uppercase;
    color: var(--color-primary);
    margin-bottom: 18px;
}
.contact-sidebar__item {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 14px 0;
    color: inherit;
}
.contact-sidebar__card.is-dark .contact-sidebar__item + .contact-sidebar__item {
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}
.contact-sidebar__icon {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background-color: rgba(189, 245, 75, 0.12);
    color: var(--color-accent);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.contact-sidebar__icon svg { display: block; }
.contact-sidebar__icon svg path { fill: currentColor; }
.contact-sidebar__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.contact-sidebar__text strong {
    font-size: 17px;
    font-weight: 700;
    line-height: 1.3;
    transition: all 0.3s ease;
}
.contact-sidebar__text span { font-size: 13px; color: rgba(255, 255, 255, 0.6); }
a.contact-sidebar__item:hover .contact-sidebar__text strong { color: var(--color-accent); }

/* --- Godziny pracy --- */
.contact-hours { display: grid; }
.contact-hours__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 11px 0;
    border-bottom: 1px solid var(--color-border);
    font-size: 15px;
}
.contact-hours__row span { color: var(--color-text-muted); }
.contact-hours__row strong { color: var(--color-primary); font-weight: 700; }
.contact-hours__row.is-closed strong { color: rgba(6, 16, 10, 0.45); font-weight: 600; }
.contact-hours__note {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 16px;
    padding: 13px 16px;
    background-color: rgba(39, 164, 81, 0.1);
    border-radius: 8px;
    font-size: 13px;
    color: var(--color-text-muted);
}
.contact-hours__note strong { color: var(--color-primary); font-weight: 700; }

/* ======================
   BLOK: MAPA
   ====================== */
.map-block { background-color: var(--color-surface); }
.map-block__header { display: grid; gap: 24px; margin-bottom: 32px; }
.map-block__address {
    background-color: var(--color-white);
    border-radius: 16px;
    padding: 22px 24px;
}
.map-block__address-label {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 1.98px;
    text-transform: uppercase;
    color: var(--color-primary);
    margin-bottom: 10px;
}
.map-block__address-line1 { font-size: 16px; font-weight: 700; color: var(--color-text); }
.map-block__address-line2 { font-size: 14px; color: var(--color-text-muted); }
.map-block__nav { margin-top: 16px; }
.map-block__embed iframe,
.map-block__embed > * { width: 100%; }
.map-block__embed iframe {
    height: 380px;
    border: 0;
    border-radius: 20px;
    display: block;
}

/* ======================
   BLOK: TAGI - LOKALIZACJE (tag-block)
   ====================== */
.tag-block__grid { display: grid; gap: 30px; }
.tag-block__intro { color: var(--color-text-muted); font-size: 16px; line-height: 1.5; }
.tag-block__tags { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px; }
.tag-block__tag {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 9px 16px;
    background-color: var(--color-surface);
    border-radius: 999px;
    font-size: 14px;
    font-weight: 600;
    color: var(--color-text);
}
.tag-block__tag::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background-color: var(--color-primary);
    flex-shrink: 0;
}
.tag-block__media {
    position: relative;
    border-radius: 20px;
    overflow: hidden;
}
.tag-block__media img {
    width: 100%;
    height: 100%;
    aspect-ratio: 648 / 380;
    object-fit: cover;
    display: block;
}
.tag-block__overlay {
    position: absolute;
    left: 16px;
    bottom: 16px;
    max-width: calc(100% - 32px);
    padding: 14px 20px;
    background-color: rgba(0, 17, 8, 0.72);
    backdrop-filter: blur(4px);
    border-radius: 12px;
    color: var(--color-white);
}
.tag-block__overlay strong { display: block; font-size: 16px; font-weight: 700; }
.tag-block__overlay span { font-size: 13px; color: rgba(255, 255, 255, 0.7); }

/* ======================
   BLOK: KROKI / PROCES (steps)
   ====================== */
.steps__header { margin-bottom: 36px; }
.steps__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 30px;
}
.steps__item { position: relative; padding-left: 66px; }
.steps__num {
    position: absolute;
    left: 0;
    top: 0;
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background-color: var(--color-primary);
    color: var(--color-white);
    font-size: 18px;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
}
.steps__item h3 { font-size: 18px; font-weight: 700; margin-bottom: 6px; }
.steps__item p { color: var(--color-text-muted); font-size: 15px; line-height: 1.5; }
/* pionowa linia łącząca (mobile) */
.steps__item:not(:last-child)::before {
    content: "";
    position: absolute;
    left: 23px;
    top: 56px;
    bottom: -30px;
    width: 2px;
    background-color: var(--color-border);
}

/* ======================
   BLOK: FAQ (akordeon)
   ====================== */
section.faq {
    background: var(--color-surface);
}
.faq__list { display: grid; gap: 12px; max-width: 900px; }
.faq__item {
    background-color: white;
    border-radius: 12px;
    overflow: hidden;
}
.single-post .faq__item {
    background-color: var(--color-surface);
}
.faq__question {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 22px;
    font-size: 17px;
    font-weight: 700;
    color: var(--color-text);
    cursor: pointer;
    list-style: none;
}
.faq__question::-webkit-details-marker { display: none; }
.faq__question::after {
    content: "";
    width: 14px;
    height: 9px;
    background-color: var(--color-primary);
    -webkit-mask: url("../img/icon-chevron-down.svg") center / contain no-repeat;
    mask: url("../img/icon-chevron-down.svg") center / contain no-repeat;
    flex-shrink: 0;
    transform: rotate(0deg);
    transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
}
.faq__item[open]:not(.is-closing) .faq__question::after,
.faq__item.is-opening .faq__question::after {
    transform: rotate(180deg);
}
.faq__item.is-closing .faq__question::after {
    transform: rotate(0deg);
}
.faq__answer { overflow: hidden; }
.faq__item.is-faq-enhanced:not([open]) .faq__answer { height: 0; }
.faq__answer-inner {
    padding: 0 22px 20px;
    opacity: 1;
    transform: translate3d(0, 0, 0);
}
.faq__item.is-faq-enhanced .faq__answer-inner {
    opacity: 0;
    transform: translate3d(0, -6px, 0);
    transition:
        opacity 0.22s ease,
        transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
}
.faq__item.is-faq-enhanced[open]:not(.is-closing) .faq__answer-inner {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

/* ======================
   BLOK: GALERIA (pozioma karuzela)
   ====================== */
.gallery__intro { margin-bottom: 25px; }
.gallery__carousel {
    display: flex;
    gap: 15px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -ms-overflow-style: none;
    scrollbar-width: none;
    padding: 4px 16px 22px;
}
.gallery__carousel::-webkit-scrollbar { display: none; }
.gallery__item {
    flex: 0 0 82%;
    scroll-snap-align: start;
    aspect-ratio: 4 / 3;
    border-radius: 16px;
    overflow: hidden;
}
.gallery__item img { width: 100%; height: 100%; object-fit: cover; }

.gallery__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
}

/* ======================
   HERO: tytuł z pojedynczego edytora WYSIWYG (poziom nagłówka wybiera redaktor).
   Niezależnie od wybranego H1–H6 nagłówek hero ma być biały; tekst zwykły = cienki
   (400), pogrubienie (Bold/<strong>) = wyróżnienie (700) - spójnie z "h2 strong".
   ====================== */
.hero :is(h1, h2, h3, h4, h5, h6) {
    color: var(--color-white);
    font-weight: 400;
    margin-bottom: 14px;
}
.hero :is(h1, h2, h3, h4, h5, h6) strong {
    font-weight: 700;
    color: inherit;
}

/* ======================
   STOPKA: bullety menu (zielone kółka, jak w sekcjach)
   ====================== */
.footer__col .menu .menu-item {
    position: relative;
    padding-left: 18px !important;
}
.footer__col .menu .menu-item::before {
    content: "";
    position: absolute;
    left: 0;
    top: 15px;
    transform: translateY(-50%);
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background-color: var(--color-primary);
}

@media (max-width: 991.98px) {
    .footer__col--offer-secondary {
        margin-top: -30px;
    }
    .footer__col .menu.is-secondary {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }
}

/* ======================
   STOPKA: social media
   ====================== */
.footer__socials { display: flex; gap: 12px; margin-top: 8px; }
.footer__social {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background-color: rgba(255, 255, 255, 0.08);
    transition: all 0.3s ease;
}
.footer__social:hover { background-color: var(--color-primary); }

/* ======================
   ANIMOWANE PODKREŚLENIE LINKÓW (hover)
   Linia "wlatuje" z lewej przy najechaniu i "wylatuje" w prawo przy zjechaniu.
   Grubość 1px, kolor = currentColor (dopasowany do tekstu). Menu główne (header)
   celowo pominięte.

   Dwie techniki:
   A) pseudo-element ::after + transform - dla krótkich, "sztywnych" elementów UI
      (odporny m.in. na "background: none !important" w linkach menu stopki):
      .link-underline (reużywalna klasa do ręcznego dodania), menu w stopce,
      breadcrumbs, linki w sidebarze kontaktu, tel w kolumnach z ikonami.
   B) animowane tło (background-size) - dla linków w treści WYSIWYG dodawanych
      w edytorze; poprawnie podkreśla także zawinięte wiersze w akapicie.
   ====================== */

/* --- A) Pseudo-element --- */
.link-underline,
.footer__col .menu .menu-item a,
.trust-contact a,
.breadcrumbs a,
.contact-sidebar__text strong {
    position: relative;
    display: inline-block;
    text-decoration: none;
}
.link-underline::after,
.footer__col .menu .menu-item a::after,
.trust-contact a::after,
.breadcrumbs a::after,
.contact-sidebar__text strong::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 1px;
    background-color: currentColor;
    transform: scaleX(0);
    transform-origin: right center;
    transition: transform 0.3s ease;
    pointer-events: none;
}
.link-underline:hover::after,
.link-underline:focus-visible::after,
.footer__col .menu .menu-item a:hover::after,
.footer__col .menu .menu-item a:focus-visible::after,
.trust-contact a:hover::after,
.trust-contact a:focus-visible::after,
.breadcrumbs a:hover::after,
.breadcrumbs a:focus-visible::after,
a.contact-sidebar__item:hover .contact-sidebar__text strong::after,
a.contact-sidebar__item:focus-visible .contact-sidebar__text strong::after {
    transform: scaleX(1);
    transform-origin: left center;
}
/* Kolumny z ikonami: linia w kolorze primary (jaskrawy accent byłby słabo
   widoczny na jasnym tle) + zdejmujemy dawny statyczny underline z :hover. */
.trust-contact a::after { background-color: var(--color-primary); }
.trust-contact a:hover { text-decoration: none; }
/* Sidebar kontaktu: strong jest flex-itemem (kolumna) - bez tego rozciągałby
   się na całą szerokość i podkreślenie nie trzymałoby się tekstu. */
.contact-sidebar__text strong { align-self: flex-start; }

/* --- B) Linki w treści WYSIWYG (dodawane w edytorze, bez klasy) --- */
.wysiwyg a,
.image-text__content a,
.info-block__text a,
.tabs-pane a {
    text-decoration: none;
    background-image: linear-gradient(currentColor, currentColor);
    background-repeat: no-repeat;
    background-position: right bottom;
    background-size: 0% 1px;
    transition: background-size 0.3s ease;
}
.wysiwyg a:hover,
.wysiwyg a:focus-visible,
.image-text__content a:hover,
.image-text__content a:focus-visible,
.info-block__text a:hover,
.info-block__text a:focus-visible,
.tabs-pane a:hover,
.tabs-pane a:focus-visible {
    background-position: left bottom;
    background-size: 100% 1px;
}

/* ======================
   POPUP FORMULARZA (Umów termin)
   ====================== */
.popup-form {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    opacity: 0;
    transition: opacity 0.3s ease;
}
.popup-form[hidden] { display: none; }
.popup-form.is-open { opacity: 1; }
.popup-form.is-open .popup-form__dialog { transform: translateY(0); }
.popup-form__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 17, 8, 0.7);
    backdrop-filter: blur(3px);
}
.popup-form__dialog {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 540px;
    max-height: 92vh;
    padding: 0;
    box-shadow: 0 30px 70px rgba(0, 0, 0, 0.35);
    border-radius: 20px;
    transform: translateY(16px);
    transition: transform 0.3s ease;
}
.popup-form__inner {
    display: flex;
    flex-direction: column;
    border-radius: 20px;
    max-height: 92vh;
    overflow: hidden;
}
/* Pasek nagłówka popupu (ciemny, akcent marki) */
.popup-form__title {
    flex-shrink: 0;
    background-color: var(--color-dark);
    color: var(--color-white);
    padding: 26px 30px;
}
.popup-form__title h3 { margin: 0; font-size: 24px; color: var(--color-white); }
.popup-form__title::before {
    content: "";
    display: block;
    width: 28px;
    height: 2px;
    background-color: var(--color-accent);
    margin-bottom: 12px;
}
.popup-form__body { padding: 28px 30px 30px; overflow-y: auto; background: white; }
.popup-form__close {
    position: absolute;
    top: 18px;
    right: 20px;
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 26px;
    line-height: 1;
    color: var(--color-white);
    background-color: rgba(255, 255, 255, 0.12);
    border-radius: 8px;
    transition: background-color 0.2s ease;
}
.popup-form__close:hover { background-color: rgba(255, 255, 255, 0.25); }
/* Formularz w popupie - jedna kolumna, pełnoszerokościowy przycisk */
.popup-form .cf7-row { margin-bottom: 0; }
.popup-form .wpcf7-submit { width: 100%; margin-top: 4px; }
.popup-form .cf7-row--consent,
.contact-form .cf7-row--consent { display: flex; align-items: flex-start; gap: 4px; }
.popup-form .cf7-row--consent label,
.contact-form .cf7-row--consent label { font-weight: 400; font-size: 13px; color: var(--color-text-muted); margin: 0; }
span.wpcf7-form-control.wpcf7-acceptance label {
    font-size: 11px;
    line-height: 1.2em;
    opacity: .75;
    text-align: justify;
}
.popup-form .cf7-row--consent .wpcf7-form-control-wrap { margin-top: 0; display: inline; }

/* ======================
   CPT: pojedynczy samochód
   ====================== */

/* Pasek breadcrumbs (zamiast hero) - odsuwa treść od stałego nagłówka */
.car-breadcrumbs { padding: 120px 0 0; }
.car-breadcrumbs .breadcrumbs {
    margin-top: 20px;
    color: var(--color-text-muted);
}
.car-breadcrumbs .breadcrumbs a { color: var(--color-primary); }
.car-breadcrumbs .breadcrumbs span { color: rgba(6, 16, 10, 0.4); }
.single-car { padding-top: 22px; }

/* minmax(0,1fr) + min-width:0 zapobiegają "grid blowout" - bez tego
   na mobile niejawna kolumna auto rozpycha się do min-content Swipera */
.single-car__top { display: grid; gap: 30px; grid-template-columns: minmax(0, 1fr); }
.single-car__media,
.single-car__panel { min-width: 0; }

/* Galeria - Swiper (główny slider + zsynchronizowane miniatury) */
.car-gallery { max-width: 100%; min-width: 0; }
.car-gallery .swiper { width: 100%; }
.car-gallery__main {
    border-radius: 20px;
    overflow: hidden;
    background-color: var(--color-surface);
    position: relative;
}
/* Fallback: zanim Swiper doda klasę swiper-initialized (lub gdy JS się nie wczyta)
   pokazujemy tylko pierwszy slajd - bez tego slajdy układają się pionowo i kontener rośnie */
.car-gallery__main:not(.swiper-initialized) .swiper-slide:nth-child(n + 2) { display: none; }
.car-gallery__main .swiper-slide { height: auto; background-color: var(--color-surface); }
/* Pewna proporcja 16:10 techniką padding - działa niezależnie od wsparcia
   aspect-ratio, od orientacji zdjęcia i od tego, czy Swiper się zainicjalizował */
.car-gallery__main .swiper-slide a {
    display: block;
    position: relative;
    width: 100%;
    padding-top: 62.5%;
    overflow: hidden;
    cursor: zoom-in;
}
.car-gallery__main img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.car-gallery__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    border: none;
    cursor: pointer;
    background: rgba(255, 255, 255, 0.92) center / 11px no-repeat;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
    transition: background-color 0.2s ease, opacity 0.2s ease;
}
.car-gallery__prev { left: 14px; background-image: url("../img/icon-chevron-left.svg"); }
.car-gallery__next { right: 14px; background-image: url("../img/icon-chevron-right.svg"); }
.car-gallery__nav:hover { background-color: #fff; }
.car-gallery__nav.swiper-button-disabled { opacity: 0; pointer-events: none; }

.car-gallery__thumbs { margin-top: 10px; }
/* Stała wysokość miniatur - padding-% liczyłby się od szerokości wrappera (błąd),
   a aspect-ratio bywa zawodne; stała wysokość jest deterministyczna */
.car-gallery__thumbs .swiper-slide {
    height: 72px;
    border-radius: 10px;
    overflow: hidden;
    cursor: pointer;
    border: 2px solid transparent;
    opacity: 0.55;
    transition: opacity 0.2s ease, border-color 0.2s ease;
    box-sizing: border-box;
}
.car-gallery__thumbs .swiper-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.car-gallery__thumbs .swiper-slide-thumb-active { opacity: 1; border-color: var(--color-primary); }

/* Panel z ceną + tytuł */
.single-car__card {
    background-color: var(--color-surface);
    border-radius: 20px;
    padding: 28px 26px;
}
.single-car__card .section-label { margin-bottom: 12px; }
.single-car__title { font-size: 28px; line-height: 1.15; margin-bottom: 8px; }
.single-car__card-params { color: var(--color-text-muted); font-size: 15px; margin-bottom: 14px; }
.single-car__price { display: flex; flex-direction: column; gap: 4px; margin-bottom: 22px; }
.single-car__price strong { font-size: 32px; font-weight: 800; color: var(--color-text); line-height: 1.1; }
.single-car__price span { font-size: 15px; color: rgba(6, 16, 10, 0.6); }
.single-car__actions { display: grid; gap: 12px; }
.single-car__actions .btn { width: 100%; }
.single-car__phone {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 18px;
    font-weight: 700;
    color: var(--color-primary);
}
.single-car__trust {
    margin-top: 22px;
    padding-top: 20px;
    border-top: 1px solid var(--color-border);
    display: grid;
    gap: 12px;
}
.single-car__trust li {
    position: relative;
    padding-left: 28px;
    font-size: 14px;
    color: var(--color-text-muted);
    line-height: 1.4;
}
.single-car__trust li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 2px;
    width: 18px;
    height: 18px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2327a451' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Highlighty */
.car-highlights {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    margin: 40px 0;
}
.car-highlight {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 18px;
    background-color: var(--color-surface);
    border-radius: 14px;
}
.car-highlight__icon {
    width: 44px;
    height: 44px;
    flex-shrink: 0;
    border-radius: 10px;
    background-color: rgba(39, 164, 81, 0.1);
    color: var(--color-primary);
    display: flex;
    align-items: center;
    justify-content: center;
}
.car-highlight__icon svg { width: 22px; height: 22px; }
.car-highlight__text { display: flex; flex-direction: column; }
.car-highlight__label { font-size: 12px; text-transform: uppercase; letter-spacing: 1px; color: var(--color-text-muted); }
.car-highlight__text strong { font-size: 17px; font-weight: 700; color: var(--color-text); }

/* Sekcje szczegółów */
.single-car__section { margin-top: 44px; }
.single-car__section h2 { font-size: 30px; margin-bottom: 22px; }

.car-specs { width: 100%; border-collapse: collapse; }
.car-specs th,
.car-specs td { text-align: left; padding: 13px 0; border-bottom: 1px solid var(--color-border); font-size: 15px; vertical-align: top; }
.car-specs th { font-weight: 600; color: var(--color-text-muted); width: 45%; }
.car-specs td { font-weight: 700; color: var(--color-text); }

.car-features { display: grid; grid-template-columns: 1fr; gap: 12px; }
.car-features li {
    position: relative;
    padding-left: 30px;
    font-size: 15px;
    color: var(--color-text);
    line-height: 1.4;
}
.car-features li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 20px;
    height: 20px;
    border-radius: 6px;
    background: var(--color-primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center / 12px no-repeat;
}

/* ======================
   WPISY / ARCHIWUM / PAGINACJA
   ====================== */
.post-grid { display: grid; grid-template-columns: 1fr; gap: 24px; }
/* Karta = kolumna flex, aby przycisk "Czytaj więcej" przypiąć do dołu (równa wysokość kart w rzędzie). */
.post-card { background-color: var(--color-surface); border-radius: 16px; overflow: hidden; display: flex; flex-direction: column; }
.post-card__image { display: block; aspect-ratio: 417 / 230; overflow: hidden; }
/* Hover jak w kartach cards-grid is-leasing (car-card): zoom obrazka + tytuł na primary */
.post-card__image img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.4s ease; scale: 1.01; }
.post-card:hover .post-card__image img { transform: scale(1.05); }
.post-card__body h3 a { transition: color 0.3s ease; }
.post-card:hover .post-card__body h3 a { color: var(--color-primary); }
.post-card__body { padding: 20px; display: flex; flex-direction: column; flex: 1 1 auto; }
.post-card__body h3 { margin-bottom: 10px; }
.post-card__body p { color: var(--color-text-muted); font-size: 15px; margin-bottom: 16px; }
.post-card__btn { align-self: flex-start; margin-top: auto; }

.single-content { padding: 60px 0; }
.single-content__thumb { width: 100%; height: auto; border-radius: 20px; margin-bottom: 30px; }

/* --- Hero wpisu (spójny z page-title-block, nieco większy + meta) --- */
.page-title-block.is-article { padding: 150px 0 55px; }
.page-title-block.is-article h1 { font-size: 32px; line-height: 1.15; max-width: 900px; }
.post-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 22px; margin-top: 18px; }
.post-meta__item { position: relative; display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: var(--color-white-muted); }
.post-meta__item::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background-color: var(--color-primary); flex-shrink: 0; }

/* --- Układ: treść + sidebar --- */
.single-layout { display: grid; grid-template-columns: 1fr; gap: 40px; }
.single-layout__sidebar { display: grid; gap: 20px; align-content: start; }

/* Typografia treści wpisu: nagłówki sekcji mniejsze i ciemne (blog czyta się
   inaczej niż wielkie nagłówki landing page) + wyraźne odstępy między sekcjami. */
.single-layout__main > h2 { font-size: 26px; font-weight: 700; color: var(--color-text); margin-top: 40px; margin-bottom: 14px; }
.single-layout__main > h3 { margin-top: 28px; }
.single-layout__main > *:first-child { margin-top: 0; }
.single-layout__main > p:first-of-type { font-size: 17px; line-height: 1.6; }

/* Karta CTA w sidebarze */
.blog-sidebar__heading { margin-bottom: 12px; }
.blog-sidebar__heading strong { font-size: 22px; font-weight: 700; line-height: 1.25; }
.blog-sidebar__contact .blog-sidebar__text { color: var(--color-white-muted); font-size: 15px; line-height: 1.55; margin-bottom: 12px; }
.blog-sidebar__btn { width: 100%; margin-top: 18px; }
.blog-sidebar__recent .contact-sidebar__label { margin-bottom: 10px; }
.blog-sidebar__recent .blog-sidebar__heading strong { font-size: 18px; }

/* Lista najnowszych artykułów */
.sidebar-posts { display: grid; gap: 4px; margin-top: 8px; }
.sidebar-posts__link { display: flex; align-items: center; gap: 14px; padding: 12px 0; border-top: 1px solid var(--color-border); }
.sidebar-posts__item:first-child .sidebar-posts__link { border-top: 0; }
.sidebar-posts__thumb { flex-shrink: 0; width: 56px; height: 56px; border-radius: 8px; overflow: hidden; background-color: var(--color-border); }
.sidebar-posts__thumb img { width: 100%; height: 100%; object-fit: cover; }
.sidebar-posts__body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.sidebar-posts__body strong { font-size: 14px; font-weight: 600; line-height: 1.35; color: var(--color-text); transition: color 0.3s ease; }
.sidebar-posts__link:hover .sidebar-posts__body strong { color: var(--color-primary); }
.sidebar-posts__date { font-size: 12px; color: var(--color-text-muted); }

/* Nawigacja między wpisami */
.post-nav { display: flex; justify-content: space-between; gap: 16px; margin-top: 40px; padding-top: 28px; border-top: 1px solid var(--color-border); }
.post-nav__link { display: inline-flex; align-items: center; gap: 10px; font-weight: 700; font-size: 15px; color: var(--color-text); }
.post-nav__link:hover { color: var(--color-primary); }
.post-nav__link--next { margin-left: auto; text-align: right; }

/* Elementy w treści importowanych wpisów (przycisk usługi, wzór pisma) */
.wysiwyg__cta { text-align: center; margin: 32px 0; }
.wysiwyg__cta span { display: block; font-weight: 700; font-size: 17px; margin-bottom: 14px; }
.wysiwyg .doc-template { background-color: var(--color-surface); border-left: 3px solid var(--color-primary); border-radius: 0 12px 12px 0; padding: 24px 26px; margin: 24px 0; }
.wysiwyg .doc-template p { margin-bottom: 8px; }

.pagination { margin-top: 40px; }
.pagination .nav-links { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    height: 42px;
    padding: 0 12px;
    border-radius: 6px;
    border: 1px solid var(--color-border);
    font-weight: 700;
    color: var(--color-text);
}
.pagination .page-numbers.current,
.pagination .page-numbers:hover { background-color: var(--color-primary); color: var(--color-white); border-color: var(--color-primary); }

.error-404 { padding: 60px 0 100px; text-align: center; }
.error-404 p { margin-bottom: 24px; color: var(--color-text-muted); }

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

/* ==========================================================================
   DESKTOP 992px+
   ========================================================================== */
@media (min-width: 992px) {
    .image-text:is(.is-left, .is-right) .image-text__row { align-items: stretch; }
    .image-text:is(.is-left, .is-right) .image-text__content { align-self: center; }
    .image-text:is(.is-left, .is-right) .image-text__media { min-height: 420px; }

    .site-main > section:first-child:not(.hero):not(.page-title-block) {
        margin-top: 152px;
    }

    .page-title-block { padding: 200px 0 70px; }

    .text-block .wysiwyg.is-narrow,
    .image-block__figure.is-narrow { max-width: 900px; }

    .contact-form__grid { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 60px; align-items: start; }
    .contact-form .cf7-row--2 { grid-template-columns: 1fr 1fr; }
    .contact-sidebar__card { padding: 32px; }
    .map-block__header {
        grid-template-columns: 1fr 300px;
        gap: 40px;
        align-items: start;
        margin-bottom: 40px;
    }
    .map-block__embed iframe { height: 420px; }

    /* Obraz rozciągnięty na wysokość treści (jak w bloku "Media i tekst"):
       kolumny stretch, treść wyśrodkowana w pionie, obraz wypełnia wysokość. */
    .tag-block__grid { grid-template-columns: 1fr 1fr; gap: 60px; align-items: stretch; }
    .tag-block__content { align-self: center; }
    .tag-block__media { min-height: 380px; display: flex; }
    .tag-block__media img { aspect-ratio: auto; height: 100%; min-height: inherit; }
    .tag-block__overlay { left: 24px; bottom: 24px; max-width: 70%; }

    /* Kroki - poziomy układ z linią łączącą badge */
    .steps__list { grid-template-columns: repeat(var(--steps-count, 4), minmax(0, 1fr)); gap: 24px; }
    .steps__item { padding-left: 0; }
    .steps__num { position: relative; margin-bottom: 22px; }
    .steps__item:not(:last-child)::before {
        left: 60px;
        right: -24px;
        top: 23px;
        bottom: auto;
        width: auto;
        height: 2px;
    }

    .faq__question { font-size: 18px; }

    .gallery__carousel { padding-left: 40px; padding-right: 40px; }
    .gallery__item { flex-basis: 32%; }

    .gallery__grid {
        grid-template-columns: repeat(var(--gallery-grid-cols, 3), 1fr);
        grid-template-rows: repeat(2, 1fr);
    }

    /* Wpis: hero większy + układ treść / sidebar */
    .page-title-block.is-article { padding: 210px 0 75px; }
    .page-title-block.is-article h1 { font-size: 46px; }
    /* Kolumna sidebara rozciąga się na wysokość treści (align-items: stretch),
       a sam sidebar jest blokiem (nie gridem) - dzięki temu karta
       "Najnowsze artykuły" jako blokowe dziecko jest niezawodnie sticky
       i towarzyszy przewijaniu (karta kontaktu przewija się ponad nią). */
    .single-layout { grid-template-columns: minmax(0, 1fr) 360px; gap: 60px; align-items: stretch; }
    .single-layout__sidebar { display: block; }
    .single-layout__sidebar > * + * { margin-top: 20px; }
    .blog-sidebar__recent { position: sticky; top: 120px; }
    .single-layout__main > h2 { font-size: 30px; margin-top: 48px; }

    .car-breadcrumbs { padding-top: 150px; }
    .single-car__top { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 50px; align-items: start; }
    .single-car__panel { position: sticky; top: 120px; }
    .single-car__title { font-size: 30px; }
    .car-gallery__thumbs .swiper-slide { height: 92px; }
    .car-highlights { grid-template-columns: repeat(4, 1fr); }
    .car-features { grid-template-columns: repeat(2, 1fr); gap: 12px 40px; }
    .single-car__details { max-width: 900px; }

    .post-grid { grid-template-columns: repeat(3, 1fr); gap: 30px; }

    /* Media i tekst - obraz "na zewnątrz" containera */
    .image-text.is-outside.is-right .image-text__media { margin-right: calc(-50vw + 50%); }
    .image-text.is-outside.is-left .image-text__media { margin-left: calc(-50vw + 50%); }
    .image-text.is-outside .image-text__media img { border-radius: 20px; }
}
