/* =============================================================
   TARA INDIA — gb-customs.css
   Master design system + page-specific overrides.
   Version 2.0 — derived from graphic charter May 2021

   STRUCTURE:
   PART A — Gutenberg block base styles (generic)
   PART B — TARA Design System (ti- classes, sections 1–29)
   PART C — Page-specific overrides (blog, team, partners, Undefeated)

   INSTALL: wp-content/themes/taraindia/css/gb-customs.css
   ============================================================= */


/* ============================================================
   PART A — GUTENBERG BLOCK BASE STYLES
   Generic improvements to WordPress block output.
   Scoped carefully so they don't conflict with ti- classes.
   ============================================================ */

/* ── A1. Heading utilities ──────────────────────────────────── */
.wp-block-heading-02 { margin-bottom: 1rem;  font-weight: 500; }
.wp-block-heading-03 { margin-bottom: .8rem; font-weight: 500; }


/* ── A2. Lists ──────────────────────────────────────────────── */
.wp-block-list {
  padding: .7rem 1rem;
}
.wp-block-list > li {
  list-style: disc;
  margin: .8rem 1.2rem;
}

/* Accent list style (left-bordered rows) */
.wp-block-list.is-style-accent {
  margin: 0;
  padding: 0;
}
.wp-block-list.is-style-accent > li {
  margin: .8rem 0;
  padding: .7rem 1rem;
  list-style-type: none;
  border-left: 5px solid var(--accent-color-light1, #1B6FBF);
  border-radius: 5px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.16);
}


/* ── A3. Images ─────────────────────────────────────────────── */
.wp-block-image img {
  border-radius: 5px;
}


/* ── A4. Media-text block ───────────────────────────────────── */
.wp-block-media-text {
  gap: 1.5rem;
}
.wp-block-media-text .wp-block-media-text__content {
  padding: 0 !important;
}
.wp-block-media-text .wp-block-media-text__media img {
  border-radius: 5px;
}


/* ── A5. Embeds & video ─────────────────────────────────────── */
.wp-block-embed iframe { border-radius: 5px; }
.wp-block-video > video { border-radius: 5px; }


/* ── A6. Buttons ────────────────────────────────────────────── */
.wp-block-buttons {
  padding: 5px;
}
.wp-block-buttons > .wp-block-button.wp-block-button__width-25 {
  width: auto;
}
.wp-block-button__link {
  display: inline-flex;
  padding: 5px 10px;
  border-radius: 5px;
  text-decoration: none;
  font-weight: 500;
  border: 2px solid transparent;
  background: var(--accent-color);
  color: var(--neutral-white);
  transition: filter .2s ease, transform .2s ease;
}
.wp-block-buttons .wp-block-button__link {
  font-size: .8rem;
}
:root :where(.wp-block-button__link) {
  padding: 10px !important;
}
.wp-block-button__link:hover {
  filter: brightness(0.90);
  transform: scale(1.02);
}

/* Outline variants */
.is-style-outline a         { color: var(--accent-color); }
.is-outline-dark-pink a     { color: var(--accent-color-dark3, #BF2470); }
.is-outline-dark-blue a     { color: var(--accent-color-dark1, #145899); }


/* ── A7. Typography utility ─────────────────────────────────── */
.has-medium-font-size { font-size: 20px; line-height: 1.6; }
.wp-block-list li     { margin-bottom: 8px; padding-left: 4px; }


/* ============================================================
   PART B — TARA DESIGN SYSTEM (ti- classes)
   All classes prefixed .ti- to avoid conflicts.
   ============================================================ */


/* ── B1. DESIGN TOKENS ──────────────────────────────────────── */
:root {
  /* Logo colors — buttons, icons, borders, accents ONLY */
  --ti-blue:   #1B6FBF;
  --ti-teal:   #04A1B2;
  --ti-pink:   #E83A8D;
  --ti-orange: #EC672E;
  --ti-yellow: #FEDC3A;

  /* 50 stops — ONLY valid background fills for cards/bands/boxes */
  /* ⚠ NEVER use 600 or 800 stops as backgrounds */
  --ti-blue-50:   #E3F0FB;
  --ti-teal-50:   #E0F5F7;
  --ti-pink-50:   #FDE8F3;
  --ti-orange-50: #FEF0E8;
  --ti-yellow-50: #FFF9D6;

  /* 800 stops — body text on colored backgrounds */
  --ti-blue-800:   #0D3D7A;
  --ti-teal-800:   #075A64;
  --ti-pink-800:   #7A1248;
  --ti-orange-800: #7A2E08;
  --ti-yellow-800: #6B4700;

  /* 600 stops — borders, tags, left-bar accents */
  --ti-blue-600:   #145899;
  --ti-teal-600:   #097888;
  --ti-pink-600:   #BF2470;
  --ti-orange-600: #B84918;
  --ti-yellow-600: #B07A00;

  /* Navy — dark panel backgrounds (stats band only) */
  --ti-navy: #0D3D7A;

  --ti-font: 'Futura', 'Century Gothic', 'Trebuchet MS', sans-serif;
  --ti-radius:    10px;
  --ti-radius-lg: 14px;
}


/* ── B2. BASE TYPOGRAPHY ────────────────────────────────────── */

/* NOTE: .semingrah font is intentionally NOT overridden here.
   The theme's original Semringah loads on all pages/templates.
   Only single.css overrides .single .page-heading to Poiret One. */

.ti-page {
  font-family: var(--ti-font);
  color: #2a2a2a;
  line-height: 1.7;
  max-width: 860px;
  margin: 0 auto;
}
.ti-page *, .ti-page *::before, .ti-page *::after { box-sizing: border-box; }

.ti-page h2 { font-size: 24px; font-weight: 700; color: var(--ti-blue); margin: 0 0 12px; line-height: 1.25; }
.ti-page h3 { font-size: 18px; font-weight: 700; margin: 0 0 8px; line-height: 1.3; }
.ti-page h4 { font-size: 13px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; margin: 16px 0 4px; }
.ti-page p  { font-size: 15px; margin: 0 0 14px; color: #3a3a3a; }
.ti-page p:last-child { margin-bottom: 0; }
.ti-page strong { font-weight: 700; }
.ti-page em     { font-style: italic; }

/* Cover content text override — .ti-page p sets dark color globally */
.ti-page .ti-cover__content p,
.ti-page .ti-cover__content h2,
.ti-page .ti-cover__content h3 { color: #fff; }


/* ── B3. LAYOUT HELPERS ─────────────────────────────────────── */
.ti-sec    { margin-top: 48px; }
.ti-sec-sm { margin-top: 28px; }
.ti-centered { text-align: center; }
.ti-centered h2, .ti-centered p { text-align: center; }


/* ── B4. SECTION HEADING (left accent bar) ──────────────────── */
.ti-sh {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 20px;
}
.ti-sh::before {
  content: '';
  display: block;
  width: 4px;
  height: 32px;
  border-radius: 2px;
  flex-shrink: 0;
}
.ti-sh h2 { margin: 0; }

.ti-sh--center          { justify-content: center; margin-bottom: 12px; }
.ti-sh--center::before  { display: none; }

.ti-sh--blue::before   { background: var(--ti-blue); }
.ti-sh--teal::before   { background: var(--ti-teal); }
.ti-sh--pink::before   { background: var(--ti-pink); }
.ti-sh--orange::before { background: var(--ti-orange); }
.ti-sh--yellow::before { background: var(--ti-yellow); }


/* ── B5. SECTION LABEL (eyebrow) ────────────────────────────── */
.ti-label {
  display: inline-block;
  font-family: var(--ti-font);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #888;
  margin-bottom: 10px;
}
.ti-label--light { color: rgba(255,255,255,0.65); }
.ti-label--blue  { color: var(--ti-blue); }
.ti-label--teal  { color: var(--ti-teal-600); }


/* ── B6. INTRO / INFO BOX ───────────────────────────────────── */
.ti-intro-box {
  background: var(--ti-blue-50);
  border-left: 4px solid var(--ti-blue);
  border-radius: 0 var(--ti-radius) var(--ti-radius) 0;
  padding: 20px 24px;
  margin-bottom: 32px;
}
.ti-intro-box p { color: var(--ti-blue-800); margin: 0; }
.ti-intro-box p + p { margin-top: 10px; }

.ti-intro-box--teal   { background: var(--ti-teal-50);   border-color: var(--ti-teal); }
.ti-intro-box--teal p { color: var(--ti-teal-800); }
.ti-intro-box--pink   { background: var(--ti-pink-50);   border-color: var(--ti-pink); }
.ti-intro-box--pink p { color: var(--ti-pink-800); }
.ti-intro-box--orange   { background: var(--ti-orange-50); border-color: var(--ti-orange); }
.ti-intro-box--orange p { color: var(--ti-orange-800); }
.ti-intro-box--yellow   { background: var(--ti-yellow-50); border-color: var(--ti-yellow); }
.ti-intro-box--yellow p { color: var(--ti-yellow-800); }


/* ── B7. DARK BAND (navy — stats and special sections only) ─── */
/* ⚠ ONLY use for stats bands. Never as a general page background */
.ti-dark-band {
  background: var(--ti-navy);
  border-radius: var(--ti-radius-lg);
  padding: 36px 32px;
  margin-top: 12px;
}
.ti-dark-band h2 { color: var(--ti-blue-50); }
.ti-dark-band p  { color: rgba(227,240,251,0.85); }

.ti-dark-band--full {
  border-radius: 0;
  margin-left: calc(-1 * var(--wp--style--root--padding-left, 24px));
  margin-right: calc(-1 * var(--wp--style--root--padding-right, 24px));
  padding-left: 32px;
  padding-right: 32px;
}


/* ── B8. TINTED BAND (50-stop section backgrounds) ──────────── */
.ti-band { border-radius: var(--ti-radius-lg); padding: 36px 32px; }

.ti-band--blue   { background: var(--ti-blue-50); }
.ti-band--teal   { background: var(--ti-teal-50); }
.ti-band--pink   { background: var(--ti-pink-50); }
.ti-band--orange { background: var(--ti-orange-50); }
.ti-band--yellow { background: var(--ti-yellow-50); }

.ti-band--blue   h2 { color: var(--ti-blue-800); }
.ti-band--teal   h2 { color: var(--ti-teal-800); }
.ti-band--pink   h2 { color: var(--ti-pink-800); }
.ti-band--orange h2 { color: var(--ti-orange-800); }
.ti-band--yellow h2 { color: var(--ti-yellow-800); }

.ti-band--blue   p { color: var(--ti-blue-800);   opacity: .9; }
.ti-band--teal   p { color: var(--ti-teal-800);   opacity: .9; }
.ti-band--pink   p { color: var(--ti-pink-800);   opacity: .9; }
.ti-band--orange p { color: var(--ti-orange-800); opacity: .9; }
.ti-band--yellow p { color: var(--ti-yellow-800); opacity: .9; }


/* ── B9. RAINBOW CTA BAND ───────────────────────────────────── */
.ti-cta-band {
  border-radius: var(--ti-radius-lg);
  padding: 20px;
  margin-top: 48px;
  background: linear-gradient(135deg,
    var(--ti-pink-50)   0%,  var(--ti-pink-50)   20%,
    var(--ti-blue-50)   20%, var(--ti-blue-50)   40%,
    var(--ti-yellow-50) 40%, var(--ti-yellow-50) 60%,
    var(--ti-orange-50) 60%, var(--ti-orange-50) 80%,
    var(--ti-teal-50)   80%, var(--ti-teal-50)   100%
  );
}
.ti-cta-band__inner {
  background: rgba(255,255,255,0.84);
  border-radius: var(--ti-radius);
  padding: 28px 24px;
  display: flex;
  gap: 32px;
  align-items: center;
  flex-wrap: wrap;
}
.ti-cta-band__text            { flex: 1; min-width: 220px; }
.ti-cta-band__text h2         { color: #1a1a1a; margin-bottom: 10px; }
.ti-cta-band__text p          { color: #444; margin: 0; }
.ti-cta-band__buttons         { display: flex; flex-direction: column; gap: 10px; flex-shrink: 0; }


/* ── B10. BUTTONS ───────────────────────────────────────────── */
.ti-btn {
  display: inline-block;
  font-family: var(--ti-font);
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  padding: 12px 28px;
  border-radius: 6px;
  text-align: center;
  transition: opacity .2s ease;
  cursor: pointer;
  border: none;
  white-space: nowrap;
}
.ti-btn:hover { opacity: .85; }

.ti-btn--blue   { background: var(--ti-blue);   color: #fff !important; }
.ti-btn--teal   { background: var(--ti-teal);   color: #fff !important; }
.ti-btn--pink   { background: var(--ti-pink);   color: #fff !important; }
.ti-btn--orange { background: var(--ti-orange); color: #fff !important; }
.ti-btn--yellow { background: var(--ti-yellow); color: #3a2000 !important; }

.ti-btn--outline-blue   { background: transparent; color: var(--ti-blue) !important;   border: 2px solid var(--ti-blue); }
.ti-btn--outline-teal   { background: transparent; color: var(--ti-teal) !important;   border: 2px solid var(--ti-teal); }
.ti-btn--outline-pink   { background: transparent; color: var(--ti-pink) !important;   border: 2px solid var(--ti-pink); }
.ti-btn--outline-orange { background: transparent; color: var(--ti-orange) !important; border: 2px solid var(--ti-orange); }

.ti-btn--outline-blue:hover   { background: var(--ti-blue-50); }
.ti-btn--outline-teal:hover   { background: var(--ti-teal-50); }
.ti-btn--outline-pink:hover   { background: var(--ti-pink-50); }
.ti-btn--outline-orange:hover { background: var(--ti-orange-50); }

.ti-btn-row         { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.ti-btn-row--center { justify-content: center; }


/* ── B11. CONTENT CARDS ─────────────────────────────────────── */
.ti-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 14px;
}
.ti-card {
  background: #fff;
  border-radius: var(--ti-radius);
  padding: 20px 18px;
  border-top: 5px solid transparent;
}
.ti-card h3 { font-size: 15px; color: #1a1a1a; margin-bottom: 8px; }
.ti-card p  { font-size: 13px; color: #555; line-height: 1.6; margin: 0; }

.ti-card--blue   { border-color: var(--ti-blue); }
.ti-card--teal   { border-color: var(--ti-teal); }
.ti-card--pink   { border-color: var(--ti-pink); }
.ti-card--orange { border-color: var(--ti-orange); }
.ti-card--yellow { border-color: var(--ti-yellow); }

.ti-card--left {
  border-top: none;
  border-left: 4px solid transparent;
  border-radius: 0 var(--ti-radius) var(--ti-radius) 0;
  padding: 16px 20px;
}
.ti-card--left.ti-card--blue   { border-color: var(--ti-blue);   background: var(--ti-blue-50); }
.ti-card--left.ti-card--teal   { border-color: var(--ti-teal);   background: var(--ti-teal-50); }
.ti-card--left.ti-card--pink   { border-color: var(--ti-pink);   background: var(--ti-pink-50); }
.ti-card--left.ti-card--orange { border-color: var(--ti-orange); background: var(--ti-orange-50); }
.ti-card--left.ti-card--yellow { border-color: var(--ti-yellow); background: var(--ti-yellow-50); }


/* ── B12. FINDINGS LIST ─────────────────────────────────────── */
/* ⚠ Never nest inside .ti-cover-split__text — double-dot bug */
.ti-findings {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.ti-findings li {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  font-family: var(--ti-font);
  font-size: 15px;
  font-weight: 500;
  padding: 14px 18px;
  border-radius: var(--ti-radius);
}
.ti-findings li:nth-child(5n+1) { background: var(--ti-blue-50);   color: var(--ti-blue-800); }
.ti-findings li:nth-child(5n+2) { background: var(--ti-teal-50);   color: var(--ti-teal-800); }
.ti-findings li:nth-child(5n+3) { background: var(--ti-pink-50);   color: var(--ti-pink-800); }
.ti-findings li:nth-child(5n+4) { background: var(--ti-orange-50); color: var(--ti-orange-800); }
.ti-findings li:nth-child(5n+5) { background: var(--ti-yellow-50); color: var(--ti-yellow-800); }

/* ⚠ Never add inline style to .ti-findings__dot — nth-child handles colors */
.ti-findings__dot { width: 12px; height: 12px; border-radius: 50%; flex-shrink: 0; margin-top: 5px; }
.ti-findings li:nth-child(5n+1) .ti-findings__dot { background: var(--ti-blue); }
.ti-findings li:nth-child(5n+2) .ti-findings__dot { background: var(--ti-teal); }
.ti-findings li:nth-child(5n+3) .ti-findings__dot { background: var(--ti-pink); }
.ti-findings li:nth-child(5n+4) .ti-findings__dot { background: var(--ti-orange); }
.ti-findings li:nth-child(5n+5) .ti-findings__dot { background: var(--ti-yellow); }


/* ── B13. TAGS / BADGES ─────────────────────────────────────── */
.ti-tag {
  display: inline-block;
  font-family: var(--ti-font);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  border-radius: 99px;
  padding: 3px 10px;
  white-space: nowrap;
}
.ti-tag--blue   { background: var(--ti-blue);   color: #fff; }
.ti-tag--teal   { background: var(--ti-teal);   color: #fff; }
.ti-tag--pink   { background: var(--ti-pink);   color: #fff; }
.ti-tag--orange { background: var(--ti-orange); color: #fff; }
.ti-tag--yellow { background: var(--ti-yellow); color: #3a2000; }

.ti-tag--soft-blue   { background: var(--ti-blue-50);   color: var(--ti-blue-800); }
.ti-tag--soft-teal   { background: var(--ti-teal-50);   color: var(--ti-teal-800); }
.ti-tag--soft-pink   { background: var(--ti-pink-50);   color: var(--ti-pink-800); }
.ti-tag--soft-orange { background: var(--ti-orange-50); color: var(--ti-orange-800); }
.ti-tag--soft-yellow { background: var(--ti-yellow-50); color: var(--ti-yellow-800); }


/* ── B14. ACCORDION ─────────────────────────────────────────── */
.ti-accordion { border: 1px solid #e0e0e0; border-radius: 12px; overflow: hidden; }
.ti-accordion__item { border-bottom: 1px solid #e8e8e8; }
.ti-accordion__item:last-child { border-bottom: none; }

.ti-accordion__trigger {
  width: 100%;
  background: #fafafa;
  border: none;
  padding: 16px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  cursor: pointer;
  text-align: left;
  font-family: var(--ti-font);
  font-size: 14px;
  font-weight: 700;
  color: #1a1a1a;
  transition: background .15s ease;
}
.ti-accordion__trigger:hover,
.ti-accordion__trigger[aria-expanded="true"] { background: #f0f0ee; }

.ti-accordion__chevron { font-size: 11px; color: #aaa; transition: transform .25s ease; flex-shrink: 0; }
.ti-accordion__trigger[aria-expanded="true"] .ti-accordion__chevron { transform: rotate(180deg); }

.ti-accordion__body {
  display: none;
  padding: 20px 20px 24px;
  font-family: var(--ti-font);
  font-size: 14px;
  color: #3a3a3a;
  line-height: 1.75;
}
.ti-accordion__body.open { display: flex; gap: 24px; align-items: flex-start; flex-wrap: wrap; }

.ti-accordion__photo { width: 110px; height: 110px; border-radius: var(--ti-radius); object-fit: cover; flex-shrink: 0; }
.ti-accordion__content { flex: 1; min-width: 200px; }
.ti-accordion__body h4 { color: var(--ti-blue); font-size: 11px; letter-spacing: .07em; text-transform: uppercase; margin: 14px 0 3px; }


/* ── B15. MEDIA / VIDEO GRID ────────────────────────────────── */
.ti-media-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 20px; }

.ti-media-card {
  background: #fff;
  border-radius: var(--ti-radius);
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(0,0,0,0.08);
  transition: transform .2s ease, box-shadow .2s ease;
  border-top: 4px solid transparent;
}
.ti-media-card:hover { transform: translateY(-4px); box-shadow: 0 10px 28px rgba(0,0,0,0.12); }
.ti-media-card:nth-child(3n+1) { border-color: var(--ti-blue); }
.ti-media-card:nth-child(3n+2) { border-color: var(--ti-pink); }
.ti-media-card:nth-child(3n+3) { border-color: var(--ti-teal); }

.ti-media-card__embed { display: block; }
.ti-media-card__embed iframe { display: block; width: 100%; border-radius: 0; }

.ti-media-card__body { padding: 16px 18px 20px; }
.ti-media-card__body h3 { font-family: var(--ti-font); font-size: 16px; font-weight: 700; margin: 0 0 8px; color: #1a1a1a; }
.ti-media-card__body p  { font-size: 13px; color: #555; line-height: 1.6; margin: 0; }


/* ── B16. TIMELINE ──────────────────────────────────────────── */
.ti-timeline { display: flex; flex-direction: column; gap: 0; position: relative; padding-left: 36px; }
.ti-timeline::before { content: ''; position: absolute; left: 10px; top: 10px; bottom: 10px; width: 2px; background: #e0e0e0; }

.ti-timeline__item { position: relative; padding: 0 0 28px 24px; }
.ti-timeline__item:last-child { padding-bottom: 0; }

.ti-timeline__dot { position: absolute; left: -36px; top: 4px; width: 20px; height: 20px; border-radius: 50%; border: 3px solid #fff; box-shadow: 0 0 0 2px currentColor; }
.ti-timeline__item:nth-child(5n+1) .ti-timeline__dot { background: var(--ti-blue);   color: var(--ti-blue); }
.ti-timeline__item:nth-child(5n+2) .ti-timeline__dot { background: var(--ti-teal);   color: var(--ti-teal); }
.ti-timeline__item:nth-child(5n+3) .ti-timeline__dot { background: var(--ti-pink);   color: var(--ti-pink); }
.ti-timeline__item:nth-child(5n+4) .ti-timeline__dot { background: var(--ti-orange); color: var(--ti-orange); }
.ti-timeline__item:nth-child(5n+5) .ti-timeline__dot { background: var(--ti-yellow); color: var(--ti-yellow); }

.ti-timeline__title { font-family: var(--ti-font); font-size: 16px; font-weight: 700; color: #1a1a1a; margin: 0 0 6px; }
.ti-timeline__body  { font-family: var(--ti-font); font-size: 14px; color: #555; line-height: 1.7; margin: 0; }


/* ── B17. FESTIVAL GRID ─────────────────────────────────────── */
.ti-festival-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; }

.ti-festival-card {
  background: #fff;
  border-radius: var(--ti-radius);
  padding: 18px 16px;
  text-align: center;
  border-top: 3px solid transparent;
  box-shadow: 0 2px 10px rgba(0,0,0,0.06);
}
.ti-festival-card:nth-child(5n+1) { border-color: var(--ti-blue); }
.ti-festival-card:nth-child(5n+2) { border-color: var(--ti-teal); }
.ti-festival-card:nth-child(5n+3) { border-color: var(--ti-pink); }
.ti-festival-card:nth-child(5n+4) { border-color: var(--ti-orange); }
.ti-festival-card:nth-child(5n+5) { border-color: var(--ti-yellow); }

.ti-festival-card__label   { font-family: var(--ti-font); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #999; margin-bottom: 8px; }
.ti-festival-card__name    { font-family: var(--ti-font); font-size: 13px; font-weight: 700; color: #1a1a1a; margin-bottom: 6px; line-height: 1.4; }
.ti-festival-card__country { font-size: 12px; color: #888; }


/* ── B18. AWARD CARDS ───────────────────────────────────────── */
.ti-award-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 20px; }

.ti-award-card {
  background: #fff;
  border-radius: var(--ti-radius);
  padding: 24px 20px;
  text-align: center;
  box-shadow: 0 4px 16px rgba(0,0,0,0.07);
  border-top: 5px solid transparent;
  transition: transform .2s ease, box-shadow .2s ease;
}
.ti-award-card:hover { transform: translateY(-4px); box-shadow: 0 12px 28px rgba(0,0,0,0.12); }
.ti-award-card:nth-child(2n+1) { border-color: var(--ti-pink); }
.ti-award-card:nth-child(2n+2) { border-color: var(--ti-orange); }

.ti-award-card__img      { width: 100%; max-width: 340px; border-radius: 8px; margin: 0 auto 16px; display: block; }
.ti-award-card__award    { font-family: var(--ti-font); font-size: 15px; font-weight: 700; color: #1a1a1a; margin-bottom: 6px; }
.ti-award-card__film     { font-family: var(--ti-font); font-size: 14px; font-weight: 700; color: var(--ti-pink); margin-bottom: 8px; }
.ti-award-card__festival { font-size: 13px; color: #777; line-height: 1.5; }


/* ── B19. QUOTE BLOCK ───────────────────────────────────────── */
.ti-quote {
  background: var(--ti-teal-50);
  border-left: 4px solid var(--ti-teal);
  border-radius: 0 var(--ti-radius) var(--ti-radius) 0;
  padding: 24px 28px;
  display: flex;
  align-items: center;
  gap: 28px;
  flex-wrap: wrap;
}
.ti-quote__text { flex: 1; min-width: 200px; font-family: var(--ti-font); font-size: 16px; font-style: italic; color: var(--ti-teal-800); line-height: 1.6; }
.ti-quote__text strong { font-style: normal; font-weight: 700; }
.ti-quote__text a      { color: var(--ti-teal-600); }
.ti-quote__logo        { max-width: 120px; max-height: 80px; object-fit: contain; flex-shrink: 0; }


/* ── B20. COLLABORATORS LIST ────────────────────────────────── */
.ti-collab { background: var(--ti-blue-50); border-radius: var(--ti-radius); padding: 24px 28px; }
.ti-collab h3 { font-family: var(--ti-font); color: var(--ti-blue-800); font-size: 16px; margin-bottom: 12px; }
.ti-collab ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.ti-collab li { font-family: var(--ti-font); font-size: 14px; color: var(--ti-blue-800); display: flex; align-items: center; gap: 10px; }
.ti-collab li::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--ti-blue); flex-shrink: 0; }


/* ── B22. STATS BAND — styles in style.css ──────────────────── */


/* ── B23. SPLIT LAYOUT ──────────────────────────────────────── */
.ti-split { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; padding: 40px 0; border-bottom: 1px solid #f0f0ee; }
.ti-split:last-child { border-bottom: none; }

.ti-split--reverse .ti-split__img  { order: 2; }
.ti-split--reverse .ti-split__text { order: 1; }

.ti-split__img     { border-radius: var(--ti-radius-lg); overflow: hidden; }
.ti-split__img img { width: 100%; height: 300px; object-fit: cover; display: block; border-radius: var(--ti-radius-lg); }

.ti-split__text h2 { font-family: var(--ti-font); font-size: 22px; font-weight: 700; margin: 0 0 14px; color: #1a1a1a; line-height: 1.3; }
.ti-split__text .ti-sh { margin-bottom: 16px; }
.ti-split__text p  { font-family: var(--ti-font); font-size: 15px; color: #3a3a3a; line-height: 1.75; margin: 0 0 12px; }
.ti-split__text p:last-child { margin-bottom: 0; }
.ti-split__text a  { color: var(--ti-blue); text-decoration: underline; }


/* ── B24. LEAD PARAGRAPH ────────────────────────────────────── */
.ti-lead {
  font-family: var(--ti-font);
  font-size: 18px;
  font-weight: 500;
  line-height: 1.7;
  color: var(--ti-blue-800);
  border-left: 4px solid var(--ti-blue);
  padding-left: 20px;
  margin-bottom: 32px;
}


/* ── B25. IMAGE COVER BLOCK ─────────────────────────────────── */
.ti-cover { position: relative; border-radius: var(--ti-radius-lg); overflow: hidden; min-height: 320px; display: flex; align-items: center; justify-content: center; }
.ti-cover__bg { position: absolute; inset: 0; background-size: cover; background-position: center; background-repeat: no-repeat; }
.ti-cover--parallax .ti-cover__bg { background-attachment: fixed; }

.ti-cover__overlay               { position: absolute; inset: 0; background: rgba(13,61,122,0.55); }
.ti-cover__overlay--light        { background: rgba(0,0,0,0.35); }
.ti-cover__overlay--orange       { background: rgba(120,46,8,0.55); }
.ti-cover__overlay--pink         { background: rgba(100,20,60,0.50); }
.ti-cover__overlay--teal         { background: rgba(6,79,88,0.55); }

.ti-cover__content { position: relative; z-index: 2; text-align: center; padding: 40px 32px; max-width: 600px; }
.ti-cover__content h2 { color: #fff; font-family: var(--ti-font); font-weight: 700; margin-bottom: 12px; line-height: 1.25; font-size: 26px; }
.ti-cover__content h3 { color: #fff; font-family: var(--ti-font); font-weight: 700; margin-bottom: 12px; line-height: 1.25; font-size: 20px; }
.ti-cover__content p  { color: rgba(255,255,255,0.9); font-family: var(--ti-font); font-size: 15px; line-height: 1.7; margin: 0 0 20px; }

.ti-cover__label { display: inline-block; font-family: var(--ti-font); font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,0.65); margin-bottom: 10px; }


/* ── B26. COVER-SPLIT ───────────────────────────────────────── */
/* ⚠ Text side MUST use 50-stop backgrounds — never dark blue */
.ti-cover-split { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border-radius: var(--ti-radius-lg); overflow: hidden; min-height: 360px; }

.ti-cover-split__text { padding: 36px 32px; display: flex; flex-direction: column; justify-content: center; }

.ti-cover-split__text--blue   { background: var(--ti-blue-50); }
.ti-cover-split__text--teal   { background: var(--ti-teal-50); }
.ti-cover-split__text--pink   { background: var(--ti-pink-50); }
.ti-cover-split__text--orange { background: var(--ti-orange-50); }
.ti-cover-split__text--yellow { background: var(--ti-yellow-50); }

/* Dark variant — only for specific high-contrast needs */
.ti-cover-split__text--dark            { background: var(--ti-navy); }
.ti-cover-split__text--dark h2,
.ti-cover-split__text--dark h3         { color: var(--ti-blue-50); }
.ti-cover-split__text--dark p,
.ti-cover-split__text--dark li         { color: rgba(227,240,251,0.85); }
.ti-cover-split__text--dark a          { color: var(--ti-yellow); }

.ti-cover-split__text h2 { font-family: var(--ti-font); font-size: 22px; font-weight: 700; margin-bottom: 12px; line-height: 1.3; }
.ti-cover-split__text p,
.ti-cover-split__text li { font-family: var(--ti-font); font-size: 14px; line-height: 1.7; margin-bottom: 10px; color: #3a3a3a; }

.ti-cover-split__text ul { list-style: none; padding: 0; margin: 0 0 16px; }
.ti-cover-split__text ul li { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 8px; }
.ti-cover-split__text ul li::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--ti-orange); flex-shrink: 0; margin-top: 6px; }

.ti-cover-split__text--dark   ul li::before { background: var(--ti-yellow); }
.ti-cover-split__text--blue   ul li::before { background: var(--ti-blue); }
.ti-cover-split__text--teal   ul li::before { background: var(--ti-teal); }
.ti-cover-split__text--pink   ul li::before { background: var(--ti-pink); }

.ti-cover-split__img         { position: relative; min-height: 280px; }
.ti-cover-split__img img     { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }


/* ── B27. NOTE / DISCLAIMER ─────────────────────────────────── */
.ti-note { font-family: var(--ti-font); font-size: 12px; color: #888; line-height: 1.6; padding: 10px 14px; background: #f7f7f5; border-radius: 6px; border-left: 3px solid #ddd; margin-top: 12px; }
.ti-note a { color: var(--ti-blue); }


/* ── B28. AUDIENCE GRID ─────────────────────────────────────── */
.ti-audience-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 12px; }
.ti-audience-card { border-radius: var(--ti-radius-lg); overflow: hidden; }

.ti-audience-card__cover { position: relative; height: 200px; background-size: cover; background-position: center; display: flex; align-items: flex-end; }
.ti-audience-card__cover-label { width: 100%; padding: 16px 20px 14px; background: linear-gradient(to top, rgba(0,0,0,0.65) 0%, transparent 100%); font-family: var(--ti-font); font-size: 13px; font-weight: 700; color: #fff; letter-spacing: .05em; text-transform: uppercase; }

.ti-audience-card__body { padding: 20px; }
.ti-audience-card:nth-child(1) .ti-audience-card__body { background: var(--ti-pink-50); }
.ti-audience-card:nth-child(2) .ti-audience-card__body { background: var(--ti-blue-50); }

.ti-audience-card__body h3 { font-family: var(--ti-font); font-size: 16px; font-weight: 700; margin-bottom: 10px; color: #1a1a1a; }
.ti-audience-card__body p,
.ti-audience-card__body li { font-family: var(--ti-font); font-size: 13px; color: #3a3a3a; line-height: 1.65; margin-bottom: 8px; }
.ti-audience-card__body ul { list-style: none; padding: 0; margin: 0 0 14px; }
.ti-audience-card__body ul li { display: flex; gap: 8px; align-items: flex-start; }
.ti-audience-card:nth-child(1) .ti-audience-card__body ul li::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--ti-pink); flex-shrink: 0; margin-top: 5px; }
.ti-audience-card:nth-child(2) .ti-audience-card__body ul li::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--ti-blue); flex-shrink: 0; margin-top: 5px; }


/* ── B29. PARALLAX COVER-SPLIT ──────────────────────────────── */
.ti-pcover { position: relative; overflow: hidden; min-height: 380px; }
.ti-pcover__bg { position: absolute; inset: -60px 0; background-size: cover; background-position: center; background-repeat: no-repeat; background-attachment: fixed; }

@media (hover: none) {
  .ti-pcover__bg { background-attachment: scroll; inset: 0; }
}

.ti-pcover__overlay               { position: absolute; inset: 0; background: rgba(0,0,0,0.38); }
.ti-pcover__overlay--pink         { background: rgba(100,20,60,0.48); }
.ti-pcover__overlay--teal         { background: rgba(4,90,100,0.48); }
.ti-pcover__overlay--orange       { background: rgba(100,40,8,0.48); }
.ti-pcover__overlay--blue         { background: rgba(12,40,80,0.48); }

.ti-pcover__content { position: relative; z-index: 2; padding: 40px 36px; height: 100%; display: flex; flex-direction: column; justify-content: center; }
.ti-pcover__content h2 { font-family: var(--ti-font); font-size: 24px; font-weight: 700; color: #fff; margin: 0 0 14px; line-height: 1.3; }
.ti-pcover__content p  { font-family: var(--ti-font); font-size: 14px; color: rgba(255,255,255,0.9); line-height: 1.75; margin: 0 0 10px; }
.ti-pcover__content ul { list-style: none; padding: 0; margin: 0 0 20px; }
.ti-pcover__content ul li { font-family: var(--ti-font); font-size: 14px; color: rgba(255,255,255,0.9); line-height: 1.7; display: flex; align-items: flex-start; gap: 10px; margin-bottom: 8px; }
.ti-pcover__content ul li::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--ti-yellow); flex-shrink: 0; margin-top: 6px; }
.ti-pcover__label { display: inline-block; font-family: var(--ti-font); font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,0.6); margin-bottom: 10px; }

.ti-benefits-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; margin-top: 16px; }
.ti-benefit { border-radius: var(--ti-radius); padding: 18px 20px; display: flex; align-items: flex-start; gap: 12px; }
.ti-benefit:nth-child(4n+1) { background: var(--ti-blue-50); }
.ti-benefit:nth-child(4n+2) { background: var(--ti-teal-50); }
.ti-benefit:nth-child(4n+3) { background: var(--ti-pink-50); }
.ti-benefit:nth-child(4n+4) { background: var(--ti-orange-50); }
.ti-benefit__dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; margin-top: 5px; }
.ti-benefit:nth-child(4n+1) .ti-benefit__dot { background: var(--ti-blue); }
.ti-benefit:nth-child(4n+2) .ti-benefit__dot { background: var(--ti-teal); }
.ti-benefit:nth-child(4n+3) .ti-benefit__dot { background: var(--ti-pink); }
.ti-benefit:nth-child(4n+4) .ti-benefit__dot { background: var(--ti-orange); }
.ti-benefit:nth-child(4n+1) p { color: var(--ti-blue-800); }
.ti-benefit:nth-child(4n+2) p { color: var(--ti-teal-800); }
.ti-benefit:nth-child(4n+3) p { color: var(--ti-pink-800); }
.ti-benefit:nth-child(4n+4) p { color: var(--ti-orange-800); }
.ti-benefit p { font-family: var(--ti-font); font-size: 14px; font-weight: 500; line-height: 1.5; margin: 0; }

.ti-req-list { list-style: none; padding: 0; margin: 12px 0 20px; display: flex; flex-direction: column; gap: 8px; }
.ti-req-list li { font-family: var(--ti-font); font-size: 14px; color: #3a3a3a; display: flex; align-items: center; gap: 10px; }
.ti-req-list li::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--ti-teal); flex-shrink: 0; }


/* ── B-RESPONSIVE. ALL RESPONSIVE OVERRIDES ─────────────────── */
@media (max-width: 600px) {
  .ti-dark-band, .ti-band    { padding: 24px 18px; }

  .ti-cta-band               { padding: 14px; }
  .ti-cta-band__inner        { flex-direction: column; padding: 18px; }
  .ti-cta-band__buttons      { flex-direction: row; flex-wrap: wrap; }

  .ti-accordion__body.open   { flex-direction: column; }
  .ti-accordion__photo       { width: 80px; height: 80px; }

  .ti-timeline               { padding-left: 28px; }
  .ti-timeline__dot          { left: -28px; width: 16px; height: 16px; }

  .ti-split                  { grid-template-columns: 1fr; gap: 20px; padding: 28px 0; }
  .ti-split--reverse .ti-split__img,
  .ti-split--reverse .ti-split__text { order: unset; }
  .ti-split__img img         { height: 220px; }

  .ti-stats-grid             { grid-template-columns: repeat(2, 1fr); }
  .ti-stat--hero .ti-stat__number { font-size: 28px; }

  .ti-cover                  { min-height: 260px; }
  .ti-cover-split            { grid-template-columns: 1fr; }
  .ti-cover-split__text      { padding: 24px 20px; }

  .ti-media-grid             { grid-template-columns: 1fr; }
  .ti-audience-grid          { grid-template-columns: 1fr; }
  .ti-quote                  { flex-direction: column; }

  .ti-pcover                 { min-height: 280px; }
  .ti-benefits-grid          { grid-template-columns: 1fr 1fr; }
}


/* ============================================================
   PART C — PAGE-SPECIFIC OVERRIDES
   Scoped tightly using body classes so nothing bleeds.
   ============================================================ */


/* ── C1. PARTNER LOGOS (logo.php template) ──────────────────── */
.partner-logos {
  background: var(--ti-blue-50);
  border-radius: var(--ti-radius-lg);
  padding: 36px 32px;
  margin-top: 32px;
}
.partner-logos__heading {
  font-family: 'Josefin Sans', var(--ti-font);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ti-blue-600);
  margin-bottom: 24px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.partner-logos__heading::after { content: ''; flex: 1; height: 1px; background: rgba(27,111,191,0.2); }

.partner-logos-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 16px;
  align-items: stretch;
}
.partner-logo-item {
  background: #fff;
  border-radius: var(--ti-radius);
  padding: 16px;
  height: 110px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
  border-top: 3px solid transparent;
  transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}
.partner-logo-item:hover { box-shadow: 0 6px 18px rgba(0,0,0,0.12); transform: translateY(-3px); }

.partner-logo-item:nth-child(5n+1):hover { border-top-color: var(--ti-blue); }
.partner-logo-item:nth-child(5n+2):hover { border-top-color: var(--ti-teal); }
.partner-logo-item:nth-child(5n+3):hover { border-top-color: var(--ti-pink); }
.partner-logo-item:nth-child(5n+4):hover { border-top-color: var(--ti-orange); }
.partner-logo-item:nth-child(5n+5):hover { border-top-color: var(--ti-yellow); }

.partner-logo-img { max-width: 100%; max-height: 70px; object-fit: contain; filter: grayscale(100%); opacity: 0.75; transition: filter .3s ease, opacity .3s ease, transform .3s ease; }
.partner-logo-item:hover .partner-logo-img { filter: grayscale(0%); opacity: 1; transform: scale(1.06); }


/* ============================================================
   PART D — DESIGN ENHANCEMENTS v2.1
   Warmth, energy and visual hierarchy for a children's NGO.
   Added May 2026.
   ============================================================ */


/* ── D1. IMPROVED BODY TYPOGRAPHY ───────────────────────────────
   Slightly larger base text (Zhovino's readability feedback).
   ─────────────────────────────────────────────────────────── */
.ti-page p  { font-size: 16px; }
.ti-page h2 { font-size: 26px; }
.ti-page h3 { font-size: 19px; }


/* ── D2. ENHANCED BUTTONS ───────────────────────────────────────
   More presence: larger, rounded, lift-on-hover.
   ─────────────────────────────────────────────────────────── */
.ti-btn {
  padding: 13px 32px;
  border-radius: 40px;        /* pill shape — friendlier for an NGO */
  font-size: 15px;
  letter-spacing: .02em;
  transition: transform .2s cubic-bezier(0.34,1.56,0.64,1),
              box-shadow .2s ease,
              opacity .2s ease;
  box-shadow: 0 2px 8px rgba(0,0,0,0.12);
}
.ti-btn:hover {
  opacity: 1;                 /* override default */
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(0,0,0,0.18);
}
.ti-btn--blue:hover   { box-shadow: 0 8px 20px rgba(27,111,191,0.35); }
.ti-btn--teal:hover   { box-shadow: 0 8px 20px rgba(4,161,178,0.35); }
.ti-btn--orange:hover { box-shadow: 0 8px 20px rgba(236,103,46,0.35); }
.ti-btn--pink:hover   { box-shadow: 0 8px 20px rgba(232,58,141,0.35); }


/* ── D3. CARD HOVER LIFT ────────────────────────────────────────
   Cards feel interactive and alive.
   ─────────────────────────────────────────────────────────── */
.ti-card {
  transition: transform .25s cubic-bezier(0.34,1.56,0.64,1),
              box-shadow .25s ease;
  box-shadow: 0 2px 10px rgba(0,0,0,0.06);
}
.ti-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 12px 28px rgba(0,0,0,0.12);
}


/* ── D4. IMPACT BADGE ───────────────────────────────────────────
   Playful circular badge for key numbers.
   Usage: <div class="ti-impact-badge ti-impact-badge--teal">
            <span class="ti-impact-badge__num">1 200</span>
            <span class="ti-impact-badge__label">children reached</span>
          </div>
   ─────────────────────────────────────────────────────────── */
.ti-impact-badge {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 130px;
  height: 130px;
  border-radius: 50%;
  text-align: center;
  padding: 14px;
  gap: 4px;
}
.ti-impact-badge__num {
  font-family: var(--ti-font);
  font-size: 28px;
  font-weight: 700;
  line-height: 1;
}
.ti-impact-badge__label {
  font-family: var(--ti-font);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
  line-height: 1.3;
  opacity: .85;
}
.ti-impact-badge--blue   { background: var(--ti-blue);   color: #fff; }
.ti-impact-badge--teal   { background: var(--ti-teal);   color: #fff; }
.ti-impact-badge--orange { background: var(--ti-orange); color: #fff; }
.ti-impact-badge--pink   { background: var(--ti-pink);   color: #fff; }
.ti-impact-badge--yellow { background: var(--ti-yellow); color: var(--ti-yellow-800); }

/* Soft (light bg) variants */
.ti-impact-badge--soft-blue   { background: var(--ti-blue-50);   color: var(--ti-blue-800);   border: 3px solid var(--ti-blue); }
.ti-impact-badge--soft-teal   { background: var(--ti-teal-50);   color: var(--ti-teal-800);   border: 3px solid var(--ti-teal); }
.ti-impact-badge--soft-orange { background: var(--ti-orange-50); color: var(--ti-orange-800); border: 3px solid var(--ti-orange); }
.ti-impact-badge--soft-pink   { background: var(--ti-pink-50);   color: var(--ti-pink-800);   border: 3px solid var(--ti-pink); }

/* Row layout for a set of badges */
.ti-impact-badges-row {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  align-items: center;
  justify-content: center;
  margin: 24px 0;
}


/* ── D5. WARM SECTION DIVIDER ───────────────────────────────────
   A colourful wavy-border replacement for <hr>.
   Usage: <div class="ti-divider"></div>
   ─────────────────────────────────────────────────────────── */
.ti-divider {
  height: 4px;
  border: none;
  border-radius: 99px;
  margin: 32px 0;
  background: linear-gradient(
    to right,
    var(--ti-pink)   0%,
    var(--ti-orange) 25%,
    var(--ti-yellow) 50%,
    var(--ti-teal)   75%,
    var(--ti-blue)   100%
  );
  opacity: .55;
}


/* ── D6. ENHANCED STATS (makes numbers pop) ─────────────────────
   Supplements existing .ti-stat rules.
   ─────────────────────────────────────────────────────────── */
.ti-stat {
  transition: transform .25s cubic-bezier(0.34,1.56,0.64,1);
}
.ti-stat:hover {
  transform: translateY(-4px) scale(1.02);
}
.ti-stat__number {
  font-size: 2.8rem;
  letter-spacing: -.02em;
}
.ti-stat--hero .ti-stat__number {
  font-size: 3.4rem;
}


/* ── D7. BAND BORDERS — adds subtle top accent line ─────────────
   Gives coloured sections a crisp visual anchor.
   ─────────────────────────────────────────────────────────── */
.ti-band--blue   { border-top: 3px solid var(--ti-blue); }
.ti-band--teal   { border-top: 3px solid var(--ti-teal); }
.ti-band--pink   { border-top: 3px solid var(--ti-pink); }
.ti-band--orange { border-top: 3px solid var(--ti-orange); }
.ti-band--yellow { border-top: 3px solid var(--ti-yellow); }


/* ── D8. PAGE HEADING UNDERLINE ─────────────────────────────────
   Adds a small brand-coloured underline to the page h1.
   ─────────────────────────────────────────────────────────── */
#the-page-heading .page-heading {
  display: inline-block;
  position: relative;
  padding-bottom: 10px;
  margin-bottom: 6px;
}
#the-page-heading .page-heading::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 56px;
  height: 4px;
  border-radius: 2px;
  background: linear-gradient(to right, var(--ti-teal), var(--ti-blue));
}


/* ── D9. INTRO BOX SHADOW ───────────────────────────────────────
   Lifts intro boxes slightly off the page.
   ─────────────────────────────────────────────────────────── */
.ti-intro-box {
  box-shadow: 0 4px 16px rgba(0,0,0,0.07);
}


/* ── D10. FINDINGS LIST HOVER ───────────────────────────────────
   Each finding item gets a gentle lift.
   ─────────────────────────────────────────────────────────── */
.ti-findings li {
  transition: transform .2s ease, box-shadow .2s ease;
}
.ti-findings li:hover {
  transform: translateX(4px);
  box-shadow: 2px 4px 12px rgba(0,0,0,0.08);
}


/* ── D-RESPONSIVE ───────────────────────────────────────────────*/
@media (max-width: 600px) {
  .ti-impact-badge      { width: 108px; height: 108px; }
  .ti-impact-badge__num { font-size: 22px; }
  .ti-impact-badges-row { gap: 14px; }
  .ti-stat__number      { font-size: 2.2rem; }
}


/* ============================================================
   PART E — JJS SPLIT LAYOUT + WARM / PLAYFUL ELEMENTS
   Childlike warmth for a children's NGO.
   Added May 2026.
   ============================================================ */


/* ── E1. JJS-ROW — Image + Text split ──────────────────────────
   Used on: help-differently, any page needing side-by-side.
   Usage:
     <div class="jjs-row">
       <div class="jjs-img"> <img .../> </div>
       <div class="jjs-text ti-band ti-band--orange"> ... </div>
     </div>
   ─────────────────────────────────────────────────────────── */
.jjs-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 320px;
  border-radius: var(--ti-radius-lg);
  overflow: hidden;
  margin-bottom: 32px;
}

.jjs-img {
  position: relative;
  min-height: 260px;
  overflow: hidden;
}

.jjs-img img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .5s ease;
}

.jjs-row:hover .jjs-img img {
  transform: scale(1.03);
}

.jjs-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 32px 28px;
  flex: 1;
}

/* Reverse: text left, image right */
.jjs-row--reverse .jjs-img { order: 2; }
.jjs-row--reverse .jjs-text { order: 1; }

@media (max-width: 700px) {
  .jjs-row                   { grid-template-columns: 1fr; min-height: 0; }
  .jjs-img                   { min-height: 220px; position: relative; }
  .jjs-row--reverse .jjs-img,
  .jjs-row--reverse .jjs-text { order: unset; }
}


/* ── E2. PINNED NOTE ────────────────────────────────────────────
   Childish "pinned to a board" cards — thumbtack at top centre,
   slight rotation, drop shadow. Caveat handwriting font.
   Much more recognisable than tape strips.
   Usage:
     <div class="ti-sticky ti-sticky--yellow">
       <span class="ti-sticky__title">Key point</span>
       <p>Text here...</p>
     </div>
   Variants: --yellow --pink --teal --blue --orange
   ─────────────────────────────────────────────────────────── */
.ti-sticky {
  position: relative;
  padding: 20px 20px 18px;   /* modest top — small pin doesn't need much room */
  border-radius: 4px;
  box-shadow:
    4px 8px 20px rgba(0, 0, 0, 0.16),
    0   2px  5px rgba(0, 0, 0, 0.08);
  font-family: 'Caveat', cursive;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.55;
  max-width: 300px;
  transition: transform .22s cubic-bezier(0.34,1.56,0.64,1),
              box-shadow .22s ease;
}

/* ── Small graphite thumbtack pin ───────────────────────────
   Just 10px — subtle, not decorative. Same neutral on every note.
   ─────────────────────────────────────────────────────────── */
.ti-sticky::before {
  content: '';
  position: absolute;
  top: -5px;
  left: 50%;
  transform: translateX(-50%);
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: radial-gradient(circle at 38% 35%, #8a8a8a 0%, #444 55%, #1a1a1a 100%);
  box-shadow: 0 2px 4px rgba(0,0,0,0.30);
  z-index: 2;
}

/* ── Tiny needle shadow ─────────────────────────────────────── */
.ti-sticky::after {
  content: '';
  position: absolute;
  top: 3px;
  left: 50%;
  transform: translateX(-50%);
  width: 2px;
  height: 8px;
  background: linear-gradient(to bottom, rgba(0,0,0,0.18), rgba(0,0,0,0.03));
  border-radius: 0 0 1px 1px;
  z-index: 1;
}

/* Alternate rotation — scattered, hand-pinned look */
.ti-sticky:nth-child(1) { transform: rotate(-2.5deg); }
.ti-sticky:nth-child(2) { transform: rotate(1.8deg); }
.ti-sticky:nth-child(3) { transform: rotate(-1.2deg); }
.ti-sticky:nth-child(4) { transform: rotate(2.4deg); }

.ti-sticky:hover {
  transform: rotate(0deg) scale(1.05) translateY(-4px);
  box-shadow: 6px 14px 30px rgba(0,0,0,0.20), 0 2px 6px rgba(0,0,0,0.08);
  z-index: 3;
}

/* ── Colour variants — pastel of TARA brand palette ─────────
   Pin (::before) uses a contrasting brand colour per card
   ─────────────────────────────────────────────────────────── */
/* ── Colour variants — existing brand 50-stop palette only ───
   Same light tints already used in ti-band, ti-card, ti-stat-card.
   No new colours introduced.
   ─────────────────────────────────────────────────────────── */
.ti-sticky--yellow  { background-color: var(--ti-yellow-50, #FFFBE6); color: #5C4000; }
.ti-sticky--pink    { background-color: var(--ti-pink-50,   #FDE8F3); color: #6B0D38; }
.ti-sticky--teal    { background-color: var(--ti-teal-50,   #E0F5F7); color: #064850; }
.ti-sticky--blue    { background-color: var(--ti-blue-50,   #E3F0FB); color: #0B2E62; }
.ti-sticky--orange  { background-color: var(--ti-orange-50, #FDF0E8); color: #5C1E00; }

.ti-sticky p        { margin: 0; font-size: inherit; color: inherit; line-height: inherit; }
.ti-sticky strong   { font-weight: 700; }

/* Sticky headline — small label above the note text */
.ti-sticky__title {
  display: block;
  font-family: 'Caveat', cursive;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  opacity: .65;
  margin: 0 0 6px;
}

/* Row of stickies — natural scatter layout */
.ti-sticky-row {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin: 24px 0;
  align-items: flex-start;
}

@media (max-width: 600px) {
  .ti-sticky              { max-width: 100%; font-size: 16px; }
  .ti-sticky:nth-child(n) { transform: rotate(0deg); }
}


/* ── E3. POLAROID FRAME ─────────────────────────────────────────
   Slightly rotated photo frames — childlike, warm.
   Usage:
     <figure class="ti-polaroid ti-polaroid--tilt-left">
       <img src="..." alt="...">
       <figcaption>Caption text here</figcaption>
     </figure>
   ─────────────────────────────────────────────────────────── */
.ti-polaroid {
  display: inline-block;
  background: #fff;
  padding: 10px 10px 44px;
  box-shadow:
    0  4px 16px rgba(0,0,0,0.14),
    0  1px  4px rgba(0,0,0,0.08);
  border-radius: 2px;
  transition: transform .25s cubic-bezier(0.34,1.56,0.64,1),
              box-shadow .25s ease;
  max-width: 320px;
}

.ti-polaroid img {
  width: 100%;
  height: 220px;
  object-fit: cover;
  display: block;
  border-radius: 1px;
}

.ti-polaroid figcaption {
  font-family: var(--ti-font);
  font-size: 13px;
  color: #555;
  text-align: center;
  margin-top: 12px;
  font-style: italic;
  line-height: 1.4;
}

.ti-polaroid--tilt-left  { transform: rotate(-2.5deg); }
.ti-polaroid--tilt-right { transform: rotate(2deg);    }

.ti-polaroid:hover {
  transform: rotate(0deg) scale(1.04);
  box-shadow: 0 12px 32px rgba(0,0,0,0.18);
}

/* Polaroid grid */
.ti-polaroid-row {
  display: flex;
  flex-wrap: wrap;
  gap: 28px;
  justify-content: center;
  margin: 24px 0;
  padding: 20px;
  background: var(--ti-blue-50);
  border-radius: var(--ti-radius-lg);
}

@media (max-width: 600px) {
  .ti-polaroid     { max-width: 100%; }
  .ti-polaroid img { height: 200px; }
  .ti-polaroid--tilt-left,
  .ti-polaroid--tilt-right { transform: none; }
}


/* ── E4. FUN STAT BUBBLE ────────────────────────────────────────
   Bold circular stat for key numbers — more playful than ti-stat.
   Usage:
     <div class="ti-bubble-stat ti-bubble-stat--teal">
       <span class="ti-bubble-stat__num">93%</span>
       <span class="ti-bubble-stat__label">come for education</span>
     </div>
   ─────────────────────────────────────────────────────────── */
.ti-bubble-stat {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 150px;
  height: 150px;
  border-radius: 50%;
  text-align: center;
  padding: 16px;
  gap: 5px;
  position: relative;
  transition: transform .25s cubic-bezier(0.34,1.56,0.64,1);
}
.ti-bubble-stat:hover { transform: scale(1.08); }

.ti-bubble-stat__num {
  font-family: var(--ti-font);
  font-size: 34px;
  font-weight: 700;
  line-height: 1;
}
.ti-bubble-stat__label {
  font-family: var(--ti-font);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .05em;
  line-height: 1.3;
  opacity: .85;
}

.ti-bubble-stat--blue   { background: var(--ti-blue);   color: #fff; }
.ti-bubble-stat--teal   { background: var(--ti-teal);   color: #fff; }
.ti-bubble-stat--orange { background: var(--ti-orange); color: #fff; }
.ti-bubble-stat--pink   { background: var(--ti-pink);   color: #fff; }
.ti-bubble-stat--yellow { background: var(--ti-yellow); color: var(--ti-yellow-800); }

/* Row of bubble stats */
.ti-bubble-row {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  align-items: center;
  justify-content: center;
  margin: 28px 0;
}

@media (max-width: 600px) {
  .ti-bubble-stat { width: 120px; height: 120px; }
  .ti-bubble-stat__num { font-size: 26px; }
}


/* ── E5. STAR BADGE ─────────────────────────────────────────────
   10-point star via clip-path. Use for standout impact numbers.
   Usage:
     <div class="ti-star-badge ti-star-badge--yellow">
       <span class="ti-star-badge__num">93%</span>
       <span class="ti-star-badge__label">trust us</span>
     </div>
   ─────────────────────────────────────────────────────────── */
.ti-star-badge {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 130px;
  height: 130px;
  clip-path: polygon(
    50%  0%, 61% 35%, 98% 35%,
    68% 57%, 79% 91%, 50% 70%,
    21% 91%, 32% 57%,  2% 35%,
    39% 35%
  );
  text-align: center;
  padding: 20px 16px;
  gap: 3px;
  transition: transform .25s cubic-bezier(0.34,1.56,0.64,1);
}
.ti-star-badge:hover { transform: scale(1.12) rotate(8deg); }

.ti-star-badge__num {
  font-family: var(--ti-font);
  font-size: 28px;
  font-weight: 700;
  line-height: 1;
}
.ti-star-badge__label {
  font-family: var(--ti-font);
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  line-height: 1.2;
  opacity: .9;
}

.ti-star-badge--yellow { background: var(--ti-yellow); color: var(--ti-yellow-800); }
.ti-star-badge--orange { background: var(--ti-orange); color: #fff; }
.ti-star-badge--pink   { background: var(--ti-pink);   color: #fff; }
.ti-star-badge--teal   { background: var(--ti-teal);   color: #fff; }
.ti-star-badge--blue   { background: var(--ti-blue);   color: #fff; }

/* Row of star badges */
.ti-star-row {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  align-items: center;
  justify-content: center;
  margin: 24px 0;
}


/* ── E5b. PHOTO PAIR — staggered, no coloured background ────────
   Warm, editorial photo layout for 2 images.
   Usage:
     <div class="ti-photo-pair">
       <figure class="ti-photo-pair__main"> <img> <figcaption>…</figcaption> </figure>
       <figure class="ti-photo-pair__accent"> <img> <figcaption>…</figcaption> </figure>
     </div>
   ─────────────────────────────────────────────────────────── */
.ti-photo-pair {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 20px;
  align-items: start;
  margin: 28px 0;
}

.ti-photo-pair figure {
  margin: 0;
  border-radius: 14px;
  overflow: hidden;
  box-shadow:
    0  6px 24px rgba(0,0,0,0.10),
    0  2px  6px rgba(0,0,0,0.06);
  background: #fff;
  transition: transform .3s cubic-bezier(0.34,1.56,0.64,1),
              box-shadow .3s ease;
}
.ti-photo-pair figure:hover {
  transform: translateY(-5px);
  box-shadow: 0 16px 40px rgba(0,0,0,0.14), 0 4px 8px rgba(0,0,0,0.06);
}

.ti-photo-pair__main  { /* taller, left */  }
.ti-photo-pair__accent { margin-top: 40px; } /* offset for visual rhythm */

.ti-photo-pair img {
  display: block;
  width: 100%;
  object-fit: cover;
}
.ti-photo-pair__main  img { height: 360px; }
.ti-photo-pair__accent img { height: 280px; }

.ti-photo-pair figcaption {
  font-family: var(--ti-font);
  font-size: 12px;
  color: #666;
  font-style: italic;
  padding: 10px 14px 12px;
  line-height: 1.45;
  border-top: 2px solid var(--ti-teal-50);
}

@media (max-width: 640px) {
  .ti-photo-pair              { grid-template-columns: 1fr; gap: 14px; }
  .ti-photo-pair__accent      { margin-top: 0; }
  .ti-photo-pair__main  img,
  .ti-photo-pair__accent img  { height: 240px; }
}


/* ── E5c. PAGE INTRO BOX ────────────────────────────────────────
   Boxed intro section — left-aligned, light background.
   Replaces cold ti-lead (left border) and centred warm-intro.
   Usage: wrap the intro <p> in <div class="ti-warm-intro">
   ─────────────────────────────────────────────────────────── */
.ti-warm-intro {
  background: var(--ti-blue-50, #E3F0FB);
  border-radius: 12px;
  padding: 22px 26px 20px;
  margin-bottom: 24px;
  text-align: left;            /* NOT centred */
}
.ti-warm-intro__text {
  font-family: var(--ti-font);
  font-size: 17px;
  font-weight: 400;
  line-height: 1.75;
  color: #2a2a2a;
  margin: 0 0 10px;
}
.ti-warm-intro__text:last-child { margin-bottom: 0; }
.ti-warm-intro__note {
  font-family: var(--ti-font);
  font-size: 13px;
  color: #666;
  line-height: 1.6;
  margin: 0;
}
.ti-warm-intro__note a { color: var(--ti-teal-600); text-decoration: underline; }

/* ── E6. BLOB BACKGROUND SECTION ────────────────────────────────
   Organic, rounded section — breaks the rectangular rigidity.
   Usage: add class to any container div.
   Variants: --teal --blue --pink --orange --yellow
   ─────────────────────────────────────────────────────────── */
.ti-blob {
  padding: 36px 32px;
  border-radius: 60% 40% 55% 45% / 45% 55% 40% 60%;
  position: relative;
  overflow: hidden;
  margin: 12px 0;
}
.ti-blob--teal   { background: var(--ti-teal-50);   }
.ti-blob--blue   { background: var(--ti-blue-50);   }
.ti-blob--pink   { background: var(--ti-pink-50);   }
.ti-blob--orange { background: var(--ti-orange-50); }
.ti-blob--yellow { background: var(--ti-yellow-50); }

/* Simpler blob for inline use */
.ti-blob-sm {
  border-radius: 40% 60% 55% 45% / 55% 45% 60% 40%;
  padding: 24px;
  display: inline-block;
}

@media (max-width: 600px) {
  .ti-blob { padding: 24px 20px; border-radius: 30% 70% 40% 60% / 40% 60% 30% 70%; }
}


/* ── E7. SVG DECORATIVE ICONS ───────────────────────────────────
   Inline SVG hearts, stars, sparkles as CSS backgrounds.
   Add to section containers for a warm, childlike feel.

   Usage:
     <div class="ti-deco ti-deco--hearts-tl"> (content) </div>
   ─────────────────────────────────────────────────────────── */

/* Base: positions a decorative SVG in a corner */
.ti-deco { position: relative; }

.ti-deco::before,
.ti-deco--br::after {
  content: '';
  position: absolute;
  width: 80px;
  height: 80px;
  pointer-events: none;
  opacity: 0.18;
  background-repeat: no-repeat;
  background-size: contain;
}

/* ── Top-left heart ── */
.ti-deco--heart-tl::before {
  top: -10px;
  left: -10px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 90'%3E%3Cpath fill='%23E83A8D' d='M50 85 C50 85 5 55 5 28 C5 12 17 2 30 2 C38 2 46 7 50 14 C54 7 62 2 70 2 C83 2 95 12 95 28 C95 55 50 85 50 85Z'/%3E%3C/svg%3E");
}

/* ── Bottom-right star ── */
.ti-deco--star-br { position: relative; overflow: hidden; }
.ti-deco--star-br::after {
  content: '';
  position: absolute;
  bottom: -12px;
  right: -12px;
  width: 90px;
  height: 90px;
  pointer-events: none;
  opacity: 0.15;
  background-repeat: no-repeat;
  background-size: contain;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpolygon fill='%23FEDC3A' points='50,5 61,35 95,35 68,57 79,91 50,70 21,91 32,57 5,35 39,35'/%3E%3C/svg%3E");
}

/* ── Sparkle dots (top-right) ── */
.ti-deco--sparkle-tr::before {
  top: 8px;
  right: 8px;
  left: auto;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Ccircle fill='%2304A1B2' cx='20' cy='20' r='8'/%3E%3Ccircle fill='%231B6FBF' cx='55' cy='12' r='5'/%3E%3Ccircle fill='%23FEDC3A' cx='80' cy='35' r='9'/%3E%3Ccircle fill='%23E83A8D' cx='35' cy='65' r='6'/%3E%3Ccircle fill='%23EC672E' cx='75' cy='72' r='7'/%3E%3C/svg%3E");
}


/* ── E8. STAT CARDS (no dark background) ───────────────────────
   WCAG-validated: 800-stop text on 50-stop bg.
   Ratios: blue 9.2:1, teal 7.0:1, pink 9.0:1, orange 8.5:1
   Usage:
     <div class="ti-stat-cards">
       <div class="ti-stat-card ti-stat-card--blue">
         <div class="ti-stat-card__num">70%</div>
         <div class="ti-stat-card__label">...</div>
       </div>
     </div>
   ─────────────────────────────────────────────────────────── */
.ti-stat-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 16px;
  margin: 20px 0;
}

.ti-stat-card {
  border-radius: var(--ti-radius-lg);
  padding: 28px 20px 24px;
  text-align: center;
  position: relative;
  overflow: hidden;
  transition: transform .25s cubic-bezier(0.34,1.56,0.64,1);
}
.ti-stat-card:hover { transform: translateY(-5px) scale(1.02); }

/* Decorative circle in background */
.ti-stat-card::before {
  content: '';
  position: absolute;
  top: -20px;
  right: -20px;
  width: 90px;
  height: 90px;
  border-radius: 50%;
  opacity: 0.15;
}

.ti-stat-card__num {
  font-family: var(--ti-font);
  font-size: 3rem;
  font-weight: 700;
  line-height: 1;
  margin-bottom: 8px;
  letter-spacing: -.02em;
}
.ti-stat-card__label {
  font-family: var(--ti-font);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.45;
  opacity: .88;
}

/* Colour variants — WCAG AA validated */
.ti-stat-card--blue {
  background: var(--ti-blue-50);       /* #E3F0FB */
}
.ti-stat-card--blue .ti-stat-card__num   { color: #0D3D7A; }  /* 9.22:1 ✓ */
.ti-stat-card--blue .ti-stat-card__label { color: #0D3D7A; }
.ti-stat-card--blue::before              { background: #1B6FBF; }

.ti-stat-card--teal {
  background: var(--ti-teal-50);       /* #E0F5F7 */
}
.ti-stat-card--teal .ti-stat-card__num   { color: #075A64; }  /* 6.99:1 ✓ */
.ti-stat-card--teal .ti-stat-card__label { color: #075A64; }
.ti-stat-card--teal::before              { background: #04A1B2; }

.ti-stat-card--pink {
  background: var(--ti-pink-50);       /* #FDE8F3 */
}
.ti-stat-card--pink .ti-stat-card__num   { color: #7A1248; }  /* 8.97:1 ✓ */
.ti-stat-card--pink .ti-stat-card__label { color: #7A1248; }
.ti-stat-card--pink::before              { background: #E83A8D; }

.ti-stat-card--orange {
  background: var(--ti-orange-50);     /* #FEF0E8 */
}
.ti-stat-card--orange .ti-stat-card__num   { color: #7A2E08; }  /* 8.48:1 ✓ */
.ti-stat-card--orange .ti-stat-card__label { color: #7A2E08; }
.ti-stat-card--orange::before              { background: #EC672E; }

.ti-stat-card--yellow {
  background: var(--ti-yellow-50);     /* #FFF9D6 */
}
.ti-stat-card--yellow .ti-stat-card__num   { color: #6B4700; }
.ti-stat-card--yellow .ti-stat-card__label { color: #6B4700; }
.ti-stat-card--yellow::before              { background: #FEDC3A; }

@media (max-width: 600px) {
  .ti-stat-cards         { grid-template-columns: 1fr 1fr; }
  .ti-stat-card__num     { font-size: 2.4rem; }
}

@media (max-width: 600px) {
  .partner-logos { padding: 24px 16px; }
  .partner-logos-grid { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 12px; }
  .partner-logo-item { height: 90px; padding: 12px; }
}


/* ── C2. TEAM PAGE (.page-id-38) ────────────────────────────── */
.page-id-38 .wp-block-post-template.columns-6 { grid-template-columns: repeat(6, minmax(0,1fr)); gap: 16px; }
@media (max-width: 1200px) { .page-id-38 .wp-block-post-template.columns-6 { grid-template-columns: repeat(4, minmax(0,1fr)); gap: 14px; } }
@media (max-width: 860px)  { .page-id-38 .wp-block-post-template.columns-6 { grid-template-columns: repeat(3, minmax(0,1fr)); gap: 12px; } }
@media (max-width: 560px)  { .page-id-38 .wp-block-post-template.columns-6 { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; } }

/* Team card flip */
.team-card { position: relative; perspective: 1200px; height: 300px; width: 100%; }
.team-card-front, .team-card-back { position: absolute; inset: 0; backface-visibility: hidden; border-radius: 1px; overflow: hidden; transition: transform 0.6s ease; }
.team-card-front { z-index: 2; transform: rotateY(0deg); }
.team-card-back  { background: var(--ti-orange); color: #fff; padding: 24px; display: flex; flex-direction: column; justify-content: center; transform: rotateY(180deg); }
.team-card:hover .team-card-front { transform: rotateY(-180deg); }
.team-card:hover .team-card-back  { transform: rotateY(0deg); }

/* Card front bottom border — hint at color */
.page-id-38 li.wp-block-post:nth-child(5n+1) .team-card-front { border-bottom: 4px solid var(--ti-blue); }
.page-id-38 li.wp-block-post:nth-child(5n+2) .team-card-front { border-bottom: 4px solid var(--ti-teal); }
.page-id-38 li.wp-block-post:nth-child(5n+3) .team-card-front { border-bottom: 4px solid var(--ti-pink); }
.page-id-38 li.wp-block-post:nth-child(5n+4) .team-card-front { border-bottom: 4px solid var(--ti-orange); }
.page-id-38 li.wp-block-post:nth-child(5n+5) .team-card-front { border-bottom: 4px solid var(--ti-yellow); }

/* Card back — cycle all 5 logo colors */
.page-id-38 li.wp-block-post:nth-child(5n+1) .team-card-back { background: var(--ti-blue); }
.page-id-38 li.wp-block-post:nth-child(5n+2) .team-card-back { background: var(--ti-teal); }
.page-id-38 li.wp-block-post:nth-child(5n+3) .team-card-back { background: var(--ti-pink); }
.page-id-38 li.wp-block-post:nth-child(5n+4) .team-card-back { background: var(--ti-orange); }
.page-id-38 li.wp-block-post:nth-child(5n+5) .team-card-back { background: var(--ti-yellow); color: #3a2000; }

.page-id-38 .team-card-back { padding: 20px 16px; justify-content: flex-start; align-items: flex-start; text-align: left; }
.page-id-38 .team-card-back .wp-block-post-title    { font-size: 14px !important; font-weight: 700; color: #fff; margin-bottom: 4px; line-height: 1.3; }
.page-id-38 li.wp-block-post:nth-child(5n+5) .team-card-back .wp-block-post-title { color: #3a2000; }
.page-id-38 .team-card-back .wp-block-post-terms    { font-size: 11px !important; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; margin-bottom: 10px; opacity: .85; border-bottom: 1px solid rgba(255,255,255,0.2); padding-bottom: 10px; width: 100%; display: block; }
.page-id-38 .team-card-back .wp-block-post-terms a  { color: rgba(255,255,255,0.9) !important; text-decoration: none; }
.page-id-38 li.wp-block-post:nth-child(5n+5) .team-card-back .wp-block-post-terms     { border-color: rgba(58,32,0,0.15); }
.page-id-38 li.wp-block-post:nth-child(5n+5) .team-card-back .wp-block-post-terms a   { color: rgba(58,32,0,0.75) !important; }
.page-id-38 .team-card-back .wp-block-post-excerpt__excerpt { font-size: 12px !important; line-height: 1.65; color: rgba(255,255,255,0.9); display: -webkit-box; -webkit-line-clamp: 8; line-clamp: 8; -webkit-box-orient: vertical; overflow: hidden; margin-bottom: 8px; }
.page-id-38 li.wp-block-post:nth-child(5n+5) .team-card-back .wp-block-post-excerpt__excerpt { color: rgba(58,32,0,0.85); }
.page-id-38 .team-card-back .wp-block-post-excerpt__more-link { font-size: 11px !important; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: rgba(255,255,255,0.75) !important; text-decoration: underline; text-underline-offset: 3px; }
.page-id-38 li.wp-block-post:nth-child(5n+5) .team-card-back .wp-block-post-excerpt__more-link { color: rgba(58,32,0,0.65) !important; }

/* Team intro paragraphs */
.page-id-38 #the-page-content > p { font-size: 15px; color: #3a3a3a; line-height: 1.75; max-width: 720px; }
.page-id-38 #the-page-content > p:first-child { font-size: 17px; font-weight: 500; color: var(--ti-blue-800); border-left: 4px solid var(--ti-blue); padding-left: 18px; line-height: 1.7; }


/* ── C3. BLOG LISTING (blog_home.php template) ───────────────── */
/* Body class is page-template-templatesblog_home-php because the
   file lives in templates/blog_home.php (subfolder).
   .archive-title is unscoped so it applies on both EN and FR.     */
.page-template-templatesblog_home-php .archive-header {
  padding: 32px 0 28px;
  border-bottom: 1px solid #f0f0ee;
  margin-bottom: 32px;
}

.archive-title {
  font-size: clamp(24px, 4vw, 36px);
  font-weight: 400;
  color: #1B6FBF !important;
  margin-bottom: 12px;
  line-height: 1.2;
}

.page-template-templatesblog_home-php .archive-description p {
  font-size: 16px;
  color: #555;
  line-height: 1.7;
  max-width: 680px;
  margin: 0;
}


/* ── Blog search bar ────────────────────────────────────────── */
.tara-blog-search {
  margin: 0 0 36px;
}

.tara-blog-search__form {
  width: 100%;
}

.tara-blog-search__inner {
  display: flex;
  align-items: center;
  gap: 0;
  background: #fff;
  border: 2px solid #e0e0e0;
  border-radius: 10px;
  overflow: hidden;
  max-width: 600px;
  transition: border-color .2s ease, box-shadow .2s ease;
}

.tara-blog-search__inner:focus-within {
  border-color: #1B6FBF;
  box-shadow: 0 0 0 3px rgba(27,111,191,0.12);
}

.tara-blog-search__icon {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  color: #aaa;
  margin-left: 14px;
}

.tara-blog-search__input {
  flex: 1;
  border: none;
  outline: none;
  padding: 12px 10px;
  font-family: var(--ti-font);
  font-size: 15px;
  color: #2a2a2a;
  background: transparent;
}

.tara-blog-search__input::placeholder {
  color: #bbb;
}

/* Clear × button — only shown when a query is active */
.tara-blog-search__clear {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  color: #aaa;
  text-decoration: none;
  font-size: 13px;
  flex-shrink: 0;
  transition: background .15s ease, color .15s ease;
}

.tara-blog-search__clear:hover {
  background: #f0f0f0;
  color: #555;
}

.tara-blog-search__btn {
  padding: 0 20px;
  height: 100%;
  min-height: 46px;
  background: #1B6FBF;
  color: #fff;
  border: none;
  font-family: 'Josefin Sans', var(--ti-font);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .05em;
  cursor: pointer;
  flex-shrink: 0;
  transition: background .2s ease;
}

.tara-blog-search__btn:hover {
  background: #145899;
}

/* "Results for: X" label */
.tara-blog-search__results-info {
  font-size: 13px;
  color: #888;
  margin: 10px 0 0;
  max-width: 600px;
}

.tara-blog-search__results-info strong {
  color: #1B6FBF;
  font-weight: 700;
}

@media (max-width: 560px) {
  .tara-blog-search__btn { padding: 0 14px; font-size: 12px; }
  .tara-blog-search__inner { max-width: 100%; }
}

.tara-blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-bottom: 48px; }
@media (max-width: 900px) { .tara-blog-grid { grid-template-columns: repeat(2, 1fr); gap: 18px; } }
@media (max-width: 560px) { .tara-blog-grid { grid-template-columns: 1fr; gap: 16px; } }

.tara-blog-card { background: #fff; border-radius: var(--ti-radius); overflow: hidden; border-top: 4px solid transparent; box-shadow: 0 4px 16px rgba(0,0,0,0.07); display: flex; flex-direction: column; transition: transform .2s ease, box-shadow .2s ease; }
.tara-blog-card:hover { transform: translateY(-4px); box-shadow: 0 10px 28px rgba(0,0,0,0.12); }

.tara-blog-card--blue   { border-top-color: var(--ti-blue); }
.tara-blog-card--teal   { border-top-color: var(--ti-teal); }
.tara-blog-card--pink   { border-top-color: var(--ti-pink); }
.tara-blog-card--orange { border-top-color: var(--ti-orange); }
.tara-blog-card--yellow { border-top-color: var(--ti-yellow); }

.tara-blog-card__img-wrap { display: block; width: 100%; height: 200px; overflow: hidden; flex-shrink: 0; }
.tara-blog-card__img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.tara-blog-card:hover .tara-blog-card__img { transform: scale(1.04); }

.tara-blog-card__img-placeholder        { width: 100%; height: 200px; flex-shrink: 0; }
.tara-blog-card__img-placeholder--blue   { background: var(--ti-blue-50); }
.tara-blog-card__img-placeholder--teal   { background: var(--ti-teal-50); }
.tara-blog-card__img-placeholder--pink   { background: var(--ti-pink-50); }
.tara-blog-card__img-placeholder--orange { background: var(--ti-orange-50); }
.tara-blog-card__img-placeholder--yellow { background: var(--ti-yellow-50); }

.tara-blog-card__body { padding: 20px 20px 24px; display: flex; flex-direction: column; flex: 1; }

.tara-blog-card__cat { display: inline-block; font-family: var(--ti-font); font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; border-radius: 99px; padding: 3px 10px; margin-bottom: 10px; text-decoration: none; white-space: nowrap; align-self: flex-start; transition: opacity .2s ease; }
.tara-blog-card__cat:hover { opacity: .8; }
.tara-blog-card__cat--blue   { background: var(--ti-blue-50);   color: var(--ti-blue-800); }
.tara-blog-card__cat--teal   { background: var(--ti-teal-50);   color: var(--ti-teal-800); }
.tara-blog-card__cat--pink   { background: var(--ti-pink-50);   color: var(--ti-pink-800); }
.tara-blog-card__cat--orange { background: var(--ti-orange-50); color: var(--ti-orange-800); }
.tara-blog-card__cat--yellow { background: var(--ti-yellow-50); color: var(--ti-yellow-800); }

.tara-blog-card__title { font-family: var(--ti-font); font-size: 16px; font-weight: 700; line-height: 1.35; margin: 0 0 8px; color: #1a1a1a; display: -webkit-box; -webkit-line-clamp: 3; line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.tara-blog-card__title a { color: inherit; text-decoration: none; transition: color .2s ease; }
.tara-blog-card__title a:hover { color: var(--ti-blue); }

.tara-blog-card__meta { font-family: var(--ti-font); font-size: 12px; color: #999; margin-bottom: 10px; }

.tara-blog-card__excerpt { flex: 1; }
.tara-blog-card__excerpt p { font-family: var(--ti-font); font-size: 13px; color: #555; line-height: 1.65; margin: 0 0 16px; display: -webkit-box; -webkit-line-clamp: 4; line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }

.tara-blog-card__more { font-family: var(--ti-font); font-size: 13px; font-weight: 700; text-decoration: none; margin-top: auto; transition: opacity .2s ease; align-self: flex-start; }
.tara-blog-card__more:hover { opacity: .75; }
.tara-blog-card__more--blue   { color: var(--ti-blue); }
.tara-blog-card__more--teal   { color: var(--ti-teal); }
.tara-blog-card__more--pink   { color: var(--ti-pink); }
.tara-blog-card__more--orange { color: var(--ti-orange); }
.tara-blog-card__more--yellow { color: var(--ti-yellow-600); }

/* Pagination */
.tara-blog-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px; margin: 8px 0 56px; }
.tara-blog-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 10px; border-radius: 8px; font-family: var(--ti-font); font-size: 14px; font-weight: 600; text-decoration: none; transition: background .15s ease, color .15s ease, border-color .15s ease; border: 2px solid #e8e8e8; background: #fff; color: #3a3a3a; line-height: 1; }
.tara-blog-pagination a.page-numbers:hover { background: var(--ti-blue-50); border-color: var(--ti-blue); color: var(--ti-blue-800); }
.tara-blog-pagination .page-numbers.current { background: var(--ti-blue); border-color: var(--ti-blue); color: #fff; cursor: default; }
.tara-blog-pagination a.prev.page-numbers,
.tara-blog-pagination a.next.page-numbers { padding: 0 16px; background: #fff; border-color: var(--ti-orange); color: var(--ti-orange); font-weight: 700; }
.tara-blog-pagination a.prev.page-numbers:hover,
.tara-blog-pagination a.next.page-numbers:hover { background: var(--ti-orange-50); border-color: var(--ti-orange-600); color: var(--ti-orange-600); }
.tara-blog-pagination .page-numbers.dots { border-color: transparent; background: transparent; color: #aaa; cursor: default; min-width: 28px; }
.tara-blog-empty { font-family: var(--ti-font); font-size: 16px; color: #888; text-align: center; padding: 60px 0; }


/* ── C4. THE UNDEFEATED PAGE ────────────────────────────────── */
/* Film column cards */
.wp-block-columns .wp-block-column { background: #fff; padding: 18px; border-radius: 12px; box-shadow: 0 8px 22px rgba(0,0,0,0.08); transition: transform .25s ease, box-shadow .25s ease; }
.wp-block-columns .wp-block-column:hover { transform: translateY(-6px); box-shadow: 0 14px 30px rgba(0,0,0,0.12); }
.wp-block-column h3 { margin-top: 14px; margin-bottom: 8px; font-size: 22px; }

/* Award cards */
.awards-grid { gap: 40px; }
.award-card { background: #fff; padding: 30px; border-radius: 12px; box-shadow: 0 10px 25px rgba(0,0,0,0.08); text-align: center; transition: transform .25s ease, box-shadow .25s ease; }
.award-card:hover { transform: translateY(-6px); box-shadow: 0 18px 40px rgba(0,0,0,0.15); }
.award-image   { width: 100%; max-width: 380px; margin-bottom: 20px; border-radius: 8px; }
.award-title   { font-size: 18px; margin-bottom: 10px; }
.award-film    { font-size: 20px; margin: 8px 0; }
.award-festival { color: #666; font-size: 14px; }

/* Festival grid */
.festival-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 25px; margin-top: 30px; }
.festival-card { background: #fff; padding: 22px; border-radius: 10px; text-align: center; box-shadow: 0 6px 18px rgba(0,0,0,0.08); transition: transform .25s ease, box-shadow .25s ease; }
.festival-card:hover { transform: translateY(-5px); box-shadow: 0 14px 30px rgba(0,0,0,0.15); }
.laurel { font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 2px; margin-bottom: 10px; color: #666; }
.laurel::before { content: "❧ "; }
.laurel::after  { content: " ❧"; }
.festival-country       { margin-top: 8px; font-size: 14px; color: #777; }
.festival-country span  { margin-right: 6px; }

/* Essential Blocks timeline fix */
.eb-timeline-dot-icon { display: none; }
.eb-timeline-dot::before { content: ''; width: 14px; height: 14px; background: var(--ti-teal); border-radius: 50%; display: block; margin: auto; animation: timelinePulse 3s infinite; }
@keyframes timelinePulse {
  0%   { box-shadow: 0 0 0 0   rgba(4,161,178,0.4); }
  70%  { box-shadow: 0 0 0 12px rgba(4,161,178,0); }
  100% { box-shadow: 0 0 0 0   rgba(4,161,178,0); }
}

/* Donation calculator */
.donation-calculator { background: var(--ti-blue-50); padding: 35px; border-radius: 12px; max-width: 520px; margin: 40px auto; text-align: center; box-shadow: 0 10px 25px rgba(0,0,0,0.08); }
.donation-calculator select { width: 100%; padding: 10px; margin: 10px 0 20px; border-radius: 6px; border: 1px solid #c0d6ef; }
.donation-calculator input[type=range] { width: 100%; margin: 20px 0; }
.donation-amount { font-size: 20px; margin-top: 10px; }
.tax-results     { margin-top: 15px; font-size: 18px; }

/* Letter scene */
.letter-scene { position: relative; overflow: hidden; }
.scene        { width: 100%; display: block; }