/*
Theme Name: IMEALL
Theme URI: https://wordpress-sample-site.pages.dev/
Author: Mahmoud Almahroum
Description: Block theme for the IMEALL demonstration research-project site (fictional). Flat colour, one accent, IBM Plex Sans and Mono, WCAG 2.2 AA. Works with the imeall-core must-use plugin.
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.1
Version: 1.0.0
License: GPL-2.0-or-later
Text Domain: imeall
*/

/* ---------- Tokens ---------- */
:root {
	--paper: var(--wp--preset--color--paper, #F6F5F1);
	--surface: var(--wp--preset--color--surface, #FFFFFF);
	--ink: var(--wp--preset--color--ink, #0E1C24);
	--muted: var(--wp--preset--color--muted, #4A5862);
	--line: var(--wp--preset--color--line, #D5D8D2);
	--accent: var(--wp--preset--color--accent, #B23B0A);
	--accent-light: var(--wp--preset--color--accent-light, #F28C5B);
	--tint: var(--wp--preset--color--tint, #ECEAE3);
	--error: #B42318;
	--success: #1E6B3A;
	--mono: var(--wp--preset--font-family--mono);
	--gutter: clamp(1rem, 4vw, 2.5rem);
	--section: clamp(3rem, 7vw, 5.5rem);
	--focus: 3px solid var(--ink);
}

html { scroll-padding-top: 1rem; -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--paper); color: var(--ink); text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
::selection { background: var(--ink); color: var(--paper); }

a { text-underline-offset: 0.18em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: var(--focus);
	outline-offset: 3px;
	border-radius: 0;
}
:where(.imeall-demo-banner, .imeall-footer) :focus-visible { outline-color: var(--surface); }

.screen-reader-text {
	border: 0; clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden;
	padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important;
}
.skip-link.screen-reader-text:focus {
	clip-path: none; height: auto; width: auto; margin: 0; z-index: 100000;
	left: 1rem; top: 1rem; padding: 0.75rem 1rem; background: var(--surface); color: var(--ink);
	outline: var(--focus); font-weight: 600; text-decoration: none;
}

.imeall-mono, .imeall-eyebrow, .imeall-item__meta, .imeall-badge, .imeall-filesize { font-family: var(--mono); }
.imeall-muted { color: var(--muted); }

/* ---------- Demo banner + header ---------- */
.imeall-demo-banner { background: var(--ink); color: var(--surface); font-size: 0.875rem; line-height: 1.45; }
.imeall-demo-banner p { margin: 0; padding: 0.6rem 0; }
.imeall-demo-banner strong { color: var(--accent-light); font-weight: 600; }

.imeall-header { background: var(--paper); border-bottom: 1px solid var(--line); }
.imeall-header__inner { gap: 2rem; padding-block: 1.15rem; }
.imeall-brand { gap: 0.1rem !important; }
.imeall-brand__name { margin: 0; font-size: 1.375rem; font-weight: 650; letter-spacing: 0.08em; line-height: 1.1; }
.imeall-brand__name a { text-decoration: none; display: inline-flex; align-items: center; gap: 0.6rem; color: var(--ink); }
.imeall-brand__name a::before {
	content: ""; width: 0.95rem; height: 0.95rem; background: var(--accent);
	box-shadow: 0.3rem 0.3rem 0 0 var(--ink); flex: none;
}
.imeall-brand__tagline { margin: 0 0 0 1.6rem; font-size: 0.8125rem; color: var(--muted); font-family: var(--mono); letter-spacing: 0.01em; }

.imeall-nav { font-size: 0.9688rem; font-weight: 500; }
.imeall-nav .wp-block-navigation__container { gap: 0.25rem 1.4rem; }
.imeall-nav .wp-block-navigation-item__content { text-decoration: none; padding: 0.35rem 0; border-bottom: 2px solid transparent; }
.imeall-nav .wp-block-navigation-item__content:hover { border-bottom-color: var(--ink); color: var(--ink); }
.imeall-nav .current-menu-item > .wp-block-navigation-item__content,
.imeall-nav [aria-current="page"] { border-bottom-color: var(--accent); }
.imeall-nav .wp-block-navigation__responsive-container-open,
.imeall-nav .wp-block-navigation__responsive-container-close { padding: 0.5rem; margin: -0.5rem; }
.imeall-nav .wp-block-navigation__responsive-container.is-menu-open { background: var(--paper); padding: 1.5rem var(--gutter); }
.imeall-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 0.25rem; font-size: 1.375rem; }
.imeall-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { padding: 0.5rem 0; }
@media (min-width: 600px) and (max-width: 1099px) {
	/* Core's breakpoint is 600px; this nav has 8 items, so keep the menu button until there is room. */
	.imeall-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.imeall-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}

/* ---------- Page structure ---------- */
.imeall-main { padding-bottom: var(--section); }
.imeall-main:has(.imeall-band:last-child) { padding-bottom: 0; }
.imeall-pagehead { padding: clamp(2.5rem, 6vw, 4.5rem) 0 clamp(1.75rem, 4vw, 2.75rem); }
.imeall-pagehead > * + * { margin-top: 1.25rem; }
.imeall-pagehead h1 { margin-bottom: 0; letter-spacing: -0.025em; }
.imeall-pagehead :is(.wp-block-post-excerpt, .imeall-lead) { margin-top: 1.5rem; margin-bottom: 0; }
.imeall-pagehead .wp-block-post-excerpt__excerpt { margin: 0; }
.imeall-pagehead .imeall-title--long { font-size: clamp(2rem, 4.2vw, 3.25rem); line-height: 1.1; max-width: 30ch; }
.imeall-lead, .imeall-lead p { font-size: var(--wp--preset--font-size--large); line-height: 1.5; color: var(--muted); max-width: 42rem; margin: 0; }
.imeall-pagehead--wide { border-bottom: 1px solid var(--line); margin-bottom: clamp(2rem, 4vw, 3rem); }

.imeall-eyebrow { font-size: 0.8125rem; letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted); gap: 0.4rem 1.25rem !important; margin: 0; }
.imeall-eyebrow p, .imeall-eyebrow .wp-block-post-date, .imeall-eyebrow .wp-block-post-terms { margin: 0; }
.imeall-eyebrow a { color: var(--muted); }
.imeall-eyebrow > * + *::before { content: "/"; margin-right: 1.25rem; color: var(--line); }

.imeall-prose > * { margin-block: 0; }
.imeall-prose > * + * { margin-top: 1.25rem; }
.imeall-prose > h2, .imeall-prose > .wp-block-heading:is(h2) { margin-top: 3rem; }
.imeall-prose > h3 { margin-top: 2.25rem; }
.imeall-prose ul, .imeall-prose ol { padding-left: 1.25rem; }
.imeall-prose li + li { margin-top: 0.4rem; }
.imeall-prose li::marker { color: var(--accent); }
.imeall-prose table { border-collapse: collapse; width: 100%; font-size: 0.9375rem; }
.imeall-prose th, .imeall-prose td { text-align: left; vertical-align: top; padding: 0.75rem 1rem 0.75rem 0; border-bottom: 1px solid var(--line); }
.imeall-prose th { font-weight: 600; border-bottom-color: var(--ink); }
.imeall-prose .wp-block-table { overflow-x: auto; }
.imeall-prose .wp-block-table td:first-child { font-family: var(--mono); font-size: 0.875rem; white-space: nowrap; }
.wp-block-table thead { border-bottom: 0; }
.imeall-feature { margin-bottom: 2.5rem; }
.imeall-feature img, .imeall-news__image img { background: var(--tint); }

/* ---------- Buttons ---------- */
.imeall-button, .wp-block-button__link {
	display: inline-flex; align-items: center; gap: 0.5rem;
	background: var(--accent); color: var(--surface); border: 2px solid var(--accent);
	padding: 0.85rem 1.35rem; font: inherit; font-weight: 550; font-size: 1rem; line-height: 1.2;
	text-decoration: none; cursor: pointer; border-radius: 0;
}
.imeall-button:hover, .wp-block-button__link:hover { background: var(--ink); border-color: var(--ink); color: var(--surface); }
.imeall-button--secondary, .is-style-outline > .wp-block-button__link {
	background: transparent; color: var(--ink); border-color: var(--ink);
}
.imeall-button--secondary:hover, .is-style-outline > .wp-block-button__link:hover { background: var(--ink); color: var(--surface); }
.imeall-button .imeall-filesize { font-size: 0.8125rem; opacity: 1; font-weight: 400; }
.imeall-link-button {
	background: none; border: 0; padding: 0; font: inherit; color: var(--ink);
	text-decoration: underline; text-underline-offset: 0.18em; cursor: pointer; font-size: 0.9375rem;
}
.imeall-link-button:hover { color: var(--accent); text-decoration-thickness: 2px; }
.imeall-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin: 1.5rem 0 0; }

/* ---------- Home ---------- */
.imeall-hero { padding-block: clamp(2.5rem, 7vw, 6rem) clamp(2.5rem, 6vw, 4.5rem); border-bottom: 1px solid var(--line); }
.imeall-hero .wp-block-columns { gap: clamp(2rem, 5vw, 5rem); align-items: center; margin-block: 0; }
.imeall-hero h1 { margin: 1.25rem 0 0; letter-spacing: -0.03em; max-width: 15ch; }
.imeall-hero .imeall-lead { margin-top: 1.5rem; }
.imeall-hero .wp-block-buttons { margin-top: 2.25rem; gap: 0.75rem; }
.imeall-hero__figure { margin: 0; }
.imeall-hero__figure img { width: 100%; height: auto; display: block; aspect-ratio: 960 / 800; }
.imeall-hero__figure figcaption { font-family: var(--mono); font-size: 0.75rem; color: var(--muted); margin-top: 0.75rem; text-align: left; }

.imeall-figures { margin-block: 0 !important; padding: clamp(2rem, 4vw, 3rem) 0; border-bottom: 1px solid var(--line); gap: 0 !important; }
.imeall-figures > .wp-block-column { padding: 0.25rem 1.5rem 0.25rem 0; }
.imeall-figures > .wp-block-column + .wp-block-column { border-left: 1px solid var(--line); padding-left: 1.5rem; }
.imeall-figure__num { font-family: var(--mono); font-weight: 500; font-size: clamp(2rem, 4vw, 2.75rem); line-height: 1; letter-spacing: -0.03em; margin: 0; }
.imeall-figure__label { margin: 0.6rem 0 0; color: var(--muted); font-size: 0.9375rem; line-height: 1.4; }
@media (max-width: 781px) {
	.imeall-figures { display: grid !important; grid-template-columns: 1fr 1fr; row-gap: 1.75rem !important; }
	.imeall-figures > .wp-block-column + .wp-block-column { border-left: 0; padding-left: 0; }
	.imeall-figures > .wp-block-column:nth-child(even) { border-left: 1px solid var(--line); padding-left: 1.25rem; }
}

.imeall-section { padding-top: var(--section); }
.imeall-section > .wp-block-columns { gap: clamp(2rem, 5vw, 5rem); margin-block: 0; }
.imeall-section-head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; flex-wrap: wrap; border-top: 2px solid var(--ink); padding-top: 1rem; margin-top: 0 !important; margin-bottom: 0.5rem !important; }
.imeall-section-head h2, .imeall-section-title { margin: 0; font-size: 1.5rem; letter-spacing: -0.01em; }
.imeall-section-head p { margin: 0; font-size: 0.9375rem; }
.imeall-section-title { border-top: 2px solid var(--ink); padding-top: 1rem; margin-top: 2.5rem !important; margin-bottom: 0.5rem !important; }
.imeall-section-title:first-child { margin-top: 0 !important; }
.imeall-section-intro { color: var(--muted); max-width: 38rem; }

.imeall-band { background: var(--ink); color: var(--surface); margin-top: var(--section) !important; padding-block: var(--section) !important; }
.imeall-band h2, .imeall-band h3 { color: var(--surface); }
.imeall-band a { color: var(--surface); }
.imeall-band .imeall-muted, .imeall-band .imeall-figure__label, .imeall-band p.imeall-band__note { color: #AAB6BD; }
.imeall-partners { list-style: none; padding: 0; margin: 2rem 0 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); border-top: 1px solid #33454F; }
.imeall-partners li { padding: 1.25rem 1.5rem 1.25rem 0; border-bottom: 1px solid #33454F; }
.imeall-partners li { color: #AAB6BD; font-size: 0.9375rem; }
.imeall-partners strong { display: block; font-weight: 600; color: var(--surface); font-size: 1rem; margin-bottom: 0.25rem; }

/* ---------- Collections (shared list styling) ---------- */
.imeall-list { list-style: none; margin: 0; padding: 0; }
.imeall-item { padding: 1.5rem 0; border-bottom: 1px solid var(--line); }
.imeall-item > * { margin: 0; }
.imeall-item > * + * { margin-top: 0.5rem; }
.imeall-item__meta { display: flex; flex-wrap: wrap; gap: 0.25rem 1rem; font-size: 0.8125rem; color: var(--muted); letter-spacing: 0.01em; margin: 0; }
.imeall-item__meta > *:empty { display: none; }
.imeall-item__meta p, .imeall-item__meta .wp-block-post-terms, .imeall-item__meta .wp-block-post-date { margin: 0; }
.imeall-item__meta a { color: var(--muted); }
.imeall-item__title { font-size: 1.25rem; line-height: 1.3; font-weight: 600; letter-spacing: -0.005em; margin: 0.4rem 0 0; }
.imeall-item__title a { text-decoration: none; }
.imeall-item__title a:hover { text-decoration: underline; color: var(--ink); text-decoration-color: var(--accent); }
.imeall-item__text { color: var(--muted); max-width: 44rem; }
.imeall-item__text p { margin: 0; }
.imeall-results { font-family: var(--mono); font-size: 0.8125rem; color: var(--muted); margin: 1.5rem 0 0; padding-bottom: 0.75rem; border-bottom: 2px solid var(--ink); }
.imeall-empty { padding: 1.5rem 0; color: var(--muted); }
.imeall-filesize { font-size: 0.8125rem; color: inherit; }
.imeall-badge { display: inline-block; padding: 0.05rem 0.4rem; border: 1px solid var(--ink); color: var(--ink); font-weight: 500; font-size: 0.75rem; letter-spacing: 0.04em; }

.imeall-pub__authors { font-size: 0.9688rem; }
.imeall-pub__venue { color: var(--muted); font-size: 0.9375rem; }
.imeall-pub__links { display: flex; flex-wrap: wrap; gap: 0.25rem 1.5rem; font-size: 0.9375rem; padding-top: 0.25rem; }
.imeall-pub__links .imeall-mono { font-size: 0.8125rem; color: var(--muted); align-self: center; }
.imeall-doc__download a { font-weight: 550; }

/* Filters */
.imeall-filters { display: flex; flex-wrap: wrap; gap: 1rem 1.25rem; align-items: flex-end; padding: 1.25rem; background: var(--tint); }
.imeall-filters__field { display: flex; flex-direction: column; gap: 0.35rem; min-width: 10rem; }
.imeall-filters__field--grow { flex: 1 1 14rem; }
.imeall-filters label { font-size: 0.875rem; font-weight: 550; }
.imeall-filters__actions { display: flex; align-items: center; gap: 1rem; }
.imeall-filters__reset { font-size: 0.9375rem; padding: 0.6rem 0; }
.imeall-filters .imeall-button { padding: 0.65rem 1rem; }

/* Form controls (filters + forms) */
.imeall-filters select, .imeall-filters input,
.imeall-form input[type=text], .imeall-form input[type=email], .imeall-form select, .imeall-form textarea {
	font: inherit; font-size: 1rem; color: var(--ink); background: var(--surface);
	border: 2px solid var(--muted); border-radius: 0; padding: 0.6rem 0.75rem; min-height: 2.875rem; box-sizing: border-box; width: 100%;
}
.imeall-filters select, .imeall-form select {
	appearance: none; padding-right: 2.5rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%230E1C24' stroke-width='2'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 0.85rem center;
}
:where(.imeall-filters, .imeall-form) :is(input, select, textarea):focus-visible { outline: var(--focus); outline-offset: 0; border-color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }

/* ---------- Events ---------- */
.imeall-event { display: grid; grid-template-columns: 5.25rem 1fr; gap: 1.25rem; align-items: start; }
.imeall-event__date { margin: 0; border-top: 3px solid var(--accent); padding-top: 0.5rem; }
.imeall-event__day { display: block; font-family: var(--mono); font-size: 2.25rem; font-weight: 500; line-height: 1; letter-spacing: -0.04em; }
.imeall-event__month { display: block; font-family: var(--mono); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); margin-top: 0.35rem; }
.imeall-event__body > * { margin: 0; }
.imeall-event__body > * + * { margin-top: 0.4rem; }
.imeall-event__body .imeall-item__title { margin-top: 0; }
.imeall-event__when { font-size: 0.9688rem; }
.imeall-status { display: inline-flex; align-items: center; gap: 0.45rem; font-size: 0.875rem; font-weight: 550; margin: 0; }
.imeall-status::before { content: ""; width: 0.55rem; height: 0.55rem; background: currentColor; flex: none; }
.imeall-status--open { color: var(--success); }
.imeall-status--full { color: var(--error); }
.imeall-status--past, .imeall-status--closed { color: var(--muted); }

/* ---------- Detail panels ---------- */
.imeall-split { gap: clamp(2rem, 5vw, 5rem) !important; margin-block: 0 !important; }
.imeall-split__main > h2:first-child, .imeall-aside-heading { margin-top: 0; }
.imeall-aside-heading { font-size: 0.8125rem !important; font-family: var(--mono); text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); font-weight: 500; border-top: 2px solid var(--ink); padding-top: 1rem; margin-bottom: 0 !important; }
@media (min-width: 782px) { .imeall-split__aside { position: sticky; top: 1.5rem; } }
.imeall-dl { margin: 0; }
.imeall-dl > div { display: grid; grid-template-columns: 8rem 1fr; gap: 1rem; padding: 0.85rem 0; border-bottom: 1px solid var(--line); }
.imeall-dl dt { font-size: 0.875rem; color: var(--muted); }
.imeall-dl dd { margin: 0; font-size: 0.9688rem; }
.imeall-cite { margin-top: 2rem; padding: 1.25rem; background: var(--tint); }
.imeall-cite__label { font-family: var(--mono); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); margin: 0 0 0.5rem; }
.imeall-cite__text { margin: 0 0 0.75rem; font-size: 0.9375rem; line-height: 1.55; }

/* ---------- Notices + forms ---------- */
.imeall-notice { border-left: 4px solid var(--ink); background: var(--surface); padding: 1rem 1.25rem; margin: 1.25rem 0; }
.imeall-notice p { margin: 0; }
.imeall-notice--demo { border-left-color: var(--accent); background: var(--tint); }
.imeall-notice--success { border-left-color: var(--success); }
.imeall-notice__title { margin: 0 0 0.35rem; font-size: 1.25rem; }
.imeall-error-summary { border: 3px solid var(--error); background: var(--surface); padding: 1.25rem 1.5rem; margin: 1.5rem 0; }
.imeall-error-summary:focus { outline: var(--focus); outline-offset: 3px; }
.imeall-error-summary__title { margin: 0 0 0.75rem; font-size: 1.25rem; }
.imeall-error-summary ul { margin: 0; padding-left: 1.1rem; }
.imeall-error-summary a { color: var(--error); font-weight: 550; }

.imeall-register { margin-top: 3rem; padding-top: 1.5rem; border-top: 2px solid var(--ink); }
.imeall-register > h2 { margin: 0 0 0.75rem; }
.imeall-register__places { color: var(--muted); }
.imeall-register__places strong { color: var(--ink); }

.imeall-form { max-width: 36rem; margin-top: 1.5rem; }
.imeall-field { margin: 0 0 1.5rem; border: 0; padding: 0; min-width: 0; }
.imeall-field__label { display: block; font-weight: 600; margin-bottom: 0.35rem; padding: 0; }
.imeall-field__hint { margin: 0 0 0.5rem; color: var(--muted); font-size: 0.9375rem; line-height: 1.45; }
.imeall-field__error { margin: 0 0 0.5rem; color: var(--error); font-weight: 600; font-size: 0.9375rem; }
.imeall-field--error:not(fieldset) { border-left: 4px solid var(--error); padding-left: 1rem; }
fieldset.imeall-field--error { border-left: 4px solid var(--error); padding-left: 1rem; }
.imeall-field--error :is(input[type=text], input[type=email], select, textarea) { border-color: var(--error); }
.imeall-form textarea { min-height: 8rem; resize: vertical; }
.imeall-radios { display: flex; flex-wrap: wrap; gap: 0.75rem 1.75rem; }
.imeall-radio, .imeall-checkbox { display: flex; gap: 0.65rem; align-items: flex-start; }
.imeall-radio input, .imeall-checkbox input { width: 1.5rem; height: 1.5rem; margin: 0.05rem 0 0; accent-color: var(--ink); flex: none; }
.imeall-checkbox label { font-size: 0.9688rem; line-height: 1.5; }
.imeall-form__privacy { font-size: 0.9375rem; color: var(--muted); }
.imeall-form__actions { margin-top: 1.5rem; }
.imeall-form__live:empty { display: none; }
.imeall-hp { position: absolute !important; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }

/* ---------- Map ---------- */
.imeall-sitemap { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3rem); align-items: start; }
.imeall-sitemap__map { position: sticky; top: 1.5rem; }
.imeall-map { height: min(78vh, 44rem); background: var(--tint); border: 1px solid var(--line); }
.imeall-map__fallback { padding: 1.5rem; margin: 0; color: var(--muted); }
.imeall-map__note { font-size: 0.8125rem; color: var(--muted); margin: 0.6rem 0 0; }
.imeall-sitemap__list { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--ink); }
.imeall-site { display: grid; grid-template-columns: 2.5rem 1fr; gap: 0.75rem; padding: 1.25rem 0; border-bottom: 1px solid var(--line); scroll-margin-top: 1rem; }
.imeall-site:focus { outline: var(--focus); outline-offset: 4px; }
.imeall-site > div > * { margin: 0; }
.imeall-site > div > * + * { margin-top: 0.4rem; }
.imeall-site__num { margin: 0; font-size: 0.875rem; font-weight: 500; color: var(--accent); padding-top: 0.15rem; }
.imeall-site__name { font-size: 1.125rem; line-height: 1.3; font-weight: 600; }
.imeall-site__methods { font-size: 0.9375rem; }
.imeall-site__coords { font-size: 0.8125rem; color: var(--muted); }
@media (max-width: 781px) {
	.imeall-sitemap { grid-template-columns: 1fr; }
	.imeall-sitemap__map { position: static; }
	.imeall-map { height: 62vh; }
	.imeall-map:not(.is-loaded) { height: auto; min-height: 0; padding: 1.25rem; background: var(--tint) url(assets/img/hero-coast.svg) right center / 55% auto no-repeat; }
	.imeall-map:not(.is-loaded) .imeall-map__fallback { padding: 0 0 1rem; max-width: 60%; }
}
.imeall-map__load[hidden] { display: none; }
@media (min-width: 782px) { .imeall-map__load { display: none; } }
.imeall-marker { background: none; border: 0; }
.imeall-marker span {
	display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; box-sizing: border-box;
	background: var(--accent); color: var(--surface); border: 2px solid var(--surface);
	font: 600 12px/1 var(--mono); box-shadow: 0 0 0 1px var(--ink);
}
.imeall-marker:focus-visible { outline: 3px solid var(--ink); outline-offset: 2px; }
.imeall-marker:hover span, .imeall-marker:focus-visible span { background: var(--ink); }
.leaflet-container { font-family: var(--wp--preset--font-family--sans); }
.leaflet-container a { color: var(--ink); }
.leaflet-popup-content-wrapper { border-radius: 0; box-shadow: 0 0 0 1px var(--ink); }
.leaflet-popup-tip { box-shadow: none; }
.leaflet-popup-content { margin: 1rem 1.15rem; font-size: 0.9375rem; line-height: 1.45; }
.leaflet-popup-content p { margin: 0.35rem 0; }
.leaflet-popup-content .imeall-popup__title { font-weight: 600; font-size: 1.0625rem; margin-top: 0; }
.leaflet-popup-content .imeall-popup__meta { font-family: var(--mono); font-size: 0.75rem; color: var(--muted); }
.leaflet-bar a { border-radius: 0 !important; color: var(--ink); }
.leaflet-control-attribution { font-size: 0.6875rem; }
.leaflet-control-attribution a { color: #1F3B4A; }

/* ---------- Video facade ---------- */
.imeall-video { margin: 0; }
.imeall-video__frame { position: relative; aspect-ratio: 16 / 9; background: var(--ink); overflow: hidden; }
.imeall-video__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.imeall-video__poster {
	position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; gap: 0.5rem;
	padding: clamp(1rem, 3vw, 2rem); color: var(--surface);
	background-color: var(--ink);
	background-image: url(assets/img/contours-dark.svg); background-size: cover; background-position: center;
}
.imeall-video__poster-title { font-size: clamp(1.125rem, 2.4vw, 1.625rem); font-weight: 600; line-height: 1.2; max-width: 24ch; }
.imeall-video__poster-meta { font-size: 0.8125rem; color: #AAB6BD; }
.imeall-video__play {
	position: absolute; top: clamp(1rem, 3vw, 2rem); left: clamp(1rem, 3vw, 2rem);
	display: inline-flex; align-items: center; gap: 0.6rem; padding: 0.75rem 1.1rem 0.75rem 0.8rem;
	background: var(--accent); color: var(--surface); border: 2px solid var(--accent); font: inherit; font-weight: 600; cursor: pointer;
}
.imeall-video__play:hover { background: var(--surface); color: var(--ink); border-color: var(--surface); }
.imeall-video__play:focus-visible { outline: 3px solid var(--surface); outline-offset: 3px; }
.imeall-video__caption { font-size: 0.875rem; color: var(--muted); margin-top: 0.75rem; line-height: 1.5; }

/* ---------- Share ---------- */
.imeall-share { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.5rem 1.25rem; margin-top: 3rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.imeall-share__label { margin: 0; font-family: var(--mono); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); }
.imeall-share__list { display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; list-style: none; margin: 0; padding: 0; font-size: 0.9375rem; }

/* ---------- People + partners (Team page) ---------- */
.imeall-people { list-style: none; padding: 0; margin: 1.5rem 0 0 !important; display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); border-top: 1px solid var(--line); }
.imeall-people li { padding: 1.25rem 1.25rem 1.25rem 0; border-bottom: 1px solid var(--line); margin: 0 !important; }
.imeall-people li { color: var(--muted); font-size: 0.9375rem; line-height: 1.5; }
.imeall-people strong { display: block; font-size: 1.0625rem; font-weight: 600; color: var(--ink); margin-bottom: 0.2rem; }

.imeall-link-list { list-style: none; padding: 0 !important; border-top: 1px solid var(--line); }
.imeall-link-list li { margin: 0 !important; border-bottom: 1px solid var(--line); }
.imeall-link-list a { display: block; padding: 0.85rem 0; text-decoration: none; font-weight: 550; }
.imeall-link-list a::after { content: " →"; color: var(--accent); }
.imeall-link-list a:hover { text-decoration: underline; }

/* ---------- News (archive) ---------- */
.imeall-news__item--image { display: grid; grid-template-columns: minmax(0, 15rem) 1fr; gap: 1.5rem; align-items: start; }
.imeall-news__item--image .imeall-news__image { margin: 0; }
.imeall-news__item--image:not(:has(img)) { grid-template-columns: 1fr; }
.imeall-news__body > * { margin: 0; }
.imeall-news__body > * + * { margin-top: 0.5rem; }
.wp-block-query .wp-block-post-template { list-style: none; padding: 0; margin: 0; }
.wp-block-query-pagination { margin-top: 2rem; font-weight: 550; }
@media (max-width: 600px) { .imeall-news__item--image { grid-template-columns: 1fr; } }

/* ---------- Footer ---------- */
.imeall-footer { background: var(--ink); color: #D7DEE2; padding-top: var(--section); padding-bottom: 2rem; font-size: 0.9375rem; }
.imeall-footer a { color: var(--surface); }
.imeall-footer a:hover { color: var(--accent-light); }
.imeall-footer__cols { gap: 2.5rem; margin-block: 0; }
.imeall-footer__name { font-weight: 650; letter-spacing: 0.08em; color: var(--surface); font-size: 1.25rem; margin: 0 0 1rem; }
.imeall-footer__heading { font-family: var(--mono); font-size: 0.75rem !important; font-weight: 500; text-transform: uppercase; letter-spacing: 0.08em; color: #AAB6BD; margin: 0 0 1rem; }
.imeall-footer__links { list-style: none; padding: 0; margin: 0; }
.imeall-footer__links li + li { margin-top: 0.55rem; }
.imeall-footer__small { font-size: 0.875rem; color: #AAB6BD; }
.imeall-footer__legal { border-top: 1px solid #33454F; margin-top: 3rem !important; padding-top: 1.25rem; font-size: 0.8125rem; color: #AAB6BD; }

/* ---------- 404 ---------- */
.imeall-404 .imeall-pagehead h1 { font-size: clamp(2.5rem, 6vw, 4.25rem); }

/* ---------- Small screens ---------- */
@media (max-width: 781px) {
	.imeall-header__inner { padding: 0.9rem 0; }
	.imeall-brand__tagline { display: none; }
	.imeall-event { grid-template-columns: 4rem 1fr; gap: 1rem; }
	.imeall-event__day { font-size: 1.875rem; }
	.imeall-dl > div { grid-template-columns: 6.5rem 1fr; }
	.imeall-filters { padding: 1rem; }
	.imeall-filters__field { flex: 1 1 100%; }
}

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

/* ---------- Print ---------- */
@media print {
	.imeall-header, .imeall-footer, .imeall-share, .imeall-filters, .imeall-map { display: none !important; }
	.imeall-demo-banner { background: none; color: #000; border-bottom: 1px solid #000; }
}
.imeall-prose > :first-child { margin-top: 0 !important; }
.imeall-lead { margin-left: 0 !important; }
.imeall-prose :is(.imeall-people, .imeall-partners, .imeall-link-list) { padding-left: 0; }
.imeall-prose :is(.imeall-people, .imeall-partners, .imeall-link-list) li::marker { content: none; }
.imeall-news__image, .imeall-news__image img { width: 100% !important; }
.imeall-news__image img { height: 100%; object-fit: cover; display: block; }
