/*
 * JoNa Digital Solutions – Projekte-Unterseite /projekte/ (JDS-15)
 * ===========================================================================
 * Technisches Portfolio mit drei Case Studies (JoNa Protect Business Suite,
 * AtlasJoe, JoNa Content Agent), Projekt-Navigation, Technische-Bandbreite-
 * Section und finalem CTA.
 * Ausschließlich Design-Tokens (--jds-*); nur HTML + CSS, kein JavaScript.
 *
 * Layout:
 *   Desktop >= 1000px : Case Studies als Split (alternierend), Text/Visual getrennt
 *   Tablet 690–999px  : Split gestapelt (Text zuerst)
 *   Mobile   < 690px  : alles 1-spaltig, Text immer zuerst, Buttons volle Breite
 *
 * Version: 1.3.0
 */

/* ===========================================================================
 * DIVI-NEUTRALISIERUNG (nur wenn die Seite vorhanden ist)
 * =========================================================================== */
.et_pb_section:has(.jds-proj-page) {
	padding: 0;
	background-color: var(--jds-bg);
}

.et_pb_section:has(.jds-proj-page) > .et_pb_row {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}

.et_pb_section:has(.jds-proj-page) .et_pb_column {
	margin: 0;
	padding: 0;
}

.et_pb_section:has(.jds-proj-page) .et_pb_code_inner {
	width: 100%;
}

/* ===========================================================================
 * ROOT
 * =========================================================================== */
.jds-proj-page {
	--jds-proj-anchor-offset: calc(var(--jds-header-height-desktop) + var(--jds-space-lg));
	color: var(--jds-text);
}

.jds-proj-page *,
.jds-proj-page *::before,
.jds-proj-page *::after {
	box-sizing: border-box;
}

.jds-proj-page .jds-proj-case {
	scroll-margin-top: var(--jds-proj-anchor-offset);
}

.jds-proj-arrow {
	display: inline-block;
	transition: transform var(--jds-transition-fast);
}

/* ===========================================================================
 * HERO
 * =========================================================================== */
.jds-proj-hero {
	background-color: var(--jds-bg-soft);
	padding-block: var(--jds-section-space);
}

.jds-proj-hero__inner {
	max-width: var(--jds-content-text);
}

.jds-proj-hero__eyebrow {
	margin: 0 0 var(--jds-space-md);
	color: var(--jds-green-dark);
}

.jds-proj-hero__title {
	margin: 0 0 var(--jds-space-md);
	font-size: var(--jds-font-size-h1);
	line-height: var(--jds-line-height-h1);
	letter-spacing: var(--jds-letter-spacing-h1);
	font-weight: var(--jds-font-weight-bold);
	color: var(--jds-heading);
	text-wrap: balance;
}

.jds-proj-hero__accent {
	color: var(--jds-green-dark);
}

.jds-proj-hero__lead {
	margin: 0 0 var(--jds-space-lg);
	color: var(--jds-text-muted);
	font-size: var(--jds-font-size-body-lg);
	line-height: var(--jds-line-height-body-lg);
}

.jds-proj-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--jds-space-md);
}

.jds-proj-hero__cta,
.jds-proj-cta__button {
	min-height: var(--jds-btn-min-height);
}

.jds-proj-hero__cta:hover .jds-proj-arrow,
.jds-proj-hero__cta:focus-visible .jds-proj-arrow,
.jds-proj-cta__button:hover .jds-proj-arrow,
.jds-proj-cta__button:focus-visible .jds-proj-arrow {
	transform: translateX(2px);
}

/* ===========================================================================
 * PROJEKT-NAVIGATION
 * =========================================================================== */
.jds-proj-nav {
	background-color: var(--jds-bg);
	border-bottom: var(--jds-border-width) solid var(--jds-border);
	padding-block: var(--jds-space-md);
}

/* Divi setzt `.entry-content ul { list-style-type: disc; padding: 0 0 23px 1em }`
 * (0,1,1). Dieser gescopete Reset (0,2,0) neutralisiert das NUR für die
 * Projekt-Navigation – kein globales ul/li-Reset. */
.jds-proj-page .jds-proj-nav__list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--jds-space-xs);
	margin: 0;
	padding: 0;
	list-style: none;
}

.jds-proj-page .jds-proj-nav__list > li {
	margin: 0;
	padding: 0;
	list-style: none;
}

.jds-proj-page .jds-proj-nav__list > li::marker {
	content: "";
}

.jds-proj-nav__link {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: var(--jds-space-xs) var(--jds-space-md);
	border: var(--jds-border-width) solid var(--jds-border);
	border-radius: var(--jds-radius-pill);
	background-color: var(--jds-bg);
	color: var(--jds-navy);
	font-size: var(--jds-font-size-body-sm);
	font-weight: var(--jds-font-weight-medium);
	line-height: var(--jds-line-height-ui);
	text-decoration: none;
	transition: background-color var(--jds-transition-fast),
		border-color var(--jds-transition-fast),
		color var(--jds-transition-fast);
}

.jds-proj-nav__link:hover,
.jds-proj-nav__link:focus-visible {
	background-color: var(--jds-bg-blue-soft);
	border-color: var(--jds-border-strong);
	color: var(--jds-navy-dark);
}

/* ===========================================================================
 * CASE STUDIES
 * =========================================================================== */
.jds-proj-case {
	padding-block: var(--jds-section-space);
}

.jds-proj-case--business-suite {
	background-color: var(--jds-bg-blue-soft);
}

.jds-proj-case--atlasjoe {
	background-color: var(--jds-bg-green-soft);
}

.jds-proj-case--content-agent {
	background-color: var(--jds-bg-soft);
}

.jds-proj-split {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
	gap: var(--jds-grid-gap);
	align-items: start;
}

.jds-proj-split__content {
	min-width: 0;
}

.jds-proj-case__eyebrow {
	margin: 0 0 var(--jds-space-sm);
	color: var(--jds-green-dark);
}

/* Status: bewusst als Text-Badge (nicht nur Farbe). */
.jds-proj-status {
	display: inline-flex;
	align-items: center;
	gap: var(--jds-space-xs);
	margin: 0 0 var(--jds-space-md);
	padding: 4px var(--jds-space-md);
	border: var(--jds-border-width) solid var(--jds-border-strong);
	border-radius: var(--jds-radius-pill);
	background-color: var(--jds-bg);
	font-size: var(--jds-font-size-body-sm);
	line-height: var(--jds-line-height-ui);
}

.jds-proj-status__label {
	color: var(--jds-text-muted);
	font-weight: var(--jds-font-weight-medium);
}

.jds-proj-status__value {
	color: var(--jds-heading);
	font-weight: var(--jds-font-weight-semibold);
}

.jds-proj-case__title {
	margin: 0 0 var(--jds-space-md);
	font-size: var(--jds-font-size-h2);
	line-height: var(--jds-line-height-h2);
	letter-spacing: var(--jds-letter-spacing-h2);
	color: var(--jds-heading);
	text-wrap: balance;
}

.jds-proj-case__lead {
	margin: 0 0 var(--jds-space-xl);
	color: var(--jds-text);
	font-size: var(--jds-font-size-body-lg);
	line-height: var(--jds-line-height-body-lg);
}

/* Ausgangslage / Ziel / Lösung */
.jds-proj-facts {
	display: flex;
	flex-direction: column;
	gap: var(--jds-space-lg);
}

.jds-proj-fact {
	padding-left: var(--jds-space-md);
	border-left: 2px solid var(--jds-green);
}

.jds-proj-fact__title {
	margin: 0 0 var(--jds-space-xs);
	font-size: var(--jds-font-size-h3);
	line-height: var(--jds-line-height-h3);
	letter-spacing: var(--jds-letter-spacing-h3);
	color: var(--jds-heading);
}

.jds-proj-fact__text {
	margin: 0;
	color: var(--jds-text-muted);
	font-size: var(--jds-font-size-body);
	line-height: var(--jds-line-height-body);
}

/* ===========================================================================
 * DETAILS (Kernfunktionen + Technologien)
 * =========================================================================== */
.jds-proj-detail {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
	gap: var(--jds-grid-gap);
	margin-top: var(--jds-space-2xl);
	padding-top: var(--jds-space-2xl);
	border-top: var(--jds-border-width) solid var(--jds-border);
}

.jds-proj-detail__title {
	margin: 0 0 var(--jds-space-md);
	font-size: var(--jds-font-size-h3);
	line-height: var(--jds-line-height-h3);
	letter-spacing: var(--jds-letter-spacing-h3);
	color: var(--jds-heading);
}

.jds-proj-page .jds-proj-features,
.jds-proj-page .jds-proj-tech {
	margin: 0;
	padding: 0;
	list-style: none;
}

.jds-proj-page .jds-proj-features > li,
.jds-proj-page .jds-proj-tech > li {
	list-style: none;
}

.jds-proj-page .jds-proj-features > li::marker,
.jds-proj-page .jds-proj-tech > li::marker {
	content: "";
}

.jds-proj-features {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--jds-space-sm) var(--jds-grid-gap);
}

.jds-proj-features__item {
	position: relative;
	padding-left: 28px;
	color: var(--jds-text);
	font-size: var(--jds-font-size-body);
	line-height: var(--jds-line-height-body);
}

.jds-proj-features__item::before {
	content: "";
	position: absolute;
	left: 2px;
	top: 0.5em;
	width: 11px;
	height: 6px;
	border-left: 2px solid var(--jds-green);
	border-bottom: 2px solid var(--jds-green);
	transform: rotate(-45deg);
}

.jds-proj-tech {
	display: flex;
	flex-wrap: wrap;
	gap: var(--jds-space-xs);
}

.jds-proj-tech__tag {
	display: inline-flex;
	align-items: center;
	padding: 3px var(--jds-space-sm);
	border: var(--jds-border-width) solid var(--jds-border);
	border-radius: var(--jds-radius-pill);
	background-color: var(--jds-bg);
	color: var(--jds-navy);
	font-size: var(--jds-font-size-body-sm);
	line-height: var(--jds-line-height-ui);
}

.jds-proj-detail__status {
	margin: var(--jds-space-md) 0 0;
	color: var(--jds-text-muted);
	font-size: var(--jds-font-size-body-sm);
	line-height: var(--jds-line-height-body);
}

.jds-proj-detail__status strong {
	color: var(--jds-heading);
}

/* ===========================================================================
 * VISUALS (dekorativ) – gemeinsam
 * =========================================================================== */
.jds-proj-visual {
	display: flex;
	justify-content: center;
}

.jds-proj-visual__window {
	width: 100%;
	max-width: 440px;
	display: flex;
	flex-direction: column;
	gap: var(--jds-space-sm);
	padding: var(--jds-space-lg);
	border: var(--jds-border-width) solid var(--jds-border);
	border-radius: var(--jds-radius-large);
	background-color: var(--jds-white);
	box-shadow: var(--jds-shadow-subtle);
}

.jds-proj-visual__bar {
	display: flex;
	gap: 5px;
}

.jds-proj-visual__dot {
	width: 8px;
	height: 8px;
	border-radius: var(--jds-radius-pill);
	background-color: var(--jds-border);
}

.jds-proj-visual__dot:first-child {
	background-color: var(--jds-green);
}

.jds-proj-visual__chip {
	display: inline-flex;
	align-items: center;
	padding: 2px var(--jds-space-xs);
	border: var(--jds-border-width) solid var(--jds-border);
	border-radius: var(--jds-radius-pill);
	background-color: var(--jds-bg-soft);
	color: var(--jds-navy);
	font-size: var(--jds-font-size-xs);
	line-height: var(--jds-line-height-ui);
	white-space: nowrap;
}

.jds-proj-visual__chips {
	display: flex;
	flex-wrap: wrap;
	gap: var(--jds-space-xs);
}

.jds-proj-visual__line {
	display: block;
	height: 8px;
	border-radius: var(--jds-radius-pill);
	background-color: var(--jds-bg-blue-soft);
}

.jds-proj-visual__line--short {
	width: 45%;
	background-color: var(--jds-bg-green-soft);
}

.jds-proj-visual__status {
	width: 10px;
	height: 10px;
	flex: 0 0 auto;
	border-radius: var(--jds-radius-pill);
	background-color: var(--jds-green);
}

.jds-proj-visual__row {
	display: flex;
	align-items: center;
	gap: var(--jds-space-sm);
	color: var(--jds-text-muted);
	font-size: var(--jds-font-size-body-sm);
	line-height: var(--jds-line-height-ui);
}

/* Suite */
.jds-proj-visual__cols {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
	gap: var(--jds-space-sm);
}

.jds-proj-visual__nav {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.jds-proj-visual__nav-item {
	padding: 5px var(--jds-space-xs);
	border-radius: var(--jds-radius-small);
	color: var(--jds-text-muted);
	font-size: var(--jds-font-size-xs);
	line-height: var(--jds-line-height-ui);
}

.jds-proj-visual__nav-item--active {
	background-color: var(--jds-bg-blue-soft);
	color: var(--jds-navy-dark);
}

.jds-proj-visual__cards {
	display: flex;
	flex-direction: column;
	gap: var(--jds-space-xs);
}

.jds-proj-visual__card {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: var(--jds-space-sm);
	border: var(--jds-border-width) solid var(--jds-border);
	border-radius: var(--jds-radius-medium);
	background-color: var(--jds-bg-soft);
}

/* AtlasJoe */
.jds-proj-visual__trip {
	display: inline-flex;
	align-items: center;
	padding: 3px var(--jds-space-sm);
	align-self: flex-start;
	border-radius: var(--jds-radius-pill);
	background-color: var(--jds-navy);
	color: var(--jds-white);
	font-size: var(--jds-font-size-xs);
	font-weight: var(--jds-font-weight-medium);
}

.jds-proj-visual__route {
	display: block;
	height: 3px;
	border-radius: var(--jds-radius-pill);
	background-image: linear-gradient(
		90deg,
		var(--jds-navy) 0%,
		var(--jds-navy) 45%,
		var(--jds-green) 45%,
		var(--jds-green) 100%
	);
}

/* Content Agent pipeline */
.jds-proj-visual__thumbs {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--jds-space-xs);
}

.jds-proj-visual__thumb {
	display: block;
	height: 34px;
	border-radius: var(--jds-radius-medium);
	border: var(--jds-border-width) solid var(--jds-border);
	background-color: var(--jds-bg-blue-soft);
}

.jds-proj-visual__thumb:nth-child(2) {
	background-color: var(--jds-bg-green-soft);
}

.jds-proj-visual__arrow {
	align-self: center;
	width: 10px;
	height: 10px;
	border-top: 2px solid var(--jds-green);
	border-right: 2px solid var(--jds-green);
	transform: rotate(135deg);
}

.jds-proj-visual__clusters,
.jds-proj-visual__boards {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--jds-space-xs);
}

.jds-proj-visual__cluster,
.jds-proj-visual__board {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 30px;
	padding: var(--jds-space-xs);
	border: var(--jds-border-width) solid var(--jds-border);
	border-radius: var(--jds-radius-medium);
	background-color: var(--jds-bg-soft);
	color: var(--jds-text-muted);
	font-size: var(--jds-font-size-xs);
	line-height: var(--jds-line-height-ui);
}

.jds-proj-visual__board {
	background-color: var(--jds-white);
	color: var(--jds-navy);
}

/* ===========================================================================
 * TECHNISCHE BANDBREITE
 * =========================================================================== */
.jds-proj-breadth {
	background-color: var(--jds-bg);
	padding-block: var(--jds-section-space);
}

.jds-proj-breadth__intro {
	max-width: var(--jds-content-text);
	margin: 0 0 var(--jds-space-2xl);
}

.jds-proj-breadth__eyebrow {
	margin: 0 0 var(--jds-space-md);
	color: var(--jds-green-dark);
}

.jds-proj-breadth__title {
	margin: 0 0 var(--jds-space-md);
	font-size: var(--jds-font-size-h2);
	line-height: var(--jds-line-height-h2);
	letter-spacing: var(--jds-letter-spacing-h2);
	color: var(--jds-heading);
	text-wrap: balance;
}

.jds-proj-breadth__text {
	margin: 0;
	color: var(--jds-text-muted);
	font-size: var(--jds-font-size-body-lg);
	line-height: var(--jds-line-height-body-lg);
}

.jds-proj-page .jds-proj-breadth__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--jds-grid-gap);
	margin: 0;
	padding: 0;
	list-style: none;
}

.jds-proj-page .jds-proj-breadth__grid > li {
	list-style: none;
}

.jds-proj-page .jds-proj-breadth__grid > li::marker {
	content: "";
}

.jds-proj-breadth__item {
	padding: var(--jds-space-lg);
	border: var(--jds-border-width) solid var(--jds-border);
	border-radius: var(--jds-radius-large);
	background-color: var(--jds-bg-soft);
	color: var(--jds-heading);
	font-size: var(--jds-font-size-body);
	font-weight: var(--jds-font-weight-medium);
	line-height: var(--jds-line-height-body);
}

/* ===========================================================================
 * FINALER CTA (dunkel)
 * =========================================================================== */
.jds-proj-cta {
	background-color: var(--jds-navy-band);
	background-image: linear-gradient(
		180deg,
		var(--jds-navy-deep) 0%,
		var(--jds-navy-band) 100%
	);
	color: var(--jds-text-inverse);
	padding-block: var(--jds-section-space-sm);
	border-bottom: var(--jds-border-width) solid var(--jds-border-on-dark);
}

.jds-proj-cta__inner {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
	gap: var(--jds-grid-gap);
	align-items: center;
}

.jds-proj-cta__eyebrow {
	margin: 0 0 var(--jds-space-md);
	color: var(--jds-green);
}

.jds-proj-cta__title {
	margin: 0 0 var(--jds-space-md);
	font-size: var(--jds-font-size-h2);
	line-height: var(--jds-line-height-h2);
	letter-spacing: var(--jds-letter-spacing-h2);
	color: var(--jds-text-inverse);
	text-wrap: balance;
	max-width: 26ch;
}

.jds-proj-cta__text {
	margin: 0;
	color: var(--jds-text-inverse-muted);
	font-size: var(--jds-font-size-body);
	line-height: var(--jds-line-height-body);
	max-width: var(--jds-measure-tight);
}

.jds-proj-cta__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--jds-space-md);
}

/* ===========================================================================
 * TABLET (690–999px)
 * =========================================================================== */
@media (min-width: 690px) and (max-width: 999px) {
	.jds-proj-page {
		--jds-proj-anchor-offset: calc(var(--jds-header-height-mobile) + var(--jds-space-lg));
	}

	.jds-proj-split {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--jds-space-xl);
	}

	.jds-proj-split--reverse .jds-proj-split__media {
		order: 0;
	}

	.jds-proj-detail {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--jds-space-xl);
	}

	.jds-proj-breadth__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.jds-proj-cta__inner {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--jds-space-xl);
	}
}

/* ===========================================================================
 * MOBILE (< 690px)
 * =========================================================================== */
@media (max-width: 689px) {
	.jds-proj-page {
		--jds-proj-anchor-offset: calc(var(--jds-header-height-mobile-compact) + var(--jds-space-lg));
	}

	.jds-proj-hero {
		padding-block: var(--jds-space-2xl);
	}

	.jds-proj-hero__actions,
	.jds-proj-hero__cta {
		width: 100%;
	}

	.jds-proj-case {
		padding-block: var(--jds-space-2xl);
	}

	.jds-proj-split {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--jds-space-xl);
	}

	/* Mobile immer Text zuerst, unabhängig von der Desktop-Reihenfolge. */
	.jds-proj-split--reverse .jds-proj-split__media {
		order: 0;
	}

	.jds-proj-case__lead {
		margin-bottom: var(--jds-space-lg);
	}

	.jds-proj-detail {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--jds-space-xl);
		margin-top: var(--jds-space-xl);
		padding-top: var(--jds-space-xl);
	}

	.jds-proj-features {
		grid-template-columns: minmax(0, 1fr);
	}

	.jds-proj-breadth {
		padding-block: var(--jds-space-2xl);
	}

	.jds-proj-breadth__intro {
		margin-bottom: var(--jds-space-xl);
	}

	.jds-proj-breadth__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--jds-space-lg);
	}

	.jds-proj-cta {
		padding-block: var(--jds-space-2xl);
	}

	.jds-proj-cta__inner {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--jds-space-xl);
	}

	.jds-proj-cta__title {
		max-width: none;
	}

	.jds-proj-cta__actions {
		flex-direction: column;
		align-items: stretch;
	}

	.jds-proj-cta__button {
		width: 100%;
		justify-content: center;
		min-height: 48px;
	}

	.jds-proj-nav__link {
		min-height: 48px;
	}
}

/* ===========================================================================
 * REDUCED MOTION
 * =========================================================================== */
@media (prefers-reduced-motion: reduce) {
	.jds-proj-arrow,
	.jds-proj-nav__link {
		transition: none;
	}
}