/* Publiczna lista kursów — miniatury z image_path */
.public-course-list{padding:48px 0 72px;background:#f5f8fa}.public-course-list__head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:28px}.public-course-list__eyebrow{display:inline-block;margin-bottom:8px;color:#9a3900;font-size:12px;font-weight:800;letter-spacing:.12em}.public-course-list__head h1{margin:0 0 8px;color:#082f4d;font-size:clamp(34px,4vw,48px);line-height:1.08}.public-course-list__head p{max-width:760px;margin:0;color:#52667a;font-size:16px;line-height:1.65}.public-course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;align-items:stretch}.public-course-card{display:flex;min-width:0;flex-direction:column;overflow:hidden;border:1px solid #d8e3ec;border-radius:22px;background:#fff;box-shadow:0 10px 30px rgba(8,47,77,.06);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.public-course-card:hover{transform:translateY(-2px);border-color:#bccddd;box-shadow:0 16px 36px rgba(8,47,77,.09)}.public-course-card__image-link{display:block;overflow:hidden;text-decoration:none;background:#edf3f7}.public-course-card__image{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;object-position:center;transition:transform .25s ease}.public-course-card__image-link:hover .public-course-card__image:not(.public-course-card__image--empty){transform:scale(1.025)}.public-course-card__image--empty{display:grid;place-items:center;min-height:190px;background:linear-gradient(135deg,#eef4f8 0%,#dfeaf2 100%);color:#6b8498;font-size:24px;font-weight:700}.public-course-card__body{display:flex;flex:1;flex-direction:column;padding:24px 28px 28px}.public-course-card__top{margin-bottom:18px}.public-course-card__badge{display:inline-flex;align-items:center;min-height:34px;padding:7px 13px;border:1px solid #8ab6dc;border-radius:999px;background:#eef6fc;color:#0b4f8a;font-size:12px;font-weight:800;letter-spacing:.045em}.public-course-card__title{margin:0 0 14px;color:#082f4d;font-size:clamp(23px,2vw,29px);line-height:1.22}.public-course-card__title a{color:inherit;text-decoration:none}.public-course-card__title a:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}.public-course-card__description{margin:0;color:#52667a;font-size:16px;line-height:1.62}.public-course-card__meta{display:grid;gap:9px;margin-top:auto;padding-top:28px;color:#39556b;font-size:15px}.public-course-card__meta>div{display:flex;align-items:flex-start;gap:8px}.public-course-card__meta-icon{flex:0 0 auto;color:#315d7d}.public-course-card__button{display:flex!important;width:100%;min-height:54px;align-items:center;justify-content:center;margin-top:24px;text-align:center}.public-course-pagination{display:flex;justify-content:center;margin-top:34px}.public-course-empty{padding:40px;border:1px dashed #b8c9d6;border-radius:18px;background:#fff;text-align:center;color:#52667a}.public-course-empty strong{display:block;margin-bottom:6px;color:#082f4d;font-size:20px}.public-course-empty p{margin:0}@media(max-width:1100px){.public-course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.public-course-list{padding:32px 0 48px}.public-course-list__head{margin-bottom:20px}.public-course-grid{grid-template-columns:1fr;gap:18px}.public-course-card{border-radius:18px}.public-course-card__body{padding:20px}.public-course-card__image--empty{min-height:170px}}@media(prefers-reduced-motion:reduce){.public-course-card,.public-course-card__image{transition:none}.public-course-card:hover,.public-course-card__image-link:hover .public-course-card__image{transform:none}}


/* Lokalizacje i filtrowanie kursów */
.course-location-filter{
    display:flex;
    align-items:flex-end;
    gap:12px;
    margin:0 0 28px;
    padding:18px;
    border:1px solid #ead7c9;
    border-radius:17px;
    background:#fffaf6;
}
.course-location-filter label{
    display:grid;
    gap:7px;
    min-width:min(360px,100%);
}
.course-location-filter label>span{
    color:#0b3556;
    font-size:13px;
    font-weight:800;
}
.course-location-filter select{
    width:100%;
    min-height:48px;
    padding:10px 42px 10px 13px;
    border:1px solid #9badbb;
    border-radius:11px;
    background:#fff;
    color:#17364e;
    font:inherit;
    font-size:15px;
}
.course-location-filter select:focus{
    outline:3px solid rgba(201,74,0,.14);
    outline-offset:2px;
    border-color:#c94a00;
}
.course-location-filter__clear{
    display:inline-flex;
    min-height:48px;
    align-items:center;
    padding:0 16px;
    border:1px solid #d7b99f;
    border-radius:11px;
    background:#fff;
    color:#9d3d00;
    font-weight:800;
    text-decoration:none;
}
.public-course-card__top{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    flex-wrap:wrap;
}
.public-course-card__location{
    display:inline-flex;
    align-items:center;
    gap:5px;
    color:#9d3d00;
    font-size:13px;
    font-weight:800;
}
@media(max-width:720px){
    .course-location-filter{
        align-items:stretch;
        flex-direction:column;
        margin-bottom:20px;
        padding:15px;
    }
    .course-location-filter label{
        min-width:0;
        width:100%;
    }
    .course-location-filter__clear{
        justify-content:center;
        width:100%;
    }
}


/* ==========================================================================
   V2 — panel miejscowości po lewej + kursy po prawej
   Filtrowanie odbywa się zwykłymi linkami GET, bez JavaScriptu.
   ========================================================================== */

.course-location-filter {
    display: none !important;
}

.course-catalog-layout {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 28px;
    align-items: start;
}

.course-location-panel {
    position: sticky;
    top: 104px;
    min-width: 0;
    padding: 20px;
    border: 1px solid #ead8ca;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(8, 47, 77, .055);
}

.course-location-panel__head {
    padding: 3px 4px 17px;
    border-bottom: 1px solid #e8eef2;
}

.course-location-panel__kicker,
.course-catalog-results__head span {
    color: #aa4100;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .11em;
}

.course-location-panel__head h2,
.course-catalog-results__head h2 {
    margin: 6px 0 5px;
    color: #082f4d;
    line-height: 1.15;
}

.course-location-panel__head h2 {
    font-size: 25px;
}

.course-location-panel__head p {
    margin: 0;
    color: #627789;
    font-size: 13px;
    line-height: 1.45;
}

.course-location-tiles {
    display: grid;
    gap: 8px;
    padding-top: 14px;
}

.course-location-tile {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    min-height: 58px;
    padding: 9px 10px;
    border: 1px solid transparent;
    border-radius: 13px;
    color: #17364e;
    text-decoration: none;
    transition:
        border-color .16s ease,
        background .16s ease,
        transform .16s ease;
}

.course-location-tile:hover {
    transform: translateX(2px);
    border-color: #efc7ab;
    background: #fff8f3;
}

.course-location-tile.active {
    border-color: #e49b67;
    background: #fff0e5;
    color: #9f3c00;
}

.course-location-tile__icon {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border-radius: 10px;
    background: #f1f6f9;
    color: #0b4b76;
}

.course-location-tile.active .course-location-tile__icon {
    background: #fff;
    color: #c94a00;
}

.course-location-tile__icon svg {
    width: 19px;
    height: 19px;
}

.course-location-tile__copy {
    min-width: 0;
}

.course-location-tile__copy strong {
    display: block;
    overflow: hidden;
    font-size: 13px;
    line-height: 1.2;
    text-overflow: ellipsis;
}

.course-location-tile__copy small {
    display: block;
    margin-top: 3px;
    color: #718392;
    font-size: 10.5px;
}

.course-location-tile__arrow {
    color: #c94a00;
    font-size: 16px;
    opacity: .78;
}

.course-catalog-results {
    min-width: 0;
}

.course-catalog-results__head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 17px;
    padding: 0 2px;
}

.course-catalog-results__head h2 {
    font-size: 27px;
}

.course-catalog-results__reset {
    display: inline-flex;
    min-height: 40px;
    align-items: center;
    padding: 0 13px;
    border: 1px solid #d6e0e7;
    border-radius: 10px;
    background: #fff;
    color: #0b3556;
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
}

.course-catalog-results .public-course-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.course-catalog-results .public-course-card__title {
    font-size: 24px;
}

@media (max-width: 1180px) {
    .course-catalog-layout {
        grid-template-columns: 220px minmax(0, 1fr);
        gap: 20px;
    }

    .course-location-panel {
        padding: 15px;
    }

    .course-catalog-results .public-course-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .course-catalog-layout {
        display: block;
    }

    .course-location-panel {
        position: static;
        margin-bottom: 24px;
    }

    .course-location-panel__head {
        padding-bottom: 13px;
    }

    .course-location-tiles {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .course-location-tile {
        min-width: 0;
    }

    .course-catalog-results .public-course-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 620px) {
    .course-location-tiles {
        grid-template-columns: 1fr;
    }

    .course-catalog-results__head {
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;
    }

    .course-catalog-results__reset {
        width: 100%;
        justify-content: center;
    }

    .course-catalog-results .public-course-grid {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    .course-location-tile {
        transition: none;
    }

    .course-location-tile:hover {
        transform: none;
    }
}


/* ==========================================================================\n   V3 — szerszy katalog kursów + czytelniejszy panel miejscowości\n   Zmiany dotyczą wyłącznie strony /kursy.\n   ========================================================================== */

.public-course-list .course-catalog-shell {
    box-sizing: border-box;
    width: min(1440px, calc(100% - 32px)) !important;
    max-width: 1440px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.public-course-list__head {
    max-width: 940px;
    margin-bottom: 30px;
}

.public-course-list__head h1 {
    margin-bottom: 7px;
}

.course-catalog-layout {
    grid-template-columns: 310px minmax(0, 1fr) !important;
    gap: 32px !important;
}

.course-location-panel {
    padding: 24px !important;
    border-radius: 22px !important;
    box-shadow: 0 14px 34px rgba(8, 47, 77, .065) !important;
}

.course-location-panel__head {
    padding: 2px 3px 20px !important;
}

.course-location-panel__kicker {
    font-size: 11px !important;
}

.course-location-panel__head h2 {
    margin: 7px 0 6px !important;
    font-size: 29px !important;
    letter-spacing: -.02em;
}

.course-location-panel__head p {
    max-width: 230px;
    font-size: 14px !important;
    line-height: 1.5 !important;
}

.course-location-tiles {
    gap: 10px !important;
    padding-top: 17px !important;
}

.course-location-tile {
    grid-template-columns: 42px minmax(0, 1fr) auto !important;
    gap: 12px !important;
    min-height: 68px !important;
    padding: 11px 12px !important;
    border-color: #e8eef2 !important;
    border-radius: 15px !important;
    background: #fff;
}

.course-location-tile:hover {
    transform: translateX(2px);
    border-color: #e8b791 !important;
    background: #fff8f3 !important;
}

.course-location-tile.active {
    border-color: #df8d51 !important;
    background: linear-gradient(135deg,#fff4eb 0%,#fff9f5 100%) !important;
    box-shadow: 0 7px 18px rgba(201, 74, 0, .08);
}

.course-location-tile__icon {
    width: 42px !important;
    height: 42px !important;
    border-radius: 12px !important;
    background: #eef5f9 !important;
}

.course-location-tile.active .course-location-tile__icon {
    background: #fff !important;
}

.course-location-tile__icon svg {
    width: 21px !important;
    height: 21px !important;
}

.course-location-tile__copy strong {
    overflow: visible !important;
    font-size: 14px !important;
    line-height: 1.25 !important;
    text-overflow: clip !important;
    white-space: normal !important;
}

.course-location-tile__copy small {
    margin-top: 4px !important;
    color: #687d8e !important;
    font-size: 11.5px !important;
    line-height: 1.2;
}

.course-location-tile.active .course-location-tile__copy strong {
    color: #9d3d00;
}

.course-location-tile__arrow {
    font-size: 18px !important;
}

.course-catalog-results {
    width: 100%;
    min-width: 0;
}

.course-catalog-results__head {
    margin-bottom: 20px !important;
}

.course-catalog-results__head h2 {
    margin-top: 6px !important;
    font-size: 31px !important;
    letter-spacing: -.02em;
}

.course-catalog-results .public-course-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 24px !important;
}

.course-catalog-results .public-course-card {
    min-width: 0;
}

.course-catalog-results .public-course-card__body {
    padding: 22px 24px 24px !important;
}

.course-catalog-results .public-course-card__title {
    font-size: 25px !important;
    line-height: 1.18 !important;
}

.course-catalog-results .public-course-card__description {
    font-size: 15px;
    line-height: 1.55;
}

@media (min-width: 1600px) {
    .public-course-list .course-catalog-shell {
        width: min(1500px, calc(100% - 48px)) !important;
        max-width: 1500px !important;
    }

    .course-catalog-layout {
        grid-template-columns: 320px minmax(0, 1fr) !important;
        gap: 36px !important;
    }
}

@media (max-width: 1240px) {
    .public-course-list .course-catalog-shell {
        width: calc(100% - 28px) !important;
        max-width: none !important;
    }

    .course-catalog-layout {
        grid-template-columns: 270px minmax(0, 1fr) !important;
        gap: 22px !important;
    }

    .course-location-panel {
        padding: 18px !important;
    }

    .course-catalog-results .public-course-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 20px !important;
    }
}

@media (max-width: 900px) {
    .course-catalog-layout {
        display: block !important;
    }

    .course-location-panel {
        position: static !important;
        margin-bottom: 26px;
    }

    .course-location-panel__head p {
        max-width: none;
    }

    .course-location-tiles {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .course-catalog-results .public-course-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 620px) {
    .public-course-list .course-catalog-shell {
        width: calc(100% - 24px) !important;
    }

    .course-location-panel {
        padding: 16px !important;
        border-radius: 18px !important;
    }

    .course-location-panel__head h2 {
        font-size: 26px !important;
    }

    .course-location-tiles {
        grid-template-columns: 1fr !important;
    }

    .course-location-tile {
        min-height: 64px !important;
    }

    .course-catalog-results .public-course-grid {
        grid-template-columns: 1fr !important;
    }

    .course-catalog-results__head h2 {
        font-size: 27px !important;
    }
}


/* ==========================================================================
   V4 — banner KFS + dynamiczny numer telefonu zależny od miejscowości
   ========================================================================== */

.course-kfs-banner {
    margin: 0 0 34px;
}

.course-kfs-banner__media {
    position: relative;
    overflow: hidden;
    width: 100%;
    aspect-ratio: 1478 / 530;
    border: 1px solid #d6e0e6;
    border-radius: 20px;
    background: #eef3f6;
    box-shadow: 0 13px 34px rgba(8, 47, 77, .08);
}

.course-kfs-banner__media > img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/*
 * W oryginalnej grafice numer Bydgoszczy jest częścią obrazu.
 * Ten element dokładnie przykrywa obszar starego numeru i wyświetla
 * numer wynikający z aktywnej miejscowości.
 */
.course-kfs-banner__phone {
    position: absolute;
    left: 12.65%;
    top: 68.6%;
    z-index: 2;
    display: flex;
    width: 14.7%;
    height: 8.2%;
    align-items: center;
    justify-content: flex-start;
    box-sizing: border-box;
    padding: 0 .3%;
    background: #055b3c;
    color: #fff !important;
    font-size: clamp(11px, 1.68vw, 27px);
    font-weight: 800;
    line-height: 1;
    letter-spacing: .01em;
    text-decoration: none !important;
    white-space: nowrap;
}

.course-kfs-banner__phone:hover,
.course-kfs-banner__phone:focus-visible {
    background: #064f36;
    color: #fff !important;
}

.course-kfs-banner__phone:focus-visible {
    outline: 3px solid #fff;
    outline-offset: 2px;
}

/* Baner jest pierwszym elementem strony, więc nagłówek ma mniejszy odstęp. */
.course-kfs-banner + .public-course-list__head {
    margin-top: 0;
}

/* Mobile: pełny banner pozostaje widoczny, numer nadal jest klikalny. */
@media (max-width: 720px) {
    .course-kfs-banner {
        margin-bottom: 24px;
    }

    .course-kfs-banner__media {
        border-radius: 14px;
    }

    .course-kfs-banner__phone {
        left: 12.3%;
        top: 68.3%;
        width: 16.1%;
        height: 9%;
        padding-left: .25%;
        font-size: clamp(7px, 2.05vw, 12px);
    }
}

@media (max-width: 430px) {
    .course-kfs-banner__media {
        border-radius: 11px;
    }

    .course-kfs-banner__phone {
        left: 12.1%;
        width: 17.5%;
        font-size: 7px;
    }
}
\n\n/* V15 — termin na kafelku */\n.public-course-card__schedule{margin:0 0 2px;padding:9px 10px;border:1px solid #efd2bd;border-radius:10px;background:#fff7f1;color:#9f3e00!important}.public-course-card__schedule strong{font-weight:800;color:#9f3e00}.public-course-card__schedule .public-course-card__meta-icon{color:#c94a00}\n