/* =============================================================
   Meridian International University — custom theme (on top of
   Bootstrap 5.3). Brand palette: deep navy + gold + white.
   ============================================================= */

:root {
  --miu-navy: #0b2545;
  --miu-navy-dark: #061428;
  --miu-slate: #1b4965;
  --miu-gold: #c9a227;
  --miu-gold-light: #e6c765;
  --bs-body-font-family: 'Inter', system-ui, -apple-system, sans-serif;
  --bs-link-color: var(--miu-navy);
  --bs-link-hover-color: var(--miu-gold);
}

body {
  color: #212936;
  background-color: #fbfbfd;
}

h1, h2, h3, .font-serif { font-family: 'Merriweather', Georgia, serif; }

.bg-navy { background-color: var(--miu-navy) !important; }
.bg-navy-dark { background-color: var(--miu-navy-dark) !important; }
.bg-slate { background-color: var(--miu-slate) !important; }
.text-navy { color: var(--miu-navy) !important; }
.text-gold { color: var(--miu-gold) !important; }
.bg-gold { background-color: var(--miu-gold) !important; }

.btn-gold {
  background-color: var(--miu-gold);
  border-color: var(--miu-gold);
  color: #1a1a1a;
}
.btn-gold:hover { background-color: var(--miu-gold-light); border-color: var(--miu-gold-light); color: #1a1a1a; }

.btn-outline-navy { border-color: var(--miu-navy); color: var(--miu-navy); }
.btn-outline-navy:hover { background-color: var(--miu-navy); color: #fff; }

.btn-navy { background-color: var(--miu-navy); border-color: var(--miu-navy); color: #fff; }
.btn-navy:hover { background-color: var(--miu-navy-dark); border-color: var(--miu-navy-dark); color: #fff; }

/* Top utility strip */
.top-strip { background-color: var(--miu-navy-dark); color: #cfd8e3; position: relative; z-index: 1031; }
.top-strip a:hover { color: var(--miu-gold); }
/* Bootstrap's .dropdown-menu defaults to z-index 1000, but .main-nav below
   uses .sticky-top (z-index 1020) so it would otherwise render on top of
   an open top-strip dropdown, making the covered items unclickable. Both
   the strip itself and its dropdown menu need a z-index above 1020. */
.top-strip .dropdown-menu { z-index: 1031; }

/* Navbar */
.main-nav { border-bottom: 3px solid var(--miu-gold); }
.main-nav .nav-link { font-weight: 500; padding: 0.65rem 0.9rem; }
.main-nav .nav-link:hover, .main-nav .nav-link:focus { color: var(--miu-gold-light) !important; }
.brand-text { line-height: 1.05; }
.dropdown-menu { border-radius: 0.6rem; }
.dropdown-menu-mega { min-width: 620px; left: 50%; transform: translateX(-50%); }
.mega-link { display: block; padding: 0.35rem 0.25rem; color: #212936; text-decoration: none; border-radius: 0.35rem; font-size: 0.92rem; }
.mega-link:hover { background-color: #f4f1e6; color: var(--miu-navy); }
@media (max-width: 991.98px) {
  .dropdown-menu-mega { min-width: 100%; transform: none; left: 0; }
}

/* Hero */
.hero-section {
  position: relative;
  color: #fff;
  background-size: cover;
  background-position: center;
  min-height: 78vh;
  display: flex;
  align-items: center;
}
.hero-section::before {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(100deg, rgba(6,20,40,.92) 0%, rgba(11,37,69,.75) 55%, rgba(11,37,69,.35) 100%);
}
.hero-section .container { position: relative; z-index: 2; }
.hero-stats .stat-num { font-size: 2.1rem; font-weight: 800; color: var(--miu-gold); }

.page-hero {
  background: linear-gradient(120deg, var(--miu-navy) 0%, var(--miu-slate) 100%);
  color: #fff;
  padding: 3.5rem 0;
}

/* Cards */
.card { border: 1px solid #e9e9ef; transition: transform .18s ease, box-shadow .18s ease; }
.card-hover:hover { transform: translateY(-6px); box-shadow: 0 1rem 2rem rgba(11,37,69,.12); }
.school-card .card-img-top { height: 190px; object-fit: cover; }
.program-card .badge { font-size: .72rem; }
.faculty-card img, .avatar-img { object-fit: cover; }
.news-card img { height: 200px; object-fit: cover; }

.icon-tile {
  width: 64px; height: 64px; border-radius: 1rem;
  background: linear-gradient(135deg, var(--miu-navy), var(--miu-slate));
  color: var(--miu-gold);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.6rem;
}

.section-eyebrow {
  color: var(--miu-gold);
  text-transform: uppercase;
  letter-spacing: .08em;
  font-weight: 700;
  font-size: .8rem;
}

.stat-block { border-left: 4px solid var(--miu-gold); padding-left: 1rem; }

/* Testimonials */
.testimonial-card { border-radius: 1rem; }
.testimonial-avatar { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; border: 3px solid var(--miu-gold); }

/* Timeline (calendar) */
.timeline { position: relative; padding-left: 2rem; }
.timeline::before { content: ""; position: absolute; left: 8px; top: 0; bottom: 0; width: 2px; background: #e0e0ea; }
.timeline-item { position: relative; padding-bottom: 1.75rem; }
.timeline-item::before {
  content: ""; position: absolute; left: -2rem; top: 4px; width: 16px; height: 16px; border-radius: 50%;
  background: var(--miu-gold); border: 3px solid #fff; box-shadow: 0 0 0 2px var(--miu-navy);
}

/* Footer */
.footer-links li { margin-bottom: .5rem; }
.footer-links a { color: #c9d3e0; text-decoration: none; }
.footer-links a:hover { color: var(--miu-gold); }
.social-icon {
  width: 38px; height: 38px; border-radius: 50%;
  background: rgba(255,255,255,.08);
  display: flex; align-items: center; justify-content: center;
  color: #fff; text-decoration: none;
}
.social-icon:hover { background: var(--miu-gold); color: #1a1a1a; }

/* Forms */
.form-section { background: #fff; border-radius: 1rem; box-shadow: 0 .5rem 2rem rgba(11,37,69,.08); }
.form-step-badge {
  width: 28px; height: 28px; border-radius: 50%;
  background: #cbd3dd; color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: .85rem; font-weight: 700;
}
.step-indicator { color: #9aa3b0; font-weight: 600; }
.step-indicator.active { color: var(--miu-navy); }
.step-indicator.active .form-step-badge { background: var(--miu-navy); }
.step-indicator.done .form-step-badge { background: var(--miu-gold); color: #1a1a1a; }
.step-indicator.done { color: var(--miu-navy); }

/* Admin */
.admin-sidebar { min-height: 100vh; background: var(--miu-navy-dark); }
.admin-sidebar .nav-link { color: #c9d3e0; border-radius: .5rem; padding: .55rem .9rem; }
.admin-sidebar .nav-link.active, .admin-sidebar .nav-link:hover { background: rgba(255,255,255,.08); color: #fff; }
.admin-stat-card { border-left: 5px solid var(--miu-gold); }

/* Gallery */
.gallery-item img { height: 230px; width: 100%; object-fit: cover; border-radius: .75rem; }

/* Misc */
.rounded-4xl { border-radius: 1.5rem; }
.badge-soft-gold { background: #f4ecd2; color: #6b5613; }
.section-py { padding-top: 4.5rem; padding-bottom: 4.5rem; }
