/* Dojo Tyniec – elegancki, ciepły layout */

:root {
    --color-bg: #faf8f5;
    --color-bg-alt: #fff;
    --color-header: #2d2822;
    --color-header-bg: #fff;
    --color-accent: #c62828;
    --color-accent-hover: #a01c1c;
    --color-accent-light: rgba(198, 40, 40, 0.1);
    --color-gold: #c9a227;
    --color-gold-light: rgba(201, 162, 39, 0.12);
    --color-brown: #5d4e37;
    --color-brown-muted: #6b5d4a;
    --color-text: #2d2a26;
    --color-text-muted: #5a554e;
    --color-border: #e8e4dd;
    --color-card-bg: #fff;
    --schedule-joga: #e2bc42;
    --schedule-shorin: #c43636;
    --schedule-shotokan: #3d7560;
    --font-sans: "Noto Sans", system-ui, sans-serif;
    /* Zaproszenie / akcenty tekstowe – szeryf „zaproszeniowy” obok Noto Sans */
    --font-invite-serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
    --font-size-base: 1rem;
    --line-height: 1.6;
    --space: 1rem;
    --space-lg: 1.5rem;
    --space-xl: 2rem;
    --radius: 0;
    --radius-lg: 0;
    --shadow: 0 1px 8px rgba(0, 0, 0, 0.04);
    --shadow-hover: 0 4px 16px rgba(0, 0, 0, 0.06);
    --container: 1280px;
}

* { box-sizing: border-box; }

body.site-body {
    margin: 0;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    font-family: var(--font-sans);
    font-size: var(--font-size-base);
    line-height: 1.55;
    letter-spacing: 0;
    color: var(--color-text);
    background: var(--color-bg);
    /* Blokuj poziomy scroll spowodowany przez full-bleed sekcje (width: 100vw
       + ujemne marginesy) — 100vw zawiera szerokość scrollbara pionowego,
       więc bez tego pojawia się ~17px overflow w prawo. */
    overflow-x: hidden;
    overflow-x: clip; /* nowoczesne przeglądarki — nie tworzy scroll containera */
}
html {
    overflow-x: hidden;
    overflow-x: clip;
}

.container { max-width: var(--container); margin: 0 auto; padding: 0 var(--space-lg); }

/* ----- Header – ciemne menu (głęboki, nasycony brąz) ----- */
.site-header {
    background: #000;
    color: #fff;
    position: sticky;
    top: 0;
    z-index: 100;
    box-shadow: 0 2px 16px rgba(0, 0, 0, 0.35);
}
.header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--space);
    min-height: 80px;
    padding: 0.65rem var(--space-lg);
    box-sizing: border-box;
}
.site-logo {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.1rem;
    color: #fff;
    text-decoration: none;
    font-weight: 700;
    letter-spacing: 0.02em;
    transition: opacity 0.2s;
}
.site-logo:hover { color: #fff; opacity: 0.95; }
.site-logo-main {
    font-size: 1.55rem;
    line-height: 1.15;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}
.site-logo-tagline {
    font-family: var(--font-sans);
    font-size: 0.78rem;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.88);
    letter-spacing: 0.04em;
    line-height: 1.25;
    max-width: 22rem;
}
.header-accent {
    height: 4px;
    background: #000;
}
.site-nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0 0.35rem;
}
.site-nav li {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}
.site-nav li:not(:last-child)::after {
    content: "·";
    color: #d4a84b;
    font-weight: 700;
    font-size: 0.9rem;
    pointer-events: none;
}
.site-nav a {
    color: #fff;
    text-decoration: none;
    font-size: 0.925rem;
    font-weight: 500;
    padding: 0.4rem 0.5rem;
    border-radius: 0;
    transition: color 0.2s, background 0.2s;
}
.site-nav a:hover {
    color: #fff;
    background: rgba(212, 168, 75, 0.15);
}
.site-nav a:focus-visible {
    outline: 2px solid #d4a84b;
    outline-offset: 2px;
}
.site-nav a.is-current {
    color: #fff;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 0.3em;
    text-decoration-color: #d4a84b;
    text-decoration-thickness: 2px;
}
.site-nav a.is-current:hover {
    color: #fff;
    background: rgba(212, 168, 75, 0.18);
}
.site-nav-item--has-dropdown {
    position: relative;
    display: flex;
    align-items: center;
}
.site-nav-dropdown {
    list-style: none;
    margin: 0;
    padding: 0;
    width: 100%;
}
.site-nav-dropdown li {
    display: block;
    width: 100%;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.site-nav-dropdown li:last-child {
    border-bottom: none;
}
.site-nav-dropdown li::after {
    display: none !important;
}
.site-nav-dropdown a {
    display: block;
    width: 100%;
    font-size: 0.9rem;
    padding: 0.45rem 0.85rem;
    border-radius: 0;
    white-space: nowrap;
}
.discipline-detail-footer-actions {
    margin-top: 2.25rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--color-border);
}
.site-main { flex: 1 0 auto; padding: 0; }
.nav-toggle {
    display: none;
    background: none;
    border: none;
    width: 28px;
    height: 22px;
    padding: 0;
    flex-direction: column;
    justify-content: space-between;
    cursor: pointer;
    color: #fff;
}
.nav-toggle-bar {
    display: block;
    height: 3px;
    background: currentColor;
    border-radius: 0;
}

/* ----- Hero – jasny; .hero--banner: jaśniejsze zdjęcie + lekki scrim (tekst bez ramki) ----- */
.hero {
    background: linear-gradient(165deg, #f3f0e9 0%, #eae6de 100%);
    color: var(--color-text);
    padding: var(--space-xl) var(--space-lg) 3rem;
    text-align: center;
    border-bottom: 1px solid var(--color-border);
}
.hero--banner {
    position: relative;
    min-height: clamp(180px, 29vh, 336px);
    padding: 1.75rem var(--space-lg) 2.1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #f5f3ef;
    background-color: #d8d4cc;
    background-image:
        linear-gradient(
            180deg,
            rgba(255, 255, 255, 0.24) 0%,
            rgba(255, 255, 255, 0.1) 45%,
            rgba(255, 255, 255, 0.18) 100%
        ),
        linear-gradient(
            180deg,
            rgba(28, 26, 24, 0.18) 0%,
            rgba(28, 26, 24, 0.09) 50%,
            rgba(28, 26, 24, 0.22) 100%
        ),
        var(--hero-banner);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    border-bottom: 1px solid var(--color-border);
}
.hero--banner .hero-inner {
    position: relative;
    z-index: 1;
}
.hero--banner h1 {
    color: #fff;
    text-shadow:
        0 1px 2px rgba(0, 0, 0, 0.5),
        0 2px 20px rgba(0, 0, 0, 0.4);
}
.hero--banner .hero-subtitle {
    color: rgba(255, 255, 255, 0.98);
    font-weight: 500;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.55);
}
.hero-dojo-ja {
    margin: 0 0 0.35rem;
    font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
    font-size: clamp(0.95rem, 2vw, 1.1rem);
    font-weight: 500;
    color: #8b6914;
    letter-spacing: 0.14em;
    line-height: 1.35;
}
.hero--banner .hero-dojo-ja {
    color: #f0d78c;
    font-weight: 600;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.55);
}
.hero-inner { max-width: min(40rem, 100%); margin: 0 auto; text-align: center; }
.hero h1 {
    margin: 0 0 0.5rem;
    font-size: clamp(1.75rem, 4vw, 2.5rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.2;
}
.hero-subtitle {
    margin: 0 0 1.5rem;
    font-size: 1.05rem;
    color: var(--color-text-muted);
    line-height: 1.5;
}
.hero-cta { display: flex; gap: var(--space); flex-wrap: wrap; justify-content: center; }
.btn {
    display: inline-block;
    padding: 0.6rem 1.25rem;
    border-radius: var(--radius);
    text-decoration: none;
    font-weight: 600;
    font-size: 0.95rem;
    border: none;
    cursor: pointer;
    font-family: inherit;
    transition: background 0.2s, color 0.2s, box-shadow 0.2s;
}
.btn-primary {
    background: var(--color-accent);
    color: #fff;
}
.btn-primary:hover { background: var(--color-accent-hover); color: #fff; box-shadow: var(--shadow-hover); }
.btn-hero-secondary {
    background: transparent;
    border: 2px solid var(--color-border);
    color: var(--color-text);
}
.btn-hero-secondary:hover { border-color: var(--color-accent); color: var(--color-accent); background: var(--color-accent-light); }
.hero--banner .btn-hero-secondary {
    border-color: rgba(255, 255, 255, 0.88);
    color: #fff;
}
.hero--banner .btn-hero-secondary:hover {
    border-color: #fff;
    color: #fff;
    background: rgba(255, 255, 255, 0.12);
    box-shadow: none;
}
.btn-secondary {
    background: transparent;
    border: 2px solid var(--color-text-muted);
    color: var(--color-text);
}
.btn-secondary:hover { border-color: var(--color-accent); color: var(--color-accent); }
.btn-outline {
    background: transparent;
    color: var(--color-accent);
    border: 2px solid var(--color-accent);
}
.btn-outline:hover { background: var(--color-accent-light); }

/* ----- Sections ----- */
.section { padding: var(--space-xl) 0; }
.section:nth-of-type(even) { background: rgba(255, 255, 255, 0.6); }
.section-title {
    margin: 0 0 0.25rem;
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--color-text);
    letter-spacing: -0.02em;
}
.section-subtitle {
    margin: 0 0 var(--space-lg);
    font-size: 0.95rem;
    color: var(--color-text-muted);
}
.section-more { margin: var(--space-lg) 0 0; }
.section-empty { color: var(--color-text-muted); }
.section-empty a { color: var(--color-accent); }

/* Intro – tekst na pełną szerokość kolumny */
.intro .intro-text,
.intro .prose {
    max-width: none;
    width: 100%;
    box-sizing: border-box;
    font-size: clamp(1.08rem, 1rem + 0.35vw, 1.22rem);
    line-height: 1.7;
    color: var(--color-text);
}
.intro .intro-text p,
.intro .prose p { margin: 0 0 1rem; }
.intro .intro-text p:last-child,
.intro .prose p:last-child { margin-bottom: 0; }

/* Intro strony głównej – jasny, ciepły pas (bez grafitu), treść w .container */
.intro.section.home-intro-section {
    background: linear-gradient(
        168deg,
        #fffcf8 0%,
        #faf6ef 28%,
        #f3ede3 58%,
        #ebe4d8 100%
    );
    color: var(--color-text);
    padding-left: 0;
    padding-right: 0;
    border-top: 1px solid rgba(232, 226, 216, 0.85);
    border-bottom: 1px solid rgba(220, 212, 198, 0.65);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.75);
}
.home-intro-band {
    width: 100%;
    margin: 0;
    box-sizing: border-box;
}
.intro.section.home-intro-section .home-intro-wrap {
    border: none;
    box-shadow: none;
    /* Mniejszy lewy gutter niż domyślny .container — treść bliżej krawędzi (bez „pustego” pasa) */
    padding-left: max(0.75rem, env(safe-area-inset-left, 0px));
    padding-right: var(--space-lg);
}
.home-intro-grid {
    display: grid;
    /* Kolumna Treningi trochę węższa, żeby linia zaproszenia mieściła się bez poziomego scrolla */
    grid-template-columns: minmax(0, 1fr) minmax(220px, 340px) minmax(160px, 240px);
    gap: 0;
    align-items: stretch;
    min-height: 12rem;
}
@media (max-width: 720px) {
    .home-intro-grid {
        grid-template-columns: 1fr;
        min-height: 0;
    }
    /* Strona główna — intro: trzy bloki w kolumnie, pełna szerokość tekstu (bez „wystawania”) */
    .intro.section.home-intro-section .home-intro-wrap {
        padding-left: max(1rem, env(safe-area-inset-left, 0px));
        padding-right: max(1rem, env(safe-area-inset-right, 0px));
    }
    .intro.section.home-intro-section .home-intro-body .home-intro-text-block,
    .intro.section.home-intro-section .home-intro-body p.home-intro-highlight {
        padding-left: 0;
        padding-right: 0;
    }
}
.home-intro-grid > .home-intro-body {
    display: flex;
    flex-direction: column;
    min-height: 100%;
}
.home-intro-section .home-intro-body {
    max-width: none;
    font-size: 0.98rem;
    line-height: 1.65;
    color: var(--color-text-muted);
}
/* Lewa kolumna – tekst na jasnym tle (bez czerwonej linii) */
.intro.section.home-intro-section .home-intro-body .home-intro-text-block {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 100%;
    min-width: 0;
    box-sizing: border-box;
    margin: 0;
    padding: 2rem clamp(1rem, 2.5vw, 1.75rem) 2rem 0;
    border-left: none;
    background: transparent;
}
.intro.section.home-intro-section .home-intro-body .home-intro-text-block .home-intro-para {
    margin: 0 0 0.8rem;
    font-size: clamp(0.95rem, 0.9rem + 0.2vw, 1.05rem);
    line-height: 1.68;
    font-weight: 500;
    letter-spacing: -0.008em;
    color: #3a3632;
    -webkit-font-smoothing: antialiased;
}
.intro.section.home-intro-section .home-intro-body .home-intro-text-block .home-intro-invite {
    margin-top: auto;
    margin-bottom: 0;
    margin-left: 0;
    margin-right: 0;
    padding: 1.35rem 0 0;
    border: none;
    background: none;
    box-shadow: none;
    font-family: var(--font-invite-serif);
    font-size: clamp(1.22rem, 1.05rem + 0.65vw, 1.52rem);
    font-style: italic;
    font-weight: 500;
    line-height: 1.38;
    letter-spacing: 0.01em;
    color: #3a342c;
    white-space: nowrap;
    max-width: 100%;
    overflow-x: visible;
    -webkit-font-smoothing: antialiased;
}
.intro.section.home-intro-section .home-intro-body .home-intro-text-block .home-intro-invite .home-intro-invite-lead {
    font-style: italic;
    color: var(--color-accent);
    font-weight: 700;
    letter-spacing: 0.02em;
}
.home-intro-section .home-intro-body .home-intro-invite a {
    font-family: inherit;
    font-style: italic;
}
@media (max-width: 720px) {
    .intro.section.home-intro-section .home-intro-body .home-intro-text-block .home-intro-invite {
        padding-top: 1.15rem;
        white-space: normal;
        text-wrap: balance;
        font-size: clamp(1.22rem, 1.1rem + 1.1vw, 1.58rem);
        line-height: 1.42;
    }
}
@media (max-width: 720px) {
    .intro.section.home-intro-section .home-intro-body .home-intro-text-block {
        padding: 1.5rem 0;
    }
}
/* Legacy CMS: jeden akapit z home-intro-highlight (bez wrappera) */
.intro.section.home-intro-section .home-intro-body p.home-intro-highlight {
    margin: 0;
    font-size: clamp(0.95rem, 0.9rem + 0.2vw, 1.05rem);
    line-height: 1.68;
    font-weight: 500;
    letter-spacing: -0.008em;
    color: #3a3632;
    -webkit-font-smoothing: antialiased;
    padding: 2rem clamp(1rem, 2.5vw, 1.75rem) 2rem 0;
    border-left: none;
    background: transparent;
}
@media (max-width: 720px) {
    .intro.section.home-intro-section .home-intro-body p.home-intro-highlight {
        padding: 1.5rem 0;
    }
}
.home-intro-section .home-intro-body .home-intro-lead a,
.home-intro-section .home-intro-body .home-intro-highlight a,
.home-intro-section .home-intro-body .home-intro-para a,
.home-intro-section .home-intro-body .home-intro-invite a {
    color: var(--color-accent);
    font-weight: 700;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}
.home-intro-section .home-intro-body .home-intro-lead a:hover,
.home-intro-section .home-intro-body .home-intro-highlight a:hover,
.home-intro-section .home-intro-body .home-intro-para a:hover,
.home-intro-section .home-intro-body .home-intro-invite a:hover {
    text-decoration-thickness: 2px;
}
/* Legacy CMS: stary lead bez linków */
.home-intro-section .home-intro-body .home-intro-lead {
    display: flow-root;
    font-size: clamp(1.1rem, 1.02rem + 0.45vw, 1.32rem);
    line-height: 1.58;
    font-weight: 500;
    margin: 0 0 1.2rem;
    color: var(--color-text);
}
.home-intro-section .home-intro-body .home-intro-more {
    margin: 0;
    padding: 1.05rem 1.1rem 1.1rem 1.2rem;
    background: linear-gradient(90deg, rgba(198, 40, 40, 0.07) 0%, rgba(198, 40, 40, 0.02) 100%);
    border-left: 4px solid var(--color-accent);
    border-radius: 0;
    font-size: 0.98rem;
    line-height: 1.65;
    color: var(--color-brown-muted);
}
.intro.section.home-intro-section .home-intro-body .home-intro-lead {
    color: var(--color-text);
}
.intro.section.home-intro-section .home-intro-body .home-intro-more {
    border-left: none;
    background: rgba(255, 255, 255, 0.72);
    color: var(--color-brown-muted);
    border: 1px solid rgba(232, 226, 216, 0.95);
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.9);
}
.home-intro-side {
    padding: 1.65rem 1rem 1.75rem;
    border-left: 1px solid rgba(45, 42, 38, 0.08);
    background: rgba(255, 255, 255, 0.42);
    display: flex;
    flex-direction: column;
    min-height: 100%;
}
@media (max-width: 720px) {
    .home-intro-side {
        border-left: none;
        border-top: 1px solid rgba(45, 42, 38, 0.08);
        padding: 1.5rem 0.85rem 1.65rem;
        box-sizing: border-box;
    }
    .home-intro-section .home-intro-disciplines li a {
        padding: 0.72rem 0.85rem 0.72rem 1rem;
        gap: 0.75rem;
    }
    .home-intro-section .home-intro-disciplines li a:hover {
        padding-left: 1rem;
    }
}
.home-intro-logos {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: center;
    min-height: 100%;
    padding: 1.35rem 1rem 1.5rem;
    background: linear-gradient(180deg, #fff 0%, #faf8f5 100%);
    border-left: 1px solid rgba(45, 42, 38, 0.07);
    box-sizing: border-box;
    box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.9);
}
@media (max-width: 720px) {
    /* Bez sekcji logotypów na wąskim ekranie (afiliacje tylko na desktopie) */
    .home-intro-logos {
        display: none;
    }
}
.home-intro-stat {
    margin: 0 0 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}
.home-intro-stat-value {
    font-size: 2.15rem;
    font-weight: 800;
    color: var(--color-accent);
    letter-spacing: -0.03em;
    line-height: 1;
}
.home-intro-stat-label {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--color-text-muted);
    font-weight: 600;
}
.home-intro-side-title {
    margin: 0 0 0.85rem;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    font-weight: 700;
    color: #7a7268;
}
.home-intro-side-title::after {
    content: '';
    display: block;
    width: 2.25rem;
    height: 2px;
    margin-top: 0.45rem;
    background: linear-gradient(90deg, var(--color-accent) 0%, #c9a227 100%);
    opacity: 0.9;
}
.home-intro-logos .home-intro-affiliate-logos {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1.1rem;
    margin: 0;
    padding: 0.75rem 0.5rem;
    background: transparent;
    border: none;
    box-shadow: none;
}
.home-intro-logos .home-intro-logo-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    flex: 0 0 auto;
    min-width: 0;
    line-height: 0;
    text-decoration: none;
    opacity: 0.94;
    transition: opacity 0.2s, transform 0.2s;
}
.home-intro-logos .home-intro-logo-link:hover {
    opacity: 1;
    transform: translateY(-1px);
}
.home-intro-logos .home-intro-logo-link:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 4px;
    border-radius: 0;
    opacity: 1;
}
.home-intro-logos .home-intro-affiliate-logos img {
    display: block;
    max-height: 108px;
    width: auto;
    max-width: 100%;
    height: auto;
    object-fit: contain;
}
.home-intro-section .home-intro-disciplines {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
    border-top: 1px solid rgba(45, 42, 38, 0.1);
}
.home-intro-section .home-intro-disciplines li {
    font-size: 1.08rem;
    font-weight: 600;
    color: #3a3632;
    padding: 0;
    margin: 0;
    background: transparent;
    border-radius: 0;
    border: none;
    line-height: 1.4;
    border-bottom: 1px solid rgba(45, 42, 38, 0.07);
    min-width: 0;
}
.home-intro-section .home-intro-disciplines li:last-child {
    border-bottom: none;
}
.home-intro-section .home-intro-disciplines li a {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 0.65rem;
    min-width: 0;
    padding: 0.65rem 0.2rem 0.65rem 0;
    color: #3a3632;
    text-decoration: none;
    border-radius: 0;
    transition: color 0.2s, padding-left 0.2s;
}
/* Solidny trójkąt w prawo zamiast cienkiej strzałki tekstowej */
.home-intro-section .home-intro-disciplines li a::after {
    content: '';
    display: block;
    flex-shrink: 0;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0.5em 0 0.5em 0.72em;
    border-color: transparent transparent transparent rgba(90, 85, 78, 0.42);
    transition: border-left-color 0.2s, transform 0.2s;
}
.home-intro-section .home-intro-disciplines li a:hover {
    color: var(--color-accent);
    padding-left: 0.2rem;
}
.home-intro-section .home-intro-disciplines li a:hover::after {
    border-left-color: var(--color-accent);
    transform: translateX(3px);
}
.home-intro-section .home-intro-disciplines li a:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 2px;
}

/* ----- Cards (wydarzenia) ----- */
.card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: var(--space-lg);
}
.card {
    background: var(--color-card-bg);
    border-radius: var(--radius-lg);
    padding: var(--space-lg);
    box-shadow: var(--shadow);
    border: 1px solid var(--color-border);
    transition: box-shadow 0.2s, transform 0.2s;
}
.card:hover { box-shadow: var(--shadow-hover); }
.card-event .card-date {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--color-accent);
    margin-bottom: 0.5rem;
}
.card-title { margin: 0 0 0.35rem; font-size: 1.1rem; font-weight: 600; line-height: 1.3; }
.card-title a { color: var(--color-text); text-decoration: none; }
.card-title a:hover { color: var(--color-accent); }
.card-meta { margin: 0; font-size: 0.9rem; color: var(--color-text-muted); }
.card-desc { margin: 0.5rem 0 0; font-size: 0.9rem; color: var(--color-text-muted); line-height: 1.5; }
.card-link { display: inline-block; margin-top: 0.75rem; font-size: 0.9rem; font-weight: 600; color: var(--color-accent); text-decoration: none; }
.card-link:hover { text-decoration: underline; }

/* ----- Wydarzenia: oś czasu (strona główna + /aktualnosci; wrapper .events-timeline-root) ----- */
.events-timeline-root .home-events-timeline {
    list-style: none;
    margin: 0;
    padding: 0;
    max-width: 100%;
}
.events-timeline-root .home-events-timeline-item {
    display: grid;
    grid-template-columns: minmax(4.5rem, 5.75rem) minmax(0, 1fr);
    gap: 0 1.25rem;
    align-items: stretch;
    margin: 0;
    padding: 0;
}
.events-timeline-root .home-events-timeline-axis {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    min-width: 0;
    padding-top: 0.2rem;
}
.events-timeline-root .home-events-calendar-badge {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 4.25rem;
    padding: 0.55rem 0.45rem 0.5rem;
    background: linear-gradient(165deg, #fff 0%, #faf7f2 100%);
    border: 1px solid var(--color-border);
    box-shadow: 0 2px 10px rgba(45, 40, 38, 0.06);
    font-variant-numeric: tabular-nums;
    line-height: 1.15;
}
.events-timeline-root .home-events-calendar-day {
    font-size: 1.65rem;
    font-weight: 800;
    color: var(--color-accent);
    letter-spacing: -0.02em;
}
.events-timeline-root .home-events-calendar-rest {
    margin-top: 0.2rem;
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--color-brown-muted);
    text-transform: none;
    letter-spacing: 0.02em;
    line-height: 1.25;
    text-align: center;
    max-width: 5.5rem;
}
.events-timeline-root .home-events-timeline-dot {
    display: block;
    width: 12px;
    height: 12px;
    margin-top: 0.55rem;
    border-radius: 50%;
    background: var(--color-accent);
    border: 2px solid var(--color-bg);
    box-shadow: 0 0 0 1px rgba(198, 40, 40, 0.25);
    flex-shrink: 0;
}
.events-timeline-root .home-events-timeline-line {
    flex: 1 1 auto;
    width: 2px;
    min-height: 1.35rem;
    margin-top: 0.45rem;
    background: linear-gradient(to bottom, var(--color-border) 0%, rgba(232, 228, 221, 0.45) 100%);
    border-radius: 1px;
}
.events-timeline-root .home-events-timeline-panel {
    background: var(--color-card-bg);
    border: 1px solid var(--color-border);
    border-left: 4px solid var(--color-accent);
    padding: 1.1rem 1.25rem 1.2rem;
    margin-bottom: 1.5rem;
    box-shadow: var(--shadow);
    transition: box-shadow 0.2s;
}
.events-timeline-root .home-events-timeline-panel-inner {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 0.85rem 1rem;
    align-items: flex-start;
}
.events-timeline-root .home-events-timeline-panel-main {
    flex: 1 1 12rem;
    min-width: 0;
}
.events-timeline-root .home-events-timeline-thumb {
    flex: 0 0 auto;
    display: block;
    overflow: hidden;
    border: 1px solid var(--color-border);
    background: linear-gradient(165deg, #faf7f2 0%, #f0ebe3 100%);
    line-height: 0;
    box-shadow: 0 1px 4px rgba(45, 40, 38, 0.08);
}
.events-timeline-root .home-events-timeline-thumb:hover {
    box-shadow: 0 2px 10px rgba(45, 40, 38, 0.12);
}
.events-timeline-root .home-events-timeline-thumb img {
    display: block;
    width: min(250px, 100%);
    max-width: 250px;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    object-position: center;
}
.events-timeline-root .home-events-timeline-item:last-child .home-events-timeline-panel {
    margin-bottom: 0;
}
.events-timeline-root .home-events-timeline-panel:hover {
    box-shadow: var(--shadow-hover);
}
.events-timeline-root .home-events-timeline-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem 1.25rem;
    margin-bottom: 0.75rem;
}
.events-timeline-root .home-events-meta-block {
    display: inline-flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: min(100%, 12rem);
    padding: 0.45rem 0.65rem;
    background: rgba(201, 162, 39, 0.08);
    border: 1px solid rgba(201, 162, 39, 0.22);
    border-radius: 0;
}
.events-timeline-root .home-events-meta-block--when {
    background: rgba(198, 40, 40, 0.06);
    border-color: rgba(198, 40, 40, 0.18);
}
.events-timeline-root .home-events-meta-label {
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--color-brown-muted);
}
.events-timeline-root .home-events-meta-value {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--color-text);
    line-height: 1.35;
}
.events-timeline-root .home-events-meta-block--where .home-events-meta-value {
    font-weight: 500;
}
.events-timeline-root .home-events-timeline-title {
    margin: 0 0 0.45rem;
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1.3;
}
.events-timeline-root .home-events-timeline-title a {
    color: var(--color-text);
    text-decoration: none;
}
.events-timeline-root .home-events-timeline-title a:hover {
    color: var(--color-accent);
}
.events-timeline-root .home-events-timeline-teaser {
    margin: 0 0 0.65rem;
    font-size: 0.92rem;
    color: var(--color-text-muted);
    line-height: 1.55;
    white-space: pre-line;
}
.events-timeline-root .home-events-timeline-link {
    display: inline-block;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--color-accent);
    text-decoration: none;
}
.events-timeline-root .home-events-timeline-link:hover {
    text-decoration: underline;
}

/* Strona główna + /aktualnosci — wydarzenia na mobile: bez osi czasu i bez czerwonej belki z lewej (jak karty) */
@media (max-width: 720px) {
    .section-events .events-timeline-root .home-events-timeline-item,
    .aktualnosci-page .aktualnosci-wydarzenia-side .events-timeline-root .home-events-timeline-item {
        grid-template-columns: 1fr;
        gap: 0;
    }
    .section-events .events-timeline-root .home-events-timeline-axis,
    .aktualnosci-page .aktualnosci-wydarzenia-side .events-timeline-root .home-events-timeline-axis {
        display: none;
    }
    .section-events .events-timeline-root .home-events-timeline-panel,
    .aktualnosci-page .aktualnosci-wydarzenia-side .events-timeline-root .home-events-timeline-panel {
        border-left: 1px solid var(--color-border);
        padding: 1.15rem 1.05rem 1.25rem;
        margin-bottom: 1.25rem;
    }
    .section-events .events-timeline-root .home-events-timeline-panel-inner {
        flex-direction: column;
        align-items: stretch;
        gap: 0.75rem;
    }
    .section-events .events-timeline-root .home-events-timeline-thumb {
        align-self: center;
        max-width: min(280px, 100%);
    }
    .section-events .events-timeline-root .home-events-timeline-thumb img {
        width: min(280px, 100%);
        max-width: 280px;
    }
    /* /aktualnosci: zrzut siatki „Termin | miniatura” (display: contents) → układ jak na głównej */
    .aktualnosci-page .aktualnosci-wydarzenia-side .events-timeline-root .home-events-timeline-panel-main {
        display: flex;
        flex-direction: column;
        gap: 0.45rem;
        min-width: 0;
    }
    .aktualnosci-page .aktualnosci-wydarzenia-side .events-timeline-root .home-events-timeline-panel-inner {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 0.75rem;
    }
    .aktualnosci-page .aktualnosci-wydarzenia-side .events-timeline-root .home-events-timeline-meta,
    .aktualnosci-page .aktualnosci-wydarzenia-side .events-timeline-root .home-events-timeline-thumb,
    .aktualnosci-page .aktualnosci-wydarzenia-side .events-timeline-root .home-events-timeline-title,
    .aktualnosci-page .aktualnosci-wydarzenia-side .events-timeline-root .home-events-timeline-teaser,
    .aktualnosci-page .aktualnosci-wydarzenia-side .events-timeline-root .home-events-timeline-link,
    .aktualnosci-page .aktualnosci-wydarzenia-side .events-timeline-root .home-events-timeline-gallery {
        order: unset;
        grid-column: unset;
        grid-row: unset;
        align-self: stretch;
    }
    .aktualnosci-page .aktualnosci-wydarzenia-side .events-timeline-root .home-events-timeline-thumb {
        align-self: center;
        max-width: min(280px, 100%);
    }
    .aktualnosci-page .aktualnosci-wydarzenia-side .events-timeline-root .home-events-timeline-thumb img {
        width: min(280px, 100%);
        max-width: 280px;
    }
}
@media (max-width: 520px) {
    .events-timeline-root .home-events-timeline-item {
        grid-template-columns: minmax(3.75rem, 4.25rem) minmax(0, 1fr);
        gap: 0 0.85rem;
    }
    .events-timeline-root .home-events-calendar-day {
        font-size: 1.4rem;
    }
    .events-timeline-root .home-events-calendar-badge {
        min-width: 3.5rem;
        padding: 0.45rem 0.35rem 0.4rem;
    }
    .events-timeline-root .home-events-timeline-meta {
        flex-direction: column;
        gap: 0.5rem;
    }
    .events-timeline-root .home-events-meta-block {
        min-width: 0;
    }
    .events-timeline-root .home-events-timeline-thumb img {
        width: min(220px, 100%);
        max-width: 220px;
    }
    .section-events .events-timeline-root .home-events-timeline-item,
    .aktualnosci-page .aktualnosci-wydarzenia-side .events-timeline-root .home-events-timeline-item {
        grid-template-columns: 1fr;
        gap: 0;
    }
    .section-events .events-timeline-root .home-events-timeline-axis,
    .aktualnosci-page .aktualnosci-wydarzenia-side .events-timeline-root .home-events-timeline-axis {
        display: none;
    }
}

/* Strona /wydarzenia — duży rok nad pierwszym wpisem roku + większe miniatury galerii w kafelku */
.events-page .events-timeline-root .events-timeline-year-banner {
    margin: -1.1rem -1.25rem 0.8rem;
    padding: 0.55rem 1.25rem 0.5rem;
    border-bottom: 1px solid rgba(45, 40, 38, 0.08);
    background: linear-gradient(105deg, rgba(198, 40, 40, 0.08) 0%, rgba(201, 162, 39, 0.05) 40%, transparent 78%);
}
.events-page .events-timeline-root .events-timeline-year-label {
    font-size: clamp(1.75rem, 4.5vw, 2.35rem);
    font-weight: 800;
    letter-spacing: 0.05em;
    color: rgba(45, 40, 38, 0.22);
    line-height: 1.05;
    display: inline-block;
    border-bottom: 3px solid var(--color-accent);
    padding-bottom: 0.2rem;
}
.events-page .events-timeline-root .home-events-timeline-gallery {
    width: 100%;
    margin-top: 0.85rem;
    padding-top: 0.8rem;
    border-top: 1px solid var(--color-border);
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem 0.75rem;
    align-items: center;
}
.events-page .events-timeline-root .home-events-timeline-gallery-thumb {
    display: block;
    flex: 0 0 auto;
    width: 120px;
    height: 120px;
    overflow: hidden;
    border: 1px solid var(--color-border);
    box-shadow: 0 1px 5px rgba(45, 40, 38, 0.08);
    line-height: 0;
    background: linear-gradient(165deg, #faf7f2 0%, #f0ebe3 100%);
}
.events-page .events-timeline-root .home-events-timeline-gallery-thumb:hover {
    box-shadow: 0 2px 10px rgba(45, 40, 38, 0.12);
}
.events-page .events-timeline-root .home-events-timeline-gallery-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}
.events-page .events-timeline-root .home-events-timeline-gallery-more {
    flex: 1 1 9rem;
    margin: 0;
    min-width: 0;
}
.events-page .events-timeline-root .home-events-timeline-gallery-link {
    font-size: 0.92rem;
    font-weight: 600;
    color: var(--color-accent);
    text-decoration: none;
}
.events-page .events-timeline-root .home-events-timeline-gallery-link:hover {
    text-decoration: underline;
}
@media (max-width: 520px) {
    .events-page .events-timeline-root .home-events-timeline-gallery-thumb {
        width: 88px;
        height: 88px;
    }
}

/* ----- Aktualności na stronie głównej (skrót + miniatury z podpisami z galerii) ----- */
.section-news .home-news-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}
.section-news .home-news-card {
    margin: 0;
    padding: 1rem 1.2rem;
    background: var(--color-card-bg);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
}
.section-news .home-news-card__header {
    margin-bottom: 0.35rem;
}
.section-news .home-news-card__date {
    display: block;
    font-size: 0.85rem;
    color: var(--color-text-muted);
    margin-bottom: 0.35rem;
}
.section-news .home-news-card__title {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.3;
}
.section-news .home-news-card__title a {
    color: var(--color-text);
    text-decoration: none;
}
.section-news .home-news-card__title a:hover {
    color: var(--color-accent);
}
.section-news .home-news-card__excerpt {
    margin: 0.65rem 0 0;
    font-size: 0.95rem;
    line-height: 1.55;
    color: var(--color-text-muted);
}
.section-news .home-news-card__gallery-wrap {
    margin-top: 0.85rem;
}
/* Podgląd na SG: max 10 miniatur; na szerokim ekranie 5 w rzędzie (2 rzędy), niżej mniej kolumn */
.section-news .home-news-card__gallery-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
}
@media (min-width: 560px) {
    .section-news .home-news-card__gallery-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
@media (min-width: 900px) {
    .section-news .home-news-card__gallery-grid {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }
}
.section-news .home-news-gallery-figure {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-width: 0;
}
.section-news .home-news-gallery-cap {
    margin: 0;
    font-size: 0.8rem;
    line-height: 1.35;
    color: var(--color-text-muted);
}
.section-news .home-news-card__actions {
    margin: 0.65rem 0 0;
    padding: 0;
}
.section-news .home-news-card__actions--solo {
    margin-top: 0.5rem;
}
.section-news .home-news-card__actions .news-card-link + .news-card-link {
    margin-left: 1rem;
}
.section-news .news-card-link {
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--color-accent);
    text-decoration: none;
}
.section-news .news-card-link:hover {
    text-decoration: underline;
}

/* ----- CTA ----- */
.section-cta { background: linear-gradient(165deg, #f3f0e9 0%, #eae6de 100%); color: var(--color-text); text-align: center; border-top: 1px solid var(--color-border); }
.cta-inner { padding: var(--space-xl) var(--space-lg); }
.cta-title { margin: 0 0 0.5rem; font-size: 1.5rem; font-weight: 700; color: var(--color-text); }
.cta-text { margin: 0 0 1.5rem; color: var(--color-text-muted); }
.cta-buttons { display: flex; gap: var(--space); flex-wrap: wrap; justify-content: center; }
.section-cta .btn-primary { background: var(--color-accent); color: #fff; }
.section-cta .btn-primary:hover { background: var(--color-accent-hover); color: #fff; }
.section-cta .btn-secondary { background: transparent; border: 2px solid var(--color-text-muted); color: var(--color-text); }
.section-cta .btn-secondary:hover { border-color: var(--color-accent); color: var(--color-accent); }

/* ----- Strony wewnętrzne ----- */
.page-content { padding: var(--space-xl) 0; }
.page-content h1 { margin-top: 0; font-size: 1.75rem; font-weight: 700; color: var(--color-text); }
.discipline-page-title-ja {
    margin: 0.2rem 0 1.1rem;
    padding: 0;
    font-size: 1.05rem;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0.14em;
    color: var(--color-text-muted);
    font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic UI", "Yu Gothic", Meiryo, sans-serif;
}
/* Wstęp stron dyscyplin: logo / monogram na białym | nazwa, JP, karta „Prowadzący” */
.discipline-detail-page .discipline-detail-intro--shorin,
.discipline-detail-page .discipline-detail-intro--kobudo,
.discipline-detail-page .discipline-detail-intro--shotokan,
.discipline-detail-page .discipline-detail-intro--joga {
    display: block;
    margin: 0 0 1.5rem;
    padding: 0;
    border-bottom: none;
}
/* Bez padding-top: 0 na pierwszej karcie — nagłówek sekcji nie klei się do wstępu. */
.discipline-detail-page .discipline-detail-intro--shorin + .discipline-section.discipline-shorin-about {
    margin-top: 0.35rem;
    border-top: none;
}
.discipline-detail-page .discipline-detail-intro--shotokan + .discipline-section.discipline-shotokan-about {
    margin-top: 0.35rem;
    border-top: none;
}
.discipline-detail-page .discipline-detail-prose-card .discipline-detail-shorin-slideshow--in-about {
    margin: 1.35rem 0 0;
}
.discipline-detail-page .discipline-detail-intro--kobudo + .discipline-section.discipline-hero {
    margin-top: 0.35rem;
    border-top: none;
}
.discipline-detail-page .discipline-detail-intro__brand {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0;
    align-items: stretch;
    min-width: 0;
}
.discipline-detail-page .discipline-detail-intro__logo-plate {
    background: #fff;
    border: 1px solid var(--color-border);
    padding: 1rem 1.125rem;
    box-sizing: border-box;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
    align-self: stretch;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
}
.discipline-detail-page .discipline-detail-intro__logo {
    margin: 0;
    padding: 0;
    border: none;
    background: none;
}
.discipline-detail-page .discipline-detail-intro__logo-img {
    display: block;
    width: 156px;
    height: 156px;
    max-width: 100%;
    object-fit: contain;
}
.discipline-detail-page .discipline-detail-intro__logo-fallback {
    box-sizing: border-box;
    width: 156px;
    min-height: 120px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.75rem;
    font-size: 1.35rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1.1;
    color: var(--color-text-muted);
    font-family: var(--font-sans);
    text-align: center;
}
.discipline-detail-page .discipline-detail-intro__headline {
    min-width: 0;
    min-height: 0;
    margin: 0;
    padding: 0.35rem 0 0.15rem 1.5rem;
    box-sizing: border-box;
    align-self: stretch;
    display: flex;
    flex-direction: column;
}
.discipline-detail-page .discipline-detail-intro__main-block {
    margin: 0;
    padding: 1rem 1.2rem 1.05rem;
    border: 1px solid var(--color-border);
    background: var(--color-card-bg);
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    min-width: 0;
    min-height: 0;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
}
.discipline-detail-page .discipline-detail-intro__title {
    margin: 0 0 0.35rem;
    font-size: clamp(1.15rem, 2.4vw, 1.6rem);
    font-weight: 700;
    line-height: 1.28;
    color: var(--color-text);
    letter-spacing: -0.02em;
}
.discipline-detail-page .discipline-detail-intro__main-block .discipline-page-title-ja,
.discipline-detail-page .discipline-detail-intro__main-block .discipline-detail-intro__title-ja {
    margin: 0.28rem 0 0;
}
.discipline-detail-page .discipline-detail-intro__instructor-panel {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-end;
    gap: 0.65rem 1rem;
    margin: 0;
    margin-top: auto;
    padding: 0.85rem 0 0;
    border-top: 1px solid var(--color-border);
}
.discipline-detail-page .discipline-detail-intro__instructor {
    margin: 0;
    padding: 0;
    border: none;
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}
.discipline-detail-page .discipline-detail-intro__instructor-cta {
    flex-shrink: 0;
    align-self: flex-end;
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    align-items: flex-end;
    justify-content: flex-end;
}
.discipline-detail-page .discipline-detail-intro__instructor-cta .btn {
    margin: 0;
}
.discipline-detail-intro--shorin .discipline-detail-intro__contact-anchor,
.discipline-detail-intro--kobudo .discipline-detail-intro__contact-anchor,
.discipline-detail-intro--shotokan .discipline-detail-intro__contact-anchor,
.discipline-detail-intro--joga .discipline-detail-intro__contact-anchor {
    width: 100%;
    margin: 0.85rem 0 0;
    max-width: none;
}
.discipline-detail-page .discipline-detail-intro__instructor-label {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--color-text-muted);
}
.discipline-detail-page .discipline-detail-intro__instructor-name {
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.35;
    color: var(--color-text);
}
.discipline-detail-page .discipline-detail-intro__instructor-rank {
    font-size: 0.84rem;
    font-weight: 500;
    line-height: 1.45;
    color: var(--color-text-muted);
}
@media (max-width: 520px) {
    .discipline-detail-page .discipline-detail-intro__brand {
        grid-template-columns: 1fr;
        gap: 0;
    }
    .discipline-detail-page .discipline-detail-intro__headline {
        padding-left: 0;
        padding-top: 1.15rem;
        margin-top: 1.15rem;
        border-top: 1px solid var(--color-border);
    }
    .discipline-detail-page .discipline-detail-intro__logo-plate {
        justify-self: start;
    }
    .discipline-detail-page .discipline-detail-intro__logo-img {
        width: 140px;
        height: 140px;
    }
    .discipline-detail-page .discipline-detail-intro__logo-fallback {
        width: 140px;
        min-height: 110px;
        font-size: 1.2rem;
    }
    .discipline-detail-page .discipline-detail-intro__instructor-panel {
        flex-direction: column;
        align-items: stretch;
    }
    .discipline-detail-page .discipline-detail-intro__instructor-cta {
        align-self: flex-end;
    }
}
/* :not(...) — nagłówki kart na /co-cwiczymy (.discipline-list-card__title) mają własny margines */
.page-content h2:not(.discipline-list-card__title) {
    font-size: 1.25rem;
    color: var(--color-text);
    margin: 1.5rem 0 0.5rem;
}
.news-list, .events-list { list-style: none; padding: 0; margin: 0; }
.news-list li { padding: 0.75rem 0; border-bottom: 1px solid var(--color-border); display: flex; align-items: baseline; gap: 0.75rem; flex-wrap: wrap; }
.news-list a { color: var(--color-accent); text-decoration: none; font-weight: 500; }
.news-list a:hover { text-decoration: underline; }
.news-list .date { color: var(--color-text-muted); font-size: 0.9rem; }
.events-section-title { font-size: 1.2rem; margin: 1.5rem 0 0.75rem; color: var(--color-text); }
.events-section-title:first-of-type { margin-top: 0; }
.events-list { list-style: none; padding: 0; margin: 0; }
/* Strona /wydarzenia — wyraźny podział nadchodzących vs archiwum */
.events-page .events-panel--upcoming {
    margin: 1.5rem 0 2.5rem;
    padding: 1.35rem 1.5rem 1.25rem;
    background: var(--color-bg-alt);
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow);
}
.events-page .events-panel--upcoming .events-section-title {
    margin: 0 0 1rem;
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--color-header);
}
.events-page .events-panel--upcoming .events-list li:first-child { padding-top: 0; }
.events-page .events-panel--upcoming .events-panel-empty {
    margin: 0;
    color: var(--color-text-muted);
}
.events-page .events-panel--archive {
    margin-top: 0;
    padding: 1.5rem 1.35rem 1.35rem;
    background: #ede8e0;
    border: 1px solid #ded6cc;
    border-top: 3px solid var(--color-brown-muted);
}
.events-page .events-panel--archive .events-archive-title {
    margin: 0 0 1rem;
    padding: 0;
    border: none;
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--color-brown-muted);
}
.events-page .events-panel--archive .events-list li { border-bottom-color: rgba(93, 78, 55, 0.15); }
.events-page .events-panel--archive .events-panel-empty {
    margin: 0;
    color: var(--color-text-muted);
    font-size: 0.95rem;
}
.events-page .events-panel--archive .pagination { margin-top: 1.25rem; }
.events-list li { padding: 1rem 0; border-bottom: 1px solid var(--color-border); }
.events-list li.event-item:last-child { border-bottom: none; }
.events-list strong { display: block; margin-bottom: 0.25rem; }
.events-list .event-meta { font-size: 0.95rem; color: var(--color-text-muted); font-weight: normal; }
.events-list .event-desc { margin: 0.35rem 0 0; font-size: 0.95rem; color: var(--color-text-muted); line-height: 1.5; }
.events-list .event-read-more { margin: 0.35rem 0 0; }
.events-archive .event-past .event-meta { opacity: 0.85; }

/* Cover (obrazek) przy wydarzeniu */
.event-item-with-cover { display: flex; gap: 1.25rem; align-items: flex-start; }
.event-item-with-cover .event-cover {
    flex-shrink: 0;
    width: 200px;
    height: 130px;
    border-radius: var(--radius);
    overflow: hidden;
    border: 1px solid var(--color-border);
    background: var(--color-bg);
}
.event-item-with-cover .event-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.event-item-with-cover .event-body { flex: 1; min-width: 0; }
.event-item-with-cover .event-body .event-title-link { display: inline-block; margin-bottom: 0.2rem; }
@media (max-width: 520px) {
    .event-item-with-cover { flex-direction: column; }
    .event-item-with-cover .event-cover { width: 100%; height: 180px; }
}
/* ----- Harmonogram: karta lokalizacji, treść bez pionowych linii, wyraźne tła stylów ----- */
.schedule-page > .container > h1 {
    margin: 0 0 0.35rem;
    letter-spacing: -0.02em;
}
.schedule-intro {
    margin: 0;
    padding: 0;
    max-width: none;
    color: var(--color-text-muted);
    font-size: 0.95rem;
    line-height: 1.6;
}
.schedule-calendar-wrap { margin: 0; }
.schedule-calendar {
    width: 100%;
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 0.9rem;
    border: 1px solid var(--color-border);
    background: var(--color-card-bg);
}
.schedule-calendar th, .schedule-calendar td {
    width: 20%;
    text-align: left;
    border-bottom: 1px solid var(--color-border);
    border-right: none;
    vertical-align: top;
    padding: 0;
}
.schedule-calendar th.schedule-day-col {
    /* Dni: krem strony (oddzielnie od paska „szkoła / Dojo” = biała karta) */
    background: var(--color-bg);
    color: var(--color-text);
    font-weight: 700;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    padding: 0.72rem 0.5rem 0.76rem;
    border-bottom: 2px solid var(--color-accent);
    -webkit-font-smoothing: antialiased;
}
.schedule-main .schedule-calendar-wrap,
.schedule-other-location .schedule-calendar-wrap {
    margin-top: 0;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}
.schedule-calendar td.schedule-day-cell {
    background: var(--color-card-bg);
    padding: 0.5rem 0.5rem 0.55rem;
}
.schedule-calendar tbody tr:last-child td { border-bottom: none; }

/* Pojedyncze zajęcie — pełne tło pod nazwą (styl), reszta na białym */
.schedule-activity {
    display: block;
    margin: 0 0 0.5rem;
    padding: 0.25rem 0.15rem 0.35rem;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
}
.schedule-activity:last-child { margin-bottom: 0; }
.schedule-activity-time {
    display: block;
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    font-size: 0.78rem;
    margin: 0 0 0.28rem;
    padding: 0;
    color: var(--color-text);
    letter-spacing: 0.02em;
}
.schedule-activity-title {
    display: block;
    font-weight: 700;
    font-size: 0.88rem;
    margin: 0 0 0.2rem;
    line-height: 1.32;
    padding: 0.4rem 0.48rem 0.42rem;
    box-sizing: border-box;
}
.schedule-activity-joga .schedule-activity-title {
    background: #eccf62;
    color: #241c10;
    font-weight: 700;
}
.schedule-activity-shorin-kobudo .schedule-activity-title {
    background: #d14343;
    color: #fff8f8;
    font-weight: 700;
}
.schedule-activity-shotokan .schedule-activity-title {
    background: #4a8a6c;
    color: #f2faf6;
    font-weight: 700;
}
.schedule-activity-other .schedule-activity-title {
    background: #cfc0a4;
    color: #252018;
    font-weight: 700;
}
.schedule-activity-note {
    display: block;
    font-weight: normal;
    font-size: 0.8rem;
    color: var(--color-text-muted);
    line-height: 1.4;
    margin: 0.2rem 0 0;
}
.schedule-activity-instructor {
    display: block;
    font-size: 0.88rem;
    color: var(--color-text);
    font-weight: 600;
    line-height: 1.45;
    margin: 0.1rem 0 0.15rem;
    padding: 0 0.1rem 0 0.05rem;
}

/* Obramowanie całej tabeli */
.schedule-section-title {
    font-size: 1.2rem;
    margin: 0 0 0.5rem;
    color: var(--color-text);
    font-weight: 700;
    letter-spacing: -0.01em;
}
.schedule-main {
    margin-bottom: 0.5rem;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
}
/* Nagłówek lokalizacji — szkielet (w środku .schedule-location-block) */
.schedule-location-head {
    margin: 0;
    padding: 0.5rem 0 0.7rem;
    width: 100%;
    max-width: none;
    border: none;
    border-radius: 0;
    background: transparent;
    box-sizing: border-box;
    box-shadow: none;
}
/* Lokalizacja: nagłówek wewnątrz tej samej karty co tabela (wrap = jedna płyta) */
.schedule-location-block {
    margin: 0 0 2rem;
    padding: 0;
    background: transparent;
    border: none;
    box-shadow: none;
    box-sizing: border-box;
}
/* Jasna płyta obejmuje nazwę miejsca + tabelę (HTML: wrap > .schedule-location-head + table) */
.schedule-page .schedule-location-block .schedule-calendar-wrap {
    margin: 0;
    padding: 0;
    background: var(--color-card-bg);
    border: 1px solid rgba(45, 42, 38, 0.1);
    box-shadow:
        0 1px 2px rgba(0, 0, 0, 0.04),
        0 8px 24px rgba(0, 0, 0, 0.06);
    box-sizing: border-box;
}
.schedule-page .schedule-location-block .schedule-calendar-wrap > .schedule-location-head,
.schedule-page .schedule-location-block .schedule-calendar-wrap > .schedule-location-head--school {
    margin: 0;
    padding: 0.85rem 1.1rem 0.8rem;
    /* Nazwa miejsca: czysta biel karty — nie dublujemy szarych/beżowych pasków */
    background: var(--color-card-bg);
    color: var(--color-text);
    border: none;
    border-bottom: none;
    box-shadow: none;
}
.schedule-location-block .schedule-calendar {
    border: none;
    background: var(--color-card-bg);
    box-shadow: none;
}
/* Cienka granica w karcie pod nagłówkiem lokalizacji (gdy jest tabela) */
.schedule-page .schedule-location-block .schedule-calendar-wrap:has(> .schedule-calendar) > .schedule-location-head,
.schedule-page .schedule-location-block .schedule-calendar-wrap:has(> .schedule-calendar) > .schedule-location-head--school {
    box-shadow: inset 0 -1px 0 0 var(--color-border);
}
.schedule-page .schedule-location-block .schedule-calendar th.schedule-day-col {
    background: var(--color-bg);
    border-bottom: 2px solid var(--color-accent);
}
.schedule-location-block .schedule-calendar td.schedule-day-cell {
    background: var(--color-card-bg);
}
.schedule-main .schedule-location-head .schedule-section-title {
    font-size: clamp(1.35rem, 2.5vw, 1.55rem);
    margin: 0;
    padding: 0;
    line-height: 1.2;
    color: var(--color-accent);
    font-weight: 700;
    letter-spacing: -0.02em;
}
.schedule-main .schedule-location-head .schedule-intro {
    margin: 0.32rem 0 0;
    padding: 0;
    font-size: 0.92rem;
    line-height: 1.5;
    color: var(--color-text-muted);
}
.schedule-other-location .schedule-location-head--school .schedule-other-location-name {
    font-size: clamp(1.35rem, 2.5vw, 1.55rem);
    margin: 0;
    padding: 0;
    line-height: 1.2;
    color: var(--color-accent);
    font-weight: 700;
    letter-spacing: -0.02em;
}
.schedule-other-location .schedule-location-head--school .schedule-other-location-address {
    margin: 0.32rem 0 0;
    padding: 0;
    font-size: 0.92rem;
    line-height: 1.5;
    color: var(--color-text-muted);
}
/* Pozostałe lokalizacje — zwykły blok w kontenerze (bez osobnego tła) */
.schedule-page .schedule-other-section {
    margin: 0;
    padding: 0;
    background: transparent;
    color: inherit;
}
/* Nadpisanie .page-content h2 { margin-top: 1.5rem } — za dużo nad tym nagłówkiem */
.schedule-other-section h2.schedule-section-title-other {
    margin: 0.35rem 0 0.85rem;
    font-size: 1.15rem;
    color: var(--color-text);
    font-weight: 700;
    letter-spacing: -0.01em;
    padding-bottom: 0;
    border-bottom: none;
    display: block;
    width: 100%;
    box-sizing: border-box;
}
.schedule-other-location {
    margin: 0 0 1.75rem;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
}
.schedule-other-location + .schedule-other-location {
    margin-top: 2rem;
}
.schedule-other-location:last-child { margin-bottom: 0; }
.schedule-calendar-wrap-other { margin: 0; }
.schedule-calendar-wrap-other .schedule-calendar-wrap { margin: 0; }
.schedule-calendar-other { font-size: 0.85rem; }
.schedule-calendar-other th.schedule-day-col { font-size: 0.7rem; padding: 0.64rem 0.48rem 0.68rem; }
.schedule-calendar-other td.schedule-day-cell { padding: 0.5rem 0.45rem 0.5rem; }
.schedule-calendar-other .schedule-activity { padding: 0.22rem 0.12rem 0.3rem; }
.schedule-calendar-other .schedule-activity-time { font-size: 0.74rem; }
.schedule-calendar-other .schedule-activity-title { font-size: 0.82rem; }
.schedule-calendar-other .schedule-activity-instructor { font-size: 0.86rem; }
.schedule-empty { margin: 0; font-size: 0.9rem; color: var(--color-text-muted); }

.schedule-calendar-weekdays th.schedule-day-col,
.schedule-calendar-weekdays td.schedule-day-cell {
    width: 20%;
    min-width: 0;
    word-wrap: break-word;
    overflow-wrap: break-word;
    hyphens: auto;
}
@media (min-width: 721px) and (max-width: 1024px) {
    .schedule-calendar-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .schedule-calendar-weekdays {
        min-width: 34rem;
    }
}

/* Harmonogram – na wąskich ekranach dni jeden pod drugim (czytelniej niż tabela) */
@media (max-width: 720px) {
    .schedule-main { padding: 0; }
    .schedule-calendar-wrap { margin: 0; }
    .schedule-calendar-wrap .schedule-calendar,
    .schedule-calendar-wrap .schedule-calendar thead,
    .schedule-calendar-wrap .schedule-calendar tbody,
    .schedule-calendar-wrap .schedule-calendar tr,
    .schedule-calendar-wrap .schedule-calendar th,
    .schedule-calendar-wrap .schedule-calendar td {
        display: block;
        width: 100%;
    }
    /* Puste dni: na telefonie bez osobnych bloków (na desktopie widać pustą kolumnę) */
    .schedule-calendar-wrap .schedule-calendar td.schedule-day-cell--empty,
    .schedule-other-location .schedule-calendar-wrap-other .schedule-calendar-other td.schedule-day-cell--empty {
        display: none;
    }
    .schedule-calendar-wrap .schedule-calendar {
        border-collapse: separate;
        border-spacing: 0;
    }
    .schedule-calendar-wrap .schedule-calendar thead {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }
    .schedule-calendar-wrap .schedule-calendar tr {
        border: none;
    }
    .schedule-calendar-wrap .schedule-calendar td.schedule-day-cell {
        border-right: none;
        padding: 0;
        background: var(--color-card-bg);
        margin-bottom: 0.75rem;
    }
    .schedule-calendar-wrap .schedule-calendar td.schedule-day-cell:last-child {
        margin-bottom: 0;
    }
    .schedule-calendar-wrap .schedule-calendar td.schedule-day-cell::before {
        content: attr(data-day);
        display: block;
        font-weight: 700;
        font-size: 0.75rem;
        letter-spacing: 0.07em;
        text-transform: uppercase;
        color: var(--color-text);
        background: var(--color-bg);
        padding: 0.6rem 0.85rem 0.6rem;
        border-bottom: 2px solid var(--color-accent);
        -webkit-font-smoothing: antialiased;
    }
    .schedule-calendar-wrap .schedule-calendar td.schedule-day-cell .schedule-activity {
        margin: 0 0 0.4rem 0;
    }
    .schedule-calendar-wrap .schedule-calendar td.schedule-day-cell .schedule-activity:last-of-type { margin-bottom: 0.35rem; }
    .schedule-activity-time { font-size: 1rem; }
    .schedule-activity-title { font-size: 0.95rem; }
    .schedule-other-location .schedule-calendar-wrap-other .schedule-calendar-other,
    .schedule-other-location .schedule-calendar-wrap-other .schedule-calendar-other thead,
    .schedule-other-location .schedule-calendar-wrap-other .schedule-calendar-other tbody,
    .schedule-other-location .schedule-calendar-wrap-other .schedule-calendar-other tr,
    .schedule-other-location .schedule-calendar-wrap-other .schedule-calendar-other th,
    .schedule-other-location .schedule-calendar-wrap-other .schedule-calendar-other td {
        display: block;
        width: 100%;
    }
    .schedule-other-location .schedule-calendar-wrap-other .schedule-calendar-other thead {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }
    .schedule-other-location .schedule-calendar-wrap-other .schedule-calendar-other td.schedule-day-cell {
        border-right: none;
        padding: 0;
        background: var(--color-card-bg);
        margin-bottom: 0.65rem;
    }
    .schedule-other-location .schedule-calendar-wrap-other .schedule-calendar-other td.schedule-day-cell:last-child {
        margin-bottom: 0;
    }
    .schedule-other-location .schedule-calendar-wrap-other .schedule-calendar-other td.schedule-day-cell::before {
        content: attr(data-day);
        display: block;
        font-weight: 700;
        font-size: 0.74rem;
        letter-spacing: 0.07em;
        text-transform: uppercase;
        color: var(--color-text);
        background: var(--color-bg);
        padding: 0.55rem 0.8rem 0.55rem;
        border-bottom: 2px solid var(--color-accent);
        -webkit-font-smoothing: antialiased;
    }
    .schedule-other-location .schedule-calendar-wrap-other .schedule-calendar-other td.schedule-day-cell .schedule-activity {
        margin: 0 0 0.4rem 0;
    }
    .schedule-other-location .schedule-calendar-wrap-other .schedule-calendar-other td.schedule-day-cell .schedule-activity:last-of-type { margin-bottom: 0.3rem; }
}

/* Harmonogram — najwęższe telefony: etykieta dnia (pseudo-nagłówek) na ciemnym tle jak nagłówek strony */
@media (max-width: 420px) {
    .schedule-calendar-wrap .schedule-calendar td.schedule-day-cell::before,
    .schedule-other-location .schedule-calendar-wrap-other .schedule-calendar-other td.schedule-day-cell::before {
        color: rgba(255, 255, 255, 0.93);
        background: var(--color-header);
        border-bottom-color: var(--color-gold);
    }
}

.disciplines, .contact-content { max-width: 60ch; }
.disciplines-page .disciplines-intro { max-width: 56ch; margin-bottom: 1.5rem; }
.disciplines-page .disciplines-intro-short {
    max-width: 56ch;
    margin-bottom: 1.75rem;
    font-size: 1rem;
    line-height: 1.6;
    color: var(--color-text-muted);
}
.disciplines-page .disciplines-intro-full { max-width: none; }
.disciplines-page .discipline-section { max-width: 65ch; margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--color-border); }
.disciplines-page .discipline-section:first-of-type { margin-top: 1rem; padding-top: 0; border-top: none; }
.discipline-section h2 { font-size: 1.25rem; margin: 0 0 0.75rem; color: var(--color-text); }
.discipline-section p { margin: 0 0 0.75rem; line-height: 1.65; }
.discipline-section p:last-child { margin-bottom: 0; }
.discipline-section strong { color: var(--color-text); }
.discipline-section a { color: var(--color-accent); text-decoration: none; }
.discipline-section a:hover { text-decoration: underline; }
/* Co ćwiczymy — lista: meta | (tekst + slajd pod tekstem); stopka = akcje */
.disciplines-blocks-with-sliders { display: flex; flex-direction: column; gap: 2.5rem; }
.discipline-list-card {
    padding: 1.35rem 1.5rem 1.25rem;
    background: var(--color-card-bg);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    border-left: 4px solid var(--color-accent);
    box-shadow: var(--shadow);
}
.discipline-list-card__main {
    display: block;
}
.discipline-list-card__top {
    display: grid;
    grid-template-columns: minmax(14.5rem, 20rem) minmax(0, 1fr);
    gap: 1.25rem 1.75rem;
    align-items: start;
}
.discipline-list-card__content {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    min-width: 0;
}
.discipline-list-card--no-media .discipline-list-card__content {
    gap: 0;
}
.discipline-list-card__meta {
    display: flex;
    flex-direction: column;
    gap: 0;
    min-width: 0;
}
.discipline-list-card__title {
    margin: 0 0 0.5rem;
    padding: 0;
    font-size: 1.18rem;
    font-weight: 700;
    line-height: 1.35;
    color: var(--color-text);
    letter-spacing: -0.02em;
}
.discipline-list-card__title-ja {
    margin: -0.15rem 0 0.55rem;
    padding: 0;
    font-size: 0.95rem;
    font-weight: 500;
    line-height: 1.45;
    letter-spacing: 0.12em;
    color: var(--color-text-muted);
    font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic UI", "Yu Gothic", Meiryo, sans-serif;
}
.discipline-list-card__org {
    margin: 0.2rem 0 0.75rem;
    text-align: left;
}
.discipline-list-card__org-mark {
    margin: 0;
    padding: 0;
    display: block;
    width: fit-content;
    max-width: 100%;
    background: none;
    border: none;
    border-radius: 0;
}
.discipline-list-card__org-mark img {
    display: block;
    width: 180px;
    height: 180px;
    max-width: 100%;
    object-fit: contain;
    margin: 0;
}
.discipline-list-card__instructor {
    margin-top: auto;
    padding-top: 0.75rem;
    border-top: 1px solid var(--color-border);
}
.discipline-list-card__instructor-label {
    display: block;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--color-text-muted);
    margin-bottom: 0.35rem;
}
.discipline-list-card__instructor-body {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    font-size: 0.9rem;
    line-height: 1.4;
    color: var(--color-text);
}
.discipline-list-card__instructor-name { font-weight: 600; }
.discipline-list-card__instructor-rank {
    font-size: 0.82rem;
    color: var(--color-text-muted);
    font-weight: 500;
}
.discipline-list-card__text.discipline-block-lead {
    margin: 0;
    padding: 0;
    font-size: 0.95rem;
    line-height: 1.55;
    color: var(--color-text-muted);
    min-width: 0;
}
.disciplines-page .discipline-list-card__text.prose > :first-child {
    margin-top: 0;
}
.discipline-list-card__media {
    min-width: 0;
    width: 100%;
    max-width: min(720px, 100%);
    margin: 0;
}
.discipline-list-card__slideshow-inner {
    width: 100%;
    max-width: min(720px, 100%);
    margin: 0;
}
.discipline-list-card__media .slideshow-wrap {
    margin: 0;
    max-width: min(720px, 100%);
    width: 100%;
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.09);
    border: 1px solid var(--color-border);
}
.discipline-list-card__media .slideshow-dots { margin-top: 0.65rem; }
/* Shotokan na liście — slajd CMS (figure + podpis jak strona dyscypliny) */
.discipline-list-card__media .discipline-shorin-slideshow-captions .slideshow {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
}
.discipline-list-card__media .discipline-shorin-slideshow-captions .slideshow-track {
    position: relative;
    width: 100%;
    height: 100%;
}
.discipline-list-card__media .discipline-shorin-slideshow-captions .slideshow-slide {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;
}
.discipline-list-card__media .discipline-shorin-slideshow-captions .slideshow-slide.active {
    opacity: 1;
    z-index: 1;
    pointer-events: auto;
}
.discipline-list-card__media .discipline-shorin-slideshow-captions .slideshow-slide .slideshow-img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    opacity: 1;
}
.discipline-list-card__media .discipline-shorin-slideshow-captions .slideshow-caption {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 0.75rem 1rem;
    margin: 0;
    background: linear-gradient(transparent, rgba(0, 0, 0, 0.85));
    color: #fff;
    font-size: 0.95rem;
    line-height: 1.35;
}
.discipline-list-card__media .slideshow-btn {
    width: 44px;
    height: 44px;
    font-size: 1.5rem;
}
.discipline-list-card__photo--static {
    margin: 0;
    max-width: min(720px, 100%);
    border-radius: var(--radius-lg);
    overflow: hidden;
    border: 1px solid var(--color-border);
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.09);
    aspect-ratio: 16 / 9;
    background: var(--color-bg-alt);
}
.discipline-list-card__thumb {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}
.discipline-list-card__footer {
    margin-top: 1.1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--color-border);
}
.discipline-list-card__footer .discipline-block-actions {
    margin-top: 0;
    margin-bottom: 0.4rem;
    flex-wrap: wrap;
}
@media (max-width: 900px) {
    .discipline-list-card__top {
        grid-template-columns: 1fr;
        gap: 1rem;
    }
    .discipline-list-card__media {
        max-width: 100%;
    }
    .discipline-list-card__slideshow-inner {
        max-width: 100%;
    }
    .discipline-list-card__meta {
        padding-bottom: 0.35rem;
        border-bottom: 1px solid var(--color-border);
    }
    .discipline-list-card__instructor { border-top: none; padding-top: 0.5rem; }
}
@media (max-width: 600px) {
    /* Co ćwiczymy — duże loga organizacji; na telefonie tylko tytuł + treść */
    .disciplines-page .discipline-list-card__org {
        display: none;
    }
    /* Podstrona dyscypliny — płyta z logotypem obok nagłówka */
    .discipline-detail-page .discipline-detail-intro__logo-plate {
        display: none;
    }
    .discipline-detail-page .discipline-detail-intro__brand {
        grid-template-columns: 1fr;
    }
    .discipline-detail-page .discipline-detail-intro__headline {
        padding-left: 0;
        padding-top: 0.35rem;
        margin-top: 0;
        border-top: none;
    }
}
/* Jedna linia: „przyciski” listy + podstrony dyscyplin */
.discipline-list-card .discipline-block-actions,
.discipline-detail-page .discipline-block-actions {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.45rem;
    margin: 0.75rem 0 0.65rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}
.discipline-detail-page .discipline-block-actions {
    margin-top: 2rem;
    margin-bottom: 0.5rem;
}
.discipline-list-card .discipline-block-actions::-webkit-scrollbar,
.discipline-detail-page .discipline-block-actions::-webkit-scrollbar { height: 4px; }
.discipline-list-card .discipline-block-actions::-webkit-scrollbar-thumb,
.discipline-detail-page .discipline-block-actions::-webkit-scrollbar-thumb {
    background: var(--color-border);
    border-radius: 2px;
}
.discipline-list-card .btn-signup.btn-discipline-action,
.discipline-list-card a.btn-signup.btn-discipline-action,
.discipline-detail-page .btn-signup.btn-discipline-action,
.discipline-detail-page a.btn-signup.btn-discipline-action {
    font-family: var(--font-sans);
    font-size: 0.88rem;
    font-weight: 600;
    padding: 0.5rem 0.85rem;
    border-radius: var(--radius);
    border: 1px solid var(--color-accent);
    background: var(--color-bg-alt);
    color: var(--color-accent);
    cursor: pointer;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
    flex-shrink: 0;
    line-height: 1.2;
    box-sizing: border-box;
}
.discipline-list-card .btn-signup.btn-discipline-action:hover,
.discipline-detail-page .btn-signup.btn-discipline-action:hover {
    background: var(--color-accent-light);
}
.discipline-list-card .btn-signup.btn-discipline-action.btn-discipline-action--primary,
.discipline-list-card a.btn-signup.btn-discipline-action.btn-discipline-action--primary,
.discipline-detail-page .btn-signup.btn-discipline-action.btn-discipline-action--primary,
.discipline-detail-page a.btn-signup.btn-discipline-action.btn-discipline-action--primary {
    background: var(--color-accent);
    color: #fff;
    border-color: var(--color-accent);
}
.discipline-list-card .btn-signup.btn-discipline-action.btn-discipline-action--primary:hover,
.discipline-list-card a.btn-signup.btn-discipline-action.btn-discipline-action--primary:hover,
.discipline-detail-page .btn-signup.btn-discipline-action.btn-discipline-action--primary:hover,
.discipline-detail-page a.btn-signup.btn-discipline-action.btn-discipline-action--primary:hover {
    background: var(--color-accent-hover);
    border-color: var(--color-accent-hover);
    color: #fff;
}
.discipline-list-card .discipline-block-contact-wrap,
.discipline-detail-footer-actions .discipline-block-contact-wrap,
.discipline-detail-intro--shorin .discipline-block-contact-wrap,
.discipline-detail-intro--kobudo .discipline-block-contact-wrap,
.discipline-detail-intro--shotokan .discipline-block-contact-wrap,
.discipline-detail-intro--joga .discipline-block-contact-wrap {
    width: 100%;
    margin: 0 0 0.5rem;
}
.discipline-list-card .discipline-instructor-contact,
.discipline-detail-footer-actions .discipline-instructor-contact,
.discipline-detail-intro--shorin .discipline-instructor-contact,
.discipline-detail-intro--kobudo .discipline-instructor-contact,
.discipline-detail-intro--shotokan .discipline-instructor-contact,
.discipline-detail-intro--joga .discipline-instructor-contact {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem 0.75rem;
    font-family: var(--font-sans);
    font-size: 0.95rem;
    line-height: 1.4;
    color: var(--color-text);
}
.discipline-list-card .discipline-instructor-contact[hidden],
.discipline-detail-footer-actions .discipline-instructor-contact[hidden],
.discipline-detail-intro--shorin .discipline-instructor-contact[hidden],
.discipline-detail-intro--kobudo .discipline-instructor-contact[hidden],
.discipline-detail-intro--shotokan .discipline-instructor-contact[hidden],
.discipline-detail-intro--joga .discipline-instructor-contact[hidden] { display: none; }
.discipline-list-card .discipline-instructor-contact .contact-name,
.discipline-detail-footer-actions .discipline-instructor-contact .contact-name,
.discipline-detail-intro--shorin .discipline-instructor-contact .contact-name,
.discipline-detail-intro--kobudo .discipline-instructor-contact .contact-name,
.discipline-detail-intro--shotokan .discipline-instructor-contact .contact-name,
.discipline-detail-intro--joga .discipline-instructor-contact .contact-name {
    font-weight: 600;
    color: var(--color-text);
    margin-right: 0.25rem;
}
.discipline-list-card .discipline-instructor-contact .contact-methods,
.discipline-detail-footer-actions .discipline-instructor-contact .contact-methods,
.discipline-detail-intro--shorin .discipline-instructor-contact .contact-methods,
.discipline-detail-intro--kobudo .discipline-instructor-contact .contact-methods,
.discipline-detail-intro--shotokan .discipline-instructor-contact .contact-methods,
.discipline-detail-intro--joga .discipline-instructor-contact .contact-methods {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem 0.75rem;
}
.discipline-list-card .discipline-instructor-contact a,
.discipline-detail-footer-actions .discipline-instructor-contact a,
.discipline-detail-intro--shorin .discipline-instructor-contact a,
.discipline-detail-intro--kobudo .discipline-instructor-contact a,
.discipline-detail-intro--shotokan .discipline-instructor-contact a,
.discipline-detail-intro--joga .discipline-instructor-contact a {
    color: var(--color-accent);
    text-decoration: none;
    font-weight: 500;
}
.discipline-list-card .discipline-instructor-contact a:hover,
.discipline-detail-footer-actions .discipline-instructor-contact a:hover,
.discipline-detail-intro--shorin .discipline-instructor-contact a:hover,
.discipline-detail-intro--kobudo .discipline-instructor-contact a:hover,
.discipline-detail-intro--shotokan .discipline-instructor-contact a:hover,
.discipline-detail-intro--joga .discipline-instructor-contact a:hover { text-decoration: underline; }
.discipline-list-card .discipline-instructor-contact .contact-link,
.discipline-detail-footer-actions .discipline-instructor-contact .contact-link,
.discipline-detail-intro--shorin .discipline-instructor-contact .contact-link,
.discipline-detail-intro--kobudo .discipline-instructor-contact .contact-link,
.discipline-detail-intro--shotokan .discipline-instructor-contact .contact-link,
.discipline-detail-intro--joga .discipline-instructor-contact .contact-link {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}
.discipline-list-card .discipline-instructor-contact .contact-link .icon,
.discipline-detail-footer-actions .discipline-instructor-contact .contact-link .icon,
.discipline-detail-intro--shorin .discipline-instructor-contact .contact-link .icon,
.discipline-detail-intro--kobudo .discipline-instructor-contact .contact-link .icon,
.discipline-detail-intro--shotokan .discipline-instructor-contact .contact-link .icon,
.discipline-detail-intro--joga .discipline-instructor-contact .contact-link .icon {
    flex-shrink: 0;
    fill: currentColor;
    opacity: 0.9;
}
/* Duże bloki dyscyplin (opis + instruktor) */
.disciplines-blocks { margin-top: 1.5rem; display: flex; flex-direction: column; gap: 1.5rem; }
.discipline-block {
    background: var(--color-bg-alt);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: 1.5rem 1.75rem;
    box-shadow: var(--shadow);
    border-left: 4px solid var(--color-accent);
}
.discipline-block-title { margin: 0 0 0.5rem; font-size: 1.35rem; font-weight: 700; }
.discipline-block-lead { margin: 0 0 0.75rem; font-size: 1rem; line-height: 1.6; color: var(--color-text-muted); }
/* Lead z CMS (TinyMCE): akapity / <br> — bez striptags, które sklejało treść w jeden blok */
.disciplines-page .discipline-block-lead.prose p { margin: 0 0 0.55rem; line-height: 1.55; color: inherit; }
.disciplines-page .discipline-block-lead.prose p:last-child { margin-bottom: 0; }
.disciplines-page .discipline-block-lead.prose ul,
.disciplines-page .discipline-block-lead.prose ol { margin: 0.35rem 0 0.5rem 1.15rem; padding: 0; }
.disciplines-page .discipline-block-lead.prose li { margin: 0.2rem 0; }
.disciplines-page .discipline-block-lead.prose a { color: var(--color-accent); font-weight: 500; text-decoration: none; }
.disciplines-page .discipline-block-lead.prose a:hover { text-decoration: underline; text-underline-offset: 2px; }
.discipline-block-instructor { margin: 0 0 0.75rem; font-size: 0.95rem; color: var(--color-text); }
.discipline-block-link { font-weight: 600; color: var(--color-accent); text-decoration: none; }
.discipline-block-link:hover { text-decoration: underline; }

/* Galeria / slideshow */
.disciplines-gallery { margin-top: 2.5rem; }
.gallery-title { font-size: 1.25rem; margin: 0 0 1rem; }
.slideshow-wrap {
    position: relative;
    max-width: 800px;
    margin: 0 auto;
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow);
    border: 1px solid var(--color-border);
}
.home-slideshow { max-width: 720px; }
/* Z życia dojo – slider na pełną szerokość tekstu, bez ramki */
.section-gallery .slideshow-wrap {
    max-width: none;
    width: 100%;
    margin: 0;
    border: none;
    box-shadow: none;
    border-radius: 0;
}
.slideshow { overflow: hidden; position: relative; }
.slideshow-track {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
}

/* ========== Slider „Z życia dojo” – jak w Co ćwiczymy: slajdy jeden na drugim, tylko .active widoczny (bez przesuwania) ========== */
.section-gallery .home-slideshow-captions .slideshow {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
}
.section-gallery .home-slideshow-captions .slideshow-track {
    position: relative;
    width: 100%;
    height: 100%;
}
.section-gallery .home-slideshow-captions .slideshow-slide {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;
}
.section-gallery .home-slideshow-captions .slideshow-slide.active {
    opacity: 1;
    z-index: 1;
    pointer-events: auto;
}
.section-gallery .home-slideshow-captions .slideshow-slide img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    opacity: 1;
}
.home-slideshow-captions .slideshow-caption {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 0.75rem 1rem;
    margin: 0;
    background: linear-gradient(transparent, rgba(0,0,0,0.85));
    color: #fff;
    font-size: 0.95rem;
    line-height: 1.35;
}
.slideshow-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transition: opacity 0.6s ease;
}
.slideshow-img.active {
    opacity: 1;
    z-index: 1;
}
.slideshow-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 48px;
    height: 48px;
    border: none;
    background: rgba(0,0,0,0.5);
    color: #fff;
    font-size: 1.75rem;
    line-height: 1;
    cursor: pointer;
    border-radius: 50%;
    transition: background 0.2s;
    z-index: 2;
}
.slideshow-btn:hover { background: var(--color-accent); }
.slideshow-prev { left: 0.75rem; }
.slideshow-next { right: 0.75rem; }
.slideshow-dots {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    margin-top: 1rem;
}
.slideshow-dot {
    width: 10px;
    height: 10px;
    border: none;
    border-radius: 50%;
    background: var(--color-border);
    cursor: pointer;
    padding: 0;
    transition: background 0.2s;
}
.slideshow-dot:hover { background: var(--color-text-muted); }
.slideshow-dot.active { background: var(--color-accent); }

.disciplines-subnav { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--color-border); }
.disciplines-subnav .subnav-link { font-weight: 600; color: var(--color-accent); text-decoration: none; }
.disciplines-subnav .subnav-link:hover { text-decoration: underline; }
.org-logos { margin-top: 2.5rem; padding-top: 2rem; border-top: 1px solid var(--color-border); }
.org-logos h2 { font-size: 1.2rem; margin: 0 0 0.5rem; }
.org-logos-intro { margin: 0 0 1.25rem; color: var(--color-text-muted); font-size: 0.95rem; }
.org-logos-grid { display: flex; flex-wrap: wrap; gap: 2rem; align-items: flex-start; }
.org-logo { margin: 0; text-align: center; }
.org-logo img { display: block; width: 120px; height: 120px; object-fit: contain; margin: 0 auto 0.5rem; }
.org-logo figcaption { font-size: 0.9rem; color: var(--color-text-muted); max-width: 180px; line-height: 1.35; }
/* Na stronie aktualności żadne linki nie są niebieskie */
.aktualnosci-page a {
    color: var(--color-text);
}
.aktualnosci-page a:visited {
    color: var(--color-text);
}
.aktualnosci-page a:hover {
    color: var(--color-accent);
}
.aktualnosci-page a:visited:hover {
    color: var(--color-accent);
}
.aktualnosci-page .news-card-link,
.aktualnosci-page .events-more a,
.aktualnosci-page .section-empty a {
    color: var(--color-accent);
}
.aktualnosci-page .news-card-link:hover,
.aktualnosci-page .events-more a:hover,
.aktualnosci-page .section-empty a:hover {
    color: var(--color-accent-hover);
}

.aktualnosci-page .aktualnosci-section { margin-top: 2.5rem; padding-top: 1.75rem; border-top: 1px solid var(--color-border); }
.aktualnosci-page .aktualnosci-section:first-of-type { margin-top: 0; padding-top: 0; border-top: none; }
/* Karty bloku /aktualnosci — bez wewnętrznej kreski nad kolumnami */
.aktualnosci-block .aktualnosci-section {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
}
.aktualnosci-block .section-title {
    font-size: 1.35rem;
    min-height: 2.8rem;
    display: flex;
    align-items: center;
    margin-bottom: 1rem;
}
.aktualnosci-page .section-title { font-size: 1.35rem; margin: 0 0 1rem; color: var(--color-text); }
.aktualnosci-page .section-title a { color: var(--color-text); }
.aktualnosci-page .section-title a:hover { color: var(--color-accent); }
.aktualnosci-page .section-subtitle { font-size: 1rem; margin: 1.25rem 0 0.5rem; color: var(--color-text-muted); }

/* Karty najnowszych aktualności – pełna treść na stronie */
.news-cards { display: flex; flex-direction: column; gap: 1.5rem; }
.news-card {
    background: var(--color-card-bg);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow);
}
.news-card-header { padding: 1rem 1.25rem 0.5rem; border-bottom: 1px solid var(--color-border); }
.news-card-date {
    display: block;
    font-size: 0.85rem;
    color: var(--color-text-muted);
    margin-bottom: 0.35rem;
}
.news-card-title { margin: 0; font-size: 1.2rem; font-weight: 700; line-height: 1.3; }
.news-card-title a { color: var(--color-text); text-decoration: none; font-weight: 700; }
.news-card-title a:hover { color: var(--color-accent); }
.news-card-title a:visited { color: var(--color-text); }
.news-card-title a:visited:hover { color: var(--color-accent); }

/* Hashtagi przy wpisach – tylko delikatnie widoczne */
.item-tags {
    font-size: 0.75rem;
    color: var(--color-text-muted);
    margin-top: 0.25rem;
    line-height: 1.4;
    opacity: 0.65;
}
.item-tags .item-tag {
    display: inline-block;
    margin-right: 0.35em;
}
.item-tags-inline .item-tag::after { content: ','; }
.item-tags-inline .item-tag:last-child::after { content: none; }
.news-archive-list .item-tags-inline { margin-left: 0.35rem; }

.news-card-body {
    padding: 1rem 1.25rem;
    font-size: 0.95rem;
    line-height: 1.6;
    color: var(--color-text);
}
.news-card-body p:first-child { margin-top: 0; }
.news-card-body p:last-child { margin-bottom: 0; }
.news-card-footer { padding: 0.75rem 1.25rem; background: var(--color-bg); border-top: 1px solid var(--color-border); }
.news-card-link {
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--color-accent);
    text-decoration: none;
}
.news-card-link:hover { text-decoration: underline; }
.news-card-footer .news-card-link + .news-card-link { margin-left: 1rem; }
.news-card-gallery-browse .news-card-link + .news-card-link { margin-left: 1rem; }
.news-card-gallery-preview {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}
@media (max-width: 500px) {
    .news-card-gallery-preview { grid-template-columns: repeat(3, 1fr); }
}
.gallery-preview-thumb {
    display: block;
    aspect-ratio: 1;
    border-radius: 0;
    overflow: hidden;
    border: 1px solid var(--color-border);
}
.gallery-preview-thumb img { width: 100%; height: 100%; object-fit: cover; }

.event-gallery-preview {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.5rem;
}
.event-gallery-preview .gallery-preview-thumb { flex-shrink: 0; width: 48px; height: 48px; }
.event-gallery-preview .news-card-link { margin-left: 0.25rem; }

.news-gallery { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--color-border); }
.news-gallery h2 { font-size: 1.15rem; margin: 0 0 0.75rem; color: var(--color-text); }
.gallery-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 0.75rem;
}
.gallery-item {
    display: block;
    aspect-ratio: 1;
    border-radius: var(--radius);
    overflow: hidden;
    border: 1px solid var(--color-border);
}
.gallery-item img { width: 100%; height: 100%; object-fit: cover; }
.event-title-link {
    color: var(--color-text);
    text-decoration: none;
    font-weight: 700;
}
.event-title-link:hover {
    color: var(--color-accent);
}
.event-title-link:visited {
    color: var(--color-text);
}
.event-title-link:visited:hover {
    color: var(--color-accent);
}

/* Archiwum – lista + stronnicowanie */
.news-archive-list { list-style: none; padding: 0; margin: 0 0 1.5rem; }
.news-archive-item {
    display: flex;
    align-items: baseline;
    gap: 1rem;
    padding: 0.6rem 0;
    border-bottom: 1px solid var(--color-border);
    flex-wrap: wrap;
}
.news-archive-item .news-archive-date {
    flex-shrink: 0;
    font-size: 0.9rem;
    color: var(--color-text-muted);
}
.news-archive-item a { color: var(--color-text); text-decoration: none; font-weight: 500; }
.news-archive-item a:hover { color: var(--color-accent); }

.pagination { margin-top: 1rem; }
.pagination-list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    list-style: none;
    padding: 0;
    margin: 0;
}
.pagination-list a,
.pagination-list .pagination-current {
    display: inline-block;
    min-width: 2.25rem;
    padding: 0.4rem 0.6rem;
    text-align: center;
    font-size: 0.95rem;
    text-decoration: none;
    color: var(--color-text);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: var(--color-bg-alt);
}
.pagination-list a:hover { border-color: var(--color-accent); color: var(--color-accent); background: var(--color-accent-light); }
.pagination-current { font-weight: 600; border-color: var(--color-accent); color: var(--color-accent); background: var(--color-accent-light); }
.pagination-prev,
.pagination-next { min-width: auto; }

/* Kompaktowa paginacja (np. 53 strony) */
.pagination-compact { margin-top: 1.25rem; }
.pagination-compact .pagination-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}
.pagination-compact .pagination-btn {
    padding: 0.45rem 0.9rem;
    font-size: 0.9rem;
    color: var(--color-accent);
    text-decoration: none;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: var(--color-bg-alt);
}
.pagination-compact .pagination-btn:hover { border-color: var(--color-accent); background: var(--color-accent-light); }
.pagination-compact .pagination-info { font-size: 0.95rem; color: var(--color-text-muted); }
.pagination-compact .pagination-jump {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    list-style: none;
    padding: 0;
    margin: 0;
}
.pagination-compact .pagination-jump a,
.pagination-compact .pagination-jump .pagination-current {
    display: inline-block;
    min-width: 2rem;
    padding: 0.35rem 0.5rem;
    text-align: center;
    font-size: 0.9rem;
    text-decoration: none;
    color: var(--color-text);
    border: 1px solid var(--color-border);
    border-radius: 0;
    background: var(--color-bg-alt);
}
.pagination-compact .pagination-jump a:hover { border-color: var(--color-accent); color: var(--color-accent); }
.pagination-compact .pagination-jump .pagination-current { font-weight: 600; border-color: var(--color-accent); color: var(--color-accent); background: var(--color-accent-light); }
.pagination-compact .pagination-ellipsis { padding: 0 0.25rem; font-size: 0.9rem; color: var(--color-text-muted); }

/* Paginacja w jednej linii: info + poprz./nast. + numery w jednym rzędzie (wąski ekran: przewijanie poziome) */
.pagination--single-row.pagination-compact .pagination-compact-row {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    gap: 0.5rem 0.75rem;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 0.2rem;
}
.pagination--single-row.pagination-compact .pagination-inner {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
    margin-bottom: 0;
    flex-shrink: 0;
    white-space: nowrap;
}
.pagination--single-row.pagination-compact .pagination-jump {
    flex-wrap: nowrap;
    flex-shrink: 0;
    margin: 0;
    white-space: nowrap;
}
.pagination--single-row.pagination-compact .pagination-jump li {
    flex-shrink: 0;
}

/* /aktualnosci — dwa bloki: (aktualne | nadchodzące), potem (archiwum | archiwum wydarzeń) */
.aktualnosci-page-inner {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding-bottom: 0.5rem;
}
/* Bez „pudełek” — układ płaski; archiwum: linia + lekko inne tło na szerokość kontenera */
.aktualnosci-block {
    padding: 0;
    margin: 0;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
}
.aktualnosci-block--current {
    padding-bottom: 0.25rem;
}
/* Osobna strona /aktualnosci/archiwum */
.news-archive-page .news-archive-back { margin: 0 0 0.5rem; font-size: 0.95rem; }
.news-archive-page .news-archive-back a { color: var(--color-accent); text-decoration: none; font-weight: 600; }
.news-archive-page .news-archive-back a:hover { text-decoration: underline; }
.news-archive-page h1 { margin: 0 0 1rem; font-size: 1.75rem; color: var(--color-text); }
.news-archive-page .news-archive-list--full { max-width: none; }
/* Stała szerokość kolumny dat — tytuły w jednej linii pionowej; wystarczy na „31 października YYYY” */
.news-archive-page .news-archive-item {
    display: grid;
    grid-template-columns: 11.75rem minmax(0, 1fr);
    gap: 0.35rem 1rem;
    align-items: baseline;
    flex-wrap: nowrap;
}
.news-archive-page .news-archive-item .news-archive-date {
    font-variant-numeric: tabular-nums;
}
@media (max-width: 520px) {
    .news-archive-page .news-archive-item {
        grid-template-columns: 1fr;
        gap: 0.2rem 0;
    }
}
.aktualnosci-block--archive {
    margin-top: 1.35rem;
    padding-top: 1.15rem;
    padding-bottom: 1.35rem;
    border-top: 1px solid var(--color-border);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65);
    background: #f0ebe3;
    margin-left: calc(-1 * var(--space-lg));
    margin-right: calc(-1 * var(--space-lg));
    padding-left: var(--space-lg);
    padding-right: var(--space-lg);
}
.aktualnosci-block--archive .aktualnosci-grid-two {
    gap: 1.35rem 2.5rem;
}
.aktualnosci-grid-two {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem 2.5rem;
    align-items: start;
}
@media (max-width: 900px) {
    .aktualnosci-grid-two { grid-template-columns: 1fr; }
}
.aktualnosci-col {
    min-width: 0;
}
/* Kolumna wydarzeń na /aktualnosci – nagłówki + timeline (wspólne style .events-timeline-root) */
.aktualnosci-wydarzenia-side .section-title {
    margin-top: 0;
    margin-bottom: 1rem;
    font-weight: 700;
    color: var(--color-text);
}
.aktualnosci-wydarzenia-side .events-timeline-root {
    margin-bottom: 0.25rem;
}
/*
 * /aktualnosci — kolumna wydarzeń: pierwszy rząd = Termin + Miejsce | miniatura (wyrównanie do dołu rzędu);
 * tytuł, zajawka i link na pełną szerokość karty. Strona główna i /wydarzenia bez .aktualnosci-wydarzenia-side — bez zmian.
 */
.aktualnosci-wydarzenia-side .home-events-timeline-panel-main {
    display: contents;
}
.aktualnosci-wydarzenia-side .home-events-timeline-panel-inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: 1rem;
    row-gap: 0.75rem;
    align-items: start;
}
.aktualnosci-wydarzenia-side .home-events-timeline-meta {
    order: 1;
    grid-column: 1;
    grid-row: 1;
    margin-bottom: 0;
    align-self: end;
}
.aktualnosci-wydarzenia-side .home-events-timeline-thumb {
    order: 2;
    grid-column: 2;
    grid-row: 1;
    align-self: end;
}
.aktualnosci-wydarzenia-side .home-events-timeline-title {
    order: 3;
    grid-column: 1 / -1;
    margin-top: 0;
}
.aktualnosci-wydarzenia-side .home-events-timeline-teaser {
    order: 4;
    grid-column: 1 / -1;
}
.aktualnosci-wydarzenia-side .home-events-timeline-link {
    order: 5;
    grid-column: 1 / -1;
}
.aktualnosci-wydarzenia-side .home-events-timeline-gallery {
    order: 6;
    grid-column: 1 / -1;
}
.aktualnosci-wydarzenia-side .home-events-timeline-panel-inner:not(:has(> .home-events-timeline-thumb)) .home-events-timeline-meta {
    grid-column: 1 / -1;
    grid-row: 1;
}
/* Miniatura w kolumnie — nie dominuje nad Termin/Miejsce */
.aktualnosci-wydarzenia-side .events-timeline-root .home-events-timeline-thumb img {
    width: min(150px, 100%);
    max-width: 150px;
    max-height: 7.5rem;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    object-position: center;
}
@media (max-width: 520px) {
    .aktualnosci-wydarzenia-side .home-events-timeline-panel-inner {
        grid-template-columns: 1fr;
    }
    .aktualnosci-wydarzenia-side .home-events-timeline-meta {
        grid-column: 1;
        grid-row: 1;
        align-self: start;
    }
    .aktualnosci-wydarzenia-side .home-events-timeline-thumb {
        grid-column: 1;
        grid-row: 2;
        justify-self: center;
        align-self: start;
    }
    .aktualnosci-wydarzenia-side .home-events-timeline-title {
        grid-row: 3;
    }
}
.aktualnosci-wydarzenia-archive .events-timeline-root--past {
    margin-top: 0.15rem;
}
/* Archiwum (3 mies.) – stonowany wariant osi czasu */
.events-timeline-root--past .home-events-timeline--past .home-events-calendar-day {
    color: #7a6a5a;
}
.events-timeline-root--past .home-events-timeline--past .home-events-timeline-dot {
    background: #8b7560;
    box-shadow: 0 0 0 1px rgba(107, 93, 74, 0.22);
}
.events-timeline-root--past .home-events-timeline--past .home-events-timeline-panel {
    border-left-color: rgba(122, 106, 90, 0.85);
}
.events-timeline-root--past .home-events-timeline--past .home-events-meta-block--when {
    background: rgba(107, 93, 74, 0.08);
    border-color: rgba(107, 93, 74, 0.2);
}
/* W węższej kolumnie 50% nieco zwarte typografie timeline */
@media (min-width: 901px) {
    .aktualnosci-wydarzenia-side .events-timeline-root .home-events-timeline-panel {
        padding: 1rem 1.1rem 1.1rem;
    }
    .aktualnosci-wydarzenia-side .events-timeline-root .home-events-timeline-title {
        font-size: 1.08rem;
    }
    .aktualnosci-wydarzenia-side .events-timeline-root .home-events-meta-value {
        font-size: 0.88rem;
    }
}
.events-archive-inline .event-past .event-meta { color: #7a756c; }
.events-more { margin-top: 0.75rem; font-size: 0.9rem; }
.events-more a { color: var(--color-accent); text-decoration: none; font-weight: 500; }
.events-more a:hover { text-decoration: underline; }
.event-desc-short { font-size: 0.9rem; color: var(--color-text-muted); }
.news-cards-compact .news-card { margin-bottom: 1.25rem; }
.news-cards-compact .news-card:last-child { margin-bottom: 0; }
/* Starsze wpisy na liście „Najnowsze” – skrót; ostatni (najstarszy w zestawieniu) – pełna treść i wyróżnienie */
.news-cards-compact .news-card:not(.news-card--featured-tail) .news-card-body {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 10;
    overflow: hidden;
}
.news-card.news-card--featured-tail {
    margin-top: 1.5rem;
    padding: 0;
    overflow: hidden;
    border: 1px solid rgba(198, 40, 40, 0.22);
    border-left: 4px solid var(--color-accent);
    background: linear-gradient(165deg, #fffefb 0%, #faf7f2 55%, #f5f1ea 100%);
    box-shadow: 0 6px 28px rgba(45, 40, 38, 0.08);
}
.news-cards .news-card.news-card--featured-tail:first-child {
    margin-top: 0;
}
.news-card--featured-tail .news-card-header {
    padding: 1.1rem 1.35rem 0.65rem;
    border-bottom: 1px solid rgba(232, 228, 221, 0.9);
    background: rgba(255, 255, 255, 0.55);
}
.news-card--featured-tail .news-card-body {
    padding: 1.15rem 1.35rem 1.2rem;
    font-size: 1rem;
    line-height: 1.65;
}
.news-card--featured-tail .news-card-footer {
    padding: 0.85rem 1.35rem;
    background: rgba(255, 255, 255, 0.45);
}
.news-card--featured-tail .news-card-date {
    font-weight: 700;
    color: var(--color-brown-muted);
}
.aktualnosci-latest .section-title { margin-top: 0; }

/* /aktualnosci — ogłoszenia: wyraźniejsze karty (nie zlewają się z tłem), wyrównanie z kolumną wydarzeń */
.aktualnosci-latest .news-cards.news-cards-compact {
    gap: 1.35rem;
}
.aktualnosci-latest .news-card:not(.news-card--featured-tail) {
    background: linear-gradient(165deg, #fffefb 0%, #f5f1ea 55%, #efe9df 100%);
    border-color: rgba(107, 93, 74, 0.22);
    border-left: 4px solid var(--color-accent);
    box-shadow: 0 3px 14px rgba(45, 40, 38, 0.07);
}
.aktualnosci-latest .news-card:not(.news-card--featured-tail) .news-card-header {
    background: rgba(255, 255, 255, 0.65);
    border-bottom-color: rgba(198, 40, 40, 0.12);
}
.aktualnosci-latest .news-card:not(.news-card--featured-tail) .news-card-body {
    background: rgba(255, 255, 255, 0.35);
}
.aktualnosci-latest .news-card:not(.news-card--featured-tail) .news-card-footer {
    background: rgba(250, 247, 242, 0.95);
    border-top-color: rgba(107, 93, 74, 0.15);
}

/* Instruktorzy (/instruktorzy) — nowoczesne karty: typografia, światło–cień, bez ozdobników */
.instruktorzy-page .instructors-intro {
    margin: 0 0 2rem;
    max-width: 52rem;
    color: var(--color-text);
    line-height: 1.65;
    font-size: 1.0625rem;
}
.instruktorzy-page .instructors-list {
    margin-top: 0.25rem;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(1.25rem, 2.5vw, 1.75rem);
    align-items: stretch;
}
@media (max-width: 1100px) {
    .instruktorzy-page .instructors-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 640px) {
    .instruktorzy-page .instructors-list {
        grid-template-columns: 1fr;
    }
}

.instructor-card {
    background: #fff;
    border: 1px solid rgba(45, 42, 38, 0.08);
    border-radius: 14px;
    padding: 0;
    overflow: hidden;
    box-shadow:
        0 1px 2px rgba(45, 42, 38, 0.04),
        0 10px 40px rgba(45, 42, 38, 0.07);
    max-width: 52rem;
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
}
.instruktorzy-page .instructor-card:hover {
    border-color: rgba(45, 42, 38, 0.12);
    box-shadow:
        0 2px 6px rgba(45, 42, 38, 0.06),
        0 18px 48px rgba(45, 42, 38, 0.1);
}
.instruktorzy-page .instructor-card {
    max-width: none;
    min-width: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
}
.instruktorzy-page .instructor-card-bio {
    flex: 1 1 auto;
}

.instructor-card-header {
    display: flex;
    align-items: center;
    gap: 1.15rem;
    padding: 1.35rem 1.5rem 1.25rem;
    background: #fff;
    border-bottom: 1px solid rgba(45, 42, 38, 0.07);
}
.instructor-photo-slot {
    flex-shrink: 0;
    width: 88px;
    height: 88px;
    border-radius: 50%;
    overflow: hidden;
    border: none;
    outline: none;
    outline-offset: 0;
    background: #e8e6e3;
    box-shadow: 0 0 0 3px #fff, 0 0 0 4px rgba(45, 42, 38, 0.09);
}
.instructor-photo-slot.is-empty {
    display: flex;
    align-items: center;
    justify-content: center;
}
.instructor-photo-slot.is-empty::after {
    content: '';
    width: 34px;
    height: 34px;
    opacity: 0.2;
    background: currentColor;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5'%3E%3Ccircle cx='12' cy='8' r='3.5'/%3E%3Cpath d='M4 20c1.8-4 6.2-6 8-6s6.2 2 8 6'/%3E%3C/svg%3E") center / contain no-repeat;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5'%3E%3Ccircle cx='12' cy='8' r='3.5'/%3E%3Cpath d='M4 20c1.8-4 6.2-6 8-6s6.2 2 8 6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.instructor-photo {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.instructor-photo.is-hidden { display: none; }
.instructor-header-text { min-width: 0; flex: 1; }
.instructor-card-name {
    margin: 0;
    font-size: clamp(1.15rem, 2.2vw, 1.35rem);
    font-weight: 700;
    color: var(--color-text);
    letter-spacing: -0.02em;
    line-height: 1.22;
}

/* Stopnie / „Prowadzi” — wyraźniejszy panel niż biały nagłówek i tło strony */
.instructor-card-ranks-belt {
    padding: 1rem 1.5rem 1.1rem;
    background: linear-gradient(180deg, #e8e5df 0%, #ddd9d2 100%);
    color: var(--color-text);
    border-top: 1px solid rgba(45, 42, 38, 0.1);
    border-bottom: 1px solid rgba(45, 42, 38, 0.12);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.35),
        0 1px 0 rgba(255, 255, 255, 0.4);
}
.instructor-rank-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.instructor-rank-list li {
    margin: 0;
    padding: 0 0 0 1rem;
    position: relative;
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: 0;
    color: #3f3b34;
}
.instructor-rank-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--color-accent);
    opacity: 0.85;
}
.instructor-card-ranks-belt--lead .instructor-ranks-lead {
    margin: 0;
    font-size: 0.875rem;
    line-height: 1.55;
    font-weight: 500;
    color: #4a453d;
}
.instructor-card-ranks-belt--lead .instructor-ranks-lead strong {
    font-weight: 700;
    color: var(--color-text);
    letter-spacing: 0;
}
.instructor-card-main { display: block; }
.instructor-card-bio {
    padding: 1.35rem 1.5rem 1.4rem;
    background: #fff;
}
.instructor-card-bio > p:first-child { margin-top: 0; }
/* Stare wpisy w CMS z własnym <h2> – ukryj duplikat nagłówka obok belki */
.instructor-card-bio > h2:first-child { display: none; }
.instructor-card h3 { font-size: 0.9375rem; margin: 1.1rem 0 0.4rem; color: var(--color-text-muted); font-weight: 600; }
.instructor-card-bio p,
.instructor-card .instructor-card-bio p { margin: 0 0 0.8rem; font-size: 0.96875rem; line-height: 1.68; color: var(--color-text); }
.instructor-card-bio p:last-child { margin-bottom: 0; }
.instructor-card-ranks-belt a {
    color: var(--color-accent);
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-color: rgba(198, 40, 40, 0.35);
}
.instructor-card-ranks-belt a:hover {
    color: var(--color-accent-hover);
    text-decoration-color: rgba(160, 28, 28, 0.5);
}

.instructor-card .instructor-contact {
    margin: 0;
    padding: 1.15rem 1.5rem 1.4rem;
    border-top: 1px solid rgba(45, 42, 38, 0.07);
    font-size: 0.9375rem;
    color: var(--color-text-muted);
    background: #fafaf9;
}
.instructor-contact-heading {
    margin: 0 0 0.7rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-text-muted);
    line-height: 1.35;
    letter-spacing: 0.02em;
}
.instructor-contact-rows {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}
.instructor-contact-rows li {
    margin: 0;
    padding: 0;
}
.instructor-contact-rows .contact-link {
    display: grid;
    grid-template-columns: 2rem 1fr;
    align-items: center;
    column-gap: 0.6rem;
    text-decoration: none;
    color: var(--color-text);
    font-weight: 500;
    line-height: 1.4;
    padding: 0.5rem 0.65rem;
    margin: 0 -0.65rem;
    border-radius: 10px;
    transition: background 0.15s ease, color 0.15s ease;
}
.instructor-contact-rows .contact-link:hover {
    background: rgba(45, 42, 38, 0.05);
    color: var(--color-accent);
}
.instructor-contact-rows .contact-link:hover .contact-link-text {
    text-decoration: none;
}
.contact-link-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 1.5rem;
    color: var(--color-text-muted);
    transition: color 0.15s ease;
}
.instructor-contact-rows .contact-link:hover .contact-link-icon {
    color: var(--color-accent);
}
.instructor-contact-rows .contact-link-icon .icon {
    display: block;
    width: 1.25rem;
    height: 1.25rem;
    flex-shrink: 0;
    fill: currentColor;
}
.instructor-contact-rows .contact-messenger .contact-link-icon .icon {
    width: 1.28rem;
    height: 1.28rem;
    transform: translateY(0.5px);
}
.instructor-contact-rows .contact-link-text {
    min-width: 0;
    word-break: break-word;
}
.instructor-card .instructor-card-bio a {
    color: var(--color-accent);
    text-underline-offset: 2px;
}
.instructor-card .instructor-card-bio a:hover {
    color: var(--color-accent-hover);
}
.contact-link { display: inline-flex; align-items: center; gap: 0.35rem; }
.contact-link .icon { flex-shrink: 0; fill: currentColor; vertical-align: middle; }
.discipline-instructor-contact .contact-link { margin-right: 0.25rem; }
.discipline-instructor-contact .contact-link:not(:last-of-type) { margin-right: 0.5rem; }
.instructor-card strong { color: var(--color-text); }
@media (max-width: 480px) {
    .instructor-card-header {
        flex-direction: column;
        align-items: center;
        text-align: center;
        padding: 1.25rem 1.15rem 1.15rem;
    }
    .instructor-photo-slot { margin: 0 auto; }
}
.breadcrumb { font-size: 0.9rem; margin-bottom: 0.75rem; color: var(--color-text-muted); }
.breadcrumb a { color: var(--color-accent); text-decoration: none; }
.breadcrumb a:hover { text-decoration: underline; }

/* Podstrony „Co ćwiczymy” (/co-cwiczymy/…) — linki w treści jak reszta serwisu, nie domyślny niebieski */
.discipline-detail-page a {
    color: var(--color-text);
    text-decoration: none;
}
.discipline-detail-page a:visited {
    color: var(--color-text);
}
.discipline-detail-page a:hover {
    color: var(--color-accent);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.discipline-detail-page a:visited:hover {
    color: var(--color-accent);
}

/* Treść z edytora CMS: linki domyślnie w kolorze akcentu (#c62828), nie czarne (:not(.btn) — CTA z layoutu) */
.page-content .prose a:not(.btn),
.page-content .prose a:not(.btn):visited,
.page-content article .body a:not(.btn),
.page-content article .body a:not(.btn):visited,
.page-content .news-card-body a:not(.btn),
.page-content .news-card-body a:not(.btn):visited,
.page-content .disciplines-intro a:not(.btn),
.page-content .disciplines-intro a:not(.btn):visited,
.page-content.discipline-detail-page .kobudo-kata-groups a:not(.btn),
.page-content.discipline-detail-page .kobudo-kata-groups a:not(.btn):visited,
.page-content.discipline-detail-page .kata-group a:not(.btn),
.page-content.discipline-detail-page .kata-group a:not(.btn):visited {
    color: var(--color-accent);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}
.page-content .prose a:not(.btn):hover,
.page-content .prose a:not(.btn):visited:hover,
.page-content article .body a:not(.btn):hover,
.page-content article .body a:not(.btn):visited:hover,
.page-content .news-card-body a:not(.btn):hover,
.page-content .news-card-body a:not(.btn):visited:hover,
.page-content .disciplines-intro a:not(.btn):hover,
.page-content .disciplines-intro a:not(.btn):visited:hover,
.page-content.discipline-detail-page .kobudo-kata-groups a:not(.btn):hover,
.page-content.discipline-detail-page .kobudo-kata-groups a:not(.btn):visited:hover,
.page-content.discipline-detail-page .kata-group a:not(.btn):hover,
.page-content.discipline-detail-page .kata-group a:not(.btn):visited:hover {
    color: var(--color-accent-hover);
    text-decoration-thickness: 2px;
}

.discipline-detail-content { margin-top: 1rem; }
.discipline-detail-content h2 { font-size: 1.2rem; margin: 1.25rem 0 0.5rem; }
.discipline-detail-content h2:first-child { margin-top: 0; }
.discipline-detail-content p { margin: 0 0 0.75rem; line-height: 1.65; }
.event-detail-hero {
    margin: 0 0 1.35rem;
    padding: 0;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    overflow: hidden;
    background: var(--color-bg-alt);
    box-shadow: var(--shadow);
}
.event-detail-hero-link {
    display: block;
    line-height: 0;
}
.event-detail-hero-link:hover .event-detail-hero-img {
    opacity: 0.96;
}
.event-detail-hero-img {
    display: block;
    width: 100%;
    height: clamp(11rem, 36vw, 26rem);
    object-fit: cover;
    object-position: center;
}
.event-detail-back {
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--color-border);
}
.event-detail-back .btn-outline,
.event-detail-back .btn-outline:visited {
    color: var(--color-accent);
}
.event-detail-back .btn-outline:hover {
    color: var(--color-accent);
}

.discipline-section { margin-top: 2.5rem; padding-top: 1.75rem; border-top: 1px solid var(--color-border); }
.discipline-section-title { font-size: 1.35rem; margin: 0 0 1rem; color: var(--color-text); font-weight: 700; }
.discipline-section p { margin: 0 0 0.85rem; line-height: 1.65; }
.discipline-section p:last-child { margin-bottom: 0; }
.discipline-figure { margin: 1.25rem 0; }
.discipline-figure figcaption { margin-top: 0.5rem; font-size: 0.9rem; color: var(--color-text-muted); }
.discipline-figure-inline { display: flex; flex-direction: column; align-items: flex-start; max-width: 350px; }
.discipline-figure-inline .discipline-img { width: 100%; height: auto; display: block; border-radius: 0; box-shadow: 0 4px 12px rgba(0,0,0,0.2); }
.discipline-figure-full { max-width: 100%; }
.discipline-figure-full .discipline-img { max-width: 100%; height: auto; display: block; border-radius: 0; box-shadow: 0 2px 8px rgba(0,0,0,0.15); }
/* Genealogia Mukenkai (Shorin Ryu): pełna szerokość bloku treści, bez cienia — float logo nie zwęża figury */
.discipline-detail-page .discipline-genealogy-chart {
    clear: both;
    width: 100%;
    max-width: none;
    margin: 1.5rem 0 0;
}
.discipline-detail-page .discipline-genealogy-chart .discipline-img {
    width: 100%;
    max-width: 100%;
    height: auto;
    box-shadow: none;
}
.shorin-kaicho-photo { margin-top: 1.5rem; }
.discipline-genealogy-list { margin-top: 1rem; }
.discipline-genealogy-list p { margin-bottom: 0.5rem; font-size: 0.95rem; }
.discipline-genealogy-list p:last-child { margin-bottom: 0; }
.discipline-shorin-intro .discipline-section-title { margin-top: 0; }
/* Pierwsza sekcja: bez padding-top: 0 na kartach — inaczej nagłówek „O stylu” klei się do góry (karty mają .discipline-card). */
.discipline-detail-page .discipline-section:first-of-type {
    margin-top: 1.25rem;
    border-top: none;
}
.discipline-detail-page .discipline-section:first-of-type:not(.discipline-card) {
    padding-top: 0;
}

/* Hero: Shorin Ryu = tekst + kolumna (zdjęcie + logo); Kobudo = zdjęcie Thomasa na szer. kontenera (pod kartą „Co to jest”) */
.discipline-detail-page .discipline-hero { padding-top: 0; border-top: none; margin-top: 1rem; }
.discipline-detail-page .kobudo-hero-text { margin-bottom: 0; }
.discipline-detail-page .kobudo-hero-figure.discipline-figure-full {
    margin: 1.15rem 0 1.25rem;
    position: relative;
    max-width: 100%;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.12);
}
.discipline-detail-page .kobudo-hero-figure .discipline-img {
    width: 100%;
    height: auto;
    display: block;
    box-shadow: none;
}

/* Sekcja Shimbukan: tekst + zdjęcie Kaicho (tinbe / rochin) po prawej */
.discipline-detail-page .kobudo-shimbukan-section .discipline-section-title { margin-bottom: 0.65rem; }
.discipline-detail-page .kobudo-shimbukan-layout {
    display: grid;
    grid-template-columns: 1fr minmax(200px, 300px);
    gap: 1.75rem 2rem;
    align-items: start;
    margin-top: 0.15rem;
}
.discipline-detail-page .kobudo-shimbukan-layout--text-only {
    grid-template-columns: 1fr;
}
.discipline-detail-page .kobudo-shimbukan-text { min-width: 0; }
.discipline-detail-page .kobudo-shimbukan-text .discipline-subsection-title { margin-top: 1.35rem; }
.discipline-detail-page .kobudo-shimbukan-photo {
    margin: 0;
    position: sticky;
    top: 1rem;
}
.discipline-detail-page .kobudo-shimbukan-photo .discipline-img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 4px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.18);
}
.discipline-detail-page .kobudo-shimbukan-photo figcaption {
    margin-top: 0.45rem;
    font-size: 0.85rem;
    color: var(--color-text-muted);
    line-height: 1.4;
}
@media (max-width: 720px) {
    .discipline-detail-page .kobudo-shimbukan-layout:not(.kobudo-shimbukan-layout--text-only) {
        grid-template-columns: 1fr;
    }
    .discipline-detail-page .kobudo-shimbukan-photo {
        position: static;
        max-width: 320px;
        margin: 1rem auto 0;
    }
}

.discipline-detail-page .discipline-hero-wrap {
    display: grid;
    grid-template-columns: 1fr minmax(260px, 380px);
    gap: 2rem;
    align-items: start;
}
.discipline-detail-page .discipline-hero-wrap--single {
    grid-template-columns: 1fr;
}
.discipline-detail-page .discipline-akamine-wrap {
    margin-top: 0.5rem;
    margin-bottom: 0.25rem;
}
.discipline-detail-page .discipline-akamine-wrap .discipline-subsection-title {
    margin-top: 0;
}
/* Pełna szerokość kolumny jak tekst „O stylu” / historia (bez wąskiego 800px) */
.discipline-detail-shorin-slideshow {
    width: 100%;
    max-width: none;
    margin: 0 0 2rem;
}
.discipline-shorin-about .discipline-detail-shorin-slideshow--in-about {
    margin: 1.35rem 0 0;
}
.discipline-detail-shorin-slideshow .slideshow-wrap {
    max-width: none;
    width: 100%;
    margin-left: 0;
    margin-right: 0;
}

/* Shorin Ryu — slajd z figure + podpis (jak „Z życia dojo”) */
.discipline-detail-shorin-slideshow .discipline-shorin-slideshow-captions .slideshow {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
}
.discipline-detail-shorin-slideshow .discipline-shorin-slideshow-captions .slideshow-track {
    position: relative;
    width: 100%;
    height: 100%;
}
.discipline-detail-shorin-slideshow .discipline-shorin-slideshow-captions .slideshow-slide {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;
}
.discipline-detail-shorin-slideshow .discipline-shorin-slideshow-captions .slideshow-slide.active {
    opacity: 1;
    z-index: 1;
    pointer-events: auto;
}
.discipline-detail-shorin-slideshow .discipline-shorin-slideshow-captions .slideshow-slide .slideshow-img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    opacity: 1;
}
.discipline-detail-shorin-slideshow .discipline-shorin-slideshow-captions .slideshow-caption {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 0.75rem 1rem;
    margin: 0;
    background: linear-gradient(transparent, rgba(0, 0, 0, 0.85));
    color: #fff;
    font-size: 0.95rem;
    line-height: 1.35;
}

.discipline-detail-page .discipline-hero-text { min-width: 0; }
.discipline-detail-page .discipline-lead {
    font-size: inherit;
    line-height: 1.65;
    color: var(--color-text);
    margin: 0 0 0.85rem;
}
.discipline-detail-page .discipline-hero-text p {
    font-size: inherit;
    line-height: 1.65;
    margin: 0 0 0.85rem;
}
.discipline-detail-page .discipline-hero-text p:last-child { margin-bottom: 0; }
.discipline-detail-page .discipline-hero-side {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    position: sticky;
    top: 1rem;
}
.discipline-detail-page .discipline-hero-photo { margin: 0; }
.discipline-detail-page .discipline-hero-photo .discipline-img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 0;
    box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}
.discipline-detail-page .discipline-hero-photo figcaption,
.discipline-detail-page .discipline-org-logo-block figcaption {
    margin-top: 0.4rem;
    font-size: 0.875rem;
    color: var(--color-text-muted);
}
.discipline-detail-page .kobudo-hero-figure figcaption.kobudo-hero-photo-caption {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    margin: 0;
    padding: 1.35rem 0.85rem 0.55rem;
    font-size: 0.88rem;
    font-style: italic;
    font-weight: 500;
    letter-spacing: 0.02em;
    text-align: center;
    line-height: 1.35;
    color: #fff;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.9);
    background: linear-gradient(to top, rgba(0, 0, 0, 0.62) 0%, rgba(0, 0, 0, 0.2) 55%, transparent 100%);
    box-sizing: border-box;
}
.discipline-detail-page .discipline-org-logo-block {
    margin: 0;
    padding: 0.75rem;
    background: var(--color-bg);
    border-radius: 0;
    text-align: center;
}
.discipline-detail-page .discipline-org-logo-block img {
    display: block;
    width: 80px;
    height: 80px;
    margin: 0 auto;
    object-fit: contain;
}
@media (max-width: 720px) {
    .discipline-detail-page .discipline-hero-wrap { grid-template-columns: 1fr; gap: 1.5rem; }
    .discipline-detail-page .discipline-hero-side { position: static; max-width: 400px; }
}
/* Wspólna karta sekcji – spójność między wszystkimi „Czytaj więcej” */
.discipline-detail-page .discipline-card {
    background: var(--color-card-bg);
    border: 1px solid var(--color-border);
    border-radius: 0;
    padding: 1.5rem 1.75rem;
    margin-top: 2rem;
    border-top: none;
}
.discipline-detail-page .discipline-card .discipline-section-title,
.discipline-detail-page .discipline-card .kobudo-weapons-title { margin-top: 0; }
/* Logo organizacji – tekst opływa (float) */
.discipline-org-logo-float {
    float: right;
    margin: 0 0 1rem 1.25rem;
}
.discipline-org-logo-float img {
    display: block;
    width: 100px;
    height: 100px;
    object-fit: contain;
}
@media (max-width: 480px) {
    .discipline-org-logo-float { float: none; margin: 0 0 1rem; }
}
.discipline-org-section { overflow: auto; }
.discipline-subsection-title { font-size: 1.1rem; margin: 1.5rem 0 0.5rem; color: var(--color-text); font-weight: 600; }
.discipline-dokokai-list { margin: 0.5rem 0 0; padding-left: 1.5rem; }
.discipline-dokokai-list li { margin-bottom: 0.35rem; }
.discipline-dokokai-list a { color: var(--color-accent); text-decoration: none; }
.discipline-dokokai-list a:hover { text-decoration: underline; }
.discipline-detail-page .shorin-genealogy-wrap {
    display: grid;
    grid-template-columns: minmax(200px, 350px) 1fr;
    gap: 2rem;
    align-items: start;
    margin-bottom: 1.5rem;
}
.discipline-detail-page .shorin-genealogy-text .discipline-genealogy-list { margin-top: 0.75rem; }
@media (max-width: 700px) {
    .discipline-detail-page .shorin-genealogy-wrap { grid-template-columns: 1fr; }
    .discipline-detail-page .shorin-genealogy-wrap .discipline-figure-inline { max-width: 100%; }
}

/* Lista kata – dwie kolumny, zwarta */
.discipline-detail-page .kata-section.discipline-detail-kata {
    margin-top: 1.75rem;
    padding-top: 1.25rem;
}
.discipline-detail-page .kata-section .discipline-section-title {
    font-size: 1.1rem;
    margin-bottom: 0.25rem;
}
.discipline-detail-page .kata-section .kata-intro {
    margin: 0 0 0.75rem;
    font-size: 0.9rem;
}
.discipline-detail-page .kata-columns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem 2rem;
    margin-top: 0.5rem;
}
.discipline-detail-page .kata-columns .kata-group {
    margin: 0;
}
.discipline-detail-page .kata-columns .kata-group .kata-group-heading {
    font-size: 0.8rem;
    font-weight: 600;
    margin: 0 0 0.4rem;
    color: var(--color-text-muted);
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.discipline-detail-page .kata-columns .kata-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.discipline-detail-page .kata-columns .kata-list li {
    padding: 0.2rem 0;
    font-size: 0.875rem;
    line-height: 1.35;
    color: var(--color-text);
    border: none;
    border-bottom: none;
}
.discipline-detail-page .kata-columns .kata-list li::before {
    content: "·";
    margin-right: 0.45rem;
    color: var(--color-accent);
    font-weight: bold;
}
@media (max-width: 600px) {
    .discipline-detail-page .kata-columns { grid-template-columns: 1fr; gap: 1rem; }
}

.kobudo-weapons { margin-top: 2.5rem; padding-top: 1.75rem; border-top: 1px solid var(--color-border); }
.discipline-detail-page .kobudo-weapons.discipline-card { margin-top: 2rem; padding-top: 1.5rem; border-top: none; }
.kobudo-weapons-title { font-size: 1.35rem; margin: 0 0 0.85rem; color: var(--color-text); font-weight: 700; }
.kobudo-weapons-photo {
    margin: 0 0 1.5rem;
    padding: 0;
}
.kobudo-weapons-photo-img {
    display: block;
    width: 100%;
    height: auto;
    max-width: 100%;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.12);
}
.kobudo-weapons-intro { margin: 0 0 1.5rem; color: var(--color-text-muted); line-height: 1.6; font-size: 0.98rem; }
.kobudo-weapon { margin-bottom: 1.5rem; }
.kobudo-weapon:last-child { margin-bottom: 0; }
.kobudo-weapon-name { font-size: 1.1rem; margin: 0 0 0.35rem; color: var(--color-text); font-weight: 600; }
.kobudo-weapon p { margin: 0; line-height: 1.65; font-size: 0.98rem; }

/* Lista kata kobudo — 4 stałe kolumny (.kobudo-kata-col); wewnątrz grupy broni bez kart */
.kobudo-kata-section { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--color-border); }
.kobudo-kata-section .discipline-section-title { font-size: 1.2rem; margin-bottom: 0.35rem; }
.kobudo-kata-legend { font-size: 0.875rem; color: var(--color-text-muted); margin: 0 0 1rem; line-height: 1.5; }
.kobudo-kata-legend .kata-syllabus-only { font-style: italic; color: var(--color-text-muted); }
.discipline-detail-page .kobudo-kata-groups {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    column-gap: 2rem;
    align-items: start;
    margin-top: 0.5rem;
}
@media (max-width: 860px) {
    .discipline-detail-page .kobudo-kata-groups {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        row-gap: 1.5rem;
    }
}
@media (max-width: 480px) {
    .discipline-detail-page .kobudo-kata-groups {
        grid-template-columns: 1fr;
        row-gap: 1.25rem;
    }
}
.discipline-detail-page .kobudo-kata-col {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    min-width: 0;
}
.discipline-detail-page .kobudo-kata-group {
    margin: 0;
    min-width: 0;
    padding: 0;
    background: none;
    border: none;
}
.discipline-detail-page .kobudo-kata-group-title {
    font-size: 0.76rem;
    font-weight: 700;
    margin: 0 0 0.4rem;
    padding: 0.1rem 0 0.1rem 0.55rem;
    border-left: 3px solid var(--color-accent);
    color: var(--color-text-muted);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    line-height: 1.3;
}
.discipline-detail-page .kobudo-kata-list { list-style: none; padding: 0; margin: 0; }
.discipline-detail-page .kobudo-kata-list li {
    padding: 0.18rem 0;
    font-size: 0.9rem;
    line-height: 1.45;
    color: var(--color-text);
}
.discipline-detail-page .kobudo-kata-list li::before {
    content: "·";
    margin-right: 0.45rem;
    color: var(--color-accent);
    font-weight: bold;
}
.discipline-detail-page .kobudo-kata-list li.kata-syllabus {
    font-style: italic;
    color: var(--color-text-muted);
    opacity: 0.9;
}
.discipline-detail-page .kobudo-kata-list li.kata-syllabus::before { color: var(--color-text-muted); }

.exam-requirements-page .exam-group { margin: 2rem 0; }
.exam-requirements-page .exam-group > h2 {
    font-size: 1.35rem;
    margin: 0 0 1rem;
    padding-bottom: 0.35rem;
    border-bottom: 2px solid var(--color-accent-light);
    color: var(--color-header);
}
.exam-requirements-page .exam-group h3 { font-size: 1.05rem; margin: 0.75rem 0 0.25rem; font-weight: 600; }
.exam-requirements-page .exam-content { font-size: 0.95rem; margin-bottom: 0.5rem; line-height: 1.6; }
.exam-requirements-page .exam-content.prose { max-width: 100%; overflow-x: auto; }
.exam-requirements-page .exam-content p { margin: 0 0 0.75rem; }
.exam-requirements-page .exam-content p:last-child { margin-bottom: 0; }
.exam-requirements-page .exam-content table {
    width: 100%;
    border-collapse: collapse;
    margin: 1rem 0;
    font-size: 0.9rem;
}
.exam-requirements-page .exam-content table td,
.exam-requirements-page .exam-content table th {
    border: 1px solid var(--color-border);
    padding: 0.5rem 0.65rem;
    vertical-align: top;
}
.exam-requirements-page .exam-content img {
    max-width: 100%;
    height: auto;
}
.exam-requirements-page .exam-content ul,
.exam-requirements-page .exam-content ol { margin: 0.5rem 0 0.75rem 1.25rem; }

.exam-breadcrumb { margin: 0 0 1rem; font-size: 0.9rem; color: var(--color-text-muted); }
.exam-breadcrumb a { color: var(--color-accent); text-decoration: none; }
.exam-breadcrumb a:hover { text-decoration: underline; }

/* Shotokan — zakładki według stopni (płaskie kolory, bez gradientów) */
.shotokan-exam-tabs { margin-top: 0.5rem; }
.exam-tablist {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin: 0 0 1.25rem;
    padding: 0.55rem 0.45rem;
    background: var(--color-bg-alt);
    border: 1px solid var(--color-border);
    border-radius: 0;
}
.exam-tab-btn {
    font-family: inherit;
    font-size: 0.92rem;
    font-weight: 600;
    padding: 0.55rem 0.9rem;
    border: 1px solid rgba(0, 0, 0, 0.18);
    cursor: pointer;
    border-radius: 0;
    line-height: 1.25;
    letter-spacing: 0.01em;
    color: #1e1b18;
    transition: border-color 0.15s, background-color 0.15s;
}
.exam-tab-btn:hover { border-color: rgba(0, 0, 0, 0.35); }
.exam-tab-btn[aria-selected="false"] { opacity: 1; }
.exam-tab-btn[aria-selected="true"] {
    outline: 2px solid var(--color-accent);
    outline-offset: 1px;
    z-index: 1;
    position: relative;
}
/* Jeden kolor na grupę (bez odcieni); 1 dan = 2 dan */
.exam-tab-btn--belt-wstep { background: #e8e4de; color: #2d2822; border-color: #c9c4bc; }
.exam-tab-btn--belt-k9 { background: #fafafa; color: #222; border-color: #ccc; }
.exam-tab-btn--belt-k8 { background: #ffcc33; color: #2d2822; border-color: #d4a82a; }
.exam-tab-btn--belt-k7 { background: #f0a030; color: #2d2822; border-color: #c67f20; }
.exam-tab-btn--belt-k6 { background: #6bae6a; color: #fff; border-color: #4d8c4c; }
/* 5 i 4 kyu — ten sam niebieski */
.exam-tab-btn--belt-k5,
.exam-tab-btn--belt-k4 { background: #4a90c8; color: #fff; border-color: #3a78a8; }
/* 3, 2, 1 kyu — ten sam brąz */
.exam-tab-btn--belt-k3,
.exam-tab-btn--belt-k2,
.exam-tab-btn--belt-k1 { background: #7d5e4e; color: #fff; border-color: #5c4438; }
/* 1 dan i 2 dan — identycznie */
.exam-tab-btn--belt-d1,
.exam-tab-btn--belt-d2 { background: #1a1a1a; color: #fff; border-color: #000; }
.exam-tab-btn--belt-legenda { background: #e4e0ec; color: #3d3550; border-color: #c4bdd4; }
.exam-tab-btn--belt-neutral { background: #e0e0e0; color: #333; border-color: #bbb; }
.exam-tab-panel-wrap {
    padding: 0 0 1rem;
    border-bottom: 1px solid var(--color-border);
    margin-bottom: 0.5rem;
}
.exam-shotokan-page h1 { margin-bottom: 0.75rem; }

.kata-intro { margin: 0 0 1.5rem; color: var(--color-text-muted); }
.kata-group { margin: 1.5rem 0; }
.kata-group h2, .kata-group-heading, .discipline-detail-kata .kata-group h3 { font-size: 1.25rem; color: var(--color-text); margin: 0 0 0.5rem; }
.discipline-detail-kata { margin-top: 2.5rem; padding-top: 1.75rem; border-top: 1px solid var(--color-border); }
.kata-list { list-style: none; padding: 0; margin: 0; }
.kata-list li { padding: 0.35rem 0; font-size: 1rem; }
.kata-back { margin-top: 2rem; }
.kata-back a { color: var(--color-accent); font-weight: 600; text-decoration: none; }
.kata-back a:hover { text-decoration: underline; }
.meta { color: var(--color-text-muted); font-size: 0.9rem; margin-bottom: 0.5rem; }

/* ----- Kontakt ----- */
.contact-page .contact-cms {
    margin: 0 0 1.25rem;
    max-width: 62ch;
    color: var(--color-text);
    line-height: 1.6;
}
.contact-page .contact-address {
    margin: 0 0 1rem;
    font-size: 1.05rem;
    line-height: 1.5;
    color: var(--color-text);
}
.contact-two-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    align-items: start;
}
@media (max-width: 700px) {
    .contact-two-col { grid-template-columns: 1fr; }
}
.contact-form-card .contact-form-title {
    margin-top: 0;
}
.contact-instructors-col {
    padding-top: 0;
}
.contact-instructors {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin: 0;
}
.contact-instructor-card {
    background: var(--color-card-bg);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: 1.25rem;
    box-shadow: var(--shadow);
}
.contact-instructor-name {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--color-text);
    margin: 0 0 0.35rem;
}
.contact-instructor-desc {
    font-size: 0.9rem;
    color: var(--color-text-muted);
    margin: 0 0 0.75rem;
    line-height: 1.4;
}
.contact-instructor-links {
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
}
.contact-instructor-links .contact-link {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    color: var(--color-accent);
    text-decoration: none;
    font-size: 0.95rem;
}
.contact-instructor-links .contact-link:hover { text-decoration: underline; }
.contact-instructor-links .contact-link .icon { flex-shrink: 0; }

/* /kontakt — małe, stonowane ikony (delikatne tło + kolor symbolu) */
.contact-page .contact-instructor-links {
    flex-direction: column;
    align-items: stretch;
    gap: 0.5rem;
}
.contact-page .contact-instructor-links .contact-link {
    gap: 0.55rem;
    color: var(--color-text);
    font-size: 0.95rem;
    line-height: 1.35;
    padding: 0.15rem 0;
}
.contact-page .contact-instructor-links .contact-link:hover {
    color: var(--color-accent);
    text-decoration: none;
}
.contact-page .contact-instructor-links .contact-link:hover .contact-link-text {
    text-decoration: underline;
    text-underline-offset: 3px;
}
.contact-page .contact-link-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 7px;
    flex-shrink: 0;
    border: 1px solid rgba(107, 93, 74, 0.12);
    background: rgba(250, 248, 244, 0.95);
    box-shadow: none;
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.contact-page .contact-messenger .contact-link-icon {
    color: #0b6bcb;
    background: rgba(11, 108, 203, 0.08);
    border-color: rgba(11, 108, 203, 0.18);
}
.contact-page .contact-email .contact-link-icon {
    color: #5c4a7a;
    background: rgba(92, 74, 122, 0.08);
    border-color: rgba(92, 74, 122, 0.16);
}
.contact-page .contact-phone .contact-link-icon {
    color: #2d6a4f;
    background: rgba(45, 106, 79, 0.08);
    border-color: rgba(45, 106, 79, 0.16);
}
.contact-page .contact-link-icon .icon {
    display: block;
    width: 0.82rem;
    height: 0.82rem;
    fill: currentColor;
}
.contact-page .contact-instructor-links .contact-link:hover .contact-link-icon {
    background: rgba(255, 255, 255, 0.98);
    border-color: rgba(198, 40, 40, 0.22);
}
.contact-page .contact-link-text {
    word-break: break-word;
}

.contact-form-card {
    background: var(--color-card-bg);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: 1.25rem 1.75rem 1.75rem;
    box-shadow: var(--shadow);
    margin: 0;
}
.contact-form-title {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--color-text);
    margin: 0 0 0.35rem;
}
.contact-form-desc {
    font-size: 0.95rem;
    color: var(--color-text-muted);
    margin: 0 0 1.5rem;
    line-height: 1.5;
}
.contact-form-desc a { color: var(--color-accent); text-decoration: none; }
.contact-form-desc a:hover { text-decoration: underline; }
.contact-form-row {
    margin-bottom: 1.25rem;
}
.contact-form-row:last-of-type { margin-bottom: 1.5rem; }
.contact-form-label {
    display: block;
    font-weight: 600;
    font-size: 0.95rem;
    color: var(--color-text);
    margin-bottom: 0.4rem;
}
.contact-form-input,
.contact-form-textarea {
    width: 100%;
    padding: 0.65rem 0.85rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    font-family: inherit;
    font-size: 1rem;
    line-height: 1.5;
    color: var(--color-text);
    background: var(--color-bg);
    transition: border-color 0.2s, box-shadow 0.2s;
}
.contact-form-input:focus,
.contact-form-textarea:focus {
    outline: none;
    border-color: var(--color-accent);
    box-shadow: 0 0 0 3px var(--color-accent-light);
}
.contact-form-input::placeholder,
.contact-form-textarea::placeholder {
    color: var(--color-text-muted);
    opacity: 0.8;
}
.contact-form-textarea {
    min-height: 140px;
    resize: vertical;
}
.contact-form-actions { margin-top: 0.5rem; }
.contact-success {
    padding: 0.75rem 1rem;
    background: rgba(46, 125, 50, 0.12);
    color: #1b5e20;
    border-radius: var(--radius);
    font-weight: 500;
    margin-bottom: 1.25rem;
}
.contact-error {
    padding: 0.75rem 1rem;
    background: rgba(198, 40, 40, 0.08);
    color: #b71c1c;
    border-radius: var(--radius);
    margin-bottom: 1.25rem;
}
.error { color: #c62828; margin-bottom: 0.5rem; font-size: 0.95rem; }

/* ----- Footer ----- */
.site-footer {
    padding: 0;
    position: relative;
    background: var(--color-header);
    color: rgba(255, 255, 255, 0.9);
}
.footer-accent { height: 3px; background: var(--color-accent); }
.footer-inner {
    padding: 2rem var(--space-lg) 1.5rem;
    font-size: 0.9rem;
}
.footer-grid {
    display: grid;
    /* Węższa kolumna adresu (2 linie) → więcej miejsca na e-maile w kontakcie */
    grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.42fr);
    gap: 2rem 2.25rem;
    max-width: 880px;
    margin: 0 auto 1.75rem;
    align-items: start;
}
@media (max-width: 600px) {
    .footer-grid {
        grid-template-columns: 1fr;
        gap: 1.25rem;
        text-align: center;
        margin-bottom: 1.5rem;
    }
}
.footer-block { min-width: 0; }
.footer-label {
    display: block;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--color-gold);
    margin-bottom: 0.35rem;
}
.footer-label--nested {
    margin-top: 1.1rem;
    margin-bottom: 0.4rem;
}
.footer-address-social {
    margin-top: 0.25rem;
}
.footer-address,
.footer-contact { margin: 0; line-height: 1.5; }
.footer-contact a {
    color: rgba(255, 255, 255, 0.95);
    text-decoration: none;
}
.footer-contact a:hover { color: #fff; text-decoration: underline; }
.footer-phone { white-space: nowrap; }

/* Stopka — kontakty jak na /kontakt (ikony + linki), tło ciemne; dwie osoby obok siebie */
.footer-contact-people {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem 1.5rem;
}
.footer-contact-person {
    margin: 0;
    flex: 1 1 0;
    min-width: 0;
}
.footer-contact-person-name {
    margin: 0 0 0.4rem;
    font-size: 0.95rem;
    font-weight: 700;
    color: #fff;
    letter-spacing: 0.01em;
}
.footer-contact-person-links {
    margin: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.45rem;
}
.site-footer .footer-contact-person-links .contact-link {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    color: rgba(255, 255, 255, 0.93);
    text-decoration: none;
    font-size: 0.9rem;
    line-height: 1.35;
    padding: 0.1rem 0;
}
.site-footer .footer-contact-person-links .contact-link:hover {
    color: #fff;
    text-decoration: none;
}
.site-footer .footer-contact-person-links .contact-link:hover .contact-link-text {
    text-decoration: underline;
    text-underline-offset: 3px;
}
.site-footer .footer-contact-person-links .contact-link-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 7px;
    flex-shrink: 0;
    border: 1px solid rgba(255, 255, 255, 0.22);
    background: rgba(255, 255, 255, 0.1);
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.site-footer .footer-contact-person-links .contact-messenger .contact-link-icon {
    color: #8ec8ff;
    background: rgba(14, 120, 220, 0.22);
    border-color: rgba(142, 200, 255, 0.38);
}
.site-footer .footer-contact-person-links .contact-email .contact-link-icon {
    color: #d8c8f0;
    background: rgba(160, 140, 200, 0.2);
    border-color: rgba(216, 200, 240, 0.32);
}
.site-footer .footer-contact-person-links .contact-phone .contact-link-icon {
    color: #a8e0c4;
    background: rgba(70, 150, 110, 0.22);
    border-color: rgba(168, 224, 196, 0.35);
}
.site-footer .footer-contact-person-links .contact-link-icon .icon {
    display: block;
    width: 0.82rem;
    height: 0.82rem;
    fill: currentColor;
}
.site-footer .footer-contact-person-links .contact-link:hover .contact-link-icon {
    background: rgba(255, 255, 255, 0.16);
    border-color: rgba(255, 255, 255, 0.3);
}
.site-footer .footer-contact-person-links .contact-link-text {
    word-break: break-word;
    text-align: left;
}
/* Długi e-mail w jednej linii (pełny adres w atrybucie title) */
.site-footer .footer-contact-person-links .contact-email {
    display: inline-flex;
    min-width: 0;
    max-width: 100%;
    font-size: clamp(0.72rem, 1.65vw, 0.86rem);
}
.site-footer .footer-contact-person-links .contact-email .contact-link-text {
    flex: 1 1 auto;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: normal;
}
@media (max-width: 600px) {
    .footer-contact-block {
        text-align: left;
    }
    .footer-contact-person-name {
        text-align: left;
    }
    .footer-contact-person-links {
        align-items: flex-start;
    }
    .footer-contact-person-links .contact-link-text {
        text-align: left;
    }
}

.footer-social {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 1.1rem;
}
.footer-address-social .footer-social {
    justify-content: flex-start;
}
@media (max-width: 600px) {
    .footer-address-social .footer-social {
        justify-content: center;
    }
}
.footer-social-link {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: rgba(255, 255, 255, 0.9);
    text-decoration: none;
    font-weight: 500;
    font-size: 0.9rem;
}
.footer-social-link:hover {
    color: #fff;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.footer-social-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    line-height: 0;
}
.footer-social-icon .icon {
    display: block;
    fill: currentColor;
    opacity: 0.95;
}
.footer-social-link--facebook .footer-social-icon {
    color: #8bb4ff;
}
.footer-social-text {
    white-space: nowrap;
}
.footer-map-row {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 1.25rem 1.75rem;
    margin: 0 auto 1.5rem;
    max-width: 100%;
}
.footer-dojo-photo {
    margin: 0;
    padding: 0;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: fit-content;
    max-width: min(380px, 100%);
    height: 300px;
    min-height: 0;
    background: rgba(0, 0, 0, 0.2);
}
.footer-dojo-photo-img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 300px;
    object-fit: contain;
    object-position: center;
}
.footer-map-wrap {
    margin: 0;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
    flex: 0 0 auto;
    width: 500px;
    max-width: 100%;
    height: 300px;
    min-height: 0;
}
.footer-map {
    display: block;
    width: 500px;
    max-width: 100%;
    height: 300px;
    min-height: 0;
    border: 0;
}
@media (max-width: 600px) {
    .footer-map-row {
        flex-direction: column;
        align-items: center;
        gap: 1.25rem;
    }
    .footer-dojo-photo {
        display: none;
    }
    .footer-map-wrap {
        width: min(500px, 100%);
        max-width: 100%;
        flex: 0 0 auto;
        height: 300px;
    }
    .footer-map {
        width: 100%;
        max-width: 100%;
        height: 300px;
    }
}
.footer-copy {
    text-align: center;
    margin: 0;
    padding-top: 0.75rem;
    font-size: 0.85rem;
    color: rgba(255, 255, 255, 0.7);
}

/* Galeria – lightbox fullscreen */
.gallery-lightbox {
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: rgba(0, 0, 0, 0.92);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease, visibility 0.2s ease;
}
.gallery-lightbox.is-open {
    opacity: 1;
    visibility: visible;
}
.gallery-lightbox-img-wrap {
    max-width: 95vw;
    max-height: 95vh;
    display: flex;
    align-items: center;
    justify-content: center;
}
.gallery-lightbox-img {
    max-width: 100%;
    max-height: 90vh;
    width: auto;
    height: auto;
    object-fit: contain;
}
.gallery-lightbox-close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    width: 2.5rem;
    height: 2.5rem;
    border: none;
    background: rgba(255, 255, 255, 0.15);
    color: #fff;
    font-size: 1.75rem;
    line-height: 1;
    cursor: pointer;
    border-radius: 0;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}
.gallery-lightbox-close:hover { background: rgba(255, 255, 255, 0.25); }
.gallery-lightbox-prev,
.gallery-lightbox-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 3rem;
    height: 3rem;
    border: none;
    background: rgba(255, 255, 255, 0.15);
    color: #fff;
    font-size: 1.5rem;
    cursor: pointer;
    border-radius: 0;
    padding: 0;
}
.gallery-lightbox-prev:hover,
.gallery-lightbox-next:hover { background: rgba(255, 255, 255, 0.25); }
.gallery-lightbox-prev { left: 1rem; }
.gallery-lightbox-next { right: 1rem; }
.gallery-lightbox-counter {
    position: absolute;
    bottom: 1.5rem;
    left: 50%;
    transform: translateX(-50%);
    color: rgba(255, 255, 255, 0.85);
    font-size: 0.95rem;
}

/* ----- Admin ----- */
.admin-body {
    margin: 0;
    min-height: 100vh;
    font-family: var(--font-sans);
    font-size: var(--font-size-base);
    line-height: 1.55;
    color: var(--color-text);
    background: linear-gradient(165deg, #f5f2ec 0%, #ebe6dd 100%);
}
.admin-header {
    background: #000;
    color: #fff;
    box-shadow: 0 2px 14px rgba(0, 0, 0, 0.2);
}
.admin-header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.75rem 1.25rem;
    min-height: 56px;
    padding: 0.65rem var(--space-lg);
}
.admin-header-brand {
    display: inline-flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.35rem 0.65rem;
    color: #fff;
    text-decoration: none;
    font-weight: 700;
    letter-spacing: 0.02em;
}
.admin-header-brand:hover { color: #fff; opacity: 0.92; }
.admin-header-site { font-size: 1.1rem; }
.admin-header-badge {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: rgba(255, 255, 255, 0.75);
    border: 1px solid rgba(255, 255, 255, 0.35);
    padding: 0.2rem 0.5rem;
    border-radius: 0;
}
.admin-header-nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 1rem;
}
.admin-header-nav a {
    color: #fff;
    text-decoration: none;
    font-size: 0.92rem;
    font-weight: 500;
    padding: 0.35rem 0;
    border-radius: 0;
}
.admin-header-nav a:hover { text-decoration: underline; text-underline-offset: 3px; }
.admin-header-logout {
    opacity: 0.9;
    padding: 0.35rem 0.65rem !important;
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: var(--radius);
}
.admin-header-logout:hover {
    text-decoration: none !important;
    background: rgba(255, 255, 255, 0.1);
}
.admin-container { max-width: 1040px; }
.admin-main { padding: 1.75rem 0 2.5rem; }
.admin-page-title {
    margin: 0 0 0.35rem;
    font-size: clamp(1.45rem, 3vw, 1.85rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--color-text);
}
.admin-lead {
    margin: 0 0 1.5rem;
    font-size: 1rem;
    color: var(--color-text-muted);
    max-width: 52ch;
    line-height: 1.55;
}
.admin-page-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}
.admin-page-head .admin-page-title { margin: 0; }
.admin-dash-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 1rem;
    margin-top: 0.5rem;
}
.admin-dash-card {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 1.25rem 1.35rem;
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
    text-decoration: none;
    color: inherit;
    transition: border-color 0.2s, box-shadow 0.2s, transform 0.15s;
}
.admin-dash-card:hover {
    border-color: rgba(198, 40, 40, 0.35);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.07);
    transform: translateY(-2px);
}
.admin-dash-card-icon { font-size: 1.5rem; line-height: 1; margin-bottom: 0.15rem; }
.admin-dash-card-title {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--color-text);
}
.admin-dash-card-desc {
    font-size: 0.88rem;
    color: var(--color-text-muted);
    line-height: 1.45;
}
.admin-panel {
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
    padding: 1.5rem 1.65rem;
    margin-bottom: 1rem;
}
.admin-panel--spaced { margin-top: 1.25rem; }
.admin-lead--tight {
    margin-bottom: 1rem;
    max-width: none;
}
.admin-subheading {
    margin: 0 0 1rem;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--color-text);
}
.admin-muted {
    margin: 0.5rem 0 0;
    font-size: 0.95rem;
    color: var(--color-text-muted);
}
.admin-muted--success-line {
    margin: 0 0 0.85rem;
    padding: 0.65rem 0.85rem;
    background: rgba(46, 125, 50, 0.08);
    border: 1px solid rgba(46, 125, 50, 0.28);
    border-radius: var(--radius);
    color: var(--color-text);
    max-width: 42rem;
}
.admin-panel--home-fallback-preview { max-width: 48rem; }
.admin-home-fallback-grid {
    list-style: none;
    margin: 0.75rem 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
    gap: 1rem;
}
.admin-home-fallback-cell {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}
.admin-home-fallback-cell img {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    border-radius: var(--radius);
    border: 1px solid var(--color-border);
    background: #f0ebe3;
}
.admin-home-fallback-cap {
    font-size: 0.82rem;
    line-height: 1.35;
    color: var(--color-text-muted);
}
.admin-gallery-grid {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 1rem;
}
.admin-gallery-cell {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    align-items: flex-start;
}
.admin-gallery-thumb {
    width: 100%;
    border-radius: var(--radius);
    overflow: hidden;
    border: 1px solid var(--color-border);
    background: #f5f5f5;
    aspect-ratio: 4 / 3;
}
.admin-gallery-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.admin-gallery-delete-form { margin: 0; }
.admin-home-slideshow-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}
.admin-home-slideshow-row {
    display: grid;
    grid-template-columns: minmax(0, 10rem) minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: start;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid var(--color-border);
}
.admin-home-slideshow-row:last-of-type {
    border-bottom: none;
    padding-bottom: 0;
}
.admin-home-slideshow-thumb img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: var(--radius);
    border: 1px solid var(--color-border);
    object-fit: cover;
    aspect-ratio: 4 / 3;
}
.admin-home-slideshow-fields {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}
.admin-home-slideshow-sort input {
    max-width: 6rem;
    margin-top: 0.25rem;
}
.admin-home-slideshow-caption textarea {
    max-width: 100%;
    width: min(100%, 36rem);
    margin-top: 0.25rem;
    min-height: 3.5rem;
}
.admin-home-slideshow-actions {
    padding-top: 1.5rem;
}
@media (max-width: 640px) {
    .admin-home-slideshow-row {
        grid-template-columns: 1fr;
    }
    .admin-home-slideshow-actions {
        padding-top: 0;
    }
}
.admin-table-wrap {
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
    overflow: hidden;
    margin-bottom: 0.5rem;
}
.admin-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.95rem;
}
.admin-table th,
.admin-table td {
    padding: 0.85rem 1rem;
    text-align: left;
    border-bottom: 1px solid var(--color-border);
    vertical-align: middle;
}
.admin-table tbody tr:last-child td { border-bottom: none; }
.admin-table tbody tr:hover { background: rgba(198, 40, 40, 0.04); }
.admin-table th {
    background: #1a1a1a;
    color: #fff;
    font-weight: 600;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
.admin-th-actions { width: 1%; white-space: nowrap; text-align: right !important; }
.admin-td-muted { color: var(--color-text-muted); font-variant-numeric: tabular-nums; }
.admin-td-actions {
    text-align: right;
    white-space: nowrap;
}
.admin-td-actions .admin-inline-form { display: inline-block; margin-left: 0.35rem; vertical-align: middle; }
.admin-table-empty {
    padding: 2rem 1rem !important;
    text-align: center;
    color: var(--color-text-muted);
}
.admin-badge {
    display: inline-block;
    font-size: 0.78rem;
    font-weight: 600;
    padding: 0.2rem 0.55rem;
    border-radius: 0;
}
.admin-badge--yes { background: rgba(13, 148, 136, 0.15); color: #0f766e; }
.admin-badge--no { background: rgba(0, 0, 0, 0.06); color: var(--color-text-muted); }
.btn-sm {
    padding: 0.38rem 0.75rem;
    font-size: 0.875rem;
    border-radius: 0;
}
.btn-admin-edit {
    background: #fff;
    border: 1px solid var(--color-border);
    color: var(--color-text);
    text-decoration: none;
    display: inline-block;
    font-weight: 600;
}
.btn-admin-edit:hover {
    border-color: var(--color-accent);
    color: var(--color-accent);
    background: var(--color-accent-light);
}
.btn-admin-delete {
    background: transparent;
    border: 1px solid #c62828;
    color: #c62828;
    font-weight: 600;
    cursor: pointer;
    font-family: inherit;
}
.btn-admin-delete:hover { background: rgba(198, 40, 40, 0.08); }
.admin-back { margin: 1.25rem 0 0; font-size: 0.95rem; }
.admin-back a { color: var(--color-accent); font-weight: 500; text-decoration: none; }
.admin-back a:hover { text-decoration: underline; text-underline-offset: 3px; }
.admin-content-keys-page .admin-lead--content-keys {
    max-width: 62ch;
    margin-bottom: 1.75rem;
}
.admin-key-list {
    list-style: none;
    padding: 0;
    margin: 0 0 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.admin-key-list--grouped {
    gap: 0.65rem;
}
.admin-key-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.95rem 1.15rem;
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    text-decoration: none;
    color: inherit;
    transition: border-color 0.2s, box-shadow 0.2s;
}
.admin-key-link:hover {
    border-color: rgba(198, 40, 40, 0.4);
    box-shadow: var(--shadow);
}
.admin-key-link-body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.4rem;
    text-align: left;
}
.admin-key-code {
    font-family: ui-monospace, monospace;
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--color-text-muted);
    background: rgba(0, 0, 0, 0.055);
    padding: 0.2rem 0.5rem;
    border-radius: 4px;
    word-break: break-word;
    line-height: 1.35;
    max-width: 100%;
}
.admin-key-arrow {
    flex-shrink: 0;
    align-self: center;
    color: var(--color-text-muted);
    font-weight: 600;
    font-size: 1.1rem;
}
.admin-content-group {
    margin-bottom: 1.75rem;
    padding: 1.2rem 1.35rem 1.35rem;
    background: #faf9f7;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}
.admin-content-group-title {
    font-size: 1.08rem;
    margin: 0 0 0.85rem;
    padding-bottom: 0.65rem;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
    color: var(--color-text);
    font-weight: 700;
    letter-spacing: -0.01em;
    text-transform: none;
}
.admin-key-list--grouped { margin-bottom: 0; }
.admin-key-desc {
    font-weight: 600;
    font-size: 1rem;
    line-height: 1.45;
    color: var(--color-text);
    text-align: left;
}
.admin-key-row .admin-key-code {
    text-align: left;
}
.admin-content-form-meta {
    margin: 0 0 0.5rem;
    font-size: 0.98rem;
    color: var(--color-text-muted);
}
.admin-content-form-keyline {
    margin: 0 0 1rem;
    font-size: 0.9rem;
    color: var(--color-text-muted);
}
.admin-inline-code {
    font-family: ui-monospace, monospace;
    font-size: 0.9em;
    font-weight: 600;
    background: rgba(0, 0, 0, 0.06);
    padding: 0.15rem 0.45rem;
    border-radius: 0;
}
.admin-form label { display: block; margin-bottom: 0.85rem; font-weight: 600; font-size: 0.92rem; color: var(--color-text); }
.admin-form-hint { margin: -0.35rem 0 1rem; max-width: 42rem; font-size: 0.9rem; color: var(--color-text-muted); line-height: 1.45; }
.admin-form-hint a { color: var(--color-accent); font-weight: 500; }
.admin-form-hint--after-label { margin: 0.25rem 0 0.85rem; }
.admin-field-label {
    display: block;
    font-weight: 600;
    font-size: 0.92rem;
    color: var(--color-text);
    margin-bottom: 0.15rem;
}
.admin-upload-block { margin-bottom: 1.1rem; max-width: 42rem; }
.admin-upload-block--event-teaser { margin-bottom: 1.25rem; }
.admin-event-teaser-current {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 1rem 1.25rem;
    margin: 0 0 1rem;
}
.admin-event-teaser-preview { margin: 0; }
.admin-event-teaser-preview img {
    display: block;
    width: 160px;
    height: 160px;
    object-fit: cover;
    border-radius: var(--radius);
    border: 1px solid var(--color-border);
}
.admin-event-teaser-preview-cap {
    margin: 0.35rem 0 0;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--color-text-muted);
}
.admin-event-teaser-preview-cap--new {
    margin: 0 0 0.35rem;
}
.admin-checkbox-row {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-weight: 500;
    font-size: 0.92rem;
    margin: 0;
    cursor: pointer;
}
.admin-checkbox-row input { width: auto; margin: 0; }
.admin-file-dropzone {
    position: relative;
    border: 2px dashed rgba(198, 40, 40, 0.28);
    border-radius: var(--radius);
    background: linear-gradient(165deg, #faf9f7 0%, #f3f1ec 100%);
    padding: 1.1rem 1.15rem 1rem;
    transition: border-color 0.2s, background 0.2s, box-shadow 0.2s;
}
.admin-file-dropzone.is-dragover {
    border-color: var(--color-accent);
    background: rgba(198, 40, 40, 0.06);
    box-shadow: 0 0 0 3px rgba(198, 40, 40, 0.12);
}
.admin-file-dropzone:focus-within {
    outline: 2px solid rgba(198, 40, 40, 0.22);
    outline-offset: 2px;
}
.admin-file-input-sr {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.admin-file-dropzone-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 1rem;
}
.admin-file-upload-trigger {
    cursor: pointer;
    margin: 0;
    font-weight: 600;
}
.admin-file-upload-or {
    font-size: 0.88rem;
    color: var(--color-text-muted);
}
.admin-file-upload-status {
    margin: 0.85rem 0 0;
    font-size: 0.9rem;
    color: var(--color-text);
    line-height: 1.45;
    max-width: 38rem;
}
.admin-file-upload-status.is-success {
    color: #2e7d32;
    font-weight: 500;
}
.admin-file-upload-preview-new {
    margin-top: 0.85rem;
}
.admin-file-upload-preview-new img {
    display: block;
    width: 160px;
    height: 160px;
    object-fit: cover;
    border-radius: var(--radius);
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow);
}
.admin-file-upload-clear { margin: 0; }
.admin-select-wide { display: block; width: 100%; max-width: 36rem; margin-top: 0.35rem; margin-bottom: 0.5rem; padding: 0.55rem 0.65rem; font: inherit; border: 1px solid var(--color-border); border-radius: var(--radius); background: #faf9f7; }
.admin-form input[type="text"], .admin-form input[type="password"], .admin-form input[type="date"], .admin-form input[type="datetime-local"], .admin-form input[type="time"], .admin-form input[type="number"], .admin-form select, .admin-form textarea {
    width: 100%;
    max-width: 520px;
    margin-top: 0.35rem;
    padding: 0.55rem 0.65rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    font: inherit;
    background: #faf9f7;
}
.admin-form input:focus, .admin-form select:focus, .admin-form textarea:focus {
    outline: 2px solid rgba(198, 40, 40, 0.25);
    outline-offset: 1px;
    border-color: rgba(198, 40, 40, 0.45);
    background: #fff;
}
.admin-form textarea { min-height: 160px; resize: vertical; max-width: 100%; }
.admin-form input[type="checkbox"] { width: auto; margin-right: 0.5rem; }
.admin-form .btn-primary { margin-top: 0.35rem; }
.admin-nav ul { list-style: none; padding: 0; margin: 1rem 0; }
.admin-nav li { margin: 0.5rem 0; }
.admin-nav a { color: var(--color-accent); text-decoration: none; font-weight: 500; }
.content-blocks-list { list-style: none; padding: 0; }
.content-blocks-list li { margin: 0.4rem 0; }
.login-page .narrow { max-width: 400px; }
.login-form label { display: block; margin-bottom: 0.5rem; font-weight: 600; }
.login-form input { width: 100%; padding: 0.65rem 0.75rem; margin-bottom: 0.85rem; border: 1px solid var(--color-border); border-radius: var(--radius); font: inherit; }
.login-page .error { color: #b71c1c; font-weight: 500; margin-bottom: 1rem; }
.btn-link { background: none; border: none; color: var(--color-accent); cursor: pointer; padding: 0; font-size: inherit; text-decoration: underline; font-family: inherit; }
.btn-link:hover { color: var(--color-accent-hover); }

/* ----- Mobile ----- */
@media (max-width: 768px) {
    .nav-toggle {
        display: flex;
    }
    .header-inner {
        align-items: center;
        row-gap: 0.3rem;
        /* Równe „oddechy” góra/dół czarnego pasa (min-height 80px z desktopu zawyżał dół przy zwiniętym menu) */
        min-height: 0;
        padding-top: 0.55rem;
        padding-bottom: 0.55rem;
    }
    .site-nav {
        width: 100%;
        flex: 1 1 100%;
        order: 3;
    }
    .site-nav ul {
        display: none;
        flex-direction: column;
        align-items: stretch;
        padding: 0.4rem 0;
        gap: 0;
        border-top: 1px solid rgba(255, 255, 255, 0.12);
        margin-top: 0.3rem;
    }
    .site-nav.open ul {
        display: flex;
    }
    .site-nav li {
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    }
    .site-nav li::after {
        display: none !important;
    }
    .site-nav > ul > li > a,
    .site-nav > ul > li > .site-nav-dropdown-trigger {
        display: block;
        width: 100%;
        box-sizing: border-box;
        padding: 0.8rem 0.35rem 0.8rem 0.15rem;
        font-size: 1rem;
        font-weight: 600;
    }
    /* „Co ćwiczymy” + podstrony: kolumna (wcześniej flex-row wciskał 4 linki obok nagłówka) */
    .site-nav-item--has-dropdown {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        width: 100%;
    }
    .site-nav-item--has-dropdown > .site-nav-dropdown-trigger {
        width: 100%;
    }
    .site-nav-item--has-dropdown .site-nav-dropdown {
        display: flex;
        flex-direction: column;
        width: 100%;
        padding: 0.2rem 0 0.5rem;
        margin: 0;
        border: none;
        border-radius: 0;
        box-shadow: none;
        background: rgba(0, 0, 0, 0.42);
        border-top: 1px solid rgba(212, 168, 75, 0.2);
    }
    .site-nav-item--has-dropdown .site-nav-dropdown li {
        border-bottom: 1px solid rgba(255, 255, 255, 0.07);
    }
    .site-nav-item--has-dropdown .site-nav-dropdown li:last-child {
        border-bottom: none;
    }
    .site-nav-dropdown a {
        display: block;
        width: 100%;
        box-sizing: border-box;
        padding: 0.7rem 0.75rem 0.7rem 1.1rem;
        font-size: 0.94rem;
        font-weight: 500;
        line-height: 1.35;
        white-space: normal;
        color: rgba(255, 255, 255, 0.94);
        border-left: 3px solid rgba(212, 168, 75, 0.55);
    }
    .site-nav-dropdown a:hover,
    .site-nav-dropdown a:focus-visible {
        background: rgba(212, 168, 75, 0.12);
        color: #fff;
    }
    .card-grid { grid-template-columns: 1fr; }
    .schedule-calendar { font-size: 0.8rem; }
    .schedule-calendar th.schedule-day-col { font-size: 0.85rem; padding: 0.65rem 0.5rem; }
    .schedule-calendar th, .schedule-calendar td { padding: 0.5rem 0.45rem; }
    .schedule-activity-time { font-size: 0.85rem; }
    .schedule-activity-title { font-size: 0.8rem; }
    /* Harmonogram: nie ściszaj tytułów / dni względem reszty strony */
    .schedule-page .schedule-calendar th.schedule-day-col { font-size: 0.74rem; padding: 0.72rem 0.45rem; }
    .schedule-page .schedule-activity-title { font-size: 0.86rem; }
    .admin-table-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .admin-table { min-width: 520px; }
    .admin-td-actions { white-space: normal; }
    .admin-td-actions .btn-sm { display: inline-block; margin: 0.15rem 0; }
    .admin-header-inner { flex-direction: column; align-items: flex-start; }
    .admin-header-nav { width: 100%; justify-content: flex-start; }
}

@media (min-width: 769px) {
    .hero { padding: 3.5rem var(--space-lg) 4rem; }
    .hero.hero--banner { padding: 2.25rem var(--space-lg) 2.7rem; min-height: clamp(216px, 31vh, 372px); }
    /* Lista trochę niżej od triggera; ::before = niewidoczny mostek pod kursorem */
    .site-nav-item--has-dropdown .site-nav-dropdown {
        position: absolute;
        top: calc(100% + 8px);
        left: 0;
        z-index: 400;
        display: none;
        width: auto;
        min-width: 15rem;
        padding: 0.3rem 0 0.35rem;
        margin: 0;
        background: #1f1f1f;
        border: 1px solid rgba(212, 168, 75, 0.4);
        box-shadow: 0 12px 28px rgba(0, 0, 0, 0.35);
    }
    .site-nav-item--has-dropdown .site-nav-dropdown::before {
        content: '';
        position: absolute;
        left: 0;
        right: 0;
        bottom: 100%;
        height: 12px;
    }
    .site-nav-item--has-dropdown:hover .site-nav-dropdown,
    .site-nav-item--has-dropdown:focus-within .site-nav-dropdown {
        display: block;
    }
    .site-nav-item--has-dropdown .site-nav-dropdown li {
        width: auto;
        border-bottom-color: rgba(212, 168, 75, 0.18);
    }
    .site-nav-dropdown a {
        width: auto;
        padding: 0.5rem 1rem;
    }
}

/* ===== Strona główna — banner „Zapisy na seminarium” pod hero ===== */
.home-seminar-banner {
    position: relative;
    margin: 0;
    padding: 0;
    background:
        linear-gradient(135deg, #1f1a14 0%, #2d251a 55%, #3a2618 100%);
    color: #fff;
    overflow: hidden;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    border-bottom: 1px solid rgba(0, 0, 0, 0.25);
}
.home-seminar-banner::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(40rem 18rem at 8% 50%, rgba(201, 162, 39, 0.18), transparent 65%),
        radial-gradient(35rem 18rem at 100% 50%, rgba(198, 40, 40, 0.16), transparent 65%);
    pointer-events: none;
}
.home-seminar-banner-inner {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1.25rem 2rem;
    padding: 1.4rem 0 1.5rem;
    z-index: 1;
}
.home-seminar-banner-mark {
    flex-shrink: 0;
    display: none;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    min-height: 5.75rem;
    padding: 0.55rem 0.75rem;
    border: 1px solid rgba(201, 162, 39, 0.55);
    background:
        linear-gradient(140deg, rgba(201, 162, 39, 0.22), rgba(201, 162, 39, 0.05));
    border-radius: 6px;
}
.home-seminar-banner-logo {
    display: block;
    width: 4.75rem;
    height: 4.75rem;
    object-fit: contain;
    filter: drop-shadow(0 2px 5px rgba(0, 0, 0, 0.4));
}
.home-seminar-banner-kanji {
    font-size: 0.9rem;
    line-height: 1.05;
    text-align: center;
    color: #f3d97b;
    letter-spacing: 0;
    writing-mode: vertical-rl;
    text-orientation: upright;
    white-space: nowrap;
}
@media (min-width: 720px) {
    .home-seminar-banner-mark { display: inline-flex; }
}
.home-seminar-banner-content {
    flex: 1 1 24rem;
    min-width: 0;
}
.home-seminar-banner-eyebrow {
    display: inline-block;
    font-family: var(--font-sans);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #f3d97b;
    padding: 0.25rem 0.55rem;
    border: 1px solid rgba(243, 217, 123, 0.55);
    background: rgba(243, 217, 123, 0.1);
    margin-bottom: 0.55rem;
}
.home-seminar-banner-eyebrow::before {
    content: '●';
    margin-right: 0.5rem;
    color: #ff5e5e;
    font-size: 0.7em;
    vertical-align: middle;
    animation: home-seminar-banner-pulse 1.8s ease-in-out infinite;
}
@keyframes home-seminar-banner-pulse {
    0%, 100% { opacity: 0.55; }
    50% { opacity: 1; }
}
.home-seminar-banner-title {
    margin: 0 0 0.3rem;
    font-family: var(--font-sans);
    font-size: clamp(1.15rem, 0.95rem + 0.9vw, 1.55rem);
    line-height: 1.2;
    font-weight: 700;
    color: #fff;
    letter-spacing: 0.005em;
}
.home-seminar-banner-text {
    margin: 0;
    font-size: 0.96rem;
    line-height: 1.45;
    color: rgba(255, 255, 255, 0.82);
    max-width: none;
}
.home-seminar-banner-actions {
    flex-shrink: 0;
}
.home-seminar-banner-cta {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.85rem 1.45rem;
    font-size: 1rem;
    font-weight: 700;
    background: var(--color-accent);
    color: #fff;
    border: 1px solid var(--color-accent);
    text-decoration: none;
    box-shadow: 0 10px 22px -10px rgba(198, 40, 40, 0.6);
    transition: background 0.2s, transform 0.2s, box-shadow 0.2s;
}
.home-seminar-banner-cta:hover,
.home-seminar-banner-cta:focus-visible {
    background: var(--color-accent-hover);
    border-color: var(--color-accent-hover);
    transform: translateY(-1px);
    box-shadow: 0 12px 26px -10px rgba(198, 40, 40, 0.7);
    color: #fff;
}
.home-seminar-banner-cta:focus-visible {
    outline: 3px solid rgba(243, 217, 123, 0.6);
    outline-offset: 2px;
}
.home-seminar-banner-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.4rem;
    height: 1.4rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.18);
    font-size: 0.95rem;
    transition: transform 0.25s;
}
.home-seminar-banner-cta:hover .home-seminar-banner-arrow {
    transform: translateX(3px);
}
@media (max-width: 640px) {
    .home-seminar-banner-inner { padding: 1.25rem 0 1.35rem; }
    .home-seminar-banner-cta { width: 100%; justify-content: center; padding: 0.95rem 1rem; }
    .home-seminar-banner-actions { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .home-seminar-banner-eyebrow::before { animation: none; }
    .home-seminar-banner-cta,
    .home-seminar-banner-arrow { transition: none; }
}

/* ===== /seminarium — dwujęzyczna podstrona seminarium Kobudo ===== */
.seminar-page {
    --seminar-max-width: 1040px;
    padding: 1.5rem 0 4rem;
    background:
        radial-gradient(60rem 30rem at -10% -20%, rgba(201, 162, 39, 0.07), transparent 60%),
        radial-gradient(50rem 30rem at 110% 10%, rgba(198, 40, 40, 0.05), transparent 60%),
        var(--color-bg);
}
.seminar-container { max-width: var(--seminar-max-width); }
.seminar-toolbar {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 1rem;
}
.seminar-lang-switch {
    display: inline-flex;
    align-items: center;
    gap: 1rem;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}
.seminar-lang-option {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.15rem 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    color: var(--color-text);
    opacity: 0.45;
    text-decoration: none;
    font-weight: 700;
    font-size: 0.92rem;
    letter-spacing: 0.06em;
    line-height: 1;
    transition: opacity 0.2s, color 0.2s;
}
.seminar-lang-option:hover {
    opacity: 0.75;
    background: transparent;
    color: var(--color-text);
}
.seminar-lang-option.is-active {
    opacity: 1;
    background: transparent;
    color: var(--color-text);
    box-shadow: none;
}
.seminar-lang-option.is-active .seminar-lang-code {
    border-bottom: 2px solid var(--color-accent);
    padding-bottom: 2px;
}
.seminar-lang-option.is-active:hover {
    opacity: 1;
    background: transparent;
    color: var(--color-text);
}
.seminar-lang-option:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 3px;
    border-radius: 3px;
}
.seminar-lang-flag {
    display: inline-block;
    width: 1.5rem;
    height: 1rem;
    border-radius: 2px;
    overflow: hidden;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.12);
    background: #fff;
    line-height: 0;
    vertical-align: middle;
    flex: 0 0 auto;
}
.seminar-lang-flag svg {
    display: block;
    width: 100%;
    height: 100%;
}
.seminar-lang-code {
    display: inline-block;
    font-weight: 700;
    line-height: 1;
}

/* Hero — wyróżniony kontenerek na górze z tytułem, datą/miejscem/kosztem i CTA „Zapisz się” */
.seminar-hero {
    position: relative;
    margin: 0 0 2.25rem;
    padding: 2rem clamp(1.25rem, 3vw, 2.25rem) 2rem;
    background:
        linear-gradient(180deg, #ffffff 0%, #fbf8f1 100%);
    border: 1px solid var(--color-border);
    box-shadow: 0 12px 32px -16px rgba(45, 40, 34, 0.18), 0 1px 2px rgba(45, 40, 34, 0.06);
    overflow: hidden;
}
.seminar-hero-ribbon {
    position: absolute;
    inset: 0 auto 0 0;
    width: 6px;
    background: linear-gradient(180deg, var(--color-accent) 0%, var(--color-gold) 100%);
}
.seminar-hero-grid {
    position: relative;
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem 2rem;
    align-items: center;
}
@media (min-width: 720px) {
    .seminar-hero-grid {
        grid-template-columns: minmax(0, 1fr) auto;
    }
}
.seminar-hero-content {
    padding-left: 0.6rem;
    min-width: 0;
}
.seminar-hero-side {
    display: flex;
    align-items: center;
    justify-content: center;
    padding-right: 0.4rem;
}
.seminar-hero-logo {
    display: block;
    width: clamp(7rem, 7rem + 3vw, 11rem);
    height: auto;
    object-fit: contain;
    filter: drop-shadow(0 4px 14px rgba(45, 40, 34, 0.18));
}
@media (max-width: 719px) {
    .seminar-hero-side { order: -1; padding: 0; }
    .seminar-hero-logo { width: 6.25rem; }
}
.seminar-hero-eyebrow {
    display: inline-block;
    font-family: var(--font-sans);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-brown);
    padding: 0.25rem 0.6rem;
    border: 1px solid rgba(201, 162, 39, 0.4);
    background: var(--color-gold-light);
    margin-bottom: 1rem;
}
.seminar-title {
    font-family: var(--font-sans);
    font-size: clamp(1.6rem, 1.2rem + 1.7vw, 2.2rem);
    line-height: 1.18;
    font-weight: 700;
    margin: 0 0 0.35rem;
    color: var(--color-header);
    letter-spacing: -0.005em;
}
.seminar-subtitle {
    margin: 0 0 1.1rem;
    font-family: var(--font-sans);
    font-size: clamp(1.05rem, 0.95rem + 0.5vw, 1.25rem);
    line-height: 1.3;
    font-weight: 600;
    color: var(--color-brown);
    letter-spacing: 0;
}
.seminar-lead {
    margin: 0 0 1.4rem;
    padding: 0;
    background: transparent;
    border: none;
    color: var(--color-text);
}
.seminar-lead p,
.seminar-lead .seminar-lead-line {
    margin: 0.25rem 0;
    font-size: 1.05rem;
    line-height: 1.55;
}
.seminar-lead strong { color: var(--color-brown); font-weight: 700; }
.seminar-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 0.25rem;
}
.seminar-hero-cta {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.85rem 1.5rem;
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    background: var(--color-accent);
    color: #fff;
    border: 1px solid var(--color-accent);
    text-decoration: none;
    box-shadow: 0 8px 20px -8px rgba(198, 40, 40, 0.5);
    transition: background 0.2s, transform 0.2s, box-shadow 0.2s;
}
.seminar-hero-cta:hover,
.seminar-hero-cta:focus-visible {
    background: var(--color-accent-hover);
    border-color: var(--color-accent-hover);
    transform: translateY(-1px);
    box-shadow: 0 10px 24px -8px rgba(198, 40, 40, 0.55);
    color: #fff;
}
.seminar-hero-cta:focus-visible { outline: 3px solid var(--color-accent-light); outline-offset: 2px; }
.seminar-hero-cta-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.6rem;
    height: 1.6rem;
    background: rgba(255, 255, 255, 0.18);
    border-radius: 999px;
    font-size: 1rem;
    transition: transform 0.25s;
}
.seminar-hero-cta:hover .seminar-hero-cta-arrow {
    transform: translateY(2px);
}
@media (min-width: 720px) {
    .seminar-hero { padding: 2.5rem clamp(2rem, 4vw, 3rem); }
    .seminar-hero-content { padding-left: 1rem; }
}

/* Sekcje treści — wspólny rytm typograficzny */
.seminar-section-head { margin: 0 0 1rem; }
.seminar-section-heading {
    font-family: var(--font-sans);
    font-size: 1.4rem;
    line-height: 1.25;
    font-weight: 700;
    margin: 0 0 0.35rem;
    color: var(--color-header);
}
.seminar-section-heading::after {
    content: '';
    display: block;
    width: 3rem;
    height: 3px;
    margin-top: 0.45rem;
    background: var(--color-accent);
}
.seminar-section-sub {
    margin: 0;
    color: var(--color-text-muted);
    font-size: 0.98rem;
}

.seminar-body { margin: 2rem 0 2.5rem; }
.seminar-body h2 {
    font-family: var(--font-sans);
    margin-top: 2.4rem;
    margin-bottom: 0.4rem;
    font-size: 1.4rem;
    line-height: 1.25;
    font-weight: 700;
    color: var(--color-header);
}
.seminar-body h2:first-child { margin-top: 0; }
.seminar-body h2::after {
    content: '';
    display: block;
    width: 3rem;
    height: 3px;
    margin-top: 0.45rem;
    background: var(--color-accent);
}
.seminar-body h3 {
    margin-top: 1.6rem;
    margin-bottom: 0.4rem;
    font-size: 1.15rem;
    color: var(--color-brown);
    font-weight: 700;
}
.seminar-body p { margin: 0.5rem 0 0.95rem; line-height: 1.65; font-size: 1rem; }
.seminar-body strong { color: var(--color-text); }
.seminar-body a { color: var(--color-accent); text-decoration: underline; text-underline-offset: 2px; }
.seminar-body a:hover { color: var(--color-accent-hover); }

/* Slajd „Poprzednie edycje” — pełna szerokość kontenerka, bez ramki/karty */
.seminar-slideshow-section {
    margin: 2.25rem 0 2.5rem;
    padding: 0;
    background: transparent;
    border: none;
    box-shadow: none;
}
.seminar-slideshow-section .seminar-section-head {
    margin: 0 0 0.85rem;
}
.seminar-slideshow {
    margin-top: 0;
}
.seminar-slideshow .discipline-slideshow {
    background: #000;
    overflow: hidden;
}
.seminar-slideshow-captions .slideshow {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
}
.seminar-slideshow-captions .slideshow-track {
    position: relative;
    width: 100%;
    height: 100%;
}
.seminar-slideshow-captions .slideshow-slide {
    position: absolute;
    inset: 0;
    margin: 0;
    opacity: 0;
    transition: opacity 0.55s ease;
    pointer-events: none;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-color: #111;
    overflow: hidden;
}
.seminar-slideshow-captions .slideshow-slide::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: inherit;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    filter: blur(30px) brightness(0.55) saturate(0.85);
    transform: scale(1.18);
    z-index: 0;
    pointer-events: none;
}
.seminar-slideshow-captions .slideshow-slide.active {
    opacity: 1;
    z-index: 1;
    pointer-events: auto;
}
.seminar-slideshow-captions .slideshow-slide .slideshow-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
    opacity: 1;
    display: block;
    z-index: 1;
}
.seminar-slideshow-captions .slideshow-caption {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 0.9rem 1rem 1rem;
    margin: 0;
    background: linear-gradient(transparent, rgba(0,0,0,0.85));
    color: #fff;
    font-size: 0.95rem;
    line-height: 1.4;
    z-index: 2;
}
.seminar-slideshow .slideshow-btn {
    background: rgba(0,0,0,0.55);
    backdrop-filter: blur(2px);
}
.seminar-slideshow .slideshow-btn:hover { background: var(--color-accent); }
.seminar-slideshow .slideshow-dots {
    margin-top: 0.75rem;
}

/* Harmonogram — tabela dni × bloki */
/* Sekcja "Harmonogram" — pełna szerokość okna, ciemne tło w innym odcieniu
   niż formularz (chłodniejszy grafit zamiast brązu). */
.seminar-schedule-section {
    position: relative;
    margin: 2.5rem calc(50% - 50vw) 2.75rem;
    width: 100vw;
    padding: 2.75rem 0 2.5rem;
    background:
        radial-gradient(ellipse at top, rgba(214, 156, 41, 0.06) 0%, transparent 55%),
        linear-gradient(180deg, #25231e 0%, #15140f 100%);
    color: #ece4d3;
    border: 0;
    box-shadow:
        inset 0 1px 0 rgba(214, 156, 41, 0.15),
        inset 0 -1px 0 rgba(214, 156, 41, 0.08);
    overflow: hidden;
}
.seminar-schedule-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg,
        transparent 0%,
        #c9a227 20%,
        #e8b94f 50%,
        #c9a227 80%,
        transparent 100%);
    pointer-events: none;
}
.seminar-schedule-inner {
    width: 100%;
    max-width: var(--seminar-max-width);
    margin: 0 auto;
    padding: 0 var(--space-lg);
    box-sizing: border-box;
}
/* Specyficzność musi przebić .page-content h2:not(...) — używamy klasy+elementu */
.seminar-schedule-section h2 {
    font-family: var(--font-sans);
    font-size: clamp(1.5rem, 1.2rem + 1vw, 1.85rem);
    line-height: 1.25;
    font-weight: 700;
    margin: 0 0 0.5rem;
    color: #fbf3df;
    letter-spacing: -0.005em;
}
.page-content .seminar-schedule-section h2 {
    color: #fbf3df;
    font-size: clamp(1.5rem, 1.2rem + 1vw, 1.85rem);
    margin: 0 0 0.5rem;
}
.seminar-schedule-section h2::after {
    content: '';
    display: block;
    width: 3rem;
    height: 3px;
    margin-top: 0.55rem;
    background: var(--color-accent);
    border-radius: 2px;
}
.seminar-schedule-section p {
    margin: 0 0 1.3rem;
    color: rgba(236, 228, 211, 0.7);
    font-size: 0.98rem;
    line-height: 1.55;
}
.seminar-schedule-tablewrap {
    overflow-x: auto;
    margin: 0;
    -webkit-overflow-scrolling: touch;
    /* tablewrap nie potrzebuje padding-bottom z global rule */
    padding-top: 0;
    padding-bottom: 0;
}
.seminar-schedule-table {
    width: 100%;
    min-width: 36rem;
    table-layout: fixed;
    border-collapse: collapse;
    font-size: 0.95rem;
    background: rgba(255, 251, 240, 0.03);
    border: 1px solid rgba(236, 228, 211, 0.12);
    border-radius: 6px;
    overflow: hidden;
}
.seminar-schedule-table thead th,
.seminar-schedule-table tbody td {
    width: 33.3333%;
    word-wrap: break-word;
    overflow-wrap: anywhere;
}
.seminar-schedule-table thead th {
    text-align: left;
    padding: 0.85rem 0.95rem 0.85rem;
    background: linear-gradient(180deg, rgba(214, 156, 41, 0.18) 0%, rgba(214, 156, 41, 0.1) 100%);
    color: #e8b94f;
    border-bottom: 2px solid rgba(214, 156, 41, 0.45);
    border-right: 1px solid rgba(236, 228, 211, 0.12);
    vertical-align: top;
}
.seminar-schedule-table thead th:last-child { border-right: none; }
.seminar-schedule-table .seminar-schedule-day {
    display: block;
    font-weight: 700;
    font-size: 1rem;
    letter-spacing: 0.01em;
    color: #fbf3df;
    line-height: 1.25;
}
.seminar-schedule-table thead .seminar-schedule-loc {
    display: block;
    margin-top: 0.25rem;
    font-size: 0.8rem;
    font-weight: 500;
    color: rgba(236, 228, 211, 0.65);
    line-height: 1.4;
    letter-spacing: 0;
}
.seminar-schedule-table tbody td {
    padding: 0.95rem 0.95rem;
    vertical-align: top;
    line-height: 1.45;
    border-top: 1px solid rgba(236, 228, 211, 0.1);
    border-right: 1px solid rgba(236, 228, 211, 0.1);
    color: #ece4d3;
}
.seminar-schedule-table tbody td:last-child { border-right: none; }
.seminar-schedule-table tbody tr:nth-child(even) td {
    background: rgba(214, 156, 41, 0.04);
}
.seminar-schedule-table strong {
    display: inline-block;
    color: #fbf3df;
    font-weight: 700;
    margin-bottom: 0.15rem;
    font-size: 0.95rem;
}
.seminar-schedule-train {
    display: block;
    margin-top: 0.1rem;
    font-weight: 600;
    color: #e8b94f;
    font-size: 0.95rem;
    line-height: 1.3;
}
.seminar-schedule-details {
    list-style: disc outside;
    margin: 0.5rem 0 0 1.15rem;
    padding: 0;
    font-size: 0.87rem;
    line-height: 1.45;
    color: rgba(236, 228, 211, 0.88);
}
.seminar-schedule-details li {
    margin-bottom: 0.3rem;
}
.seminar-schedule-details li:last-child {
    margin-bottom: 0;
}
.seminar-schedule-details li::marker {
    color: #e8b94f;
}
.seminar-schedule-details ul {
    list-style: circle outside;
    margin: 0.3rem 0 0.25rem 1rem;
    padding: 0;
    font-size: 0.93em;
    color: rgba(236, 228, 211, 0.6);
}
.seminar-schedule-details ul li {
    margin-bottom: 0.15rem;
}
.seminar-schedule-details ul li::marker {
    color: rgba(236, 228, 211, 0.5);
}
.seminar-schedule-note {
    display: block;
    margin-top: 0.35rem;
    font-size: 0.78rem;
    font-weight: 400;
    font-style: italic;
    color: rgba(236, 228, 211, 0.55);
    line-height: 1.3;
}
/* Piątek (kolumna 1) — pre-seminar, wyszarzony na ciemnym tle */
.seminar-schedule-table thead th:first-child {
    background: rgba(236, 228, 211, 0.04);
    color: rgba(236, 228, 211, 0.55);
    border-bottom-color: rgba(236, 228, 211, 0.12);
}
.seminar-schedule-table thead th:first-child .seminar-schedule-day {
    color: rgba(236, 228, 211, 0.6);
    font-weight: 600;
}
.seminar-schedule-table thead th:first-child .seminar-schedule-loc {
    color: rgba(236, 228, 211, 0.4);
    opacity: 0.9;
}
.seminar-schedule-table tbody tr td:first-child,
.seminar-schedule-table tbody tr:nth-child(even) td:first-child {
    background: rgba(236, 228, 211, 0.02);
    color: rgba(236, 228, 211, 0.5);
    opacity: 0.85;
}
.seminar-schedule-table tbody tr td:first-child strong,
.seminar-schedule-table tbody tr td:first-child .seminar-schedule-train {
    color: rgba(236, 228, 211, 0.55);
    font-weight: 600;
}
.seminar-schedule-empty {
    color: rgba(236, 228, 211, 0.55);
    text-align: center;
    font-size: 1.05rem;
}
@media (max-width: 640px) {
    .seminar-schedule-table { font-size: 0.9rem; min-width: 32rem; }
    .seminar-schedule-table thead th { padding: 0.65rem 0.7rem; }
    .seminar-schedule-table tbody td { padding: 0.75rem 0.7rem; }
}
@media (max-width: 560px) {
    .seminar-schedule-section {
        margin: 2rem calc(50% - 50vw) 2.25rem;
        padding: 2.25rem 0 2rem;
    }
    .seminar-schedule-inner {
        padding-left: 1.1rem;
        padding-right: 1.1rem;
    }
}

/* Sekcja "Organizacja i instruktorzy" — 3 karty pod harmonogramem */
.seminar-org-section {
    margin: 3rem 0;
}
.seminar-org-heading {
    margin: 0 0 1.5rem;
    font-family: var(--font-sans);
    font-weight: 700;
    font-size: clamp(1.5rem, 2.1vw, 1.85rem);
    line-height: 1.2;
    color: var(--color-header);
}
.seminar-org-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
}
.seminar-org-card {
    position: relative;
    display: flex;
    flex-direction: column;
    padding: 1.5rem 1.4rem 1.4rem;
    background: linear-gradient(180deg, #ffffff 0%, #fbf8f1 100%);
    border: 1px solid var(--color-border);
    border-top: 3px solid var(--color-gold);
    border-radius: 4px;
    box-shadow: 0 6px 18px -14px rgba(45, 40, 34, 0.35);
    transition: transform 0.25s, box-shadow 0.25s;
}
.seminar-org-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 28px -18px rgba(45, 40, 34, 0.5);
}
.seminar-org-card-tag {
    display: inline-block;
    margin-bottom: 0.65rem;
    padding: 0.15rem 0.55rem;
    align-self: flex-start;
    background: rgba(201, 162, 39, 0.14);
    color: var(--color-brown);
    border: 1px solid rgba(201, 162, 39, 0.4);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    line-height: 1.4;
}
.seminar-org-card-title {
    margin: 0 0 0.85rem;
    font-family: var(--font-sans);
    font-weight: 700;
    font-size: 1.12rem;
    line-height: 1.3;
    color: var(--color-header);
}
.seminar-org-card-body {
    color: var(--color-text);
    font-size: 0.94rem;
    line-height: 1.55;
}
.seminar-org-card-body p {
    margin: 0;
}
.seminar-org-card-body p + p {
    margin-top: 0.7rem;
}
@media (max-width: 900px) {
    .seminar-org-grid {
        grid-template-columns: 1fr;
        gap: 1rem;
    }
    .seminar-org-card {
        padding: 1.25rem 1.2rem;
    }
}

/* Komunikaty */
.seminar-success {
    margin: 0 0 2rem;
    padding: 1.1rem 1.35rem;
    background: rgba(46, 125, 50, 0.1);
    border-left: 4px solid #2e7d32;
    color: #1b5e20;
}
.seminar-success-title {
    margin: 0 0 0.35rem;
    font-size: 1.1rem;
    font-weight: 700;
}

/* "Dziękujemy za zapis!" — pełen widok po wysłaniu formularza */
.seminar-page--sent {
    min-height: 60vh;
}
.seminar-thankyou {
    max-width: 64rem;
    margin: 2.5rem auto 4rem;
    padding: clamp(1.75rem, 3vw, 2.75rem) clamp(1.25rem, 3vw, 2.5rem);
    background: linear-gradient(180deg, #ffffff 0%, #fbf8f1 100%);
    border: 1px solid var(--color-border);
    border-top: 4px solid #2e7d32;
    border-radius: 12px;
    box-shadow: 0 18px 40px -28px rgba(45, 40, 34, 0.45);
}
.seminar-thankyou-header {
    text-align: center;
    max-width: 42rem;
    margin: 0 auto 2rem;
}
.seminar-thankyou-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.75rem;
    height: 3.75rem;
    margin: 0 auto 1rem;
    color: #2e7d32;
    background: rgba(46, 125, 50, 0.1);
    border-radius: 50%;
}
.seminar-thankyou-mark svg {
    width: 2.25rem;
    height: 2.25rem;
}
.seminar-thankyou-title {
    margin: 0 0 0.75rem;
    font-family: var(--font-sans);
    font-weight: 700;
    font-size: clamp(1.5rem, 1.2rem + 1.6vw, 2.1rem);
    line-height: 1.2;
    color: var(--color-header);
}
.seminar-thankyou-intro {
    margin: 0 0 0.75rem;
    color: var(--color-text);
    font-size: 1.02rem;
    line-height: 1.55;
}
.seminar-thankyou-pay-intro {
    margin: 0;
    color: var(--color-text);
    font-size: 1rem;
    line-height: 1.55;
}

/* Lista metod płatności (każda karta w osobnym wierszu, pełna szerokość) */
.seminar-pay-grid {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin: 0 0 1.75rem;
}

.seminar-pay-card {
    display: flex;
    flex-direction: column;
    padding: 1.35rem 1.4rem 1.3rem;
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: 12px;
    box-shadow: 0 6px 18px -14px rgba(45, 40, 34, 0.3);
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}
.seminar-pay-card:hover {
    box-shadow: 0 12px 28px -18px rgba(45, 40, 34, 0.35);
}

.seminar-pay-card-head {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin: 0 0 0.55rem;
}
.seminar-pay-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    color: var(--color-brown);
    background: var(--color-bg-alt);
    border-radius: 8px;
    flex: 0 0 auto;
}
.seminar-pay-card--bank .seminar-pay-icon {
    color: var(--color-brown);
}
.seminar-pay-card--paypal .seminar-pay-icon {
    color: #003087;
    background: rgba(0, 48, 135, 0.08);
}
.seminar-pay-card--revolut .seminar-pay-icon {
    color: var(--color-brown);
}
.seminar-pay-icon svg {
    width: 1.5rem;
    height: 1.5rem;
}
.seminar-pay-title {
    margin: 0;
    font-family: var(--font-sans);
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--color-header);
    letter-spacing: 0.01em;
}
.seminar-pay-hint {
    margin: 0 0 0.9rem;
    color: var(--color-text-muted);
    font-size: 0.9rem;
    line-height: 1.5;
}

.seminar-pay-list {
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
}
.seminar-pay-row {
    display: grid;
    grid-template-columns: 9.5rem 1fr;
    gap: 0.6rem 1.25rem;
    align-items: center;
    padding: 0.6rem 0;
    border-bottom: 1px dashed rgba(45, 40, 34, 0.12);
}
.seminar-pay-row:first-child { padding-top: 0.25rem; }
.seminar-pay-row:last-child { padding-bottom: 0.25rem; border-bottom: 0; }
.seminar-pay-row dt {
    margin: 0;
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-text-muted);
}
.seminar-pay-row dd {
    margin: 0;
    color: var(--color-text);
    font-size: 0.98rem;
    line-height: 1.45;
    min-width: 0;
}
.seminar-pay-amount {
    font-family: var(--font-sans);
    font-size: 1.3rem !important;
    font-weight: 700;
    color: var(--color-brown);
    letter-spacing: -0.01em;
}

/* Wartość z przyciskiem „Kopiuj" */
.seminar-pay-copy {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
}
.seminar-pay-value {
    display: inline-block;
    padding: 0.2rem 0.5rem;
    background: var(--color-bg-alt);
    border: 1px solid var(--color-border);
    border-radius: 4px;
    font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--color-text);
    letter-spacing: 0.01em;
    user-select: all;
    word-break: break-all;
}
.seminar-pay-meta {
    margin-left: 0.35rem;
    font-size: 0.82rem;
    color: var(--color-text-muted);
}
.seminar-pay-copy-btn {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.55rem;
    background: #fff;
    color: var(--color-brown);
    border: 1px solid var(--color-border);
    border-radius: 4px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.seminar-pay-copy-btn:hover {
    background: var(--color-brown);
    color: #fff;
    border-color: var(--color-brown);
}
.seminar-pay-copy-btn.is-done {
    background: #2e7d32;
    color: #fff;
    border-color: #2e7d32;
}
.seminar-pay-link {
    display: inline-flex;
    align-items: center;
    margin-top: 0.85rem;
    color: var(--color-accent);
    font-size: 0.85rem;
    font-weight: 600;
    text-decoration: none;
}
.seminar-pay-link:hover { text-decoration: underline; }

/* Notatka o fakturze (alert info) */
.seminar-thankyou-invoice {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    margin: 0 0 1rem;
    padding: 0.95rem 1.1rem;
    background: rgba(214, 156, 41, 0.08);
    border: 1px solid rgba(214, 156, 41, 0.3);
    border-left: 4px solid #d69c29;
    border-radius: 8px;
    color: var(--color-text);
    font-size: 0.92rem;
    line-height: 1.5;
}
.seminar-thankyou-invoice p { margin: 0; }
.seminar-thankyou-invoice-icon {
    flex: 0 0 auto;
    display: inline-flex;
    color: #b07a1a;
}
.seminar-thankyou-invoice-icon svg {
    width: 1.4rem;
    height: 1.4rem;
}
.seminar-thankyou-invoice a {
    color: var(--color-accent);
    text-decoration: underline;
}

.seminar-thankyou-questions {
    margin: 0 0 0.75rem;
    text-align: center;
    color: var(--color-text);
    font-size: 0.9rem;
    line-height: 1.5;
}
.seminar-thankyou-questions a {
    color: var(--color-accent);
    text-decoration: underline;
}
.seminar-thankyou-back {
    margin: 1.25rem 0 0;
    text-align: center;
    font-size: 0.9rem;
}
.seminar-thankyou-back a {
    color: var(--color-brown);
    text-decoration: none;
    font-weight: 600;
    letter-spacing: 0.02em;
}
.seminar-thankyou-back a:hover {
    color: var(--color-accent);
    text-decoration: underline;
}

@media (max-width: 560px) {
    .seminar-thankyou {
        margin: 2rem auto 3rem;
        padding: 1.75rem 1.1rem;
        border-radius: 8px;
    }
    .seminar-pay-card { padding: 1.2rem 1.1rem; }
    .seminar-pay-copy { gap: 0.35rem; }
    .seminar-pay-row {
        grid-template-columns: 1fr;
        gap: 0.2rem;
        padding: 0.55rem 0;
    }
    .seminar-thankyou-invoice {
        flex-direction: column;
        gap: 0.5rem;
    }
}

/* Required-hint przy checkboxie zgody na zdjęcia */
.seminar-form-required-hint {
    display: inline;
    margin-left: 0.2rem;
    color: var(--color-text-muted);
    font-size: 0.82rem;
    font-weight: 400;
}
.seminar-error {
    margin: 0 0 1.25rem;
    padding: 1rem 1.15rem 1rem 3rem;
    background: #fdecec;
    color: #b71c1c;
    border: 1px solid rgba(183, 28, 28, 0.35);
    border-left: 4px solid #b71c1c;
    border-radius: 8px;
    font-weight: 600;
    box-shadow: 0 6px 16px -10px rgba(183, 28, 28, 0.45);
    position: relative;
    outline: none;
}

.seminar-error::before {
    content: "!";
    position: absolute;
    left: 1.1rem;
    top: 50%;
    transform: translateY(-50%);
    width: 1.4rem;
    height: 1.4rem;
    border-radius: 50%;
    background: #b71c1c;
    color: #fff;
    text-align: center;
    line-height: 1.4rem;
    font-weight: 700;
    font-family: var(--font-family-headings, inherit);
}

.seminar-error:focus-visible {
    outline: 2px solid #b71c1c;
    outline-offset: 2px;
}

/* Formularz zapisów */
/* Sekcja zapisów — pełna szerokość okna + ciemne tło. Wyrywa się z kontenera
   sztuczką 100vw + ujemne marginesy. Tekst i pola formularza w wariancie dark. */
.seminar-form-section {
    position: relative;
    margin: 3rem calc(50% - 50vw) 2.5rem;
    width: 100vw;
    padding: 3rem 0 2.75rem;
    background:
        radial-gradient(ellipse at top, rgba(214, 156, 41, 0.08) 0%, transparent 55%),
        linear-gradient(180deg, #1f1a14 0%, #14110d 100%);
    color: #ece4d3;
    border: 0;
    border-radius: 0;
    box-shadow:
        inset 0 1px 0 rgba(214, 156, 41, 0.18),
        inset 0 -1px 0 rgba(214, 156, 41, 0.1);
    overflow: hidden;
    scroll-margin-top: 100px;
}
.seminar-form-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg,
        transparent 0%,
        var(--color-accent) 20%,
        #e8b94f 50%,
        var(--color-accent) 80%,
        transparent 100%);
    pointer-events: none;
}
.seminar-form-inner {
    width: 100%;
    max-width: var(--seminar-max-width);
    margin: 0 auto;
    padding: 0 var(--space-lg);
    box-sizing: border-box;
}
.seminar-form-header {
    margin: 0 0 1.75rem;
    text-align: left;
}
/* Specyficzność: h2.seminar-form-heading (klasa + element) musi przebić .page-content h2:not(...) */
.seminar-form-section h2.seminar-form-heading {
    font-family: var(--font-sans);
    margin: 0 0 0.4rem;
    font-size: clamp(1.55rem, 1.25rem + 1vw, 1.95rem);
    line-height: 1.2;
    font-weight: 700;
    color: #fbf3df;
    letter-spacing: -0.005em;
}
.seminar-form-heading::after {
    content: '';
    display: block;
    width: 3rem;
    height: 3px;
    margin-top: 0.6rem;
    background: var(--color-accent);
    border-radius: 2px;
}
.seminar-form-intro {
    margin: 0.65rem 0 0;
    color: rgba(236, 228, 211, 0.75);
    font-size: 0.98rem;
    line-height: 1.55;
}
.seminar-form-intro :last-child { margin-bottom: 0; }
.seminar-form-intro a {
    color: #e8b94f;
    text-decoration: underline;
}

/* Dostosowanie elementów formularza do ciemnego motywu (labels, hints, inputs). */
.seminar-form-section .seminar-form-label {
    color: #ece4d3;
}
.seminar-form-section .seminar-form-required {
    color: #ff8b6e;
}
.seminar-form-section .seminar-form-required-hint {
    color: rgba(236, 228, 211, 0.6);
}
.seminar-form-section .seminar-form-input,
.seminar-form-section .seminar-form-textarea {
    background: rgba(255, 251, 240, 0.06);
    color: #fbf3df;
    border: 1px solid rgba(236, 228, 211, 0.18);
    transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}
.seminar-form-section .seminar-form-input::placeholder,
.seminar-form-section .seminar-form-textarea::placeholder {
    color: rgba(236, 228, 211, 0.4);
}
.seminar-form-section .seminar-form-input:focus,
.seminar-form-section .seminar-form-textarea:focus {
    background: rgba(255, 251, 240, 0.1);
    border-color: var(--color-accent);
    outline: none;
    box-shadow: 0 0 0 3px rgba(198, 40, 40, 0.25);
}
.seminar-form-section .seminar-form-check,
.seminar-form-section .seminar-form-radio {
    color: #ece4d3;
}
.seminar-form-section .seminar-form-check input,
.seminar-form-section .seminar-form-radio input {
    accent-color: var(--color-accent);
}
.seminar-form-section .seminar-form-fieldset {
    border-color: rgba(236, 228, 211, 0.15);
    background: transparent;
}
.seminar-form-section .seminar-form-legend {
    color: #fbf3df;
}
.seminar-form-section .seminar-form-fieldset-hint {
    color: rgba(236, 228, 211, 0.6);
}
.seminar-form-section .seminar-form-row--consent {
    background: transparent;
    border: 0;
    padding: 0;
}

/* Komunikat błędu — dopasowany do ciemnego tła */
.seminar-form-section .seminar-error {
    background: rgba(255, 200, 200, 0.1);
    color: #ff9999;
    border-color: rgba(255, 100, 100, 0.45);
    border-left-color: #ff8585;
}
.seminar-form-section .seminar-error::before {
    background: #ff8585;
    color: #1f1a14;
}

@media (max-width: 560px) {
    .seminar-form-section {
        margin: 2.25rem calc(50% - 50vw) 2rem;
        padding: 2.25rem 0 2rem;
    }
    .seminar-form-inner {
        padding: 0 1.1rem;
    }
}
.seminar-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 1.25rem;
}
@media (max-width: 640px) {
    .seminar-form-grid { grid-template-columns: 1fr; }
}
.seminar-form-row { margin-bottom: 1.15rem; }
.seminar-form-label {
    display: block;
    font-weight: 600;
    font-size: 0.95rem;
    color: var(--color-text);
    margin-bottom: 0.4rem;
}
.seminar-form-required { color: var(--color-accent); }
.seminar-form-input,
.seminar-form-textarea {
    width: 100%;
    padding: 0.7rem 0.85rem;
    border: 1px solid var(--color-border);
    font-family: inherit;
    font-size: 1rem;
    line-height: 1.5;
    color: var(--color-text);
    background: #fff;
    transition: border-color 0.2s, box-shadow 0.2s;
}
.seminar-form-input:focus,
.seminar-form-textarea:focus {
    outline: none;
    border-color: var(--color-accent);
    box-shadow: 0 0 0 3px var(--color-accent-light);
}
.seminar-form-textarea { min-height: 96px; resize: vertical; }
.seminar-form-fieldset {
    margin: 0 0 1.25rem;
    padding: 1rem 0 0.25rem;
    border: none;
    border-top: 1px solid var(--color-border);
    background: transparent;
}
.seminar-form-fieldset:first-of-type { border-top: none; padding-top: 0; }
.seminar-form-legend {
    float: left;
    width: 100%;
    padding: 0 0 0.5rem;
    font-weight: 700;
    font-size: 0.92rem;
    color: var(--color-text);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.seminar-form-fieldset > *:not(legend) { clear: left; }
.seminar-form-hint {
    margin: 0 0 0.6rem;
    font-size: 0.88rem;
    color: var(--color-text-muted);
}
.seminar-form-checkrow,
.seminar-form-radio-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.5rem;
}
.seminar-form-radio-stack {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}
.seminar-form-check,
.seminar-form-radio {
    display: inline-flex;
    align-items: flex-start;
    gap: 0.55rem;
    cursor: pointer;
    line-height: 1.4;
    font-size: 0.97rem;
    color: var(--color-text);
}
.seminar-form-check input,
.seminar-form-radio input {
    margin-top: 0.25rem;
    flex-shrink: 0;
    accent-color: var(--color-accent);
}
.seminar-form-row--consent {
    margin-top: 1rem;
    padding: 1rem 0 0;
    border-top: 1px solid var(--color-border);
    background: transparent;
}
.seminar-exam-rank { margin-top: 0.75rem; }
.seminar-form-actions {
    margin-top: 1.5rem;
}
.seminar-form-actions .btn {
    padding: 0.85rem 1.75rem;
    font-size: 1.05rem;
    font-weight: 700;
}
.seminar-form-hp {
    position: absolute;
    left: -9999px;
    top: -9999px;
    height: 0;
    width: 0;
    overflow: hidden;
}

/* Kontakt na dole */
.seminar-contact {
    margin-top: 2.25rem;
    padding: 1.5rem clamp(1.25rem, 3vw, 1.75rem);
    background: var(--color-bg-alt);
    border: 1px solid var(--color-border);
}
.seminar-contact h2 {
    margin: 0 0 0.65rem;
    font-family: var(--font-sans);
    font-size: 1.25rem;
    line-height: 1.25;
    font-weight: 700;
    color: var(--color-header);
}
.seminar-contact h2::after {
    content: '';
    display: block;
    width: 2.5rem;
    height: 3px;
    margin-top: 0.4rem;
    background: var(--color-accent);
}
.seminar-contact p { margin: 0.4rem 0; line-height: 1.6; }
.seminar-contact a { color: var(--color-accent); text-decoration: none; }
.seminar-contact a:hover { text-decoration: underline; }

@media (prefers-reduced-motion: reduce) {
    .seminar-hero-cta,
    .seminar-hero-cta-arrow,
    .seminar-lang-toggle,
    .seminar-slideshow-captions .slideshow-slide { transition: none; }
}

/* ----- Panel: zapisy na seminarium ----- */
.admin-stat-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 0.75rem;
    margin: 1rem 0 1.25rem;
}
.admin-stat-card {
    background: var(--color-card-bg);
    border: 1px solid var(--color-border);
    padding: 0.65rem 0.85rem;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}
.admin-stat-label {
    font-size: 0.8rem;
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.admin-stat-value {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--color-text);
}
/* Tabela zapisów seminarium — 10 kolumn, więc szerszy kontener
   na podstronie + kompresja paddingu/fontu + akcje stacked. */
.admin-container:has(.admin-table--seminar) {
    max-width: min(1500px, calc(100% - 0px));
}
.admin-table--seminar {
    table-layout: auto;
}
.admin-table--seminar td,
.admin-table--seminar th {
    padding: 0.5rem 0.55rem;
    font-size: 0.85rem;
    line-height: 1.35;
}
.admin-table--seminar th {
    font-weight: 700;
    letter-spacing: 0.01em;
}
.admin-table--seminar td a[href^="mailto:"] {
    word-break: break-all;
}
.admin-table--seminar .admin-td-actions {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    align-items: stretch;
    min-width: 5.5rem;
    white-space: nowrap;
}
.admin-table--seminar .admin-td-actions .btn-sm,
.admin-table--seminar .admin-td-actions form {
    width: 100%;
    margin: 0;
}
.admin-table--seminar .admin-td-actions .btn-sm {
    text-align: center;
    padding: 0.35rem 0.55rem;
    font-size: 0.8rem;
}
.admin-table--seminar .admin-badge {
    white-space: nowrap;
}
.admin-badge--neutral {
    display: inline-block;
    padding: 0.15rem 0.5rem;
    background: var(--color-gold-light);
    color: var(--color-brown);
    font-size: 0.85rem;
    font-weight: 600;
}
.admin-badge--lang {
    display: inline-block;
    padding: 0.15rem 0.5rem;
    background: rgba(11, 108, 203, 0.08);
    color: #0b6bcb;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    border: 1px solid rgba(11, 108, 203, 0.18);
}
.admin-page-head-meta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.admin-inline-input {
    padding: 0.35rem 0.5rem;
    border: 1px solid var(--color-border);
    background: var(--color-bg);
    font: inherit;
    width: auto;
}
.admin-inline-label { font-size: 0.9rem; color: var(--color-text-muted); }
.admin-detail-grid {
    display: grid;
    grid-template-columns: minmax(180px, 220px) 1fr;
    gap: 0.5rem 1.25rem;
    margin: 0;
}
.admin-detail-grid dt {
    font-weight: 600;
    color: var(--color-text-muted);
    padding: 0.45rem 0;
    border-top: 1px solid var(--color-border);
}
.admin-detail-grid dd {
    margin: 0;
    padding: 0.45rem 0;
    border-top: 1px solid var(--color-border);
    color: var(--color-text);
    word-break: break-word;
}
.admin-detail-grid dt:first-of-type,
.admin-detail-grid dd:first-of-type { border-top: 0; }
.admin-actions-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 1rem 0;
}
@media (max-width: 640px) {
    .admin-detail-grid { grid-template-columns: 1fr; gap: 0; }
    .admin-detail-grid dt { padding-bottom: 0; border-top: 1px solid var(--color-border); }
    .admin-detail-grid dd { padding-top: 0.15rem; border-top: 0; }
}

