/* School page ("ჰუმანიტარულ..." / "ბიზნესის..." — ProgramController::school).
   Fully scoped .sch-* classes so nothing collides with the legacy cascade
   (same rebuild-from-scratch approach used for the nav drawer). Brand red
   #E32D44, text #5A5A67, cards on #F5F5F5. */

:root { --sch-brand: #E32D44; --sch-ink: #2c2c38; --sch-muted: #5A5A67; }

/* ---------- hero cover (reuses .page-cover header-clearance) ---------- */
.sch-cover {
    position: relative;
    height: clamp(280px, 40vh, 420px);
    background: #7a1224 center/cover no-repeat !important;
    overflow: hidden;
}
.sch-cover.has-img {
    background-image:
        linear-gradient(100deg, rgba(160, 20, 40, .92) 0%, rgba(227, 45, 68, .78) 48%, rgba(20, 18, 28, .45) 100%),
        var(--sch-cover-img) !important;
    background-size: cover !important;
    background-position: center !important;
}
.sch-cover .sch-cover__content {
    height: clamp(280px, 40vh, 420px);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    padding: 0 4px 46px;
    gap: 14px;
}
.sch-cover__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 16px;
    border-radius: 100px;
    background: rgba(255, 255, 255, .16);
    backdrop-filter: blur(2px);
    color: #fff;
    font-size: 13px;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.sch-cover__title {
    margin: 0;
    color: #fff;
    font-size: clamp(26px, 3.6vw, 46px);
    line-height: 1.18;
    max-width: 860px;
    text-shadow: 0 2px 22px rgba(0, 0, 0, .28);
}

/* ---------- generic section + heading ---------- */
.sch-section { padding: 52px 0; }
.sch-section--alt { background: #fff; }
.sch-body { padding: 40px 0 4px; }
.sch-intro {
    color: var(--sch-muted);
    font-size: 17px;
    line-height: 1.7;
    max-width: 900px;
}
.sch-intro :is(p, li) { color: var(--sch-muted); }
.sch-intro img { max-width: 100%; height: auto; border-radius: 12px; }

.sch-head { display: flex; align-items: center; gap: 14px; margin-bottom: 30px; }
.sch-head__bar { width: 46px; height: 5px; border-radius: 100px; background: var(--sch-brand); flex: none; }
.sch-head__title { margin: 0; color: var(--sch-ink); font-size: clamp(21px, 2.4vw, 30px); }
.sch-head__count {
    margin-left: 2px;
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 28px; height: 28px; padding: 0 10px;
    border-radius: 100px;
    background: rgba(227, 45, 68, .1);
    color: var(--sch-brand);
    font-size: 14px;
}

/* ---------- staff grid ---------- */
.sch-staff-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 18px;
}
.sch-staff-grid .sch-person {
    display: flex !important;
    flex-direction: column;
    background: #fff;
    border: 1px solid #ececf0;
    border-radius: 16px;
    padding: 22px 20px 20px;
    text-align: center;
    align-items: center;
    cursor: pointer;
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.sch-staff-grid .sch-person:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 34px rgba(30, 20, 40, .12);
    border-color: transparent;
}
.sch-person__photo {
    width: 108px; height: 108px;
    border-radius: 50%;
    overflow: hidden;
    margin-bottom: 16px;
    flex: none;
    background: #f1f1f4;
    box-shadow: 0 0 0 4px #fff, 0 0 0 6px rgba(227, 45, 68, .16);
}
.sch-person__photo img { width: 100%; height: 100%; object-fit: cover; }
.sch-person__name { margin: 0 0 6px; color: var(--sch-ink); font-size: 16.5px; line-height: 1.35; }
.sch-person__role {
    margin: 0; color: var(--sch-muted); font-size: 13.5px; line-height: 1.5;
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.sch-person__link {
    margin-top: 14px; color: var(--sch-brand); font-size: 13px;
    opacity: 0; transform: translateY(4px); transition: opacity .2s ease, transform .2s ease;
}
.sch-staff-grid .sch-person:hover .sch-person__link { opacity: 1; transform: none; }

/* ---------- programs, grouped by degree level ---------- */
.sch-level + .sch-level { margin-top: 40px; }
.sch-level__title {
    display: flex; align-items: center; gap: 10px;
    margin: 0 0 20px; color: var(--sch-muted); font-size: 19px;
}
.sch-level__title::before {
    content: ""; width: 9px; height: 9px; border-radius: 50%;
    background: var(--sch-brand); flex: none;
}
.sch-prog-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 20px;
}
.sch-prog {
    display: flex; flex-direction: column;
    background: #fff;
    border: 1px solid #ececf0;
    border-radius: 16px;
    overflow: hidden;
    text-decoration: none;
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.sch-prog:hover {
    transform: translateY(-5px);
    box-shadow: 0 18px 38px rgba(30, 20, 40, .13);
    border-color: transparent;
    text-decoration: none;
}
.sch-prog__img {
    height: 156px;
    background: #eceaf1 center/cover no-repeat;
}
.sch-prog__img--blank {
    background:
        radial-gradient(120% 120% at 100% 0%, rgba(227, 45, 68, .16), transparent 60%),
        linear-gradient(135deg, #f4f4f7, #e9e9f0);
    position: relative;
}
.sch-prog__img--blank::after {
    content: ""; position: absolute; inset: 0;
    background: center/40px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 24 24' fill='none' stroke='%23E32D44' stroke-width='1.4' stroke-opacity='.55'%3E%3Cpath d='M22 10v6M2 10l10-5 10 5-10 5z'/%3E%3Cpath d='M6 12v5c3 3 9 3 12 0v-5'/%3E%3C/svg%3E");
    opacity: .8;
}
.sch-prog__body { padding: 18px 20px 20px; display: flex; flex-direction: column; flex: 1; }
.sch-prog__name { margin: 0; color: var(--sch-ink); font-size: 17px; line-height: 1.4; }
.sch-prog__meta {
    margin: 8px 0 0; color: var(--sch-muted); font-size: 13.5px;
    display: inline-flex; align-items: center; gap: 6px;
}
.sch-prog__cta {
    margin-top: 16px; padding-top: 14px; border-top: 1px solid #f0f0f4;
    display: inline-flex; align-items: center; gap: 8px;
    color: var(--sch-brand); font-size: 14px;
}
.sch-prog__cta svg { transition: transform .2s ease; }
.sch-prog:hover .sch-prog__cta svg { transform: translateX(4px); }

/* ---------- documents ---------- */
.sch-files {
    list-style: none; margin: 0; padding: 0;
    display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px;
}
.sch-files a {
    display: flex; align-items: center; gap: 14px;
    padding: 16px 20px; background: #fff;
    border: 1px solid #ececf0; border-radius: 14px;
    color: var(--sch-muted); text-decoration: none;
    transition: border-color .2s ease, background .2s ease, transform .2s ease;
}
.sch-files a:hover {
    border-color: var(--sch-brand); background: rgba(227, 45, 68, .04);
    transform: translateY(-2px); text-decoration: none;
}
.sch-files__icon { flex: none; color: var(--sch-brand); display: inline-flex; }
.sch-files__name { font-size: 15px; line-height: 1.4; }

/* ---------- news ---------- */
.sch-news-grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 22px;
}
.sch-news {
    display: block; background: #fff;
    border: 1px solid #ececf0; border-radius: 16px; overflow: hidden;
    text-decoration: none;
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.sch-news:hover {
    transform: translateY(-4px); box-shadow: 0 16px 34px rgba(30, 20, 40, .12);
    border-color: transparent; text-decoration: none;
}
.sch-news__img { height: 180px; background: #eceaf1 center/cover no-repeat; }
.sch-news__body { padding: 18px 20px 22px; }
.sch-news__date { color: var(--sch-brand); font-size: 12.5px; letter-spacing: .03em; text-transform: uppercase; }
.sch-news__title {
    margin: 8px 0 0; color: var(--sch-ink); font-size: 16.5px; line-height: 1.45;
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}

@media (max-width: 575px) {
    .sch-cover .sch-cover__content { padding-bottom: 32px; }
    .sch-section { padding: 40px 0; }
    .sch-files, .sch-staff-grid, .sch-prog-grid, .sch-news-grid { grid-template-columns: 1fr; }
}
