/*
Theme Name:  Pride Community
Theme URI:   https://prideinthemoorlands.org.uk
Description: The Pride in the Moorlands year-round LGBT+ community hub. Warm, welcoming,
             and accessible. A completely fresh theme built alongside the existing site.
Version:     1.0.0
Author:      Pride in the Moorlands
Author URI:  https://prideinthemoorlands.org.uk
License:     GPL-2.0-or-later
Text Domain: pride-community
*/

/* =========================================================================
   DESIGN TOKENS
   ========================================================================= */
:root {
	/* Brand Palette */
	--clr-bg:          #faf9f7;        /* warm off-white page background */
	--clr-surface:     #ffffff;        /* cards, panels */
	--clr-alt:         #fff0f3;        /* blush — news / archive sections */
	--clr-dark:        #1a1228;        /* near-black with warm violet undertone */
	--clr-dark-mid:    #2d2040;        /* slightly lighter dark — footer top */
	--clr-accent:      #c2185b;        /* deep raspberry — primary brand */
	--clr-accent-h:    #a31545;        /* accent hover */
	--clr-accent-2:    #e91e8c;        /* vivid pink — gradient partner */
	--clr-yellow:      #ffd600;        /* warm yellow — badges, highlights */
	--clr-yellow-dark: #f9a825;        /* yellow hover */
	--clr-text:        #1a1228;
	--clr-text-light:  #ffffff;
	--clr-muted:       #6b5e7a;        /* muted violet-grey — secondary text */
	--clr-border:      rgba(0,0,0,0.09);
	--clr-border-light:rgba(255,255,255,0.15);

	/* Rainbow */
	--rainbow: linear-gradient(90deg,
		#E4003A, #FF7600, #FFED00, #008026, #004DFF, #750787);

	/* Accent gradient */
	--grad-accent: linear-gradient(135deg, var(--clr-accent), var(--clr-accent-2));
	--grad-dark:   linear-gradient(135deg, #1a1228, #2d1b52);

	/* Typography */
	--ff-heading: 'Playfair Display', Georgia, 'Times New Roman', serif;
	--ff-body:    'Inter', system-ui, -apple-system, sans-serif;

	/* Fluid Type Scale */
	--fs-xs:   clamp(0.72rem,  1.2vw,  0.8rem);
	--fs-sm:   clamp(0.85rem,  1.8vw,  0.95rem);
	--fs-base: clamp(1rem,     2.2vw,  1.1rem);
	--fs-lg:   clamp(1.15rem,  2.8vw,  1.3rem);
	--fs-xl:   clamp(1.4rem,   3.5vw,  1.75rem);
	--fs-2xl:  clamp(1.8rem,   4.5vw,  2.5rem);
	--fs-3xl:  clamp(2.2rem,   6vw,    3.5rem);
	--fs-4xl:  clamp(2.8rem,   8vw,    5rem);

	/* Spacing */
	--sp-1:  0.25rem;
	--sp-2:  0.5rem;
	--sp-3:  0.75rem;
	--sp-4:  1rem;
	--sp-5:  1.25rem;
	--sp-6:  1.5rem;
	--sp-8:  2rem;
	--sp-10: 2.5rem;
	--sp-12: 3rem;
	--sp-16: 4rem;
	--sp-20: 5rem;
	--sp-24: 6rem;

	/* Layout */
	--container-max: 1200px;
	--container-pad: clamp(1rem, 5vw, 2rem);

	/* Radii */
	--radius-sm:   0.375rem;
	--radius-md:   0.75rem;
	--radius-lg:   1.25rem;
	--radius-xl:   2rem;
	--radius-pill: 999px;

	/* Shadows */
	--shadow-sm:  0 1px 3px rgba(26,18,40,0.08);
	--shadow-md:  0 4px 16px rgba(26,18,40,0.10);
	--shadow-lg:  0 8px 32px rgba(26,18,40,0.14);
	--shadow-xl:  0 20px 60px rgba(26,18,40,0.18);

	/* Transitions */
	--ease: cubic-bezier(0.4, 0, 0.2, 1);
	--dur-fast: 150ms;
	--dur-mid:  280ms;
}


/* =========================================================================
   RESET & BASE
   ========================================================================= */
*, *::before, *::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

html {
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
}

body {
	background-color: var(--clr-bg);
	color: var(--clr-text);
	font-family: var(--ff-body);
	font-size: var(--fs-base);
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

img, video, svg {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	color: var(--clr-accent);
	text-decoration-skip-ink: auto;
}
a:hover { color: var(--clr-accent-h); }

p { margin-bottom: 1em; }
p:last-child { margin-bottom: 0; }

ul, ol { padding-left: var(--sp-6); }
li + li { margin-top: var(--sp-2); }


/* =========================================================================
   TYPOGRAPHY
   ========================================================================= */
h1, h2, h3, h4, h5, h6 {
	font-family: var(--ff-heading);
	line-height: 1.2;
	letter-spacing: -0.02em;
	color: var(--clr-text);
}
h1 { font-size: var(--fs-3xl); font-weight: 800; }
h2 { font-size: var(--fs-2xl); font-weight: 700; }
h3 { font-size: var(--fs-xl);  font-weight: 700; }
h4 { font-size: var(--fs-lg);  font-weight: 600; }
h5 { font-size: var(--fs-base); font-weight: 600; }
h6 { font-size: var(--fs-sm);   font-weight: 600; }

.entry-content h2,
.entry-content h3,
.entry-content h4 {
	margin-top: var(--sp-8);
	margin-bottom: var(--sp-3);
}
.entry-content ul, .entry-content ol { margin-bottom: var(--sp-6); }
.entry-content blockquote {
	border-left: 4px solid var(--clr-accent);
	padding: var(--sp-4) var(--sp-6);
	margin: var(--sp-8) 0;
	background: var(--clr-alt);
	border-radius: 0 var(--radius-md) var(--radius-md) 0;
	font-style: italic;
	color: var(--clr-muted);
}


/* =========================================================================
   LAYOUT UTILITIES
   ========================================================================= */
.container {
	width: 100%;
	max-width: var(--container-max);
	margin-inline: auto;
	padding-inline: var(--container-pad);
}

.section {
	padding-block: var(--sp-20);
}
.section--sm { padding-block: var(--sp-12); }
.section--lg { padding-block: var(--sp-24); }

.section-header {
	text-align: center;
	margin-bottom: var(--sp-12);
}
.section-header__eyebrow {
	display: inline-block;
	font-size: var(--fs-xs);
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--clr-accent);
	margin-bottom: var(--sp-3);
}
.section-header__title {
	margin-bottom: var(--sp-4);
}
.section-header__title span {
	display: inline-block;
	position: relative;
}
.section-header__title span::after {
	content: '';
	position: absolute;
	bottom: -0.15em;
	left: 0;
	right: 0;
	height: 4px;
	background: var(--rainbow);
	border-radius: var(--radius-pill);
	opacity: 0.8;
}
.section-header__subtitle {
	font-size: var(--fs-lg);
	color: var(--clr-muted);
	max-width: 52ch;
	margin-inline: auto;
}

/* Grid helpers */
.grid-2 { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 360px), 1fr)); gap: var(--sp-8); }
.grid-3 { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: var(--sp-6); }
.grid-4 { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: var(--sp-6); }

/* Section backgrounds */
.bg-dark    { background-color: var(--clr-dark); color: var(--clr-text-light); }
.bg-dark h1,.bg-dark h2,.bg-dark h3,.bg-dark h4 { color: var(--clr-text-light); }
.bg-alt     { background-color: var(--clr-alt); }
.bg-white   { background-color: var(--clr-surface); }
.bg-grad    { background: var(--grad-dark); color: var(--clr-text-light); }
.bg-grad h1,.bg-grad h2,.bg-grad h3 { color: var(--clr-text-light); }


/* =========================================================================
   RAINBOW STRIPE
   ========================================================================= */
.rainbow-stripe {
	height: 5px;
	background: var(--rainbow);
	width: 100%;
	flex-shrink: 0;
}


/* =========================================================================
   BUTTONS
   ========================================================================= */
.btn {
	display: inline-flex;
	align-items: center;
	gap: var(--sp-2);
	padding: 0.75em 1.6em;
	border-radius: var(--radius-pill);
	font-family: var(--ff-body);
	font-size: var(--fs-sm);
	font-weight: 700;
	letter-spacing: 0.02em;
	text-decoration: none;
	cursor: pointer;
	border: 2px solid transparent;
	transition: background var(--dur-mid) var(--ease),
	            color      var(--dur-mid) var(--ease),
	            border-color var(--dur-mid) var(--ease),
	            transform  var(--dur-fast) var(--ease),
	            box-shadow var(--dur-mid) var(--ease);
	white-space: nowrap;
	line-height: 1;
}
.btn:focus-visible {
	outline: 3px solid var(--clr-yellow);
	outline-offset: 3px;
}
.btn:active { transform: translateY(1px); }

.btn--primary {
	background: var(--grad-accent);
	color: var(--clr-text-light);
	box-shadow: 0 4px 16px rgba(194,24,91,0.30);
}
.btn--primary:hover {
	background: var(--clr-accent-h);
	color: var(--clr-text-light);
	box-shadow: 0 6px 24px rgba(194,24,91,0.40);
	transform: translateY(-2px);
}

.btn--outline {
	background: transparent;
	color: var(--clr-accent);
	border-color: var(--clr-accent);
}
.btn--outline:hover {
	background: var(--clr-accent);
	color: var(--clr-text-light);
}

.btn--outline-light {
	background: transparent;
	color: var(--clr-text-light);
	border-color: rgba(255,255,255,0.6);
}
.btn--outline-light:hover {
	background: rgba(255,255,255,0.15);
	color: var(--clr-text-light);
	border-color: var(--clr-text-light);
}

.btn--yellow {
	background: var(--clr-yellow);
	color: var(--clr-dark);
	box-shadow: 0 4px 16px rgba(255,214,0,0.35);
}
.btn--yellow:hover {
	background: var(--clr-yellow-dark);
	color: var(--clr-dark);
	transform: translateY(-2px);
	box-shadow: 0 6px 24px rgba(255,214,0,0.45);
}

.btn--lg { padding: 0.9em 2em; font-size: var(--fs-base); }
.btn--sm { padding: 0.55em 1.2em; font-size: var(--fs-xs); }


/* =========================================================================
   BADGES & TAGS
   ========================================================================= */
.badge {
	display: inline-block;
	padding: 0.25em 0.75em;
	border-radius: var(--radius-pill);
	font-size: var(--fs-xs);
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}
.badge--year {
	background: var(--clr-yellow);
	color: var(--clr-dark);
}
.badge--accent {
	background: var(--clr-accent);
	color: var(--clr-text-light);
}
.badge--new {
	background: #00b09b;
	color: #fff;
}

.tag {
	display: inline-flex;
	align-items: center;
	gap: 0.25em;
	padding: 0.2em 0.65em;
	border-radius: var(--radius-sm);
	font-size: var(--fs-xs);
	font-weight: 600;
	background: var(--clr-alt);
	color: var(--clr-accent);
	text-decoration: none;
	transition: background var(--dur-fast);
}
.tag:hover { background: #ffd6e0; color: var(--clr-accent-h); }


/* =========================================================================
   SITE HEADER & NAVIGATION
   ========================================================================= */
.site-header {
	position: sticky;
	top: 0;
	z-index: 200;
	background: var(--clr-dark);
	box-shadow: var(--shadow-md);
}

.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--sp-6);
	padding-block: var(--sp-4);
}

/* Logo */
.site-logo {
	display: flex;
	align-items: center;
	gap: var(--sp-3);
	text-decoration: none;
	flex-shrink: 0;
}
.site-logo__mark {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	background: var(--grad-accent);
	border-radius: var(--radius-md);
	font-size: 1.4rem;
	flex-shrink: 0;
	box-shadow: 0 2px 8px rgba(194,24,91,0.40);
}
.site-logo__text {
	display: flex;
	flex-direction: column;
	line-height: 1.1;
}
.site-logo__name {
	font-family: var(--ff-heading);
	font-size: var(--fs-lg);
	font-weight: 800;
	color: var(--clr-text-light);
	letter-spacing: -0.02em;
}
.site-logo__tagline {
	font-size: var(--fs-xs);
	color: rgba(255,255,255,0.6);
	font-weight: 400;
	letter-spacing: 0.04em;
}

/* Primary Nav */
.primary-nav {
	display: flex;
	align-items: center;
	gap: var(--sp-1);
	list-style: none;
	padding: 0;
	margin: 0;
}
.primary-nav li {
	margin: 0;
	padding: 0;
}
.primary-nav li + li {
	margin-top: 0;
}
.primary-nav a {
	display: block;
	padding: 0.5em 0.85em;
	color: rgba(255,255,255,0.80);
	text-decoration: none;
	font-size: var(--fs-sm);
	font-weight: 600;
	border-radius: var(--radius-sm);
	transition: color var(--dur-fast), background var(--dur-fast);
}
.primary-nav a:hover,
.primary-nav .current-menu-item > a,
.primary-nav .current_page_item > a {
	color: var(--clr-text-light);
	background: rgba(255,255,255,0.10);
}

/* Hamburger */
.nav-toggle {
	display: none;
	background: transparent;
	border: 2px solid rgba(255,255,255,0.4);
	border-radius: var(--radius-sm);
	color: var(--clr-text-light);
	padding: 0.4em 0.6em;
	cursor: pointer;
	font-size: 1.2rem;
	line-height: 1;
	transition: border-color var(--dur-fast), background var(--dur-fast);
}
.nav-toggle:hover { border-color: var(--clr-text-light); background: rgba(255,255,255,0.10); }
.nav-toggle:focus-visible { outline: 3px solid var(--clr-yellow); outline-offset: 2px; }

@media (max-width: 768px) {
	.nav-toggle { display: flex; align-items: center; justify-content: center; }

	.site-nav {
		display: none;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		background: var(--clr-dark);
		padding: var(--sp-4) var(--container-pad) var(--sp-6);
		border-top: 1px solid rgba(255,255,255,0.08);
		box-shadow: var(--shadow-lg);
	}
	.site-nav.is-open { display: block; }

	.primary-nav {
		flex-direction: column;
		align-items: stretch;
		gap: var(--sp-1);
	}
	.primary-nav a { padding: 0.7em 1em; }
}

.site-header__cta {
	display: flex;
	align-items: center;
	gap: var(--sp-3);
	flex-shrink: 0;
}
@media (max-width: 900px) { .site-header__cta { display: none; } }


/* =========================================================================
   SITE FOOTER
   ========================================================================= */
.site-footer {
	background: var(--clr-dark);
	color: rgba(255,255,255,0.80);
	padding-top: var(--sp-16);
	padding-bottom: 0;
}

.site-footer__grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr;
	gap: var(--sp-10);
	padding-bottom: var(--sp-12);
}
@media (max-width: 768px) {
	.site-footer__grid { grid-template-columns: 1fr; gap: var(--sp-8); }
}

.footer-col__logo {
	font-family: var(--ff-heading);
	font-size: var(--fs-xl);
	font-weight: 800;
	color: var(--clr-text-light);
	margin-bottom: var(--sp-3);
}
.footer-col__tagline {
	font-size: var(--fs-sm);
	color: rgba(255,255,255,0.55);
	line-height: 1.6;
	margin-bottom: var(--sp-6);
}

.footer-col__heading {
	font-family: var(--ff-body);
	font-size: var(--fs-xs);
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.45);
	margin-bottom: var(--sp-4);
}

.footer-nav {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: var(--sp-2);
}
.footer-nav li {
	margin: 0;
	padding: 0;
}
.footer-nav li + li {
	margin-top: 0;
}
.footer-nav a {
	color: rgba(255,255,255,0.70);
	text-decoration: none;
	font-size: var(--fs-sm);
	transition: color var(--dur-fast);
}
.footer-nav a:hover { color: var(--clr-text-light); }

.footer-social {
	display: flex;
	gap: var(--sp-3);
	margin-top: var(--sp-6);
}
.footer-social a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: var(--radius-sm);
	background: rgba(255,255,255,0.08);
	color: rgba(255,255,255,0.70);
	text-decoration: none;
	font-size: 1rem;
	transition: background var(--dur-fast), color var(--dur-fast);
}
.footer-social a:hover { background: var(--clr-accent); color: #fff; }

.footer-newsletter-note {
	font-size: var(--fs-sm);
	color: rgba(255,255,255,0.55);
	line-height: 1.6;
	margin-bottom: var(--sp-4);
}

.site-footer__bottom {
	border-top: 1px solid rgba(255,255,255,0.08);
	padding-block: var(--sp-5);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--sp-4);
	flex-wrap: wrap;
}
.site-footer__bottom p {
	font-size: var(--fs-xs);
	color: rgba(255,255,255,0.40);
	margin: 0;
}
.site-footer__bottom a { color: rgba(255,255,255,0.55); }
.site-footer__bottom a:hover { color: var(--clr-text-light); }


/* =========================================================================
   HERO SECTION
   ========================================================================= */
.hero {
	position: relative;
	background: var(--grad-dark);
	overflow: hidden;
	padding-block: var(--sp-24);
	text-align: center;
}
.hero__carousel {
	position: absolute;
	inset: 0;
	z-index: 0;
	background: var(--grad-dark);
}
.hero__slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity 1.5s ease-in-out;
	overflow: hidden;
}
.hero__slide.is-active {
	opacity: 1;
}
.hero__slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top center;
	transform-origin: top center;
	animation: kenBurns 15s infinite alternate;
}
@keyframes kenBurns {
	0% { transform: scale(1.0); }
	100% { transform: scale(1.1); }
}
.hero__overlay {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse 80% 60% at 20% 40%, rgba(194,24,91,0.3) 0%, transparent 80%),
		radial-gradient(ellipse 60% 50% at 80% 70%, rgba(115,7,135,0.4) 0%, transparent 80%),
		linear-gradient(to bottom, rgba(26,18,40,0.5) 0%, rgba(26,18,40,0.95) 100%);
	z-index: 1;
	pointer-events: none;
}

.hero__inner {
	position: relative;
	z-index: 1;
}

.hero__eyebrow {
	display: inline-block;
	font-size: var(--fs-xs);
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--clr-yellow);
	margin-bottom: var(--sp-5);
	background: rgba(255,214,0,0.12);
	padding: 0.35em 1em;
	border-radius: var(--radius-pill);
	border: 1px solid rgba(255,214,0,0.3);
}

.hero__title {
	color: var(--clr-text-light);
	font-size: var(--fs-4xl);
	font-weight: 900;
	letter-spacing: -0.03em;
	line-height: 1.05;
	margin-bottom: var(--sp-6);
	text-shadow: 0 2px 20px rgba(0,0,0,0.30);
}

.hero__subtitle {
	font-size: var(--fs-lg);
	color: rgba(255,255,255,0.80);
	max-width: 52ch;
	margin-inline: auto;
	margin-bottom: var(--sp-10);
	line-height: 1.6;
}

.hero__actions {
	display: flex;
	gap: var(--sp-4);
	justify-content: center;
	flex-wrap: wrap;
	margin-bottom: var(--sp-10);
}

/* Pride Archive sticky link in hero */
.hero__archive-link {
	display: inline-flex;
	align-items: center;
	gap: var(--sp-3);
	background: rgba(255,255,255,0.08);
	border: 1px solid rgba(255,255,255,0.18);
	border-radius: var(--radius-lg);
	padding: var(--sp-4) var(--sp-6);
	text-decoration: none;
	color: var(--clr-text-light);
	transition: background var(--dur-mid), border-color var(--dur-mid), transform var(--dur-fast);
	max-width: 500px;
	margin-inline: auto;
	text-align: left;
}
.hero__archive-link:hover {
	background: rgba(255,255,255,0.14);
	border-color: rgba(255,255,255,0.35);
	color: var(--clr-text-light);
	transform: translateY(-2px);
}
.hero__archive-link__icon {
	font-size: 2rem;
	flex-shrink: 0;
}
.hero__archive-link__label {
	font-size: var(--fs-xs);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--clr-yellow);
	display: block;
	margin-bottom: 2px;
}
.hero__archive-link__title {
	font-family: var(--ff-heading);
	font-size: var(--fs-lg);
	font-weight: 700;
	display: block;
	line-height: 1.2;
}
.hero__archive-link__year {
	font-size: var(--fs-xs);
	color: rgba(255,255,255,0.55);
	display: block;
	margin-top: 2px;
}

.hero__no-archive {
	font-size: var(--fs-sm);
	color: rgba(255,255,255,0.45);
}


/* =========================================================================
   EVENT CARDS
   ========================================================================= */
.event-card {
	background: var(--clr-surface);
	border-radius: var(--radius-lg);
	overflow: hidden;
	box-shadow: var(--shadow-sm);
	border: 1px solid var(--clr-border);
	display: flex;
	flex-direction: column;
	transition: transform var(--dur-mid) var(--ease), box-shadow var(--dur-mid) var(--ease);
}
.event-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--shadow-lg);
}

.event-card__stripe {
	height: 4px;
	background: var(--rainbow);
	flex-shrink: 0;
}

.event-card__thumbnail {
	aspect-ratio: 16/9;
	overflow: hidden;
}
.event-card__thumbnail img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s var(--ease);
}
.event-card:hover .event-card__thumbnail img { transform: scale(1.04); }

.event-card__body {
	padding: var(--sp-6);
	display: flex;
	flex-direction: column;
	flex: 1;
	gap: var(--sp-3);
}

.event-card__date-badge {
	display: inline-flex;
	align-items: center;
	gap: var(--sp-2);
	font-size: var(--fs-xs);
	font-weight: 700;
	color: var(--clr-accent);
	background: var(--clr-alt);
	border-radius: var(--radius-sm);
	padding: 0.25em 0.75em;
	align-self: flex-start;
}

.event-card__title {
	font-size: var(--fs-xl);
	font-weight: 700;
	line-height: 1.25;
	margin: 0;
}
.event-card__title a {
	color: var(--clr-text);
	text-decoration: none;
}
.event-card__title a:hover { color: var(--clr-accent); }

.event-card__meta {
	display: flex;
	flex-direction: column;
	gap: var(--sp-2);
}
.event-card__meta-item {
	display: flex;
	align-items: flex-start;
	gap: var(--sp-2);
	font-size: var(--fs-sm);
	color: var(--clr-muted);
}
.event-card__meta-item .icon { flex-shrink: 0; }

.event-card__excerpt {
	font-size: var(--fs-sm);
	color: var(--clr-muted);
	line-height: 1.6;
	flex: 1;
}

.event-card__footer {
	padding-top: var(--sp-3);
	border-top: 1px solid var(--clr-border);
	margin-top: auto;
}
.event-card__link {
	font-size: var(--fs-sm);
	font-weight: 700;
	color: var(--clr-accent);
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: var(--sp-2);
	transition: gap var(--dur-fast);
}
.event-card__link:hover { gap: var(--sp-3); color: var(--clr-accent-h); }

.events-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: var(--sp-6); }

/* No results state */
.no-results {
	text-align: center;
	padding: var(--sp-16) var(--sp-8);
	background: var(--clr-surface);
	border-radius: var(--radius-lg);
	border: 2px dashed var(--clr-border);
}
.no-results__icon { font-size: 3rem; margin-bottom: var(--sp-4); }
.no-results h3 { margin-bottom: var(--sp-3); }
.no-results p { color: var(--clr-muted); max-width: 40ch; margin-inline: auto; }


/* =========================================================================
   LATEST NEWS SPOTLIGHT (homepage single post)
   ========================================================================= */
.news-spotlight { padding-block: var(--sp-20); background: var(--clr-alt); }

.news-spotlight__card {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0;
	background: var(--clr-surface);
	border-radius: var(--radius-xl);
	overflow: hidden;
	box-shadow: var(--shadow-lg);
	max-width: 900px;
	margin-inline: auto;
}
@media (max-width: 680px) { .news-spotlight__card { grid-template-columns: 1fr; } }

.news-spotlight__image {
	aspect-ratio: 1;
	overflow: hidden;
}
@media (max-width: 680px) { .news-spotlight__image { aspect-ratio: 16/9; } }
.news-spotlight__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.news-spotlight__image-placeholder {
	width: 100%;
	height: 100%;
	min-height: 220px;
	background: linear-gradient(135deg, var(--clr-alt), #ffc0cb);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 4rem;
}

.news-spotlight__body {
	padding: var(--sp-10);
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: var(--sp-4);
}
.news-spotlight__label {
	font-size: var(--fs-xs);
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--clr-accent);
}
.news-spotlight__title {
	font-size: var(--fs-2xl);
	line-height: 1.2;
}
.news-spotlight__title a { color: var(--clr-text); text-decoration: none; }
.news-spotlight__title a:hover { color: var(--clr-accent); }
.news-spotlight__excerpt {
	font-size: var(--fs-base);
	color: var(--clr-muted);
	line-height: 1.65;
}
.news-spotlight__meta {
	font-size: var(--fs-xs);
	color: var(--clr-muted);
}


/* =========================================================================
   SUBMIT EVENT CTA SECTION
   ========================================================================= */
.submit-cta {
	background: var(--grad-dark);
	padding-block: var(--sp-20);
	position: relative;
	overflow: hidden;
}
.submit-cta::before {
	content: '';
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse 60% 70% at 85% 50%, rgba(194,24,91,0.20) 0%, transparent 60%);
	pointer-events: none;
}
.submit-cta__inner {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--sp-16);
	align-items: start;
}
@media (max-width: 768px) { .submit-cta__inner { grid-template-columns: 1fr; gap: var(--sp-10); } }

.submit-cta__intro { }
.submit-cta__eyebrow {
	display: inline-block;
	font-size: var(--fs-xs);
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--clr-yellow);
	margin-bottom: var(--sp-4);
}
.submit-cta__title {
	color: var(--clr-text-light);
	margin-bottom: var(--sp-5);
}
.submit-cta__body {
	color: rgba(255,255,255,0.75);
	font-size: var(--fs-lg);
	line-height: 1.65;
}

/* Event Submission Form */
.pitm-form-wrap { }

.pitm-event-form {
	background: rgba(255,255,255,0.05);
	border: 1px solid rgba(255,255,255,0.12);
	border-radius: var(--radius-xl);
	padding: var(--sp-8);
	display: flex;
	flex-direction: column;
	gap: var(--sp-5);
}

.pitm-form__group {
	display: flex;
	flex-direction: column;
	gap: var(--sp-2);
}

.pitm-form__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--sp-5);
}
@media (max-width: 560px) { .pitm-form__row { grid-template-columns: 1fr; } }

.pitm-form__label {
	font-size: var(--fs-sm);
	font-weight: 600;
	color: rgba(255,255,255,0.85);
}

.pitm-required { color: var(--clr-yellow); margin-left: 2px; }

.pitm-form__input,
.pitm-form__textarea {
	width: 100%;
	background: rgba(255,255,255,0.08);
	border: 1px solid rgba(255,255,255,0.20);
	border-radius: var(--radius-md);
	padding: 0.7em 1em;
	font-family: var(--ff-body);
	font-size: var(--fs-sm);
	color: var(--clr-text-light);
	transition: border-color var(--dur-fast), background var(--dur-fast);
}
.pitm-form__input::placeholder,
.pitm-form__textarea::placeholder { color: rgba(255,255,255,0.35); }
.pitm-form__input:focus,
.pitm-form__textarea:focus {
	outline: none;
	border-color: var(--clr-accent);
	background: rgba(255,255,255,0.12);
}
.pitm-form__textarea { resize: vertical; min-height: 120px; }
.pitm-form__input[type="date"] { color-scheme: dark; }

.pitm-form__note {
	font-size: var(--fs-xs);
	color: rgba(255,255,255,0.45);
	margin: 0;
}

.pitm-form__submit {
	align-self: flex-start;
}

/* Success state */
.pitm-form-success {
	background: rgba(0,176,155,0.12);
	border: 1px solid rgba(0,176,155,0.30);
	border-radius: var(--radius-xl);
	padding: var(--sp-10);
	text-align: center;
	color: var(--clr-text-light);
}
.pitm-form-success__icon { font-size: 3rem; margin-bottom: var(--sp-4); display: block; }
.pitm-form-success h3 { color: var(--clr-text-light); margin-bottom: var(--sp-3); }
.pitm-form-success p { color: rgba(255,255,255,0.75); }


/* =========================================================================
   NEWSLETTER SECTION
   ========================================================================= */
.newsletter-section {
	background: var(--clr-alt);
	padding-block: var(--sp-20);
}

.newsletter-inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--sp-12);
	align-items: center;
}
@media (max-width: 680px) { .newsletter-inner { grid-template-columns: 1fr; } }

.newsletter-text__eyebrow {
	font-size: var(--fs-xs);
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--clr-accent);
	margin-bottom: var(--sp-3);
}
.newsletter-text__title { margin-bottom: var(--sp-4); }
.newsletter-text__body {
	font-size: var(--fs-lg);
	color: var(--clr-muted);
	line-height: 1.65;
}

.newsletter-embed {
	background: var(--clr-surface);
	border-radius: var(--radius-xl);
	padding: var(--sp-8);
	box-shadow: var(--shadow-md);
	min-height: 140px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	gap: var(--sp-3);
	border: 2px dashed var(--clr-border);
}
.newsletter-embed__placeholder {
	font-size: var(--fs-sm);
	color: var(--clr-muted);
}
.newsletter-embed__placeholder code {
	display: block;
	margin-top: var(--sp-2);
	background: #f3f4f6;
	padding: var(--sp-2) var(--sp-4);
	border-radius: var(--radius-sm);
	font-size: var(--fs-xs);
	color: var(--clr-accent);
}


/* =========================================================================
   PRIDE ARCHIVE CPT — Archive Card (used in listings)
   ========================================================================= */
.archive-card {
	background: var(--clr-surface);
	border-radius: var(--radius-xl);
	overflow: hidden;
	box-shadow: var(--shadow-md);
	border: 1px solid var(--clr-border);
	transition: transform var(--dur-mid), box-shadow var(--dur-mid);
	display: flex;
	flex-direction: column;
}
.archive-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }

.archive-card__thumb {
	aspect-ratio: 16/9;
	overflow: hidden;
	background: var(--grad-dark);
	position: relative;
}
.archive-card__thumb img { width: 100%; height: 100%; object-fit: cover; }
.archive-card__thumb-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 4rem;
	height: 100%;
}

.archive-card__year-badge {
	position: absolute;
	top: var(--sp-4);
	left: var(--sp-4);
}

.archive-card__body {
	padding: var(--sp-6);
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: var(--sp-3);
}
.archive-card__title { font-size: var(--fs-xl); }
.archive-card__title a { color: var(--clr-text); text-decoration: none; }
.archive-card__title a:hover { color: var(--clr-accent); }
.archive-card__meta { font-size: var(--fs-sm); color: var(--clr-muted); }
.archive-card__link {
	margin-top: auto;
	font-weight: 700;
	color: var(--clr-accent);
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: var(--sp-2);
}
.archive-card__link:hover { gap: var(--sp-3); color: var(--clr-accent-h); }


/* =========================================================================
   PRIDE ARCHIVE CPT — Single Post Template
   ========================================================================= */
.archive-single { }

.archive-single__hero {
	position: relative;
	background: var(--grad-dark);
	min-height: 380px;
	display: flex;
	align-items: flex-end;
	overflow: hidden;
}
.archive-single__hero-img {
	position: absolute;
	inset: 0;
}
.archive-single__hero-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.45;
}
.archive-single__hero-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(26,18,40,0.95) 0%, rgba(26,18,40,0.20) 100%);
}
.archive-single__hero-content {
	position: relative;
	z-index: 1;
	padding: var(--sp-12) 0;
	width: 100%;
}
.archive-single__year {
	display: inline-block;
	background: var(--clr-yellow);
	color: var(--clr-dark);
	font-size: var(--fs-sm);
	font-weight: 800;
	letter-spacing: 0.08em;
	padding: 0.3em 0.9em;
	border-radius: var(--radius-pill);
	margin-bottom: var(--sp-4);
}
.archive-single__title {
	color: var(--clr-text-light);
	font-size: var(--fs-3xl);
	margin-bottom: 0;
}

/* Meta bar */
.archive-single__meta-bar {
	background: var(--clr-dark);
	padding-block: var(--sp-6);
}
.archive-single__meta-bar-inner {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-6) var(--sp-10);
}
.archive-meta-item {
	display: flex;
	flex-direction: column;
	gap: var(--sp-1);
}
.archive-meta-item__label {
	font-size: var(--fs-xs);
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.45);
}
.archive-meta-item__value {
	font-size: var(--fs-base);
	color: var(--clr-text-light);
	font-weight: 500;
}

/* Content */
.archive-single__content-wrap {
	padding-block: var(--sp-16);
}
.archive-single__entry {
	max-width: 72ch;
	margin-inline: auto;
}

/* Gallery */
.archive-gallery {
	padding-block: var(--sp-12);
	border-top: 1px solid var(--clr-border);
	margin-top: var(--sp-8);
}
.archive-gallery__title {
	font-size: var(--fs-2xl);
	margin-bottom: var(--sp-8);
}
.archive-gallery__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr));
	gap: var(--sp-3);
}
.archive-gallery__item {
	aspect-ratio: 1;
	border-radius: var(--radius-md);
	overflow: hidden;
	background: var(--clr-surface-alt, #f0eeeb);
}
.archive-gallery__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s var(--ease);
}
.archive-gallery__item:hover img { transform: scale(1.05); }


/* =========================================================================
   BLOG — Posts (home.php, archive.php, single.php)
   ========================================================================= */

/* Post Card (listing) */
.post-card {
	background: var(--clr-surface);
	border-radius: var(--radius-lg);
	overflow: hidden;
	box-shadow: var(--shadow-sm);
	border: 1px solid var(--clr-border);
	display: flex;
	flex-direction: column;
	transition: transform var(--dur-mid), box-shadow var(--dur-mid);
}
.post-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }

.post-card__thumb {
	aspect-ratio: 16/9;
	overflow: hidden;
}
.post-card__thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s; }
.post-card:hover .post-card__thumb img { transform: scale(1.04); }
.post-card__thumb-placeholder {
	background: linear-gradient(135deg, var(--clr-alt), #ffc0cb);
	width: 100%;
	aspect-ratio: 16/9;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 2.5rem;
}

.post-card__body {
	padding: var(--sp-6);
	display: flex;
	flex-direction: column;
	gap: var(--sp-3);
	flex: 1;
}
.post-card__meta {
	display: flex;
	align-items: center;
	gap: var(--sp-3);
	flex-wrap: wrap;
}
.post-card__date {
	font-size: var(--fs-xs);
	color: var(--clr-muted);
	font-weight: 600;
}
.post-card__cat {
	font-size: var(--fs-xs);
	font-weight: 700;
	color: var(--clr-accent);
	background: var(--clr-alt);
	padding: 0.15em 0.6em;
	border-radius: var(--radius-sm);
}
.post-card__title { font-size: var(--fs-xl); line-height: 1.25; }
.post-card__title a { color: var(--clr-text); text-decoration: none; }
.post-card__title a:hover { color: var(--clr-accent); }
.post-card__excerpt { font-size: var(--fs-sm); color: var(--clr-muted); flex: 1; }
.post-card__link {
	font-size: var(--fs-sm); font-weight: 700; color: var(--clr-accent);
	text-decoration: none; display: inline-flex; align-items: center; gap: var(--sp-2);
	margin-top: auto; transition: gap var(--dur-fast);
}
.post-card__link:hover { gap: var(--sp-3); }

/* Posts grid */
.posts-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: var(--sp-6); }

/* Single Post */
.single-post__hero { padding-block: var(--sp-16); background: var(--grad-dark); }
.single-post__hero-inner { text-align: center; }
.single-post__category {
	display: inline-block;
	background: rgba(194,24,91,0.15);
	color: var(--clr-accent-2);
	border-radius: var(--radius-pill);
	padding: 0.3em 1em;
	font-size: var(--fs-xs);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin-bottom: var(--sp-4);
}
.single-post__title { color: var(--clr-text-light); max-width: 22ch; margin-inline: auto; }
.single-post__meta { color: rgba(255,255,255,0.55); font-size: var(--fs-sm); margin-top: var(--sp-5); }

.single-post__thumb { margin-bottom: var(--sp-10); border-radius: var(--radius-xl); overflow: hidden; box-shadow: var(--shadow-xl); }
.single-post__thumb img { width: 100%; height: auto; max-height: 480px; object-fit: cover; }

.single-post__body {
	max-width: 72ch;
	margin-inline: auto;
	padding-block: var(--sp-12);
}

.post-nav {
	display: flex;
	justify-content: space-between;
	gap: var(--sp-4);
	flex-wrap: wrap;
	padding-block: var(--sp-8);
	border-top: 1px solid var(--clr-border);
}
.post-nav a { font-weight: 600; font-size: var(--fs-sm); }

/* Blog page header */
.archive-header { padding-block: var(--sp-16); background: var(--grad-dark); text-align: center; }
.archive-header__title { color: var(--clr-text-light); }
.archive-header__desc { color: rgba(255,255,255,0.65); max-width: 44ch; margin-inline: auto; margin-top: var(--sp-4); font-size: var(--fs-lg); }

/* Pagination */
.pagination {
	display: flex;
	justify-content: center;
	gap: var(--sp-2);
	margin-top: var(--sp-12);
	flex-wrap: wrap;
}
.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 var(--sp-3);
	border-radius: var(--radius-md);
	font-weight: 600;
	font-size: var(--fs-sm);
	text-decoration: none;
	background: var(--clr-surface);
	color: var(--clr-text);
	border: 1px solid var(--clr-border);
	transition: background var(--dur-fast), color var(--dur-fast);
}
.pagination .page-numbers.current,
.pagination .page-numbers:hover {
	background: var(--clr-accent);
	color: var(--clr-text-light);
	border-color: var(--clr-accent);
}


/* =========================================================================
   GENERIC PAGE TEMPLATE
   ========================================================================= */
.page-single__hero { padding-block: var(--sp-16); background: var(--grad-dark); text-align: center; }
.page-single__hero-title { color: var(--clr-text-light); }
.page-single__content { padding-block: var(--sp-16); }
.page-single__content .entry-content { max-width: 72ch; margin-inline: auto; }


/* =========================================================================
   SINGLE EVENT TEMPLATE
   ========================================================================= */
.single-event__hero { padding-block: var(--sp-16); background: var(--grad-dark); }
.single-event__kicker {
	font-size: var(--fs-xs); font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
	color: var(--clr-yellow); margin-bottom: var(--sp-4); display: block;
}
.single-event__title { color: var(--clr-text-light); }

.single-event__meta-panel {
	background: var(--clr-surface);
	border-radius: var(--radius-xl);
	border: 1px solid var(--clr-border);
	padding: var(--sp-8);
	margin-top: var(--sp-8);
	box-shadow: var(--shadow-md);
}
.single-event__meta-list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: var(--sp-6);
}
.single-event__meta-item {
	display: flex;
	flex-direction: column;
	gap: var(--sp-1);
}
.single-event__meta-label {
	font-size: var(--fs-xs); font-weight: 700; letter-spacing: 0.08em;
	text-transform: uppercase; color: var(--clr-muted);
}
.single-event__meta-value { font-size: var(--fs-base); font-weight: 600; color: var(--clr-text); }

.single-event__organizer-email a { color: var(--clr-accent); }

.single-event__body {
	max-width: 72ch;
	margin-inline: auto;
	padding-block: var(--sp-12);
}

.single-event__thumb { border-radius: var(--radius-xl); overflow: hidden; margin-bottom: var(--sp-8); box-shadow: var(--shadow-lg); }
.single-event__thumb img { width: 100%; max-height: 440px; object-fit: cover; }

.back-link {
	display: inline-flex;
	align-items: center;
	gap: var(--sp-2);
	font-size: var(--fs-sm);
	font-weight: 600;
	color: var(--clr-muted);
	text-decoration: none;
	transition: color var(--dur-fast), gap var(--dur-fast);
}
.back-link:hover { color: var(--clr-accent); gap: var(--sp-3); }


/* =========================================================================
   SKIP LINK (Accessibility)
   ========================================================================= */
.skip-link {
	position: absolute;
	top: -100%;
	left: var(--sp-4);
	z-index: 999;
	background: var(--clr-yellow);
	color: var(--clr-dark);
	padding: var(--sp-3) var(--sp-5);
	border-radius: var(--radius-md);
	font-weight: 700;
	font-size: var(--fs-sm);
	text-decoration: none;
	transition: top var(--dur-fast);
}
.skip-link:focus { top: var(--sp-4); }


/* =========================================================================
   UTILITY CLASSES
   ========================================================================= */
.text-center  { text-align: center; }
.text-muted   { color: var(--clr-muted); }
.text-light   { color: var(--clr-text-light); }
.text-accent  { color: var(--clr-accent); }
.mt-auto      { margin-top: auto; }
.visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0,0,0,0);
	white-space: nowrap;
	border: 0;
}


/* =========================================================================
   RESPONSIVE HELPERS
   ========================================================================= */
@media (max-width: 480px) {
	.hero__actions { flex-direction: column; align-items: center; }
	.hero__archive-link { text-align: center; }
	.site-footer__grid { gap: var(--sp-8); }
	.archive-single__meta-bar-inner { flex-direction: column; gap: var(--sp-4); }
	.news-spotlight__body { padding: var(--sp-6); }
}
