/* ==========================================================================
   PCBBE 2027 – theme styles (design variant B)
   Colours come only from the tokens below; the high-contrast mode swaps them.
   All sizes are in rem, so the A / A+ / A++ switch scales the whole page.
   ========================================================================== */

:root {
	/* Brand */
	--navy: #082a41;
	--navy-2: #0e3d5c;
	--navy-line: #2f5167;
	--navy-muted: #9fb4c2;
	--navy-soft: #dce5ea;
	--teal: #39a2a0;       /* logo turquoise: decoration, buttons on navy (4.8:1 with navy text) */
	--teal-dark: #1c6e6c;  /* links and small text on white (6.0:1) */
	--teal-light: #5bc4c1; /* focus ring and hover on navy (7.1:1) */
	--grey: #eef2f4;
	--grey-line: #d5dde2;
	--slate: #4a5a66;      /* secondary text on white (7.0:1) */
	--white: #fff;

	/* Roles */
	--c-bg: var(--white);
	--c-text: var(--navy);
	--c-muted: var(--slate);
	--c-link: var(--teal-dark);
	--c-link-hover: var(--navy);
	--c-line: var(--grey-line);
	--c-line-strong: var(--navy);
	--c-alt-bg: var(--grey);
	--c-dark-bg: var(--navy);
	--c-dark-bg-2: var(--navy-2);
	--c-dark-text: var(--white);
	--c-dark-muted: var(--navy-muted);
	--c-dark-soft: var(--navy-soft);
	--c-dark-line: var(--navy-line);
	--c-dark-accent: var(--teal);
	--c-dark-link: var(--white);
	--c-accent: var(--teal);
	--c-on-accent: var(--navy);
	--c-btn: var(--navy);
	--c-btn-text: var(--white);
	--c-btn-hover: var(--teal-dark);
	--c-btn-dark: var(--teal);
	--c-btn-dark-text: var(--navy);
	--c-btn-dark-hover: var(--teal-light);
	--c-tool-line: #5c7a8c;
	--c-placeholder: var(--grey-line);
	--c-placeholder-figure: #b7c4cc;
	--c-focus: var(--navy);

	--font-body: "Atkinson Hyperlegible Next", "Atkinson Hyperlegible", system-ui, -apple-system, "Segoe UI", sans-serif;
	--font-head: "Barlow Semi Condensed", "Barlow", "Arial Narrow", system-ui, sans-serif;

	--gutter: clamp(1.25rem, 2.5vw, 2.5rem);
	--container: calc(90rem + 2 * var(--gutter)); /* content up to 1440 px, side margins 20–40 px */
	--header-h: 5.25rem;
	--speed: 0.18s;
}

/* High contrast: black background, white text, yellow links and buttons. */
html[data-contrast="high"] {
	--c-bg: #000;
	--c-text: #fff;
	--c-muted: #fff;
	--c-link: #ff0;
	--c-link-hover: #fff;
	--c-line: #fff;
	--c-line-strong: #fff;
	--c-alt-bg: #000;
	--c-dark-bg: #000;
	--c-dark-bg-2: #000;
	--c-dark-text: #fff;
	--c-dark-muted: #fff;
	--c-dark-soft: #fff;
	--c-dark-line: #fff;
	--c-dark-accent: #ff0;
	--c-dark-link: #ff0;
	--c-accent: #000;
	--c-on-accent: #fff;
	--c-btn: #ff0;
	--c-btn-text: #000;
	--c-btn-hover: #fff;
	--c-btn-dark: #ff0;
	--c-btn-dark-text: #000;
	--c-btn-dark-hover: #fff;
	--c-tool-line: #fff;
	--c-placeholder: #222;
	--c-placeholder-figure: #777;
	--c-focus: #ff0;
}

/* Text size switch. */
html { font-size: 100%; -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--header-h) + 1rem); }
html[data-text-size="1"] { font-size: 112.5%; }
html[data-text-size="2"] { font-size: 125%; }

*,
*::before,
*::after { box-sizing: border-box; }

body {
	margin: 0;
	background: var(--c-bg);
	color: var(--c-text);
	font-family: var(--font-body);
	font-size: 1.125rem;
	line-height: 1.6;
}

img,
svg { max-width: 100%; height: auto; }

a {
	color: var(--c-link);
	text-decoration-thickness: 0.08em;
	text-underline-offset: 0.18em;
	transition: color var(--speed), text-decoration-thickness var(--speed);
}
a:hover { color: var(--c-link-hover); text-decoration-thickness: 0.15em; }

:focus-visible {
	outline: 3px solid var(--c-focus);
	outline-offset: 2px;
}
.site-header,
.hero,
.section--dark,
.page-header,
.site-footer { --c-focus: var(--teal-light); }
html[data-contrast="high"] .site-header,
html[data-contrast="high"] .hero,
html[data-contrast="high"] .section--dark,
html[data-contrast="high"] .page-header,
html[data-contrast="high"] .site-footer { --c-focus: #ff0; }

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.skip-link {
	position: absolute;
	left: 1rem;
	top: -10rem;
	z-index: 1000;
	padding: 0.75rem 1.25rem;
	background: var(--c-btn-dark);
	color: var(--c-btn-dark-text);
	font-weight: 700;
	text-decoration: none;
}
.skip-link:focus { top: 1rem; }

.container {
	width: 100%;
	max-width: var(--container);
	margin-inline: auto;
	padding-inline: var(--gutter);
}

.site-main:focus { outline: none; }

.icon { width: 1.125em; height: 1.125em; flex: none; }

/* --------------------------------------------------------------------------
   Buttons
   -------------------------------------------------------------------------- */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	min-height: 3rem;
	padding: 0.5rem 1.5rem;
	border: 2px solid transparent;
	font-family: var(--font-head);
	font-size: 1.125rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1.1;
	text-transform: uppercase;
	text-decoration: none;
	transition: background-color var(--speed), color var(--speed), border-color var(--speed);
}
.btn .icon { width: 1rem; height: 1rem; }
.btn--primary { background: var(--c-btn); color: var(--c-btn-text); }
.btn--primary:hover { background: var(--c-btn-hover); color: var(--c-btn-text); }
.btn--accent { background: var(--c-btn-dark); color: var(--c-btn-dark-text); }
.btn--accent:hover { background: var(--c-btn-dark-hover); color: var(--c-btn-dark-text); }
.btn--outline { border-color: var(--c-line-strong); color: var(--c-text); }
.btn--outline:hover { background: var(--c-text); color: var(--c-bg); }
.btn--outline-light { border-color: var(--c-dark-text); color: var(--c-dark-text); }
.btn--outline-light:hover { background: var(--c-dark-text); color: var(--c-dark-bg); }
.btn--small { min-height: 2.875rem; padding-inline: 1.25rem; }
.btn--large { min-height: 3.5rem; padding-inline: 1.75rem; font-size: 1.1875rem; }

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */
.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--c-dark-bg);
	color: var(--c-dark-text);
	border-bottom: 1px solid var(--c-dark-line);
}
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .site-header { top: 0; } }

.site-header__inner {
	position: relative;
	display: flex;
	align-items: center;
	gap: 0.75rem 1.5rem;
	min-height: var(--header-h);
	transition: min-height var(--speed);
}
.site-header.is-compact .site-header__inner { min-height: 4rem; }

.site-header__logo { display: block; flex: none; margin-right: auto; }
.site-header__logo .logo {
	display: block;
	width: auto;
	height: 4.5rem;
	transition: height var(--speed);
}
.site-header.is-compact .site-header__logo .logo { height: 3.5rem; }

.site-header__tools,
.site-header__util {
	display: flex;
	align-items: center;
	gap: 0.375rem;
}

.tool-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.75rem;
	height: 2.75rem;
	padding: 0 0.5rem;
	border: 1px solid var(--c-tool-line);
	background: transparent;
	color: var(--c-dark-text);
	font: inherit;
	font-size: 1rem;
	font-weight: 700;
	text-decoration: none;
	cursor: pointer;
	transition: background-color var(--speed), border-color var(--speed);
}
.tool-btn:hover { background: var(--c-dark-bg-2); border-color: var(--c-dark-text); color: var(--c-dark-text); }
.tool-btn[aria-pressed="true"],
.tool-btn[aria-expanded="true"] { background: var(--c-dark-text); color: var(--c-dark-bg); }
.site-header__cta { margin-left: 0.5rem; }

/* Text size / contrast panel */
.a11y { position: relative; }
.a11y__panel {
	position: absolute;
	right: 0;
	top: calc(100% + 0.5rem);
	z-index: 120;
	width: 17rem;
	padding: 1rem;
	background: var(--c-bg);
	color: var(--c-text);
	border: 2px solid var(--c-line-strong);
	--c-focus: var(--navy);
}
html[data-contrast="high"] .a11y__panel { --c-focus: #ff0; }
.a11y__panel[hidden] { display: none; }
.a11y__label { margin: 0 0 0.5rem; font-weight: 700; font-size: 1rem; }
.a11y__sizes { display: flex; gap: 0.375rem; margin-bottom: 0.875rem; }
.a11y__size,
.a11y__contrast {
	min-height: 2.75rem;
	border: 2px solid var(--c-line-strong);
	background: var(--c-bg);
	color: var(--c-text);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}
.a11y__size { flex: 1; font-size: 1rem; }
.a11y__size--1 { font-size: 1.1875rem; }
.a11y__size--2 { font-size: 1.375rem; }
.a11y__size[aria-pressed="true"],
.a11y__contrast[aria-pressed="true"] { background: var(--c-btn); color: var(--c-btn-text); border-color: var(--c-btn); }
.a11y__contrast {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	width: 100%;
	font-size: 1rem;
}

/* Main navigation */
.nav-toggle {
	display: none;
	align-items: center;
	gap: 0.5rem;
	min-height: 2.75rem;
	padding: 0 0.875rem;
	border: 0;
	background: var(--c-btn-dark);
	color: var(--c-btn-dark-text);
	font-family: var(--font-head);
	font-size: 1.0625rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	cursor: pointer;
}
.nav-toggle__icon { display: inline-flex; }
.nav-toggle__icon--close,
.nav-toggle[aria-expanded="true"] .nav-toggle__icon--open { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle__icon--close { display: inline-flex; }

.primary-nav .menu {
	display: flex;
	flex-wrap: wrap;
	margin: 0;
	padding: 0;
	list-style: none;
}
.primary-nav .menu-item,
.primary-nav .page_item { position: relative; }

.nav-link,
.primary-nav .page_item > a {
	display: flex;
	align-items: center;
	gap: 0.25rem;
	padding: 0.75rem 0.75rem 0.5625rem;
	border: 0;
	border-bottom: 3px solid transparent;
	background: none;
	color: var(--c-dark-text);
	font-family: var(--font-head);
	font-size: 1.0625rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	line-height: 1.2;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	transition: border-color var(--speed), color var(--speed);
}
.nav-link:hover,
.primary-nav .page_item > a:hover,
.menu-item.is-current > .nav-link,
.menu-item.is-current-section > .nav-link,
.primary-nav .current_page_item > a { border-bottom-color: var(--c-dark-accent); color: var(--c-dark-text); }

.submenu-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2rem;
	padding: 0;
	border: 0;
	background: none;
	color: var(--c-dark-text);
	cursor: pointer;
}
.submenu-toggle--label { padding: 0.75rem 0.75rem 0.5625rem; }
.submenu-toggle .icon { width: 1rem; height: 1rem; transition: transform var(--speed); }
.submenu-toggle[aria-expanded="true"] .icon { transform: rotate(180deg); }
.has-submenu { display: flex; flex-wrap: wrap; align-items: stretch; }

.sub-menu {
	display: none;
	margin: 0;
	padding: 0.5rem 0;
	list-style: none;
}
.has-submenu.is-open > .sub-menu { display: block; }
.subnav-link {
	display: block;
	padding: 0.625rem 1.25rem;
	color: var(--c-dark-text);
	font-size: 1rem;
	line-height: 1.35;
	text-decoration: none;
}
.subnav-link:hover,
.subnav-link[aria-current="page"] {
	background: var(--c-dark-bg-2);
	color: var(--c-dark-text);
	text-decoration: underline;
	text-decoration-color: var(--c-dark-accent);
	text-decoration-thickness: 2px;
}

.primary-nav__cta { display: none; }

/* Desktop navigation */
@media (min-width: 75em) {
	/* One line: logo | menu (centred on the logo) | text size, contrast and the button. */
	:root { --header-h: 8.75rem; }
	.site-header__inner {
		display: grid;
		grid-template-columns: auto minmax(0, 1fr) auto;
		grid-template-areas: "logo nav tools";
		align-items: center;
		column-gap: 1.75rem;
		padding-block: 0.5rem;
	}
	.site-header.is-compact .site-header__inner { min-height: 0; }
	.site-header__logo { grid-area: logo; margin-right: 0; }
	.site-header__logo .logo { height: 7.5rem; }
	.site-header.is-compact .site-header__logo .logo { height: 4.75rem; }
	.primary-nav { grid-area: nav; align-self: center; }
	.site-header__tools { grid-area: tools; gap: 0.5rem; }
	.site-header__util .tool-btn { min-width: 2.875rem; height: 2.875rem; }
	.site-header__cta { margin-left: 0; padding-inline: 1.125rem; }
	.nav-link,
	.primary-nav .page_item > a { padding-inline: 0.625rem; font-size: 1.1875rem; }
	.has-submenu > .nav-link { padding-right: 0.125rem; }
	.submenu-toggle { min-width: 1.5rem; }
	.sub-menu {
		position: absolute;
		left: 0;
		top: 100%;
		z-index: 110;
		min-width: 16rem;
		background: var(--c-dark-bg);
		border: 1px solid var(--c-dark-line);
		border-top: 3px solid var(--c-dark-accent);
	}
	@media (hover: hover) {
		.has-submenu:hover > .sub-menu { display: block; }
	}
}

/* Narrower desktops: slightly smaller menu text (and logo below 1280 px), so logo, menu and buttons fit on one line. */
@media (min-width: 75em) and (max-width: 89.99em) {
	.nav-link,
	.primary-nav .page_item > a { padding-inline: 0.4375rem; font-size: 1.0625rem; }
	.has-submenu > .nav-link { padding-right: 0.125rem; }
}
@media (min-width: 75em) and (max-width: 79.99em) {
	.nav-link,
	.primary-nav .page_item > a { padding-inline: 0.375rem; font-size: 1rem; }
	.site-header__logo .logo { height: 6.5rem; }
	.site-header__inner { column-gap: 1.25rem; }
}

/* Enlarged text on a laptop screen: the menu may take two lines, so the header stops following the page. */
@media (min-width: 75em) and (max-width: 89.99em) {
	html[data-text-size] { scroll-padding-top: 1rem; }
	html[data-text-size] .site-header { position: relative; top: auto; }
}

/* Mobile navigation */
@media (max-width: 74.99em) {
	.js .nav-toggle { display: inline-flex; order: 3; }
	.site-header__tools { order: 2; }
	.site-header__cta { display: none; }
	.tool-btn--contrast { display: none; }

	.primary-nav {
		order: 4;
		width: 100%;
	}
	.js .primary-nav {
		display: none;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		max-height: calc(100vh - var(--header-h));
		overflow-y: auto;
		padding: 0.5rem var(--gutter) 1.5rem;
		background: var(--c-dark-bg);
		border-top: 1px solid var(--c-dark-line);
		border-bottom: 3px solid var(--c-dark-accent);
	}
	.js .site-header.nav-open .primary-nav { display: block; }
	.primary-nav .menu { flex-direction: column; flex-wrap: nowrap; }
	.primary-nav .menu > li { border-bottom: 1px solid var(--c-dark-line); }
	.nav-link,
	.primary-nav .page_item > a { flex: 1; min-height: 3rem; border-bottom: 0; }
	.menu-item.is-current > .nav-link { text-decoration: underline; text-decoration-color: var(--c-dark-accent); text-decoration-thickness: 3px; }
	.submenu-toggle { min-width: 3rem; min-height: 3rem; }
	.submenu-toggle--label { flex: 1; justify-content: space-between; }
	.sub-menu { width: 100%; padding: 0 0 0.75rem 0.75rem; }
	.primary-nav__cta { display: block; margin-top: 1.25rem; }
	.primary-nav__cta .btn { width: 100%; }
}

@media (max-width: 30em) {
	:root { --gutter: 1.25rem; --header-h: 4.25rem; }
	.site-header__inner { flex-wrap: wrap; column-gap: 0.5rem; }
	.site-header__logo .logo { height: 3.5rem; }
	/* Largest text on a phone: keep the header on one line, the button keeps its accessible name. */
	html[data-text-size="2"] .nav-toggle__label {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
	}
}

/* --------------------------------------------------------------------------
   Hero
   -------------------------------------------------------------------------- */
.hero {
	background: var(--c-dark-bg);
	color: var(--c-dark-text);
	overflow: hidden;
}
.hero__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 2.5rem;
	padding-block: 2.5rem 3.5rem;
}
.hero__heading {
	margin: 0;
	font-size: 1rem;
	font-weight: 400;
}
.hero__heading > span { display: block; }
.hero__eyebrow {
	margin: 0 0 0.375rem;
	color: var(--c-dark-accent);
	font-family: var(--font-head);
	font-size: clamp(1.25rem, 1rem + 0.8vw, 1.625rem);
	font-weight: 600;
	line-height: 1.2;
}
.hero__title {
	margin: 0 0 2rem;
	font-family: var(--font-head);
	/* Capped by the screen width so the longest word still fits a 320 px phone at the largest text size. */
	font-size: min(clamp(2.5rem, 1.1rem + 4.6vw, 5.25rem), 11.5vw);
	font-weight: 700;
	line-height: 1.06; /* room for Polish diacritics (Ż, Ś, Ć) in capitals */
	letter-spacing: 0.005em;
	text-transform: uppercase;
	overflow-wrap: break-word;
	hyphens: manual;
}
.hero__facts {
	display: flex;
	flex-wrap: wrap;
	margin: 0 0 2.25rem;
	border-top: 1px solid var(--c-dark-line);
	border-bottom: 1px solid var(--c-dark-line);
	font-size: 1.25rem;
}
.hero__facts div { display: flex; gap: 0.5rem; padding: 0.875rem 2rem 0.875rem 0; }
.hero__facts dt { color: var(--c-dark-muted); }
.hero__facts dd { margin: 0; font-weight: 700; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 0.875rem; }

.hero__media {
	position: relative;
	order: -1;
	width: min(55%, 14rem);
	color: var(--c-dark-accent);
}
.hero__shield {
	/* The shield of the PCBBE 2027 logo: three merlons on top, pointed bottom. */
	clip-path: polygon(0% 0%, 24% 0%, 24% 8%, 38% 8%, 38% 0%, 62% 0%, 62% 8%, 76% 8%, 76% 0%, 100% 0%, 100% 64%, 96% 74%, 88% 83%, 76% 90%, 62% 96%, 50% 100%, 38% 96%, 24% 90%, 12% 83%, 4% 74%, 0% 64%);
	aspect-ratio: 440 / 520;
	background: var(--c-dark-bg-2);
}
.hero__photo {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 55% 50%;
}
.hero__traces {
	position: absolute;
	right: -2rem;
	bottom: -1.75rem;
	width: 65%;
	pointer-events: none;
}
.hero__traces-light { stroke: var(--c-dark-text); }
.hero__traces circle { fill: var(--c-dark-bg); }

@media (min-width: 56em) {
	.hero__inner {
		grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr);
		align-items: center;
		gap: 3.5rem;
		padding-block: 4.5rem 5.5rem;
	}
	.hero__media { order: 0; width: min(100%, 27.5rem); justify-self: center; }
	.hero__traces { right: -2.5rem; bottom: -2.5rem; }
}

/* --------------------------------------------------------------------------
   Announcement strip
   -------------------------------------------------------------------------- */
.announcement {
	background: var(--c-accent);
	color: var(--c-on-accent);
	--c-focus: var(--navy);
}
html[data-contrast="high"] .announcement { border-block: 2px solid #fff; --c-focus: #ff0; }
.announcement__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem 1.5rem;
	padding-block: 1rem;
}
.announcement__text { margin: 0; font-size: 1.1875rem; }
.announcement__link { color: var(--c-on-accent); font-weight: 700; }
.announcement__link:hover { color: var(--c-on-accent); }
html[data-contrast="high"] .announcement__link { color: #ff0; }

/* --------------------------------------------------------------------------
   Sections
   -------------------------------------------------------------------------- */
.section { padding-block: clamp(3.5rem, 2rem + 4vw, 5.5rem); }
.section--alt { background: var(--c-alt-bg); border-top: 1px solid var(--c-line); }
.section--dark { background: var(--c-dark-bg); color: var(--c-dark-text); }
.section--line { border-top: 1px solid var(--c-line); }
html[data-contrast="high"] .section { border-top: 1px solid #fff; }

.section__title {
	margin: 0;
	font-family: var(--font-head);
	font-size: clamp(1.875rem, 1.3rem + 1.6vw, 2.375rem);
	font-weight: 700;
	line-height: 1.05;
	letter-spacing: 0.005em;
	text-transform: uppercase;
}
.section__title--small { margin-bottom: 1.75rem; font-size: clamp(1.5rem, 1.2rem + 0.9vw, 1.875rem); }
.section__split { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem 3rem; }
@media (min-width: 56em) {
	.section__split { grid-template-columns: minmax(0, 1fr) minmax(0, 2.6fr); }
}
.section__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.75rem 1.5rem;
	margin-bottom: 2rem;
}
.more-link { font-weight: 700; }

.pcbbe-empty { margin: 0; color: var(--c-muted); }

/* Child pages list ([pcbbe_subpages]) */
.entry-content .pcbbe-subpages,
.pcbbe-subpages {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(17rem, 100%), 1fr));
	column-gap: 2.5rem;
	max-width: none;
	margin: 0 0 2rem;
	padding: 0;
	list-style: none;
	border-top: 2px solid var(--c-line-strong);
}
.pcbbe-subpages li { margin: 0; border-bottom: 1px solid var(--c-line); }
.pcbbe-subpages a {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.875rem 0;
	color: var(--c-text);
	font-weight: 700;
	text-decoration: none;
}
.pcbbe-subpages a::after { content: "→"; color: var(--c-link); transition: transform var(--speed); }
.pcbbe-subpages a:hover { text-decoration: underline; }
.pcbbe-subpages a:hover::after { transform: translateX(0.25rem); }
.pcbbe-registration { margin: 1.5rem 0; }

/* Conference topics ([pcbbe_topics] and home page) */
.topics__intro { max-width: 20rem; margin: 1rem 0 0; color: var(--c-muted); }
.pcbbe-topics__intro { margin: 0 0 1.25rem; color: var(--c-muted); }
.entry-content .pcbbe-topics__list,
.pcbbe-topics__list {
	margin: 0 0 2rem;
	padding: 0;
	list-style: none;
	border-top: 2px solid var(--c-line-strong);
}
.section .pcbbe-topics__list { margin-bottom: 0; }
@media (min-width: 40em) {
	.entry-content .pcbbe-topics__list,
	.pcbbe-topics__list { columns: 2; column-gap: 2.5rem; }
}
.entry-content .pcbbe-topics__list li,
.pcbbe-topics__list li {
	position: relative;
	margin: 0;
	padding: 0.6875rem 0 0.6875rem 1.25rem;
	border-bottom: 1px solid var(--c-line);
	line-height: 1.35;
	break-inside: avoid;
}
.pcbbe-topics__list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: calc(0.6875rem + 0.675em - 0.25rem);
	width: 0.5rem;
	height: 0.5rem;
	background: var(--c-accent);
}
html[data-contrast="high"] .pcbbe-topics__list li::before { background: currentColor; }

/* Link lists (About / Venue / Footer) */
.link-list {
	max-width: 32.5rem;
	margin: 1.5rem 0 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--c-line);
}
.link-list li { border-bottom: 1px solid var(--c-line); }
.link-list a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.75rem 0;
	color: inherit;
	font-weight: 700;
	text-decoration: none;
}
.link-list a::after { content: "→"; color: var(--c-link); transition: transform var(--speed); }
.link-list a:hover { text-decoration: underline; }
.link-list a:hover::after { transform: translateX(0.25rem); }
.section--dark .link-list { border-color: var(--c-dark-line); }
.section--dark .link-list li { border-color: var(--c-dark-line); }
.section--dark .link-list a { color: var(--c-dark-link); }
.section--dark .link-list a::after { color: var(--c-dark-accent); }

/* --------------------------------------------------------------------------
   Important dates (shortcode and home page)
   -------------------------------------------------------------------------- */
.pcbbe-dates { overflow-x: auto; }
.entry-content > .pcbbe-dates { margin-bottom: 1.75rem; }
.pcbbe-dates__table { width: 100%; border-collapse: collapse; font-size: 1.1875rem; }
.pcbbe-dates__table th {
	padding: 0 1.5rem 0.625rem 0;
	border-bottom: 2px solid var(--c-line-strong);
	color: var(--c-muted);
	font-size: 0.9375rem;
	font-weight: 700;
	text-align: left;
}
.pcbbe-dates__table td {
	padding: 1rem 1.5rem 1rem 0;
	border-bottom: 1px solid var(--c-line);
	vertical-align: baseline;
}
.pcbbe-dates__table tr:last-child td { border-bottom: 2px solid var(--c-line-strong); }
.pcbbe-dates__table th:last-child,
.pcbbe-dates__table td:last-child { padding-right: 0; }
.pcbbe-dates__date {
	font-family: var(--font-head);
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.15;
	white-space: nowrap;
}
.pcbbe-dates__tba { color: var(--c-muted); }
.pcbbe-dates__date del { color: var(--c-muted); font-size: 1.125rem; font-weight: 500; }
.pcbbe-dates__note { display: block; color: var(--c-link); font-family: var(--font-body); font-size: 0.875rem; font-weight: 700; }
.pcbbe-dates__status { color: var(--c-muted); white-space: nowrap; }
.is-next .pcbbe-dates__status,
.is-ongoing .pcbbe-dates__status { color: var(--c-link); font-weight: 700; }
.is-closed .pcbbe-dates__date,
.is-closed .pcbbe-dates__label { color: var(--c-muted); }
.is-conference .pcbbe-dates__label { font-weight: 700; }

@media (max-width: 40em) {
	.pcbbe-dates__table { font-size: 1.0625rem; }
	.pcbbe-dates__table th,
	.pcbbe-dates__table td { padding-right: 0.75rem; }
	.pcbbe-dates__date { font-size: 1.25rem; white-space: normal; }
	.pcbbe-dates__date del,
	.pcbbe-dates__extended { display: block; white-space: nowrap; }
	.pcbbe-dates__status { font-size: 0.9375rem; white-space: normal; }
}
/* Phones: the status moves under the milestone instead of a third column. */
.pcbbe-dates__status-inline { display: none; }
@media (max-width: 30em) {
	.pcbbe-dates__table th:last-child,
	.pcbbe-dates__table td.pcbbe-dates__status { display: none; }
	.pcbbe-dates__table th:nth-child(2),
	.pcbbe-dates__table td.pcbbe-dates__label { padding-right: 0; }
	.pcbbe-dates__status-inline { display: block; color: var(--c-muted); font-size: 0.9375rem; }
	.is-next .pcbbe-dates__status-inline,
	.is-ongoing .pcbbe-dates__status-inline { color: var(--c-link); font-weight: 700; }
}

/* --------------------------------------------------------------------------
   Speakers
   -------------------------------------------------------------------------- */
.pcbbe-speakers {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 2rem 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
@media (min-width: 56em) {
	.pcbbe-speakers { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2.5rem 1.5rem; }
}
.pcbbe-speaker__photo {
	aspect-ratio: 1;
	margin-bottom: 0.875rem;
	overflow: hidden;
	background: var(--c-placeholder);
}
.pcbbe-speaker__photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pcbbe-photo-placeholder { display: flex; align-items: flex-end; justify-content: center; width: 100%; height: 100%; }
.pcbbe-photo-placeholder svg { width: 70%; fill: var(--c-placeholder-figure); }
.pcbbe-speaker__name { margin: 0; font-family: var(--font-head); font-size: 1.4375rem; font-weight: 700; line-height: 1.2; }
.pcbbe-speaker__name a { color: inherit; text-decoration: none; }
.pcbbe-speaker__name a:hover { text-decoration: underline; }
.pcbbe-speaker__affiliation { margin: 0.125rem 0 0; color: var(--c-muted); font-size: 1rem; line-height: 1.4; }
.pcbbe-speaker__lecture { margin: 0.5rem 0 0; font-size: 1.0625rem; font-style: italic; line-height: 1.4; }

/* The whole card opens the details window; the name is the link (one tab stop per speaker). */
.pcbbe-speaker.has-details { position: relative; }
.pcbbe-speaker__link { color: inherit; text-decoration: none; }
.pcbbe-speaker__link::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.pcbbe-speaker.has-details:hover .pcbbe-speaker__link { text-decoration: underline; text-decoration-thickness: 0.08em; text-underline-offset: 0.15em; }
.pcbbe-speaker__link:focus-visible { outline: none; }
.pcbbe-speaker.has-details:has(.pcbbe-speaker__link:focus-visible) { outline: 3px solid var(--c-focus); outline-offset: 0.5rem; }
.pcbbe-speaker.has-details .pcbbe-speaker__photo img { transition: transform var(--speed), opacity var(--speed); }
.pcbbe-speaker.has-details:hover .pcbbe-speaker__photo img { opacity: 0.9; }
.pcbbe-speaker__more { display: flex; align-items: center; gap: 0.375rem; margin: 0.625rem 0 0; color: var(--c-link); font-size: 0.9375rem; font-weight: 700; }
.pcbbe-speaker__more::after { content: "→"; transition: transform var(--speed); }
.pcbbe-speaker.has-details:hover .pcbbe-speaker__more::after { transform: translateX(0.25rem); }

/* Speaker details window */
html:has(dialog[open]) { overflow: hidden; }
.speaker-dialog {
	width: min(92rem, calc(100% - 2rem));
	max-width: none;
	max-height: calc(100% - 2rem);
	margin: auto;
	padding: 0;
	overflow: hidden; /* the content scrolls inside, so the close button always stays in view */
	border: 0;
	border-top: 6px solid var(--c-accent);
	background: var(--c-bg);
	color: var(--c-text);
}
.speaker-dialog::backdrop { background: rgb(8 42 65 / 0.78); }
.speaker-dialog__inner {
	max-height: calc(100vh - 2rem - 6px);
	max-height: calc(100dvh - 2rem - 6px);
	overflow-y: auto;
	overscroll-behavior: contain;
	outline: none; /* receives focus when the window opens; the window itself shows where focus is */
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1.5rem 2.5rem;
	padding: 3.5rem 1.25rem 2rem;
}
@media (min-width: 48em) {
	.speaker-dialog__inner { grid-template-columns: 18rem minmax(0, 1fr); align-items: start; gap: 1.5rem 3.5rem; padding: 3rem 3.5rem 3.5rem; }
	/* Long biographies: the photo stays in view while the text scrolls. */
	.speaker-dialog__photo { position: sticky; top: 1.5rem; }
}
.speaker-dialog__close {
	position: absolute;
	top: 0.5rem;
	right: 0.5rem;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border: 2px solid var(--c-line-strong);
	background: var(--c-bg);
	color: var(--c-text);
	cursor: pointer;
}
.speaker-dialog__close:hover { background: var(--c-text); color: var(--c-bg); }
.speaker-dialog__photo { width: min(14rem, 60%); margin: 0; }
@media (min-width: 48em) { .speaker-dialog__photo { width: 100%; } }
.speaker-dialog__name { margin: 0 2.5rem 0 0; font-family: var(--font-head); font-size: clamp(1.625rem, 1.3rem + 1vw, 2.125rem); font-weight: 700; line-height: 1.1; }
.speaker-dialog__affiliation { margin: 0.375rem 0 0; color: var(--c-muted); }
.speaker-dialog__label { margin: 1.5rem 0 0; color: var(--c-muted); font-size: 0.9375rem; font-weight: 700; }
.speaker-dialog__lecture { margin: 0.125rem 0 0; font-family: var(--font-head); font-size: 1.375rem; font-weight: 700; line-height: 1.25; }
.speaker-dialog__heading { margin: 1.75rem 0 0.5rem; padding-top: 1rem; border-top: 1px solid var(--c-line); font-family: var(--font-head); font-size: 1.25rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.02em; }
.speaker-dialog__text { max-width: none; font-size: 1.1875rem; }
.speaker-dialog__text p { margin: 0 0 0.875rem; }
.speaker-dialog__text > :last-child { margin-bottom: 0; }
html[data-contrast="high"] .speaker-dialog { border: 2px solid #fff; border-top-width: 6px; }
html[data-contrast="high"] .speaker-dialog::backdrop { background: rgb(0 0 0 / 0.85); }
@media (prefers-reduced-motion: no-preference) {
	.speaker-dialog[open] { animation: pcbbe-dialog-in 0.18s ease-out; }
	@keyframes pcbbe-dialog-in { from { opacity: 0; transform: translateY(0.75rem); } to { opacity: 1; transform: none; } }
}

.speaker__heading { margin: 2rem 0 0.75rem; padding-top: 1rem; border-top: 1px solid var(--c-line); font-family: var(--font-head); font-size: 1.375rem; font-weight: 700; text-transform: uppercase; }

/* --------------------------------------------------------------------------
   About band
   -------------------------------------------------------------------------- */
.about { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2.5rem 4.5rem; align-items: center; }
@media (min-width: 56em) { .about { grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); } }
.about__emblem { display: block; width: 100%; max-width: 27.5rem; }
.about__text { max-width: 60ch; margin-top: 1.125rem; color: var(--c-dark-soft); }
.about__text p { margin: 0 0 1rem; }

/* --------------------------------------------------------------------------
   Venue
   -------------------------------------------------------------------------- */
.venue {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(15rem, 100%), 1fr));
	column-gap: 2rem;
	border-top: 2px solid var(--c-line-strong);
}
.venue__place { padding: 1.125rem 0; border-bottom: 1px solid var(--c-line); }
.venue__name { margin: 0; font-size: 1.25rem; font-weight: 700; }
.venue__address { margin: 0; color: var(--c-muted); }
.venue__links { max-width: none; margin: 0; border-top: 0; }
.venue__links a { padding: 1.125rem 0; }

/* --------------------------------------------------------------------------
   Partners
   -------------------------------------------------------------------------- */
.pcbbe-partners__group + .pcbbe-partners__group { margin-top: 2rem; }
.pcbbe-partners__name {
	margin: 0 0 0.75rem;
	color: var(--c-muted);
	font-family: var(--font-body);
	font-size: 0.9375rem;
	font-weight: 700;
	letter-spacing: 0.02em;
}
.pcbbe-partners__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 2.5rem 3.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
/* Logos are shown as they are – no frames – at one common height. */
.pcbbe-partner { display: flex; align-items: center; }
.pcbbe-partner a { display: inline-flex; align-items: center; text-decoration: none; }
.pcbbe-partner img {
	display: block;
	width: auto;
	height: auto;
	max-width: min(24rem, 100%);
	max-height: 8rem;
	object-fit: contain;
}
.pcbbe-partner a { transition: transform var(--speed); }
.pcbbe-partner a:hover { transform: translateY(-2px); }
.pcbbe-partner a:hover img { opacity: 0.85; }
.pcbbe-partner a:focus-visible { outline-offset: 6px; }
.pcbbe-partner__text { color: var(--c-text); font-weight: 700; }
.pcbbe-partner a .pcbbe-partner__text { text-decoration: underline; }
/* High contrast: logos keep a white backing so dark artwork stays visible on black. */
html[data-contrast="high"] .pcbbe-partner img { padding: 0.5rem; background: #fff; }

/* --------------------------------------------------------------------------
   Subpages
   -------------------------------------------------------------------------- */
.page-header {
	background: var(--c-dark-bg);
	color: var(--c-dark-text);
	padding-block: 2.25rem 2.75rem;
}
.page-header__title {
	margin: 0;
	font-family: var(--font-head);
	font-size: clamp(2.125rem, 1.4rem + 2.6vw, 3.5rem);
	font-weight: 700;
	line-height: 1.08;
	text-transform: uppercase;
	overflow-wrap: break-word;
}
.page-header__meta { margin: 0.75rem 0 0; color: var(--c-dark-soft); font-size: 1.1875rem; }
.breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 0.5rem;
	margin: 0 0 1rem;
	padding: 0;
	list-style: none;
	color: var(--c-dark-muted);
	font-size: 0.9375rem;
}
.breadcrumbs li + li::before { content: "/"; margin-right: 0.5rem; color: var(--c-dark-muted); }
.breadcrumbs a { color: var(--c-dark-link); }

.content { padding-block: 3rem 5rem; }

/* Editor content */
.entry-content > * { max-width: 52rem; }
.entry-content > :where(.pcbbe-dates, .pcbbe-speakers, .pcbbe-partners, .pcbbe-committees, .pcbbe-subpages, .pcbbe-topics, .alignwide, .alignfull, .wp-block-table, .wp-block-columns, .wp-block-gallery) { max-width: none; }

/* Subpages: text and a side column (section menu, upcoming deadlines, buttons) */
@media (min-width: 64em) {
	.content--with-aside {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 20rem;
		gap: 3rem 5rem;
		align-items: start;
	}
}
.page-aside { display: grid; gap: 1.75rem; }
@media (max-width: 63.99em) { .page-aside { margin-top: 3rem; } }
.aside-box {
	padding: 1.25rem 1.5rem 1.5rem;
	background: var(--c-alt-bg);
	border-top: 4px solid var(--c-accent);
}
.aside-box__title {
	margin: 0 0 0.75rem;
	font-family: var(--font-head);
	font-size: 1.3125rem;
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}
.aside-box__title a { color: inherit; text-decoration: none; }
.aside-box__title a:hover { text-decoration: underline; }
.aside-nav ul,
.aside-dates { margin: 0; padding: 0; list-style: none; }
.aside-nav li,
.aside-dates li { border-top: 1px solid var(--c-line); }
.aside-nav a {
	display: block;
	padding: 0.625rem 0;
	color: var(--c-text);
	font-weight: 600;
	line-height: 1.35;
	text-decoration: none;
}
.aside-nav a:hover { color: var(--c-link); text-decoration: underline; }
.aside-nav a[aria-current="page"] { padding-left: 0.875rem; color: var(--c-link); font-weight: 700; box-shadow: inset 4px 0 0 var(--c-accent); }
.aside-dates li { display: grid; gap: 0.125rem; padding: 0.625rem 0; }
.aside-dates__date { font-family: var(--font-head); font-size: 1.1875rem; font-weight: 700; line-height: 1.2; }
.aside-dates__label { font-size: 0.9375rem; line-height: 1.4; }
.aside-box__more { margin: 0.75rem 0 0; font-weight: 700; }
.aside-buttons { display: grid; gap: 0.75rem; }
.aside-buttons .btn { width: 100%; }
html[data-contrast="high"] .aside-box { background: #000; border: 1px solid #fff; border-top-width: 4px; }
.entry-content > :first-child { margin-top: 0; }
.entry-content h2,
.entry-content h3,
.entry-content h4 { font-family: var(--font-head); font-weight: 700; line-height: 1.15; }
.entry-content h2 { margin: 2.5rem 0 1rem; font-size: 2rem; }
.entry-content h3 { margin: 2rem 0 0.75rem; font-size: 1.5rem; }
.entry-content h4 { margin: 1.5rem 0 0.5rem; font-size: 1.25rem; }
.entry-content p,
.entry-content ul,
.entry-content ol { margin: 0 0 1.25rem; }
.entry-content ul,
.entry-content ol { padding-left: 1.5rem; }
.entry-content li { margin-bottom: 0.375rem; }
.entry-content li::marker { color: var(--teal-dark); }
html[data-contrast="high"] .entry-content li::marker { color: #ff0; }
.entry-content blockquote {
	margin: 2rem 0;
	padding-left: 1.25rem;
	border-left: 4px solid var(--c-accent);
	font-size: 1.25rem;
}
.entry-content figure { margin: 2rem 0; }
.entry-content figcaption,
.wp-element-caption { margin-top: 0.5rem; color: var(--c-muted); font-size: 0.9375rem; }
.entry-content table { width: 100%; border-collapse: collapse; }
.entry-content th,
.entry-content td,
.entry-content .wp-block-table th,
.entry-content .wp-block-table td { padding: 0.75rem 1rem 0.75rem 0; border: 0; border-bottom: 1px solid var(--c-line); text-align: left; vertical-align: top; }
.entry-content thead,
.entry-content .wp-block-table thead { border-bottom: 0; }
.entry-content thead th,
.entry-content .wp-block-table thead th { border-bottom: 2px solid var(--c-line-strong); font-weight: 700; }
.wp-block-table { overflow-x: auto; }
/* Registration fee table (class "pcbbe-fees" on the table block). */
.entry-content .pcbbe-fees td:not(:first-child) { white-space: nowrap; font-variant-numeric: tabular-nums; }
.entry-content .pcbbe-fees td:first-child { font-weight: 600; }
@media (max-width: 40em) {
	.entry-content .pcbbe-fees { font-size: 0.9375rem; }
	.entry-content .pcbbe-fees th,
	.entry-content .pcbbe-fees td { padding-right: 0.75rem; }
	.entry-content .pcbbe-fees th:last-child,
	.entry-content .pcbbe-fees td:last-child { padding-right: 0; }
}
.wp-block-separator { border: 0; border-top: 1px solid var(--c-line); margin: 2.5rem 0; }
.wp-block-button__link,
.entry-content .wp-element-button {
	display: inline-flex;
	align-items: center;
	min-height: 3rem;
	padding: 0.75rem 1.5rem;
	border-radius: 0;
	background: var(--c-btn);
	color: var(--c-btn-text);
	font-family: var(--font-head);
	font-size: 1.125rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-decoration: none;
}
.wp-block-button__link:hover { background: var(--c-btn-hover); color: var(--c-btn-text); }
.wp-block-file a { font-weight: 700; }
.entry-image { display: block; margin-bottom: 2rem; }

/* Committees */
.pcbbe-committee + .pcbbe-committee { margin-top: 2.75rem; }
.pcbbe-committee__name {
	margin: 0 0 0.5rem;
	padding-bottom: 0.5rem;
	border-bottom: 2px solid var(--c-line-strong);
	font-family: var(--font-head);
	font-size: 1.75rem;
	font-weight: 700;
	text-transform: uppercase;
}
.pcbbe-members {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(18rem, 100%), 1fr));
	column-gap: 2rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.entry-content .pcbbe-members { padding: 0; }
.pcbbe-member { margin: 0; padding: 0.75rem 0; border-bottom: 1px solid var(--c-line); }
.pcbbe-member__name { font-weight: 700; }
.pcbbe-member__role { color: var(--c-link); font-weight: 700; }
.pcbbe-member__meta { display: block; color: var(--c-muted); font-size: 1rem; }

/* News */
.news-list { max-width: 56rem; margin: 0; padding: 0; list-style: none; border-top: 2px solid var(--c-line-strong); }
.news-item { display: grid; gap: 0.25rem 2rem; padding: 1.25rem 0; border-bottom: 1px solid var(--c-line); }
@media (min-width: 40em) { .news-item { grid-template-columns: 8rem minmax(0, 1fr); } }
.news-item time { color: var(--c-muted); font-family: var(--font-head); font-size: 1.1875rem; font-weight: 600; }
.news-item__title { margin: 0; font-family: var(--font-head); font-size: 1.5rem; line-height: 1.2; }
.news-item__title a { color: var(--c-text); text-decoration: none; }
.news-item__title a:hover { text-decoration: underline; }
.news-item__excerpt { margin: 0.375rem 0 0; color: var(--c-muted); }
.nav-links { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 2rem; }
.page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.75rem;
	min-height: 2.75rem;
	padding: 0 0.75rem;
	border: 1px solid var(--c-line);
	text-decoration: none;
}
.page-numbers.current { background: var(--c-btn); border-color: var(--c-btn); color: var(--c-btn-text); }
.back-link { margin-top: 2.5rem; font-weight: 700; }

/* Speaker page */
.speaker { display: grid; gap: 2rem 3rem; }
@media (min-width: 48em) { .speaker { grid-template-columns: 18rem minmax(0, 1fr); align-items: start; } }
.speaker__photo { max-width: 18rem; }
.speaker__lecture-label { margin: 0; color: var(--c-muted); font-size: 0.9375rem; font-weight: 700; }
.speaker__lecture { margin: 0 0 1.5rem; font-family: var(--font-head); font-size: 1.75rem; font-weight: 700; line-height: 1.2; }

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
.battlements {
	/* Merlons of the logo's shield. */
	height: 1.125rem;
	background: repeating-linear-gradient(90deg, var(--c-dark-bg) 0 3.5rem, transparent 3.5rem 5.25rem);
}
html[data-contrast="high"] .battlements { border-top: 1px solid #fff; }
.site-footer {
	padding-block: 3rem 1.75rem;
	background: var(--c-dark-bg);
	color: var(--c-dark-text);
	font-size: 1rem;
}
.site-footer a { color: var(--c-dark-link); }
.site-footer__inner { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 2.5rem 4rem; }
.site-footer__logo .logo { display: block; width: auto; height: 5.5rem; }
.site-footer__col { flex: 1 1 15rem; }
.site-footer__col p { margin: 0 0 0.75rem; color: var(--c-dark-soft); }
.site-footer__title {
	margin: 0 0 0.625rem;
	color: var(--c-dark-accent);
	font-family: var(--font-head);
	font-size: 1.125rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}
.site-footer__menu { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.375rem; }
.site-footer__menu a { display: inline-block; padding-block: 0.25rem; }
.site-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem 2rem;
	margin-top: 2.5rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--c-dark-line);
	color: var(--c-dark-muted);
	font-size: 0.9375rem;
}
.site-footer__copy { margin: 0; }
.funding { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; }
.funding__logos { display: flex; flex-wrap: wrap; gap: 0.75rem; margin: 0; padding: 0; list-style: none; }
.funding__logos img { display: block; width: auto; max-height: 4.5rem; padding: 0.5rem; background: #fff; }
.funding__text { margin: 0; max-width: 46rem; }

/* --------------------------------------------------------------------------
   Motion and print
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

@media print {
	.site-header,
	.battlements,
	.announcement,
	.hero__media,
	.primary-nav,
	.site-header__tools { display: none !important; }
	.hero,
	.page-header,
	.section--dark,
	.site-footer { background: none !important; color: #000 !important; }
	a { color: #000; }
}
