.section {
	position: relative;
	padding-block: var(--section-space);
}

.section--small {
	padding-block: var(--section-space-small);
}

.section--large {
	padding-block: var(--section-space-large);
}

.section--soft {
	background: var(--color-background-soft);
}

.section--dark {
	background: linear-gradient(145deg, #3a0615, #24000c);
	color: var(--color-text-inverse);
}

.section--dark h2,
.section--dark .section-header__title {
	color: var(--color-text-inverse);
}

.section--overflow-hidden {
	overflow: clip;
}

.section-header {
	display: grid;
	gap: var(--space-4);
	margin-bottom: clamp(1.5rem, 3vw, 2.75rem);
	margin-inline: auto;
	max-width: min(100%, 80ch);
	text-align: center;
	justify-items: center;
}

.section-header > * {
	min-width: 0;
}

.section-header--center {
	margin-inline: auto;
	text-align: center;
	justify-items: center;
}

.section-header--split {
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
	align-items: end;
	max-width: none;
	margin-inline: 0;
	text-align: left;
	justify-items: stretch;
}

.section-header:has(> .section-header__action) {
	grid-template-columns: 1fr;
	justify-items: center;
	max-width: none;
	width: 100%;
}

.section-header:has(> .section-header__action) > :first-child {
	justify-self: center;
}

.section-header:has(> .section-header__action) .section-header__action {
	justify-self: center;
}

.section-header--split:has(> .section-header__action) {
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
	align-items: end;
}

.section-header--split:has(> .section-header__action) > :first-child,
.section-header--split:has(> .section-header__action) .section-header__action {
	justify-self: stretch;
}

.section-header__eyebrow {
	margin-bottom: var(--space-2);
}

.section-header__title {
	margin-bottom: var(--space-3);
	max-width: none;
	font-size: var(--font-size-h2);
	font-weight: 700;
	line-height: var(--line-height-heading);
	color: var(--color-heading);
	text-wrap: pretty;
}

.heading-line {
	position: relative;
	display: block;
	margin-bottom: var(--space-3) !important;
	padding-bottom: 0.75rem;
}

.heading-line::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 3px;
	background: currentColor;
	opacity: 0.26;
	transform-origin: left center;
	transition: transform var(--duration-slow) var(--ease-out), opacity var(--duration-slow) var(--ease-out);
}

.js-enabled .heading-line::after {
	transform: scaleX(0);
	opacity: 0.1;
	transition-delay: 0ms;
}

.js-enabled .heading-line.is-line-visible::after {
	transform: scaleX(1);
	opacity: 0.26;
	transition-delay: 180ms;
}

.section-header__text {
	margin-bottom: 0;
	max-width: 60ch;
	margin-inline: auto;
}

.section-header__action {
	justify-self: end;
	align-self: end;
}

.glass,
.glass-card,
.glass-panel,
.glass-surface,
.glass-button,
.glass-badge,
.glass-icon,
.glass-input,
.glass-navigation {
	position: relative;
	overflow: hidden;
	border: 1px solid rgba(116, 2, 35, 0.16);
	background: linear-gradient(150deg, rgba(255, 255, 255, 0.96), rgba(248, 245, 246, 0.9));
	box-shadow: var(--shadow-xs);
	isolation: isolate;
}

.glass::before,
.glass-card::before,
.glass-panel::before,
.glass-surface::before,
.glass-navigation::before {
	content: "";
	position: absolute;
	inset: 1px;
	border-radius: inherit;
	border: 1px solid rgba(255, 255, 255, 0.55);
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.24), rgba(255, 255, 255, 0));
	pointer-events: none;
	z-index: 0;
}

.glass::after,
.glass-card::after,
.glass-panel::after {
	content: none;
}

.glass > *,
.glass-card > *,
.glass-panel > *,
.glass-surface > *,
.glass-navigation > * {
	position: relative;
	z-index: 1;
}

.glass {
	border-radius: var(--radius-lg);
}

.glass--subtle {
	background: var(--glass-background-light);
	border-color: rgba(255, 255, 255, 0.52);
	box-shadow: var(--shadow-sm);
}

.glass--medium {
	background: var(--glass-background-medium);
	border-color: var(--glass-border-light);
}

.glass--strong {
	background: var(--glass-background-strong);
	border-color: rgba(255, 255, 255, 0.58);
	box-shadow: var(--shadow-glass);
}

.glass--dark {
	background: var(--glass-background-dark);
	border-color: var(--glass-border-dark);
	color: var(--color-text-inverse);
}

.glass-card,
.glass-panel,
.glass-surface {
	border-radius: var(--radius-glass);
	padding: var(--card-padding);
}

.glass-card:hover::after,
.glass-panel:hover::after {
	opacity: 0;
}

.glass-card {
	transition: transform var(--duration-normal) var(--ease-out), box-shadow var(--duration-normal) var(--ease-standard), border-color var(--duration-normal) var(--ease-standard);
}

.glass-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--shadow-sm);
	border-color: rgba(116, 2, 35, 0.24);
}

.glass-panel {
	padding: clamp(1.1rem, 2vw, 2rem);
}

.glass-surface {
	padding: 0;
}

.glass-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 var(--space-5);
	border-radius: var(--radius-pill);
	background: var(--glass-background-medium);
	color: var(--color-text);
	font-size: var(--font-size-button);
	font-weight: 600;
	text-decoration: none;
}

.glass-badge {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	min-height: 32px;
	padding: 0 var(--space-3);
	border-radius: var(--radius-pill);
	font-size: var(--font-size-caption);
	font-weight: 600;
	color: var(--color-primary);
}

.glass-icon {
	display: inline-grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: var(--radius-md);
}

.glass-input {
	display: block;
	width: 100%;
}

.glass-navigation {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-2);
	padding: var(--space-2);
	border-radius: var(--radius-xl);
}

.burgundy-gradient,
.burgundy-panel {
	background: linear-gradient(135deg, #740223 0%, #5e0824 58%, #3a0615 100%);
	color: var(--color-text-inverse);
}

.burgundy-panel {
	border-radius: var(--radius-glass);
	padding: clamp(1.2rem, 2vw, 2.2rem);
	box-shadow: var(--shadow-burgundy);
}

.light-panel {
	background: linear-gradient(145deg, rgba(255, 255, 255, 0.96), rgba(248, 245, 246, 0.82));
	border: 1px solid var(--color-border);
	border-radius: var(--radius-xl);
	box-shadow: var(--shadow-sm);
}

.button {
	--button-bg: var(--color-primary);
	--button-color: var(--color-text-inverse);
	--button-border: transparent;
	--button-shadow: 0 12px 28px rgba(116, 2, 35, 0.28);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-2);
	min-height: 44px;
	min-width: 44px;
	padding: 0.75rem 1.4rem;
	border: 1px solid var(--button-border);
	border-radius: var(--radius-pill);
	background: var(--button-bg);
	color: var(--button-color);
	box-shadow: var(--button-shadow);
	font-size: var(--font-size-button);
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: transform var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-standard), background-color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);
}

.button:hover {
	transform: translateY(-1px);
	text-decoration: none;
}

.button:active {
	transform: translateY(0);
	box-shadow: var(--shadow-sm);
}

.button:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: 2px;
}

.button[disabled],
.button[aria-disabled="true"],
.button.is-loading {
	opacity: 0.6;
	pointer-events: none;
}

.button--primary {
	--button-bg: var(--color-primary);
	--button-color: var(--color-text-inverse);
	--button-shadow: var(--shadow-burgundy);
}

.button--secondary {
	--button-bg: var(--color-background-soft);
	--button-color: var(--color-text);
	--button-border: var(--color-border);
	--button-shadow: var(--shadow-xs);
}

.button--glass {
	--button-bg: #fff;
	--button-color: var(--color-text);
	--button-border: rgba(116, 2, 35, 0.2);
	--button-shadow: var(--shadow-xs);
}

.button--white {
	--button-bg: var(--color-white);
	--button-color: var(--color-primary);
	--button-border: rgba(255, 255, 255, 0.95);
	--button-shadow: var(--shadow-sm);
}

.button--dark {
	--button-bg: var(--color-primary-deep);
	--button-color: var(--color-text-inverse);
	--button-border: rgba(255, 255, 255, 0.2);
	--button-shadow: var(--shadow-card);
}

.button--text {
	--button-bg: transparent;
	--button-color: var(--color-primary);
	--button-border: transparent;
	--button-shadow: none;
	padding-inline: 0;
	border-radius: 0;
}

.button--icon {
	padding-inline: 0.75rem;
}

.button--small {
	min-height: 40px;
	padding: 0.6rem 1rem;
	font-size: var(--font-size-small);
}

.button--large {
	min-height: 54px;
	padding: 0.95rem 1.75rem;
	font-size: var(--font-size-body);
}

.button--full {
	width: 100%;
}

.button__icon {
	display: inline-grid;
	place-items: center;
	flex-shrink: 0;
	width: 1.1em;
	height: 1.1em;
}

.button .button__icon--right,
.button .button__icon--left {
	transition: transform var(--duration-fast) var(--ease-standard);
}

.button:hover .button__icon--right,
.button:focus-visible .button__icon--right,
.motion-arrow:hover .button__icon--right {
	transform: translateX(3px);
}

.button:hover .button__icon--left,
.button:focus-visible .button__icon--left {
	transform: translateX(-2px);
}

.card {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	min-height: 100%;
	padding: var(--card-padding);
	border-radius: var(--radius-xl);
	background: var(--color-white);
	border: 1px solid rgba(116, 2, 35, 0.1);
	box-shadow: var(--shadow-sm);
}

.card--glass {
	background: var(--glass-background-medium);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border-color: var(--glass-border-light);
	box-shadow: var(--shadow-glass);
}

.card--interactive {
	transition: transform var(--duration-normal) var(--ease-out), box-shadow var(--duration-normal) var(--ease-standard), border-color var(--duration-normal) var(--ease-standard);
}

.card--interactive:hover {
	transform: translateY(-3px);
	box-shadow: var(--shadow-hover);
	border-color: rgba(166, 44, 80, 0.25);
}

.card--interactive:hover::after {
	opacity: 1;
	transform: translateX(18%);
}

.card--interactive::after {
	content: "";
	position: absolute;
	top: -72%;
	left: -25%;
	width: 40%;
	height: 190%;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.24), rgba(255, 255, 255, 0));
	transform: rotate(12deg);
	opacity: 0;
	transition: opacity var(--duration-normal) var(--ease-standard), transform var(--duration-slow) var(--ease-out);
	pointer-events: none;
}

.card--image .card__media {
	margin: calc(var(--card-padding) * -1) calc(var(--card-padding) * -1) 0;
	border-radius: var(--radius-xl) var(--radius-xl) var(--radius-md) var(--radius-md);
	overflow: hidden;
	aspect-ratio: 16 / 10;
}

.card--dark {
	background: linear-gradient(145deg, rgba(58, 6, 21, 0.92), rgba(36, 0, 12, 0.94));
	color: var(--color-text-inverse);
	border-color: rgba(255, 255, 255, 0.2);
	box-shadow: var(--shadow-card);
}

.card__content {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	min-height: 100%;
}

.card__header {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
}

.card__title {
	margin: 0;
	font-size: var(--font-size-h4);
	font-weight: 700;
	line-height: 1.28;
}

.card__text {
	margin: 0;
	font-size: var(--font-size-body);
	color: var(--color-text-secondary);
}

.card__footer {
	margin-top: auto;
	display: flex;
	gap: var(--space-3);
	align-items: center;
	flex-wrap: wrap;
}

.form {
	display: grid;
	gap: var(--space-6);
}

.form-grid {
	display: grid;
	gap: var(--space-4);
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.form-field {
	display: grid;
	gap: var(--space-2);
}

.form-field--honeypot {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
	opacity: 0;
	pointer-events: none;
}

.form-label {
	font-size: var(--font-size-small);
	font-weight: 600;
	color: var(--color-text-secondary);
}

.form-control,
.form-textarea,
.form-select {
	width: 100%;
	min-height: 48px;
	padding: 0.8rem 0.95rem;
	border-radius: var(--radius-md);
	border: 1px solid var(--color-border);
	background-color: var(--color-white);
	color: var(--color-text);
	font-size: 1rem;
	line-height: 1.4;
	transition: border-color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard), background-color var(--duration-fast) var(--ease-standard);
}

.form-control::placeholder,
.form-textarea::placeholder {
	color: var(--color-text-muted);
}

.form-control:hover,
.form-textarea:hover,
.form-select:hover {
	border-color: rgba(116, 2, 35, 0.24);
}

.form-control:focus,
.form-textarea:focus,
.form-select:focus {
	border-color: rgba(116, 2, 35, 0.45);
	box-shadow: 0 0 0 3px rgba(116, 2, 35, 0.12);
	outline: none;
}

.form-control--glass {
	background: var(--glass-background-light);
	border-color: var(--glass-border-light);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}

.form-textarea {
	min-height: 124px;
	resize: vertical;
}

.form-field.is-error .form-control,
.form-field.is-error .form-textarea,
.form-field.is-error .form-select,
.form-control.is-error,
.form-textarea.is-error,
.form-select.is-error {
	border-color: rgba(180, 35, 24, 0.6);
	box-shadow: 0 0 0 3px rgba(180, 35, 24, 0.12);
}

.form-field.is-success .form-control,
.form-field.is-success .form-textarea,
.form-field.is-success .form-select,
.form-control.is-success,
.form-textarea.is-success,
.form-select.is-success {
	border-color: rgba(31, 122, 77, 0.5);
	box-shadow: 0 0 0 3px rgba(31, 122, 77, 0.12);
}

.form-control:disabled,
.form-textarea:disabled,
.form-select:disabled {
	opacity: 0.65;
	cursor: not-allowed;
}

.form-control:-webkit-autofill,
.form-textarea:-webkit-autofill {
	-webkit-box-shadow: 0 0 0 1000px #fff inset;
	-webkit-text-fill-color: var(--color-text);
}

.form-checkbox,
.form-radio {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	font-size: var(--font-size-small);
	color: var(--color-text-secondary);
}

.form-message {
	margin: 0;
	font-size: var(--font-size-small);
}

.form-error {
	color: var(--color-error);
}

.form-success {
	color: var(--color-success);
}

.horizontal-scroll {
	display: grid;
	gap: var(--space-3);
}

.horizontal-scroll__viewport {
	overflow-x: auto;
	overflow-y: hidden;
	scrollbar-width: thin;
	scroll-snap-type: x mandatory;
	padding-bottom: var(--space-2);
}

.horizontal-scroll__track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: minmax(min(300px, 86vw), 1fr);
	gap: var(--grid-gap);
}

.horizontal-scroll__item {
	scroll-snap-align: start;
	min-width: 0;
}

.horizontal-scroll__controls {
	display: flex;
	align-items: center;
	gap: var(--space-2);
}

.horizontal-scroll__button {
	width: 44px;
	height: 44px;
	border-radius: var(--radius-round);
	border: 1px solid var(--color-border);
	background: var(--color-white);
	box-shadow: var(--shadow-xs);
	cursor: pointer;
}

.horizontal-scroll__button[disabled] {
	opacity: 0.4;
	cursor: default;
}

.horizontal-scroll__progress {
	flex: 1;
	height: 4px;
	border-radius: 99px;
	background: rgba(116, 2, 35, 0.12);
	position: relative;
	overflow: hidden;
}

.horizontal-scroll__progress::before {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	width: var(--scroll-progress, 0%);
	background: var(--color-primary);
	transition: width var(--duration-fast) var(--ease-standard);
}

@media (max-width: 767px) {
	.section-header {
		gap: var(--space-3);
		margin-bottom: var(--space-5);
	}

	.section-header__action {
		justify-self: center;
	}

	.section-header__action .button {
		width: 100%;
	}

	.section-header__title {
		max-width: none;
	}

	.card {
		gap: var(--space-3);
	}

	.card__footer {
		flex-direction: column;
		align-items: stretch;
		gap: var(--space-2);
	}

	.card__footer .button {
		width: 100%;
	}
}

.reveal {
	transition: opacity var(--duration-normal) var(--ease-out), transform var(--duration-normal) var(--ease-out), filter var(--duration-normal) var(--ease-out);
}

.js-enabled .reveal {
	opacity: 0;
}

.js-enabled .reveal.is-visible {
	opacity: 1;
	transform: none;
	filter: none;
}

.js-enabled .reveal--fade {
	transform: none;
}

.js-enabled .reveal--up {
	transform: translateY(20px);
}

.js-enabled .reveal--down {
	transform: translateY(-20px);
}

.js-enabled .reveal--left {
	transform: translateX(20px);
}

.js-enabled .reveal--right {
	transform: translateX(-20px);
}

.js-enabled .reveal--scale {
	transform: scale(0.97);
}

.js-enabled .reveal--blur {
	filter: blur(4px);
}

.motion-float {
	animation: motionFloat 6s var(--ease-standard) infinite alternate;
}

.motion-glow {
	animation: motionGlow 4.2s var(--ease-standard) infinite alternate;
}

.motion-shimmer {
	position: relative;
	overflow: hidden;
}

.motion-shimmer::after {
	content: "";
	position: absolute;
	inset: 0 auto 0 -45%;
	width: 40%;
	background: linear-gradient(100deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.32), rgba(255, 255, 255, 0));
	transform: skewX(-18deg);
	animation: motionShimmer 3.2s var(--ease-out) infinite;
	pointer-events: none;
}

.motion-pulse-soft {
	animation: motionPulseSoft 2.6s var(--ease-standard) infinite;
}

.motion-arrow .button__icon--right {
	animation: motionArrow 1.6s var(--ease-out) infinite;
}

.motion-orbit {
	animation: motionOrbit 11s linear infinite;
	transform-origin: center;
}

@keyframes motionFloat {
	from {
		transform: translate3d(0, 0, 0);
	}
	to {
		transform: translate3d(0, -8px, 0);
	}
}

@keyframes motionGlow {
	from {
		box-shadow: var(--shadow-sm);
	}
	to {
		box-shadow: var(--shadow-card);
	}
}

@keyframes motionShimmer {
	from {
		transform: translateX(-10%) skewX(-18deg);
	}
	to {
		transform: translateX(290%) skewX(-18deg);
	}
}

@keyframes motionPulseSoft {
	0%,
	100% {
		opacity: 0.75;
		transform: scale(1);
	}
	50% {
		opacity: 1;
		transform: scale(1.04);
	}
}

@keyframes motionArrow {
	0%,
	100% {
		transform: translateX(0);
	}
	50% {
		transform: translateX(3px);
	}
}

@keyframes motionOrbit {
	from {
		transform: rotate(0deg);
	}
	to {
		transform: rotate(360deg);
	}
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
	.glass,
	.glass-card,
	.glass-panel,
	.glass-surface,
	.glass-button,
	.glass-badge,
	.glass-icon,
	.glass-input,
	.glass-navigation,
	.form-control--glass {
		background: rgba(255, 255, 255, 0.96);
		border-color: rgba(116, 2, 35, 0.16);
		box-shadow: var(--shadow-sm);
	}
}
