.ks-families {
	--ksf-columns: 3;
	--ksf-pointer-x: 50%;
	--ksf-pointer-y: 50%;
	position: relative;
	isolation: isolate;
	overflow: clip;
	padding: 112px 42px 118px;
	font-family: inherit;
}

.ks-families__inner {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: 1560px;
	margin-inline: auto;
}

.ks-families .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	border: 0;
	white-space: nowrap;
}

.ks-families__grid {
	position: absolute;
	inset: 0;
	z-index: -2;
	pointer-events: none;
	opacity: .42;
	background-image:
		linear-gradient(var(--ks-brand-line) 1px, transparent 1px),
		linear-gradient(90deg, var(--ks-brand-line) 1px, transparent 1px);
	background-size: 64px 64px;
	-webkit-mask-image: linear-gradient(to bottom, #000, transparent 82%);
	mask-image: linear-gradient(to bottom, #000, transparent 82%);
}

.ks-families__glow {
	position: absolute;
	z-index: -1;
	top: var(--ksf-pointer-y);
	left: var(--ksf-pointer-x);
	width: min(52vw, 760px);
	aspect-ratio: 1;
	pointer-events: none;
	border-radius: 50%;
	background: radial-gradient(circle, color-mix(in srgb, var(--ks-brand-accent) 15%, transparent), transparent 66%);
	transform: translate(-50%, -50%);
	opacity: 0;
	transition: opacity .4s ease;
}

.ks-families.has-cursor-glow.is-pointer-active .ks-families__glow {
	opacity: 1;
}

.ks-families__header {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(280px, .65fr);
	align-items: end;
	gap: clamp(42px, 8vw, 130px);
	margin-bottom: clamp(58px, 7vw, 104px);
}

.ks-families__heading {
	max-width: 950px;
}

.ks-families__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 13px;
	margin-bottom: 24px;
	color: var(--ks-brand-accent);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .19em;
	line-height: 1.4;
	text-transform: uppercase;
}

.ks-families__eyebrow i {
	display: inline-block;
	width: 34px;
	height: 6px;
	background: repeating-linear-gradient(135deg, var(--ks-brand-accent) 0 5px, transparent 5px 8px);
}

.ks-families__title {
	margin: 0;
	color: var(--ks-brand-ink);
	font-family: "Arial Narrow", "Roboto Condensed", sans-serif;
	font-size: clamp(48px, 6vw, 98px);
	font-weight: 800;
	letter-spacing: -.055em;
	line-height: .92;
	text-wrap: balance;
}

.ks-families__title em {
	position: relative;
	display: inline-block;
	color: var(--ks-brand-accent);
	font-style: normal;
}

.ks-families__title em::after {
	position: absolute;
	right: 0;
	bottom: -.08em;
	left: 0;
	height: .055em;
	min-height: 3px;
	background: currentColor;
	content: "";
	transform-origin: left;
}

.ks-families__intro-wrap {
	display: grid;
	justify-items: start;
	gap: 28px;
	padding-bottom: 5px;
}

.ks-families__intro {
	margin: 0;
	color: var(--ks-brand-muted);
	font-size: 17px;
	line-height: 1.75;
}

.ks-families__general-cta,
.ks-family__link {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	min-height: 48px;
	padding-bottom: 8px;
	border-bottom: 1px solid var(--ks-brand-accent);
	color: var(--ks-brand-ink);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .12em;
	line-height: 1.3;
	text-decoration: none;
	text-transform: uppercase;
	transition: color .22s ease, gap .25s var(--ks-brand-ease);
}

.ks-families__general-cta:hover,
.ks-family__link:hover {
	gap: 28px;
	color: var(--ks-brand-accent);
}

.ks-families__general-cta svg,
.ks-family__link svg {
	flex: 0 0 auto;
}

/* Arsenal interactive */
.ks-families__arsenal {
	display: grid;
	grid-template-columns: minmax(270px, 360px) minmax(0, 1fr);
	min-height: 650px;
	border-top: 1px solid var(--ks-brand-line);
	border-bottom: 1px solid var(--ks-brand-line);
	background: color-mix(in srgb, var(--ks-brand-surface) 72%, transparent);
	box-shadow: var(--ks-brand-shadow);
}

.ks-families__tabs {
	position: relative;
	z-index: 4;
	display: flex;
	flex-direction: column;
	border-right: 1px solid var(--ks-brand-line);
	background: var(--ks-brand-surface);
}

.ks-family-tab {
	position: relative;
	display: grid;
	grid-template-columns: 35px minmax(0, 1fr) 8px;
	align-items: center;
	gap: 14px;
	min-height: 88px;
	margin: 0;
	padding: 16px 24px;
	border: 0;
	border-bottom: 1px solid var(--ks-brand-line);
	border-radius: 0;
	background: transparent;
	color: var(--ks-brand-muted);
	cursor: pointer;
	font: inherit;
	text-align: left;
	transition: background .28s ease, color .28s ease, padding .28s var(--ks-brand-ease);
}

.ks-family-tab:last-child {
	border-bottom: 0;
}

.ks-family-tab:focus-visible {
	outline-offset: -4px;
}

.ks-family-tab:hover,
.ks-family-tab.is-active {
	padding-left: 29px;
	background: color-mix(in srgb, var(--ks-brand-accent) 8%, var(--ks-brand-surface));
	color: var(--ks-brand-ink);
}

.ks-family-tab__index {
	color: var(--ks-brand-accent);
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .08em;
}

.ks-family-tab__copy {
	display: grid;
	gap: 5px;
	min-width: 0;
}

.ks-family-tab__copy strong {
	font-size: 14px;
	font-weight: 780;
	letter-spacing: -.01em;
	line-height: 1.25;
}

.ks-family-tab__copy small {
	overflow: hidden;
	color: var(--ks-brand-muted);
	font-size: 9px;
	font-weight: 700;
	letter-spacing: .1em;
	line-height: 1.4;
	text-overflow: ellipsis;
	text-transform: uppercase;
	white-space: nowrap;
}

.ks-family-tab__marker {
	width: 5px;
	height: 22px;
	background: var(--ks-brand-accent);
	clip-path: polygon(0 0, 100% 18%, 100% 82%, 0 100%);
	transform: scaleY(0);
	transition: transform .25s var(--ks-brand-ease);
}

.ks-family-tab.is-active .ks-family-tab__marker {
	transform: scaleY(1);
}

.ks-families__stage {
	position: relative;
	min-width: 0;
	background: var(--ks-brand-dark);
}

.ks-family-panel {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr);
	min-height: 650px;
	color: var(--ks-brand-accent-contrast);
}

.ks-family-panel[hidden] {
	display: none;
}

.ks-family-panel__content {
	position: relative;
	z-index: 3;
	container-type: inline-size;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-end;
	padding: clamp(40px, 5vw, 78px) clamp(32px, 4.5vw, 68px);
	border-left: 1px solid rgba(255, 255, 255, .13);
	background: linear-gradient(145deg, rgba(255,255,255,.04), transparent 65%);
}

.ks-family-panel .ks-family__title {
	color: var(--ks-brand-accent-contrast);
	font-size: clamp(38px, 4.2vw, 68px);
}

.ks-family-panel .ks-family__description {
	color: color-mix(in srgb, var(--ks-brand-accent-contrast) 66%, transparent);
}

.ks-family-panel .ks-family__materials {
	color: color-mix(in srgb, var(--ks-brand-accent-contrast) 58%, transparent);
}

.ks-family-panel .ks-family__link {
	margin-top: 28px;
	color: var(--ks-brand-accent-contrast);
}

/* Shared visual */
.ks-family__visual {
	position: relative;
	isolation: isolate;
	min-width: 0;
	overflow: hidden;
	background:
		linear-gradient(145deg, rgba(255,255,255,.07), transparent 55%),
		var(--ks-brand-dark);
}

.ks-family__visual::before {
	position: absolute;
	inset: 0;
	z-index: -1;
	background-image:
		linear-gradient(rgba(255,255,255,.07) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255,255,255,.07) 1px, transparent 1px);
	background-size: 54px 54px;
	content: "";
	-webkit-mask-image: linear-gradient(140deg, #000, transparent 70%);
	mask-image: linear-gradient(140deg, #000, transparent 70%);
}

.ks-family__cut {
	position: absolute;
	z-index: 3;
	top: 0;
	right: 6%;
	width: min(46%, 310px);
	height: 13px;
	background: repeating-linear-gradient(135deg, var(--ks-brand-accent) 0 15px, transparent 15px 23px);
}

.ks-family__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: saturate(.82) contrast(1.04);
	transition: transform .75s var(--ks-brand-ease), filter .45s ease;
}

.ks-family__visual.has-image::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, transparent 45%, rgba(12, 12, 12, .32));
	content: "";
	pointer-events: none;
}

.ks-family__symbol {
	position: absolute;
	top: 50%;
	left: 50%;
	display: grid;
	place-items: center;
	width: min(46%, 250px);
	aspect-ratio: 1;
	border: 1px solid rgba(255,255,255,.18);
	border-radius: 50%;
	color: var(--ks-brand-accent);
	transform: translate(-50%, -50%);
}

.ks-family__symbol::before,
.ks-family__symbol::after {
	position: absolute;
	border: 1px dashed rgba(255,255,255,.13);
	border-radius: inherit;
	content: "";
}

.ks-family__symbol::before { inset: -22%; }
.ks-family__symbol::after { inset: 19%; }
.ks-family__symbol svg { width: 37%; height: 37%; }

.ks-family__ghost {
	position: absolute;
	right: -.05em;
	bottom: -.27em;
	color: rgba(255,255,255,.035);
	font-family: "Arial Narrow", sans-serif;
	font-size: clamp(260px, 32vw, 520px);
	font-weight: 900;
	line-height: 1;
	text-transform: uppercase;
}

.ks-family__visual-code,
.ks-family__visual-index {
	position: absolute;
	z-index: 4;
	color: rgba(255,255,255,.58);
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: .14em;
	line-height: 1;
}

.ks-family__visual-code { top: 26px; left: 28px; }
.ks-family__visual-index { right: 27px; bottom: 25px; font-size: 15px; color: var(--ks-brand-accent); }

.ks-family__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 18px;
	margin-bottom: 22px;
}

.ks-family__badge,
.ks-family__materials {
	font-size: 9px;
	font-weight: 800;
	letter-spacing: .13em;
	line-height: 1.4;
	text-transform: uppercase;
}

.ks-family__badge {
	padding: 8px 10px;
	background: var(--ks-brand-accent);
	color: var(--ks-brand-accent-contrast);
}

.ks-family__materials {
	color: var(--ks-brand-muted);
}

.ks-family__title {
	margin: 0;
	color: var(--ks-brand-ink);
	font-family: "Arial Narrow", "Roboto Condensed", sans-serif;
	font-size: clamp(28px, 3vw, 46px);
	font-weight: 800;
	letter-spacing: -.04em;
	line-height: 1;
	text-wrap: balance;
}

.ks-family__description {
	margin: 20px 0 0;
	color: var(--ks-brand-muted);
	font-size: 15px;
	line-height: 1.7;
}

/* Technical catalog */
.layout-technical .ks-families__collection {
	display: grid;
	grid-template-columns: repeat(var(--ksf-columns), minmax(0, 1fr));
	gap: 1px;
	border: 1px solid var(--ks-brand-line);
	background: var(--ks-brand-line);
	box-shadow: var(--ks-brand-shadow);
}

.layout-technical .ks-family-card {
	position: relative;
	display: flex;
	min-width: 0;
	flex-direction: column;
	background: var(--ks-brand-surface);
}

.layout-technical .ks-family__visual {
	aspect-ratio: 4 / 3;
}

.layout-technical.ratio-wide .ks-family__visual { aspect-ratio: 16 / 10; }
.layout-technical.ratio-square .ks-family__visual { aspect-ratio: 1; }
.layout-technical.ratio-portrait .ks-family__visual { aspect-ratio: 4 / 5; }

.layout-technical .ks-family-card__content {
	display: flex;
	flex: 1;
	flex-direction: column;
	align-items: flex-start;
	container-type: inline-size;
	padding: clamp(26px, 3vw, 42px);
}

.layout-technical .ks-family__description {
	flex: 1;
}

.layout-technical .ks-family__link {
	width: 100%;
	margin-top: 28px;
}

/* Editorial cut */
.layout-editorial .ks-families__collection {
	display: grid;
	gap: clamp(28px, 4vw, 64px);
}

.layout-editorial .ks-family-card {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr);
	min-height: 470px;
	overflow: hidden;
	border: 1px solid var(--ks-brand-line);
	border-radius: var(--ks-brand-radius);
	background: var(--ks-brand-surface);
	box-shadow: 0 18px 55px rgba(31,24,17,.08);
}

.layout-editorial.editorial-media_right .ks-family-card .ks-family__visual,
.layout-editorial.editorial-alternate .ks-family-card:nth-child(even) .ks-family__visual {
	order: 2;
}

.layout-editorial.editorial-media_right .ks-family-card__content,
.layout-editorial.editorial-alternate .ks-family-card:nth-child(even) .ks-family-card__content {
	order: 1;
}

.layout-editorial .ks-family-card__content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	container-type: inline-size;
	padding: clamp(38px, 6vw, 92px);
}

.layout-editorial .ks-family__title {
	font-size: clamp(38px, 5vw, 72px);
}

.layout-editorial .ks-family__description {
	max-width: 570px;
}

.layout-editorial .ks-family__link {
	margin-top: 30px;
}

.ks-families__empty {
	display: grid;
	place-items: center;
	min-height: 300px;
	padding: 42px;
	border: 1px dashed var(--ks-brand-accent);
	background: var(--ks-brand-surface);
	text-align: center;
}

.ks-families__empty strong { font-size: 20px; }
.ks-families__empty span { color: var(--ks-brand-muted); }

/* Motion */
.ks-families.is-reveal-ready .ks-families__eyebrow,
.ks-families.is-reveal-ready .ks-families__title,
.ks-families.is-reveal-ready .ks-families__intro-wrap,
.ks-families.is-reveal-ready .ks-families__arsenal,
.ks-families.is-reveal-ready .ks-family-card {
	opacity: 0;
	transform: translateY(28px);
}

.ks-families.is-reveal-ready.is-visible .ks-families__eyebrow,
.ks-families.is-reveal-ready.is-visible .ks-families__title,
.ks-families.is-reveal-ready.is-visible .ks-families__intro-wrap,
.ks-families.is-reveal-ready.is-visible .ks-families__arsenal,
.ks-families.is-reveal-ready.is-visible .ks-family-card {
	opacity: 1;
	transform: none;
	transition: opacity .72s var(--ks-brand-ease), transform .72s var(--ks-brand-ease);
}

.ks-families.is-reveal-ready.is-visible .ks-families__title { transition-delay: .07s; }
.ks-families.is-reveal-ready.is-visible .ks-families__intro-wrap { transition-delay: .13s; }
.ks-families.is-reveal-ready.is-visible .ks-families__arsenal { transition-delay: .18s; }
.ks-families.is-reveal-ready.is-visible .ks-family-card:nth-child(2) { transition-delay: .08s; }
.ks-families.is-reveal-ready.is-visible .ks-family-card:nth-child(3) { transition-delay: .14s; }
.ks-families.is-reveal-ready.is-visible .ks-family-card:nth-child(4) { transition-delay: .20s; }

.ks-families.is-reveal-ready.has-text-reveal .ks-families__title em::after {
	transform: scaleX(0);
}

.ks-families.is-reveal-ready.is-visible.has-text-reveal .ks-families__title em::after {
	transform: scaleX(1);
	transition: transform .85s .5s var(--ks-brand-ease);
}

.ks-families.motion-impact .ks-family-panel.is-entering .ks-family__visual {
	animation: ks-family-panel-in .58s var(--ks-brand-ease) both;
}

.ks-families.motion-impact .ks-family-panel.is-entering .ks-family-panel__content {
	animation: ks-family-content-in .55s .08s var(--ks-brand-ease) both;
}

@keyframes ks-family-panel-in {
	from { opacity: .25; clip-path: inset(0 100% 0 0); }
	to { opacity: 1; clip-path: inset(0); }
}

@keyframes ks-family-content-in {
	from { opacity: 0; transform: translateX(24px); }
	to { opacity: 1; transform: none; }
}

@media (hover: hover) and (pointer: fine) {
	.ks-families.has-image-motion .ks-family-card:hover .ks-family__image,
	.ks-families.has-image-motion .ks-family-panel:hover .ks-family__image {
		filter: saturate(1) contrast(1.06);
		transform: scale(1.045);
	}

	.layout-technical .ks-family-card {
		transition: transform .35s var(--ks-brand-ease), box-shadow .35s ease;
	}

	.layout-technical .ks-family-card:hover {
		z-index: 2;
		box-shadow: 0 28px 68px rgba(31,24,17,.16);
		transform: translateY(-8px);
	}
}

@media (max-width: 1180px) {
	.ks-families__arsenal { grid-template-columns: 290px minmax(0, 1fr); }
	.ks-family-panel { grid-template-columns: minmax(0, 1fr) minmax(270px, .75fr); }
	.ks-family-tab { padding-inline: 18px; }
	.layout-editorial .ks-family-card { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 1024px) {
	.ks-families { padding: 84px 28px 90px; }
	.ks-families__header { grid-template-columns: 1fr; gap: 28px; }
	.ks-families__intro-wrap { max-width: 680px; }
	.ks-families__arsenal { display: block; min-height: 0; }
	.ks-families__tabs {
		flex-direction: row;
		overflow-x: auto;
		border-right: 0;
		border-bottom: 1px solid var(--ks-brand-line);
		scrollbar-width: thin;
		scroll-snap-type: x proximity;
	}
	.ks-family-tab {
		flex: 0 0 min(44vw, 300px);
		grid-template-columns: 28px minmax(0, 1fr) 6px;
		min-height: 92px;
		border-right: 1px solid var(--ks-brand-line);
		border-bottom: 0;
		scroll-snap-align: start;
	}
	.ks-family-panel { min-height: 560px; }
	.layout-editorial .ks-family-card { min-height: 420px; }
}

@media (max-width: 900px) {
	.ks-family-panel {
		display: flex;
		min-height: 0;
		flex-direction: column;
	}

	.ks-family-panel .ks-family__visual {
		min-height: 390px;
		aspect-ratio: 16 / 10;
	}

	.ks-family-panel__content {
		min-height: 310px;
		padding: 42px 34px 46px;
		border-top: 1px solid rgba(255,255,255,.13);
		border-left: 0;
	}

	.layout-editorial .ks-family-card {
		display: flex;
		min-height: 0;
		flex-direction: column;
	}

	.layout-editorial .ks-family-card .ks-family__visual {
		order: 0 !important;
		min-height: 360px;
		aspect-ratio: 16 / 10;
	}

	.layout-editorial .ks-family-card__content {
		order: 1 !important;
		padding: 44px 34px 48px;
	}
}

@supports (font-size: 1cqi) {
	.ks-family-panel .ks-family__title,
	.layout-technical .ks-family__title,
	.layout-editorial .ks-family__title {
		font-size: clamp(34px, 12cqi, 72px);
	}
}

@media (max-width: 767px) {
	.ks-families { padding: 64px 18px 70px; }
	.ks-families__grid { background-size: 42px 42px; }
	.ks-families__header { margin-bottom: 44px; }
	.ks-families__eyebrow { margin-bottom: 18px; font-size: 10px; }
	.ks-families__title { font-size: clamp(42px, 13vw, 62px); line-height: .96; }
	.ks-families__intro { font-size: 15px; }
	.ks-families__general-cta { width: 100%; }
	.ks-family-tab { flex-basis: min(78vw, 300px); min-height: 86px; }
	.ks-family-panel { display: flex; min-height: 0; flex-direction: column; }
	.ks-family-panel .ks-family__visual { min-height: 360px; aspect-ratio: 4 / 3; }
	.ks-family-panel__content { min-height: 330px; padding: 35px 26px 40px; border-top: 1px solid rgba(255,255,255,.13); border-left: 0; }
	.ks-family-panel .ks-family__title { font-size: clamp(36px, 11vw, 52px); }
	.layout-technical .ks-family__visual { aspect-ratio: 16 / 11; }
	.layout-technical .ks-family-card__content { padding: 28px 24px 32px; }
	.layout-editorial .ks-families__collection { gap: 24px; }
	.layout-editorial .ks-family-card { display: flex; min-height: 0; flex-direction: column; }
	.layout-editorial .ks-family-card .ks-family__visual { order: 0 !important; min-height: 330px; aspect-ratio: 4 / 3; }
	.layout-editorial .ks-family-card__content { order: 1 !important; padding: 34px 25px 38px; }
	.layout-editorial .ks-family__title { font-size: clamp(36px, 11vw, 52px); }
	.ks-family__symbol { width: min(48%, 180px); }
	.ks-family__ghost { font-size: 250px; }
}

@media (max-width: 360px) {
	.ks-families { padding-inline: 15px; }
	.ks-family-tab { flex-basis: 85vw; padding-inline: 15px; }
	.ks-family-panel .ks-family__visual { min-height: 300px; }
	.ks-family-panel__content { padding-inline: 21px; }
}

@media (prefers-reduced-motion: reduce) {
	.ks-families__glow { display: none; }
	.ks-families.is-reveal-ready * { opacity: 1 !important; transform: none !important; }
}
