/**
 * Partner-Programm Frontend — Bento-Layout, hochwertig B2B
 *
 * Icons: SVG-Line-Icons statt Emoji
 * Farben: Klare Kante, kein verwaschenes Blau-Grau
 * Typografie: Groß, klar, hierarchisch
 */

/* ══════════════════════════════════════════════════════════════════════
   0. VARIABLEN
   ══════════════════════════════════════════════════════════════════════ */
:root {
	--tsp-teal:       #07777F;
	--tsp-teal-dark:  #005a61;
	--tsp-cyan:       #00B9BC;
	--tsp-cyan-dark:  #009da0;
	--tsp-ink:        #1a1a1a;
	--tsp-ink-soft:   #2a2a2a;
	--tsp-slate:      #4a4a4a;
	--tsp-slate-2:    #6a6a6a;
	--tsp-fog:        #f8f8f8;
	--tsp-mist:       #fafafa;
	--tsp-line:       #e5e5e5;
	--tsp-dark:       #111111;

	--tsp-card-radius: 20px;
	--tsp-card-bg:     #ffffff;
	--tsp-card-shadow: 0 1px 3px rgba(0,0,0,0.04), 0 10px 30px -10px rgba(0,0,0,0.08);
	--tsp-card-shadow-hover: 0 4px 12px rgba(0,0,0,0.06), 0 20px 50px -12px rgba(7,119,127,0.15);

	--tsp-font-display: "Geist", "Roboto", system-ui, sans-serif;
	--tsp-font-body:    "Roboto", system-ui, sans-serif;
}

/* ══════════════════════════════════════════════════════════════════════
   1. BASE
   ══════════════════════════════════════════════════════════════════════ */
.tsp-landing { color: var(--tsp-ink); font-family: var(--tsp-font-body); font-size: 16px; line-height: 1.6; }
.tsp-landing * { box-sizing: border-box; }
.tsp-b-container { max-width: 1280px; margin: 0 auto; padding: 0 24px; }

.tsp-display,
.tsp-landing h1, .tsp-landing h2, .tsp-landing h3 { font-family: var(--tsp-font-display); font-weight: 700; }

.tsp-display {
	font-size: clamp(42px, 5.5vw, 64px);
	line-height: 1.05;
	letter-spacing: -0.03em;
	color: var(--tsp-ink);
	margin: 0 0 24px;
}
.tsp-hl {
	background: linear-gradient(135deg, var(--tsp-teal) 0%, var(--tsp-cyan) 100%);
	-webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}

.tsp-lead {
	font-size: 18px; line-height: 1.65; color: var(--tsp-slate);
	margin: 0 0 32px; max-width: 620px;
}

.tsp-kicker {
	display: inline-block;
	padding: 6px 16px;
	background: rgba(0,185,188,0.08); color: var(--tsp-teal-dark);
	font-size: 10px; font-weight: 700; letter-spacing: 1.6px; text-transform: uppercase;
	border-radius: 999px; margin-bottom: 20px;
	font-family: var(--tsp-font-display);
}
.tsp-kicker--on-dark { background: rgba(0,185,188,0.15); color: #7cded9; }

.tsp-h2 {
	color: var(--tsp-ink);
	font-size: clamp(30px, 3.8vw, 44px);
	line-height: 1.1; letter-spacing: -0.02em;
	margin: 0 0 16px;
}
.tsp-h2--light { color: #fff; }

.tsp-h2-sub {
	color: var(--tsp-slate); font-size: 17px; line-height: 1.65;
	max-width: 760px; margin: 0 0 40px;
}

.tsp-section-head { margin-bottom: 50px; }
.tsp-section-head--center { text-align: center; }
.tsp-section-head--center .tsp-h2-sub { margin-left: auto; margin-right: auto; }

/* ══════════════════════════════════════════════════════════════════════
   2. BUTTONS
   ══════════════════════════════════════════════════════════════════════ */
.tsp-btn {
	display: inline-flex; align-items: center; justify-content: center;
	gap: 8px;
	padding: 14px 28px;
	border: none; border-radius: 9999px;
	background: var(--tsp-cyan); color: #fff !important; text-decoration: none;
	font-family: var(--tsp-font-body);
	font-weight: 600; font-size: 15px; letter-spacing: 0.02em;
	cursor: pointer; line-height: 1;
	transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
	box-shadow: 0 8px 24px rgba(0,185,188,0.25);
}
.tsp-btn:hover, .tsp-btn:focus-visible {
	background: var(--tsp-cyan-dark); transform: translateY(-2px);
	box-shadow: 0 12px 32px rgba(0,185,188,0.35);
	outline: none;
}
.tsp-btn__arrow { transition: transform 0.2s ease; }
.tsp-btn:hover .tsp-btn__arrow { transform: translateX(4px); }

.tsp-btn--lg { padding: 16px 32px; font-size: 16px; }
.tsp-btn--primary { /* alias */ }
.tsp-btn--ghost {
	background: transparent !important; color: var(--tsp-teal-dark) !important;
	border: 1.5px solid rgba(0,185,188,0.30);
	box-shadow: none;
}
.tsp-btn--ghost:hover {
	background: rgba(0,185,188,0.05) !important;
	border-color: var(--tsp-cyan);
	box-shadow: none;
}
.tsp-btn[disabled] { opacity: 0.5; cursor: wait; transform: none; }

/* ══════════════════════════════════════════════════════════════════════
   3. BENTO-CARD BASE
   ══════════════════════════════════════════════════════════════════════ */
.tsp-b-card {
	background: var(--tsp-card-bg);
	border: 1px solid var(--tsp-line);
	border-radius: var(--tsp-card-radius);
	padding: 32px;
	box-shadow: var(--tsp-card-shadow);
	transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
	position: relative;
}
.tsp-b-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--tsp-card-shadow-hover);
	border-color: rgba(0,185,188,0.25);
}
.tsp-b-card h3 {
	font-size: 20px; font-weight: 600; color: var(--tsp-ink); margin: 0 0 12px;
	letter-spacing: -0.01em; line-height: 1.3;
}
.tsp-b-card p {
	color: var(--tsp-slate); font-size: 15px; line-height: 1.65; margin: 0;
}

/* Icon styling */
.tsp-b-card__icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 52px; height: 52px; border-radius: 14px;
	background: rgba(0,185,188,0.08);
	color: var(--tsp-teal);
	margin-bottom: 18px;
}
.tsp-b-card__icon svg { width: 26px; height: 26px; }

.tsp-b-card--accent {
	background: linear-gradient(135deg, var(--tsp-teal) 0%, var(--tsp-cyan) 100%);
	color: #fff; border-color: transparent;
}
.tsp-b-card--accent h3 { color: #fff; }
.tsp-b-card--accent p { color: rgba(255,255,255,0.90); }
.tsp-b-card--accent .tsp-b-card__icon { background: rgba(255,255,255,0.15); color: #fff; }
.tsp-b-card--accent .tsp-b-card__icon svg { stroke: #fff; }

/* ══════════════════════════════════════════════════════════════════════
   4. HERO BENTO
   ══════════════════════════════════════════════════════════════════════ */
.tsp-hero-bento {
	/* Top-Padding muss den transparenten Header (~89px) plus Puffer klären,
	   damit die Bento-Kacheln nicht unter dem Menü kleben. */
	padding: 130px 0 80px;
	background: linear-gradient(180deg, #ffffff 0%, #fafafa 100%);
}
@media (max-width: 780px) {
	.tsp-hero-bento { padding-top: 110px; }
}
.tsp-hero-grid {
	display: grid;
	grid-template-columns: 1.5fr 1fr;
	grid-template-rows: auto auto;
	grid-template-areas:
		"main live"
		"image trust";
	gap: 20px;
}
.tsp-b-card--hero-main {
	grid-area: main;
	padding: 48px;
	display: flex; flex-direction: column; justify-content: center;
	min-height: 400px;
}
.tsp-b-card--hero-main:hover { transform: none; box-shadow: var(--tsp-card-shadow); border-color: var(--tsp-line); }
.tsp-b-card--hero-live {
	grid-area: live;
	background: linear-gradient(180deg, #0d1f22 0%, #1a3338 100%);
	border-color: transparent;
	color: #cbe3e5;
	padding: 32px;
	display: flex; flex-direction: column; gap: 18px;
	min-height: 400px;
}
.tsp-b-card--hero-live:hover { border-color: transparent; transform: none; box-shadow: var(--tsp-card-shadow); }
.tsp-b-card--hero-image {
	grid-area: image;
	padding: 0; overflow: hidden;
	min-height: 240px;
}
.tsp-b-card--hero-image:hover { transform: none; }
.tsp-b-card--hero-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.tsp-img-slot {
	position: relative; height: 100%; min-height: 240px;
	display: flex; align-items: center; justify-content: center;
	background: linear-gradient(135deg, var(--tsp-teal) 0%, var(--tsp-cyan) 100%);
}
.tsp-img-slot svg { display: block; width: 100%; height: 100%; }
.tsp-img-slot__label {
	position: absolute; bottom: 16px; left: 50%; transform: translateX(-50%);
	background: rgba(0,0,0,0.6); color: #fff; padding: 6px 14px;
	border-radius: 999px; font-size: 12px; font-family: var(--tsp-font-body);
}
.tsp-b-card--hero-trust {
	grid-area: trust;
	padding: 24px;
	display: flex; align-items: center;
}

.tsp-hero-cta { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 12px; }

/* Trust-Chips */
.tsp-trust-chips {
	list-style: none; padding: 0; margin: 0; display: grid;
	grid-template-columns: 1fr 1fr; gap: 14px 24px; width: 100%;
}
.tsp-trust-chips li {
	display: flex; align-items: center; gap: 12px;
	font-size: 14px; color: var(--tsp-ink-soft); font-weight: 500;
}
.tsp-trust-badge {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 44px; height: 28px; padding: 0 10px;
	background: rgba(7,119,127,0.10); color: var(--tsp-teal-dark);
	border-radius: 6px;
	font-family: var(--tsp-font-display); font-size: 11px; font-weight: 700; letter-spacing: 0.5px;
}

/* Live-Card (Insider) */
.tsp-live-tag {
	display: inline-flex; align-items: center; gap: 10px;
	font-size: 10px; letter-spacing: 1.6px; text-transform: uppercase;
	font-weight: 700; color: #7cded9; font-family: var(--tsp-font-display);
}
.tsp-live-dot {
	width: 8px; height: 8px; border-radius: 50%;
	background: var(--tsp-cyan); box-shadow: 0 0 12px var(--tsp-cyan);
	animation: tsp-pulse 2s ease-in-out infinite;
}
@keyframes tsp-pulse { 50% { opacity: 0.3; } }
.tsp-landing .tsp-live-title,
.tsp-b-card--hero-live .tsp-live-title { color: #fff; margin: 0; font-size: 22px; font-weight: 600; letter-spacing: -0.01em; }
.tsp-live-kpis { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.tsp-live-kpi {
	background: rgba(255,255,255,0.06); border-radius: 14px; padding: 16px;
	border: 1px solid rgba(255,255,255,0.08);
}
.tsp-live-kpi--accent {
	background: linear-gradient(135deg, var(--tsp-teal) 0%, var(--tsp-cyan) 100%);
	border-color: transparent;
}
.tsp-live-kpi__label {
	display: block; color: rgba(255,255,255,0.60); font-size: 9px;
	letter-spacing: 1px; text-transform: uppercase; margin-bottom: 8px;
	font-family: var(--tsp-font-display); font-weight: 600;
}
.tsp-live-kpi__value {
	display: block; color: #fff; font-size: 28px; font-weight: 700; letter-spacing: -0.02em;
	font-family: var(--tsp-font-display);
}
.tsp-live-spark { height: 80px; }
.tsp-live-spark svg { width: 100%; height: 100%; }
.tsp-spark-line { stroke-dasharray: 500; stroke-dashoffset: 500; animation: tsp-draw 2.5s ease forwards 0.4s; }
@keyframes tsp-draw { to { stroke-dashoffset: 0; } }
.tsp-live-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.tsp-live-list li {
	display: flex; align-items: center; gap: 12px;
	padding: 12px 14px; background: rgba(255,255,255,0.05); border-radius: 12px;
	font-size: 13px; color: rgba(255,255,255,0.90);
}
.tsp-live-list li b { color: #fff; font-weight: 600; }
.tsp-live-dot--new { background: var(--tsp-cyan); box-shadow: 0 0 12px var(--tsp-cyan); animation: tsp-pulse 1.8s infinite; }
.tsp-live-dot--ok  { background: #4ec96e; }

@media (max-width: 960px) {
	.tsp-hero-grid {
		grid-template-columns: 1fr;
		grid-template-areas: "main" "live" "image" "trust";
	}
	.tsp-b-card--hero-main { min-height: 0; padding: 36px; }
	.tsp-b-card--hero-live { min-height: 0; }
	.tsp-b-card--hero-image { min-height: 220px; }
}

/* ══════════════════════════════════════════════════════════════════════
   5. PROMISE BENTO
   ══════════════════════════════════════════════════════════════════════ */
.tsp-section { padding: 90px 0; }
.tsp-section--muted { background: var(--tsp-fog); }

.tsp-bento {
	display: grid;
	gap: 20px;
}
.tsp-bento--promise {
	grid-template-columns: repeat(3, 1fr);
	grid-auto-rows: minmax(240px, auto);
}
.tsp-bento--promise .tsp-b-card--wide {
	grid-column: span 2; grid-row: span 2;
	padding: 40px;
}
.tsp-b-card--wide h3 { font-size: 26px; margin-bottom: 16px; }
.tsp-b-card--wide p { font-size: 16px; }

.tsp-b-card__mini-viz {
	display: flex; gap: 10px; margin-top: 24px; flex-wrap: wrap;
}
.tsp-viz-chip {
	padding: 6px 14px; border-radius: 999px;
	font-family: var(--tsp-font-display); font-size: 11px; font-weight: 700; letter-spacing: 0.8px;
}
.tsp-viz-chip--new { background: rgba(0,185,188,0.12); color: var(--tsp-teal-dark); }
.tsp-viz-chip--wip { background: rgba(240,192,96,0.15); color: #b6791f; }
.tsp-viz-chip--ok  { background: rgba(78,201,110,0.15); color: #1e7e34; }
.tsp-viz-chip--won { background: rgba(7,119,127,0.12); color: var(--tsp-teal-dark); }

@media (max-width: 960px) {
	.tsp-bento--promise { grid-template-columns: repeat(2, 1fr); }
	.tsp-bento--promise .tsp-b-card--wide { grid-column: span 2; grid-row: auto; }
}
@media (max-width: 620px) {
	.tsp-bento--promise { grid-template-columns: 1fr; }
	.tsp-bento--promise .tsp-b-card--wide { grid-column: auto; }
}

/* ══════════════════════════════════════════════════════════════════════
   6. DASHBOARD PREVIEW (dunkel)
   ══════════════════════════════════════════════════════════════════════ */
.tsp-section--dark {
	background: radial-gradient(ellipse 1200px 700px at 50% 50%, #1a3338 0%, #0d1f22 100%);
	color: #cbe3e5;
	position: relative; overflow: hidden;
}
.tsp-section--dark::before {
	content: '';
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse 800px 400px at 80% 30%, rgba(0,185,188,0.03), transparent);
	pointer-events: none;
}
.tsp-section--dark .tsp-h2-sub { color: rgba(203,227,229,0.80); position: relative; }

.tsp-dashprev {
	display: grid; grid-template-columns: 1fr 1.3fr; gap: 60px; align-items: center;
	position: relative;
}
.tsp-dashprev__copy { position: relative; }
.tsp-dashprev__lead { color: #cbe3e5; font-size: 17px; line-height: 1.7; margin: 0 0 28px; position: relative; }
.tsp-dashprev__pts { list-style: none; padding: 0; margin: 0 0 32px; color: #cbe3e5; font-size: 15px; position: relative; }
.tsp-dashprev__pts li { padding: 10px 0; position: relative; }

.tsp-mock {
	background: #0a1416; border-radius: 16px; overflow: hidden;
	box-shadow: 0 40px 80px rgba(0,0,0,0.5);
	transform: perspective(1600px) rotateY(-4deg) rotateX(1deg);
	transition: transform 0.5s ease;
	border: 1px solid rgba(255,255,255,0.05);
}
.tsp-dashprev:hover .tsp-mock { transform: perspective(1600px) rotateY(-2deg) rotateX(0.5deg); }
.tsp-mock__topbar {
	display: flex; align-items: center; gap: 8px; padding: 14px 18px;
	background: rgba(0,0,0,0.4); border-bottom: 1px solid rgba(255,255,255,0.05);
}
.tsp-mock__topbar .tsp-mock__dot { width: 12px; height: 12px; border-radius: 50%; background: #3a4a52; }
.tsp-mock__url { margin-left: 16px; color: #6b8088; font-size: 11px; font-family: monospace; letter-spacing: 0.5px; }
.tsp-mock__body { display: grid; grid-template-columns: 180px 1fr; min-height: 360px; }
.tsp-mock__nav { background: rgba(0,0,0,0.3); padding: 20px 14px; display: flex; flex-direction: column; gap: 8px; border-right: 1px solid rgba(255,255,255,0.05); }
.tsp-mock__brand { color: var(--tsp-cyan); font-weight: 700; font-size: 15px; margin-bottom: 16px; font-family: var(--tsp-font-display); letter-spacing: -0.01em; }
.tsp-mock__navi { color: #8a9aa2; font-size: 13px; padding: 10px 12px; border-radius: 8px; font-family: var(--tsp-font-display); font-weight: 500; transition: background 0.2s; }
.tsp-mock__navi--active { background: rgba(0,185,188,0.20); color: var(--tsp-cyan); }
.tsp-mock__main { padding: 24px; display: flex; flex-direction: column; gap: 16px; }
.tsp-mock__kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.tsp-mock__kpi { background: rgba(255,255,255,0.04); border-radius: 12px; padding: 16px; border: 1px solid rgba(255,255,255,0.06); }
.tsp-mock__kpi--accent { background: linear-gradient(135deg, var(--tsp-teal) 0%, var(--tsp-cyan) 100%); border: none; }
.tsp-mock__kpi-label { display: block; color: #7a9098; font-size: 9px; letter-spacing: 1px; text-transform: uppercase; margin-bottom: 8px; font-family: var(--tsp-font-display); font-weight: 600; }
.tsp-mock__kpi--accent .tsp-mock__kpi-label { color: rgba(255,255,255,0.90); }
.tsp-mock__kpi-value { color: #e8f2f3; font-size: 26px; font-weight: 700; font-family: var(--tsp-font-display); letter-spacing: -0.02em; }
.tsp-mock__kpi--accent .tsp-mock__kpi-value { color: #fff; }
.tsp-mock__chart { height: 140px; background: rgba(0,0,0,0.3); border-radius: 12px; padding: 16px; }
.tsp-mock__chart svg { width: 100%; height: 100%; }
.tsp-mock__chart-line { stroke-dasharray: 1000; stroke-dashoffset: 1000; animation: tsp-draw 3s ease forwards 0.5s; }
.tsp-mock__list { display: flex; flex-direction: column; gap: 8px; }
.tsp-mock__row {
	display: grid; grid-template-columns: 14px 1fr auto auto; gap: 14px; align-items: center;
	padding: 12px 14px; background: rgba(255,255,255,0.04); border-radius: 10px; font-size: 13px;
	opacity: 0; animation: tsp-row-in 0.5s ease forwards;
}
.tsp-mock__row:nth-child(1) { animation-delay: 0.8s; }
.tsp-mock__row:nth-child(2) { animation-delay: 1.2s; }
.tsp-mock__row:nth-child(3) { animation-delay: 1.6s; }
@keyframes tsp-row-in { to { opacity: 1; } }
.tsp-mock__row .tsp-mock__dot { width: 10px; height: 10px; border-radius: 50%; }
.tsp-mock__dot--new { background: var(--tsp-cyan); box-shadow: 0 0 12px var(--tsp-cyan); animation: tsp-pulse 1.8s infinite; }
.tsp-mock__dot--wip { background: #f0c060; }
.tsp-mock__dot--ok  { background: #4ec96e; }
.tsp-mock__row-name { color: #e8f2f3; font-weight: 500; }
.tsp-mock__row-badge { padding: 4px 10px; border-radius: 999px; font-size: 10px; font-weight: 700; letter-spacing: 0.6px; font-family: var(--tsp-font-display); }
.tsp-mock__row-badge--new { background: rgba(0,185,188,0.30); color: var(--tsp-cyan); }
.tsp-mock__row-badge--wip { background: rgba(240,192,96,0.20); color: #f0c060; }
.tsp-mock__row-badge--ok  { background: rgba(78,201,110,0.20); color: #4ec96e; }
.tsp-mock__row-time { color: #6b8088; font-size: 11px; }

@media (max-width: 960px) {
	.tsp-dashprev { grid-template-columns: 1fr; gap: 40px; }
	.tsp-mock { transform: none; }
	.tsp-mock__body { grid-template-columns: 1fr; }
	.tsp-mock__nav { flex-direction: row; overflow-x: auto; padding: 14px; }
	.tsp-mock__kpis { grid-template-columns: repeat(2, 1fr); }
}

/* ══════════════════════════════════════════════════════════════════════
   7. PROCESS STEPS
   ══════════════════════════════════════════════════════════════════════ */
.tsp-steps {
	list-style: none; padding: 0; margin: 0 0 36px;
	display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 28px;
}
.tsp-steps li {
	position: relative; padding: 36px 30px 30px; background: var(--tsp-card-bg);
	border-radius: var(--tsp-card-radius); border: 1px solid var(--tsp-line); box-shadow: var(--tsp-card-shadow);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.tsp-steps li:hover {
	transform: translateY(-4px);
	box-shadow: var(--tsp-card-shadow-hover);
}
.tsp-steps__num {
	position: absolute; top: -24px; left: 30px;
	width: 48px; height: 48px; border-radius: 50%;
	background: linear-gradient(135deg, var(--tsp-cyan) 0%, var(--tsp-teal) 100%);
	color: #fff; font-weight: 700; font-size: 20px; font-family: var(--tsp-font-display);
	display: inline-flex; align-items: center; justify-content: center;
	box-shadow: 0 10px 24px rgba(0,185,188,0.35);
}
.tsp-steps li h3 { color: var(--tsp-ink); font-size: 18px; margin: 10px 0 12px; font-weight: 600; }
.tsp-steps li p  { color: var(--tsp-slate); font-size: 14px; line-height: 1.65; margin: 0; }
.tsp-cta-strip { text-align: center; margin-top: 48px; }

/* ══════════════════════════════════════════════════════════════════════
   8. TIERS
   ══════════════════════════════════════════════════════════════════════ */
.tsp-tiers { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 28px; align-items: stretch; }
.tsp-tier-card {
	position: relative; background: var(--tsp-card-bg); border-radius: var(--tsp-card-radius);
	border: 1px solid var(--tsp-line); padding: 38px 32px 36px; box-shadow: var(--tsp-card-shadow);
	display: flex; flex-direction: column;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.tsp-tier-card:hover {
	transform: translateY(-6px);
	box-shadow: var(--tsp-card-shadow-hover);
}
.tsp-tier-card--featured {
	border: 2px solid var(--tsp-cyan);
	box-shadow: 0 20px 50px rgba(0,185,188,0.20);
}
.tsp-tier-card__badge {
	position: absolute; top: -16px; left: 50%; transform: translateX(-50%);
	background: var(--tsp-cyan); color: #fff;
	font-family: var(--tsp-font-display);
	font-size: 10px; letter-spacing: 1px; font-weight: 700; text-transform: uppercase;
	padding: 8px 20px; border-radius: 999px;
	box-shadow: 0 8px 20px rgba(0,185,188,0.40);
}
.tsp-tier-card h3 {
	color: var(--tsp-ink); font-size: 28px; margin: 0 0 6px;
	font-family: var(--tsp-font-display); letter-spacing: -0.02em; font-weight: 700;
}
.tsp-tier-card__sub { color: var(--tsp-slate); font-size: 14px; margin: 0 0 20px; font-weight: 500; }
.tsp-tier-card__margin {
	font-family: var(--tsp-font-display);
	font-size: 28px; font-weight: 700; margin: 0 0 26px;
	background: linear-gradient(135deg, var(--tsp-teal) 0%, var(--tsp-cyan) 100%);
	-webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
	letter-spacing: -0.02em;
}
.tsp-tier-card ul { list-style: none; padding: 0; margin: 0; flex: 1; }
.tsp-tier-card li {
	padding: 12px 0; color: var(--tsp-slate); font-size: 15px;
	border-bottom: 1px dashed var(--tsp-line);
}
.tsp-tier-card li:last-child { border-bottom: none; }

/* Aufklappbarer Sammel-Vorteil (details/summary). */
.tsp-tier-card__expand { padding: 0 !important; }
.tsp-tier-card__expand details { padding: 12px 0; }
.tsp-tier-card__expand summary {
	list-style: none; cursor: pointer;
	display: flex; align-items: center; gap: 8px;
	color: var(--tsp-slate); font-size: 15px;
	transition: color 0.15s ease;
}
.tsp-tier-card__expand summary::-webkit-details-marker { display: none; }
.tsp-tier-card__expand summary::marker { display: none; content: ""; }
.tsp-tier-card__expand summary:hover { color: var(--tsp-ink); }
.tsp-tier-card__expand-check { color: var(--tsp-teal); font-weight: 700; }
.tsp-tier-card__expand-label { flex: 1; font-weight: 600; color: var(--tsp-ink); }
.tsp-tier-card__expand-toggle {
	width: 22px; height: 22px; border-radius: 999px;
	background: rgba(0,115,125,0.08); color: var(--tsp-teal);
	display: inline-flex; align-items: center; justify-content: center;
	font-size: 16px; font-weight: 400; line-height: 1;
	transition: background 0.15s ease, transform 0.2s ease;
}
.tsp-tier-card__expand details[open] .tsp-tier-card__expand-toggle {
	background: var(--tsp-teal); color: #fff;
	transform: rotate(45deg);
}
.tsp-tier-card__expand ul {
	list-style: none; padding: 8px 0 0 30px; margin: 0;
}
.tsp-tier-card__expand ul li {
	padding: 6px 0; border: 0;
	color: var(--tsp-slate); font-size: 14px; line-height: 1.5;
	position: relative;
}
.tsp-tier-card__expand ul li::before {
	content: "—";
	position: absolute; left: -18px; color: var(--tsp-cyan);
}

/* ══════════════════════════════════════════════════════════════════════
   9. INVESTMENT
   ══════════════════════════════════════════════════════════════════════ */
.tsp-invest {
	background: linear-gradient(135deg, #ffffff 0%, #f4f7f7 100%);
	border-radius: 24px;
	padding: 52px 52px 44px;
	position: relative;
	border: 1px solid rgba(0,185,188,0.15);
}
.tsp-invest__badge {
	position: absolute; top: -16px; left: 52px;
	background: var(--tsp-cyan); color: #fff;
	font-family: var(--tsp-font-display);
	font-size: 10px; letter-spacing: 1.2px; font-weight: 700; text-transform: uppercase;
	padding: 8px 18px; border-radius: 999px;
	box-shadow: 0 6px 16px rgba(0,185,188,0.35);
}
.tsp-invest__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; margin-top: 36px; }
.tsp-invest__col h3 {
	color: var(--tsp-ink); font-size: 18px; margin: 0 0 20px;
	font-family: var(--tsp-font-display); font-weight: 600;
}
.tsp-invest__col ul { list-style: none; padding: 0; margin: 0; }
.tsp-invest__col li {
	padding: 12px 0; color: var(--tsp-ink-soft); font-size: 15px; line-height: 1.65;
	border-bottom: 1px dashed rgba(0,185,188,0.15);
}
.tsp-invest__col li:last-child { border-bottom: none; }
.tsp-invest__foot {
	margin: 28px 0 0; font-size: 14px; color: var(--tsp-slate); font-style: italic;
	padding-top: 24px; border-top: 1px solid rgba(0,185,188,0.15);
}
@media (max-width: 780px) {
	.tsp-invest { padding: 40px 28px 32px; }
	.tsp-invest__badge { left: 28px; }
	.tsp-invest__grid { grid-template-columns: 1fr; gap: 32px; }
}

/* ══════════════════════════════════════════════════════════════════════
   10. MARKETS BENTO
   ══════════════════════════════════════════════════════════════════════ */
.tsp-bento--markets {
	grid-template-columns: repeat(4, 1fr);
}
.tsp-b-card--market { padding: 24px; text-align: center; }
.tsp-b-card--market h3 { font-size: 16px; margin: 12px 0 8px; }
.tsp-b-card--market p { font-size: 13px; line-height: 1.55; }
.tsp-market-icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 48px; height: 48px; border-radius: 12px;
	background: rgba(0,185,188,0.08); color: var(--tsp-teal);
	margin-bottom: 8px;
}
.tsp-market-icon svg { width: 24px; height: 24px; }
@media (max-width: 960px) { .tsp-bento--markets { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .tsp-bento--markets { grid-template-columns: 1fr; } }

/* ══════════════════════════════════════════════════════════════════════
   11. TESTIMONIALS
   ══════════════════════════════════════════════════════════════════════ */
.tsp-testimonials { display: grid; grid-template-columns: repeat(auto-fit, minmax(360px, 1fr)); gap: 28px; }
.tsp-testimonial {
	background: var(--tsp-card-bg); padding: 38px 36px; border-radius: var(--tsp-card-radius);
	border: 1px solid var(--tsp-line); box-shadow: var(--tsp-card-shadow);
	margin: 0; border-left: 4px solid var(--tsp-cyan);
}
.tsp-testimonial blockquote {
	margin: 0; font-family: var(--tsp-font-display);
	font-size: 18px; line-height: 1.7; color: var(--tsp-ink);
}
.tsp-testimonial figcaption { margin-top: 20px; color: var(--tsp-slate); font-size: 14px; font-weight: 500; }

/* ══════════════════════════════════════════════════════════════════════
   12. FAQ
   ══════════════════════════════════════════════════════════════════════ */
.tsp-faq { max-width: 900px; margin: 0 auto; }
.tsp-faq details {
	background: var(--tsp-card-bg); border: 1px solid var(--tsp-line); border-radius: 16px;
	padding: 24px 28px; margin-bottom: 14px; transition: border-color 0.2s, box-shadow 0.2s;
}
.tsp-faq details[open] {
	border-color: rgba(0,185,188,0.30);
	box-shadow: var(--tsp-card-shadow);
}
.tsp-faq summary {
	cursor: pointer; font-family: var(--tsp-font-display);
	font-weight: 600; color: var(--tsp-ink); font-size: 17px;
	list-style: none; position: relative; padding-right: 36px;
}
.tsp-faq summary::-webkit-details-marker { display: none; }
.tsp-faq summary::after {
	content: "+"; position: absolute; right: 0; top: -2px;
	font-size: 28px; font-weight: 300; color: var(--tsp-teal);
	transition: transform 0.2s, color 0.2s;
}
.tsp-faq details[open] summary::after { content: "−"; color: var(--tsp-cyan); }
.tsp-faq details[open] summary { margin-bottom: 16px; }
.tsp-faq p { color: var(--tsp-slate); font-size: 16px; line-height: 1.75; margin: 0; }

/* ══════════════════════════════════════════════════════════════════════
   13. APPLY
   ══════════════════════════════════════════════════════════════════════ */
.tsp-section--apply {
	background: linear-gradient(180deg, var(--tsp-fog) 0%, #eef4f5 100%);
	border-top: 1px solid rgba(0,185,188,0.10);
	padding-bottom: 100px;
}
.tsp-apply { display: grid; grid-template-columns: 1fr 1.4fr; gap: 56px; align-items: start; }
.tsp-apply__intro .tsp-h2 { margin-bottom: 24px; }
.tsp-apply__sub { color: var(--tsp-slate); font-size: 16px; line-height: 1.7; margin: 0; }
.tsp-apply__form {
	background: var(--tsp-card-bg); padding: 40px 38px; border-radius: 24px;
	border: 1px solid var(--tsp-line);
	box-shadow: 0 8px 30px rgba(7,119,127,0.12);
}
@media (max-width: 960px) { .tsp-apply { grid-template-columns: 1fr; gap: 36px; } }

/* ══════════════════════════════════════════════════════════════════════
   14. MODERN FORM
   ══════════════════════════════════════════════════════════════════════ */
.tsp-form--modern { display: flex; flex-direction: column; gap: 20px; font-family: var(--tsp-font-body); }
.tsp-field { display: flex; flex-direction: column; gap: 8px; position: relative; }
.tsp-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
@media (max-width: 620px) { .tsp-field-row { grid-template-columns: 1fr; } }
.tsp-field label {
	color: var(--tsp-ink); font-size: 13px; font-weight: 600;
	letter-spacing: 0.3px; font-family: var(--tsp-font-display);
}
.tsp-req { color: #c0392b; margin-left: 3px; }
.tsp-field input, .tsp-field textarea {
	padding: 14px 16px; border: 1.5px solid var(--tsp-line); border-radius: 12px;
	font-size: 15px; color: var(--tsp-ink); font-family: inherit; background: #fff;
	transition: border-color 0.2s, box-shadow 0.2s;
}
.tsp-field input:focus, .tsp-field textarea:focus {
	outline: none; border-color: var(--tsp-cyan);
	box-shadow: 0 0 0 4px rgba(0,185,188,0.12);
}
.tsp-hint { color: var(--tsp-slate-2); font-size: 12px; margin-top: 4px; }
.tsp-field--turnstile { align-items: flex-start; }

/* ── Consent-Sektion (nur Datenschutz, weiches Design ohne Kanten) ─── */
.tsp-form__legal {
	margin-top: 24px;
	padding: 22px 26px;
	background: linear-gradient(180deg, rgba(7,119,127,0.035), rgba(7,119,127,0.015));
	border-radius: 22px;
	/* Statt sichtbarem Border: weicher innerer Schatten für sanfte Abhebung */
	box-shadow: inset 0 0 0 1px rgba(7,119,127,0.08);
}
.tsp-form__consent {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	font-size: 13.5px;
	line-height: 1.65;
	color: #334155;
	cursor: pointer;
	margin: 0;
}
.tsp-form__consent input[type="checkbox"] {
	margin-top: 3px;
	accent-color: var(--tsp-teal);
	width: 18px; height: 18px;
	flex-shrink: 0;
	border-radius: 6px;
}
.tsp-form__consent a {
	color: var(--tsp-teal);
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-thickness: 1.5px;
	cursor: pointer;
	font-weight: 500;
}
.tsp-form__consent a:hover { color: var(--tsp-teal-dark); }

/* ── D24: Legal-Modal (Overlay-Dialog) ─────────────────────────────── */
.tsp-legal-modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
}
.tsp-legal-modal[hidden] { display: none; }
.tsp-legal-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(15,23,42,0.6);
	backdrop-filter: blur(2px);
}
.tsp-legal-modal__box {
	position: relative;
	background: #fff;
	border-radius: 24px;
	max-width: 640px;
	width: 100%;
	max-height: 85vh;
	display: flex;
	flex-direction: column;
	box-shadow: 0 30px 60px -15px rgba(15,23,42,0.30), 0 0 0 1px rgba(15,23,42,0.04);
	overflow: hidden;
}
.tsp-legal-modal__header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	padding: 28px 32px 16px;
	/* keine harte Trennlinie mehr — weicher Übergang */
}
.tsp-legal-modal__header h3 {
	margin: 0;
	font-size: 20px;
	font-weight: 700;
	color: #203556;
}
.tsp-legal-modal__close {
	background: transparent;
	border: none;
	border-radius: 50%;
	width: 36px; height: 36px;
	font-size: 20px;
	cursor: pointer;
	color: #94a3b8;
	transition: background 0.2s, color 0.2s;
	display: flex; align-items: center; justify-content: center;
	line-height: 1;
	flex-shrink: 0;
}
.tsp-legal-modal__close:hover { background: rgba(15,23,42,0.06); color: #334155; }
.tsp-legal-modal__body {
	padding: 8px 32px 28px;
	overflow-y: auto;
	font-size: 14px;
	line-height: 1.65;
	color: #334155;
}
.tsp-legal-modal__body h3 {
	margin: 20px 0 8px;
	font-size: 15px;
	font-weight: 600;
	color: #203556;
}
.tsp-legal-modal__body h3:first-child { margin-top: 0; }
.tsp-legal-modal__body p { margin: 0 0 10px; }
.tsp-legal-modal__body ul { padding-left: 20px; margin: 6px 0 10px; }
.tsp-legal-modal__body li { margin-bottom: 4px; }
.tsp-legal-modal__body a { color: var(--tsp-teal); }
.tsp-legal-modal__footer {
	padding: 14px 32px 18px;
	/* keine harte Trennlinie mehr — weicher Verlauf statt Border */
	background: linear-gradient(180deg, transparent, rgba(15,23,42,0.025));
	font-size: 11px;
	color: #94a3b8;
}

.tsp-form__actions { display: flex; align-items: center; gap: 24px; margin-top: 12px; flex-wrap: wrap; }
.tsp-form__actions button[type="submit"] {
	composes: tsp-btn;
	display: inline-flex; align-items: center; justify-content: center;
	gap: 8px;
	padding: 14px 28px;
	border: none; border-radius: 9999px;
	background: var(--tsp-cyan); color: #fff !important; text-decoration: none;
	font-family: var(--tsp-font-body);
	font-weight: 600; font-size: 15px; letter-spacing: 0.02em;
	cursor: pointer; line-height: 1;
	transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
	box-shadow: 0 8px 24px rgba(0,185,188,0.25);
}
.tsp-form__actions button[type="submit"]:hover,
.tsp-form__actions button[type="submit"]:focus-visible {
	background: var(--tsp-cyan-dark); transform: translateY(-2px);
	box-shadow: 0 12px 32px rgba(0,185,188,0.35);
	outline: none;
}
.tsp-form__actions button[type="submit"]:disabled {
	opacity: 0.5; cursor: wait; transform: none;
}
.tsp-form__lawnote { color: var(--tsp-slate-2); font-size: 12px; }
.tsp-form__msg { min-height: 24px; font-size: 14px; }
.tsp-form__msg.is-error { color: #c0392b; }
.tsp-form__msg.is-success { color: #1e7e34; }

/* ══════════════════════════════════════════════════════════════════════
   15. COUNTRY-PILL-SELECTOR
   ══════════════════════════════════════════════════════════════════════ */
.tsp-country { position: relative; }
.tsp-country__input {
	width: 100%;
	padding: 14px 16px 14px 48px; border: 1.5px solid var(--tsp-line); border-radius: 12px;
	font-size: 15px; color: var(--tsp-ink); font-family: inherit; background: #fff;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237a8794' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='8'/><line x1='21' y1='21' x2='16.65' y2='16.65'/></svg>");
	background-repeat: no-repeat;
	background-position: 16px center;
	background-size: 18px 18px;
	transition: border-color 0.2s, box-shadow 0.2s;
}
.tsp-country__input:focus {
	outline: none; border-color: var(--tsp-cyan);
	box-shadow: 0 0 0 4px rgba(0,185,188,0.12);
}
.tsp-country__chip {
	display: inline-flex; align-items: center; gap: 12px;
	padding: 12px 10px 12px 16px;
	background: rgba(0,185,188,0.10); color: var(--tsp-teal);
	border: 1.5px solid rgba(0,185,188,0.25); border-radius: 999px;
	font-weight: 600; font-size: 15px; max-width: 100%;
}
.tsp-country__flag { font-size: 24px; line-height: 1; }
.tsp-country__clear {
	background: transparent; border: none; color: var(--tsp-teal);
	width: 28px; height: 28px; border-radius: 50%; cursor: pointer; font-size: 20px; line-height: 1;
	display: inline-flex; align-items: center; justify-content: center;
	transition: background 0.2s;
}
.tsp-country__clear:hover { background: rgba(0,185,188,0.15); }
.tsp-country__list {
	position: absolute; top: 100%; left: 0; right: 0; margin-top: 6px; z-index: 50;
	background: #fff; border: 1px solid var(--tsp-line); border-radius: 14px;
	box-shadow: 0 20px 50px rgba(0,0,0,0.15);
	max-height: 320px; overflow-y: auto; list-style: none; padding: 8px; margin: 0;
}
.tsp-country__opt {
	display: grid; grid-template-columns: 36px 1fr auto; gap: 14px; align-items: center;
	padding: 12px 14px; border-radius: 10px; cursor: pointer; font-size: 15px;
	transition: background 0.2s;
}
.tsp-country__opt:hover, .tsp-country__opt.is-active { background: rgba(0,185,188,0.08); }
.tsp-country__opt-flag { font-size: 24px; line-height: 1; }
.tsp-country__opt-name { color: var(--tsp-ink); }
.tsp-country__opt-code {
	color: var(--tsp-slate-2); font-size: 11px; font-weight: 700;
	letter-spacing: 0.8px; font-family: var(--tsp-font-display);
}

/* ══════════════════════════════════════════════════════════════════════
   16. THEME-OVERRIDES
   ══════════════════════════════════════════════════════════════════════ */
body.tsp-body .site-main.tsp-landing,
body.tsp-body .site-main.tsp-page {
	margin: 0; padding: 0;
}
body.tsp-body .content-area,
body.tsp-body #primary,
body.tsp-body .site-content {
	padding: 0 !important; margin: 0 !important;
}

/* ══════════════════════════════════════════════════════════════════════
   TRUST-ICONS (hochwertig, statt kleiner Badge-Kästchen)
   ══════════════════════════════════════════════════════════════════════ */
.tsp-b-card--hero-trust { padding: 28px; }
.tsp-trust-chips {
	list-style: none; padding: 0; margin: 0;
	display: grid; grid-template-columns: 1fr 1fr; gap: 22px 18px; width: 100%;
}
.tsp-trust-chips li {
	display: flex; align-items: center; gap: 14px;
}
.tsp-trust-icon {
	flex: 0 0 auto;
	width: 44px; height: 44px;
	display: inline-flex; align-items: center; justify-content: center;
	color: var(--tsp-teal-dark);
	background: rgba(0,185,188,0.08);
	border-radius: 12px;
}
.tsp-trust-icon svg { width: 26px; height: 26px; display: block; }
.tsp-trust-icon--flag {
	padding: 6px; background: transparent;
}
.tsp-trust-icon--flag svg { width: 32px; height: 22px; border-radius: 3px; box-shadow: 0 1px 3px rgba(0,0,0,0.15); }
.tsp-trust-label { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.tsp-trust-label b {
	font-family: var(--tsp-font-display);
	color: var(--tsp-ink); font-size: 14px; font-weight: 600; letter-spacing: -0.005em;
	line-height: 1.2;
}
.tsp-trust-label em {
	color: var(--tsp-slate-2); font-size: 12px; font-style: normal; line-height: 1.3;
}
@media (max-width: 620px) {
	.tsp-trust-chips { grid-template-columns: 1fr; }
}

/* ══════════════════════════════════════════════════════════════════════
   DEAL-FLOW-DIAGRAMM (NEW → BRIEF → APPROVED → CLOSED, animiert)
   ══════════════════════════════════════════════════════════════════════ */
.tsp-dealflow {
	position: relative; margin-top: 32px; padding: 16px 0 8px;
}
.tsp-dealflow__lines {
	position: absolute; top: 32px; left: 0; right: 0; height: 6px;
	width: 100%;
}
.tsp-dealflow__progress {
	stroke-dasharray: 520;
	stroke-dashoffset: 520;
	animation: tsp-dealflow-draw 2.4s ease forwards 0.4s;
}
@keyframes tsp-dealflow-draw { to { stroke-dashoffset: 0; } }
.tsp-dealflow__nodes {
	list-style: none; padding: 0; margin: 0;
	display: grid; grid-template-columns: repeat(4, 1fr); gap: 0;
	position: relative; z-index: 1;
}
.tsp-dealflow__node {
	display: flex; flex-direction: column; align-items: center; gap: 10px;
	opacity: 0; transform: translateY(6px);
	animation: tsp-dealflow-pop 0.6s ease forwards;
}
.tsp-dealflow__node--new      { animation-delay: 0.5s; }
.tsp-dealflow__node--brief    { animation-delay: 1.0s; }
.tsp-dealflow__node--approved { animation-delay: 1.5s; }
.tsp-dealflow__node--closed   { animation-delay: 2.0s; }
@keyframes tsp-dealflow-pop { to { opacity: 1; transform: none; } }

.tsp-dealflow__dot {
	width: 34px; height: 34px; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	background: #fff;
	box-shadow: 0 0 0 3px #fff, 0 6px 16px rgba(0,185,188,0.30);
	color: var(--tsp-cyan);
}
.tsp-dealflow__dot svg { width: 16px; height: 16px; display: block; }
.tsp-dealflow__label {
	font-family: var(--tsp-font-display);
	font-size: 11px; font-weight: 700; letter-spacing: 1.4px;
	color: var(--tsp-slate);
}
.tsp-dealflow__node--new      .tsp-dealflow__dot { color: var(--tsp-cyan); }
.tsp-dealflow__node--brief    .tsp-dealflow__dot { color: #b6791f; }
.tsp-dealflow__node--approved .tsp-dealflow__dot { color: #1e7e34; }
.tsp-dealflow__node--closed   .tsp-dealflow__dot { color: var(--tsp-teal-dark); }
.tsp-dealflow__node--new      .tsp-dealflow__label { color: var(--tsp-teal-dark); }
.tsp-dealflow__node--closed   .tsp-dealflow__label { color: var(--tsp-teal-dark); }

.tsp-b-card--accent .tsp-dealflow__dot { background: rgba(255,255,255,0.15); box-shadow: 0 0 0 3px rgba(255,255,255,0.15); color: #fff; }
.tsp-b-card--accent .tsp-dealflow__label { color: rgba(255,255,255,0.85); }

/* ══════════════════════════════════════════════════════════════════════
   SECTION-DIVIDER — Full-Width-Bild mit Overlay
   ══════════════════════════════════════════════════════════════════════ */
.tsp-divider {
	position: relative; height: 340px; overflow: hidden;
}
.tsp-divider picture {
	position: absolute; inset: 0; display: block; width: 100%; height: 100%;
}
.tsp-divider img {
	width: 100%; height: 100%; object-fit: cover; display: block;
}
.tsp-divider__overlay {
	position: absolute; inset: 0;
	display: flex; align-items: center;
	background: linear-gradient(90deg, rgba(20,35,42,0.72) 0%, rgba(20,35,42,0.35) 55%, transparent 100%);
	color: #fff;
}
.tsp-divider--dark .tsp-divider__overlay {
	background: linear-gradient(90deg, rgba(10,20,25,0.85) 0%, rgba(10,20,25,0.55) 55%, rgba(10,20,25,0.15) 100%);
}
.tsp-divider__kicker {
	font-family: var(--tsp-font-display);
	font-size: 11px; font-weight: 700; letter-spacing: 1.6px;
	text-transform: uppercase;
	color: var(--tsp-cyan);
	margin: 0 0 12px;
}
.tsp-divider__quote {
	font-family: var(--tsp-font-display);
	font-size: clamp(22px, 2.6vw, 32px);
	font-weight: 600; line-height: 1.25; letter-spacing: -0.015em;
	color: #fff; margin: 0;
	max-width: 640px;
}
@media (max-width: 780px) {
	.tsp-divider { height: 260px; }
	.tsp-divider__overlay { background: linear-gradient(180deg, rgba(20,35,42,0.75) 0%, rgba(20,35,42,0.45) 100%); }
}

/* ══════════════════════════════════════════════════════════════════════
   MARKETS-FOTO-KARTE (Zement etc. mit echtem Foto)
   ══════════════════════════════════════════════════════════════════════ */
.tsp-b-card--market-photo {
	padding: 0; overflow: hidden;
	display: flex; flex-direction: column;
}
.tsp-market-photo {
	display: block; width: 100%; height: 200px; overflow: hidden;
	background: #eaeaea;
}
.tsp-market-photo img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.6s ease; }
.tsp-b-card--market-photo:hover .tsp-market-photo img { transform: scale(1.04); }
.tsp-market-content { padding: 24px 28px 26px; flex: 1; }
.tsp-market-content h3 {
	font-family: var(--tsp-font-display);
	font-size: 18px; font-weight: 600; color: var(--tsp-ink); margin: 0 0 8px;
}
.tsp-market-content p {
	color: var(--tsp-slate); font-size: 14px; line-height: 1.55; margin: 0;
}
/* Wide-Foto-Karte spannt in der Markets-Grid über 2 Spalten */
.tsp-bento--markets .tsp-b-card--wide {
	grid-column: span 2;
}
.tsp-bento--markets .tsp-b-card--wide .tsp-market-photo { height: 260px; }
@media (max-width: 960px) {
	.tsp-bento--markets .tsp-b-card--wide { grid-column: span 2; }
}
@media (max-width: 620px) {
	.tsp-bento--markets .tsp-b-card--wide { grid-column: span 1; }
	.tsp-market-photo { height: 180px; }
}

/* ══════════════════════════════════════════════════════════════════════
   TRUST-QUARTETT (Industrie-Bilder oben, Chips unten)
   ══════════════════════════════════════════════════════════════════════ */
.tsp-b-card--hero-trust {
	display: flex; flex-direction: column;
	padding: 20px;
	justify-content: space-between;
	gap: 18px;
	min-height: 100%;
}
.tsp-trust-quartet {
	display: grid; grid-template-columns: 1fr 1fr; gap: 6px;
	border-radius: 14px; overflow: hidden;
	background: #0a2226;
	flex: 1 1 auto;   /* füllt oberen freien Raum */
	min-height: 0;    /* damit grid darin verkleinerbar bleibt */
}
.tsp-trust-quartet__tile {
	display: block; overflow: hidden; position: relative;
	/* Höhe wird nicht mehr fixiert — die Kacheln füllen den grid-Bereich */
}
.tsp-trust-quartet__tile img {
	width: 100%; height: 100%; object-fit: cover; display: block;
	transition: transform 0.6s ease;
	filter: saturate(1.05);
}
.tsp-trust-quartet__tile::after {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(180deg, transparent 40%, rgba(10,34,38,0.35) 100%);
	pointer-events: none;
}
.tsp-b-card--hero-trust:hover .tsp-trust-quartet__tile img { transform: scale(1.04); }

.tsp-trust-chips--footer {
	list-style: none; padding: 0; margin: 0;
	display: grid; grid-template-columns: 1fr 1fr; gap: 14px;
}
@media (max-width: 620px) {
	.tsp-trust-chips--footer { grid-template-columns: 1fr; }
	.tsp-trust-quartet__tile { height: 74px; }
}

/* ══════════════════════════════════════════════════════════════════════
   DEAL-CYCLE v3 — Auto fährt zurück, Kamera folgt, Graph steigt am Ende
   [v1 und v2 gelöscht - nur v3 aktiv]
   ══════════════════════════════════════════════════════════════════════ */
/* ══════════════════════════════════════════════════════════════════════
   DEAL-CYCLE v3 — Auto fährt zurück, Kamera folgt, Graph steigt am Ende
   Loop 18s
   viewBox 2400×240 · Container 240vw
   Stations:  NEW@600  BRIEF@1000  APPROVED@1400  CLOSED@1800
   Graph:     x=1950-2190
   Apply:     x=2250
   ══════════════════════════════════════════════════════════════════════ */

/* Container-Width: Damit die viewBox 2400×240 (aspect 10) mit preserveAspectRatio="none"
   möglichst rund bleibt, matchen wir per aspect-ratio den Container-Aspect zum
   viewBox-Aspect. Ergibt Höhe = width/10. Bei viewport 1200px → Container 2400px×240px. */
.tsp-cycle {
	margin-top: 28px;
	background: linear-gradient(180deg, #0a2226 0%, #143b40 100%);
	border-radius: 16px;
	overflow: hidden;
	position: relative;
	box-shadow: inset 0 0 0 1px rgba(0,185,188,0.20);
}
.tsp-cycle__viewport {
	overflow: hidden;
	height: 220px;
	position: relative;
}
.tsp-cycle__world {
	position: absolute; top: 0; left: 0;
	width: 300%;          /* 3× Kartenbreite → viewBox 2400 mappt sauber auf Karten-Container */
	height: 100%;
	animation: tsp-cycle-camera 28s cubic-bezier(0.5, 0, 0.5, 1) infinite;
	will-change: transform;
}
.tsp-cycle__scene { width: 100%; height: 100%; display: block; }

/* Kamera-Bewegung — folgt Deal-Puls bis CLOSED, dann Pause, dann zum Graph/Apply
   World = 300% der Kartenbreite (= 2400 viewBox-Einheiten).
   Um viewBox-X bei Karten-Center zu sehen: translateX( -(X/800 - 0.5)/3 * 100% )
     NEW@500     → -4.17%
     BRIEF@950   → -22.92%
     APPROVED@1350 → -39.58%
     CLOSED@1750 → -56.25%
     Graph-mid@2040 → -68.33%
     Apply@2300  → -79.17%
*/
@keyframes tsp-cycle-camera {
	0%   { transform: translateX(-4.17%); opacity: 1; }      /* Start: Puls an Station 1 (NEW) */
	5%   { transform: translateX(-4.17%); }                  /* Pause NEW */
	12%  { transform: translateX(-22.92%); }                 /* Puls an BRIEF */
	22%  { transform: translateX(-39.58%); }                 /* Puls an APPROVED */
	32%  { transform: translateX(-56.25%); }                 /* Puls an CLOSED */
	44%  { transform: translateX(-56.25%); }                 /* Pause bei CLOSED — Geldregen */
	50%  { transform: translateX(-68.33%); }                 /* Kamera pannt zum Graph */
	60%  { transform: translateX(-79.17%); }                 /* Kamera bei Apply + Graph-Spitze */
	96%  { transform: translateX(-79.17%); opacity: 1; }     /* Apply-Plateau 10s (60–96%) */
	97%  { transform: translateX(-79.17%); opacity: 0; }     /* Fade out */
	98%  { transform: translateX(-4.17%); opacity: 0; }      /* Snap back */
	100% { transform: translateX(-4.17%); opacity: 1; }
}

/* Der DEAL-PULS — wandert NEW→BRIEF→APPROVED→CLOSED, bleibt dort stehen (Graph-Endpoint zeichnet den Graphen). */
.tsp-cycle__vehicle {
	animation: tsp-cycle-vehicle 28s cubic-bezier(0.5, 0, 0.5, 1) infinite;
}
@keyframes tsp-cycle-vehicle {
	0%   { transform: translate(500px, 110px); }             /* NEW */
	5%   { transform: translate(500px, 110px); }
	12%  { transform: translate(950px, 110px); }             /* BRIEF */
	22%  { transform: translate(1350px, 110px); }            /* APPROVED */
	32%  { transform: translate(1750px, 110px); }            /* CLOSED */
	96%  { transform: translate(1750px, 110px); opacity: 1; }/* Bleibt bei CLOSED */
	97%  { transform: translate(1750px, 110px); opacity: 0; }
	98%  { transform: translate(500px, 110px);  opacity: 0; }
	100% { transform: translate(500px, 110px);  opacity: 1; }
}

/* NEW-Station Pulse */
.tsp-cycle__pulse {
	animation: tsp-cycle-pulse 1.6s ease-in-out infinite;
	transform-origin: center;
	transform-box: fill-box;
}
@keyframes tsp-cycle-pulse {
	0%, 100% { opacity: 1; }
	50%      { opacity: 0.4; }
}

/* BRIEF Station — Umschlag fliegt hoch (Puls kommt bei 12% an) */
.tsp-cycle__envelope {
	opacity: 0;
	transform-box: fill-box; transform-origin: center;
	animation: tsp-cycle-envelope 28s linear infinite;
}
@keyframes tsp-cycle-envelope {
	0%, 11%   { opacity: 0; transform: translate(0, 0) rotate(0); }
	12%       { opacity: 1; transform: translate(0, -18px) rotate(-4deg); }
	15%       { opacity: 1; transform: translate(2px, -44px) rotate(6deg); }
	18%       { opacity: 1; transform: translate(-3px, -72px) rotate(-8deg); }
	21%       { opacity: 0; transform: translate(0, -98px) rotate(0deg); }
	22%, 100% { opacity: 0; transform: translate(0, 0) rotate(0); }
}

/* APPROVED Station — Konfetti (Puls kommt bei 22% an) */
.tsp-cycle__confetti-piece {
	opacity: 0;
	transform-box: fill-box; transform-origin: center;
	animation: tsp-cycle-confetti 28s cubic-bezier(0.34, 0.85, 0.4, 1) infinite;
}
@keyframes tsp-cycle-confetti {
	0%, 21%   { opacity: 0; transform: translate(0, 0) rotate(0); }
	22%       { opacity: 1; transform: translate(0, 0) rotate(0); }
	27%       { opacity: 1; transform: translate(var(--cx, 0), var(--cy, -40px)) rotate(var(--cr, 90deg)); }
	32%       { opacity: 1; transform: translate(var(--cxe, 0), var(--cye, 60px)) rotate(var(--cre, 200deg)); }
	36%       { opacity: 0; transform: translate(var(--cxe, 0), calc(var(--cye, 60px) + 14px)) rotate(var(--cre, 200deg)); }
	37%, 100% { opacity: 0; }
}
.tsp-cycle__confetti-piece--1  { --cx: -22px; --cy: -50px; --cr: 90deg;   --cxe: -38px; --cye:  62px; --cre: 220deg; animation-delay: 0.00s; }
.tsp-cycle__confetti-piece--2  { --cx: -10px; --cy: -62px; --cr: 60deg;   --cxe: -18px; --cye:  70px; --cre: 180deg; animation-delay: 0.05s; }
.tsp-cycle__confetti-piece--3  { --cx:   6px; --cy: -66px; --cr: 120deg;  --cxe:   8px; --cye:  58px; --cre: 260deg; animation-delay: 0.02s; }
.tsp-cycle__confetti-piece--4  { --cx:  22px; --cy: -56px; --cr: -100deg; --cxe:  36px; --cye:  66px; --cre: -200deg; animation-delay: 0.08s; }
.tsp-cycle__confetti-piece--5  { --cx: -32px; --cy: -42px; --cr: 45deg;   --cxe: -52px; --cye:  72px; --cre: 140deg; animation-delay: 0.12s; }
.tsp-cycle__confetti-piece--6  { --cx:   0px; --cy: -70px; --cr: 180deg;  --cxe:   0px; --cye:  60px; --cre: 360deg; animation-delay: 0.06s; }
.tsp-cycle__confetti-piece--7  { --cx:  30px; --cy: -40px; --cr: -60deg;  --cxe:  48px; --cye:  68px; --cre: -160deg; animation-delay: 0.14s; }
.tsp-cycle__confetti-piece--8  { --cx: -14px; --cy: -70px; --cr: 100deg;  --cxe: -24px; --cye:  56px; --cre: 240deg; animation-delay: 0.10s; }
.tsp-cycle__confetti-piece--9  { --cx:  14px; --cy: -66px; --cr: -140deg; --cxe:  22px; --cye:  64px; --cre: -280deg; animation-delay: 0.04s; }
.tsp-cycle__confetti-piece--10 { --cx: -26px; --cy: -34px; --cr: 30deg;   --cxe: -44px; --cye:  74px; --cre: 120deg; animation-delay: 0.16s; }
.tsp-cycle__confetti-piece--11 { --cx:   4px; --cy: -76px; --cr: 200deg;  --cxe:   4px; --cye:  62px; --cre: 380deg; animation-delay: 0.18s; }
.tsp-cycle__confetti-piece--12 { --cx:  26px; --cy: -50px; --cr: -90deg;  --cxe:  42px; --cye:  70px; --cre: -180deg; animation-delay: 0.20s; }

/* CLOSED Station — Glow + Geld-Regen (Puls kommt bei 32% an, Regen 32–44%) */
.tsp-cycle__closed-glow {
	transform-origin: center; transform-box: fill-box;
	animation: tsp-cycle-closed-glow 28s ease-in-out infinite;
	opacity: 0;
}
@keyframes tsp-cycle-closed-glow {
	0%, 31%    { opacity: 0; transform: scale(0.6); }
	33%        { opacity: 1; transform: scale(1.2); }
	40%        { opacity: 0.8; transform: scale(1); }
	44%        { opacity: 0.5; transform: scale(1); }
	45%, 100%  { opacity: 0; transform: scale(0.6); }
}
.tsp-cycle__coins { pointer-events: none; }
.tsp-cycle__coin {
	opacity: 0; transform-origin: 0 0; transform-box: fill-box;
	animation: tsp-cycle-coin 28s linear infinite;
}
/* GROSSER GELD-REGEN: Münzen + Banknoten fallen gleichmäßig (linear) von oben auf den Boden. */
@keyframes tsp-cycle-coin {
	0%, 31%    { opacity: 0; transform: translate(var(--x-start), var(--y-top)) rotate(0) scale(0.85); }
	33%        { opacity: 1; transform: translate(var(--x-start), var(--y-top)) rotate(0) scale(1); }
	41%        { opacity: 1; transform: translate(var(--x-end), var(--y-floor)) rotate(var(--rot-end)) scale(1); }
	42%, 100%  { opacity: 0; }
}
/* BANKNOTEN — fallen mit stärkerer Rotation (sie sind eckig und flattern beim Fallen). */
.tsp-cycle__note {
	opacity: 0; transform-origin: center; transform-box: fill-box;
	animation: tsp-cycle-note 28s linear infinite;
}
@keyframes tsp-cycle-note {
	0%, 31%    { opacity: 0; transform: translate(var(--x-start), var(--y-top)) rotate(0) scale(0.8); }
	33%        { opacity: 1; transform: translate(var(--x-start), var(--y-top)) rotate(0) scale(1); }
	41%        { opacity: 1; transform: translate(var(--x-end), var(--y-floor)) rotate(var(--rot-end)) scale(1); }
	42%, 100%  { opacity: 0; }
}
.tsp-cycle__coin--1  { --x-start:  -90px; --y-top: -160px; --x-drift:  10px; --x-end:  -75px; --y-floor:  60px; --rot-mid:  180deg; --rot-end:  360deg;  animation-delay: 0.00s; }
.tsp-cycle__coin--2  { --x-start:  -55px; --y-top: -175px; --x-drift:   8px; --x-end:  -42px; --y-floor:  68px; --rot-mid:  220deg; --rot-end:  440deg;  animation-delay: 0.10s; }
.tsp-cycle__coin--3  { --x-start:  -20px; --y-top: -185px; --x-drift:   4px; --x-end:  -12px; --y-floor:  55px; --rot-mid: -160deg; --rot-end: -320deg; animation-delay: 0.05s; }
.tsp-cycle__coin--4  { --x-start:   15px; --y-top: -170px; --x-drift:  -6px; --x-end:   22px; --y-floor:  72px; --rot-mid:  200deg; --rot-end:  400deg;  animation-delay: 0.15s; }
.tsp-cycle__coin--5  { --x-start:   50px; --y-top: -180px; --x-drift: -10px; --x-end:   60px; --y-floor:  62px; --rot-mid: -200deg; --rot-end: -400deg; animation-delay: 0.08s; }
.tsp-cycle__coin--6  { --x-start:   85px; --y-top: -165px; --x-drift: -12px; --x-end:   78px; --y-floor:  70px; --rot-mid:  240deg; --rot-end:  480deg;  animation-delay: 0.20s; }
.tsp-cycle__coin--7  { --x-start:  -75px; --y-top: -190px; --x-drift:   6px; --x-end:  -60px; --y-floor:  58px; --rot-mid: -180deg; --rot-end: -360deg; animation-delay: 0.03s; }
.tsp-cycle__coin--8  { --x-start:  -35px; --y-top: -155px; --x-drift:   2px; --x-end:  -28px; --y-floor:  66px; --rot-mid:  160deg; --rot-end:  340deg;  animation-delay: 0.13s; }
.tsp-cycle__coin--9  { --x-start:    5px; --y-top: -188px; --x-drift:  -4px; --x-end:   10px; --y-floor:  74px; --rot-mid: -220deg; --rot-end: -440deg; animation-delay: 0.18s; }
.tsp-cycle__coin--10 { --x-start:   40px; --y-top: -172px; --x-drift:  -8px; --x-end:   48px; --y-floor:  60px; --rot-mid:  180deg; --rot-end:  380deg;  animation-delay: 0.06s; }
.tsp-cycle__coin--11 { --x-start:   75px; --y-top: -182px; --x-drift: -14px; --x-end:   65px; --y-floor:  68px; --rot-mid: -240deg; --rot-end: -460deg; animation-delay: 0.22s; }
.tsp-cycle__coin--12 { --x-start: -105px; --y-top: -168px; --x-drift:  12px; --x-end:  -88px; --y-floor:  72px; --rot-mid:  200deg; --rot-end:  420deg;  animation-delay: 0.11s; }
.tsp-cycle__coin--13 { --x-start:  -65px; --y-top: -178px; --x-drift:   8px; --x-end:  -52px; --y-floor:  56px; --rot-mid: -160deg; --rot-end: -340deg; animation-delay: 0.16s; }
.tsp-cycle__coin--14 { --x-start:  -10px; --y-top: -162px; --x-drift:   0px; --x-end:   -5px; --y-floor:  64px; --rot-mid:  220deg; --rot-end:  460deg;  animation-delay: 0.24s; }
.tsp-cycle__coin--15 { --x-start:   25px; --y-top: -186px; --x-drift:  -6px; --x-end:   32px; --y-floor:  70px; --rot-mid: -200deg; --rot-end: -380deg; animation-delay: 0.09s; }
.tsp-cycle__coin--16 { --x-start:   95px; --y-top: -174px; --x-drift: -16px; --x-end:   82px; --y-floor:  62px; --rot-mid:  260deg; --rot-end:  520deg;  animation-delay: 0.19s; }
/* BANKNOTEN — eigene Variablen, fallen weiter auseinander + stärkere Rotation (flattern) */
.tsp-cycle__note--1 { --x-start:  -45px; --y-top: -170px; --x-end:  -38px; --y-floor:  66px; --rot-end:  540deg; animation-delay: 0.07s; }
.tsp-cycle__note--2 { --x-start:   60px; --y-top: -185px; --x-end:   52px; --y-floor:  70px; --rot-end: -480deg; animation-delay: 0.14s; }
.tsp-cycle__note--3 { --x-start:  -85px; --y-top: -165px; --x-end:  -72px; --y-floor:  60px; --rot-end:  600deg; animation-delay: 0.21s; }
.tsp-cycle__note--4 { --x-start:   30px; --y-top: -180px; --x-end:   24px; --y-floor:  72px; --rot-end: -560deg; animation-delay: 0.10s; }
.tsp-cycle__note--5 { --x-start:   80px; --y-top: -175px; --x-end:   70px; --y-floor:  64px; --rot-end:  500deg; animation-delay: 0.17s; }

/* GRAPH — wächst nach Coin-Fall, exponentiell steigende Linie zeichnet sich */
.tsp-cycle__graph-line {
	stroke-dasharray: 400;
	stroke-dashoffset: 400;
	animation: tsp-cycle-graph-draw 28s cubic-bezier(0.6, 0, 0.4, 1) infinite;
}
.tsp-cycle__graph-fill {
	opacity: 0;
	animation: tsp-cycle-graph-fill 28s ease-in-out infinite;
}
.tsp-cycle__graph-endpoint {
	opacity: 0;
	transform-box: fill-box;
	animation: tsp-cycle-graph-endpoint 28s linear infinite;
}
/* Der Spitzen-Punkt "zeichnet" den Graphen, indem er die gleichen Wegpunkte wie die
   Graph-Linie (M 0 0 L 30 -6 L 60 -12 ... L 240 -84) abfährt — Stück für Stück, synchron
   mit stroke-dashoffset. translate-Werte sind relativ zur SVG-Position cx=240/cy=-84. */
@keyframes tsp-cycle-graph-endpoint {
	0%, 49%    { opacity: 0; transform: translate(-240px, 84px); }
	50%        { opacity: 1; transform: translate(-240px, 84px); }   /* (0,0) — Graph-Anfang */
	51%        { opacity: 1; transform: translate(-210px, 78px); }   /* (30,-6) */
	52%        { opacity: 1; transform: translate(-180px, 72px); }   /* (60,-12) */
	53%        { opacity: 1; transform: translate(-150px, 64px); }   /* (90,-20) */
	54%        { opacity: 1; transform: translate(-120px, 52px); }   /* (120,-32) */
	55%        { opacity: 1; transform: translate(-90px,  36px); }   /* (150,-48) */
	56%        { opacity: 1; transform: translate(-60px,  20px); }   /* (180,-64) */
	57%        { opacity: 1; transform: translate(-30px,   6px); }   /* (210,-78) */
	58%        { opacity: 1; transform: translate(0, 0); }           /* (240,-84) — Spitze erreicht */
	96%        { opacity: 1; transform: translate(0, 0); }
	97%, 100%  { opacity: 0; transform: translate(-240px, 84px); }
}
.tsp-cycle__graph-value {
	opacity: 0;
	animation: tsp-cycle-graph-value 28s ease-in-out infinite;
}
@keyframes tsp-cycle-graph-draw {
	0%, 50%    { stroke-dashoffset: 400; }
	58%        { stroke-dashoffset: 0; }
	96%        { stroke-dashoffset: 0; }
	97%, 100%  { stroke-dashoffset: 400; }
}
@keyframes tsp-cycle-graph-fill {
	0%, 50%    { opacity: 0; }
	58%        { opacity: 1; }
	96%        { opacity: 1; }
	97%, 100%  { opacity: 0; }
}
@keyframes tsp-cycle-graph-value {
	0%, 56%    { opacity: 0; transform: translateX(-8px); }
	60%        { opacity: 1; transform: translateX(0); }
	96%        { opacity: 1; }
	97%, 100%  { opacity: 0; }
}

/* APPLY-Block in der Szene — fade-in wenn Puls am Graph-Endpunkt ankommt (Apply-Plateau 60–96%) */
.tsp-cycle__apply-block {
	opacity: 0;
	animation: tsp-cycle-apply-reveal 28s ease-in-out infinite;
}
@keyframes tsp-cycle-apply-reveal {
	0%, 58%    { opacity: 0; }
	60%        { opacity: 1; }
	96%        { opacity: 1; }
	97%, 100%  { opacity: 0; }
}

/* APPLY-BUTTON — HTML overlay, eingeblendet während Apply-Plateau (60–96% = 10s) */
.tsp-cycle__apply-btn {
	position: absolute;
	right: 20px; bottom: 20px;
	display: inline-flex; align-items: center; gap: 8px;
	padding: 12px 22px; border-radius: 999px;
	background: var(--tsp-cyan); color: #fff !important;
	font-family: var(--tsp-font-body);
	font-size: 14px; font-weight: 600; letter-spacing: 0.02em;
	text-decoration: none;
	box-shadow: 0 8px 24px rgba(0,185,188,0.35);
	transition: background 0.2s ease;
	z-index: 5;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	animation: tsp-cycle-apply-btn-reveal 28s cubic-bezier(0.5, 0, 0.5, 1) infinite;
}
@keyframes tsp-cycle-apply-btn-reveal {
	0%, 58%    { opacity: 0;    visibility: hidden; pointer-events: none; }
	60%        { opacity: 1;    visibility: visible; pointer-events: auto; }
	96%        { opacity: 1;    visibility: visible; pointer-events: auto; }
	97%, 100%  { opacity: 0;    visibility: hidden; pointer-events: none; }
}
.tsp-cycle__apply-btn:hover {
	background: var(--tsp-cyan-dark);
	transform: translateY(-2px);
	box-shadow: 0 12px 32px rgba(0,185,188,0.5);
}
.tsp-cycle__apply-btn span { transition: transform 0.2s ease; }
.tsp-cycle__apply-btn:hover span { transform: translateX(3px); }

/* Node-Glow für Stations (sanftes Atmen im Hintergrund) */
.tsp-cycle__node-glow {
	transform-origin: center;
	transform-box: fill-box;
	animation: tsp-cycle-node-glow 3s ease-in-out infinite;
	opacity: 0.6;
}
@keyframes tsp-cycle-node-glow {
	0%, 100% { opacity: 0.4; transform: scale(0.9); }
	50%      { opacity: 0.75; transform: scale(1.1); }
}

/* Motion-reduce */
@media (prefers-reduced-motion: reduce) {
	.tsp-cycle__world { animation: none; transform: translateX(-79.17%); }
	.tsp-cycle__vehicle { animation: none; transform: translate(1750px, 110px); }
	.tsp-cycle__graph-endpoint { animation: none; opacity: 1; transform: translate(0, 0); }
	.tsp-cycle__pulse   { animation: none; }
	.tsp-cycle__node-glow { animation: none; opacity: 0.5; }
	.tsp-cycle__envelope,
	.tsp-cycle__confetti-piece,
	.tsp-cycle__closed-glow,
	.tsp-cycle__coin { animation: none; opacity: 0; }
	.tsp-cycle__graph-line { animation: none; stroke-dashoffset: 0; }
	.tsp-cycle__graph-fill,
	.tsp-cycle__graph-endpoint,
	.tsp-cycle__graph-value,
	.tsp-cycle__apply-block { animation: none; opacity: 1; }
}

/* Alte Walker-Regeln killen (Walker existiert nicht mehr) */
.tsp-cycle__walker { display: none; }

/* ══════════════════════════════════════════════════════════════════════
   PROFILE — Länder-Übersicht + Partner-Liste (Bento-Style)
   ══════════════════════════════════════════════════════════════════════ */

.tsp-profile-hero {
	padding: 130px 0 40px;
	background: linear-gradient(180deg, #ffffff 0%, #fafafa 100%);
}
@media (max-width: 780px) { .tsp-profile-hero { padding-top: 110px; } }
.tsp-profile-hero__inner { text-align: left; }
.tsp-profile-hero h1 {
	font-family: var(--tsp-font-display);
	font-size: clamp(36px, 5vw, 56px);
	font-weight: 700; margin: 8px 0 12px;
	color: var(--tsp-ink);
	letter-spacing: -0.015em;
}
.tsp-profile-hero__lead {
	max-width: 720px; color: var(--tsp-slate);
	font-size: clamp(16px, 1.4vw, 18px); line-height: 1.55;
}
.tsp-breadcrumbs {
	display: inline-flex; gap: 8px; align-items: center;
	font-size: 13px; color: var(--tsp-slate); margin-bottom: 4px;
}
.tsp-breadcrumbs a { color: var(--tsp-teal); text-decoration: none; font-weight: 500; }
.tsp-breadcrumbs a:hover { text-decoration: underline; }
.tsp-breadcrumbs__sep { color: #94a3b8; }

.tsp-profile-section {
	padding: 40px 0 96px;
	background: #fafafa;
}
.tsp-country-grid {
	list-style: none; padding: 0; margin: 0;
	display: grid; gap: 18px;
	grid-template-columns: repeat(4, 1fr);
}
@media (max-width: 960px) { .tsp-country-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 720px) { .tsp-country-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 440px) { .tsp-country-grid { grid-template-columns: 1fr; } }

.tsp-country-card {
	background: #fff; border-radius: 18px; border: 1px solid var(--tsp-line);
	padding: 22px 20px; transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
	display: flex; flex-direction: column; gap: 10px;
	text-decoration: none; color: inherit;
}
.tsp-country-card:hover { transform: translateY(-3px); box-shadow: var(--tsp-card-shadow); border-color: var(--tsp-teal); }
.tsp-country-card__flag {
	width: 44px; height: 32px; border-radius: 4px; overflow: hidden;
	box-shadow: 0 1px 3px rgba(0,0,0,0.15);
	display: flex; align-items: center; justify-content: center;
	font-size: 28px; line-height: 1;
	background: #f1f5f9;
}
.tsp-country-card__name {
	font-family: var(--tsp-font-display); font-weight: 600;
	font-size: 18px; color: var(--tsp-ink);
	margin: 0;
}
.tsp-country-card__code {
	font-size: 11px; letter-spacing: 2px; color: var(--tsp-slate);
	text-transform: uppercase; font-weight: 500;
}
.tsp-country-card__count {
	display: inline-flex; align-items: center; gap: 6px;
	font-size: 13px; color: var(--tsp-teal); font-weight: 600;
	margin-top: auto;
}
.tsp-country-card__count::before {
	content: ""; width: 6px; height: 6px; border-radius: 50%;
	background: var(--tsp-teal); box-shadow: 0 0 0 4px rgba(0,185,188,0.15);
}

.tsp-empty {
	text-align: center; padding: 60px 24px;
	background: #fff; border-radius: 18px; border: 1px solid var(--tsp-line);
}
.tsp-empty__icon { font-size: 48px; margin-bottom: 12px; opacity: 0.35; }
.tsp-empty h3 { font-family: var(--tsp-font-display); font-size: 20px; color: var(--tsp-ink); margin: 0 0 6px; }
.tsp-empty p { color: var(--tsp-slate); margin: 0; font-size: 14px; }

.tsp-partner-grid {
	list-style: none; padding: 0; margin: 0;
	display: grid; gap: 20px;
	grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 960px) { .tsp-partner-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .tsp-partner-grid { grid-template-columns: 1fr; } }

.tsp-partner-card {
	background: #fff; border-radius: 18px; border: 1px solid var(--tsp-line);
	padding: 24px; display: flex; flex-direction: column; gap: 14px;
	position: relative; overflow: hidden;
	transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.tsp-partner-card:hover { transform: translateY(-3px); box-shadow: var(--tsp-card-shadow); border-color: var(--tsp-teal); }
.tsp-partner-card--exclusive { border-top: 4px solid var(--tsp-ink); }
.tsp-partner-card--premium { border-top: 4px solid var(--tsp-teal); }
.tsp-partner-card--authorized { border-top: 4px solid #00B9BC; }

.tsp-partner-card__head {
	display: flex; align-items: center; gap: 14px;
}
.tsp-partner-card__logo {
	width: 60px; height: 60px; border-radius: 12px; overflow: hidden;
	background: #f1f5f9; flex-shrink: 0;
	display: flex; align-items: center; justify-content: center;
}
.tsp-partner-card__logo img { max-width: 100%; max-height: 100%; object-fit: contain; display: block; }
.tsp-partner-card__logo--placeholder {
	font-family: var(--tsp-font-display); font-weight: 700; font-size: 22px;
	color: var(--tsp-teal); background: rgba(0,185,188,0.08);
}
.tsp-partner-card__name {
	font-family: var(--tsp-font-display); font-weight: 600;
	font-size: 18px; margin: 0; color: var(--tsp-ink); line-height: 1.3;
}
.tsp-partner-card__badges {
	display: flex; gap: 6px; flex-wrap: wrap; align-items: center;
}
.tsp-tier-badge {
	display: inline-flex; align-items: center; gap: 4px;
	padding: 4px 10px; border-radius: 999px;
	font-size: 11px; font-weight: 700; letter-spacing: 0.5px; text-transform: uppercase;
}
.tsp-tier-badge--exclusive { background: var(--tsp-ink); color: #fff; }
.tsp-tier-badge--premium { background: var(--tsp-teal); color: #fff; }
.tsp-tier-badge--authorized { background: rgba(0,185,188,0.15); color: var(--tsp-teal); }
.tsp-tier-badge--service {
	background: #fff; color: var(--tsp-ink);
	border: 1px solid var(--tsp-line);
}
.tsp-partner-card__desc {
	font-size: 14px; line-height: 1.55; color: var(--tsp-slate); margin: 0;
	display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical;
	overflow: hidden;
}
.tsp-partner-card__meta {
	display: flex; flex-wrap: wrap; gap: 8px 12px;
	font-size: 12px; color: var(--tsp-slate); margin-top: auto;
}
.tsp-partner-card__meta i { color: var(--tsp-teal); margin-right: 4px; }
.tsp-partner-card__cta {
	margin-top: 4px;
	display: inline-flex; align-items: center; gap: 6px;
	font-size: 14px; font-weight: 600; color: var(--tsp-teal);
	text-decoration: none;
}
.tsp-partner-card:hover .tsp-partner-card__cta { text-decoration: underline; }
.tsp-partner-card__link {
	position: absolute; inset: 0; z-index: 1;
	text-indent: -9999px; overflow: hidden;
}

.tsp-filter-row {
	display: flex; flex-wrap: wrap; gap: 10px; align-items: center;
	margin: 8px 0 32px; font-size: 14px;
}
.tsp-filter-row__label { color: var(--tsp-slate); }
.tsp-filter-row__pill {
	display: inline-flex; align-items: center; gap: 6px;
	padding: 6px 14px; border-radius: 999px;
	background: #fff; border: 1px solid var(--tsp-line);
	color: var(--tsp-ink); font-weight: 500; text-decoration: none;
	transition: all 0.15s ease;
}
.tsp-filter-row__pill:hover { border-color: var(--tsp-teal); color: var(--tsp-teal); }
.tsp-filter-row__pill--active { background: var(--tsp-teal); color: #fff; border-color: var(--tsp-teal); }

/* ══════════════════════════════════════════════════════════════════════
   PARTNER-DETAIL — Full-Width Hero + Bento-Profil + Reviews + News
   ══════════════════════════════════════════════════════════════════════ */

/* ── Hero-Banner (Premium) + überhängende Info-Card ──────────────────── */
.tsp-detail-hero {
	position: relative;
	background: linear-gradient(135deg, #0d1f22 0%, #1a3338 60%, var(--tsp-teal) 130%);
	overflow: hidden;
	padding-top: 89px; /* Header-Höhe */
}
.tsp-detail-hero__banner {
	position: relative;
	width: 100%;
	height: clamp(200px, 30vw, 380px);
	overflow: hidden;
}
.tsp-detail-hero__banner img {
	width: 100%; height: 100%; object-fit: cover; display: block;
	filter: saturate(1.05);
}
.tsp-detail-hero__banner--empty {
	background: linear-gradient(135deg, #0d1f22 0%, #1a3338 100%);
	position: relative;
}
.tsp-detail-hero__banner--empty::before {
	content: "";
	position: absolute; inset: 0;
	background:
		radial-gradient(circle at 20% 80%, rgba(0,185,188,0.28) 0%, transparent 45%),
		radial-gradient(circle at 80% 20%, rgba(0,115,125,0.35) 0%, transparent 45%);
}
.tsp-detail-hero__banner--empty::after {
	content: "";
	position: absolute; inset: 0;
	background-image:
		linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
	background-size: 40px 40px;
}
.tsp-detail-hero__banner-fade {
	position: absolute; left: 0; right: 0; bottom: 0; height: 40%;
	background: linear-gradient(180deg, transparent 0%, rgba(10,34,38,0.6) 100%);
	pointer-events: none;
}

/* Überhängende Info-Card (Desktop überlappt Banner um -60px) */
.tsp-detail-card {
	position: relative;
	margin: -60px auto 0;
	max-width: 1200px;
	padding: 0 24px;
	z-index: 3;
}
.tsp-detail-card__inner {
	background: #fff;
	border-radius: 24px;
	box-shadow: 0 20px 60px rgba(0,0,0,0.15);
	padding: 32px;
	display: grid;
	grid-template-columns: auto 1fr auto;
	gap: 24px;
	align-items: center;
}
.tsp-detail-card__logo {
	width: 100px; height: 100px;
	border-radius: 20px; overflow: hidden;
	background: #f1f5f9;
	display: flex; align-items: center; justify-content: center;
	flex-shrink: 0;
}
.tsp-detail-card__logo img { max-width: 100%; max-height: 100%; object-fit: contain; display: block; }
.tsp-detail-card__logo--placeholder {
	font-family: var(--tsp-font-display);
	font-weight: 700; font-size: 34px;
	background: linear-gradient(135deg, rgba(0,185,188,0.15) 0%, rgba(0,115,125,0.10) 100%);
	color: var(--tsp-teal);
}
.tsp-detail-card__body { min-width: 0; }
.tsp-detail-card__crumbs {
	display: flex; gap: 6px; align-items: center;
	font-size: 12px; color: var(--tsp-slate); margin-bottom: 8px;
	flex-wrap: wrap;
}
.tsp-detail-card__crumbs a { color: var(--tsp-teal); text-decoration: none; }
.tsp-detail-card__crumbs a:hover { text-decoration: underline; }
.tsp-detail-card__crumbs-sep { color: #cbd5e1; }
.tsp-detail-card__name {
	font-family: var(--tsp-font-display);
	font-size: clamp(24px, 2.6vw, 36px);
	font-weight: 700; margin: 0 0 8px;
	color: var(--tsp-ink); letter-spacing: -0.01em;
	line-height: 1.15;
}
.tsp-detail-card__meta {
	display: flex; flex-wrap: wrap; gap: 10px; align-items: center;
}
.tsp-detail-card__cta,
button.tsp-detail-card__cta {
	display: inline-flex; align-items: center; gap: 8px;
	background: var(--tsp-teal); color: #fff !important;
	padding: 14px 26px; border-radius: 999px;
	font-family: var(--tsp-font-display) !important;
	font-weight: 700 !important; font-size: 15px !important;
	text-decoration: none;
	transition: background 0.15s ease, transform 0.15s ease;
	white-space: nowrap;
	border: 0;
	cursor: pointer;
	line-height: 1.2;
	letter-spacing: 0;
	text-transform: none;
}
.tsp-detail-card__cta:hover,
button.tsp-detail-card__cta:hover { background: var(--tsp-cyan); transform: translateY(-1px); }

/* Social-Media-Icons (Premium+) */
.tsp-detail-social {
	display: flex; gap: 10px; flex-wrap: wrap; margin-top: 12px;
}
.tsp-detail-social__icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 36px; height: 36px; border-radius: 10px;
	background: #f1f5f9; color: var(--tsp-ink);
	text-decoration: none;
	transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}
.tsp-detail-social__icon:hover { background: var(--tsp-teal); color: #fff; transform: translateY(-1px); }
.tsp-detail-social__icon svg { width: 18px; height: 18px; }

@media (max-width: 900px) {
	.tsp-detail-card__inner { grid-template-columns: auto 1fr; grid-template-rows: auto auto; }
	.tsp-detail-card__cta { grid-column: 1 / -1; justify-content: center; }
}
@media (max-width: 560px) {
	.tsp-detail-card { margin-top: -30px; padding: 0 12px; }
	.tsp-detail-card__inner { padding: 20px; grid-template-columns: 1fr; text-align: center; }
	.tsp-detail-card__logo { margin: 0 auto; width: 80px; height: 80px; }
	.tsp-detail-card__meta { justify-content: center; }
	.tsp-detail-social { justify-content: center; }
	.tsp-detail-card__crumbs { justify-content: center; }
}

/* ── Bento-Profil 2 Spalten ──────────────────────────────────────────── */
.tsp-detail-body { padding: 60px 0 100px; background: #fafafa; }
.tsp-detail-bento {
	display: grid; gap: 24px;
	grid-template-columns: 1.4fr 1fr;
	margin-bottom: 40px;
}
@media (max-width: 900px) { .tsp-detail-bento { grid-template-columns: 1fr; } }

.tsp-detail-block {
	background: #fff; border-radius: 18px; border: 1px solid var(--tsp-line);
	padding: 28px 30px;
}
.tsp-detail-block__title {
	font-family: var(--tsp-font-display);
	font-size: 12px; font-weight: 700; letter-spacing: 1.4px;
	color: var(--tsp-teal); text-transform: uppercase;
	margin: 0 0 12px;
}
.tsp-detail-block__lead {
	font-family: var(--tsp-font-display);
	font-size: 22px; font-weight: 600; color: var(--tsp-ink);
	margin: 0 0 14px; line-height: 1.3;
}
.tsp-detail-block__desc {
	font-size: 15px; line-height: 1.7; color: var(--tsp-slate);
	margin: 0 0 20px;
}

/* Faceted chips (Sprachen / Branchen / Produkte) */
.tsp-detail-facets {
	display: grid; gap: 18px;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	margin-top: 20px;
}
.tsp-detail-facet__label {
	font-size: 11px; font-weight: 700; letter-spacing: 1.2px;
	color: var(--tsp-slate); text-transform: uppercase; margin-bottom: 8px;
}
.tsp-detail-facet__chips {
	display: flex; flex-wrap: wrap; gap: 6px;
}
.tsp-detail-facet__chip {
	display: inline-flex; align-items: center; gap: 4px;
	padding: 4px 10px; border-radius: 999px;
	background: #f1f5f9; color: var(--tsp-ink);
	font-size: 12px; font-weight: 500;
}

/* Kontakt-Card */
.tsp-detail-contact ul {
	list-style: none; padding: 0; margin: 0;
	display: flex; flex-direction: column; gap: 14px;
}
.tsp-detail-contact li {
	display: flex; align-items: flex-start; gap: 12px;
	font-size: 14px; color: var(--tsp-ink);
}
.tsp-detail-contact li i {
	width: 22px; height: 22px; flex-shrink: 0;
	color: var(--tsp-teal); font-size: 16px;
	display: flex; align-items: center; justify-content: center;
}
.tsp-detail-contact li a { color: var(--tsp-ink); text-decoration: none; }
.tsp-detail-contact li a:hover { color: var(--tsp-teal); text-decoration: underline; }
.tsp-detail-contact__label {
	display: block; font-size: 11px; letter-spacing: 1.2px;
	color: var(--tsp-slate); text-transform: uppercase; margin-bottom: 2px;
}
.tsp-detail-contact-trust {
	margin-top: 18px; padding-top: 18px;
	border-top: 1px solid var(--tsp-line);
	display: flex; flex-direction: column; gap: 12px;
}
.tsp-detail-trust-chip {
	display: flex; align-items: center; gap: 12px;
	padding: 12px 14px; border-radius: 12px;
	background: linear-gradient(135deg, rgba(0,185,188,0.06) 0%, rgba(0,115,125,0.04) 100%);
}
.tsp-detail-trust-chip__icon {
	width: 32px; height: 32px; border-radius: 8px;
	background: rgba(0,185,188,0.14); color: var(--tsp-teal);
	display: flex; align-items: center; justify-content: center;
	font-size: 16px; flex-shrink: 0;
}
.tsp-detail-trust-chip__text b {
	display: block; font-weight: 700; color: var(--tsp-ink); font-size: 14px;
}
.tsp-detail-trust-chip__text span {
	font-size: 12px; color: var(--tsp-slate);
}

/* ── OSM-Karte ───────────────────────────────────────────────────────── */
.tsp-detail-map {
	background: #fff; border-radius: 18px; overflow: hidden;
	border: 1px solid var(--tsp-line); margin-bottom: 40px;
}
.tsp-detail-map__frame {
	width: 100%; height: 340px; background: #dbeafe;
}
.tsp-detail-map__frame .leaflet-container { height: 100%; width: 100%; }

/* ── Bewertungen ────────────────────────────────────────────────────── */
.tsp-detail-reviews { margin-bottom: 40px; }
.tsp-detail-reviews__head {
	display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center;
	gap: 16px; margin-bottom: 22px;
}
.tsp-detail-reviews__title {
	font-family: var(--tsp-font-display);
	font-size: 28px; font-weight: 700; color: var(--tsp-ink);
	margin: 0; letter-spacing: -0.01em;
}
.tsp-detail-reviews__avg {
	display: flex; align-items: center; gap: 10px;
	font-size: 14px; color: var(--tsp-slate);
}
.tsp-detail-reviews__stars {
	display: inline-flex; gap: 2px;
	font-size: 20px; line-height: 1;
}
.tsp-detail-reviews__stars .star--full { color: #f59e0b; }
.tsp-detail-reviews__stars .star--empty { color: #d1d5db; }
.tsp-detail-reviews__cta {
	display: inline-flex; align-items: center; gap: 6px;
	padding: 10px 18px; border-radius: 999px;
	background: #fff; border: 1.5px solid var(--tsp-teal);
	color: var(--tsp-teal); font-weight: 600; font-size: 14px;
	text-decoration: none;
	transition: all 0.15s ease;
}
.tsp-detail-reviews__cta:hover { background: var(--tsp-teal); color: #fff; }
.tsp-detail-reviews__list {
	display: grid; gap: 16px;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}
.tsp-detail-review {
	background: #fff; border: 1px solid var(--tsp-line); border-radius: 16px;
	padding: 20px 22px;
}
.tsp-detail-review__head {
	display: flex; justify-content: space-between; align-items: flex-start;
	gap: 12px; margin-bottom: 10px;
}
.tsp-detail-review__meta { font-size: 12px; color: var(--tsp-slate); }
.tsp-detail-review__meta b { color: var(--tsp-ink); font-weight: 600; display: block; margin-bottom: 2px; font-size: 13px; }
.tsp-detail-review__stars { font-size: 14px; color: #f59e0b; letter-spacing: 1px; flex-shrink: 0; }
.tsp-detail-review__title {
	font-family: var(--tsp-font-display);
	font-size: 16px; font-weight: 600; color: var(--tsp-ink);
	margin: 6px 0 8px; line-height: 1.3;
}
.tsp-detail-review__body {
	font-size: 14px; line-height: 1.6; color: var(--tsp-slate); margin: 0;
}

/* Empty state Bewertungen — hübsch statt trocken */
.tsp-detail-empty {
	background: #fff; border: 1px dashed var(--tsp-line); border-radius: 18px;
	padding: 40px 30px; text-align: center;
}
.tsp-detail-empty__icon {
	width: 56px; height: 56px; border-radius: 14px; margin: 0 auto 14px;
	background: rgba(0,185,188,0.12); color: var(--tsp-teal);
	display: flex; align-items: center; justify-content: center; font-size: 26px;
}
.tsp-detail-empty h3 {
	font-family: var(--tsp-font-display);
	font-size: 18px; font-weight: 600; color: var(--tsp-ink); margin: 0 0 8px;
}
.tsp-detail-empty p {
	font-size: 14px; color: var(--tsp-slate); margin: 0 0 18px;
	max-width: 440px; margin-left: auto; margin-right: auto; line-height: 1.55;
}

/* ── News-Feed mit Tabs ──────────────────────────────────────────────── */
.tsp-detail-news { margin-bottom: 40px; }
.tsp-detail-news__head { margin-bottom: 22px; }
.tsp-detail-news__title {
	font-family: var(--tsp-font-display);
	font-size: 28px; font-weight: 700; color: var(--tsp-ink);
	margin: 0 0 16px; letter-spacing: -0.01em;
}
.tsp-detail-news__tabs {
	display: flex; flex-wrap: wrap; gap: 8px;
	padding-bottom: 4px; margin-bottom: 24px;
	border-bottom: 1px solid var(--tsp-line);
}
.tsp-detail-news__tab {
	background: transparent; border: 0;
	padding: 8px 14px; border-radius: 999px;
	color: var(--tsp-slate); font-weight: 500; font-size: 14px;
	cursor: pointer; text-decoration: none;
	transition: all 0.15s ease;
}
.tsp-detail-news__tab:hover { background: rgba(0,185,188,0.08); color: var(--tsp-teal); }
.tsp-detail-news__tab--active { background: var(--tsp-teal); color: #fff; }
.tsp-detail-news__tab--active:hover { background: var(--tsp-teal-hover); color: #fff; }
.tsp-detail-news__count {
	display: inline-block; margin-left: 6px; padding: 1px 8px;
	background: rgba(255,255,255,0.25); border-radius: 999px; font-size: 11px;
}
.tsp-detail-news__tab:not(.tsp-detail-news__tab--active) .tsp-detail-news__count {
	background: rgba(148,163,184,0.15); color: var(--tsp-slate);
}

.tsp-detail-news__grid {
	display: grid; gap: 20px;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
}
.tsp-detail-news-card.is-hidden { display: none; }
.tsp-detail-news-card {
	background: #fff; border: 1px solid var(--tsp-line); border-radius: 16px;
	overflow: hidden; display: flex; flex-direction: column;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.tsp-detail-news-card:hover { transform: translateY(-2px); box-shadow: var(--tsp-card-shadow); }
.tsp-detail-news-card__cover {
	width: 100%; height: 160px; background: #f1f5f9; overflow: hidden;
}
.tsp-detail-news-card__cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tsp-detail-news-card__body { padding: 18px 20px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.tsp-detail-news-card__kind {
	display: inline-flex; align-items: center; gap: 4px;
	font-size: 10px; font-weight: 700; letter-spacing: 1.2px;
	color: var(--tsp-teal); text-transform: uppercase;
}
.tsp-detail-news-card__title {
	font-family: var(--tsp-font-display);
	font-size: 17px; font-weight: 600; color: var(--tsp-ink);
	margin: 0; line-height: 1.35;
}
.tsp-detail-news-card__excerpt {
	font-size: 14px; line-height: 1.55; color: var(--tsp-slate); margin: 0;
	display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.tsp-detail-news-card__meta {
	margin-top: auto; padding-top: 8px;
	font-size: 12px; color: var(--tsp-slate);
	display: flex; justify-content: space-between; align-items: center;
}
.tsp-detail-news-card__link {
	color: var(--tsp-teal); font-weight: 600; text-decoration: none;
	font-size: 13px; display: inline-flex; gap: 4px; align-items: center;
}
.tsp-detail-news-card__link:hover { text-decoration: underline; }

/* Case-Study-Karte hat drei Felder statt Excerpt */
.tsp-detail-news-card__case {
	display: grid; gap: 10px; margin-top: 6px;
}
.tsp-detail-news-card__case-row {
	display: grid; grid-template-columns: 80px 1fr; gap: 8px;
	font-size: 13px;
}
.tsp-detail-news-card__case-row strong {
	color: var(--tsp-slate); font-weight: 600; font-size: 11px;
	letter-spacing: 1px; text-transform: uppercase; align-self: center;
}
.tsp-detail-news-card__case-row span { color: var(--tsp-ink); line-height: 1.5; }

/* ══════════════════════════════════════════════════════════════════════
   REVIEW-SUBMIT-MODAL (Phase 2, D16.c/j)
   ══════════════════════════════════════════════════════════════════════ */
/* Overlay + Card */
.tsp-review-modal {
	position: fixed !important; inset: 0 !important; z-index: 10000 !important;
	display: flex !important; align-items: center !important; justify-content: center !important;
	padding: 20px !important; opacity: 0; transition: opacity 0.2s ease;
	pointer-events: auto;
	font-family: var(--tsp-font-body) !important;
}
/* Wenn hidden gesetzt ist, muss das Modal komplett aus dem Layout und darf
   KEINE Pointer-Events schlucken — sonst blockt es Klicks auf jedes andere
   Overlay auf der Seite (z.B. den HubSpot-Chat-Button unten rechts). Die
   [hidden]-Selektor-Spezifität schlägt die display:flex !important-Deklaration
   oben. */
.tsp-review-modal[hidden] { display: none !important; pointer-events: none !important; }
.tsp-review-modal.is-open { opacity: 1; }
.tsp-review-modal__backdrop {
	position: absolute; inset: 0;
	background: rgba(10,34,38,0.55);
	backdrop-filter: blur(4px);
}
.tsp-review-modal__card {
	position: relative;
	width: 100%; max-width: 640px;
	background: #fff !important; border-radius: 24px !important;
	padding: 44px !important; box-shadow: 0 24px 70px rgba(0,0,0,0.28);
	max-height: 92vh; overflow-y: auto;
	transform: translateY(20px);
	transition: transform 0.2s ease;
	text-align: left !important;
}
.tsp-review-modal.is-open .tsp-review-modal__card { transform: translateY(0); }
@media (max-width: 560px) {
	.tsp-review-modal__card { padding: 32px 24px !important; }
}
.tsp-review-modal__close {
	position: absolute !important; top: 20px !important; right: 20px !important;
	width: 36px !important; height: 36px !important; border-radius: 50% !important;
	background: rgba(148,163,184,0.15) !important; color: var(--tsp-ink) !important;
	border: 0 !important; cursor: pointer !important;
	font-size: 20px !important; line-height: 1 !important;
	display: flex !important; align-items: center !important; justify-content: center !important;
	transition: background 0.15s ease;
	padding: 0 !important;
	text-transform: none !important;
}
.tsp-review-modal__close:hover { background: rgba(148,163,184,0.3) !important; }

/* Headline & Lead */
.tsp-review-modal__title {
	font-family: var(--tsp-font-display) !important;
	font-size: 26px !important; font-weight: 700 !important;
	margin: 0 0 10px !important; color: var(--tsp-ink) !important;
	letter-spacing: -0.01em !important;
	text-transform: none !important;
	line-height: 1.2 !important;
}
.tsp-review-modal__lead {
	color: var(--tsp-slate) !important;
	font-size: 15px !important;
	line-height: 1.6 !important;
	margin: 0 0 28px !important;
	text-transform: none !important;
}

/* Form */
.tsp-review-form { display: flex !important; flex-direction: column !important; gap: 20px !important; }
.tsp-review-field { display: block !important; margin: 0 !important; }
.tsp-review-field__label,
.tsp-review-field > span {
	display: block !important;
	font-family: var(--tsp-font-display) !important;
	font-size: 13px !important; font-weight: 600 !important;
	color: var(--tsp-ink) !important;
	margin: 0 0 8px !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}
.tsp-review-modal input[type="text"],
.tsp-review-modal input[type="email"],
.tsp-review-modal input[type="tel"],
.tsp-review-modal input[type="url"],
.tsp-review-modal input[type="number"],
.tsp-review-modal input:not([type]),
.tsp-review-modal textarea {
	width: 100% !important; box-sizing: border-box !important;
	border: 1px solid var(--tsp-line) !important; border-radius: 12px !important;
	padding: 12px 16px !important; font-size: 15px !important;
	color: var(--tsp-ink) !important;
	font-family: var(--tsp-font-body) !important;
	background: #fafbfc !important;
	transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
	text-transform: none !important;
	line-height: 1.5 !important;
}
.tsp-review-modal input[type="text"]:focus,
.tsp-review-modal input[type="email"]:focus,
.tsp-review-modal input[type="tel"]:focus,
.tsp-review-modal input[type="url"]:focus,
.tsp-review-modal input[type="number"]:focus,
.tsp-review-modal input:not([type]):focus,
.tsp-review-modal textarea:focus {
	outline: none !important;
	border-color: var(--tsp-teal) !important;
	background: #fff !important;
	box-shadow: 0 0 0 4px rgba(0,185,188,0.12) !important;
}
.tsp-review-modal textarea {
	resize: vertical !important;
	min-height: 120px !important;
}

.tsp-review-row {
	display: grid !important; gap: 20px !important;
	grid-template-columns: 1fr 1fr !important;
}
@media (max-width: 560px) {
	.tsp-review-row { grid-template-columns: 1fr !important; }
}

/* Sterne — groß, gold, kein Border-Kasten */
.tsp-review-stars {
	display: flex !important; gap: 6px !important;
	padding: 4px 0 !important;
}
.tsp-review-star {
	background: transparent !important;
	border: 0 !important;
	cursor: pointer !important;
	font-size: 34px !important; line-height: 1 !important;
	color: #f59e0b !important;
	padding: 4px 2px !important;
	border-radius: 8px !important;
	transition: transform 0.15s ease, color 0.15s ease !important;
	font-family: inherit !important;
	text-transform: none !important;
	box-shadow: none !important;
	min-width: auto !important;
	height: auto !important;
	width: auto !important;
	text-shadow: 0 1px 2px rgba(245,158,11,0.15);
}
.tsp-review-star:hover { transform: scale(1.15) !important; }
.tsp-review-star:focus {
	outline: 2px solid rgba(0,185,188,0.35) !important;
	outline-offset: 3px !important;
}

/* Consent */
.tsp-review-consent,
.tsp-review-consent span,
.tsp-review-modal label.tsp-review-consent {
	display: flex !important; align-items: flex-start !important; gap: 10px !important;
	font-family: var(--tsp-font-body) !important;
	font-size: 13px !important; color: var(--tsp-slate) !important;
	font-weight: 400 !important;
	line-height: 1.55 !important;
	margin: 4px 0 0 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
}
.tsp-review-consent > span {
	display: block !important;
	margin: 0 !important;
}
.tsp-review-consent input[type="checkbox"] {
	margin: 3px 0 0 !important;
	accent-color: var(--tsp-teal) !important;
	width: 18px !important; height: 18px !important;
	flex-shrink: 0 !important;
}
.tsp-review-consent a {
	color: var(--tsp-teal) !important;
	text-decoration: underline !important;
	text-underline-offset: 2px;
	text-transform: none !important;
}
.tsp-review-consent a:hover { color: var(--tsp-cyan) !important; }

/* Actions — Pill-Buttons wie CTA-Design */
.tsp-review-actions {
	display: flex !important; gap: 12px !important; justify-content: flex-end !important;
	margin: 12px 0 0 !important;
	flex-wrap: wrap;
}
.tsp-review-btn {
	display: inline-flex !important;
	align-items: center !important;
	gap: 6px !important;
	padding: 12px 26px !important;
	border-radius: 999px !important;
	font-family: var(--tsp-font-display) !important;
	font-weight: 700 !important;
	font-size: 14px !important;
	border: 0 !important;
	cursor: pointer !important;
	transition: all 0.15s ease !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	line-height: 1.2 !important;
	white-space: nowrap;
}
.tsp-review-btn--primary,
.tsp-review-modal button.tsp-review-btn--primary {
	background: var(--tsp-teal) !important;
	background-color: var(--tsp-teal) !important;
	color: #fff !important;
	box-shadow: 0 4px 12px rgba(0,115,125,0.25);
}
.tsp-review-btn--primary:hover,
.tsp-review-modal button.tsp-review-btn--primary:hover {
	background: var(--tsp-cyan) !important;
	background-color: var(--tsp-cyan) !important;
	color: #fff !important;
	transform: translateY(-1px);
	box-shadow: 0 10px 26px rgba(0,185,188,0.35);
}
.tsp-review-btn--primary:disabled {
	opacity: 0.55 !important;
	cursor: not-allowed !important;
	transform: none !important;
	box-shadow: none !important;
}
.tsp-review-btn--ghost,
.tsp-review-modal button.tsp-review-btn--ghost {
	background: #fff !important;
	background-color: #fff !important;
	color: var(--tsp-slate) !important;
	border: 1px solid var(--tsp-line) !important;
}
.tsp-review-btn--ghost:hover,
.tsp-review-modal button.tsp-review-btn--ghost:hover {
	border-color: var(--tsp-teal) !important;
	color: var(--tsp-teal) !important;
	background: #fff !important;
}

/* Status */
.tsp-review-status {
	margin: 8px 0 0 !important;
	font-size: 13px !important;
	color: var(--tsp-slate) !important;
	min-height: 20px !important;
	text-transform: none !important;
}
.tsp-review-status.is-error { color: #dc2626 !important; }

/* Success */
.tsp-review-success {
	text-align: center !important;
	padding: 28px 12px 12px !important;
}
.tsp-review-success__icon {
	width: 72px !important; height: 72px !important;
	margin: 0 auto 20px !important;
	border-radius: 22px !important;
	background: rgba(0,185,188,0.15) !important;
	color: var(--tsp-teal) !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	font-size: 34px !important;
}
.tsp-review-success h3 {
	font-family: var(--tsp-font-display) !important;
	font-size: 22px !important;
	margin: 0 0 10px !important;
	color: var(--tsp-ink) !important;
	text-transform: none !important;
	letter-spacing: -0.01em !important;
}
.tsp-review-success p {
	color: var(--tsp-slate) !important;
	font-size: 15px !important;
	line-height: 1.6 !important;
	margin: 0 0 24px !important;
	text-transform: none !important;
}
.tsp-review-success__actions {
	display: flex; gap: 12px; justify-content: center;
	flex-wrap: wrap;
	margin-top: 8px;
}

/* Response-Time-Chip — auf Detail-Seite unter dem Kontakt-Block */
.tsp-detail-response-chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 14px;
	margin: 8px 0 12px;
	background: rgba(0,185,188,0.10);
	border: 1px solid rgba(0,185,188,0.30);
	border-radius: 999px;
	font-size: 13px;
	font-weight: 600;
	color: var(--tsp-teal);
}
.tsp-detail-response-chip__dot {
	width: 8px; height: 8px; border-radius: 50%;
	background: var(--tsp-cyan);
	box-shadow: 0 0 0 3px rgba(0,185,188,0.20);
	animation: tsp-pulse 2s ease-in-out infinite;
}
@keyframes tsp-pulse {
	0%, 100% { transform: scale(1); opacity: 1; }
	50% { transform: scale(1.2); opacity: 0.7; }
}

/* ══════════════════════════════════════════════════════════════════════
   D17. PARTNER-ÜBERSICHT — FILTER/SORT + BECOME-A-PARTNER-TEASER
   ══════════════════════════════════════════════════════════════════════ */

/* Hero-Stats */
.tsp-profile-hero__stats {
	display: flex; flex-wrap: wrap; gap: 12px;
	margin-top: 20px;
}
.tsp-profile-hero__stat {
	display: inline-flex; align-items: baseline; gap: 6px;
	padding: 8px 16px;
	background: rgba(0,185,188,0.10);
	border: 1px solid rgba(0,185,188,0.25);
	border-radius: 999px;
	font-size: 14px; color: var(--tsp-slate);
}
.tsp-profile-hero__stat b { color: var(--tsp-ink); font-weight: 700; font-size: 15px; }

/* Toolbar */
.tsp-profile-toolbar { padding: 24px 0 0; }
.tsp-toolbar {
	display: grid;
	grid-template-columns: 1fr auto auto;
	gap: 16px; align-items: end;
	padding: 20px 24px;
	background: #fff;
	border: 1px solid var(--tsp-line);
	border-radius: 16px;
	box-shadow: 0 4px 20px rgba(0,0,0,0.04);
}
@media (max-width: 780px) {
	.tsp-toolbar { grid-template-columns: 1fr; }
}
.tsp-toolbar__field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.tsp-toolbar__label {
	font-size: 12px; font-weight: 600; text-transform: uppercase;
	letter-spacing: 0.06em; color: var(--tsp-slate);
}
.tsp-toolbar__field input[type="search"],
.tsp-toolbar__field select {
	appearance: none; -webkit-appearance: none;
	padding: 10px 14px;
	background: #f9fafb;
	border: 1px solid var(--tsp-line);
	border-radius: 10px;
	font-size: 14px; color: var(--tsp-ink);
	font-family: inherit;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
	min-width: 220px;
}
.tsp-toolbar__field input[type="search"]:focus,
.tsp-toolbar__field select:focus {
	outline: none;
	border-color: var(--tsp-teal);
	box-shadow: 0 0 0 3px rgba(0,185,188,0.15);
	background: #fff;
}
.tsp-toolbar__field select {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path d='M1 1l4 4 4-4' stroke='%2364748b' stroke-width='1.5' fill='none' stroke-linecap='round'/></svg>");
	background-repeat: no-repeat;
	background-position: right 14px center;
	padding-right: 36px;
}
.tsp-toolbar__meta {
	grid-column: 1 / -1;
	margin: 0; padding: 0;
	font-size: 13px; color: var(--tsp-slate);
}

/* Grid — hidden state (client-side Filter) */
.tsp-country-grid__item.is-hidden { display: none; }
.tsp-country-grid__empty-filter {
	padding: 40px 20px;
	text-align: center; color: var(--tsp-slate);
	font-size: 15px;
}

/* Become-A-Partner Teaser */
.tsp-become-teaser {
	padding: 80px 0 100px;
	background: linear-gradient(180deg, transparent 0%, var(--tsp-fog) 40%);
}
.tsp-become-teaser__card {
	background: linear-gradient(135deg, var(--tsp-ink) 0%, #203556 100%);
	border-radius: 24px;
	padding: 48px 56px;
	color: #fff;
	display: grid;
	grid-template-columns: 1.4fr 1fr auto;
	gap: 32px;
	align-items: center;
	box-shadow: 0 20px 60px rgba(32,53,86,0.20);
	position: relative;
	overflow: hidden;
}
.tsp-become-teaser__card::before {
	content: "";
	position: absolute; inset: 0;
	background:
		radial-gradient(circle at 90% 20%, rgba(0,185,188,0.20) 0%, transparent 45%),
		radial-gradient(circle at 10% 80%, rgba(0,115,125,0.15) 0%, transparent 40%);
	pointer-events: none;
}
.tsp-become-teaser__text { position: relative; }
.tsp-become-teaser__text .tsp-kicker {
	color: var(--tsp-cyan);
}
.tsp-become-teaser__text h2 {
	font-family: var(--tsp-font-display);
	font-size: clamp(24px, 3vw, 32px);
	font-weight: 700;
	margin: 8px 0 12px;
	color: #fff;
	letter-spacing: -0.01em;
	line-height: 1.15;
}
.tsp-become-teaser__text p {
	color: rgba(255,255,255,0.82);
	line-height: 1.6;
	margin: 0;
	font-size: 15px;
}
.tsp-become-teaser__points {
	list-style: none; padding: 0; margin: 0;
	display: flex; flex-direction: column; gap: 12px;
	position: relative;
}
.tsp-become-teaser__points li {
	display: flex; align-items: center; gap: 12px;
	color: rgba(255,255,255,0.92);
	font-size: 14px;
	font-weight: 500;
}
.tsp-become-teaser__point-icon {
	width: 36px; height: 36px;
	background: rgba(0,185,188,0.20);
	border-radius: 10px;
	display: inline-flex; align-items: center; justify-content: center;
	font-size: 16px;
	flex-shrink: 0;
}
.tsp-become-teaser__cta { position: relative; }
.tsp-become-teaser__btn {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 14px 26px;
	background: var(--tsp-cyan);
	color: var(--tsp-ink) !important;
	border-radius: 999px;
	font-weight: 700; font-size: 15px;
	text-decoration: none;
	white-space: nowrap;
	transition: background 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}
.tsp-become-teaser__btn:hover {
	background: #fff;
	transform: translateY(-1px);
	box-shadow: 0 8px 24px rgba(0,185,188,0.30);
}
@media (max-width: 900px) {
	.tsp-become-teaser__card {
		grid-template-columns: 1fr;
		padding: 36px 28px;
	}
	.tsp-become-teaser__cta { justify-self: start; }
}

/* ══════════════════════════════════════════════════════════════════════
   D17-v2. PARTNER-BENTO + FILTER-CHIP-ROW + BEBILDERTE CTA
   ══════════════════════════════════════════════════════════════════════ */

/* Filter-Bar mit Chips */
.tsp-filter-bar {
	display: flex; flex-wrap: wrap; gap: 10px;
	padding: 16px 20px;
	background: #fff;
	border: 1px solid var(--tsp-line);
	border-radius: 20px;
	box-shadow: 0 4px 20px rgba(0,0,0,0.04);
	align-items: center;
}
.tsp-filter-chip {
	position: relative;
	display: inline-flex; align-items: center; gap: 8px;
	padding: 8px 16px;
	background: #f9fafb;
	border: 1px solid var(--tsp-line);
	border-radius: 999px;
	font-size: 14px; font-weight: 600; color: var(--tsp-ink);
	cursor: pointer;
	transition: border-color 0.15s ease, background 0.15s ease;
	font-family: inherit;
}
.tsp-filter-chip:hover,
.tsp-filter-chip.is-open {
	border-color: var(--tsp-teal); background: #fff;
}
.tsp-filter-chip.has-active {
	background: rgba(0,185,188,0.10);
	border-color: var(--tsp-teal);
	color: var(--tsp-teal);
}
.tsp-filter-chip__badge {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 20px; height: 20px;
	background: var(--tsp-teal); color: #fff;
	border-radius: 999px;
	font-size: 11px; font-weight: 700;
	padding: 0 6px;
}
.tsp-filter-chip__caret {
	font-size: 10px; color: var(--tsp-slate);
	transition: transform 0.15s ease;
}
.tsp-filter-chip.is-open .tsp-filter-chip__caret { transform: rotate(180deg); }
.tsp-filter-pop {
	position: absolute; top: calc(100% + 8px); left: 0;
	min-width: 260px; max-height: 320px; overflow-y: auto;
	background: #fff;
	border: 1px solid var(--tsp-line);
	border-radius: 16px;
	padding: 8px;
	box-shadow: 0 12px 40px rgba(0,0,0,0.15);
	display: none;
	z-index: 20;
	text-align: left;
	cursor: default;
}
.tsp-filter-chip.is-open .tsp-filter-pop { display: block; }
.tsp-filter-opt {
	display: flex; align-items: center; gap: 10px;
	padding: 8px 12px;
	border-radius: 10px;
	cursor: pointer;
	font-weight: 500; color: var(--tsp-ink);
	transition: background 0.1s ease;
}
.tsp-filter-opt:hover { background: rgba(0,185,188,0.08); }
.tsp-filter-opt input[type="checkbox"] {
	width: 16px; height: 16px; accent-color: var(--tsp-teal);
	flex-shrink: 0; margin: 0;
}
.tsp-filter-spacer { flex: 1; }
.tsp-filter-sort { display: flex; align-items: center; gap: 8px; }
.tsp-filter-sort__label {
	font-size: 12px; font-weight: 700; text-transform: uppercase;
	letter-spacing: 0.06em; color: var(--tsp-slate);
}
.tsp-filter-sort select {
	appearance: none; -webkit-appearance: none;
	padding: 8px 32px 8px 14px;
	background: #f9fafb;
	border: 1px solid var(--tsp-line);
	border-radius: 999px;
	font-size: 14px; font-weight: 500; color: var(--tsp-ink);
	font-family: inherit;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path d='M1 1l4 4 4-4' stroke='%2364748b' stroke-width='1.5' fill='none' stroke-linecap='round'/></svg>");
	background-repeat: no-repeat;
	background-position: right 12px center;
	cursor: pointer;
}
.tsp-filter-sort select:focus { outline: none; border-color: var(--tsp-teal); box-shadow: 0 0 0 3px rgba(0,185,188,0.15); }

/* Aktive Filter-Pills */
.tsp-active-pills {
	display: flex; flex-wrap: wrap; gap: 8px;
	margin-top: 16px;
}
.tsp-active-pill {
	display: inline-flex; align-items: center; gap: 6px;
	padding: 6px 6px 6px 12px;
	background: rgba(0,185,188,0.12);
	border: 1px solid rgba(0,185,188,0.30);
	border-radius: 999px;
	font-size: 13px; color: var(--tsp-teal);
	font-weight: 600;
}
.tsp-active-pill__remove {
	width: 20px; height: 20px;
	border-radius: 999px;
	background: rgba(0,115,125,0.15);
	color: var(--tsp-teal);
	border: 0; cursor: pointer;
	font-size: 12px; line-height: 1;
	display: inline-flex; align-items: center; justify-content: center;
	transition: background 0.15s ease;
}
.tsp-active-pill__remove:hover { background: var(--tsp-teal); color: #fff; }
.tsp-result-count {
	margin: 16px 0 0; padding: 0;
	font-size: 14px; color: var(--tsp-slate);
	font-weight: 500;
}

/* Partner-Bento */
.tsp-profile-partners { padding: 40px 0 20px; }
.tsp-partner-grid {
	list-style: none; padding: 0; margin: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
	gap: 20px;
}
.tsp-partner-grid__item.is-hidden { display: none; }
.tsp-partner-grid__item--exclusive { grid-column: span 2; }
@media (max-width: 780px) { .tsp-partner-grid__item--exclusive { grid-column: span 1; } }
.tsp-partner-card {
	position: relative;
	display: flex; flex-direction: column;
	background: #fff;
	border: 1px solid var(--tsp-line);
	border-radius: 20px;
	padding: 24px;
	transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
	overflow: hidden;
	height: 100%;
	box-shadow: 0 4px 20px rgba(0,0,0,0.04);
}
.tsp-partner-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 12px 40px rgba(0,0,0,0.10);
	border-color: rgba(0,185,188,0.35);
}
.tsp-partner-card--exclusive {
	background: linear-gradient(135deg, #fff 0%, rgba(0,115,125,0.04) 100%);
	border-color: rgba(0,115,125,0.25);
}
.tsp-partner-card--premium { border-color: rgba(0,185,188,0.30); }
.tsp-partner-card__highlight {
	position: absolute; top: 0; left: 0; right: 0;
	padding: 8px 16px;
	background: linear-gradient(90deg, var(--tsp-teal) 0%, var(--tsp-cyan) 100%);
	color: #fff;
	font-size: 12px; font-weight: 700;
	letter-spacing: 0.04em; text-transform: uppercase;
	text-align: center;
}
.tsp-partner-card__head {
	display: flex; gap: 16px; align-items: flex-start;
	margin-bottom: 16px;
}
.tsp-partner-card--has-highlight { padding-top: 44px; }
.tsp-partner-card__logo {
	width: 64px; height: 64px;
	border-radius: 14px;
	background: #f9fafb;
	border: 1px solid var(--tsp-line);
	display: flex; align-items: center; justify-content: center;
	overflow: hidden;
	flex-shrink: 0;
}
.tsp-partner-card__logo img { width: 100%; height: 100%; object-fit: cover; }
.tsp-partner-card__logo-fallback {
	font-family: var(--tsp-font-display);
	font-weight: 700; font-size: 28px;
	color: var(--tsp-teal);
}
.tsp-partner-card__head-text { min-width: 0; flex: 1; }
.tsp-partner-card__tier {
	display: inline-block;
	padding: 3px 10px;
	border-radius: 999px;
	font-size: 10px; font-weight: 700;
	text-transform: uppercase; letter-spacing: 0.08em;
	margin-bottom: 4px;
}
.tsp-partner-card__badges {
	display: inline-flex; flex-wrap: wrap; align-items: center;
	gap: 6px; margin-bottom: 4px;
}
.tsp-partner-card__tier--exclusive { background: var(--tsp-ink); color: #fff; }
.tsp-partner-card__tier--premium { background: var(--tsp-teal); color: #fff; }
.tsp-partner-card__tier--authorized { background: rgba(0,185,188,0.15); color: var(--tsp-teal); }
.tsp-partner-card__tier--service {
	background: #fff; color: var(--tsp-slate);
	border: 1px solid var(--tsp-line);
	display: inline-flex; align-items: center;
}
.tsp-partner-card__name {
	font-family: var(--tsp-font-display);
	font-size: 20px; font-weight: 700;
	margin: 2px 0 4px;
	color: var(--tsp-ink);
	line-height: 1.2;
	letter-spacing: -0.01em;
}
.tsp-partner-card__country {
	display: flex; align-items: center; gap: 6px;
	font-size: 13px; color: var(--tsp-slate);
	font-weight: 500;
}
.tsp-partner-card__country span:first-child { font-size: 16px; }
.tsp-partner-card__rating {
	display: flex; align-items: center; gap: 8px;
	margin-bottom: 14px;
	font-size: 13px;
}
.tsp-partner-card__stars {
	color: #f59e0b;
	font-size: 15px;
	letter-spacing: 1px;
}
.tsp-partner-card__rating-num {
	color: var(--tsp-slate);
	display: inline-flex; gap: 6px; align-items: baseline;
}
.tsp-partner-card__rating-num b { color: var(--tsp-ink); font-size: 14px; }
.tsp-partner-card__rating--empty .tsp-partner-card__stars { color: var(--tsp-line); }
.tsp-partner-card__rating--empty .tsp-partner-card__rating-num {
	font-size: 12px; font-style: italic;
}
.tsp-partner-card__desc {
	color: var(--tsp-slate);
	font-size: 14px; line-height: 1.55;
	margin: 0 0 16px;
	flex: 1;
}
.tsp-partner-card__chips {
	list-style: none; padding: 0; margin: 0 0 16px;
	display: flex; flex-wrap: wrap; gap: 6px;
}
.tsp-partner-card__chip {
	display: inline-flex; align-items: center; gap: 4px;
	padding: 4px 10px;
	background: #f9fafb;
	border: 1px solid var(--tsp-line);
	border-radius: 999px;
	font-size: 12px; color: var(--tsp-slate);
	font-weight: 500;
}
.tsp-partner-card__chip--service {
	background: rgba(0,185,188,0.10);
	border-color: rgba(0,185,188,0.30);
	color: var(--tsp-teal);
}
/* CTA-Button spezifisch auf v2 gescopt — die alte .tsp-partner-card__cta-
   Regel (partners-country.php-Design ohne Button-Look) wird von partners-
   index.php nicht mehr getroffen. */
.tsp-profile-v2 .tsp-partner-card__cta,
main.tsp-profile-v2 a.tsp-partner-card__cta {
	align-self: flex-start;
	display: inline-flex; align-items: center; gap: 6px;
	padding: 10px 20px;
	background: var(--tsp-teal) !important;
	background-color: var(--tsp-teal) !important;
	color: #fff !important;
	border-radius: 999px;
	font-weight: 700; font-size: 13px;
	text-decoration: none !important;
	transition: background 0.15s ease, transform 0.15s ease;
	margin-top: auto;
}
.tsp-profile-v2 .tsp-partner-card__cta:hover,
.tsp-profile-v2 .tsp-partner-card__cta:focus,
.tsp-profile-v2 .tsp-partner-card__cta:active,
.tsp-profile-v2 .tsp-partner-card__cta:visited,
main.tsp-profile-v2 a.tsp-partner-card__cta:hover,
main.tsp-profile-v2 a.tsp-partner-card__cta:focus {
	background: var(--tsp-cyan) !important;
	background-color: var(--tsp-cyan) !important;
	color: #fff !important;
	text-decoration: none !important;
	transform: translateX(2px);
}
.tsp-partner-grid__empty {
	padding: 60px 20px;
	text-align: center; color: var(--tsp-slate);
	font-size: 15px;
}

/* Länder-Sekundär-Bento */
.tsp-profile-countries { padding: 40px 0 60px; }
.tsp-profile-countries__head {
	text-align: center; margin-bottom: 32px;
}
.tsp-profile-countries__head h2 {
	font-family: var(--tsp-font-display);
	font-size: clamp(22px, 2.6vw, 28px);
	font-weight: 700;
	margin: 6px 0 0;
	color: var(--tsp-ink);
	letter-spacing: -0.01em;
}

/* Bebilderte CTA-Section (statt dunkler v1-Teaser) */
.tsp-become-cta {
	padding: 80px 0 100px;
	background: linear-gradient(180deg, transparent 0%, var(--tsp-fog) 30%);
}
.tsp-become-cta__grid {
	display: grid;
	grid-template-columns: 1.05fr 1fr;
	gap: 48px;
	align-items: center;
	background: #fff;
	border-radius: 28px;
	padding: 40px;
	box-shadow: 0 20px 60px rgba(0,0,0,0.08);
	border: 1px solid var(--tsp-line);
}
@media (max-width: 900px) {
	.tsp-become-cta__grid { grid-template-columns: 1fr; padding: 28px; gap: 32px; }
}
.tsp-become-cta__text .tsp-kicker { color: var(--tsp-teal); }
.tsp-become-cta__text h2 {
	font-family: var(--tsp-font-display);
	font-size: clamp(26px, 3.2vw, 36px);
	font-weight: 700;
	margin: 8px 0 14px;
	color: var(--tsp-ink);
	letter-spacing: -0.01em;
	line-height: 1.15;
}
.tsp-become-cta__text p {
	color: var(--tsp-slate);
	font-size: 15px; line-height: 1.65;
	margin: 0 0 24px;
}
.tsp-become-cta__points {
	list-style: none; padding: 0; margin: 0 0 28px;
	display: grid; gap: 12px;
}
.tsp-become-cta__points li {
	display: flex; align-items: center; gap: 12px;
	color: var(--tsp-ink);
	font-size: 14px; font-weight: 600;
}
.tsp-become-cta__point-icon {
	width: 40px; height: 40px;
	background: rgba(0,185,188,0.12);
	color: var(--tsp-teal);
	border-radius: 12px;
	display: inline-flex; align-items: center; justify-content: center;
	flex-shrink: 0;
}
.tsp-become-cta__point-icon svg {
	width: 22px; height: 22px;
}
.tsp-become-cta__btn,
main.tsp-profile-v2 a.tsp-become-cta__btn {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 14px 28px;
	background: var(--tsp-teal) !important;
	background-color: var(--tsp-teal) !important;
	color: #fff !important;
	border-radius: 999px;
	font-weight: 700; font-size: 15px;
	text-decoration: none !important;
	white-space: nowrap;
	transition: background 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}
.tsp-become-cta__btn:hover,
.tsp-become-cta__btn:focus,
.tsp-become-cta__btn:active,
.tsp-become-cta__btn:visited,
main.tsp-profile-v2 a.tsp-become-cta__btn:hover,
main.tsp-profile-v2 a.tsp-become-cta__btn:focus {
	background: var(--tsp-cyan) !important;
	background-color: var(--tsp-cyan) !important;
	color: #fff !important;
	text-decoration: none !important;
	transform: translateY(-1px);
	box-shadow: 0 8px 24px rgba(0,185,188,0.30);
}
.tsp-become-cta__gallery {
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-template-rows: 200px 140px;
	gap: 14px;
}
.tsp-become-cta__figure {
	margin: 0;
	border-radius: 20px;
	overflow: hidden;
	box-shadow: 0 12px 40px rgba(0,0,0,0.10);
	position: relative;
}
.tsp-become-cta__figure--tall { grid-row: span 2; }
.tsp-become-cta__figure picture,
.tsp-become-cta__figure img {
	width: 100%; height: 100%;
	object-fit: cover;
	display: block;
}
@media (max-width: 900px) {
	.tsp-become-cta__gallery {
		grid-template-columns: 1fr 1fr;
		grid-template-rows: 180px;
	}
	.tsp-become-cta__figure--tall { grid-row: span 1; }
}

/* v2 versteckt den v1-dark-Teaser wenn beides gerendert würde */
.tsp-profile-v2 .tsp-become-teaser { display: none; }

/* ─── SVG-Icon-System (ersetzt Emojis in Widget/Cards/Templates) ─── */
.tsp-icon {
	width: 18px;
	height: 18px;
	display: inline-block;
	vertical-align: -3px;
	flex: 0 0 auto;
	stroke: currentColor;
	fill: none;
}
.tsp-icon--sm { width: 14px; height: 14px; vertical-align: -2px; }
.tsp-icon--lg { width: 24px; height: 24px; vertical-align: -5px; }

/* ─── CTA-Widget (D14/M6): Framed-Box, Suche, Region-Chips, Banner-Hero ─── */
.tsp-widget--cta {
	--tsp-widget-bg: #ffffff;
	--tsp-widget-border: #e2e8f0;
	--tsp-widget-shadow: 0 6px 24px -12px rgba(15,23,42,0.18), 0 2px 6px -3px rgba(15,23,42,0.08);
	margin: 32px 0;
	font-family: var(--tsp-font-body);
}
.tsp-widget--cta.tsp-widget--framed .tsp-widget__inner {
	background: var(--tsp-widget-bg);
	border: 1px solid var(--tsp-widget-border);
	border-radius: 24px;
	box-shadow: var(--tsp-widget-shadow);
	padding: 32px 36px 28px;
}
.tsp-widget--cta[data-loading="1"] .tsp-widget__result { opacity: 0.55; transition: opacity 120ms ease; }
.tsp-widget__hd { display: flex; flex-direction: column; gap: 6px; margin-bottom: 20px; }
.tsp-widget__title {
	font-family: var(--tsp-font-display);
	font-size: 28px;
	line-height: 1.2;
	letter-spacing: -0.01em;
	font-weight: 600;
	color: var(--tsp-ink, #203556);
	margin: 0;
}
.tsp-widget__tools {
	display: flex;
	gap: 16px;
	align-items: center;
	flex-wrap: wrap;
	margin-bottom: 20px;
	padding-bottom: 20px;
	border-bottom: 1px dashed rgba(148,163,184,0.4);
}
.tsp-widget__search {
	position: relative;
	flex: 1 1 240px;
	min-width: 200px;
	display: flex;
	align-items: center;
}
.tsp-widget__search-icon {
	position: absolute;
	left: 16px;
	top: 50%;
	transform: translateY(-50%);
	color: #64748b;
	pointer-events: none;
	display: flex;
	line-height: 0;
}
.tsp-widget__search-icon .tsp-icon { width: 16px; height: 16px; vertical-align: 0; }
/* Höhere Spezifität notwendig — Theme main.css setzt `input-text, textarea,
   select { border-radius: 0 }` mit gleichem Rang und würde sonst gewinnen. */
.tsp-widget--cta input.tsp-widget__search-input,
.tsp-widget--cta .tsp-widget__search-input {
	width: 100%;
	padding: 11px 18px 11px 42px;
	border: 1px solid #cbd5e1;
	border-radius: 999px;
	font-size: 14px;
	font-family: var(--tsp-font-body);
	background: #f8fafc;
	color: var(--tsp-ink, #203556);
	transition: border-color 120ms ease, background 120ms ease, box-shadow 120ms ease;
	-webkit-appearance: none;
	appearance: none;
	box-shadow: none;
}
.tsp-widget--cta input.tsp-widget__search-input::placeholder { color: #94a3b8; }
.tsp-widget--cta input.tsp-widget__search-input:focus {
	outline: none;
	border-color: #00B9BC;
	background: #ffffff;
	box-shadow: 0 0 0 3px rgba(0,185,188,0.15);
}
.tsp-widget__regions {
	display: flex; gap: 6px; flex-wrap: wrap;
}
.tsp-widget__region-chip {
	display: inline-flex; align-items: center; gap: 6px;
	padding: 6px 12px;
	border-radius: 999px;
	border: 1px solid #cbd5e1;
	background: #ffffff;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: #475569;
	cursor: pointer;
	transition: all 120ms ease;
}
.tsp-widget__region-chip:hover { border-color: #00B9BC; color: #0f766e; }
.tsp-widget__region-chip.is-active {
	background: linear-gradient(135deg, #00737D, #00B9BC);
	color: #ffffff;
	border-color: transparent;
	box-shadow: 0 3px 10px -4px rgba(0,115,125,0.6);
}
.tsp-widget__region-flag { font-size: 16px; line-height: 1; }

.tsp-partner-grid--widget {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 20px;
	list-style: none;
	padding: 0;
	margin: 0;
}
.tsp-partner-card.is-hidden { display: none; }

/* Banner-Hero — nur wenn .tsp-partner-card--has-banner (Premium/Exclusive mit top_banner_url) */
.tsp-partner-card--has-banner {
	position: relative;
	padding-top: 118px;   /* Platz für Banner-Hero */
	overflow: hidden;
}
.tsp-partner-card__banner {
	position: absolute;
	inset: 0 0 auto 0;
	height: 96px;
	background-size: cover;
	background-position: center;
	background-color: #203556;
	border-top-left-radius: inherit;
	border-top-right-radius: inherit;
}
.tsp-partner-card--has-banner.tsp-partner-card--has-highlight { padding-top: 138px; }
.tsp-partner-card--has-banner .tsp-partner-card__highlight {
	position: absolute;
	top: 96px;
	left: 20px;
	right: 20px;
	transform: translateY(-50%);
	z-index: 2;
}

/* Sprach-Chips als Flag-Emojis */
.tsp-partner-card__langs {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 2px 8px;
	background: rgba(0,185,188,0.08);
	border-radius: 999px;
}
.tsp-partner-card__lang-flag { font-size: 15px; line-height: 1; }

/* Zwei CTAs pro Card (Profil + Shop) */
.tsp-partner-card__ctas {
	display: flex;
	gap: 10px;
	align-items: center;
	flex-wrap: wrap;
	margin-top: 12px;
}
.tsp-partner-card__shop-cta {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 7px 14px;
	background: linear-gradient(135deg, #00737D, #00B9BC);
	color: #ffffff !important;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.01em;
	text-decoration: none;
	position: relative;
	z-index: 2; /* über den absolut positionierten Card-Link */
	transition: filter 120ms ease, transform 120ms ease;
}
.tsp-partner-card__shop-cta:hover { filter: brightness(1.08); transform: translateY(-1px); }
.tsp-partner-card__shop-cta .tsp-icon { color: #ffffff; }

/* Widget-Empty im gleichen System */
.tsp-widget__empty { padding: 32px 12px; text-align: center; }
.tsp-widget__no-match { text-align: center; color: #64748b; margin-top: 20px; }

/* „Alle Partner weltweit"-Button — jetzt mit richtigem Abstand nach oben */
.tsp-widget__more {
	margin: 28px 0 0;
	padding-top: 20px;
	border-top: 1px dashed rgba(148,163,184,0.4);
	text-align: center;
}
.tsp-widget__more .tsp-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 22px;
	border-radius: 999px;
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	transition: all 120ms ease;
}
.tsp-btn--ghost { background: rgba(0,115,125,0.08); color: #00737D; }
.tsp-btn--ghost:hover { background: rgba(0,115,125,0.16); }
.tsp-btn--primary { background: linear-gradient(135deg, #00737D, #00B9BC); color: #ffffff; }
.tsp-btn--primary:hover { filter: brightness(1.05); }

@media (max-width: 640px) {
	.tsp-widget--cta.tsp-widget--framed .tsp-widget__inner { padding: 20px 20px 18px; border-radius: 18px; }
	.tsp-widget__title { font-size: 22px; }
	.tsp-widget__tools { flex-direction: column; align-items: stretch; gap: 12px; }
	.tsp-partner-grid--widget { grid-template-columns: 1fr; }
}

/* Detail-Card: zwei nebeneinander liegende CTAs (Anfrage + Zum Shop) */
.tsp-detail-card__ctas {
	display: flex;
	gap: 10px;
	align-items: center;
	flex-wrap: wrap;
	margin-top: 16px;
}
.tsp-detail-card__cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 22px;
	border-radius: 999px;
	border: 0;
	background: linear-gradient(135deg, #00737D, #00B9BC);
	color: #ffffff;
	font-family: var(--tsp-font-display);
	font-weight: 600;
	font-size: 14px;
	cursor: pointer;
	transition: filter 120ms ease, transform 120ms ease;
}
.tsp-detail-card__cta:hover { filter: brightness(1.08); transform: translateY(-1px); }
.tsp-detail-card__cta .tsp-icon { color: #ffffff; }
.tsp-detail-card__shop-cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 22px;
	border-radius: 999px;
	background: rgba(0,115,125,0.08);
	color: #00737D !important;
	font-family: var(--tsp-font-display);
	font-weight: 600;
	font-size: 14px;
	text-decoration: none;
	transition: background 120ms ease, transform 120ms ease;
}
.tsp-detail-card__shop-cta:hover { background: rgba(0,115,125,0.16); transform: translateY(-1px); }
.tsp-detail-card__shop-cta .tsp-icon { color: #00737D; }
.tsp-detail-card__location {
	display: inline-flex;
	align-items: center;
	gap: 4px;
}

/* /partner/profile/{country}/ Cards nutzen jetzt auch die ctas-Zeile */
.tsp-partner-card .tsp-partner-card__ctas {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-top: 12px;
}
.tsp-partner-card__langs .tsp-icon { display: none; }  /* Chip nutzt nur Flags */
.tsp-partner-card__industries { display: inline-flex; align-items: center; gap: 6px; color: var(--tsp-slate); }
.tsp-partner-card__industries .tsp-icon { color: #64748b; }

/* ─── M12 · /partner/inquire/ Prefill-Landing ─── */
.tsp-inquire__grid {
	display: grid;
	grid-template-columns: 320px 1fr;
	gap: 32px;
	align-items: start;
}
@media (max-width: 900px) {
	.tsp-inquire__grid { grid-template-columns: 1fr; }
}

/* Picker (Auswahl-Modus) */
.tsp-inquire__picker,
.tsp-inquire__partner-card {
	background: #ffffff;
	border: 1px solid #e2e8f0;
	border-radius: 20px;
	padding: 22px 24px;
	box-shadow: 0 6px 24px -12px rgba(15,23,42,0.18), 0 2px 6px -3px rgba(15,23,42,0.08);
}
.tsp-inquire__picker-title {
	display: inline-flex; align-items: center; gap: 8px;
	font-family: var(--tsp-font-display);
	font-size: 18px; font-weight: 600; color: var(--tsp-ink, #203556);
	margin: 0 0 14px;
}
.tsp-inquire__picker-list { margin-top: 16px; display: flex; flex-direction: column; gap: 6px; }
.tsp-inquire__picker-empty { color: #64748b; font-size: 13px; margin: 0; }
.tsp-inquire__picker-item {
	display: flex; align-items: center; justify-content: space-between;
	padding: 10px 12px;
	border-radius: 12px;
	background: #f8fafc;
	color: var(--tsp-ink, #203556);
	text-decoration: none;
	transition: background 120ms ease;
}
.tsp-inquire__picker-item:hover { background: rgba(0,185,188,0.10); }
.tsp-inquire__picker-name { font-weight: 600; }
.tsp-inquire__picker-tier { font-size: 12px; color: #64748b; text-transform: uppercase; letter-spacing: 0.05em; }

/* Direkt-Modus: Partner-Karte */
.tsp-inquire__partner-kicker {
	font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase;
	color: #00737D; font-weight: 700;
}
.tsp-inquire__partner-name {
	font-family: var(--tsp-font-display);
	font-size: 22px; font-weight: 600;
	color: var(--tsp-ink, #203556);
	margin: 4px 0 12px;
}
.tsp-inquire__partner-meta { display: flex; gap: 10px; align-items: center; margin-bottom: 12px; flex-wrap: wrap; }
.tsp-inquire__partner-country { display: inline-flex; gap: 6px; align-items: center; color: #64748b; font-size: 13px; }
.tsp-inquire__partner-desc { font-size: 13px; color: #64748b; margin: 0 0 12px; line-height: 1.5; }
.tsp-inquire__partner-change { font-size: 13px; color: #00737D; text-decoration: none; }
.tsp-inquire__partner-change:hover { text-decoration: underline; }

/* Formular */
.tsp-inquire__form {
	background: #ffffff;
	border: 1px solid #e2e8f0;
	border-radius: 24px;
	padding: 32px 36px;
	box-shadow: 0 6px 24px -12px rgba(15,23,42,0.18), 0 2px 6px -3px rgba(15,23,42,0.08);
}
.tsp-inquire__form-hd { margin-bottom: 24px; }
.tsp-inquire__form-hd h2 {
	font-family: var(--tsp-font-display);
	font-size: 24px; font-weight: 600;
	color: var(--tsp-ink, #203556);
	margin: 0 0 4px;
}
.tsp-inquire__form-hd p { color: #64748b; font-size: 14px; margin: 0; }
.tsp-inquire__row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }
.tsp-inquire__row--full { display: block; margin-bottom: 16px; }
.tsp-inquire__form label { display: block; }
.tsp-inquire__form label > span { display: block; font-size: 12px; font-weight: 600; color: #475569; margin-bottom: 6px; }
.tsp-inquire__form label > small { display: block; font-size: 11px; color: #94a3b8; margin-top: 4px; }
.tsp-inquire--wrap input, .tsp-inquire__form input,
.tsp-inquire--wrap textarea, .tsp-inquire__form textarea,
.tsp-inquire__form input[type="text"], .tsp-inquire__form input[type="email"], .tsp-inquire__form input[type="tel"], .tsp-inquire__form textarea {
	width: 100%;
	padding: 11px 14px;
	border: 1px solid #cbd5e1;
	border-radius: 12px;
	font-size: 14px;
	font-family: var(--tsp-font-body);
	background: #f8fafc;
	color: var(--tsp-ink, #203556);
	transition: border-color 120ms ease, background 120ms ease, box-shadow 120ms ease;
	-webkit-appearance: none;
	appearance: none;
	box-shadow: none;
}
.tsp-inquire__form textarea { min-height: 160px; resize: vertical; }
.tsp-inquire__form input:focus, .tsp-inquire__form textarea:focus {
	outline: none;
	border-color: #00B9BC;
	background: #ffffff;
	box-shadow: 0 0 0 3px rgba(0,185,188,0.15);
}
.tsp-inquire__consent {
	display: flex; gap: 10px; align-items: flex-start;
	background: #f8fafc; padding: 12px 14px; border-radius: 12px;
	margin-bottom: 20px;
}
.tsp-inquire__consent input[type=checkbox] { margin-top: 3px; accent-color: #00737D; }
.tsp-inquire__consent span { font-size: 13px; color: #475569; line-height: 1.5; }
.tsp-inquire__consent a { color: #00737D; text-decoration: underline; }
.tsp-inquire__submit { display: flex; gap: 12px; align-items: center; }
.tsp-inquire__submit-hint { color: #94a3b8; font-size: 13px; }
.tsp-inquire__status { margin-top: 16px; font-size: 13px; min-height: 20px; color: #64748b; }
.tsp-inquire__status.is-ok { color: #059669; font-weight: 600; }
.tsp-inquire__status.is-error { color: #dc2626; }

/* M12 · Widget-Card „Anfrage vorbereiten"-CTA (Sekundär neben „Profil ansehen") */
.tsp-partner-card__inquiry-cta {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 7px 12px;
	background: rgba(32,53,86,0.06);
	color: #203556 !important;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 600;
	text-decoration: none;
	position: relative;
	z-index: 2;
	transition: background 120ms ease, transform 120ms ease;
}
.tsp-partner-card__inquiry-cta:hover { background: rgba(32,53,86,0.12); transform: translateY(-1px); }
.tsp-partner-card__inquiry-cta .tsp-icon { color: #203556; }

/* ─── P1 · LLM/Crawler-Discovery Sektion auf /partner/ ─── */
.tsp-ai-discovery {
	margin: 48px 0 24px;
	font-family: var(--tsp-font-body);
}
.tsp-ai-discovery__details {
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: 16px;
	padding: 0;
	overflow: hidden;
}
.tsp-ai-discovery__details summary {
	list-style: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 14px 20px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: #64748b;
	transition: color 120ms ease, background 120ms ease;
}
.tsp-ai-discovery__details summary::-webkit-details-marker { display: none; }
.tsp-ai-discovery__details summary::before {
	content: "▸";
	display: inline-block;
	transition: transform 120ms ease;
	color: #94a3b8;
	font-size: 10px;
}
.tsp-ai-discovery__details[open] summary::before { transform: rotate(90deg); }
.tsp-ai-discovery__details summary:hover { color: #00737D; background: rgba(0,185,188,0.04); }
.tsp-ai-discovery__body {
	padding: 8px 24px 24px;
	font-size: 13px;
	line-height: 1.6;
	color: #475569;
	border-top: 1px dashed rgba(148,163,184,0.4);
}
.tsp-ai-discovery__body h3 {
	font-family: var(--tsp-font-display);
	font-size: 14px;
	font-weight: 600;
	color: var(--tsp-ink, #203556);
	margin: 20px 0 8px;
}
.tsp-ai-discovery__body pre {
	background: #ffffff;
	border: 1px solid #e2e8f0;
	border-radius: 10px;
	padding: 10px 14px;
	overflow-x: auto;
	font-size: 12px;
	line-height: 1.5;
	color: #203556;
	margin: 8px 0;
}
.tsp-ai-discovery__body code {
	background: rgba(0,185,188,0.08);
	padding: 1px 6px;
	border-radius: 4px;
	font-size: 12px;
	color: #00737D;
}
.tsp-ai-discovery__body pre code { background: transparent; padding: 0; color: inherit; }
.tsp-ai-discovery__body ul { margin: 4px 0 0; padding-left: 20px; }
.tsp-ai-discovery__body a { color: #00737D; text-decoration: underline; text-decoration-color: rgba(0,115,125,0.3); }
.tsp-ai-discovery__body a:hover { text-decoration-color: currentColor; }

/* ─── P1v2 · Machine-readable ⓘ Icon + Modal ─── */
.tsp-become-cta__btn-wrap { display: inline-flex; align-items: center; gap: 12px; }
.tsp-ai-info-btn {
	all: unset;
	cursor: pointer;
	width: 26px; height: 26px;
	display: inline-flex; align-items: center; justify-content: center;
	color: #64748b;
	border-radius: 50%;
	transition: color 120ms ease, background 120ms ease, transform 120ms ease;
	vertical-align: middle;
	line-height: 1;
}
.tsp-ai-info-btn:hover, .tsp-ai-info-btn:focus-visible {
	color: #00737D;
	background: rgba(0,185,188,0.10);
	transform: scale(1.06);
	outline: none;
}
.tsp-ai-info-btn svg { width: 20px; height: 20px; display: block; }
.tsp-ai-info-btn--inline { margin-left: 8px; }
h2 > .tsp-ai-info-btn, h1 > .tsp-ai-info-btn { display: inline-flex; vertical-align: 2px; }

.tsp-ai-modal {
	max-width: 780px; width: min(96vw, 780px);
	padding: 0; border: none; border-radius: 18px;
	background: #ffffff; color: #203556;
	box-shadow: 0 20px 60px rgba(0,0,0,0.18), 0 6px 16px rgba(0,0,0,0.08);
	font-family: var(--tsp-font-body, "Roboto", system-ui, sans-serif);
}
.tsp-ai-modal::backdrop {
	background: rgba(15, 23, 42, 0.55);
	backdrop-filter: blur(3px);
}
.tsp-ai-modal__inner { max-height: 88vh; overflow-y: auto; padding: 0; }
.tsp-ai-modal__head {
	position: sticky; top: 0; z-index: 2;
	display: flex; align-items: center; justify-content: space-between;
	gap: 12px; padding: 18px 24px;
	background: linear-gradient(180deg, #ffffff 85%, rgba(255,255,255,0.0));
	border-bottom: 1px solid #eef2f6;
}
.tsp-ai-modal__head h2 {
	margin: 0; font-family: var(--tsp-font-display, "Geist", "Inter", sans-serif);
	font-size: 20px; color: #203556;
}
.tsp-ai-modal__close {
	all: unset; cursor: pointer;
	font-size: 28px; line-height: 1; color: #64748b;
	width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center;
	border-radius: 50%; transition: background 120ms, color 120ms;
}
.tsp-ai-modal__close:hover { background: #f1f5f9; color: #00737D; }
.tsp-ai-modal__body { padding: 8px 24px 28px; line-height: 1.55; font-size: 14px; }
.tsp-ai-modal__body h3 {
	font-family: var(--tsp-font-display, "Geist", "Inter", sans-serif);
	font-size: 15px; color: #203556; margin: 22px 0 8px;
}
.tsp-ai-modal__body p { margin: 8px 0; }
.tsp-ai-modal__body ol, .tsp-ai-modal__body ul { margin: 8px 0; padding-left: 20px; }
.tsp-ai-modal__body ol li, .tsp-ai-modal__body ul li { margin: 4px 0; }
.tsp-ai-modal__body code {
	background: rgba(0,185,188,0.10);
	padding: 1px 6px; border-radius: 4px;
	color: #00737D; font-size: 12px;
}
.tsp-ai-modal__body pre {
	background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 10px;
	padding: 12px 14px; margin: 8px 0; overflow-x: auto;
	font-size: 12px; line-height: 1.5; color: #203556;
}
.tsp-ai-modal__body pre code { background: transparent; padding: 0; color: inherit; }
.tsp-ai-modal__body a { color: #00737D; text-decoration: underline; text-decoration-color: rgba(0,115,125,0.35); }
.tsp-ai-modal__body a:hover { text-decoration-color: currentColor; }
.tsp-ai-modal__body small { color: #64748b; font-size: 12px; }
