/*
Theme Name: Social Change
Theme URI: https://socialchange.is
Author: Geðhjálp
Description: Bilingual (Icelandic/English) conference theme for Social Change 2027, with a self-contained archive layout for Social Change 2025.
Version: 1.1.5
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: socialchange
*/

/* ---------- Fonts (brand fonts already licensed for socialchange.is) ---------- */
@font-face { font-family: "TT Commons"; font-weight: 500; font-display: swap; src: url("assets/fonts/TT-Commons-Medium.woff2") format("woff2"); }
@font-face { font-family: "TT Commons"; font-weight: 900; font-display: swap; src: url("assets/fonts/TT-Commons-Black.woff2") format("woff2"); }
@font-face { font-family: "TT Commons"; font-weight: 700; font-style: italic; font-display: swap; src: url("assets/fonts/TT-Commons-Bold-Italic.woff2") format("woff2"); }
@font-face { font-family: "Satoshi"; font-weight: 300 900; font-display: swap; src: url("assets/fonts/Satoshi-Variable.woff2") format("woff2"); }

/* ---------- Tokens ---------- */
:root {
	--pink: #efbfce;
	--pink-deep: #e5a9bd;
	--red: #d3584a;
	--red-dark: #b2483b;
	--ink: #6b2b22;
	--cream: #fff6f8;

	--green: #00cc99;
	--green-hover: #00ebb0;
	--blue: #0066cc;
	--blue-dark: #004080;
	--blue-light: #99ccff;

	--font-display: "TT Commons", "Helvetica Neue", Arial, sans-serif;
	--font-body: "Satoshi", "Helvetica Neue", Arial, sans-serif;

	--measure: 62ch;
	--wrap: 1180px;
	--gutter: clamp(1rem, 4vw, 3rem);
	--radius: 14px;
	--pill: 999px;
	--nudge: 0.18em; /* TT Commons sits high in its line box; padding-top pushes the ink to the optical centre */
	--logo-h: clamp(72px, 9vw, 104px);
	--header-h: calc(var(--logo-h) + 1.5rem);

	--step--1: 0.9375rem;
	--step-0: 1.125rem;
	--step-1: 1.375rem;
	--step-2: clamp(1.6rem, 1.2rem + 1.6vw, 2.25rem);
	--step-3: clamp(2.1rem, 1.4rem + 3vw, 3.4rem);
	--step-4: clamp(2.6rem, 1.6rem + 5vw, 5rem);
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; animation: none !important; } }
body {
	margin: 0;
	background: var(--pink);
	color: var(--ink);
	font-family: var(--font-body);
	font-size: var(--step-0);
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
}
img, svg { max-width: 100%; height: auto; display: block; }
a { color: var(--red); text-decoration-thickness: 2px; text-underline-offset: 3px; }
a:hover { color: var(--red-dark); }
:focus-visible { outline: 3px solid var(--red); outline-offset: 3px; }
h1, h2, h3, h4 { font-family: var(--font-display); font-weight: 900; line-height: 1; letter-spacing: -0.01em; margin: 0 0 0.5em; color: var(--red); text-wrap: balance; }
h1 { font-size: var(--step-4); }
h2 { font-size: var(--step-3); }
h3 { font-size: var(--step-2); }
h4 { font-size: var(--step-1); }
p, ul, ol { margin: 0 0 1.1em; }
strong { font-weight: 700; }

.sc-skip { position: absolute; left: -999px; top: 0; background: var(--red); color: var(--pink); padding: 0.75rem 1rem; z-index: 100; font-family: var(--font-display); font-weight: 900; }
.sc-skip:focus { left: 1rem; top: 1rem; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); }

.sc-button {
	display: inline-flex; align-items: center; justify-content: center; line-height: 1; background: var(--red); color: var(--pink); font-family: var(--font-display); font-weight: 900; font-size: var(--step-1);
	min-height: 2.9em; padding: var(--nudge) 1.5em 0; border-radius: var(--pill); text-decoration: none; border: 2px solid var(--red);
}
.sc-button:hover { background: var(--pink); color: var(--red); }

/* ---------- 2027 header ---------- */
.sc-header { background: var(--pink); }
.sc-header__inner { max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter); min-height: var(--header-h); display: flex; align-items: center; gap: 1.5rem; }
.sc-brand { display: block; margin-right: auto; flex: none; }
.sc-brand__logo { height: var(--logo-h); width: auto; margin-top: 0.25rem; transition: transform 0.4s cubic-bezier(.2,.8,.2,1); }
.sc-brand:hover .sc-brand__logo { transform: rotate(-4deg) scale(1.04); }

.sc-nav { display: flex; align-items: center; gap: 0.35rem; }
.sc-menu { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 0.15rem; }
.sc-menu a, .sc-lang {
	display: inline-flex; align-items: center; justify-content: center; font-family: var(--font-display); font-weight: 500; font-size: 1.125rem; line-height: 1;
	min-height: 2.6rem; padding: var(--nudge) 1rem 0; border-radius: var(--pill); text-decoration: none; color: var(--red); border: 2px solid transparent;
	transition: background-color 0.15s, color 0.15s, border-color 0.15s;
}
.sc-menu a:hover, .sc-lang:hover { border-color: var(--red); color: var(--red); }
.sc-menu .current-menu-item > a, .sc-menu .current_page_item > a, .sc-menu .current-menu-ancestor > a, .sc-menu .current_page_parent > a { background: var(--red); color: var(--pink); }
.sc-lang { margin-left: 0.5rem; border-color: var(--red); font-weight: 900; }
.sc-lang:hover { background: var(--red); color: var(--pink); }

.sc-nav-toggle { display: none; appearance: none; line-height: 1; min-height: 2.6rem; background: none; border: 2px solid var(--red); border-radius: var(--pill); color: var(--red); font-family: var(--font-display); font-weight: 900; font-size: 1rem; padding: 0 0.9rem 0 0.75rem; align-items: center; gap: 0.5rem; cursor: pointer; }
.sc-nav-toggle__label { padding-top: var(--nudge); }
.sc-nav-toggle__bars { position: relative; width: 20px; height: 2px; background: currentColor; display: block; }
.sc-nav-toggle__bars::before, .sc-nav-toggle__bars::after { content: ""; position: absolute; left: 0; width: 20px; height: 2px; background: currentColor; }
.sc-nav-toggle__bars::before { top: -6px; }
.sc-nav-toggle__bars::after { top: 6px; }
.sc-nav-open .sc-nav-toggle { position: relative; z-index: 60; }

@media (max-width: 880px) {
	.sc-nav-toggle { display: inline-flex; }
	.sc-nav { display: none; }
	.sc-nav-open { overflow: hidden; }
	.sc-nav-open .sc-nav {
		display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 0.5rem;
		position: fixed; inset: 0; z-index: 50; background: var(--pink); padding: 6rem var(--gutter) 3rem;
	}
	.sc-nav-open .sc-menu { flex-direction: column; align-items: flex-start; gap: 0.25rem; }
	.sc-nav-open .sc-menu a { font-size: clamp(2rem, 8vw, 3rem); font-weight: 900; padding: 0.35rem 0.75rem; border-radius: 0.5em; }
	.sc-nav-open .sc-lang { margin: 1.5rem 0 0 0.75rem; font-size: 1.25rem; }
	.sc-archive-2025.sc-nav-open .sc-nav { background: var(--green); }
}

/* ---------- Prose ---------- */
.sc-prose { max-width: var(--measure); }
.sc-prose > :last-child { margin-bottom: 0; }
.sc-prose h2 { margin-top: 1.5em; }
.sc-prose h3 { margin-top: 1.25em; }
.sc-prose figure { margin: 1.5rem 0; }
.sc-prose .wp-block-image img { border-radius: var(--radius); }
.sc-soon { font-family: var(--font-display); font-weight: 500; font-size: var(--step-2); color: var(--red); line-height: 1.15; }

/* ---------- Front page ---------- */
.sc-hero { padding: clamp(1rem, 4vw, 3rem) 0 clamp(3rem, 7vw, 6rem); }
.sc-hero__inner { max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter); display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(2rem, 5vw, 4rem); align-items: start; }
.sc-hero__logo { max-width: 560px; width: min(100%, 78vw); margin: 0 auto; }
.sc-hero__img { width: 100%; }
.sc-hero__copy .sc-hero__lead, .sc-hero__copy > p:first-child strong { display: block; font-family: var(--font-display); font-weight: 900; font-size: var(--step-2); line-height: 1.1; color: var(--red); margin-bottom: 1.25rem; }
.sc-hero__copy h2 { font-size: var(--step-3); margin: 0 0 0.6em; }
.sc-hero__copy p { font-size: var(--step-0); }
.sc-hero__copy .sc-soon { font-size: var(--step-3); }
@media (min-width: 900px) {
	.sc-hero { padding-top: clamp(1rem, 3vw, 2.5rem); }
	.sc-hero__inner { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); }
	.sc-hero__logo { margin: 0; width: 100%; position: sticky; top: 2rem; }
	.sc-hero__inner:has(.sc-soon) { align-items: center; }
}
@media (prefers-reduced-motion: no-preference) {
	.sc-hero__logo { animation: sc-settle 0.9s cubic-bezier(.2,.8,.2,1) both; }
	@keyframes sc-settle { from { opacity: 0; transform: translateY(12px) scale(0.97); } to { opacity: 1; transform: none; } }
}

/* ---------- Newsletter ---------- */
.sc-newsletter { position: relative; isolation: isolate; overflow: hidden; background: var(--red); color: var(--pink); padding: clamp(3rem, 7vw, 6rem) 0; }
.sc-newsletter::before {
	content: ""; position: absolute; z-index: -1; right: -12%; top: -28%; width: min(70vw, 780px); aspect-ratio: 736 / 682;
	background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 735.6 681.6'%3E%3Cpath fill='%23c04c3f' d='M39.5,132C150.1-36.9,480.6-33.5,569.5,84.2c27.7,36.7,21.8,71,74.2,137.8,52.7,67.1,91.8,74.6,91.9,109.5,0,51-40,89.1-96.9,143.2-50.4,48-40.9,99-78.5,131.2-86.6,74.4-204.3,109.6-437.7,31.2C-20.3,589.3,1.8,382.8.6,324.5c-1.2-60-2.7-129.2,38.9-192.6Z'/%3E%3C/svg%3E") no-repeat center / contain; transform: rotate(-12deg); opacity: 0.9; pointer-events: none;
}
.sc-newsletter__inner { max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter); display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(2rem, 5vw, 4rem); align-items: start; }
@media (min-width: 900px) { .sc-newsletter__inner { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); } }
.sc-newsletter h2 { color: var(--pink); font-size: var(--step-3); }
.sc-newsletter__intro p { max-width: 36ch; font-size: var(--step-1); font-family: var(--font-display); font-weight: 500; line-height: 1.3; }

.sc-newsletter__form { background: rgba(255, 246, 248, 0.08); border: 2px solid rgba(239, 191, 206, 0.45); border-radius: 28px; padding: clamp(1.25rem, 3vw, 2.25rem); backdrop-filter: blur(2px); }
.sc-newsletter .fluentform .ff-el-group { margin-bottom: 1.25rem; }
.sc-newsletter .fluentform .ff-el-input--label { margin-bottom: 0.4rem; }
.sc-newsletter .fluentform .ff-el-input--label label { color: var(--pink); font-family: var(--font-display); font-weight: 900; font-size: 1.125rem; padding-left: 1.25rem; }
.sc-newsletter .fluentform .ff-el-input--label.ff-el-is-required.asterisk-right label::after { color: var(--pink); }
.sc-newsletter .fluentform .ff-el-form-control {
	background: var(--cream); color: var(--ink); border: 2px solid transparent; border-radius: var(--pill); padding: 0.95rem 1.4rem; font-family: var(--font-body); font-size: 1.0625rem; line-height: 1.3; height: auto; box-shadow: none; transition: border-color 0.15s, box-shadow 0.15s, transform 0.15s;
}
.sc-newsletter .fluentform .ff-el-form-control:focus { border-color: var(--pink); outline: none; box-shadow: 0 0 0 4px rgba(239, 191, 206, 0.35); }
.sc-newsletter .fluentform .ff-el-form-control::placeholder { color: rgba(107, 43, 34, 0.5); }

/* Consent checkbox: a round pink check instead of the browser default */
.sc-newsletter .fluentform .ff-el-form-check { margin: 0.25rem 0 1.5rem; }
.sc-newsletter .fluentform .ff-el-form-check-label { display: flex; align-items: flex-start; gap: 0.75rem; color: var(--pink); font-size: 1rem; line-height: 1.45; cursor: pointer; padding-left: 0; }
.sc-newsletter .fluentform .ff-el-form-check-input {
	appearance: none; -webkit-appearance: none; flex: none; width: 1.5rem; height: 1.5rem; margin: 0.05rem 0 0; border: 2px solid var(--pink); border-radius: 50%; background: transparent; cursor: pointer; position: static; display: inline-block; transition: background-color 0.15s;
}
.sc-newsletter .fluentform .ff-el-form-check-input:checked { background: var(--pink) url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23d3584a' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round' d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") no-repeat center / 70%; }
/* Fluent Forms renders the consent label as a table row; switch it to flex so the gap works */
.sc-newsletter .fluentform .ff-el-tc label.ff_tc_label { display: flex; align-items: flex-start; gap: 0.85rem; }
.sc-newsletter .fluentform .ff-el-tc label.ff_tc_label > span { display: block; flex: none; width: auto; padding-top: 0 !important; line-height: 0; }
.sc-newsletter .fluentform .ff-el-tc label.ff_tc_label > div { display: block; flex: 1 1 auto; margin: 0; padding: 0; }
.sc-newsletter .fluentform .ff_t_c p { margin: 0; }
.sc-newsletter .fluentform .ff-el-form-check-input:focus-visible { outline: 3px solid var(--cream); outline-offset: 2px; }
.sc-newsletter .fluentform .ff-el-tc a { color: var(--pink); }

.sc-newsletter .fluentform .ff-btn-submit, .sc-newsletter .fluentform .ff-btn-submit.wpf_has_custom_css {
	display: inline-flex; align-items: center; justify-content: center; line-height: 1; min-height: 3.4rem; width: 100%; background: var(--pink); color: var(--red); border: 2px solid var(--pink); border-radius: var(--pill); font-family: var(--font-display); font-weight: 900; font-size: var(--step-1); padding: var(--nudge) 1.6em 0; cursor: pointer; transition: background-color 0.15s, color 0.15s, transform 0.15s, box-shadow 0.15s;
}
.sc-newsletter .fluentform .ff-btn-submit:hover, .sc-newsletter .fluentform .ff-btn-submit.wpf_has_custom_css:hover { background: var(--cream); border-color: var(--cream); color: var(--red); transform: translateY(-2px); box-shadow: 0 10px 24px -12px rgba(0, 0, 0, 0.45); }
.sc-newsletter .fluentform .ff-btn-submit:active { transform: none; box-shadow: none; }
@media (min-width: 600px) { .sc-newsletter .fluentform .ff-btn-submit, .sc-newsletter .fluentform .ff-btn-submit.wpf_has_custom_css { width: auto; min-width: 16rem; } }
.sc-newsletter .fluentform .ff-message-success { background: var(--cream); color: var(--ink); border: 0; border-radius: 20px; padding: 1.25rem 1.5rem; font-family: var(--font-display); font-weight: 500; font-size: 1.25rem; }
.sc-newsletter .fluentform .ff-errors-in-stack, .sc-newsletter .fluentform .text-danger { color: var(--cream); }

/* ---------- Standard page ---------- */
.sc-page__inner { max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter); }
.sc-page__head { padding: clamp(2rem, 5vw, 4rem) 0 clamp(1.5rem, 3vw, 2.5rem); }
.sc-page__title { display: inline-block; padding: 0.2em 0; border-top: 5px solid var(--red); border-bottom: 5px solid var(--red); margin: 0; }
.sc-page__body { padding: 0 0 clamp(3rem, 8vw, 7rem); }
.sc-page__body .sc-prose { max-width: var(--measure); }
.sc-page__body .sc-prose > :first-child { margin-top: 0; }

/* ---------- 2027 footer ---------- */
.sc-footer { background: var(--red); color: var(--pink); padding: clamp(2rem, 5vw, 3.5rem) 0; }
.sc-front + .sc-footer, .sc-newsletter + .sc-footer { border-top: 2px solid rgba(239, 191, 206, 0.35); }
.sc-footer__inner { max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter); display: grid; gap: 1.25rem; }
.sc-footer__hosted { font-family: var(--font-display); font-weight: 500; font-size: var(--step-1); line-height: 1.3; max-width: 44ch; margin: 0; }
.sc-footer__menu { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.25rem 1.25rem; }
.sc-footer__menu a { color: var(--pink); font-family: var(--font-display); font-weight: 500; text-decoration: none; font-size: 1.0625rem; }
.sc-footer__menu a:hover { text-decoration: underline; }
.sc-footer__meta { margin: 0; display: flex; flex-wrap: wrap; gap: 0.25rem 1.25rem; font-size: var(--step--1); }
.sc-footer__meta a { color: var(--pink); }

/* ---------- 2025 archive (green / blue) ---------- */
/* English pages: green page, blue ink. Icelandic pages invert it (blue page, green ink), as on the 2025 site. */
.sc-archive-2025 { --page: var(--green); --ink2: var(--blue); --band: var(--blue); --band-ink: var(--green); --deco: url("assets/img/right-blue-bg.svg"); --pill-hover: var(--green-hover); }
.sc-archive-2025.lang-is { --page: var(--blue); --ink2: var(--green); --band: var(--green); --band-ink: var(--blue); --deco: url("assets/img/right-green-background.svg"); --pill-hover: var(--green-hover); }
.sc-archive-2025 { background: var(--page); color: var(--ink2); }
.sc-archive-2025 a { color: var(--ink2); }
.sc-archive-2025 a:hover { color: var(--ink2); text-decoration-thickness: 3px; }
.sc-archive-2025 :focus-visible { outline-color: var(--ink2); }
.sc-archive-2025 h1, .sc-archive-2025 h2, .sc-archive-2025 h3, .sc-archive-2025 h4 { color: var(--ink2); }
.sc-main--archive { background: var(--deco) no-repeat top right / min(42vw, 520px); }

.sc-aheader { background: var(--page); }
.sc-aheader__inner { max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter); min-height: var(--header-h); display: flex; align-items: center; gap: 1.5rem; }
.sc-aheader__back { margin-right: auto; font-family: var(--font-display); font-weight: 900; font-size: 1.125rem; text-decoration: none; white-space: nowrap; }
.sc-aheader__back:hover { text-decoration: underline; }
.sc-aheader .sc-nav-toggle, .sc-aheader .sc-lang { color: var(--ink2); border-color: var(--ink2); }
.sc-aheader .sc-lang:hover { background: var(--ink2); color: var(--page); }
.sc-archive-nav { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.sc-archive-nav a {
	display: inline-flex; align-items: center; justify-content: center; color: var(--ink2); border: 2px solid transparent; border-radius: var(--pill);
	font-family: var(--font-display); font-weight: 500; font-size: 1.125rem; line-height: 1;
	min-height: 2.6rem; padding: var(--nudge) 1rem 0; text-decoration: none; transition: background-color 0.15s, color 0.15s, border-color 0.15s;
}
.sc-archive-nav a:hover { border-color: var(--ink2); color: var(--ink2); }
.sc-archive-nav .is-current a { background: var(--ink2); color: var(--page); border-color: var(--ink2); }
.sc-archive-nav { gap: 0.15rem; }
@media (max-width: 880px) {
	.sc-archive-2025.sc-nav-open .sc-nav { background: var(--page); }
	.sc-nav-open .sc-archive-nav { flex-direction: column; align-items: flex-start; gap: 0.25rem; }
	.sc-nav-open .sc-archive-nav a { font-size: clamp(2rem, 8vw, 3rem); font-weight: 900; padding: var(--nudge) 0.75rem 0; min-height: 1.4em; border-radius: 0.5em; }
	.sc-nav-open .sc-archive-nav .is-current a { background: var(--ink2); color: var(--page); box-shadow: none; }
}

.sc-archive__inner { max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter); }

/* Landing page hero: logo, then the thank-you heading pulled up beside it */
.sc-archive__hero { padding: clamp(0.5rem, 2vw, 1.5rem) 0 0; }
.sc-archive__logo { width: min(100%, 460px); }
.sc-archive--root .sc-archive__body { padding-top: clamp(2rem, 5vw, 3.5rem); padding-bottom: 0; }
.sc-archive--root .sc-archive__body h2 { font-size: var(--step-4); line-height: 0.95; max-width: 14ch; }
.sc-archive--root .sc-archive__body h2 + p { font-family: var(--font-display); font-weight: 500; font-size: var(--step-1); max-width: 40ch; }

/* Sub pages: title with rules, content on a band */
.sc-archive__head { padding: clamp(2rem, 5vw, 4rem) 0 clamp(1.5rem, 3vw, 2.5rem); }
.sc-archive__title { display: inline-block; padding: 0.2em 0; border-top: 5px solid var(--ink2); border-bottom: 5px solid var(--ink2); margin: 0 0 0.5em; font-size: var(--step-3); }
.sc-archive__sub { font-family: var(--font-display); font-weight: 500; font-size: var(--step-2); line-height: 1.1; max-width: 22ch; margin: 0; }
.sc-archive__body { padding: clamp(1.5rem, 4vw, 3rem) 0 clamp(3rem, 8vw, 7rem); overflow-x: clip; }
.sc-archive__body .sc-prose { max-width: none; }
.sc-archive__body .sc-prose > *:not(.wp-block-gallery):not(.sc-schedule):not(.sc-speakers):not(.sc-facts):not(.sc-band) { max-width: var(--measure); }
.sc-archive__body h2 { font-size: var(--step-3); }
.sc-archive--sub .sc-archive__body { background: var(--band); color: var(--band-ink); border-top-left-radius: min(50vw, 320px) 120px; margin-top: 1rem; padding-top: clamp(3rem, 7vw, 6rem); }
.sc-archive--sub .sc-archive__body h2, .sc-archive--sub .sc-archive__body h3, .sc-archive--sub .sc-archive__body a { color: var(--band-ink); }

/* Photo wall: fixed 4-up grid, first photo featured. Overrides the gallery block's own flex layout. */
.sc-archive .wp-block-gallery.has-nested-images { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem !important; margin: 2.5rem 0 clamp(3rem, 7vw, 6rem); }
.sc-archive .wp-block-gallery.has-nested-images figure.wp-block-image { display: block !important; width: auto !important; max-width: none !important; margin: 0 !important; min-width: 0; }
.sc-archive .wp-block-gallery.has-nested-images figure.wp-block-image > a { display: block; height: 100%; }
.sc-archive .wp-block-gallery.has-nested-images figure.wp-block-image img { display: block; width: 100% !important; height: auto !important; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 12px; }
.sc-archive .wp-block-gallery.has-nested-images figure.wp-block-image:first-child { grid-column: span 2; grid-row: span 2; }
.sc-archive .wp-block-gallery.has-nested-images figure.wp-block-image:first-child img { height: 100% !important; aspect-ratio: auto; }
@media (min-width: 760px) { .sc-archive .wp-block-gallery.has-nested-images { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem !important; } }

/* Full-bleed info band on the landing page. The group block may wrap children in an inner container; make it transparent. */
.sc-band { background: var(--band); color: var(--band-ink); margin: 0 calc(50% - 50vw); padding: clamp(3rem, 7vw, 6rem) calc(50vw - 50% + var(--gutter)) clamp(3rem, 7vw, 6rem); border-top-right-radius: min(50vw, 320px) 120px; }
.sc-band > .wp-block-group__inner-container { display: contents; }
:is(.sc-band, .sc-band > .wp-block-group__inner-container) > * { max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; }
.sc-band h2 { color: var(--band-ink); font-size: var(--step-3); max-width: 16ch !important; margin-top: 0; }
:is(.sc-band, .sc-band > .wp-block-group__inner-container) > p { max-width: var(--measure) !important; }
.sc-band a { color: var(--band-ink); }
@media (min-width: 900px) {
	.sc-band { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: clamp(2rem, 5vw, 4rem); align-items: start; }
	.sc-band h2 { grid-column: 1; grid-row: 1 / span 12; }
	:is(.sc-band, .sc-band > .wp-block-group__inner-container) > p { grid-column: 2; margin-top: 0; }
	:is(.sc-band, .sc-band > .wp-block-group__inner-container) > p:first-of-type { margin-top: 0.5em; }
	.sc-band .sc-facts { grid-column: 1 / -1; grid-row: 13; }
}

/* Facts block */
.sc-facts { display: grid; gap: 1.5rem 3rem; grid-template-columns: minmax(0, 1fr); margin: clamp(2rem, 5vw, 3.5rem) 0 0; padding-top: clamp(1.5rem, 3vw, 2.5rem); border-top: 2px solid currentColor; }
@media (min-width: 760px) { .sc-facts { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); } }
.sc-facts__venue { font-family: var(--font-display); font-weight: 900; font-size: var(--step-3); line-height: 0.95; margin: 0; max-width: 12ch; }
.sc-facts__venue small { display: block; font-weight: 500; font-size: 0.55em; margin-top: 0.4em; }
.sc-facts dl { margin: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
.sc-facts dt { font-family: var(--font-display); font-weight: 900; font-size: 1.125rem; padding-top: 0.75rem; }
.sc-facts dd { margin: 0 0 0.75rem; padding-bottom: 0.75rem; border-bottom: 1px solid currentColor; font-size: 1.0625rem; }
.sc-facts dd:last-child { border-bottom: 0; }
@media (min-width: 560px) {
	.sc-facts dl { grid-template-columns: max-content minmax(0, 1fr); column-gap: 1.5rem; }
	.sc-facts dt { border-bottom: 1px solid currentColor; padding: 0.75rem 0; }
	.sc-facts dd { padding: 0.75rem 0; margin: 0; }
	.sc-facts dt:last-of-type, .sc-facts dd:last-of-type { border-bottom: 0; }
}

/* Schedule / workshops */
.sc-schedule { list-style: none; margin: 0; padding: 0; max-width: 72ch; }
.sc-slot { padding: 1.25rem 0; border-top: 2px solid currentColor; display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); gap: 0.25rem 1.25rem; }
.sc-slot:last-child { border-bottom: 2px solid currentColor; }
.sc-slot__time { font-family: var(--font-display); font-weight: 900; font-size: var(--step-1); line-height: 1.2; }
.sc-slot__title { font-family: var(--font-display); font-weight: 900; font-size: var(--step-1); line-height: 1.2; margin: 0; color: inherit; }
.sc-slot__who { font-family: var(--font-display); font-weight: 500; font-size: 1.125rem; margin: 0.15rem 0 0.5rem; }
.sc-slot__body { grid-column: 2; }
.sc-slot__body p { font-size: 1.0625rem; margin-bottom: 0.75em; }
.sc-slot__room { font-family: var(--font-display); font-weight: 500; font-size: 1rem; opacity: 0.85; margin: 0; }
.sc-slot--break { opacity: 0.85; }
.sc-slot--break .sc-slot__title { font-weight: 500; }
@media (max-width: 600px) { .sc-slot { grid-template-columns: minmax(0, 1fr); } .sc-slot__body { grid-column: 1; } }

/* Speakers */
.sc-speakers { list-style: none; margin: 0; padding: 0; display: grid; gap: clamp(2rem, 5vw, 4rem); }
.sc-speaker { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem 2.5rem; align-items: start; max-width: 900px; }
@media (min-width: 700px) { .sc-speaker { grid-template-columns: 220px minmax(0, 1fr); } }
.sc-speaker__photo { width: 220px; max-width: 60%; }
.sc-speaker__photo img { border-radius: 50%; aspect-ratio: 1; object-fit: cover; }
.sc-speaker__name { font-size: var(--step-2); margin: 0 0 0.5rem; color: inherit; }
.sc-speaker__bio p { font-size: 1.0625rem; }

/* Archive footer sits on the band colour so it reads as one piece with the content band */
.sc-afooter { background: var(--band); color: var(--band-ink); padding: clamp(2rem, 5vw, 3.5rem) 0; }
.sc-archive-2025 .sc-afooter { border-top: 2px solid var(--band-ink); }
.sc-afooter__inner { max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem 2rem; align-items: baseline; }
.sc-afooter p { margin: 0; font-family: var(--font-display); font-weight: 500; font-size: var(--step-1); line-height: 1.3; max-width: 44ch; }
.sc-afooter a { color: var(--band-ink); font-weight: 900; text-decoration: none; white-space: nowrap; }
.sc-archive-2025 .sc-afooter a:hover, .sc-archive-2025 .sc-afooter a:focus-visible { color: var(--band-ink); text-decoration: underline; text-decoration-color: var(--band-ink); text-decoration-thickness: 3px; text-underline-offset: 4px; }
/* Links on band-coloured areas must keep the band ink on hover (the page ink would vanish into the band) */
.sc-archive-2025 :is(.sc-archive--sub .sc-archive__body, .sc-band) a:hover { color: var(--band-ink); text-decoration-color: var(--band-ink); }

/* ---------- Editor-ish block basics used on ordinary pages ---------- */
.wp-block-buttons .wp-block-button__link { background: var(--red); color: var(--pink); border-radius: var(--pill); font-family: var(--font-display); font-weight: 900; line-height: 1; padding-top: calc(0.75em + var(--nudge)); padding-bottom: 0.75em; }
.wp-block-quote { border-left: 5px solid var(--red); padding-left: 1.25rem; font-family: var(--font-display); font-weight: 500; font-size: var(--step-1); }
