/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* Add your custom styles here */


header .elementor-sticky__spacer{display:none !important;}

/* ==================================================================
   FAQ-Akkordeon  ([faq_liste])
   ------------------------------------------------------------------
   Diesen Block komplett ans ENDE der style.css haengen.
   Wichtig: davor muss die letzte Regel mit } geschlossen sein.
   Anpassungen nur ueber die Variablen im .atp-faq-Block.
   ================================================================== */

.atp-faq {
	--atp-faq-frage-farbe: #16162b;
	--atp-faq-antwort-farbe: #3d3d52;
	--atp-faq-linie: #d9d9e0;
	--atp-faq-icon: #000;

	--atp-faq-frage-size: 1rem;
	--atp-faq-frage-weight: 700;
	--atp-faq-antwort-size: 1rem;
	--atp-faq-antwort-lh: 1.75;

	--atp-faq-padding-y: 1.625rem;
	--atp-faq-antwort-bottom: 2rem;
	--atp-faq-gap: 1.5rem;
	--atp-faq-icon-size: 16px;

	--atp-faq-speed: 0.3s;
	--atp-faq-ease: cubic-bezier(0.4, 0, 0.2, 1);

	display: block;
	width: 100%;
	interpolate-size: allow-keywords;
}

.atp-faq__titel {
	margin: 0 0 1.5rem;
	color: var(--atp-faq-frage-farbe);
}

/* --- Eintrag + Trennlinie ----------------------------------------- */

.atp-faq .atp-faq__item {
	margin: 0;
	padding: 0;
	background: none;
	border: 0;
	border-bottom: 1px solid var(--atp-faq-linie) !important;
	border-radius: 0;
}

/* --- Frage --------------------------------------------------------- */

.atp-faq .atp-faq__frage {
	display: flex !important;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--atp-faq-gap);
	margin: 0;
	padding: var(--atp-faq-padding-y) 0;
	background: none;
	border: 0;
	cursor: pointer;
	list-style: none;
	-webkit-tap-highlight-color: transparent;
}

.atp-faq .atp-faq__frage::-webkit-details-marker {
	display: none;
}

.atp-faq .atp-faq__frage::marker {
	content: "";
}

.atp-faq .atp-faq__frage-text {
	flex: 1 1 auto;
	font-size: var(--atp-faq-frage-size);
	font-weight: var(--atp-faq-frage-weight);
	line-height: 1.45;
	color: var(--atp-faq-frage-farbe);
	transition: opacity 0.2s var(--atp-faq-ease);
}

.atp-faq .atp-faq__frage:hover .atp-faq__frage-text {
	opacity: 0.65;
}

.atp-faq .atp-faq__frage:focus-visible {
	outline: 2px solid var(--atp-faq-frage-farbe);
	outline-offset: 4px;
}

/* --- Plus / Minus --------------------------------------------------- */

.atp-faq .atp-faq__icon {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	width: var(--atp-faq-icon-size);
	height: calc(var(--atp-faq-frage-size) * 1.45);
}

.atp-faq .atp-faq__icon svg {
	display: block;
	width: var(--atp-faq-icon-size);
	height: var(--atp-faq-icon-size);
	fill: var(--atp-faq-icon);
	transition: transform var(--atp-faq-speed) var(--atp-faq-ease);
}

.atp-faq .atp-faq__icon-minus {
	display: none !important;
}

.atp-faq .atp-faq__icon-plus {
	display: block !important;
}

.atp-faq .atp-faq__item[open] .atp-faq__icon-minus {
	display: block !important;
}

.atp-faq .atp-faq__item[open] .atp-faq__icon-plus {
	display: none !important;
}

.atp-faq .atp-faq__item[open] .atp-faq__icon svg {
	transform: rotate(180deg);
}

/* --- Antwort --------------------------------------------------------- */

.atp-faq .atp-faq__antwort-inner {
	padding: 0 0 var(--atp-faq-antwort-bottom);
	max-width: 62ch;
	font-size: var(--atp-faq-antwort-size);
	line-height: var(--atp-faq-antwort-lh);
	color: var(--atp-faq-antwort-farbe);
}

.atp-faq .atp-faq__antwort-inner > *:first-child {
	margin-top: 0;
}

.atp-faq .atp-faq__antwort-inner > *:last-child {
	margin-bottom: 0;
}

.atp-faq .atp-faq__antwort-inner a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.atp-faq .atp-faq__antwort-inner ul,
.atp-faq .atp-faq__antwort-inner ol {
	margin: 0.75em 0;
	padding-left: 1.25em;
}

.atp-faq .atp-faq__antwort-inner li + li {
	margin-top: 0.35em;
}

/* --- Aufklapp-Animation (ohne JS) -------------------------------------- */

.atp-faq .atp-faq__item::details-content {
	block-size: 0;
	overflow: hidden;
	opacity: 0;
	transition:
		block-size var(--atp-faq-speed) var(--atp-faq-ease),
		opacity var(--atp-faq-speed) var(--atp-faq-ease),
		content-visibility var(--atp-faq-speed) allow-discrete;
}

.atp-faq .atp-faq__item[open]::details-content {
	block-size: auto;
	opacity: 1;
}

/* --- Mobil -------------------------------------------------------------- */

@media (max-width: 767px) {
	.atp-faq {
		--atp-faq-padding-y: 1.25rem;
		--atp-faq-antwort-bottom: 1.5rem;
		--atp-faq-gap: 1rem;
		--atp-faq-icon-size: 14px;
	}
}

/* --- Reduzierte Bewegung ------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	.atp-faq .atp-faq__item::details-content,
	.atp-faq .atp-faq__icon svg,
	.atp-faq .atp-faq__frage-text {
		transition: none;
	}
}

/* --- Suchfeld  ([faq_liste suche="ja"]) ---------------------------------- */

.atp-faq .atp-faq__suche {
	margin: 0 0 1.5rem;
}

.atp-faq .atp-faq__suche-input {
	display: block;
	width: 100%;
	max-width: 500px;
	margin: 0 auto;
	padding: 0.85rem 1rem 0.85rem 2.75rem;
	font: inherit;
	font-size: var(--atp-faq-frage-size);
	line-height: 1.45;
	color: var(--atp-faq-frage-farbe);
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%2316162b' d='M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z'/%3E%3C/svg%3E") no-repeat 1rem center / 1rem;
	border: 1px solid var(--atp-faq-linie);
	border-radius: 6px;
	box-shadow: none;
	-webkit-appearance: none;
	appearance: none;
	transition: border-color 0.2s var(--atp-faq-ease);
}

.atp-faq .atp-faq__suche-input::placeholder {
	color: var(--atp-faq-antwort-farbe);
	opacity: 0.6;
}

.atp-faq .atp-faq__suche-input:focus {
	outline: none;
	border-color: var(--atp-faq-frage-farbe);
}

.atp-faq .atp-faq__suche-input::-webkit-search-cancel-button {
	cursor: pointer;
}

.atp-faq .atp-faq__item[hidden] {
	display: none !important;
}

.atp-faq .atp-faq__keine-treffer {
	margin: 1.5rem 0 0;
	font-size: var(--atp-faq-antwort-size);
	color: var(--atp-faq-antwort-farbe);
}

.atp-faq .atp-faq__keine-treffer[hidden] {
	display: none;
}

/* ==================================================================
   Termine-Tabelle  ([termine_liste])
   ------------------------------------------------------------------
   Diesen Block komplett ans ENDE der style.css haengen.
   Anpassungen nur ueber die Variablen im .atp-termine-Block.
   ================================================================== */

.atp-termine {
	--atp-termine-farbe: #16162b;
	--atp-termine-beschreibung-farbe: #6b6b80;
	--atp-termine-linie: #c4c4cc;        /* gepunktete Zeilenlinie */
	--atp-termine-linie-kopf: #16162b;   /* durchgezogene Linie unter der Kopfzeile */

	--atp-termine-size: 1rem;            /* Tabellentext (16px) */
	--atp-termine-datum-size: 1.375rem;  /* Datums-Ueberschrift (22px) */
	--atp-termine-beschreibung-size: 0.875rem;

	--atp-termine-zeile-padding: 0.7rem;  /* Zeilenhoehe */
	--atp-termine-datum-abstand: 2.25rem; /* Datum -> Tabelle */
	--atp-termine-tag-abstand: 5rem;      /* Abstand zwischen den Tagen */
	--atp-termine-spalte-zeit: 8em;       /* Breite der Zeit-Spalte */

	display: block;
	width: 100%;
	color: var(--atp-termine-farbe);
}

.atp-termine__titel {
	margin: 0 0 2rem;
	color: var(--atp-termine-farbe);
}

/* --- Tagesblock ---------------------------------------------------- */

.atp-termine .atp-termine__tag + .atp-termine__tag {
	margin-top: var(--atp-termine-tag-abstand);
}

.atp-termine .atp-termine__datum {
	margin: 0 0 var(--atp-termine-datum-abstand);
	padding: 0;
	font-size: var(--atp-termine-datum-size);
	font-style: italic;
	font-weight: 900;
	letter-spacing: 0.005em;
	line-height: 1.2;
	text-transform: uppercase;
	color: var(--atp-termine-farbe);
}

/* --- Tabelle -------------------------------------------------------- */

.atp-termine .atp-termine__tabelle {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	table-layout: fixed;
	font-size: var(--atp-termine-size);
	line-height: 1.4;
}

.atp-termine .atp-termine__tabelle th,
.atp-termine .atp-termine__tabelle td {
	padding: var(--atp-termine-zeile-padding) 1rem var(--atp-termine-zeile-padding) 0;
	text-align: left;
	vertical-align: top;
	background: none;
	border: 0 !important;
	border-top: 0 !important;
	border-left: 0 !important;
	border-right: 0 !important;
	box-shadow: none;
}

/* keine Linie oberhalb der Kopfzeile */
.atp-termine .atp-termine__tabelle thead,
.atp-termine .atp-termine__tabelle thead tr,
.atp-termine .atp-termine__tabelle tbody,
.atp-termine .atp-termine__tabelle tbody tr {
	border: 0 !important;
	background: none;
}

/* Kopfzeile: fett, durchgezogene Linie darunter */
.atp-termine .atp-termine__tabelle thead th {
	padding-top: 0;
	padding-bottom: 0.65rem;
	font-weight: 700;
	border-bottom: 1px solid var(--atp-termine-linie-kopf) !important;
}

/* Spaltenbreiten */
.atp-termine .atp-termine__th-zeit,
.atp-termine .atp-termine__zeit {
	width: var(--atp-termine-spalte-zeit);
}

/* Distanz-Spalte ([termine_liste alle="ja"]) */
.atp-termine .atp-termine__th-distanz,
.atp-termine .atp-termine__distanz {
	width: var(--atp-termine-spalte-distanz, 12em);
}

.atp-termine .atp-termine__distanz a,
.atp-termine .atp-termine__distanzen a {
	color: var( --e-global-color-accent );
	text-decoration: underline;
	text-underline-offset: 0.15em;
	font-size: .85em;
  	font-weight: 600;
}

/* Distanzen unter dem Programmpunkt: nur auf Tablet/Mobil sichtbar (siehe Media Query unten) */
.atp-termine .atp-termine__distanzen {
	display: none;
	font-size: var(--atp-termine-beschreibung-size);
	line-height: 1.5;
}

.atp-termine .atp-termine__distanzen-label {
	font-weight: 700;
}

/* Zeilen: gepunktete Trennlinie */
.atp-termine .atp-termine__tabelle tbody td {
	border-bottom: 1px dotted var(--atp-termine-linie) !important;
}

.atp-termine .atp-termine__tabelle tbody tr:first-child td {
	padding-top: 0.7rem;
}

.atp-termine .atp-termine__zeit {
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.atp-termine .atp-termine__name {
	display: block;
}

.atp-termine .atp-termine__beschreibung {
	display: block;
	margin-top: 0.2rem;
	font-size: var(--atp-termine-beschreibung-size);
	line-height: 1.5;
	color: var(--atp-termine-beschreibung-farbe);
}

/* --- Tablet + Mobil: Distanz-Spalte ausblenden, Distanzen unter dem Programmpunkt zeigen --- */

@media (max-width: 1024px) {
	.atp-termine .atp-termine__th-distanz,
	.atp-termine .atp-termine__distanz {
		display: none;
	}

	.atp-termine .atp-termine__distanzen {
		display: block;
	}
}

/* --- Mobil ------------------------------------------------------------ */

@media (max-width: 767px) {
	.atp-termine {
		--atp-termine-spalte-zeit: 7em;
		--atp-termine-tag-abstand: 3rem;
		--atp-termine-datum-abstand: 1.25rem;
	}

	.atp-termine .atp-termine__tabelle th,
	.atp-termine .atp-termine__tabelle td {
		padding-right: 0.5rem;
	}
}


/*** Instragram Feed Smash Baloon ***/
#sb_instagram .sbi_header_img img {height: 100%;}
#sb_instagram .sb_instagram_header {padding: 0 10px;}
