/* ==========================================================================
   Garage Studio — blog listing (home.php, the News page)
   Dark hero · category filter · card grid with a wide featured first card.
   Same type and colours as the blog detail template (assets/blog-detail.css).
   ========================================================================== */

.gsb {
	--gsb-red: #A71919;
	--gsb-red-2: #A71919;
	--gsb-text: #232323;
	--gsb-head: #222;
	--gsb-muted: #6b6b6b;
	--gsb-border: #E7E7E7;
	--gsb-light: #F9F5F2;
	--gsb-dark: #101010;
	--gsb-hdr: 110px; /* header height; refined by blog-listing.js */
	font-family: 'Outfit', sans-serif;
	color: var(--gsb-text);
}
.gsb *, .gsb *::before, .gsb *::after { box-sizing: border-box; }

/* the theme's overflow:hidden on <body> (x) and #page breaks the sticky filter bar; clip trims the same way */
body.gsb-listing { overflow-x: clip; }
.gsb-listing #page { overflow: clip; }
/* the theme boxes page content (.col-full) and adds 80px above/below it */
.gsb-listing #page .site-content { margin: 0; }
.gsb-listing #content > .col-full { max-width: none; padding: 0; }

.gsb-wrap { max-width: 1320px; margin: 0 auto; padding: 0 15px; }

/* ---------- hero ---------- */
.gsl-hero {
	position: relative;
	z-index: 0;
	margin-top: calc(-1 * var(--gsb-hdr)); /* slide under the transparent header */
	padding: calc(var(--gsb-hdr) + 96px) 0 104px;
	background: var(--gsb-dark);
	color: #fff;
	text-align: center;
	overflow: hidden;
}
.gsl-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-image: radial-gradient(rgba(255,255,255,.07) 1px, transparent 1px);
	background-size: 28px 28px;
	pointer-events: none;
}
.gsl-hero::after { /* soft red glow behind the heading */
	content: "";
	position: absolute;
	left: 50%;
	bottom: -260px;
	z-index: -1;
	width: 760px;
	height: 420px;
	transform: translateX(-50%);
	background: radial-gradient(closest-side, rgba(167,25,25,.28), transparent);
	pointer-events: none;
}
.gsl-hero__inner { max-width: 800px; margin: 0 auto; }
.gsl-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 3px;
	line-height: 1.4;
	text-transform: uppercase;
	color: #fff;
}
.gsl-eyebrow::before, .gsl-eyebrow::after { content: ""; width: 24px; height: 2px; background: currentColor; }
.gsb .gsl-title {
	margin: 18px 0 22px;
	font-family: inherit;
	font-size: clamp(38px, 5.2vw, 64px);
	font-weight: 600;
	line-height: 1.05;
	letter-spacing: -.025em;
	color: #fff;
}
.gsl-title em { font-style: normal; color: #fff; }
.gsl-intro { max-width: 640px; margin: 0 auto; font-size: 18px; line-height: 1.7; color: rgba(255,255,255,.68); }

/* ---------- filter bar ---------- */
.gsl-filters { position: sticky; top: 0; z-index: 20; background: #fff; border-bottom: 1px solid var(--gsb-border); }
.gsl-filters__inner { position: relative; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; padding: 20px 0; }
.gsl-filter {
	display: inline-flex;
	align-items: center;
	padding: 11px 22px;
	border: 1px solid var(--gsb-border);
	background: #fff;
	color: var(--gsb-muted);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 1.5px;
	line-height: 1.2;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	transition: background .25s, border-color .25s, color .25s;
}
.gsb .gsl-filter:hover, .gsb .gsl-filter:focus-visible { border-color: var(--gsb-dark); color: var(--gsb-dark); }
.gsb .gsl-filter.is-active { background: var(--gsb-red); border-color: var(--gsb-red); color: #fff; }

/* ---------- grid ---------- */
.gsl-list { padding: 64px 0 100px; }
.gsl-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }

.gsl-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	border: 1px solid var(--gsb-border);
	background: #fff;
	color: inherit;
	text-decoration: none;
	transition: transform .3s, box-shadow .3s, border-color .3s;
}
.gsb .gsl-card:hover, .gsb .gsl-card:focus-visible {
	transform: translateY(-4px);
	border-color: rgba(167,25,25,.3);
	box-shadow: 0 18px 40px -22px rgba(0,0,0,.3);
	color: inherit;
}
.gsl-card__img { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: var(--gsb-dark); }
.gsl-card__img img { width: 100%; height: 100%; max-width: none; object-fit: cover; transition: transform .6s; }
.gsl-card:hover .gsl-card__img img { transform: scale(1.04); }
.gsl-card__cat {
	position: absolute;
	top: 14px;
	left: 14px;
	z-index: 1;
	padding: 4px 10px;
	background: var(--gsb-red);
	color: #fff;
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: 1.5px;
	line-height: 1.5;
	text-transform: uppercase;
}
.gsl-card__body { display: flex; flex: 1; flex-direction: column; padding: 24px 26px 26px; container-type: inline-size; }
.gsl-card__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 8px;
	margin: 0 0 12px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .8px;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--gsb-muted);
}
.gsl-dot { width: 3px; height: 3px; border-radius: 50%; background: currentColor; opacity: .55; }
/* keep the meta on one line: drop the author name when the card is too narrow for it */
@container (max-width: 356px) { /* widest meta: long date + 2-digit minutes */
	.gsl-card__by, .gsl-dot--by { display: none; }
}
.gsb .gsl-card__title {
	margin: 0 0 10px;
	font-family: inherit;
	font-size: 21px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: -.01em;
	color: var(--gsb-head);
	transition: color .25s;
}
.gsl-card:hover .gsl-card__title { color: var(--gsb-red); }
.gsl-card__excerpt { flex: 1; margin: 0 0 20px; font-size: 15.5px; line-height: 1.65; color: var(--gsb-muted); }
.gsl-card__more {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: auto;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 1.5px;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--gsb-red);
	transition: gap .25s;
}
.gsl-card__more svg { width: 16px; height: 16px; flex: 0 0 auto; }
.gsl-card:hover .gsl-card__more { gap: 12px; }

/* wide featured card (first post on each page) */
.gsl-card.is-featured { grid-column: span 2; }
.gsl-card.is-featured .gsl-card__img { aspect-ratio: 21 / 10; }
.gsl-card.is-featured .gsl-card__body { padding: 30px 32px 32px; }
.gsb .gsl-card.is-featured .gsl-card__title { font-size: clamp(24px, 2.2vw, 30px); line-height: 1.25; }

/* tab filtering: cards that don't match, or aren't revealed yet, are hidden */
.gsl-card[hidden], .gsl-more-wrap[hidden], .gsl-empty[hidden] { display: none; }
.gsl-card.is-entering { animation: gsl-in .45s ease both; }
@keyframes gsl-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

/* ---------- load more / empty ---------- */
.gsl-more-wrap { display: flex; justify-content: center; margin-top: 52px; }
.gsb .gsl-more { /* also resets the theme's global button style */
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
	margin: 0;
	padding: 16px 38px;
	border: 1px solid var(--gsb-red);
	border-radius: 0;
	background: transparent;
	color: var(--gsb-red);
	font-family: inherit;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 2px;
	line-height: 1.4;
	text-transform: uppercase;
	cursor: pointer;
	box-shadow: none;
	transition: background .25s, color .25s;
}
.gsb .gsl-more:hover, .gsb .gsl-more:focus-visible { background: var(--gsb-red); color: #fff; }
.gsl-empty { margin: 0; padding: 56px 20px; text-align: center; font-size: 17px; color: var(--gsb-muted); }
.gsl-empty p { margin: 0; }
.gsb .gsl-empty a { color: var(--gsb-red); text-decoration: underline; text-underline-offset: 3px; }

/* ---------- responsive ---------- */
@media (max-width: 1024px) {
	.gsb { --gsb-hdr: 107px; } /* fallback until measured; a hair over the real ~105px so no gap shows */
	.gsl-hero { padding: calc(var(--gsb-hdr) + 72px) 0 84px; }
	.gsl-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
}
@media (max-width: 767px) {
	.gsb-wrap { padding: 0 20px; }
	.gsl-hero { padding: calc(var(--gsb-hdr) + 48px) 0 64px; }
	.gsb .gsl-title { font-size: 36px; line-height: 1.1; }
	.gsl-intro { font-size: 16.5px; }
	.gsl-filters__inner { flex-wrap: nowrap; justify-content: flex-start; gap: 8px; padding: 14px 0; overflow-x: auto; scrollbar-width: none; }
	.gsl-filters__inner::-webkit-scrollbar { display: none; }
	.gsl-filter { flex: 0 0 auto; padding: 10px 16px; }
	.gsl-list { padding: 40px 0 72px; }
	.gsl-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
	.gsl-card.is-featured { grid-column: auto; }
	.gsl-card.is-featured .gsl-card__img { aspect-ratio: 16 / 10; }
	.gsl-card__body, .gsl-card.is-featured .gsl-card__body { padding: 22px 22px 24px; }
	.gsb .gsl-card__title, .gsb .gsl-card.is-featured .gsl-card__title { font-size: 21px; line-height: 1.3; }
}
@media (prefers-reduced-motion: reduce) {
	.gsb *, .gsb *::before, .gsb *::after { transition: none !important; animation: none !important; }
}
