/* ============================================================
   YEEB 2026 — Theme CSS
   Ported from the YEEB Visily design system.
   Static, no Tailwind CDN. WCAG AA. Mobile-first.
   ============================================================ */

:root {
  /* Brand */
  --yeeb-green:        #1FAD4E;
  --yeeb-green-bright: #1DC956;
  --yeeb-green-hover:  #18a948;
  --yeeb-green-dark:   #188a3e;
  --yeeb-green-deep:   #003D28;
  --yeeb-red:          #DD4537;
  --yeeb-red-hover:    #C93428;
  --yeeb-gold:         #FFCE00;
  --yeeb-gold-alt:     #FAC938;
  --yeeb-gold-soft:    #4B3202;
  --yeeb-mint:         #EDFDF1;
  --yeeb-mint-soft:    #F2FDF6;

  /* Surfaces */
  --yeeb-bg:           #ffffff;
  --yeeb-bg-alt:       #F9FAFB;
  --yeeb-bg-mute:      #fafafb;
  --yeeb-bg-grid:      #f3f4f6;
  --yeeb-border:       #dee1e6;
  --yeeb-border-soft:  #e5e7eb;
  --yeeb-border-mute:  #f1f5f9;

  /* Text */
  --yeeb-text:         #171a1f;
  --yeeb-text-2:       #181B20;
  --yeeb-text-3:       #19191F;
  --yeeb-body:         #565d6d;
  --yeeb-muted:        #8F96A3;
  --yeeb-muted-2:      #9CA3AF;
  --yeeb-muted-3:      #D1D5DB;

  /* Type */
  --yeeb-ff-head: "Poppins", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --yeeb-ff-body: "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --yeeb-ff-alt:  var(--yeeb-ff-head);

  /* Sizes */
  --fs-xs:    12px;
  --fs-sm:    14px;
  --fs-base:  16px;
  --fs-lg:    18px;
  --fs-xl:    20px;
  --fs-2xl:   24px;
  --fs-3xl:   30px;
  --fs-4xl:   36px;
  --fs-5xl:   48px;
  --fs-6xl:   60px;

  /* Radii */
  --r-sm:  6px;
  --r-md:  8px;
  --r-lg:  12px;
  --r-xl:  16px;
  --r-2xl: 20px;
  --r-pill: 9999px;

  /* Shadows */
  --shadow-soft: 0 10px 25px -5px rgba(0,0,0,0.05), 0 8px 10px -6px rgba(0,0,0,0.05);
  --shadow-md:   0 4px 6px -1px rgba(0,0,0,0.07), 0 2px 4px -2px rgba(0,0,0,0.05);
  --shadow-lg:   0 20px 25px -5px rgba(0,0,0,0.08), 0 10px 10px -5px rgba(0,0,0,0.02);
  --shadow-xl:   0 25px 50px -12px rgba(0,0,0,0.1);

  /* Layout */
  --container:   1180px;
  --gutter:      24px;
  --section-py:  84px;

  --duration: 200ms;
  --easing:   cubic-bezier(0.4, 0, 0.2, 1);
}

/* ---------------- Reset ---------------- */

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--yeeb-ff-body);
  font-size: var(--fs-base);
  line-height: 1.6;
  color: var(--yeeb-text);
  background: var(--yeeb-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: var(--yeeb-green); text-decoration: none; transition: color var(--duration) var(--easing); }
a:hover { color: var(--yeeb-green-hover); }
button { font-family: inherit; cursor: pointer; }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--yeeb-ff-head);
  font-weight: 700;
  line-height: 1.2;
  color: var(--yeeb-text);
  letter-spacing: 0;
  margin: 0 0 .5em;
}
p { margin: 0 0 1em; color: var(--yeeb-body); }
p:last-child { margin-bottom: 0; }

::selection { background: rgba(34,197,94,.2); color: #166534; }

/* Accessibility helpers */
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
:focus-visible { outline: 3px solid var(--yeeb-green); outline-offset: 2px; border-radius: 4px; }

/* ---------------- Containers ---------------- */

.yeeb-container {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 16px;
}
@media (min-width: 640px)  { .yeeb-container { padding: 0 24px; } }
@media (min-width: 1024px) { .yeeb-container { padding: 0 32px; } }

.yeeb-section {
  padding-top: 64px;
  padding-bottom: 64px;
}
@media (min-width: 1024px) {
  .yeeb-section { padding-top: var(--section-py); padding-bottom: var(--section-py); }
}
.yeeb-section--tight { padding-top: 48px; padding-bottom: 48px; }
.yeeb-section--alt { background: var(--yeeb-bg-alt); }
.yeeb-section--mute { background: var(--yeeb-bg-mute); }
.yeeb-section--dark { background: var(--yeeb-green-deep); color: #fff; }
.yeeb-section--dark h1, .yeeb-section--dark h2, .yeeb-section--dark h3 { color: #fff; }

.yeeb-section__head { text-align: center; max-width: 760px; margin: 0 auto 56px; }
.yeeb-section__eyebrow {
  display: inline-block;
  font-family: var(--yeeb-ff-body);
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
  font-size: 11px;
  color: var(--yeeb-green);
  margin-bottom: 14px;
}
.yeeb-section__title { font-size: var(--fs-3xl); }
@media (min-width: 768px) { .yeeb-section__title { font-size: var(--fs-4xl); } }
.yeeb-section__lede { color: var(--yeeb-body); font-size: var(--fs-lg); margin-top: 12px; }

/* ---------------- Header ---------------- */

.yeeb-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255,255,255,.85);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--yeeb-border-soft);
}
.yeeb-header__inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: 24px; height: 56px;
}
.yeeb-logo { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.yeeb-logo__mark {
  width: 28px; height: 28px; border-radius: 6px;
  background: var(--yeeb-green);
  display: grid; place-items: center;
  color: #fff;
}
.yeeb-logo__mark img { width: 17px; height: 17px; filter: brightness(0) invert(1); }
.yeeb-logo__word {
  font-family: var(--yeeb-ff-head); font-weight: 800;
  font-size: 15px; color: var(--yeeb-green); letter-spacing: 0;
}

/* Custom logo uploaded via Customizer — sits in place of the green tile mark.
   Max 150px wide on desktop; scales down to ~120px on phones. */
.yeeb-logo__img {
  max-width: 112px;
  max-height: 34px;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
}
@media (max-width: 640px) {
  .yeeb-logo__img { max-width: 120px; max-height: 40px; }
  .yeeb-logo__word { font-size: 18px; }
}

/* Footer logo — same constraints as header on dark background. */
.yeeb-footer__logo-img {
  max-width: 150px;
  max-height: 56px;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
  /* Allow the user's logo to display as-uploaded; if they upload a dark logo
     it won't be auto-inverted, but the white/transparent versions render fine
     on the deep-green footer. */
}
@media (max-width: 640px) {
  .yeeb-footer__logo-img { max-width: 130px; max-height: 48px; }
}

.yeeb-nav { display: none; align-items: center; gap: 28px; }
@media (min-width: 880px) { .yeeb-nav { display: flex; } }
.yeeb-nav a, .yeeb-nav button {
  background: none; border: 0; padding: 0;
  font-size: 12px; font-weight: 600;
  color: var(--yeeb-muted);
  text-decoration: none;
  display: inline-flex; align-items: center; gap: 4px;
}
.yeeb-nav a:hover, .yeeb-nav button:hover { color: var(--yeeb-green); }
.yeeb-nav a.is-active { color: var(--yeeb-green); }
.yeeb-nav .has-dropdown { position: relative; }
.yeeb-nav .has-dropdown__menu {
  position: absolute; top: 100%; left: 0; min-width: 240px;
  background: #fff; border: 1px solid var(--yeeb-border-soft);
  border-radius: var(--r-lg); padding: 8px;
  box-shadow: var(--shadow-lg);
  opacity: 0; visibility: hidden; transform: translateY(6px);
  transition: all var(--duration) var(--easing);
}
.yeeb-nav .has-dropdown:hover .has-dropdown__menu,
.yeeb-nav .has-dropdown:focus-within .has-dropdown__menu {
  opacity: 1; visibility: visible; transform: translateY(0);
}
.yeeb-nav .has-dropdown__menu a {
  display: block; padding: 10px 12px; border-radius: var(--r-sm);
  color: var(--yeeb-text);
}
.yeeb-nav .has-dropdown__menu a:hover { background: var(--yeeb-mint); color: var(--yeeb-green); }

.yeeb-header__cta { display: flex; align-items: center; gap: 12px; }
.yeeb-header__hamburger {
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px;
  background: none; border: 1px solid var(--yeeb-border-soft);
  border-radius: var(--r-sm); color: var(--yeeb-body);
}
@media (min-width: 880px) { .yeeb-header__hamburger { display: none; } }

/* Mobile menu drawer — opens below the header when hamburger is tapped. */
.yeeb-mobile-menu {
  display: none;
  flex-direction: column;
  padding: 8px 16px 24px;
  background: #fff;
  border-bottom: 1px solid var(--yeeb-border-soft);
  box-shadow: 0 10px 25px -10px rgba(0,0,0,0.08);
}
.yeeb-mobile-menu.is-open { display: flex; }
.yeeb-mobile-menu a {
  padding: 12px 8px;
  border-bottom: 1px solid var(--yeeb-border-mute);
  color: var(--yeeb-text);
  font-size: var(--fs-base);
  font-weight: 500;
}
.yeeb-mobile-menu a:hover { color: var(--yeeb-green); }
.yeeb-mobile-menu a:last-child { border-bottom: 0; }
@media (min-width: 880px) {
  .yeeb-mobile-menu { display: none !important; }
}

/* ---------------- Buttons ---------------- */

.yeeb-btn {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 8px;
  padding: 10px 18px;
  font-family: var(--yeeb-ff-body);
  font-size: 13px; font-weight: 800;
  border-radius: var(--r-md);
  border: 1px solid transparent;
  cursor: pointer;
  transition: all var(--duration) var(--easing);
  text-decoration: none; line-height: 1;
}
.yeeb-btn--lg { padding: 16px 28px; font-size: var(--fs-base); }
.yeeb-btn--red {
  background: var(--yeeb-red);
  color: #fff;
}
.yeeb-btn--red:hover { background: var(--yeeb-red-hover); color: #fff; }
.yeeb-btn--green {
  background: var(--yeeb-green-bright);
  color: var(--yeeb-text-3);
  box-shadow: var(--shadow-md);
}
.yeeb-btn--green:hover { background: var(--yeeb-green-hover); color: var(--yeeb-text-3); }
.yeeb-btn--green-solid {
  background: var(--yeeb-green);
  color: #fff;
}
.yeeb-btn--green-solid:hover { background: var(--yeeb-green-hover); color: #fff; }
.yeeb-btn--ghost {
  background: #fff; color: var(--yeeb-text);
  border-color: var(--yeeb-border-soft);
}
.yeeb-btn--ghost:hover { background: var(--yeeb-bg-alt); }
.yeeb-btn--ghost-green {
  background: #fff; color: var(--yeeb-green); border-color: var(--yeeb-green-bright);
}
.yeeb-btn--ghost-green:hover { background: rgba(29,201,86,.06); }
.yeeb-btn--gold {
  background: var(--yeeb-gold);
  color: var(--yeeb-green-deep);
}
.yeeb-btn--gold:hover { background: var(--yeeb-gold-alt); color: var(--yeeb-green-deep); }
.yeeb-btn--dark-on-light {
  background: #fff; color: var(--yeeb-text);
  border: 1px solid var(--yeeb-border-soft);
}
.yeeb-btn--inverse {
  background: #fff; color: var(--yeeb-green);
}
.yeeb-btn--inverse:hover { background: rgba(255,255,255,.9); color: var(--yeeb-green); }
.yeeb-btn--inverse-ghost {
  background: transparent; color: #fff; border-color: rgba(255,255,255,.5);
}
.yeeb-btn--inverse-ghost:hover { background: rgba(255,255,255,.1); color: #fff; }

/* ---------------- Chips, badges ---------------- */

.yeeb-chip {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 4px 12px;
  border-radius: var(--r-pill);
  font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  background: var(--yeeb-mint);
  color: var(--yeeb-green);
}
.yeeb-chip--gold { background: var(--yeeb-gold); color: var(--yeeb-gold-soft); }
.yeeb-chip--red { background: var(--yeeb-red); color: #fff; }
.yeeb-chip--dark { background: var(--yeeb-green-deep); color: #fff; }
.yeeb-chip--outline {
  background: transparent; border: 1px solid var(--yeeb-green-bright);
  color: var(--yeeb-green-bright);
}

.yeeb-overlay-chip {
  position: absolute; top: 16px; left: 16px;
  z-index: 2;
}

/* ---------------- Breadcrumb ---------------- */

.yeeb-crumb {
  display: flex; align-items: center; gap: 8px;
  font-size: var(--fs-sm); color: var(--yeeb-muted);
  margin-bottom: 16px;
}
.yeeb-crumb a { color: var(--yeeb-muted); }
.yeeb-crumb a:hover { color: var(--yeeb-green); }
.yeeb-crumb__sep { opacity: .6; }
.yeeb-crumb__current { color: var(--yeeb-text); font-weight: 600; }

/* ---------------- Hero patterns ---------------- */

.yeeb-hero {
  position: relative;
  padding: 64px 0;
  overflow: hidden;
}
@media (min-width: 1024px) { .yeeb-hero { padding: 96px 0; } }
.yeeb-hero__grid {
  display: grid; gap: 48px;
  grid-template-columns: 1fr;
  align-items: center;
}
@media (min-width: 1024px) { .yeeb-hero__grid { grid-template-columns: 1fr 1fr; } }
.yeeb-hero__title {
  font-size: var(--fs-4xl);
  font-weight: 800; line-height: 1.05;
  margin-bottom: 24px;
}
@media (min-width: 1024px) { .yeeb-hero__title { font-size: var(--fs-6xl); } }
.yeeb-hero__title .yeeb-accent { color: var(--yeeb-green-bright); font-family: var(--yeeb-ff-alt); display: inline-block; }
.yeeb-hero__title .yeeb-accent-gold { color: var(--yeeb-gold); }
.yeeb-hero__lede { font-size: var(--fs-lg); color: var(--yeeb-body); margin-bottom: 32px; max-width: 56ch; }
.yeeb-hero__actions { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 32px; }
.yeeb-hero__photo {
  position: relative;
  border-radius: var(--r-2xl);
  overflow: hidden;
}
.yeeb-hero__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.yeeb-hero__photo--framed {
  background: #fff; padding: 8px;
  border-radius: var(--r-2xl);
  box-shadow: var(--shadow-xl);
}
.yeeb-hero__photo--framed img { border-radius: var(--r-xl); }
.yeeb-hero__photo--mask {
  border-radius: 40px 40px 200px 40px;
}
.yeeb-hero__corner {
  position: absolute; top: -40px; left: -40px;
  width: 128px; height: 128px;
  border-top: 4px solid rgba(29,201,86,.25);
  border-left: 4px solid rgba(29,201,86,.25);
  pointer-events: none;
}
.yeeb-hero__testimonial {
  position: absolute; right: -16px; bottom: -40px; z-index: 5;
  max-width: 320px;
  background: #fff;
  border: 1px solid var(--yeeb-border-soft);
  border-radius: var(--r-xl);
  padding: 22px;
  box-shadow: var(--shadow-lg);
}
.yeeb-hero__testimonial p { font-size: var(--fs-sm); font-style: italic; margin-bottom: 12px; }
.yeeb-hero__testimonial-meta { display: flex; align-items: center; gap: 10px; }
.yeeb-hero__testimonial-meta img { width: 32px; height: 32px; border-radius: 9999px; object-fit: cover; }
.yeeb-hero__testimonial-meta strong { font-size: 11px; text-transform: uppercase; letter-spacing: 0; }
.yeeb-hero__testimonial-meta span { font-size: 11px; color: var(--yeeb-body); }
.yeeb-hero__director {
  border-top: 1px solid var(--yeeb-border-soft);
  padding-top: 28px;
  display: flex; flex-wrap: wrap; gap: 24px; align-items: center;
}
.yeeb-hero__director-label { font-size: 11px; text-transform: uppercase; letter-spacing: .2em; color: var(--yeeb-body); font-weight: 700; margin-bottom: 4px; }
.yeeb-hero__director-name  { font-size: var(--fs-2xl); font-style: italic; color: var(--yeeb-text); font-family: var(--yeeb-ff-body); }
.yeeb-hero__director-quote { font-size: var(--fs-sm); font-style: italic; color: var(--yeeb-body); max-width: 28ch; }
.yeeb-hero__director-sep   { display: none; width: 1px; height: 48px; background: var(--yeeb-border-soft); }
@media (min-width: 640px) { .yeeb-hero__director-sep { display: block; } }

.yeeb-hero--dark {
  background: linear-gradient(rgba(6,78,59,.85), rgba(6,78,59,.6)), center/cover no-repeat;
  color: #fff; padding: 96px 0;
}
.yeeb-hero--dark .yeeb-hero__title, .yeeb-hero--dark .yeeb-hero__lede { color: #fff; }
.yeeb-hero--dark .yeeb-crumb, .yeeb-hero--dark .yeeb-crumb a, .yeeb-hero--dark .yeeb-crumb__current { color: rgba(255,255,255,.85); }

.yeeb-hero--featured {
  position: relative;
  min-height: 420px;
  background: var(--yeeb-green-deep);
  color: #fff;
  display: flex; align-items: flex-end;
  padding: 64px 0;
}
.yeeb-hero--featured::before {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,.2), rgba(0,0,0,.8));
}
.yeeb-hero--featured .yeeb-container { position: relative; z-index: 2; max-width: 760px; }
.yeeb-hero--featured img.yeeb-hero__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.yeeb-hero--featured h1 { font-size: var(--fs-4xl); color: #fff; }
@media (min-width: 768px) { .yeeb-hero--featured h1 { font-size: var(--fs-5xl); } }

/* ---------------- Stats strip ---------------- */

.yeeb-stats {
  background: var(--yeeb-green-deep);
  color: #fff;
  padding: 64px 0;
}
.yeeb-stats__grid {
  display: grid; gap: 32px; text-align: center;
  grid-template-columns: repeat(2, 1fr);
}
@media (min-width: 1024px) { .yeeb-stats__grid { grid-template-columns: repeat(4, 1fr); } }
.yeeb-stats__item .yeeb-stats__icon {
  width: 56px; height: 56px; border-radius: 9999px;
  background: rgba(255,255,255,.1);
  display: grid; place-items: center;
  margin: 0 auto 14px;
}
.yeeb-stats__item .yeeb-stats__icon img { width: 28px; height: 28px; filter: invert(78%) sepia(54%) saturate(641%) hue-rotate(7deg) brightness(108%); }
.yeeb-stats__value {
  font-family: var(--yeeb-ff-head);
  font-size: var(--fs-4xl); font-weight: 800; line-height: 1; margin-bottom: 6px;
}
.yeeb-stats__label {
  font-size: 11px; letter-spacing: .12em; text-transform: uppercase;
  color: var(--yeeb-gold);
  font-weight: 700;
}

/* ---------------- Cards ---------------- */

.yeeb-card {
  background: #fff;
  border: 1px solid var(--yeeb-border-soft);
  border-radius: var(--r-lg);
  padding: 28px;
  transition: box-shadow var(--duration) var(--easing), transform var(--duration) var(--easing), border-color var(--duration) var(--easing);
}
.yeeb-card:hover { box-shadow: var(--shadow-lg); border-color: rgba(29,201,86,.25); }
.yeeb-card--soft   { background: var(--yeeb-mint); border-color: rgba(29,201,86,.2); }
.yeeb-card--padded { padding: 32px; }
.yeeb-card--center { text-align: center; }
.yeeb-card__icon {
  width: 48px; height: 48px; border-radius: var(--r-md);
  background: var(--yeeb-mint);
  display: grid; place-items: center; margin-bottom: 18px;
  color: var(--yeeb-green-bright);
}
.yeeb-card__icon iconify-icon { font-size: 24px; color: var(--yeeb-green-bright); }
.yeeb-card__title { font-size: var(--fs-xl); font-weight: 700; margin-bottom: 8px; color: var(--yeeb-text); }
.yeeb-card__body  { font-size: var(--fs-sm); color: var(--yeeb-body); }
.yeeb-card__link {
  display: inline-flex; align-items: center; gap: 6px;
  color: var(--yeeb-green-bright); font-weight: 600; font-size: var(--fs-sm);
  margin-top: 16px;
}
.yeeb-card__link::after { content: "→"; }
.yeeb-card__link:hover { color: var(--yeeb-green-hover); }

.yeeb-grid { display: grid; gap: 24px; }
.yeeb-grid--2 { grid-template-columns: 1fr; }
.yeeb-grid--3 { grid-template-columns: 1fr; }
.yeeb-grid--4 { grid-template-columns: 1fr; }
@media (min-width: 640px) {
  .yeeb-grid--2 { grid-template-columns: repeat(2,1fr); }
  .yeeb-grid--3 { grid-template-columns: repeat(2,1fr); }
  .yeeb-grid--4 { grid-template-columns: repeat(2,1fr); }
}
@media (min-width: 1024px) {
  .yeeb-grid--3 { grid-template-columns: repeat(3,1fr); }
  .yeeb-grid--4 { grid-template-columns: repeat(4,1fr); }
}

/* Programme card */
.yeeb-prog-card {
  background: #fff;
  border: 1px solid var(--yeeb-border-soft);
  border-radius: var(--r-lg);
  padding: 24px;
  display: flex; flex-direction: column; gap: 12px;
  transition: box-shadow var(--duration) var(--easing);
}
.yeeb-prog-card:hover { box-shadow: var(--shadow-md); }
.yeeb-prog-card__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.yeeb-prog-card__date { font-size: 12px; color: var(--yeeb-body); display: inline-flex; gap: 6px; align-items: center; }
.yeeb-prog-card__title { font-size: var(--fs-lg); margin: 0; }
.yeeb-prog-card__desc  { font-size: var(--fs-sm); color: var(--yeeb-body); flex: 1; }

/* News card */
.yeeb-news-card {
  background: #fff;
  border-radius: var(--r-lg);
  overflow: hidden;
  border: 1px solid var(--yeeb-border-soft);
  display: flex; flex-direction: column;
  transition: box-shadow var(--duration) var(--easing), transform var(--duration) var(--easing);
}
.yeeb-news-card:hover { box-shadow: var(--shadow-lg); transform: translateY(-2px); }
.yeeb-news-card__media { position: relative; aspect-ratio: 16/10; background: var(--yeeb-bg-alt); }
.yeeb-news-card__media img { width: 100%; height: 100%; object-fit: cover; }
.yeeb-news-card__body { padding: 22px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.yeeb-news-card__meta { font-size: 12px; color: var(--yeeb-body); display: flex; gap: 12px; flex-wrap: wrap; }
.yeeb-news-card__title { font-size: var(--fs-lg); margin: 0; color: var(--yeeb-text); }
.yeeb-news-card__excerpt { font-size: var(--fs-sm); color: var(--yeeb-body); flex: 1; }

/* Event sidebar card */
.yeeb-event-row {
  display: flex; gap: 16px; padding: 16px 0;
  border-bottom: 1px solid var(--yeeb-border-soft);
}
.yeeb-event-row:last-child { border-bottom: 0; }
.yeeb-event-row__date {
  flex-shrink: 0;
  width: 56px; text-align: center;
  background: var(--yeeb-mint);
  border-radius: var(--r-md);
  padding: 10px 6px;
}
.yeeb-event-row__day   { font-size: var(--fs-xl); font-weight: 800; color: var(--yeeb-green); line-height: 1; }
.yeeb-event-row__month { font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--yeeb-green); margin-top: 4px; font-weight: 700; }
.yeeb-event-row__body strong { display: block; color: var(--yeeb-text); font-size: var(--fs-sm); }
.yeeb-event-row__body span   { font-size: 12px; color: var(--yeeb-body); }

/* ---------------- Mission / Vision pair ---------------- */

.yeeb-mv {
  display: grid; gap: 24px; grid-template-columns: 1fr;
  margin-top: 56px;
}
@media (min-width: 768px) { .yeeb-mv { grid-template-columns: 1fr 1fr; } }
.yeeb-mv__card {
  background: var(--yeeb-mint-soft);
  border: 1px solid rgba(29,201,86,.15);
  border-radius: var(--r-lg);
  padding: 32px;
}
.yeeb-mv__title { color: var(--yeeb-green); font-size: var(--fs-xl); margin-bottom: 12px; }

/* ---------------- Endorsement (PM / Director) ---------------- */

.yeeb-endorsement {
  display: grid; gap: 32px; grid-template-columns: 1fr; align-items: center;
}
@media (min-width: 768px) { .yeeb-endorsement { grid-template-columns: 320px 1fr; } }
.yeeb-endorsement--rev { direction: rtl; }
.yeeb-endorsement--rev > * { direction: ltr; }
.yeeb-endorsement__photo {
  position: relative;
  border-radius: var(--r-xl);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  aspect-ratio: 3/4;
  background: var(--yeeb-bg-alt);
}
.yeeb-endorsement__photo img { width: 100%; height: 100%; object-fit: cover; }
.yeeb-endorsement__badge {
  position: absolute; left: 16px; bottom: 16px;
  background: var(--yeeb-red); color: #fff;
  padding: 10px 14px; border-radius: var(--r-md);
  font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase;
}
.yeeb-endorsement__quote { font-size: var(--fs-2xl); font-weight: 700; color: var(--yeeb-text); margin-bottom: 18px; line-height: 1.35; }
.yeeb-endorsement__body  { font-size: var(--fs-base); color: var(--yeeb-body); }
.yeeb-endorsement__sig img { height: 40px; opacity: .6; }

/* ---------------- Pillar cards / Service cards ---------------- */

.yeeb-pillar {
  background: #fff;
  border: 1px solid var(--yeeb-border-soft);
  border-radius: var(--r-lg);
  padding: 28px;
  transition: box-shadow var(--duration) var(--easing), border-color var(--duration) var(--easing);
}
.yeeb-pillar:hover { box-shadow: var(--shadow-md); border-color: rgba(29,201,86,.3); }
.yeeb-pillar__icon {
  width: 48px; height: 48px; border-radius: var(--r-md);
  background: var(--yeeb-mint);
  display: grid; place-items: center; margin-bottom: 18px;
}
.yeeb-pillar__icon iconify-icon { font-size: 24px; color: var(--yeeb-green-bright); }

/* ---------------- Org chart ---------------- */

.yeeb-org {
  display: flex; flex-direction: column; align-items: center; gap: 0;
  text-align: center;
}
.yeeb-org__node {
  position: relative;
  padding: 14px 28px;
  border-radius: var(--r-md);
  font-weight: 700;
}
.yeeb-org__node--top  { background: var(--yeeb-green-deep); color: #fff; }
.yeeb-org__node--mid  { background: var(--yeeb-green-bright); color: #fff; }
.yeeb-org__node--leaf { background: #fff; color: var(--yeeb-text); border: 1px solid var(--yeeb-border-soft); }
.yeeb-org__connector { width: 2px; height: 40px; background: var(--yeeb-border); }
.yeeb-org__leaves {
  display: grid; gap: 12px;
  grid-template-columns: repeat(2, 1fr);
  margin-top: 32px;
}
@media (min-width: 768px) { .yeeb-org__leaves { grid-template-columns: repeat(5, 1fr); } }

/* ---------------- Team grid ---------------- */

.yeeb-team {
  display: grid; gap: 32px;
  grid-template-columns: repeat(2, 1fr);
  text-align: center;
}
@media (min-width: 640px) { .yeeb-team { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1024px) { .yeeb-team { grid-template-columns: repeat(4, 1fr); } }
.yeeb-team__avatar {
  width: 128px; height: 128px; border-radius: 9999px;
  margin: 0 auto 16px; overflow: hidden;
  background: var(--yeeb-bg-alt);
  border: 4px solid #fff; box-shadow: var(--shadow-md);
}
.yeeb-team__avatar img { width: 100%; height: 100%; object-fit: cover; }
.yeeb-team__name { font-size: var(--fs-base); font-weight: 700; margin-bottom: 2px; }
.yeeb-team__role { font-size: var(--fs-sm); color: var(--yeeb-green); font-weight: 500; }

/* Staff Directory contact cards */
.yeeb-staff {
  display: grid; gap: 24px;
  grid-template-columns: 1fr;
}
@media (min-width: 768px) { .yeeb-staff { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .yeeb-staff { grid-template-columns: repeat(3, 1fr); } }
.yeeb-staff__card {
  background: #fff; border: 1px solid var(--yeeb-border-soft); border-radius: var(--r-lg);
  padding: 22px;
  display: flex; gap: 16px;
  transition: box-shadow var(--duration) var(--easing);
}
.yeeb-staff__card:hover { box-shadow: var(--shadow-md); }
.yeeb-staff__photo { width: 48px; height: 48px; border-radius: 9999px; flex-shrink: 0; overflow: hidden; background: var(--yeeb-bg-alt); }
.yeeb-staff__photo img { width: 100%; height: 100%; object-fit: cover; }
.yeeb-staff__name { font-size: var(--fs-base); font-weight: 700; margin: 0; }
.yeeb-staff__role { font-size: 12px; color: var(--yeeb-green); font-weight: 600; }
.yeeb-staff__lines { font-size: 12px; color: var(--yeeb-body); margin-top: 8px; display: flex; flex-direction: column; gap: 4px; }
.yeeb-staff__lines a { color: var(--yeeb-body); }

/* ---------------- How it works (numbered steps) ---------------- */

.yeeb-steps {
  background: var(--yeeb-bg-alt);
  border-radius: var(--r-xl);
  padding: 40px 24px;
  display: grid; gap: 32px;
  grid-template-columns: 1fr;
  position: relative;
}
@media (min-width: 768px) { .yeeb-steps { grid-template-columns: repeat(3, 1fr); } }
.yeeb-step { text-align: center; position: relative; }
.yeeb-step__num {
  display: inline-flex; align-items: center; justify-content: center;
  width: 56px; height: 56px; border-radius: 9999px;
  background: var(--yeeb-green-bright); color: #fff;
  font-family: var(--yeeb-ff-head); font-weight: 700; font-size: var(--fs-lg);
  margin-bottom: 14px;
}
.yeeb-step__title { font-size: var(--fs-lg); margin-bottom: 6px; }
.yeeb-step__body  { font-size: var(--fs-sm); color: var(--yeeb-body); }

/* ---------------- Partner logos ---------------- */

.yeeb-partners {
  display: grid; gap: 24px; align-items: center;
  grid-template-columns: repeat(2, 1fr);
}
@media (min-width: 768px) { .yeeb-partners { grid-template-columns: repeat(5, 1fr); } }
.yeeb-partners__logo {
  height: 56px; display: grid; place-items: center;
  filter: grayscale(100%) opacity(.6);
  transition: filter var(--duration) var(--easing);
}
.yeeb-partners__logo img { max-height: 100%; max-width: 100%; }
.yeeb-partners__logo:hover { filter: grayscale(0%) opacity(1); }
.yeeb-partners__label {
  text-align: center; font-size: 11px; letter-spacing: .25em; text-transform: uppercase;
  color: var(--yeeb-muted); font-weight: 700; margin-bottom: 24px;
}

/* ---------------- FAQ accordion ---------------- */

.yeeb-faq { max-width: 880px; margin: 0 auto; }
.yeeb-faq__item {
  background: #fff;
  border: 1px solid var(--yeeb-border-soft);
  border-radius: var(--r-md);
  margin-bottom: 10px;
  overflow: hidden;
}
.yeeb-faq__btn {
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; padding: 18px 22px;
  width: 100%; text-align: left;
  background: none; border: 0; cursor: pointer;
  font-size: var(--fs-base); font-weight: 600; color: var(--yeeb-text);
  font-family: var(--yeeb-ff-body);
}
.yeeb-faq__btn:hover { background: var(--yeeb-bg-alt); }
.yeeb-faq__icon { transition: transform var(--duration) var(--easing); color: var(--yeeb-body); }
.yeeb-faq__item.is-open .yeeb-faq__icon { transform: rotate(180deg); color: var(--yeeb-green); }
.yeeb-faq__panel {
  display: grid; grid-template-rows: 0fr;
  transition: grid-template-rows 300ms var(--easing);
}
.yeeb-faq__panel-inner { overflow: hidden; }
.yeeb-faq__item.is-open .yeeb-faq__panel { grid-template-rows: 1fr; }
.yeeb-faq__body { padding: 0 22px 22px; color: var(--yeeb-body); font-size: var(--fs-sm); }

/* ---------------- CTA band ---------------- */

.yeeb-cta {
  background: var(--yeeb-green-deep);
  color: #fff;
  border-radius: var(--r-xl);
  padding: 36px 28px;
  display: grid; gap: 20px; align-items: center;
  grid-template-columns: 1fr;
  position: relative; overflow: hidden;
}
@media (min-width: 768px) { .yeeb-cta { grid-template-columns: 1fr auto; padding: 48px; } }
.yeeb-cta__title { color: #fff; font-size: var(--fs-3xl); margin-bottom: 4px; }
.yeeb-cta__lede  { color: rgba(255,255,255,.85); font-size: var(--fs-base); }
.yeeb-cta--centered { text-align: center; grid-template-columns: 1fr; }
.yeeb-cta--centered .yeeb-cta__actions { justify-content: center; }
.yeeb-cta__actions { display: flex; flex-wrap: wrap; gap: 14px; }

/* ---------------- Success story ---------------- */

.yeeb-story {
  background: var(--yeeb-bg-alt);
  border-radius: var(--r-xl);
  overflow: hidden;
  display: grid; grid-template-columns: 1fr; gap: 0;
}
@media (min-width: 768px) { .yeeb-story { grid-template-columns: 1fr 1fr; } }
.yeeb-story__media { position: relative; min-height: 280px; }
.yeeb-story__media img { width: 100%; height: 100%; object-fit: cover; }
.yeeb-story__body { padding: 36px; }
.yeeb-story__title { font-size: var(--fs-2xl); margin-bottom: 14px; }
.yeeb-story__lede  { font-size: var(--fs-base); color: var(--yeeb-body); margin-bottom: 22px; }
.yeeb-story__stats { display: flex; gap: 32px; margin-bottom: 22px; flex-wrap: wrap; }
.yeeb-story__stat strong { color: var(--yeeb-green); font-family: var(--yeeb-ff-head); font-size: var(--fs-3xl); display: block; }
.yeeb-story__stat span   { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--yeeb-body); font-weight: 700; }

/* ---------------- Eligibility checklist ---------------- */

.yeeb-check { list-style: none; padding: 0; margin: 0; }
.yeeb-check li {
  padding: 12px 16px;
  background: #fff;
  border: 1px solid var(--yeeb-border-soft);
  border-radius: var(--r-md);
  margin-bottom: 8px;
  display: flex; gap: 10px; align-items: center;
  font-size: var(--fs-sm);
  color: var(--yeeb-text);
}
.yeeb-check li::before {
  content: ""; flex-shrink: 0;
  width: 18px; height: 18px; border-radius: 9999px;
  background: var(--yeeb-mint) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2316a34a' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>") center/12px no-repeat;
}

/* ---------------- Schedule table ---------------- */

.yeeb-schedule {
  width: 100%; border-collapse: collapse;
  background: #fff; border: 1px solid var(--yeeb-border-soft);
  border-radius: var(--r-lg);
  overflow: hidden;
}
.yeeb-schedule th, .yeeb-schedule td { padding: 14px 18px; text-align: left; font-size: var(--fs-sm); }
.yeeb-schedule th { font-size: 11px; text-transform: uppercase; letter-spacing: .12em; color: var(--yeeb-body); background: var(--yeeb-bg-alt); }
.yeeb-schedule td { border-top: 1px solid var(--yeeb-border-soft); color: var(--yeeb-text); }

/* ---------------- Forms ---------------- */

.yeeb-form { display: grid; gap: 18px; }
.yeeb-form__row { display: grid; gap: 18px; grid-template-columns: 1fr; }
@media (min-width: 768px) { .yeeb-form__row--2 { grid-template-columns: 1fr 1fr; } }
.yeeb-form label {
  display: block; font-size: var(--fs-sm); font-weight: 600; color: var(--yeeb-text);
  margin-bottom: 6px;
  font-family: var(--yeeb-ff-body);
}
.yeeb-form input,
.yeeb-form select,
.yeeb-form textarea {
  width: 100%; padding: 12px 14px;
  background: #fff;
  border: 1px solid var(--yeeb-border-soft);
  border-radius: var(--r-md);
  font-family: inherit; font-size: var(--fs-sm); color: var(--yeeb-text);
  transition: border-color var(--duration) var(--easing), box-shadow var(--duration) var(--easing);
}
.yeeb-form textarea { min-height: 120px; resize: vertical; }
.yeeb-form input:focus, .yeeb-form select:focus, .yeeb-form textarea:focus {
  outline: none; border-color: var(--yeeb-green-bright);
  box-shadow: 0 0 0 4px rgba(34,197,94,.1);
}

/* ---------------- Map placeholder ---------------- */

.yeeb-map {
  background: var(--yeeb-bg-alt);
  border-radius: var(--r-xl);
  min-height: 360px;
  display: grid; place-items: center; text-align: center; padding: 32px;
  border: 1px dashed var(--yeeb-border);
}
.yeeb-map__pin {
  width: 56px; height: 56px; border-radius: 9999px;
  background: var(--yeeb-mint); display: grid; place-items: center;
  margin: 0 auto 16px; color: var(--yeeb-green);
}
.yeeb-map iconify-icon { font-size: 28px; }

/* ---------------- Office cards ---------------- */

.yeeb-offices {
  display: grid; gap: 24px;
  grid-template-columns: 1fr;
}
@media (min-width: 768px) { .yeeb-offices { grid-template-columns: 1fr 1fr; } }
.yeeb-office {
  background: #fff;
  border: 1px solid var(--yeeb-border-soft);
  border-radius: var(--r-lg);
  padding: 28px;
}
.yeeb-office__icon {
  width: 44px; height: 44px; border-radius: var(--r-md);
  background: var(--yeeb-mint); color: var(--yeeb-green);
  display: grid; place-items: center;
  margin-bottom: 16px;
}
.yeeb-office__lines { display: flex; flex-direction: column; gap: 10px; font-size: var(--fs-sm); color: var(--yeeb-body); margin-top: 12px; margin-bottom: 18px; }
.yeeb-office__lines iconify-icon { color: var(--yeeb-green); margin-right: 6px; vertical-align: -2px; }

/* ---------------- Pagination ---------------- */

.yeeb-pagination {
  display: flex; gap: 8px; justify-content: center; flex-wrap: wrap;
  margin-top: 32px;
}
.yeeb-pagination a, .yeeb-pagination span {
  min-width: 36px; height: 36px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: var(--r-sm); padding: 0 10px;
  font-size: var(--fs-sm); color: var(--yeeb-text);
  border: 1px solid var(--yeeb-border-soft); background: #fff;
}
.yeeb-pagination .current, .yeeb-pagination a:hover { background: var(--yeeb-green-bright); color: #fff; border-color: var(--yeeb-green-bright); }

/* ---------------- Tabs (News) ---------------- */

.yeeb-tabs { display: flex; gap: 28px; border-bottom: 1px solid var(--yeeb-border-soft); margin-bottom: 24px; flex-wrap: wrap; }
.yeeb-tabs__item {
  padding: 12px 0; font-size: var(--fs-sm); font-weight: 600; color: var(--yeeb-body);
  border-bottom: 2px solid transparent; cursor: pointer; background: none; border-left: 0; border-right: 0; border-top: 0;
  display: inline-flex; align-items: center; gap: 6px;
}
.yeeb-tabs__item.is-active, .yeeb-tabs__item:hover { color: var(--yeeb-green); border-bottom-color: var(--yeeb-green); }

/* ---------------- Newsletter card ---------------- */

.yeeb-newsletter {
  background: var(--yeeb-green-bright);
  color: var(--yeeb-text-3);
  border-radius: var(--r-lg);
  padding: 28px;
}
.yeeb-newsletter h3 { color: var(--yeeb-text-3); }
.yeeb-newsletter input {
  width: 100%; padding: 12px 14px; border-radius: var(--r-md);
  border: 0; background: rgba(255,255,255,.85);
  margin: 12px 0;
}
.yeeb-newsletter .yeeb-btn { width: 100%; }

/* ---------------- Footer ---------------- */

.yeeb-footer {
  background: var(--yeeb-green-deep);
  color: #fff;
  padding-top: 80px; padding-bottom: 40px;
  background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}
.yeeb-footer__grid {
  display: grid; gap: 48px;
  grid-template-columns: 1fr;
  margin-bottom: 64px;
}
@media (min-width: 768px) { .yeeb-footer__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .yeeb-footer__grid { grid-template-columns: repeat(4, 1fr); } }
.yeeb-footer h4 { color: var(--yeeb-gold); font-size: var(--fs-lg); margin-bottom: 28px; }
.yeeb-footer ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 14px; }
.yeeb-footer a { color: var(--yeeb-muted-3); font-size: var(--fs-sm); }
.yeeb-footer a:hover { color: #fff; }
.yeeb-footer__brand { display: flex; flex-direction: column; gap: 22px; }
.yeeb-footer__about { color: var(--yeeb-muted-3); font-size: var(--fs-sm); }
.yeeb-footer__social { display: flex; gap: 12px; }
.yeeb-footer__social a {
  width: 40px; height: 40px; border-radius: var(--r-md);
  display: grid; place-items: center;
  background: rgba(255,255,255,.06);
  transition: background var(--duration) var(--easing);
}
.yeeb-footer__social a:hover { background: rgba(255,255,255,.16); }
.yeeb-footer__social iconify-icon { color: #fff; font-size: 18px; }
.yeeb-footer__contact { display: flex; flex-direction: column; gap: 18px; }
.yeeb-footer__contact li { display: flex; gap: 10px; align-items: flex-start; color: var(--yeeb-muted-3); font-size: var(--fs-sm); }
.yeeb-footer__contact iconify-icon { color: var(--yeeb-gold); margin-top: 3px; flex-shrink: 0; }
.yeeb-footer__logo {
  display: flex; align-items: center; gap: 12px;
  text-decoration: none; color: #fff;
}
.yeeb-footer__logo-mark {
  width: 36px; height: 36px; border-radius: 9999px;
  background: rgba(255,255,255,1);
  display: grid; place-items: center;
}
.yeeb-footer__logo-mark img { width: 22px; height: 22px; }
.yeeb-footer__logo-word { font-family: var(--yeeb-ff-head); font-weight: 800; font-size: 22px; color: #fff; }
.yeeb-footer__legal {
  border-top: 1px solid rgba(255,255,255,.1);
  padding-top: 28px;
  display: flex; flex-direction: column; gap: 14px; align-items: flex-start;
  font-size: 12px; color: var(--yeeb-muted-3);
}
@media (min-width: 768px) { .yeeb-footer__legal { flex-direction: row; justify-content: space-between; align-items: center; } }
.yeeb-footer__legal nav { display: flex; gap: 24px; flex-wrap: wrap; }

/* ---------------- Single Programme accents ---------------- */

.yeeb-single-programme .yeeb-hero { padding-top: 48px; padding-bottom: 48px; }
.yeeb-prog-meta {
  display: flex; gap: 32px; margin: 24px 0 28px; flex-wrap: wrap;
  font-size: var(--fs-sm);
}
.yeeb-prog-meta strong { display: block; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--yeeb-body); margin-bottom: 4px; }

.yeeb-numbered-grid {
  display: grid; gap: 20px;
  grid-template-columns: 1fr;
}
@media (min-width: 640px) { .yeeb-numbered-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .yeeb-numbered-grid { grid-template-columns: repeat(3, 1fr); } }
.yeeb-numbered {
  background: #fff;
  border: 1px solid var(--yeeb-border-soft);
  border-radius: var(--r-md);
  padding: 22px;
  display: flex; gap: 14px;
}
.yeeb-numbered__n {
  flex-shrink: 0;
  width: 32px; height: 32px; border-radius: 9999px;
  background: var(--yeeb-mint);
  color: var(--yeeb-green); font-weight: 700;
  display: grid; place-items: center;
  font-family: var(--yeeb-ff-head);
}
.yeeb-numbered__title { font-size: var(--fs-base); margin-bottom: 4px; }
.yeeb-numbered__body  { font-size: var(--fs-sm); color: var(--yeeb-body); }

/* ---------------- Most popular (sidebar) ---------------- */

.yeeb-most-popular { background: #fff; border: 1px solid var(--yeeb-border-soft); border-radius: var(--r-lg); padding: 24px; }
.yeeb-most-popular h3 {
  font-size: var(--fs-base); text-transform: uppercase; letter-spacing: .15em; color: var(--yeeb-text);
  border-left: 3px solid var(--yeeb-green); padding-left: 10px; margin-bottom: 18px;
}
.yeeb-most-popular ol { list-style: none; padding: 0; margin: 0; counter-reset: pop; display: flex; flex-direction: column; gap: 14px; }
.yeeb-most-popular li { display: flex; gap: 14px; padding-bottom: 14px; border-bottom: 1px solid var(--yeeb-border-soft); counter-increment: pop; }
.yeeb-most-popular li:last-child { border-bottom: 0; padding-bottom: 0; }
.yeeb-most-popular li::before {
  content: counter(pop, decimal-leading-zero);
  color: var(--yeeb-green); font-family: var(--yeeb-ff-head); font-weight: 700; font-size: var(--fs-base);
  flex-shrink: 0;
}
.yeeb-most-popular small { display: block; font-size: 10px; letter-spacing: .15em; text-transform: uppercase; color: var(--yeeb-green); font-weight: 700; margin-bottom: 4px; }
.yeeb-most-popular strong { font-size: var(--fs-sm); color: var(--yeeb-text); font-weight: 600; line-height: 1.4; }

/* ---------------- Highlights strip (News) ---------------- */

.yeeb-highlights {
  display: grid; gap: 16px;
  grid-template-columns: repeat(2, 1fr);
}
@media (min-width: 768px) { .yeeb-highlights { grid-template-columns: repeat(6, 1fr); } }
.yeeb-highlights__tile { aspect-ratio: 1/1; border-radius: var(--r-md); overflow: hidden; background: var(--yeeb-bg-alt); position: relative; }
.yeeb-highlights__tile img { width: 100%; height: 100%; object-fit: cover; }

/* ---------------- Floating extras ---------------- */

.yeeb-pull-quote {
  border-left: 4px solid var(--yeeb-green);
  padding-left: 18px;
  font-size: var(--fs-lg); font-style: italic; color: var(--yeeb-text);
}

.yeeb-divider { height: 1px; background: var(--yeeb-border-soft); margin: 48px 0; }

/* Two-column page layout (News listing + sidebar) */
.yeeb-two-col {
  display: grid; gap: 32px;
  grid-template-columns: 1fr;
}
@media (min-width: 1024px) { .yeeb-two-col { grid-template-columns: 2fr 1fr; } }

/* Single article body */
.yeeb-article {
  max-width: 760px; margin: 0 auto;
}
.yeeb-article h2 { margin-top: 32px; }
.yeeb-article img { border-radius: var(--r-md); margin: 24px 0; }

/* ---------------- Print ---------------- */

@media print {
  .yeeb-header, .yeeb-footer, .yeeb-cta, .yeeb-newsletter, iframe { display: none !important; }
  body { color: #000; background: #fff; }
}

/* ---------------- Responsive QA sweep ---------------- */

/* Schedule table — horizontal scroll on phones. */
@media (max-width: 640px) {
  .yeeb-schedule {
    display: block;
    overflow-x: auto;
    white-space: nowrap;
  }
}

/* Long titles in hero shouldn't break layout. */
.yeeb-hero__title { overflow-wrap: anywhere; }

/* Hero testimonial chip on mobile — pull it back inside its parent so it doesn't
   clip the screen edge. */
@media (max-width: 640px) {
  .yeeb-hero__testimonial {
    position: relative;
    right: auto; bottom: auto;
    margin-top: 16px;
    max-width: 100%;
  }
}

/* Department hero photo mask is too aggressive at narrow widths. */
@media (max-width: 640px) {
  .yeeb-hero__photo--mask { border-radius: var(--r-xl); }
}

/* Card grids: ensure no fixed widths leak through. */
.yeeb-card, .yeeb-pillar, .yeeb-prog-card, .yeeb-news-card { min-width: 0; }

/* Make iconify-icon inherit vertical alignment cleanly inside flex rows. */
iconify-icon { vertical-align: -2px; }

/* Tablet-down: tighter section padding so small screens don't feel sparse. */
@media (max-width: 768px) {
  :root { --section-py: 64px; }
  .yeeb-hero { padding: 48px 0; }
  .yeeb-section { padding-top: 48px; padding-bottom: 48px; }
}

/* Phone-down: drop CTA band to single column always, smaller heading. */
@media (max-width: 480px) {
  .yeeb-cta { padding: 28px 22px; grid-template-columns: 1fr; }
  .yeeb-cta__title { font-size: var(--fs-2xl); }
  .yeeb-hero__title { font-size: var(--fs-3xl); }
}

/* Endorsement portrait on mobile — auto-height, less aggressive ratio. */
@media (max-width: 768px) {
  .yeeb-endorsement__photo { aspect-ratio: 4/3; max-width: 360px; margin: 0 auto; }
}

/* Hide reverse direction on mobile (was causing odd order). */
@media (max-width: 768px) {
  .yeeb-endorsement--rev { direction: ltr; }
}

/* Pagination wraps cleanly. */
.yeeb-pagination { row-gap: 8px; }

/* News two-col stack on tablet. */
@media (max-width: 1023px) {
  .yeeb-two-col { gap: 40px; }
  .yeeb-most-popular, .yeeb-newsletter { max-width: 100%; }
}

/* ---------------- Reduce motion ---------------- */

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  html { scroll-behavior: auto; }
}

/* ---------------- Visily alignment layer ----------------
   Tunes Elementor-seeded YEEB widgets to the supplied mockups.
   -------------------------------------------------------- */

.yeeb-header {
  background: #fff;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.yeeb-header .yeeb-btn--red {
  min-width: 96px;
  min-height: 32px;
  padding: 9px 18px;
  border-radius: 6px;
  font-size: 12px;
}

.yeeb-nav a,
.yeeb-nav button {
  letter-spacing: 0;
}

.yeeb-section__head::after,
.elementor-widget-yeeb-learn .yeeb-section__head::after,
.elementor-widget-yeeb-testimonials .yeeb-section__head::after,
.elementor-widget-yeeb-partners .yeeb-section__head::after {
  content: "";
  display: block;
  width: 74px;
  height: 4px;
  margin: 22px auto 0;
  border-radius: 999px;
  background: var(--yeeb-red);
}

.elementor-widget-yeeb-hero section {
  padding: 72px 24px !important;
  background: #EDFDF1 !important;
}

.elementor-section:has(> .elementor-container .elementor-widget[class*="elementor-widget-yeeb-"]) > .elementor-container,
.elementor-section:has(> .elementor-container .elementor-widget-html .yeeb-section) > .elementor-container {
  max-width: none !important;
}

.elementor-section:has(> .elementor-container .elementor-widget[class*="elementor-widget-yeeb-"]) > .elementor-container > .elementor-column > .elementor-widget-wrap,
.elementor-section:has(> .elementor-container .elementor-widget-html .yeeb-section) > .elementor-container > .elementor-column > .elementor-widget-wrap {
  padding: 0 !important;
}

.elementor-widget-yeeb-hero h1,
.elementor-widget-yeeb-programme-hero h1 {
  font-size: 64px !important;
  line-height: .96 !important;
  letter-spacing: 0 !important;
}

.elementor-widget-yeeb-hero a:first-child,
.elementor-widget-yeeb-programme-hero a:first-child {
  background: var(--yeeb-red) !important;
  border-radius: 6px !important;
}

.elementor-widget-yeeb-hero [style*="aspect-ratio:4/3"],
.elementor-widget-yeeb-programme-hero [style*="aspect-ratio:4/3"] {
  border-radius: 8px !important;
  box-shadow: none !important;
}

.elementor-widget-yeeb-programme-hero section {
  padding: 74px 24px !important;
  background: linear-gradient(90deg, #F0FFF5 0%, #F8FFFB 52%, #fff 100%) !important;
}

.elementor-widget-yeeb-programme-hero [style*="grid-template-columns:1fr 1fr"],
.elementor-widget-yeeb-hero .yeeb-container {
  gap: 72px !important;
}

.elementor-widget-yeeb-stats section {
  background: var(--yeeb-green-deep) !important;
  padding: 28px 24px !important;
}

.elementor-widget-yeeb-promo-video section,
.elementor-widget-yeeb-learn section,
.elementor-widget-yeeb-faq section,
.elementor-widget-yeeb-partners section {
  background: #F7F8FA !important;
}

.elementor-widget-yeeb-promo-video [style*="aspect-ratio:16/9"] {
  max-width: 900px !important;
  border-radius: 8px !important;
  box-shadow: none !important;
}

.elementor-widget-yeeb-pillars [style*="border-radius:14px"],
.elementor-widget-yeeb-learn [style*="border-radius:14px"],
.elementor-widget-yeeb-services [style*="border-radius:14px"],
.elementor-widget-yeeb-partners [style*="border-radius:14px"],
.elementor-widget-yeeb-testimonials [style*="border-radius:14px"],
.elementor-widget-yeeb-programmes [style*="border-radius:14px"],
.elementor-widget-yeeb-news [style*="border-radius:14px"],
.elementor-widget-yeeb-events [style*="border-radius:12px"],
.elementor-widget-yeeb-faq details,
.elementor-widget-yeeb-contact form,
.elementor-widget-yeeb-two-paths [style*="border-radius:18px"],
.elementor-widget-yeeb-eligibility [style*="border-radius:14px"] {
  border-radius: 8px !important;
  box-shadow: none !important;
}

.elementor-widget-yeeb-pillars [style*="grid-template-columns"],
.elementor-widget-yeeb-learn [style*="grid-template-columns"],
.elementor-widget-yeeb-services [style*="grid-template-columns"],
.elementor-widget-yeeb-partners [style*="grid-template-columns"] {
  gap: 24px !important;
}

.elementor-widget-yeeb-programmes-table section {
  background: #F7F8FA !important;
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
}

.elementor-widget-yeeb-programmes-table .yeeb-section__head {
  text-align: center !important;
  max-width: 760px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.elementor-widget-yeeb-events .yeeb-section__head {
  text-align: left !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.elementor-widget-yeeb-cta section {
  padding: 84px 24px !important;
  background: var(--yeeb-green) !important;
}

.elementor-widget-yeeb-cta h2 {
  font-size: 48px !important;
  line-height: 1.04 !important;
}

.elementor-widget-yeeb-cta a {
  border-radius: 6px !important;
}

.elementor-widget-yeeb-two-paths > .elementor-widget-container > section {
  padding-top: 84px !important;
  padding-bottom: 84px !important;
}

.elementor-widget-yeeb-two-paths [style*="background:#FFF7DA"] {
  background: #FFF0BE !important;
}

.elementor-widget-yeeb-two-paths a {
  background: var(--yeeb-red) !important;
  border-radius: 6px !important;
}

.elementor-widget-yeeb-contact-strip section {
  background: #F6FCF8 !important;
}

.elementor-widget[class*="elementor-widget-yeeb-"] [style*="border:1px solid #e5e7eb"]:not(input):not(textarea):not(select),
.elementor-widget[class*="elementor-widget-yeeb-"] [style*="border:1.5px solid #e5e7eb"]:not(input):not(textarea):not(select),
.elementor-widget[class*="elementor-widget-yeeb-"] [style*="border:1px solid #B6E6C3"],
.elementor-widget[class*="elementor-widget-yeeb-"] [style*="border:1px solid #F5E6A0"] {
  border-color: transparent !important;
  border-width: 0 !important;
}

.elementor-widget[class*="elementor-widget-yeeb-"] [style*="box-shadow"] {
  box-shadow: none !important;
}

.elementor-widget-yeeb-pillars [style*="background:#fff"],
.elementor-widget-yeeb-learn [style*="background:#fff"],
.elementor-widget-yeeb-services [style*="background:#fff"],
.elementor-widget-yeeb-partners [style*="background:#fff"],
.elementor-widget-yeeb-testimonials [style*="background:#fff"],
.elementor-widget-yeeb-programmes [style*="background:#fff"],
.elementor-widget-yeeb-news [style*="background:#fff"],
.elementor-widget-yeeb-events [style*="background:#fff"],
.elementor-widget-yeeb-faq details,
.elementor-widget-yeeb-contact form {
  background: #fff !important;
}

.elementor-widget-yeeb-promo-video section,
.elementor-widget-yeeb-pillars section,
.elementor-widget-yeeb-learn section,
.elementor-widget-yeeb-services section,
.elementor-widget-yeeb-programmes section,
.elementor-widget-yeeb-news section,
.elementor-widget-yeeb-events section,
.elementor-widget-yeeb-faq section,
.elementor-widget-yeeb-partners section,
.elementor-widget-yeeb-testimonials section,
.elementor-widget-yeeb-programmes-table section,
.elementor-widget-yeeb-two-paths section,
.elementor-widget-yeeb-contact section,
.elementor-widget-yeeb-contact-strip section {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.elementor-widget-yeeb-promo-video section > *,
.elementor-widget-yeeb-pillars section > *,
.elementor-widget-yeeb-learn section > *,
.elementor-widget-yeeb-services section > *,
.elementor-widget-yeeb-programmes section > *,
.elementor-widget-yeeb-news section > *,
.elementor-widget-yeeb-events section > *,
.elementor-widget-yeeb-faq section > *,
.elementor-widget-yeeb-partners section > *,
.elementor-widget-yeeb-testimonials section > *,
.elementor-widget-yeeb-programmes-table section > *,
.elementor-widget-yeeb-two-paths section > *,
.elementor-widget-yeeb-contact section > *,
.elementor-widget-yeeb-contact-strip section > * {
  position: relative;
  z-index: 1;
}

.elementor-widget[class*="elementor-widget-yeeb-"],
.elementor-widget[class*="elementor-widget-yeeb-"] p,
.elementor-widget[class*="elementor-widget-yeeb-"] a,
.elementor-widget[class*="elementor-widget-yeeb-"] li,
.elementor-widget[class*="elementor-widget-yeeb-"] small,
.elementor-widget[class*="elementor-widget-yeeb-"] td,
.elementor-widget[class*="elementor-widget-yeeb-"] th,
.elementor-widget[class*="elementor-widget-yeeb-"] input,
.elementor-widget[class*="elementor-widget-yeeb-"] textarea,
.elementor-widget[class*="elementor-widget-yeeb-"] button {
  font-family: var(--yeeb-ff-body) !important;
  letter-spacing: 0 !important;
}

.elementor-widget[class*="elementor-widget-yeeb-"] h1,
.elementor-widget[class*="elementor-widget-yeeb-"] h2,
.elementor-widget[class*="elementor-widget-yeeb-"] h3,
.elementor-widget[class*="elementor-widget-yeeb-"] h4,
.elementor-widget[class*="elementor-widget-yeeb-"] strong,
.elementor-widget[class*="elementor-widget-yeeb-"] summary {
  font-family: var(--yeeb-ff-head) !important;
  letter-spacing: 0 !important;
}

.elementor-widget[class*="elementor-widget-yeeb-"] section {
  padding-top: 84px !important;
  padding-bottom: 84px !important;
}

.elementor-widget[class*="elementor-widget-yeeb-"] h2,
.elementor-widget[class*="elementor-widget-yeeb-"] .yeeb-section__title {
  font-size: 38px !important;
  line-height: 1.12 !important;
}

.elementor-widget[class*="elementor-widget-yeeb-"] h3 {
  font-size: 18px !important;
  line-height: 1.25 !important;
}

.elementor-widget[class*="elementor-widget-yeeb-"] p,
.elementor-widget[class*="elementor-widget-yeeb-"] li {
  font-size: 15px !important;
  line-height: 1.68 !important;
}

.elementor-widget[class*="elementor-widget-yeeb-"] small {
  font-size: 12px !important;
  line-height: 1.45 !important;
}

.elementor-widget[class*="elementor-widget-yeeb-"] a,
.elementor-widget[class*="elementor-widget-yeeb-"] button {
  font-size: 14px !important;
}

.elementor-widget[class*="elementor-widget-yeeb-"] .yeeb-section__lede {
  font-size: 16px !important;
  line-height: 1.62 !important;
}

.elementor-widget-yeeb-stats [style*="font-size:34px"] {
  font-size: 36px !important;
}

.elementor-widget-yeeb-programme-hero [style*="font-size:11px"],
.elementor-widget-yeeb-hero [style*="font-size:11px"] {
  font-size: 12px !important;
}

.elementor-widget-yeeb-programmes-table table,
.elementor-widget-yeeb-programmes-table th,
.elementor-widget-yeeb-programmes-table td {
  font-size: 14px !important;
}

@media (max-width: 900px) {
  .elementor-widget[class*="elementor-widget-yeeb-"] section {
    padding-top: 64px !important;
    padding-bottom: 64px !important;
  }

  .elementor-widget[class*="elementor-widget-yeeb-"] h2,
  .elementor-widget[class*="elementor-widget-yeeb-"] .yeeb-section__title {
    font-size: 32px !important;
  }

  .elementor-widget[class*="elementor-widget-yeeb-"] [style*="grid-template-columns:repeat(auto-fit"],
  .elementor-widget[class*="elementor-widget-yeeb-"] [style*="grid-template-columns:repeat(4"],
  .elementor-widget[class*="elementor-widget-yeeb-"] [style*="grid-template-columns:repeat(3"] {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

.yeeb-footer {
  background: var(--yeeb-green-deep) !important;
}

.yeeb-footer h2,
.yeeb-footer h3,
.yeeb-footer__title {
  color: var(--yeeb-gold) !important;
}

@media (max-width: 900px) {
  .elementor-widget-yeeb-hero .yeeb-container,
  .elementor-widget-yeeb-programme-hero [style*="grid-template-columns:1fr 1fr"],
  .elementor-widget-yeeb-success [style*="grid-template-columns"],
  .elementor-widget-yeeb-two-paths [style*="grid-template-columns:1fr 1fr"] {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }

  .elementor-widget-yeeb-hero h1,
  .elementor-widget-yeeb-programme-hero h1 {
    font-size: 46px !important;
  }
}

@media (max-width: 640px) {
  .yeeb-header__inner { height: 60px; }
  .yeeb-logo__mark { width: 28px; height: 28px; }
  .yeeb-logo__word { font-size: 15px; }

  .elementor-widget[class*="elementor-widget-yeeb-"] section {
    padding: 52px 20px !important;
  }

  .elementor-widget-yeeb-hero h1,
  .elementor-widget-yeeb-programme-hero h1 {
    font-size: 38px !important;
    line-height: 1.02 !important;
  }

  .elementor-widget-yeeb-cta h2 {
    font-size: 34px !important;
  }

  .elementor-widget[class*="elementor-widget-yeeb-"] h2,
  .elementor-widget[class*="elementor-widget-yeeb-"] .yeeb-section__title {
    font-size: 28px !important;
  }

  .elementor-widget[class*="elementor-widget-yeeb-"] h3 {
    font-size: 17px !important;
  }

  .elementor-widget[class*="elementor-widget-yeeb-"] p,
  .elementor-widget[class*="elementor-widget-yeeb-"] li {
    font-size: 14px !important;
    line-height: 1.62 !important;
  }

  .elementor-widget[class*="elementor-widget-yeeb-"] [style*="grid-template-columns"],
  .elementor-widget-yeeb-contact form {
    grid-template-columns: 1fr !important;
  }

  .elementor-widget-yeeb-contact form label,
  .elementor-widget-yeeb-contact form div {
    grid-column: 1 !important;
  }

  .elementor-widget-yeeb-programmes-table table {
    display: block !important;
    overflow-x: auto !important;
    white-space: nowrap !important;
  }
}

.elementor-widget-yeeb-hero section {
  padding-top: 72px !important;
  padding-bottom: 72px !important;
}

.elementor-widget-yeeb-programme-hero section {
  padding-top: 74px !important;
  padding-bottom: 74px !important;
}

.elementor-widget-yeeb-cta h2 {
  font-size: 48px !important;
}

@media (max-width: 900px) {
  .elementor-widget-yeeb-cta h2 {
    font-size: 40px !important;
  }
}

@media (max-width: 640px) {
  .elementor-widget-yeeb-hero section,
  .elementor-widget-yeeb-programme-hero section {
    padding-top: 52px !important;
    padding-bottom: 52px !important;
  }

  .elementor-widget-yeeb-cta h2 {
    font-size: 34px !important;
  }
}
