/*
Theme Name: Kickoff
Theme URI:  https://example.com/kickoff
Author:     Kickoff Team
Description: A football / soccer event theme built on the Underscores (_s) foundation.
Version:    1.0.0
Text Domain: kickoff
*/

/* ============================================================
   Design tokens — Midnight Arena palette
   ============================================================ */
:root {
	--color-bg:          #0d1117;
	--color-surface:     #161b22;
	--color-surface-2:   #1c2330;
	--color-border:      #2d3748;
	--color-text:        #e6edf3;
	--color-text-muted:  #8b949e;
	--color-accent:      #39d353;   /* neon green */
	--color-accent-dark: #2ea043;
	--color-white:       #ffffff;

	--radius-sm:  4px;
	--radius-md:  8px;
	--radius-lg: 12px;

	--font-sans: 'Inter', system-ui, -apple-system, sans-serif;
}

/* ============================================================
   Reset / base
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { font-size: 16px; scroll-behavior: smooth; }

body {
	background: var(--color-bg);
	color: var(--color-text);
	font-family: var(--font-sans);
	line-height: 1.6;
}

a { color: inherit; text-decoration: none; }
a:hover { color: var(--color-accent); }
img { max-width: 100%; height: auto; display: block; }
ul, ol { list-style: none; }

/* ============================================================
   Layout helpers
   ============================================================ */
.container {
	max-width: 1200px;
	margin-inline: auto;
	padding-inline: 1.5rem;
}

/* ============================================================
   Buttons
   ============================================================ */
.btn {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	padding: .55rem 1.2rem;
	border-radius: var(--radius-sm);
	font-size: .875rem;
	font-weight: 600;
	cursor: pointer;
	transition: background .2s, color .2s, border-color .2s;
	border: 1px solid transparent;
	white-space: nowrap;
}
.btn--accent {
	background: var(--color-accent);
	color: #000;
	border-color: var(--color-accent);
}
.btn--accent:hover {
	background: var(--color-accent-dark);
	border-color: var(--color-accent-dark);
	color: #000;
}
.btn--secondary {
	background: var(--color-surface-2);
	color: var(--color-text);
	border-color: var(--color-border);
}
.btn--secondary:hover {
	background: var(--color-surface);
	color: var(--color-accent);
	border-color: var(--color-accent);
}
.btn--ghost {
	background: transparent;
	color: var(--color-text-muted);
	border-color: var(--color-border);
}
.btn--ghost:hover {
	color: var(--color-text);
	border-color: var(--color-text-muted);
}
.btn--primary {
	background: var(--color-accent);
	color: #000;
}
.btn--primary:hover { background: var(--color-accent-dark); color: #000; }

/* ============================================================
   Section headings
   ============================================================ */
.section-heading {
	display: flex;
	align-items: baseline;
	gap: 1rem;
	font-size: 1.125rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: var(--color-text);
	margin-bottom: 1.25rem;
}
.section-heading__link {
	margin-left: auto;
	font-size: .8rem;
	font-weight: 500;
	color: var(--color-accent);
	text-transform: none;
	letter-spacing: 0;
}
.section-heading__link:hover { text-decoration: underline; }

/* ============================================================
   Shared "no content" note
   ============================================================ */
.fp-no-content {
	color: var(--color-text-muted);
	font-size: .9rem;
	padding: 1.5rem 0;
}

/* ============================================================
   1. Hero
   ============================================================ */
.fp-hero {
	position: relative;
	min-height: 520px;
	display: flex;
	align-items: center;
	background:
		linear-gradient(180deg, rgba(13,17,23,.55) 0%, rgba(13,17,23,.9) 70%),
		url('') center / cover no-repeat;
	/* background image can be set via the Customizer or child theme */
	overflow: hidden;
}

.fp-hero__overlay {
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse 80% 60% at 50% 40%, rgba(57,211,83,.08) 0%, transparent 70%);
	pointer-events: none;
}

.fp-hero__inner {
	position: relative;
	z-index: 1;
	text-align: center;
	padding-block: 5rem 4rem;
}

.fp-hero__title {
	font-size: clamp(2.5rem, 6vw, 4.5rem);
	font-weight: 900;
	line-height: 1.05;
	text-transform: uppercase;
	letter-spacing: .02em;
	color: var(--color-white);
}

.fp-hero__title--accent {
	color: var(--color-accent);
	display: block;
}

/* ── Search / filter form ─────────────────────────────────── */
.fp-search {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: .75rem;
	justify-content: center;
	margin-top: 2.5rem;
	background: rgba(22,27,34,.85);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	padding: 1rem 1.25rem;
	max-width: 680px;
	margin-inline: auto;
	backdrop-filter: blur(8px);
}

.fp-search__field {
	flex: 1 1 180px;
	display: flex;
	flex-direction: column;
	gap: .35rem;
}

.fp-search__label {
	display: flex;
	align-items: center;
	gap: .4rem;
	font-size: .75rem;
	font-weight: 600;
	color: var(--color-text-muted);
	text-transform: uppercase;
	letter-spacing: .06em;
}

.fp-search__icon { color: var(--color-accent); flex-shrink: 0; }

.fp-search__select {
	background: var(--color-bg);
	color: var(--color-text);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	padding: .5rem .75rem;
	font-size: .9rem;
	font-family: inherit;
	cursor: pointer;
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238b949e' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right .6rem center;
	padding-right: 2rem;
}

.fp-search__select:focus {
	outline: 2px solid var(--color-accent);
	outline-offset: 1px;
}

.fp-search__btn {
	flex-shrink: 0;
	align-self: flex-end;
	border: none;
}

/* ============================================================
   2. Elite Clubs
   ============================================================ */
.fp-clubs {
	padding-block: 2.5rem;
	border-bottom: 1px solid var(--color-border);
}

.fp-clubs__list {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
}

.fp-clubs__link {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .4rem;
	padding: .75rem 1rem;
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	transition: border-color .2s, background .2s;
	min-width: 80px;
	text-align: center;
}

.fp-clubs__link:hover {
	border-color: var(--color-accent);
	background: var(--color-surface-2);
	color: var(--color-accent);
}

.fp-clubs__logo {
	width: 40px;
	height: 40px;
	object-fit: contain;
}

.fp-clubs__logo-placeholder {
	width: 40px;
	height: 40px;
	background: var(--color-surface-2);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: .75rem;
	font-weight: 700;
	color: var(--color-accent);
	text-transform: uppercase;
	border: 1px solid var(--color-border);
}

.fp-clubs__name {
	font-size: .7rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--color-text-muted);
	line-height: 1.2;
}

/* ============================================================
   3. Today's Fixtures
   ============================================================ */
.fp-fixtures {
	padding-block: 2.5rem;
	border-bottom: 1px solid var(--color-border);
}

.fp-fixtures__scroll-wrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	padding-bottom: .5rem;
}

.fp-fixtures__list {
	display: flex;
	gap: 1rem;
	min-width: max-content;
}

.fp-fixture-card {
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	padding: 1rem 1.25rem;
	min-width: 220px;
	display: flex;
	flex-direction: column;
	gap: .6rem;
	transition: border-color .2s;
}

.fp-fixture-card:hover { border-color: var(--color-accent); }

.fp-fixture-card__stage {
	font-size: .65rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--color-accent);
}

.fp-fixture-card__matchup {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .5rem;
}

.fp-fixture-card__team {
	font-size: .875rem;
	font-weight: 700;
	color: var(--color-text);
	flex: 1;
	text-align: center;
}

.fp-fixture-card__sep {
	font-size: .8rem;
	font-weight: 700;
	color: var(--color-accent);
	flex-shrink: 0;
	padding-inline: .25rem;
}

.fp-fixture-card__vs {
	color: var(--color-text-muted);
	font-size: .75rem;
}

.fp-fixture-card__venue {
	font-size: .75rem;
	color: var(--color-text-muted);
	text-align: center;
}

.fp-fixture-card__actions {
	display: flex;
	gap: .5rem;
	margin-top: auto;
}

.fp-fixture-card__actions .btn {
	flex: 1;
	justify-content: center;
	font-size: .75rem;
	padding: .4rem .6rem;
}

/* ============================================================
   4. Upcoming Events
   ============================================================ */
.fp-upcoming {
	padding-block: 2.5rem 4rem;
}

.fp-upcoming__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 1.25rem;
}

.fp-event-card {
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	position: relative;
	transition: border-color .2s, transform .2s;
}

.fp-event-card:hover {
	border-color: var(--color-accent);
	transform: translateY(-2px);
}

.fp-event-card__badge {
	position: absolute;
	top: .75rem;
	left: .75rem;
	background: var(--color-accent);
	color: #000;
	font-size: .65rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .08em;
	padding: .25rem .6rem;
	border-radius: var(--radius-sm);
	z-index: 1;
}

.fp-event-card__thumb {
	aspect-ratio: 16/9;
	overflow: hidden;
	background: var(--color-surface-2);
}

.fp-event-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .3s;
}

.fp-event-card:hover .fp-event-card__thumb img { transform: scale(1.04); }

.fp-event-card__thumb--placeholder {
	background: linear-gradient(135deg, var(--color-surface-2) 0%, var(--color-border) 100%);
}

.fp-event-card__body {
	padding: 1rem 1.25rem;
	display: flex;
	flex-direction: column;
	gap: .5rem;
	flex: 1;
}

.fp-event-card__date {
	font-size: .75rem;
	font-weight: 600;
	color: var(--color-accent);
	text-transform: uppercase;
	letter-spacing: .04em;
}

.fp-event-card__title {
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--color-text);
}

.fp-event-card__title a:hover { color: var(--color-accent); }

.fp-event-card__teams {
	font-size: .85rem;
	color: var(--color-text-muted);
}

.fp-event-card__footer {
	display: flex;
	gap: .5rem;
	margin-top: auto;
	padding-top: .5rem;
}

.fp-event-card__footer .btn {
	flex: 1;
	justify-content: center;
	font-size: .8rem;
}

/* ============================================================
   Responsive tweaks
   ============================================================ */
@media (max-width: 640px) {
	.fp-search { flex-direction: column; }
	.fp-search__field { flex: 1 1 100%; }
	.fp-upcoming__grid { grid-template-columns: 1fr; }
	.fp-clubs__list { flex-wrap: nowrap; overflow-x: auto; padding-bottom: .5rem; }
}
