/* Phase 03B: page composition; approved shared corrections live in components.css. */
.scc-homepage {
	display: flow-root;
	/* Homepage H2 calibration only; this does not freeze the global role. */
	--scc-type-h2-size: 1.75rem;
}
/* Approximate pale section bands from the approved raster; Homepage-only. */
.scc-home-band { background: color-mix(in srgb, var(--scc-brand-background) 97%, var(--scc-brand-foreground)); }
.scc-home-band--sets { background: color-mix(in srgb, var(--scc-brand-background) 96%, var(--scc-brand-accent)); }
.scc-home-hero {
	display: grid;
	gap: var(--scc-space-7);
	align-items: center;
	padding-block: var(--scc-space-9);
}
.scc-home-hero__band { min-inline-size: 0; }
.scc-home-hero__band h1 {
	font-size: 2rem; /* Provisional Hero display calibration, not the frozen H1 role. */
	line-height: 1.15;
	font-weight: 700;
	max-inline-size: 16ch;
	overflow-wrap: anywhere;
}
.scc-home-hero__copy {
	margin-block-start: var(--scc-space-6);
	max-inline-size: 42ch;
	font-size: var(--scc-type-body-large-size);
	overflow-wrap: anywhere;
}
.scc-home-actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--scc-space-4);
	margin-block-start: var(--scc-space-6);
}
.scc-home-hero__media { aspect-ratio: 6 / 5; min-inline-size: 0; overflow: hidden; }
.scc-home-hero__media img { inline-size: 100%; block-size: 100%; object-fit: cover; }
.scc-home-section { display: grid; gap: var(--scc-space-6); padding-block: var(--scc-space-8); }
.scc-home-section[data-home-section="featured"],
.scc-home-section[data-home-section="realizations"] { padding-block: var(--scc-space-9); }
.scc-home-section .scc-section-header__copy,
.scc-home-section .scc-cta-block > p { max-inline-size: 48ch; }
.scc-home-trust {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--scc-space-4);
	padding-block: var(--scc-space-5);
}
.scc-home-discovery {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--scc-space-4);
	margin: 0;
	padding: 0;
	list-style: none;
}
.scc-home-discovery li { min-inline-size: 0; }
.scc-home-discovery.scc-home-discovery--single { grid-template-columns: minmax(0, 1fr); }
.scc-home-tile { display: grid; min-inline-size: 0; text-decoration: none; }
.scc-home-tile:hover .scc-home-tile__label,
.scc-home-tile:active .scc-home-tile__label {
	text-decoration: underline;
	text-underline-offset: var(--scc-space-1);
}
.scc-home-tile__media { aspect-ratio: 6 / 5; overflow: hidden; min-inline-size: 0; }
.scc-home-tile__media img { inline-size: 100%; block-size: 100%; object-fit: cover; }
.scc-home-tile__label {
	display: flex;
	align-items: center;
	min-block-size: var(--scc-control-min-target);
	font-size: var(--scc-type-body-size);
	font-weight: 600;
	overflow-wrap: anywhere;
}
.scc-home-tile--media .scc-home-tile__media, .scc-home-tile--media .scc-home-tile__label { grid-area: 1 / 1; }
.scc-home-tile--media .scc-home-tile__label {
	align-self: end;
	justify-self: start;
	z-index: 1;
	margin: var(--scc-space-3);
	padding-inline: var(--scc-space-3);
	max-inline-size: calc(100% - var(--scc-space-6));
	background: var(--scc-brand-background);
	color: var(--scc-brand-foreground);
}
.scc-home-discovery--shortcuts .scc-home-tile { min-block-size: var(--scc-space-10); }
.scc-home-discovery--shortcuts .scc-home-tile__media { aspect-ratio: 2 / 1; }
.scc-home-discovery--shortcuts .scc-home-tile:hover .scc-home-tile__label,
.scc-home-discovery--shortcuts .scc-home-tile:active .scc-home-tile__label,
.scc-home-discovery--shortcuts .scc-home-tile:focus-visible .scc-home-tile__label { text-decoration: none; }
.scc-home-discovery__action { justify-self: end; }
.scc-home-editorial { display: grid; gap: var(--scc-space-7); }
.scc-home-editorial__media img { inline-size: 100%; block-size: 100%; object-fit: cover; }
.scc-home-section[data-home-section="faq"] { max-inline-size: 920px; padding-block: var(--scc-space-9); }
.scc-home-section[data-home-section="faq"] .scc-accordion__trigger { font-size: var(--scc-type-body-large-size); }
.scc-home-section[data-home-section="faq"] .scc-accordion__panel { max-inline-size: 72ch; }
.scc-home-section[data-home-section="service"] .scc-home-editorial {
	background: var(--scc-brand-foreground);
	color: var(--scc-brand-background);
	gap: 0;
}
.scc-home-section[data-home-section="service"] .scc-home-editorial > [id] {
	padding: var(--scc-space-6);
	--scc-brand-muted: var(--scc-color-border);
	align-content: center;
}
.scc-home-section[data-home-section="service"] h2 { max-inline-size: 22ch; }
.scc-home-section[data-home-section="service"] .scc-home-editorial__media { grid-row: 1; }
.scc-home-final {
	background: var(--scc-brand-foreground);
	color: var(--scc-brand-background);
	text-align: center;
	--scc-brand-muted: var(--scc-color-border);
	padding-block: var(--scc-space-10);
}
.scc-home-final__inner { display: grid; justify-items: center; }
.scc-home-final h2 { max-inline-size: 28ch; }
.scc-home-final .scc-cta-block { gap: var(--scc-space-5); }
.scc-home-final .scc-section-header__copy,
.scc-home-final .scc-cta-block > p {
	font-size: var(--scc-type-body-large-size);
	max-inline-size: 56ch;
	margin-inline: auto;
}
.scc-home-builder__steps { list-style: none; padding: 0; margin: 0; }
.scc-home-builder__steps li { display: flex; align-items: center; gap: var(--scc-space-8); min-block-size: var(--scc-control-min-target); padding-block: var(--scc-space-4); border-block-end: var(--scc-component-border-width) solid var(--scc-brand-border); }
.scc-home-builder__steps span { color: var(--scc-brand-primary-background); font-size: var(--scc-type-label-size); }
.scc-home-builder__destination {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: var(--scc-space-2) var(--scc-space-4);
	min-block-size: var(--scc-control-min-target);
	margin-block-start: var(--scc-space-6);
	padding: var(--scc-space-4);
	border: var(--scc-component-border-width) solid var(--scc-brand-border);
	background: var(--scc-brand-background);
	color: var(--scc-brand-foreground);
	text-decoration: none;
	overflow-wrap: anywhere;
}
.scc-home-builder__destination h3 { font-size: var(--scc-type-h3-size); }
.scc-home-builder__destination > h3,
.scc-home-builder__destination-label { grid-column: 1; }
.scc-home-builder__destination-label { font-size: var(--scc-type-body-size); font-weight: 400; color: var(--scc-brand-muted); }
.scc-home-builder__destination > .scc-icon { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
a.scc-home-builder__destination:focus-visible {
	outline: var(--scc-focus-ring-width) solid var(--scc-brand-focus);
	outline-offset: var(--scc-focus-ring-offset);
	border-color: var(--scc-brand-accent);
}
@media (hover: hover) {
	a.scc-home-builder__destination:hover {
		background: color-mix(in srgb, var(--scc-brand-background) 96%, var(--scc-brand-accent));
		border-color: var(--scc-brand-accent);
	}
}
@media (width < 48rem) and (any-pointer: coarse) {
	a.scc-home-builder__destination:active {
		background: color-mix(in srgb, var(--scc-brand-background) 96%, var(--scc-brand-accent));
		border-color: var(--scc-brand-accent);
	}
}
@media (width < 48rem) {
	/* Half-width cards; an incomplete final row stays centered for any odd count. */
	.scc-home-section[data-home-section="featured"] .scc-product-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.scc-home-section[data-home-section="featured"] .scc-product-grid > li { grid-column: span 2; display: grid; }
	.scc-home-section[data-home-section="featured"] .scc-product-grid > li:last-child:nth-child(odd) { grid-column: 2 / span 2; }
	.scc-home-section[data-home-section="featured"] .scc-product-card { grid-template-rows: 1fr auto; align-content: start; }
	.scc-home-section[data-home-section="featured"] .scc-product-card__link { grid-template-rows: auto 1fr; align-content: start; }
}
.scc-home-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--scc-space-4); padding: 0; margin: 0; list-style: none; }
.scc-home-gallery li { min-inline-size: 0; overflow: hidden; aspect-ratio: 6 / 5; }
.scc-home-gallery img { inline-size: 100%; block-size: 100%; object-fit: cover; }
.scc-home-gallery__lead { grid-column: 1 / -1; }
.scc-home-gallery--1 { grid-template-columns: minmax(0, 1fr); }
.scc-home-discovery--occasions .scc-home-tile__media { background: var(--scc-color-line); }
@media (width < 60rem) {
	.scc-home-discovery--motifs .scc-home-discovery__lead { grid-column: 1 / -1; }
	.scc-home-discovery--motifs .scc-home-discovery__lead .scc-home-tile__media { aspect-ratio: 16 / 9; }
}
/* STILL PROVISIONAL: desktop-only evidence cannot settle the mobile transition. */
@media (min-width: 60rem) {
	.scc-homepage { --scc-type-h2-size: 2rem; }
	.scc-home-hero { padding-block: var(--scc-space-10); }
	.scc-home-hero__copy { max-inline-size: 48ch; }
	.scc-home-section[data-home-section="service"] .scc-home-editorial > [id] { padding: var(--scc-space-8); }
	.scc-home-section[data-home-section="builder"] .scc-home-editorial { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--scc-space-10); }
	.scc-home-gallery { grid-template-columns: minmax(0, 2.8fr) repeat(2, minmax(0, 1fr)); }
	.scc-home-gallery__lead { grid-column: 1; grid-row: span 2; aspect-ratio: auto; }
	.scc-home-gallery--1 { grid-template-columns: minmax(0, 1fr); }
	.scc-home-gallery--1 .scc-home-gallery__lead { aspect-ratio: 6 / 5; }
	.scc-home-gallery--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.scc-home-gallery--2 .scc-home-gallery__lead { grid-row: auto; aspect-ratio: 6 / 5; }
	.scc-home-gallery--3 { grid-template-columns: minmax(0, 2.8fr) minmax(0, 2fr); }
	.scc-home-hero--media { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: var(--scc-space-9); }
	.scc-home-hero__band h1 { font-size: 3rem; }
	.scc-home-trust, .scc-home-discovery { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.scc-home-discovery--motifs { grid-template-columns: minmax(0, 1.8fr) minmax(0, 1fr); }
	.scc-home-discovery--motifs .scc-home-discovery__lead { grid-row: span 2; }
	.scc-home-discovery--motifs .scc-home-tile { block-size: 100%; }
	.scc-home-discovery--motifs .scc-home-tile__media { aspect-ratio: 9 / 4; }
	.scc-home-discovery--motifs .scc-home-discovery__lead .scc-home-tile__media { aspect-ratio: auto; block-size: 100%; }
	.scc-home-discovery--shortcuts { grid-template-columns: repeat(6, minmax(0, 1fr)); }
	.scc-home-discovery--shortcuts.scc-home-discovery--single { grid-template-columns: minmax(0, 12rem); }
	.scc-home-editorial:has(.scc-home-editorial__media) { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; }
	.scc-home-editorial__media { grid-column: 1; grid-row: 1; }
	.scc-home-editorial:has(.scc-home-editorial__media) > [id] { grid-column: 2; grid-row: 1; }
}

/* Desktop v2: explicit frame geometry removes image intrinsic sizing from tracks.
   These are Homepage calibration candidates, not frozen global ratio/type tokens. */
@media (min-width: 60rem) {
	.scc-home-discovery--motifs {
		aspect-ratio: 3 / 1;
		grid-template-rows: repeat(2, minmax(0, 1fr));
	}
	.scc-home-discovery--motifs li,
	.scc-home-discovery--motifs .scc-home-tile { min-block-size: 0; }
	.scc-home-discovery--motifs .scc-home-tile { position: relative; }
	.scc-home-discovery--motifs .scc-home-tile__media,
	.scc-home-discovery--motifs .scc-home-discovery__lead .scc-home-tile__media {
		position: absolute;
		inset: 0;
		aspect-ratio: auto;
		block-size: 100%;
	}
	.scc-home-discovery--motifs .scc-home-tile__label {
		position: relative;
		font-size: var(--scc-type-body-large-size);
		padding-block: var(--scc-space-2);
	}
	/* Fallbacks follow legitimate count/lead roles, never a merchandising reorder. */
	.scc-home-discovery--motifs.scc-home-discovery--single {
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: minmax(0, 1fr);
		aspect-ratio: 16 / 7;
	}
	.scc-home-discovery--motifs:not(:has(.scc-home-discovery__lead)):has(> li + li) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-rows: minmax(0, 1fr);
	}
	.scc-home-discovery--motifs:not(:has(.scc-home-discovery__lead)):has(> li + li + li) {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
	.scc-home-discovery--motifs .scc-home-tile:not(.scc-home-tile--media) {
		align-content: end;
		padding: var(--scc-space-4);
		background: var(--scc-brand-background);
	}
	.scc-home-section[data-home-section="builder"] .scc-section-header__copy {
		font-size: 1rem; /* Body Large approved 14-16px; local desktop upper bound. */
		line-height: 1.6;
		max-inline-size: 50ch;
		margin-block-start: var(--scc-space-4);
		color: var(--scc-brand-foreground);
	}
	.scc-home-section[data-home-section="ready_sets"] .scc-section-header__copy {
		font-size: 1rem;
		line-height: 1.6;
		font-weight: 400;
		max-inline-size: 72ch;
		color: var(--scc-brand-muted);
	}
	.scc-home-section .scc-product-card__title {
		font-size: 0.9375rem; /* Final desktop brief explicitly approves 15-16px locally. */
		font-weight: 500;
	}
	.scc-home-section .scc-price--standard {
		font-size: 0.9375rem; /* Explicit local 15px exception; frozen Price token unchanged. */
		font-weight: 600;
		font-variant-numeric: tabular-nums;
	}
	.scc-home-section[data-home-section="realizations"] {
		grid-template-columns: minmax(0, 2.8fr) repeat(2, minmax(0, 1fr));
		column-gap: var(--scc-space-4);
		row-gap: 0;
	}
	.scc-home-section[data-home-section="realizations"] > [id] {
		position: relative;
		grid-column: 1;
		grid-row: 1;
		align-self: end;
		z-index: 1;
		padding: var(--scc-space-6);
		color: var(--scc-brand-background);
		isolation: isolate;
		--scc-brand-muted: var(--scc-brand-background);
	}
	/* Functional media scrim: the fade is above the text's fully protected region. */
	.scc-home-section[data-home-section="realizations"] > [id]::before {
		content: '';
		position: absolute;
		inset-inline: 0;
		inset-block-end: 0;
		block-size: calc(100% + var(--scc-space-9));
		z-index: -1;
		pointer-events: none;
		background: linear-gradient(to top, color-mix(in srgb, var(--scc-brand-foreground) 82%, transparent) 0, color-mix(in srgb, var(--scc-brand-foreground) 82%, transparent) calc(100% - var(--scc-space-9)), transparent 100%);
	}
	.scc-home-section[data-home-section="realizations"] .scc-section-header__copy {
		font-size: 1rem; /* Approved Body Large upper bound. */
		line-height: 1.6;
		max-inline-size: 60ch;
		margin-block-start: var(--scc-space-3);
	}
	.scc-home-gallery {
		grid-column: 1 / -1;
		grid-row: 1;
		aspect-ratio: 8 / 3;
		grid-template-rows: repeat(2, minmax(0, 1fr));
	}
	.scc-home-gallery li,
	.scc-home-gallery--1 .scc-home-gallery__lead,
	.scc-home-gallery--2 .scc-home-gallery__lead {
		position: relative;
		min-block-size: 0;
		aspect-ratio: auto;
	}
	.scc-home-gallery img { position: absolute; inset: 0; object-position: center; }
	.scc-home-gallery--1 { aspect-ratio: 16 / 7; grid-template-rows: minmax(0, 1fr); }
	.scc-home-gallery--1 .scc-home-gallery__lead { grid-row: auto; }
	.scc-home-gallery--2 { grid-template-rows: minmax(0, 1fr); }
	.scc-home-section[data-home-section="realizations"]:has(.scc-home-gallery--1) { grid-template-columns: minmax(0, 1fr); }
	.scc-home-section[data-home-section="realizations"]:has(.scc-home-gallery--2) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.scc-home-section[data-home-section="realizations"]:has(.scc-home-gallery--3) { grid-template-columns: minmax(0, 2.8fr) minmax(0, 2fr); }
	.scc-home-section[data-home-section="realizations"]:has(.scc-home-gallery--1) > [id] { max-inline-size: 52ch; }
	.scc-home-trust { padding-block: var(--scc-space-7); }
	.scc-home-trust .scc-trust-item { align-items: center; border-color: color-mix(in srgb, var(--scc-brand-foreground) 25%, var(--scc-brand-background)); }
	.scc-home-trust .scc-trust-item__label,
	.scc-home-trust .scc-trust-item__copy { font-size: 0.9375rem; }
	.scc-home-trust .scc-trust-item__copy { margin-block-start: var(--scc-space-2); }
	.scc-home-section[data-home-section="faq"] { gap: var(--scc-space-8); padding-block: var(--scc-space-10); }
	.scc-home-section[data-home-section="faq"] .scc-accordion__trigger {
		font-size: 1rem; /* Scannable question: approved Body Large upper bound. */
		font-weight: 500;
		padding-block: var(--scc-space-6);
	}
	.scc-home-section[data-home-section="faq"] .scc-accordion__trigger[aria-expanded="true"] { font-weight: 600; }
	.scc-home-section[data-home-section="faq"] .scc-accordion__trigger::after {
		font-size: var(--scc-type-h3-size);
		font-weight: 600;
		inline-size: var(--scc-space-6);
		text-align: center;
	}
	.scc-home-section[data-home-section="faq"] .scc-accordion__item { border-color: var(--scc-color-border); }
	.scc-home-section[data-home-section="faq"] .scc-accordion__panel { font-size: 1rem; line-height: 1.6; padding-block-end: var(--scc-space-6); }
	.scc-home-section[data-home-section="service"] .scc-section-header__copy,
	.scc-home-final .scc-section-header__copy { font-size: 1rem; line-height: 1.6; }
	.scc-home-final .scc-section-header__copy,
	.scc-home-final .scc-cta-block > p { max-inline-size: 64ch; }
	.scc-home-section[data-home-section="builder"] { padding-block: var(--scc-space-9); }
	.scc-home-section[data-home-section="realizations"] { padding-block-end: var(--scc-space-6); }
	.scc-home-section[data-home-section="service"] { padding-block-start: var(--scc-space-6); }
}
/* Provisional 180ms interaction applies only to desktop Homepage product media. */
@media (min-width: 60rem) and (hover: hover) and (pointer: fine) {
	.scc-home-section .scc-product-card__media img { transition: transform 180ms ease-out; }
	.scc-home-section .scc-product-card__media:hover img { transform: scale(1.025); }
}
@media (prefers-reduced-motion: reduce) {
	.scc-home-section .scc-product-card__media img { transition: none; transform: none; }
	.scc-home-section .scc-product-card__media:hover img { transform: none; }
}
