/**
 * Foodbank Schedule Widget styles.
 * All colours/spacing are exposed as CSS variables on .fbw-widget so you can
 * override them from your theme (e.g. in a child theme stylesheet) without
 * touching this file.
 */

.fbw-widget {
	--fbw-accent: #004e43;       /* primary brand colour, e.g. current-state accent */
	--fbw-accent-soft: #e6f3ef;  /* light tint of the accent, used for backgrounds */
	--fbw-upcoming: #F2644C;     /* muted tone for "upcoming" (not open yet) state */
	--fbw-text: #1f2a24;
	--fbw-text-muted: #5b675f;
	--fbw-border: #d9e4df;
	--fbw-bg: #ffffff;
	--fbw-radius: 12px;
	--fbw-font: inherit;

	font-family: var(--fbw-font);
	width: 100%;
	color: var(--fbw-text);
}

.fbw-card {
	display: grid;
	grid-template-columns: 1fr auto;
	grid-template-areas:
		"main countdown"
		"voucher voucher";
	align-items: center;
	column-gap: 2rem;
	row-gap: 0.75rem;
	background: var(--fbw-bg);
	border: 1px solid var(--fbw-border);
	border-radius: var(--fbw-radius);
	padding: 1.75rem 2rem;
	box-shadow: 0 1px 3px rgba(20, 30, 25, 0.06);
	border-left: 5px solid var(--fbw-accent);
	transition: border-color 0.3s ease;
}

.fbw-widget.fbw-state-current .fbw-card {
	border-left-color: var(--fbw-accent);
}

.fbw-main {
	grid-area: main;
	min-width: 0;
}

.fbw-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 1.25rem;
}

.fbw-eyebrow {
	margin: 0 0 0.35rem;
	font-size: 1.2rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--fbw-upcoming);
}

.fbw-widget.fbw-state-current .fbw-eyebrow {
	color: var(--fbw-accent);
}

.fbw-title {
	margin: 0 0 0.5rem;
	font-size: 1.5rem;
	line-height: 1.3;
	font-weight: 700;
}

.fbw-day {
	margin: 0 0 0.25rem;
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--fbw-accent);
}

.fbw-widget.fbw-state-upcoming .fbw-day {
	color: var(--fbw-accent);
}

.fbw-location,
.fbw-hours {
	margin: 0 0 0.25rem;
	font-size: 1.1rem;
	color: var(--fbw-text-muted);
}

.fbw-notes {
	margin-top: 0.75rem;
	padding: 0.6rem 0.75rem;
	background: var(--fbw-accent-soft);
	border-radius: calc(var(--fbw-radius) / 2);
}

.fbw-notes-text {
	margin: 0;
	font-size: 1rem;
	color: var(--fbw-text);
}

.fbw-countdown {
	grid-area: countdown;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5rem;
	padding: 0.9rem 1.5rem;
	background: var(--fbw-accent);
	border-radius: calc(var(--fbw-radius) / 2);
	color: #fff;
}

.fbw-countdown-label {
	font-size: 1rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	opacity: 0.85;
	font-weight: bold;
}

.fbw-countdown-timer {
	display: flex;
	align-items: flex-start;
	gap: 0.65rem;
}

.fbw-countdown-segment {
	display: flex;
	flex-direction: column;
	align-items: center;
	position: relative;
	min-width: 2.4em;
}

.fbw-countdown-segment + .fbw-countdown-segment::before {
	content: ":";
	position: absolute;
	left: -0.55rem;
	top: 0;
	font-size: 1.4rem;
	font-weight: 700;
	opacity: 0.6;
}

.fbw-countdown-num {
	font-size: 1.4rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	line-height: 1.1;
}

.fbw-countdown-unit {
	font-size: 0.65rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	opacity: 0.8;
	margin-top: 0.1rem;
}

.fbw-voucher-note {
	margin: 1rem 0 0;
	padding-top: 0.85rem;
	border-top: 1px solid var(--fbw-border);
	font-size: 1rem;
	color: var(--fbw-text-muted);
	line-height: 1.4;
}

.fbw-voucher-link {
	color: var(--fbw-upcoming);
	font-weight: 600;
	text-decoration: underline;
}

.fbw-voucher-link:hover,
.fbw-voucher-link:focus-visible {
	text-decoration: none;
}

.fbw-empty {
	padding: 1.25rem;
	border: 1px dashed var(--fbw-border);
	border-radius: var(--fbw-radius);
	color: var(--fbw-text-muted);
	font-size: 0.9rem;
}

.fbw-loading {
	padding: 1.25rem;
	color: var(--fbw-text-muted);
	font-size: 0.9rem;
}

@media (max-width: 700px) {
	.fbw-card {
		grid-template-columns: 1fr;
		grid-template-areas:
			"main"
			"countdown"
			"voucher";
	}

	.fbw-countdown {
		width: 100%;
	}
}

@media (max-width: 480px) {
	.fbw-widget {
		max-width: 100%;
	}

	.fbw-card {
		padding: 1.15rem;
	}

	.fbw-countdown-num {
		font-size: 1.2rem;
	}
}
