/*
 * AFO Features — public styles.
 *
 * Colours are the live Elementor kit tokens for this site (#27587C primary,
 * #7A9E2A secondary, #F1BE3A accent) with the kit's own CSS variables
 * preferred where Elementor has set them, so the page follows the site if the
 * kit is ever changed.
 */

.afo-ft {
	--aft-blue: var(--e-global-color-primary, #27587C);
	--aft-green: var(--e-global-color-secondary, #7A9E2A);
	--aft-gold: var(--e-global-color-accent, #F1BE3A);
	--aft-ink: #21252b;
	--aft-mute: #5a6472;
	--aft-line: #e2e6eb;
	--aft-bg: #f6f8fa;
	--aft-radius: 10px;
	--aft-shadow: 0 1px 2px rgba(16, 32, 48, .06), 0 8px 24px rgba(16, 32, 48, .06);

	max-width: 1180px;
	margin-inline: auto;
	padding: 0 20px;
	color: var(--aft-ink);
	font-size: 16px;
	line-height: 1.6;
}

.afo-ft *,
.afo-ft *::before,
.afo-ft *::after { box-sizing: border-box; }

/*
 * The theme and Elementor both set display on buttons and articles, which
 * beats the user agent rule for [hidden]. Without this the reset button and
 * the filtered-out cards stay on screen.
 */
.afo-ft [hidden] { display: none !important; }

.afo-ft-ic {
	width: 1em;
	height: 1em;
	fill: currentColor;
	flex: 0 0 auto;
	vertical-align: -.125em;
}

/* ---------- Intro ---------- */

.afo-ft-intro { max-width: 760px; margin: 0 0 34px; }

.afo-ft-eyebrow {
	margin: 0 0 8px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--aft-green);
}

.afo-ft-title,
.afo-ft-h1 {
	margin: 0 0 14px;
	font-size: clamp(28px, 4vw, 42px);
	line-height: 1.15;
	font-weight: 700;
	color: var(--aft-blue);
}

.afo-ft-lede { margin: 0; font-size: 17px; color: var(--aft-mute); }

/* ---------- Filters ---------- */

.afo-ft-filters {
	background: var(--aft-bg);
	border: 1px solid var(--aft-line);
	border-radius: var(--aft-radius);
	padding: 16px 18px 6px;
	margin-bottom: 22px;
}

.afo-ft-filterrow {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding-bottom: 12px;
	flex-wrap: wrap;
}

.afo-ft-filterrow + .afo-ft-filterrow { border-top: 1px solid var(--aft-line); padding-top: 12px; }

.afo-ft-flabel {
	flex: 0 0 48px;
	padding-top: 7px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--aft-mute);
}

.afo-ft-chips { display: flex; flex-wrap: wrap; gap: 7px; flex: 1 1 auto; }

.afo-ft-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 12px;
	border: 1px solid var(--aft-line);
	border-radius: 999px;
	background: #fff;
	color: var(--aft-ink);
	font-size: 13.5px;
	font-weight: 500;
	line-height: 1.3;
	text-decoration: none;
	cursor: pointer;
	transition: background .15s, border-color .15s, color .15s;
}

.afo-ft-chip:hover { border-color: var(--aft-blue); color: var(--aft-blue); }

.afo-ft-chip.is-on {
	background: var(--aft-blue);
	border-color: var(--aft-blue);
	color: #fff;
}

.afo-ft-chip.is-on:hover { color: #fff; }

.afo-ft-chip.is-empty { opacity: .36; }

.afo-ft-n {
	font-size: 11.5px;
	font-weight: 700;
	opacity: .7;
	font-variant-numeric: tabular-nums;
}

.afo-ft-filterrow--tools { align-items: center; gap: 10px; }

.afo-ft-search {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	flex: 1 1 260px;
	max-width: 400px;
	padding: 0 12px;
	background: #fff;
	border: 1px solid var(--aft-line);
	border-radius: 999px;
	color: var(--aft-mute);
}

.afo-ft-search input {
	flex: 1 1 auto;
	min-width: 0;
	padding: 9px 0;
	border: 0;
	outline: none;
	background: none;
	font: inherit;
	font-size: 14px;
	color: var(--aft-ink);
}

.afo-ft-select select {
	padding: 9px 12px;
	border: 1px solid var(--aft-line);
	border-radius: 999px;
	background: #fff;
	font: inherit;
	font-size: 14px;
	color: var(--aft-ink);
	max-width: 240px;
}

.afo-ft-reset,
.afo-ft-reset-inline {
	-webkit-appearance: none;
	appearance: none;
	padding: 8px 14px;
	text-transform: none;
	letter-spacing: normal;
	border: 1px solid var(--aft-line);
	border-radius: 999px;
	background: #fff;
	font: inherit;
	font-size: 13.5px;
	color: var(--aft-mute);
	cursor: pointer;
}

.afo-ft-reset:hover,
.afo-ft-reset-inline:hover { border-color: var(--aft-blue); color: var(--aft-blue); }

.afo-ft-count {
	margin: 0 0 16px;
	font-size: 13.5px;
	color: var(--aft-mute);
	min-height: 20px;
}

/* ---------- Grid ---------- */

.afo-ft-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(285px, 1fr));
	gap: 24px;
}

.afo-ft-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--aft-line);
	border-radius: var(--aft-radius);
	overflow: hidden;
	transition: box-shadow .2s, transform .2s;
}

.afo-ft-card:hover { box-shadow: var(--aft-shadow); transform: translateY(-2px); }

.afo-ft-card[hidden] { display: none; }

.afo-ft-card.is-pinned { border-color: var(--aft-gold); }

.afo-ft-media {
	position: relative;
	display: block;
	aspect-ratio: 16 / 9;
	background: #0f1b24;
	overflow: hidden;
	text-decoration: none;
}

.afo-ft-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .35s ease;
}

.afo-ft-card:hover .afo-ft-media img { transform: scale(1.035); }

.afo-ft-media-ph {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	color: rgba(255, 255, 255, .35);
	background: linear-gradient(135deg, var(--aft-blue), #16303f);
}

.afo-ft-media-ph .afo-ft-ic { width: 42px; height: 42px; }

.afo-ft-playbadge {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	background: rgba(12, 24, 32, .22);
	transition: background .2s;
}

.afo-ft-playbadge .afo-ft-ic {
	width: 54px;
	height: 54px;
	padding: 13px;
	border-radius: 50%;
	background: rgba(39, 88, 124, .92);
	box-shadow: 0 2px 14px rgba(0, 0, 0, .3);
}

.afo-ft-card:hover .afo-ft-playbadge { background: rgba(12, 24, 32, .08); }

.afo-ft-duration {
	position: absolute;
	right: 8px;
	bottom: 8px;
	padding: 2px 7px;
	border-radius: 4px;
	background: rgba(8, 16, 22, .82);
	color: #fff;
	font-size: 12px;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}

.afo-ft-body { display: flex; flex-direction: column; flex: 1 1 auto; padding: 16px 17px 17px; }

.afo-ft-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 12px;
	margin: 0 0 10px;
	font-size: 12.5px;
}

.afo-ft-badge {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 3px 9px;
	border-radius: 4px;
	background: rgba(39, 88, 124, .09);
	color: var(--aft-blue);
	font-weight: 600;
	letter-spacing: .01em;
}

.afo-ft-date { color: var(--aft-mute); font-variant-numeric: tabular-nums; }

.afo-ft-cardtitle { margin: 0 0 7px; font-size: 17.5px; line-height: 1.32; font-weight: 650; }

.afo-ft-cardtitle a { color: var(--aft-ink); text-decoration: none; }
.afo-ft-cardtitle a:hover { color: var(--aft-blue); text-decoration: underline; text-underline-offset: 2px; }

.afo-ft-outlet {
	margin: 0 0 9px;
	font-size: 13.5px;
	font-weight: 600;
	color: var(--aft-green);
}

.afo-ft-excerpt { margin: 0 0 10px; font-size: 14.5px; color: var(--aft-mute); }

.afo-ft-people { margin: 0 0 12px; font-size: 13px; color: var(--aft-mute); font-style: italic; }

.afo-ft-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: auto 0 0;
	padding-top: 4px;
}

.afo-ft-btn {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 9px 15px;
	border: 1px solid var(--aft-blue);
	border-radius: 6px;
	background: var(--aft-blue);
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	transition: background .15s, color .15s;
}

.afo-ft-btn:hover { background: #1d4461; color: #fff; }

.afo-ft-btn--ghost { background: #fff; color: var(--aft-blue); border-color: var(--aft-line); }
.afo-ft-btn--ghost:hover { background: #fff; border-color: var(--aft-blue); color: var(--aft-blue); }

.afo-ft-btn--big { padding: 13px 24px; font-size: 16px; }

.afo-ft-noresults, .afo-ft-empty {
	margin: 28px 0;
	padding: 26px;
	background: var(--aft-bg);
	border: 1px dashed var(--aft-line);
	border-radius: var(--aft-radius);
	text-align: center;
	color: var(--aft-mute);
}

/* ---------- Single feature ---------- */

.afo-ft-single, .afo-ft-archive { padding-block: 40px 56px; }

.afo-ft-crumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 22px;
	font-size: 13.5px;
	color: var(--aft-mute);
}

.afo-ft-crumbs a { color: var(--aft-mute); text-decoration: none; }
.afo-ft-crumbs a:hover { color: var(--aft-blue); text-decoration: underline; }

.afo-ft-article { max-width: 780px; }

.afo-ft-head { margin-bottom: 24px; }

.afo-ft-published { margin: 0; font-size: 16px; color: var(--aft-mute); }
.afo-ft-published strong { color: var(--aft-green); }

.afo-ft-embed {
	position: relative;
	aspect-ratio: 16 / 9;
	margin: 0 0 26px;
	border-radius: var(--aft-radius);
	overflow: hidden;
	background: #0f1b24;
}

.afo-ft-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

.afo-ft-hero { margin: 0 0 26px; }
.afo-ft-hero img { width: 100%; height: auto; border-radius: var(--aft-radius); display: block; }

.afo-ft-primary-action {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin: 0 0 26px;
}

.afo-ft-onhost { font-size: 14px; color: var(--aft-mute); }

.afo-ft-content { font-size: 17px; }
.afo-ft-content p { margin: 0 0 18px; }
.afo-ft-content a { color: var(--aft-blue); }

.afo-ft-facts {
	display: grid;
	grid-template-columns: minmax(110px, auto) 1fr;
	gap: 10px 20px;
	margin: 28px 0;
	padding: 20px 22px;
	background: var(--aft-bg);
	border-radius: var(--aft-radius);
	font-size: 14.5px;
}

.afo-ft-facts dt { margin: 0; font-weight: 700; color: var(--aft-blue); }
.afo-ft-facts dd { margin: 0; color: var(--aft-mute); }

.afo-ft-backlink { margin: 30px 0 0; font-size: 15px; }
.afo-ft-backlink a { color: var(--aft-blue); font-weight: 600; }

.afo-ft-related { margin-top: 54px; padding-top: 34px; border-top: 1px solid var(--aft-line); }

.afo-ft-relatedtitle {
	margin: 0 0 22px;
	font-size: 22px;
	font-weight: 700;
	color: var(--aft-blue);
}

.afo-ft-pagination { margin-top: 34px; display: flex; gap: 8px; flex-wrap: wrap; }

.afo-ft-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 38px;
	padding: 8px 12px;
	border: 1px solid var(--aft-line);
	border-radius: 6px;
	color: var(--aft-ink);
	text-decoration: none;
	font-size: 14px;
}

.afo-ft-pagination .page-numbers.current {
	background: var(--aft-blue);
	border-color: var(--aft-blue);
	color: #fff;
}

/* ---------- Narrow screens ---------- */

@media (max-width: 640px) {
	.afo-ft { padding: 0 16px; }
	.afo-ft-grid { grid-template-columns: 1fr; gap: 18px; }
	.afo-ft-flabel { flex-basis: 100%; padding-top: 0; }
	.afo-ft-filterrow { gap: 8px; }
	.afo-ft-search, .afo-ft-select select { max-width: none; width: 100%; }
	.afo-ft-select { width: 100%; }
	.afo-ft-facts { grid-template-columns: 1fr; gap: 4px 0; }
	.afo-ft-facts dd { margin-bottom: 10px; }
}

@media (prefers-reduced-motion: reduce) {
	.afo-ft-card, .afo-ft-media img { transition: none; }
	.afo-ft-card:hover { transform: none; }
	.afo-ft-card:hover .afo-ft-media img { transform: none; }
}
