/*
Theme Name: Infinite Strength & Rehabilitation
Theme URI: https://www.infinitestrengthandrehabilitation.net
Author: Ben (redesign demo)
Description: "Three White Lights" — evidence-based strength coaching. Graphite platform bands, bone paper, one ember accent. Big Shoulders display / Source Serif 4 body / IBM Plex Mono data. The referee-lights motif (a good lift earns three white lights; Hannah is an APU/IPF referee) runs through the tagline, coaching tiers and section markers.
Version: 1.2.0
License: GNU General Public License v2 or later
Text Domain: infinite-strength
*/

/* ---------- Fonts (self-hosted, latin subsets) ---------- */
@font-face {
	font-family: "Big Shoulders";
	src: url("assets/fonts/big-shoulders-var.woff2") format("woff2");
	font-weight: 600 800;
	font-display: swap;
}
@font-face {
	font-family: "Source Serif 4";
	src: url("assets/fonts/source-serif-4-var.woff2") format("woff2");
	font-weight: 400 600;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Source Serif 4";
	src: url("assets/fonts/source-serif-4-italic-var.woff2") format("woff2");
	font-weight: 400 600;
	font-style: italic;
	font-display: swap;
}
@font-face {
	font-family: "IBM Plex Mono";
	src: url("assets/fonts/ibm-plex-mono-400.woff2") format("woff2");
	font-weight: 400;
	font-display: swap;
}
@font-face {
	font-family: "IBM Plex Mono";
	src: url("assets/fonts/ibm-plex-mono-500.woff2") format("woff2");
	font-weight: 500;
	font-display: swap;
}

/* ---------- Tokens ---------- */
:root {
	--platform: #1b1d21;   /* graphite — the rubber platform */
	--platform-2: #26292f; /* raised surface on graphite */
	--bone: #f7f6f3;       /* cool paper ground */
	--ink: #24262a;        /* text on light */
	--steel: #62676e;      /* secondary text on light */
	--chalk: #f4f3ef;      /* text on dark */
	--chalk-dim: #b9bcc0;  /* secondary text on dark */
	--ember: #d96c2b;      /* the single accent */
	--ember-deep: #b04a14; /* AA links / small accents on light */
	--light: #ffffff;      /* the referee white light */
	--line: rgba(36, 38, 42, 0.16);
	--line-dark: rgba(244, 243, 239, 0.18);

	--display: "Big Shoulders", "Arial Narrow", sans-serif;
	--serif: "Source Serif 4", georgia, serif;
	--mono: "IBM Plex Mono", monospace;

	--measure: 62ch;
	--wrap: 1180px;
	--gutter: clamp(1.25rem, 4vw, 2.5rem);
}

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

body {
	margin: 0;
	background: var(--bone);
	color: var(--ink);
	font-family: var(--serif);
	font-size: 1.0625rem;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}

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

a { color: var(--ember-deep); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--ink); }

:focus-visible { outline: 2px solid var(--ember); outline-offset: 3px; }

h1, h2, h3, h4 { line-height: 1.05; margin: 0 0 0.6em; }

p { margin: 0 0 1.1em; }

.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	position: absolute !important;
	width: 1px; height: 1px; overflow: hidden;
}
.skip-link:focus {
	clip: auto; clip-path: none; width: auto; height: auto;
	position: fixed; top: 8px; left: 8px; z-index: 99;
	background: var(--platform); color: var(--chalk); padding: 0.5rem 1rem;
}

.wrap { max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gutter); }

/* ---------- Type roles ---------- */
.display {
	font-family: var(--display);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.015em;
	line-height: 0.95;
}

.eyebrow {
	font-family: var(--mono);
	font-size: 0.78rem;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--steel);
	display: flex;
	align-items: center;
	gap: 0.7rem;
	margin: 0 0 1rem;
}
.on-dark .eyebrow { color: var(--chalk-dim); }

/* ---------- Referee lights (signature) ----------
 * Three dots = three white lights = a good lift. Hollow until the section
 * enters the viewport, then they fill one at a time (theme.js adds .is-lit).
 * On light ground the "lit" fill is ink; on dark it is the true white light. */
.lights { display: inline-flex; gap: 0.45rem; flex-shrink: 0; }
.lights i {
	width: 9px; height: 9px; border-radius: 50%;
	border: 1.5px solid currentColor;
	background: transparent;
	transition: background-color 0.3s ease;
}
.lights.is-lit i { background: currentColor; }
.lights.is-lit i:nth-child(1) { transition-delay: 0.1s; }
.lights.is-lit i:nth-child(2) { transition-delay: 0.35s; }
.lights.is-lit i:nth-child(3) { transition-delay: 0.6s; }
.on-dark .lights, .hero .lights { color: var(--light); }

/* Tier level encoding: filled = level. Always static, never animated. */
.lights--tier i { background: transparent; }
.lights--tier[data-level="1"] i:nth-child(-n+1),
.lights--tier[data-level="2"] i:nth-child(-n+2),
.lights--tier[data-level="3"] i:nth-child(-n+3) { background: currentColor; }

/* ---------- Buttons ---------- */
.btn {
	display: inline-block;
	font-family: var(--mono);
	font-size: 0.85rem;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	text-decoration: none;
	padding: 0.85rem 1.6rem;
	border: 1.5px solid transparent;
	background: var(--ember);
	color: var(--ink);
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.btn:hover { background: var(--ink); color: var(--chalk); }
.on-dark .btn:hover, .hero .btn:hover { background: var(--chalk); color: var(--ink); }

.btn--ghost { background: transparent; border-color: currentColor; color: var(--ink); }
.btn--ghost:hover { background: var(--ink); border-color: var(--ink); color: var(--chalk); }
.on-dark .btn--ghost, .hero .btn--ghost { color: var(--chalk); }
.on-dark .btn--ghost:hover, .hero .btn--ghost:hover { background: var(--chalk); border-color: var(--chalk); color: var(--ink); }

/* ---------- Header ---------- */
.site-header {
	display: flex;
	align-items: center;
	gap: 2rem;
	padding: 1.1rem var(--gutter);
	border-bottom: 1px solid var(--line);
	background: var(--bone);
	position: relative;
	z-index: 10;
}
.site-header--overlay {
	position: absolute;
	inset: 0 0 auto 0;
	background: transparent;
	border-bottom-color: var(--line-dark);
	color: var(--chalk);
}

.wordmark {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	text-decoration: none;
	color: inherit;
	margin-right: auto;
}
.wordmark__tiger { width: 44px; height: 44px; color: inherit; }
.wordmark__tiger svg { width: 100%; height: 100%; }
.wordmark__name {
	font-family: var(--display);
	font-weight: 700;
	font-size: 1.5rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	line-height: 0.9;
}
.wordmark__sub {
	display: block;
	font-family: var(--mono);
	font-size: 0.58rem;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--steel);
	margin-top: 0.2rem;
}
.site-header--overlay .wordmark__sub { color: var(--chalk-dim); }

.site-nav__menu {
	display: flex;
	gap: 1.6rem;
	list-style: none;
	margin: 0;
	padding: 0;
	align-items: center;
}
.site-nav__menu a {
	font-family: var(--mono);
	font-size: 0.8rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-decoration: none;
	color: inherit;
	padding: 0.4rem 0;
}
.site-nav__menu a:hover { color: var(--ember); }
.site-nav__cta { margin-left: 0.5rem; }
.site-nav .btn { padding: 0.6rem 1.1rem; font-size: 0.75rem; }

.nav-toggle {
	display: none;
	background: none;
	border: 1.5px solid currentColor;
	color: inherit;
	font-family: var(--mono);
	font-size: 0.75rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	padding: 0.5rem 0.9rem;
	cursor: pointer;
}

@media (max-width: 880px) {
	.nav-toggle { display: block; }
	.site-nav { display: none; }
	.site-nav.is-open {
		display: block;
		position: absolute;
		top: 100%; left: 0; right: 0;
		background: var(--platform);
		color: var(--chalk);
		padding: 1.5rem var(--gutter) 2rem;
		border-bottom: 1px solid var(--line-dark);
	}
	.site-nav.is-open .site-nav__menu { flex-direction: column; align-items: flex-start; gap: 1.1rem; }
}

/* ---------- Hero ---------- */
.hero {
	position: relative;
	min-height: 92vh;
	display: flex;
	align-items: flex-end;
	background: var(--platform);
	color: var(--chalk);
	overflow: hidden;
}
.hero__photo {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: 65% 30%;
	filter: grayscale(1) contrast(1.05);
	opacity: 0.55;
}
.hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(27, 29, 33, 0.95) 0%, rgba(27, 29, 33, 0.35) 45%, rgba(27, 29, 33, 0.15) 100%);
}
.hero__inner {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: var(--wrap);
	margin-inline: auto;
	padding: 9rem var(--gutter) 4.5rem;
}
.hero__tagline {
	display: flex;
	align-items: center;
	gap: 1.4rem;
	font-family: var(--mono);
	font-size: 0.78rem;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--chalk-dim);
	margin-bottom: 1.6rem;
	flex-wrap: wrap;
}
.hero__tagline .lights { color: var(--light); }
.hero__name {
	font-size: clamp(4rem, 13vw, 10rem);
	font-weight: 800;
	color: var(--light);
	margin: 0;
}
.hero__field {
	font-family: var(--serif);
	font-style: italic;
	font-weight: 400;
	font-size: clamp(1.4rem, 3.4vw, 2.4rem);
	color: var(--chalk);
	margin: 0.4rem 0 1.6rem;
}
.hero__copy { max-width: 46ch; color: var(--chalk-dim); font-size: 1.05rem; }
.hero__cta { display: flex; gap: 1rem; flex-wrap: wrap; margin-top: 2rem; }

/* ---------- Sections ---------- */
.section { padding: clamp(3.5rem, 8vw, 6.5rem) 0; }
.section--tight { padding-top: 0; }
.section__head { margin-bottom: clamp(2rem, 4vw, 3.2rem); }
.section__title {
	font-family: var(--display);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.015em;
	font-size: clamp(2.1rem, 4.6vw, 3.4rem);
	margin: 0;
}
.section__lede { max-width: var(--measure); color: var(--steel); font-size: 1.1rem; margin-top: 0.9rem; }

.band {
	background: var(--platform);
	color: var(--chalk);
}
.band .section__lede { color: var(--chalk-dim); }
.band a:not(.btn) { color: var(--chalk); }

/* ---------- Home: intro ---------- */
.intro { display: grid; grid-template-columns: minmax(260px, 380px) 1fr; gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.intro__portrait img { width: 100%; box-shadow: 12px 12px 0 var(--ember); }
.intro__role {
	font-family: var(--mono);
	font-size: 0.78rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--ember-deep);
	margin-bottom: 0.8rem;
}
.intro__name { font-family: var(--display); text-transform: uppercase; font-size: clamp(2rem, 4vw, 3rem); }
.intro__body { max-width: var(--measure); }
@media (max-width: 760px) { .intro { grid-template-columns: 1fr; } .intro__portrait { max-width: 320px; } }

/* ---------- Cards ---------- */
.card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.6rem; }
@media (max-width: 900px) { .card-grid { grid-template-columns: 1fr; } }

.card {
	background: var(--light);
	border: 1px solid var(--line);
	display: flex;
	flex-direction: column;
}
.card__media { aspect-ratio: 4 / 3; overflow: hidden; }
.card__media img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(0.2); transition: filter 0.3s ease; }
.card:hover .card__media img { filter: grayscale(0); }
.card__body { padding: 1.5rem 1.5rem 1.7rem; display: flex; flex-direction: column; flex: 1; }
.card__title { font-family: var(--display); text-transform: uppercase; font-size: 1.5rem; font-weight: 700; margin-bottom: 0.5rem; }
.card__body p { color: var(--steel); font-size: 0.98rem; flex: 1; }
.card__link {
	font-family: var(--mono);
	font-size: 0.78rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
	margin-top: 0.6rem;
}

/* ---------- Coaching tiers ---------- */
.tiers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.6rem; align-items: stretch; }
@media (max-width: 900px) { .tiers { grid-template-columns: 1fr; } }
.tier {
	border: 1px solid var(--line);
	background: var(--light);
	padding: 1.8rem 1.7rem;
	display: flex;
	flex-direction: column;
}
.tier--featured { border-color: var(--ink); border-width: 2px; }
.tier__level {
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-family: var(--mono);
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--steel);
	margin-bottom: 1.1rem;
}
.tier__name { font-family: var(--display); text-transform: uppercase; font-size: 1.9rem; font-weight: 700; margin-bottom: 0.2rem; }
.tier__price { font-family: var(--mono); font-size: 0.85rem; color: var(--ember-deep); margin-bottom: 1.2rem; }
.tier__list { list-style: none; margin: 0 0 1.4rem; padding: 0; flex: 1; }
.tier__list li { padding: 0.55rem 0; border-top: 1px solid var(--line); font-size: 0.97rem; }
.tier__list li:first-child { border-top: 0; }

/* ---------- Pricing tables (meet-program style) ---------- */
.price-table { border-top: 2px solid var(--ink); margin-bottom: 2.8rem; }
.price-table__group {
	font-family: var(--display);
	font-weight: 700;
	text-transform: uppercase;
	font-size: 1.6rem;
	padding: 1.2rem 0 0.4rem;
}
.price-row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1.5rem;
	padding: 0.8rem 0;
	border-bottom: 1px solid var(--line);
}
.price-row__label { flex: 1; }
.price-row__note { display: block; color: var(--steel); font-size: 0.9rem; }
.price-row__amount { font-family: var(--mono); font-weight: 500; font-size: 1rem; white-space: nowrap; }
.price-note { font-family: var(--mono); font-size: 0.8rem; color: var(--steel); margin-top: -1.8rem; margin-bottom: 2.8rem; }

/* ---------- App band / app pages ---------- */
.app-band__grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
@media (max-width: 860px) { .app-band__grid { grid-template-columns: 1fr; } }
.app-band__title { font-family: var(--display); text-transform: uppercase; font-weight: 800; font-size: clamp(2.6rem, 6vw, 4.4rem); color: var(--light); margin: 0 0 1rem; }
.app-band__price { font-family: var(--mono); font-size: 0.85rem; color: var(--chalk-dim); margin: 1.4rem 0 0; }
.app-band__figure { background: var(--platform-2); border: 1px solid var(--line-dark); padding: 1.5rem; }
.app-band__figure img { width: 100%; }
.app-band__figure figcaption { font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--chalk-dim); margin-top: 0.9rem; }

.check-list { list-style: none; margin: 1.2rem 0 0; padding: 0; columns: 2; column-gap: 2.5rem; }
.check-list li { padding: 0.45rem 0 0.45rem 1.4rem; position: relative; break-inside: avoid; font-size: 0.98rem; }
.check-list li::before { content: ""; position: absolute; left: 0; top: 0.95em; width: 8px; height: 8px; border-radius: 50%; background: var(--ember); }
@media (max-width: 640px) { .check-list { columns: 1; } }

/* ---------- Page hero (interior pages) ----------
 * padding-block only: the element doubles as a .wrap, whose gutter padding a
 * padding shorthand here would silently zero out. */
.page-hero { padding-block: clamp(3rem, 7vw, 5.5rem) 0; }
.page-hero__title { font-size: clamp(2.8rem, 7vw, 5.5rem); margin: 0; }
.page-hero__lede { max-width: var(--measure); font-size: 1.15rem; color: var(--steel); margin-top: 1.2rem; }

/* ---------- Meet Hannah ---------- */
.bio { display: grid; grid-template-columns: 1fr minmax(280px, 420px); gap: clamp(2rem, 5vw, 4.5rem); align-items: start; }
@media (max-width: 820px) { .bio { grid-template-columns: 1fr; } }
.bio__text { max-width: var(--measure); }
.bio__photos { display: grid; gap: 1.2rem; }
.bio__photos figure { margin: 0; }
.bio__photos img { width: 100%; }
.bio__photos figcaption { font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--steel); margin-top: 0.5rem; }

.quals details { border-top: 1px solid var(--line); }
.quals details:last-child { border-bottom: 1px solid var(--line); }
.quals summary {
	font-family: var(--display);
	font-weight: 700;
	text-transform: uppercase;
	font-size: 1.4rem;
	padding: 1.1rem 0;
	cursor: pointer;
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.quals summary::-webkit-details-marker { display: none; }
.quals summary::after { content: "+"; font-family: var(--mono); font-size: 1.2rem; color: var(--ember-deep); }
.quals details[open] summary::after { content: "\2212"; }
.quals ul { list-style: none; margin: 0 0 1.4rem; padding: 0; max-width: var(--measure); }
.quals ul li { padding: 0.4rem 0 0.4rem 1.4rem; position: relative; font-size: 0.98rem; }
.quals ul li::before { content: ""; position: absolute; left: 0; top: 0.9em; width: 7px; height: 7px; border-radius: 50%; border: 1.5px solid var(--ink); }

.callout {
	border: 1px solid var(--line);
	border-left: 4px solid var(--ember);
	background: var(--light);
	padding: 1.5rem 1.8rem;
	max-width: var(--measure);
}
.callout p:last-child { margin-bottom: 0; }

/* ---------- Podcast / partners ---------- */
.podcast { display: grid; grid-template-columns: minmax(180px, 260px) 1fr; gap: clamp(1.5rem, 4vw, 3rem); align-items: center; }
@media (max-width: 700px) { .podcast { grid-template-columns: 1fr; } }
.podcast img { width: 100%; border: 1px solid var(--line); }

.partners { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.6rem; }
@media (max-width: 900px) { .partners { grid-template-columns: 1fr; } }
.partner { border: 1px solid var(--line); background: var(--light); padding: 1.7rem; }
.partner__logo { height: 54px; display: flex; align-items: center; margin-bottom: 1rem; }
.partner__logo img { max-height: 100%; width: auto; }
.partner__name { font-family: var(--display); text-transform: uppercase; font-size: 1.3rem; font-weight: 700; margin-bottom: 0.4rem; }
.partner p { color: var(--steel); font-size: 0.95rem; margin-bottom: 0; }

/* ---------- Blog ---------- */
.post-list { border-top: 2px solid var(--ink); }
.post-teaser { display: grid; grid-template-columns: minmax(200px, 300px) 1fr; gap: clamp(1.5rem, 4vw, 3rem); padding: 2.2rem 0; border-bottom: 1px solid var(--line); align-items: center; }
@media (max-width: 700px) { .post-teaser { grid-template-columns: 1fr; } }
.post-teaser__media img { aspect-ratio: 3 / 2; object-fit: cover; width: 100%; filter: grayscale(0.2); }
.post-teaser__meta { font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--steel); margin-bottom: 0.6rem; }
.post-teaser__title { font-family: var(--display); text-transform: uppercase; font-size: clamp(1.5rem, 2.6vw, 2.1rem); font-weight: 700; margin: 0 0 0.5rem; }
.post-teaser__title a { text-decoration: none; color: inherit; }
.post-teaser__title a:hover { color: var(--ember-deep); }
.post-teaser__excerpt { color: var(--steel); font-size: 0.98rem; }

.prose { max-width: none; }
.prose h2, .prose h3 { font-family: var(--display); text-transform: uppercase; margin-top: 1.8em; }
.prose h2 { font-size: 1.9rem; }
.prose h3 { font-size: 1.45rem; }
.prose img { margin: 2rem 0; }
.prose blockquote { border-left: 3px solid var(--ember); margin: 1.5rem 0; padding: 0.3rem 0 0.3rem 1.4rem; font-style: italic; color: var(--steel); }

.single-hero { padding-block: clamp(3rem, 6vw, 4.5rem) 2rem; }
.single-hero__meta { font-family: var(--mono); font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--steel); margin-bottom: 1rem; }
.single-hero__title { font-size: clamp(2.2rem, 5.5vw, 4rem); }

/* ---------- Forms ---------- */
.form { max-width: 640px; }
.form__row { margin-bottom: 1.4rem; }
.form label {
	display: block;
	font-family: var(--mono);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	margin-bottom: 0.45rem;
}
.form input[type="text"],
.form input[type="email"],
.form select,
.form textarea {
	width: 100%;
	font-family: var(--serif);
	font-size: 1rem;
	padding: 0.75rem 0.9rem;
	border: 1px solid var(--line);
	background: var(--light);
	color: var(--ink);
}
.form input:focus, .form textarea:focus, .form select:focus { outline: 2px solid var(--ember); outline-offset: 0; border-color: transparent; }
.form textarea { min-height: 150px; resize: vertical; }
.form fieldset { border: 1px solid var(--line); padding: 1rem 1.2rem 1.2rem; margin: 0 0 1.4rem; }
.form legend { font-family: var(--mono); font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; padding: 0 0.4rem; }
.form .choice { display: flex; align-items: center; gap: 0.6rem; padding: 0.3rem 0; }
.form .choice label { margin: 0; text-transform: none; letter-spacing: 0; font-family: var(--serif); font-size: 1rem; }
.form .btn { border: 0; cursor: pointer; }

/* Contact Form 7 output inside a .form wrapper (shortcode markup uses the .form__row classes) */
.form .wpcf7-form-control-wrap { display: block; }
.form .wpcf7-list-item { display: flex; align-items: center; gap: 0.6rem; padding: 0.3rem 0; margin: 0; }
.form .wpcf7-list-item label { display: flex; align-items: center; gap: 0.6rem; margin: 0; text-transform: none; letter-spacing: 0; font-family: var(--serif); font-size: 1rem; }
.form .wpcf7-not-valid-tip { font-family: var(--mono); font-size: 0.75rem; color: var(--ember-deep); margin-top: 0.35rem; }
.form .wpcf7-response-output { font-family: var(--mono); font-size: 0.8rem; border: 1px solid var(--ember-deep); color: var(--ember-deep); padding: 0.8rem 1rem; margin: 1.4rem 0 0; }
.form .wpcf7-spinner { display: none; }

/* ---------- CTA band ---------- */
.cta-band { text-align: center; }
.cta-band .section__title { font-size: clamp(2.2rem, 4.5vw, 3.4rem); color: var(--light); text-wrap: balance; }
.cta-band .eyebrow { justify-content: center; }
.cta-band__actions { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; margin-top: 2rem; }

/* ---------- Footer ---------- */
.site-footer { background: var(--platform); color: var(--chalk-dim); }
.site-footer__grid {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr 1fr;
	gap: 2.5rem;
	padding: clamp(3rem, 6vw, 4.5rem) 0 2.5rem;
}
@media (max-width: 860px) { .site-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .site-footer__grid { grid-template-columns: 1fr; } }
.site-footer__tiger { width: 72px; color: var(--chalk); margin-bottom: 1rem; }
.site-footer__tagline { font-family: var(--mono); font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; display: flex; align-items: center; gap: 0.8rem; color: var(--chalk); }
.site-footer h4 { font-family: var(--mono); font-size: 0.75rem; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; color: var(--chalk); margin-bottom: 1rem; }
.site-footer ul { list-style: none; margin: 0; padding: 0; }
.site-footer ul li { padding: 0.3rem 0; }
.site-footer a { color: var(--chalk-dim); text-decoration: none; }
.site-footer a:hover { color: var(--light); }
.site-footer__bar {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
	padding: 1.4rem 0 2rem;
	border-top: 1px solid var(--line-dark);
	font-family: var(--mono);
	font-size: 0.72rem;
	letter-spacing: 0.08em;
}

/* ---------- Reveal motion ---------- */
.reveal { opacity: 0; transform: translateY(18px); transition: opacity 0.55s ease, transform 0.55s ease; }
.reveal.is-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
	.reveal { opacity: 1; transform: none; transition: none; }
	.lights i { transition: none; }
	.lights i, .lights.is-lit i { background: currentColor; }
	.lights--tier i { background: transparent; }
	.lights--tier[data-level="1"] i:nth-child(-n+1),
	.lights--tier[data-level="2"] i:nth-child(-n+2),
	.lights--tier[data-level="3"] i:nth-child(-n+3) { background: currentColor; }
}
