/* =========================================================
 * W3-G5 · Solutions family page (0.4.9) — first user: Medium Voltage Distribution & Protection
 * Loaded on demand when an `adepa-sol-fam-*` group renders (inc/solutions-family.php) and always in the editor.
 * Additive: new `adepa-sol-fam-*` selectors plus the modifiers `adepa-sol-statements--4/--5` and
 * `adepa-sol-cta__support`. solutions.css and every global style are unchanged; existing tokens only.
 * Geometry: rectangular, hairlines and 2px ink rules, no radius (except the existing round node motif),
 * no shadows, no animation (the only motion is the existing link-arrow nudge, off under reduced motion).
 * Breakpoints (existing): <720 mobile, 720–1023 tablet, ≥1024 desktop; 768 for statement rows.
 * Band rhythm: white M1 · white M2 · grey M3 · white M4 · grey M5 · white M6 · white M7 · grey M8 · charcoal M9.
 * 0.4.11 (W3-G5 R2 final correction): M2 rows with contained photographs, M4 three-part ruled rows, body-text
 * consistency (M2/M4/M5 descriptive text on the body token, line-height 1.6), split heads top-aligned on this page,
 * casing helper for M9 "(BOQs)". All selectors stay namespaced (adepa-sol-fam-* or scoped under .adepa-sol-fam-section).
 * 0.4.12 (W3-G5 R3 Owner-review refinements): M6 manufacturer logo row (official artwork, original colours and
 * proportions; optical balancing by per-logo height; no filter, no hover, no link). Namespaced adepa-sol-fam-network__logo*.
 * 0.4.13 (W3-G6 Transformers): modifiers only, for content the MV page does not have: M2 rows with a "Configuration
 * options" list (adepa-sol-fam-scope__row--options, adepa-sol-fam-opts*), M4 column-head row and per-type lines in the
 * Typical cell (adepa-sol-fam-spec__row--head, adepa-sol-fam-spec__case), M6 three-logo row with fixed per-breakpoint heights
 * (adepa-sol-fam-network__logos--three, __logo--hitachi-energy/--maksan/--legrand). MV content uses none of them.
 * 0.4.16 (W3-G7 Compact / Package Substations): modifiers only, appended at the end: M2 LV build note inside an options row
 * (adepa-sol-fam-scope__buildnote), M2 integration block (adepa-sol-fam-integration*), M5 supervision note
 * (adepa-sol-fam-supply__supervision). MV and Transformers content use none of them.
 * 0.4.17 (W3-G7 R3, directive t44u): modifiers only, appended at the end: M2 metal-kiosk block inside the integration frame
 * (adepa-sol-fam-integration--kiosk, adepa-sol-fam-kiosk, adepa-sol-fam-scope__row--kiosk; CSS-only plain-row fallback switch),
 * M4 container block (adepa-sol-fam-spec__container), M5 headline lines (adepa-sol-fam-supply__title / __line), M6 roles list
 * and seven-logo grid (adepa-sol-fam-network__roles, adepa-sol-fam-network__logos--seven). MV and Transformers
 * content use none of them.
 * 0.4.19 (W3-G8 LV): one modifier appended at the end (adepa-sol-fam-scope__list--mixed). Other pages do not use it.
 * 0.4.20: seventh-logo height rules removed; six-logo modifier appended at the end (adepa-sol-fam-network__logos--six).
 * ========================================================= */

.adepa-sol-fam-section { margin-block: 0 !important; }

:is(.adepa-sol-fam-intro__inner, .adepa-sol-fam-hero, .adepa-sol-fam-hero__head, .adepa-sol-fam-hero__copy,
    .adepa-sol-fam-scope__inner, .adepa-sol-fam-scope__list, .adepa-sol-fam-scope__row,
    .adepa-sol-fam-apps__inner, .adepa-sol-fam-spec__inner, .adepa-sol-fam-spec__grid, .adepa-sol-fam-spec__head, .adepa-sol-fam-spec__body,
    .adepa-sol-fam-spec__rows, .adepa-sol-fam-spec__row,
    .adepa-sol-fam-supply__inner, .adepa-sol-fam-interfaces, .adepa-sol-fam-interfaces__row, .adepa-sol-fam-supply__close,
    .adepa-sol-fam-network__inner, .adepa-sol-fam-process__inner,
    .adepa-sol-fam-related__inner, .adepa-sol-fam-related__list, .adepa-sol-fam-related__item) > * { margin: 0 !important; }

/* Section inners: vertical stack with one gap token */
:is(.adepa-sol-fam-scope__inner, .adepa-sol-fam-apps__inner, .adepa-sol-fam-supply__inner,
    .adepa-sol-fam-process__inner, .adepa-sol-fam-related__inner) {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--60);
}
:is(.adepa-sol-fam-scope, .adepa-sol-fam-apps, .adepa-sol-fam-spec, .adepa-sol-fam-supply, .adepa-sol-fam-process, .adepa-sol-fam-related) {
	padding-block: var(--wp--preset--spacing--70);
}
/* Reused 5/7 heads: the statement grids sit in the inner stack, so their own top margin is not needed */
.adepa-sol-fam-section .adepa-sol-statements { margin-top: 0 !important; }
/* 0.4.11 Architect QA: on family pages the split heads (M2, M3, M5, M6) align to the TOP of the right-hand column.
   The shared .adepa-sol-integrated__grid (solutions.css, Solutions overview) keeps align-items: end; scoped override only. */
.adepa-sol-fam-section .adepa-sol-integrated__grid { align-items: start; }

/* ---------- M1 · Introduction + hero photograph ---------- */
.adepa-sol-fam-intro {
	padding-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--70);
	border-bottom: 1px solid var(--wp--preset--color--grey-200);
}
.adepa-sol-fam-intro__inner {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--60);
}
.adepa-sol-fam-hero {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	grid-template-areas: "head" "media" "copy";
	gap: var(--wp--preset--spacing--50);
}
.adepa-sol-fam-hero__head {
	grid-area: head;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--wp--preset--spacing--30);
}
.adepa-sol-fam-hero__title { max-width: 14ch; overflow-wrap: break-word; }
.adepa-sol-fam-hero__copy {
	grid-area: copy;
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--30);
	max-width: var(--wp--custom--layout--reading);
}
.adepa-sol-fam-hero__text { color: var(--wp--preset--color--grey-700); }

/* Technical frame (existing variation: border, white, red corner ticks) moved onto the image box so the
   caption sits beneath the frame. The figure becomes a one-column grid: row 1 = image + both ticks
   (absolutely positioned inside the row-1 grid area), row 2 = caption. */
.wp-block-image.is-style-technical-frame.adepa-sol-fam-hero__media {
	grid-area: media;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-content: start;
	margin: 0 !important;
	padding: 0;
	border: 0;
	background: none;
}
.adepa-sol-fam-hero__media img {
	grid-row: 1;
	grid-column: 1;
	display: block;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;            /* mobile <720 and desktop ≥1024 */
	padding: 3%;                    /* cut-out edges never touch the frame */
	object-fit: contain;            /* whole lineup visible; never cropped */
	object-position: 50% 50%;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--grey-300);
	border-radius: 0;
}
.wp-block-image.is-style-technical-frame.adepa-sol-fam-hero__media::before,
.wp-block-image.is-style-technical-frame.adepa-sol-fam-hero__media::after { grid-row: 1 / 2; grid-column: 1 / 2; }
.wp-block-image.is-style-technical-frame.adepa-sol-fam-hero__media::before { top: 0; left: 0; }
.wp-block-image.is-style-technical-frame.adepa-sol-fam-hero__media::after,
.wp-block-image.is-style-technical-frame.adepa-sol-fam-hero__media:has(figcaption)::after { top: auto; right: 0; bottom: 0; }
.wp-block-image.adepa-sol-fam-hero__media figcaption {
	grid-row: 2;
	margin: var(--wp--preset--spacing--20) 0 0;
	padding: 0;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.5;
	text-align: left;
	color: var(--wp--preset--color--grey-500);
}
@media (min-width: 720px) and (max-width: 1023.98px) {
	.adepa-sol-fam-hero__media img { aspect-ratio: 3 / 2; }   /* tablet: keeps the copy nearer the fold */
}
/* 0.4.11 · photographic hero (modifier set by the page content for a full-frame photo, e.g. the Owner-selected ABB
   switchroom, 1280x720): the frame follows the photo's own aspect from its width/height attributes, so the whole
   composition shows without letterbox bands or cropping. Same border, 3 % white inset and corner ticks. */
.adepa-sol-fam-hero__media.adepa-sol-fam-hero__media--photo img { aspect-ratio: auto; }
@media (min-width: 1024px) {
	.adepa-sol-fam-hero {
		grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
		grid-template-rows: auto 1fr;
		grid-template-areas: "head media" "copy media";
		column-gap: var(--wp--preset--spacing--70);
		row-gap: var(--wp--preset--spacing--40);
		align-items: start;
	}
	.adepa-sol-fam-hero__copy { max-width: 60ch; }
}

/* ---------- M2 · Equipment scope (ruled definition rows; never a card grid) ---------- */
.adepa-sol-fam-scope__note { color: var(--wp--preset--color--grey-700); }
.adepa-sol-fam-scope__group {
	padding-top: var(--wp--preset--spacing--50);
	padding-bottom: var(--wp--preset--spacing--20);
	color: var(--wp--preset--color--grey-500);
}
.adepa-sol-fam-scope__list > .adepa-sol-fam-scope__group:first-child { padding-top: 0; }
.adepa-sol-fam-scope__row {
	display: grid;
	grid-template-columns: 2.75rem minmax(0, 1fr);
	column-gap: var(--wp--preset--spacing--20);
	row-gap: var(--wp--preset--spacing--10);
	align-items: start;
	padding-block: var(--wp--preset--spacing--30);
	border-bottom: 1px solid var(--wp--preset--color--grey-200);
}
.adepa-sol-fam-scope__row > * { grid-column: 2; }
.adepa-sol-fam-scope__row > .adepa-sol-family__num { grid-column: 1 !important; grid-row: 1 / span 2; }
.adepa-sol-fam-scope__name {
	font-size: var(--wp--preset--font-size--heading-4);
	line-height: 1.25;
	letter-spacing: var(--wp--custom--letter-spacing--snug);
	overflow-wrap: break-word;
}
.adepa-sol-fam-scope__desc {
	font-size: var(--wp--preset--font-size--body);
	line-height: 1.6;
	color: var(--wp--preset--color--grey-700);
	max-width: var(--wp--custom--layout--reading);
}
.adepa-sol-fam-scope__note,
.adepa-sol-fam-scope__intro { font-size: var(--wp--preset--font-size--body); line-height: 1.6; }
@media (min-width: 720px) {
	.adepa-sol-fam-scope__row {
		grid-template-columns: 2.75rem minmax(0, 36%) minmax(0, 1fr);
		column-gap: var(--wp--preset--spacing--40);
	}
	.adepa-sol-fam-scope__row > .adepa-sol-family__num { grid-row: 1; }
	.adepa-sol-fam-scope__name { grid-column: 2; grid-row: 1; }
	.adepa-sol-fam-scope__desc { grid-column: 3; grid-row: 1; }
}
@media (min-width: 1024px) {
	.adepa-sol-fam-scope__row { grid-template-columns: 2.75rem minmax(0, 4fr) minmax(0, 7fr); }
}

/* 0.4.11 · M2 rows with a contained photograph beside the title + description (editorial, not a product card).
   Frame: consistent 3:2, white, 1px grey-300 hairline, 3 % inset, object-fit: contain (whole product visible, never
   cropped or distorted), no radius, no shadow. Caption: small, grey-500, below the frame.
   <720: photo under the description in the text column, frame capped at 360px (the 720px relay source stays ≤ 1x at 2x DPR).
   720–1023: numeral | title + description | photo (32 %). ≥1024: numeral | title (4fr) | description (5fr) | photo (3fr, ≤ 300px). */
.adepa-sol-fam-scope__row--media { padding-block: var(--wp--preset--spacing--40); }
.wp-block-image.adepa-sol-fam-scope__media {
	grid-column: 2;
	width: 100%;
	max-width: 360px;
	margin: var(--wp--preset--spacing--20) 0 0 !important;
}
.adepa-sol-fam-scope__media img {
	display: block;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	padding: 3%;
	object-fit: contain;
	object-position: 50% 50%;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--grey-300);
	border-radius: 0;
	box-shadow: none;
}
.wp-block-image.adepa-sol-fam-scope__media figcaption {
	margin: var(--wp--preset--spacing--20) 0 0;
	padding: 0;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.5;
	text-align: left;
	color: var(--wp--preset--color--grey-500);
}
@media (min-width: 720px) {
	.adepa-sol-fam-scope__row--media {
		grid-template-columns: 2.75rem minmax(0, 1fr) minmax(0, 32%);
		grid-template-rows: auto 1fr;
		row-gap: var(--wp--preset--spacing--20);
	}
	.adepa-sol-fam-scope__row--media > .adepa-sol-family__num { grid-row: 1; }
	.adepa-sol-fam-scope__row--media > .adepa-sol-fam-scope__name { grid-column: 2; grid-row: 1; }
	.adepa-sol-fam-scope__row--media > .adepa-sol-fam-scope__desc { grid-column: 2; grid-row: 2; }
	.adepa-sol-fam-scope__row--media > .wp-block-image.adepa-sol-fam-scope__media { grid-column: 3; grid-row: 1 / span 2; max-width: none; margin: 0 !important; }
}
@media (min-width: 1024px) {
	.adepa-sol-fam-scope__row--media {
		grid-template-columns: 2.75rem minmax(0, 4fr) minmax(0, 5fr) minmax(0, 3fr);
		grid-template-rows: auto;
	}
	.adepa-sol-fam-scope__row--media > .adepa-sol-fam-scope__desc { grid-column: 3; grid-row: 1; }
	.adepa-sol-fam-scope__row--media > .wp-block-image.adepa-sol-fam-scope__media { grid-column: 4; grid-row: 1; max-width: 300px; justify-self: end; }
}

/* 0.4.13 · M2 rows with a "Configuration options" list (Transformers; spec R2 §7). Same contained 3:2 photo frame and type as
   the MV media rows. <1024: photo first (above the numeral and title, frame <= 360px), then title, description, options.
   >=1024: numeral | title (4fr) | description (5fr) | photo (3fr, <= 300px, spans both rows); options under title + description.
   Options: label (uppercase label size, weight 500), then one "label: value" pair per line between grey-200 hairlines;
   from 720px the pair is a two-column grid (label | value). Body token, line-height 1.6. */
.adepa-sol-fam-scope__row--media.adepa-sol-fam-scope__row--options { row-gap: var(--wp--preset--spacing--20); }
.adepa-sol-fam-opts { display: flex; flex-direction: column; gap: var(--wp--preset--spacing--20); padding-top: var(--wp--preset--spacing--20); }
.adepa-sol-fam-opts > * { margin: 0 !important; }
.adepa-sol-fam-opts__label {
	font-size: var(--wp--preset--font-size--label);
	font-weight: 500;
	line-height: 1.3;
	letter-spacing: var(--wp--custom--letter-spacing--label);
	text-transform: uppercase;
	color: var(--wp--preset--color--grey-700);
}
.adepa-sol-fam-opts__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--wp--preset--color--grey-200); }
.adepa-sol-fam-opts__list > li {
	margin: 0;
	padding-block: var(--wp--preset--spacing--20);
	border-bottom: 1px solid var(--wp--preset--color--grey-200);
	font-size: var(--wp--preset--font-size--body);
	line-height: 1.6;
	color: var(--wp--preset--color--grey-700);
	overflow-wrap: break-word;
}
.adepa-sol-fam-opts__list strong { font-weight: 500; color: var(--wp--preset--color--ink); }
@media (min-width: 720px) {
	.adepa-sol-fam-opts__list > li { display: grid; grid-template-columns: minmax(0, 12rem) minmax(0, 1fr); column-gap: var(--wp--preset--spacing--30); }
}
@media (max-width: 1023.98px) {
	.adepa-sol-fam-scope__row--media.adepa-sol-fam-scope__row--options { grid-template-columns: 2.75rem minmax(0, 1fr); grid-template-rows: none; }
	.adepa-sol-fam-scope__row--options > .wp-block-image.adepa-sol-fam-scope__media { grid-column: 1 / -1; grid-row: 1; max-width: 360px; margin: 0 0 var(--wp--preset--spacing--20) !important; }
	.adepa-sol-fam-scope__row--options > .adepa-sol-family__num { grid-column: 1 !important; grid-row: 2; }
	.adepa-sol-fam-scope__row--options > .adepa-sol-fam-scope__name { grid-column: 2; grid-row: 2; }
	.adepa-sol-fam-scope__row--options > .adepa-sol-fam-scope__desc { grid-column: 2; grid-row: 3; }
	.adepa-sol-fam-scope__row--options > .adepa-sol-fam-opts { grid-column: 2; grid-row: 4; }
}
@media (min-width: 1024px) {
	.adepa-sol-fam-scope__row--media.adepa-sol-fam-scope__row--options { grid-template-rows: auto auto; column-gap: var(--wp--preset--spacing--40); }
	.adepa-sol-fam-scope__row--options > .adepa-sol-family__num { grid-row: 1; }
	.adepa-sol-fam-scope__row--options > .adepa-sol-fam-scope__name { grid-column: 2; grid-row: 1; }
	.adepa-sol-fam-scope__row--options > .adepa-sol-fam-scope__desc { grid-column: 3; grid-row: 1; }
	.adepa-sol-fam-scope__row--options > .adepa-sol-fam-opts { grid-column: 2 / 4; grid-row: 2; }
	.adepa-sol-fam-scope__row--options > .wp-block-image.adepa-sol-fam-scope__media { grid-column: 4; grid-row: 1 / span 2; }
}

/* ---------- M3 / M7 · statement-row modifiers (existing .adepa-sol-statement) ---------- */
@media (min-width: 768px) {
	.adepa-sol-statements.adepa-sol-statements--4,
	.adepa-sol-statements.adepa-sol-statements--5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
	.adepa-sol-statements.adepa-sol-statements--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: var(--wp--preset--spacing--50); }
	.adepa-sol-statements.adepa-sol-statements--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); column-gap: var(--wp--preset--spacing--40); }
}

/* ---------- M4 · Specification considerations ---------- */
.adepa-sol-fam-spec__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--wp--preset--spacing--50);
}
.adepa-sol-fam-spec__head {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--wp--preset--spacing--30);
}
.adepa-sol-fam-spec__head .adepa-sol-integrated__title { max-width: 16ch; overflow-wrap: break-word; }
.adepa-sol-fam-spec__intro { color: var(--wp--preset--color--grey-700); max-width: var(--wp--custom--layout--reading); }
.adepa-sol-fam-spec__body {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--40);
	max-width: var(--wp--custom--layout--reading);
}
.adepa-sol-fam-spec__list > li { color: var(--wp--preset--color--grey-700); }
.adepa-sol-fam-spec__list strong { font-weight: 600; color: var(--wp--preset--color--ink); }
@media (min-width: 1024px) {
	.adepa-sol-fam-spec__grid {
		grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
		column-gap: var(--wp--preset--spacing--70);
		align-items: start;
	}
	.adepa-sol-fam-spec__body { max-width: none; }
}

/* 0.4.11 · M4 three-part rows (Parameter | meaning | typical). Head stacked above; rows full container width.
   Ruled: 2px ink rule above the set, 1px grey-300 between rows; no cards. Meaning and typical use the page body token
   (font-size body, line-height 1.6), the same as M1/M2 body; the parameter is an H3 at the M2 item-title size.
   <720 stacked; 720–1023 parameter above, meaning | typical; ≥1024 three columns 3fr | 4fr | 5fr. */
.adepa-sol-fam-spec__grid.adepa-sol-fam-spec__grid--rows { grid-template-columns: minmax(0, 1fr); row-gap: var(--wp--preset--spacing--60); }
.adepa-sol-fam-spec__grid--rows .adepa-sol-fam-spec__body { max-width: none; }
.adepa-sol-fam-spec__rows { border-top: 2px solid var(--wp--preset--color--ink); }
.adepa-sol-fam-spec__row {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	row-gap: var(--wp--preset--spacing--20);
	column-gap: var(--wp--preset--spacing--50);
	align-items: start;
	padding-block: var(--wp--preset--spacing--40);
	border-bottom: 1px solid var(--wp--preset--color--grey-300);
}
.adepa-sol-fam-spec__param {
	font-size: var(--wp--preset--font-size--heading-4);
	line-height: 1.25;
	letter-spacing: var(--wp--custom--letter-spacing--snug);
	color: var(--wp--preset--color--ink);
	overflow-wrap: break-word;
}
.adepa-sol-fam-spec__meaning,
.adepa-sol-fam-spec__typical {
	font-size: var(--wp--preset--font-size--body);
	line-height: 1.6;
	color: var(--wp--preset--color--grey-700);
	max-width: var(--wp--custom--layout--reading);
}
.adepa-sol-fam-spec__typical strong { font-weight: 600; color: var(--wp--preset--color--ink); }
.adepa-sol-fam-spec__typnote {
	max-width: var(--wp--custom--layout--reading);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.55;
	color: var(--wp--preset--color--grey-500);
}
@media (min-width: 720px) {
	.adepa-sol-fam-spec__row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.adepa-sol-fam-spec__param { grid-column: 1 / -1; }
}
@media (min-width: 1024px) {
	.adepa-sol-fam-spec__row { grid-template-columns: minmax(0, 3fr) minmax(0, 4fr) minmax(0, 5fr); }
	.adepa-sol-fam-spec__param { grid-column: auto; }
}
/* 0.4.13 · M4 column heads (Transformers copy: "Parameter · What it means · Typical specification range"): a ruled head row
   shown only where the three columns exist (>=1024); below that the rows stack and the heads would not describe columns.
   Typical cells with per-type statements: each statement on its own line (span.adepa-sol-fam-spec__case, display block; the
   text is unchanged), lead-in ("Oil-filled:", "Cast-resin:", "Both types:") in weight 500, ink. */
.adepa-sol-fam-spec__row.adepa-sol-fam-spec__row--head { display: none; }
.adepa-sol-fam-spec__colhead {
	font-size: var(--wp--preset--font-size--label);
	font-weight: 500;
	line-height: 1.3;
	letter-spacing: var(--wp--custom--letter-spacing--label);
	text-transform: uppercase;
	color: var(--wp--preset--color--grey-700);
}
@media (min-width: 1024px) {
	.adepa-sol-fam-spec__row.adepa-sol-fam-spec__row--head { display: grid; padding-block: var(--wp--preset--spacing--20); }
}
.adepa-sol-fam-spec__case { display: block; }
.adepa-sol-fam-spec__case + .adepa-sol-fam-spec__case { margin-top: var(--wp--preset--spacing--10); }
.adepa-sol-fam-spec__typical .adepa-sol-fam-spec__case strong { font-weight: 500; color: var(--wp--preset--color--ink); }

/* Distinction / process note: small, grey-700, 2px brand-red left rule */
.adepa-sol-fam-note {
	max-width: var(--wp--custom--layout--reading);
	padding-left: var(--wp--preset--spacing--30);
	border-left: 2px solid var(--wp--preset--color--brand-red);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.55;
	color: var(--wp--preset--color--grey-700);
}

/* ---------- M5 · Integrated project supply (text rows, not a diagram) ---------- */
.adepa-sol-fam-interfaces { border-top: 1px solid var(--wp--preset--color--grey-300); }
.adepa-sol-fam-interfaces__row {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--wp--preset--spacing--20);
	align-items: start;
	padding-block: var(--wp--preset--spacing--30);
	border-bottom: 1px solid var(--wp--preset--color--grey-300);
}
.adepa-sol-fam-interfaces__label { align-self: start; overflow-wrap: break-word; }
.adepa-sol-fam-interfaces__line { line-height: 1.6; color: var(--wp--preset--color--grey-700); }   /* 0.4.11: 1.55 → body 1.6 */
.adepa-sol-fam-supply__close {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--20);
}
.adepa-sol-fam-interfaces__coord { color: var(--wp--preset--color--ink); }
.adepa-sol-fam-interfaces__close {
	font-size: var(--wp--preset--font-size--body-lg);
	line-height: 1.45;
	color: var(--wp--preset--color--ink);
}
@media (min-width: 720px) {
	.adepa-sol-fam-interfaces__row { grid-template-columns: minmax(0, 36%) minmax(0, 1fr); column-gap: var(--wp--preset--spacing--50); }
}
@media (min-width: 1024px) {
	.adepa-sol-fam-interfaces__row { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); }
}

/* ---------- M6 · Supply network (compact white band) ---------- */
.adepa-sol-fam-network {
	padding-block: var(--wp--preset--spacing--60);
	border-top: 1px solid var(--wp--preset--color--grey-200);
	border-bottom: 1px solid var(--wp--preset--color--grey-200);
}
.adepa-sol-fam-network__label {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--grey-500);
}
.adepa-sol-fam-network__names {
	font-weight: 600;
	letter-spacing: var(--wp--custom--letter-spacing--label);
	line-height: 1.5;
	color: var(--wp--preset--color--ink);
}
.adepa-sol-fam-network__disclaimer {
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.55;
	color: var(--wp--preset--color--grey-500);
}

/* 0.4.12 · M6 manufacturer logos (replace the R2 name line). Official SVG artwork shown as supplied: width follows the
   artwork's own aspect (width:auto; object-fit:contain as a guard), so nothing is stretched, recoloured or filtered.
   Optical balancing: one height per logo (dense ABB block letters smaller; the two-line Ormazabal and Nexans lockups taller),
   scaled by --adepa-logo-scale per breakpoint. Desktop/tablet: one row, even gaps. Below 720px: 2 x 2 grid. */
.adepa-sol-fam-network__logos {
	--adepa-logo-scale: 1;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	column-gap: 48px;
	row-gap: var(--wp--preset--spacing--40);
}
.adepa-sol-fam-network__logos > .wp-block-image.adepa-sol-fam-network__logo {
	flex: 0 0 auto;
	margin: 0 !important;
	line-height: 0;
}
.adepa-sol-fam-network__logo img {
	display: block;
	height: calc(var(--adepa-logo-h) * var(--adepa-logo-scale));
	max-height: calc(var(--adepa-logo-h) * var(--adepa-logo-scale));
	width: auto;
	max-width: none;
	object-fit: contain;
	filter: none;
	transition: none;
}
.adepa-sol-fam-network__logo--abb { --adepa-logo-h: 28px; }
.adepa-sol-fam-network__logo--schneider-electric { --adepa-logo-h: 34px; }
.adepa-sol-fam-network__logo--ormazabal { --adepa-logo-h: 40px; }
.adepa-sol-fam-network__logo--nexans { --adepa-logo-h: 42px; }
@media (min-width: 1024px) and (max-width: 1279px) {
	.adepa-sol-fam-network__logos { --adepa-logo-scale: 0.9; column-gap: 32px; }
}
@media (min-width: 720px) and (max-width: 1023px) {
	.adepa-sol-fam-network__logos { column-gap: 40px; }
}
@media (max-width: 719px) {
	.adepa-sol-fam-network__logos {
		--adepa-logo-scale: 0.85;
		display: grid;
		grid-template-columns: repeat(2, max-content);
		justify-content: start;
		justify-items: start;
		column-gap: 40px;
		row-gap: var(--wp--preset--spacing--40);
	}
}

/* 0.4.13 · M6 three-logo row (Transformers: Hitachi Energy, MAKSAN, Legrand). Spec R2 §6.3/§7: equal-visual-area heights,
   22 / 34 / 34 px at >=1024 (no 0.9 step at 1024-1279; gap 48 px, tightened only where 1024-1044 px would otherwise wrap), 20 / 31 / 31 px at 720-1023, 19 / 29 / 29 px below 720 in a 2 + 1 grid. */
.adepa-sol-fam-network__logo--hitachi-energy { --adepa-logo-h: 22px; }
.adepa-sol-fam-network__logo--maksan,
.adepa-sol-fam-network__logo--legrand { --adepa-logo-h: 34px; }
@media (min-width: 1024px) and (max-width: 1279px) {
	/* Heights stay 22 / 34 / 34 (spec). The gap is 48 px wherever the row fits (from ~1045 px viewport); at 1024-1044 it
	   tightens just enough (to ~43 px at 1024) to keep the single row. 430 px = sum of the three logo widths at these heights. */
	.adepa-sol-fam-network__logos.adepa-sol-fam-network__logos--three { --adepa-logo-scale: 1; column-gap: min(48px, calc((100% - 430px) / 2)); }
}
@media (min-width: 720px) and (max-width: 1023px) {
	.adepa-sol-fam-network__logos.adepa-sol-fam-network__logos--three { column-gap: 32px; }
	.adepa-sol-fam-network__logos--three .adepa-sol-fam-network__logo--hitachi-energy { --adepa-logo-h: 20px; }
	.adepa-sol-fam-network__logos--three :is(.adepa-sol-fam-network__logo--maksan, .adepa-sol-fam-network__logo--legrand) { --adepa-logo-h: 31px; }
}
@media (max-width: 719px) {
	.adepa-sol-fam-network__logos.adepa-sol-fam-network__logos--three { --adepa-logo-scale: 1; align-items: center; column-gap: 40px; row-gap: 28px; }
	.adepa-sol-fam-network__logos--three .adepa-sol-fam-network__logo--hitachi-energy { --adepa-logo-h: 19px; }
	.adepa-sol-fam-network__logos--three :is(.adepa-sol-fam-network__logo--maksan, .adepa-sol-fam-network__logo--legrand) { --adepa-logo-h: 29px; }
}

/* ---------- M7 · Procurement process (typographic steps; not the homepage process component) ---------- */
.adepa-sol-fam-process__inner > .adepa-sol-integrated__head { display: flex; flex-direction: column; align-items: flex-start; gap: var(--wp--preset--spacing--30); }
/* mobile: numeral left of the H3 (as M2), 2px ink rule above each step */
.adepa-sol-statement.adepa-sol-fam-step {
	display: grid;
	grid-template-columns: 2.75rem minmax(0, 1fr);
	column-gap: var(--wp--preset--spacing--20);
	align-content: start;
}
.adepa-sol-fam-step > * { grid-column: 2; }
.adepa-sol-fam-step > .adepa-sol-family__num { grid-column: 1 !important; grid-row: 1 / span 2; padding-top: 0.45em; }
@media (min-width: 768px) {
	/* numeral → 2px ink rule → H3 → line */
	.adepa-sol-statement.adepa-sol-fam-step {
		display: block;
		padding-top: 0;
		border-top: 0;
	}
	.adepa-sol-fam-step > .adepa-sol-family__num {
		padding: 0 0 var(--wp--preset--spacing--20);
		border-bottom: 2px solid var(--wp--preset--color--ink);
	}
	.adepa-sol-fam-step > .adepa-sol-statement__title { margin-top: var(--wp--preset--spacing--30) !important; }
}

/* ---------- M8 · Related solutions (text rows, no images) ---------- */
.adepa-sol-fam-related__list {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--wp--preset--spacing--40);
}
.adepa-sol-fam-related__item {
	position: relative;
	display: grid;
	grid-template-columns: 2.75rem minmax(0, 1fr);
	column-gap: var(--wp--preset--spacing--20);
	align-content: start;
	padding-top: var(--wp--preset--spacing--30);
	border-top: 1px solid var(--wp--preset--color--grey-300);
}
.adepa-sol-fam-related__item > * { grid-column: 2; }
.adepa-sol-fam-related__item > .adepa-sol-family__num { grid-column: 1 !important; grid-row: 1 / span 2; padding-top: 0.45em; }
.adepa-sol-fam-related__title {
	font-size: var(--wp--preset--font-size--heading-4);
	line-height: 1.25;
	letter-spacing: var(--wp--custom--letter-spacing--snug);
	color: var(--wp--preset--color--ink);
	overflow-wrap: break-word;
}
.adepa-sol-fam-related__desc {
	margin-top: var(--wp--preset--spacing--20) !important;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.55;
	color: var(--wp--preset--color--grey-700);
}
/* Planned (no href, no tab stop): grey-500 (5.21:1 on grey-100) + hollow 9px node, as the planned text link */
.adepa-sol-fam-related__title.adepa-link-planned {
	color: var(--wp--preset--color--grey-500);
	cursor: default;
}
/* inline node (not flex) so long words can still wrap at 150 % text size */
.adepa-sol-fam-related__title.adepa-link-planned::before {
	content: "";
	display: inline-block;
	vertical-align: 0.12em;
	margin-right: 0.6em;
	width: 9px;
	height: 9px;
	box-sizing: border-box;
	border-radius: 50%;
	border: 1.5px solid currentColor;
}
/* Active state — only after a logged activation (title linked, `adepa-link-planned` removed) */
.adepa-sol-fam-related__title a { color: inherit; text-decoration: none; }
.adepa-sol-fam-related__title a::before { content: ""; position: absolute; inset: 0; }
.adepa-sol-fam-related__title a::after {
	content: "";
	display: inline-block;
	width: 1em;
	height: 0.66em;
	margin-left: 0.5em;
	background-color: var(--wp--preset--color--brand-red);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 12'%3E%3Cpath d='M0 5.25h15.1L10.9 1.06 11.96 0 18 6l-6.04 6-1.06-1.06 4.2-4.19H0z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 12'%3E%3Cpath d='M0 5.25h15.1L10.9 1.06 11.96 0 18 6l-6.04 6-1.06-1.06 4.2-4.19H0z'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform var(--wp--custom--motion--base) var(--adepa-ease);
}
.adepa-sol-fam-related__title a:is(:hover, :focus-visible) { color: var(--wp--preset--color--brand-red); }
.adepa-sol-fam-related__title a:is(:hover, :focus-visible)::after { transform: translateX(4px); }
.adepa-sol-fam-related__title a:focus-visible { outline: none; }
.adepa-sol-fam-related__item:has(.adepa-sol-fam-related__title a:focus-visible) { outline: 2px solid var(--wp--preset--color--brand-red); outline-offset: 6px; }
.wp-block-buttons.adepa-sol-fam-related__all { justify-content: flex-start; }
@media (min-width: 1024px) {
	.adepa-sol-fam-related__list { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: var(--wp--preset--spacing--50); }
	.wp-block-buttons.adepa-sol-fam-related__all { justify-content: flex-end; }
}

/* ---------- M9 · Project requirement CTA (D-10) ----------
   "We source the solution.": brand-red-bright #EA3345 on charcoal #151B1F = 4.19:1 → relies on WCAG AA large
   text, so heading-3 (22.0 px at 360 → 30.0 px at 1440) at a true 700 (Rubik variable). Same treatment as
   .adepa-home-closer__response; !important beats the dark-section paragraph colour (grey-300). */
.adepa-sol-cta__support {
	font-size: var(--wp--preset--font-size--heading-3);
	font-weight: 700;
	line-height: 1.2;
	color: var(--wp--preset--color--brand-red-bright) !important;
}

/* 0.4.11 · casing helper: a wrapped letter keeps its typed case inside uppercase-styled lines (M9 "(BOQs)") */
.adepa-sol-fam-section .adepa-sol-fam-lc { text-transform: none; }

@media (prefers-reduced-motion: reduce) {
	.adepa-sol-fam-related__title a::after { transition: none; }
}

/* ---------- 0.4.16 · W3-G7 Compact / Package Substations (modifiers only; MV / Transformers content uses none) ----------
   M2 LV build note: a small grey line under the "Configured by" list of the same options row (<1024: text column, row 5;
   >=1024: under the options, columns 2-3). M2 integration block: after the three system rows; 2px ink rule on top;
   >=1024 statement (4fr, body-lg ink) | body (8fr): brand-flexibility text, sourcing-model label (existing opts label),
   two examples between grey-200 hairlines (lead-in in ink 500), small grey note. M5 supervision note: small grey-700. */
.adepa-sol-fam-scope__buildnote {
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.55;
	color: var(--wp--preset--color--grey-700);
	max-width: var(--wp--custom--layout--reading);
}
@media (max-width: 1023.98px) {
	.adepa-sol-fam-scope__row--options > .adepa-sol-fam-scope__buildnote { grid-column: 2; grid-row: 5; }
}
@media (min-width: 1024px) {
	.adepa-sol-fam-scope__row--options > .adepa-sol-fam-scope__buildnote { grid-column: 2 / 4; grid-row: 3; }
}
.adepa-sol-fam-integration {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--wp--preset--spacing--30);
	padding-top: var(--wp--preset--spacing--40);
	border-top: 2px solid var(--wp--preset--color--ink);
}
.adepa-sol-fam-integration > *,
.adepa-sol-fam-integration__body > * { margin: 0 !important; }
.adepa-sol-fam-integration__statement {
	font-size: var(--wp--preset--font-size--body-lg);
	line-height: 1.45;
	color: var(--wp--preset--color--ink);
	max-width: var(--wp--custom--layout--reading);
}
.adepa-sol-fam-integration__body { display: flex; flex-direction: column; gap: var(--wp--preset--spacing--20); }
.adepa-sol-fam-integration__text { font-size: var(--wp--preset--font-size--body); line-height: 1.6; color: var(--wp--preset--color--grey-700); }
.adepa-sol-fam-integration__label { padding-top: var(--wp--preset--spacing--10); }
.adepa-sol-fam-integration__models { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--wp--preset--color--grey-200); }
.adepa-sol-fam-integration__models > li {
	margin: 0;
	padding-block: var(--wp--preset--spacing--20);
	border-bottom: 1px solid var(--wp--preset--color--grey-200);
	font-size: var(--wp--preset--font-size--body);
	line-height: 1.6;
	color: var(--wp--preset--color--grey-700);
	overflow-wrap: break-word;
}
.adepa-sol-fam-integration__models strong { font-weight: 500; color: var(--wp--preset--color--ink); }
.adepa-sol-fam-integration__note,
.adepa-sol-fam-supply__supervision {
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.55;
	color: var(--wp--preset--color--grey-700);
	max-width: var(--wp--custom--layout--reading);
}
@media (min-width: 1024px) {
	.adepa-sol-fam-integration { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); column-gap: var(--wp--preset--spacing--50); }
}

/* ---------- 0.4.17 · W3-G7 R3 Compact / Package Substations (modifiers only; MV / Transformers content uses none) ----------
   M2 four components. Row 04 (Purpose-Built Metal Kiosk) is the first child of the integration block: a framed panel
   (1px grey-300 hairline, the M2 photo-frame line; white; no radius, no shadow) holding the group label "ENCLOSING
   STRUCTURE · METAL KIOSK" and the row (numeral, title, description, "Configured by" list; no photo). The existing 2px ink
   rule of the integration block sits above it; the supporting statement and brand-flexibility body follow inside the block.
   PLAIN-ROW FALLBACK (CSS-only switch, no content change): set the six custom properties in the first rule below to their
   "plain" values (noted at the end of each line). The kiosk then reads as a fourth plain row after the three systems and the
   2px ink rule moves under it, so the statement block follows directly below (copy R3 M2 render note, fallback). */
.adepa-sol-fam-integration.adepa-sol-fam-integration--kiosk {
	--adepa-kiosk-border: 1px solid var(--wp--preset--color--grey-300);   /* plain: 0 none */
	--adepa-kiosk-pad: var(--wp--preset--spacing--40);                    /* plain: 0 */
	--adepa-kiosk-end: var(--adepa-kiosk-border);                          /* plain: 2px solid var(--wp--preset--color--ink) */
	--adepa-kiosk-end-pad: var(--adepa-kiosk-pad);                         /* plain: var(--wp--preset--spacing--30) */
	--adepa-kiosk-rule: 2px solid var(--wp--preset--color--ink);           /* plain: 0 none */
	--adepa-kiosk-rule-pad: var(--wp--preset--spacing--40);                /* plain: 0 */
	border-top: var(--adepa-kiosk-rule);
	padding-top: var(--adepa-kiosk-rule-pad);
	row-gap: var(--wp--preset--spacing--40);
}
.adepa-sol-fam-kiosk {
	grid-column: 1 / -1;
	display: flex;
	flex-direction: column;
	border: var(--adepa-kiosk-border);
	border-bottom: var(--adepa-kiosk-end);
	padding: var(--adepa-kiosk-pad);
	padding-bottom: var(--adepa-kiosk-end-pad);
	background: var(--wp--preset--color--white);
}
.adepa-sol-fam-kiosk > * { margin: 0 !important; }
.adepa-sol-fam-kiosk > .adepa-sol-fam-scope__group { padding-top: 0; }
.adepa-sol-fam-scope__row.adepa-sol-fam-scope__row--kiosk { padding-bottom: 0; border-bottom: 0; }
@media (max-width: 719.98px) {
	.adepa-sol-fam-integration.adepa-sol-fam-integration--kiosk { --adepa-kiosk-pad: var(--wp--preset--spacing--30); }
	.adepa-sol-fam-scope__row.adepa-sol-fam-scope__row--kiosk { grid-template-columns: 2rem minmax(0, 1fr); }
}
@media (max-width: 1023.98px) {
	.adepa-sol-fam-scope__row.adepa-sol-fam-scope__row--kiosk { grid-template-rows: none; }
	.adepa-sol-fam-scope__row--kiosk > .adepa-sol-family__num { grid-row: 1; }
	.adepa-sol-fam-scope__row--kiosk > .adepa-sol-fam-scope__name { grid-column: 2; grid-row: 1; }
	.adepa-sol-fam-scope__row--kiosk > .adepa-sol-fam-scope__desc { grid-column: 2; grid-row: 2; }
	.adepa-sol-fam-scope__row--kiosk > .adepa-sol-fam-opts { grid-column: 2; grid-row: 3; }
}
@media (min-width: 720px) and (max-width: 1023.98px) {
	.adepa-sol-fam-scope__row.adepa-sol-fam-scope__row--kiosk { grid-template-columns: 2.75rem minmax(0, 1fr); }
}
@media (min-width: 1024px) {
	/* same column rhythm as the rows above (numeral | title 4fr | description 5fr + photo column 3fr) */
	.adepa-sol-fam-scope__row.adepa-sol-fam-scope__row--kiosk { grid-template-columns: 2.75rem minmax(0, 4fr) minmax(0, 5fr) minmax(0, 3fr); grid-template-rows: auto auto; }
	.adepa-sol-fam-scope__row--kiosk > .adepa-sol-fam-scope__desc { grid-column: 3 / 5; }
}

/* M4 container-shipment block (after the representative note): 2px ink rule, H3 in the statement-title style, two body lines. */
.adepa-sol-fam-spec__container {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--20);
	padding-top: var(--wp--preset--spacing--30);
	border-top: 2px solid var(--wp--preset--color--ink);
}
.adepa-sol-fam-spec__container > * { margin: 0 !important; }

/* M5 headline "Integrated. Factory-Assembled. Tested. Delivered as One Unit.": one part per line (span per part), so the
   four-part line never breaks inside "Factory-Assembled." and reads as four clean lines at every width. */
.adepa-sol-integrated__title.adepa-sol-fam-supply__title { max-width: none; overflow-wrap: normal; hyphens: manual; }
.adepa-sol-fam-supply__line { display: block; }
.adepa-sol-fam-supply__line:last-child { text-wrap: balance; }
@media (min-width: 1024px) and (max-width: 1279.98px) {
	/* split head column is narrowest here (~366 px at 1024): scale with the viewport so "Factory-Assembled." stays on one line */
	.adepa-sol-integrated__title.adepa-sol-fam-supply__title { font-size: min(var(--wp--preset--font-size--heading-2), 3.3vw); }
}
@media (max-width: 419.98px) {
	.adepa-sol-integrated__title.adepa-sol-fam-supply__title { font-size: clamp(1.5rem, 0.75rem + 4.4vw, 1.75rem); }
}

/* M6 roles list (existing options-list markup; label column narrowed to the role names) */
.adepa-sol-fam-opts__list.adepa-sol-fam-network__roles { max-width: var(--wp--custom--layout--reading); }
@media (min-width: 720px) {
	.adepa-sol-fam-network__roles > li { grid-template-columns: minmax(0, 11rem) minmax(0, 1fr); }
}

/* M6 seven logos (ABB, Schneider Electric, Ormazabal, MAKSAN / Hitachi Energy, Legrand + one more; 0.4.20: six, see --six). Copy R3 M6 heights:
   >=1024 28 34 40 34 22 34; 720-1023 25 31 36 31 20 31; <720 24 29 34 29 19 29. >=720: two left-aligned rows, 4 + 3
   (flex row; a zero-height ::after with flex-basis 100% forces the break before logo 5), gap 40 / 32 px (column gap 32 px at
   720-1023).
   A column-aligned 4-column grid would be ~695 px wide (Hitachi Energy under ABB), wider than the 68ch copy column at
   1024-1440, so the rows are not column-aligned. 1024-1279: the existing MV 0.9 step (as the MV logo row) and a gap capped so
   row 1 fits the narrower copy column. <720: 2-column grid, gap 40 / 28 px (2 + 2 + 2 + 1). Official artwork as supplied
   (width auto, no filter, no link). */
.adepa-sol-fam-network__logos.adepa-sol-fam-network__logos--seven {
	--adepa-logo-scale: 1;
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	align-items: center;
	column-gap: 40px;
	row-gap: 16px;   /* the zero-height break line adds a second gap: 16 + 0 + 16 = 32 px between the two logo rows */
}
.adepa-sol-fam-network__logos--seven::after { content: ""; flex: 0 0 100%; height: 0; order: 1; }
.adepa-sol-fam-network__logos--seven > .adepa-sol-fam-network__logo:nth-child(n+5) { order: 2; }
@media (min-width: 1024px) and (max-width: 1279.98px) {
	.adepa-sol-fam-network__logos.adepa-sol-fam-network__logos--seven { --adepa-logo-scale: 0.9; column-gap: min(32px, calc((100% - 431px) / 3)); }
}
.adepa-sol-fam-network__logos--seven .adepa-sol-fam-network__logo--hitachi-energy { --adepa-logo-h: 22px; }
.adepa-sol-fam-network__logos--seven :is(.adepa-sol-fam-network__logo--maksan, .adepa-sol-fam-network__logo--legrand) { --adepa-logo-h: 34px; }
@media (min-width: 720px) and (max-width: 1023.98px) {
	.adepa-sol-fam-network__logos.adepa-sol-fam-network__logos--seven { column-gap: 32px; }
	.adepa-sol-fam-network__logos--seven .adepa-sol-fam-network__logo--abb { --adepa-logo-h: 25px; }
	.adepa-sol-fam-network__logos--seven .adepa-sol-fam-network__logo--schneider-electric { --adepa-logo-h: 31px; }
	.adepa-sol-fam-network__logos--seven .adepa-sol-fam-network__logo--ormazabal { --adepa-logo-h: 36px; }
	.adepa-sol-fam-network__logos--seven :is(.adepa-sol-fam-network__logo--maksan, .adepa-sol-fam-network__logo--legrand) { --adepa-logo-h: 31px; }
	.adepa-sol-fam-network__logos--seven .adepa-sol-fam-network__logo--hitachi-energy { --adepa-logo-h: 20px; }
}
@media (max-width: 719.98px) {
	.adepa-sol-fam-network__logos.adepa-sol-fam-network__logos--seven { display: grid; grid-template-columns: repeat(2, max-content); justify-content: start; justify-items: start; column-gap: 40px; row-gap: 28px; }
	.adepa-sol-fam-network__logos--seven::after { content: none; }
	.adepa-sol-fam-network__logos--seven > .adepa-sol-fam-network__logo:nth-child(n+5) { order: 0; }
	.adepa-sol-fam-network__logos--seven .adepa-sol-fam-network__logo--abb { --adepa-logo-h: 24px; }
	.adepa-sol-fam-network__logos--seven .adepa-sol-fam-network__logo--schneider-electric { --adepa-logo-h: 29px; }
	.adepa-sol-fam-network__logos--seven .adepa-sol-fam-network__logo--ormazabal { --adepa-logo-h: 34px; }
	.adepa-sol-fam-network__logos--seven :is(.adepa-sol-fam-network__logo--maksan, .adepa-sol-fam-network__logo--legrand) { --adepa-logo-h: 29px; }
	.adepa-sol-fam-network__logos--seven .adepa-sol-fam-network__logo--hitachi-energy { --adepa-logo-h: 19px; }
}

/* ---------- 0.4.18 · W3-G7 R4 Compact / Package Substations: photo in the framed kiosk row 04 ----------
   Row 04 gains the adepa-sol-fam-scope__row--media class and a media-library photo (same 3:2 contain frame as rows 01-03).
   The row sits inside the framed panel (padding --adepa-kiosk-pad + 1px border), so its content box is narrower than rows
   01-03. These rules (selectors need --kiosk AND --media; specificity 0,3,0 over the 0.4.17 kiosk rules) give the photo the
   same visual size at every width:
   <720:     photo first, full outer row width up to 360px: it bleeds over the panel padding so its hairline meets the panel's.
   720-1023: photo first, 360px (fits inside the panel), then numeral + title, description, "Configured by".
   >=1024:   numeral | title | description | photo; the photo column is computed from the OUTER row width, i.e. exactly
             3/12 of (row width - numeral - 3 gaps) as in rows 01-03; max 300px, right-aligned; options under title + desc.
   PLAIN-ROW FALLBACK: with the six 0.4.17 properties at their plain values, also set --adepa-kiosk-bleed to 0px. */
.adepa-sol-fam-integration.adepa-sol-fam-integration--kiosk {
	--adepa-kiosk-bleed: calc(var(--adepa-kiosk-pad) + 1px);              /* plain: 0px */
}
@media (max-width: 1023.98px) {
	.adepa-sol-fam-scope__row--kiosk.adepa-sol-fam-scope__row--media > .wp-block-image.adepa-sol-fam-scope__media { grid-column: 1 / -1; grid-row: 1; }
	.adepa-sol-fam-scope__row--kiosk.adepa-sol-fam-scope__row--media > .adepa-sol-family__num { grid-row: 2; }
	.adepa-sol-fam-scope__row--kiosk.adepa-sol-fam-scope__row--media > .adepa-sol-fam-scope__name { grid-column: 2; grid-row: 2; }
	.adepa-sol-fam-scope__row--kiosk.adepa-sol-fam-scope__row--media > .adepa-sol-fam-scope__desc { grid-column: 2; grid-row: 3; }
	.adepa-sol-fam-scope__row--kiosk.adepa-sol-fam-scope__row--media > .adepa-sol-fam-opts { grid-column: 2; grid-row: 4; }
}
@media (max-width: 719.98px) {
	.adepa-sol-fam-scope__row--kiosk.adepa-sol-fam-scope__row--media > .wp-block-image.adepa-sol-fam-scope__media {
		width: min(360px, calc(100% + 2 * var(--adepa-kiosk-bleed)));
		max-width: none;
		margin-inline-start: calc(-1 * var(--adepa-kiosk-bleed)) !important;
	}
}
@media (min-width: 1024px) {
	.adepa-sol-fam-scope__row--kiosk.adepa-sol-fam-scope__row--media {
		grid-template-columns: 2.75rem minmax(0, 4fr) minmax(0, 5fr)
			calc((100% + 2 * var(--adepa-kiosk-bleed) - 2.75rem - 3 * var(--wp--preset--spacing--40)) / 4);
	}
	.adepa-sol-fam-scope__row--kiosk.adepa-sol-fam-scope__row--media > .adepa-sol-fam-scope__desc { grid-column: 3; }
}

/* 0.4.19 (W3-G8 Low Voltage Distribution & Control) · M2 list mixing text-only rows with one photo row.
   Modifier on the list (adepa-sol-fam-scope__list--mixed); only the LV page uses it. Text-only rows take the photo-row grid
   (720-1023: numeral | title over description | empty 32 % column; 1024 and up: numeral | title 4fr | description 5fr |
   empty 3fr column), so titles and descriptions line up with the photo row. Below 720 nothing changes. */
@media (min-width: 720px) {
	.adepa-sol-fam-scope__list--mixed > .adepa-sol-fam-scope__row:not(.adepa-sol-fam-scope__row--media) {
		grid-template-columns: 2.75rem minmax(0, 1fr) minmax(0, 32%);
		row-gap: var(--wp--preset--spacing--20);
	}
	.adepa-sol-fam-scope__list--mixed > .adepa-sol-fam-scope__row:not(.adepa-sol-fam-scope__row--media) > .adepa-sol-fam-scope__desc { grid-column: 2; grid-row: 2; }
}
@media (min-width: 1024px) {
	.adepa-sol-fam-scope__list--mixed > .adepa-sol-fam-scope__row:not(.adepa-sol-fam-scope__row--media) {
		grid-template-columns: 2.75rem minmax(0, 4fr) minmax(0, 5fr) minmax(0, 3fr);
	}
	.adepa-sol-fam-scope__list--mixed > .adepa-sol-fam-scope__row:not(.adepa-sol-fam-scope__row--media) > .adepa-sol-fam-scope__desc { grid-column: 3; grid-row: 1; }
}

/* 0.4.20 · Compact / Package Substations M6 with six logos (MV: ABB, Schneider Electric, Ormazabal / Transformers: MAKSAN,
   Hitachi Energy, Legrand). Used together with --seven (same heights and gaps); only the row break moves: 3 + 3 at >= 720px
   (the zero-height break sits before logo 4), 2-column grid below 720 (2 + 2 + 2). */
.adepa-sol-fam-network__logos--seven.adepa-sol-fam-network__logos--six > .adepa-sol-fam-network__logo:nth-child(n+4) { order: 2; }
@media (max-width: 719.98px) {
	.adepa-sol-fam-network__logos--seven.adepa-sol-fam-network__logos--six > .adepa-sol-fam-network__logo:nth-child(n+4) { order: 0; }
}

/* 0.4.20: logo row directly after body copy (no label line), keep breathing room. */
.adepa-sol-fam-network p:not(.adepa-sol-fam-network__label) + .adepa-sol-fam-network__logos {
	margin-block-start: var(--wp--preset--spacing--50) !important;
}

/* 0.4.21 (W3-G9): neutral placeholders for photo slots awaiting image permission (cbp-placeholder-*.svg). The SVG carries
   its own light-grey field and line icon; the frame stays as for photos. Hero: no inset, so the grey field meets the frame. */
.adepa-sol-fam-hero__media.adepa-media-placeholder img { padding: 0; background: var(--wp--preset--color--grey-100, #f1f2f4); }
.adepa-sol-fam-scope__media.adepa-media-placeholder img { padding: 0; background: #f1f2f4; }
/* 0.4.21 (W3-G9): M6 neutral logo slots (no artwork, no name) while logo permissions are open. */
.adepa-sol-fam-network__logo--slot { --adepa-logo-h: 40px; }

/* 0.4.22 (W3-G9 R5): Critical & Backup Power M6 official logos (no names). Cummins C-mark (1.14:1) and Huawei stacked
   flower + wordmark (1:1); optical balance by height, same row/gap rules as the MV logos. */
.adepa-sol-fam-network__logo--cummins { --adepa-logo-h: 44px; }
.adepa-sol-fam-network__logo--huawei { --adepa-logo-h: 54px; }

/* 0.4.24 (W3-G10 Lighting & Infrastructure; only adepa-li-* classes, used by that page alone).
   M2 row 06 text-only panel: sits in the photo slot of a media row, same 3:2 frame size, border and position as the photos;
   three stacked uppercase labels on grey-100 with a red node, no image. */
.adepa-sol-fam-scope__row--media > .wp-block-group.adepa-li-panel {
	grid-column: 2;
	box-sizing: border-box;
	width: 100%;
	max-width: 360px;
	aspect-ratio: 3 / 2;
	margin: var(--wp--preset--spacing--20) 0 0 !important;
	padding: 0 8%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 0.6em;
	background: var(--wp--preset--color--grey-100, #f1f2f4);
	border: 1px solid var(--wp--preset--color--grey-300);
}
.adepa-li-panel > p.adepa-li-panel__label {
	margin: 0 !important;
	font-size: 0.75rem;
	line-height: 1.3;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--grey-700, #3c4047);
	overflow-wrap: anywhere;
}
.adepa-li-panel > p.adepa-li-panel__label::before {
	content: "";
	display: inline-block;
	width: 6px;
	height: 6px;
	margin-right: 0.6em;
	vertical-align: 0.15em;
	border-radius: 50%;
	background: var(--wp--preset--color--brand-red);
}
@media (min-width: 720px) {
	.adepa-sol-fam-scope__row--media > .wp-block-group.adepa-li-panel { grid-column: 3; grid-row: 1 / span 2; max-width: none; margin: 0 !important; }
}
@media (min-width: 1024px) {
	.adepa-sol-fam-scope__row--media > .wp-block-group.adepa-li-panel { grid-column: 4; grid-row: 1; max-width: 300px; justify-self: end; }
}
/* M6 logos (ALKAN raster lockup 800x206, Philips wordmark 355x64): optical heights. */
.adepa-sol-fam-network__logo--alkan { --adepa-logo-h: 40px; }
.adepa-sol-fam-network__logo--philips { --adepa-logo-h: 22px; }
