.cs-site {
	background: var(--cs-color-canvas);
	color: var(--cs-color-text);
	font-family: var(--cs-font-body);
	line-height: 1.65;
	text-rendering: optimizelegibility;
}

.cs-site *,
.cs-site *::before,
.cs-site *::after {
	box-sizing: border-box;
}

.cs-site :where(h1, h2, h3, h4, h5, h6, .cs-display) {
	font-family: var(--cs-font-display);
	font-weight: 600;
	line-height: 1.15;
	overflow-wrap: anywhere;
}

.cs-site :where(a, button, input, select, textarea):focus-visible {
	outline: 0.125rem solid transparent;
	box-shadow: var(--cs-focus-ring);
}

/* Native block styles: the same scope is mapped onto the editor canvas. */
.cs-site p.is-style-cs-kicker {
	color: var(--cs-area-accent);
	font-family: var(--cs-font-body);
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin-block: 1.5rem 0.5rem;
	overflow-wrap: anywhere;
}

.cs-site .is-style-cs-indent-left,
.cs-site .is-style-cs-indent-both {
	padding-inline-start: clamp(0.75rem, 3vw, 2rem);
}

.cs-site .is-style-cs-indent-right,
.cs-site .is-style-cs-indent-both {
	padding-inline-end: clamp(0.75rem, 3vw, 2rem);
}

/* Opt-in text groups only: full-width dossier, media and floated blocks remain. */
.cs-site .wp-block-group.is-style-cs-reading-text {
	width: 100%;
	max-width: 78ch;
	margin-inline: 0 auto;
}

.cs-site .cs-gb-note {
	padding: clamp(1rem, 3vw, 1.5rem);
	border-inline-start: 0.25rem solid var(--cs-area-accent);
	background: var(--cs-color-surface);
	color: var(--cs-color-text);
}

.cs-site .cs-gb-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--cs-space-l);
}

.cs-site :where(.cs-gb-note, .cs-gb-grid) {
	margin-block: var(--cs-space-l);
	min-width: 0;
	overflow-wrap: anywhere;
}

.cs-site .cs-gb-grid > * {
	min-width: 0;
}

@media (max-width: 40rem) {

	.cs-site .cs-gb-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

.cs-site .cs-skip-link {
	position: fixed;
	inset-block-start: var(--cs-space-m);
	inset-inline-start: var(--cs-space-m);
	z-index: var(--cs-z-overlay);
	translate: 0 -200%;
	background: var(--cs-color-text);
	color: var(--cs-color-canvas);
	padding: var(--cs-space-s) var(--cs-space-m);
}

.cs-site .cs-skip-link:focus {
	translate: 0;
}

.cs-site [data-cs-motion-state="stopped"] {
	animation-play-state: paused;
}

@media (prefers-reduced-motion: reduce) {

	.cs-site *,
	.cs-site *::before,
	.cs-site *::after {
		scroll-behavior: auto !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}

/* Reusable native heading/text flow, shared by frontend and editor canvas. */
.cs-site .wp-block-group.is-style-cs-heading-flow {
	display: flow-root;
	max-width: none;
}

.cs-site .wp-block-group.is-style-cs-heading-flow > :is(h2, h3):first-child {
	float: left;
	width: calc((100% - var(--cs-object-text-gap)) / 2);
	margin-block: 0 var(--cs-object-text-gap);
	margin-inline: 0 var(--cs-object-text-gap);
}

.cs-site .wp-block-group.is-style-cs-heading-flow > p {
	max-width: none;
}

.cs-site .wp-block-group.is-style-cs-heading-flow > p:first-of-type {
	margin-block-start: 0;
}

@media (max-width: 47.99rem) {

	.cs-site .wp-block-group.is-style-cs-heading-flow > :is(h2, h3):first-child {
		float: none;
		width: auto;
		margin-inline-end: 0;
	}
}
