:root {
	--s360-accent: #990099;
	--s360-accent-dark: #720072;
	--s360-ink: #292329;
	--s360-muted: #655f68;
	--s360-line: #e5dce5;
	--s360-soft: #f7eaf7;
	--s360-alt: #fbf9fb;
	--s360-white: #ffffff;
	--s360-gutter: clamp(1.125rem, 4vw, 3rem);
	--s360-section-space: clamp(3.5rem, 7vw, 6.5rem);
	--s360-body: 1.125rem;
	--s360-heading: 1.625rem;
	--s360-title: 2.5rem;
}

.s360-landing,
.s360-landing *,
.s360-floating-notice,
.s360-floating-notice * {
	box-sizing: border-box;
	font-family: Georgia, "Times New Roman", serif;
}

.s360-landing {
	width: 100%;
	max-width: none;
	margin: 0;
	color: var(--s360-ink);
	font-size: var(--s360-body);
	line-height: 1.65;
}

/*
 * Kadence kann alignfull-Blöcke abhängig vom gewählten Seitenlayout mit
 * negativen Außenabständen oder einer links ausgerichteten Maximalbreite
 * versehen. Die Startseite spannt deshalb nur ihre Hintergründe über den
 * Monitor; sämtliche Inhalte bleiben in einem zentrierten Innencontainer.
 */
.s360-landing-active .s360-landing.alignfull {
	width: 100vw !important;
	max-width: 100vw !important;
	margin-right: calc(50% - 50vw) !important;
	margin-left: calc(50% - 50vw) !important;
}

.s360-landing p,
.s360-landing li,
.s360-floating-notice p,
.s360-floating-notice a {
	font-size: var(--s360-body);
	line-height: 1.65;
}

.s360-landing h1 {
	margin: 0 0 1.5rem;
	color: var(--s360-ink);
	font-size: var(--s360-title);
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: -0.02em;
}

.s360-landing h2,
.s360-landing h3,
.s360-floating-notice .s360-notice-date {
	color: var(--s360-ink);
	font-size: var(--s360-heading);
	font-weight: 500;
	line-height: 1.28;
}

.s360-landing h2 {
	margin: 0 0 1.25rem;
}

.s360-landing h3 {
	margin: 0 0 0.75rem;
}

.s360-landing a,
.s360-floating-notice a {
	color: var(--s360-accent);
	text-decoration-thickness: 0.08em;
	text-underline-offset: 0.2em;
}

.s360-landing a:hover,
.s360-landing a:focus-visible,
.s360-floating-notice a:hover,
.s360-floating-notice a:focus-visible {
	color: var(--s360-accent-dark);
}

.s360-landing .s360-section.alignfull {
	width: 100% !important;
	max-width: none !important;
	margin-right: 0 !important;
	margin-left: 0 !important;
	padding: var(--s360-section-space) 0 !important;
}

.s360-landing .s360-inner,
.s360-landing .s360-section > .s360-inner,
.s360-landing .s360-section > .wp-block-columns.s360-inner {
	width: 100% !important;
	max-width: 82.5rem !important;
	margin-right: auto !important;
	margin-left: auto !important;
	padding-right: var(--s360-gutter) !important;
	padding-left: var(--s360-gutter) !important;
}

.s360-section-alt {
	background: var(--s360-alt);
}

.s360-hero {
	background: var(--s360-white);
}

.s360-hero-grid {
	gap: clamp(2.5rem, 6vw, 6rem);
}

.s360-hero-copy {
	flex-basis: 54%;
}

.s360-portrait {
	flex-basis: 46%;
}

.s360-eyebrow {
	margin: 0 0 0.75rem;
	color: var(--s360-accent);
	font-weight: 700;
	letter-spacing: 0.03em;
}

.s360-lead {
	max-width: 47rem;
	margin-bottom: 1.75rem;
	color: var(--s360-muted);
}

.s360-actions {
	gap: 0.75rem;
	margin: 0 0 1.75rem;
}

.s360-landing .wp-block-button__link {
	min-height: 3rem;
	padding: 0.7rem 1.15rem;
	border: 0.125rem solid var(--s360-accent);
	border-radius: 0;
	font-size: var(--s360-body);
	font-weight: 700;
	line-height: 1.35;
}

.s360-landing .s360-button-primary .wp-block-button__link {
	color: var(--s360-white);
	background: var(--s360-accent);
}

.s360-landing .s360-button-primary .wp-block-button__link:hover,
.s360-landing .s360-button-primary .wp-block-button__link:focus-visible {
	border-color: var(--s360-accent-dark);
	background: var(--s360-accent-dark);
}

.s360-landing .s360-button-secondary .wp-block-button__link {
	color: var(--s360-accent);
	background: transparent;
}

.s360-landing .s360-button-secondary .wp-block-button__link:hover,
.s360-landing .s360-button-secondary .wp-block-button__link:focus-visible {
	color: var(--s360-white);
	background: var(--s360-accent);
}

.s360-trust-list,
.s360-concerns {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem 1.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.s360-trust-list li,
.s360-concerns li {
	position: relative;
	padding-left: 1.1rem;
}

.s360-trust-list li::before,
.s360-concerns li::before {
	position: absolute;
	top: 0.72em;
	left: 0;
	width: 0.42rem;
	height: 0.42rem;
	background: var(--s360-accent);
	content: "";
	transform: translateY(-50%);
}

.s360-portrait-image {
	margin: 0;
	border: 0.0625rem solid var(--s360-line);
	background: var(--s360-soft);
}

.s360-portrait-image img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 0;
}

.s360-portrait-label {
	margin: 0;
	padding: 1rem 1.25rem;
	color: var(--s360-white);
	background: var(--s360-accent);
}

.s360-portrait-label p {
	margin: 0;
	color: inherit;
}

.s360-two-column,
.s360-section-intro {
	gap: clamp(2rem, 5vw, 5rem);
}

.s360-volume {
	margin-top: 1.75rem;
	padding-left: 1rem;
	border-left: 0.25rem solid var(--s360-accent);
}

.s360-concerns {
	margin-top: 1.5rem;
}

.s360-section-intro {
	margin-bottom: 2.5rem;
}

/*
 * Die drei Kartenraster verwenden CSS Grid. Die zusätzlichen Selektoren sind
 * bewusst spezifisch, damit Kadence das Gruppenlayout nicht auf eine einzelne
 * Spalte zurücksetzen kann.
 */
.s360-landing .wp-block-group.s360-services-grid,
.s360-landing .wp-block-group.s360-process,
.s360-landing .wp-block-group.s360-stats,
.s360-landing-active .entry-content .s360-landing .wp-block-group.s360-services-grid,
.s360-landing-active .entry-content .s360-landing .wp-block-group.s360-process,
.s360-landing-active .entry-content .s360-landing .wp-block-group.s360-stats {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: 1.25rem !important;
	width: 100% !important;
	align-items: stretch !important;
}

/* Ältere Gutenberg-Ausgaben besitzen zwischen Raster und Karten einen Innencontainer. */
.s360-landing .s360-services-grid > .wp-block-group__inner-container,
.s360-landing .s360-process > .wp-block-group__inner-container,
.s360-landing .s360-stats > .wp-block-group__inner-container {
	display: grid !important;
	grid-column: 1 / -1 !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: 1.25rem !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	align-items: stretch !important;
}

.s360-card,
.s360-process-step,
.s360-stat {
	display: flex;
	min-height: 0;
	height: auto;
	margin: 0;
	padding: 1.75rem;
	border: 0.0625rem solid var(--s360-line);
	border-radius: 0;
	background: var(--s360-white);
	box-shadow: none;
	flex-direction: column;
}

.s360-services-grid > .s360-card,
.s360-services-grid > .wp-block-group__inner-container > .s360-card,
.s360-process > .s360-process-step,
.s360-process > .wp-block-group__inner-container > .s360-process-step,
.s360-stats > .s360-stat,
.s360-stats > .wp-block-group__inner-container > .s360-stat {
	width: 100% !important;
	max-width: none !important;
	height: auto !important;
	margin: 0 !important;
	min-width: 0 !important;
	align-self: stretch;
}

.s360-card > *,
.s360-process-step > *,
.s360-stat > * {
	width: 100%;
}

.s360-card-link {
	margin-top: auto;
	padding-top: 1rem;
	font-weight: 700;
}

.s360-card-accent {
	border-top: 0.3rem solid var(--s360-accent);
}

.s360-stats {
	margin-top: 2.5rem;
}

/* Die drei Kennzahlen bleiben bewusst kompakter als die großen Inhaltsraster. */
.s360-landing .s360-inner.s360-stats {
	max-width: 72.5rem !important;
}

.s360-stat .s360-eyebrow {
	margin-bottom: 0.35rem;
}

.s360-process {
	margin-top: 2.5rem;
	counter-reset: s360-step;
}

.s360-process-step {
	position: relative;
	padding-top: 4rem;
	counter-increment: s360-step;
}

.s360-process-step::before {
	position: absolute;
	top: 1.35rem;
	left: 1.75rem;
	color: var(--s360-accent);
	font-size: var(--s360-heading);
	font-weight: 700;
	content: "0" counter(s360-step);
}

.s360-landing details.wp-block-details {
	margin: 0;
	padding: 1.25rem 0;
	border-top: 0.0625rem solid var(--s360-line);
}

.s360-landing details.wp-block-details:last-child {
	border-bottom: 0.0625rem solid var(--s360-line);
}

.s360-landing details summary {
	cursor: pointer;
	font-weight: 700;
}

.s360-booking {
	color: var(--s360-white);
	background: var(--s360-accent-dark);
}

.s360-booking h2,
.s360-booking p,
.s360-booking .s360-eyebrow {
	color: inherit;
}

.s360-booking .s360-eyebrow {
	opacity: 0.82;
}

.s360-floating-notice {
	width: min(100% - (2 * var(--s360-gutter)), 82.5rem);
	margin: 1.25rem auto;
	padding: 1.25rem 1.5rem;
	border: 0.0625rem solid var(--s360-line);
	border-left: 0.35rem solid var(--s360-accent);
	color: var(--s360-ink);
	background: var(--s360-white);
	box-shadow: none;
}

.s360-floating-notice p {
	margin: 0.35rem 0;
}

.s360-floating-notice .s360-eyebrow {
	margin-top: 0;
}

.s360-floating-notice .s360-notice-date {
	margin: 0.2rem 0;
}

@media (min-width: 93.75rem) {
	.s360-landing-active .s360-floating-notice {
		position: fixed;
		top: 50%;
		right: 0;
		z-index: 80;
		width: 17.5rem;
		margin: 0;
		transform: translateY(-50%);
	}
}

@media (max-width: 64rem) {
	:root {
		--s360-title: 2.125rem;
	}

	.s360-hero-grid,
	.s360-two-column,
	.s360-section-intro {
		flex-direction: column;
	}

	.s360-landing .wp-block-group.s360-services-grid,
	.s360-landing .wp-block-group.s360-process,
	.s360-landing .wp-block-group.s360-stats,
	.s360-landing .s360-services-grid > .wp-block-group__inner-container,
	.s360-landing .s360-process > .wp-block-group__inner-container,
	.s360-landing .s360-stats > .wp-block-group__inner-container {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 48.875rem) {
	:root {
		--s360-gutter: 1rem;
		--s360-body: 1.0625rem;
		--s360-heading: 1.5rem;
	}

	.s360-landing .s360-section.alignfull {
		padding-top: 3.25rem !important;
		padding-bottom: 3.25rem !important;
	}

	.s360-landing .wp-block-group.s360-services-grid,
	.s360-landing .wp-block-group.s360-process,
	.s360-landing .wp-block-group.s360-stats,
	.s360-landing .s360-services-grid > .wp-block-group__inner-container,
	.s360-landing .s360-process > .wp-block-group__inner-container,
	.s360-landing .s360-stats > .wp-block-group__inner-container {
		grid-template-columns: minmax(0, 1fr) !important;
	}

	.s360-booking .wp-block-buttons {
		justify-content: flex-start;
	}
}

@media (prefers-reduced-motion: reduce) {
	.s360-landing *,
	.s360-floating-notice * {
		scroll-behavior: auto !important;
		transition: none !important;
	}
}
