/*
 * ACM Core - front-end styles.
 *
 * Only layout the ACM Marquee base classes (.bb-*) do not already provide.
 * Every colour, font, size and spacing value comes from the design-system
 * custom properties; nothing is hardcoded. Mobile-first.
 */

/* -------------------------------------------------------------------------
 * Winners search
 * ---------------------------------------------------------------------- */

.acm-winners {
	position: relative;
}

.acm-winners__filters {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--ds-space-md);
	align-items: end;
	margin-bottom: var(--ds-space-lg);
}

.acm-winners__field {
	display: flex;
	flex-direction: column;
	gap: var(--ds-space-xs);
	min-width: 0;
}

.acm-winners__label {
	font-family: var(--ds-font-body);
	font-size: var(--ds-text-xs);
	font-weight: 700;
	letter-spacing: var(--ds-letter-ui);
	text-transform: uppercase;
	color: var(--ds-color-on-dark-muted);
}

.acm-winners .bb-field,
.acm-winners .bb-select {
	width: 100%;
	min-height: 44px; /* touch target */
}

.acm-winners__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--ds-space-sm) var(--ds-space-md);
}

.acm-winners__actions .bb-btn {
	min-height: 44px;
	width: 100%;
	justify-content: center;
}

/* "Include nominees" toggle: a real checkbox (visually hidden, still
   focusable) driving a custom box drawn with the design-system tokens. */
.acm-winners__toggle {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: var(--ds-space-xs);
	min-height: 44px;
	cursor: pointer;
	user-select: none;
}

.acm-winners__checkbox {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

.acm-winners__toggle-box {
	flex: none;
	width: 20px;
	height: 20px;
	border: 1px solid var(--ds-color-on-dark-faint);
	border-radius: var(--ds-radius-sm);
	background: transparent;
	transition: border-color var(--ds-transition-fast), background var(--ds-transition-fast);
}

.acm-winners__toggle-box::after {
	content: "";
	display: block;
	width: 6px;
	height: 11px;
	margin: 2px auto 0;
	border: solid var(--ds-color-black);
	border-width: 0 2px 2px 0;
	transform: rotate(45deg) scale(0);
	transition: transform var(--ds-transition-fast);
}

.acm-winners__toggle-text {
	font-family: var(--ds-font-body);
	font-size: var(--ds-text-xs);
	font-weight: 700;
	letter-spacing: var(--ds-letter-ui);
	text-transform: uppercase;
	color: var(--ds-color-on-dark-muted);
	transition: color var(--ds-transition-fast);
}

.acm-winners__toggle:hover .acm-winners__toggle-box {
	border-color: var(--ds-color-gold);
}

.acm-winners__toggle:hover .acm-winners__toggle-text {
	color: var(--ds-color-gold-bright);
}

.acm-winners__checkbox:checked ~ .acm-winners__toggle-box {
	background: var(--ds-color-gold);
	border-color: var(--ds-color-gold);
}

.acm-winners__checkbox:checked ~ .acm-winners__toggle-box::after {
	transform: rotate(45deg) scale(1);
}

.acm-winners__checkbox:checked ~ .acm-winners__toggle-text {
	color: var(--ds-color-on-dark);
}

.acm-winners__checkbox:focus-visible ~ .acm-winners__toggle-box {
	outline: 2px solid var(--ds-color-gold-bright);
	outline-offset: 3px;
}

.acm-winners__count {
	min-height: 1.5em;
	margin: 0 0 var(--ds-space-md);
}

.acm-winners__count:empty {
	display: none;
}

.acm-winners__results {
	transition: opacity var(--ds-transition-fast);
}

.acm-winners.is-loading .acm-winners__results {
	opacity: 0.6;
}

.acm-winners__group {
	margin-bottom: var(--ds-space-xl);
}

.acm-winners__group-title {
	font-family: var(--ds-font-display);
	font-weight: 900;
	font-size: var(--ds-text-2xl);
	line-height: 0.95;
	letter-spacing: -0.005em;
	text-transform: uppercase;
	color: var(--ds-color-champagne);
	margin: 0 0 var(--ds-space-sm);
	padding-bottom: var(--ds-space-sm);
	border-bottom: 1px solid var(--ds-color-hairline);
}

.acm-winners__group-year {
	font-family: var(--ds-font-serif);
	font-style: italic;
	font-weight: 400;
	font-size: 0.8em;
	text-transform: none;
	color: var(--ds-color-gold-bright);
	margin-left: 0.25em;
}

.acm-winner {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--ds-space-xs) var(--ds-space-lg);
	padding: var(--ds-space-md) 0;
	border-bottom: 1px solid var(--ds-color-hairline);
}

.acm-winner > .bb-eyebrow {
	margin: 0;
}

.acm-winner__tag {
	justify-self: start;
	align-self: start;
}

.acm-winner__name {
	font-family: var(--ds-font-display);
	font-weight: 700;
	font-size: var(--ds-text-xl);
	line-height: 1;
	text-transform: uppercase;
	color: var(--ds-color-on-dark);
	margin: 0;
}

/* Scoped to .acm-winners so the page-builder's ".fl-ds-page p" margin rule
   (higher specificity than a lone class) cannot reopen the gaps. */
.acm-winners .acm-winner__work {
	margin: 0;
	font-size: var(--ds-text-lg);
}

.acm-winners .acm-winner__credits {
	margin: 0;
	font-size: var(--ds-text-sm);
	line-height: 1.5;
}

.acm-winners__empty {
	margin: var(--ds-space-md) 0;
}

.acm-winners__more {
	display: flex;
	justify-content: center;
	margin: var(--ds-space-lg) 0 0;
}

.acm-winners__more .bb-btn {
	min-height: 44px;
}

/* Skeleton rows while a request is in flight. */
.acm-skeleton {
	padding: var(--ds-space-md) 0;
	border-bottom: 1px solid var(--ds-color-hairline);
}

.acm-skeleton__bar {
	height: 0.9em;
	border-radius: var(--ds-radius-pill);
	background: linear-gradient(90deg, var(--ds-color-graphite) 0%, var(--ds-color-coal) 50%, var(--ds-color-graphite) 100%);
	background-size: 200% 100%;
	animation: acm-shimmer 1.4s linear infinite;
	margin-bottom: var(--ds-space-xs);
}

.acm-skeleton__bar--eyebrow { width: 28%; height: 0.6em; }
.acm-skeleton__bar--name    { width: 62%; height: 1.4em; }
.acm-skeleton__bar--work    { width: 44%; margin-bottom: 0; }

@keyframes acm-shimmer {
	from { background-position: 200% 0; }
	to   { background-position: -200% 0; }
}

@media (min-width: 600px) {
	.acm-winners__filters {
		grid-template-columns: 1fr 1fr;
	}
	.acm-winners__field--search {
		grid-column: 1 / -1;
	}
	.acm-winners__actions .bb-btn {
		width: auto;
	}
	.acm-winner {
		grid-template-columns: minmax(180px, 240px) 1fr;
		grid-template-areas:
			"cat name"
			"tag work"
			"tag credits";
	}
	.acm-winner > .bb-eyebrow { grid-area: cat; align-self: start; }
	.acm-winner__tag           { grid-area: tag; }
	.acm-winner__name          { grid-area: name; }
	.acm-winner__work          { grid-area: work; }
	.acm-winner__credits       { grid-area: credits; }
}

@media (min-width: 960px) {
	.acm-winners__filters {
		grid-template-columns: 1fr 1fr 1.4fr auto;
	}
	.acm-winners__field--search {
		grid-column: auto;
	}
	.acm-winners__group-title {
		font-size: var(--ds-text-3xl);
	}
}

/* -------------------------------------------------------------------------
 * Nominees
 * ---------------------------------------------------------------------- */

.acm-nominees {
	--acm-jumpnav-height: 0px;
}

.acm-jumpnav {
	position: sticky;
	top: var(--acm-sticky-top, 0px);
	z-index: 20;
	margin: 0 0 var(--ds-space-lg);
	background: var(--ds-color-black);
	border-bottom: 1px solid var(--ds-color-hairline);
}

.acm-jumpnav__list {
	display: flex;
	gap: var(--ds-space-xs);
	list-style: none;
	margin: 0;
	padding: var(--ds-space-sm) 0;
	overflow-x: auto;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}

.acm-jumpnav__list::-webkit-scrollbar {
	display: none;
}

.acm-jumpnav__item {
	flex: 0 0 auto;
	margin: 0;
}

.acm-jumpnav__link {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 var(--ds-space-md);
	border: 1px solid var(--ds-color-hairline-light);
	border-radius: var(--ds-radius-pill);
	font-family: var(--ds-font-body);
	font-size: var(--ds-text-xs);
	font-weight: 700;
	letter-spacing: var(--ds-letter-ui);
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	color: var(--ds-color-on-dark-muted);
	transition: color var(--ds-transition-fast), border-color var(--ds-transition-fast), background var(--ds-transition-fast);
}

.acm-jumpnav__link:hover,
.acm-jumpnav__link:focus-visible {
	color: var(--ds-color-gold-bright);
	border-color: var(--ds-color-gold);
	outline: none;
}

.acm-jumpnav__link.is-active {
	color: var(--ds-color-black);
	background: var(--ds-color-gold);
	border-color: var(--ds-color-gold);
}

.acm-nominees__category {
	margin-bottom: var(--ds-space-2xl);
	scroll-margin-top: calc(var(--acm-sticky-top, 0px) + var(--acm-jumpnav-height) + var(--ds-space-md));
}

.acm-nominees__title {
	margin-top: var(--ds-space-xs);
	margin-bottom: var(--ds-space-lg);
}

.acm-nominee {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.acm-nominee__photo {
	aspect-ratio: 4 / 5;
	overflow: hidden;
	border-radius: var(--ds-radius-md);
	background: var(--ds-color-graphite);
}

.acm-nominee__photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: saturate(0.85);
	transition: transform 1s cubic-bezier(0.2, 0.8, 0.2, 1), filter var(--ds-transition-base);
}

.acm-nominee:hover .acm-nominee__photo img {
	transform: scale(1.05);
	filter: saturate(1);
}

.acm-nominee--winner .acm-nominee__photo {
	box-shadow: 0 0 0 1px var(--ds-color-gold);
}

.acm-nominee__body {
	padding-top: var(--ds-space-sm);
}

.acm-nominee__tag {
	margin-bottom: var(--ds-space-xs);
}

.acm-nominee__name {
	font-family: var(--ds-font-display);
	font-weight: 700;
	font-size: var(--ds-text-xl);
	line-height: 1;
	text-transform: uppercase;
	color: var(--ds-color-on-dark);
	margin: 0 0 var(--ds-space-xs);
}

.acm-nominee__work {
	margin: 0 0 var(--ds-space-xs);
	font-size: var(--ds-text-base);
}

.acm-nominee__credits {
	margin: 0;
	font-size: var(--ds-text-xs);
	line-height: 1.5;
}

/* -------------------------------------------------------------------------
 * People and modal
 * ---------------------------------------------------------------------- */

.acm-person--modal {
	cursor: pointer;
}

.acm-person__open {
	appearance: none;
	background: none;
	border: 0;
	padding: 0;
	margin: 0;
	font: inherit;
	color: inherit;
	text-align: left;
	text-transform: inherit;
	letter-spacing: inherit;
	cursor: pointer;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
}

.acm-person__open:focus-visible {
	outline: 2px solid var(--ds-color-gold);
	outline-offset: 4px;
	border-radius: 2px;
}

.acm-remember__dates {
	margin: 0 0 var(--ds-space-xs);
}

.acm-remember__text {
	font-size: var(--ds-text-sm);
	margin-top: var(--ds-space-sm);
}

.acm-modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--ds-space-md);
}

.acm-modal[hidden] {
	display: none;
}

.acm-modal__backdrop {
	position: absolute;
	inset: 0;
	background: var(--ds-color-scrim);
}

.acm-modal__dialog {
	position: relative;
	width: 100%;
	max-width: 880px;
	max-height: calc(100vh - 2 * var(--ds-space-md));
	max-height: calc(100dvh - 2 * var(--ds-space-md));
	overflow-y: auto;
	background: var(--ds-color-coal);
	border: 1px solid var(--ds-color-hairline);
	border-radius: var(--ds-radius-md);
	box-shadow: var(--ds-shadow-card);
	padding: var(--ds-space-lg);
	color: var(--ds-color-on-dark);
	animation: acm-modal-in 0.35s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.acm-modal__dialog:focus {
	outline: none;
}

@keyframes acm-modal-in {
	from { opacity: 0; transform: translateY(12px); }
	to   { opacity: 1; transform: none; }
}

.acm-modal__close {
	position: absolute;
	top: var(--ds-space-sm);
	right: var(--ds-space-sm);
	width: 44px;
	height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: none;
	border: 1px solid var(--ds-color-hairline-light);
	border-radius: var(--ds-radius-pill);
	color: var(--ds-color-on-dark);
	cursor: pointer;
	transition: border-color var(--ds-transition-fast), color var(--ds-transition-fast);
}

.acm-modal__close:hover,
.acm-modal__close:focus-visible {
	border-color: var(--ds-color-gold);
	color: var(--ds-color-gold-bright);
	outline: none;
}

.acm-modal__close svg {
	width: 16px;
	height: 16px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
}

.acm-modal__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--ds-space-lg);
}

.acm-modal__photo {
	aspect-ratio: 4 / 5;
	overflow: hidden;
	border-radius: var(--ds-radius-md);
	background: var(--ds-color-graphite);
	max-width: 280px;
}

.acm-modal__photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.acm-modal__name {
	font-family: var(--ds-font-display);
	font-weight: 900;
	font-size: var(--ds-text-3xl);
	line-height: 0.95;
	text-transform: uppercase;
	color: var(--ds-color-champagne);
	margin: 0 0 var(--ds-space-xs);
	padding-right: 52px; /* keep clear of the close button */
}

.acm-modal__role {
	margin: 0;
	font-size: var(--ds-text-sm);
	color: var(--ds-color-gold);
}

.acm-modal__org {
	margin: 0 0 var(--ds-space-md);
	font-size: var(--ds-text-sm);
	color: var(--ds-color-on-dark-muted);
}

body.acm-modal-open {
	overflow: hidden;
}

@media (min-width: 720px) {
	.acm-modal__grid {
		grid-template-columns: 280px 1fr;
		align-items: start;
	}
	.acm-modal__dialog {
		padding: var(--ds-space-xl);
	}
}

/* -------------------------------------------------------------------------
 * Partners, events, news, awards
 * ---------------------------------------------------------------------- */

.acm-partners__logo {
	display: block;
	width: auto;
	max-width: 100%;
	max-height: 64px;
	object-fit: contain;
}

.acm-partners__cell {
	text-decoration: none;
	min-height: 44px;
}

.acm-partners__name {
	font-family: var(--ds-font-display);
	font-weight: 700;
	font-size: var(--ds-text-lg);
	text-transform: uppercase;
	color: var(--ds-color-champagne);
	text-align: center;
}

.acm-card__excerpt {
	margin: var(--ds-space-xs) 0 var(--ds-space-sm);
	font-size: var(--ds-text-sm);
	line-height: 1.6;
	color: var(--ds-color-on-dark-muted);
}

.bb-card__body > .bb-meta {
	display: block;
	margin-bottom: var(--ds-space-xs);
}

.bb-card__body > .bb-link {
	margin-top: auto;
}

.acm-news__card .bb-card__title a {
	color: inherit;
	text-decoration: none;
}

.acm-news__card .bb-card__title a:hover,
.acm-news__card .bb-card__title a:focus-visible {
	color: var(--ds-color-gold-bright);
}

.acm-card--featured .bb-card__title {
	font-size: var(--ds-text-2xl);
}

@media (min-width: 900px) {
	.acm-news--featured .acm-card--featured {
		grid-column: span 2;
	}
}

/* Award definitions: alternating editorial list. */
.acm-awards--list {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--ds-space-2xl);
}

.acm-award {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--ds-space-md);
	align-items: center;
}

.acm-award__media img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--ds-radius-md);
	background: var(--ds-color-graphite);
}

.acm-award__title {
	margin-top: 0;
	margin-bottom: var(--ds-space-sm);
}

.acm-award__desc {
	max-width: 62ch;
}

.acm-awards--grid .acm-award__desc {
	font-size: var(--ds-text-sm);
}

@media (min-width: 760px) {
	.acm-award {
		grid-template-columns: 5fr 7fr;
		gap: var(--ds-space-xl);
	}
	.acm-award:nth-child(even) .acm-award__media {
		order: 2;
	}
	.acm-award--no-media {
		grid-template-columns: 1fr;
		max-width: 780px;
	}
}

/* -------------------------------------------------------------------------
 * Reduced motion
 * ---------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	.acm-skeleton__bar,
	.acm-modal__dialog {
		animation: none;
	}
	.acm-nominee__photo img,
	.acm-jumpnav__link,
	.acm-winners__results,
	.acm-winners__toggle-box,
	.acm-winners__toggle-box::after,
	.acm-winners__toggle-text,
	.acm-modal__close {
		transition: none;
	}
	.acm-nominee:hover .acm-nominee__photo img {
		transform: none;
	}
}


/* ---------- [acm_nominees layout="compact"] : editorial category list ---------- */
.acm-nominees--compact { border-top: 1px solid var(--ds-color-hairline); }
.acm-nominees--compact .acm-nominees__category { margin: 0; }
.acm-nominees--compact .acm-cat { display: grid; grid-template-columns: minmax(220px, 0.8fr) minmax(0, 2fr); gap: var(--ds-space-md) var(--ds-space-2xl); padding: 28px 0 22px; border-bottom: 1px solid var(--ds-color-hairline); scroll-margin-top: calc(var(--acm-sticky-top, 0px) + 140px); }
.acm-nominees--compact .acm-cat__head { position: sticky; top: calc(var(--acm-sticky-top, 0px) + 150px); align-self: start; }
.acm-nominees--compact .acm-cat__title { font-family: var(--ds-font-display); font-weight: var(--ds-weight-black); text-transform: uppercase; font-size: clamp(26px, 2.4vw, 36px); line-height: 0.95; margin: 0 0 8px; }
.acm-nominees--compact .acm-cat__count { font-size: var(--ds-text-xs); font-weight: var(--ds-weight-bold); letter-spacing: var(--ds-letter-ui); text-transform: uppercase; color: var(--ds-color-on-dark-muted); }
.acm-nominees--compact .acm-cat__body { min-width: 0; }
.acm-nominees--compact .acm-nominee--winner { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--ds-space-md); align-items: center; padding: 0 0 16px; }
.acm-nominees--compact .acm-nominee--winner .acm-nominee__photo { width: 128px; aspect-ratio: 4 / 5; border-radius: var(--ds-radius-md); overflow: hidden; background: var(--ds-color-graphite); box-shadow: 0 0 0 1px rgba(212, 178, 95, 0.45), var(--ds-shadow-card); }
.acm-nominees--compact .acm-nominee--winner .acm-nominee__photo img { width: 100%; height: 100%; object-fit: cover; }
.acm-nominees--compact .acm-nominee--winner .acm-nominee__name { font-family: var(--ds-font-display); font-weight: var(--ds-weight-black); text-transform: uppercase; font-size: clamp(30px, 3vw, 44px); line-height: 0.95; margin: 10px 0 6px; }
.acm-nominees--compact .acm-nominee--winner .acm-nominee__work { font-family: var(--ds-font-display); font-weight: var(--ds-weight-medium); text-transform: uppercase; font-size: var(--ds-text-lg); color: var(--ds-color-gold-bright); margin: 0 0 4px; }
.acm-nominees--compact .acm-nominee--winner .acm-nominee__work .bb-serif-i { font-size: 1em; }
.acm-nominees--compact .acm-nominee--winner .acm-nominee__credits { font-size: var(--ds-text-sm); margin: 0; }
.acm-nominees--compact .acm-cat__more { border-top: 1px solid var(--ds-color-hairline); }
.acm-nominees--compact .acm-cat__summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 12px; padding: 12px 0; font-size: var(--ds-text-xs); font-weight: var(--ds-weight-bold); letter-spacing: var(--ds-letter-ui); text-transform: uppercase; color: var(--ds-color-gold); transition: color var(--ds-transition-fast); }
.acm-nominees--compact .acm-cat__summary::-webkit-details-marker { display: none; }
.acm-nominees--compact .acm-cat__summary::before { content: ""; width: 26px; height: 26px; flex: none; border: 1px solid var(--ds-color-gold); border-radius: 50%; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cpath d='M13 8v10M8 13h10' stroke='%23000' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat center / contain; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cpath d='M13 8v10M8 13h10' stroke='%23000' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat center / contain; transition: transform var(--ds-transition-base); }
.acm-nominees--compact .acm-cat__summary:hover { color: var(--ds-color-gold-bright); }
.acm-nominees--compact .acm-cat__more[open] .acm-cat__summary::before { transform: rotate(45deg); }
.acm-nominees--compact .acm-cat__list { list-style: none; margin: 0 0 8px; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--ds-space-lg); }
.acm-nominees--compact .acm-nominee--row { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 14px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--ds-color-hairline); }
.acm-nominees--compact .acm-nominee--row .acm-nominee__photo { width: 48px; height: 60px; border-radius: 6px; overflow: hidden; background: var(--ds-color-graphite); filter: saturate(0.85); }
.acm-nominees--compact .acm-nominee--row .acm-nominee__photo img { width: 100%; height: 100%; object-fit: cover; }
.acm-nominees--compact .acm-nominee--row .acm-nominee__name { font-family: var(--ds-font-display); font-weight: var(--ds-weight-bold); text-transform: uppercase; font-size: 20px; line-height: 1.05; margin: 0; }
.acm-nominees--compact .acm-nominee--row .acm-nominee__work { font-size: var(--ds-text-sm); color: var(--ds-color-gold-bright); margin: 2px 0 0; }
.acm-nominees--compact .acm-nominee--row .acm-nominee__work .bb-serif-i { font-family: var(--ds-font-body); font-size: 1em; text-transform: none; font-weight: var(--ds-weight-medium); }
.acm-nominees--compact .acm-nominee--row .acm-nominee__credits { font-size: var(--ds-text-xs); margin: 2px 0 0; }
.acm-nominees--compact .acm-nominee.is-hit .acm-nominee__name { color: var(--ds-color-gold-bright); }
@media (max-width: 900px) {
	.acm-nominees--compact .acm-cat { grid-template-columns: 1fr; gap: 12px; padding: 22px 0 16px; }
	.acm-nominees--compact .acm-cat__head { position: static; }
	.acm-nominees--compact .acm-cat__list { grid-template-columns: 1fr; }
	.acm-nominees--compact .acm-nominee--winner .acm-nominee__photo { width: 96px; }
	.acm-nominees--compact .acm-nominee--winner .acm-nominee__name { font-size: 28px; }
}

/* -------------------------------------------------------------------------
 * [acm_people layout="compact"] (remembrance): dense rows, tribute behind <details>
 * ---------------------------------------------------------------------- */

.acm-people--compact { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--ds-space-xl); border-top: 1px solid var(--ds-color-hairline); }
.acm-people--compact .acm-people__row { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 16px; align-items: start; padding: 14px 0; border-bottom: 1px solid var(--ds-color-hairline); }
.acm-people--compact .acm-people__photo { width: 64px; height: 80px; border-radius: 6px; overflow: hidden; background: var(--ds-color-graphite); }
.acm-people--compact .acm-people__photo img { display: block; width: 100%; height: 100%; object-fit: cover; filter: saturate(0.85); }
.acm-people--compact .acm-people__body { min-width: 0; padding-top: 2px; }
.acm-people--compact .acm-people__name { font-family: var(--ds-font-display); font-weight: var(--ds-weight-bold); text-transform: uppercase; font-size: 22px; line-height: 1.05; margin: 0; color: var(--ds-color-on-dark); }
.acm-people--compact .acm-people__dates { margin: 3px 0 0; font-size: var(--ds-text-xs); font-weight: var(--ds-weight-bold); letter-spacing: var(--ds-letter-ui); text-transform: uppercase; color: var(--ds-color-on-dark-muted); }
.acm-people--compact .acm-people__more { margin-top: 6px; }
.acm-people--compact .acm-people__summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 10px; padding: 6px 0; font-size: var(--ds-text-xs); font-weight: var(--ds-weight-bold); letter-spacing: var(--ds-letter-ui); text-transform: uppercase; color: var(--ds-color-gold); transition: color var(--ds-transition-fast); }
.acm-people--compact .acm-people__summary::-webkit-details-marker { display: none; }
.acm-people--compact .acm-people__summary::before { content: ""; width: 22px; height: 22px; flex: none; border: 1px solid var(--ds-color-gold); border-radius: 50%; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cpath d='M13 8v10M8 13h10' stroke='%23000' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat center / contain; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cpath d='M13 8v10M8 13h10' stroke='%23000' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat center / contain; transition: transform var(--ds-transition-base); }
.acm-people--compact .acm-people__summary:hover { color: var(--ds-color-gold-bright); }
.acm-people--compact .acm-people__summary:focus-visible { outline: 2px solid var(--ds-color-gold-bright); outline-offset: 3px; border-radius: 2px; }
.acm-people--compact .acm-people__more[open] .acm-people__summary::before { transform: rotate(45deg); }
.acm-people--compact .acm-people__text { font-size: var(--ds-text-sm); line-height: 1.6; color: var(--ds-color-on-dark-muted); max-width: 60ch; padding: 4px 0 8px; }
.acm-people--compact .acm-people__text p { margin: 0 0 0.9em; }
.acm-people--compact .acm-people__text p:last-child { margin-bottom: 0; }
@media (max-width: 900px) {
	.acm-people--compact { grid-template-columns: 1fr; }
}

/* -------------------------------------------------------------------------
 * Event types (colour per acm_event_type slug; gold fallback)
 * ---------------------------------------------------------------------- */

.acm-type { display: inline-flex; align-items: center; gap: 8px; font-size: var(--ds-text-xs); font-weight: 700; letter-spacing: var(--ds-letter-ui); text-transform: uppercase; color: var(--ds-color-gold-bright); }
.acm-type::before, .acm-cal__dot { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--acm-type, var(--ds-color-gold)); flex: none; }
.acm-type--awards, .acm-type-dot--awards, .acm-cal__chip--awards { --acm-type: var(--ds-color-gold); }
.acm-type--honors, .acm-type-dot--honors, .acm-cal__chip--honors { --acm-type: #c98a3a; }
.acm-type--member, .acm-type-dot--member, .acm-cal__chip--member { --acm-type: #6fb1c8; }
.acm-type--deadline, .acm-type-dot--deadline, .acm-cal__chip--deadline { --acm-type: #d9655b; }
.acm-type--education, .acm-type-dot--education, .acm-cal__chip--education { --acm-type: #8fbf7f; }
.acm-type--community, .acm-type-dot--community, .acm-cal__chip--community { --acm-type: #b48be0; }
.acm-cal__dot { background: var(--acm-type, var(--ds-color-gold)); }
.bb-section--light .acm-type { color: var(--ds-color-gold-deep); }

/* -------------------------------------------------------------------------
 * Event rows ([acm_upcoming_events], calendar list, day panel)
 * ---------------------------------------------------------------------- */

.acm-upcoming { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ds-color-hairline); }
.acm-event-row { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 4px var(--ds-space-md); align-items: start; padding: 18px 0; border-bottom: 1px solid var(--ds-color-hairline); }
.acm-event-row[hidden] { display: none; }
.acm-event-row--past { opacity: 0.7; }
.acm-event-row__date { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 72px; padding: 10px 0 8px; border: 1px solid var(--ds-color-hairline); border-radius: var(--ds-radius-md); background: rgba(212, 178, 95, 0.06); text-decoration: none; color: inherit; grid-row: span 2; }
.acm-event-row--featured .acm-event-row__date { border-color: var(--ds-color-gold); box-shadow: 0 0 0 1px rgba(212, 178, 95, 0.35); }
.acm-event-row__month { font-size: 11px; font-weight: 700; letter-spacing: var(--ds-letter-ui); text-transform: uppercase; color: var(--ds-color-gold); }
.acm-event-row__day { font-family: var(--ds-font-display); font-weight: var(--ds-weight-black); font-size: 34px; line-height: 1; margin-top: 2px; }
.acm-event-row__weekday { font-size: 11px; color: var(--ds-color-on-dark-muted); text-transform: uppercase; letter-spacing: 0.08em; margin-top: 4px; }
.acm-event-row__body { min-width: 0; }
.acm-event-row__type { margin-bottom: 6px; }
.acm-event-row__title, .fl-ds-page .acm-event-row__title { font-family: var(--ds-font-display); font-weight: var(--ds-weight-bold); text-transform: uppercase; font-size: clamp(20px, 2vw, 26px); line-height: 1.05; margin: 0 0 6px; }
.acm-event-row__title a { color: inherit; text-decoration: none; }
.acm-event-row__title a:hover { color: var(--ds-color-gold-bright); }
.acm-event-row__meta { margin: 0; font-size: var(--ds-text-sm); color: var(--ds-color-on-dark-muted); }
.acm-event-row__actions { grid-column: 2; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 18px; margin-top: 4px; }
.acm-event-row__ics { display: inline-flex; align-items: center; gap: 6px; font-size: var(--ds-text-xs); font-weight: 700; letter-spacing: var(--ds-letter-ui); text-transform: uppercase; color: var(--ds-color-on-dark-muted); text-decoration: none; }
.acm-event-row__ics svg { width: 14px; height: 14px; }
.acm-event-row__ics:hover { color: var(--ds-color-gold-bright); }
.bb-section--light .acm-event-row__weekday, .bb-section--light .acm-event-row__meta, .bb-section--light .acm-event-row__ics { color: rgba(20, 18, 14, 0.68); }
.bb-section--light .acm-event-row__month { color: var(--ds-color-gold-deep); }
.bb-section--light .acm-event-row__date { background: rgba(123, 97, 34, 0.07); border-color: rgba(20, 18, 14, 0.15); }
.acm-upcoming__empty { margin: 0; }
@media (min-width: 720px) {
	.acm-event-row { grid-template-columns: 80px minmax(0, 1fr) auto; }
	.acm-event-row__date { width: 80px; }
	.acm-event-row__actions { grid-column: 3; grid-row: span 2; flex-direction: column; align-items: flex-end; margin-top: 8px; }
}

/* -------------------------------------------------------------------------
 * Calendar
 * ---------------------------------------------------------------------- */

.acm-cal { position: relative; }
.acm-cal__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--ds-space-sm) var(--ds-space-md); margin-bottom: var(--ds-space-md); }
.acm-cal__nav { display: flex; align-items: center; gap: 10px; }
.acm-cal__nav[hidden] { display: none; }
.acm-cal__title, .fl-ds-page .acm-cal__title { font-family: var(--ds-font-display); font-weight: var(--ds-weight-black); text-transform: uppercase; font-size: clamp(26px, 3vw, 38px); line-height: 1; margin: 0 8px; min-width: 9ch; }
.acm-cal__btn { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: 1px solid var(--ds-color-hairline); border-radius: 50%; background: transparent; color: inherit; cursor: pointer; }
.acm-cal__btn svg { width: 16px; height: 16px; }
.acm-cal__btn:hover { border-color: var(--ds-color-gold); color: var(--ds-color-gold-bright); }
.acm-cal__views { display: inline-flex; border: 1px solid var(--ds-color-hairline); border-radius: 999px; padding: 3px; }
.acm-cal__view { border: 0; background: transparent; color: var(--ds-color-on-dark-muted); font-size: var(--ds-text-xs); font-weight: 700; letter-spacing: var(--ds-letter-ui); text-transform: uppercase; padding: 8px 16px; border-radius: 999px; cursor: pointer; }
.acm-cal__view.is-active { background: var(--ds-color-gold); color: var(--ds-color-black); }
.acm-cal__filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: var(--ds-space-md); }
.acm-cal__chip { display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--ds-color-hairline); background: transparent; color: inherit; font-size: var(--ds-text-xs); font-weight: 700; letter-spacing: var(--ds-letter-ui); text-transform: uppercase; padding: 8px 14px; border-radius: 999px; cursor: pointer; transition: border-color var(--ds-transition-fast), background var(--ds-transition-fast); }
.acm-cal__chip:hover { border-color: var(--ds-color-gold); }
.acm-cal__chip.is-active { border-color: var(--ds-color-gold); background: rgba(212, 178, 95, 0.12); color: var(--ds-color-gold-bright); }
.acm-cal__grid { border: 1px solid var(--ds-color-hairline); border-radius: var(--ds-radius-md); overflow: hidden; background: rgba(255, 255, 255, 0.02); }
.acm-cal__row { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.acm-cal__row--head { background: rgba(212, 178, 95, 0.08); }
.acm-cal__dow { padding: 10px 6px; text-align: center; font-size: 11px; font-weight: 700; letter-spacing: var(--ds-letter-ui); text-transform: uppercase; color: var(--ds-color-gold); }
.acm-cal__cell { position: relative; min-height: 104px; padding: 8px; border-top: 1px solid var(--ds-color-hairline); border-left: 1px solid var(--ds-color-hairline); }
.acm-cal__cell:first-child { border-left: 0; }
.acm-cal__cell--pad { background: rgba(0, 0, 0, 0.18); }
.acm-cal__num { display: inline-flex; align-items: center; justify-content: center; min-width: 28px; height: 28px; padding: 0 6px; border-radius: 999px; font-size: var(--ds-text-sm); font-weight: 600; color: var(--ds-color-on-dark-muted); }
.acm-cal__cell.is-today .acm-cal__num { background: var(--ds-color-gold); color: var(--ds-color-black); }
.acm-cal__daybtn { border: 0; background: transparent; padding: 0; cursor: pointer; color: inherit; }
.acm-cal__daybtn .acm-cal__num { color: var(--ds-color-on-dark); }
.acm-cal__cell.is-selected { background: rgba(212, 178, 95, 0.1); box-shadow: inset 0 0 0 1px var(--ds-color-gold); }
.acm-cal__chips { list-style: none; margin: 6px 0 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.acm-cal__chip[href] { display: flex; align-items: center; gap: 6px; padding: 4px 8px; border-radius: 6px; border: 0; background: rgba(255, 255, 255, 0.05); font-size: 12px; font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--ds-color-on-dark); text-decoration: none; line-height: 1.2; }
.acm-cal__chip[href]:hover { background: rgba(212, 178, 95, 0.16); color: var(--ds-color-gold-bright); }
.acm-cal__chiptext { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.acm-cal__more { font-size: 11px; color: var(--ds-color-on-dark-muted); padding-left: 8px; }
.acm-cal__day { margin-top: var(--ds-space-md); padding: var(--ds-space-md); border: 1px solid var(--ds-color-gold); border-radius: var(--ds-radius-md); background: rgba(212, 178, 95, 0.06); }
.acm-cal__day[hidden] { display: none; }
.acm-cal__day .acm-upcoming { border-top: 0; }
.acm-cal__day .acm-event-row:last-child { border-bottom: 0; padding-bottom: 4px; }
.acm-cal__day-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.acm-cal__day-title, .fl-ds-page .acm-cal__day-title { font-family: var(--ds-font-display); font-weight: var(--ds-weight-bold); text-transform: uppercase; font-size: 22px; margin: 0; }
.acm-cal__day-close { border: 1px solid var(--ds-color-hairline); background: transparent; color: inherit; width: 34px; height: 34px; border-radius: 50%; font-size: 20px; line-height: 1; cursor: pointer; }
.acm-cal__list-head, .fl-ds-page .acm-cal__list-head { font-family: var(--ds-font-display); font-weight: var(--ds-weight-bold); text-transform: uppercase; font-size: 22px; margin: 0 0 var(--ds-space-sm); }
.acm-cal__list[hidden], .acm-cal__month[hidden] { display: none; }
.acm-cal__past { margin-top: var(--ds-space-lg); }
.acm-cal__past-summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 10px; font-size: var(--ds-text-xs); font-weight: 700; letter-spacing: var(--ds-letter-ui); text-transform: uppercase; color: var(--ds-color-gold); }
.acm-cal__past-summary::-webkit-details-marker { display: none; }
.acm-cal__past-summary::before { content: "+"; display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border: 1px solid var(--ds-color-gold); border-radius: 50%; font-size: 16px; line-height: 1; transition: transform var(--ds-transition-base); }
.acm-cal__past[open] .acm-cal__past-summary::before { transform: rotate(45deg); }
.acm-cal__pastlist { margin-top: var(--ds-space-sm); }
.acm-cal__empty { margin: var(--ds-space-md) 0 0; }
.acm-cal__foot { display: flex; flex-wrap: wrap; gap: var(--ds-space-md); margin-top: var(--ds-space-md); }
@media (max-width: 719px) {
	.acm-cal__cell { min-height: 56px; padding: 6px 4px; }
	.acm-cal__chips { flex-direction: row; flex-wrap: wrap; gap: 3px; }
	.acm-cal__chip[href] { padding: 0; width: 8px; height: 8px; border-radius: 50%; background: var(--acm-type, var(--ds-color-gold)); overflow: hidden; }
	.acm-cal__chip[href] .acm-cal__dot, .acm-cal__chip[href] .acm-cal__chiptext, .acm-cal__more { display: none; }
	.acm-cal__title { font-size: 24px; min-width: 0; }
}

/* -------------------------------------------------------------------------
 * Single event
 * ---------------------------------------------------------------------- */

.acm-event__head { max-width: 860px; }
.acm-event__title, .fl-ds-page .acm-event__title { font-family: var(--ds-font-display); font-weight: var(--ds-weight-black); text-transform: uppercase; font-size: clamp(40px, 6vw, 84px); line-height: 0.95; margin: 12px 0 18px; }
.acm-event__when { font-family: var(--ds-font-display); font-weight: var(--ds-weight-medium); text-transform: uppercase; font-size: clamp(18px, 2vw, 24px); color: var(--ds-color-gold-bright); margin: 0 0 6px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.acm-event__where { margin: 0 0 var(--ds-space-md); color: var(--ds-color-on-dark-muted); font-size: var(--ds-text-lg); }
.acm-event__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-bottom: var(--ds-space-lg); }
.acm-event__media { margin: 0 0 var(--ds-space-lg); border-radius: var(--ds-radius-md); overflow: hidden; max-width: 1040px; }
.acm-event__media img { width: 100%; height: auto; display: block; }
.acm-event__content { max-width: 760px; }
.acm-event__more { margin-top: var(--ds-space-2xl); max-width: 860px; }
.acm-event__more-head, .fl-ds-page .acm-event__more-head { font-family: var(--ds-font-display); font-weight: var(--ds-weight-bold); text-transform: uppercase; font-size: 24px; margin: 0 0 var(--ds-space-sm); }

/* -------------------------------------------------------------------------
 * Artist search box
 * ---------------------------------------------------------------------- */

.acm-asearch { position: relative; max-width: 760px; }
.acm-asearch__field { position: relative; display: flex; align-items: center; gap: 12px; border: 1px solid var(--ds-color-hairline); border-radius: 999px; background: rgba(255, 255, 255, 0.04); padding: 6px 6px 6px 22px; transition: border-color var(--ds-transition-fast), box-shadow var(--ds-transition-fast); }
.acm-asearch__field:focus-within { border-color: var(--ds-color-gold); box-shadow: 0 0 0 4px rgba(212, 178, 95, 0.15); }
.acm-asearch__icon { width: 22px; height: 22px; flex: none; color: var(--ds-color-gold); }
.acm-asearch__input, .acm-asearch__field input.acm-asearch__input[type="search"] { flex: 1; min-width: 0; border: 0; background: transparent; color: inherit; font-family: var(--ds-font-body); font-size: var(--ds-text-lg); padding: 12px 0; outline: none; border-radius: 0; }
.acm-asearch--lg .acm-asearch__input, .acm-asearch--lg .acm-asearch__field input.acm-asearch__input[type="search"] { font-family: var(--ds-font-display); font-weight: var(--ds-weight-bold); text-transform: uppercase; letter-spacing: 0.03em; font-size: clamp(20px, 2.6vw, 30px); }
.acm-asearch__input::placeholder { color: var(--ds-color-on-dark-faint); }
.acm-asearch__input::-webkit-search-cancel-button { -webkit-appearance: none; }
.acm-asearch__submit { flex: none; }
.acm-asearch__list { position: absolute; left: 0; right: 0; top: calc(100% + 8px); z-index: 30; list-style: none; margin: 0; padding: 8px; background: var(--ds-color-coal); border: 1px solid var(--ds-color-hairline); border-radius: var(--ds-radius-md); box-shadow: var(--ds-shadow-card); }
.acm-asearch__list[hidden] { display: none; }
.acm-asearch__item a { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 8px 10px; border-radius: 8px; color: var(--ds-color-on-dark); text-decoration: none; }
.acm-asearch__item a img, .acm-asearch__mono { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; background: var(--ds-color-graphite); display: block; }
.acm-asearch__item.is-active a, .acm-asearch__item a:hover { background: rgba(212, 178, 95, 0.12); }
.acm-asearch__name { font-family: var(--ds-font-display); font-weight: var(--ds-weight-bold); text-transform: uppercase; font-size: 18px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.acm-asearch__stat { font-size: var(--ds-text-xs); color: var(--ds-color-on-dark-muted); text-transform: uppercase; letter-spacing: var(--ds-letter-ui); }
.bb-section--light .acm-asearch__field { background: rgba(255, 255, 255, 0.6); border-color: rgba(20, 18, 14, 0.2); }
.bb-section--light .acm-asearch__input::placeholder { color: rgba(20, 18, 14, 0.4); }
@media (max-width: 600px) {
	.acm-asearch__field { padding-left: 14px; }
	.acm-asearch__submit { display: none; }
}

/* -------------------------------------------------------------------------
 * Artist directory
 * ---------------------------------------------------------------------- */

.acm-dir__search { max-width: 760px; margin-bottom: var(--ds-space-md); }
.acm-dir__letters { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: var(--ds-space-md); }
.acm-dir__letter { width: 38px; height: 38px; border: 1px solid transparent; border-radius: 50%; background: transparent; color: inherit; font-family: var(--ds-font-display); font-weight: var(--ds-weight-bold); font-size: 17px; cursor: pointer; transition: border-color var(--ds-transition-fast), background var(--ds-transition-fast); }
.acm-dir__letter:hover:not(:disabled) { border-color: var(--ds-color-gold); }
.acm-dir__letter.is-active { background: var(--ds-color-gold); color: var(--ds-color-black); }
.acm-dir__letter:disabled { color: var(--ds-color-on-dark-faint); cursor: default; }
.acm-dir__bar { display: flex; align-items: center; justify-content: space-between; gap: var(--ds-space-md); margin-bottom: var(--ds-space-sm); }
.acm-dir__count { margin: 0; }
.acm-dir__sort-select { min-width: 150px; }
.acm-dir__results { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.acm-artist-card__link { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 14px; align-items: center; padding: 10px; border: 1px solid var(--ds-color-hairline); border-radius: var(--ds-radius-md); color: inherit; text-decoration: none; transition: border-color var(--ds-transition-fast), background var(--ds-transition-fast), transform var(--ds-transition-fast); height: 100%; }
.acm-artist-card__link:hover { border-color: var(--ds-color-gold); background: rgba(212, 178, 95, 0.06); transform: translateY(-2px); }
.acm-artist-card__photo { width: 56px; height: 56px; border-radius: 50%; overflow: hidden; background: var(--ds-color-graphite); display: flex; align-items: center; justify-content: center; flex: none; }
.acm-artist-card__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.acm-artist__mono { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; font-family: var(--ds-font-display); font-weight: var(--ds-weight-black); font-size: 20px; color: var(--ds-color-gold); background: linear-gradient(160deg, rgba(212, 178, 95, 0.22), rgba(212, 178, 95, 0.04)); }
.acm-artist-card__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.acm-artist-card__name { font-family: var(--ds-font-display); font-weight: var(--ds-weight-bold); text-transform: uppercase; font-size: 20px; line-height: 1.05; }
.acm-artist-card__stats { font-size: var(--ds-text-xs); color: var(--ds-color-on-dark-muted); text-transform: uppercase; letter-spacing: var(--ds-letter-ui); display: flex; flex-wrap: wrap; gap: 2px 10px; }
.acm-artist-card__years::before { content: "·"; margin-right: 8px; }
.acm-dir__empty { margin: var(--ds-space-md) 0 0; }
.acm-dir__more { margin: var(--ds-space-lg) 0 0; }
@media (min-width: 760px) { .acm-dir__results { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .acm-dir__results { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 600px) { .acm-dir__results { grid-template-columns: 1fr; } .acm-dir__letter { width: 32px; height: 32px; font-size: 15px; } .acm-dir__bar { flex-direction: column; align-items: flex-start; } }

/* -------------------------------------------------------------------------
 * Artist profile
 * ---------------------------------------------------------------------- */

.acm-artist__head { display: grid; grid-template-columns: 1fr; gap: var(--ds-space-lg); align-items: end; margin-bottom: var(--ds-space-2xl); }
.acm-artist__photo { width: min(100%, 320px); aspect-ratio: 4 / 5; border-radius: var(--ds-radius-md); overflow: hidden; background: var(--ds-color-graphite); box-shadow: 0 0 0 1px rgba(212, 178, 95, 0.45), var(--ds-shadow-card); }
.acm-artist__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.acm-artist__photo--mono .acm-artist__mono { font-size: clamp(64px, 9vw, 120px); }
.acm-artist__name, .fl-ds-page .acm-artist__name { font-family: var(--ds-font-display); font-weight: var(--ds-weight-black); text-transform: uppercase; font-size: clamp(44px, 7vw, 104px); line-height: 0.92; margin: 6px 0 var(--ds-space-md); }
.acm-artist__stats { list-style: none; margin: 0 0 var(--ds-space-md); padding: 0; display: flex; flex-wrap: wrap; gap: var(--ds-space-md) var(--ds-space-xl); }
.acm-artist__stats li { display: flex; flex-direction: column; gap: 2px; }
.acm-artist__stats strong { font-family: var(--ds-font-display); font-weight: var(--ds-weight-black); font-size: clamp(30px, 3vw, 44px); line-height: 1; color: var(--ds-color-gold-bright); }
.acm-artist__stats span { font-size: var(--ds-text-xs); font-weight: 700; letter-spacing: var(--ds-letter-ui); text-transform: uppercase; color: var(--ds-color-on-dark-muted); }
.acm-artist__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px var(--ds-space-lg); }
.acm-artist__timeline { border-top: 1px solid var(--ds-color-hairline); }
.acm-artist__year { display: grid; grid-template-columns: 1fr; gap: 8px var(--ds-space-xl); padding: 20px 0; border-bottom: 1px solid var(--ds-color-hairline); }
.acm-artist__year[hidden] { display: none; }
.acm-artist__year-head, .fl-ds-page .acm-artist__year-head { margin: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; }
.acm-artist__year-num, .fl-ds-page .acm-artist__year-num { font-family: var(--ds-font-display); font-weight: var(--ds-weight-black); font-size: clamp(30px, 3vw, 40px); line-height: 1; color: var(--ds-color-gold-bright); }
.acm-artist__year-label, .fl-ds-page .acm-artist__year-label { font-size: var(--ds-text-xs); font-weight: 700; letter-spacing: var(--ds-letter-ui); text-transform: uppercase; color: var(--ds-color-on-dark-muted); }
.acm-artist__rows { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.acm-artist__row { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 14px; align-items: baseline; padding: 8px 0; }
.acm-artist__row[hidden] { display: none; }
.acm-artist__result { flex: none; }
.acm-artist__cat { font-family: var(--ds-font-display); font-weight: var(--ds-weight-bold); text-transform: uppercase; font-size: 20px; line-height: 1.05; }
.acm-artist__work { grid-column: 2; font-size: var(--ds-text-sm); color: var(--ds-color-gold-bright); }
.acm-artist__row--nominee .acm-artist__cat { font-weight: var(--ds-weight-medium); color: var(--ds-color-on-dark-muted); }
.acm-artist__back { margin-top: var(--ds-space-lg); }
@media (min-width: 900px) {
	.acm-artist__head { grid-template-columns: 320px minmax(0, 1fr); }
	.acm-artist__year { grid-template-columns: 220px minmax(0, 1fr); }
	.acm-artist__year-head { flex-direction: column; gap: 6px; position: sticky; top: calc(var(--acm-sticky-top, 0px) + 24px); align-self: start; }
	.acm-artist__row { grid-template-columns: 96px minmax(0, 1fr) minmax(0, 1fr); }
	.acm-artist__work { grid-column: auto; }
}

/* -------------------------------------------------------------------------
 * Lead story (news-first opener)
 * ---------------------------------------------------------------------- */

.acm-lead { display: grid; grid-template-columns: 1fr; gap: var(--ds-space-xl); align-items: stretch; }
.acm-lead__main { display: grid; grid-template-columns: 1fr; gap: var(--ds-space-md); }
.acm-lead__media { display: block; position: relative; width: 100%; aspect-ratio: 16 / 10; border-radius: var(--ds-radius-md); overflow: hidden; background: var(--ds-color-graphite); }
.acm-lead__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.4s cubic-bezier(0.2, 0.8, 0.2, 1); }
.acm-lead__main:hover .acm-lead__media img { transform: scale(1.04); }
.acm-lead__eyebrow { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; }
.acm-lead__cat { color: var(--ds-color-on-dark-muted); }
.acm-lead__cat::before { content: "·"; margin-right: 12px; }
.acm-lead__title, .fl-ds-page .acm-lead__title { font-family: var(--ds-font-display); font-weight: var(--ds-weight-black); text-transform: uppercase; font-size: clamp(36px, 4.2vw, 64px); line-height: 0.95; margin: 12px 0 16px; }
.acm-lead__title a { color: inherit; text-decoration: none; }
.acm-lead__title a:hover { color: var(--ds-color-gold-bright); }
.acm-lead__excerpt { font-size: var(--ds-text-lg); color: var(--ds-color-on-dark-muted); margin: 0 0 12px; max-width: 60ch; }
.acm-lead__meta { margin: 0 0 var(--ds-space-md); }
.acm-lead__rail { border-top: 1px solid var(--ds-color-hairline); padding-top: var(--ds-space-md); }
.acm-lead__rail-head, .fl-ds-page .acm-lead__rail-head { font-family: var(--ds-font-body); font-size: var(--ds-text-xs); font-weight: 700; letter-spacing: var(--ds-letter-ui); text-transform: uppercase; color: var(--ds-color-gold); margin: 0 0 6px; }
.acm-lead__list { list-style: none; margin: 0; padding: 0; }
.acm-lead__item { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 14px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--ds-color-hairline); }
.acm-lead__item > div:only-child { grid-column: 1 / -1; }
.acm-lead__thumb { display: block; aspect-ratio: 4 / 3; border-radius: 8px; overflow: hidden; background: var(--ds-color-graphite); }
.acm-lead__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.acm-lead__item-title, .fl-ds-page .acm-lead__item-title { font-family: var(--ds-font-display); font-weight: var(--ds-weight-bold); text-transform: uppercase; font-size: 19px; line-height: 1.05; margin: 4px 0 0; }
.acm-lead__item-title a { color: inherit; text-decoration: none; }
.acm-lead__item-title a:hover { color: var(--ds-color-gold-bright); }
.acm-lead__all { display: inline-block; margin-top: var(--ds-space-md); }
@media (min-width: 960px) {
	.acm-lead { grid-template-columns: minmax(0, 1.65fr) minmax(280px, 0.85fr); }
	.acm-lead__rail { border-top: 0; border-left: 1px solid var(--ds-color-hairline); padding: 0 0 0 var(--ds-space-xl); display: flex; flex-direction: column; }
	.acm-lead__list { flex: 1; }
}
@media (min-width: 1100px) {
	.acm-lead__main { align-content: start; }
	.acm-lead__media { aspect-ratio: 16 / 9; }
}

/* Theme skin paints button:hover / button:focus blue with outline:none; give every ACM control its own states + a visible focus ring. */
.acm-cal__btn:hover, .acm-cal__btn:focus-visible, .acm-cal__day-close:hover, .acm-cal__day-close:focus-visible { background: rgba(212, 178, 95, 0.12); color: var(--ds-color-gold-bright); border-color: var(--ds-color-gold); outline: none; box-shadow: 0 0 0 3px rgba(212, 178, 95, 0.25); }
.acm-cal__view:hover, .acm-cal__view:focus-visible { background: rgba(212, 178, 95, 0.12); color: var(--ds-color-gold-bright); border: 0; outline: none; box-shadow: 0 0 0 2px rgba(212, 178, 95, 0.35); }
.acm-cal__view.is-active:hover, .acm-cal__view.is-active:focus-visible { background: var(--ds-color-gold); color: var(--ds-color-black); }
.acm-cal__chip:hover, .acm-cal__chip:focus-visible { background: rgba(212, 178, 95, 0.12); color: var(--ds-color-gold-bright); border: 1px solid var(--ds-color-gold); outline: none; box-shadow: 0 0 0 3px rgba(212, 178, 95, 0.2); }
.acm-cal__daybtn:hover, .acm-cal__daybtn:focus-visible { background: transparent; color: inherit; border: 0; outline: none; box-shadow: none; }
.acm-cal__daybtn:hover .acm-cal__num, .acm-cal__daybtn:focus-visible .acm-cal__num { background: rgba(212, 178, 95, 0.22); color: var(--ds-color-gold-bright); box-shadow: 0 0 0 2px rgba(212, 178, 95, 0.35); }
.acm-cal__cell.is-today .acm-cal__daybtn:hover .acm-cal__num, .acm-cal__cell.is-today .acm-cal__daybtn:focus-visible .acm-cal__num { background: var(--ds-color-gold); color: var(--ds-color-black); }
.acm-dir__letter:hover:not(:disabled), .acm-dir__letter:focus-visible { background: rgba(212, 178, 95, 0.12); color: var(--ds-color-gold-bright); border-color: var(--ds-color-gold); outline: none; box-shadow: 0 0 0 3px rgba(212, 178, 95, 0.2); }
.acm-dir__letter.is-active:hover, .acm-dir__letter.is-active:focus-visible { background: var(--ds-color-gold); color: var(--ds-color-black); }
.acm-dir__letter:disabled:hover { background: transparent; color: var(--ds-color-on-dark-faint); border-color: transparent; box-shadow: none; }
.acm-cal__jump, .acm-cal__jump:hover, .acm-cal__jump:focus-visible { display: inline; border: 0; background: transparent; padding: 0; margin-left: 6px; font: inherit; letter-spacing: inherit; text-transform: inherit; color: var(--ds-color-gold); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; outline: none; box-shadow: none; }
.acm-cal__jump:hover, .acm-cal__jump:focus-visible { color: var(--ds-color-gold-bright); }
.acm-asearch__field input.acm-asearch__input[type="search"]:focus, .acm-asearch__field input.acm-asearch__input[type="search"]:hover { outline: none; box-shadow: none; border: 0; background: transparent; color: inherit; }
