/*
Theme Name: Praxis RedeZeit
Theme URI: https://www.praxis-redezeit.de
Author: cavano
Author URI: https://www.cavano.de
Description: Praxis RedeZeit – Dr. Heike Lau & Kolleginnen
Requires at least: WordPress 5.8
Version: 2.0
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: redezeit
*/

/* COLORS */

:root {
	--color-text: #4f4f4f;
	--color-headline: #219f96;
	--color-primary: #219f96;
	--color-primary-hover: #197e79;
	--color-primary-active: #197e79;
	--color-white: #fff;
	--color-white-hover: rgba(255, 255, 255, 0.75);
	--color-gray: #2e2d2d;
	--color-line: #8f959f;
	--color-light: #fdfcf2;
	--color-bg: #fdfcf2;
	--color-focus-shadow: rgba(33, 159, 150, 0.5);
	--box-shadow: 0 15px 35px rgba(50, 50, 93, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07);
	--transition: color 0.25s ease-in-out, background-color 0.25s ease-in-out, border-color 0.25s ease-in-out, text-decoration-color 0.25s ease-in-out, text-underline-offset 0.25s ease-in-out, opacity 0.25s ease-in-out, transform 0.25s ease-in-out;
	--font-primary: "Roboto", sans-serif;
}

:target {
	padding-top: 84px;
	margin-top: -84px;
}

/* BASIC */

* {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

html {
	position: relative;
	font-size: 16px;
	overflow-x: hidden;
}

@media (min-width: 992px) {
	html {
		font-size: 16px;
	}
}

@media (min-width: 1200px) {
	html {
		font-size: 18px;
	}
}

:is(body.page, body.single, body.error404) {
	background-color: var(--color-bg);
	font-family: var(--font-primary);
	color: var(--color-text);
	font-weight: normal;
	overflow-x: hidden;
}

:is(.page, .single, .error404) :is(b, strong) {
	font-weight: bold;
}

:is(.page, .single, .error404) :is(h1, .h1) {
	font-size: 2.25rem;
	font-weight: 700;
	margin-bottom: 1.5rem;
	color: var(--color-headline);
	text-wrap: balance;
	hyphens: auto;
	hyphenate-limit-chars: 7 7 7;
}

@media (min-width: 992px) {
	:is(.page, .single, .error404) :is(h1, .h1) {
		font-size: 3rem;
	}
}

@media (min-width: 1200px) {
	:is(.page, .single, .error404) :is(h1, .h1) {
		font-size: 4rem;
	}
}

:is(.page, .single) h2 {
	font-size: 1.75rem;
	font-weight: bold;
	color: var(--color-headline);
	margin-bottom: 1.5rem;
}

@media (min-width: 992px) {
	:is(.page, .single) h2 {
		font-size: 2.25rem;
	}
}

@media (min-width: 1200px) {
	:is(.page, .single) h2 {
		font-size: 2.5rem;
	}
}

:is(.page, .single) h3 {
	font-size: 1.35rem;
	font-weight: bold;
	margin-bottom: 1rem;
	color: var(--color-headline);
}

@media (min-width: 992px) {
	:is(.page, .single) h3 {
		font-size: 1.5rem;
	}
}

@media (min-width: 1200px) {
	:is(.page, .single) h3 {
		font-size: 1.75rem;
	}
}

:is(.page, .single) h4 {
	font-size: 1.25rem;
	font-weight: bold;
	margin-bottom: 1rem;
	color: var(--color-headline);
}

:is(.page, .single) h5 {
	font-size: 1.15rem;
	font-weight: bold;
	margin-bottom: 1rem;
	color: var(--color-headline);
}

:is(.page, .single) h6 {
	font-size: 1.1rem;
	font-weight: bold;
	margin-bottom: 1rem;
	color: var(--color-headline);
}

:is(.page, .single) .entry-content .col > h2.wp-block-heading:not(:first-child) {
	margin-top: 2rem;
}

:is(.page, .single) .entry-content .col > h3.wp-block-heading:not(:first-child) {
	margin-top: 1rem;
}

:is(.page, .single) .small {
	font-size: 0.8888rem;
}

:is(.page, .error404, .single) a {
	color: var(--color-text);
	text-decoration: none;
	transition: var(--transition);
}

:is(.page, .error404, .single) a:is(:hover, :active, :focus) {
	color: var(--color-primary);
}

a:focus {
	outline: none;
	box-shadow: none;
}

a:focus-visible {
	outline: none;
	box-shadow: 0 0 0 3px var(--color-focus-shadow);
}

article .entry-content a {
	color: var(--color-text);
	transition: var(--transition);
}

article .entry-content a:is(:hover, :active, :focus) {
	color: var(--color-text);
	text-decoration: none;
}

/* Utilities */

.mb-6 {
	margin-bottom: 4rem !important;
}
.mb-7 {
	margin-bottom: 5rem !important;
}
.mb-8 {
	margin-bottom: 6rem !important;
}
.mb-9 {
	margin-bottom: 8rem !important;
}
.mb-10 {
	margin-bottom: 10rem !important;
}

.mt-6 {
	margin-top: 4rem !important;
}
.mt-7 {
	margin-top: 5rem !important;
}
.mt-8 {
	margin-top: 6rem !important;
}
.mt-9 {
	margin-top: 8rem !important;
}
.mt-10 {
	margin-top: 10rem !important;
}

.mb--1 {
	margin-bottom: -0.25rem !important;
}
.mb--2 {
	margin-bottom: -0.5rem !important;
}
.mb--3 {
	margin-bottom: -1rem !important;
}
.mb--4 {
	margin-bottom: -1.5rem !important;
}
.mb--5 {
	margin-bottom: -3rem !important;
}

.mt--1 {
	margin-top: -0.25rem !important;
}
.mt--2 {
	margin-top: -0.5rem !important;
}
.mt--3 {
	margin-top: -1rem !important;
}
.mt--4 {
	margin-top: -1.5rem !important;
}
.mt--5 {
	margin-top: -3rem !important;
}

.maxw-200 {
	max-width: 200px !important;
}
.maxw-250 {
	max-width: 250px !important;
}
.maxw-300 {
	max-width: 300px !important;
}
.maxw-xxs {
	max-width: 360px !important;
}
.maxw-xs {
	max-width: 480px !important;
}

.maxw-sm {
	max-width: 576px !important;
}
@media (min-width: 576px) {
	.maxw-sm {
		max-width: 576px !important;
	}
}

.maxw-md {
	max-width: 768px !important;
}
@media (min-width: 768px) {
	.maxw-md {
		max-width: 768px !important;
	}
}

.maxw-lg {
	max-width: 992px !important;
}
@media (min-width: 992px) {
	.maxw-lg {
		max-width: 992px !important;
	}
}

.maxw-xl {
	max-width: 1200px !important;
}
@media (min-width: 1200px) {
	.maxw-xl {
		max-width: 1200px !important;
	}
}

.maxw-50p {
	max-width: 50% !important;
}
.maxw-66p {
	max-width: 66.6666% !important;
}

.img-nomargin figure {
	margin-bottom: 0 !important;
}

@media (min-width: 992px) {
	.p-lg-7 {
		padding: 5rem !important;
	}
}

/* BUTTONS */

:is(.page, .single, .error404) .wp-block-button__link,
.page .wpcf7-form-control.wpcf7-submit,
.page .btn-primary,
.page .ym-form input[type="submit"].btn-primary {
	display: block;
	background-color: var(--color-primary);
	background-image: none !important;
	box-shadow: none !important;
	border-radius: 0;
	border: 2px solid var(--color-primary);
	padding: 0.6666rem 1.35rem;
	color: var(--color-white);
	font-family: var(--font-primary);
	font-size: 1rem;
	font-weight: bold;
	word-break: normal;
	white-space: nowrap;
	transition: var(--transition);
}

:is(.page, .single, .error404) .wp-block-button__link:is(:hover, :focus, :active),
.page .wpcf7-form-control.wpcf7-submit:is(:hover, :focus, :active),
.page .btn-primary:is(:hover, :focus, :active) {
	background-color: var(--color-white) !important;
	color: var(--color-primary);
	text-decoration: none;
	cursor: pointer;
	outline: 0;
	box-shadow: none !important;
}

:is(.page, .single, .error404) .wp-block-button.is-style-outline .wp-block-button__link {
	background-color: transparent;
	color: var(--color-white);
	border: 2px solid var(--color-white);
}

:is(.page, .single) .wp-block-button.is-style-outline .wp-block-button__link:is(:hover, :focus, :active) {
	background-color: var(--color-white) !important;
	color: var(--color-primary);
}

.page .btn-primary:is(.disabled, :disabled),
.page .wp-block-button__link:is(.disabled, :disabled),
.page .wpcf7 .wpcf7-submit:disabled {
	background-color: #f8f8f8 !important;
	border-color: #f8f8f8 !important;
	color: #9298a2 !important;
}

.page .btn-primary:is(.disabled, :disabled):hover,
.page .wp-block-button__link:is(.disabled, :disabled):hover,
.page .wpcf7 .wpcf7-submit:disabled:hover {
	cursor: not-allowed !important;
}

/* Button Focus - remove shadow on click, keep high vis on keyboard (Blue Shadow) */
.page .btn-primary:is(:focus, :focus-within),
:is(.page, .single) .wp-block-button__link:is(:focus, :focus-within),
.page .wpcf7-form-control.wpcf7-submit:is(:focus, :focus-within) {
	box-shadow: none !important;
}

.page .btn-primary:focus-visible,
:is(.page, .single) .wp-block-button__link:focus-visible,
.page .wpcf7-form-control.wpcf7-submit:focus-visible {
	box-shadow: 0 0 0 3px var(--color-focus-shadow) !important;
	outline: none;
}

:is(.page, .single) ul li:not(.blocks-gallery-item):not(.ausflug-loop-item):not(.menu-item):not(:last-child) {
	margin-bottom: 0.5rem;
}

.page ul li ul {
	margin-top: 0.5rem;
}

:is(.page, .single) hr {
	border-top: 1px solid var(--color-line);
	border-bottom: 0;
	margin-top: 3rem;
	margin-bottom: 3rem;
}

/* BOOTSTRAPIFY */

.wp-block-columns:not(:last-child),
.wp-bootstrap-blocks-row.row {
	margin-bottom: 2rem;
}

@media (min-width: 992px) {
	.wp-block-columns:not(:last-child),
	.wp-bootstrap-blocks-row.row {
		margin-bottom: 3rem;
	}
}

.wp-bootstrap-blocks-row [class*="col-"] > *:last-child {
	margin-bottom: 0;
}

.wp-block-cover {
	height: 100%;
}

.wp-block-cover img {
	height: 100%;
	max-width: 100%;
	object-fit: cover;
	aspect-ratio: 3 / 2;
}

.object-position-top img {
	object-position: center top;
}

.object-position-bottom img {
	object-position: center bottom;
}

@media (min-width: 600px) and (max-width: 781.98px) {
	.wp-block-columns .wp-block-column:not(:nth-last-child(-n + 2)) {
		margin-bottom: 2rem;
	}
}

@media (min-width: 600px) and (max-width: 991.98px) {
	.wp-block-columns {
		flex-wrap: wrap;
	}
}

@media (max-width: 599.98px) {
	.wp-block-columns:not(:last-child) {
		margin-bottom: 0;
	}

	.wp-block-columns .wp-block-column {
		margin-bottom: 3rem;
	}
}

@media (max-width: 767.98px) {
	.wp-bootstrap-blocks-row.row > div:not(.col-sm-6):not(:last-child) {
		margin-bottom: 3rem;
	}
}

/* NAVIGATION */

.header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 9999;
	max-width: 100vw;
	/* height: 70px; */
	background-color: var(--color-bg);
	transition: height 0.25s ease-in-out;
}

@media (min-width: 1200px) {
	.header {
		/* height: 80px; */
	}
}

@media (min-width: 1400px) {
	.header {
		/* height: 91px; */
	}
}

.header .navbar-light {
	background-color: transparent;
	transition:
		padding 0.25s ease-in-out,
		height 0.25s ease-in-out;
	position: relative;
}

@media (min-width: 576px) and (max-width: 1199.98px) {
	.header .navbar.navbar-light .container-nav {
		padding-left: 15px;
		padding-right: 15px;
	}
}

@media (min-width: 1400px) {
	.header .navbar-light {
		padding: 1rem 0;
	}
}

@media (max-width: 767.98px) {
	.header .navbar-light {
		padding: 0.75rem 1rem;
	}
}

.header .navbar-brand {
	display: block;
	padding: 0;
}

.header .navbar-brand:focus-visible {
	outline: none;
	box-shadow: 0 0 0 3px var(--color-focus-shadow);
}

.header .navbar-brand img,
body.scrolled .header .navbar-brand img {
	width: 264px;
	height: 120px;
	transition:
		width 0.25s ease-in-out,
		height 0.25s ease-in-out;
}

@media (min-width: 1200px) {
	.header .navbar-brand img,
	body.scrolled .header .navbar-brand img {
		width: 279px;
		height: 38px;
	}
}

@media (min-width: 1400px) {
	.header .navbar-brand img,
	body.scrolled .header .navbar-brand img {
		width: 301px;
		height: 41px;
	}
}

.navbar .navbar-nav.nav-main .nav-link {
	position: relative;
	color: var(--color-text);
	font-family: var(--font-primary);
	font-size: 1rem;
	font-weight: 400;
	transition: color 0.25s ease-in-out;
}

.navbar .navbar-nav.nav-main .nav-link:is(:hover, :focus, :active) {
	color: var(--color-primary-hover);
}

.navbar .navbar-nav.nav-main :is(.current-page-ancestor, .current-menu-ancestor, .current-menu-item) .nav-link {
	color: var(--color-primary-active);
	font-weight: 700;
}

@media (min-width: 768px) {
	.navbar .navbar-nav.nav-main .nav-link {
		padding: 0.5rem 1rem;
	}
}

@media (min-width: 992px) {
	.navbar .navbar-nav.nav-main .menu-item:not(:last-child) .nav-link:after {
		content: "|";
		position: absolute;
		right: -2px;
		color: var(--color-text);
		font-size: 1rem;
		font-weight: 400;
	}

	.navbar .navbar-nav.nav-main .menu-item:last-child .nav-link {
		padding-right: 0;
	}
}

.navbar .navbar-nav.nav-main .nav-link:focus-visible {
	outline: none;
	box-shadow: 0 0 0 3px var(--color-focus-shadow);
}

.header .navbar-light .navbar-toggler {
	border: 0;
	border-radius: 0;
	padding: 0;
	font-size: 1.5rem;
}

.header .navbar-light .navbar-toggler-icon {
	background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'><path stroke='%23219F96' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>");
}

.header .navbar-light .navbar-toggler:hover {
	cursor: pointer;
}

/* Mouse focus suppressed, keyboard focus visible */
.header .navbar-light .navbar-toggler:focus,
.header .navbar-light .navbar-toggler:focus-within,
.offcanvas-header .btn-close:focus,
.offcanvas-header .btn-close:focus-within {
	outline: none;
	box-shadow: none !important;
}

.header .navbar-light .navbar-toggler:focus-visible,
.offcanvas-header .btn-close:focus-visible {
	outline: none;
	box-shadow: 0 0 0 3px var(--color-focus-shadow) !important;
}

.header .navbar-light .navbar-nav :is(.active, .show) > .nav-link {
	color: var(--color-text);
}

@media (min-width: 1200px) {
	.header .navbar-light .offcanvas-body {
		position: relative;
		top: -2px;
	}
}

@media (min-width: 1400px) {
	.header .navbar-light .offcanvas-body {
		top: 2px;
	}
}

@media (max-width: 1399.98px) {
	.offcanvas-header .btn-close {
		font-size: 1.25rem;
		margin: 0 !important;
		border-radius: 0;
		opacity: 1;
		transition: var(--transition);
	}
}

/* COVER */

:is(.page, .single) .wp-block-cover {
	position: relative;
	height: 250px;
	margin: 0 auto;
	min-height: auto;
}

:is(.page, .single) .wp-block-cover img {
	object-position: center center;
	object-fit: cover;
	width: 100%;
	height: 250px;
}

.page.home .wp-block-cover:first-child,
.page.home .wp-block-cover:first-child img {
	height: 500px;
}

@media (min-width: 480px) {
	:is(.page, .single) .wp-block-cover,
	:is(.page, .single) .wp-block-cover img {
		height: 300px;
	}
}

@media (min-width: 576px) {
	:is(.page, .single) .wp-block-cover,
	:is(.page, .single) .wp-block-cover img {
		height: 350px;
	}
	.page.home .wp-block-cover:first-child,
	.page.home .wp-block-cover:first-child img {
		height: 525px;
	}
}

@media (min-width: 768px) {
	:is(.page, .single) .wp-block-cover,
	:is(.page, .single) .wp-block-cover img {
		height: 400px;
	}
	.page.home .wp-block-cover:first-child,
	.page.home .wp-block-cover:first-child img {
		height: 550px;
	}
}

@media (min-width: 992px) {
	:is(.page, .single) .wp-block-cover,
	:is(.page, .single) .wp-block-cover img {
		height: 450px;
	}
	.page.home .wp-block-cover:first-child,
	.page.home .wp-block-cover:first-child img {
		height: 600px;
	}
}

@media (min-width: 1200px) {
	:is(.page, .single) .wp-block-cover,
	:is(.page, .single) .wp-block-cover img {
		height: 500px;
	}
	.page.home .wp-block-cover:first-child,
	.page.home .wp-block-cover:first-child img {
		height: 700px;
	}
}

@media (min-width: 1400px) {
	:is(.page, .single) .wp-block-cover,
	:is(.page, .single) .wp-block-cover img {
		height: 600px;
	}
	.page.home .wp-block-cover:first-child,
	.page.home .wp-block-cover:first-child img {
		height: 800px;
	}
}

.wp-block-cover .wp-block-cover__inner-container,
.wp-block-cover-image .wp-block-cover__inner-container {
	position: absolute;
	width: 100%;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
}

/* COVERTEXT */

.covertext .lazyblock-inner-blocks * {
	color: var(--color-white);
}

.covertext .lazyblock-inner-blocks > *:last-child {
	margin-bottom: 0;
}

@media (min-width: 576px) {
	.covertext .lazyblock-inner-blocks p {
		font-size: 1.25rem;
	}
}

@media (min-width: 768px) {
	.covertext .lazyblock-inner-blocks h1.wp-block-heading {
		max-width: 50%;
	}
}

/* CONTENT */

:is(.page, .single) .site-main {
	margin-top: 70px;
}

@media (min-width: 1200px) {
	:is(.page, .single) .site-main {
		margin-top: 80px;
	}
}

@media (min-width: 1400px) {
	:is(.page, .single) .site-main {
		margin-top: 91px;
	}
}

.wp-block-image img {
	max-width: 100%;
	height: auto;
}

.wp-block-image.size-full img {
	width: 100%;
}

.w-shadow {
	-webkit-box-shadow: 0 0 24px 0 rgba(185, 185, 185, 0.25);
	box-shadow: 0 0 24px 0 rgba(185, 185, 185, 0.25);
}

.has-text-align-center {
	text-align: center;
}

.wp-block-buttons .wp-block-button:first-child {
	margin-left: 0;
}

.wp-block-media-text .wp-block-media-text__content {
	padding: 0;
}

:is(.page, .single) .entry-content .wp-block-lazyblock-container:first-child .container > .row > .col {
	padding-top: 0 !important;
}

:is(.page, .single) .entry-content p a {
	color: var(--color-primary);
	text-underline-offset: 3px;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-decoration-color: transparent;
	transition: var(--transition);
}

:is(.page, .single) .entry-content p a:hover {
	color: var(--color-primary);
	text-decoration-color: var(--color-primary);
}

:is(.page, .single) .wp-block-image a {
	width: 100%;
	height: auto;
}

:is(.page, .single) .has-large-font-size {
	font-size: 1.25rem !important;
}

@media (min-width: 1200px) {
	:is(.page, .single) .has-large-font-size {
		font-size: 1.7rem !important;
	}
}

:is(.page, .single) .wp-block-buttons {
	margin-bottom: 1rem;
}

:is(.page, .single) .wp-block-buttons.is-layout-flex {
	gap: 0.75rem;
}

@media (max-width: 479.98px) {
	.wp-block-buttons .wp-block-button,
	.page .wpcf7 .wpcf7-submit {
		width: 100%;
		text-align: center;
	}
}

figure.aligncenter {
	text-align: center;
}

.embed-privacy-overlay {
	min-height: 450px !important;
}

.embed-google-maps .screen-reader-text {
	display: none !important;
}

body:not(.home) .site-main {
	padding-top: 1.5rem;
}

/* SECTIONS */

:is(.page, .single) .has-color-text-background-color {
	background-color: var(--color-text);
}

:is(.page, .single) .has-color-primary-background-color,
.section-primary {
	background-color: var(--color-primary);
}

:is(.page, .single) .has-color-secondary-background-color,
.section-secondary {
	background-color: var(--color-secondary);
}

:is(.page, .single) .has-color-white-background-color {
	background-color: var(--color-white);
}

:is(.page, .single) .has-color-gray-background-color {
	background-color: var(--color-gray);
}

:is(.page, .single) .has-color-line-background-color {
	background-color: var(--color-line);
}

:is(.page, .single) .has-color-light-background-color,
.section-light,
.section-warm {
	background-color: var(--color-light);
}

:is(.page, .single) .has-color-white-background-color,
.section-white {
	background-color: var(--color-white);
}

:is(.page, .single) .has-color-text-color {
	color: var(--color-text);
}

:is(.page, .single) .has-color-primary-color {
	color: var(--color-primary);
}

:is(.page, .single) .has-color-primary-hover-color {
	color: var(--color-primary-hover);
}

:is(.page, .single) .has-color-primary-active-color {
	color: var(--color-primary-active);
}

:is(.page, .single) .has-color-white-color {
	color: var(--color-white);
}

:is(.page, .single) .has-color-gray-color {
	color: var(--color-gray);
}

:is(.page, .single) .has-color-line-color {
	color: var(--color-line);
}

:is(.page, .single) .has-color-light-color {
	color: var(--color-light);
}

:is(.page, .single) .wp-block-group:is(.has-color-text-background-color, .has-color-primary-background-color, .has-color-white-background-color, .has-color-gray-background-color, .has-color-line-background-color, .has-color-light-background-color) {
	padding: 1rem;
}

:is(.page, .single) .wp-block-group:is(.has-color-text-background-color, .has-color-primary-background-color, .has-color-gray-background-color),
:is(.page, .single) .wp-block-group:is(.has-color-text-background-color, .has-color-primary-background-color, .has-color-gray-background-color) :is(h1, h2, h3, h4, h5, h6),
.section-primary,
.section-primary :is(h1, h2, h3, h4, h5, h6) {
	color: var(--color-white);
}

:is(.page, .single) .wp-block-group:is(.has-color-text-background-color, .has-color-primary-background-color, .has-color-gray-background-color) a,
.section-primary a {
	color: var(--color-white);
	text-decoration-color: var(--color-white);
}

:is(.page, .single) .wp-block-group:is(.has-color-text-background-color, .has-color-primary-background-color, .has-color-gray-background-color) a:is(:hover, :focus, :focus-within, :active),
.section-primary a:is(:hover, :focus, :focus-within, :active) {
	color: var(--color-white-hover);
	text-decoration-color: transparent;
}

[class*="-background-color"] > div > :last-child {
	margin-bottom: 0;
}

:is(.section-primary, .section-gray) .wp-block-button .wp-block-button__link {
	background-color: var(--color-white);
	color: var(--color-primary);
	border: 2px solid var(--color-white);
}

:is(.section-primary, .section-gray) .wp-block-button .wp-block-button__link:is(:hover, :focus, :focus-within, :active) {
	background-color: var(--color-primary-hover) !important;
	color: var(--color-white);
	border: 2px solid var(--color-white);
}

:is(.page, .single) .entry-content :is(.section-primary, .section-secondary) :is(h4, p) a {
	color: var(--color-white);
	text-underline-offset: 3px;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-decoration-color: transparent;
	transition: var(--transition);
}

:is(.page, .single) .entry-content :is(.section-primary, .section-secondary) :is(h4, p) a:hover {
	color: var(--color-white);
	text-decoration-color: var(--color-white);
}

/* Kontakt-Link-Icons: SVG-Pfade über WordPress-Uploads setzen (im Block via CSS-Klasse) */

/* IMGSET */

.imgset figure img {
	height: 100%;
	object-fit: cover;
	object-position: center center;
}

/* FOOTER */

.footer {
	width: 100%;
	background-color: var(--color-primary);
	color: var(--color-white);
}

.footer p {
	margin-bottom: 0;
}

.footer .widget:last-child p {
	margin-bottom: 0;
}

.footer :is(h1, h2, h3, h4, h5, h6),
.footer .widget-title {
	color: var(--color-white);
}

.footer a {
	color: var(--color-white);
	text-decoration: none;
	transition: var(--transition);
}

.footer a:is(:hover, :focus, :active) {
	color: var(--color-white-hover);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.footer .footer-widget {
	margin-bottom: 1.5rem;
}

.footer .footer-widget ul {
	list-style: none;
	padding-left: 0;
	margin-bottom: 0;
}

.footer .footer-bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.25);
}

.footer .footer-meta-menu {
	gap: 1.5rem;
}

.footer .footer-meta-menu a {
	font-size: 0.9rem;
}

/* SECTIONS — Redezeit */

.section-teal,
.section-primary {
	background-color: var(--color-primary);
	color: var(--color-white);
}

.section-teal :is(h1, h2, h3, h4, h5, h6),
.section-primary :is(h1, h2, h3, h4, h5, h6) {
	color: var(--color-white);
}

.section-teal a,
.section-primary a {
	color: var(--color-white);
}

.section-teal a:is(:hover, :focus, :active),
.section-primary a:is(:hover, :focus, :active) {
	color: var(--color-white-hover);
}

/* Section padding */

.section-block {
	padding-top: 4rem;
	padding-bottom: 4rem;
}

@media (min-width: 992px) {
	.section-block {
		padding-top: 5rem;
		padding-bottom: 5rem;
	}
}

@media (min-width: 1200px) {
	.section-block {
		padding-top: 6rem;
		padding-bottom: 6rem;
	}
}

.section-block-sm {
	padding-top: 2rem;
	padding-bottom: 2rem;
}

@media (min-width: 992px) {
	.section-block-sm {
		padding-top: 3rem;
		padding-bottom: 3rem;
	}
}

/* CONTAINER-IM-CONTAINER (RedeZeit-Abschnitte)
   Aufbau: .rz-section (äußerer Container, typische Breite) > <section> (Hintergrund)
   > .rz-content (etwas schmälerer Innen-Container für die Inhalte). */

/* Äußerer Container: begrenzt Hintergrund/Hero auf typische Breite, zentriert,
   creme-Rand zur Seite. Nutzt zusätzlich Bootstraps .container max-width. */
.rz-section {
	margin-bottom: 1.5rem;
}

@media (min-width: 992px) {
	.rz-section {
		margin-bottom: 2.5rem;
	}
}

.rz-section:last-child {
	margin-bottom: 0;
}

/* Hinweis: Bootstraps .container behält sein 0.75rem-Padding – das ergibt auf
   schmalen Screens den dezenten creme-Rand (bewusst NICHT randlos). */

/* Innerer, etwas schmälerer Container für die eigentlichen Inhalte */
.rz-content {
	padding-left: 1.25rem;
	padding-right: 1.25rem;
}

@media (min-width: 768px) {
	.rz-content {
		padding-left: 2.5rem;
		padding-right: 2.5rem;
	}
}

@media (min-width: 1200px) {
	.rz-content {
		padding-left: 4rem;
		padding-right: 4rem;
	}
}

/* letztes Element im Innen-Container ohne Abstand nach unten */
.rz-content > *:last-child {
	margin-bottom: 0;
}

/* INTRO / WORTMARKE */

/* Wortmarke "RedeZeit" im Fließtext.
   Empfohlen: Original-SVG als Inline-Bild -> <img class="rz-marke" src=".../wortmarke-redezeit.svg" alt="RedeZeit">
   Fallback (nur Text): <span class="rz-marke">RedeZeit</span> */
span.rz-marke {
	font-family: Georgia, "Times New Roman", serif;
	font-style: italic;
	font-weight: 400;
	color: #4f4f4f;
}

img.rz-marke {
	display: inline-block;
	height: 0.82em;
	width: auto;
	vertical-align: baseline;
	margin: 0 0.08em;
}

/* Einleitungs-Headline (Schön, dass Sie da sind …) */
.intro-headline {
	font-weight: 700;
	color: var(--color-text);
}

/* Fett hervorgehobene Lead-Zeile über dem Fließtext */
.intro-lead {
	font-weight: 700;
}

/* HERO */

.hero-section {
	position: relative;
	overflow: hidden;
}

.hero-section .hero-image {
	width: 100%;
	height: 350px;
	object-fit: cover;
	object-position: center center;
}

@media (min-width: 576px) {
	.hero-section .hero-image {
		height: 420px;
	}
}

@media (min-width: 768px) {
	.hero-section .hero-image {
		height: 500px;
	}
}

@media (min-width: 992px) {
	.hero-section .hero-image {
		height: 580px;
	}
}

@media (min-width: 1400px) {
	.hero-section .hero-image {
		height: 640px;
	}
}

.hero-section .hero-caption {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	padding: 2rem 1.5rem;
	background: linear-gradient(to top, rgba(0, 0, 0, 0.55) 0%, rgba(0, 0, 0, 0.15) 45%, transparent 100%);
}

@media (min-width: 768px) {
	.hero-section .hero-caption {
		padding: 3rem;
	}
}

@media (min-width: 1200px) {
	.hero-section .hero-caption {
		padding: 3.5rem;
	}
}

.hero-section .hero-caption h1,
.hero-section .hero-caption h2,
.hero-section .hero-caption p {
	color: var(--color-white);
	text-shadow: 0 1px 6px rgba(0, 0, 0, 0.45);
}

/* Hero-Headline: große Versalien wie im Entwurf (PRAXIS REDEZEIT) */
.hero-section .hero-caption h1 {
	margin-bottom: 0.25rem;
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.05;
	text-transform: uppercase;
	letter-spacing: 0.01em;
	color: var(--color-white);
}

@media (min-width: 576px) {
	.hero-section .hero-caption h1 {
		font-size: 2.75rem;
	}
}

@media (min-width: 992px) {
	.hero-section .hero-caption h1 {
		font-size: 3.5rem;
	}
}

@media (min-width: 1200px) {
	.hero-section .hero-caption h1 {
		font-size: 4rem;
	}
}

/* Hero-Subline (PSYCHOTHERAPIE IN MAINZ & WIESBADEN) */
.hero-section .hero-caption p {
	margin-bottom: 0;
	font-size: 1.1rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.02em;
}

@media (min-width: 576px) {
	.hero-section .hero-caption p {
		font-size: 1.4rem;
	}
}

@media (min-width: 992px) {
	.hero-section .hero-caption p {
		font-size: 1.75rem;
	}
}

/* STANDORT-KARTE (Praxis card) */

.standort-karte {
	position: relative;
	background-color: var(--color-primary);
	color: var(--color-white);
	padding: 2rem;
	height: 100%;
	overflow: hidden;
}

@media (min-width: 1200px) {
	.standort-karte {
		padding: 2.5rem;
	}
}

/* Inhalt über die dekorative Stuhl-Grafik heben */
.standort-karte > * {
	position: relative;
	z-index: 1;
}

/* Dezente Sessel-Deko im Hintergrund (rechts unten).
   Das SVG hat bereits opacity 0.3 intern – hier nur leichtes Feintuning. */
.standort-karte::after {
	content: "";
	position: absolute;
	right: 0.5rem;
	bottom: 1rem;
	width: 280px;
	height: 200px;
	background-image: url("images/deko-sessel.svg");
	background-repeat: no-repeat;
	background-position: bottom right;
	background-size: contain;
	opacity: 0.9;
	pointer-events: none;
	z-index: 0;
}

@media (max-width: 575.98px) {
	.standort-karte::after {
		width: 170px;
		height: 120px;
	}
}

/* Vertikaler Trenner zwischen Mainz & Wiesbaden (ab Tablet) */
@media (min-width: 768px) {
	.standort-row > [class*="col-"] + [class*="col-"] .standort-karte {
		border-left: 1px solid rgba(255, 255, 255, 0.35);
	}
}

.standort-karte :is(h2, h3, h4) {
	color: var(--color-white);
}

.standort-karte .standort-ort {
	font-size: 0.9rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	margin-bottom: 0.5rem;
	color: var(--color-white);
}

.standort-karte .standort-adresse {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	margin-bottom: 0.25rem;
	font-size: 0.95rem;
}

.standort-karte .standort-maps {
	font-size: 0.9rem;
	color: var(--color-white);
	text-decoration: underline;
	text-underline-offset: 3px;
	transition: var(--transition);
}

.standort-karte .standort-maps:hover {
	color: var(--color-white-hover);
}

.standort-karte .btn-outline-white {
	display: inline-block;
	border: 1px solid var(--color-white);
	color: var(--color-white);
	background: transparent;
	padding: 0.5rem 1rem;
	font-size: 0.875rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	transition: var(--transition);
	text-decoration: none;
	white-space: nowrap;
}

.standort-karte .btn-outline-white:hover {
	background-color: var(--color-white);
	color: var(--color-primary);
}

/* NEWS-BLOCK: gestrichelte Box + Chevron, "MEHR ERFAHREN" darunter.
   Standardfarben für helle Hintergründe; Teal-Kontext überschreibt unten. */
.news-block {
	margin-top: 1.5rem;
}

.news-teaser {
	position: relative;
	border: 1px dashed var(--color-line);
	padding: 1rem 2.75rem 1rem 1.25rem;
}

.news-teaser .news-label {
	display: inline-flex;
	align-items: center;
	font-weight: 700;
	color: var(--color-headline);
	margin-bottom: 0.25rem;
}

.news-teaser p {
	margin-bottom: 0;
}

/* Chevron rechts in der Box (verlinkt) */
.news-teaser .news-chevron {
	position: absolute;
	right: 1rem;
	top: 50%;
	transform: translateY(-50%);
	font-size: 1.6rem;
	line-height: 1;
	font-weight: 700;
	text-decoration: none;
	color: var(--color-primary);
}

/* "MEHR ERFAHREN" Link unter der Box */
.news-more {
	display: inline-block;
	margin-top: 0.6rem;
	font-size: 0.875rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	text-decoration: underline;
	text-underline-offset: 3px;
	color: var(--color-headline);
}

/* Teal-Kontext: Standort-Karte oder section-teal/-primary => weiß */
:is(.standort-karte, .section-teal, .section-primary) .news-teaser {
	border-color: rgba(255, 255, 255, 0.6);
}

:is(.standort-karte, .section-teal, .section-primary) .news-teaser .news-label,
:is(.standort-karte, .section-teal, .section-primary) .news-teaser .news-chevron,
:is(.standort-karte, .section-teal, .section-primary) .news-more {
	color: var(--color-white);
}

/* KONTAKT-Block: Pin + Überschrift + Adresse (erbt Textfarbe vom Abschnitt) */
.rz-kontakt {
	display: flex;
	align-items: center;
	gap: 1rem;
}

.rz-kontakt .rz-kontakt-pin {
	font-size: 2.5rem;
	line-height: 1;
	flex-shrink: 0;
}

/* Pin als Mediathek-SVG */
img.rz-kontakt-pin {
	width: 44px;
	height: auto;
	object-fit: contain;
}

.rz-kontakt .rz-kontakt-titel {
	font-weight: 700;
	font-size: 1.1rem;
	margin-bottom: 0.15rem;
}

.rz-kontakt .rz-kontakt-adresse {
	font-size: 1.05rem;
}

.rz-kontakt .rz-kontakt-maps {
	display: inline-block;
	margin-top: 0.35rem;
	font-size: 0.9rem;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* INFO-BOX (Kostenübernahme, Erreichbarkeit) */

.info-box {
	height: 100%;
}

/* Kopfzeile: Titel links, Icon rechts (wie im Entwurf) */
.info-box .info-box-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 0.75rem;
}

.info-box .info-icon {
	font-size: 2.25rem;
	color: var(--color-primary);
	flex-shrink: 0;
	line-height: 1;
}

.info-box .info-icon img {
	display: block;
	width: 48px;
	height: 48px;
	object-fit: contain;
}

.info-box .info-title {
	font-size: 1rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	margin-bottom: 0;
	color: var(--color-headline);
	line-height: 1.25;
}

.info-box .info-box-body > *:last-child {
	margin-bottom: 0;
}

/* Link-Liste in der "Mehr erfahren"-Box mit Chevron */
.info-box .info-box-body ul {
	list-style: none;
	padding-left: 0;
	margin-bottom: 0;
}

.info-box .info-box-body ul li {
	position: relative;
	padding-left: 1.25rem;
}

.info-box .info-box-body ul li::before {
	content: "\203A";
	position: absolute;
	left: 0;
	top: -0.05em;
	color: var(--color-primary);
	font-weight: 700;
}

/* DEKO-HALBKREISE — Gradient-Kreise aus der Figma-Vorlage (Seiten-Ecken)
   Anwendung: der rz-Section die Klasse "has-deko" geben (zusätzliche CSS-Klasse).
   Optional: "has-deko deko-links-only" oder "has-deko deko-rechts-only". */

.has-deko {
	position: relative;
	overflow: hidden;
}

/* Inhalt über die Deko legen */
.has-deko > .container,
.has-deko > * {
	position: relative;
	z-index: 1;
}

.has-deko::before,
.has-deko::after {
	content: "";
	position: absolute;
	bottom: 0;
	z-index: 0;
	width: 289px;
	max-width: 42vw;
	aspect-ratio: 289 / 179;
	background-repeat: no-repeat;
	background-size: contain;
	pointer-events: none;
}

.has-deko::before {
	left: 0;
	background-image: url("images/halbkreis-links.svg");
	background-position: bottom left;
}

.has-deko::after {
	right: 0;
	background-image: url("images/halbkreis-rechts.svg");
	background-position: bottom right;
}

/* nur eine Seite anzeigen */
.has-deko.deko-links-only::after {
	display: none;
}

.has-deko.deko-rechts-only::before {
	display: none;
}

@media (min-width: 1200px) {
	.has-deko::before,
	.has-deko::after {
		width: 360px;
	}
}
