/*
Theme Name:   ALZ Beschriftungen (Blocksy Child)
Theme URI:    https://alz-beschriftungen.ch/
Description:  Child-Theme für Blocksy mit dem neuen Design von ALZ Beschriftungen. Seiten werden als Elementor-Seiten (Gratis-Version) angelegt. Enthält Einrichtung, Kontaktformular, Footer, Wartungsmodus, Cookie-Banner und lokale SEO-Daten.
Author:       ALZ GmbH
Template:     blocksy
Version:      1.23.0
Requires at least: 6.4
Requires PHP: 7.4
License:      GNU General Public License v2 or later
Text Domain:  alz
*/

/* ==========================================================================
   1. Schriften (lokal gehostet, DSG/DSGVO-freundlich)
   ========================================================================== */
@font-face {
	font-family: "Archivo";
	font-style: normal;
	font-display: swap;
	font-weight: 100 900;
	font-stretch: 62% 125%;
	src: url("assets/fonts/archivo-var.woff2") format("woff2-variations"), url("assets/fonts/archivo-var.woff2") format("woff2");
}
@font-face {
	font-family: "Inter";
	font-style: normal;
	font-display: swap;
	font-weight: 100 900;
	src: url("assets/fonts/inter-var.woff2") format("woff2-variations"), url("assets/fonts/inter-var.woff2") format("woff2");
}

/* ==========================================================================
   2. Design-Tokens
   Farben hier zentral ändern. --alz-brand = Logo-Blau (#007FFF).
   --alz-action = Button-Blau (etwas tiefer, damit weisse Schrift gut lesbar ist).
   --alz-deep = kleine blaue Schrift auf Weiss, --alz-brand-light = auf Dunkel.
   ========================================================================== */
:root {
	--alz-brand: #007fff;
	--alz-brand-light: #4da8ff;
	--alz-action: #0070e6;
	--alz-action-hover: #005fc4;
	--alz-deep: #0066d6;
	--alz-ink: #0b1624;
	--alz-ink-2: #152537;
	--alz-text: #3b4754;
	--alz-muted: #647282;
	--alz-on-dark: #b3c1ce;
	--alz-line: #dce6f1;
	--alz-soft: #eef5fd;
	--alz-white: #ffffff;
	--alz-radius: 18px;
	--alz-radius-sm: 10px;
	--alz-max: 1200px;
	--alz-gutter: clamp(16px, 4vw, 32px);
	--alz-section-y: clamp(64px, 9vw, 120px);
	--alz-font-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--alz-font-head: "Archivo", "Inter", system-ui, sans-serif;
	--alz-shadow: 0 1px 2px rgba(15, 27, 38, .05), 0 14px 34px -14px rgba(15, 27, 38, .22);
}

:root:root {
	--theme-font-family: var(--alz-font-body);
}

body[class] {
	font-family: var(--alz-font-body);
	color: var(--alz-text);
	-webkit-font-smoothing: antialiased;
}

body[class] :is(h1, h2, h3, h4, h5, h6),
body[class] .site-title {
	font-family: var(--alz-font-head);
	font-stretch: 88%;
	color: var(--alz-ink);
	letter-spacing: -0.015em;
}

/* ==========================================================================
   3. Header & Menü (Blocksy)
   ========================================================================== */
body .ct-header [data-row*="middle"] {
	border-bottom: 1px solid var(--alz-line);
}
body .ct-header .menu > li > a {
	font-weight: 600;
	font-size: 15px;
}
/* Logo */
body .ct-header [data-id="logo"] { --logo-max-height: 54px; }
body .ct-header .site-logo-container img { max-height: 54px; width: auto; }
/* Neben dem Logo keinen Seitentitel anzeigen (steht bereits im Logo) */
body .ct-header .site-branding:has(.site-logo-container img) .site-title-container { display: none; }
@media (max-width: 999px) {
	body .ct-header [data-id="logo"] { --logo-max-height: 42px; }
	body .ct-header .site-logo-container img { max-height: 42px; }
}

/* Menüpunkt mit CSS-Klasse "alz-menu-cta" wird zum Button */
body .ct-header .menu > li.alz-menu-cta > a,
body .ct-header .menu > li.alz-menu-cta:last-child > a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	white-space: nowrap;
	background: var(--alz-action);
	color: #fff !important;
	border-radius: 999px;
	padding-inline: 24px !important;
	padding-block: 0 !important;
	min-height: 44px;
	height: 44px;
	margin-inline-start: 12px;
	margin-inline-end: 0;
	line-height: 1;
	transition: background .2s ease, transform .2s ease;
}
body .ct-header .menu > li.alz-menu-cta > a:hover {
	background: var(--alz-action-hover);
	transform: translateY(-1px);
}
body .ct-header .menu > li.alz-menu-cta > a::after { display: none; }

/* ==========================================================================
   4. Grundgerüst der ALZ-Seiten (Elementor)
   Nur Container mit "alz-"-Klassen werden hier gesteuert. Eigene neue
   Container in Elementor verhalten sich ganz normal.
   ========================================================================== */
body.alz-page { overflow-x: clip; }
body.alz-page .hero-section,
body.alz-page .entry-header { display: none; }

body.alz-page .e-con[class*="alz-"] {
	--padding-top: 0px;
	--padding-right: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	--row-gap: 0px;
	--column-gap: 0px;
	--gap: 0px;
	--display: flex;
	--flex-direction: column;
	--flex-wrap: nowrap;
	--align-items: stretch;
	--justify-content: flex-start;
	--container-widget-width: 100%;
	position: relative;
}
body.alz-page .e-con[class*="alz-"] > .elementor-widget { width: 100%; max-width: 100%; }

body.alz-page .elementor-widget-text-editor p { margin: 0 0 .9em; }
body.alz-page .elementor-widget-text-editor :is(p, ul):last-child { margin-bottom: 0; }
body.alz-page .elementor .elementor-heading-title { line-height: 1.15; }

body.alz-page .e-con.alz-container {
	width: 100%;
	max-width: calc(var(--alz-max) + 2 * var(--alz-gutter));
	margin-inline: auto;
	padding-inline: var(--alz-gutter);
	box-sizing: border-box;
}

body.alz-page .e-con.alz-section { padding-block: var(--alz-section-y); background: var(--alz-white); }
body.alz-page .e-con.alz-soft { background: var(--alz-soft); }
body.alz-page .e-con.alz-stack { gap: 16px; }
body.alz-page .e-con.alz-stack > .alz-eyebrow { margin-bottom: -4px; }
body.alz-page .e-con.alz-stack > .alz-buttons { margin-top: 12px; }
body.alz-page .e-con.alz-stack > .alz-more { margin-top: 6px; }

/* Typografie */
body.alz-page .elementor p { line-height: 1.65; }
body.alz-page .elementor h1.elementor-heading-title { font-size: clamp(38px, 6vw, 72px); line-height: 1.02; font-weight: 800; color: #fff; }
body.alz-page .elementor h2.elementor-heading-title { font-size: clamp(30px, 3.6vw, 46px); line-height: 1.08; font-weight: 750; }
body.alz-page .elementor h3.elementor-heading-title { font-size: 21px; line-height: 1.25; font-weight: 700; }

body.alz-page .alz-eyebrow .elementor-heading-title {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--alz-font-body);
	font-stretch: normal;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .12em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--alz-deep);
}
body.alz-page .alz-eyebrow .elementor-heading-title::before {
	content: "";
	width: 22px;
	height: 3px;
	border-radius: 2px;
	background: var(--alz-brand);
	flex: none;
}
body.alz-page :is(.alz-hero, .alz-page-hero, .alz-dark) .alz-eyebrow .elementor-heading-title { color: var(--alz-brand-light); }
body.alz-page :is(.alz-hero, .alz-page-hero, .alz-dark) .alz-eyebrow .elementor-heading-title::before { background: var(--alz-brand-light); }

body.alz-page .alz-lead { font-size: clamp(17px, 1.6vw, 20px); color: var(--alz-muted); max-width: 640px; }
body.alz-page .alz-muted { color: var(--alz-muted); }
body.alz-page .alz-body { font-size: 17px; }

body.alz-page .e-con.alz-section-head { max-width: 720px; margin-bottom: clamp(32px, 5vw, 56px); gap: 14px; }
body.alz-page .alz-section-head .alz-muted { font-size: 18px; }

body.alz-page .alz-more a {
	font-weight: 700;
	color: var(--alz-ink);
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	border-bottom: 2px solid var(--alz-brand);
	padding-bottom: 2px;
}
body.alz-page .alz-more a::after { content: "→"; transition: transform .2s ease; }
body.alz-page .alz-more a:hover { color: var(--alz-deep); }
body.alz-page .alz-more a:hover::after { transform: translateX(4px); }

/* Raster */
body.alz-page .e-con.alz-grid { display: grid; gap: clamp(16px, 2vw, 24px); }
body.alz-page .e-con.alz-grid > .e-con { width: auto; margin: 0; }
body.alz-page .e-con.alz-grid-2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
body.alz-page .e-con.alz-grid-3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
body.alz-page .e-con.alz-grid-4 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }

/* Spalten */
body.alz-page .e-con.alz-cols {
	--flex-direction: row;
	--flex-wrap: wrap;
	--align-items: flex-start;
	gap: clamp(28px, 5vw, 72px);
}
body.alz-page .e-con.alz-cols > .e-con.alz-col { flex: 1 1 320px; width: auto; min-width: 0; }
body.alz-page .e-con.alz-cols > .alz-col-wide { flex-grow: 1.6; }
body.alz-page .e-con.alz-cols > .alz-col-narrow { flex-grow: .9; }
body.alz-page .e-con.alz-cols > .alz-col-60 { flex-grow: 1.5; }
body.alz-page .e-con.alz-split { --align-items: center; }

/* ==========================================================================
   5. Buttons
   ========================================================================== */
body.alz-page .e-con.alz-buttons { --flex-direction: row; --flex-wrap: wrap; gap: 12px; }
body.alz-page .e-con.alz-buttons > .elementor-widget-button { width: auto; }
body.alz-page [class*="alz-btn-"] .elementor-button {
	border-radius: 999px;
	padding: 15px 28px;
	font-family: var(--alz-font-body);
	font-weight: 700;
	font-size: 16px;
	line-height: 1.2;
	border: 2px solid transparent;
	transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
	box-shadow: none;
}
body.alz-page [class*="alz-btn-"] .elementor-button:hover { transform: translateY(-2px); }
body.alz-page .alz-btn-primary .elementor-button { background: var(--alz-action); color: #fff; }
body.alz-page .alz-btn-primary .elementor-button:hover { background: var(--alz-action-hover); color: #fff; }
body.alz-page .alz-btn-ghost .elementor-button { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .35); }
body.alz-page .alz-btn-ghost .elementor-button:hover { border-color: #fff; color: #fff; }
body.alz-page .alz-btn-light .elementor-button { background: #fff; color: var(--alz-ink); }
body.alz-page .alz-btn-light .elementor-button:hover { background: var(--alz-soft); color: var(--alz-ink); }
body.alz-page .alz-btn-dark .elementor-button { background: var(--alz-ink); color: #fff; }
body.alz-page .alz-btn-dark .elementor-button:hover { background: var(--alz-ink-2); color: #fff; }
body.alz-page .alz-btn-outline-dark .elementor-button { background: transparent; color: var(--alz-ink); border-color: rgba(15, 27, 38, .35); }
body.alz-page .alz-btn-outline-dark .elementor-button:hover { border-color: var(--alz-ink); color: var(--alz-ink); }

/* ==========================================================================
   6. Hero Startseite & Unterseiten
   ========================================================================== */
body.alz-page .e-con.alz-hero {
	background-color: var(--alz-ink);
	background-image:
		radial-gradient(circle at 88% 8%, color-mix(in srgb, var(--alz-brand) 38%, transparent), transparent 38%),
		radial-gradient(circle at 10% 100%, color-mix(in srgb, var(--alz-brand) 14%, transparent), transparent 40%),
		linear-gradient(rgba(255, 255, 255, .04) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, .04) 1px, transparent 1px);
	background-size: auto, auto, 56px 56px, 56px 56px;
	color: var(--alz-on-dark);
	padding-block: clamp(56px, 9vw, 128px) clamp(64px, 9vw, 120px);
	overflow: hidden;
}
body.alz-page .alz-hero .alz-lead { color: var(--alz-on-dark); }
body.alz-page .alz-mark { color: var(--alz-brand-light); white-space: nowrap; }
body.alz-page .e-con.alz-hero-grid { --align-items: center; }

body.alz-page .alz-hero-img { text-align: center; padding: 0 18px 18px 0; }
body.alz-page .alz-hero-img img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: 24px;
	transform: rotate(1.5deg);
	box-shadow: 18px 18px 0 -2px var(--alz-ink), 18px 18px 0 0 var(--alz-brand), 0 30px 80px -20px rgba(0, 0, 0, .6);
}

body.alz-page ul.alz-trust {
	list-style: none;
	padding: 0;
	margin: 24px 0 0;
	display: flex;
	flex-wrap: wrap;
	gap: 10px 28px;
	font-size: 14px;
	color: var(--alz-on-dark);
}
body.alz-page .alz-trust li { margin: 0; }
body.alz-page .alz-trust strong { color: #fff; font-weight: 700; margin-right: 4px; }
body.alz-page .alz-hero .alz-trust li:first-child strong { color: #f5b301; letter-spacing: 1px; }

body.alz-page .e-con.alz-page-hero {
	background-color: var(--alz-ink);
	background-image: radial-gradient(circle at 92% 120%, color-mix(in srgb, var(--alz-brand) 34%, transparent), transparent 42%);
	padding-block: clamp(56px, 8vw, 104px);
}
body.alz-page .alz-page-hero h1.elementor-heading-title { max-width: 860px; font-size: clamp(36px, 5vw, 60px); }
body.alz-page .alz-page-hero .alz-lead { color: var(--alz-on-dark); }

/* ==========================================================================
   7. Karten, Fakten, Ablauf, Bewertungen, Logos
   ========================================================================== */
body.alz-page .e-con.alz-card {
	background: #fff;
	border: 1px solid var(--alz-line);
	border-radius: var(--alz-radius);
	padding: 28px 26px 26px;
	gap: 10px;
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
body.alz-page .e-con.alz-card:hover { transform: translateY(-4px); box-shadow: var(--alz-shadow); border-color: transparent; }
body.alz-page .alz-card .elementor-widget-text-editor { color: var(--alz-muted); }
body.alz-page .e-con.alz-card > .alz-more { margin-top: auto; padding-top: 10px; }

body.alz-page .e-con.alz-grid { counter-reset: alz; }
body.alz-page .e-con.alz-card-num { counter-increment: alz; }
body.alz-page .alz-card-num .elementor-widget-heading .elementor-heading-title::before {
	content: counter(alz, decimal-leading-zero);
	font-family: var(--alz-font-head);
	font-weight: 800;
	font-size: 15px;
	color: var(--alz-deep);
	background: color-mix(in srgb, var(--alz-brand) 18%, #fff);
	width: 46px;
	height: 46px;
	border-radius: 12px;
	display: grid;
	place-items: center;
	margin-bottom: 20px;
}

body.alz-page .e-con.alz-dark { background: var(--alz-ink); color: var(--alz-on-dark); }
body.alz-page .alz-dark :is(h2, h3).elementor-heading-title { color: #fff; }
body.alz-page .e-con.alz-fact {
	border-top: 3px solid var(--alz-brand);
	background: var(--alz-ink-2);
	border-radius: 0 0 var(--alz-radius-sm) var(--alz-radius-sm);
	padding: 24px 22px;
	gap: 10px;
}

body.alz-page .e-con.alz-steps { counter-reset: step; }
body.alz-page .e-con.alz-step { counter-increment: step; gap: 10px; }
body.alz-page .alz-step .elementor-heading-title::before {
	content: counter(step);
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--alz-ink);
	box-shadow: 0 0 0 5px color-mix(in srgb, var(--alz-brand) 30%, transparent);
	color: #fff;
	font-family: var(--alz-font-head);
	font-weight: 800;
	font-size: 18px;
	display: grid;
	place-items: center;
	margin-bottom: 20px;
}
body.alz-page .alz-step .elementor-widget-text-editor { color: var(--alz-muted); }

body.alz-page .e-con.alz-review {
	background: #fff;
	border-radius: var(--alz-radius);
	padding: 28px;
	box-shadow: var(--alz-shadow);
	gap: 16px;
}
body.alz-page .alz-review .elementor-widget-text-editor p { font-size: 17px; color: var(--alz-ink); }
body.alz-page .alz-review .elementor-widget-text-editor p.alz-stars { color: #f5b301; letter-spacing: 2px; font-size: 18px; margin-bottom: 10px; }
body.alz-page .alz-review > .alz-review-name { margin-top: auto; }
body.alz-page .alz-review-name .elementor-heading-title { font-family: var(--alz-font-body); font-stretch: normal; font-size: 14px; font-weight: 700; color: var(--alz-muted); }

body.alz-page .e-con.alz-logos {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(46%, 170px), 1fr));
	gap: 14px;
}
body.alz-page .alz-logos > .alz-logo { width: auto; }
body.alz-page .alz-logo a {
	background: #fff;
	border: 1px solid var(--alz-line);
	border-radius: var(--alz-radius-sm);
	aspect-ratio: 3 / 2;
	display: grid;
	place-items: center;
	padding: 14px;
	transition: border-color .2s ease, box-shadow .2s ease;
}
body.alz-page .alz-logo a:hover { border-color: transparent; box-shadow: var(--alz-shadow); }
body.alz-page .alz-logo img {
	max-height: 70px;
	width: auto;
	max-width: 100%;
	object-fit: contain;
	filter: grayscale(1);
	opacity: .75;
	transition: filter .2s ease, opacity .2s ease;
}
body.alz-page .alz-logo a:hover img { filter: none; opacity: 1; }

/* CTA */
body.alz-page .e-con.alz-cta { padding-top: 0; }
body.alz-page .e-con.alz-soft + .e-con.alz-cta,
body.alz-page .e-con.alz-dark + .e-con.alz-cta { padding-top: var(--alz-section-y); }
body.alz-page .e-con.alz-cta-box {
	--flex-direction: row;
	--flex-wrap: wrap;
	--align-items: center;
	--justify-content: space-between;
	background-color: var(--alz-action);
	background-image: repeating-linear-gradient(-45deg, rgba(255, 255, 255, .08) 0 2px, transparent 2px 22px);
	border-radius: 28px;
	padding: clamp(32px, 5vw, 64px);
	gap: 24px 40px;
	overflow: hidden;
}
body.alz-page .e-con.alz-cta-box > .alz-cta-text { flex: 1 1 380px; width: auto; gap: 10px; }
body.alz-page .e-con.alz-cta-box > .alz-buttons { width: auto; flex: 0 1 auto; }
body.alz-page .alz-cta-text h2.elementor-heading-title { color: #fff; }
body.alz-page .alz-cta-text .elementor-widget-text-editor { color: #fff; font-size: 18px; }

/* ==========================================================================
   8. Dienstleistungen
   ========================================================================== */
body.alz-page .e-con.alz-service {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px 64px;
	padding-block: clamp(36px, 5vw, 56px);
	border-top: 1px solid var(--alz-line);
	scroll-margin-top: 100px;
}
body.alz-page .e-con.alz-service:first-child { border-top: 0; padding-top: 0; }
body.alz-page .e-con.alz-service > * { width: auto; }
body.alz-page .e-con.alz-service-text { gap: 12px; }
body.alz-page .alz-service-num .elementor-heading-title {
	font-family: var(--alz-font-head);
	font-weight: 800;
	font-size: 15px;
	color: var(--alz-deep);
}
body.alz-page ul.alz-chips {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	align-content: flex-start;
	gap: 10px;
}
body.alz-page ul.alz-chips li {
	margin: 0;
	background: var(--alz-soft);
	border: 1px solid var(--alz-line);
	border-radius: 999px;
	padding: 9px 16px;
	font-size: 15px;
	font-weight: 600;
	color: var(--alz-ink);
	line-height: 1.3;
}
body.alz-page .alz-rounded-img img { border-radius: var(--alz-radius); width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }

/* ==========================================================================
   9. Kontakt
   ========================================================================== */
body.alz-page .e-con.alz-form-card {
	background: #fff;
	border: 1px solid var(--alz-line);
	border-radius: 24px;
	padding: clamp(24px, 4vw, 40px);
	box-shadow: var(--alz-shadow);
	gap: 18px;
	scroll-margin-top: 100px;
}
body.alz-page .alz-form-card h2.elementor-heading-title { font-size: 28px; }
body.alz-page .e-con.alz-location {
	border-left: 3px solid var(--alz-brand);
	padding: 4px 0 4px 22px;
	margin-bottom: 32px;
	gap: 8px;
}
body.alz-page .alz-location p { margin: 0 0 8px; }
body.alz-page .alz-location .alz-phone a {
	font-family: var(--alz-font-head);
	font-size: 24px;
	font-weight: 750;
	color: var(--alz-ink);
	text-decoration: none;
}
body.alz-page .alz-location .alz-phone a:hover { color: var(--alz-deep); }
body.alz-page .alz-location a { color: var(--alz-ink); font-weight: 600; }
body.alz-page .alz-location .alz-route a { text-decoration: none; border-bottom: 2px solid var(--alz-brand); }

/* Formular */
.alz-form { display: grid; gap: 16px; }
.alz-form .alz-row { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }
.alz-form label { display: block; font-size: 14px; font-weight: 600; color: var(--alz-ink); margin-bottom: 6px; }
.alz-form label .req { color: var(--alz-deep); }
.alz-form input[type="text"],
.alz-form input[type="email"],
.alz-form input[type="tel"],
.alz-form select,
.alz-form textarea {
	width: 100%;
	border: 1.5px solid var(--alz-line);
	border-radius: 12px;
	background: #fbfdfe;
	padding: 13px 14px;
	font: inherit;
	font-size: 16px;
	color: var(--alz-ink);
	transition: border-color .2s ease, box-shadow .2s ease;
	box-sizing: border-box;
	height: auto;
}
.alz-form textarea { min-height: 150px; resize: vertical; }
.alz-form :is(input, select, textarea):focus {
	outline: none;
	border-color: var(--alz-brand);
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--alz-brand) 25%, transparent);
}
.alz-form .alz-check { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; color: var(--alz-muted); }
.alz-form .alz-check input { margin-top: 3px; width: 18px; height: 18px; accent-color: var(--alz-deep); flex: none; }
.alz-form .alz-check label { font-weight: 400; color: var(--alz-muted); margin: 0; }
.alz-form .alz-check a { color: var(--alz-deep); }
.alz-form .alz-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.alz-form button {
	justify-self: start;
	background: var(--alz-action);
	color: #fff;
	border: 0;
	border-radius: 999px;
	padding: 15px 30px;
	font: inherit;
	font-weight: 700;
	font-size: 16px;
	cursor: pointer;
	transition: background .2s ease, transform .2s ease;
}
.alz-form button:hover { background: var(--alz-action-hover); transform: translateY(-2px); }
.alz-files .alz-drop {
	position: relative;
	display: grid;
	justify-items: center;
	gap: 4px;
	padding: 22px 16px;
	border: 2px dashed color-mix(in srgb, var(--alz-brand) 45%, var(--alz-line));
	border-radius: 14px;
	background: var(--alz-soft);
	text-align: center;
	color: var(--alz-muted);
	transition: border-color .2s ease, background .2s ease;
}
.alz-files .alz-drop:hover,
.alz-files .alz-drop.is-over,
.alz-files .alz-drop:focus-within { border-color: var(--alz-brand); background: color-mix(in srgb, var(--alz-brand) 10%, #fff); }
.alz-files .alz-drop input[type="file"] { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; font-size: 0; }
.alz-files .alz-drop svg { width: 30px; height: 30px; color: var(--alz-brand); }
.alz-files .alz-drop-main { font-size: 15px; color: var(--alz-ink); }
.alz-files .alz-drop-main strong { color: var(--alz-deep); }
.alz-files .alz-drop-sub { font-size: 12.5px; letter-spacing: .02em; }
.alz-files .alz-files-hint { margin: 8px 0 0; font-size: 13.5px; color: var(--alz-muted); }
.alz-files .alz-files-list { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 6px; }
.alz-files .alz-files-list:empty { display: none; }
.alz-files .alz-files-list li {
	font-size: 14px;
	color: var(--alz-ink);
	background: #fff;
	border: 1px solid var(--alz-line);
	border-radius: 10px;
	padding: 8px 12px 8px 34px;
	position: relative;
	overflow-wrap: anywhere;
}
.alz-files .alz-files-list li::before { content: ""; position: absolute; left: 12px; top: 50%; width: 12px; height: 12px; margin-top: -6px; border-radius: 3px; background: var(--alz-brand); }
.alz-files .alz-files-list li.is-bad { border-color: #e5a29c; color: #a4221b; }
.alz-files .alz-files-list li.is-bad::before { background: #d63638; }
.alz-files .alz-files-err { margin: 8px 0 0; font-size: 14px; font-weight: 600; color: #a4221b; }
.alz-form button:disabled { opacity: .7; cursor: progress; transform: none; }
.alz-notice { border-radius: 12px; padding: 14px 16px; margin-bottom: 18px; font-weight: 600; }
.alz-notice.is-ok { background: #e8f6ee; color: #11683a; }
.alz-notice.is-error { background: #fdecea; color: #a4221b; }

.alz-insta { margin-top: 48px; }

/* ==========================================================================
   10. Footer (ersetzt den Blocksy-Footer)
   ========================================================================== */
.alz-footer {
	background: var(--alz-ink);
	color: var(--alz-on-dark);
	font-size: 15px;
	padding-top: clamp(56px, 7vw, 88px);
}
.alz-footer .alz-container {
	max-width: calc(var(--alz-max) + 2 * var(--alz-gutter));
	margin-inline: auto;
	padding-inline: var(--alz-gutter);
	box-sizing: border-box;
}
.alz-footer a { color: #dfe7ee; text-decoration: none; }
.alz-footer a:hover { color: var(--alz-brand-light); }
.alz-footer-grid {
	display: grid;
	gap: 40px 48px;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
	padding-bottom: 56px;
	align-items: start;
}
@media (min-width: 1100px) {
	.alz-footer-grid { grid-template-columns: 1.15fr 1fr .85fr 1.25fr; }
}
.alz-footer-mail { margin-top: 18px !important; }
.alz-footer-mail a { color: #fff; font-weight: 600; }
.alz-footer-loc { padding-left: 14px; border-left: 2px solid rgba(255, 255, 255, .12); margin-bottom: 20px; }
.alz-footer-loc:last-child { margin-bottom: 0; }
.alz-footer-loc strong { display: block; color: #fff; font-weight: 700; margin-bottom: 4px; }
.alz-footer-loc p { margin: 0 0 2px; }
.alz-footer-tel { font-weight: 600; }

/* Kundenbereich */
.alz-kb-card {
	background: var(--alz-ink-2);
	border: 1px solid rgba(255, 255, 255, .08);
	border-top: 3px solid var(--alz-brand);
	border-radius: 0 0 18px 18px;
	padding: 24px 22px 22px;
}
body[class] .alz-footer .alz-kb-card h4 { display: flex; align-items: center; gap: 10px; }
.alz-kb-card h4 svg { width: 18px; height: 18px; color: var(--alz-brand-light); flex: none; }
.alz-kb-card > p { margin: 0 0 14px; }
.alz-kb-user strong { color: #fff; }
.alz-footer ul.alz-kb-links { margin: 0 0 18px; border-top: 1px solid rgba(255, 255, 255, .08); }
.alz-footer .alz-kb-links li { margin: 0; border-bottom: 1px solid rgba(255, 255, 255, .08); }
.alz-footer .alz-kb-links a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 10px 2px;
	color: #dfe7ee;
	font-weight: 600;
}
.alz-footer .alz-kb-links a::after { content: "→"; color: var(--alz-brand-light); transition: transform .2s ease; }
.alz-footer .alz-kb-links a:hover { color: #fff; }
.alz-footer .alz-kb-links a:hover::after { transform: translateX(4px); }
.alz-footer .alz-kb-logout { margin: -8px 0 16px; font-size: 14px; }
.alz-footer a.alz-kb-btn {
	display: flex;
	justify-content: center;
	align-items: center;
	background: var(--alz-action);
	color: #fff;
	border-radius: 999px;
	padding: 13px 20px;
	font-weight: 700;
	transition: background .2s ease, transform .2s ease;
}
.alz-footer a.alz-kb-btn:hover { background: var(--alz-action-hover); color: #fff; transform: translateY(-1px); }
.alz-kb-pay { margin-top: 18px; padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, .08); }
.alz-kb-pay > span { display: block; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--alz-on-dark); margin-bottom: 8px; }
.alz-kb-pay .alz-pay { margin-top: 0; }
.alz-footer-logo { display: block; width: 170px; height: auto; margin: 0 0 18px; }
body[class] .alz-footer h4 {
	color: #fff;
	font-size: 13px;
	letter-spacing: .12em;
	text-transform: uppercase;
	margin: 0 0 16px;
	font-family: var(--alz-font-body);
	font-stretch: normal;
}
.alz-footer p { margin: 0 0 10px; line-height: 1.6; }
.alz-footer ul { list-style: none; padding: 0; margin: 0; }
.alz-footer li { margin: 0 0 10px; }
.alz-footer .alz-pay { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 14px; }
.alz-footer .alz-pay img { height: 34px; width: auto; background: #fff; border-radius: 6px; padding: 3px 6px; }
.alz-footer-bottom {
	border-top: 1px solid rgba(255, 255, 255, .1);
	padding-block: 22px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px 24px;
	font-size: 14px;
}
.alz-social { display: inline-flex; gap: 10px; }
.alz-social a {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, .18);
	display: grid;
	place-items: center;
	transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.alz-social a:hover { background: var(--alz-action); border-color: var(--alz-action); color: #fff; }
.alz-social svg { width: 18px; height: 18px; }

/* ==========================================================================
   11. Responsive
   ========================================================================== */
@media (min-width: 900px) {
	body.alz-page .e-con.alz-service { grid-template-columns: 5fr 6fr; }
}
@media (max-width: 781px) {
	body.alz-page .e-con.alz-cols { --flex-direction: column; --align-items: stretch; }
	body.alz-page .e-con.alz-cols > .e-con.alz-col { flex: 0 0 auto; width: 100%; }
	body.alz-page .alz-hero-img { max-width: 440px; margin-top: 8px; }
	body.alz-page .alz-hero-img img { aspect-ratio: 4 / 3; }
	body.alz-page .e-con.alz-cta-box > .alz-buttons { width: 100%; }
	body.alz-page .alz-cta-box .elementor-widget-button { width: 100%; }
	body.alz-page .alz-cta-box .elementor-button { width: 100%; justify-content: center; }
	body.alz-page .alz-mark { white-space: normal; }
}

@media (prefers-reduced-motion: reduce) {
	.alz-page *, .alz-footer * { transition: none !important; }
}

/* ==========================================================================
   12. Cookie-Banner (Design → Cookie-Banner)
   ========================================================================== */
.alz-cc {
	position: fixed;
	z-index: 99990;
	left: 16px;
	right: 16px;
	bottom: calc(16px + env(safe-area-inset-bottom, 0px));
	font-family: var(--alz-font-body);
	color: var(--alz-text);
	opacity: 0;
	transform: translateY(16px);
	transition: opacity .3s ease, transform .3s ease;
}
.alz-cc.is-visible { opacity: 1; transform: none; }
.alz-cc[hidden] { display: none !important; }
.alz-cc__inner {
	background: #fff;
	border: 1px solid var(--alz-line);
	border-top: 4px solid var(--alz-brand);
	border-radius: 18px;
	box-shadow: 0 24px 60px -18px rgba(11, 22, 36, .45);
	padding: 22px 22px 20px;
	max-height: calc(100vh - 32px);
	overflow-y: auto;
}
.alz-cc--box { right: auto; width: min(440px, calc(100vw - 32px)); }
.alz-cc--bar .alz-cc__inner { max-width: 1200px; margin: 0 auto; }
@media (min-width: 900px) {
	.alz-cc--bar .alz-cc__inner { display: grid; grid-template-columns: 1fr auto; gap: 8px 40px; align-items: center; padding: 22px 28px; }
	.alz-cc--bar .alz-cc__title, .alz-cc--bar .alz-cc__text, .alz-cc--bar .alz-cc__prefs { grid-column: 1; }
	.alz-cc--bar .alz-cc__actions { grid-column: 2; grid-row: 1 / span 3; margin-top: 0; justify-content: flex-end; }
	.alz-cc--bar .alz-cc__prefs:not([hidden]) ~ .alz-cc__actions { align-self: end; }
}
.alz-cc__title {
	margin: 0 0 8px;
	font-family: var(--alz-font-head);
	font-stretch: 88%;
	font-weight: 800;
	font-size: 20px;
	line-height: 1.2;
	color: var(--alz-ink);
}
.alz-cc__text p { margin: 0; font-size: 14.5px; line-height: 1.6; }
.alz-cc__text a { color: var(--alz-deep); font-weight: 600; }
.alz-cc__prefs { margin-top: 16px; display: grid; gap: 10px; }
.alz-cc__prefs[hidden] { display: none; }
.alz-cc__cat {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	background: var(--alz-soft);
	border: 1px solid var(--alz-line);
	border-radius: 12px;
	padding: 12px 14px;
}
.alz-cc__cat strong { display: block; color: var(--alz-ink); font-size: 15px; }
.alz-cc__cat span { display: block; font-size: 13px; line-height: 1.5; color: var(--alz-muted); margin-top: 2px; }
.alz-cc__switch { position: relative; flex: none; width: 46px; height: 26px; cursor: pointer; }
.alz-cc__switch input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.alz-cc__switch span { position: absolute; inset: 0; border-radius: 999px; background: #c5d2e0; transition: background .2s ease; pointer-events: none; }
.alz-cc__switch span::after { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.25); transition: transform .2s ease; }
.alz-cc__switch input:checked + span { background: var(--alz-action); }
.alz-cc__switch input:checked + span::after { transform: translateX(20px); }
.alz-cc__switch input:focus-visible + span { outline: 2px solid var(--alz-action); outline-offset: 2px; }
.alz-cc__switch.is-locked { cursor: not-allowed; opacity: .6; }
.alz-cc__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.alz-cc-btn {
	border: 2px solid transparent;
	border-radius: 999px;
	padding: 11px 20px;
	font: inherit;
	font-weight: 700;
	font-size: 15px;
	line-height: 1.2;
	cursor: pointer;
	transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.alz-cc-btn[hidden] { display: none; }
.alz-cc-btn.is-primary { background: var(--alz-action); color: #fff; }
.alz-cc-btn.is-primary:hover { background: var(--alz-action-hover); }
.alz-cc-btn.is-outline { background: #fff; color: var(--alz-ink); border-color: var(--alz-line); }
.alz-cc-btn.is-outline:hover { border-color: var(--alz-ink); }
.alz-cc-btn.is-link { background: none; color: var(--alz-deep); padding-inline: 8px; text-decoration: underline; text-underline-offset: 3px; }
.alz-cc-btn:focus-visible { outline: 2px solid var(--alz-action); outline-offset: 2px; }
@media (max-width: 480px) {
	.alz-cc__actions .alz-cc-btn:not(.is-link) { flex: 1 1 100%; }
}
.alz-cc-ph {
	margin-top: 40px;
	background: var(--alz-soft);
	border: 1px dashed #b9c9da;
	border-radius: 18px;
	padding: 28px;
	text-align: center;
}
.alz-cc-ph p { margin: 0 0 14px; color: var(--alz-muted); }
.alz-footer-bottom a[data-alz-cc-open] { text-decoration: underline; text-underline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .alz-cc { transition: none; } }

/* ==========================================================================
   13. Rechtliche Seiten (Impressum)
   ========================================================================== */
body.alz-page .e-con.alz-legal { gap: 0; }
body.alz-page .e-con.alz-legal-facts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
	gap: clamp(16px, 2vw, 24px);
	margin-bottom: clamp(40px, 6vw, 72px);
}
body.alz-page .e-con.alz-legal-fact {
	background: var(--alz-soft);
	border: 1px solid var(--alz-line);
	border-top: 3px solid var(--alz-brand);
	border-radius: 0 0 var(--alz-radius) var(--alz-radius);
	padding: 26px 24px;
	gap: 12px;
	width: auto;
}
body.alz-page .alz-legal-fact .elementor-widget-text-editor p { margin: 0 0 14px; font-size: 16px; }
body.alz-page .alz-legal-fact strong { color: var(--alz-ink); }
body.alz-page .alz-legal a { color: var(--alz-deep); font-weight: 600; }
body.alz-page .e-con.alz-legal-block {
	max-width: 760px;
	padding-block: 28px;
	border-top: 1px solid var(--alz-line);
	gap: 12px;
}
body.alz-page .alz-legal-block h2.elementor-heading-title { font-size: clamp(22px, 2.4vw, 28px); }
body.alz-page .alz-legal-text { color: var(--alz-text); font-size: 16.5px; }
body.alz-page mark.alz-todo {
	background: #fff3b0;
	color: #5c4a00;
	border-radius: 4px;
	padding: 1px 6px;
	font-weight: 600;
}
body.alz-page .alz-legal-kicker .elementor-heading-title { font-size: clamp(22px, 2.4vw, 28px); margin-bottom: 18px; }
body.alz-page .alz-legal-text ul { margin: 0 0 .9em; padding-left: 1.2em; }
body.alz-page .alz-legal-text li { margin-bottom: 6px; }
body.alz-page .alz-legal-text li::marker { color: var(--alz-brand); }
body.alz-page .alz-legal-text code { background: var(--alz-soft); border: 1px solid var(--alz-line); border-radius: 4px; padding: 1px 5px; font-size: .92em; }
body.alz-page .alz-legal-num { color: var(--alz-deep); font-variant-numeric: tabular-nums; margin-right: 4px; }

/* ==========================================================================
   14. Shop-Seite «Aufkleber bestellen»
   ========================================================================== */
body.alz-page .e-con.alz-shop-embed {
	background: #fff;
	border: 1px solid var(--alz-line);
	border-radius: 24px;
	padding: clamp(16px, 3vw, 36px);
	box-shadow: var(--alz-shadow);
	scroll-margin-top: 100px;
	font-family: var(--alz-font-body);
}
body.alz-page .alz-shop-embed :is(h1, h2, h3, h4) { font-family: var(--alz-font-head); font-stretch: 88%; color: var(--alz-ink); }
body.alz-page .alz-shop-embed a { color: var(--alz-deep); }
body.alz-page .e-con.alz-grid-3.alz-steps { grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
body.alz-page .alz-page-hero ul.alz-trust { margin-top: 18px; }

/* FAQ */
body.alz-page .e-con.alz-faq-groups {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 460px), 1fr));
	gap: clamp(24px, 3vw, 40px) clamp(24px, 4vw, 56px);
	align-items: start;
}
body.alz-page .e-con.alz-faq-group { width: auto; gap: 10px; }
body.alz-page .alz-faq-group h3.elementor-heading-title { font-size: 19px; color: var(--alz-deep); }
body.alz-page .alz-faq details {
	background: #fff;
	border: 1px solid var(--alz-line);
	border-radius: 14px;
	margin: 0 0 10px;
	transition: box-shadow .2s ease, border-color .2s ease;
}
body.alz-page .alz-faq details[open] { box-shadow: var(--alz-shadow); border-color: transparent; }
body.alz-page .alz-faq summary {
	list-style: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 16px 18px;
	font-weight: 700;
	font-size: 16px;
	line-height: 1.4;
	color: var(--alz-ink);
}
body.alz-page .alz-faq summary::-webkit-details-marker { display: none; }
body.alz-page .alz-faq summary::after {
	content: "";
	flex: none;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background:
		linear-gradient(var(--alz-action), var(--alz-action)) center / 12px 2px no-repeat,
		linear-gradient(var(--alz-action), var(--alz-action)) center / 2px 12px no-repeat,
		var(--alz-soft);
	transition: transform .2s ease;
}
body.alz-page .alz-faq details[open] summary::after {
	transform: rotate(45deg);
}
body.alz-page .alz-faq summary:focus-visible { outline: 2px solid var(--alz-action); outline-offset: 2px; border-radius: 14px; }
body.alz-page .alz-faq .alz-faq-a { padding: 0 18px 16px; color: var(--alz-text); }
body.alz-page .alz-faq .alz-faq-a p { margin: 0; font-size: 15.5px; }
body.alz-page .alz-faq-more { margin-top: clamp(28px, 4vw, 44px); font-size: 17px; }
body.alz-page .alz-faq-more a { color: var(--alz-deep); font-weight: 600; }

/* ==========================================================================
   15. Montage-Seite (Anleitungen)
   ========================================================================== */
body.alz-page .e-con[id="klein"],
body.alz-page .e-con[id="gross"],
body.alz-page .e-con[id="montage-faq"] { scroll-margin-top: 90px; }
body.alz-page .e-con.alz-howto-card {
	background: #fff;
	border: 1px solid var(--alz-line);
	border-radius: 22px;
	padding: clamp(22px, 3vw, 34px);
	box-shadow: var(--alz-shadow);
	gap: 8px;
	width: auto;
}
body.alz-page .alz-howto-card h3.elementor-heading-title { font-size: 24px; }
body.alz-page .alz-howto-meta { font-size: 14px; color: var(--alz-muted); }
body.alz-page .alz-howto-meta p { margin: 0 0 8px; }
body.alz-page ol.alz-howto-steps { list-style: none; counter-reset: hs; padding: 0; margin: 8px 0 0; }
body.alz-page ol.alz-howto-steps li {
	counter-increment: hs;
	position: relative;
	padding: 0 0 20px 54px;
	margin: 0;
}
body.alz-page ol.alz-howto-steps li::before {
	content: counter(hs);
	position: absolute;
	left: 0;
	top: -2px;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--alz-ink);
	color: #fff;
	font-family: var(--alz-font-head);
	font-weight: 800;
	display: grid;
	place-items: center;
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--alz-brand) 25%, transparent);
}
body.alz-page ol.alz-howto-steps li::after {
	content: "";
	position: absolute;
	left: 17px;
	top: 40px;
	bottom: 4px;
	width: 2px;
	background: var(--alz-line);
}
body.alz-page ol.alz-howto-steps li:last-child { padding-bottom: 4px; }
body.alz-page ol.alz-howto-steps li:last-child::after { display: none; }
body.alz-page ol.alz-howto-steps strong { display: block; color: var(--alz-ink); font-size: 16.5px; margin-bottom: 3px; }
body.alz-page ol.alz-howto-steps span { display: block; color: var(--alz-text); font-size: 15.5px; line-height: 1.6; }
body.alz-page ol.alz-howto-steps li.has-img {
	display: grid;
	grid-template-columns: minmax(0, 1fr) clamp(150px, 42%, 240px);
	gap: 18px;
	align-items: start;
}
body.alz-page ol.alz-howto-steps .alz-howto-img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 14px;
	border: 1px solid var(--alz-line);
	background: var(--alz-soft);
}
@media (max-width: 560px) {
	body.alz-page ol.alz-howto-steps li.has-img { grid-template-columns: 1fr; gap: 10px; }
	body.alz-page ol.alz-howto-steps .alz-howto-img { max-width: 300px; }
}
body.alz-page .e-con.alz-card-illu { gap: 10px; }
body.alz-page .alz-card-illu .alz-illu { margin-bottom: 8px; }
body.alz-page .alz-card-illu .alz-illu img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 14px;
	border: 1px solid var(--alz-line);
}
body.alz-page .alz-howto-note {
	margin: 14px 0 0 !important;
	background: var(--alz-soft);
	border-radius: 12px;
	padding: 12px 14px;
	font-size: 15px;
	color: var(--alz-ink);
}
body.alz-page .e-con.alz-howto-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); align-items: start; }
body.alz-page .alz-howto-after {
	margin-top: clamp(24px, 3vw, 36px);
	border-left: 3px solid var(--alz-brand);
	background: var(--alz-soft);
	border-radius: 0 12px 12px 0;
	padding: 16px 20px;
	font-size: 16.5px;
}
body.alz-page .e-con.alz-faq-single { max-width: 860px; }
body.alz-page .alz-dark .alz-fact h3.elementor-heading-title { font-size: 26px; color: var(--alz-brand-light); }

/* ==========================================================================
   16. Startseite: Abschnitt Aufkleber-Shop
   ========================================================================== */
body.alz-page .e-con.alz-shop-teaser {
	position: relative;
	overflow: hidden;
	color: rgba(255, 255, 255, .88);
	background-color: var(--alz-action);
	background-image:
		radial-gradient(circle at 88% 12%, rgba(255, 255, 255, .22), transparent 38%),
		radial-gradient(circle at 0% 100%, rgba(11, 22, 36, .35), transparent 45%),
		radial-gradient(rgba(255, 255, 255, .12) 1.2px, transparent 1.3px),
		linear-gradient(135deg, #0a86ff 0%, #0066d6 55%, #004fa8 100%);
	background-size: auto, auto, 22px 22px, auto;
	scroll-margin-top: 90px;
}
body.alz-page .alz-shop-teaser .alz-teaser-text { flex-grow: 1.1; }
body.alz-page .alz-shop-teaser .alz-eyebrow .elementor-heading-title { color: #ffd66b; }
body.alz-page .alz-shop-teaser .alz-eyebrow .elementor-heading-title::before { background: #ffd66b; }
body.alz-page .alz-shop-teaser h2.elementor-heading-title { color: #fff; }
body.alz-page .alz-shop-teaser .alz-lead,
body.alz-page .alz-shop-teaser .elementor-widget-text-editor { color: rgba(255, 255, 255, .9); }
body.alz-page .alz-shop-teaser ul.alz-teaser-list {
	list-style: none;
	margin: 6px 0 0;
	padding: 0;
	display: grid;
	gap: 10px 22px;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr));
}
body.alz-page .alz-shop-teaser .alz-teaser-list li {
	position: relative;
	margin: 0;
	padding-left: 32px;
	font-size: 16px;
	line-height: 1.45;
	color: rgba(255, 255, 255, .9);
}
body.alz-page .alz-shop-teaser .alz-teaser-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 1px;
	width: 21px;
	height: 21px;
	border-radius: 50%;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230066d6' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 13px no-repeat;
}
body.alz-page .alz-shop-teaser .alz-teaser-list strong { color: #fff; }
body.alz-page .alz-shop-teaser ul.alz-teaser-shapes { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
body.alz-page .alz-shop-teaser .alz-teaser-shapes li {
	margin: 0;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 6px 13px 6px 10px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .12);
	border: 1px solid rgba(255, 255, 255, .22);
	font-size: 14px;
	font-weight: 600;
	color: #fff;
}
body.alz-page .alz-shop-teaser .alz-teaser-shapes li::before { content: ""; width: 14px; height: 14px; background: #fff; flex: none; }
body.alz-page .alz-shop-teaser .alz-teaser-shapes li:nth-child(1)::before { border-radius: 1px; }
body.alz-page .alz-shop-teaser .alz-teaser-shapes li:nth-child(2)::before { border-radius: 4px; }
body.alz-page .alz-shop-teaser .alz-teaser-shapes li:nth-child(3)::before { border-radius: 50%; }
body.alz-page .alz-shop-teaser .alz-teaser-shapes li:nth-child(4)::before { width: 19px; height: 12px; border-radius: 50%; }
body.alz-page .alz-shop-teaser .alz-buttons { margin-top: 10px; }
body.alz-page .alz-shop-teaser .alz-btn-primary .elementor-button { background: #fff; color: var(--alz-deep); box-shadow: 0 10px 26px rgba(2, 26, 58, .25); }
body.alz-page .alz-shop-teaser .alz-btn-primary .elementor-button:hover { background: #ffd66b; color: var(--alz-ink); }
body.alz-page .alz-shop-teaser .alz-btn-ghost .elementor-button { border-color: rgba(255, 255, 255, .55); }
body.alz-page .alz-shop-teaser .alz-teaser-note p { margin: 0; font-size: 15px; }
body.alz-page .alz-shop-teaser .alz-teaser-note a { color: #fff; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
body.alz-page .e-con.alz-teaser-visual { position: relative; align-items: center; }
body.alz-page .alz-teaser-visual .alz-teaser-img { width: 100%; }
body.alz-page .alz-teaser-visual .alz-teaser-img img { display: block; width: 100%; max-width: 580px; height: auto; margin: 0 auto; animation: alz-float 6s ease-in-out infinite; }
@keyframes alz-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
body.alz-page .e-con.alz-teaser-visual > .elementor-widget.alz-teaser-badge {
	--container-widget-width: auto;
	--container-widget-flex-grow: 0;
	position: absolute;
	left: 3%;
	top: 8%;
	width: var(--badge, 120px) !important;
	max-width: none;
	height: var(--badge, 120px);
	flex: none;
	--badge: clamp(104px, 11vw, 132px);
	border-radius: 50%;
	background: #ffc93c;
	color: var(--alz-ink);
	display: grid;
	place-items: center;
	text-align: center;
	transform: rotate(-10deg);
	box-shadow: 0 14px 30px rgba(2, 26, 58, .35), 0 0 0 6px #fff;
	z-index: 2;
}
body.alz-page .alz-teaser-badge p { margin: 0; display: grid; line-height: 1.1; }
body.alz-page .alz-teaser-badge small { font-size: 12.5px; font-weight: 600; }
body.alz-page .alz-teaser-badge strong { font-family: var(--alz-font-head); font-weight: 800; font-size: clamp(19px, 2vw, 23px); letter-spacing: -.01em; }
@media (prefers-reduced-motion: reduce) {
	body.alz-page .alz-teaser-visual .alz-teaser-img img { animation: none; }
}

/* ==========================================================================
   17. Ratgeber Druckdaten
   ========================================================================== */
body.alz-page .e-con[id="beispiele"],
body.alz-page .e-con[id="aufloesung"],
body.alz-page .e-con[id="ratgeber-faq"] { scroll-margin-top: 90px; }
body.alz-page .alz-rg-img img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 14px; border: 1px solid var(--alz-line); background: #fff; image-rendering: auto; }
body.alz-page .e-con.alz-rg-good { background: #fff; border: 1px solid var(--alz-line); border-radius: 22px; padding: clamp(18px, 3vw, 30px); box-shadow: var(--alz-shadow); margin-bottom: clamp(20px, 3vw, 30px); }
body.alz-page .e-con.alz-rg-good > .alz-col:first-child { flex-grow: 1.2; }
body.alz-page .alz-rg-flagwrap p { margin: 0; }
body.alz-page .alz-rg-flag { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 700; letter-spacing: .02em; padding: 4px 11px; border-radius: 999px; background: #fdecea; color: #b42318; }
body.alz-page .alz-rg-flag::before { content: "✕"; font-size: 11px; }
body.alz-page .alz-rg-flag.is-ok { background: #e7f6ec; color: #11813f; }
body.alz-page .alz-rg-flag.is-ok::before { content: "✓"; }
body.alz-page .e-con.alz-grid.alz-rg-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 960px) { body.alz-page .e-con.alz-grid.alz-rg-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { body.alz-page .e-con.alz-grid.alz-rg-grid { grid-template-columns: 1fr; } }
body.alz-page .e-con.alz-rg-card { background: #fff; border: 1px solid var(--alz-line); border-radius: 18px; padding: 16px; gap: 10px; width: auto; }
body.alz-page .alz-rg-card h3.elementor-heading-title { font-size: 19px; }
body.alz-page .alz-rg-card .elementor-widget-text-editor p { margin: 0 0 8px; font-size: 14.5px; color: var(--alz-muted); line-height: 1.55; }
body.alz-page .alz-rg-card .alz-rg-fix { color: var(--alz-ink) !important; background: var(--alz-soft); border-radius: 10px; padding: 9px 11px; margin: 4px 0 0 !important; }
body.alz-page .alz-rg-card .alz-rg-fix strong { color: var(--alz-deep); }
body.alz-page .alz-table-wrap { overflow-x: auto; border-radius: 16px; border: 1px solid var(--alz-line); background: #fff; }
body.alz-page table.alz-table { width: 100%; border-collapse: collapse; font-size: 15px; min-width: 420px; margin: 0; }
body.alz-page .alz-table th, body.alz-page .alz-table td { text-align: left; padding: 11px 14px; border-bottom: 1px solid var(--alz-line); vertical-align: top; }
body.alz-page .alz-table th { background: var(--alz-soft); color: var(--alz-ink); font-size: 13px; letter-spacing: .02em; font-weight: 700; }
body.alz-page .alz-table tbody tr:last-child td { border-bottom: 0; }
body.alz-page .alz-table td { font-variant-numeric: tabular-nums; color: var(--alz-text); }
body.alz-page .alz-table td:first-child { color: var(--alz-ink); font-weight: 600; white-space: nowrap; }
body.alz-page .alz-table-formats td:first-child { white-space: normal; min-width: 140px; }
body.alz-page .alz-rg-pill { display: inline-block; font-size: 12.5px; font-weight: 700; padding: 3px 10px; border-radius: 999px; white-space: nowrap; }
body.alz-page .alz-rg-pill.is-ok { background: #e7f6ec; color: #11813f; }
body.alz-page .alz-rg-pill.is-warn { background: #fff4dc; color: #9a5b00; }
body.alz-page .alz-rg-pill.is-bad { background: #fdecea; color: #b42318; }
body.alz-page .alz-rg-formula { display: inline-block; font-weight: 700; color: var(--alz-ink); background: var(--alz-soft); border: 1px solid var(--alz-line); border-radius: 12px; padding: 10px 14px; font-variant-numeric: tabular-nums; }
body.alz-page .alz-rg-note { margin: 12px 0 0; font-size: 14px; color: var(--alz-muted); }
body.alz-page ul.alz-checklist { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
body.alz-page .alz-checklist li { position: relative; margin: 0; padding-left: 32px; line-height: 1.55; }
body.alz-page .alz-checklist li::before { content: ""; position: absolute; left: 0; top: 2px; width: 21px; height: 21px; border-radius: 50%; background: var(--alz-brand) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 13px no-repeat; }
body.alz-page .e-con.alz-rg-checkcard { margin-top: clamp(22px, 3vw, 32px); background: #fff; border: 1px solid var(--alz-line); border-radius: 22px; padding: clamp(20px, 3vw, 32px); box-shadow: var(--alz-shadow); gap: 14px; }
body.alz-page .alz-rg-checkcard h3.elementor-heading-title { font-size: 22px; }
body.alz-page .alz-rg-help .e-con.alz-rg-helpbtn { margin-top: clamp(20px, 3vw, 30px); }
body.alz-page .alz-rg-help .alz-fact h3.elementor-heading-title { font-size: 21px; }

/* ==========================================================================
   18. Startseite: Abschnitt Ratgeber & Montage
   ========================================================================== */
body.alz-page .e-con.alz-help-teaser {
	background: linear-gradient(180deg, var(--alz-soft) 0%, #fff 100%);
	scroll-margin-top: 90px;
}
body.alz-page .alz-help-teaser .e-con.alz-section-head { margin-inline: auto; text-align: center; align-items: center; }
body.alz-page .alz-help-teaser .alz-section-head .alz-eyebrow .elementor-heading-title { justify-content: center; }
body.alz-page .e-con.alz-grid.alz-help-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 1040px; margin-inline: auto; width: 100%; }
body.alz-page .e-con.alz-help-card {
	--alz-help-accent: var(--alz-action);
	background: #fff;
	border: 1px solid var(--alz-line);
	border-radius: 22px;
	overflow: hidden;
	padding: 0;
	gap: 0;
	box-shadow: 0 1px 2px rgba(15, 27, 38, .04);
	transition: transform .25s ease, box-shadow .25s ease;
}
body.alz-page .e-con.alz-help-card.is-montage { --alz-help-accent: #e8730c; }
body.alz-page .e-con.alz-help-card:hover { transform: translateY(-4px); box-shadow: var(--alz-shadow); }
body.alz-page .e-con.alz-help-visual {
	position: relative;
	padding: 0;
	gap: 0;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: #f7f3ec;
	border-bottom: 1px solid var(--alz-line);
}
body.alz-page .alz-help-card.is-ratgeber .e-con.alz-help-visual { background: #fff; }
body.alz-page .alz-help-visual .alz-help-img,
body.alz-page .alz-help-visual .alz-help-img .elementor-widget-container { width: 100%; height: 100%; }
body.alz-page .alz-help-visual .alz-help-img img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
body.alz-page .alz-help-card:hover .alz-help-img img { transform: scale(1.03); }
body.alz-page .e-con.alz-help-visual > .elementor-widget.alz-help-step {
	position: absolute;
	top: 14px;
	left: 14px;
	width: auto !important;
	max-width: calc(100% - 28px);
	--container-widget-width: auto;
	--container-widget-flex-grow: 0;
	margin: 0;
}
body.alz-page .alz-help-step p {
	margin: 0;
	display: inline-block;
	padding: 6px 12px;
	border-radius: 999px;
	background: var(--alz-help-accent);
	color: #fff;
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: .02em;
	text-transform: uppercase;
	box-shadow: 0 6px 16px rgba(11, 22, 36, .18);
}
body.alz-page .e-con.alz-help-body { padding: clamp(20px, 3vw, 30px); gap: 12px; flex-grow: 1; }
body.alz-page .alz-help-body h3.elementor-heading-title { font-size: clamp(21px, 2.2vw, 25px); }
body.alz-page .alz-help-body .alz-muted p { margin: 0; }
body.alz-page ul.alz-help-list { list-style: none; margin: 2px 0 0; padding: 0; display: grid; gap: 8px; }
body.alz-page .alz-help-list li { position: relative; margin: 0; padding-left: 28px; font-size: 15.5px; line-height: 1.5; color: var(--alz-text); }
body.alz-page .alz-help-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 2px;
	width: 19px;
	height: 19px;
	border-radius: 50%;
	background: var(--alz-help-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 12px no-repeat;
}
body.alz-page .alz-help-body > .elementor-widget-button { margin-top: auto; padding-top: 8px; }
body.alz-page .alz-help-card.is-montage .alz-btn-primary .elementor-button { background: var(--alz-ink); }
body.alz-page .alz-help-card.is-montage .alz-btn-primary .elementor-button:hover { background: var(--alz-ink-2); }
@media (max-width: 767px) {
	body.alz-page .e-con.alz-grid.alz-help-grid { grid-template-columns: minmax(0, 1fr); }
}

@media print {
	.ct-header, .alz-footer, .alz-cc, .alz-cta, .alz-page-hero .alz-buttons { display: none !important; }
	body.alz-page .e-con.alz-page-hero, body.alz-page .e-con.alz-dark { background: #fff !important; color: #000 !important; }
	body.alz-page .alz-page-hero h1.elementor-heading-title, body.alz-page .alz-dark h3.elementor-heading-title { color: #000 !important; }
	.alz-faq details { break-inside: avoid; }
	.alz-faq details > .alz-faq-a { display: block !important; }
}
