/**
 * Rebuild (v2) front-end — scoped to .mlp-rebuild only.
 * Prefer Tailwind utilities in markup; this file is for non-utility structure.
 *
 * Palette/tokens: L0 font/spacing presets emit as --mlr-* on .mlp-rebuild (Renderer).
 * D58/D63 color: tokens stay Tailwind text-* / bg-*; custom hex uses scoped --mlr-* vars.
 * Text cascades via inheritance — do not set an opaque color on .mlr-text.
 * Long unbroken strings: min-width:0 on column/module + overflow-wrap on text surfaces (2026-08-11);
 * custom-table adds table-layout:fixed + wrapper min-width:0 (gate 3 residual).
 * D15 Text Gold line: flex row + .mlr-text__gold-rule (2026-08-11).
 * Product + bg-stack: layered-only content z-index + :has() isolation exceptions (D57/D54; Classic port).
 * D69 Shop circle: scoped named effect kind on the existing D66 emit targets.
 * D70 Rise Left/Right: target-width off-screen travel + root overflow-x clip guard.
 * D71 Buttons named icons: module-owned token emits after each item label.
 * D72 Product-page ATC fill: Button chrome token/custom paint from Product frame state.
 * D73 residual: Cart preview contain/type + centered line-item stack + isolated-axis clip.
 * D74 Badge overlay: absolute corner label; span chrome; shape/width/hang vs Surface clip; inward offset X/Y.
 * D88 residual: toggle icon facing + border-mismatch nudge + 540° spin; D90 shine gleam; P2 notice fade.
 * Partner lock 2026-08-31: None 0deg; cart glyph counters Spin/Flip; dock Surface border stays on-screen at 768.
 * D91 Zoom Image: clip `.mlr-image` figure (not module box); scale inner `img` / `.mlr-image-icon` only.
 * D114 Image fill the column (Done — browser-verified 2026-09-03): Stretch lone-module `h-full` + both image dims → figure/`img` height chain; `object-fit: cover` on `img` when both dims set (md|lg).
 * D124 Custom table cell bg (CCU 2026-09-03): bright-orange + dark-green axis classes on `.mlr-custom-table__inner`; existing orange unchanged.
 * D104 Media (CCU 2026-08-28): `.mlr-media` frame sizes the package video and boxes the oEmbed iframe — provider chrome untouched.
 * D109: `.mlr-reveal-pre` hidden cells apply only under `.mlr-js` on `document.documentElement`.
 * D97 Background shape (CCU 2026-08-28): one package `clip-path` on `.mlr-bg-stack`, composed per edge; the wrapper and the content rectangle are never clipped.
 */

/* D74 — overlay badge on Column and wave-1 module wrappers. */
.mlp-rebuild .mlr-badge-host {
	position: relative;
}

.mlp-rebuild .mlr-badge-host.mlr-badge-host--hang {
	overflow: visible !important;
}

.mlp-rebuild .mlr-badge {
	position: absolute;
	z-index: 1;
	max-width: calc(100% - 1rem);
	width: max-content;
	padding: 0.25rem 0.5rem;
	line-height: 1.2;
	overflow-wrap: anywhere;
	font-size: 1rem;
	font-family: poppins, sans-serif;
	font-weight: 400;
	font-style: normal;
	text-transform: none;
	letter-spacing: normal;
	box-sizing: border-box;
}

.mlp-rebuild .mlr-badge.mlr-badge--circle {
	border-radius: 50%;
	aspect-ratio: 1 / 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-align: center;
}

.mlp-rebuild .mlr-badge.mlr-badge--has-width:not(.mlr-badge--circle) {
	width: var(--mlr-badge-width);
	max-width: var(--mlr-badge-width);
}

.mlp-rebuild .mlr-badge.mlr-badge--circle.mlr-badge--has-width {
	width: var(--mlr-badge-width);
	height: var(--mlr-badge-width);
	max-width: var(--mlr-badge-width);
}

.mlp-rebuild .mlr-badge-host--hang.mlr-badge-pos-top-right > .mlr-badge {
	transform: translate(50%, -50%);
}

.mlp-rebuild .mlr-badge-host--hang.mlr-badge-pos-top-left > .mlr-badge {
	transform: translate(-50%, -50%);
}

.mlp-rebuild .mlr-badge-host--hang.mlr-badge-pos-bottom-right > .mlr-badge {
	transform: translate(50%, 50%);
}

.mlp-rebuild .mlr-badge-host--hang.mlr-badge-pos-bottom-left > .mlr-badge {
	transform: translate(-50%, 50%);
}

.mlp-rebuild .mlr-badge-pos-top-left > .mlr-badge {
	top: 0.5rem;
	right: auto;
	bottom: auto;
	left: 0.5rem;
	margin-left: 0;
}

.mlp-rebuild .mlr-badge-pos-top-right > .mlr-badge {
	top: 0.5rem;
	right: 0.5rem;
	bottom: auto;
	left: 0;
	margin-left: auto;
}

.mlp-rebuild .mlr-badge-pos-bottom-left > .mlr-badge {
	top: auto;
	right: auto;
	bottom: 0.5rem;
	left: 0.5rem;
	margin-left: 0;
}

.mlp-rebuild .mlr-badge-pos-bottom-right > .mlr-badge {
	top: auto;
	right: 0.5rem;
	bottom: 0.5rem;
	left: 0;
	margin-left: auto;
}

.mlp-rebuild .mlr-badge-pos-top-left > .mlr-badge.mlr-badge--has-offset {
	transform: translate(var(--mlr-badge-offset-x, 0), var(--mlr-badge-offset-y, 0));
}

.mlp-rebuild .mlr-badge-pos-top-right > .mlr-badge.mlr-badge--has-offset {
	transform: translate(calc(-1 * var(--mlr-badge-offset-x, 0)), var(--mlr-badge-offset-y, 0));
}

.mlp-rebuild .mlr-badge-pos-bottom-left > .mlr-badge.mlr-badge--has-offset {
	transform: translate(var(--mlr-badge-offset-x, 0), calc(-1 * var(--mlr-badge-offset-y, 0)));
}

.mlp-rebuild .mlr-badge-pos-bottom-right > .mlr-badge.mlr-badge--has-offset {
	transform: translate(calc(-1 * var(--mlr-badge-offset-x, 0)), calc(-1 * var(--mlr-badge-offset-y, 0)));
}

.mlp-rebuild .mlr-badge-host--hang.mlr-badge-pos-top-left > .mlr-badge.mlr-badge--has-offset {
	transform: translate(-50%, -50%) translate(var(--mlr-badge-offset-x, 0), var(--mlr-badge-offset-y, 0));
}

.mlp-rebuild .mlr-badge-host--hang.mlr-badge-pos-top-right > .mlr-badge.mlr-badge--has-offset {
	transform: translate(50%, -50%) translate(calc(-1 * var(--mlr-badge-offset-x, 0)), var(--mlr-badge-offset-y, 0));
}

.mlp-rebuild .mlr-badge-host--hang.mlr-badge-pos-bottom-left > .mlr-badge.mlr-badge--has-offset {
	transform: translate(-50%, 50%) translate(var(--mlr-badge-offset-x, 0), calc(-1 * var(--mlr-badge-offset-y, 0)));
}

.mlp-rebuild .mlr-badge-host--hang.mlr-badge-pos-bottom-right > .mlr-badge.mlr-badge--has-offset {
	transform: translate(50%, 50%) translate(calc(-1 * var(--mlr-badge-offset-x, 0)), calc(-1 * var(--mlr-badge-offset-y, 0)));
}

.mlp-rebuild .mlr-badge.mlr-badge-bg-custom {
	background-color: var(--mlr-badge-bg);
}

.mlp-rebuild .mlr-badge.mlr-badge-border-custom {
	border-color: var(--mlr-badge-border-color);
}

.mlp-rebuild .mlr-badge:not(.mlr-badge--path) .mlr-badge-run-a,
.mlp-rebuild .mlr-badge:not(.mlr-badge--path) .mlr-badge-run-b,
.mlp-rebuild .mlr-badge:not(.mlr-badge--path) .mlr-badge-run-c {
	display: block;
}

.mlp-rebuild .mlr-badge.mlr-badge--circle:not(.mlr-badge--path) {
	flex-direction: column;
}

.mlp-rebuild .mlr-badge.mlr-badge--path {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	overflow: visible;
}

.mlp-rebuild .mlr-badge.mlr-badge--path .mlr-badge-path-svg {
	display: block;
	width: 100%;
	height: 100%;
	overflow: visible;
}

.mlp-rebuild .mlr-badge.mlr-badge--path:not(.mlr-badge--has-width) .mlr-badge-path-svg {
	width: 6rem;
	height: 6rem;
}

.mlp-rebuild .mlr-badge.mlr-badge--path.mlr-badge--has-width .mlr-badge-path-svg {
	width: var(--mlr-badge-width);
	height: var(--mlr-badge-width);
}

.mlp-rebuild .mlr-badge.mlr-badge--path .mlr-badge-path-text {
	fill: currentColor;
	font-size: 8px;
}

.mlp-rebuild .mlr-badge.mlr-badge--path-inside .mlr-badge-path-text {
	dominant-baseline: text-before-edge;
}

.mlp-rebuild .mlr-badge.mlr-badge--path-outside .mlr-badge-path-text {
	dominant-baseline: text-after-edge;
}

/* D95 — Path motion spin (Badge storage; not Animation / not A3). */
@keyframes mlr-badge-path-spin {
	from {
		transform: rotate(0deg);
	}

	to {
		transform: rotate(360deg);
	}
}

.mlp-rebuild .mlr-badge.mlr-badge--path-spin .mlr-badge-path-svg {
	transform-origin: center;
	animation: mlr-badge-path-spin 12s linear infinite;
}

@media (prefers-reduced-motion: reduce) {
	.mlp-rebuild .mlr-badge.mlr-badge--path-spin .mlr-badge-path-svg {
		animation: none;
	}
}

/* D58 — default body copy color when no ancestor sets text-* (charcoal = tailwind.config.js). */
.mlp-rebuild {
	color: #332e21;
}

/* D63 per-field custom colors — sanitized hex is emitted only through these vars. */
.mlp-rebuild .mlr-color-bg-custom {
	background-color: var(--mlr-color-bg);
}

.mlp-rebuild .mlr-surface-border-custom {
	border-color: var(--mlr-surface-border-color);
}

.mlp-rebuild .mlr-h1 {
	margin: 0 0 1.5rem;
	font-size: var(--mlr-font-title, clamp(1.75rem, 2.5vw, 3rem));
	line-height: 1.2;
	color: var(--mlr-color-text, #1a1a1a);
}

.mlp-rebuild .mlr-section {
	position: relative;
	width: 100%;
}

/* Background layers (Section wave 1) — absolute fill under content; Surface radius clips via overflow-hidden. */
.mlp-rebuild .mlr-section > .mlr-bg-stack {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	overflow: hidden;
}

.mlp-rebuild .mlr-section > .mlr-bg-stack .mlr-bg-layer {
	position: absolute;
	inset: 0;
}

.mlp-rebuild .mlr-section > .mlr-bg-stack .mlr-bg-layer--image {
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

/* D125 Background layer gradient — static linear-gradient via D43 vars (no author CSS string). */
.mlp-rebuild .mlr-section > .mlr-bg-stack .mlr-bg-layer--gradient.mlr-bgl-grad-down {
	background-image: linear-gradient(180deg, var(--mlr-bgl-from), var(--mlr-bgl-to));
}

.mlp-rebuild .mlr-section > .mlr-bg-stack .mlr-bg-layer--gradient.mlr-bgl-grad-across {
	background-image: linear-gradient(90deg, var(--mlr-bgl-from), var(--mlr-bgl-to));
}

.mlp-rebuild .mlr-section > .mlr-bg-stack .mlr-bg-layer--gradient.mlr-bgl-grad-diagonal {
	background-image: linear-gradient(135deg, var(--mlr-bgl-from), var(--mlr-bgl-to));
}

/*
 * D97 Background shape (BG1) — scissors on the paint, nothing else.
 *
 * One `clip-path` per stack, composed from four custom properties, one per edge: the
 * polygon walks the perimeter clockwise (top left→right, right top→bottom, bottom
 * right→left, left bottom→top) and each edge contributes its own run of points. That is
 * what makes the edges combine — Top + Bottom is one polygon, not two clip-paths, which
 * CSS cannot stack. An edge nobody picked keeps its straight default.
 *
 * `--mlr-bg-clip-amp` is the one package depth (D97 Out: no free px field). Default
 * `clamp(1.25rem, 6dvw, 3rem)` — desktop ceiling 3rem; Shallow / Deep re-point the
 * same token with ceilings 1.5rem / 5rem. `q0…q8` are amplitude fractions of a sine
 * amplitude fractions of a sine sampled every eighth, reused by Wave / Curve / Triangle
 * and all four edges; `c1…c5` are the same idea for the flatter-shouldered half-circle
 * profile. `i*` / `j*` are those same distances measured from the far side.
 *
 * Carve depth (residual 2026-08-31) re-points `--mlr-bg-clip-amp`, and Carve face reverses
 * the ladders themselves, so every shape and every edge picks the change up without a
 * polygon of its own — `i*` / `j*` follow because custom properties substitute per element
 * after the cascade has picked the winning `q*` / `c*`.
 *
 * The carve is on `.mlr-bg-stack` only. The section wrapper, the content rectangle, and
 * the Surface border are never clipped, and no wrapper `overflow: hidden` is added for it.
 */
.mlp-rebuild .mlr-bg-clip {
	--mlr-bg-clip-amp: clamp(1.25rem, 6dvw, 3rem);

	--mlr-bg-clip-q0: 0rem;
	--mlr-bg-clip-q1: calc(var(--mlr-bg-clip-amp) * 0.038);
	--mlr-bg-clip-q2: calc(var(--mlr-bg-clip-amp) * 0.146);
	--mlr-bg-clip-q3: calc(var(--mlr-bg-clip-amp) * 0.309);
	--mlr-bg-clip-q4: calc(var(--mlr-bg-clip-amp) * 0.5);
	--mlr-bg-clip-q5: calc(var(--mlr-bg-clip-amp) * 0.691);
	--mlr-bg-clip-q6: calc(var(--mlr-bg-clip-amp) * 0.854);
	--mlr-bg-clip-q7: calc(var(--mlr-bg-clip-amp) * 0.962);
	--mlr-bg-clip-q8: var(--mlr-bg-clip-amp);

	--mlr-bg-clip-c1: calc(var(--mlr-bg-clip-amp) * 0.553);
	--mlr-bg-clip-c2: calc(var(--mlr-bg-clip-amp) * 0.745);
	--mlr-bg-clip-c3: calc(var(--mlr-bg-clip-amp) * 0.866);
	--mlr-bg-clip-c4: calc(var(--mlr-bg-clip-amp) * 0.943);
	--mlr-bg-clip-c5: calc(var(--mlr-bg-clip-amp) * 0.986);

	--mlr-bg-clip-j1: calc(100% - var(--mlr-bg-clip-c1));
	--mlr-bg-clip-j2: calc(100% - var(--mlr-bg-clip-c2));
	--mlr-bg-clip-j3: calc(100% - var(--mlr-bg-clip-c3));
	--mlr-bg-clip-j4: calc(100% - var(--mlr-bg-clip-c4));
	--mlr-bg-clip-j5: calc(100% - var(--mlr-bg-clip-c5));

	--mlr-bg-clip-i0: calc(100% - var(--mlr-bg-clip-q0));
	--mlr-bg-clip-i1: calc(100% - var(--mlr-bg-clip-q1));
	--mlr-bg-clip-i2: calc(100% - var(--mlr-bg-clip-q2));
	--mlr-bg-clip-i3: calc(100% - var(--mlr-bg-clip-q3));
	--mlr-bg-clip-i4: calc(100% - var(--mlr-bg-clip-q4));
	--mlr-bg-clip-i5: calc(100% - var(--mlr-bg-clip-q5));
	--mlr-bg-clip-i6: calc(100% - var(--mlr-bg-clip-q6));
	--mlr-bg-clip-i7: calc(100% - var(--mlr-bg-clip-q7));
	--mlr-bg-clip-i8: calc(100% - var(--mlr-bg-clip-q8));

	--mlr-bg-clip-t: 0% 0%, 100% 0%;
	--mlr-bg-clip-r: 100% 100%;
	--mlr-bg-clip-b: 0% 100%;
	--mlr-bg-clip-l: 0% 0%;

	clip-path: polygon(
		var(--mlr-bg-clip-t),
		var(--mlr-bg-clip-r),
		var(--mlr-bg-clip-b),
		var(--mlr-bg-clip-l)
	);
}

/* Carve depth — three package steps on the one amplitude; Default is the base rule above. */
.mlp-rebuild .mlr-bg-clip-shallow {
	--mlr-bg-clip-amp: clamp(0.75rem, 3dvw, 1.5rem);
}

.mlp-rebuild .mlr-bg-clip-deep {
	--mlr-bg-clip-amp: clamp(2rem, 10dvw, 5rem);
}

/*
 * Carve face Outward — the ladders run the other way, so each shape's deepest sample
 * lands where its shallowest one did and the bulge turns away from the interior. Nothing
 * leaves the amplitude band, so the stack box does not grow and no paint escapes it.
 */
.mlp-rebuild .mlr-bg-clip-outward {
	--mlr-bg-clip-q0: var(--mlr-bg-clip-amp);
	--mlr-bg-clip-q1: calc(var(--mlr-bg-clip-amp) * 0.962);
	--mlr-bg-clip-q2: calc(var(--mlr-bg-clip-amp) * 0.854);
	--mlr-bg-clip-q3: calc(var(--mlr-bg-clip-amp) * 0.691);
	--mlr-bg-clip-q4: calc(var(--mlr-bg-clip-amp) * 0.5);
	--mlr-bg-clip-q5: calc(var(--mlr-bg-clip-amp) * 0.309);
	--mlr-bg-clip-q6: calc(var(--mlr-bg-clip-amp) * 0.146);
	--mlr-bg-clip-q7: calc(var(--mlr-bg-clip-amp) * 0.038);
	--mlr-bg-clip-q8: 0rem;

	--mlr-bg-clip-c1: calc(var(--mlr-bg-clip-amp) * 0.447);
	--mlr-bg-clip-c2: calc(var(--mlr-bg-clip-amp) * 0.255);
	--mlr-bg-clip-c3: calc(var(--mlr-bg-clip-amp) * 0.134);
	--mlr-bg-clip-c4: calc(var(--mlr-bg-clip-amp) * 0.057);
	--mlr-bg-clip-c5: calc(var(--mlr-bg-clip-amp) * 0.014);
}

/* Wave — one full period across the edge; corners sit at half depth. */
.mlp-rebuild .mlr-bg-clip-wave.mlr-bg-clip-top {
	--mlr-bg-clip-t: 0% var(--mlr-bg-clip-q4), 6.25% var(--mlr-bg-clip-q5), 12.5% var(--mlr-bg-clip-q6), 18.75% var(--mlr-bg-clip-q7), 25% var(--mlr-bg-clip-q8), 31.25% var(--mlr-bg-clip-q7), 37.5% var(--mlr-bg-clip-q6), 43.75% var(--mlr-bg-clip-q5), 50% var(--mlr-bg-clip-q4), 56.25% var(--mlr-bg-clip-q3), 62.5% var(--mlr-bg-clip-q2), 68.75% var(--mlr-bg-clip-q1), 75% var(--mlr-bg-clip-q0), 81.25% var(--mlr-bg-clip-q1), 87.5% var(--mlr-bg-clip-q2), 93.75% var(--mlr-bg-clip-q3), 100% var(--mlr-bg-clip-q4);
}

.mlp-rebuild .mlr-bg-clip-wave.mlr-bg-clip-right {
	--mlr-bg-clip-r: var(--mlr-bg-clip-i4) 0%, var(--mlr-bg-clip-i5) 6.25%, var(--mlr-bg-clip-i6) 12.5%, var(--mlr-bg-clip-i7) 18.75%, var(--mlr-bg-clip-i8) 25%, var(--mlr-bg-clip-i7) 31.25%, var(--mlr-bg-clip-i6) 37.5%, var(--mlr-bg-clip-i5) 43.75%, var(--mlr-bg-clip-i4) 50%, var(--mlr-bg-clip-i3) 56.25%, var(--mlr-bg-clip-i2) 62.5%, var(--mlr-bg-clip-i1) 68.75%, var(--mlr-bg-clip-i0) 75%, var(--mlr-bg-clip-i1) 81.25%, var(--mlr-bg-clip-i2) 87.5%, var(--mlr-bg-clip-i3) 93.75%, var(--mlr-bg-clip-i4) 100%;
}

.mlp-rebuild .mlr-bg-clip-wave.mlr-bg-clip-bottom {
	--mlr-bg-clip-b: 100% var(--mlr-bg-clip-i4), 93.75% var(--mlr-bg-clip-i5), 87.5% var(--mlr-bg-clip-i6), 81.25% var(--mlr-bg-clip-i7), 75% var(--mlr-bg-clip-i8), 68.75% var(--mlr-bg-clip-i7), 62.5% var(--mlr-bg-clip-i6), 56.25% var(--mlr-bg-clip-i5), 50% var(--mlr-bg-clip-i4), 43.75% var(--mlr-bg-clip-i3), 37.5% var(--mlr-bg-clip-i2), 31.25% var(--mlr-bg-clip-i1), 25% var(--mlr-bg-clip-i0), 18.75% var(--mlr-bg-clip-i1), 12.5% var(--mlr-bg-clip-i2), 6.25% var(--mlr-bg-clip-i3), 0% var(--mlr-bg-clip-i4);
}

.mlp-rebuild .mlr-bg-clip-wave.mlr-bg-clip-left {
	--mlr-bg-clip-l: var(--mlr-bg-clip-q4) 100%, var(--mlr-bg-clip-q5) 93.75%, var(--mlr-bg-clip-q6) 87.5%, var(--mlr-bg-clip-q7) 81.25%, var(--mlr-bg-clip-q8) 75%, var(--mlr-bg-clip-q7) 68.75%, var(--mlr-bg-clip-q6) 62.5%, var(--mlr-bg-clip-q5) 56.25%, var(--mlr-bg-clip-q4) 50%, var(--mlr-bg-clip-q3) 43.75%, var(--mlr-bg-clip-q2) 37.5%, var(--mlr-bg-clip-q1) 31.25%, var(--mlr-bg-clip-q0) 25%, var(--mlr-bg-clip-q1) 18.75%, var(--mlr-bg-clip-q2) 12.5%, var(--mlr-bg-clip-q3) 6.25%, var(--mlr-bg-clip-q4) 0%;
}

/* Curve — one arc, deepest at the middle, corners untouched. */
.mlp-rebuild .mlr-bg-clip-curve.mlr-bg-clip-top {
	--mlr-bg-clip-t: 0% var(--mlr-bg-clip-q0), 8.333% var(--mlr-bg-clip-q3), 16.667% var(--mlr-bg-clip-q4), 25% var(--mlr-bg-clip-q5), 33.333% var(--mlr-bg-clip-q6), 41.667% var(--mlr-bg-clip-q7), 50% var(--mlr-bg-clip-q8), 58.333% var(--mlr-bg-clip-q7), 66.667% var(--mlr-bg-clip-q6), 75% var(--mlr-bg-clip-q5), 83.333% var(--mlr-bg-clip-q4), 91.667% var(--mlr-bg-clip-q3), 100% var(--mlr-bg-clip-q0);
}

.mlp-rebuild .mlr-bg-clip-curve.mlr-bg-clip-right {
	--mlr-bg-clip-r: var(--mlr-bg-clip-i0) 0%, var(--mlr-bg-clip-i3) 8.333%, var(--mlr-bg-clip-i4) 16.667%, var(--mlr-bg-clip-i5) 25%, var(--mlr-bg-clip-i6) 33.333%, var(--mlr-bg-clip-i7) 41.667%, var(--mlr-bg-clip-i8) 50%, var(--mlr-bg-clip-i7) 58.333%, var(--mlr-bg-clip-i6) 66.667%, var(--mlr-bg-clip-i5) 75%, var(--mlr-bg-clip-i4) 83.333%, var(--mlr-bg-clip-i3) 91.667%, var(--mlr-bg-clip-i0) 100%;
}

.mlp-rebuild .mlr-bg-clip-curve.mlr-bg-clip-bottom {
	--mlr-bg-clip-b: 100% var(--mlr-bg-clip-i0), 91.667% var(--mlr-bg-clip-i3), 83.333% var(--mlr-bg-clip-i4), 75% var(--mlr-bg-clip-i5), 66.667% var(--mlr-bg-clip-i6), 58.333% var(--mlr-bg-clip-i7), 50% var(--mlr-bg-clip-i8), 41.667% var(--mlr-bg-clip-i7), 33.333% var(--mlr-bg-clip-i6), 25% var(--mlr-bg-clip-i5), 16.667% var(--mlr-bg-clip-i4), 8.333% var(--mlr-bg-clip-i3), 0% var(--mlr-bg-clip-i0);
}

.mlp-rebuild .mlr-bg-clip-curve.mlr-bg-clip-left {
	--mlr-bg-clip-l: var(--mlr-bg-clip-q0) 100%, var(--mlr-bg-clip-q3) 91.667%, var(--mlr-bg-clip-q4) 83.333%, var(--mlr-bg-clip-q5) 75%, var(--mlr-bg-clip-q6) 66.667%, var(--mlr-bg-clip-q7) 58.333%, var(--mlr-bg-clip-q8) 50%, var(--mlr-bg-clip-q7) 41.667%, var(--mlr-bg-clip-q6) 33.333%, var(--mlr-bg-clip-q5) 25%, var(--mlr-bg-clip-q4) 16.667%, var(--mlr-bg-clip-q3) 8.333%, var(--mlr-bg-clip-q0) 0%;
}

/* Triangle — one notch at the middle of the edge. */
.mlp-rebuild .mlr-bg-clip-triangle.mlr-bg-clip-top {
	--mlr-bg-clip-t: 0% var(--mlr-bg-clip-q0), 50% var(--mlr-bg-clip-q8), 100% var(--mlr-bg-clip-q0);
}

.mlp-rebuild .mlr-bg-clip-triangle.mlr-bg-clip-right {
	--mlr-bg-clip-r: var(--mlr-bg-clip-i0) 0%, var(--mlr-bg-clip-i8) 50%, var(--mlr-bg-clip-i0) 100%;
}

.mlp-rebuild .mlr-bg-clip-triangle.mlr-bg-clip-bottom {
	--mlr-bg-clip-b: 100% var(--mlr-bg-clip-i0), 50% var(--mlr-bg-clip-i8), 0% var(--mlr-bg-clip-i0);
}

.mlp-rebuild .mlr-bg-clip-triangle.mlr-bg-clip-left {
	--mlr-bg-clip-l: var(--mlr-bg-clip-q0) 100%, var(--mlr-bg-clip-q8) 50%, var(--mlr-bg-clip-q0) 0%;
}

/*
 * Half-circle — a sampled semicircle across the edge: same station spacing as Curve, but
 * the circle profile's steep flanks and flat crown instead of the sine's, which is what
 * reads as a dome rather than a swell. Still one polygon; no `circle()` disc.
 */
.mlp-rebuild .mlr-bg-clip-halfcircle.mlr-bg-clip-top {
	--mlr-bg-clip-t: 0% var(--mlr-bg-clip-q0), 8.333% var(--mlr-bg-clip-c1), 16.667% var(--mlr-bg-clip-c2), 25% var(--mlr-bg-clip-c3), 33.333% var(--mlr-bg-clip-c4), 41.667% var(--mlr-bg-clip-c5), 50% var(--mlr-bg-clip-q8), 58.333% var(--mlr-bg-clip-c5), 66.667% var(--mlr-bg-clip-c4), 75% var(--mlr-bg-clip-c3), 83.333% var(--mlr-bg-clip-c2), 91.667% var(--mlr-bg-clip-c1), 100% var(--mlr-bg-clip-q0);
}

.mlp-rebuild .mlr-bg-clip-halfcircle.mlr-bg-clip-right {
	--mlr-bg-clip-r: var(--mlr-bg-clip-i0) 0%, var(--mlr-bg-clip-j1) 8.333%, var(--mlr-bg-clip-j2) 16.667%, var(--mlr-bg-clip-j3) 25%, var(--mlr-bg-clip-j4) 33.333%, var(--mlr-bg-clip-j5) 41.667%, var(--mlr-bg-clip-i8) 50%, var(--mlr-bg-clip-j5) 58.333%, var(--mlr-bg-clip-j4) 66.667%, var(--mlr-bg-clip-j3) 75%, var(--mlr-bg-clip-j2) 83.333%, var(--mlr-bg-clip-j1) 91.667%, var(--mlr-bg-clip-i0) 100%;
}

.mlp-rebuild .mlr-bg-clip-halfcircle.mlr-bg-clip-bottom {
	--mlr-bg-clip-b: 100% var(--mlr-bg-clip-i0), 91.667% var(--mlr-bg-clip-j1), 83.333% var(--mlr-bg-clip-j2), 75% var(--mlr-bg-clip-j3), 66.667% var(--mlr-bg-clip-j4), 58.333% var(--mlr-bg-clip-j5), 50% var(--mlr-bg-clip-i8), 41.667% var(--mlr-bg-clip-j5), 33.333% var(--mlr-bg-clip-j4), 25% var(--mlr-bg-clip-j3), 16.667% var(--mlr-bg-clip-j2), 8.333% var(--mlr-bg-clip-j1), 0% var(--mlr-bg-clip-i0);
}

.mlp-rebuild .mlr-bg-clip-halfcircle.mlr-bg-clip-left {
	--mlr-bg-clip-l: var(--mlr-bg-clip-q0) 100%, var(--mlr-bg-clip-c1) 91.667%, var(--mlr-bg-clip-c2) 83.333%, var(--mlr-bg-clip-c3) 75%, var(--mlr-bg-clip-c4) 66.667%, var(--mlr-bg-clip-c5) 58.333%, var(--mlr-bg-clip-q8) 50%, var(--mlr-bg-clip-c5) 41.667%, var(--mlr-bg-clip-c4) 33.333%, var(--mlr-bg-clip-c3) 25%, var(--mlr-bg-clip-c2) 16.667%, var(--mlr-bg-clip-c1) 8.333%, var(--mlr-bg-clip-q0) 0%;
}

/* Layered sections — Classic .ml-has-bg-stack port: isolate stacking; content above stack. */
.mlp-rebuild .mlr-section:has(> .mlr-bg-stack) {
	isolation: isolate;
}

.mlp-rebuild .mlr-section:has(> .mlr-bg-stack) > :not(.mlr-bg-stack) {
	position: relative;
	z-index: 1;
}

/*
 * Product mirror + Background layers coexist (D57 / D54 tier-two).
 * Row/content z-index:1 is scoped to sections with bg-stack only (see above); Product
 * without layers must not get row z-index:1 or multiply looks like PDP with blend off.
 * Port of Classic v1 :has() exceptions under .mlp-rebuild / .mlr-* only.
 */
.mlp-rebuild .mlr-section:has(> .mlr-bg-stack):has(.mlr-product-mirror) > :not(.mlr-bg-stack) {
	z-index: auto;
}

.mlp-rebuild .mlr-column:has(.mlr-product-mirror) {
	isolation: auto;
}

/*
 * Decision 43 — spacing control emits --mlr-pad-* and --mlr-margin-* on wrappers.
 * Reset both properties on every consumer: custom properties inherit, and without
 * an own value the 0 fallback never fires — a section pad/margin would compound on
 * every nested row/column/module. An element's own declaration beats inheritance; an
 * inline style from emit() still wins on specificity.
 */
.mlp-rebuild .mlr-section,
.mlp-rebuild .mlr-row,
.mlp-rebuild .mlr-column,
.mlp-rebuild .mlr-module {
	--mlr-pad-block: 0;
	--mlr-pad-inline: 0;
	--mlr-margin-block: 0;
	--mlr-margin-inline: 0;
	--mlr-pad-top: 0;
	--mlr-pad-right: 0;
	--mlr-pad-bottom: 0;
	--mlr-pad-left: 0;
	--mlr-margin-top: 0;
	--mlr-margin-right: 0;
	--mlr-margin-bottom: 0;
	--mlr-margin-left: 0;
	padding-block: var(--mlr-pad-block, 0);
	padding-inline: var(--mlr-pad-inline, 0);
	margin-block: var(--mlr-margin-block, 0);
	margin-inline: var(--mlr-margin-inline, 0);
}

/* D115 — physical longhands apply only when emit sets a side var on the wrapper inline style. */
.mlp-rebuild .mlr-section[style*="--mlr-pad-top"],
.mlp-rebuild .mlr-row[style*="--mlr-pad-top"],
.mlp-rebuild .mlr-column[style*="--mlr-pad-top"],
.mlp-rebuild .mlr-module[style*="--mlr-pad-top"] {
	padding-top: var(--mlr-pad-top);
}

.mlp-rebuild .mlr-section[style*="--mlr-pad-right"],
.mlp-rebuild .mlr-row[style*="--mlr-pad-right"],
.mlp-rebuild .mlr-column[style*="--mlr-pad-right"],
.mlp-rebuild .mlr-module[style*="--mlr-pad-right"] {
	padding-right: var(--mlr-pad-right);
}

.mlp-rebuild .mlr-section[style*="--mlr-pad-bottom"],
.mlp-rebuild .mlr-row[style*="--mlr-pad-bottom"],
.mlp-rebuild .mlr-column[style*="--mlr-pad-bottom"],
.mlp-rebuild .mlr-module[style*="--mlr-pad-bottom"] {
	padding-bottom: var(--mlr-pad-bottom);
}

.mlp-rebuild .mlr-section[style*="--mlr-pad-left"],
.mlp-rebuild .mlr-row[style*="--mlr-pad-left"],
.mlp-rebuild .mlr-column[style*="--mlr-pad-left"],
.mlp-rebuild .mlr-module[style*="--mlr-pad-left"] {
	padding-left: var(--mlr-pad-left);
}

.mlp-rebuild .mlr-section[style*="--mlr-margin-top"],
.mlp-rebuild .mlr-row[style*="--mlr-margin-top"],
.mlp-rebuild .mlr-column[style*="--mlr-margin-top"],
.mlp-rebuild .mlr-module[style*="--mlr-margin-top"] {
	margin-top: var(--mlr-margin-top);
}

.mlp-rebuild .mlr-section[style*="--mlr-margin-right"],
.mlp-rebuild .mlr-row[style*="--mlr-margin-right"],
.mlp-rebuild .mlr-column[style*="--mlr-margin-right"],
.mlp-rebuild .mlr-module[style*="--mlr-margin-right"] {
	margin-right: var(--mlr-margin-right);
}

.mlp-rebuild .mlr-section[style*="--mlr-margin-bottom"],
.mlp-rebuild .mlr-row[style*="--mlr-margin-bottom"],
.mlp-rebuild .mlr-column[style*="--mlr-margin-bottom"],
.mlp-rebuild .mlr-module[style*="--mlr-margin-bottom"] {
	margin-bottom: var(--mlr-margin-bottom);
}

.mlp-rebuild .mlr-section[style*="--mlr-margin-left"],
.mlp-rebuild .mlr-row[style*="--mlr-margin-left"],
.mlp-rebuild .mlr-column[style*="--mlr-margin-left"],
.mlp-rebuild .mlr-module[style*="--mlr-margin-left"] {
	margin-left: var(--mlr-margin-left);
}

/*
 * D87 hit — Hover/Click on Section and module wrappers is the level content,
 * not Spacing pad and not empty wrapper around a narrower child (Image photo).
 * Direct children of the wrapper are the level content (`pointer-events: auto`).
 * Overlay layers keep none. Buttons (.ml-btn) and Product (.mlr-product) are
 * D66 inner targets and are not these wrappers. In view still observes the
 * wrapper box.
 */
.mlp-rebuild .mlr-section.mlr-reveal-via-hover,
.mlp-rebuild .mlr-section.mlr-reveal-via-click,
.mlp-rebuild .mlr-module.mlr-reveal-via-hover,
.mlp-rebuild .mlr-module.mlr-reveal-via-click {
	pointer-events: none;
}

.mlp-rebuild .mlr-section.mlr-reveal-via-hover > *,
.mlp-rebuild .mlr-section.mlr-reveal-via-click > *,
.mlp-rebuild .mlr-module.mlr-reveal-via-hover > *,
.mlp-rebuild .mlr-module.mlr-reveal-via-click > * {
	pointer-events: auto;
}

.mlp-rebuild .mlr-reveal-via-hover > .mlr-fx-cluck-layer,
.mlp-rebuild .mlr-reveal-via-click > .mlr-fx-cluck-layer,
.mlp-rebuild .mlr-reveal-via-hover > .mlr-fx-accent-layer,
.mlp-rebuild .mlr-reveal-via-click > .mlr-fx-accent-layer {
	pointer-events: none;
}

/*
 * Long unbroken strings in editable text/HTML must not expand column/module min-content
 * width (layout hardening 2026-08-11). Grid/flex children need min-width: 0 to shrink;
 * overflow-wrap: break-word on module text surfaces (consistent strategy site-wide).
 */
.mlp-rebuild .mlr-column,
.mlp-rebuild .mlr-module {
	min-width: 0;
}

/*
 * D11/D43 residual — individual Column custom width stays stacked w-full on mobile.
 * The marker's var overrides w-full / row fraction classes only from the L0 breakpoint.
 */
@media (min-width: 768px) {
	.mlp-rebuild[data-mlr-breakpoint="md"] .mlr-column.mlr-column--has-width {
		width: var(--mlr-column-width);
		flex-grow: 0;
		flex-shrink: 0;
	}
}

@media (min-width: 1024px) {
	.mlp-rebuild[data-mlr-breakpoint="lg"] .mlr-column.mlr-column--has-width {
		width: var(--mlr-column-width);
		flex-grow: 0;
		flex-shrink: 0;
	}
}

/* D76 Column sticky — in-flow pin inside row at top: 0. */
.mlp-rebuild .mlr-column.mlr-sticky {
	position: sticky;
	top: 0;
}

/*
 * Partner lock 2026-09-03 — dock-local length copies of the Spacing margin tokens.
 * D43 resets --mlr-margin-* to a unitless 0 on every wrapper, and Horizontal margin
 * Auto emits `auto`. calc() rejects both, and a rejected calc() voids the whole
 * declaration that reads it — that is how the dock lost its max-height entirely.
 * A registered <length-percentage> coerces 0 to 0px and falls back to 0px for auto,
 * so the dock width / height arithmetic below stays valid for every authored margin.
 * Inherited so the inner .mlr-column can read the shell's vertical margin: its own
 * --mlr-margin-block is reset to 0 by the D43 rule and cannot answer for the shell.
 */
@property --mlr-dock-margin-inline {
	syntax: "<length-percentage>";
	inherits: true;
	initial-value: 0px;
}

@property --mlr-dock-margin-block {
	syntax: "<length-percentage>";
	inherits: true;
	initial-value: 0px;
}

/*
 * D77 Column dock — hoisted direct child of .mlp-rebuild; pin edge + Spacing margin gap.
 * D80 — collapsed panel fully off-canvas; flush toggle; package SVG icons.
 * D81 — collapsed chrome pad 0; expanded sit grid (four-way × both pins).
 * D83 — two-ring sit: Inside beside panel in column; Outside hangs outside column box.
 * D84 residual — .mlr-dock-shell frames (fixed, pin, max-height, overflow visible).
 * D113 — Fit mobile height: --mlr-dock-fit-nav 8rem; phone expanded shell max-height min().
 * Owner call 2026-09-03 — Fit mobile phone centers the toggle on the panel edge (not its
 * top) so it holds still on expand; non-Fit phone docks and 768+ keep the D83 nudge.
 * Partner lock 2026-09-03 — collapsed custom-width hugs the toggle (md/lg has-width must not keep the strip).
 * Partner lock 2026-09-03 — Fit mobile is one subtraction per axis:
 *   width  = 100% − 2 × --mlr-dock-margin-inline − --mlr-dock-fit-toggle
 *   height = min(authored cap, 100dvh − --mlr-dock-fit-nav) − 2 × --mlr-dock-margin-block
 * Owner call 2026-09-03 — the H margin is mirrored on the free side so the hanging
 * toggle sits the same distance in as the panel's pin gap. The authored margin itself
 * still lives on the pin edge only (D77): the second term is clamp reserve, not margin.
 * Owner call 2026-09-03 — Fit mobile also *positions*. The clearance used to come off
 * the bottom of a top: 0 shell, so a dock with no V margin sat under the sticky header
 * with dead space below it. The band is now [nav + V gap, screen bottom − V gap], held
 * by top / bottom insets, and the dock is centered in it: leftover space splits evenly,
 * so the V gap is the minimum at each end rather than the whole gap. The V gap clamps
 * the authored margin into [--mlr-dock-fit-gap, --mlr-dock-fit-gap-max]: the floor
 * keeps tall content off both edges, the ceiling keeps a desktop-scale margin from
 * spending the band twice over.
 * Shell-level, so the collapsed toggle clears the header and centers the same way.
 * Width is 100%, not 100dvw: dvw counts the classic scrollbar gutter, but the shell is
 * fixed and pins to the scrollbar-free box, so dvw left the hang a scrollbar off-screen.
 * 100% resolves against the same containing block `right: 0` / `left: 0` pin to.
 * Shell and toggle are border-box, so both borders are already inside those terms.
 * The hang starts at the shell padding edge, so the shell border is spare, not a term.
 * The clamp lands on --mlr-dock-fit-height: min()-ing --mlr-dock-shell-max-height into
 * itself is a var cycle, which voids max-height on the shell and the inherited column cap.
 * Inner .mlr-column is the scrollport. Toggle is a sibling so Outside hang is not clipped.
 * Hug height; custom width via --mlr-column-width when mlr-column--has-width.
 */
.mlp-rebuild > .mlr-dock-shell {
	--mlr-dock-shell-max-height: 100dvh;
	--mlr-dock-margin-inline: var(--mlr-margin-inline, 0px);
	--mlr-dock-margin-block: var(--mlr-margin-block, 0px);
	--mlr-dock-toggle-size: 2.5rem;
	position: fixed;
	top: 0;
	z-index: 30;
	width: 24rem;
	max-height: 100dvh;
	overflow: visible;
	display: flex;
	align-items: flex-start;
	margin-block: var(--mlr-margin-block, 0);
}

.mlp-rebuild > .mlr-dock-shell.mlr-dock-max-half {
	--mlr-dock-shell-max-height: 50dvh;
	max-height: 50dvh;
}

.mlp-rebuild > .mlr-dock-shell.mlr-dock-max-custom {
	--mlr-dock-shell-max-height: var(--mlr-dock-max-height, 100dvh);
	max-height: var(--mlr-dock-max-height, 100dvh);
}

/* Partner lock 2026-08-31 — border-box + margin in the cap so the 1px Surface border stays on-screen while the dock reflows. */
.mlp-rebuild > .mlr-dock-shell {
	box-sizing: border-box;
	max-height: calc(
		var(--mlr-dock-shell-max-height)
		- (2 * var(--mlr-dock-margin-block))
	);
}

.mlp-rebuild > .mlr-dock-shell.mlr-dock-right {
	left: auto;
	right: 0;
	margin-inline-start: 0;
	margin-inline-end: var(--mlr-margin-inline, 0);
	flex-direction: row-reverse;
}

.mlp-rebuild > .mlr-dock-shell.mlr-dock-left {
	right: auto;
	left: 0;
	margin-inline-end: 0;
	margin-inline-start: var(--mlr-margin-inline, 0);
	flex-direction: row;
}

.mlp-rebuild > .mlr-dock-shell.mlr-column--has-width {
	width: var(--mlr-column-width);
}

.mlp-rebuild > .mlr-dock-shell > .mlr-column {
	flex: 1 1 auto;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	min-height: 0;
	max-height: calc(
		var(--mlr-dock-shell-max-height)
		- (2 * var(--mlr-surface-border-width, 0px))
	);
	overflow: auto;
	scrollbar-gutter: stable;
	margin: 0;
	--mlr-pad-block: inherit;
	--mlr-pad-inline: inherit;
	padding-block: var(--mlr-pad-block, 0);
	padding-inline: var(--mlr-pad-inline, 0);
}

.mlp-rebuild > .mlr-dock-shell .mlr-dock-panel {
	min-width: 0;
}

.mlp-rebuild > .mlr-dock-shell.border {
	--mlr-surface-border-width: 1px;
}

.mlp-rebuild > .mlr-dock-shell.border-2 {
	--mlr-surface-border-width: 2px;
}

.mlp-rebuild > .mlr-dock-shell .mlr-dock-toggle {
	flex: 0 0 auto;
	appearance: none;
	box-sizing: border-box;
	--mlr-dock-toggle-border-width: 1px;
	/*
	 * Hang `top` is the shell padding edge (inside the shell border).
	 * Outer-top alignment with the column frame = shift up by the shell border only.
	 * Toggle border already lives inside the positioned border-box, so it is not in this calc.
	 * 1px hang + 0 column → 0 (the known-good case).
	 */
	--mlr-dock-toggle-nudge: calc(-1 * var(--mlr-surface-border-width, 0px));
	border: 1px solid var(--mlr-dock-toggle-border-color, currentColor);
	background: var(--mlr-dock-toggle-bg, Canvas);
	color: var(--mlr-dock-toggle-color, inherit);
	cursor: pointer;
	padding: 0.5rem;
	line-height: 1;
	min-width: var(--mlr-dock-toggle-size, 2.5rem);
	min-height: var(--mlr-dock-toggle-size, 2.5rem);
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-size-small {
	--mlr-dock-toggle-size: 2rem;
}

.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-size-large {
	--mlr-dock-toggle-size: 3.5rem;
}

.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-bg-gold { --mlr-dock-toggle-bg: #ffb71a; }
.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-bg-charcoal { --mlr-dock-toggle-bg: #332e21; }
.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-bg-kraft { --mlr-dock-toggle-bg: #b6814f; }
.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-bg-cream { --mlr-dock-toggle-bg: #efe3ce; }
.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-bg-teal { --mlr-dock-toggle-bg: #8ec4ac; }
.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-bg-orange { --mlr-dock-toggle-bg: #ec973a; }
.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-bg-green { --mlr-dock-toggle-bg: #2d6a4f; }
.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-bg-purple { --mlr-dock-toggle-bg: #7b2cbf; }
.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-bg-light-blue { --mlr-dock-toggle-bg: #90e0ef; }
.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-bg-white { --mlr-dock-toggle-bg: #ffffff; }

.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-color-gold { --mlr-dock-toggle-color: #ffb71a; }
.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-color-charcoal { --mlr-dock-toggle-color: #332e21; }
.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-color-kraft { --mlr-dock-toggle-color: #b6814f; }
.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-color-cream { --mlr-dock-toggle-color: #efe3ce; }
.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-color-teal { --mlr-dock-toggle-color: #8ec4ac; }
.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-color-orange { --mlr-dock-toggle-color: #ec973a; }
.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-color-green { --mlr-dock-toggle-color: #2d6a4f; }
.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-color-purple { --mlr-dock-toggle-color: #7b2cbf; }
.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-color-light-blue { --mlr-dock-toggle-color: #90e0ef; }
.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-color-white { --mlr-dock-toggle-color: #ffffff; }

.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-border-gold { --mlr-dock-toggle-border-color: #ffb71a; }
.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-border-charcoal { --mlr-dock-toggle-border-color: #332e21; }
.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-border-kraft { --mlr-dock-toggle-border-color: #b6814f; }
.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-border-cream { --mlr-dock-toggle-border-color: #efe3ce; }
.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-border-teal { --mlr-dock-toggle-border-color: #8ec4ac; }
.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-border-orange { --mlr-dock-toggle-border-color: #ec973a; }
.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-border-green { --mlr-dock-toggle-border-color: #2d6a4f; }
.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-border-purple { --mlr-dock-toggle-border-color: #7b2cbf; }
.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-border-light-blue { --mlr-dock-toggle-border-color: #90e0ef; }
.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-border-white { --mlr-dock-toggle-border-color: #ffffff; }

.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-border-none .mlr-dock-toggle {
	--mlr-dock-toggle-border-width: 0px;
	border-width: 0;
}

.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-border-2 .mlr-dock-toggle {
	--mlr-dock-toggle-border-width: 2px;
	border-width: 2px;
}

.mlp-rebuild > .mlr-dock-shell .mlr-dock-toggle-svg {
	display: block;
	width: 1em;
	height: 1em;
	transform-origin: center;
	transform: rotate(0deg);
	transition: transform 0.35s ease;
}

.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-still .mlr-dock-toggle-svg {
	transform: rotate(0deg);
	transition: transform 0s;
}

.mlp-rebuild > .mlr-dock-shell .mlr-dock-glyph-bars-open,
.mlp-rebuild > .mlr-dock-shell .mlr-dock-glyph-plus-open,
.mlp-rebuild > .mlr-dock-shell .mlr-dock-glyph-bars-close,
.mlp-rebuild > .mlr-dock-shell .mlr-dock-glyph-plus-close {
	transition: opacity 0.3s ease;
}

.mlp-rebuild > .mlr-dock-shell .mlr-dock-glyph-bars-close,
.mlp-rebuild > .mlr-dock-shell .mlr-dock-glyph-plus-close {
	opacity: 0;
}

.mlp-rebuild > .mlr-dock-shell.mlr-dock-icon-cart .mlr-dock-glyph-cart {
	transform-box: view-box;
	transform-origin: center;
	transform: rotate(0deg);
	transition: transform 0.35s ease;
}

@media (min-width: 768px) {
	.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-toggle-still):not(.mlr-dock-toggle-flip):not(.mlr-dock-is-collapsed) .mlr-dock-toggle-svg {
		transform: rotate(540deg);
	}

	.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-toggle-still):not(.mlr-dock-toggle-flip):not(.mlr-dock-is-collapsed) .mlr-dock-glyph-bars-open,
	.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-toggle-still):not(.mlr-dock-toggle-flip):not(.mlr-dock-is-collapsed) .mlr-dock-glyph-plus-open {
		opacity: 0;
	}

	.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-toggle-still):not(.mlr-dock-toggle-flip):not(.mlr-dock-is-collapsed) .mlr-dock-glyph-bars-close,
	.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-toggle-still):not(.mlr-dock-toggle-flip):not(.mlr-dock-is-collapsed) .mlr-dock-glyph-plus-close {
		opacity: 1;
	}

	.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-still:not(.mlr-dock-is-collapsed) .mlr-dock-toggle-svg {
		transform: rotate(0deg);
		transition: transform 0s;
	}

	.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-flip:not(.mlr-dock-is-collapsed) .mlr-dock-toggle-svg {
		transform: rotate(180deg);
	}

	.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-still:not(.mlr-dock-is-collapsed) .mlr-dock-glyph-bars-open,
	.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-still:not(.mlr-dock-is-collapsed) .mlr-dock-glyph-plus-open,
	.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-flip:not(.mlr-dock-is-collapsed) .mlr-dock-glyph-bars-open,
	.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-flip:not(.mlr-dock-is-collapsed) .mlr-dock-glyph-plus-open {
		opacity: 0;
	}

	.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-still:not(.mlr-dock-is-collapsed) .mlr-dock-glyph-bars-close,
	.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-still:not(.mlr-dock-is-collapsed) .mlr-dock-glyph-plus-close,
	.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-flip:not(.mlr-dock-is-collapsed) .mlr-dock-glyph-bars-close,
	.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-flip:not(.mlr-dock-is-collapsed) .mlr-dock-glyph-plus-close {
		opacity: 1;
	}

	.mlp-rebuild > .mlr-dock-shell.mlr-dock-icon-cart:not(.mlr-dock-toggle-still):not(.mlr-dock-toggle-flip):not(.mlr-dock-is-collapsed) .mlr-dock-glyph-cart {
		transform: rotate(-540deg);
	}

	.mlp-rebuild > .mlr-dock-shell.mlr-dock-icon-cart.mlr-dock-toggle-flip:not(.mlr-dock-is-collapsed) .mlr-dock-glyph-cart {
		transform: rotate(-180deg);
	}
}

@media (max-width: 767px) {
	.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-toggle-still):not(.mlr-dock-toggle-flip) .mlr-dock-toggle[aria-expanded="true"] .mlr-dock-toggle-svg {
		transform: rotate(540deg);
	}

	.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-toggle-still):not(.mlr-dock-toggle-flip) .mlr-dock-toggle[aria-expanded="true"] .mlr-dock-glyph-bars-open,
	.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-toggle-still):not(.mlr-dock-toggle-flip) .mlr-dock-toggle[aria-expanded="true"] .mlr-dock-glyph-plus-open {
		opacity: 0;
	}

	.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-toggle-still):not(.mlr-dock-toggle-flip) .mlr-dock-toggle[aria-expanded="true"] .mlr-dock-glyph-bars-close,
	.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-toggle-still):not(.mlr-dock-toggle-flip) .mlr-dock-toggle[aria-expanded="true"] .mlr-dock-glyph-plus-close {
		opacity: 1;
	}

	.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-still .mlr-dock-toggle[aria-expanded="true"] .mlr-dock-toggle-svg {
		transform: rotate(0deg);
		transition: transform 0s;
	}

	.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-flip .mlr-dock-toggle[aria-expanded="true"] .mlr-dock-toggle-svg {
		transform: rotate(180deg);
	}

	.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-still .mlr-dock-toggle[aria-expanded="true"] .mlr-dock-glyph-bars-open,
	.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-still .mlr-dock-toggle[aria-expanded="true"] .mlr-dock-glyph-plus-open,
	.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-flip .mlr-dock-toggle[aria-expanded="true"] .mlr-dock-glyph-bars-open,
	.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-flip .mlr-dock-toggle[aria-expanded="true"] .mlr-dock-glyph-plus-open {
		opacity: 0;
	}

	.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-still .mlr-dock-toggle[aria-expanded="true"] .mlr-dock-glyph-bars-close,
	.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-still .mlr-dock-toggle[aria-expanded="true"] .mlr-dock-glyph-plus-close,
	.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-flip .mlr-dock-toggle[aria-expanded="true"] .mlr-dock-glyph-bars-close,
	.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-flip .mlr-dock-toggle[aria-expanded="true"] .mlr-dock-glyph-plus-close {
		opacity: 1;
	}

	.mlp-rebuild > .mlr-dock-shell.mlr-dock-icon-cart:not(.mlr-dock-toggle-still):not(.mlr-dock-toggle-flip) .mlr-dock-toggle[aria-expanded="true"] .mlr-dock-glyph-cart {
		transform: rotate(-540deg);
	}

	.mlp-rebuild > .mlr-dock-shell.mlr-dock-icon-cart.mlr-dock-toggle-flip .mlr-dock-toggle[aria-expanded="true"] .mlr-dock-glyph-cart {
		transform: rotate(-180deg);
	}
}

/* D80 — collapsed toggle flush to pin edge when Keep edge margin is Off */
.mlp-rebuild > .mlr-dock-shell.mlr-dock-flush-toggle.mlr-dock-is-collapsed.mlr-dock-right .mlr-dock-toggle {
	margin-inline-end: calc(-1 * var(--mlr-margin-inline, 0));
}

.mlp-rebuild > .mlr-dock-shell.mlr-dock-flush-toggle.mlr-dock-is-collapsed.mlr-dock-left .mlr-dock-toggle {
	margin-inline-start: calc(-1 * var(--mlr-margin-inline, 0));
}

@media (max-width: 767px) {
	.mlp-rebuild > .mlr-dock-shell.mlr-dock-flush-toggle:not(:has(.mlr-dock-toggle[aria-expanded="true"])).mlr-dock-right .mlr-dock-toggle {
		margin-inline-end: calc(-1 * var(--mlr-margin-inline, 0));
	}

	.mlp-rebuild > .mlr-dock-shell.mlr-dock-flush-toggle:not(:has(.mlr-dock-toggle[aria-expanded="true"])).mlr-dock-left .mlr-dock-toggle {
		margin-inline-start: calc(-1 * var(--mlr-margin-inline, 0));
	}
}

/* D83 — toggle sit two-ring: Inside = beside panel in column; Outside = outside column box */
.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-is-collapsed).mlr-dock-sit-inside-right.mlr-dock-right,
.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-is-collapsed).mlr-dock-sit-inside-left.mlr-dock-right,
.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-is-collapsed).mlr-dock-sit-inside-right.mlr-dock-left,
.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-is-collapsed).mlr-dock-sit-inside-left.mlr-dock-left {
	display: grid;
	align-items: start;
}

.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-is-collapsed).mlr-dock-sit-inside-right.mlr-dock-right,
.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-is-collapsed).mlr-dock-sit-inside-left.mlr-dock-left {
	grid-template-columns: 1fr auto;
	grid-template-areas: "panel toggle";
}

.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-is-collapsed).mlr-dock-sit-inside-left.mlr-dock-right,
.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-is-collapsed).mlr-dock-sit-inside-right.mlr-dock-left {
	grid-template-columns: auto 1fr;
	grid-template-areas: "toggle panel";
}

.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-is-collapsed).mlr-dock-sit-inside-right.mlr-dock-right .mlr-column,
.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-is-collapsed).mlr-dock-sit-inside-left.mlr-dock-right .mlr-column,
.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-is-collapsed).mlr-dock-sit-inside-right.mlr-dock-left .mlr-column,
.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-is-collapsed).mlr-dock-sit-inside-left.mlr-dock-left .mlr-column {
	grid-area: panel;
}

.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-is-collapsed).mlr-dock-sit-inside-right.mlr-dock-right .mlr-dock-toggle,
.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-is-collapsed).mlr-dock-sit-inside-left.mlr-dock-right .mlr-dock-toggle,
.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-is-collapsed).mlr-dock-sit-inside-right.mlr-dock-left .mlr-dock-toggle,
.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-is-collapsed).mlr-dock-sit-inside-left.mlr-dock-left .mlr-dock-toggle {
	grid-area: toggle;
	margin-block-start: 0;
}

.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-is-collapsed).mlr-dock-sit-outside-right.mlr-dock-right,
.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-is-collapsed).mlr-dock-sit-outside-left.mlr-dock-right,
.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-is-collapsed).mlr-dock-sit-outside-right.mlr-dock-left,
.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-is-collapsed).mlr-dock-sit-outside-left.mlr-dock-left {
	display: block;
}

.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-is-collapsed).mlr-dock-sit-outside-right.mlr-dock-right .mlr-dock-toggle,
.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-is-collapsed).mlr-dock-sit-outside-left.mlr-dock-right .mlr-dock-toggle,
.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-is-collapsed).mlr-dock-sit-outside-right.mlr-dock-left .mlr-dock-toggle,
.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-is-collapsed).mlr-dock-sit-outside-left.mlr-dock-left .mlr-dock-toggle {
	position: absolute;
	top: var(--mlr-dock-toggle-nudge, 0px);
}

.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-is-collapsed).mlr-dock-sit-outside-right.mlr-dock-right .mlr-dock-toggle,
.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-is-collapsed).mlr-dock-sit-outside-right.mlr-dock-left .mlr-dock-toggle {
	right: 0;
	left: auto;
	translate: 100% 0;
}

.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-is-collapsed).mlr-dock-sit-outside-left.mlr-dock-right .mlr-dock-toggle,
.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-is-collapsed).mlr-dock-sit-outside-left.mlr-dock-left .mlr-dock-toggle {
	left: 0;
	right: auto;
	translate: -100% 0;
}

/* D128 — along-edge sit on the pin edge at desktop widths; Fit mobile phone still centers below */
@media (min-width: 768px) {
	.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-is-collapsed).mlr-dock-toggle-edge-bottom.mlr-dock-sit-outside-right.mlr-dock-right .mlr-dock-toggle,
	.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-is-collapsed).mlr-dock-toggle-edge-bottom.mlr-dock-sit-outside-left.mlr-dock-right .mlr-dock-toggle,
	.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-is-collapsed).mlr-dock-toggle-edge-bottom.mlr-dock-sit-outside-right.mlr-dock-left .mlr-dock-toggle,
	.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-is-collapsed).mlr-dock-toggle-edge-bottom.mlr-dock-sit-outside-left.mlr-dock-left .mlr-dock-toggle {
		top: auto;
		bottom: 0;
	}

	.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-is-collapsed).mlr-dock-toggle-edge-bottom.mlr-dock-sit-inside-right.mlr-dock-right .mlr-dock-toggle,
	.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-is-collapsed).mlr-dock-toggle-edge-bottom.mlr-dock-sit-inside-left.mlr-dock-right .mlr-dock-toggle,
	.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-is-collapsed).mlr-dock-toggle-edge-bottom.mlr-dock-sit-inside-right.mlr-dock-left .mlr-dock-toggle,
	.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-is-collapsed).mlr-dock-toggle-edge-bottom.mlr-dock-sit-inside-left.mlr-dock-left .mlr-dock-toggle {
		align-self: end;
	}
}

@media (max-width: 767px) {
	.mlp-rebuild > .mlr-dock-shell:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-inside-right.mlr-dock-right,
	.mlp-rebuild > .mlr-dock-shell:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-inside-left.mlr-dock-right,
	.mlp-rebuild > .mlr-dock-shell:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-inside-right.mlr-dock-left,
	.mlp-rebuild > .mlr-dock-shell:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-inside-left.mlr-dock-left {
		display: grid;
		align-items: start;
	}

	.mlp-rebuild > .mlr-dock-shell:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-inside-right.mlr-dock-right,
	.mlp-rebuild > .mlr-dock-shell:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-inside-left.mlr-dock-left {
		grid-template-columns: 1fr auto;
		grid-template-areas: "panel toggle";
	}

	.mlp-rebuild > .mlr-dock-shell:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-inside-left.mlr-dock-right,
	.mlp-rebuild > .mlr-dock-shell:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-inside-right.mlr-dock-left {
		grid-template-columns: auto 1fr;
		grid-template-areas: "toggle panel";
	}

	.mlp-rebuild > .mlr-dock-shell:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-inside-right.mlr-dock-right .mlr-column,
	.mlp-rebuild > .mlr-dock-shell:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-inside-left.mlr-dock-right .mlr-column,
	.mlp-rebuild > .mlr-dock-shell:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-inside-right.mlr-dock-left .mlr-column,
	.mlp-rebuild > .mlr-dock-shell:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-inside-left.mlr-dock-left .mlr-column {
		grid-area: panel;
	}

	.mlp-rebuild > .mlr-dock-shell:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-inside-right.mlr-dock-right .mlr-dock-toggle,
	.mlp-rebuild > .mlr-dock-shell:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-inside-left.mlr-dock-right .mlr-dock-toggle,
	.mlp-rebuild > .mlr-dock-shell:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-inside-right.mlr-dock-left .mlr-dock-toggle,
	.mlp-rebuild > .mlr-dock-shell:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-inside-left.mlr-dock-left .mlr-dock-toggle {
		grid-area: toggle;
		margin-block-start: 0;
	}

	.mlp-rebuild > .mlr-dock-shell:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-outside-right.mlr-dock-right,
	.mlp-rebuild > .mlr-dock-shell:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-outside-left.mlr-dock-right,
	.mlp-rebuild > .mlr-dock-shell:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-outside-right.mlr-dock-left,
	.mlp-rebuild > .mlr-dock-shell:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-outside-left.mlr-dock-left {
		display: block;
	}

	.mlp-rebuild > .mlr-dock-shell:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-outside-right.mlr-dock-right .mlr-dock-toggle,
	.mlp-rebuild > .mlr-dock-shell:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-outside-left.mlr-dock-right .mlr-dock-toggle,
	.mlp-rebuild > .mlr-dock-shell:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-outside-right.mlr-dock-left .mlr-dock-toggle,
	.mlp-rebuild > .mlr-dock-shell:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-outside-left.mlr-dock-left .mlr-dock-toggle {
		position: absolute;
		top: var(--mlr-dock-toggle-nudge, 0px);
	}

	.mlp-rebuild > .mlr-dock-shell:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-outside-right.mlr-dock-right .mlr-dock-toggle,
	.mlp-rebuild > .mlr-dock-shell:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-outside-right.mlr-dock-left .mlr-dock-toggle {
		right: 0;
		left: auto;
		translate: 100% 0;
	}

	.mlp-rebuild > .mlr-dock-shell:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-outside-left.mlr-dock-right .mlr-dock-toggle,
	.mlp-rebuild > .mlr-dock-shell:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-outside-left.mlr-dock-left .mlr-dock-toggle {
		left: 0;
		right: auto;
		translate: -100% 0;
	}
}

/*
 * D81 — collapsed dock chrome: Column Spacing pad must not wrap the toggle.
 * Partner lock 2026-09-03 — nor may the Surface border / Background. Collapsed shows
 * the toggle alone, but the authored Surface sits on the shell, so it drew a second
 * ring around the toggle: 42px toggle in a 44px shell read as a 1px border with
 * Toggle border None and as 2px with Toggle border 1px. Expanded keeps both.
 */
.mlp-rebuild > .mlr-dock-shell.mlr-dock-is-collapsed {
	padding-block: 0;
	padding-inline: 0;
	border: 0;
	background: none;
}

/* D80 — collapsed panel/content fully off-canvas (no H-margin module strip) */
.mlp-rebuild > .mlr-dock-shell.mlr-dock-is-collapsed .mlr-column,
.mlp-rebuild > .mlr-dock-shell.mlr-dock-is-collapsed .mlr-dock-panel {
	position: absolute;
	width: 0 !important;
	max-width: 0;
	min-width: 0;
	overflow: hidden;
	visibility: hidden;
	opacity: 0;
	pointer-events: none;
	padding: 0;
	border: 0;
	margin: 0;
	transform: none;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
}

/* D79 — desktop: expanded unless mlr-dock-is-collapsed; mobile: collapsed until aria-expanded=true */
@media (min-width: 768px) {
	.mlp-rebuild > .mlr-dock-shell.mlr-dock-is-collapsed {
		width: auto;
		overflow: visible;
	}
}

@media (max-width: 767px) {
	.mlp-rebuild > .mlr-dock-shell {
		width: auto;
		overflow: visible;
	}

	.mlp-rebuild > .mlr-dock-shell.mlr-column--has-width:not(:has(.mlr-dock-toggle[aria-expanded="true"])) {
		width: auto;
	}

	/* Same collapsed-chrome rule as D81 desktop: pad, Surface border, and Background all off. */
	.mlp-rebuild > .mlr-dock-shell:not(:has(.mlr-dock-toggle[aria-expanded="true"])) {
		padding-block: 0;
		padding-inline: 0;
		border: 0;
		background: none;
	}

	.mlp-rebuild > .mlr-dock-shell:not(:has(.mlr-dock-toggle[aria-expanded="true"])) .mlr-column,
	.mlp-rebuild > .mlr-dock-shell:not(:has(.mlr-dock-toggle[aria-expanded="true"])) .mlr-dock-panel {
		position: absolute;
		width: 0 !important;
		max-width: 0;
		min-width: 0;
		overflow: hidden;
		visibility: hidden;
		opacity: 0;
		pointer-events: none;
		padding: 0;
		border: 0;
		margin: 0;
		transform: none;
		clip: rect(0, 0, 0, 0);
		clip-path: inset(50%);
	}

	.mlp-rebuild > .mlr-dock-shell:has(.mlr-dock-toggle[aria-expanded="true"]) .mlr-column {
		position: static;
		width: 100%;
		max-width: 100%;
		min-width: 0;
		min-height: 0;
		overflow: auto;
		max-height: calc(
			var(--mlr-dock-shell-max-height)
			- (2 * var(--mlr-surface-border-width, 0px))
		);
		visibility: visible;
		opacity: 1;
		pointer-events: auto;
		margin: 0;
		transform: none;
		clip: auto;
		clip-path: none;
	}

	.mlp-rebuild > .mlr-dock-shell:has(.mlr-dock-toggle[aria-expanded="true"]) .mlr-dock-panel {
		position: static;
		width: auto;
		max-width: none;
		min-width: 0;
		overflow: visible;
		max-height: none;
		visibility: visible;
		opacity: 1;
		pointer-events: auto;
		padding: unset;
		border: unset;
		margin: unset;
		transform: none;
		clip: auto;
		clip-path: none;
	}

	.mlp-rebuild > .mlr-dock-shell:has(.mlr-dock-toggle[aria-expanded="true"]) {
		width: 24rem;
		overflow: visible;
	}

	.mlp-rebuild > .mlr-dock-shell.mlr-column--has-width:has(.mlr-dock-toggle[aria-expanded="true"]) {
		width: var(--mlr-column-width);
	}

	/*
	 * top / bottom hold the band edges, height: fit-content keeps hug height, and auto
	 * block margins split the leftover evenly — so the V gap is the guaranteed minimum
	 * at each end, not the whole gap. Content taller than the band leaves no leftover
	 * and fills it (max-height below still does the clamping, since a fit-content box
	 * is free to overflow its inset box).
	 * The V gap clamps the authored margin between --mlr-dock-fit-gap and
	 * --mlr-dock-fit-gap-max. The floor matters because centering only distributes
	 * slack, so a cart tall enough to eat all of it used to leave a 0px authored margin
	 * flush against the nav and the screen edge. The ceiling matters because the gap is
	 * charged at both ends: a desktop-scale margin (10rem is this page's section rhythm)
	 * would spend 320px of a 672px band and leave the panel at half height. Fit mobile
	 * already clamps width and height to what the viewport holds; it clamps the margin
	 * on the same grounds rather than passing a desktop value through untouched.
	 */
	.mlp-rebuild > .mlr-dock-shell.mlr-dock-fit-mobile {
		--mlr-dock-fit-toggle: var(--mlr-dock-toggle-size, 2.5rem);
		--mlr-dock-fit-nav: 8rem;
		--mlr-dock-fit-gap: 1rem;
		--mlr-dock-fit-gap-max: 2rem;
		--mlr-dock-fit-margin-block: clamp(
			var(--mlr-dock-fit-gap),
			var(--mlr-dock-margin-block),
			var(--mlr-dock-fit-gap-max)
		);
		top: calc(var(--mlr-dock-fit-nav) + var(--mlr-dock-fit-margin-block));
		bottom: var(--mlr-dock-fit-margin-block);
		height: fit-content;
		margin-block: auto;
	}

	.mlp-rebuild > .mlr-dock-shell.mlr-dock-fit-mobile:not(:has(.mlr-dock-toggle[aria-expanded="true"])) {
		width: auto;
	}

	.mlp-rebuild > .mlr-dock-shell.mlr-dock-fit-mobile:has(.mlr-dock-toggle[aria-expanded="true"]) {
		--mlr-dock-fit-height: min(
			var(--mlr-dock-shell-max-height),
			calc(100dvh - var(--mlr-dock-fit-nav))
		);
		max-height: calc(
			var(--mlr-dock-fit-height)
			- (2 * var(--mlr-dock-fit-margin-block))
		);
		width: min(
			24rem,
			calc(
				100%
				- (2 * var(--mlr-dock-margin-inline))
				- var(--mlr-dock-fit-toggle)
			)
		);
	}

	.mlp-rebuild > .mlr-dock-shell.mlr-dock-fit-mobile:has(.mlr-dock-toggle[aria-expanded="true"]) .mlr-column {
		max-height: calc(
			var(--mlr-dock-fit-height)
			- (2 * var(--mlr-dock-fit-margin-block))
			- (2 * var(--mlr-surface-border-width, 0px))
		);
	}

	/*
	 * Toggle hangs off the pin edge: that gutter, not the width, is what has to hold it.
	 * Margin + toggle (not max()) so the hang keeps the same mirrored gap as the free side.
	 */
	.mlp-rebuild > .mlr-dock-shell.mlr-dock-fit-mobile:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-outside-right.mlr-dock-right {
		margin-inline-end: calc(var(--mlr-dock-margin-inline) + var(--mlr-dock-fit-toggle));
	}

	.mlp-rebuild > .mlr-dock-shell.mlr-dock-fit-mobile:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-outside-left.mlr-dock-left {
		margin-inline-start: calc(var(--mlr-dock-margin-inline) + var(--mlr-dock-fit-toggle));
	}

	/*
	 * Owner call 2026-09-03 — the toggle centers on the panel edge instead of riding its
	 * top. Collapsed, the shell hugs the toggle and centers in the band; expanded, the
	 * shell centers in the band at whatever height its content asks for. Anchoring the
	 * toggle to the panel top therefore moved the button on expand — ~300px with a full
	 * Cart preview, ~58px with an empty one — because the panel top travels with content
	 * height while its midpoint does not. A centered toggle and a centered panel share
	 * that midpoint, so the button holds still at every content height. Fit mobile only:
	 * a non-Fit phone dock still pins to top: 0, where D83 outer-top alignment is right.
	 */
	.mlp-rebuild > .mlr-dock-shell.mlr-dock-fit-mobile:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-outside-right.mlr-dock-right .mlr-dock-toggle,
	.mlp-rebuild > .mlr-dock-shell.mlr-dock-fit-mobile:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-outside-left.mlr-dock-right .mlr-dock-toggle,
	.mlp-rebuild > .mlr-dock-shell.mlr-dock-fit-mobile:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-outside-right.mlr-dock-left .mlr-dock-toggle,
	.mlp-rebuild > .mlr-dock-shell.mlr-dock-fit-mobile:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-outside-left.mlr-dock-left .mlr-dock-toggle {
		top: 50%;
	}

	.mlp-rebuild > .mlr-dock-shell.mlr-dock-fit-mobile:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-outside-right.mlr-dock-right .mlr-dock-toggle,
	.mlp-rebuild > .mlr-dock-shell.mlr-dock-fit-mobile:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-outside-right.mlr-dock-left .mlr-dock-toggle {
		translate: 100% -50%;
	}

	.mlp-rebuild > .mlr-dock-shell.mlr-dock-fit-mobile:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-outside-left.mlr-dock-right .mlr-dock-toggle,
	.mlp-rebuild > .mlr-dock-shell.mlr-dock-fit-mobile:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-outside-left.mlr-dock-left .mlr-dock-toggle {
		translate: -100% -50%;
	}

	/* Inside sits ride the grid, so the same midpoint comes from align-self. */
	.mlp-rebuild > .mlr-dock-shell.mlr-dock-fit-mobile:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-inside-right.mlr-dock-right .mlr-dock-toggle,
	.mlp-rebuild > .mlr-dock-shell.mlr-dock-fit-mobile:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-inside-left.mlr-dock-right .mlr-dock-toggle,
	.mlp-rebuild > .mlr-dock-shell.mlr-dock-fit-mobile:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-inside-right.mlr-dock-left .mlr-dock-toggle,
	.mlp-rebuild > .mlr-dock-shell.mlr-dock-fit-mobile:has(.mlr-dock-toggle[aria-expanded="true"]).mlr-dock-sit-inside-left.mlr-dock-left .mlr-dock-toggle {
		align-self: center;
	}

	.mlp-rebuild > .mlr-dock-shell.mlr-dock-fit-mobile.mlr-column--has-width:has(.mlr-dock-toggle[aria-expanded="true"]) {
		width: min(
			var(--mlr-column-width),
			calc(
				100%
				- (2 * var(--mlr-dock-margin-inline))
				- var(--mlr-dock-fit-toggle)
			)
		);
	}
}

@media (prefers-reduced-motion: reduce) {
	.mlp-rebuild > .mlr-dock-shell .mlr-dock-panel {
		transition: none;
		animation: none;
	}

	.mlp-rebuild > .mlr-dock-shell.mlr-dock-is-closing,
	.mlp-rebuild > .mlr-dock-shell.mlr-dock-is-opening {
		animation: none;
	}
}

/*
 * Owner-direct dock motion (2026-08-26): swing toward page center, then fast off-pin exit.
 * Motion is on the column so Background / pad tilt with the panel and toggle.
 * Closing is two-phase (JS adds mlr-dock-is-exiting after the swing). Opening is one keyframe.
 * Reduced-motion stays instant (class/aria only).
 */
.mlp-rebuild > .mlr-dock-shell.mlr-dock-right {
	--mlr-dock-swing-origin: right top;
}

.mlp-rebuild > .mlr-dock-shell.mlr-dock-left {
	--mlr-dock-swing-origin: left top;
}

.mlp-rebuild > .mlr-dock-shell.mlr-dock-is-closing,
.mlp-rebuild > .mlr-dock-shell.mlr-dock-is-opening {
	overflow: visible;
	transform-origin: var(--mlr-dock-swing-origin, right top);
}

.mlp-rebuild > .mlr-dock-shell.mlr-dock-is-closing:not(.mlr-dock-is-exiting):not(.mlr-dock-panel-slide):not(.mlr-dock-panel-rise).mlr-dock-right {
	animation: mlr-dock-swing-in-right 0.28s ease-out forwards;
}

.mlp-rebuild > .mlr-dock-shell.mlr-dock-is-closing:not(.mlr-dock-is-exiting):not(.mlr-dock-panel-slide):not(.mlr-dock-panel-rise).mlr-dock-left {
	animation: mlr-dock-swing-in-left 0.28s ease-out forwards;
}

.mlp-rebuild > .mlr-dock-shell.mlr-dock-is-closing.mlr-dock-is-exiting:not(.mlr-dock-panel-slide):not(.mlr-dock-panel-rise).mlr-dock-right {
	animation: mlr-dock-exit-right 0.18s cubic-bezier(0.65, 0, 1, 0.2) forwards;
}

.mlp-rebuild > .mlr-dock-shell.mlr-dock-is-closing.mlr-dock-is-exiting:not(.mlr-dock-panel-slide):not(.mlr-dock-panel-rise).mlr-dock-left {
	animation: mlr-dock-exit-left 0.18s cubic-bezier(0.65, 0, 1, 0.2) forwards;
}

.mlp-rebuild > .mlr-dock-shell.mlr-dock-is-opening:not(.mlr-dock-panel-slide):not(.mlr-dock-panel-rise).mlr-dock-right {
	animation: mlr-dock-open-right 0.46s cubic-bezier(0.22, 0.8, 0.32, 1) both;
}

.mlp-rebuild > .mlr-dock-shell.mlr-dock-is-opening:not(.mlr-dock-panel-slide):not(.mlr-dock-panel-rise).mlr-dock-left {
	animation: mlr-dock-open-left 0.46s cubic-bezier(0.22, 0.8, 0.32, 1) both;
}

/* D105 — Slide panel: translate only, no tilt; one-phase close/open. */
.mlp-rebuild > .mlr-dock-shell.mlr-dock-panel-slide.mlr-dock-is-closing.mlr-dock-is-exiting.mlr-dock-right {
	animation: mlr-dock-slide-exit-right 0.18s cubic-bezier(0.65, 0, 1, 0.2) forwards;
}

.mlp-rebuild > .mlr-dock-shell.mlr-dock-panel-slide.mlr-dock-is-closing.mlr-dock-is-exiting.mlr-dock-left {
	animation: mlr-dock-slide-exit-left 0.18s cubic-bezier(0.65, 0, 1, 0.2) forwards;
}

.mlp-rebuild > .mlr-dock-shell.mlr-dock-panel-slide.mlr-dock-is-opening.mlr-dock-right {
	animation: mlr-dock-slide-open-right 0.46s cubic-bezier(0.22, 0.8, 0.32, 1) both;
}

.mlp-rebuild > .mlr-dock-shell.mlr-dock-panel-slide.mlr-dock-is-opening.mlr-dock-left {
	animation: mlr-dock-slide-open-left 0.46s cubic-bezier(0.22, 0.8, 0.32, 1) both;
}

/* D106 — Rise panel: fade + translateY(2rem); one-phase close/open. */
.mlp-rebuild > .mlr-dock-shell.mlr-dock-panel-rise.mlr-dock-is-closing.mlr-dock-is-exiting {
	animation: mlr-dock-rise-exit 0.18s cubic-bezier(0.65, 0, 1, 0.2) forwards;
}

.mlp-rebuild > .mlr-dock-shell.mlr-dock-panel-rise.mlr-dock-is-opening {
	animation: mlr-dock-rise-open 0.46s cubic-bezier(0.22, 0.8, 0.32, 1) both;
}

@keyframes mlr-dock-swing-in-right {
	from {
		transform: translateX(0) rotate(0deg);
	}

	to {
		transform: translateX(-1.5rem) rotate(-7deg);
	}
}

@keyframes mlr-dock-swing-in-left {
	from {
		transform: translateX(0) rotate(0deg);
	}

	to {
		transform: translateX(1.5rem) rotate(7deg);
	}
}

@keyframes mlr-dock-exit-right {
	from {
		transform: translateX(-1.5rem) rotate(-7deg);
	}

	to {
		transform: translateX(calc(100% + var(--mlr-dock-toggle-size, 2.5rem))) rotate(-12deg);
	}
}

@keyframes mlr-dock-exit-left {
	from {
		transform: translateX(1.5rem) rotate(7deg);
	}

	to {
		transform: translateX(calc(-100% - var(--mlr-dock-toggle-size, 2.5rem))) rotate(12deg);
	}
}

@keyframes mlr-dock-open-right {
	0% {
		transform: translateX(100%) rotate(-10deg);
	}

	62% {
		transform: translateX(-1.35rem) rotate(-7deg);
	}

	100% {
		transform: translateX(0) rotate(0deg);
	}
}

@keyframes mlr-dock-open-left {
	0% {
		transform: translateX(-100%) rotate(10deg);
	}

	62% {
		transform: translateX(1.35rem) rotate(7deg);
	}

	100% {
		transform: translateX(0) rotate(0deg);
	}
}

@keyframes mlr-dock-slide-exit-right {
	from {
		transform: translateX(0);
	}

	to {
		transform: translateX(calc(100% + var(--mlr-dock-toggle-size, 2.5rem)));
	}
}

@keyframes mlr-dock-slide-exit-left {
	from {
		transform: translateX(0);
	}

	to {
		transform: translateX(calc(-100% - var(--mlr-dock-toggle-size, 2.5rem)));
	}
}

@keyframes mlr-dock-slide-open-right {
	from {
		transform: translateX(calc(100% + var(--mlr-dock-toggle-size, 2.5rem)));
	}

	to {
		transform: translateX(0);
	}
}

@keyframes mlr-dock-slide-open-left {
	from {
		transform: translateX(calc(-100% - var(--mlr-dock-toggle-size, 2.5rem)));
	}

	to {
		transform: translateX(0);
	}
}

@keyframes mlr-dock-rise-open {
	from {
		opacity: 0;
		transform: translateY(2rem);
	}

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

@keyframes mlr-dock-rise-exit {
	from {
		opacity: 1;
		transform: translateY(0);
	}

	to {
		opacity: 0;
		transform: translateY(2rem);
	}
}

@media (min-width: 768px) {
	.mlp-rebuild[data-mlr-breakpoint="md"] > .mlr-dock-shell.mlr-column--has-width {
		width: var(--mlr-column-width);
	}

	.mlp-rebuild > .mlr-dock-shell.mlr-column--has-width.mlr-dock-is-collapsed,
	.mlp-rebuild[data-mlr-breakpoint="md"] > .mlr-dock-shell.mlr-column--has-width.mlr-dock-is-collapsed {
		width: auto;
	}
}

@media (min-width: 1024px) {
	.mlp-rebuild[data-mlr-breakpoint="lg"] > .mlr-dock-shell.mlr-column--has-width {
		width: var(--mlr-column-width);
	}

	.mlp-rebuild[data-mlr-breakpoint="lg"] > .mlr-dock-shell.mlr-column--has-width.mlr-dock-is-collapsed {
		width: auto;
	}
}

/*
 * D30/D52 box-center residual — text-align centers inline text, while narrowed Image
 * figure/img boxes need auto inline margins. Works from either Column or Image H Center.
 */
.mlp-rebuild .mlr-column.text-center .mlr-image,
.mlp-rebuild .mlr-module.text-center .mlr-image {
	margin-inline: auto;
}

.mlp-rebuild .mlr-column.text-center .mlr-image img,
.mlp-rebuild .mlr-module.text-center .mlr-image img {
	display: block;
	margin-inline: auto;
}

/*
 * D67/D30/D52 residual — BV's inline-rating flex-start !important ignores inherited
 * text-align. Keep the override on shop cards and order it Section → Column → Product
 * so the closest existing text-* alignment wins without moving any emit classes.
 */
.mlp-rebuild .mlr-section.text-left .mlr-product--shop-card [data-bv-show="inline_rating"] .bv_main_container.bv_inline_rating_container_left {
	justify-content: flex-start !important;
}

.mlp-rebuild .mlr-section.text-center .mlr-product--shop-card [data-bv-show="inline_rating"] .bv_main_container.bv_inline_rating_container_left {
	justify-content: center !important;
}

.mlp-rebuild .mlr-section.text-right .mlr-product--shop-card [data-bv-show="inline_rating"] .bv_main_container.bv_inline_rating_container_left {
	justify-content: flex-end !important;
}

.mlp-rebuild .mlr-column.text-left .mlr-product--shop-card [data-bv-show="inline_rating"] .bv_main_container.bv_inline_rating_container_left {
	justify-content: flex-start !important;
}

.mlp-rebuild .mlr-column.text-center .mlr-product--shop-card [data-bv-show="inline_rating"] .bv_main_container.bv_inline_rating_container_left {
	justify-content: center !important;
}

.mlp-rebuild .mlr-column.text-right .mlr-product--shop-card [data-bv-show="inline_rating"] .bv_main_container.bv_inline_rating_container_left {
	justify-content: flex-end !important;
}

.mlp-rebuild .mlr-module.text-left .mlr-product--shop-card [data-bv-show="inline_rating"] .bv_main_container.bv_inline_rating_container_left {
	justify-content: flex-start !important;
}

.mlp-rebuild .mlr-module.text-center .mlr-product--shop-card [data-bv-show="inline_rating"] .bv_main_container.bv_inline_rating_container_left {
	justify-content: center !important;
}

.mlp-rebuild .mlr-module.text-right .mlr-product--shop-card [data-bv-show="inline_rating"] .bv_main_container.bv_inline_rating_container_left {
	justify-content: flex-end !important;
}

.mlp-rebuild .mlr-product.mlr-product--shop-card.text-left [data-bv-show="inline_rating"] .bv_main_container.bv_inline_rating_container_left {
	justify-content: flex-start !important;
}

.mlp-rebuild .mlr-product.mlr-product--shop-card.text-center [data-bv-show="inline_rating"] .bv_main_container.bv_inline_rating_container_left {
	justify-content: center !important;
}

.mlp-rebuild .mlr-product.mlr-product--shop-card.text-right [data-bv-show="inline_rating"] .bv_main_container.bv_inline_rating_container_left {
	justify-content: flex-end !important;
}

/*
 * D67 residual — Woo's mobile 2-col float on ul.products[class*=columns-]
 * shrinks a single shop card to ~48% and pins it left. Keep one full-width
 * card and honor ancestor text-center the same way BV stars do.
 */
.mlp-rebuild .mlr-product--shop-card ul.products,
.mlp-rebuild .mlr-product--shop-card ul.products[class*="columns-"] {
	float: none;
	width: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}

.mlp-rebuild .mlr-product--shop-card ul.products li.product,
.mlp-rebuild .mlr-product--shop-card ul.products[class*="columns-"] li.product {
	float: none !important;
	width: 100% !important;
	max-width: 100%;
	margin-inline: auto;
	clear: none !important;
}

.mlp-rebuild .mlr-section.text-center .mlr-product--shop-card li.product,
.mlp-rebuild .mlr-column.text-center .mlr-product--shop-card li.product,
.mlp-rebuild .mlr-module.text-center .mlr-product--shop-card li.product {
	text-align: center;
}

.mlp-rebuild .mlr-section.text-center .mlr-product--shop-card .woocommerce-loop-product__link,
.mlp-rebuild .mlr-column.text-center .mlr-product--shop-card .woocommerce-loop-product__link,
.mlp-rebuild .mlr-module.text-center .mlr-product--shop-card .woocommerce-loop-product__link {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}

/*
 * D54 amend — Image dims (D43 continuous; mobile-first from L0 breakpoint).
 * Base img keeps w-full h-auto max-w-full below breakpoint; vars on figure gate
 * custom width/height from md|lg up via data-mlr-breakpoint on .mlp-rebuild.
 */
@media (min-width: 768px) {
	.mlp-rebuild[data-mlr-breakpoint="md"] .mlr-image.mlr-image--has-width img {
		width: var(--mlr-image-width);
		max-width: 100%;
	}

	.mlp-rebuild[data-mlr-breakpoint="md"] .mlr-image.mlr-image--has-height img {
		height: var(--mlr-image-height);
	}
}

@media (min-width: 1024px) {
	.mlp-rebuild[data-mlr-breakpoint="lg"] .mlr-image.mlr-image--has-width img {
		width: var(--mlr-image-width);
		max-width: 100%;
	}

	.mlp-rebuild[data-mlr-breakpoint="lg"] .mlr-image.mlr-image--has-height img {
		height: var(--mlr-image-height);
	}
}

/*
 * D114 — Image fill the column. D11 Stretch already adds h-full on a lone module;
 * land figure + img into that height when both dims are set. object-fit: cover
 * applies to photo img only (not .mlr-image-icon). Off / single-axis / below
 * breakpoint / multi-module columns stay on the D54 base path.
 */
@media (min-width: 768px) {
	.mlp-rebuild[data-mlr-breakpoint="md"] .mlr-image.mlr-image--has-width.mlr-image--has-height img {
		object-fit: cover;
	}

	.mlp-rebuild[data-mlr-breakpoint="md"] .mlr-module.h-full .mlr-image.mlr-image--has-width.mlr-image--has-height {
		display: flex;
		flex-direction: column;
		height: 100%;
		width: var(--mlr-image-width);
		max-width: 100%;
		min-height: 0;
	}

	.mlp-rebuild[data-mlr-breakpoint="md"] .mlr-module.h-full .mlr-image.mlr-image--has-width.mlr-image--has-height img {
		flex: 1 1 auto;
		min-height: 0;
		width: var(--mlr-image-width);
		max-width: 100%;
		height: var(--mlr-image-height);
	}
}

@media (min-width: 1024px) {
	.mlp-rebuild[data-mlr-breakpoint="lg"] .mlr-image.mlr-image--has-width.mlr-image--has-height img {
		object-fit: cover;
	}

	.mlp-rebuild[data-mlr-breakpoint="lg"] .mlr-module.h-full .mlr-image.mlr-image--has-width.mlr-image--has-height {
		display: flex;
		flex-direction: column;
		height: 100%;
		width: var(--mlr-image-width);
		max-width: 100%;
		min-height: 0;
	}

	.mlp-rebuild[data-mlr-breakpoint="lg"] .mlr-module.h-full .mlr-image.mlr-image--has-width.mlr-image--has-height img {
		flex: 1 1 auto;
		min-height: 0;
		width: var(--mlr-image-width);
		max-width: 100%;
		height: var(--mlr-image-height);
	}
}

.mlp-rebuild .mlr-text,
.mlp-rebuild .mlr-image figcaption,
.mlp-rebuild .mlr-custom-table__inner th,
.mlp-rebuild .mlr-custom-table__inner td,
.mlp-rebuild .mlr-btn,
.mlp-rebuild .ml-btn {
	overflow-wrap: break-word;
}

/*
 * D55 Buttons shape — D43 custom properties on `.ml-buttons`; `.ml-btn` consumes with
 * per-corner radius + border. Vars inherit from the flex row; no style= assembler.
 * D15 expand: inherit full typography from `.ml-buttons` so L0 Font preset wins over
 * Classic theme `.ml-btn` rules (scoped under `.mlp-rebuild` only).
 */
.mlp-rebuild .ml-buttons .ml-btn {
	border-width: var(--mlr-btn-border-width, 0);
	border-style: var(--mlr-btn-border-style, solid);
	border-color: var(--mlr-btn-border-color, transparent);
	border-radius: var(--mlr-btn-radius-tl, 0) var(--mlr-btn-radius-tr, 0)
		var(--mlr-btn-radius-br, 0) var(--mlr-btn-radius-bl, 0);
	font-family: inherit;
	font-weight: inherit;
	font-style: inherit;
	font-size: inherit;
	line-height: inherit;
	letter-spacing: inherit;
	text-transform: inherit;
	--mlr-pop-face: #ffb71a;
	background-color: #ffb71a;
	color: #332e21;
}

.mlp-rebuild .ml-buttons .ml-btn.mlr-btn-fill-custom {
	--mlr-pop-face: var(--mlr-btn-fill);
	background-color: var(--mlr-btn-fill);
}

/* D89 — Equal: hug the widest button, not the full column. */
.mlp-rebuild .ml-buttons.mlr-btn-equal {
	width: max-content;
	max-width: 100%;
	flex-direction: column;
	flex-wrap: nowrap;
	align-items: stretch;
}

.mlp-rebuild .ml-buttons.mlr-btn-equal .ml-btn {
	width: 100%;
	box-sizing: border-box;
}

.mlp-rebuild .ml-buttons.mlr-btn-equal.justify-center {
	margin-inline: auto;
}

.mlp-rebuild .ml-buttons.mlr-btn-equal.justify-end {
	margin-inline-start: auto;
}

.mlp-rebuild .ml-btn.mlr-btn-has-icon .mlr-btn-label {
	gap: 0.5em;
}

.mlp-rebuild .ml-buttons.mlr-btn-equal .ml-btn .mlr-btn-label {
	width: 100%;
	box-sizing: border-box;
}

.mlp-rebuild .ml-btn.mlr-btn-icon-only .mlr-btn-label {
	padding: 0;
}

.mlp-rebuild .ml-btn.mlr-btn-icon-only .sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* D58 chrome token literals on `.ml-btn` (same palette as ColorControl / custom table). */
.mlp-rebuild .ml-btn.bg-gold { background-color: #ffb71a; }
.mlp-rebuild .ml-btn.bg-charcoal { background-color: #332e21; }
.mlp-rebuild .ml-btn.bg-kraft { background-color: #b6814f; }
.mlp-rebuild .ml-btn.bg-cream { background-color: #efe3ce; }
.mlp-rebuild .ml-btn.bg-teal { background-color: #8ec4ac; }
.mlp-rebuild .ml-btn.bg-orange { background-color: #ec973a; }
.mlp-rebuild .ml-btn.bg-green { background-color: #2d6a4f; }
.mlp-rebuild .ml-btn.bg-purple { background-color: #7b2cbf; }
.mlp-rebuild .ml-btn.bg-light-blue { background-color: #90e0ef; }
.mlp-rebuild .ml-btn.bg-white { background-color: #ffffff; }
.mlp-rebuild .ml-btn.bg-gold { --mlr-pop-face: #ffb71a; }
.mlp-rebuild .ml-btn.bg-charcoal { --mlr-pop-face: #332e21; }
.mlp-rebuild .ml-btn.bg-kraft { --mlr-pop-face: #b6814f; }
.mlp-rebuild .ml-btn.bg-cream { --mlr-pop-face: #efe3ce; }
.mlp-rebuild .ml-btn.bg-teal { --mlr-pop-face: #8ec4ac; }
.mlp-rebuild .ml-btn.bg-orange { --mlr-pop-face: #ec973a; }
.mlp-rebuild .ml-btn.bg-green { --mlr-pop-face: #2d6a4f; }
.mlp-rebuild .ml-btn.bg-purple { --mlr-pop-face: #7b2cbf; }
.mlp-rebuild .ml-btn.bg-light-blue { --mlr-pop-face: #90e0ef; }
.mlp-rebuild .ml-btn.bg-white { --mlr-pop-face: #ffffff; }
.mlp-rebuild .ml-btn.text-gold { color: #ffb71a; }
.mlp-rebuild .ml-btn.text-charcoal { color: #332e21; }
.mlp-rebuild .ml-btn.text-kraft { color: #b6814f; }
.mlp-rebuild .ml-btn.text-cream { color: #efe3ce; }
.mlp-rebuild .ml-btn.text-teal { color: #8ec4ac; }
.mlp-rebuild .ml-btn.text-orange { color: #ec973a; }
.mlp-rebuild .ml-btn.text-green { color: #2d6a4f; }
.mlp-rebuild .ml-btn.text-purple { color: #7b2cbf; }
.mlp-rebuild .ml-btn.text-light-blue { color: #90e0ef; }
.mlp-rebuild .ml-btn.text-white { color: #ffffff; }

/* D73 residual — contain Woo floats and retype mini-cart rows without changing the host. */
.mlp-rebuild .mlr-cart-preview {
	display: flow-root;
	min-width: 0;
	max-width: 100%;
	overflow: clip;
	isolation: isolate;
}

.mlp-rebuild .mlr-cart-preview .widget_shopping_cart_content {
	display: flow-root;
	min-width: 0;
	max-width: 100%;
	overflow: clip;
	isolation: isolate;
}

.mlp-rebuild .mlr-cart-preview ul.woocommerce-mini-cart {
	display: flex;
	flex-direction: column;
	gap: 2rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.mlp-rebuild .mlr-cart-preview li.woocommerce-mini-cart-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	gap: var(--mlr-cart-preview-item-gap, 0.75rem);
	position: relative;
	background-color: var(--mlr-cart-preview-item-bg, #ffffff);
	border: 1px solid var(--mlr-cart-preview-item-border, #332e21);
	padding: 1rem;
	font-family: poppins, sans-serif;
	font-weight: 500;
	font-size: 1.125rem;
	line-height: 1.5;
}

.mlp-rebuild .mlr-cart-preview ul.cart_list li dl,
.mlp-rebuild .mlr-cart-preview ul.product_list_widget li dl,
.mlp-rebuild .mlr-cart-preview li.woocommerce-mini-cart-item .variation {
	padding-left: 0;
	border-left: 0;
}

.mlp-rebuild .mlr-cart-preview li.woocommerce-mini-cart-item > a.remove {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.mlp-rebuild .mlr-cart-preview li.woocommerce-mini-cart-item > a:not(.remove):has(> img) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
}

.mlp-rebuild .mlr-cart-preview li.woocommerce-mini-cart-item:not(:has(> a:not(.remove) ~ a:not(.remove))) > a:not(.remove):has(> img) {
	display: contents;
}

.mlp-rebuild .mlr-cart-preview li.woocommerce-mini-cart-item > a:not(.remove):not(:has(> img)) {
	display: flex;
	flex-direction: column;
	align-items: center;
	min-width: 0;
	overflow-wrap: anywhere;
	color: inherit;
	font-family: poppins, sans-serif;
	font-weight: 500;
	font-size: 1.125rem;
	line-height: 1.5;
}

.mlp-rebuild .mlr-cart-preview li.woocommerce-mini-cart-item > a:not(.remove):has(> img):not(:has(*:not(img))) {
	color: inherit;
}

.mlp-rebuild .mlr-cart-preview li.woocommerce-mini-cart-item img {
	float: none;
	width: var(--mlr-cart-preview-thumb-w, 3.5rem);
	height: var(--mlr-cart-preview-thumb-h, 3.5rem);
	flex-shrink: 0;
	margin: 0;
	object-fit: contain;
}

.mlp-rebuild .mlr-cart-preview li.woocommerce-mini-cart-item span.quantity {
	display: contents;
}

.mlp-rebuild .mlr-cart-preview li.woocommerce-mini-cart-item .variation {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	flex: 0 1 auto;
	min-width: 0;
	margin: 0;
}

.mlp-rebuild .mlr-cart-preview li.woocommerce-mini-cart-item .variation dt {
	display: none;
}

.mlp-rebuild .mlr-cart-preview li.woocommerce-mini-cart-item .variation dd {
	min-width: 0;
	margin: 0;
	overflow-wrap: anywhere;
}

.mlp-rebuild .mlr-cart-preview li.woocommerce-mini-cart-item .variation,
.mlp-rebuild .mlr-cart-preview li.woocommerce-mini-cart-item .variation dd,
.mlp-rebuild .mlr-cart-preview li.woocommerce-mini-cart-item > p,
.mlp-rebuild .mlr-cart-preview .mlr-cart-preview__price,
.mlp-rebuild .mlr-cart-preview .mlr-cart-preview__price .woocommerce-Price-amount {
	font-family: poppins, sans-serif;
	font-weight: 500;
	font-size: 0.875rem;
	font-style: normal;
	line-height: 1.5;
	text-transform: capitalize;
}

.mlp-rebuild .mlr-cart-preview .mlr-cart-preview__controls {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
}

.mlp-rebuild .mlr-cart-preview .mlr-cart-preview__trash,
.mlp-rebuild .mlr-cart-preview .mlr-cart-preview__qty-minus,
.mlp-rebuild .mlr-cart-preview .mlr-cart-preview__qty-plus {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 0.25rem;
	border: 0;
	background: transparent;
	color: inherit;
	cursor: pointer;
	line-height: 1;
}

.mlp-rebuild .mlr-cart-preview .mlr-cart-preview__trash-icon {
	display: block;
}

.mlp-rebuild .mlr-cart-preview .mlr-cart-preview__qty {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
}

.mlp-rebuild .mlr-cart-preview .mlr-cart-preview__qty-input {
	width: 2.5rem;
	margin: 0;
	padding: 0.15rem 0.25rem;
	border: 1px solid currentColor;
	text-align: center;
	font: inherit;
	appearance: textfield;
	-moz-appearance: textfield;
}

.mlp-rebuild .mlr-cart-preview .mlr-cart-preview__qty-input::-webkit-outer-spin-button,
.mlp-rebuild .mlr-cart-preview .mlr-cart-preview__qty-input::-webkit-inner-spin-button {
	appearance: none;
	margin: 0;
}

.mlp-rebuild .mlr-cart-preview.mlr-cart-preview--hide-image img,
.mlp-rebuild .mlr-cart-preview.mlr-cart-preview--hide-title .mlr-cart-preview__title,
.mlp-rebuild .mlr-cart-preview.mlr-cart-preview--hide-schedule li.woocommerce-mini-cart-item > p,
.mlp-rebuild .mlr-cart-preview.mlr-cart-preview--hide-size li.woocommerce-mini-cart-item .variation,
.mlp-rebuild .mlr-cart-preview.mlr-cart-preview--hide-size li.woocommerce-mini-cart-item .variation dd,
.mlp-rebuild .mlr-cart-preview.mlr-cart-preview--hide-price .mlr-cart-preview__price,
.mlp-rebuild .mlr-cart-preview.mlr-cart-preview--hide-trash .mlr-cart-preview__trash,
.mlp-rebuild .mlr-cart-preview.mlr-cart-preview--hide-increment .mlr-cart-preview__qty {
	display: none;
}

.mlp-rebuild .mlr-cart-preview.mlr-cart-preview--hide-trash.mlr-cart-preview--hide-increment .mlr-cart-preview__controls {
	display: none;
}

@media (max-width: 899px) {
	.mlp-rebuild .mlr-cart-preview li.woocommerce-mini-cart-item {
		font-size: 0.875rem;
	}

	.mlp-rebuild .mlr-cart-preview li.woocommerce-mini-cart-item > a:not(.remove):not(:has(> img)) {
		font-size: 0.875rem;
	}
}

@media (max-width: 499px) {
	.mlp-rebuild .mlr-cart-preview li.woocommerce-mini-cart-item .variation,
	.mlp-rebuild .mlr-cart-preview li.woocommerce-mini-cart-item .variation dd,
	.mlp-rebuild .mlr-cart-preview li.woocommerce-mini-cart-item > p,
	.mlp-rebuild .mlr-cart-preview .mlr-cart-preview__price,
	.mlp-rebuild .mlr-cart-preview .mlr-cart-preview__price .woocommerce-Price-amount {
		font-size: 0.75rem;
	}
}

.mlp-rebuild .mlr-cart-preview .woocommerce-mini-cart__total {
	margin: 2rem 0 1rem;
}

.mlp-rebuild .mlr-cart-preview .woocommerce-mini-cart__buttons {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.75rem;
	margin: 0;
	width: 100%;
}

/* D72 — Product-page Woo ATC consumes the same rest-state Button fill hex table. */
.mlp-rebuild .mlr-product:not(.mlr-product--shop-card).mlr-atc-fill-gold button.single_add_to_cart_button { background-color: #ffb71a; }
.mlp-rebuild .mlr-product:not(.mlr-product--shop-card).mlr-atc-fill-charcoal button.single_add_to_cart_button { background-color: #332e21; }
.mlp-rebuild .mlr-product:not(.mlr-product--shop-card).mlr-atc-fill-kraft button.single_add_to_cart_button { background-color: #b6814f; }
.mlp-rebuild .mlr-product:not(.mlr-product--shop-card).mlr-atc-fill-cream button.single_add_to_cart_button { background-color: #efe3ce; }
.mlp-rebuild .mlr-product:not(.mlr-product--shop-card).mlr-atc-fill-teal button.single_add_to_cart_button { background-color: #8ec4ac; }
.mlp-rebuild .mlr-product:not(.mlr-product--shop-card).mlr-atc-fill-orange button.single_add_to_cart_button { background-color: #ec973a; }
.mlp-rebuild .mlr-product:not(.mlr-product--shop-card).mlr-atc-fill-green button.single_add_to_cart_button { background-color: #2d6a4f; }
.mlp-rebuild .mlr-product:not(.mlr-product--shop-card).mlr-atc-fill-purple button.single_add_to_cart_button { background-color: #7b2cbf; }
.mlp-rebuild .mlr-product:not(.mlr-product--shop-card).mlr-atc-fill-light-blue button.single_add_to_cart_button { background-color: #90e0ef; }
.mlp-rebuild .mlr-product:not(.mlr-product--shop-card).mlr-atc-fill-white button.single_add_to_cart_button { background-color: #ffffff; }
.mlp-rebuild .mlr-product:not(.mlr-product--shop-card).mlr-atc-fill-custom button.single_add_to_cart_button { background-color: var(--mlr-btn-fill); }

/* D56 — Custom table axis classes (brand-token literals; scoped under .mlp-rebuild). */
.mlp-rebuild .mlr-custom-table__inner .ml-tcell-text-gold { color: #ffb71a; }
.mlp-rebuild .mlr-custom-table__inner .ml-tcell-text-charcoal { color: #332e21; }
.mlp-rebuild .mlr-custom-table__inner .ml-tcell-text-kraft { color: #b6814f; }
.mlp-rebuild .mlr-custom-table__inner .ml-tcell-text-cream { color: #efe3ce; }
.mlp-rebuild .mlr-custom-table__inner .ml-tcell-text-teal { color: #8ec4ac; }
.mlp-rebuild .mlr-custom-table__inner .ml-tcell-text-orange { color: #ec973a; }
.mlp-rebuild .mlr-custom-table__inner .ml-tcell-bg-gold { background-color: #ffb71a; }
.mlp-rebuild .mlr-custom-table__inner .ml-tcell-bg-charcoal { background-color: #332e21; }
.mlp-rebuild .mlr-custom-table__inner .ml-tcell-bg-kraft { background-color: #b6814f; }
.mlp-rebuild .mlr-custom-table__inner .ml-tcell-bg-cream { background-color: #efe3ce; }
.mlp-rebuild .mlr-custom-table__inner .ml-tcell-bg-teal { background-color: #8ec4ac; }
.mlp-rebuild .mlr-custom-table__inner .ml-tcell-bg-orange { background-color: #ec973a; }
.mlp-rebuild .mlr-custom-table__inner .ml-tcell-bg-orange-bright { background-color: #f18a00; }
.mlp-rebuild .mlr-custom-table__inner .ml-tcell-bg-dark-green { background-color: #0c7016; }
.mlp-rebuild .mlr-custom-table__inner .ml-tcell-sm { font-size: 0.875rem; }
.mlp-rebuild .mlr-custom-table__inner .ml-tcell-lg { font-size: 1.125rem; }
.mlp-rebuild .mlr-custom-table__inner .ml-tcell-semibold { font-weight: 600; }
.mlp-rebuild .mlr-custom-table__inner .ml-tcell-bold { font-weight: 700; }
.mlp-rebuild .mlr-custom-table__inner .ml-tcell-italic { font-style: italic; }

/* D15 — Text Gold line beside copy (D54 tier-two; Classic: body hugs copy, rule grows). */
.mlp-rebuild .mlr-text--gold-line {
	display: flex;
	align-items: center;
	width: 100%;
	gap: 1rem;
}

.mlp-rebuild .mlr-text--gold-line .mlr-text__body {
	flex: 0 1 auto;
	min-width: 0;
	max-width: 100%;
}

.mlp-rebuild .mlr-text--gold-line .mlr-text__gold-rule {
	flex: 1 1 auto;
	min-width: 0;
	border-top: 1px solid #ffb71a;
}

/*
 * Custom table cell wrap (gate 3 residual 2026-08-11): overflow-wrap alone is insufficient
 * on table cells — table-layout:fixed + min-width:0 on wrapper/cells lets break-word shrink
 * inside the column. overflow-x-auto on .mlr-custom-table kept for genuinely wide tables.
 */
.mlp-rebuild .mlr-custom-table,
.mlp-rebuild .mlr-custom-table__inner {
	min-width: 0;
}

.mlp-rebuild .mlr-custom-table__inner table {
	width: 100%;
	max-width: 100%;
	border-collapse: collapse;
	table-layout: fixed;
}

.mlp-rebuild .mlr-custom-table__inner th,
.mlp-rebuild .mlr-custom-table__inner td {
	border: 1px solid rgba(51, 46, 33, 0.25);
	padding: 0.75rem 1rem;
	vertical-align: top;
	text-align: left;
	min-width: 0;
}

.mlp-rebuild .mlr-custom-table__inner th p,
.mlp-rebuild .mlr-custom-table__inner td p {
	min-width: 0;
	overflow-wrap: break-word;
}

/* D56 axis classes above; table rules consolidated here (gate 3 wrap residual). */

/* D57 P2 — viewport-centered toast; below-ATC overlay after form.cart. */
.mlp-rebuild > .mlr-cart-notices--toast {
	position: fixed;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	max-width: 28rem;
	z-index: 40;
}

.mlp-rebuild .product-single-hero-summary-wrapper.summary.entry-summary {
	position: relative;
}

.mlp-rebuild .mlr-cart-notices--below-atc {
	position: absolute;
	left: 0;
	right: 0;
	z-index: 40;
}

.mlp-rebuild .mlr-cart-notices {
	opacity: 1;
	transition: opacity 1s ease;
	scroll-margin-top: 8rem;
}

.mlp-rebuild .mlr-cart-notices.mlr-cart-notices--leaving {
	opacity: 0;
}

.mlp-rebuild .mlr-cart-notices .woocommerce-message {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 0.75rem;
}

.mlp-rebuild .mlr-cart-notices .woocommerce-message a.button,
.mlp-rebuild .mlr-cart-notices .woocommerce-message a.wc-forward {
	background-color: #8ec4ac;
	color: #ffffff;
}

.mlp-rebuild .mlr-cart-notices .woocommerce-message a.button:hover,
.mlp-rebuild .mlr-cart-notices .woocommerce-message a.wc-forward:hover {
	background-color: #ffffff;
	color: #332e21;
}

/*
 * Product mirror (D57 / D54 tier-two) — gallery layout + bg-circle.
 * Theme PDP gallery rules are scoped to #content; Rebuild renders inside
 * .mlp-rebuild without that ancestor. Hero gutters (max-width / side padding)
 * come from theme Layer 1 .product-single-hero-wrapper — do not zero here.
 * Stacking/isolation with Section bg-stack: see Product+:has(bg-stack) block above.
 */
.mlp-rebuild .mlr-product-mirror div.product {
	overflow-x: clip;
}

.mlp-rebuild .mlr-product-mirror div.product .background-circle-hero-right {
	animation: slideDown 1s forwards;
	animation-timing-function: cubic-bezier(0.42, 0, 0.3, 1.1);
}

@media (min-width: 1024px) {
	.mlp-rebuild .mlr-product-mirror div.product .background-circle-hero-right {
		transform: translate(50vw, -25%);
		animation: productCenterRighttoLeft 1s forwards;
		animation-delay: 0.75s;
	}
}

/* Out-specify Woo core ~48% gallery width (PDP beats via #content). */
.mlp-rebuild .mlr-product-mirror div.product div.woocommerce-product-gallery--with-images,
.mlp-rebuild .mlr-product-mirror div.product div.images {
	float: none;
	width: 100%;
	max-width: 100%;
	margin: 0;
}

.mlp-rebuild .mlr-product-mirror div.product div.woocommerce-product-gallery--with-images {
	display: flex;
	align-items: center;
	max-width: 62rem;
	margin-left: auto;
	margin-right: auto;
}

@media (max-width: 1023px) {
	.mlp-rebuild .mlr-product-mirror div.product div.woocommerce-product-gallery--with-images {
		flex-direction: column;
		max-width: 40rem;
	}
}

.mlp-rebuild .mlr-product-mirror .woocommerce-product-gallery__image img {
	object-fit: contain;
	max-height: 60vh;
}

.mlp-rebuild .mlr-product-mirror div.product div.images .flex-control-thumbs {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	width: 6rem;
	flex-shrink: 0;
}

@media (max-width: 1023px) {
	.mlp-rebuild .mlr-product-mirror div.product div.images .flex-control-thumbs {
		max-width: 23.75rem;
		width: 100%;
		flex-direction: row;
		justify-content: center;
	}
}

.mlp-rebuild .mlr-product-mirror div.product div.images .flex-control-thumbs li {
	float: none;
	width: 100%;
	max-width: 6rem;
}

.mlp-rebuild .mlr-product-mirror div.product div.images .flex-control-thumbs li img {
	border: 2px solid transparent;
	border-radius: 10px;
	transition: border-color 0.3s ease-in;
	opacity: 1;
}

.mlp-rebuild .mlr-product-mirror div.product div.images .flex-control-thumbs li .flex-active {
	border: 2px solid white;
}

/* D62 — Section scroll animation, first L1-only motion slice. */
.mlp-rebuild .mlr-reveal {
	will-change: opacity, transform;
}

.mlp-rebuild .mlr-reveal-fade {
	opacity: 1;
	transition: opacity 1s ease-in-out;
}

.mlr-js .mlp-rebuild .mlr-reveal-fade.mlr-reveal-pre {
	opacity: 0;
}

.mlp-rebuild .mlr-reveal-rise {
	opacity: 1;
	transform: translateY(0);
	transition: opacity 0.75s ease-in-out, transform 1s ease-in-out;
}

.mlr-js .mlp-rebuild .mlr-reveal-rise.mlr-reveal-pre {
	opacity: 0;
	transform: translateY(2rem);
}

.mlp-rebuild .mlr-reveal-scale {
	opacity: 1;
	transform: scale(1);
	transition: opacity 0.8s ease-in-out, transform 0.8s cubic-bezier(0.42, 0, 0.3, 1.1);
}

.mlr-js .mlp-rebuild .mlr-reveal-scale.mlr-reveal-pre {
	opacity: 0;
	transform: scale(0.94);
}

/* D65 — enumerable reveal duration and Rise direction modifiers. */
.mlp-rebuild .mlr-reveal-fade.mlr-reveal-dur-short {
	transition-duration: 0.4s;
}

.mlp-rebuild .mlr-reveal-rise.mlr-reveal-dur-short,
.mlp-rebuild .mlr-reveal-scale.mlr-reveal-dur-short {
	transition-duration: 0.4s, 0.4s;
}

.mlp-rebuild .mlr-reveal-fade.mlr-reveal-dur-long {
	transition-duration: 2s;
}

.mlp-rebuild .mlr-reveal-rise.mlr-reveal-dur-long {
	transition-duration: 1.5s, 2s;
}

.mlp-rebuild .mlr-reveal-scale.mlr-reveal-dur-long {
	transition-duration: 1.6s, 1.6s;
}

.mlr-js .mlp-rebuild .mlr-reveal-rise.mlr-reveal-dir-down.mlr-reveal-pre {
	transform: translateY(-2rem);
}

.mlp-rebuild:has(.mlr-reveal-dir-left),
.mlp-rebuild:has(.mlr-reveal-dir-right) {
	overflow-x: clip;
}

.mlr-js .mlp-rebuild .mlr-reveal-rise.mlr-reveal-dir-left.mlr-reveal-pre {
	transform: translateX(100%);
}

.mlr-js .mlp-rebuild .mlr-reveal-rise.mlr-reveal-dir-right.mlr-reveal-pre {
	transform: translateX(-100%);
}

/* D69 — Shop circle first named effect kind; D87 Trigger via-hover or .mlr-fx-on. */
.mlp-rebuild .mlr-fx-shop-circle {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}

.mlp-rebuild .mlr-fx-shop-circle::before {
	content: "";
	position: absolute;
	z-index: -1;
	left: 0;
	bottom: -2%;
	width: 100%;
	height: 100%;
	border-radius: 50%;
	background: var(--mlr-fx-fill, #fad687);
	mix-blend-mode: multiply;
	pointer-events: none;
	transform-origin: 50% 100%;
	transform: scale(0);
	opacity: 0;
	transition: transform 1s cubic-bezier(0.6, 1.2, 0.4, 1), opacity 1s ease;
}

.mlp-rebuild .mlr-fx-shop-circle.mlr-color-bg-custom::before,
.mlp-rebuild .mlr-module.mlr-color-bg-custom .mlr-fx-shop-circle::before {
	background: var(--mlr-color-bg, #fad687);
}

.mlp-rebuild .mlr-fx-shop-circle.mlr-reveal-via-hover:hover::before,
.mlp-rebuild .mlr-fx-shop-circle.mlr-fx-on::before {
	transform: scale(0.8);
	opacity: 1;
}

.mlp-rebuild .mlr-fx-shop-circle.mlr-reveal-dur-short::before {
	transition-duration: 0.4s, 0.4s;
}

.mlp-rebuild .mlr-fx-shop-circle.mlr-reveal-dur-long::before {
	transition-duration: 2s, 2s;
}

.mlp-rebuild .mlr-fx-fill-charcoal { --mlr-fx-fill: #332e21; }
.mlp-rebuild .mlr-fx-fill-kraft { --mlr-fx-fill: #b6814f; }
.mlp-rebuild .mlr-fx-fill-cream { --mlr-fx-fill: #efe3ce; }
.mlp-rebuild .mlr-fx-fill-teal { --mlr-fx-fill: #8ec4ac; }
.mlp-rebuild .mlr-fx-fill-orange { --mlr-fx-fill: #ec973a; }
.mlp-rebuild .mlr-fx-fill-green { --mlr-fx-fill: #bebe49; }
.mlp-rebuild .mlr-fx-fill-purple { --mlr-fx-fill: #b898c1; }
.mlp-rebuild .mlr-fx-fill-light-blue { --mlr-fx-fill: #91c1b9; }
.mlp-rebuild .mlr-fx-fill-white { --mlr-fx-fill: #ffffff; }

/* D85 — Pop: planted 45° shelf inside the box; D87 Trigger presses the face. */
.mlp-rebuild .mlr-fx-pop {
	--mlr-pop-rest: 0.5rem;
	--mlr-pop-remain: var(--mlr-btn-border-width, 0px);
	--mlr-pop-travel: max(0px, calc(var(--mlr-pop-rest) - var(--mlr-pop-remain)));
	--mlr-pop-color: var(--mlr-btn-border-color, #332e21);
	box-sizing: border-box;
	position: relative;
	isolation: isolate;
	padding: 0 var(--mlr-pop-rest) var(--mlr-pop-rest) 0;
	border-width: 0;
	overflow: hidden;
	clip-path: polygon(
		0 0,
		calc(100% - var(--mlr-pop-rest)) 0,
		100% var(--mlr-pop-rest),
		100% 100%,
		var(--mlr-pop-rest) 100%,
		0 calc(100% - var(--mlr-pop-rest))
	);
	transform: none;
	transition:
		padding 1s cubic-bezier(0.22, 1, 0.36, 1),
		transform 1s cubic-bezier(0.22, 1, 0.36, 1);
}

.mlp-rebuild .ml-buttons .ml-btn.mlr-fx-pop {
	border-width: 0;
	background-color: transparent;
}

.mlp-rebuild .mlr-fx-pop-left {
	padding: 0 0 var(--mlr-pop-rest) var(--mlr-pop-rest);
	clip-path: polygon(
		var(--mlr-pop-rest) 0,
		100% 0,
		100% calc(100% - var(--mlr-pop-rest)),
		calc(100% - var(--mlr-pop-rest)) 100%,
		0 100%,
		0 var(--mlr-pop-rest)
	);
}

.mlp-rebuild .mlr-fx-pop::before {
	content: "";
	position: absolute;
	z-index: -1;
	box-sizing: border-box;
	inset: 0 var(--mlr-pop-rest) var(--mlr-pop-rest) 0;
	background: var(--mlr-pop-face, inherit);
	border-radius: inherit;
	border-style: var(--mlr-btn-border-style, solid);
	border-color: var(--mlr-btn-border-color, transparent);
	border-width: var(--mlr-btn-border-width, 0) 0 0 var(--mlr-btn-border-width, 0);
	clip-path: polygon(
		0 0,
		calc(100% - var(--mlr-pop-remain)) 0,
		100% var(--mlr-pop-remain),
		100% 100%,
		var(--mlr-pop-remain) 100%,
		0 calc(100% - var(--mlr-pop-remain))
	);
	pointer-events: none;
	transform: translate(0, 0);
	transition: transform 1s cubic-bezier(0.22, 1, 0.36, 1);
}

.mlp-rebuild .mlr-fx-pop-left::before {
	inset: 0 0 var(--mlr-pop-rest) var(--mlr-pop-rest);
	border-width: var(--mlr-btn-border-width, 0) var(--mlr-btn-border-width, 0) 0 0;
	clip-path: polygon(
		var(--mlr-pop-remain) 0,
		100% 0,
		100% calc(100% - var(--mlr-pop-remain)),
		calc(100% - var(--mlr-pop-remain)) 100%,
		0 100%,
		0 var(--mlr-pop-remain)
	);
}

.mlp-rebuild .mlr-fx-pop::after {
	content: "";
	position: absolute;
	z-index: -2;
	inset: 0;
	background: var(--mlr-pop-color);
	pointer-events: none;
	clip-path: polygon(
		calc(100% - var(--mlr-pop-rest)) 0,
		100% var(--mlr-pop-rest),
		100% 100%,
		var(--mlr-pop-rest) 100%,
		0 calc(100% - var(--mlr-pop-rest)),
		calc(100% - var(--mlr-pop-rest)) calc(100% - var(--mlr-pop-rest))
	);
	transition: clip-path 1s cubic-bezier(0.22, 1, 0.36, 1);
}

.mlp-rebuild .mlr-fx-pop-left::after {
	clip-path: polygon(
		0 var(--mlr-pop-rest),
		var(--mlr-pop-rest) 0,
		var(--mlr-pop-rest) calc(100% - var(--mlr-pop-rest)),
		100% calc(100% - var(--mlr-pop-rest)),
		calc(100% - var(--mlr-pop-rest)) 100%,
		0 100%
	);
}

.mlp-rebuild .mlr-fx-pop.mlr-reveal-via-hover:hover,
.mlp-rebuild .mlr-fx-pop.mlr-fx-on {
	padding: var(--mlr-pop-travel) var(--mlr-pop-remain) var(--mlr-pop-remain) var(--mlr-pop-travel);
}

.mlp-rebuild .mlr-fx-pop-left.mlr-reveal-via-hover:hover,
.mlp-rebuild .mlr-fx-pop-left.mlr-fx-on {
	padding: var(--mlr-pop-travel) var(--mlr-pop-travel) var(--mlr-pop-remain) var(--mlr-pop-remain);
}

.mlp-rebuild .mlr-fx-pop.mlr-reveal-via-hover:hover::before,
.mlp-rebuild .mlr-fx-pop.mlr-fx-on::before {
	transform: translate(var(--mlr-pop-travel), var(--mlr-pop-travel));
}

.mlp-rebuild .mlr-fx-pop-left.mlr-reveal-via-hover:hover::before,
.mlp-rebuild .mlr-fx-pop-left.mlr-fx-on::before {
	transform: translate(calc(-1 * var(--mlr-pop-travel)), var(--mlr-pop-travel));
}

.mlp-rebuild .mlr-fx-pop.mlr-reveal-via-hover:hover::after,
.mlp-rebuild .mlr-fx-pop.mlr-fx-on::after {
	clip-path: polygon(
		calc(100% - var(--mlr-pop-remain)) 0,
		100% var(--mlr-pop-remain),
		100% 100%,
		var(--mlr-pop-remain) 100%,
		0 calc(100% - var(--mlr-pop-remain)),
		calc(100% - var(--mlr-pop-remain)) calc(100% - var(--mlr-pop-remain))
	);
}

.mlp-rebuild .mlr-fx-pop-left.mlr-reveal-via-hover:hover::after,
.mlp-rebuild .mlr-fx-pop-left.mlr-fx-on::after {
	clip-path: polygon(
		0 var(--mlr-pop-remain),
		var(--mlr-pop-remain) 0,
		var(--mlr-pop-remain) calc(100% - var(--mlr-pop-remain)),
		100% calc(100% - var(--mlr-pop-remain)),
		calc(100% - var(--mlr-pop-remain)) 100%,
		0 100%
	);
}

.mlp-rebuild .mlr-fx-pop.mlr-reveal-dur-short {
	transition-duration: 0.4s, 0.4s;
}

.mlp-rebuild .mlr-fx-pop.mlr-reveal-dur-short::before,
.mlp-rebuild .mlr-fx-pop.mlr-reveal-dur-short::after {
	transition-duration: 0.4s;
}

.mlp-rebuild .mlr-fx-pop.mlr-reveal-dur-long {
	transition-duration: 2s, 2s;
}

.mlp-rebuild .mlr-fx-pop.mlr-reveal-dur-long::before,
.mlp-rebuild .mlr-fx-pop.mlr-reveal-dur-long::after {
	transition-duration: 2s;
}

/* D86 — Fill third named effect kind; D87 Trigger wipe on D66 targets. */
/* D98 residual: the wipe clips itself (radius inherited) so the host does not
   clip the Accent layer. Do not restore `overflow: hidden` here. */
.mlp-rebuild .mlr-fx-fill {
	position: relative;
	isolation: isolate;
}

/* D86 land through a18dae34 clipped the wipe on the host. Look-pass 2 moved
   that clip off so a D98 Accent layer outside the box is not swallowed.
   Fill-alone gets the original host clip back; Accent withholds it. */
.mlp-rebuild .mlr-fx-fill:not(.mlr-fx-accent) {
	overflow: hidden;
}

.mlp-rebuild .mlr-fx-fill::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	border-radius: inherit;
	overflow: hidden;
	background: var(--mlr-fx-fill, #fad687);
	pointer-events: none;
	transform: scaleY(0);
	transform-origin: bottom center;
	transition: transform 1s cubic-bezier(0.6, 1.2, 0.4, 1);
}

.mlp-rebuild .mlr-fx-fill.mlr-reveal-via-hover:hover::before,
.mlp-rebuild .mlr-fx-fill.mlr-fx-on::before {
	transform: scaleY(1);
}

.mlp-rebuild .mlr-fx-fill.mlr-reveal-dir-down::before {
	transform-origin: top center;
}

/* D86 look residual: Left wipe travels left, so it grows from the right edge —
   same reading as Up = from the bottom, going up. */
.mlp-rebuild .mlr-fx-fill.mlr-reveal-dir-left::before {
	transform: scaleX(0);
	transform-origin: right center;
}

.mlp-rebuild .mlr-fx-fill.mlr-reveal-dir-left.mlr-reveal-via-hover:hover::before,
.mlp-rebuild .mlr-fx-fill.mlr-reveal-dir-left.mlr-fx-on::before {
	transform: scaleX(1);
}

.mlp-rebuild .mlr-fx-fill.mlr-reveal-dir-right::before {
	transform: scaleX(0);
	transform-origin: left center;
}

.mlp-rebuild .mlr-fx-fill.mlr-reveal-dir-right.mlr-reveal-via-hover:hover::before,
.mlp-rebuild .mlr-fx-fill.mlr-reveal-dir-right.mlr-fx-on::before {
	transform: scaleX(1);
}

.mlp-rebuild .mlr-fx-fill.mlr-reveal-dur-short::before {
	transition-duration: 0.4s;
}

.mlp-rebuild .mlr-fx-fill.mlr-reveal-dur-long::before {
	transition-duration: 2s;
}

/* D90 — Shine fourth named effect kind; D87 Trigger sweep on D66 targets.
   Look-pass 2 (5): the gleam clips itself instead of the host, so a host
   `overflow: hidden` can no longer swallow the D98 Accent layer — the same shape
   as the Fill `::before` clip. The band therefore travels as an oversized
   background inside a box-sized layer rather than as an oversized layer that
   leaves the box; the diagonal now comes from the gradient angle alone. */
.mlp-rebuild .mlr-fx-shine {
	position: relative;
	isolation: isolate;
}

.mlp-rebuild .mlr-fx-shine::after {
	content: "";
	position: absolute;
	z-index: 1;
	inset: 0;
	overflow: hidden;
	border-radius: inherit;
	pointer-events: none;
	background-image: linear-gradient(
		105deg,
		transparent 35%,
		var(--mlr-fx-shine, rgba(255, 255, 255, 0.75)) 50%,
		transparent 65%
	);
	background-repeat: no-repeat;
	background-size: 100% 300%;
	background-position: 50% 0%;
	transition: background-position 1s cubic-bezier(0.6, 1.2, 0.4, 1);
}

.mlp-rebuild .mlr-fx-shine.mlr-fx-fill-charcoal { --mlr-fx-shine: #332e21; }
.mlp-rebuild .mlr-fx-shine.mlr-fx-fill-kraft { --mlr-fx-shine: #b6814f; }
.mlp-rebuild .mlr-fx-shine.mlr-fx-fill-cream { --mlr-fx-shine: #efe3ce; }
.mlp-rebuild .mlr-fx-shine.mlr-fx-fill-teal { --mlr-fx-shine: #8ec4ac; }
.mlp-rebuild .mlr-fx-shine.mlr-fx-fill-orange { --mlr-fx-shine: #ec973a; }
.mlp-rebuild .mlr-fx-shine.mlr-fx-fill-green { --mlr-fx-shine: #bebe49; }
.mlp-rebuild .mlr-fx-shine.mlr-fx-fill-purple { --mlr-fx-shine: #b898c1; }
.mlp-rebuild .mlr-fx-shine.mlr-fx-fill-light-blue { --mlr-fx-shine: #91c1b9; }
.mlp-rebuild .mlr-fx-shine.mlr-fx-fill-white { --mlr-fx-shine: #ffffff; }

/* Rest parks the band off one edge; play sweeps it past the opposite edge. With
   the background three times the box on the travel axis, 0% holds it clear on
   the near side and 100% clear on the far side. Up = from the bottom, going up. */
.mlp-rebuild .mlr-fx-shine.mlr-reveal-via-hover:hover::after,
.mlp-rebuild .mlr-fx-shine.mlr-fx-on::after {
	background-position: 50% 100%;
}

.mlp-rebuild .mlr-fx-shine.mlr-reveal-dir-down::after {
	background-position: 50% 100%;
}

.mlp-rebuild .mlr-fx-shine.mlr-reveal-dir-down.mlr-reveal-via-hover:hover::after,
.mlp-rebuild .mlr-fx-shine.mlr-reveal-dir-down.mlr-fx-on::after {
	background-position: 50% 0%;
}

.mlp-rebuild .mlr-fx-shine.mlr-reveal-dir-left::after,
.mlp-rebuild .mlr-fx-shine.mlr-reveal-dir-right::after {
	background-size: 300% 100%;
}

.mlp-rebuild .mlr-fx-shine.mlr-reveal-dir-left::after {
	background-position: 0% 50%;
}

.mlp-rebuild .mlr-fx-shine.mlr-reveal-dir-left.mlr-reveal-via-hover:hover::after,
.mlp-rebuild .mlr-fx-shine.mlr-reveal-dir-left.mlr-fx-on::after {
	background-position: 100% 50%;
}

.mlp-rebuild .mlr-fx-shine.mlr-reveal-dir-right::after {
	background-position: 100% 50%;
}

.mlp-rebuild .mlr-fx-shine.mlr-reveal-dir-right.mlr-reveal-via-hover:hover::after,
.mlp-rebuild .mlr-fx-shine.mlr-reveal-dir-right.mlr-fx-on::after {
	background-position: 0% 50%;
}

.mlp-rebuild .mlr-fx-shine.mlr-reveal-dur-short::after {
	transition-duration: 0.4s;
}

.mlp-rebuild .mlr-fx-shine.mlr-reveal-dur-long::after {
	transition-duration: 2s;
}

/* D91 — Zoom fifth named effect kind; clip host (non-Image) + figure (Image); scale inner paint on D87 play. */
.mlp-rebuild .mlr-fx-zoom {
	overflow: hidden;
}

.mlp-rebuild .mlr-fx-zoom .mlr-image {
	overflow: hidden;
}

.mlp-rebuild .mlr-fx-zoom img,
.mlp-rebuild .mlr-fx-zoom .mlr-image-icon,
.mlp-rebuild .mlr-fx-zoom > *:not(.mlr-image) {
	transform: scale(1);
	transform-origin: center;
	transition: transform 1s cubic-bezier(0.6, 1.2, 0.4, 1);
}

.mlp-rebuild .mlr-fx-zoom.mlr-reveal-via-hover:hover img,
.mlp-rebuild .mlr-fx-zoom.mlr-reveal-via-hover:hover .mlr-image-icon,
.mlp-rebuild .mlr-fx-zoom.mlr-reveal-via-hover:hover > *:not(.mlr-image),
.mlp-rebuild .mlr-fx-zoom.mlr-fx-on img,
.mlp-rebuild .mlr-fx-zoom.mlr-fx-on .mlr-image-icon,
.mlp-rebuild .mlr-fx-zoom.mlr-fx-on > *:not(.mlr-image) {
	transform: scale(1.06);
}

.mlp-rebuild .mlr-fx-zoom.mlr-reveal-dur-short img,
.mlp-rebuild .mlr-fx-zoom.mlr-reveal-dur-short .mlr-image-icon,
.mlp-rebuild .mlr-fx-zoom.mlr-reveal-dur-short > *:not(.mlr-image) {
	transition-duration: 0.4s;
}

.mlp-rebuild .mlr-fx-zoom.mlr-reveal-dur-long img,
.mlp-rebuild .mlr-fx-zoom.mlr-reveal-dur-long .mlr-image-icon,
.mlp-rebuild .mlr-fx-zoom.mlr-reveal-dur-long > *:not(.mlr-image) {
	transition-duration: 2s;
}

/* D92 — Tilt sixth named effect kind; rotate host on D87 play; no clip. */
.mlp-rebuild .mlr-fx-tilt {
	transition: transform 1s cubic-bezier(0.6, 1.2, 0.4, 1);
}

.mlp-rebuild .mlr-fx-tilt.mlr-reveal-via-hover:hover,
.mlp-rebuild .mlr-fx-tilt.mlr-fx-on {
	transform: rotate(2deg);
}

.mlp-rebuild .mlr-fx-tilt.mlr-reveal-dir-left.mlr-reveal-via-hover:hover,
.mlp-rebuild .mlr-fx-tilt.mlr-reveal-dir-left.mlr-fx-on {
	transform: rotate(-2deg);
}

.mlp-rebuild .mlr-fx-tilt.mlr-reveal-dur-short {
	transition-duration: 0.4s;
}

.mlp-rebuild .mlr-fx-tilt.mlr-reveal-dur-long {
	transition-duration: 2s;
}

/* D103 — Cluck, the first Effect to carry authored media. The overlay is a
   package child (`.mlr-fx-cluck-layer`, emitted by AnimationControl) holding two
   image slots and the two authored words: the Accent-layer pattern, not an
   Accent and not a host pseudo-element, so Fill keeps `::before` and Shine keeps
   `::after`. The bird sits behind the host paint and peeks over the top edge;
   the host's opaque pixels cover the overlapping body. Do not overflow-hidden
   the wrapper — that would clip the peek.

   Every beat is a fraction of the existing D65 Duration — the rise, then the
   pause, then image 1 rotates to End (the cluck), then the swap — so Short /
   Default / Long clock the whole motion and no free ms, deg, or px reaches the
   document. The bird rides one transform transition for peek and duck, same
   duration and easing, so trigger-end travels back the way it came out. Image 2
   holds that pose until the duck finishes — the 0s swap must not cut the bird
   away first. Image 1 owns the rotate; image 2 cuts in only after that End
   pose lands; the words start immediately after the swap. They sit in image-2
   space and rotate with `--mlr-cluck-end-rot`. Appear/fade is 3× the remaining
   Duration window. */
	.mlp-rebuild .mlr-fx-cluck {
	position: relative;
	--mlr-cluck-dur: 1s;
	--mlr-cluck-op: 1;
	--mlr-cluck-text-op: 1;
	--mlr-cluck-pop-rot: 0deg;
	--mlr-cluck-end-rot: 0deg;
	--mlr-cluck-rise: calc(var(--mlr-cluck-dur) * 0.3);
	--mlr-cluck-sit: calc(var(--mlr-cluck-dur) * 0.5);
	--mlr-cluck-turn: calc(var(--mlr-cluck-dur) * 0.1);
	--mlr-cluck-hold: calc(var(--mlr-cluck-dur) * 0.2);
	/* Swap / words. Peek + sit + End rotate (0.1 of Duration). */
	--mlr-cluck-beat: calc(var(--mlr-cluck-dur) * 0.9);
	--mlr-cluck-word: calc(var(--mlr-cluck-dur) * 0.38 * 3);
	--mlr-cluck-word-stagger: calc(var(--mlr-cluck-dur) * 0.14 * 3);
	/* Default bird width; measured box overrides sit once JS reads Image 2. */
	--mlr-cluck-img-w: 7.5rem;
	--mlr-cluck-img-box-w: var(--mlr-measured-box-w, var(--mlr-cluck-img-w));
	--mlr-cluck-img-box-h: var(--mlr-measured-box-h, auto);
	--mlr-cluck-word-ax: calc(var(--mlr-cluck-img-box-w) * -0.5 - 1.47rem);
	--mlr-cluck-word-ay: 1.15rem;
	--mlr-cluck-word-bx: -1.15rem;
	--mlr-cluck-word-by: calc(var(--mlr-cluck-img-w) * -1.3 / 7.5);
	/* Word B fans from its near-bird corner (the sit point closest to image 2). */
	--mlr-cluck-word-b-turn: 20deg;
	/* How far the bird peeks above the host's top. Package rem, not %. */
	--mlr-cluck-travel: 6.5rem;
	/* Cluck (long): one cycle is peek through Word A/B, the peck body,
	   Pop hold after Word A, duck hold, then restart from hidden.
	   First sit at Pop is 2× sit. Peck body = Pop (6× hold), peck −12.5
	   (bottom pivot) with 8× hold, Pop again (6× hold), 50% Pop→End,
	   swap Image 2, Word A. Peck / Pop-return / half-cluck use turn;
	   duck travel uses rise. */
	--mlr-cluck-first-pass: calc(var(--mlr-cluck-beat) + var(--mlr-cluck-word));
	--mlr-cluck-short-loop-dur: calc(var(--mlr-cluck-first-pass) + var(--mlr-cluck-hold) * 12 + var(--mlr-cluck-rise));
	--mlr-cluck-loop-dur: calc(var(--mlr-cluck-first-pass) + var(--mlr-cluck-sit) + var(--mlr-cluck-hold) * 32 + var(--mlr-cluck-turn) * 3 + var(--mlr-cluck-word) + var(--mlr-cluck-rise));
	--mlr-cluck-peck-dir: 1;
	--mlr-cluck-peck-a: 12.5deg;
}

.mlp-rebuild .mlr-fx-cluck.mlr-reveal-dur-short {
	--mlr-cluck-dur: 0.4s;
}

.mlp-rebuild .mlr-fx-cluck.mlr-reveal-dur-long {
	--mlr-cluck-dur: 2s;
}

.mlp-rebuild .mlr-fx-cluck-pop-left {
	--mlr-cluck-pop-rot: -12deg;
}

.mlp-rebuild .mlr-fx-cluck-pop-right {
	--mlr-cluck-pop-rot: 12deg;
}

.mlp-rebuild .mlr-fx-cluck-end-left {
	--mlr-cluck-end-rot: -12deg;
	--mlr-cluck-peck-dir: -1;
}

.mlp-rebuild .mlr-fx-cluck-end-right {
	--mlr-cluck-end-rot: 12deg;
}

.mlp-rebuild .mlr-fx-cluck-op-mid {
	--mlr-cluck-op: 0.75;
}

.mlp-rebuild .mlr-fx-cluck-op-soft {
	--mlr-cluck-op: 0.5;
}

.mlp-rebuild .mlr-fx-cluck-text-op-mid {
	--mlr-cluck-text-op: 0.75;
}

.mlp-rebuild .mlr-fx-cluck-text-op-soft {
	--mlr-cluck-text-op: 0.5;
}

.mlp-rebuild .mlr-fx-cluck-layer {
	position: absolute;
	z-index: -1;
	left: 50%;
	top: 0;
	width: 0;
	height: 0;
	pointer-events: none;
	transform: translateY(0);
	transition: transform var(--mlr-cluck-rise, 0.3s) cubic-bezier(0.3, 1.3, 0.5, 1);
}

.mlp-rebuild .mlr-fx-cluck.mlr-reveal-via-hover:hover .mlr-fx-cluck-layer,
.mlp-rebuild .mlr-fx-cluck.mlr-fx-on .mlr-fx-cluck-layer {
	transform: translateY(calc(-1 * var(--mlr-cluck-travel, 6.5rem)));
}

.mlp-rebuild .mlr-fx-cluck-img {
	position: absolute;
	z-index: 1;
	top: 0;
	left: 50%;
	width: var(--mlr-cluck-img-w, 7.5rem);
	margin-left: calc(var(--mlr-cluck-img-w, 7.5rem) * -0.5);
	transform-origin: 50% 0%;
}

.mlp-rebuild .mlr-fx-cluck-img img {
	display: block;
	width: 100%;
	height: auto;
}

/* Image 1 pops up to its Pop angle, pauses, then rotates to End (the cluck).
   Opacity cuts at the beat so image 2 takes over only after that rotate lands.
   Rest delays the cut by the rise so image 2 stays on while the bird ducks. */
.mlp-rebuild .mlr-fx-cluck-img-1 {
	opacity: var(--mlr-cluck-op, 1);
	transform: rotate(0deg);
	transition: opacity 0s linear;
	transition-delay: var(--mlr-cluck-rise, 0.3s);
}

.mlp-rebuild .mlr-fx-cluck-img-2 {
	opacity: 0;
	transform: rotate(0deg);
	transition:
		transform 0s linear,
		opacity 0s linear;
	transition-delay: var(--mlr-cluck-rise, 0.3s), var(--mlr-cluck-rise, 0.3s);
}

.mlp-rebuild .mlr-fx-cluck:not(.mlr-fx-cluck-long).mlr-reveal-via-hover:hover .mlr-fx-cluck-layer,
.mlp-rebuild .mlr-fx-cluck:not(.mlr-fx-cluck-long).mlr-fx-on .mlr-fx-cluck-layer {
	animation: mlr-fx-cluck-short-layer var(--mlr-cluck-short-loop-dur) cubic-bezier(0.3, 1.3, 0.5, 1) infinite;
}

.mlp-rebuild .mlr-fx-cluck:not(.mlr-fx-cluck-long).mlr-reveal-via-hover:hover .mlr-fx-cluck-img-1,
.mlp-rebuild .mlr-fx-cluck:not(.mlr-fx-cluck-long).mlr-fx-on .mlr-fx-cluck-img-1 {
	opacity: 0;
	animation: mlr-fx-cluck-short-img-1 var(--mlr-cluck-short-loop-dur) cubic-bezier(0.3, 1.3, 0.5, 1) infinite;
	transition-delay: var(--mlr-cluck-beat, 0.9s);
}

.mlp-rebuild .mlr-fx-cluck:not(.mlr-fx-cluck-long).mlr-reveal-via-hover:hover .mlr-fx-cluck-img-2,
.mlp-rebuild .mlr-fx-cluck:not(.mlr-fx-cluck-long).mlr-fx-on .mlr-fx-cluck-img-2 {
	animation: mlr-fx-cluck-short-img-2 var(--mlr-cluck-short-loop-dur) infinite;
}

/* Package mouth sit — in image-2 space, fully left of the measured box.
   Translate(-100%) grows the word away from the bird so a longer word
   cannot cross the box edge. Rotate around the same pin as image 2. */
.mlp-rebuild .mlr-fx-cluck-word {
	position: absolute;
	z-index: 2;
	top: 0;
	left: 50%;
	white-space: nowrap;
	opacity: 0;
	transform-origin: 0 0;
	color: var(--mlr-accent-ink, #332e21);
	font-size: 0.875rem;
	line-height: 1;
}

.mlp-rebuild .mlr-fx-cluck-word-a {
	transform: rotate(var(--mlr-cluck-end-rot, 0deg)) translate(var(--mlr-cluck-word-ax), var(--mlr-cluck-word-ay)) translate(-100%, 0);
}

.mlp-rebuild .mlr-fx-cluck-word-b {
	/* Place the span, grow away from the bird, then pivot 20° around the
	   corner nearest image 2 (`translate(100%, 100%)` is that corner). */
	transform: rotate(var(--mlr-cluck-end-rot, 0deg)) translate(
		calc(var(--mlr-cluck-word-ax) + var(--mlr-cluck-word-bx)),
		calc(var(--mlr-cluck-word-ay) + var(--mlr-cluck-word-by))
	)
	translate(-100%, 0)
	translate(100%, 100%)
	rotate(var(--mlr-cluck-word-b-turn, 20deg))
	translate(-100%, -100%);
}

.mlp-rebuild .mlr-fx-cluck:not(.mlr-fx-cluck-long).mlr-reveal-via-hover:hover .mlr-fx-cluck-word-a,
.mlp-rebuild .mlr-fx-cluck:not(.mlr-fx-cluck-long).mlr-fx-on .mlr-fx-cluck-word-a {
	animation: mlr-fx-cluck-short-word-a var(--mlr-cluck-short-loop-dur) ease-out infinite;
}

.mlp-rebuild .mlr-fx-cluck:not(.mlr-fx-cluck-long).mlr-reveal-via-hover:hover .mlr-fx-cluck-word-b,
.mlp-rebuild .mlr-fx-cluck:not(.mlr-fx-cluck-long).mlr-fx-on .mlr-fx-cluck-word-b {
	animation: mlr-fx-cluck-short-word-b var(--mlr-cluck-short-loop-dur) ease-out infinite;
}

/* Image: the photo frame is the host. Width token moves onto the figure so the
   overlay's containing block matches the img, including 50% module widths. */
.mlp-rebuild .mlr-module--image.mlr-fx-cluck .mlr-image {
	position: relative;
	overflow: visible;
}

.mlp-rebuild .mlr-module--image.mlr-fx-cluck .mlr-image img,
.mlp-rebuild .mlr-module--image.mlr-fx-cluck .mlr-image .mlr-image-icon {
	position: relative;
	z-index: 1;
}

@media (min-width: 768px) {
	.mlp-rebuild[data-mlr-breakpoint="md"] .mlr-module--image.mlr-fx-cluck .mlr-image.mlr-image--has-width {
		width: var(--mlr-image-width);
		max-width: 100%;
	}

	.mlp-rebuild[data-mlr-breakpoint="md"] .mlr-module--image.mlr-fx-cluck .mlr-image.mlr-image--has-width img {
		width: 100%;
	}
}

@media (min-width: 1024px) {
	.mlp-rebuild[data-mlr-breakpoint="lg"] .mlr-module--image.mlr-fx-cluck .mlr-image.mlr-image--has-width {
		width: var(--mlr-image-width);
		max-width: 100%;
	}

	.mlp-rebuild[data-mlr-breakpoint="lg"] .mlr-module--image.mlr-fx-cluck .mlr-image.mlr-image--has-width img {
		width: 100%;
	}
}

@keyframes mlr-fx-cluck-img-1 {
	0% {
		transform: rotate(0deg);
	}

	/* Peek 0.3 / sit 0.5 / rotate 0.1 of Duration (33.3% / 88.9% of the beat). */
	33.3% {
		transform: rotate(var(--mlr-cluck-pop-rot, 0deg));
	}

	88.9% {
		transform: rotate(var(--mlr-cluck-pop-rot, 0deg));
	}

	100% {
		transform: rotate(var(--mlr-cluck-end-rot, 0deg));
	}
}

@keyframes mlr-fx-cluck-word {
	0% {
		opacity: 0;
	}

	14% {
		opacity: var(--mlr-cluck-text-op, 1);
	}

	38% {
		opacity: var(--mlr-cluck-text-op, 1);
	}

	100% {
		opacity: 0;
	}
}

/* D103 — Cluck (short): one infinite cycle peek → words → Pop hold → duck.
   Percents are of --mlr-cluck-short-loop-dur (first-pass + 12 hold + rise). */
@keyframes mlr-fx-cluck-short-layer {
	0% {
		transform: translateY(0);
	}

	6.3%,
	68.4% {
		transform: translateY(calc(-1 * var(--mlr-cluck-travel, 6.5rem)));
	}

	74.7%,
	100% {
		transform: translateY(0);
	}
}

@keyframes mlr-fx-cluck-short-img-1 {
	0% {
		opacity: var(--mlr-cluck-op, 1);
		transform-origin: 50% 0%;
		transform: rotate(0deg);
	}

	6.3%,
	16.9% {
		opacity: var(--mlr-cluck-op, 1);
		transform-origin: 50% 0%;
		transform: rotate(var(--mlr-cluck-pop-rot, 0deg));
	}

	19% {
		opacity: var(--mlr-cluck-op, 1);
		transform-origin: 50% 0%;
		transform: rotate(var(--mlr-cluck-end-rot, 0deg));
	}

	19.1%,
	43% {
		opacity: 0;
		transform-origin: 50% 0%;
		transform: rotate(var(--mlr-cluck-end-rot, 0deg));
	}

	43.1%,
	100% {
		opacity: var(--mlr-cluck-op, 1);
		transform-origin: 50% 0%;
		transform: rotate(var(--mlr-cluck-pop-rot, 0deg));
	}
}

@keyframes mlr-fx-cluck-short-img-2 {
	0%,
	19% {
		opacity: 0;
		transform: rotate(var(--mlr-cluck-end-rot, 0deg));
	}

	19.1%,
	43% {
		opacity: var(--mlr-cluck-op, 1);
		transform: rotate(var(--mlr-cluck-end-rot, 0deg));
	}

	43.1%,
	100% {
		opacity: 0;
		transform: rotate(var(--mlr-cluck-end-rot, 0deg));
	}
}

@keyframes mlr-fx-cluck-short-word-a {
	0%,
	19% {
		opacity: 0;
	}

	22.4%,
	28.1% {
		opacity: var(--mlr-cluck-text-op, 1);
	}

	43%,
	100% {
		opacity: 0;
	}
}

@keyframes mlr-fx-cluck-short-word-b {
	0%,
	27.8% {
		opacity: 0;
	}

	30%,
	33.6% {
		opacity: var(--mlr-cluck-text-op, 1);
	}

	43%,
	100% {
		opacity: 0;
	}
}

/* D103 amend — Cluck (long): one infinite cycle from peek to duck.
   Percents are of --mlr-cluck-loop-dur (first-pass + sit + 32 hold + 3 turn + word + rise).
   First sit at Pop is doubled; peck hold is 8× hold.
   Peck rotates from the image bottom; Pop / End keep 50% 0%.
   Trigger-end still ducks on the layer rise transition after the cycle. */
.mlp-rebuild .mlr-fx-cluck-long.mlr-reveal-via-hover:hover .mlr-fx-cluck-layer,
.mlp-rebuild .mlr-fx-cluck-long.mlr-fx-on .mlr-fx-cluck-layer {
	animation: mlr-fx-cluck-long-layer var(--mlr-cluck-loop-dur) cubic-bezier(0.3, 1.3, 0.5, 1) infinite;
}

.mlp-rebuild .mlr-fx-cluck-long.mlr-reveal-via-hover:hover .mlr-fx-cluck-img-1,
.mlp-rebuild .mlr-fx-cluck-long.mlr-fx-on .mlr-fx-cluck-img-1 {
	opacity: 0;
	animation: mlr-fx-cluck-long-img-1 var(--mlr-cluck-loop-dur) cubic-bezier(0.3, 1.3, 0.5, 1) infinite;
	transition-delay: var(--mlr-cluck-beat, 0.9s);
}

.mlp-rebuild .mlr-fx-cluck-long.mlr-reveal-via-hover:hover .mlr-fx-cluck-img-2,
.mlp-rebuild .mlr-fx-cluck-long.mlr-fx-on .mlr-fx-cluck-img-2 {
	animation: mlr-fx-cluck-long-img-2-loop var(--mlr-cluck-loop-dur) infinite;
}

.mlp-rebuild .mlr-fx-cluck-long.mlr-reveal-via-hover:hover .mlr-fx-cluck-word-a,
.mlp-rebuild .mlr-fx-cluck-long.mlr-fx-on .mlr-fx-cluck-word-a {
	animation: mlr-fx-cluck-long-word-a var(--mlr-cluck-loop-dur) ease-out infinite;
}

.mlp-rebuild .mlr-fx-cluck-long.mlr-reveal-via-hover:hover .mlr-fx-cluck-word-b,
.mlp-rebuild .mlr-fx-cluck-long.mlr-fx-on .mlr-fx-cluck-word-b {
	animation: mlr-fx-cluck-long-word-b var(--mlr-cluck-loop-dur) ease-out infinite;
}

@keyframes mlr-fx-cluck-long-layer {
	0% {
		transform: translateY(0);
	}

	2.8%,
	86% {
		transform: translateY(calc(-1 * var(--mlr-cluck-travel, 6.5rem)));
	}

	88.8%,
	100% {
		transform: translateY(0);
	}
}

@keyframes mlr-fx-cluck-long-img-1 {
	0% {
		opacity: var(--mlr-cluck-op, 1);
		transform-origin: 50% 0%;
		transform: rotate(0deg);
	}

	2.8%,
	12.2% {
		opacity: var(--mlr-cluck-op, 1);
		transform-origin: 50% 0%;
		transform: rotate(var(--mlr-cluck-pop-rot, 0deg));
	}

	13.1% {
		opacity: var(--mlr-cluck-op, 1);
		transform-origin: 50% 0%;
		transform: rotate(var(--mlr-cluck-end-rot, 0deg));
	}

	13.2%,
	23.8% {
		opacity: 0;
		transform-origin: 50% 0%;
		transform: rotate(var(--mlr-cluck-end-rot, 0deg));
	}

	23.9%,
	35% {
		opacity: var(--mlr-cluck-op, 1);
		transform-origin: 50% 0%;
		transform: rotate(var(--mlr-cluck-pop-rot, 0deg));
	}

	36%,
	50.9% {
		opacity: var(--mlr-cluck-op, 1);
		transform-origin: 50% 100%;
		transform: rotate(calc(var(--mlr-cluck-pop-rot, 0deg) - var(--mlr-cluck-peck-a, 12.5deg) * var(--mlr-cluck-peck-dir, 1)));
	}

	51.9%,
	63.1% {
		opacity: var(--mlr-cluck-op, 1);
		transform-origin: 50% 0%;
		transform: rotate(var(--mlr-cluck-pop-rot, 0deg));
	}

	64% {
		opacity: var(--mlr-cluck-op, 1);
		transform-origin: 50% 0%;
		transform: rotate(calc(var(--mlr-cluck-pop-rot, 0deg) + (var(--mlr-cluck-end-rot, 0deg) - var(--mlr-cluck-pop-rot, 0deg)) * 0.5));
	}

	64.1%,
	74.7% {
		opacity: 0;
		transform-origin: 50% 0%;
		transform: rotate(calc(var(--mlr-cluck-pop-rot, 0deg) + (var(--mlr-cluck-end-rot, 0deg) - var(--mlr-cluck-pop-rot, 0deg)) * 0.5));
	}

	74.8%,
	100% {
		opacity: var(--mlr-cluck-op, 1);
		transform-origin: 50% 0%;
		transform: rotate(var(--mlr-cluck-pop-rot, 0deg));
	}
}

@keyframes mlr-fx-cluck-long-img-2-loop {
	0%,
	13.1% {
		opacity: 0;
		transform: rotate(var(--mlr-cluck-end-rot, 0deg));
	}

	13.2%,
	23.8% {
		opacity: var(--mlr-cluck-op, 1);
		transform: rotate(var(--mlr-cluck-end-rot, 0deg));
	}

	23.9%,
	64% {
		opacity: 0;
		transform: rotate(var(--mlr-cluck-end-rot, 0deg));
	}

	64.1%,
	74.7% {
		opacity: var(--mlr-cluck-op, 1);
		transform: rotate(var(--mlr-cluck-end-rot, 0deg));
	}

	74.8%,
	100% {
		opacity: 0;
		transform: rotate(var(--mlr-cluck-end-rot, 0deg));
	}
}

@keyframes mlr-fx-cluck-long-word-a {
	0%,
	13.1% {
		opacity: 0;
	}

	14.6%,
	17.2% {
		opacity: var(--mlr-cluck-text-op, 1);
	}

	23.8%,
	64.1% {
		opacity: 0;
	}

	65.5%,
	68.1% {
		opacity: var(--mlr-cluck-text-op, 1);
	}

	74.7%,
	100% {
		opacity: 0;
	}
}

@keyframes mlr-fx-cluck-long-word-b {
	0%,
	17% {
		opacity: 0;
	}

	18%,
	19.6% {
		opacity: var(--mlr-cluck-text-op, 1);
	}

	23.8%,
	100% {
		opacity: 0;
	}
}

/* D98 Accent + Shout, D99 Sparkle — look residual.
   The Accent owns a dedicated inner layer (`.mlr-fx-accent-layer` emitted by
   AnimationControl), never a host pseudo-element: Fill keeps `::before`, Shine
   keeps `::after`, and the marks are free to sit outside the box. The marks also
   own their motion — package timing on D87 play, never Effect Direction and
   never the Effect's transform. Duration classes do not reach the marks. */
.mlp-rebuild .mlr-fx-accent {
	position: relative;
}

.mlp-rebuild .mlr-fx-accent-layer {
	position: absolute;
	top: 0;
	left: 50%;
	width: 0;
	height: 0;
	transform: rotate(var(--mlr-accent-fan, 0deg));
	pointer-events: none;
	z-index: 2;
	--mlr-accent-ink: #332e21;
	--mlr-accent-fan: 0deg;
}

.mlp-rebuild .mlr-fx-accent-mark {
	position: absolute;
	display: block;
	opacity: 0;
	background: var(--mlr-accent-ink, #332e21);
}

/* Shout — three canted wedges, a hairline at the container end and the
   current width at the outer end, each line slightly its own length. */
.mlp-rebuild .mlr-fx-accent-shout .mlr-fx-accent-mark {
	left: 0;
	bottom: 0;
	width: var(--mlr-accent-w, 0.34rem);
	height: var(--mlr-accent-h, 0.62rem);
	margin-left: calc(var(--mlr-accent-w, 0.34rem) / -2);
	clip-path: polygon(46% 100%, 54% 100%, 100% 14%, 4% 0);
	transform-origin: 50% 100%;
	transform: translateX(var(--mlr-accent-x, 0)) translateY(-0.35rem) rotate(var(--mlr-accent-rot, 0deg)) scaleY(0);
	background: linear-gradient(to top, var(--mlr-accent-ink, #332e21), #000);
}

/* Polish #2 (4b): the outer two angles halved (−86 / +86 → −43 / +43deg, centre
   unmoved). Partner 2026-08-28: thickness −40% from polish #2; length −40%. */
.mlp-rebuild .mlr-fx-accent-shout .mlr-fx-accent-mark:nth-child(1) {
	--mlr-accent-rot: -30deg;
	--mlr-accent-w: 0.135rem;
	--mlr-accent-h: 0.778rem;
	--mlr-accent-x: -0.21rem;
}

.mlp-rebuild .mlr-fx-accent-shout .mlr-fx-accent-mark:nth-child(2) {
	--mlr-accent-rot: 0deg;
	--mlr-accent-w: 0.153rem;
	--mlr-accent-h: 0.922rem;
	--mlr-accent-x: 0rem;
}

.mlp-rebuild .mlr-fx-accent-shout .mlr-fx-accent-mark:nth-child(3) {
	--mlr-accent-rot: 35.625deg;
	--mlr-accent-w: 0.144rem;
	--mlr-accent-h: 0.835rem;
	--mlr-accent-x: 0.21rem;
}

/* Extend 0 → 100, hold, vanish, short pause, repeat. Partner 2026-08-28
   scaled the 1.33s cycle to 1.0s; keyframe percentages stand so the hold
   and the look-pass 2 travel ratios keep their share of the clock. */
@keyframes mlr-fx-accent-shout-flick {
	0% {
		opacity: 0;
		transform: translateX(var(--mlr-accent-x, 0)) translateY(-0.35rem) rotate(var(--mlr-accent-rot, 0deg)) scaleY(0);
	}

	4.3% {
		opacity: 0.92;
	}

	25.5% {
		opacity: 0.92;
		transform: translateX(var(--mlr-accent-x, 0)) translateY(-0.35rem) rotate(var(--mlr-accent-rot, 0deg)) scaleY(0.33);
	}

	33.9% {
		opacity: 0.92;
		transform: translateX(var(--mlr-accent-x, 0)) translateY(-0.35rem) rotate(var(--mlr-accent-rot, 0deg)) scaleY(0.67);
	}

	36.1% {
		opacity: 0.92;
		transform: translateX(var(--mlr-accent-x, 0)) translateY(-0.35rem) rotate(var(--mlr-accent-rot, 0deg)) scaleY(1);
	}

	73.7% {
		opacity: 0.92;
		transform: translateX(var(--mlr-accent-x, 0)) translateY(-0.35rem) rotate(var(--mlr-accent-rot, 0deg)) scaleY(1);
	}

	78.0% {
		opacity: 0;
		transform: translateX(var(--mlr-accent-x, 0)) translateY(-0.35rem) rotate(var(--mlr-accent-rot, 0deg)) scaleY(1);
	}

	78.5%,
	100% {
		opacity: 0;
		transform: translateX(var(--mlr-accent-x, 0)) translateY(-0.35rem) rotate(var(--mlr-accent-rot, 0deg)) scaleY(0);
	}
}

.mlp-rebuild .mlr-fx-accent-shout.mlr-reveal-via-hover:hover .mlr-fx-accent-mark,
.mlp-rebuild .mlr-fx-accent-shout.mlr-fx-on .mlr-fx-accent-mark {
	animation: mlr-fx-accent-shout-flick 1s linear infinite both;
}

/* Sparkle — four package sparkles in a tight offset cluster; smaller marks are
   more transparent, and the twinkles overlap as they come and go. */
.mlp-rebuild .mlr-fx-accent-sparkle .mlr-fx-accent-mark {
	top: var(--mlr-accent-y, 0);
	left: var(--mlr-accent-x, 0);
	width: var(--mlr-accent-w, 0.5rem);
	height: var(--mlr-accent-w, 0.5rem);
	clip-path: polygon(
		50% 0,
		60% 40%,
		100% 50%,
		60% 60%,
		50% 100%,
		40% 60%,
		0 50%,
		40% 40%
	);
	transform: translate(-50%, -50%) scale(0);
}

/* Look-pass 2 (4a): the four original widths scaled 1.25x, offsets and unique
   opacities kept, plus a fifth sparkle last in the stagger sitting at the
   midpoint of the sit axis so the cluster comes and goes more seamlessly. */
.mlp-rebuild .mlr-fx-accent-sparkle .mlr-fx-accent-mark:nth-child(1) {
	--mlr-accent-w: 0.775rem;
	--mlr-accent-op: 0.85;
	--mlr-accent-x: -0.16rem;
	--mlr-accent-y: -0.5rem;
	animation-delay: 0s;
}

.mlp-rebuild .mlr-fx-accent-sparkle .mlr-fx-accent-mark:nth-child(2) {
	--mlr-accent-w: 0.575rem;
	--mlr-accent-op: 0.68;
	--mlr-accent-x: 0.22rem;
	--mlr-accent-y: -0.68rem;
	animation-delay: 0.22s;
}

.mlp-rebuild .mlr-fx-accent-sparkle .mlr-fx-accent-mark:nth-child(3) {
	--mlr-accent-w: 0.45rem;
	--mlr-accent-op: 0.52;
	--mlr-accent-x: -0.34rem;
	--mlr-accent-y: -0.86rem;
	animation-delay: 0.44s;
}

.mlp-rebuild .mlr-fx-accent-sparkle .mlr-fx-accent-mark:nth-child(4) {
	--mlr-accent-w: 0.35rem;
	--mlr-accent-op: 0.38;
	--mlr-accent-x: 0.1rem;
	--mlr-accent-y: -1.02rem;
	animation-delay: 0.66s;
}

.mlp-rebuild .mlr-fx-accent-sparkle .mlr-fx-accent-mark:nth-child(5) {
	--mlr-accent-w: 0.5rem;
	--mlr-accent-op: 0.6;
	--mlr-accent-x: -0.04rem;
	--mlr-accent-y: -0.76rem;
	animation-delay: 0.88s;
}

/* Polish #2 (4a): the loop is 50% longer, but all of the added 0.72s lands after
   the peak. The appear keeps its old 0.432s wall-clock, so the peak moves from
   30% of 1.44s to 20% of 2.16s; the fade / settle absorbs the extra time and now
   runs 1.21s against the appear's 0.43s, and the rest tail keeps its 0.518s. */
@keyframes mlr-fx-accent-sparkle-twinkle {
	0%,
	100% {
		opacity: 0;
		transform: translate(-50%, -50%) rotate(0deg) scale(0);
	}

	20% {
		opacity: var(--mlr-accent-op, 0.7);
		transform: translate(-50%, -50%) rotate(38deg) scale(1);
	}

	76% {
		opacity: 0;
		transform: translate(-50%, -50%) rotate(76deg) scale(0.2);
	}
}

.mlp-rebuild .mlr-fx-accent-sparkle.mlr-reveal-via-hover:hover .mlr-fx-accent-mark,
.mlp-rebuild .mlr-fx-accent-sparkle.mlr-fx-on .mlr-fx-accent-mark {
	animation-name: mlr-fx-accent-sparkle-twinkle;
	animation-duration: 2.16s;
	animation-timing-function: ease-in-out;
	animation-iteration-count: infinite;
}

/* Sit — the layer parks on the side or corner and fans the marks outward. */
.mlp-rebuild .mlr-fx-accent-right .mlr-fx-accent-layer {
	top: 50%;
	left: 100%;
	--mlr-accent-fan: 90deg;
}

.mlp-rebuild .mlr-fx-accent-bottom .mlr-fx-accent-layer {
	top: 100%;
	left: 50%;
	--mlr-accent-fan: 180deg;
}

.mlp-rebuild .mlr-fx-accent-left .mlr-fx-accent-layer {
	top: 50%;
	left: 0;
	--mlr-accent-fan: -90deg;
}

.mlp-rebuild .mlr-fx-accent-top-left .mlr-fx-accent-layer {
	top: 0;
	left: 0;
	--mlr-accent-fan: -45deg;
}

.mlp-rebuild .mlr-fx-accent-top-right .mlr-fx-accent-layer {
	top: 0;
	left: 100%;
	--mlr-accent-fan: 45deg;
}

.mlp-rebuild .mlr-fx-accent-bottom-left .mlr-fx-accent-layer {
	top: 100%;
	left: 0;
	--mlr-accent-fan: -135deg;
}

.mlp-rebuild .mlr-fx-accent-bottom-right .mlr-fx-accent-layer {
	top: 100%;
	left: 100%;
	--mlr-accent-fan: 135deg;
}

/*
 * D104 — Media frame. The package <video> and PDF iframe are ours to size. The oEmbed
 * child is provider HTML: hold its box and leave its chrome exactly as YouTube sent it.
 * D107 — modal dialog, link faces, YouTube Poster facade, play mark, one-click autoplay.
 * D120 — TikTok + Instagram always-facade; deferred embed.js inject.
 * Partner lock 2026-09-04 — host max-widths; cover holds 9/16 (TikTok/Reels) or
 * the Instagram /p/ thumbnail box; post-click embed is unclipped.
 * Reduced motion is answered in markup (the <source> media gate), not here —
 * CSS cannot stop a video from autoplaying.
 */
.mlp-rebuild .mlr-media {
	display: flow-root;
	min-width: 0;
	max-width: 100%;
	margin: 0;
}

.mlp-rebuild .mlr-media__video {
	display: block;
	width: 100%;
	height: auto;
	max-width: 100%;
}

.mlp-rebuild .mlr-media__pdf {
	display: block;
	width: 100%;
	min-height: 24rem;
	height: 70vh;
	max-height: 48rem;
	border: 0;
}

.mlp-rebuild .mlr-media__embed {
	display: block;
	position: relative;
	width: 100%;
	max-width: 100%;
	aspect-ratio: 16 / 9;
}

.mlp-rebuild .mlr-media__embed iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.mlp-rebuild .mlr-media__facade,
.mlp-rebuild .mlr-media__facade-trigger,
.mlp-rebuild .mlr-media__trigger,
.mlp-rebuild .mlr-media__link {
	display: block;
	width: 100%;
	max-width: 100%;
	padding: 0;
	border: 0;
	background: none;
	color: inherit;
	text-decoration: none;
	cursor: pointer;
}

.mlp-rebuild .mlr-media__facade-trigger[hidden],
.mlp-rebuild .mlr-media__facade-embed[hidden] {
	display: none;
}

.mlp-rebuild .mlr-media__face {
	position: relative;
	display: block;
	width: 100%;
	overflow: hidden;
	background: #000;
}

.mlp-rebuild .mlr-media__face--embed,
.mlp-rebuild .mlr-media__face--video {
	aspect-ratio: 16 / 9;
}

.mlp-rebuild .mlr-media__face--social-portrait {
	aspect-ratio: 9 / 16;
}

.mlp-rebuild .mlr-media__face--social-square {
	aspect-ratio: 1 / 1;
}

.mlp-rebuild .mlr-media__facade--tiktok {
	max-width: 325px;
}

.mlp-rebuild .mlr-media__facade--instagram {
	max-width: 540px;
}

.mlp-rebuild .mlr-media__facade--social .mlr-media__facade-embed {
	display: block;
	position: relative;
	width: 100%;
	max-width: 100%;
}

.mlp-rebuild .mlr-media__facade--social .mlr-media__facade-embed iframe,
.mlp-rebuild .mlr-media__facade--social .mlr-media__facade-embed blockquote {
	display: block;
	width: 100%;
	max-width: 100%;
}

.mlp-rebuild .mlr-media__facade--instagram .mlr-media__face--social-square:has(.mlr-media__poster) {
	aspect-ratio: auto;
}

.mlp-rebuild .mlr-media__facade--instagram .mlr-media__face--social-square:has(.mlr-media__poster)::before {
	content: none;
}

.mlp-rebuild .mlr-media__facade--instagram .mlr-media__face--social-square:has(.mlr-media__poster) .mlr-media__poster {
	position: static;
	inset: auto;
	width: 100%;
	height: auto;
}

/*
 * Poster and play are absolutely positioned. That leaves no in-flow height, so
 * aspect-ratio collapses to 0. An in-flow 16/9 spacer keeps the box. The Inline
 * facade <button> also needs the same display:block; width:100% as the Link
 * <a>, or percentage padding-top has no definite width and the spacer is 0.
 */
.mlp-rebuild .mlr-media__face--embed::before,
.mlp-rebuild .mlr-media__face--video::before {
	content: "";
	display: block;
	padding-top: 56.25%;
}

.mlp-rebuild .mlr-media__face--social-portrait::before {
	content: "";
	display: block;
	padding-top: 177.7778%;
}

.mlp-rebuild .mlr-media__face--social-square::before {
	content: "";
	display: block;
	padding-top: 100%;
}

.mlp-rebuild .mlr-media__face--pdf {
	min-height: 24rem;
	height: 70vh;
	max-height: 48rem;
}

.mlp-rebuild .mlr-media__poster {
	display: block;
	width: 100%;
	height: auto;
}

.mlp-rebuild .mlr-media__face .mlr-media__poster {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
}

.mlp-rebuild .mlr-media__face .mlr-media__poster--cover {
	object-fit: cover;
}

.mlp-rebuild .mlr-media__face .mlr-media__poster--contain {
	object-fit: contain;
}

.mlp-rebuild .mlr-media__play {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 4.5rem;
	height: 4.5rem;
	margin: 0;
	border: 0;
	border-radius: 999px;
	background: #e02020;
	transform: translate(-50%, -50%);
	pointer-events: none;
}

.mlp-rebuild .mlr-media__play::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	border-style: solid;
	border-width: 0.65rem 0 0.65rem 1.1rem;
	border-color: transparent transparent transparent #fff;
	transform: translate(-30%, -50%);
}

.mlp-rebuild .mlr-media__tile {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 8rem;
	padding: 1rem;
	border: 1px solid currentColor;
	text-align: center;
}

.mlp-rebuild .mlr-media-dialog {
	width: calc(100dvw - 2rem);
	max-width: calc(100dvw - 2rem);
	max-height: calc(100dvh - 2rem);
	padding: 0;
	border: 0;
	background: transparent;
}

.mlp-rebuild .mlr-media-dialog::backdrop {
	background: rgb(0 0 0 / 0.55);
}

.mlp-rebuild .mlr-media-dialog__close {
	position: absolute;
	top: 0.5rem;
	right: 0.5rem;
	z-index: 1;
	width: 2rem;
	height: 2rem;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: rgb(255 255 255 / 0.92);
	cursor: pointer;
}

.mlp-rebuild .mlr-media-dialog__body {
	padding: 0;
	background: #fff;
	max-height: calc(100dvh - 2rem);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

.mlp-rebuild .mlr-media-dialog__body .mlr-media__video,
.mlp-rebuild .mlr-media-dialog__body .mlr-media__pdf,
.mlp-rebuild .mlr-media-dialog__body .mlr-media__embed {
	max-width: 100%;
}

.mlp-rebuild .mlr-media-dialog__body .mlr-media__video,
.mlp-rebuild .mlr-media-dialog__body .mlr-media__pdf {
	max-height: calc(100dvh - 4rem);
	width: 100%;
	height: auto;
	object-fit: contain;
}

.mlp-rebuild .mlr-media-dialog__body .mlr-media__pdf {
	height: calc(100dvh - 4rem);
	border: 0;
}

.mlp-rebuild .mlr-media__download {
	display: inline-block;
	margin-top: 0.5rem;
}

.mlp-rebuild .mlr-media__caption {
	margin-top: 0.5rem;
}

@media (prefers-reduced-motion: reduce) {
	.mlp-rebuild > .mlr-dock-shell .mlr-dock-toggle-svg,
	.mlp-rebuild > .mlr-dock-shell .mlr-dock-glyph-cart,
	.mlp-rebuild > .mlr-dock-shell .mlr-dock-glyph-bars-open,
	.mlp-rebuild > .mlr-dock-shell .mlr-dock-glyph-plus-open,
	.mlp-rebuild > .mlr-dock-shell .mlr-dock-glyph-bars-close,
	.mlp-rebuild > .mlr-dock-shell .mlr-dock-glyph-plus-close {
		transition: none;
	}

	.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-toggle-still):not(.mlr-dock-is-collapsed) .mlr-dock-toggle-svg,
	.mlp-rebuild > .mlr-dock-shell:not(.mlr-dock-toggle-still) .mlr-dock-toggle[aria-expanded="true"] .mlr-dock-toggle-svg {
		transform: rotate(180deg);
	}

	.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-still .mlr-dock-toggle-svg,
	.mlp-rebuild > .mlr-dock-shell.mlr-dock-toggle-still .mlr-dock-toggle[aria-expanded="true"] .mlr-dock-toggle-svg {
		transform: rotate(0deg);
	}

	.mlp-rebuild > .mlr-dock-shell.mlr-dock-icon-cart:not(.mlr-dock-toggle-still):not(.mlr-dock-is-collapsed) .mlr-dock-glyph-cart,
	.mlp-rebuild > .mlr-dock-shell.mlr-dock-icon-cart:not(.mlr-dock-toggle-still) .mlr-dock-toggle[aria-expanded="true"] .mlr-dock-glyph-cart {
		transform: rotate(-180deg);
	}

	.mlp-rebuild .mlr-reveal,
	.mlp-rebuild .mlr-reveal.mlr-reveal-pre,
	.mlp-rebuild .mlr-reveal-fade,
	.mlp-rebuild .mlr-reveal-fade.mlr-reveal-pre,
	.mlp-rebuild .mlr-reveal-rise,
	.mlp-rebuild .mlr-reveal-rise.mlr-reveal-pre,
	.mlp-rebuild .mlr-reveal-scale,
	.mlp-rebuild .mlr-reveal-scale.mlr-reveal-pre,
	.mlp-rebuild .mlr-reveal.mlr-reveal-via-in-view,
	.mlp-rebuild .mlr-reveal.mlr-reveal-via-hover,
	.mlp-rebuild .mlr-reveal.mlr-reveal-via-click,
	.mlp-rebuild .mlr-reveal.mlr-reveal-dur-short,
	.mlp-rebuild .mlr-reveal.mlr-reveal-dur-long,
	.mlp-rebuild .mlr-reveal.mlr-reveal-dir-down,
	.mlp-rebuild .mlr-reveal.mlr-reveal-dir-left,
	.mlp-rebuild .mlr-reveal.mlr-reveal-dir-right,
	.mlp-rebuild .mlr-reveal.mlr-reveal-dir-down.mlr-reveal-pre,
	.mlp-rebuild .mlr-reveal.mlr-reveal-dir-left.mlr-reveal-pre,
	.mlp-rebuild .mlr-reveal.mlr-reveal-dir-right.mlr-reveal-pre {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.mlp-rebuild .mlr-fx-shop-circle::before,
	.mlp-rebuild .mlr-fx-shop-circle.mlr-reveal-via-hover:hover::before,
	.mlp-rebuild .mlr-fx-shop-circle.mlr-fx-on::before {
		display: none;
		transform: scale(0);
		opacity: 0;
		transition: none;
	}

	.mlp-rebuild .mlr-fx-pop,
	.mlp-rebuild .mlr-fx-pop.mlr-reveal-via-hover:hover,
	.mlp-rebuild .mlr-fx-pop.mlr-fx-on {
		padding: 0 var(--mlr-pop-rest, 0.5rem) var(--mlr-pop-rest, 0.5rem) 0;
		transform: none;
		transition: none;
	}

	.mlp-rebuild .mlr-fx-pop-left,
	.mlp-rebuild .mlr-fx-pop-left.mlr-reveal-via-hover:hover,
	.mlp-rebuild .mlr-fx-pop-left.mlr-fx-on {
		padding: 0 0 var(--mlr-pop-rest, 0.5rem) var(--mlr-pop-rest, 0.5rem);
	}

	.mlp-rebuild .mlr-fx-pop::before,
	.mlp-rebuild .mlr-fx-pop.mlr-reveal-via-hover:hover::before,
	.mlp-rebuild .mlr-fx-pop.mlr-fx-on::before,
	.mlp-rebuild .mlr-fx-pop-left.mlr-reveal-via-hover:hover::before,
	.mlp-rebuild .mlr-fx-pop-left.mlr-fx-on::before {
		transform: none;
		transition: none;
	}

	.mlp-rebuild .mlr-fx-pop::after,
	.mlp-rebuild .mlr-fx-pop.mlr-reveal-via-hover:hover::after,
	.mlp-rebuild .mlr-fx-pop.mlr-fx-on::after {
		clip-path: polygon(
			calc(100% - var(--mlr-pop-rest, 0.5rem)) 0,
			100% var(--mlr-pop-rest, 0.5rem),
			100% 100%,
			var(--mlr-pop-rest, 0.5rem) 100%,
			0 calc(100% - var(--mlr-pop-rest, 0.5rem)),
			calc(100% - var(--mlr-pop-rest, 0.5rem)) calc(100% - var(--mlr-pop-rest, 0.5rem))
		);
		transition: none;
	}

	.mlp-rebuild .mlr-fx-pop-left::after,
	.mlp-rebuild .mlr-fx-pop-left.mlr-reveal-via-hover:hover::after,
	.mlp-rebuild .mlr-fx-pop-left.mlr-fx-on::after {
		clip-path: polygon(
			0 var(--mlr-pop-rest, 0.5rem),
			var(--mlr-pop-rest, 0.5rem) 0,
			var(--mlr-pop-rest, 0.5rem) calc(100% - var(--mlr-pop-rest, 0.5rem)),
			100% calc(100% - var(--mlr-pop-rest, 0.5rem)),
			calc(100% - var(--mlr-pop-rest, 0.5rem)) 100%,
			0 100%
		);
	}

	.mlp-rebuild .mlr-fx-fill::before,
	.mlp-rebuild .mlr-fx-fill.mlr-reveal-via-hover:hover::before,
	.mlp-rebuild .mlr-fx-fill.mlr-fx-on::before {
		display: none;
		transform: scale(0);
		opacity: 0;
		transition: none;
	}

	.mlp-rebuild .mlr-fx-shine::after,
	.mlp-rebuild .mlr-fx-shine.mlr-reveal-via-hover:hover::after,
	.mlp-rebuild .mlr-fx-shine.mlr-fx-on::after {
		display: none;
		transform: none;
		opacity: 0;
		transition: none;
	}

	.mlp-rebuild .mlr-fx-zoom img,
	.mlp-rebuild .mlr-fx-zoom .mlr-image-icon,
	.mlp-rebuild .mlr-fx-zoom > *:not(.mlr-image),
	.mlp-rebuild .mlr-fx-zoom.mlr-reveal-via-hover:hover img,
	.mlp-rebuild .mlr-fx-zoom.mlr-reveal-via-hover:hover .mlr-image-icon,
	.mlp-rebuild .mlr-fx-zoom.mlr-reveal-via-hover:hover > *:not(.mlr-image),
	.mlp-rebuild .mlr-fx-zoom.mlr-fx-on img,
	.mlp-rebuild .mlr-fx-zoom.mlr-fx-on .mlr-image-icon,
	.mlp-rebuild .mlr-fx-zoom.mlr-fx-on > *:not(.mlr-image) {
		transform: scale(1);
		transition: none;
	}

	.mlp-rebuild .mlr-fx-tilt,
	.mlp-rebuild .mlr-fx-tilt.mlr-reveal-via-hover:hover,
	.mlp-rebuild .mlr-fx-tilt.mlr-fx-on,
	.mlp-rebuild .mlr-fx-tilt.mlr-reveal-dir-left.mlr-reveal-via-hover:hover,
	.mlp-rebuild .mlr-fx-tilt.mlr-reveal-dir-left.mlr-fx-on {
		transform: none;
		transition: none;
	}

	.mlp-rebuild .mlr-fx-accent-layer,
	.mlp-rebuild .mlr-fx-accent-mark,
	.mlp-rebuild .mlr-fx-accent.mlr-reveal-via-hover:hover .mlr-fx-accent-mark,
	.mlp-rebuild .mlr-fx-accent.mlr-fx-on .mlr-fx-accent-mark {
		display: none;
		transform: none;
		transition: none;
		animation: none;
	}

	.mlp-rebuild .mlr-fx-cluck-layer,
	.mlp-rebuild .mlr-fx-cluck-img,
	.mlp-rebuild .mlr-fx-cluck-word {
		display: none;
		transform: none;
		transition: none;
		animation: none;
	}

	.mlp-rebuild .mlr-cover-flow__track,
	.mlp-rebuild .mlr-cover-flow__slide {
		transition: none;
	}
}

/*
 * D133 Row cover-flow — finite column track; peek clips on the row (not D70 root lift).
 * D133 height residual: JS pins min-height to tallest slide at active presentation.
 * D136: arrow box + glyph + sit; Outside omit = hang outside viewport inside row gutter.
 * D137: arrow place desktop + mobile; top/bottom pair; breakpoints independent at 768px.
 * Residual: cover-flow fills the row; slide 50/20% are of the viewport (cqi + JS px), not the track.
 */
.mlp-rebuild .mlr-row-cover-flow {
	overflow-x: clip;
	position: relative;
	display: block;
	width: 100%;
	min-width: 0;
}

.mlp-rebuild .mlr-row-cover-flow.mlr-row.flex,
.mlp-rebuild .mlr-row-cover-flow.mlr-row.grid {
	display: block;
}

.mlp-rebuild .mlr-cover-flow {
	--mlr-cover-flow-active: 50%;
	--mlr-cover-flow-neighbor: 20%;
	--mlr-cover-flow-neighbor-scale: 0.8;
	--mlr-cover-flow-arrow-size: 2.5rem;
	--mlr-cover-flow-outside-inset: 0.5rem;
	--mlr-cover-flow-outside-gutter: calc(var(--mlr-cover-flow-arrow-size) + var(--mlr-cover-flow-outside-inset));
	--mlr-cover-flow-arrow-pair-gap: 0.25rem;
	position: relative;
	width: 100%;
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
}

.mlp-rebuild .mlr-cover-flow--sit-outside {
	display: grid;
	grid-template-columns: var(--mlr-cover-flow-outside-gutter) minmax(0, 1fr) var(--mlr-cover-flow-outside-gutter);
	align-items: center;
}

.mlp-rebuild .mlr-cover-flow--sit-outside .mlr-cover-flow__viewport {
	grid-column: 2;
	grid-row: 1;
}

.mlp-rebuild .mlr-cover-flow--sit-outside .mlr-cover-flow__prev {
	grid-column: 1;
	grid-row: 1;
	position: static;
	transform: none;
	justify-self: center;
}

.mlp-rebuild .mlr-cover-flow--sit-outside .mlr-cover-flow__next {
	grid-column: 3;
	grid-row: 1;
	position: static;
	transform: none;
	justify-self: center;
}

.mlp-rebuild .mlr-cover-flow__viewport {
	overflow: hidden;
	touch-action: pan-y pinch-zoom;
	width: 100%;
	min-width: 0;
	container-type: inline-size;
	display: flex;
	align-items: center;
}

.mlp-rebuild .mlr-cover-flow__track {
	display: flex;
	align-items: center;
	width: max-content;
	min-height: 100%;
	transition: transform 0.45s ease;
	will-change: transform;
}

.mlp-rebuild .mlr-cover-flow__track > .mlr-cover-flow__slide {
	flex: 0 0 20cqw;
	width: 20cqw;
	max-width: 20cqw;
	min-width: 0;
	transform: scale(var(--mlr-cover-flow-neighbor-scale));
	transform-origin: center center;
	transition: flex-basis 0.45s ease, width 0.45s ease, max-width 0.45s ease, transform 0.45s ease;
	overflow: hidden;
	box-sizing: border-box;
	grid-column: auto;
	grid-row: auto;
	align-self: center;
}

.mlp-rebuild .mlr-cover-flow__track > .mlr-cover-flow__slide.mlr-cover-flow__slide--active {
	flex: 0 0 50cqw;
	width: 50cqw;
	max-width: 50cqw;
	transform: scale(1);
	z-index: 1;
}

.mlp-rebuild .mlr-cover-flow--reduce .mlr-cover-flow__track,
.mlp-rebuild .mlr-cover-flow--reduce .mlr-cover-flow__slide,
.mlp-rebuild .mlr-cover-flow--measuring .mlr-cover-flow__track,
.mlp-rebuild .mlr-cover-flow--measuring .mlr-cover-flow__slide {
	transition: none;
}

.mlp-rebuild .mlr-cover-flow__prev,
.mlp-rebuild .mlr-cover-flow__next {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	width: var(--mlr-cover-flow-arrow-size);
	height: var(--mlr-cover-flow-arrow-size);
	min-width: var(--mlr-cover-flow-arrow-size);
	min-height: var(--mlr-cover-flow-arrow-size);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--mlr-cover-flow-arrow-border-color, currentColor);
	background: var(--mlr-cover-flow-arrow-bg, Canvas);
	color: var(--mlr-cover-flow-arrow-color, inherit);
	cursor: pointer;
	padding: 0;
	box-sizing: border-box;
	font-size: 1.25rem;
	line-height: 1;
}

.mlp-rebuild .mlr-cover-flow--sit-inside .mlr-cover-flow__prev {
	left: 0;
}

.mlp-rebuild .mlr-cover-flow--sit-inside .mlr-cover-flow__next {
	right: 0;
}

.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-arrow-shape-circle .mlr-cover-flow__prev,
.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-arrow-shape-circle .mlr-cover-flow__next {
	border-radius: 50%;
}

.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-arrow-border-none .mlr-cover-flow__prev,
.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-arrow-border-none .mlr-cover-flow__next {
	border-width: 0;
}

.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-arrow-border-2 .mlr-cover-flow__prev,
.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-arrow-border-2 .mlr-cover-flow__next {
	border-width: 2px;
}

.mlp-rebuild .mlr-cover-flow-arrow-glyph {
	display: block;
	width: 1em;
	height: 1em;
}

.mlp-rebuild .mlr-cover-flow-arrow-glyph--mirror {
	transform: scaleX(-1);
}

.mlp-rebuild .mlr-cover-flow-arrow-bg-gold { --mlr-cover-flow-arrow-bg: #ffb71a; }
.mlp-rebuild .mlr-cover-flow-arrow-bg-charcoal { --mlr-cover-flow-arrow-bg: #332e21; }
.mlp-rebuild .mlr-cover-flow-arrow-bg-kraft { --mlr-cover-flow-arrow-bg: #b6814f; }
.mlp-rebuild .mlr-cover-flow-arrow-bg-cream { --mlr-cover-flow-arrow-bg: #efe3ce; }
.mlp-rebuild .mlr-cover-flow-arrow-bg-teal { --mlr-cover-flow-arrow-bg: #8ec4ac; }
.mlp-rebuild .mlr-cover-flow-arrow-bg-orange { --mlr-cover-flow-arrow-bg: #ec973a; }
.mlp-rebuild .mlr-cover-flow-arrow-bg-green { --mlr-cover-flow-arrow-bg: #2d6a4f; }
.mlp-rebuild .mlr-cover-flow-arrow-bg-purple { --mlr-cover-flow-arrow-bg: #7b2cbf; }
.mlp-rebuild .mlr-cover-flow-arrow-bg-light-blue { --mlr-cover-flow-arrow-bg: #90e0ef; }
.mlp-rebuild .mlr-cover-flow-arrow-bg-white { --mlr-cover-flow-arrow-bg: #ffffff; }

.mlp-rebuild .mlr-cover-flow-arrow-color-gold { --mlr-cover-flow-arrow-color: #ffb71a; }
.mlp-rebuild .mlr-cover-flow-arrow-color-charcoal { --mlr-cover-flow-arrow-color: #332e21; }
.mlp-rebuild .mlr-cover-flow-arrow-color-kraft { --mlr-cover-flow-arrow-color: #b6814f; }
.mlp-rebuild .mlr-cover-flow-arrow-color-cream { --mlr-cover-flow-arrow-color: #efe3ce; }
.mlp-rebuild .mlr-cover-flow-arrow-color-teal { --mlr-cover-flow-arrow-color: #8ec4ac; }
.mlp-rebuild .mlr-cover-flow-arrow-color-orange { --mlr-cover-flow-arrow-color: #ec973a; }
.mlp-rebuild .mlr-cover-flow-arrow-color-green { --mlr-cover-flow-arrow-color: #2d6a4f; }
.mlp-rebuild .mlr-cover-flow-arrow-color-purple { --mlr-cover-flow-arrow-color: #7b2cbf; }
.mlp-rebuild .mlr-cover-flow-arrow-color-light-blue { --mlr-cover-flow-arrow-color: #90e0ef; }
.mlp-rebuild .mlr-cover-flow-arrow-color-white { --mlr-cover-flow-arrow-color: #ffffff; }

.mlp-rebuild .mlr-cover-flow-arrow-border-gold { --mlr-cover-flow-arrow-border-color: #ffb71a; }
.mlp-rebuild .mlr-cover-flow-arrow-border-charcoal { --mlr-cover-flow-arrow-border-color: #332e21; }
.mlp-rebuild .mlr-cover-flow-arrow-border-kraft { --mlr-cover-flow-arrow-border-color: #b6814f; }
.mlp-rebuild .mlr-cover-flow-arrow-border-cream { --mlr-cover-flow-arrow-border-color: #efe3ce; }
.mlp-rebuild .mlr-cover-flow-arrow-border-teal { --mlr-cover-flow-arrow-border-color: #8ec4ac; }
.mlp-rebuild .mlr-cover-flow-arrow-border-orange { --mlr-cover-flow-arrow-border-color: #ec973a; }
.mlp-rebuild .mlr-cover-flow-arrow-border-green { --mlr-cover-flow-arrow-border-color: #2d6a4f; }
.mlp-rebuild .mlr-cover-flow-arrow-border-purple { --mlr-cover-flow-arrow-border-color: #7b2cbf; }
.mlp-rebuild .mlr-cover-flow-arrow-border-light-blue { --mlr-cover-flow-arrow-border-color: #90e0ef; }
.mlp-rebuild .mlr-cover-flow-arrow-border-white { --mlr-cover-flow-arrow-border-color: #ffffff; }

/*
 * D137 Cover-flow arrow place — desktop 768+ / mobile <768 independent.
 * Sides omit keeps D136 grid/overlay below. Top/bottom = one Prev+Next pair on that edge.
 */
@media (min-width: 768px) {
	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-desktop-top-"].mlr-cover-flow--sit-inside,
	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-desktop-bottom-"].mlr-cover-flow--sit-inside {
		display: grid;
		grid-template-columns: 1fr;
		grid-template-rows: 1fr;
	}

	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-desktop-top-"].mlr-cover-flow--sit-inside .mlr-cover-flow__viewport,
	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-desktop-bottom-"].mlr-cover-flow--sit-inside .mlr-cover-flow__viewport {
		grid-row: 1;
		grid-column: 1;
	}

	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-desktop-top-"].mlr-cover-flow--sit-inside .mlr-cover-flow__prev,
	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-desktop-top-"].mlr-cover-flow--sit-inside .mlr-cover-flow__next,
	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-desktop-bottom-"].mlr-cover-flow--sit-inside .mlr-cover-flow__prev,
	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-desktop-bottom-"].mlr-cover-flow--sit-inside .mlr-cover-flow__next {
		grid-row: 1;
		grid-column: 1;
		position: static;
		top: auto;
		left: auto;
		right: auto;
		transform: none;
		z-index: 3;
	}

	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-desktop-top-"].mlr-cover-flow--sit-inside .mlr-cover-flow__prev,
	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-desktop-top-"].mlr-cover-flow--sit-inside .mlr-cover-flow__next {
		align-self: start;
	}

	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-desktop-bottom-"].mlr-cover-flow--sit-inside .mlr-cover-flow__prev,
	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-desktop-bottom-"].mlr-cover-flow--sit-inside .mlr-cover-flow__next {
		align-self: end;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-desktop-top-left.mlr-cover-flow--sit-inside .mlr-cover-flow__prev {
		justify-self: start;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-desktop-top-left.mlr-cover-flow--sit-inside .mlr-cover-flow__next {
		justify-self: start;
		margin-inline-start: calc(var(--mlr-cover-flow-arrow-size) + var(--mlr-cover-flow-arrow-pair-gap));
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-desktop-top-center.mlr-cover-flow--sit-inside .mlr-cover-flow__prev {
		justify-self: center;
		translate: calc(-50% - var(--mlr-cover-flow-arrow-pair-gap) / 2) 0;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-desktop-top-center.mlr-cover-flow--sit-inside .mlr-cover-flow__next {
		justify-self: center;
		translate: calc(50% + var(--mlr-cover-flow-arrow-pair-gap) / 2) 0;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-desktop-top-right.mlr-cover-flow--sit-inside .mlr-cover-flow__next {
		justify-self: end;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-desktop-top-right.mlr-cover-flow--sit-inside .mlr-cover-flow__prev {
		justify-self: end;
		margin-inline-end: calc(var(--mlr-cover-flow-arrow-size) + var(--mlr-cover-flow-arrow-pair-gap));
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-desktop-bottom-left.mlr-cover-flow--sit-inside .mlr-cover-flow__prev {
		justify-self: start;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-desktop-bottom-left.mlr-cover-flow--sit-inside .mlr-cover-flow__next {
		justify-self: start;
		margin-inline-start: calc(var(--mlr-cover-flow-arrow-size) + var(--mlr-cover-flow-arrow-pair-gap));
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-desktop-bottom-center.mlr-cover-flow--sit-inside .mlr-cover-flow__prev {
		justify-self: center;
		translate: calc(-50% - var(--mlr-cover-flow-arrow-pair-gap) / 2) 0;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-desktop-bottom-center.mlr-cover-flow--sit-inside .mlr-cover-flow__next {
		justify-self: center;
		translate: calc(50% + var(--mlr-cover-flow-arrow-pair-gap) / 2) 0;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-desktop-bottom-right.mlr-cover-flow--sit-inside .mlr-cover-flow__next {
		justify-self: end;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-desktop-bottom-right.mlr-cover-flow--sit-inside .mlr-cover-flow__prev {
		justify-self: end;
		margin-inline-end: calc(var(--mlr-cover-flow-arrow-size) + var(--mlr-cover-flow-arrow-pair-gap));
	}

	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-desktop-top-"].mlr-cover-flow--sit-outside {
		display: grid;
		grid-template-columns: 1fr;
		grid-template-rows: var(--mlr-cover-flow-outside-gutter) minmax(0, 1fr);
		align-items: center;
	}

	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-desktop-top-"].mlr-cover-flow--sit-outside .mlr-cover-flow__viewport {
		grid-row: 2;
		grid-column: 1;
	}

	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-desktop-top-"].mlr-cover-flow--sit-outside .mlr-cover-flow__prev,
	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-desktop-top-"].mlr-cover-flow--sit-outside .mlr-cover-flow__next {
		grid-row: 1;
		grid-column: 1;
		position: static;
		top: auto;
		left: auto;
		right: auto;
		transform: none;
		align-self: center;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-desktop-top-left.mlr-cover-flow--sit-outside .mlr-cover-flow__prev {
		justify-self: start;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-desktop-top-left.mlr-cover-flow--sit-outside .mlr-cover-flow__next {
		justify-self: start;
		margin-inline-start: calc(var(--mlr-cover-flow-arrow-size) + var(--mlr-cover-flow-arrow-pair-gap));
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-desktop-top-center.mlr-cover-flow--sit-outside .mlr-cover-flow__prev {
		justify-self: center;
		translate: calc(-50% - var(--mlr-cover-flow-arrow-pair-gap) / 2) 0;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-desktop-top-center.mlr-cover-flow--sit-outside .mlr-cover-flow__next {
		justify-self: center;
		translate: calc(50% + var(--mlr-cover-flow-arrow-pair-gap) / 2) 0;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-desktop-top-right.mlr-cover-flow--sit-outside .mlr-cover-flow__next {
		justify-self: end;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-desktop-top-right.mlr-cover-flow--sit-outside .mlr-cover-flow__prev {
		justify-self: end;
		margin-inline-end: calc(var(--mlr-cover-flow-arrow-size) + var(--mlr-cover-flow-arrow-pair-gap));
	}

	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-desktop-bottom-"].mlr-cover-flow--sit-outside {
		display: grid;
		grid-template-columns: 1fr;
		grid-template-rows: minmax(0, 1fr) var(--mlr-cover-flow-outside-gutter);
		align-items: center;
	}

	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-desktop-bottom-"].mlr-cover-flow--sit-outside .mlr-cover-flow__viewport {
		grid-row: 1;
		grid-column: 1;
	}

	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-desktop-bottom-"].mlr-cover-flow--sit-outside .mlr-cover-flow__prev,
	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-desktop-bottom-"].mlr-cover-flow--sit-outside .mlr-cover-flow__next {
		grid-row: 2;
		grid-column: 1;
		position: static;
		top: auto;
		left: auto;
		right: auto;
		transform: none;
		align-self: center;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-desktop-bottom-left.mlr-cover-flow--sit-outside .mlr-cover-flow__prev {
		justify-self: start;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-desktop-bottom-left.mlr-cover-flow--sit-outside .mlr-cover-flow__next {
		justify-self: start;
		margin-inline-start: calc(var(--mlr-cover-flow-arrow-size) + var(--mlr-cover-flow-arrow-pair-gap));
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-desktop-bottom-center.mlr-cover-flow--sit-outside .mlr-cover-flow__prev {
		justify-self: center;
		translate: calc(-50% - var(--mlr-cover-flow-arrow-pair-gap) / 2) 0;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-desktop-bottom-center.mlr-cover-flow--sit-outside .mlr-cover-flow__next {
		justify-self: center;
		translate: calc(50% + var(--mlr-cover-flow-arrow-pair-gap) / 2) 0;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-desktop-bottom-right.mlr-cover-flow--sit-outside .mlr-cover-flow__next {
		justify-self: end;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-desktop-bottom-right.mlr-cover-flow--sit-outside .mlr-cover-flow__prev {
		justify-self: end;
		margin-inline-end: calc(var(--mlr-cover-flow-arrow-size) + var(--mlr-cover-flow-arrow-pair-gap));
	}
}

@media (max-width: 767px) {
	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-mobile-top-"].mlr-cover-flow--sit-inside,
	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-mobile-bottom-"].mlr-cover-flow--sit-inside {
		display: grid;
		grid-template-columns: 1fr;
		grid-template-rows: 1fr;
	}

	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-mobile-top-"].mlr-cover-flow--sit-inside .mlr-cover-flow__viewport,
	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-mobile-bottom-"].mlr-cover-flow--sit-inside .mlr-cover-flow__viewport {
		grid-row: 1;
		grid-column: 1;
	}

	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-mobile-top-"].mlr-cover-flow--sit-inside .mlr-cover-flow__prev,
	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-mobile-top-"].mlr-cover-flow--sit-inside .mlr-cover-flow__next,
	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-mobile-bottom-"].mlr-cover-flow--sit-inside .mlr-cover-flow__prev,
	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-mobile-bottom-"].mlr-cover-flow--sit-inside .mlr-cover-flow__next {
		grid-row: 1;
		grid-column: 1;
		position: static;
		top: auto;
		left: auto;
		right: auto;
		transform: none;
		z-index: 3;
	}

	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-mobile-top-"].mlr-cover-flow--sit-inside .mlr-cover-flow__prev,
	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-mobile-top-"].mlr-cover-flow--sit-inside .mlr-cover-flow__next {
		align-self: start;
	}

	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-mobile-bottom-"].mlr-cover-flow--sit-inside .mlr-cover-flow__prev,
	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-mobile-bottom-"].mlr-cover-flow--sit-inside .mlr-cover-flow__next {
		align-self: end;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-mobile-top-left.mlr-cover-flow--sit-inside .mlr-cover-flow__prev {
		justify-self: start;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-mobile-top-left.mlr-cover-flow--sit-inside .mlr-cover-flow__next {
		justify-self: start;
		margin-inline-start: calc(var(--mlr-cover-flow-arrow-size) + var(--mlr-cover-flow-arrow-pair-gap));
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-mobile-top-center.mlr-cover-flow--sit-inside .mlr-cover-flow__prev {
		justify-self: center;
		translate: calc(-50% - var(--mlr-cover-flow-arrow-pair-gap) / 2) 0;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-mobile-top-center.mlr-cover-flow--sit-inside .mlr-cover-flow__next {
		justify-self: center;
		translate: calc(50% + var(--mlr-cover-flow-arrow-pair-gap) / 2) 0;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-mobile-top-right.mlr-cover-flow--sit-inside .mlr-cover-flow__next {
		justify-self: end;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-mobile-top-right.mlr-cover-flow--sit-inside .mlr-cover-flow__prev {
		justify-self: end;
		margin-inline-end: calc(var(--mlr-cover-flow-arrow-size) + var(--mlr-cover-flow-arrow-pair-gap));
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-mobile-bottom-left.mlr-cover-flow--sit-inside .mlr-cover-flow__prev {
		justify-self: start;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-mobile-bottom-left.mlr-cover-flow--sit-inside .mlr-cover-flow__next {
		justify-self: start;
		margin-inline-start: calc(var(--mlr-cover-flow-arrow-size) + var(--mlr-cover-flow-arrow-pair-gap));
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-mobile-bottom-center.mlr-cover-flow--sit-inside .mlr-cover-flow__prev {
		justify-self: center;
		translate: calc(-50% - var(--mlr-cover-flow-arrow-pair-gap) / 2) 0;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-mobile-bottom-center.mlr-cover-flow--sit-inside .mlr-cover-flow__next {
		justify-self: center;
		translate: calc(50% + var(--mlr-cover-flow-arrow-pair-gap) / 2) 0;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-mobile-bottom-right.mlr-cover-flow--sit-inside .mlr-cover-flow__next {
		justify-self: end;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-mobile-bottom-right.mlr-cover-flow--sit-inside .mlr-cover-flow__prev {
		justify-self: end;
		margin-inline-end: calc(var(--mlr-cover-flow-arrow-size) + var(--mlr-cover-flow-arrow-pair-gap));
	}

	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-mobile-top-"].mlr-cover-flow--sit-outside {
		display: grid;
		grid-template-columns: 1fr;
		grid-template-rows: var(--mlr-cover-flow-outside-gutter) minmax(0, 1fr);
		align-items: center;
	}

	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-mobile-top-"].mlr-cover-flow--sit-outside .mlr-cover-flow__viewport {
		grid-row: 2;
		grid-column: 1;
	}

	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-mobile-top-"].mlr-cover-flow--sit-outside .mlr-cover-flow__prev,
	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-mobile-top-"].mlr-cover-flow--sit-outside .mlr-cover-flow__next {
		grid-row: 1;
		grid-column: 1;
		position: static;
		top: auto;
		left: auto;
		right: auto;
		transform: none;
		align-self: center;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-mobile-top-left.mlr-cover-flow--sit-outside .mlr-cover-flow__prev {
		justify-self: start;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-mobile-top-left.mlr-cover-flow--sit-outside .mlr-cover-flow__next {
		justify-self: start;
		margin-inline-start: calc(var(--mlr-cover-flow-arrow-size) + var(--mlr-cover-flow-arrow-pair-gap));
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-mobile-top-center.mlr-cover-flow--sit-outside .mlr-cover-flow__prev {
		justify-self: center;
		translate: calc(-50% - var(--mlr-cover-flow-arrow-pair-gap) / 2) 0;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-mobile-top-center.mlr-cover-flow--sit-outside .mlr-cover-flow__next {
		justify-self: center;
		translate: calc(50% + var(--mlr-cover-flow-arrow-pair-gap) / 2) 0;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-mobile-top-right.mlr-cover-flow--sit-outside .mlr-cover-flow__next {
		justify-self: end;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-mobile-top-right.mlr-cover-flow--sit-outside .mlr-cover-flow__prev {
		justify-self: end;
		margin-inline-end: calc(var(--mlr-cover-flow-arrow-size) + var(--mlr-cover-flow-arrow-pair-gap));
	}

	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-mobile-bottom-"].mlr-cover-flow--sit-outside {
		display: grid;
		grid-template-columns: 1fr;
		grid-template-rows: minmax(0, 1fr) var(--mlr-cover-flow-outside-gutter);
		align-items: center;
	}

	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-mobile-bottom-"].mlr-cover-flow--sit-outside .mlr-cover-flow__viewport {
		grid-row: 1;
		grid-column: 1;
	}

	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-mobile-bottom-"].mlr-cover-flow--sit-outside .mlr-cover-flow__prev,
	.mlp-rebuild .mlr-cover-flow[class*="mlr-cover-flow-place-mobile-bottom-"].mlr-cover-flow--sit-outside .mlr-cover-flow__next {
		grid-row: 2;
		grid-column: 1;
		position: static;
		top: auto;
		left: auto;
		right: auto;
		transform: none;
		align-self: center;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-mobile-bottom-left.mlr-cover-flow--sit-outside .mlr-cover-flow__prev {
		justify-self: start;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-mobile-bottom-left.mlr-cover-flow--sit-outside .mlr-cover-flow__next {
		justify-self: start;
		margin-inline-start: calc(var(--mlr-cover-flow-arrow-size) + var(--mlr-cover-flow-arrow-pair-gap));
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-mobile-bottom-center.mlr-cover-flow--sit-outside .mlr-cover-flow__prev {
		justify-self: center;
		translate: calc(-50% - var(--mlr-cover-flow-arrow-pair-gap) / 2) 0;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-mobile-bottom-center.mlr-cover-flow--sit-outside .mlr-cover-flow__next {
		justify-self: center;
		translate: calc(50% + var(--mlr-cover-flow-arrow-pair-gap) / 2) 0;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-mobile-bottom-right.mlr-cover-flow--sit-outside .mlr-cover-flow__next {
		justify-self: end;
	}

	.mlp-rebuild .mlr-cover-flow.mlr-cover-flow-place-mobile-bottom-right.mlr-cover-flow--sit-outside .mlr-cover-flow__prev {
		justify-self: end;
		margin-inline-end: calc(var(--mlr-cover-flow-arrow-size) + var(--mlr-cover-flow-arrow-pair-gap));
	}
}

.mlp-rebuild .mlr-cover-flow__prev:disabled,
.mlp-rebuild .mlr-cover-flow__next:disabled {
	opacity: 0.35;
	cursor: default;
	pointer-events: none;
}
