/* =========================================================================
   PROFESSIONAL LAYER (loaded after premium.css)
   One palette, used with restraint:
     - Burgundy  #3B1A27  : headings, buttons, dark sections
     - Gold      #CFB047  : thin rules, small icons, one call-to-action on dark
     - White / warm grey  : every page background
   No gradients on buttons or cards, no glows, no colour-coded cards,
   no looping animations.  To go back, remove the link to this file.
   ========================================================================= */
:root {
  --pf-burg: #3B1A27;
  --pf-burg-2: #4B2133;
  --pf-gold: #CFB047;
  --pf-gold-d: #8E6B2A;
  --pf-gold-l: #E3C45A;
  --pf-bg: #FFFFFF;
  --pf-bg-2: #FAF7F5;
  --pf-line: #E9E3E1;
  --pf-text: #4A4247;
  --pf-soft: #F4EDEF;
}

/* ---------- no looping motion, no glows ---------- */
.home-page .programme-card-text .pc-icon, .home-page .feature-card .fi, .home-page .purpose-icon,
.home-page .leader-symbol, .fx-spark, .sf-logo img { animation: none !important; }
.scroll-progress { background: var(--pf-gold) !important; box-shadow: none !important; height: 3px; }
.home-page .home-btn::after { display: none !important; }

/* ---------- hero: flat burgundy ---------- */
.home-page .home-hero {
  background: var(--pf-burg) !important; min-height: 0;
  padding: clamp(56px, 7vw, 96px) 0 clamp(88px, 10vw, 130px);
}
.hero-fx .fx-orb, .hero-fx .fx-star, .hero-fx .fx-spark, .hv-glow { display: none !important; }
.fx-pattern { opacity: .3; }
.hero-curve path { fill: #fff; }
.home-page .home-hero h1 span { color: var(--pf-gold-l) !important; background: none !important; -webkit-text-fill-color: currentColor !important; }
.home-page .hero-kicker { background: transparent !important; border: 1px solid rgba(207, 176, 71, .55) !important; color: var(--pf-gold-l) !important; box-shadow: none !important; }
.home-page .hero-kicker i { color: var(--pf-gold-l) !important; }
.hv-chip { background: rgba(255, 255, 255, .08) !important; border: 1px solid rgba(255, 255, 255, .22) !important; color: #fff !important; box-shadow: none !important; }

/* ---------- buttons: flat, two kinds only ---------- */
.home-page .home-btn, .btn, .b, .nav-apply {
  background: var(--pf-burg) !important; background-image: none !important; border: 1px solid var(--pf-burg) !important;
  color: #fff !important; box-shadow: none !important; border-radius: 10px !important; text-shadow: none !important;
}
.home-page .home-btn:hover, .btn:hover, .b:hover { background: var(--pf-burg-2) !important; border-color: var(--pf-burg-2) !important; transform: none !important; }
.home-page .home-btn-outline { background: #fff !important; color: var(--pf-burg) !important; border-color: #CFC6C2 !important; }
.home-page .home-btn-outline:hover { background: var(--pf-bg-2) !important; border-color: var(--pf-burg) !important; }
.home-page .home-btn-gold, .nav-apply { background: var(--pf-gold) !important; border-color: var(--pf-gold) !important; color: var(--pf-burg) !important; }
.home-page .home-btn-gold:hover, .nav-apply:hover { background: var(--pf-gold-l) !important; border-color: var(--pf-gold-l) !important; }
/* buttons that sit on dark backgrounds */
.home-page .home-hero .home-btn:not(.home-btn-gold),
.home-page .home-levels .home-btn:not(.home-btn-gold),
.home-page .home-cta .home-btn:not(.home-btn-gold) {
  background: transparent !important; border-color: rgba(255, 255, 255, .55) !important; color: #fff !important;
}
.home-page .home-hero .home-btn:not(.home-btn-gold):hover,
.home-page .home-levels .home-btn:not(.home-btn-gold):hover,
.home-page .home-cta .home-btn:not(.home-btn-gold):hover { background: rgba(255, 255, 255, .12) !important; }

/* ---------- section backgrounds: white and warm grey only ---------- */
.home-page .home-news, .home-page .home-intro, .home-page .home-admissions, .home-page .home-contact,
.home-page .home-purpose { background: var(--pf-bg-2) !important; background-image: none !important; }
.home-page .home-features, .home-page .home-lectures, .home-page .home-testimonials,
.home-page .home-programmes, .home-page .home-leadership, .home-page .home-motto-section,
.home-page .home-cta-section, .home-page .home-facts { background: #fff !important; background-image: none !important; }
.home-page .home-programmes::before, .home-page .home-leadership::before { display: none !important; }
.home-page .home-facts { border-top: 3px solid var(--pf-gold); border-bottom: 1px solid var(--pf-line); }
.home-page .home-levels { background: var(--pf-burg) !important; background-image: none !important; }
.home-page .home-levels::before { opacity: .25; }

/* ---------- headings and small labels ---------- */
.home-page h1, .home-page h2, .home-page h3, .home-page h4 { color: var(--pf-burg); }
.home-page .home-hero h1, .home-page .home-levels h2, .home-page .home-levels h3,
.home-page .home-cta h2, .home-page .home-cta h3, .home-page .purpose-card h3 { color: #fff; }
.home-page .home-section-heading h2 span, .home-page .home-heading span, .home-page h2 span { color: inherit !important; }
.home-page .home-eyebrow { color: var(--pf-gold-d) !important; }
.home-page .home-eyebrow::before, .home-page .home-eyebrow::after { background: var(--pf-gold) !important; }
.home-page .home-description, .home-page p { color: var(--pf-text); }
.home-page .home-hero p, .home-page .home-levels p, .home-page .home-cta p, .home-page .purpose-card p { color: rgba(255, 255, 255, .88); }

/* ---------- quick facts: one icon style ---------- */
.home-page .home-facts .col-6 .fact-item .fact-icon {
  background: var(--pf-soft) !important; color: var(--pf-burg) !important; box-shadow: none !important;
  transform: none !important; border-radius: 12px; border: 1px solid var(--pf-line) !important;
}
.home-page .fact-item:hover { background: var(--pf-bg-2); }
.home-page .fact-item:hover .fact-icon { transform: none !important; }

/* ---------- ribbon ---------- */
.ribbon { background: var(--pf-burg) !important; }
.ribbon::before { background: linear-gradient(90deg, var(--pf-burg), transparent); }
.ribbon::after { background: linear-gradient(-90deg, var(--pf-burg), transparent); }
.ribbon-set span::after { box-shadow: none; }

/* ---------- cards: white, thin border, light shadow ---------- */
.home-page .feature-card, .home-page .news-item, .home-page .leader-card, .home-page .admission-step,
.home-page .programme-card-text, .home-page .home-contact .contact-panel {
  background: #fff !important; background-image: none !important; border: 1px solid var(--pf-line) !important;
  border-radius: 14px !important; box-shadow: 0 2px 10px rgba(59, 26, 39, .06) !important;
}
.home-page .programme-card-text:hover, .home-page .leader-card:hover, .home-page .admission-step:hover,
.home-page .feature-card:hover { transform: none !important; box-shadow: 0 6px 18px rgba(59, 26, 39, .1) !important; }
.home-page .news-item { border-left: 4px solid var(--pf-gold) !important; }
.home-page .feature-card .fi, .home-page .purpose-icon, .home-page .pc-icon {
  background: var(--pf-soft) !important; background-image: none !important; box-shadow: none !important; transform: none !important;
  border: 1px solid var(--pf-line); color: var(--pf-burg) !important;
}
.home-page .feature-card .fi i, .home-page .pc-icon i { color: var(--pf-burg) !important; }

/* programme cards: all four identical, header flat burgundy */
.home-page .programme-card-text, .home-page .col-md-6 .programme-card-text {
  --acc: var(--pf-burg); --acc2: var(--pf-burg); --acc-soft: var(--pf-soft);
}
.home-page .programme-card-text .pc-head { background: var(--pf-burg) !important; background-image: none !important; }
.home-page .programme-card-text .pc-head * { color: #fff; }
.home-page .programme-card-text .pc-icon { background: rgba(255, 255, 255, .1) !important; border-color: rgba(255, 255, 255, .3); }
.home-page .programme-card-text .pc-icon i { color: var(--pf-gold-l) !important; }
.home-page .programme-card-text .programme-label { background: var(--pf-soft) !important; color: var(--pf-burg) !important; }
.home-page .pt-ar { color: var(--pf-burg) !important; }
.home-page .pt-class { background: var(--pf-soft) !important; color: var(--pf-burg) !important; }
.home-page .pc-link { background: var(--pf-burg) !important; background-image: none !important; box-shadow: none !important; color: #fff !important; border-radius: 10px; }
.home-page .pc-link-apply { background: #fff !important; color: var(--pf-burg) !important; border: 1px solid var(--pf-burg) !important; }
.home-page .pc-count { background: var(--pf-burg) !important; }
.home-page .pc-more > summary, .home-page .pc-more > summary i { color: var(--pf-burg) !important; }

/* purpose cards: mission dark, vision light */
.home-page .purpose-card { background: var(--pf-burg) !important; background-image: none !important; border: 0 !important; box-shadow: none !important; border-radius: 14px !important; }
.home-page .purpose-card::before { display: none !important; }
.home-page .purpose-card.vision-card { background: #fff !important; border: 1px solid var(--pf-line) !important; border-top: 4px solid var(--pf-gold) !important; box-shadow: none !important; }
.home-page .purpose-card.vision-card h3 { color: var(--pf-burg) !important; }
.home-page .purpose-card.vision-card p { color: var(--pf-text) !important; }
.home-page .purpose-icon { color: var(--pf-gold-l) !important; background: rgba(255, 255, 255, .1) !important; border-color: rgba(255, 255, 255, .25); }
.home-page .vision-card .purpose-icon { color: var(--pf-gold-d) !important; background: var(--pf-soft) !important; border-color: var(--pf-line); }

/* levels */
.home-page .level-pills a { background: rgba(255, 255, 255, .06) !important; border: 1px solid rgba(255, 255, 255, .28) !important; color: #fff !important; box-shadow: none !important; backdrop-filter: none; }
.home-page .level-pills a:hover { background: var(--pf-gold) !important; color: var(--pf-burg) !important; border-color: var(--pf-gold) !important; transform: none !important; box-shadow: none !important; }
.home-page .placement-box { background: rgba(255, 255, 255, .06) !important; border: 1px solid rgba(255, 255, 255, .25) !important; backdrop-filter: none; }

/* admission steps, leaders, contact */
.home-page .step-number { background: var(--pf-burg) !important; background-image: none !important; box-shadow: none !important; color: #fff !important; }
.home-page .admission-step::after { display: none !important; }
.home-page .leader-symbol { background: #fff !important; border: 2px solid var(--pf-gold) !important; box-shadow: none !important; }
.home-page .leader-role { background: var(--pf-soft) !important; color: var(--pf-burg) !important; }
.home-page .contact-icon { background: var(--pf-soft) !important; background-image: none !important; color: var(--pf-burg) !important; box-shadow: none !important; border: 1px solid var(--pf-line); }

/* motto and closing call-to-action: flat burgundy panels */
.home-page .home-motto, .home-page .home-cta { background: var(--pf-burg) !important; background-image: none !important; box-shadow: none !important; border-radius: 14px; }
.home-page .home-motto::after, .home-page .home-cta::before { opacity: .25; }
.home-page .home-cta h2 span, .home-page .home-cta h2 em { color: var(--pf-gold-l) !important; }

/* notices */
.home-page .home-notice { box-shadow: none !important; }

/* top bar and footer */
.public-nav { background: var(--pf-burg) !important; box-shadow: none !important; border-bottom: 3px solid var(--pf-gold) !important; }
.site-footer { background: var(--pf-burg) !important; background-image: none !important; }
.sf-main .sf-social a:hover, .sf-main .sf-social a:focus-visible { background: var(--pf-gold) !important; color: var(--pf-burg) !important; }

/* ---------- finishing: headings in burgundy everywhere, no shine on card headers ---------- */
.home-page .home-section .home-heading, .home-page .home-section-heading .home-heading,
.home-page .intro-copy .home-heading { color: var(--pf-burg) !important; background: none !important; -webkit-text-fill-color: currentColor !important; }
.home-page .home-levels .home-heading { color: #fff !important; }
.home-page .home-cta h2, .home-page .home-cta .home-heading { color: #fff !important; -webkit-text-fill-color: #fff !important; background: none !important; }
.home-page .programme-card-text .pc-head::before, .home-page .programme-card-text .pc-head::after { display: none !important; }
.home-page .home-facts, .home-page .home-facts .fact-item { box-shadow: none !important; }
.home-page .home-facts .container { box-shadow: none !important; }

/* ---------- announcements: one quiet link on the home page ---------- */
.home-page .home-notice-link { background: var(--pf-bg-2) !important; color: var(--pf-burg) !important; border-bottom: 1px solid var(--pf-line); margin-top: 0; }
.home-page .home-notice-link .home-notice-in { padding-top: .55rem; padding-bottom: .55rem; justify-content: space-between; }
.home-page .home-notice-link .home-notice-icon { color: var(--pf-gold-d); opacity: 1; }
.home-page .home-notice-link .home-notice-text { flex: 1; font-size: .92rem; color: var(--pf-burg) !important; }
.home-page .home-notice-count { display: inline-block; min-width: 22px; padding: 0 .4rem; margin-left: .35rem; border-radius: 999px; background: var(--pf-burg); color: #fff; font-size: .78rem; font-weight: 700; text-align: center; line-height: 22px; }
.home-page .home-notice-link .home-notice-btn { background: transparent !important; color: var(--pf-burg) !important; border: 1px solid var(--pf-burg); padding: .3rem .9rem; box-shadow: none; }
.home-page .home-notice-link .home-notice-btn:hover { background: var(--pf-burg) !important; color: #fff !important; filter: none; }
@media (max-width: 767.98px) {
  .home-page .home-notice-link .home-notice-in { flex-wrap: nowrap; }
  .home-page .home-notice-link .home-notice-text { flex-basis: auto; }
  .home-page .home-notice-link .home-notice-btn { order: 0; font-size: .82rem; white-space: nowrap; }
}
.home-page .home-notice-link .home-notice-text { display: flex; align-items: center; gap: .1rem; white-space: nowrap; min-width: 0; flex-basis: auto; }
@media (max-width: 767.98px) { .home-page .home-notice-link .home-notice-in { gap: .5rem; } .home-page .home-notice-link .home-notice-text { flex: 1 1 auto; } }

/* ---------- inner-page banner (About, Programmes, Admissions, FAQ, Contact...): compact ---------- */
.public-hero {
  padding: 2.25rem 0 2rem !important; min-height: 0 !important;
  background: var(--pf-burg) !important; background-image: none !important;
  border-bottom: 3px solid var(--pf-gold);
}
.public-hero::before { opacity: .22; inset: 0; }
.public-hero h1 {
  font-size: clamp(1.6rem, 3.4vw, 2.3rem) !important; line-height: 1.2; letter-spacing: -.01em;
  margin: 0 0 .6rem !important; max-width: 820px;
}
.public-hero p { font-size: 1rem !important; line-height: 1.6 !important; margin: 0 0 .9rem !important; max-width: 720px; color: rgba(255, 255, 255, .86); }
.public-hero p:last-child, .public-hero .container > :last-child { margin-bottom: 0 !important; }
.public-hero .public-eyebrow { margin: 0 0 .5rem !important; font-size: .78rem; letter-spacing: .14em; color: var(--pf-gold-l) !important; }
.public-hero .btn { padding: .6rem 1.05rem; }
.public-page { padding-top: 2rem; }
@media (max-width: 767.98px) {
  .public-hero { padding: 1.5rem 0 1.35rem !important; }
  .public-hero h1 { font-size: 1.55rem !important; }
  .public-hero p { font-size: .95rem !important; }
  .public-page { padding-top: 1.5rem; }
}
/* cards on inner pages: same calm style as the home page */
.public-card { border: 1px solid var(--pf-line) !important; border-radius: 14px !important; box-shadow: 0 2px 10px rgba(59, 26, 39, .06) !important; }
.public-card::before { height: 3px; background: var(--pf-gold); }
.public-card:hover { transform: none !important; box-shadow: 0 6px 18px rgba(59, 26, 39, .1) !important; }

/* =========================================================================
   BUTTONS: one consistent system on every public page
   primary = flat burgundy | secondary = white with burgundy outline
   on dark banners: primary = gold, "closed" = quiet outline
   ========================================================================= */
.btn, a.btn, span.btn, .nav-apply {
  display: inline-flex !important; align-items: center; justify-content: center; gap: .5rem;
  min-height: 44px; padding: .65rem 1.35rem !important; margin: .25rem .4rem .25rem 0;
  border-radius: 10px !important; font-size: .95rem; font-weight: 700; line-height: 1.2; text-decoration: none;
  box-shadow: none !important; transform: none !important; text-shadow: none !important; filter: none !important;
  background: var(--pf-burg) !important; border: 1px solid var(--pf-burg) !important; color: #fff !important;
}
.btn:hover, a.btn:hover { background: var(--pf-burg-2) !important; border-color: var(--pf-burg-2) !important; color: #fff !important; }
.btn-wa, a.btn-wa { margin-left: 0 !important; background: #fff !important; color: var(--pf-burg) !important; border: 1px solid var(--pf-burg) !important; }
.btn-wa:hover, a.btn-wa:hover { background: var(--pf-soft) !important; color: var(--pf-burg) !important; }
/* "Admissions closed": clearly not clickable, but quiet, not a grey blob */
.btn-closed, .btn-closed:hover, span.btn.btn-closed {
  background: var(--pf-soft) !important; border: 1px solid #DDD2D6 !important; color: #7A6F74 !important;
  cursor: not-allowed; opacity: 1 !important; pointer-events: none;
}
/* on dark banners */
.public-hero .btn:not(.btn-closed), .about-pro .public-hero .btn:not(.btn-closed), .public-hero a.btn-wa {
  background: var(--pf-gold) !important; border-color: var(--pf-gold) !important; color: var(--pf-burg) !important;
}
.public-hero .btn:not(.btn-closed):hover { background: var(--pf-gold-l) !important; border-color: var(--pf-gold-l) !important; color: var(--pf-burg) !important; }
.public-hero .btn.btn-closed, .about-pro .public-hero .btn.btn-closed {
  background: transparent !important; border: 1px solid rgba(255, 255, 255, .4) !important; color: rgba(255, 255, 255, .8) !important;
}
/* top menu button */
.public-nav .nav-apply { min-height: 0; padding: .55rem 1.1rem !important; margin: 0; background: var(--pf-gold) !important; border-color: var(--pf-gold) !important; color: var(--pf-burg) !important; font-size: .9rem; }
.public-nav .nav-apply.btn-closed { background: transparent !important; border: 1px solid rgba(255, 255, 255, .4) !important; color: rgba(255, 255, 255, .8) !important; }
.about-pro .public-page .btn { background: var(--pf-burg) !important; border-color: var(--pf-burg) !important; color: #fff !important; }
@media (max-width: 575.98px) {
  .public-hero .btn, .public-card .btn, .public-page .btn { display: flex !important; width: 100%; margin-right: 0; }
}

/* ---------- headings on inner pages: burgundy, not crimson ---------- */
.public-page h1, .public-page h2, .public-page h3, .public-page h4,
.public-card h2, .public-card h3 { color: var(--pf-burg) !important; }
.public-hero h1, .public-hero h2, .public-hero h3 { color: #fff !important; }
.public-hero .public-eyebrow { color: var(--pf-gold-l) !important; }
.public-page .public-eyebrow { color: var(--pf-gold-d) !important; }
.public-page a:not(.btn):not(.b) { color: var(--pf-burg); }
.public-page a:not(.btn):not(.b):hover { color: var(--pf-gold-d); }

/* ---------- About page: its own pink / yellow / blue cards -> white cards ---------- */
body .about-pro .public-card, body .about-pro .col-lg-7 .public-card, body .about-pro .col-lg-5 .public-card,
body .about-pro .col-md-4:nth-child(n) .public-card {
  background: #fff !important; border: 1px solid var(--pf-line) !important; border-top: 3px solid var(--pf-gold) !important;
  box-shadow: 0 2px 10px rgba(59, 26, 39, .06) !important;
}
body .about-pro .public-card h2, body .about-pro .public-card h3, body .about-pro .col-lg-5 .public-card h2,
body .about-pro .col-md-4:nth-child(n) .public-card h3 { color: var(--pf-burg) !important; }
body .about-pro .public-card p, body .about-pro .public-card li { color: var(--pf-text) !important; }
body .about-pro .public-page .public-eyebrow { color: var(--pf-gold-d) !important; }
body .about-pro .quote-panel, .quote-panel { background: var(--pf-bg-2) !important; border-left: 4px solid var(--pf-gold) !important; color: var(--pf-burg) !important; border-radius: 0 12px 12px 0; }
.public-page { background: #fff; }
.public-page .fee-amount, .public-page .stat-box h3 { color: var(--pf-burg) !important; }

/* keep the existing rule: the top-bar button is hidden on small phones (it overflowed the bar) */
@media (max-width: 950px) { .public-nav .nav-apply, .public-nav .btn.nav-apply { display: none !important; } }
/* Programmes page: section headings burgundy (outside the dark banner) */
.prog h2:not(.public-hero *), .prog h3:not(.public-hero *) { color: var(--pf-burg) !important; }
.prog .eyebrow, .prog [class*="eyebrow"]:not(.public-hero *) { color: var(--pf-gold-d) !important; }


/* ==========================================================================
   SUBJECTS RIBBON: slow, seamless marquee
   - 4 identical sets; the track slides exactly 50% (= 2 sets), then loops
   - soft burgundy fades on both edges
   - pauses on hover / keyboard focus, stays still for reduced-motion users
   ========================================================================== */
.ribbon { padding: 1.15rem 0; }
.ribbon::before, .ribbon::after { width: 110px; }
.ribbon-set span { gap: 1.6rem; padding-right: 1.6rem; transition: color .3s ease; }
.ribbon-set .ar { text-shadow: 0 1px 12px rgba(0, 0, 0, .25); }

@media (prefers-reduced-motion: no-preference) {
  .ribbon-track {
    animation: pf-marquee 55s linear infinite !important;
    will-change: transform;
    backface-visibility: hidden;
  }
  .ribbon:hover .ribbon-track { animation-play-state: paused !important; }
  @keyframes pf-marquee { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-50%, 0, 0); } }

  /* diamonds: a calm, staggered glow so the strip feels alive without being busy */
  .ribbon-set span::after { animation: pf-diamond 4.5s ease-in-out infinite; }
  .ribbon-set span:nth-child(2n)::after { animation-delay: 1.1s; }
  .ribbon-set span:nth-child(3n)::after { animation-delay: 2.2s; }
  @keyframes pf-diamond {
    0%, 100% { transform: rotate(45deg) scale(1);   opacity: .85; }
    50%      { transform: rotate(45deg) scale(1.35); opacity: 1; }
  }
}
@media (prefers-reduced-motion: reduce) {
  .ribbon-track { animation: none !important; transform: none; }
}
@media (max-width: 575px) { .ribbon-set span { font-size: 1.05rem; } .ribbon-set .ar { font-size: 1.3rem; } }
