/*
Theme Name: Christopher Doesn't Live Here Anymore
Description: Editorial theme for christopherdoesntlivehereanymore.com, a storytelling blog with one story for every address. Version 2 redesigns the restoration theme (which reproduced Hemingway Rewritten) while keeping its content handling, comments and URLs.
Version: 2.0.1
Requires at least: 6.4
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: cdlha
*/

/*
 * Global styles: tokens, base, header, buttons, cards, places, listings, footer.
 * assets/css/home.css  homepage sections (front page only)
 * assets/css/story.css story and page content, comments (singular only)
 */

/* ---------- Tokens ---------- */
:root {
	--color-bg: #f6f5f1;
	--color-surface: #fcfbf8;
	--color-sage: #e9ebe3;
	--color-sage-strong: #dfe3d7;
	--color-text: #232b25;
	--color-heading: #17201a;
	--color-muted: #5a625b;
	--color-border: #dcded5;
	--color-primary: #2d4536;
	--color-primary-hover: #1e3126;
	--color-on-primary: #fff;
	--color-link: #2f5a41;
	--color-footer: #2a3a30;
	--color-on-dark: #fff;
	--color-on-dark-muted: rgba(255, 255, 255, .74);
	--color-focus: #2d4536;

	--font-heading: "Newsreader", Georgia, "Times New Roman", serif;
	--font-body: "Lato", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--font-hand: "Caveat", "Segoe Print", "Bradley Hand", cursive;

	--text-2xs: .6875rem;
	--text-xs: .75rem;
	--text-sm: .875rem;
	--text-base: 1.0625rem;
	--text-lg: 1.1875rem;
	--h1: clamp(2.375rem, 1.45rem + 3.4vw, 4rem);
	--h2: clamp(1.875rem, 1.35rem + 1.9vw, 2.75rem);
	--h3: clamp(1.375rem, 1.15rem + .9vw, 1.75rem);
	--h4: 1.25rem;
	--tracking-caps: .15em;

	--container: 75rem;
	--container-narrow: 45rem;
	--gutter: clamp(1rem, 4vw, 3rem);
	--space-2xs: .25rem;
	--space-xs: .5rem;
	--space-sm: .75rem;
	--space-md: 1rem;
	--space-lg: 1.5rem;
	--space-xl: 2rem;
	--space-2xl: 3rem;
	--space-3xl: 4.5rem;
	--section-space: clamp(2.5rem, 5vw, 4rem);
	--grid-gap: clamp(1rem, 2vw, 1.25rem);
	--header-height: 4.5rem;

	--radius-sm: 2px;
	--radius-md: 4px;
	--radius-lg: 8px;
	--radius-pill: 999px;
	--shadow-sm: 0 1px 2px rgba(23, 32, 26, .06);
	--shadow-md: 0 14px 30px -16px rgba(23, 32, 26, .3);
	--shadow-lg: 0 20px 44px -20px rgba(23, 32, 26, .45), 0 2px 6px rgba(23, 32, 26, .1);
	--ease: cubic-bezier(.2, .7, .2, 1);
	--duration: .2s;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: calc(var(--header-height) + 1rem); }
body {
	margin: 0; background: var(--color-bg); color: var(--color-text);
	font: 400 var(--text-base)/1.65 var(--font-body);
	-webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
	overflow-x: clip;
}
h1, h2, h3, h4, h5, h6 { color: var(--color-heading); font-family: var(--font-heading); font-weight: 400; line-height: 1.15; margin: 0 0 var(--space-md); text-wrap: balance; }
h1 { font-size: var(--h1); }
h2 { font-size: var(--h2); }
h3 { font-size: var(--h3); }
h4 { font-size: var(--h4); }
h5, h6 { font-size: var(--text-lg); }
p { margin: 0 0 var(--space-md); }
img, svg, video { max-width: 100%; }
img { height: auto; }
a { color: var(--color-link); text-underline-offset: .2em; text-decoration-thickness: 1px; transition: color var(--duration) var(--ease); }
a:hover { color: var(--color-primary-hover); }
:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 3px; border-radius: var(--radius-sm); }
button, input, select, textarea { font: inherit; color: inherit; }
b, strong { font-weight: 700; }
ul, ol { padding-left: 1.5em; }
.icon { flex-shrink: 0; vertical-align: middle; }
.nowrap { white-space: nowrap; }

.screen-reader-text {
	border: 0; clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden;
	padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important;
}
.skip-link:focus {
	clip-path: none; height: auto; width: auto; margin: 0; left: var(--space-md); top: var(--space-md); z-index: 1000;
	background: var(--color-surface); color: var(--color-heading); padding: var(--space-sm) var(--space-md);
	box-shadow: var(--shadow-md); font-weight: 700; text-decoration: none;
}

.container {
	width: 100%; max-width: calc(var(--container) + 2 * var(--gutter));
	margin-inline: auto; padding-inline: var(--gutter);
}
.container-narrow { max-width: calc(var(--container-narrow) + 2 * var(--gutter)); }
.section { padding-block: var(--section-space); }

/* Uppercase label used above headings and on metadata */
.eyebrow {
	display: block; margin: 0 0 var(--space-sm); color: var(--color-text);
	font: 700 var(--text-xs)/1.4 var(--font-body); letter-spacing: var(--tracking-caps); text-transform: uppercase;
}
.eyebrow a { color: inherit; text-decoration: none; }
.eyebrow a:hover { color: var(--color-primary); }

.section-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--space-xs) var(--space-md); margin-bottom: var(--space-lg); }
.section-label { margin: 0; font-size: var(--text-xs); }
.section-count { color: var(--color-muted); font-size: var(--text-sm); }

.text-link {
	display: inline-flex; align-items: center; gap: .4rem; color: var(--color-heading); text-decoration: none;
	font: 700 var(--text-2xs)/1 var(--font-body); letter-spacing: var(--tracking-caps); text-transform: uppercase;
	padding-block: .5rem;
}
.text-link:hover { color: var(--color-primary); }
.text-link .icon, .button .icon { transition: transform var(--duration) var(--ease); }
.text-link:hover .icon, .button:hover .icon { transform: translateX(3px); }

/* ---------- Buttons and forms ---------- */
.button, button.button {
	display: inline-flex; align-items: center; justify-content: center; gap: .6rem; min-height: 2.75rem;
	padding: .8rem 1.5rem; border: 1px solid var(--color-primary); border-radius: var(--radius-sm);
	background: var(--color-primary); color: var(--color-on-primary); cursor: pointer; text-decoration: none;
	font: 700 var(--text-xs)/1 var(--font-body); letter-spacing: var(--tracking-caps); text-transform: uppercase;
	transition: background-color var(--duration) var(--ease), border-color var(--duration) var(--ease), box-shadow var(--duration) var(--ease);
}
.button:hover, .button:focus-visible { background: var(--color-primary-hover); border-color: var(--color-primary-hover); color: var(--color-on-primary); box-shadow: var(--shadow-md); }
.button-small { min-height: 2.5rem; padding: .7rem 1.1rem; font-size: var(--text-2xs); }
.button-light { border-color: rgba(255, 255, 255, .25); }

input[type="text"], input[type="email"], input[type="url"], input[type="search"], input[type="password"], textarea {
	width: 100%; min-height: 2.75rem; padding: .65rem .9rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm);
	background: #fff; color: var(--color-text); font-size: var(--text-sm);
	transition: border-color var(--duration) var(--ease), box-shadow var(--duration) var(--ease);
}
input:focus, textarea:focus { border-color: var(--color-primary); box-shadow: 0 0 0 3px rgba(45, 69, 54, .18); outline: none; }
input[type="search"] { -webkit-appearance: none; appearance: none; }

.search-form { position: relative; display: flex; gap: var(--space-xs); max-width: 40rem; }
.search-form > .icon { position: absolute; left: .9rem; top: 50%; transform: translateY(-50%); color: var(--color-muted); pointer-events: none; }
.search-form .search-field { flex: 1; min-width: 0; min-height: 3rem; padding-left: 2.6rem; font-size: 1rem; }
.search-form .search-submit { min-height: 3rem; }

/* ---------- Chips ---------- */
.chips { display: flex; flex-wrap: wrap; gap: var(--space-xs); margin: 0; padding: 0; list-style: none; }
.chip {
	display: inline-flex; align-items: center; gap: .4rem; min-height: 2.25rem; padding: .35rem .85rem;
	border: 1px solid var(--color-border); border-radius: var(--radius-pill); background: var(--color-surface);
	color: var(--color-text); font-size: var(--text-sm); font-weight: 700; text-decoration: none;
	transition: border-color var(--duration) var(--ease), background-color var(--duration) var(--ease), color var(--duration) var(--ease);
}
.chip:hover { border-color: var(--color-primary); color: var(--color-primary); }
.chip[aria-current] { background: var(--color-primary); border-color: var(--color-primary); color: var(--color-on-primary); }
.chip-count { color: var(--color-muted); font-size: var(--text-xs); font-weight: 400; }
.chip[aria-current] .chip-count { color: var(--color-on-dark-muted); }

/* ---------- Header ---------- */
.site-header {
	position: sticky; top: 0; z-index: 50; background: rgba(246, 245, 241, .96);
	border-bottom: 1px solid var(--color-border);
	-webkit-backdrop-filter: saturate(1.4) blur(8px); backdrop-filter: saturate(1.4) blur(8px);
}
.admin-bar .site-header { top: 32px; }
.site-header-inner { display: flex; align-items: center; gap: var(--space-lg); min-height: var(--header-height); }
.site-brand {
	margin-right: auto; color: var(--color-heading); text-decoration: none;
	font: 500 1.3125rem/1.02 var(--font-heading); letter-spacing: -.005em;
}
.site-brand { flex-shrink: 0; }
.site-brand span { display: block; }
.site-header .site-brand { white-space: nowrap; }
.site-brand:hover { color: var(--color-primary); }

.main-navigation .nav-menu, .main-navigation > div > ul { display: flex; align-items: center; gap: clamp(1.25rem, 2.6vw, 2.5rem); margin: 0; padding: 0; list-style: none; }
.main-navigation a:not(.button) {
	position: relative; display: block; padding: .6rem 0; color: var(--color-heading); text-decoration: none;
	font: 700 var(--text-2xs)/1.2 var(--font-body); letter-spacing: var(--tracking-caps); text-transform: uppercase;
}
.main-navigation a:not(.button)::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: .25rem; height: 2px; background: var(--color-primary);
	transform: scaleX(0); transform-origin: left; transition: transform var(--duration) var(--ease);
}
.main-navigation a:not(.button):hover::after,
.main-navigation .current-menu-item > a::after,
.main-navigation .current_page_item > a::after { transform: scaleX(1); }
.follow-link-mobile { display: none; }

.header-actions { display: flex; align-items: center; gap: var(--space-sm); }
.icon-button {
	display: inline-grid; place-items: center; width: 2.75rem; height: 2.75rem; padding: 0;
	border: 0; border-radius: var(--radius-pill); background: transparent; color: var(--color-heading); cursor: pointer;
	transition: background-color var(--duration) var(--ease);
}
.icon-button:hover { background: var(--color-sage); }
.menu-toggle { display: none; }
.menu-toggle .icon-close, .is-menu-open .menu-toggle .icon-open { display: none; }
.is-menu-open .menu-toggle .icon-close { display: inline; }

.site-search { border-top: 1px solid var(--color-border); background: var(--color-surface); padding-block: var(--space-lg); }
.site-search[hidden] { display: none; }

@media (max-width: 960px) {
	.site-header-inner { gap: var(--space-xs); }
	.menu-toggle { display: inline-grid; }
	.header-actions .follow-link { display: none; }
	.main-navigation {
		display: none; position: absolute; top: 100%; left: 0; right: 0;
		max-height: calc(100vh - var(--header-height)); overflow-y: auto;
		padding: var(--space-xs) var(--gutter) var(--space-lg);
		background: var(--color-bg); border-bottom: 1px solid var(--color-border); box-shadow: var(--shadow-md);
	}
	.is-menu-open .main-navigation { display: block; }
	.main-navigation .nav-menu, .main-navigation > div > ul { flex-direction: column; align-items: stretch; gap: 0; }
	.main-navigation a:not(.button) { padding: 1rem 0; border-bottom: 1px solid var(--color-border); font-size: var(--text-xs); }
	.main-navigation a:not(.button)::after { display: none; }
	.main-navigation .current-menu-item > a { color: var(--color-primary); }
	.follow-link-mobile { display: flex; width: 100%; margin-top: var(--space-lg); }
}
@media (max-width: 782px) {
	.admin-bar .site-header { top: 46px; }
}
@media (max-width: 600px) {
	.admin-bar .site-header { top: 0; }
	.site-brand { font-size: 1.125rem; }
}

/* ---------- Cards ---------- */
.card-grid { display: grid; gap: var(--grid-gap); }
.card-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.card-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.card {
	position: relative; display: flex; flex-direction: column; min-width: 0;
	background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-sm);
	overflow: hidden; transition: box-shadow var(--duration) var(--ease), transform var(--duration) var(--ease);
}
.card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.card:focus-within { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.card-media { position: relative; aspect-ratio: 2 / 1; overflow: hidden; background: var(--color-sage); }
.card-media img, .story-image-placeholder { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ease); }
.card:hover .card-media img { transform: scale(1.04); }
.story-image-placeholder { display: grid; place-items: center; color: var(--color-muted); }
.card-body { display: flex; flex: 1; flex-direction: column; gap: var(--space-xs); padding: var(--space-md) var(--space-md) 1.125rem; }
.card-place { position: relative; z-index: 2; margin: 0; font-size: .625rem; }
.card-place a { display: inline-block; padding-block: .2rem; }
.card-title {
	margin: 0; font-size: var(--text-lg); font-weight: 500; line-height: 1.25; text-wrap: pretty;
	display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden;
}
.card-link { color: var(--color-heading); text-decoration: none; }
.card-link::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.card-link:focus-visible { outline: none; }
.card:hover .card-link { color: var(--color-primary); }
.card-excerpt {
	margin: 0; color: var(--color-muted); font-size: var(--text-sm); line-height: 1.6;
	display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden;
}
.card-date { margin: auto 0 0; padding-top: var(--space-2xs); color: var(--color-muted); font-size: var(--text-xs); }

/* Lead card at the top of each listing page */
@media (min-width: 801px) {
	.card-lead { grid-column: 1 / -1; flex-direction: row; }
	.card-lead .card-media { flex: 0 0 58%; aspect-ratio: 16 / 9; }
	.card-lead .card-body { justify-content: center; gap: var(--space-sm); padding: var(--space-xl) clamp(1.5rem, 4vw, 3rem); }
	.card-lead .card-title { font-size: var(--h3); -webkit-line-clamp: 4; }
	.card-lead .card-excerpt { font-size: 1rem; -webkit-line-clamp: 4; }
	.card-lead .card-place { font-size: var(--text-2xs); }
}

@media (max-width: 1024px) {
	.card-grid-4, .card-grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.archive-grid > .card:nth-child(even):last-child { grid-column: 1 / -1; }
}
@media (max-width: 800px) {
	.card-lead { grid-column: 1 / -1; }
	.archive-grid > .card:nth-child(even):last-child { grid-column: auto; }
	.archive-grid > .card:nth-child(odd):last-child { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
	.card-grid-4, .card-grid-3 { grid-template-columns: minmax(0, 1fr); }
	.archive-grid > .card:last-child { grid-column: auto; }
}

/* ---------- Places ---------- */
.places-list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; }
.place + .place { border-left: 1px solid var(--color-border); }
.place a {
	display: flex; flex-direction: column; align-items: center; gap: .2rem; height: 100%;
	padding: var(--space-xs) var(--space-xs) var(--space-md); color: var(--color-text); text-align: center; text-decoration: none;
}
.place-icon {
	display: grid; place-items: center; width: 3.5rem; height: 3.5rem; margin-bottom: var(--space-sm);
	border-radius: 50%; background: var(--color-sage-strong); color: var(--color-heading);
	transition: background-color var(--duration) var(--ease), color var(--duration) var(--ease), transform var(--duration) var(--ease);
}
.place a:hover .place-icon, .place a:focus-visible .place-icon { background: var(--color-primary); color: var(--color-on-primary); transform: translateY(-2px); }
.place-name { color: var(--color-heading); font: 500 1.25rem/1.2 var(--font-heading); }
.place a:hover .place-name { color: var(--color-primary); }
.place-count { color: var(--color-muted); font-size: var(--text-xs); }

.places-list-all { grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); gap: var(--grid-gap); }
.places-list-all .place { border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-surface); }
.places-list-all .place a { padding: var(--space-lg) var(--space-sm); }

@media (max-width: 900px) {
	.places-list:not(.places-list-all) { grid-template-columns: repeat(6, minmax(0, 1fr)); row-gap: var(--space-lg); }
	.places-list:not(.places-list-all) .place { grid-column: span 2; }
	.places-list:not(.places-list-all) .place:nth-child(4) { grid-column: 2 / span 2; }
	.places-list:not(.places-list-all) .place:nth-child(3n + 1) { border-left: 0; }
}
@media (max-width: 560px) {
	.places-list:not(.places-list-all) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.places-list:not(.places-list-all) .place, .places-list:not(.places-list-all) .place:nth-child(4) { grid-column: auto; border-left: 0; }
	.places-list:not(.places-list-all) .place:nth-child(even) { border-left: 1px solid var(--color-border); }
	.places-list:not(.places-list-all) .place:last-child:nth-child(odd) { grid-column: 1 / -1; }
	.places-list-all { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---------- Listing pages ---------- */
.page-hero { padding-block: clamp(2.5rem, 6vw, 4.5rem) clamp(2rem, 4vw, 3rem); border-bottom: 1px solid var(--color-border); background: var(--color-sage); }
.page-hero .page-title { max-width: 22ch; margin-bottom: var(--space-sm); font-size: clamp(2.25rem, 1.5rem + 2.8vw, 3.5rem); line-height: 1.08; }
.page-intro { max-width: 40rem; color: var(--color-text); font-size: var(--text-lg); }
.page-intro p:last-child { margin-bottom: 0; }
.page-meta { margin: 0 0 var(--space-lg); color: var(--color-muted); font-size: var(--text-sm); }
.page-hero .search-form, .page-hero .place-chips, .page-hero .year-nav { margin-top: var(--space-lg); }
.page-hero-avatar { display: block; width: 5.5rem; height: 5.5rem; margin-bottom: var(--space-md); border-radius: 50%; object-fit: cover; }
.page-hero-404 { padding-block: clamp(3.5rem, 9vw, 7rem); }
.page-hero-404 .page-intro { margin-bottom: var(--space-lg); }
.page-hero-404 .button { margin-top: var(--space-md); }
.year-title { margin: 0; font-size: var(--h3); }
.year-group + .year-group { padding-top: 0; }
.stories-main .section-head { padding-bottom: var(--space-sm); border-bottom: 1px solid var(--color-border); }
.no-results { max-width: 40rem; }

.pagination { margin-top: var(--space-2xl); }
.pagination .nav-links { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: var(--space-xs); }
.pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center; gap: .4rem; min-width: 2.75rem; min-height: 2.75rem;
	padding: 0 .9rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-surface);
	color: var(--color-heading); font-size: var(--text-sm); font-weight: 700; text-decoration: none;
}
.pagination a.page-numbers:hover { border-color: var(--color-primary); color: var(--color-primary); }
.pagination .page-numbers.current { background: var(--color-primary); border-color: var(--color-primary); color: var(--color-on-primary); }
.pagination .page-numbers.dots { border: 0; background: none; }

/* ---------- Widgets below stories ---------- */
.widget-area { padding-block: var(--section-space); border-top: 1px solid var(--color-border); }
.widget-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: var(--space-2xl); }
.widget { min-width: 0; font-size: var(--text-sm); }
.widget-title { margin: 0 0 var(--space-md); font: 700 var(--text-xs)/1.4 var(--font-body); letter-spacing: var(--tracking-caps); text-transform: uppercase; }
.widget ul { margin: 0; padding: 0; list-style: none; }
.widget li { padding: .45rem 0; border-bottom: 1px solid var(--color-border); break-inside: avoid; }
.widget a { color: var(--color-text); text-decoration: none; }
.widget a:hover { color: var(--color-primary); text-decoration: underline; }
.widget_recent_entries ul { columns: 2; column-gap: var(--space-xl); }
.widget select { max-width: 100%; }
@media (max-width: 800px) {
	.widget-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) {
	.widget_recent_entries ul { columns: 1; }
}

/* ---------- Follow band ---------- */
.follow-band { position: relative; isolation: isolate; overflow: hidden; padding-block: clamp(2rem, 4vw, 2.75rem); background: #3b3833; color: var(--color-on-dark); }
.follow-band::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(18, 20, 22, .72), rgba(18, 20, 22, .45) 60%, rgba(18, 20, 22, .6)); }
.follow-band-bg { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; }
.follow-band-inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: var(--space-lg) var(--space-2xl); }
.follow-band-text { text-align: center; }
.follow-band .eyebrow { margin-bottom: var(--space-xs); color: var(--color-on-dark-muted); font-size: .625rem; }
.follow-band h2 { margin-bottom: var(--space-xs); color: var(--color-on-dark); font-size: clamp(1.625rem, 1.2rem + 1.2vw, 2.125rem); font-weight: 500; }
.follow-band p { margin: 0 auto; max-width: 30rem; color: var(--color-on-dark-muted); font-size: var(--text-sm); }
.follow-form { display: flex; gap: var(--space-xs); max-width: 28rem; }
.follow-feed { flex: 1; min-width: 0; border-color: transparent; color: var(--color-muted); font-size: var(--text-xs); }
.follow-band :focus-visible { outline-color: var(--color-on-dark); }
@media (max-width: 800px) {
	.follow-band-inner { grid-template-columns: minmax(0, 1fr); justify-items: center; }
	.follow-form { width: 100%; }
}
@media (max-width: 420px) {
	.follow-form { flex-direction: column; }
}

/* ---------- Footer ---------- */
.site-footer { padding-block: var(--space-xl) var(--space-lg); background: var(--color-footer); color: var(--color-on-dark-muted); font-size: var(--text-sm); }
.site-footer a { color: var(--color-on-dark); text-decoration: none; }
.site-footer a:hover { color: var(--color-on-dark); text-decoration: underline; }
.site-footer :focus-visible { outline-color: var(--color-on-dark); }
.site-footer-top { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: var(--space-lg) var(--space-2xl); }
.site-brand-footer { margin: 0; color: var(--color-on-dark); font-size: 1.1875rem; }
.site-footer .site-brand-footer:hover { text-decoration: none; opacity: .85; }
.footer-menu { display: flex; flex-wrap: wrap; justify-content: center; gap: .25rem var(--space-xl); margin: 0; padding: 0; list-style: none; }
.footer-menu a { display: inline-block; padding-block: .6rem; font-size: .8125rem; }
.social-links { display: flex; gap: var(--space-2xs); margin: 0; padding: 0; list-style: none; }
.social-links a { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: 50%; transition: background-color var(--duration) var(--ease); }
.social-links a:hover { background: rgba(255, 255, 255, .1); }
.site-footer-bottom {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-xs) var(--space-lg);
	margin-top: var(--space-lg); padding-top: var(--space-md); border-top: 1px solid rgba(255, 255, 255, .12); font-size: var(--text-xs);
}
.copyright { margin: 0; }
.footer-links { display: flex; flex-wrap: wrap; gap: .25rem var(--space-lg); margin: 0; padding: 0; list-style: none; }
.footer-links a { display: inline-block; padding-block: .35rem; color: var(--color-on-dark-muted); }
@media (max-width: 800px) {
	.site-footer-top { grid-template-columns: minmax(0, 1fr); justify-items: center; text-align: center; }
	.site-footer-bottom { flex-direction: column; text-align: center; }
	.footer-links { justify-content: center; }
}

/* ---------- Motion ---------- */
@media (prefers-reduced-motion: no-preference) {
	html { scroll-behavior: smooth; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
	.card:hover, .card:hover .card-media img, .place a:hover .place-icon { transform: none; }
}

/* ---------- Print ---------- */
@media print {
	.site-header, .follow-band, .site-footer, .post-navigation, .related, .widget-area { display: none; }
	body { background: #fff; }
}
