/* =========================================================
   NYOSA V2 — MOBILE-FIRST HOMEPAGE
   Replace public_html/v2/css/index.css with this file.
   Keeps the existing class names used by index.php.
========================================================= */

:root {
    --nyosa-blue: #1769e8;
    --nyosa-blue-dark: #0b2357;
    --nyosa-ink: #101d42;
    --nyosa-muted: #596781;
    --nyosa-border: #e5edf7;
    --nyosa-page: #f4f8fd;
    --nyosa-radius: 18px;
    --nyosa-shadow: 0 6px 20px rgba(21, 57, 105, .07);
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

.nyosa-home {
    width: 100%;
    overflow: clip;
    padding-bottom: 24px;
    background: var(--nyosa-page);
    color: var(--nyosa-ink);
}

.nyosa-home a { -webkit-tap-highlight-color: transparent; }

.nyosa-home section {
    width: min(1180px, calc(100% - 28px));
    margin-right: auto;
    margin-left: auto;
}

.nyosa-home h1,
.nyosa-home h2,
.nyosa-home h3,
.nyosa-home p { overflow-wrap: anywhere; }

.nyosa-home .section-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 0 0 12px;
}

.nyosa-home .section-heading h2,
.nyosa-home .section-title {
    margin: 0;
    color: var(--nyosa-blue-dark);
    font-size: clamp(19px, 2.2vw, 26px);
    font-weight: 850;
    line-height: 1.15;
    letter-spacing: -.45px;
}

.nyosa-home .section-heading a,
.nyosa-home .section-view-all {
    flex: 0 0 auto;
    color: var(--nyosa-blue);
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
    white-space: nowrap;
}

/* HERO */
.nyosa-home .hero {
    position: relative;
    width: min(1180px, calc(100% - 28px));
    margin: 12px auto 0;
    padding: 0 0 14px;
    overflow: hidden;
    border: 1px solid #dcecff;
    border-radius: 24px;
    background: linear-gradient(125deg, #eaf7ff 0%, #d9edff 56%, #b8dcff 100%);
    box-shadow: var(--nyosa-shadow);
}

.nyosa-home .hero-content {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 275px;
    width: 100%;
    padding: 26px 26px 14px;
}

.nyosa-home .hero-copy {
    position: relative;
    z-index: 3;
    width: 57%;
    max-width: 620px;
}

.nyosa-home .hero-eyebrow {
    display: block;
    margin: 0 0 12px;
    color: #23436f;
    font-size: 10px;
    font-weight: 850;
    line-height: 1.4;
    letter-spacing: 2px;
}

.nyosa-home .hero-copy h1 {
    margin: 0;
    color: #071b4a;
    font-size: clamp(38px, 5.2vw, 68px);
    font-weight: 900;
    line-height: .98;
    letter-spacing: -2px;
}

.nyosa-home .hero-copy h1 span { color: var(--nyosa-blue); }

.nyosa-home .hero-copy h1 span::after { display: none; }

.nyosa-home .hero-copy p {
    max-width: 390px;
    margin: 14px 0 0;
    color: #304563;
    font-size: 15px;
    line-height: 1.45;
}

.nyosa-home .hero-image {
    position: absolute;
    z-index: 1;
    top: 0;
    right: 0;
    bottom: 0;
    width: 52%;
    overflow: hidden;
    pointer-events: none;
    -webkit-mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,.35) 15%, #000 38%);
    mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,.35) 15%, #000 38%);
}

.nyosa-home .hero-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 28%;
}

.nyosa-home .hero-image::after {
    position: absolute;
    inset: 0;
    content: "";
    background: linear-gradient(90deg, rgba(234,247,255,.8), transparent 52%);
}

.nyosa-home .hero-search {
    position: relative;
    z-index: 5;
    display: flex;
    align-items: center;
    gap: 6px;
    width: calc(100% - 44px);
    max-width: 920px;
    margin: -2px auto 0;
    padding: 6px;
    border: 1px solid #dfe9f6;
    border-radius: 15px;
    background: #fff;
    box-shadow: 0 7px 20px rgba(23, 68, 125, .13);
}

.nyosa-home .search-icon {
    display: flex;
    flex: 0 0 38px;
    align-items: center;
    justify-content: center;
    color: var(--nyosa-ink);
}

.nyosa-home .search-icon svg {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.nyosa-home .hero-search input {
    min-width: 0;
    flex: 1;
    padding: 12px 5px;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--nyosa-ink);
    font: inherit;
    font-size: 13px;
}

.nyosa-home .hero-search input::placeholder { color: #7b8799; }

.nyosa-home .hero-search button {
    flex: 0 0 auto;
    padding: 12px 22px;
    border: 0;
    border-radius: 11px;
    background: var(--nyosa-blue);
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}

/* Optional hero CTAs: add these in index.php when ready */
.nyosa-home .hero-actions {
    position: relative;
    z-index: 4;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    width: calc(100% - 44px);
    max-width: 920px;
    margin: 12px auto 0;
}

.nyosa-home .hero-action {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 46px;
    padding: 10px 14px;
    border: 1px solid var(--nyosa-blue);
    border-radius: 13px;
    background: var(--nyosa-blue);
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    text-align: center;
    text-decoration: none;
}

.nyosa-home .hero-action.secondary {
    background: #fff;
    color: var(--nyosa-blue);
}

/* CATEGORY GRID */
.nyosa-home .categories-section { margin-top: 22px; }

.nyosa-home .category-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.nyosa-home .category-card {
    position: relative;
    display: flex;
    min-width: 0;
    min-height: 132px;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    gap: 8px;
    padding: 14px;
    overflow: hidden;
    border: 1px solid rgba(221, 232, 246, .9);
    border-radius: 17px;
    background: linear-gradient(145deg, #fff, #f0f6ff);
    text-decoration: none;
    box-shadow: 0 3px 12px rgba(24, 58, 102, .035);
    transition: transform .18s ease, box-shadow .18s ease;
}

.nyosa-home .category-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(24, 58, 102, .09);
}

.nyosa-home .category-icon {
    display: flex;
    width: 43px;
    height: 43px;
    flex: 0 0 43px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--nyosa-blue);
    color: #fff;
}

.nyosa-home .category-icon svg {
    width: 24px;
    height: 24px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.nyosa-home .category-card.bursary { background: linear-gradient(145deg, #effcf6, #e6f8f1); }
.nyosa-home .category-card.learnership { background: linear-gradient(145deg, #eff6ff, #eaf3ff); }
.nyosa-home .category-card.internship { background: linear-gradient(145deg, #f7f1ff, #f0eaff); }
.nyosa-home .category-card.graduate { background: linear-gradient(145deg, #fff7e9, #fff1dc); }
.nyosa-home .category-card.jobs { background: linear-gradient(145deg, #fff1f5, #ffeaf0); }
.nyosa-home .category-card.course { background: linear-gradient(145deg, #fff9e9, #fff4d8); }
.nyosa-home .category-card.bursary .category-icon { background: #0aa978; }
.nyosa-home .category-card.learnership .category-icon { background: #1769e8; }
.nyosa-home .category-card.internship .category-icon { background: #8048e8; }
.nyosa-home .category-card.graduate .category-icon { background: #ff861b; }
.nyosa-home .category-card.jobs .category-icon { background: #ef426b; }
.nyosa-home .category-card.course .category-icon { background: #f5a900; }

.nyosa-home .category-content { min-width: 0; padding-right: 12px; }

.nyosa-home .category-content h2 {
    margin: 0 0 4px;
    color: var(--nyosa-ink);
    font-size: 14px;
    font-weight: 850;
    line-height: 1.15;
}

.nyosa-home .category-content p {
    margin: 0;
    color: #506078;
    font-size: 11px;
    line-height: 1.35;
}

.nyosa-home .category-arrow {
    position: absolute;
    right: 10px;
    bottom: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    color: var(--nyosa-blue-dark);
}

.nyosa-home .category-arrow svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* SHARED SECTIONS / TOOL CARDS */
.nyosa-home .tools-section,
.nyosa-home .education-level-section,
.nyosa-home .career-advice-section,
.nyosa-home .universities-section {
    margin-top: 22px;
}

.nyosa-home .tool-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 9px;
}

.nyosa-home .tool-card {
    display: flex;
    min-width: 0;
    min-height: 116px;
    flex-direction: column;
    align-items: flex-start;
    padding: 13px;
    border: 1px solid var(--nyosa-border);
    border-radius: 15px;
    background: #fff;
    color: inherit;
    text-decoration: none;
    box-shadow: 0 3px 12px rgba(24, 58, 102, .035);
}

.nyosa-home .tool-card-icon {
    display: flex;
    width: 34px;
    height: 34px;
    align-items: center;
    justify-content: center;
    margin-bottom: 9px;
    border-radius: 10px;
    background: #eaf3ff;
    color: var(--nyosa-blue);
    font-size: 20px;
    font-weight: 900;
}

.nyosa-home .tool-card h3 {
    margin: 0 0 4px;
    color: var(--nyosa-ink);
    font-size: 12px;
    font-weight: 850;
    line-height: 1.2;
}

.nyosa-home .tool-card p {
    margin: 0;
    color: var(--nyosa-muted);
    font-size: 10px;
    line-height: 1.35;
}

/* EDUCATION LEVEL */
.nyosa-home .education-level-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.nyosa-home .education-level-card {
    display: block;
    min-width: 0;
    padding: 15px;
    border: 1px solid var(--nyosa-border);
    border-radius: 17px;
    background: #fff;
    color: inherit;
    text-decoration: none;
    box-shadow: 0 3px 12px rgba(24, 58, 102, .035);
}

.nyosa-home .education-level-card h3 {
    margin: 0 0 7px;
    color: var(--nyosa-ink);
    font-size: 13px;
    font-weight: 850;
    line-height: 1.2;
}

.nyosa-home .education-level-card p {
    margin: 0;
    color: var(--nyosa-muted);
    font-size: 11px;
    line-height: 1.45;
}

/* MATRIC BANNER */
.nyosa-home .matric-banner {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: 118px;
    margin-top: 20px;
    padding: 22px 24px;
    overflow: hidden;
    border-radius: 18px;
    background: linear-gradient(120deg, #0646b8, #176be4 60%, #0e58ce);
    color: #fff;
    box-shadow: 0 8px 24px rgba(20, 82, 180, .15);
}

.nyosa-home .matric-content { position: relative; z-index: 1; }
.nyosa-home .matric-content span { display: block; font-size: 13px; font-weight: 700; }
.nyosa-home .matric-content strong { display: block; color: #ffe033; font-size: clamp(23px, 3vw, 34px); font-weight: 900; line-height: 1.08; }
.nyosa-home .matric-content p { margin: 6px 0 0; color: rgba(255,255,255,.9); font-size: 12px; }
.nyosa-home .matric-badge { position: relative; z-index: 1; padding: 12px 15px; border-radius: 18px; background: #ffdc35; color: #14203b; text-align: center; transform: rotate(-3deg); }
.nyosa-home .matric-badge strong { font-size: 12px; line-height: 1.2; }

/* PARTNER CARDS */
.nyosa-home .partner-section {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 20px;
    margin-bottom: 20px;
}

.nyosa-home .partner-card {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 14px;
    padding: 17px;
    border: 1px solid var(--nyosa-border);
    border-radius: 17px;
    background: #fff;
    text-decoration: none;
    box-shadow: var(--nyosa-shadow);
}

.nyosa-home .partner-icon {
    display: flex;
    width: 52px;
    height: 52px;
    flex: 0 0 52px;
    align-items: center;
    justify-content: center;
    border-radius: 15px;
    background: #eaf3ff;
    color: var(--nyosa-blue);
}

.nyosa-home .partner-icon svg { width: 29px; height: 29px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.nyosa-home .partner-card h2 { margin: 0; color: var(--nyosa-ink); font-size: 20px; font-weight: 900; line-height: 1.05; }
.nyosa-home .partner-card h2 span { color: var(--nyosa-blue); }
.nyosa-home .partner-card p { margin: 6px 0; color: var(--nyosa-muted); font-size: 11px; line-height: 1.35; }
.nyosa-home .partner-link { display: inline-flex; align-items: center; gap: 5px; color: var(--nyosa-blue); font-size: 11px; font-weight: 850; }
.nyosa-home .partner-link svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* LATEST OPPORTUNITIES */
.nyosa-home .latest-section {
    width: min(1180px, calc(100% - 28px));
    margin-top: 22px;
    margin-bottom: 28px;
}

.nyosa-home .latest-section .section-heading { margin-bottom: 10px; }
.nyosa-home .latest-section .section-heading h2 { margin: 0; color: var(--nyosa-blue-dark); font-size: clamp(19px, 2.2vw, 26px); font-weight: 900; }
.nyosa-home .latest-section .section-heading a { color: var(--nyosa-blue); font-size: 12px; font-weight: 850; text-decoration: none; }

.nyosa-home .opportunities-list { display: flex; flex-direction: column; gap: 9px; }

.nyosa-home .opportunity-card {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    min-height: 94px;
    padding: 10px 12px;
    overflow: hidden;
    border: 1px solid var(--nyosa-border);
    border-radius: 15px;
    border-left: 4px solid var(--nyosa-blue);
    background: #fff;
    text-decoration: none;
    box-shadow: 0 3px 12px rgba(24, 58, 102, .04);
}

.nyosa-home .opportunity-image {
    display: flex;
    width: 82px;
    height: 68px;
    flex: 0 0 82px;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 10px;
    background: #f0f5fb;
}

.nyosa-home .opportunity-image img { display: block; width: 100%; height: 100%; object-fit: contain; }
.nyosa-home .opportunity-content { display: flex; min-width: 0; flex: 1; flex-direction: column; justify-content: center; }
.nyosa-home .opportunity-type { display: inline-flex; width: fit-content; margin-bottom: 5px; padding: 4px 8px; border-radius: 999px; background: #e7f1ff; color: #1557b7; font-size: 9px; font-weight: 800; line-height: 1.1; }
.nyosa-home .opportunity-content h3 { display: -webkit-box; margin: 0; overflow: hidden; color: var(--nyosa-ink); font-size: 13px; font-weight: 850; line-height: 1.3; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.nyosa-home .opportunity-date { display: block; margin-top: 5px; color: #758197; font-size: 10px; line-height: 1.25; }
.nyosa-home .opportunity-empty { padding: 28px 16px; border: 1px dashed #cfdbea; border-radius: 15px; background: #fff; color: var(--nyosa-muted); font-size: 13px; text-align: center; }

/* CAREER GUIDES */
.nyosa-home .career-guide-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.nyosa-home .career-guide-card {
    display: block;
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--nyosa-border);
    border-radius: 14px;
    background: #fff;
    color: inherit;
    text-decoration: none;
    box-shadow: 0 3px 12px rgba(24, 58, 102, .04);
}

.nyosa-home .career-guide-card img { display: block; width: 100%; height: 88px; object-fit: cover; background: #eaf1f9; }
.nyosa-home .career-guide-card h3 { margin: 0; padding: 10px; color: var(--nyosa-ink); font-size: 11px; font-weight: 800; line-height: 1.3; }

/* UNIVERSITY LOGOS / LINKS */
.nyosa-home .university-list {
    display: flex;
    gap: 9px;
    overflow-x: auto;
    padding: 2px 1px 8px;
    scrollbar-width: thin;
}

.nyosa-home .university-chip {
    display: flex;
    flex: 0 0 auto;
    min-width: 112px;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    padding: 9px 13px;
    border: 1px solid var(--nyosa-border);
    border-radius: 12px;
    background: #fff;
    color: var(--nyosa-ink);
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
    box-shadow: 0 3px 10px rgba(24, 58, 102, .035);
}

/* NEWSLETTER */
.nyosa-home .newsletter-banner {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 18px;
    padding: 15px;
    border-radius: 15px;
    background: linear-gradient(110deg, #0872f9, #0754c9);
    color: #fff;
    box-shadow: 0 7px 18px rgba(23, 105, 232, .18);
}

.nyosa-home .newsletter-banner h2 { margin: 0 0 4px; font-size: 14px; font-weight: 850; }
.nyosa-home .newsletter-banner p { margin: 0; color: rgba(255,255,255,.88); font-size: 10px; line-height: 1.35; }
.nyosa-home .newsletter-banner form { display: flex; flex: 1; min-width: 0; gap: 6px; }
.nyosa-home .newsletter-banner input { min-width: 0; flex: 1; padding: 10px 11px; border: 1px solid rgba(255,255,255,.6); border-radius: 9px; outline: 0; font: inherit; font-size: 11px; }
.nyosa-home .newsletter-banner button { padding: 10px 13px; border: 1px solid rgba(255,255,255,.75); border-radius: 9px; background: transparent; color: #fff; font-size: 11px; font-weight: 800; cursor: pointer; }

/* MATCH CTA */
.nyosa-home .bursary-match-cta {
    position: relative;
    display: flex;
    align-items: center;
    gap: 18px;
    width: min(900px, calc(100% - 28px));
    margin: 22px auto 30px;
    padding: 22px;
    overflow: hidden;
    border: 1px solid #cfe0f5;
    border-radius: 20px;
    background: linear-gradient(135deg, #eef6ff, #fff 55%, #f4f8ff);
    box-shadow: 0 8px 25px rgba(26, 95, 180, .08);
}

.nyosa-home .match-cta-icon { display: flex; width: 54px; height: 54px; flex: 0 0 54px; align-items: center; justify-content: center; border-radius: 15px; background: #1a5fb4; color: #fff; }
.nyosa-home .match-cta-icon svg { width: 28px; height: 28px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.nyosa-home .match-cta-content { min-width: 0; flex: 1; }
.nyosa-home .match-cta-label { display: inline-block; margin-bottom: 5px; color: #1a5fb4; font-size: 10px; font-weight: 850; letter-spacing: .12em; }
.nyosa-home .match-cta-content h2 { margin: 0 0 7px; color: #173f70; font-size: 22px; line-height: 1.2; }
.nyosa-home .match-cta-content p { margin: 0 0 13px; color: #5d6d84; font-size: 13px; line-height: 1.5; }
.nyosa-home .match-cta-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 11px 15px; border-radius: 10px; background: #1a5fb4; color: #fff; font-size: 12px; font-weight: 800; text-decoration: none; }
.nyosa-home .match-cta-button svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* ACCESSIBILITY / MOTION */
.nyosa-home a:focus-visible,
.nyosa-home button:focus-visible,
.nyosa-home input:focus-visible {
    outline: 3px solid rgba(23, 105, 232, .35);
    outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
    .nyosa-home *,
    .nyosa-home *::before,
    .nyosa-home *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
    }
}

/* TABLET */
@media (max-width: 900px) {
    .nyosa-home .hero-content { min-height: 250px; }
    .nyosa-home .category-grid,
    .nyosa-home .tool-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .nyosa-home .category-card { min-height: 125px; }
    .nyosa-home .category-content h2 { font-size: 13px; }
    .nyosa-home .education-level-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .nyosa-home .career-guide-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* MOBILE */
@media (max-width: 700px) {
    .nyosa-home { padding-bottom: 86px; }
    .nyosa-home section { width: calc(100% - 18px); }
    .nyosa-home .hero { width: calc(100% - 18px); margin-top: 8px; padding-bottom: 12px; border-radius: 19px; }
    .nyosa-home .hero-content { min-height: 230px; padding: 21px 15px 10px; align-items: flex-start; }
    .nyosa-home .hero-copy { width: 74%; max-width: 360px; padding: 0; }
    .nyosa-home .hero-eyebrow { margin-bottom: 9px; font-size: 8px; letter-spacing: 1.4px; }
    .nyosa-home .hero-copy h1 { font-size: clamp(34px, 9vw, 47px); line-height: .98; letter-spacing: -1.7px; }
    .nyosa-home .hero-copy p { max-width: 245px; margin-top: 10px; font-size: 12px; line-height: 1.4; }
    .nyosa-home .hero-image { right: -8px; width: 58%; opacity: .95; -webkit-mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,.25) 12%, #000 35%); mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,.25) 12%, #000 35%); }
    .nyosa-home .hero-image img { object-position: 55% center; }
    .nyosa-home .hero-image::after { background: linear-gradient(90deg, rgba(234,247,255,.55), transparent 65%); }
    .nyosa-home .hero-search { width: calc(100% - 24px); margin-top: -1px; padding: 4px; border-radius: 13px; }
    .nyosa-home .search-icon { flex-basis: 31px; }
    .nyosa-home .search-icon svg { width: 19px; height: 19px; }
    .nyosa-home .hero-search input { padding: 10px 2px; font-size: 11px; }
    .nyosa-home .hero-search button { padding: 10px 13px; border-radius: 9px; font-size: 10px; }
    .nyosa-home .hero-actions { width: calc(100% - 24px); gap: 7px; margin-top: 9px; }
    .nyosa-home .hero-action { min-height: 40px; padding: 8px 7px; gap: 5px; border-radius: 11px; font-size: 10px; }
    .nyosa-home .categories-section,
    .nyosa-home .tools-section,
    .nyosa-home .education-level-section,
    .nyosa-home .career-advice-section,
    .nyosa-home .universities-section { margin-top: 19px; }
    .nyosa-home .section-heading { margin-bottom: 9px; }
    .nyosa-home .section-heading h2,
    .nyosa-home .section-title { font-size: 19px; }
    .nyosa-home .section-heading a,
    .nyosa-home .section-view-all { font-size: 11px; }
    .nyosa-home .category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
    .nyosa-home .category-card { min-height: 128px; gap: 6px; padding: 11px; border-radius: 15px; }
    .nyosa-home .category-icon { width: 38px; height: 38px; flex-basis: 38px; }
    .nyosa-home .category-icon svg { width: 22px; height: 22px; }
    .nyosa-home .category-content { padding-right: 12px; }
    .nyosa-home .category-content h2 { margin-bottom: 3px; font-size: 12px; }
    .nyosa-home .category-content p { font-size: 10px; line-height: 1.3; }
    .nyosa-home .category-arrow { right: 7px; bottom: 7px; width: 18px; height: 18px; }
    .nyosa-home .category-arrow svg { width: 15px; height: 15px; }
    .nyosa-home .tool-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
    .nyosa-home .tool-card { min-height: 105px; padding: 11px; border-radius: 14px; }
    .nyosa-home .tool-card-icon { width: 30px; height: 30px; margin-bottom: 7px; font-size: 17px; }
    .nyosa-home .tool-card h3 { font-size: 11px; }
    .nyosa-home .tool-card p { font-size: 10px; }
    .nyosa-home .education-level-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
    .nyosa-home .education-level-card { padding: 12px; border-radius: 14px; }
    .nyosa-home .education-level-card h3 { font-size: 12px; }
    .nyosa-home .education-level-card p { font-size: 10px; }
    .nyosa-home .matric-banner { width: calc(100% - 18px); min-height: 105px; margin-top: 16px; padding: 16px 13px; border-radius: 15px; }
    .nyosa-home .matric-content { max-width: 68%; }
    .nyosa-home .matric-content span { font-size: 11px; }
    .nyosa-home .matric-content strong { font-size: 23px; }
    .nyosa-home .matric-content p { font-size: 9px; }
    .nyosa-home .matric-badge { padding: 10px; border-radius: 13px; }
    .nyosa-home .matric-badge strong { font-size: 9px; }
    .nyosa-home .partner-section { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 16px; margin-bottom: 18px; }
    .nyosa-home .partner-card { min-height: 110px; flex-direction: column; align-items: flex-start; gap: 7px; padding: 11px; border-radius: 14px; }
    .nyosa-home .partner-icon { width: 38px; height: 38px; flex-basis: 38px; border-radius: 11px; }
    .nyosa-home .partner-icon svg { width: 23px; height: 23px; }
    .nyosa-home .partner-card h2 { font-size: 17px; }
    .nyosa-home .partner-card p { margin: 4px 0; font-size: 10px; }
    .nyosa-home .partner-link { font-size: 10px; }
    .nyosa-home .latest-section { width: calc(100% - 18px); margin-top: 19px; margin-bottom: 22px; }
    .nyosa-home .latest-section .section-heading h2 { font-size: 19px; }
    .nyosa-home .latest-section .section-heading a { font-size: 11px; }
    .nyosa-home .opportunities-list { gap: 7px; }
    .nyosa-home .opportunity-card { min-height: 83px; gap: 9px; padding: 8px; border-left-width: 3px; border-radius: 12px; }
    .nyosa-home .opportunity-image { width: 63px; height: 58px; flex-basis: 63px; border-radius: 8px; }
    .nyosa-home .opportunity-type { margin-bottom: 4px; padding: 3px 6px; font-size: 8px; letter-spacing: 0; }
    .nyosa-home .opportunity-content h3 { font-size: 11px; line-height: 1.25; }
    .nyosa-home .opportunity-date { margin-top: 4px; font-size: 9px; }
    .nyosa-home .career-guide-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
    .nyosa-home .career-guide-card img { height: 82px; }
    .nyosa-home .career-guide-card h3 { padding: 8px; font-size: 10px; }
    .nyosa-home .university-list { gap: 7px; }
    .nyosa-home .university-chip { min-width: 100px; min-height: 43px; padding: 8px 10px; font-size: 10px; }
    .nyosa-home .newsletter-banner { flex-wrap: wrap; gap: 8px; margin-top: 14px; padding: 12px; border-radius: 13px; }
    .nyosa-home .newsletter-banner > div { flex: 1 1 100%; }
    .nyosa-home .newsletter-banner h2 { font-size: 12px; }
    .nyosa-home .newsletter-banner p { font-size: 9px; }
    .nyosa-home .newsletter-banner form { flex: 1 1 100%; }
    .nyosa-home .newsletter-banner input { padding: 9px; font-size: 10px; }
    .nyosa-home .newsletter-banner button { padding: 9px 10px; font-size: 10px; }
    .nyosa-home .bursary-match-cta { display: block; width: calc(100% - 18px); margin: 18px auto 24px; padding: 17px; border-radius: 16px; }
    .nyosa-home .match-cta-icon { width: 43px; height: 43px; margin-bottom: 10px; }
    .nyosa-home .match-cta-icon svg { width: 23px; height: 23px; }
    .nyosa-home .match-cta-content h2 { font-size: 19px; }
    .nyosa-home .match-cta-content p { font-size: 12px; }
    .nyosa-home .match-cta-button { width: 100%; padding: 11px; font-size: 11px; }
}

/* EXTRA-SMALL PHONES */
@media (max-width: 380px) {
    .nyosa-home section { width: calc(100% - 14px); }
    .nyosa-home .hero { width: calc(100% - 14px); }
    .nyosa-home .hero-content { min-height: 215px; padding: 18px 12px 8px; }
    .nyosa-home .hero-copy { width: 77%; }
    .nyosa-home .hero-copy h1 { font-size: 34px; }
    .nyosa-home .hero-copy p { max-width: 210px; font-size: 11px; }
    .nyosa-home .hero-eyebrow { font-size: 7px; letter-spacing: 1px; }
    .nyosa-home .hero-search { width: calc(100% - 16px); }
    .nyosa-home .hero-search input { font-size: 10px; }
    .nyosa-home .hero-search button { padding: 9px 10px; }
    .nyosa-home .hero-actions { width: calc(100% - 16px); }
    .nyosa-home .hero-action { font-size: 9px; }
    .nyosa-home .category-card { min-height: 122px; padding: 9px; }
    .nyosa-home .category-content h2 { font-size: 11px; }
    .nyosa-home .category-content p { font-size: 9px; }
    .nyosa-home .partner-card h2 { font-size: 15px; }
    .nyosa-home .opportunity-image { width: 54px; height: 54px; flex-basis: 54px; }
}

/* Fixed bottom navigation: styles apply if the shared footer uses .mobile-bottom-nav */
.mobile-bottom-nav {
    position: fixed;
    z-index: 1000;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    justify-content: space-around;
    align-items: stretch;
    min-height: 62px;
    padding: 6px 4px max(6px, env(safe-area-inset-bottom));
    border-top: 1px solid #e2eaf5;
    background: rgba(255,255,255,.97);
    box-shadow: 0 -5px 18px rgba(15, 42, 80, .08);
    backdrop-filter: blur(14px);
}

.mobile-bottom-nav a {
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    min-width: 0;
    color: #6a7891;
    font-size: 9px;
    font-weight: 700;
    text-decoration: none;
}

.mobile-bottom-nav a .nav-icon { font-size: 19px; line-height: 1; }
.mobile-bottom-nav a.active { color: var(--nyosa-blue); }

@media (min-width: 701px) {
    .mobile-bottom-nav { display: none; }
    .nyosa-home { padding-bottom: 0; }
}
