/* Shared KS Plomo design tokens. See docs/styl-strony.md for usage. */
@import url("https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200;0,300;0,400;0,600;0,700;0,800;0,900;1,200;1,300;1,400;1,600;1,700;1,800;1,900&family=Oxanium:wght@400;500;600;700;800&display=swap");
:root {
    --ks-content-max-width: 1200px;
    --ks-hero-height: 360px;
    --ks-bg: #080F11;
    --ks-surface: #0B1318;
    --ks-card-accent-20: color-mix(in srgb, var(--ks-primary) 20%, var(--ks-bg));
    --ks-card-accent-50: color-mix(in srgb, var(--ks-primary) 50%, var(--ks-bg));
    --ks-card: var(--ks-card-accent-20);
    --ks-card-featured: var(--ks-card-accent-50);
    --ks-border: #3C6289;
    --ks-primary: #3C6289;
    --ks-primary-hover: #80A7CB;
    --ks-secondary-soft: #E1BD99;
    --ks-tertiary-soft: #A8B6C0;
    --ks-success-text: #B5DFBF;
    --ks-success-border: #6C9C79;
    --ks-error-text: #FFC0B8;
    --ks-error-border: #BB6960;
    --ks-black: #0B141A;
    --ks-secondary: #C09A76;
    --ks-tertiary: #65727C;
    --ks-text: #F3F6F7;
    --ks-muted: #A9B6C0;
    --ks-button-text: #FFFFFF;
    --ks-button-radius: 3px;
    --ks-button-height: 42px;
    --ks-button-font-size: .8rem;
    --ks-font-body: "Nunito", "Helvetica Neue", Arial, sans-serif;
    --ks-font-heading: "Oxanium", "Nunito", Arial, sans-serif;
    --ks-font-button: var(--ks-font-heading);

    --bg-navbar: var(--ks-surface);
    --bg-about: var(--ks-bg);
    --bg-main: var(--ks-bg);
    --bg-content: var(--ks-bg);
    --bg-guns: var(--ks-bg);
    --bg-subpage: var(--ks-bg);
    --bg-card: var(--ks-card);

    --app-bg: var(--ks-bg);
    --app-surface: var(--ks-surface);
    --app-surface-raised: var(--ks-card);
    --app-border: var(--ks-border);
    --app-text: var(--ks-text);
    --app-muted: var(--ks-muted);
    --app-accent: var(--ks-primary);
    --app-accent-hover: var(--ks-primary-hover);

    --bs-primary: var(--ks-primary);
    --bs-primary-rgb: 60, 98, 137;
    --page-accent: var(--ks-primary);
    --page-accent-rgb: 60, 98, 137;
    --page-accent-soft: var(--ks-primary-hover);
}

/* Nunito is the text default; Oxanium is shared by headings, hero copy, and controls. */
html body :not(i):not([class*="fa-"]):not(svg) {
    font-family: var(--ks-font-body) !important;
}

html body :not(i):not([class*="fa-"]):not(svg):is(
    h1, h2, h3, h4, h5, h6,
    .home-hero__title-lines,
    .home-hero__title-lines *,
    .home-hero__copy p
) {
    font-family: var(--ks-font-heading) !important;
}

html body :not(i):not([class*="fa-"]):not(svg):is(
    button,
    input[type="button"],
    input[type="submit"],
    input[type="reset"],
    [role="button"],
    .btn,
    .btn-highlighted,
    .btn-primary
),
html body :not(i):not([class*="fa-"]):not(svg):is(
    button,
    input[type="button"],
    input[type="submit"],
    input[type="reset"],
    [role="button"],
    .btn,
    .btn-highlighted,
    .btn-primary
) :not(i):not([class*="fa-"]):not(svg),
html body :not(i):not([class*="fa-"]):not(svg):is(input[type="file"])::file-selector-button,
#mainNav .nav-link,
#mainNav .navbar-priority a {
    font-size: var(--ks-button-font-size);
    font-family: var(--ks-font-button) !important;
}
html,
body,
body.bg-main {
    color: var(--ks-text);
    background-color: var(--ks-bg);
}

.ks-text-primary {
    color: var(--ks-text) !important;
}

.ks-text-muted {
    color: var(--ks-muted) !important;
}

.ks-text-accent {
    color: var(--ks-primary-hover) !important;
}

#mainNav,
#mainNav .navbar-collapse {
    background-color: var(--ks-surface);
}

#mainNav .navbar-toggler,
#mainNav.navbar-shrink .nav-link:hover,
#mainNav.navbar-shrink .nav-link:active,
#mainNav.navbar-shrink .nav-link.active,
a:not(.btn):not(.nav-link) {
    color: var(--ks-primary-hover);
}

#mainNav .dropdown-menu {
    background: var(--ks-bg);
    border: 1px solid var(--ks-primary);
    border-top: 1px solid var(--ks-primary);
    border-radius: 3px;
    box-shadow: none;
}

#mainNav .dropdown-item:hover,
#mainNav .dropdown-item:focus {
    background: rgba(60, 98, 137, .20);
}

@media (min-width: 1000px) {
    #mainNav {
        flex-wrap: nowrap;
    }

    #mainNav > .container {
        flex-wrap: nowrap;
    }

    #mainNav .navbar-nav {
        flex-direction: row;
        align-items: center;
    }

    #mainNav .navbar-nav .nav-item {
        display: flex;
        align-items: center;
    }

    #mainNav .navbar-nav .dropdown-menu {
        position: absolute;
    }

    #mainNav .navbar-collapse {
        display: flex !important;
        flex-basis: auto;
    }

    #mainNav .navbar-toggler {
        display: none;
    }
}
/* Keep the highest priority destinations visible, in the desktop navigation order. */
#mainNav .navbar-priority {
    display: none;
}

@media (max-width: 999.98px) {
    #mainNav > .container {
        flex-wrap: wrap;
    }

    #mainNav .navbar-brand {
        flex: 0 0 auto;
        margin-right: .9rem;
    }

    #mainNav .navbar-priority {
        display: flex;
        flex: 1 1 0%;
        min-width: 0;
        align-items: center;
        justify-content: space-between;
        flex-wrap: nowrap;
        gap: .2rem;
    }

    #mainNav .navbar-priority a {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        white-space: nowrap;
        font-weight: 700;
        line-height: 1;
        text-decoration: none;
    }

    #mainNav .navbar-priority-link {
        padding: .35rem .1rem;
        color: var(--ks-text);
    }

    #mainNav .navbar-priority-link:hover,
    #mainNav .navbar-priority-link:focus {
        color: var(--ks-primary-hover);
    }

    #mainNav .navbar-priority .navbar-priority-join {
        font-weight: 700;
    }

    #mainNav .navbar-toggler {
        flex: 0 0 auto;
        margin-left: .35rem;
        min-width: 42px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: .4rem;
        font-size: 1.4rem;
    }

    #mainNav .navbar-collapse {
        flex-basis: 100%;
    }

    #mainNav .navbar-collapse .nav-join-item {
        display: none;
    }
}
.btn-highlighted,
.btn,
button,
input[type="button"],
input[type="submit"],
input[type="reset"],
a[role="button"],
.public-page-action,
.profile-admin-link {
    border-radius: var(--ks-button-radius) !important;
}

.btn-highlighted,
.btn-primary {
    font-family: var(--ks-font-button) !important;
    font-weight: 700;
    letter-spacing: .15rem;
    text-transform: uppercase;
    border: 1px solid var(--ks-primary);
    background-color: var(--ks-primary);
    color: var(--ks-button-text) !important;
}

/* Keep the desktop navigation CTA at a fixed size while scrolling. */
#mainNav .nav-join,
#mainNav .navbar-priority-join {
    box-sizing: border-box;
    display: inline-flex;
    height: 42px;
    align-items: center;
    justify-content: center;
    padding: .65rem 1rem !important;
    line-height: 1;
}

@media (min-width: 1000px) {
    #mainNav:not(.navbar-shrink) .nav-link {
        padding: 1.35rem 1.1rem;
    }

    #mainNav.navbar-shrink .nav-link:not(.nav-join) {
        padding: 1.1rem 1.1rem .85rem;
    }

    #mainNav .navbar-brand {
        padding: .35rem 0;
    }
}
.btn-highlighted:hover,
.btn-highlighted:focus,
.btn-primary:hover,
.btn-primary:focus {
    border: 1px solid var(--ks-primary-hover);
    background-color: var(--ks-primary);
    color: var(--ks-button-text) !important;
}

.btn:not(.btn-primary):not(.btn-highlighted):not(.btn-danger):not(.btn-warning) {
    border: 1px solid var(--ks-border);
    background-color: var(--ks-bg);
    color: var(--ks-text);
}

.btn:not(.btn-primary):not(.btn-highlighted):not(.btn-danger):not(.btn-warning):hover,
.btn:not(.btn-primary):not(.btn-highlighted):not(.btn-danger):not(.btn-warning):focus {
    border-color: var(--ks-primary-hover);
    background-color: var(--ks-bg);
    color: var(--ks-button-text);
}

.btn:not(.btn-primary):not(.btn-highlighted):not(.btn-danger):not(.btn-warning).btn-pending,
.btn:not(.btn-primary):not(.btn-highlighted):not(.btn-danger):not(.btn-warning).btn-pending:hover,
.btn:not(.btn-primary):not(.btn-highlighted):not(.btn-danger):not(.btn-warning).btn-pending:focus,
.btn:not(.btn-primary):not(.btn-highlighted):not(.btn-danger):not(.btn-warning).btn-pending:focus-visible {
    border: 0 !important;
    background-color: var(--ks-secondary) !important;
    color: var(--ks-black) !important;
}
.bg-light,
.bg-main,
.bg-content,
.bg-guns,
.bg-card {
    color: var(--ks-text) !important;
}

.bg-card { background-color: var(--ks-card) !important; }

.ks-card {
    border: 1px solid var(--ks-primary) !important;
    border-radius: 3px !important;
    box-shadow: none !important;
    transition: box-shadow .15s ease;
}

.ks-card:is(a, button, [role="link"]):hover,
.ks-card:is(a, button, [role="link"]):focus-visible {
    box-shadow: 0 0 0 2px var(--ks-primary-hover) !important;
}

.ks-card--accent-20 { background-color: var(--ks-card-accent-20) !important; }
.ks-card--accent-50 { background-color: var(--ks-card-accent-50) !important; }
.ks-card--page { background-color: var(--ks-bg) !important; }

.public-page-hero,
.public-page-content {
    background-color: var(--ks-bg);
}

.public-page-card {
    color: var(--ks-text);
    border-color: var(--ks-border);
    background: var(--ks-card);
}
/* Page-specific accents from the three-accent mockup. */
.public-page { --page-accent: var(--ks-primary); --page-accent-rgb: 60, 98, 137; --page-accent-soft: var(--ks-primary-hover); }
.public-page--training { --page-accent: var(--ks-secondary); --page-accent-rgb: 192, 154, 118; --page-accent-soft: var(--ks-secondary-soft); }
.public-page--competition { --page-accent: var(--ks-primary); --page-accent-rgb: 60, 98, 137; --page-accent-soft: var(--ks-primary-hover); }
.public-page .public-page-hero { border-bottom-color: rgba(var(--page-accent-rgb), .25); }
.public-page .public-page-eyebrow { color: var(--page-accent-soft); }
.public-page .public-page-card {
    color: var(--ks-text);
    border-color: rgba(var(--page-accent-rgb), .56);
    border-top-color: var(--page-accent);
    background: linear-gradient(145deg, rgba(var(--page-accent-rgb), .07), var(--ks-surface) 45%);
}
.public-page .public-page-topic { border-left-color: rgba(var(--page-accent-rgb), .8); }
.public-page .public-page-status { border-color: rgba(var(--page-accent-rgb), .45); color: var(--page-accent-soft); }
.public-page .public-page-empty { border-color: rgba(var(--page-accent-rgb), .55); }
.public-page .public-page-action {
    border-color: var(--page-accent);
    background: rgba(var(--page-accent-rgb), .14);
    color: var(--ks-text);
}
.public-page .public-page-action:hover,
.public-page .public-page-action:focus { background: var(--page-accent); color: var(--ks-black); }
.public-page--training .public-page-action { color: var(--ks-black); background: var(--ks-secondary); }
.public-page--training .public-page-action:hover,
.public-page--training .public-page-action:focus { background: var(--ks-secondary-soft); color: var(--ks-black); }
.public-page .public-page-event { border-color: rgba(var(--page-accent-rgb), .3); }
.public-page .public-page-event:hover,
.public-page .public-page-event:focus { border-color: var(--page-accent); background: rgba(var(--page-accent-rgb), .09); }
.container,
.public-page-hero .container,
.public-page-grid,
.history-timeline {
    max-width: var(--ks-content-max-width);
}
.ks-text-container {
    flex: 0 0 100%;
    width: 100%;
    max-width: var(--ks-content-max-width);
    margin-inline: auto;
    padding-inline: 1rem;
}


.card-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.card-grid__item {
    min-width: 0;
}


#o-nas .about-credentials .card,
.contact-section .card {
    min-height: clamp(140px, 13vw, 160px);
    border: 1px solid var(--ks-primary);
    border-radius: 3px;
    background: var(--ks-card-accent-20);
    box-shadow: none;
    transition: border-color .15s ease, box-shadow .15s ease;
}

#o-nas .about-credentials .card:hover,
#o-nas .about-credentials .card:focus-within,
.contact-section .card:hover,
.contact-section .card:focus-within {
    border-color: var(--ks-primary);
    box-shadow: 0 0 0 1px var(--ks-primary);
}

#o-nas .about-credentials {
    margin-bottom: 2rem;
}







.ks-card-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.ks-card-content h4 {
    font-family: var(--ks-font-button);
    font-size: .8rem;
    line-height: 1.2;
    letter-spacing: .15rem;
    text-transform: uppercase;
}

.ks-card-content hr {
    display: none;
}

@media (max-width: 767.98px) {
    .ks-card-content {
        padding: .75rem .5rem;
    }

    .ks-card-content h4 {
        font-size: .68rem;
        letter-spacing: .06rem;
    }

    .ks-card-content hr {
        margin: .75rem auto !important;
    }
}




@media (max-width: 520px) {
    #mainNav .navbar-priority-training {
        display: none;
    }
}

@media (max-width: 430px) {
    #mainNav .navbar-priority-competitions {
        display: none;
    }
}

@media (max-width: 380px) {
    #mainNav .navbar-priority-club {
        display: none;
    }
}

@media (max-width: 340px) {
    #mainNav .navbar-priority-contact {
        display: none;
    }
}
/* Homepage hero: wide background photo with readable foreground content. */
.home-hero {
    position: relative;
    height: var(--ks-hero-height);
    overflow: hidden;
    background: var(--ks-bg);
}

.home-hero__container {
    position: relative;
    z-index: 1;
    display: flex;
    height: 100%;
    align-items: center;
}

.home-hero__copy {
    position: relative;
    z-index: 1;
    width: min(100%, 660px);
    padding: 2.5rem 0;
}

.home-hero__copy h1.home-hero__title {
    margin: 0 0 .75rem;
    color: var(--ks-text);
    font-size: 72px !important;
    font-weight: 900;
    letter-spacing: .035em;
    line-height: 1;
}

@media (min-width: 768px) {
    .home-hero:not(.membership-hero) .home-hero__copy {
        padding-bottom: 10px;
    }

    .home-hero:not(.membership-hero) .home-hero__copy h1.home-hero__title {
        font-size: 92px !important;
    }
}

.home-hero__title-lines {
    display: grid;
    grid-template-columns: max-content;
    width: max-content;
}

.home-hero__club-type {
    display: block;
    width: 100%;
    font-size: .36em;
    line-height: 1.25;
    text-align: justify;
    text-align-last: justify;
    white-space: nowrap;
}

.home-hero__club-name {
    display: block;
    width: 100%;
    font-size: 1em;
    line-height: 1;
    white-space: nowrap;
}
.home-hero__copy p {
    margin: 0 0 1.5rem;
    color: var(--ks-text);
    font-size: clamp(1.1rem, 2vw, 1.45rem);
    font-weight: 700;
    line-height: 1.4;
}

.home-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
}

.home-hero__image {
    --home-hero-pan-x: clamp(-100px, -8vw, -24px);
    position: absolute;
    inset: 0;
    overflow: hidden;
    background: var(--ks-bg);
    -webkit-mask-image: linear-gradient(to left, transparent 0%, #000 18%);
    mask-image: linear-gradient(to left, transparent 0%, #000 18%);
}

.home-hero__image::after {
    position: absolute;
    inset: 0;
    width: max(100%, var(--ks-content-max-width));
    transform: none;

    background:
        linear-gradient(90deg, var(--ks-bg) 0%, color-mix(in srgb, var(--ks-bg) 94%, transparent) 31%, color-mix(in srgb, var(--ks-primary) 34%, transparent) calc(64% + 60px), color-mix(in srgb, var(--ks-primary) 34%, transparent) calc(64% + 160px), transparent 100%),
        linear-gradient(90deg, transparent 0%, transparent calc(64% + 20px), color-mix(in srgb, var(--ks-bg) 14%, transparent) calc(64% + 50px), color-mix(in srgb, var(--ks-bg) 14%, transparent) calc(64% + 170px), transparent calc(64% + 200px));
    content: "";
    pointer-events: none;
}

.home-hero__image img {
    display: block;
    width: max(100%, var(--ks-content-max-width));
    height: 100%;
    object-fit: cover;
    object-position: center 44%;
    transform: none;

    filter: grayscale(88%) saturate(.35) contrast(1.08);
}

.home-hero:not(.membership-hero) .home-hero__image::after,
.home-hero:not(.membership-hero) .home-hero__image img {
    transform: translateX(var(--home-hero-pan-x)) scale(1.3);
}

.home-hero__corner {
    position: absolute;
    top: 5.25rem;
    right: clamp(1rem, 3vw, 2rem);
    z-index: 2;
    border-left: 2px solid var(--ks-primary);
    padding-left: .75rem;
    color: var(--ks-muted);
    font-size: .6875rem;
    font-weight: 700;
    letter-spacing: .1em;
    line-height: 1.65;
    text-transform: uppercase;
}

@media (max-width: 767.98px), (max-height: 500px) and (orientation: landscape) {
    .home-hero__corner {
        display: none;
    }

    .home-hero__container {
        align-items: flex-end;
    }

    .home-hero__copy {
        width: min(62%, 330px);
        padding: 2rem 0 1.5rem;
    }

    .home-hero__copy p {
        margin-bottom: 1.1rem;
        font-size: clamp(.98rem, 4.2vw, 1.15rem);
    }

    .home-hero__actions {
        flex-direction: column;
        align-items: stretch;
        gap: .55rem;
    }

    .home-hero__actions .btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        line-height: 1.2;
        width: 100%;
        white-space: nowrap;
        text-align: center;
    }

    .home-hero:not(.membership-hero) .home-hero__image img {
        object-position: 66% center;
    }
}

@media (max-width: 1200px) {
    .home-hero:not(.membership-hero) .home-hero__image {
        /* Add up to 250 px of right crop while retaining the committed starting frame. */
        --home-hero-pan-x: calc(33.6vw - 499.2px);
    }
}

@media (max-width: 950px) {
    .home-hero:not(.membership-hero) .home-hero__image {
        /* Once the right crop reaches 250 px, pan the photo and gradient left together. */
        --home-hero-pan-x: clamp(-780px, calc(100vw - 1130px), -180px);
    }
}
.ks-section-divider {
    height: 1px;
    background-color: var(--ks-primary);
    opacity: .65;
}

#o-nas.about-section {
    padding-top: 4rem;
}

.home-events-section {
    padding: 1.25rem 0 2rem;
    background: var(--ks-bg);
}
    .ks-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
    padding: .85rem 1rem;
    border-left: 3px solid var(--ks-primary);
    background: var(--ks-surface);
}
    .ks-section-header h2 {
    margin: 0;
    color: var(--ks-text);
    font-size: 1.2rem;
    font-weight: 900;
    letter-spacing: .025em;
    text-transform: uppercase;
}
    .ks-section-header > a {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: .4rem;
    color: var(--ks-primary-hover);
    font-weight: 800;
    text-decoration: none;
}
    .ks-section-header > a:hover,
    .ks-section-header > a:focus-visible {
    color: var(--ks-text);
    text-decoration: underline;
    text-underline-offset: .2em;
}

.home-events-grid {
    display: flex;
    align-items: stretch;
    gap: 0;
}

.home-event-card {
    --home-event-card-inset: 1rem;
    position: relative;
    display: flex;
    flex: 1 1 0;
    min-width: 0;
    min-height: 180px;
    flex-direction: column;
    justify-content: space-between;
    gap: 1rem;
    padding: var(--home-event-card-inset);
    color: var(--ks-text) !important;
    text-decoration: none !important;
}

.home-event-card:not(:last-child) {
    margin-right: 1rem;
}

.home-event-card:not(:last-child).home-event-card--before-year {
    margin-right: 0;
}

.home-event-card:last-child {
    margin-right: 0;
}

.home-event-card--training .home-event-card__kind {
    color: var(--ks-secondary-soft);
}

.home-event-card__kind.home-event-card__kind--registration-open {
    border: 0;
    background-color: var(--ks-secondary);
    color: var(--ks-bg);
}

.home-event-card__kind.home-event-card__kind--registration-not-yet-open {
    border: 0;
    background-color: var(--ks-primary);
    color: var(--ks-button-text);
}

.home-event-card__kind.home-event-card__kind--registration-closed,
.home-event-card__kind.home-event-card__kind--registration-unknown {
    border-color: var(--ks-border);
    background-color: var(--ks-bg);
    color: var(--ks-text);
}

.home-event-card--training .home-event-card__kind.home-event-card__kind--registration-open {
    background-color: var(--ks-secondary);
    color: var(--ks-bg);
}

.home-event-card--training .home-event-card__kind.home-event-card__kind--registration-not-yet-open {
    background-color: var(--ks-secondary-soft);
    color: var(--ks-bg);
}

.home-event-card__date {
    position: absolute;
    top: var(--home-event-card-inset);
    left: var(--home-event-card-inset);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .05rem;
    white-space: nowrap;
}

.home-event-card__date--row {
    position: static;
    z-index: auto;
    display: flex;
    width: 100%;
    min-height: 3.4rem;
    grid-column: 1;
    align-self: center;
    align-items: center;
    justify-content: center;
    border-right: 1px solid var(--ks-primary);
    padding-right: .5rem;
}

.home-event-card__date--row strong { font-size: 1.35rem; }
.home-event-card__date--row span { font-size: .56rem; line-height: 1.1; }

@media (min-width: 1000px) {
    .home-events-grid:not(.home-events-grid--list) .home-event-card__date--row {
        position: absolute;
        top: var(--home-event-card-inset);
        left: var(--home-event-card-inset);
        width: auto;
        min-height: 0;
        grid-column: auto;
        align-self: auto;
        align-items: flex-start;
        justify-content: flex-start;
        border-right: 0;
        padding-right: 0;
    }

    .home-events-grid:not(.home-events-grid--list) .home-event-card__date--row strong { font-size: 1.8rem; }
    .home-events-grid:not(.home-events-grid--list) .home-event-card__date--row span { font-size: .72rem; line-height: normal; }
}

.home-event-card__date strong {
    color: var(--ks-text);
    font-size: 1.8rem;
    font-weight: 900;
    line-height: 1;
}

.home-event-card__date span {
    color: var(--ks-muted);
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
}

.home-event-card__kind {
    position: absolute;
    top: var(--home-event-card-inset);
    right: var(--home-event-card-inset);
    display: inline-flex;
    align-items: center;
    max-width: calc(100% - 5rem);
    padding: .3rem .45rem;
    border: 1px solid currentColor;
    border-radius: 2px;
    color: var(--ks-muted);
    font-size: .66rem;
    font-weight: 900;
    letter-spacing: .045em;
    line-height: 1.2;
    text-transform: uppercase;
}

.home-event-card__copy {
    min-width: 0;
    margin-top: auto;
    padding-right: 1.4rem;
}

.home-event-card__copy h3 {
    display: -webkit-box;
    overflow: hidden;
    margin: 0 0 .4rem;
    color: var(--ks-text);
    font-size: 1rem;
    font-weight: 900;
    line-height: 1.3;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.home-event-card__details {
    display: block;
    overflow: hidden;
    color: var(--ks-muted);
    font-size: .76rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.home-event-year-divider {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    min-width: 1.845rem;
    flex: 0 0 1.845rem;
    place-items: center;
    pointer-events: none;
}

.home-event-year-divider::before {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 1px;
    background: linear-gradient(
        to bottom,
        color-mix(in srgb, var(--ks-primary) 55%, transparent) 0,
        color-mix(in srgb, var(--ks-primary) 55%, transparent) calc(50% - 2rem),
        transparent calc(50% - 2rem),
        transparent calc(50% + 2rem),
        color-mix(in srgb, var(--ks-primary) 55%, transparent) calc(50% + 2rem),
        color-mix(in srgb, var(--ks-primary) 55%, transparent) 100%
    );
    content: "";
}

.home-event-year-divider > span {
    z-index: 1;
    padding: 0 .3rem;
    transform: rotate(-90deg);
    background: transparent;
    color: var(--ks-text);
    font-size: 1.23rem;
    font-weight: 900;
    letter-spacing: .06em;
    line-height: 1;
    white-space: nowrap;
}
.home-event-card__arrow {
    position: absolute;
    right: var(--home-event-card-inset);
    bottom: var(--home-event-card-inset);
    display: grid;
    width: 1.45rem;
    height: 1.45rem;
    place-items: center;
    padding: 0 0 .12rem .08rem;
    border: 1px solid color-mix(in srgb, var(--ks-primary) 45%, transparent);
    border-radius: 50%;
    color: var(--ks-primary-hover);
    font-size: 1.15rem;
    font-weight: 800;
    line-height: 1;
    transition: background-color .18s ease, color .18s ease, border-color .18s ease;
}

.home-event-card:hover .home-event-card__arrow,
.home-event-card:focus-visible .home-event-card__arrow {
    border-color: var(--ks-primary-hover);
    background: color-mix(in srgb, var(--ks-primary) 18%, transparent);
    color: var(--ks-text);
}

.home-event-card--placeholder {
    display: grid;
    grid-template-columns: 2.2rem minmax(0, 1fr);
    align-items: center;
    justify-content: initial;
}

.home-event-card__date--placeholder {
    position: static;
    display: grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    border: 0;
    border-radius: 50%;
    background: color-mix(in srgb, var(--ks-primary) 20%, transparent);
    color: var(--ks-primary-hover);
    font-size: 1.2rem;
    font-weight: 900;
}

.home-event-card--placeholder .home-event-card__copy h3 {
    color: var(--ks-muted);
}


@media (max-width: 999.98px) {
    .home-events-section {
        padding-top: 1rem;
    }
    .ks-section-header {
        flex-wrap: wrap;
        gap: .5rem .75rem;
        padding: .75rem;
    }
    .ks-section-header h2 {
        font-size: .92rem;
    }
    .ks-section-header > a {
        font-size: .72rem;
    }

    .home-events-grid {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: .65rem;
    }

    .home-event-card {
        --home-event-card-inset: .75rem;
        display: grid;
        margin: 0;
        min-height: 82px;
        grid-template-columns: 3.5rem minmax(0, 1fr);
        align-items: start;
        gap: .75rem;
        padding: var(--home-event-card-inset);
    }

    .home-event-card__kind {
        position: static;
        align-self: flex-start;
        margin-bottom: .2rem;
        border: 0;
        padding: 0;
        font-size: .58rem;
        text-align: left;
    }

    .home-event-card__kind.home-event-card__kind--registration-open,
    .home-event-card__kind.home-event-card__kind--registration-not-yet-open,
    .home-event-card__kind.home-event-card__kind--registration-closed,
    .home-event-card__kind.home-event-card__kind--registration-unknown {
        position: static;
        float: right;
        align-self: auto;
        max-width: calc(100% - 1rem);
        margin: 0 0 .5rem .65rem;
        border-width: 1px;
        padding: .3rem .45rem;
    }

    .home-event-card__copy {
        display: flow-root;
        grid-column: 2;
        align-self: start;
        margin-top: 0;
        padding-right: 0;
    }

    .home-event-card__copy h3 {
        display: block;
        overflow: visible;
        margin-bottom: .2rem;
        padding-right: 1.5rem;
        font-size: .9rem;
        -webkit-line-clamp: unset;
    }

    .home-event-card__details {
        padding-right: 1.5rem;
        font-size: .7rem;
    }

    .home-event-card--placeholder {
        grid-template-columns: 3.5rem minmax(0, 1fr);
    }

    .home-event-card--placeholder .home-event-card__date {
        min-height: 0;
        border-right: 0;
        padding-right: 0;
    }

    .home-event-year-divider > span {
        padding: .12rem .5rem;
        transform: none;
        font-size: 1.23rem;
    }
    .home-event-card:not(:last-child) {
        margin-right: 0;
    }
    .home-event-year-divider {
        min-height: 2.25rem;
        margin: 0;
        margin-inline: 0;
        grid-column: 1;
    }

    .home-event-year-divider::before {
        top: 50%;
        right: 0;
        bottom: auto;
        left: 0;
        width: auto;
        height: 1px;
        border: 0;
        background: linear-gradient(
            to right,
            color-mix(in srgb, var(--ks-primary) 55%, transparent) 0,
            color-mix(in srgb, var(--ks-primary) 55%, transparent) calc(50% - 2.2rem),
            transparent calc(50% - 2.2rem),
            transparent calc(50% + 2.2rem),
            color-mix(in srgb, var(--ks-primary) 55%, transparent) calc(50% + 2.2rem),
            color-mix(in srgb, var(--ks-primary) 55%, transparent) 100%
        );
    }
}
/* Homepage text roles: keep reading text opaque and use accent colors only for emphasis. */
#mainNav .navbar-toggler {
    color: var(--ks-primary-hover);
}

#mainNav .navbar-nav .nav-link,
#mainNav .dropdown-item,
#mainNav .navbar-priority-link {
    color: var(--ks-muted);
}

#mainNav .navbar-nav .nav-link:hover,
#mainNav .navbar-nav .nav-link:focus,
#mainNav .navbar-nav .nav-link:active,
#mainNav .navbar-nav .nav-link.active,
#mainNav .dropdown-item:hover,
#mainNav .dropdown-item:focus,
#mainNav .navbar-priority-link:hover,
#mainNav .navbar-priority-link:focus {
    color: var(--ks-primary-hover);
}

.history-eyebrow,
.history-date {
    color: var(--ks-primary-hover);
}

.history-heading h2,
.history-card h3,
.history-finale h3 {
    color: var(--ks-text);
}

.history-heading p,
.history-card p,
.history-finale p,
.history-photo {
    color: var(--ks-muted);
}

.ks-footer {
    padding: 2rem 0;
}

.ks-footer .social {
    margin: 0 0 1rem;
}

.ks-footer .social a {
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    background: color-mix(in srgb, var(--ks-text) 10%, transparent);
    color: var(--ks-muted);
    line-height: 3rem;
    text-align: center;
}

.ks-footer .social a:hover,
.ks-footer .social a:focus-visible {
    color: var(--ks-text);
}

.history-lightbox,
.history-lightbox-close {
    color: var(--ks-text);
}
/* Historia korzysta ze wspólnych komponentów sekcji i kart. */
.history-section-divider {
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
}

.history-section-header {
    margin-bottom: 1rem;
}

.history-intro {
    max-width: 48rem;
    margin: 0 auto 2rem;
    text-align: center;
}

.history-photo-plomo img {
    filter: none;
}

.history-section .history-finale.ks-card {
    max-width: 48rem;
    margin: 5rem auto 0;
    padding: 2.5rem 2rem;
    border: 1px solid var(--ks-primary);
    border-radius: 3px;
    background: var(--ks-card-accent-20);
    box-shadow: none;
}

@media (max-width: 575.98px) {
    .history-section .history-finale.ks-card {
        margin-top: 3.5rem;
        padding: 2rem 1.25rem;
    }
}
.history-section {
    background: var(--ks-bg);
}
.contact-section.bg-black,
footer.bg-black {
    background-color: var(--ks-bg) !important;
}

.history-photo-gpa {
    background-image: linear-gradient(rgba(8, 13, 15, .18), rgba(8, 13, 15, .32)), url("../img/gpa-gallery/gpa-cover.webp") !important;
}

.history-lightbox-nav,
.history-lightbox-counter {
    display: none;
}

.history-lightbox.has-gallery .history-lightbox-nav {
    position: absolute;
    z-index: 1;
    top: 50%;
    display: grid;
    width: 3rem;
    height: 3rem;
    place-items: center;
    padding: 0 0 .18rem;
    transform: translateY(-50%);
    border: 1px solid var(--ks-border);
    border-radius: 50%;
    background: color-mix(in srgb, var(--ks-bg) 82%, transparent);
    color: var(--ks-text);
    font: inherit;
    font-size: 2rem;
    cursor: pointer;
}

.history-lightbox.has-gallery .history-lightbox-nav:hover,
.history-lightbox.has-gallery .history-lightbox-nav:focus-visible {
    border-color: var(--ks-primary-hover);
    color: var(--ks-primary-hover);
}

.history-lightbox-previous {
    left: 1.25rem;
}

.history-lightbox-next {
    right: 1.25rem;
}

.history-lightbox.has-gallery .history-lightbox-counter {
    position: absolute;
    bottom: .75rem;
    left: 50%;
    display: block;
    transform: translateX(-50%);
    color: var(--ks-muted);
    font-size: .9rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

@media (max-width: 575.98px) {
    .history-lightbox.has-gallery .history-lightbox-nav {
        width: 2.5rem;
        height: 2.5rem;
    }

    .history-lightbox-previous {
        left: .5rem;
    }

    .history-lightbox-next {
        right: .5rem;
    }
}
.history-photo--has-gallery {
    position: relative;
}

.history-gallery-indicator {
    position: absolute;
    z-index: 2;
    top: .75rem;
    left: .75rem;
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .35rem .5rem;
    border: 1px solid var(--ks-primary-hover);
    border-radius: 3px;
    background: color-mix(in srgb, var(--ks-bg) 88%, transparent);
    color: var(--ks-text);
    font-size: .8rem;
    font-weight: 800;
    line-height: 1;
}

.history-gallery-indicator i {
    color: var(--ks-primary-hover);
}

.history-entry:nth-child(even) .history-photo--has-gallery .history-gallery-indicator {
    right: .75rem;
    left: auto;
}

/* Shared page and application widgets: all secondary views use the homepage design tokens. */
:root {
    --app-bg: var(--ks-bg);
    --app-surface: var(--ks-surface);
    --app-surface-raised: var(--ks-card-accent-20);
    --app-border: var(--ks-border);
    --app-text: var(--ks-text);
    --app-muted: var(--ks-muted);
    --app-accent: var(--ks-primary);
    --app-accent-hover: var(--ks-primary-hover);
    --app-highlight: var(--ks-secondary);
}

html,
body,
body.bg-main {
    color: var(--ks-text);
    background: var(--ks-bg) !important;
}

.home-page {
    --home-ink: var(--ks-text);
    --home-muted: var(--ks-muted);
    --home-line: var(--ks-border);
    --home-green: var(--ks-primary);
    --home-orange: var(--ks-secondary);
}

.home-page,
.public-page-content,
.calendar-page-content,
.contact-section,
footer.bg-black {
    color: var(--ks-text);
    background: var(--ks-bg) !important;
}

.home-page,
.public-page-content,
.calendar-page-content,
.admin-page,
.profile-page,
.auth-page,
.competition-page,
.registration-success-page {
    min-width: 0;
}

.home-page .home-intro,
.home-page .profile-intro,
.home-page .admin-intro,
.home-page .auth-intro,
.home-page .competition-signup-header {
    color: var(--ks-text) !important;
    border: 1px solid var(--ks-primary) !important;
    border-radius: 3px !important;
    background: var(--ks-card-accent-20) !important;
    box-shadow: none !important;
}

.ks-page-header {
    width: min(100% - 2rem, var(--ks-content-max-width));
    margin: 0 auto 1rem;
    padding: 7rem 1.5rem 1.4rem;
}

.ks-page-header h1,
.home-page .home-intro h1,
.home-page .competition-signup-header h1 {
    color: var(--ks-text) !important;
    font-family: var(--ks-font-body) !important;
    font-size: clamp(1.7rem, 3vw, 2.35rem);
    line-height: 1.2;
}

.ks-page-header .public-page-eyebrow,
.home-page .home-eyebrow,
.home-page .home-section-eyebrow {
    color: var(--ks-primary-hover) !important;
}

.ks-section-header {
    display: flex;
    align-items: center;
    min-height: 3rem;
    margin: 0 0 1rem;
    padding: .7rem 1rem;
    border: 0;
    border-left: 3px solid var(--ks-primary);
    border-radius: 0;
    color: var(--ks-text) !important;
    background: var(--ks-surface) !important;
    font-family: var(--ks-font-button) !important;
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.home-page .home-intro,
.home-page .auth-panel,
.home-page .profile-panel,
.home-page .profile-competition-card,
.home-page .admin-competition-card,
.home-page .admin-competition-header,
.home-page .admin-empty-state,
.home-page .competition-detail-card,
.home-page .competition-signup-summary,
.home-page .competition-signup-empty,
.home-page .competition-option,
.home-page .competition-signup-alert,
.home-page .registration-success-card,
.public-page .public-page-card,
.public-page .public-page-topic,
.public-page .public-page-empty {
    border: 1px solid var(--ks-primary) !important;
    border-radius: 3px !important;
    color: var(--ks-text) !important;
    background: var(--ks-card-accent-20) !important;
    box-shadow: none !important;
}

.home-page .profile-panel,
.home-page .profile-competition-card,
.home-page .admin-competition-card,
.home-page .competition-detail-card,
.home-page .competition-signup-summary,
.home-page .competition-option,
.home-page .registration-success-card,
.public-page .public-page-card,
.public-page .public-page-topic,
.public-page .public-page-empty {
    padding: 1.25rem;
}

.home-page .admin-competition-header,
.home-page .competition-signup-header {
    padding: 1.25rem;
}

.public-page .public-page-card > h2 {
    margin: -1.25rem -1.25rem 1rem;
}

.public-page .public-page-topic {
    display: grid;
    gap: .4rem;
    text-decoration: none;
}

.public-page .public-page-topic:hover,
.public-page .public-page-topic:focus-visible {
    border-color: var(--ks-primary-hover) !important;
    box-shadow: 0 0 0 2px var(--ks-primary-hover) !important;
}

.public-page .public-page-action,
.home-page .btn-primary,
.home-page .btn-success,
.home-page .competition-signup-submit {
    border: 1px solid var(--ks-primary) !important;
    border-radius: var(--ks-button-radius) !important;
    color: var(--ks-button-text) !important;
    background: var(--ks-primary) !important;
    font-family: var(--ks-font-button) !important;
    font-size: var(--ks-button-font-size) !important;
    letter-spacing: .15rem;
    text-transform: uppercase;
}

.home-page .btn-outline-primary,
.home-page .btn-outline-light,
.home-page .admin-competition-body .btn,
.home-page .competition-back-link {
    border: 1px solid var(--ks-border) !important;
    border-radius: var(--ks-button-radius) !important;
    color: var(--ks-text) !important;
    background: var(--ks-bg) !important;
    font-family: var(--ks-font-button) !important;
    font-size: var(--ks-button-font-size) !important;
}

.home-page .btn-primary:hover,
.home-page .btn-success:hover,
.home-page .competition-signup-submit:hover,
.public-page .public-page-action:hover,
.public-page .public-page-action:focus-visible {
    border-color: var(--ks-primary-hover) !important;
    color: var(--ks-button-text) !important;
    background: var(--ks-primary) !important;
    box-shadow: 0 0 0 1px var(--ks-primary-hover);
}

.home-page .form-control,
.home-page .form-select,
.home-page input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.home-page select,
.home-page textarea,
.calendar-page-content input,
.calendar-page-content select,
.calendar-page-content textarea {
    max-width: 100%;
    border: 1px solid var(--ks-field-border, var(--ks-border)) !important;
    border-radius: 3px !important;
    color: var(--ks-text) !important;
    background: var(--ks-bg) !important;
    box-shadow: var(--ks-field-shadow, none);
}

.home-page textarea,
.calendar-page-content textarea {
    min-height: 7rem;
}

.home-page .form-control::placeholder,
.home-page input::placeholder,
.home-page textarea::placeholder,
.calendar-page-content input::placeholder {
    color: var(--ks-muted) !important;
    opacity: 1;
}

.home-page .form-control:focus,
.home-page .form-select:focus,
.home-page input:focus,
.home-page select:focus,
.home-page textarea:focus,
.calendar-page-content input:focus,
.calendar-page-content select:focus,
.calendar-page-content textarea:focus {
    border-color: var(--ks-field-border, var(--ks-primary-hover)) !important;
    outline: 0;
    box-shadow: var(--ks-field-shadow, 0 0 0 2px color-mix(in srgb, var(--ks-primary-hover) 35%, transparent)) !important;
}

.home-page .form-label,
.home-page label,
.calendar-page-content label {
    color: var(--ks-muted) !important;
    font-family: var(--ks-font-body) !important;
}

.home-page .table-responsive,
.home-page .admin-competition-body .table-responsive {
    max-width: 100%;
    overflow-x: auto;
    border: 1px solid var(--ks-primary);
    border-radius: 3px;
}

.home-page .table,
.home-page .table th,
.home-page .table td,
.home-page .admin-competition-body .table,
.home-page .admin-competition-body .table th,
.home-page .admin-competition-body .table td {
    color: var(--ks-text) !important;
    border-color: color-mix(in srgb, var(--ks-primary) 45%, transparent) !important;
    background-color: transparent !important;
    font-family: var(--ks-font-body) !important;
}

.home-page .table thead th,
.home-page .admin-competition-body .table thead th {
    color: var(--ks-primary-hover) !important;
    background: var(--ks-surface) !important;
}

.admin-audit-toggle {
    min-height: 34px;
    padding: .35rem .65rem;
    white-space: nowrap;
}

.admin-audit-details-row > td {
    padding: .75rem !important;
    background: var(--ks-surface) !important;
}

.admin-audit-json {
    width: 100%;
    max-height: 420px;
    overflow: auto;
    padding: 1rem;
    border: 1px solid var(--ks-border);
    border-radius: 3px;
    color: var(--ks-text);
    background: var(--ks-bg);
    font-family: Consolas, "Courier New", monospace !important;
    font-size: .84rem;
    line-height: 1.55;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.home-page .table-striped tbody tr:nth-of-type(odd),
.home-page .admin-competition-body .table-striped tbody tr:nth-of-type(odd) {
    background: color-mix(in srgb, var(--ks-primary) 10%, var(--ks-bg)) !important;
}

.home-page .alert,
.home-page .profile-message,
.home-page .registration-success-notice {
    border-radius: 3px !important;
}

.membership-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    max-width: 840px;
    margin: 0 auto;
    padding: 1.5rem;
}
.membership-form .ks-section-header,
.membership-gender,
.membership-address-heading,
.membership-submit { grid-column: 1 / -1; }
.membership-gender { display: flex; flex-wrap: wrap; gap: 1rem; margin: 0; padding: 0; border: 0; }
.membership-gender legend { width: 100%; margin-bottom: .5rem; color: var(--ks-muted); font-size: .9rem; }
.membership-gender label { display: inline-flex; align-items: center; gap: .5rem; color: var(--ks-text) !important; }
.membership-field { display: grid; gap: .4rem; color: var(--ks-muted) !important; }
.membership-field input { width: 100%; }
.membership-submit { justify-self: start; }
@media (max-width: 767.98px) { .membership-form { grid-template-columns: minmax(0, 1fr); padding: 1rem; } }

.ks-site-footer {
    margin-top: 2rem;
    padding: 1.25rem 0;
    border-top: 1px solid var(--ks-primary);
    color: var(--ks-muted);
    background: var(--ks-bg);
    font-size: .9rem;
}

.ks-site-footer .container {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem 1.25rem;
}

.ks-site-footer a,
.ks-site-footer button {
    color: var(--ks-primary-hover);
}

.ks-site-footer__links {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

@media (max-width: 767.98px) {
    .ks-page-header {
        width: calc(100% - 2rem);
        margin-block: 0 1rem;
        padding: 6.5rem 1rem 1rem;
    }

    .home-page .auth-panel,
    .home-page .profile-panel,
    .home-page .registration-success-card,
    .home-page .competition-detail-card,
    .home-page .competition-signup-summary,
    .home-page .admin-competition-body {
        padding: 1rem;
    }

    .ks-site-footer .container {
        justify-content: center;
        text-align: center;
    }
}

.admin-sync-card { max-width: 840px; margin: 0 auto; padding: 1.25rem; color: var(--ks-text); }
.admin-sync-card .profile-message small { display: block; margin-top: .35rem; color: inherit; opacity: .82; }
.admin-sync-card code { padding: .1rem .35rem; border: 1px solid var(--ks-primary); border-radius: 3px; color: var(--ks-primary-hover); background: var(--ks-bg); }

.home-page button,
.home-page input[type="button"],
.home-page input[type="submit"],
.home-page input[type="reset"],
.home-page [role="button"] {
    border: 1px solid var(--ks-border);
    border-radius: var(--ks-button-radius);
    color: var(--ks-text);
    background: var(--ks-bg);
    font-family: var(--ks-font-button);
    font-size: var(--ks-button-font-size);
}

.home-page button:hover,
.home-page input[type="button"]:hover,
.home-page input[type="submit"]:hover,
.home-page input[type="reset"]:hover,
.home-page [role="button"]:hover {
    border-color: var(--ks-primary-hover);
}

.home-page button:disabled,
.home-page input[type="button"]:disabled,
.home-page input[type="submit"]:disabled,
.home-page input[type="reset"]:disabled {
    cursor: not-allowed;
    opacity: .55;
}

.profile-panel-heading.ks-section-header {
    display: block;
    width: 100%;
    min-height: 0;
    margin: 0 0 1rem;
    padding: .65rem 1rem;
    border-bottom: 0;
}
.profile-panel-heading.ks-section-header h2 {
    margin: 0;
    color: var(--ks-text) !important;
    font-family: var(--ks-font-button) !important;
    font-size: 1rem !important;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.profile-panel-heading.ks-section-header .home-section-eyebrow {
    margin: 0 0 .25rem;
    color: var(--ks-primary-hover) !important;
}

body.ks-app-page { padding-top: 0 !important; }
body.ks-app-page .home-page { min-height: calc(100vh - 104px); }
@media (max-width: 999.98px) {
    body.ks-app-page .home-page { min-height: calc(100vh - 56px); }
}


/* Wspólny układ wiersza wydarzenia używany na stronie głównej i podstronach. */
.home-events-grid--list {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: .65rem;
}

.home-events-grid--list .home-event-card {
    --home-event-card-inset: .75rem;
    display: grid;
    flex: none;
    min-height: 82px;
    grid-template-columns: 3.5rem minmax(0, 1fr);
    align-items: start;
    gap: .75rem;
    margin: 0;
    padding: var(--home-event-card-inset);
}

.home-events-grid--list .home-event-card__kind {
    position: static;
    align-self: flex-start;
    margin-bottom: .2rem;
    border: 0;
    padding: 0;
    font-size: .58rem;
    text-align: left;
}

.home-events-grid--list .home-event-card__kind.home-event-card__kind--registration-open,
.home-events-grid--list .home-event-card__kind.home-event-card__kind--registration-not-yet-open,
.home-events-grid--list .home-event-card__kind.home-event-card__kind--registration-closed,
.home-events-grid--list .home-event-card__kind.home-event-card__kind--registration-unknown {
    position: static;
    float: right;
    align-self: auto;
    margin: 0 0 .5rem .65rem;
    max-width: calc(100% - 1rem);
    border-width: 1px;
    padding: .3rem .45rem;
}

.home-events-grid--list .home-event-card__copy {
    display: flow-root;
    grid-column: 2;
    align-self: start;
    margin-top: 0;
    padding-right: 0;
}

.home-events-grid--list .home-event-card__copy h3 {
    display: block;
    overflow: visible;
    margin-bottom: .2rem;
    padding-right: 1.5rem;
    font-size: .9rem;
    -webkit-line-clamp: unset;
}

.home-events-grid--list .home-event-card__details { padding-right: 1.5rem; font-size: .7rem; }
.home-events-grid--list .home-event-card--placeholder { grid-template-columns: 3.5rem minmax(0, 1fr); }

.home-events-grid--list .home-event-year-divider--list {
    display: flex;
    min-width: 0;
    min-height: 2.25rem;
    margin: 0;
    grid-column: 1;
    flex: none;
    gap: .65rem;
}

.home-events-grid--list .home-event-year-divider--list::before,
.home-events-grid--list .home-event-year-divider--list::after {
    position: static;
    width: auto;
    height: 1px;
    flex: 1;
    background: color-mix(in srgb, var(--ks-primary) 55%, transparent);
    content: "";
}

.home-events-grid--list .home-event-year-divider--list > span {
    padding: .12rem .5rem;
    transform: none;
    background: var(--ks-bg);
    font-size: 1.23rem;
}

.public-page-hero,
.calendar-hero {
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

@media (max-width: 999.98px) {
    .home-events-grid--list .home-event-card:not(:last-child) { margin-right: 0; }
}


/* Odstępy i hierarchia na stronach list wydarzeń. */
.public-page-event-group { margin-bottom: 2.5rem; }
.public-page-event-group:last-child { margin-bottom: 0; }
.public-page-update {
    margin: -.35rem 0 1rem;
    color: var(--ks-muted);
    font-size: .72rem;
    text-align: right;
}
.public-page-group-action {
    display: flex;
    width: fit-content;
    align-items: center;
    justify-content: center;
    margin: 1rem 0 0 auto;
    padding: .65rem 1rem;
    text-decoration: none;
}
.public-page-event-group .home-empty-state { margin-bottom: .25rem; }

@media (max-width: 767.98px) {
    .public-page-update { margin-top: -.2rem; text-align: left; }
    .public-page-group-action { margin-top: .9rem; }
}


.public-page-empty-state {
    margin: .9rem 0 0;
    color: var(--ks-muted);
}


/* Wspólne widoki konta, rejestracji i deklaracji członkowskiej. */
.account-page {
    min-height: calc(100vh - 104px);
}

.account-content-section {
    padding: 1.25rem 0 4rem;
}

.account-container {
    width: min(100% - 2rem, var(--ks-content-max-width));
    margin-inline: auto;
}

.account-container--narrow {
    max-width: 760px;
}

.account-page-heading {
    margin: 0 0 1.25rem;
}

.account-page-heading h1,
.account-card h1 {
    margin: 0 0 .65rem;
    color: var(--ks-text);
    font-size: clamp(1.8rem, 3vw, 2.5rem);
    font-weight: 800;
    line-height: 1.15;
}

.account-page-heading .home-eyebrow {
    margin: 0 0 .45rem;
    color: var(--ks-primary-hover);
    font-size: .8rem;
    font-weight: 800;
    letter-spacing: .12em;
}

.account-lead {
    max-width: 68ch;
    margin: 0;
    color: var(--ks-muted);
    line-height: 1.6;
}

.account-card {
    padding: clamp(1rem, 2vw, 1.5rem);
}

.account-card .ks-section-header h2 {
    margin: 0;
    color: var(--ks-text);
    font-family: var(--ks-font-button);
    font-size: 1rem;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.account-form-note {
    grid-column: 1 / -1;
    margin: 0;
    color: var(--ks-muted);
    font-size: .82rem;
}

.account-form-note span {
    color: var(--ks-primary-hover);
    font-weight: 800;
}

.account-choice-group {
    grid-column: 1 / -1;
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.account-choice-group legend {
    margin-bottom: .55rem;
    color: var(--ks-muted);
    font-size: .95rem;
    font-weight: 700;
}

.account-choice-group__options {
    display: grid;
    gap: .65rem;
}

.account-choice-option {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    color: var(--ks-text);
    cursor: pointer;
}

.account-choice-option input[type="radio"]:focus-visible {
    outline: 2px solid var(--ks-primary-hover);
    outline-offset: 2px;
}

.account-choice-option input[type="radio"] {
    flex: 0 0 auto;
    width: 1.1rem;
    height: 1.1rem;
    min-height: 0;
    margin: .1rem 0 0;
    padding: 0;
    accent-color: var(--ks-primary-hover);
    background: transparent;
    box-shadow: none;
}

.account-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    min-width: 0;
}

.account-form--single {
    grid-template-columns: minmax(0, 1fr);
}

.account-field {
    display: grid;
    align-content: start;
    gap: .4rem;
    min-width: 0;
}

.account-field label,
.account-field legend {
    margin: 0;
    color: var(--ks-muted);
    font-size: .95rem;
    font-weight: 700;
}

.account-field input,
.account-field select,
.account-field textarea {
    box-sizing: border-box;
    width: 100%;
    min-height: 44px;
    padding: .65rem .75rem;
    border: 1px solid var(--ks-field-border, var(--ks-border));
    border-radius: 3px;
    color: var(--ks-text);
    background: var(--ks-bg);
    font: inherit;
}

.account-field input:focus,
.account-field select:focus,
.account-field textarea:focus {
    border-color: var(--ks-field-border, var(--ks-primary-hover));
    outline: 0;
    box-shadow: var(--ks-field-shadow, 0 0 0 2px color-mix(in srgb, var(--ks-primary-hover) 35%, transparent));
}

.account-field small {
    color: var(--ks-muted);
    font-size: .82rem;
}

.account-field-full,
.account-form-actions {
    grid-column: 1 / -1;
}

.account-form-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem;
    margin-top: .25rem;
}

.account-form-actions .btn {
    min-width: 150px;
}

.account-form-actions--right {
    justify-content: flex-end;
}

.account-message {
    margin: 0 0 1rem;
    padding: .8rem 1rem;
    border: 1px solid currentColor;
    border-radius: 3px;
    line-height: 1.5;
}

.account-message.is-error {
    color: var(--ks-error-text);
    background: color-mix(in srgb, var(--ks-error-border) 18%, var(--ks-bg));
}

.account-message.is-success {
    color: var(--ks-success-text);
    background: color-mix(in srgb, var(--ks-success-border) 18%, var(--ks-bg));
}

.account-switch {
    margin: 1.25rem 0 0;
    color: var(--ks-muted);
    text-align: center;
}

.account-switch a {
    color: var(--ks-primary-hover);
    font-weight: 800;
}

.profile-page.account-page {
    padding-top: 0;
}

.membership-hero .home-hero__container {
    width: min(100% - 2rem, var(--ks-content-max-width));
    margin-inline: auto;
}

.membership-hero .home-hero__image {
    --membership-hero-pan-x: 0px;
    right: auto;
    left: 50%;
    width: min(calc(100% - 2rem), var(--ks-content-max-width));
    transform: translateX(-50%);
    -webkit-mask-image: none;
    mask-image: none;
}

.membership-hero .home-hero__image::after {
    content: none;
}

.membership-hero__media {
    position: absolute;
    inset: 0 auto 0 0;
    width: var(--ks-content-max-width);
    transform: translateX(var(--membership-hero-pan-x));
    -webkit-mask-image: linear-gradient(to left, transparent 0%, #000 18%);
    mask-image: linear-gradient(to left, transparent 0%, #000 18%);
}

.membership-hero__media::after {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, var(--ks-bg) 0%, color-mix(in srgb, var(--ks-bg) 94%, transparent) 31%, color-mix(in srgb, var(--ks-primary) 34%, transparent) calc(64% + 60px), color-mix(in srgb, var(--ks-primary) 34%, transparent) calc(64% + 160px), transparent 100%),
        linear-gradient(90deg, transparent 0%, transparent calc(64% + 20px), color-mix(in srgb, var(--ks-bg) 14%, transparent) calc(64% + 50px), color-mix(in srgb, var(--ks-bg) 14%, transparent) calc(64% + 170px), transparent calc(64% + 200px));
    content: "";
    pointer-events: none;
}

.membership-hero__media img {
    display: block;
    width: 100%;
    height: auto;
    filter: grayscale(88%) saturate(.35) contrast(1.08);
}

@media (max-width: 1082px) {
    .membership-hero .home-hero__image {
        /* Crop up to 150 px from the right, then pan the shared photo and gradient left. */
        --membership-hero-pan-x: calc(100vw - 1082px);
    }
}
@media (min-width: 768px) {
    .membership-hero .home-hero__copy {
        padding-bottom: 10px;
    }

    .membership-hero .home-hero__copy h1.home-hero__title {
        font-size: 88px !important;
    }
}

.membership-hero .home-hero__title-lines {
    grid-template-columns: max-content;
}

.membership-hero .home-hero__club-type {
    font-size: .77em;
    text-align: center;
    text-align-last: center;
}

.membership-hero .home-hero__club-name {
    font-size: .88em;
}

.membership-benefits-divider {
    padding-top: 1rem;
}

.membership-benefits {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
}

.membership-benefits-intro {
    max-width: 760px;
    margin: 0 auto 1.5rem;
    text-align: center;
}

.membership-benefits-eyebrow {
    margin: 0 0 .5rem;
    color: var(--ks-primary-hover);
    font-family: var(--ks-font-button);
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.membership-benefits-intro h2 {
    margin: 0 0 .75rem;
    color: var(--ks-text);
    font-size: clamp(1.65rem, 3vw, 2.25rem);
    font-weight: 800;
    line-height: 1.2;
}

.membership-benefits-description {
    margin: 0;
    color: var(--ks-muted);
    font-size: 1.05rem;
    line-height: 1.6;
}

.membership-benefit-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .55rem;
    padding: 1.35rem;
}

.membership-benefit-card__index {
    margin: 0;
    color: var(--ks-secondary);
    font-family: var(--ks-font-button);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .08em;
}

.membership-benefit-card h3 {
    margin: 0;
    color: var(--ks-text);
    font-size: 1.25rem;
    font-weight: 800;
    line-height: 1.25;
}

.membership-benefit-card > p:last-child {
    margin: 0;
    color: var(--ks-muted);
    line-height: 1.55;
}

.membership-permit-divider {
    padding-top: 1rem;
}

.membership-permit {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
}

.ks-image-copy {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: stretch;
    gap: 1rem;
}

.ks-image-copy__image,
.ks-image-copy__copy {
    min-width: 0;
    overflow: hidden;
}

.ks-image-copy__image {
    position: relative;
    min-height: 0;
    padding: 0;
}

.ks-image-copy__image img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 44%;
}

.ks-image-copy__copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: .85rem;
    padding: clamp(1.35rem, 3vw, 2.5rem);
}

.ks-image-copy__copy h2 {
    margin: 0 0 .35rem;
    color: var(--ks-text);
    font-size: clamp(1.65rem, 3vw, 2.25rem);
    font-weight: 800;
    line-height: 1.2;
}

.ks-image-copy__copy p {
    margin: 0;
    color: var(--ks-muted);
    line-height: 1.6;
}

@media (max-width: 999.98px) {
    .ks-image-copy {
        grid-template-columns: minmax(0, 1fr);
    }

    .ks-image-copy__image {
        height: min(86vw, 24rem);
    }

    .membership-permit {
        padding-top: 2rem;
        padding-bottom: 2rem;
    }
}

.membership-pricing-divider {
    padding-top: 1rem;
}

.membership-pricing {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
}

.membership-pricing-intro {
    max-width: 760px;
    margin: 0 auto 1.5rem;
    text-align: center;
}

.membership-pricing-intro h2 {
    margin: 0 0 .75rem;
    color: var(--ks-text);
    font-size: clamp(1.65rem, 3vw, 2.25rem);
    font-weight: 800;
    line-height: 1.2;
}

.membership-pricing-intro > p:last-child {
    margin: 0;
    color: var(--ks-muted);
    font-size: 1.05rem;
    line-height: 1.6;
}

.membership-pricing-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    max-width: 900px;
    margin-inline: auto;
}

.membership-pricing-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: .65rem;
    padding: 1.5rem;
}

.membership-pricing-card__label {
    margin: 0;
    color: var(--ks-primary-hover);
    font-family: var(--ks-font-button);
    font-size: .9rem;
    font-weight: 700;
}

.membership-pricing-card__label span {
    color: var(--ks-muted);
    font-weight: 400;
}

.membership-pricing-card__amount {
    margin: 0;
    color: var(--ks-text);
    font-size: clamp(2rem, 4vw, 2.8rem);
    font-weight: 800;
    line-height: 1;
}

.membership-pricing-card__amount span {
    font-size: .48em;
    font-weight: 700;
}

.membership-pricing-card__note {
    margin: 0;
    color: var(--ks-muted);
    line-height: 1.5;
}

.membership-pricing-card--total .membership-pricing-card__label,
.membership-pricing-card--total .membership-pricing-card__note {
    color: var(--ks-text);
}

.membership-join-steps {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 1rem;
}

.membership-join-steps__intro {
    padding: .25rem 0;
}

.membership-join-steps__intro h2 {
    margin: 0;
    color: var(--ks-text);
    font-size: clamp(1.5rem, 2.5vw, 2rem);
    font-weight: 800;
    line-height: 1.2;
}

.membership-join-step {
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: .4rem;
    padding: 1rem;
}

.membership-join-step__number {
    margin: 0;
    color: var(--ks-secondary);
    font-family: var(--ks-font-button);
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .08em;
}

.membership-join-step h3 {
    margin: 0;
    color: var(--ks-text);
    font-size: 1.05rem;
    font-weight: 800;
    line-height: 1.25;
}

.membership-join-step > p:last-child {
    margin: 0;
    color: var(--ks-muted);
    font-size: .95rem;
    line-height: 1.5;
}

.membership-join-steps__discord {
    margin: 0;
    color: var(--ks-muted);
    line-height: 1.5;
}

.membership-join-steps__discord a {
    color: var(--ks-primary-hover);
}

.membership-content {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
    align-items: start;
    gap: 1rem;
    padding-block: 1.5rem 4rem;
    scroll-margin-top: 6rem;
}

@media (max-width: 999.98px) {
    .membership-content { grid-template-columns: minmax(0, 1fr); }
}

.membership-status-card {
    grid-column: 1 / -1;
    text-align: center;
}

.membership-status-card > p {
    margin: 0;
    color: var(--ks-muted);
    font-size: 1.1rem;
}

.membership-form-card {
    min-width: 0;
    padding: 1.25rem;
}

.membership-form-card .ks-section-header h2 {
    margin: 0;
    color: var(--ks-text);
    font-family: var(--ks-font-button);
    font-size: 1rem;
    letter-spacing: .08em;
    text-transform: uppercase;
}

@media (max-width: 767.98px) {
    .account-content-section { padding-top: .75rem; }
    .account-form { grid-template-columns: minmax(0, 1fr); }
    .account-field-full,
    .account-form-actions { grid-column: 1; }
    .membership-pricing { padding-top: 2rem; padding-bottom: 2rem; }
    .membership-pricing-grid { grid-template-columns: minmax(0, 1fr); }
    .membership-benefits-grid { grid-template-columns: minmax(0, 1fr); }
    .membership-benefits { padding-top: 2rem; padding-bottom: 2rem; }
    .membership-form-card .account-field:not(.account-field-full) > label { min-height: 0; }
    .membership-hero .home-hero__copy { width: min(70%, 390px); }
    .membership-hero .home-hero__actions { align-items: stretch; }
}


.profile-account-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.5rem;
}

.profile-account-heading h1 { margin-bottom: .6rem; }
.profile-account-actions {
    display: grid;
    justify-items: end;
    gap: .45rem;
    max-width: 300px;
}

.profile-account-actions .profile-admin-link {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    min-height: 36px;
    color: var(--ks-primary-hover);
    font-weight: 800;
    text-decoration: none;
}

.profile-account-actions .profile-admin-link:hover,
.profile-account-actions .profile-admin-link:focus-visible {
    color: var(--ks-text);
    text-decoration: underline;
    text-decoration-color: var(--ks-primary-hover);
}

@media (max-width: 767.98px) {
    .profile-account-heading { flex-direction: column; }
    .profile-account-actions { justify-items: start; }
}


/* Układ i typografia profilu; kolory oraz przyciski pozostają wspólne. */
.profile-content-section {
    padding: 1.25rem 0 4rem;
}

.profile-container {
    max-width: var(--ks-content-max-width);
}

.profile-account-heading {
    margin-bottom: 1.25rem;
}

.profile-panels {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: 1rem;
}

.profile-account-bottom-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    margin-top: 1rem;
}

.profile-panel {
    min-width: 0;
    padding: 1.25rem;
}

.profile-panel-heading {
    margin-bottom: 1rem;
}

.profile-data-list {
    display: grid;
    gap: .9rem;
    margin: 0;
}

.profile-data-item { min-width: 0; }
.profile-data-item dt {
    margin-bottom: .25rem;
    color: var(--ks-muted);
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
}
.profile-data-item dd {
    margin: 0;
    color: var(--ks-text);
    font-size: .95rem;
    font-weight: 650;
    overflow-wrap: anywhere;
}

.profile-pesel-toggle {
    display: inline-flex;
    align-items: baseline;
    gap: .65rem;
    min-height: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    color: inherit !important;
    background: transparent !important;
    font: inherit;
    text-align: left;
}
.profile-pesel-toggle-label {
    color: var(--ks-primary-hover);
    font-size: .8rem;
    font-weight: 700;
}

.profile-edit-button { margin-top: 1rem; }
.profile-edit-form .form-label {
    margin: 0 0 .4rem;
    color: var(--ks-muted);
    font-weight: 700;
}
.profile-edit-form .form-control { min-height: 42px; }
.profile-edit-actions,
.profile-request-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
    margin-top: 1rem;
}
.profile-edit-actions .profile-edit-button,
.profile-request-actions .profile-cancel-button { margin: 0; }

.profile-message {
    margin-bottom: 1rem;
    padding: .8rem 1rem;
    border: 1px solid var(--ks-border);
    border-radius: 3px;
    color: var(--ks-text);
    background: var(--ks-card-accent-20);
}
.profile-message.is-success { border-color: var(--ks-success-border); color: var(--ks-success-text); }
.profile-message.is-error { border-color: var(--ks-error-border); color: var(--ks-error-text); }
.profile-message.is-warning { border-color: var(--ks-secondary); color: var(--ks-secondary-soft); font-weight: 700; }

.profile-competitions-panel { margin-bottom: 1rem; }
.profile-competition-list { display: grid; gap: 1rem; }
.profile-competition-card { min-width: 0; }
.profile-competition-heading {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: .9rem;
}
.profile-competition-heading h3,
.profile-competition-heading h2 {
    margin: 0 0 .25rem;
    color: var(--ks-text);
    font-size: 1.05rem;
    font-weight: 800;
}
.profile-competition-heading p { margin: 0; color: var(--ks-muted); font-size: .85rem; }
.profile-competition-heading > strong { font-size: .9rem; }
.profile-competition-heading .is-paid { color: var(--ks-primary-hover); }
.profile-competition-heading .is-unpaid { color: var(--ks-secondary-soft); }
.profile-unpaid-disciplines,
.profile-request-history ul {
    margin: 0 0 1rem;
    padding-left: 1.25rem;
    color: var(--ks-text);
    font-size: .85rem;
}
.profile-competition-change,
.profile-request-history {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--ks-border);
}
.profile-competition-change h4,
.profile-request-history h3 {
    margin: 0 0 .65rem;
    color: var(--ks-text);
    font-size: .95rem;
    font-weight: 800;
}
.profile-registered-disciplines,
.profile-additional-disciplines { display: grid; gap: .5rem; margin-bottom: .75rem; }
.profile-discipline-request {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .5rem .85rem;
    padding: .6rem 0;
    border-bottom: 1px solid var(--ks-border);
    font-size: .85rem;
}
.profile-discipline-request small { color: var(--ks-muted); }
.profile-discipline-request .profile-request-pending { color: var(--ks-secondary-soft); font-weight: 700; }
.profile-additional-disciplines label { display: flex; align-items: center; gap: .5rem; color: var(--ks-text); }
.profile-additional-discipline { display: grid; gap: .4rem; }
.profile-add-weapon-choice { max-width: 320px; }
.profile-add-weapon-choice:disabled { display: none; }
.profile-request-actions form { margin: 0; }
.profile-request-history { margin-top: 1.25rem; }
.profile-request-history li { margin-bottom: .5rem; }
.profile-refund-notice { color: var(--ks-secondary-soft); font-weight: 700; }

.membership-form-card > .account-lead { margin: -.25rem 0 1rem; }
.membership-form-card .account-field:not(.account-field-full) > label { min-height: 2.8em; display: flex; align-items: flex-end; }
/* Field state tokens also feed the shared form rules that use !important. */
.account-form .is-invalid,
.account-form :user-invalid {
    --ks-field-border: var(--ks-error-border);
    --ks-field-shadow: 0 0 0 2px color-mix(in srgb, var(--ks-error-border) 28%, transparent);
}

@media (max-width: 767.98px) {
    .profile-content-section { padding: .75rem 0 2.25rem; }
    .profile-panels { grid-template-columns: minmax(0, 1fr); }
    .profile-panel { padding: 1rem; }
    .profile-account-actions { width: 100%; max-width: none; }
}


/* Przycisk profilu korzysta z tych samych wariantów co reszta serwisu. */
.home-page .btn-highlighted {
    border: 1px solid var(--ks-primary) !important;
    border-radius: var(--ks-button-radius) !important;
    color: var(--ks-button-text) !important;
    background: var(--ks-primary) !important;
    font-family: var(--ks-font-button) !important;
    font-size: var(--ks-button-font-size) !important;
    letter-spacing: .15rem;
    text-transform: uppercase;
}
.home-page .btn-highlighted:hover,
.home-page .btn-highlighted:focus-visible {
    border-color: var(--ks-primary-hover) !important;
    box-shadow: 0 0 0 1px var(--ks-primary-hover);
}


/* Tytuły w kartach konta są prostymi nagłówkami, nie belkami sekcji. */
.account-page .ks-card > .ks-section-header {
    display: block;
    min-height: 0;
    margin: 0 0 1rem;
    padding: 0;
    border: 0;
    color: var(--ks-text) !important;
    background: transparent !important;
    font-family: var(--ks-font-body) !important;
    font-size: 1.15rem;
    font-weight: 800;
    letter-spacing: 0;
    line-height: 1.3;
    text-transform: none;
}

.account-page .ks-card > .ks-section-header h2 {
    margin: 0;
    color: var(--ks-text) !important;
    font-family: var(--ks-font-body) !important;
    font-size: inherit;
    font-weight: inherit;
    letter-spacing: inherit;
    text-transform: none;
}


/* Filtry i selektor ról w administracyjnej liście kont. */
.admin-member-filters {
    display: grid;
    grid-template-columns: minmax(180px, 1.5fr) repeat(3, minmax(145px, 1fr)) auto;
    align-items: end;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.admin-member-filter-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.admin-page .admin-audit-filters {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
}

.admin-audit-multiselect {
    position: relative;
    z-index: 1;
    min-width: 0;
}

.admin-audit-multiselect[open] {
    z-index: 10;
}

.admin-audit-multiselect > summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .75rem;
    min-height: 44px;
    padding: .65rem .75rem;
    border: 1px solid var(--ks-border);
    border-radius: 3px;
    color: var(--ks-text);
    background: var(--ks-bg);
    cursor: pointer;
    list-style: none;
}

.admin-audit-multiselect > summary::-webkit-details-marker {
    display: none;
}

.admin-audit-multiselect > summary:focus-visible {
    outline: 2px solid var(--ks-primary-hover);
    outline-offset: 2px;
}

.admin-audit-multiselect-arrow {
    color: var(--ks-primary-hover);
    font-size: 1.15rem;
    line-height: 1;
}

.admin-audit-multiselect-options {
    position: absolute;
    top: calc(100% + .25rem);
    left: 0;
    z-index: 20;
    display: grid;
    gap: .15rem;
    width: 100%;
    max-height: 16rem;
    overflow-y: auto;
    padding: .4rem;
    border: 1px solid var(--ks-border);
    border-radius: 3px;
    background: var(--ks-surface);
    box-shadow: 0 .5rem 1.25rem rgb(0 0 0 / 35%);
}

.admin-audit-multiselect-option {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    padding: .45rem .5rem;
    border-radius: 3px;
    color: var(--ks-text) !important;
    cursor: pointer;
    overflow-wrap: anywhere;
}

.admin-audit-multiselect-option:hover {
    background: color-mix(in srgb, var(--ks-primary) 20%, var(--ks-surface));
}

.admin-audit-multiselect-option input[type="checkbox"] {
    flex: 0 0 auto;
    width: 1rem;
    height: 1rem;
    min-height: 0;
    margin: .15rem 0 0;
    padding: 0;
    border: 0;
    background-color: var(--ks-surface) !important;
    box-shadow: none;
    accent-color: var(--ks-primary-hover);
}

.admin-member-role-picker {
    min-width: 150px;
}

.admin-member-role-picker summary {
    color: var(--ks-primary-hover);
    cursor: pointer;
    font-weight: 700;
}

.admin-member-role-form {
    display: grid;
    gap: .6rem;
    min-width: 220px;
    margin-top: .75rem;
    padding: .85rem;
    border: 1px solid var(--ks-primary);
    background: var(--ks-bg);
}

.admin-member-role-option {
    display: flex;
    align-items: center;
    gap: .55rem;
    color: var(--ks-text);
}

.admin-member-role-option input {
    accent-color: var(--ks-primary);
}

.admin-member-soz-form {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-width: 0;
    margin: 0;
}

.admin-member-soz-checkbox {
    display: block;
    flex: 0 0 1rem;
    box-sizing: border-box;
    width: 1rem;
    height: 1rem;
    min-height: 0;
    margin: 0;
    padding: 0;
    accent-color: var(--ks-primary-hover);
    cursor: pointer;
}

.admin-users-table th:last-child,
.admin-users-table td:last-child {
    min-width: 4rem;
    text-align: center;
}

@media (max-width: 1199.98px) {
    .admin-member-filters {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .admin-member-filters {
        grid-template-columns: minmax(0, 1fr);
    }

    .admin-member-filter-actions > * {
        flex: 1 1 auto;
        text-align: center;
    }
}


/* Wspólny wygląd paneli administracyjnych oparty na komponentach strony. */
.admin-page .admin-content-section {
    padding: 2rem 0 3.5rem;
    background: var(--ks-bg);
    background-image: none;
}

.admin-page .home-container.admin-container {
    width: calc(100% - 2rem);
    max-width: none;
    padding-right: 0;
    padding-left: 0;
}

.admin-page .admin-intro {
    margin-bottom: 1.25rem;
}

.admin-page .admin-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 0 0 1.25rem;
    padding: 1rem;
    border: 1px solid var(--ks-primary);
    border-radius: 3px;
    color: var(--ks-text);
    background: var(--ks-card-accent-20);
    box-shadow: none;
}

.admin-page .admin-toolbar-actions,
.admin-page .admin-competition-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .65rem;
}

.admin-page .admin-toolbar-actions form,
.admin-page .admin-competition-actions form {
    margin: 0;
}

.admin-page .admin-toolbar-actions .btn,
.admin-page .admin-competition-actions .btn,
.admin-page .admin-competition-body .btn {
    min-height: 40px;
    padding: .55rem .8rem;
    font-size: var(--ks-button-font-size);
    white-space: normal;
}

.admin-page .admin-toolbar-note {
    color: var(--ks-muted);
    font-size: .9rem;
}

.admin-page .admin-competition-card.ks-card {
    overflow: hidden;
    margin: 0 0 1.25rem;
    padding: 0;
    border: 1px solid var(--ks-primary);
    border-radius: 3px;
    color: var(--ks-text);
    background: var(--ks-card-accent-20);
}

.admin-page .admin-competition-header {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.15rem 1.25rem;
    border: 0;
    border-bottom: 1px solid color-mix(in srgb, var(--ks-primary) 55%, transparent);
    border-radius: 0;
    color: var(--ks-text);
    background: transparent;
    box-shadow: none;
}

.admin-page .admin-competition-title {
    margin: 0 0 .4rem;
    color: var(--ks-text);
    font-size: 1.2rem;
    font-weight: 800;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

.admin-page .admin-competition-meta {
    color: var(--ks-muted);
    font-size: .85rem;
    line-height: 1.6;
}

.admin-page .admin-competition-body {
    padding: 1rem 1.25rem 1.25rem;
    color: var(--ks-text);
    background: transparent;
}

.admin-page .admin-discipline-heading {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .65rem;
    margin: 1.25rem 0 .85rem;
    padding: .7rem .9rem;
    border: 0;
    border-left: 3px solid var(--ks-primary);
    color: var(--ks-text);
    background: var(--ks-surface);
    font-family: var(--ks-font-button);
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: .04em;
}

.admin-page .admin-discipline-heading strong,
.admin-page .admin-registration-count {
    color: var(--ks-muted);
    font-size: .82rem;
    font-weight: 700;
}

.admin-page .admin-registration-count {
    padding: .35rem .6rem;
    border: 1px solid var(--ks-primary);
    border-radius: 3px;
    white-space: nowrap;
}

.admin-page .admin-station-schedule {
    margin-top: 1.5rem;
    padding-top: 1rem;
    border-top: 1px solid var(--ks-primary);
}

.admin-page .admin-station-schedule .admin-discipline-heading {
    margin-top: 0;
}

.admin-page .admin-station-schedule .admin-discipline-heading small,
.admin-page .admin-player-details,
.admin-page .admin-toolbar-note,
.admin-page .admin-discipline-paid-summary,
.admin-page .admin-payment-total {
    color: var(--ks-muted);
}

.admin-page .admin-station-schedule .table-striped > tbody > tr.admin-station-free-row > *,
.admin-page .admin-station-schedule .table-striped > tbody > tr.admin-station-wait-row > * {
    color: var(--ks-text) !important;
    border-color: color-mix(in srgb, var(--ks-primary) 55%, transparent) !important;
    background: var(--ks-card-accent-50) !important;
    box-shadow: none !important;
}

.admin-page .admin-station-schedule .admin-station-free-row > td[colspan] {
    color: var(--ks-muted) !important;
}

.admin-page .admin-empty-state {
    margin: .75rem 0;
    padding: 1rem 1.15rem;
    border: 1px solid var(--ks-primary);
    border-radius: 3px;
    color: var(--ks-muted);
    background: var(--ks-bg);
    box-shadow: none;
}

.admin-page .admin-payments-intro {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem 1rem;
    padding: .8rem 0 1rem;
    border-bottom: 1px solid color-mix(in srgb, var(--ks-primary) 55%, transparent);
}

.admin-page .admin-payments-intro span,
.admin-page .admin-discipline-due,
.admin-page .admin-payment-all-form label,
.admin-page .admin-payment-total .js-player-paid-total {
    color: var(--ks-primary-hover);
}

.admin-page .admin-payments-intro strong,
.admin-page .admin-discipline-paid-summary .js-discipline-paid-amount,
.admin-page .admin-player-name,
.admin-page .admin-player-discipline-name,
.admin-page .admin-payment-total {
    color: var(--ks-text);
}

.admin-page .admin-payments-intro small,
.admin-page .admin-player-details,
.admin-page .admin-discipline-paid-summary,
.admin-page .admin-payment-all-form > span {
    color: var(--ks-muted);
}

.admin-page .admin-player-disciplines {
    display: grid;
    gap: .5rem;
    min-width: 290px;
}

.admin-page .admin-player-discipline,
.admin-page .hourly-capacity-row {
    border: 1px solid color-mix(in srgb, var(--ks-primary) 55%, transparent);
    border-radius: 3px;
    color: var(--ks-text);
    background: var(--ks-bg);
}

.admin-page .admin-player-discipline.is-withdrawn {
    border-color: var(--ks-secondary);
    background: var(--ks-card-accent-20);
}

.admin-page .admin-withdrawn-badge {
    padding: .2rem .35rem;
    border: 1px solid var(--ks-secondary);
    border-radius: 3px;
    color: var(--ks-secondary-soft);
    background: transparent;
}

.admin-page .admin-payment-form,
.admin-page .admin-payment-amount-form,
.admin-page .admin-payment-all-form {
    margin: 0;
}

.admin-page .admin-payment-form label,
.admin-page .admin-payment-all-form label {
    color: var(--ks-muted);
}

.admin-page .admin-payment-amount-form .input-group-text {
    border-color: var(--ks-primary);
    color: var(--ks-muted);
    background: var(--ks-surface);
}

.admin-page .btn-danger,
.admin-page .btn-outline-danger {
    min-height: 40px;
    border: 1px solid var(--ks-error-border) !important;
    border-radius: var(--ks-button-radius) !important;
    color: var(--ks-error-text) !important;
    background: var(--ks-bg) !important;
    font-family: var(--ks-font-button) !important;
    font-size: var(--ks-button-font-size) !important;
}

.admin-page .btn-danger:hover,
.admin-page .btn-outline-danger:hover {
    border-color: var(--ks-error-text) !important;
    box-shadow: 0 0 0 1px var(--ks-error-text);
}

.admin-page .alert,
.admin-page .profile-message {
    padding: .85rem 1rem;
    border: 1px solid var(--ks-primary);
    border-radius: 3px;
    color: var(--ks-text);
    background: var(--ks-card-accent-20);
}

.admin-page .alert-success,
.admin-page .profile-message.is-success {
    border-color: var(--ks-success-border);
    color: var(--ks-success-text);
    background: color-mix(in srgb, var(--ks-success-border) 16%, var(--ks-bg));
}

.admin-page .alert-danger,
.admin-page .profile-message.is-error {
    border-color: var(--ks-error-border);
    color: var(--ks-error-text);
    background: color-mix(in srgb, var(--ks-error-border) 16%, var(--ks-bg));
}

.admin-page .alert-warning,
.admin-page .profile-message.is-warning {
    border-color: var(--ks-secondary);
    color: var(--ks-secondary-soft);
    background: color-mix(in srgb, var(--ks-secondary) 16%, var(--ks-bg));
}

.admin-page .modal-content {
    border: 1px solid var(--ks-primary);
    border-radius: 3px;
    color: var(--ks-text);
    background: var(--ks-card-accent-20);
    box-shadow: none;
}

.admin-page .modal-header,
.admin-page .modal-footer {
    border-color: color-mix(in srgb, var(--ks-primary) 55%, transparent);
}

.admin-page .modal-title {
    color: var(--ks-text);
    font-family: var(--ks-font-body);
    font-weight: 800;
}

.admin-page .modal .close {
    color: var(--ks-text);
    text-shadow: none;
    opacity: .8;
}

@media (max-width: 767.98px) {
    .admin-page .admin-content-section {
        padding: 1rem 0 2.5rem;
    }

    .admin-page .admin-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .admin-page .admin-toolbar-actions,
    .admin-page .admin-competition-actions {
        width: 100%;
    }

    .admin-page .admin-competition-header,
    .admin-page .admin-competition-body {
        padding: 1rem;
    }

    .admin-page .admin-toolbar-actions .btn,
    .admin-page .admin-competition-actions .btn {
        max-width: 100%;
    }
}


/* O KLUBIE: karty w jednym rzędzie, a niżej wspólny układ zdjęcia i tekstu. */
#o-nas .about-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.5rem;
    text-align: left;
}

#o-nas .about-credentials {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin: 0;
}

#o-nas .about-feature .about-cta {
    margin: 0;
}

@media (max-width: 999.98px) {
    #o-nas .about-credentials {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}


#kontakt .contact-email {
    max-width: 100%;
    overflow-wrap: anywhere;
}

/* Additional shared layout rules consolidated from the former global stylesheet. */
#mainNav{min-height:56px;background-color:#0B1318;}
#mainNav .navbar-toggler{font-size:150%;padding:.75rem;color:#3C6289;}
#mainNav .navbar-toggler:focus{outline:0}
#mainNav .navbar-brand{color:#080F11;font-weight:700;padding:.9rem 0}
#mainNav .navbar-logo{display:block;width:44px;height:44px;object-fit:contain}
#mainNav .nav-link{white-space:nowrap}
#mainNav .navbar-nav .nav-link{color:rgba(255,255,255,.76)}
#mainNav .dropdown-menu{min-width:13rem;padding:.45rem;background:#0B1318;border:1px solid rgba(60,98,137,.5);border-top:3px solid #3C6289;border-radius:.35rem;box-shadow:0 .65rem 1.5rem rgba(0,0,0,.35)}
#mainNav .dropdown-item{padding:.55rem .85rem;color:rgba(255,255,255,.78);font-size:.82rem;font-weight:700;letter-spacing:.035em}
#mainNav .dropdown-item:hover,#mainNav .dropdown-item:focus{color:#fff;background:rgba(60,98,137,.2)}
#mainNav .nav-join{margin-left:.45rem}

#mainNav .navbar-nav .nav-item:hover{color:fade(white,80%);outline:0;background-color:transparent}
#mainNav .navbar-nav .nav-item:active,
#mainNav .navbar-nav .nav-item:focus{outline:0;background-color:transparent}
@media (min-width:1000px){
  #mainNav{padding-top:0;padding-bottom:0;border-bottom:none;background-color:transparent;-webkit-transition:background-color .3s ease-in-out;transition:background-color .3s ease-in-out}
  #mainNav .navbar-brand{padding:.5rem 0;}
  #mainNav .nav-link{font-weight:bold;-webkit-transition:none;transition:none;padding:2rem 1.5rem;color:rgba(255,255,255,.5)}
  #mainNav .nav-link:hover{font-weight:bold;color:rgba(255,255,255,.75)}
  #mainNav .nav-link:active{font-weight:bold;color:#fff}
  #mainNav.navbar-shrink{padding-top:8px;background-color:var(--bg-navbar)}
  #mainNav.navbar-shrink .navbar-brand{color:#080F11}
  #mainNav.navbar-shrink .nav-link{color:rgba(255,255,255,.78);padding:1.5rem 1.5rem 1.25rem;border-bottom:.25rem solid transparent}
  #mainNav.navbar-shrink .nav-link:hover{color:#3C6289}
  #mainNav.navbar-shrink .nav-link:active{color:#3C6289}
  #mainNav.navbar-shrink .nav-link.active{color:#3C6289;outline:0;border-bottom:.25rem solid #3C6289}
}

@media (max-width:999.98px){
	#mainNav .navbar-collapse{max-height:calc(100vh - 56px);overflow-y:auto;background:#0B1318;padding:0 1rem 1rem}
	#mainNav .navbar-nav{align-items:stretch!important}
	#mainNav .nav-link{padding:.65rem 0}
	#mainNav .dropdown-menu{margin:0 0 .5rem;background:#0B1318}
	#mainNav .nav-join{margin:.35rem 0 0}
}

.webp .masthead{
	position:relative;
	height:102vh;
	min-height:35rem;
	padding:0!important;
	margin:0!important;
	background:-webkit-gradient(linear,left top,left bottom,from(rgba(8,15,17,.3)),color-stop(75%,rgba(8,15,17,.7)),to(#080F11)),url(../img/bg-masthead.webp);
	background:linear-gradient(to bottom,rgba(8,15,17,.3) 0,rgba(8,15,17,.7) 75%,#080F11 100%),url(../img/bg-masthead.webp);
	background-position:center;
	background-repeat:no-repeat;
	background-attachment:scroll;
	background-size:cover;
	}

@media only screen and (max-width: 999.98px) {
	.informacje {text-align: left!important; padding:20px}
	.webp .masthead {background-position: 75% 50%;}
	.no-js .masthead, .js.no-webp .masthead {background-position: 75% 50%;}
}


    background-position: 75% 50%;
.no-js .masthead,
.js.no-webp .masthead
{
	position:relative;
	height:102vh;
	min-height:35rem;
	padding:0!important;
	margin:0!important;
	background:-webkit-gradient(linear,left top,left bottom,from(rgba(8,15,17,.3)),color-stop(75%,rgba(8,15,17,.7)),to(#080F11)),url(../img/bg-masthead.jpg);
	background:linear-gradient(to bottom,rgba(8,15,17,.3) 0,rgba(8,15,17,.7) 75%,#080F11 100%),url(../img/bg-masthead.jpg);
	background-position:center;
	background-repeat:no-repeat;
	background-attachment:scroll;
	background-size:cover;
	}

.masthead h1{
	font-family:var(--ks-font-button);
	font-size:1rem;
	line-height:1rem;
	letter-spacing:.8rem;
	background:-webkit-linear-gradient(rgba(255,255,255,.9),rgba(255,255,255,0));
	-webkit-text-fill-color:transparent;
	-webkit-background-clip:text
	}

.masthead h2{
	max-width:20rem;
	font-size:1rem
	}

@media (min-width:768px){
.masthead h1{
	font-size:4rem;line-height:4rem}
}

@media (min-width:1000px){
.masthead{
	height:100vh;padding:0
    background-position: 75% 50%;
}
.masthead h1{
	font-size:6.5rem;
	line-height:6.5rem;
	letter-spacing:.8rem
	}
.masthead h2{
	max-width:30rem;
	font-size:1.25rem
	}
}

.btn{
	-webkit-box-shadow:0 .1875rem .1875rem 0 rgba(0,0,0,.1)!important;
	box-shadow:0 .1875rem .1875rem 0 rgba(0,0,0,.1)!important;
	font-family:var(--ks-font-button);
	font-size:80%;
	text-transform:uppercase;
	letter-spacing:.15rem;
	border:0
	}
.btn-primary{
	background-color:#3C6289
	}
.btn-primary:hover{
	background-color:#2D4A66
	}
.btn-primary:focus{
	background-color:#2D4A66;color:#fff
	}
.btn-primary:active{
	background-color:#22384D!important
	}
.about-section{
	padding-top:10rem;
	background-color:var(--bg-about)
	}
.about-section p{
	margin-bottom:5rem
	}
#o-nas p{
	margin-bottom:1.25rem
	}
#o-nas .about-copy p{
	text-align:justify;
	margin-bottom:1.25rem
	}
#o-nas .about-credentials .card,
.contact-section .card{
	border:2px solid rgba(60,98,137,.8);
	border-top:5px solid #3C6289;
	box-shadow:0 0 .9rem rgba(60,98,137,.16)
	}

.history-section{
	padding:0 0 6rem;
	background:linear-gradient(180deg,#080F11 0%,#11171a 100%);
	scroll-margin-top:4rem
	}
.history-heading{
	max-width:48rem;
	margin:0 auto 4.5rem;
	text-align:center
	}
.history-eyebrow{
	display:inline-block;
	margin-bottom:.8rem;
	color:#3C6289;
	font-size:.8rem;
	font-weight:700;
	letter-spacing:.12em;
	text-transform:uppercase
	}
.history-heading h2{
	margin-bottom:1rem;
	color:#fff;
	font-size:2.5rem
	}
.history-heading p{
	margin:0;
	color:rgba(255,255,255,.65);
	font-size:1.1rem;
	line-height:1.8
	}
.history-timeline{
	max-width:1050px;
	margin:0 auto;
	display:flex;
	flex-direction:column;
	gap:3.75rem
	}
.history-entry{
	position:relative;
	display:grid;
	grid-template-columns:1fr 1fr;
	align-items:center;
	min-height:300px
	}
.history-photo{
	grid-column:1 / 3;
	grid-row:1;
	justify-self:start;
	width:57%;
	min-height:310px;
	display:flex;
	align-items:center;
	justify-content:center;
	padding:0;
	border:1px dashed rgba(60,98,137,.7);
	border-radius:.75rem;
	background:linear-gradient(135deg,rgba(60,98,137,.18),rgba(17,23,26,.8)),repeating-linear-gradient(135deg,#202a2d 0,#202a2d 2px,#1a2225 2px,#1a2225 12px);
	color:rgba(255,255,255,.75)
	}
.history-photo-button{
	appearance:none;
	font-family:inherit;
	font-size:inherit;
	cursor:zoom-in
	}
.history-photo-2019{
	border-style:solid;
	background-image:linear-gradient(rgba(8,13,15,.18),rgba(8,13,15,.32)),url('../img/optimized/history-2019.webp');
	background-position:center 50%;
	background-size:cover
	}
.history-photo-gpa{
	border-style:solid;
	background-image:linear-gradient(rgba(8,13,15,.18),rgba(8,13,15,.32)),url('../img/gpa-gallery/gpa-cover.webp');
	background-position:center 42%;
	background-size:cover
	}
.history-photo-2025{
	border-style:solid;
	background-image:linear-gradient(rgba(8,13,15,.18),rgba(8,13,15,.32)),url('../img/optimized/history-2025.webp');
	background-position:center 65%;
	background-size:cover
	}
.history-photo-2024{
	border-style:solid;
	background-image:linear-gradient(rgba(8,13,15,.18),rgba(8,13,15,.32)),url('../img/optimized/history-2024.webp');
	background-position:center 60%;
	background-size:cover
	}
.history-photo-2023{
	border-style:solid;
	background-image:linear-gradient(rgba(8,13,15,.18),rgba(8,13,15,.32)),url('../img/optimized/history-2023.webp');
	background-position:center 55%;
	background-size:cover
	}
.history-photo-2022{
	border-style:solid;
	background-image:linear-gradient(rgba(8,13,15,.18),rgba(8,13,15,.32)),url('../img/optimized/history-2022.webp');
	background-position:center 60%;
	background-size:cover
	}
.history-photo-2021{
	border-style:solid;
	background-image:linear-gradient(rgba(8,13,15,.18),rgba(8,13,15,.32)),url('../img/optimized/history-2021.webp');
	background-position:center 45%;
	background-size:cover
	}
.history-photo-pzss,.history-photo-plomo{
	flex-direction:column;
	gap:1rem;
	border-style:solid;
	background:linear-gradient(135deg,rgba(60,98,137,.18),rgba(17,23,26,.8)),repeating-linear-gradient(135deg,#202a2d 0,#202a2d 2px,#1a2225 2px,#1a2225 12px)
	}
.history-photo-pzss img,.history-photo-plomo img{
	width:clamp(110px,18vw,190px);
	height:clamp(110px,18vw,190px);
	padding:0;
	background:transparent;
	object-fit:contain
	}
.history-photo-pzss img{filter:drop-shadow(0 0 .4rem rgba(255,255,255,.25))}
.history-photo-plomo img{filter:brightness(0) invert(1) opacity(.78) drop-shadow(0 0 .25rem rgba(255,255,255,.18))
	}
.history-photo-outreach{
	border-style:solid;
	background-image:linear-gradient(rgba(8,13,15,.18),rgba(8,13,15,.32)),url('../img/optimized/history-outreach.webp');
	background-position:center 55%;
	background-size:cover
	}
.history-lightbox{
	position:fixed;
	inset:0;
	width:100vw;
	height:100vh;
	max-width:100vw;
	max-height:100vh;
	margin:0;
	padding:3.5rem 1.25rem 1.25rem;
	border:0;
	background:rgba(7,10,12,.97);
	color:#fff
	}
.history-lightbox[open]{
	display:flex;
	align-items:center;
	justify-content:center
	}
.history-lightbox::backdrop{background:rgba(0,0,0,.88)}
.history-lightbox img{
	display:block;
	max-width:100%;
	max-height:calc(100vh - 4.75rem);
	max-height:calc(100dvh - 4.75rem);
	touch-action:pinch-zoom;
	object-fit:contain;
	border:1px solid rgba(255,255,255,.18);
	box-shadow:0 1rem 3rem rgba(0,0,0,.45)
	}
.history-lightbox-close{
	position:absolute;
	top:1rem;
	right:1.25rem;
	width:2.75rem;
	height:2.75rem;
	border:1px solid rgba(255,255,255,.35);
	border-radius:50%;
	background:rgba(255,255,255,.08);
	color:#fff;
	font-size:1.8rem;
	line-height:1;
	cursor:pointer
	}
.history-card{
	grid-column:1 / 3;
	grid-row:1;
	justify-self:end;
	z-index:1;
	width:60%;
	margin:1rem 0;
	padding:2rem 2.25rem;
	border:1px solid rgba(60,98,137,.5);
	border-left:4px solid #3C6289;
	border-radius:.65rem;
	background:rgba(19,25,28,.97);
	box-shadow:0 1rem 2.5rem rgba(0,0,0,.32)
	}
.history-date{
	display:block;
	margin-bottom:.55rem;
	color:#3C6289;
	font-size:.8rem;
	font-weight:700;
	letter-spacing:.1em;
	text-transform:uppercase
	}
.history-card h3{
	margin-bottom:.9rem;
	color:#fff;
	font-size:1.45rem;
	line-height:1.3
	}
.history-card p{
	margin:0 0 .8rem;
	color:rgba(255,255,255,.72);
	line-height:1.75
	}
.history-card p:last-child{margin-bottom:0}
.history-entry:nth-child(even) .history-photo{justify-self:end}
.history-entry:nth-child(even) .history-card{
	justify-self:start;
	border-right:4px solid #3C6289;
	border-left:1px solid rgba(60,98,137,.5)
	}
.history-finale{
	max-width:48rem;
	margin:5rem auto 0;
	padding:2.5rem 2rem;
	border:1px solid rgba(60,98,137,.45);
	border-radius:.75rem;
	background:rgba(255,255,255,.025)
	}
.history-finale h3{color:#fff;font-size:1.8rem}
.history-finale p{color:rgba(255,255,255,.7);line-height:1.8}
.history-finale .btn{white-space:normal}
@media (max-width:767.98px){
	.history-section{padding:0 0 4rem}
	.history-heading{margin-bottom:3rem}
	.history-heading h2{font-size:2rem}
	.history-heading p{font-size:1rem;line-height:1.65}
	.history-timeline{gap:2.5rem}
	.history-entry{display:flex;flex-direction:column;align-items:stretch;min-height:0}
	.history-photo{width:100%;min-height:190px}
	.history-card{width:auto;margin:-1rem .65rem 0;padding:1.35rem 1.25rem}
	.history-entry:nth-child(even) .history-card{border-left:1px solid rgba(60,98,137,.5);border-right:4px solid #3C6289}
	.history-card h3{font-size:1.25rem}
	.history-card p{line-height:1.65}
	.history-finale{margin-top:3.5rem;padding:2rem 1.25rem}
	.history-finale h3{font-size:1.55rem}
	}
.projects-section{
	padding:10rem 0
	}
.projects-section .featured-text{
	padding:2rem
	}

@media (min-width:1000px){
	.projects-section .featured-text{
		padding:0 0 0 2rem;
		border-left:.5rem solid #3C6289}
		}
	.projects-section .project-text{
		padding:3rem;
		font-size:90%
		}

@media (min-width:1000px){
	.projects-section .project-text{
		padding:5rem
		}
	.projects-section .project-text hr{
		border-color:#3C6289;
		border-width:.25rem;
		width:30%}
		}

	.webp .signup-section{
		padding:10rem 0;
		background:-webkit-gradient(linear,left top,left bottom,from(rgba(8,15,17,.1)),color-stop(75%,rgba(8,15,17,.5)),to(#080F11)),url(../img/bg-signup.webp);
		background:linear-gradient(to bottom,rgba(8,15,17,.1) 0,rgba(8,15,17,.5) 75%,#080F11 100%),url(../img/bg-signup.webp);
		background-position:center;
		background-repeat:no-repeat;
		background-attachment:scroll;
		background-size:cover
		}
	.no-js .signup-section,
	.no-webp .signup-section
	{
		padding:10rem 0;
		background:-webkit-gradient(linear,left top,left bottom,from(rgba(8,15,17,.1)),color-stop(75%,rgba(8,15,17,.5)),to(#080F11)),url(../img/bg-signup.jpg);
		background:linear-gradient(to bottom,rgba(8,15,17,.1) 0,rgba(8,15,17,.5) 75%,#080F11 100%),url(../img/bg-signup.jpg);
		background-position:center;
		background-repeat:no-repeat;
		background-attachment:scroll;
		background-size:cover
		}
	.signup-section .form-inline input{
		-webkit-box-shadow:0 .1875rem .1875rem 0 rgba(0,0,0,.1)!important;
		box-shadow:0 .1875rem .1875rem 0 rgba(0,0,0,.1)!important;
		height:auto;
		font-family:var(--ks-font-button);
		font-size:80%;
		text-transform:uppercase;
		letter-spacing:.15rem;
		border:0
		}
	.contact-section{
		padding:5rem 0 0
		}
	.contact-section .card{
		border:2px solid rgba(60,98,137,.8);
		border-top:5px solid #3C6289;
		box-shadow:0 0 .9rem rgba(60,98,137,.16)
		}

	.contact-section .social{
		margin-top:5rem
		}
	.contact-section .social a{
		text-align:center;
		height:3rem;
		width:3rem;
		background:rgba(255,255,255,.1);
		border-radius:100%;
		line-height:3rem;
		color:rgba(255,255,255,.3)
		}
	.contact-section .social a:hover{
		color:rgba(255,255,255,.5)
		}
	.contact-section .social a:active{
		color:#fff
		}
	body{
		font-family:Nunito;
		letter-spacing:.0625em
		}
	a{color:#3C6289}a:focus,a:hover{
		text-decoration:none;
		color:#2D4A66}
	.bg-black{
		background-color:#0e1215!important /*0e1208*/
		}
	.bg-primary{
		background-color:#0e1215!important /*0e1208*/
		}
	.text-primary{
		color:#3C6289!important
		}
	footer{
		padding:5rem 0
		}

:root{
  --bg-navbar:#0e1215;
  --bg-about:#080F11; /*1b2310*/
  --bg-main:#080F11;
  --bg-content:#080F11;
  --bg-guns:#080F11;
  --bg-subpage:#080F11;
  --bg-card:#080F11;
  }
html{overflow-y: scroll!important;overflow-x:hidden!important;}
html{font-size:100%;}
.print{font-size:150%;}

body {padding:0!important;margin:0!important;position: relative;}
navbar{padding:0!important;margin:0!important;}
@media(min-width:1000px){hr{display:none;}}
hr{height:2px;color:#222;background-color:#222;border:none;}
@import url(../assets/libs/army-font/army.ttf);.army-font{font-family:Army!important;font-weight:normal!important;font-size:x-large;}

.text{margin-top:10%;margin-bottom:25%;position:absolute;top:50%;left:50%;font-size:small;color:white;transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);}
#overlay1{overflow-y:scroll;position:fixed;display:none;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,0.9);z-index:2;cursor:pointer;}
#overlay2{overflow-y:scroll;position:fixed;display:none;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,0.9);z-index:2;cursor:pointer;}
.pointer:hover{cursor:pointer;}input[type='number']{-moz-appearance:textfield;}
input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;}
.bg-light{background-color:var(--bg-main)!important}
.bg-guns{background-color:var(--bg-guns)!important}
.bg-main{margin-top:0;padding-top:0;background-color:var(--bg-main)!important}
.container-top{margin-top:-35px;}
.bg-content{background-color:var(--bg-content)!important}
.bg-subpage{background-color:var(--bg-subpage)!important}
.bg-card{background-color:var(--bg-card)!important}
.transparent{background-color:Transparent;background-repeat:no-repeat;border:none;cursor:pointer;overflow:hidden;outline:none;}
.karta-amunicji {width:100%; border: 1px solid black}
table{border-collapse: collapse;}
/*table, th, td {border: 1px solid black;}*/
.width18{width:18%;}
.width28{width:28%;}
.cz{
	position:relative;
	width:100%;
	height:auto;
	min-height:35rem;
	padding:15rem 0;
	background:-webkit-gradient(linear,left top,left bottom,from(rgba(8,15,17,.3)),color-stop(75%,rgba(8,15,17,.7)),to(#080F11)),url(../img/cz.jpg);
	background:linear-gradient(to bottom,rgba(8,15,17,.3) 0,rgba(8,15,17,.7) 75%,#080F11 100%),url(../img/cz.jpg);
	background-position:center;
	background-repeat:no-repeat;
	background-attachment:scroll;
	background-size:cover
	}
.no-js .cz,
.no-webp .cz{
	position:relative;
	width:100%;
	height:auto;
	min-height:35rem;
	padding:15rem 0;
	background:-webkit-gradient(linear,left top,left bottom,from(rgba(8,15,17,.3)),color-stop(75%,rgba(8,15,17,.7)),to(#080F11)),url(../img/cz.jpg);
	background:linear-gradient(to bottom,rgba(8,15,17,.3) 0,rgba(8,15,17,.7) 75%,#080F11 100%),url(../img/cz.jpg);
	background-position:center;
	background-repeat:no-repeat;
	background-attachment:scroll;
	background-size:cover
	}

.adr{margin:0 auto;width:120px;height:auto}
.strzelam-top{width:300px;height:auto;font-weight:bold;color:rgba(255,255,255,.75)}

.public-page-hero{position:relative;padding:9rem 0 3.5rem;background:linear-gradient(180deg,rgba(8,15,17,.78),#080F11);border-bottom:1px solid rgba(60,98,137,.25)}
.public-page-hero .container{max-width:1100px}
.public-page-eyebrow{margin:0 0 .85rem;color:#3C6289;font-size:.8rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.public-page-hero h1{margin:0 0 1rem;color:#fff;font-size:clamp(2rem,5vw,3.3rem);font-weight:800}
.public-page-lead{max-width:780px;margin:0;color:rgba(255,255,255,.68);font-size:1.1rem;line-height:1.75}
.public-page-content{padding:3rem 0 4.5rem;background:#080F11}
.public-page-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:1.25rem;max-width:1100px;margin:0 auto}
.public-page-card{height:100%;padding:1.5rem;background:linear-gradient(145deg,rgba(60,98,137,.07),rgba(11,19,24,.96) 45%);border:1px solid rgba(60,98,137,.56);border-top:4px solid #3C6289;border-radius:.65rem;box-shadow:0 .8rem 1.8rem rgba(0,0,0,.2)}
.public-page-card h2{margin:0 0 .85rem;color:#fff;font-size:1.25rem;font-weight:800}
.public-page-card p{margin:0;color:rgba(255,255,255,.68);line-height:1.7}
.public-page-card p+p{margin-top:.75rem}
.public-page-topics{display:grid;gap:.7rem;margin-top:1.15rem}
.public-page-topic{padding:.85rem 1rem;border-left:3px solid rgba(60,98,137,.8);background:rgba(255,255,255,.035);color:rgba(255,255,255,.72);line-height:1.55}
.public-page-topic strong{display:block;margin-bottom:.2rem;color:#fff;font-size:.96rem}
.public-page-status{display:inline-block;margin-top:1rem;padding:.35rem .65rem;border:1px solid rgba(60,98,137,.45);border-radius:2rem;color:#A9B6C0;font-size:.76rem;font-weight:700;letter-spacing:.04em}
.public-page-empty{margin-top:1rem;padding:1rem 1.1rem;border:1px dashed rgba(60,98,137,.55);border-radius:.4rem;color:rgba(255,255,255,.64);line-height:1.6}
.public-page-action{display:inline-flex;align-items:center;gap:.55rem;margin-top:1rem;padding:.7rem 1rem;border:1px solid #3C6289;border-radius:.35rem;background:rgba(60,98,137,.14);color:#b6e4e1;font-weight:800;transition:background .2s ease,color .2s ease}.public-page-action:hover,.public-page-action:focus{background:#3C6289;color:#101616;text-decoration:none}.public-page-action span{font-size:1.2rem;line-height:1}
.public-page-event{display:block;border:1px solid rgba(60,98,137,.3);border-radius:.4rem;color:rgba(255,255,255,.72);text-decoration:none;transition:border-color .2s ease,background .2s ease}.public-page-event:hover,.public-page-event:focus{border-color:#3C6289;background:rgba(60,98,137,.09);color:#fff;text-decoration:none}.public-page-event strong{margin-bottom:.35rem;font-size:1.02rem}.public-page-event-meta,.public-page-event-status,.public-page-event-seats{display:block}.public-page-event-meta{color:rgba(255,255,255,.7)}.public-page-event-status{margin-top:.65rem;color:#a8d8d4;font-size:.88rem;font-weight:800}.public-page-event-seats{margin-top:.25rem;color:rgba(255,255,255,.48);font-size:.8rem}
@media(max-width:767.98px){.public-page-hero{padding:7.5rem 0 2.5rem}.public-page-content{padding:2rem 0 3rem}.public-page-card{padding:1.2rem}}
.gpa-mark-icon{display:block;width:96px;height:30px;object-fit:contain;margin-left:auto;margin-right:auto}
@media(max-width:1199.98px){.strzelam-top{width:150px;height:auto}}
.logo{width:50vw;height:auto}
@media(max-width:1199.98px){.logo{width:90%;height:auto}}
.logo-margin{margin-top:10px!important;}
@media(max-width:1199.98px){.logo-margin{margin:0!important;}}
input[type="text" class="instyle"],textarea{background-color:#666;}
input[type="tel"],textarea{background-color:#666;}
input[type="email"],textarea{background-color:#666;}
input[type="radio"]{background-color:red;}
input[type="checkbox"]{background-color:red;}
.instyle {
  display: inline-block;
  -webkit-box-sizing: content-box;
  -moz-box-sizing: content-box;
  box-sizing: content-box;
  padding: 10px 20px;
  border: 2px solid #494949;
  -webkit-border-radius: 3px;
  border-radius: 3px;
  font: normal 16px/normal "Lucida Console", Monaco, monospace;
  color: rgba(147,147,147,1);
  -o-text-overflow: clip;
  text-overflow: clip;
  background: rgba(23,23,23,1);
  -webkit-box-shadow: 2px 2px 2px 0 rgba(114,48,48,0.2) inset;
  box-shadow: 2px 2px 2px 0 rgba(114,48,48,0.2) inset;
  -webkit-transition: all 200ms cubic-bezier(0.42, 0, 0.58, 1);
  -moz-transition: all 200ms cubic-bezier(0.42, 0, 0.58, 1);
  -o-transition: all 200ms cubic-bezier(0.42, 0, 0.58, 1);
  transition: all 200ms cubic-bezier(0.42, 0, 0.58, 1);
}
.control{font-family:arial;display:block;position:relative;padding-left:30px;margin-bottom:5px;padding-top:3px;cursor:pointer;font-size:16px}.control input{position:absolute;z-index:-1;opacity:0}.control_indicator{position:absolute;top:2px;left:0;height:20px;width:20px;background:#0B1318;border:3px solid #939393}.control-radio .control_indicator{border-radius:undefined%}.control input:focus~.control_indicator,.control:hover input~.control_indicator{background:#fff}.control input:checked~.control_indicator{background:#0e2c00}.control input:checked:focus~.control_indicator,.control:hover input:not([disabled]):checked~.control_indicator{background:#0e6647d}.control input:disabled~.control_indicator{background:#e6e6e6;opacity:.6;pointer-events:none}.control_indicator:after{box-sizing:unset;content:'';position:absolute;display:none}.control input:checked~.control_indicator:after{display:block}.control-checkbox .control_indicator:after{left:5px;top:0;width:7px;height:8px;border:solid #fff;border-width:0 3px 3px 0;transform:rotate(45deg)}.control-checkbox input:disabled~.control_indicator:after{border-color:#7b7b7b}
.control{font-family:arial;display:block;position:relative;padding-left:30px;margin-bottom:5px;padding-top:3px;cursor:pointer;font-size:16px}.control input{position:absolute;z-index:-1;opacity:0}.control_indicator{position:absolute;top:3px;left:0;height:20px;width:20px;background:#0B1318;border:3px solid #939393}.control-radio .control_indicator{border-radius:50%}.control input:focus~.control_indicator,.control:hover input~.control_indicator{background:#0e2c00}.control input:checked~.control_indicator{background:#0e2c00}.control input:checked:focus~.control_indicator,.control:hover input:not([disabled]):checked~.control_indicator{background:#0e6647d}.control input:disabled~.control_indicator{background:#e6e6e6;opacity:.6;pointer-events:none}.control_indicator:after{box-sizing:unset;content:'';position:absolute;display:none}.control input:checked~.control_indicator:after{display:block}.control-radio .control_indicator:after{left:3px;top:3px;height:9px;width:9px;border-radius:50%;background:#fff}.control-radio input:disabled~.control_indicator:after{background:#7b7b7b}


.idpa-logo{display:block;width:128px;height:30px;object-fit:contain;margin-left:auto;margin-right:auto}

#o-nas .about-credentials .credential-mark{color:var(--ks-primary)!important}


.pzss-logo{display:block;width:48px;height:48px;max-width:100%;object-fit:contain;margin-left:auto;margin-right:auto}




.about-credentials .credential-card-link{position:relative;color:inherit;text-decoration:none}
.about-credentials .credential-card-link::after{content:"›";position:absolute;right:.85rem;bottom:.75rem;display:grid;width:1.45rem;height:1.45rem;place-items:center;padding:0 0 .12rem .08rem;border:1px solid rgba(60,98,137,.45);border-radius:50%;color:#3C6289;font-size:1.15rem;font-weight:800;line-height:1;transition:background-color .18s ease,color .18s ease,border-color .18s ease}
.about-credentials .credential-card-link:hover::after,.about-credentials .credential-card-link:focus-visible::after{border-color:#3C6289;background:rgba(60,98,137,.18);color:#F3F6F7}
.about-credentials .credential-card-link:focus-visible{outline:2px solid #3C6289;outline-offset:3px}







#o-nas .about-credentials .card-body>img,#o-nas .about-credentials .card-body>i{display:block;width:128px;height:42px;max-width:100%;object-fit:contain;margin-left:auto;margin-right:auto}
#o-nas .about-credentials .card-body>i{font-size:2rem;line-height:42px}

/* Profile edit form uses shared account fields in two columns. */
.profile-edit-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-content: start;
    gap: .85rem 1rem;
}
.profile-edit-fields .account-field { min-width: 0; margin: 0; }
.profile-edit-fields .account-field-full { grid-column: 1 / -1; }
.profile-edit-fields .form-label { min-height: 1.4em; }
.profile-edit-form .form-control[readonly] { color: var(--ks-muted); cursor: not-allowed; }
.profile-readonly-note,
.account-field-hint { display: block; margin: .85rem 0 0; color: var(--ks-muted); font-size: .82rem; }
.profile-edit-actions--right { justify-content: flex-end; }
.profile-edit-actions--right .profile-edit-button { margin-top: 0; }
@media (max-width: 767.98px) {
    .profile-edit-fields { grid-template-columns: minmax(0, 1fr); }
    .profile-edit-fields .account-field-full { grid-column: auto; }
}
/* Shared button geometry keeps every visual variant the same size. */
.btn,
.btn-highlighted,
.btn-primary {
    box-sizing: border-box;
    display: inline-flex;
    min-height: var(--ks-button-height);
    align-items: center;
    justify-content: center;
    padding: .65rem 1rem;
    line-height: 1.2;
}

.btn-hero {
    min-height: 54px;
    padding: .8rem 1.4rem;
}
