@import url('./css/design-tokens.css');
@import url("https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css");

/* ============================================================
   BASE
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }

html {
    font-size: 100%;
    scroll-behavior: smooth;
}

body {
    margin: 0;
    font-family: var(--font-body);
    font-size: var(--text-base);
    font-weight: 400;
    line-height: 1.7;
    color: var(--color-text-primary);
    background: var(--color-bg-primary);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-heading);
    font-weight: 400;
    line-height: 1.2;
    color: var(--color-text-primary);
    text-align: left;
    padding: 0;
    margin: 0 0 var(--space-4) 0;
}

h1 { font-size: var(--text-3xl); line-height: 1.1; letter-spacing: var(--tracking-tight); }
h2 { font-size: var(--text-2xl); }
h3 { font-size: var(--text-lg); }
h4 { font-size: var(--text-md); }
h5 { font-size: var(--text-base); }
h6 { font-size: var(--text-sm); }

p {
    margin: 0 0 var(--space-4) 0;
    text-align: left;
    hyphens: none;
    line-height: 1.7;
    font-weight: 400;
    color: var(--color-text-secondary);
}

a {
    color: var(--color-accent);
    text-decoration: none;
    transition: color var(--transition-fast);
}

a:hover, a:focus {
    color: var(--color-accent-deep);
    text-decoration: underline;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* Shared kicker (uppercase sage label) */
.kicker {
    display: inline-block;
    margin-bottom: var(--space-4);
    font-size: var(--text-xs);
    letter-spacing: var(--tracking-widest);
    text-transform: uppercase;
    color: var(--color-sage-deep);
}

.kicker--tight { margin-bottom: var(--space-3); }
.kicker--bare  { margin-bottom: 0; }

/* Shared interactive tile — grouped to avoid Bootstrap's .card collision */
.event-card,
.home-path-card {
    display: flex;
    flex-direction: column;
    background: var(--color-bg-primary);
    border: var(--border-width) var(--border-style) var(--color-border);
    border-radius: var(--radius-md);
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: border-color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);
}

.event-card:hover, .event-card:focus,
.home-path-card:hover, .home-path-card:focus {
    border-color: var(--color-border-strong);
    transform: translateY(calc(-1 * var(--space-0-5)));
    box-shadow: var(--shadow-card-hover);
    text-decoration: none;
    color: inherit;
}

/* ============================================================
   LAYOUT — MainLayout
   ============================================================ */
.layout {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.layout-main { flex: 1; }

.site-footer {
    background: var(--color-bg-secondary);
    border-top: var(--border-width) var(--border-style) var(--color-border);
    padding: var(--space-10) var(--space-8);
    text-align: center;
}

.site-footer-brand {
    margin-bottom: var(--space-2);
    font-family: var(--font-heading);
    font-size: var(--text-sm);
    letter-spacing: var(--tracking-widest);
    text-transform: uppercase;
    color: var(--color-text-secondary);
}

.site-footer-meta,
.site-footer-credit {
    font-size: var(--text-xs);
    letter-spacing: var(--tracking-wide);
    color: var(--color-text-tertiary);
}

.site-footer-credit { margin-top: var(--space-3); }

.site-footer-link,
.site-footer-link:link,
.site-footer-link:visited,
.site-footer-link:hover,
.site-footer-link:focus,
.site-footer-link:active {
    color: inherit;
    text-decoration: none;
}

#blazor-error-ui {
    display: none;
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    z-index: 1050;
    padding: var(--space-4) var(--space-5);
    background: var(--color-bg-secondary);
    border-top: var(--border-width) var(--border-style) var(--color-border);
    box-shadow: var(--shadow-error-ui);
    color: var(--color-text-primary);
}

#blazor-error-ui .dismiss {
    position: absolute;
    top: var(--space-2);
    right: var(--space-4);
    cursor: pointer;
    color: var(--color-text-secondary);
    font-size: var(--text-lg);
}

#blazor-error-ui .dismiss:hover { color: var(--color-accent-deep); }

/* ============================================================
   LAYOUT — Top Nav (NavMenu)
   ============================================================ */
.top-nav {
    position: sticky;
    top: 0;
    z-index: 100;
    background: var(--color-bg-primary);
    border-bottom: var(--border-width) var(--border-style) var(--color-border);
}

.top-nav-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-6);
    padding: var(--space-4) var(--space-8);
    max-width: var(--page-max);
    margin: 0 auto;
}

.top-nav-brand {
    display: inline-flex;
    flex-direction: column;
    text-decoration: none;
    line-height: 1.1;
}

.top-nav-brand:hover,
.top-nav-brand:focus,
.top-nav-brand:active {
    text-decoration: none;
}

.top-nav-brand-name {
    font-family: var(--font-heading);
    font-size: var(--text-sm);
    letter-spacing: var(--tracking-widest);
    text-transform: uppercase;
    color: var(--color-text-primary);
}

.top-nav-brand-tagline {
    margin-top: var(--space-0-5);
    font-family: var(--font-body);
    font-size: var(--text-xs);
    letter-spacing: var(--tracking-widest);
    color: var(--color-text-tertiary);
    text-align: center;
    text-indent: var(--tracking-widest);
}

.top-nav-toggler {
    display: none;
    width: var(--control-md);
    height: var(--control-md);
    align-items: center;
    justify-content: center;
    background: transparent;
    border: var(--border-width) var(--border-style) var(--color-border);
    border-radius: var(--radius-md);
    color: var(--color-text-primary);
    cursor: pointer;
}

.top-nav-toggler:hover { border-color: var(--color-border-strong); }
.top-nav-toggler .bi { font-size: var(--text-md); line-height: 1; }

.top-nav-menu {
    display: flex;
    align-items: center;
    gap: var(--space-6);
    font-size: var(--text-xs);
}

.top-nav-link {
    color: var(--color-text-secondary);
    font-size: var(--text-sm);
    text-decoration: none;
    padding-bottom: var(--space-0-5);
    border-bottom: var(--border-width-strong) var(--border-style) transparent;
    transition: color var(--transition-fast), border-color var(--transition-fast);
}

.top-nav-link:hover,
.top-nav-link:focus,
.top-nav-link:active {
    color: var(--color-text-primary);
    text-decoration: none;
}

.top-nav-link.active {
    color: var(--color-text-primary);
    text-decoration: none;
    border-bottom-color: var(--color-accent-light);
}

.top-nav-lang {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1-5);
    margin-left: var(--space-2);
    font-size: var(--text-xs);
    letter-spacing: var(--tracking-wider);
    color: var(--color-text-tertiary);
}

.top-nav-lang-btn {
    background: none;
    border: none;
    padding: 0;
    margin: 0;
    font: inherit;
    color: var(--color-text-tertiary);
    cursor: pointer;
    transition: color var(--transition-fast);
}

.top-nav-lang-btn:hover { color: var(--color-text-secondary); }
.top-nav-lang-btn.is-active { color: var(--color-accent); }
.top-nav-lang-sep { color: var(--color-text-tertiary); }

/* ============================================================
   FORMS & BUTTONS
   ============================================================ */
label {
    display: block;
    margin-bottom: var(--space-1-5);
    padding: 0;
    font-size: var(--text-xs);
    letter-spacing: var(--tracking-wider);
    text-transform: uppercase;
    color: var(--color-text-tertiary);
}

input, textarea, select {
    width: 100%;
    padding: 0 var(--space-3);
    height: var(--input-height);
    font-family: var(--font-body);
    font-size: var(--text-base);
    color: var(--color-text-primary);
    background: var(--color-bg-primary);
    border: var(--border-width) var(--border-style) var(--color-border);
    border-radius: var(--radius-sm);
    transition: border-color var(--transition-fast);
}

textarea {
    height: auto;
    min-height: var(--space-20);
    padding: var(--space-2) var(--space-3);
    line-height: 1.6;
    resize: vertical;
}

input:focus, textarea:focus, select:focus {
    outline: none;
    border-color: var(--color-accent);
    box-shadow: none;
}

/* Blazor <FocusOnNavigate Selector="main"> moves focus to the <main> content region on
   every navigation (a11y). It is focused programmatically via tabindex="-1", so suppress
   the default browser focus ring there — keyboard users never tab to it, nothing is lost.
   <main> sits at the top of the content, so focusing it does not scroll the page. */
[tabindex="-1"]:focus {
    outline: none;
}

input:disabled, textarea:disabled, select:disabled {
    background: var(--color-bg-secondary);
    color: var(--color-text-tertiary);
    cursor: not-allowed;
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-3) var(--space-8);
    font-family: var(--font-body);
    font-size: var(--text-xs);
    font-weight: 500;
    letter-spacing: var(--tracking-wider);
    text-transform: uppercase;
    line-height: 1;
    border: var(--border-width) var(--border-style) transparent;
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
    text-decoration: none;
    white-space: nowrap;
}

.btn:disabled { opacity: 0.5; cursor: not-allowed; }

.btn-primary {
    color: var(--color-bg-primary);
    background: var(--color-accent);
    border-color: var(--color-accent);
}

.btn-primary:hover:not(:disabled),
.btn-primary:focus:not(:disabled) {
    color: var(--color-bg-primary);
    background: var(--color-accent-deep);
    border-color: var(--color-accent-deep);
    text-decoration: none;
}

.btn-secondary {
    color: var(--color-text-secondary);
    background: transparent;
    border-color: var(--color-border);
}

.btn-secondary:hover:not(:disabled),
.btn-secondary:focus:not(:disabled) {
    color: var(--color-text-primary);
    background: var(--color-bg-secondary);
    border-color: var(--color-border-strong);
    text-decoration: none;
}

/* Validation */
.valid.modified:not([type=checkbox]) { border-color: var(--color-success); }
.invalid { border-color: var(--color-error) !important; }
.validation-message { color: var(--color-error); font-size: var(--text-sm); margin-top: var(--space-1); }

/* ============================================================
   CONTACT SECTION (transitional — ContactForm internals
   still use these wrappers; full form migration pending)
   ============================================================ */
.contact-section {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    max-width: var(--content-xs);
    margin: 0 auto;
    padding: var(--space-12) 0 var(--space-12) 0;
    background: transparent;
}

.contact-section h2 {
    margin: 0 0 var(--space-2) 0;
    font-family: var(--font-heading);
    font-weight: 400;
    font-size: var(--text-2xl);
    text-align: center;
    color: var(--color-text-primary);
}

#contact { padding-left: var(--space-12); padding-right: var(--space-12); }

#contact-form { display: flex; flex-direction: column; gap: var(--space-3); }

.contact-form-buttons-section {
    display: flex;
    justify-content: center;
    gap: var(--space-3);
    margin-top: var(--space-4);
}

.contact-section > img { display: none; }

/* Native checkbox group for "Wybierz temat" — replaces SfListBox */
.course-checkbox-group {
    margin: 0;
    padding: 0;
    border: none;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.course-checkbox-group legend {
    margin-bottom: var(--space-1-5);
    padding: 0;
    font-size: var(--text-xs);
    letter-spacing: var(--tracking-wider);
    text-transform: uppercase;
    color: var(--color-text-tertiary);
}

.course-checkbox-item {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    margin: 0;
    padding: 0;
    font-size: var(--text-base);
    letter-spacing: var(--tracking-normal);
    text-transform: none;
    color: var(--color-text-primary);
    cursor: pointer;
}

.course-checkbox-item input[type="checkbox"] {
    width: var(--control-xs);
    height: var(--control-xs);
    margin: 0;
    accent-color: var(--color-accent);
    cursor: pointer;
}

.course-checkbox-item input[type="checkbox"]:disabled,
.course-checkbox-item input[type="checkbox"]:disabled + span {
    cursor: not-allowed;
    color: var(--color-text-tertiary);
}

/* Alerts — replace SfMessage */
.alert {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    max-width: var(--content-xs);
    margin: var(--space-4) auto 0;
    padding: var(--space-3) var(--space-4);
    border: var(--border-width-strong) var(--border-style) var(--color-border);
    border-radius: var(--radius-sm);
    background: var(--color-bg-primary);
    color: var(--color-text-primary);
    font-size: var(--text-sm);
    line-height: 1.5;
}

.alert-success {
    border-color: var(--color-sage-deep);
    background: var(--color-bg-secondary);
}

.alert-error {
    border-color: var(--color-accent-deep);
    background: var(--color-bg-secondary);
    color: var(--color-accent-deep);
}

.alert-text {
    flex: 1;
    white-space: pre-line;
}

.alert-close {
    flex-shrink: 0;
    width: var(--control-sm);
    height: var(--control-sm);
    padding: 0;
    background: transparent;
    border: none;
    color: inherit;
    font-size: var(--text-lg);
    line-height: 1;
    cursor: pointer;
    transition: color var(--transition-fast);
}

.alert-close:hover, .alert-close:focus { color: var(--color-accent-deep); }

/* ============================================================
   GALLERY (used by ShowEventImagesSection)
   ============================================================ */
.event-gallery {
    position: relative;
    max-width: var(--content-lg);
    margin: 0 auto;
    padding: var(--space-5);
    background: var(--color-bg-primary);
    border: var(--border-width) var(--border-style) var(--color-border);
    border-radius: var(--radius-md);
    overflow: hidden;
}

.event-gallery::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: var(--border-width-thick);
    background: var(--color-accent-light);
}

.main-image { width: 100%; margin-bottom: var(--space-4); text-align: center; }
.main-image img { width: 100%; max-height: 35rem; height: auto; object-fit: contain; }

.thumbnails-container { display: flex; align-items: center; gap: var(--space-3); justify-content: center; }

.thumbnails-wrapper {
    display: flex;
    overflow-x: auto;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
    flex: 1;
    justify-content: space-evenly;
}

.thumbnails-wrapper::-webkit-scrollbar { display: none; }

.thumbnail-nav {
    width: var(--control-md);
    height: var(--control-md);
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-bg-primary);
    border: var(--border-width) var(--border-style) var(--color-border);
    border-radius: var(--radius-pill);
    color: var(--color-accent);
    font-size: var(--text-lg);
    cursor: pointer;
    transition: background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
    flex-shrink: 0;
}

.thumbnail-nav:hover, .thumbnail-nav:focus {
    background: var(--color-accent);
    color: var(--color-bg-primary);
    border-color: var(--color-accent);
}

.thumbnails { display: flex; flex-wrap: nowrap; gap: var(--space-2); justify-content: center; min-width: min-content; }

.thumbnail {
    width: 5rem;
    height: 5rem;
    border-radius: var(--radius-sm);
    overflow: hidden;
    cursor: pointer;
    border: var(--border-width-thick) var(--border-style) transparent;
    transition: border-color var(--transition-fast), opacity var(--transition-fast);
    opacity: 0.7;
    flex-shrink: 0;
}

.thumbnail img { width: 100%; height: 100%; object-fit: cover; }
.thumbnail:hover { opacity: 1; }
.thumbnail.selected { border-color: var(--color-accent); opacity: 1; }

/* ============================================================
   BLAZOR ERROR BOUNDARY
   ============================================================ */
.blazor-error-boundary {
    background: var(--color-accent-deep);
    padding: var(--space-4);
    color: var(--color-bg-primary);
    border-radius: var(--radius-sm);
    margin: var(--space-4);
}

.blazor-error-boundary::after { content: "Wystąpił niespodziewany błąd."; }

/* ============================================================
   COMPONENT — ViewSchedule
   ============================================================ */
.schedule-section {
    background: var(--color-bg-secondary);
    padding: var(--space-20) var(--space-8);
}

.schedule-section-header { text-align: center; margin-bottom: var(--space-10); }

.schedule-h2 {
    margin: 0;
    font-family: var(--font-heading);
    font-weight: 400;
    font-size: var(--text-2xl);
    line-height: 1.2;
    color: var(--color-text-primary);
    text-align: center;
}

.schedule-loading { text-align: center; color: var(--color-text-tertiary); }

.schedule-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-4);
    max-width: var(--content-lg);
    margin: 0 auto;
}

.schedule-day-card {
    background: var(--color-bg-primary);
    border: var(--border-width) var(--border-style) var(--color-border);
    border-radius: var(--radius-md);
    padding: var(--space-5) var(--space-5) var(--space-4);
}

.schedule-day-card.is-single { grid-column: 1 / -1; }

.schedule-day-name {
    margin: 0 0 var(--space-3) 0;
    padding-bottom: var(--space-2);
    border-bottom: var(--border-width) var(--border-style) var(--color-border);
    font-family: var(--font-heading);
    font-weight: 400;
    font-size: var(--text-lg);
    color: var(--color-text-primary);
}

.schedule-class-row {
    display: flex;
    gap: var(--space-3);
    align-items: baseline;
    font-size: var(--text-sm);
    line-height: 1.5;
    margin-bottom: var(--space-2);
}

.schedule-class-row:last-child { margin-bottom: 0; }

.schedule-class-time {
    flex: 0 0 var(--space-12);
    font-family: var(--font-heading);
    font-style: italic;
    color: var(--color-accent);
}

.schedule-class-body { color: var(--color-text-primary); }
.schedule-class-location { color: var(--color-text-tertiary); }

/* ============================================================
   COMPONENT — OpinionsSection
   ============================================================ */
.opinions-block {
    background: var(--color-bg-primary);
    padding: var(--space-20) var(--space-12);
    text-align: center;
}

.opinions-header { margin-bottom: var(--space-8); }

.opinions-card { max-width: var(--content-sm); margin: 0 auto; text-align: left; }

.opinions-quote-mark {
    display: block;
    margin-bottom: var(--space-4);
    font-family: var(--font-heading);
    font-size: var(--text-3xl);
    line-height: 0.5;
    color: var(--color-accent-light);
}

.opinions-text {
    margin: 0 0 var(--space-4) 0;
    font-family: var(--font-heading);
    font-style: italic;
    font-size: var(--text-md);
    line-height: 1.7;
    color: var(--color-text-primary);
}

.opinions-text:last-of-type { margin-bottom: 0; }

.opinions-attribution {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    margin-top: var(--space-6);
}

.opinions-rule { display: inline-block; width: var(--control-md); height: var(--border-width); background: var(--color-accent-light); }

.opinions-author {
    font-size: var(--text-xs);
    letter-spacing: var(--tracking-wider);
    text-transform: uppercase;
    color: var(--color-accent);
}

.opinions-nav {
    margin-top: var(--space-6);
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    color: var(--color-text-tertiary);
}

.opinions-nav-btn {
    width: var(--control-sm);
    height: var(--control-sm);
    background: transparent;
    border: var(--border-width) var(--border-style) var(--color-border);
    border-radius: var(--radius-pill);
    font-size: var(--text-base);
    line-height: 1;
    color: var(--color-text-secondary);
    cursor: pointer;
    transition: border-color var(--transition-fast), color var(--transition-fast);
}

.opinions-nav-btn:hover, .opinions-nav-btn:focus {
    border-color: var(--color-border-strong);
    color: var(--color-accent);
}

.opinions-nav-counter {
    font-size: var(--text-xs);
    letter-spacing: var(--tracking-wide);
    color: var(--color-text-tertiary);
}

/* ============================================================
   COMPONENT — ShowEvents (event card grid)
   ============================================================ */
.show-events-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-5);
    max-width: var(--content-lg);
    margin: 0 auto;
}

.show-events-state { text-align: center; padding: var(--space-12) var(--space-5); color: var(--color-text-tertiary); }
.show-events-state i { display: block; font-size: var(--text-2xl); color: var(--color-accent-light); margin-bottom: var(--space-3); }
.show-events-state p { margin: 0; font-size: var(--text-base); }


.event-card-image {
    aspect-ratio: 1 / 1;
    background-color: var(--color-bg-tertiary);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

.event-card-image--fallback {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: var(--color-bg-secondary);
    text-align: center;
}

.event-card-fallback-brand {
    font-family: var(--font-heading);
    font-size: var(--text-sm);
    letter-spacing: var(--tracking-widest);
    text-transform: uppercase;
    /* color: var(--color-accent-light); */ /* a11y: text — FAIL */
    color: var(--color-accent);
}

.event-card-fallback-tagline {
    margin-top: var(--space-0-5);
    font-family: var(--font-body);
    font-size: var(--text-2xs);
    letter-spacing: var(--tracking-widest);
    color: var(--color-text-tertiary);
    text-transform: lowercase;
}

.event-card-body { padding: var(--space-5); }

.event-card-location {
    display: flex;
    align-items: center;
    gap: var(--space-1-5);
    margin-bottom: var(--space-3);
    font-size: var(--text-xs);
    letter-spacing: var(--tracking-wide);
    color: var(--color-sage-deep);
}

.event-card-location i { font-size: var(--text-xs); flex-shrink: 0; }

.event-card-title {
    margin: 0 0 var(--space-2) 0;
    font-family: var(--font-heading);
    font-weight: 400;
    font-size: var(--text-lg);
    line-height: 1.25;
    color: var(--color-text-primary);
}

.event-card-desc {
    margin: 0 0 var(--space-4) 0;
    font-size: var(--text-sm);
    line-height: 1.6;
    color: var(--color-text-secondary);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.event-card-link {
    display: inline-block;
    font-size: var(--text-xs);
    letter-spacing: var(--tracking-wider);
    text-transform: uppercase;
    color: var(--color-accent);
}

/* ============================================================
   PAGE — Home
   ============================================================ */
.home-italic { font-family: var(--font-heading); font-style: italic; }

.home-hero {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: var(--color-bg-primary);
    max-width: var(--page-max);
    margin: 0 auto;
}

.home-hero-media {
    background-color: var(--color-bg-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.home-hero-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.home-hero-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: var(--space-14) var(--space-10);
}

.home-hero-h1 {
    margin: 0 0 var(--space-1) 0;
    font-family: var(--font-heading);
    font-weight: 400;
    font-size: var(--text-3xl);
    line-height: 1.05;
    letter-spacing: var(--tracking-tight);
    color: var(--color-text-primary);
}

.home-hero-subtitle {
    margin: 0 0 var(--space-8) 0;
    font-family: var(--font-heading);
    font-style: italic;
    font-size: var(--text-xl);
    color: var(--color-accent);
}

.home-hero-ahimsa {
    margin: 0 0 var(--space-6) 0;
    padding: var(--space-2) 0 var(--space-2) var(--space-3);
    border-left: var(--border-width-thick) var(--border-style) var(--color-accent-light);
    font-family: var(--font-heading);
    font-style: italic;
    font-size: var(--text-base);
    line-height: 1.5;
    color: var(--color-text-secondary);
}

.home-hero-lead {
    margin: 0 0 var(--space-8) 0;
    font-size: var(--text-base);
    line-height: 1.7;
    color: var(--color-text-secondary);
}

.home-hero-cta {
    align-self: flex-start;
    display: inline-block;
    padding: var(--space-3) var(--space-8);
    background: var(--color-accent);
    color: var(--color-bg-primary);
    font-size: var(--text-xs);
    letter-spacing: var(--tracking-wider);
    text-transform: uppercase;
    text-decoration: none;
    border-radius: var(--radius-sm);
    transition: background-color var(--transition-fast);
}

.home-hero-cta:hover, .home-hero-cta:focus {
    background: var(--color-accent-deep);
    color: var(--color-bg-primary);
    text-decoration: none;
}

.home-quote {
    background: var(--color-bg-secondary);
    padding: var(--space-16) var(--space-12);
    text-align: center;
}

.home-quote-mark {
    display: block;
    margin-bottom: var(--space-2);
    font-family: var(--font-heading);
    font-size: var(--text-3xl);
    line-height: 0.5;
    color: var(--color-accent-light);
}

.home-quote-body {
    margin: 0 auto;
    max-width: var(--content-sm);
    font-family: var(--font-heading);
    font-style: italic;
    font-size: var(--text-lg);
    line-height: 1.55;
    color: var(--color-text-primary);
}

.home-about {
    background: var(--color-bg-primary);
    max-width: var(--page-max);
    margin: 0 auto;
    padding: var(--space-16) var(--space-12);
}

.home-about::after {
    content: "";
    display: block;
    clear: both;
}

.home-about-media {
    float: left;
    width: 40%;
    margin: 0 var(--space-8) var(--space-4) 0;
    background-color: var(--color-bg-primary);
    aspect-ratio: 4 / 5;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.home-about-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

/* TODO remove: empty rule — float wrap is automatic */
/* .home-about-content {
    text flows around floated .home-about-media
} */

.home-about-h2 {
    margin: 0 0 var(--space-5) 0;
    font-family: var(--font-heading);
    font-weight: 400;
    font-size: var(--text-2xl);
    line-height: 1.2;
    color: var(--color-text-primary);
}

.home-about-content p {
    margin: 0 0 var(--space-3) 0;
    font-size: var(--text-base);
    line-height: 1.8;
    color: var(--color-text-secondary);
}

.home-about-link {
    align-self: flex-start;
    margin-top: var(--space-5);
    padding-bottom: var(--space-1);
    font-size: var(--text-xs);
    letter-spacing: var(--tracking-wider);
    text-transform: uppercase;
    color: var(--color-accent);
    text-decoration: none;
    border-bottom: var(--border-width-strong) var(--border-style) var(--color-accent-light);
    transition: color var(--transition-fast), border-color var(--transition-fast);
}

.home-about-link:hover, .home-about-link:focus {
    color: var(--color-accent-deep);
    border-bottom-color: var(--color-accent-deep);
    text-decoration: none;
}

.home-paths {
    background: var(--color-bg-tertiary);
    padding: var(--space-20) var(--space-8);
}

.home-paths-header { text-align: center; margin-bottom: var(--space-10); }

.home-paths-h2 {
    margin: 0;
    font-family: var(--font-heading);
    font-weight: 400;
    font-size: var(--text-2xl);
    line-height: 1.2;
    color: var(--color-text-primary);
    text-align: center;
}

.home-paths-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: var(--space-5);
    max-width: var(--content-xl);
    margin: 0 auto;
}

.home-path-image {
    aspect-ratio: 1 / 1;
    background-color: var(--color-bg-tertiary);
    background-size: cover;
    background-position: center;
}

.home-path-num {
    padding: var(--space-5) var(--space-5) var(--space-1);
    font-family: var(--font-heading);
    font-style: italic;
    font-size: var(--text-sm);
    /* color: var(--color-accent-light); */ /* a11y: 2.29 contrast on bg-primary, FAIL */
    color: var(--color-accent);
}

.home-path-title {
    margin: 0;
    padding: 0 var(--space-5) var(--space-1-5);
    font-family: var(--font-heading);
    font-weight: 400;
    font-size: var(--text-xl);
    color: var(--color-text-primary);
}

.home-path-desc {
    flex: 1;
    margin: 0;
    padding: 0 var(--space-5) var(--space-3);
    font-size: var(--text-sm);
    line-height: 1.6;
    color: var(--color-text-secondary);
}

.home-path-link {
    padding: 0 var(--space-5) var(--space-5);
    font-size: var(--text-xs);
    letter-spacing: var(--tracking-wider);
    text-transform: uppercase;
    color: var(--color-accent);
}

.home-events { background: var(--color-bg-secondary); padding: var(--space-16) var(--space-8); }
.home-events-header { text-align: center; margin-bottom: var(--space-10); }

.home-events-h2 {
    margin: 0;
    font-family: var(--font-heading);
    font-weight: 400;
    font-size: var(--text-2xl);
    line-height: 1.2;
    color: var(--color-text-primary);
    text-align: center;
}

/* ============================================================
   PAGE — Course pages (Yoga / Pilates / Energotherapy)
   Shared layout. Per-page differences via modifier classes.
   ============================================================ */
.course-hero {
    background: var(--color-bg-secondary);
    padding: var(--space-20) var(--space-12);
    text-align: center;
}

.course-hero .kicker { margin-bottom: var(--space-6); }

.course-hero-quote {
    margin: 0 auto;
    max-width: var(--content-sm);
    font-family: var(--font-heading);
    font-style: italic;
    font-weight: 400;
    font-size: var(--text-xl);
    line-height: 1.45;
    color: var(--color-text-primary);
}

.course-hero-attribution {
    margin-top: var(--space-6);
    font-size: var(--text-xs);
    letter-spacing: var(--tracking-wider);
    text-transform: uppercase;
    color: var(--color-accent);
}

.course-intro { background: var(--color-bg-primary); padding: var(--space-20) var(--space-12); }
.course-intro-text { max-width: var(--content-md); margin: 0 auto var(--space-10); }

.course-intro-h2 {
    margin: 0 0 var(--space-5) 0;
    font-family: var(--font-heading);
    font-weight: 400;
    font-size: var(--text-2xl);
    line-height: 1.2;
    color: var(--color-text-primary);
}

.course-intro-text p {
    margin: 0 0 var(--space-4) 0;
    font-size: var(--text-base);
    line-height: 1.85;
    color: var(--color-text-secondary);
}

.course-intro-strong { color: var(--color-text-primary) !important; font-weight: 500; }

.course-intro-italic {
    font-family: var(--font-heading);
    font-style: italic;
    font-size: var(--text-md);
    color: var(--color-accent) !important;
    margin: 0 !important;
}

.course-intro-images {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-4);
    max-width: var(--content-md);
    margin: 0 auto;
}

.course-intro-image {
    aspect-ratio: 1 / 1;
    background-color: var(--color-bg-tertiary);
    background-size: cover;
    background-position: center;
    border-radius: var(--radius-sm);
}

.course-bio { background: var(--color-bg-primary); padding: var(--space-10) var(--space-12) var(--space-16); }
.course-bio--alt { background: var(--color-bg-secondary); padding: var(--space-16) var(--space-12); }

.course-bio-inner { max-width: var(--content-md); margin: 0 auto; }

.course-bio-inner p {
    margin: 0 0 var(--space-4) 0;
    font-size: var(--text-base);
    line-height: 1.85;
    color: var(--color-text-secondary);
}

/* Course bio lists — shared base */
.course-bio-list,
.course-bio-list--dash {
    padding: 0;
    list-style: none;
}

.course-bio-list li,
.course-bio-list--dash li {
    position: relative;
    padding-left: var(--space-6);
    font-size: var(--text-base);
}

.course-bio-list li::before,
.course-bio-list--dash li::before {
    content: "\f3cd";
    font-family: "bootstrap-icons";
    font-style: normal;
    position: absolute;
    left: 0;
    transform: translateY(-50%);
    color: var(--color-accent);
    font-size: var(--text-sm);
    line-height: 1;
}

/* Default — italic Fraunces (yoga / pilates), single-line items, marker centered on full li */
.course-bio-list {
    margin: 0 0 var(--space-4) 0;
    font-family: var(--font-heading);
    font-style: italic;
    color: var(--color-text-primary);
}
.course-bio-list li { margin-bottom: var(--space-1); }
.course-bio-list li::before { top: 50%; }

/* Dash variant — body font (energotherapy), multi-line items, marker pinned to first line */
.course-bio-list--dash {
    margin: 0 0 var(--space-6) 0;
    font-family: var(--font-body);
    font-style: normal;
}
.course-bio-list--dash li {
    margin-bottom: var(--space-2);
    line-height: 1.7;
    color: var(--color-text-secondary);
}
.course-bio-list--dash li::before { top: 0.85em; }

.course-bio-italic {
    font-family: var(--font-heading);
    font-style: italic;
    font-size: var(--text-md);
    color: var(--color-accent) !important;
    text-align: center;
    margin-top: var(--space-6) !important;
}

.course-form-section { background: var(--color-bg-secondary); padding: var(--space-16) var(--space-12) 0; }
.course-form-section--alt { background: var(--color-bg-primary); }
.course-form-header { text-align: center; margin-bottom: var(--space-6); }
.course-form-subtitle {
    display: block;
    margin-top: var(--space-2);
    font-family: var(--font-heading);
    font-style: italic;
    font-size: var(--text-sm);
    letter-spacing: var(--tracking-wide);
    color: var(--color-text-secondary);
}

/* ============================================================
   PAGE — Events list
   ============================================================ */
.events-hero {
    background: var(--color-bg-primary);
    padding: var(--space-20) var(--space-12) var(--space-8);
    text-align: center;
}

.events-h1 {
    margin: 0 0 var(--space-4) 0;
    font-family: var(--font-heading);
    font-weight: 400;
    font-size: var(--text-3xl);
    line-height: 1.1;
    letter-spacing: var(--tracking-tight);
    color: var(--color-text-primary);
    text-align: center;
}

.events-lead {
    max-width: var(--content-xs);
    margin: 0 auto;
    font-size: var(--text-base);
    line-height: 1.7;
    color: var(--color-text-secondary);
}

.events-filters {
    background: var(--color-bg-primary);
    padding: var(--space-6) var(--space-12) var(--space-4);
    display: flex;
    justify-content: center;
    gap: var(--space-2);
    flex-wrap: wrap;
}

.events-filter-pill {
    padding: var(--space-2) var(--space-4);
    background: transparent;
    border: var(--border-width) var(--border-style) var(--color-border);
    border-radius: var(--radius-pill);
    font-family: var(--font-body);
    font-size: var(--text-xs);
    letter-spacing: var(--tracking-wider);
    text-transform: uppercase;
    color: var(--color-text-secondary);
    cursor: pointer;
    transition: background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
}

.events-filter-pill:hover { border-color: var(--color-border-strong); color: var(--color-text-primary); }

.events-filter-pill.is-active {
    background: var(--color-accent);
    border-color: var(--color-accent);
    color: var(--color-bg-primary);
}

.events-filter-pill.is-active:hover {
    background: var(--color-accent-deep);
    border-color: var(--color-accent-deep);
    color: var(--color-bg-primary);
}

.events-grid-section { background: var(--color-bg-primary); padding: var(--space-8) var(--space-8) var(--space-20); }

/* ============================================================
   PAGE — Event detail
   ============================================================ */
.event-breadcrumb {
    background: var(--color-bg-primary);
    padding: var(--space-4) var(--space-8) 0;
    font-size: var(--text-xs);
    letter-spacing: var(--tracking-wide);
    color: var(--color-text-tertiary);
    max-width: var(--content-xl);
    margin: 0 auto;
}

.event-breadcrumb a { color: var(--color-accent); text-decoration: none; }
.event-breadcrumb a:hover { text-decoration: underline; }
/* .event-breadcrumb-sep was --color-accent-light — text glyph, FAIL contrast */
.event-breadcrumb-sep { margin: 0 var(--space-2); color: var(--color-accent); }
.event-breadcrumb-current { color: var(--color-text-tertiary); }

.event-hero {
    background: var(--color-bg-primary);
    padding: var(--space-12) var(--space-12) var(--space-16);
    text-align: center;
}

.event-hero-num {
    margin-bottom: var(--space-4);
    font-family: var(--font-heading);
    font-style: italic;
    font-size: var(--text-sm);
    /* color: var(--color-accent-light); */ /* a11y: text — FAIL */
    color: var(--color-accent);
}

.event-hero-title {
    margin: 0 0 var(--space-6) 0;
    font-family: var(--font-heading);
    font-weight: 400;
    font-size: var(--text-3xl);
    line-height: 1.15;
    letter-spacing: var(--tracking-tight);
    color: var(--color-text-primary);
    text-align: center;
}

.event-hero-meta {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: var(--space-8);
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
}

.event-hero-meta-item { display: inline-flex; align-items: center; gap: var(--space-2); }
.event-hero-meta-item i { color: var(--color-accent); font-size: var(--text-xs); flex-shrink: 0; }

.event-description { background: var(--color-bg-secondary); padding: var(--space-16) var(--space-12); }
.event-description-inner { max-width: var(--content-md); margin: 0 auto; text-align: center; }

.event-description-text {
    margin: 0 0 var(--space-3) 0;
    font-size: var(--text-base);
    line-height: 1.85;
    color: var(--color-text-secondary);
    text-align: left;
}

.event-description-italic {
    margin: var(--space-6) 0 0 0;
    font-family: var(--font-heading);
    font-style: italic;
    font-size: var(--text-md);
    color: var(--color-accent);
    text-align: center;
}

.event-dates { background: var(--color-bg-primary); padding: var(--space-16) var(--space-8); }
.event-dates-header { text-align: center; margin-bottom: var(--space-8); }

.event-dates-h2 {
    margin: 0;
    font-family: var(--font-heading);
    font-weight: 400;
    font-size: var(--text-xl);
    line-height: 1.2;
    color: var(--color-text-primary);
    text-align: center;
}

.event-dates-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-4);
    max-width: var(--content-sm);
    margin: 0 auto;
}

.event-date-card {
    position: relative;
    display: block;
    padding: var(--space-6) var(--space-5);
    background: var(--color-bg-primary);
    border: var(--border-width) var(--border-style) var(--color-border);
    border-radius: var(--radius-md);
    text-align: left;
    cursor: pointer;
    font: inherit;
    color: inherit;
    transition: border-color var(--transition-fast);
}

.event-date-card:hover { border-color: var(--color-border-strong); }
.event-date-card.is-selected { border: var(--border-width-emph) var(--border-style) var(--color-accent); }

.event-date-radio {
    position: absolute;
    top: var(--space-3);
    right: var(--space-3);
    width: var(--control-xs);
    height: var(--control-xs);
    border-radius: var(--radius-pill);
    background: var(--color-bg-primary);
    border: var(--border-width) var(--border-style) var(--color-border);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--color-bg-primary);
}

.event-date-card.is-selected .event-date-radio {
    background: var(--color-accent);
    border-color: var(--color-accent);
}

.event-date-day {
    display: block;
    margin-bottom: var(--space-3);
    font-size: var(--text-xs);
    letter-spacing: var(--tracking-wider);
    text-transform: uppercase;
    color: var(--color-sage-deep);
}

.event-date-date {
    display: block;
    margin-bottom: var(--space-2);
    line-height: 1;
    color: var(--color-text-primary);
}

.event-date-num { font-family: var(--font-heading); font-size: var(--text-2xl); }
.event-date-month { font-family: var(--font-heading); font-style: italic; font-size: var(--text-md); color: var(--color-accent); }

.event-date-meta {
    display: block;
    font-size: var(--text-sm);
    letter-spacing: var(--tracking-wide);
    color: var(--color-text-secondary);
}

.event-gallery-section { background: var(--color-bg-primary); padding: var(--space-12) var(--space-8) var(--space-8); }
.event-gallery-header { text-align: center; margin-bottom: var(--space-6); }

.event-form { background: var(--color-bg-secondary); padding: var(--space-16) var(--space-12); }
.event-form-header { text-align: center; margin-bottom: var(--space-10); }

.event-form-h2 {
    margin: 0 0 var(--space-3) 0;
    font-family: var(--font-heading);
    font-weight: 400;
    font-size: var(--text-2xl);
    line-height: 1.2;
    color: var(--color-text-primary);
    text-align: center;
}

.event-form-lead {
    max-width: var(--content-xs);
    margin: 0 auto;
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
}

.event-form-card {
    max-width: var(--content-xs);
    margin: 0 auto;
    background: var(--color-bg-primary);
    border: var(--border-width) var(--border-style) var(--color-border);
    border-radius: var(--radius-lg);
    padding: var(--space-8);
}

/* ============================================================
   RESPONSIVE — mobile (<768px)
   ============================================================ */
@media (max-width: 767px) {
    /* MainLayout */
    .site-footer { padding: var(--space-8) var(--space-5); }

    /* Top nav */
    .top-nav-inner { padding: var(--space-3) var(--space-5); }
    .top-nav-toggler { display: inline-flex; }
    .top-nav-menu {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        z-index: 100;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        padding: var(--space-3) var(--space-5) var(--space-4);
        background: var(--color-bg-primary);
        border-bottom: var(--border-width) var(--border-style) var(--color-border);
    }
    .top-nav-menu.is-open { display: flex; }
    .top-nav-link {
        padding: var(--space-3) 0;
        border-bottom: var(--border-width) var(--border-style) var(--color-border);
    }
    .top-nav-menu .top-nav-link:last-of-type { border-bottom: none; }
    .top-nav-link.active { border-bottom-color: var(--color-accent-light); }
    .top-nav-lang { margin: var(--space-3) 0 0; justify-content: flex-start; }

    /* Schedule */
    .schedule-section { padding: var(--space-12) var(--space-5); }
    .schedule-grid { grid-template-columns: 1fr; }
    .schedule-day-card.is-single { grid-column: auto; }

    /* Opinions */
    .opinions-block { padding: var(--space-12) var(--space-5); }
    .opinions-text { font-size: var(--text-base); }

    /* ShowEvents */
    .show-events-grid { grid-template-columns: 1fr; }

    /* Gallery */
    .event-gallery {
        padding: var(--space-3);
        margin: var(--space-5) auto;
        border-radius: var(--radius-sm);
    }
    .main-image img { max-height: 20rem; }
    .thumbnail { width: 4rem; height: 4rem; }
    .thumbnails { gap: var(--space-1-5); }
    .thumbnail-nav { width: var(--control-sm); height: var(--control-sm); font-size: var(--text-base); }
    .thumbnails-container { gap: var(--space-2); }

    /* Home */
    .home-hero, .home-about { grid-template-columns: 1fr; }
    .home-hero-content { padding: var(--space-10) var(--space-5); }
    .home-about { padding: var(--space-12) var(--space-5); }
    .home-about-media { float: none; width: 100%; margin: 0 0 var(--space-6) 0; aspect-ratio: 1 / 1; }
    .home-about-content { padding: 0; }
    .home-quote { padding: var(--space-12) var(--space-5); }
    .home-quote-body { font-size: var(--text-md); }
    .home-paths { padding: var(--space-12) var(--space-5); }
    .home-paths-grid { gap: var(--space-4); }
    .home-events { padding: var(--space-12) var(--space-5); }

    /* Contact form */
    #contact { padding-left: var(--space-5); padding-right: var(--space-5); }
    .contact-section { padding: var(--space-12) var(--space-5); }

    /* Course pages */
    .course-hero { padding: var(--space-12) var(--space-5); }
    .course-hero-quote { font-size: var(--text-lg); }
    .course-intro,
    .course-bio,
    .course-bio--alt { padding-left: var(--space-5); padding-right: var(--space-5); }
    .course-intro { padding-top: var(--space-12); padding-bottom: var(--space-12); }
    .course-bio--alt { padding-top: var(--space-12); padding-bottom: var(--space-12); }
    .course-intro-images { grid-template-columns: 1fr; }
    .course-form-section { padding: var(--space-12) var(--space-5) 0; }

    /* Events list */
    .events-hero { padding: var(--space-12) var(--space-5) var(--space-5); }
    .events-filters { padding: var(--space-4) var(--space-5); }
    .events-grid-section { padding: var(--space-5) var(--space-5) var(--space-12); }

    /* Event detail */
    .event-breadcrumb { padding: var(--space-3) var(--space-5) 0; }
    .event-hero { padding: var(--space-10) var(--space-5) var(--space-12); }
    .event-hero-meta { flex-direction: column; gap: var(--space-3); }
    .event-description, .event-form { padding: var(--space-12) var(--space-5); }
    .event-dates { padding: var(--space-12) var(--space-5); }
    .event-dates-grid { grid-template-columns: 1fr; }
    .event-form-card { padding: var(--space-5); }
    .event-gallery-section { padding: var(--space-8) var(--space-5); }
}

/* ==========================================================================
   Zgody cookie — baseline (kolorystyka/layout do dopracowania później)
   ========================================================================== */

/* Klauzula RODO pod formularzem kontaktowym */
.contact-form-rodo {
    margin-top: var(--space-4);
    font-size: var(--text-xs);
    line-height: 1.5;
    color: var(--color-text-secondary);
}

.contact-form-rodo-link,
.contact-form-rodo-link:link,
.contact-form-rodo-link:visited {
    color: var(--color-accent);
    text-decoration: underline;
}

/* Linki do polityk w stopce */
.site-footer-policies {
    margin-top: var(--space-3);
    font-size: var(--text-xs);
    letter-spacing: var(--tracking-wide);
    color: var(--color-text-tertiary);
}

.site-footer-policies .site-footer-link { text-decoration: underline; }
.site-footer-policies-sep { margin: 0 var(--space-2); }

/* Pływający przycisk „Ustawienia cookie" — lewy dolny róg (wg Polityki Cookie) */
.cookie-settings-btn {
    position: fixed;
    bottom: var(--space-4);
    left: var(--space-4);
    z-index: 1040;
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-4);
    font-family: var(--font-body);
    font-size: var(--text-xs);
    letter-spacing: var(--tracking-wide);
    color: var(--color-text-secondary);
    background: var(--color-bg-primary);
    border: var(--border-width) var(--border-style) var(--color-border);
    border-radius: var(--radius-pill, 999px);
    box-shadow: var(--shadow-card-hover);
    cursor: pointer;
    transition: border-color var(--transition-fast), color var(--transition-fast);
}

.cookie-settings-btn:hover {
    border-color: var(--color-border-strong);
    color: var(--color-text-primary);
}

.cookie-settings-btn .bi { font-size: var(--text-sm); line-height: 1; }

/* Baner zgód — kompaktowy, niski pasek przyklejony do dołu ekranu */
.cookie-banner {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1100;
    background: var(--color-bg-primary);
    border-top: var(--border-width) var(--border-style) var(--color-border);
    box-shadow: 0 -4px 28px rgba(42, 37, 32, 0.10);
}

.cookie-banner-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: var(--space-3) var(--space-8);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3) var(--space-6);
}

/* Tekst (z wytłuszczonym „Pliki cookie") rośnie i wypycha resztę */
.cookie-banner-text {
    flex: 1 1 320px;
    margin: 0;
    font-size: var(--text-xs);
    line-height: 1.5;
    letter-spacing: var(--tracking-normal);
    text-transform: none;
    color: var(--color-text-secondary);
}

.cookie-banner-text strong { color: var(--color-text-primary); }

.cookie-banner-link,
.cookie-banner-link:link,
.cookie-banner-link:visited { color: var(--color-accent); text-decoration: underline; }

/* Opcje — kompaktowe, tylko słowa obok małych checkboxów.
   flex-basis 100% wymusza własny wiersz (między tekstem a przyciskami). */
.cookie-options {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    flex: 1 0 100%;
}

/* Reset globalnych stylów label/input w obrębie banera */
.cookie-option {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    margin: 0;
    padding: 0;
    font-size: var(--text-xs);
    letter-spacing: var(--tracking-normal);
    text-transform: none;
    color: var(--color-text-primary);
    cursor: pointer;
}

.cookie-option input[type="checkbox"] {
    width: var(--control-xs);
    height: var(--control-xs);
    flex: 0 0 auto;
    margin: 0;
    padding: 0;
    accent-color: var(--color-accent);
    cursor: pointer;
}

.cookie-option input[type="checkbox"]:disabled { cursor: not-allowed; }

.cookie-banner-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    flex: 0 0 auto;
}

/* Mniejsze przyciski niż domyślne .btn — żeby pasek był niski */
.cookie-banner-buttons .btn { padding: var(--space-2) var(--space-5); }

/* ✕ w rogu = „zapisz tylko niezbędne" (równoważne Odrzuć wszystkie) */
.cookie-banner-close {
    position: absolute;
    top: var(--space-2);
    right: var(--space-3);
    width: var(--space-6);
    height: var(--space-6);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: var(--text-sm);
    line-height: 1;
    color: var(--color-text-tertiary);
    background: transparent;
    border: none;
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: color var(--transition-fast);
}

.cookie-banner-close:hover { color: var(--color-text-primary); }

@media (max-width: 900px) {
    .cookie-banner-inner { padding: var(--space-3) var(--space-5) var(--space-4); }
    .cookie-banner-buttons { width: 100%; }
    .cookie-banner-buttons .btn { flex: 1 1 auto; }
}

@media (max-width: 560px) {
    .cookie-options { width: 100%; }
    .cookie-banner-buttons { flex-direction: column; }
    .cookie-banner-buttons .btn { width: 100%; }
}

