/* =============================================================
   The Dominos — main stylesheet
   Washed-film indie aesthetic: cream paper, warm ink, grain,
   serif display (Fraunces), sans body (Inter).
   ============================================================= */

:root {
	--td-bg: #f6f1e8;          /* aged paper */
	--td-bg-deep: #efe6d5;
	--td-ink: #181411;         /* warm black */
	--td-ink-2: #3b332b;
	--td-muted: #7c7268;
	--td-line: rgba(24,20,17,0.12);
	--td-accent: #c2410c;      /* overridden by customizer */
	--td-accent-soft: rgba(194,65,12,0.12);
	--td-max: 1240px;
	--td-gutter: clamp(1rem, 4vw, 2.25rem);
	--td-radius: 4px;
	--td-serif: "Fraunces", "Cormorant Garamond", Georgia, serif;
	--td-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	--td-shadow: 0 20px 60px -30px rgba(24,20,17,0.35);
}

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

html { scroll-behavior: smooth; }

body {
	margin: 0;
	font-family: var(--td-sans);
	font-size: 17px;
	line-height: 1.55;
	color: var(--td-ink);
	background: var(--td-bg);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--td-accent); }

.screen-reader-text {
	position: absolute !important;
	clip: rect(1px,1px,1px,1px); height: 1px; width: 1px; overflow: hidden;
}

/* ---------- Global grain overlay ---------- */
.td-grain {
	pointer-events: none;
	position: fixed; inset: 0;
	z-index: 9999;
	opacity: 0.08;
	mix-blend-mode: multiply;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.15 0 0 0 0 0.12 0 0 0 0 0.09 0 0 0 1 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}

/* ---------- Accessibility skip ---------- */
.td-skip {
	position: absolute; top: -40px; left: 8px;
	background: var(--td-ink); color: var(--td-bg); padding: .5rem .75rem;
	z-index: 10000;
}
.td-skip:focus { top: 8px; }

/* ---------- Wrapper ---------- */
.td-wrap {
	max-width: var(--td-max);
	margin: 0 auto;
	padding-inline: var(--td-gutter);
}

/* ---------- Typography ---------- */
h1,h2,h3,h4,h5 {
	font-family: var(--td-serif);
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.08;
	margin: 0 0 .5em;
	color: var(--td-ink);
	font-variation-settings: "opsz" 80;
}
h1 { font-size: clamp(2.25rem, 5.5vw, 4.5rem); }
h2 { font-size: clamp(1.75rem, 3.5vw, 2.75rem); }
h3 { font-size: 1.35rem; }
p { margin: 0 0 1em; }

em { font-style: italic; font-family: var(--td-serif); font-variation-settings: "opsz" 14; }

.td-prose {
	max-width: 72ch;
	font-size: 1.05rem;
	line-height: 1.7;
}
.td-prose p + p { margin-top: 1em; }
.td-prose a { color: var(--td-accent); text-decoration: underline; text-underline-offset: .2em; text-decoration-thickness: 1px; }

/* ---------- Header ---------- */
.td-header {
	position: sticky; top: 0; z-index: 50;
	background: rgba(246,241,232,0.82);
	backdrop-filter: blur(16px) saturate(140%);
	-webkit-backdrop-filter: blur(16px) saturate(140%);
	border-bottom: 1px solid var(--td-line);
}
.td-header__inner {
	display: flex; align-items: center; justify-content: space-between;
	padding-block: 1rem;
}
.td-brand { display: inline-flex; align-items: center; gap: .5rem; }
.td-brand__wordmark {
	font-family: var(--td-serif);
	font-size: 1.35rem;
	font-weight: 600;
	letter-spacing: -0.02em;
	font-variation-settings: "opsz" 36;
}
.td-brand img { max-height: 44px; width: auto; }

.td-nav__list {
	list-style: none; margin: 0; padding: 0;
	display: flex; gap: 1.5rem;
}
.td-nav__list a {
	font-size: .95rem;
	letter-spacing: .01em;
	position: relative;
}
.td-nav__list a::after {
	content: ""; position: absolute; left: 0; right: 100%; bottom: -4px;
	height: 1px; background: var(--td-accent);
	transition: right .25s ease;
}
.td-nav__list a:hover::after { right: 0; }

.td-nav__toggle {
	display: none;
	background: none; border: 0; padding: .5rem;
	cursor: pointer;
}
.td-nav__burger, .td-nav__burger::before, .td-nav__burger::after {
	display: block; width: 22px; height: 2px; background: var(--td-ink);
	transition: transform .25s ease, opacity .25s ease;
}
.td-nav__burger::before, .td-nav__burger::after {
	content: ""; position: relative;
}
.td-nav__burger::before { top: -6px; }
.td-nav__burger::after { top: 4px; }

@media (max-width: 820px) {
	.td-nav__toggle { display: inline-flex; }
	.td-nav__list {
		position: absolute; top: 100%; left: 0; right: 0;
		background: var(--td-bg); border-bottom: 1px solid var(--td-line);
		flex-direction: column; padding: 1rem var(--td-gutter);
		display: none;
	}
	.td-nav[aria-expanded="true"] .td-nav__list,
	.td-nav.is-open .td-nav__list { display: flex; }
}

/* ---------- Hero ---------- */
.td-hero {
	position: relative; overflow: hidden;
	min-height: clamp(520px, 82vh, 860px);
	display: flex; align-items: flex-end;
	color: var(--td-bg);
	background: var(--td-ink);
	background-image: linear-gradient(180deg, rgba(24,20,17,0.25) 0%, rgba(24,20,17,0.75) 80%), var(--td-hero-bg, none);
	background-size: cover;
	background-position: center 30%;
	isolation: isolate;
}
.td-hero::before {
	content: "";
	position: absolute; inset: 0;
	background: radial-gradient(ellipse at 30% 40%, rgba(255,220,170,0.25), transparent 55%);
	mix-blend-mode: screen;
	pointer-events: none;
}
.td-hero__vignette {
	position: absolute; inset: 0;
	background: radial-gradient(ellipse at center, transparent 40%, rgba(0,0,0,0.55) 100%);
	pointer-events: none;
}
.td-hero__inner {
	position: relative; z-index: 2;
	padding-block: 5rem 7rem;
	width: 100%;
}
.td-hero__eyebrow {
	letter-spacing: .2em;
	font-size: .78rem; text-transform: uppercase;
	opacity: .85;
	margin-bottom: 1.25rem;
}
.td-hero__title {
	color: var(--td-bg);
	font-size: clamp(3rem, 12vw, 10rem);
	line-height: .88;
	margin: 0 0 1rem;
	font-weight: 500;
	letter-spacing: -0.035em;
	font-variation-settings: "opsz" 144;
	text-shadow: 0 2px 40px rgba(0,0,0,0.25);
}
.td-hero__sub {
	max-width: 54ch;
	font-size: clamp(1.1rem, 1.6vw, 1.35rem);
	line-height: 1.5;
	opacity: .9;
}
.td-hero__cta {
	display: flex; flex-wrap: wrap; gap: .75rem;
	margin-top: 1.75rem;
}
.td-hero__marquee {
	position: absolute; bottom: 0; left: 0; right: 0;
	overflow: hidden;
	padding: .65rem 0;
	border-top: 1px solid rgba(255,255,255,0.12);
	background: rgba(0,0,0,0.25);
	font-family: var(--td-serif);
	font-style: italic;
	letter-spacing: .02em;
	font-size: .95rem;
	color: var(--td-bg);
}
.td-hero__marquee-track {
	display: inline-flex; gap: 2rem;
	white-space: nowrap;
	animation: td-marquee 45s linear infinite;
}
@keyframes td-marquee {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}

/* ---------- Buttons ---------- */
.td-btn {
	display: inline-flex; align-items: center; gap: .4rem;
	padding: .85rem 1.25rem;
	font-weight: 500;
	font-size: .95rem;
	border-radius: 999px;
	border: 1px solid currentColor;
	background: transparent;
	transition: transform .2s ease, background .2s ease, color .2s ease;
	cursor: pointer;
}
.td-btn--primary {
	background: var(--td-accent); color: #fff; border-color: var(--td-accent);
}
.td-btn--primary:hover { transform: translateY(-1px); filter: brightness(1.06); color: #fff; }
.td-btn--ghost { color: currentColor; border-color: currentColor; }
.td-btn--ghost:hover { background: currentColor; color: var(--td-bg); }
.td-btn--tiny { padding: .45rem .85rem; font-size: .8rem; }

/* ---------- Section bits ---------- */
.td-sect__head { margin-bottom: 2rem; }
.td-sect__eyebrow {
	letter-spacing: .22em; text-transform: uppercase;
	font-size: .75rem;
	color: var(--td-muted);
	margin-bottom: .5rem;
}
.td-sect__title {
	font-size: clamp(2rem, 4vw, 3.25rem);
	margin-bottom: 0;
}
.td-link-arrow {
	display: inline-flex; align-items: center; gap: .4rem;
	font-weight: 500;
	color: var(--td-accent);
	border-bottom: 1px solid var(--td-accent);
	padding-bottom: 2px;
}

/* ---------- Intro ---------- */
.td-intro {
	padding-block: clamp(4rem, 10vw, 8rem);
	max-width: 1000px;
}
.td-intro__text {
	font-family: var(--td-serif);
	font-size: clamp(1.4rem, 2.6vw, 2.25rem);
	line-height: 1.28;
	letter-spacing: -0.01em;
	color: var(--td-ink);
}

/* ---------- Gig list rows ---------- */
.td-home-gigs, .td-cal { padding-block: clamp(3rem, 8vw, 6rem); }

.td-gig-list { list-style: none; margin: 0; padding: 0; }
.td-gig-row {
	display: grid;
	grid-template-columns: 180px 1fr auto;
	align-items: center; gap: 1.5rem;
	padding: 1.25rem 0;
	border-top: 1px solid var(--td-line);
}
.td-gig-list > li:last-child { border-bottom: 1px solid var(--td-line); }
.td-gig-row__date {
	font-family: var(--td-serif);
	font-size: 1.1rem;
	font-variation-settings: "opsz" 36;
	color: var(--td-ink-2);
}
.td-gig-row--big .td-gig-row__date {
	display: grid;
	line-height: 1;
}
.td-gig-row--big .td-gig-row__d {
	font-size: 2.8rem;
	font-weight: 600;
	letter-spacing: -0.04em;
}
.td-gig-row--big .td-gig-row__m {
	font-size: .85rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--td-muted);
	font-family: var(--td-sans);
	margin-top: .25rem;
}
.td-gig-row__title {
	display: block;
	font-family: var(--td-serif);
	font-size: 1.45rem;
	color: var(--td-ink);
	font-weight: 500;
	letter-spacing: -0.015em;
}
.td-gig-row__title:hover { color: var(--td-accent); }
.td-gig-row__meta {
	display: block;
	color: var(--td-muted);
	font-size: .9rem;
	margin-top: .1rem;
}
.td-gig-row--past { opacity: .72; }
.td-home-gigs__more { margin-top: 2rem; }

@media (max-width: 640px) {
	.td-gig-row {
		grid-template-columns: 1fr;
		gap: .35rem;
	}
}

/* ---------- Pills ---------- */
.td-pill {
	display: inline-block;
	padding: .15rem .55rem;
	border-radius: 999px;
	font-size: .7rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	background: var(--td-accent-soft);
	color: var(--td-accent);
	border: 1px solid var(--td-accent-soft);
}
.td-pill--past { background: rgba(120,110,98,0.15); color: var(--td-muted); border-color: transparent; }
.td-pill--cancelled { background: rgba(180,60,60,0.12); color: #a23; border-color: transparent; text-decoration: line-through; }
.td-pill--booked { background: #1f5d3814; color: #1f5d38; border-color: transparent; }
.td-pill--target { background: rgba(120,110,98,0.12); color: var(--td-ink-2); border-color: transparent; }
.td-pill--contacted { background: #d6b40c1c; color: #8a6a00; border-color: transparent; }
.td-pill--pitched { background: var(--td-accent-soft); color: var(--td-accent); border-color: transparent; }
.td-pill--declined, .td-pill--not_a_fit { background: rgba(100,100,100,0.1); color: var(--td-muted); border-color: transparent; }

/* ---------- Spotify / music ---------- */
.td-home-music {
	background: var(--td-bg-deep);
	padding-block: clamp(4rem, 9vw, 8rem);
	border-block: 1px solid var(--td-line);
}
.td-home-music__grid {
	display: grid;
	grid-template-columns: 1fr 1.1fr;
	gap: clamp(2rem, 5vw, 5rem);
	align-items: center;
}
@media (max-width: 820px) {
	.td-home-music__grid { grid-template-columns: 1fr; }
}

.td-spotify { width: 100%; }

.td-socials {
	list-style: none; padding: 0; margin: 1rem 0 0;
	display: flex; flex-wrap: wrap; gap: .5rem 1.25rem;
}
.td-socials a {
	font-size: .9rem;
	border-bottom: 1px solid var(--td-line);
	padding-bottom: 2px;
}
.td-socials a:hover { border-bottom-color: var(--td-accent); }

/* ---------- Home CTA ---------- */
.td-home-cta {
	padding-block: clamp(4rem, 9vw, 7rem);
	text-align: center;
}
.td-home-cta__title {
	font-size: clamp(2.4rem, 5vw, 4rem);
	margin-bottom: .75rem;
}
.td-home-cta__sub {
	max-width: 60ch; margin: 0 auto 2rem;
	color: var(--td-muted);
	font-size: 1.1rem;
}
.td-home-cta__btns { display: inline-flex; gap: .75rem; flex-wrap: wrap; justify-content: center; }

/* ---------- Placemarkers page ---------- */
.td-pm-intro { padding-block: clamp(3rem, 6vw, 5rem); max-width: 900px; }
.td-pm-intro__lede { color: var(--td-muted); font-size: 1.1rem; max-width: 60ch; }

.td-pm-tool { padding-bottom: 5rem; }
.td-pm-tool__bar {
	display: flex; flex-wrap: wrap; gap: 1rem; align-items: end;
	justify-content: space-between;
	margin-bottom: 1.5rem;
	padding-bottom: 1.25rem;
	border-bottom: 1px solid var(--td-line);
}
.td-pm-filter {
	display: flex; gap: 1rem; flex-wrap: wrap;
}
.td-pm-filter label {
	display: grid; gap: .25rem;
	font-size: .75rem; letter-spacing: .14em; text-transform: uppercase;
	color: var(--td-muted);
}
.td-pm-filter select, .td-pm-filter input {
	font-family: var(--td-sans);
	font-size: .95rem;
	padding: .5rem .75rem;
	border: 1px solid var(--td-line);
	border-radius: 2px;
	background: var(--td-bg);
	color: var(--td-ink);
	min-width: 160px;
}
.td-pm-filter__search input { min-width: 220px; }

.td-pm-tool__viewtoggle {
	display: inline-flex;
	border: 1px solid var(--td-line);
	border-radius: 999px;
	padding: 3px;
	background: var(--td-bg);
}
.td-pm-tool__viewtoggle button {
	padding: .5rem 1rem;
	border: 0;
	background: transparent;
	font-family: var(--td-sans);
	font-size: .85rem;
	letter-spacing: .06em;
	border-radius: 999px;
	cursor: pointer;
	color: var(--td-muted);
}
.td-pm-tool__viewtoggle button[aria-selected="true"] {
	background: var(--td-ink); color: var(--td-bg);
}

.td-pm-map {
	height: clamp(420px, 64vh, 720px);
	width: 100%;
	background: var(--td-bg-deep);
	border: 1px solid var(--td-line);
	border-radius: 6px;
	overflow: hidden;
	filter: contrast(1.05) saturate(.9);
}

.td-pm-list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 1.25rem;
	margin-top: 1rem;
}
.td-pm-card {
	padding: 1.25rem;
	border: 1px solid var(--td-line);
	border-radius: 4px;
	background: var(--td-bg);
	transition: transform .2s ease, box-shadow .2s ease;
}
.td-pm-card:hover { transform: translateY(-2px); box-shadow: var(--td-shadow); }
.td-pm-card__head { display: flex; flex-direction: column; gap: .5rem; margin-bottom: .5rem; }
.td-pm-card__title { font-size: 1.2rem; margin: 0; }
.td-pm-card__where { color: var(--td-muted); font-size: .9rem; margin: 0 0 .75rem; }
.td-pm-card__facts {
	display: flex; flex-wrap: wrap; gap: .5rem;
	font-size: .75rem;
	color: var(--td-ink-2);
}
.td-pm-card__facts span {
	background: var(--td-bg-deep);
	padding: .2rem .55rem;
	border-radius: 999px;
}
.td-pm-empty {
	grid-column: 1 / -1;
	padding: 3rem;
	border: 1px dashed var(--td-line);
	border-radius: 6px;
	text-align: center;
	background: var(--td-bg);
}

.td-pm-map .leaflet-popup-content {
	font-family: var(--td-sans);
	color: var(--td-ink);
}
.td-pm-map .leaflet-popup-content h4 {
	font-family: var(--td-serif);
	margin: 0 0 .25rem;
	font-size: 1.05rem;
}

/* Custom Leaflet marker */
.td-marker {
	width: 22px; height: 22px; border-radius: 50%;
	background: var(--td-accent);
	border: 2px solid #fff;
	box-shadow: 0 2px 10px rgba(0,0,0,0.35);
}
.td-marker--gig-upcoming { background: var(--td-accent); }
.td-marker--gig-past { background: var(--td-muted); }
.td-marker--booked { background: #1f5d38; }
.td-marker--contacted { background: #c99b00; }
.td-marker--pitched { background: var(--td-accent); }
.td-marker--target { background: var(--td-ink-2); }
.td-marker--declined, .td-marker--not_a_fit { background: #999; opacity: .6; }

/* ---------- Calendar page ---------- */
.td-cal-intro { padding-block: clamp(3rem, 6vw, 5rem); max-width: 900px; }
.td-cal-intro__lede { color: var(--td-muted); font-size: 1.1rem; max-width: 60ch; }

.td-cal__tabs {
	display: inline-flex; border: 1px solid var(--td-line);
	border-radius: 999px; padding: 3px; background: var(--td-bg);
	margin-bottom: 1.5rem;
}
.td-cal__tabs button {
	padding: .55rem 1.1rem;
	border: 0; background: transparent;
	font-family: var(--td-sans);
	font-size: .85rem;
	letter-spacing: .06em;
	border-radius: 999px;
	cursor: pointer; color: var(--td-muted);
}
.td-cal__tabs button[aria-selected="true"] { background: var(--td-ink); color: var(--td-bg); }

.td-cal-empty {
	padding: 3rem;
	border: 1px dashed var(--td-line);
	border-radius: 6px;
	text-align: center;
}

/* Month grid */
.td-month-cal {
	--cell: 7;
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	border-top: 1px solid var(--td-line);
	border-left: 1px solid var(--td-line);
}
.td-month-cal__controls {
	grid-column: 1 / -1;
	display: flex; justify-content: space-between; align-items: center;
	padding: 1rem 0;
	border-bottom: 1px solid var(--td-line);
	border-top: 0;
	margin-top: -1px;
}
.td-month-cal__controls h3 { margin: 0; font-size: 1.4rem; }
.td-month-cal__controls button {
	border: 1px solid var(--td-line); background: var(--td-bg);
	padding: .35rem .75rem; cursor: pointer; border-radius: 999px;
	font-family: var(--td-sans); font-size: .8rem;
}
.td-month-cal__head {
	padding: .5rem;
	font-size: .7rem; letter-spacing: .14em; text-transform: uppercase;
	color: var(--td-muted);
	border-right: 1px solid var(--td-line);
	border-bottom: 1px solid var(--td-line);
	background: var(--td-bg-deep);
}
.td-month-cal__cell {
	min-height: 96px;
	padding: .5rem;
	border-right: 1px solid var(--td-line);
	border-bottom: 1px solid var(--td-line);
	position: relative;
	background: var(--td-bg);
}
.td-month-cal__cell--dim { background: var(--td-bg-deep); opacity: .45; }
.td-month-cal__cell--today::after {
	content: ""; position: absolute; inset: 4px;
	border: 1px solid var(--td-accent); border-radius: 2px;
	pointer-events: none;
}
.td-month-cal__num { font-weight: 500; font-size: .9rem; }
.td-month-cal__gig {
	display: block;
	font-size: .72rem;
	background: var(--td-accent-soft);
	color: var(--td-accent);
	border-left: 2px solid var(--td-accent);
	padding: 2px 5px;
	margin-top: 4px;
	border-radius: 2px;
	line-height: 1.2;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

@media (max-width: 640px) {
	.td-month-cal__cell { min-height: 70px; padding: .3rem; }
	.td-month-cal__gig { font-size: .65rem; }
}

/* ---------- About ---------- */
.td-about-head { padding-block: clamp(3rem, 6vw, 6rem); max-width: 900px; }
.td-about-head__lede {
	font-family: var(--td-serif);
	font-size: clamp(1.4rem, 2.4vw, 2rem);
	line-height: 1.3;
}
.td-about-gallery {
	overflow: hidden;
	margin-bottom: 4rem;
	padding-block: 2rem;
	border-block: 1px solid var(--td-line);
	background: var(--td-bg-deep);
}
.td-gallery-strip {
	display: flex;
	gap: 1.25rem;
	animation: td-marquee 60s linear infinite;
}
.td-gallery-strip__item {
	flex: 0 0 auto;
	width: clamp(260px, 28vw, 420px);
	aspect-ratio: 4/5;
	margin: 0;
	border-radius: 2px;
	overflow: hidden;
	filter: sepia(.08) saturate(.92) contrast(1.03);
	box-shadow: var(--td-shadow);
}
.td-gallery-strip__item img { width: 100%; height: 100%; object-fit: cover; }

.td-about-body { padding-bottom: 4rem; font-size: 1.1rem; line-height: 1.7; }
.td-about-links { padding-block: 3rem 5rem; }

/* ---------- Music page ---------- */
.td-music-head { padding-block: clamp(3rem, 6vw, 5rem); }
.td-music-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(2rem, 5vw, 4rem);
	padding-bottom: 5rem;
}
@media (max-width: 820px) { .td-music-grid { grid-template-columns: 1fr; } }

/* ---------- Contact ---------- */
.td-contact { padding-block: clamp(3rem, 6vw, 6rem); }
.td-contact__grid {
	display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4rem);
	margin-top: 2rem;
}
@media (max-width: 820px) { .td-contact__grid { grid-template-columns: 1fr; } }
.td-contact__big {
	font-family: var(--td-serif);
	font-size: clamp(1.5rem, 2.8vw, 2.2rem);
	color: var(--td-accent);
	border-bottom: 2px solid var(--td-accent);
	padding-bottom: 2px;
}

/* ---------- Single pages ---------- */
.td-single-gig, .td-single-pm, .td-page { padding-block: clamp(3rem, 6vw, 6rem); }
.td-gig__head, .td-pm__head { max-width: 900px; margin-bottom: 2rem; }
.td-gig__title, .td-pm__title { font-size: clamp(2rem, 4.5vw, 3.5rem); }
.td-gig__meta, .td-pm__meta { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; margin-bottom: 1rem; color: var(--td-muted); }
.td-gig__media { margin: 0 0 2rem; border-radius: 4px; overflow: hidden; box-shadow: var(--td-shadow); }
.td-pm__grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: 3rem; }
@media (max-width: 820px) { .td-pm__grid { grid-template-columns: 1fr; } }
.td-pm__facts dt { font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: var(--td-muted); margin-top: 1rem; }
.td-pm__facts dd { margin: .2rem 0; font-size: 1rem; }

/* ---------- Footer ---------- */
.td-footer {
	background: var(--td-ink);
	color: var(--td-bg);
	padding-block: 4rem 2rem;
	margin-top: 4rem;
}
.td-footer a { color: var(--td-bg); }
.td-footer a:hover { color: var(--td-accent); }
.td-footer__grid {
	display: grid;
	grid-template-columns: 1.3fr repeat(3, 1fr);
	gap: 3rem;
}
@media (max-width: 820px) {
	.td-footer__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 500px) {
	.td-footer__grid { grid-template-columns: 1fr; }
}
.td-footer__wordmark {
	font-family: var(--td-serif);
	color: var(--td-bg);
	font-size: 2.25rem;
	margin: 0 0 .5rem;
}
.td-footer h4 {
	color: var(--td-bg);
	font-family: var(--td-sans);
	font-size: .75rem;
	letter-spacing: .16em;
	text-transform: uppercase;
	margin: 0 0 .75rem;
	color: rgba(246,241,232,0.6);
}
.td-footer__tag { opacity: .7; max-width: 28ch; }
.td-footer__home { font-size: .85rem; opacity: .6; }
.td-footer__bottom {
	display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem;
	margin-top: 3rem; padding-top: 1.5rem;
	border-top: 1px solid rgba(246,241,232,0.15);
	font-size: .8rem;
	opacity: .7;
}

/* ---------- 404 ---------- */
.td-404 { padding-block: clamp(5rem, 12vw, 10rem); text-align: center; }

/* ---------- Utilities ---------- */
@media (prefers-reduced-motion: reduce) {
	.td-hero__marquee-track, .td-gallery-strip { animation: none; }
	* { scroll-behavior: auto; }
}
