/* stylelint-disable selector-class-pattern -- Maintenance BEM contract. */
/* stylelint-disable rule-empty-line-before -- Prettier removes leading blank lines inside media queries. */

.cs-maintenance-page {
	min-height: 100vh;
}

.cs-maintenance-bar {
	width: min(100%, 65rem);
	min-height: 2.75rem;
	margin-inline: auto;
	border-block-end: 1px solid var(--cs-color-line);
	background: rgb(8 11 14 / 96%);
	color: #edf2f4;
	font-family: var(--cs-font-display);
	font-size: 0.625rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.cs-maintenance-bar__inner {
	display: flex;
	min-height: 2.75rem;
	align-items: center;
	gap: var(--cs-space-s);
}

.cs-maintenance-bar__signal {
	width: 0.375rem;
	height: 0.375rem;
	background: var(--cs-area-accent);
	box-shadow: 0 0 1rem color-mix(in srgb, var(--cs-area-accent) 50%, transparent);
}

.cs-maintenance {
	display: grid;
	width: min(100%, 65rem);
	min-height: clamp(32rem, 72vh, 48rem);
	margin-inline: auto;
	place-items: center;
	overflow: hidden;
	border-block-end: 1px solid var(--cs-color-line);
	background:
		var(--cs-area-motif),
		linear-gradient(180deg, #0c0f12 0%, #07090b 100%);
}

.cs-area--resilience .cs-maintenance {
	background:
		var(--cs-area-motif),
		linear-gradient(180deg, var(--cs-color-surface) 0%, var(--cs-color-canvas) 100%);
}

.cs-maintenance__layout {
	display: grid;
	align-items: center;
	gap: clamp(2rem, 7vw, 6rem);
	grid-template-columns: minmax(0, 1fr) minmax(15rem, 0.55fr);
}

.cs-maintenance__copy {
	max-width: 38rem;
	container-type: inline-size;
}

.cs-maintenance h1 {
	margin: 0;
	font-size: clamp(2rem, 5vw, 4.5rem);
	overflow-wrap: anywhere;
}

.cs-maintenance .cs-maintenance__headline--default {
	font-size: min(4.5rem, 9cqi);
	white-space: nowrap;
}

.cs-maintenance__message {
	max-width: 38rem;
	margin: var(--cs-space-l) 0 0;
	color: var(--cs-color-muted);
	font-size: clamp(1rem, 1.8vw, 1.25rem);
}

.cs-maintenance__until {
	display: inline-flex;
	margin: var(--cs-space-l) 0 0;
	padding: var(--cs-space-s) var(--cs-space-m);
	border-inline-start: 0.125rem solid var(--cs-area-accent);
	background: color-mix(in srgb, var(--cs-color-surface) 88%, transparent);
	font-family: var(--cs-font-display);
	font-size: 0.75rem;
	letter-spacing: 0.08em;
}

.cs-maintenance__motif {
	position: relative;
	display: grid;
	width: min(100%, 22rem);
	aspect-ratio: 1;
	place-items: center;
	border: 1px solid var(--cs-color-line);
	border-radius: 50%;
	background: radial-gradient(circle, rgb(255 255 255 / 4%), transparent 64%);
	color: var(--cs-color-muted);
}

.cs-maintenance__rings,
.cs-maintenance__rings::before,
.cs-maintenance__rings::after {
	position: absolute;
	inset: 12%;
	border: 1px solid color-mix(in srgb, var(--cs-area-accent) 32%, transparent);
	border-radius: 50%;
	content: "";
}

.cs-maintenance__rings::before {
	inset: 18%;
}

.cs-maintenance__rings::after {
	inset: 36%;
}

.cs-maintenance__icon {
	position: relative;
	width: 40%;
	color: var(--cs-area-accent);
}

.cs-maintenance__icon svg {
	width: 100%;
	height: auto;
}

.cs-maintenance__alternatives {
	display: flex;
	align-items: center;
	gap: var(--cs-space-m);
	margin-block-start: var(--cs-space-l);
	font-family: var(--cs-font-display);
	font-size: 0.6875rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.cs-maintenance__alternatives ul {
	display: flex;
	padding: 0;
	margin: 0;
	gap: var(--cs-space-m);
	list-style: none;
}

.cs-maintenance__alternatives a {
	color: var(--cs-color-text);
	text-decoration: none;
}

.cs-maintenance__alternatives a:is(:hover, :focus-visible) {
	color: var(--cs-area-accent);
}

.cs-maintenance__copy > .cs-language-switcher {
	margin-block-start: var(--cs-space-m);
}

.cs-maintenance-bypass__notice {
	width: min(100%, 65rem);
	padding: var(--cs-space-s) var(--cs-space-m);
	margin-inline: auto;
	border-block-end: 1px solid color-mix(in srgb, var(--cs-color-warning) 60%, transparent);
	background: color-mix(in srgb, var(--cs-color-warning) 14%, var(--cs-color-canvas));
	color: var(--cs-color-text);
	font-weight: 700;
	text-align: center;
}

.cs-utility-links__maintenance-icon {
	display: inline-flex;
	inline-size: 1rem;
	block-size: 1rem;
	flex: 0 0 1rem;
	align-items: center;
	justify-content: center;
	margin-inline-start: 0.35rem;
	color: var(--cs-area-accent);
}

.cs-utility-links__maintenance-icon svg {
	display: block;
	inline-size: 100%;
	block-size: 100%;
}

.cs-utility-links__maintenance-icon svg,
.cs-maintenance__icon svg {
	fill: none;
	stroke: currentcolor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.4;
	vector-effect: non-scaling-stroke;
}

@media (max-width: 64rem) {
	.cs-maintenance__layout {
		gap: var(--cs-space-xl);
		grid-template-columns: minmax(0, 1fr) minmax(10rem, 0.4fr);
	}
}

@media (max-width: 44rem) {
	.cs-maintenance {
		min-height: 72vh;
	}

	.cs-maintenance__layout {
		padding-block: var(--cs-space-2xl);
		grid-template-columns: minmax(0, 1fr);
	}

	.cs-maintenance__motif {
		width: min(52vw, 13rem);
		grid-row: 1;
	}

	.cs-maintenance__copy {
		grid-row: 2;
	}

	.cs-maintenance__alternatives {
		align-items: flex-start;
		flex-direction: column;
		gap: var(--cs-space-xs);
	}
}
