/* The Red Light feature page (templates/page-red-light-sauna.html; handoff S:1489-2075, S = "Salvagente Site.dc.html";
   mobile S:60-103). The blocks style themselves (orbit-sequence, option-stage, hotspots, bar-chart); this is the page's
   section rhythm, heads, cards, photos, videos and the spec tabs. Small text is 12px at least; muted text uses the AA greys. */

.wp-site-blocks > .sv-redlight { margin-block-start: 0; }   /* the hero meets the header */
.sv-redlight > * { margin-block: 0; }
:where(.sv-redlight) :where(p, h2, h3, dl, dd, ol, ul, figure) { margin: 0; }   /* zero specificity: every margin below wins */
.sv-redlight :where(.is-layout-flow, .is-layout-constrained) > * { margin-block: 0; }

/* ---- section rhythm and heads (S:1516-1519) ---- */
.sv-rl-sec { padding: 96px var(--pg) 0; }
.sv-rl-sec.sv-rl-cta { padding-bottom: 90px; }
.sv-rl-sec > * + * { margin-top: 32px; }
.sv-rl-head { display: grid; grid-template-columns: minmax(0, 1fr) 430px; gap: 56px; align-items: end; }
.sv-rl-head > :only-child { grid-column: 1 / -1; }
.sv-redlight .sv-eyebrow { font-size: 12px; letter-spacing: .22em; text-transform: uppercase; color: var(--wp--preset--color--teal-aa); }
.sv-rl-h {
	margin-top: 16px;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700;
	font-size: clamp(26px, 3.2vw, 46px);
	line-height: 1.06;
	letter-spacing: -.025em;
	color: var(--wp--preset--color--ink-900);
}
.sv-rl-h.is-small { font-size: clamp(24px, 2.8vw, 40px); line-height: 1.08; }
.sv-rl-h.is-smaller { margin-top: 14px; font-size: clamp(22px, 2.4vw, 34px); line-height: 1.1; }
.sv-rl-lede { font-size: 16.5px; line-height: 1.62; color: var(--wp--preset--color--ink-700); }

/* ---- cards ---- */
.sv-rl-grid { display: grid; gap: 16px; }
.sv-rl-grid.is-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sv-rl-grid.is-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sv-rl-card { padding: 24px 26px; box-shadow: 0 10px 40px -10px rgba(58, 89, 168, .18); font-size: 15px; line-height: 1.55; color: var(--wp--preset--color--ink-700); }
.sv-rl-card > * + * { margin-top: 12px; }
.sv-rl-name { font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: 14px; letter-spacing: .08em; color: var(--wp--preset--color--ink-900); }
.sv-rl-card > .sv-rl-spec { margin-top: 10px; font-size: 12px; letter-spacing: .06em; color: var(--wp--preset--color--teal-aa); }
.sv-grade { font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: 19px; line-height: 1.25; letter-spacing: -.01em; color: var(--wp--preset--color--ink-900); }
.sv-rl-card-h { font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: 15px; line-height: 1.3; letter-spacing: .02em; color: var(--wp--preset--color--ink-900); }
.sv-redlight .sv-dark-card { padding: 22px 26px; border: 1.5px solid #0b0c0d; border-radius: 20px; background: #0b0c0d; }
.sv-redlight .sv-dark-card p {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700;
	font-size: 19px;
	line-height: 1.35;
	letter-spacing: -.01em;
	color: var(--wp--preset--color--primary);
}
.sv-redlight .sv-dark-card.is-fit { width: fit-content; max-width: 100%; box-sizing: border-box; }
.sv-rl-grid > .sv-dark-card { display: flex; align-items: center; }
/* The spectrum banner (Chris decision 244, R2-4): stacked and fit-width below 1101 px; from there it fills the column under the band buttons, beside the pictures
   (the option-stage's wrapper steps aside so its list and stage join this grid; the stage spans both rows, the second row takes the rest of its height). */
.sv-rl-spectrum-body > .sv-dark-card { margin-top: 16px; }
@media (min-width: 1101px) {
	.sv-rl-spectrum-body { display: grid; grid-template-columns: minmax(240px, 380px) minmax(0, 1fr); grid-template-rows: auto 1fr; column-gap: 32px; align-items: start; }
	.sv-rl-spectrum-body > .wp-block-salvagente-option-stage { display: contents; }
	.sv-rl-spectrum-body .sv-opts { grid-column: 1; grid-row: 1; }
	.sv-rl-spectrum-body .sv-stage { grid-column: 2; grid-row: 1 / span 2; }
	.sv-rl-spectrum-body > .sv-dark-card { grid-column: 1; grid-row: 2; width: auto; margin-top: 20px; }
}
.sv-redlight .sv-metric { font-size: clamp(26px, 3.1vw, 44px); font-weight: 400; line-height: 1; letter-spacing: -.02em; font-variant-numeric: tabular-nums; color: var(--wp--preset--color--ink-900); }
.sv-redlight .sv-metric-sm { font-size: 24px; font-weight: 400; line-height: 1; letter-spacing: -.01em; color: var(--wp--preset--color--ink-900); }
.sv-rl-card > .sv-rl-unit { font-size: 12px; color: var(--wp--preset--color--ink-600); }

/* ---- photos, pills and videos ---- */
.sv-rl-photo { position: relative; overflow: hidden; border: 1px solid rgba(114, 115, 116, .45); border-radius: 20px; background: #000; }
.sv-rl-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.sv-rl-photo.is-wide { height: min(764px, 53.1vw); margin-top: 16px; background: #a9a5a3; }
.sv-rl-photo.is-tile { height: min(280px, 19.4vw); }
.sv-rl-sec > .sv-rl-tiles, .sv-rl-sec > .sv-dark-card { margin-top: 16px; }
.sv-rl-pill {
	position: absolute;
	left: 24px;
	bottom: 22px;
	z-index: 1;
	max-width: calc(100% - 48px);
	box-sizing: border-box;
	padding: 9px 18px;
	border: 1px solid rgba(77, 197, 213, .5);
	border-radius: 999px;
	background: rgba(11, 12, 13, .85);   /* Ana 22 Oct fix 1: legible over a near-white photo */
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	font-size: 12px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary);
	pointer-events: none;
}
.sv-rl-caption { font-size: 12px; color: var(--wp--preset--color--ink-600); }
.sv-redlight .wp-block-video {
	position: relative;
	margin: 0;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border: 1px solid rgba(114, 115, 116, .45);
	border-radius: 20px;
	background: #000;
}
.sv-redlight .wp-block-video video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.sv-redlight .wp-block-video .sv-rl-pill { max-width: calc(100% - 200px); }   /* clear of the pause control, bottom right */

/* The video control (salvagente/scroll-loop; screen map §4, WCAG 2.2.2): the steam's pause control and the click-to-play
   button (decision 84), bottom right of the figure, 44 px tall at least, legible over any frame, a visible focus ring. Its
   text says the state (no aria-pressed, Mike final m3), so it stays dark glass in both states. */
.sv-video-toggle {
	position: absolute;
	right: 16px;
	bottom: 16px;
	z-index: 2;
	min-width: 44px;
	min-height: 44px;
	padding: 0 18px;
	border: 1px solid rgba(255, 255, 255, .55);
	border-radius: 999px;
	background: rgba(11, 12, 13, .78);
	color: #fff;
	font: inherit;
	font-size: 12px;
	letter-spacing: .12em;
	text-transform: uppercase;
	cursor: pointer;
}
.sv-video-toggle:focus-visible { outline: 2px solid var(--wp--preset--color--primary); outline-offset: 3px; box-shadow: 0 0 0 5px #0b0c0d; }

/* ---- near infrared (S:1592-1624) ---- */
.sv-rl-nir { display: grid; grid-template-columns: 400px minmax(0, 1fr); gap: 36px; align-items: start; }
.sv-rl-sec.sv-rl-nir > * { margin-top: 0; }
.sv-rl-sub { margin-top: 16px; font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: 18px; line-height: 1.35; color: var(--wp--preset--color--ink-800); }
.sv-rl-nir-text > .sv-rl-lede { margin-top: 16px; }
.sv-rl-points { margin-top: 24px; padding: 0; list-style: none; }
.sv-rl-points li { display: flex; gap: 16px; align-items: baseline; padding: 13px 0; border-bottom: 1px solid var(--sv-stroke-hair); font-size: 15.5px; line-height: 1.5; color: var(--wp--preset--color--ink-800); }
.sv-rl-points .sv-mono { min-width: 22px; font-size: 12px; color: var(--wp--preset--color--ink-700); }
.sv-rl-nir-text > .sv-dark-card { margin-top: 24px; }
.sv-rl-nir-media > * + * { margin-top: 16px; }
.sv-rl-nir-media > .sv-rl-caption + * { margin-top: 14px; }

/* ---- the spa's arm facts (S:1716-1722), the arm video row (S:1800-1808) ---- */
.sv-redlight .wp-block-salvagente-hotspots .sv-pins-facts dt { color: var(--wp--preset--color--ink-600); }
.sv-redlight .wp-block-salvagente-hotspots .sv-pins-facts dd { color: var(--wp--preset--color--ink-900); }
.sv-rl-move { display: grid; grid-template-columns: 330px minmax(0, 1fr); gap: 32px; align-items: start; }
.sv-rl-move > * { margin-top: 0; }
.sv-rl-move p + p { margin-top: 12px; font-size: 15.5px; line-height: 1.58; color: var(--wp--preset--color--ink-800); }

/* ---- self-cleaning and safety (S:1852-1885) ---- */
.sv-rl-care-cols { display: grid; grid-template-columns: minmax(0, 1fr) 1fr; gap: 24px; align-items: stretch; }
.sv-rl-heal { padding: 44px 46px; border: 1.5px solid var(--wp--preset--color--primary); border-radius: 24px; box-shadow: 0 20px 48px -26px rgba(77, 197, 213, .85); }
.sv-rl-heal > .sv-rl-lede { max-width: 620px; margin-top: 16px; }
.sv-rl-heal-stats { display: flex; flex-wrap: wrap; gap: 20px 36px; margin-top: 30px; padding-top: 24px; border-top: 1px solid var(--sv-stroke-hair); }
.sv-rl-heal-stats dd { margin-top: 8px; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--wp--preset--color--ink-600); }
.sv-rl-safety { display: flex; flex-direction: column; gap: 12px; margin-top: 22px; }
.sv-rl-safety .sv-rl-card { padding: 22px 24px; font-size: 14.5px; }
.sv-rl-care > .wp-block-video { aspect-ratio: auto; height: min(710px, 49.3vw); margin-top: 24px; background: #6a6a6d; }
.sv-rl-care > .wp-block-video video { object-fit: cover; }

/* ---- the business case (S:1887-1922) ---- */
.sv-rl-biz {
	display: grid;
	position: relative;
	grid-template-columns: 326px minmax(0, 1fr) 326px;
	align-items: center;
	height: min(776px, 53.9vw);
	box-sizing: border-box;
	padding: 26px;
	overflow: hidden;
	border: 1px solid rgba(114, 115, 116, .45);
	border-radius: 20px;
}
.sv-rl-biz-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.sv-rl-biz-col { position: relative; display: flex; flex-direction: column; gap: 14px; }
.sv-rl-biz-col + .sv-rl-biz-col { grid-column: 3; }
.sv-rl-biz-card {
	padding: 20px 22px;
	border: 1px solid rgba(255, 255, 255, .75);
	border-radius: 18px;
	background: rgba(255, 255, 255, .62);
	-webkit-backdrop-filter: blur(14px) saturate(140%);
	backdrop-filter: blur(14px) saturate(140%);
	box-shadow: 0 10px 34px -14px rgba(12, 26, 42, .35);
	font-size: 14.5px;
	line-height: 1.5;
	color: var(--wp--preset--color--ink-800);
}
.sv-rl-biz-card .sv-mono { font-size: 12px; color: var(--wp--preset--color--ink-600); }
.sv-rl-biz-card .sv-rl-card-h { margin-top: 10px; }
.sv-rl-biz-card p:last-child { margin-top: 9px; }

/* ---- technical specifications (S:1924-2033): the charts and the spec tabs ---- */
.sv-rl-charts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.sv-rl-sec > .sv-rl-charts, .sv-rl-sec > .sv-spec-tabs { margin-top: 16px; }
.sv-redlight .wp-block-salvagente-bar-chart,
.sv-rl-study,
.sv-redlight .wp-block-tab-panel {
	padding: 26px 28px;
	border: 1px solid var(--sv-stroke-glass);
	border-radius: 20px;
	background: rgba(255, 255, 255, .42);
	-webkit-backdrop-filter: blur(16px) saturate(140%);
	backdrop-filter: blur(16px) saturate(140%);
	box-shadow: 0 10px 40px -10px rgba(58, 89, 168, .18);
}
.sv-redlight .wp-block-salvagente-bar-chart .sv-chart-ticks { font-size: 12px; }   /* the block's 11px ticks: 12px is the page floor */
.sv-redlight .wp-block-salvagente-bar-chart .sv-chart-bar { box-shadow: 0 0 0 1px var(--wp--preset--color--teal-dark); }   /* Ana fix 2 */
.sv-redlight .wp-block-salvagente-bar-chart :where(.sv-chart-note, .sv-chart-metric) { margin-top: 18px; font-size: 14px; line-height: 1.5; color: var(--wp--preset--color--ink-700); }
.sv-redlight .sv-spec-tabs { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 24px; align-items: start; }
.sv-redlight .sv-spec-tabs .wp-block-tab-list { display: flex; flex-direction: column; align-items: stretch; gap: 10px; margin: 0; padding: 0; border: 0; }
.sv-redlight .sv-spec-tabs .wp-block-tab-list__item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	min-height: 44px;
	margin: 0;
	padding: 14px 18px;
	border: 1px solid rgba(114, 115, 116, .45);
	border-radius: 14px;
	background: rgba(255, 255, 255, .42);
	color: var(--wp--preset--color--ink-800);
	font: inherit;
	text-align: left;
	cursor: pointer;
}
.sv-redlight .sv-spec-tabs .wp-block-tab-list__item[aria-selected="true"] { border: 1.5px solid var(--wp--preset--color--ink-900); background: #fff; color: var(--wp--preset--color--ink-900); }
/* Chris decision 92: no line under the selected tab (core tab-list draws one as ::before); the border, the white fill and the
   focus ring mark the state instead (WCAG 2.4.7). */
.sv-redlight .sv-spec-tabs .wp-block-tab-list__item::before { content: none; }
.sv-spec-tabs .sv-tab-name { font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: 12.5px; letter-spacing: .1em; text-transform: uppercase; }
.sv-spec-tabs .sv-tab-count { font-size: 12px; color: var(--wp--preset--color--ink-600); }
.sv-redlight .wp-block-tab-panel { padding: 34px 36px; }
.sv-spec-group { font-size: 12px; color: var(--wp--preset--color--ink-600); }
.sv-spec-rows { margin-top: 18px; padding: 0; list-style: none; counter-reset: sv-spec; }
.sv-spec-rows li { display: flex; gap: 18px; align-items: baseline; padding: 15px 0; border-bottom: 1px solid var(--sv-stroke-hair); font-size: 16px; line-height: 1.5; color: var(--wp--preset--color--ink-800); counter-increment: sv-spec; }
.sv-spec-rows li::before { content: counter(sv-spec, decimal-leading-zero); min-width: 26px; font-family: var(--wp--preset--font-family--mono); font-size: 12px; color: var(--wp--preset--color--ink-600); }

/* ---- backed by science (S:2035-2052) and the closing band (S:2055-2075) ---- */
.sv-rl-science { display: grid; grid-template-columns: minmax(0, 1fr) 460px; gap: 32px; align-items: start; }
.sv-rl-sec.sv-rl-science > * { margin-top: 0; }
.sv-rl-study { padding: 40px 44px; border-radius: 24px; }
.sv-rl-study > .sv-rl-lede { max-width: 560px; margin-top: 16px; }
.sv-rl-study > .sv-pill { margin-top: 26px; }
.sv-rl-band { padding: 56px 60px; border: 1.5px solid #0b0c0d; border-radius: 24px; background: #0b0c0d; }
.sv-rl-band .sv-eyebrow { color: var(--wp--preset--color--primary); }
.sv-rl-band-row { display: grid; grid-template-columns: minmax(0, 1fr) 460px; gap: 60px; align-items: end; margin-top: 18px; }
.sv-rl-band-h { font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: clamp(28px, 3.6vw, 52px); line-height: 1.05; letter-spacing: -.03em; text-wrap: pretty; color: var(--wp--preset--color--primary); }
.sv-rl-band .sv-rl-lede { color: var(--wp--preset--color--on-dark-dim); }
.sv-rl-band-foot { display: flex; align-items: center; justify-content: space-between; gap: 24px 32px; margin-top: 40px; padding-top: 30px; border-top: 1px solid rgba(255, 255, 255, .14); }
.sv-rl-signoff { font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: 20px; letter-spacing: -.01em; color: var(--wp--preset--color--primary); }
.sv-rl-pills { display: flex; flex-wrap: wrap; gap: 12px; }
.sv-pill.is-ghost { border-color: var(--wp--preset--color--grey); background: transparent; color: var(--wp--preset--color--on-dark); }

/* ---- the option-stage and hotspots blocks on this light page (S:1527-1567, S:1640-1657, S:1742-1797): ink text on glass
   options, the photo on a black stage, and (live, above 720 px) the caption over the stage's lower left as in the handoff.
   The blocks' own rules (dark surface) stay for any dark section; these win by the page scope. ---- */
.sv-redlight :is(.wp-block-salvagente-option-stage, .wp-block-salvagente-hotspots) { color: var(--wp--preset--color--ink-800); }
.sv-redlight :is(.wp-block-salvagente-option-stage .sv-opt, .wp-block-salvagente-hotspots .sv-pin-row) {
	border: 1px solid rgba(114, 115, 116, .45);
	background: rgba(255, 255, 255, .42);
	color: var(--wp--preset--color--ink-800);
}
.sv-redlight :is(.wp-block-salvagente-option-stage .sv-opt, .wp-block-salvagente-hotspots .sv-pin-row)[aria-pressed="true"] {
	border: 1.5px solid var(--wp--preset--color--ink-900);
	background: #fff;
	color: var(--wp--preset--color--ink-900);
}
.sv-redlight :is(.wp-block-salvagente-option-stage .sv-opt, .wp-block-salvagente-hotspots .sv-pin-row):focus-visible { outline-color: var(--wp--preset--color--ink); }
.sv-redlight .wp-block-salvagente-option-stage .sv-opt-label { font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: 13px; letter-spacing: .1em; text-transform: uppercase; }
.sv-redlight .wp-block-salvagente-option-stage :is(.sv-opt-num, .sv-opt-tag, .sv-opt-sub) { color: var(--wp--preset--color--ink-600); }
.sv-redlight .wp-block-salvagente-option-stage .sv-swatch { border-color: rgba(12, 26, 42, .2); }
.sv-redlight .wp-block-salvagente-option-stage .sv-stage::before { box-sizing: border-box; border: 1px solid rgba(114, 115, 116, .45); border-radius: 20px; background: #000; }
.sv-redlight .wp-block-salvagente-option-stage .sv-stage-img { border-radius: 20px; }
.sv-redlight .wp-block-salvagente-option-stage .sv-stage-cap { color: var(--wp--preset--color--ink-800); }
.sv-redlight .wp-block-salvagente-option-stage .sv-stage-cap .sv-label { color: var(--wp--preset--color--teal-aa); }
.sv-redlight .wp-block-salvagente-option-stage .sv-stage-stats { gap: 16px; }
.sv-redlight .wp-block-salvagente-option-stage .sv-stage-stats > div {
	flex: 1 1 160px;
	gap: 10px;
	padding: 24px 26px;
	border: 1px solid var(--sv-stroke-glass);
	border-radius: 20px;
	background: rgba(255, 255, 255, .42);
	box-shadow: 0 10px 40px -10px rgba(58, 89, 168, .18);
}
.sv-redlight .wp-block-salvagente-option-stage .sv-stage-stats dt { font-family: inherit; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--wp--preset--color--ink-600); }
.sv-redlight .wp-block-salvagente-option-stage .sv-stage-stats dd { font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: 15px; letter-spacing: .02em; color: var(--wp--preset--color--ink-900); }
@media (min-width: 1101px) {   /* Ana fix 4: at 721-1100 the stage is too narrow for an overlaid caption */
	.sv-redlight .wp-block-salvagente-option-stage.is-live .sv-stage-cap {
		position: absolute;
		left: 28px;
		top: calc(var(--sv-stage-h) - 26px);
		z-index: 1;
		max-width: min(420px, calc(100% - 56px));
		margin: 0;
		padding: 20px 24px;
		box-sizing: border-box;
		transform: translateY(-100%);
		border: 1px solid rgba(77, 197, 213, .45);
		border-radius: 16px;
		background: rgba(11, 12, 13, .78);
		-webkit-backdrop-filter: blur(10px);
		backdrop-filter: blur(10px);
		font-size: 15px;
		line-height: 1.55;
		color: var(--wp--preset--color--on-dark);
	}
	.sv-redlight .wp-block-salvagente-option-stage.is-live .sv-stage-cap .sv-label { color: var(--wp--preset--color--primary); }
}
/* Ana fixes 3-4: the stage does not clip the pin tags (the image carries the radius); the dot and focus ring hold on a light photo. */
.sv-redlight .wp-block-salvagente-hotspots .sv-pins-stage { overflow: visible; border: 1px solid rgba(114, 115, 116, .45); border-radius: 20px; background: #000; }
.sv-redlight .wp-block-salvagente-hotspots .sv-pins-img { border-radius: 20px; }
.sv-redlight .wp-block-salvagente-hotspots .sv-pin-dot { outline: 1px solid rgba(11, 12, 13, .75); }
.sv-redlight .wp-block-salvagente-hotspots .sv-pin:focus-visible { box-shadow: 0 0 0 4px #0b0c0d; }
.sv-redlight .wp-block-salvagente-hotspots .sv-pin-tag { font-size: 12px; color: #fff; }
.sv-redlight .wp-block-salvagente-hotspots .sv-pins-card {
	border: 1px solid var(--sv-stroke-glass);
	background: rgba(255, 255, 255, .42);
	box-shadow: 0 10px 40px -10px rgba(58, 89, 168, .18);
}
.sv-redlight .wp-block-salvagente-hotspots .sv-pins-name { color: var(--wp--preset--color--ink-900); }
.sv-redlight .wp-block-salvagente-hotspots :is(.sv-pins-desc, .sv-pins-all dd) { color: var(--wp--preset--color--ink-700); }

/* ---- 1100 px and below: heads, the NIR, care, science and band rows go to one column; card grids to two ---- */
@media (max-width: 1100px) {
	.sv-rl-head, .sv-rl-nir, .sv-rl-care-cols, .sv-rl-science, .sv-rl-band-row, .sv-rl-move, .sv-rl-charts, .sv-redlight .sv-spec-tabs { grid-template-columns: minmax(0, 1fr); gap: 16px; }
	.sv-rl-nir, .sv-rl-science { gap: 32px; }
	.sv-redlight :is(.wp-block-salvagente-option-stage, .wp-block-salvagente-hotspots) { grid-template-columns: minmax(0, 1fr); }   /* Ana fix 4 */
	.sv-rl-grid.is-3, .sv-rl-grid.is-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	/* The business cards stack under the photo. */
	.sv-rl-biz { display: flex; flex-direction: column; height: auto; padding: 0; overflow: visible; border: 0; border-radius: 0; }
	.sv-rl-biz-img { position: static; height: min(520px, 60vw); border: 1px solid rgba(114, 115, 116, .45); border-radius: 20px; }
	.sv-rl-biz-col { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; margin-top: 14px; }
	.sv-rl-biz-col + .sv-rl-biz-col { grid-column: auto; }
	.sv-rl-biz-card { background: rgba(255, 255, 255, .42); }
}

/* ---- 720 px and below (S:60-103): the section rhythm tightens, every grid is one column ---- */
@media (max-width: 720px) {
	.sv-rl-sec { padding-top: 56px; }
	.sv-rl-grid.is-3, .sv-rl-grid.is-4, .sv-rl-biz-col { grid-template-columns: minmax(0, 1fr); }
	.sv-rl-photo.is-wide { height: min(420px, 72vw); }
	.sv-rl-photo.is-tile { height: min(280px, 60vw); }
	.sv-rl-heal { padding: 28px 20px; }
	.sv-rl-study { padding: 26px 18px; }
	.sv-redlight .wp-block-tab-panel { padding: 26px 18px; }
	.sv-rl-band { padding: 32px 22px; }
	.sv-redlight .wp-block-salvagente-bar-chart { padding: 20px 16px; }   /* Ana fix 5 */
	.sv-rl-band-foot { flex-direction: column; align-items: flex-start; }
	.sv-rl-care > .wp-block-video { height: min(420px, 72vw); }
	.sv-redlight .wp-block-video .sv-rl-pill { left: 12px; bottom: 12px; max-width: calc(100% - 180px); letter-spacing: .12em; }
	.sv-video-toggle { right: 12px; bottom: 12px; }
	/* The stage is taller than the blocks' 39vw on a phone (S:60-61 keeps the photo legible). */
	.sv-redlight .wp-block-salvagente-option-stage .sv-stage::before,
	.sv-redlight .wp-block-salvagente-option-stage .sv-stage-img { height: min(420px, 72vw); }
}
