/**
 * PRECISIS: Block-Styles, die in theme.json nicht (oder unpraktikabel) abgebildet werden.
 * Basis-Tokens: theme.json (Farben, Typo, Abstände).
 */

/*
 * Keine horizontale Scrollbar durch absichtlich über den Viewport ragende Layer
 * (z. B. .bg-gradient-left/right ::before). clip wirkt wie „abschneiden“, erzeugt i. d. R.
 * keinen Scroll-Container — bei Sticky-Problemen Fallback testen oder Section in Editor wrappen.
 * html + body: Browser können Scrollbreite am body messen, obwohl html gekappt ist.
 */
html {
	overflow-x: clip;
}
@supports not (overflow: clip) {
	html {
		overflow-x: hidden;
	}
}

body {
	overflow-x: clip;
}
@supports not (overflow: clip) {
	body {
		overflow-x: hidden;
	}
}

/* --- Footer: Links ohne Unterstreichung; Hover: Lime, kein Underline (Template-Part tagName footer) */
footer.wp-block-template-part a:not(.wp-block-button__link) {
	text-decoration: none;
}

footer.wp-block-template-part a:not(.wp-block-button__link):hover {
	color: var(--wp--preset--color--primary-alt, #B1D500);
	text-decoration: none;
}

/* --- Gruppen: vertikale Innenabstände (Gutenberg Block-Stile) */
.wp-block-group.is-style-precisis-pad-50,
.wp-block-group.is-style-precisis-pad-80,
.wp-block-group.is-style-precisis-pad-100 {
	box-sizing: border-box;
}

.wp-block-group.is-style-precisis-pad-50 {
	padding-top: var(--wp--preset--spacing--section-50, 3.125rem);
	padding-bottom: var(--wp--preset--spacing--section-50, 3.125rem);
}

.wp-block-group.is-style-precisis-pad-80 {
	padding-top: var(--wp--preset--spacing--section-80, 5rem);
	padding-bottom: var(--wp--preset--spacing--section-80, 5rem);
}

.wp-block-group.is-style-precisis-pad-100 {
	padding-top: var(--wp--preset--spacing--section-100, 6.25rem);
	padding-bottom: var(--wp--preset--spacing--section-100, 6.25rem);
}

/* Zusatzklasse: CTA-Zeile über volle Inhaltsbreite */
.wp-block-group.cta-box-row {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

/*
 * CTA-Zeile als Flex: alignright/float greift in Flex nicht zuverlässig.
 * margin-left: auto schiebt das Bild nach rechts (ergänzt space-between).
 */
.wp-block-group.cta-box-row.is-layout-flex > figure.wp-block-image {
	float: none;
	margin-left: auto;
	margin-right: 0;
	flex-shrink: 0;
}

/* Gleiches für The Icon Block (outermost), wenn „Inhalt rechts“ (items-justified-right) */
.wp-block-group.cta-box-row.is-layout-flex > .wp-block-outermost-icon-block.items-justified-right {
	float: none;
	margin-left: auto;
	margin-right: 0;
	flex-shrink: 0;
	width: auto;
}

/* --- Gruppe „image-card“: Bild unten ohne Radius (Card-Layout mit Fläche darunter) */
.editor-styles-wrapper .wp-block-group.image-card .wp-block-image,
.editor-styles-wrapper .wp-block-group.image-card .wp-block-image img,
.wp-block-group.image-card .wp-block-image,
.wp-block-group.image-card .wp-block-image img {
	border-bottom-left-radius: 0;
	border-bottom-right-radius: 0;
}

/*
 * Gruppe: seitlicher Radial-Glow (Zusatzklassen). ::before ragt absichtlich über die Section
 * (wie ursprünglich); horizontale Scrollbar wird am Dokument abgefangen (html overflow-x: clip).
 * Nur eine der beiden Klassen pro Block — beide nutzen ::before.
 * Kein isolation: isolate (vgl. precisis-group-radial-gradient-bg.css / sticky).
 */
.wp-block-group.bg-gradient-left,
.wp-block-group.bg-gradient-right {
	position: relative;
	overflow: visible;
}

.wp-block-group.bg-gradient-left::before,
.wp-block-group.bg-gradient-right::before {
	content: "";
	position: absolute;
	z-index: 0;
	pointer-events: none;

	width: min(160vw, 2200px);
	height: min(140vh, 1200px);

	border-radius: 1370px;
	background: radial-gradient(
		50% 50% at 50% 50%,
		var(--wp--preset--color--pill-green, #008f53) 0%,
		rgba(0, 143, 83, 0) 100%
	);

	top: 50%;
}

.wp-block-group.bg-gradient-left::before {
	left: 0;
	transform: translate(-42%, -50%);
}

.wp-block-group.bg-gradient-right::before {
	right: 0;
	left: auto;
	transform: translate(42%, -50%);
}

.wp-block-group.bg-gradient-left > *,
.wp-block-group.bg-gradient-right > * {
	position: relative;
	z-index: 1;
}

/* --- Lead-Absatz (Figma 28px; Editor + Frontend) */
.editor-styles-wrapper .wp-block-paragraph.is-style-precisis-lead,
.wp-block-paragraph.is-style-precisis-lead {
	font-size: var(--wp--preset--font-size--text-lead, 28px) !important;
	font-weight: 300;
	line-height: var(--wp--custom--line-height--body-150, 1.5);
	letter-spacing: 0;
}

/* --- Display: Oversize (z. B. Headline-Block) */
.wp-block-heading.is-style-precisis-oversize,
h1.is-style-precisis-oversize,
h2.is-style-precisis-oversize,
h3.is-style-precisis-oversize {
	font-family: var(--wp--preset--font-family--roboto, system-ui, sans-serif);
	font-size: var(--wp--preset--font-size--display-oversize, 325px);
	font-weight: 700;
	line-height: var(--wp--custom--line-height--display-80, 0.8);
	letter-spacing: 0;
	text-align: center;
}

/* --- Formular-Schritte: groß, zentriert */
.wp-block-heading.is-style-precisis-form-step,
h1.is-style-precisis-form-step,
h2.is-style-precisis-form-step,
h3.is-style-precisis-form-step {
	font-family: var(--wp--preset--font-family--roboto, system-ui, sans-serif);
	font-size: var(--wp--preset--font-size--display-form-step, 100px);
	font-weight: 300;
	line-height: var(--wp--custom--line-height--body-150, 1.5);
	letter-spacing: 0;
	text-align: center;
}

/*
 * Überschrift: Bullet + Linie (#BCCB4A) per ::before, 20px breit (Motiv wie Icon-Bibliothek).
 * Editor: gleiche Datei via add_editor_style.
 */
.wp-block-heading.is-style-precisis-headline-icon-before,
h1.is-style-precisis-headline-icon-before,
h2.is-style-precisis-headline-icon-before,
h3.is-style-precisis-headline-icon-before,
h4.is-style-precisis-headline-icon-before,
h5.is-style-precisis-headline-icon-before,
h6.is-style-precisis-headline-icon-before {
	display: flex;
	align-items: center;
	column-gap: 0.75rem;
}

.wp-block-heading.is-style-precisis-headline-icon-before::before,
h1.is-style-precisis-headline-icon-before::before,
h2.is-style-precisis-headline-icon-before::before,
h3.is-style-precisis-headline-icon-before::before,
h4.is-style-precisis-headline-icon-before::before,
h5.is-style-precisis-headline-icon-before::before,
h6.is-style-precisis-headline-icon-before::before {
	content: '';
	display: block;
	width: 20px;
	aspect-ratio: 40 / 24;
	flex-shrink: 0;
	background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 24'%3E%3Cpath fill='%23BCCB4A' d='M12.1739 24C18.8974 24 24.3478 18.6274 24.3478 12C24.3478 5.37258 18.8974 0 12.1739 0C5.45045 0 0 5.37258 0 12C0 18.6274 5.45045 24 12.1739 24Z'/%3E%3Cpath fill='none' stroke='%23BCCB4A' stroke-width='2' d='M12.1738 12H39.9999'/%3E%3C/svg%3E") center / contain no-repeat;
}

/*
 * Liste (Block-Stil): dasselbe Bullet + Linie wie Überschrift „Icon vor Text“.
 * core/list mit Stil „Bullet & Linie“ im Editor wählen.
 */
ul.wp-block-list.is-style-precisis-list-bullet-line,
.editor-styles-wrapper ul.wp-block-list.is-style-precisis-list-bullet-line {
	list-style: none;
	padding-inline-start: 0;
	margin-inline-start: 0;
}

ul.wp-block-list.is-style-precisis-list-bullet-line li,
.editor-styles-wrapper ul.wp-block-list.is-style-precisis-list-bullet-line li {
	position: relative;
	padding-left: calc(20px + 0.75rem);
	margin-bottom: 0.35em;
	list-style: none;
}

ul.wp-block-list.is-style-precisis-list-bullet-line li::before,
.editor-styles-wrapper ul.wp-block-list.is-style-precisis-list-bullet-line li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0.43em;
	width: 20px;
	aspect-ratio: 40 / 24;
	background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 24'%3E%3Cpath fill='%23BCCB4A' d='M12.1739 24C18.8974 24 24.3478 18.6274 24.3478 12C24.3478 5.37258 18.8974 0 12.1739 0C5.45045 0 0 5.37258 0 12C0 18.6274 5.45045 24 12.1739 24Z'/%3E%3Cpath fill='none' stroke='%23BCCB4A' stroke-width='2' d='M12.1738 12H39.9999'/%3E%3C/svg%3E") center / contain no-repeat;
}

ul.wp-block-list.is-style-precisis-list-bullet-line ul,
.editor-styles-wrapper ul.wp-block-list.is-style-precisis-list-bullet-line ul {
	list-style: none;
	padding-inline-start: 1.25rem;
	margin: 0.35em 0 0.15em;
}

/* --- Button-Varianten (zusätzlich zu theme.json-Standard-Button) */
.wp-block-button.is-style-precisis-button-primary .wp-block-button__link,
.wp-block-button.is-style-precisis-button-secondary .wp-block-button__link {
	/* Kein nowrap: in schmalen Containern (z. B. History) sonst horizontaler Overflow. */
	max-width: 100%;
	box-sizing: border-box;
	overflow-wrap: normal;
	word-break: normal;
}

.wp-block-button.is-style-precisis-button-primary .wp-block-button__link {
	background-color: var(--wp--preset--color--primary, #95bc5f) !important;
	color: var(--wp--preset--color--primary-alt-accent, #1f3b4c) !important;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.wp-block-button.is-style-precisis-button-primary .wp-block-button__link:hover,
.wp-block-button.is-style-precisis-button-primary .wp-block-button__link:focus-visible {
	background-color: var(--wp--preset--color--primary-alt, #b1d500) !important;
	color: var(--wp--preset--color--primary-alt-accent, #1f3b4c) !important;
}

.wp-block-button.is-style-precisis-button-secondary .wp-block-button__link {
	background-color: var(--wp--preset--color--button-secondary, rgba(255, 255, 255, 0.5)) !important;
	color: var(--wp--preset--color--primary-alt-accent, #1f3b4c) !important;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.wp-block-button.is-style-precisis-button-secondary .wp-block-button__link:hover,
.wp-block-button.is-style-precisis-button-secondary .wp-block-button__link:focus-visible {
	background-color: rgba(255, 255, 255, 1) !important;
}

/* --- Media & Text: Innenabstand Textspalte */
.wp-block-media-text > .wp-block-media-text__content {
	padding: var(--wp--preset--spacing--large);
	box-sizing: border-box;
}

/* --- Zitat: normale Schrift (25px / 300), kein linker Rand (Parent-Theme kann Rand setzen) */
.wp-block-quote {
	position: relative;
	overflow: visible;
	margin-block-start: 5.5rem;
	margin-block-end: 5.5rem;
	border: none !important;
	border-width: 0 !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	font-size: 25px !important;
	font-weight: 300 !important;
	line-height: var(--wp--custom--line-height--body-150, 1.5);
}

/* Deko-Anführungszeichen: Custom Apostroph-Paare (.svg als Maske); Farbe über background-color */
.wp-block-quote::before,
.wp-block-quote::after {
	--precisis-quote-mark-svg: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2051%2047%22%3E%3Cpath%20fill%3D%22white%22%20d%3D%22M18.8477%2026.4648V46.875H0V30.7617C0%2022.0378%201.04167%2015.7227%203.125%2011.8164C5.85938%206.60807%2010.1888%202.66927%2016.1133%200L20.4102%206.83594C16.8294%208.33333%2014.1927%2010.5794%2012.5%2013.5742C10.8073%2016.5039%209.86328%2020.8008%209.66797%2026.4648H18.8477ZM49.1211%2026.4648V46.875H30.2734V30.7617C30.2734%2022.0378%2031.3151%2015.7227%2033.3984%2011.8164C36.1328%206.60807%2040.4622%202.66927%2046.3867%200L50.6836%206.83594C47.1029%208.33333%2044.4661%2010.5794%2042.7734%2013.5742C41.0807%2016.5039%2040.1367%2020.8008%2039.9414%2026.4648H49.1211Z%22%2F%3E%3C%2Fsvg%3E");
	content: '';
	position: absolute;
	width: 2rem;
	aspect-ratio: 51 / 47;
	height: auto;
	pointer-events: none;
	background-color: var(--wp--preset--color--base, #ffffff);
	-webkit-mask-image: var(--precisis-quote-mark-svg);
	mask-image: var(--precisis-quote-mark-svg);
	-webkit-mask-size: 100% 100%;
	mask-size: 100% 100%;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
}

/* Oben links, Original-Orientierung, über dem Zitat */
.wp-block-quote::before {
	left: 0px;
	top: -10px;
	-webkit-mask-position: left center;
	mask-position: left center;
	transform: translate(0, calc(-100% - 0.25rem));
	transform-origin: center;
}

/* Unten rechts, 180° gedreht */
.wp-block-quote::after {
	right: 0px;
	bottom: -10px;
	-webkit-mask-position: right center;
	mask-position: right center;
	transform: translate(0, calc(100% + 0.25rem)) rotate(180deg);
	transform-origin: center;
}

.wp-block-quote cite {
	font-weight: 300;
}

/*
 * Main: nach oben ziehen (Hero), fest im Child. Nur --precisis-main-offset anpassen (positiver Wert = px).
 * Ausnahme: Blog-Übersicht (is_home) und Einzelbeiträge — Klasse precisis-blog-main-no-hero-pull (siehe functions.php).
 * Header: höheres z-index, sonst überlappt main (später im DOM) die Navigation trotz negativem main-Margin.
 * max-height: verhindert Höhenwuchs (z. B. Suchfeld/Blöcke); overflow sichtbar für überstehende Navigation.
 */
body:not( .wp-admin ) .wp-site-blocks > header,
.editor-styles-wrapper .wp-site-blocks > header {
	position: relative;
	z-index: 1;
	max-height: 100px;
	overflow: visible;
}

/* Header: horizontale Abstände (Zusatzklassen auf den jeweiligen Blöcken) */
.wp-site-blocks > header .header-login-icon,
.editor-styles-wrapper .header-login-icon {
	margin-right: 40px;
}

.wp-site-blocks > header .header-lang-switch,
.editor-styles-wrapper .header-lang-switch {
	margin-right: 20px;
}

.wp-site-blocks > header .header-search,
.editor-styles-wrapper .header-search {
	margin-right: 20px;
}

@media (max-width: 781px) {
	.wp-site-blocks > header .header-login-icon,
	.editor-styles-wrapper .header-login-icon {
		margin-right: 20px;
	}

	.wp-site-blocks > header .header-lang-switch,
	.editor-styles-wrapper .header-lang-switch {
		margin-right: 10px;
	}

	.wp-site-blocks > header .header-search,
	.editor-styles-wrapper .header-search {
		margin-right: 15px;
	}
}

body:not( .wp-admin ) .wp-site-blocks > main {
	--precisis-main-offset: 100px;
	margin-block-start: 0 !important;
	margin-top: calc( -1 * var( --precisis-main-offset ) ) !important;
	position: relative;
	z-index: 0;
}

body:not( .wp-admin ).precisis-blog-main-no-hero-pull .wp-site-blocks > main {
	margin-top: 0 !important;
}

/* --- Polylang: Language Switcher Liste (Header): Typo + Dropdown-Verhalten (JS: precisis-polylang-lang-switcher.js) */
ul.wp-block-polylang-language-switcher {
	list-style: none;
	margin: 0;
	padding: 0;
	position: relative;
	font-size: 22px;
	font-weight: 400;
	color: #fff;
}

ul.wp-block-polylang-language-switcher a {
	color: inherit;
	text-decoration: none;
}

ul.wp-block-polylang-language-switcher a:hover,
ul.wp-block-polylang-language-switcher a:focus-visible {
	opacity: 0.9;
	text-decoration: none;
}

/* Nur wenn JS die Liste verbessert hat: andere Sprachen eingeklappt */
ul.wp-block-polylang-language-switcher.precisis-polylang-switcher--ready:not(.is-open) > li.lang-item:not(.current-lang) {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Out-of-flow Dropdown: ul-Höhe bleibt eine Zeile → kein Hochrutschen bei Header align-items:center */
nav:has(> ul.wp-block-polylang-language-switcher.precisis-polylang-switcher--ready) {
	display: inline-flex;
	align-items: center;
	align-self: center;
	height: auto;
}

.editor-styles-wrapper nav:has(> ul.wp-block-polylang-language-switcher.precisis-polylang-switcher--ready) {
	display: inline-flex;
	align-items: center;
}

ul.wp-block-polylang-language-switcher.precisis-polylang-switcher--ready {
	display: block;
}

ul.wp-block-polylang-language-switcher.precisis-polylang-switcher--ready.is-open {
	z-index: 50;
}

ul.wp-block-polylang-language-switcher.precisis-polylang-switcher--ready.is-open > li.lang-item:not(.current-lang) {
	position: absolute;
	left: 0;
	width: max-content;
	max-width: min(90vw, 20rem);
	margin: 0;
	overflow: visible;
	clip: auto;
	white-space: normal;
	/* top: per JS */
}

ul.wp-block-polylang-language-switcher.precisis-polylang-switcher--ready .lang-item.current-lang {
	display: inline-flex;
	align-items: center;
	gap: 0.2em;
	line-height: 1;
}

ul.wp-block-polylang-language-switcher.precisis-polylang-switcher--ready .lang-item.current-lang > a {
	line-height: 1;
}

button.precisis-lang-switcher__toggle {
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	min-width: 1.2em;
	min-height: 2em;
	width: 1.2em;
	height: 2em;
	margin: 0 0 0 -0.04em;
	padding: 0;
	border: 0;
	border-radius: 4px;
	background: transparent
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")
		center / 0.95em no-repeat;
	cursor: pointer;
	flex-shrink: 0;
	transform-origin: center center;
	transition: transform 0.15s ease;
}

ul.wp-block-polylang-language-switcher.is-open .precisis-lang-switcher__toggle {
	transform: rotate(180deg);
}

button.precisis-lang-switcher__toggle:focus-visible {
	outline: none;
	box-shadow: 0 0 0 2px #fff;
}

.widget_polylang {
	font-size: 22px;
	font-weight: 400;
}

/*
 * Navigation-Block: Parent kann core/navigation auf font-weight 500 setzen — Sprach-Switcher explizit 400 / 22px.
 */
.wp-block-polylang-navigation-language-switcher,
.wp-block-polylang-navigation-language-switcher .wp-block-navigation-item__content,
.wp-block-polylang-navigation-language-switcher a {
	font-size: 22px;
	font-weight: 400;
}



.precisis-page-nav svg {
	max-height: 130px;
}

li.easee-survey__step-item{
	margin-bottom: 0 !important;
}

.wp-block-precisis-easee-survey .easee-survey__surface{
	padding: var(--wp--preset--spacing--large) !important;
}
.wp-block-accordion-panel{
	padding-left: 40px !important;
	padding-top: 20px !important;
}
.wp-block-accordion-heading__toggle-icon{
	width: 40px !important;
}



.blog .is-style-precisis-radial-gradient-bg, .archive .is-style-precisis-radial-gradient-bg, .single-post .is-style-precisis-radial-gradient-bg{
	margin-top: -100px !important;
}

@media (max-width: 781px) {
	.blog .is-style-precisis-radial-gradient-bg .precisis-hero-rings__col, .archive .is-style-precisis-radial-gradient-bg .precisis-hero-rings__col{
		margin-top: -130px !important;
	}
}

