/* ============================================================
   NIU x Kejicare — HND Top-Up Degree Programmes
   Palette sampled directly from the supplied logo files.
   ============================================================ */

:root{
  /* --- Kejicare Consult Ltd: primary brand --- */
  --brand:       #E0620E;   /* Kejicare orange   */
  --brand-deep:  #BD4202;   /* Kejicare rust     */
  --brand-700:   #8F3202;
  --gold:        #F5A623;

  /* dark surfaces: deep brown-black drawn from the Kejicare mark */
  --ink:         #1C0B06;
  --ink-deep:    #120704;
  --ink-soft:    #3A1A0E;
  --ink-700:     #4A2211;

  /* --- Nexus International University: partner accents only --- */
  --niu-navy:    #011A54;
  --niu-orange:  #FE5C01;

  --paper:       #FFFFFF;
  --mist:        #FAF6F3;
  --line:        #E7DCD5;
  --muted:       #6B584F;

  --wrap:        1180px;
  --r-sm:        10px;
  --r-md:        16px;
  --r-lg:        26px;
  --r-pill:      999px;

  --shadow-sm:   0 2px 10px rgba(28,11,6,.07);
  --shadow-md:   0 10px 30px rgba(28,11,6,.13);

  --font-head:   'Montserrat', 'Helvetica Neue', Arial, sans-serif;
  --font-body:   'Open Sans', 'Segoe UI', Roboto, Arial, sans-serif;
}
*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; scroll-padding-top:96px; }

body{
  margin:0;
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
}

img{ max-width:100%; display:block; }
a{ color:inherit; }
h1,h2,h3{ font-family:var(--font-head); margin:0; line-height:1.12; }
p{ margin:0; }
ul,ol{ margin:0; padding:0; list-style:none; }

.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:20px; }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  gap:.5rem;
  font-family:var(--font-head); font-weight:800; font-size:.95rem;
  letter-spacing:.02em;
  padding:.85rem 1.6rem;
  border-radius:var(--r-pill);
  text-decoration:none;
  border:2px solid transparent;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
  white-space:nowrap;
}
.btn:hover{ transform:translateY(-2px); }
.btn--sm{ padding:.6rem 1.2rem; font-size:.85rem; }
.btn--brand{ background:var(--brand); color:#fff; box-shadow:0 6px 18px rgba(224,98,14,.34); }
.btn--brand:hover{ background:var(--brand-deep); box-shadow:0 10px 24px rgba(224,98,14,.46); }
.btn--ghost{ background:transparent; color:#fff; border-color:rgba(255,255,255,.55); }
.btn--ghost:hover{ background:rgba(255,255,255,.12); border-color:#fff; }
.btn--white{ background:#fff; color:var(--ink); box-shadow:var(--shadow-md); }
.btn--white:hover{ background:var(--mist); }
.btn--outline-white{ background:transparent; color:#fff; border-color:rgba(255,255,255,.6); }
.btn--outline-white:hover{ background:rgba(255,255,255,.14); border-color:#fff; }

/* ============================================================
   TOP BAR
   ============================================================ */
.topbar{ background:var(--ink-deep); color:#fff; font-size:.82rem; }
.topbar__inner{
  display:flex; align-items:center; justify-content:space-between;
  gap:1rem; flex-wrap:wrap; padding-block:.55rem;
}
.topbar__partner{ opacity:.72; letter-spacing:.02em; }
.topbar__partner span{ color:var(--gold); font-style:italic; }
.topbar__contacts{ display:flex; align-items:center; gap:1.4rem; flex-wrap:wrap; }
.topbar__contacts a{
  display:inline-flex; align-items:center; gap:.45rem;
  text-decoration:none; opacity:.9; transition:opacity .2s, color .2s;
}
.topbar__contacts a:hover{ opacity:1; color:var(--gold); }
.topbar__contacts svg{ width:15px; height:15px; fill:currentColor; flex:none; }
.topbar__contacts .is-whatsapp svg{ fill:#4DD35F; }

/* ============================================================
   HEADER
   ============================================================ */
.site-header{
  position:sticky; top:0; z-index:60;
  background:rgba(255,255,255,.94);
  backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid var(--line);
}
.site-header__inner{
  display:flex; align-items:center; justify-content:space-between;
  gap:1rem; padding-block:.7rem;
}
.brandlock{ display:flex; align-items:center; gap:1rem; text-decoration:none; min-width:0; }
/* Kejicare leads the lockup; NIU sits beside it as the partner mark */
.brandlock__kc{ height:52px; width:auto; object-fit:contain; }
.brandlock__x{ width:1px; height:38px; background:var(--line); flex:none; }
.brandlock__partner{ display:flex; flex-direction:column; gap:.2rem; }
.brandlock__partnerlabel{
  font-family:var(--font-head); font-weight:700; font-size:.56rem;
  letter-spacing:.14em; text-transform:uppercase; color:var(--muted);
}
.brandlock__partner img{ height:26px; width:auto; object-fit:contain; }

.nav{ display:flex; align-items:center; gap:1.75rem; }
.nav a:not(.btn){
  font-family:var(--font-head); font-weight:700; font-size:.9rem;
  text-decoration:none; color:var(--ink);
  position:relative; padding-block:.25rem;
}
.nav a:not(.btn)::after{
  content:''; position:absolute; left:0; bottom:0;
  width:0; height:2px; background:var(--brand); transition:width .22s ease;
}
.nav a:not(.btn):hover::after{ width:100%; }

.navtoggle{
  display:none; flex-direction:column; gap:5px; justify-content:center;
  width:44px; height:44px; padding:0 10px;
  background:none; border:0; cursor:pointer;
}
.navtoggle span{ display:block; height:3px; background:var(--ink); border-radius:2px; transition:.25s; }
.navtoggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(8px) rotate(45deg); }
.navtoggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.navtoggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-8px) rotate(-45deg); }

/* ============================================================
   HERO
   ============================================================ */
.hero{
  position:relative; overflow:hidden;
  background:
    radial-gradient(1000px 520px at 78% 12%, rgba(224,98,14,.22), transparent 62%),
    linear-gradient(160deg, var(--ink) 0%, var(--ink-deep) 62%, #2A0F05 100%);
  color:#fff;
  padding-block:clamp(3.2rem, 8vw, 6rem);
}
.hero__watermark{
  position:absolute; right:-2%; bottom:-14%;
  width:min(440px, 44vw); opacity:.09;
  filter:brightness(0) invert(1);
  pointer-events:none;
}
.hero__inner{
  position:relative; z-index:1;
  display:grid; grid-template-columns:minmax(0,1fr) auto;
  gap:2.5rem; align-items:center;
}
.hero__eyebrow{
  font-family:var(--font-head); font-weight:700; font-style:italic;
  color:var(--gold); letter-spacing:.04em; margin-bottom:.9rem;
}
.hero__title{
  font-weight:900; letter-spacing:-.02em; text-transform:uppercase;
  font-size:clamp(2.4rem, 6.2vw, 4.3rem);
  display:flex; flex-direction:column;
}
.hero__title .l2{ color:var(--brand); }
.hero__ribbon{
  display:inline-block; margin-top:1.15rem;
  background:var(--brand); color:#fff;
  font-family:var(--font-head); font-weight:800; letter-spacing:.06em;
  text-transform:uppercase; font-size:clamp(.8rem,2vw,1rem);
  padding:.55rem 1.4rem; border-radius:var(--r-sm);
}
.hero__lede{ margin-top:1.3rem; max-width:46ch; color:rgba(255,255,255,.82); }
.hero__actions{ display:flex; flex-wrap:wrap; gap:.85rem; margin-top:2rem; }

/* seal */
.hero__seal{ display:flex; justify-content:center; }
.seal{
  width:236px; height:236px; border-radius:50%;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; color:var(--ink);
  background:radial-gradient(circle at 50% 32%, #FFE9A8 0%, var(--gold) 58%, #E08C00 100%);
  border:6px solid #fff;
  box-shadow:0 0 0 5px var(--brand), 0 18px 40px rgba(0,0,0,.34);
  font-family:var(--font-head);
  animation:sealIn .7s cubic-bezier(.2,.8,.25,1) both;
}
@keyframes sealIn{ from{ transform:scale(.82) rotate(-8deg); opacity:0; } to{ transform:none; opacity:1; } }
.seal__stars{ font-size:.72rem; letter-spacing:.32em; color:var(--brand-deep); }
.seal__top{ font-weight:800; font-size:1.02rem; text-transform:uppercase; letter-spacing:.04em; }
.seal__mid{ font-weight:900; font-size:2.5rem; line-height:1; color:var(--brand-deep); text-transform:uppercase; }
.seal__bot{ font-weight:800; font-size:.8rem; text-transform:uppercase; letter-spacing:.06em; margin-bottom:.15rem; }

/* ============================================================
   ACCREDITATION
   ============================================================ */
.accred{ background:var(--ink-soft); color:#fff; }
.accred__inner{
  display:flex; align-items:center; justify-content:center; flex-wrap:wrap;
  gap:1.2rem 2.2rem; padding-block:1.2rem; text-align:center;
}
.accred__main{ display:flex; align-items:center; gap:.9rem; text-align:left; }
.accred__check svg{ width:38px; height:38px; fill:#fff; flex:none; }
.accred__main p{
  font-family:var(--font-head); font-weight:800; text-transform:uppercase;
  font-size:.92rem; letter-spacing:.03em; line-height:1.3;
}
.accred__main p span{ display:block; color:var(--gold); }
.accred__note{
  padding-left:2.2rem; border-left:2px solid rgba(255,255,255,.28);
  font-size:.95rem;
}
.accred__note strong{ color:var(--gold); font-family:var(--font-head); }

/* ============================================================
   FAST TRACK
   ============================================================ */
.fast{ background:var(--mist); border-bottom:1px solid var(--line); }
.fast__inner{ display:flex; align-items:center; gap:1.4rem; padding-block:2.4rem; }
.fast__icon{
  flex:none; width:62px; height:62px; border-radius:50%;
  display:grid; place-items:center; background:#fff; box-shadow:var(--shadow-sm);
}
.fast__icon svg{ width:32px; height:32px; fill:var(--ink); }
.fast h2{
  font-size:clamp(1.25rem,3vw,1.6rem); font-weight:800;
  color:var(--brand-deep); margin-bottom:.35rem;
}
.fast p{ color:var(--muted); max-width:70ch; }

/* ============================================================
   PROGRAMMES + WHY
   ============================================================ */
.main{ padding-block:clamp(2.6rem,6vw,4.4rem); }
.main__grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:1.8rem; align-items:start; }

.panel{
  border:1px solid var(--line); border-radius:var(--r-lg);
  padding:1.4rem 1.5rem 1.8rem;
  background:#fff; box-shadow:var(--shadow-sm);
}
.panel--why{ background:var(--mist); }
.panel__title{
  display:inline-block; background:var(--ink); color:#fff;
  font-size:clamp(1rem,2.4vw,1.2rem); font-weight:800;
  text-transform:uppercase; letter-spacing:.04em;
  padding:.7rem 1.5rem; border-radius:var(--r-pill);
  margin:-2.4rem 0 1.6rem;
}
.panel__title--center{ display:block; text-align:center; }

/* programmes */
.proglist{
  display:grid; grid-template-columns:1fr 1fr;
  grid-template-rows:repeat(7, auto); grid-auto-flow:column;
  gap:.55rem 1.6rem;
}
.proglist--2{ margin-top:.4rem; }
.proglist li{
  display:flex; align-items:center; gap:.7rem;
  font-size:.94rem; font-weight:600;
  padding:.4rem 0; border-bottom:1px dashed transparent;
  transition:transform .18s ease, color .18s ease;
}
.proglist li:hover{ transform:translateX(4px); color:var(--brand-deep); }
.proglist li span{
  flex:none; width:26px; height:26px; border-radius:7px;
  display:grid; place-items:center;
  background:var(--brand); color:#fff;
  font-family:var(--font-head); font-weight:800; font-size:.78rem;
}

/* why */
.whylist{ display:grid; gap:1.15rem; }
.whylist li{ display:flex; align-items:flex-start; gap:.9rem; }
.whyicon{
  flex:none; width:42px; height:42px; border-radius:50%;
  display:grid; place-items:center;
  background:var(--ink); box-shadow:var(--shadow-sm);
}
.whyicon svg{ width:22px; height:22px; fill:#fff; }
.whylist p{ font-size:.96rem; font-weight:600; padding-top:.45rem; }

/* ============================================================
   INTAKES + APPLY
   ============================================================ */
.cta{ padding-bottom:clamp(2.6rem,6vw,4rem); }
.cta__grid{ display:grid; grid-template-columns:1fr 1.15fr; gap:1.4rem; align-items:stretch; }

.intakes{
  display:flex; align-items:center; gap:1.1rem;
  border:1px solid var(--line); border-radius:var(--r-lg);
  padding:1.5rem 1.7rem; background:#fff; box-shadow:var(--shadow-sm);
}
.intakes__icon{ flex:none; width:56px; height:56px; border-radius:14px; display:grid; place-items:center; background:var(--mist); }
.intakes__icon svg{ width:30px; height:30px; fill:var(--ink); }
.intakes__label{
  font-family:var(--font-head); font-weight:800; text-transform:uppercase;
  color:var(--brand-deep); letter-spacing:.06em; font-size:.92rem;
}
.intakes__months{
  font-family:var(--font-head); font-weight:800; text-transform:uppercase;
  font-size:clamp(.95rem,1.9vw,1.28rem); letter-spacing:.01em;
  display:flex; align-items:center; gap:.5rem; flex-wrap:wrap;
}
.intakes__months i{ color:var(--line); font-style:normal; }

.apply{
  border-radius:var(--r-lg); padding:1.9rem;
  background:linear-gradient(135deg, var(--ink) 0%, var(--ink-deep) 100%);
  color:#fff; text-align:center;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  box-shadow:var(--shadow-md);
}
.apply__title{
  font-size:clamp(2rem,5vw,3rem); font-weight:900;
  text-transform:uppercase; letter-spacing:-.01em;
}
.apply__sub{
  font-family:var(--font-head); font-style:italic; font-weight:600;
  color:var(--gold); margin-top:.35rem; font-size:1.02rem;
}
.apply__btns{ display:flex; flex-wrap:wrap; justify-content:center; gap:.8rem; margin-top:1.4rem; }

/* ============================================================
   TRUST STRIP
   ============================================================ */
.trust{ background:var(--ink); color:#fff; }
.trust__inner{
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:1.4rem; padding-block:1.5rem;
}
.trust__item{ display:flex; align-items:center; gap:.7rem; }
.trust__item svg{ width:30px; height:30px; fill:#fff; flex:none; opacity:.92; }
.trust__item p{
  font-family:var(--font-head); font-weight:800; text-transform:uppercase;
  font-size:.76rem; letter-spacing:.04em; line-height:1.32;
}
.trust__wecare{
  font-family:var(--font-head); font-style:italic; font-weight:700;
  color:var(--brand); font-size:1.6rem;
}

/* ============================================================
   OFFICES
   ============================================================ */
.offices{ background:var(--ink-deep); color:#fff; padding-block:2.2rem 2.6rem; }
.offices__title{
  display:flex; align-items:center; gap:1rem;
  font-size:1.05rem; font-weight:800; text-transform:uppercase;
  letter-spacing:.08em; justify-content:center; margin-bottom:1.6rem;
}
.offices__title::before,.offices__title::after{
  content:''; height:1px; flex:1; max-width:180px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);
}
.offices__list{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; text-align:center; }
.offices__list li{
  border:1px solid rgba(255,255,255,.14); border-radius:var(--r-md);
  padding:1.1rem .8rem; transition:border-color .2s, background .2s, transform .2s;
}
.offices__list li:hover{ border-color:var(--brand); background:rgba(255,255,255,.05); transform:translateY(-3px); }
.offices__city{
  display:flex; align-items:center; justify-content:center; gap:.4rem;
  font-family:var(--font-head); font-weight:800; text-transform:uppercase;
  color:var(--gold); letter-spacing:.06em; font-size:.9rem; margin-bottom:.4rem;
}
.offices__city svg{ width:16px; height:16px; fill:var(--brand); }
.offices__list a{
  font-family:var(--font-head); font-weight:700; font-size:1.02rem;
  text-decoration:none; letter-spacing:.02em;
}
.offices__list a:hover{ color:var(--brand); }

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{ background:var(--ink); color:#fff; padding-block:2.4rem; border-top:1px solid rgba(255,255,255,.1); }
.site-footer__inner{ display:flex; flex-direction:column; align-items:center; gap:1.3rem; text-align:center; }
.site-footer__plates{ display:flex; flex-wrap:wrap; justify-content:center; gap:1rem; }
.plate{
  background:#fff; border-radius:var(--r-md);
  padding:.7rem 1.1rem; box-shadow:var(--shadow-md);
  display:grid; place-items:center;
}
.plate img{ height:52px; width:auto; object-fit:contain; }
.plate--kc img{ height:62px; }

.site-footer__l1{ font-family:var(--font-head); font-weight:800; text-transform:uppercase; letter-spacing:.04em; font-size:.95rem; }
.site-footer__l2{ font-family:var(--font-head); font-weight:700; text-transform:uppercase; color:var(--brand); font-size:.85rem; letter-spacing:.04em; }
.site-footer__kc{ font-family:var(--font-head); font-style:italic; font-weight:600; color:var(--gold); font-size:.86rem; margin-top:.25rem; }
.site-footer__l3{ font-style:italic; color:rgba(255,255,255,.72); font-size:.9rem; margin-top:.6rem; }

.social{ display:flex; gap:.7rem; }
.social a{
  width:38px; height:38px; border-radius:50%;
  display:grid; place-items:center;
  background:rgba(255,255,255,.1); transition:background .2s, transform .2s;
}
.social a:hover{ background:var(--brand); transform:translateY(-3px); }
.social svg{ width:19px; height:19px; fill:#fff; }

.site-footer__flyer a{ font-size:.8rem; color:rgba(255,255,255,.55); }
.site-footer__flyer a:hover{ color:var(--gold); }

/* ============================================================
   MOBILE STICKY BAR
   ============================================================ */
.stickybar{ display:none; }

/* ============================================================
   SCROLL REVEAL
   ============================================================ */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .6s ease, transform .6s ease; }
.reveal.is-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
  .seal{ animation:none; }
  html{ scroll-behavior:auto; }
}

/* ============================================================
   ADMISSION REQUIREMENTS
   ============================================================ */
.admission{ background:var(--mist); border-block:1px solid var(--line); padding-block:clamp(2.6rem,6vw,4rem); }

.section-heading{
  font-size:clamp(1.5rem,3.6vw,2.1rem); font-weight:900;
  text-transform:uppercase; letter-spacing:-.01em; text-align:center;
}
.section-heading::after{
  content:''; display:block; width:64px; height:4px; margin:.7rem auto 0;
  background:var(--brand); border-radius:var(--r-pill);
}
.section-sub{ text-align:center; color:var(--muted); margin-top:.8rem; }

.reqlist{
  display:grid; grid-template-columns:repeat(2,1fr);
  gap:1rem; margin-top:2rem;
}
.reqlist li{
  display:flex; align-items:flex-start; gap:1rem;
  background:#fff; border:1px solid var(--line); border-radius:var(--r-md);
  padding:1.2rem 1.3rem; box-shadow:var(--shadow-sm);
  transition:transform .2s ease, border-color .2s ease;
}
.reqlist li:hover{ transform:translateY(-3px); border-color:var(--brand); }
.reqlist__num{
  flex:none; width:38px; height:38px; border-radius:50%;
  display:grid; place-items:center;
  background:var(--brand-deep); color:#fff;
  font-family:var(--font-head); font-weight:900; font-size:1.05rem;
}
.reqlist h3{
  font-size:1rem; font-weight:800; text-transform:uppercase;
  letter-spacing:.02em; margin-bottom:.3rem;
}
.reqlist p{ color:var(--muted); font-size:.94rem; }

.admission__cta{
  display:flex; align-items:center; justify-content:center;
  flex-wrap:wrap; gap:1rem 1.4rem; margin-top:2rem; text-align:center;
}
.admission__cta p{ color:var(--muted); font-weight:600; }

/* ============================================================
   INNER PAGES: page head, sub-nav, fee sections
   ============================================================ */
.pagehead{
  background:
    radial-gradient(900px 460px at 80% 0%, rgba(224,98,14,.22), transparent 62%),
    linear-gradient(160deg, var(--ink) 0%, var(--ink-deep) 70%, #2A0F05 100%);
  color:#fff; padding-block:clamp(2.4rem,6vw,3.8rem); text-align:center;
}
.pagehead__eyebrow{
  font-family:var(--font-head); font-weight:700; font-size:.78rem;
  letter-spacing:.16em; text-transform:uppercase; color:var(--gold);
}
.pagehead__title{
  font-size:clamp(2rem,5.5vw,3.2rem); font-weight:900;
  text-transform:uppercase; letter-spacing:-.02em; margin-top:.6rem;
}
.pagehead__sub{ margin:.9rem auto 0; max-width:58ch; color:rgba(255,255,255,.82); }
.pagehead__sub strong{ color:var(--gold); }
.pagehead__actions{ display:flex; flex-wrap:wrap; justify-content:center; gap:.8rem; margin-top:1.6rem; }

.subnav{
  position:sticky; top:66px; z-index:40;
  background:rgba(255,255,255,.96); backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid var(--line);
}
.subnav__inner{ display:flex; gap:.4rem; overflow-x:auto; padding-block:.6rem; scrollbar-width:thin; }
.subnav a{
  flex:none; text-decoration:none; white-space:nowrap;
  font-family:var(--font-head); font-weight:700; font-size:.82rem;
  padding:.45rem .9rem; border-radius:var(--r-pill);
  color:var(--muted); transition:background .2s, color .2s;
}
.subnav a:hover{ background:var(--mist); color:var(--brand-deep); }

.secwrap{ padding-block:clamp(2rem,5vw,3.4rem); }
.sec{ scroll-margin-top:132px; padding-block:1.6rem 2.4rem; border-bottom:1px solid var(--line); }
.sec:last-child{ border-bottom:0; }
.sec__title{
  display:flex; align-items:center; gap:.8rem; flex-wrap:wrap;
  font-size:clamp(1.25rem,3vw,1.75rem); font-weight:900;
  text-transform:uppercase; letter-spacing:-.01em;
}
.sec__num{
  flex:none; width:40px; height:40px; border-radius:12px;
  display:grid; place-items:center;
  background:var(--brand-deep); color:#fff; font-size:1.05rem;
}
.sec__tag{
  font-family:var(--font-body); font-size:.68rem; font-weight:700;
  text-transform:uppercase; letter-spacing:.08em;
  background:var(--mist); color:var(--brand-deep);
  border:1px solid var(--line); border-radius:var(--r-pill); padding:.3rem .75rem;
}
.sec__note{ color:var(--muted); margin-top:.7rem; max-width:80ch; }
.sec__note strong{ color:var(--brand-deep); }
.sec__foot{ color:var(--muted); font-size:.9rem; margin-top:1rem; max-width:88ch; }
.sec__foot--warn{
  background:#FFF6EE; border-left:3px solid var(--brand);
  padding:.8rem 1rem; border-radius:0 var(--r-sm) var(--r-sm) 0; color:var(--ink);
}
.sub{
  font-size:.95rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em;
  color:var(--brand-deep); margin:1.6rem 0 .9rem;
  padding-bottom:.45rem; border-bottom:2px solid var(--line);
}

/* price badges */
.pricerow{ display:flex; flex-wrap:wrap; gap:.8rem; margin-top:1.2rem; }
.price{
  display:flex; flex-direction:column; gap:.15rem;
  background:var(--mist); border:1px solid var(--line);
  border-radius:var(--r-md); padding:.85rem 1.2rem; min-width:200px;
}
.price__label{
  font-family:var(--font-head); font-weight:700; font-size:.68rem;
  letter-spacing:.1em; text-transform:uppercase; color:var(--muted);
}
.price__value{ font-family:var(--font-head); font-weight:900; font-size:1.05rem; color:var(--brand-deep); }

/* fee tables */
.tablewrap{ overflow-x:auto; margin-top:1.2rem; border:1px solid var(--line); border-radius:var(--r-md); }
.feetable{ width:100%; border-collapse:collapse; min-width:560px; font-size:.92rem; }
.feetable th{
  background:var(--ink); color:#fff; text-align:left;
  font-family:var(--font-head); font-weight:800; font-size:.75rem;
  letter-spacing:.06em; text-transform:uppercase; padding:.8rem 1rem;
}
.feetable td{ padding:.75rem 1rem; border-top:1px solid var(--line); vertical-align:top; }
.feetable tbody tr:nth-child(even){ background:var(--mist); }
.feetable td:last-child{ font-family:var(--font-head); font-weight:700; color:var(--brand-deep); white-space:nowrap; }

/* ============================================================
   APPLICATION FORM
   ============================================================ */
.pagehead--slim{ padding-block:clamp(2rem,4.5vw,2.8rem); }
.formwrap{ padding-block:clamp(2rem,5vw,3.2rem); max-width:920px; }

.fset{ border:1px solid var(--line); border-radius:var(--r-lg); padding:1.6rem 1.5rem 1.8rem; margin-bottom:1.4rem; background:#fff; box-shadow:var(--shadow-sm); }
.fset__legend{
  display:flex; align-items:center; gap:.7rem;
  font-family:var(--font-head); font-weight:900; font-size:1rem;
  text-transform:uppercase; letter-spacing:.03em; padding-inline:.6rem;
}
.fset__legend span{
  width:30px; height:30px; border-radius:9px; display:grid; place-items:center;
  background:var(--brand-deep); color:#fff; font-size:.85rem;
}
.fset__note{ color:var(--muted); font-size:.9rem; margin:.9rem 0 1.2rem; }

.grid2{ display:grid; grid-template-columns:1fr 1fr; gap:1rem 1.2rem; }
.field{ display:flex; flex-direction:column; gap:.4rem; margin-top:1rem; }
.grid2 .field{ margin-top:0; }
.field__label{
  font-family:var(--font-head); font-weight:700; font-size:.78rem;
  letter-spacing:.06em; text-transform:uppercase; color:var(--muted);
}
.field__label b{ color:var(--brand-deep); }
.field input,.field select{
  font-family:var(--font-body); font-size:.98rem; color:var(--ink);
  padding:.75rem .9rem; border:1px solid var(--line); border-radius:var(--r-sm);
  background:#fff; width:100%; transition:border-color .18s, box-shadow .18s;
}
.field input:focus,.field select:focus{
  outline:none; border-color:var(--brand);
  box-shadow:0 0 0 3px rgba(224,98,14,.18);
}
.field input.is-invalid,.field select.is-invalid{ border-color:#C62828; box-shadow:0 0 0 3px rgba(198,40,40,.14); }

/* uploads */
.uploads{ display:grid; gap:1rem; }
.upload{ border:1px solid var(--line); border-radius:var(--r-md); padding:1.1rem 1.2rem; background:var(--mist); transition:border-color .2s; }
.upload.is-set{ border-color:var(--brand); background:#FFF8F3; }
.upload.is-bad{ border-color:#C62828; background:#FDF3F3; }
.upload.is-done{ border-color:#2E7D32; background:#F3FAF4; }
.upload__head{ display:flex; align-items:flex-start; gap:.8rem; }
.upload__num{
  flex:none; width:30px; height:30px; border-radius:50%; display:grid; place-items:center;
  background:var(--ink); color:#fff; font-family:var(--font-head); font-weight:800; font-size:.82rem;
}
.upload__head h3{ font-size:.95rem; font-weight:800; text-transform:uppercase; letter-spacing:.02em; }
.upload__head p{ color:var(--muted); font-size:.86rem; margin-top:.15rem; }
.upload__drop{
  display:flex; align-items:center; gap:.8rem; flex-wrap:wrap;
  margin-top:.9rem; padding:.7rem .9rem; cursor:pointer;
  background:#fff; border:1px dashed var(--line); border-radius:var(--r-sm);
}
.upload__drop:hover{ border-color:var(--brand); }
.upload__drop input[type=file]{ position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.upload__cta{
  flex:none; font-family:var(--font-head); font-weight:800; font-size:.8rem;
  text-transform:uppercase; letter-spacing:.04em; color:#fff;
  background:var(--brand-deep); padding:.45rem 1rem; border-radius:var(--r-pill);
}
.upload__name{ font-size:.85rem; color:var(--muted); word-break:break-word; }
.upload.is-set .upload__name{ color:var(--ink); font-weight:600; }
.upload__bar{ height:3px; border-radius:2px; background:var(--line); margin-top:.7rem; overflow:hidden; opacity:0; transition:opacity .2s; }
.upload.is-uploading .upload__bar{ opacity:1; }
.upload__bar i{ display:block; height:100%; width:40%; background:var(--brand); border-radius:2px; animation:slide 1.1s ease-in-out infinite; }
@keyframes slide{ 0%{ transform:translateX(-100%);} 100%{ transform:translateX(320%);} }

/* honeypot */
.hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

.formfoot{ text-align:center; padding-top:.6rem; }
.formfoot__note{ color:var(--muted); font-size:.86rem; max-width:60ch; margin:0 auto 1.1rem; }
.btn--lg{ padding:1rem 2.4rem; font-size:1.02rem; }
.btn--outline{ background:transparent; color:var(--ink); border-color:var(--line); }
.btn--outline:hover{ border-color:var(--brand); color:var(--brand-deep); }

.formstatus{ margin-top:1rem; font-weight:600; font-size:.92rem; min-height:1.3em; }
.formstatus--busy{ color:var(--brand-deep); }
.formstatus--error{ color:#C62828; }

/* success */
.success{ text-align:center; border:1px solid var(--line); border-radius:var(--r-lg); padding:2.6rem 1.6rem; background:#fff; box-shadow:var(--shadow-md); }
.success__icon svg{ width:64px; height:64px; fill:#2E7D32; }
.success h2{ font-size:clamp(1.4rem,3.4vw,2rem); font-weight:900; text-transform:uppercase; margin-top:.8rem; }
.success p{ color:var(--muted); margin-top:.6rem; }
.success__ref{ margin-top:1.2rem !important; font-size:1.05rem; color:var(--ink) !important; }
.success__ref strong{
  font-family:var(--font-head); font-size:1.4rem; color:var(--brand-deep);
  background:var(--mist); border:1px dashed var(--brand); border-radius:var(--r-sm);
  padding:.3rem .9rem; margin-left:.4rem; display:inline-block;
}
.success__note{ font-size:.9rem; max-width:52ch; margin-inline:auto; }
.success__actions{ display:flex; flex-wrap:wrap; justify-content:center; gap:.8rem; margin-top:1.8rem; }

/* ============================================================
   ADMIN DASHBOARD
   ============================================================ */
.adminwrap{ padding-block:clamp(2rem,5vw,3rem); }

.login{
  max-width:420px; margin-inline:auto;
  border:1px solid var(--line); border-radius:var(--r-lg);
  padding:2rem 1.8rem; background:#fff; box-shadow:var(--shadow-md); text-align:center;
}
.login__title{ font-size:1.2rem; font-weight:900; text-transform:uppercase; letter-spacing:.04em; margin-bottom:1.2rem; }
.login .field{ text-align:left; }
.login .btn{ width:100%; margin-top:1.4rem; }

.adminbar{
  display:flex; align-items:center; justify-content:space-between;
  gap:1rem 1.4rem; flex-wrap:wrap; margin-bottom:1.4rem;
}
.adminbar__stats{ display:flex; gap:.8rem; }
.stat{
  display:flex; flex-direction:column; align-items:center;
  border:1px solid var(--line); border-radius:var(--r-md);
  padding:.7rem 1.3rem; background:#fff; box-shadow:var(--shadow-sm);
}
.stat__num{ font-family:var(--font-head); font-weight:900; font-size:1.5rem; color:var(--brand-deep); line-height:1; }
.stat__label{ font-size:.68rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--muted); margin-top:.3rem; }

.adminbar__tools{ display:flex; gap:.6rem; flex-wrap:wrap; align-items:center; }
.searchbox{
  font-family:var(--font-body); font-size:.92rem; min-width:230px;
  padding:.7rem .9rem; border:1px solid var(--line); border-radius:var(--r-pill); background:#fff;
}
.searchbox:focus{ outline:none; border-color:var(--brand); box-shadow:0 0 0 3px rgba(224,98,14,.18); }
.adminbar__tools .btn{ padding:.7rem 1.2rem; font-size:.85rem; }

.tablewrap--admin{ background:#fff; }
.admintable{ width:100%; border-collapse:collapse; min-width:1000px; font-size:.88rem; }
.admintable th{
  background:var(--ink); color:#fff; text-align:left; position:sticky; top:0;
  font-family:var(--font-head); font-weight:800; font-size:.7rem;
  letter-spacing:.07em; text-transform:uppercase; padding:.75rem .8rem; white-space:nowrap;
}
.admintable td{ padding:.7rem .8rem; border-top:1px solid var(--line); vertical-align:top; }
.admintable tbody tr:nth-child(even){ background:var(--mist); }
.admintable tbody tr:hover{ background:#FFF6EE; }
.admintable a{ color:var(--brand-deep); }
.admintable small{ color:var(--muted); }
.admintable .mono{ font-family:var(--font-head); font-weight:800; color:var(--brand-deep); white-space:nowrap; }
.admintable .nowrap{ white-space:nowrap; }
.admintable .empty{ text-align:center; color:var(--muted); padding:2.4rem; }

.docs{ display:flex; flex-wrap:wrap; gap:.3rem; min-width:200px; }
.doclink{
  font-family:var(--font-head); font-weight:700; font-size:.68rem;
  letter-spacing:.03em; text-transform:uppercase; cursor:pointer;
  padding:.32rem .6rem; border-radius:var(--r-pill);
  border:1px solid var(--brand); background:#fff; color:var(--brand-deep);
  transition:background .18s, color .18s;
}
.doclink:hover{ background:var(--brand); color:#fff; }
.doclink[disabled]{ opacity:.55; cursor:default; }
.doclink--missing{ border-color:var(--line); color:var(--muted); cursor:default; }
.doclink--missing:hover{ background:#fff; color:var(--muted); }

.adminnote{ color:var(--muted); font-size:.82rem; margin-top:.9rem; text-align:center; }

/* ============================================================
   PAYMENTS
   ============================================================ */
.feenote{
  display:inline-flex; flex-direction:column; align-items:center; gap:.15rem;
  background:var(--mist); border:1px solid var(--line); border-radius:var(--r-md);
  padding:.9rem 1.6rem; margin-bottom:1.2rem;
}
.feenote__label{
  font-family:var(--font-head); font-weight:700; font-size:.68rem;
  letter-spacing:.11em; text-transform:uppercase; color:var(--muted);
}
.feenote__amount{ font-family:var(--font-head); font-weight:900; font-size:1.6rem; color:var(--brand-deep); }
.feenote__hint{ font-size:.8rem; color:var(--muted); }

.paystate{
  margin-top:1.4rem; padding:1.2rem 1.3rem;
  background:var(--mist); border:1px solid var(--line); border-radius:var(--r-md);
}
.paystate.is-paid{ background:#F3FAF4; border-color:#2E7D32; }
.paystate__line{ font-family:var(--font-head); font-weight:800; color:var(--ink) !important; }
.paystate.is-paid .paystate__line{ color:#2E7D32 !important; }
.paystate__hint{ font-size:.88rem; margin-top:.4rem !important; }
.paystate .btn{ margin-top:1rem; }

.pay{
  display:inline-block; font-family:var(--font-head); font-weight:800;
  font-size:.66rem; letter-spacing:.06em; text-transform:uppercase;
  padding:.28rem .6rem; border-radius:var(--r-pill); border:1px solid;
}
.pay--paid{    color:#1B5E20; background:#E8F5E9; border-color:#A5D6A7; }
.pay--pending{ color:#8A5A00; background:#FFF7E6; border-color:#F0C879; }
.pay--unpaid{  color:#8A1F1F; background:#FDECEC; border-color:#EFB0B0; }

/* ============================================================
   APPLICANT STATUS PORTAL
   ============================================================ */
.statuswrap{ padding-block:clamp(2rem,5vw,3rem); max-width:820px; }
.statushead{
  display:flex; align-items:center; justify-content:space-between; gap:1rem 1.5rem;
  flex-wrap:wrap; border:1px solid var(--line); border-radius:var(--r-lg);
  padding:1.3rem 1.5rem; background:#fff; box-shadow:var(--shadow-sm);
}
.statushead__eyebrow{
  font-family:var(--font-head); font-weight:700; font-size:.66rem;
  letter-spacing:.12em; text-transform:uppercase; color:var(--muted);
}
.statushead__ref{ font-family:var(--font-head); font-weight:900; font-size:1.6rem; color:var(--brand-deep); }
.statushead__meta{ text-align:right; }
.statushead__meta .muted{ color:var(--muted); font-size:.9rem; }

.timeline{ margin:1.6rem 0 0; padding-left:.4rem; }
.tl{ display:flex; gap:1rem; padding-bottom:1.6rem; position:relative; }
.tl:not(:last-child)::before{
  content:''; position:absolute; left:11px; top:24px; bottom:0;
  width:2px; background:var(--line);
}
.tl__dot{
  flex:none; width:24px; height:24px; border-radius:50%; margin-top:1px;
  border:3px solid var(--line); background:#fff; position:relative; z-index:1;
}
.tl h3{ font-size:.98rem; font-weight:800; text-transform:uppercase; letter-spacing:.02em; }
.tl p{ color:var(--muted); font-size:.9rem; margin-top:.25rem; }
.tl--done .tl__dot{ border-color:#2E7D32; background:#2E7D32; box-shadow:inset 0 0 0 3px #fff; }
.tl--done h3{ color:#2E7D32; }
.tl--current .tl__dot{ border-color:var(--brand); background:var(--brand); box-shadow:inset 0 0 0 3px #fff; }
.tl--current h3{ color:var(--brand-deep); }
.tl--stop .tl__dot{ border-color:#C62828; background:#C62828; box-shadow:inset 0 0 0 3px #fff; }
.tl--stop h3{ color:#C62828; }
.tl--todo{ opacity:.62; }

.duebox{
  text-align:center; border:2px solid var(--brand); border-radius:var(--r-lg);
  padding:1.8rem 1.4rem; background:#FFF8F3; margin-top:.6rem;
}
.duebox--calm{ border-color:var(--line); background:var(--mist); }
.duebox__label{ font-family:var(--font-head); font-weight:800; text-transform:uppercase; letter-spacing:.04em; font-size:.9rem; }
.duebox__amount{ font-family:var(--font-head); font-weight:900; font-size:2.4rem; color:var(--brand-deep); margin:.3rem 0 1rem; }
.duebox__hint{ color:var(--muted); font-size:.85rem; margin-top:.8rem; }

.feenote__later{ font-size:.8rem; color:var(--muted); margin-top:.5rem; padding-top:.5rem; border-top:1px solid var(--line); }
.feenote__later b{ color:var(--brand-deep); }

/* admin: fee + admission cells */
.fees{ min-width:190px; }
.fees .pay{ display:block; margin-bottom:.25rem; }
.pay--locked{ color:#5C5C5C; background:#F0F0F0; border-color:#D5D5D5; }
.pay--adm-in_review{ color:#8A5A00; background:#FFF7E6; border-color:#F0C879; }
.pay--adm-admitted{  color:#1B5E20; background:#E8F5E9; border-color:#A5D6A7; }
.pay--adm-rejected{  color:#8A1F1F; background:#FDECEC; border-color:#EFB0B0; }
.adm{ min-width:130px; }
.adm__btns{ display:flex; flex-wrap:wrap; gap:.25rem; margin-top:.35rem; }
.admbtn{
  font-family:var(--font-head); font-weight:700; font-size:.64rem;
  text-transform:uppercase; letter-spacing:.04em; cursor:pointer;
  padding:.25rem .5rem; border-radius:var(--r-pill);
  border:1px solid var(--line); background:#fff; color:var(--muted);
}
.admbtn:hover{ border-color:var(--ink); color:var(--ink); }
.admbtn--yes:hover{ background:#2E7D32; border-color:#2E7D32; color:#fff; }
.admbtn--no:hover{ background:#C62828; border-color:#C62828; color:#fff; }
.admbtn[disabled]{ opacity:.5; cursor:default; }

/* ============================================================
   NEXT-STEP PAYMENT BOX (shown after a free submission)
   ============================================================ */
.nextstep{
  margin-top:1.6rem; padding:1.6rem 1.4rem;
  border:2px solid var(--brand); border-radius:var(--r-lg);
  background:#FFF8F3;
  display:flex; flex-direction:column; align-items:center; gap:.35rem;
}
.nextstep__eyebrow{
  font-family:var(--font-head); font-weight:700; font-size:.66rem;
  letter-spacing:.14em; text-transform:uppercase; color:var(--brand-deep);
}
.nextstep__label{
  font-family:var(--font-head); font-weight:800; font-size:1rem;
  text-transform:uppercase; letter-spacing:.02em; color:var(--ink) !important;
}
.nextstep__amount{
  font-family:var(--font-head); font-weight:900; font-size:2.4rem;
  color:var(--brand-deep) !important; line-height:1; margin:.3rem 0 .9rem;
}
.nextstep__hint{ font-size:.83rem; color:var(--muted) !important; margin-top:.7rem !important; }
.nextstep .formstatus{ margin-top:.6rem; }

.feenote__amount{ color:#2E7D32; }
/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1000px){
  .main__grid{ grid-template-columns:1fr; }
  .cta__grid{ grid-template-columns:1fr; }
  .offices__list{ grid-template-columns:repeat(2,1fr); }
  .hero__inner{ grid-template-columns:1fr; }
  .hero__seal{ justify-content:flex-start; }
  .seal{ width:196px; height:196px; }
  .seal__mid{ font-size:2.1rem; }
}

/* The desktop nav runs out of room well before the other mobile rules
   are needed, so the header switches to the menu button earlier. */
@media (max-width:1000px){
  .navtoggle{ display:flex; }
  .nav{
    position:absolute; left:0; right:0; top:100%;
    flex-direction:column; align-items:stretch; gap:0;
    background:#fff; border-bottom:1px solid var(--line);
    box-shadow:var(--shadow-md);
    max-height:0; overflow:hidden; transition:max-height .3s ease;
  }
  .nav.is-open{ max-height:420px; }
  .nav a{ padding:1rem 20px; border-bottom:1px solid var(--line); }
  .nav a:not(.btn)::after{ display:none; }
  .nav .btn{ margin:1rem 20px; justify-content:center; }
  .brandlock__x,.brandlock__partner{ display:none; }
  .brandlock__kc{ height:44px; }
}

@media (max-width:820px){
  .topbar__partner{ display:none; }
  .topbar__inner{ justify-content:center; }
  .topbar__contacts{ gap:1rem; justify-content:center; font-size:.78rem; }



  .accred__note{ padding-left:0; border-left:0; border-top:1px solid rgba(255,255,255,.2); padding-top:.9rem; }
  .accred__inner{ flex-direction:column; }

  .proglist{ grid-template-columns:1fr; grid-template-rows:none; grid-auto-flow:row; }
  .reqlist{ grid-template-columns:1fr; }
  .grid2{ grid-template-columns:1fr; }
  .adminbar{ flex-direction:column; align-items:stretch; }
  .adminbar__tools{ flex-direction:column; align-items:stretch; }
  .searchbox{ min-width:0; width:100%; }
  .statushead__meta{ text-align:left; }
  .subnav{ top:62px; }
  .proglist--2{ grid-template-columns:1fr !important; grid-template-rows:none !important; grid-auto-flow:row !important; }
  .price{ min-width:100%; }
  .panel__title{ margin-top:-2.1rem; }

  .trust__inner{ justify-content:center; gap:1.2rem 1.6rem; }
  .trust__item{ flex:1 1 40%; }

  .fast__inner{ flex-direction:column; text-align:center; }

  .stickybar{
    display:grid; grid-template-columns:1fr 1.6fr;
    position:fixed; left:0; right:0; bottom:0; z-index:70;
    background:#fff; border-top:1px solid var(--line);
    box-shadow:0 -6px 20px rgba(28,11,6,.14);
  }
  .stickybar a{
    padding:1rem; text-align:center; text-decoration:none;
    font-family:var(--font-head); font-weight:800; font-size:.95rem;
  }
  .stickybar__call{ color:var(--ink); }
  .stickybar__apply{ background:var(--brand); color:#fff; }
  body{ padding-bottom:60px; }
}

@media (max-width:520px){
  .offices__list{ grid-template-columns:1fr; }
  .hero__title{ font-size:clamp(2rem,9vw,2.6rem); }
  .panel{ padding-inline:1.1rem; }
  .panel__title{ font-size:.92rem; padding-inline:1.1rem; }
  .trust__item{ flex:1 1 100%; justify-content:center; }
  .trust__wecare{ width:100%; text-align:center; }
}
