/* =========================================================================
   custom.css — site-specific overrides and new components.
   Loaded after app.css so styles here win on equal specificity.

   Brand palette
     primary (deep green) : #004439
     primary-tint         : #0a6b58
     secondary (yellow)   : #D5D52C
     ink                  : #0f1822
     muted                : #6b7280
     hairline             : #EAEAEC

   Index
     1. Home page — Courses section (course-card-v3)
     2. Home page — Teachers section (teacher-section-v2 / teacher-card)
     3. Home page — Testimonials section (testimonials-v2 / testimonial-card-v2)
     4. Home page — Articles section (articles-v2 / article-card)
     5. Shared — section heading helpers
   ========================================================================= */


/* -------------------------------------------------------------------------
   1. Home page — Courses section
   File: base/templates/base/home.html
   Partial: base/templates/base/_course_card.html

   Editorial / image-forward card. Big media, dark gradient overlay,
   floating duration chip, body sits below with category eyebrow,
   title, excerpt, and a price + arrow row.
   ------------------------------------------------------------------------- */

.course-card-v3 {
  position: relative;
  display: flex;
  flex-direction: column;
  background: #ffffff;
  border-radius: 20px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  height: 100%;
  isolation: isolate;
  box-shadow: 0 1px 2px rgba(15, 24, 34, 0.04), 0 8px 24px -16px rgba(15, 24, 34, 0.18);
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1),
              box-shadow 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}
.course-card-v3:hover {
  transform: translateY(-6px);
  box-shadow: 0 1px 2px rgba(15, 24, 34, 0.05), 0 28px 48px -24px rgba(0, 68, 57, 0.35);
}

/* ---------- Media ---------- */
.course-card-v3__media {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #0f1822;
}
.course-card-v3__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}
.course-card-v3:hover .course-card-v3__media img {
  transform: scale(1.08);
}

/* Dark gradient overlay so the duration chip stays legible */
.course-card-v3__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(15, 24, 34, 0) 45%, rgba(15, 24, 34, 0.55) 100%);
  pointer-events: none;
  z-index: 1;
}

/* Branded placeholder when course has no image */
.course-card-v3__placeholder {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 100% 0%, rgba(213, 213, 44, 0.35), transparent 55%),
    radial-gradient(ellipse at 0% 100%, rgba(10, 107, 88, 0.55), transparent 60%),
    linear-gradient(135deg, #003027 0%, #004439 60%, #0a6b58 100%);
  overflow: hidden;
}
.course-card-v3__placeholder-grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.045) 1px, transparent 1px);
  background-size: 28px 28px;
  mask-image: radial-gradient(circle at 50% 50%, #000 30%, transparent 80%);
  -webkit-mask-image: radial-gradient(circle at 50% 50%, #000 30%, transparent 80%);
}
.course-card-v3__placeholder-content {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 24px;
  color: #ffffff;
}
.course-card-v3__placeholder-monogram {
  font-size: clamp(40px, 4.5vw, 72px);
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 1;
  background: linear-gradient(180deg, #ffffff 0%, rgba(213, 213, 44, 0.85) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  text-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
}
.course-card-v3__placeholder-tag {
  padding: 5px 12px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #D5D52C;
  border: 1px solid rgba(213, 213, 44, 0.5);
  border-radius: 999px;
  backdrop-filter: blur(4px);
}

/* Floating duration chip on the media */
.course-card-v3__duration {
  position: absolute;
  z-index: 2;
  top: 16px;
  right: 16px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 12px;
  background: rgba(255, 255, 255, 0.92);
  color: #0f1822;
  font-size: 12px;
  font-weight: 600;
  border-radius: 999px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
}
.course-card-v3__duration svg {
  color: #004439;
}

/* ---------- Body ---------- */
.course-card-v3__body {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 22px 22px 22px;
  flex: 1 1 auto;
}
.course-card-v3__category {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #0a6b58;
}
.course-card-v3__title {
  font-size: 19px;
  font-weight: 700;
  line-height: 1.32;
  margin: 0;
  color: #0f1822;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: color 0.25s ease;
}
.course-card-v3:hover .course-card-v3__title {
  color: #004439;
}
.course-card-v3__excerpt {
  font-size: 14px;
  line-height: 1.55;
  color: #6b7280;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ---------- Footer (price + arrow) ---------- */
.course-card-v3__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 14px;
  padding-top: 16px;
  border-top: 1px dashed #EAEAEC;
}
.course-card-v3__price-block {
  display: flex;
  flex-direction: column;
  line-height: 1.1;
}
.course-card-v3__price-label {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #92949F;
  margin-bottom: 4px;
}
.course-card-v3__price {
  font-size: 17px;
  font-weight: 700;
  color: #004439;
}
.course-card-v3__price--muted {
  font-size: 13px;
  font-weight: 600;
  color: #6b7280;
}
.course-card-v3__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: #f4f6f5;
  color: #004439;
  flex-shrink: 0;
  transition: background 0.3s ease, color 0.3s ease, transform 0.3s ease;
}
.course-card-v3:hover .course-card-v3__arrow {
  background: #004439;
  color: #D5D52C;
  transform: rotate(0deg) scale(1.08);
}
.course-card-v3__arrow svg {
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}
.course-card-v3:hover .course-card-v3__arrow svg {
  transform: translate(2px, -2px);
}


/* -------------------------------------------------------------------------
   5. Shared — section heading helpers
   Used across teachers / testimonials / articles redesigns below.
   ------------------------------------------------------------------------- */

.section-eyebrow {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #0a6b58;
  margin-bottom: 12px;
  padding: 4px 12px;
  background: rgba(10, 107, 88, 0.08);
  border-radius: 999px;
}


/* -------------------------------------------------------------------------
   2. Home page — Teachers section
   File: base/templates/base/home.html
   Wrapper: .teacher-section-v2  Card: .teacher-card

   Premium portrait card. Tall 3:4 media area, social rail slides up
   from the bottom on hover, role tag floats top-left, body sits below
   on a clean off-white plinth.
   ------------------------------------------------------------------------- */

.teacher-section-v2 {
  background:
    radial-gradient(1200px 400px at 100% 0%, rgba(213, 213, 44, 0.07), transparent 60%),
    radial-gradient(900px 300px at 0% 100%, rgba(0, 68, 57, 0.04), transparent 60%);
}
.teacher-section-v2__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 48px;
}
.teacher-section-v2__eyebrow {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #0a6b58;
  margin-bottom: 12px;
  padding: 4px 12px;
  background: rgba(10, 107, 88, 0.08);
  border-radius: 999px;
}
.teacher-section-v2__title {
  font-size: clamp(28px, 3vw, 44px);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #0f1822;
  margin: 0 0 12px;
  line-height: 1.1;
}
.teacher-section-v2__lede {
  color: #6b7280;
  margin: 0;
  font-size: 15px;
  line-height: 1.6;
}
.teacher-section-v2__cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 20px;
  background: #004439;
  color: #ffffff;
  font-size: 13px;
  font-weight: 700;
  border-radius: 999px;
  text-decoration: none;
  transition: background 0.3s ease, gap 0.25s ease, color 0.3s ease;
}
.teacher-section-v2__cta:hover {
  background: #D5D52C;
  color: #004439;
  gap: 12px;
}

.teacher-card {
  position: relative;
  background: #ffffff;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 1px 2px rgba(15, 24, 34, 0.04), 0 8px 24px -16px rgba(15, 24, 34, 0.18);
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1),
              box-shadow 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}
.teacher-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 1px 2px rgba(15, 24, 34, 0.05), 0 28px 48px -24px rgba(0, 68, 57, 0.32);
}
.teacher-card__media {
  position: relative;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: #0f1822;
}
.teacher-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}
.teacher-card:hover .teacher-card__media img {
  transform: scale(1.06);
}
.teacher-card__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 55%, rgba(0, 68, 57, 0.55) 100%);
  pointer-events: none;
}

/* Default placeholder when teacher has no photo */
.teacher-card__placeholder {
  position: absolute;
  inset: 0;
}
.teacher-card__placeholder svg {
  width: 100%;
  height: 100%;
  display: block;
}
.teacher-card__placeholder-initial {
  position: absolute;
  bottom: 22%;
  left: 0;
  right: 0;
  text-align: center;
  font-size: clamp(40px, 4vw, 64px);
  font-weight: 800;
  color: #ffffff;
  letter-spacing: -0.02em;
  text-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
}

.teacher-card__role-tag {
  position: absolute;
  z-index: 2;
  top: 16px;
  left: 16px;
  padding: 6px 12px;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: #004439;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border-radius: 999px;
}

/* Social rail slides up from the bottom on hover */
.teacher-card__socials {
  position: absolute;
  z-index: 2;
  left: 16px;
  right: 16px;
  bottom: 16px;
  display: flex;
  gap: 8px;
  margin: 0;
  padding: 0;
  transform: translateY(120%);
  opacity: 0;
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.3s ease;
}
.teacher-card:hover .teacher-card__socials {
  transform: translateY(0);
  opacity: 1;
}
.teacher-card__socials li a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #ffffff;
  color: #004439;
  transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}
.teacher-card__socials li a:hover {
  background: #D5D52C;
  color: #004439;
  transform: translateY(-2px);
}

.teacher-card__body {
  padding: 18px 20px 22px;
}
.teacher-card__name {
  font-size: 18px;
  font-weight: 700;
  color: #0f1822;
  margin: 0 0 6px;
  letter-spacing: -0.01em;
}
.teacher-card__bio {
  font-size: 13px;
  line-height: 1.5;
  color: #6b7280;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}


/* -------------------------------------------------------------------------
   3. Home page — Testimonials section
   File: base/templates/base/home.html
   Wrapper: .testimonials-v2  Card: .testimonial-card-v2

   Editorial quote-card with a giant translucent quote glyph in the
   background, brand-yellow rating stars, gradient avatar fallback when
   the testimonial has no photo.
   ------------------------------------------------------------------------- */

.testimonials-v2 {
  position: relative;
  background:
    linear-gradient(180deg, #fafbfa 0%, #ffffff 100%);
}
.testimonials-v2__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 48px;
}
.testimonials-v2__eyebrow {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #0a6b58;
  margin-bottom: 12px;
  padding: 4px 12px;
  background: rgba(10, 107, 88, 0.08);
  border-radius: 999px;
}
.testimonials-v2__title {
  font-size: clamp(28px, 3vw, 44px);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #0f1822;
  margin: 0 0 12px;
  line-height: 1.1;
}
.testimonials-v2__title em {
  font-style: italic;
  font-weight: 800;
  color: #004439;
  font-family: Georgia, "Times New Roman", serif;
}
.testimonials-v2__lede {
  color: #6b7280;
  margin: 0;
  font-size: 15px;
  line-height: 1.6;
}
.testimonials-v2__arrows {
  display: flex;
  gap: 8px;
}
.testimonials-v2__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: #ffffff;
  border: 1px solid #EAEAEC;
  color: #004439;
  transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}
.testimonials-v2__arrow:hover {
  background: #004439;
  border-color: #004439;
  color: #D5D52C;
}

.testimonial-card-v2 {
  position: relative;
  margin: 0 12px;
  padding: 32px 28px 28px;
  background: #ffffff;
  border: 1px solid #EAEAEC;
  border-radius: 18px;
  overflow: hidden;
  isolation: isolate;
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
.testimonial-card-v2:hover {
  border-color: #004439;
  box-shadow: 0 18px 40px -24px rgba(0, 68, 57, 0.25);
}
.testimonial-card-v2__quote-mark {
  position: absolute;
  top: -18px;
  right: -18px;
  width: 160px;
  height: 160px;
  color: rgba(0, 68, 57, 0.05);
  z-index: 0;
  pointer-events: none;
}
.testimonial-card-v2__quote-mark svg {
  width: 100%;
  height: 100%;
}

.testimonial-card-v2__rating {
  display: flex;
  gap: 2px;
  margin-bottom: 18px;
  position: relative;
  z-index: 1;
}
.testimonial-card-v2__quote {
  position: relative;
  z-index: 1;
  font-size: 16px;
  line-height: 1.65;
  color: #0f1822;
  margin: 0 0 20px;
  font-weight: 500;
  display: -webkit-box;
  -webkit-line-clamp: 5;
  line-clamp: 5;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.testimonial-card-v2__topic {
  position: relative;
  z-index: 1;
  display: inline-block;
  padding: 4px 10px;
  background: rgba(213, 213, 44, 0.18);
  color: #0a6b58;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border-radius: 6px;
  margin-bottom: 22px;
}
.testimonial-card-v2__author {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 14px;
  padding-top: 22px;
  border-top: 1px dashed #EAEAEC;
}
.testimonial-card-v2__avatar {
  position: relative;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  background: linear-gradient(135deg, #0a6b58, #004439);
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid rgba(213, 213, 44, 0.4);
}
.testimonial-card-v2__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.testimonial-card-v2__avatar-initial {
  font-size: 20px;
  font-weight: 800;
  color: #ffffff;
  letter-spacing: -0.02em;
}
.testimonial-card-v2__author-meta {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.testimonial-card-v2__author-name {
  font-size: 15px;
  font-weight: 700;
  color: #0f1822;
  margin: 0;
}
.testimonial-card-v2__author-role {
  font-size: 12px;
  color: #6b7280;
  margin: 0;
}


/* -------------------------------------------------------------------------
   4. Home page — Articles section
   File: base/templates/base/home.html
   Wrapper: .articles-v2  Card: .article-card

   Asymmetric magazine-style grid: one large featured article on the
   left, three compact horizontal cards stacked on the right.
   ------------------------------------------------------------------------- */

.articles-v2__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 48px;
}
.articles-v2__eyebrow {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #0a6b58;
  margin-bottom: 12px;
  padding: 4px 12px;
  background: rgba(10, 107, 88, 0.08);
  border-radius: 999px;
}
.articles-v2__title {
  font-size: clamp(28px, 3vw, 44px);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #0f1822;
  margin: 0 0 12px;
  line-height: 1.1;
}
.articles-v2__lede {
  color: #6b7280;
  margin: 0;
  font-size: 15px;
  line-height: 1.6;
}
.articles-v2__cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 20px;
  background: #004439;
  color: #ffffff;
  font-size: 13px;
  font-weight: 700;
  border-radius: 999px;
  text-decoration: none;
  transition: background 0.3s ease, color 0.3s ease, gap 0.25s ease;
}
.articles-v2__cta:hover {
  background: #D5D52C;
  color: #004439;
  gap: 12px;
}

.articles-v2__grid {
  display: grid;
  gap: 24px;
  grid-template-columns: 1fr;
}
@media (min-width: 992px) {
  .articles-v2__grid {
    grid-template-columns: 1.4fr 1fr;
    align-items: stretch;
  }
  .article-card--featured {
    grid-row: span 3;
  }
}

.article-card {
  display: flex;
  flex-direction: column;
  background: #ffffff;
  border: 1px solid #EAEAEC;
  border-radius: 18px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1),
              box-shadow 0.35s ease,
              border-color 0.35s ease;
}
.article-card:hover {
  transform: translateY(-4px);
  border-color: #004439;
  box-shadow: 0 22px 40px -24px rgba(0, 68, 57, 0.3);
}

/* Featured (large) variant */
.article-card--featured .article-card__media {
  position: relative;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: #0f1822;
}
.article-card--featured .article-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}
.article-card--featured:hover .article-card__media img {
  transform: scale(1.05);
}
.article-card__featured-tag {
  position: absolute;
  top: 16px;
  left: 16px;
  z-index: 2;
  padding: 6px 14px;
  background: #D5D52C;
  color: #004439;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-radius: 999px;
  box-shadow: 0 6px 16px rgba(0, 68, 57, 0.2);
}

/* Compact (right column) variant */
.article-card--compact {
  display: grid;
  grid-template-columns: 130px 1fr;
  gap: 0;
}
.article-card__media-sm {
  position: relative;
  height: 100%;
  min-height: 130px;
  overflow: hidden;
  background: #0f1822;
}
.article-card__media-sm img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}
.article-card--compact:hover .article-card__media-sm img {
  transform: scale(1.06);
}

/* Placeholder for missing cover_image */
.article-card__placeholder {
  position: absolute;
  inset: 0;
}
.article-card__placeholder svg {
  width: 100%;
  height: 100%;
  display: block;
}
.article-card__placeholder-glyph {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.85);
}
.article-card__placeholder-glyph--sm svg {
  width: 22px;
  height: 22px;
}

/* Body (shared) */
.article-card__body {
  padding: 24px 24px 26px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.article-card__body--compact {
  padding: 16px 18px;
  gap: 8px;
  justify-content: center;
}
.article-card__meta {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 12px;
  color: #6b7280;
  font-weight: 500;
  letter-spacing: 0.02em;
}
.article-card__meta-dot {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #92949F;
}
.article-card__title {
  font-size: 17px;
  font-weight: 700;
  line-height: 1.32;
  margin: 0;
  color: #0f1822;
  letter-spacing: -0.01em;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: color 0.25s ease;
}
.article-card:hover .article-card__title {
  color: #004439;
}
.article-card__title--lg {
  font-size: clamp(22px, 1.8vw, 28px);
  -webkit-line-clamp: 3;
  line-clamp: 3;
}
.article-card__excerpt {
  font-size: 14px;
  line-height: 1.6;
  color: #6b7280;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.article-card__excerpt--sm {
  font-size: 13px;
  -webkit-line-clamp: 2;
  line-clamp: 2;
}
.article-card__readmore {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 6px;
  font-size: 13px;
  font-weight: 700;
  color: #004439;
  letter-spacing: 0.02em;
  transition: gap 0.25s ease;
}
.article-card:hover .article-card__readmore {
  gap: 10px;
}


/* -------------------------------------------------------------------------
   6. Courses listing page (/courses)
   File: base/templates/base/courses.html
   Wrapper: .courses-listing
   ------------------------------------------------------------------------- */

.courses-listing__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 32px;
}
.courses-listing__title {
  font-size: clamp(28px, 3vw, 44px);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #0f1822;
  margin: 0 0 12px;
  line-height: 1.1;
}
.courses-listing__lede {
  color: #6b7280;
  margin: 0;
  font-size: 15px;
  line-height: 1.6;
  max-width: 560px;
}
.courses-listing__search {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
  background: #ffffff;
  border: 1px solid #EAEAEC;
  border-radius: 999px;
  padding: 6px 6px 6px 18px;
  min-width: 320px;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.courses-listing__search:focus-within {
  border-color: #004439;
  box-shadow: 0 0 0 4px rgba(0, 68, 57, 0.08);
}
.courses-listing__search > svg {
  color: #6b7280;
  flex-shrink: 0;
}
.courses-listing__search input {
  flex: 1;
  border: 0;
  background: transparent;
  padding: 8px 4px;
  font-size: 14px;
  color: #0f1822;
  outline: none;
  min-width: 0;
}
.courses-listing__search input::placeholder { color: #9ca3af; }
.courses-listing__search-btn {
  display: inline-flex;
  align-items: center;
  border: 0;
  padding: 10px 18px;
  background: #004439;
  color: #ffffff;
  font-size: 13px;
  font-weight: 700;
  border-radius: 999px;
  cursor: pointer;
  transition: background 0.25s ease, color 0.25s ease;
}
.courses-listing__search-btn:hover {
  background: #D5D52C;
  color: #004439;
}

.courses-listing__filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 32px;
  padding-bottom: 24px;
  border-bottom: 1px solid #EAEAEC;
}
.courses-listing__chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  background: #ffffff;
  border: 1px solid #EAEAEC;
  border-radius: 999px;
  color: #4b5563;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.courses-listing__chip:hover {
  border-color: #004439;
  color: #004439;
}
.courses-listing__chip.is-active {
  background: #004439;
  border-color: #004439;
  color: #ffffff;
}
.courses-listing__chip-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  font-size: 11px;
  font-weight: 700;
  border-radius: 999px;
  background: rgba(15, 24, 34, 0.06);
  color: inherit;
}
.courses-listing__chip.is-active .courses-listing__chip-count {
  background: rgba(213, 213, 44, 0.25);
  color: #D5D52C;
}

.courses-listing__summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 24px;
  padding: 14px 18px;
  background: rgba(10, 107, 88, 0.04);
  border-radius: 12px;
  font-size: 14px;
  color: #4b5563;
}
.courses-listing__summary strong { color: #0f1822; }
.courses-listing__clear {
  font-size: 13px;
  font-weight: 700;
  color: #004439;
  text-decoration: none;
}
.courses-listing__clear:hover { color: #0a6b58; text-decoration: underline; }

.courses-listing__empty {
  text-align: center;
  padding: 64px 24px;
  background: #fafbfa;
  border: 1px dashed #EAEAEC;
  border-radius: 18px;
  color: #6b7280;
}
.courses-listing__empty svg { color: #9ca3af; margin-bottom: 16px; }
.courses-listing__empty h3 {
  font-size: 22px;
  font-weight: 700;
  color: #0f1822;
  margin: 0 0 8px;
}
.courses-listing__empty p { margin: 0 0 20px; }
.courses-listing__empty-cta {
  display: inline-flex;
  align-items: center;
  padding: 10px 22px;
  background: #004439;
  color: #ffffff;
  font-size: 13px;
  font-weight: 700;
  border-radius: 999px;
  text-decoration: none;
  transition: background 0.25s ease, color 0.25s ease;
}
.courses-listing__empty-cta:hover { background: #D5D52C; color: #004439; }

/* CTA strip */
.courses-cta-strip__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 32px 36px;
  background: linear-gradient(135deg, #004439 0%, #0a6b58 100%);
  border-radius: 22px;
  color: #ffffff;
}
.courses-cta-strip__title {
  font-size: clamp(20px, 2vw, 26px);
  font-weight: 800;
  margin: 0 0 6px;
  letter-spacing: -0.01em;
}
.courses-cta-strip__lede {
  margin: 0;
  font-size: 14px;
  opacity: 0.85;
  max-width: 520px;
}
.courses-cta-strip__actions { display: flex; gap: 10px; flex-wrap: wrap; }
.courses-cta-strip__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 22px;
  font-size: 13px;
  font-weight: 700;
  border-radius: 999px;
  text-decoration: none;
  transition: background 0.25s ease, color 0.25s ease, gap 0.25s ease;
}
.courses-cta-strip__btn--primary { background: #D5D52C; color: #004439; }
.courses-cta-strip__btn--primary:hover { background: #ffffff; color: #004439; gap: 12px; }
.courses-cta-strip__btn--ghost { background: rgba(255,255,255,0.1); color: #ffffff; border: 1px solid rgba(255,255,255,0.3); }
.courses-cta-strip__btn--ghost:hover { background: #ffffff; color: #004439; border-color: #ffffff; }


/* -------------------------------------------------------------------------
   7. Course detail page (/courses/<slug>)
   File: base/templates/base/courses_detail.html
   ------------------------------------------------------------------------- */

.course-not-found__inner {
  text-align: center;
  max-width: 520px;
  margin: 0 auto;
}
.course-not-found__inner h1 {
  font-size: clamp(28px, 3vw, 40px);
  font-weight: 800;
  color: #0f1822;
  margin: 12px 0;
  letter-spacing: -0.02em;
}
.course-not-found__inner p { color: #6b7280; margin: 0 0 24px; }
.course-not-found__cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 24px;
  background: #004439;
  color: #ffffff;
  font-size: 14px;
  font-weight: 700;
  border-radius: 999px;
  text-decoration: none;
  transition: background 0.25s ease, color 0.25s ease, gap 0.25s ease;
}
.course-not-found__cta:hover { background: #D5D52C; color: #004439; gap: 12px; }

/* Course hero */
.course-hero {
  padding: 32px 0 56px;
  background:
    radial-gradient(1000px 360px at 100% 0%, rgba(213, 213, 44, 0.07), transparent 60%),
    radial-gradient(900px 320px at 0% 100%, rgba(0, 68, 57, 0.05), transparent 60%);
}
.course-hero__breadcrumbs {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: #6b7280;
  margin-bottom: 28px;
  flex-wrap: wrap;
}
.course-hero__breadcrumbs a {
  color: #6b7280;
  text-decoration: none;
  transition: color 0.2s ease;
}
.course-hero__breadcrumbs a:hover { color: #004439; }
.course-hero__breadcrumbs-current { color: #0f1822; font-weight: 600; }

.course-hero__grid {
  display: grid;
  gap: 40px;
  grid-template-columns: 1fr;
  align-items: center;
}
@media (min-width: 992px) {
  .course-hero__grid { grid-template-columns: 1.2fr 1fr; gap: 56px; }
}

.course-hero__category {
  display: inline-block;
  padding: 6px 14px;
  background: rgba(10, 107, 88, 0.1);
  color: #0a6b58;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border-radius: 999px;
  margin-bottom: 16px;
}
.course-hero__title {
  font-size: clamp(32px, 4vw, 52px);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #0f1822;
  margin: 0 0 16px;
  line-height: 1.05;
}
.course-hero__lede {
  font-size: 17px;
  line-height: 1.6;
  color: #4b5563;
  margin: 0 0 28px;
  max-width: 600px;
}
.course-hero__meta {
  list-style: none;
  margin: 0 0 32px;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 12px 24px;
}
.course-hero__meta li {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: #4b5563;
}
.course-hero__meta li svg { color: #0a6b58; flex-shrink: 0; }
.course-hero__meta strong { color: #0f1822; font-weight: 700; }
.course-hero__actions { display: flex; gap: 10px; flex-wrap: wrap; }
.course-hero__cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 26px;
  background: #004439;
  color: #ffffff;
  font-size: 14px;
  font-weight: 700;
  border-radius: 999px;
  text-decoration: none;
  transition: background 0.25s ease, color 0.25s ease, gap 0.25s ease;
}
.course-hero__cta:hover { background: #D5D52C; color: #004439; gap: 12px; }
.course-hero__cta-ghost {
  display: inline-flex;
  align-items: center;
  padding: 14px 24px;
  background: #ffffff;
  border: 1px solid #EAEAEC;
  color: #0f1822;
  font-size: 14px;
  font-weight: 700;
  border-radius: 999px;
  text-decoration: none;
  transition: border-color 0.25s ease, color 0.25s ease;
}
.course-hero__cta-ghost:hover { border-color: #004439; color: #004439; }

.course-hero__media {
  position: relative;
  border-radius: 24px;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: #0f1822;
  box-shadow: 0 30px 60px -32px rgba(0, 68, 57, 0.4);
}
.course-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.course-hero__placeholder { position: absolute; inset: 0; }
.course-hero__placeholder svg { width: 100%; height: 100%; display: block; }
.course-hero__placeholder-monogram {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: clamp(64px, 8vw, 120px);
  font-weight: 800;
  color: rgba(255, 255, 255, 0.95);
  letter-spacing: -0.04em;
  text-shadow: 0 8px 24px rgba(0,0,0,0.25);
}
.course-hero__price-badge {
  position: absolute;
  bottom: 18px;
  left: 18px;
  display: inline-flex;
  flex-direction: column;
  padding: 10px 16px;
  background: #ffffff;
  border-radius: 12px;
  box-shadow: 0 8px 24px -8px rgba(0,0,0,0.2);
}
.course-hero__price-badge small {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #6b7280;
}
.course-hero__price-badge strong {
  font-size: 22px;
  font-weight: 800;
  color: #004439;
  letter-spacing: -0.01em;
}

/* Course body */
.course-body__card {
  background: #ffffff;
  border: 1px solid #EAEAEC;
  border-radius: 18px;
  padding: 32px;
  margin-bottom: 24px;
}
.course-body__heading {
  font-size: 22px;
  font-weight: 800;
  color: #0f1822;
  letter-spacing: -0.01em;
  margin: 0 0 20px;
}
.course-body__prose {
  font-size: 15px;
  line-height: 1.7;
  color: #4b5563;
}
.course-body__prose p:last-child { margin-bottom: 0; }
.course-body__prose ul, .course-body__prose ol { padding-left: 22px; margin: 0 0 16px; }
.course-body__prose li { margin-bottom: 8px; }

.course-features {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
@media (min-width: 768px) {
  .course-features { grid-template-columns: 1fr 1fr; }
}
.course-features__item {
  display: flex;
  gap: 14px;
  padding: 16px;
  background: #fafbfa;
  border-radius: 12px;
}
.course-features__icon {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #D5D52C;
  color: #004439;
}
.course-features__item h4 {
  font-size: 15px;
  font-weight: 700;
  color: #0f1822;
  margin: 0 0 4px;
  letter-spacing: -0.005em;
}
.course-features__item p {
  font-size: 13px;
  line-height: 1.55;
  color: #6b7280;
  margin: 0;
}

.course-requirements {
  list-style: none;
  margin: 0;
  padding: 0;
}
.course-requirements li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px dashed #EAEAEC;
  font-size: 15px;
  color: #4b5563;
}
.course-requirements li:last-child { border-bottom: 0; }
.course-requirements__bullet {
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #0a6b58;
  margin-top: 8px;
}

/* Course testimonials */
.course-testimonials {
  display: grid;
  gap: 16px;
  grid-template-columns: 1fr;
}
@media (min-width: 768px) {
  .course-testimonials { grid-template-columns: 1fr 1fr; }
}
.course-testimonial {
  padding: 22px;
  background: #fafbfa;
  border: 1px solid #EAEAEC;
  border-radius: 14px;
}
.course-testimonial__rating { display: flex; gap: 2px; margin-bottom: 12px; }
.course-testimonial__quote {
  font-size: 14px;
  line-height: 1.65;
  color: #0f1822;
  margin: 0 0 16px;
  font-weight: 500;
}
.course-testimonial__author {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-top: 14px;
  border-top: 1px dashed #EAEAEC;
}
.course-testimonial__avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  background: linear-gradient(135deg, #0a6b58, #004439);
  display: flex;
  align-items: center;
  justify-content: center;
}
.course-testimonial__avatar img {
  width: 100%; height: 100%; object-fit: cover;
}
.course-testimonial__avatar span {
  font-size: 16px;
  font-weight: 800;
  color: #ffffff;
}
.course-testimonial__author h5 {
  font-size: 13px;
  font-weight: 700;
  color: #0f1822;
  margin: 0;
}
.course-testimonial__author p {
  font-size: 12px;
  color: #6b7280;
  margin: 0;
}

/* FAQs */
.course-faq { border-bottom: 1px solid #EAEAEC; }
.course-faq:last-child { border-bottom: 0; }
.course-faq__q {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 0;
  background: transparent;
  border: 0;
  font-size: 15px;
  font-weight: 700;
  color: #0f1822;
  text-align: left;
  cursor: pointer;
  transition: color 0.2s ease;
}
.course-faq__q:hover { color: #004439; }
.course-faq__q svg {
  flex-shrink: 0;
  color: #6b7280;
  transition: transform 0.25s ease, color 0.2s ease;
}
.course-faq__q[aria-expanded="true"] svg {
  transform: rotate(180deg);
  color: #004439;
}
.course-faq__a {
  padding: 0 0 18px;
  font-size: 14px;
  line-height: 1.65;
  color: #4b5563;
}

/* Apply form (sticky aside) */
.course-apply {
  position: sticky;
  top: 24px;
  background: #ffffff;
  border: 1px solid #EAEAEC;
  border-radius: 18px;
  padding: 28px;
  box-shadow: 0 18px 40px -28px rgba(0, 68, 57, 0.18);
}
.course-apply__head { margin-bottom: 20px; }
.course-apply__title {
  font-size: 22px;
  font-weight: 800;
  color: #0f1822;
  margin: 8px 0 12px;
  letter-spacing: -0.01em;
}
.course-apply__price {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin: 0;
  padding: 12px 14px;
  background: rgba(213, 213, 44, 0.18);
  border-radius: 10px;
}
.course-apply__price small {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #0a6b58;
}
.course-apply__price strong {
  font-size: 20px;
  font-weight: 800;
  color: #004439;
}

.course-apply__alert {
  padding: 12px 14px;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.course-apply__alert--success { background: rgba(10, 107, 88, 0.1); color: #0a6b58; }
.course-apply__alert--error { background: rgba(220, 38, 38, 0.08); color: #b91c1c; }

.course-apply__form { display: flex; flex-direction: column; gap: 14px; }
.course-apply__field { display: flex; flex-direction: column; gap: 6px; }
.course-apply__field span {
  font-size: 12px;
  font-weight: 700;
  color: #4b5563;
  letter-spacing: 0.02em;
}
.course-apply__field span em {
  color: #b91c1c;
  font-style: normal;
  margin-left: 2px;
}
.course-apply__field input,
.course-apply__field textarea {
  border: 1px solid #EAEAEC;
  border-radius: 10px;
  padding: 11px 13px;
  font-size: 14px;
  color: #0f1822;
  background: #ffffff;
  font-family: inherit;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.course-apply__field input:focus,
.course-apply__field textarea:focus {
  outline: none;
  border-color: #004439;
  box-shadow: 0 0 0 4px rgba(0, 68, 57, 0.08);
}
.course-apply__field textarea { resize: vertical; min-height: 80px; }

.course-apply__submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 13px 22px;
  background: #004439;
  color: #ffffff;
  border: 0;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  margin-top: 4px;
  transition: background 0.25s ease, color 0.25s ease, gap 0.25s ease;
}
.course-apply__submit:hover { background: #D5D52C; color: #004439; gap: 12px; }
.course-apply__hint {
  font-size: 12px;
  color: #6b7280;
  margin: 6px 0 0;
  text-align: center;
}

.course-apply__contacts {
  list-style: none;
  margin: 22px 0 0;
  padding: 18px 0 0;
  border-top: 1px dashed #EAEAEC;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.course-apply__contacts li {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  color: #4b5563;
}
.course-apply__contacts li svg { color: #0a6b58; flex-shrink: 0; }
.course-apply__contacts a { color: inherit; text-decoration: none; }
.course-apply__contacts a:hover { color: #004439; }

/* Related courses */
.related-courses__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 32px;
}
.related-courses__title {
  font-size: clamp(24px, 2.4vw, 36px);
  font-weight: 800;
  color: #0f1822;
  margin: 8px 0 0;
  letter-spacing: -0.02em;
}
.related-courses__cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  background: #ffffff;
  border: 1px solid #EAEAEC;
  border-radius: 999px;
  color: #004439;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease, gap 0.25s ease;
}
.related-courses__cta:hover { background: #004439; color: #ffffff; border-color: #004439; gap: 12px; }


/* -------------------------------------------------------------------------
   Course detail sidebar — fix value wrapping in narrow column
   ------------------------------------------------------------------------- */

.course-sidebar .bg-light-white > .d-flex:last-child p {
  text-align: right;
  margin: 0;
}



/* -------------------------------------------------------------------------
   9. About Us page — sections from Mission/Vision downward.
   Reuses brand palette (#004439 / #0a6b58 / #D5D52C) and the home page v2
   components for testimonials. Only the parts redesigned here are styled.
   ------------------------------------------------------------------------- */

/* Mission + Vision split-spread card */
.about-spread__card {
  display: grid;
  grid-template-columns: 1fr;
  border-radius: 22px;
  overflow: hidden;
  border: 1px solid #EAEAEC;
  background: #ffffff;
  box-shadow: 0 24px 56px -36px rgba(0, 68, 57, 0.25);
}
@media (min-width: 992px) {
  .about-spread__card { grid-template-columns: 1fr 1fr; }
}
.about-spread__half {
  padding: 48px 40px;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.about-spread__half--accent {
  background: linear-gradient(135deg, #004439 0%, #0a6b58 100%);
  color: #ffffff;
}
.about-spread__eyebrow {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #0a6b58;
  background: rgba(10, 107, 88, 0.08);
  padding: 5px 14px;
  border-radius: 999px;
  align-self: flex-start;
}
.about-spread__eyebrow--light {
  color: #D5D52C;
  background: rgba(213, 213, 44, 0.18);
}
.about-spread__text {
  font-size: 18px;
  line-height: 1.6;
  color: #0f1822;
  font-weight: 500;
  margin: 0;
  flex: 1 1 auto;
}
.about-spread__text--light { color: rgba(255, 255, 255, 0.96); }
.about-spread__stat {
  display: flex;
  align-items: baseline;
  gap: 12px;
  padding-top: 18px;
  border-top: 1px dashed rgba(15, 24, 34, 0.12);
}
.about-spread__stat--light { border-top-color: rgba(255, 255, 255, 0.18); }
.about-spread__stat strong {
  font-size: 28px;
  font-weight: 800;
  color: #004439;
  letter-spacing: -0.01em;
  line-height: 1;
}
.about-spread__stat--light strong { color: #D5D52C; }
.about-spread__stat span {
  font-size: 13px;
  font-weight: 600;
  color: #6b7280;
}
.about-spread__stat--light span { color: rgba(255, 255, 255, 0.85); }


/* About team — featured founder + cohort */
.about-team__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 40px;
}
.about-team__featured {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  background: #ffffff;
  border: 1px solid #EAEAEC;
  border-radius: 22px;
  overflow: hidden;
}
@media (min-width: 992px) {
  .about-team__featured { grid-template-columns: 1fr 1.4fr; }
}
.about-team__featured-media {
  position: relative;
  min-height: 320px;
  background: #0f1822;
}
.about-team__featured-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.about-team__featured-placeholder { position: absolute; inset: 0; }
.about-team__featured-placeholder svg { width: 100%; height: 100%; display: block; }
.about-team__featured-initial {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: clamp(56px, 6vw, 96px);
  font-weight: 800;
  color: rgba(255, 255, 255, 0.95);
  letter-spacing: -0.04em;
}
.about-team__featured-body {
  padding: 40px 36px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.about-team__role-tag {
  display: inline-block;
  align-self: flex-start;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #004439;
  background: rgba(213, 213, 44, 0.25);
  padding: 5px 14px;
  border-radius: 999px;
  margin-bottom: 14px;
}
.about-team__featured-name {
  font-size: clamp(26px, 2.6vw, 36px);
  font-weight: 800;
  color: #0f1822;
  letter-spacing: -0.02em;
  margin: 0 0 14px;
  line-height: 1.1;
}
.about-team__featured-bio {
  font-size: 15px;
  line-height: 1.7;
  color: #4b5563;
  margin: 0 0 24px;
}
.about-team__featured-meta {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  padding-top: 22px;
  border-top: 1px dashed #EAEAEC;
}
.about-team__featured-meta strong {
  display: block;
  font-size: 22px;
  font-weight: 800;
  color: #004439;
  letter-spacing: -0.01em;
  line-height: 1;
}
.about-team__featured-meta span {
  display: block;
  margin-top: 6px;
  font-size: 12px;
  font-weight: 600;
  color: #6b7280;
  letter-spacing: 0.02em;
}


/* Impact band above testimonials */
.about-impact__band {
  display: grid;
  gap: 0;
  grid-template-columns: repeat(2, 1fr);
  background: linear-gradient(135deg, #004439 0%, #0a6b58 100%);
  border-radius: 22px;
  padding: 36px 24px;
  color: #ffffff;
}
@media (min-width: 768px) {
  .about-impact__band { grid-template-columns: repeat(4, 1fr); padding: 40px 32px; }
}
.about-impact__band-item {
  position: relative;
  text-align: center;
  padding: 8px 16px;
}
.about-impact__band-item + .about-impact__band-item::before {
  content: "";
  position: absolute;
  left: 0; top: 20%; bottom: 20%;
  width: 1px;
  background: rgba(255,255,255,0.18);
}
@media (max-width: 767.98px) {
  .about-impact__band-item:nth-child(odd)::before { display: none; }
  .about-impact__band-item:nth-child(3)::before { display: none; }
}
.about-impact__band-item strong {
  display: block;
  font-size: clamp(28px, 3vw, 40px);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #D5D52C;
  line-height: 1;
}
.about-impact__band-item span {
  display: block;
  margin-top: 8px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.04em;
  opacity: 0.92;
}


/* About partners — deliberate panel + grid */
.about-partners__panel {
  display: grid;
  gap: 32px;
  grid-template-columns: 1fr;
  background: #fafbfa;
  border: 1px solid #EAEAEC;
  border-radius: 22px;
  padding: 40px;
}
@media (min-width: 992px) {
  .about-partners__panel { grid-template-columns: 1fr 1.6fr; gap: 48px; align-items: center; }
}
.about-partners__intro h2 { line-height: 1.15; }
.about-partners__logos {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(2, 1fr);
}
@media (min-width: 576px) { .about-partners__logos { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 992px) { .about-partners__logos { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1200px) { .about-partners__logos { grid-template-columns: repeat(4, 1fr); } }
.about-partners__logo {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px 14px;
  background: #ffffff;
  border: 1px solid #EAEAEC;
  border-radius: 12px;
  min-height: 80px;
  transition: border-color 0.25s ease, transform 0.25s ease;
}
.about-partners__logo:hover {
  border-color: #004439;
  transform: translateY(-2px);
}
.about-partners__logo a {
  display: flex; align-items: center; justify-content: center;
  width: 100%; height: 100%; text-decoration: none;
}
.about-partners__logo img {
  max-width: 100%;
  max-height: 44px;
  object-fit: contain;
  filter: grayscale(0.4);
  opacity: 0.85;
  transition: filter 0.25s ease, opacity 0.25s ease;
}
.about-partners__logo:hover img { filter: grayscale(0); opacity: 1; }
.about-partners__logo-name {
  font-size: 13px;
  font-weight: 700;
  color: #4b5563;
  text-align: center;
  letter-spacing: -0.005em;
}


/* About FAQ — two-column intro + accordion */
.about-faqs__intro { position: sticky; top: 24px; align-self: start; }
@media (max-width: 991.98px) {
  .about-faqs__intro { position: static; }
}

/* The original theme styles .faq-block .accordion-button only inside the
   courses_detail tab pane. Replicate the look here so the About FAQ
   actually renders as an accordion instead of an unstyled link. */
.about-faqs .faq-block {
  background: #ffffff;
  border: 1px solid #EAEAEC;
  border-radius: 12px;
  overflow: hidden;
  transition: border-color 0.2s ease;
}
.about-faqs .faq-block:hover { border-color: #004439; }
.about-faqs .faq-block .accordion-button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
  width: 100%;
  margin: 0;
  padding: 18px 24px 18px 56px;
  color: #0f1822;
  background: #ffffff;
  text-decoration: none;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.5;
  border-radius: 0;
  transition: color 0.2s ease, background 0.2s ease;
}
.about-faqs .faq-block .accordion-button:hover {
  background: #fafbfa;
  color: #004439;
}
.about-faqs .faq-block .accordion-button::before {
  content: "";
  position: absolute;
  left: 22px;
  top: 50%;
  width: 12px;
  height: 12px;
  border-right: 2px solid #004439;
  border-bottom: 2px solid #004439;
  transform: translateY(-75%) rotate(225deg);
  transition: transform 0.25s ease, border-color 0.2s ease;
}
.about-faqs .faq-block .accordion-button.collapsed::before {
  transform: translateY(-50%) rotate(45deg);
  border-color: #6b7280;
}
.about-faqs .faq-block .accordion-button:focus {
  outline: none;
  box-shadow: none;
}
.about-faqs .faq-block .accordion-button p { margin: 0; }
.about-faqs .faq-block .accordion-collapse > .p-24 {
  font-size: 14px;
  line-height: 1.7;
  color: #4b5563;
  background: #fafbfa;
  border-top: 1px solid #EAEAEC;
}
.about-faqs .faq-block .accordion-collapse > .p-24 p:last-child {
  margin-bottom: 0;
}


/* -------------------------------------------------------------------------
   10. Sticky header — green at top, white once scrolled
   File: templates/header.html
   JS:   static/assets/js/app.js (toggles .is-scrolled on .header)
   ------------------------------------------------------------------------- */

.header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  padding: 12px 0;
  background: #004439;
  transition: background 0.3s ease, box-shadow 0.3s ease, padding 0.3s ease;
}
.header.is-scrolled {
  padding: 8px 0;
  background: #ffffff;
  box-shadow: 0 2px 16px -8px rgba(15, 24, 34, 0.18);
}

/* Two stacked logos in the same slot — one shows at top (light), the other once scrolled (dark). */
.header-logo-link {
  position: relative;
  display: inline-block;
  width: 180px;
  height: 65px;
  flex-shrink: 0;
}
.header-logo-link .header-logo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: left center;
  transition: opacity 0.25s ease;
}
/* Note: in the current HTML the `--light` class element holds the dark/color logo
   and the `--dark` class element holds the white/light logo. These rules pick the
   correct image for each state regardless of class naming. */
.header-logo-link .header-logo--light { opacity: 0; }
.header.is-scrolled .header-logo-link .header-logo--dark { opacity: 0; }
.header.is-scrolled .header-logo-link .header-logo--light { opacity: 1; }
@media (max-width: 1024px) {
  .header-logo-link { width: 160px; height: 58px; }
}
@media (max-width: 580px) {
  .header-logo-link { width: 130px; height: 47px; }
}

/* Nav text — white at top (green header), dark once scrolled (white header) */
.header .navigation .menu-button-right .main-menu__nav .main-menu__list > li > a,
.header .navigation .menu-button-right .main-menu__nav .stricky-header .main-menu__list > li > a {
  color: #ffffff;
  transition: color 0.25s ease;
}
.header .main-menu__right .search-heart-icon a.white { color: #ffffff; }

.header.is-scrolled .navigation .menu-button-right .main-menu__nav .main-menu__list > li > a,
.header.is-scrolled .navigation .menu-button-right .main-menu__nav .stricky-header .main-menu__list > li > a {
  color: #0f1822;
}
.header.is-scrolled .main-menu__right .search-heart-icon a.white { color: #0f1822; }

/* No top padding on the scroll container — the original theme's hero/page sections
   already account for the header overlapping them (the original used position:absolute).
   Keeping this clean lets the hero extend up behind the fixed header without a gap. */

/* Kill any horizontal overflow that could let the page scroll left/right,
   and reset default browser margins so the header sits flush to the viewport edges.
   #scroll-container also needs the clip — overflow-x:hidden on body alone doesn't
   contain content inside smooth-scrollbar's transformed .scroll-content wrapper. */
html, body { margin: 0; padding: 0; overflow-x: hidden; }
#scroll-container { overflow-x: hidden; }

/* Hero on the home page uses vw-based widths and absolute-positioned floating cards
   that can spill past the viewport on certain breakpoints. Clip them at the section. */
.hero-banner { overflow-x: clip; }
