/**
 * APCC components — the shared section/card vocabulary (prefix ax-).
 * Built on the homepage first; other pages adopt these classes so every page
 * shares one type scale, one card, one band rhythm and one colour logic:
 *   green-900 = the one dark band per page (identity), mint = tinted bands,
 *   green-700 = actions, gold = primary action on dark, ochre = data marks.
 */

:root {
	--ax-fs-h1: clamp(2rem, 1.55rem + 1.5vw, 2.75rem);
	--ax-fs-h2: clamp(1.5rem, 1.25rem + .9vw, 2rem);
	--ax-fs-h3: clamp(1.05rem, 1rem + .2vw, 1.2rem);
	--ax-fs-statement: clamp(1.3rem, 1.1rem + .8vw, 1.75rem);
	--ax-lh-heading: 1.25;
	--ax-lh-body: 1.7;
	--ax-fs-lede: 1.125rem;
	--ax-fs-body: 1rem;
	--ax-fs-meta: .875rem;
	--ax-band-y: clamp(3.5rem, 2.5rem + 3vw, 5.5rem);
	--ax-gap: clamp(1rem, .75rem + .8vw, 1.5rem);
}

/* ---------- Bands ---------- */
html body .ax-band { padding: var(--ax-band-y) 0; background: var(--apcc-white); }
html body .ax-band + .ax-band { border-top: 1px solid var(--apcc-mint-200); }
html body .ax-band--tint { background: var(--apcc-mint-50); }
html body .ax-band--green {
	background: var(--apcc-green-900);
	color: var(--apcc-mint-100);
	border-top: 0;
}
html body .ax-band--green + .ax-band { border-top: 0; }
html body .ax-band--cta {
	position: relative;
	overflow: hidden;
	background: var(--apcc-green-700);
	color: #fff;
	border-top: 0;
}
html body .ax-band--cta::after {
	content: ""; position: absolute; inset: -10% 0 -10% auto; width: min(560px, 45%);
	background: var(--apcc-map-url) no-repeat right center / contain;
	opacity: .16; pointer-events: none;
}
html body .ax-band--cta .container { position: relative; z-index: 1; }
html body .ax-band--cta + .ax-band { border-top: 0; }

/* ---------- Type ---------- */
html body .ax-h2 {
	font-family: var(--apcc-font-display);
	font-size: var(--ax-fs-h2);
	font-weight: 700;
	line-height: var(--ax-lh-heading);
	letter-spacing: 0;
	color: var(--apcc-green-900);
	margin: 0;
	max-width: 28ch;
	text-align: left;
}
html body .ax-h3 {
	font-family: var(--apcc-font-display);
	font-size: var(--ax-fs-h3);
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: -0.015em;
	color: var(--apcc-green-900);
	margin: 0 0 .5rem;
	text-align: left;
}
html body :is(.ax-h2, .ax-h3)::after { content: none; }
html body .ax-h3 a { color: inherit; text-decoration: none; }
html body .ax-h3 a:hover { color: var(--apcc-green-600); text-decoration: underline; }
html body .ax-lede { font-size: var(--ax-fs-lede); line-height: 1.65; color: var(--apcc-ink); }
html body .ax-band p { font-size: var(--ax-fs-body); line-height: 1.7; color: var(--apcc-text); margin: 0 0 1rem; max-width: 68ch; }
html body .ax-meta { font-size: var(--ax-fs-meta); color: var(--apcc-muted); margin: 0; display: block; }
html body .ax-meta i { color: var(--apcc-ochre); margin-right: .25rem; }

/* ---------- Section head: title left, link right ---------- */
html body .ax-head {
	display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem 2rem; flex-wrap: wrap;
	margin: 0 0 2rem;
}
html body .ax-more {
	display: inline-flex; align-items: center; gap: .45rem;
	font-weight: 700; font-size: .95rem; color: var(--apcc-green-700); text-decoration: none; white-space: nowrap;
	min-height: var(--apcc-tap);
}
html body .ax-more i { transition: transform .2s var(--apcc-ease); font-size: .8em; }
html body .ax-more:hover { color: var(--apcc-green-900); }
html body .ax-more:hover i { transform: translateX(3px); }

/* ---------- Grid + card ---------- */
html body .ax-grid { display: grid; gap: var(--ax-gap); }
html body .ax-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
html body .ax-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
html body .ax-card {
	display: flex; flex-direction: column;
	background: var(--apcc-white);
	border: 1px solid var(--apcc-mint-200);
	border-radius: var(--apcc-radius);
	padding: 1.5rem;
	color: var(--apcc-ink);
	text-decoration: none;
	transition: border-color .2s var(--apcc-ease), box-shadow .2s var(--apcc-ease), transform .2s var(--apcc-ease);
	min-width: 0;
}
html body .ax-band--tint .ax-card { border-color: var(--apcc-mint-200); }
html body :is(.ax-card--link, .ax-card:has(.ax-card__cta)):hover {
	border-color: var(--apcc-mint-300);
	box-shadow: 0 14px 34px -18px rgba(11, 58, 32, .35);
	transform: translateY(-2px);
}
html body .ax-card__icon {
	display: inline-grid; place-items: center; width: 48px; height: 48px; border-radius: 12px; margin: 0 0 1.25rem;
	background: var(--apcc-mint-100); color: var(--apcc-green-700); font-size: 1.15rem;
}
html body .ax-card__cta {
	margin-top: auto; padding-top: 1.25rem;
	display: inline-flex; align-items: center; gap: .45rem;
	font-weight: 700; font-size: .95rem; color: var(--apcc-green-700); text-decoration: none;
}
html body .ax-card__cta i { font-size: .8em; transition: transform .2s var(--apcc-ease); }
html body .ax-card:hover .ax-card__cta i { transform: translateX(3px); }
html body .ax-list { list-style: none; margin: .25rem 0 0; padding: 0; }
html body .ax-list li {
	position: relative; padding: .45rem 0 .45rem 1.1rem; font-size: .95rem; color: var(--apcc-text);
	border-top: 1px solid var(--apcc-mint-100);
}
html body .ax-list li:first-child { border-top: 0; }
html body .ax-list li::before {
	content: ""; position: absolute; left: 0; top: 1.05em; width: 6px; height: 6px; border-radius: 50%; background: var(--apcc-ochre);
}

/* chips + facts (same logic as the approved cohort directory card) */
html body .ax-chips { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 1rem; min-height: 1.75rem; }
html body .ax-chip {
	display: inline-flex; align-items: center; padding: .25rem .65rem; border-radius: 999px;
	font-size: .78rem; font-weight: 700; line-height: 1.3; background: var(--apcc-mint-100); color: var(--apcc-green-900);
}
html body .ax-chip--ochre { background: var(--apcc-ochre-soft); color: var(--apcc-ochre); }
html body .ax-card > .ax-h3 { min-height: 2.5em; }
html body .ax-facts { margin: 1.1rem 0 0; padding: 1rem 0 0; border-top: 1px solid var(--apcc-mint-200); display: grid; gap: .5rem; }
html body .ax-facts div { display: grid; grid-template-columns: minmax(7rem, .8fr) minmax(0, 1.2fr); gap: .75rem; }
html body .ax-facts dt { font-size: var(--ax-fs-meta); color: var(--apcc-muted); font-weight: 600; margin: 0; }
html body .ax-facts dd { font-size: var(--ax-fs-meta); color: var(--apcc-ink); font-weight: 700; margin: 0; font-variant-numeric: tabular-nums; }

/* ---------- Mission / vision / values (green band) ---------- */
html body .ax-band--green .ax-h2,
html body .ax-band--green .ax-h3 { color: #fff; }
html body .ax-mv { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
html body .ax-mv .ax-h2 { font-size: var(--ax-fs-meta); font-family: var(--apcc-font); font-weight: 700; letter-spacing: .02em; color: var(--apcc-gold-bright); margin-bottom: .75rem; }
html body .ax-band .ax-statement {
	font-family: var(--apcc-font-display); font-size: var(--ax-fs-statement); font-weight: 600; line-height: 1.2; letter-spacing: -0.02em;
	color: #fff; margin: 0; max-width: 22ch;
}
html body .ax-mv__mission .ax-h3 { font-size: var(--ax-fs-meta); font-family: var(--apcc-font); letter-spacing: .02em; color: var(--apcc-gold-bright); margin-bottom: .75rem; }
html body .ax-band--green .ax-mv__mission p { color: var(--apcc-mint-100); font-size: var(--ax-fs-lede); line-height: 1.7; margin: 0; }
html body .ax-values-title { margin: clamp(2.5rem, 5vw, 4rem) 0 1.25rem; padding-top: 2rem; border-top: 1px solid rgba(255, 255, 255, .14); }
html body .ax-values { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem var(--ax-gap); }
html body .ax-values li { display: grid; grid-template-columns: 44px minmax(0, 1fr); column-gap: 1rem; row-gap: .3rem; align-content: start; }
html body .ax-values__icon {
	grid-row: span 2; width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center;
	background: rgba(255, 255, 255, .08); color: var(--apcc-gold-bright); font-size: 1.05rem;
}
html body .ax-values strong { font-family: var(--apcc-font-display); font-size: 1.1rem; color: #fff; font-weight: 700; }
html body .ax-values li > span:last-child { font-size: .95rem; line-height: 1.6; color: var(--apcc-mint-200); }

/* ---------- Split (text + media) ---------- */
html body .ax-split { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; }
html body .ax-split .ax-h2 { margin-bottom: 1.25rem; }
html body .ax-split .btn { margin-top: .75rem; }
html body .ax-split__media { margin: 0; position: relative; }
html body .ax-split__media img { width: 100%; aspect-ratio: 4 / 3.4; object-fit: cover; border-radius: var(--apcc-radius-lg); display: block; }
html body .ax-split__media::after {
	content: ""; position: absolute; z-index: -1; right: -14px; bottom: -14px; width: 55%; height: 55%;
	border-radius: var(--apcc-radius-lg); background: var(--apcc-ochre-soft);
}

/* ---------- Events + news ---------- */
html body .ax-updates { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: var(--ax-gap); align-items: stretch; }
html body .ax-event {
	background: var(--apcc-white); border: 1px solid var(--apcc-mint-200); border-radius: var(--apcc-radius);
	padding: 1.75rem; height: 100%; display: flex; flex-direction: column;
}
html body .ax-event__label { font-size: var(--ax-fs-meta); font-weight: 700; color: var(--apcc-ochre); margin: 0 0 1rem; }
html body .ax-event__row { display: flex; gap: 1.25rem; align-items: center; margin: 0 0 1rem; }
html body .ax-date {
	flex: none; width: 76px; padding: .6rem 0 .7rem; border-radius: 12px; background: var(--apcc-green-900); color: var(--apcc-mint-100);
	display: flex; flex-direction: column; align-items: center; font-size: .75rem; font-weight: 600; line-height: 1.2;
}
html body .ax-date span { font-family: var(--apcc-font-display); font-size: 2rem; font-weight: 700; color: #fff; line-height: 1; margin-bottom: .2rem; }
html body .ax-event .ax-h3 { margin-bottom: .3rem; }
html body .ax-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; margin-top: auto; padding-top: .5rem; }
html body .ax-news { list-style: none; margin: 0; padding: 0; background: var(--apcc-white); border: 1px solid var(--apcc-mint-200); border-radius: var(--apcc-radius); overflow: hidden; }
html body .ax-news li + li { border-top: 1px solid var(--apcc-mint-200); }
html body .ax-news a { display: grid; gap: .35rem; padding: 1.2rem 1.5rem; text-decoration: none; transition: background .15s; }
html body .ax-news a:hover { background: var(--apcc-mint-50); }
html body .ax-news__meta { font-size: var(--ax-fs-meta); color: var(--apcc-muted); font-weight: 600; }
html body .ax-news__title { font-family: var(--apcc-font-display); font-weight: 700; font-size: 1.05rem; line-height: 1.35; color: var(--apcc-green-900); }
html body .ax-news a:hover .ax-news__title { color: var(--apcc-green-600); text-decoration: underline; }

/* ---------- CTA band ---------- */
html body .ax-cta { display: flex; align-items: center; justify-content: space-between; gap: 2rem 3rem; flex-wrap: wrap; }
html body .ax-band--cta .ax-h2 { color: #fff; max-width: 20ch; margin-bottom: .75rem; }
html body .ax-band--cta p { color: var(--apcc-mint-100); margin: 0; max-width: 52ch; }
html body .ax-band--cta .ax-actions { margin: 0; padding: 0; }
html body .btn.ax-btn-gold { background: var(--apcc-gold-bright); border: 2px solid var(--apcc-gold-bright); color: var(--apcc-green-950); }
html body .btn.ax-btn-gold:hover { background: #fff; border-color: #fff; color: var(--apcc-green-950); }
html body .btn.ax-btn-light { background: transparent; border: 2px solid rgba(255, 255, 255, .7); color: #fff; }
html body .btn.ax-btn-light:hover { background: #fff; border-color: #fff; color: var(--apcc-green-900); }

/* ---------- Partners ---------- */
html body .ax-partners { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--ax-gap); }
html body .ax-partners li {
	display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 1rem; align-items: center;
	padding: 1.1rem 1.25rem; background: var(--apcc-mint-50); border-radius: var(--apcc-radius);
}
html body .ax-partners__mark {
	width: 48px; height: 48px; border-radius: 12px; display: grid; place-items: center;
	background: var(--apcc-white); border: 1px solid var(--apcc-mint-200);
	font-family: var(--apcc-font-display); font-weight: 800; font-size: .85rem; letter-spacing: .02em; color: var(--apcc-green-700);
}
html body .ax-partners strong { display: block; font-family: var(--apcc-font-display); font-size: .98rem; line-height: 1.3; color: var(--apcc-green-900); margin-bottom: .2rem; }

/* ---------- Footer (shared) ---------- */
html body .site-footer :is(.footer-contact i, .footer-contact .fas) { color: var(--apcc-gold-bright); }
html body .site-footer .footer-social a { background: rgba(255, 255, 255, .1); color: #fff; }
html body .site-footer .footer-social a:hover { background: var(--apcc-gold-bright); color: var(--apcc-green-950); }
html body .site-footer a:not(.footer-logo-link):hover { color: var(--apcc-gold-bright); }

/* ---------- Home hero polish ---------- */
html body .net-hero { background: linear-gradient(180deg, var(--apcc-white) 0%, var(--apcc-mint-50) 100%); }
html body .net-hero .hero-title { font-size: clamp(2.3rem, 1.4rem + 3vw, 3.75rem); }
html body .net-stats dd { color: var(--apcc-green-700); }
html body .net-stats dt { font-size: var(--ax-fs-meta); }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
	html body .ax-partners { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	html body .ax-values { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
	html body :is(.ax-grid--3, .ax-grid--4, .ax-mv, .ax-split, .ax-updates) { grid-template-columns: minmax(0, 1fr); }
	html body .ax-split__media { order: -1; }
	html body .ax-split__media::after { right: -8px; bottom: -8px; }
	html body .ax-band--cta::after { opacity: .08; width: 90%; }
	html body .ax-card > .ax-h3 { min-height: 0; }
}
@media (max-width: 600px) {
	html body :is(.ax-partners, .ax-values) { grid-template-columns: minmax(0, 1fr); }
	html body .ax-head { align-items: flex-start; flex-direction: column; gap: .25rem; margin-bottom: 1.5rem; }
	html body .ax-event__row { align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
	html body :is(.ax-card, .ax-more i, .ax-card__cta i) { transition: none; }
	html body :is(.ax-card--link, .ax-card:has(.ax-card__cta)):hover { transform: none; }
}

/* ---------- Search (results list reuses the news list) ---------- */
html body .ax-searchbar {
	display: flex; align-items: center; gap: .75rem; max-width: 680px; margin: 1.5rem 0 0;
	background: var(--apcc-white); border: 1px solid var(--apcc-mint-300); border-radius: 12px; padding: .4rem .4rem .4rem 1rem;
}
html body .ax-searchbar:focus-within { border-color: var(--apcc-green-600); box-shadow: 0 0 0 3px var(--apcc-mint-100); }
html body .ax-searchbar i { color: var(--apcc-green-700); }
html body .ax-searchbar input[type="search"] {
	flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; font: inherit; font-size: 1rem;
	color: var(--apcc-ink); min-height: var(--apcc-tap); padding: 0; box-shadow: none;
}
html body .ax-searchbar .btn { flex: none; }
html body .ax-search-count { margin: 1rem 0 0; font-size: var(--ax-fs-meta); color: var(--apcc-muted); }
html body .ax-search-count strong { color: var(--apcc-green-900); }
html body .ax-results { list-style: none; margin: 0; padding: 0; background: var(--apcc-white); border: 1px solid var(--apcc-mint-200); border-radius: var(--apcc-radius); overflow: hidden; }
html body .ax-results li + li { border-top: 1px solid var(--apcc-mint-200); }
html body .ax-results a { display: grid; gap: .45rem; padding: 1.35rem 1.75rem; text-decoration: none; transition: background .15s; }
html body .ax-results a:hover { background: var(--apcc-mint-50); }
html body .ax-results a:hover .ax-news__title { color: var(--apcc-green-600); text-decoration: underline; }
html body .ax-results .ax-news__meta { display: flex; align-items: center; gap: .75rem; }
html body .ax-results .ax-news__title { font-size: 1.15rem; }
html body .ax-results__excerpt { font-size: .95rem; line-height: 1.6; color: var(--apcc-text); max-width: 80ch; }
html body .ax-pagination { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.5rem; }
html body .ax-pagination :is(a, span) {
	display: inline-flex; align-items: center; gap: .4rem; min-height: var(--apcc-tap); min-width: var(--apcc-tap); justify-content: center;
	padding: 0 .9rem; border-radius: var(--apcc-radius-sm); border: 1px solid var(--apcc-mint-200); background: var(--apcc-white);
	color: var(--apcc-green-700); font-weight: 700; text-decoration: none;
}
html body .ax-pagination .current { background: var(--apcc-green-700); border-color: var(--apcc-green-700); color: #fff; }
html body .ax-empty { margin: 0 0 2rem; }
html body .ax-empty .ax-h2 { margin-bottom: .75rem; }
@media (max-width: 600px) {
	html body .ax-searchbar { flex-wrap: wrap; padding: .5rem; }
	html body .ax-searchbar .btn { width: 100%; }
	html body .ax-results a { padding: 1.1rem 1.25rem; }
}

/* ---------- One wrapper edge everywhere: content aligns with header/footer ---------- */
/* Section-level panels become plain content (no inset box); real cards keep their padding. */
html body main :is(.content-block, .content-block.bg-light, .news-article__shell, .policy-section, .scope-priorities) {
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	padding-left: 0;
	padding-right: 0;
	margin-left: 0;
	margin-right: 0;
	max-width: none;
}
html body main .news-article__shell { margin-top: 0; }
html body main :is(.scope-intro, .partner-directory-subtitle, .section-subtitle, .governance-intro, .about-intro) { margin-left: 0; margin-right: 0; text-align: left; }
html body main :is(.page-header, .apcc-pagehead, .search-hero, .news-article__header, .event-header) { padding-left: 0; padding-right: 0; }
html body main .page-header > .container { margin-left: auto; margin-right: auto; }
/* nested containers never double the gutter */
html body main :is(.container, .apcc-container, .apcc-wrap, .apcc-cl-wrap) :is(.container, .apcc-container, .apcc-wrap) { padding-left: 0; padding-right: 0; max-width: none; }

/* ---------- Page-header map: its own layer, always the whole continent ---------- */
html body :is(.page-header, .apcc-pagehead, .apcc-conf .apcc-hero, .apcc-confpage .apcc-hero, .event-header, .news-article__header, .search-hero) {
	background-image: none;
	background-color: var(--apcc-white);
	position: relative;
	isolation: isolate;
}
html body :is(.page-header, .apcc-pagehead, .apcc-conf .apcc-hero, .apcc-confpage .apcc-hero, .event-header, .news-article__header, .search-hero)::before {
	content: "";
	position: absolute;
	z-index: -1;
	top: calc(var(--apcc-header-h) + 1.25rem);
	bottom: 1.25rem;
	right: max(var(--site-wrapper-gutter, 2rem), calc((100vw - var(--site-wrapper-width, 1400px)) / 2 + var(--site-wrapper-gutter, 2rem)));
	width: min(34vw, 460px);
	background: var(--apcc-map-url) no-repeat right center / contain;
	pointer-events: none;
}
@media (max-width: 1100px) {
	html body :is(.page-header, .apcc-pagehead, .apcc-conf .apcc-hero, .apcc-confpage .apcc-hero, .event-header, .news-article__header, .search-hero)::before { content: none; }
}
html body #primary > :is(header.page-header, .page-header) { padding-left: 0; padding-right: 0; }


/* =====================================================================
   Legacy page components → the ax system (other pages, until migrated)
   ===================================================================== */

/* one type scale */
html body main :is(h2, .section-title, .block-title, .pw-heading, .apcc-h2) { font-size: var(--ax-fs-h2); line-height: var(--ax-lh-heading); letter-spacing: 0; }
html body main :is(.value-card, .principle-card, .pathway-card, .program-card, .collab-type-card, .scope-card, .difference-item,
	.governance-body-card, .event-page-card, .news-list-card, .partner-directory-card, .pw-card, .apcc-card, .apcc-step, .contact-detail-item, .data-principle-item, .priority-item, .ecosystem-item) :is(h3, h4, h5, .apcc-h3, .partner-name, .news-list-title) {
	font-family: var(--apcc-font-display); font-size: var(--ax-fs-h3); line-height: 1.35; letter-spacing: 0; color: var(--apcc-green-900); margin: 0 0 .5rem;
}
html body main :is(.value-card, .principle-card, .pathway-card, .program-card, .collab-type-card, .scope-card, .difference-item,
	.governance-body-card, .event-page-card, .news-list-card, .partner-directory-card, .pw-card, .apcc-card, .contact-detail-item, .data-principle-item, .priority-item, .ecosystem-item) p {
	font-size: var(--ax-fs-body); line-height: 1.65; color: var(--apcc-text);
}
html body main :is(p, li) { font-size: var(--ax-fs-body); }
html body main :is(.page-description, .apcc-lead, .intro-text, .lead) { font-size: var(--ax-fs-lede); }

/* grids: no centred orphan rows; cards fill the row */
html body main .difference-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: var(--ax-gap); justify-content: stretch; }
html body main .difference-grid > * { width: auto; max-width: none; flex: none; }
html body main :is(.values-grid, .principles-grid, .data-principles-grid, .pathways-grid, .collab-types-grid, .scope-grid, .programs-grid, .governance-summary-grid) { gap: var(--ax-gap); }
html body main :is(.difference-item, .value-card, .principle-card) { text-align: left; align-items: flex-start; }
html body main :is(.difference-icon, .value-icon, .principle-icon) { margin-left: 0; margin-right: 0; }

/* the one dark band on inner pages: purpose / stewardship / CTA boxes */
html body main :is(.purpose-box, .cta-box, .collaboration-cta, .governance-cta) {
	background: var(--apcc-green-900); color: var(--apcc-mint-100); border-radius: var(--apcc-radius); padding: 2rem;
}
html body main :is(.purpose-box, .cta-box, .collaboration-cta, .governance-cta) :is(h2, h3, h4) { color: #fff; }
html body main :is(.purpose-box, .cta-box, .collaboration-cta, .governance-cta) :is(p, li) { color: var(--apcc-mint-100); }
html body main :is(.purpose-box, .cta-box, .collaboration-cta, .governance-cta) i { color: var(--apcc-gold-bright); }
html body main :is(.purpose-box, .cta-box, .collaboration-cta, .governance-cta) .btn-primary { background: var(--apcc-gold-bright); border-color: var(--apcc-gold-bright); color: var(--apcc-green-950); }
html body main .hosting-box { background: var(--apcc-mint-50); border: 1px solid var(--apcc-mint-200); border-radius: var(--apcc-radius); padding: 1.5rem; }

/* conference: bottom call to action = same as homepage CTA */
html body .apcc-confpage .apcc-actionband {
	background: var(--apcc-green-700); color: #fff; border-radius: var(--apcc-radius); padding: clamp(1.75rem, 3vw, 2.75rem);
	text-align: left; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem 3rem; flex-wrap: wrap;
}
html body .apcc-confpage .apcc-actionband :is(h2, .apcc-h2) { color: #fff; margin: 0 0 .5rem; font-size: var(--ax-fs-h2); line-height: var(--ax-lh-heading); max-width: 22ch; }
html body .apcc-confpage .apcc-actionband p { color: var(--apcc-mint-100); margin: 0; max-width: 52ch; text-align: left; }
html body .apcc-confpage .apcc-actionband__btns { justify-content: flex-start; margin: 0; }
html body .apcc-confpage .apcc-actionband .apcc-btn--gold,
html body .apcc-confpage .apcc-actionband .apcc-btn--primary { background: var(--apcc-gold-bright); border-color: var(--apcc-gold-bright); color: var(--apcc-green-950); }
html body .apcc-confpage .apcc-actionband :is(.apcc-btn--ghost, .apcc-btn--outline) { background: transparent; border-color: rgba(255,255,255,.7); color: #fff; }

/* conference landing sections: same band rhythm as the homepage */
html body .apcc-confpage .apcc-section { padding: var(--ax-band-y) 0; }
html body .apcc-confpage .apcc-section--alt { background: var(--apcc-mint-50); }
html body .apcc-confpage .apcc-stats { margin-top: 0; padding-top: 2rem; }
html body .apcc-confpage .apcc-stat__n { color: var(--apcc-green-700); font-size: clamp(2rem, 3vw, 2.6rem); }

/* events list: date block like the homepage event */
html body main .event-list-card { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 1.5rem; align-items: start; padding: 1.5rem; overflow: visible; }
html body main .event-list-card .event-page-date,
html body main .event-page-date {
	width: 96px; min-height: 0; height: auto; padding: .8rem 0 .9rem; border-radius: 12px;
	background: var(--apcc-green-900); color: var(--apcc-mint-100); box-shadow: none;
	display: flex; flex-direction: column; align-items: center; justify-content: flex-start;
}
html body main .event-page-date::before { content: none; }
html body main .event-page-date.event-past-date { background: var(--apcc-mint-100); color: var(--apcc-green-900); }
html body main .event-page-date :is(.date-day) { font-family: var(--apcc-font-display); font-size: 2.1rem; font-weight: 700; line-height: 1; color: inherit; }
html body main .event-page-date :is(.date-month, .date-year) { font-size: .8rem; font-weight: 700; letter-spacing: .04em; color: inherit; opacity: .9; }
html body main .event-page-content { padding: 0; }
html body main .events-list-separator { color: var(--apcc-muted); font-size: var(--ax-fs-meta); text-transform: none; letter-spacing: 0; text-align: left; margin: 2.5rem 0 1rem; }
html body main .events-list-separator::before, html body main .events-list-separator::after { content: none; }
html body main :is(.event-page-link, .news-list-link, .read-more, .partner-directory-link) { font-weight: 700; color: var(--apcc-green-700); background: none; padding-left: 0; }

/* news list: like the homepage news list items */
html body main .news-list-card { padding: 1.5rem; }
html body main .news-list-meta { font-size: var(--ax-fs-meta); color: var(--apcc-muted); }
html body main .news-list-category { background: var(--apcc-mint-100); color: var(--apcc-green-900); border-radius: 999px; padding: .15rem .6rem; font-weight: 700; font-size: .78rem; }

/* contact */
html body main .wpcf7-submit { opacity: 1; background: var(--apcc-green-700); border: 2px solid var(--apcc-green-700); color: #fff; border-radius: var(--apcc-radius-sm); padding: .85rem 1.6rem; font-weight: 700; text-transform: none; letter-spacing: 0; }
html body main .wpcf7-submit:hover { background: var(--apcc-green-900); border-color: var(--apcc-green-900); }
html body main .wpcf7-submit:disabled { opacity: .6; }
html body main .contact-detail-item i, html body main .contact-info i { color: var(--apcc-green-700); }

/* governance body badges + key facts */
html body main .governance-body-card .body-badge { background: var(--apcc-ochre-soft); color: var(--apcc-ochre); }
html body main :is(.body-details, .body-meta) > * { background: var(--apcc-mint-50); border: 0; border-radius: var(--apcc-radius-sm); }

/* timeline (About): stays inside the wrapper */
html body main .timeline { max-width: 100%; overflow: hidden; }
html body main .timeline-item { max-width: 100%; transform: none; }
html body main .timeline-item .content { max-width: 100%; }

/* privacy policy sections */
html body main .privacy-policy-page .policy-section { border-top: 1px solid var(--apcc-mint-200); padding-top: 1.75rem; margin-bottom: 0; }
html body main .privacy-policy-page .policy-section h2 { font-size: var(--ax-fs-h3); text-align: left; color: var(--apcc-green-900); }
html body main .privacy-policy-page .policy-section h2::after { content: none; }
html body main .about-intro > p { max-width: 72ch; }
html body main .apcc-about-page .difference-grid, html body main .difference-grid { gap: var(--ax-gap); column-gap: var(--ax-gap); row-gap: var(--ax-gap); }
html body main .difference-grid .difference-item { margin: 0; text-align: left; display: flex; flex-direction: column; align-items: flex-start; }
html body main .difference-grid .difference-item :is(h3, h4, p) { text-align: left; }

/* ---------- Home hero: exact header edges on both sides ---------- */
html body .net-hero > .container.net-hero__grid {
	width: 100%;
	max-width: var(--site-wrapper-width, 1400px);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--site-wrapper-gutter, 2rem);
	padding-right: var(--site-wrapper-gutter, 2rem);
}
html body .net-hero__map { display: flex; flex-direction: column; align-items: flex-end; }
html body .net-hero__map .net-map { width: 100%; height: auto; max-height: 620px; margin-left: auto; }
html body .net-hero__map figcaption { justify-content: flex-end; }
@media (max-width: 900px) {
	html body .net-hero__map { align-items: stretch; max-width: none; margin: 0; }
	html body .net-hero__map .net-map { max-height: 420px; }
	html body .net-hero__map figcaption { justify-content: flex-start; }
}
/* research-plugin pages (Publications/Research) use the same wrapper */
html body .ar-page-container, html body main > .container > .container { max-width: none; padding-left: 0; padding-right: 0; }


/* =====================================================================
   Typography (final): Atkinson Hyperlegible Next for titles, Noto Sans
   for text. Moderate sizes, open line heights, no tight tracking.
   ===================================================================== */
html body { line-height: var(--ax-lh-body); }
html body :is(main, .site-footer) :is(p, li, dd, td) { line-height: var(--ax-lh-body); }
html body :is(h1, h2, h3, h4, h5, h6, .page-title, .hero-title, .section-title, .block-title, .ax-h2, .ax-h3, .ax-statement,
	.apcc-h2, .apcc-h3, .pw-heading, .news-list-title, .partner-name, .event-title, .footer-title,
	.ax-news__title, .net-stats dd, .ax-values strong, .ax-partners strong) {
	font-family: var(--apcc-font-display);
	letter-spacing: 0;
	font-weight: 700;
}
/* page titles (all page headers, plugin headers, cohort pages) */
html body :is(.page-header, .apcc-pagehead, .apcc-conf .apcc-hero, .apcc-confpage .apcc-hero, .event-header, .news-article__header, .search-hero, .apcc-cl-phero, .apcc-cl-hero) :is(h1, .page-title, .event-title),
html body .apcc-cd.cohort-discovery .cohort-discovery-hero h1 {
	font-size: var(--ax-fs-h1);
	line-height: 1.18;
	letter-spacing: 0;
	max-width: 24ch;
}
html body .net-hero .hero-title { font-size: clamp(2.1rem, 1.5rem + 2vw, 3rem); line-height: 1.15; letter-spacing: 0; max-width: 18ch; }
/* section titles */
html body main :is(h2, .section-title, .block-title, .pw-heading, .apcc-h2, .ax-h2),
html body .apcc-cd.cohort-discovery .cohort-discovery-results-heading h2 {
	font-size: var(--ax-fs-h2);
	line-height: var(--ax-lh-heading);
	letter-spacing: 0;
}
html body .apcc-cd.cohort-discovery .cohort-discovery-filter-heading h2 { font-size: 1.15rem; line-height: 1.3; }
/* card / item titles */
html body main :is(h3, h4, h5, .ax-h3, .apcc-h3, .news-list-title, .partner-name),
html body .apcc-cd.cohort-discovery .cohort-discovery-card h3 {
	font-size: var(--ax-fs-h3);
	line-height: 1.35;
	letter-spacing: 0;
}
html body .ax-band .ax-statement { font-size: var(--ax-fs-statement); line-height: 1.35; letter-spacing: 0; font-weight: 600; }
html body .ax-news__title, html body .ax-results .ax-news__title { line-height: 1.4; }
html body .net-stats dd { letter-spacing: 0; }
html body :is(.ax-lede, .page-header p, .net-hero .hero-subtitle) { line-height: 1.65; }
html body .ax-card > .ax-h3 { min-height: 2.7em; }

/* ---------- Disabled actions (e.g. abstract submission closed) ---------- */
html body :is(.btn, .apcc-btn, .apcc-optcard, .ax-card__cta).is-disabled,
html body :is(.btn, .apcc-btn, .apcc-optcard, .ax-card__cta)[aria-disabled="true"] {
	background: var(--apcc-mint-100);
	border-color: var(--apcc-mint-200);
	color: #56685e;
	box-shadow: none;
	transform: none;
	cursor: not-allowed;
	pointer-events: auto;
	opacity: 1;
}
html body .apcc-optcard.is-disabled :is(strong, span) { color: #56685e; }

/* ---------- Home hero title: balanced lines, no single-word last line ---------- */
html body .net-hero .hero-title { max-width: 20ch; text-wrap: balance; }


/* ---------- Dark surfaces: headings and text always light ---------- */
html body :is(.stewardship-header, .apcc-cl-cta, .apcc-cl-phero, .apcc-cl-hero, .ax-band--green, .ax-band--cta,
	.purpose-box, .cta-box, .collaboration-cta, .governance-cta, .site-footer):not(.ax-none) :is(h1, h2, h3, h4, h5, h6, .page-title, .apcc-cl-form-title) {
	color: #fff;
}
html body :is(.stewardship-header, .apcc-cl-cta):not(.ax-none) :is(p, li, label, small) { color: var(--apcc-mint-100); }
html body .stewardship-header i { color: var(--apcc-gold-bright); }
html body main .stewardship-header { text-align: left; }
html body main .stewardship-header :is(h3, h4) { text-align: left; }


/* =====================================================================
   Alignment + line breaking (site-wide)
   ===================================================================== */
/* headings break into even lines; body text never strands a single word */
html body :is(h1, h2, h3, h4, h5, h6, .page-title, .hero-title, .ax-h2, .ax-h3, .ax-statement, .ax-news__title, .event-title) { text-wrap: balance; }
html body :is(main, .site-footer) :is(p, li, dd, dt, blockquote, figcaption, label, .ax-results__excerpt) { text-wrap: pretty; }
/* page titles use the width they need (no forced two-line titles) */
html body :is(.page-header, .apcc-pagehead, .apcc-conf .apcc-hero, .apcc-confpage .apcc-hero, .event-header, .news-article__header, .search-hero, .apcc-cl-phero, .apcc-cl-hero) :is(h1, .page-title, .event-title),
html body .apcc-cd.cohort-discovery .cohort-discovery-hero h1 { max-width: 34ch; }
/* short one-line UI text never wraps */
html body :is(.ax-more, .ax-card__cta, .btn, .apcc-btn, .page-numbers, .ax-chip, .body-badge, .partner-type-badge) { white-space: nowrap; }
/* fact lists: label column sized to its content */
html body :is(.ax-facts, .apcc-cd .cohort-discovery-card dl) div { grid-template-columns: max-content minmax(0, 1fr); column-gap: 1rem; }
html body .apcc-cd .cohort-discovery-card dt { white-space: nowrap; }
/* badges / CTAs inside cards align with their text */
html body main :is(.body-badge, .governance-body-card .body-badge) { justify-self: start; align-self: flex-start; margin-left: 0; }
html body main :is(.governance-cta, .collaboration-cta, .event-sidebar-cta, .apcc-reoi-finale, .stewardship-header) :is(p, h2, h3, h4, .btn) { text-align: left; margin-left: 0; margin-right: 0; }
html body .apcc-reoi-finale .apcc-news-btn { min-width: 0; }
@media (max-width: 600px) { html body :is(.ax-more, .ax-card__cta, .btn, .apcc-btn) { white-space: normal; } }
