/* ---------------------------------------------------------------
	Salvadent: ACF-Bloecke (Ersatz fuer Elementor)
	Breakpoints wie im Parent-Theme Pukeko: 45em, 52.5em, 75em
--------------------------------------------------------------- */

:root {
	--sd-hellblau: #bfd7ea;
	--sd-dunkelblau: #132644;
	--sd-termin: #0596de;
	--sd-gutter: 24px;
	--sd-pad: 48px;
}

@media (min-width: 52.5em) {
	:root {
		--sd-gutter: 48px;
		--sd-pad: 72px;
	}
}

/* ---------- Grundgeruest ---------- */
.sd-block {
	clear: both;
	padding-top: var(--sd-pad);
	padding-bottom: var(--sd-pad);
}

.sd-block::after {
	content: "";
	display: table;
	clear: both;
}

.sd-inner {
	box-sizing: border-box;
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--sd-gutter);
	padding-right: var(--sd-gutter);
}

.sd-width-schmal { max-width: calc(784px + 2 * var(--sd-gutter)); }
.sd-width-normal { max-width: calc(992px + 2 * var(--sd-gutter)); }
.sd-width-breit  { max-width: calc(1248px + 2 * var(--sd-gutter)); }
.sd-width-voll   { max-width: none; padding-left: 0; padding-right: 0; }

.sd-align-center { text-align: center; }
.sd-align-left   { text-align: left; }

/* Inhalte ohne doppelte Aussenabstaende */
.sd-inner > :first-child { margin-top: 0; }
.sd-inner > :last-child  { margin-bottom: 0; }

/* ---------- Hintergruende ---------- */
.sd-bg-hellblau   { background-color: var(--sd-hellblau); }
.sd-bg-weiss      { background-color: #fff; }
.sd-bg-dunkelblau { background-color: var(--sd-dunkelblau); }

.sd-bg-dunkelblau,
.sd-bg-dunkelblau h1,
.sd-bg-dunkelblau h2,
.sd-bg-dunkelblau h3,
.sd-bg-dunkelblau p,
.sd-bg-dunkelblau li,
.entry-content .sd-bg-dunkelblau p,
.entry-content .sd-bg-dunkelblau p a,
.sd-bg-dunkelblau a {
	color: #fff !important;
}

.sd-bg-dunkelblau a {
	box-shadow: none;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Aufeinanderfolgende Bloecke mit gleichem Hintergrund wirken wie ein Abschnitt */
.sd-bg-hellblau + .sd-bg-hellblau,
.sd-bg-dunkelblau + .sd-bg-dunkelblau,
.sd-bg-weiss + .sd-bg-weiss,
.sd-block:not([class*="sd-bg-"]) + .sd-block:not([class*="sd-bg-"]) {
	padding-top: 0;
}

/* ---------- Infoleiste ---------- */
.sd-infoleiste__list {
	display: grid;
	gap: 40px;
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 45em) {
	.sd-infoleiste__list.sd-cols-2 { grid-template-columns: repeat(2, 1fr); }
	.sd-infoleiste__list.sd-cols-3 { grid-template-columns: repeat(3, 1fr); }
	.sd-infoleiste__list.sd-cols-4 { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 75em) {
	.sd-infoleiste__list.sd-cols-4 { grid-template-columns: repeat(4, 1fr); }
}

.sd-infoleiste__item {
	margin: 0;
	padding: 0;
	text-align: center;
}

.sd-infoleiste__item .sd-icon {
	display: block;
	margin: 0 auto 16px;
}

.sd-infoleiste__text p {
	margin: 0;
}

/* ---------- Textbereich ---------- */
.sd-text--betont,
.sd-text--betont p {
	font-weight: 700 !important;
}

.sd-text ul,
.sd-spalten ul {
	text-align: left;
}

/* ---------- Bild ---------- */
.sd-bild figure,
figure.sd-inner {
	margin-top: 0;
	margin-bottom: 0;
}

.sd-bild__img {
	display: block;
	width: 100%;
	height: auto;
}

.sd-bild figcaption {
	padding-top: 12px;
	font-size: 0.875em;
	text-align: center;
}

/* ---------- Spalten ---------- */
.sd-grid {
	display: grid;
	gap: 0 48px;
}

@media (min-width: 45em) {
	.sd-grid.sd-cols-2 { grid-template-columns: repeat(2, 1fr); }
	.sd-grid.sd-cols-3 { grid-template-columns: repeat(3, 1fr); }
	.sd-grid.sd-cols-4 { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 75em) {
	.sd-grid.sd-cols-4 { grid-template-columns: repeat(4, 1fr); }
}

.sd-spalten__col > :first-child { margin-top: 0; }
.sd-spalten__col > :last-child  { margin-bottom: 0; }

/* ---------- Karte ---------- */
.sd-karte {
	padding: 0;
}

.sd-karte__frame {
	display: block;
	width: 100%;
	height: var(--sd-map-h-mobil, 200px);
	border: 0;
}

@media (min-width: 45em) {
	.sd-karte__frame {
		height: var(--sd-map-h, 360px);
	}
}

.sd-karte__link {
	margin: 0;
	padding: var(--sd-pad) var(--sd-gutter);
	text-align: center;
}

.sd-karte__link a {
	display: inline-flex;
	gap: 8px;
	align-items: center;
}

.sd-karte__vorschau {
	display: flex;
	gap: 12px;
	align-items: center;
	justify-content: center;
	min-height: 160px;
	background: #e9eef2;
	color: #333;
}

/* ---------- Seitentitel ---------- */
.sd-seitentitel .pukeko-pagetitle-wrap {
	max-width: none;
}

.sd-seitentitel .pukeko-pagetitle-wrap.center {
	text-align: center;
}

.sd-seitentitel .section-title {
	margin: 0;
}

.sd-seitentitel .pukeko-pagetitle-wrap p {
	margin: 0;
	padding: 16px 0 0;
}

.sd-seitentitel .pagetitle-subtitle {
	display: block;
	padding-bottom: 8px;
}

.sd-seitentitel + .sd-team {
	padding-top: 0;
}

/* ---------- Team ---------- */
.entry-content .sd-team.teammember-wrap {
	padding-top: var(--sd-pad) !important;
	padding-bottom: var(--sd-pad) !important;
}

.sd-team__grid {
	display: grid;
	gap: 48px;
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 45em) {
	.sd-team__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 52.5em) {
	.sd-team__grid { grid-template-columns: repeat(3, 1fr); gap: 64px 48px; }
}

.sd-team__item {
	margin: 0;
	padding: 0;
}

.sd-team__item .teammember-img-wrap {
	margin-bottom: 24px;
}

.sd-team__item .teammember-img {
	display: block;
	width: 100%;
	height: auto;
}

/* ---------- Kontaktbereich ---------- */
.sd-kontakt {
	padding: 0;
}

.sd-kontakt__main {
	box-sizing: border-box;
	padding: var(--sd-pad) var(--sd-gutter);
}

.sd-kontakt__main .section-title {
	margin: 0;
}

.sd-kontakt__main .pukeko-pagetitle-wrap p {
	margin: 0;
	padding: 16px 0 0;
}

.sd-kontakt__form {
	padding-top: 32px;
}

.sd-kontakt__bild {
	display: none;
}

@media (min-width: 52.5em) {
	.sd-kontakt--mit-bild {
		display: grid;
		grid-template-columns: 66% 34%;
	}

	.sd-kontakt__main {
		max-width: 784px;
		margin-left: auto;
		width: 100%;
	}

	.sd-kontakt__bild {
		display: block;
		position: relative;
		min-height: 100%;
	}

	.sd-kontakt__bild img {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: center right;
	}
}

/* ---------- Button "Termin online buchen" ---------- */
.sd-termin-button {
	position: fixed;
	z-index: 1000;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	display: inline-flex;
	gap: 8px;
	align-items: center;
	justify-content: center;
	width: 257px;
	height: 40px;
	border-radius: 4px 4px 0 0;
	background-color: var(--sd-termin);
	color: #fff !important;
	font-size: 14px;
	line-height: 40px;
	text-decoration: none;
	box-shadow: none !important;
}

.sd-termin-button:hover,
.sd-termin-button:focus {
	background-color: #0479b3;
	color: #fff;
}

/* ---------- Editor ---------- */
.sd-placeholder {
	margin: 0;
	padding: 24px;
	border: 1px dashed #8c8f94;
	color: #50575e;
	font-size: 14px;
	text-align: center;
}
