/*
Theme Name: Astra Child theme of astra
Theme URI:
Description: Child theme of astra theme for the Astra theme
Author: <a href="https://wpastra.com/about/?utm_source=theme_preview&#038;utm_medium=author_link&#038;utm_campaign=astra_theme">Brainstorm Force</a>
Author URI:
Template: astra
Version: 4.11.6
*/

/* Generated by Orbisius Child Theme Creator, extended for mobile readability. */

html {
	overflow-x: hidden;
}

body {
	color: #000;
	overflow-x: hidden;
}

img,
.elementor-widget-image img,
.elementor img {
	max-width: 100%;
	height: auto;
}

.elementor-widget-text-editor,
.elementor-widget-text-editor p,
.elementor-widget-text-editor a,
.elementor-icon-box-title,
.elementor-icon-box-title a,
.elementor-icon-box-description,
.elementor-icon-box-description p,
.elementor-icon-list-text,
.elementor-icon-list-item,
.elementor-widget-html,
.elementor-widget-html p {
	color: #000;
}

.elementor-heading-title,
.elementor-widget-text-editor,
.elementor-icon-box-title,
.elementor-icon-box-description {
	overflow-wrap: break-word;
	word-wrap: break-word;
	hyphens: auto;
}

/* Elementor stored 3–12px line-heights; letters overlap and look like another color. */
.elementor-widget-text-editor,
.elementor-widget-text-editor p,
.elementor-icon-box-description,
.elementor-icon-box-description p {
	line-height: 1.55 !important;
}

a:not(.skip-link):not(.elementor-button) {
	color: inherit;
}

/* -------------------------------------------------------------------------
   Tablet + phone: keep desktop composition, drop pixel-pushing
   ------------------------------------------------------------------------- */
@media (max-width: 1024px) {
	.site-content,
	#content,
	.elementor,
	.e-con,
	.elementor-section,
	.elementor-widget-wrap {
		max-width: 100%;
	}

	h1,
	.elementor-widget-heading h1.elementor-heading-title {
		font-size: clamp(1.55rem, 6.4vw, 2.1rem) !important;
		line-height: 1.25 !important;
	}

	h2,
	.elementor-widget-heading h2.elementor-heading-title {
		font-size: clamp(1.3rem, 5.4vw, 1.8rem) !important;
		line-height: 1.3 !important;
	}

	h3,
	.elementor-widget-heading h3.elementor-heading-title {
		font-size: clamp(1.1rem, 4.4vw, 1.4rem) !important;
		line-height: 1.35 !important;
	}

	.ast-builder-menu-mobile .menu-link,
	.ast-header-break-point .main-header-menu .menu-link,
	.ast-header-break-point .main-header-menu .menu-item > .menu-link {
		color: #000 !important;
	}

	/* Home: huge tablet padding and crushed intro text */
	.elementor-5305 .elementor-element-fa439ad {
		--padding-top: 32px !important;
		--margin-top: 0 !important;
	}

	.elementor-5305 .elementor-element-6533377,
	.elementor-5305 .elementor-element-33a311f,
	.elementor-5305 .elementor-element-6533377 .elementor-widget-container,
	.elementor-5305 .elementor-element-33a311f .elementor-widget-container {
		line-height: 1.55 !important;
		color: #000 !important;
		margin: 0 !important;
	}

	.elementor-5305 .elementor-element-33a311f {
		text-shadow: none !important;
	}

	/* Contact + Impressum: lotus / yin-yang strip */
	.elementor-5363 .elementor-element.elementor-element-4075ed1,
	.elementor-4044 .elementor-element.elementor-element-64bef68d {
		--margin-top: 8px !important;
		--margin-left: 0 !important;
		--margin-right: 0 !important;
		margin: 8px 0 0 !important;
		width: 100% !important;
		justify-content: center !important;
		align-items: center !important;
		flex-wrap: nowrap !important;
		gap: 18px !important;
		padding: 4px 16px 0 !important;
	}

	.elementor-5363 .elementor-element.elementor-element-4a2535bd,
	.elementor-5363 .elementor-element.elementor-element-623a5760,
	.elementor-5363 .elementor-element.elementor-element-1de9915f,
	.elementor-4044 .elementor-element.elementor-element-13944aa6,
	.elementor-4044 .elementor-element.elementor-element-3af98f21,
	.elementor-4044 .elementor-element.elementor-element-226d3705 {
		--margin-top: 0 !important;
		--margin-bottom: 0 !important;
		--margin-left: 0 !important;
		--margin-right: 0 !important;
		--width: auto !important;
		margin: 0 !important;
		width: auto !important;
		max-width: 72px !important;
		flex: 0 0 auto !important;
	}

	.elementor-5363 .elementor-element-107eead8 > .elementor-widget-container,
	.elementor-5363 .elementor-element-1b225227 > .elementor-widget-container,
	.elementor-5363 .elementor-element-5a52719 > .elementor-widget-container,
	.elementor-4044 .elementor-element-66938ca5 > .elementor-widget-container,
	.elementor-4044 .elementor-element-5be77220 > .elementor-widget-container,
	.elementor-4044 .elementor-element-722afd7d > .elementor-widget-container {
		margin: 0 !important;
		padding: 0 !important;
	}

	.elementor-5363 .elementor-element-4075ed1 img,
	.elementor-4044 .elementor-element-64bef68d img {
		max-width: 52px !important;
		width: 52px !important;
		height: auto !important;
		opacity: 1 !important;
	}

	/* In-page nav buttons */
	.elementor-5363 .elementor-element-b2bf014,
	.elementor-4044 .elementor-element-50d8f2a1 {
		justify-content: center !important;
		flex-wrap: wrap !important;
		gap: 6px 10px !important;
		--margin-bottom: 0 !important;
		padding: 0 12px !important;
	}

	.elementor-5363 .elementor-element-b2bf014 .elementor-widget-button > .elementor-widget-container,
	.elementor-4044 .elementor-element-50d8f2a1 .elementor-widget-button > .elementor-widget-container,
	.elementor-5363 .elementor-element-5c3cf66c > .elementor-widget-container,
	.elementor-4044 .elementor-element-44e43b45 > .elementor-widget-container {
		margin: 0 !important;
	}

	/* Title + Buddha photo */
	.elementor-5363 .elementor-element-4abd9e5b,
	.elementor-5363 .elementor-element-4f1735e1,
	.elementor-4044 .elementor-element-542a3cf,
	.elementor-4044 .elementor-element-76858197 {
		--margin-left: 0 !important;
		--margin-right: 0 !important;
		--width: 100% !important;
		width: 100% !important;
		--padding-top: 12px !important;
		--padding-bottom: 16px !important;
		--padding-left: 16px !important;
		--padding-right: 16px !important;
	}

	.elementor-5363 .elementor-element-58977be > .elementor-widget-container,
	.elementor-5363 .elementor-element-2648f229 > .elementor-widget-container,
	.elementor-5363 .elementor-element-37a593d6 > .elementor-widget-container,
	.elementor-5363 .elementor-element-37244f2f > .elementor-widget-container,
	.elementor-4044 .elementor-element-1493b5d > .elementor-widget-container,
	.elementor-4044 .elementor-element-1d6656b9 > .elementor-widget-container,
	.elementor-4044 .elementor-element-35297499 > .elementor-widget-container,
	.elementor-4044 .elementor-element-14929ad1 > .elementor-widget-container {
		margin: 0 auto 12px !important;
		padding: 0 !important;
	}

	.elementor-5363 .elementor-element-37244f2f img,
	.elementor-4044 .elementor-element-14929ad1 img {
		display: block !important;
		margin: 0 auto !important;
		width: min(100%, 280px) !important;
	}

	/* Contact cards + message box */
	.elementor-5363 .elementor-element-24f5fcb {
		flex-direction: column !important;
		--width: 100% !important;
		width: 100% !important;
	}

	.elementor-5363 .elementor-element-e59c7f7,
	.elementor-5363 .elementor-element-83a0604,
	.elementor-5363 .elementor-element-3c69019 {
		--width: 100% !important;
		width: 100% !important;
		--margin-left: 0 !important;
		--margin-right: 0 !important;
	}

	.elementor-5363 .elementor-element-43c47b2 {
		--margin-top: 8px !important;
		--margin-bottom: 24px !important;
		--margin-left: 0 !important;
		--margin-right: 0 !important;
		--width: 100% !important;
		width: 100% !important;
		max-width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		--padding-top: 28px !important;
		--padding-bottom: 28px !important;
		--padding-left: 28px !important;
		--padding-right: 28px !important;
		padding: 28px !important;
		--border-radius: 28px !important;
		border-width: 3px !important;
		box-sizing: border-box !important;
	}

	.elementor-5363 .elementor-element-6ab2b815 {
		font-size: 16px !important;
		line-height: 1.55 !important;
		max-width: 100% !important;
		width: 100% !important;
	}

	.elementor-5363 .elementor-element-6ab2b815 > .elementor-widget-container {
		margin: 0 !important;
	}
}

@media (max-width: 767px) {
	/* Gutters are handled once in the 921px header/content block. */

	.elementor-widget-text-editor,
	.elementor-widget-text-editor p {
		font-size: 16px !important;
	}

	.elementor-5305 .elementor-element-d3f261c,
	.elementor-5305 .elementor-element-477bffb,
	.elementor-5305 .elementor-element-0edbfee,
	.elementor-5305 .elementor-element-ff30e15,
	.elementor-5305 .elementor-element-152039d,
	.elementor-5305 .elementor-element-1c649c8,
	.elementor-5305 .elementor-element-865acad,
	.elementor-5305 .elementor-element-e9b72af,
	.elementor-5305 .elementor-element-a87bbcc {
		--width: 100% !important;
		width: 100% !important;
	}
}

/* -------------------------------------------------------------------------
   Mobile: unified header – centered lotus logo + burger
   Desktop keeps the Elementor page headers unchanged.
   ------------------------------------------------------------------------- */
@media (max-width: 921px) {
	/* One content gutter: Astra + nested Elementor were stacking 40–70px per side. */
	#content.site-content,
	#content > .ast-container {
		padding-left: 0 !important;
		padding-right: 0 !important;
		max-width: 100% !important;
	}

	.elementor > .e-con.e-parent {
		--padding-left: 16px !important;
		--padding-right: 16px !important;
		padding-left: 16px !important;
		padding-right: 16px !important;
		box-sizing: border-box !important;
	}

	/* Nested columns stay tight; orange frames keep Elementor inner padding. */
	.e-con.e-flex > .elementor-element,
	.e-con .elementor-widget-container {
		min-width: 0;
		max-width: 100%;
		box-sizing: border-box;
	}

	.elementor-widget-text-editor,
	.elementor-widget-text-editor p,
	.elementor-widget-heading,
	.elementor-widget-heading .elementor-widget-container,
	.elementor-heading-title {
		max-width: 100%;
		width: 100%;
		box-sizing: border-box;
	}

	header#masthead {
		display: block !important;
		position: sticky;
		top: 0;
		z-index: 1000;
		background: #fefafa;
		box-shadow: 0 1px 0 rgba(90, 84, 84, 0.08);
	}

	div#ast-desktop-header {
		display: none !important;
	}

	div#ast-mobile-header {
		display: block !important;
		background: #fefafa;
	}

	#ast-mobile-header .ast-primary-header-bar {
		min-height: 0;
		background: #fefafa;
		border-bottom: 0;
		padding-left: 12px !important;
		padding-right: 12px !important;
	}

	#ast-mobile-header .ast-builder-grid-row {
		display: grid !important;
		grid-template-columns: 44px 1fr 44px !important;
		align-items: center !important;
		justify-content: stretch !important;
		min-height: 76px;
		padding: 6px 0;
		width: 100%;
		background: #fefafa;
		border-bottom: 0;
	}

	#ast-mobile-header .site-header-primary-section-left {
		grid-column: 2;
		width: auto !important;
		max-width: none !important;
		justify-content: center !important;
		display: flex !important;
	}

	#ast-mobile-header .site-header-primary-section-right {
		grid-column: 3;
		position: static !important;
		transform: none !important;
		top: auto !important;
		right: auto !important;
		width: 44px !important;
		justify-content: center !important;
		display: flex !important;
	}

	#ast-mobile-header .site-logo-img {
		display: flex !important;
		justify-content: center;
		align-items: center;
		margin: 0 auto;
	}

	#ast-mobile-header .custom-logo-link {
		display: none !important;
	}

	#ast-mobile-header .custom-mobile-logo-link {
		display: flex !important;
		justify-content: center;
		align-items: center;
		margin: 0 auto;
	}

	#ast-mobile-header .custom-logo,
	#ast-mobile-header .ast-mobile-header-logo,
	#ast-mobile-header .site-logo-img img {
		width: min(210px, 58vw) !important;
		max-width: min(210px, 58vw) !important;
		height: auto !important;
		max-height: 82px;
		object-fit: contain;
	}

	#ast-mobile-header .main-header-menu-toggle {
		display: flex !important;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		padding: 0;
		border: 0;
		background: transparent;
		color: #5a5454;
		cursor: pointer;
	}

	#ast-mobile-header .ast-mobile-svg {
		fill: #5a5454;
		width: 28px;
		height: 28px;
	}

	#ast-mobile-header .main-header-menu-toggle .ast-close-svg {
		display: none;
	}

	#ast-mobile-header .main-header-menu-toggle.toggled .ast-menu-svg {
		display: none;
	}

	#ast-mobile-header .main-header-menu-toggle.toggled .ast-close-svg {
		display: inline;
	}

	#ast-mobile-header .ast-mobile-header-content {
		display: none;
		width: 100%;
		background: #fefafa;
		padding: 0 16px 16px;
		border-top: 1px solid rgba(90, 84, 84, 0.08);
	}

	#ast-mobile-header .ast-mobile-header-content.toggle-on {
		display: block !important;
	}

	#ast-mobile-header .ast-builder-menu-mobile,
	#ast-mobile-header .ast-main-header-bar-alignment,
	#ast-mobile-header .main-header-bar-navigation,
	#ast-mobile-header .main-header-menu {
		display: block !important;
		width: 100%;
		margin: 0;
		padding: 0;
		float: none;
	}

	#ast-mobile-header .main-header-menu {
		flex-direction: column;
	}

	#ast-mobile-header .main-header-menu .menu-item {
		display: block;
		width: 100%;
		margin: 0 0 8px;
		text-align: center;
	}

	#ast-mobile-header .main-header-menu .menu-link {
		display: block !important;
		width: 100%;
		padding: 12px 20px !important;
		background: #f1ece7 !important;
		color: #cf332b !important;
		font-family: Lora, serif;
		font-size: 16px !important;
		line-height: 1.3 !important;
		text-align: center;
		text-decoration: none;
		border-radius: 3px;
	}

	#ast-mobile-header .main-header-menu .menu-item.current-menu-item .menu-link,
	#ast-mobile-header .main-header-menu .menu-link:hover,
	#ast-mobile-header .main-header-menu .menu-link:focus {
		background: #e7dfd7 !important;
		color: #cf332b !important;
	}

	/* Hide the in-page Elementor logo + button rows – replaced by the unified header */
	.elementor-5305 .elementor-element-cbc6035,
	.elementor-5305 .elementor-element-5d9b320,
	.elementor-3803 .elementor-element-8737025,
	.elementor-3750 .elementor-element-4c9a2d6,
	.elementor-3996 .elementor-element-e618141,
	.elementor-4002 .elementor-element-a3f4cd1,
	.elementor-4008 .elementor-element-b6264e3,
	.elementor-4014 .elementor-element-f4a420d,
	.elementor-4019 .elementor-element-bc541e4,
	.elementor-4025 .elementor-element-d8023b0,
	.elementor-4036 .elementor-element-8ffab6b,
	.elementor-4054 .elementor-element-3baa50a,
	.elementor-4488 .elementor-element-c604134,
	.elementor-5363 .elementor-element-4075ed1,
	.elementor-5363 .elementor-element-b2bf014,
	.elementor-4044 .elementor-element-64bef68d,
	.elementor-4044 .elementor-element-50d8f2a1 {
		display: none !important;
	}
}

/* === MOBILE FIXES 2026-10 (Feedback M. Weingarten) ===
   Elementor kit viewport_md is 768, generated CSS uses max-width:767px.
   Tablet (min-width: 768px) and desktop are outside this block. */
@media (max-width: 767px) {
	/* hyphens:auto (base child CSS) splits words such as Gesundheitsförderung.
	   manual keeps breaks at spaces and hyphens already in the text. */
	body.page-id-5305 .elementor-heading-title,
	body.page-id-3803 .elementor-heading-title,
	body.page-id-3750 .elementor-heading-title,
	body.page-id-5363 .elementor-heading-title,
	body.page-id-5305 .elementor-widget-text-editor,
	body.page-id-3803 .elementor-widget-text-editor,
	body.page-id-3750 .elementor-widget-text-editor,
	body.page-id-5363 .elementor-widget-text-editor,
	body.page-id-5305 .elementor-widget-text-editor p,
	body.page-id-3803 .elementor-widget-text-editor p,
	body.page-id-3750 .elementor-widget-text-editor p,
	body.page-id-5363 .elementor-widget-text-editor p,
	body.page-id-5363 .elementor-icon-box-title,
	body.page-id-5363 .elementor-icon-box-description {
		-webkit-hyphens: manual;
		hyphens: manual;
		/* break-word only splits a token that is wider than the column (asterisk chains). No hyphen. */
		overflow-wrap: break-word;
		word-break: normal;
	}

	/* wp-custom-css sets p { margin-bottom: 1em !important }.
	   These pages store one sentence per paragraph, so 1em reads as double spacing. */
	body.page-id-5305 .elementor-widget-text-editor p,
	body.page-id-3803 .elementor-widget-text-editor p,
	body.page-id-3750 .elementor-widget-text-editor p,
	body.page-id-5363 .elementor-widget-text-editor p {
		margin-bottom: 0.4em !important;
	}

	/* !important: overrides the max-width:1024px h2 clamp in this file,
	   which also matches phones and flattens 16px subtitles to ~21px. */
	body.page-id-5305 .elementor-element-c663d94 h2.elementor-heading-title,
	body.page-id-3803 .elementor-element-7e78997f h2.elementor-heading-title,
	body.page-id-3750 .elementor-element-10b91943 h2.elementor-heading-title,
	body.page-id-5363 .elementor-element-58977be h2.elementor-heading-title {
		font-size: 22px !important;
		line-height: 1.3 !important;
	}

	body.page-id-5305 .elementor-element-3ec1c59 h2.elementor-heading-title,
	body.page-id-5305 .elementor-element-5a411d9 h2.elementor-heading-title,
	body.page-id-3803 .elementor-element-49eef3fd h2.elementor-heading-title,
	body.page-id-3803 .elementor-element-54bc4bec h2.elementor-heading-title,
	body.page-id-3750 .elementor-element-204f497d h2.elementor-heading-title,
	body.page-id-3750 .elementor-element-2962efbd h2.elementor-heading-title,
	body.page-id-5363 .elementor-element-2648f229 h2.elementor-heading-title,
	body.page-id-5363 .elementor-element-37a593d6 h2.elementor-heading-title {
		font-size: 16px !important;
		line-height: 1.45 !important;
	}

	body.page-id-5305 .elementor-element-3af3820 h2.elementor-heading-title,
	body.page-id-5305 .elementor-element-765a44c h2.elementor-heading-title,
	body.page-id-5305 .elementor-element-17745f6 h2.elementor-heading-title,
	body.page-id-5305 .elementor-element-20563c2 h2.elementor-heading-title,
	body.page-id-5305 .elementor-element-f8502db h2.elementor-heading-title,
	body.page-id-5305 .elementor-element-ccb8254 h2.elementor-heading-title,
	body.page-id-5305 .elementor-element-a702ce9 h2.elementor-heading-title,
	body.page-id-5305 .elementor-element-4f2c716 h2.elementor-heading-title {
		font-size: 18px !important;
		line-height: 1.35 !important;
	}

	/* Desktop margin-bottom:-45px pulls the subtitle into a title that wraps to 3 lines. */
	.elementor-3803 .elementor-element.elementor-element-7e78997f > .elementor-widget-container,
	.elementor-3750 .elementor-element.elementor-element-10b91943 > .elementor-widget-container {
		margin: 0 0 8px;
	}

	/* Desktop margin -31px/-55px and the image's 28px left inset. */
	.elementor-3750 .elementor-element.elementor-element-2962efbd > .elementor-widget-container,
	.elementor-3750 .elementor-element.elementor-element-57ec2b55 > .elementor-widget-container {
		margin: 12px 0 0;
		padding: 0;
	}

	.elementor-3750 .elementor-element-57ec2b55 img {
		width: 100%;
		max-width: 100%;
		margin: 0 auto;
	}

	/* Button margin -45px on every side pulls "Kontaktaufnahme" out of the frame. */
	.elementor-3803 .elementor-element.elementor-element-cfe8afb > .elementor-widget-container {
		margin: 16px 0 0;
	}

	/* Astra's 20px column-gap plus the 12px bar padding pushes the burger past 360px.
	   !important beats that gap. */
	#ast-mobile-header .ast-builder-grid-row {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		column-gap: 0 !important;
		gap: 0 !important;
	}

	/* The 1024px rule above forces this frame to width 100% and margin 0,
	   so the 3px orange border sits on the viewport edge.
	   !important overrides those variables and the physical margins.
	   Width is the viewport minus both side margins, so 20px inset cannot scroll. */
	.elementor-5363 .elementor-element-43c47b2 {
		--margin-left: 20px !important;
		--margin-right: 20px !important;
		--width: calc(100% - 40px) !important;
		width: calc(100% - 40px) !important;
		max-width: calc(100% - 40px) !important;
		margin-left: 20px !important;
		margin-right: 20px !important;
		align-self: center !important;
		box-sizing: border-box !important;
	}

	/* Elementor Global Color "Text" is #5A5454. Widget 18116d9 sets that variable
	   with a more specific selector than the #000 rule at the top of this file.
	   !important keeps flow text black on phones only. */
	body.page-id-5305 .elementor-widget-text-editor,
	body.page-id-3803 .elementor-widget-text-editor,
	body.page-id-3750 .elementor-widget-text-editor,
	body.page-id-5363 .elementor-widget-text-editor,
	body.page-id-5305 .elementor-widget-text-editor p,
	body.page-id-3803 .elementor-widget-text-editor p,
	body.page-id-3750 .elementor-widget-text-editor p,
	body.page-id-5363 .elementor-widget-text-editor p,
	body.page-id-5363 .elementor-icon-box-description,
	body.page-id-5363 .elementor-icon-box-description p {
		color: #000 !important;
	}

	/* Desktop rule leaves text-shadow: 0 0 10px rgba(0,0,0,0.3) on the home intro,
	   which softens black type. The quote widget is already cleared at max-width 1024px. */
	body.page-id-5305 .elementor-element-6533377,
	body.page-id-5305 .elementor-element-6533377 p {
		text-shadow: none !important;
	}

	/* Headings use Global Color Secondary (#F58C36), the orange already bound
	   to the practice title. Quotes and section titles had no color and inherited black. */
	body.page-id-5305 .elementor-widget-heading .elementor-heading-title,
	body.page-id-3803 .elementor-widget-heading .elementor-heading-title,
	body.page-id-3750 .elementor-widget-heading .elementor-heading-title,
	body.page-id-5363 .elementor-widget-heading .elementor-heading-title,
	body.page-id-5363 .elementor-icon-box-title,
	body.page-id-5363 .elementor-icon-box-title a {
		color: var(--e-global-color-secondary);
	}

	/* Home intro is text-align:start in Elementor's max-width 767px rule.
	   Praxis and Über mich body widgets have no alignment, so they stay start.
	   !important wins against that mobile rule. */
	body.page-id-5305 .elementor-element-6533377,
	body.page-id-3803 .elementor-element-2c5a0109,
	body.page-id-3803 .elementor-element-8f22e45,
	body.page-id-3750 .elementor-element-18116d9,
	body.page-id-3750 .elementor-element-007fdb2,
	body.page-id-5305 .elementor-element-6533377 p,
	body.page-id-3803 .elementor-element-2c5a0109 p,
	body.page-id-3803 .elementor-element-8f22e45 p,
	body.page-id-3750 .elementor-element-18116d9 p,
	body.page-id-3750 .elementor-element-007fdb2 p {
		text-align: center !important;
	}
}
