/* 1838 — shared components. Values reproduce the approved preview's inline styles and
   generated hover classes (.s0–.sd) one-to-one; the mapping is noted per block. */

/* Type ------------------------------------------------------------------- */
.t-h1 { font-size: var(--t-h1); line-height: var(--t-h1-lh); letter-spacing: var(--t-h1-ls); font-weight: 400; text-wrap: balance; }
.t-h2 { font-size: var(--t-h2); line-height: var(--t-h2-lh); letter-spacing: var(--t-h2-ls); font-weight: 400; }
.t-lead { font-size: var(--t-lead); line-height: 1.5; text-wrap: pretty; color: var(--c-ink); }
.t-body { font-size: var(--t-body); line-height: var(--t-body-lh); text-wrap: pretty; color: var(--c-ink-soft); }
.t-small { font-size: var(--t-small); line-height: 1.6; text-wrap: pretty; color: var(--c-ink-quiet); }
.t-measure { max-width: 600px; }
.t-mono {
	font-family: var(--f-mono);
	font-size: var(--t-mono-s);
	letter-spacing: var(--ls-mono);
	text-transform: uppercase;
	color: var(--c-ink-quiet);
}
.t-meta { /* stacked mono facts, e.g. "Founded 2025 / …" */
	font-family: var(--f-mono);
	font-size: var(--t-mono-s);
	line-height: 1.9;
	letter-spacing: var(--ls-mono);
	text-transform: uppercase;
	color: var(--c-ink-quiet);
}
.l-band--green .t-h1, .l-band--green .t-h2, .l-band--green .t-body, .l-band--green .t-meta { color: var(--c-on-band); }

/* Marker: diamond + mono label ------------------------------------------ */
.c-marker {
	display: flex;
	align-items: center;
	gap: 14px;
	font-family: var(--f-mono);
	font-size: var(--t-mono);
	letter-spacing: var(--ls-label);
	text-transform: uppercase;
	color: var(--c-ink-quiet);
}
.c-marker::before {
	content: "";
	flex: none;
	display: block;
	width: 7px;
	height: 7px;
	background: var(--c-accent);
	transform: rotate(45deg);
}
.c-marker--light { color: var(--c-on-band); font-size: var(--t-mono-s); }
.c-marker--light::before { background: var(--c-on-band); }

/* Green cap rule (44 × 2) above a hairline */
.c-cap { display: block; width: 44px; height: 2px; background: var(--c-accent); }

/* Section head: marker (+ heading) left, quiet link right ------------- */
.c-section-head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px 40px;
	padding-bottom: var(--head-gap);
}
.c-section-head__title { display: flex; flex-direction: column; gap: 40px; }

/* Links ------------------------------------------------------------------ */
/* .s5 — underlined mono text link */
.c-link {
	display: inline-block;
	padding-bottom: 6px;
	border-bottom: 1px solid var(--c-rule);
	font-family: var(--f-mono);
	font-size: var(--t-mono);
	letter-spacing: var(--ls-btn);
	text-transform: uppercase;
	color: var(--c-ink);
}
.c-link:hover { color: var(--c-ink-quiet); border-color: var(--c-rule-strong); }

/* .s4 — quiet mono link (section-head right) */
.c-link-quiet {
	display: inline-block;
	padding-bottom: 6px;
	border-bottom: 1px solid transparent;
	font-family: var(--f-mono);
	font-size: var(--t-mono-s);
	letter-spacing: var(--ls-btn);
	text-transform: uppercase;
	color: var(--c-ink-quiet);
}
.c-link-quiet:hover { color: var(--c-ink); border-color: var(--c-rule-strong); }

/* .s6 inline prose link (Contact details) */
.c-link-inline { border-bottom: 1px solid var(--c-rule); }
.c-link-inline:hover { border-color: var(--c-rule-strong); }

/* Buttons ---------------------------------------------------------------- */
.c-btn {
	appearance: none;
	display: inline-block;
	padding: 18px 40px;
	border: 1px solid var(--c-ink);
	border-radius: 0;
	background: transparent;
	font-family: var(--f-mono);
	font-size: var(--t-mono-btn);
	line-height: 1.5;
	letter-spacing: var(--ls-btn);
	text-transform: uppercase;
	text-align: center;
	color: var(--c-ink);
	cursor: pointer;
}
.c-btn:hover { background: var(--c-ink); color: var(--c-plate); }
/* .sa — solid green */
.c-btn--solid { border-color: var(--c-accent); background: var(--c-accent); color: var(--c-plate); }
.c-btn--solid:hover { border-color: var(--c-ink); background: var(--c-ink); color: var(--c-plate); }
/* .s3 on green — outline light */
.c-btn--light { border-color: var(--c-on-band); color: var(--c-on-band); }
.c-btn--light:hover { background: var(--c-on-band); color: var(--c-ink); }
@media (max-width: 767px) {
	.c-btn--block-sm { display: block; padding-left: 24px; padding-right: 24px; }
}

/* Chips (filters, topics) ----------------------------------------------- */
.c-chip {
	appearance: none;
	display: inline-block;
	padding: 10px 18px;
	border: 1px solid var(--c-rule);
	border-radius: 0;
	background: transparent;
	font-family: var(--f-mono);
	font-size: var(--t-mono-s);
	letter-spacing: var(--ls-mono);
	text-transform: uppercase;
	color: var(--c-ink-quiet);
	cursor: pointer;
}
/* .s7 */
.c-chip:hover { border-color: var(--c-rule-strong); color: var(--c-ink); }
.c-chip[aria-pressed="true"], .c-chip[aria-current="page"], .c-chip.is-active {
	border-color: var(--c-ink);
	background: var(--c-ink);
	color: var(--c-plate);
}

/* Plate: framed image or "to be supplied" placeholder -------------------- */
.c-plate {
	padding: 16px 16px 26px;
	background: var(--c-plate);
	border: 1px solid var(--c-rule);
}
.c-plate--sm { padding: 10px 10px 18px; }
.c-plate--xs { padding: 8px 8px 14px; }
@media (max-width: 767px) { .c-plate { padding: 12px 12px 20px; } .c-plate--sm, .c-plate--xs { padding: 8px 8px 14px; } }
.c-plate__img {
	display: block;
	width: 100%;
	aspect-ratio: var(--ratio, 3 / 2);
	object-fit: cover;
	object-position: var(--pos, 50% 50%);
}
.c-plate__placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	aspect-ratio: var(--ratio, 3 / 2);
	padding: 12px;
	background: var(--c-paper);
	font-family: var(--f-mono);
	font-size: 10.5px;
	letter-spacing: var(--ls-mono);
	text-transform: uppercase;
	text-align: center;
	color: var(--c-ink-faint);
}
.c-plate__caption { padding-top: 18px; }

/* Card + row hover states (.s6 / .s3 / .s8) ------------------------------ */
.c-card { display: flex; flex-direction: column; background: var(--c-plate); border: 1px solid var(--c-rule); color: var(--c-ink); }
.c-card--paper { background: var(--c-paper); }
a.c-card:hover, .c-card.is-link:hover { border-color: var(--c-rule-strong); color: var(--c-ink); }

.c-row { display: flex; border-top: 1px solid var(--c-rule); color: var(--c-ink-soft); }
a.c-row:hover { background: var(--c-plate); color: var(--c-ink); }
.c-rows > .c-row:last-child { border-bottom: 1px solid var(--c-rule); }

/* Page hero (spacing from the preview's inner-page heroes) --------------- */
.c-hero__title { max-width: 18em; padding-top: var(--head-gap); }
.c-hero__intro { max-width: 34em; padding-top: 34px; }
.c-hero__slot { padding-top: clamp(40px, 4vw, 56px); }
.c-crumbs { flex-wrap: wrap; gap: 10px 14px; }
.c-crumbs a { color: var(--c-ink-quiet); }
.c-crumbs a:hover { color: var(--c-ink); }
.c-crumbs__current { color: var(--c-ink); }

/* Facts list (dl with hairlines) ----------------------------------------- */
.c-facts { display: flex; flex-direction: column; border-bottom: 1px solid var(--c-rule); }
.c-facts__item { display: flex; flex-direction: column; gap: 10px; padding: 22px 0; border-top: 1px solid var(--c-rule); }
.c-facts__item dt { font-family: var(--f-mono); font-size: var(--t-mono-s); letter-spacing: var(--ls-label); text-transform: uppercase; color: var(--c-ink-quiet); }
.c-facts__item dd { margin: 0; font-size: var(--t-body); line-height: 1.5; color: var(--c-ink-soft); }

/* Inverse plate: paper frame, plate-coloured placeholder (Members founder cards) */
.c-plate--inverse { background: var(--c-paper); }
.c-plate--inverse .c-plate__placeholder { background: var(--c-plate); }

/* Membership band ("Become an Associate Member") ------------------------- */
.c-cta__text { display: flex; flex-direction: column; align-items: flex-start; }
.c-cta__title { align-self: stretch; border-top: 1px solid var(--c-rule); padding: 30px 0 34px; }
.c-cta__body { max-width: 560px; }
.c-cta__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 20px 32px; }

/* Founder cards ------------------------------------------------------------ */
.c-founder { display: flex; flex-direction: column; color: var(--c-ink); }
.c-founder--compact:hover { color: var(--c-ink-quiet); }
.c-founder--compact .c-founder__name { padding-top: 20px; font-size: 17px; line-height: 1.4; }
.c-founder--compact .c-founder__role { padding-top: 8px; font-family: var(--f-mono); font-size: var(--t-mono-xs); letter-spacing: var(--ls-mono); text-transform: uppercase; color: var(--c-ink-quiet); }
.c-founder--compact .c-plate__placeholder { font-size: 10px; letter-spacing: 0.14em; }
.c-founder--full .c-founder__name { padding-top: 26px; font-size: var(--t-lead); line-height: 1.25; font-weight: 400; }
.c-founder--full .c-founder__role { padding-top: 10px; font-family: var(--f-mono); font-size: var(--t-mono-xs); letter-spacing: var(--ls-mono); text-transform: uppercase; color: var(--c-ink-quiet); }
.c-founder--full .c-founder__bio { padding-top: 18px; font-size: 16px; line-height: 1.65; text-wrap: pretty; color: var(--c-ink-soft); }
.c-founder--full .c-founder__link { align-self: flex-start; margin-top: 18px; font-family: var(--f-mono); font-size: var(--t-mono-xs); letter-spacing: var(--ls-mono); text-transform: uppercase; color: var(--c-ink-quiet); }
