/*
 * Native Reformer Pilates page.
 *
 * Uses the shared homepage tokens and controls while keeping the page's
 * sections isolated from legacy Elementor styles and other service pages.
 */

.vv-reformer {
	overflow: clip;
	background: var(--vv-paper);
	color: var(--vv-ink);
}

.vv-reformer h1,
.vv-reformer h2,
.vv-reformer h3,
.vv-reformer p {
	margin-top: 0;
}

.vv-reformer h1,
.vv-reformer h2,
.vv-reformer h3 {
	font-weight: 800;
	letter-spacing: -.04em;
	line-height: 1.05;
}

.vv-reformer h1 {
	max-width: 12ch;
	margin-bottom: 1.1rem;
	font-size: clamp(2.5rem, 5vw, 4.8rem);
}

.vv-reformer h2 {
	max-width: 19ch;
	margin-bottom: 1rem;
	font-size: clamp(2rem, 3.25vw, 3.3rem);
}

.vv-reformer h3 {
	margin-bottom: .5rem;
	font-size: clamp(1.14rem, 1.5vw, 1.34rem);
}

.vv-reformer p { color: var(--vv-ink-soft); }

.reformer-hero {
	background: var(--vv-green);
	color: var(--vv-white);
}

.reformer-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	width: 100%;
	max-width: none;
	margin: 0;
}

.reformer-hero__copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(3.1rem, 10vw, 5.5rem) max(1rem, calc((100vw - 75rem) / 2));
}

.reformer-hero__lead {
	max-width: 43rem;
	margin-bottom: 1.4rem;
	color: rgb(255 255 255 / .88) !important;
	font-size: clamp(1rem, 1.45vw, 1.2rem);
	line-height: 1.58;
}

.reformer-hero__facts {
	display: grid;
	gap: .5rem;
	max-width: 35rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.reformer-hero__facts li {
	display: flex;
	align-items: center;
	gap: .55rem;
	color: rgb(255 255 255 / .92);
	font-size: .92rem;
	font-weight: 750;
}

.reformer-hero__facts li::before {
	width: .5rem;
	height: .5rem;
	border-radius: 50%;
	background: var(--vv-red);
	content: "";
}

.reformer-hero__actions { align-items: stretch; }
.reformer-hero__actions .button { width: 100%; }

.reformer-hero__media {
	min-height: 21.5rem;
	margin: 0;
	background: #c9d2cb;
}

.reformer-hero__media img,
.reformer-instructor__media img,
.reformer-first__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.reformer-hero__media img { object-position: 50% 43%; }

.reformer-for,
.reformer-instructor,
.reformer-formats,
.reformer-first,
.reformer-faq,
.reformer-final { padding: clamp(3.8rem, 7vw, 6.5rem) 0; }

#reformer-formati { scroll-margin-top: 7rem; }

.reformer-for { background: var(--vv-paper); }

.reformer-for__inner {
	display: grid;
	gap: 1.5rem;
}

.reformer-for__copy { max-width: 44rem; }
.reformer-for__copy > p { font-size: clamp(1.03rem, 1.5vw, 1.18rem); line-height: 1.62; }

.reformer-for__guidance {
	margin-bottom: 0;
	padding: 1rem 0 0 1.1rem;
	border-left: .22rem solid var(--vv-red);
	font-size: 1rem !important;
	font-weight: 700;
}

.reformer-for a,
.reformer-instructor .text-link {
	color: var(--vv-red-deep);
	font-weight: 850;
}

.reformer-instructor { background: var(--vv-sage); }

.reformer-instructor__grid {
	display: grid;
	gap: 2rem;
}

.reformer-instructor__media {
	max-width: 22rem;
	aspect-ratio: 3 / 4;
	margin: 0;
	overflow: hidden;
	background: #c9d2cb;
}

.reformer-instructor__media img { object-position: 50% 28%; }
.reformer-instructor__copy { align-self: center; max-width: 46rem; }
.reformer-instructor__name { margin-bottom: .15rem; color: var(--vv-ink) !important; font-size: clamp(1.3rem, 2.1vw, 1.65rem); font-weight: 850; }
.reformer-instructor__role { margin-bottom: 1.25rem; color: var(--vv-green) !important; font-weight: 750; }
.reformer-instructor__copy > p:not(.eyebrow):not(.reformer-instructor__name):not(.reformer-instructor__role) { max-width: 42rem; line-height: 1.62; }
.text-link { display: inline-block; margin-top: .4rem; }

.reformer-formats { background: #f5eee8; }
.reformer-formats__heading { margin-bottom: 1.8rem; }

.reformer-formats__grid {
	display: grid;
	gap: 1rem;
}

.reformer-format-card {
	display: flex;
	min-width: 0;
	flex-direction: column;
	padding: clamp(1.5rem, 3vw, 2.3rem);
	border-top: .25rem solid var(--vv-green);
	background: var(--vv-white);
}

.reformer-format-card--group { border-top-color: var(--vv-red); }
.reformer-format-card__label { margin-bottom: .85rem; color: var(--vv-red-deep) !important; font-size: .76rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.reformer-format-card > p:not(.reformer-format-card__label) { max-width: 36rem; margin-bottom: 1.35rem; line-height: 1.58; }

.reformer-format-card__details {
	display: flex;
	gap: 1.5rem;
	margin: auto 0 1.4rem;
}

.reformer-format-card__details div { min-width: 5rem; }
.reformer-format-card__details dt { margin-bottom: .18rem; color: var(--vv-muted); font-size: .75rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.reformer-format-card__details dd { margin: 0; color: var(--vv-ink); font-size: 1.18rem; font-weight: 850; }
.reformer-format-card .button { width: fit-content; max-width: 100%; }

.reformer-first { padding-block: clamp(3.1rem, 5vw, 4.75rem); background: var(--vv-green); color: var(--vv-white); }
.reformer-first h2, .reformer-first h3 { color: var(--vv-white); }

.reformer-first__grid { display: grid; gap: 1.75rem; }
.reformer-first__intro { max-width: 42rem; }
.reformer-first__intro p, .reformer-first__note { color: rgb(255 255 255 / .88) !important; line-height: 1.6; }
.reformer-first__intro p + p { margin-top: 1rem; }
.reformer-first__note { margin: 1.35rem 0 0; padding-top: 1rem; border-top: 1px solid rgb(255 255 255 / .32); font-weight: 750; }
.reformer-first__media { min-height: 20rem; margin: 0; overflow: hidden; background: #c9d2cb; }
.reformer-first__media img { object-position: 50% 43%; }

.reformer-faq { background: var(--vv-paper); }
.reformer-faq__inner { display: grid; gap: 1.8rem; }
.reformer-faq__items { border-top: 1px solid var(--vv-line); }
.reformer-faq details { border-bottom: 1px solid var(--vv-line); }
.reformer-faq summary { position: relative; padding: 1.1rem 2.5rem 1.1rem 0; color: var(--vv-ink); cursor: pointer; font-size: 1.02rem; font-weight: 800; list-style: none; }
.reformer-faq summary::-webkit-details-marker { display: none; }
.reformer-faq summary::after { position: absolute; top: 1rem; right: .25rem; color: var(--vv-red-deep); content: "+"; font-size: 1.4rem; font-weight: 500; }
.reformer-faq details[open] summary::after { content: "−"; }
.reformer-faq__answer { max-width: 44rem; padding: 0 0 1.15rem; }
.reformer-faq__answer p { margin-bottom: 0; line-height: 1.6; }

.reformer-final { background: var(--vv-red-dark); color: var(--vv-white); }
.reformer-final h2 { color: var(--vv-white); }
.reformer-final p:not(.eyebrow) { max-width: 44rem; color: rgb(255 255 255 / .9); font-size: 1.05rem; line-height: 1.58; }
.reformer-final__inner { display: grid; gap: 1.75rem; }
.reformer-final__actions { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.reformer-final .button--light-outline { border: 1px solid rgb(255 255 255 / .82); background: transparent; color: var(--vv-white); }
.reformer-final .button--light-outline:hover { background: rgb(255 255 255 / .12); }
.reformer-final__phone { width: 100%; color: var(--vv-white); font-weight: 850; }

/* The shared paragraph colour has higher specificity than the generic light
 * eyebrow utility, so each dark-surface label is set explicitly here. */
.reformer-hero .eyebrow--light,
.reformer-first .eyebrow--light,
.reformer-final .eyebrow--light { color: rgb(255 255 255 / .92) !important; }

@media (min-width: 48rem) {
	.reformer-hero__grid { grid-template-columns: minmax(0, 1.08fr) minmax(20rem, .92fr); min-height: 35rem; }
	.reformer-hero__copy { padding-right: clamp(2rem, 5vw, 5rem); }
	.reformer-hero__media { min-height: 0; }
	.reformer-hero__actions { align-items: center; }
	.reformer-hero__actions .button { width: auto; }
	.reformer-for__inner { grid-template-columns: minmax(15rem, .8fr) minmax(0, 1.2fr); gap: clamp(2rem, 8vw, 8rem); }
	.reformer-instructor__grid { grid-template-columns: minmax(15rem, .55fr) minmax(0, 1fr); align-items: center; gap: clamp(2.5rem, 7vw, 7rem); }
	.reformer-formats__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.reformer-first__grid { grid-template-columns: minmax(0, 1.05fr) minmax(17rem, .75fr); align-items: stretch; }
	.reformer-first__media { min-height: 100%; }
	.reformer-faq__inner { grid-template-columns: minmax(14rem, .75fr) minmax(0, 1.25fr); gap: clamp(2rem, 8vw, 8rem); }
	.reformer-final__inner { grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 2.5rem; }
	.reformer-final__actions { justify-content: flex-end; max-width: 26rem; }
	.reformer-final__phone { width: auto; }
}

@media (min-width: 64rem) {
	.reformer-hero__grid { grid-template-columns: minmax(0, 1.18fr) minmax(27rem, .82fr); }
	.reformer-hero__copy { padding-block: clamp(4.8rem, 8vw, 7rem); }
	.reformer-instructor__media { max-width: 24rem; }
}

@media (prefers-reduced-motion: reduce) {
	.reformer-faq summary { scroll-behavior: auto; }
}
