/**
 * October Events — Tito's Fiesta Mexicana + Culver Arts Festival
 *
 * Covers two things:
 *   1. The homepage feature boxes rendered by [ca_event_feature]
 *   2. The two Gutenberg landing pages (core blocks only, styled from here)
 *
 * Palettes are sampled from the supplied artwork so the sections key off the
 * real posters rather than approximations:
 *   Tito's    — #F4EE58 yellow / #EC252B red
 *   Festival  — #0E46D2 cobalt / #EE2A0E vermilion / #EEB60E amber
 *
 * @package Culver Arts
 * @since 1.1.0
 */

/* ══════════════════════════════════════════════════
   TOKENS
   ══════════════════════════════════════════════════ */

:root {
	/* Shared */
	--ev-ink:         #111111;
	--ev-off-white:   #f5f3ee;
	--ev-white:       #ffffff;
	--ev-gray:        #6b6b6b;
	--ev-amber:       #f5a623;
	--ev-font-display: 'Cormorant Garamond', Georgia, serif;
	--ev-font-ui:      'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	--ev-font-label:   'Unbounded', var(--ev-font-ui);
	--ev-max:         1200px;
	--ev-gutter:      40px;
	--ev-radius:      8px;
	--ev-radius-l:    16px;
	--ev-pill:        50px;
	--ev-ease:        0.28s cubic-bezier(0.22, 0.61, 0.36, 1);

	/* Tito's Fiesta Mexicana */
	--titos-yellow:      #f4ee58;
	--titos-yellow-deep: #e8e043;
	--titos-red:         #ec252b;
	--titos-red-dark:    #c41c22;
	--titos-ink:         #2b1206;

	/* Culver Arts Festival */
	--fest-cobalt:       #0e46d2;
	--fest-cobalt-dark:  #0a34a0;
	--fest-navy:         #0e2a7e;
	--fest-vermilion:    #ee2a0e;
	--fest-amber:        #eeb60e;
	--fest-paper:        #fbfaf7;
}

/* ══════════════════════════════════════════════════
   SHARED PRIMITIVES
   ══════════════════════════════════════════════════ */

.ev-eyebrow {
	font-family: var(--ev-font-label);
	font-weight: 700;
	font-size: 0.58rem;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	line-height: 1.4;
	margin: 0 0 1.1rem;
}

.ev-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.55em;
	font-family: var(--ev-font-ui);
	font-weight: 700;
	font-size: 0.82rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	line-height: 1;
	padding: 1.05em 2.3em;
	border-radius: var(--ev-pill);
	border: 1.5px solid transparent;
	text-decoration: none;
	cursor: pointer;
	transition: transform var(--ev-ease), background-color var(--ev-ease),
	            color var(--ev-ease), border-color var(--ev-ease), box-shadow var(--ev-ease);
}

.ev-btn:hover,
.ev-btn:focus-visible {
	transform: translateY(-2px);
	text-decoration: none;
}

.ev-btn:active { transform: translateY(0); }

.ev-btn__arrow {
	display: inline-block;
	transition: transform var(--ev-ease);
}

.ev-btn:hover .ev-btn__arrow { transform: translateX(3px); }

/* Focus ring that survives both light and dark grounds */
.ev-btn:focus-visible,
.ev-card:focus-visible {
	outline: 3px solid currentColor;
	outline-offset: 3px;
}

/* Urgency chip — deadline / days remaining.
   Carries its own colours so it works anywhere, not just inside a feature
   box; the per-event skins below override these where the ground differs. */
.ev-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	font-family: var(--ev-font-ui);
	font-weight: 700;
	font-size: 0.7rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 0.55em 1.1em;
	border-radius: var(--ev-pill);
	line-height: 1;
	background: rgba(238, 42, 14, 0.1);
	color: var(--fest-vermilion);
}

.ev-chip--closed {
	background: rgba(107, 107, 107, 0.12);
	color: var(--ev-gray);
}

.ev-chip__dot {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: currentColor;
	flex: none;
}

.ev-chip--urgent .ev-chip__dot {
	animation: ev-pulse 2s ease-in-out infinite;
}

@keyframes ev-pulse {
	0%, 100% { opacity: 1; transform: scale(1); }
	50%      { opacity: 0.35; transform: scale(0.8); }
}

@media (prefers-reduced-motion: reduce) {
	.ev-chip--urgent .ev-chip__dot { animation: none; }
	.ev-btn, .ev-card, .ev-btn__arrow { transition: none; }
	.ev-btn:hover, .ev-btn:focus-visible { transform: none; }
}


/* ══════════════════════════════════════════════════
   1. HOMEPAGE FEATURE BOXES  [ca_event_feature]
   ══════════════════════════════════════════════════ */

.ev-feature {
	position: relative;
	width: 100%;
	overflow: hidden;
	font-family: var(--ev-font-ui);
}

/* Elementor's shortcode widget wraps us in a constrained column — break out
   to full bleed without relying on the page template. */
.ev-feature-set {
	width: 100vw;
	position: relative;
	left: 50%;
	right: 50%;
	margin-left: -50vw;
	margin-right: -50vw;
}

.ev-feature__inner {
	max-width: var(--ev-max);
	margin: 0 auto;
	padding: clamp(2.5rem, 5vw, 4.5rem) var(--ev-gutter);
	display: grid;
	grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
	gap: clamp(1.75rem, 4vw, 3.5rem);
	align-items: center;
}

/* Alternate the artwork side so the pair reads as a set, not a repeat.
   The festival logo is landscape and needs less room than the square
   poster, so the copy column gets the larger share. */
.ev-feature--reverse .ev-feature__inner {
	grid-template-columns: minmax(0, 1.3fr) minmax(0, 0.7fr);
}

.ev-feature--reverse .ev-feature__art  { order: 2; }
.ev-feature--reverse .ev-feature__body { order: 1; }

/* ── Artwork panel ── */
.ev-feature__art {
	position: relative;
	line-height: 0;
}

.ev-feature__art img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--ev-radius-l);
}

.ev-feature--titos .ev-feature__art img {
	box-shadow: 0 18px 50px rgba(43, 18, 6, 0.28);
}

.ev-feature--festival .ev-feature__art img {
	border-radius: 0;
	box-shadow: none;
	mix-blend-mode: multiply; /* drops the logo's white box onto the paper ground */
}

/* ── Body ── */
.ev-feature__body { min-width: 0; }

.ev-feature__title {
	font-family: var(--ev-font-display);
	font-weight: 300;
	font-size: clamp(2.1rem, 4.6vw, 3.4rem);
	line-height: 1.02;
	letter-spacing: -0.01em;
	margin: 0 0 0.5rem;
}

.ev-feature__title em {
	font-style: italic;
	font-weight: 400;
}

.ev-feature__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.55rem 1.15rem;
	margin: 0 0 1.25rem;
	font-size: 0.86rem;
	font-weight: 600;
	letter-spacing: 0.01em;
}

.ev-feature__meta-item {
	display: inline-flex;
	align-items: center;
	gap: 0.45em;
}

.ev-feature__meta-item svg {
	width: 14px;
	height: 14px;
	flex: none;
	opacity: 0.75;
}

.ev-feature__blurb {
	font-size: 1rem;
	font-weight: 300;
	line-height: 1.7;
	margin: 0 0 1.6rem;
	max-width: 46ch;
}

.ev-feature__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: center;
}

/* Divider rule under the title, keyed per event */
.ev-feature__rule {
	width: 64px;
	height: 3px;
	border: 0;
	margin: 0 0 1.15rem;
}

/* ── Tito's skin ── */
.ev-feature--titos {
	background: var(--titos-yellow);
	color: var(--titos-ink);
}

/* Faint diagonal weave so the flat yellow has some surface */
.ev-feature--titos::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image: repeating-linear-gradient(
		135deg,
		rgba(236, 37, 43, 0.05) 0 2px,
		transparent 2px 9px
	);
	pointer-events: none;
}

.ev-feature--titos .ev-feature__inner { position: relative; z-index: 1; }
.ev-feature--titos .ev-eyebrow        { color: var(--titos-red); }
.ev-feature--titos .ev-feature__title { color: var(--titos-red); font-weight: 400; }
.ev-feature--titos .ev-feature__rule  { background: var(--titos-red); }
.ev-feature--titos .ev-feature__meta  { color: var(--titos-ink); }
.ev-feature--titos .ev-feature__blurb { color: rgba(43, 18, 6, 0.86); }

.ev-feature--titos .ev-btn--primary {
	background: var(--titos-red);
	color: #fff;
	border-color: var(--titos-red);
}

.ev-feature--titos .ev-btn--primary:hover,
.ev-feature--titos .ev-btn--primary:focus-visible {
	background: var(--titos-red-dark);
	border-color: var(--titos-red-dark);
	box-shadow: 0 10px 24px rgba(196, 28, 34, 0.3);
}

.ev-feature--titos .ev-btn--ghost {
	background: transparent;
	color: var(--titos-ink);
	border-color: rgba(43, 18, 6, 0.35);
}

.ev-feature--titos .ev-btn--ghost:hover,
.ev-feature--titos .ev-btn--ghost:focus-visible {
	background: var(--titos-ink);
	border-color: var(--titos-ink);
	color: var(--titos-yellow);
}

.ev-feature--titos .ev-chip {
	background: var(--titos-red);
	color: #fff;
}

/* ── Festival skin ── */
.ev-feature--festival {
	background: var(--fest-paper);
	color: var(--ev-ink);
	border-top: 1px solid rgba(14, 70, 210, 0.12);
	border-bottom: 1px solid rgba(14, 70, 210, 0.12);
}

.ev-feature--festival .ev-eyebrow        { color: var(--fest-cobalt); }
.ev-feature--festival .ev-feature__title { color: var(--fest-navy); }
.ev-feature--festival .ev-feature__rule  {
	background: linear-gradient(90deg, var(--fest-cobalt), var(--fest-vermilion) 55%, var(--fest-amber));
	width: 88px;
}
.ev-feature--festival .ev-feature__meta  { color: #33383f; }
.ev-feature--festival .ev-feature__blurb { color: #40454d; }

.ev-feature--festival .ev-btn--primary {
	background: var(--fest-cobalt);
	color: #fff;
	border-color: var(--fest-cobalt);
}

.ev-feature--festival .ev-btn--primary:hover,
.ev-feature--festival .ev-btn--primary:focus-visible {
	background: var(--fest-cobalt-dark);
	border-color: var(--fest-cobalt-dark);
	box-shadow: 0 10px 24px rgba(14, 70, 210, 0.28);
}

.ev-feature--festival .ev-btn--ghost {
	background: transparent;
	color: var(--fest-navy);
	border-color: rgba(14, 42, 126, 0.3);
}

.ev-feature--festival .ev-btn--ghost:hover,
.ev-feature--festival .ev-btn--ghost:focus-visible {
	background: var(--fest-navy);
	border-color: var(--fest-navy);
	color: #fff;
}

.ev-feature--festival .ev-chip {
	background: rgba(238, 42, 14, 0.1);
	color: var(--fest-vermilion);
}

.ev-feature--festival .ev-chip--closed {
	background: rgba(107, 107, 107, 0.12);
	color: var(--ev-gray);
}

/* Chip sits above the title in the feature boxes */
.ev-feature__chip-row { margin: 0 0 1rem; }

/* Standalone chip from [ca_event_deadline] needs its own block rhythm */
.ev-chip-row { margin: 0 0 1.15rem; }

/* ── Feature box responsive ── */
@media (max-width: 900px) {
	.ev-feature__inner,
	.ev-feature--reverse .ev-feature__inner {
		grid-template-columns: 1fr;
		gap: 1.75rem;
	}

	.ev-feature--reverse .ev-feature__art  { order: 1; }
	.ev-feature--reverse .ev-feature__body { order: 2; }

	.ev-feature__art {
		max-width: 380px;
		margin-inline: auto;
	}

	.ev-feature--festival .ev-feature__art { max-width: 460px; }
}

@media (max-width: 600px) {
	:root { --ev-gutter: 20px; }

	.ev-feature__actions { flex-direction: column; align-items: stretch; }
	.ev-feature__actions .ev-btn { justify-content: center; }
	.ev-feature__blurb { font-size: 0.95rem; }
}


/* ══════════════════════════════════════════════════
   2. LANDING PAGES — shared scaffolding
   ══════════════════════════════════════════════════ */

/* Strip Astra's page title / breadcrumb chrome on both landing pages */
.page-titos-fiesta .entry-header,
.page-titos-fiesta .ast-breadcrumbs-wrapper,
.page-culver-arts-festival .entry-header,
.page-culver-arts-festival .ast-breadcrumbs-wrapper {
	display: none !important;
}

/* Astra keeps ast-separate-container on the body even after the layout
   filters run, so the boxed article padding has to be unwound here. */
.page-titos-fiesta .site-content .ast-container,
.page-culver-arts-festival .site-content .ast-container {
	max-width: 100% !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

.page-titos-fiesta .ast-article-single,
.page-culver-arts-festival .ast-article-single {
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

.page-titos-fiesta .entry-content,
.page-culver-arts-festival .entry-content {
	width: 100%;
	max-width: 100%;
	margin: 0;
	font-family: var(--ev-font-ui);
}

.page-titos-fiesta .entry-content > *,
.page-culver-arts-festival .entry-content > * {
	margin-block: 0;
	max-width: none;
}

/* WordPress's flow layout puts margin-block-start on every child after the
   first. Inside a grid that shortens the stretched items and knocks rows
   out of alignment, so zero it wherever we lay out a grid ourselves. */
.ev-facts > *,
.ev-stats > *,
.ev-program-grid > *,
.ev-sponsor-row > *,
.ev-band__inner > *,
.ev-feature__inner > * {
	margin-block: 0;
}

/* Astra pads the content wrapper; the bands supply their own rhythm. */
.page-titos-fiesta .site-content,
.page-culver-arts-festival .site-content {
	padding-bottom: 0 !important;
}

.page-titos-fiesta .site-main,
.page-culver-arts-festival .site-main {
	padding: 0 !important;
	margin: 0 !important;
}

/* Every top-level Group on these pages is a full-bleed band */
.ev-band {
	width: 100%;
	padding-block: clamp(3.25rem, 7vw, 6rem);
	padding-inline: var(--ev-gutter);
}

.ev-band > .wp-block-group__inner-container,
.ev-band__inner {
	max-width: var(--ev-max);
	margin-inline: auto;
}

.ev-section-title {
	font-family: var(--ev-font-display);
	font-weight: 300;
	font-size: clamp(1.9rem, 4vw, 3rem);
	line-height: 1.08;
	letter-spacing: -0.01em;
	margin: 0 0 1rem;
}

.ev-section-title em { font-style: italic; }

.ev-lede {
	font-size: clamp(1.02rem, 1.6vw, 1.16rem);
	font-weight: 300;
	line-height: 1.75;
	max-width: 62ch;
	margin: 0 0 1.5rem;
}

.ev-body { font-size: 1rem; font-weight: 300; line-height: 1.75; max-width: 66ch; }


/* ── Fact strip: When / Where / Cost ── */
/* Explicit tracks, not auto-fit: auto-fit leaves collapsed 0px tracks whose
   gaps still paint, which showed up as stray hairlines across the band. */
.ev-facts {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: stretch;
	gap: 1px;
	background: currentColor;
	border-block: 1px solid currentColor;
}

@media (max-width: 780px) {
	.ev-facts { grid-template-columns: 1fr; }
}

.ev-fact {
	padding: clamp(1.4rem, 3vw, 2.1rem) clamp(1.1rem, 2.5vw, 1.75rem);
}

.ev-fact__label {
	font-family: var(--ev-font-label);
	font-weight: 700;
	font-size: 0.55rem;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	margin: 0 0 0.7rem;
	opacity: 0.7;
}

.ev-fact__value {
	font-family: var(--ev-font-display);
	font-weight: 400;
	font-size: clamp(1.25rem, 2.4vw, 1.65rem);
	line-height: 1.18;
	margin: 0 0 0.25rem;
}

.ev-fact__note {
	font-size: 0.85rem;
	font-weight: 400;
	line-height: 1.5;
	margin: 0;
	opacity: 0.75;
}


/* ── Stat row ── */
.ev-stats {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(1.25rem, 3vw, 2.5rem);
	text-align: center;
}

@media (max-width: 780px) {
	.ev-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.ev-stat__num {
	font-family: var(--ev-font-display);
	font-weight: 400;
	font-size: clamp(2.2rem, 5vw, 3.6rem);
	line-height: 1;
	margin: 0 0 0.4rem;
	letter-spacing: -0.02em;
}

.ev-stat__label {
	font-family: var(--ev-font-label);
	font-weight: 700;
	font-size: 0.55rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	margin: 0;
	opacity: 0.72;
	line-height: 1.5;
}


/* ══════════════════════════════════════════════════
   3. TITO'S LANDING PAGE
   ══════════════════════════════════════════════════ */

.ev-titos { --ev-accent: var(--titos-red); }

/* ── Hero ── */
.ev-titos-hero {
	background: var(--titos-yellow);
	color: var(--titos-ink);
	position: relative;
	overflow: hidden;
}

.ev-titos-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image: repeating-linear-gradient(
		135deg,
		rgba(236, 37, 43, 0.055) 0 2px,
		transparent 2px 10px
	);
	pointer-events: none;
}

.ev-titos-hero .ev-band__inner {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr);
	gap: clamp(2rem, 5vw, 4rem);
	align-items: center;
}

.ev-titos-hero__eyebrow { color: var(--titos-red); }

.ev-titos-hero__title {
	font-family: var(--ev-font-display);
	font-weight: 400;
	color: var(--titos-red);
	font-size: clamp(2.6rem, 7vw, 5rem);
	line-height: 0.98;
	letter-spacing: -0.015em;
	margin: 0 0 1.1rem;
}

.ev-titos-hero__title em { font-style: italic; font-weight: 300; }

.ev-titos-hero__meta {
	font-size: 1.02rem;
	font-weight: 600;
	line-height: 1.6;
	margin: 0 0 0.4rem;
}

.ev-titos-hero__addr {
	font-size: 0.94rem;
	font-weight: 400;
	line-height: 1.6;
	margin: 0 0 1.9rem;
	color: rgba(43, 18, 6, 0.8);
}

.ev-titos-hero__art img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--ev-radius-l);
	box-shadow: 0 24px 60px rgba(43, 18, 6, 0.3);
}

/* ── Pitch ── */
.ev-titos-pitch {
	background: var(--ev-off-white);
	color: var(--ev-ink);
	text-align: center;
}

.ev-titos-pitch .ev-lede {
	margin-inline: auto;
	max-width: 58ch;
	font-size: clamp(1.08rem, 1.9vw, 1.3rem);
	line-height: 1.72;
}

.ev-titos-pitch .ev-section-title { color: var(--titos-red-dark); }

/* ── Facts ── */
.ev-titos-facts {
	background: var(--titos-red);
	color: #fff;
	padding-block: 0;
	padding-inline: 0;
}

.ev-titos-facts .ev-band__inner {
	padding-inline: var(--ev-gutter);
}

.ev-titos-facts .ev-facts {
	color: rgba(255, 255, 255, 0.22);
	border-block-color: rgba(255, 255, 255, 0.22);
}

.ev-titos-facts .ev-fact {
	background: var(--titos-red);
	color: #fff;
}

.ev-titos-facts .ev-fact__value a {
	color: #fff;
	text-decoration: underline;
	text-underline-offset: 4px;
	text-decoration-thickness: 1px;
	text-decoration-color: rgba(255, 255, 255, 0.5);
}

.ev-titos-facts .ev-fact__value a:hover { text-decoration-color: #fff; }

/* ── Impact / proof ── */
.ev-titos-impact {
	background: var(--ev-white);
	color: var(--ev-ink);
}

.ev-titos-impact .ev-band__inner {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	gap: clamp(2rem, 5vw, 3.75rem);
	align-items: center;
}

.ev-titos-impact figure {
	margin: 0;
}

.ev-titos-impact__figure { min-width: 0; }

.ev-titos-impact img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--ev-radius-l);
}

.ev-titos-impact .ev-caption {
	font-family: var(--ev-font-display);
	font-style: italic;
	font-size: 0.85rem;
	line-height: 1.55;
	color: var(--ev-gray);
	margin: 0.85rem 0 0;
	max-width: 46ch;
}

.ev-titos-impact figcaption {
	font-family: var(--ev-font-display);
	font-style: italic;
	font-size: 0.86rem;
	line-height: 1.55;
	color: var(--ev-gray);
	margin-top: 0.85rem;
}

.ev-titos-impact .ev-section-title { color: var(--titos-red-dark); }

.ev-hundred {
	font-family: var(--ev-font-display);
	font-weight: 400;
	font-size: clamp(3.4rem, 9vw, 5.6rem);
	line-height: 0.9;
	color: var(--titos-red);
	margin: 0 0 0.35rem;
	letter-spacing: -0.03em;
}

.ev-hundred-label {
	font-family: var(--ev-font-label);
	font-weight: 700;
	font-size: 0.6rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--titos-ink);
	margin: 0 0 1.4rem;
	line-height: 1.6;
}

/* ── Sponsors ── */
.ev-titos-sponsors {
	background: var(--ev-off-white);
	text-align: center;
	color: var(--ev-ink);
}

.ev-sponsor-row {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: clamp(2rem, 6vw, 4.5rem);
	margin-top: 2rem;
}

.ev-sponsor-row img {
	display: block;
	width: auto;
	max-width: 210px;
	max-height: 105px;
	object-fit: contain;
	filter: grayscale(1);
	opacity: 0.72;
	transition: filter var(--ev-ease), opacity var(--ev-ease);
}

.ev-sponsor-row a:hover img,
.ev-sponsor-row a:focus-visible img {
	filter: grayscale(0);
	opacity: 1;
}

/* ── Closing CTA ── */
.ev-titos-cta {
	background: var(--titos-ink);
	color: var(--titos-yellow);
	text-align: center;
}

.ev-titos-cta .ev-section-title { color: var(--titos-yellow); }

.ev-titos-cta .ev-lede {
	color: rgba(244, 238, 88, 0.78);
	margin-inline: auto;
	text-align: center;
}

.ev-titos-cta .ev-btn--primary {
	background: var(--titos-red);
	color: #fff;
	border-color: var(--titos-red);
}

.ev-titos-cta .ev-btn--primary:hover,
.ev-titos-cta .ev-btn--primary:focus-visible {
	background: #fff;
	color: var(--titos-red);
	border-color: #fff;
}

.ev-titos-cta .ev-btn--ghost {
	background: transparent;
	color: var(--titos-yellow);
	border-color: rgba(244, 238, 88, 0.42);
}

.ev-titos-cta .ev-btn--ghost:hover,
.ev-titos-cta .ev-btn--ghost:focus-visible {
	background: var(--titos-yellow);
	color: var(--titos-ink);
	border-color: var(--titos-yellow);
}

.ev-cta-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.85rem;
	justify-content: center;
	margin-top: 2rem;
}

@media (max-width: 900px) {
	.ev-titos-hero .ev-band__inner,
	.ev-titos-impact .ev-band__inner {
		grid-template-columns: 1fr;
	}

	.ev-titos-hero__art { max-width: 420px; margin-inline: auto; order: -1; }
}

@media (max-width: 600px) {
	.ev-cta-actions { flex-direction: column; align-items: stretch; }
	.ev-cta-actions .ev-btn { justify-content: center; }
}


/* ══════════════════════════════════════════════════
   4. CULVER ARTS FESTIVAL LANDING PAGE
   ══════════════════════════════════════════════════ */

.ev-fest { --ev-accent: var(--fest-cobalt); }

/* ── Hero ── */
/* The supplied logo is artwork on an opaque white plate, and its letterforms
   are themselves white — so the plate cannot be keyed out. The hero ground is
   therefore pure white, and the colour lives in the logo, the rule beneath it
   and the navy stat band. A tinted ground would show the plate as a rectangle. */
.ev-fest-hero {
	background: #fff;
	color: var(--ev-ink);
	text-align: center;
	position: relative;
	overflow: hidden;
}

/* Paint-splash colours as a rule under the hero rather than a wash behind it */
.ev-fest-hero::after {
	content: '';
	position: absolute;
	inset: auto 0 0 0;
	height: 4px;
	background: linear-gradient(
		90deg,
		var(--fest-cobalt) 0%,
		#7b3fc4 26%,
		var(--fest-vermilion) 58%,
		var(--fest-amber) 100%
	);
}

.ev-fest-hero .ev-band__inner { position: relative; }

.ev-fest-hero__logo {
	display: block;
	width: 100%;
	max-width: 620px;
	height: auto;
	margin: 0 auto 1.75rem;
}

.ev-fest-hero__meta {
	font-family: var(--ev-font-ui);
	font-size: clamp(1rem, 1.8vw, 1.16rem);
	font-weight: 600;
	color: var(--fest-navy);
	margin: 0 0 0.35rem;
	line-height: 1.5;
}

.ev-fest-hero__place {
	font-size: 0.95rem;
	font-weight: 400;
	color: #4a5058;
	margin: 0 0 2rem;
}

.ev-fest-hero .ev-cta-actions { margin-top: 0; }

/* ── Stat band ── */
.ev-fest-stats {
	background: var(--fest-navy);
	color: #fff;
}

.ev-fest-stats .ev-stat__num   { color: var(--fest-amber); }
.ev-fest-stats .ev-stat__label { color: rgba(255, 255, 255, 0.7); opacity: 1; }

/* ── Call for artists ── */
.ev-fest-call {
	background: var(--ev-white);
	color: var(--ev-ink);
}

.ev-fest-call .ev-section-title { color: var(--fest-navy); }

.ev-fest-call__head {
	max-width: 62ch;
	margin-bottom: clamp(2rem, 4vw, 3rem);
}

.ev-fest-call__head .ev-eyebrow { color: var(--fest-cobalt); }

.ev-program-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: stretch;
	gap: clamp(1.25rem, 2.5vw, 1.75rem);
}

@media (max-width: 780px) {
	.ev-program-grid { grid-template-columns: 1fr; }
}

.ev-program {
	position: relative;
	background: var(--fest-paper);
	border: 1px solid rgba(14, 42, 126, 0.12);
	border-radius: var(--ev-radius-l);
	padding: clamp(1.6rem, 3vw, 2.25rem);
	display: flex;
	flex-direction: column;
	transition: transform var(--ev-ease), box-shadow var(--ev-ease),
	            border-color var(--ev-ease);
}

.ev-program:hover {
	transform: translateY(-3px);
	box-shadow: 0 16px 40px rgba(14, 42, 126, 0.1);
	border-color: rgba(14, 70, 210, 0.3);
}

/* Colour key strip across the card top */
.ev-program::before {
	content: '';
	position: absolute;
	inset: 0 0 auto 0;
	height: 4px;
	border-radius: var(--ev-radius-l) var(--ev-radius-l) 0 0;
}

.ev-program--booth::before { background: var(--fest-cobalt); }
.ev-program--mural::before { background: var(--fest-vermilion); }

.ev-program__label {
	font-family: var(--ev-font-label);
	font-weight: 700;
	font-size: 0.55rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	margin: 0 0 0.9rem;
}

.ev-program--booth .ev-program__label { color: var(--fest-cobalt); }
.ev-program--mural .ev-program__label { color: var(--fest-vermilion); }

.ev-program__title {
	font-family: var(--ev-font-display);
	font-weight: 400;
	font-size: clamp(1.4rem, 2.6vw, 1.85rem);
	line-height: 1.15;
	color: var(--fest-navy);
	margin: 0 0 0.9rem;
}

.ev-program__desc {
	font-size: 0.95rem;
	font-weight: 300;
	line-height: 1.7;
	color: #40454d;
	margin: 0 0 1.35rem;
}

.ev-program__list {
	list-style: none;
	margin: 0 0 1.5rem;
	padding: 0;
	display: grid;
	gap: 0.6rem;
}

.ev-program__list li {
	position: relative;
	padding-left: 1.5rem;
	font-size: 0.9rem;
	font-weight: 400;
	line-height: 1.6;
	color: #33383f;
}

.ev-program__list li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0.52em;
	width: 8px;
	height: 8px;
	border-radius: 2px;
	background: currentColor;
	opacity: 0.4;
}

.ev-program--booth .ev-program__list li::before { background: var(--fest-cobalt); opacity: 0.55; }
.ev-program--mural .ev-program__list li::before { background: var(--fest-vermilion); opacity: 0.55; }

.ev-program__foot { margin-top: auto; }

/* Mural theme line — sits above the benefit list, quieter than the lede */
.ev-program__theme {
	font-size: 0.94rem;
	line-height: 1.6;
	color: var(--ev-ink);
	border-left: 2px solid var(--fest-vermilion);
	padding-left: 0.85rem;
	margin: 0 0 1.35rem;
}

.ev-program__theme em {
	font-style: italic;
	font-weight: 500;
}

/* How the jury weights each application */
.ev-program__criteria {
	font-family: var(--ev-font-ui);
	font-size: 0.72rem;
	line-height: 1.65;
	letter-spacing: 0.01em;
	color: var(--ev-gray);
	margin: 0 0 1.5rem;
	padding-top: 1rem;
	border-top: 1px solid rgba(17, 17, 17, 0.1);
}

.ev-program__criteria strong {
	color: var(--ev-ink);
	font-weight: 600;
}

/* Copy the client still owes us — visible in admin preview, quiet on the page */
.ev-tbd {
	display: block;
	font-family: var(--ev-font-ui);
	font-size: 0.78rem;
	font-style: italic;
	color: var(--ev-gray);
	border-left: 2px solid var(--fest-amber);
	padding-left: 0.75rem;
	margin: 0 0 1.35rem;
	line-height: 1.6;
}

/* ── Juried process note ── */
.ev-fest-process {
	background: var(--fest-paper);
	color: var(--ev-ink);
	border-top: 1px solid rgba(14, 42, 126, 0.1);
}

.ev-fest-process .ev-band__inner {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
	gap: clamp(1.75rem, 4vw, 3.5rem);
	align-items: start;
}

.ev-fest-process .ev-section-title { color: var(--fest-navy); }

.ev-steps {
	list-style: none;
	margin: 0;
	padding: 0;
	counter-reset: ev-step;
	display: grid;
	gap: 1.35rem;
}

.ev-steps li {
	counter-increment: ev-step;
	position: relative;
	padding-left: 3.25rem;
	font-size: 0.96rem;
	font-weight: 300;
	line-height: 1.7;
	color: #40454d;
}

.ev-steps li::before {
	content: counter(ev-step);
	position: absolute;
	left: 0;
	top: -0.1em;
	width: 2.25rem;
	height: 2.25rem;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: var(--fest-cobalt);
	color: #fff;
	font-family: var(--ev-font-label);
	font-weight: 700;
	font-size: 0.72rem;
}

.ev-steps strong {
	display: block;
	font-family: var(--ev-font-ui);
	font-weight: 700;
	font-size: 0.95rem;
	color: var(--fest-navy);
	margin-bottom: 0.15rem;
}

/* ── Mural texture break ── */
.ev-fest-texture {
	position: relative;
	min-height: clamp(220px, 32vw, 380px);
	background-size: cover;
	background-position: center;
	display: grid;
	place-items: center;
	padding-inline: var(--ev-gutter);
	text-align: center;
}

.ev-fest-texture::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(14, 42, 126, 0.72), rgba(14, 42, 126, 0.55));
}

.ev-fest-texture__quote {
	position: relative;
	z-index: 1;
	font-family: var(--ev-font-display);
	font-style: italic;
	font-weight: 300;
	font-size: clamp(1.4rem, 3.4vw, 2.4rem);
	line-height: 1.3;
	color: #fff;
	max-width: 22ch;
	margin: 0 auto;
	text-wrap: balance;
}

/* ── Application form ── */
.ev-fest-apply {
	background: var(--ev-white);
	color: var(--ev-ink);
	scroll-margin-top: 100px;
}

.ev-fest-apply .ev-band__inner { max-width: 820px; }

.ev-fest-apply .ev-section-title { color: var(--fest-navy); text-align: center; }
.ev-fest-apply .ev-lede { margin-inline: auto; text-align: center; }

.ev-form-wrap {
	background: var(--fest-paper);
	border: 1px solid rgba(14, 42, 126, 0.12);
	border-radius: var(--ev-radius-l);
	padding: clamp(1.5rem, 4vw, 2.75rem);
	margin-top: 2rem;
}

/* Gravity Forms — bring it into the brand without fighting the plugin */
.ev-form-wrap .gform_wrapper .gfield_label {
	font-family: var(--ev-font-ui);
	font-weight: 600;
	font-size: 0.86rem;
	letter-spacing: 0.01em;
	color: var(--fest-navy);
}

.ev-form-wrap .gform_wrapper input[type="text"],
.ev-form-wrap .gform_wrapper input[type="email"],
.ev-form-wrap .gform_wrapper input[type="tel"],
.ev-form-wrap .gform_wrapper input[type="url"],
.ev-form-wrap .gform_wrapper select,
.ev-form-wrap .gform_wrapper textarea {
	font-family: var(--ev-font-ui);
	font-size: 0.95rem;
	border: 1px solid rgba(14, 42, 126, 0.2);
	border-radius: var(--ev-radius);
	padding: 0.7em 0.85em;
	background: #fff;
	transition: border-color var(--ev-ease), box-shadow var(--ev-ease);
}

.ev-form-wrap .gform_wrapper input:focus,
.ev-form-wrap .gform_wrapper select:focus,
.ev-form-wrap .gform_wrapper textarea:focus {
	border-color: var(--fest-cobalt);
	box-shadow: 0 0 0 3px rgba(14, 70, 210, 0.14);
	outline: none;
}

.ev-form-wrap .gform_wrapper .gform_footer input[type="submit"],
.ev-form-wrap .gform_wrapper .gform_button {
	font-family: var(--ev-font-ui);
	font-weight: 700;
	font-size: 0.82rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	background: var(--fest-cobalt);
	color: #fff;
	border: 0;
	border-radius: var(--ev-pill);
	padding: 1.05em 2.4em;
	cursor: pointer;
	transition: background-color var(--ev-ease), transform var(--ev-ease);
}

.ev-form-wrap .gform_wrapper .gform_footer input[type="submit"]:hover,
.ev-form-wrap .gform_wrapper .gform_button:hover {
	background: var(--fest-cobalt-dark);
	transform: translateY(-2px);
}

.ev-form-wrap .gform_wrapper .gfield_required { color: var(--fest-vermilion); }

/* Gravity Forms sizes single inputs to a narrow default; give them the
   full column so the form doesn't read as a row of stubs. */
.ev-form-wrap .gform_wrapper .ginput_container > input[type="text"],
.ev-form-wrap .gform_wrapper .ginput_container > input[type="email"],
.ev-form-wrap .gform_wrapper .ginput_container > input[type="tel"],
.ev-form-wrap .gform_wrapper .ginput_container > input[type="url"],
.ev-form-wrap .gform_wrapper .ginput_container > select,
.ev-form-wrap .gform_wrapper .ginput_container > textarea,
.ev-form-wrap .gform_wrapper .ginput_container_name input {
	width: 100%;
}

.ev-form-wrap .gform_wrapper .gfield_description {
	font-size: 0.82rem;
	line-height: 1.55;
	color: var(--ev-gray);
}

.ev-form-wrap .gform_wrapper .gchoice label,
.ev-form-wrap .gform_wrapper .gfield_consent_label {
	font-size: 0.92rem;
	line-height: 1.6;
}

.ev-form-wrap .gform_wrapper .gform_footer {
	justify-content: flex-start;
}

/* Deadline-passed state for the apply band */
.ev-apply-closed {
	text-align: center;
	background: rgba(107, 107, 107, 0.07);
	border: 1px dashed rgba(107, 107, 107, 0.35);
	border-radius: var(--ev-radius-l);
	padding: clamp(1.75rem, 4vw, 2.75rem);
	margin-top: 2rem;
}

.ev-apply-closed p { margin: 0; color: var(--ev-gray); font-size: 0.98rem; line-height: 1.7; }

/* ── Visitor CTA ── */
.ev-fest-cta {
	background: var(--fest-cobalt);
	color: #fff;
	text-align: center;
}

.ev-fest-cta .ev-section-title { color: #fff; }
.ev-fest-cta .ev-lede { color: rgba(255, 255, 255, 0.82); margin-inline: auto; }

.ev-fest-cta .ev-btn--primary {
	background: #fff;
	color: var(--fest-cobalt);
	border-color: #fff;
}

.ev-fest-cta .ev-btn--primary:hover,
.ev-fest-cta .ev-btn--primary:focus-visible {
	background: var(--fest-amber);
	border-color: var(--fest-amber);
	color: var(--fest-navy);
}

.ev-fest-cta .ev-btn--ghost {
	background: transparent;
	color: #fff;
	border-color: rgba(255, 255, 255, 0.45);
}

.ev-fest-cta .ev-btn--ghost:hover,
.ev-fest-cta .ev-btn--ghost:focus-visible {
	background: #fff;
	color: var(--fest-cobalt);
	border-color: #fff;
}

@media (max-width: 900px) {
	.ev-fest-process .ev-band__inner { grid-template-columns: 1fr; }
}


/* ══════════════════════════════════════════════════
   5. PRINT — the poster info should survive a printout
   ══════════════════════════════════════════════════ */

@media print {
	.ev-feature__actions,
	.ev-cta-actions,
	.ev-fest-texture,
	.ev-form-wrap { display: none !important; }

	.ev-titos-hero,
	.ev-fest-hero { background: #fff !important; color: #000 !important; }
}


/* ══════════════════════════════════════════════════
   6. CORE BLOCK BRIDGE
   The landing pages are built from core Gutenberg blocks so the client can
   edit them normally. Core puts custom classes on the wrapper rather than
   the anchor, so map wrapper classes onto the real elements here.
   ══════════════════════════════════════════════════ */

/* Core button blocks → ev-btn pills */
.ev-buttons { gap: 0.85rem; }

.ev-buttons .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 0.55em;
	font-family: var(--ev-font-ui);
	font-weight: 700;
	font-size: 0.82rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	line-height: 1;
	padding: 1.05em 2.3em;
	border-radius: var(--ev-pill);
	border: 1.5px solid transparent;
	text-decoration: none;
	transition: transform var(--ev-ease), background-color var(--ev-ease),
	            color var(--ev-ease), border-color var(--ev-ease), box-shadow var(--ev-ease);
}

.ev-buttons .wp-block-button__link:hover,
.ev-buttons .wp-block-button__link:focus-visible {
	transform: translateY(-2px);
}

.ev-buttons .wp-block-button__link:focus-visible {
	outline: 3px solid currentColor;
	outline-offset: 3px;
}

/* Tito's page buttons */
.ev-titos-hero .is-primary .wp-block-button__link,
.ev-titos-pitch .is-primary .wp-block-button__link {
	background: var(--titos-red);
	color: #fff;
	border-color: var(--titos-red);
}

.ev-titos-hero .is-primary .wp-block-button__link:hover,
.ev-titos-pitch .is-primary .wp-block-button__link:hover {
	background: var(--titos-red-dark);
	border-color: var(--titos-red-dark);
	box-shadow: 0 10px 24px rgba(196, 28, 34, 0.3);
}

.ev-titos-hero .is-ghost .wp-block-button__link {
	background: transparent;
	color: var(--titos-ink);
	border-color: rgba(43, 18, 6, 0.35);
}

.ev-titos-hero .is-ghost .wp-block-button__link:hover {
	background: var(--titos-ink);
	color: var(--titos-yellow);
	border-color: var(--titos-ink);
}

.ev-titos-cta .is-primary .wp-block-button__link {
	background: var(--titos-red);
	color: #fff;
	border-color: var(--titos-red);
}

.ev-titos-cta .is-primary .wp-block-button__link:hover {
	background: #fff;
	color: var(--titos-red);
	border-color: #fff;
}

.ev-titos-cta .is-ghost .wp-block-button__link {
	background: transparent;
	color: var(--titos-yellow);
	border-color: rgba(244, 238, 88, 0.42);
}

.ev-titos-cta .is-ghost .wp-block-button__link:hover {
	background: var(--titos-yellow);
	color: var(--titos-ink);
	border-color: var(--titos-yellow);
}

/* Festival page buttons */
.ev-fest-hero .is-primary .wp-block-button__link,
.ev-fest-call .is-primary .wp-block-button__link,
.ev-program .is-primary .wp-block-button__link {
	background: var(--fest-cobalt);
	color: #fff;
	border-color: var(--fest-cobalt);
}

.ev-fest-hero .is-primary .wp-block-button__link:hover,
.ev-fest-call .is-primary .wp-block-button__link:hover,
.ev-program .is-primary .wp-block-button__link:hover {
	background: var(--fest-cobalt-dark);
	border-color: var(--fest-cobalt-dark);
	box-shadow: 0 10px 24px rgba(14, 70, 210, 0.28);
}

.ev-program--mural .is-primary .wp-block-button__link {
	background: var(--fest-vermilion);
	border-color: var(--fest-vermilion);
}

.ev-program--mural .is-primary .wp-block-button__link:hover {
	background: #c92208;
	border-color: #c92208;
}

.ev-fest-hero .is-ghost .wp-block-button__link {
	background: transparent;
	color: var(--fest-navy);
	border-color: rgba(14, 42, 126, 0.3);
}

.ev-fest-hero .is-ghost .wp-block-button__link:hover {
	background: var(--fest-navy);
	color: #fff;
	border-color: var(--fest-navy);
}

.ev-fest-cta .is-primary .wp-block-button__link {
	background: #fff;
	color: var(--fest-cobalt);
	border-color: #fff;
}

.ev-fest-cta .is-primary .wp-block-button__link:hover {
	background: var(--fest-amber);
	color: var(--fest-navy);
	border-color: var(--fest-amber);
}

.ev-fest-cta .is-ghost .wp-block-button__link {
	background: transparent;
	color: #fff;
	border-color: rgba(255, 255, 255, 0.45);
}

.ev-fest-cta .is-ghost .wp-block-button__link:hover {
	background: #fff;
	color: var(--fest-cobalt);
	border-color: #fff;
}

/* Core columns used for the hero / impact splits */
.ev-split.wp-block-columns {
	gap: clamp(2rem, 5vw, 4rem);
	align-items: center;
	margin-bottom: 0;
}

.ev-split .wp-block-column { min-width: 0; }

/* Core image blocks inside our bands.
   margin-inline:auto so per-section rules that cap max-width still centre. */
.ev-band figure.wp-block-image { margin-block: 0; margin-inline: auto; }
.ev-band figure.wp-block-image img { display: block; width: 100%; height: auto; }

/* Core list used for programme bullets */
.ev-program__list.wp-block-list { list-style: none; }

/* Editor parity — the bands need their grounds visible while editing */
.editor-styles-wrapper .ev-band { padding-inline: clamp(1rem, 3vw, 2.5rem); }
