/**
 * TCM Expertenverzeichnis — Styles
 *
 * CSS Guidelines:
 * - Grid first, Flexbox only for icon+text, button groups, centering
 * - All values from design tokens (CSS custom properties)
 * - BEM naming with tcm-ev- prefix
 * - Mobile-first responsive (WordPress)
 * - Min font size: 14px
 */

/* ==========================================================================
   1. Design Tokens (CSS Custom Properties)
   ========================================================================== */

:root {
	/* Colors — Main palette */
	--tcm-color-primary: #177E89;
	--tcm-color-primary-dark: #0A6570;
	--tcm-color-primary-light: #E8F4F5;
	--tcm-color-secondary: #DB3A34;
	--tcm-color-accent: #FFB600;
	--tcm-color-accent-light: #FFE9B4;
	--tcm-color-text-dark: #000A0D;
	--tcm-color-border: #ABB8C3;
	--tcm-color-border-light: #E0E5EA;
	--tcm-color-bg-light: #FCFCFA;
	--tcm-color-footer-dark: #084C61;
	--tcm-color-cyan: #00AED9;
	--tcm-color-white: #FFFFFF;
	--tcm-color-success: #22C55E;
	--tcm-color-warning: #F59E0B;
	--tcm-color-error: #EF4444;

	/* Warm grays */
	--tcm-gray-warm-50: #FAFAF8;
	--tcm-gray-warm-100: #F5F5F0;
	--tcm-gray-warm-200: #ECECDF;
	--tcm-gray-warm-300: #D5D5C8;
	--tcm-gray-warm-400: #A8A898;
	--tcm-gray-warm-500: #78786C;

	/* Cool grays */
	--tcm-gray-cool-50: #F8FAFB;
	--tcm-gray-cool-100: #F0F4F7;
	--tcm-gray-cool-200: #E0E5EA;
	--tcm-gray-cool-300: #C8D0D8;
	--tcm-gray-cool-400: #ABB8C3;
	--tcm-gray-cool-500: #6B7A88;

	/* Typography */
	--tcm-font-heading: 'Ibarra Real Nova', serif;
	--tcm-font-body: 'Montserrat', sans-serif;
	--tcm-font-size-sm: 14px;
	--tcm-font-size-base: 16px;
	--tcm-font-size-lg: 18px;
	--tcm-font-size-xl: 20px;
	--tcm-font-size-2xl: 24px;
	--tcm-font-size-3xl: 28px;
	--tcm-font-size-4xl: 36px;
	--tcm-font-size-5xl: 42px;

	/* Spacing */
	--tcm-spacing-xs: 4px;
	--tcm-spacing-sm: 8px;
	--tcm-spacing-md: 16px;
	--tcm-spacing-lg: 24px;
	--tcm-spacing-xl: 32px;
	--tcm-spacing-2xl: 48px;

	/* Content container max-width (matches Flatsome theme) */
	--tcm-content-max-width: 1200px;

	/* Border Radius */
	--tcm-radius-sm: 4px;
	--tcm-radius-md: 8px;
	--tcm-radius-lg: 16px;
	--tcm-radius-xl: 20px;
	--tcm-radius-btn: 6px;
	--tcm-radius-full: 9999px;

	/* Shadows */
	--tcm-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
	--tcm-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.07);
	--tcm-shadow-lg: 0 4px 12px rgba(0, 0, 0, 0.1);
	--tcm-shadow-card: 0 2px 12px rgba(0, 0, 0, 0.07);
}

/* No responsive content-padding needed — container uses max-width: 1200px */

/* ==========================================================================
   2. Base / Reset (scoped to plugin)
   ========================================================================== */

body.tcm-expertenverzeichnis .tcm-ev-directory,
body.tcm-expertenverzeichnis .tcm-ev-profile {
	max-width: var(--tcm-content-max-width);
	margin: 0 auto;
	padding: 0 var(--tcm-spacing-md);
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-base);
	color: var(--tcm-color-text-dark);
	line-height: 1.6;
	text-align: left;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

body.tcm-expertenverzeichnis .tcm-ev-directory *,
body.tcm-expertenverzeichnis .tcm-ev-profile * {
	box-sizing: border-box;
}

/* Flatsome theme resets */
body.tcm-expertenverzeichnis .tcm-ev-directory h1,
body.tcm-expertenverzeichnis .tcm-ev-directory h2,
body.tcm-expertenverzeichnis .tcm-ev-directory h3,
body.tcm-expertenverzeichnis .tcm-ev-directory h4,
body.tcm-expertenverzeichnis .tcm-ev-profile h1,
body.tcm-expertenverzeichnis .tcm-ev-profile h2,
body.tcm-expertenverzeichnis .tcm-ev-profile h3,
body.tcm-expertenverzeichnis .tcm-ev-profile h4 {
	font-family: var(--tcm-font-heading);
	color: var(--tcm-color-text-dark);
	margin: 0;
	padding: 0;
	line-height: 1.3;
	text-transform: none;
	letter-spacing: normal;
}

body.tcm-expertenverzeichnis .tcm-ev-profile button,
body.tcm-expertenverzeichnis .tcm-ev-profile th,
body.tcm-expertenverzeichnis .tcm-ev-profile td,
body.tcm-expertenverzeichnis .tcm-ev-profile label {
	text-transform: none;
	letter-spacing: normal;
}

body.tcm-expertenverzeichnis .tcm-ev-directory h1::before,
body.tcm-expertenverzeichnis .tcm-ev-directory h2::before,
body.tcm-expertenverzeichnis .tcm-ev-directory h3::before,
body.tcm-expertenverzeichnis .tcm-ev-directory h4::before,
body.tcm-expertenverzeichnis .tcm-ev-profile h1::before,
body.tcm-expertenverzeichnis .tcm-ev-profile h2::before,
body.tcm-expertenverzeichnis .tcm-ev-profile h3::before,
body.tcm-expertenverzeichnis .tcm-ev-profile h4::before {
	content: none !important;
	display: none !important;
}

body.tcm-expertenverzeichnis .tcm-ev-directory ul,
body.tcm-expertenverzeichnis .tcm-ev-directory ol,
body.tcm-expertenverzeichnis .tcm-ev-directory li,
body.tcm-expertenverzeichnis .tcm-ev-profile ul,
body.tcm-expertenverzeichnis .tcm-ev-profile ol,
body.tcm-expertenverzeichnis .tcm-ev-profile li {
	list-style: none;
	margin: 0;
	padding: 0;
}

body.tcm-expertenverzeichnis .tcm-ev-directory a,
body.tcm-expertenverzeichnis .tcm-ev-profile a {
	text-decoration: none;
}

body.tcm-expertenverzeichnis .tcm-ev-directory p,
body.tcm-expertenverzeichnis .tcm-ev-profile p {
	margin: 0;
}

/* ==========================================================================
   3. Breadcrumb
   ========================================================================== */

body.tcm-expertenverzeichnis .tcm-ev-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-self: start;
	gap: var(--tcm-spacing-sm);
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-sm);
	padding: 0 0 var(--tcm-spacing-xl) 0;
	text-transform: uppercase;
}

body.tcm-expertenverzeichnis .tcm-ev-breadcrumb a,
body.tcm-expertenverzeichnis .tcm-ev-breadcrumb span {
	text-transform: uppercase;
}

body.tcm-expertenverzeichnis .tcm-ev-breadcrumb a,
body.tcm-expertenverzeichnis .tcm-ev-breadcrumb__link {
	color: var(--tcm-color-primary);
	transition: opacity 200ms ease;
}

body.tcm-expertenverzeichnis .tcm-ev-breadcrumb a:hover,
body.tcm-expertenverzeichnis .tcm-ev-breadcrumb__link:hover {
	opacity: 0.8;
}

body.tcm-expertenverzeichnis .tcm-ev-breadcrumb__separator {
	color: var(--tcm-color-border);
}

body.tcm-expertenverzeichnis .tcm-ev-breadcrumb__current {
	color: var(--tcm-color-border);
}

/* ==========================================================================
   4. Hero Section
   ========================================================================== */

body.tcm-expertenverzeichnis .tcm-ev-hero {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	padding: 0 0 40px;
	text-align: center;
}

body.tcm-expertenverzeichnis .tcm-ev-hero__title {
	font-family: var(--tcm-font-heading);
	font-size: var(--tcm-font-size-4xl);
	font-weight: 700;
	color: var(--tcm-color-text-dark);
	text-align: center;
}

body.tcm-expertenverzeichnis .tcm-ev-hero__subtitle-row {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
}

body.tcm-expertenverzeichnis .tcm-ev-hero__bar {
	display: block;
	width: 80px;
	height: 1px;
	background: var(--tcm-color-text-dark);
}

body.tcm-expertenverzeichnis .tcm-ev-hero__subtitle {
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-sm);
	font-weight: 400;
	color: var(--tcm-color-secondary);
	letter-spacing: 1.5px;
	text-transform: uppercase;
}

/* ==========================================================================
   5. Filter Section
   ========================================================================== */

body.tcm-expertenverzeichnis .tcm-ev-filter {
	background: var(--tcm-color-white);
	border-top: 2px solid var(--tcm-color-accent);
	border-bottom: 2px solid var(--tcm-color-accent);
	padding: 20px 0;
	margin-left: calc(-50vw + 50%);
	margin-right: calc(-50vw + 50%);
	padding-left: calc(50vw - 50%);
	padding-right: calc(50vw - 50%);
}

body.tcm-expertenverzeichnis .tcm-ev-filter__form {
	display: flex;
	flex-direction: column;
	gap: var(--tcm-spacing-md);
}

body.tcm-expertenverzeichnis .tcm-ev-filter__row {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: flex-end;
}

body.tcm-expertenverzeichnis .tcm-ev-filter__row--search {
	display: grid;
	grid-template-columns: 1fr auto auto;
	gap: var(--tcm-spacing-md);
	align-items: end;
}

body.tcm-expertenverzeichnis .tcm-ev-filter__group--search {
	display: grid;
	gap: var(--tcm-spacing-xs);
}

body.tcm-expertenverzeichnis .tcm-ev-filter__group--rating {
	display: grid;
	gap: var(--tcm-spacing-xs);
	min-width: 160px;
}

body.tcm-expertenverzeichnis .tcm-ev-filter__select--rating {
	color: var(--tcm-color-accent);
}

body.tcm-expertenverzeichnis .tcm-ev-filter__row--search .tcm-ev-map-toggle {
	justify-self: end;
	align-self: end;
	margin-right: 0;
	white-space: nowrap;
}

body.tcm-expertenverzeichnis .tcm-ev-filter__bar {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: flex-end;
}

body.tcm-expertenverzeichnis .tcm-ev-filter__group {
	display: flex;
	flex-direction: column;
	gap: var(--tcm-spacing-xs);
}

body.tcm-expertenverzeichnis .tcm-ev-filter__group--grow {
	flex: 1;
	min-width: 150px;
}

body.tcm-expertenverzeichnis .tcm-ev-filter__group--fixed {
	width: 140px;
	flex-shrink: 0;
}

body.tcm-expertenverzeichnis .tcm-ev-filter__group--btn {
	flex-shrink: 0;
}

body.tcm-expertenverzeichnis .tcm-ev-filter__group--full {
	flex: 1 1 100%;
}

body.tcm-expertenverzeichnis .tcm-ev-filter__search-wrap {
	position: relative;
}

body.tcm-expertenverzeichnis .tcm-ev-filter__search-icon {
	position: absolute;
	right: 12px;
	top: 12px;
	color: var(--tcm-color-border);
	pointer-events: none;
}

body.tcm-expertenverzeichnis .tcm-ev-filter__search-clear {
	position: absolute;
	right: 4px;
	top: 0;
	width: 36px;
	height: 36px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	background: none;
	border: none;
	border-radius: var(--tcm-radius-sm);
	color: var(--tcm-color-border);
	cursor: pointer;
	padding: 0;
	transition: color 150ms ease;
}

body.tcm-expertenverzeichnis .tcm-ev-filter__search-clear:hover {
	color: var(--tcm-color-text-dark);
}

body.tcm-expertenverzeichnis .tcm-ev-filter__input--search {
	padding-right: 40px;
	height: 44px;
	font-size: var(--tcm-font-size-lg);
}

body.tcm-expertenverzeichnis .tcm-ev-filter__label {
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-base);
	font-weight: 600;
	color: var(--tcm-color-text-dark);
}

body.tcm-expertenverzeichnis .tcm-ev-filter__input,
body.tcm-expertenverzeichnis .tcm-ev-filter__select {
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-base);
	color: var(--tcm-color-text-dark);
	background: var(--tcm-color-white);
	border: 1px solid var(--tcm-color-border);
	border-radius: var(--tcm-radius-btn);
	padding: 0 12px;
	height: 40px;
	width: 100%;
	transition: border-color 200ms ease;
}

body.tcm-expertenverzeichnis .tcm-ev-filter__input:focus,
body.tcm-expertenverzeichnis .tcm-ev-filter__select:focus {
	outline: none;
	border-color: var(--tcm-color-primary);
	box-shadow: 0 0 0 3px rgba(23, 126, 137, 0.15);
}

body.tcm-expertenverzeichnis .tcm-ev-filter__input::placeholder {
	color: var(--tcm-color-border);
}

body.tcm-expertenverzeichnis .tcm-ev-filter__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--tcm-color-primary);
	color: var(--tcm-color-white);
	border: none;
	border-radius: var(--tcm-radius-btn);
	padding: 0 24px;
	margin-right: 0;
	height: 40px;
	cursor: pointer;
	transition: background-color 200ms ease;
}

body.tcm-expertenverzeichnis .tcm-ev-filter__btn:hover {
	background: var(--tcm-color-primary-dark);
}

body.tcm-expertenverzeichnis .tcm-ev-filter__btn--reset {
	background: none;
	border: 1px solid var(--tcm-color-border);
	color: var(--tcm-color-border);
}

body.tcm-expertenverzeichnis .tcm-ev-filter__btn--reset:hover {
	background: none;
	border-color: var(--tcm-color-text-dark);
	color: var(--tcm-color-text-dark);
}

body.tcm-expertenverzeichnis .tcm-ev-filter__btn svg {
	width: 18px;
	height: 18px;
}

/* Symptom chips */
body.tcm-expertenverzeichnis .tcm-ev-filter__symptoms {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--tcm-spacing-sm);
}

body.tcm-expertenverzeichnis .tcm-ev-filter__symptoms-label {
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-base);
	font-weight: 500;
	color: #6B7280;
	white-space: nowrap;
}

body.tcm-expertenverzeichnis .tcm-ev-filter__chip {
	display: inline-flex;
	align-items: center;
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-base);
	font-weight: 400;
	color: #374151;
	background: transparent;
	border: 1px solid #D0D5DA;
	border-radius: var(--tcm-radius-lg);
	padding: 6px 14px;
	cursor: pointer;
	transition:
		background-color 200ms ease,
		border-color 200ms ease,
		color 200ms ease;
}

body.tcm-expertenverzeichnis .tcm-ev-filter__chip:hover {
	border-color: var(--tcm-color-primary);
	color: var(--tcm-color-primary);
}

body.tcm-expertenverzeichnis .tcm-ev-filter__chip--active {
	background: var(--tcm-color-primary-light);
	border-color: var(--tcm-color-primary);
	color: var(--tcm-color-primary);
	font-weight: 500;
}

/* ==========================================================================
   6. Results Section
   ========================================================================== */

body.tcm-expertenverzeichnis .tcm-ev-results {
	padding: var(--tcm-spacing-lg) 0;
}

body.tcm-expertenverzeichnis .tcm-ev-results__bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: var(--tcm-spacing-md);
	padding-bottom: 10px;
	margin-bottom: 20px;
}

body.tcm-expertenverzeichnis .tcm-ev-results__actions {
	display: flex;
	align-items: center;
	gap: var(--tcm-spacing-md);
}

body.tcm-expertenverzeichnis .tcm-ev-results__register-btn {
	display: inline-flex;
	align-items: center;
	padding: 8px 20px;
	font-size: 14px;
	font-weight: 600;
	background: var(--tcm-color-primary);
	color: var(--tcm-color-white);
	border-radius: 6px;
	text-decoration: none;
	transition: background 200ms ease;
	white-space: nowrap;
}

body.tcm-expertenverzeichnis .tcm-ev-results__register-btn:hover {
	background: var(--tcm-color-primary-dark);
	color: var(--tcm-color-white);
}

body.tcm-expertenverzeichnis .tcm-ev-results__count {
	font-family: var(--tcm-font-body);
	font-size: 17px;
	font-weight: 500;
	color: var(--tcm-color-text-dark);
}

body.tcm-expertenverzeichnis .tcm-ev-results__sort {
	display: flex;
	align-items: center;
	gap: 6px;
	position: relative;
}

body.tcm-expertenverzeichnis .tcm-ev-results__sort-label {
	font-family: var(--tcm-font-body);
	font-size: 17px;
	color: var(--tcm-color-border);
	line-height: 1;
}

body.tcm-expertenverzeichnis .tcm-ev-results__sort-btn {
	display: flex;
	align-items: center;
	gap: 4px;
	background: none;
	border: none;
	font-family: var(--tcm-font-body);
	font-size: 17px;
	font-weight: 600;
	color: var(--tcm-color-primary);
	cursor: pointer;
	padding: 0;
	margin: 0;
	line-height: 1;
}

body.tcm-expertenverzeichnis .tcm-ev-results__sort-btn:hover {
	color: var(--tcm-color-primary-dark);
}

body.tcm-expertenverzeichnis .tcm-ev-results__sort-icon {
	flex-shrink: 0;
}

/* Sort dropdown */
body.tcm-expertenverzeichnis .tcm-ev-results__sort-dropdown {
	display: none;
	position: absolute;
	top: 100%;
	right: 0;
	margin-top: 4px;
	background: var(--tcm-color-white);
	border: 1px solid var(--tcm-color-border-light);
	border-radius: var(--tcm-radius-btn);
	box-shadow: var(--tcm-shadow-md);
	z-index: 10;
	min-width: 180px;
	padding: 4px 0;
}

body.tcm-expertenverzeichnis .tcm-ev-results__sort-dropdown--open {
	display: block;
}

body.tcm-expertenverzeichnis .tcm-ev-results__sort-option {
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-sm);
	padding: 8px 16px;
	cursor: pointer;
	color: var(--tcm-color-text-dark);
	transition: background-color 200ms ease;
}

body.tcm-expertenverzeichnis .tcm-ev-results__sort-option:hover {
	background: var(--tcm-gray-cool-50);
}

body.tcm-expertenverzeichnis .tcm-ev-results__sort-option--active {
	color: var(--tcm-color-primary);
	font-weight: 600;
}

/* ==========================================================================
   7. Card Grid
   ========================================================================== */

body.tcm-expertenverzeichnis .tcm-ev-card-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px;
}

@media (min-width: 768px) {
	body.tcm-expertenverzeichnis .tcm-ev-filter__row--filters {
		display: grid;
		grid-template-columns: repeat(2, 1fr) auto;
		gap: var(--tcm-spacing-md);
	}

	body.tcm-expertenverzeichnis .tcm-ev-filter__group--btn {
		align-self: end;
	}

	body.tcm-expertenverzeichnis .tcm-ev-card-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 32px;
	}
}

@media (min-width: 1024px) {
	body.tcm-expertenverzeichnis .tcm-ev-filter__row--filters {
		display: grid;
		grid-template-columns: repeat(4, 1fr) auto;
		gap: var(--tcm-spacing-md);
	}

	body.tcm-expertenverzeichnis .tcm-ev-filter__row--filters .tcm-ev-filter__group--grow {
		min-width: 0;
	}

	body.tcm-expertenverzeichnis .tcm-ev-card-grid {
		grid-template-columns: repeat(3, 1fr);
		gap: 60px;
	}
}

@media (max-width: 767px) {
	body.tcm-expertenverzeichnis .tcm-ev-filter__row--search {
		grid-template-columns: 1fr;
	}

	body.tcm-expertenverzeichnis .tcm-ev-filter__group--rating {
		min-width: 0;
	}

	body.tcm-expertenverzeichnis .tcm-ev-filter__row--search .tcm-ev-map-toggle {
		justify-self: start;
	}
}

/* ==========================================================================
   7b. Directory Map Toggle & Container
   ========================================================================== */

body.tcm-expertenverzeichnis .tcm-ev-map-toggle {
	display: inline-flex;
	align-items: center;
	gap: var(--tcm-spacing-sm);
	background: none;
	border: 1px solid var(--tcm-color-primary);
	border-radius: var(--tcm-radius-btn);
	padding: var(--tcm-spacing-xs) var(--tcm-spacing-md);
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-sm);
	font-weight: 600;
	color: var(--tcm-color-primary);
	cursor: pointer;
	transition: background-color 200ms ease, color 200ms ease;
}

body.tcm-expertenverzeichnis .tcm-ev-map-toggle:hover {
	background: var(--tcm-color-primary-light);
}

body.tcm-expertenverzeichnis .tcm-ev-map-toggle[aria-expanded="true"] {
	background: var(--tcm-color-primary);
	color: var(--tcm-color-white);
}

body.tcm-expertenverzeichnis .tcm-ev-map-toggle__icon {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
}

/* --- Directory Map Container --- */

body.tcm-expertenverzeichnis .tcm-ev-directory-map {
	margin-top: var(--tcm-spacing-md);
}

body.tcm-expertenverzeichnis .tcm-ev-directory-map__container {
	position: relative;
	height: 350px;
	width: 100%;
	border: 1px solid var(--tcm-color-border-light);
	border-radius: var(--tcm-radius-md);
	overflow: hidden;
	box-shadow: var(--tcm-shadow-card);
	background: var(--tcm-gray-warm-100);
}

@media (min-width: 768px) {
	body.tcm-expertenverzeichnis .tcm-ev-directory-map__container {
		height: 450px;
	}
}

/* Loading spinner overlay */
body.tcm-expertenverzeichnis .tcm-ev-directory-map__loading {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--tcm-gray-warm-100);
	z-index: 1000;
}

body.tcm-expertenverzeichnis .tcm-ev-directory-map__spinner {
	width: 40px;
	height: 40px;
	border: 3px solid var(--tcm-color-border-light);
	border-top-color: var(--tcm-color-primary);
	border-radius: var(--tcm-radius-full);
	animation: tcm-ev-spin 0.8s linear infinite;
}

@keyframes tcm-ev-spin {
	to { transform: rotate(360deg); }
}

/* Popup profile link (reuse existing popup styles) */
body.tcm-expertenverzeichnis .tcm-ev-map-popup__profile-link {
	display: inline-flex;
	align-items: center;
	gap: var(--tcm-spacing-xs);
	margin-top: var(--tcm-spacing-sm);
	font-size: var(--tcm-font-size-sm);
	font-weight: 600;
	color: var(--tcm-color-primary);
	text-decoration: none;
}

body.tcm-expertenverzeichnis .tcm-ev-map-popup__profile-link:hover {
	color: var(--tcm-color-primary-dark);
	text-decoration: underline;
}

/* ==========================================================================
   8. Practitioner Card (portrait / vertical layout)
   ========================================================================== */

body.tcm-expertenverzeichnis .tcm-ev-card {
	background: var(--tcm-color-white);
	border: 1px solid var(--tcm-color-border-light);
	border-radius: var(--tcm-radius-md);
	box-shadow: var(--tcm-shadow-card);
	overflow: hidden;
	transition:
		transform 200ms ease,
		box-shadow 200ms ease,
		border-color 200ms ease;
	display: flex;
	flex-direction: column;
	text-align: center;
	text-decoration: none;
	color: inherit;
	cursor: pointer;
}

body.tcm-expertenverzeichnis .tcm-ev-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
	border-color: var(--tcm-color-border);
}

/* Top accent bar */
body.tcm-expertenverzeichnis .tcm-ev-card__accent {
	height: 4px;
	background: var(--tcm-color-primary);
	border-radius: var(--tcm-radius-md) var(--tcm-radius-md) 0 0;
}

/* Avatar section (centered) */
body.tcm-expertenverzeichnis .tcm-ev-card__avatar-section {
	display: flex;
	justify-content: center;
	padding-top: 44px;
}

/* Avatar: circle */
body.tcm-expertenverzeichnis .tcm-ev-card__avatar {
	width: 100px;
	height: 100px;
	min-width: 100px;
	border-radius: 50%;
	object-fit: cover;
	border: 1px solid var(--tcm-color-border);
}

body.tcm-expertenverzeichnis .tcm-ev-card__avatar--placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--tcm-gray-cool-100);
}

/* Info section (centered) */
body.tcm-expertenverzeichnis .tcm-ev-card__info {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	padding: 26px 20px 0 20px;
}

body.tcm-expertenverzeichnis .tcm-ev-card__name {
	font-family: var(--tcm-font-heading);
	font-size: var(--tcm-font-size-2xl);
	font-weight: 700;
	color: var(--tcm-color-text-dark);
	margin: 0;
	line-height: 1.3;
	text-align: center;
	width: 100%;
	display: flex;
	justify-content: center;
}

/* "Profil ansehen" button (always pinned to bottom of card) */
body.tcm-expertenverzeichnis .tcm-ev-card__btn-section {
	display: flex;
	justify-content: center;
	padding: 20px 20px 50px 20px;
	margin-top: auto;
}

body.tcm-expertenverzeichnis .tcm-ev-card__btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: var(--tcm-color-primary);
	color: var(--tcm-color-white);
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-base);
	font-weight: 600;
	border-radius: var(--tcm-radius-btn);
	padding: 8px 24px;
	white-space: nowrap;
	transition: background-color 200ms ease;
}

body.tcm-expertenverzeichnis .tcm-ev-card__btn:hover {
	background: var(--tcm-color-primary-dark);
	color: var(--tcm-color-white);
}

body.tcm-expertenverzeichnis .tcm-ev-card__btn-icon {
	width: 16px;
	height: 16px;
	flex-shrink: 0;
}

/* Meta rows (profession, location, country, appointment) */
body.tcm-expertenverzeichnis .tcm-ev-card__meta {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-base);
}

body.tcm-expertenverzeichnis .tcm-ev-card__meta-icon {
	width: 16px;
	height: 16px;
	flex-shrink: 0;
}

body.tcm-expertenverzeichnis .tcm-ev-card__meta--profession {
	color: var(--tcm-color-primary);
	font-weight: 500;
	align-items: flex-start;
}

body.tcm-expertenverzeichnis .tcm-ev-card__meta--profession .tcm-ev-card__meta-icon {
	margin-top: 3px;
}

body.tcm-expertenverzeichnis .tcm-ev-card__meta--profession .tcm-ev-card__meta-icon {
	color: var(--tcm-color-primary);
}

body.tcm-expertenverzeichnis .tcm-ev-card__meta--location {
	color: var(--tcm-color-text-dark);
}

body.tcm-expertenverzeichnis .tcm-ev-card__meta--location .tcm-ev-card__meta-icon {
	color: var(--tcm-color-border);
}

body.tcm-expertenverzeichnis .tcm-ev-card__meta--country {
	color: var(--tcm-color-border);
	font-size: 15px;
}

body.tcm-expertenverzeichnis .tcm-ev-card__meta--country .tcm-ev-card__meta-icon {
	width: 15px;
	height: 15px;
	color: var(--tcm-color-border);
}

body.tcm-expertenverzeichnis .tcm-ev-card__meta--appointment {
	color: var(--tcm-color-success);
	font-size: var(--tcm-font-size-sm);
	font-weight: 500;
	justify-content: center;
	padding: var(--tcm-spacing-md) 20px 0 20px;
}

body.tcm-expertenverzeichnis .tcm-ev-card__meta--appointment .tcm-ev-card__meta-icon {
	color: var(--tcm-color-success);
}

/* Rating stars */
body.tcm-expertenverzeichnis .tcm-ev-card__rating {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 3px;
	padding: 14px 0 8px 0;
}

body.tcm-expertenverzeichnis .tcm-ev-card__stars {
	display: flex;
	gap: 3px;
}

body.tcm-expertenverzeichnis .tcm-ev-card__star {
	font-size: 21px;
	line-height: 1;
}

body.tcm-expertenverzeichnis .tcm-ev-card__star--filled {
	color: var(--tcm-color-accent);
}

body.tcm-expertenverzeichnis .tcm-ev-card__star--empty {
	color: var(--tcm-color-border-light);
}

body.tcm-expertenverzeichnis .tcm-ev-card__rating-count {
	font-family: var(--tcm-font-body);
	font-size: 15px;
	color: var(--tcm-color-border);
	margin-left: 4px;
}

/* Tags section */
body.tcm-expertenverzeichnis .tcm-ev-card__tags {
	padding: 16px 20px 0 20px;
}

body.tcm-expertenverzeichnis .tcm-ev-card__tags-row {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px;
}

body.tcm-expertenverzeichnis .tcm-ev-card__tag {
	display: inline-flex;
	align-items: center;
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-sm);
	font-weight: 500;
	color: var(--tcm-color-primary);
	background: var(--tcm-color-primary-light);
	border-radius: 14px;
	padding: 4px 12px;
}

/* ==========================================================================
   9. Buttons (generic)
   ========================================================================== */

body.tcm-expertenverzeichnis .tcm-ev-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--tcm-spacing-sm);
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-base);
	font-weight: 600;
	text-transform: none;
	letter-spacing: normal;
	border: none;
	border-radius: var(--tcm-radius-btn);
	cursor: pointer;
	text-decoration: none;
	transition:
		background-color 200ms ease,
		opacity 200ms ease;
	line-height: 1;
}

body.tcm-expertenverzeichnis .tcm-ev-btn svg {
	width: 16px;
	height: 16px;
}

body.tcm-expertenverzeichnis .tcm-ev-btn--primary {
	background: var(--tcm-color-primary);
	color: var(--tcm-color-white);
	padding: 10px 20px;
}

body.tcm-expertenverzeichnis .tcm-ev-btn--primary:hover {
	background: var(--tcm-color-primary-dark);
	color: var(--tcm-color-white);
}

body.tcm-expertenverzeichnis .tcm-ev-btn--outline {
	background: var(--tcm-color-white);
	color: var(--tcm-color-primary);
	border: 2px solid var(--tcm-color-primary);
	padding: 10px 20px;
}

body.tcm-expertenverzeichnis .tcm-ev-btn--outline:hover {
	background: var(--tcm-color-primary-light);
}

body.tcm-expertenverzeichnis .tcm-ev-btn--block {
	width: 100%;
}

body.tcm-expertenverzeichnis .tcm-ev-btn--sm {
	font-size: var(--tcm-font-size-sm);
	padding: var(--tcm-spacing-sm) var(--tcm-spacing-md);
}

/* ==========================================================================
   10. Stars / Rating (generic, used in profile)
   ========================================================================== */

body.tcm-expertenverzeichnis .tcm-ev-stars {
	display: inline-flex;
	align-items: center;
	gap: 2px;
}

body.tcm-expertenverzeichnis .tcm-ev-stars svg {
	width: 18px;
	height: 18px;
}

body.tcm-expertenverzeichnis .tcm-ev-stars__filled {
	color: var(--tcm-color-accent);
}

body.tcm-expertenverzeichnis .tcm-ev-stars__empty {
	color: var(--tcm-gray-cool-200);
}

/* ==========================================================================
   11. Profile — Header
   ========================================================================== */

body.tcm-expertenverzeichnis .tcm-ev-profile-header {
	background: var(--tcm-color-white);
	border-top: 2px solid var(--tcm-color-accent);
	border-bottom: 2px solid var(--tcm-color-accent);
	padding: var(--tcm-spacing-xl) 0 40px 0;
	margin-left: calc(-50vw + 50%);
	margin-right: calc(-50vw + 50%);
	padding-left: calc(50vw - 50%);
	padding-right: calc(50vw - 50%);
}

body.tcm-expertenverzeichnis .tcm-ev-profile-header__inner {
	display: flex;
	flex-direction: column;
	gap: var(--tcm-spacing-lg);
	align-items: center;
	text-align: center;
}

@media (min-width: 768px) {
	body.tcm-expertenverzeichnis .tcm-ev-profile-header__inner {
		flex-direction: row;
		text-align: left;
		align-items: flex-start;
	}
}

body.tcm-expertenverzeichnis .tcm-ev-profile-header__avatar {
	width: 120px;
	height: 120px;
	min-width: 120px;
	border-radius: 50%;
	object-fit: cover;
	border: 1px solid var(--tcm-color-border);
}

body.tcm-expertenverzeichnis .tcm-ev-profile-header__info {
	display: flex;
	flex-direction: column;
	gap: var(--tcm-spacing-sm);
	flex: 1;
	min-width: 0;
}

body.tcm-expertenverzeichnis .tcm-ev-profile-header__name {
	font-family: var(--tcm-font-heading);
	font-size: 32px;
	font-weight: 700;
	color: var(--tcm-color-text-dark);
	width: auto;
	flex-shrink: 0;
}

@media (max-width: 767px) {
	body.tcm-expertenverzeichnis .tcm-ev-profile-header__name {
		font-size: var(--tcm-font-size-3xl);
	}
}

body.tcm-expertenverzeichnis .tcm-ev-profile-header__practice {
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-base);
	color: var(--tcm-color-primary);
	font-weight: 500;
}

body.tcm-expertenverzeichnis .tcm-ev-profile-header__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--tcm-spacing-md);
	font-size: var(--tcm-font-size-sm);
}

@media (max-width: 767px) {
	body.tcm-expertenverzeichnis .tcm-ev-profile-header__meta {
		justify-content: center;
	}
}

body.tcm-expertenverzeichnis .tcm-ev-profile-header__meta-item {
	display: flex;
	align-items: center;
	gap: var(--tcm-spacing-xs);
}

body.tcm-expertenverzeichnis .tcm-ev-profile-header__meta-item svg {
	width: 16px;
	height: 16px;
	flex-shrink: 0;
	color: var(--tcm-color-primary);
}

body.tcm-expertenverzeichnis .tcm-ev-profile-header__price {
	display: inline-flex;
	align-items: center;
	font-size: var(--tcm-font-size-sm);
	font-weight: 600;
	color: var(--tcm-color-white);
	background: var(--tcm-color-primary);
	border-radius: var(--tcm-radius-full);
	padding: var(--tcm-spacing-xs) var(--tcm-spacing-md);
}

/* ==========================================================================
   12. Profile — Content (Two Column Layout)
   ========================================================================== */

body.tcm-expertenverzeichnis .tcm-ev-profile-content {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--tcm-spacing-xl);
	padding: var(--tcm-spacing-xl) 0 0 0;
	margin-bottom: 0;
}

@media (min-width: 1024px) {
	body.tcm-expertenverzeichnis .tcm-ev-profile-content {
		grid-template-columns: 1fr 380px;
	}
}

body.tcm-expertenverzeichnis .tcm-ev-profile-main {
	display: grid;
	gap: var(--tcm-spacing-xl);
	align-content: start;
}

body.tcm-expertenverzeichnis .tcm-ev-profile-sidebar {
	display: grid;
	gap: var(--tcm-spacing-lg);
	align-content: start;
}

body.tcm-expertenverzeichnis .tcm-ev-section {
	display: flex;
	flex-direction: column;
	gap: 12px;
	background: var(--tcm-color-white);
	border: 1px solid var(--tcm-color-border-light);
	border-radius: var(--tcm-radius-md);
	padding: var(--tcm-spacing-lg);
}

body.tcm-expertenverzeichnis .tcm-ev-profile .tcm-ev-section__title {
	font-family: var(--tcm-font-heading);
	font-size: var(--tcm-font-size-2xl);
	font-weight: 700;
	color: var(--tcm-color-text-dark);
	margin: 0;
	padding: 0 0 12px 0;
	border-bottom: 1px solid var(--tcm-color-border-light);
}

/* Info block (parking / accessibility) */
body.tcm-expertenverzeichnis .tcm-ev-info {
	display: grid;
	gap: var(--tcm-spacing-md);
}

body.tcm-expertenverzeichnis .tcm-ev-info__row {
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: start;
	gap: var(--tcm-spacing-sm);
}

body.tcm-expertenverzeichnis .tcm-ev-info__icon {
	width: 20px;
	height: 20px;
	flex-shrink: 0;
	color: var(--tcm-color-primary);
	margin-top: 2px;
}

body.tcm-expertenverzeichnis .tcm-ev-info__text {
	display: grid;
	gap: 2px;
}

body.tcm-expertenverzeichnis .tcm-ev-info__label {
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-sm);
	font-weight: 600;
	color: var(--tcm-color-text-dark);
}

body.tcm-expertenverzeichnis .tcm-ev-info__value {
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-base);
	color: var(--tcm-gray-cool-500);
}

body.tcm-expertenverzeichnis .tcm-ev-section__text {
	font-size: var(--tcm-font-size-lg);
	line-height: 1.6;
	color: var(--tcm-color-text-dark);
}

body.tcm-expertenverzeichnis .tcm-ev-section__text p {
	margin: 0 0 var(--tcm-spacing-md) 0;
}

body.tcm-expertenverzeichnis .tcm-ev-section__text p:last-child {
	margin-bottom: 0;
}

body.tcm-expertenverzeichnis .tcm-ev-profile .tcm-ev-section__text ul,
body.tcm-expertenverzeichnis .tcm-ev-profile .tcm-ev-section__text ol {
	list-style: disc;
	margin: 0 0 var(--tcm-spacing-md) 0;
	padding-left: var(--tcm-spacing-lg);
}

body.tcm-expertenverzeichnis .tcm-ev-profile .tcm-ev-section__text ol {
	list-style: decimal;
}

body.tcm-expertenverzeichnis .tcm-ev-profile .tcm-ev-section__text li {
	list-style: inherit;
	margin-bottom: var(--tcm-spacing-xs);
}

body.tcm-expertenverzeichnis .tcm-ev-services {
	display: flex;
	flex-wrap: wrap;
	gap: var(--tcm-spacing-sm);
}

/* Generic tag (used in profile services) */
body.tcm-expertenverzeichnis .tcm-ev-tag {
	display: inline-flex;
	align-items: center;
	font-family: var(--tcm-font-body);
	font-size: 15px;
	font-weight: 500;
	color: var(--tcm-color-primary);
	background: var(--tcm-color-primary-light);
	border-radius: var(--tcm-radius-xl);
	padding: 6px 14px;
}

/* ==========================================================================
   13. Opening Hours Table
   ========================================================================== */

body.tcm-expertenverzeichnis .tcm-ev-hours {
	width: 100%;
	border-collapse: collapse;
}

body.tcm-expertenverzeichnis .tcm-ev-hours th,
body.tcm-expertenverzeichnis .tcm-ev-hours td {
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-lg);
	padding: var(--tcm-spacing-sm) 0;
	text-align: left;
	text-transform: none;
	letter-spacing: normal;
	border-bottom: 1px solid var(--tcm-gray-cool-100);
}

body.tcm-expertenverzeichnis .tcm-ev-hours th {
	font-weight: 500;
	color: var(--tcm-color-text-dark);
	width: 40%;
}

body.tcm-expertenverzeichnis .tcm-ev-hours td {
	color: var(--tcm-color-text-dark);
	text-align: right;
}

body.tcm-expertenverzeichnis .tcm-ev-hours__closed {
	font-weight: 600;
	color: var(--tcm-color-secondary);
}

body.tcm-expertenverzeichnis .tcm-ev-hours__request {
	font-weight: 600;
	color: var(--tcm-color-accent);
}

body.tcm-expertenverzeichnis .tcm-ev-hours tr:last-child th,
body.tcm-expertenverzeichnis .tcm-ev-hours tr:last-child td {
	border-bottom: none;
}

body.tcm-expertenverzeichnis .tcm-ev-hours__today th {
	font-weight: 600;
	color: var(--tcm-color-primary);
}

/* ==========================================================================
   14. Gallery
   ========================================================================== */

body.tcm-expertenverzeichnis .tcm-ev-gallery {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12px;
}

body.tcm-expertenverzeichnis .tcm-ev-gallery__item {
	margin: 0;
}

body.tcm-expertenverzeichnis .tcm-ev-gallery__img {
	width: 100%;
	height: 180px;
	object-fit: cover;
	border-radius: var(--tcm-radius-btn);
	background: var(--tcm-gray-cool-100);
	cursor: pointer;
}

body.tcm-expertenverzeichnis .tcm-ev-gallery__caption {
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-sm);
	color: var(--tcm-color-border);
	margin-top: var(--tcm-spacing-xs);
}

/* Lightbox */
body.tcm-expertenverzeichnis .tcm-ev-lightbox {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(0, 0, 0, 0.9);
}

body.tcm-expertenverzeichnis .tcm-ev-lightbox[hidden] {
	display: none;
}

body.tcm-expertenverzeichnis .tcm-ev-lightbox__img {
	display: block;
	max-width: 90vw;
	max-height: 85vh;
	width: auto;
	height: auto;
	object-fit: contain;
	border-radius: var(--tcm-radius-md);
}

body.tcm-expertenverzeichnis .tcm-ev-lightbox__close {
	position: absolute;
	top: var(--tcm-spacing-md);
	right: var(--tcm-spacing-md);
	background: none;
	border: none;
	color: var(--tcm-color-white);
	font-size: var(--tcm-font-size-4xl);
	cursor: pointer;
	line-height: 1;
	padding: var(--tcm-spacing-sm);
}

body.tcm-expertenverzeichnis .tcm-ev-lightbox__prev,
body.tcm-expertenverzeichnis .tcm-ev-lightbox__next {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	background: none;
	border: none;
	color: var(--tcm-color-white);
	font-size: var(--tcm-font-size-5xl);
	cursor: pointer;
	padding: var(--tcm-spacing-md);
	line-height: 1;
}

body.tcm-expertenverzeichnis .tcm-ev-lightbox__prev {
	left: var(--tcm-spacing-md);
}

body.tcm-expertenverzeichnis .tcm-ev-lightbox__next {
	right: var(--tcm-spacing-md);
}

body.tcm-expertenverzeichnis .tcm-ev-lightbox__caption {
	position: absolute;
	bottom: var(--tcm-spacing-2xl);
	left: 50%;
	transform: translateX(-50%);
	color: var(--tcm-color-white);
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-base);
	text-align: center;
	max-width: 80vw;
}

body.tcm-expertenverzeichnis .tcm-ev-lightbox__counter {
	position: absolute;
	bottom: var(--tcm-spacing-lg);
	left: 50%;
	transform: translateX(-50%);
	color: var(--tcm-color-border);
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-sm);
}

body.tcm-expertenverzeichnis .tcm-ev-lightbox__close:hover,
body.tcm-expertenverzeichnis .tcm-ev-lightbox__prev:hover,
body.tcm-expertenverzeichnis .tcm-ev-lightbox__next:hover {
	opacity: 0.7;
}

/* ==========================================================================
   15. Contact Card (Sidebar)
   ========================================================================== */

body.tcm-expertenverzeichnis .tcm-ev-contact {
	display: flex;
	flex-direction: column;
	gap: var(--tcm-spacing-md);
	background: var(--tcm-color-white);
	border: 1px solid var(--tcm-color-border-light);
	border-radius: var(--tcm-radius-md);
	padding: var(--tcm-spacing-lg);
}

body.tcm-expertenverzeichnis .tcm-ev-profile .tcm-ev-contact__title {
	font-family: var(--tcm-font-heading);
	font-size: var(--tcm-font-size-2xl);
	font-weight: 700;
	margin: 0;
	padding: 0 0 var(--tcm-spacing-md) 0;
	border-bottom: 1px solid var(--tcm-color-border-light);
}

body.tcm-expertenverzeichnis .tcm-ev-contact__list {
	display: grid;
	gap: var(--tcm-spacing-md);
	padding: 0;
	margin: 0 0 var(--tcm-spacing-lg) 0;
}

body.tcm-expertenverzeichnis .tcm-ev-contact__item {
	display: flex;
	align-items: center;
	gap: var(--tcm-spacing-sm);
	font-size: var(--tcm-font-size-sm);
}

body.tcm-expertenverzeichnis .tcm-ev-contact__item svg {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	color: var(--tcm-color-primary);
}

body.tcm-expertenverzeichnis .tcm-ev-contact__item a {
	color: var(--tcm-color-text-dark);
	text-decoration: underline;
}

body.tcm-expertenverzeichnis .tcm-ev-contact__item a:hover {
	color: var(--tcm-color-primary);
}

/* ==========================================================================
   16. Inquiry Form
   ========================================================================== */

body.tcm-expertenverzeichnis .tcm-ev-inquiry {
	display: flex;
	flex-direction: column;
	gap: 14px;
	background: var(--tcm-color-white);
	border: 1px solid var(--tcm-color-border-light);
	border-radius: var(--tcm-radius-md);
	padding: var(--tcm-spacing-lg);
}

body.tcm-expertenverzeichnis .tcm-ev-profile .tcm-ev-inquiry__title {
	font-family: var(--tcm-font-heading);
	font-size: var(--tcm-font-size-2xl);
	font-weight: 700;
	margin: 0;
	padding: 0 0 14px 0;
	border-bottom: 1px solid var(--tcm-color-border-light);
}

body.tcm-expertenverzeichnis .tcm-ev-inquiry__form {
	display: grid;
	gap: 14px;
}

body.tcm-expertenverzeichnis .tcm-ev-inquiry__group {
	display: grid;
	gap: var(--tcm-spacing-xs); /* 4px */
}

body.tcm-expertenverzeichnis .tcm-ev-inquiry__label {
	font-size: var(--tcm-font-size-base);
	font-weight: 600;
	color: var(--tcm-color-text-dark);
}

body.tcm-expertenverzeichnis .tcm-ev-inquiry__label--required::after {
	content: " *";
	color: var(--tcm-color-secondary);
}

body.tcm-expertenverzeichnis .tcm-ev-inquiry__input,
body.tcm-expertenverzeichnis .tcm-ev-inquiry__select,
body.tcm-expertenverzeichnis .tcm-ev-inquiry__textarea {
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-base);
	color: var(--tcm-color-text-dark);
	background: var(--tcm-color-white);
	border: 1px solid var(--tcm-color-border);
	border-radius: var(--tcm-radius-btn);
	padding: 0 12px;
	height: 38px;
	width: 100%;
	transition: border-color 200ms ease;
}

body.tcm-expertenverzeichnis .tcm-ev-inquiry__input:focus,
body.tcm-expertenverzeichnis .tcm-ev-inquiry__select:focus,
body.tcm-expertenverzeichnis .tcm-ev-inquiry__textarea:focus {
	outline: none;
	border-color: var(--tcm-color-primary);
	box-shadow: 0 0 0 3px rgba(23, 126, 137, 0.15);
}

body.tcm-expertenverzeichnis .tcm-ev-inquiry__textarea {
	height: auto;
	min-height: 90px;
	padding: 12px;
	resize: vertical;
}

body.tcm-expertenverzeichnis .tcm-ev-inquiry__input::placeholder,
body.tcm-expertenverzeichnis .tcm-ev-inquiry__textarea::placeholder {
	color: var(--tcm-color-border);
}

body.tcm-expertenverzeichnis .tcm-ev-inquiry__message {
	font-size: var(--tcm-font-size-sm);
	font-weight: 500;
	padding: var(--tcm-spacing-sm) var(--tcm-spacing-md);
	border-radius: var(--tcm-radius-btn);
	display: none;
}

body.tcm-expertenverzeichnis .tcm-ev-inquiry__message--success {
	display: block;
	background: #ecfdf5;
	color: var(--tcm-color-success);
	border: 1px solid var(--tcm-color-success);
}

body.tcm-expertenverzeichnis .tcm-ev-inquiry__message--error {
	display: block;
	background: #fef2f2;
	color: var(--tcm-color-error);
	border: 1px solid var(--tcm-color-error);
}

/* ==========================================================================
   17. Reviews Section
   ========================================================================== */

body.tcm-expertenverzeichnis .tcm-ev-reviews {
	padding: var(--tcm-spacing-xl) 0;
	border-top: 1px solid var(--tcm-color-border-light);
}

body.tcm-expertenverzeichnis .tcm-ev-profile .tcm-ev-reviews__title {
	font-family: var(--tcm-font-heading);
	font-size: var(--tcm-font-size-2xl);
	font-weight: 700;
	margin: 0;
	padding: 0;
}

body.tcm-expertenverzeichnis .tcm-ev-reviews__summary {
	display: flex;
	align-items: center;
	gap: var(--tcm-spacing-md);
	padding: var(--tcm-spacing-lg);
	background: var(--tcm-gray-warm-50);
	border-radius: var(--tcm-radius-md);
	margin-bottom: var(--tcm-spacing-xl);
}

body.tcm-expertenverzeichnis .tcm-ev-reviews__avg {
	font-family: var(--tcm-font-heading);
	font-size: var(--tcm-font-size-5xl);
	font-weight: 700;
	color: var(--tcm-color-text-dark);
	line-height: 1;
}

body.tcm-expertenverzeichnis .tcm-ev-reviews__avg-info {
	display: grid;
	gap: var(--tcm-spacing-xs);
}

body.tcm-expertenverzeichnis .tcm-ev-reviews__count {
	font-size: var(--tcm-font-size-sm);
	color: var(--tcm-gray-cool-500);
}

body.tcm-expertenverzeichnis .tcm-ev-reviews__list {
	display: grid;
	gap: 0;
}

body.tcm-expertenverzeichnis .tcm-ev-review {
	padding: var(--tcm-spacing-md) 0;
	border-bottom: 1px solid var(--tcm-gray-cool-100);
}

body.tcm-expertenverzeichnis .tcm-ev-review:first-child {
	padding-top: 0;
}

body.tcm-expertenverzeichnis .tcm-ev-review:last-child {
	border-bottom: none;
	padding-bottom: 0;
}

body.tcm-expertenverzeichnis .tcm-ev-review__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: var(--tcm-spacing-sm);
	margin-bottom: var(--tcm-spacing-sm);
}

body.tcm-expertenverzeichnis .tcm-ev-review__author {
	font-size: var(--tcm-font-size-base);
	font-weight: 600;
	color: var(--tcm-color-text-dark);
}

body.tcm-expertenverzeichnis .tcm-ev-review__date {
	font-size: 15px;
	color: var(--tcm-color-border);
}

body.tcm-expertenverzeichnis .tcm-ev-review__text {
	font-size: var(--tcm-font-size-base);
	line-height: 1.5;
	color: var(--tcm-color-text-dark);
	margin-top: var(--tcm-spacing-sm);
}

/* ==========================================================================
   18. Pagination
   ========================================================================== */

body.tcm-expertenverzeichnis .tcm-ev-pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--tcm-spacing-xs);
	padding: var(--tcm-spacing-xl) 0;
}

body.tcm-expertenverzeichnis .tcm-ev-pagination__link,
body.tcm-expertenverzeichnis .tcm-ev-pagination__current {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-sm);
	font-weight: 500;
	border-radius: var(--tcm-radius-btn);
	text-decoration: none;
	transition:
		background-color 200ms ease,
		color 200ms ease;
}

body.tcm-expertenverzeichnis .tcm-ev-pagination__link {
	color: var(--tcm-color-text-dark);
	background: var(--tcm-color-white);
	border: 1px solid var(--tcm-color-border-light);
}

body.tcm-expertenverzeichnis .tcm-ev-pagination__link:hover {
	background: var(--tcm-color-primary-light);
	border-color: var(--tcm-color-primary);
	color: var(--tcm-color-primary);
}

body.tcm-expertenverzeichnis .tcm-ev-pagination__current {
	color: var(--tcm-color-white);
	background: var(--tcm-color-primary);
}

body.tcm-expertenverzeichnis .tcm-ev-pagination__ellipsis {
	color: var(--tcm-color-border);
	padding: 0 var(--tcm-spacing-xs);
}

/* ==========================================================================
   19. Loading State
   ========================================================================== */

body.tcm-expertenverzeichnis .tcm-ev-loading {
	display: grid;
	place-items: center;
	padding: var(--tcm-spacing-2xl);
	grid-column: 1 / -1;
}

body.tcm-expertenverzeichnis .tcm-ev-loading__spinner {
	width: 40px;
	height: 40px;
	border: 3px solid var(--tcm-color-border-light);
	border-top-color: var(--tcm-color-primary);
	border-radius: var(--tcm-radius-full);
	animation: tcm-ev-spin 600ms linear infinite;
}

@keyframes tcm-ev-spin {
	to {
		transform: rotate(360deg);
	}
}

body.tcm-expertenverzeichnis .tcm-ev-loading__text {
	font-size: var(--tcm-font-size-sm);
	color: var(--tcm-gray-cool-500);
	margin-top: var(--tcm-spacing-md);
}

/* ==========================================================================
   20. Empty State
   ========================================================================== */

body.tcm-expertenverzeichnis .tcm-ev-empty {
	text-align: center;
	padding: var(--tcm-spacing-2xl);
	grid-column: 1 / -1;
}

body.tcm-expertenverzeichnis .tcm-ev-empty__icon {
	color: var(--tcm-color-border);
	margin-bottom: var(--tcm-spacing-md);
}

body.tcm-expertenverzeichnis .tcm-ev-empty__icon svg {
	width: 48px;
	height: 48px;
}

body.tcm-expertenverzeichnis .tcm-ev-empty__title {
	font-family: var(--tcm-font-heading);
	font-size: var(--tcm-font-size-2xl);
	font-weight: 700;
	margin: 0 0 var(--tcm-spacing-sm) 0;
}

body.tcm-expertenverzeichnis .tcm-ev-empty__text {
	font-size: var(--tcm-font-size-base);
	color: var(--tcm-gray-cool-500);
}

/* ==========================================================================
   21. Map Placeholder
   ========================================================================== */

body.tcm-expertenverzeichnis .tcm-ev-map {
	width: 100%;
	aspect-ratio: 16 / 10;
	background: var(--tcm-gray-cool-100);
	border-radius: var(--tcm-radius-md);
	border: 1px solid var(--tcm-color-border-light);
	overflow: hidden;
}

body.tcm-expertenverzeichnis .tcm-ev-map iframe {
	width: 100%;
	height: 100%;
	border: none;
}

body.tcm-expertenverzeichnis .tcm-ev-map__placeholder {
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	color: var(--tcm-color-border);
	font-size: var(--tcm-font-size-sm);
}

/* ==========================================================================
   22. Profile Header — Enhanced
   ========================================================================== */

body.tcm-expertenverzeichnis .tcm-ev-profile-header__avatar-placeholder {
	width: 120px;
	height: 120px;
	min-width: 120px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--tcm-gray-cool-100);
	border: 1px solid var(--tcm-color-border);
}

body.tcm-expertenverzeichnis .tcm-ev-profile-header__name-row {
	display: flex;
	align-items: center;
	gap: var(--tcm-spacing-md);
	flex-wrap: wrap;
}

body.tcm-expertenverzeichnis .tcm-ev-profile-header__rating {
	display: flex;
	align-items: center;
	gap: 3px;
}

body.tcm-expertenverzeichnis .tcm-ev-profile-header__star {
	font-family: Arial, sans-serif;
	font-size: 22px;
	line-height: 1;
}

body.tcm-expertenverzeichnis .tcm-ev-profile-header__star--filled {
	color: var(--tcm-color-accent);
}

body.tcm-expertenverzeichnis .tcm-ev-profile-header__star--empty {
	color: var(--tcm-color-border-light);
}

body.tcm-expertenverzeichnis .tcm-ev-profile-header__rating-text {
	font-family: var(--tcm-font-body);
	font-size: 15px;
	font-weight: 500;
	color: var(--tcm-color-border);
	margin-left: 3px;
}

@media (max-width: 767px) {
	body.tcm-expertenverzeichnis .tcm-ev-profile-header__name-row {
		justify-content: center;
	}
}

body.tcm-expertenverzeichnis .tcm-ev-profile-header__meta-row {
	display: flex;
	align-items: center;
	gap: 6px;
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-base);
	font-weight: 500;
}

body.tcm-expertenverzeichnis .tcm-ev-profile-header__meta-row svg {
	width: 16px;
	height: 16px;
	flex-shrink: 0;
}

body.tcm-expertenverzeichnis .tcm-ev-profile-header__meta-row--profession {
	color: var(--tcm-color-primary);
	font-weight: 500;
}

body.tcm-expertenverzeichnis .tcm-ev-profile-header__meta-row--profession svg {
	color: var(--tcm-color-primary);
}

body.tcm-expertenverzeichnis .tcm-ev-profile-header__meta-row--location {
	color: var(--tcm-color-text-dark);
	font-weight: 500;
}

body.tcm-expertenverzeichnis .tcm-ev-profile-header__meta-row--location svg {
	color: var(--tcm-color-border);
}

body.tcm-expertenverzeichnis .tcm-ev-profile-header__meta-row--languages {
	color: var(--tcm-color-text-dark);
	font-weight: 500;
}

body.tcm-expertenverzeichnis .tcm-ev-profile-header__meta-row--languages svg {
	color: var(--tcm-color-border);
}

body.tcm-expertenverzeichnis .tcm-ev-profile-header__price-pill {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	gap: 6px;
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-base);
	font-weight: 600;
	color: var(--tcm-color-primary);
	background: var(--tcm-color-primary-light);
	border: 1px solid var(--tcm-color-primary);
	border-radius: var(--tcm-radius-lg);
	padding: 6px 14px;
}

body.tcm-expertenverzeichnis .tcm-ev-profile-header__price-pill svg {
	width: 16px;
	height: 16px;
	flex-shrink: 0;
}

/* ==========================================================================
   23. Contact Card — Enhanced
   ========================================================================== */

body.tcm-expertenverzeichnis .tcm-ev-contact__rows {
	display: grid;
	gap: var(--tcm-spacing-md);
}

body.tcm-expertenverzeichnis .tcm-ev-contact__row {
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-base);
}

body.tcm-expertenverzeichnis .tcm-ev-contact__row svg {
	width: 16px;
	height: 16px;
	flex-shrink: 0;
	color: var(--tcm-color-primary);
}

body.tcm-expertenverzeichnis .tcm-ev-contact__row a {
	color: var(--tcm-color-text-dark);
}

body.tcm-expertenverzeichnis .tcm-ev-contact__row a:hover {
	color: var(--tcm-color-primary);
}

body.tcm-expertenverzeichnis .tcm-ev-contact__row--website a {
	color: var(--tcm-color-primary);
}

body.tcm-expertenverzeichnis .tcm-ev-contact__row--whatsapp svg {
	width: 22px;
	height: 22px;
	margin-left: calc(var(--tcm-spacing-xs) * -1);
}

body.tcm-expertenverzeichnis .tcm-ev-contact__row--appointment {
	color: var(--tcm-color-success);
	font-size: var(--tcm-font-size-sm);
	font-weight: 500;
	gap: 6px;
	padding: var(--tcm-spacing-sm) 0;
}

body.tcm-expertenverzeichnis .tcm-ev-contact__row--appointment svg {
	width: 14px;
	height: 14px;
	color: var(--tcm-color-success);
}

body.tcm-expertenverzeichnis .tcm-ev-contact__book-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--tcm-spacing-sm);
	width: 100%;
	height: 46px;
	background: var(--tcm-color-primary);
	color: var(--tcm-color-white);
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-base);
	font-weight: 600;
	text-transform: none;
	letter-spacing: normal;
	border: none;
	border-radius: var(--tcm-radius-btn);
	cursor: pointer;
	transition: background-color 200ms ease;
	text-decoration: none;
}

body.tcm-expertenverzeichnis .tcm-ev-contact__book-btn:hover {
	background: var(--tcm-color-primary-dark);
	color: var(--tcm-color-white);
}

body.tcm-expertenverzeichnis .tcm-ev-contact__book-btn svg {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
}

body.tcm-expertenverzeichnis .tcm-ev-contact__social {
	display: flex;
	gap: 12px;
}

body.tcm-expertenverzeichnis .tcm-ev-contact__social-link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--tcm-gray-cool-100);
	color: var(--tcm-color-text-dark);
	transition: background-color 200ms ease, color 200ms ease;
}

body.tcm-expertenverzeichnis .tcm-ev-contact__social-link:hover {
	background: var(--tcm-color-primary);
	color: var(--tcm-color-white);
}

body.tcm-expertenverzeichnis .tcm-ev-contact__social-link svg {
	width: 18px;
	height: 18px;
}

/* ==========================================================================
   24. Map Card
   ========================================================================== */

body.tcm-expertenverzeichnis .tcm-ev-map-card {
	background: var(--tcm-color-white);
	border: 1px solid var(--tcm-color-border-light);
	border-radius: var(--tcm-radius-md);
	overflow: hidden;
}

body.tcm-expertenverzeichnis .tcm-ev-map-card__map {
	height: 260px;
	width: 100%;
}

body.tcm-expertenverzeichnis .tcm-ev-map-card__placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 200px;
	background: #e8eeef;
}

body.tcm-expertenverzeichnis .tcm-ev-map-card__placeholder svg {
	width: 48px;
	height: 48px;
	color: var(--tcm-color-border);
}

body.tcm-expertenverzeichnis .tcm-ev-map-card__route {
	display: flex;
	align-items: center;
	gap: var(--tcm-spacing-sm);
	width: 100%;
	padding: var(--tcm-spacing-xs) 20px;
	margin: 0;
	border: none;
	background: none;
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-sm);
	font-weight: 500;
	color: var(--tcm-color-primary);
	cursor: pointer;
	transition: opacity 200ms ease;
}

body.tcm-expertenverzeichnis .tcm-ev-map-card__route:hover {
	opacity: 0.8;
}

body.tcm-expertenverzeichnis .tcm-ev-map-card__route svg {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
}

/* Expand button (positioned over map) */
body.tcm-expertenverzeichnis .tcm-ev-map-card {
	position: relative;
}

body.tcm-expertenverzeichnis .tcm-ev-map-card__expand {
	position: absolute;
	top: var(--tcm-spacing-sm);
	right: var(--tcm-spacing-sm);
	z-index: 500;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	padding: 0;
	margin: 0;
	border: none;
	border-radius: var(--tcm-radius-sm);
	background: var(--tcm-color-white);
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
	cursor: pointer;
	color: var(--tcm-color-text-dark);
	transition: opacity 200ms ease;
}

body.tcm-expertenverzeichnis .tcm-ev-map-card__expand:hover {
	opacity: 0.8;
}

body.tcm-expertenverzeichnis .tcm-ev-map-card__expand svg {
	width: 18px;
	height: 18px;
}

/* Expanded map overlay */
body.tcm-expertenverzeichnis .tcm-ev-map-fullscreen {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--tcm-spacing-xl);
	background: rgba(0, 0, 0, 0.5);
}

body.tcm-expertenverzeichnis .tcm-ev-map-fullscreen__map {
	width: 100%;
	max-width: 900px;
	height: 70vh;
	border-radius: var(--tcm-radius-md);
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
}

body.tcm-expertenverzeichnis .tcm-ev-map-fullscreen__close {
	position: absolute;
	top: var(--tcm-spacing-md);
	right: var(--tcm-spacing-md);
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	min-height: auto;
	padding: 0;
	margin: 0;
	border: 1px solid #ccc;
	border-radius: 50%;
	background: var(--tcm-color-white);
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
	cursor: pointer;
	color: var(--tcm-color-text-dark);
	font-size: 22px;
	font-weight: 400;
	line-height: 1;
	transition: opacity 200ms ease;
}

body.tcm-expertenverzeichnis .tcm-ev-map-fullscreen__close:hover {
	opacity: 0.8;
}

@media (max-width: 767px) {
	body.tcm-expertenverzeichnis .tcm-ev-map-fullscreen {
		padding: var(--tcm-spacing-md);
	}

	body.tcm-expertenverzeichnis .tcm-ev-map-fullscreen__map {
		height: 60vh;
	}
}

/* ---------- Map Marker Popup ---------- */

body.tcm-expertenverzeichnis .tcm-ev-map-popup-wrapper .leaflet-popup-content-wrapper {
	border-radius: var(--tcm-radius-md);
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
	padding: 0;
}

body.tcm-expertenverzeichnis .tcm-ev-map-popup-wrapper .leaflet-popup-content {
	margin: 0;
	min-width: 200px;
}

body.tcm-expertenverzeichnis .tcm-ev-map-popup-wrapper .leaflet-popup-tip {
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
}

body.tcm-expertenverzeichnis .tcm-ev-map-popup {
	display: flex;
	align-items: flex-start;
	gap: var(--tcm-spacing-sm);
	padding: 14px 16px;
	font-family: var(--tcm-font-body);
}

body.tcm-expertenverzeichnis .tcm-ev-map-popup__photo {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	object-fit: cover;
	flex-shrink: 0;
}

body.tcm-expertenverzeichnis .tcm-ev-map-popup__info {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

body.tcm-expertenverzeichnis .tcm-ev-map-popup__name {
	font-size: var(--tcm-font-size-sm);
	font-weight: 600;
	color: var(--tcm-color-text-dark);
	line-height: 1.3;
}

body.tcm-expertenverzeichnis .tcm-ev-map-popup__job {
	font-size: var(--tcm-font-size-sm);
	font-weight: 500;
	color: var(--tcm-color-primary);
	line-height: 1.3;
}

body.tcm-expertenverzeichnis .tcm-ev-map-popup__practice {
	font-size: var(--tcm-font-size-sm);
	color: var(--tcm-color-text-muted);
	line-height: 1.3;
}

body.tcm-expertenverzeichnis .tcm-ev-map-popup__address {
	font-size: var(--tcm-font-size-sm);
	color: var(--tcm-color-border);
	line-height: 1.4;
	margin-top: 2px;
}

body.tcm-expertenverzeichnis .tcm-ev-map-popup__rating {
	display: inline-flex;
	align-items: center;
	gap: 2px;
	margin-top: var(--tcm-spacing-xs);
}

body.tcm-expertenverzeichnis .tcm-ev-map-popup__star {
	font-size: var(--tcm-font-size-sm);
	line-height: 1;
}

body.tcm-expertenverzeichnis .tcm-ev-map-popup__star--filled {
	color: var(--tcm-color-accent);
}

body.tcm-expertenverzeichnis .tcm-ev-map-popup__star--empty {
	color: var(--tcm-color-border);
}

body.tcm-expertenverzeichnis .tcm-ev-map-popup__review-count {
	font-size: var(--tcm-font-size-sm);
	color: var(--tcm-color-border);
	margin-left: var(--tcm-spacing-xs);
}

/* ---------- Route Modal ---------- */

body.tcm-expertenverzeichnis .tcm-ev-route-overlay {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.5);
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--tcm-spacing-md);
}

body.tcm-expertenverzeichnis .tcm-ev-route-modal {
	position: relative;
	background: var(--tcm-color-white);
	border-radius: 12px;
	max-width: 440px;
	width: 100%;
	max-height: 90vh;
	display: flex;
	flex-direction: column;
	animation: tcm-ev-booking-slide-up 250ms ease;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15);
}

body.tcm-expertenverzeichnis .tcm-ev-route__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 20px 24px;
	border-bottom: 1px solid var(--tcm-color-border-light);
	flex-shrink: 0;
}

body.tcm-expertenverzeichnis .tcm-ev-route__title {
	font-family: var(--tcm-font-heading);
	font-size: var(--tcm-font-size-xl);
	font-weight: 700;
	margin: 0;
	color: var(--tcm-color-text-dark);
}

body.tcm-expertenverzeichnis .tcm-ev-route-modal button.tcm-ev-route__close,
body.tcm-expertenverzeichnis .tcm-ev-route-modal button.tcm-ev-route__close:focus,
body.tcm-expertenverzeichnis .tcm-ev-route-modal button.tcm-ev-route__close:active {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	min-height: 0;
	padding: 0;
	margin: 0;
	border: 1px solid #ccc;
	background: #f0f0f0;
	border-radius: 50%;
	cursor: pointer;
	color: #333;
	font-size: 22px;
	font-weight: 400;
	line-height: 1;
	text-decoration: none;
	box-shadow: none;
	transition: background 150ms ease;
}

body.tcm-expertenverzeichnis .tcm-ev-route-modal button.tcm-ev-route__close:hover {
	background: #ddd;
	color: #000;
}

body.tcm-expertenverzeichnis .tcm-ev-route__body {
	padding: 20px 24px 24px;
	overflow-y: auto;
}

body.tcm-expertenverzeichnis .tcm-ev-route__intro {
	margin: 0 0 20px;
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-sm);
	line-height: 1.6;
	color: var(--tcm-color-text-muted);
}

body.tcm-expertenverzeichnis .tcm-ev-route__address {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 12px 16px;
	margin-bottom: 20px;
	background: var(--tcm-color-bg-light);
	border-radius: var(--tcm-radius-md);
	border: 1px solid var(--tcm-color-border-light);
}

body.tcm-expertenverzeichnis .tcm-ev-route__address-label {
	font-family: var(--tcm-font-body);
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--tcm-color-text-muted);
}

body.tcm-expertenverzeichnis .tcm-ev-route__address-value {
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-base);
	font-weight: 500;
	color: var(--tcm-color-text-dark);
}

body.tcm-expertenverzeichnis .tcm-ev-route__links {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

body.tcm-expertenverzeichnis .tcm-ev-route__link {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 16px;
	border: 1px solid var(--tcm-color-border-light);
	border-radius: var(--tcm-radius-md);
	background: var(--tcm-color-white);
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-base);
	font-weight: 500;
	color: var(--tcm-color-text-dark);
	text-decoration: none;
	cursor: pointer;
	transition: border-color 200ms ease, box-shadow 200ms ease;
}

body.tcm-expertenverzeichnis .tcm-ev-route__link:hover {
	border-color: var(--tcm-color-primary);
	box-shadow: 0 0 0 1px var(--tcm-color-primary);
}

body.tcm-expertenverzeichnis .tcm-ev-route__link svg:first-child {
	flex-shrink: 0;
	color: var(--tcm-color-primary);
}

body.tcm-expertenverzeichnis .tcm-ev-route__link-arrow {
	margin-left: auto;
	flex-shrink: 0;
	color: var(--tcm-color-border);
}

body.tcm-expertenverzeichnis .tcm-ev-route__copy-ok {
	margin-left: auto;
	font-size: var(--tcm-font-size-sm);
	font-weight: 600;
	color: var(--tcm-color-primary);
}

@media (max-width: 767px) {
	body.tcm-expertenverzeichnis .tcm-ev-route-overlay {
		padding: 0;
	}

	body.tcm-expertenverzeichnis .tcm-ev-route-modal {
		max-width: 100%;
		height: 100%;
		max-height: 100%;
		border-radius: 0;
	}
}

/* ==========================================================================
   25. Inquiry Chips
   ========================================================================== */

body.tcm-expertenverzeichnis .tcm-ev-inquiry__chips {
	display: flex;
	flex-wrap: wrap;
	gap: var(--tcm-spacing-sm); /* 8px */
}

body.tcm-expertenverzeichnis .tcm-ev-inquiry__chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-sm);
	font-weight: 400;
	color: var(--tcm-color-text-dark);
	background: var(--tcm-color-white);
	border: 1px solid var(--tcm-color-border);
	border-radius: var(--tcm-radius-lg);
	padding: 6px 14px;
	cursor: pointer;
	transition: background-color 200ms ease, border-color 200ms ease, color 200ms ease;
}

body.tcm-expertenverzeichnis .tcm-ev-inquiry__chip:hover {
	border-color: var(--tcm-color-primary);
	color: var(--tcm-color-primary);
}

body.tcm-expertenverzeichnis .tcm-ev-inquiry__chip--active {
	background: #E8F5F6;
	border-color: transparent;
	color: var(--tcm-color-primary);
	font-weight: 500;
}

body.tcm-expertenverzeichnis .tcm-ev-inquiry__form .tcm-ev-btn--primary.tcm-ev-btn--block {
	height: 42px;
	padding: 0 var(--tcm-spacing-md);
}

body.tcm-expertenverzeichnis .tcm-ev-inquiry__chip-check {
	display: none;
	width: 14px;
	height: 14px;
}

body.tcm-expertenverzeichnis .tcm-ev-inquiry__chip--active .tcm-ev-inquiry__chip-check {
	display: inline-block;
}

/* ==========================================================================
   26. Review Reply
   ========================================================================== */

body.tcm-expertenverzeichnis .tcm-ev-review__rating {
	display: flex;
	align-items: center;
	gap: 2px;
}

body.tcm-expertenverzeichnis .tcm-ev-review__star {
	font-family: Arial, sans-serif;
	font-size: var(--tcm-font-size-lg);
	line-height: 1;
}

body.tcm-expertenverzeichnis .tcm-ev-review__star--filled {
	color: var(--tcm-color-accent);
}

body.tcm-expertenverzeichnis .tcm-ev-review__star--empty {
	color: var(--tcm-color-border-light);
}

body.tcm-expertenverzeichnis .tcm-ev-review__reply {
	margin-top: var(--tcm-spacing-sm);
	padding: 12px 16px;
	background: #f7f9fa;
	border: 1px solid #f0f4f7;
	border-radius: var(--tcm-radius-btn);
	display: grid;
	gap: 6px;
}

body.tcm-expertenverzeichnis .tcm-ev-review__reply-label {
	display: flex;
	align-items: center;
	gap: 6px;
}

body.tcm-expertenverzeichnis .tcm-ev-review__reply-label svg {
	width: 14px;
	height: 14px;
	flex-shrink: 0;
	color: var(--tcm-color-primary);
}

body.tcm-expertenverzeichnis .tcm-ev-review__reply-author {
	font-family: var(--tcm-font-body);
	font-size: 15px;
	font-weight: 600;
	color: var(--tcm-color-primary);
}

body.tcm-expertenverzeichnis .tcm-ev-review__reply-text {
	font-family: var(--tcm-font-body);
	font-size: 15px;
	line-height: 1.4;
	color: var(--tcm-color-text-dark);
}

body.tcm-expertenverzeichnis .tcm-ev-reviews__show-all {
	display: flex;
	justify-content: center;
	font-family: var(--tcm-font-body);
	font-size: 15px;
	font-weight: 600;
	color: var(--tcm-color-primary);
	padding-top: var(--tcm-spacing-sm);
	transition: opacity 200ms ease;
}

body.tcm-expertenverzeichnis .tcm-ev-reviews__show-all:hover {
	opacity: 0.8;
}

/* ==========================================================================
   27. Utilities
   ========================================================================== */

body.tcm-expertenverzeichnis .tcm-ev-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

body.tcm-expertenverzeichnis .tcm-ev-hidden {
	display: none;
}

/* ==========================================================================
   28. Mobile Responsive
   ========================================================================== */

@media (max-width: 767px) {
	body.tcm-expertenverzeichnis .tcm-ev-hero__title {
		font-size: var(--tcm-font-size-3xl);
	}

	body.tcm-expertenverzeichnis .tcm-ev-hero__subtitle-row {
		flex-direction: column;
	}

	body.tcm-expertenverzeichnis .tcm-ev-filter__bar,

	body.tcm-expertenverzeichnis .tcm-ev-filter__row {
		flex-direction: column;
	}

	body.tcm-expertenverzeichnis .tcm-ev-filter__group--grow,

	body.tcm-expertenverzeichnis .tcm-ev-filter__group--full,

	body.tcm-expertenverzeichnis .tcm-ev-filter__group--fixed {
		width: 100%;
		flex: none;
	}

	body.tcm-expertenverzeichnis .tcm-ev-filter__group--btn {
		width: 100%;
	}

	body.tcm-expertenverzeichnis .tcm-ev-filter__btn {
		width: 100%;
	}

	body.tcm-expertenverzeichnis .tcm-ev-results__bar {
		flex-direction: column;
		align-items: flex-start;
	}

	body.tcm-expertenverzeichnis .tcm-ev-profile-header__meta-row {
		justify-content: center;
	}
}

/* ==========================================================================
   29. Inquiry Response Page
   ========================================================================== */

body.tcm-expertenverzeichnis .tcm-ev-response {
	display: grid;
	justify-items: center;
	gap: var(--tcm-spacing-lg);
	max-width: var(--tcm-content-max-width);
	margin: 0 auto;
	min-height: 60vh;
	padding: 0 var(--tcm-spacing-md) var(--tcm-spacing-xl);
	font-family: var(--tcm-font-body);
}

body.tcm-expertenverzeichnis .tcm-ev-response__card {
	width: 100%;
	max-width: 560px;
	background: var(--tcm-color-white);
	border: 1px solid var(--tcm-color-border-light);
	border-radius: var(--tcm-radius-md);
	padding: var(--tcm-spacing-xl);
	box-shadow: var(--tcm-shadow-card);
}

/* Error / Success states (centered icon + text) */
body.tcm-expertenverzeichnis .tcm-ev-response__error-state,
body.tcm-expertenverzeichnis .tcm-ev-response__success-state {
	display: grid;
	justify-items: center;
	text-align: center;
	gap: var(--tcm-spacing-md);
	padding: var(--tcm-spacing-lg) 0;
}

body.tcm-expertenverzeichnis .tcm-ev-response__state-icon {
	color: var(--tcm-color-border);
}

body.tcm-expertenverzeichnis .tcm-ev-response__state-icon--primary {
	color: var(--tcm-color-primary);
}

body.tcm-expertenverzeichnis .tcm-ev-response__state-icon--success {
	color: var(--tcm-color-success);
}

body.tcm-expertenverzeichnis .tcm-ev-response__title {
	font-family: var(--tcm-font-heading);
	font-size: var(--tcm-font-size-2xl);
	font-weight: 700;
	color: var(--tcm-color-text-dark);
	margin: 0;
}

body.tcm-expertenverzeichnis .tcm-ev-response__text {
	font-size: var(--tcm-font-size-base);
	color: var(--tcm-gray-cool-500);
	line-height: 1.5;
	margin: 0;
}

/* Step 1: Header + context */
body.tcm-expertenverzeichnis .tcm-ev-response__header {
	display: grid;
	justify-items: center;
	text-align: center;
	gap: var(--tcm-spacing-sm);
	padding-bottom: var(--tcm-spacing-lg);
	border-bottom: 1px solid var(--tcm-color-border-light);
}

body.tcm-expertenverzeichnis .tcm-ev-response__context {
	display: grid;
	gap: var(--tcm-spacing-sm);
	padding: var(--tcm-spacing-lg) 0;
	border-bottom: 1px solid var(--tcm-color-border-light);
}

body.tcm-expertenverzeichnis .tcm-ev-response__context-row {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: var(--tcm-spacing-sm);
	font-size: var(--tcm-font-size-base);
	align-items: baseline;
}

body.tcm-expertenverzeichnis .tcm-ev-response__context-label {
	font-weight: 600;
	color: var(--tcm-gray-cool-500);
	white-space: nowrap;
}

body.tcm-expertenverzeichnis .tcm-ev-response__context-value {
	color: var(--tcm-color-text-dark);
}

body.tcm-expertenverzeichnis .tcm-ev-response__subject-tags {
	display: flex;
	flex-wrap: wrap;
	gap: var(--tcm-spacing-xs);
}

/* PIN form */
body.tcm-expertenverzeichnis .tcm-ev-response__pin-form {
	display: grid;
	gap: var(--tcm-spacing-md);
	padding-top: var(--tcm-spacing-lg);
}

body.tcm-expertenverzeichnis .tcm-ev-response__label {
	font-size: var(--tcm-font-size-base);
	font-weight: 600;
	color: var(--tcm-color-text-dark);
}

body.tcm-expertenverzeichnis .tcm-ev-response__pin-input {
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-2xl);
	font-weight: 600;
	letter-spacing: 8px;
	text-align: center;
	color: var(--tcm-color-text-dark);
	background: var(--tcm-color-white);
	border: 1px solid var(--tcm-color-border);
	border-radius: var(--tcm-radius-btn);
	padding: var(--tcm-spacing-md);
	width: 100%;
	transition: border-color 200ms ease;
}

body.tcm-expertenverzeichnis .tcm-ev-response__pin-input:focus {
	outline: none;
	border-color: var(--tcm-color-primary);
	box-shadow: 0 0 0 3px rgba(23, 126, 137, 0.15);
}

body.tcm-expertenverzeichnis .tcm-ev-response__pin-input::placeholder {
	color: var(--tcm-color-border-light);
	letter-spacing: 12px;
}

body.tcm-expertenverzeichnis .tcm-ev-response__hint {
	font-size: var(--tcm-font-size-sm);
	color: var(--tcm-gray-cool-500);
	margin: 0;
}

/* Shared button style */
body.tcm-expertenverzeichnis .tcm-ev-response__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 42px;
	background: var(--tcm-color-primary);
	color: var(--tcm-color-white);
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-base);
	font-weight: 600;
	border: none;
	border-radius: var(--tcm-radius-btn);
	cursor: pointer;
	transition: background-color 200ms ease;
}

body.tcm-expertenverzeichnis .tcm-ev-response__btn:hover {
	background: var(--tcm-color-primary-dark);
}

body.tcm-expertenverzeichnis .tcm-ev-response__btn:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

/* Status messages */
body.tcm-expertenverzeichnis .tcm-ev-response__message {
	font-size: var(--tcm-font-size-sm);
	font-weight: 500;
	padding: var(--tcm-spacing-sm) var(--tcm-spacing-md);
	border-radius: var(--tcm-radius-btn);
	display: none;
}

body.tcm-expertenverzeichnis .tcm-ev-response__message--error {
	display: block;
	background: #fef2f2;
	color: var(--tcm-color-error);
	border: 1px solid var(--tcm-color-error);
}

body.tcm-expertenverzeichnis .tcm-ev-response__message--success {
	display: block;
	background: #ecfdf5;
	color: var(--tcm-color-success);
	border: 1px solid var(--tcm-color-success);
}

/* Step 2: Thread header */
body.tcm-expertenverzeichnis .tcm-ev-response__thread-header {
	padding-bottom: var(--tcm-spacing-lg);
	border-bottom: 1px solid var(--tcm-color-border-light);
}

body.tcm-expertenverzeichnis .tcm-ev-response__thread-header .tcm-ev-response__subject-tags {
	margin-top: var(--tcm-spacing-sm);
}

body.tcm-expertenverzeichnis .tcm-ev-response__thread-meta {
	font-size: var(--tcm-font-size-sm);
	color: var(--tcm-gray-cool-500);
	margin: var(--tcm-spacing-sm) 0 0 0;
}

/* Messages thread */
body.tcm-expertenverzeichnis .tcm-ev-response__messages {
	display: grid;
	gap: var(--tcm-spacing-md);
	padding: var(--tcm-spacing-lg) 0;
	max-height: 500px;
	overflow-y: auto;
}

body.tcm-expertenverzeichnis .tcm-ev-response__msg {
	display: grid;
	gap: var(--tcm-spacing-xs);
	max-width: 85%;
}

body.tcm-expertenverzeichnis .tcm-ev-response__msg--patient {
	justify-self: end;
}

body.tcm-expertenverzeichnis .tcm-ev-response__msg--practitioner {
	justify-self: start;
}

body.tcm-expertenverzeichnis .tcm-ev-response__msg-sender {
	font-size: var(--tcm-font-size-sm);
	font-weight: 600;
}

body.tcm-expertenverzeichnis .tcm-ev-response__msg--patient .tcm-ev-response__msg-sender {
	text-align: right;
	color: var(--tcm-color-primary);
}

body.tcm-expertenverzeichnis .tcm-ev-response__msg--practitioner .tcm-ev-response__msg-sender {
	color: var(--tcm-color-text-dark);
}

body.tcm-expertenverzeichnis .tcm-ev-response__msg-content {
	font-size: var(--tcm-font-size-base);
	line-height: 1.5;
	padding: var(--tcm-spacing-md);
	border-radius: var(--tcm-radius-md);
	white-space: pre-wrap;
	word-break: break-word;
}

body.tcm-expertenverzeichnis .tcm-ev-response__msg--patient .tcm-ev-response__msg-content {
	background: var(--tcm-color-primary-light);
	color: var(--tcm-color-text-dark);
	border-bottom-right-radius: var(--tcm-radius-sm);
}

body.tcm-expertenverzeichnis .tcm-ev-response__msg--practitioner .tcm-ev-response__msg-content {
	background: var(--tcm-gray-cool-50);
	color: var(--tcm-color-text-dark);
	border: 1px solid var(--tcm-color-border-light);
	border-bottom-left-radius: var(--tcm-radius-sm);
}

body.tcm-expertenverzeichnis .tcm-ev-response__msg-time {
	font-size: var(--tcm-font-size-sm);
	color: var(--tcm-gray-cool-400);
}

body.tcm-expertenverzeichnis .tcm-ev-response__msg--patient .tcm-ev-response__msg-time {
	text-align: right;
}

/* Reply form */
body.tcm-expertenverzeichnis .tcm-ev-response__reply-form {
	display: grid;
	gap: var(--tcm-spacing-md);
	padding-top: var(--tcm-spacing-lg);
	border-top: 1px solid var(--tcm-color-border-light);
}

body.tcm-expertenverzeichnis .tcm-ev-response__textarea {
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-base);
	color: var(--tcm-color-text-dark);
	background: var(--tcm-color-white);
	border: 1px solid var(--tcm-color-border);
	border-radius: var(--tcm-radius-btn);
	padding: 12px;
	width: 100%;
	min-height: 100px;
	resize: vertical;
	transition: border-color 200ms ease;
}

body.tcm-expertenverzeichnis .tcm-ev-response__textarea:focus {
	outline: none;
	border-color: var(--tcm-color-primary);
	box-shadow: 0 0 0 3px rgba(23, 126, 137, 0.15);
}

body.tcm-expertenverzeichnis .tcm-ev-response__textarea::placeholder {
	color: var(--tcm-color-border);
}

body.tcm-expertenverzeichnis .tcm-ev-response__reply-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--tcm-spacing-md);
}

body.tcm-expertenverzeichnis .tcm-ev-response__reply-footer .tcm-ev-response__btn {
	width: auto;
	padding: 0 var(--tcm-spacing-xl);
}

body.tcm-expertenverzeichnis .tcm-ev-response__char-count {
	font-size: var(--tcm-font-size-sm);
	color: var(--tcm-gray-cool-400);
}

/* Read-only notice (already replied) */
body.tcm-expertenverzeichnis .tcm-ev-response__readonly {
	display: flex;
	align-items: flex-start;
	gap: var(--tcm-spacing-sm);
	margin-top: var(--tcm-spacing-lg);
	padding: var(--tcm-spacing-md);
	background: var(--tcm-gray-cool-50);
	border: 1px solid var(--tcm-color-border-light);
	border-radius: var(--tcm-radius-btn);
}

body.tcm-expertenverzeichnis .tcm-ev-response__readonly svg {
	flex-shrink: 0;
	color: var(--tcm-color-primary);
	margin-top: 2px;
}

body.tcm-expertenverzeichnis .tcm-ev-response__readonly p {
	font-size: var(--tcm-font-size-sm);
	color: var(--tcm-gray-cool-500);
	line-height: 1.5;
	margin: 0;
}

/* 2-column layout when appointment exists */
body.tcm-expertenverzeichnis .tcm-ev-response--has-appointment {
	display: grid;
	grid-template-columns: 1fr 300px;
	gap: var(--tcm-spacing-lg);
	align-items: start;
}

body.tcm-expertenverzeichnis .tcm-ev-response--has-appointment .tcm-ev-breadcrumb {
	grid-column: 1 / -1;
}

body.tcm-expertenverzeichnis .tcm-ev-response--has-appointment .tcm-ev-response__card {
	max-width: none;
}

/* Appointment sidebar */
body.tcm-expertenverzeichnis .tcm-ev-response__appointment {
	background: var(--tcm-color-white);
	border: 1px solid var(--tcm-color-border-light);
	border-radius: var(--tcm-radius-md);
	padding: var(--tcm-spacing-lg);
	box-shadow: var(--tcm-shadow-card);
}

body.tcm-expertenverzeichnis .tcm-ev-response__appt-header {
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: center;
	gap: var(--tcm-spacing-sm);
	padding-bottom: var(--tcm-spacing-md);
	border-bottom: 1px solid var(--tcm-color-border-light);
	color: var(--tcm-color-primary);
}

body.tcm-expertenverzeichnis .tcm-ev-response__appt-title {
	font-family: var(--tcm-font-heading);
	font-size: var(--tcm-font-size-lg);
	font-weight: 700;
	color: var(--tcm-color-text-dark);
	margin: 0;
}

body.tcm-expertenverzeichnis .tcm-ev-response__appt-status {
	display: inline-flex;
	align-items: center;
	font-size: var(--tcm-font-size-sm);
	font-weight: 600;
	padding: var(--tcm-spacing-xs) var(--tcm-spacing-md);
	border-radius: var(--tcm-radius-full);
	margin-top: var(--tcm-spacing-md);
}

body.tcm-expertenverzeichnis .tcm-ev-response__appt-status--confirmed {
	background: #ecfdf5;
	color: var(--tcm-color-success);
}

body.tcm-expertenverzeichnis .tcm-ev-response__appt-status--pending {
	background: #fffbeb;
	color: var(--tcm-color-warning);
}

body.tcm-expertenverzeichnis .tcm-ev-response__appt-details {
	display: grid;
	gap: var(--tcm-spacing-md);
	padding-top: var(--tcm-spacing-md);
}

body.tcm-expertenverzeichnis .tcm-ev-response__appt-row {
	display: grid;
	grid-template-columns: 18px 1fr;
	gap: var(--tcm-spacing-sm);
	align-items: start;
}

body.tcm-expertenverzeichnis .tcm-ev-response__appt-row svg {
	color: var(--tcm-color-primary);
	margin-top: 2px;
}

body.tcm-expertenverzeichnis .tcm-ev-response__appt-label {
	display: block;
	font-size: var(--tcm-font-size-sm);
	font-weight: 600;
	color: var(--tcm-gray-cool-500);
}

body.tcm-expertenverzeichnis .tcm-ev-response__appt-value {
	display: block;
	font-size: var(--tcm-font-size-base);
	color: var(--tcm-color-text-dark);
	line-height: 1.4;
}

body.tcm-expertenverzeichnis .tcm-ev-response__appt-notes {
	padding-top: var(--tcm-spacing-md);
	border-top: 1px solid var(--tcm-color-border-light);
}

body.tcm-expertenverzeichnis .tcm-ev-response__appt-notes p {
	font-size: var(--tcm-font-size-base);
	color: var(--tcm-color-text-dark);
	line-height: 1.5;
	margin: var(--tcm-spacing-xs) 0 0 0;
	white-space: pre-wrap;
}

/* Responsive */
@media (max-width: 767px) {
	body.tcm-expertenverzeichnis .tcm-ev-response__card {
		padding: var(--tcm-spacing-lg);
	}

	body.tcm-expertenverzeichnis .tcm-ev-response__context-row {
		grid-template-columns: 1fr;
		gap: var(--tcm-spacing-xs);
	}

	body.tcm-expertenverzeichnis .tcm-ev-response__msg {
		max-width: 95%;
	}

	body.tcm-expertenverzeichnis .tcm-ev-response__reply-footer {
		flex-direction: column-reverse;
		align-items: stretch;
	}

	body.tcm-expertenverzeichnis .tcm-ev-response__reply-footer .tcm-ev-response__btn {
		width: 100%;
	}

	body.tcm-expertenverzeichnis .tcm-ev-response__char-count {
		text-align: center;
	}

	body.tcm-expertenverzeichnis .tcm-ev-response--has-appointment {
		grid-template-columns: 1fr;
	}

	body.tcm-expertenverzeichnis .tcm-ev-response--has-appointment .tcm-ev-response__card {
		max-width: none;
	}
}

/* ==========================================================================
   30. Review Page
   ========================================================================== */

body.tcm-expertenverzeichnis .tcm-ev-review-page {
	display: grid;
	justify-items: center;
	gap: var(--tcm-spacing-lg);
	max-width: var(--tcm-content-max-width);
	margin: 0 auto;
	min-height: 60vh;
	padding: 0 var(--tcm-spacing-md) var(--tcm-spacing-xl);
	font-family: var(--tcm-font-body);
}

body.tcm-expertenverzeichnis .tcm-ev-review-page__card {
	width: 100%;
	max-width: 560px;
	background: var(--tcm-color-white);
	border: 1px solid var(--tcm-color-border-light);
	border-radius: var(--tcm-radius-md);
	padding: var(--tcm-spacing-xl);
	box-shadow: var(--tcm-shadow-card);
}

/* Error / Success / Already-reviewed states */
body.tcm-expertenverzeichnis .tcm-ev-review-page__error-state,
body.tcm-expertenverzeichnis .tcm-ev-review-page__success-state {
	display: grid;
	justify-items: center;
	text-align: center;
	gap: var(--tcm-spacing-md);
	padding: var(--tcm-spacing-lg) 0;
}

body.tcm-expertenverzeichnis .tcm-ev-review-page__state-icon {
	color: var(--tcm-color-border);
}

body.tcm-expertenverzeichnis .tcm-ev-review-page__state-icon--primary {
	color: var(--tcm-color-primary);
}

body.tcm-expertenverzeichnis .tcm-ev-review-page__state-icon--success {
	color: var(--tcm-color-success);
}

body.tcm-expertenverzeichnis .tcm-ev-review-page__title {
	font-family: var(--tcm-font-heading);
	font-size: var(--tcm-font-size-2xl);
	font-weight: 700;
	color: var(--tcm-color-text-dark);
	margin: 0;
}

body.tcm-expertenverzeichnis .tcm-ev-review-page__text {
	font-size: var(--tcm-font-size-base);
	color: var(--tcm-gray-cool-500);
	line-height: 1.5;
	margin: 0;
}

/* Header with icon */
body.tcm-expertenverzeichnis .tcm-ev-review-page__header {
	display: grid;
	justify-items: center;
	text-align: center;
	gap: var(--tcm-spacing-sm);
	padding-bottom: var(--tcm-spacing-lg);
	border-bottom: 1px solid var(--tcm-color-border-light);
}

/* Form */
body.tcm-expertenverzeichnis .tcm-ev-review-page__form {
	display: grid;
	gap: var(--tcm-spacing-lg);
	padding-top: var(--tcm-spacing-lg);
}

body.tcm-expertenverzeichnis .tcm-ev-review-page__fieldset {
	border: none;
	padding: 0;
	margin: 0;
}

body.tcm-expertenverzeichnis .tcm-ev-review-page__label {
	display: block;
	font-size: var(--tcm-font-size-base);
	font-weight: 600;
	color: var(--tcm-color-text-dark);
	margin-bottom: var(--tcm-spacing-sm);
}

/* Context info */
body.tcm-expertenverzeichnis .tcm-ev-review-page__context {
	display: grid;
	gap: var(--tcm-spacing-sm);
	padding: var(--tcm-spacing-lg) 0;
	border-bottom: 1px solid var(--tcm-color-border-light);
}

body.tcm-expertenverzeichnis .tcm-ev-review-page__context-row {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: var(--tcm-spacing-sm);
	font-size: var(--tcm-font-size-base);
	align-items: baseline;
}

body.tcm-expertenverzeichnis .tcm-ev-review-page__context-label {
	font-weight: 600;
	color: var(--tcm-gray-cool-500);
	white-space: nowrap;
}

body.tcm-expertenverzeichnis .tcm-ev-review-page__context-value {
	color: var(--tcm-color-text-dark);
}

/* PIN form */
body.tcm-expertenverzeichnis .tcm-ev-review-page__pin-form {
	display: grid;
	gap: var(--tcm-spacing-md);
	padding-top: var(--tcm-spacing-lg);
}

body.tcm-expertenverzeichnis .tcm-ev-review-page__pin-input {
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-2xl);
	font-weight: 600;
	letter-spacing: 8px;
	text-align: center;
	color: var(--tcm-color-text-dark);
	background: var(--tcm-color-white);
	border: 1px solid var(--tcm-color-border);
	border-radius: var(--tcm-radius-btn);
	padding: var(--tcm-spacing-md);
	width: 100%;
	transition: border-color 200ms ease;
}

body.tcm-expertenverzeichnis .tcm-ev-review-page__pin-input:focus {
	outline: none;
	border-color: var(--tcm-color-primary);
	box-shadow: 0 0 0 3px rgba(23, 126, 137, 0.15);
}

body.tcm-expertenverzeichnis .tcm-ev-review-page__pin-input::placeholder {
	color: var(--tcm-color-border-light);
	letter-spacing: 12px;
}

body.tcm-expertenverzeichnis .tcm-ev-review-page__hint {
	font-size: var(--tcm-font-size-sm);
	color: var(--tcm-gray-cool-500);
	margin: 0;
}

/* Star rating */
body.tcm-expertenverzeichnis .tcm-ev-review-page__stars {
	display: flex;
	align-items: center;
	gap: var(--tcm-spacing-sm);
	justify-content: center;
	padding: var(--tcm-spacing-sm) 0;
}

body.tcm-expertenverzeichnis .tcm-ev-review-page__star {
	display: flex;
	align-items: center;
	justify-content: center;
	background: none;
	border: none;
	padding: var(--tcm-spacing-xs);
	cursor: pointer;
	color: var(--tcm-color-border-light);
	transition: transform 150ms ease, color 150ms ease;
}

body.tcm-expertenverzeichnis .tcm-ev-review-page__star:hover {
	transform: scale(1.15);
}

body.tcm-expertenverzeichnis .tcm-ev-review-page__star:focus-visible {
	outline: 2px solid var(--tcm-color-primary);
	outline-offset: 2px;
	border-radius: var(--tcm-radius-sm);
}

body.tcm-expertenverzeichnis .tcm-ev-review-page__star--hover {
	color: var(--tcm-color-accent);
}

body.tcm-expertenverzeichnis .tcm-ev-review-page__star--selected {
	color: var(--tcm-color-accent);
}

body.tcm-expertenverzeichnis .tcm-ev-review-page__star--selected svg,
body.tcm-expertenverzeichnis .tcm-ev-review-page__star--hover svg {
	fill: var(--tcm-color-accent);
}

/* Text input */
body.tcm-expertenverzeichnis .tcm-ev-review-page__input {
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-base);
	color: var(--tcm-color-text-dark);
	background: var(--tcm-color-white);
	border: 1px solid var(--tcm-color-border);
	border-radius: var(--tcm-radius-btn);
	padding: 10px 12px;
	width: 100%;
	transition: border-color 200ms ease;
}

body.tcm-expertenverzeichnis .tcm-ev-review-page__input:focus {
	outline: none;
	border-color: var(--tcm-color-primary);
	box-shadow: 0 0 0 3px rgba(23, 126, 137, 0.15);
}

body.tcm-expertenverzeichnis .tcm-ev-review-page__input::placeholder {
	color: var(--tcm-color-border);
}

/* Textarea */
body.tcm-expertenverzeichnis .tcm-ev-review-page__field {
	display: grid;
	gap: 0;
}

body.tcm-expertenverzeichnis .tcm-ev-review-page__textarea {
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-base);
	color: var(--tcm-color-text-dark);
	background: var(--tcm-color-white);
	border: 1px solid var(--tcm-color-border);
	border-radius: var(--tcm-radius-btn);
	padding: 12px;
	width: 100%;
	min-height: 100px;
	resize: vertical;
	transition: border-color 200ms ease;
}

body.tcm-expertenverzeichnis .tcm-ev-review-page__textarea:focus {
	outline: none;
	border-color: var(--tcm-color-primary);
	box-shadow: 0 0 0 3px rgba(23, 126, 137, 0.15);
}

body.tcm-expertenverzeichnis .tcm-ev-review-page__textarea::placeholder {
	color: var(--tcm-color-border);
}

body.tcm-expertenverzeichnis .tcm-ev-review-page__char-count {
	font-size: var(--tcm-font-size-sm);
	color: var(--tcm-gray-cool-400);
	text-align: right;
	margin-top: var(--tcm-spacing-xs);
}

/* Submit button */
body.tcm-expertenverzeichnis .tcm-ev-review-page__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 42px;
	background: var(--tcm-color-primary);
	color: var(--tcm-color-white);
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-base);
	font-weight: 600;
	border: none;
	border-radius: var(--tcm-radius-btn);
	cursor: pointer;
	transition: background-color 200ms ease;
}

body.tcm-expertenverzeichnis .tcm-ev-review-page__btn:hover {
	background: var(--tcm-color-primary-dark);
}

body.tcm-expertenverzeichnis .tcm-ev-review-page__btn:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

/* Status messages */
body.tcm-expertenverzeichnis .tcm-ev-review-page__message {
	font-size: var(--tcm-font-size-sm);
	font-weight: 500;
	padding: var(--tcm-spacing-sm) var(--tcm-spacing-md);
	border-radius: var(--tcm-radius-btn);
	display: none;
}

body.tcm-expertenverzeichnis .tcm-ev-review-page__message--error {
	display: block;
	background: #fef2f2;
	color: var(--tcm-color-error);
	border: 1px solid var(--tcm-color-error);
}

body.tcm-expertenverzeichnis .tcm-ev-review-page__message--success {
	display: block;
	background: #ecfdf5;
	color: var(--tcm-color-success);
	border: 1px solid var(--tcm-color-success);
}

/* Responsive */
@media (max-width: 767px) {
	body.tcm-expertenverzeichnis .tcm-ev-review-page__card {
		padding: var(--tcm-spacing-lg);
	}

	body.tcm-expertenverzeichnis .tcm-ev-review-page__star svg {
		width: 36px;
		height: 36px;
	}
}

/* ==========================================================================
   31. Booking Modal
   ========================================================================== */

/* Overlay */
body.tcm-expertenverzeichnis .tcm-ev-booking-overlay {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.5);
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--tcm-spacing-md);
}

/* Modal */
body.tcm-expertenverzeichnis .tcm-ev-booking-modal {
	position: relative;
	background: var(--tcm-color-white);
	border-radius: 12px;
	max-width: 560px;
	width: 100%;
	max-height: 90vh;
	display: flex;
	flex-direction: column;
	animation: tcm-ev-booking-slide-up 250ms ease;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15);
}

@keyframes tcm-ev-booking-slide-up {
	from {
		opacity: 0;
		transform: translateY(24px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* Header */
body.tcm-expertenverzeichnis .tcm-ev-booking__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 20px 24px;
	border-bottom: 1px solid var(--tcm-color-border-light);
	flex-shrink: 0;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__title {
	font-family: var(--tcm-font-heading);
	font-size: var(--tcm-font-size-xl);
	font-weight: 700;
	margin: 0;
	color: var(--tcm-color-text-dark);
}

body.tcm-expertenverzeichnis .tcm-ev-booking-modal button.tcm-ev-booking__close,
body.tcm-expertenverzeichnis .tcm-ev-booking-modal button.tcm-ev-booking__close:focus,
body.tcm-expertenverzeichnis .tcm-ev-booking-modal button.tcm-ev-booking__close:active {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	min-height: 0;
	padding: 0;
	margin: 0;
	border: 1px solid #ccc;
	background: #f0f0f0;
	border-radius: 50%;
	cursor: pointer;
	color: #333;
	font-size: 22px;
	font-weight: 400;
	line-height: 1;
	text-decoration: none;
	box-shadow: none;
	transition: background 150ms ease;
}

body.tcm-expertenverzeichnis .tcm-ev-booking-modal button.tcm-ev-booking__close:hover {
	background: #ddd;
	color: #000;
}

/* Body */
body.tcm-expertenverzeichnis .tcm-ev-booking__body {
	flex: 1;
	overflow-y: auto;
	padding: 20px 24px;
	position: relative;
}

/* Air Datepicker inside modal — ensure it renders above modal content */
body.tcm-expertenverzeichnis .tcm-ev-booking__body .air-datepicker-global-container,
body.tcm-expertenverzeichnis .tcm-ev-booking__body .air-datepicker {
	z-index: 100000;
}

/* Air Datepicker — bookable vs disabled contrast */
body.tcm-expertenverzeichnis .tcm-ev-booking__body .air-datepicker-cell.-day- {
	font-weight: 700;
	color: var(--tcm-color-text-dark);
}

body.tcm-expertenverzeichnis .tcm-ev-booking__body .air-datepicker-cell.-day-.-disabled- {
	font-weight: 400;
	color: var(--tcm-gray-cool-400, #9ca3af);
}

body.tcm-expertenverzeichnis .tcm-ev-booking__body .air-datepicker-cell.-day-.-other-month- {
	font-weight: 400;
	color: var(--tcm-gray-cool-300, #d1d5db);
}

body.tcm-expertenverzeichnis .tcm-ev-booking__body .air-datepicker-cell.-day-.-selected- {
	background: var(--tcm-color-primary);
	color: var(--tcm-color-white);
	font-weight: 700;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__body .air-datepicker-cell.-day-.-current- {
	color: var(--tcm-color-primary);
}

body.tcm-expertenverzeichnis .tcm-ev-booking__body .air-datepicker-cell.-day-.-focus- {
	background: var(--tcm-color-primary);
	color: var(--tcm-color-white);
}

/* Steps */
body.tcm-expertenverzeichnis .tcm-ev-booking__step {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

/* Practitioner info */
body.tcm-expertenverzeichnis .tcm-ev-booking__practitioner {
	display: flex;
	align-items: center;
	gap: 12px;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__avatar {
	width: 44px;
	height: 44px;
	border-radius: var(--tcm-radius-full);
	object-fit: cover;
	flex-shrink: 0;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__avatar-placeholder {
	width: 44px;
	height: 44px;
	border-radius: var(--tcm-radius-full);
	background: var(--tcm-color-primary-light);
	color: var(--tcm-color-primary);
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 600;
	font-size: var(--tcm-font-size-sm);
	flex-shrink: 0;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__practitioner-name {
	font-weight: 600;
	font-size: var(--tcm-font-size-base);
	color: var(--tcm-color-text-dark);
}

body.tcm-expertenverzeichnis .tcm-ev-booking__practitioner-role {
	font-size: var(--tcm-font-size-sm);
	color: var(--tcm-gray-cool-500);
}

body.tcm-expertenverzeichnis .tcm-ev-booking__practitioner-address {
	font-size: var(--tcm-font-size-sm);
	color: var(--tcm-gray-cool-500);
}

/* Section dividers */
body.tcm-expertenverzeichnis .tcm-ev-booking__divider {
	height: 1px;
	background: #e5e7eb;
}

/* Sections */
body.tcm-expertenverzeichnis .tcm-ev-booking__section {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__label {
	font-weight: 600;
	font-size: var(--tcm-font-size-sm);
	color: var(--tcm-color-text-dark);
	margin-bottom: 0;
}

/* Date input */
body.tcm-expertenverzeichnis .tcm-ev-booking__date-row {
	display: flex;
	gap: var(--tcm-spacing-sm);
}

body.tcm-expertenverzeichnis .tcm-ev-booking__date-input-wrap {
	position: relative;
	flex: 1;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__date-input {
	width: 100%;
	padding: 10px 40px 10px 12px;
	margin-bottom: 0;
	border: 1px solid var(--tcm-color-border-light);
	border-radius: 6px;
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-sm);
	color: var(--tcm-color-text-dark);
	background: var(--tcm-color-white);
	cursor: pointer;
	box-sizing: border-box;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__date-input:focus {
	outline: none;
	border-color: var(--tcm-color-primary);
	box-shadow: 0 0 0 3px rgba(23, 126, 137, 0.1);
}

body.tcm-expertenverzeichnis .tcm-ev-booking__date-icon {
	position: absolute;
	right: 12px;
	top: 50%;
	transform: translateY(-50%);
	color: var(--tcm-gray-cool-400);
	pointer-events: none;
}

/* "Verfügbare Tage:" hint */
body.tcm-expertenverzeichnis .tcm-ev-booking__day-hint {
	display: block;
	font-size: 12px;
	font-weight: 500;
	color: var(--tcm-gray-cool-500, #6b7280);
	font-family: var(--tcm-font-body);
}

/* Week navigation */
body.tcm-expertenverzeichnis .tcm-ev-booking__week-nav {
	display: flex;
	align-items: stretch;
	gap: 4px;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__week-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	margin-bottom: 0;
	border: 1px solid #d1d5db;
	border-radius: var(--tcm-radius-md, 8px);
	background: var(--tcm-color-white);
	cursor: pointer;
	color: var(--tcm-gray-cool-500);
	font-size: 12px;
	flex-shrink: 0;
	transition: border-color 150ms ease, color 150ms ease;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__week-btn:hover:not(:disabled) {
	border-color: var(--tcm-color-primary);
	color: var(--tcm-color-primary);
}

body.tcm-expertenverzeichnis .tcm-ev-booking__week-btn:disabled {
	opacity: 0.4;
	cursor: not-allowed;
}

/* Day chips */
body.tcm-expertenverzeichnis .tcm-ev-booking__day-chips {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 4px;
	flex: 1;
	min-width: 0;
	overflow: hidden;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__day-chip {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	height: 56px;
	gap: 2px;
	margin: 0 2px 0 0;
	border: 1px solid #d1d5db;
	border-radius: var(--tcm-radius-md, 8px);
	background: var(--tcm-color-white);
	color: var(--tcm-color-text-dark);
	cursor: pointer;
	transition: border-color 150ms ease, background 150ms ease, color 150ms ease;
	font-family: var(--tcm-font-body);
}

body.tcm-expertenverzeichnis .tcm-ev-booking__day-chip:hover:not(:disabled):not(.tcm-ev-booking__day-chip--active) {
	border-color: var(--tcm-color-primary);
}

/* Selected day */
body.tcm-expertenverzeichnis .tcm-ev-booking__day-chip--active {
	background: var(--tcm-color-primary);
	border-color: var(--tcm-color-primary);
	color: var(--tcm-color-white);
}

/* Disabled / past / no slots */
body.tcm-expertenverzeichnis .tcm-ev-booking__day-chip:disabled {
	background: var(--tcm-color-white);
	border-color: #d1d5db;
	color: #9ca3af;
	cursor: not-allowed;
	opacity: 1;
}

/* Closed days (Sa/So) — even more muted */
body.tcm-expertenverzeichnis .tcm-ev-booking__day-chip--closed:disabled {
	background: #f9fafb;
	border-color: #e5e7eb;
	color: #d1d5db;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__day-chip-weekday {
	font-size: 11px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	line-height: 1;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__day-chip-date {
	font-size: 18px;
	font-weight: 600;
	line-height: 1;
}

/* Time slots */
body.tcm-expertenverzeichnis .tcm-ev-booking__time-group {
	margin-bottom: var(--tcm-spacing-sm);
}

body.tcm-expertenverzeichnis .tcm-ev-booking__time-group-label {
	font-size: var(--tcm-font-size-sm);
	color: var(--tcm-gray-cool-500);
	margin-bottom: 6px;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__time-slots {
	display: flex;
	flex-wrap: wrap;
	gap: var(--tcm-spacing-sm);
}

body.tcm-expertenverzeichnis .tcm-ev-booking__time-slots button,
body.tcm-expertenverzeichnis .tcm-ev-booking__chips button {
	margin-bottom: 0;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__time-slot {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	height: 36px;
	width: 80px;
	border: 1px solid #d1d5db;
	border-radius: var(--tcm-radius-md, 8px);
	background: var(--tcm-color-white);
	cursor: pointer;
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-sm);
	font-weight: 500;
	color: var(--tcm-color-text-dark);
	transition: border-color 150ms ease, background 150ms ease, color 150ms ease;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__time-slot:hover:not(.tcm-ev-booking__time-slot--active) {
	border-color: var(--tcm-color-primary);
}

body.tcm-expertenverzeichnis .tcm-ev-booking__time-slot--active {
	background: var(--tcm-color-primary);
	border-color: var(--tcm-color-primary);
	color: var(--tcm-color-white);
	font-weight: 600;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__time-slot--active svg {
	width: 14px;
	height: 14px;
	stroke: var(--tcm-color-white);
	flex-shrink: 0;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__duration {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: var(--tcm-font-size-sm);
	color: var(--tcm-gray-cool-500);
	margin-top: var(--tcm-spacing-xs);
}

/* Service chips */
body.tcm-expertenverzeichnis .tcm-ev-booking__chips {
	display: flex;
	flex-wrap: wrap;
	gap: var(--tcm-spacing-sm);
}

body.tcm-expertenverzeichnis .tcm-ev-booking__chip {
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 0 14px;
	border: 1px solid #abb8c3;
	border-radius: 16px;
	background: var(--tcm-color-white);
	cursor: pointer;
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-sm);
	font-weight: 500;
	color: #abb8c3;
	transition: border-color 150ms ease, background 150ms ease, color 150ms ease;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__chip:hover:not(.tcm-ev-booking__chip--active) {
	border-color: var(--tcm-color-primary);
	color: var(--tcm-color-text-dark);
}

body.tcm-expertenverzeichnis .tcm-ev-booking__chip--active {
	background: #E8F5F6;
	border: 1px solid transparent;
	color: var(--tcm-color-primary);
	font-weight: 600;
}

/* Form fields */
body.tcm-expertenverzeichnis .tcm-ev-booking__form-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__field {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__field-label {
	font-size: var(--tcm-font-size-sm);
	font-weight: 600;
	color: #6b7280;
	font-family: var(--tcm-font-body);
}

body.tcm-expertenverzeichnis .tcm-ev-booking__input {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid var(--tcm-color-border-light);
	border-radius: 6px;
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-sm);
	color: var(--tcm-color-text-dark);
	background: var(--tcm-color-white);
	box-sizing: border-box;
	transition: border-color 150ms ease;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__input:focus {
	outline: none;
	border-color: var(--tcm-color-primary);
	box-shadow: 0 0 0 3px rgba(23, 126, 137, 0.1);
}

body.tcm-expertenverzeichnis .tcm-ev-booking__input::placeholder {
	color: var(--tcm-gray-cool-400);
}

body.tcm-expertenverzeichnis .tcm-ev-booking__textarea {
	resize: vertical;
	min-height: 72px;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__checkbox-wrap {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__checkbox-wrap label {
	margin-bottom: 0;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__checkbox-label {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: var(--tcm-font-size-sm);
	color: var(--tcm-color-text-dark);
	cursor: pointer;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__checkbox-label span {
	margin-top: -2px;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__checkbox-label input[type="checkbox"] {
	appearance: none;
	width: 18px;
	height: 18px;
	margin: 0;
	border: 2px solid #d1d5db;
	border-radius: 4px;
	background: var(--tcm-color-white);
	cursor: pointer;
	flex-shrink: 0;
	position: relative;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__checkbox-label input[type="checkbox"]:checked {
	background: var(--tcm-color-primary);
	border-color: var(--tcm-color-primary);
}

body.tcm-expertenverzeichnis .tcm-ev-booking__checkbox-label input[type="checkbox"]:checked::after {
	content: '';
	position: absolute;
	left: 4px;
	top: 1px;
	width: 6px;
	height: 10px;
	border: solid var(--tcm-color-white);
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}

body.tcm-expertenverzeichnis .tcm-ev-booking__checkbox-hint {
	font-size: 12px;
	color: #6b7280;
}

/* Info box */
body.tcm-expertenverzeichnis .tcm-ev-booking__info {
	display: flex;
	gap: 12px;
	padding: 12px 14px;
	background: #FEF9C3;
	border-radius: var(--tcm-radius-md);
	font-size: 13px;
	font-weight: 500;
	color: #92400E;
	line-height: 1.4;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__info svg {
	flex-shrink: 0;
	margin-top: 1px;
}

/* Error / success messages — placed between header and scrollable body */
body.tcm-expertenverzeichnis .tcm-ev-booking__message {
	display: none;
	padding: 10px 14px;
	margin: 0 24px;
	border-radius: 6px;
	font-size: var(--tcm-font-size-sm);
	line-height: 1.4;
	flex-shrink: 0;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__message--error,
body.tcm-expertenverzeichnis .tcm-ev-booking__message--success {
	display: block;
	margin-top: 12px;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__message--error {
	background: #fef2f2;
	color: var(--tcm-color-error);
	border: 1px solid var(--tcm-color-error);
}

body.tcm-expertenverzeichnis .tcm-ev-booking__message--success {
	background: #ecfdf5;
	color: var(--tcm-color-success);
	border: 1px solid var(--tcm-color-success);
}

/* Footer */
body.tcm-expertenverzeichnis .tcm-ev-booking__footer {
	display: flex;
	justify-content: flex-end;
	padding: 16px 24px;
	border-top: 1px solid var(--tcm-color-border-light);
	flex-shrink: 0;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__footer-step {
	display: flex;
	gap: 12px;
	width: 100%;
	justify-content: flex-end;
}

/* Buttons */
body.tcm-expertenverzeichnis .tcm-ev-booking__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--tcm-spacing-sm);
	padding: 5px 20px;
	border: none;
	border-radius: 6px;
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-sm);
	font-weight: 600;
	cursor: pointer;
	transition: background 150ms ease, opacity 150ms ease;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__btn:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__btn--primary {
	background: var(--tcm-color-primary);
	color: var(--tcm-color-white);
}

body.tcm-expertenverzeichnis .tcm-ev-booking__btn--primary:hover:not(:disabled) {
	background: var(--tcm-color-primary-dark);
}

body.tcm-expertenverzeichnis .tcm-ev-booking__btn--secondary {
	background: var(--tcm-color-white);
	color: #6b7280;
	border: 1px solid #d1d5db;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__btn--secondary:hover:not(:disabled) {
	background: var(--tcm-gray-cool-200);
}

/* ── Step 2: PIN ── */

/* PIN confirmation — unified with inquiry-response layout (single input) */
body.tcm-expertenverzeichnis .tcm-ev-booking__pin-header {
	display: grid;
	justify-items: center;
	text-align: center;
	gap: var(--tcm-spacing-sm);
	padding: var(--tcm-spacing-lg) 0;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__pin-icon {
	color: var(--tcm-color-primary);
}

body.tcm-expertenverzeichnis .tcm-ev-booking__pin-title {
	font-family: var(--tcm-font-heading);
	font-size: var(--tcm-font-size-2xl);
	font-weight: 700;
	margin: 0;
	color: var(--tcm-color-text-dark);
}

body.tcm-expertenverzeichnis .tcm-ev-booking__pin-text {
	font-size: var(--tcm-font-size-base);
	color: var(--tcm-gray-cool-500);
	line-height: 1.5;
	margin: 0;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__pin-form {
	display: grid;
	gap: var(--tcm-spacing-md);
	padding-top: var(--tcm-spacing-lg);
}

body.tcm-expertenverzeichnis .tcm-ev-booking__pin-label {
	font-size: var(--tcm-font-size-base);
	font-weight: 600;
	color: var(--tcm-color-text-dark);
}

body.tcm-expertenverzeichnis .tcm-ev-booking__pin-input {
	font-family: var(--tcm-font-body);
	font-size: var(--tcm-font-size-2xl);
	font-weight: 600;
	letter-spacing: 8px;
	text-align: center;
	color: var(--tcm-color-text-dark);
	background: var(--tcm-color-white);
	border: 1px solid var(--tcm-color-border);
	border-radius: var(--tcm-radius-btn);
	padding: var(--tcm-spacing-md);
	width: 100%;
	transition: border-color 200ms ease;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__pin-input:focus {
	outline: none;
	border-color: var(--tcm-color-primary);
	box-shadow: 0 0 0 3px rgba(23, 126, 137, 0.15);
}

body.tcm-expertenverzeichnis .tcm-ev-booking__pin-input::placeholder {
	color: var(--tcm-color-border-light);
	letter-spacing: 12px;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__pin-hint {
	font-size: var(--tcm-font-size-sm);
	color: var(--tcm-gray-cool-500);
	margin: 0;
}

/* ── Step 3: Success ── */

body.tcm-expertenverzeichnis .tcm-ev-booking__success {
	text-align: center;
	padding: var(--tcm-spacing-xl) 0;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__success-icon {
	margin-bottom: var(--tcm-spacing-md);
}

body.tcm-expertenverzeichnis .tcm-ev-booking__success-title {
	font-family: var(--tcm-font-heading);
	font-size: var(--tcm-font-size-2xl);
	font-weight: 700;
	margin: 0 0 var(--tcm-spacing-md);
	color: var(--tcm-color-text-dark);
}

body.tcm-expertenverzeichnis .tcm-ev-booking__success-details {
	font-size: var(--tcm-font-size-sm);
	color: var(--tcm-color-text-dark);
	line-height: 1.6;
	margin-bottom: var(--tcm-spacing-md);
}

body.tcm-expertenverzeichnis .tcm-ev-booking__success-hint {
	font-size: var(--tcm-font-size-sm);
	color: var(--tcm-gray-cool-500);
	margin: 0;
}

/* Loading overlay */
body.tcm-expertenverzeichnis .tcm-ev-booking__loading {
	position: absolute;
	inset: 0;
	background: rgba(255, 255, 255, 0.8);
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 12px;
	z-index: 10;
}

body.tcm-expertenverzeichnis .tcm-ev-booking__spinner {
	width: 36px;
	height: 36px;
	border: 3px solid var(--tcm-color-border-light);
	border-top-color: var(--tcm-color-primary);
	border-radius: var(--tcm-radius-full);
	animation: tcm-ev-booking-spin 600ms linear infinite;
}

@keyframes tcm-ev-booking-spin {
	to { transform: rotate(360deg); }
}

/* ── Responsive (mobile) ── */
@media (max-width: 767px) {
	body.tcm-expertenverzeichnis .tcm-ev-booking-overlay {
		padding: 0;
		align-items: stretch;
	}

	body.tcm-expertenverzeichnis .tcm-ev-booking-modal {
		max-width: none;
		max-height: none;
		height: 100%;
		border-radius: 0;
		animation: none;
	}

	body.tcm-expertenverzeichnis .tcm-ev-booking__form-row {
		grid-template-columns: 1fr;
	}

	body.tcm-expertenverzeichnis .tcm-ev-booking__day-chips {
		gap: var(--tcm-spacing-xs);
	}

	body.tcm-expertenverzeichnis .tcm-ev-booking__day-chip {
		height: 48px;
	}

	body.tcm-expertenverzeichnis .tcm-ev-booking__day-chip-date {
		font-size: var(--tcm-font-size-base);
	}
}

/* ==========================================================================
   Theme Override — Header spacing on plugin pages
   ========================================================================== */

body.tcm-expertenverzeichnis header.header {
	margin-bottom: var(--tcm-spacing-lg);
}
