/* ── helpers ── */
.ek-sec-hdr { text-align:center; max-width:600px; margin:0 auto 2.5rem; }
.ek-sec-hdr .section-title { margin:.4rem 0 .75rem; }
.ek-sec-hdr p { color:#6b7a9a; font-size:.95rem; margin:0; }

/* ── SLIDER ── */
.ek-slider-outer {
    position:relative;
    display:flex;
    align-items:center;
    gap:.75rem;
}
.ek-slider-track {
    display:flex;
    gap:1.5rem;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
    -ms-overflow-style:none;
    scroll-behavior:smooth;
    flex:1;
    padding-bottom:.5rem;
}
.ek-slider-track::-webkit-scrollbar { display:none; }

.ek-slider-btn {
    flex-shrink:0;
    width:2.75rem; height:2.75rem;
    border-radius:50%;
    border:2px solid #d0d7e8;
    background:#fff;
    color:var(--navy);
    display:flex; align-items:center; justify-content:center;
    cursor:pointer;
    transition:background .2s,border-color .2s,color .2s;
    box-shadow:0 2px 8px rgba(26,39,68,.08);
}
.ek-slider-btn:hover { background:var(--navy); border-color:var(--navy); color:#fff; }
.ek-slider-btn:disabled { opacity:.3; cursor:default; pointer-events:none; }

/* ── TILE ── */
.ek-tile {
    flex:0 0 calc(35% - .75rem);
    scroll-snap-align:start;
    background:#fff;
    border-radius:var(--radius);
    box-shadow:var(--shadow);
    overflow:hidden;
    display:flex;
    flex-direction:column;
    min-width:0;
}
@media(max-width:600px){ .ek-tile { flex:0 0 88%; } }

.ek-tile-top {
    background:var(--navy);
    padding:2.5rem 1.5rem 2rem;
    color:#fff;
}
.ek-tile-badge {
    display:inline-block;
    background:rgba(255,255,255,.18);
    font-size:.68rem;
    font-weight:700;
    letter-spacing:.07em;
    text-transform:uppercase;
    padding:.2rem .65rem;
    border-radius:20px;
    margin-bottom:.9rem;
}
.ek-tile-badge.open { background:rgba(76,175,80,.35); }
.ek-tile-icon { font-size:2.75rem; display:block; margin-bottom:.8rem; }
.ek-tile-name {
    font-family:'Syne',sans-serif;
    font-size:1.05rem;
    font-weight:700;
    line-height:1.3;
    margin:0;
}
.ek-tile-body {
    padding:1.75rem 1.5rem;
    flex:1;
    display:flex;
    flex-direction:column;
    gap:.9rem;
}
.ek-tile-meta { display:flex; gap:.75rem; flex-wrap:wrap; }
.ek-tile-meta span { font-size:.82rem; color:#6b7a9a; }
.ek-tile-price {
    font-family:'Syne',sans-serif;
    font-size:1.45rem;
    font-weight:700;
    color:var(--navy);
    margin-top:auto;
}
.ek-tile-price small {
    font-family:'DM Sans',sans-serif;
    font-size:.78rem;
    font-weight:400;
    color:#6b7a9a;
    display:block;
    margin-top:.1rem;
}
.ek-tile-body .btn { margin-top:auto; text-align:center; }

.ek-tile-desc {
    font-size:.85rem;
    color:#6b7a9a;
    line-height:1.55;
    margin:0;
}
.ek-tile-topics {
    border-top:1px solid #e8eaf0;
    padding-top:.75rem;
    margin-top:.1rem;
}
.ek-tile-topics-label {
    font-size:.78rem;
    font-weight:700;
    color:var(--navy);
    text-transform:uppercase;
    letter-spacing:.05em;
    display:block;
    margin-bottom:.45rem;
}
.ek-tile-topics ul {
    margin:0;
    padding:0 0 0 1rem;
    list-style:disc;
}
.ek-tile-topics ul li {
    font-size:.82rem;
    color:#6b7a9a;
    margin-bottom:.25rem;
    line-height:1.4;
}

/* instructor row inside tile */
.ek-tile-instructor {
    display:flex; align-items:center; justify-content:space-between; gap:.5rem;
    padding-top:.75rem; border-top:1px solid #e8eaf0;
}
.ek-tile-instructor-name { font-size:.84rem; font-weight:600; color:var(--navy); }
.ek-tile-kadra-link {
    font-size:.8rem; font-weight:700; color:var(--accent);
    text-decoration:none; white-space:nowrap;
}
.ek-tile-kadra-link:hover { text-decoration:underline; }

/* dots */
.ek-slider-dots { display:flex; justify-content:center; gap:.5rem; margin-top:1.25rem; }
.ek-slider-dot {
    width:.55rem; height:.55rem;
    border-radius:50%;
    background:#b0bacf;
    opacity:.5;
    border:none; padding:0;
    cursor:pointer;
    transition:opacity .2s,background .2s;
}
.ek-slider-dot.active { opacity:1; background:var(--navy); }

/* ── STUDENT TILE ── */
.ek-student-wrap {
    display:flex;
    justify-content:center;
    padding:0;
}
.ek-student-tile {
    background:#fff;
    border-radius:var(--radius);
    box-shadow:var(--shadow);
    overflow:hidden;
    display:flex;
    flex-direction:column;
    width:100%;
    max-width:420px;
}
.ek-student-tile .ek-tile-top {
    background:var(--navy);
    padding:2rem 1.5rem 1.5rem;
}
.ek-student-tile .ek-tile-name { font-size:1.1rem; }
.ek-student-free {
    font-family:'Syne',sans-serif;
    font-size:1.6rem;
    font-weight:800;
    color:#4caf50;
    margin-top:auto;
}
.ek-student-free small {
    font-family:'DM Sans',sans-serif;
    font-size:.8rem;
    font-weight:400;
    color:#6b7a9a;
    display:block;
    margin-top:.15rem;
}

/* ── REVIEWS ── */
.ek-reviews-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1.5rem;
}
@media(max-width:860px){ .ek-reviews-grid { grid-template-columns:repeat(2,1fr); } }
@media(max-width:540px){ .ek-reviews-grid { grid-template-columns:1fr; } }

.ek-review-card {
    background:#fff;
    border-radius:var(--radius);
    padding:1.5rem;
    box-shadow:var(--shadow);
    display:flex;
    flex-direction:column;
    gap:.75rem;
}
.ek-review-stars { color:#f9a825; font-size:1rem; letter-spacing:.1em; }
.ek-review-text {
    font-size:.9rem; color:#6b7a9a;
    font-style:normal;
    border:1.5px dashed #c4cde0;
    border-radius:.5rem;
    padding:1rem;
    text-align:center;
    flex:1;
}
.ek-review-author {
    font-size:.82rem; color:#6b7a9a; font-weight:600;
    display:flex; align-items:center; gap:.5rem;
}
.ek-review-author::before {
    content:'';
    display:inline-block;
    width:1.75rem; height:1.75rem;
    border-radius:50%;
    background:#e8ebf4;
    flex-shrink:0;
}

/* ── ENROLLMENT STEPS ── */
.ek-enroll-grid {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:1rem;
    margin-top:2.5rem;
}
@media(max-width:900px){ .ek-enroll-grid { grid-template-columns:repeat(2,1fr); } }
@media(max-width:500px){ .ek-enroll-grid { grid-template-columns:1fr; } }

.ek-enroll-step {
    background:#fff;
    border-radius:var(--radius);
    padding:1.25rem .9rem 1.1rem;
    box-shadow:var(--shadow);
    text-align:center;
}
.ek-enroll-num {
    width:2.5rem; height:2.5rem;
    background:var(--accent);
    color:#fff;
    font-family:'Syne',sans-serif;
    font-weight:800; font-size:1.05rem;
    border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    margin:0 auto 1rem;
}
.ek-enroll-step h3 { font-size:.95rem; font-weight:700; margin:0 0 .5rem; color:var(--navy); }
.ek-enroll-step p { font-size:.85rem; color:#6b7a9a; margin:0; line-height:1.5; }

.ek-enroll-note {
    margin-top:2rem;
    background:linear-gradient(135deg,#e8f5e9 0%,#f1f8f1 100%);
    border:1.5px solid #a5d6a7;
    border-radius:var(--radius);
    padding:1.25rem 1.5rem;
    display:flex; align-items:flex-start; gap:.9rem;
}
.ek-enroll-note-icon { font-size:1.5rem; flex-shrink:0; }
.ek-enroll-note p { margin:0; font-size:.9rem; color:#2e7d32; line-height:1.55; }
.ek-enroll-note strong { color:#1b5e20; }

/* ── FAQ ── */
.ek-faq-list { margin-top:0; display:flex; flex-direction:column; gap:.75rem; }
.ek-faq-item {
    background:#fff;
    border-radius:var(--radius);
    box-shadow:var(--shadow);
    overflow:hidden;
}
.ek-faq-btn {
    width:100%; display:flex; align-items:center; justify-content:space-between;
    gap:1rem; padding:1.1rem 1.25rem;
    border:none; background:transparent; cursor:pointer; text-align:left;
    font-family:'Syne',sans-serif; font-size:.98rem; font-weight:700;
    color:var(--navy);
}
.ek-faq-chevron { color:var(--accent); flex-shrink:0; transition:transform .25s; }
.ek-faq-btn.open .ek-faq-chevron { transform:rotate(180deg); }
.ek-faq-answer {
    display:none; padding:0 1.25rem 1.1rem;
    font-size:.9rem; color:#6b7a9a; line-height:1.65;
}
.ek-faq-answer.open { display:block; }

/* ── ALL COURSES SEARCH ── */
.ek-search-row {
    display:flex;
    gap:1rem;
    align-items:center;
    flex-wrap:wrap;
    margin-bottom:2rem;
}
.ek-search-input {
    flex:1; min-width:220px;
    padding:.7rem 1rem .7rem 2.75rem;
    border:2px solid #d0d7e8;
    border-radius:8px;
    font-family:'DM Sans',sans-serif;
    font-size:.95rem;
    color:var(--navy);
    background:#fff url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='6.5' cy='6.5' r='4.5' stroke='%236b7a9a' stroke-width='1.6'/%3E%3Cpath d='M10 10l3 3' stroke='%236b7a9a' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") .85rem center no-repeat;
    outline:none;
    transition:border-color .2s;
}
.ek-search-input:focus { border-color:var(--navy); }
.ek-filter-btns { display:flex; gap:.5rem; flex-wrap:wrap; }
.ek-filter-btn {
    padding:.5rem 1.1rem;
    border:2px solid #d0d7e8;
    border-radius:20px;
    background:#fff;
    color:#6b7a9a;
    font-family:'DM Sans',sans-serif;
    font-size:.85rem; font-weight:600;
    cursor:pointer;
    transition:all .2s;
    white-space:nowrap;
}
.ek-filter-btn.active,
.ek-filter-btn:hover { background:var(--navy); border-color:var(--navy); color:#fff; }

.ek-cat-row {
    display:flex;
    align-items:center;
    gap:.75rem;
    flex-wrap:wrap;
    margin-bottom:1.5rem;
}
.ek-cat-label {
    font-size:.8rem;
    font-weight:700;
    color:#6b7a9a;
    text-transform:uppercase;
    letter-spacing:.05em;
    white-space:nowrap;
}
.ek-cat-btns { display:flex; gap:.4rem; flex-wrap:wrap; }
.ek-cat-btn {
    padding:.4rem .9rem;
    border:1.5px solid #d0d7e8;
    border-radius:20px;
    background:#fff;
    color:#6b7a9a;
    font-family:'DM Sans',sans-serif;
    font-size:.8rem; font-weight:600;
    cursor:pointer;
    transition:all .2s;
    white-space:nowrap;
}
.ek-cat-btn.active,
.ek-cat-btn:hover { background:var(--accent); border-color:var(--accent); color:#fff; }

.ek-courses-empty {
    text-align:center;
    padding:3rem 1.5rem;
    border:2px dashed #b0bacf;
    border-radius:var(--radius);
    color:#6b7a9a;
}
.ek-courses-empty .ek-empty-icon { font-size:2.5rem; margin-bottom:1rem; display:block; }
.ek-courses-empty p { margin:0; font-size:.92rem; line-height:1.6; }

/* course list items */
.ek-course-item {
    background:#fff;
    border-radius:var(--radius);
    box-shadow:var(--shadow);
    margin-bottom:1rem;
    overflow:hidden;
}
.ek-course-item-btn {
    width:100%;
    display:flex;
    align-items:center;
    gap:1rem;
    padding:1.1rem 1.25rem;
    border:none;
    background:transparent;
    cursor:pointer;
    text-align:left;
}
.ek-course-item-icon { font-size:1.4rem; flex-shrink:0; }
.ek-course-item-info { flex:1; }
.ek-course-item-name { font-family:'Syne',sans-serif; font-size:.98rem; font-weight:700; color:var(--navy); display:block; }
.ek-course-item-meta { font-size:.82rem; color:#6b7a9a; margin-top:.2rem; display:flex; gap:.75rem; flex-wrap:wrap; }
.ek-course-item-right { display:flex; align-items:center; gap:1rem; flex-shrink:0; }
.ek-course-status {
    font-size:.75rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase;
    padding:.25rem .7rem; border-radius:20px;
}
.ek-course-status.open { background:#e8f5e9; color:#2e7d32; }
.ek-course-status.closed { background:#fce4ec; color:#c62828; }
.ek-course-price { font-family:'Syne',sans-serif; font-size:1rem; font-weight:700; color:var(--navy); }
.ek-course-chevron { color:#6b7a9a; transition:transform .25s; flex-shrink:0; }
.ek-course-item-btn.open .ek-course-chevron { transform:rotate(180deg); }
.ek-course-details {
    display:none;
    padding:0 1.25rem 1.25rem 3.6rem;
    font-size:.88rem; color:#6b7a9a; line-height:1.6;
}
.ek-course-details.open { display:block; }
.ek-course-details strong { color:var(--navy); }
.ek-course-details ul { margin:.5rem 0 1rem 1rem; padding:0; }
.ek-course-details ul li { margin-bottom:.3rem; }

.ek-footnote { font-size:.82rem; color:#6b7a9a; margin-top:2rem; text-align:center; }

/* ── KADRA ── */
.ek-kadra-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1.25rem;
}
@media(max-width:860px){ .ek-kadra-grid { grid-template-columns:repeat(2,1fr); } }
@media(max-width:540px){ .ek-kadra-grid { grid-template-columns:1fr; } }

.ek-kadra-card {
    background:#fff;
    border-radius:var(--radius);
    box-shadow:var(--shadow);
    overflow:hidden;
}
.ek-kadra-btn {
    width:100%; display:flex; align-items:center; gap:1rem;
    padding:1.1rem 1.25rem;
    border:none; background:transparent; cursor:pointer; text-align:left;
}
.ek-kadra-avatar {
    flex-shrink:0;
    width:3rem; height:3rem; border-radius:50%;
    background:linear-gradient(135deg,var(--navy) 0%,#2d4a8a 100%);
    color:#fff;
    font-family:'Syne',sans-serif;
    font-size:1.1rem; font-weight:700;
    display:flex; align-items:center; justify-content:center;
}
.ek-kadra-info { flex:1; text-align:left; }
.ek-kadra-name {
    font-family:'Syne',sans-serif;
    font-size:.95rem; font-weight:700;
    color:var(--navy); display:block;
}
.ek-kadra-role {
    font-size:.8rem; color:var(--accent);
    font-weight:600; margin-top:.15rem; display:block;
}
.ek-kadra-chevron { color:#b0bacf; flex-shrink:0; transition:transform .25s; }
.ek-kadra-btn.open .ek-kadra-chevron { transform:rotate(180deg); }
.ek-kadra-desc {
    display:none;
    padding:0 1.25rem 1.1rem 1.25rem;
    font-size:.87rem; color:#6b7a9a; line-height:1.65;
    border-top:1px solid #e8eaf0;
    padding-top:.9rem;
}
.ek-kadra-desc.open { display:block; }

/* ── MODAL ── */
.ek-modal-overlay {
    position:fixed; inset:0;
    background:rgba(26,39,68,.6);
    backdrop-filter:blur(4px);
    z-index:1000;
    display:flex; align-items:center; justify-content:center;
    padding:1rem;
    opacity:0; pointer-events:none;
    transition:opacity .25s;
}
.ek-modal-overlay.open { opacity:1; pointer-events:auto; }
.ek-modal {
    background:#fff;
    border-radius:var(--radius);
    max-width:520px; width:100%;
    max-height:88vh; overflow-y:auto;
    box-shadow:0 20px 60px rgba(26,39,68,.28);
    transform:translateY(18px) scale(.97);
    transition:transform .25s;
}
.ek-modal-overlay.open .ek-modal { transform:translateY(0) scale(1); }
.ek-modal-head {
    background:var(--navy);
    padding:1.75rem 1.5rem 1.5rem;
    color:#fff;
    position:relative;
}
.ek-modal-close {
    position:absolute; top:.9rem; right:.9rem;
    width:2rem; height:2rem;
    background:rgba(255,255,255,.15);
    border:none; border-radius:50%;
    color:#fff; cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    transition:background .2s;
}
.ek-modal-close:hover { background:rgba(255,255,255,.3); }
.ek-modal-micon { font-size:2.2rem; display:block; margin-bottom:.6rem; }
.ek-modal-title {
    font-family:'Syne',sans-serif;
    font-size:1.2rem; font-weight:700;
    margin:.5rem 0 0; line-height:1.3;
}
.ek-modal-body { padding:1.5rem; display:flex; flex-direction:column; gap:1.1rem; }
.ek-modal-meta { display:flex; gap:1rem; flex-wrap:wrap; }
.ek-modal-meta span { font-size:.85rem; color:#6b7a9a; }
.ek-modal-section h4 { font-size:.9rem; font-weight:700; color:var(--navy); margin:0 0 .45rem; }
.ek-modal-section p { font-size:.88rem; color:#6b7a9a; margin:0; line-height:1.6; }
.ek-modal-section ul { margin:.4rem 0 0 1.1rem; padding:0; }
.ek-modal-section ul li { font-size:.88rem; color:#6b7a9a; margin-bottom:.3rem; }
.ek-modal-foot {
    padding:0 1.5rem 1.5rem;
    display:flex; gap:.75rem; flex-wrap:wrap;
}

/* ── B2B / SZKOLENIA DLA FIRM ── */
.ek-b2b-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1.5rem;
}
.ek-b2b-card {
    background:rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.14);
    border-radius:var(--radius);
    padding:1.75rem 1.5rem;
    text-align:center;
    transition:background .2s;
}
.ek-b2b-card:hover { background:rgba(255,255,255,.13); }
.ek-b2b-icon { font-size:2.2rem; margin-bottom:.75rem; }
.ek-b2b-card h4 {
    font-family:'Syne',sans-serif;
    font-size:1.05rem;
    font-weight:700;
    color:#fff;
    margin:0 0 .5rem;
}
.ek-b2b-card p {
    font-size:.9rem;
    color:rgba(255,255,255,.68);
    line-height:1.65;
    margin:0;
}
@media (max-width:640px) {
    .ek-b2b-grid { grid-template-columns:1fr; }
}

/* ── HERO SECTION ── */
.ek-header { position:relative; z-index:1; }
.ek-intro { color:#fff !important; text-shadow:0 1px 6px rgba(0,0,0,.6); font-weight:600; }
