@charset "UTF-8";
/*!
Theme Name: lio-holding-core
Theme URI: https://nyxsolutions.it
Author: nyxsolutions
Author URI: https://nyxsolutions.it
Version: 1.0.0
Text Domain: lio-holding-core
*/

@font-face {
	font-family: "Circular";
	font-style: normal;
	font-weight: 400;
	src: url("assets/fonts/CircularStd-Book.woff2") format("woff2"),
		url("assets/fonts/CircularStd-Book.woff") format("woff");
}

@font-face {
	font-family: "Circular";
	font-style: normal;
	font-weight: 500;
	src: url("assets/fonts/CircularStd-Medium.woff2") format("woff2"),
		url("assets/fonts/CircularStd-Medium.woff") format("woff");
}

@font-face {
	font-family: "Circular";
	font-style: normal;
	font-weight: 700;
	src: url("assets/fonts/CircularStd-Bold.woff2") format("woff2"),
		url("assets/fonts/CircularStd-Bold.woff") format("woff");
}

@font-face {
	font-family: "Saol";
	font-style: italic;
	font-weight: 400;
	src: url("assets/fonts/SaolDisplay-RegularItalic.woff2") format("woff2"),
		url("assets/fonts/SaolDisplay-RegularItalic.woff") format("woff");
}

:root {
	--color-bg: #ffffff;
	--color-surface: #ffffff;
	--color-surface-alt: #eef2f5;
	--color-text: #101010;
	--color-text-soft: rgba(16, 16, 16, 0.7);
	--color-border: rgba(16, 16, 16, 0.12);
	--color-footer: #050505;
	--color-footer-text: rgba(255, 255, 255, 0.78);
	--color-footer-border: rgba(255, 255, 255, 0.18);
	--container-width: 1880px;
	--header-container-width: 1880px;
	--container-padding: 32px;
	--shared-hero-copy-size: clamp(1.4rem, 2.35vw, 2rem);
	--shared-hero-copy-line-height: 1.32;
	--shared-hero-copy-gap: 34px;
	--header-height: 100px;
	--radius-card: 28px;
	--transition-default: 220ms ease;
	--section-padding: clamp(72px, 9vw, 132px);
}

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

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--color-bg);
	color: var(--color-text);
	font-family: "Circular", sans-serif;
	font-size: 18px;
	line-height: 1.45;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
}

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

a {
	color: inherit;
	text-decoration: none;
}

button {
	font: inherit;
}

.container {
	width: min(100%, var(--container-width));
	margin: 0 auto;
	padding-left: var(--container-padding);
	padding-right: var(--container-padding);
}

.site-main {
	overflow: clip;
}

/* Custom 404 wheel */
.site-main--404 {
	background: var(--color-surface-alt);
}

.lio-404 {
	min-height: min(760px, calc(100vh - var(--header-height)));
	padding: clamp(36px, 5vw, 72px) 0;
}

.lio-404__inner {
	display: grid;
	grid-template-columns: minmax(0, .9fr) minmax(420px, 1.1fr);
	align-items: start;
	gap: clamp(48px, 9vw, 150px);
}

.lio-404__copy {
	max-width: 500px;
	padding-top: clamp(10px, 3vw, 42px);
	transform: translateY(-58px);
}

.lio-404__copy .eyebrow {
	color: #101010;
}

.lio-404__copy h1 {
	margin: 0;
	font-size: clamp(3rem, 6vw, 6rem);
	font-weight: 500;
	letter-spacing: -.055em;
	line-height: .92;
}

.lio-404__copy h1 em {
	font-family: "Saol", serif;
	font-style: italic;
	font-weight: 400;
}

.lio-404__message {
	max-width: 34rem;
	margin-top: clamp(30px, 4vw, 54px);
	color: var(--color-text-soft);
	font-size: clamp(1rem, 1.45vw, 1.2rem);
	line-height: 1.65;
}

.lio-404__message p {
	margin: 0;
}

.lio-404__message p + p {
	margin-top: 14px;
}

.lio-404__home-link,
.lio-404__spin {
	color: var(--color-text);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .04em;
}

.lio-404__home-link {
	display: inline-flex;
	gap: 10px;
	margin-top: 38px;
	border-bottom: 1px solid currentColor;
	padding-bottom: 5px;
}

.lio-404__wheel-area {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.lio-404__wheel-wrap {
	position: relative;
	width: min(100%, 570px);
	height: min(570px, calc(100vw - 64px));
	aspect-ratio: auto;
	padding: 14px;
}

.lio-404__wheel-wrap::before {
	position: absolute;
	inset: 0;
	border: 1px solid rgba(16, 16, 16, .16);
	border-radius: 50%;
	content: "";
}

.lio-404__wheel {
	position: relative;
	width: 100%;
	height: 100%;
	border: 1px solid rgba(16, 16, 16, .32);
	border-radius: 50%;
	background: conic-gradient(from -9deg,
		#377243 0deg 18deg, #b7a98e 18deg 36deg, #3e4543 36deg 54deg, #008b97 54deg 72deg,
		#a17a5a 72deg 90deg, #2f3434 90deg 108deg, #7eb875 108deg 126deg, #6467ab 126deg 144deg,
		#59605f 144deg 162deg, #4d8759 162deg 180deg, #317249 180deg 198deg, #b0b7b2 198deg 216deg,
		#4a5150 216deg 234deg, #058b96 234deg 252deg, #a57c5b 252deg 270deg, #333736 270deg 288deg,
		#5e62a4 288deg 306deg, #414843 306deg 324deg, #6e9e6f 324deg 342deg, #3e754b 342deg 360deg);
	box-shadow: 0 16px 40px rgba(16, 16, 16, .14);
	transform: rotate(0deg);
	transition: transform 3.8s cubic-bezier(.12, .74, .16, 1);
}

.lio-404__wheel.is-spinning {
	transition-timing-function: cubic-bezier(.12, .74, .16, 1);
}

.lio-404__segment {
	position: absolute;
	inset: 0;
	transform: rotate(var(--segment-angle));
}

.lio-404__segment::after {
	display: none;
}

.lio-404__segment span {
	position: absolute;
	top: 16%;
	left: 50%;
	width: max-content;
	max-width: none;
	color: rgba(255, 255, 255, .95);
	font-size: clamp(10px, 1.1vw, 14px);
	font-weight: 700;
	letter-spacing: .02em;
	line-height: 1.05;
	text-align: center;
	text-shadow: 0 1px 2px rgba(0, 0, 0, .2);
	white-space: nowrap;
	transform: translateX(-50%) rotate(90deg);
}

.lio-404__hub {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 2;
	width: 14%;
	aspect-ratio: 1;
	border: 2px solid #565d5c;
	border-radius: 50%;
	background: var(--color-surface-alt);
	box-shadow: 0 0 0 1px rgba(255, 255, 255, .8), 0 0 0 0 rgba(0, 86, 101, .38);
	cursor: pointer;
	transform: translate(-50%, -50%);
	transition: box-shadow 220ms ease, transform 220ms ease;
	animation: lio-404-hub-pulse 1.6s ease-out infinite;
}

.lio-404__hub-label {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 4;
	font-family: "Circular", sans-serif;
	font-size: clamp(7px, 0.72vw, 10px);
	font-weight: 700;
	letter-spacing: .08em;
	line-height: 1;
	pointer-events: none;
	transform: translate(-50%, -50%);
}

.lio-404__hub:hover,
.lio-404__hub:focus-visible {
	box-shadow: 0 0 0 7px rgba(0, 86, 101, .16), 0 0 0 1px rgba(255, 255, 255, .8);
	outline: none;
}

.lio-404__hub:disabled {
	cursor: wait;
}

@keyframes lio-404-hub-pulse {
	0% { box-shadow: 0 0 0 1px rgba(255, 255, 255, .8), 0 0 0 0 rgba(0, 86, 101, .45); }
	42% { box-shadow: 0 0 0 1px rgba(255, 255, 255, .8), 0 0 0 9px rgba(0, 86, 101, .68); }
	72%, 100% { box-shadow: 0 0 0 1px rgba(255, 255, 255, .8), 0 0 0 17px rgba(0, 86, 101, 0); }
}

.lio-404__pointer {
	position: relative;
	z-index: 3;
	width: 0;
	height: 0;
	margin-bottom: -3px;
	border-top: 0;
	border-right: 12px solid transparent;
	border-left: 12px solid transparent;
	border-bottom: 22px solid var(--color-text);
	filter: drop-shadow(0 2px 1px rgba(0, 0, 0, .18));
	transform: rotate(180deg);
}

.lio-404__spin {
	position: relative;
	z-index: 10;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 180px;
	height: 52px;
	margin-top: 28px;
	padding: 10px 24px;
	border: 0;
	border-bottom: 1px solid currentColor;
	background: transparent;
	cursor: pointer;
	pointer-events: auto;
	touch-action: manipulation;
}

.lio-404__spin:hover {
	color: #005665;
}

.lio-404__spin:disabled {
	opacity: .45;
	cursor: wait;
}

.lio-404__result {
	width: 100%;
	margin-top: 42px;
	padding-top: 20px;
	border-top: 1px solid rgba(16, 16, 16, .2);
	opacity: 0;
	transform: translateY(8px);
	transition: opacity 220ms ease, transform 220ms ease;
}

.lio-404__result.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.lio-404__result-quote {
	margin: 0;
	font-family: "Saol", serif;
	font-size: clamp(1.35rem, 2.2vw, 2rem);
	font-style: italic;
	line-height: 1.1;
}

.lio-404__result-credit {
	margin: 14px 0 0;
	color: var(--color-text-soft);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.section-shell {
	padding: 20px 0 clamp(72px, 9vw, 132px);
}

.hero-home:first-child {
	position: relative;
}

.home-scroll-cue {
	position: absolute;
	bottom: clamp(16px, 2.5vw, 34px);
	left: 50%;
	z-index: 3;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	width: 62px;
	height: 78px;
	padding: 8px;
	border: 0;
	background: transparent;
	color: #101010;
	cursor: pointer;
	transition: opacity 420ms ease, transform 420ms ease;
	transform: translateX(-50%);
}

.home-scroll-cue.is-hidden {
	opacity: 0;
	pointer-events: none;
	transform: translate(-50%, 12px);
}

.home-scroll-cue__arrow {
	position: absolute;
	left: 50%;
	width: 15px;
	height: 15px;
	border-right: 4px solid currentColor;
	border-bottom: 4px solid currentColor;
	transform: translateX(-50%) rotate(45deg);
	animation: home-scroll-cue-bounce 1.8s ease-in-out infinite;
}

.home-scroll-cue__arrow--top {
	top: 12px;
	animation-delay: 120ms;
}

.home-scroll-cue__arrow--bottom {
	top: 31px;
}

.home-scroll-cue:hover {
	color: #101010;
	outline: none;
}

.home-scroll-cue:hover .home-scroll-cue__arrow {
	animation-name: home-scroll-cue-hover;
	animation-duration: 720ms;
	animation-iteration-count: 1;
}

.home-scroll-cue:hover .home-scroll-cue__arrow--bottom {
	animation-delay: 90ms;
}

.home-scroll-cue:focus-visible {
	color: #101010;
	outline: 2px solid currentColor;
	outline-offset: 5px;
}

@keyframes home-scroll-cue-bounce {
	0%, 100% { transform: translate(-50%, 0) rotate(45deg); }
	50% { transform: translate(-50%, 5px) rotate(45deg); }
}

@keyframes home-scroll-cue-hover {
	0% { transform: translate(-50%, 0) rotate(45deg); }
	45% { transform: translate(-50%, 8px) rotate(45deg); }
	100% { transform: translate(-50%, 0) rotate(45deg); }
}

.section-shell--alt {
	background: var(--color-surface-alt);
}

.section-shell--compact {
	padding-top: 0;
	padding-bottom: clamp(72px, 8vw, 112px);
}

/* All content sections share one balanced vertical rhythm. The first
 * section is the page header and keeps its own positioning. */
.site-main > .section-shell:not(:first-child) {
	padding-top: var(--section-padding);
	padding-bottom: var(--section-padding);
}

.eyebrow {
	margin: 0 0 20px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.section-title {
	margin: 0;
	font-weight: 500;
	letter-spacing: -0.04em;
	line-height: 0.96;
}

.section-title {
	font-size: clamp(2.2rem, 5vw, 4.1rem);
	max-width: 11ch;
}

.section-title em,
.section-title i {
	font-family: "Saol", serif;
	font-style: italic;
	font-weight: 400;
}

.section-title--small {
	font-size: clamp(1.8rem, 4vw, 3rem);
	max-width: 15ch;
}

.section-copy,
.hero-home__lead {
	margin: 0;
	max-width: 42rem;
	color: var(--color-text-soft);
	font-size: clamp(1rem, 1.4vw, 1.15rem);
	line-height: 1.7;
}

.section-heading {
	display: grid;
	gap: 20px;
}

/* Keep the subtitle-to-title spacing consistent across the whole site. */
.section-heading > .section-title {
	margin-top: 0;
}

.careers-hero {
	padding-top: 20px;
	padding-bottom: clamp(82px, 11vw, 172px);
}

.careers-hero__inner {
	grid-template-columns: minmax(0, 0.96fr) minmax(0, 1.04fr);
	align-items: start;
	max-width: none;
}

.careers-hero__title {
	max-width: none;
	margin-top: clamp(28px, 4vw, 58px);
}

.careers-hero__eyebrow,
.careers-hero__title em {
	color: #1e5ea8;
}

.careers-hero__title .line-box {
	width: 100%;
	max-width: none;
	overflow: visible;
	white-space: normal;
}

.careers-hero__title .line {
	white-space: normal;
}

.careers-hero__art {
	width: min(100%, 960px);
	justify-self: end;
}

.careers-hero__art img {
	width: 100%;
	border-radius: 32px;
	transform: scale(1.34);
	transform-origin: right center;
}

.careers-manifesto__grid {
	display: block;
}

.careers-manifesto,
.careers-principles {
	padding-top: clamp(72px, 9vw, 132px);
}

.careers-manifesto > .container {
	max-width: 1340px;
}

.careers-manifesto__copy {
	width: 100%;
	max-width: none;
	margin: 0 auto;
}

.careers-manifesto__copy .section-copy {
	max-width: none;
}

.careers-manifesto .line-box,
.careers-manifesto .line {
	white-space: normal;
}

.careers-manifesto__final {
	font-family: "Saol", serif;
	font-size: clamp(1.35rem, 2vw, 1.65rem);
	font-style: italic;
}

.careers-manifesto__copy em,
.careers-manifesto__copy i {
	font-family: "Saol", serif;
	font-style: italic;
	font-weight: 400;
}

.careers-manifesto__copy p {
	margin: 0;
}

.careers-manifesto__copy p + p {
	margin-top: 34px;
}

.careers-principles h2 {
	margin-bottom: clamp(42px, 6vw, 80px);
}

.careers-principles > .container,
.careers-openings__inner {
	max-width: 1340px;
}

.careers-principles__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(18px, 2.2vw, 32px);
	counter-reset: careers-principles;
}

.careers-principle {
	position: relative;
	min-height: 250px;
	padding: clamp(24px, 3vw, 40px);
	background: var(--color-surface);
	border: 1px solid #d3e4ec;
	border-radius: 0 var(--radius-card) 0 0;
	overflow: hidden;
	transition: transform 650ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 650ms ease;
}

.careers-principle::before {
	counter-increment: careers-principles;
	content: "0" counter(careers-principles);
	position: absolute;
	top: 18px;
	right: 24px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
	color: var(--color-text-soft);
}

.careers-principle::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 3px;
	height: 100%;
	background: #1e5ea8;
	transform: scaleY(0);
	transform-origin: top;
	transition: transform 700ms cubic-bezier(0.22, 1, 0.36, 1);
}

.careers-principle:nth-child(1) {
	transition-delay: 80ms;
}

.careers-principle:nth-child(2) {
	transition-delay: 220ms;
}

.careers-principle:nth-child(3) {
	transition-delay: 360ms;
}

/* Final Home diagram tuning: keep the three platform labels compact and give
 * every connector the same animated dashed treatment. */
.org-diagram__columns {
	grid-template-columns: minmax(0, 1fr) minmax(92px, 0.22fr) minmax(0, 1fr);
	grid-template-areas: "generation development-flow permanent";
	gap: 12px clamp(10px, 1.2vw, 18px);
	margin-top: 24px;
	padding-top: 28px;
	align-items: stretch;
}

.org-diagram__holding-arms {
	position: absolute;
	top: -28px;
	left: 23%;
	right: 23%;
	height: 28px;
	border-top: 1px dashed rgba(16, 16, 16, 0.28);
	animation: org-transfer-flow 1.7s linear infinite;
}

.org-diagram__holding-arms::before,
.org-diagram__holding-arms::after {
	content: "";
	position: absolute;
	top: 0;
	width: 1px;
	height: 28px;
	border-left: 1px dashed rgba(16, 16, 16, 0.28);
	animation: org-transfer-flow-vertical 1.7s linear infinite;
}

.org-diagram__holding-arms::before { left: 0; }
.org-diagram__holding-arms::after { right: 0; }

.org-diagram__holding-arrow {
	position: absolute;
	top: 22px;
	width: 9px;
	height: 9px;
	border-right: 1px solid rgba(16, 16, 16, 0.42);
	border-bottom: 1px solid rgba(16, 16, 16, 0.42);
	animation: org-holding-arrow-pulse 1.7s ease-in-out infinite;
}

.org-diagram__holding-arrow--left {
	left: -4px;
	transform: rotate(45deg);
}

.org-diagram__holding-arrow--right {
	right: -4px;
	transform: rotate(45deg);
}

.org-diagram__family-card {
	min-width: 0;
	padding: 8px;
}

.org-diagram__family-card--generation .org-diagram__branch {
	display: grid;
	align-content: start;
	gap: 12px;
}

.org-diagram__family-card--generation .org-diagram__level {
	height: auto;
}

.org-diagram__family-card--generation .org-diagram__level + .org-diagram__level {
	margin-top: 0;
}

.org-diagram__family-card--permanent .org-diagram__level {
	height: 100%;
}

.org-diagram__label {
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 36px;
	white-space: nowrap;
}

.org-diagram__family-card .org-card-grid--operations,
.org-diagram__family-card .org-card-grid--treasury {
	gap: 9px;
}

.org-diagram__flow--development {
	grid-area: development-flow;
	align-self: start;
	margin-top: 118px;
}

.org-diagram__flow--development::before {
	height: 1px;
	border-top: 0;
	background: repeating-linear-gradient(to right, currentColor 0 6px, transparent 6px 12px);
	animation: org-transfer-flow 1.7s linear infinite;
}

.org-diagram__flow--treasury::before {
	width: 1px;
	border-left: 0;
	background: repeating-linear-gradient(to bottom, currentColor 0 6px, transparent 6px 12px);
	animation: org-transfer-flow-vertical 1.7s linear infinite;
}

@keyframes org-transfer-flow-vertical {
	to { background-position: 0 12px; }
}

/* Home organisation diagram: separate development, investment and compounding
 * flows as specified in the client build notes. */
.org-diagram__columns {
	grid-template-columns: minmax(0, 1fr) minmax(92px, 0.22fr) minmax(0, 1fr);
	grid-template-areas: "generation development-flow permanent";
	gap: 12px clamp(10px, 1.2vw, 18px);
	margin-top: 24px;
	padding-top: 28px;
	align-items: stretch;
}

.org-diagram__holding-arms {
	position: absolute;
	top: -28px;
	left: 23%;
	right: 23%;
	height: 28px;
	background: repeating-linear-gradient(to right, rgba(16, 16, 16, 0.28) 0 6px, transparent 6px 12px) 0 0 / 100% 1px no-repeat;
	animation: org-diagram-dash-flow 1.7s linear infinite;
}

.org-diagram__holding-arms::before,
.org-diagram__holding-arms::after {
	content: "";
	position: absolute;
	top: 0;
	width: 1px;
	height: 28px;
	background: repeating-linear-gradient(to bottom, rgba(16, 16, 16, 0.28) 0 6px, transparent 6px 12px) 0 0 / 1px 100% no-repeat;
	animation: org-diagram-dash-flow-vertical 1.7s linear infinite;
}

.org-diagram__holding-arms::before { left: 0; }
.org-diagram__holding-arms::after { right: 0; }

.org-diagram__family-card {
	min-width: 0;
	padding: 8px;
}

.org-diagram__family-card--generation {
	grid-area: generation;
}

.org-diagram__family-card--permanent {
	grid-area: permanent;
	align-self: stretch;
}

.org-diagram__family-card .org-diagram__branch {
	padding-top: 0;
	height: 100%;
}

.org-diagram__family-card--generation .org-diagram__branch {
	display: grid;
	align-content: start;
	gap: 12px;
}

.org-diagram__family-card--generation .org-diagram__level + .org-diagram__level {
	margin-top: 0;
}

.org-diagram__family-card--generation .org-diagram__level {
	height: auto;
}

.org-diagram__family-card--permanent .org-diagram__level {
	height: 100%;
}

.org-diagram__label {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 36px;
	box-sizing: border-box;
	white-space: nowrap;
}

.org-diagram__family-card .org-card-grid--operations,
.org-diagram__family-card .org-card-grid--treasury {
	gap: 9px;
}

.org-diagram__flow {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--color-text-soft);
	font-size: 9px;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.25;
	text-align: center;
	text-transform: uppercase;
}

.org-diagram__flow--development {
	grid-area: development-flow;
	align-self: start;
	margin-top: 118px;
}

.org-diagram__flow--development::before {
	content: "";
	position: absolute;
	left: -18px;
	right: -18px;
	top: 50%;
	height: 1px;
	background: repeating-linear-gradient(to right, currentColor 0 6px, transparent 6px 12px);
	animation: org-diagram-dash-flow 1.7s linear infinite;
}

.org-diagram__flow--development i {
	position: absolute;
	right: -18px;
	top: calc(50% - 5px);
	width: 10px;
	height: 10px;
	border-top: 1px solid currentColor;
	border-right: 1px solid currentColor;
	transform: rotate(45deg);
}

.org-diagram__flow--development span {
	position: relative;
	z-index: 1;
	max-width: 12ch;
	padding: 4px 2px;
	background: var(--color-surface);
}

.org-diagram__flow--treasury {
	position: absolute;
	left: calc(23% - 22px);
	top: 42%;
	width: 90px;
	height: 110px;
	align-items: flex-start;
	justify-content: flex-end;
	transform: translateX(-100%);
}

.org-diagram__flow--treasury::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 0;
	bottom: 14px;
	border-left: 0;
	width: 1px;
	background: repeating-linear-gradient(to bottom, currentColor 0 6px, transparent 6px 12px);
	animation: org-diagram-dash-flow-vertical 1.7s linear infinite;
}

.org-diagram__flow--treasury i {
	position: absolute;
	left: calc(50% - 5px);
	top: -1px;
	width: 10px;
	height: 10px;
	border-top: 1px solid currentColor;
	border-left: 1px solid currentColor;
	transform: rotate(45deg);
}

.org-diagram__flow--treasury span {
	position: relative;
	z-index: 1;
	width: 100%;
	padding: 4px 0;
	background: var(--color-surface);
	font-size: 8px;
}

@keyframes org-diagram-dash-flow {
	from { background-position: 0 0; }
	to { background-position: 12px 0; }
}

@keyframes org-diagram-dash-flow-vertical {
	from { background-position: 0 0; }
	to { background-position: 0 12px; }
}

/* Companies index — platform families and image placeholders. */
.companies-index-page {
	--companies-generation-accent: #00949a;
	--companies-permanent-accent: #9c795a;
}

.companies-index-hero {
	background: #fff;
}

.companies-index-hero__inner {
	padding-top: clamp(28px, 4vw, 64px);
	padding-bottom: clamp(34px, 5vw, 76px);
}

.companies-index-hero h1 {
	max-width: 100%;
	margin: 18px 0 0;
	line-height: 1;
	overflow: visible;
}

.companies-index-hero h1 .line-box,
.companies-index-hero h1 .line {
	max-width: 100%;
	overflow: visible;
	white-space: normal;
}

.companies-family {
	padding: var(--section-padding) 0;
}

.companies-family--generation {
	background: #fff;
}

.companies-family--permanent {
	background: var(--color-surface-alt);
}

.companies-family__quote {
	max-width: 900px;
	margin: 0 auto;
	text-align: center;
}

.companies-family__quote blockquote {
	margin: 0;
	font-family: "Saol", serif;
	font-size: clamp(2rem, 3.3vw, 3.5rem);
	font-style: italic;
	font-weight: 400;
	line-height: 1.08;
}

.companies-family__translation {
	margin: 18px 0 0;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.companies-family__attribution {
	margin: 12px 0 0;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.2em;
}

.companies-family__label {
	margin: clamp(62px, 8vw, 112px) 0 24px;
}

.companies-family--generation .companies-family__label {
	color: var(--companies-generation-accent);
}

.companies-family--permanent .companies-family__label {
	color: var(--companies-permanent-accent);
}

.companies-platform-grid {
	display: grid;
	gap: clamp(18px, 2vw, 30px);
}

.companies-platform-grid--four {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.companies-platform-grid--one {
	grid-template-columns: minmax(0, 1fr);
	max-width: none;
}

.companies-platform-tile {
	display: flex;
	min-height: clamp(280px, 28vw, 390px);
	padding: clamp(22px, 2.4vw, 36px);
	flex-direction: column;
	align-items: stretch;
	justify-content: space-between;
	border: 1px solid rgba(16, 16, 16, 0.12);
	border-radius: 24px;
	background: #fff;
	transition: transform 220ms ease, box-shadow 220ms ease;
}

.companies-platform-tile:hover,
.companies-platform-tile:focus-visible {
	transform: translateY(-5px);
	box-shadow: 0 18px 38px rgba(16, 16, 16, 0.08);
}

.companies-platform-tile:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 4px;
}

.companies-platform-tile__logo {
	width: min(100%, 210px);
	height: 42px;
	object-fit: contain;
	object-position: left center;
}

.companies-platform-tile__placeholder {
	display: grid;
	min-height: 190px;
	place-items: center;
	border-radius: 18px;
	background: #eef2f5;
	color: rgba(16, 16, 16, 0.42);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-align: center;
}

.companies-platform-tile--generation {
	border-color: rgba(0, 148, 154, 0.28);
}

.companies-platform-tile--generation .companies-platform-tile__placeholder {
	background: #edf5f5;
	color: rgba(0, 112, 118, 0.58);
}

.companies-platform-tile--permanent {
	border-color: rgba(156, 121, 90, 0.32);
}

.companies-platform-tile--permanent .companies-platform-tile__placeholder {
	background: #f3efeb;
	color: rgba(130, 94, 61, 0.58);
}

.companies-index-contact__email {
	color: #397b45;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.05em;
	border-bottom: 1px solid currentColor;
}

/* Capital voice + people strip share the same editorial closing pattern as the other companies. */
.company-page--capital .capital-people-strip {
	margin-top: clamp(56px, 7vw, 104px);
}

/* Capital hero: full-bleed image with the copy anchored lower-left, as specified. */
.company-page--capital .capital-hero__overlay {
	justify-content: flex-start;
	align-items: flex-end;
	padding: clamp(42px, 7vw, 104px) var(--container-padding);
}

.company-page--capital .capital-hero--standard {
	min-height: 0;
	color: var(--color-text);
	background: transparent;
}

.company-page--capital .capital-hero--standard .capital-hero__content {
	width: 100%;
	max-width: none;
}

.company-page--capital .capital-hero--standard .capital-hero__title {
	max-width: min(100%, 17ch);
	margin: 0;
}

.company-page--capital .capital-hero--standard .capital-hero__copy {
	max-width: 58ch;
}

.company-page--capital .capital-hero--standard .capital-hero__art {
	align-self: center;
	align-items: center;
	width: min(100%, 900px);
}

.company-page--capital .capital-hero--standard .capital-hero__art img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: contain;
}

.company-page--capital .capital-hero__content {
	width: min(100%, 720px);
	margin: 0;
}

/* The four place images are editorial full-width blocks; captions stay inside the page grid. */
.company-page--capital .capital-gallery__item,
.company-page--capital .capital-gallery__item:nth-child(odd),
.company-page--capital .capital-gallery__item:nth-child(even) {
	padding-left: 0;
	padding-right: 0;
}

.company-page--capital .capital-gallery__item figcaption {
	padding-left: var(--container-padding);
	padding-right: var(--container-padding);
}

/* Craft placeholder follows the full height of the editorial content column. */
.company-page--capital .capital-craft-grid {
	align-items: stretch;
}

.company-page--capital .capital-photo--detail {
	height: 100%;
	min-height: 0;
}

/* Capital sections alternate the site's white and soft-grey surfaces. */
.company-page--capital .capital-craft-section,
.company-page--capital .capital-voice-section {
	background: #fff;
}

.company-page--capital .capital-inside-section {
	background: var(--color-surface-alt);
}

.company-page--capital .capital-inside {
	max-width: var(--container-width);
	margin-left: auto;
	margin-right: auto;
}

.company-page--capital .capital-conviction {
	padding-left: var(--container-padding);
	padding-right: var(--container-padding);
}

.company-page--capital .capital-conviction__body,
.company-page--ssg .ssg-thesis__body,
.company-page--industries .industries-letter__body {
	max-width: none;
}

.company-page--capital .capital-conviction h2,
.company-page--ssg .ssg-thesis h2,
.company-page--industries .industries-letter h2 {
	max-width: none;
}

.company-page--capital .capital-places-section {
	background: #fff;
}

.company-page--capital .capital-gallery-closing-section {
	background: #fff;
}

.company-page--capital .capital-gallery-closing-section .capital-gallery__closing {
	margin: 0 auto;
}

.company-page--capital .capital-contact-section .cta-hero {
	background:
		radial-gradient(circle at top, rgba(173, 214, 228, 0.32), transparent 58%),
		linear-gradient(180deg, #dfe9ef 0%, #edf3f6 100%);
}

/* Lio Industries — the owner's-letter page. */
.company-page--industries {
	--industries-bronze: #9c795a;
}

.company-page--industries .eyebrow,
.company-page--industries .text-link,
.company-page--industries .industries-contact__email {
	color: var(--industries-bronze);
}

.industries-hero {
	padding-top: 20px;
}

.industries-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 0.45fr) minmax(0, 0.55fr);
	align-items: center;
	gap: clamp(32px, 5vw, 88px);
	min-height: min(680px, calc(100svh - 76px));
}

.industries-hero__content,
.industries-hero__art {
	min-width: 0;
}

.industries-hero__title {
	max-width: 18ch;
	margin: 26px 0 0;
	line-height: 0.98;
}

.industries-hero__title .line-box,
.industries-hero__title .line,
.industries-hero__copy .line-box,
.industries-hero__copy .line {
	max-width: 100%;
	overflow: visible;
	white-space: normal;
}

.industries-hero__title em,
.industries-letter__signature p,
.industries-look-section h2 em,
.industries-inside-section h2 em {
	font-family: "Saol", serif;
	font-style: italic;
	font-weight: 400;
}

.industries-hero__copy {
	max-width: 42rem;
	margin: var(--shared-hero-copy-gap) 0 0;
	font-size: var(--shared-hero-copy-size);
	line-height: var(--shared-hero-copy-line-height);
}

.industries-hero__art {
	display: grid;
	place-items: center;
}

.industries-hero__art img {
	display: block;
	width: min(115%, 900px);
	height: auto;
	filter: sepia(0.12) saturate(0.82) hue-rotate(325deg);
}

.industries-letter-section {
	background: var(--color-surface-alt);
}

.industries-letter {
	padding-top: clamp(30px, 4vw, 64px);
}

.company-page--industries .industries-letter {
	padding-left: var(--container-padding);
	padding-right: var(--container-padding);
}

.industries-letter__body {
	max-width: 60ch;
	margin-top: clamp(34px, 5vw, 72px);
	font-size: clamp(1.08rem, 1.55vw, 1.36rem);
	line-height: 1.68;
}

.industries-letter__body p {
	margin: 0;
}

.industries-letter__body p + p {
	margin-top: clamp(30px, 4vw, 54px);
}

.company-page--industries .industries-letter .section-title {
	max-width: 100%;
}

.company-page--industries .industries-letter .section-title .line-box,
.company-page--industries .industries-letter .section-title .line {
	max-width: 100%;
	overflow: visible;
	white-space: normal;
}

.industries-letter__signature {
	max-width: 60ch;
	margin-top: clamp(42px, 5vw, 76px);
}

.industries-letter__signature p {
	margin: 0;
	font-size: clamp(1.5rem, 2.5vw, 2.35rem);
}

.industries-look-section .section-heading {
	margin-bottom: clamp(42px, 6vw, 80px);
}

.industries-look-section h2 {
	max-width: 20ch;
	margin-top: 18px;
}

.industries-look-list {
	border-top: 1px solid rgba(156, 121, 90, 0.52);
}

.industries-look-row {
	display: grid;
	grid-template-columns: minmax(190px, 0.32fr) minmax(0, 0.68fr);
	gap: clamp(24px, 5vw, 96px);
	padding: clamp(24px, 3vw, 38px) 0;
	border-bottom: 1px solid rgba(156, 121, 90, 0.52);
}

.industries-look-row h3,
.industries-look-row p {
	margin: 0;
}

.industries-look-row h3 {
	font-size: clamp(1.18rem, 1.8vw, 1.5rem);
	line-height: 1.2;
}

.industries-look-row p {
	max-width: 70ch;
	color: var(--color-text-soft);
	font-size: clamp(1rem, 1.35vw, 1.14rem);
	line-height: 1.65;
}

.industries-deadline,
.industries-plain-section,
.industries-closing {
	max-width: 920px;
	margin-left: 0;
	margin-right: auto;
}

.company-page--industries .industries-deadline {
	max-width: var(--container-width);
	margin-left: auto;
	margin-right: auto;
}

.company-page--industries .industries-deadline .section-heading {
	gap: 0;
}

.company-page--industries .industries-deadline .section-title {
	margin-top: 0;
}

.company-page--industries .industries-closing {
	max-width: var(--container-width);
}

.industries-deadline__intro {
	max-width: none;
	margin-top: clamp(28px, 4vw, 54px);
}

.company-page--industries .industries-deadline .section-title {
	max-width: none;
}

.company-page--industries .industries-deadline .section-title .line-box,
.company-page--industries .industries-deadline .section-title .line {
	max-width: 100%;
	overflow: visible;
	white-space: normal;
}

.industries-deadline__list {
	margin-top: clamp(42px, 6vw, 80px);
}

.company-page--industries .industries-selection {
	max-width: var(--container-width);
	margin-left: auto;
	margin-right: auto;
}

.company-page--industries .industries-selection .section-heading {
	gap: 0;
}

.company-page--industries .industries-selection .section-title {
	margin-top: 0;
}

.company-page--industries .industries-selection .industries-look-list {
	margin-top: clamp(42px, 6vw, 80px);
}

.industries-plain-section__copy {
	max-width: 62ch;
	margin: clamp(18px, 2.5vw, 32px) 0 0;
	color: var(--color-text-soft);
	font-size: clamp(1rem, 1.35vw, 1.14rem);
	line-height: 1.7;
}

.company-page--industries .industries-plain-section {
	max-width: none;
	margin-left: auto;
	margin-right: auto;
}

.company-page--industries .industries-plain-section__copy {
	max-width: none;
}

.site-main.company-page--industries .industries-ask-run-grid > .industries-ask-section,
.site-main.company-page--industries .industries-ask-run-grid > .industries-run-section {
	padding-top: clamp(40px, 4vw, 60px);
	padding-bottom: clamp(40px, 4vw, 60px);
}

.site-main.company-page--industries > .industries-deadline-section {
	padding-bottom: clamp(24px, 3vw, 40px);
}

.site-main.company-page--industries .industries-ask-run-grid > .industries-ask-section {
	padding-top: clamp(40px, 4vw, 60px);
}

.industries-ask-run-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.4fr) minmax(0, 0.6fr);
	gap: clamp(28px, 4vw, 64px);
	align-items: start;
}

.industries-ask-run-grid .section-shell {
	min-width: 0;
}

.industries-closing-section {
	background: #fff;
}

.industries-closing > p {
	max-width: 38ch;
	margin: 0;
	font-size: clamp(1.2rem, 2vw, 1.65rem);
	font-weight: 700;
	line-height: 1.15;
}

.industries-closing__statement {
	font-family: "Saol", serif;
	font-style: italic;
	font-weight: 400 !important;
}

.company-page--industries .industries-closing__people {
	margin-top: clamp(56px, 7vw, 104px);
	border-top-color: rgba(156, 121, 90, 0.45);
	border-bottom-color: rgba(156, 121, 90, 0.45);
}

.company-page--industries .industries-closing__people .text-link {
	color: var(--industries-bronze);
}

.company-page--industries .industries-closing__people {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 28px;
	padding: 14px 0;
}

.industries-closing__roster {
	display: flex;
	align-items: center;
	gap: clamp(22px, 3vw, 44px);
}

.industries-closing__person {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	color: inherit;
	text-decoration: none;
}

.industries-closing__portrait {
	flex: 0 0 42px;
	width: 42px !important;
	height: 42px !important;
	aspect-ratio: 1 / 1;
	border-radius: 50%;
}

.industries-closing__portrait .people-portrait__initials {
	font-size: 0.95rem;
}

.industries-closing__name {
	font-family: "Saol", serif;
	font-size: clamp(1.05rem, 1.45vw, 1.3rem);
	font-style: italic;
	line-height: 1;
}

.industries-closing__person:hover .industries-closing__name,
.industries-closing__person:focus-visible .industries-closing__name {
	color: var(--industries-bronze);
}

.industries-closing__toggle {
	border: 0;
	padding: 0;
	background: transparent;
	font: inherit;
	color: var(--industries-bronze);
	cursor: pointer;
}

.industries-closing__toggle:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 5px;
}

.industries-team-panel {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: clamp(18px, 2.2vw, 34px);
	max-height: 0;
	margin-top: 0;
	overflow: hidden;
	opacity: 0;
	transform: translateY(-12px);
	transition: max-height 520ms ease, margin-top 520ms ease, opacity 300ms ease, transform 520ms ease;
}

.industries-team-panel.is-open {
	max-height: 900px;
	margin-top: clamp(42px, 5vw, 72px);
	opacity: 1;
	transform: translateY(0);
}

.industries-team-card {
	min-width: 0;
}

.industries-team-card__portrait {
	width: 100%;
	max-width: none;
	aspect-ratio: 6 / 7;
	border-radius: 5px;
}

.industries-team-card__portrait img {
	transform: scale(1.3);
}

/* Shared expandable company teams: compact circular strip, six-column detail grid. */
.company-page--energy {
	--company-accent: #9fb77e;
}

.company-page--energy .eyebrow {
	color: #9fb77e;
}
.company-page--capital { --company-accent: var(--capital-teal, #00949a); }
.company-page--dc { --company-accent: var(--dc-accent, #004550); }
.company-page--ssg { --company-accent: var(--ssg-violet, #676aaa); }
.company-team-strip { display:flex !important; align-items:center; justify-content:space-between; gap:clamp(20px,3vw,48px); margin-top:clamp(56px,7vw,96px); padding:20px 0; border-top:1px solid color-mix(in srgb, var(--company-accent, #0b8390) 45%, transparent); border-bottom:1px solid color-mix(in srgb, var(--company-accent, #0b8390) 45%, transparent); }
.company-page--ssg .company-team-strip { margin-bottom:clamp(56px,7vw,96px); }
.company-page--ssg .company-team-panel.is-open { margin-bottom:clamp(56px,7vw,96px); }
.company-team-strip__names { display:flex; align-items:center; flex-wrap:wrap; gap:clamp(14px,2vw,28px); min-width:0; margin:0; }
.company-team-strip__person { display:inline-flex; align-items:center; gap:10px; color:inherit; text-decoration:none; font-family:"Saol", Georgia, serif; font-size:clamp(1.05rem,1.45vw,1.35rem); font-style:italic; line-height:1.2; }
.company-team-strip__person:hover, .company-team-strip__person:focus-visible { color:var(--company-accent, #0b8390); }
.company-team-strip__portrait { display:block; width:42px; height:42px; flex:0 0 42px; border-radius:50%; overflow:hidden; background:#eef2f4; }
.company-team-strip__portrait img { width:100%; height:100%; object-fit:cover; object-position:var(--person-image-position, 50% 50%); }
.company-team-strip__toggle { flex:0 0 auto; border:0; padding:0; background:transparent; cursor:pointer; white-space:nowrap; }
.company-team-panel[hidden] { display:none; }
.company-team-panel { --company-team-gap:clamp(20px,2.6vw,40px); display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:var(--company-team-gap); max-height:none; margin-top:0; overflow:visible; opacity:1; transform:none; }
.company-team-panel.is-open { max-height:2400px; margin-top:clamp(42px,5vw,72px); opacity:1; transform:translateY(0); }
.company-team-card { min-width:0; text-align:left; padding:clamp(12px,1.5vw,20px); background:var(--color-surface); border:1px solid var(--color-border); border-radius:32px; }
.company-team-card__portrait { display:block; width:100% !important; max-width:none !important; aspect-ratio:5 / 6 !important; height:auto !important; border-radius:22px !important; overflow:hidden; }
.company-team-card__portrait img { width:100%; height:100%; object-fit:cover; object-position:var(--person-image-position, 50% 50%); }
.company-team-card .people-card__role { margin-top:16px; }
.company-team-card .people-card__bio { max-width:34ch; font-size:0.9rem !important; }
.company-team-section { margin-top:clamp(48px,7vw,96px); margin-bottom:clamp(56px,8vw,112px); }
.company-team-heading { margin:0 0 clamp(28px,4vw,52px); font-family:"Saol", Georgia, serif; font-size:clamp(2rem,4vw,4rem); font-style:italic; font-weight:400; line-height:1; }
.company-page--ssg .company-team-heading { text-align:center; }
.company-page--industries .company-team-heading { text-align:center; }
.company-page--industries .industries-closing > p { max-width:900px; margin-inline:auto; text-align:center; }
.company-team-panel--stacked { display:grid; grid-template-columns:minmax(0,1fr); gap:clamp(20px,3vw,40px); max-height:none; margin-top:0; overflow:visible; opacity:1; transform:none; }
.company-team-panel--stacked .company-team-card { display:grid; grid-template-columns:minmax(160px,220px) minmax(0,1fr); column-gap:clamp(28px,5vw,72px); align-content:start; }
.company-team-panel--stacked .company-team-card__portrait { grid-column:1; grid-row:1 / -1; }
.company-team-panel--stacked .company-team-card__content { grid-column:2; align-self:start; }
.company-team-panel--stacked .company-team-card .people-card__role { margin-top:0; }
.company-team-panel--stacked .company-team-card .people-card__name { margin-top:12px; }
.company-team-panel--stacked .company-team-card .people-card__bio { margin-top:18px; max-width:100%; }ndustries-team-card .people-card__role {
	margin-top: 16px;
}

.company-team-panel.company-team-panel--count-1 { grid-template-columns:repeat(1,minmax(0,1fr)); }
.company-team-panel.company-team-panel--count-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.company-team-panel.company-team-panel--count-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.company-team-panel.company-team-panel--count-4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.company-team-panel.company-team-panel--count-5 { grid-template-columns:repeat(5,minmax(0,1fr)); }

/* Keep portraits at the same visual scale as the five-column People layout
 * when a company team has fewer members and the cards become wider. */
.company-team-panel.company-team-panel--count-1 .company-team-card__portrait,
.company-team-panel.company-team-panel--count-2 .company-team-card__portrait,
.company-team-panel.company-team-panel--count-3 .company-team-card__portrait,
.company-team-panel.company-team-panel--count-4 .company-team-card__portrait {
	max-width: 240px !important;
	margin-right: auto;
	margin-left: auto;
}

@media (min-width: 921px) {
	.company-team-panel.company-team-panel--count-1,
	.company-team-panel.company-team-panel--count-2,
	.company-team-panel.company-team-panel--count-3,
	.company-team-panel.company-team-panel--count-4 {
		margin-right: auto;
		margin-left: auto;
	}

	.company-team-panel.company-team-panel--count-1 {
		max-width: calc((100% - (4 * var(--company-team-gap))) / 5);
	}

	.company-team-panel.company-team-panel--count-2 {
		max-width: calc((2 * ((100% - (4 * var(--company-team-gap))) / 5)) + var(--company-team-gap));
	}

	.company-team-panel.company-team-panel--count-3 {
		max-width: calc((3 * ((100% - (4 * var(--company-team-gap))) / 5)) + (2 * var(--company-team-gap)));
	}

	.company-team-panel.company-team-panel--count-4 {
		max-width: calc((4 * ((100% - (4 * var(--company-team-gap))) / 5)) + (3 * var(--company-team-gap)));
	}
}

.company-team-card__portrait {
	border-radius: 0 !important;
}

.industries-team-card .people-card__bio {
	max-width: 34ch;
	font-size: 0.9rem !important;
}

.industries-inside-section {
	background: rgba(156, 121, 90, 0.05);
}

.industries-inside-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.6fr) minmax(220px, 0.4fr);
	align-items: center;
	gap: clamp(42px, 8vw, 140px);
}

.company-page--industries .industries-inside-grid {
	grid-template-columns: minmax(0, 1fr);
}

.company-page--industries .industries-inside-section h2 {
	max-width: none;
}

.industries-inside-section h2 {
	max-width: 24ch;
	margin-top: 18px;
}

.industries-inside-section h2 .line-box,
.industries-inside-section h2 .line,
.industries-inside__body .line-box,
.industries-inside__body .line {
	max-width: 100%;
	overflow: visible;
	white-space: normal;
}

.industries-inside__body {
	max-width: 64ch;
	margin-top: clamp(32px, 4vw, 58px);
}

.company-page--industries .industries-inside__body {
	max-width: none;
}

.industries-inside__body p + p {
	margin-top: 28px;
}

.industries-inside__art {
	display: grid;
	place-items: center;
}

.industries-inside__art img {
	display: block;
	width: 100%;
	max-width: 680px;
	height: auto;
	filter: sepia(0.2) saturate(0.7) hue-rotate(325deg);
	mix-blend-mode: multiply;
}

/* Lio SSG — editorial special situations page. */
.company-page--ssg {
	--ssg-violet: #676AAA;
}

.company-page--ssg .eyebrow,
.company-page--ssg .text-link,
.company-page--ssg .ssg-contact__email,
.company-page--ssg .ssg-formula__caption {
	color: var(--ssg-violet);
}

.ssg-hero {
	padding-top: 20px;
}

.ssg-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 0.45fr) minmax(0, 0.55fr);
	align-items: center;
	gap: clamp(32px, 5vw, 88px);
	min-height: min(680px, calc(100svh - 76px));
}

.ssg-hero__content,
.ssg-hero__art {
	min-width: 0;
}

.ssg-hero__title {
	max-width: 15ch;
	margin: 26px 0 0;
	line-height: 0.98;
}

.ssg-hero__title .line-box,
.ssg-hero__title .line,
.ssg-hero__copy .line-box,
.ssg-hero__copy .line {
	max-width: 100%;
	overflow: visible;
	white-space: normal;
}

.ssg-hero__title em,
.ssg-thesis h2 em,
.ssg-work__copy h2 em,
.ssg-inside__copy h2 em {
	font-family: "Saol", serif;
	font-style: italic;
	font-weight: 400;
}

.ssg-hero__copy {
	max-width: 34rem;
	margin: var(--shared-hero-copy-gap) 0 0;
	font-size: var(--shared-hero-copy-size);
	line-height: var(--shared-hero-copy-line-height);
}

.ssg-hero__art {
	display: grid;
	place-items: center;
}

.ssg-hero__art img {
	display: block;
	width: min(100%, 800px);
	height: auto;
	filter: none;
}

.ssg-thesis-section {
	background: #fff;
}

.ssg-thesis {
	padding-left: var(--container-padding);
	padding-right: var(--container-padding);
}

.company-page--ssg .ssg-thesis {
	padding-left: var(--container-padding);
	padding-right: var(--container-padding);
}

.ssg-thesis h2 {
	max-width: 22ch;
	margin-top: 18px;
}

.ssg-thesis h2 .line-box,
.ssg-thesis h2 .line {
	max-width: 100%;
	overflow: visible;
	white-space: normal;
}

.ssg-thesis__body {
	max-width: 62ch;
	margin-top: clamp(38px, 5vw, 72px);
	font-size: 1.05rem;
	line-height: 1.7;
}

.ssg-thesis__body p {
	margin: 0;
}

.ssg-thesis__body p + p {
	margin-top: 30px;
}

.ssg-thesis__lead {
	font-size: clamp(1.22rem, 1.9vw, 1.65rem);
	line-height: 1.42;
}

.ssg-work-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(44px, 6vw, 80px);
}

.ssg-work__copy h2,
.ssg-inside__copy h2 {
	max-width: 14ch;
	margin-top: 18px;
}

.ssg-inside__copy h2 {
	max-width: none;
	white-space: nowrap;
}

.ssg-work__copy h2 .line-box,
.ssg-work__copy h2 .line,
.ssg-inside__copy h2 .line-box,
.ssg-inside__copy h2 .line {
	max-width: 100%;
	overflow: visible;
	white-space: normal;
}

.ssg-work__body {
	max-width: 66ch;
	margin-top: clamp(32px, 4vw, 56px);
	color: var(--color-text-soft);
	font-size: clamp(1rem, 1.35vw, 1.14rem);
	line-height: 1.68;
}

.ssg-work__body p {
	margin: 0;
}

.ssg-work__body p + p {
	margin-top: 26px;
}

.ssg-quote {
	max-width: 62ch;
	margin: clamp(38px, 5vw, 72px) 0 0;
	padding: 4px 0 4px 28px;
	border-left: 2px solid var(--ssg-violet);
}

.ssg-quote p {
	margin: 0;
	font-family: "Saol", serif;
	font-size: clamp(1.35rem, 2.2vw, 2.1rem);
	font-style: italic;
	line-height: 1.16;
}

.ssg-quote cite {
	display: block;
	margin-top: 22px;
	font-size: 11px;
	font-style: normal;
	font-weight: 700;
	letter-spacing: 0.16em;
}

.company-page--ssg .ssg-quote {
	max-width: 48ch;
	margin-left: auto;
	margin-right: auto;
	padding-left: 0;
	border-left: 0;
	text-align: center;
}

.company-page--ssg .ssg-quote p {
	font-size: clamp(1.8rem, 3.5vw, 3.8rem);
}

.company-page--ssg .ssg-quote cite {
	text-align: center;
}

.ssg-formula-wrap {
	display: grid;
	align-items: center;
	justify-items: stretch;
	min-height: auto;
	padding: clamp(24px, 3vw, 38px) 0;
}

.ssg-formula {
	width: 100%;
	text-align: left;
}

.ssg-formula summary {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	justify-content: center;
	justify-items: center;
	align-items: center;
	gap: 20px;
	list-style: none;
	cursor: pointer;
}

.ssg-formula summary::-webkit-details-marker {
	display: none;
}

.ssg-formula__equation {
	display: inline-block;
	font-family: "Saol Display", "Saol", Georgia, serif;
	font-size: clamp(2.25rem, 4.3vw, 4.4rem);
	font-style: italic;
	line-height: 1;
	border-bottom: 2px dotted rgba(103, 106, 170, 0.58);
	padding-bottom: 12px;
	transition: color var(--transition-default), border-color var(--transition-default), transform var(--transition-default);
}

.ssg-formula summary:hover .ssg-formula__equation,
.ssg-formula summary:focus-visible .ssg-formula__equation,
.ssg-formula[open] .ssg-formula__equation {
	color: var(--ssg-violet);
	border-bottom-color: var(--ssg-violet);
	transform: translateY(-3px);
}

.ssg-formula summary:focus-visible {
	outline: 2px solid var(--ssg-violet);
	outline-offset: 8px;
}

.ssg-formula__caption {
	padding-left: 0;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.16em;
}

.ssg-formula > p {
	max-width: 48ch;
	margin: 28px auto 0;
	color: var(--color-text-soft);
	font-size: 0.98rem;
	line-height: 1.65;
	text-align: center;
}

.ssg-deploy-section .section-heading {
	margin-bottom: clamp(42px, 6vw, 80px);
}

.ssg-deploy-section h2 {
	max-width: 20ch;
	margin-top: 0;
}

.company-page--ssg .ssg-deploy-section .section-heading {
	gap: 0;
}

.ssg-deploy-section h2 .line-box,
.ssg-deploy-section h2 .line {
	max-width: 100%;
	overflow: visible;
	white-space: normal;
}

.ssg-deploy-list {
	border-top: 1px solid rgba(103, 106, 170, 0.45);
}

.ssg-deploy-row {
	display: grid;
	grid-template-columns: minmax(240px, 0.34fr) minmax(0, 0.66fr);
	gap: clamp(24px, 5vw, 96px);
	padding: clamp(24px, 3vw, 38px) 0;
	border-bottom: 1px solid rgba(103, 106, 170, 0.45);
}

.ssg-deploy-row h3,
.ssg-deploy-row p {
	margin: 0;
}

.ssg-deploy-row h3 {
	font-size: clamp(1.18rem, 1.8vw, 1.5rem);
	line-height: 1.2;
}

.ssg-deploy-row p {
	max-width: 72ch;
	color: var(--color-text-soft);
	font-size: clamp(1rem, 1.35vw, 1.14rem);
	line-height: 1.65;
}

.ssg-inside-section {
	background: rgba(103, 106, 170, 0.05);
}

.ssg-inside-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.6fr) minmax(220px, 0.4fr);
	align-items: center;
	gap: clamp(42px, 8vw, 140px);
}

.company-page--ssg .ssg-inside-grid {
	grid-template-columns: minmax(0, 1fr);
}

.ssg-inside__body {
	max-width: 66ch;
	margin-top: clamp(32px, 4vw, 58px);
}

.company-page--ssg .ssg-inside__body {
	max-width: none;
}

.ssg-inside__body p + p {
	margin-top: 28px;
}

.ssg-inside__art {
	display: grid;
	place-items: center;
}

.ssg-inside__art img {
	display: block;
	width: 100%;
	max-width: 860px;
	height: auto;
	filter: none;
	mix-blend-mode: normal;
}

.ssg-people-section {
	padding-top: clamp(28px, 4vw, 48px) !important;
	padding-bottom: clamp(28px, 4vw, 48px) !important;
}

.site-main.company-page--ssg > .ssg-people-section {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

.ssg-people-strip {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: clamp(20px, 3vw, 48px);
	padding: 20px var(--container-padding);
	border-top: 1px solid rgba(103, 106, 170, 0.45);
	border-bottom: 1px solid rgba(103, 106, 170, 0.45);
}

.ssg-people-strip .eyebrow {
	margin: 0;
}

.ssg-people-strip__names {
	margin: 0;
	font-family: "Saol", serif;
	font-size: clamp(1.1rem, 1.6vw, 1.35rem);
	font-style: italic;
	line-height: 1.45;
}

.ssg-people-strip__names a {
	color: inherit;
	text-decoration: none;
	transition: color var(--transition-default);
}

.ssg-people-strip__names a:hover,
.ssg-people-strip__names a:focus-visible {
	color: var(--ssg-violet);
}

.ssg-people-strip .text-link {
	white-space: nowrap;
}

.ssg-voice__quote {
	border-left-color: var(--ssg-violet);
}

.ssg-voice__attribution {
	color: var(--ssg-violet);
}

.company-page--ssg .ssg-voice__quote {
	max-width: 48ch;
	margin-left: auto;
	margin-right: auto;
	padding-left: 0;
	border-left: 0;
	text-align: center;
}

.company-page--ssg .ssg-voice__attribution {
	color: var(--color-text-soft);
}

.ssg-voice .ssg-people-strip {
	margin-top: clamp(56px, 7vw, 96px);
}

.ssg-contact-section .cta-hero__inner {
	text-align: center;
}

.ssg-contact-section .cta-hero__copy {
	max-width: 58ch;
	margin-left: auto;
	margin-right: auto;
}

.ssg-contact__email {
	display: inline-block;
	margin-top: 8px;
	padding-bottom: 8px;
	border-bottom: 1px solid currentColor;
	font-size: clamp(1rem, 1.35vw, 1.2rem);
	font-weight: 600;
	letter-spacing: 0.04em;
}

/* Lio Capital — the photography-led page. */
.company-page--capital {
	--capital-teal: #00949A;
}

.company-page--capital .eyebrow,
.company-page--capital .text-link,
.company-page--capital .capital-contact__email {
	color: var(--capital-teal);
}

.capital-hero {
	position: relative;
	min-height: 90svh;
	color: #fff;
	overflow: hidden;
}

.capital-hero__overlay {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: flex-end;
	padding: clamp(42px, 8vw, 116px) 0;
	background: linear-gradient(180deg, transparent 34%, rgba(9, 44, 47, 0.1) 58%, rgba(6, 28, 30, 0.66) 100%);
}

.capital-hero__content {
	max-width: 720px;
}

.capital-hero .eyebrow {
	margin-bottom: 18px;
}

.capital-hero__title {
	max-width: 16ch;
	margin: 0;
	line-height: 0.98;
}

.capital-hero__title .line-box,
.capital-hero__title .line,
.capital-hero__copy .line-box,
.capital-hero__copy .line {
	max-width: 100%;
	overflow: visible;
	white-space: normal;
}

.capital-hero__title em,
.capital-conviction h2 em,
.capital-craft-section h2 em,
.capital-inside h2 em {
	font-family: "Saol", serif;
	font-style: italic;
	font-weight: 400;
}

.capital-hero__copy {
	max-width: 50ch;
	margin: 28px 0 0;
	line-height: 1.3;
}

.capital-photo {
	position: relative;
	display: grid;
	place-items: center;
	overflow: hidden;
	background-color: #dceced;
	color: rgba(0, 72, 78, 0.64);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.capital-photo::before,
.capital-photo::after {
	content: "";
	position: absolute;
	border: 1px solid rgba(0, 148, 154, 0.24);
	border-radius: 50%;
}

.capital-photo::before {
	width: 48%;
	height: 80%;
	transform: translate(-20%, 12%) rotate(-15deg);
}

.capital-photo::after {
	width: 72%;
	height: 48%;
	transform: translate(18%, -20%) rotate(12deg);
}

.capital-photo span {
	position: relative;
	z-index: 1;
}

.capital-photo--hero {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(145deg, rgba(154, 205, 202, 0.8), rgba(37, 112, 118, 0.42)),
		linear-gradient(25deg, #4c8587 0%, #c9dedd 52%, #e8e8d9 100%);
	}

.capital-photo--hero::before {
	width: 44%;
	height: 170%;
	border-color: rgba(255, 255, 255, 0.32);
	transform: translate(66%, -10%) rotate(34deg);
}

.capital-photo--hero::after {
	width: 90%;
	height: 70%;
	border-color: rgba(255, 255, 255, 0.3);
	transform: translate(-5%, 40%) rotate(-9deg);
}

.capital-photo--coast {
	min-height: 72svh;
	background: linear-gradient(155deg, #a6ccca, #d9e9e4 52%, #8bb1b0);
}

.capital-photo--lakes {
	min-height: 72svh;
	background: linear-gradient(160deg, #c6dfdc 0%, #8fb8bc 48%, #456f79 100%);
}

.capital-photo--cities {
	min-height: 72svh;
	background: linear-gradient(140deg, #d8d8cf, #a8c4c2 48%, #577c7d 100%);
}

.capital-photo--islands {
	min-height: 72svh;
	background: linear-gradient(145deg, #e3ded0, #accac3 46%, #4d8786 100%);
}

.capital-conviction-section {
	background: #fff;
}

.capital-conviction {
	padding-left: clamp(0px, 7vw, 120px);
}

.capital-conviction h2 {
	max-width: 22ch;
	margin-top: 18px;
}

.capital-conviction h2 .line-box,
.capital-conviction h2 .line {
	max-width: 100%;
	overflow: visible;
	white-space: normal;
}

.capital-conviction__body {
	max-width: 62ch;
	margin-top: clamp(38px, 5vw, 72px);
	font-size: 1.05rem;
	line-height: 1.7;
}

.capital-conviction__body p {
	margin: 0;
}

.capital-conviction__body p + p {
	margin-top: 30px;
}

.capital-places-section {
	padding: clamp(72px, 10vw, 148px) 0;
	background: #fff;
}

.capital-places__intro {
	margin-bottom: clamp(30px, 5vw, 72px);
}

.capital-gallery {
	display: grid;
	gap: clamp(72px, 12vw, 180px);
}

.capital-gallery__item {
	width: 100%;
	margin: 0;
}

.capital-gallery__item:nth-child(even) {
	padding-left: clamp(0px, 9vw, 160px);
}

.capital-gallery__item:nth-child(odd) {
	padding-right: clamp(0px, 9vw, 160px);
}

.capital-gallery__item figcaption {
	margin-top: 16px;
	color: var(--capital-teal);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.capital-gallery__closing {
	max-width: 42ch;
	margin: clamp(72px, 12vw, 180px) auto 0;
	font-family: "Saol", serif;
	font-size: clamp(1.5rem, 2.5vw, 2.6rem);
	font-style: italic;
	line-height: 1.16;
	text-align: center;
}

.capital-craft-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.7fr) minmax(260px, 0.3fr);
	align-items: start;
	gap: clamp(42px, 8vw, 140px);
}

.capital-craft-section h2 {
	max-width: 18ch;
	margin-top: 18px;
}

.capital-craft-section .section-heading,
.capital-investors .section-heading {
	gap: 0;
}

.capital-craft-section .section-heading .section-title,
.capital-investors .section-heading .section-title {
	margin-top: 0;
}

.company-page--capital .capital-craft-section h2 {
	max-width: none;
}

.company-page--capital .capital-craft-section h2 .line-box,
.company-page--capital .capital-craft-section h2 .line {
	white-space: nowrap;
}

.capital-craft-section h2 .line-box,
.capital-craft-section h2 .line {
	max-width: 100%;
	overflow: visible;
	white-space: normal;
}

.capital-craft-list {
	margin-top: clamp(42px, 6vw, 80px);
	border-top: 1px solid rgba(0, 148, 154, 0.4);
}

.capital-craft-row {
	display: grid;
	grid-template-columns: minmax(190px, 0.32fr) minmax(0, 0.68fr);
	gap: clamp(24px, 5vw, 96px);
	padding: clamp(24px, 3vw, 38px) 0;
	border-bottom: 1px solid rgba(0, 148, 154, 0.4);
}

.capital-craft-row h3,
.capital-craft-row p {
	margin: 0;
}

.capital-craft-row h3 {
	font-size: clamp(1.15rem, 1.7vw, 1.4rem);
	line-height: 1.2;
}

.capital-craft-row p {
	color: var(--color-text-soft);
	font-size: clamp(1rem, 1.3vw, 1.12rem);
	line-height: 1.65;
}

.capital-craft__closing {
	max-width: none;
	margin: 38px 0 0;
	font-size: clamp(1rem, 1.35vw, 1.14rem);
	line-height: 1.65;
	white-space: nowrap;
}

.capital-photo--detail {
	min-height: 460px;
	background: linear-gradient(145deg, #d8e7e5, #a6c8c5 48%, #648f91);
}

.capital-inside-section {
	background: #fff;
}

.capital-lhove__acronym {
	margin: -8px 0 0;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--color-text-soft);
}

.capital-inside {
	max-width: 1040px;
	margin-left: auto;
	margin-right: auto;
}

.capital-inside h2 {
	max-width: 18ch;
	margin-top: 18px;
}

.capital-inside h2 .line-box,
.capital-inside h2 .line {
	max-width: 100%;
	overflow: visible;
	white-space: normal;
}

.capital-inside__copy {
	max-width: 72ch;
	margin: clamp(34px, 5vw, 70px) 0 0;
	color: var(--color-text-soft);
	font-size: clamp(1rem, 1.35vw, 1.14rem);
	line-height: 1.7;
}

.capital-voice-section {
	background: #fff;
}

.capital-voice {
	max-width: 1180px;
	text-align: center;
}

.capital-voice blockquote {
	max-width: 48ch;
	margin: 0 auto;
	padding: 4px 0 4px 28px;
	border-left: 2px solid var(--capital-teal);
	font-family: "Saol", serif;
	font-size: clamp(1.8rem, 3.5vw, 3.8rem);
	font-style: italic;
	line-height: 1.08;
	text-align: left;
}

/* Keep the Capital closing quote and people strip consistent with the other
 * company pages: centered quote, no decorative side rule, full-width strip. */
.company-page--capital .capital-voice {
	max-width: var(--container-width);
}

.company-page--capital .capital-voice blockquote {
	padding-left: 0;
	border-left: 0;
	text-align: center;
}

.company-page--capital .capital-voice > p {
	text-align: center;
}

.company-page--capital .capital-people-strip {
	width: 100%;
}

.capital-voice > p {
	margin: 28px 0 0;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.16em;
}

.company-page--capital .capital-craft-grid--single {
	grid-template-columns: minmax(0, 1fr);
}

.company-page--capital .capital-craft-grid--single .capital-craft__main,
.capital-lhove {
	max-width: 920px;
	margin-left: 0;
	margin-right: auto;
}

.company-page--capital .capital-craft-grid--single .capital-craft__main,
.company-page--capital .capital-investors {
	width: 100%;
	max-width: var(--container-width);
	margin-left: auto;
	margin-right: auto;
}

.capital-investors-section,
.capital-lhove-section {
	background: #fff;
}

.capital-investors .section-title {
	max-width: 20ch;
	margin-top: 18px;
}

.capital-investors-list {
	margin-top: clamp(42px, 6vw, 80px);
}

.capital-lhove__intro {
	max-width: none;
	margin-top: 30px;
}

.company-page--capital .capital-lhove h2 {
	max-width: none;
	overflow: visible;
}

.company-page--capital .capital-lhove h2 .line-box,
.company-page--capital .capital-lhove h2 .line {
	width: 100%;
	max-width: none;
	overflow: visible;
	white-space: nowrap;
}

.capital-lhove-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(16px, 2.5vw, 32px);
	margin-top: clamp(42px, 6vw, 80px);
}

/* Legal pages use the same typography and container rhythm as the rest of the
 * site while keeping long policy text comfortably readable. */
.legal-policy {
	max-width: 880px;
	color: var(--color-text-soft);
	font-size: clamp(1rem, 1.25vw, 1.1rem);
	line-height: 1.65;
}

.legal-policy-section {
	min-height: 60vh;
}

.legal-policy__title {
	max-width: none;
	margin-bottom: 24px !important;
	color: var(--color-text);
}

.legal-policy__subtitle {
	margin: 0;
	font-size: .95rem;
	font-weight: 700;
	letter-spacing: .08em;
	line-height: 1.45;
	text-transform: uppercase;
}

.legal-policy__updated {
	margin: 8px 0 42px;
	font-size: .85rem;
	color: var(--color-text-soft);
}

.legal-policy p {
	margin: 0 0 18px;
}

.legal-policy h2 {
	margin: 48px 0 16px;
	padding-bottom: 8px;
	border-bottom: 1px solid var(--color-border);
	color: var(--color-text);
	font-size: clamp(1.35rem, 2vw, 1.7rem);
	line-height: 1.1;
}

.legal-policy ul {
	margin: 0 0 18px;
	padding-left: 1.35rem;
}

.legal-policy li {
	margin-bottom: 8px;
}

.legal-policy a {
	color: inherit;
}

@media (max-width: 720px) {
	.legal-policy {
		font-size: 1rem;
	}

	.legal-policy__updated {
		margin-bottom: 32px;
	}

	.legal-policy h2 {
		margin-top: 36px;
	}
}

.capital-lhove-frame {
	margin: 0;
	height: clamp(220px, 23vw, 405px);
	overflow: hidden;
}

.capital-lhove-frame img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border: 1px solid var(--color-border);
	border-radius: 5px;
}

.capital-lhove-frame:nth-child(1) { transition-delay: 0ms; }
.capital-lhove-frame:nth-child(2) { transition-delay: 140ms; }
.capital-lhove-frame:nth-child(3) { transition-delay: 280ms; }
.capital-lhove-frame:nth-child(4) { transition-delay: 420ms; }

.company-page--capital .capital-lhove {
	max-width: var(--container-width);
}

.company-page--capital .capital-inside-section {
	background: var(--color-surface-alt);
}

.capital-people-section {
	padding-top: 34px !important;
	padding-bottom: 34px !important;
}

.capital-people-strip {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: clamp(20px, 3vw, 48px);
	padding: 20px 0;
	border-top: 1px solid rgba(0, 148, 154, 0.4);
	border-bottom: 1px solid rgba(0, 148, 154, 0.4);
}

.capital-people-strip .eyebrow,
.capital-people-strip__names {
	margin: 0;
}

.capital-people-strip__names {
	font-family: "Saol", serif;
	font-size: clamp(1.1rem, 1.6vw, 1.35rem);
	font-style: italic;
}

.capital-people-strip .text-link {
	white-space: nowrap;
}

.capital-contact-section .cta-hero__inner {
	text-align: center;
}

.capital-contact-section .cta-hero__copy {
	max-width: 58ch;
	margin-left: auto;
	margin-right: auto;
}

.capital-contact__email {
	display: inline-block;
	margin-top: 8px;
	padding-bottom: 8px;
	border-bottom: 1px solid currentColor;
	font-size: clamp(1rem, 1.35vw, 1.2rem);
	font-weight: 600;
	letter-spacing: 0.04em;
}

.industries-people-section {
	padding-top: clamp(28px, 4vw, 48px) !important;
	padding-bottom: clamp(28px, 4vw, 48px) !important;
}

.industries-people-strip {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: clamp(20px, 3vw, 48px);
	padding: 20px 0;
	border-top: 1px solid rgba(156, 121, 90, 0.45);
	border-bottom: 1px solid rgba(156, 121, 90, 0.45);
}

.industries-people-strip .eyebrow {
	margin: 0;
}

.industries-people-strip__names {
	margin: 0;
	font-family: "Saol", serif;
	font-style: italic;
	font-size: clamp(1.15rem, 1.7vw, 1.45rem);
}

.industries-people-strip .text-link {
	white-space: nowrap;
}

.company-page--industries .industries-voice__quote {
	max-width: 48ch;
	margin-left: auto;
	margin-right: auto;
	padding-left: 0;
	border-left: 0;
	text-align: center;
}

.company-page--industries .industries-voice__attribution {
	color: var(--color-text-soft);
}

.industries-contact-section .cta-hero__inner {
	text-align: center;
}

.industries-contact-section .cta-hero__copy {
	max-width: 58ch;
	margin-left: auto;
	margin-right: auto;
}

.industries-contact__email {
	display: inline-block;
	margin-top: 8px;
	font-size: clamp(1rem, 1.35vw, 1.2rem);
	font-weight: 600;
	letter-spacing: 0.04em;
	text-decoration: none;
	border-bottom: 1px solid currentColor;
	padding-bottom: 8px;
}

/* Keep the DC hero text inside its grid column while preserving the reveal animation. */
.company-page--dc .dc-hero__title .line-box,
.company-page--dc .dc-hero__title .line {
	width: 100%;
	max-width: 100%;
	overflow: visible;
	white-space: normal;
}

.company-page--dc .dc-hero__title {
	width: 100%;
	max-width: 100%;
	overflow: visible;
}

.company-page--dc .dc-hero__copy {
	display: block;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	white-space: normal !important;
	overflow-wrap: anywhere;
}

.company-page--dc .dc-hero__copy span {
	display: block;
	max-width: 100%;
	white-space: normal;
}

.company-page--dc .dc-hero__content,
.company-page--dc .dc-hero__art {
	min-width: 0;
}

.company-page--dc .textify-animation .line-box,
.company-page--dc .textify-animation .line {
	width: 100%;
	max-width: none;
	overflow: visible;
	white-space: normal;
}

.careers-principle.is-visible {
	box-shadow: 0 18px 36px rgba(16, 16, 16, 0.06);
}

.careers-principle.is-visible::after {
	transform: scaleY(1);
}

.careers-principle + .careers-principle {
	padding-left: clamp(24px, 3vw, 40px);
	border-left: 1px solid #d3e4ec;
}

.careers-principle h3 {
	margin: 0 0 24px;
	font-size: clamp(1.6rem, 2.5vw, 2.3rem);
	font-weight: 500;
	letter-spacing: -0.04em;
}

.careers-principle p {
	max-width: 310px;
	margin: 0;
	color: var(--color-text-soft);
	line-height: 1.7;
}

.careers-openings {
	padding: clamp(72px, 10vw, 150px) 0;
	background: var(--color-surface-alt);
	color: var(--color-text);
}

.careers-openings__inner {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(300px, 0.9fr);
	align-items: end;
	gap: clamp(40px, 8vw, 140px);
}

.careers-openings .careers-openings__inner {
	grid-template-columns: minmax(0, 1fr);
}

.careers-openings__title {
	max-width: none;
	margin: 0;
	color: var(--color-text);
}

.careers-openings__title em {
	display: block;
}

.careers-openings__message p {
	margin: 0;
}

.careers-openings__message p + p {
	margin-top: 20px;
	color: var(--color-text-soft);
	line-height: 1.7;
}

.careers-email {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	margin-top: 42px;
	padding-bottom: 7px;
	border-bottom: 1px solid rgba(16, 16, 16, 0.72);
	color: var(--color-text);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.08em;
	transition: border-color var(--transition-default), color var(--transition-default);
}

.careers-email span {
	font-size: 20px;
	line-height: 1;
}

.careers-email:hover,
.careers-email:focus-visible {
	color: #8fc5e6;
	border-color: #8fc5e6;
}

.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: color-mix(in srgb, var(--color-surface) 92%, transparent);
	backdrop-filter: blur(16px);
	border-bottom: 1px solid rgba(16, 16, 16, 0.04);
	transition: box-shadow var(--transition-default), border-color var(--transition-default), background-color var(--transition-default);
}

.site-header.is-scrolled {
	box-shadow: 0 10px 28px rgba(16, 16, 16, 0.05);
	border-bottom-color: rgba(16, 16, 16, 0.08);
}

.site-header__inner {
	/* Header and full-width page sections share the same horizontal grid. */
	width: min(100%, var(--header-container-width));
	margin: 0 auto;
	padding-left: var(--container-padding);
	padding-right: var(--container-padding);
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: var(--header-height);
	gap: 24px;
}

.site-header__brand {
	display: inline-flex;
	align-items: center;
	flex-shrink: 0;
}

.site-header__logo {
	width: auto;
	height: 44px;
	display: block;
}

/* Keep the visible logo and the last navigation item on the same outer
 * alignment as the full-width page content. */
.site-header__logo:not(.site-header__logo--company) text,
.site-header__logo:not(.site-header__logo--company) path,
.site-header__logo:not(.site-header__logo--company) rect,
.site-header__logo:not(.site-header__logo--company) circle,
.site-header__logo:not(.site-header__logo--company) polygon {
	fill: currentColor;
}

.site-header__logo--dc .cls-1 { fill: #004550 !important; }
.site-header__logo--energy .cls-1 { fill: #9fb77e !important; }
.site-header__logo--capital .cls-1 { fill: #7da7b9 !important; }
.site-header__logo--ssg .cls-1 { fill: #5d6299 !important; }
.site-header__logo--industries .cls-1 { fill: #9c795a !important; }

.site-header__toggle {
	display: none;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	background: transparent;
}

.site-header__toggle span {
	display: block;
	width: 22px;
	height: 2px;
	margin: 4px auto;
	background: var(--color-text);
	transition: transform var(--transition-default), opacity var(--transition-default);
}

.site-header__nav {
	display: flex;
	align-items: center;
}

.site-header__menu,
.site-header__submenu,
.site-footer__links {
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-header__menu {
	display: flex;
	align-items: center;
	gap: clamp(22px, 2.2vw, 40px);
}

.site-header__item {
	position: relative;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.site-header__item > a,
.site-header__dropdown-toggle {
	display: inline-flex;
	align-items: center;
	min-height: 32px;
	position: relative;
}

.site-header__dropdown-toggle {
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
	font: inherit;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	cursor: pointer;
}

.site-header__brand:focus-visible,
.site-header__toggle:focus-visible,
.site-header__item > a:focus-visible,
.site-header__dropdown-toggle:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 6px;
	border-radius: 3px;
}

.site-header__item--current > a::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -10px;
	height: 1px;
	background: #1e5ea8;
	transform-origin: left center;
	animation: header-active-line 420ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes header-active-line {
	from { transform: scaleX(0); }
	to { transform: scaleX(1); }
}

.site-header__item--language {
	display: none !important;
	align-items: center;
}

.site-header__language-label {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	overflow: hidden;
}

.site-header__language-flag {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 50%;
	object-fit: cover;
}

.language-switcher {
	position: relative;
}

.language-switcher summary {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	min-height: 32px;
	cursor: pointer;
	list-style: none;
}

.language-switcher summary::-webkit-details-marker {
	display: none;
}

.language-switcher summary::after {
	content: "";
	display: block;
	width: 7px;
	height: 7px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg) translateY(-2px);
	transition: transform var(--transition-default);
}

.language-switcher[open] summary::after {
	transform: rotate(225deg) translate(-1px, -1px);
}

.language-switcher__menu {
	position: absolute;
	top: calc(100% + 12px);
	right: 0;
	min-width: 132px;
	display: grid;
	gap: 3px;
	padding: 7px;
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: 15px;
	box-shadow: 0 18px 36px rgba(0, 0, 0, 0.08);
	text-transform: none;
	letter-spacing: 0;
	z-index: 2;
}

.language-switcher__menu a {
	display: block;
	padding: 9px 11px;
	border-radius: 10px;
	font-size: 13px;
	font-weight: 500;
	transition: background-color var(--transition-default), color var(--transition-default);
}

.language-switcher__menu a:hover,
.language-switcher__menu a:focus-visible {
	background: var(--color-surface-alt);
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.site-header__item--has-children > .site-header__dropdown-toggle::after {
	content: "";
	display: inline-block;
	width: 7px;
	height: 7px;
	margin-left: 9px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg) translateY(-1px);
}

.site-header__submenu {
	position: absolute;
	top: calc(100% + 12px);
	left: 0;
	min-width: 200px;
	padding: 16px 18px;
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: 18px;
	box-shadow: 0 22px 44px rgba(0, 0, 0, 0.08);
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity var(--transition-default), transform var(--transition-default), visibility var(--transition-default);
}

.site-header__item:hover .site-header__submenu,
.site-header__item:focus-within .site-header__submenu,
.site-header__item.is-open .site-header__submenu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

/* A click may set is-open on desktop; do not let that state keep the dropdown
 * visible after the pointer has left the whole Companies menu item. */
@media (min-width: 921px) {
	.site-header__item--has-children.is-open:not(:hover):not(:focus-within) > .site-header__submenu {
		opacity: 0;
		visibility: hidden;
		transform: translateY(8px);
	}
}

.site-header__submenu li + li {
	margin-top: 12px;
}

.site-header__submenu a {
	display: block;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
	border-radius: 12px;
	transition: background-color var(--transition-default), color var(--transition-default);
}

.site-header__submenu-logo-link {
	display: flex;
	align-items: center;
	min-height: 36px;
	padding: 8px 10px;
	margin: -8px -10px;
}

.site-header__submenu-logo {
	display: block;
	width: auto;
	height: 24px;
	max-width: 164px;
	object-fit: contain;
}

.site-header__submenu a:hover,
.site-header__submenu a:focus-visible {
	background: var(--color-surface-alt);
}

.hero-home {
	padding-top: 0;
}

.hero-home__grid,
.split-callout {
	display: grid;
	grid-template-columns: minmax(0, 1.02fr) minmax(760px, 0.98fr);
	align-items: center;
	gap: clamp(32px, 3.8vw, 80px);
}

.hero-home__grid--reverse > :first-child {
	order: 1;
}

.hero-home__grid--reverse > :last-child {
	order: 2;
}

.hero-home__content {
	display: grid;
	gap: 28px;
	min-width: 0;
	max-width: 880px;
	justify-self: start;
}

.hero-home__content .eyebrow {
	margin-bottom: 10px;
}

.hero-home__body {
	display: grid;
	gap: 20px;
}

.glance-grid {
	align-items: center;
	padding-top: clamp(18px, 2.4vw, 32px);
}

.glance-kpis {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	align-items: stretch;
}

.glance-kpi {
	display: grid;
	gap: 10px;
	min-height: 138px;
	padding: 22px 24px;
	background: rgba(255, 255, 255, 0.74);
	border: 1px solid var(--color-border);
	border-radius: 24px;
	box-shadow: 0 18px 42px rgba(0, 0, 0, 0.04);
}

.glance-kpi__lead {
	margin: 0;
	font-size: clamp(1.1rem, 1.55vw, 1.5rem);
	line-height: 1;
	letter-spacing: -0.03em;
	font-weight: 700;
}

.glance-kpi__text {
	margin: 0;
	font-size: 0.98rem;
	line-height: 1.45;
	color: var(--color-text-muted);
}

.glance-kpis__cta {
	display: flex;
	align-items: flex-end;
	justify-content: flex-start;
	min-height: 138px;
	padding: 10px 0 0;
}

.company-intro {
	padding-bottom: clamp(20px, 3vw, 40px);
}

.company-intro.hero-home__grid {
	grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
	gap: clamp(32px, 3.6vw, 72px);
}

.company-intro .hero-home__content {
	max-width: 980px;
	justify-self: end;
	align-self: center;
}

.font-circular {
	font-family: "Circular", sans-serif;
}

.testo-80 {
	margin: 0;
	font-size: clamp(2.1rem, 4.55vw, 4.4rem);
	line-height: 1.02;
	letter-spacing: -0.03em;
}

.testo-80 em,
.testo-80 i {
	font-family: "Saol", serif;
	font-style: italic;
	font-weight: 400;
}

.testo-30 {
	margin: 0;
	font-size: clamp(1.4rem, 2.35vw, 2rem);
	line-height: 1.18;
	letter-spacing: -0.02em;
	font-weight: 400;
}

.hero-display {
	display: grid;
	width: 100%;
	max-width: min(100%, 15ch);
}

.company-intro .hero-display {
	max-width: min(100%, 20.5ch);
}

.company-intro .hero-display .line-box {
	padding-right: 0.2em;
}

.hero-display .line-box {
	width: 100%;
	max-width: none;
}

.hero-display .line--logo {
	display: inline-flex;
	align-items: flex-end;
}

.hero-display__logo {
	display: block;
	width: auto;
	height: clamp(2.7rem, 4.5vw, 3.8rem);
}

.hero-support {
	margin-top: 4px;
	display: inline-grid;
	width: max-content;
	max-width: none;
	color: var(--color-text);
	font-size: clamp(1.06rem, 1.55vw, 1.42rem);
	line-height: 1.22;
}

.hero-support--secondary {
	margin-top: 0;
}

.hero-support .line-box {
	width: max-content;
	max-width: none;
}

.home-hero__content .hero-support {
	width: 100%;
	max-width: 58ch;
}

.home-hero__content .hero-support .line-box {
	width: 100%;
	max-width: none;
}

.split-callout__visual img {
	width: 100%;
	border-radius: 32px;
}

.hero-home__art {
	display: flex;
	align-self: stretch;
	align-items: flex-end;
	justify-self: end;
	width: min(100%, 1180px);
}

.hero-home__art--company {
	justify-self: start;
	width: min(100%, 700px);
}

.hero-home__art img {
	width: 100%;
	height: auto;
	max-width: 100%;
	border-radius: 0;
	transform: none;
}

.hero-home__art--company img {
	transform: scale(1.18);
	transform-origin: left center;
}

/* Keep the Home “What we do” text inside its column after editorial copy changes. */
.company-intro .hero-home__content,
.company-intro .hero-home__art--company {
	min-width: 0;
}

.company-intro .hero-support {
	display: block;
	width: 100%;
	max-width: 100%;
	white-space: normal;
}

.company-intro .hero-support .line-box,
.company-intro .hero-support .line {
	width: 100%;
	max-width: none;
	overflow: visible;
	white-space: normal;
	line-height: 1.22;
}

.company-intro .hero-support .nowrap {
	white-space: nowrap;
}

.company-intro .hero-home__art--company img {
	transform: scale(1.10);
	transform-origin: left center;
}

.company-intro .hero-home__art--company {
	width: min(100%, 1000px);
}

.companies-deep-dive {
	position: relative;
	padding-top: clamp(44px, 5vw, 72px);
	--company-zoom-progress: 0;
}

.companies-deep-dive::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	width: 1px;
	height: clamp(32px, 4vw, 52px);
	background: linear-gradient(to bottom, rgba(16, 16, 16, 0.2), rgba(16, 16, 16, 0.04));
	transform: translateX(-50%);
}

.companies-deep-dive__intro {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 18px;
	justify-items: center;
	text-align: center;
}

.companies-deep-dive__heading .section-title {
	max-width: 12ch;
	margin-inline: auto;
}

.companies-deep-dive__copy {
	max-width: 68ch;
}

.companies-deep-dive__copy p {
	margin: 0;
	font-size: clamp(1.06rem, 1.55vw, 1.42rem);
	line-height: 1.22;
	color: var(--color-text-soft);
	text-align: center;
}

.companies-deep-dive__grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 12px;
	margin-top: clamp(32px, 4vw, 52px);
	align-items: stretch;
}

.company-card--deep-dive {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	height: 100%;
	min-height: 224px;
	padding: 24px 18px 22px;
	border-radius: 28px;
	transition: transform 0.22s ease, opacity 0.22s ease, background-color 0.22s ease, box-shadow 0.22s ease;
}

.company-card--deep-dive:hover {
	transform: translateY(-6px) scale(1.035);
	z-index: 2;
}

.companies-deep-dive__grid:hover .company-card--deep-dive:not(:hover),
.companies-page__grid:hover .company-card--deep-dive:not(:hover) {
	opacity: 0.38;
}

.company-card--deep-dive .company-card__index {
	min-height: 0;
}

.company-card--deep-dive .company-card__logo {
	margin-top: 16px;
}

.company-card--deep-dive .company-card__logo-svg {
	height: 34px;
}

.company-card--deep-dive .company-card__meta {
	display: block;
	flex: 1 1 auto;
	max-width: none;
	width: 100%;
	margin-top: 18px;
}

.companies-deep-dive__footer {
	display: flex;
	justify-content: flex-start;
	margin-top: 30px;
	opacity: calc(0.08 + (var(--company-zoom-progress) * 0.92));
	transform: translateY(calc((1 - var(--company-zoom-progress)) * 88px)) scale(calc(0.78 + (var(--company-zoom-progress) * 0.22)));
	transform-origin: left top;
	transition: opacity 0.24s linear, transform 0.24s linear;
}

.org-scroll {
	--company-zoom-progress: 0;
}

.company-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 18px;
	margin-top: 40px;
}

.companies-page__grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 12px;
	margin-top: 40px;
	align-items: stretch;
}

.org-scroll {
	margin-top: clamp(40px, 6vw, 72px);
}

.org-scroll__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
	gap: clamp(28px, 4vw, 56px);
	align-items: start;
}

.org-scroll__sticky {
	position: sticky;
	top: calc(var(--header-height) + 28px);
	opacity: calc(1 - (var(--company-zoom-progress) * 1.32));
	transform: translateY(calc(var(--company-zoom-progress) * 48px)) scale(calc(1 - (var(--company-zoom-progress) * 0.09)));
	filter: blur(calc(var(--company-zoom-progress) * 3px));
	transform-origin: center top;
	will-change: opacity, transform, filter;
}

.org-scroll__sticky,
.companies-deep-dive__intro,
.companies-deep-dive__grid {
	transition: opacity 0.24s linear, transform 0.24s linear, filter 0.24s linear;
}

.companies-deep-dive__intro,
.companies-deep-dive__grid,
.companies-deep-dive__footer {
	opacity: calc(0.08 + (var(--company-zoom-progress) * 0.92));
	transform: translateY(calc((1 - var(--company-zoom-progress)) * 88px)) scale(calc(0.78 + (var(--company-zoom-progress) * 0.22)));
	transform-origin: center top;
}

.companies-deep-dive__footer {
	transform-origin: left top;
}

.org-diagram {
	position: relative;
	padding: clamp(28px, 3vw, 40px);
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: 36px;
}

.org-diagram__level {
	position: relative;
	z-index: 1;
	display: grid;
	gap: 18px;
	transform: scale(0.985);
	transition: transform 0.45s ease;
}

.org-diagram__level + .org-diagram__level {
	margin-top: 42px;
}

.org-diagram__columns {
	position: relative;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
	margin-top: 36px;
	padding-top: 20px;
	align-items: start;
}

.org-diagram__columns::after {
	content: "";
	position: absolute;
	top: -10px;
	left: 25%;
	right: 25%;
	height: 22px;
	border-top: 1px solid rgba(16, 16, 16, 0.12);
	border-left: 1px solid rgba(16, 16, 16, 0.12);
	border-right: 1px solid rgba(16, 16, 16, 0.12);
	border-top-left-radius: 18px;
	border-top-right-radius: 18px;
	pointer-events: none;
}

.org-diagram__branch {
	position: relative;
	padding-top: 14px;
	display: grid;
	align-content: start;
}

.org-diagram__level.is-active {
	opacity: 1;
	transform: scale(1);
}

.org-diagram__label {
	justify-self: center;
	padding: 8px 14px;
	background: var(--color-surface);
	border: 1px solid rgba(16, 16, 16, 0.08);
	border-radius: 999px;
	position: relative;
	z-index: 2;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--color-text-soft);
	text-align: center;
	transition: color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease, opacity 0.3s ease;
	box-shadow: 0 0 0 10px var(--color-surface);
}

.org-diagram__level:not(.is-active) .org-diagram__label {
	opacity: 0.52;
}

.org-diagram__level.is-active .org-diagram__label {
	color: var(--color-text);
	border-color: rgba(16, 16, 16, 0.14);
	box-shadow: 0 8px 22px rgba(16, 16, 16, 0.05);
}

.org-card-grid {
	display: grid;
	gap: 16px;
}

.org-card-grid--three {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.org-card-grid--two {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	max-width: 82%;
	margin-left: auto;
	margin-right: auto;
}

.org-card-grid--operations,
.org-card-grid--treasury {
	grid-template-columns: minmax(0, 1fr);
	gap: 9px;
}

.org-card {
	position: relative;
	padding: 12px 18px 13px;
	background: #ffffff;
	border: 1px solid rgba(16, 16, 16, 0.08);
	border-radius: 24px;
	min-height: 78px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	backdrop-filter: blur(10px);
	transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}

.org-card--link {
	text-decoration: none;
	color: inherit;
}

.org-card:not(.org-card--primary) {
	align-items: center;
	justify-content: center;
	text-align: center;
	gap: 0;
}

.org-diagram__level:not(.is-active) .org-card {
	background: #ffffff;
	border-color: rgba(16, 16, 16, 0.06);
	box-shadow: none;
}

.org-diagram__level:not(.is-active) .org-card--link {
	pointer-events: none;
	cursor: default;
}

.org-diagram__level:not(.is-active) .org-card__kicker,
.org-diagram__level:not(.is-active) .org-card__title,
.org-diagram__level:not(.is-active) .org-card__text,
.org-diagram__level:not(.is-active) .org-card__logo {
	opacity: 0.28;
}

.org-diagram__level.is-active .org-card {
	border-color: rgba(16, 16, 16, 0.16);
	box-shadow: 0 20px 48px rgba(0, 0, 0, 0.06);
}

.org-diagram__level.is-active .org-card--link:hover,
.org-diagram__level.is-active .org-card--link:focus-visible {
	background: var(--color-surface-alt);
	transform: scale(1.03);
	box-shadow: 0 24px 56px rgba(0, 0, 0, 0.08);
}

.org-card--primary {
	max-width: 340px;
	margin: 0 auto;
	text-align: center;
	justify-content: center;
	min-height: 78px;
	padding: 8px 14px;
}

.org-card__kicker {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--color-text-soft);
}

.org-card__title {
	margin: 18px 0 0;
	font-size: clamp(1.3rem, 2vw, 1.75rem);
	line-height: 1;
	letter-spacing: -0.04em;
	font-weight: 500;
}

.org-card__logo {
	display: flex;
	align-items: center;
	margin-top: 4px;
	min-height: 32px;
}

.org-card__brand {
	width: min(100%, 170px);
	margin-top: 0;
	margin-left: 50px;
	display: flex;
	align-items: center;
	justify-content: flex-start;
}

.org-card__logo--holding {
	justify-content: center;
}

.org-card--primary .org-card__brand {
	margin-left: 0;
	width: 100%;
	min-height: 40px;
	align-items: center;
	justify-content: center;
}

.org-card--primary .org-card__logo {
	width: 100%;
	min-height: 40px;
	justify-content: center;
}

.org-card:not(.org-card--primary) .org-card__logo {
	justify-content: flex-start;
	margin-top: 12px;
	width: 100%;
}

.org-card__logo-svg {
	width: auto;
	max-width: 100%;
	height: 28px;
}

.org-card__logo--holding .org-card__logo-svg {
	height: 34px;
}

.org-card__text {
	margin: 20px 0 0;
	font-size: 15px;
	line-height: 1.55;
	color: var(--color-text-soft);
}


.org-scroll__steps {
	display: grid;
	gap: 24px;
	padding-bottom: clamp(80px, 10vh, 140px);
}

.org-step {
	min-height: 78vh;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding-right: min(4vw, 24px);
}

.org-step__title {
	margin: 0 0 20px;
	max-width: 18ch;
	font-size: clamp(1.75rem, 3vw, 2.55rem);
	line-height: 1.04;
	letter-spacing: -0.04em;
	font-weight: 500;
}

.org-step__title em,
.org-step__title i {
	font-family: "Saol", serif;
	font-style: italic;
	font-weight: 400;
}

.org-step__body {
	display: grid;
	gap: 22px;
}

.org-step__text {
	margin: 0;
	max-width: 38rem;
	font-size: clamp(1.06rem, 1.55vw, 1.42rem);
	line-height: 1.24;
	letter-spacing: -0.02em;
	font-weight: 400;
	color: var(--color-text);
}

/* Platform flow: preserve the existing level reveal while framing both families
 * as two balanced cards with a restrained transfer cue between them. */
.org-diagram__columns {
	grid-template-columns: minmax(0, 1fr) minmax(72px, 0.18fr) minmax(0, 1fr);
	grid-template-areas:
		"transfer transfer transfer"
		"generation . permanent";
	gap: 12px clamp(10px, 1.2vw, 18px);
	margin-top: 24px;
	padding-top: 0;
	align-items: stretch;
}

.org-diagram__columns::after {
	display: none;
}

.org-diagram__family-card {
	min-width: 0;
	padding: 12px;
	background: rgba(255, 255, 255, 0.56);
	border: 1px solid rgba(16, 16, 16, 0.1);
	border-radius: 28px;
	box-shadow: 0 14px 34px rgba(0, 0, 0, 0.035);
}

.org-diagram__family-card--generation {
	grid-area: generation;
}

.org-diagram__family-card--permanent {
	grid-area: permanent;
}

.org-diagram__family-card .org-diagram__branch {
	padding-top: 0;
	height: 100%;
}

.org-diagram__family-card .org-diagram__level {
	height: 100%;
}

.org-diagram__transfer {
	grid-area: transfer;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 54px;
	color: var(--color-text-soft);
}

.org-diagram__transfer-caption {
	margin-bottom: 4px;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.14em;
	line-height: 1.2;
	text-align: center;
	text-transform: uppercase;
}

.org-diagram__transfer-arrow {
	display: block;
	width: min(100%, 600px);
	height: 52px;
	overflow: visible;
}

.org-diagram__transfer-arrow path {
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-dasharray: 2.5 4;
	animation: org-transfer-flow-short 2.2s linear infinite;
}

@keyframes org-transfer-flow-short {
	to { stroke-dashoffset: -6.5; }
}

.org-diagram__transfer-arrow .org-diagram__transfer-arrowhead {
	stroke-dasharray: none;
	animation: none;
	opacity: 1;
	transform: none;
}

/* Keep the flow diagram compact enough to read as one complete composition. */
.org-diagram {
	padding: clamp(20px, 2.1vw, 28px);
}

.org-scroll__steps {
	padding-bottom: clamp(56px, 7vh, 96px);
}

.org-step {
	min-height: 70vh;
}

@keyframes org-transfer-flow {
	to {
		stroke-dashoffset: -30;
	}
}

@keyframes org-transfer-pulse {
	0%, 100% {
		opacity: 0.62;
		transform: translateX(0);
	}
	50% {
		opacity: 1;
		transform: translateX(3px);
	}
}

.org-step__title .line-box,
.org-step__text .line-box {
	width: 100%;
	max-width: none;
	padding-bottom: 0.12em;
	padding-right: 0.18em;
	overflow: visible;
}

.org-step--generation .org-step__text .line-box,
.org-step--generation .org-step__text .line {
	max-width: 38rem;
	white-space: normal;
	word-break: normal;
}

.org-step__text .line {
	padding-right: 0.18em;
}

.company-card {
	display: grid;
	grid-template-rows: auto auto 1fr;
	align-content: start;
	min-height: 210px;
	padding: 24px;
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-card);
	transition: transform var(--transition-default), border-color var(--transition-default), background-color var(--transition-default), box-shadow var(--transition-default);
}

.company-card:hover {
	transform: translateY(-4px);
	border-color: rgba(16, 16, 16, 0.22);
	background: color-mix(in srgb, var(--color-surface) 80%, white);
	box-shadow: 0 14px 30px rgba(16, 16, 16, 0.06);
}

.company-card__index {
	display: block;
	min-height: 2.5em;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--color-text-soft);
	max-width: none;
	white-space: nowrap;
}

.acapo-laptop {
	display: none;
}

.company-card__logo {
	display: flex;
	align-items: flex-start;
	min-height: 48px;
	margin-top: 14px;
}

.company-card__logo-svg {
	width: auto;
	max-width: 100%;
	height: 32px;
}

.company-card__meta {
	margin-top: 20px;
	max-width: 24ch;
	font-size: 14px;
	line-height: 1.55;
	color: var(--color-text-soft);
}

.team-intro {
	align-items: center;
	margin-bottom: clamp(36px, 5vw, 64px);
}

.team-intro__title {
	max-width: min(100%, 18ch);
}

.group-page-intro {
	align-items: center;
}

.group-page-intro__title {
	max-width: min(100%, 15ch);
}

.group-page-copy {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(22px, 3vw, 44px);
	margin-top: 34px;
}

.group-page-copy__heading {
	width: 100%;
	max-width: none;
}

.group-page-copy__heading .section-title {
	max-width: none;
}

.group-page-details {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(22px, 3vw, 36px);
	margin-top: 42px;
	align-items: start;
}

.group-page-details__card {
	display: grid;
	gap: 18px;
	align-content: start;
}

.group-page-details__card .section-title,
.group-page-details__card .section-copy {
	max-width: none;
}

.model-page-intro {
	align-items: center;
}

.companies-page-intro {
	align-items: center;
}

.companies-page-intro__content {
	max-width: 100%;
}

.companies-page-intro__title {
	max-width: min(100%, 14.5ch);
}

.companies-page-intro__title .line-box {
	padding-right: 0.12em;
	overflow: visible;
}

.companies-page-intro .hero-support {
	width: 100%;
	max-width: 58ch;
}

.model-page-intro__content {
	max-width: 100%;
}

.model-page-intro__title {
	max-width: min(100%, 17ch);
}

.model-page-intro__title .line-box {
	padding-right: 0.12em;
	overflow: visible;
}

.model-page-intro .hero-support {
	width: 100%;
	max-width: 58ch;
}

.model-page-bridge,
.model-page-framework,
.model-page-method {
	display: grid;
	gap: 34px;
}

.model-page-bridge__copy {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(22px, 3vw, 44px);
	max-width: 78ch;
}

.model-page-bridge-section > .container {
	max-width: none;
}

.model-page-bridge-section .model-page-bridge {
	justify-items: center;
	text-align: center;
}

.model-page-bridge-section .model-page-bridge__copy {
	width: 100%;
	max-width: none;
	justify-items: center;
}

.model-page-bridge-section .model-page-bridge__copy .section-copy {
	width: min(100%, 1100px);
	max-width: none;
	text-align: center;
}

.model-page-bridge-section .model-page-bridge__copy .textify-animation .line-box,
.model-page-bridge-section .model-page-bridge__copy .textify-animation .line {
	text-align: center !important;
}

.model-page-sequence {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 48px;
	width: min(100%, 1240px);
	align-items: center;
}

.model-page-sequence__card {
	position: relative;
	display: grid;
	align-content: center;
	justify-items: center;
	gap: 12px;
	min-height: 150px;
	padding: 28px 26px;
	text-align: center;
	background: #fff;
	border: 1px solid rgba(16, 16, 16, 0.12);
	border-radius: 24px;
	box-shadow: 0 14px 32px rgba(16, 16, 16, 0.05);
}

/* Funnel: wide trend, narrow niche, pivot at entrepreneur/team, open platform. */
.model-page-sequence__card:nth-child(1),
.model-page-sequence__card:nth-child(5) {
	width: 100%;
}

.model-page-sequence__card:nth-child(2) {
	width: 72%;
	justify-self: center;
}

.model-page-sequence__card:nth-child(3) {
	width: 84%;
	justify-self: center;
}

.model-page-sequence__card:nth-child(4) {
	width: 92%;
	justify-self: center;
}

.model-page-sequence__card:not(:last-child)::after {
	content: "→";
	position: absolute;
	top: 50%;
	right: -32px;
	z-index: 1;
	width: 16px;
	color: rgba(16, 16, 16, 0.45);
	font-size: 1.25rem;
	text-align: center;
	transform: translateY(-50%);
}

.model-page-sequence__card strong {
	display: block;
	width: 100%;
	font-size: clamp(1.1rem, 1.7vw, 1.45rem);
	font-weight: 400;
	line-height: 1.12;
	letter-spacing: -0.02em;
}

.model-page-sequence .textify-animation .line-box,
.model-page-sequence .textify-animation .line {
	text-align: center !important;
}

.model-page-framework__intro {
	max-width: none;
	width: 100%;
}

.model-page-framework__grid {
	position: relative;
}

.model-page-framework__grid::after {
	display: none;
}

.model-page-bridge .section-title,
.model-page-framework .section-title,
.model-page-method .section-title {
	max-width: none;
}

.model-page-framework__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(44px, 6vw, 96px);
}

.model-annotation {
	display: inline-block;
	margin-left: 0.65em;
	font-family: "Circular", sans-serif;
	font-style: normal;
	font-size: 0.48em;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1;
	text-transform: uppercase;
	vertical-align: middle;
}

.model-page-framework__title .model-annotation {
	display: block;
	margin-left: 0;
	margin-top: 10px;
}

.model-page-framework__title .model-annotation--inline {
	display: inline-block;
	margin-top: 10px;
	margin-left: 0;
	padding-left: 0;
	border-left: 0;
	vertical-align: baseline;
}

.model-bridge-intro {
	margin: 0 0 28px;
	font-family: "Saol", Georgia, serif;
	font-size: clamp(1.5rem, 2.2vw, 2.2rem);
	font-style: italic;
	line-height: 1.15;
}

.model-page-framework-section {
	padding-top: clamp(72px, 8vw, 112px);
}

.model-page-framework__column {
	display: grid;
	gap: 8px;
	align-content: start;
	padding: 24px 24px 22px;
	background: rgba(255, 255, 255, 0.68);
	border: 1px solid rgba(16, 16, 16, 0.12);
	border-radius: 28px;
}

.model-page-framework__logos {
	display: grid;
	align-items: start;
	gap: 14px 18px;
	min-height: 42px;
}

.model-page-framework__logos--three {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.model-page-framework__logos--four {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.model-page-framework__logos--one {
	grid-template-columns: minmax(0, 1fr);
	max-width: 36%;
}

.model-page-framework__logos--two {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	max-width: 78%;
}

.model-page-framework__logo {
	display: block;
	width: auto;
	max-width: 100%;
	height: 28px;
	object-fit: contain;
	object-position: left center;
}

.model-page-framework__title {
	margin: 0;
	margin-bottom: 16px;
	font-size: clamp(1.2rem, 2vw, 1.52rem);
	line-height: 1.12;
	letter-spacing: -0.02em;
}

.model-page-framework__column:nth-child(2) .model-page-framework__title {
	min-height: 48px;
}

.model-page-framework__column .section-copy,
.model-page-method__card .section-copy,
.model-page-framework__trait {
	max-width: none;
}

.model-editorial-section {
	padding-top: clamp(72px, 9vw, 132px);
	padding-bottom: clamp(72px, 9vw, 132px);
}

.model-editorial-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.68fr) minmax(0, 1.32fr);
	align-items: start;
	gap: clamp(48px, 8vw, 144px);
}

.model-editorial-lead {
	display: grid;
	align-content: space-between;
	gap: clamp(56px, 9vw, 140px);
	min-height: 100%;
}

.model-editorial-lead .section-title {
	max-width: none;
}

.model-editorial-body .section-copy {
	max-width: none;
	font-size: clamp(1rem, 1.4vw, 1.15rem);
	line-height: 1.7;
}

.model-editorial-quote {
	max-width: 22ch;
	margin: 0;
	padding-top: 24px;
	border-top: 1px solid #d3e4ec;
	font-family: "Saol", serif;
	font-size: clamp(1.15rem, 1.7vw, 1.5rem);
	font-style: italic;
	line-height: 1.15;
}

.model-editorial-body .model-editorial-quote {
	margin-top: clamp(36px, 5vw, 72px);
}

.model-why-italy-section .model-editorial-lead {
	padding-right: clamp(24px, 4vw, 64px);
	border-right: 1px solid #d3e4ec;
}

.model-bridge-section .model-editorial-lead {
	padding-right: clamp(24px, 4vw, 64px);
	border-right: 1px solid #d3e4ec;
}

.model-why-italy-section .model-editorial-body {
	padding-top: 4px;
}

.model-editorial-section .line-box,
.model-editorial-section .line {
	width: 100%;
	max-width: none;
	overflow: visible;
	white-space: normal;
}

.model-page-framework__trait {
	width: 100%;
	margin: 0;
	padding-top: 4px;
	text-align: center;
}

.model-page-method__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px;
}

.model-page-method__subtitle {
	margin: -8px 0 0;
	font-size: clamp(1.45rem, 3vw, 2.4rem);
	font-weight: 400;
	line-height: 1.05;
	letter-spacing: -0.03em;
}

.model-page-method-section--investment {
	background: var(--color-white);
}

.model-page-method__card {
	display: grid;
	gap: 18px;
	padding: 28px 24px;
	border: 1px solid var(--color-border);
	border-radius: 28px;
	background: rgba(255, 255, 255, 0.92);
}

.model-page-method__step {
	margin: 0;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.model-page-method__image {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 18px;
}

.model-page-intro .textify-animation .line-box,
.model-page-bridge .textify-animation .line-box,
.model-page-framework .textify-animation .line-box,
.model-page-method .textify-animation .line-box {
	white-space: normal;
	overflow: visible;
	width: 100%;
	max-width: none;
}

.model-page-intro__title.textify-animation .line,
.model-page-bridge .textify-animation .line,
.model-page-framework .textify-animation .line,
.model-page-method .textify-animation .line {
	text-align: left;
}

.hero-home__art--team {
	width: min(100%, 820px);
}

.hero-home__art--team img {
	border-radius: 32px;
}

.hero-home__art--group {
	width: min(100%, 760px);
}

.hero-home__art--model {
	width: min(100%, 900px);
}

.hero-home__art--model img {
	transform: scale(1.14);
	transform-origin: right center;
}

.energy-page-hero {
	grid-template-columns: minmax(0, 0.96fr) minmax(680px, 1.04fr);
	align-items: center;
	gap: clamp(32px, 4vw, 72px);
}

.energy-page-hero__content {
	max-width: 100%;
}

.energy-page-hero__title {
	max-width: min(100%, 14ch);
}

.energy-page-hero__title .line-box {
	padding-right: 0.1em;
}

.energy-page-hero__support {
	width: 100%;
	max-width: 56ch;
	margin-top: var(--shared-hero-copy-gap);
	font-size: var(--shared-hero-copy-size);
	line-height: var(--shared-hero-copy-line-height);
}

.company-page:not(.company-page--energy) .energy-page-hero__title {
	max-width: min(100%, 17ch);
}

.company-page--dc .dc-page-hero__title {
	max-width: min(100%, 20.5ch);
}

.company-page--dc .section-shell:not(:first-child) {
	padding-top: var(--section-padding);
	padding-bottom: var(--section-padding);
}

.company-page:not(.company-page--energy) .energy-page-hero__support {
	max-width: 58ch;
}

.energy-page-hero__art {
	width: min(100%, 920px);
}

.energy-page-hero-section .hero-home__actions {
	display: none;
}

.energy-origin-grid,
.energy-inside-grid,
.energy-gas-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	align-items: start;
	gap: clamp(48px, 8vw, 144px);
}

.energy-gas-section {
	background: var(--color-surface-alt);
}

.energy-gas-copy {
	max-width: 72ch;
}

.energy-chain-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(56px, 8vw, 112px);
}

.energy-chain-grid .energy-editorial-copy {
	width: 100%;
	max-width: none;
	text-align: center;
}

.energy-chain-grid .energy-editorial-copy .section-title,
.energy-chain-grid .energy-body-copy {
	width: 100%;
	max-width: none;
	margin-left: auto;
	margin-right: auto;
}

.energy-chain-grid .energy-body-copy {
	max-width: 1120px;
}

.energy-chain-grid .line-box,
.energy-chain-grid .line {
	text-align: center !important;
}

.energy-editorial-copy {
	display: grid;
	gap: 20px;
}

.energy-editorial-copy > .eyebrow {
	margin-bottom: 0;
}

.energy-editorial-copy .section-title {
	max-width: none;
}

.energy-body-copy {
	display: grid;
	gap: 24px;
}

.energy-body-copy .section-copy,
.energy-section-heading__copy .section-copy,
.energy-inside-grid .section-copy {
	max-width: none;
}

.energy-formula-wrap {
	min-height: 100%;
	display: grid;
	align-items: center;
	justify-items: center;
}

.energy-formula {
	width: min(100%, 560px);
	padding: 26px 0;
	text-align: center;
}

.energy-formula summary {
	display: grid;
	justify-items: center;
	gap: 20px;
	cursor: pointer;
	list-style: none;
}

.energy-formula summary::-webkit-details-marker {
	display: none;
}

.energy-formula__equation {
	display: inline-block;
	font-family: "Saol", serif;
	font-size: clamp(2rem, 4vw, 4rem);
	font-style: italic;
	line-height: 1;
	border-bottom: 2px dotted rgba(74, 122, 74, 0.5);
	padding-bottom: 12px;
	transition: color var(--transition-default), border-color var(--transition-default), transform var(--transition-default);
}

.energy-formula summary:hover .energy-formula__equation,
.energy-formula summary:focus-visible .energy-formula__equation,
.energy-formula[open] .energy-formula__equation {
	color: #4a7a4a;
	border-bottom-color: #4a7a4a;
	transform: translateY(-3px);
}

.energy-formula summary:focus-visible {
	outline: 2px solid #4a7a4a;
	outline-offset: 8px;
}

.energy-formula__caption {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.14em;
	color: #4a7a4a;
}

.energy-formula > p {
	max-width: 48ch;
	margin: 28px auto 0;
	font-size: 0.95rem;
	line-height: 1.65;
	color: var(--color-text-soft);
}

.energy-section-heading {
	display: grid;
	grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
	align-items: start;
	gap: clamp(48px, 8vw, 144px);
	margin-bottom: clamp(48px, 6vw, 84px);
}

.energy-section-heading--single {
	grid-template-columns: minmax(0, 1fr);
}

.energy-section-heading .section-title {
	max-width: none;
}

.energy-section-heading__copy {
	display: grid;
	gap: 22px;
}

.energy-filter-row {
	display: flex;
	gap: 10px;
	margin-bottom: 22px;
	overflow-x: auto;
}

.energy-filter-row--standalone {
	justify-content: center;
	margin-top: clamp(40px, 5vw, 72px);
	margin-bottom: 0;
}

.energy-portfolio-map-title-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}

.energy-filter-row--map {
	justify-content: flex-end;
	flex-shrink: 0;
	margin: 0;
}

.energy-map-note {
	margin: 18px 0 0;
	color: var(--color-text-soft);
	font-family: "Saol", serif;
	font-size: 1.15rem;
	font-style: italic;
	text-align: center;
}

.energy-map-image-wrap {
	width: 100%;
	margin: clamp(24px, 3vw, 42px) 0 0;
}

.energy-map-image {
	display: block;
	width: 100%;
	height: auto;
	object-fit: contain;
}

.energy-map-svg-wrap {
	position: relative;
	width: min(100%, 380px);
	margin: 0 auto;
	background: #fff;
	--energy-map-active: #7fae8b;
	--energy-map-active-stroke: #4a7a4a;
}

.energy-map-svg-wrap[data-energy-filter="solar"] {
	--energy-map-active: #6d9b72;
	--energy-map-active-stroke: #356343;
}

.energy-map-svg-wrap[data-energy-filter="bess"] {
	--energy-map-active: #879ab9;
	--energy-map-active-stroke: #617695;
}

.energy-map-svg-wrap[data-energy-filter="wind"] {
	--energy-map-active: #42a78f;
	--energy-map-active-stroke: #27816d;
}

.energy-map-svg {
	display: block;
	width: 100%;
	height: auto;
	overflow: visible;
}

.energy-map-svg #regions > [id^="region-"] {
	fill: #f3f5f3;
	stroke: #c8d1d1;
	stroke-width: 1.15;
	transition: fill 220ms ease, opacity 220ms ease, stroke 220ms ease;
}

.energy-map-svg #regions > #isola-elba {
	fill: #f3f5f3;
	stroke: #c8d1d1;
	stroke-width: 1.15;
	transition: fill 220ms ease, opacity 220ms ease, stroke 220ms ease;
}

.energy-map-svg #regions > [id^="region-"]:not(.is-active-region),
.energy-map-svg #regions > [id^="region-"]:not(.is-active-region) *,
.energy-map-svg #regions > #isola-elba:not(.is-active-region),
.energy-map-svg #regions > #isola-elba:not(.is-active-region) * {
	fill: #f3f5f3 !important;
	fill-opacity: 1;
	stroke: #c8d1d1 !important;
	stroke-opacity: 1;
}

.energy-map-svg #regions > [id^="region-"].is-active-region,
.energy-map-svg #regions > [id^="region-"].is-active-region *,
.energy-map-svg #regions > #isola-elba.is-active-region,
.energy-map-svg #regions > #isola-elba.is-active-region * {
	fill: var(--energy-map-active) !important;
	fill-opacity: 0.28;
	stroke: var(--energy-map-active-stroke) !important;
	stroke-opacity: 0.58;
}

.energy-map-svg #regions > [id^="region-"].is-muted-region,
.energy-map-svg #regions > [id^="region-"].is-muted-region *,
.energy-map-svg #regions > #isola-elba.is-muted-region,
.energy-map-svg #regions > #isola-elba.is-muted-region * {
	opacity: .62;
}

.energy-map-svg #Boundaries path {
	fill: none;
	stroke: #aebcbc;
	stroke-width: 1;
	vector-effect: non-scaling-stroke;
}

.energy-portfolio-board {
	--portfolio-board-accent: #4a7a4a;
	display: grid;
	grid-template-columns: minmax(0, 0.84fr) minmax(0, 1.16fr);
	gap: clamp(28px, 5vw, 72px);
	align-items: center;
}

.energy-portfolio-board[data-energy-filter="solar"] {
	--portfolio-board-accent: #1d503b;
}

.energy-portfolio-board[data-energy-filter="bess"] {
	--portfolio-board-accent: #879ab9;
}

.energy-portfolio-board[data-energy-filter="wind"] {
	--portfolio-board-accent: #42a78f;
}

.energy-portfolio-map-card {
	background: #fff;
	border-top: 0;
	padding: 20px 18px 14px;
	transition: opacity 220ms ease, transform 220ms ease;
}

.energy-portfolio-map-card,
.energy-portfolio-stat-grid {
	border-radius: 5px;
}

.energy-portfolio-map-heading h3,
.energy-portfolio-heading h3 {
	margin: 0;
	font-family: "Saol", serif;
	font-size: clamp(1.25rem, 2vw, 1.8rem);
}

.energy-portfolio-kicker {
	margin: 0 0 8px;
	font-family: "Saol", serif;
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.28em;
	text-transform: uppercase;
}

.energy-region-labels {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.energy-region-label {
	position: absolute;
	left: var(--region-x);
	top: var(--region-y);
	width: max-content;
	max-width: 110px;
	transform: translate(-50%, -50%);
	font-family: "Saol", serif;
	font-size: clamp(0.56rem, 0.8vw, 0.82rem);
	font-weight: 700;
	line-height: 1.05;
	text-align: center;
}

.energy-region-label strong {
	display: block;
	font-size: 0.88em;
	font-weight: 700;
}

.energy-region-label[data-energy-region-label="solar"] strong {
	color: #1d503b;
}

.energy-region-label[data-energy-region-label="bess"] strong {
	color: #879ab9;
}

.energy-region-label[data-energy-region-label="wind"] strong {
	color: #42a78f;
}

.energy-portfolio-stat-wrap {
	min-width: 0;
	transition: opacity 220ms ease, transform 220ms ease;
}

.energy-portfolio-board.is-energy-filter-transitioning .energy-portfolio-map-card,
.energy-portfolio-board.is-energy-filter-transitioning .energy-portfolio-stat-wrap {
	opacity: 0;
	transform: translateY(5px);
}

.energy-portfolio-empty {
	min-height: 140px;
}

.energy-portfolio-stats {
	--portfolio-accent: #1d503b;
}

.energy-portfolio-stats[data-energy-stats="bess"] {
	--portfolio-accent: #879ab9;
}

.energy-portfolio-stats[data-energy-stats="wind"] {
	--portfolio-accent: #42a78f;
}

.energy-portfolio-heading {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: clamp(16px, 2.4vw, 30px);
	color: var(--portfolio-accent);
}

.energy-portfolio-icon {
	display: grid;
	place-items: center;
	width: 76px;
	height: 76px;
	line-height: 1;
}

.energy-portfolio-icon-svg {
	display: block;
	width: 100%;
	height: 100%;
}

.energy-portfolio-icon-svg * {
	fill: currentColor !important;
	stroke: currentColor !important;
}

.energy-portfolio-stat-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	background: var(--portfolio-accent);
	color: #fff;
}

.energy-portfolio-stat-grid > div {
	display: flex;
	min-width: 0;
	min-height: 136px;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 18px 14px;
	text-align: center;
}

.energy-portfolio-stat-grid > div + div {
	border-left: 1px solid rgba(255, 255, 255, 0.75);
}

.energy-portfolio-stat-grid strong {
	font-family: "Saol", serif;
	font-size: clamp(1.9rem, 3.4vw, 3.2rem);
	line-height: 1;
	white-space: nowrap;
}

.energy-portfolio-stat-grid em {
	margin-top: 14px;
	font-family: "Saol", serif;
	font-size: clamp(0.78rem, 1vw, 1.05rem);
	font-style: italic;
	line-height: 1.2;
}

.energy-filter {
	flex: 0 0 auto;
	padding: 10px 16px;
	border: 1px solid rgba(74, 122, 74, 0.36);
	border-radius: 999px;
	background: transparent;
	color: #4a7a4a;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.13em;
	cursor: pointer;
}

.energy-filter.is-active,
.energy-filter:hover,
.energy-filter:focus-visible {
	background: rgba(153, 204, 153, 0.22);
	outline: none;
}

.energy-filter:focus-visible {
	outline: 2px solid #4a7a4a;
	outline-offset: 3px;
}

.energy-map-placeholder {
	position: relative;
	width: min(100%, 620px);
	min-height: 620px;
	margin: 0 auto;
	overflow: hidden;
	background: linear-gradient(135deg, rgba(153, 204, 153, 0.2), rgba(238, 242, 245, 0.55));
}

.energy-map-placeholder__shape {
	position: absolute;
	left: 28%;
	top: 7%;
	width: 42%;
	height: 86%;
	border: 1px solid rgba(74, 122, 74, 0.35);
	border-radius: 52% 43% 48% 38% / 12% 20% 18% 16%;
	transform: rotate(12deg) skewY(-8deg);
	background: rgba(255, 255, 255, 0.32);
}

.energy-map-dot {
	position: absolute;
	width: 14px;
	height: 14px;
	border: 3px solid rgba(255, 255, 255, 0.82);
	border-radius: 50%;
	box-shadow: 0 0 0 5px rgba(255, 255, 255, 0.18);
	transform: translate(-50%, -50%);
	transition: opacity var(--transition-default), transform var(--transition-default), filter var(--transition-default);
}

.energy-map-dot--solar { background: #4a7a4a; }
.energy-map-dot--storage { background: #6b6daa; }
.energy-map-dot--wind { background: #4b8690; }
.energy-map-dot.is-muted { opacity: 0.16; filter: grayscale(1); transform: translate(-50%, -50%) scale(0.78); }

.energy-technology-rows {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(18px, 2.5vw, 36px);
}

.energy-technology-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-content: start;
	gap: 18px;
	min-width: 0;
	padding: 24px 0 0;
	border-top: 1px solid rgba(16, 16, 16, 0.16);
}

.energy-technology-row--open {
	margin-top: 0;
	padding-top: 24px;
}

.energy-technology-row h3,
.energy-technology-row p {
	margin: 0;
}

.energy-technology-row h3 {
	font-size: clamp(1.15rem, 1.5vw, 1.4rem);
	font-weight: 700;
}

.energy-technology-row p {
	max-width: 70ch;
	font-size: clamp(1rem, 1.35vw, 1.15rem);
	line-height: 1.65;
	color: var(--color-text-soft);
}

.energy-chain-placeholder {
	position: relative;
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	align-items: start;
	gap: 12px;
	padding: 72px 0 24px;
	width: 100%;
}

.energy-chain-line {
	position: absolute;
	top: 86px;
	left: 8%;
	right: 8%;
	height: 1px;
	background: rgba(74, 122, 74, 0.55);
}

.energy-chain-station {
	position: relative;
	display: grid;
	justify-items: center;
	gap: 20px;
	text-align: center;
}

.energy-chain-station span {
	position: relative;
	z-index: 1;
	display: block;
	width: 28px;
	height: 28px;
	border: 1px solid #4a7a4a;
	border-radius: 50%;
	background: var(--color-surface);
	box-shadow: 0 0 0 8px rgba(153, 204, 153, 0.18);
}

.energy-chain-station small {
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.35;
	text-transform: uppercase;
	color: #4a7a4a;
}

.energy-inside-section {
	background: rgba(153, 204, 153, 0.06);
}

.energy-inside-art {
	align-self: center;
	justify-self: stretch;
	width: 100%;
	opacity: 0.82;
}

.energy-inside-art img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 620px;
	object-fit: contain;
	filter: saturate(0.72);
}

.energy-voice {
	/* Keep the quote and people strip on the same full-width grid as the other
	 * Energy sections. */
	max-width: none;
	text-align: center;
}

.energy-voice__quote {
	max-width: 48ch;
	margin: 0 auto;
	font-family: "Saol", serif;
	font-size: clamp(1.8rem, 3.5vw, 3.8rem);
	font-style: italic;
	line-height: 1.08;
	text-align: center;
}

.energy-voice__attribution {
	margin: 28px 0 0;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-align: center;
}

.energy-people-strip {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 24px;
	margin-top: clamp(64px, 8vw, 112px);
	padding: 24px clamp(20px, 3vw, 48px);
	border-top: 1px solid rgba(16, 16, 16, 0.16);
	border-bottom: 1px solid rgba(16, 16, 16, 0.16);
}

.energy-voice .energy-people-strip {
	width: 100%;
	margin-top: clamp(56px, 7vw, 96px);
}

.energy-people-strip .eyebrow,
.energy-people-strip__names {
	margin: 0;
}

.energy-people-strip__names {
	min-width: 0;
	font-family: "Saol", serif;
	font-size: 1.35rem;
	font-style: italic;
	line-height: 1.25;
	text-align: left;
}

.energy-people-strip .text-link {
	margin-left: 0;
	white-space: nowrap;
	color: #4a7a4a;
}

.energy-contact-section .cta-hero__inner {
	text-align: center;
}

.energy-contact-section .cta-hero__copy {
	max-width: 58ch;
	margin-left: auto;
	margin-right: auto;
}

.energy-contact-email {
	display: inline-block;
	margin-top: 24px;
	padding-bottom: 6px;
	border-bottom: 1px solid #4a7a4a;
	color: #4a7a4a;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.08em;
}

.energy-page .line-box,
.energy-page .line {
	width: 100%;
	max-width: none;
	overflow: visible;
	white-space: normal;
}

.energy-page__lead {
	max-width: 62rem;
}

#energy-overview.section-shell {
	padding-top: clamp(56px, 6vw, 88px);
}

.model-page-bridge-section.section-shell {
	padding-top: clamp(56px, 6vw, 88px);
}

.model-page-method-section.section-shell {
	padding-top: clamp(56px, 6vw, 88px);
}

/* Group story page: editorial hero, paired sections and a visual timeline. */
.group-story-hero {
	padding-top: clamp(72px, 10vw, 150px);
}

.group-story-hero__inner {
	width: min(100%, 1500px);
	margin-inline: auto;
	grid-template-columns: minmax(0, 1fr);
}

.group-story-hero__copy {
	min-width: 0;
	width: 100%;
	margin-inline: auto;
	justify-self: center;
	text-align: center;
}

.group-story-hero__copy .line {
	text-align: center;
}

.group-story-page h1,
.group-story-page h2,
.group-story-page h3 {
	font-weight: 400;
}

.group-story-hero__title {
	max-width: none;
	margin: 0;
	font-weight: 400;
	white-space: nowrap;
}

.group-story-hero__title .line-box,
.group-story-hero__lead .line-box,
.group-story-page .section-copy .line-box,
.group-story-page .section-title .line-box,
.group-story-page .group-story-practice__item .line-box,
.group-story-page .group-story-timeline__item .line-box {
	width: 100%;
	max-width: none;
	padding-right: 0.1em;
	white-space: normal;
	overflow: visible;
}

.group-story-hero__title .line-box {
	white-space: inherit;
}

.group-story-hero__lead {
	max-width: none;
}

.group-story-hero__subtitle {
	max-width: 36ch;
	margin: -8px 0 0;
	font-size: clamp(1.35rem, 2vw, 1.75rem);
	font-weight: 500;
	line-height: 1.25;
	letter-spacing: -0.02em;
}

.group-story-hero__art {
	width: min(100%, 920px);
}

.group-story-pair {
	padding: clamp(80px, 9vw, 136px) 0;
}

.group-story-pair--white {
	background: var(--color-surface);
}

.group-story-pair--alt {
	background: var(--color-surface-alt);
}

.group-story-pair--alt .group-story-pair__grid {
	grid-template-columns: minmax(0, 1fr);
}

.group-story-pair--alt .group-story-block .section-copy {
	max-width: none;
}

.group-story-pair__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(28px, 4vw, 72px);
}

.group-story-block {
	position: relative;
	min-width: 0;
}

.group-watermark {
	position: absolute;
	color: var(--color-text);
	opacity: 0.13;
	font-family: "Saol", Georgia, serif;
	font-size: clamp(5rem, 12vw, 12rem);
	font-style: italic;
	font-weight: 400;
	line-height: 1;
	pointer-events: none;
}

.group-watermark--name {
	top: 50%;
	right: clamp(20px, 5vw, 80px);
	transform: translateY(-50%);
}

.group-story-block .section-title,
.group-story-milestones > .container > .section-title {
	max-width: none;
	margin: 0 0 clamp(28px, 3vw, 46px);
	font-size: clamp(2.2rem, 3.5vw, 4.2rem);
	line-height: 1.02;
	white-space: nowrap;
}

.group-story-block .section-copy {
	max-width: 42rem;
	font-size: clamp(1.15rem, 1.65vw, 1.45rem);
	line-height: 1.55;
}

.group-independence__inner > .section-title {
	max-width: none;
	margin: 0 0 clamp(42px, 6vw, 76px);
}

.group-independence__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(18px, 2.5vw, 36px);
}

.group-independence__card {
	position: relative;
	min-height: 270px;
	padding: clamp(26px, 3vw, 42px);
	background: var(--color-surface-alt);
	border: 1px solid var(--color-border);
	border-radius: 28px;
	overflow: hidden;
	transition: transform 700ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 700ms ease;
}

.group-watermark--kelly {
	top: clamp(18px, 2vw, 30px);
	right: clamp(18px, 2.5vw, 38px);
	font-size: clamp(1.7rem, 3vw, 3.2rem);
}

/* Group page: keep the grey surfaces, remove the decorative background
 * watermarks from the content blocks. */
.group-story-page .group-watermark {
	display: none;
}

.group-independence__card::before {
	display: none;
}

.group-independence__card:nth-child(1) { transition-delay: 80ms; }
.group-independence__card:nth-child(2) { transition-delay: 220ms; }
.group-independence__card:nth-child(3) { transition-delay: 360ms; }
.group-independence__card:nth-child(4) { transition-delay: 500ms; }

.group-independence__card h3 {
	margin: 0 0 24px;
	font-size: clamp(1.45rem, 2.1vw, 2rem);
	font-weight: 500;
	letter-spacing: -0.035em;
}

.group-independence__card p {
	max-width: none;
	margin: 0;
	font-size: clamp(1rem, 1.25vw, 1.15rem);
	line-height: 1.65;
	color: var(--color-text-soft);
}

.group-independence__card.is-visible {
	box-shadow: 0 18px 36px rgba(16, 16, 16, 0.06);
}


.group-story-practice__list {
	display: grid;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.group-story-practice__item {
	position: relative;
	padding: 0 0 24px 28px;
	font-size: clamp(1.1rem, 1.5vw, 1.3rem);
	line-height: 1.5;
}

.group-story-practice__item + .group-story-practice__item {
	padding-top: 24px;
	border-top: 1px solid var(--color-border);
}

.group-story-practice__item::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.65rem;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--color-text);
}

.group-story-practice__item + .group-story-practice__item::before {
	top: 1.55rem;
}

.group-story-milestones {
	padding-top: clamp(80px, 9vw, 136px);
	padding-bottom: clamp(96px, 11vw, 164px);
	background: var(--color-surface-alt);
}

.group-story-milestones > .container > .section-title {
	max-width: none;
	margin-bottom: clamp(48px, 6vw, 88px);
}

.group-story-timeline {
	position: relative;
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: clamp(16px, 2vw, 32px);
	padding-top: 38px;
}

.group-story-timeline__line {
	position: absolute;
	top: 8px;
	left: 0;
	right: 0;
	height: 1px;
	background: var(--color-text);
}

.group-story-timeline__item {
	position: relative;
	display: grid;
	align-content: start;
	gap: 18px;
	min-width: 0;
	padding-top: 22px;
}

.group-story-timeline__item::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 17px;
	height: 17px;
	border: 1px solid var(--color-text);
	border-radius: 50%;
	background: var(--color-surface);
	transform: translateY(-50%);
}

.group-story-timeline__year {
	font-size: clamp(1.7rem, 3vw, 3.1rem);
	font-weight: 500;
	letter-spacing: -0.04em;
}

.group-story-timeline__item p {
	margin: 0;
	max-width: 18rem;
	font-size: clamp(0.92rem, 1.08vw, 1.08rem);
	line-height: 1.5;
	color: var(--color-text-soft);
}

/* Lio DC page — page-specific anatomy and infrastructure language. */
.company-page--dc {
	--dc-accent: #004550;
	--dc-tint: rgba(0, 69, 80, 0.055);
}

.company-page--dc .eyebrow,
.company-page--dc .text-link,
.company-page--dc .dc-contact__email,
.company-page--dc .dc-formula__caption,
.company-page--dc .dc-lifecycle span,
.company-page--dc .dc-voice__attribution {
	color: var(--dc-accent);
}

.company-page--dc .dc-hero__grid,
.company-page--dc .dc-essay,
.company-page--dc .dc-anatomy,
.company-page--dc .dc-workloads,
.company-page--dc .dc-market,
.company-page--dc .dc-inside,
.company-page--dc .dc-voice,
.company-page--dc .dc-people,
.company-page--dc .dc-contact {
	position: relative;
}

.dc-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 45fr) minmax(0, 55fr);
	align-items: center;
	gap: clamp(32px, 5vw, 88px);
}

.dc-hero__content {
	max-width: 720px;
}

.dc-hero__title {
	max-width: 11.5ch;
	margin: 24px 0 30px;
}

.dc-hero__copy {
	max-width: 650px;
	margin: 0;
}

.dc-hero__art {
	align-self: stretch;
	display: flex;
	align-items: center;
	justify-content: flex-end;
}

.dc-hero__art img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 720px;
	object-fit: contain;
}

.dc-essay {
	max-width: 1440px;
}

.dc-essay .section-heading {
	max-width: 760px;
}

.dc-essay .section-title,
.dc-anatomy .section-title,
.dc-workloads .section-title,
.dc-market .section-title,
.dc-inside .section-title,
.dc-contact .section-title {
	margin-top: 20px;
}

.dc-essay__body {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(300px, 0.52fr);
	align-items: center;
	gap: clamp(48px, 8vw, 150px);
	margin-top: 56px;
}

.dc-essay__copy {
	max-width: 720px;
}

.company-page--dc .section-copy {
	max-width: 760px;
}

.dc-essay__copy .section-copy {
	margin: 0 0 28px;
}

.company-page--dc .section-copy--lead {
	font-size: clamp(22px, 2.05vw, 31px);
	line-height: 1.28;
	color: var(--color-text);
}

.dc-formulas {
	display: grid;
	align-content: center;
	justify-items: center;
	width: 100%;
}

.dc-formula {
	width: min(100%, 560px);
	margin: 0 0 46px;
	text-align: center;
}

.dc-formula summary {
	display: grid;
	justify-items: center;
	gap: 20px;
	list-style: none;
	cursor: pointer;
}

.dc-formula summary::-webkit-details-marker {
	display: none;
}

.dc-formula__equation {
	display: inline-block;
	cursor: pointer;
	font-family: "Saol Display", Georgia, serif;
	font-style: italic;
	font-size: clamp(28px, 3.25vw, 56px);
	line-height: 1.1;
	border-bottom: 2px dotted rgba(0, 69, 80, .5);
	padding-bottom: 12px;
	color: var(--color-text);
	transition: color var(--transition-default), border-color var(--transition-default), transform var(--transition-default);
}

.dc-formula summary:hover .dc-formula__equation,
.dc-formula summary:focus-visible .dc-formula__equation,
.dc-formula[open] .dc-formula__equation {
	color: var(--dc-accent);
	border-bottom-color: var(--dc-accent);
	transform: translateY(-3px);
}

.dc-formula summary:focus-visible {
	outline: 2px solid var(--dc-accent);
	outline-offset: 8px;
}

.dc-formula__caption {
	display: block;
	margin-top: 12px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .16em;
}

.dc-formula > p {
	margin: 20px 0 0;
	font-size: 16px;
	line-height: 1.55;
	color: var(--color-text-soft);
}

.dc-anatomy,
.dc-workloads,
.dc-inside {
	background: var(--dc-tint);
}

.dc-moment {
	background: var(--color-surface-alt);
}

.dc-anatomy__intro {
	margin-top: 30px;
}

.dc-anatomy__header-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: center;
	gap: clamp(32px, 5vw, 88px);
}

.dc-anatomy__header-grid .section-heading {
	min-width: 0;
}

.dc-anatomy__header-grid .section-title {
	max-width: 18ch;
	font-size: clamp(2.7rem, 4.55vw, 4.4rem);
	line-height: 1.02;
}

.company-page--dc .dc-anatomy__header-grid .section-title {
	max-width: none;
}

.dc-anatomy__header-grid .dc-anatomy__intro {
	max-width: 650px;
	font-size: clamp(1.4rem, 2.35vw, 2rem);
	line-height: 1.18;
	color: var(--color-text);
}

.company-page--dc .dc-anatomy__header-grid .dc-anatomy__intro {
	max-width: none;
}

@media (min-width: 921px) {
	.company-page--dc .dc-workloads .section-title,
	.company-page--dc .dc-workloads .section-title .line-box,
	.company-page--dc .dc-workloads .section-title .line {
		max-width: none;
		white-space: nowrap;
	}
}

.dc-anatomy__header-art {
	min-width: 0;
	display: flex;
	align-items: center;
	justify-content: flex-end;
}

.dc-anatomy__header-art img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 620px;
	object-fit: contain;
}

.dc-anatomy__module {
	display: grid;
	grid-template-columns: minmax(0, 1.32fr) minmax(320px, .68fr);
	align-items: start;
	gap: clamp(28px, 5vw, 84px);
	margin-top: 64px;
}

.dc-placeholder,
.dc-inside__placeholder {
	position: relative;
	display: grid;
	place-items: center;
	min-height: 320px;
	border: 1px dashed rgba(0, 69, 80, .45);
	background: linear-gradient(135deg, rgba(0, 69, 80, .08), rgba(255, 255, 255, .7));
	color: var(--dc-accent);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .16em;
	text-align: center;
}

.dc-placeholder small,
.dc-inside__placeholder small {
	font-size: 9px;
	letter-spacing: .2em;
}

.dc-placeholder--anatomy {
	min-height: 0;
	height: auto;
	aspect-ratio: 1456 / 720;
	align-self: start;
	border-radius: 24px;
	overflow: hidden;
}

.dc-anatomy__image {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
	z-index: 0;
}

.dc-anatomy__marker {
	position: absolute;
	left: var(--node-x);
	top: var(--node-y);
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border: 1px solid var(--dc-accent);
	border-radius: 50%;
	background: #fff;
	color: var(--dc-accent);
	font-size: 12px;
	font-weight: 700;
	cursor: pointer;
	transform: translate(-50%, -50%);
	z-index: 1;
	transition: background .25s ease, color .25s ease, box-shadow .25s ease;
}

.dc-anatomy__marker:hover,
.dc-anatomy__marker:focus-visible,
.dc-anatomy__marker.is-active {
	background: var(--dc-accent);
	color: #fff;
	box-shadow: 0 0 0 8px rgba(0, 69, 80, .12);
}

.dc-anatomy__item {
	padding: 0 0 22px;
	margin-bottom: 22px;
	border-bottom: 1px solid rgba(0, 69, 80, .2);
}

.dc-anatomy__trigger {
	display: flex;
	align-items: center;
	gap: 16px;
	width: 100%;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--color-text);
	font: inherit;
	text-align: left;
	cursor: pointer;
}

.dc-anatomy__trigger:focus-visible {
	outline: 2px solid var(--dc-accent);
	outline-offset: 4px;
}

.dc-anatomy__number {
	color: var(--dc-accent);
	font-size: 11px;
	letter-spacing: .14em;
}

.dc-anatomy__trigger strong {
	font-size: 20px;
}

.dc-anatomy__item p {
	display: none;
	max-width: 520px;
	margin: 14px 0 0 42px;
	font-size: 16px;
	line-height: 1.5;
	color: var(--color-text-soft);
}

.dc-anatomy__item.is-active p {
	display: block;
}

.dc-anatomy__closing {
	max-width: none !important;
	margin: -48px 0 0;
	font-size: 18px;
	font-weight: 700;
	color: var(--dc-accent);
}

/* Keep the anatomy closing note and Workloads section on the shared rhythm. */
.company-page--dc .section-shell.dc-anatomy {
	padding-bottom: clamp(48px, 6vw, 88px);
}

.company-page--dc .section-shell.dc-workloads {
	padding-top: 0;
}

/* Final DC override: use the same subtitle-to-title gap in every section. */
.company-page--dc .section-heading > .section-title {
	margin-top: 0;
}

.company-page--dc .section-heading {
	row-gap: 0 !important;
}

.company-page--dc .section-heading > .eyebrow {
	margin-bottom: 20px;
}

.company-page--dc .section-heading > .section-title {
	margin-top: 0 !important;
}

.dc-workloads__copy {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(24px, 5vw, 90px);
	margin-top: 52px;
}

.dc-workloads__copy .section-copy {
	margin: 0;
}

.dc-placeholder--spectrum {
	min-height: 180px;
	margin-top: 64px;
}

.dc-workloads__image-wrap {
	margin-top: 64px;
	}

.dc-workloads__image,
.dc-inside__image {
	display: block;
	width: 100%;
	height: auto;
	object-fit: contain;
}

.dc-workloads__geography {
	max-width: none !important;
	margin-top: 44px;
}

.dc-editorial {
	max-width: 1280px;
}

.company-page--dc .dc-market .dc-editorial {
	max-width: none;
}

.dc-editorial__body {
	max-width: 800px;
	margin: 54px auto 0;
}

.company-page--dc .dc-market .dc-editorial__body {
	max-width: none;
	margin-left: 0;
	margin-right: 0;
}

.company-page--dc .dc-market .section-title,
.company-page--dc .dc-market .section-copy {
	max-width: none;
}

.dc-editorial__body .section-copy {
	margin: 0 0 28px;
}

.company-page--dc .dc-market .dc-editorial {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(28px, 4vw, 56px);
}

.company-page--dc .dc-market .dc-editorial .section-heading {
	width: 100%;
	text-align: center;
}

.company-page--dc .dc-market .dc-editorial .section-title,
.company-page--dc .dc-market .dc-editorial .section-title .line-box,
.company-page--dc .dc-market .dc-editorial .section-title .line {
	text-align: center;
}

.company-page--dc .dc-market .dc-editorial .section-title,
.company-page--dc .dc-market .dc-editorial__body {
	width: 100%;
	margin-left: auto;
	margin-right: auto;
	text-align: center;
}

.company-page--dc .dc-market .dc-editorial .section-title {
	max-width: none;
}

.company-page--dc .dc-market .dc-editorial__body {
	max-width: 1120px;
	margin-top: 0;
}

/* Shared internal title scale for Company pages; the DC hero uses its own
 * headline scale and is intentionally excluded because it is an h1. */
.company-page--dc .section-title {
	font-size: clamp(1.8rem, 4vw, 3rem);
}

.dc-lifecycle {
	position: relative;
	display: grid;
	grid-template-columns: minmax(150px, 1fr) minmax(70px, .55fr) minmax(150px, 1fr) minmax(70px, .55fr) minmax(150px, 1fr);
	align-items: center;
	gap: 12px;
	margin: 72px 0 0;
	padding: 0 18px;
}

.dc-lifecycle span {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .12em;
	white-space: nowrap;
	text-align: center;
}

.dc-lifecycle span::before {
	content: "";
	display: block;
	width: 16px;
	height: 16px;
	border: 1px solid var(--dc-accent);
	border-radius: 50%;
	background: var(--color-surface);
	box-shadow: 0 0 0 6px rgba(0, 69, 80, .08);
}

.dc-lifecycle i {
	display: block;
	margin-top: 8px;
	height: 1px;
	background: var(--dc-accent);
	opacity: .42;
}

.dc-lifecycle b {
	position: absolute;
	right: 4px;
	top: 4px;
	width: 8px;
	height: 8px;
	border-top: 1px solid var(--dc-accent);
	border-right: 1px solid var(--dc-accent);
	transform: rotate(45deg);
}

.company-page--dc .dc-market .dc-lifecycle {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	margin-top: 0;
	padding: 72px 0 24px;
}

.company-page--dc .dc-market .dc-lifecycle::before {
	content: "";
	position: absolute;
	top: 86px;
	left: 8%;
	right: 8%;
	height: 1px;
	background: rgba(0, 69, 80, 0.42);
}

.company-page--dc .dc-market .dc-lifecycle span {
	gap: 20px;
	color: var(--dc-accent);
}

.company-page--dc .dc-market .dc-lifecycle span::before {
	width: 28px;
	height: 28px;
	box-shadow: 0 0 0 8px rgba(0, 69, 80, 0.08);
}

.company-page--dc .dc-market .dc-lifecycle i,
.company-page--dc .dc-market .dc-lifecycle b {
	display: none;
}

.dc-inside__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.6fr) minmax(220px, .7fr);
	align-items: center;
	gap: clamp(40px, 10vw, 180px);
}

.dc-inside__grid .section-copy {
	max-width: 780px;
	margin-top: 36px;
}

.dc-inside__copy p {
	margin: 0;
}

.dc-inside__copy p + p {
	margin-top: 22px;
}

.dc-inside__grid .section-title {
	max-width: none;
	font-size: clamp(2.35rem, 4vw, 4rem);
}

.dc-inside__grid .section-title .line-box,
.dc-inside__grid .section-title .line {
	width: max-content;
	max-width: none;
	white-space: nowrap;
}

.dc-inside__placeholder {
	min-height: 360px;
}

.dc-inside__image-wrap {
	min-width: 0;
}

.dc-voice blockquote {
	max-width: 1180px;
	margin: 0 auto;
	padding-left: clamp(22px, 3vw, 48px);
	border-left: 2px solid var(--dc-accent);
	font-family: "Saol Display", Georgia, serif;
	font-size: clamp(28px, 4vw, 66px);
	font-style: italic;
	line-height: 1.08;
}

.dc-voice__attribution {
	margin: 28px 0 0;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .16em;
	text-align: center;
}

.company-page--dc .energy-voice__quote {
	border-left-color: var(--dc-accent);
}

.company-page--dc .dc-voice {
	background: #fff;
}

.company-page--dc .dc-voice blockquote {
	padding-left: 0;
	border-left: 0;
	text-align: center;
}

.company-page--dc .energy-voice__attribution,
.company-page--dc .energy-people-strip .eyebrow,
.company-page--dc .energy-people-strip .text-link {
	color: var(--dc-accent);
}

.company-page--dc .energy-people-strip {
	margin-top: clamp(56px, 7vw, 96px);
}

/* Keep the DC closing people strip aligned with the full-width company layout. */
.company-page--dc .energy-voice {
	max-width: var(--container-width);
}

.company-page--dc .energy-people-strip {
	width: 100%;
}

.dc-people {
	padding-top: 34px !important;
	padding-bottom: 34px !important;
	border-top: 1px solid rgba(0, 69, 80, .2);
	border-bottom: 1px solid rgba(0, 69, 80, .2);
}

.dc-people__inner {
	display: flex;
	align-items: center;
	gap: 24px;
}

.dc-people__inner .eyebrow {
	margin: 0;
}

.dc-people__names {
	flex: 1;
	margin: 0;
	font-size: 15px;
	color: var(--color-text-soft);
}

.dc-people__inner .text-link {
	white-space: nowrap;
}

.dc-contact {
	background: var(--dc-accent);
	color: #fff;
}

.dc-contact .eyebrow,
.dc-contact .section-title,
.dc-contact .section-copy,
.dc-contact__email {
	color: #fff;
}

.dc-contact__inner {
	max-width: 900px;
	text-align: center;
}

.dc-contact .section-copy {
	margin: 28px auto;
}

.dc-contact__email {
	display: inline-block;
	font-size: 17px;
	font-weight: 700;
	letter-spacing: .04em;
	text-decoration: underline;
	text-underline-offset: 6px;
}

.company-page--dc .dc-contact {
	background: transparent;
	color: var(--color-text);
}

.company-page--dc .dc-contact .eyebrow,
.company-page--dc .dc-contact .cta-hero__title,
.company-page--dc .dc-contact .cta-hero__copy {
	color: var(--color-text);
}

.company-page--dc .dc-contact .dc-contact__email {
	color: var(--dc-accent);
	text-decoration: none;
}

.careers-principle:nth-child(1) {
	transition-delay: 80ms;
}

.careers-principle:nth-child(2) {
	transition-delay: 220ms;
}

.careers-principle:nth-child(3) {
	transition-delay: 360ms;
}

.energy-overview-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
	align-items: start;
	gap: clamp(40px, 5vw, 88px);
}

.energy-overview-grid__main,
.energy-overview-grid__focus {
	display: grid;
	align-content: start;
}

.energy-overview-grid__focus {
	gap: 30px;
}

.energy-section-title .line-box,
.energy-section-copy .line-box {
	width: 100%;
	max-width: none;
	padding-bottom: 0.12em;
}

.energy-focus-intro {
	max-width: 38rem;
}

.energy-feature-list {
	display: grid;
	gap: 26px;
	margin-top: 42px;
}

.energy-feature {
	display: grid;
	grid-template-columns: 108px minmax(0, 1fr);
	align-items: start;
	gap: 24px;
	padding: 8px 0;
}

.energy-feature__icon {
	display: grid;
	place-items: center;
	width: 108px;
	height: 108px;
	border: 1px solid rgba(131, 186, 120, 0.28);
	border-radius: 999px;
	background: rgba(131, 186, 120, 0.06);
}

.energy-feature__icon img {
	width: 72px;
	height: 72px;
	object-fit: contain;
}

.energy-feature__content {
	display: grid;
	gap: 8px;
	padding-top: 8px;
}

.energy-feature__title {
	margin: 0;
	font-size: clamp(1.15rem, 1.8vw, 1.48rem);
	line-height: 1.22;
	letter-spacing: -0.02em;
}

.energy-feature__copy {
	margin: 0;
	max-width: 70rem;
	font-size: 0.98rem;
	line-height: 1.65;
	color: var(--color-text-soft);
}

.energy-focus-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.energy-focus-card {
	display: grid;
	justify-items: start;
	align-content: start;
	gap: 16px;
	min-height: 260px;
	padding: 28px 24px;
	background: rgba(255, 255, 255, 0.92);
	border: 1px solid rgba(16, 16, 16, 0.1);
	border-radius: 24px;
}

.energy-focus-card__icon img {
	width: 66px;
	height: 66px;
	object-fit: contain;
}

.energy-focus-card__title {
	margin: 0;
	font-size: clamp(1.3rem, 1.9vw, 1.72rem);
	line-height: 1.04;
	letter-spacing: -0.03em;
}

.energy-focus-card__copy {
	margin: 0;
	font-size: 0.96rem;
	line-height: 1.6;
	color: var(--color-text-soft);
}

.energy-stats {
	display: grid;
	gap: 34px;
	margin-top: clamp(56px, 7vw, 92px);
}

.energy-stats__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.dc-overview-grid {
	display: grid;
	grid-template-columns: minmax(360px, 0.84fr) minmax(0, 1fr);
	align-items: center;
	gap: clamp(40px, 5vw, 86px);
	padding-top: clamp(28px, 3vw, 48px);
}

.dc-overview-grid__art {
	display: grid;
	justify-items: center;
}

.dc-overview-grid__art img {
	display: block;
	width: min(100%, 620px);
	height: auto;
	object-fit: contain;
}

.dc-overview-grid__content {
	display: grid;
	gap: 30px;
	align-content: start;
}

.dc-section-title {
	max-width: min(100%, 21ch);
}

.dc-section-title .line-box {
	padding-right: 0.12em;
}

.dc-bullet-list {
	display: grid;
	gap: 18px;
}

.dc-bullet-item {
	display: grid;
	grid-template-columns: 14px minmax(0, 1fr);
	align-items: start;
	gap: 16px;
	padding-bottom: 18px;
	border-bottom: 1px solid rgba(16, 16, 16, 0.12);
}

.dc-bullet-item:last-child {
	padding-bottom: 0;
	border-bottom: 0;
}

.dc-bullet-item__dot {
	width: 8px;
	height: 8px;
	margin-top: 0.7em;
	border-radius: 999px;
	background: #2f6dff;
}

.dc-bullet-item p {
	margin: 0;
	font-size: clamp(1.02rem, 1.18vw, 1.14rem);
	line-height: 1.62;
	color: var(--color-text-soft);
}

.dc-why-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	margin-top: 42px;
}

.dc-why-card {
	display: grid;
	align-content: start;
	gap: 16px;
	min-height: 320px;
	padding: 28px 24px;
	background: rgba(255, 255, 255, 0.96);
	border: 1px solid rgba(47, 109, 255, 0.26);
	border-radius: 24px;
}

.dc-why-card__icon {
	display: grid;
	justify-items: start;
	min-height: 72px;
}

.dc-why-card__icon img {
	width: 72px;
	height: 72px;
	object-fit: contain;
}

.dc-why-card__icon-fallback {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 72px;
	height: 72px;
	border-radius: 20px;
	background: rgba(47, 109, 255, 0.08);
	color: #2f6dff;
	font-size: 1.1rem;
	font-weight: 700;
	letter-spacing: 0.1em;
}

.dc-why-card__title {
	margin: 0;
	font-size: clamp(1.22rem, 1.8vw, 1.6rem);
	line-height: 1.08;
	letter-spacing: -0.03em;
}

.dc-why-card__list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 14px;
	font-size: 0.98rem;
	line-height: 1.62;
	color: var(--color-text-soft);
}

.dc-why-card__list-item {
	position: relative;
	padding-left: 1.15rem;
}

.dc-why-card__list-item::before {
	content: '•';
	position: absolute;
	left: 0;
	top: 0;
	color: var(--color-text);
	font-weight: 700;
}

.dc-why-card__list-item strong {
	color: var(--color-text);
	font-weight: 700;
}

.company-page--capital .capital-page-hero__title {
	max-width: min(100%, 16.4ch);
}

.capital-typewriter-line {
	display: inline-flex;
	align-items: flex-end;
	gap: 0.08em;
	white-space: nowrap;
}

.capital-typewriter-text {
	display: inline-block;
}

.capital-typewriter-cursor {
	display: inline-block;
	width: 0.07em;
	height: 0.9em;
	margin-bottom: -0.02em;
	background: currentColor;
	animation: capital-typewriter-blink 0.9s steps(1, end) infinite;
}

@keyframes capital-typewriter-blink {
	0%,
	49% {
		opacity: 1;
	}

	50%,
	100% {
		opacity: 0;
	}
}

.company-page--capital .section-shell:not(:first-child) {
	padding-top: clamp(48px, 5vw, 72px);
}

.capital-intro-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	align-items: start;
	gap: clamp(40px, 5vw, 96px);
}

.capital-intro-grid__lead,
.capital-intro-grid__body {
	display: grid;
	align-content: start;
}

.capital-section-title {
	max-width: min(100%, 17.8ch);
}

#capital-overview .capital-section-title {
	max-width: min(100%, 15.9ch);
}

.capital-section-title--wide {
	max-width: min(100%, 21.4ch);
}

.capital-section-title .line-box {
	padding-right: 0.18em;
}

.capital-body-copy {
	display: grid;
	gap: 18px;
}

.capital-body-copy p {
	margin: 0;
	font-size: clamp(1rem, 1.18vw, 1.12rem);
	line-height: 1.66;
	color: var(--color-text-soft);
}

.capital-intro-copy {
	max-width: 54rem;
}

.capital-intro-copy .line-box,
.capital-body-copy .line-box {
	padding-right: 0.16em;
}

.capital-edge-section {
	background: #1f2b4d;
	color: #f6f2e9;
}

.capital-edge-section .eyebrow,
.capital-edge-section .section-copy .line,
.capital-edge-section .capital-intro-copy .line {
	color: rgba(246, 242, 233, 0.84);
}

.capital-edge-section .capital-section-title,
.capital-edge-section .capital-section-title em,
.capital-edge-section .capital-section-title i {
	color: #f6f2e9;
}

.capital-edge-section .capital-intro-copy {
	max-width: 60rem;
}

.capital-edge-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: clamp(40px, 5vw, 96px);
	margin-top: 48px;
	align-items: start;
}

.capital-edge-grid__lead {
	display: grid;
	align-content: start;
	gap: 20px;
}

.capital-edge-grid__eyebrow {
	position: relative;
}

.capital-edge-grid__title {
	margin: 0;
	max-width: 17ch;
	font-family: "Saol", serif;
	font-size: clamp(2.1rem, 3vw, 3.45rem);
	font-style: italic;
	font-weight: 400;
	line-height: 1.08;
	letter-spacing: -0.01em;
	color: #f6f2e9;
}

.capital-edge-grid__list {
	display: grid;
	gap: 28px;
}

.capital-edge-item {
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr);
	gap: 24px;
	align-items: start;
}

.capital-edge-item__letter {
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-display);
	font-size: clamp(3rem, 4.8vw, 5rem);
	line-height: 0.92;
	letter-spacing: -0.04em;
	color: #f6f2e9;
}

.capital-edge-item__content {
	padding-left: 24px;
	border-left: 1px solid rgba(207, 166, 75, 0.88);
}

.capital-edge-item__title {
	margin: 0 0 12px;
	max-width: 16ch;
	font-family: var(--font-display);
	font-size: clamp(1.7rem, 2.35vw, 2.55rem);
	line-height: 0.98;
	letter-spacing: -0.03em;
	color: #f6f2e9;
}

.capital-edge-item__copy {
	margin: 0;
	max-width: 40rem;
	font-size: clamp(0.98rem, 1.08vw, 1.08rem);
	line-height: 1.56;
	color: rgba(246, 242, 233, 0.84);
}

.capital-track-record {
	display: grid;
	gap: 34px;
}

.capital-track-record__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.capital-people-bridge {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	align-items: start;
	gap: clamp(40px, 5vw, 96px);
}

.capital-people-bridge-section {
	border-bottom: 1px solid rgba(16, 16, 16, 0.1);
}

.capital-people-bridge__lead,
.capital-people-bridge__body {
	display: grid;
	align-content: start;
}

.capital-people-bridge__title {
	max-width: min(100%, 16.8ch);
}

.company-page--ssg .energy-page-hero__title {
	max-width: min(100%, 15.2ch);
}

.company-page--ssg .section-shell:not(:first-child) {
	padding-top: clamp(48px, 5vw, 72px);
}

.ssg-section-title {
	max-width: min(100%, 16.8ch);
}

.ssg-section-title--wide {
	max-width: min(100%, 19.8ch);
}

.ssg-section-title .line-box {
	padding-right: 0.18em;
}

.ssg-overview-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr);
	align-items: start;
	gap: clamp(40px, 5vw, 92px);
}

.ssg-overview-grid__content,
.ssg-overview-grid__visual {
	display: grid;
	align-content: start;
}

.ssg-overview-grid__visual {
	padding-top: clamp(20px, 2vw, 32px);
}

.ssg-dark-panel {
	display: grid;
	place-items: center;
	min-height: 380px;
	padding: 0;
	background: transparent;
	overflow: hidden;
}

.ssg-formula-svg {
	width: 100%;
	height: auto;
	color: #111;
}

.ssg-formula-svg [data-draw-item] {
	opacity: 0;
	stroke-dasharray: var(--draw-length, 0);
	stroke-dashoffset: var(--draw-length, 0);
	transition:
		stroke-dashoffset 2.35s cubic-bezier(0.22, 1, 0.36, 1) var(--draw-delay, 0ms),
		opacity 0.35s ease var(--draw-delay, 0ms);
}

.ssg-formula-svg.is-drawing [data-draw-item] {
	opacity: 1;
	stroke-dashoffset: 0;
}

.ssg-stats-section {
	display: grid;
	gap: 34px;
}

.ssg-stats-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.ssg-stat-card {
	display: grid;
	align-content: end;
	gap: 12px;
	min-height: 240px;
	padding: 30px 28px;
	background: #050505;
	color: #fff;
	border-radius: 24px;
}

.ssg-stat-card__value {
	margin: 0;
	font-size: clamp(2.7rem, 4.6vw, 4.8rem);
	line-height: 0.94;
	letter-spacing: -0.05em;
	font-weight: 500;
}

.ssg-stat-card__label {
	margin: 0;
	font-size: 0.98rem;
	line-height: 1.62;
	color: rgba(255, 255, 255, 0.76);
}

.ssg-principles-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(320px, 0.92fr);
	align-items: start;
	gap: clamp(40px, 5vw, 96px);
}

.ssg-principles-grid__main,
.ssg-principles-grid__side {
	display: grid;
	align-content: start;
}

.ssg-principles-grid__side {
	gap: 20px;
}

.ssg-principles-list {
	display: grid;
	gap: 18px;
	margin-top: 38px;
}

.ssg-principle {
	display: grid;
	gap: 10px;
	padding-bottom: 18px;
	border-bottom: 1px solid rgba(16, 16, 16, 0.12);
}

.ssg-principle:last-child {
	padding-bottom: 0;
	border-bottom: 0;
}

.ssg-principle__title {
	margin: 0;
	font-size: clamp(1.16rem, 1.8vw, 1.42rem);
	line-height: 1.14;
	letter-spacing: -0.02em;
}

.ssg-principle__copy {
	margin: 0;
	font-size: 0.98rem;
	line-height: 1.64;
	color: var(--color-text-soft);
}

.ssg-quote-card {
	display: grid;
	gap: 14px;
	min-height: 100%;
	padding: 34px 30px;
	background: rgba(255, 255, 255, 0.92);
	border: 1px solid rgba(16, 16, 16, 0.1);
	border-radius: 24px;
}

.ssg-quote-card__quote {
	margin: 0;
	font-size: clamp(1.2rem, 2vw, 1.68rem);
	line-height: 1.34;
	letter-spacing: -0.02em;
}

.ssg-quote-card__note {
	margin: 10px 0 0;
	font-family: "Saol", serif;
	font-style: italic;
	font-weight: 400;
	font-size: clamp(1.08rem, 1.2vw, 1.24rem);
	line-height: 1.5;
	color: var(--color-text);
}

.ssg-quote-card__author {
	margin: 0;
	font-size: 0.82rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-text-soft);
}

.ssg-investment-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	margin-top: 38px;
}

.ssg-investment-card {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	gap: 14px;
	min-height: 260px;
	padding: 44px 24px 28px;
	background: #050505;
	color: #fff;
	border-radius: 24px;
	text-align: center;
}

.ssg-investment-card__title {
	margin: 0;
	min-height: 2.5em;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	font-size: clamp(1.16rem, 1.75vw, 1.4rem);
	line-height: 1.18;
	letter-spacing: -0.02em;
}

.ssg-investment-card__copy {
	margin: 0;
	font-size: 0.98rem;
	line-height: 1.62;
	color: rgba(255, 255, 255, 0.76);
	max-width: 32ch;
	justify-self: center;
}

.energy-stat {
	display: grid;
	gap: 10px;
	align-content: end;
	min-height: 220px;
	padding: 32px 30px;
	background: rgba(255, 255, 255, 0.92);
	border: 1px solid rgba(16, 16, 16, 0.1);
	border-radius: 24px;
}

.energy-stat__value {
	margin: 0;
	font-size: clamp(3rem, 5.6vw, 5.6rem);
	line-height: 0.94;
	letter-spacing: -0.05em;
	font-weight: 500;
}

.energy-stat__label {
	margin: 0;
	font-size: 1rem;
	line-height: 1.55;
	color: var(--color-text-soft);
}

.team-grid-section {
	padding-top: 12px;
}

.team-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
}

.team-card {
	width: 100%;
	padding: 16px 22px;
	border: 1px solid var(--color-border);
	border-radius: 30px;
	background: rgba(255, 255, 255, 0.72);
	display: grid;
	gap: 10px;
	text-align: left;
	cursor: pointer;
	position: relative;
	overflow: hidden;
	min-height: 166px;
	transition: transform var(--transition-default), border-color var(--transition-default), box-shadow var(--transition-default), background-color var(--transition-default);
}

.team-card:hover,
.team-card.is-active {
	transform: translateY(-4px);
	border-color: rgba(16, 16, 16, 0.16);
	box-shadow: 0 18px 42px rgba(16, 16, 16, 0.06);
	background: rgba(255, 255, 255, 0.96);
}

.team-card:focus-visible {
	outline: 2px solid rgba(16, 16, 16, 0.2);
	outline-offset: 4px;
}

.team-card__header {
	display: grid;
	grid-template-columns: 92px minmax(0, 1fr) 36px;
	align-items: center;
	gap: 18px;
}

.team-card__toggle {
	position: relative;
	width: 36px;
	height: 36px;
	border: 1px solid rgba(16, 16, 16, 0.14);
	border-radius: 999px;
	flex-shrink: 0;
	justify-self: end;
	z-index: 3;
}

.team-card__toggle::before,
.team-card__toggle::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 12px;
	height: 1.5px;
	background: currentColor;
	transform: translate(-50%, -50%);
	transition: transform var(--transition-default), opacity var(--transition-default);
}

.team-card__toggle::after {
	transform: translate(-50%, -50%) rotate(90deg);
}

.team-card.is-active .team-card__toggle::after {
	opacity: 0;
	transform: translate(-50%, -50%) rotate(90deg) scaleX(0.4);
}

.team-card__media {
	display: block;
	overflow: hidden;
	border-radius: 22px;
	background: linear-gradient(180deg, #f8fafb 0%, #eef2f5 100%);
}

.team-card__avatar {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1.08;
	object-fit: cover;
}

.team-card__content {
	display: grid;
	gap: 6px;
	min-width: 0;
}

.team-card__name {
	font-size: clamp(1.16rem, 1.28vw, 1.5rem);
	line-height: 0.98;
	letter-spacing: -0.04em;
	font-weight: 500;
	color: var(--color-text);
}

.team-card__role {
	font-size: 12px;
	line-height: 1.45;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--color-text-soft);
}

.team-card__bio {
	position: absolute;
	inset: 0;
	padding: 22px;
	background: rgba(255, 255, 255, 0.98);
	display: flex;
	align-items: flex-start;
	font-size: 15px;
	line-height: 1.65;
	color: var(--color-text-soft);
	transform: translateY(100%);
	transition: transform 320ms ease, opacity 260ms ease;
	opacity: 0;
	z-index: 2;
}

.team-card.is-active .team-card__bio {
	transform: translateY(0);
	opacity: 1;
}

.team-card__bio-inner {
	display: grid;
	gap: 10px;
	padding-right: 56px;
}

.team-card__bio-name {
	font-size: clamp(1.34rem, 1.55vw, 1.7rem);
	line-height: 0.98;
	letter-spacing: -0.04em;
	font-weight: 500;
	color: var(--color-text);
}

.team-card__bio-role {
	font-size: 12px;
	line-height: 1.45;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--color-text-soft);
}

.team-card__bio-text {
	font-size: 15px;
	line-height: 1.65;
	color: var(--color-text-soft);
}

/* People page: governance is expressed through three distinct visual levels. */
.people-hero {
	padding-top: clamp(72px, 10vw, 148px);
	padding-bottom: clamp(96px, 13vw, 196px);
}

.people-hero__inner {
	max-width: 1120px;
	text-align: center;
}

.people-hero__inner .eyebrow {
	margin-bottom: clamp(28px, 4vw, 52px);
}

.people-hero__headline {
	max-width: 13ch;
	margin: 0 auto;
	font-family: "Saol", serif;
	font-size: clamp(3rem, 7vw, 7rem);
	font-style: italic;
	font-weight: 400;
	line-height: 0.94;
	letter-spacing: -0.045em;
}

.people-hero__standfirst {
	max-width: 34ch;
	margin: clamp(34px, 5vw, 64px) auto 0;
	text-align: center;
	font-family: "Saol", serif;
	font-size: clamp(1.4rem, 2.1vw, 2rem);
	font-style: italic;
	line-height: 1.18;
	color: var(--color-text-soft);
}

.people-hero__headline .line-box,
.people-hero__headline .line,
.people-hero__standfirst .line-box,
.people-hero__standfirst .line {
	width: 100%;
	max-width: none;
	overflow: visible;
	white-space: normal;
}

.people-hero__headline .line-box,
.people-hero__headline .line {
	text-align: center !important;
}

.people-hero__standfirst .line-box,
.people-hero__standfirst .line {
	text-align: center !important;
}

.people-section {
	padding-top: clamp(80px, 10vw, 148px);
	padding-bottom: clamp(88px, 11vw, 168px);
}

.people-section > .container {
	width: min(100%, 1500px);
}

.people-page .people-card__name,
.people-page .people-committee__name {
	font-size: clamp(1.05rem, 1.3vw, 1.45rem);
}

.company-page .company-team-card .people-card__name {
	font-size: clamp(1.15rem, 1.45vw, 1.6rem);
}

/* Prova reversibile: card per i membri della pagina People. */
.people-page .people-card-grid {
	gap: clamp(20px, 2.4vw, 36px);
}

.people-page .people-card,
.people-page .people-committee__member {
	padding: clamp(16px, 1.8vw, 24px);
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: 32px;
}

.people-page .people-card .people-portrait {
	border-radius: 22px;
}

.people-section__heading {
	display: grid;
	grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr);
	align-items: end;
	gap: clamp(40px, 7vw, 120px);
	margin-bottom: clamp(48px, 6vw, 84px);
}

.people-section__heading .section-title {
	max-width: none;
}

.people-section__intro {
	max-width: 58ch;
	margin: 0;
	font-size: clamp(1rem, 1.35vw, 1.15rem);
	line-height: 1.65;
	color: var(--color-text-soft);
}

.people-section__intro .line-box,
.people-section__intro .line {
	width: 100%;
	max-width: none;
	overflow: visible;
	white-space: normal;
}

.people-card-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: clamp(14px, 1.8vw, 28px);
}

.people-card {
	min-width: 0;
	padding-bottom: 8px;
}

.people-portrait {
	position: relative;
	display: block;
	overflow: hidden;
	aspect-ratio: 4 / 5;
	background: linear-gradient(180deg, #f8fafb 0%, #e9eef1 100%);
}

.people-portrait img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: var(--person-image-position, 50% 50%);
}

.people-portrait__initials {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	font-family: "Saol", serif;
	font-size: clamp(2.6rem, 4vw, 4.6rem);
	font-style: italic;
	color: rgba(16, 16, 16, 0.48);
}

.people-card__role,
.people-card__platform,
.people-committee__role {
	margin: 18px 0 8px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.14em;
	line-height: 1.3;
	text-transform: uppercase;
	color: var(--color-text-soft);
}

.people-card__name,
.people-committee__name {
	margin: 0;
	font-family: "Saol", serif;
	font-size: clamp(1.45rem, 1.8vw, 2rem);
	font-style: italic;
	font-weight: 400;
	line-height: 1;
	letter-spacing: -0.025em;
}

.people-card__bio {
	margin: 14px 0 0;
	font-size: 0.9rem !important;
	line-height: 1.5;
	color: var(--color-text-soft);
}

.people-card--ceo {
	display: grid;
	grid-template-rows: auto auto auto 1fr auto;
	padding-top: 0;
}

.people-card--ceo .people-card__platform {
	margin-top: 18px;
	padding-top: 12px;
	border-top: 2px solid var(--platform-color);
	color: var(--platform-color);
}

.people-card__link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 18px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	transition: color var(--transition-default), transform var(--transition-default);
}

.people-card__link:hover,
.people-card__link:focus-visible {
	color: var(--platform-color);
	transform: translateX(4px);
}

.people-card__link:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 5px;
}

.people-committee__roster {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 36px clamp(28px, 5vw, 84px);
}

.people-committee__member {
	display: grid;
	grid-template-columns: 64px minmax(0, 1fr);
	align-items: center;
	gap: 18px;
}

.people-portrait--committee {
	width: 64px;
	height: 64px;
	border-radius: 50%;
}

.people-portrait--committee .people-portrait__initials {
	font-size: 1.5rem;
}

.people-committee__role {
	margin: 0 0 5px;
}

.people-committee__bio {
	margin: 10px 0 0;
	font-size: 0.9rem !important;
	line-height: 1.5;
	color: var(--color-text-soft);
}

/* Le bio dei profili non devono ereditare i 18px globali del body. */
.people-page .people-card__bio,
.people-page .people-committee__bio,
.company-page .company-team-card .people-card__bio {
	font-size: 0.9rem !important;
}

.contact-panel {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 32px;
	padding: clamp(28px, 4vw, 40px);
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: 32px;
}

.contact-page-intro {
	align-items: center;
}

.contact-page-section {
	padding-top: clamp(64px, 7vw, 96px);
}

.contact-page-layout {
	display: grid;
	grid-template-columns: minmax(260px, 0.38fr) minmax(0, 0.62fr);
	gap: clamp(28px, 4vw, 64px);
	align-items: start;
}

.contact-page-details {
	display: grid;
	align-content: start;
	gap: 20px;
	max-width: 360px;
}

.contact-page-details .section-title {
	max-width: none;
}

.contact-page-details__title {
	max-width: min(100%, 16.5ch);
}

.contact-page-details__title .line-box {
	width: 100%;
	max-width: none;
	padding-right: 0.08em;
}

.contact-page-details__list {
	display: grid;
	gap: 18px;
}

.contact-page-details__item {
	display: grid;
	gap: 5px;
}

.contact-page-details__label {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--color-text-soft);
}

.contact-page-details__item p {
	margin: 0;
	font-size: clamp(1rem, 1.18vw, 1.12rem);
	line-height: 1.45;
}

.contact-page-details__item a {
	transition: opacity var(--transition-default);
}

.contact-page-details__item a:hover {
	opacity: 0.72;
}

.contact-page-details__social {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border: 1px solid rgba(16, 16, 16, 0.12);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.92);
	transition: transform var(--transition-default), border-color var(--transition-default), background-color var(--transition-default), opacity var(--transition-default);
}

.contact-page-details__social svg {
	width: 18px;
	height: 18px;
	fill: currentColor;
}

.contact-page-details__social:hover {
	transform: translateY(-1px);
	border-color: rgba(16, 16, 16, 0.22);
	background: #ffffff;
	opacity: 1;
}

.contact-form-card {
	display: grid;
	gap: 18px;
	padding: clamp(20px, 2.3vw, 30px);
	background:
		radial-gradient(circle at top, rgba(173, 214, 228, 0.22), transparent 52%),
		rgba(255, 255, 255, 0.9);
	border: 1px solid rgba(16, 16, 16, 0.1);
	border-radius: 36px;
	box-shadow: 0 28px 60px rgba(16, 16, 16, 0.06);
}

.contact-form-card .section-title {
	max-width: 12.2ch;
}

.contact-form-status {
	padding: 13px 16px;
	border-radius: 18px;
	font-size: 0.94rem;
	line-height: 1.45;
}

.contact-form-status--success {
	background: rgba(115, 185, 104, 0.1);
	border: 1px solid rgba(115, 185, 104, 0.24);
	color: #2f6a28;
}

.contact-form-status--error {
	background: rgba(191, 83, 83, 0.08);
	border: 1px solid rgba(191, 83, 83, 0.18);
	color: #8a2d2d;
}

.contact-form {
	display: grid;
	gap: 14px;
}

.contact-form__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px 14px;
}

.contact-form__field {
	display: grid;
	gap: 6px;
}

.contact-form__field--full {
	grid-column: 1 / -1;
}

.contact-form__field label {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--color-text-soft);
}

.contact-form__field input,
.contact-form__field select,
.contact-form__field textarea {
	width: 100%;
	border: 1px solid rgba(16, 16, 16, 0.12);
	border-radius: 24px;
	background: rgba(255, 255, 255, 0.96);
	color: var(--color-text);
	font-family: "Circular", sans-serif;
	font-size: 1rem;
	line-height: 1.4;
	padding: 13px 16px;
	appearance: none;
	transition: border-color var(--transition-default), box-shadow var(--transition-default), background-color var(--transition-default);
}

.contact-form__field select {
	padding-right: 46px;
	background-image:
		linear-gradient(45deg, transparent 50%, rgba(16, 16, 16, 0.7) 50%),
		linear-gradient(135deg, rgba(16, 16, 16, 0.7) 50%, transparent 50%);
	background-position:
		calc(100% - 21px) calc(50% - 3px),
		calc(100% - 15px) calc(50% - 3px);
	background-size: 6px 6px, 6px 6px;
	background-repeat: no-repeat;
}

.contact-form__field textarea {
	min-height: 72px;
	resize: vertical;
}

.contact-form__field input::placeholder,
.contact-form__field textarea::placeholder {
	color: rgba(16, 16, 16, 0.36);
}

.contact-form__field input:focus,
.contact-form__field select:focus,
.contact-form__field textarea:focus {
	outline: none;
	border-color: rgba(16, 16, 16, 0.26);
	box-shadow: 0 0 0 4px rgba(173, 214, 228, 0.22);
	background: #ffffff;
}

.contact-form__consent {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	font-size: 0.92rem;
	line-height: 1.42;
	color: var(--color-text-soft);
	cursor: pointer;
}

.contact-form__consent input {
	margin-top: 2px;
	width: 18px;
	height: 18px;
	accent-color: #101010;
	flex-shrink: 0;
}

.contact-form__actions {
	display: flex;
	justify-content: flex-start;
	padding-top: 0;
}

.cta-hero-section {
	padding: 0;
}

.cta-hero {
	display: grid;
	width: 100%;
	background:
		radial-gradient(circle at top, rgba(173, 214, 228, 0.32), transparent 58%),
		linear-gradient(180deg, #dfe9ef 0%, #edf3f6 100%);
}

.cta-hero__inner {
	display: grid;
	justify-items: center;
	text-align: center;
	gap: 24px;
	padding: clamp(72px, 9vw, 116px) clamp(24px, 5vw, 64px);
}

.cta-hero .eyebrow {
	margin: 0;
}

.cta-hero__title {
	margin: 0;
	max-width: 17ch;
	font-size: clamp(2.1rem, 4.4vw, 4.2rem);
	line-height: 1.06;
	letter-spacing: -0.04em;
	font-weight: 500;
}

.cta-hero__title .line-box {
	width: 100%;
	max-width: none;
	padding-right: 0.08em;
	padding-bottom: 0.1em;
	text-align: center;
}

.cta-hero__title .line,
.cta-hero__copy .line {
	display: block;
	width: 100%;
	text-align: center !important;
}

.cta-hero__copy {
	display: grid;
	justify-items: center;
	justify-self: center;
	gap: 0;
	width: min(100%, 72rem);
	max-width: 72rem;
	margin-left: auto;
	margin-right: auto;
	margin: 0;
	color: var(--color-text);
	font-size: clamp(1.06rem, 1.55vw, 1.42rem);
	line-height: 1.22;
}

.cta-hero__copy .line-box {
	width: 100%;
	max-width: none;
	overflow: visible;
	white-space: normal;
	text-align: center;
}

.cta-hero__copy .line {
	white-space: normal;
}

.cta-hero__email {
	color: var(--color-text);
	font-size: clamp(1rem, 1.35vw, 1.2rem);
	font-weight: 500;
	line-height: 1.2;
	text-decoration: none;
	transition: opacity 180ms ease;
}

.cta-hero__email:hover,
.cta-hero__email:focus-visible {
	opacity: 0.62;
}

.button-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 54px;
	padding: 0 28px;
	border: 1px solid var(--color-text);
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	transition: background-color var(--transition-default), color var(--transition-default), border-color var(--transition-default);
}

.button-link:hover {
	background: var(--color-text);
	color: var(--color-surface);
}

.button-link--inline {
	min-height: auto;
	padding: 0;
	border: 0;
	border-radius: 0;
	justify-content: flex-start;
	gap: 10px;
	background: transparent;
}

.button-link--inline::after {
	content: "→";
	display: inline-block;
	font-size: 1.15em;
	line-height: 1;
	transform: translateX(0);
	transition: transform var(--transition-default);
}

.button-link--inline:hover {
	background: transparent;
	color: var(--color-text);
}

.button-link--inline:hover::after {
	transform: translateX(4px);
}

.button-link--solid {
	background: var(--color-text);
	color: var(--color-surface);
	border-color: var(--color-text);
	padding-inline: 30px;
}

.button-link--solid:hover {
	background: transparent;
	color: var(--color-text);
}

.button-link:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 4px;
}

.hero-home__actions {
	display: flex;
	align-items: center;
	gap: 16px;
}

.text-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	transition: color var(--transition-default), opacity var(--transition-default);
}

.text-link::after {
	content: "\2192";
	font-size: 15px;
	line-height: 1;
	transition: transform var(--transition-default), opacity var(--transition-default);
}

.text-link:hover,
.text-link:focus-visible {
	opacity: 0.82;
}

.text-link:hover::after,
.text-link:focus-visible::after {
	transform: translateX(4px);
	opacity: 1;
}

.text-link:hover::before,
.text-link:focus-visible::before {
	display: none;
}

.text-link:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 5px;
}

.text-link--hero {
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.12em;
}

.text-link--hero::after {
	font-size: 16px;
}

.site-footer {
	padding: clamp(22px, 2.5vw, 32px) 0 10px;
	background: var(--color-footer);
	color: white;
}

.site-footer__grid {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(0, 2.2fr);
	gap: clamp(32px, 6vw, 96px);
	align-items: center;
}

.site-footer__column--brand {
	padding-right: 24px;
}

.site-footer__logo {
	width: clamp(86px, 8vw, 116px);
	height: auto;
	fill: white;
}

.site-footer__tagline,
.site-footer__contact-list,
.site-footer__links a,
.site-footer__bottom,
.site-footer__bottom-links a {
	color: var(--color-footer-text);
}

.site-footer__tagline,
.site-footer__contact-list p {
	margin: 14px 0 0;
	max-width: 18rem;
	font-size: 15px;
	line-height: 1.6;
}

.site-footer__title {
	margin: 0;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.site-footer__column--contact {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: start;
	gap: clamp(18px, 2.5vw, 36px);
	justify-self: end;
}

.site-footer__column--contact .site-footer__contact-list {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px 0;
	max-width: none;
	margin: 0;
	flex-wrap: nowrap;
}

.site-footer__column--contact .site-footer__contact-list p {
	margin: 0;
	flex: 0 0 auto;
}

.site-footer__column--contact .site-footer__contact-list p + p {
	padding-left: 24px;
	border-left: 1px solid var(--color-footer-border);
}

.site-footer__column--contact .site-footer__contact-list p:not(:last-child) {
	padding-right: 24px;
}

.site-footer__links a {
	font-size: 15px;
	line-height: 1.35;
}

.site-footer__links li + li {
	margin-top: 4px;
}

.site-footer__column--navigation .site-footer__links {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 28px;
	row-gap: 4px;
}

.site-footer__column--navigation .site-footer__links li + li {
	margin-top: 0;
}

.site-footer__bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	margin-top: 18px;
	padding-top: 12px;
	border-top: 1px solid var(--color-footer-border);
	font-size: 13px;
}

.site-footer__bottom p {
	margin: 0;
	max-width: none;
}

/* Contact page draft: a dark, editorial contact surface matching the supplied brief. */
.contact-page-template {
	background: #191919;
	color: #f4f2ee;
}

.contact-page-template .site-header {
	background: #191919;
	border-bottom-color: rgba(255, 255, 255, 0.12);
	color: #f4f2ee;
}

.contact-page-template .site-header__logo:not(.site-header__logo--company) text,
.contact-page-template .site-header__logo:not(.site-header__logo--company) path,
.contact-page-template .site-header__logo:not(.site-header__logo--company) rect,
.contact-page-template .site-header__logo:not(.site-header__logo--company) circle,
.contact-page-template .site-header__logo:not(.site-header__logo--company) polygon {
	fill: currentColor;
}

.contact-page--draft {
	background: #191919;
}

.contact-page__intro {
	padding-top: clamp(48px, 6vw, 88px);
	padding-bottom: clamp(48px, 6vw, 88px);
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.contact-page__intro-inner {
	display: grid;
	grid-template-columns: minmax(0, 0.3fr) minmax(0, 0.7fr);
	grid-template-areas:
		"heading map"
		"address map";
	column-gap: clamp(48px, 8vw, 144px);
	row-gap: clamp(24px, 3vw, 48px);
	align-items: start;
}

.contact-page__heading {
	grid-area: heading;
	max-width: 680px;
}

.contact-page__heading .eyebrow {
	color: #8bbcc8;
}

.contact-page__heading h1 {
	margin: 18px 0 0;
	color: #f4f2ee;
}

.contact-page__address {
	grid-area: address;
	max-width: 520px;
	font-size: clamp(1.12rem, 1.5vw, 1.42rem);
	line-height: 1.55;
}

.contact-page__address p {
	margin: 0;
}

.contact-page__name {
	font-weight: 700;
}

.contact-page__label {
	margin: clamp(24px, 3vw, 38px) 0 10px !important;
	color: #9b9b9b;
}

.contact-page__email {
	font-size: clamp(1rem, 1.3vw, 1.2rem);
}

.contact-page__email a {
	text-decoration: underline;
	text-underline-offset: 7px;
}

.contact-page__note {
	margin-top: 8px !important;
	color: #a4a4a4;
	font-size: 0.95em;
}

.contact-page__maps {
	margin-top: 10px !important;
	color: var(--color-text-soft);
	font-size: 0.72em;
	line-height: 1.35;
}

.contact-page__maps a,
.contact-page__contact a {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.contact-page__contacts {
	display: grid;
	gap: 12px;
}

.contact-page__contact {
	display: grid;
	gap: 2px;
}

.contact-page__contact p {
	margin: 0;
}

.contact-page__contact p + p {
	color: var(--color-text-soft);
	font-size: 0.72em;
	line-height: 1.28;
}

.contact-page__map {
	grid-area: map;
	min-height: clamp(300px, 30vw, 440px);
	display: grid;
	place-items: center;
	padding: 32px;
	border: 1px dashed rgba(255, 255, 255, 0.28);
	border-radius: 12px;
	color: #929292;
	text-align: center;
	font-size: clamp(1rem, 1.35vw, 1.25rem);
}

.contact-page__press {
	padding-top: clamp(72px, 8vw, 120px);
	padding-bottom: clamp(96px, 12vw, 180px);
}

.contact-page__press-inner {
	display: grid;
	grid-template-columns: minmax(0, 0.3fr) minmax(0, 0.7fr);
	gap: clamp(48px, 8vw, 144px);
	align-items: center;
}

.contact-page__press-copy .eyebrow {
	color: #9b9b9b;
}

.contact-page__press-copy .contact-page__email {
	margin: 20px 0 0;
}

.contact-page__press-kit {
	padding: clamp(26px, 3vw, 40px);
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 12px;
	font-size: clamp(1rem, 1.25vw, 1.18rem);
	line-height: 1.5;
}

.contact-page__press-kit p {
	margin: 0;
}

.contact-page__press-kit-title {
	font-size: clamp(1.16rem, 1.6vw, 1.45rem);
}

.contact-page__press-kit-title span {
	color: #999;
	font-size: 0.72em;
	font-weight: 400;
}

.contact-page__press-kit-link {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	text-decoration: underline;
	text-underline-offset: 4px;
}

.contact-page__press-kit-link svg {
	width: 18px;
	height: 18px;
	flex: 0 0 auto;
}

/* The contact page follows the light visual language used by the rest of the site. */
.contact-page-template {
	background: var(--color-bg);
	color: var(--color-text);
}

.contact-page-template .site-header,
.contact-page--draft {
	background: var(--color-bg);
}

.contact-page-template .site-header {
	border-bottom-color: var(--color-border);
	color: var(--color-text);
}

.contact-page__intro {
	background: var(--color-bg);
	border-bottom-color: var(--color-border);
}

.contact-page__heading .eyebrow,
.contact-page__press-copy .eyebrow {
	color: var(--color-text-soft);
}

.contact-page__heading h1 {
	color: var(--color-text);
}

/* Let the Contact heading wrap inside its own grid column at every desktop width. */
.contact-page__heading h1 {
	max-width: 100%;
}

.contact-page__heading h1 .line-box,
.contact-page__heading h1 .line {
	width: 100%;
	max-width: 100%;
	overflow: visible;
	white-space: normal;
}

.contact-page__map {
	padding: 0;
	min-height: 0;
	background: transparent;
	border: 0;
	border-radius: 0;
	overflow: visible;
}

.contact-page__map img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: clamp(300px, 30vw, 440px);
	object-fit: contain;
	mix-blend-mode: multiply;
}

@media (min-width: 901px) and (max-width: 1211px) {
	.contact-page__intro-inner {
		grid-template-columns: minmax(0, 0.42fr) minmax(0, 0.58fr);
		column-gap: clamp(28px, 5vw, 72px);
	}

	.contact-page__heading {
		min-width: 0;
		max-width: none;
	}

	.contact-page__heading h1 {
		max-width: none;
	}

	.contact-page__heading h1 .line-box,
	.contact-page__heading h1 .line {
		width: 100%;
		max-width: 100%;
		overflow: visible;
		white-space: normal;
	}
}

@media (min-width: 901px) {
	.contact-page__map {
		align-self: center;
		transform: translateY(clamp(-32px, -2vw, -12px));
	}
}

.contact-page__press {
	background: var(--color-surface-alt);
}

.contact-page__press-kit {
	border-color: var(--color-border);
	background: var(--color-surface);
}

.contact-page__press-kit-title span,
.contact-page__note {
	color: var(--color-text-soft);
}

.contact-page__press-inner {
	display: grid;
	grid-template-columns: minmax(0, 0.3fr) minmax(0, 0.7fr);
	gap: clamp(48px, 8vw, 144px);
	align-items: center;
}

.contact-page__press-kit--wide {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 32px;
	align-items: center;
	width: 100%;
	padding: clamp(24px, 3vw, 40px);
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: 16px;
}

.contact-page__press-kit-copy p,
.contact-page__press-kit-action p {
	margin: 0;
}

.contact-page__press-kit-copy > p:last-child {
	margin-top: 10px;
	color: var(--color-text-soft);
	font-size: clamp(1rem, 1.4vw, 1.3rem);
}

.contact-page__press-kit-action {
	display: grid;
	justify-items: center;
	gap: 12px;
}

.contact-page__press-kit-download {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 14px 22px;
	border: 1px solid var(--color-border);
	border-radius: 16px;
	font-size: clamp(1rem, 1.35vw, 1.2rem);
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
}

.contact-page__press-kit-download svg {
	width: 22px;
	height: 22px;
}

.contact-page__press-kit-action p {
	color: var(--color-text-soft);
	font-size: 0.95rem;
}

@media (min-width: 921px) {
	.site-footer__bottom p {
		white-space: nowrap;
	}
}

.site-footer__bottom-links {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
}

.reveal {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity 0.8s ease, transform 0.8s ease;
}

.reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.reveal--hero {
	opacity: 1;
	transform: none;
}

.hero-home__content--primary.reveal--hero {
	transform: translateY(clamp(-20px, -2.4vw, -40px));
}

.line-box {
	display: block;
	overflow: hidden;
	white-space: nowrap;
}

.line {
	display: block;
	position: relative;
	text-align: left;
	transform-origin: 0 0;
	transform: translateY(110%);
	opacity: 0;
	will-change: transform, opacity;
}

.textify-animation .line.is-visible {
	transform: translateY(0);
	opacity: 1;
	transition: transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94), opacity 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.careers-principle:nth-child(1) {
	transition-delay: 80ms;
}

.careers-principle:nth-child(2) {
	transition-delay: 220ms;
}

.careers-principle:nth-child(3) {
	transition-delay: 360ms;
}

/* Final cascade for the Home organisation diagram. */
.org-diagram__columns {
	grid-template-columns: minmax(0, 1fr) minmax(92px, 0.22fr) minmax(0, 1fr);
	grid-template-areas: "generation development-flow permanent";
	gap: 12px clamp(10px, 1.2vw, 18px);
	margin-top: 24px;
	padding-top: 28px;
	align-items: stretch;
}

.org-diagram__holding-arms {
	position: absolute;
	top: -28px;
	left: 23%;
	right: 23%;
	height: 28px;
	border-top: 1px dashed rgba(16, 16, 16, 0.28);
	animation: org-transfer-flow 1.7s linear infinite;
}

.org-diagram__holding-arms::before,
.org-diagram__holding-arms::after {
	content: "";
	position: absolute;
	top: 0;
	width: 1px;
	height: 28px;
	border-left: 1px dashed rgba(16, 16, 16, 0.28);
	animation: org-transfer-flow-vertical 1.7s linear infinite;
}

.org-diagram__holding-arms::before { left: 0; }
.org-diagram__holding-arms::after { right: 0; }

.org-diagram__family-card { min-width: 0; padding: 8px; }
.org-diagram__family-card--generation .org-diagram__branch { display: grid; align-content: start; gap: 12px; }
.org-diagram__family-card--generation .org-diagram__level { height: auto; }
.org-diagram__family-card--generation .org-diagram__level + .org-diagram__level { margin-top: 0; }
.org-diagram__family-card--permanent .org-diagram__level { height: 100%; }
.org-diagram__label { box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; min-height: 36px; white-space: nowrap; }
.org-diagram__family-card .org-card-grid--operations,
.org-diagram__family-card .org-card-grid--treasury { gap: 9px; }
.org-diagram__flow--development { grid-area: development-flow; align-self: start; margin-top: 118px; }
.org-diagram__flow--development::before { height: 1px; border-top: 0; background: repeating-linear-gradient(to right, currentColor 0 6px, transparent 6px 12px); animation: org-transfer-flow 1.7s linear infinite; }
.org-diagram__flow--treasury::before { width: 1px; border-left: 0; background: repeating-linear-gradient(to bottom, currentColor 0 6px, transparent 6px 12px); animation: org-transfer-flow-vertical 1.7s linear infinite; }

@keyframes org-transfer-flow-vertical { to { background-position: 0 12px; } }
@keyframes org-holding-arrow-pulse { 0%, 100% { opacity: 0.45; } 50% { opacity: 1; } }

.org-diagram__holding-transfer {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 64px;
	margin: 8px auto 0;
	color: var(--color-text-soft);
}

.org-diagram__holding-transfer-caption {
	margin-bottom: 3px;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.14em;
	line-height: 1.2;
	text-align: center;
	text-transform: uppercase;
}

.org-diagram__holding-transfer svg {
	display: block;
	width: min(100%, 600px);
	height: 52px;
	overflow: visible;
}

.org-diagram__holding-transfer svg path {
	fill: none;
	stroke: currentColor;
	stroke-width: 2px;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-dasharray: none;
	animation: none;
}

.org-diagram__holding-transfer svg .org-diagram__holding-transfer-arrowhead {
	stroke-dasharray: none;
	animation: none;
}

.org-diagram__columns {
	grid-template-columns: minmax(0, 0.86fr) minmax(150px, 0.4fr) minmax(0, 0.86fr);
	column-gap: clamp(20px, 2.8vw, 46px);
}

.org-diagram__family-card {
	width: calc(100% - 20px);
	justify-self: center;
}

.org-diagram__holding-arms {
	display: none;
}

.org-diagram__flow--development::before {
	height: 2px;
	background: repeating-linear-gradient(to right, currentColor 0 7px, transparent 7px 14px);
	animation: org-transfer-flow 2.2s linear infinite;
}

.org-diagram__flow--development i {
	right: -19px;
	width: 10px;
	height: 10px;
	border-width: 2px;
}

.org-diagram__flow--treasury {
	left: calc(23% - 22px);
	top: 0;
	bottom: 8px;
	height: auto;
	transform: translateX(-100%);
}

.org-diagram__flow--treasury::before {
	width: 2px;
	top: 0;
	bottom: 14px;
	background: repeating-linear-gradient(to bottom, currentColor 0 7px, transparent 7px 14px);
	animation: org-transfer-flow-vertical 2.2s linear infinite;
}

.org-diagram__flow--treasury i {
	width: 10px;
	height: 10px;
	border-width: 2px;
}

/* Final spacing pass for the Home organisation diagram. */
.org-diagram__holding-transfer {
	min-height: 72px;
	margin-top: 12px;
	margin-bottom: 12px;
}

.org-diagram__columns {
	grid-template-columns: minmax(0, 0.92fr) minmax(128px, 0.32fr) minmax(0, 0.92fr);
	grid-template-rows: auto auto;
	grid-template-areas:
		"generation development-flow permanent"
		"investment treasury-flow permanent";
	column-gap: clamp(18px, 2.2vw, 34px);
	padding-top: 34px;
	padding-bottom: 18px;
}

.org-diagram__family-card {
	width: calc(100% - 8px);
	padding: 12px 8px 16px;
}

.org-diagram__family-card--generation { grid-area: generation; }
.org-diagram__family-card--investment { grid-area: investment; }
.org-diagram__family-card--permanent { grid-area: permanent; grid-row: 1 / span 2; }

.org-diagram__family-card--generation .org-diagram__branch {
	gap: 16px;
}

/* Treasury flow: keep the SSG-to-Holding connector in the central gutter,
 * outside the cards and visible as one continuous upward route. */
.org-diagram__flow--treasury {
	left: calc(50% - 54px);
	top: 20px;
	right: auto;
	bottom: 12px;
	width: 82px;
	height: auto;
	transform: none;
	align-items: flex-start;
	justify-content: flex-end;
}

.org-diagram__flow--treasury::before {
	left: 50%;
	top: 0;
	bottom: 18px;
}

.org-diagram__flow--treasury i {
	left: calc(50% - 5px);
	top: -1px;
}

.org-diagram__flow--treasury span {
	width: 100%;
	font-size: 8px;
	line-height: 1.2;
	text-align: center;
}

/* Home diagram alignment from the approved composition: labels mask the
 * animated strokes and the treasury route stays outside both card groups. */
.org-diagram__holding-transfer-caption,
.org-diagram__flow--development span,
.org-diagram__flow--treasury span {
	position: relative;
	z-index: 3;
	background: var(--color-surface);
	box-decoration-break: clone;
	-webkit-box-decoration-break: clone;
}

.org-diagram__holding-transfer-caption {
	padding: 3px 12px;
}

.org-diagram__flow--development {
	width: 100%;
	min-height: 112px;
	margin-top: 104px;
}

.org-diagram__flow--development span {
	max-width: 13ch;
	padding: 6px 10px;
	font-size: 9px;
}

.org-diagram__flow--development::before {
	left: 0;
	right: 0;
	top: 50%;
	z-index: 1;
}

.org-diagram__flow--development i {
	z-index: 2;
	right: -5px;
	top: calc(50% - 6px);
	background: var(--color-surface);
}

.org-diagram__flow--treasury {
	left: calc(50% - 70px);
	top: 16px;
	right: auto;
	bottom: 18px;
	width: 140px;
	height: auto;
	transform: none;
	display: block;
	color: var(--color-text-soft);
}

.org-diagram__flow--treasury span {
	position: absolute;
	top: 0;
	left: 50%;
	width: max-content;
	max-width: 28ch;
	padding: 6px 12px;
	transform: translateX(-50%);
	font-size: 10px;
	line-height: 1.25;
	text-align: center;
}

.org-diagram__flow--treasury::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 48px;
	bottom: 0;
	width: 2px;
	height: auto;
	background: repeating-linear-gradient(to bottom, currentColor 0 7px, transparent 7px 14px);
	animation: org-transfer-flow-vertical 2.2s linear infinite;
}

.org-diagram__flow--treasury::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 50%;
	height: 2px;
	background: repeating-linear-gradient(to right, currentColor 0 7px, transparent 7px 14px);
	animation: org-transfer-flow 2.2s linear infinite;
}

.org-diagram__flow--treasury i {
	position: absolute;
	left: calc(50% - 6px);
	top: 42px;
	z-index: 2;
	width: 10px;
	height: 10px;
	background: var(--color-surface);
	border-top: 0;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	border-left: 0;
	transform: rotate(225deg);
}

/* Final connector calibration: match the approved top stroke exactly. */
.org-diagram__flow--development span {
	max-width: 20ch;
	width: 20ch;
	padding: 6px 10px;
	line-height: 1.18;
}

.org-diagram__flow--treasury {
	color: var(--color-text-soft);
	opacity: 1;
	top: -18px;
	bottom: -10px;
}

.org-diagram__flow--treasury span {
	top: 0;
	max-width: 28ch;
	white-space: nowrap;
}

.org-diagram__flow--treasury::before {
	top: 48px;
	bottom: 0;
	width: 2px;
	background: repeating-linear-gradient(to bottom, currentColor 0 7px, transparent 7px 14px);
	animation: org-transfer-flow-vertical 2.2s linear infinite;
}

.org-diagram__flow--treasury::after {
	background: repeating-linear-gradient(to right, currentColor 0 7px, transparent 7px 14px);
	animation: org-transfer-flow 2.2s linear infinite;
}

.org-diagram__flow--treasury i {
	top: 42px;
}

/* Rounded SSG-to-treasury elbow, aligned to the Investment Platform card. */
.org-diagram__flow--treasury {
	left: calc(50% - 100px);
	width: 100px;
	top: -18px;
	bottom: auto;
	height: 500px;
	z-index: 4;
}

.org-diagram__flow--treasury::before,
.org-diagram__flow--treasury::after,
.org-diagram__flow--treasury i {
	display: none;
}

.org-diagram__treasury-route {
	position: absolute;
	left: 0;
	right: 0;
	top: 40px;
	bottom: auto;
	width: 100%;
	height: 500px;
	overflow: visible;
}

.org-diagram__treasury-route path {
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	vector-effect: non-scaling-stroke;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-dasharray: 7 7;
	animation: org-treasury-route-flow 2.2s linear infinite;
}

.org-diagram__treasury-route-arrowhead {
	stroke-dasharray: none !important;
	animation: none !important;
}

.org-diagram__flow--development,
.org-diagram__flow--treasury {
	color: #8d8d8d;
}

@keyframes org-treasury-route-flow {
	to { stroke-dashoffset: -28; }
}

/* Bring both platform cards closer to the Holding connector. */
.org-diagram__holding-transfer {
	min-height: 56px;
	margin-top: 8px;
	margin-bottom: 0;
}

.org-diagram__columns {
	padding-top: 8px;
}

/* Final three-column Home diagram. The middle column owns every connector. */
.org-diagram__columns {
	grid-template-columns: minmax(0, 1fr) minmax(150px, 0.34fr) minmax(0, 1fr);
	grid-template-rows: auto auto;
	grid-template-areas:
		"generation flow-column permanent"
		"investment flow-column permanent";
	column-gap: clamp(18px, 2.4vw, 38px);
	row-gap: 16px;
	align-items: stretch;
}

.org-diagram__family-card--generation { grid-area: generation; }
.org-diagram__family-card--investment { grid-area: investment; }
.org-diagram__family-card--permanent {
	grid-area: permanent;
	grid-row: 1 / span 2;
}

.org-diagram__flow-column {
	grid-area: flow-column;
	grid-row: 1 / span 2;
	position: relative;
	display: grid;
	grid-template-rows: subgrid;
	min-width: 0;
	min-height: 100%;
}

.org-diagram__flow--development {
	grid-row: 1;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	min-height: 100px;
	margin: 0;
	color: #8d8d8d;
}

.org-diagram__flow--development::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 50%;
	height: 2px;
	z-index: 1;
	background: repeating-linear-gradient(to right, currentColor 0 7px, transparent 7px 14px);
	animation: org-transfer-flow 2.2s linear infinite;
}

.org-diagram__flow--development span {
	position: relative;
	z-index: 2;
	width: 20ch;
	max-width: 20ch;
	padding: 6px 10px;
	background: var(--color-surface);
	font-size: 9px;
	line-height: 1.18;
	text-align: center;
}

.org-diagram__flow--development i {
	position: absolute;
	right: -5px;
	top: calc(50% - 6px);
	z-index: 3;
	width: 10px;
	height: 10px;
	background: var(--color-surface);
	border-top: 0;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	border-left: 0;
	transform: rotate(-45deg);
}

.org-diagram__flow--treasury {
	grid-row: 1 / span 2;
	position: absolute;
	inset: 0;
	display: block;
	width: auto;
	height: auto;
	margin: 0;
	color: #8d8d8d;
	z-index: 4;
}

.org-diagram__flow--treasury span {
	position: absolute;
	top: -28px;
	left: 50%;
	width: max-content;
	padding: 6px 12px;
	background: var(--color-surface);
	font-size: 10px;
	line-height: 1.2;
	text-align: center;
	transform: translateX(-50%);
}

.org-diagram__treasury-arrow {
	position: absolute;
	left: calc(50% - 6px);
	top: 20px;
	display: block;
	width: 10px;
	height: 10px;
	border-top: 0;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	border-left: 0;
	transform: rotate(225deg);
}

.org-diagram__treasury-line {
	position: absolute;
	left: calc(50% - 1px);
	display: block;
	width: 2px;
	margin: 0;
	background: repeating-linear-gradient(to bottom, currentColor 0 7px, transparent 7px 14px);
	animation: org-transfer-flow-vertical 2.2s linear infinite;
}

.org-diagram__treasury-line--top {
	top: 42px;
	bottom: 58%;
}

.org-diagram__treasury-line--bottom {
	top: 42%;
	bottom: 58px;
}

.org-diagram__treasury-elbow {
	position: absolute;
	left: 0;
	right: 50%;
	bottom: 58px;
	display: block;
	height: 2px;
	background: repeating-linear-gradient(to right, currentColor 0 7px, transparent 7px 14px);
	animation: org-transfer-flow 2.2s linear infinite;
}

/* New middle-column connectors must override the legacy hidden-i rule. */
.org-diagram__flow--treasury .org-diagram__treasury-arrow,
.org-diagram__flow--treasury .org-diagram__treasury-line,
.org-diagram__flow--treasury .org-diagram__treasury-elbow {
	display: block !important;
	position: absolute;
}

.org-diagram__flow--treasury span {
	left: 50%;
	transform: translateX(-50%);
	text-align: center;
}

.org-diagram__treasury-arrow {
	left: calc(50% - 6px);
	top: 20px;
	width: 10px;
	height: 10px;
	background: var(--color-surface);
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(225deg);
}

.org-diagram__treasury-line {
	left: calc(50% - 1px);
	width: 2px;
	margin: 0;
	background: repeating-linear-gradient(to bottom, currentColor 0 7px, transparent 7px 14px);
	animation: org-transfer-flow-vertical 2.2s linear infinite;
}

.org-diagram__treasury-line--top {
	top: 42px;
	bottom: 58%;
}

.org-diagram__treasury-line--bottom {
	top: 42%;
	bottom: 58px;
}

.org-diagram__treasury-elbow {
	left: 0;
	right: 50%;
	bottom: 58px;
	height: 2px;
	background: repeating-linear-gradient(to right, currentColor 0 7px, transparent 7px 14px);
	animation: org-transfer-flow 2.2s linear infinite;
}

/* Strategic Committee usa la stessa griglia e le stesse card del Board of Directors. */
.people-page .people-card-grid--committee {
	grid-template-columns: repeat(5, minmax(0, 1fr));
}

/* Home diagram: schema definitivo a due contenitori, freccia profitti e treasury separata. */
.org-diagram__holding-transfer {
	display: flex;
	min-height: 48px;
	margin-top: 8px;
	margin-bottom: 0;
}

.org-diagram__holding-transfer-caption {
	display: none;
}

.org-diagram__columns {
	position: relative;
	display: grid;
	--org-column-gap: clamp(16px, 2.2vw, 34px);
	grid-template-columns: minmax(0, 1fr) minmax(150px, 0.38fr) minmax(0, 1fr);
	grid-template-rows: auto auto;
	grid-template-areas:
		"generation flow permanent"
		"investment flow permanent";
	gap: 12px var(--org-column-gap);
	align-items: stretch;
	margin-top: 0;
	padding-top: 8px;
}

.org-diagram__columns::after {
	display: none;
}

.org-diagram__family-card--generation {
	grid-area: generation;
	width: calc(100% - 30px);
	justify-self: center;
	padding: 14px 18px 16px;
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: 28px;
}

.org-diagram__family-card--investment {
	grid-area: investment;
	position: relative;
	width: calc(100% - 30px);
	justify-self: center;
	padding: 14px 18px 16px;
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: 28px;
}

.org-diagram__family-card--permanent {
	grid-area: permanent;
	width: calc(100% - 30px);
	justify-self: center;
	padding: 14px 18px 16px;
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: 28px;
}

.org-diagram__family-card,
.org-diagram__flow-column {
	position: relative;
	z-index: 1;
}

.org-diagram__flow-column {
	grid-area: flow;
	grid-row: 1 / span 2;
	position: relative;
	display: block;
	min-width: 0;
	overflow: visible;
}

.org-diagram__flow--development {
	position: absolute;
	left: 0;
	right: 0;
	top: clamp(120px, 30%, 190px);
	height: 42px;
	margin: 0;
	transform: translateY(-50%);
	color: #8d8d8d;
}

.org-diagram__flow--development::before {
	display: none;
}

.org-diagram__flow-line {
	position: absolute;
	left: -32px;
	right: -32px;
	top: calc(50% - 1px);
	width: calc(100% + 64px);
	height: 2px;
	overflow: visible;
}

.org-diagram__flow-line line {
	fill: none;
	stroke: #8d8d8d;
	stroke-width: 2;
	stroke-linecap: butt;
	stroke-dasharray: 7 8;
	animation: org-transfer-flow 2.2s linear infinite;
}

.org-diagram__flow--development span {
	position: absolute;
	left: 50%;
	top: 50%;
	z-index: 2;
	width: max-content;
	max-width: 20ch;
	padding: 5px 4px;
	background: var(--color-surface);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.14em;
	line-height: 1.2;
	text-align: center;
	text-transform: uppercase;
	transform: translate(-50%, -50%);
}

.org-diagram__flow-break {
	display: none;
}

.org-diagram__flow--development i {
	position: absolute;
	right: -33px;
	top: calc(50% - 6px);
	z-index: 3;
	width: 10px;
	height: 10px;
	background: var(--color-surface);
	border-top: 0;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(-45deg);
}

.org-diagram__treasury-flow {
	position: absolute;
	left: 50%;
	bottom: -52px;
	z-index: 3;
	display: flex;
	align-items: end;
	justify-content: center;
	width: 120px;
	height: 52px;
	background: transparent;
	transform: translateX(-50%);
}

.org-diagram__treasury-flow i {
	position: absolute;
	left: calc(50% - 5px);
	top: 20px;
	z-index: 4;
	width: 10px;
	height: 10px;
	background: transparent;
	border-right: 2px solid #8d8d8d;
	border-bottom: 2px solid #8d8d8d;
	transform: rotate(45deg);
}

.org-diagram__treasury-flow span {
	position: absolute;
	left: 50%;
	bottom: 0;
	width: max-content;
	color: #8d8d8d;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	transform: translateX(-50%);
}

.org-card {
	padding: 8px 14px 9px;
	min-height: 68px;
}

.org-card:not(.org-card--primary) .org-card__logo {
	margin-top: 6px;
}

.org-card__logo-svg {
	height: 24px;
}

.org-diagram__treasury-flow::before {
	display: none;
}

.org-diagram__family-card--investment .org-diagram__branch {
	height: auto;
}

.org-diagram__family-card--generation .org-diagram__branch {
	gap: 12px;
}

.org-diagram__family-card--generation .org-diagram__level + .org-diagram__level {
	margin-top: 0;
}

/* Final SVG calibration: pixel-length dashes, unaffected by horizontal scaling. */
.org-diagram__flow-line line {
	stroke-width: 2px;
	vector-effect: non-scaling-stroke;
	stroke-dasharray: 5px 6px;
	animation: org-transfer-flow-short 2.2s linear infinite;
}

.org-diagram__flow--development span {
	padding: 2px 3px;
	width: max-content;
	max-width: none;
	white-space: nowrap;
}

@media (min-width: 1041px) and (max-height: 820px) {
	.org-diagram__flow--development span {
		left: 50% !important;
		width: max-content !important;
		max-width: calc(100% - 8px) !important;
		padding: 0 !important;
		white-space: normal !important;
		transform: translate(-50%, -50%) !important;
	}
}

.org-diagram__treasury-flow i {
	animation: treasury-angle-blink 2.4s ease-in-out infinite;
}

@keyframes treasury-angle-blink {
	0%, 100% { opacity: 0.55; }
	50% { opacity: 1; }
}

/* Compact responsive pass for the Home organisation diagram. */
@keyframes org-transfer-flow-short {
	to { stroke-dashoffset: -11px; }
}
