/*
 * TSI – Sesje biznesowe PF
 * Naturalny układ sekcji bez starego efektu nakładających się ekranów.
 */

:root {
    --tsi-pf-business-bg: #f6f4ef;
    --tsi-pf-business-soft: #ebe8e2;
    --tsi-pf-business-dark: #111110;
    --tsi-pf-business-text: #171614;
    --tsi-pf-business-muted: #6d6962;
    --tsi-pf-business-accent: #aa7a3d;
    --tsi-pf-business-line: rgba(23, 22, 20, .14);
    --tsi-pf-business-max: 1920px;
}

html.tsi-pf-business-fix-active,
html.tsi-pf-business-fix-active body {
    scroll-behavior: smooth;
}

body.tsi-pf-business-page-fixed {
    overflow-x: hidden !important;
    background: var(--tsi-pf-business-bg) !important;
    color: var(--tsi-pf-business-text);
}

/* ===== Konstrukcja strony: koniec z nakładaniem sekcji ===== */
body.tsi-pf-business-page-fixed main#content,
html.tsi-pf-business-fix-active body.tsi-pf-business-page-fixed main#content {
    position: relative !important;
    z-index: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
    max-width: none !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    transform: none !important;
}

body.tsi-pf-business-page-fixed main#content section,
html.tsi-pf-business-fix-active body.tsi-pf-business-page-fixed main#content section {
    position: relative !important;
    inset: auto !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    z-index: auto !important;
    flex: 0 0 auto !important;
    width: 100% !important;
    max-width: var(--tsi-pf-business-max) !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 auto !important;
    overflow: visible !important;
    transform: none !important;
    translate: none !important;
    animation: none !important;
    box-shadow: none !important;
    scroll-margin-top: calc(var(--tsi-basic-nav-height, 80px) + 12px);
}

/* Bezpieczny układ tylko dla głównych sekcji strony. */
body.tsi-pf-business-page-fixed main#content > section {
    flex: 0 0 auto !important;
    width: 100% !important;
    max-width: var(--tsi-pf-business-max) !important;
    margin-right: auto !important;
    margin-left: auto !important;
}

body.tsi-pf-business-page-fixed main#content section.blank,
body.tsi-pf-business-page-fixed main#content > section.blank {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    visibility: hidden !important;
}

body.tsi-pf-business-page-fixed footer,
body.tsi-pf-business-page-fixed #site-footer {
    position: relative !important;
    top: auto !important;
    z-index: 2 !important;
    width: 100% !important;
    margin-top: 0 !important;
    transform: none !important;
}

/* ===== Menu zgodne z nową stroną główną ===== */
body.tsi-pf-business-page-fixed > section.basic-nav {
    position: sticky !important;
    top: 0 !important;
    z-index: 2147483000 !important;
    width: 100% !important;
    max-width: none !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    box-shadow: 0 8px 24px rgba(17, 17, 16, .08) !important;
}

body.admin-bar.tsi-pf-business-page-fixed > section.basic-nav {
    top: 32px !important;
}

body.tsi-pf-business-page-fixed .basic-menu-banner {
    min-height: 79px;
    padding: 14px clamp(24px, 5vw, 64px) !important;
    background: rgba(255, 255, 255, .97) !important;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

/* ===== Kolory jak na stronie głównej ===== */
body.tsi-pf-business-page-fixed main#content > .section-color-jasny {
    background: var(--tsi-pf-business-bg) !important;
    color: var(--tsi-pf-business-text) !important;
}

body.tsi-pf-business-page-fixed main#content > .section-color-szary {
    background: var(--tsi-pf-business-soft) !important;
    color: var(--tsi-pf-business-text) !important;
}

body.tsi-pf-business-page-fixed main#content > .section-color-ciemny {
    background: var(--tsi-pf-business-dark) !important;
    color: #f7f5f1 !important;
}

/* ===== Sekcje kolumnowe ===== */
body.tsi-pf-business-page-fixed main#content > section.section-type-kolumny {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    justify-content: center !important;
    border-bottom: 1px solid var(--tsi-pf-business-line);
}

body.tsi-pf-business-page-fixed main#content > section.section-type-kolumny > div {
    position: relative !important;
    z-index: 1;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    gap: clamp(20px, 2.6vw, 42px) !important;
    box-sizing: border-box !important;
    overflow: visible !important;
}

/* Spójne, editorialowe odstępy; stare klasy padding nie ściskają tekstu. */
body.tsi-pf-business-page-fixed main#content > section.section-type-kolumny > div:not(:has(> .single-element-obraz:only-child)) {
    padding-top: clamp(64px, 8vw, 128px) !important;
    padding-right: clamp(28px, 6vw, 104px) !important;
    padding-bottom: clamp(64px, 8vw, 128px) !important;
    padding-left: clamp(28px, 6vw, 104px) !important;
}

/* Kolumna z samym zdjęciem ma być pełnym kadrem. */
body.tsi-pf-business-page-fixed main#content > section.section-type-kolumny > div:has(> .single-element-obraz:only-child) {
    min-height: 520px !important;
    padding: 0 !important;
    overflow: hidden !important;
}

body.tsi-pf-business-page-fixed main#content .column-background-wrapper {
    position: absolute !important;
    inset: 0 !important;
    z-index: 0 !important;
    width: 100% !important;
    height: 100% !important;
    overflow: hidden !important;
}

body.tsi-pf-business-page-fixed main#content .column-background-wrapper img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

body.tsi-pf-business-page-fixed main#content .single-element {
    position: relative !important;
    z-index: 1 !important;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
}

body.tsi-pf-business-page-fixed main#content .single-element-obraz:only-child {
    height: 100% !important;
    min-height: 520px !important;
    overflow: hidden !important;
}

body.tsi-pf-business-page-fixed main#content .single-element-obraz:only-child img {
    width: 100% !important;
    height: 100% !important;
    min-height: 520px !important;
    object-fit: cover !important;
    object-position: center !important;
}

body.tsi-pf-business-page-fixed main#content .single-element-obraz:not(:only-child) img,
body.tsi-pf-business-page-fixed main#content .text-wysiwig img {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    object-fit: cover;
}

/* ===== Typografia strony głównej ===== */
body.tsi-pf-business-page-fixed main#content h1,
body.tsi-pf-business-page-fixed main#content h2,
body.tsi-pf-business-page-fixed main#content h3,
body.tsi-pf-business-page-fixed main#content h4 {
    margin: 0;
    max-width: 100%;
    font-family: 'Playfair Display', 'Playfair display', Georgia, serif !important;
    text-wrap: balance;
    overflow-wrap: anywhere;
}

body.tsi-pf-business-page-fixed main#content h1,
body.tsi-pf-business-page-fixed main#content h2 {
    font-weight: 500 !important;
    line-height: 1.02 !important;
    letter-spacing: -.045em !important;
}

body.tsi-pf-business-page-fixed main#content h3 {
    font-weight: 500 !important;
    line-height: 1.12 !important;
    letter-spacing: -.025em !important;
}

body.tsi-pf-business-page-fixed main#content .single-element-naglowek_h2_256px,
body.tsi-pf-business-page-fixed main#content .single-element-naglowek_h2_256px h2 {
    font-size: clamp(54px, 7.2vw, 104px) !important;
}

body.tsi-pf-business-page-fixed main#content .single-element-naglowek_h2_128px,
body.tsi-pf-business-page-fixed main#content .single-element-naglowek_h2_128px h2,
body.tsi-pf-business-page-fixed main#content .single-element-naglowek_h2_91px,
body.tsi-pf-business-page-fixed main#content .single-element-naglowek_h2_91px h2 {
    font-size: clamp(46px, 5.6vw, 80px) !important;
}

body.tsi-pf-business-page-fixed main#content .single-element-naglowek_h2_64px,
body.tsi-pf-business-page-fixed main#content .single-element-naglowek_h2_64px h2 {
    font-size: clamp(38px, 4.4vw, 62px) !important;
}

body.tsi-pf-business-page-fixed main#content .single-element-naglowek_h2_51px,
body.tsi-pf-business-page-fixed main#content .single-element-naglowek_h2_51px h2 {
    font-size: clamp(32px, 3.4vw, 48px) !important;
}

body.tsi-pf-business-page-fixed main#content .single-element-naglowek_h2_36px,
body.tsi-pf-business-page-fixed main#content .single-element-naglowek_h2_36px h2 {
    font-size: clamp(28px, 2.8vw, 40px) !important;
}

body.tsi-pf-business-page-fixed main#content .single-element-naglowek_h3_32px,
body.tsi-pf-business-page-fixed main#content .single-element-naglowek_h3_32px h3,
body.tsi-pf-business-page-fixed main#content .single-element-naglowek_h3_25px,
body.tsi-pf-business-page-fixed main#content .single-element-naglowek_h3_25px h3 {
    font-size: clamp(23px, 2.2vw, 34px) !important;
}

body.tsi-pf-business-page-fixed main#content p,
body.tsi-pf-business-page-fixed main#content li,
body.tsi-pf-business-page-fixed main#content .text-wysiwig,
body.tsi-pf-business-page-fixed main#content .text-dane_kontaktowe {
    font-family: 'Red Hat Display', Arial, sans-serif !important;
    font-size: clamp(16px, 1.15vw, 19px) !important;
    font-weight: 400 !important;
    line-height: 1.72 !important;
    letter-spacing: -.01em;
    overflow-wrap: anywhere;
}

body.tsi-pf-business-page-fixed main#content .text-wysiwig {
    display: block !important;
    width: 100%;
    max-width: 72ch;
}

body.tsi-pf-business-page-fixed main#content .text-wysiwig p,
body.tsi-pf-business-page-fixed main#content .text-wysiwig ul,
body.tsi-pf-business-page-fixed main#content .text-wysiwig ol {
    margin: 0 0 1.15em !important;
}

body.tsi-pf-business-page-fixed main#content .text-wysiwig > *:last-child {
    margin-bottom: 0 !important;
}

body.tsi-pf-business-page-fixed main#content .single-element + .single-element {
    margin-top: 0 !important;
}

/* ===== Listy, tabele i CTA ===== */
body.tsi-pf-business-page-fixed main#content .list-row,
body.tsi-pf-business-page-fixed main#content .ul-list-row,
body.tsi-pf-business-page-fixed main#content .table-row {
    display: grid !important;
    grid-template-columns: minmax(48px, auto) minmax(0, 1fr);
    align-items: start !important;
    gap: clamp(18px, 2vw, 32px) !important;
    padding: 24px 0 !important;
    border-bottom: 1px solid var(--tsi-pf-business-line);
}

body.tsi-pf-business-page-fixed main#content .single-element-podpis_odnosnik a {
    display: inline-flex !important;
    align-items: center;
    gap: 14px;
    min-height: 48px;
    padding: 12px 54px 12px 0 !important;
    border-bottom: 1px solid currentColor;
    font-family: 'Red Hat Display', Arial, sans-serif !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    line-height: 1.3 !important;
    transition: opacity .22s ease, gap .22s ease;
}

body.tsi-pf-business-page-fixed main#content .single-element-podpis_odnosnik a:hover {
    gap: 20px;
    opacity: .72;
}

/* ===== Przycisk Home ===== */
body.tsi-pf-business-page-fixed .homepage-btn {
    z-index: 2147482999 !important;
    bottom: 24px !important;
    left: 24px !important;
    padding: 8px 18px !important;
    border: 1px solid rgba(17, 17, 16, .16);
    background: rgba(255, 255, 255, .92) !important;
    box-shadow: 0 10px 26px rgba(17, 17, 16, .12);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

/* ===== Tablet ===== */
@media (max-width: 1100px) {
    body.tsi-pf-business-page-fixed main#content > section.section-type-kolumny > div:not(:has(> .single-element-obraz:only-child)) {
        padding: 72px clamp(28px, 5vw, 64px) !important;
    }
}

/* ===== Telefon ===== */
@media (max-width: 760px) {
    body.admin-bar.tsi-pf-business-page-fixed > section.basic-nav {
        top: 46px !important;
    }

    body.tsi-pf-business-page-fixed .basic-menu-banner {
        min-height: 68px;
        padding: 12px 20px !important;
    }

    body.tsi-pf-business-page-fixed .basic-menu-banner button {
        width: 52px !important;
    }

    body.tsi-pf-business-page-fixed main#content > section.section-type-kolumny {
        flex-direction: column !important;
        flex-wrap: nowrap !important;
    }

    body.tsi-pf-business-page-fixed main#content > section.section-type-kolumny > div,
    body.tsi-pf-business-page-fixed main#content .column-width-10,
    body.tsi-pf-business-page-fixed main#content .column-width-20,
    body.tsi-pf-business-page-fixed main#content .column-width-30,
    body.tsi-pf-business-page-fixed main#content .column-width-40,
    body.tsi-pf-business-page-fixed main#content .column-width-50,
    body.tsi-pf-business-page-fixed main#content .column-width-60,
    body.tsi-pf-business-page-fixed main#content .column-width-70,
    body.tsi-pf-business-page-fixed main#content .column-width-80,
    body.tsi-pf-business-page-fixed main#content .column-width-90,
    body.tsi-pf-business-page-fixed main#content .column-width-100 {
        width: 100% !important;
        max-width: 100% !important;
    }

    body.tsi-pf-business-page-fixed main#content > section.section-type-kolumny > div:not(:has(> .single-element-obraz:only-child)) {
        padding: 56px 24px !important;
    }

    body.tsi-pf-business-page-fixed main#content > section.section-type-kolumny > div:has(> .single-element-obraz:only-child),
    body.tsi-pf-business-page-fixed main#content .single-element-obraz:only-child,
    body.tsi-pf-business-page-fixed main#content .single-element-obraz:only-child img {
        min-height: 360px !important;
    }

    body.tsi-pf-business-page-fixed main#content .list-row,
    body.tsi-pf-business-page-fixed main#content .ul-list-row,
    body.tsi-pf-business-page-fixed main#content .table-row {
        grid-template-columns: 1fr !important;
    }

    body.tsi-pf-business-page-fixed .homepage-btn {
        bottom: 14px !important;
        left: 14px !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.tsi-pf-business-page-fixed *,
    body.tsi-pf-business-page-fixed *::before,
    body.tsi-pf-business-page-fixed *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}

/* ========================================================================== 
   Sesje indywidualne – czytelniejsze formatowanie długich treści i kafelków
   ========================================================================== */
body.tsi-pf-individual-page main#content .text-wysiwig h2,
body.tsi-pf-individual-page main#content .text-wysiwig h3,
body.tsi-pf-individual-page main#content .text-wysiwig h4 {
    margin-top: 0 !important;
    margin-bottom: clamp(18px, 2vw, 30px) !important;
}

body.tsi-pf-individual-page main#content .text-wysiwig p {
    margin: 0 0 clamp(18px, 1.8vw, 28px) !important;
}

body.tsi-pf-individual-page main#content .text-wysiwig p:last-child {
    margin-bottom: 0 !important;
}

/* Blok „Kogo fotografuję?” – każda grupa otrzymuje własny, czytelny wiersz. */
body.tsi-pf-individual-page main#content .tsi-audience-block {
    width: 100% !important;
    max-width: 78ch !important;
}

body.tsi-pf-individual-page main#content .tsi-audience-block .tsi-audience-item {
    position: relative;
    margin: 0 !important;
    padding: clamp(18px, 1.8vw, 28px) 0 !important;
    border-top: 1px solid var(--tsi-pf-business-line);
}

body.tsi-pf-individual-page main#content .section-color-ciemny .tsi-audience-block .tsi-audience-item {
    border-top-color: rgba(255, 255, 255, .18);
}

body.tsi-pf-individual-page main#content .tsi-audience-block .tsi-audience-item--continuation {
    margin-top: clamp(-14px, -1vw, -8px) !important;
    padding-top: 0 !important;
    border-top: 0 !important;
}

body.tsi-pf-individual-page main#content .tsi-audience-block .tsi-audience-item:first-of-type {
    margin-top: 8px !important;
}

/* Ciemne sekcje zachowują odpowiedni kontrast. */
body.tsi-pf-individual-page main#content > .section-color-ciemny p,
body.tsi-pf-individual-page main#content > .section-color-ciemny li,
body.tsi-pf-individual-page main#content > .section-color-ciemny .text-wysiwig {
    color: rgba(255, 255, 255, .88) !important;
}

body.tsi-pf-individual-page main#content > .section-color-ciemny h2,
body.tsi-pf-individual-page main#content > .section-color-ciemny h3,
body.tsi-pf-individual-page main#content > .section-color-ciemny h4,
body.tsi-pf-individual-page main#content > .section-color-ciemny a {
    color: #fff !important;
}

/* Linki pod kafelkami – zawsze w jednym miejscu i bez nachodzenia na obraz/tekst. */
body.tsi-pf-individual-page main#content .single-element-podpis_odnosnik {
    width: 100% !important;
    margin-top: auto !important;
    padding-top: clamp(22px, 2.6vw, 40px) !important;
}

body.tsi-pf-individual-page main#content .single-element-podpis_odnosnik h4 {
    width: 100% !important;
    margin: 0 !important;
}

body.tsi-pf-individual-page main#content .single-element-podpis_odnosnik a {
    justify-content: space-between !important;
    width: min(100%, 420px) !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    white-space: normal !important;
}

/* Sekcje rozpoznane jako kafelki na dole strony. */
body.tsi-pf-individual-page main#content > section.tsi-pf-link-card-section > div {
    justify-content: flex-start !important;
}

body.tsi-pf-individual-page main#content > section.tsi-pf-link-card-section .single-element-obraz img {
    display: block !important;
    width: 100% !important;
    aspect-ratio: 4 / 3;
    object-fit: cover !important;
}

/* Duże bloki tekstowe nie mogą przykrywać następnej sekcji. */
body.tsi-pf-individual-page main#content .text-wysiwig,
body.tsi-pf-individual-page main#content .single-element-tresc_wysiwig,
body.tsi-pf-individual-page main#content .content-col {
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
}

@media (max-width: 760px) {
    body.tsi-pf-individual-page main#content .tsi-audience-block .tsi-audience-item {
        padding: 18px 0 !important;
    }

    body.tsi-pf-individual-page main#content .single-element-podpis_odnosnik a {
        width: 100% !important;
    }
}

/* ========================================================================== 
   v1.4 – przywrócenie oryginalnej galerii/slidera i prawdziwie sticky menu
   ========================================================================== */

/* overflow-x:hidden na body potrafi wyłączyć position:sticky w Chrome. */
html.tsi-pf-business-fix-active,
body.tsi-pf-business-page-fixed {
    overflow-x: clip !important;
}

body.tsi-pf-business-page-fixed > section.basic-nav,
body.tsi-menu-natural-flow.tsi-pf-business-page-fixed > section.basic-nav {
    position: sticky !important;
    top: 0 !important;
    z-index: 2147483000 !important;
    display: block !important;
    width: 100% !important;
    max-width: 1920px !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 auto !important;
    overflow: visible !important;
    transform: none !important;
    translate: none !important;
}

body.admin-bar.tsi-pf-business-page-fixed > section.basic-nav {
    top: 32px !important;
}

/* Slider zdjęć ma własną wysokość. W v1.3 był zerowany przez height:auto. */
body.tsi-pf-business-page-fixed main#content section.section-type-slider_zdjec {
    position: relative !important;
    inset: auto !important;
    top: auto !important;
    display: flex !important;
    width: 100% !important;
    max-width: var(--tsi-pf-business-max) !important;
    height: 80vh !important;
    min-height: 560px !important;
    max-height: none !important;
    padding: 54px 0 !important;
    overflow: hidden !important;
    transform: none !important;
    translate: none !important;
    animation: fadeIn 2s ease both !important;
}

body.tsi-pf-business-page-fixed main#content section.section-type-slider_zdjec ul.photos-slider-wrapper {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    overflow: hidden !important;
}

body.tsi-pf-business-page-fixed main#content section.section-type-slider_zdjec ul.photos-slider-wrapper li {
    display: block !important;
    flex: 0 0 20% !important;
    width: 20% !important;
    min-width: 20% !important;
    height: 80% !important;
    overflow: hidden !important;
}

body.tsi-pf-business-page-fixed main#content section.section-type-slider_zdjec ul.photos-slider-wrapper li[slider-index-number="0"] {
    height: 100% !important;
}

body.tsi-pf-business-page-fixed main#content section.section-type-slider_zdjec ul.photos-slider-wrapper li[slider-index-number="-1"],
body.tsi-pf-business-page-fixed main#content section.section-type-slider_zdjec ul.photos-slider-wrapper li[slider-index-number="1"] {
    height: 90% !important;
}

body.tsi-pf-business-page-fixed main#content section.section-type-slider_zdjec ul.photos-slider-wrapper li > div {
    width: 100% !important;
    height: 100% !important;
    background-size: cover !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
}

/* Zwykła galeria ACF również nie może zostać spłaszczona. */
body.tsi-pf-business-page-fixed main#content section.section-type-galeria {
    position: relative !important;
    inset: auto !important;
    top: auto !important;
    display: flex !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    transform: none !important;
    translate: none !important;
}

body.tsi-pf-business-page-fixed main#content section.section-type-galeria .gallery-container,
body.tsi-pf-business-page-fixed main#content section.section-type-galeria .gallery-item,
body.tsi-pf-business-page-fixed main#content section.section-type-galeria .gallery-item-content {
    visibility: visible !important;
    opacity: 1 !important;
}

@media (max-width: 782px) {
    body.admin-bar.tsi-pf-business-page-fixed > section.basic-nav {
        top: 46px !important;
    }
}

@media (max-width: 760px) {
    body.tsi-pf-business-page-fixed main#content section.section-type-slider_zdjec {
        height: 68vh !important;
        min-height: 420px !important;
        padding: 28px 0 !important;
    }

    body.tsi-pf-business-page-fixed main#content section.section-type-slider_zdjec ul.photos-slider-wrapper li {
        flex-basis: 70% !important;
        width: 70% !important;
        min-width: 70% !important;
    }
}

/* ========================================================================== 
   v1.5 – równe zdjęcia w sekcji .section-id-4 na stronie sesji indywidualnych
   ========================================================================== */

/*
 * Pierwsza kolumna zawiera dodatkowo pusty nagłówek, dlatego wcześniejsza
 * reguła traktowała ją jak kolumnę tekstową i dodawała większy padding.
 * Poniższe selektory ograniczają zmianę wyłącznie do wskazanej sekcji.
 */
@media (min-width: 761px) {
    body.tsi-pf-individual-page main#content > section.section-id-4.section-type-kolumny {
        align-items: stretch !important;
    }

    body.tsi-pf-individual-page main#content > section.section-id-4.section-type-kolumny > .column-id-4-0,
    body.tsi-pf-individual-page main#content > section.section-id-4.section-type-kolumny > .column-id-4-1 {
        justify-content: flex-start !important;
        align-self: stretch !important;
        gap: 0 !important;
        padding-top: clamp(48px, 4.5vw, 72px) !important;
        padding-bottom: clamp(48px, 4.5vw, 72px) !important;
        min-height: 0 !important;
        overflow: visible !important;
    }

    body.tsi-pf-individual-page main#content > section.section-id-4.section-type-kolumny > .column-id-4-0 {
        padding-right: 0 !important;
        padding-left: clamp(32px, 8vw, 154px) !important;
    }

    body.tsi-pf-individual-page main#content > section.section-id-4.section-type-kolumny > .column-id-4-1 {
        padding-right: clamp(32px, 4vw, 72px) !important;
        padding-left: 0 !important;
    }

    body.tsi-pf-individual-page main#content > section.section-id-4 .column-id-4-0 > .single-element-naglowek_h2_256px {
        display: none !important;
    }

    body.tsi-pf-individual-page main#content > section.section-id-4 .column-id-4-0 > .single-element-obraz,
    body.tsi-pf-individual-page main#content > section.section-id-4 .column-id-4-1 > .single-element-obraz {
        display: block !important;
        flex: 0 0 auto !important;
        width: 100% !important;
        height: clamp(540px, 43vw, 760px) !important;
        min-height: 0 !important;
        max-height: none !important;
        margin: 0 !important;
        overflow: hidden !important;
    }

    body.tsi-pf-individual-page main#content > section.section-id-4 .column-id-4-0 > .single-element-obraz img,
    body.tsi-pf-individual-page main#content > section.section-id-4 .column-id-4-1 > .single-element-obraz img {
        display: block !important;
        width: 100% !important;
        height: 100% !important;
        min-height: 0 !important;
        max-height: none !important;
        object-fit: cover !important;
        object-position: center center !important;
    }
}

@media (max-width: 760px) {
    body.tsi-pf-individual-page main#content > section.section-id-4.section-type-kolumny > .column-id-4-0,
    body.tsi-pf-individual-page main#content > section.section-id-4.section-type-kolumny > .column-id-4-1 {
        padding: 48px 24px !important;
    }

    body.tsi-pf-individual-page main#content > section.section-id-4 .column-id-4-0 > .single-element-naglowek_h2_256px {
        display: none !important;
    }

    body.tsi-pf-individual-page main#content > section.section-id-4 .single-element-obraz {
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 4 / 5;
        overflow: hidden !important;
    }

    body.tsi-pf-individual-page main#content > section.section-id-4 .single-element-obraz img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        object-position: center center !important;
    }
}

/* ========================================================================== 
   v1.6 – Sesje indywidualne: typografia i odstępy zgodne z uwagami klienta
   ========================================================================== */
body.tsi-pf-individual-page main#content {
    --tsi-individual-copy: clamp(17px, 1.12vw, 20px);
    --tsi-individual-small: clamp(15px, .92vw, 17px);
    --tsi-individual-h2: clamp(42px, 4.15vw, 68px);
    --tsi-individual-h3: clamp(28px, 2.35vw, 40px);
}

/* Każda sekcja ma własny oddech i czytelne oddzielenie od następnej. */
body.tsi-pf-individual-page main#content > section:not(.section-type-slider_zdjec):not(.section-type-galeria) {
    border-bottom: 1px solid rgba(23, 22, 20, .12) !important;
}

body.tsi-pf-individual-page main#content > section.section-color-ciemny:not(.section-type-slider_zdjec):not(.section-type-galeria) {
    border-bottom-color: rgba(255, 255, 255, .14) !important;
}

body.tsi-pf-individual-page main#content > section.section-type-kolumny > div:not(:has(> .single-element-obraz:only-child)) {
    gap: clamp(30px, 3.4vw, 58px) !important;
    padding-top: clamp(84px, 9vw, 150px) !important;
    padding-bottom: clamp(84px, 9vw, 150px) !important;
}

/* Nagłówki – mniej ściśnięte litery, większa wysokość wiersza i rozmiary jak w przykładzie. */
body.tsi-pf-individual-page main#content h1,
body.tsi-pf-individual-page main#content h2 {
    font-size: var(--tsi-individual-h2) !important;
    font-weight: 500 !important;
    line-height: 1.13 !important;
    letter-spacing: .005em !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
}

body.tsi-pf-individual-page main#content h3,
body.tsi-pf-individual-page main#content h4 {
    font-size: var(--tsi-individual-h3) !important;
    font-weight: 500 !important;
    line-height: 1.24 !important;
    letter-spacing: .008em !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
}

/* Nadpisanie starych klas rozmiarowych wyłącznie na tej podstronie. */
body.tsi-pf-individual-page main#content [class*="single-element-naglowek_h2_"] h2,
body.tsi-pf-individual-page main#content [class*="single-element-naglowek_h2_"] {
    font-size: var(--tsi-individual-h2) !important;
    line-height: 1.13 !important;
    letter-spacing: .005em !important;
}

body.tsi-pf-individual-page main#content [class*="single-element-naglowek_h3_"] h3,
body.tsi-pf-individual-page main#content [class*="single-element-naglowek_h3_"] {
    font-size: var(--tsi-individual-h3) !important;
    line-height: 1.24 !important;
    letter-spacing: .008em !important;
}

/* Tekst główny – większa interlinia, delikatnie luźniejsze litery i krótszy wiersz. */
body.tsi-pf-individual-page main#content p,
body.tsi-pf-individual-page main#content li,
body.tsi-pf-individual-page main#content .text-wysiwig,
body.tsi-pf-individual-page main#content .text-dane_kontaktowe {
    font-size: var(--tsi-individual-copy) !important;
    line-height: 1.82 !important;
    letter-spacing: .012em !important;
    word-spacing: .025em;
}

body.tsi-pf-individual-page main#content .text-wysiwig {
    max-width: 66ch !important;
}

body.tsi-pf-individual-page main#content .text-wysiwig h2,
body.tsi-pf-individual-page main#content .text-wysiwig h3,
body.tsi-pf-individual-page main#content .text-wysiwig h4 {
    margin-bottom: clamp(26px, 2.4vw, 42px) !important;
}

body.tsi-pf-individual-page main#content .text-wysiwig p,
body.tsi-pf-individual-page main#content .text-wysiwig ul,
body.tsi-pf-individual-page main#content .text-wysiwig ol {
    margin-bottom: clamp(24px, 2vw, 34px) !important;
}

body.tsi-pf-individual-page main#content .text-wysiwig li + li {
    margin-top: .65em !important;
}

/* Krótkie podpisy i leady nie mogą zlewać się z tekstem zasadniczym. */
body.tsi-pf-individual-page main#content .single-element-podpis,
body.tsi-pf-individual-page main#content .single-element-podpis p,
body.tsi-pf-individual-page main#content .single-element-podpis_odnosnik a {
    font-size: var(--tsi-individual-small) !important;
    line-height: 1.55 !important;
    letter-spacing: .035em !important;
}

/* Blok odbiorców – większy odstęp i wyraźniejsza hierarchia. */
body.tsi-pf-individual-page main#content .tsi-audience-block .tsi-audience-item {
    padding-top: clamp(24px, 2.3vw, 38px) !important;
    padding-bottom: clamp(24px, 2.3vw, 38px) !important;
    line-height: 1.78 !important;
}

body.tsi-pf-individual-page main#content .tsi-audience-block .tsi-audience-item strong,
body.tsi-pf-individual-page main#content .tsi-audience-block .tsi-audience-item b {
    letter-spacing: .018em !important;
}

@media (max-width: 760px) {
    body.tsi-pf-individual-page main#content {
        --tsi-individual-copy: 17px;
        --tsi-individual-small: 15px;
        --tsi-individual-h2: clamp(36px, 10.5vw, 48px);
        --tsi-individual-h3: clamp(25px, 7vw, 32px);
    }

    body.tsi-pf-individual-page main#content > section.section-type-kolumny > div:not(:has(> .single-element-obraz:only-child)) {
        gap: 30px !important;
        padding: 68px 24px !important;
    }

    body.tsi-pf-individual-page main#content p,
    body.tsi-pf-individual-page main#content li,
    body.tsi-pf-individual-page main#content .text-wysiwig {
        line-height: 1.76 !important;
        letter-spacing: .008em !important;
    }
}

/* ========================================================================== 
   v1.8 – Dla firm: mniejsze nagłówki przy zachowaniu odstępów
   ========================================================================== */
body.tsi-pf-company-page main#content {
    --tsi-company-copy: clamp(17px, 1.12vw, 20px);
    --tsi-company-small: clamp(15px, .92vw, 17px);
    --tsi-company-h2: clamp(38px, 3.55vw, 58px);
    --tsi-company-h3: clamp(25px, 2vw, 34px);
}

body.tsi-pf-company-page main#content > section:not(.section-type-slider_zdjec):not(.section-type-galeria) {
    border-bottom: 1px solid rgba(23, 22, 20, .12) !important;
}

body.tsi-pf-company-page main#content > section.section-color-ciemny:not(.section-type-slider_zdjec):not(.section-type-galeria) {
    border-bottom-color: rgba(255, 255, 255, .14) !important;
}

body.tsi-pf-company-page main#content > section.section-type-kolumny > div:not(:has(> .single-element-obraz:only-child)) {
    gap: clamp(30px, 3.4vw, 58px) !important;
    padding-top: clamp(84px, 9vw, 150px) !important;
    padding-bottom: clamp(84px, 9vw, 150px) !important;
}

body.tsi-pf-company-page main#content h1,
body.tsi-pf-company-page main#content h2 {
    font-size: var(--tsi-company-h2) !important;
    font-weight: 500 !important;
    line-height: 1.13 !important;
    letter-spacing: .005em !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
}

body.tsi-pf-company-page main#content h3,
body.tsi-pf-company-page main#content h4 {
    font-size: var(--tsi-company-h3) !important;
    font-weight: 500 !important;
    line-height: 1.24 !important;
    letter-spacing: .008em !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
}

body.tsi-pf-company-page main#content [class*="single-element-naglowek_h2_"] h2,
body.tsi-pf-company-page main#content [class*="single-element-naglowek_h2_"] {
    font-size: var(--tsi-company-h2) !important;
    line-height: 1.13 !important;
    letter-spacing: .005em !important;
}

body.tsi-pf-company-page main#content [class*="single-element-naglowek_h3_"] h3,
body.tsi-pf-company-page main#content [class*="single-element-naglowek_h3_"] {
    font-size: var(--tsi-company-h3) !important;
    line-height: 1.24 !important;
    letter-spacing: .008em !important;
}

body.tsi-pf-company-page main#content p,
body.tsi-pf-company-page main#content li,
body.tsi-pf-company-page main#content .text-wysiwig,
body.tsi-pf-company-page main#content .text-dane_kontaktowe {
    font-size: var(--tsi-company-copy) !important;
    line-height: 1.82 !important;
    letter-spacing: .012em !important;
    word-spacing: .025em;
}

body.tsi-pf-company-page main#content .text-wysiwig {
    max-width: 66ch !important;
}

body.tsi-pf-company-page main#content .text-wysiwig h2,
body.tsi-pf-company-page main#content .text-wysiwig h3,
body.tsi-pf-company-page main#content .text-wysiwig h4 {
    margin-bottom: clamp(26px, 2.4vw, 42px) !important;
}

body.tsi-pf-company-page main#content .text-wysiwig p,
body.tsi-pf-company-page main#content .text-wysiwig ul,
body.tsi-pf-company-page main#content .text-wysiwig ol {
    margin-bottom: clamp(24px, 2vw, 34px) !important;
}

body.tsi-pf-company-page main#content .text-wysiwig li + li {
    margin-top: .65em !important;
}

body.tsi-pf-company-page main#content .single-element-podpis,
body.tsi-pf-company-page main#content .single-element-podpis p,
body.tsi-pf-company-page main#content .single-element-podpis_odnosnik a {
    font-size: var(--tsi-company-small) !important;
    line-height: 1.55 !important;
    letter-spacing: .035em !important;
}

@media (max-width: 760px) {
    body.tsi-pf-company-page main#content {
        --tsi-company-copy: 17px;
        --tsi-company-small: 15px;
        --tsi-company-h2: clamp(32px, 9vw, 42px);
        --tsi-company-h3: clamp(23px, 6.3vw, 29px);
    }

    body.tsi-pf-company-page main#content > section.section-type-kolumny > div:not(:has(> .single-element-obraz:only-child)) {
        gap: 30px !important;
        padding: 68px 24px !important;
    }

    body.tsi-pf-company-page main#content p,
    body.tsi-pf-company-page main#content li,
    body.tsi-pf-company-page main#content .text-wysiwig {
        line-height: 1.76 !important;
        letter-spacing: .008em !important;
    }
}

/* ========================================================================== 
   v1.9 – Dla firm: odstęp między głównym nagłówkiem a podnagłówkiem
   ========================================================================== */
body.tsi-pf-company-page main#content [class*="single-element-naglowek_h2_"] + [class*="single-element-naglowek_h3_"],
body.tsi-pf-company-page main#content [class*="single-element-naglowek_h2_"] + [class*="single-element-naglowek_h2_"],
body.tsi-pf-company-page main#content .text-wysiwig h2 + h3,
body.tsi-pf-company-page main#content .text-wysiwig h2 + h4 {
    margin-top: clamp(24px, 2.2vw, 38px) !important;
}

/* Gdy nagłówki są osobnymi elementami wewnątrz tej samej kolumny. */
body.tsi-pf-company-page main#content [class*="single-element-naglowek_h2_"] {
    margin-bottom: clamp(24px, 2.2vw, 38px) !important;
}

body.tsi-pf-company-page main#content [class*="single-element-naglowek_h2_"] + .single-element-podpis,
body.tsi-pf-company-page main#content [class*="single-element-naglowek_h2_"] + [class*="single-element-podpis"] {
    margin-top: 0 !important;
}

@media (max-width: 760px) {
    body.tsi-pf-company-page main#content [class*="single-element-naglowek_h2_"] {
        margin-bottom: 22px !important;
    }
}
