/* theme.css — brand, base, hero, and Bootstrap mega menu */
/* ------------------------------------------------------ */
:root{
  --brand:       #E46AA3;  /* primary from logo */
  --brand-700:   #D42677;  /* darker */
  --brand-900:   #A91E5F;  /* darkest */
  --ink:         #1C1C1E;
  --muted-ink:   #5B5B66;  /* neutrals */
  --paper:       #FFFFFF;
  --paper-2:     #F7F7F9;
  --focus:       #0A84FF;

  --container-w: 1200px;
  --topbar-h: 36px;
  --header-h: 64px;

  /* default overlay for hero (can be overridden inline) */
  --hero-overlay: 0.42;
}

/* -------- Base -------- */
html:focus-within{ scroll-behavior:smooth; }
*{ box-sizing:border-box; }
body{
  margin:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif;
  color: var(--ink);
  background: var(--paper);
}
a{ color: var(--brand-700); text-decoration: none; }
a:hover{ color: var(--brand-900); }

/* fix: container calc needed explicit calc() */
.container{ width:min(var(--container-w), calc(100% - 2rem)); margin-inline:auto; }

.sr-only{
  position:absolute !important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce){
  html:focus-within{ scroll-behavior:auto; }
  *{ transition:none !important; animation:none !important; }
}

/* -------- Topbar -------- */
.topbar{
  height: var(--topbar-h);
  background: var(--paper);
  color: var(--muted-ink);
  display:flex; align-items:center;
  font-size: .9rem;
  border-bottom: 1px solid rgba(0,0,0,.06);
}
.topbar .container{ display:flex; align-items:center; gap:1rem; }
.topbar a{ color: var(--brand-700); }
.topbar a:hover{ color: var(--brand-900); }

/* -------- Bootstrap Mega Menu -------- */
/* Base navbar stacking so menus overlay content */
.navbar { position: relative; z-index: 2000; }

/* Keep Bootstrap JS control by default */
.navbar .dropdown .dropdown-menu { display: none; }
.navbar .dropdown .dropdown-menu.show { display: block; z-index: 2100; }

/* ✅ Desktop: open on hover; Mobile/tablet stays click-only */
@media (min-width: 992px){
  .navbar .dropdown:hover > .dropdown-menu{ display:block; }

  /* Prevent flicker by creating a small hover “bridge” between toggle and menu */
  .navbar .dropdown{ position:relative; }
  .navbar .dropdown > a,
  .navbar .dropdown > .nav-link,
  .navbar .dropdown > .dropdown-toggle{ position:relative; z-index:2101; }
  .navbar .dropdown::after{
    content:"";
    position:absolute;
    left:0; right:0;
    height: 12px;           /* bridge height to cover any gap */
    top: 100%;
  }
}

/* Center & size wide mega panels */
.dropdown-mega.position-static .dropdown-menu{
  left: 50%;
  transform: translateX(-50%);
  width: min(960px, calc(100vw - 2rem));
  border-radius: 16px;
  box-shadow: 0 20px 40px rgba(0,0,0,.12);
  border: 1px solid rgba(0,0,0,.06);
  padding: 1rem 1.25rem;

  /* remove gap to avoid hover dropout; rely on padding instead */
  margin-top: 0;
}

/* Optional cosmetics inside mega */
.dropdown-menu h6{ margin:.25rem 0 .5rem; color: var(--muted-ink); font-weight:700; font-size:.95rem; }
.dropdown-menu .bg-light{
  background:#fff !important;
  border:1px solid rgba(0,0,0,.06) !important;
  box-shadow:0 10px 24px rgba(0,0,0,.08);
  border-radius:16px !important;
}

/* “Pill” quick links (used in mega CTA blocks) */
.pill{
  display:inline-flex; align-items:center; gap:.5rem;
  background:#fff; border:1px solid rgba(0,0,0,.06);
  border-radius:999px; padding:.6rem .9rem;
  box-shadow:0 8px 20px rgba(0,0,0,.08);
}

/* Make dropdown items easier to scan/click */
.dropdown-menu .dropdown-item{
  border-radius:10px;
  padding:.5rem .75rem;
}
.dropdown-menu .dropdown-item:hover,
.dropdown-menu .dropdown-item:focus{
  background: rgba(228,106,163,.10);
  color: var(--ink);
  outline: none;
}

/* -------- HERO -------- */
.hero{
  position: relative;
  min-height: clamp(68vh, 72vh, 84vh);
  display: grid;
  align-items: center;
  color: var(--paper);
  background:
    linear-gradient(0deg, rgba(0,0,0,0.50), rgba(0,0,0,0.50)),
    var(--hero-image, none) center/cover no-repeat,
    radial-gradient(1200px 600px at 10% 10%, var(--brand-900), var(--brand));
  isolation: isolate;
  overflow: clip;
}
.hero__scrim{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(0,0,0,calc(var(--hero-overlay))) 0%, rgba(0,0,0,calc(var(--hero-overlay) + 0.08)) 60%, rgba(0,0,0,calc(var(--hero-overlay) + 0.14)) 100%);
  pointer-events:none;
  z-index:0;
}
.hero__inner{ position:relative; z-index:1; padding-block: clamp(2rem, 6vh, 4rem); }
.hero__brand{ display:flex; align-items:center; gap:.75rem; margin-bottom: 1rem; }
.hero__brand .ccap-mark{ height:40px; opacity:.95 }
.hero__title{
  font-size: clamp(1.8rem, 2.8vw + 1rem, 3.2rem);
  line-height: 1.08; margin:0 0 .5rem;
  font-weight: 800;
  letter-spacing: -.02em;
  text-wrap: balance;
}
.hero__tagline{
  font-size: clamp(1rem, .9vw + .6rem, 1.375rem);
  color: #F1E9EF;
  margin: 0 0 1.25rem;
  max-width: 60ch;
}
.hero__cta{ display:flex; flex-wrap:wrap; gap:.75rem; }

.btn{
  --btn-bg: var(--brand-700);
  --btn-ink: #fff;
  display:inline-flex; align-items:center; justify-content:center;
  padding:.85rem 1.1rem;
  border-radius: 999px;
  border: 1px solid transparent;
  font-weight: 700; text-decoration:none;
  line-height:1; letter-spacing:.01em;
  transition: transform .08s ease, box-shadow .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
  box-shadow: 0 8px 22px rgba(0,0,0,.25);
}
.btn:focus-visible{ outline: 3px solid var(--focus); outline-offset: 2px; }
.btn--primary{ background: var(--btn-bg); color: var(--btn-ink); }
.btn--primary:hover{ transform: translateY(-1px); background: var(--brand-900); }
.btn--outline{
  background: transparent; color: #fff; border-color: rgba(255,255,255,.7);
  backdrop-filter: blur(3px);
}
.btn--outline:hover{ background: rgba(255,255,255,.08); border-color: #fff; }
.btn--ghost{
  background: rgba(255,255,255,.08); color: #fff; border-color: transparent;
}
.btn--ghost:hover{ background: rgba(255,255,255,.14); }

.hero__skip{
  position:absolute; left:50%; bottom:1rem; transform: translateX(-50%);
  background: transparent; border:0; color:#fff; font-size: 1.25rem; opacity:.8; cursor:pointer;
}
.hero__skip:hover{ opacity:1; transform: translateX(-50%) translateY(-1px); }

/* Small screens: keep buttons readable */
@media (max-width: 640px){
  .hero__brand img{ width:64px; height:64px; }
  .hero__cta .btn{ padding:.8rem 1rem; }
}

/* -------- Utilities -------- */
.section{ padding: clamp(2rem, 4vw, 4rem) 0; }
.section--muted{ background: var(--paper-2); }
.hero{ margin-top: 0; }

/* --- Nkhoma College of Nursing and Midwifery Button Fix (global, Bootstrap 5.3 var-based) --- */

/* Base: never force buttons to white text/background globally */
.btn{ color: inherit; }
.btn:visited{ color: inherit; }

/* Primary = brand */
.btn-primary{
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--brand-700, #D42677);
  --bs-btn-border-color: var(--brand-700, #D42677);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--brand-900, #A91E5F);
  --bs-btn-hover-border-color: var(--brand-900, #A91E5F);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--brand-900, #A91E5F);
  --bs-btn-active-border-color: var(--brand-900, #A91E5F);
  --bs-btn-disabled-color: #6c757d;
  --bs-btn-disabled-bg: #f1f3f5;
  --bs-btn-disabled-border-color: #e9ecef;
}

/* Outline secondary = brand outline */
.btn-outline-secondary{
  --bs-btn-color: var(--brand-700, #D42677);
  --bs-btn-border-color: var(--brand-700, #D42677);
  --bs-btn-hover-color: var(--brand-900, #A91E5F);
  --bs-btn-hover-bg: transparent;
  --bs-btn-hover-border-color: var(--brand-900, #A91E5F);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--brand-900, #A91E5F);
  --bs-btn-active-border-color: var(--brand-900, #A91E5F);
}

/* Light buttons should have DARK text (prevents white-on-white pills) */
.btn-light{
  --bs-btn-color: #212529;
  --bs-btn-bg: #f8f9fa;
  --bs-btn-border-color: #e9ecef;
  --bs-btn-hover-color: #212529;
  --bs-btn-hover-bg: #e9ecef;
  --bs-btn-hover-border-color: #dee2e6;
}

/* Make sure icons/text inside buttons stay visible */
.btn .bi{ vertical-align: -.15em; }
