:root {
	--av-color-bg: #0a1128;
	--av-color-bg-elevated: #121b38;
	--av-color-surface: rgba(255, 255, 255, 0.04);
	--av-color-accent: #c5a059;
	--av-color-accent-hover: #d4b271;
	--av-color-field-bg: #f7f4ec;
	--av-color-field-bg-focus: #ffffff;
	--av-color-field-text: #0a1128;
	--av-color-field-placeholder: rgba(10, 17, 40, 0.52);
	--av-color-field-border: rgba(197, 160, 89, 0.72);
	--av-color-text: #ffffff;
	--av-color-text-muted: #e0e0e0;
	--av-color-border: rgba(197, 160, 89, 0.28);
	--av-color-shadow: rgba(0, 0, 0, 0.24);
	--av-color-focus: #d4b271;

	--av-font-heading: "Playfair Display", Georgia, serif;
	--av-font-body: "Lato", "Helvetica Neue", Arial, sans-serif;

	--av-font-size-xs: 0.875rem;
	--av-font-size-sm: 1rem;
	--av-font-size-md: 1.125rem;
	--av-font-size-lg: clamp(1.375rem, 1.2rem + 0.5vw, 1.5rem);
	--av-font-size-xl: clamp(2rem, 1.8rem + 1vw, 2.25rem);
	--av-font-size-2xl: clamp(2.625rem, 2.2rem + 1.2vw, 3rem);

	--av-line-height-tight: 1.2;
	--av-line-height-body: 1.6;
	--av-letter-spacing-wide: 0.06em;

	--av-site-width: 1200px;
	--av-content-width: 820px;
	--av-space-xs: 0.5rem;
	--av-space-sm: 0.75rem;
	--av-space-md: 1rem;
	--av-space-lg: 1.5rem;
	--av-space-xl: 2rem;
	--av-radius-sm: 0.375rem;
	--av-radius-md: 0.75rem;
	--av-field-min-height: 3.25rem;
	--av-field-padding-y: 0.875rem;
	--av-field-padding-x: 1rem;
	--av-button-padding-y: 0.9375rem;
	--av-button-padding-x: 1.875rem;
	--av-transition-base: 160ms ease-in-out;

	--av-container-padding-x: 1.25rem;
	--av-section-padding-y: 5rem;
	--av-section-padding-y-sm: 3rem;
}

html {
	background-color: var(--av-color-bg);
	box-sizing: border-box;
	font-size: 100%;
	scroll-behavior: smooth;
}

*,
*::before,
*::after {
	box-sizing: inherit;
}

body {
	background-color: var(--av-color-bg);
	color: var(--av-color-text-muted);
	font-family: var(--av-font-body);
	font-size: var(--av-font-size-sm);
	line-height: var(--av-line-height-body);
	margin: 0;
	min-height: 100vh;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

#page,
.site,
.site-content,
.site-content > .ast-container,
.ast-page-builder-template,
.ast-page-builder-template #page,
.ast-page-builder-template .site-content,
.ast-page-builder-template .site-content > .ast-container,
.ast-page-builder-template #primary,
.ast-page-builder-template .entry-content,
.ast-page-builder-template .site-main,
.home .site-content,
.home .site-content > .ast-container,
.home #primary,
.home .entry-content,
.elementor-page .site-content,
.elementor-page .site-content > .ast-container,
.elementor-page #primary,
.elementor-page .entry-content,
.elementor-page .site-main,
.elementor-page .elementor,
.elementor-page .elementor-section,
.ast-separate-container,
.ast-separate-container .ast-article-single,
.ast-separate-container .ast-article-post {
	background-color: var(--av-color-bg);
}

#page {
	min-height: 100vh;
}

.site-footer,
.ast-footer-overlay,
.footer-adv-overlay,
.site-above-footer-wrap,
.site-primary-footer-wrap,
.site-below-footer-wrap,
.site-above-footer-wrap[data-section="section-above-footer-builder"],
.site-primary-footer-wrap[data-section="section-primary-footer-builder"],
.site-below-footer-wrap[data-section="section-below-footer-builder"],
.site-footer .ast-builder-grid-row,
.site-footer .footer-widget-area,
.site-footer .footer-widget-area-inner,
.site-footer .footer-bar-navigation,
.site-footer .footer-nav-wrap {
	background-color: var(--av-color-bg) !important;
	color: var(--av-color-text-muted);
}

.site-primary-footer-wrap {
	padding-block: clamp(2rem, 4vw, 3rem);
}

.site-above-footer-wrap,
.site-primary-footer-wrap {
	border-top: 0;
}

.site-below-footer-wrap {
	border-top-width: 0 !important;
	padding-block: 1.5rem 2rem;
}

.site-footer-section {
	align-items: center;
	justify-content: center;
	text-align: center;
}

.ast-builder-footer-grid-columns,
.site-footer .ast-builder-grid-row {
	justify-items: center;
}

.site-footer .footer-widget-area,
.site-footer .site-footer-focus-item {
	color: var(--av-color-text-muted);
	text-align: center;
}

.site-footer .widget-title {
	color: var(--av-color-text);
	font-family: var(--av-font-heading);
	font-size: var(--av-font-size-md);
	font-weight: 600;
	margin-bottom: var(--av-space-sm);
}

.site-footer .menu-link,
.site-footer p,
.site-footer li,
.site-footer span {
	color: inherit;
}

.site-footer ul,
.site-footer ol,
.site-footer .menu,
.site-footer .sub-menu {
	padding-left: 0;
	text-align: center;
}

.ast-breadcrumbs-wrapper,
.ast-archive-entry-banner,
.ast-single-entry-banner,
.page-header {
	background:
		linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.02)),
		var(--av-color-surface);
	border-block: 1px solid rgba(255, 255, 255, 0.08);
	color: var(--av-color-text-muted);
}

.ast-breadcrumbs-inner,
.ast-archive-entry-banner-inner,
.ast-single-entry-banner-inner,
.page-header {
	margin-inline: auto;
	max-width: calc(var(--av-site-width) + (var(--av-container-padding-x) * 2));
	padding-inline: var(--av-container-padding-x);
}

.ast-breadcrumbs-wrapper {
	padding-block: 0.75rem;
}

.ast-breadcrumbs-wrapper a,
.ast-archive-entry-banner a,
.ast-single-entry-banner a {
	color: var(--av-color-accent);
}

.page-title,
.entry-title,
.ast-archive-title {
	color: var(--av-color-accent);
	font-family: var(--av-font-heading);
	font-weight: 700;
}

.page-header,
.entry-header {
	margin-bottom: var(--av-space-lg);
}

.page-impressum .page-header,
.page-impressum .ast-breadcrumbs-wrapper,
.page-impressum .ast-archive-entry-banner,
.page-impressum .ast-single-entry-banner {
	border-top-width: 0 !important;
	border-bottom-width: 0 !important;
}

.page-impressum .site-below-footer-wrap {
	border-bottom-width: 0 !important;
}

.page-impressum .site-footer,
.page-impressum .site-below-footer-wrap,
.page-impressum .ast-builder-grid-row-container,
.page-impressum .ast-builder-grid-row-container-inner,
.page-impressum .ast-builder-grid-row,
.page-impressum .site-footer-section,
.page-impressum .footer-widget-area,
.page-impressum .footer-widget-area-inner {
	border-bottom: 0 !important;
	border-bottom-width: 0 !important;
}

.page-datenschutz .page-header,
.page-datenschutz .ast-breadcrumbs-wrapper,
.page-datenschutz .ast-archive-entry-banner,
.page-datenschutz .ast-single-entry-banner {
	border-top-width: 0 !important;
	border-bottom-width: 0 !important;
}

.page-datenschutz .site-below-footer-wrap {
	border-bottom-width: 0 !important;
}

.page-datenschutz .site-footer,
.page-datenschutz .site-below-footer-wrap,
.page-datenschutz .ast-builder-grid-row-container,
.page-datenschutz .ast-builder-grid-row-container-inner,
.page-datenschutz .ast-builder-grid-row,
.page-datenschutz .site-footer-section,
.page-datenschutz .footer-widget-area,
.page-datenschutz .footer-widget-area-inner {
	border-bottom: 0 !important;
	border-bottom-width: 0 !important;
}

.page-impressum .main-header-menu > .menu-item.current-menu-item,
.page-impressum .main-header-menu > .menu-item.current_page_item,
.page-impressum .main-header-menu > .page_item.current_page_item,
.page-datenschutz .main-header-menu > .menu-item.current-menu-item,
.page-datenschutz .main-header-menu > .menu-item.current_page_item,
.page-datenschutz .main-header-menu > .page_item.current_page_item {
	display: none;
}

.ast-footer-copyright,
.av-footer-copyright {
	color: var(--av-color-text-muted);
	font-size: var(--av-font-size-xs);
	letter-spacing: 0.02em;
	line-height: 1.7;
}

.av-footer-copyright {
	margin: 0;
}

.av-footer-legal {
	align-items: center;
	display: flex;
	flex-direction: column;
	flex-wrap: wrap;
	gap: 1rem;
	justify-content: center;
	margin-inline: auto;
	padding-top: 1.5rem;
	text-align: center;
	width: 100%;
}

.av-footer-links {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	justify-content: center;
	width: 100%;
}

.av-footer-legal--centered {
	align-items: center !important;
	flex-direction: column;
	justify-content: center !important;
	margin-inline: auto;
	text-align: center !important;
}

.av-footer-legal--centered .av-footer-links {
	align-items: center !important;
	justify-content: center !important;
	width: 100%;
}

.site-footer a,
.ast-footer-copyright a,
.av-footer-copyright a,
.av-footer-links a {
	color: var(--av-color-accent);
}

.av-branded-subpage .site-footer,
.av-branded-subpage .site-footer p,
.av-branded-subpage .site-footer li,
.av-branded-subpage .site-footer span,
.av-branded-subpage .ast-footer-copyright,
.av-branded-subpage .av-footer-copyright,
.av-branded-subpage .av-footer-legal,
.av-branded-subpage .av-footer-links {
	color: var(--av-color-bg);
}

.site-below-footer-wrap .ast-builder-grid-row,
.site-below-footer-wrap .site-footer-section {
	width: 100%;
}

.site-below-footer-wrap .site-footer-section-1,
.site-below-footer-wrap .site-footer-section-2,
.site-below-footer-wrap .site-footer-section-3 {
	flex: 1 1 auto;
}

.page-kontakt .site-footer .ast-builder-grid-row,
.page-impressum .site-footer .ast-builder-grid-row,
.page-datenschutz .site-footer .ast-builder-grid-row,
.page-template-page-kontakt .site-footer .ast-builder-grid-row,
.page-template-page-impressum .site-footer .ast-builder-grid-row,
.page-template-page-datenschutz .site-footer .ast-builder-grid-row,
.page-template-page-kontakt-php .site-footer .ast-builder-grid-row,
.page-template-page-impressum-php .site-footer .ast-builder-grid-row,
.page-template-page-datenschutz-php .site-footer .ast-builder-grid-row,
.page-kontakt .site-footer-section,
.page-impressum .site-footer-section,
.page-datenschutz .site-footer-section,
.page-template-page-kontakt .site-footer-section,
.page-template-page-impressum .site-footer-section,
.page-template-page-datenschutz .site-footer-section,
.page-template-page-kontakt-php .site-footer-section,
.page-template-page-impressum-php .site-footer-section,
.page-template-page-datenschutz-php .site-footer-section,
.page-kontakt .footer-widget-area,
.page-impressum .footer-widget-area,
.page-datenschutz .footer-widget-area,
.page-template-page-kontakt .footer-widget-area,
.page-template-page-impressum .footer-widget-area,
.page-template-page-datenschutz .footer-widget-area,
.page-template-page-kontakt-php .footer-widget-area,
.page-template-page-impressum-php .footer-widget-area,
.page-template-page-datenschutz-php .footer-widget-area,
.page-kontakt .footer-widget-area-inner,
.page-impressum .footer-widget-area-inner,
.page-datenschutz .footer-widget-area-inner,
.page-template-page-kontakt .footer-widget-area-inner,
.page-template-page-impressum .footer-widget-area-inner,
.page-template-page-datenschutz .footer-widget-area-inner,
.page-template-page-kontakt-php .footer-widget-area-inner,
.page-template-page-impressum-php .footer-widget-area-inner,
.page-template-page-datenschutz-php .footer-widget-area-inner,
.page-kontakt .site-footer-focus-item,
.page-impressum .site-footer-focus-item,
.page-datenschutz .site-footer-focus-item,
.page-template-page-kontakt .site-footer-focus-item,
.page-template-page-impressum .site-footer-focus-item,
.page-template-page-datenschutz .site-footer-focus-item,
.page-template-page-kontakt-php .site-footer-focus-item,
.page-template-page-impressum-php .site-footer-focus-item,
.page-template-page-datenschutz-php .site-footer-focus-item {
	align-items: center;
	justify-content: center !important;
	justify-items: center !important;
	text-align: center !important;
}

.page-kontakt .av-footer-legal,
.page-impressum .av-footer-legal,
.page-datenschutz .av-footer-legal,
.page-template-page-kontakt .av-footer-legal,
.page-template-page-impressum .av-footer-legal,
.page-template-page-datenschutz .av-footer-legal,
.page-template-page-kontakt-php .av-footer-legal,
.page-template-page-impressum-php .av-footer-legal,
.page-template-page-datenschutz-php .av-footer-legal,
.page-kontakt .av-footer-links,
.page-impressum .av-footer-links,
.page-datenschutz .av-footer-links,
.page-template-page-kontakt .av-footer-links,
.page-template-page-impressum .av-footer-links,
.page-template-page-datenschutz .av-footer-links,
.page-template-page-kontakt-php .av-footer-links,
.page-template-page-impressum-php .av-footer-links,
.page-template-page-datenschutz-php .av-footer-links {
	align-items: center;
	justify-content: center !important;
	text-align: center !important;
}

.page-kontakt .av-footer-legal,
.page-impressum .av-footer-legal,
.page-datenschutz .av-footer-legal,
.page-template-page-kontakt .av-footer-legal,
.page-template-page-impressum .av-footer-legal,
.page-template-page-datenschutz .av-footer-legal,
.page-template-page-kontakt-php .av-footer-legal,
.page-template-page-impressum-php .av-footer-legal,
.page-template-page-datenschutz-php .av-footer-legal {
	flex-direction: column;
	margin-inline: auto;
	max-width: 100%;
}

@media (max-width: 544px) {
	.av-footer-legal {
		align-items: center;
		flex-direction: column;
		justify-content: center;
	}

	.page-kontakt .av-footer-legal,
	.page-impressum .av-footer-legal,
	.page-datenschutz .av-footer-legal,
	.page-template-page-kontakt .av-footer-legal,
	.page-template-page-impressum .av-footer-legal,
	.page-template-page-datenschutz .av-footer-legal,
	.page-template-page-kontakt-php .av-footer-legal,
	.page-template-page-impressum-php .av-footer-legal,
	.page-template-page-datenschutz-php .av-footer-legal,
	.page-kontakt .av-footer-links,
	.page-impressum .av-footer-links,
	.page-datenschutz .av-footer-links,
	.page-template-page-kontakt .av-footer-links,
	.page-template-page-impressum .av-footer-links,
	.page-template-page-datenschutz .av-footer-links,
	.page-template-page-kontakt-php .av-footer-links,
	.page-template-page-impressum-php .av-footer-links,
	.page-template-page-datenschutz-php .av-footer-links {
		align-items: center !important;
		justify-content: center !important;
		width: 100%;
	}
}

img {
	display: block;
	height: auto;
	max-width: 100%;
}

button,
input,
optgroup,
select,
textarea {
	color: inherit;
	font: inherit;
}

input:not([type]),
input[type="date"],
input[type="datetime-local"],
input[type="email"],
input[type="month"],
input[type="number"],
input[type="password"],
input[type="search"],
input[type="tel"],
input[type="text"],
input[type="time"],
input[type="url"],
input[type="week"],
textarea,
select {
	background-color: var(--av-color-field-bg);
	border: 1px solid var(--av-color-field-border);
	border-radius: var(--av-radius-sm);
	box-shadow:
		inset 0 1px 2px rgba(10, 17, 40, 0.08),
		0 0 0 0 transparent;
	color: var(--av-color-field-text);
	max-width: 100%;
	min-height: var(--av-field-min-height);
	padding: var(--av-field-padding-y) var(--av-field-padding-x);
	transition:
		border-color var(--av-transition-base),
		box-shadow var(--av-transition-base),
		background-color var(--av-transition-base);
	width: 100%;
}

input::placeholder,
textarea::placeholder {
	color: var(--av-color-field-placeholder);
	opacity: 1;
}

textarea {
	min-height: 8rem;
	resize: vertical;
}

input:not([type]):focus,
input[type="date"]:focus,
input[type="datetime-local"]:focus,
input[type="email"]:focus,
input[type="month"]:focus,
input[type="number"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="tel"]:focus,
input[type="text"]:focus,
input[type="time"]:focus,
input[type="url"]:focus,
input[type="week"]:focus,
textarea:focus,
select:focus {
	background-color: var(--av-color-field-bg-focus);
	border-color: var(--av-color-accent);
	box-shadow:
		inset 0 1px 2px rgba(10, 17, 40, 0.08),
		0 0 0 3px rgba(197, 160, 89, 0.32);
	outline: none;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	color: var(--av-color-text);
	font-family: var(--av-font-heading);
	font-weight: 700;
	line-height: var(--av-line-height-tight);
	margin: 0 0 var(--av-space-md);
}

h1 {
	color: var(--av-color-accent);
	font-size: var(--av-font-size-2xl);
}

h2 {
	color: var(--av-color-text);
	font-size: var(--av-font-size-xl);
}
h3 {
	color: var(--av-color-accent);
	font-size: var(--av-font-size-lg);
	font-weight: 600;
}

p,
ul,
ol,
dl,
blockquote {
	margin: 0 0 var(--av-space-md);
}

ul,
ol {
	padding-left: 1.25em;
}

a,
button {
	transition:
		color var(--av-transition-base),
		background-color var(--av-transition-base),
		border-color var(--av-transition-base),
		opacity var(--av-transition-base);
}

a {
	color: var(--av-color-accent);
	text-decoration-color: transparent;
	text-underline-offset: 0.16em;
}

a:hover,
a:focus-visible {
	color: var(--av-color-accent-hover);
	text-decoration-color: currentColor;
}

button,
.button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
	background: linear-gradient(135deg, #c5a059, #f0d37d 52%, #b8862f);
	border: 1px solid var(--av-color-accent);
	border-radius: 999px;
	box-shadow: 0 14px 30px rgba(197, 160, 89, 0.18);
	color: var(--av-color-bg);
	cursor: pointer;
	display: inline-flex;
	font-size: 0.9375rem;
	font-weight: 700;
	justify-content: center;
	letter-spacing: var(--av-letter-spacing-wide);
	padding: var(--av-button-padding-y) var(--av-button-padding-x);
	text-transform: uppercase;
	transition:
		background var(--av-transition-base),
		border-color var(--av-transition-base),
		box-shadow var(--av-transition-base),
		color var(--av-transition-base),
		transform var(--av-transition-base);
}

button:hover,
button:focus-visible,
.button:hover,
.button:focus-visible,
input[type="button"]:hover,
input[type="button"]:focus-visible,
input[type="reset"]:hover,
input[type="reset"]:focus-visible,
input[type="submit"]:hover,
input[type="submit"]:focus-visible {
	background: linear-gradient(135deg, #d4b271, #f6de93 52%, #c99a3d);
	border-color: var(--av-color-accent-hover);
	box-shadow: 0 18px 38px rgba(197, 160, 89, 0.26);
	color: var(--av-color-bg);
	transform: translateY(-2px);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
	outline: 2px solid var(--av-color-focus);
	outline-offset: 2px;
}

::selection {
	background-color: var(--av-color-accent);
	color: var(--av-color-bg);
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		transition: none !important;
	}
}
