@font-face {
	font-display: swap;
	font-family: "NICE Condensed";
	font-style: normal;
	font-weight: 400 500;
	src: url("../fonts/roboto-condensed-latin.woff2") format("woff2");
}

@layer tokens {
	body.nice-is-events-inner {
		--nice-events-canvas: #E7E3D8;
		--nice-events-surface: #F4F2ED;
		--nice-events-ink: #121213;
		--nice-events-muted: #565249;
		--nice-events-border: #C7C1B2;
		--nice-events-media: #DAD5C8;
		--nice-events-red: #EF233C;
		--nice-events-display: "NICE Condensed", "Arial Narrow", Arial, sans-serif;
		--nice-events-editorial: "NICE Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
		--nice-events-label: "Helvetica Neue", Helvetica, Arial, sans-serif;
		--nice-events-section-space: 4.5rem;
	}
}

@layer components {
	body.nice-is-events-inner {
		background: var(--nice-events-canvas);
		color: var(--nice-events-ink);
	}

	.nice-is-events-inner .nice-main {
		font-family: var(--nice-events-label);
		margin-block-start: 0 !important;
		overflow: clip;
	}

	.nice-is-events-inner .nice-nav-shell {
		background: var(--nice-events-surface);
		border-color: var(--nice-events-border);
	}

	.nice-events-inner-hero {
		background: var(--nice-events-canvas);
		min-height: 22rem;
		position: relative;
	}

	.nice-events-inner-hero__content {
		align-content: center;
		display: grid;
		gap: 1rem;
		min-height: inherit;
		padding-bottom: 2.5rem;
		padding-top: 7rem;
	}

	.nice-events-inner-hero .nice-eyebrow,
	.nice-events-inner-heading .nice-eyebrow,
	.nice-events-case-intro__heading .nice-eyebrow,
	.nice-events-inner-cta .nice-eyebrow,
	.nice-events-empty-state .nice-eyebrow {
		color: var(--nice-events-red);
		font-family: var(--nice-events-label);
		font-size: 0.75rem;
		font-weight: 700;
		letter-spacing: 0;
		line-height: 1.4;
		text-transform: uppercase;
	}

	.nice-events-inner-hero h1 {
		font-family: var(--nice-events-display) !important;
		/*
		 * A ceiling, not a size: one long word must not outgrow a phone column
		 * and break mid-word. The vw term binds only where the preset would not
		 * fit, so the type scale is unchanged everywhere it already worked.
		 * !important because theme.json's element styles are unlayered, and an
		 * unlayered declaration outranks every layer -- the same reason the
		 * font-family above carries it.
		 */
		font-size: min(var(--wp--preset--font-size--heading-1), 12vw) !important;
		/*
		 * The measure cap is what actually split the word. ENTERTAINMENT is about
		 * 15ch wide, so a 13ch ceiling meant the longest word could never sit on
		 * one line at any size or any viewport -- it broke mid-word and stranded a
		 * "T", on desktop as much as on a phone. min-content lets the box grow to
		 * the longest word when it has to, while max-width still sets the measure
		 * for every heading that fits. The vw cap above keeps that growth inside
		 * the column on a narrow screen.
		 */
		min-width: min-content;
		font-weight: 500;
		letter-spacing: 0;
		line-height: 0.92;
		max-width: 13ch;
		text-transform: uppercase;
		text-wrap: balance;
	}

	.nice-events-inner-hero__content > p:last-child {
		color: var(--nice-events-muted);
		font-family: var(--nice-events-editorial);
		font-size: 1.125rem;
		line-height: 1.55;
		max-width: 38rem;
	}

	.nice-is-events-inner .nice-philosophy-strip {
		background: var(--nice-events-surface);
		border-color: var(--nice-events-border);
		color: var(--nice-events-ink);
	}

	.nice-events-inner-section {
		padding-block: var(--nice-events-section-space);
	}

	.nice-events-inner-heading {
		display: grid;
		gap: 0.75rem;
		margin-bottom: 2.5rem;
	}

	.nice-events-inner-heading h2,
	.nice-events-case-intro__heading h2,
	.nice-events-empty-state h2 {
		font-family: var(--nice-events-display);
		font-size: 2.5rem;
		font-weight: 500;
		letter-spacing: 0;
		line-height: 0.98;
		max-width: 17ch;
		text-transform: uppercase;
		text-wrap: balance;
	}

	.nice-events-services-index,
	.nice-events-related-work,
	.nice-events-client-directory,
	.nice-events-team-directory,
	.nice-events-contact-page,
	.nice-events-case-intro {
		background: var(--nice-events-surface);
	}

	.nice-events-services-index__list,
	.nice-events-related-services__list,
	.nice-events-contact-page__actions,
	.nice-events-client-directory__list {
		border-top: 1px solid var(--nice-events-border);
	}

	.nice-events-service-row {
		border-bottom: 1px solid var(--nice-events-border);
		display: grid;
		padding-block: 2rem;
	}

	.nice-events-service-row__content {
		display: grid;
		gap: 1rem;
	}

	.nice-events-service-row__index {
		color: var(--nice-events-red);
		font-family: var(--nice-events-label);
		font-size: 0.75rem;
		font-weight: 700;
		line-height: 1.4;
	}

	.nice-events-service-row__content h3,
	.nice-events-case-preview__body h3,
	.nice-events-team-member h3,
	.nice-events-client h3 {
		font-family: var(--nice-events-display);
		font-weight: 500;
		letter-spacing: 0;
		line-height: 1;
	}

	.nice-events-service-row__content h3 {
		/* Same guard as the hero: see the note there. */
		font-size: min(var(--wp--preset--font-size--heading-3), 10vw) !important;
		min-width: min-content;
		max-width: 18ch;
		text-transform: uppercase;
	}

	.nice-events-service-row__content p,
	.nice-events-case-preview__body > p:not(.nice-eyebrow),
	.nice-events-empty-state > p:last-child,
	.nice-events-team-member > div {
		color: var(--nice-events-muted);
		line-height: 1.65;
		max-width: 42rem;
	}

	.nice-events-service-row__content .nice-link,
	.nice-events-case-preview__body .nice-link,
	.nice-events-client .nice-link {
		justify-self: start;
		margin-top: 0.5rem;
	}

	.nice-events-service-story {
		background: var(--nice-events-surface);
		border-bottom: 1px solid var(--nice-events-border);
	}

	.nice-events-editor-content {
		display: grid;
		gap: 1.25rem;
		line-height: 1.7;
	}

	.nice-events-editor-content > * {
		max-width: 44rem;
	}

	.nice-events-editor-content h2,
	.nice-events-editor-content h3 {
		font-family: var(--nice-events-display);
		font-weight: 500;
		letter-spacing: 0;
		line-height: 1;
		margin-top: 1.5rem;
		text-transform: uppercase;
	}

	.nice-events-editor-content h2 {
		font-size: 2.25rem;
	}

	.nice-events-editor-content h3 {
		font-size: 1.6rem;
	}

	.nice-events-editor-content ul,
	.nice-events-editor-content ol {
		border-top: 1px solid var(--nice-events-border);
		list-style: none;
		margin: 0;
		padding: 0;
	}

	.nice-events-editor-content li {
		border-bottom: 1px solid var(--nice-events-border);
		font-weight: 600;
		padding-block: 0.9rem;
	}

	.nice-events-related-services,
	.nice-events-case-group:nth-child(even),
	.nice-events-case-quote {
		background: var(--nice-events-canvas);
	}

	.nice-events-case-group:nth-child(odd) {
		background: var(--nice-events-surface);
	}

	.nice-events-work-filter {
		align-items: stretch;
		background: var(--nice-events-canvas);
		border-bottom: 1px solid var(--nice-events-border);
		display: grid;
	}

	.nice-events-work-filter a {
		border-bottom: 1px solid var(--nice-events-border);
		color: var(--nice-events-ink);
		font-family: var(--nice-events-label);
		font-size: 0.75rem;
		font-weight: 700;
		padding-block: 1rem;
		text-decoration: none;
		text-transform: uppercase;
		transition: color 160ms ease;
	}

	.nice-events-work-filter a:hover,
	.nice-events-work-filter a:focus-visible {
		color: var(--nice-events-red);
	}

	.nice-events-case-list {
		display: grid;
		gap: 2.5rem 2rem;
	}

	.nice-events-case-preview {
		display: grid;
		gap: 1.25rem;
		min-width: 0;
	}

	.nice-events-case-preview__media,
	.nice-case-hero-media {
		aspect-ratio: 16 / 9;
		background: var(--nice-events-media);
		border: 1px solid var(--nice-events-border);
		overflow: hidden;
		width: 100%;
	}

	.nice-events-media-placeholder {
		align-items: flex-end;
		background: var(--nice-events-media);
		box-sizing: border-box;
		display: flex;
		height: 100%;
		justify-content: flex-start;
		min-height: 100%;
		padding: 1rem;
		width: 100%;
	}

	.nice-events-media-placeholder span {
		color: var(--nice-events-muted);
		font-family: var(--nice-events-label);
		font-size: 0.6875rem;
		font-weight: 700;
		line-height: 1.4;
		text-transform: uppercase;
	}

	.nice-events-case-preview__body {
		display: grid;
		gap: 0.65rem;
	}

	.nice-events-case-preview__body h3 {
		font-size: 2rem;
		text-transform: uppercase;
	}

	.nice-events-case-preview__body .nice-eyebrow,
	.nice-events-meta-line {
		font-family: var(--nice-events-label);
		font-size: 0.75rem;
		font-weight: 700;
		line-height: 1.4;
		text-transform: uppercase;
	}

	.nice-events-case-preview__body .nice-eyebrow {
		color: var(--nice-events-red);
	}

	.nice-events-meta-line {
		color: var(--nice-events-muted);
	}

	.nice-events-related-services__list a {
		align-items: center;
		border-bottom: 1px solid var(--nice-events-border);
		color: var(--nice-events-ink);
		display: flex;
		font-family: var(--nice-events-display);
		font-size: 1.6rem;
		font-weight: 500;
		justify-content: space-between;
		line-height: 1;
		padding-block: 1.25rem;
		text-decoration: none;
		text-transform: uppercase;
		transition: color 160ms ease;
	}

	.nice-events-related-services__list a:hover,
	.nice-events-related-services__list a:focus-visible {
		color: var(--nice-events-red);
	}

	.nice-events-case-quote {
		padding-block: 3.5rem;
	}

	.nice-case-quote {
		border-left: 2px solid var(--nice-events-red);
		margin: 0;
		max-width: 52rem;
		padding-left: 1.5rem;
	}

	.nice-case-quote p,
	.nice-case-quote .nice-editorial {
		font-family: var(--nice-events-editorial) !important;
		font-size: 1.75rem;
		font-weight: 400;
		letter-spacing: 0;
		line-height: 1.35;
		margin-bottom: 1rem;
	}

	.nice-case-quote cite {
		color: var(--nice-events-muted);
		font-family: var(--nice-events-label);
		font-size: 0.75rem;
		font-style: normal;
		font-weight: 700;
	}

	.nice-events-case-infobar {
		background: var(--nice-events-surface);
		border-bottom: 1px solid var(--nice-events-border);
	}

	.nice-events-case-meta-bar {
		display: grid;
		gap: 1.25rem;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		margin: 0;
		padding-block: 1.5rem;
	}

	.nice-events-case-meta-bar > div,
	.nice-events-case-meta > div {
		display: grid;
		gap: 0.35rem;
	}

	.nice-events-case-meta-bar dt,
	.nice-events-case-meta dt,
	.nice-events-project-navigation small,
	.nice-events-contact-page__actions small {
		color: var(--nice-events-red);
		font-family: var(--nice-events-label);
		font-size: 0.6875rem;
		font-weight: 700;
		line-height: 1.4;
		text-transform: uppercase;
	}

	.nice-events-case-meta-bar dd,
	.nice-events-case-meta dd {
		font-family: var(--nice-events-label);
		font-size: 0.9375rem;
		font-weight: 600;
		margin: 0;
	}

	.nice-events-case-meta {
		border-top: 1px solid var(--nice-events-border);
		margin: 0;
	}

	.nice-events-case-meta > div {
		border-bottom: 1px solid var(--nice-events-border);
		padding-block: 0.9rem;
	}

	.nice-case-hero-media-wrap {
		background: var(--nice-events-surface);
		padding-bottom: var(--nice-events-section-space);
		padding-top: 2rem;
	}

	.nice-events-project-proof {
		background: var(--nice-events-ink);
		color: var(--nice-events-surface);
		padding-block: var(--nice-events-section-space);
	}

	.nice-events-project-proof__content {
		display: grid;
		gap: 1.5rem;
	}

	.nice-events-project-proof__value {
		font-family: var(--nice-events-display);
		font-size: 4.5rem;
		font-weight: 500;
		letter-spacing: 0;
		line-height: 0.9;
		margin: 0;
	}

	.nice-events-project-proof .nice-eyebrow {
		color: var(--nice-events-red);
		font-family: var(--nice-events-label);
		font-size: 0.6875rem;
		font-weight: 700;
		margin-bottom: 0.5rem;
		text-transform: uppercase;
	}

	.nice-events-project-proof h2 {
		font-family: var(--nice-events-display);
		font-size: 2rem;
		font-weight: 500;
		letter-spacing: 0;
		line-height: 1;
		max-width: 24ch;
		text-transform: uppercase;
	}

	.nice-events-case-intro__grid {
		display: grid;
		gap: 2.5rem;
	}

	.nice-events-case-intro__heading {
		display: grid;
		gap: 0.75rem;
	}

	.nice-events-project-navigation {
		display: grid;
		gap: 1px;
		grid-template-columns: 1fr;
		padding-block: 0;
	}

	.nice-events-nav-card {
		background: var(--nice-events-canvas);
		border: 1px solid var(--nice-events-border);
		color: var(--nice-events-ink);
		display: flex;
		min-height: 9rem;
		padding: 1.5rem;
		text-decoration: none;
		transition: background-color 160ms ease, color 160ms ease;
	}

	.nice-events-nav-card:hover,
	.nice-events-nav-card:focus-visible {
		background: var(--nice-events-surface);
		color: var(--nice-events-red);
	}

	.nice-events-nav-card--next {
		justify-content: flex-end;
		text-align: right;
	}

	.nice-events-nav-card__body {
		display: grid;
		gap: 0.35rem;
	}

	.nice-events-nav-card__body .nice-eyebrow {
		font-family: var(--nice-events-label);
		font-size: 0.6875rem;
		font-weight: 700;
		text-transform: uppercase;
	}

	.nice-events-nav-card__title {
		font-family: var(--nice-events-display);
		font-size: 1.5rem;
		font-weight: 500;
		line-height: 1;
		text-transform: uppercase;
	}

	.nice-events-nav-card-empty {
		display: none;
	}

	.nice-events-client-directory__list {
		display: grid;
	}

	.nice-events-client {
		align-content: center;
		border-bottom: 1px solid var(--nice-events-border);
		display: grid;
		gap: 0.75rem;
		min-height: 7rem;
		padding-block: 1.5rem;
	}

	.nice-events-client h3 {
		font-size: 1.75rem;
		text-transform: uppercase;
	}

	.nice-events-team-directory__list {
		display: grid;
		gap: 2.5rem 2rem;
	}

	.nice-events-team-member {
		display: grid;
		gap: 0.75rem;
	}

	.nice-events-team-member__portrait {
		aspect-ratio: 4 / 5;
		background: var(--nice-events-media);
		border: 1px solid var(--nice-events-border);
		margin-bottom: 0.5rem;
		overflow: hidden;
	}

	.nice-events-team-member__portrait img {
		height: 100%;
		object-fit: cover;
		width: 100%;
	}

	.nice-events-team-member h3 {
		font-size: 1.75rem;
		text-transform: uppercase;
	}

	.nice-events-empty-state {
		border-block: 1px solid var(--nice-events-border);
		display: grid;
		gap: 1rem;
		padding-block: 2rem;
	}

	.nice-events-empty-state--feature {
		align-content: center;
		min-height: 16rem;
	}

	/*
	 * Icon and label share the first line; the value spans both columns
	 * beneath. The old second column existed only to park the trailing arrow
	 * on the right, and went with it.
	 */
	.nice-events-contact-page__actions a {
		align-items: center;
		border-bottom: 1px solid var(--nice-events-border);
		color: var(--nice-events-ink);
		column-gap: 0.625rem;
		display: grid;
		grid-template-columns: auto 1fr;
		padding-block: 1.5rem;
		row-gap: 0.5rem;
		text-decoration: none;
		transition: color 160ms ease;
	}

	.nice-events-contact-page__actions a:hover,
	.nice-events-contact-page__actions a:focus-visible {
		color: var(--nice-events-red);
	}

	.nice-events-contact-page__actions small {
		grid-column: 2;
	}

	/*
	 * By class, not by position. This used to read a > span:not(:last-child),
	 * a selector whose whole job was to skip the arrow; with the arrow gone the
	 * value became :last-child and silently lost its type.
	 */
	.nice-events-contact-page__actions .nice-contact-row__value {
		grid-column: 1 / -1;
		font-family: var(--nice-events-display);
		font-size: 1.6rem;
		font-weight: 500;
		line-height: 1.05;
		overflow-wrap: anywhere;
		text-transform: uppercase;
	}

	.nice-events-inner-cta {
		background: var(--nice-events-ink);
		color: var(--nice-events-surface);
		padding-block: var(--nice-events-section-space);
	}

	.nice-events-inner-cta__content,
	.nice-events-inner-cta__lead {
		display: grid;
		gap: 1rem;
	}

	.nice-events-inner-cta__content {
		gap: 2rem;
	}

	.nice-events-inner-cta__lead h2,
	.nice-events-inner-cta__lead .nice-editorial {
		font-family: var(--nice-events-display) !important;
		font-size: 2.75rem;
		font-weight: 500;
		letter-spacing: 0;
		line-height: 0.95;
		max-width: 14ch;
		text-transform: uppercase;
	}

	.nice-events-inner-cta__actions {
		align-items: center;
		display: flex;
		flex-wrap: wrap;
		gap: 0.75rem;
	}

	.nice-events-inner-cta .nice-button {
		border-radius: 0;
	}

	.nice-events-inner-cta .nice-button--primary:hover,
	.nice-events-inner-cta .nice-button--primary:focus-visible {
		background: var(--nice-events-surface);
		color: var(--nice-events-ink);
	}

	@media (min-width: 48rem) {
		body.nice-is-events-inner {
			--nice-events-section-space: 6rem;
		}

		.nice-events-inner-hero {
			min-height: 24rem;
		}

		.nice-events-inner-hero__content {
			align-content: end;
			gap: 1.5rem 2rem;
			grid-template-columns: repeat(12, minmax(0, 1fr));
			padding-bottom: 3rem;
			padding-top: 7.5rem;
		}

		/*
		 * The label belongs to the title, so it sits directly above it in the
		 * same columns. It used to hold columns 1-3 on its own while the title
		 * began at column 4, which read as two unrelated things: a word adrift
		 * at the far left and a headline indented into the middle of the page
		 * with nothing explaining the gap. Studio has always paired them this
		 * way, and Studio is the one that looked right.
		 */
		.nice-events-inner-hero .nice-eyebrow,
		.nice-events-inner-hero h1 {
			grid-column: 1 / 8;
		}

		.nice-events-inner-hero h1 {
			font-size: 5.25rem;
		}

		.nice-events-inner-hero__content > p:last-child {
			align-self: end;
			font-size: 1.3rem;
			grid-column: 8 / 13;
		}

		/*
		 * Stacked, not split. The same pairing as the hero above and as Studio
		 * throughout: the label sits directly over the heading it introduces,
		 * both flush with the page gutter. Splitting them across a twelve-column
		 * grid left the label stranded at the far edge and indented the heading
		 * into the middle of the page.
		 */
		.nice-events-inner-heading {
			gap: 1rem;
			margin-bottom: 3.5rem;
		}

		.nice-events-inner-heading h2 {
			font-size: 3.75rem;
		}

		.nice-events-service-row__content {
			align-items: start;
			gap: 2rem;
			grid-template-columns: repeat(12, minmax(0, 1fr));
		}

		.nice-events-service-row__index {
			grid-column: 1 / 2;
		}

		.nice-events-service-row__content h3 {
			font-size: 3rem;
			grid-column: 2 / 6;
		}

		.nice-events-service-row__content p {
			grid-column: 6 / 10;
		}

		.nice-events-service-row__content .nice-link {
			grid-column: 10 / 13;
			margin-top: 0;
		}

		.nice-events-work-filter {
			grid-template-columns: repeat(3, minmax(0, 1fr));
		}

		.nice-events-work-filter a {
			border-bottom: 0;
			border-right: 1px solid var(--nice-events-border);
			padding: 1.25rem;
		}

		.nice-events-work-filter a:first-child {
			padding-left: 0;
		}

		.nice-events-work-filter a:last-child {
			border-right: 0;
		}

		.nice-events-case-list {
			grid-template-columns: repeat(2, minmax(0, 1fr));
		}

		.nice-events-case-preview,
		.nice-events-case-preview--featured,
		.nice-events-case-preview--large,
		.nice-events-case-preview--secondary {
			grid-column: auto;
		}

		.nice-events-case-preview__body h3 {
			font-size: 2.25rem;
		}

		.nice-events-related-services__list a {
			font-size: 2rem;
			padding-block: 1.5rem;
		}

		.nice-events-case-meta-bar {
			grid-template-columns: repeat(5, minmax(0, 1fr));
		}

		.nice-events-project-proof__content,
		.nice-events-inner-cta__content {
			align-items: end;
			grid-template-columns: minmax(0, 1fr) auto;
		}

		.nice-events-project-proof__value {
			font-size: 6.5rem;
		}

		.nice-events-case-intro__grid {
			grid-template-columns: minmax(14rem, 0.6fr) minmax(0, 1.4fr);
		}

		.nice-events-project-navigation {
			grid-template-columns: repeat(2, minmax(0, 1fr));
		}

		.nice-events-client-directory__list,
		.nice-events-team-directory__list {
			grid-template-columns: repeat(2, minmax(0, 1fr));
		}

		.nice-events-client:nth-child(odd) {
			border-right: 1px solid var(--nice-events-border);
			padding-right: 2rem;
		}

		.nice-events-client:nth-child(even) {
			padding-left: 2rem;
		}

		.nice-events-inner-cta__lead h2,
		.nice-events-inner-cta__lead .nice-editorial {
			font-size: 4.25rem;
		}
	}

	@media (min-width: 75rem) {
		body.nice-is-events-inner {
			--nice-events-section-space: 7rem;
		}

		.nice-events-inner-hero h1 {
			font-size: 6rem;
		}

		.nice-events-client-directory__list {
			grid-template-columns: repeat(3, minmax(0, 1fr));
		}

		.nice-events-client,
		.nice-events-client:nth-child(odd),
		.nice-events-client:nth-child(even) {
			border-right: 1px solid var(--nice-events-border);
			padding-inline: 2rem;
		}

		.nice-events-client:nth-child(3n + 1) {
			padding-left: 0;
		}

		.nice-events-client:nth-child(3n) {
			border-right: 0;
			padding-right: 0;
		}
	}
}

@layer motion {
	.nice-events-case-preview,
	.nice-events-service-row,
	.nice-events-nav-card,
	.nice-events-client,
	.nice-events-team-member {
		transition: color 160ms ease;
	}

	@media (prefers-reduced-motion: reduce) {
		.nice-is-events-inner *,
		.nice-is-events-inner *::before,
		.nice-is-events-inner *::after {
			scroll-behavior: auto !important;
			transition-duration: 0.01ms !important;
		}
	}
}
