/* =====================================================================
   entraEd — Full public-page visual system (homepage LOCKED)
   Parity with study areas hub: ice heroes, soft cards, gold/navy CTAs,
   quiet filters, navy guidance bands. Applies to every inner page.
   Excludes: .sl-hero-oua, .sl-helps-oua, .sl-advice, .sl-quizcta, .sl-hx-*
   ===================================================================== */

/* ---- Page canvas ---- */
.sl-site main:not(:has(.sl-hero-oua)) {
    background: var(--sl-white);
}

/* ---- Discovery / editorial / task headers → study-tier ice ---- */
.sl-site .sl-ph {
    border-bottom: 1px solid rgba(30, 47, 102, 0.08);
}

.sl-site .sl-ph--discovery {
    padding: 0;
    background:
        radial-gradient(720px 380px at 100% 0%, rgba(118, 146, 214, 0.2), transparent 65%),
        linear-gradient(180deg, #EEF3FB 0%, #F8FAFD 100%);
}

.sl-site .sl-ph--editorial {
    background:
        radial-gradient(640px 300px at 0% 0%, rgba(244, 197, 66, 0.1), transparent 55%),
        linear-gradient(180deg, #F3F7FC 0%, #fff 72%);
}

.sl-site .sl-ph--task {
    background: linear-gradient(180deg, #F3F7FC 0%, #fff 78%);
}

.sl-site .sl-ph-inner {
    padding-top: clamp(1.75rem, 1.2rem + 1.6vw, 3rem);
    padding-bottom: clamp(1.75rem, 1.2rem + 1.8vw, 3rem);
}

.sl-site .sl-ph--task .sl-ph-inner {
    padding-top: clamp(1.35rem, 1rem + 1vw, 2rem);
    padding-bottom: clamp(1.35rem, 1rem + 1.2vw, 2.25rem);
}

.sl-site .sl-ph-eyebrow {
    margin: 0 0 0.85rem;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--sl-royal);
}

.sl-site .sl-ph-title {
    margin: 0;
    max-width: 18em;
    font-family: var(--sl-font-heading);
    font-size: clamp(2rem, 1.5rem + 1.5vw, 2.875rem) !important;
    font-weight: 800;
    line-height: 1.12;
    letter-spacing: -0.03em;
    color: var(--sl-navy) !important;
    text-wrap: balance;
}

.sl-site .sl-ph--task .sl-ph-title {
    font-size: clamp(1.75rem, 1.4rem + 1vw, 2.35rem) !important;
}

.sl-site .sl-ph-lead {
    margin: 1rem 0 0;
    max-width: 40em;
    font-size: clamp(1rem, 0.95rem + 0.3vw, 1.0625rem);
    line-height: 1.65;
    color: #52607A;
}

.sl-site .sl-ph-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1.5rem;
    padding-top: 0;
}

.sl-site .sl-ph-actions .sl-btn-gold {
    box-shadow: 0 8px 20px rgba(244, 197, 66, 0.26);
}

.sl-site .sl-ph-search {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    width: min(32rem, 100%);
    margin-top: 1.35rem;
    padding: 0.5rem 0.5rem 0.5rem 1rem;
    border: 1px solid #D5DEEC;
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(17, 28, 68, 0.06);
}

.sl-site .sl-ph-search input {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 2.5rem;
    border: 0;
    background: transparent;
    font-size: 0.975rem;
    color: var(--sl-navy);
}

.sl-site .sl-ph-search:focus-within {
    border-color: var(--sl-navy);
    box-shadow: var(--sl-ring), 0 10px 28px rgba(17, 28, 68, 0.08);
}

.sl-site .sl-ph-search .sl-btn {
    border-radius: 999px;
    min-height: 2.625rem;
}

.sl-site .sl-ph-strip,
.sl-site .sl-ph-figure {
    border-radius: 1.5rem;
    border: 1px solid rgba(30, 47, 102, 0.1);
    box-shadow: 0 20px 44px rgba(17, 28, 68, 0.12);
    overflow: hidden;
}

.sl-site .sl-ph-crumbs,
.sl-site .sl-breadcrumb {
    margin: 0 0 1rem;
    font-size: 0.8125rem;
    color: #64748B;
}

.sl-site .sl-ph-crumbs a,
.sl-site .sl-breadcrumb a {
    color: var(--sl-royal) !important;
    text-decoration: none;
    font-weight: 500;
}

.sl-site .sl-ph-crumbs a:hover,
.sl-site .sl-breadcrumb a:hover {
    color: var(--sl-navy) !important;
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.sl-site .sl-ph-tabs {
    border-bottom-color: rgba(30, 47, 102, 0.1);
}

.sl-site .sl-ph-tabs a:hover,
.sl-site .sl-ph-tabs a[aria-current="page"] {
    border-bottom-color: var(--sl-gold);
    color: var(--sl-navy) !important;
}

/* Soften legacy page-header blobs */
.sl-site .sl-page-header:not(.has-media)::before,
.sl-site .sl-page-header:not(.has-media)::after {
    opacity: 0.28;
    filter: blur(4px);
}

/* ---- Directory shell ---- */
.sl-site .sl-directory,
.sl-site .sl-section-flush.sl-directory {
    padding-top: clamp(1.5rem, 1rem + 1.4vw, 2.5rem);
    padding-bottom: clamp(2.5rem, 1.6rem + 2vw, 4rem);
}

.sl-site .sl-filters {
    border: 1px solid #E2E8F2;
    border-radius: 1.15rem;
    background: #fff;
    box-shadow: 0 10px 28px rgba(17, 28, 68, 0.05);
    padding: 1.35rem 1.25rem;
}

.sl-site .sl-filters .sl-field-label,
.sl-site .sl-filters legend {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #5B6880;
}

.sl-site .sl-filters .sl-input,
.sl-site .sl-filters .sl-select-trigger,
.sl-site .sl-directory .sl-select-trigger {
    border: 1px solid #D5DEEC;
    border-radius: 0.75rem;
    background: #F7F9FC;
    min-height: 2.75rem;
}

.sl-site .sl-filters .sl-input:focus,
.sl-site .sl-filters .sl-select.is-open .sl-select-trigger,
.sl-site .sl-filters .sl-select-trigger:focus-visible {
    background: #fff;
    border-color: var(--sl-navy);
    box-shadow: var(--sl-ring);
}

.sl-site .sl-filters-actions .sl-btn-navy,
.sl-site .sl-filters-actions .sl-btn-gold {
    border-radius: 999px;
}

.sl-site .sl-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1.25rem;
    margin-bottom: 1.25rem;
    padding-bottom: 0.95rem;
    border-bottom: 1px solid #E4EAF4;
}

.sl-site .sl-result-count {
    font-size: 0.9375rem;
    color: #5B6880;
}

.sl-site .sl-result-count strong {
    color: var(--sl-navy);
}

.sl-site .sl-chip,
.sl-site .sl-chip-removable,
.sl-site .sl-chip-tabs a,
.sl-site .sl-chip-tabs button {
    border-radius: 999px;
    border: 1px solid #D7E0EE;
    background: #F7F9FC;
    color: #3D4C68;
    font-weight: 600;
}

.sl-site .sl-chip-removable:hover,
.sl-site .sl-chip-tabs a:hover {
    background: #EEF3FB;
    border-color: #AFC0E6;
}

.sl-site .sl-chip-tabs a.is-active,
.sl-site .sl-chip-tabs .is-active,
.sl-site .sl-chip-tabs a[aria-current="page"],
.sl-site .sl-chip-list a[aria-current="page"] {
    border-color: var(--sl-navy);
    background: var(--sl-navy);
    color: #fff !important;
}

/* ---- Cards (all directory/detail grids) ---- */
.sl-site main:not(:has(.sl-hero-oua)) .sl-ccard,
.sl-site main:not(:has(.sl-hero-oua)) .sl-uni-card,
.sl-site main:not(:has(.sl-hero-oua)) .sl-scholarship-card,
.sl-site main:not(:has(.sl-hero-oua)) .sl-article-card,
.sl-site main:not(:has(.sl-hero-oua)) .sl-event-card,
.sl-site main:not(:has(.sl-hero-oua)) .sl-service-card,
.sl-site main:not(:has(.sl-hero-oua)) .sl-partner-card,
.sl-site main:not(:has(.sl-hero-oua)) .sl-advisor-card,
.sl-site main:not(:has(.sl-hero-oua)) .sl-card:not(.sl-quizcta):not(.sl-advice) {
    border: 1px solid #E2E8F2;
    border-radius: 1.125rem;
    background: #fff;
    box-shadow: 0 1px 0 rgba(17, 28, 68, 0.03);
    transition: border-color 0.2s var(--sl-ease), box-shadow 0.2s var(--sl-ease), transform 0.2s var(--sl-ease);
}

.sl-site main:not(:has(.sl-hero-oua)) .sl-ccard:hover,
.sl-site main:not(:has(.sl-hero-oua)) .sl-uni-card:hover,
.sl-site main:not(:has(.sl-hero-oua)) .sl-scholarship-card:hover,
.sl-site main:not(:has(.sl-hero-oua)) .sl-article-card:hover,
.sl-site main:not(:has(.sl-hero-oua)) .sl-event-card:hover,
.sl-site main:not(:has(.sl-hero-oua)) .sl-service-card:hover,
.sl-site main:not(:has(.sl-hero-oua)) .sl-advisor-card:hover {
    border-color: #AFC0E6;
    transform: translateY(-2px);
    box-shadow: 0 14px 32px rgba(17, 28, 68, 0.1);
}

.sl-site .sl-uni-card {
    border-radius: 1.125rem !important;
    padding: 1.35rem 1.25rem;
}

.sl-site .sl-ccard-title a {
    color: var(--sl-navy) !important;
    text-decoration-color: rgba(54, 87, 164, 0.25);
}

.sl-site .sl-ccard-title a:hover {
    color: var(--sl-royal) !important;
}

.sl-site .sl-ccard-foot .sl-btn {
    border-radius: 999px;
}

.sl-site .sl-service-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.15rem;
    list-style: none;
    margin: 0;
    padding: clamp(1.5rem, 1rem + 1.5vw, 2.5rem) 0 clamp(2.5rem, 1.5rem + 2vw, 4rem);
}

.sl-site .sl-service-card {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 1.5rem;
    position: relative;
}

.sl-site .sl-service-card .sl-icon-circle {
    width: 3rem;
    height: 3rem;
    border-radius: 0.875rem;
    background: #E8EFFA;
    color: var(--sl-royal);
    border: 0;
}

.sl-site .sl-service-card:hover .sl-icon-circle {
    background: var(--sl-royal);
    color: #fff;
}

/* ---- Study / dest hubs (reinforce) ---- */
.sl-site .sl-study-hero,
.sl-site .sl-destpage-hero {
    border-bottom: 1px solid #E4EAF4;
}

.sl-site .sl-study-hero-actions .sl-btn-gold,
.sl-site .sl-destpage-hero .sl-btn-gold {
    box-shadow: 0 8px 20px rgba(244, 197, 66, 0.26);
}

.sl-site .sl-study-hero-search {
    border-radius: 999px;
    padding-left: 1.15rem;
}

/* ---- Match / quiz / forms ---- */
.sl-site .sl-quiz-card {
    border: 1px solid #E2E8F2;
    border-radius: 1.5rem;
    background: #fff;
    box-shadow: 0 16px 40px rgba(17, 28, 68, 0.08);
    padding: clamp(1.5rem, 1.1rem + 1.5vw, 2.5rem);
}

.sl-site .sl-match-summary {
    border: 1px solid #E2E8F2;
    border-radius: 1.15rem;
    background: #EEF3FB;
    box-shadow: none;
}

.sl-site .sl-bg-ice {
    background: linear-gradient(180deg, #EEF3FB 0%, #F8FAFD 100%);
}

.sl-site main:not(:has(.sl-hero-oua)) .sl-form-card,
.sl-site main:not(:has(.sl-hero-oua)) .sl-contact-form,
.sl-site main:not(:has(.sl-hero-oua)) .sl-booking-card {
    border: 1px solid #E2E8F2;
    border-radius: 1.25rem;
    background: #fff;
    box-shadow: 0 12px 32px rgba(17, 28, 68, 0.06);
}

.sl-site main:not(:has(.sl-hero-oua)) .sl-form-card .sl-btn-primary,
.sl-site main:not(:has(.sl-hero-oua)) form .sf-btn-primary,
.sl-site main:not(:has(.sl-hero-oua)) .sl-quiz-card button[type="submit"].sl-btn:not(.sl-btn-outline):not(.sl-btn-navy) {
    background: var(--sl-gold);
    border-color: var(--sl-gold);
    color: var(--sl-navy) !important;
    border-radius: 999px;
    box-shadow: 0 8px 20px rgba(244, 197, 66, 0.24);
}

.sl-site main:not(:has(.sl-hero-oua)) .sl-form-card .sl-btn-primary:hover,
.sl-site main:not(:has(.sl-hero-oua)) form .sf-btn-primary:hover {
    background: var(--sl-gold-hover);
    border-color: var(--sl-gold-hover);
}

/* ---- Detail layouts ---- */
.sl-site .sl-detail-layout {
    gap: clamp(2rem, 1.4rem + 2vw, 3.5rem);
    padding-block: clamp(1.5rem, 1rem + 1.5vw, 2.75rem);
}

.sl-site .sl-detail-aside,
.sl-site .sl-article-aside,
.sl-site .sl-detail-layout > aside {
    border: 1px solid #E2E8F2;
    border-radius: 1.25rem;
    background: #EEF3FB;
    padding: 1.5rem 1.35rem;
    box-shadow: none;
}

.sl-site .sl-detail-aside .sl-btn-gold {
    width: 100%;
    justify-content: center;
    border-radius: 999px;
    box-shadow: 0 8px 20px rgba(244, 197, 66, 0.24);
}

.sl-site .sl-course-facts,
.sl-site .sl-detail-facts {
    border-radius: 1rem;
    border: 1px solid #E2E8F2;
    background: #fff;
}

/* ---- Help bar / related ---- */
.sl-site .sl-helpbar {
    border-radius: 1.15rem;
    border: 1px solid rgba(30, 47, 102, 0.08);
    background: linear-gradient(135deg, #F0F2FC 0%, #EEF3FB 100%);
    box-shadow: none;
}

.sl-site .sl-helpbar .sl-btn-gold {
    border-radius: 999px;
    box-shadow: 0 8px 18px rgba(244, 197, 66, 0.22);
}

.sl-site .sl-related {
    background: linear-gradient(180deg, #fff 0%, #EEF3FB 100%);
    border-top: 1px solid #E4EAF4;
}

/* ---- Contact / about / how / FAQ ---- */
.sl-site .sl-contact-tips,
.sl-site .sl-about-panel,
.sl-site .sl-consult-card {
    border-radius: 1.25rem;
    border: 1px solid #E2E8F2;
    background: #EEF3FB;
    box-shadow: 0 10px 28px rgba(17, 28, 68, 0.05);
}

.sl-site .sl-trust-grid,
.sl-site .sl-prepare-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.sl-site .sl-trust-card,
.sl-site .sl-prepare-card {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    padding: 1.35rem 1.25rem;
    border: 1px solid #E2E8F2;
    border-radius: 1.125rem;
    background: #fff;
    box-shadow: 0 1px 0 rgba(17, 28, 68, 0.03);
    transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
}

.sl-site .sl-trust-card:hover,
.sl-site .sl-prepare-card:hover {
    border-color: #AFC0E6;
    box-shadow: 0 12px 28px rgba(17, 28, 68, 0.08);
    transform: translateY(-2px);
}

.sl-site .sl-trust-icon,
.sl-site .sl-prepare-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 0.875rem;
    background: #E8EFFA;
    color: var(--sl-royal);
}

.sl-site .sl-trust-card:hover .sl-trust-icon,
.sl-site .sl-prepare-card:hover .sl-prepare-icon {
    background: var(--sl-navy);
    color: #fff;
}

.sl-site .sl-journey-body {
    border: 1px solid #E2E8F2;
    background: #fff;
    box-shadow: 0 1px 0 rgba(17, 28, 68, 0.03);
}

.sl-site .sl-inline-cta {
    border-radius: 1.25rem;
    border: 1px solid #E2E8F2;
    background: linear-gradient(180deg, #EEF3FB 0%, #F8FAFD 100%);
    box-shadow: 0 10px 28px rgba(17, 28, 68, 0.05);
}

.sl-site .sl-uni-card,
.sl-site .sl-ccard {
    min-height: 0;
}

.sl-site .sl-contact-list a {
    color: var(--sl-navy) !important;
    text-decoration-color: var(--sl-gold);
}

.sl-site main:not(:has(.sl-hero-oua)) .sl-faq2-main {
    border: 0;
    box-shadow: none;
    background: transparent;
    padding-inline: 0;
}

.sl-site main:not(:has(.sl-hero-oua)) .sl-faq2-item,
.sl-site .sl-faq-item {
    border-color: rgba(30, 47, 102, 0.12);
}

/* ---- Empty states ---- */
.sl-site .sl-empty-wrap,
.sl-site .sl-directory-main .sl-empty-wrap {
    padding: clamp(2rem, 1.4rem + 1.8vw, 3rem);
    border-radius: 1.35rem;
    border: 1px dashed #C5D0E4;
    background: #F7F9FC;
}

.sl-site .sl-empty-title {
    font-family: var(--sl-font-heading);
    font-weight: 750;
    letter-spacing: -0.02em;
    color: var(--sl-navy);
}

.sl-site .sl-empty-actions {
    gap: 0.75rem;
}

.sl-site .sl-empty-actions .sl-btn {
    border-radius: 999px;
}

.sl-site .sl-empty-actions .sl-btn-gold {
    box-shadow: 0 8px 18px rgba(244, 197, 66, 0.22);
}

/* ---- Guidance CTA band (shared) ---- */
.sl-site .sl-guidance-cta .sl-study-cta-panel,
.sl-site .sl-study-cta-panel {
    border-radius: 1.5rem;
}

.sl-site .sl-guidance-cta .sl-btn-gold,
.sl-site .sl-study-cta .sl-btn-gold {
    box-shadow: 0 10px 24px rgba(244, 197, 66, 0.28);
}

/* ---- Compare / budget / partners ---- */
.sl-site .sl-compare-table,
.sl-site .sl-budget-card,
.sl-site .sl-partner-hero {
    border-radius: 1.15rem;
    border: 1px solid #E2E8F2;
    background: #fff;
    box-shadow: 0 10px 28px rgba(17, 28, 68, 0.05);
}

/* ---- Pagination ---- */
.sl-site .pagination .page-link {
    border-radius: 0.65rem;
    border-color: #D5DEEC;
    color: var(--sl-navy);
    min-width: 2.5rem;
    min-height: 2.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.sl-site .pagination .page-item.active .page-link {
    background: var(--sl-navy);
    border-color: var(--sl-navy);
    color: #fff;
}

/* ---- Video resource shell ---- */
.sl-site .sl-resource-shell {
    max-width: 960px;
    margin: 0 auto;
    padding: clamp(1.5rem, 1rem + 2vw, 3rem) 1.25rem 4rem;
}

.sl-site .sl-resource-player {
    border-radius: 1.25rem;
    overflow: hidden;
    border: 1px solid #E2E8F2;
    background: #111C44;
    box-shadow: 0 20px 48px rgba(17, 28, 68, 0.18);
}

.sl-site .sl-resource-player video,
.sl-site .sl-resource-player .youtube-player {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    background: #0B1228;
}

/* ---- Policy / CMS pages ---- */
.sl-site .sl-policy-card {
    padding: clamp(1.5rem, 1.1rem + 1.2vw, 2.25rem);
    border-radius: 1.25rem;
    border: 1px solid #E2E8F2;
    background: #fff;
    box-shadow: 0 10px 28px rgba(17, 28, 68, 0.05);
}

/* ---- Band spacing for editorial content ---- */
.sl-site main:not(:has(.sl-hero-oua)) > .sl-section,
.sl-site main:not(:has(.sl-hero-oua)) > .sl-band {
    padding-top: clamp(2rem, 1.3rem + 1.8vw, 3.5rem);
    padding-bottom: clamp(2rem, 1.3rem + 1.8vw, 3.5rem);
}

.sl-site main:not(:has(.sl-hero-oua)) .sl-h2 {
    font-family: var(--sl-font-heading);
    font-weight: 750;
    letter-spacing: -0.02em;
    color: var(--sl-navy);
}

/* ---- Responsive ---- */
@media (max-width: 991.98px) {
    .sl-site .sl-service-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .sl-site .sl-ph-strip {
        display: none;
    }
}

@media (max-width: 575.98px) {
    .sl-site .sl-service-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .sl-site .sl-ph-search {
        flex-direction: column;
        align-items: stretch;
        border-radius: 1rem;
        padding: 0.75rem;
    }

    .sl-site .sl-ph-search .sl-btn {
        width: 100%;
    }

    .sl-site .sl-ph-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .sl-site .sl-guidance-cta .sl-study-cta-actions,
    .sl-site .sl-study-cta-actions {
        flex-direction: column;
        align-items: stretch;
    }
}

@media (prefers-reduced-motion: reduce) {
    .sl-site main:not(:has(.sl-hero-oua)) .sl-ccard,
    .sl-site main:not(:has(.sl-hero-oua)) .sl-uni-card,
    .sl-site main:not(:has(.sl-hero-oua)) .sl-scholarship-card,
    .sl-site main:not(:has(.sl-hero-oua)) .sl-article-card,
    .sl-site main:not(:has(.sl-hero-oua)) .sl-event-card,
    .sl-site main:not(:has(.sl-hero-oua)) .sl-service-card {
        transition: none !important;
        transform: none !important;
    }
}
