/**
 * Alemannumzug — design system (from the Claude Design layout).
 * All colors/fonts/sizes come from the plugin's design tokens (--au-*),
 * editable under WP-Admin → Alemannumzug → Design.
 *
 * Classes are applied to Bricks elements via their "CSS classes" setting.
 */

/* ---------------------------------------------------------------------
 * Base
 * ------------------------------------------------------------------- */

/* Bricks (CSS-layer mode) sets html { font-size: 62.5% } = 10px inside @layer.
   Our tokens assume 1rem = 16px — this unlayered rule always wins over @layer. */
html {
	font-size: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: 100px; /* sticky header offset for #anfrage anchors */
}

body {
	font-family: var(--au-font-body);
	font-size: var(--au-fs-base);
	color: var(--au-text);
	background: var(--au-background);
	-webkit-text-size-adjust: 100%;
	text-wrap: pretty;
}

.au-page a { text-decoration: none; }

@keyframes au-rise {
	from { opacity: 0; transform: translateY(10px); }
	to   { opacity: 1; transform: none; }
}

/* ---------------------------------------------------------------------
 * Layout helpers
 * ------------------------------------------------------------------- */

.au-container {
	width: 100%;
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
	padding-left: clamp(16px, 4vw, 32px);
	padding-right: clamp(16px, 4vw, 32px);
}

.au-section { padding: clamp(56px, 8vw, 104px) 0; }
.au-section--sub { padding: clamp(48px, 7vw, 88px) 0; }
.au-section--hero { padding: clamp(40px, 6vw, 80px) 0; }

.au-bg-white { background: var(--au-background); }
.au-bg-cream { background: var(--au-surface); }
.au-bg-dark { background: var(--au-secondary); color: #fff; }

/* Two/Three column auto grids */
.au-grid-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: clamp(32px, 5vw, 64px); align-items: center; }
.au-grid-2--start { align-items: start; gap: clamp(28px, 4vw, 56px); }
.au-grid-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 20px; }
.au-grid-cards--sm { grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 18px; }
.au-grid-cards--xs { grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 14px; }

/* Equal-height cards regardless of their text length: Bricks wraps each card
   in a .brxe-text div — stretch the wrapper AND the card inside it. */
.au-grid-cards > .brxe-text { display: flex; }
.au-grid-cards > .brxe-text > * { flex: 1 1 auto; width: 100%; box-sizing: border-box; }

/* Section-level spacing utility (photo mosaic → USP cards etc.) */
.au-mt-lg { margin-top: clamp(40px, 6vw, 72px); }
.au-mt-md { margin-top: clamp(20px, 3vw, 32px); }
.au-note { font-size: var(--au-fs-sm); color: var(--au-text-light); line-height: 1.6; padding: 14px 16px; border-left: 3px solid var(--au-primary); background: var(--au-surface); border-radius: 0 10px 10px 0; margin: 0 0 20px; }
.au-card__phone { margin-top: auto; padding-top: 12px; font-size: var(--au-fs-base); }
.au-card__phone .au-phone__link { font-weight: 700; color: var(--au-heading); }
.au-card__phone .au-phone__link:hover { color: var(--au-primary-dark); }
.au-card .au-textlink.au-card__more { margin-top: 10px; padding-top: 0; }

/* ---------------------------------------------------------------------
 * Typography
 * ------------------------------------------------------------------- */

.au-eyebrow {
	font-size: var(--au-fs-xs);
	letter-spacing: .22em;
	font-weight: 800;
	color: var(--au-primary-dark);
	text-transform: uppercase;
	margin: 0 0 14px;
}
.au-bg-dark .au-eyebrow,
.au-eyebrow--light { color: var(--au-primary-light); }
.au-eyebrow--line { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 22px; }
.au-eyebrow--line::before { content: ''; width: 28px; height: 1px; background: var(--au-primary); }

.au-display {
	font-family: var(--au-font-heading);
	font-weight: 600;
	line-height: 1.05;
	letter-spacing: -.01em;
	text-wrap: balance;
	margin: 0 0 18px;
	color: inherit;
}
.au-display em { font-style: italic; color: var(--au-primary-light); }
.au-display--hero { font-size: var(--au-fs-6xl); line-height: .98; margin-bottom: 22px; }
.au-display--page { font-size: var(--au-fs-5xl); line-height: 1; max-width: 800px; }
.au-display--h2 { font-size: var(--au-fs-4xl); }
.au-display--h2sub { font-size: var(--au-fs-3xl); line-height: 1.08; }

.au-lead {
	font-size: var(--au-fs-md);
	line-height: 1.7;
	color: var(--au-text-light);
	max-width: 640px;
	margin: 0 0 28px;
}
.au-bg-dark .au-lead { color: var(--au-color-dark-text); }
.au-lead--tight { margin-bottom: 16px; }

.au-intro { max-width: 720px; margin-bottom: clamp(32px, 4vw, 48px); }
.au-intro--center { text-align: center; max-width: 680px; margin: 0 auto clamp(32px, 4vw, 52px); }
.au-intro--center .au-lead { margin-left: auto; margin-right: auto; }

/* Breadcrumb (dark heroes) */
.au-crumbs { font-size: var(--au-fs-sm); color: var(--au-color-dark-muted); margin-bottom: 18px; display: flex; gap: 8px; flex-wrap: wrap; }
.au-crumbs a { color: var(--au-color-dark-muted); }
.au-crumbs a:hover { color: var(--au-primary-light); }
.au-crumbs .current { color: var(--au-primary-light); }

/* ---------------------------------------------------------------------
 * Buttons
 * ------------------------------------------------------------------- */

.au-btn {
	display: inline-block;
	padding: 15px 24px;
	border-radius: 10px;
	font-weight: 800;
	font-size: 14px;
	letter-spacing: .02em;
	text-align: center;
	border: 0;
	cursor: pointer;
	transition: transform .15s, background .15s, color .15s, border-color .15s;
}
.au-btn--gold { background: linear-gradient(135deg, var(--au-primary), var(--au-primary-light)); color: var(--au-secondary); }
.au-btn--gold:hover { transform: translateY(-2px); color: var(--au-secondary); }
.au-btn--dark { background: var(--au-secondary); color: var(--au-primary-light); }
.au-btn--dark:hover { background: var(--au-primary); color: var(--au-secondary); }
.au-btn--outline { border: 1px solid rgba(255, 255, 255, .28); color: #fff; font-weight: 700; }
.au-btn--outline:hover { border-color: var(--au-primary-light); color: var(--au-primary-light); }
.au-btn--block { display: block; width: 100%; }

.au-btn-row { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 36px; }
.au-btn-row .au-btn { flex: 1 1 200px; }
/* CTA reassurance line under the primary button */
.au-cta-note { margin-top: 10px; font-size: var(--au-fs-sm); color: var(--au-color-dark-muted); letter-spacing: .01em; }
.au-bg-white .au-cta-note, .au-bg-cream .au-cta-note { color: var(--au-text-light); }

.au-textlink {
	font-size: var(--au-fs-sm);
	font-weight: 800;
	color: var(--au-primary-dark);
	letter-spacing: .04em;
	text-transform: uppercase;
}
.au-textlink:hover { color: var(--au-primary); }

/* ---------------------------------------------------------------------
 * Dark hero (home, category, service)
 * ------------------------------------------------------------------- */

.au-hero { position: relative; overflow: hidden; background: var(--au-secondary); color: #fff; }
.au-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: radial-gradient(60% 80% at 80% 20%, color-mix(in srgb, var(--au-primary) 18%, transparent), transparent 60%);
}
.au-hero > * { position: relative; }
.au-hero .au-lead { color: var(--au-color-dark-text); font-size: var(--au-fs-md); max-width: 560px; margin-bottom: 30px; }

/* Location heroes: retain the text and CTA, with the canton flag alongside. */
.au-location-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr);
	align-items: center;
	gap: clamp(32px, 5vw, 64px);
}
.au-location-hero__content { min-width: 0; }
.au-location-hero__flag {
	display: block;
	justify-self: center;
	width: min(100%, 320px);
	height: auto;
	aspect-ratio: 1;
	object-fit: contain;
	box-shadow: 0 20px 48px rgba(0, 0, 0, .22);
}
@media (max-width: 767px) {
	.au-location-hero__grid { grid-template-columns: minmax(0, 1fr); }
	.au-location-hero__flag { width: min(55vw, 220px); }
}

/* Hero stats row */
.au-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 16px; border-top: 1px solid rgba(255, 255, 255, .14); padding-top: 22px; }
.au-stat__num { font-family: var(--au-font-heading); font-size: var(--au-fs-2xl); color: var(--au-primary-light); font-weight: 600; line-height: 1.1; }
.au-stat__label { font-size: var(--au-fs-sm); color: var(--au-color-dark-muted); line-height: 1.5; margin-top: 4px; }

/* Light stats (Einblick section) */
.au-stats--light { border-top-color: var(--au-border); grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 14px; }
.au-stats--light .au-stat__num { color: var(--au-primary-dark); }
.au-stats--light .au-stat__label { color: var(--au-text-light); }

/* Hero photo frame */
.au-hero-photo { position: relative; padding: 12px 12px 0 0; }
.au-hero-photo::before { content: ''; position: absolute; top: 0; right: 0; width: 70%; height: 70%; border: 1px solid var(--au-primary); border-radius: 20px; }
.au-hero-photo__img { position: relative; width: 100%; aspect-ratio: 4 / 3; border-radius: 20px; overflow: hidden; box-shadow: 0 30px 60px rgba(0, 0, 0, .5); background: var(--au-secondary-dark); }
.au-hero-photo__img img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Photo placeholders (until real photos are uploaded) */
.au-photo { overflow: hidden; border-radius: 18px; border: 1px solid var(--au-border); background: var(--au-surface); }
.au-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.au-photo--16x7 { aspect-ratio: 16 / 7; }
.au-photo--16x9 { aspect-ratio: 16 / 9; }
.au-photo--4x3 { aspect-ratio: 4 / 3; }
.au-photo--1x1 { aspect-ratio: 1; }

/* Location chips (served towns/quarters on Standort pages) */
.au-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.au-chip { display: inline-flex; align-items: center; padding: 6px 12px; border-radius: 999px; background: var(--au-surface); border: 1px solid var(--au-border); font-size: var(--au-fs-sm); font-weight: 600; color: var(--au-text); }
.au-photo-placeholder { display: grid; place-items: center; width: 100%; height: 100%; font-size: var(--au-fs-sm); color: var(--au-color-placeholder); text-align: center; padding: 12px; min-height: 120px; }

/* Photo mosaic (Einblick) */
.au-mosaic { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.au-mosaic > :first-child { grid-column: span 2; }
.au-mosaic .au-photo { background: var(--au-background); }

/* ---------------------------------------------------------------------
 * Cards
 * ------------------------------------------------------------------- */

.au-card {
	background: var(--au-background);
	border: 1px solid var(--au-border);
	border-radius: 18px;
	padding: 28px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.au-card--hover { transition: transform .2s, box-shadow .2s; }
.au-card--hover:hover { transform: translateY(-3px); box-shadow: 0 20px 40px rgba(20, 16, 8, .1); }

.au-card__num { font-family: var(--au-font-heading); font-size: 32px; color: var(--au-primary); font-weight: 600; line-height: 1; }
.au-card__title { margin: 0; font-size: var(--au-fs-xl); font-weight: 700; letter-spacing: -.01em; color: var(--au-heading); }
.au-card__text { margin: 0; color: var(--au-text-light); line-height: 1.65; font-size: var(--au-fs-base); }
.au-card__tick { width: 40px; height: 2px; background: var(--au-primary); }

/* Sub-service link list inside a category card */
.au-sublist { display: grid; gap: 2px; margin-top: 4px; border-top: 1px solid var(--au-color-border-soft); padding-top: 12px; }
.au-sublist a {
	display: flex; justify-content: space-between; align-items: center;
	padding: 10px 6px; border-radius: 8px; min-height: 44px;
	font-size: var(--au-fs-base); font-weight: 600; color: var(--au-text);
}
.au-sublist a::after { content: '→'; color: var(--au-primary); }
.au-sublist a:hover { background: var(--au-surface); color: var(--au-primary-dark); }
.au-card .au-textlink { margin-top: auto; padding-top: 8px; }

/* Service card (category page): whole card clickable via a stretched overlay link */
.au-card--link { position: relative; }
.au-card__stretch { position: absolute; inset: 0; z-index: 2; border-radius: inherit; }
.au-card--link .au-textlink { margin-top: auto; padding-top: 8px; }
.au-card--link:hover .au-textlink { color: var(--au-primary-dark); }

/* Legacy anchor-card styling (kept for any cached markup) */
a.au-card { color: var(--au-text); gap: 10px; padding: 26px; }
a.au-card:hover { color: var(--au-text); }
a.au-card .au-textlink { margin-top: auto; padding-top: 8px; }

/* Benefit rows (✓ list) */
.au-benefits { display: grid; gap: 12px; }
.au-benefit {
	display: grid; grid-template-columns: 44px 1fr; gap: 14px; align-items: start;
	background: var(--au-color-cream-soft); border: 1px solid var(--au-border);
	border-radius: 14px; padding: 18px 20px;
}
.au-benefit__icon {
	width: 44px; height: 44px; border-radius: 12px;
	background: var(--au-secondary); color: var(--au-primary-light);
	display: grid; place-items: center; font-weight: 800; font-size: 16px;
}
.au-benefit__icon::before { content: '✓'; }
.au-benefit__title { font-weight: 700; font-size: var(--au-fs-lg); margin-bottom: 4px; color: var(--au-heading); }
.au-benefit__text { font-size: var(--au-fs-base); color: var(--au-text-light); line-height: 1.6; }

/* USP cards */
.au-usp { background: var(--au-background); border: 1px solid var(--au-border); border-radius: 16px; padding: 24px; }
.au-usp::before { content: ''; display: block; width: 36px; height: 2px; background: var(--au-primary); margin-bottom: 16px; }
.au-usp__title { font-weight: 700; font-size: var(--au-fs-lg); margin-bottom: 8px; color: var(--au-heading); }
.au-usp__text { font-size: var(--au-fs-base); color: var(--au-text-light); line-height: 1.65; }

/* Review cards */
.au-review { background: var(--au-color-cream-soft); border: 1px solid var(--au-border); border-radius: 18px; padding: 28px; display: flex; flex-direction: column; gap: 14px; }
.au-review__stars { color: var(--au-primary); letter-spacing: 2px; font-size: 14px; }
.au-review__quote { margin: 0; font-family: var(--au-font-heading); font-size: 21px; line-height: 1.4; font-weight: 500; color: var(--au-text); }
.au-review__meta { margin-top: auto; font-size: var(--au-fs-sm); color: var(--au-text-light); }
.au-review__meta strong { font-weight: 700; color: var(--au-text); }

/* Process step cards (dark section) */
.au-step { background: var(--au-secondary-dark); border: 1px solid #262626; border-top: 2px solid var(--au-primary); border-radius: 14px; padding: 26px 22px; }
.au-step__num { font-family: var(--au-font-heading); font-size: 36px; color: var(--au-primary-light); font-weight: 600; line-height: 1; margin-bottom: 14px; }
.au-step__title { font-weight: 700; font-size: var(--au-fs-lg); margin-bottom: 8px; color: #fff; }
.au-step__text { font-size: var(--au-fs-base); color: var(--au-color-dark-muted); line-height: 1.6; }

/* Numbered points (service detail) */
.au-points { display: grid; gap: 0; }
.au-point { display: grid; grid-template-columns: 40px 1fr; gap: 14px; padding: 18px 0; border-top: 1px solid var(--au-border); }
.au-point__num { font-family: var(--au-font-heading); font-size: 28px; color: var(--au-primary); font-weight: 600; line-height: 1; }
.au-point__title { font-weight: 700; font-size: var(--au-fs-lg); margin-bottom: 6px; color: var(--au-heading); }
.au-point__text { font-size: var(--au-fs-base); color: var(--au-text-light); line-height: 1.7; }

/* Checklist (✓ plain rows) */
.au-checklist { display: grid; gap: 10px; }
.au-checklist > * { display: flex; gap: 10px; align-items: flex-start; font-size: var(--au-fs-base); line-height: 1.5; }
.au-checklist > *::before { content: '✓'; color: var(--au-primary); font-weight: 800; flex-shrink: 0; }

/* Sidebar boxes (service detail) */
.au-sidebar { display: grid; gap: 16px; align-content: start; }
.au-box { border: 1px solid var(--au-border); border-radius: 18px; padding: 26px; }
.au-box--cream { background: var(--au-surface); }
.au-box--dark { background: var(--au-secondary); color: #fff; border: 0; }
.au-box--dark .au-box__title { color: #fff; }
.au-box__title { font-family: var(--au-font-heading); font-size: 28px; font-weight: 600; line-height: 1.1; margin: 0 0 10px; }
.au-box__text { font-size: var(--au-fs-base); color: var(--au-color-dark-muted); line-height: 1.6; margin: 0 0 18px; }
.au-box__note { text-align: center; font-size: var(--au-fs-sm); color: var(--au-color-dark-muted); margin-top: 12px; }
.au-box__note a { color: var(--au-primary-light); }

/* Info callout (Offerte page) */
.au-callout { border-left: 3px solid var(--au-primary); padding: 16px 18px; background: var(--au-background); border-radius: 0 12px 12px 0; }
.au-callout__title { font-weight: 700; color: var(--au-primary-dark); font-size: var(--au-fs-base); margin-bottom: 4px; }
.au-callout__text { font-size: var(--au-fs-sm); color: var(--au-text-light); line-height: 1.6; }

/* ---------------------------------------------------------------------
 * FAQ (Bricks accordion element)
 * ------------------------------------------------------------------- */

.au-faq { display: grid; gap: 10px; }
.au-faq .accordion-item,
.au-faq .brxe-accordion-nested .accordion-item {
	border: 1px solid var(--au-border);
	border-radius: 14px;
	padding: 4px 20px;
	background: var(--au-background);
	transition: border-color .15s;
}
.au-faq .accordion-item:hover { border-color: var(--au-primary); }
.au-faq .accordion-title-wrapper,
.au-faq .accordion-title { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 14px 0; cursor: pointer; }
.au-faq .accordion-title > * { font-weight: 700; font-size: var(--au-fs-lg); margin: 0; color: var(--au-heading); }
.au-faq .accordion-content-wrapper { font-size: var(--au-fs-base); color: var(--au-text-light); line-height: 1.7; padding: 0 0 16px; }
.au-faq .brx-accordion-icon,
.au-faq .icon { color: var(--au-primary); }

/* ---------------------------------------------------------------------
 * CTA band (gold gradient)
 * ------------------------------------------------------------------- */

/* background-color fallback: Bricks' lazy-load (.bricks-lazy-hidden) blocks
   background-image until the section is scrolled into view. */
.au-cta-band {
	background-color: var(--au-primary);
	background-image: linear-gradient(135deg, var(--au-primary), var(--au-primary-light));
	color: var(--au-secondary);
	padding: clamp(28px, 4vw, 40px) 0;
}
.au-cta-band__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 20px; align-items: center; }
.au-cta-band__label { font-size: 10px; letter-spacing: .2em; font-weight: 800; text-transform: uppercase; opacity: .7; margin-bottom: 4px; }
.au-cta-band__value { font-weight: 800; font-size: var(--au-fs-lg); word-break: break-word; }
.au-cta-band__value a { color: inherit; }
.au-cta-band .au-btn--dark:hover { background: var(--au-secondary); color: #fff; }

/* ---------------------------------------------------------------------
 * Offerte form (Bricks form element)
 * ------------------------------------------------------------------- */

.au-form-card {
	background: var(--au-background);
	border: 1px solid var(--au-border);
	border-radius: 20px;
	padding: clamp(20px, 3vw, 32px);
	box-shadow: 0 20px 50px rgba(20, 16, 8, .08);
}

/* Two-column grid; checkbox groups, textarea and submit span both columns */
.au-form-card .brxe-form {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
}
/* Our grid handles the layout — neutralize Bricks' inline field widths */
.au-form-card .brxe-form .form-group { width: 100% !important; }
.au-form-card .form-group:has(.options-wrapper),
.au-form-card .form-group:has(textarea),
.au-form-card .form-group:has(button),
.au-form-card .submit-button-wrapper { grid-column: 1 / -1; }
@media (max-width: 600px) {
	.au-form-card .brxe-form { grid-template-columns: 1fr; }
}

.au-form-card .form-group > label {
	font-size: var(--au-fs-sm);
	font-weight: 700;
	color: #3a3630;
	display: block;
	margin-bottom: 6px;
}
.au-form-card input:not([type='checkbox']):not([type='radio']):not([type='submit']),
.au-form-card select,
.au-form-card textarea {
	width: 100%;
	padding: 13px 14px;
	border: 1px solid var(--au-color-border-input);
	border-radius: 10px;
	background: var(--au-color-cream-soft);
	color: var(--au-text);
	font: inherit;
	font-size: var(--au-fs-base);
}
.au-form-card input::placeholder,
.au-form-card textarea::placeholder { color: var(--au-color-placeholder); }

/* Checkbox service groups — fieldset look from the design */
.au-form-card .form-group:has(.options-wrapper) {
	border: 1px solid var(--au-color-border-input);
	border-radius: 12px;
	padding: 12px 16px 14px;
}
.au-form-card .form-group:has(.options-wrapper) > label {
	color: var(--au-primary-dark);
	letter-spacing: .08em;
	text-transform: uppercase;
	font-size: var(--au-fs-sm);
	margin-bottom: 4px;
}
.au-form-card .options-wrapper {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: 2px 16px;
}
.au-form-card .options-wrapper li { display: flex; align-items: center; gap: 10px; min-height: 40px; }
.au-form-card .options-wrapper label { font-weight: 400; font-size: var(--au-fs-base); margin: 0; cursor: pointer; }
.au-form-card input[type='checkbox'] { width: 18px; height: 18px; accent-color: var(--au-primary); margin: 0; flex-shrink: 0; }

.au-form-card button[type='submit'],
.au-form-card .bricks-button {
	background: linear-gradient(135deg, var(--au-primary), var(--au-primary-light));
	color: var(--au-secondary);
	border: 0;
	padding: 16px;
	border-radius: 10px;
	font-weight: 800;
	font-size: 15px;
	cursor: pointer;
	min-height: 52px;
	width: 100%;
}

/* ---------------------------------------------------------------------
 * Header (Bricks header template)
 * ------------------------------------------------------------------- */

#brx-header { position: sticky; top: 0; z-index: 60; }
.au-header { background: rgba(255, 255, 255, .96); backdrop-filter: blur(8px); border-bottom: 1px solid var(--au-border); }
/* Doubled class beats Bricks' .brxe-container { flex-direction: column } */
.au-header__bar.au-header__bar {
	height: 84px;
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}
.au-header .au-logo img { height: 70px; width: auto; display: block; }
@media (max-width: 600px) {
	.au-header__bar.au-header__bar { height: 72px; }
	.au-header .au-logo img { height: 58px; }
}
.au-header .brxe-text p { margin: 0; }

/* Bricks nav menu element.
   Plain items are <li><a>, dropdown items are <li><div.brx-submenu-toggle><a><button>
   — both get identical type/padding so everything sits on one line. */
.au-nav .bricks-nav-menu { align-items: center; gap: 4px; }
.au-nav .bricks-nav-menu > li > a,
.au-nav .bricks-nav-menu > li > .brx-submenu-toggle { border-radius: 8px; }
.au-nav .bricks-nav-menu > li > a,
.au-nav .bricks-nav-menu > li > .brx-submenu-toggle > a {
	padding: 10px 14px;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .01em;
	line-height: 1.2;
	color: var(--au-secondary);
	border-radius: 8px;
}
.au-nav .bricks-nav-menu > li > .brx-submenu-toggle > a { padding-right: 2px; }
.au-nav .bricks-nav-menu > li > a:hover,
.au-nav .bricks-nav-menu > li > .brx-submenu-toggle:hover { background: var(--au-surface); }
.au-nav .bricks-nav-menu li.current-menu-item > a,
.au-nav .bricks-nav-menu li.current-menu-item > .brx-submenu-toggle > a { color: var(--au-primary-dark); }
.au-nav .brx-submenu-toggle > button {
	display: flex;
	align-items: center;
	padding: 0 12px 0 4px;
	background: none;
	border: 0;
	cursor: pointer;
	color: var(--au-primary);
}
.au-nav .brx-submenu-toggle .menu-item-icon { width: 11px; height: 11px; }
.au-nav .bricks-nav-menu .sub-menu {
	background: #fff;
	border: 1px solid var(--au-border);
	border-radius: 14px;
	box-shadow: 0 18px 40px rgba(20, 16, 8, .14);
	padding: 8px;
	min-width: 260px;
	line-height: 1.3; /* Bricks sets 60px here, which made every item ~80px tall */
	animation: au-rise .2s cubic-bezier(.2, .7, .2, 1);
}
.au-nav .bricks-nav-menu .sub-menu li { line-height: inherit; }
.au-nav .bricks-nav-menu .sub-menu a {
	display: block;
	padding: 9px 12px;
	line-height: 1.3;
	border-radius: 8px;
	font-size: 14px;
	font-weight: 600;
	color: var(--au-text);
}
.au-nav .bricks-nav-menu .sub-menu a:hover { background: var(--au-surface); color: var(--au-primary-dark); }

/* Mobile menu (Bricks) */
.au-nav .bricks-mobile-menu-wrapper { background: #fff; }
/* Mobile nav toggle: Bricks anchors its three bars to the top-right of a 20×16 box.
   We use a 44px button, so re-centre the bars (border 1px → 42px inner: (42-16)/2 = 13). */
.au-nav .bricks-mobile-menu-toggle { border: 1px solid var(--au-border); border-radius: 10px; width: 44px; height: 44px; color: var(--au-secondary); background: #fff; }
.au-nav .bricks-mobile-menu-toggle span { right: 11px; width: 20px; }
.au-nav .bricks-mobile-menu-toggle .bar-top { top: 13px; }
.au-nav .bricks-mobile-menu-toggle .bar-center { top: 20px; }
.au-nav .bricks-mobile-menu-toggle .bar-bottom { top: 27px; }
.au-nav.show-mobile-menu .bricks-mobile-menu-toggle .bar-top { top: 20px; transform: rotate(45deg); }
.au-nav.show-mobile-menu .bricks-mobile-menu-toggle .bar-bottom { top: 20px; transform: rotate(-45deg); }
.au-nav.show-mobile-menu .bricks-mobile-menu-toggle .bar-center { opacity: 0; }

/* Tablet/phone header: logo left, CTA + toggle right (instead of the toggle floating mid-bar). */
@media (max-width: 991px) {
	.au-header__bar.au-header__bar { justify-content: flex-start; gap: 12px; }
	.au-header__bar > .brxe-text { margin-right: auto; }
	.au-header .au-btn--dark { order: 2; }
	.au-header .au-nav { order: 3; }
}

/* Phone: header CTA moves into a sticky bottom action bar (call left, Offerte right). */
.au-mobile-bar {
	display: none;
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 900; /* below Bricks' off-canvas menu (999) */
	grid-template-columns: auto 1fr;
	gap: 12px;
	align-items: stretch;
	padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px));
	background: rgba(255, 255, 255, .97);
	backdrop-filter: blur(10px);
	box-shadow: 0 -6px 24px rgba(0, 0, 0, .10);
}
.au-mobile-bar a {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 60px;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	transition: transform .15s ease, box-shadow .15s ease;
}
.au-mobile-bar a:active { transform: scale(.97); }
/* Left: compact square, icon above label */
.au-mobile-bar__call {
	flex-direction: column;
	gap: 6px;
	width: 74px;
	border-radius: 16px;
	font-size: 12px;
	letter-spacing: .02em;
	color: var(--au-primary-dark);
	background: color-mix(in srgb, var(--au-primary) 14%, #fff);
	border: 1px solid color-mix(in srgb, var(--au-primary) 35%, #fff);
}
.au-mobile-bar__icon { flex: none; width: 22px; height: 22px; }
/* Right: wide pill CTA */
.au-mobile-bar__cta {
	gap: 10px;
	padding: 0 20px;
	border-radius: 999px;
	font-size: 16px;
	color: var(--au-secondary);
	background: linear-gradient(135deg, var(--au-primary), var(--au-primary-light));
	box-shadow: 0 8px 20px rgba(199, 155, 69, .35);
}
.au-mobile-bar__arrow { font-size: 18px; }
@media (max-width: 767px) {
	.au-header .au-btn--dark { display: none; }
	.au-mobile-bar { display: grid; }
	body { padding-bottom: calc(70px + env(safe-area-inset-bottom, 0px)); }
	/* Off-canvas menu open → hide the bar so it does not overlap the menu. */
	body:has(.brxe-nav-menu.show-mobile-menu) .au-mobile-bar { display: none; }
}
.au-nav .bricks-mobile-menu-wrapper .bricks-mobile-menu > li > a { font-size: 17px; font-weight: 700; border-bottom: 1px solid var(--au-color-border-soft); }
.au-nav .bricks-mobile-menu-wrapper .sub-menu a { font-size: 15px; color: #3a3630; }

/* Header CTA button */
.au-header .au-btn--dark { padding: 12px 18px; font-size: 13px; letter-spacing: .04em; text-transform: uppercase; border-radius: 10px; }

/* ---------------------------------------------------------------------
 * Footer
 * ------------------------------------------------------------------- */

.au-footer { background: var(--au-secondary); color: #fff; padding: clamp(40px, 6vw, 64px) 0 28px; }
.au-footer__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 32px; }
.au-footer__brand { font-family: var(--au-font-heading); font-size: 30px; font-weight: 700; letter-spacing: .04em; line-height: 1; color: #fff; }
.au-footer__brand span { color: var(--au-primary-light); }
.au-footer__tagline { font-size: var(--au-fs-xs); letter-spacing: .2em; color: var(--au-color-dark-muted); margin-top: 8px; text-transform: uppercase; }
.au-footer__about { font-size: var(--au-fs-sm); color: var(--au-color-dark-muted); line-height: 1.7; margin: 18px 0 0; max-width: 300px; }
.au-footer__title { font-weight: 700; color: #fff; margin-bottom: 12px; font-size: 14px; display: block; }
a.au-footer__title:hover { color: var(--au-primary-light); }
.au-footer__links { display: grid; gap: 4px; }
.au-footer__links a, .au-footer__links > div { display: block; color: var(--au-color-dark-muted); font-size: var(--au-fs-sm); padding: 6px 0; }
.au-footer__links a:hover { color: var(--au-primary-light); }
.au-footer__legal { display: flex; flex-wrap: wrap; gap: 6px 16px; }
.au-footer__legal a { color: var(--au-color-dark-muted); font-size: var(--au-fs-sm); }
.au-footer__legal a:hover { color: var(--au-primary-light); }
/* Bricks containers align-items:flex-start → text blocks shrink to content; force full width. */
.au-footer .au-container > * { width: 100%; }

/* Locations row (HQ + branches from the Kontakt tab) */
.au-footer__locations {
	margin-top: 40px;
	padding-top: 28px;
	border-top: 1px solid #222;
}
.au-footer__locations .au-footer__title { margin-bottom: 16px; }
.au-footer .au-addresses {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
	gap: 20px 32px;
}
.au-footer .au-address { font-size: var(--au-fs-sm); color: var(--au-color-dark-muted); line-height: 1.7; }
.au-footer .au-address__label { color: #fff; }
.au-footer__bottom {
	margin-top: 32px;
	padding-top: 18px;
	border-top: 1px solid #222;
	font-size: var(--au-fs-sm);
	color: var(--au-color-ink-soft);
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 8px;
}

/* ---------------------------------------------------------------------
 * Kontakt page — shortcode component styling
 * ------------------------------------------------------------------- */

.au-phones,
.au-addresses {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 10px;
}
.au-phone { display: flex; flex-wrap: wrap; gap: 6px; align-items: baseline; font-size: var(--au-fs-base); }
.au-phone__label { font-weight: 700; color: var(--au-heading); }
.au-phone__link { color: var(--au-text); font-weight: 600; }
.au-phone__link:hover { color: var(--au-primary-dark); }
a.au-email { color: var(--au-text); font-weight: 600; }
a.au-email:hover { color: var(--au-primary-dark); }

.au-address { font-style: normal; font-size: var(--au-fs-base); line-height: 1.7; color: var(--au-text-light); }
.au-address__label { color: var(--au-heading); }

.au-hours { margin: 0; display: grid; }
.au-hours__row {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 10px 0;
	border-bottom: 1px solid var(--au-color-border-soft);
}
.au-hours__row:last-child { border-bottom: 0; }
.au-hours__days { font-weight: 600; color: var(--au-heading); margin: 0; }
.au-hours__time { color: var(--au-text-light); margin: 0; }

.au-social {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.au-social__link {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-width: 44px;
	height: 44px;
	padding: 0 12px;
	border: 1px solid var(--au-border);
	border-radius: 12px;
	color: var(--au-secondary);
	transition: border-color .15s, color .15s, transform .15s;
}
.au-social__link:hover { border-color: var(--au-primary); color: var(--au-primary-dark); transform: translateY(-2px); }
.au-footer .au-social__link { border-color: #262626; color: var(--au-color-dark-muted); }
.au-footer .au-social__link:hover { border-color: var(--au-primary); color: var(--au-primary-light); }

/* Dynamic phone/email links on dark surfaces */
.au-footer a.au-email,
.au-footer .au-phone__link,
.au-footer .au-phone__label,
.au-bg-dark a.au-email,
.au-bg-dark .au-phone__link { color: var(--au-color-dark-muted); font-weight: 400; }
.au-footer a.au-email:hover,
.au-footer .au-phone__link:hover,
.au-bg-dark a.au-email:hover,
.au-bg-dark .au-phone__link:hover { color: var(--au-primary-light); }

.au-map { border-radius: 18px; overflow: hidden; border: 1px solid var(--au-border); }
.au-map iframe { display: block; }

/* Stacked info boxes (Kontakt page columns) */
.au-stack { display: grid; gap: 16px; align-content: start; }

/* ---------------------------------------------------------------------
 * Contact rows (Offerte page, small utilities)
 * ------------------------------------------------------------------- */

.au-contact-lines { display: grid; gap: 6px; font-size: var(--au-fs-base); color: var(--au-text-light); margin-top: 28px; }
.au-contact-lines strong { font-weight: 700; color: var(--au-text); }
.au-contact-lines a { color: inherit; }
.au-contact-lines a:hover { color: var(--au-primary-dark); }
