/*
 * TEDA blocks — presentation for the P08 blocks (D2: markup ships in teda-core,
 * styling lives here). Everything consumes --teda-* / --theme-* tokens; no colour,
 * size or font is hardcoded (house rule 3). Explicit dimensions everywhere so the
 * blocks add no layout shift.
 */

/* --- Shared: constrained inner, eyebrow, buttons, empty state ------------- */
.teda-hero__shell,
.teda-hero-page__inner,
.teda-stat-band__row,
.teda-stat-band__note,
.teda-stat-band__qualitative,
.teda-focus-grid__head,
.teda-focus-grid__grid,
.teda-cta-band__inner,
.teda-triptych {
	max-width: var(--theme-content-width, 1200px);
	margin-inline: auto;
	padding-inline: var(--teda-gutter, 24px);
}

.teda-eyebrow {
	font-family: var(--teda-font-heading);
	font-weight: 800;
	font-size: 0.78rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	display: inline-flex;
	align-items: center;
	gap: 10px;
}
.teda-eyebrow::before {
	content: "";
	width: 28px;
	height: 3px;
	background: currentColor;
	display: block;
}

.teda-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: var(--teda-tap);
	padding: 0 1.3em;
	border-radius: var(--teda-radius);
	font-family: var(--teda-font-heading);
	font-weight: 800;
	line-height: 1.1;
	text-decoration: none;
	border: 2px solid transparent;
}
.teda-btn--lg { min-height: calc(var(--teda-tap) + 8px); padding: 0 1.6em; font-size: 1.02rem; }
.teda-btn--white { background: var(--teda-white); color: var(--teda-brown); }
.teda-btn--white:hover, .teda-btn--white:focus { background: var(--teda-sand); color: var(--teda-brown); }
.teda-btn--brown { background: var(--teda-brown); color: var(--teda-white); }
.teda-btn--brown:hover, .teda-btn--brown:focus { background: var(--teda-brown-deep); color: var(--teda-white); }
.teda-btn--ghost { background: transparent; color: var(--teda-white); border-color: currentColor; }
.teda-btn--ghost-b { background: transparent; color: var(--teda-brown); border-color: currentColor; }

.teda-empty {
	border: 2px dashed var(--teda-sand-deep);
	border-radius: var(--teda-radius);
	padding: 52px 30px;
	text-align: center;
	background: var(--teda-white);
}
.teda-empty h3 { color: var(--teda-brown); margin-bottom: 10px; }
.teda-empty p { color: var(--teda-muted); max-width: 44ch; margin-inline: auto; }

/* --- Hero (teda/hero) ----------------------------------------------------- */
.teda-hero__slider {
	position: relative;
	min-height: min(660px, 86vh);
	background: var(--teda-brown-deep);
	overflow: hidden;
	display: block;
}
.teda-hero__slide {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: flex-end;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.5s ease;
}
.teda-hero__slide.is-on { opacity: 1; visibility: visible; position: relative; width: 100%; flex: 1 1 100%; }
@media (prefers-reduced-motion: reduce) { .teda-hero__slide { transition: none; } }
.teda-hero__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 32%; }
/* Brown scrim: legibility for display type without hiding the photo (SPEC §3.3). */
.teda-hero__slide::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(30, 10, 0, 0.72) 0%, rgba(30, 10, 0, 0.34) 55%, rgba(30, 10, 0, 0.12) 100%);
}
.teda-hero__shell { position: relative; z-index: 1; width: 100%; padding-top: 96px; padding-bottom: 120px; }
.teda-hero__eyebrow { color: var(--teda-white); margin-bottom: 22px; text-shadow: 0 2px 10px rgba(30, 10, 0, 0.85); }
.teda-hero .teda-hero__title {
	color: var(--teda-white);
	font-size: var(--teda-fs-h1);
	max-width: 16ch;
	margin-bottom: 20px;
	text-shadow: 0 3px 18px rgba(30, 10, 0, 0.9), 0 1px 3px rgba(30, 10, 0, 0.9);
}
.teda-hero__body {
	color: var(--teda-white);
	font-size: var(--teda-fs-body);
	max-width: 52ch;
	margin-bottom: 32px;
	text-shadow: 0 2px 12px rgba(30, 10, 0, 0.95);
}
.teda-hero__acts { display: flex; gap: 14px; flex-wrap: wrap; }
.teda-hero__ctl { position: absolute; inset: auto 0 26px 0; z-index: 2; }
.teda-hero__ctl-inner {
	max-width: var(--theme-content-width, 1200px);
	margin-inline: auto;
	padding-inline: var(--teda-gutter, 24px);
	display: flex;
	align-items: center;
	gap: 6px;
}
.teda-hero__nav {
	width: var(--teda-tap); height: var(--teda-tap);
	display: grid; place-items: center;
	background: rgba(255, 255, 255, 0.14); color: var(--teda-white);
	border: 0; border-radius: var(--teda-radius); cursor: pointer;
}
.teda-hero__nav:hover, .teda-hero__nav:focus { background: rgba(255, 255, 255, 0.28); }
.teda-hero__dots { display: flex; gap: 4px; margin-left: 6px; }
.teda-hero__dot {
	width: var(--teda-tap); height: var(--teda-tap);
	border: 0; background: transparent; cursor: pointer;
	display: grid; place-items: center; padding: 0;
}
.teda-hero__dot i { display: block; width: 34px; height: 4px; background: rgba(255, 255, 255, 0.45); }
.teda-hero__dot[aria-selected="true"] i { background: var(--teda-white); }
@media (max-width: 720px) { .teda-hero__shell { padding-bottom: 150px; } }

/* --- Page hero (teda/hero-page) ------------------------------------------- */
.teda-hero-page { background: var(--teda-brown); color: var(--teda-white); }
.teda-hero-page--blue { background: var(--teda-blue); }
.teda-hero-page__inner { padding-top: 64px; padding-bottom: 64px; }
.teda-hero-page__crumb { font-size: 0.85rem; margin-bottom: 14px; }
/* Force white on the brown hero, overriding Blocksy's dark breadcrumb colour on
   the current-page span + links (WCAG 1.4.3 — dark ink on brown was 1.42:1). */
.teda-hero-page .teda-hero-page__crumb,
.teda-hero-page__crumb a,
.teda-hero-page__crumb span,
.teda-hero-page__crumb [itemprop="name"] { color: var(--teda-white); }
.teda-hero-page__crumb a { opacity: 0.85; }
.teda-hero-page .teda-hero-page__title { color: var(--teda-white); font-size: var(--teda-fs-h1); margin-bottom: 14px; }
.teda-hero-page__lead { color: var(--teda-white); max-width: 60ch; font-size: 1.1rem; opacity: 0.92; }

/* --- Stat band (teda/stat-band) ------------------------------------------- */
.teda-stat-band { background: var(--teda-brown); color: var(--teda-white); padding-block: 40px 22px; }
.teda-stat-band__row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; }
.teda-stat { text-align: center; padding: 8px 12px; border-left: 2px solid rgba(255, 255, 255, 0.16); }
.teda-stat:first-child { border-left: 0; }
.teda-stat__value {
	font-family: var(--teda-font-display);
	font-size: var(--teda-fs-h3);
	font-variant-numeric: tabular-nums;
	display: block; line-height: 1; color: var(--teda-white);
}
.teda-stat__label {
	font-size: 0.8rem; letter-spacing: 0.13em; text-transform: uppercase;
	font-weight: 700; display: block; margin-top: 8px;
	color: color-mix(in srgb, var(--teda-white) 82%, var(--teda-brown));
}
.teda-stat-band__note, .teda-stat-band__qualitative { text-align: center; }
.teda-stat-band__note { font-size: 0.78rem; margin-top: 18px; color: color-mix(in srgb, var(--teda-white) 68%, var(--teda-brown)); }
.teda-stat-band__qualitative { font-family: var(--teda-font-heading); font-weight: 800; font-size: 1.35rem; padding-block: 14px; }
@media (max-width: 700px) {
	.teda-stat-band__row { grid-template-columns: repeat(2, 1fr); gap: 18px 4px; }
	.teda-stat { border-left: 0; }
}

/* --- Focus grid (teda/focus-grid) ----------------------------------------- */
.teda-focus-grid__head { text-align: left; margin-bottom: 26px; }
.teda-focus-grid__head .teda-display { color: var(--teda-brown); margin: 10px 0; }
.teda-focus-grid__intro { color: var(--teda-muted); max-width: 60ch; }
.teda-focus-grid__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.teda-focus-card {
	/* --accent: var(--teda-brown); */
	position: relative; overflow: hidden;
	background: var(--teda-white); color: var(--teda-ink);
	border: 2px solid var(--teda-sand-deep); border-radius: var(--teda-radius);
	padding: 30px 26px 26px; text-decoration: none;
	transition: transform 0.18s ease, border-color 0.18s ease;
}
/* .teda-focus-card--blue { --accent: var(--teda-blue); }
.teda-focus-card--green { --accent: var(--teda-green); } */
.teda-focus-card:hover, .teda-focus-card:focus-within { border-color: var(--accent); transform: translateY(-3px); }
.teda-focus-card__bar { position: absolute; top: 0; left: 0; width: 100%; height: 6px; background: var(--accent); }
.teda-focus-card__icon {
	width: 52px; height: 52px; border-radius: var(--teda-radius);
	display: grid; place-items: center; margin-bottom: 18px;
	color: var(--accent); background: color-mix(in srgb, var(--accent) 12%, var(--teda-white));
}
.teda-focus-card__title { color: var(--teda-brown); margin-bottom: 10px; }
.teda-focus-card__summary { color: var(--teda-muted); font-size: 0.97rem; margin-bottom: 16px; }
.teda-focus-card__more { font-family: var(--teda-font-heading); font-weight: 800; font-size: 0.82rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent); }
@media (max-width: 900px) { .teda-focus-grid__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .teda-focus-grid__grid { grid-template-columns: 1fr; } }

/* --- CTA band (teda/cta-band) --------------------------------------------- */
.teda-cta-band { background: var(--teda-brown); color: var(--teda-white); }
.teda-cta-band--blue { background: var(--teda-blue); }
.teda-cta-band--sand { background: var(--teda-sand); color: var(--teda-ink); }
.teda-cta-band__inner { text-align: center; padding-block: 76px; }
.teda-cta-band .teda-cta-band__title { color: inherit; font-size: var(--teda-fs-h3); margin-bottom: 16px; max-width: 20ch; margin-inline: auto; }
.teda-cta-band--sand .teda-cta-band__title { color: var(--teda-brown); }
.teda-cta-band__body { max-width: 58ch; margin: 0 auto 30px; font-size: 1.08rem; opacity: 0.92; }
.teda-cta-band__acts { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }

/* --- Vision/Mission/Promise triptych (pattern) ---------------------------- */
.teda-triptych {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 0;
	border: 2px solid var(--teda-brown); border-radius: var(--teda-radius); overflow: hidden;
}
.teda-triptych > .wp-block-column,
.teda-triptych > * { padding: 30px 28px; border-left: 2px solid var(--teda-brown); }
.teda-triptych > :first-child { border-left: 0; }
.teda-triptych h3 { color: var(--teda-brown); margin-bottom: 10px; }
.teda-triptych p { color: var(--teda-muted); margin: 0; }
@media (max-width: 780px) {
	.teda-triptych { grid-template-columns: 1fr; }
	.teda-triptych > * { border-left: 0; border-top: 2px solid var(--teda-brown); }
	.teda-triptych > :first-child { border-top: 0; }
}

/* ======================================================================== */
/* P09 — Blocks B (events, countdown, news, testimonials, tiers, filters)   */
/* ======================================================================== */

/* Shared constrained inner + tag + section heads (P09) */
.teda-events__head, .teda-events__list, .teda-events__fallback,
.teda-news__head, .teda-news__grid,
.teda-testimonials__head, .teda-testimonials__carousel,
.teda-impact-tiers__head, .teda-impact-tiers__list,
.teda-spaces__head, .teda-spaces__list,
.teda-impact__head, .teda-impact__grid,
.teda-filter-chips, .teda-filter-chips__empty {
	max-width: var(--theme-content-width, 1200px);
	margin-inline: auto;
	padding-inline: var(--teda-gutter, 24px);
}
.teda-events__head, .teda-news__head, .teda-testimonials__head, .teda-impact-tiers__head, .teda-spaces__head { margin-bottom: 22px; }
.teda-events__head .teda-display, .teda-news__head .teda-display,
.teda-testimonials__head .teda-display, .teda-impact-tiers__head .teda-display,
.teda-spaces__head .teda-display { color: var(--teda-brown); margin: 8px 0 0; }

.teda-tag {
	display: inline-block; font-family: var(--teda-font-heading); font-weight: 800;
	font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase;
	color: var(--teda-brown); background: var(--teda-brown-pale);
	padding: 4px 10px; border-radius: 99px; margin-bottom: 10px;
}

/* --- Events -------------------------------------------------------------- */
.teda-events__fallback { color: var(--teda-muted); margin-bottom: 16px; }
.teda-event {
	display: grid; grid-template-columns: 72px 1fr auto; gap: 18px; align-items: center;
	padding: 20px 0; border-bottom: 2px solid var(--teda-sand-deep);
}
.teda-event:last-child { border-bottom: 0; }
.teda-event__date { text-align: center; }
.teda-event__date b { font-family: var(--teda-font-display); font-size: 2rem; line-height: 1; color: var(--teda-brown); display: block; }
.teda-event__date span { font-size: 0.72rem; letter-spacing: 0.12em; text-transform: uppercase; font-weight: 700; color: var(--teda-muted); }
.teda-event__title { font-size: 1.28rem; margin: 4px 0; }
.teda-event__title a { color: var(--teda-ink); }
.teda-event__title a:hover { color: var(--teda-brown); }
.teda-event__meta { color: var(--teda-muted); font-size: 0.95rem; }
.teda-event--past .teda-event__date b { color: var(--teda-muted); }
.teda-event--past .teda-tag { color: var(--teda-muted); background: var(--teda-sand-deep); }
@media (max-width: 560px) {
	.teda-event { grid-template-columns: 60px 1fr; }
	.teda-event__go { grid-column: 2; }
}

/* --- Countdown ----------------------------------------------------------- */
.teda-countdown__timer { display: flex; gap: 12px; flex-wrap: wrap; }
.teda-countdown__unit { background: rgba(255, 255, 255, 0.14); border-radius: var(--teda-radius); padding: 12px 16px; text-align: center; min-width: 76px; }
.teda-countdown__unit b { font-family: var(--teda-font-display); font-size: 2rem; display: block; line-height: 1; color: var(--teda-white); font-variant-numeric: tabular-nums; }
.teda-countdown__unit span { font-size: 0.7rem; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: color-mix(in srgb, var(--teda-white) 85%, var(--teda-brown)); }
.teda-postev { background: rgba(255, 255, 255, 0.14); border-left: 5px solid var(--teda-blue-light); border-radius: var(--teda-radius); padding: 16px 20px; max-width: 52ch; }
.teda-postev b { color: var(--teda-white); font-family: var(--teda-font-heading); display: block; margin-bottom: 4px; }
.teda-postev p { color: color-mix(in srgb, var(--teda-white) 88%, var(--teda-brown)); font-size: 0.95rem; margin: 0; }
.teda-postev__link { display: inline-block; margin-top: 10px; color: var(--teda-white); font-weight: 700; text-decoration: underline; }
/* On a light context (e.g. sand section) the timer needs dark chrome. */
.teda-section--sand .teda-countdown__unit, :root .teda-cta-band--sand .teda-countdown__unit { background: var(--teda-brown-pale); }
.teda-section--sand .teda-countdown__unit b { color: var(--teda-brown); }

/* --- News ---------------------------------------------------------------- */
.teda-news__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.teda-news-card {
	display: flex; flex-direction: column; overflow: hidden; text-decoration: none;
	background: var(--teda-white); color: var(--teda-ink);
	border: 2px solid var(--teda-sand-deep); border-radius: var(--teda-radius);
	transition: border-color 0.18s ease;
}
.teda-news-card:hover { border-color: var(--teda-brown); }
.teda-news-card__ph { aspect-ratio: 16 / 10; overflow: hidden; background: var(--teda-sand-deep); display: block; }
.teda-news-card__ph img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
.teda-news-card:hover .teda-news-card__ph img { transform: scale(1.04); }
.teda-news-card__bd { padding: 22px; flex: 1; display: flex; flex-direction: column; }
.teda-news-card__title { font-size: 1.15rem; margin-bottom: 10px; flex: 1; color: var(--teda-brown); }
.teda-news-card__meta { font-size: 0.82rem; color: var(--teda-muted); }
@media (max-width: 900px) { .teda-news__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .teda-news__grid { grid-template-columns: 1fr; } }

/* --- Testimonials carousel ----------------------------------------------- */
.teda-carousel { position: relative; overflow: hidden; }
.teda-carousel__track { display: flex; transition: transform 0.35s ease; }
@media (prefers-reduced-motion: reduce) { .teda-carousel__track { transition: none; } }
.teda-carousel__slide { flex: 0 0 100%; padding: 2px; }
.teda-carousel__slide[hidden] { display: block; }
.teda-quote { background: var(--teda-white); border-left: 6px solid var(--teda-blue); padding: 26px 26px 22px; border-radius: var(--teda-radius); margin: 0; }
.teda-quote p { font-size: 1.08rem; font-style: italic; margin-bottom: 14px; }
.teda-quote__cite { font-family: var(--teda-font-heading); font-size: 0.85rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--teda-brown); font-style: normal; }
.teda-carousel__ctl { display: flex; align-items: center; gap: 10px; margin-top: 18px; }
.teda-carousel__nav { width: var(--teda-tap); height: var(--teda-tap); border: 2px solid var(--teda-brown); background: var(--teda-white); color: var(--teda-brown); border-radius: var(--teda-radius); cursor: pointer; display: grid; place-items: center; }
.teda-carousel__nav:hover, .teda-carousel__nav:focus { background: var(--teda-brown); color: var(--teda-white); }
.teda-carousel__dots { display: flex; gap: 8px; margin-left: 6px; }
.teda-carousel__dot { width: var(--teda-tap); height: var(--teda-tap); border: 0; background: transparent; cursor: pointer; display: grid; place-items: center; padding: 0; }
.teda-carousel__dot i { display: block; width: 11px; height: 11px; border-radius: 50%; background: var(--teda-sand-deep); border: 2px solid var(--teda-muted); }
.teda-carousel__dot[aria-selected="true"] i { background: var(--teda-brown); border-color: var(--teda-brown); }

/* --- Impact tiers -------------------------------------------------------- */
.teda-tier { display: flex; gap: 18px; align-items: flex-start; padding: 22px 0; border-bottom: 2px solid var(--teda-sand-deep); }
.teda-tier:last-child { border-bottom: 0; }
.teda-tier__amount { font-family: var(--teda-font-display); font-size: 1.55rem; color: var(--teda-brown); flex: 0 0 160px; line-height: 1.1; }
.teda-tier__amount small { display: block; font-family: var(--teda-font-body); font-weight: 600; font-size: 0.78rem; color: var(--teda-muted); }
.teda-tier__body { flex: 1; }
.teda-tier__desc { color: var(--teda-ink); font-size: 1rem; margin-bottom: 12px; }
.teda-progress__label { font-size: 0.82rem; font-weight: 700; color: var(--teda-green); margin-bottom: 6px; }
.teda-progress__track { height: 10px; background: var(--teda-sand-deep); border-radius: 99px; overflow: hidden; }
.teda-progress__fill { height: 100%; background: var(--teda-green); border-radius: 99px; }
@media (max-width: 560px) { .teda-tier { flex-direction: column; gap: 6px; } .teda-tier__amount { flex: none; } }

/* --- Filter chips -------------------------------------------------------- */
.teda-filter-chips { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 22px; }
.teda-chip {
	border: 2px solid var(--teda-sand-deep); background: var(--teda-white); color: var(--teda-ink);
	border-radius: 99px; padding: 9px 18px; font-family: var(--teda-font-body); font-weight: 700;
	font-size: 0.85rem; cursor: pointer; min-height: var(--teda-tap);
}
.teda-chip.is-on { background: var(--teda-brown); border-color: var(--teda-brown); color: var(--teda-white); }
.teda-filter-chips__empty { margin-top: 18px; }

/* ======================================================================== */
/* P10 — Archives, singles and empty states                                 */
/* ======================================================================== */

/* Empty-state system (Support\Empty_State) */
.teda-empty__title { color: var(--teda-brown); font-size: 1.5rem; margin-bottom: 10px; }
.teda-empty__text { color: var(--teda-muted); max-width: 46ch; margin: 0 auto 20px; }
.teda-empty__actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }

/* Archive section headings + grouping */
.teda-archive__heading { color: var(--teda-brown); font-size: var(--teda-fs-h4); margin: 8px 0 18px; }
.teda-archive__heading + .teda-events__list, .teda-archive__heading + .teda-oppo__list { margin-bottom: 34px; }
.teda-archive__group { display: block; }

/* Opportunity cards */
.teda-oppo { display: grid; grid-template-columns: 1fr auto; gap: 18px; align-items: center; padding: 22px 0; border-bottom: 2px solid var(--teda-sand-deep); }
.teda-oppo:last-child { border-bottom: 0; }
.teda-oppo--closed { opacity: 0.78; }
.teda-oppo__title { font-size: 1.28rem; margin: 6px 0 4px; }
.teda-oppo__title a { color: var(--teda-ink); }
.teda-oppo__title a:hover { color: var(--teda-brown); }
.teda-oppo__meta { color: var(--teda-muted); font-size: 0.95rem; }
.teda-oppo--closed .teda-tag { background: var(--teda-sand-deep); color: var(--teda-muted); }
@media (max-width: 560px) { .teda-oppo { grid-template-columns: 1fr; } }

/* Single Event / Opportunity panels */
.teda-single-panel { background: var(--teda-brown); color: var(--teda-white); border-radius: var(--teda-radius); padding: 26px 28px; margin-bottom: 28px; }
.teda-single-panel--oppo { background: var(--teda-sand); color: var(--teda-ink); border: 2px solid var(--teda-sand-deep); }
.teda-single-panel .teda-countdown__clock { margin-bottom: 20px; }
.teda-details { margin: 0 0 18px; display: grid; gap: 10px; }
.teda-details__row { display: grid; grid-template-columns: 130px 1fr; gap: 12px; }
.teda-details__row dt { font-family: var(--teda-font-heading); font-weight: 800; font-size: 0.78rem; letter-spacing: 0.08em; text-transform: uppercase; opacity: 0.85; }
.teda-details__row dd { margin: 0; }
.teda-single-panel--event .teda-details__row dd { color: var(--teda-white); }
.teda-oppo-closed { margin-top: 10px; }
@media (max-width: 560px) { .teda-details__row { grid-template-columns: 1fr; gap: 2px; } }

/* Related events + loop-card meta injected on Group 1 archives */
.teda-related { margin-top: 40px; }
.teda-related__heading { color: var(--teda-brown); font-size: var(--teda-fs-h5); margin-bottom: 16px; }
.teda-loop-meta { margin-top: 10px; }
.teda-loop-meta--focus { --accent: var(--teda-brown); display: flex; align-items: center; gap: 10px; }
.teda-loop-meta--focus.teda-focus-card--blue { --accent: var(--teda-blue); }
.teda-loop-meta--focus.teda-focus-card--green { --accent: var(--teda-green); }
.teda-loop-meta__icon { color: var(--accent); flex: 0 0 auto; display: inline-grid; place-items: center; }
.teda-loop-meta__summary { color: var(--teda-muted); font-size: 0.95rem; margin: 0; }
.teda-loop-meta--team { color: var(--teda-brown); font-family: var(--teda-font-heading); font-weight: 800; font-size: 0.85rem; letter-spacing: 0.06em; text-transform: uppercase; }
.teda-loop-meta--news { display: flex; align-items: center; gap: 10px; }
.teda-loop-meta__date { color: var(--teda-muted); font-size: 0.85rem; }

/* ======================================================================== */
/* P12 — Donate page (offline mode + live toggle)                           */
/* ======================================================================== */
.teda-btn--green { background: var(--teda-green); color: var(--teda-white); }
.teda-btn--green:hover, .teda-btn--green:focus { background: color-mix(in srgb, var(--teda-green) 85%, black); color: var(--teda-white); }

.teda-donate { max-width: var(--theme-content-width, 1200px); margin-inline: auto; padding-inline: var(--teda-gutter, 24px); }
.teda-donate__grid { display: grid; grid-template-columns: 1fr; gap: 34px; }
@media (min-width: 900px) { .teda-donate__grid { grid-template-columns: minmax(0, 1fr) 360px; align-items: start; } }
.teda-donate__lead { font-size: 1.15rem; color: var(--teda-ink); margin-bottom: 26px; }
.teda-donate__section { margin-bottom: 40px; }
.teda-donate__section .teda-display { color: var(--teda-brown); margin: 8px 0 18px; }

.teda-donate__tiers .teda-tier { padding: 18px 0; }
.teda-donate__projects { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 18px; }
.teda-project { border: 2px solid var(--teda-sand-deep); border-radius: var(--teda-radius); padding: 22px; background: var(--teda-white); }
.teda-project h3 { color: var(--teda-brown); margin-bottom: 8px; }
.teda-project p { color: var(--teda-muted); font-size: 0.95rem; margin-bottom: 14px; }

/* Anti-fraud notice — prominent at every width, never softened (§7). */
.teda-donate__warn { border: 2px solid var(--teda-brown); border-left-width: 8px; border-radius: var(--teda-radius); background: var(--teda-brown-pale); padding: 22px 24px; margin: 8px 0 40px; }
.teda-donate__warn h3 { color: var(--teda-brown); margin-bottom: 8px; }
.teda-donate__warn p { color: var(--teda-ink); margin: 0; }

/* Sticky donation panel */
.teda-donate__panel { border: 2px solid var(--teda-sand-deep); border-radius: var(--teda-radius); padding: 24px; background: var(--teda-white); }
@media (min-width: 900px) { .teda-donate__panel { position: sticky; top: 24px; } }
.teda-donate__paneltitle { font-size: 1.35rem; color: var(--teda-brown); margin-bottom: 4px; }
.teda-donate__panelsub { color: var(--teda-muted); font-size: 0.93rem; margin-bottom: 18px; }
.teda-donate__adminnotice { border: 2px dashed var(--teda-blue); background: var(--teda-blue-pale); color: var(--teda-ink); padding: 12px 14px; border-radius: var(--teda-radius); margin-bottom: 16px; font-size: 0.9rem; }

.teda-donate__freq, .teda-donate__cur { display: flex; gap: 8px; margin-bottom: 12px; }
.teda-donate__freq .teda-chip, .teda-donate__cur .teda-chip { flex: 1; justify-content: center; }
.teda-donate__amounts { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; margin-bottom: 14px; }
.teda-donate__amt { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; min-height: var(--teda-tap); padding: 8px 12px; cursor: pointer; border: 2px solid var(--teda-sand-deep); background: var(--teda-white); color: var(--teda-ink); border-radius: var(--teda-radius); font-family: var(--teda-font-body); font-weight: 700; }
.teda-donate__amt.is-on { border-color: var(--teda-brown); background: var(--teda-brown-pale); }
.teda-donate__amt-usd { font-weight: 600; color: var(--teda-muted); font-size: 0.74rem; }
.teda-donate__customwrap { display: block; margin-bottom: 14px; }
.teda-donate__customlabel { display: block; font-size: 0.8rem; font-weight: 700; margin-bottom: 4px; }
.teda-donate__custom { width: 100%; min-height: var(--teda-tap); padding: 8px 12px; border: 2px solid var(--teda-sand-deep); border-radius: var(--teda-radius); }

.teda-donate__cta { width: 100%; margin-bottom: 10px; }
.teda-donate__note { font-size: 0.8rem; color: var(--teda-muted); text-align: center; margin-top: 10px; }
.teda-way { border: 2px solid var(--teda-sand-deep); border-radius: var(--teda-radius); padding: 16px 18px; margin-bottom: 12px; }
.teda-way--accent { border-color: var(--teda-blue-light); background: var(--teda-blue-pale); }
.teda-way h3 { color: var(--teda-brown); font-size: 1.05rem; margin-bottom: 6px; }
.teda-way p { color: var(--teda-ink); font-size: 0.92rem; margin-bottom: 8px; }
.teda-way code { display: block; font-size: 0.9rem; color: var(--teda-brown); background: var(--teda-sand); padding: 6px 10px; border-radius: var(--teda-radius); margin-top: 4px; word-break: break-word; }

/* Trust strip + other ways */
.teda-donate__trust { margin: 20px 0 40px; }
.teda-trust { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 24px; padding: 28px; background: var(--teda-sand); border-radius: var(--teda-radius); }
.teda-trust h3 { color: var(--teda-brown); font-size: 1.02rem; margin-bottom: 6px; }
.teda-trust p { color: var(--teda-ink); font-size: 0.92rem; margin: 0; }
.teda-donate__ways { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px; }
.teda-donate__ways .teda-way { margin-bottom: 0; }

/* P13 Forms — honeypot (functional hide), event registration + capacity. Field
   styling itself is left to Blocksy's Fluent Forms integration + --theme-form-field-*.
   These rules only hide the trap and lay out our own wrappers (not FF fields). */
.teda-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.teda-eventreg { margin-top: 20px; }
.teda-eventreg__places { font-family: var(--teda-font-heading, inherit); font-weight: 600; margin: 0 0 12px; color: var(--teda-brown); }
.teda-eventreg__places--low { color: var(--teda-blue, var(--teda-brown)); }
.teda-eventreg__places--info { color: var(--teda-ink); opacity: 0.8; }
.teda-eventreg__waitlist { margin-top: 8px; }
.teda-eventreg__waitlist b { display: block; margin-bottom: 4px; }
.teda-eventreg__waitlist p { margin: 0 0 12px; }
.teda-consent .ff-el-input--label,
.teda-consent label { font-weight: 400; }

/* P14 "Last updated" line on News / Publications singles. */
.teda-updated { font-size: 0.85rem; color: var(--teda-ink); opacity: 0.75; margin: 0 0 16px; }

/* --- Spaces (P19) -------------------------------------------------------- */
/* Homepage block + archive share the card grid; the single uses its own layout. */
.teda-spaces__list {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
}
@media (max-width: 900px) { .teda-spaces__list { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .teda-spaces__list { grid-template-columns: 1fr; } }

.teda-space-card {
	display: flex; flex-direction: column; align-items: flex-start;
	background: var(--teda-white); border: 2px solid var(--teda-sand-deep);
	border-radius: var(--teda-radius, 12px); padding: 22px;
}
.teda-space-card__title { font-size: var(--teda-fs-h4, 1.28rem); margin: 2px 0 6px; }
.teda-space-card__title a { color: var(--teda-ink); }
.teda-space-card__title a:hover { color: var(--teda-brown); }
.teda-space-card__date { color: var(--teda-muted); font-size: 0.9rem; margin: 0 0 10px; }
.teda-space-card__summary { color: var(--teda-ink); margin: 0 0 16px; }
.teda-space-card__go {
	margin-top: auto; font-family: var(--teda-font-heading); font-weight: 800;
	color: var(--teda-brown); min-height: var(--teda-tap, 44px); display: inline-flex; align-items: center;
}
.teda-space-card__go:hover { text-decoration: underline; }
/* Archive rows reuse the card; lay them out in the same grid as the block. */
.teda-archive__group.teda-spaces__list { margin-top: 8px; }

/* Single Space: structured content is the substance; the embed/fallback is an aside. */
.teda-single--space { max-width: 760px; margin-inline: auto; }
.teda-space__meta { color: var(--teda-muted); font-weight: 700; letter-spacing: 0.02em; margin: 0 0 18px; }
.teda-space__section { margin: 0 0 28px; }
.teda-space__h { font-family: var(--teda-font-heading); font-size: var(--teda-fs-h5, 1.05rem); text-transform: uppercase; letter-spacing: 0.06em; color: var(--teda-brown); margin: 0 0 8px; }
.teda-space__points, .teda-space__speakers { margin: 0; padding-left: 1.2em; }
.teda-space__points li, .teda-space__speakers li { margin: 0 0 6px; }
.teda-space__action { border-left: 4px solid var(--teda-brown); padding-left: 18px; background: var(--teda-brown-pale); border-radius: var(--teda-radius, 12px); padding: 18px; }
.teda-space__action .teda-space__h { margin-top: 0; }

/* The listen slot — real embed or first-class fallback. */
.teda-space__listen { margin: 0 0 28px; }
.teda-space-embed { max-width: 100%; }
.teda-space-embed :where(iframe, blockquote) { max-width: 100%; }
.teda-space-embed__out { font-size: 0.9rem; margin: 8px 0 0; }
.teda-space-fallback {
	background: var(--teda-sand); border: 2px solid var(--teda-sand-deep);
	border-radius: var(--teda-radius, 12px); padding: 22px;
}
.teda-space-fallback__lead { margin: 0 0 14px; color: var(--teda-ink); }
.teda-space-fallback__audio { margin: 0 0 16px; }
.teda-space-fallback__audio figcaption { font-weight: 700; margin-bottom: 6px; }
.teda-space-fallback__audio audio { width: 100%; }
.teda-updated__label { font-family: var(--teda-font-heading, inherit); font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; font-size: 0.75rem; }

/* --- Publications (P21) -------------------------------------------------- */
.teda-pub-featured { margin: 8px 0 40px; }
.teda-pub-featured > .teda-eyebrow { display: block; margin-bottom: 12px; }
.teda-pub {
	display: grid; grid-template-columns: 132px 1fr auto; gap: 22px; align-items: start;
	padding: 22px 0; border-bottom: 2px solid var(--teda-sand-deep);
}
.teda-pub:last-child { border-bottom: 0; }
.teda-pub__cover img { width: 100%; height: auto; border-radius: var(--teda-radius, 12px); border: 2px solid var(--teda-sand-deep); display: block; }
.teda-pub__title { font-size: var(--teda-fs-h4, 1.28rem); margin: 6px 0; }
.teda-pub__title a { color: var(--teda-ink); }
.teda-pub__title a:hover { color: var(--teda-brown); }
.teda-pub__summary { color: var(--teda-ink); margin: 0 0 8px; }
.teda-pub__meta { color: var(--teda-muted); font-size: 0.9rem; margin: 0; }
.teda-pub__go { align-self: center; }

/* Featured report: larger cover, stacked on narrow screens. */
.teda-pub--featured { grid-template-columns: 300px 1fr; gap: 30px; border-bottom: 0; padding: 0; align-items: center; }
.teda-pub--featured .teda-pub__title { font-size: var(--teda-fs-h2, 2.2rem); font-family: var(--teda-font-display); color: var(--teda-brown); }
.teda-pub--featured .teda-pub__go { grid-column: 2; align-self: start; margin-top: 6px; }
@media (max-width: 720px) {
	.teda-pub, .teda-pub--featured { grid-template-columns: 1fr; }
	.teda-pub__go, .teda-pub--featured .teda-pub__go { grid-column: 1; }
	.teda-pub--featured .teda-pub__cover img { max-width: 260px; }
}

.teda-pub-archive__year {
	font-family: var(--teda-font-display); color: var(--teda-brown);
	font-size: var(--teda-fs-h3, 1.6rem); margin: 30px 0 6px; padding-top: 8px;
}
.teda-pub-help { margin-top: 30px; color: var(--teda-ink); }
.teda-pub__nofile { color: var(--teda-muted); font-style: italic; margin: 0; }

/* Single publication */
.teda-single--pub { max-width: 760px; margin-inline: auto; }
.teda-pub__download { margin: 0 0 28px; }
.teda-pub__summary-full { margin: 0 0 28px; }

/* --- Impact dashboard (P21, D13) ---------------------------------------- */
.teda-impact__head { margin-bottom: 24px; }
.teda-impact__head .teda-display { color: var(--teda-brown); margin: 8px 0 10px; }
.teda-impact__intro { color: var(--teda-ink); max-width: 62ch; }
.teda-impact__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
@media (max-width: 820px) { .teda-impact__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .teda-impact__grid { grid-template-columns: 1fr; } }
.teda-impact__cell {
	display: flex; flex-direction: column; align-items: flex-start;
	background: var(--teda-sand); border: 2px solid var(--teda-sand-deep);
	border-radius: var(--teda-radius, 12px); padding: 24px;
}
.teda-impact__value { font-family: var(--teda-font-display); font-size: clamp(2.2rem, 5vw, 3rem); line-height: 1; color: var(--teda-brown); }
.teda-impact__label { margin: 8px 0 12px; color: var(--teda-ink); }
.teda-impact__source {
	margin-top: auto; font-family: var(--teda-font-heading); font-weight: 800; font-size: 0.85rem;
	color: var(--teda-brown); text-decoration: underline; min-height: var(--teda-tap, 44px);
	display: inline-flex; align-items: center;
}
.teda-impact__fallback {
	background: var(--teda-sand); border: 2px dashed var(--teda-sand-deep);
	border-radius: var(--teda-radius, 12px); padding: 22px; color: var(--teda-ink); max-width: 62ch;
}
