/* =========================================================================
   Clean Theory — frame.css (v1.3.0)
   Layout frame + rhythm, served at a fresh path so no CDN or browser can
   hand out a stale copy of these rules. Loads after main.css.
   ========================================================================= */

/* ---------- Layout frame: reading measure + wide stage ------------------- */

/* Layout frame is now owned by main.css (single source of truth for
   flush-left alignment across header, headings, and body text). */

/* ---------- Desktop rhythm -----------------------------------------------
   Prior clamps used vw units that keep growing with viewport width — tuned
   for mobile, they balloon into loose, empty gaps at desktop widths instead
   of tightening up. These caps hold the top-end steady past ~1200px so the
   page reads as deliberately composed rather than a stretched phone layout. */

/* Desktop rhythm now owned by main.css (single source of truth, avoids two
   files fighting over the same properties). */

/* ---------- Button weight --------------------------------------------------
   A single 1px hairline border reads as a default form control at desktop
   scale. A touch more line weight and breathing room gives it real presence
   without abandoning the outline treatment. */
:root :where(.wp-element-button, .wp-block-button__link) {
	border-width: 1.5px;
	padding-top: 18px;
	padding-bottom: 17px;
	padding-left: 34px;
	padding-right: 30px;
	letter-spacing: 0.3em;
}

/* Display heading calibrated to set as two balanced lines on the wide stage. */
h1.wp-block-heading {
	font-size: clamp(38px, 1.6rem + 3vw, 70px);
	line-height: 1.12;
}

/* ---------- Principal portrait (Approach) --------------------------------- */

.ct-principal {
	margin-top: 1.8rem;
	gap: clamp(28px, 4vw, 48px);
}

.ct-portrait img {
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: top;
}

.ct-portrait figcaption {
	font-family: 'Schibsted Grotesk', 'Helvetica Neue', Arial, sans-serif;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--ct-flint);
	margin-top: 14px;
}

/* ---------- Small screens -------------------------------------------------- */

@media (max-width: 781px) {
	.ct-section {
		padding-top: 44px;
		padding-bottom: 44px;
	}
	.ct-hero {
		padding-top: 56px;
		padding-bottom: 40px;
	}
	.ct-band {
		padding-top: 56px;
		padding-bottom: 56px;
	}
	.wp-block-separator.ct-rule {
		margin-top: 1.4rem;
		margin-bottom: 1.4rem;
	}
	.ct-eyebrow {
		margin-bottom: 1rem;
	}
	h1.wp-block-heading {
		margin-bottom: 0.4rem;
	}
	.ct-portrait {
		max-width: 300px;
	}
}
