/*
Theme Name: Michael Woolson Studio
Theme URI: https://michaelwoolson.studio
Author: Michael Woolson Studio
Description: Custom theme for Michael Woolson Studio. Editorial serif type, generous whitespace, image-led sections.
Version: 1.1.0
Requires at least: 6.0
Tested up to: 6.9
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: michaelwoolson-studio
*/

/* ---------- Tokens ---------- */
:root {
	--mws-ink: #0e0e0e;
	--mws-paper: #fafafa;
	--mws-rule: #1a1a1a;
	--mws-muted: #555;
	--mws-accent: #1a1a1a;
	--mws-hero-bg: #000;
	--mws-hero-ink: #f4f4f4;
	--mws-hero-muted: rgba(244,244,244,0.7);

	--mws-font-heading: "Instrument Serif", "Newsreader", Georgia, "Times New Roman", serif;
	--mws-font-body: "Newsreader", Georgia, "Times New Roman", serif;

	--mws-page-padding: clamp(1.25rem, 4vw, 4rem);
	--mws-max-width: 2000px;
	--mws-content-width: 1180px;
	--mws-prose-width: 760px;

	--mws-gap-section: clamp(3.5rem, 8vw, 7.5rem);
	--mws-gap-stack: clamp(1rem, 2vw, 2rem);

	--mws-radius: 0;
}

/* ---------- Reset-ish ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--mws-paper);
	color: var(--mws-ink);
	font-family: var(--mws-font-body);
	font-size: clamp(1rem, 1vw + 0.6rem, 1.125rem);
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; transition: opacity 120ms ease; }
a:hover { opacity: 0.65; }
button { font: inherit; cursor: pointer; }
[hidden] { display: none !important; }

/* ---------- Typography ---------- */
h1, h2, h3, h4 {
	font-family: var(--mws-font-heading);
	font-weight: 400;
	margin: 0 0 0.6em;
	line-height: 1.1;
	letter-spacing: -0.01em;
}
h2.mws-section-title { font-size: clamp(2rem, 4vw, 3.25rem); }
h3 { font-size: clamp(1.4rem, 2vw, 1.8rem); }
p { margin: 0 0 1em; }
.mws-muted { color: var(--mws-muted); font-style: italic; }
.mws-link {
	border-bottom: 1px solid currentColor;
	padding-bottom: 1px;
}
.mws-center { text-align: center; }

/* ---------- Layout ---------- */
.mws-wrap {
	max-width: var(--mws-max-width);
	margin: 0 auto;
	padding: 0 var(--mws-page-padding);
}
.mws-container { max-width: var(--mws-content-width); margin: 0 auto; }
.mws-prose { max-width: var(--mws-prose-width); margin: 0 auto; }
.mws-section { padding: var(--mws-gap-section) 0; }
.mws-section--tight { padding: calc(var(--mws-gap-section) * 0.5) 0; }

/* ---------- Header / Nav ---------- */
.site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: #000;
	border-bottom: 1px solid rgba(255,255,255,0.06);
	color: var(--mws-hero-ink);
}
.site-header__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.75rem;
	padding-block: 1.25rem;
}
.site-header__brand a {
	font-family: var(--mws-font-heading);
	font-size: clamp(1.1rem, 1.4vw, 1.4rem);
	letter-spacing: 0.18em;
	line-height: 1.05;
	display: inline-flex;
	flex-direction: column;
	align-items: flex-start;
}
.site-header__wordmark-top { font-weight: 400; }
.site-header__wordmark-bottom {
	font-family: var(--mws-font-body);
	font-size: 0.62em;
	letter-spacing: 0.55em;
	margin-top: 0.15em;
}
.site-header__logo,
.site-header .custom-logo {
	max-height: 96px;
	width: auto;
	height: auto;
	display: block;
}
.site-header .custom-logo-link {
	display: inline-flex;
	align-items: center;
}
.site-nav { width: 100%; }
.site-nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: clamp(0.85rem, 1.8vw, 1.75rem);
}
.site-nav a {
	font-family: var(--mws-font-heading);
	font-size: 0.95rem;
	letter-spacing: 0.02em;
	padding-block: 0.35rem;
	border-bottom: 1px solid transparent;
}
.site-nav .current-menu-item > a,
.site-nav a[aria-current="page"] { border-bottom-color: currentColor; }

@media (min-width: 900px) {
	.site-header__inner { flex-direction: row; justify-content: space-between; gap: 2rem; }
	.site-nav ul { justify-content: flex-end; }
}

/* ---------- Hero (homepage) ---------- */
.mws-hero {
	background: var(--mws-hero-bg);
	color: var(--mws-hero-ink);
	position: relative;
	padding-top: clamp(2rem, 4vw, 4rem);
	padding-bottom: 0;
	min-height: calc(100vh - 9rem);
	display: flex;
	align-items: stretch;
	overflow: hidden;
}
.mws-hero__inner {
	width: 100%;
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(2rem, 5vw, 4rem);
	align-items: stretch;
}
@media (min-width: 900px) {
	.mws-hero__inner { grid-template-columns: 1.1fr 1fr; gap: clamp(2rem, 5vw, 5rem); }
	/* Nudge the quote up on desktop so its vertical middle sits roughly at
	   the height of the portrait's mouth rather than the geometric centre
	   of the hero. Scales with viewport height so larger screens get a
	   proportionally larger shift, clamped so it never overshoots. */
	.mws-hero__quote { transform: translateY(clamp(-5rem, -6vh, -1.5rem)); }
}
.mws-hero__quote {
	margin: 0;
	align-self: center;
	max-width: 32ch;
	font-family: var(--mws-font-heading);
	font-size: clamp(2rem, 3.5vw, 3.25rem);
	line-height: 1.2;
}
.mws-hero__quote p { margin: 0; }
.mws-hero__quote em { font-style: italic; }
.mws-hero__portrait {
	margin: 0;
	display: flex;
	justify-content: center;
	align-items: flex-end;
	align-self: end;
	min-height: 0;
}
.mws-hero__portrait img {
	width: 100%;
	max-width: 720px;
	max-height: calc(100vh - 6rem);
	height: auto;
	object-fit: contain;
	display: block;
}
.mws-placeholder {
	background: rgba(255,255,255,0.05);
	border: 1px dashed rgba(255,255,255,0.2);
	color: rgba(255,255,255,0.5);
	display: grid;
	place-items: center;
	font-family: var(--mws-font-body);
	letter-spacing: 0.15em;
	text-transform: uppercase;
	font-size: 0.75rem;
}
.mws-placeholder--portrait { width: 100%; max-width: 480px; aspect-ratio: 3/4; }
.mws-placeholder--book {
	aspect-ratio: 2/3;
	background: #efefef;
	border: 1px dashed rgba(0,0,0,0.15);
	color: rgba(0,0,0,0.4);
}
.mws-placeholder--map {
	width: 100%;
	aspect-ratio: 4/3;
	background: #f0f0f0;
	border: 1px dashed rgba(0,0,0,0.15);
	color: rgba(0,0,0,0.4);
}

/* ---------- Technique section ---------- */
.mws-technique {
	display: block;
}
.mws-technique > h2 { margin: 0 0 1.5rem; }
.mws-technique__copy p { font-size: clamp(1.02rem, 0.85vw + 0.6rem, 1.15rem); margin-bottom: 1.1em; }

/* ---------- Image grid (actors) ---------- */
.mws-grid {
	display: grid;
	gap: clamp(0.5rem, 1.2vw, 1.25rem);
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin-top: 2rem;
}
@media (min-width: 700px) { .mws-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 900px) { .mws-grid--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
.mws-grid figure { margin: 0; }
.mws-grid img {
	width: 100%;
	aspect-ratio: 2/3;
	object-fit: cover;
}
.mws-actor.is-hidden { display: none; }
.mws-actor-grid.is-expanded .mws-actor { display: block; }

.mws-actor-grid__cta {
	display: flex;
	justify-content: center;
	margin-top: clamp(2rem, 4vw, 3rem);
}

/* ---------- Pill button ---------- */
.mws-pill-button {
	font-family: var(--mws-font-body);
	font-size: 0.95rem;
	letter-spacing: 0.04em;
	background: transparent;
	color: var(--mws-ink);
	border: 1px solid var(--mws-ink);
	border-radius: 999px;
	padding: 0.85rem 2.4rem;
	transition: background 150ms ease, color 150ms ease, opacity 150ms ease;
}
.mws-pill-button:hover { background: var(--mws-ink); color: var(--mws-paper); opacity: 1; }
.mws-pill-button__less { display: none; }
.mws-pill-button[aria-expanded="true"] .mws-pill-button__more { display: none; }
.mws-pill-button[aria-expanded="true"] .mws-pill-button__less { display: inline; }
.mws-pill-button--solid {
	background: var(--mws-ink);
	color: var(--mws-paper);
	padding: 0.7rem 1.8rem;
}
.mws-pill-button--solid:hover {
	background: var(--mws-paper);
	color: var(--mws-ink);
}

/* ---------- Classes section ---------- */
.mws-classes {
	display: grid;
	gap: clamp(1.25rem, 3vw, 2.5rem);
	grid-template-columns: 1fr;
	margin-top: 2rem;
}
@media (min-width: 700px) { .mws-classes { grid-template-columns: repeat(3, 1fr); } }
.mws-class-card {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	padding-bottom: 1.5rem;
	text-align: center;
}
.mws-class-card__media {
	display: block;
	background: #efefef;
	aspect-ratio: 1/1;
}
.mws-class-card__media img {
	aspect-ratio: 1/1;
	object-fit: cover;
	width: 100%;
	height: 100%;
}
.mws-class-card__eyebrow {
	letter-spacing: 0.3em;
	text-transform: uppercase;
	font-size: 0.85rem;
	color: var(--mws-muted);
	margin: 0;
}
.mws-class-card h3 {
	margin: 0;
	font-family: var(--mws-font-body);
	font-size: 0.95rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

/* ---------- Books section ---------- */
.mws-books__quotes {
	max-width: 880px;
	margin: 0 auto clamp(2rem, 5vw, 4rem);
	text-align: center;
}
.mws-books__quotes blockquote {
	margin: 0 0 2rem;
	font-style: italic;
	font-size: clamp(1.05rem, 1vw + 0.55rem, 1.18rem);
	line-height: 1.55;
}
.mws-books__quotes cite { display: block; font-style: normal; margin-top: 0.6rem; color: var(--mws-muted); }
.mws-books__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(2rem, 5vw, 4rem);
	justify-items: center;
	max-width: 760px;
	margin: 0 auto;
}
@media (min-width: 700px) { .mws-books__grid { grid-template-columns: 1fr 1fr; } }
.mws-book {
	margin: 0;
	text-align: center;
	max-width: 320px;
	width: 100%;
}
.mws-book img {
	width: 100%;
	height: auto;
	aspect-ratio: 2/3;
	object-fit: contain;
	background: #efefef;
}
.mws-book figcaption {
	margin-top: 1rem;
	font-family: var(--mws-font-body);
	font-size: 0.85rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
}
.mws-book-link { margin-top: clamp(2rem, 4vw, 3rem); }

/* ---------- Footer ---------- */
.site-footer {
	background: var(--mws-paper);
	color: var(--mws-ink);
	padding-block: var(--mws-gap-section);
	border-top: 1px solid rgba(0,0,0,0.06);
}
.site-footer__cols {
	display: grid;
	gap: clamp(2rem, 4vw, 3rem);
	grid-template-columns: 1fr;
	text-align: center;
	align-items: start;
}
@media (min-width: 900px) { .site-footer__cols { grid-template-columns: 1fr 1fr 1fr; text-align: left; } }
.site-footer h3 {
	font-size: clamp(1.6rem, 2.4vw, 2rem);
	margin-bottom: 1rem;
}
.site-footer__col { padding: 0 0.5rem; }
.site-footer__follow { margin: 0 0 0.5rem; }
.site-footer__socials {
	display: flex;
	gap: 0.85rem;
	margin: 0 0 1.5rem;
	justify-content: center;
}
@media (min-width: 900px) { .site-footer__socials { justify-content: flex-start; } }
.site-footer__socials a {
	display: inline-flex;
	width: 32px;
	height: 32px;
	align-items: center;
	justify-content: center;
	color: var(--mws-ink);
}
.site-footer__contact-line { margin: 0 0 0.4em; }

.site-footer__map {
	width: 100%;
	aspect-ratio: 4/3;
	max-width: 320px;
	margin: 0 auto;
}
@media (min-width: 900px) {
	.site-footer__studio { text-align: center; }
}
.site-footer__map iframe {
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}

.mws-newsletter-form {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.85rem;
	margin-top: 0.5rem;
}
@media (min-width: 900px) {
	.site-footer__newsletter { text-align: right; }
	.mws-newsletter-form { align-items: flex-end; }
}
.mws-newsletter-form input[type="email"] {
	width: 100%;
	max-width: 320px;
	padding: 0.85rem 1rem;
	background: transparent;
	border: 1px solid rgba(0,0,0,0.2);
	border-radius: 4px;
	font: inherit;
}

.site-footer__note {
	text-align: center;
	max-width: 720px;
	margin: 2rem auto 0;
	font-size: 0.95rem;
}
.site-footer__legal {
	margin-top: 3rem;
	font-size: 0.8rem;
	color: var(--mws-muted);
	text-align: center;
	letter-spacing: 0.05em;
}

/* ---------- Contact page ---------- */
.mws-contact {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(2.5rem, 5vw, 4rem);
	align-items: start;
	max-width: 1180px;
	margin: 0 auto;
}
@media (min-width: 900px) {
	.mws-contact { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}
.mws-contact__title {
	font-family: var(--mws-font-heading);
	font-weight: 400;
	font-size: clamp(2rem, 3.4vw, 2.85rem);
	margin: 0 0 1.75rem;
	letter-spacing: -0.01em;
}
.mws-contact__intro {
	font-size: 0.92rem;
	line-height: 1.65;
	margin: 0 0 1.5rem;
	max-width: 460px;
}
.mws-contact__direct {
	font-size: 0.92rem;
	line-height: 1.7;
	margin: 0 0 clamp(2rem, 5vw, 4rem);
}
.mws-contact__direct a { color: inherit; }
.mws-contact__notice {
	border: 1px solid;
	padding: 0.85rem 1rem;
	font-size: 0.92rem;
	margin: 0 0 1.5rem;
	max-width: 460px;
}
.mws-contact__notice--success { border-color: #1f4d2a; color: #1f4d2a; background: rgba(31,77,42,0.05); }
.mws-contact__notice--error   { border-color: #8a1f1f; color: #8a1f1f; background: rgba(138,31,31,0.05); }

.mws-contact-form {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	max-width: 520px;
}
.mws-contact-form__honeypot {
	position: absolute;
	left: -10000px;
	top: auto;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
.mws-contact-form__group {
	border: 0;
	padding: 0;
	margin: 0;
	min-width: 0;
}
.mws-contact-form__group legend {
	font-size: 0.95rem;
	margin: 0 0 0.5rem;
	padding: 0;
	font-weight: 400;
}
.mws-contact-form__row {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
}
@media (min-width: 500px) {
	.mws-contact-form__row { grid-template-columns: 1fr 1fr; }
}
.mws-contact-form__field {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}
.mws-contact-form__label {
	font-size: 0.78rem;
	line-height: 1.3;
}
.mws-contact-form__required {
	color: var(--mws-muted);
	font-size: 0.72rem;
	margin-left: 0.15rem;
}
.mws-contact-form input[type="text"],
.mws-contact-form input[type="email"],
.mws-contact-form textarea {
	font: inherit;
	font-size: 0.95rem;
	padding: 0.7rem 1rem;
	background: transparent;
	border: 1px solid rgba(0,0,0,0.45);
	border-radius: 999px;
	color: var(--mws-ink);
	width: 100%;
}
.mws-contact-form textarea {
	border-radius: 24px;
	resize: vertical;
	min-height: 140px;
	line-height: 1.5;
}
.mws-contact-form input:focus,
.mws-contact-form textarea:focus {
	outline: none;
	border-color: var(--mws-ink);
	box-shadow: 0 0 0 2px rgba(0,0,0,0.05);
}
.mws-contact-form button[type="submit"] {
	align-self: flex-start;
	margin-top: 0.5rem;
}

.mws-contact__media { margin: 0; }
.mws-contact__media img,
.mws-contact__media .mws-placeholder {
	width: 100%;
	height: auto;
	aspect-ratio: 4/3;
	object-fit: cover;
	display: block;
}

/* ---------- Books page ---------- */
.mws-books-page__header {
	text-align: center;
	margin-bottom: clamp(2.5rem, 5vw, 4rem);
}
.mws-books-page__title {
	font-family: var(--mws-font-heading);
	font-weight: 400;
	font-size: clamp(1.7rem, 2.4vw, 2.25rem);
	margin: 0;
}
.mws-books-page__intro {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	max-width: 920px;
	margin: 0 auto clamp(4rem, 8vw, 7rem);
	text-align: center;
}
.mws-books-quote {
	margin: 0;
	font-style: italic;
	font-size: 0.92rem;
	line-height: 1.6;
}
.mws-books-quote p { margin: 0 0 0.5em; }
.mws-books-quote cite {
	font-style: normal;
	display: block;
	font-size: 0.92rem;
}
.mws-books-quote cite strong { font-weight: 700; font-style: normal; }
.mws-books-quote cite em { font-style: italic; }

.mws-books-page__list {
	display: flex;
	flex-direction: column;
	gap: clamp(3.5rem, 7vw, 6rem);
	max-width: 1040px;
	margin: 0 auto;
}
.mws-book-showcase {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(1.75rem, 4vw, 3rem);
	align-items: start;
}
@media (min-width: 800px) {
	.mws-book-showcase { grid-template-columns: minmax(0, 0.85fr) minmax(0, 1fr); }
}
.mws-book-showcase__cover {
	margin: 0;
	display: flex;
	justify-content: center;
}
.mws-book-showcase__cover-link {
	display: block;
	max-width: 320px;
	margin: 0 auto;
	text-decoration: none;
	transition: opacity 0.2s ease;
}
.mws-book-showcase__cover-link:hover,
.mws-book-showcase__cover-link:focus {
	opacity: 0.88;
}
.mws-book-showcase__cover img {
	width: 100%;
	max-width: 320px;
	height: auto;
	display: block;
	background: #efefef;
}
.mws-book-showcase__body {
	min-width: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.mws-book-showcase__title {
	font-family: var(--mws-font-heading);
	font-weight: 400;
	font-size: clamp(1.6rem, 2.4vw, 2rem);
	margin: 0 0 1rem;
}
.mws-book-showcase__body p {
	font-style: italic;
	font-size: 0.92rem;
	line-height: 1.65;
	margin: 0;
}
.mws-book-showcase__body p em { font-style: italic; }

.mws-books-page__reviews {
	margin-top: clamp(4rem, 8vw, 7rem);
	max-width: 920px;
	margin-left: auto;
	margin-right: auto;
	text-align: center;
	display: flex;
	flex-direction: column;
	gap: 1.75rem;
}
.mws-books-page__reviews-title {
	font-family: var(--mws-font-heading);
	font-weight: 400;
	font-size: clamp(1.4rem, 2vw, 1.85rem);
	margin: 0 0 1rem;
}

/* ---------- Testimonials page ---------- */
.mws-testimonials__header {
	text-align: center;
	margin-bottom: clamp(3rem, 6vw, 5rem);
}
.mws-testimonials__title {
	font-family: var(--mws-font-heading);
	font-weight: 400;
	font-size: clamp(1.7rem, 2.4vw, 2.25rem);
	margin: 0;
}
.mws-testimonials {
	display: flex;
	flex-direction: column;
	gap: clamp(3rem, 6vw, 5rem);
	max-width: 1080px;
	margin: 0 auto;
}
.mws-testimonial {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(1.25rem, 3vw, 2.5rem);
	align-items: start;
}
@media (min-width: 700px) {
	.mws-testimonial { grid-template-columns: 220px minmax(0, 1fr); }
}
@media (min-width: 1000px) {
	.mws-testimonial { grid-template-columns: 240px minmax(0, 1fr); }
}
.mws-testimonial--no-image {
	grid-template-columns: 1fr !important;
	max-width: 780px;
	margin: 0 auto;
}
.mws-testimonial__media { margin: 0; }
.mws-testimonial__media img {
	width: 100%;
	height: auto;
	aspect-ratio: 3/4;
	object-fit: cover;
	display: block;
}
.mws-testimonial__body { min-width: 0; }
.mws-testimonial__head {
	font-family: var(--mws-font-heading);
	font-size: clamp(1.05rem, 1.3vw, 1.25rem);
	font-weight: 400;
	margin: 0 0 1rem;
	line-height: 1.35;
}
.mws-testimonial__name {
	font-weight: 700;
}
.mws-testimonial__credits {
	font-style: italic;
	font-weight: 400;
}
.mws-testimonial__credits em { font-style: italic; }
.mws-testimonial__quotes {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}
.mws-testimonial__quote {
	margin: 0;
	font-style: italic;
	font-size: 0.95rem;
	line-height: 1.65;
}
.mws-testimonial__quote p { margin: 0; }

/* ---------- Private Coaching page ---------- */
.mws-coaching__header {
	text-align: center;
	margin-bottom: clamp(2.5rem, 5vw, 4rem);
}
.mws-coaching__title {
	font-family: var(--mws-font-heading);
	font-weight: 400;
	font-size: clamp(1.6rem, 2.2vw, 2rem);
	margin: 0;
}
.mws-coaching__row {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(2rem, 5vw, 4rem);
	align-items: center;
	max-width: 1080px;
	margin: 0 auto;
}
@media (min-width: 800px) {
	.mws-coaching__row { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); }
}
.mws-coaching__media { margin: 0; }
.mws-coaching__media img,
.mws-coaching__media .mws-placeholder {
	width: 100%;
	height: auto;
	aspect-ratio: 4/3;
	object-fit: cover;
	display: block;
}
.mws-placeholder--coaching {
	background: #efefef;
	border: 1px dashed rgba(0,0,0,0.15);
	color: rgba(0,0,0,0.4);
	display: grid;
	place-items: center;
}
.mws-coaching__body {
	text-align: center;
	font-size: 0.95rem;
	line-height: 1.65;
	max-width: 460px;
	margin: 0 auto;
}
.mws-coaching__body p { margin: 0 0 0.9em; }
.mws-coaching__body-spaced { margin-top: 2.5em !important; }

/* ---------- Classes page ---------- */
.mws-classes-page__header {
	text-align: center;
	margin-bottom: clamp(3rem, 6vw, 5rem);
}
.mws-classes-page__title {
	font-family: var(--mws-font-heading);
	font-weight: 400;
	font-size: clamp(1.6rem, 2.2vw, 2rem);
	margin: 0 0 1.5rem;
}
.mws-classes-page__intro {
	max-width: 860px;
	margin: 0 auto;
	font-size: 0.95rem;
	line-height: 1.65;
}
.mws-classes-page__list {
	display: flex;
	flex-direction: column;
	gap: clamp(3.5rem, 7vw, 6rem);
	max-width: 980px;
	margin: 0 auto;
}
.mws-class-block {
	scroll-margin-top: 9rem;
}
.mws-class-block__title {
	text-align: center;
	font-family: var(--mws-font-heading);
	font-weight: 400;
	letter-spacing: 0.04em;
	font-size: clamp(1.05rem, 1.3vw, 1.3rem);
	margin: 0 0 clamp(1.5rem, 3vw, 2.25rem);
}
.mws-class-block__row {
	display: grid;
	gap: clamp(1.5rem, 4vw, 3rem);
	grid-template-columns: 1fr;
	align-items: start;
}
@media (min-width: 700px) {
	.mws-class-block__row { grid-template-columns: 280px minmax(0, 1fr); }
}
@media (min-width: 1000px) {
	.mws-class-block__row { grid-template-columns: 320px minmax(0, 1fr); }
}
.mws-class-block__media { margin: 0; }
.mws-class-block__media img {
	width: 100%;
	height: auto;
	aspect-ratio: 1/1;
	object-fit: cover;
	display: block;
}
.mws-class-block__body { min-width: 0; }
.mws-class-block__meta {
	margin: 0 0 1em;
	font-size: 0.95rem;
}
.mws-class-block__body p {
	font-size: 0.92rem;
	line-height: 1.65;
	margin: 0 0 0.9em;
}

/* ---------- Staff page ---------- */
.mws-staff__header {
	text-align: center;
	margin-bottom: clamp(3rem, 6vw, 5rem);
}
.mws-staff__title {
	font-family: var(--mws-font-heading);
	font-weight: 400;
	font-size: clamp(1.5rem, 2vw, 1.9rem);
	margin: 0;
}
.mws-staff {
	display: flex;
	flex-direction: column;
	gap: clamp(3.5rem, 7vw, 6.5rem);
	max-width: 980px;
	margin: 0 auto;
}
.mws-staff__member {
	display: grid;
	gap: clamp(1.5rem, 4vw, 3rem);
	grid-template-columns: 1fr;
	align-items: start;
}
@media (min-width: 700px) {
	.mws-staff__member { grid-template-columns: 220px minmax(0, 1fr); }
}
@media (min-width: 1000px) {
	.mws-staff__member { grid-template-columns: 260px minmax(0, 1fr); }
}
.mws-staff__media {
	margin: 0;
}
.mws-staff__media img {
	width: 100%;
	height: auto;
	aspect-ratio: 3/4;
	object-fit: cover;
	display: block;
}
.mws-staff__bio { min-width: 0; }
.mws-staff__name {
	font-family: var(--mws-font-heading);
	font-weight: 400;
	letter-spacing: 0.04em;
	font-size: clamp(1.05rem, 1.2vw, 1.25rem);
	margin: 0 0 1.25rem;
}
.mws-staff__bio p {
	font-size: 0.92rem;
	line-height: 1.65;
	margin: 0 0 0.9em;
}
.mws-staff__bio em { font-style: italic; }

/* ---------- Inline content (posts/pages) ---------- */
.entry-content { max-width: var(--mws-prose-width); margin: 0 auto; }
.entry-content h1, .entry-content h2, .entry-content h3 { margin-top: 1.5em; }

/* ---------- Skip link ---------- */
.screen-reader-text { clip: rect(1px,1px,1px,1px); position: absolute !important; height: 1px; width: 1px; overflow: hidden; }
.skip-link:focus { clip: auto !important; position: static !important; height: auto; width: auto; padding: 0.5rem 1rem; background: var(--mws-ink); color: var(--mws-paper); }
