/*
 Theme Name:   Divi Child
 Description:  Universal child theme for Divi – reusable on any Divi website.
 Template:     Divi
 Version:      1.1.0
 Requires PHP: 7.4
 Text Domain:  divi-child
*/

/* ==========================================================================
   CONFIG – site-specific values (edit per website)
   ========================================================================== */
:root {
	--dc-color-primary:   #8b5cf6;  /* main color */
	--dc-color-secondary: #f4f1ec;  /* secondary / accent */
	--dc-color-text:      #333333;  /* body text color */
	--dc-color-bg-soft:   #f7f7f7;  /* soft background for sections */
	--dc-radius:          12px;     /* default corner radius */
	--dc-transition:      0.25s ease;
}

/* ==========================================================================
   Custom styles
   Note: Divi loads this file automatically after the parent stylesheet.
   Set global colors/fonts primarily in Divi Theme Options / Customizer –
   only add CSS here for things Divi can't do.
   ========================================================================== */

/* Utility class: add "dc-soft-bg" to a Divi section (Advanced > CSS Class) */
.dc-soft-bg {
	background-color: var(--dc-color-bg-soft);
}

/* Utility class: rounded card look for modules/rows */
.dc-card {
	border-radius: var(--dc-radius);
	overflow: hidden;
}

/* ==========================================================================
   AROMABABY – site-specific styles (Home, Theme Builder header/footer)
   All classes are prefixed "ab-" and set via Divi: Advanced > CSS Class.
   ========================================================================== */

/* --- Config: brand tokens (edit colors/sizes here) --- */
:root {
	--ab-ink:     #2E3A30;  /* main text */
	--ab-muted:   #5A6459;  /* secondary text */
	--ab-accent:  #C2410C;  /* orange accent (buttons, highlights) */
	--ab-accent-hover: #A5370A; /* darker accent for hover */
	--ab-contact-bg: #E0743A;  /* background of the contact box on Home */
	--ab-green:   #3F5245;  /* dark green (links, contact box, chips) */
	--ab-sage:    #E8EEE7;  /* light green surfaces */
	--ab-peach:   #FBE6D6;  /* light peach surfaces */
	--ab-sand:    #F1ECE0;  /* light sand surfaces */
	--ab-bg:      #F4EFE8;  /* page background */
	--ab-paper:   #FBF9F6;  /* off-white section background */
	--ab-line:    #D9D1C4;  /* dividers */
	--ab-max:     1240px;   /* max content width incl. gutter */
	--ab-gutter:  24px;     /* horizontal page padding */
	--ab-header-offset: 84px; /* scroll offset for anchor links under sticky header */
}

/* --- Font: Manrope, self-hosted in /fonts (no Google request, GDPR-friendly) --- */
@font-face {
	font-family: 'Manrope';
	font-style: normal;
	font-weight: 300 700;
	font-display: swap;
	src: url('fonts/manrope-latin-ext.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: 'Manrope';
	font-style: normal;
	font-weight: 300 700;
	font-display: swap;
	src: url('fonts/manrope-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* --- Base --- */
html { scroll-behavior: smooth; }
html, body { overflow-x: clip; }
body,
body h1, body h2, body h3, body h4, body h5, body h6,
body input, body textarea, body select, body button,
body .et_pb_button, body .et_pb_module {
	font-family: 'Manrope', system-ui, sans-serif;
}
body {
	background: var(--ab-bg);
	color: var(--ab-ink);
	font-size: 17px;
	line-height: 1.7;
	font-weight: 400;
}
html body { font-size: 17px; line-height: 1.7; } /* beats Divi's default 14px body size */
.ab-sec .et_pb_text p:empty { display: none; } /* hide autop artefacts in HTML text modules */
body a { color: var(--ab-green); }
body a:hover { color: var(--ab-accent); }
#page-container { overflow: visible !important; } /* required for sticky header */
#main-content { background: transparent; }

/* --- Sticky global header (Theme Builder) --- */
.et-l--header { position: sticky; top: 0; z-index: 99; }
.admin-bar .et-l--header { top: 32px; }
@media (max-width: 782px) { .admin-bar .et-l--header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .et-l--header { top: 0; } }
.ab-sec { scroll-margin-top: var(--ab-header-offset); }

/* --- Section / row / column layout (overrides Divi defaults) --- */
.et_pb_section.ab-sec { padding: 0; background-color: transparent; }
.et_pb_section.ab-sec > .et_pb_row.ab-row {
	width: 100%;
	max-width: var(--ab-max);
	margin: 0 auto;
	padding: 96px var(--ab-gutter);
	box-sizing: border-box;
	display: flex;
	flex-wrap: wrap;
	gap: 48px;
	align-items: flex-start;
}
.ab-row > .et_pb_column {
	width: auto !important;
	max-width: 100%;
	margin: 0 !important;
	min-width: 0;
	flex: 1 1 100% !important;
	display: flex;
	flex-direction: column;
	gap: 24px;
}
.ab-row > .et_pb_column > .et_pb_module { margin: 0 !important; width: 100%; }
.ab-row .et_pb_text_inner > p:last-child,
.ab-row .et_pb_text p:last-of-type { padding-bottom: 0; }
.ab-row .et_pb_text p { padding-bottom: 0; margin: 0; }
.ab-row h1, .ab-row h2, .ab-row h3 { padding: 0; margin: 0; color: inherit; }

/* --- Typography --- */
.ab-h1 { font-weight: 300; font-size: 64px; line-height: 1.08; letter-spacing: -0.035em; color: var(--ab-ink); }
.ab-h1 strong { font-weight: 600; color: var(--ab-accent); }
.ab-h2 { font-weight: 300; font-size: 46px; line-height: 1.12; letter-spacing: -0.03em; }
.ab-h2 strong { font-weight: 600; }
.ab-lead { font-size: 19px; max-width: 540px; color: var(--ab-muted); }
.ab-muted { color: var(--ab-muted); }
.ab-center { text-align: center; }
.ab-eyebrow { font-size: 14px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ab-accent); }
@media (max-width: 767px) {
	.ab-h1 { font-size: 42px; }
	.ab-h2 { font-size: 34px; }
}

/* --- Buttons, pill, chips --- */
.ab-btns { display: flex; flex-wrap: wrap; gap: 12px; }
.ab-btn {
	display: inline-flex; align-items: center; text-decoration: none;
	font-weight: 600; padding: 16px 28px; border-radius: 999px;
	transition: background-color .2s ease, color .2s ease;
}
body .ab-btn--accent { background: var(--ab-accent); color: #FFFFFF; }
body .ab-btn--accent:hover { background: var(--ab-accent-hover); color: #FFFFFF; }
body .ab-btn--light { background: #FFFFFF; color: var(--ab-ink); }
body .ab-btn--light:hover { color: var(--ab-accent); }
body .ab-pill {
	display: inline-flex; align-items: center; gap: 10px; text-decoration: none;
	background: #FFFFFF; border-radius: 999px; padding: 8px 16px 8px 8px;
	font-size: 14px; font-weight: 500; color: var(--ab-ink);
}
.ab-pill__tag { background: var(--ab-accent); color: #FFFFFF; border-radius: 999px; padding: 3px 10px; font-size: 12px; font-weight: 600; }
.ab-chips { display: flex; flex-wrap: wrap; gap: 10px; }
body .ab-chips a {
	text-decoration: none; background: var(--ab-green); color: #FFFFFF;
	border-radius: 999px; padding: 12px 22px; font-weight: 500; font-size: 15px;
	transition: background-color .2s ease;
}
body .ab-chips a:hover { background: var(--ab-accent); color: #FFFFFF; }

/* --- Split heading block (h2 left, text right) --- */
.ab-split { display: flex; flex-wrap: wrap; gap: 16px 48px; justify-content: space-between; align-items: flex-end; }
.ab-split > .ab-h2 { flex: 1 1 460px; min-width: 0; }
.ab-split > p { flex: 1 1 340px; min-width: 0; }

/* --- Header (Theme Builder) --- */
.et_pb_section.ab-header { background: rgba(244,239,232,0.92); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.et_pb_section.ab-header > .et_pb_row.ab-row { padding: 16px var(--ab-gutter); gap: 12px 32px; align-items: center; justify-content: space-between; flex-wrap: nowrap; }
.ab-header .ab-row > .et_pb_column { flex: 0 1 auto !important; }
body .ab-logo { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--ab-ink); }
body .ab-logo:hover { color: var(--ab-ink); }
/* Logo images (Media Library: drop ID 44, wordmark ID 45) */
.ab-logo__drop { width: auto; height: 46px; display: block; flex-shrink: 0; }
.ab-logo__word { width: auto; height: 60px; display: block; transform: translateY(6px); } /* larger than the drop (small lowercase); shifted down to optically center on the drop's bulb */
@media (max-width: 767px) { .ab-logo__drop { height: 38px; } .ab-logo__word { height: 48px; transform: translateY(5px); } }
.ab-logo__icon { width: 40px; height: 40px; border-radius: 50%; background: #FBE3D1; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ab-logo__text { font-size: 21px; font-weight: 600; letter-spacing: -0.02em; line-height: 1; }
/* Menu module */
.ab-nav.et_pb_menu, .ab-nav .et_pb_menu_inner_container { background: transparent !important; }
.ab-nav .et_pb_menu__wrap { justify-content: flex-end; }
.ab-nav .et_pb_menu__menu > nav > ul { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 4px 26px; }
.ab-nav .et-menu > li { padding: 0 !important; margin: 0 !important; }
.ab-nav .et-menu > li > a {
	font-size: 15px; font-weight: 500; color: var(--ab-green) !important;
	padding: 10px 0 !important; opacity: 1 !important; line-height: 1.4;
}
.ab-nav .et-menu > li > a:hover { color: var(--ab-accent) !important; }
.ab-nav .et-menu > li.ab-menu-cta > a {
	background: var(--ab-accent); color: #FFFFFF !important;
	padding: 11px 20px !important; border-radius: 999px;
}
.ab-nav .et-menu > li.ab-menu-cta > a:hover { background: var(--ab-accent-hover); color: #FFFFFF !important; }
/* Mobile menu: dropdown spans the full header width instead of the narrow menu column */
.ab-header .ab-row { position: relative; }
.ab-header .ab-col-nav, .ab-nav, .ab-nav .et_pb_menu_inner_container, .ab-nav .et_pb_menu__wrap,
.ab-nav .et_mobile_nav_menu, .ab-nav .mobile_nav { position: static !important; }
.ab-nav .et_mobile_menu { left: 12px !important; right: 12px !important; width: auto !important; top: 100% !important; padding: 8px 20px !important; }
.ab-nav .mobile_menu_bar:before { color: var(--ab-ink) !important; }
.ab-nav .et_mobile_menu {
	background: var(--ab-paper) !important; border-top: 3px solid var(--ab-accent) !important;
	border-radius: 0 0 20px 20px; box-shadow: 0 12px 32px rgba(46,58,48,0.12);
}
.ab-nav .et_mobile_menu li a { color: var(--ab-ink) !important; font-weight: 500; border-bottom-color: var(--ab-line) !important; }
.ab-nav .et_mobile_menu li.ab-menu-cta a { color: var(--ab-accent) !important; font-weight: 600; }

/* --- Hero --- */
/* Config: hero background photo (Media Library, ID 29). Swap URLs here to change the image. */
:root {
	--ab-hero-img:        url('/wp-content/uploads/2026/10/Bernstein-Tropfen-mit-sanften-Wellen-upscaled-standard-v2-2x-2048x1153.webp');
	--ab-hero-img-mobile: url('/wp-content/uploads/2026/10/Bernstein-Tropfen-mit-sanften-Wellen-upscaled-standard-v2-2x-1024x576.webp');
	--ab-hero-min-height: 680px;
	--ab-hero-mobile-img-h: 470px; /* phone: height of the photo area at the top of the hero (fades out at its bottom) */
}
.et_pb_section.ab-hero { position: relative; isolation: isolate; overflow: hidden; background-color: var(--ab-bg); }
/* Photo layer: mirrored (bottle on the right), multiplied so the white turns into the page beige */
.et_pb_section.ab-hero::before {
	content: ''; position: absolute; inset: 0; z-index: -2; pointer-events: none;
	background: var(--ab-hero-img) left center / cover no-repeat;
	transform: scaleX(-1); mix-blend-mode: multiply;
}
/* Soft fade on the text side for readability */
.et_pb_section.ab-hero::after {
	content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background: linear-gradient(90deg, var(--ab-bg) 0%, rgba(244,239,232,0.85) 30%, rgba(244,239,232,0) 60%);
}
.et_pb_section.ab-hero > .et_pb_row.ab-row { padding: 48px var(--ab-gutter) 96px; align-items: center; min-height: var(--ab-hero-min-height); }
.ab-hero .ab-row > .ab-col-main { flex: 0 1 620px !important; gap: 28px; }
@media (max-width: 980px) {
	.et_pb_section.ab-hero::after { background: linear-gradient(90deg, var(--ab-bg) 0%, rgba(244,239,232,0.9) 45%, rgba(244,239,232,0.2) 85%); }
}
@media (max-width: 767px) {
	/* Phone: photo is a real background at the TOP of the hero, behind the text; it fades out towards the buttons */
	.et_pb_section.ab-hero::before {
		inset: 0 0 auto 0; height: var(--ab-hero-mobile-img-h);
		background: var(--ab-hero-img-mobile) -50px top / auto var(--ab-hero-mobile-img-h) no-repeat; /* negative x pushes the drop to the right edge, clear of the headline */
		-webkit-mask-image: linear-gradient(180deg, #000 0, #000 55%, transparent 100%);
		mask-image: linear-gradient(180deg, #000 0, #000 55%, transparent 100%);
	}
	/* Soft beige veil from the left keeps the text readable (same idea as on desktop) */
	.et_pb_section.ab-hero::after {
		background: linear-gradient(90deg, rgba(244,239,232,0.92) 0%, rgba(244,239,232,0.75) 45%, rgba(244,239,232,0.1) 100%);
		-webkit-mask-image: linear-gradient(180deg, #000 0, #000 var(--ab-hero-mobile-img-h), transparent var(--ab-hero-mobile-img-h));
		mask-image: linear-gradient(180deg, #000 0, #000 var(--ab-hero-mobile-img-h), transparent var(--ab-hero-mobile-img-h));
	}
	.et_pb_section.ab-hero > .et_pb_row.ab-row { min-height: 0; padding-bottom: 96px; }
}
.ab-hero .ab-pill-wrap .et_pb_text_inner { display: flex; }
.ab-art svg { display: block; width: 100%; height: auto; }
.ab-stats { display: flex; flex-wrap: wrap; gap: 28px; padding-top: 12px; }
.ab-stat { display: flex; flex-direction: column; }
.ab-stat__value { font-size: 30px; font-weight: 300; letter-spacing: -0.02em; line-height: 1.5; }
.ab-stat__label { font-size: 14px; color: var(--ab-muted); }
.ab-stat-sep { width: 1px; background: var(--ab-line); }

/* --- feeling-Highlight box (plugin "Aromababy – feeling Highlight", shortcode [feeling_highlight]) --- */
.et_pb_section.ab-highlight { background-color: var(--ab-bg); }
.et_pb_section.ab-highlight > .et_pb_row.ab-row { padding: 40px var(--ab-gutter) 72px; } /* top = gap to hero */
.ab-fh {
	display: flex; flex-wrap: wrap; align-items: stretch; background: #FFFFFF; border-radius: 32px; overflow: hidden;
	box-shadow: 0 12px 32px rgba(46,58,48,0.08);
}
.ab-fh__media { flex: 1 1 380px; min-height: 240px; position: relative; display: block; }
.ab-fh__img { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: cover; }
.ab-fh__body { flex: 1 1 420px; min-width: 0; padding: 40px 44px; display: flex; flex-direction: column; justify-content: center; gap: 12px; }
.ab-fh__title { font-size: 34px !important; font-weight: 600 !important; line-height: 1.15 !important; letter-spacing: -0.025em; color: var(--ab-ink) !important; padding: 0 !important; }
.ab-fh__text { color: var(--ab-muted); font-size: 16px; line-height: 1.65; }
.ab-fh__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; padding-top: 8px; }
.ab-fh__count { font-size: 14px; color: var(--ab-muted); }
@media (max-width: 767px) {
	.ab-fh__media { min-height: 190px; }
	.ab-fh__body { padding: 28px 24px; }
	.ab-fh__title { font-size: 28px !important; }
	.et_pb_section.ab-highlight > .et_pb_row.ab-row { padding-bottom: 48px; }
}

/* --- Sortiment cards --- */
.et_pb_section.ab-sortiment { background-color: var(--ab-paper); border-radius: 48px 48px 0 0; }
.ab-sortiment .ab-row > .et_pb_column { gap: 48px; }
.ab-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; }
body .ab-card {
	text-decoration: none; color: var(--ab-ink); border-radius: 32px; padding: 32px;
	display: flex; flex-direction: column; gap: 14px; min-height: 260px;
	transition: transform .2s ease;
}
body .ab-card:hover { color: var(--ab-ink); transform: translateY(-2px); }
.ab-card--peach { background: var(--ab-peach); }
.ab-card--sage  { background: var(--ab-sage); }
.ab-card--sand  { background: var(--ab-sand); }
.ab-card__icon { width: 56px; height: 56px; border-radius: 50%; background: #FFFFFF; display: flex; align-items: center; justify-content: center; }
.ab-card__title { font-size: 23px; font-weight: 600; letter-spacing: -0.02em; line-height: 1.3; }
.ab-card__text { font-size: 16px; color: var(--ab-muted); flex-grow: 1; }
.ab-card__more { font-weight: 600; font-size: 15px; color: var(--ab-accent); }

/* --- How to order --- */
.et_pb_section.ab-shop { background-color: var(--ab-paper); }
.et_pb_section.ab-shop > .et_pb_row.ab-row { padding: 0 var(--ab-gutter) 96px; }
.ab-shop .ab-row > .ab-shop-box { background: var(--ab-sage); border-radius: 40px; padding: 64px 48px; gap: 48px; box-sizing: border-box; }
.ab-shop-box .ab-split > p { color: #4C5A4B; }
body .ab-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; line-height: 1.7; }
.ab-steps li { background: #FFFFFF; border-radius: 28px; padding: 28px; display: flex; flex-direction: column; gap: 8px; }
.ab-step__num { width: 40px; height: 40px; border-radius: 50%; background: var(--ab-accent); color: #FFFFFF; font-weight: 600; display: flex; align-items: center; justify-content: center; }
.ab-steps strong { font-size: 19px; font-weight: 600; padding-top: 8px; }
.ab-steps li > span:last-child { color: var(--ab-muted); font-size: 16px; }
@media (max-width: 767px) { .ab-shop .ab-row > .ab-shop-box { padding: 40px 24px; border-radius: 32px; } }

/* --- About --- */
.et_pb_section.ab-about { background-color: #FBEFE5; }
.ab-about .ab-row { gap: 56px !important; }
.ab-about .ab-row > .ab-col-photo { flex: 1 1 340px !important; }
.ab-about .ab-row > .ab-col-bio { flex: 999 1 520px !important; }
.ab-portrait-wrap { position: relative; }
.ab-portrait {
	aspect-ratio: 4 / 5; border-radius: 200px 200px 32px 32px; background: #F6DCC7;
	display: flex; align-items: flex-end; justify-content: center; padding: 24px; box-sizing: border-box; overflow: hidden;
}
.ab-portrait { position: relative; }
.ab-portrait img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; border-radius: inherit; }
.ab-portrait__hint { font-size: 13px; color: #5A4636; background: rgba(255,255,255,0.75); border-radius: 999px; padding: 6px 14px; }
.ab-badge {
	position: static; width: fit-content; margin: 16px auto 0; text-align: center; background: #FFFFFF; border-radius: 24px;
	padding: 16px 24px; display: flex; flex-direction: column; box-shadow: 0 12px 32px rgba(46,58,48,0.10); line-height: 1.5;
} /* name badge below the portrait */
.ab-badge strong { font-weight: 600; }
.ab-badge span { font-size: 14px; color: var(--ab-muted); }
.ab-bio { color: #4A4038; font-size: 18px; }
.ab-edu-box { background: #FFFFFF; border-radius: 28px; padding: 28px 32px; display: flex; flex-direction: column; gap: 8px; }
body .ab-edu { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 0 32px; line-height: 1.45; }
.ab-edu li { display: flex; gap: 14px; padding: 11px 0; border-bottom: 1px solid #F3E6DA; }
.ab-edu__year { font-weight: 600; color: var(--ab-accent); min-width: 42px; font-size: 15px; }
.ab-edu__info { display: flex; flex-direction: column; }
.ab-edu__title { font-weight: 500; font-size: 15px; }
.ab-edu__school { font-size: 13px; color: #6A5E54; }
@media (max-width: 767px) { .ab-edu-box { padding: 24px; } }

/* --- FAQ (Divi Accordion) --- */
.et_pb_section.ab-faq { background-color: var(--ab-paper); }
.et_pb_section.ab-faq > .et_pb_row.ab-row { max-width: 860px; }
.ab-faq .ab-row > .et_pb_column { gap: 36px; }
.ab-accordion .et_pb_toggle {
	background: var(--ab-bg) !important; border: 0 !important; border-radius: 24px;
	padding: 0 !important; margin: 0 0 12px !important;
}
.ab-accordion .et_pb_toggle:last-child { margin-bottom: 0 !important; }
.ab-accordion .et_pb_toggle_title {
	font-size: 18px !important; font-weight: 600 !important; color: var(--ab-ink) !important;
	line-height: 1.5 !important; padding: 22px 76px 22px 28px !important; min-height: 44px; cursor: pointer;
}
.ab-accordion .et_pb_toggle .et_pb_toggle_title:before {
	content: '+' !important; display: flex !important; align-items: center; justify-content: center;
	font-family: 'Manrope', system-ui, sans-serif !important; font-size: 20px !important; font-weight: 500;
	width: 34px; height: 34px; border-radius: 50%; background: #FFFFFF; color: var(--ab-accent) !important;
	right: 28px !important; top: 50% !important; margin-top: 0 !important; transform: translateY(-50%);
}
.ab-accordion .et_pb_toggle_open .et_pb_toggle_title:before { content: '\2013' !important; background: var(--ab-accent); color: #FFFFFF !important; }
.ab-accordion .et_pb_toggle_content { padding: 0 28px 24px !important; color: var(--ab-muted); font-size: 17px; line-height: 1.7; }

/* --- Contact --- */
.et_pb_section.ab-contact { background-color: var(--ab-paper); padding: 0 var(--ab-gutter) var(--ab-gutter); }
.et_pb_section.ab-contact > .et_pb_row.ab-row {
	max-width: calc(var(--ab-max) - 2 * var(--ab-gutter)); background: var(--ab-contact-bg); color: #FFFFFF;
	border-radius: 40px; padding: 64px 48px;
}
.ab-contact .ab-row > .ab-col-info { flex: 1 1 360px !important; gap: 20px; }
.ab-contact .ab-row > .ab-col-form { flex: 1 1 420px !important; }
.ab-contact .ab-h2 { color: #FFFFFF; }
.ab-contact .ab-h2 strong { color: #FFF1E6; }
.ab-contact-intro { color: #FFFFFF; }
.ab-contact-cards { display: flex; flex-direction: column; gap: 20px; }
body .ab-contact-card {
	text-decoration: none; color: #FFFFFF; background: rgba(255,255,255,0.14);
	border-radius: 24px; padding: 18px 22px; display: flex; flex-direction: column; line-height: 1.5;
	transition: background-color .2s ease;
}
body a.ab-contact-card:hover { color: #FFFFFF; background: rgba(255,255,255,0.22); }
.ab-contact-card__label { font-size: 14px; color: #FFF1E6; }
.ab-contact-card__value { font-size: 22px; font-weight: 600; }
.ab-contact-card__note { font-size: 15px; color: #FFF1E6; }
@media (max-width: 767px) {
	.et_pb_section.ab-contact { padding: 0 12px 12px; }
	.et_pb_section.ab-contact > .et_pb_row.ab-row { padding: 40px 20px; border-radius: 32px; }
	.ab-contact-card__value { font-size: 19px; }
}

/* Contact form module */
.ab-form.et_pb_contact_form_container { background: var(--ab-paper); color: var(--ab-ink); border-radius: 32px; padding: 36px !important; box-sizing: border-box; }
.ab-form .et_pb_contact_main_title { display: none; }
.ab-form .et_pb_contact { margin: 0; }
.ab-form .et_pb_contact_form { margin: 0 !important; display: flex; flex-direction: column; gap: 18px; }
.ab-form .et_pb_contact_field { width: 100% !important; margin: 0 !important; padding: 0 !important; float: none !important; clear: none !important; }
.ab-form .et_pb_contact_form_label,
.ab-form .et_pb_contact_field_options_title { display: block !important; font-weight: 600; font-size: 15px; margin: 0 0 6px; color: var(--ab-ink); }
.ab-form .input,
.ab-form .et_pb_contact_select {
	font-family: inherit !important; font-size: 17px !important; font-weight: 400; color: var(--ab-ink) !important;
	padding: 13px 16px !important; border: 1px solid #DDD5C8 !important; background-color: #FFFFFF !important;
	border-radius: 14px !important; min-height: 48px; width: 100% !important; box-sizing: border-box;
}
.ab-form textarea.input { min-height: 130px; resize: vertical; }
.ab-form .et_pb_contact_field[data-type="select"] { position: relative; }
.ab-form .et_pb_contact_field[data-type="select"]:after { top: auto !important; bottom: 21px !important; right: 18px !important; margin: 0 !important; }
.ab-form .input:focus { border-color: var(--ab-green) !important; outline: 2px solid rgba(63,82,69,0.15); }
.ab-form .et_pb_contact_field_checkbox label,
.ab-form .et_pb_contact_field_options_list label { font-size: 14px !important; color: var(--ab-muted) !important; line-height: 1.5; }
.ab-form .et_pb_contact_field_options_list label > i { background-color: #FFFFFF !important; border: 1px solid #DDD5C8; }
.ab-form .et_contact_bottom_container { float: none !important; margin: 0 !important; display: flex; flex-direction: column; align-items: stretch; gap: 14px; text-align: left; }
.ab-form .et_pb_contact_right { float: none; text-align: left; }
body .ab-form .et_pb_contact_submit.et_pb_button {
	width: 100%; margin: 0 !important; background: var(--ab-accent) !important; color: #FFFFFF !important;
	border: 0 !important; border-radius: 999px !important; padding: 16px 28px !important; min-height: 52px;
	font-size: 17px !important; font-weight: 600 !important; line-height: 1.2 !important; letter-spacing: 0 !important;
}
body .ab-form .et_pb_contact_submit.et_pb_button:hover { background: var(--ab-accent-hover) !important; padding: 16px 28px !important; }
body .ab-form .et_pb_contact_submit.et_pb_button:after { display: none !important; }
.ab-form .et-pb-contact-message { color: var(--ab-ink); }
@media (max-width: 767px) { .ab-form.et_pb_contact_form_container { padding: 24px !important; border-radius: 24px; } }

/* --- Legal pages (Impressum, Datenschutz, ...) --- */
.et_pb_section.ab-legal { background-color: var(--ab-paper); border-radius: 48px 48px 0 0; margin-top: 24px; }
.et_pb_section.ab-legal > .et_pb_row.ab-row { max-width: 860px; padding-top: 72px; }
.ab-legal .ab-row > .et_pb_column { gap: 28px; }
.ab-legal-card { background: var(--ab-peach); border-radius: 28px; padding: 28px 32px; display: flex; flex-direction: column; gap: 4px; font-size: 18px; }
.ab-legal-card strong { font-size: 21px; font-weight: 600; }
.ab-legal .et_pb_text p { color: #4A4038; margin-bottom: 16px !important; }
.ab-legal-h { font-size: 22px !important; font-weight: 600 !important; letter-spacing: -0.01em; margin: 32px 0 10px !important; color: var(--ab-ink) !important; }
.ab-legal-source { font-size: 14px; color: var(--ab-muted) !important; }
@media (max-width: 767px) { .et_pb_section.ab-legal > .et_pb_row.ab-row { padding-top: 48px; } .ab-legal-card { padding: 22px 24px; } }

/* --- Footer (Theme Builder) --- */
.et_pb_section.ab-footer { background-color: var(--ab-paper); color: var(--ab-muted); font-size: 14px; }
.et_pb_section.ab-footer > .et_pb_row.ab-row { padding: 24px var(--ab-gutter) 40px; }
.ab-footer-inner { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 24px; line-height: 1.7; }
.ab-footer-nav { display: flex; flex-wrap: wrap; gap: 8px 20px; }

/* Back-to-top button (Divi built-in, enabled in Divi > Theme Options): brand look */
.et_pb_scroll_top.et-pb-icon {
	background: var(--ab-accent) !important; color: #FFFFFF !important;
	border-radius: 999px; width: 44px; height: 44px; line-height: 44px; padding: 0;
	right: 20px; bottom: 20px; text-align: center; font-size: 22px;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
}
.et_pb_scroll_top.et-pb-icon:hover { background: var(--ab-accent-hover) !important; }
/* Arrow glyph for the back-to-top button (Divi's icon font rule is not loaded on this site) */
.et_pb_scroll_top.et-pb-icon::before {
	/* Simple chevron (^) drawn with borders */
	content: ""; position: absolute; left: 50%; top: 50%;
	width: 11px; height: 11px; box-sizing: border-box;
	border-top: 3px solid #FFFFFF; border-left: 3px solid #FFFFFF;
	transform: translate(-50%, -30%) rotate(45deg);
}
/* Back-to-top button: fixed in the corner, shown only after scrolling */
.et_pb_scroll_top.et-pb-icon {
	position: fixed !important; left: auto !important; top: auto !important; right: 20px; bottom: 20px;
	z-index: 99990; cursor: pointer; display: block;
	opacity: 0; visibility: hidden; transition: opacity 0.25s ease, visibility 0.25s ease;
}
.et_pb_scroll_top.et-pb-icon.ab-top-visible { opacity: 1; visibility: visible; }