.cika-site-frame {
	display: flex;
	min-height: 100vh;
	flex-direction: column;
}

.cika-site-main {
	flex: 1 0 auto;
}

/* Homepage hero -----------------------------------------------------------
   Three layers share one grid cell so they stack without absolute positioning:
   the wordmark at the back, the cut-out model over it, and the stage grid —
   cards, headline, corner notes — in front of both. Everything is full bleed;
   nothing is inside a container.

   There is deliberately no scrim and no wash. The model's own body is opaque
   and dark across the whole area the copy occupies (measured worst pixel 7.0:1
   against white, mean 18.4:1), so it carries the headline the way the reference
   does. If a much lighter hero image is ever uploaded, that assumption goes
   with it — see the phase report. */
.cika-home-hero {
	position: relative;
	isolation: isolate;
	display: grid;
	/* No-JS fallback sizing: there the header is a normal bar in the flow, so
	   the hero has to give up its height plus its rule. With JS the header
	   floats and the hero takes the full viewport instead. */
	min-height: calc(100svh - var(--cika-header-height) - var(--cika-border-thin));
	overflow: hidden;
	background: var(--cika-color-bg);
	color: var(--cika-color-text);

	/* ------------------------------------------------------------------
	   One stage, one scale.

	   Everything in the hero is sized from --cika-hero-u, the stage's own
	   width. The stage keeps a fixed aspect ratio, so on any viewport wide
	   enough it is driven purely by width and the whole composition scales
	   uniformly — 1440, 1920 and 2560 render the same design at three sizes
	   rather than three layouts. Only on a viewport too short for that ratio
	   does height take over, and then the entire stage shrinks together
	   instead of individual elements drifting.

	   Nothing below positions itself with vh. That was the old fault: the
	   wordmark scaled with width while the copy and cards were anchored to
	   viewport height, so their relationship changed with every aspect ratio.
	   ------------------------------------------------------------------ */
	/* cqw, not viewport units: it is the hero's own content width, so it
	   excludes the scrollbar and cannot cause horizontal overflow. */
	container-type: inline-size;
	--cika-hero-stage-aspect: 2.15;
	--cika-hero-stage-height: min(
		calc(100svh - var(--cika-header-height)),
		calc(100cqw / var(--cika-hero-stage-aspect))
	);
	--cika-hero-stage-width: calc(var(--cika-hero-stage-height) * var(--cika-hero-stage-aspect));
	--cika-hero-u: var(--cika-hero-stage-width);

	/* viewBox width / height of the wordmark artwork. */
	--cika-hero-type-aspect: 3.029;
	--cika-hero-card-width: clamp(9rem, calc(var(--cika-hero-u) * 0.14), 24rem);

	/* The stage is a single centred cell; every layer shares it. The tokens
	   above are only ever *used* on descendants, so their cqw resolves against
	   this element rather than against whatever contains it. */
	align-content: center;
	justify-items: center;
}

.cika-home-hero > * {
	grid-area: 1 / 1;
	min-width: 0;
	width: min(100%, var(--cika-hero-stage-width));
}

/* The stage carries the explicit height, which sizes the shared grid row; the
   artwork layers then stretch to match it. */
.cika-home-hero__stage {
	height: var(--cika-hero-stage-height);
}

/* Supplied wordmark spans the hero independently of the foreground stage. */
.cika-home-hero__type {
	z-index: 0;
	align-self: start;
	justify-self: center;
	display: block;
	width: 100%;
	max-width: none;
	height: auto;
	padding: 0;
	margin-block-start: calc(var(--cika-hero-stage-height) * 0.02);
	pointer-events: none;
	user-select: none;
}
.cika-home-hero__media {
	position: relative;
	z-index: 1;
	width: 100%;
	pointer-events: none;
}

/* Taken out of flow on purpose. As an in-flow child its height: 100% cannot
   resolve against an auto-sized grid row, so it falls back to the image's
   intrinsic height and drags the whole hero taller than the viewport. */
.cika-home-hero__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: contain;
	/* 47%, not centre: the figure sits right of centre inside its own frame, and
	   the copy is centred on the viewport, so the artwork is nudged left until
	   the torso lines up with the text. */
	object-position: 47% bottom;
	/* The figure is the centre of the composition, lifted clear of the foot of
	   the hero so the corner notes keep their own space. Anchored at the bottom
	   so the scale grows upward. */
	transform: scale(0.91) translateY(-9%);
	transform-origin: center bottom;
}

/* Full bleed, gutter only. The centre column is sized by the copy, so the two
   flanking columns absorb the remaining width; the cards then sit against the
   inner edge of theirs and the corner notes against the outer edge of theirs.
   That is what spreads the composition instead of stacking it in one column. */
.cika-home-hero__stage {
	z-index: 3;
	display: grid;
	width: 100%;
	grid-template-columns: minmax(0, 1fr) minmax(0, auto) minmax(0, 1fr);
	grid-template-rows: minmax(var(--cika-space-8), 1fr) auto auto;
	align-items: end;
	gap: calc(var(--cika-hero-stage-height) * 0.035) calc(var(--cika-hero-u) * 0.02);
	/* Extra foot so the cards and corner notes clear the bottom edge rather
	   than sitting on it. Both are shares of the stage, so the composition's
	   vertical rhythm is identical at every resolution. */
	padding-block: calc(var(--cika-hero-stage-height) * 0.035) calc(var(--cika-hero-stage-height) * 0.07);
	padding-inline: var(--cika-gutter);
}

.cika-home-hero__content {
	display: grid;
	grid-column: 2;
	grid-row: 2;
	/* Centred in its own track, so the copy lands on the middle of the model
	   rather than at the track's leading edge. */
	justify-self: center;
	justify-items: center;
	/* Viewport-proportional, like the wordmark. When this was a fixed rem width
	   the copy stayed put while the wordmark grew with the screen, so the whole
	   composition read differently at 1080 than at 1440p. The block also has to
	   fit inside the model's torso: a narrower box only buys extra lines, which
	   pushes the headline up onto the shoulders where the silhouette narrows. */
	width: min(clamp(18rem, calc(var(--cika-hero-u) * 0.3), 50rem), 100%);
	gap: var(--cika-space-3);
	/* Lifts the copy off the foot of the hero and onto the middle of the chest.
	   Tuned against the figure, not by eye: lifting further puts the first line
	   on the shoulders, where the silhouette narrows and the wordmark shows
	   through behind the text. */
	/* Tuned against the figure, not by eye. Lifting further puts the first
	   headline line on the shoulders, where the silhouette narrows and the
	   wordmark shows through behind the text. Because the stage is locked to a
	   fixed ratio, this holds at every resolution. */
	margin-block-end: calc(var(--cika-hero-stage-height) * 0.04);
	text-align: center;
}

.cika-home-hero__headline {
	max-width: 22ch;
	margin: 0;
	font-size: clamp(1.85rem, calc(var(--cika-hero-u) * 0.034), 6rem);
	font-weight: 900;
	line-height: 0.9;
	text-transform: uppercase;
	text-wrap: balance;
}

.cika-home-hero__description {
	max-width: 44ch;
	margin: 0;
	font-family: var(--cika-font-mono);
	font-size: clamp(0.75rem, calc(var(--cika-hero-u) * 0.0075), 1.125rem);
	font-weight: 700;
	line-height: 1.6;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.cika-home-hero__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--cika-space-3);
	margin-block-start: var(--cika-space-2);
}

.cika-home-hero__actions .cika-button {
	min-width: clamp(8.5rem, calc(var(--cika-hero-u) * 0.115), 19rem);
	min-height: clamp(2.75rem, calc(var(--cika-hero-u) * 0.028), 4.75rem);
	padding: 0.95rem 1.5rem;
	justify-content: center;
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-sm);
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.cika-home-hero__primary {
	box-shadow: 4px 4px 0 var(--cika-color-accent-2);
}

.cika-home-hero__secondary {
	border-color: var(--cika-color-border-strong);
	background: rgb(14 18 28 / 88%);
	color: var(--cika-color-text);
}

.cika-home-hero__secondary:hover {
	border-color: var(--cika-color-focus);
	background: rgb(14 18 28 / 94%);
	color: var(--cika-color-focus);
	box-shadow: 4px 4px 0 var(--cika-color-focus);
}

.cika-home-hero__stats,
.cika-home-hero__benefits {
	display: grid;
	gap: var(--cika-space-2);
}

/* Centred in their tracks so they flank the figure rather than sticking to the
   page edges — the corners belong to the supporting notes. */
.cika-home-hero__stats {
	grid-column: 1;
	grid-row: 2;
	justify-self: center;
	width: min(var(--cika-hero-card-width), 100%);
}

/* Frosted glass, shared by the stat and benefit cards so they read as one set.
   The tint is held at 62% rather than going thinner: these cards sit over the
   acid wordmark, and 62% is what keeps white label text at 7:1 and the acid
   figures at 4.9:1 even where the letterforms are solid behind them. That also
   means the card still works where backdrop-filter is unsupported — the blur is
   an enhancement, not the thing carrying legibility. */
.cika-home-hero__stat,
.cika-home-hero__benefits {
	border: var(--cika-border-thin) solid rgb(255 255 255 / 16%);
	background: rgb(14 18 28 / 62%);
	backdrop-filter: blur(18px) saturate(140%);
	-webkit-backdrop-filter: blur(18px) saturate(140%);
	box-shadow: inset 0 1px 0 rgb(255 255 255 / 14%), 0 10px 30px rgb(5 6 10 / 35%);
}

.cika-home-hero__stat {
	display: grid;
	gap: var(--cika-space-1);
	min-width: 0;
	padding: clamp(var(--cika-space-3), calc(var(--cika-hero-u) * 0.011), var(--cika-space-6));
}

.cika-home-hero__stat strong {
	color: var(--cika-color-accent);
	font-family: var(--cika-font-display);
	font-size: clamp(1.5rem, calc(var(--cika-hero-u) * 0.025), 4.5rem);
	font-weight: 900;
	line-height: 0.9;
	overflow-wrap: anywhere;
}

.cika-home-hero__stat span {
	font-family: var(--cika-font-mono);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.3;
	text-transform: uppercase;
}

.cika-home-hero__benefits {
	grid-column: 3;
	grid-row: 2;
	justify-self: center;
	width: min(var(--cika-hero-card-width), 100%);
	margin: 0;
	padding: clamp(var(--cika-space-3), calc(var(--cika-hero-u) * 0.011), var(--cika-space-6));
	list-style: none;
	font-size: var(--cika-text-sm);
	font-weight: 700;
}

.cika-home-hero__benefits li {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	min-width: 0;
	overflow-wrap: anywhere;
}

.cika-home-hero__benefit-marker {
	color: var(--cika-color-accent);
}

.cika-home-hero__note {
	margin: 0;
	color: var(--cika-color-text);
	font-family: var(--cika-font-mono);
	font-size: clamp(0.68rem, calc(var(--cika-hero-u) * 0.0075), 1.25rem);
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.6;
	text-transform: uppercase;
}

/* The notes go the other way — hard to the outer edges, as in the reference.
   They are the only hero text with no panel behind it, so they are nudged clear
   of the wordmark's lower line: at the corners the acid would otherwise sit
   directly behind them at about 1.6:1. Offset rather than margin, so the cards
   in the row above do not move. */
.cika-home-hero__note--left,
.cika-home-hero__note--right {
	position: relative;
	inset-block-start: calc(var(--cika-hero-stage-height) * 0.04);
	grid-row: 3;
	max-width: 18rem;
}

.cika-home-hero__note--left {
	grid-column: 1;
	justify-self: start;
}

.cika-home-hero__note--right {
	grid-column: 3;
	justify-self: end;
	text-align: end;
}

/* Hero entrance. Layers arrive back-to-front — wordmark, model, cards, then
   copy — so the eye lands on the headline last. Short and shallow on purpose;
   the whole sequence is under a second. */
@media (prefers-reduced-motion: no-preference) {
	.cika-home-hero__type { animation: cika-hero-reveal 620ms var(--cika-ease-standard) both; }
	.cika-home-hero__media { animation: cika-hero-rise 700ms var(--cika-ease-standard) 120ms both; }
	.cika-home-hero__stats { animation: cika-hero-in-start 460ms var(--cika-ease-standard) 380ms both; }
	.cika-home-hero__benefits { animation: cika-hero-in-end 460ms var(--cika-ease-standard) 440ms both; }
	.cika-home-hero__headline { animation: cika-hero-rise 440ms var(--cika-ease-standard) 520ms both; }
	.cika-home-hero__description { animation: cika-hero-rise 440ms var(--cika-ease-standard) 580ms both; }
	.cika-home-hero__actions { animation: cika-hero-rise 440ms var(--cika-ease-standard) 640ms both; }
	.cika-home-hero__note { animation: cika-hero-fade 440ms var(--cika-ease-standard) 720ms both; }
}

/* The top inset stays negative throughout. At 0 it sits exactly on the box edge
   the wordmark's caps start 3px inside, and sub-pixel rounding shaves their
   tops — which reads as the letters being cut off by the header. */
@keyframes cika-hero-reveal {
	from { opacity: 0; clip-path: inset(-30% 0 100% 0); transform: translateY(6%); }
	to { opacity: 1; clip-path: inset(-30% 0 -30% 0); transform: none; }
}

@keyframes cika-hero-rise {
	from { opacity: 0; transform: translateY(1.25rem); }
	to { opacity: 1; transform: none; }
}

@keyframes cika-hero-in-start {
	from { opacity: 0; transform: translateX(-1.25rem); }
	to { opacity: 1; transform: none; }
}

@keyframes cika-hero-in-end {
	from { opacity: 0; transform: translateX(1.25rem); }
	to { opacity: 1; transform: none; }
}

@keyframes cika-hero-fade {
	from { opacity: 0; }
	to { opacity: 1; }
}

/* Homepage New Releases --------------------------------------------------
   Full-width editorial band with a six-card, three-column desktop grid. */
.cika-home-releases {
	overflow: clip;
	border-block-start: var(--cika-border-thin) solid var(--cika-color-border);
	background: var(--cika-color-bg);
}

.cika-home-releases__inner {
	width: 100%;
	padding: clamp(var(--cika-space-10), 6vw, 6rem) var(--cika-gutter);
}

.cika-home-releases__eyebrow {
	display: flex;
	align-items: center;
	gap: var(--cika-space-2);
	margin: 0 0 var(--cika-space-8);
	color: var(--cika-color-accent);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-sm);
	font-weight: 700;
	letter-spacing: var(--cika-tracking-wide);
	line-height: 1;
	text-transform: uppercase;
}

.cika-home-releases__eyebrow span {
	color: var(--cika-color-accent-2);
	font-size: 1.15em;
}

.cika-home-releases__header {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.42fr);
	align-items: end;
	gap: clamp(var(--cika-space-8), 7vw, 8rem);
	margin-block-end: clamp(var(--cika-space-8), 4vw, var(--cika-space-12));
}

.cika-home-releases__title {
	max-width: 100%;
	margin: 0;
	color: var(--cika-color-text);
	font-family: var(--cika-font-display);
	font-size: clamp(3.375rem, 4.5vw, 5.375rem);
	font-weight: 400;
	letter-spacing: var(--cika-tracking-tight);
	line-height: 0.89;
	text-transform: uppercase;
}

.cika-home-releases__intro {
	display: grid;
	justify-items: end;
	gap: var(--cika-space-6);
	text-align: end;
}

.cika-home-releases__intro p {
	max-width: 23rem;
	margin: 0;
	color: var(--cika-color-text-muted);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-md);
	font-weight: 700;
	letter-spacing: 0.03em;
	line-height: 1.55;
	text-transform: uppercase;
}

.cika-home-releases__rail {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(var(--cika-space-3), 1.5vw, var(--cika-space-6));
}

.cika-release-card {
	min-width: 0;
}

.cika-release-card__link {
	display: grid;
	height: 100%;
	grid-template-rows: auto minmax(8rem, auto);
	border: var(--cika-border-thin) solid var(--cika-color-border);
	background: var(--cika-color-surface-subtle);
	color: var(--cika-color-text);
	text-decoration: none;
	transition: border-color var(--cika-duration-fast) var(--cika-ease-standard);
}

.cika-release-card__link:hover,
.cika-release-card__link:focus-visible {
	border-color: var(--cika-color-accent);
	color: var(--cika-color-text);
}

.cika-release-card__link:focus-visible {
	outline: var(--cika-border-medium) solid var(--cika-color-focus);
	outline-offset: 3px;
}

.cika-release-card__media {
	position: relative;
	overflow: hidden;
	border-block-end: var(--cika-border-thin) solid var(--cika-color-border);
	background: var(--cika-color-surface-raised);
}

.cika-release-card__media img {
	display: block;
	width: 100%;
	height: auto;
	transition: transform var(--cika-duration-normal) var(--cika-ease-standard);
}

.cika-release-card__link:hover .cika-release-card__media img,
.cika-release-card__link:focus-visible .cika-release-card__media img {
	transform: scale(1.03);
}

.cika-release-card__badge,
.cika-release-card__class {
	position: absolute;
	z-index: 1;
	inset-block-start: var(--cika-space-3);
	font-family: var(--cika-font-mono);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1;
	text-transform: uppercase;
}

.cika-release-card__badge {
	inset-inline-start: var(--cika-space-3);
	padding: 0.42rem 0.55rem;
	border-radius: var(--cika-radius-sm);
	background: var(--cika-color-accent-2);
	color: var(--cika-color-accent-contrast);
}

.cika-release-card__class {
	inset-inline-end: var(--cika-space-3);
	max-width: 46%;
	padding: 0.3rem 0.4rem;
	background: rgb(5 6 10 / 82%);
	color: var(--cika-color-text);
	text-align: end;
}

.cika-release-card__footer {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-areas:
		"identity identity"
		"metadata price";
	align-items: end;
	gap: var(--cika-space-4);
	padding: clamp(var(--cika-space-4), 1.5vw, var(--cika-space-6));
	background: var(--cika-color-surface-strong);
}

.cika-release-card__identity {
	display: flex;
	grid-area: identity;
	align-items: center;
	gap: var(--cika-space-3);
	min-width: 0;
}

.cika-release-card__identity::after {
	width: 2rem;
	height: var(--cika-border-thin);
	background: var(--cika-color-border-strong);
	content: "";
}

.cika-release-card__identity strong {
	font-family: var(--cika-font-body);
	font-size: var(--cika-text-md);
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.3;
	overflow-wrap: anywhere;
}

.cika-release-card__metadata {
	display: grid;
	grid-area: metadata;
	gap: var(--cika-space-2);
	min-width: 0;
}

.cika-release-card__metadata-label {
	font-family: var(--cika-font-mono);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.cika-release-card__metadata small {
	color: var(--cika-color-text-muted);
	font-size: var(--cika-text-xs);
	letter-spacing: 0.04em;
	line-height: 1.3;
	text-transform: uppercase;
}

.cika-release-card__price {
	grid-area: price;
	align-self: end;
	color: var(--cika-color-text);
	font-family: var(--cika-font-body);
	font-size: clamp(1.75rem, 2.25vw, 3rem);
	font-weight: 400;
	letter-spacing: -0.04em;
	line-height: 0.95;
	white-space: nowrap;
}

.cika-release-card__price del {
	color: var(--cika-color-text-muted);
	font-size: 0.75em;
}

.cika-release-card__price ins {
	text-decoration: none;
}

.cika-home-releases__cta {
	display: inline-flex;
	gap: var(--cika-space-2);
	margin-block-start: var(--cika-space-5);
	color: var(--cika-color-accent);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-sm);
	font-weight: 700;
	letter-spacing: var(--cika-tracking-wide);
	text-decoration: none;
	text-transform: uppercase;
}

.cika-home-releases__cta:hover,
.cika-home-releases__cta:focus-visible {
	color: var(--cika-color-link);
}

@media (max-width: 62rem) {
	.cika-home-releases__header {
		grid-template-columns: minmax(0, 1.3fr) minmax(16rem, 0.7fr);
		gap: var(--cika-space-8);
	}

	.cika-home-releases__rail {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 42rem) {
	.cika-home-releases__inner {
		padding-block: var(--cika-space-12);
	}

	.cika-home-releases__eyebrow {
		margin-block-end: var(--cika-space-6);
	}

	.cika-home-releases__header {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--cika-space-6);
	}

	.cika-home-releases__title {
		font-size: clamp(3rem, 14vw, 4.5rem);
	}

	.cika-home-releases__intro {
		gap: var(--cika-space-5);
	}

	.cika-home-releases__rail {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (prefers-reduced-motion: reduce) {
	.cika-release-card__link,
	.cika-release-card__media img {
		transition: none;
	}

	.cika-release-card__link:hover .cika-release-card__media img,
	.cika-release-card__link:focus-visible .cika-release-card__media img {
		transform: none;
	}
}

/* Homepage Browse by Graffiti Style ------------------------------------ */
.cika-home-styles {
	overflow: clip;
	border-block-start: var(--cika-border-thin) solid var(--cika-color-border);
	background: var(--cika-color-bg);
}

.cika-home-styles__inner {
	display: grid;
	width: 100%;
	grid-template-columns: minmax(16rem, 0.24fr) minmax(0, 0.76fr);
	align-items: end;
	gap: clamp(var(--cika-space-8), 4vw, var(--cika-space-16));
	padding: clamp(var(--cika-space-12), 6vw, 6rem) var(--cika-gutter);
}

.cika-home-styles__intro {
	display: grid;
	align-content: end;
	justify-items: start;
}

.cika-home-styles__eyebrow {
	display: flex;
	align-items: center;
	gap: var(--cika-space-2);
	margin: 0 0 var(--cika-space-8);
	color: var(--cika-color-accent);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-sm);
	font-weight: 700;
	letter-spacing: var(--cika-tracking-wide);
	line-height: 1;
	text-transform: uppercase;
}

.cika-home-styles__eyebrow span {
	color: var(--cika-color-accent-2);
	font-size: 1.15em;
}

.cika-home-styles__title {
	margin: 0;
	color: var(--cika-color-text);
	font-family: var(--cika-font-display);
	font-size: clamp(3.75rem, 5vw, 6rem);
	font-weight: 400;
	letter-spacing: var(--cika-tracking-tight);
	line-height: 0.87;
	text-transform: uppercase;
}

.cika-home-styles__description {
	max-width: 25rem;
	margin: var(--cika-space-8) 0 0;
	color: var(--cika-color-text-muted);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-sm);
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1.55;
	text-transform: uppercase;
}

.cika-home-styles__cta {
	display: inline-flex;
	gap: var(--cika-space-2);
	margin-block-start: var(--cika-space-8);
	color: var(--cika-color-accent);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-sm);
	font-weight: 700;
	letter-spacing: var(--cika-tracking-wide);
	text-decoration: none;
	text-transform: uppercase;
}

.cika-home-styles__cta:hover,
.cika-home-styles__cta:focus-visible {
	color: var(--cika-color-link);
}

.cika-home-styles__rail {
	display: flex;
	gap: clamp(var(--cika-space-3), 1.2vw, var(--cika-space-5));
	min-width: 0;
	padding-block: var(--cika-space-1) var(--cika-space-5);
	overflow-x: auto;
	overflow-y: hidden;
	overscroll-behavior-inline: contain;
	scroll-snap-type: inline mandatory;
	scrollbar-color: var(--cika-color-accent) var(--cika-color-surface-raised);
	scrollbar-width: thin;
	-webkit-overflow-scrolling: touch;
}

.cika-style-card {
	flex: 1 0 clamp(10rem, 9vw, 12rem);
	min-width: 0;
	scroll-snap-align: start;
}

.cika-style-card__link {
	display: grid;
	height: 100%;
	grid-template-rows: minmax(15rem, 1fr) auto;
	border: var(--cika-border-thin) solid var(--cika-color-border);
	background: var(--cika-color-surface-subtle);
	color: var(--cika-color-text);
	text-decoration: none;
	transition: border-color var(--cika-duration-fast) var(--cika-ease-standard);
}

.cika-style-card__link:hover,
.cika-style-card__link:focus-visible {
	border-color: var(--cika-color-accent);
	color: var(--cika-color-text);
}

.cika-style-card__link:focus-visible {
	outline: var(--cika-border-medium) solid var(--cika-color-focus);
	outline-offset: 3px;
}

.cika-style-card__visual {
	display: grid;
	min-height: 15rem;
	place-items: center;
	overflow: hidden;
	border-block-end: var(--cika-border-thin) solid var(--cika-color-border);
	background: linear-gradient(145deg, var(--cika-color-surface-raised), var(--cika-color-surface-subtle));
}

.cika-style-card__visual img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--cika-duration-normal) var(--cika-ease-standard);
}

.cika-style-card__specimen {
	display: block;
	max-width: 92%;
	color: var(--cika-color-text);
	font-family: var(--cika-font-display);
	font-size: clamp(1.5rem, 1.7vw, 2.5rem);
	letter-spacing: -0.04em;
	line-height: 0.86;
	text-align: center;
	text-transform: uppercase;
	transition: color var(--cika-duration-fast) var(--cika-ease-standard), transform var(--cika-duration-normal) var(--cika-ease-standard);
}

.cika-style-card--bubble .cika-style-card__specimen { color: var(--cika-color-accent-2); letter-spacing: -0.08em; transform: scaleX(1.08); }
.cika-style-card--tag .cika-style-card__specimen { color: var(--cika-color-link); font-family: var(--cika-font-body); font-style: italic; font-weight: 800; transform: rotate(-7deg); }
.cika-style-card--drip .cika-style-card__specimen { color: var(--cika-color-accent-2); text-shadow: 0 .3em 0 rgb(241 3 143 / 18%); transform: scaleY(1.16); }
.cika-style-card--monoline .cika-style-card__specimen { color: transparent; -webkit-text-stroke: 1px var(--cika-color-link); font-size: clamp(1.25rem, 1.25vw, 1.75rem); letter-spacing: 0.02em; }
.cika-style-card--bold .cika-style-card__specimen { color: var(--cika-color-accent); font-size: clamp(2.2rem, 3vw, 3.5rem); transform: scaleX(1.08); }
.cika-style-card--wildstyle .cika-style-card__specimen { color: var(--cika-color-accent-2); font-size: clamp(1.25rem, 1.25vw, 1.75rem); letter-spacing: -0.12em; transform: skew(-9deg) rotate(-3deg); }

.cika-style-card__link:hover .cika-style-card__visual img,
.cika-style-card__link:focus-visible .cika-style-card__visual img {
	transform: scale(1.035);
}

.cika-style-card__link:hover .cika-style-card__specimen,
.cika-style-card__link:focus-visible .cika-style-card__specimen {
	color: var(--cika-color-accent);
}

.cika-style-card__footer {
	display: grid;
	gap: var(--cika-space-4);
	padding: var(--cika-space-4);
}

.cika-style-card__footer > strong {
	font-size: var(--cika-text-md);
	font-weight: 800;
	line-height: 1.1;
	text-transform: uppercase;
}

.cika-style-card__footer > span {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--cika-space-3);
}

.cika-style-card__footer small {
	color: var(--cika-color-text-muted);
	font-family: var(--cika-font-mono);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.cika-style-card__arrow {
	color: var(--cika-color-accent);
	font-size: 1.25rem;
	transition: transform var(--cika-duration-fast) var(--cika-ease-standard);
}

.cika-style-card__link:hover .cika-style-card__arrow,
.cika-style-card__link:focus-visible .cika-style-card__arrow {
	transform: translate(0.12rem, -0.12rem);
}

@media (max-width: 62rem) {
	.cika-home-styles__inner {
		grid-template-columns: minmax(0, 1fr);
		align-items: start;
		gap: var(--cika-space-8);
	}

	.cika-style-card { flex-basis: clamp(11rem, 24vw, 14rem); }
}

@media (max-width: 42rem) {
	.cika-home-styles__inner {
		grid-template-columns: minmax(0, 1fr);
		align-items: start;
		gap: var(--cika-space-8);
		padding-block: var(--cika-space-12);
	}

	.cika-home-styles__eyebrow { margin-block-end: var(--cika-space-6); }
	.cika-home-styles__title { font-size: clamp(3rem, 14vw, 4.5rem); }
	.cika-home-styles__description { margin-block-start: var(--cika-space-6); }
	.cika-style-card { flex-basis: min(78vw, 18rem); }
}

@media (prefers-reduced-motion: reduce) {
	.cika-style-card__link,
	.cika-style-card__visual img,
	.cika-style-card__specimen,
	.cika-style-card__arrow { transition: none; }
	.cika-style-card__link:hover .cika-style-card__visual img,
	.cika-style-card__link:focus-visible .cika-style-card__visual img { transform: none; }
}

/* Homepage Featured Collections ----------------------------------------- */
.cika-home-collections {
	position: relative;
	overflow: hidden;
	padding-block: clamp(var(--cika-space-12), 7vw, 7rem);
	border-block-start: var(--cika-border-thin) solid var(--cika-color-border);
	background:
		radial-gradient(circle at 72% 14%, rgb(191 231 4 / 6%), transparent 26rem),
		var(--cika-color-bg);
}

.cika-home-collections__header {
	display: grid;
	grid-template-columns: minmax(24rem, 1.3fr) minmax(16rem, 0.62fr) auto;
	align-items: end;
	gap: clamp(var(--cika-space-6), 4vw, var(--cika-space-16));
	padding: 0 var(--cika-gutter) clamp(var(--cika-space-8), 4vw, var(--cika-space-12));
}

.cika-home-collections__eyebrow,
.cika-home-about__eyebrow {
	display: flex;
	align-items: center;
	gap: var(--cika-space-2);
	margin: 0 0 var(--cika-space-8);
	color: var(--cika-color-accent);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-sm);
	font-weight: 700;
	letter-spacing: var(--cika-tracking-wide);
	line-height: 1;
	text-transform: uppercase;
}

.cika-home-collections__eyebrow span,
.cika-home-about__eyebrow span {
	color: var(--cika-color-accent-2);
	font-size: 1.15em;
}

.cika-home-collections__title,
.cika-home-about__title {
	margin: 0;
	color: var(--cika-color-text);
	font-family: var(--cika-font-display);
	font-size: clamp(3.375rem, 4.5vw, 5.375rem);
	font-weight: 400;
	letter-spacing: var(--cika-tracking-tight);
	line-height: 0.89;
	text-transform: uppercase;
}

.cika-home-collections__description {
	max-width: 23rem;
	margin: 0;
	color: var(--cika-color-text-muted);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-md);
	font-weight: 700;
	letter-spacing: 0.03em;
	line-height: 1.55;
	text-transform: uppercase;
}

.cika-home-collections__cta,
.cika-home-about__cta,
.cika-collection-banner__link {
	display: inline-flex;
	align-items: center;
	gap: var(--cika-space-3);
	color: var(--cika-color-accent);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-sm);
	font-weight: 700;
	letter-spacing: var(--cika-tracking-wide);
	text-decoration-color: var(--cika-color-accent);
	text-decoration-thickness: 0.16rem;
	text-underline-offset: 0.45rem;
	text-transform: uppercase;
}

.cika-home-collections__cta {
	justify-self: end;
	white-space: nowrap;
}

.cika-home-collections__cta:hover,
.cika-home-about__cta:hover,
.cika-collection-banner__link:hover {
	color: var(--cika-color-link);
	text-decoration-color: var(--cika-color-link);
}

.cika-home-collections__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(var(--cika-space-3), 1vw, var(--cika-space-5));
	padding-inline: var(--cika-gutter);
}

.cika-collection-banner {
	position: relative;
	display: grid;
	min-width: 0;
	min-height: clamp(23rem, 29vw, 35rem);
	overflow: hidden;
	border: var(--cika-border-thin) solid var(--cika-color-border-strong);
	background:
		linear-gradient(135deg, var(--cika-color-surface-raised), var(--cika-color-bg));
	isolation: isolate;
}

.cika-collection-banner__artwork,
.cika-collection-banner__shade {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.cika-collection-banner__artwork {
	z-index: -2;
	object-fit: cover;
	transition: filter var(--cika-duration-normal) var(--cika-ease-standard), transform var(--cika-duration-slow) var(--cika-ease-standard);
}

.cika-collection-banner__shade {
	z-index: -1;
	background:
		linear-gradient(180deg, rgb(5 6 10 / 5%) 28%, rgb(5 6 10 / 92%) 100%),
		linear-gradient(90deg, rgb(5 6 10 / 55%), transparent 58%);
}

.cika-collection-banner:hover .cika-collection-banner__artwork {
	filter: saturate(1.08) contrast(1.04);
	transform: scale(1.025);
}

.cika-collection-banner__count {
	position: absolute;
	top: var(--cika-space-5);
	right: var(--cika-space-5);
	margin: 0;
	padding: var(--cika-space-2) var(--cika-space-3);
	background: var(--cika-color-accent);
	color: var(--cika-color-accent-contrast);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-sm);
	font-weight: 700;
	letter-spacing: var(--cika-tracking-wide);
	text-transform: uppercase;
}

.cika-collection-banner:nth-child(2) .cika-collection-banner__count {
	background: var(--cika-color-text);
}

.cika-collection-banner:nth-child(3) .cika-collection-banner__count {
	background: var(--cika-color-link);
}

.cika-collection-banner:nth-child(4) .cika-collection-banner__count {
	background: var(--cika-color-accent-2);
}

.cika-collection-banner__content {
	align-self: end;
	display: grid;
	justify-items: start;
	max-width: 38rem;
	gap: var(--cika-space-3);
	padding: clamp(var(--cika-space-5), 3vw, var(--cika-space-10));
}

.cika-collection-banner__title {
	margin: 0;
	font-family: var(--cika-font-display);
	font-size: clamp(2.5rem, 4vw, 5.5rem);
	font-weight: 400;
	letter-spacing: var(--cika-tracking-tight);
	line-height: 0.89;
	text-transform: uppercase;
}

.cika-collection-banner__content p {
	max-width: 34rem;
	margin: 0;
	color: var(--cika-color-text-muted);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-sm);
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1.55;
	text-transform: uppercase;
}

/* Homepage About / Manifesto -------------------------------------------- */
.cika-home-about {
	display: grid;
	grid-template-columns: minmax(0, 0.45fr) minmax(0, 0.55fr);
	min-height: clamp(36rem, 42vw, 46rem);
	overflow: hidden;
	border-block: var(--cika-border-medium) solid var(--cika-color-accent);
	background: var(--cika-color-bg);
}

.cika-home-about__copy {
	position: relative;
	z-index: 2;
	display: grid;
	align-content: center;
	justify-items: start;
	min-width: 0;
	padding: clamp(var(--cika-space-8), 3vw, var(--cika-space-12)) clamp(var(--cika-space-6), 4vw, 5rem) clamp(var(--cika-space-8), 3vw, var(--cika-space-12)) var(--cika-gutter);
}

.cika-home-about__story {
	max-width: 34rem;
	margin: var(--cika-space-6) 0 0;
	color: var(--cika-color-text-muted);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-md);
	font-weight: 700;
	letter-spacing: 0.03em;
	line-height: 1.55;
	text-transform: uppercase;
}

.cika-home-about__cta {
	margin-block-start: var(--cika-space-6);
}

.cika-home-about__support {
	display: flex;
	align-items: center;
	gap: var(--cika-space-5);
	margin: clamp(var(--cika-space-6), 2vw, var(--cika-space-8)) 0 0;
	color: var(--cika-color-text);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 700;
	letter-spacing: var(--cika-tracking-wide);
	line-height: 1.55;
	text-transform: uppercase;
}

.cika-home-about__support > span:first-child {
	color: var(--cika-color-accent-2);
	font-size: 2.75rem;
}

.cika-home-about__visual {
	position: relative;
	min-width: 0;
	min-height: 100%;
	background: var(--cika-color-bg);
}

.cika-home-about__visual::before {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(90deg, var(--cika-color-bg), transparent 7%);
	content: "";
	pointer-events: none;
}

.cika-home-about__image {
	position: absolute;
	inset: 0;
	width: 100%;
	max-width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.cika-home-about__features {
	position: absolute;
	left: clamp(-5rem, -4vw, -2rem);
	bottom: clamp(var(--cika-space-12), 9vw, 9rem);
	z-index: 2;
	display: grid;
	width: min(30rem, 72%);
	gap: var(--cika-space-3);
	margin: 0;
	padding: 0;
	list-style: none;
}

.cika-home-about__features li {
	margin: 0;
}

.cika-home-about__features li > a,
.cika-home-about__feature {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: var(--cika-space-4);
	min-height: 4.25rem;
	padding: var(--cika-space-3) var(--cika-space-5);
	border: var(--cika-border-thin) solid var(--cika-color-text);
	background: rgb(14 18 28 / 94%);
	box-shadow: 3px 3px 0 rgb(255 255 255 / 24%);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-md);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.cika-home-about__features li > a {
	color: inherit;
	text-decoration: none;
	transition: border-color var(--cika-duration-fast) var(--cika-ease-standard), transform var(--cika-duration-fast) var(--cika-ease-standard);
}

.cika-home-about__features li > a:hover,
.cika-home-about__features li > a:focus-visible {
	border-color: var(--cika-color-accent);
	transform: translateX(var(--cika-space-2));
}

.cika-home-about__features li > :is(a, .cika-home-about__feature) > span:first-child {
	display: grid;
	width: 2rem;
	height: 2rem;
	place-items: center;
	background: var(--cika-color-accent-2);
	color: var(--cika-color-accent-contrast);
}

.cika-home-about__features li:nth-child(2) > :is(a, .cika-home-about__feature) > span:first-child {
	background: var(--cika-color-link);
}

.cika-home-about__features li:nth-child(3) > :is(a, .cika-home-about__feature) > span:first-child {
	background: var(--cika-color-accent);
}

.cika-home-about__features li > :is(a, .cika-home-about__feature) > span:last-child {
	color: var(--cika-color-accent);
	font-size: 1.35rem;
}

/* Homepage Latest Stories ---------------------------------------------- */
.cika-home-blog {
	padding: clamp(var(--cika-space-12), 6vw, 6rem) var(--cika-gutter);
	border-block-end: var(--cika-border-thin) solid var(--cika-color-border);
	background:
		radial-gradient(circle at 88% 12%, rgb(255 0 128 / 7%), transparent 24rem),
		var(--cika-color-void);
}

.cika-home-blog__header {
	display: grid;
	grid-template-columns: minmax(22rem, 1.15fr) minmax(16rem, 0.65fr) auto;
	align-items: end;
	gap: clamp(var(--cika-space-6), 4vw, var(--cika-space-16));
	margin-block-end: clamp(var(--cika-space-8), 4vw, var(--cika-space-12));
}

.cika-home-blog__eyebrow {
	display: flex;
	align-items: center;
	gap: var(--cika-space-2);
	margin: 0 0 var(--cika-space-6);
	color: var(--cika-color-accent);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-sm);
	font-weight: 700;
	letter-spacing: var(--cika-tracking-wide);
	text-transform: uppercase;
}

.cika-home-blog__eyebrow span {
	color: var(--cika-color-accent-2);
}

.cika-home-blog__title {
	margin: 0;
	font-family: var(--cika-font-display);
	font-size: clamp(3.25rem, 4.5vw, 5.25rem);
	font-weight: 400;
	letter-spacing: var(--cika-tracking-tight);
	line-height: 0.89;
	text-transform: uppercase;
}

.cika-home-blog__description {
	max-width: 25rem;
	margin: 0;
	color: var(--cika-color-text-muted);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-md);
	font-weight: 700;
	letter-spacing: 0.03em;
	line-height: 1.55;
	text-transform: uppercase;
}

.cika-home-blog__cta {
	justify-self: end;
	color: var(--cika-color-accent);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-sm);
	font-weight: 700;
	letter-spacing: var(--cika-tracking-wide);
	text-decoration-color: currentColor;
	text-decoration-thickness: 0.16rem;
	text-underline-offset: 0.45rem;
	text-transform: uppercase;
	white-space: nowrap;
}

.cika-home-blog__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(var(--cika-space-4), 2vw, var(--cika-space-8));
}

.cika-home-blog-card {
	min-width: 0;
	border: var(--cika-border-thin) solid var(--cika-color-border-strong);
	background: var(--cika-color-surface-subtle);
	transition: border-color var(--cika-duration-fast) var(--cika-ease-standard), transform var(--cika-duration-fast) var(--cika-ease-standard);
}

.cika-home-blog-card > a {
	display: flex;
	height: 100%;
	flex-direction: column;
	color: inherit;
	text-decoration: none;
}

.cika-home-blog-card__media {
	display: grid;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	place-items: center;
	border-block-end: var(--cika-border-thin) solid var(--cika-color-border);
	background: var(--cika-color-bg);
}

.cika-home-blog-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: filter var(--cika-duration-normal) var(--cika-ease-standard), transform var(--cika-duration-slow) var(--cika-ease-standard);
}

.cika-home-blog-card__media > span {
	color: rgb(255 255 255 / 12%);
	font-family: var(--cika-font-display);
	font-size: clamp(5rem, 9vw, 9rem);
	line-height: 1;
}

.cika-home-blog-card__content {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: clamp(var(--cika-space-5), 2vw, var(--cika-space-8));
}

.cika-home-blog-card__category {
	margin: 0 0 var(--cika-space-3);
	color: var(--cika-color-accent-2);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 700;
	letter-spacing: var(--cika-tracking-wide);
	text-transform: uppercase;
}

.cika-home-blog-card h3 {
	margin: 0 0 var(--cika-space-4);
	font-family: var(--cika-font-display);
	font-size: clamp(1.75rem, 2.4vw, 2.75rem);
	font-weight: 400;
	letter-spacing: var(--cika-tracking-tight);
	line-height: 1;
	overflow-wrap: anywhere;
	text-transform: uppercase;
}

.cika-home-blog-card__excerpt {
	margin: 0 0 var(--cika-space-6);
	color: var(--cika-color-text-muted);
	font-size: var(--cika-text-sm);
	line-height: 1.55;
}

.cika-home-blog-card__meta {
	display: flex;
	align-items: center;
	gap: var(--cika-space-4);
	margin-block-start: auto;
	color: var(--cika-color-text-muted);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.cika-home-blog-card__meta span:last-child {
	margin-inline-start: auto;
	color: var(--cika-color-accent);
	font-size: 1.25rem;
}

.cika-home-blog-card:hover,
.cika-home-blog-card:focus-within {
	border-color: var(--cika-color-accent);
	transform: translateY(calc(-1 * var(--cika-space-2)));
}

.cika-home-blog-card:hover .cika-home-blog-card__media img,
.cika-home-blog-card:focus-within .cika-home-blog-card__media img {
	filter: saturate(1.08) contrast(1.04);
	transform: scale(1.025);
}

.cika-home-blog-card > a:focus-visible,
.cika-home-blog__cta:focus-visible {
	outline: var(--cika-border-medium) solid var(--cika-color-accent);
	outline-offset: var(--cika-space-1);
}

@media (max-width: 62rem) {
	.cika-home-collections__header {
		grid-template-columns: minmax(0, 1.1fr) minmax(14rem, 0.65fr);
	}

	.cika-home-collections__cta {
		grid-column: 2;
		justify-self: start;
	}

	.cika-home-about {
		grid-template-columns: minmax(0, 0.45fr) minmax(0, 0.55fr);
		min-height: 36rem;
	}

	.cika-home-about__copy {
		padding-inline: var(--cika-gutter);
	}

	.cika-home-about__story {
		font-size: var(--cika-text-md);
	}

	.cika-home-about__features {
		left: var(--cika-space-4);
		width: calc(100% - (2 * var(--cika-space-8)));
	}

	.cika-home-blog__header {
		grid-template-columns: minmax(0, 1.1fr) minmax(14rem, 0.65fr);
	}

	.cika-home-blog__cta {
		grid-column: 2;
		justify-self: start;
	}
}

@media (max-width: 42rem) {
	.cika-home-collections__header {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--cika-space-6);
	}

	.cika-home-collections__title {
		font-size: clamp(3rem, 14vw, 4.5rem);
	}

	.cika-home-collections__description {
		font-size: var(--cika-text-md);
	}

	.cika-home-collections__cta {
		grid-column: 1;
	}

	.cika-home-collections__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.cika-collection-banner {
		min-height: clamp(23rem, 112vw, 31rem);
	}

	.cika-collection-banner__title {
		font-size: clamp(2.75rem, 13vw, 4.5rem);
	}

	.cika-home-about {
		grid-template-columns: minmax(0, 1fr);
		min-height: 0;
	}

	.cika-home-about__copy {
		padding-block: var(--cika-space-10);
	}

	.cika-home-about__title {
		font-size: clamp(3rem, 14vw, 4.5rem);
	}

	.cika-home-about__visual {
		min-height: clamp(25rem, 108vw, 34rem);
	}

	.cika-home-about__image {
		width: 100%;
		max-width: 100%;
		margin-inline-start: 0;
		object-position: center;
	}

	.cika-home-about__visual::before {
		background: linear-gradient(180deg, var(--cika-color-bg), transparent 18%);
	}

	.cika-home-about__features {
		left: var(--cika-space-4);
		bottom: var(--cika-space-6);
		width: calc(100% - (2 * var(--cika-space-4)));
	}

	.cika-home-about__features li > a,
	.cika-home-about__feature {
		min-height: 3.75rem;
		padding-inline: var(--cika-space-4);
		font-size: var(--cika-text-sm);
	}

	.cika-home-blog {
		padding-block: var(--cika-space-16);
	}

	.cika-home-blog__header,
	.cika-home-blog__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.cika-home-blog__header {
		gap: var(--cika-space-6);
	}

	.cika-home-blog__title {
		font-size: clamp(3rem, 14vw, 4.5rem);
	}

	.cika-home-blog__cta {
		grid-column: 1;
	}
}

@media (prefers-reduced-motion: reduce) {
	.cika-collection-banner__artwork { transition: none; }
	.cika-collection-banner:hover .cika-collection-banner__artwork { transform: none; }
	.cika-home-about__features li > a { transition: none; }
	.cika-home-about__features li > a:hover,
	.cika-home-about__features li > a:focus-visible { transform: none; }
	.cika-home-blog-card,
	.cika-home-blog-card__media img { transition: none; }
	.cika-home-blog-card:hover,
	.cika-home-blog-card:focus-within,
	.cika-home-blog-card:hover .cika-home-blog-card__media img,
	.cika-home-blog-card:focus-within .cika-home-blog-card__media img { transform: none; }
}

/* The hero owns the top of the page, so the header's rule only appears once
   the visitor has scrolled off it. */
.home .cika-site-header:not([data-cika-scrolled="true"]) {
	border-bottom-color: transparent;
}

/* Scaling bounds only — the composition itself does not change here. */
@media (max-width: 74rem) {

	.cika-home-hero__headline {
		font-size: clamp(1.75rem, 2.7vw, 2.75rem);
	}
}

/* Narrower than this the artwork keeps one shared layer while the copy takes
   its own band. The wordmark is positioned behind the model just as it is in
   the desktop composition; cards run two-up below. */
@media (max-width: 62rem) {
	.cika-home-hero {
		display: block;
		min-height: 0;
		padding-block-end: clamp(var(--cika-space-8), 6vw, var(--cika-space-12));
	}

	.cika-home-hero > * {
		grid-area: auto;
	}

	.cika-home-hero__type {
		display: block;
		position: absolute;
		z-index: 0;
		inset-block-start: var(--cika-space-6);
		inset-inline: 0;
		width: 100%;
		margin-block-start: 0;
	}

	.cika-home-hero__media {
		display: block;
		position: relative;
		z-index: 1;
		height: clamp(16rem, 46vw, 26rem);
		margin-block-start: 0;
	}

	.cika-home-hero__stage {
		height: auto;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-rows: none;
		align-items: stretch;
		gap: var(--cika-space-5) var(--cika-space-4);
		padding-block: 0;
	}

	.cika-home-hero__content,
	.cika-home-hero__stats,
	.cika-home-hero__benefits {
		grid-column: 1 / -1;
		grid-row: auto;
		justify-self: stretch;
		width: 100%;
	}

	/* The lift only means something in the overlay composition; in the stack it
	   would just open a hole between the copy and the cards. */
	.cika-home-hero__content {
		margin-block-end: 0;
	}

	.cika-home-hero__stats,
	.cika-home-hero__benefits {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.cika-home-hero__headline {
		max-width: 20ch;
		font-size: clamp(2.25rem, 6.5vw, 3.75rem);
	}

	/* Below the stage model the copy is on plain background, so it is sized
	   from the viewport again rather than from a stage that no longer applies. */
	.cika-home-hero__description {
		font-size: var(--cika-text-md);
	}

	.cika-home-hero__note {
		font-size: var(--cika-text-sm);
	}

	/* Kept on opposite edges rather than stacked, so the foot of the hero still
	   reads as spread rather than as a generic centred column. */
	/* Stacked: nothing sits behind the notes, so the desktop offset is dropped. */
	.cika-home-hero__note--left,
	.cika-home-hero__note--right {
		position: static;
		inset-block-start: auto;
		grid-row: auto;
	}

	.cika-home-hero__note--left {
		grid-column: 1;
	}

	.cika-home-hero__note--right {
		grid-column: 2;
		justify-self: end;
		text-align: end;
	}

	/* Stacked cards are full width, so sliding them in from the sides would
	   push them past the viewport edge for the length of the animation. */
	@media (prefers-reduced-motion: no-preference) {
		.cika-home-hero__stats { animation-name: cika-hero-rise; }
		.cika-home-hero__benefits { animation-name: cika-hero-rise; }
	}
}

@media (max-width: 42rem) {
	.cika-home-hero__type {
		inset-block-start: var(--cika-space-4);
	}

	/* Pull the mobile copy band into the lower edge of the artwork so the
	   headline sits over the model, matching the layered desktop treatment. */
	.cika-home-hero__content {
		position: relative;
		z-index: 4;
		margin-block-start: calc(-1 * clamp(3.25rem, 14vw, 4.5rem));
	}

	.cika-home-hero__actions {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		width: 100%;
	}

	.cika-home-hero__actions .cika-button {
		min-width: 0;
		padding-inline: var(--cika-space-3);
	}
}

@media (max-width: 23rem) {
	.cika-home-hero__actions,
	.cika-home-hero__stats,
	.cika-home-hero__benefits {
		grid-template-columns: minmax(0, 1fr);
	}

	.cika-home-hero__note--left,
	.cika-home-hero__note--right {
		grid-column: 1 / -1;
		justify-self: start;
		text-align: start;
	}
}

/* One header, two states. The compact state is the default so that every page
   other than the homepage, every mobile viewport, and the no-JS case all get a
   working solid bar; the hero state is opt-in and only ever applied by script. */
.cika-site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	width: 100%;
	min-height: var(--cika-header-height);
	border-bottom: var(--cika-border-thin) solid var(--cika-color-border);
	background: var(--cika-color-bg);
	color: var(--cika-color-text);
	transition: box-shadow var(--cika-duration-fast) var(--cika-ease-standard), border-color var(--cika-duration-fast) var(--cika-ease-standard);
}

.admin-bar .cika-site-header {
	top: var(--wp-admin--admin-bar--height, 32px);
}

.cika-site-header[data-cika-scrolled="true"] {
	border-bottom-color: var(--cika-color-accent);
}

/* Hero state: desktop homepage, before the hero has been scrolled past. Same
   single slim row as the compact bar — only the skin changes. It floats over
   the artwork with no background and no rule, so the wordmark runs up behind it
   instead of starting below a reserved strip. */
@media (min-width: 62.01rem) {
	.cika-site-header[data-cika-header-mode="hero"] {
		position: fixed;
		inset-inline: 0;
		top: 0;
		border-bottom-color: transparent;
		background: transparent;
		box-shadow: none;
	}

	.admin-bar .cika-site-header[data-cika-header-mode="hero"] {
		top: var(--wp-admin--admin-bar--height, 32px);
	}
}

/* Match the solid site-wide bar as soon as the homepage scrolls. */
.cika-site-header[data-cika-header-mode="hero"][data-cika-scrolled="true"] {
	background: var(--cika-color-bg);
	border-bottom-color: var(--cika-color-accent);
}

/* On the homepage the header stays fixed in BOTH states — over the
   hero and past it — and the hero reserves nothing for it in either.
   That is what keeps the handover free of layout shift and the top of the page
   free of an empty strip. Without JS the header stays a normal sticky bar and
   the hero keeps its default sizing. */
@media (min-width: 62.01rem) {
	.cika-has-js .cika-site-header:has(+ .cika-home-hero) {
		position: fixed;
	}

	.cika-has-js .cika-site-header[data-cika-header-mode="hero"]:has(+ .cika-home-hero) {
		position: fixed;
	}

	/* The hero still fills the viewport and the artwork still runs to the top
	   edge, but its contents begin below the floating header so the wordmark is
	   never crowded against the navigation. */
	.cika-has-js .cika-site-header:has(+ .cika-home-hero) + .cika-home-hero {
		min-height: 100svh;
		padding-block-start: var(--cika-header-height);
	}
}

/* Compact state slides down rather than appearing, so the switch reads as one
   movement instead of a jump. */
@media (prefers-reduced-motion: no-preference) {
	.cika-has-js .cika-site-header[data-cika-header-mode="compact"]:not(:has(+ .cika-home-hero)) {
		animation: cika-header-drop var(--cika-duration-normal) var(--cika-ease-standard) both;
	}
}

@keyframes cika-header-drop {
	from { transform: translateY(-100%); }
	to { transform: none; }
}

.cika-site-header__inner {
	position: relative;
	display: grid;
	width: 100%;
	max-width: none;
	padding-inline: var(--cika-gutter);
	grid-template-columns: auto minmax(0, 1fr);
	min-height: var(--cika-header-height);
	align-items: center;
	gap: clamp(var(--cika-space-4), 3vw, var(--cika-space-8));
}

.cika-site-branding {
	position: relative;
	z-index: 1;
	min-width: 0;
}

.cika-site-branding__logo { display: flex; align-items: center; min-height: 44px; }
.cika-site-branding__logo img { display: block; width: clamp(118px, 10vw, 148px); height: auto; }
.cika-site-branding__logo:focus-visible { outline: 2px solid var(--cika-color-accent); outline-offset: 4px; }

.cika-site-branding__name {
	display: inline-block;
	font-family: var(--cika-font-display);
	font-size: clamp(1.55rem, 3vw, 2.35rem);
	font-weight: 900;
	letter-spacing: -0.04em;
	line-height: 1;
	text-decoration: none;
	text-transform: uppercase;
}

.cika-site-branding__name::after {
	display: block;
	width: 34%;
	height: 0.18rem;
	margin-block-start: 0.2rem;
	background: var(--cika-color-accent-2);
	content: "";
	transform: rotate(-2deg);
}

.cika-site-branding .custom-logo {
	width: auto;
	max-height: calc(var(--cika-header-height) - 1.5rem);
}

.cika-header-navigation,
.cika-header-panel,
.cika-header-controls,
.cika-commerce-navigation,
.cika-primary-navigation__list {
	display: flex;
	align-items: center;
	gap: clamp(var(--cika-space-2), 1.5vw, var(--cika-space-5));
}

.cika-header-navigation,
.cika-header-panel {
	min-width: 0;
}

.cika-header-navigation {
	position: static;
	justify-content: flex-end;
}

.cika-header-panel {
	flex: 1 1 auto;
	justify-content: flex-end;
}

.cika-primary-navigation {
	min-width: 0;
	margin-inline: auto;
}

.cika-primary-navigation__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.cika-primary-navigation .cika-primary-navigation__list a {
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-sm);
	font-weight: 700;
}

.cika-primary-navigation a,
.cika-commerce-navigation a {
	position: relative;
	display: inline-flex;
	align-items: center;
	min-height: 2.75rem;
	color: inherit;
	font-family: var(--cika-font-body);
	font-size: var(--cika-text-xs);
	font-weight: 700;
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: 0.075em;
}

.cika-primary-navigation a:hover,
.cika-commerce-navigation a:hover,
.cika-primary-navigation .current-menu-item > a,
.cika-primary-navigation .current-menu-ancestor > a,
.cika-primary-navigation .current_page_item > a {
	color: var(--cika-color-accent-2);
}

/* Without this the nested <ul> renders inline and pushes the header far past
   --cika-header-height, which the homepage hero budgets against. */
.cika-primary-navigation .menu-item-has-children {
	position: relative;
}

.cika-primary-navigation .sub-menu {
	position: absolute;
	top: 100%;
	inset-inline-start: 0;
	z-index: 120;
	display: grid;
	min-width: 12rem;
	margin: 0;
	padding: var(--cika-space-2);
	border: var(--cika-border-medium) solid var(--cika-color-accent);
	background: var(--cika-color-surface);
	box-shadow: var(--cika-shadow-sm);
	list-style: none;
	visibility: hidden;
	opacity: 0;
	transition: opacity var(--cika-duration-fast) var(--cika-ease-standard), visibility var(--cika-duration-fast) var(--cika-ease-standard);
}

.cika-primary-navigation .menu-item-has-children:hover > .sub-menu,
.cika-primary-navigation .menu-item-has-children:focus-within > .sub-menu {
	visibility: visible;
	opacity: 1;
}

.cika-primary-navigation .sub-menu a {
	width: 100%;
	min-height: 2.4rem;
	padding-inline: var(--cika-space-2);
	letter-spacing: 0.05em;
}

.cika-primary-navigation .current-menu-item > a::after,
.cika-primary-navigation .current-menu-ancestor > a::after,
.cika-primary-navigation .current_page_item > a::after {
	position: absolute;
	inset-inline: 0;
	bottom: 0.35rem;
	height: 0.15rem;
	background: var(--cika-color-accent);
	content: "";
}

.cika-header-control {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.55rem;
	padding: 0.55rem 0.75rem;
	border: var(--cika-border-thin) solid currentColor;
	border-radius: 0;
	background: transparent;
	color: var(--cika-color-text);
	font-size: var(--cika-text-xs);
	font-weight: 800;
	letter-spacing: 0.075em;
	text-transform: uppercase;
	transition: background-color var(--cika-duration-fast) var(--cika-ease-standard), color var(--cika-duration-fast) var(--cika-ease-standard);
}

.cika-header-control:hover,
.cika-header-control[aria-expanded="true"] {
	background: var(--cika-color-accent-2);
	color: var(--cika-color-accent-contrast);
}

.cika-menu-toggle {
	display: none;
}

.cika-search-panel {
	position: absolute;
	inset-inline: 0;
	top: calc(100% + var(--cika-border-heavy));
	z-index: 110;
	padding: clamp(var(--cika-space-4), 3vw, var(--cika-space-8));
	border: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	border-top: 0;
	background: var(--cika-color-surface);
	color: var(--cika-color-text-on-paper);
	box-shadow: 0 7px 0 var(--cika-color-border-strong);
}

.cika-search-panel[hidden] {
	display: none;
}

.cika-search-panel__form {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto auto;
	gap: var(--cika-space-3);
}

.cika-search-panel__field {
	min-width: 0;
	border-color: var(--cika-color-border-on-paper);
	background: var(--cika-color-surface);
	color: var(--cika-color-text);
}

.cika-header-search-fallback {
	font-size: var(--cika-text-xs);
	font-weight: 800;
	text-transform: uppercase;
}

.cika-cart-count {
	display: inline-grid;
	min-width: 1.5rem;
	min-height: 1.5rem;
	place-items: center;
	margin-inline-start: var(--cika-space-1);
	border-radius: 99rem;
	background: var(--cika-color-accent-2);
	color: var(--cika-color-accent-contrast);
	font-family: var(--cika-font-mono);
	font-size: 0.75rem;
}

.cika-page-header,
.cika-entry {
	margin-block-end: var(--cika-space-12);
}

.cika-entry + .cika-entry {
	padding-block-start: var(--cika-space-12);
	border-top: var(--cika-border-medium) solid var(--cika-color-border);
}

.cika-entry__title a {
	text-decoration: none;
}

.cika-entry-meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--cika-space-3);
	margin-block-end: var(--cika-space-5);
	color: var(--cika-color-text-muted);
	font-size: 0.875rem;
}

.cika-entry__thumbnail {
	display: block;
	margin-block-end: var(--cika-space-6);
}

.cika-comments {
	margin-block-start: var(--cika-space-12);
	padding-block-start: var(--cika-space-8);
	border-top: var(--cika-border-medium) solid var(--cika-color-border);
}

/* Component primitives: intentionally generic, not storefront layouts. */
.cika-button,
.cika-icon-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--cika-space-2);
	min-height: 2.75rem;
	border: var(--cika-border-medium) solid var(--cika-color-accent);
	border-radius: var(--cika-radius-sm);
	background: var(--cika-color-accent);
	color: var(--cika-color-accent-contrast);
	font-size: var(--cika-text-sm);
	font-weight: 800;
	letter-spacing: 0.045em;
	line-height: 1;
	text-decoration: none;
	text-transform: uppercase;
	transition: background-color var(--cika-duration-fast) var(--cika-ease-standard), border-color var(--cika-duration-fast) var(--cika-ease-standard), color var(--cika-duration-fast) var(--cika-ease-standard), transform var(--cika-duration-fast) var(--cika-ease-standard), box-shadow var(--cika-duration-fast) var(--cika-ease-standard);
}

.cika-button {
	padding: 0.75rem 1.15rem;
}

.cika-button:hover,
.cika-icon-button:hover {
	border-color: var(--cika-color-accent-hover);
	background: var(--cika-color-accent-hover);
	color: var(--cika-color-accent-contrast);
	transform: translate(-2px, -2px);
	box-shadow: 3px 3px 0 var(--cika-color-accent-2);
}

.cika-button--secondary {
	border-color: var(--cika-color-accent-2);
	background: var(--cika-color-accent-2);
	color: var(--cika-color-accent-contrast);
}

.cika-button--secondary:hover {
	border-color: var(--cika-color-accent-2-hover);
	background: var(--cika-color-accent-2-hover);
	color: var(--cika-color-accent-contrast);
}

.cika-button--outline,
.cika-button--ghost {
	border-color: currentColor;
	background: transparent;
	color: inherit;
}

.cika-button--ghost {
	border-color: transparent;
}

.cika-button:disabled,
.cika-button[aria-disabled="true"],
.cika-icon-button:disabled {
	cursor: not-allowed;
	opacity: 0.5;
	transform: none;
	box-shadow: none;
}

.cika-icon-button {
	inline-size: 2.75rem;
	padding: 0;
}

.cika-link {
	font-weight: 800;
	text-decoration-color: var(--cika-color-accent-2);
}

.cika-field {
	display: grid;
	gap: var(--cika-space-2);
}

.cika-field__label,
.cika-form-label {
	font-size: var(--cika-text-sm);
	font-weight: 800;
	letter-spacing: 0.045em;
}

.cika-field__help {
	color: var(--cika-color-text-muted);
	font-size: var(--cika-text-sm);
}

.cika-field--invalid :where(input, select, textarea),
:where(input, select, textarea)[aria-invalid="true"] {
	border-color: var(--cika-color-danger);
}

.cika-field__error {
	color: var(--cika-color-danger);
	font-size: var(--cika-text-sm);
	font-weight: 700;
}

.cika-tag,
.cika-badge {
	display: inline-flex;
	align-items: center;
	width: fit-content;
	border: var(--cika-border-thin) solid currentColor;
	border-radius: 99rem;
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1;
	text-transform: uppercase;
}

.cika-tag {
	padding: 0.4rem 0.65rem;
}

.cika-badge {
	padding: 0.35rem 0.55rem;
	background: var(--cika-color-accent-2);
	color: var(--cika-color-accent-contrast);
}

.cika-badge--campaign {
	border-color: var(--cika-color-accent);
	background: var(--cika-color-accent);
	color: var(--cika-color-accent-contrast);
}

.cika-card {
	min-width: 0;
	padding: clamp(var(--cika-space-5), 3vw, var(--cika-space-8));
	border: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	border-radius: var(--cika-radius-md);
	background: var(--cika-color-surface);
	color: var(--cika-color-text-on-paper);
	box-shadow: var(--cika-shadow-md);
}

.cika-card--ink {
	border-color: var(--cika-color-border);
	background: var(--cika-color-bg);
	color: var(--cika-color-text);
	box-shadow: var(--cika-shadow-red);
}

.cika-card--campaign {
	border-color: var(--cika-color-border-on-paper);
	background: var(--cika-color-accent);
	color: var(--cika-color-accent-contrast);
}

.cika-card--mustard {
	border-color: var(--cika-color-border-on-paper);
	background: var(--cika-color-accent-2);
	color: var(--cika-color-accent-contrast);
}

.cika-surface {
	background: var(--cika-color-surface);
	color: var(--cika-color-text-on-paper);
}

.cika-surface--ink,
.cika-surface--campaign,
.cika-surface--mustard {
	position: relative;
	isolation: isolate;
}

.cika-surface--ink {
	background-color: var(--cika-color-bg);
	background-image: radial-gradient(rgb(255 255 255 / 6%) 0.7px, transparent 0.7px);
	background-size: 5px 5px;
	color: var(--cika-color-text);
}

.cika-surface--campaign {
	background: var(--cika-color-accent);
	color: var(--cika-color-accent-contrast);
}

.cika-surface--mustard {
	background: var(--cika-color-accent-2);
	color: var(--cika-color-accent-contrast);
}

.cika-section-heading {
	display: grid;
	max-width: 70rem;
	gap: var(--cika-space-3);
	margin-block-end: clamp(var(--cika-space-8), 6vw, var(--cika-space-16));
}

.cika-section-heading__eyebrow {
	width: fit-content;
	margin: 0;
	padding: 0.35rem 0.55rem;
	background: var(--cika-color-accent-2);
	color: var(--cika-color-accent-contrast);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 800;
	letter-spacing: var(--cika-tracking-wide);
	text-transform: uppercase;
}

.cika-section-heading__title {
	max-width: 15ch;
	margin: 0;
	font-size: var(--cika-text-display);
	line-height: var(--cika-leading-tight);
	text-transform: uppercase;
}

.cika-section-heading__description {
	max-width: 55ch;
	margin: 0;
	font-size: var(--cika-text-lg);
}

.cika-notice {
	display: grid;
	grid-template-columns: 0.4rem minmax(0, 1fr);
	gap: var(--cika-space-4);
	padding: var(--cika-space-4);
	border: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	background: var(--cika-color-surface);
	color: var(--cika-color-text-on-paper);
}

.cika-notice::before {
	content: "";
	background: var(--cika-color-border-strong);
}

.cika-notice--success::before { background: var(--cika-color-success); }
.cika-notice--warning::before { background: var(--cika-color-warning); }
.cika-notice--danger::before { background: var(--cika-color-danger); }

/* WordPress-authored content remains readable without imposing page composition. */
.cika-prose > * + * {
	margin-block-start: 1.25em;
}

.cika-prose :where(blockquote, .wp-block-quote) {
	margin-inline: 0;
	padding: var(--cika-space-5) var(--cika-space-6);
	border-inline-start: var(--cika-border-heavy) solid var(--cika-color-accent);
	background: var(--cika-color-surface-subtle);
	font-size: var(--cika-text-lg);
}

.cika-prose :where(code, kbd) {
	padding: 0.12em 0.3em;
	background: var(--cika-color-surface-strong);
	color: var(--cika-color-text);
}

.cika-prose pre {
	padding: var(--cika-space-5);
	border: var(--cika-border-thin) solid var(--cika-color-border);
	background: var(--cika-color-surface-strong);
	color: var(--cika-color-text);
}

.cika-prose figcaption {
	margin-block-start: var(--cika-space-2);
	color: var(--cika-color-text-muted);
	font-size: var(--cika-text-sm);
}

.cika-prose .wp-block-separator {
	border: 0;
	border-top: var(--cika-border-heavy) solid var(--cika-color-accent);
}

/* Keep native WooCommerce structure clean and usable without redesigning it. */
.woocommerce,
.woocommerce-page {
	--cika-commerce-bg: var(--cika-color-surface);
	--cika-commerce-text: var(--cika-color-text);
}

/* Native WooCommerce archive composition; query and loop output remain plugin-owned. */
.cika-shop-archive {
	min-width: 0;
	padding-block: clamp(var(--cika-space-6), 5vw, var(--cika-space-12)) clamp(var(--cika-space-12), 8vw, 7rem);
}

.cika-shop-archive .woocommerce-breadcrumb {
	margin: 0 0 clamp(var(--cika-space-8), 5vw, var(--cika-space-12));
	color: var(--cika-color-text-muted);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 800;
	letter-spacing: 0.06em;
	overflow-wrap: anywhere;
	text-transform: uppercase;
}

.cika-shop-archive .woocommerce-breadcrumb a {
	color: var(--cika-color-text);
	text-decoration-color: var(--cika-color-accent-2);
}

.cika-shop-archive .woocommerce-products-header {
	display: flex;
	min-width: 0;
	flex-direction: column;
	margin-block-end: clamp(var(--cika-space-8), 6vw, var(--cika-space-16));
	padding-block-end: clamp(var(--cika-space-6), 4vw, var(--cika-space-10));
	border-bottom: var(--cika-border-heavy) solid var(--cika-color-accent);
}

.cika-shop-archive__eyebrow {
	order: -1;
	margin: 0 0 var(--cika-space-3);
	color: var(--cika-color-accent-2);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 900;
	letter-spacing: var(--cika-tracking-wide);
	text-transform: uppercase;
}

.cika-shop-archive .woocommerce-products-header__title {
	max-width: 16ch;
	margin: 0;
	color: var(--cika-color-text);
	font-size: clamp(3.5rem, 9vw, 9rem);
	font-weight: 900;
	letter-spacing: -0.055em;
	line-height: 0.84;
	overflow-wrap: anywhere;
	text-transform: uppercase;
}

.cika-shop-archive :where(.term-description, .page-description) {
	max-width: 52rem;
	margin-block-start: var(--cika-space-6);
	color: var(--cika-color-text-muted);
	font-size: var(--cika-text-lg);
	overflow-wrap: anywhere;
}

.cika-shop-archive :where(.term-description, .page-description) > :last-child {
	margin-block-end: 0;
}

.cika-shop-tools {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(13rem, auto);
	align-items: center;
	gap: var(--cika-space-4) var(--cika-space-6);
	margin-block-end: clamp(var(--cika-space-8), 5vw, var(--cika-space-12));
	padding: var(--cika-space-4) var(--cika-space-5);
	border: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	border-inline-start: var(--cika-border-heavy) solid var(--cika-color-accent);
	background: var(--cika-color-surface);
	color: var(--cika-color-text-on-paper);
	box-shadow: 0 5px 0 var(--cika-color-accent-2);
}

.cika-shop-archive .cika-shop-tools .woocommerce-result-count,
.cika-shop-archive .cika-shop-tools .woocommerce-ordering {
	float: none;
	margin: 0;
}

.cika-shop-archive .cika-shop-tools .woocommerce-result-count {
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-sm);
	font-weight: 800;
	letter-spacing: 0.035em;
	overflow-wrap: anywhere;
}

.cika-shop-archive .cika-shop-tools .woocommerce-ordering {
	justify-self: end;
}

.cika-shop-archive .cika-shop-tools .orderby {
	width: auto;
	max-width: 100%;
	min-height: 2.75rem;
	border: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	border-radius: 0;
	background: var(--cika-color-surface-raised);
	color: var(--cika-color-text);
	font-size: var(--cika-text-sm);
	font-weight: 800;
}

.woocommerce .cika-shop-archive ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(var(--cika-space-6), 3vw, var(--cika-space-10));
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0 0 var(--cika-space-5);
}

.woocommerce .cika-shop-archive ul.products::before,
.woocommerce .cika-shop-archive ul.products::after {
	display: none;
}

.woocommerce .cika-shop-archive ul.products li.product {
	float: none;
	width: auto;
	min-width: 0;
	height: 100%;
	margin: 0;
	padding: 0;
}

.woocommerce .cika-shop-archive ul.products:is(.loading, [aria-busy="true"]) {
	pointer-events: none;
	opacity: 0.55;
}

.cika-shop-archive .woocommerce-pagination {
	margin-block-start: clamp(var(--cika-space-10), 6vw, var(--cika-space-16));
}

.cika-shop-archive .woocommerce-pagination ul.page-numbers {
	display: flex;
	width: fit-content;
	max-width: 100%;
	flex-wrap: wrap;
	gap: var(--cika-space-2);
	margin: 0 auto;
	padding: 0;
	border: 0;
}

.cika-shop-archive .woocommerce-pagination ul.page-numbers li {
	border: 0;
}

.cika-shop-archive .woocommerce-pagination .page-numbers :where(a, span) {
	display: grid;
	min-width: 2.75rem;
	min-height: 2.75rem;
	place-items: center;
	padding: var(--cika-space-2);
	border: var(--cika-border-medium) solid var(--cika-color-border-strong);
	background: transparent;
	color: var(--cika-color-text);
	font-family: var(--cika-font-mono);
	font-weight: 900;
	text-decoration: none;
}

.cika-shop-archive .woocommerce-pagination .page-numbers :where(a:hover, a:focus-visible, .current) {
	border-color: var(--cika-color-accent-2);
	background: var(--cika-color-accent-2);
	color: var(--cika-color-accent-contrast);
}

.cika-shop-empty {
	max-width: 52rem;
	margin-inline: auto;
	padding: clamp(var(--cika-space-6), 5vw, var(--cika-space-12));
	border: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	border-top: var(--cika-border-heavy) solid var(--cika-color-accent);
	background: var(--cika-color-surface);
	color: var(--cika-color-text-on-paper);
	box-shadow: 0 7px 0 var(--cika-color-accent-2);
}

.cika-shop-empty__eyebrow {
	margin: 0 0 var(--cika-space-3);
	color: var(--cika-color-accent);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 900;
	letter-spacing: var(--cika-tracking-wide);
	text-transform: uppercase;
}

.cika-shop-empty__title {
	margin: 0;
	font-size: clamp(2.5rem, 7vw, 5.5rem);
	font-weight: 900;
	line-height: 0.9;
	overflow-wrap: anywhere;
	text-transform: uppercase;
}

.cika-shop-empty__description {
	margin-block: var(--cika-space-5);
}

.cika-shop-empty .woocommerce-no-products-found,
.cika-shop-empty .woocommerce-info {
	margin-block: 0 var(--cika-space-5);
}

.cika-shop-empty__action {
	width: fit-content;
}

@media (max-width: 80rem) {
	.woocommerce .cika-shop-archive ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 62rem) {
	.woocommerce .cika-shop-archive ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 42rem) {
	.cika-shop-tools {
		grid-template-columns: minmax(0, 1fr);
		padding: var(--cika-space-4);
	}

	.cika-shop-archive .cika-shop-tools .woocommerce-ordering {
		width: 100%;
		justify-self: stretch;
	}

	.cika-shop-archive .cika-shop-tools .orderby {
		width: 100%;
	}

	.woocommerce .cika-shop-archive ul.products {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Reusable loop card; the surrounding WooCommerce product grid remains native. */
.cika-product-card {
	position: relative;
	height: 100%;
	min-width: 0;
	overflow: hidden;
	border: var(--cika-border-thin) solid var(--cika-color-border-strong);
	border-bottom: 4px solid var(--cika-color-accent);
	border-radius: 0;
	background: #0c1017;
	color: var(--cika-color-text);
	transition: transform var(--cika-duration-fast) var(--cika-ease-standard), border-color var(--cika-duration-fast) var(--cika-ease-standard), background-color var(--cika-duration-fast) var(--cika-ease-standard);
}

.cika-product-card:hover,
.cika-product-card:focus-within {
	border-color: var(--cika-color-accent);
	background: #101621;
	transform: translateY(-4px);
}

.cika-product-card:focus-within {
	outline: var(--cika-border-medium) solid var(--cika-color-focus);
	outline-offset: 3px;
}

.cika-product-card:active {
	transform: translateY(-1px);
}

.cika-product-card__link {
	display: grid;
	height: 100%;
	min-width: 0;
	grid-template-rows: auto minmax(0, 1fr);
	color: inherit;
	text-decoration: none;
}

.cika-product-card__link--disabled {
	cursor: default;
}

.cika-product-card__media {
	position: relative;
	min-width: 0;
	overflow: hidden;
	border-bottom: var(--cika-border-thin) solid var(--cika-color-border-strong);
	background: #070a0f;
}

.woocommerce ul.products li.product .cika-product-card__image,
.cika-product-card__image {
	display: block;
	width: 100%;
	height: auto;
	margin: 0;
	object-fit: contain;
	transition: transform var(--cika-duration-normal) var(--cika-ease-standard), filter var(--cika-duration-normal) var(--cika-ease-standard);
}

.cika-product-card:hover .cika-product-card__image,
.cika-product-card:focus-within .cika-product-card__image {
	filter: saturate(1.06) contrast(1.03);
	transform: scale(1.018);
}

.cika-product-card__image--placeholder {
	padding: clamp(var(--cika-space-6), 8vw, var(--cika-space-12));
	opacity: 0.72;
}

.cika-product-card__badges {
	position: absolute;
	top: var(--cika-space-3);
	left: var(--cika-space-3);
	z-index: 1;
	display: flex;
	max-width: calc(100% - (2 * var(--cika-space-3)));
	flex-wrap: wrap;
	gap: var(--cika-space-2);
	pointer-events: none;
}

.cika-product-card__badge {
	display: inline-flex;
	align-items: center;
	min-height: 1.75rem;
	padding: 0.3rem 0.55rem;
	border: 0;
	background: #0c1017;
	color: var(--cika-color-text);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 900;
	letter-spacing: 0.08em;
	line-height: 1;
	text-transform: uppercase;
}

.cika-product-card__badge--sale {
	border-color: var(--cika-color-accent);
	background: var(--cika-color-accent);
	color: var(--cika-color-accent-contrast);
}

.cika-product-card__badge--new {
	border-color: var(--cika-color-accent-2);
	background: var(--cika-color-accent-2);
}

.cika-product-card__badge--sold-out {
	background: var(--cika-color-bg);
	color: var(--cika-color-text);
}

.cika-product-card__body {
	display: grid;
	min-width: 0;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-areas:
		"title price"
		"tagline view";
	align-content: end;
	align-items: end;
	gap: var(--cika-space-3) var(--cika-space-5);
	padding: clamp(var(--cika-space-4), 1.6vw, var(--cika-space-6));
}

.cika-product-card__title {
	grid-area: title;
	margin: 0;
	font-family: var(--cika-font-display);
	font-size: clamp(1.7rem, 2.25vw, 2.65rem);
	font-weight: 400;
	line-height: 0.94;
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	text-transform: uppercase;
}

.cika-product-card__tagline {
	grid-area: tagline;
	display: -webkit-box;
	margin: 0;
	overflow: hidden;
	color: var(--cika-color-text-muted);
	font-family: var(--cika-font-body);
	font-size: clamp(0.88rem, 1vw, 1rem);
	font-weight: 500;
	line-height: 1.4;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.woocommerce ul.products li.product .cika-product-card__price,
.cika-product-card__price {
	grid-area: price;
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: var(--cika-space-2);
	margin: 0;
	color: var(--cika-color-accent);
	font-family: var(--cika-font-mono);
	font-size: clamp(1.15rem, 1.5vw, 1.45rem);
	font-weight: 900;
	justify-self: end;
	overflow-wrap: anywhere;
}

.cika-product-card__price del {
	color: var(--cika-color-text-muted);
	font-size: var(--cika-text-sm);
	opacity: 1;
}

.cika-product-card__price ins {
	color: var(--cika-color-accent);
	text-decoration: none;
}

.cika-product-card__price-unavailable {
	color: var(--cika-color-text-muted);
	font-size: var(--cika-text-sm);
	font-weight: 800;
	text-transform: uppercase;
}

.cika-product-card__view {
	grid-area: view;
	display: flex;
	align-items: center;
	gap: var(--cika-space-2);
	color: var(--cika-color-text);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 900;
	justify-self: end;
	letter-spacing: 0.08em;
	white-space: nowrap;
	text-transform: uppercase;
}

.cika-product-card__view span {
	color: var(--cika-color-accent-2);
	font-size: 1.2em;
	transition: color var(--cika-duration-fast) var(--cika-ease-standard), transform var(--cika-duration-fast) var(--cika-ease-standard);
}

.cika-product-card:hover .cika-product-card__view span,
.cika-product-card:focus-within .cika-product-card__view span {
	color: var(--cika-color-accent);
	transform: translateX(0.2rem);
}

.cika-product-card--sold-out .cika-product-card__image {
	filter: grayscale(0.75);
	opacity: 0.68;
}

/* Native single-product composition; WooCommerce retains gallery, forms, tabs, and queries. */
.cika-single-product {
	width: 100%;
	min-width: 0;
	padding-block: clamp(var(--cika-space-5), 4vw, var(--cika-space-10)) clamp(var(--cika-space-12), 8vw, var(--cika-space-16));
}

.cika-single-product > .woocommerce-breadcrumb {
	max-width: 100%;
	margin-block-end: clamp(var(--cika-space-5), 4vw, var(--cika-space-8));
	color: var(--cika-color-text-muted);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 800;
	letter-spacing: 0.05em;
	overflow-wrap: anywhere;
	text-transform: uppercase;
}

.cika-single-product > .woocommerce-breadcrumb a {
	color: var(--cika-color-text);
}

.woocommerce .cika-single-product div.product {
	position: relative;
	display: grid;
	width: 100%;
	max-width: none;
	grid-template-columns: minmax(0, 1.35fr) minmax(20rem, 0.65fr);
	gap: clamp(var(--cika-space-6), 4vw, var(--cika-space-12));
	margin: 0;
}

.woocommerce .cika-single-product div.product > * {
	min-width: 0;
}

.woocommerce .cika-single-product div.product span.onsale {
	top: var(--cika-space-4);
	left: var(--cika-space-4);
	z-index: 5;
	min-width: 0;
	min-height: 0;
	margin: 0;
	padding: 0.65rem 0.8rem;
	border: var(--cika-border-medium) solid var(--cika-color-border-strong);
	border-radius: 0;
	background: var(--cika-color-accent);
	color: var(--cika-color-accent-contrast);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 900;
	letter-spacing: 0.09em;
	line-height: 1;
	text-transform: uppercase;
}

.woocommerce .cika-single-product div.product div.images,
.woocommerce .cika-single-product div.product div.summary {
	float: none;
	width: 100%;
	max-width: 100%;
	margin: 0;
}

.woocommerce .cika-single-product .woocommerce-product-gallery {
	position: relative;
	align-self: start;
	overflow: hidden;
	border: var(--cika-border-medium) solid var(--cika-color-border-strong);
	background: var(--cika-color-surface);
	box-shadow: 0 9px 0 var(--cika-color-accent);
}

.woocommerce .cika-single-product .woocommerce-product-gallery__wrapper,
.woocommerce .cika-single-product .woocommerce-product-gallery__image,
.woocommerce .cika-single-product .woocommerce-product-gallery__image a {
	min-width: 0;
	margin: 0;
}

.woocommerce .cika-single-product .woocommerce-product-gallery .flex-viewport {
	position: relative;
	touch-action: pan-y;
}

.woocommerce .cika-single-product .woocommerce-product-gallery__image a {
	display: block;
	background: var(--cika-color-surface);
}

.woocommerce .cika-single-product .woocommerce-product-gallery__image img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0;
}

.woocommerce .cika-single-product .woocommerce-product-gallery__trigger {
	top: var(--cika-space-4);
	right: var(--cika-space-4);
	z-index: 6;
	display: grid;
	width: 2.75rem;
	height: 2.75rem;
	place-items: center;
	border: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	background: var(--cika-color-accent-2);
	color: var(--cika-color-accent-contrast);
}

.woocommerce .cika-single-product .flex-control-thumbs {
	display: flex;
	gap: var(--cika-space-2);
	margin: 0;
	padding: var(--cika-space-3);
	overflow-x: auto;
	border-top: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	background: var(--cika-color-surface);
	scroll-snap-type: x proximity;
	scrollbar-color: var(--cika-color-accent) var(--cika-color-surface);
	scrollbar-width: thin;
}

.woocommerce .cika-single-product .flex-control-thumbs li {
	flex: 0 0 calc((100% - (4 * var(--cika-space-2))) / 5);
	float: none;
	width: auto !important;
	min-width: 0;
	margin: 0;
	scroll-snap-align: start;
}

.woocommerce .cika-single-product .flex-control-thumbs img {
	display: block;
	width: 100%;
	aspect-ratio: 3 / 2;
	border: var(--cika-border-medium) solid transparent;
	object-fit: cover;
	opacity: 0.62;
	cursor: pointer;
}

.woocommerce .cika-single-product .flex-control-thumbs img:hover,
.woocommerce .cika-single-product .flex-control-thumbs img:focus-visible,
.woocommerce .cika-single-product .flex-control-thumbs img.flex-active {
	border-color: var(--cika-color-accent);
	opacity: 1;
}

.woocommerce .cika-single-product .cika-product-gallery--single .flex-control-thumbs {
	display: none;
}

.cika-product-gallery__controls {
	position: absolute;
	z-index: 5;
	inset: 0;
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	pointer-events: none;
}

.cika-product-gallery__nav,
.cika-gallery-lightbox__nav {
	display: grid;
	width: 3rem;
	height: 4.25rem;
	place-items: center;
	padding: 0;
	border: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	background: var(--cika-color-accent-2);
	color: var(--cika-color-accent-contrast);
	font-family: var(--cika-font-mono);
	font-size: 2rem;
	font-weight: 900;
	line-height: 1;
	cursor: pointer;
	pointer-events: auto;
	transition: background-color var(--cika-duration-fast) var(--cika-ease-standard), color var(--cika-duration-fast) var(--cika-ease-standard), transform var(--cika-duration-fast) var(--cika-ease-standard);
}

.cika-product-gallery__nav:hover,
.cika-product-gallery__nav:focus-visible,
.cika-gallery-lightbox__nav:hover,
.cika-gallery-lightbox__nav:focus-visible {
	background: var(--cika-color-accent);
	color: var(--cika-color-accent-contrast);
}

.cika-product-gallery__nav--previous {
	margin-inline-start: var(--cika-space-3);
}

.cika-product-gallery__nav--next {
	margin-inline-end: var(--cika-space-3);
}

.cika-product-gallery__counter {
	align-self: start;
	justify-self: start;
	margin: var(--cika-space-3) 0 0 var(--cika-space-3);
	padding: 0.55rem 0.7rem;
	border: var(--cika-border-thin) solid var(--cika-color-border-strong);
	background: var(--cika-color-bg);
	color: var(--cika-color-text);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 900;
	letter-spacing: 0.08em;
	pointer-events: none;
}

.cika-gallery-lightbox-open {
	overflow: hidden;
}

.cika-gallery-lightbox {
	position: fixed;
	inset: 0;
	width: 100%;
	max-width: none;
	height: 100%;
	max-height: none;
	margin: 0;
	padding: clamp(var(--cika-space-3), 3vw, var(--cika-space-8));
	border: 0;
	background: rgba(5, 6, 10, 0.94);
	color: var(--cika-color-text);
}

.cika-gallery-lightbox::backdrop {
	background: rgba(5, 6, 10, 0.88);
}

.cika-gallery-lightbox__frame {
	display: grid;
	width: 100%;
	height: 100%;
	grid-template-rows: auto minmax(0, 1fr);
	border: var(--cika-border-medium) solid var(--cika-color-border-strong);
	background: var(--cika-color-bg);
	box-shadow: 10px 10px 0 var(--cika-color-accent);
}

.cika-gallery-lightbox__toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--cika-space-4);
	padding: var(--cika-space-3) var(--cika-space-4);
	border-bottom: var(--cika-border-medium) solid var(--cika-color-border-strong);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 900;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.cika-gallery-lightbox__close {
	min-height: 2.75rem;
	padding-inline: var(--cika-space-4);
	border: var(--cika-border-thin) solid var(--cika-color-border-strong);
	background: transparent;
	color: var(--cika-color-text);
	font: inherit;
	cursor: pointer;
}

.cika-gallery-lightbox__close:hover,
.cika-gallery-lightbox__close:focus-visible {
	border-color: var(--cika-color-accent);
	background: var(--cika-color-accent);
	color: var(--cika-color-accent-contrast);
}

.cika-gallery-lightbox__stage {
	position: relative;
	display: grid;
	min-width: 0;
	min-height: 0;
	place-items: center;
	padding: var(--cika-space-4) clamp(var(--cika-space-12), 9vw, 8rem);
	overflow: hidden;
	touch-action: pan-y;
}

.cika-gallery-lightbox__image {
	display: block;
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}

.cika-gallery-lightbox__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
}

.cika-gallery-lightbox__nav--previous {
	left: var(--cika-space-4);
}

.cika-gallery-lightbox__nav--next {
	right: var(--cika-space-4);
}

.woocommerce .cika-single-product div.product div.summary {
	align-self: start;
	padding: clamp(var(--cika-space-5), 3.5vw, var(--cika-space-8));
	border: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	border-top: var(--cika-border-heavy) solid var(--cika-color-accent);
	background: var(--cika-color-surface);
	color: var(--cika-color-text-on-paper);
	box-shadow: 0 9px 0 var(--cika-color-accent-2);
}

.cika-single-product__category {
	margin: 0 0 var(--cika-space-3);
	color: var(--cika-color-accent);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 900;
	letter-spacing: var(--cika-tracking-wide);
	overflow-wrap: anywhere;
	text-transform: uppercase;
}

.woocommerce .cika-single-product div.product .product_title {
	margin: 0;
	color: var(--cika-color-text);
	font-size: clamp(2.5rem, 5.2vw, 5.75rem);
	font-weight: 900;
	line-height: 0.88;
	overflow-wrap: anywhere;
	text-transform: uppercase;
}

.woocommerce .cika-single-product div.product .woocommerce-product-rating {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: var(--cika-space-2);
	margin-block: var(--cika-space-4) 0;
}

.woocommerce .cika-single-product div.product .summary > .price {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: var(--cika-space-2);
	margin-block: var(--cika-space-5);
	color: var(--cika-color-accent);
	font-family: var(--cika-font-mono);
	font-size: clamp(1.35rem, 2.2vw, 2rem);
	font-weight: 900;
	overflow-wrap: anywhere;
}

.woocommerce .cika-single-product div.product .summary > .price del,
.woocommerce .cika-single-product div.product .woocommerce-variation-price del {
	color: var(--cika-color-text-muted);
	font-size: 0.72em;
	opacity: 1;
}

.woocommerce .cika-single-product div.product .summary > .price ins,
.woocommerce .cika-single-product div.product .woocommerce-variation-price ins {
	color: var(--cika-color-accent);
	text-decoration: none;
}

.woocommerce .cika-single-product .woocommerce-product-details__short-description {
	margin-block: 0 var(--cika-space-6);
	font-size: var(--cika-text-md);
	line-height: var(--cika-leading-body);
	overflow-wrap: anywhere;
}

.woocommerce .cika-single-product .woocommerce-product-details__short-description > :last-child {
	margin-block-end: 0;
}

.woocommerce .cika-single-product div.product form.cart {
	margin-block: var(--cika-space-6) var(--cika-space-5);
}

.woocommerce .cika-single-product div.product form.cart {
	display: flex;
	align-items: stretch;
	flex-wrap: wrap;
	gap: var(--cika-space-3);
}

.woocommerce .cika-single-product .cika-license-selector {
	width: 100%;
	min-width: 0;
	margin: 0 0 var(--cika-space-3);
	padding: 0;
	border: 0;
}

.cika-license-selector__legend {
	width: 100%;
	margin: 0;
	padding: 0;
	color: var(--cika-color-text);
	font-family: var(--cika-font-display);
	font-size: var(--cika-text-xl);
	font-weight: 900;
	line-height: var(--cika-leading-tight);
	text-transform: uppercase;
}

.cika-license-selector__hint {
	margin: var(--cika-space-2) 0 var(--cika-space-4);
	color: var(--cika-color-text-muted);
	font-size: var(--cika-text-sm);
	line-height: var(--cika-leading-body);
}

.cika-license-selector__options {
	display: grid;
	gap: var(--cika-space-2);
}

.cika-license-option {
	position: relative;
	display: grid;
	grid-template-columns: 1.25rem minmax(0, 1fr);
	gap: var(--cika-space-3);
	padding: var(--cika-space-3);
	border: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	background: var(--cika-color-surface-raised);
	color: var(--cika-color-text);
	cursor: pointer;
	transition: background-color var(--cika-duration-fast) var(--cika-ease-standard), box-shadow var(--cika-duration-fast) var(--cika-ease-standard), transform var(--cika-duration-fast) var(--cika-ease-standard);
}

.cika-license-option:hover,
.cika-license-option:focus-within,
.cika-license-option.is-selected {
	background: var(--cika-color-surface-strong);
	box-shadow: 4px 4px 0 var(--cika-color-accent-2);
}

.cika-license-option.is-selected {
	border-color: var(--cika-color-accent);
}

.cika-license-option__control {
	width: 1.15rem;
	height: 1.15rem;
	margin: 0.2rem 0 0;
	accent-color: var(--cika-color-accent);
}

.cika-license-option__content,
.cika-license-option__heading {
	min-width: 0;
}

.cika-license-option__content {
	display: grid;
	gap: var(--cika-space-2);
}

.cika-license-option__heading {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: var(--cika-space-2);
}

.cika-license-option__name {
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-sm);
	font-weight: 900;
	letter-spacing: 0.02em;
}

.cika-license-option__badge {
	padding: 0.2rem 0.35rem;
	background: var(--cika-color-accent-2);
	color: var(--cika-color-accent-contrast);
	font-family: var(--cika-font-mono);
	font-size: 0.65rem;
	font-weight: 900;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.cika-license-option__price {
	margin-inline-start: auto;
	color: var(--cika-color-accent);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-sm);
	font-weight: 900;
	white-space: nowrap;
}

.cika-license-option__summary {
	color: var(--cika-color-text-muted);
	font-size: var(--cika-text-xs);
	line-height: var(--cika-leading-body);
}

.cika-license-selector__current {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--cika-space-3);
	margin: var(--cika-space-4) 0 0;
	padding-block-start: var(--cika-space-3);
	border-top: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-sm);
	font-weight: 900;
	text-transform: uppercase;
}

.cika-license-selector__current strong {
	color: var(--cika-color-accent);
	font-size: var(--cika-text-lg);
}

.woocommerce .cika-single-product div.product form.cart .quantity {
	float: none;
	margin: 0;
}

.woocommerce .cika-single-product div.product form.cart .qty {
	width: 5rem;
	min-height: 3rem;
	border: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	border-radius: 0;
	background: var(--cika-color-surface-raised);
	color: var(--cika-color-text);
	font-family: var(--cika-font-mono);
	font-weight: 900;
}

.woocommerce .cika-single-product div.product form.cart .single_add_to_cart_button {
	min-height: 3rem;
	margin: 0;
	padding-inline: clamp(var(--cika-space-5), 4vw, var(--cika-space-8));
	border-radius: 0;
	text-transform: uppercase;
}

.woocommerce .cika-single-product div.product form.cart .single_add_to_cart_button.disabled,
.woocommerce .cika-single-product div.product form.cart .single_add_to_cart_button:disabled {
	cursor: not-allowed;
	border-color: var(--cika-color-border-strong);
	background: var(--cika-color-surface-strong);
	color: var(--cika-color-text-muted);
	opacity: 0.72;
}

.woocommerce .cika-single-product div.product p.stock {
	width: fit-content;
	max-width: 100%;
	margin-block: var(--cika-space-4);
	padding: 0.45rem 0.65rem;
	border: var(--cika-border-thin) solid currentColor;
	color: var(--cika-color-success);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 900;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.woocommerce .cika-single-product div.product p.stock.out-of-stock {
	color: var(--cika-color-danger);
}

.woocommerce .cika-single-product .product_meta {
	display: grid;
	gap: var(--cika-space-2);
	margin-block-start: var(--cika-space-5);
	padding-block-start: var(--cika-space-5);
	border-top: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 800;
	overflow-wrap: anywhere;
	text-transform: uppercase;
}

.woocommerce .cika-single-product .product_meta a {
	color: var(--cika-color-accent);
}

.woocommerce .cika-single-product div.product .cika-font-details {
	position: relative;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	grid-column: 1 / -1;
	margin: clamp(var(--cika-space-10), 7vw, var(--cika-space-16)) 0 0;
	overflow: hidden;
	border: var(--cika-border-medium) solid var(--cika-color-border-strong);
	background: var(--cika-color-surface);
	color: var(--cika-color-text-on-paper);
	box-shadow: 0 9px 0 var(--cika-color-accent);
}

.cika-font-details__header {
	position: relative;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--cika-space-6);
	padding: clamp(var(--cika-space-5), 4vw, var(--cika-space-10));
	overflow: hidden;
	border-bottom: var(--cika-border-heavy) solid var(--cika-color-accent);
	background: var(--cika-color-bg);
	color: var(--cika-color-text);
}

.cika-font-details__header::after {
	position: absolute;
	right: -2rem;
	bottom: 1.25rem;
	width: clamp(7rem, 16vw, 15rem);
	height: 0.65rem;
	background: var(--cika-color-accent-2);
	content: "";
	pointer-events: none;
	transform: rotate(-4deg);
}

.cika-font-details__header > * {
	position: relative;
	z-index: 1;
	min-width: 0;
}

.cika-font-details__eyebrow {
	margin: 0 0 var(--cika-space-3);
	color: var(--cika-color-accent-2);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 900;
	letter-spacing: var(--cika-tracking-wide);
	text-transform: uppercase;
}

.cika-font-details__title {
	margin: 0;
	font-size: clamp(3rem, 8vw, 8rem);
	font-weight: 900;
	line-height: 0.82;
	overflow-wrap: anywhere;
	text-transform: uppercase;
}

.cika-font-details__badges,
.cika-font-details__tokens,
.cika-font-details__styles {
	margin: 0;
	padding: 0;
	list-style: none;
}

.cika-font-details__badges {
	display: flex;
	flex: 0 1 auto;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: var(--cika-space-2);
	padding-block-end: var(--cika-space-2);
}

.cika-font-details__badges li {
	padding: 0.55rem 0.7rem;
	border: var(--cika-border-medium) solid var(--cika-color-accent-2);
	background: var(--cika-color-bg);
	color: var(--cika-color-accent-2);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 900;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.cika-font-details__list {
	display: grid;
	margin: 0;
}

.cika-font-details__row {
	display: grid;
	grid-template-columns: minmax(10rem, 0.34fr) minmax(0, 1fr);
	gap: clamp(var(--cika-space-4), 4vw, var(--cika-space-10));
	padding: clamp(var(--cika-space-4), 3vw, var(--cika-space-6)) clamp(var(--cika-space-5), 4vw, var(--cika-space-10));
	border-bottom: var(--cika-border-thin) solid var(--cika-color-border-on-paper);
}

.cika-font-details__row:last-child {
	border-bottom: 0;
}

.cika-font-details__row:nth-child(even) {
	background: rgba(255, 255, 255, 0.035);
}

.cika-font-details__row dt,
.cika-font-details__row dd {
	min-width: 0;
	margin: 0;
}

.cika-font-details__row dt {
	color: var(--cika-color-accent);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 900;
	letter-spacing: 0.07em;
	text-transform: uppercase;
}

.cika-font-details__row dd {
	font-size: var(--cika-text-md);
	font-weight: 700;
	line-height: var(--cika-leading-body);
	overflow-wrap: anywhere;
}

.cika-font-details__tokens {
	display: flex;
	flex-wrap: wrap;
	gap: var(--cika-space-2);
}

.cika-font-details__tokens li {
	padding: 0.35rem 0.55rem;
	border: var(--cika-border-thin) solid var(--cika-color-border-on-paper);
	background: var(--cika-color-surface-raised);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 800;
}

.cika-font-details__styles {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--cika-space-3);
}

.cika-font-details__styles li {
	display: grid;
	gap: var(--cika-space-1);
	min-width: 0;
	padding: var(--cika-space-3);
	border-left: var(--cika-border-heavy) solid var(--cika-color-accent-2);
	background: var(--cika-color-surface-raised);
}

.cika-font-details__styles strong,
.cika-font-details__styles span {
	overflow-wrap: anywhere;
}

.cika-font-details__styles strong {
	font-size: var(--cika-text-md);
}

.cika-font-details__styles span {
	color: var(--cika-color-text-muted);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
}

.woocommerce .cika-single-product div.product .woocommerce-tabs,
.woocommerce .cika-single-product div.product :where(.upsells, .related) {
	width: 100%;
	max-width: 100%;
	grid-column: 1 / -1;
	margin: clamp(var(--cika-space-10), 7vw, var(--cika-space-16)) 0 0;
}

.woocommerce .cika-single-product div.product .woocommerce-tabs ul.tabs {
	display: flex;
	max-width: 100%;
	flex-wrap: wrap;
	gap: var(--cika-space-2);
	margin: 0;
	padding: 0;
}

.woocommerce .cika-single-product div.product .woocommerce-tabs ul.tabs::before {
	display: none;
}

.woocommerce .cika-single-product div.product .woocommerce-tabs ul.tabs li {
	margin: 0;
	padding: 0;
	border: var(--cika-border-medium) solid var(--cika-color-border-strong);
	border-radius: 0;
	background: transparent;
}

.woocommerce .cika-single-product div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce .cika-single-product div.product .woocommerce-tabs ul.tabs li::after {
	display: none;
}

.woocommerce .cika-single-product div.product .woocommerce-tabs ul.tabs li a {
	display: inline-flex;
	align-items: center;
	min-height: 2.75rem;
	padding: 0.65rem 1rem;
	color: var(--cika-color-text);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 900;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.woocommerce .cika-single-product div.product .woocommerce-tabs ul.tabs li:hover,
.woocommerce .cika-single-product div.product .woocommerce-tabs ul.tabs li.active {
	border-color: var(--cika-color-accent-2);
	background: var(--cika-color-accent-2);
}

.woocommerce .cika-single-product div.product .woocommerce-tabs ul.tabs li:hover a,
.woocommerce .cika-single-product div.product .woocommerce-tabs ul.tabs li.active a {
	color: var(--cika-color-accent-contrast);
}

.woocommerce .cika-single-product div.product .woocommerce-Tabs-panel {
	margin: 0;
	padding: clamp(var(--cika-space-5), 4vw, var(--cika-space-10));
	border: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	border-top: var(--cika-border-heavy) solid var(--cika-color-accent);
	background: var(--cika-color-surface);
	color: var(--cika-color-text-on-paper);
	overflow-wrap: anywhere;
}

.woocommerce .cika-single-product div.product .woocommerce-Tabs-panel > h2:first-child,
.woocommerce .cika-single-product div.product :where(.upsells, .related) > h2 {
	margin-block: 0 var(--cika-space-6);
	font-size: clamp(2.25rem, 5vw, 5rem);
	font-weight: 900;
	line-height: 0.92;
	overflow-wrap: anywhere;
	text-transform: uppercase;
}

.woocommerce .cika-single-product div.product :where(.upsells, .related) > h2 {
	color: var(--cika-color-text);
}

.woocommerce .cika-single-product div.product :where(.upsells, .related) ul.products {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(var(--cika-space-4), 2.5vw, var(--cika-space-8));
	width: 100%;
	max-width: none;
	margin: 0;
}

.woocommerce .cika-single-product div.product :where(.upsells, .related) ul.products::before,
.woocommerce .cika-single-product div.product :where(.upsells, .related) ul.products::after {
	display: none;
}

.woocommerce .cika-single-product div.product :where(.upsells, .related) ul.products li.product {
	float: none;
	width: auto;
	min-width: 0;
	height: 100%;
	margin: 0;
	padding: 0;
}

@media (max-width: 80rem) {
	.woocommerce .cika-single-product div.product :where(.upsells, .related) ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 62rem) {
	.woocommerce .cika-single-product div.product {
		grid-template-columns: minmax(0, 1fr);
	}

	.woocommerce .cika-single-product div.product div.summary {
		grid-column: 1;
	}
}

@media (max-width: 42rem) {
	.cika-font-details__header {
		align-items: flex-start;
		flex-direction: column;
	}

	.cika-font-details__badges {
		justify-content: flex-start;
		padding-block-end: 0;
	}

	.cika-font-details__row,
	.cika-font-details__styles {
		grid-template-columns: minmax(0, 1fr);
	}

	.cika-font-details__row {
		gap: var(--cika-space-2);
	}

	.woocommerce .cika-single-product .flex-control-thumbs li {
		flex-basis: calc((100% - (2.5 * var(--cika-space-2))) / 3.5);
	}

	.cika-product-gallery__nav,
	.cika-gallery-lightbox__nav {
		width: 2.5rem;
		height: 3.5rem;
	}

	.cika-product-gallery__nav--previous {
		margin-inline-start: var(--cika-space-2);
	}

	.cika-product-gallery__nav--next {
		margin-inline-end: var(--cika-space-2);
	}

	.cika-gallery-lightbox {
		padding: var(--cika-space-2);
	}

	.cika-gallery-lightbox__frame {
		box-shadow: 5px 5px 0 var(--cika-color-accent);
	}

	.cika-gallery-lightbox__toolbar {
		padding: var(--cika-space-2) var(--cika-space-3);
	}

	.cika-gallery-lightbox__stage {
		padding-inline: var(--cika-space-10);
	}

	.cika-gallery-lightbox__nav--previous {
		left: var(--cika-space-2);
	}

	.cika-gallery-lightbox__nav--next {
		right: var(--cika-space-2);
	}

	.cika-license-option__heading {
		display: grid;
	}

	.cika-license-option__price {
		margin-inline-start: 0;
	}

	.cika-license-selector__current {
		align-items: flex-start;
		flex-direction: column;
	}

	.woocommerce .cika-single-product div.product form.cart .single_add_to_cart_button {
		flex: 1 1 12rem;
	}

	.woocommerce .cika-single-product div.product :where(.upsells, .related) ul.products {
		grid-template-columns: minmax(0, 1fr);
	}
}

.woocommerce .woocommerce-breadcrumb,
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
	margin-block-end: var(--cika-space-6);
}

.woocommerce ul.products,
.woocommerce div.product {
	max-width: var(--cika-container-wide);
	margin-inline: auto;
}

.woocommerce :where(.woocommerce-notices-wrapper, .woocommerce-message, .woocommerce-info, .woocommerce-error) {
	color: var(--cika-color-text-on-paper);
}

.woocommerce :where(.woocommerce-message, .woocommerce-info, .woocommerce-error) {
	padding: var(--cika-space-4) var(--cika-space-5);
	border: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	border-top: var(--cika-border-heavy) solid var(--cika-color-accent);
	border-radius: 0;
	background: var(--cika-color-surface);
}

.woocommerce .woocommerce-message { border-top-color: var(--cika-color-success); }
.woocommerce .woocommerce-info { border-top-color: var(--cika-color-accent-2); }
.woocommerce .woocommerce-error { border-top-color: var(--cika-color-danger); }

.woocommerce :where(a.button, button.button, input.button, #respond input#submit) {
	border: var(--cika-border-medium) solid var(--cika-color-accent);
	border-radius: var(--cika-radius-sm);
	background: var(--cika-color-accent);
	color: var(--cika-color-accent-contrast);
	font-weight: 800;
	letter-spacing: 0.035em;
	transition: background-color var(--cika-duration-fast) var(--cika-ease-standard), border-color var(--cika-duration-fast) var(--cika-ease-standard), transform var(--cika-duration-fast) var(--cika-ease-standard);
}

.woocommerce :where(a.button, button.button, input.button, #respond input#submit):hover {
	border-color: var(--cika-color-accent-hover);
	background: var(--cika-color-accent-hover);
	color: var(--cika-color-accent-contrast);
}

.woocommerce :where(.woocommerce-cart-form, form.checkout, form.login, form.register, .cart_totals, .woocommerce-checkout-review-order, .woocommerce-MyAccount-content) {
	padding: clamp(var(--cika-space-4), 3vw, var(--cika-space-8));
	background: var(--cika-color-surface);
	color: var(--cika-color-text-on-paper);
}

.woocommerce table.shop_table {
	border: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	border-radius: 0;
	background: var(--cika-color-surface);
	color: var(--cika-color-text-on-paper);
}

.woocommerce :where(input.input-text, textarea, select, .select2-selection) {
	border: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	border-radius: var(--cika-radius-sm);
	background: var(--cika-color-surface-raised);
	color: var(--cika-color-text-on-paper);
}

.woocommerce .price {
	color: var(--cika-color-accent-2);
	font-family: var(--cika-font-mono);
	font-weight: 800;
}

.woocommerce :where(table.shop_table, .cart_totals, .woocommerce-checkout-review-order, .woocommerce-MyAccount-content) .price {
	color: var(--cika-color-accent);
}

@media (prefers-reduced-motion: reduce) {
	.cika-product-card,
	.cika-product-card:hover,
	.cika-product-card:focus-within,
	.cika-product-card:active,
	.cika-product-card__image,
	.cika-product-card:hover .cika-product-card__image,
	.cika-product-card:focus-within .cika-product-card__image,
	.cika-license-option,
	.cika-license-option:hover,
	.cika-license-option:focus-within,
	.cika-product-gallery__nav {
		transform: none;
		transition: none;
	}

	.cika-gallery-lightbox__nav {
		transition: none;
	}
}

@media (max-width: 62rem) {
	.cika-site-header__inner {
		grid-template-columns: minmax(0, 1fr) auto;
		gap: var(--cika-space-3);
	}

	.cika-menu-toggle {
		display: inline-flex;
	}

	.cika-header-navigation {
		min-width: 0;
	}

	.cika-site--has-primary-menu .cika-header-panel {
		position: absolute;
		inset-inline: 0;
		top: calc(100% + var(--cika-border-heavy));
		z-index: 110;
		align-items: stretch;
		flex-direction: column;
		gap: 0;
		padding: var(--cika-space-3) clamp(var(--cika-space-4), 5vw, var(--cika-space-8));
		border: var(--cika-border-medium) solid var(--cika-color-accent-2);
		border-top: 0;
		background: var(--cika-color-bg);
		box-shadow: 0 7px 0 var(--cika-color-border-strong);
	}

	.cika-has-js .cika-site--has-primary-menu .cika-header-panel {
		display: none;
	}

	.cika-has-js .cika-site--has-primary-menu .cika-header-panel[data-cika-open="true"] {
		display: flex;
	}

	.cika-site--has-primary-menu .cika-primary-navigation {
		width: 100%;
		margin: 0;
	}

	.cika-site--has-primary-menu .cika-primary-navigation__list {
		align-items: stretch;
		flex-direction: column;
		gap: 0;
	}

	.cika-site--has-primary-menu .cika-primary-navigation a {
		width: 100%;
		border-bottom: var(--cika-border-thin) solid rgba(255, 255, 255, 0.14);
	}

	/* In the stacked drawer there is no room to hover a dropdown open, so
	   submenus return to the flow underneath their parent. */
	.cika-primary-navigation .sub-menu {
		position: static;
		padding: 0 0 0 var(--cika-space-4);
		border: 0;
		background: transparent;
		box-shadow: none;
		visibility: visible;
		opacity: 1;
	}

	.cika-site--has-primary-menu .cika-commerce-navigation {
		justify-content: space-between;
		padding-block-start: var(--cika-space-2);
	}

	.cika-site:not(.cika-site--has-primary-menu) .cika-header-panel {
		justify-content: flex-end;
	}

	body.cika-navigation-open {
		overflow: hidden;
	}








}

@media (max-width: 42rem) {
	.admin-bar .cika-site-header {
		top: var(--wp-admin--admin-bar--height, 46px);
	}

	.cika-site:not(.cika-site--has-primary-menu) .cika-header-navigation {
		align-items: flex-end;
		flex-direction: column-reverse;
		gap: var(--cika-space-1);
	}

	.cika-site:not(.cika-site--has-primary-menu) .cika-commerce-navigation {
		gap: var(--cika-space-3);
	}

	.cika-site:not(.cika-site--has-primary-menu) .cika-commerce-navigation a {
		min-height: 1.75rem;
		font-size: 0.65rem;
	}

	.cika-search-panel__form {
		grid-template-columns: minmax(0, 1fr) auto;
	}

	.cika-search-panel__close {
		grid-column: 1 / -1;
	}

	.cika-header-control {
		padding-inline: 0.6rem;
	}























}

@media (max-width: 23rem) {
	.cika-site-header__inner {
		padding-inline: var(--cika-space-3);
	}

	.cika-site-branding__name {
		font-size: clamp(1.25rem, 8vw, 1.55rem);
	}

	.cika-header-controls {
		gap: var(--cika-space-1);
	}


}

/* Product font tester */
.cika-font-tester {
	clear: both;
	margin-block: var(--cika-space-12);
	border: var(--cika-border-heavy) solid var(--cika-color-border-on-paper);
	background: var(--cika-color-surface);
	box-shadow: var(--cika-shadow-md);
}

.cika-font-tester__heading {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--cika-space-4);
	padding: var(--cika-space-6);
	border-bottom: var(--cika-border-heavy) solid var(--cika-color-border-on-paper);
}

.cika-font-tester__heading h2,
.cika-font-tester__heading p {
	margin: 0;
}

.cika-font-tester__eyebrow {
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 700;
	letter-spacing: var(--cika-tracking-wide);
	text-transform: uppercase;
}

.cika-font-tester__controls {
	display: grid;
	grid-template-columns: repeat(3, minmax(9rem, 1fr)) auto;
	align-items: end;
	gap: var(--cika-space-5);
	padding: var(--cika-space-5) var(--cika-space-6);
	border-bottom: var(--cika-border-thin) solid var(--cika-color-border-on-paper);
	background: var(--cika-color-surface);
}

.cika-font-tester__control {
	display: grid;
	gap: var(--cika-space-2);
	min-width: 0;
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 700;
	text-transform: uppercase;
}

.cika-font-tester__control span {
	display: flex;
	justify-content: space-between;
	gap: var(--cika-space-2);
}

.cika-font-tester__control input[type="range"] {
	width: 100%;
	margin: 0;
	accent-color: var(--cika-color-accent);
	cursor: pointer;
}

.cika-font-tester__themes {
	display: flex;
	border: var(--cika-border-thin) solid var(--cika-color-border-on-paper);
}

.cika-font-tester__themes button {
	min-height: 2.75rem;
	padding-inline: var(--cika-space-3);
	border: 0;
	background: transparent;
	color: var(--cika-color-text);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 700;
	cursor: pointer;
}

.cika-font-tester__themes button + button {
	border-inline-start: var(--cika-border-thin) solid var(--cika-color-border-on-paper);
}

.cika-font-tester__themes button:is(.is-active, :hover) {
	background: var(--cika-color-bg);
	color: var(--cika-color-text);
}

.cika-font-tester__stage {
	display: grid;
	place-items: center;
	min-height: clamp(18rem, 42vw, 34rem);
	padding: clamp(var(--cika-space-5), 5vw, var(--cika-space-12));
	overflow: hidden;
	/* The stage is the one deliberately light surface in the theme: the
	   Light/Dark control exists so a typeface can be judged on both, so it
	   stays white here rather than following the dark page. */
	background: var(--cika-color-white);
	color: var(--cika-color-void);
	transition: background-color var(--cika-duration-normal) var(--cika-ease-standard), color var(--cika-duration-normal) var(--cika-ease-standard);
}

.cika-font-tester__stage.is-dark {
	background: var(--cika-color-void);
	color: var(--cika-color-white);
}

.cika-font-tester__preview {
	width: 100%;
	min-width: 0;
	overflow-wrap: anywhere;
	font-size: 72px;
	font-synthesis: none;
	letter-spacing: 0;
	line-height: 1.1;
	text-align: center;
	outline: 0;
}

.cika-font-tester__preview:focus-visible {
	box-shadow: 0 0 0 0.2rem var(--cika-color-focus);
}

.cika-font-tester__fallback {
	margin: 0;
	padding: var(--cika-space-8) var(--cika-space-6);
	color: var(--cika-color-text-muted);
}

@media (max-width: 62rem) {
	.cika-font-tester__controls {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 42rem) {
	.cika-font-tester {
		margin-block: var(--cika-space-8);
	}

	.cika-font-tester__heading {
		align-items: flex-start;
		padding: var(--cika-space-4);
	}

	.cika-font-tester__controls {
		grid-template-columns: minmax(0, 1fr);
		padding: var(--cika-space-4);
	}

	.cika-font-tester__themes {
		width: 100%;
	}

	.cika-font-tester__themes button {
		flex: 1;
	}

	.cika-font-tester__stage {
		min-height: 18rem;
		padding: var(--cika-space-5) var(--cika-space-3);
	}
}

/* Final single-product composition */
.cika-single-product {
	--cika-single-sticky-offset: calc(var(--cika-header-height) + var(--cika-space-4));
}

.woocommerce .cika-single-product div.product div.summary {
	display: flex;
	flex-direction: column;
	padding: clamp(var(--cika-space-4), 2.4vw, var(--cika-space-6));
	scrollbar-color: var(--cika-color-accent) var(--cika-color-surface);
	scrollbar-width: thin;
}

.woocommerce .cika-single-product div.product .summary > .cika-single-product__category {
	order: 0;
}

.woocommerce .cika-single-product div.product .summary > .product_title {
	order: 1;
	font-size: clamp(2.35rem, 3.8vw, 4.35rem);
	line-height: 0.9;
}

.woocommerce .cika-single-product div.product .summary > .woocommerce-product-details__short-description {
	order: 2;
	margin-block: var(--cika-space-4) 0;
	padding-inline-start: var(--cika-space-4);
	border-inline-start: var(--cika-border-heavy) solid var(--cika-color-accent);
	font-size: var(--cika-text-sm);
}

.woocommerce .cika-single-product div.product .summary > .woocommerce-product-rating {
	order: 3;
}

.woocommerce .cika-single-product div.product .summary > .price {
	order: 4;
	margin-block: var(--cika-space-4) var(--cika-space-3);
	padding-block: var(--cika-space-3);
	border-block: var(--cika-border-thin) solid var(--cika-color-border-on-paper);
	font-size: clamp(1.25rem, 1.9vw, 1.75rem);
}

.woocommerce .cika-single-product div.product .summary > form.cart {
	order: 5;
	margin-block: var(--cika-space-3) var(--cika-space-4);
}

.woocommerce .cika-single-product div.product .summary > .product_meta {
	order: 6;
	margin-block-start: var(--cika-space-3);
	padding-block-start: var(--cika-space-3);
}

.cika-license-selector__legend {
	font-size: var(--cika-text-lg);
}

.cika-license-selector__hint {
	margin-block: var(--cika-space-1) var(--cika-space-3);
}

.cika-license-selector__options {
	gap: var(--cika-space-1);
}

.cika-license-option {
	gap: var(--cika-space-2);
	padding: 0.7rem;
}

.cika-license-option__name,
.cika-license-option__price {
	font-size: var(--cika-text-xs);
}

.cika-license-option__summary {
	display: none;
	font-size: 0.72rem;
	line-height: 1.4;
}

.cika-license-option:is(.is-selected, :has(.cika-license-option__control:checked)) .cika-license-option__summary {
	display: block;
}

.cika-license-selector__current {
	margin-block-start: var(--cika-space-3);
	padding-block-start: var(--cika-space-2);
}

.woocommerce .cika-single-product div.product form.cart .single_add_to_cart_button {
	flex: 1 1 12rem;
	box-shadow: 4px 4px 0 var(--cika-color-accent-2);
	font-family: var(--cika-font-mono);
	font-weight: 900;
	letter-spacing: 0.06em;
}

.woocommerce .cika-single-product div.product > .cika-font-tester {
	width: 100%;
	max-width: 100%;
	grid-column: 1 / -1;
	margin: clamp(var(--cika-space-10), 7vw, var(--cika-space-16)) 0 0;
}

.woocommerce .cika-single-product div.product .cika-font-details {
	margin-block-start: clamp(var(--cika-space-8), 5vw, var(--cika-space-12));
}

.cika-font-details__header {
	padding: clamp(var(--cika-space-4), 3vw, var(--cika-space-6));
}

.cika-font-details__eyebrow {
	margin-block-end: var(--cika-space-2);
}

.cika-font-details__title {
	font-size: clamp(2.5rem, 5vw, 4.75rem);
}

.cika-font-details__list {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cika-font-details__row {
	grid-template-columns: minmax(7.5rem, 0.34fr) minmax(0, 1fr);
	gap: var(--cika-space-4);
	padding: var(--cika-space-4);
	border-inline-end: var(--cika-border-thin) solid var(--cika-color-border-on-paper);
}

.cika-font-details__row:nth-child(2n) {
	border-inline-end: 0;
}

.cika-font-details__row:is(.cika-font-details__row--font-styles, .cika-font-details__row--languages, .cika-font-details__row--opentype-features, .cika-font-details__row--character-support, .cika-font-details__row--file-contents) {
	grid-column: 1 / -1;
	border-inline-end: 0;
}

.cika-font-details__row dd,
.cika-font-details__styles strong {
	font-size: var(--cika-text-sm);
}

.woocommerce .cika-single-product div.product .woocommerce-tabs,
.woocommerce .cika-single-product div.product :where(.upsells, .related) {
	margin-block-start: clamp(var(--cika-space-8), 5vw, var(--cika-space-12));
}

.woocommerce .cika-single-product div.product :where(.upsells, .related) {
	padding-block-start: var(--cika-space-6);
	border-top: var(--cika-border-heavy) solid var(--cika-color-accent-2);
}

@media (min-width: 62.01rem) {
	.woocommerce .cika-single-product div.product div.summary {
		position: sticky;
		top: var(--cika-single-sticky-offset);
		max-height: calc(100vh - var(--cika-single-sticky-offset) - var(--cika-space-4));
		overflow-x: hidden;
		overflow-y: auto;
		overscroll-behavior: contain;
		scrollbar-gutter: stable;
	}
}

@media (max-width: 62rem) {
	.woocommerce .cika-single-product div.product div.summary {
		position: static;
		top: auto;
		max-height: none;
		overflow: visible;
		scrollbar-gutter: auto;
	}
}

@media (max-width: 42rem) {
	.woocommerce .cika-single-product div.product .summary > .product_title {
		font-size: clamp(2.25rem, 12vw, 3.75rem);
	}

	.cika-font-details__list,
	.cika-font-details__row,
	.cika-font-details__styles {
		grid-template-columns: minmax(0, 1fr);
	}

	.cika-font-details__row {
		gap: var(--cika-space-2);
		border-inline-end: 0;
	}

	.woocommerce .cika-single-product div.product > .cika-font-tester {
		margin-block-start: var(--cika-space-8);
	}
}
