/* ==========================================================================
   Vibedu Study Abroad — Brand Stylesheet
   Brand: #005baa  |  Text: #1a1a1a  |  Corporate, professional, content-first
   ========================================================================== */

:root {
    --vibedu-blue: #005baa;
    --vibedu-blue-dark: #00448a;
    --vibedu-blue-light: #e7f0f9;
    --vibedu-text: #1a1a1a;
    --vibedu-muted: #5b6573;
    --vibedu-border: #e3e8ef;
    --vibedu-bg-soft: #f6f8fb;
    --vibedu-amber: #ffb300;
    --vibedu-green: #25d366;
}

* { scroll-behavior: smooth; }

body {
    font-family: 'Inter', 'Segoe UI', system-ui, -apple-system, 'Helvetica Neue', Arial, sans-serif;
    color: var(--vibedu-text);
    line-height: 1.65;
    font-size: 15px;
}

h1, h2, h3, h4, h5, h6 { font-weight: 700; color: var(--vibedu-text); line-height: 1.25; }

a { color: var(--vibedu-blue); text-decoration: none; }
a:hover { color: var(--vibedu-blue-dark); text-decoration: underline; }

.text-brand { color: var(--vibedu-blue) !important; }
.bg-brand { background-color: var(--vibedu-blue) !important; }
.bg-brand-soft { background-color: var(--vibedu-blue-light) !important; }
.bg-soft { background-color: var(--vibedu-bg-soft) !important; }

/* ---------- Buttons ---------- */
.btn-brand {
    background: linear-gradient(135deg, var(--vibedu-blue) 0%, var(--vibedu-blue-dark) 100%);
    border-color: var(--vibedu-blue);
    color: #fff;
    font-weight: 600;
    padding: .6rem 1.4rem;
    box-shadow: 0 3px 10px rgba(0,91,170,.22);
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.btn-brand:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 8px 20px rgba(0,91,170,.38); background: linear-gradient(135deg, var(--vibedu-blue-dark) 0%, #003a78 100%); }
.btn-amber {
    background: linear-gradient(135deg, #ffc233 0%, var(--vibedu-amber) 100%);
    border-color: var(--vibedu-amber);
    color: #1a1a1a;
    font-weight: 700;
    padding: .6rem 1.4rem;
    box-shadow: 0 3px 10px rgba(255,179,0,.3);
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.btn-amber:hover { color: #1a1a1a; transform: translateY(-2px); box-shadow: 0 8px 20px rgba(255,179,0,.45); background: linear-gradient(135deg, var(--vibedu-amber) 0%, #e89f00 100%); }
.btn-outline-brand {
    border: 2px solid var(--vibedu-blue);
    color: var(--vibedu-blue);
    font-weight: 600;
    border-radius: 8px;
}
.btn-outline-brand:hover { background-color: var(--vibedu-blue); color: #fff; }

/* ---------- Top bar ---------- */
.top-bar { background: var(--vibedu-blue-dark); color: #fff; font-size: .85rem; }
.top-bar a { color: #fff; }
.top-bar a:hover { color: #ffe; text-decoration: none; }

/* ---------- Navbar ---------- */
.navbar-vibedu { background: #fff; box-shadow: 0 2px 12px rgba(0,0,0,.06); padding-top: .55rem; padding-bottom: .55rem; }
.navbar-vibedu .navbar-brand { font-weight: 800; padding-top: .1rem; padding-bottom: .1rem; }
.navbar-vibedu .brand-logo-img { height: 52px; width: auto; display: block; }
.navbar-vibedu .brand-text { color: var(--vibedu-blue); font-size: 1.25rem; font-weight: 700; line-height: 1; letter-spacing: .01em; }
.footer-logo-img { height: 52px; width: auto; display: block; }
.navbar-vibedu .nav-link { color: var(--vibedu-text); font-weight: 500; padding: .5rem .58rem; font-size: .9rem; letter-spacing: .005em; white-space: nowrap; }
.navbar-vibedu .nav-account-name { max-width: 90px; overflow: hidden; text-overflow: ellipsis; vertical-align: bottom; display: inline-block; }
.navbar-vibedu .nav-link:hover, .navbar-vibedu .nav-link.active, .navbar-vibedu .nav-item.show .nav-link { color: var(--vibedu-blue); }
.navbar-vibedu .dropdown-toggle::after { margin-left: .35em; opacity: .6; }

/* ---------- Dropdowns & Mega menu ---------- */
.navbar-vibedu > .container { position: relative; }  /* anchor mega menu to content width */
.navbar-vibedu .dropdown-menu {
    border: 1px solid var(--vibedu-border); border-radius: 10px; box-shadow: 0 12px 38px rgba(0,0,0,.10);
    padding: .4rem; margin-top: .35rem; animation: dropFade .16s ease;
}
/* Premium nav CTA button */
.nav-cta {
    background: linear-gradient(135deg, var(--vibedu-blue) 0%, var(--vibedu-blue-dark) 100%);
    color: #fff; font-weight: 600; font-size: .88rem; white-space: nowrap;
    padding: .55rem 1.05rem; display: inline-flex; align-items: center; justify-content: center; gap: .45rem;
    box-shadow: 0 4px 14px rgba(0,91,170,.35); transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.nav-cta:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 8px 22px rgba(0,91,170,.48); background: linear-gradient(135deg, var(--vibedu-blue-dark) 0%, #003a78 100%); }
.nav-cta i { font-size: 1rem; }

/* Invisible bridge so the cursor can cross the gap without the menu closing */
.navbar-vibedu .dropdown-menu::before { content: ''; position: absolute; top: -14px; left: 0; right: 0; height: 14px; }
.navbar-vibedu .dropdown-item { font-weight: 400; padding: .45rem .7rem; color: var(--vibedu-text); font-size: .85rem; white-space: nowrap; }
.navbar-vibedu .dropdown-item:hover { background: var(--vibedu-blue-light); color: var(--vibedu-blue-dark); }

/* Mega panel — shrunk to content and centered within the container */
.mega-menu { width: 880px; max-width: calc(100vw - 24px); left: 0; right: 0; margin-left: auto; margin-right: auto; padding: 1.2rem 1.4rem; }
.mega-heading { font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--vibedu-muted); margin-bottom: .75rem; }
.mega-link { display: block; padding: .32rem .4rem; color: var(--vibedu-text); font-weight: 400; font-size: .82rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mega-link:hover { color: var(--vibedu-blue); text-decoration: none; background: var(--vibedu-blue-light); }
.mega-col-divider { border-left: 1px solid var(--vibedu-border); }
.mega-promo { background: var(--vibedu-blue-light); border-radius: 10px; padding: 1rem; }
.mega-promo strong { font-weight: 600; font-size: .95rem; }
.flag-img { border-radius: 2px; box-shadow: 0 0 0 1px rgba(0,0,0,.08); vertical-align: -2px; }

/* Two-panel exam mega menu */
.exam-tab { display: flex; align-items: center; justify-content: space-between; padding: .5rem .6rem; border-radius: 7px; color: var(--vibedu-text); font-size: .9rem; margin-bottom: 2px; }
.exam-tab small { font-size: .68rem; font-weight: 400; line-height: 1.2; }
.exam-tab:hover, .exam-tab.active { background: var(--vibedu-blue-light); color: var(--vibedu-blue-dark); text-decoration: none; box-shadow: inset 3px 0 0 var(--vibedu-blue); }
.exam-tab i { opacity: .45; font-size: .75rem; }
.exam-panel { display: none; }
.exam-panel.active { display: block; }

@keyframes dropFade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }

/* Open dropdowns on hover (desktop only) — driven by JS hover-intent (.menu-open) */
@media (min-width: 1200px) {
    .navbar-vibedu .nav-item.dropdown.menu-open > .dropdown-menu { display: block; }
    .mega-menu { position: absolute; top: 100%; }
}
@media (max-width: 1199px) {
    .mega-col-divider { border-left: none; }
}
/* Squeeze the dense nav into the narrower xl container (1200–1399) */
@media (min-width: 1200px) and (max-width: 1399.98px) {
    .navbar-vibedu .nav-link { padding: .5rem .42rem; font-size: .85rem; }
    .navbar-vibedu .brand-text { font-size: 1.1rem; }
    .navbar-vibedu .brand-logo-img { height: 46px; }
    .nav-cta { padding: .5rem .8rem; font-size: .84rem; }
}

/* ---------- Hero ---------- */
.hero {
    background: linear-gradient(135deg, var(--vibedu-blue) 0%, var(--vibedu-blue-dark) 100%);
    color: #fff;
    padding: 4rem 0 5rem;
}
.hero h1 { color: #fff; font-size: 2.6rem; line-height: 1.18; }
.hero .lead { color: #eaf2fb; font-size: 1.13rem; }
.hero .trust-badge { background: rgba(255,255,255,.14); padding: .5rem 1rem; font-weight: 500; }
.hero-points span { font-weight: 500; font-size: .95rem; }

/* Homepage hero — full-width banner image (img for SEO alt) under a light brand-blue tint */
.hero-home { position: relative; overflow: hidden; background: var(--vibedu-blue-dark); }
.hero-bg-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; z-index: 0; }
.hero-overlay {
    position: absolute; inset: 0; z-index: 1; display: block;
    background: linear-gradient(95deg, rgba(0,55,110,.78) 0%, rgba(0,75,150,.50) 40%, rgba(0,91,170,.28) 70%, rgba(0,91,170,.16) 100%);
}
.hero-content { position: relative; z-index: 2; }
.hero-home h1, .hero-home .lead { text-shadow: 0 1px 10px rgba(0,30,70,.4); }

/* ---------- Search box ---------- */
.search-box { background: #fff; border-radius: 12px; padding: 1rem; box-shadow: 0 12px 40px rgba(0,0,0,.18); }
.search-box .form-select, .search-box .form-control { border-radius: 8px; }

/* ---------- Enquiry form card ---------- */
.enquiry-card { background: #fff; border: 1px solid var(--vibedu-border); box-shadow: 0 12px 45px rgba(0,0,0,.18); color: var(--vibedu-text); }
.enquiry-card .form-label { font-weight: 600; font-size: .88rem; }
.hp-field { position: absolute; left: -9999px; top: -9999px; height: 0; width: 0; opacity: 0; }
.form-label .req { color: #d6336c; }
.input-group-text { background: var(--vibedu-blue-light); color: var(--vibedu-blue-dark); font-weight: 600; border-color: var(--vibedu-border); }

/* ===== Square theme — no semi-curved corners anywhere ===== */
.btn { border-radius: 0 !important; }
.form-control, .form-select { border-radius: 0 !important; }
.input-group > .form-control, .input-group > .input-group-text { border-radius: 0 !important; }
.enquiry-card, .search-box, .modal-content { border-radius: 0 !important; }
.dropdown-menu, .mega-promo { border-radius: 0 !important; }
.dropdown-item, .mega-link, .exam-tab { border-radius: 0 !important; }
.card-vibedu, .accordion, .accordion-item, .accordion-button, .trust-badge, .feature-icon { border-radius: 0 !important; }

/* Popup/modal headline must stay white on the blue header (overrides global heading colour) */
.modal-header .modal-title { color: #fff !important; }

/* ---------- Section helpers ---------- */
.section { padding: 4rem 0; }
.section-title { font-size: 2rem; margin-bottom: .5rem; }
.section-sub { color: var(--vibedu-muted); max-width: 720px; }
.eyebrow { color: var(--vibedu-blue); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; font-size: .8rem; }

/* ---------- Cards ---------- */
.card-vibedu { border: 2px solid #d2dbea; border-radius: 12px; transition: transform .15s, box-shadow .15s, border-color .15s; height: 100%; box-shadow: 0 3px 14px rgba(16,40,80,.07); }
.card-vibedu:hover { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(16,40,80,.14); border-color: var(--vibedu-blue); }

.destination-card { overflow: hidden; color: inherit; }
.destination-card:hover .btn-outline-brand { background: var(--vibedu-blue); color: #fff; }

/* Detailed horizontal destination cards (homepage) */
.dest-rich { display: flex; background: #fff; color: var(--vibedu-text); overflow: hidden; height: 100%; }
.dest-rich-media { position: relative; flex: 0 0 180px; overflow: hidden; }
.dest-rich-media > img:first-child { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.dest-rich:hover .dest-rich-media > img:first-child { transform: scale(1.07); }
.dest-rich-flag { position: absolute; top: 10px; left: 10px; width: 30px; height: auto; border: 1px solid rgba(255,255,255,.85); box-shadow: 0 2px 6px rgba(0,0,0,.4); }
.dest-rich-body { flex: 1 1 auto; padding: 1.1rem 1.2rem; display: flex; flex-direction: column; min-width: 0; }
.dest-rich-title { font-size: 1.15rem; font-weight: 700; margin: 0 0 .15rem; color: var(--vibedu-text); }
.dest-rich-tag { color: var(--vibedu-muted); font-size: .82rem; margin: 0 0 .85rem; line-height: 1.35; }
.dest-rich-arrow { width: 34px; height: 34px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; background: var(--vibedu-blue-light); color: var(--vibedu-blue); transition: all .2s; }
.dest-rich:hover .dest-rich-arrow { background: var(--vibedu-blue); color: #fff; }

.dest-stats { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem .9rem; margin-bottom: .9rem; }
.dest-stat { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: .5rem; align-items: center; }
.dest-stat i { grid-row: 1 / 3; color: var(--vibedu-blue); font-size: 1.1rem; }
.dest-stat span { font-size: .66rem; text-transform: uppercase; letter-spacing: .04em; color: var(--vibedu-muted); }
.dest-stat strong { font-size: .82rem; font-weight: 700; line-height: 1.15; }

.dest-courses { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: auto; }
.dest-chip { font-size: .7rem; font-weight: 600; padding: .22rem .55rem; background: var(--vibedu-bg-soft); border: 1px solid var(--vibedu-border); color: var(--vibedu-muted); }

@media (max-width: 575px) {
    .dest-rich { flex-direction: column; }
    .dest-rich-media { flex-basis: 170px; width: 100%; }
}

/* ---------- University cards (compact, 4-per-row) ---------- */
.uni-card { background: #fff; }
.uni-card-head { padding: 1rem 1rem .75rem; border-bottom: 1px solid var(--vibedu-border); background: #fff; position: relative; }
.uni-logo-wrap { height: 44px; display: flex; align-items: center; margin-bottom: .6rem; }
.uni-logo { max-height: 40px; max-width: 140px; width: auto; object-fit: contain; }
.uni-monogram { height: 40px; min-width: 40px; padding: 0 .6rem; display: inline-flex; align-items: center; justify-content: center; background: var(--vibedu-blue-light); color: var(--vibedu-blue); font-size: 1.05rem; font-weight: 800; letter-spacing: .03em; }
.uni-russell-badge { position: absolute; top: .55rem; right: .55rem; z-index: 2; background: var(--vibedu-amber); color: #1a1a1a; font-size: .54rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; padding: .12rem .4rem; display: inline-flex; align-items: center; gap: .2rem; }
.uni-detail-monogram { display: inline-flex; align-items: center; justify-content: center; min-width: 60px; height: 60px; padding: 0 .7rem; color: var(--vibedu-blue); font-size: 1.55rem; font-weight: 800; letter-spacing: .03em; }
.uni-rank { display: inline-block; font-size: .58rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #fff; background: var(--vibedu-blue); padding: .22rem .5rem; margin-bottom: .5rem; }
.uni-name { font-size: 1rem; font-weight: 700; margin: 0 0 .2rem; line-height: 1.25; }
.uni-loc { font-size: .74rem; color: var(--vibedu-muted); margin: 0; }
.uni-card-body { padding: .9rem 1rem; }
.uni-stats { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: .4rem; margin-bottom: .85rem; }
.uni-stat { background: var(--vibedu-bg-soft); border: 1px solid var(--vibedu-border); padding: .45rem .25rem; text-align: center; }
.uni-stat span { display: block; font-size: .52rem; text-transform: uppercase; letter-spacing: .02em; color: var(--vibedu-muted); margin-bottom: .15rem; }
.uni-stat strong { font-size: .72rem; font-weight: 700; }
.uni-label { font-size: .6rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--vibedu-muted); margin-bottom: .45rem; }
.uni-card-foot { padding: 0 1rem 1rem; display: flex; gap: .45rem; }
.uni-card-foot .btn, .prog-foot .btn { font-size: .82rem; padding: .45rem .6rem; }

/* University logo marquee */
.uni-marquee-wrap { overflow: hidden; }
.uni-marquee { overflow: hidden; white-space: nowrap; padding: 12px 0; }
.uni-track { display: inline-flex; align-items: center; gap: 50px; will-change: transform; }
.uni-marquee.to-left .uni-track { animation: marqLeft 60s linear infinite; }
.uni-marquee.to-right .uni-track { animation: marqRight 55s linear infinite; }
.uni-track img { height: 44px; width: auto; max-width: 140px; object-fit: contain; filter: grayscale(100%); opacity: .6; transition: filter .3s, opacity .3s; }
.uni-track img:hover { filter: none; opacity: 1; }
@keyframes marqLeft { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes marqRight { from { transform: translateX(-50%); } to { transform: translateX(0); } }

/* ---------- University detail page ---------- */
.uni-detail-header { background: linear-gradient(135deg, var(--vibedu-blue) 0%, var(--vibedu-blue-dark) 100%); padding: 2.2rem 0; }
.uni-detail-header h1 { font-size: 1.9rem; }
.uni-breadcrumb { font-size: .82rem; color: rgba(255,255,255,.7); }
.uni-breadcrumb a { color: rgba(255,255,255,.85); }
.uni-breadcrumb a:hover { color: #fff; }
.uni-breadcrumb span { margin: 0 .35rem; opacity: .6; }
.uni-detail-logo { background: #fff; padding: .7rem 1rem; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; align-self: flex-start; }
.uni-detail-logo img { max-height: 60px; max-width: 150px; width: auto; }
.uni-facts { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.uni-facts > div { background: var(--vibedu-bg-soft); border: 1px solid var(--vibedu-border); padding: .7rem .9rem; }
.uni-facts span { display: block; font-size: .66rem; text-transform: uppercase; letter-spacing: .03em; color: var(--vibedu-muted); margin-bottom: .15rem; }
.uni-facts strong { font-size: .92rem; }
.uni-why { padding-left: 1.1rem; margin-bottom: 0; }
.uni-why li { margin-bottom: .4rem; }
.uni-sticky-form { position: sticky; top: 90px; }

/* ---------- Program cards ---------- */
.prog-card { background: #fff; }
.prog-head { padding: 1.2rem 1.2rem .8rem; border-bottom: 1px solid var(--vibedu-border); }
.prog-icon { width: 46px; height: 46px; background: var(--vibedu-blue-light); color: var(--vibedu-blue); display: inline-flex; align-items: center; justify-content: center; font-size: 1.4rem; flex-shrink: 0; }
.prog-icon-lg { width: 64px; height: 64px; font-size: 2rem; background: rgba(255,255,255,.18); color: #fff; }
.prog-level { font-size: .6rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--vibedu-blue-dark); background: var(--vibedu-blue-light); padding: .25rem .55rem; }
.prog-name { font-size: 1.05rem; font-weight: 700; margin: 0 0 .15rem; line-height: 1.25; }
.prog-disc { font-size: .74rem; color: var(--vibedu-muted); margin: 0; }
.prog-body { padding: 1rem 1.2rem; }
.prog-tagline { font-size: .8rem; color: var(--vibedu-muted); margin-bottom: .9rem; line-height: 1.4; }
.prog-stats { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; margin-bottom: .85rem; }
.prog-stat { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: .45rem; align-items: center; }
.prog-stat i { grid-row: 1 / 3; color: var(--vibedu-blue); font-size: 1rem; }
.prog-stat span { font-size: .58rem; text-transform: uppercase; letter-spacing: .03em; color: var(--vibedu-muted); }
.prog-stat strong { font-size: .78rem; font-weight: 700; line-height: 1.1; }
.prog-countries { font-size: .72rem; color: var(--vibedu-muted); }
.prog-countries > span { margin-right: .35rem; }
.prog-countries .flag-img { margin-right: .2rem; }
.prog-foot { padding: 0 1.2rem 1.2rem; display: flex; gap: .5rem; margin-top: auto; }
.prog-country-link { display: flex; align-items: center; gap: .5rem; padding: .55rem .7rem; border: 1px solid var(--vibedu-border); background: var(--vibedu-bg-soft); color: var(--vibedu-text); font-weight: 600; font-size: .85rem; text-decoration: none; }
.prog-country-link:hover { border-color: var(--vibedu-blue); color: var(--vibedu-blue); }

/* ---------- Destination page ---------- */
.dest-banner { position: relative; min-height: 360px; display: flex; align-items: center; overflow: hidden; background: var(--vibedu-blue-dark); }
.dest-banner-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.dest-banner-overlay { position: absolute; inset: 0; z-index: 1; background: linear-gradient(95deg, rgba(0,52,105,.94) 0%, rgba(0,75,150,.72) 55%, rgba(0,91,170,.45) 100%); }
.dest-banner-content { position: relative; z-index: 2; padding-top: 3rem; padding-bottom: 3rem; color: #fff; }
.dest-banner-content h1 { font-size: 2.4rem; text-shadow: 0 1px 10px rgba(0,30,70,.4); }
.dest-banner-content .lead { color: #eaf2fb; }
a.dest-chip { text-decoration: none; }
a.dest-chip:hover { border-color: var(--vibedu-blue); color: var(--vibedu-blue); background: var(--vibedu-blue-light); }
.btn-whatsapp { background: var(--vibedu-green); color: #fff; font-weight: 600; box-shadow: 0 3px 10px rgba(37,211,102,.3); transition: transform .15s ease, box-shadow .15s ease, background .15s ease; }
.btn-whatsapp:hover { background: #1fb855; color: #fff; transform: translateY(-2px); box-shadow: 0 8px 18px rgba(37,211,102,.45); }

/* Scholarship cards (destination pages) */
.schol-item { display: flex; flex-direction: column; }
.schol-amount { background: var(--vibedu-amber); color: #1a1a1a; font-weight: 700; font-size: .64rem; padding: .22rem .5rem; white-space: nowrap; text-transform: uppercase; letter-spacing: .02em; }

/* ---------- Scholarship cards ---------- */
.schol-card { background: #fff; }
.schol-card-top { background: linear-gradient(135deg, var(--vibedu-blue) 0%, var(--vibedu-blue-dark) 100%); color: #fff; padding: .85rem 1.1rem; display: flex; justify-content: space-between; align-items: center; gap: .5rem; }
.schol-badge { font-size: .57rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; background: rgba(255,255,255,.22); padding: .25rem .55rem; white-space: nowrap; }
.schol-amount-big { font-size: 1rem; font-weight: 800; text-align: right; line-height: 1.1; }
.schol-card-body { padding: 1rem 1.1rem; }
.schol-name { font-size: 1.02rem; font-weight: 700; margin: 0 0 .25rem; line-height: 1.3; }
.schol-provider { font-size: .76rem; color: var(--vibedu-muted); margin: 0 0 .6rem; }
.schol-meta { display: flex; flex-wrap: wrap; gap: .25rem .9rem; font-size: .72rem; color: var(--vibedu-muted); margin-bottom: .65rem; }
.schol-meta i { color: var(--vibedu-blue); }
.schol-covers { font-size: .8rem; margin-bottom: .5rem; }
.schol-deadline { font-size: .76rem; color: var(--vibedu-muted); }
.schol-deadline i { color: var(--vibedu-blue); }
.schol-card-foot { padding: 0 1.1rem 1.1rem; display: flex; gap: .45rem; margin-top: auto; }
.schol-card-foot .btn { font-size: .82rem; padding: .45rem .6rem; }

/* ---------- FAQ (tabbed) ---------- */
.faq-tabs { display: flex; gap: .5rem; list-style: none; padding: 0 0 .25rem; margin: 0 0 1.6rem; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
.faq-tabs::-webkit-scrollbar { display: none; }
.faq-tabs li { flex: 0 0 auto; }
@media (min-width: 768px) { .faq-tabs { flex-wrap: wrap; justify-content: center; overflow: visible; } }
.faq-tab { white-space: nowrap; border: 2px solid var(--vibedu-border); background: #fff; color: var(--vibedu-text); font-size: .82rem; font-weight: 600; padding: .5rem .9rem; display: inline-flex; align-items: center; gap: .4rem; cursor: pointer; transition: background .15s, color .15s, border-color .15s; }
.faq-tab i { color: var(--vibedu-blue); }
.faq-tab:hover { border-color: var(--vibedu-blue); }
.faq-tab.active { background: var(--vibedu-blue); border-color: var(--vibedu-blue); color: #fff; }
.faq-tab.active i { color: #fff; }
.faq-content { max-width: 820px; }
.faq-content .accordion-item { border: 2px solid var(--vibedu-border); }
.faq-content .accordion-button { font-weight: 600; font-size: .92rem; }
.faq-content .accordion-button:not(.collapsed) { background: var(--vibedu-blue-light); color: var(--vibedu-blue-dark); box-shadow: none; }
.faq-content .accordion-button:focus { box-shadow: none; border-color: var(--vibedu-blue); }
.faq-content .accordion-body { font-size: .88rem; line-height: 1.6; }

/* ---------- Testimonials ---------- */
.google-card { display: inline-flex; align-items: center; gap: .75rem; background: #fff; border: 2px solid var(--vibedu-border); padding: .7rem 1.4rem; }
.google-logo { display: block; }
.google-line { display: flex; align-items: center; gap: .4rem; line-height: 1; }
.google-line strong { font-size: 1.3rem; color: var(--vibedu-text); }
.google-stars { color: #fbbc04; letter-spacing: 1px; font-size: .95rem; }
.google-sub { font-size: .76rem; color: var(--vibedu-muted); }

.testi-carousel { position: relative; }
.testi-track { display: flex; gap: 1.25rem; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding: .25rem; }
.testi-track::-webkit-scrollbar { display: none; }
.testi-card { scroll-snap-align: start; flex: 0 0 100%; background: #fff; border: 2px solid var(--vibedu-border); padding: 1.5rem; display: flex; flex-direction: column; box-shadow: 0 3px 14px rgba(16,40,80,.06); }
@media (min-width: 576px) { .testi-card { flex: 0 0 calc(50% - .625rem); } }
@media (min-width: 992px) { .testi-card { flex: 0 0 calc(33.333% - .834rem); } }
.testi-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: .9rem; }
.testi-stars { color: #fbbc04; letter-spacing: 2px; font-size: .95rem; }
.testi-verified { display: inline-flex; align-items: center; gap: .25rem; font-size: .7rem; font-weight: 600; color: #1a8c4a; background: #e8f7ee; padding: .2rem .5rem; }
.testi-quote { font-size: .9rem; line-height: 1.65; color: var(--vibedu-text); margin-bottom: 1.4rem; flex-grow: 1; }
.testi-quote::before { content: '\201C'; color: var(--vibedu-blue); font-size: 1.6rem; font-weight: 700; line-height: 0; vertical-align: -.35em; margin-right: .1rem; }
.testi-person { display: flex; align-items: center; gap: .8rem; margin-top: auto; }
.testi-avatar { width: 46px; height: 46px; border-radius: 50%; background: linear-gradient(135deg, var(--vibedu-blue), var(--vibedu-blue-dark)); color: #fff; font-weight: 700; font-size: .92rem; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.testi-who { display: flex; flex-direction: column; }
.testi-name { font-weight: 700; font-size: .9rem; color: var(--vibedu-text); }
.testi-meta { font-size: .74rem; color: var(--vibedu-muted); }
.testi-arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 42px; height: 42px; border-radius: 50%; border: 2px solid var(--vibedu-border); background: #fff; color: var(--vibedu-blue); display: none; align-items: center; justify-content: center; font-size: 1.2rem; cursor: pointer; box-shadow: 0 4px 14px rgba(0,0,0,.12); transition: background .15s, color .15s, border-color .15s; }
.testi-arrow:hover { background: var(--vibedu-blue); color: #fff; border-color: var(--vibedu-blue); }
.testi-prev { left: -20px; }
.testi-next { right: -20px; }
@media (min-width: 992px) { .testi-arrow { display: inline-flex; } }

/* ---------- Pre-footer explore band ---------- */
.pre-footer { background: var(--vibedu-bg-soft); border-top: 1px solid var(--vibedu-border); padding: 3rem 0; }
.pre-footer-title { font-size: .95rem; font-weight: 700; margin-bottom: .9rem; }
.pre-footer-links { display: flex; flex-direction: column; gap: .4rem; }
.pre-footer-links a { color: var(--vibedu-muted); font-size: .88rem; text-decoration: none; display: flex; align-items: center; }
.pre-footer-links a:hover { color: var(--vibedu-blue); }

/* ---------- Mobile polish ---------- */
@media (max-width: 991px) {
    .uni-sticky-form { position: static; }
}
@media (max-width: 768px) {
    .hero h1 { font-size: 1.75rem; }
    .hero .lead { font-size: 1rem; }
    .uni-track img { height: 34px; }
    .uni-track { gap: 32px; }
    .uni-detail-header h1 { font-size: 1.5rem; }
    .dest-banner { min-height: 0; }
    .dest-banner-content { padding-top: 1.4rem; padding-bottom: 1.4rem; }
    .dest-banner-content h1 { font-size: 1.5rem; }
    .dest-banner-content .lead { font-size: .92rem; margin-bottom: .9rem !important; }
    .dest-banner-content .btn-lg { padding: .5rem 1.1rem; font-size: .95rem; }
    /* darker behind the text (top), lighter below so the photo shows through */
    .dest-banner-overlay { background: linear-gradient(180deg, rgba(0,42,88,.9) 0%, rgba(0,52,105,.68) 60%, rgba(0,60,120,.45) 100%); }
    .stat-num { line-height: 1.05; }
    .trust-icon { width: 48px; height: 48px; font-size: 1.25rem; }
}
@media (max-width: 480px) {
    .uni-track img { height: 28px; }
    .uni-facts { grid-template-columns: 1fr 1fr; }
    .uni-card-foot { flex-direction: column; }
    .dest-stats { gap: .5rem .7rem; }
}

/* Destination flag cards (used on the all-destinations listing page) */
.dest-flag-wrap { height: 130px; overflow: hidden; border-bottom: 3px solid var(--vibedu-blue); }
.dest-flag { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .25s ease; }
.destination-card:hover .dest-flag { transform: scale(1.05); }
.feature-icon {
    width: 54px; height: 54px; border-radius: 12px;
    background: var(--vibedu-blue-light); color: var(--vibedu-blue);
    display: flex; align-items: center; justify-content: center; font-size: 1.5rem;
}

/* ---------- Stats / Trust band ---------- */
.stat-num { font-size: clamp(1.7rem, 4.5vw, 2.5rem); font-weight: 800; color: var(--vibedu-blue); line-height: 1.1; }
.stat-label { color: var(--vibedu-muted); font-weight: 500; font-size: .95rem; }
.trust-band { background: #fff; border-bottom: 1px solid var(--vibedu-border); }
.trust-icon {
    width: 56px; height: 56px; margin: 0 auto .6rem; border-radius: 50%;
    background: var(--vibedu-blue-light); color: var(--vibedu-blue);
    display: flex; align-items: center; justify-content: center; font-size: 1.5rem;
}

/* ---------- Process steps (8 Easy Steps) ---------- */
.step-card { padding: 1.6rem 1.2rem; text-align: center; }
.step-icon { position: relative; width: 70px; height: 70px; margin: 0 auto 1rem; border-radius: 50%; background: var(--vibedu-blue-light); color: var(--vibedu-blue); display: flex; align-items: center; justify-content: center; font-size: 1.8rem; transition: background .2s, color .2s; }
.step-card:hover .step-icon { background: var(--vibedu-blue); color: #fff; }
.step-num-badge { position: absolute; top: -4px; right: -4px; width: 26px; height: 26px; border-radius: 50%; background: var(--vibedu-blue); color: #fff; font-size: .68rem; font-weight: 700; display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 6px rgba(0,0,0,.2); }
.step-card:hover .step-num-badge { background: var(--vibedu-amber); color: #1a1a1a; }
.step-title { font-size: 1rem; font-weight: 700; margin-bottom: .4rem; }
.step-desc { font-size: .82rem; color: var(--vibedu-muted); margin-bottom: 0; line-height: 1.5; }

/* ---------- CTA band ---------- */
.cta-band { background: linear-gradient(135deg, var(--vibedu-blue) 0%, var(--vibedu-blue-dark) 100%); color: #fff; }

/* ---------- Inner page header ---------- */
.page-header { background: linear-gradient(135deg, var(--vibedu-blue) 0%, var(--vibedu-blue-dark) 100%); padding: 3rem 0; }
.page-header h1 { font-size: 2.1rem; }

/* ---------- FAQ ---------- */
.accordion-button:not(.collapsed) { background: var(--vibedu-blue-light); color: var(--vibedu-blue-dark); font-weight: 600; }
.accordion-button:focus { box-shadow: none; }

/* ---------- Footer ---------- */
.footer { background: #0e1726; color: #c4ccd6; }
.footer h5 { color: #fff; font-size: 1rem; margin-bottom: 1rem; }
.footer a { color: #c4ccd6; }
.footer a:hover { color: #fff; text-decoration: none; }
.footer .branch { border-left: 3px solid var(--vibedu-blue); padding-left: .75rem; }
.footer-bottom { background: #0a111c; color: #8c97a6; font-size: .85rem; }
.footer-contact li { margin-bottom: .4rem; font-size: .9rem; }
.footer-contact i { color: var(--vibedu-amber); width: 18px; }
.footer-social { display: flex; gap: .5rem; }
.footer-social a { width: 36px; height: 36px; border: 1px solid rgba(255,255,255,.18); display: inline-flex; align-items: center; justify-content: center; color: #c4ccd6; font-size: 1rem; transition: background .15s, color .15s, border-color .15s; }
.footer-social a:hover { background: var(--vibedu-blue); border-color: var(--vibedu-blue); color: #fff; }
.footer-links li { margin-bottom: .5rem; }
.footer-links a { font-size: .88rem; }
.footer-more { color: var(--vibedu-amber) !important; font-weight: 600; font-size: .82rem; }
.footer-branches { border-top: 1px solid rgba(255,255,255,.1); }
.footer-branches h5 i { color: var(--vibedu-amber); }
.footer-branch { border-left: 3px solid var(--vibedu-blue); padding-left: .75rem; height: 100%; }
.footer-branch strong { display: block; margin-bottom: .25rem; font-size: .92rem; }
.footer-branch p { font-size: .8rem; line-height: 1.5; margin: 0; color: #9aa4b2; }
.branch-main { display: inline-block; background: var(--vibedu-amber); color: #1a1a1a; font-size: .6rem; font-weight: 700; padding: .1rem .35rem; margin-left: .4rem; text-transform: uppercase; vertical-align: middle; }
.footer-bottom-links a { color: #8c97a6; }
.footer-bottom-links a:hover { color: #fff; text-decoration: none; }
.footer-bottom-links .divider { margin: 0 .5rem; }

/* ---------- Contact page ---------- */
.contact-method { display: flex; align-items: center; gap: 1rem; background: #fff; border: 2px solid var(--vibedu-border); padding: 1.15rem 1.25rem; height: 100%; transition: border-color .15s, box-shadow .15s; }
.contact-method:hover { border-color: var(--vibedu-blue); box-shadow: 0 8px 22px rgba(16,40,80,.10); text-decoration: none; }
.contact-method .cm-icon { width: 52px; height: 52px; flex-shrink: 0; background: var(--vibedu-blue-light); color: var(--vibedu-blue); display: flex; align-items: center; justify-content: center; font-size: 1.45rem; }
.contact-method .cm-label { font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; color: var(--vibedu-muted); margin-bottom: .1rem; }
.contact-method .cm-value { font-weight: 700; color: var(--vibedu-text); font-size: 1rem; line-height: 1.3; }
.contact-method:hover .cm-value { color: var(--vibedu-blue); }
.contact-details { list-style: none; padding: 0; margin: 0; }
.contact-details li { display: flex; gap: .85rem; margin-bottom: 1.1rem; }
.contact-details > li > i { color: var(--vibedu-blue); font-size: 1.15rem; margin-top: .15rem; }
.contact-social a { width: 40px; height: 40px; border: 1px solid var(--vibedu-border); display: inline-flex; align-items: center; justify-content: center; color: var(--vibedu-blue); font-size: 1.1rem; margin-right: .4rem; transition: background .15s, color .15s, border-color .15s; }
.contact-social a:hover { background: var(--vibedu-blue); color: #fff; border-color: var(--vibedu-blue); text-decoration: none; }
.branch-card { background: #fff; border: 2px solid var(--vibedu-border); padding: 1.4rem; height: 100%; display: flex; flex-direction: column; transition: border-color .15s, box-shadow .15s; }
.branch-card:hover { border-color: var(--vibedu-blue); box-shadow: 0 10px 26px rgba(16,40,80,.10); }
.branch-card h3 { font-size: 1.05rem; font-weight: 700; margin-bottom: .6rem; }
.branch-card .badge-main { background: var(--vibedu-amber); color: #1a1a1a; font-size: .58rem; font-weight: 700; padding: .14rem .42rem; text-transform: uppercase; margin-left: .45rem; vertical-align: middle; }
.branch-card .b-addr { font-size: .85rem; color: var(--vibedu-muted); line-height: 1.6; flex-grow: 1; }
.contact-map { width: 100%; height: 420px; border: 0; display: block; }

/* ---------- Test Preparation ---------- */
.tp-banner { text-align: left; }

/* ---------- Section banner images (decorative bg + brand-blue overlay) ---------- */
.page-header[class*="bnr-"] { background-size: cover; background-position: center; background-repeat: no-repeat; }
.page-header[class*="bnr-"] h1 { text-shadow: 0 1px 10px rgba(0,30,70,.45); }
.page-header[class*="bnr-"] .tp-hero,
.page-header[class*="bnr-"] p { text-shadow: 0 1px 6px rgba(0,30,70,.3); }
.page-header.bnr-testprep { background-image: linear-gradient(120deg, rgba(0,52,105,.94) 0%, rgba(0,75,150,.80) 55%, rgba(0,91,170,.60) 100%), url('https://images.unsplash.com/photo-1456513080510-7bf3a84b82f8?ixlib=rb-4.0.3&auto=format&fit=crop&w=1600&q=70'); }
.page-header.bnr-services { background-image: linear-gradient(120deg, rgba(0,52,105,.94) 0%, rgba(0,75,150,.80) 55%, rgba(0,91,170,.60) 100%), url('https://images.unsplash.com/photo-1521791136064-7986c2920216?ixlib=rb-4.0.3&auto=format&fit=crop&w=1600&q=70'); }
.page-header.bnr-scholarships { background-image: linear-gradient(120deg, rgba(0,52,105,.94) 0%, rgba(0,75,150,.80) 55%, rgba(0,91,170,.60) 100%), url('https://images.unsplash.com/photo-1627556704302-624286467c65?ixlib=rb-4.0.3&auto=format&fit=crop&w=1600&q=70'); }
.page-header.bnr-apply { background-image: linear-gradient(120deg, rgba(0,52,105,.94) 0%, rgba(0,75,150,.80) 55%, rgba(0,91,170,.60) 100%), url('https://images.unsplash.com/photo-1455390582262-044cdead277a?ixlib=rb-4.0.3&auto=format&fit=crop&w=1600&q=70'); }
.page-header.bnr-careers { background-image: linear-gradient(120deg, rgba(0,52,105,.94) 0%, rgba(0,75,150,.80) 55%, rgba(0,91,170,.60) 100%), url('https://images.unsplash.com/photo-1521737604893-d14cc237f11d?ixlib=rb-4.0.3&auto=format&fit=crop&w=1600&q=70'); }
.tp-cat-badge { display: inline-block; background: rgba(255,255,255,.15); color: #fff; font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; padding: .3rem .7rem; }
.tp-fullname { font-weight: 400; font-size: 1.1rem; opacity: .9; }
.tp-tagline { color: var(--vibedu-amber); font-weight: 600; font-size: 1.05rem; }
.tp-hero { color: #dce8f5; max-width: 760px; font-size: .95rem; line-height: 1.7; }
.tp-block { margin-bottom: 2.6rem; scroll-margin-top: 90px; }
.tp-section { background: #fff; border: 2px solid var(--vibedu-border); padding: 1.1rem 1.2rem; }
.tp-section h3 { font-size: 1rem; font-weight: 700; color: var(--vibedu-blue); margin-bottom: .5rem; }
.tp-section-meta { display: flex; flex-wrap: wrap; gap: .9rem; margin-bottom: .6rem; }
.tp-section-meta span { font-size: .76rem; color: var(--vibedu-muted); font-weight: 600; }
.tp-section p { font-size: .85rem; color: var(--vibedu-muted); line-height: 1.6; margin: 0; }
.score-table { width: 100%; border-collapse: collapse; font-size: .87rem; }
.score-table th { background: var(--vibedu-blue); color: #fff; text-align: left; padding: .6rem .8rem; font-weight: 600; }
.score-table td { padding: .6rem .8rem; border-bottom: 1px solid var(--vibedu-border); color: var(--vibedu-muted); vertical-align: top; }
.score-table tbody tr:nth-child(even) { background: var(--vibedu-bg-soft); }
.tp-callout { background: var(--vibedu-blue-light); border-left: 4px solid var(--vibedu-blue); padding: 1rem 1.2rem; }
.tp-callout strong { color: var(--vibedu-blue-dark); }
.tp-callout p { font-size: .87rem; color: var(--vibedu-muted); }
.tp-mock { background: linear-gradient(135deg, var(--vibedu-blue) 0%, var(--vibedu-blue-dark) 100%); color: #fff; padding: 1.5rem; display: flex; align-items: center; justify-content: space-between; gap: 1.2rem; flex-wrap: wrap; margin-bottom: 2.6rem; scroll-margin-top: 90px; }
.tp-mock h2 { color: #fff; }
.tp-mock p { color: #dce8f5; font-size: .88rem; max-width: 540px; }
.tp-stat { background: #fff; border: 2px solid var(--vibedu-border); padding: 1.1rem .75rem; text-align: center; height: 100%; }
.tp-stat-num { display: block; font-size: 1.5rem; font-weight: 800; color: var(--vibedu-blue); line-height: 1.1; }
.tp-stat-label { display: block; font-size: .75rem; color: var(--vibedu-muted); margin-top: .25rem; }
.tp-countries { display: flex; flex-wrap: wrap; gap: .6rem; }
.tp-country { display: inline-flex; align-items: center; gap: .45rem; background: #fff; border: 2px solid var(--vibedu-border); padding: .4rem .75rem; font-size: .82rem; font-weight: 600; color: var(--vibedu-text); transition: border-color .15s, color .15s; }
a.tp-country:hover { border-color: var(--vibedu-blue); color: var(--vibedu-blue); text-decoration: none; }
.tp-uni { background: #fff; border: 2px solid var(--vibedu-border); padding: .65rem .9rem; font-size: .87rem; font-weight: 500; }
.tp-other-card { display: flex; flex-direction: column; gap: .25rem; background: #fff; border: 2px solid var(--vibedu-border); padding: 1.1rem; height: 100%; transition: border-color .15s, box-shadow .15s; }
.tp-other-card:hover { border-color: var(--vibedu-blue); box-shadow: 0 10px 24px rgba(16,40,80,.10); text-decoration: none; }
.tp-other-name { font-weight: 800; font-size: 1.05rem; color: var(--vibedu-blue); }
.tp-other-sub { font-size: .74rem; color: var(--vibedu-muted); line-height: 1.4; flex-grow: 1; }
.tp-other-link { font-size: .78rem; font-weight: 600; color: var(--vibedu-text); margin-top: .35rem; }
.tp-other-card:hover .tp-other-link { color: var(--vibedu-blue); }
.tp-dest-card { display: flex; flex-direction: column; align-items: center; text-align: center; gap: .4rem; background: #fff; border: 2px solid var(--vibedu-border); padding: 1rem .5rem; height: 100%; font-size: .8rem; font-weight: 600; color: var(--vibedu-text); transition: border-color .15s, box-shadow .15s; }
.tp-dest-card:hover { border-color: var(--vibedu-blue); box-shadow: 0 8px 20px rgba(16,40,80,.10); color: var(--vibedu-blue); text-decoration: none; }
.tp-dest-card img { box-shadow: 0 1px 4px rgba(0,0,0,.15); }

/* ---------- Services ---------- */
.svc-banner-icon { width: 56px; height: 56px; background: rgba(255,255,255,.15); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 1.6rem; }
.svc-feature { background: #fff; border: 2px solid var(--vibedu-border); padding: 1.1rem 1.2rem; }
.svc-feature h3 { font-size: 1rem; font-weight: 700; color: var(--vibedu-blue); margin-bottom: .4rem; }
.svc-feature p { font-size: .86rem; color: var(--vibedu-muted); line-height: 1.6; margin: 0; }
.svc-why { display: flex; gap: .7rem; background: #fff; border: 2px solid var(--vibedu-border); padding: 1rem 1.1rem; }
.svc-why > i { color: var(--vibedu-green); font-size: 1.2rem; flex-shrink: 0; margin-top: .1rem; }
.svc-why strong { display: block; font-size: .92rem; color: var(--vibedu-text); margin-bottom: .15rem; }
.svc-why p { font-size: .82rem; color: var(--vibedu-muted); line-height: 1.55; margin: 0; }
.svc-other-icon { width: 46px; height: 46px; background: var(--vibedu-blue-light); color: var(--vibedu-blue); display: inline-flex; align-items: center; justify-content: center; font-size: 1.3rem; margin-bottom: .5rem; }
.svc-process { display: flex; flex-direction: column; gap: 0; }
.svc-step { display: flex; gap: 1rem; padding-bottom: 1.3rem; position: relative; }
.svc-step:not(:last-child)::before { content: ''; position: absolute; left: 18px; top: 38px; bottom: 0; width: 2px; background: var(--vibedu-border); }
.svc-step-num { width: 38px; height: 38px; flex-shrink: 0; background: var(--vibedu-blue); color: #fff; font-weight: 700; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: .95rem; z-index: 1; }
.svc-step strong { display: block; font-size: .95rem; color: var(--vibedu-text); margin: .35rem 0 .15rem; }
.svc-step p { font-size: .85rem; color: var(--vibedu-muted); line-height: 1.55; margin: 0; }

/* Education loan */
.loan-bank { background: #fff; border: 2px solid var(--vibedu-border); border-left: 5px solid var(--vibedu-blue); padding: 1.3rem 1.4rem; }
.loan-bank-name { font-size: 1.1rem; font-weight: 800; color: var(--vibedu-blue); margin-bottom: .4rem; }
.loan-bank-desc { font-size: .87rem; color: var(--vibedu-muted); line-height: 1.6; margin-bottom: 1rem; }
.loan-logo-card { background: #fff; border: 2px solid var(--vibedu-border); padding: 1.1rem .9rem; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: space-between; gap: .9rem; transition: border-color .15s, box-shadow .15s; }
.loan-logo-card:hover { border-color: var(--vibedu-blue); box-shadow: 0 8px 22px rgba(16,40,80,.10); }
.loan-logo-card img { max-width: 100%; max-height: 46px; width: auto; height: auto; object-fit: contain; }

/* ---------- Adi Dravidar + highlighted menu link ---------- */
.mega-link-hot { font-weight: 700; color: var(--vibedu-blue-dark); }
.mega-badge { display: inline-block; background: var(--vibedu-amber); color: #1a1a1a; font-size: .56rem; font-weight: 700; padding: .08rem .35rem; margin-left: .4rem; text-transform: uppercase; vertical-align: middle; letter-spacing: .02em; }
.adi-num { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; background: var(--vibedu-blue); color: #fff; font-size: .78rem; font-weight: 700; border-radius: 50%; margin-right: .35rem; flex-shrink: 0; }

/* ---------- Careers ---------- */
.job-card { background: #fff; border: 2px solid var(--vibedu-border); height: 100%; display: flex; flex-direction: column; overflow: hidden; transition: border-color .15s, box-shadow .15s, transform .15s; }
.job-card:hover { border-color: var(--vibedu-blue); box-shadow: 0 14px 32px rgba(16,40,80,.12); transform: translateY(-3px); }
.job-card-head { background: linear-gradient(135deg, var(--vibedu-blue) 0%, var(--vibedu-blue-dark) 100%); color: #fff; padding: 1.6rem; display: flex; align-items: center; justify-content: center; }
.job-card-head i { font-size: 2.4rem; }
.job-card-body { padding: 1.3rem 1.4rem; display: flex; flex-direction: column; flex-grow: 1; }
.job-title { font-size: 1.15rem; font-weight: 700; color: var(--vibedu-blue); margin-bottom: .45rem; }
.job-short { font-size: .88rem; color: var(--vibedu-muted); line-height: 1.55; margin-bottom: 1rem; }
.job-tags { display: flex; flex-wrap: wrap; gap: .5rem 1.1rem; margin-bottom: 1.2rem; }
.job-tags span { font-size: .8rem; color: var(--vibedu-muted); display: inline-flex; align-items: center; gap: .35rem; }
.job-tags i { color: var(--vibedu-blue); }
.job-tags-light span { color: #dce8f5; }
.job-tags-light i { color: var(--vibedu-amber); }
.job-card-body .btn { margin-top: auto; align-self: flex-start; }
.career-apply { max-width: 720px; background: var(--vibedu-bg-soft); border: 2px solid var(--vibedu-border); padding: 2.2rem; }
.career-apply-contacts { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem 2rem; }
.career-apply-contacts a { font-weight: 600; color: var(--vibedu-blue); display: inline-flex; align-items: center; gap: .45rem; }
.career-apply-contacts a:hover { color: var(--vibedu-blue-dark); text-decoration: none; }
.career-email { font-weight: 700; }
#apply { scroll-margin-top: 90px; }

/* ---------- Apply / SOP Maker ---------- */
.sop-maker { background: linear-gradient(135deg, #eaf2fb 0%, #f6f8fb 100%); border: 2px solid var(--vibedu-blue); padding: 1.8rem; margin-top: 1.5rem; }
.sop-maker-eyebrow { display: inline-block; background: var(--vibedu-blue); color: #fff; font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; padding: .25rem .6rem; margin-bottom: .7rem; }
.sop-maker-eyebrow i { color: var(--vibedu-amber); }
.sop-maker-head h2 { color: var(--vibedu-blue-dark); }
.sop-maker-head p { color: var(--vibedu-muted); max-width: 640px; font-size: .92rem; }
.sop-feature { display: flex; gap: .7rem; background: #fff; border: 1px solid var(--vibedu-border); padding: .85rem 1rem; height: 100%; }
.sop-feature > i { color: var(--vibedu-blue); font-size: 1.3rem; flex-shrink: 0; margin-top: .1rem; }
.sop-feature strong { display: block; font-size: .9rem; color: var(--vibedu-text); margin-bottom: .1rem; }
.sop-feature p { font-size: .8rem; color: var(--vibedu-muted); margin: 0; line-height: 1.5; }

/* ---------- Auth / Student portal ---------- */
.auth-card { max-width: 440px; background: #fff; border: 2px solid var(--vibedu-border); padding: 2.2rem; box-shadow: 0 8px 30px rgba(16,40,80,.07); }
.auth-card .form-label { font-size: .85rem; font-weight: 600; }

/* Save (wishlist) button on cards */
.save-btn { display: inline-flex; align-items: center; justify-content: center; width: 44px; min-width: 44px; border: 2px solid var(--vibedu-border); background: #fff; color: var(--vibedu-muted); cursor: pointer; transition: background .15s, color .15s, border-color .15s; text-decoration: none; }
.save-btn:hover { border-color: var(--vibedu-blue); color: var(--vibedu-blue); text-decoration: none; }
.save-btn.saved { background: var(--vibedu-blue); border-color: var(--vibedu-blue); color: #fff; }
.save-btn i { font-size: 1.05rem; }

/* Header wishlist heart + count */
.nav-heart { position: relative; }
.nav-heart i { font-size: 1.15rem; }
.nav-heart .wishlist-count { position: absolute; top: 0; right: -4px; background: var(--vibedu-amber); color: #1a1a1a; font-size: .58rem; font-weight: 700; min-width: 16px; height: 16px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; padding: 0 4px; line-height: 1; }

/* Dashboard wishlist list */
.wl-group-title { font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--vibedu-muted); margin: .5rem 0; }
.wl-group-title i { color: var(--vibedu-blue); }
.wl-list { display: flex; flex-direction: column; gap: .5rem; }
.wl-item { display: flex; align-items: center; justify-content: space-between; gap: .75rem; border: 1px solid var(--vibedu-border); padding: .55rem .85rem; }
.wl-name { font-weight: 600; font-size: .9rem; color: var(--vibedu-text); text-decoration: none; }
.wl-name:hover { color: var(--vibedu-blue); }
.wl-item .save-btn { width: 38px; min-width: 38px; height: 38px; }

/* ---------- UK universities directory (compact cards) ---------- */
.ukuni-card { background: #fff; border: 2px solid var(--vibedu-border); padding: 1rem; display: flex; flex-direction: column; transition: border-color .15s, box-shadow .15s; }
.ukuni-card:hover { border-color: var(--vibedu-blue); box-shadow: 0 8px 20px rgba(16,40,80,.08); }
.ukuni-russell { border-left: 4px solid var(--vibedu-amber); }
.ukuni-badge { display: inline-flex; align-items: center; gap: .25rem; align-self: flex-start; background: var(--vibedu-amber); color: #1a1a1a; font-size: .58rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; padding: .14rem .45rem; margin-bottom: .55rem; }
.ukuni-name { font-size: .9rem; font-weight: 600; color: var(--vibedu-text); line-height: 1.35; margin-bottom: .85rem; flex-grow: 1; }
.ukuni-actions { display: flex; gap: .4rem; align-items: stretch; }
.ukuni-actions .save-btn { width: 40px; min-width: 40px; }

/* ---------- Course Finder ---------- */
.cf-promo { background: linear-gradient(135deg, var(--vibedu-blue-light) 0%, #f6f8fb 100%); padding: 3rem 0; }
.cf-promo-inner { max-width: 760px; margin: 0 auto; }
.btn-cf { background: linear-gradient(135deg, var(--vibedu-blue), var(--vibedu-blue-dark)); color: #fff; font-weight: 700; font-size: 1.05rem; padding: .9rem 1.8rem; display: inline-flex; align-items: center; gap: .5rem; box-shadow: 0 6px 18px rgba(0,91,170,.3); transition: transform .15s, box-shadow .15s; }
.btn-cf:hover { color: #fff; transform: translateY(-3px); box-shadow: 0 12px 28px rgba(0,91,170,.42); }
.btn-cf-amber { background: linear-gradient(135deg, #ffc233, var(--vibedu-amber)); color: #1a1a1a; box-shadow: 0 6px 18px rgba(255,179,0,.35); }
.btn-cf-amber:hover { color: #1a1a1a; box-shadow: 0 12px 28px rgba(255,179,0,.5); }

.cf-filters { background: #fff; border: 2px solid var(--vibedu-border); padding: 1.1rem; position: sticky; top: 90px; }
.cf-filter-head { padding-bottom: .7rem; margin-bottom: .5rem; border-bottom: 1px solid var(--vibedu-border); }
.cf-filter-group { padding: .7rem 0; border-bottom: 1px solid var(--vibedu-border); }
.cf-filter-group:last-of-type { border-bottom: none; }
.cf-filter-title { display: block; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--vibedu-muted); margin-bottom: .5rem; }
.cf-check { display: flex; align-items: center; gap: .4rem; font-size: .85rem; margin-bottom: .35rem; cursor: pointer; color: var(--vibedu-text); }
.cf-check input { accent-color: var(--vibedu-blue); flex-shrink: 0; }
.cf-check em { color: var(--vibedu-muted); font-style: normal; font-size: .78rem; margin-left: auto; }
.cf-scroll { max-height: 220px; overflow-y: auto; }

.cf-card { background: #fff; border: 2px solid var(--vibedu-border); padding: 1.1rem; display: flex; flex-direction: column; transition: border-color .15s, box-shadow .15s; }
.cf-card:hover { border-color: var(--vibedu-blue); box-shadow: 0 8px 22px rgba(16,40,80,.10); }
.cf-card-top { display: flex; align-items: center; gap: .6rem; margin-bottom: .75rem; }
.cf-uni-logo { max-height: 34px; max-width: 60px; width: auto; object-fit: contain; flex-shrink: 0; }
.cf-uni-mono { width: 38px; height: 38px; flex-shrink: 0; background: var(--vibedu-blue-light); color: var(--vibedu-blue); font-weight: 800; font-size: .82rem; display: inline-flex; align-items: center; justify-content: center; }
.cf-uni-meta { display: flex; flex-direction: column; min-width: 0; }
.cf-uni-name { font-size: .82rem; font-weight: 700; color: var(--vibedu-text); line-height: 1.25; }
.cf-uni-loc { font-size: .72rem; color: var(--vibedu-muted); display: flex; align-items: center; gap: .3rem; }
.cf-course { font-size: 1rem; font-weight: 700; color: var(--vibedu-blue); line-height: 1.3; margin-bottom: .5rem; }
.cf-tags { display: flex; flex-wrap: wrap; gap: .35rem; margin-bottom: .7rem; }
.cf-level { font-size: .62rem; font-weight: 700; text-transform: uppercase; padding: .15rem .45rem; letter-spacing: .03em; }
.cf-level-masters { background: var(--vibedu-blue-light); color: var(--vibedu-blue-dark); }
.cf-level-bachelors { background: #e8f7ee; color: #1a8c4a; }
.cf-russell { font-size: .62rem; font-weight: 700; text-transform: uppercase; padding: .15rem .45rem; background: var(--vibedu-amber); color: #1a1a1a; }
.cf-facts { display: flex; flex-direction: column; gap: .25rem; font-size: .78rem; color: var(--vibedu-muted); margin-bottom: .9rem; flex-grow: 1; }
.cf-facts i { color: var(--vibedu-blue); width: 16px; }
.cf-actions { display: flex; gap: .4rem; align-items: stretch; }
.cf-actions .save-btn { width: 38px; min-width: 38px; }
.cf-empty { padding: 3rem 1rem; border: 2px dashed var(--vibedu-border); }

/* ---------- Search ---------- */
.search-hero-form { display: flex; gap: .5rem; max-width: 640px; }
.search-ac-wrap { position: relative; flex-grow: 1; }
.search-ac-menu { position: absolute; top: calc(100% + 4px); left: 0; right: 0; background: #fff; border: 1px solid var(--vibedu-border); box-shadow: 0 12px 34px rgba(16,40,80,.16); z-index: 60; max-height: 360px; overflow-y: auto; text-align: left; }
.search-ac-item { display: flex; align-items: center; gap: .6rem; padding: .55rem .8rem; border-bottom: 1px solid var(--vibedu-border); color: var(--vibedu-text); text-decoration: none; }
.search-ac-item:last-child { border-bottom: none; }
.search-ac-item:hover { background: var(--vibedu-blue-light); text-decoration: none; }
.search-ac-type { font-size: .58rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; color: var(--vibedu-blue); background: var(--vibedu-blue-light); padding: .18rem .4rem; flex-shrink: 0; min-width: 80px; text-align: center; }
.search-ac-text { display: flex; flex-direction: column; min-width: 0; }
.search-ac-label { font-size: .88rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.search-ac-sub { font-size: .75rem; color: var(--vibedu-muted); }
.search-ac-all { font-weight: 600; color: var(--vibedu-blue); justify-content: center; gap: .4rem; }

.search-pills { display: flex; flex-wrap: wrap; gap: .5rem; }
.search-pill { border: 2px solid var(--vibedu-border); background: #fff; color: var(--vibedu-text); font-size: .82rem; font-weight: 600; padding: .4rem .85rem; text-decoration: none; }
.search-pill:hover { border-color: var(--vibedu-blue); color: var(--vibedu-blue); text-decoration: none; }
.search-pill.active { background: var(--vibedu-blue); border-color: var(--vibedu-blue); color: #fff; }

.search-uni { display: flex; align-items: center; gap: .7rem; background: #fff; border: 2px solid var(--vibedu-border); padding: .85rem 1rem; height: 100%; text-decoration: none; transition: border-color .15s, box-shadow .15s; }
.search-uni:hover { border-color: var(--vibedu-blue); box-shadow: 0 8px 20px rgba(16,40,80,.08); text-decoration: none; }
.search-uni-logo { max-height: 34px; max-width: 54px; width: auto; object-fit: contain; flex-shrink: 0; }
.search-uni-mono { width: 38px; height: 38px; flex-shrink: 0; background: var(--vibedu-blue-light); color: var(--vibedu-blue); font-weight: 800; font-size: .8rem; display: inline-flex; align-items: center; justify-content: center; }
.search-uni-meta { display: flex; flex-direction: column; min-width: 0; }
.search-uni-name { font-size: .88rem; font-weight: 700; color: var(--vibedu-text); line-height: 1.25; }
.search-uni-sub { font-size: .74rem; color: var(--vibedu-muted); display: flex; align-items: center; gap: .3rem; }

/* ---------- Free Counselling landing ---------- */
.lp-hero { background-size: cover; background-position: center; padding: 3.5rem 0 4rem; }
.lp-hero h1 { color: #fff; font-size: 2.4rem; line-height: 1.18; font-weight: 800; }
.lp-hero .lead { color: #e7f0f9; }
@media (max-width: 767px) { .lp-hero { padding: 2.2rem 0 2.5rem; } .lp-hero h1 { font-size: 1.8rem; } }

.lp-trust { display: flex; align-items: center; gap: .9rem; background: #fff; border: 2px solid var(--vibedu-border); padding: 1rem 1.2rem; height: 100%; }
.lp-trust-icon { width: 46px; height: 46px; flex-shrink: 0; background: var(--vibedu-blue); color: #fff; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 1.3rem; }
.lp-trust strong { display: block; font-size: .95rem; color: var(--vibedu-text); }
.lp-trust p { font-size: .82rem; color: var(--vibedu-muted); margin: .1rem 0 0; line-height: 1.45; }

.lp-stat { background: var(--vibedu-bg-soft); border: 1px solid var(--vibedu-border); padding: 1.4rem 1rem; text-align: center; height: 100%; }
.lp-stat-num { font-size: 2.1rem; font-weight: 800; color: var(--vibedu-blue); line-height: 1; }
.lp-stat-label { font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--vibedu-text); margin-top: .4rem; }
.lp-stat-desc { font-size: .76rem; color: var(--vibedu-muted); margin: .5rem 0 0; line-height: 1.45; }

.lp-reels { display: flex; gap: 1rem; overflow-x: auto; padding-bottom: .5rem; scrollbar-width: none; }
.lp-reels::-webkit-scrollbar { display: none; }
.lp-reel { position: relative; flex: 0 0 200px; aspect-ratio: 9/16; border: none; padding: 0; background: #000; overflow: hidden; cursor: pointer; display: block; }
.lp-reel-poster { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
.lp-reel-poster img { width: 100%; height: 100%; object-fit: cover; }
.lp-reel-grad { background: linear-gradient(135deg, var(--vibedu-blue), var(--vibedu-blue-dark)); color: #fff; font-size: 3rem; font-weight: 800; }
.lp-reel-play { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 52px; height: 52px; border-radius: 50%; background: rgba(255,255,255,.92); color: var(--vibedu-blue); display: flex; align-items: center; justify-content: center; font-size: 1.6rem; }
.lp-reel-meta { position: absolute; left: 0; right: 0; bottom: 0; padding: 1.6rem .7rem .6rem; background: linear-gradient(transparent, rgba(0,0,0,.82)); color: #fff; text-align: left; }
.lp-reel-meta strong { display: block; font-size: .85rem; }
.lp-reel-meta small { font-size: .72rem; color: #dce8f5; }
.lp-reel-soon { cursor: default; }
.lp-reel-soon-badge { position: absolute; top: .6rem; right: .6rem; z-index: 2; background: var(--vibedu-amber); color: #1a1a1a; font-size: .6rem; font-weight: 700; text-transform: uppercase; padding: .12rem .4rem; }
.lp-reel-modal { max-width: 380px; }
.lp-reel-modal .modal-content { background: transparent; border: none; }
.lp-reel-frame { position: relative; aspect-ratio: 9/16; background: #000; overflow: hidden; }
.lp-reel-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.lp-reel-close { position: absolute; top: -38px; right: 0; z-index: 2; }

/* ---------- Landing-page video reels ---------- */
.reel-track { gap: 1rem; }
.reel-card { flex: 0 0 78%; max-width: 78%; scroll-snap-align: start; }
@media (min-width: 576px) { .reel-card { flex: 0 0 300px; max-width: 300px; } }
.reel-video { width: 100%; aspect-ratio: 9 / 16; max-height: 520px; object-fit: cover; border-radius: 12px; background: #0a111c; display: block; }
.reel-name { display: block; text-align: center; font-weight: 600; font-size: .85rem; margin-top: .6rem; color: var(--vibedu-text); }

/* ---------- Testimonials: Google badge + button ---------- */
.testi-google { display: inline-flex; align-items: center; gap: .25rem; font-size: .68rem; font-weight: 600; color: #1a73e8; background: #e8f0fe; padding: .2rem .5rem; }
.btn-google { display: inline-flex; align-items: center; gap: .5rem; background: #fff; border: 2px solid var(--vibedu-border); color: var(--vibedu-text); font-weight: 600; padding: .6rem 1.4rem; transition: border-color .15s, color .15s; }
.btn-google:hover { border-color: #1a73e8; color: #1a73e8; }
.btn-google i { color: #1a73e8; font-size: 1.05rem; }

/* ---------- Legal pages ---------- */
.legal-content { max-width: 820px; }
.legal-content h2 { font-size: 1.15rem; font-weight: 700; margin-top: 2rem; margin-bottom: .75rem; color: var(--vibedu-text); }
.legal-content p, .legal-content li { color: var(--vibedu-muted); line-height: 1.7; }
.legal-content ul { margin-bottom: 1rem; padding-left: 1.2rem; }
.legal-content li { margin-bottom: .4rem; }

/* ---------- Floating CTAs ---------- */
.floating-cta { position: fixed; right: 18px; bottom: 18px; z-index: 1040; display: flex; flex-direction: column; gap: 10px; }
.floating-cta a { width: 56px; height: 56px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
    color: #fff; font-size: 1.5rem; box-shadow: 0 6px 18px rgba(0,0,0,.25); }
.floating-cta .fab-whatsapp { background: var(--vibedu-green); }
.floating-cta .fab-call { background: var(--vibedu-blue); }
.floating-cta a:hover { color: #fff; opacity: .92; }

/* ---------- Responsive ---------- */
@media (max-width: 768px) {
    .hero { padding: 2.5rem 0 3rem; }
    .hero h1 { font-size: 2rem; }
    .section { padding: 2.5rem 0; }
    .section-title { font-size: 1.6rem; }
}
