/* CEIMEC_MEIO_TOM_CSS_CONTRACT_V1
 *
 * Homepage visual world: "Meio-tom" (approved 2026-09) — the port of the approved 1440 artboard.
 *
 * Ground rules, in the order they matter:
 *   1. Scope. Every rule starts at `.ceimec-home-v2.ce4` so nothing reaches an internal page, and so
 *      this file outranks the single-class rules shipped by the shell and the launch fixes.
 *   2. Palette. Ink #0a0d0c, paper #f6f7f3, blue #1650ac (+ #103d84, #b9cdf0, #d7e2f6), green #236f50
 *      (+ #1a5740, #cfe7dc) — green only in the patient half of the closing bridge — body #dfe4e0 on
 *      ink and #434b47 on paper, hairlines rgba(246,247,243,.18) on ink and #cfd6d1 on paper. No
 *      other colour appears in this file.
 *   3. Photography. Plates run clean: full colour, no filter and no screen, the way an architecture
 *      practice presents its work. `.ce4-plate` is only a sized, clipped frame on the ink ground.
 *   4. Fluidity. No fixed page width anywhere: clamp() for display type, section rhythm and plate
 *      heights, minmax(0, …) for every grid track, % / vw for every panel. The ladder is 1200 / 960 /
 *      640, matching the rest of the theme.
 *   5. Floors (hard project rule — many readers are elderly): body text never below 16px on mobile,
 *      labels never below 13px, tap targets at least 44px, contrast at least 4.5:1 for body and 3:1
 *      for large display type at every breakpoint.
 *   6. Motion. One authored move: the hero plate and title block rise once, 700ms, staggered 120ms.
 *      The resting state is the visible state, so nothing depends on the animation running.
 */

/* ---- wrapper, tokens, reset ----------------------------------------- */

.ceimec-home-v2.ce4 {
	--ce4-ink: #0a0d0c;
	--ce4-paper: #f6f7f3;
	--ce4-blue: #1650ac;
	--ce4-blue-dark: #103d84;
	--ce4-blue-pale: #b9cdf0;
	--ce4-blue-tint: #d7e2f6;
	--ce4-green: #236f50;
	--ce4-green-dark: #1a5740;
	--ce4-green-tint: #cfe7dc;
	--ce4-on-ink: #f6f7f3;
	--ce4-on-ink-2: #dfe4e0;
	--ce4-on-paper: #0a0d0c;
	--ce4-on-paper-2: #434b47;
	--ce4-on-paper-3: #5a625e;
	--ce4-rule-ink: rgba(246, 247, 243, 0.18);
	--ce4-rule-paper: #cfd6d1;
	--ce4-display: "Archivo", Arial, sans-serif;
	--ce4-text: "Atkinson Hyperlegible", Arial, sans-serif;
	--ce4-gutter: clamp(20px, 3.34vw, 48px);
	--ce4-band-y: clamp(72px, 12.2vw, 176px);
	--ce4-stack: clamp(48px, 7.2vw, 104px);
	--ce4-col: clamp(16px, 1.67vw, 24px);
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	background: var(--ce4-ink);
	color: var(--ce4-on-ink);
	font-family: var(--ce4-text);
	font-variant-numeric: tabular-nums;
	overflow-x: clip;
}

.ceimec-home-v2.ce4.site-main {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.ceimec-home-v2.ce4 *,
.ceimec-home-v2.ce4 *::before,
.ceimec-home-v2.ce4 *::after {
	box-sizing: border-box;
}

.ceimec-home-v2.ce4 h1,
.ceimec-home-v2.ce4 h2,
.ceimec-home-v2.ce4 h3,
.ceimec-home-v2.ce4 h4,
.ceimec-home-v2.ce4 p,
.ceimec-home-v2.ce4 dl,
.ceimec-home-v2.ce4 dt,
.ceimec-home-v2.ce4 dd,
.ceimec-home-v2.ce4 ol,
.ceimec-home-v2.ce4 ul,
.ceimec-home-v2.ce4 figure,
.ceimec-home-v2.ce4 figcaption {
	margin: 0;
}

.ceimec-home-v2.ce4 ol,
.ceimec-home-v2.ce4 ul {
	padding: 0;
}

.ceimec-home-v2.ce4 li {
	list-style: none;
}

.ceimec-home-v2.ce4 img {
	display: block;
	max-width: 100%;
	height: auto;
}

.ceimec-home-v2.ce4 h1,
.ceimec-home-v2.ce4 h2,
.ceimec-home-v2.ce4 h3,
.ceimec-home-v2.ce4 h4 {
	font-family: var(--ce4-display);
	font-weight: 700;
	overflow-wrap: break-word;
}

.ceimec-home-v2.ce4 :focus-visible {
	outline: 2px solid var(--ce4-on-ink);
	outline-offset: 2px;
}

.ceimec-home-v2.ce4 .ce4-chapter--paper :focus-visible {
	outline-color: var(--ce4-blue);
}

/* ---- layout primitives ---------------------------------------------- */

.ceimec-home-v2.ce4 .ce4-wrap {
	width: 100%;
	padding-inline: var(--ce4-gutter);
}

.ceimec-home-v2.ce4 .ce4-chapter {
	display: flex;
	flex-direction: column;
	gap: var(--ce4-stack);
	padding-block: var(--ce4-band-y);
}

.ceimec-home-v2.ce4 .ce4-chapter--ink {
	background: var(--ce4-ink);
	color: var(--ce4-on-ink);
}

.ceimec-home-v2.ce4 .ce4-chapter--paper {
	background: var(--ce4-paper);
	color: var(--ce4-on-paper);
}

.ceimec-home-v2.ce4 .ce4-stack {
	display: flex;
	flex-direction: column;
	gap: clamp(40px, 4.4vw, 64px);
}

.ceimec-home-v2.ce4 .ce4-head {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: clamp(24px, 2.8vw, 40px);
}

.ceimec-home-v2.ce4 .ce4-head__title {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
	width: 100%;
}

/* ---- type ------------------------------------------------------------ */

.ceimec-home-v2.ce4 h1 {
	font-size: clamp(40px, 6.4vw, 92px);
	font-weight: 900;
	line-height: 0.92;
	letter-spacing: -0.04em;
	color: var(--ce4-on-ink);
}

.ceimec-home-v2.ce4 h2 {
	font-size: clamp(32px, 6.7vw, 96px);
	font-weight: 800;
	line-height: 0.92;
	letter-spacing: -0.04em;
	max-width: 20ch;
	text-wrap: balance;
}

.ceimec-home-v2.ce4 .ce4-kicker {
	font-family: var(--ce4-display);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--ce4-blue-pale);
}

.ceimec-home-v2.ce4 .ce4-chapter--paper .ce4-kicker {
	color: var(--ce4-blue);
}

.ceimec-home-v2.ce4 .ce4-lead {
	font-size: clamp(18px, 1.9vw, 26px);
	line-height: 1.4;
	max-width: 58ch;
	color: var(--ce4-on-ink-2);
	text-wrap: pretty;
}

.ceimec-home-v2.ce4 .ce4-chapter--paper .ce4-lead {
	color: var(--ce4-on-paper-2);
}

.ceimec-home-v2.ce4 h2 a {
	color: inherit;
	text-decoration: none;
}

.ceimec-home-v2.ce4 h2 a:hover,
.ceimec-home-v2.ce4 h2 a:focus-visible {
	color: var(--ce4-blue-pale);
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 0.12em;
}

.ceimec-home-v2.ce4 .ce4-chapter--paper h2 a:hover,
.ceimec-home-v2.ce4 .ce4-chapter--paper h2 a:focus-visible {
	color: var(--ce4-blue);
}

/* ---- plates ----------------------------------------------------------
 * The photograph is the material and carries its own colour: no filter, no
 * screen, no overlay. The plate is a sized, clipped frame on the ink ground.
 */

.ceimec-home-v2.ce4 .ce4-plate {
	position: relative;
	overflow: hidden;
	width: 100%;
	background: var(--ce4-ink);
}

.ceimec-home-v2.ce4 .ce4-plate img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 50%;
}

.ceimec-home-v2.ce4 .ce4-plate--anchor-bottom img {
	object-position: 50% 100%;
}

.ceimec-home-v2.ce4 .ce4-plate--anchor-top img {
	object-position: 50% 20%;
}

.ceimec-home-v2.ce4 .ce4-plate--band {
	height: clamp(240px, 52.8vw, 760px);
}

.ceimec-home-v2.ce4 .ce4-plate--hall {
	height: clamp(320px, 57vw, 820px);
}

.ceimec-home-v2.ce4 .ce4-plate--auditorium {
	height: clamp(240px, 35.8vw, 516px);
}

.ceimec-home-v2.ce4 .ce4-plate--pair {
	height: clamp(200px, 30.6vw, 440px);
}

.ceimec-home-v2.ce4 .ce4-plate--wide {
	height: clamp(260px, 62.2vw, 896px);
}

.ceimec-home-v2.ce4 .ce4-plate--bleed {
	height: clamp(240px, 44.4vw, 640px);
}

.ceimec-home-v2.ce4 .ce-home-faculty__figure.ce4-plate--bleed {
	height: clamp(280px, 56.9vw, 820px);
}

.ceimec-home-v2.ce4 .ce4-plate--room {
	height: clamp(240px, 41.7vw, 600px);
}

.ceimec-home-v2.ce4 .ce4-plate--book {
	height: clamp(220px, 36.1vw, 520px);
}

.ceimec-home-v2.ce4 .ce4-plate--discussion {
	height: clamp(240px, 44.4vw, 640px);
}

.ceimec-home-v2.ce4 .ce4-figure {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.ceimec-home-v2.ce4 figcaption {
	font-size: 16px;
	line-height: 1.5;
	max-width: 52ch;
	color: var(--ce4-on-ink-2);
}

.ceimec-home-v2.ce4 .ce4-chapter--paper figcaption {
	color: var(--ce4-on-paper-2);
}

/* ---- buttons: square, 52px, colour-only hover ------------------------ */

.ceimec-home-v2.ce4 .ce-home-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 8px 28px;
	border: 2px solid transparent;
	border-radius: 0;
	font-family: var(--ce4-display);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: 0;
	text-align: center;
	text-decoration: none;
}

.ceimec-home-v2.ce4 .ce-home-button--photo,
.ceimec-home-v2.ce4 .ce-home-button--secondary {
	background: var(--ce4-paper);
	border-color: var(--ce4-paper);
	color: var(--ce4-ink);
}

.ceimec-home-v2.ce4 .ce-home-button--photo:hover,
.ceimec-home-v2.ce4 .ce-home-button--photo:focus-visible,
.ceimec-home-v2.ce4 .ce-home-button--secondary:hover,
.ceimec-home-v2.ce4 .ce-home-button--secondary:focus-visible {
	background: var(--ce4-on-ink-2);
	border-color: var(--ce4-on-ink-2);
	color: var(--ce4-ink);
}

.ceimec-home-v2.ce4 .ce-home-button--primary {
	background: transparent;
	border-color: var(--ce4-paper);
	color: var(--ce4-paper);
}

.ceimec-home-v2.ce4 .ce-home-button--primary:hover,
.ceimec-home-v2.ce4 .ce-home-button--primary:focus-visible {
	background: var(--ce4-paper);
	color: var(--ce4-ink);
}

.ceimec-home-v2.ce4 .ce-home-button--onblue {
	background: var(--ce4-paper);
	border-color: var(--ce4-paper);
	color: var(--ce4-blue);
}

.ceimec-home-v2.ce4 .ce-home-button--onblue:hover,
.ceimec-home-v2.ce4 .ce-home-button--onblue:focus-visible {
	background: var(--ce4-blue-tint);
	border-color: var(--ce4-blue-tint);
	color: var(--ce4-blue-dark);
}

.ceimec-home-v2.ce4 .ce-home-button--ongreen {
	background: var(--ce4-paper);
	border-color: var(--ce4-paper);
	color: var(--ce4-green);
}

.ceimec-home-v2.ce4 .ce-home-button--ongreen:hover,
.ceimec-home-v2.ce4 .ce-home-button--ongreen:focus-visible {
	background: var(--ce4-green-tint);
	border-color: var(--ce4-green-tint);
	color: var(--ce4-green-dark);
}

/* ---- 01 abertura ------------------------------------------------------ */

.ceimec-home-v2.ce4 .ce4-hero {
	position: relative;
	/* matches the plate height, so the absolutely positioned title block still has
	 * a frame to sit in if the photograph ever fails to resolve */
	min-height: clamp(360px, 55.6vw, 800px);
	/* ink below the photograph: the title block's bottom edge lands flush with the
	 * bottom of the plate, as in the artboard */
	padding-bottom: clamp(48px, 8.3vw, 120px);
	background: var(--ce4-ink);
}

.ceimec-home-v2.ce4 .ce4-hero__plate {
	height: clamp(360px, 55.6vw, 800px);
}

.ceimec-home-v2.ce4 .ce4-hero__panel {
	position: absolute;
	left: 0;
	bottom: clamp(48px, 8.3vw, 120px);
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 14px;
	max-width: min(820px, 60vw);
	padding: clamp(24px, 2.5vw, 36px) clamp(24px, 3vw, 44px) clamp(24px, 2.5vw, 36px) var(--ce4-gutter);
	background: var(--ce4-blue);
}

.ceimec-home-v2.ce4 .ce-home-hero__origin {
	color: var(--ce4-on-ink);
}

.ceimec-home-v2.ce4 .ce-home-hero__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	padding-top: 10px;
}

/* the one authored motion */
@keyframes ce4-rise {
	from {
		opacity: 0;
		transform: translateY(24px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.ceimec-home-v2.ce4 .ce4-rise {
	animation: ce4-rise 700ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.ceimec-home-v2.ce4 .ce4-hero__panel.ce4-rise {
	animation-delay: 120ms;
}

@media (prefers-reduced-motion: reduce) {
	.ceimec-home-v2.ce4 .ce4-rise {
		animation: none;
	}
}

/* ---- 02 oferta -------------------------------------------------------- */

.ceimec-home-v2.ce4 .ce4-offer {
	padding-block: var(--ce4-band-y);
	background: var(--ce4-blue);
	color: var(--ce4-on-ink);
}

.ceimec-home-v2.ce4 .ce4-statement {
	max-width: 46ch;
	font-family: var(--ce4-display);
	font-size: clamp(24px, 3.05vw, 44px);
	font-weight: 500;
	line-height: 1.15;
	letter-spacing: -0.03em;
	color: var(--ce4-on-ink);
	text-wrap: pretty;
}

/* ---- 03 reconhecimento ------------------------------------------------ */

.ceimec-home-v2.ce4 .ce4-facts {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	column-gap: var(--ce4-col);
}

.ceimec-home-v2.ce4 .ce4-facts > div {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 28px 0 40px;
	border-top: 1px solid var(--ce4-rule-ink);
}

.ceimec-home-v2.ce4 .ce4-facts dt {
	font-family: var(--ce4-display);
	font-size: clamp(26px, 3.05vw, 44px);
	font-weight: 700;
	line-height: 1.05;
	letter-spacing: -0.03em;
	color: var(--ce4-on-ink);
}

.ceimec-home-v2.ce4 .ce4-facts dd {
	font-size: 16px;
	line-height: 1.5;
	color: var(--ce4-on-ink-2);
}

.ceimec-home-v2.ce4 .ce4-path {
	display: flex;
	flex-direction: column;
	border-bottom: 1px solid var(--ce4-rule-ink);
	counter-reset: ce4-path;
}

.ceimec-home-v2.ce4 .ce4-path > li {
	display: grid;
	grid-template-columns: 56px minmax(0, 4fr) minmax(0, 7fr);
	column-gap: var(--ce4-col);
	align-items: start;
	padding: 28px 0;
	border-top: 1px solid var(--ce4-rule-ink);
	counter-increment: ce4-path;
}

.ceimec-home-v2.ce4 .ce4-path > li::before {
	content: counter(ce4-path);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	background: var(--ce4-blue);
	font-family: var(--ce4-display);
	font-size: 24px;
	font-weight: 700;
	line-height: 1;
	color: var(--ce4-on-ink);
}

.ceimec-home-v2.ce4 .ce4-path h3 {
	padding-top: 11px;
	font-size: clamp(22px, 2.2vw, 32px);
	line-height: 1.05;
	letter-spacing: -0.03em;
	color: var(--ce4-on-ink);
}

.ceimec-home-v2.ce4 .ce4-path p {
	padding-top: 14px;
	max-width: 56ch;
	font-size: clamp(16px, 1.25vw, 18px);
	line-height: 1.55;
	color: var(--ce4-on-ink-2);
}

.ceimec-home-v2.ce4 .ce4-sources {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px clamp(24px, 2.8vw, 40px);
}

.ceimec-home-v2.ce4 .ce4-sources a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	font-size: 16px;
	line-height: 1.4;
	color: var(--ce4-blue-pale);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}

.ceimec-home-v2.ce4 .ce4-sources a:hover,
.ceimec-home-v2.ce4 .ce4-sources a:focus-visible {
	color: var(--ce4-on-ink);
}

/* ---- 04 sede ---------------------------------------------------------- */

.ceimec-home-v2.ce4 .ce4-structure__lead {
	display: grid;
	grid-template-columns: minmax(0, 546fr) minmax(0, 774fr);
	column-gap: var(--ce4-col);
	row-gap: clamp(32px, 4.4vw, 64px);
	align-items: start;
}

.ceimec-home-v2.ce4 .ce4-structure__pair {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: var(--ce4-col);
	row-gap: clamp(32px, 4.4vw, 64px);
	align-items: start;
}

/* ---- 05 programa ------------------------------------------------------ */

.ceimec-home-v2.ce4 .ce-home-program__sequence,
.ceimec-home-v2.ce4 .ce-home-publications__collection {
	display: flex;
	flex-direction: column;
	gap: 32px;
}

.ceimec-home-v2.ce4 .ce-home-program__sequence > h3,
.ceimec-home-v2.ce4 .ce-home-publications__collection > h3 {
	font-size: clamp(20px, 1.7vw, 24px);
	line-height: 1.1;
	letter-spacing: -0.02em;
	color: var(--ce4-on-paper);
}

.ceimec-home-v2.ce4 .ce4-phases {
	display: flex;
	flex-direction: column;
	border-bottom: 1px solid var(--ce4-rule-paper);
}

.ceimec-home-v2.ce4 .ce4-phases > li {
	display: grid;
	grid-template-columns: 128px minmax(0, 1fr);
	column-gap: var(--ce4-col);
	align-items: center;
	padding: 20px 0;
	border-top: 1px solid var(--ce4-rule-paper);
}

.ceimec-home-v2.ce4 .ce4-phases [data-ce-home-phase-range] {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 56px;
	background: var(--ce4-blue);
	font-family: var(--ce4-display);
	font-size: clamp(18px, 1.6vw, 22px);
	font-weight: 700;
	line-height: 1;
	color: var(--ce4-on-ink);
}

.ceimec-home-v2.ce4 .ce4-phases [data-ce-home-phase-title] {
	font-size: clamp(20px, 2.2vw, 32px);
	line-height: 1.05;
	letter-spacing: -0.03em;
	color: var(--ce4-on-paper);
}

.ceimec-home-v2.ce4 .ce-home-program__source-note {
	max-width: 68ch;
	font-size: 16px;
	line-height: 1.5;
	color: var(--ce4-on-paper-3);
}

/* ---- 06 prática ------------------------------------------------------- */

.ceimec-home-v2.ce4 .ce4-flow {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	column-gap: var(--ce4-col);
	counter-reset: ce4-flow;
}

.ceimec-home-v2.ce4 .ce4-flow > li {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 24px;
	padding: 28px 0 56px;
	border-top: 1px solid var(--ce4-rule-ink);
	counter-increment: ce4-flow;
}

.ceimec-home-v2.ce4 .ce4-flow > li::before {
	content: counter(ce4-flow);
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 56px;
	height: 56px;
	background: var(--ce4-blue);
	font-family: var(--ce4-display);
	font-size: 24px;
	font-weight: 700;
	line-height: 1;
	color: var(--ce4-on-ink);
}

.ceimec-home-v2.ce4 .ce4-flow h3 {
	font-size: clamp(22px, 2.2vw, 32px);
	line-height: 1.08;
	letter-spacing: -0.03em;
	color: var(--ce4-on-ink);
}

/* ---- 07 corpo docente ------------------------------------------------- */

.ceimec-home-v2.ce4 .ce-home-faculty__plan {
	display: flex;
	flex-direction: column;
	border-bottom: 1px solid var(--ce4-rule-ink);
}

.ceimec-home-v2.ce4 .ce-home-faculty__group {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: var(--ce4-col);
	row-gap: 40px;
	padding: 40px 0 56px;
	border-top: 1px solid var(--ce4-rule-ink);
}

.ceimec-home-v2.ce4 .ce-home-faculty__group > h3 {
	grid-column: 1 / 5;
	font-size: clamp(22px, 2.2vw, 32px);
	line-height: 1.05;
	letter-spacing: -0.03em;
	color: var(--ce4-on-ink);
}

.ceimec-home-v2.ce4 .ce-home-faculty__role {
	grid-column: 5 / 13;
	display: grid;
	grid-template-columns: repeat(8, minmax(0, 1fr));
	column-gap: var(--ce4-col);
	align-items: start;
}

.ceimec-home-v2.ce4 .ce-home-faculty__role > h4 {
	grid-column: 1 / 4;
	padding-top: 5px;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--ce4-blue-pale);
}

.ceimec-home-v2.ce4 .ce-home-faculty__role > .ce-home-faculty__names {
	grid-column: 4 / 9;
}

/* the consulting group carries its label on the group heading, so its names
 * take the same column the other groups' names occupy */
.ceimec-home-v2.ce4 .ce-home-faculty__group > .ce-home-faculty__names {
	grid-column: 8 / 13;
}

.ceimec-home-v2.ce4 .ce-home-faculty__names {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.ceimec-home-v2.ce4 .ce-home-faculty__names li {
	font-family: var(--ce4-display);
	font-size: clamp(17px, 1.4vw, 20px);
	font-weight: 500;
	line-height: 1.3;
	color: var(--ce4-on-ink);
}

/* ---- 08 publicações --------------------------------------------------- */

.ceimec-home-v2.ce4 .ce4-titles {
	display: flex;
	flex-direction: column;
	border-bottom: 1px solid var(--ce4-rule-paper);
}

.ceimec-home-v2.ce4 .ce4-titles li {
	padding: 24px 0;
	border-top: 1px solid var(--ce4-rule-paper);
	font-family: var(--ce4-display);
	font-size: clamp(20px, 2.2vw, 32px);
	font-weight: 700;
	line-height: 1.05;
	letter-spacing: -0.03em;
	color: var(--ce4-on-paper);
}

.ceimec-home-v2.ce4 .ce4-plates {
	display: grid;
	grid-template-columns: minmax(0, 872fr) minmax(0, 448fr);
	column-gap: var(--ce4-col);
	row-gap: clamp(32px, 4.4vw, 64px);
	align-items: start;
}

.ceimec-home-v2.ce4 .ce-home-publications__figure--discussion {
	grid-column: 1 / -1;
}

.ceimec-home-v2.ce4 .ce4-directory {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: var(--ce4-col);
	row-gap: clamp(32px, 3.3vw, 48px);
}

.ceimec-home-v2.ce4 .ce-home-publications__directory-group {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.ceimec-home-v2.ce4 .ce4-directory h3 {
	font-size: clamp(20px, 1.7vw, 24px);
	line-height: 1.1;
	letter-spacing: -0.02em;
	color: var(--ce4-on-paper);
}

.ceimec-home-v2.ce4 .ce4-directory ul {
	display: flex;
	flex-direction: column;
	border-bottom: 1px solid var(--ce4-rule-paper);
}

.ceimec-home-v2.ce4 .ce4-directory li {
	border-top: 1px solid var(--ce4-rule-paper);
}

.ceimec-home-v2.ce4 .ce4-directory a {
	display: flex;
	align-items: center;
	min-height: 52px;
	padding-block: 14px;
	font-size: 18px;
	line-height: 1.4;
	color: var(--ce4-blue);
	text-decoration: none;
}

.ceimec-home-v2.ce4 .ce4-directory a:hover,
.ceimec-home-v2.ce4 .ce4-directory a:focus-visible {
	color: var(--ce4-blue-dark);
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

/* ---- 09 ponte --------------------------------------------------------- */

.ceimec-home-v2.ce4 .ce4-bridge {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ceimec-home-v2.ce4 .ce-home-bridge__course,
.ceimec-home-v2.ce4 .ce-home-bridge__patient {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: space-between;
	gap: clamp(32px, 3.3vw, 48px);
	min-height: clamp(280px, 33vw, 480px);
	padding: clamp(40px, 5vw, 72px) clamp(24px, 3.9vw, 56px) clamp(40px, 4.4vw, 64px) var(--ce4-gutter);
}

.ceimec-home-v2.ce4 .ce-home-bridge__course {
	background: var(--ce4-blue);
}

.ceimec-home-v2.ce4 .ce-home-bridge__patient {
	padding-right: var(--ce4-gutter);
	padding-left: clamp(24px, 3.9vw, 56px);
	background: var(--ce4-green);
}

.ceimec-home-v2.ce4 .ce4-bridge__text {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.ceimec-home-v2.ce4 .ce4-bridge h3 {
	font-size: clamp(28px, 3.05vw, 44px);
	line-height: 1;
	letter-spacing: -0.03em;
	color: var(--ce4-on-ink);
}

.ceimec-home-v2.ce4 .ce4-bridge p {
	max-width: 32ch;
	font-size: clamp(17px, 1.4vw, 20px);
	line-height: 1.5;
}

.ceimec-home-v2.ce4 .ce-home-bridge__course p {
	color: var(--ce4-blue-tint);
}

.ceimec-home-v2.ce4 .ce-home-bridge__patient p {
	color: var(--ce4-green-tint);
}

/* ======================================================================
 * Responsive ladder — 1200 / 960 / 640.
 * The artboard is a 1440 desktop still; everything below is authored here.
 * ====================================================================== */

@media (max-width: 1200px) {
	.ceimec-home-v2.ce4 h1 {
		font-size: clamp(40px, 5.6vw, 64px);
	}

	/* the photograph comes first and the blue block spans the width beneath it, so no
	 * face sits under the type. v3 stacked from 1200 for this reason; keep that. */
	.ceimec-home-v2.ce4 .ce4-hero {
		display: flex;
		flex-direction: column;
		min-height: 0;
		padding-bottom: 0;
	}

	/* show the whole frame once the block is beneath it: the source is 3:2 and a fixed
	 * height cropped the heads off the top between 641 and 960 */
	.ceimec-home-v2.ce4 .ce4-hero__plate {
		height: auto;
		aspect-ratio: 3 / 2;
	}

	.ceimec-home-v2.ce4 .ce4-hero__plate img {
		object-position: 50% 50%;
	}

	.ceimec-home-v2.ce4 .ce4-hero__panel {
		position: static;
		width: 100%;
		max-width: none;
		padding: clamp(24px, 4vw, 36px) var(--ce4-gutter) clamp(28px, 4.4vw, 40px);
	}

	.ceimec-home-v2.ce4 .ce4-path > li {
		grid-template-columns: 56px minmax(0, 5fr) minmax(0, 6fr);
	}

	.ceimec-home-v2.ce4 .ce4-flow {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		row-gap: clamp(24px, 3vw, 40px);
	}

	.ceimec-home-v2.ce4 .ce4-flow > li {
		padding-bottom: 40px;
	}

	.ceimec-home-v2.ce4 .ce-home-faculty__group > h3 {
		grid-column: 1 / 4;
	}

	.ceimec-home-v2.ce4 .ce-home-faculty__role {
		grid-column: 4 / 13;
		grid-template-columns: repeat(9, minmax(0, 1fr));
	}

	.ceimec-home-v2.ce4 .ce-home-faculty__role > h4 {
		grid-column: 1 / 4;
	}

	.ceimec-home-v2.ce4 .ce-home-faculty__role > .ce-home-faculty__names {
		grid-column: 4 / 10;
	}

	.ceimec-home-v2.ce4 .ce-home-faculty__group > .ce-home-faculty__names {
		grid-column: 7 / 13;
	}
}

@media (max-width: 960px) {
	.ceimec-home-v2.ce4 h1 {
		font-size: clamp(38px, 6.6vw, 64px);
	}

	.ceimec-home-v2.ce4 h2 {
		font-size: clamp(32px, 6.9vw, 64px);
		max-width: 22ch;
	}

	.ceimec-home-v2.ce4 .ce4-facts {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ceimec-home-v2.ce4 .ce4-facts > div {
		padding-bottom: 32px;
	}

	.ceimec-home-v2.ce4 .ce4-path > li {
		grid-template-columns: 48px minmax(0, 1fr);
		row-gap: 12px;
		padding: 24px 0;
	}

	.ceimec-home-v2.ce4 .ce4-path > li::before {
		width: 48px;
		height: 48px;
		font-size: 20px;
	}

	.ceimec-home-v2.ce4 .ce4-path h3 {
		padding-top: 6px;
	}

	.ceimec-home-v2.ce4 .ce4-path p {
		grid-column: 2;
		padding-top: 0;
	}

	.ceimec-home-v2.ce4 .ce4-structure__lead,
	.ceimec-home-v2.ce4 .ce4-structure__pair {
		grid-template-columns: minmax(0, 1fr);
	}

	.ceimec-home-v2.ce4 .ce4-plate--hall {
		height: clamp(320px, 62vw, 560px);
	}

	.ceimec-home-v2.ce4 .ce4-plate--auditorium,
	.ceimec-home-v2.ce4 .ce4-plate--pair {
		height: clamp(240px, 52vw, 460px);
	}

	.ceimec-home-v2.ce4 .ce4-flow {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ceimec-home-v2.ce4 .ce4-flow > li {
		gap: 16px;
		padding: 24px 0 32px;
	}

	.ceimec-home-v2.ce4 .ce4-flow > li::before {
		width: 48px;
		height: 48px;
		font-size: 20px;
	}

	.ceimec-home-v2.ce4 .ce-home-faculty__group {
		grid-template-columns: minmax(0, 1fr);
		row-gap: 28px;
		padding: 32px 0 40px;
	}

	.ceimec-home-v2.ce4 .ce-home-faculty__group > h3,
	.ceimec-home-v2.ce4 .ce-home-faculty__role,
	.ceimec-home-v2.ce4 .ce-home-faculty__role > h4,
	.ceimec-home-v2.ce4 .ce-home-faculty__role > .ce-home-faculty__names,
	.ceimec-home-v2.ce4 .ce-home-faculty__group > .ce-home-faculty__names {
		grid-column: 1 / -1;
	}

	.ceimec-home-v2.ce4 .ce-home-faculty__role {
		grid-template-columns: minmax(0, 1fr);
		row-gap: 12px;
	}

	.ceimec-home-v2.ce4 .ce-home-faculty__role > h4 {
		padding-top: 0;
	}

	.ceimec-home-v2.ce4 .ce4-plates {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ceimec-home-v2.ce4 .ce4-plate--book {
		height: clamp(220px, 40vw, 380px);
	}
}

@media (max-width: 640px) {
	/* keep both hero actions above the fold on a 553px visible viewport */
	.ceimec-home-v2.ce4 .ce4-hero__plate {
		max-height: 34svh;
	}

	.ceimec-home-v2.ce4 .ce4-hero__panel {
		padding-top: 16px;
	}

	.ceimec-home-v2.ce4 h1 {
		font-size: clamp(38px, 9vw, 52px);
	}

	.ceimec-home-v2.ce4 h2 {
		font-size: clamp(32px, 8vw, 40px);
		max-width: none;
	}

	.ceimec-home-v2.ce4 .ce4-lead {
		font-size: clamp(17px, 4.6vw, 20px);
	}

	.ceimec-home-v2.ce4 .ce4-statement {
		font-size: clamp(22px, 6.4vw, 28px);
	}

	.ceimec-home-v2.ce4 .ce-home-hero__actions {
		width: 100%;
		gap: 10px;
	}

	.ceimec-home-v2.ce4 .ce-home-hero__actions .ce-home-button {
		width: 100%;
	}

	.ceimec-home-v2.ce4 .ce4-facts,
	.ceimec-home-v2.ce4 .ce4-flow,
	.ceimec-home-v2.ce4 .ce4-structure__lead,
	.ceimec-home-v2.ce4 .ce4-structure__pair,
	.ceimec-home-v2.ce4 .ce4-plates,
	.ceimec-home-v2.ce4 .ce4-directory,
	.ceimec-home-v2.ce4 .ce4-bridge {
		grid-template-columns: minmax(0, 1fr);
	}

	.ceimec-home-v2.ce4 .ce4-facts dt {
		font-size: clamp(26px, 7.4vw, 32px);
	}

	.ceimec-home-v2.ce4 .ce4-facts > div {
		padding: 20px 0 24px;
	}

	.ceimec-home-v2.ce4 .ce4-path h3,
	.ceimec-home-v2.ce4 .ce4-flow h3,
	.ceimec-home-v2.ce4 .ce4-titles li,
	.ceimec-home-v2.ce4 .ce-home-faculty__group > h3 {
		font-size: clamp(22px, 5.6vw, 26px);
	}

	.ceimec-home-v2.ce4 .ce4-flow > li {
		padding: 20px 0 24px;
	}

	.ceimec-home-v2.ce4 .ce4-phases > li {
		grid-template-columns: 92px minmax(0, 1fr);
		padding: 16px 0;
	}

	.ceimec-home-v2.ce4 .ce4-phases [data-ce-home-phase-range] {
		height: 48px;
		font-size: 16px;
	}

	.ceimec-home-v2.ce4 .ce4-phases [data-ce-home-phase-title] {
		font-size: clamp(18px, 4.8vw, 22px);
	}

	.ceimec-home-v2.ce4 .ce4-sources {
		flex-direction: column;
		align-items: flex-start;
		gap: 4px;
	}

	.ceimec-home-v2.ce4 .ce4-titles li {
		padding: 18px 0;
	}

	.ceimec-home-v2.ce4 .ce4-plate--book,
	.ceimec-home-v2.ce4 .ce4-plate--discussion,
	.ceimec-home-v2.ce4 .ce4-plate--room,
	.ceimec-home-v2.ce4 .ce4-plate--wide,
	.ceimec-home-v2.ce4 .ce4-plate--band {
		height: clamp(220px, 62vw, 320px);
	}

	.ceimec-home-v2.ce4 .ce4-plate--bleed,
	.ceimec-home-v2.ce4 .ce-home-faculty__figure.ce4-plate--bleed {
		height: clamp(240px, 68vw, 340px);
	}

	.ceimec-home-v2.ce4 .ce4-bridge h3 {
		font-size: clamp(26px, 6.8vw, 32px);
	}

	.ceimec-home-v2.ce4 .ce-home-bridge__course,
	.ceimec-home-v2.ce4 .ce-home-bridge__patient {
		min-height: 0;
		padding: 40px var(--ce4-gutter) 40px;
		gap: 28px;
	}

	.ceimec-home-v2.ce4 .ce-home-bridge__course .ce-home-button,
	.ceimec-home-v2.ce4 .ce-home-bridge__patient .ce-home-button {
		width: 100%;
	}

	.ceimec-home-v2.ce4 .ce4-bridge p {
		max-width: none;
	}
}

@media (max-width: 640px) {
	/* elderly-reader floors: role labels reach the 16px body floor, and the two
	 * chapter-title links reach a 44px tap target without moving the heading */
	.ceimec-home-v2.ce4 .ce-home-faculty__role > h4 {
		font-size: 16px;
	}

	.ceimec-home-v2.ce4 h2 > a {
		display: inline-block;
		min-height: 44px;
		padding-block: 6px;
	}
}
