/* ==========================================================================
   TP EVENTS DIRECTORY — listing hero, filtered grid, homepage "What's On"
   teaser, single-event page and PDC/courses landing styles.
   Namespace: .tp-ev-*

   Ported from the approved design previews (_local-preview/events-preview.css)
   2026-07-14. Depends on tp-tokens.css custom properties (--tp-green,
   --tp-gold, --tp-cream, --tp-deep, --tp-border, --tp-text-soft, etc.) —
   enqueue AFTER tp-tokens.css, tp-buttons.css and tp-directory-engine.css.
   The filter bar (.tp-filters/.tp-reset/.tp-chips/.tp-chip/.tp-count/
   .tp-grid-filtered/.tp-empty) is reused from tp-directory-engine.css
   VERBATIM — no event-specific overrides in this file.

   Conventions copied from tp-directory-engine.css section style: scoped
   box-sizing reset per section + !important on load-bearing props (survives
   the content pipeline's wildcard resets).

   DROPPED at the preview → production port: the inline EN/TH toggle
   (.tp-ev-toggle*) and the .tp-ev-lang--en/--th :target visibility
   mechanism. Both were preview-only review affordances — production
   language delivery is server-side per-URL (/th/ via tp_get_lang), so the
   PHP templates emit plain text with no client-side language span to style.

   Kranok ornament asset: assets/img/tp-kranok.svg (referenced by relative
   url() below, mirroring the ../fonts/ convention in tp-fonts.css).
   ========================================================================== */

/* ---------- Shared section reset ---------- */
/* NOTE: .tp-ev-single is deliberately NOT in this reset — the single-event
   page reuses md-profile.css primitives (md-hero, md-shape-divider,
   md-gallery, md-lightbox) whose own margins/paddings must not be nuked by
   an !important wildcard. Its tp-ev-* classes carry explicit margins instead. */
.tp-ev-hero *, .tp-ev-hero *::before, .tp-ev-hero *::after,
.tp-ev-home *, .tp-ev-home *::before, .tp-ev-home *::after,
.tp-ev-card *, .tp-ev-card *::before, .tp-ev-card *::after {
  box-sizing: border-box !important; margin: 0 !important; padding: 0 !important;
}
/* NOTE: the listing's filter/grid band deliberately has NO scoped reset —
   .tp-directory-wrap/.tp-filters/.tp-chips rely on their own (non-!important)
   margins from tp-directory-engine.css. */
.tp-ev-listing-band {
  background: var(--tp-cream) !important;
  padding: 28px 20px 64px !important;
}

/* ============================================================================
   1. LISTING HERO (cream band, /events/ hub)
   ============================================================================ */
.tp-ev-hero { background: var(--tp-cream) !important; position: relative !important; }
.tp-ev-hero-inner {
  max-width: 1080px !important; margin: 0 auto !important;
  padding: 64px 40px 40px !important; text-align: center !important;
}
.tp-ev-kicker {
  display: block !important; font-family: 'Inter', sans-serif !important;
  font-size: 11px !important; font-weight: 700 !important;
  text-transform: uppercase !important; letter-spacing: 0.16em !important;
  color: var(--tp-gold-ink) !important; margin-bottom: 14px !important;
}
.tp-ev-heading {
  font-family: 'Lora', serif !important;
  font-size: clamp(32px, 4vw, 46px) !important; font-weight: 700 !important;
  color: var(--tp-green) !important; line-height: 1.15 !important;
  letter-spacing: -0.01em !important; margin-bottom: 14px !important;
}
.tp-ev-hero .md-gold-divider,
.tp-ev-divider {
  width: 88px !important; height: 0 !important;
  border-top: 1px solid var(--tp-gold) !important; margin: 0 auto 16px !important;
}
.tp-ev-sub {
  font-family: 'Inter', sans-serif !important; font-size: 15px !important;
  font-weight: 300 !important; color: var(--tp-text-soft) !important;
  line-height: 1.65 !important; max-width: 640px !important;
  margin: 0 auto !important;
}

/* ============================================================================
   3. EVENT CARD (listing grid + archive)
   Anatomy of .tp-home-ipc-card (16:9 image, duration badge, date row, type
   pill, name/desc/venue) re-namespaced: the spotlight card is tuned for the
   homepage band; these sit inside .tp-grid-filtered on cream/white.
   ============================================================================ */
/* ---- Canonical event card (standardised 2026-07-15) ----
   ONE card for the homepage teaser AND the directory/archive + PDC listing.
   Signature: terracotta date band on top → 2:1 badged image → title + venue.
   Emitted by tp_render_event_card() (includes/event-directory.php). */
.tp-ev-card {
  display: flex !important; flex-direction: column !important; min-width: 0 !important;
  overflow: hidden !important; text-decoration: none !important; color: var(--tp-deep) !important;
  background: var(--tp-white) !important;
  border: 1px solid rgba(217,185,133,.55) !important; border-radius: 12px !important;
  box-shadow: 0 12px 28px rgba(45,58,38,.12) !important;
  transition: transform .3s ease, box-shadow .3s ease !important;
}
.tp-ev-card:hover {
  transform: translateY(-6px) !important;
  box-shadow: 0 20px 38px rgba(45,58,38,.20) !important;
}
/* Terracotta date band — the signature of the standardised card. */
.tp-ev-card-date {
  position: relative !important; min-height: 118px !important; padding: 16px 18px 13px !important;
  background: var(--tp-ev-signal) !important; color: var(--tp-cream) !important; overflow: hidden !important;
}
.tp-ev-card-date::after {
  /* Vector kranok silhouette (potrace-traced); CSS supplies the real site gold. */
  content: "" !important; position: absolute !important; z-index: 0 !important;
  width: 108px !important; height: 139px !important; right: -5px !important; bottom: -21px !important;
  background: var(--tp-gold) !important; opacity: .60 !important;
  -webkit-mask: url('../img/tp-kranok.svg') center / contain no-repeat !important;
  mask: url('../img/tp-kranok.svg') center / contain no-repeat !important;
  transform-origin: right bottom !important;
}
.tp-ev-card-date > * { position: relative !important; z-index: 1 !important; }
.tp-ev-card-date-seq { display: block !important; font-family: 'Inter', sans-serif !important; font-size: 10px !important; font-weight: 800 !important; letter-spacing: .16em !important; line-height: 1 !important; text-transform: uppercase !important; margin-bottom: 9px !important; color: #F5D8A5 !important; }
.tp-ev-card-date-seq:empty { display: none !important; }
.tp-ev-card-date-month { display: block !important; font-family: 'Inter', sans-serif !important; font-size: 12px !important; font-weight: 800 !important; letter-spacing: .16em !important; line-height: 1 !important; text-transform: uppercase !important; }
.tp-ev-card-date strong { display: block !important; margin: 6px 0 0 !important; font-family: 'Lora', serif !important; font-size: clamp(38px,3.8vw,50px) !important; font-weight: 700 !important; letter-spacing: -.07em !important; line-height: .9 !important; color: var(--tp-cream) !important; }
.tp-ev-card-date-year { display: inline !important; margin-left: 5px !important; font-family: 'Inter', sans-serif !important; font-size: 9px !important; font-weight: 800 !important; letter-spacing: .14em !important; color: #F5D8A5 !important; }
.tp-ev-card-date .tp-ev-status { position: absolute !important; right: 16px !important; top: 15px !important; z-index: 1 !important; padding: 5px 13px !important; border-radius: 50px !important; letter-spacing: .08em !important; box-shadow: 0 4px 6px rgba(58,90,64,.15) !important; }
/* Past events: mute the band to grey so it reads as archived (image also grays). */
.tp-ev-card--past .tp-ev-card-date { background: var(--tp-text-muted) !important; }
.tp-ev-card--past .tp-ev-card-date::after { opacity: .35 !important; }
.tp-ev-card-img {
  position: relative !important; width: 100% !important; aspect-ratio: 2 / 1 !important;
  overflow: hidden !important; background: var(--tp-deep) !important;
}
.tp-ev-card-img img {
  display: block !important; width: 100% !important; height: 100% !important;
  object-fit: cover !important; transition: transform .55s ease !important;
}
.tp-ev-card:hover .tp-ev-card-img img { transform: scale(1.035) !important; }
.tp-ev-card-img .tp-ev-edge-badge {
  position: absolute !important; right: 12px !important; bottom: 12px !important;
  left: auto !important; top: auto !important; margin: 0 !important; z-index: 2 !important;
  box-shadow: 0 4px 12px rgba(45,58,38,.22) !important;
}
.tp-ev-card-category-overlay,
.tp-ev-home-live-category {
  position: absolute !important; top: 12px !important; left: 12px !important;
  z-index: 2 !important; margin: 0 !important;
  box-shadow: 0 4px 12px rgba(45,58,38,.2) !important;
}
.tp-ev-card-body {
  display: flex !important; flex: 1 !important; flex-direction: column !important;
  padding: 17px 18px 14px !important;
}
.tp-ev-tag {
  display: inline-block !important; font-family: 'Inter', sans-serif !important;
  font-size: 11px !important; font-weight: 700 !important;
  text-transform: uppercase !important; letter-spacing: 0.08em !important;
  padding: 6px 14px !important; border-radius: 50px !important;
  flex-shrink: 0 !important; align-self: flex-start !important;
  line-height: 1.2 !important;
  background: #EDF3EE !important; color: var(--tp-green) !important;
  border: 1px solid #C5D6C0 !important; white-space: nowrap !important;
}
.tp-ev-card-name {
  margin: 0 0 8px !important; color: var(--tp-green) !important;
  font-family: 'Lora', serif !important; font-size: 20px !important;
  font-weight: 700 !important; line-height: 1.25 !important;
}
.tp-ev-card-body .tp-ev-venue-mini { min-height: 56px !important; margin: 0 !important; }
.tp-ev-card-body .tp-ev-venue-mini-img { width: 42px !important; height: 42px !important; flex-basis: 42px !important; }
.tp-ev-venue-mini {
  display: flex !important; align-items: center !important; gap: 11px !important;
  min-height: 64px !important; margin: 2px 0 14px !important; padding: 8px !important;
  background: var(--tp-white) !important; border: 1px solid var(--tp-border) !important;
  border-radius: 12px !important; box-shadow: 0 4px 10px rgba(58,90,64,.04) !important;
}
.tp-ev-venue-mini-img {
  width: 48px !important; height: 48px !important; flex: 0 0 48px !important;
  overflow: hidden !important; border-radius: 8px !important; background: var(--tp-surface) !important;
}
.tp-ev-venue-mini-img picture { display: contents !important; }
.tp-ev-venue-mini-img img {
  display: block !important; width: 100% !important; height: 100% !important;
  padding: 0 !important; border-radius: 8px !important; object-fit: cover !important;
}
.tp-ev-venue-mini-info {
  display: flex !important; min-width: 0 !important; flex-direction: column !important;
  justify-content: center !important; align-items: flex-start !important;
}
.tp-ev-venue-mini-title {
  display: -webkit-box !important; overflow: hidden !important; -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important; color: var(--tp-green) !important;
  font-family: 'Inter', sans-serif !important; font-size: 14px !important;
  font-weight: 700 !important; letter-spacing: -.02em !important; line-height: 1.18 !important;
}
.tp-ev-venue-mini-type {
  display: block !important; margin-top: 3px !important; color: var(--tp-gold-ink) !important;
  font-family: 'Inter', sans-serif !important; font-size: 9px !important; font-weight: 700 !important;
  letter-spacing: .12em !important; line-height: 1.3 !important; text-transform: uppercase !important;
}
/* Linked venue card in the single-event sidebar — the mini card is non-linking
   by design (it usually lives inside a card <a>), so the sidebar wraps it in an
   anchor and adds the hover affordance here. */
.tp-ev-venue-mini-link {
  display: block !important; text-decoration: none !important;
  transition: transform .15s ease, box-shadow .15s ease !important;
}
.tp-ev-venue-mini-link .tp-ev-venue-mini {
  margin: 2px 0 0 !important; transition: border-color .15s ease, box-shadow .15s ease !important;
}
.tp-ev-venue-mini-link:hover .tp-ev-venue-mini {
  border-color: var(--tp-ev-signal) !important; box-shadow: 0 6px 14px rgba(58, 90, 64, .1) !important;
}
.tp-ev-venue-mini-link:hover .tp-ev-venue-mini-title { color: var(--tp-gold-ink) !important; }
.tp-ev-recur {
  display: block !important; font-family: 'Inter', sans-serif !important;
  font-size: 12px !important; font-weight: 600 !important;
  color: var(--tp-gold-ink) !important; margin-bottom: 4px !important;
}
.tp-ev-price {
  display: inline-flex !important; align-items: center !important;
  padding: 7px 16px !important; border-radius: 50px !important;
  background: #FDF6EC !important; border: 1px solid #E8D5A8 !important;
  color: #8B6B2F !important; font-family: 'Inter', sans-serif !important;
  font-size: 14px !important; font-weight: 800 !important;
  letter-spacing: 0 !important; line-height: 1.1 !important;
  text-transform: none !important; white-space: nowrap !important;
}
.tp-ev-price--free {
  background: #EDF3EE !important; border-color: #C5D6C0 !important;
  color: var(--tp-green) !important;
}
.tp-ev-price-note {
  display: inline-block !important; margin-left: 8px !important;
  color: var(--tp-text-soft) !important; font-family: 'Inter', sans-serif !important;
  font-size: 12px !important; font-weight: 400 !important;
  letter-spacing: 0 !important; text-transform: none !important;
  white-space: normal !important;
}
.tp-ev-card-price-overlay,
.tp-ev-home-live-price {
  position: absolute !important; top: 12px !important; right: 12px !important;
  z-index: 2 !important; line-height: 1 !important;
}
.tp-ev-card-price-overlay .tp-ev-price,
.tp-ev-home-live-price .tp-ev-price {
  padding: 6px 12px !important; font-size: 13px !important;
  box-shadow: 0 4px 12px rgba(45,58,38,.22) !important;
}

/* ---------- Past-event modifier (auto-archive view) ---------- */
.tp-ev-card--past .tp-ev-card-img img { filter: grayscale(1) !important; opacity: 0.85 !important; }
.tp-ev-card--past { border-color: var(--tp-border) !important; }
.tp-ev-card--past:hover { border-color: var(--tp-text-muted) !important; }
.tp-ev-chip-ended {
  position: absolute !important; top: 14px !important; right: 14px !important;
  display: inline-block !important; font-family: 'Inter', sans-serif !important;
  font-size: 10px !important; font-weight: 800 !important;
  text-transform: uppercase !important; letter-spacing: 0.08em !important;
  padding: 4px 10px !important; border-radius: 50px !important;
  line-height: 1.2 !important; white-space: nowrap !important;
  background: var(--tp-text-soft) !important; color: var(--tp-cream) !important;
}

/* ---------- Listing footer link row ---------- */
.tp-ev-listing-foot {
  text-align: center !important; padding: 36px 20px 64px !important;
  background: var(--tp-cream) !important;
}

/* ============================================================================
   4. SINGLE EVENT PAGE
   Hero = md-hero recipe (dark photo band + wave divider); body = md-main-row
   two-col with sticky md-sidebar-card. Only event-specific extras are new.
   ============================================================================ */
.tp-ev-single { position: relative !important; }
/* HERO: uses the .md-hero / .md-hero-name / .md-hero-province / .md-shape-divider
   recipe from md-profile.css COMPLETELY UNCHANGED — identical to the
   single-location page (same route hero image, same 3-layer wave, same
   #F8F4EB fill, same 28px uppercase province pin). No tp-ev hero styles. */

/* Type/satellite pills row at the top of the body (was in the old custom hero) */
.tp-ev-single-pills {
  display: flex !important; gap: 10px !important; flex-wrap: wrap !important;
  margin-bottom: 18px !important;
}
.tp-ev-single-pills .tp-ev-edge-badge { position: static !important; }
.tp-ev-single-pills > .tp-ev-tag,
.tp-ev-single-pills > .tp-ev-edge-badge,
.tp-ev-single-pills > .tp-ev-status {
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  align-self: auto !important; box-sizing: border-box !important; min-height: 28px !important;
  margin-left: 0 !important; padding-top: 0 !important; padding-bottom: 0 !important;
  line-height: 1 !important;
}

.tp-ev-main-inner {
  max-width: 1200px !important; margin: 0 auto !important;
  display: flex !important; flex-direction: row !important;
  align-items: flex-start !important; padding: 24px 30px 56px !important;
}
.tp-ev-main-left { width: 64% !important; padding: 25px 10px 25px 40px !important; }
.tp-ev-main-right { width: 36% !important; padding-left: 28px !important; }

.tp-ev-lead {
  font-family: 'Lora', serif !important; font-size: 20px !important;
  line-height: 1.7 !important; color: var(--tp-green) !important;
  margin: 0 0 24px !important;
}
.tp-ev-body-heading {
  font-family: 'Lora', serif !important; font-size: 22px !important;
  font-weight: 600 !important; letter-spacing: -0.5px !important;
  color: var(--tp-green) !important; margin: 30px 0 14px !important;
}
.tp-ev-body-copy, .tp-ev-body-copy p {
  font-family: 'Inter', sans-serif !important; font-size: 15.5px !important;
  font-weight: 300 !important; line-height: 1.7 !important; color: #3a4237 !important;
  margin: 0 0 14px !important;
}
.tp-ev-body-copy ul { margin: 0 0 14px 20px !important; padding: 0 !important; }
.tp-ev-body-copy li {
  font-family: 'Inter', sans-serif !important; font-size: 15.5px !important;
  font-weight: 300 !important; line-height: 1.7 !important; color: #3a4237 !important;
  margin-bottom: 6px !important; list-style: none !important; position: relative !important;
  padding-left: 18px !important;
}
.tp-ev-body-copy li::before {
  content: "" !important; position: absolute !important; left: 0 !important; top: 11px !important;
  width: 7px !important; height: 7px !important; border-radius: 50% !important;
  background: var(--tp-gold) !important;
}

/* ---------- Sidebar meta card (md-sidebar-card recipe + kv rows) ---------- */
.tp-ev-sidebar-card {
  background: #fff !important; border-radius: 14px !important;
  border-top: 5px solid var(--tp-ev-signal) !important;
  box-shadow: 0 4px 10px rgba(58, 90, 64, 0.06) !important;
  padding: 28px 26px 26px !important;
  position: sticky !important; top: 20px !important;
}
.tp-ev-key {
  font-family: 'Inter', sans-serif !important; font-size: 11px !important;
  font-weight: 700 !important; text-transform: uppercase !important;
  letter-spacing: 0.12em !important; color: var(--tp-gold-ink) !important;
  margin: 16px 0 3px !important;
}
.tp-ev-key:first-child { margin-top: 0 !important; }
.tp-ev-val {
  font-family: 'Inter', sans-serif !important; font-size: 15px !important;
  font-weight: 500 !important; color: var(--tp-deep) !important;
  line-height: 1.5 !important;
}
.tp-ev-val a { color: var(--tp-green) !important; text-decoration: underline !important; text-underline-offset: 2px !important; }
.tp-ev-val a:hover { color: var(--tp-gold-ink) !important; }
.tp-ev-sidebar-cta { margin-top: 22px !important; }
/* box-sizing guard: .tp-btn--block is width:100% + 38px padding and relies on
   the theme's global border-box reset, which standalone previews (and any
   context without it) don't have — without this the Register button overflows
   the sidebar card. Cheap to ship in the plugin CSS as a defensive rule. */
.tp-ev-sidebar-cta .tp-btn { box-sizing: border-box !important; }

/* ---------- Google Maps embed (Event Location section) ---------- */
.tp-ev-map {
  margin: 16px 0 8px !important; border: 1px solid var(--tp-border) !important;
  border-radius: 12px !important; overflow: hidden !important;
  box-shadow: 0 4px 10px rgba(58, 90, 64, 0.06) !important;
}
.tp-ev-map iframe {
  display: block !important; width: 100% !important; height: 280px !important;
  border: 0 !important;
}
.tp-ev-map-link {
  display: inline-flex !important; align-items: center !important; gap: 6px !important;
  font-family: 'Inter', sans-serif !important; font-size: 13px !important;
  font-weight: 700 !important; text-transform: uppercase !important;
  letter-spacing: 0.08em !important; color: var(--tp-gold-ink) !important;
  text-decoration: none !important; margin: 4px 0 8px !important;
}
.tp-ev-map-link:hover { color: var(--tp-green) !important; }
.tp-ev-map-link svg { width: 14px !important; height: 14px !important; }
.tp-ev-map--sidebar { margin: 16px 0 4px !important; }
.tp-ev-map--sidebar iframe { height: 200px !important; }

/* ---------- Gallery static mode ----------
   Companion CSS for the [STATIC-MODE] fix in md-gallery-slider-patched.js.
   PRODUCTION DESTINATION: md-profile.css (next to the .md-gallery rules),
   NOT tp-events-directory.css — it fixes every directory gallery with
   fewer images than fit the viewport, not just events. */
.md-gallery--static .md-gallery-clone,
.md-gallery--static .md-gallery-nav,
.md-gallery--static .md-gallery-dots { display: none !important; }

/* ---------- Occurrence dates list ---------- */
.tp-ev-dates { margin: 26px 0 8px !important; }
.tp-ev-date-row {
  display: flex !important; align-items: center !important; gap: 16px !important;
  background: #fff !important; border: 1px solid var(--tp-border) !important;
  border-radius: 12px !important; padding: 14px 18px !important;
  margin-bottom: 10px !important;
}
.tp-ev-date-row.is-next {
  border-color: var(--tp-gold) !important;
  box-shadow: 0 6px 18px rgba(197, 160, 101, 0.22) !important;
}
.tp-ev-date-block {
  flex: 0 0 64px !important; text-align: center !important;
  border-right: 1px solid var(--tp-border) !important; padding-right: 14px !important;
}
.tp-ev-date-day {
  display: block !important; font-family: 'Lora', serif !important;
  font-size: 30px !important; font-weight: 700 !important;
  color: var(--tp-green) !important; line-height: 1 !important;
}
.tp-ev-date-mon {
  display: block !important; font-family: 'Inter', sans-serif !important;
  font-size: 10px !important; font-weight: 800 !important;
  text-transform: uppercase !important; letter-spacing: 0.12em !important;
  color: var(--tp-gold-ink) !important; margin-top: 4px !important;
}
.tp-ev-date-info { min-width: 0 !important; }
.tp-ev-date-range {
  font-family: 'Inter', sans-serif !important; font-size: 14.5px !important;
  font-weight: 600 !important; color: var(--tp-deep) !important;
}
.tp-ev-date-note {
  font-family: 'Inter', sans-serif !important; font-size: 12.5px !important;
  font-weight: 400 !important; color: var(--tp-text-soft) !important;
}
.tp-ev-date-next-flag {
  margin-left: auto !important; flex-shrink: 0 !important;
  font-family: 'Inter', sans-serif !important; font-size: 10px !important;
  font-weight: 800 !important; text-transform: uppercase !important;
  letter-spacing: 0.1em !important; color: var(--tp-deep) !important;
  background: var(--tp-cta-bg) !important; border-radius: 50px !important;
  padding: 5px 12px !important;
}

/* ============================================================================
   5. HOMEPAGE "WHAT'S ON" TEASER (new section BELOW the IPC16 spotlight)
   3-up grid on the blog-teaser rhythm; cards are a compact event card.
   ============================================================================ */
.tp-ev-home-section {
  max-width: 1200px !important; margin: 0 auto !important;
  padding: 72px 40px !important;
}
.tp-ev-home-head { text-align: center !important; margin-bottom: 44px !important; }
/* (Legacy .tp-ev-home-grid / .tp-ev-home-card-* family removed 2026-07-15 —
   superseded by the canonical .tp-ev-card. The homepage teaser now renders
   .tp-ev-card inside .tp-ev-home-live-grid.) */
.tp-ev-home-cta-wrap { text-align: center !important; }

/* ============================================================================
   5a. DISTINCTIVE EVENT FEATURES (round 4 — "events must not look like
   directory profiles"). All destined for tp-events-directory.css.
   ============================================================================ */

/* ---------- Calendar date icon (app-icon style) ----------
   Classic red bar = the universal "calendar" signal; used ONLY on event
   surfaces. Muted brick red tuned to sit with the green/gold palette. */
.tp-ev-cal--lg { width: 84px !important; border-radius: 14px !important; }
.tp-ev-cal--lg .tp-ev-cal-mon { font-size: 12px !important; padding: 5px 2px !important; }
.tp-ev-cal--lg .tp-ev-cal-day { font-size: 30px !important; padding: 8px 2px 9px !important; }
/* overlay variant for homepage teaser / related cards (bottom-left of image) */
.tp-ev-cal--overlay {
  position: absolute !important; bottom: 10px !important; left: 10px !important;
  width: 50px !important; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3) !important;
}
.tp-ev-cal--overlay .tp-ev-cal-day { font-size: 16px !important; padding: 4px 2px 5px !important; }
/* past events: mute the red */
.tp-ev-card--past .tp-ev-cal-mon { background: var(--tp-text-soft) !important; }
.tp-ev-card--past .tp-ev-cal-day { color: var(--tp-text-soft) !important; }

/* ---------- Countdown / status chips (populated client-side) ---------- */
.tp-ev-status {
  display: inline-block !important; font-family: 'Inter', sans-serif !important;
  font-size: 10px !important; font-weight: 800 !important;
  text-transform: uppercase !important; letter-spacing: 0.08em !important;
  padding: 4px 10px !important; border-radius: 50px !important;
  line-height: 1.2 !important; white-space: nowrap !important;
}
.tp-ev-status--count { background: var(--tp-gold-bright) !important; color: var(--tp-deep) !important; }
.tp-ev-status--soon { background: var(--tp-ev-signal) !important; color: #FFF7F0 !important; }
.tp-ev-status--ongoing { background: var(--tp-green) !important; color: var(--tp-cream) !important; }
.tp-ev-status--ended { background: var(--tp-text-soft) !important; color: var(--tp-cream) !important; }
.tp-ev-status--state { background: var(--tp-deep) !important; color: var(--tp-cream) !important; }
.tp-ev-status--cancelled,
.tp-ev-status--postponed,
.tp-ev-status--sold-out { background: var(--tp-ev-signal) !important; color: #FFF7F0 !important; }
.tp-ev-status--not-yet-open,
.tp-ev-status--not-required,
.tp-ev-status--rescheduled { background: var(--tp-gold-bright) !important; color: var(--tp-deep) !important; }

/* ---------- Quick-facts icon strip (single pages, under the hero) ---------- */
.tp-ev-facts {
  display: flex !important; flex-wrap: wrap !important; justify-content: center !important;
  gap: 10px 28px !important; max-width: 1140px !important;
  margin: 0 auto !important; padding: 18px 20px 6px !important;
}
.tp-ev-facts-item {
  display: inline-flex !important; align-items: center !important; gap: 8px !important;
  font-family: 'Inter', sans-serif !important; font-size: 13px !important;
  font-weight: 600 !important; color: var(--tp-green) !important;
  text-transform: uppercase !important; letter-spacing: 0.06em !important;
}
.tp-ev-facts-item svg {
  width: 17px !important; height: 17px !important; flex: 0 0 auto !important;
  color: var(--tp-gold-ink) !important;
}

/* ---------- Share row (Line first — Thailand) ---------- */
.tp-ev-share {
  display: flex !important; align-items: center !important; gap: 8px !important;
  margin: 4px 0 22px !important;
}
.tp-ev-share-label {
  font-family: 'Inter', sans-serif !important; font-size: 11px !important;
  font-weight: 700 !important; text-transform: uppercase !important;
  letter-spacing: 0.1em !important; color: var(--tp-text-soft) !important;
  margin-right: 4px !important;
}
.tp-ev-share-btn {
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  width: 36px !important; height: 36px !important; border-radius: 50% !important;
  background: var(--tp-white) !important; border: 1px solid var(--tp-border) !important;
  color: var(--tp-green) !important; cursor: pointer !important;
  transition: all 0.25s ease !important; text-decoration: none !important;
  padding: 0 !important;
}
.tp-ev-share-btn svg { width: 17px !important; height: 17px !important; }
.tp-ev-share-btn:hover { transform: translateY(-2px) !important; border-color: var(--tp-gold) !important; color: var(--tp-gold-ink) !important; }
.tp-ev-share-btn.is-copied { background: var(--tp-green) !important; color: var(--tp-cream) !important; border-color: var(--tp-green) !important; }

/* ---------- Sticky mobile register bar ---------- */
.tp-ev-stickybar {
  display: none !important;
  position: fixed !important; left: 0 !important; right: 0 !important; bottom: 0 !important;
  z-index: 90 !important; align-items: center !important; justify-content: space-between !important;
  gap: 12px !important; padding: 10px 16px !important;
  padding-bottom: calc(10px + env(safe-area-inset-bottom)) !important;
  background: var(--tp-white) !important;
  border-top: 1px solid var(--tp-border) !important;
  box-shadow: 0 -6px 18px rgba(45, 58, 38, 0.14) !important;
}
.tp-ev-stickybar-price {
  font-family: 'Inter', sans-serif !important; font-size: 16px !important;
  font-weight: 800 !important; color: var(--tp-green) !important;
  line-height: 1.2 !important;
}
.tp-ev-stickybar-price small {
  display: block !important; font-size: 10px !important; font-weight: 600 !important;
  color: var(--tp-text-soft) !important; text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
}
@media (max-width: 767px) {
  .tp-ev-stickybar { display: flex !important; }
  .tp-ev-single .tp-ev-main { padding-bottom: 74px !important; }
}

/* ============================================================================
   5b. PDC LANDING — evergreen copy band + FAQ accordion (CSS-only,
   native <details>/<summary>). Also used by the /courses/ front door.
   ============================================================================ */
.tp-ev-prose {
  max-width: 760px !important; margin: 0 auto !important;
  padding: 8px 20px 24px !important;
}
.tp-ev-prose h2 {
  font-family: 'Lora', serif !important; font-size: 26px !important;
  font-weight: 600 !important; color: var(--tp-green) !important;
  letter-spacing: -0.5px !important; margin: 34px 0 14px !important;
  text-align: center !important;
}
.tp-ev-prose p {
  font-family: 'Inter', sans-serif !important; font-size: 15.5px !important;
  font-weight: 300 !important; line-height: 1.75 !important;
  color: #3a4237 !important; margin: 0 0 14px !important;
}
.tp-ev-faq {
  background: var(--tp-white) !important; border: 1px solid var(--tp-border) !important;
  border-radius: 12px !important; margin: 0 0 10px !important;
  overflow: hidden !important;
}
.tp-ev-faq summary {
  list-style: none !important; cursor: pointer !important;
  display: flex !important; align-items: center !important;
  justify-content: space-between !important; gap: 12px !important;
  padding: 16px 18px !important;
  font-family: 'Inter', sans-serif !important; font-size: 15px !important;
  font-weight: 600 !important; color: var(--tp-green) !important;
}
.tp-ev-faq summary::-webkit-details-marker { display: none !important; }
.tp-ev-faq summary::after {
  content: "+" !important; font-family: 'Lora', serif !important;
  font-size: 22px !important; color: var(--tp-gold-ink) !important;
  line-height: 1 !important; flex-shrink: 0 !important;
}
.tp-ev-faq[open] summary::after { content: "\2212" !important; }
.tp-ev-faq[open] summary { border-bottom: 1px solid var(--tp-border) !important; }
.tp-ev-faq-a {
  padding: 14px 18px 16px !important;
  font-family: 'Inter', sans-serif !important; font-size: 14.5px !important;
  font-weight: 300 !important; line-height: 1.7 !important; color: #3a4237 !important;
}
.tp-ev-faq-a p { margin: 0 0 10px !important; }

/* ============================================================================
   6. MOBILE
   ============================================================================ */
@media (max-width: 900px) {
  .tp-ev-main-inner { flex-direction: column !important; padding: 10px 20px 40px !important; }
  .tp-ev-main-left, .tp-ev-main-right { width: 100% !important; padding: 20px 0 !important; }
  .tp-ev-sidebar-card { position: static !important; }
}
@media (max-width: 600px) {
  .tp-ev-hero-inner { padding: 84px 20px 32px !important; }
  .tp-ev-home-section { padding: 44px 20px !important; }
}

/* ============================================================================
   7. PROGRAMME REDESIGN — events are a live layer, not another directory
   ---------------------------------------------------------------------------
   Shared DNA remains: Lora, Inter, forest green, cream, gold and botanical
   artwork. The earth-red accent is reserved for time and programme signals.
   ============================================================================ */
:root { --tp-ev-signal: #9D4434; --tp-ev-signal-dark: #783126; }

/* The date is now a printed-programme marker rather than an app-calendar icon. */
.tp-ev-cal {
  display: inline-flex !important; flex-direction: column !important;
  width: 78px !important; flex-shrink: 0 !important;
  border: 0 !important; border-radius: 0 !important;
  overflow: hidden !important; text-align: center !important;
  box-shadow: 7px 7px 0 rgba(45, 58, 38, 0.12) !important;
  background: var(--tp-cream) !important; position: relative !important;
}
.tp-ev-cal::after {
  content: "" !important; position: absolute !important; left: 0 !important; right: 0 !important;
  bottom: 0 !important; height: 4px !important; background: var(--tp-gold) !important;
}
.tp-ev-cal-mon {
  display: block !important; background: var(--tp-ev-signal) !important;
  color: var(--tp-cream) !important; font-family: 'Inter', sans-serif !important;
  font-size: 10px !important; font-weight: 800 !important;
  text-transform: uppercase !important; letter-spacing: 0.18em !important;
  padding: 7px 4px !important; line-height: 1.2 !important;
}
.tp-ev-cal-day {
  display: block !important; color: var(--tp-deep) !important; background: var(--tp-cream) !important;
  font-family: 'Lora', serif !important; font-size: 24px !important; font-weight: 800 !important;
  letter-spacing: -0.08em !important; padding: 8px 4px 10px !important; line-height: 1.1 !important;
}
.tp-ev-cal--lg { width: 116px !important; }
.tp-ev-cal--lg .tp-ev-cal-mon { font-size: 12px !important; padding: 9px 5px !important; }
.tp-ev-cal--lg .tp-ev-cal-day { font-size: 42px !important; padding: 10px 5px 14px !important; }
.tp-ev-cal--overlay { width: 70px !important; bottom: -13px !important; left: 18px !important; }
.tp-ev-cal--overlay .tp-ev-cal-day { font-size: 21px !important; padding: 6px 3px 8px !important; }

/* The events hero becomes a programme masthead rather than a generic page intro. */
.tp-ev-hero--programme {
  overflow: hidden !important;
  background:
    radial-gradient(circle at 8% 28%, rgba(197,160,101,.22) 0 1px, transparent 1.5px) 0 0 / 19px 19px,
    linear-gradient(115deg, var(--tp-deep) 0%, #35563c 57%, #56704b 100%) !important;
}
.tp-ev-hero--programme::before {
  content: "" !important; position: absolute !important; inset: 0 !important; opacity: .2 !important;
  background-image: url('https://thaipermaculture.org/wp-content/uploads/2025/12/Permaculture-locations-in-Thailand-hero.jpg.webp') !important;
  background-size: cover !important; background-position: center !important; mix-blend-mode: luminosity !important;
}
.tp-ev-hero--programme .tp-ev-hero-inner { position: relative !important; z-index: 1 !important; padding: 74px 40px 48px !important; }
.tp-ev-hero--programme .tp-ev-kicker { color: var(--tp-cta-bg) !important; }
.tp-ev-hero--programme .tp-ev-heading { color: var(--tp-cream) !important; font-size: clamp(38px, 5vw, 60px) !important; }
.tp-ev-hero--programme .tp-ev-divider { border-color: rgba(217,185,133,.72) !important; }
.tp-ev-hero--programme .tp-ev-sub { color: rgba(247,249,244,.86) !important; }
.tp-ev-hero--programme .tp-ev-sub a { color: var(--tp-cta-bg) !important; }
.tp-ev-programme-meta {
  display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 10px 22px !important;
  margin-top: 25px !important; color: var(--tp-cream) !important;
  font-family: 'Inter', sans-serif !important; font-size: 11px !important; font-weight: 800 !important;
  text-transform: uppercase !important; letter-spacing: .13em !important;
}
.tp-ev-programme-meta > span { display: inline-flex !important; align-items: center !important; gap: 8px !important; }
.tp-ev-programme-meta > span::before { content: "" !important; width: 6px !important; height: 6px !important; border-radius: 50% !important; background: var(--tp-cta-bg) !important; }

/* One prominent invitation before the searchable programme. */
.tp-ev-feature-wrap { background: var(--tp-cream) !important; padding: 0 20px 38px !important; }
.tp-ev-feature {
  max-width: 1120px !important; margin: -24px auto 0 !important; position: relative !important; z-index: 3 !important;
  display: grid !important; grid-template-columns: minmax(0, 1.12fr) minmax(340px, .88fr) !important;
  background: var(--tp-white) !important; border: 1px solid rgba(197,160,101,.6) !important;
  box-shadow: 0 18px 45px rgba(45,58,38,.17) !important; text-decoration: none !important;
}
.tp-ev-feature-image { min-height: 370px !important; position: relative !important; overflow: hidden !important; }
.tp-ev-feature-image img { width: 100% !important; height: 100% !important; object-fit: cover !important; display: block !important; }
.tp-ev-feature-image::after { content: "" !important; position: absolute !important; inset: 0 !important; background: linear-gradient(0deg, rgba(45,58,38,.45), transparent 55%) !important; }
.tp-ev-feature-image .tp-ev-cal { position: absolute !important; z-index: 2 !important; bottom: 22px !important; left: 22px !important; width: 112px !important; }
.tp-ev-feature-copy { display: flex !important; flex-direction: column !important; align-items: flex-start !important; padding: 42px 40px 36px !important; }
.tp-ev-feature-copy .tp-ev-tag { margin-bottom: 18px !important; }
.tp-ev-feature-title { font-family: 'Lora', serif !important; font-size: clamp(27px, 3.3vw, 40px) !important; font-weight: 700 !important; line-height: 1.12 !important; color: var(--tp-green) !important; margin: 0 0 16px !important; }
.tp-ev-feature-text { font-family: 'Inter', sans-serif !important; font-size: 15px !important; font-weight: 300 !important; line-height: 1.7 !important; color: var(--tp-text-soft) !important; margin: 0 0 18px !important; }
.tp-ev-feature-details { color: var(--tp-green) !important; font-family: 'Inter', sans-serif !important; font-size: 12px !important; font-weight: 800 !important; line-height: 1.55 !important; text-transform: uppercase !important; letter-spacing: .09em !important; margin-bottom: 22px !important; }
.tp-ev-feature-copy .tp-btn { margin-top: auto !important; }

/* The courses page is a route through learning, not simply a filtered event list. */
.tp-ev-paths { display: grid !important; grid-template-columns: repeat(3,1fr) !important; gap: 1px !important; max-width: 1120px !important; margin: -24px auto 34px !important; position: relative !important; z-index: 3 !important; background: rgba(197,160,101,.55) !important; }
.tp-ev-path { padding: 22px 24px !important; background: var(--tp-white) !important; text-align: left !important; }
.tp-ev-path-label { display: block !important; color: var(--tp-ev-signal) !important; font-family: 'Inter', sans-serif !important; font-size: 10px !important; font-weight: 800 !important; text-transform: uppercase !important; letter-spacing: .14em !important; margin-bottom: 7px !important; }
.tp-ev-path strong { display: block !important; color: var(--tp-green) !important; font-family: 'Lora', serif !important; font-size: 20px !important; line-height: 1.2 !important; }
.tp-ev-path small { display: block !important; color: var(--tp-text-soft) !important; font-family: 'Inter', sans-serif !important; font-size: 12px !important; line-height: 1.5 !important; margin-top: 5px !important; }

/* Homepage live-programme signal. The three soonest events have equal weight;
   urgency is derived only from their dates. Light (cream) field so the section
   lifts off the dark map below it, and the terracotta date panels read as
   red-on-light rather than red-on-green. Interior header colours are set
   dark-on-light just below (heading/kicker/sub) to stay readable on cream. */
.tp-ev-home { background: var(--tp-cream) !important; position: relative !important; overflow: hidden !important; }
.tp-ev-home::before { content: "" !important; position: absolute !important; inset: 0 !important; background: radial-gradient(circle at 10% 15%, rgba(197,160,101,.19) 0 1px, transparent 1.5px) 0 0 / 19px 19px !important; opacity: .35 !important; }
.tp-ev-home .tp-ev-home-section { position: relative !important; z-index: 1 !important; max-width: 1200px !important; padding: 76px 40px !important; }
.tp-ev-home .tp-ev-home-head { text-align: left !important; max-width: none !important; margin-bottom: 30px !important; }
.tp-ev-home .tp-ev-kicker { color: var(--tp-gold-ink) !important; }
/* Heading fits one line on desktop now the head's width cap is lifted; on narrow
   viewports the clamp shrinks it and it wraps naturally (no forced nowrap = no overflow). */
.tp-ev-home .tp-ev-heading { color: var(--tp-deep) !important; font-size: clamp(34px,4.5vw,54px) !important; }
.tp-ev-home .tp-ev-divider { margin-left: 0 !important; border-color: rgba(217,185,133,.8) !important; }
.tp-ev-home .tp-ev-sub { color: var(--tp-text-soft) !important; margin-left: 0 !important; max-width: 620px !important; }
/* Homepage teaser grid — 3-up wrapper around the canonical .tp-ev-card. */
.tp-ev-home-live-grid { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 18px !important; }
/* "IPC16 · Edge Event" badge — marks the satellite ("edge") events of the convergence. */
/* Standard site event-category pill (mirrors .tp-venue-showcase-tag--conference /
   .tp-home-ipc-tag--conf): 50px radius, Conference/gold tint. Kept smaller than the
   price pill so the type-row hierarchy holds (category tag < price). */
.tp-ev-edge-badge { display: inline-block !important; margin-left: 6px !important; padding: 4px 12px !important; border: 1px solid #E8D5A8 !important; border-radius: 50px !important; background: #FDF6EC !important; color: #8B6B2F !important; font-size: 10px !important; font-weight: 700 !important; letter-spacing: .1em !important; line-height: 1.2 !important; text-transform: uppercase !important; vertical-align: middle !important; white-space: nowrap !important; }
/* Location pin before the venue line. Inline SVG uses fill:currentColor. */
.tp-ev-pin { width: 12px !important; height: 12px !important; margin-right: 5px !important; vertical-align: -1px !important; color: var(--tp-ev-signal) !important; opacity: .9 !important; }
.tp-ev-home-cta-wrap { text-align: center !important; margin-top: 32px !important; }
.tp-ev-home-cta-wrap .tp-btn { background: var(--tp-cta-bg) !important; border-color: var(--tp-cta-bg) !important; color: var(--tp-cta-ink) !important; }

/* Detail pages: make the date/action readable while retaining the existing botanical hero. */
.tp-ev-single .md-hero { min-height: 480px !important; }
.tp-ev-single .md-hero-inner { max-width: 1000px !important; padding-bottom: 0 !important; }
.tp-ev-single .md-hero-name { max-width: 850px !important; }
.tp-ev-single-hero-meta { display: flex !important; justify-content: center !important; align-items: center !important; flex-wrap: wrap !important; gap: 14px !important; margin-top: 22px !important; }
.tp-ev-single-hero-meta .tp-ev-cal { width: 102px !important; text-align: center !important; }
.tp-ev-single-hero-meta .tp-btn { box-shadow: 0 10px 24px rgba(0,0,0,.25) !important; }
.tp-ev-main { background: var(--tp-cream) !important; }
.tp-ev-sidebar-cta .tp-btn { border-radius: 0 !important; }
.tp-ev-calendar-actions { display: flex !important; flex-wrap: wrap !important; gap: 10px !important; }

@media (max-width: 900px) {
  .tp-ev-feature { grid-template-columns: 1fr !important; }
  .tp-ev-feature-image { min-height: 300px !important; }
  .tp-ev-home-live-grid { grid-template-columns: 1fr !important; max-width: 620px !important; margin: 0 auto !important; }
  .tp-ev-paths { margin-left: 20px !important; margin-right: 20px !important; }
}
@media (max-width: 650px) {
  .tp-ev-hero--programme .tp-ev-hero-inner { padding: 98px 22px 40px !important; }
  .tp-ev-feature-wrap { padding-left: 16px !important; padding-right: 16px !important; }
  .tp-ev-feature { grid-template-columns: 1fr !important; margin-top: -14px !important; }
  .tp-ev-feature-copy { padding: 28px 22px !important; }
  .tp-ev-feature-image { min-height: 250px !important; }
  .tp-ev-paths { grid-template-columns: 1fr !important; margin: -14px 16px 28px !important; }
  .tp-ev-home .tp-ev-home-section { padding: 54px 20px !important; }
  .tp-ev-card-date { min-height: 116px !important; }
  .tp-ev-card-name { min-height: 0 !important; }
  .tp-ev-single .md-hero { min-height: 540px !important; }
  .tp-ev-single .md-hero-inner { padding-bottom: 0 !important; }
}

/* ------------------------------------------------------------------
   ENDED-EVENT BANNER (templates/single-event.php)
   Shown above the main row when every run of the event has finished.
   Quiet notice in the events language: cream field, terracotta accent
   bar, link steers to the soonest upcoming event. No preview mockup
   existed for this state; styled on-palette at implementation.
   ------------------------------------------------------------------ */
.tp-ev-ended-banner {
  max-width: 1080px; margin: 26px auto 0; padding: 14px 22px;
  background: var(--tp-cream); border: 1px solid #E3E0D3;
  border-left: 5px solid var(--tp-ev-signal); border-radius: 10px;
  font-family: 'Inter', sans-serif; font-size: 14px; color: var(--tp-text-soft);
}
.tp-ev-ended-banner p { margin: 0; }
.tp-ev-ended-banner a {
  color: var(--tp-green); font-weight: 700; text-decoration: none;
  border-bottom: 1px solid var(--tp-gold);
}
.tp-ev-ended-banner a:hover { color: var(--tp-ev-signal); border-bottom-color: var(--tp-ev-signal); }
@media (max-width: 650px) {
  .tp-ev-ended-banner { margin-left: 16px; margin-right: 16px; }
}

/* ------------------------------------------------------------------
   PDC EDITORIAL LANDING PAGE
   Long-form learning hub: portrait quotations, field photography,
   curriculum/checklist lists and an intentionally readable text measure.
   ------------------------------------------------------------------ */
.tp-pdc-hero .tp-ev-hero-inner {
  padding-top: 72px !important;
  padding-bottom: 48px !important;
}
.tp-pdc-listing { padding-top: 36px !important; }
.tp-pdc-listing-head {
  padding: 0 20px 18px !important;
  text-align: center !important;
}
.tp-pdc-listing-head h2 { margin: 0 !important; }

.tp-pdc-body {
  background: var(--tp-cream) !important;
  padding: 22px 20px 88px !important;
}
.tp-pdc-body > .tp-ev-prose {
  max-width: 820px !important;
  padding: 0 !important;
}
.tp-pdc-section {
  padding: 58px 0 0 !important;
  border-top: 1px solid rgba(197, 160, 101, .42) !important;
  margin-top: 58px !important;
}
.tp-pdc-section:first-child {
  padding-top: 0 !important;
  border-top: 0 !important;
  margin-top: 0 !important;
}
.tp-pdc-body .tp-pdc-section > h2 {
  max-width: 720px !important;
  margin: 0 0 24px !important;
  text-align: left !important;
  font-size: clamp(27px, 3.6vw, 38px) !important;
  line-height: 1.18 !important;
}
.tp-pdc-body .tp-pdc-section > h3 {
  margin: 30px 0 10px !important;
  color: var(--tp-green) !important;
  font-family: 'Lora', serif !important;
  font-size: clamp(20px, 2.4vw, 25px) !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
}
.tp-pdc-body .tp-pdc-section > p {
  font-size: 17px !important;
  line-height: 1.82 !important;
  margin-bottom: 19px !important;
}
.tp-pdc-body .tp-pdc-section > p strong,
.tp-pdc-list strong {
  color: var(--tp-deep) !important;
  font-weight: 700 !important;
}
.tp-pdc-body cite { font-style: italic !important; }

.tp-pdc-quote {
  display: grid !important;
  grid-template-columns: 148px minmax(0, 1fr) !important;
  gap: 26px !important;
  align-items: center !important;
  margin: 34px 0 38px !important;
  padding: 28px 32px 28px 24px !important;
  background: var(--tp-deep) !important;
  border-left: 6px solid var(--tp-gold) !important;
  box-shadow: 12px 14px 0 rgba(157, 68, 52, .14) !important;
}
.tp-pdc-quote--reverse { background: var(--tp-green) !important; }
.tp-pdc-quote-portrait {
  display: block !important;
  width: 148px !important;
  height: 148px !important;
  object-fit: cover !important;
  border: 4px solid rgba(247, 249, 244, .9) !important;
  border-radius: 50% !important;
  filter: saturate(.88) contrast(1.03) !important;
}
.tp-pdc-quote-copy p {
  margin: 0 0 14px !important;
  color: var(--tp-cream) !important;
  font-family: 'Lora', serif !important;
  font-size: clamp(19px, 2.4vw, 25px) !important;
  font-style: italic !important;
  font-weight: 500 !important;
  line-height: 1.48 !important;
}
.tp-pdc-quote-copy footer {
  color: rgba(247, 249, 244, .75) !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 12px !important;
  font-style: normal !important;
  font-weight: 600 !important;
  letter-spacing: .03em !important;
  line-height: 1.5 !important;
}
.tp-pdc-quote-copy cite { color: var(--tp-cream) !important; }

.tp-pdc-figure {
  margin: 38px 0 42px !important;
  background: var(--tp-white) !important;
  border: 1px solid var(--tp-border) !important;
  box-shadow: 0 14px 34px rgba(45, 58, 38, .12) !important;
  overflow: hidden !important;
}
.tp-pdc-figure img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-height: 520px !important;
  object-fit: cover !important;
}
.tp-pdc-figure figcaption {
  padding: 14px 18px 16px !important;
  color: var(--tp-text-soft) !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 13px !important;
  line-height: 1.6 !important;
  text-align: left !important;
}
.tp-pdc-figure figcaption strong {
  color: var(--tp-green) !important;
  font-weight: 700 !important;
}

.tp-pdc-list {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px !important;
  margin: 24px 0 34px !important;
  padding: 0 !important;
  list-style: none !important;
}
.tp-pdc-list li {
  position: relative !important;
  margin: 0 !important;
  padding: 16px 17px 16px 48px !important;
  background: var(--tp-white) !important;
  border: 1px solid var(--tp-border) !important;
  color: #3a4237 !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
}
.tp-pdc-list li::before {
  position: absolute !important;
  left: 16px !important;
  top: 16px !important;
  display: grid !important;
  place-items: center !important;
  width: 22px !important;
  height: 22px !important;
  border-radius: 50% !important;
  background: rgba(157, 68, 52, .1) !important;
  color: var(--tp-ev-signal) !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 11px !important;
  font-weight: 800 !important;
}
.tp-pdc-list--curriculum { counter-reset: pdc-topic !important; }
.tp-pdc-list--curriculum li { counter-increment: pdc-topic !important; }
.tp-pdc-list--curriculum li::before { content: counter(pdc-topic) !important; }
.tp-pdc-list--checklist { grid-template-columns: 1fr !important; }
.tp-pdc-list--checklist li::before {
  content: "\2713" !important;
  background: var(--tp-green) !important;
  color: var(--tp-cream) !important;
}
.tp-pdc-closing-note {
  padding: 17px 20px !important;
  background: rgba(197, 160, 101, .12) !important;
  border-left: 4px solid var(--tp-gold) !important;
  color: var(--tp-green) !important;
  font-weight: 600 !important;
}
.tp-pdc-faq { max-width: 760px !important; }

@media (max-width: 700px) {
  .tp-pdc-body { padding: 8px 18px 64px !important; }
  .tp-pdc-section { padding-top: 42px !important; margin-top: 42px !important; }
  .tp-pdc-body .tp-pdc-section > p { font-size: 16px !important; line-height: 1.75 !important; }
  .tp-pdc-quote {
    grid-template-columns: 74px minmax(0, 1fr) !important;
    gap: 17px !important;
    padding: 22px 20px !important;
    box-shadow: 7px 9px 0 rgba(157, 68, 52, .14) !important;
  }
  .tp-pdc-quote-portrait { width: 74px !important; height: 74px !important; border-width: 3px !important; }
  .tp-pdc-quote-copy p { font-size: 18px !important; }
  .tp-pdc-list { grid-template-columns: 1fr !important; }
  .tp-pdc-figure { margin: 28px 0 32px !important; }
}
