/**
 * INVICTUS AT — Seitenaufbau analog zur .de
 * Ein gemeinsames Raster für Header, Menü und Content.
 */

:root {
	--invictus-rail: 1200px;
	--invictus-gutter: clamp(1.25rem, 3.2vw, 2rem);
}

/* Root-Padding von WP abschalten — sonst steht der Header anders als der Content */
.wp-site-blocks {
	padding-left: 0 !important;
	padding-right: 0 !important;
}
.wp-block-group.alignfull.has-global-padding,
.invictus-main-nav.has-global-padding,
.invictus-hero.has-global-padding,
.invictus-footer.has-global-padding {
	padding-left: 0 !important;
	padding-right: 0 !important;
}

/*
 * Dieselbe Innenbreite überall:
 * max 1200px, seitlich immer --invictus-gutter.
 */
.invictus-rail,
.invictus-main-nav > .alignwide,
.invictus-hero > .alignwide,
.invictus-footer > .alignwide,
.invictus-footer .alignwide,
.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
.wp-block-columns.alignwide {
	max-width: var(--invictus-rail) !important;
	width: calc(100% - (2 * var(--invictus-gutter))) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	box-sizing: border-box;
}

/* ── Header ── */
.invictus-main-nav {
	position: sticky;
	top: 0;
	z-index: 1000;
	background: #0F0625 !important;
	border-bottom: 0;
}
.invictus-main-nav > .alignwide.invictus-rail,
.invictus-main-nav > .alignwide {
	display: grid !important;
	grid-template-columns: auto 1fr;
	align-items: center;
	gap: 1.5rem;
}
.invictus-main-nav > .alignwide > .wp-block-group {
	display: flex !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
	justify-content: flex-end !important;
	gap: 1.25rem;
	min-width: 0;
}
.invictus-logo {
	flex: none;
}
.invictus-logo img {
	width: 180px !important;
	max-width: 180px !important;
	height: auto !important;
	max-height: 32px !important;
}
.invictus-main-nav,
.invictus-main-nav .wp-block-navigation,
.invictus-main-nav .wp-block-navigation-item__content,
.invictus-main-nav .wp-block-navigation-item__label,
.invictus-main-nav .wp-block-navigation__responsive-container-open,
.invictus-main-nav .wp-block-navigation__responsive-container-close {
	color: #fff !important;
}
.invictus-main-nav .wp-block-navigation__submenu-container,
.invictus-main-nav .wp-block-navigation__submenu-container a,
.invictus-main-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	color: #0F0625 !important;
}
/* Mobiles Overlay-Menü hat einen hellen Hintergrund — Text muss dunkel sein,
   sonst ist die komplette Navigation unsichtbar (weiß auf weiß). */
.invictus-main-nav .wp-block-navigation__responsive-container.is-menu-open,
.invictus-main-nav .wp-block-navigation__responsive-container.is-menu-open a,
.invictus-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content,
.invictus-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
	color: #0F0625 !important;
}
.invictus-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	border-bottom: 1px solid var(--wp--preset--color--border);
}
.invictus-main-nav .wp-block-navigation__responsive-container.is-menu-open a:hover {
	color: var(--wp--preset--color--violet) !important;
}
.invictus-main-nav .wp-block-navigation {
	font-family: var(--wp--preset--font-family--poppins);
	font-size: 0.92rem;
	font-weight: 500;
}
.invictus-main-nav .wp-block-button .wp-block-button__link {
	padding: 0.55rem 1.15rem;
	font-size: 0.88rem;
	color: #0F0625 !important;
	background: #5FCAB4 !important;
	white-space: nowrap;
}
.invictus-main-nav .wp-block-buttons,
.invictus-main-nav .wp-block-button {
	flex-shrink: 0;
}

/* ── Section-Label wie .de-Eyebrow ── */
.invictus-section-label {
	display: block;
	font-family: var(--wp--preset--font-family--poppins);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--violet);
	margin-bottom: 0.6rem;
}
.has-primary-dark-background-color .invictus-section-label,
.has-primary-background-color .invictus-section-label {
	color: var(--wp--preset--color--mint);
}
.invictus-centered { text-align: center; }
.invictus-centered .wp-block-heading { text-align: center; }
.invictus-centered > p:not(.invictus-section-label) {
	max-width: 44rem;
	margin-left: auto;
	margin-right: auto;
}

/* ── Hero: hell, redaktionell ── */
.invictus-hero,
.invictus-hero.invictus-hero--fullbleed {
	display: block;
	min-height: 0;
	background: #fff;
	color: var(--wp--preset--color--text-dark);
	overflow: visible;
	isolation: auto;
	text-align: center;
}
.invictus-hero::before,
.invictus-hero::after,
.invictus-hero--fullbleed::before,
.invictus-hero--fullbleed::after {
	content: none !important;
	display: none !important;
	animation: none !important;
}
.invictus-hero__inner {
	width: 100%;
}
.invictus-kicker {
	font-family: var(--wp--preset--font-family--poppins);
	font-weight: 600;
	font-size: 0.78rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--wp--preset--color--violet);
	margin: 0 0 0.35rem;
}
.invictus-kicker-sub {
	font-family: var(--wp--preset--font-family--poppins);
	font-weight: 500;
	font-size: 0.82rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--text-muted);
	margin: 0 0 1.25rem;
}
.invictus-hero h1,
.invictus-hero__title {
	font-family: var(--wp--preset--font-family--poppins);
	font-weight: 600;
	font-size: clamp(2rem, 4.4vw, 2.85rem);
	line-height: 1.15;
	letter-spacing: -0.015em;
	color: var(--wp--preset--color--primary-dark);
	max-width: none;
	margin: 0 0 0.5rem;
}
.invictus-hero__sub {
	font-family: var(--wp--preset--font-family--poppins);
	font-weight: 500;
	font-size: clamp(1.2rem, 2vw, 1.45rem);
	color: var(--wp--preset--color--violet);
	margin: 0 0 1.25rem;
}
.invictus-hero .invictus-lead,
.invictus-hero p.invictus-lead {
	font-size: 1.125rem;
	line-height: 1.7;
	color: var(--wp--preset--color--text-dark);
	max-width: none;
	margin: 0 0 2.25rem;
	font-weight: 400;
	text-align: center;
}
.invictus-accent {
	color: inherit;
	background: none;
	-webkit-background-clip: unset;
	background-clip: unset;
}

/* ── Prozess-Grafik: Stepper mit Icons, Tiefe und Fortschrittsbalken ── */
.invictus-process {
	--invictus-circle: clamp(3.1rem, 4.4vw, 4.25rem);
	position: relative;
	width: 100%;
	margin: 2.75rem 0 0;
}
.invictus-process__row {
	position: relative;
}
.invictus-process__track {
	position: absolute;
	left: calc(100% / var(--invictus-step-count, 9) / 2);
	right: calc(100% / var(--invictus-step-count, 9) / 2);
	top: calc(var(--invictus-circle) / 2);
	height: 3px;
	background: #e7e3ee;
	border-radius: 3px;
	transform: translateY(-50%);
	z-index: 0;
	overflow: hidden;
}
.invictus-process__track-fill {
	display: block;
	height: 100%;
	background: linear-gradient(90deg, #6243A4 0%, #5FCAB4 100%);
	border-radius: 3px;
	transition: width 0.5s cubic-bezier(0.65, 0, 0.35, 1);
}
.invictus-process__steps {
	display: grid;
	grid-template-columns: repeat(9, minmax(0, 1fr));
	position: relative;
	z-index: 1;
}
.invictus-process__step {
	position: relative;
	appearance: none;
	-webkit-appearance: none;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.6rem;
	width: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	cursor: pointer;
	text-align: center;
	font-family: var(--wp--preset--font-family--poppins);
}
.invictus-process__circle {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: var(--invictus-circle);
	height: var(--invictus-circle);
	border-radius: 50%;
	background: linear-gradient(150deg, #1c1140 0%, #0F0625 100%);
	box-shadow: 0 6px 16px -4px rgba(15, 6, 37, 0.35), inset 0 0 0 1px rgba(255, 255, 255, 0.06);
	color: #fff;
	transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.3s ease, background 0.3s ease;
}
.invictus-process__step:nth-child(3n) .invictus-process__circle {
	background: linear-gradient(150deg, #7454B8 0%, #5B3A9E 100%);
	box-shadow: 0 6px 16px -4px rgba(98, 67, 164, 0.4), inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}
.invictus-process__circle .invictus-icon {
	width: 1.4rem;
	height: 1.4rem;
	position: relative;
	z-index: 1;
}
.invictus-process__badge {
	position: absolute;
	top: -0.3rem;
	right: -0.3rem;
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 1.35rem;
	height: 1.35rem;
	padding: 0 0.2rem;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 2px 6px rgba(15, 6, 37, 0.22), inset 0 0 0 1px #e7e3ee;
	color: var(--wp--preset--color--primary-dark);
	font-size: 0.6rem;
	font-weight: 700;
	letter-spacing: 0.01em;
	z-index: 2;
	transition: background 0.3s ease, color 0.3s ease;
}
.invictus-process__name {
	display: block;
	font-size: clamp(0.66rem, 0.85vw, 0.8rem);
	font-weight: 600;
	color: var(--wp--preset--color--text-muted);
	max-width: 92%;
	overflow-wrap: anywhere;
	hyphens: auto;
	transition: color 0.3s ease;
}
.invictus-process__step:hover .invictus-process__circle,
.invictus-process__step:focus-visible .invictus-process__circle {
	transform: translateY(-3px) scale(1.05);
	outline: none;
}
.invictus-process__step:focus-visible {
	outline: none;
}
.invictus-process__step:focus-visible .invictus-process__circle {
	box-shadow: 0 6px 16px -4px rgba(15, 6, 37, 0.35), 0 0 0 3px rgba(95, 202, 180, 0.45);
}
.invictus-process__step.is-active .invictus-process__circle {
	background: linear-gradient(150deg, #6FDCC4 0%, #5FCAB4 100%);
	box-shadow: 0 10px 22px -6px rgba(95, 202, 180, 0.55), inset 0 0 0 1px rgba(255, 255, 255, 0.35);
	color: #0F0625;
	transform: translateY(-4px) scale(1.12);
}
.invictus-process__step.is-active .invictus-process__badge {
	background: #0F0625;
	color: #5FCAB4;
}
.invictus-process__step.is-active .invictus-process__name {
	color: var(--wp--preset--color--primary-dark);
}

.invictus-process__panel {
	position: relative;
	margin-top: 2.25rem;
	min-height: 7.5rem;
	padding: 1.6rem 1.85rem;
	background: #fff;
	border-radius: 14px;
	box-shadow: 0 16px 40px -16px rgba(15, 6, 37, 0.22), inset 0 0 0 1px #ece8f2;
	text-align: left;
	overflow: hidden;
}
.invictus-process__panel-progress {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: #ece8f2;
}
.invictus-process__panel-progress span {
	display: block;
	height: 100%;
	background: linear-gradient(90deg, #6243A4 0%, #5FCAB4 100%);
	transition: width 0.5s cubic-bezier(0.65, 0, 0.35, 1);
}
.invictus-process__panel-body {
	display: flex;
	align-items: flex-start;
	gap: 1.25rem;
}
.invictus-process__panel-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	background: linear-gradient(150deg, #1c1140 0%, #0F0625 100%);
	color: #5FCAB4;
	transition: opacity 0.2s ease, transform 0.2s ease;
}
.invictus-process__panel-icon .invictus-icon {
	width: 1.4rem;
	height: 1.4rem;
}
.invictus-process__panel-copy {
	min-width: 0;
}
.invictus-process__panel-kicker {
	font-family: var(--wp--preset--font-family--poppins);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--violet);
	margin: 0 0 0.4rem;
}
.invictus-process__panel-text {
	margin: 0;
	font-size: 1.05rem;
	line-height: 1.6;
	color: var(--wp--preset--color--text-dark);
}
.invictus-process__panel.is-swap .invictus-process__panel-text,
.invictus-process__panel.is-swap .invictus-process__panel-kicker {
	opacity: 0;
	transform: translateY(6px);
}
.invictus-process__panel.is-swap .invictus-process__panel-icon {
	opacity: 0;
	transform: scale(0.8);
}
.invictus-process__panel-kicker,
.invictus-process__panel-text {
	transition: opacity 0.22s ease, transform 0.22s ease;
}

@media (max-width: 900px) {
	.invictus-process {
		margin-top: 2rem;
	}
	.invictus-process__steps {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		row-gap: 1.75rem;
	}
	.invictus-process__track { display: none; }
	.invictus-process__step { max-width: 8rem; margin: 0 auto; }
	.invictus-process__panel-body { gap: 1rem; }
	.invictus-process__panel-icon { width: 2.5rem; height: 2.5rem; }
}
@media (max-width: 480px) {
	.invictus-process__panel { padding: 1.25rem 1.35rem; }
	.invictus-process__panel-body { flex-direction: column; }
}

/* ── Prozess-Schritte (redaktionell) ── */
.invictus-steps {
	display: grid;
	gap: 2rem 2.5rem;
}
@media (min-width: 782px) {
	.invictus-steps { grid-template-columns: 1fr 1fr; }
}
.invictus-step h3 {
	margin: 0 0 0.4rem;
	color: var(--wp--preset--color--primary-dark);
}
.invictus-step h3 span {
	display: block;
	font-size: 0.75rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--violet);
	margin-bottom: 0.25rem;
	font-weight: 600;
}
.invictus-step p {
	margin: 0;
	color: var(--wp--preset--color--text-muted);
}

/* ── Leistungen: Liste statt SaaS-Karten ── */
.invictus-service {
	padding: 1.25rem 0;
	border-bottom: 1px solid var(--wp--preset--color--border);
}
.invictus-service:first-child { border-top: 1px solid var(--wp--preset--color--border); }
.invictus-service h3 {
	margin: 0 0 0.35rem;
	color: var(--wp--preset--color--primary-dark);
}
.invictus-service p { margin: 0 0 0.4rem; }
.invictus-service a {
	font-family: var(--wp--preset--font-family--poppins);
	font-size: 0.9rem;
	font-weight: 600;
}

/* Fallback für bestehende Karten-Klassen: kein Lift, kein Glow */
.invictus-pillar-card,
.invictus-card,
.invictus-tool-card,
.invictus-stat {
	border-radius: 0 !important;
	box-shadow: none !important;
	transform: none !important;
	transition: none !important;
}
.invictus-pillar-card::before,
.invictus-cta-section::before,
.invictus-seminar-teaser::before,
.invictus-seminar-teaser::after,
.invictus-stats::before {
	content: none !important;
	display: none !important;
}
.invictus-icon-badge {
	display: none;
}
.invictus-stat__value {
	font-family: var(--wp--preset--font-family--poppins);
	font-size: clamp(2rem, 4vw, 2.75rem);
	font-weight: 600;
	color: var(--wp--preset--color--mint);
	margin: 0 0 0.35rem;
	background: none;
	-webkit-background-clip: unset;
	background-clip: unset;
}

/* Trust / Stefan */
.invictus-person {
	display: flex;
	gap: 1.75rem;
	align-items: flex-start;
}
.invictus-person img {
	width: 140px;
	height: 180px;
	object-fit: cover;
	object-position: top;
	flex: none;
}
.invictus-person h3 { margin: 0 0 0.2rem; }
.invictus-person .invictus-role {
	font-size: 0.95rem;
	color: var(--wp--preset--color--text-muted);
	margin: 0 0 0.75rem;
}
@media (max-width: 600px) {
	.invictus-person { flex-direction: column; }
	.invictus-person img { width: 110px; height: 140px; }
}

/* Seminar: solides Dunkel, kein Verlauf */
.invictus-seminar-teaser {
	background: #0F0625 !important;
}
.invictus-seminar-card {
	background: rgba(255,255,255,0.04);
	border: 1px solid rgba(255,255,255,0.12);
}
.invictus-chip {
	display: inline-flex;
	padding: 0.3rem 0.75rem;
	margin: 0 0.35rem 0.35rem 0 !important;
	border: 1px solid rgba(255,255,255,0.22);
	color: #fff;
	font-size: 0.8rem;
	font-weight: 500;
}
.invictus-seminar-list { padding-left: 1.1rem; }
.invictus-seminar-list li { padding: 0.35rem 0; }

/* CTA */
.invictus-cta-section {
	background: #0F0625 !important;
}
.invictus-cta-section .invictus-contact-card {
	background: #fff;
}
.invictus-cta-section a { color: var(--wp--preset--color--mint); }

.invictus-main-nav .wp-block-navigation__responsive-container-open,
.invictus-main-nav .wp-block-navigation__responsive-container-close {
	color: #fff;
}

/* Icons nur als kleine Linie, ohne Badge-Animation */
.invictus-icon { width: 1.25rem; height: 1.25rem; }

@media (prefers-reduced-motion: reduce) {
	.invictus-process__circle,
	.invictus-process__badge,
	.invictus-process__name,
	.invictus-process__track-fill,
	.invictus-process__panel-progress span,
	.invictus-process__panel-icon,
	.invictus-process__panel-kicker,
	.invictus-process__panel-text {
		transition: none;
	}
	.invictus-process__step:hover .invictus-process__circle,
	.invictus-process__step.is-active .invictus-process__circle {
		transform: none;
	}
}

@media (max-width: 781px) {
	.invictus-main-nav > .alignwide {
		grid-template-columns: 1fr auto;
		gap: 0.75rem;
	}
	.invictus-main-nav > .alignwide > .wp-block-group {
		gap: 0.6rem;
	}
	/* Logo darf auf schmalen Screens nicht die feste Desktop-Breite behalten —
	   sonst bleibt für Menü-Button und CTA kaum noch Platz. */
	.invictus-logo img {
		width: 132px !important;
		max-width: 132px !important;
	}
	.invictus-main-nav .wp-block-button .wp-block-button__link {
		padding: 0.5rem 0.85rem;
		font-size: 0.78rem;
	}
}

@media (max-width: 400px) {
	.invictus-logo img {
		width: 112px !important;
		max-width: 112px !important;
	}
	.invictus-main-nav .wp-block-button .wp-block-button__link {
		padding: 0.45rem 0.7rem;
		font-size: 0.72rem;
	}
}
