/**
 * Sounds Like Sydney 2026 — main stylesheet.
 *
 * Sectioned to mirror the template parts. Mobile-first; the magazine grid
 * kicks in at wider breakpoints. Uses CSS custom properties as design tokens.
 */

/* =========================================================================
 * 1. Tokens
 * ====================================================================== */
:root {
	--sls-color-accent: #ff3d1a;
	--sls-color-accent-ink: #ffffff;
	--sls-color-info: #2b6cff;
	--sls-color-gold: #b89b73;
	--sls-color-ink: #14181f;
	--sls-color-body: #4a4f57;
	--sls-color-muted: #8a9099;
	--sls-color-line: #e7e9ec;
	--sls-color-bg: #ffffff;
	--sls-color-bg-alt: #f4f5f6;
	--sls-color-dark: #14181f;
	--sls-color-dark-2: #1c2029;

	/* Ibarra Real Nova for display/headings; Montserrat for body copy + UI. */
	--sls-font-display: "Ibarra Real Nova", Georgia, "Times New Roman", serif;
	--sls-font-sans: "Ibarra Real Nova", Georgia, "Times New Roman", serif;
	--sls-font-body: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;

	--sls-container: 1200px;
	--sls-gap: 28px;
	--sls-radius: 4px;
}

/* =========================================================================
 * 2. Base
 * ====================================================================== */
*,
*::before,
*::after { box-sizing: border-box; }

body {
	margin: 0;
	font-family: var(--sls-font-sans);
	font-size: 16px;
	font-weight: bold;
	line-height: 1.65;
	color: var(--sls-color-body);
	background: var(--sls-color-bg);
	-webkit-font-smoothing: antialiased;
}

a { color: inherit; text-decoration: none; }
a:hover { color: var(--sls-color-accent); }

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

h1, h2, h3, h4 {
	font-family: var(--sls-font-display);
	color: var(--sls-color-ink);
	line-height: 1.2;
	margin: 0 0 .5em;
	font-weight: 700;
}

p { margin: 0 0 1.2em; }

.sls-container {
	width: 100%;
	max-width: var(--sls-container);
	margin-inline: auto;
	padding-inline: 20px;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0);
	white-space: nowrap; border: 0;
}

.skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	background: var(--sls-color-ink);
	color: #fff;
	padding: 10px 16px;
	z-index: 1000;
}
.skip-link:focus { left: 8px; top: 8px; }

.sls-section { padding-block: clamp(32px, 5vw, 64px); }

/* Kicker / category label */
.entry-kicker {
	display: inline-block;
	font-family: var(--sls-font-sans);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--sls-color-accent);
	margin-bottom: 8px;
}

/* Section heading */
.sls-section__head {
	display: flex;
	align-items: baseline;
	gap: 14px;
	border-bottom: 2px solid var(--sls-color-ink);
	padding-bottom: 12px;
	margin-bottom: 28px;
}
.sls-section__title {
	font-size: clamp(20px, 2.4vw, 26px);
	margin: 0;
}
.sls-section__sub {
	margin: 0;
	font-family: var(--sls-font-sans);
	font-size: 13px;
	color: var(--sls-color-muted);
}
.sls-section__head--light,
.sls-section__head--light .sls-section__title { color: #fff; border-color: rgba(255,255,255,.25); }

/* "See more" CTA link (hero left column, section headers, …) — accent,
 * uppercase, with an arrow that nudges right on hover. */
.sls-see-more {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	justify-self: start;
	font-family: var(--sls-font-sans);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--sls-color-accent);
}
.sls-see-more::after { content: "\2192"; transition: transform .2s ease; }
.sls-see-more:hover { color: var(--sls-color-ink); }
.sls-see-more:hover::after { transform: translateX(3px); }
@media (prefers-reduced-motion: reduce) {
	.sls-see-more::after { transition: none; }
}
/* Pushed to the far end of a section header (opposite the title). */
.sls-section__more { margin-left: auto; }

/* Buttons */
.sls-btn {
	display: inline-block;
	font-family: var(--sls-font-sans);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	padding: 14px 28px;
	border: 1px solid var(--sls-color-line);
	color: var(--sls-color-ink);
	transition: background .2s, color .2s, border-color .2s;
}
.sls-btn:hover {
	background: var(--sls-color-accent);
	border-color: var(--sls-color-accent);
	color: var(--sls-color-accent-ink);
}
.sls-btn.is-loading { opacity: .6; pointer-events: none; }

/* =========================================================================
 * 3. Header
 * ====================================================================== */
.sls-branding { position: relative; border-bottom: 1px solid var(--sls-color-line); }
.sls-branding__inner {
	display: flex;
	align-items: center;
	gap: 28px;
	padding-block: 18px;
}
.sls-branding__logo { flex: none; text-align: left; }
.sls-branding__right {
	margin-left: auto;
	flex: none;
	display: flex;
	align-items: center;
	gap: 18px;
}
.site-title {
	font-family: var(--sls-font-display);
	font-size: clamp(22px, 3vw, 32px);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: normal;
	line-height: 1;
	margin: 0;
}
.sls-branding__logo img { height: 80px; width: auto; max-width: 240px; object-fit: contain; margin-inline: 0; }

.sls-nav-toggle,
.sls-search-toggle {
	background: none;
	border: 0;
	cursor: pointer;
	padding: 8px;
	color: var(--sls-color-ink);
}
.sls-nav-toggle { display: none; flex: none; }
.sls-nav-toggle__bars,
.sls-nav-toggle__bars::before,
.sls-nav-toggle__bars::after {
	display: block;
	width: 22px; height: 2px;
	background: currentColor;
	position: relative;
}
.sls-nav-toggle__bars::before,
.sls-nav-toggle__bars::after { content: ""; position: absolute; left: 0; }
.sls-nav-toggle__bars::before { top: -6px; }
.sls-nav-toggle__bars::after { top: 6px; }
.sls-search-toggle { display: inline-flex; align-items: center; justify-content: center; }
.sls-search-toggle__icon {
	display: block;
	width: 18px; height: 18px;
	border: 2px solid currentColor;
	border-radius: 50%;
	position: relative;
	/* The handle hangs below the circle, so the drawn glyph sits low in its box.
	   Nudge it up to optically centre it against the social icons beside it. */
	transform: translateY(-2px);
}
.sls-search-toggle__icon::after {
	content: ""; position: absolute;
	width: 2px; height: 8px; background: currentColor;
	transform: rotate(-45deg); right: -4px; bottom: -5px;
}

.sls-nav {
	flex: 1 1 auto;
	min-width: 0;
}
.sls-nav__menu {
	display: flex;
	justify-content: flex-end;
	flex-wrap: wrap;
	gap: 26px;
	list-style: none;
	margin: 0;
	padding: 0;
	font-family: var(--sls-font-sans);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.sls-nav__menu a { display: block; }
.sls-nav__menu .current-menu-item > a { color: var(--sls-color-accent); }

/* Compact sticky header — hidden until scrolled, then slides down */
.sls-sticky-header {
	position: fixed;
	top: 0; left: 0; right: 0;
	z-index: 900;
	background: var(--sls-color-bg);
	border-bottom: 1px solid var(--sls-color-line);
	box-shadow: 0 2px 14px rgba(0, 0, 0, .06);
	transform: translateY(-100%);
	transition: transform .3s ease;
	will-change: transform;
}
.sls-sticky-header.is-visible { transform: translateY(0); }
.sls-sticky-header__inner {
	display: flex;
	align-items: center;
	gap: 24px;
	min-height: 64px;
}
.sls-sticky-header__logo { flex: none; display: flex; align-items: center; }
.sls-sticky-header__logo img { max-height: 50px; width: auto; }
.site-title--sticky {
	font-family: var(--sls-font-display);
	font-size: 26px;
	font-weight: 700;
	text-transform: uppercase;
	line-height: 1;
	color: var(--sls-color-ink);
}
.sls-sticky-header__nav { flex: 1 1 auto; display: flex; justify-content: center; }
.sls-sticky-nav__menu {
	display: flex;
	flex-wrap: wrap;
	gap: 26px;
	list-style: none;
	margin: 0; padding: 0;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.sls-sticky-nav__menu a { display: block; }
.sls-sticky-nav__menu .current-menu-item > a { color: var(--sls-color-accent); }
.sls-search-toggle--sticky { flex: none; }
@media (prefers-reduced-motion: reduce) {
	.sls-sticky-header { transition: none; }
}
@media (max-width: 781px) {
	.sls-sticky-header__nav { display: none; }
}

/* Full-screen search overlay (opens from the header search icon) */
.sls-search-panel {
	position: fixed;
	inset: 0;
	z-index: 1000;
	display: grid;
	place-items: center;
	padding: 24px;
	background: rgba(20, 24, 31, .97);
	opacity: 0;
	visibility: hidden;
	transition: opacity .25s ease, visibility .25s ease;
}
/* Respect the hidden attribute before the overlay is first opened. */
.sls-search-panel[hidden] { display: none; }
.sls-search-panel.is-open { opacity: 1; visibility: visible; }

.sls-search-panel__inner { width: min(760px, 100%); }

.sls-search-close {
	position: absolute;
	top: clamp(18px, 3vw, 32px);
	right: clamp(18px, 3vw, 32px);
	width: 46px;
	height: 46px;
	background: none;
	border: 0;
	cursor: pointer;
	border-radius: 50%;
	transition: background .2s;
}
.sls-search-close:hover { background: rgba(255,255,255,.1); }
.sls-search-close__icon { position: relative; display: block; width: 26px; height: 26px; margin: 0 auto; }
.sls-search-close__icon::before,
.sls-search-close__icon::after {
	content: "";
	position: absolute;
	top: 50%; left: 0;
	width: 100%; height: 2px;
	background: #fff;
}
.sls-search-close__icon::before { transform: rotate(45deg); }
.sls-search-close__icon::after { transform: rotate(-45deg); }

/* Lock body scroll while the overlay is open. */
body.sls-search-open { overflow: hidden; }

/* Base search form (used inline on 404 / no-results). */
.sls-search-form {
	display: flex;
	align-items: center;
	gap: 10px;
	max-width: 480px;
}
.sls-search-field {
	flex: 1;
	padding: 12px 14px;
	font-size: 15px;
	color: var(--sls-color-ink);
	background: #fff;
	border: 1px solid var(--sls-color-line);
	border-radius: var(--sls-radius);
}
.sls-search-submit {
	display: inline-grid;
	place-items: center;
	padding: 12px 16px;
	background: var(--sls-color-ink);
	color: #fff;
	border: 0;
	border-radius: var(--sls-radius);
	cursor: pointer;
}
.sls-search-submit__icon {
	display: block;
	width: 16px; height: 16px;
	border: 2px solid currentColor;
	border-radius: 50%;
	position: relative;
}
.sls-search-submit__icon::after {
	content: "";
	position: absolute;
	width: 2px; height: 8px;
	background: currentColor;
	transform: rotate(-45deg);
	right: -4px; bottom: -5px;
}

/* Overlay-specific look: big centred serif input, underline only. */
.sls-search-panel .sls-search-form {
	max-width: none;
	gap: 14px;
	border-bottom: 2px solid rgba(255,255,255,.4);
}
.sls-search-panel .sls-search-field {
	background: transparent;
	border: 0;
	border-radius: 0;
	padding: 16px 0;
	color: #fff;
	font-family: var(--sls-font-display);
	font-size: clamp(22px, 4vw, 40px);
	line-height: 1.2;
}
.sls-search-panel .sls-search-field::placeholder { color: rgba(255,255,255,.5); }
.sls-search-panel .sls-search-field:focus { outline: none; }
.sls-search-panel .sls-search-submit {
	background: transparent;
	padding: 0 6px;
	color: #fff;
}
.sls-search-panel .sls-search-submit__icon { width: 22px; height: 22px; }

.sls-trending {
	background: var(--sls-color-bg);
	border-bottom: 1px solid var(--sls-color-line);
	font-size: 13px;
}
.sls-trending__inner { display: flex; align-items: center; gap: 16px; min-height: 44px; }
.sls-trending__label {
	flex: none;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--sls-color-accent);
	font-size: 11px;
}
.sls-trending__list {
	flex: 1 1 auto;
	display: flex;
	gap: 28px;
	list-style: none;
	margin: 0; padding: 0;
	overflow-x: auto;
	scroll-behavior: smooth;
	scrollbar-width: none;          /* Firefox */
	-ms-overflow-style: none;       /* old Edge */
}
.sls-trending__list::-webkit-scrollbar { display: none; } /* WebKit */
.sls-trending__list > li { flex: none; white-space: nowrap; }
.sls-trending__nav { flex: none; display: flex; gap: 6px; }
.sls-trending__arrow {
	width: 30px;
	height: 30px;
	display: inline-grid;
	place-items: center;
	background: none;
	border: 1px solid var(--sls-color-line);
	border-radius: 50%;
	color: var(--sls-color-ink);
	font-size: 14px;
	line-height: 1;
	cursor: pointer;
	transition: background .2s, color .2s, border-color .2s;
}
.sls-trending__arrow:hover:not(:disabled) {
	background: var(--sls-color-accent);
	border-color: var(--sls-color-accent);
	color: #fff;
}
.sls-trending__arrow:disabled { opacity: .35; cursor: default; }

/* =========================================================================
 * 4. Cards (shared)
 * ====================================================================== */
.sls-card { position: relative; }
/* Card media: .sls-card__media (query-var cards) and .post-thumbnail (loop
 * cards via sls2026_post_thumbnail) share one treatment so images stay uniform. */
.sls-card__media,
.sls-card .post-thumbnail { display: block; overflow: hidden; border-radius: var(--sls-radius); background: var(--sls-color-bg-alt); }
.sls-card__media img,
.sls-card .post-thumbnail img { width: 100%; object-fit: cover; transition: transform .5s ease; }
.sls-card:hover .sls-card__media img,
.sls-card:hover .post-thumbnail img { transform: scale(1.04); }
.sls-card__placeholder,
.post-thumbnail--placeholder {
	display: block;
	aspect-ratio: 3 / 2;
	background: linear-gradient(135deg, #e9ebee, #d7dade);
}
.sls-card__title { font-size: 19px; margin: 0 0 6px; }
.sls-card__meta,
.entry-meta { font-family: var(--sls-font-sans); font-size: 12px; color: var(--sls-color-muted); }
.meta-sep { opacity: .5; }
.sls-card__deck,
.sls-card__excerpt { font-size: 14px; margin-top: 8px; }

/* Overlay card */
.sls-card--overlay { border-radius: var(--sls-radius); overflow: hidden; }
.sls-card--overlay .sls-card__media { border-radius: 0; }
.sls-card--overlay .sls-card__media::after {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(to top, rgba(0,0,0,.78) 0%, rgba(0,0,0,.15) 55%, transparent 100%);
}
.sls-card--overlay .sls-card__overlay {
	position: absolute;
	inset-inline: 0; bottom: 0;
	padding: 24px;
	z-index: 2;
}
.sls-card--overlay .sls-card__title,
.sls-card--overlay .sls-card__title a { color: #fff; }
.sls-card--overlay .sls-card__meta { color: rgba(255,255,255,.8); }
.sls-hero__lead .sls-card--overlay .sls-card__title { font-size: clamp(24px, 3vw, 34px); }

/* Stacked card */
.sls-card--stacked .sls-card__body { padding-top: 16px; }
/* Uniform image height across a grid regardless of the source photo's ratio. */
.sls-card--stacked .sls-card__media img,
.sls-card--stacked .post-thumbnail img { aspect-ratio: 3 / 2; }

/* Row card */
.sls-card--row {
	display: grid;
	grid-template-columns: 220px 1fr;
	gap: 22px;
	align-items: start;
	padding-bottom: 26px;
	margin-bottom: 26px;
	border-bottom: 1px solid var(--sls-color-line);
}
.sls-card--row .sls-card__title { font-size: 22px; }
.sls-card__more { display: inline-block; margin-top: 10px; color: var(--sls-color-accent); }

/* Mini card */
.sls-card--mini {
	display: grid;
	grid-template-columns: 88px 1fr;
	gap: 14px;
	align-items: center;
}
.sls-card--mini .sls-card__title { font-size: 14px; line-height: 1.35; margin: 0; }
.sls-card--mini .entry-kicker { margin-bottom: 4px; font-size: 10px; }

/* Play badge */
.sls-card__play-icon,
.sls-video__play-icon {
	position: absolute;
	top: 50%; left: 50%;
	transform: translate(-50%, -50%);
	width: 40px; height: 40px;
	border-radius: 50%;
	background: rgba(255,255,255,.9);
	display: grid; place-items: center;
}
.sls-card__play-icon::after,
.sls-video__play-icon::after {
	content: "";
	border-style: solid;
	border-width: 7px 0 7px 12px;
	border-color: transparent transparent transparent var(--sls-color-ink);
	margin-left: 3px;
}

/* =========================================================================
 * 5. Homepage sections
 * ====================================================================== */
/* Hero — text always sits OUTSIDE the image */
.sls-hero__grid { display: grid; gap: var(--sls-gap); }
.sls-hero__side { display: grid; gap: var(--sls-gap); align-content: start; }
.sls-hero__title {
	grid-area: title;
	font-family: var(--sls-font-display);
	font-size: clamp(22px, 2.6vw, 28px);
	font-weight: 700;
	color: var(--sls-color-accent);
	margin: 0;
	padding-bottom: 12px;
}

/* Shared hero media box */
.sls-hcard__media,
.sls-hlead__media,
.sls-hitem__thumb {
	display: block;
	overflow: hidden;
	border-radius: var(--sls-radius);
	background: var(--sls-color-bg-alt);
}
.sls-hcard__media img,
.sls-hlead__media img { width: 100%; object-fit: cover; transition: transform .5s ease; }
.sls-hcard:hover .sls-hcard__media img,
.sls-hlead:hover .sls-hlead__media img { transform: scale(1.03); }

/* Left: stacked cards */
.sls-hcard__media img { aspect-ratio: 3 / 2; }
.sls-hcard__body { padding-top: 14px; }
.sls-hcard__title { font-size: 19px; line-height: 1.25; margin: 6px 0 8px; }
.sls-hcard__title a:hover { color: var(--sls-color-accent); }

/* Centre: lead */
.sls-hlead__media img { aspect-ratio: 4 / 3; }
.sls-hlead__body { padding-top: 16px; }
.sls-hlead__title { font-size: clamp(26px, 3vw, 34px); line-height: 1.12; margin: 8px 0 12px; }
.sls-hlead__title a:hover { color: var(--sls-color-accent); }
.sls-hlead__excerpt {
	font-family: var(--sls-font-sans);
	font-size: 15px;
	line-height: 1.6;
	color: var(--sls-color-body);
	margin: 0 0 14px;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* Meta rows (date + comments, byline) */
.sls-hcard__meta,
.sls-hlead__meta {
	display: flex;
	align-items: center;
	gap: 14px;
	font-family: var(--sls-font-sans);
	font-size: 12px;
	color: var(--sls-color-muted);
}
.sls-hlead__meta { text-transform: uppercase; letter-spacing: .04em; }
.sls-hlead__meta .author { color: var(--sls-color-ink); font-weight: 700; }
.entry-comments { display: inline-flex; align-items: center; gap: 4px; }
.entry-comments svg { opacity: .65; }

/* Right: compact list, text left + thumbnail right, divided */
.sls-hero__list { list-style: none; margin: 0; padding: 0; align-self: start; }
.sls-hero__list > li {
	display: grid;
	grid-template-columns: 1fr 90px;
	gap: 16px;
	align-items: center;
	padding: 16px 0;
	border-bottom: 1px solid var(--sls-color-line);
}
.sls-hero__list > li:first-child { padding-top: 0; }
.sls-hero__list > li:last-child { border-bottom: 0; padding-bottom: 0; }
.sls-hitem__title { font-size: 16px; line-height: 1.3; margin: 6px 0 0; }
.sls-hitem__title a:hover { color: var(--sls-color-accent); }
.sls-hitem__thumb { width: 90px; height: 72px; }
.sls-hitem__thumb img { width: 90px; height: 72px; object-fit: cover; }

/* Right column wrapper — stacks Upcoming Events (or fallback list) + Archives */
.sls-hero__aside { align-self: start; display: grid; gap: 36px; }

/* Right: "Upcoming Events" list (mirrors the TEC events widget) */
.sls-hero__events { align-self: start; }
.sls-hero__events-title {
	font-family: var(--sls-font-display);
	font-size: clamp(20px, 2.4vw, 24px);
	font-weight: 700;
	color: var(--sls-color-accent);
	margin: 0 0 18px;
}
.sls-hevents { list-style: none; margin: 0 0 18px; padding: 0; display: grid; gap: 24px; }
.sls-hevent { display: grid; grid-template-columns: 48px 1fr; gap: 18px; align-items: start; }
/* Date block — matches the /shows/ page: accent day-of-week + month, ink day. */
.sls-hevent__date { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; line-height: 1; color: var(--sls-color-accent); }
.sls-hevent__dow,
.sls-hevent__mon {
	font-family: var(--sls-font-sans);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
}
.sls-hevent__day { font-family: var(--sls-font-display); font-size: 34px; font-weight: 700; line-height: 1; color: var(--sls-color-ink); }
.sls-hevent__time {
	display: block;
	font-family: var(--sls-font-sans);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--sls-color-accent);
	margin-bottom: 5px;
}
.sls-hevent__title { font-size: 17px; line-height: 1.3; margin: 0; }
.sls-hevent__title a { color: var(--sls-color-ink); }
.sls-hevent__title a:hover { color: var(--sls-color-accent); }
.sls-hevents__more {
	display: inline-block;
	font-family: var(--sls-font-sans);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--sls-color-accent);
}
.sls-hevents__more:hover { color: var(--sls-color-ink); }

/* Empty state for the sidebar Upcoming Events widget */
.sls-events-widget__empty {
	margin: 0;
	font-family: var(--sls-font-sans);
	font-size: 14px;
	color: var(--sls-color-muted);
}

/* Editor's Choice numbered row */
.sls-editors__grid {
	list-style: none;
	margin: 0; padding: 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--sls-gap);
}
.sls-editors__media {
	display: block;
	overflow: hidden;
	border-radius: var(--sls-radius);
	background: var(--sls-color-bg-alt);
	margin-bottom: 14px;
}
.sls-editors__media img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform .5s ease; }
.sls-editors__item:hover .sls-editors__media img { transform: scale(1.04); }
.sls-editors__meta { display: flex; gap: 12px; align-items: flex-start; }
.sls-editors__num {
	flex: none;
	font-family: var(--sls-font-display);
	font-size: 34px;
	line-height: .85;
	font-weight: 700;
	color: var(--sls-color-muted);
	opacity: .4;
}
.sls-editors__text { min-width: 0; }
.sls-editors__text .sls-card__title { font-size: 16px; line-height: 1.3; margin: 6px 0 0; }

/* Animated hover underline on headline links — wipes in left → right */
.sls-card__title a,
.sls-hcard__title a,
.sls-hlead__title a,
.sls-hitem__title a,
.sls-video__title a {
	background-image: linear-gradient( currentColor, currentColor );
	background-repeat: no-repeat;
	background-position: 0 100%;
	background-size: 0% 2px;
	transition: background-size .45s ease;
	padding-bottom: 3px;
}
.sls-card__title a:hover,
.sls-hcard__title a:hover,
.sls-hlead__title a:hover,
.sls-hitem__title a:hover,
.sls-video__title a:hover {
	background-size: 100% 2px;
	color: inherit; /* keep text colour; the growing underline is the effect */
}
@media (prefers-reduced-motion: reduce) {
	.sls-card__title a,
	.sls-hcard__title a,
	.sls-hlead__title a,
	.sls-hitem__title a,
	.sls-video__title a { transition: none; }
}

/* Recent posts + sidebar */
.sls-recent__grid,
.sls-with-sidebar { display: grid; gap: 44px; }

/* Top: two stacked cards */
.sls-recent__top {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--sls-gap);
	margin-bottom: 30px;
}
/* Horizontal row cards below the stacked pair */
.sls-recent__rows { border-top: 1px solid var(--sls-color-line); padding-top: 30px; }
.sls-recent__rows .sls-card--row:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }

/* Uppercase byline meta for recent cards */
.sls-recent .sls-card__meta,
.sls-recent .sls-hcard__meta {
	display: flex;
	align-items: center;
	gap: 12px;
	text-transform: uppercase;
	letter-spacing: .04em;
}
.sls-recent .byline a { color: var(--sls-color-ink); font-weight: 700; }

/* Full-width "More Posts" button */
.sls-recent__more { margin-top: 8px; }
.sls-btn--block { display: block; width: 100%; text-align: center; padding-block: 18px; }

/* Sticky sidebar */
.sls-sticky-aside { position: sticky; top: 84px; }
.sls-sticky-aside .widget { margin-bottom: 32px; }
.sls-sticky-aside .widget:last-child { margin-bottom: 0; }
.sls-recent__aside img { border-radius: var(--sls-radius); }

/* Archives widget — heading matches the single-post sidebar (serif + accent underline). */
.sls-archives .widget-title {
	font-family: var(--sls-font-display);
	font-size: 20px;
	font-weight: 700;
	text-transform: none;
	letter-spacing: 0;
	color: var(--sls-color-ink);
	border-bottom: 0;
	padding-bottom: 12px;
	margin: 0 0 14px;
	position: relative;
}
.sls-archives .widget-title::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 44px;
	height: 3px;
	background: var(--sls-color-accent);
}

/* Archives widget month list — month on the left, post count on the right.
 * Capped to a scrollable box so the full month history stays compact. */
.sls-archives__list { list-style: none; margin: 0; padding: 0; max-height: 520px; overflow-y: auto; }
.sls-archives__list li {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 10px 0;
	border-bottom: 1px solid var(--sls-color-line);
	font-family: var(--sls-font-sans);
	font-size: 14px;
	color: var(--sls-color-muted);
}
.sls-archives__list li:last-child { border-bottom: 0; }
.sls-archives__list a { color: var(--sls-color-ink); }
.sls-archives__list a:hover { color: var(--sls-color-accent); }

.sls-sidebar .widget { margin-bottom: 36px; }
.widget-title {
	font-size: 15px;
	text-transform: uppercase;
	letter-spacing: .08em;
	border-bottom: 2px solid var(--sls-color-ink);
	padding-bottom: 10px;
	margin-bottom: 16px;
}

/* Trending Posts widget (numbered circular thumbnails) */
.widget-title--center { text-align: center; border-bottom: 0; padding-bottom: 0; margin-bottom: 4px; }
.sls-tposts__deco {
	display: block;
	text-align: center;
	color: var(--sls-color-accent);
	letter-spacing: 4px;
	font-size: 12px;
	margin-bottom: 22px;
}
.sls-tposts { list-style: none; margin: 0; padding: 0; display: grid; gap: 22px; }
.sls-tposts__item { display: grid; grid-template-columns: 76px 1fr; gap: 16px; align-items: center; }
.sls-tposts__thumb {
	position: relative;
	display: block;
	width: 76px; height: 76px;
	border-radius: 50%;
	overflow: hidden;
	background: var(--sls-color-bg-alt);
}
.sls-tposts__thumb img { width: 76px; height: 76px; object-fit: cover; }
.sls-tposts__num {
	position: absolute;
	left: -4px; bottom: -4px;
	width: 24px; height: 24px;
	border-radius: 50%;
	background: var(--sls-color-ink);
	color: #fff;
	display: grid; place-items: center;
	font-size: 12px; font-weight: 700;
	border: 2px solid var(--sls-color-bg);
}
.sls-tposts__body .sls-card__title { font-size: 15px; line-height: 1.3; margin: 0 0 5px; }
.sls-tposts__body .sls-card__meta { display: flex; align-items: center; gap: 10px; }

/* Video (dark) */
.sls-video { background: var(--sls-color-dark); color: #cfd3d9; }
.sls-video__grid { display: grid; gap: var(--sls-gap); }
.sls-video__lead { position: relative; }
.sls-video__play { position: relative; display: block; border-radius: var(--sls-radius); overflow: hidden; }
.sls-video__play-icon { width: 64px; height: 64px; }
.sls-video__title { font-size: 22px; margin-top: 14px; }
.sls-video__title a { color: #fff; }
.sls-video__playlist { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; align-content: start; }
.sls-video .sls-card--mini .sls-card__title a { color: #fff; }
.sls-video .entry-kicker { color: var(--sls-color-accent); }

/* Latest posts */
.sls-latest__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--sls-gap);
}

/* Ad banner */
.sls-adbanner__inner { text-align: center; background: var(--sls-color-bg-alt); padding: 24px; border-radius: var(--sls-radius); }

/* =========================================================================
 * 6. Single / page / archive
 * ====================================================================== */
.page-header { margin-bottom: 32px; }
.page-title { font-size: clamp(26px, 4vw, 38px); }

.sls-single, .sls-page { max-width: 760px; }
.sls-single__title, .sls-page__title { font-size: clamp(28px, 4.5vw, 46px); }
.sls-single__deck { font-size: 20px; color: var(--sls-color-body); font-family: var(--sls-font-display); }
.sls-single__meta { font-family: var(--sls-font-sans); font-size: 13px; color: var(--sls-color-muted); margin-top: 14px; }
.sls-single__media { margin: 28px 0; }
.sls-single__media figcaption { font-size: 12px; color: var(--sls-color-muted); margin-top: 8px; }
.entry-content { font-size: 18px; line-height: 1.75; }
.entry-content h2 { margin-top: 1.6em; }
.entry-content img { border-radius: var(--sls-radius); }
.sls-tags { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 24px 0 0; }
.sls-tags a { font-size: 12px; padding: 6px 12px; background: var(--sls-color-bg-alt); border-radius: 999px; }

/* Single post — news article style (kicker, red title, blue links, prev/next) */
.sls-single__header .entry-kicker { color: var(--sls-color-info); }
.sls-single__title { color: var(--sls-color-accent); font-weight: 800; line-height: 1.2; }
.sls-single__content a { color: var(--sls-color-info); text-decoration: underline; text-underline-offset: 2px; }
.sls-single__content a:hover { color: var(--sls-color-accent); }
.sls-single__content ul,
.sls-single__content ol { margin: 20px 0; padding-left: 22px; }
.sls-single__content li { margin-bottom: 8px; }

.post-navigation { margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--sls-color-line); max-width: 760px; }
.post-navigation .nav-links { display: flex; gap: 24px; }
.post-navigation .nav-previous,
.post-navigation .nav-next { flex: 1; min-width: 0; }
.post-navigation .nav-next { text-align: right; }
.post-navigation .nav-previous a,
.post-navigation .nav-next a { display: block; padding-left: 14px; border-left: 3px solid var(--sls-color-line); }
.post-navigation .nav-next a { padding-left: 0; padding-right: 14px; border-left: none; border-right: 3px solid var(--sls-color-line); }
.post-navigation .nav-subtitle { display: block; font-family: var(--sls-font-sans); font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--sls-color-info); margin-bottom: 4px; }
.post-navigation .nav-title { display: block; font-family: var(--sls-font-display); font-size: 15px; font-weight: 700; color: var(--sls-color-ink); }
.post-navigation a:hover .nav-title { color: var(--sls-color-accent); }

/* --- Single post: full-width hero --------------------------------------- */
.sls-single-hero-full { position: relative; width: 100%; overflow: hidden; margin-bottom: 44px; }
.sls-single-hero-full__img { display: block; width: 100%; height: clamp(340px, 52vw, 620px); object-fit: cover; }
.sls-single-hero-full--placeholder {
	display: flex; align-items: center; justify-content: center;
	min-height: clamp(320px, 42vw, 480px);
	background:
		radial-gradient(120% 140% at 15% 15%, rgba(255,61,26,.55), transparent 55%),
		radial-gradient(120% 140% at 85% 80%, rgba(46,196,182,.45), transparent 55%),
		linear-gradient(120deg, #14181f 0%, #1c2029 55%, #2a1220 100%);
}
.sls-single__hero-scrim {
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(0,0,0,.35) 0%, rgba(0,0,0,.45) 50%, rgba(0,0,0,.6) 100%);
}
.sls-single__hero-content {
	position: absolute; inset: 0;
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	text-align: center; padding: clamp(24px, 5vw, 60px);
}
.sls-single-hero-full--placeholder .sls-single__hero-content { position: relative; }
.sls-single__hero-content .entry-kicker { color: #fff; opacity: .85; letter-spacing: .18em; margin-bottom: 14px; }
.sls-single__hero-content .sls-single__title { color: #fff; max-width: 20ch; }
.sls-single__hero-content .sls-single__meta { color: rgba(255,255,255,.9); margin-top: 16px; }
.sls-single__hero-content .sls-single__meta .byline a,
.sls-single__hero-content .sls-single__meta a { color: #fff; }

/* --- Single post: 3-column row (share rail | article | sidebar) --------- */
.sls-single-cols { display: grid; gap: 40px; align-items: start; margin-bottom: 50px; }
.sls-single-rail { display: flex; flex-direction: column; gap: 30px; }
.sls-single-body { min-width: 0; }
@media (min-width: 700px) and (max-width: 1023px) {
	/* Tablet: rail + article side by side, sidebar drops full-width below. */
	.sls-single-cols { grid-template-columns: 190px minmax(0, 1fr); }
	.sls-single-cols .sls-sidebar { grid-column: 1 / -1; }
}
@media (min-width: 1024px) {
	.sls-single-cols { grid-template-columns: 190px minmax(0, 1fr) 300px; gap: 48px; }
	.sls-single-rail { position: sticky; top: 80px; }
}

/* --- Single post: sidebar widgets (Search, Recent Posts, Archives…) ----- */
.sls-single-cols .sls-sidebar { position: static; }
@media (min-width: 1024px) {
	.sls-single-cols .sls-sidebar { position: sticky; top: 80px; }
}
.sls-sidebar .widget { margin-bottom: 34px; }
.sls-sidebar .widget:last-child { margin-bottom: 0; }
.sls-sidebar .widget-title,
.sls-sidebar .wp-block-heading,
.sls-sidebar h2,
.sls-sidebar h3 {
	font-family: var(--sls-font-display);
	font-size: 20px; font-weight: 700; text-transform: none; letter-spacing: 0;
	color: var(--sls-color-ink);
	border-bottom: 0; padding-bottom: 12px; margin: 0 0 14px;
	position: relative;
}
.sls-sidebar .widget-title::after,
.sls-sidebar .wp-block-heading::after,
.sls-sidebar h2::after,
.sls-sidebar h3::after {
	content: ""; position: absolute; left: 0; bottom: 0;
	width: 44px; height: 3px; background: var(--sls-color-accent);
}
.sls-sidebar .widget ul { list-style: none; margin: 0; padding: 0; }
.sls-sidebar .widget li {
	padding: 10px 0; border-bottom: 1px solid var(--sls-color-line);
	font-size: 14px; line-height: 1.5;
}
.sls-sidebar .widget li:last-child { border-bottom: 0; }
.sls-sidebar .widget li a { color: var(--sls-color-ink); }
.sls-sidebar .widget li a:hover { color: var(--sls-color-accent); }
.sls-sidebar .widget li .post-date,
.sls-sidebar .widget li a + span,
.sls-sidebar .widget .rss-date { display: block; font-size: 12px; color: var(--sls-color-muted); margin-top: 2px; }
/* Nested children (category/archive sub-lists) shouldn't double-border. */
.sls-sidebar .widget li ul { margin-top: 8px; padding-left: 14px; }
.sls-sidebar .widget li ul li:first-child { border-top: 1px solid var(--sls-color-line); }
/* Search widget */
.sls-sidebar .search-form,
.sls-sidebar .wp-block-search__inside-wrapper { display: flex; gap: 8px; }
.sls-sidebar .search-field,
.sls-sidebar .wp-block-search__input {
	flex: 1; min-width: 0; padding: 11px 14px; font-size: 14px;
	border: 1px solid var(--sls-color-line); border-radius: 8px; background: var(--sls-color-bg);
}
.sls-sidebar .search-submit,
.sls-sidebar .wp-block-search__button {
	padding: 11px 18px; border: none; border-radius: 8px; cursor: pointer;
	background: var(--sls-color-ink); color: #fff; font-size: 13px; font-weight: 600; margin: 0;
}
.sls-sidebar .search-submit:hover,
.sls-sidebar .wp-block-search__button:hover { background: var(--sls-color-accent); }
/* Archives / category dropdowns */
.sls-archive-select,
.sls-sidebar .wp-block-archives-dropdown select,
.sls-sidebar select {
	width: 100%; padding: 12px 40px 12px 14px; font-size: 14px;
	font-family: var(--sls-font-sans); color: var(--sls-color-ink);
	border: 1px solid var(--sls-color-line); border-radius: 8px;
	background-color: var(--sls-color-bg); cursor: pointer;
	-webkit-appearance: none; -moz-appearance: none; appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2314181f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 14px center; background-size: 14px;
}
.sls-archive-select:focus,
.sls-sidebar select:focus { outline: none; border-color: var(--sls-color-accent); }

/* --- Share rail ----------------------------------------------------------- */
.sls-share__title {
	font-family: var(--sls-font-display); font-size: 20px; font-weight: 700;
	color: var(--sls-color-ink); letter-spacing: 0; text-transform: none; margin: 0 0 16px;
}
.sls-share__list { list-style: none; display: flex; flex-wrap: wrap; gap: 12px; padding: 0; margin: 0; }
.sls-share__link {
	display: flex; align-items: center; justify-content: center;
	width: 40px; height: 40px; border-radius: 50%;
	border: 1px solid var(--sls-color-line); background: var(--sls-color-bg);
	color: var(--sls-color-ink); cursor: pointer; padding: 0;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.sls-share__link svg { width: 16px; height: 16px; }
.sls-share__link:hover { background: var(--sls-color-accent); border-color: var(--sls-color-accent); color: var(--sls-color-accent-ink); }
.sls-share__copy.is-copied { background: var(--sls-color-info); border-color: var(--sls-color-info); color: #fff; }

/* --- Rail newsletter (no box, serif title, gold button) ------------------- */
.sls-rail-newsletter { padding: 0; background: none; }
.sls-rail-newsletter__title {
	font-family: var(--sls-font-display); font-size: 20px; font-weight: 700;
	color: var(--sls-color-ink); letter-spacing: 0; text-transform: none; margin: 0 0 8px;
}
.sls-rail-newsletter__sub { font-size: 14px; color: var(--sls-color-muted); margin: 0 0 16px; }
.sls-rail-newsletter .sls-newsletter-field { display: flex; flex-direction: column; gap: 10px; }
.sls-rail-newsletter .sls-newsletter-field input {
	width: 100%; padding: 11px 14px; border-radius: 999px; border: 1px solid var(--sls-color-line);
	background: var(--sls-color-bg); color: var(--sls-color-ink); font-size: 13px;
}
.sls-rail-newsletter .sls-newsletter-submit,
.sls-rail-newsletter__btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 11px 22px; border-radius: 999px;
	background: var(--sls-color-gold); color: #fff; border: none;
	font-family: var(--sls-font-sans); font-size: 12px; font-weight: 700;
	text-transform: uppercase; letter-spacing: .08em; cursor: pointer; text-decoration: none;
	transition: opacity .15s ease;
}
.sls-rail-newsletter .sls-newsletter-submit:hover,
.sls-rail-newsletter__btn:hover { opacity: .88; color: #fff; }
.sls-rail-newsletter__btn svg { width: 15px; height: 15px; }

/* --- Drop cap + pull quote ------------------------------------------------- */
.sls-drop-cap > p:first-of-type::first-letter {
	float: left; font-family: var(--sls-font-display); font-weight: 700;
	font-size: 4.6em; line-height: .82; padding: .05em .12em 0 0; color: var(--sls-color-ink);
}
.entry-content blockquote {
	margin: 32px 0; padding: 4px 0 4px 24px; border-left: 3px solid var(--sls-color-accent);
	font-family: var(--sls-font-display); font-style: italic; font-size: 22px; line-height: 1.5; color: var(--sls-color-ink);
}
.entry-content blockquote cite,
.entry-content blockquote p:last-child strong {
	display: block; margin-top: 10px; font-family: var(--sls-font-sans); font-style: normal;
	font-size: 13px; font-weight: 700; color: var(--sls-color-muted);
}

/* Tag pills (outline style) */
.sls-tags a {
	background: transparent; border: 1px solid var(--sls-color-line); color: var(--sls-color-ink);
	text-transform: uppercase; font-size: 11px; letter-spacing: .04em; font-weight: 700;
}
.sls-tags a:hover { border-color: var(--sls-color-accent); color: var(--sls-color-accent); }

.sls-single__engage {
	display: flex; align-items: center; justify-content: space-between;
	margin-top: 24px; padding: 14px 0;
	border-top: 1px solid var(--sls-color-line); border-bottom: 1px solid var(--sls-color-line);
}
.sls-like {
	display: inline-flex; align-items: center; gap: 8px;
	background: none; border: none; cursor: pointer; padding: 6px;
	color: var(--sls-color-muted); font-family: var(--sls-font-sans); font-size: 14px; font-weight: 600;
	transition: color .15s ease;
}
.sls-like__icon { width: 20px; height: 20px; transition: transform .15s ease; }
.sls-like:hover { color: var(--sls-color-accent); }
.sls-like.is-liked { color: var(--sls-color-accent); }
.sls-like.is-liked .sls-like__icon { fill: currentColor; transform: scale(1.1); }

/* --- Author box ------------------------------------------------------------ */
.sls-author-box {
	display: flex; gap: 18px; margin-top: 40px; padding: 24px;
	background: var(--sls-color-bg-alt); border-radius: var(--sls-radius);
}
.sls-author-box__avatar img { width: 64px; height: 64px; border-radius: 50%; display: block; }
.sls-author-box__label { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--sls-color-muted); margin: 0 0 2px; }
.sls-author-box__name { font-family: var(--sls-font-display); font-weight: 700; font-size: 17px; color: var(--sls-color-ink); }
.sls-author-box__bio { font-size: 14px; color: var(--sls-color-body); margin: 8px 0 12px; }
.sls-author-box__social { margin: 0; }

.sls-post-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--sls-gap);
}

/* Pagination */
.pagination { margin-top: 48px; display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	padding: 9px 14px;
	border: 1px solid var(--sls-color-line);
	border-radius: var(--sls-radius);
	font-family: var(--sls-font-sans);
	font-size: 15px;
	line-height: 1;
	transition: background .15s, color .15s, border-color .15s;
}
.pagination a.page-numbers:hover {
	border-color: var(--sls-color-ink);
	background: var(--sls-color-bg-alt);
	color: var(--sls-color-ink);
}
.pagination .current {
	background: var(--sls-color-ink);
	color: #fff;
	border-color: var(--sls-color-ink);
}
.pagination .dots { border-color: transparent; padding-inline: 6px; min-width: 0; }
.pagination .prev,
.pagination .next { font-size: 20px; font-weight: 700; }

/* =========================================================================
 * 10. Post listing (News, Reviews, …)
 * ====================================================================== */
.sls-listing { padding-top: clamp(32px, 5vw, 56px); }

.sls-listing__toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding-bottom: 16px;
	margin-bottom: 32px;
	border-bottom: 2px solid var(--sls-color-ink);
}
.sls-listing__count {
	margin: 0;
	font-family: var(--sls-font-sans);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--sls-color-muted);
}

.sls-sort { display: flex; align-items: center; gap: 10px; }
.sls-sort__label {
	font-family: var(--sls-font-sans);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--sls-color-muted);
}
.sls-sort__select {
	font-family: var(--sls-font-sans);
	font-size: 14px;
	font-weight: 700;
	color: var(--sls-color-ink);
	background-color: var(--sls-color-bg);
	border: 1px solid var(--sls-color-line);
	border-radius: var(--sls-radius);
	padding: 9px 36px 9px 14px;
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%238a9099' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
}
.sls-sort__select:hover { border-color: var(--sls-color-ink); }
.sls-sort__select:focus-visible { outline: 2px solid var(--sls-color-accent); outline-offset: 1px; }
.sls-sort__submit { padding: 9px 18px; font-size: 11px; }
/* When JS is available the select auto-submits, so the button is redundant. */
.js .sls-sort__submit { display: none; }

/* Three-up grid at desktop; falls back to the shared 2-up then 1-up rules. */
@media (min-width: 992px) {
	.sls-post-grid--3 { grid-template-columns: repeat(3, 1fr); }
}

/* =========================================================================
 * 11. Contact
 * ====================================================================== */
.sls-contact__body { padding-top: clamp(32px, 5vw, 56px); padding-bottom: clamp(8px, 2vw, 24px); }
.sls-contact__grid { display: grid; gap: 40px; }

.sls-contact__title { font-size: clamp(24px, 3.2vw, 34px); margin: 6px 0 16px; }
.sls-contact__intro p { font-size: 17px; line-height: 1.7; }

.sls-contact__points { list-style: none; margin: 22px 0; padding: 0; display: grid; gap: 14px; }
.sls-contact__points li { position: relative; padding-left: 30px; font-size: 15px; line-height: 1.5; }
.sls-contact__points li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .45em;
	width: 14px;
	height: 8px;
	border-left: 2px solid var(--sls-color-accent);
	border-bottom: 2px solid var(--sls-color-accent);
	transform: rotate(-45deg);
}
.sls-contact__fineprint { font-size: 14px; color: var(--sls-color-muted); }
.sls-contact__fineprint a { color: var(--sls-color-ink); text-decoration: underline; }
.sls-contact__fineprint a:hover { color: var(--sls-color-accent); }

/* Form card (styles Contact Form 7's default markup to match the theme). */
.sls-contact__form {
	background: var(--sls-color-bg-alt);
	border-radius: var(--sls-radius);
	padding: clamp(24px, 4vw, 40px);
}
.sls-contact .wpcf7-form p { margin: 0 0 20px; }
.sls-contact .wpcf7-form label {
	display: block;
	font-family: var(--sls-font-sans);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--sls-color-ink);
}
.sls-contact .wpcf7-form-control-wrap { display: block; margin-top: 8px; }
.sls-contact input.wpcf7-form-control,
.sls-contact textarea.wpcf7-form-control {
	width: 100%;
	font-family: var(--sls-font-sans);
	font-size: 16px;
	color: var(--sls-color-ink);
	background: var(--sls-color-bg);
	border: 1px solid var(--sls-color-line);
	border-radius: var(--sls-radius);
	padding: 12px 14px;
	transition: border-color .15s, box-shadow .15s;
}
.sls-contact input.wpcf7-form-control:focus,
.sls-contact textarea.wpcf7-form-control:focus {
	outline: none;
	border-color: var(--sls-color-accent);
	box-shadow: 0 0 0 3px rgba(255, 61, 26, .12);
}
.sls-contact textarea.wpcf7-form-control { min-height: 160px; resize: vertical; }
.sls-contact input.wpcf7-submit {
	display: inline-block;
	width: auto;
	font-family: var(--sls-font-sans);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	padding: 15px 34px;
	border: 1px solid var(--sls-color-accent);
	border-radius: var(--sls-radius);
	background: var(--sls-color-accent);
	color: var(--sls-color-accent-ink);
	cursor: pointer;
	transition: background .2s, color .2s, border-color .2s;
}
.sls-contact input.wpcf7-submit:hover {
	background: var(--sls-color-ink);
	border-color: var(--sls-color-ink);
	color: #fff;
}
.sls-contact .wpcf7-not-valid-tip { font-family: var(--sls-font-sans); font-size: 13px; color: var(--sls-color-accent); margin-top: 6px; }
.sls-contact .wpcf7-response-output {
	margin: 20px 0 0 !important;
	padding: 12px 16px;
	border-radius: var(--sls-radius);
	font-family: var(--sls-font-sans);
	font-size: 14px;
}
.sls-contact .wpcf7-spinner { margin: 0 0 0 12px; }

@media (min-width: 860px) {
	.sls-contact__grid { grid-template-columns: 0.85fr 1.15fr; gap: 56px; align-items: start; }
}

/* =========================================================================
 * 12. Shows (events list)
 * ====================================================================== */
.sls-shows__list { list-style: none; margin: 0; padding: 0; }
.sls-show {
	display: grid;
	grid-template-columns: 1fr;
	gap: 18px;
	padding-block: 32px;
	border-bottom: 1px solid var(--sls-color-line);
}
.sls-show:first-child { padding-top: 8px; }

/* Date block */
.sls-show__date {
	display: flex;
	align-items: baseline;
	gap: 8px;
	font-family: var(--sls-font-sans);
	color: var(--sls-color-accent);
}
.sls-show__dow { font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.sls-show__day { font-family: var(--sls-font-display); font-size: 30px; font-weight: 700; line-height: 1; color: var(--sls-color-ink); }
.sls-show__mon { font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }

.sls-show__when {
	font-family: var(--sls-font-sans);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--sls-color-accent);
	margin: 0 0 6px;
}
.sls-show__title { font-size: clamp(20px, 2.4vw, 26px); margin: 0 0 10px; }
.sls-show__title a:hover { color: var(--sls-color-accent); }
.sls-show__where { font-size: 15px; margin: 0 0 10px; }
.sls-show__where strong { color: var(--sls-color-ink); }
.sls-show__where span { color: var(--sls-color-muted); }
.sls-show__excerpt { font-size: 15px; color: var(--sls-color-body); }

.sls-show__media {
	display: block;
	overflow: hidden;
	border-radius: var(--sls-radius);
	background: var(--sls-color-bg-alt);
}
.sls-show__media img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform .5s ease; }
.sls-show:hover .sls-show__media img { transform: scale(1.03); }

.sls-shows__empty { text-align: center; padding-block: 40px; }
.sls-shows__empty p { font-size: 18px; margin-bottom: 20px; }

/* Wider: date | body | image, matching the reference list layout. */
@media (min-width: 720px) {
	.sls-show {
		grid-template-columns: 64px 1fr 300px;
		gap: 28px;
		align-items: start;
	}
	.sls-show__date {
		flex-direction: column;
		align-items: flex-start;
		gap: 2px;
		text-align: left;
		position: sticky;
		top: 96px;
	}
	.sls-show__day { font-size: 40px; }
}

/* 404 */
.sls-error-404 {
	text-align: center;
	max-width: 620px;
	margin-inline: auto;
	padding-block: clamp(56px, 9vw, 112px);
}
.sls-error-404__code {
	font-family: var(--sls-font-display);
	font-size: clamp(88px, 17vw, 150px);
	font-weight: 700;
	line-height: .9;
	color: var(--sls-color-line);
	margin: 0 0 10px;
}
.sls-error-404 .page-title { font-size: clamp(26px, 4vw, 38px); margin: 0 0 14px; }
/* :not([class]) so this targets the description only, not the .sls-error-404__code numeral. */
.sls-error-404__head p:not([class]) {
	font-size: 17px;
	color: var(--sls-color-body);
	max-width: 44ch;
	margin: 0 auto;
}
/* Centre the inline search form and give the actions their own vertical rhythm. */
.sls-error-404__search { margin-top: 36px; }
.sls-error-404__search .sls-search-form { margin-inline: auto; }
.sls-error-404__home { margin: 24px 0 0; }
.sls-error-404__home .sls-btn { min-width: 220px; }

/* =========================================================================
 * 7. Footer
 * ====================================================================== */
.site-footer { background: var(--sls-color-dark); color: #aeb4bd; }
.sls-footer-top__inner {
	display: grid;
	gap: 40px;
	padding-block: 56px;
}
.site-footer .widget-title,
.site-footer .site-title { color: #fff; border-color: rgba(255,255,255,.2); }
.site-footer .widget-title { border-bottom: 0; padding-bottom: 0; letter-spacing: .1em; }
.site-footer a:hover { color: #fff; }

/* Footer brand logo (with social icons stacked beneath) */
.sls-footer-brand { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }
.sls-footer-brand img { max-height: 56px; width: auto; }
.site-title--footer { font-family: var(--sls-font-display); font-size: 34px; font-weight: 700; color: #fff; }

/* Footer link columns */
.sls-footer-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; font-size: 15px; }
.sls-footer-list a { color: #cfd3d9; }

/* Newsletter (underline field + paper-plane subscribe + agree checkbox) */
.sls-newsletter-field {
	display: flex;
	align-items: center;
	gap: 12px;
	border-bottom: 1px solid rgba(255,255,255,.3);
	padding-bottom: 12px;
	margin-bottom: 18px;
}
.sls-newsletter-field input {
	flex: 1;
	background: transparent;
	border: 0;
	color: #fff;
	font-family: var(--sls-font-sans);
	font-size: 18px;
	padding: 4px 0;
}
.sls-newsletter-field input::placeholder { color: rgba(255,255,255,.55); }
.sls-newsletter-field input:focus { outline: none; }
.sls-newsletter-submit {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: none;
	border: 0;
	cursor: pointer;
	color: #fff;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	font-size: 13px;
	white-space: nowrap;
}
.sls-newsletter-submit__icon svg { width: 18px; height: 18px; display: block; }
.sls-newsletter-submit:hover { color: var(--sls-color-accent); }
.sls-newsletter-agree {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 14px;
	color: #9aa0a8;
}
.sls-newsletter-agree input { margin-top: 3px; accent-color: var(--sls-color-accent); }

/* Footer bottom bar */
.sls-footer-bottom { border-top: 1px solid rgba(255,255,255,.1); }
.sls-footer-bottom__inner {
	display: flex; flex-wrap: wrap; gap: 16px;
	justify-content: space-between; align-items: center;
	padding-block: 22px; font-size: 14px;
}
.sls-footer-copyright { margin: 0; }
.sls-footer-copyright__brand { color: var(--sls-color-accent); font-weight: 700; }

/* Legal links, opposite the copyright */
.sls-footer-legal {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 24px;
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: 14px;
}
.sls-footer-legal a { color: #cfd3d9; }
.sls-footer-legal a:hover { color: #fff; }

/* Social links (shared: header + footer) */
.sls-social { display: flex; align-items: center; gap: 22px; list-style: none; margin: 0; padding: 0; }
/* Flex items, not list items: an inline-level link would carry the line box's
   descender space and push the icon above the row's true centre. */
.sls-social__item { display: flex; align-items: center; }
.sls-social__link { display: inline-flex; align-items: center; gap: 8px; }
.sls-social__icon { display: inline-flex; }
.sls-social__svg { width: 18px; height: 18px; display: block; }
.sls-social__label { font-size: 14px; }
.sls-social--footer .sls-social__link { color: #cfd3d9; }
.sls-social--footer .sls-social__link:hover { color: #fff; }
.sls-social--footer .sls-social__svg { width: 26px; height: 26px; }
.sls-social--header .sls-social__link { color: var(--sls-color-ink); }
.sls-social--header .sls-social__link:hover { color: var(--sls-color-accent); }
.sls-social--header .sls-social__svg { width: 22px; height: 22px; }
.sls-social--header .sls-social__label { font-size: 12px; color: var(--sls-color-muted); }
.sls-footer-brand .sls-social { gap: 20px; }

/* =========================================================================
 * 8. Responsive — magazine grid at wider viewports
 * ====================================================================== */
@media (min-width: 782px) {
	.sls-hero__grid { grid-template-columns: 1fr 1.6fr; grid-template-areas: "title title" "side lead" "list list"; }
	.sls-hero__side { grid-area: side; }
	.sls-hero__lead { grid-area: lead; }
	.sls-hero__aside { grid-area: list; }
}

@media (min-width: 992px) {
	.sls-hero__grid {
		grid-template-columns: 1.05fr 1.9fr 1.2fr;
		grid-template-areas: "title title list" "side lead list";
	}
	.sls-editors__grid { grid-template-columns: repeat(5, 1fr); }
	.sls-recent__grid { grid-template-columns: 1fr 320px; }
	.sls-with-sidebar { grid-template-columns: 1fr 320px; }
	.sls-video__grid { grid-template-columns: 1.7fr 1fr; }
	.sls-latest__grid { grid-template-columns: repeat(4, 1fr); }
	.sls-footer-top__inner { grid-template-columns: 1.6fr 1fr 1fr; }
}

/* Mobile nav */
@media (max-width: 781px) {
	.sls-nav-toggle { display: inline-flex; }
	.sls-nav {
		display: none;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		z-index: 20;
		background: var(--sls-color-bg);
		border-top: 1px solid var(--sls-color-line);
		box-shadow: 0 10px 24px rgba(0, 0, 0, .08);
	}
	.sls-nav.is-open { display: block; }
	.sls-nav__inner { padding: 14px 20px; }
	.sls-nav__menu { flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 14px; }
	.sls-card--row { grid-template-columns: 1fr; }
	.sls-recent__top { grid-template-columns: 1fr; }
	.sls-post-grid { grid-template-columns: 1fr; }
	.sls-editors__grid,
	.sls-latest__grid { grid-template-columns: 1fr 1fr; }
	.sls-social--header { display: none; }
}

/* =========================================================================
 * 9. About page
 * ====================================================================== */

/* Reference pairing: serif headings (Ibarra) with a sans body (Montserrat).
 * Re-point the "sans" token within the page so body copy and UI labels use
 * Montserrat, while headings/display keep the --sls-font-display serif. */
.sls-about { --sls-font-sans: var(--sls-font-body); }
.sls-about p,
.sls-about li { font-weight: 400; }
.sls-about .sls-about-intro__body { font-weight: 400; letter-spacing: .01em; }

/* Centred section heading (title flanked by rules, subtitle beneath). */
.sls-section__head--center {
	display: block;
	text-align: center;
	border-bottom: 0;
	padding-bottom: 0;
	margin-bottom: 40px;
}
.sls-section__head--center .sls-section__title {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 20px;
}
.sls-section__head--center .sls-section__title::before,
.sls-section__head--center .sls-section__title::after {
	content: "";
	flex: 0 0 clamp(28px, 8vw, 90px);
	height: 1px;
	background: var(--sls-color-line);
}
.sls-section__head--center .sls-section__sub { margin-top: 8px; }

/* Filled accent button (pairs with the outline .sls-btn). */
.sls-btn--accent {
	background: var(--sls-color-accent);
	border-color: var(--sls-color-accent);
	color: var(--sls-color-accent-ink);
}
.sls-btn--accent:hover {
	background: var(--sls-color-ink);
	border-color: var(--sls-color-ink);
	color: #fff;
}

/* Music-note glyph (list markers + tiles). */
.sls-note-glyph { width: 20px; height: 20px; display: block; }

/* --- Page hero (shared: About, News, …) --------------------------------- */
.sls-page-hero { position: relative; overflow: hidden; }
.sls-page-hero__img {
	width: 100%;
	height: clamp(200px, 26vw, 340px);
	object-fit: cover;
}
.sls-page-hero--placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: clamp(200px, 26vw, 340px);
	text-align: center;
	color: #fff;
	background:
		radial-gradient(120% 140% at 15% 15%, rgba(255,61,26,.55), transparent 55%),
		radial-gradient(120% 140% at 85% 80%, rgba(46,196,182,.45), transparent 55%),
		linear-gradient(120deg, #14181f 0%, #1c2029 55%, #2a1220 100%);
}
.sls-page-hero__inner { padding: 40px 20px; }
.sls-page-hero__kicker { color: rgba(255,255,255,.82); }
.sls-page-hero__tagline {
	font-family: var(--sls-font-display);
	font-size: clamp(28px, 6vw, 68px);
	font-weight: 700;
	line-height: 1.05;
	color: #fff;
	margin: 0;
	overflow-wrap: break-word;
	text-wrap: balance;
}

/* --- Intro / lead ------------------------------------------------------- */
.sls-about-intro__grid { display: grid; gap: 32px; }
.sls-about-intro__title {
	font-size: clamp(26px, 3.6vw, 40px);
	line-height: 1.15;
	margin: 6px 0 0;
}
.sls-about-intro__body { font-size: 18px; line-height: 1.75; }
.sls-about-intro__body p { margin: 0 0 1.2em; }

.sls-about-notes { list-style: none; margin: 0 0 1.4em; padding: 0; display: grid; gap: 14px; }
.sls-about-notes li { display: flex; align-items: flex-start; gap: 14px; }
.sls-about-notes .sls-note-glyph { flex: none; margin-top: 3px; color: var(--sls-color-accent); }

/* --- Image band --------------------------------------------------------- */
.sls-about-figures__grid { display: grid; gap: var(--sls-gap); grid-template-columns: 1fr; }
.sls-about-tile {
	position: relative;
	margin: 0;
	aspect-ratio: 4 / 3;
	border-radius: var(--sls-radius);
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
}
.sls-about-tile .sls-note-glyph { width: 54px; height: 54px; opacity: .9; }
.sls-about-tile figcaption {
	position: absolute;
	left: 20px;
	bottom: 18px;
	font-family: var(--sls-font-sans);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: rgba(255,255,255,.92);
}
.sls-about-tile--a { background: linear-gradient(140deg, #e5386d 0%, #f2683a 55%, #f5b423 100%); }
.sls-about-tile--b { background: linear-gradient(140deg, #2ec4b6 0%, #2d6cf2 60%, #7a3ff2 100%); }

/* --- Sharing our content ------------------------------------------------ */
.sls-about-share__intro,
.sls-about-share__outro {
	max-width: 760px;
	margin-inline: auto;
	text-align: center;
	font-size: 18px;
	line-height: 1.7;
}
.sls-about-share__outro { font-style: italic; color: var(--sls-color-ink); margin-bottom: 0; }
.sls-about-share__grid {
	display: grid;
	gap: var(--sls-gap);
	grid-template-columns: 1fr;
	margin: 36px 0;
}
.sls-about-share__item {
	padding: 28px 26px;
	background: var(--sls-color-bg-alt);
	border-radius: var(--sls-radius);
	border-top: 3px solid var(--sls-color-accent);
}
.sls-about-share__item h3 { font-size: 20px; margin: 0 0 .5em; }
.sls-about-share__item p { margin: 0; font-size: 15px; line-height: 1.65; }

/* --- Stats strip -------------------------------------------------------- */
.sls-stats { background: var(--sls-color-bg-alt); padding-block: clamp(36px, 5vw, 60px); }
.sls-stats__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 32px 20px;
	text-align: center;
}
.sls-stat { display: flex; flex-direction: column; gap: 6px; }
.sls-stat__num {
	font-family: var(--sls-font-display);
	font-size: clamp(30px, 4.5vw, 46px);
	font-weight: 700;
	line-height: 1;
	color: var(--sls-color-ink);
}
.sls-stat__label {
	font-family: var(--sls-font-sans);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--sls-color-muted);
}

/* --- Founder feature ---------------------------------------------------- */
.sls-founder { display: grid; gap: 32px; align-items: start; }
.sls-founder__media { text-align: center; }
.sls-founder__avatar {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 150px;
	height: 150px;
	border-radius: 50%;
	margin-bottom: 18px;
	font-family: var(--sls-font-display);
	font-size: 44px;
	font-weight: 700;
	color: #fff;
	background: linear-gradient(140deg, var(--sls-color-accent), #b71f0a);
	box-shadow: 0 12px 30px rgba(20,24,31,.18);
}
.sls-founder__photo {
	width: 150px;
	height: 150px;
	border-radius: 50%;
	object-fit: cover;
	margin: 0 auto 18px;
	box-shadow: 0 12px 30px rgba(20,24,31,.18);
}
.sls-founder__name { font-size: 24px; margin: 0 0 4px; }
.sls-founder__role {
	font-family: var(--sls-font-sans);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--sls-color-accent);
	margin: 0 0 14px;
}
.sls-founder__social { justify-content: center; }
.sls-founder__social .sls-social__link { color: var(--sls-color-muted); }
.sls-founder__body { font-size: 17px; line-height: 1.75; }
.sls-founder__body p { margin: 0 0 1.1em; }
.sls-founder__body p:last-child { margin-bottom: 0; }

/* --- Closing call-to-action --------------------------------------------- */
.sls-about-cta { background: var(--sls-color-dark); color: #cfd3d9; padding-block: clamp(44px, 6vw, 76px); }
.sls-about-cta__inner { max-width: 720px; margin-inline: auto; text-align: center; }
.sls-about-cta__title { color: #fff; font-size: clamp(26px, 4vw, 40px); margin: 0 0 .5em; }
.sls-about-cta__text { font-size: 18px; line-height: 1.7; margin: 0 0 28px; }
.sls-about-cta__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 14px 28px;
}
.sls-about-cta__link {
	font-family: var(--sls-font-sans);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .06em;
	color: #fff;
	border-bottom: 1px solid rgba(255,255,255,.35);
	padding-bottom: 2px;
}
.sls-about-cta__link:hover { color: var(--sls-color-accent); border-color: var(--sls-color-accent); }

/* --- Newsletter ("Get the best blog stories…") -------------------------- */
.sls-about-news { background: var(--sls-color-bg-alt); padding-block: clamp(44px, 6vw, 76px); }
.sls-about-news__inner { max-width: 620px; margin-inline: auto; text-align: center; }
.sls-about-news__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	border: 1px solid var(--sls-color-line);
	background: var(--sls-color-bg);
	color: var(--sls-color-accent);
	margin-bottom: 22px;
}
.sls-about-news__icon svg { width: 24px; height: 24px; display: block; }
.sls-about-news__title {
	font-size: clamp(24px, 3.4vw, 36px);
	line-height: 1.2;
	max-width: 460px;
	margin: 0 auto 28px;
	text-wrap: balance;
}
.sls-about-news__form { max-width: 460px; margin-inline: auto; }

/* Light-theme overrides for the shared newsletter form controls. */
.sls-about-news .sls-newsletter-field {
	border: 1px solid var(--sls-color-line);
	border-radius: var(--sls-radius);
	background: var(--sls-color-bg);
	padding: 6px 6px 6px 18px;
	margin-bottom: 16px;
}
.sls-about-news .sls-newsletter-field input { color: var(--sls-color-ink); font-size: 16px; }
.sls-about-news .sls-newsletter-field input::placeholder { color: var(--sls-color-muted); }
.sls-about-news .sls-newsletter-submit {
	color: var(--sls-color-ink);
	padding: 11px 16px;
	border-radius: var(--sls-radius);
}
.sls-about-news .sls-newsletter-submit:hover { color: var(--sls-color-accent); }
.sls-about-news .sls-newsletter-agree { justify-content: center; color: var(--sls-color-muted); }

/* About: wider layouts */
@media (min-width: 782px) {
	.sls-about-intro__grid { grid-template-columns: 0.9fr 1.1fr; gap: 48px; }
	.sls-about-figures__grid { grid-template-columns: 1fr 1fr; }
	.sls-about-share__grid { grid-template-columns: repeat(3, 1fr); }
	.sls-stats__grid { grid-template-columns: repeat(4, 1fr); gap: 24px; }
	.sls-founder { grid-template-columns: 280px 1fr; gap: 48px; }
	.sls-founder__media { position: sticky; top: 96px; }
}

/* =========================================================================
 * 13. Single — "Editor's Choice" band
 *
 * Full-bleed row of stacked cards below the article. Reuses the shared card,
 * centred-heading and button styles; only the band, grid and rules are new.
 * ====================================================================== */
.sls-single-editors { background: var(--sls-color-bg-alt); }

/* The flanking rules run out to the container edges here (the About page
 * keeps them short, so widen them only within this section). */
.sls-single-editors .sls-section__head--center .sls-section__title::before,
.sls-single-editors .sls-section__head--center .sls-section__title::after { flex: 1; }

.sls-single-editors__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--sls-gap);
}
.sls-single-editors__grid .sls-card__body {
	padding-bottom: 18px;
	border-bottom: 1px solid var(--sls-color-line);
}
.sls-single-editors__grid .sls-card__meta {
	display: flex;
	align-items: center;
	gap: 14px;
	text-transform: uppercase;
	letter-spacing: .04em;
}

.sls-single-editors__more { margin: 36px 0 0; text-align: center; }
.sls-single-editors__more .sls-btn { min-width: 200px; }

@media (min-width: 782px) {
	.sls-single-editors__grid { grid-template-columns: repeat(4, 1fr); }
}

/* =========================================================================
 * 14. Comments
 *
 * Styles WordPress' default comment markup (wp_list_comments + comment_form),
 * so it needs to target core classes rather than sls-* ones. Everything is
 * scoped under .sls-comments to keep it off the block editor's own forms.
 * ====================================================================== */
.sls-comments {
	margin-top: clamp(40px, 6vw, 64px);
	padding-top: clamp(28px, 4vw, 44px);
	border-top: 2px solid var(--sls-color-ink);
}

.sls-comments__title {
	font-size: clamp(20px, 2.4vw, 26px);
	margin: 0 0 32px;
}

/* --- Comment list --------------------------------------------------------- */
.sls-comments__list,
.sls-comments__list .children {
	list-style: none;
	margin: 0;
	padding: 0;
}
.sls-comments__list .children { padding-left: clamp(16px, 5vw, 56px); }

.sls-comments .comment-body {
	padding: 24px 0;
	border-bottom: 1px solid var(--sls-color-line);
}

.sls-comments .comment-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	column-gap: 14px;
	row-gap: 6px;
	margin-bottom: 14px;
}
.sls-comments .comment-author {
	display: flex;
	align-items: center;
	gap: 12px;
}
.sls-comments .comment-author .avatar {
	flex: 0 0 44px;
	width: 44px;
	height: 44px;
	border-radius: 50%;
}
.sls-comments .comment-author .fn {
	font-family: var(--sls-font-display);
	font-size: 16px;
	font-weight: 700;
	font-style: normal;
	color: var(--sls-color-ink);
}
.sls-comments .comment-author .fn a:hover { color: var(--sls-color-accent); }
.sls-comments .comment-author .says { display: none; }

.sls-comments .comment-metadata {
	font-family: var(--sls-font-sans);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--sls-color-muted);
}
.sls-comments .comment-metadata a:hover { color: var(--sls-color-accent); }
.sls-comments .comment-metadata .edit-link { margin-left: 10px; }

.sls-comments .comment-content {
	color: var(--sls-color-body);
	line-height: 1.7;
}
.sls-comments .comment-content > :last-child { margin-bottom: 0; }
.sls-comments .comment-content a { color: var(--sls-color-ink); text-decoration: underline; }
.sls-comments .comment-content a:hover { color: var(--sls-color-accent); }
.sls-comments .comment-content blockquote {
	margin: 0 0 1.2em;
	padding-left: 16px;
	border-left: 2px solid var(--sls-color-accent);
	font-style: italic;
}

.sls-comments .comment-awaiting-moderation {
	margin: 0 0 12px;
	font-family: var(--sls-font-sans);
	font-size: 13px;
	font-style: italic;
	color: var(--sls-color-accent);
}

.sls-comments .reply { margin-top: 12px; }
.sls-comments .comment-reply-link {
	display: inline-block;
	font-family: var(--sls-font-sans);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--sls-color-ink);
	border-bottom: 1px solid var(--sls-color-line);
	padding-bottom: 3px;
	transition: color .2s, border-color .2s;
}
.sls-comments .comment-reply-link:hover {
	color: var(--sls-color-accent);
	border-color: var(--sls-color-accent);
}

/* Align the body copy under the author name once there's room for the avatar. */
@media (min-width: 600px) {
	.sls-comments .comment-content,
	.sls-comments .comment-awaiting-moderation,
	.sls-comments .reply { padding-left: 56px; }
}

.sls-comments .comment-navigation .nav-links {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	font-family: var(--sls-font-sans);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	margin-top: 28px;
}
.sls-comments .comment-navigation .nav-next { margin-left: auto; }

.sls-comments__closed {
	margin-top: 28px;
	padding: 14px 18px;
	border-radius: var(--sls-radius);
	background: var(--sls-color-bg-alt);
	font-family: var(--sls-font-sans);
	font-size: 14px;
	color: var(--sls-color-muted);
	text-align: center;
}

/* --- Comment form --------------------------------------------------------- */
.sls-comments .comment-respond {
	margin-top: 40px;
	padding: clamp(24px, 4vw, 40px);
	border-radius: var(--sls-radius);
	background: var(--sls-color-bg-alt);
}
/* When JS moves the form into a thread to reply, keep it visually distinct. */
.sls-comments .children .comment-respond { margin-bottom: 24px; }

.sls-comments .comment-reply-title {
	font-size: clamp(20px, 2.4vw, 26px);
	margin: 0;
}
.sls-comments .comment-reply-title small {
	display: inline-block;
	margin-left: 12px;
	font-family: var(--sls-font-sans);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
}
.sls-comments .comment-reply-title small a { color: var(--sls-color-accent); }
.sls-comments .comment-reply-title small a:hover { color: var(--sls-color-ink); }

.sls-comment-form {
	display: grid;
	gap: 20px;
	margin-top: 24px;
}
/* Full width by default; the name/email pair splits into columns below. */
.sls-comment-form > * { grid-column: 1 / -1; margin: 0; }

.sls-comment-form .comment-notes,
.sls-comment-form .logged-in-as {
	font-family: var(--sls-font-sans);
	font-size: 14px;
	line-height: 1.6;
	color: var(--sls-color-muted);
}
.sls-comment-form .comment-notes a,
.sls-comment-form .logged-in-as a { color: var(--sls-color-ink); text-decoration: underline; }
.sls-comment-form .comment-notes a:hover,
.sls-comment-form .logged-in-as a:hover { color: var(--sls-color-accent); }

.sls-comment-form label {
	display: block;
	margin-bottom: 8px;
	font-family: var(--sls-font-sans);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--sls-color-ink);
}
.sls-comment-form .required { color: var(--sls-color-accent); }

.sls-comment-form input[type="text"],
.sls-comment-form input[type="email"],
.sls-comment-form input[type="url"],
.sls-comment-form textarea {
	display: block;
	width: 100%;
	font-family: var(--sls-font-sans);
	font-size: 16px;
	line-height: 1.6;
	color: var(--sls-color-ink);
	background: var(--sls-color-bg);
	border: 1px solid var(--sls-color-line);
	border-radius: var(--sls-radius);
	padding: 12px 14px;
	transition: border-color .15s, box-shadow .15s;
}
.sls-comment-form input[type="text"]:focus,
.sls-comment-form input[type="email"]:focus,
.sls-comment-form input[type="url"]:focus,
.sls-comment-form textarea:focus {
	outline: none;
	border-color: var(--sls-color-accent);
	box-shadow: 0 0 0 3px rgba(255, 61, 26, .12);
}
.sls-comment-form ::placeholder { color: var(--sls-color-muted); opacity: 1; }
.sls-comment-form textarea { min-height: 150px; resize: vertical; }

.sls-comment-form .comment-form-cookies-consent {
	display: flex;
	align-items: flex-start;
	gap: 10px;
}
.sls-comment-form .comment-form-cookies-consent input {
	margin: 3px 0 0;
	accent-color: var(--sls-color-accent);
}
.sls-comment-form .comment-form-cookies-consent label {
	margin: 0;
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
	color: var(--sls-color-body);
}

.sls-comment-form__submit {
	display: inline-block;
	width: auto;
	font-family: var(--sls-font-sans);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	padding: 15px 34px;
	border: 1px solid var(--sls-color-accent);
	border-radius: var(--sls-radius);
	background: var(--sls-color-accent);
	color: var(--sls-color-accent-ink);
	cursor: pointer;
	transition: background .2s, color .2s, border-color .2s;
}
.sls-comment-form__submit:hover {
	background: var(--sls-color-ink);
	border-color: var(--sls-color-ink);
	color: #fff;
}
.sls-comment-form__submit:focus-visible {
	outline: 2px solid var(--sls-color-ink);
	outline-offset: 2px;
}

@media (min-width: 640px) {
	.sls-comment-form { grid-template-columns: 1fr 1fr; }
	.sls-comment-form .comment-form-author { grid-column: 1 / 2; }
	.sls-comment-form .comment-form-email { grid-column: 2 / 3; }
}

/* =========================================================================
 * 15. Legal pages (Privacy Policy, Terms of Use)
 * ====================================================================== */
.sls-legal__inner {
	display: grid;
	gap: 40px;
	padding-block: 56px 72px;
}
.sls-legal__inner--full { max-width: 820px; }

/* Table of contents — sticky beside the document on wide screens. */
.sls-legal__toc { align-self: start; }
.sls-legal__toc-title {
	font-family: var(--sls-font-sans);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--sls-color-muted);
	margin: 0 0 16px;
}
/* Headings carry their own "1.", "2." numbering, so the list adds none. */
.sls-legal__toc-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 12px;
	border-left: 1px solid var(--sls-color-line);
}
.sls-legal__toc-list li { padding-left: 16px; }
.sls-legal__toc-list a {
	display: block;
	font-size: 14px;
	line-height: 1.4;
	color: var(--sls-color-muted);
	text-decoration: none;
}
.sls-legal__toc-list a:hover,
.sls-legal__toc-list a:focus-visible { color: var(--sls-color-accent); }

/* Document body */
.sls-legal__meta {
	font-family: var(--sls-font-sans);
	font-size: 13px;
	letter-spacing: .04em;
	color: var(--sls-color-muted);
	margin: 0 0 32px;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--sls-color-line);
}
.sls-legal__content { max-width: 72ch; }
.sls-legal__content h2 {
	font-family: var(--sls-font-sans);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	line-height: 1.4;
	margin: 48px 0 16px;
	scroll-margin-top: 100px;
}
.sls-legal__content h2:first-child { margin-top: 0; }
.sls-legal__content h3 {
	font-size: 20px;
	margin: 32px 0 12px;
	scroll-margin-top: 100px;
}
.sls-legal__content p { margin: 0 0 18px; line-height: 1.75; }
.sls-legal__content a { color: var(--sls-color-accent); }
.sls-legal__content ul,
.sls-legal__content ol { margin: 0 0 18px; padding-left: 24px; line-height: 1.75; }
.sls-legal__content li { margin-bottom: 10px; }

/* (a) (b) (c) markers for the lettered clauses used through both documents. */
.sls-legal__content ol.sls-legal-alpha {
	list-style: none;
	counter-reset: sls-legal-alpha;
	padding-left: 0;
}
.sls-legal__content ol.sls-legal-alpha > li {
	counter-increment: sls-legal-alpha;
	display: grid;
	grid-template-columns: 40px 1fr;
	column-gap: 8px;
}
.sls-legal__content ol.sls-legal-alpha > li::before {
	content: "(" counter(sls-legal-alpha, lower-alpha) ")";
	color: var(--sls-color-muted);
}

/* Closing copyright / notice block. */
.sls-legal__content .sls-legal-notice {
	margin-top: 48px;
	padding-top: 24px;
	border-top: 1px solid var(--sls-color-line);
	font-size: 14px;
	color: var(--sls-color-muted);
}

@media (min-width: 992px) {
	.sls-legal__inner { grid-template-columns: 260px 1fr; gap: 64px; }
	.sls-legal__inner--full { grid-template-columns: 1fr; }
	.sls-legal__toc { position: sticky; top: 100px; max-height: calc(100vh - 140px); overflow-y: auto; }
}
