/*
Theme Name: Layout
Description: A <a href='http://codex.wordpress.org/Child_Themes'>Child Theme</a> for the Enfold Wordpress Theme. If you plan to do a lot of file modifications we recommend to use this Theme instead of the original Theme. Updating wil be much easier then.
Version: 1.0
Author: Kriesi
Author URI: http://www.kriesi.at
Template: enfold
*/

/* ==========================================================================
   Hundezentrum Pfalz — Relaunch
   Farb- und Typo-System, Feinschliff über die Enfold-Theme-Optionen hinaus.
   ========================================================================== */

:root {
	--hz-orange:        #F39200;  /* Marke: Logo, Buttons, Linien, Icons */
	--hz-orange-dark:   #D07800;  /* orange Überschriften (>= 24px)      */
	--hz-orange-link:   #B45309;  /* orange Fließtext-Links (AA)         */
	--hz-orange-soft:   #FDF3E4;  /* sehr helle Orange-Fläche            */
	--hz-text:          #3F4448;
	--hz-heading:       #2B2E31;
	--hz-muted:         #6B7176;
	--hz-border:        #E6E2DC;
	--hz-alt-bg:        #FAF7F2;
	--hz-footer-bg:     #363839;
	--hz-socket-bg:     #282A2B;
	--hz-footer-text:   #C9C6C2;
	--hz-shadow:        0 2px 14px rgba(43,46,49,.08);
	--hz-shadow-lg:     0 12px 34px rgba(43,46,49,.16);
}

/* --------------------------------------------------------------------------
   1. Typografie
   -------------------------------------------------------------------------- */

body,
.avia_textblock,
#top .avia_textblock p {
	font-size: 17px;
	line-height: 1.75;
	color: var(--hz-text);
	-webkit-font-smoothing: antialiased;
}

#top h1, #top h2, #top h3, #top h4, #top h5, #top h6 {
	font-weight: 700;
	letter-spacing: -0.01em;
	color: var(--hz-heading);
	text-transform: none;
}

#top h1 { font-size: 42px; line-height: 1.18; margin-bottom: .5em; }
#top h2 { font-size: 30px; line-height: 1.25; margin-bottom: .55em; }
#top h3 { font-size: 22px; line-height: 1.35; }
#top h4 { font-size: 19px; line-height: 1.4; }
#top h5 { font-size: 17px; }

/* Orange Überschriften — Erkennungsmerkmal der Live-Site */
#top .hz-h-orange,
#top .hz-h-orange h1,
#top .hz-h-orange h2,
#top .hz-h-orange h3,
#top .av-special-heading.hz-h-orange .av-special-heading-tag {
	color: var(--hz-orange-dark);
}

/* Inline-Hervorhebung (im Original: <span style="color:#ff9900">) */
#top .hz-accent { color: var(--hz-orange-link); }

/* Links im Fließtext */
#top .avia_textblock a,
#top .entry-content-wrapper a,
#top .post-entry a {
	color: var(--hz-orange-link);
	text-decoration: none;
	border-bottom: 1px solid rgba(180, 83, 9, .35);
	transition: color .18s ease, border-color .18s ease;
}
#top .avia_textblock a:hover,
#top .entry-content-wrapper a:hover,
#top .post-entry a:hover {
	color: var(--hz-heading);
	border-bottom-color: var(--hz-orange);
}
#top .avia_textblock a.avia-button,
#top .entry-content-wrapper a.avia-button,
#top .avia_textblock a img,
#top .entry-content-wrapper .av-masonry a,
#top .entry-content-wrapper .avia-image-container,
#top a.hz-plain { border-bottom: none; }

#top ul, #top ol { margin-bottom: 1.2em; }
#top .avia_textblock li { margin-bottom: .35em; }

/* --------------------------------------------------------------------------
   2. Header / Navigation
   -------------------------------------------------------------------------- */

#top #header {
	background-color: #fff;
	border-bottom: 1px solid var(--hz-border);
	box-shadow: none;
	transition: box-shadow .25s ease;
}
#top #header.header-scrolled,
#top #header.av_header_transparency.header-scrolled { box-shadow: var(--hz-shadow); }

.html_header_top.html_logo_left #top .logo { left: 0; }
#top .logo img,
#top .logo a > img { max-height: 56px; width: auto; padding: 0; }
/* Logo vertikal in der Kopfzeile zentrieren (Enfold positioniert es sonst oben) */
#top .av-logo-container .inner-container { display: flex; align-items: center; }
#top .logo {
	position: relative;
	top: auto; bottom: auto;
	display: flex;
	align-items: center;
	height: 100%;
}
#top .logo a { display: flex; align-items: center; height: 100%; }
/* Inline-SVG-Logo (Enfold bettet SVG-Logos direkt ein) */
#top .logo svg,
#top .logo a > svg { height: 46px; width: auto; max-width: 100%; display: block; }

/* Hauptnavigation — Montserrat SemiBold, passt zur Wort-/Bildmarke und bleibt lesbar */
#top .av-main-nav-wrap, #top .main_menu { white-space: nowrap; }
#top .av-main-nav { display: flex; flex-wrap: nowrap; align-items: center; }
#top .av-main-nav > li { white-space: nowrap; float: none; }
#top .av-main-nav > li > a { padding: 0 12px; }
#top .av-main-nav > li > a {
	font-family: 'Montserrat', Helvetica, Arial, sans-serif;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: .005em;
	color: var(--hz-heading);
	transition: color .18s ease;
}
#top .av-main-nav > li > a:hover,
#top .av-main-nav > li.current-menu-item > a,
#top .av-main-nav > li.current-menu-ancestor > a,
#top .av-main-nav > li.current_page_item > a,
#top .av-main-nav > li:hover > a { color: var(--hz-orange-dark); }

/* Aktiv-Kennzeichnung: nur Enfolds eigener Balken, kein zweiter dynamischer Strich */
#top .av-main-nav > li > a .avia-menu-fx { height: 3px; bottom: 0; background-color: var(--hz-orange); }
#top .av-main-nav > li > a .avia-menu-fx .avia-arrow-wrap { display: none; }

/* Dropdowns */
#top .av-main-nav ul li a {
	font-family: 'Montserrat', sans-serif;
	font-size: 15px;
	line-height: 1.45;
	background-color: #fff;
	color: var(--hz-text);
	border-bottom: 1px solid var(--hz-border);
}
#top .av-main-nav ul li:last-child a { border-bottom: none; }
#top .av-main-nav ul li a:hover,
#top .av-main-nav ul li.current-menu-item > a {
	background-color: var(--hz-orange-soft);
	color: var(--hz-orange-dark);
}
#top .av-main-nav ul {
	box-shadow: var(--hz-shadow-lg);
	border-radius: 4px;
	overflow: hidden;
	/* Breite richtet sich nach dem längsten Eintrag, bricht aber nicht aus */
	width: max-content !important;
	min-width: 250px;
	max-width: 360px;
}
#top .av-main-nav ul li { width: 100%; min-width: 0; }
#top .av-main-nav ul li a {
	width: 100%;
	min-width: 0;
	white-space: normal;
	padding: 12px 22px;
	height: auto;
	line-height: 1.4;
}
#top .av-main-nav ul ul { left: 100%; }

/* Mobiles Menü / Burger-Overlay */
#top #mobile-advanced li a { font-family: 'Montserrat', sans-serif; font-size: 16px; }
#top .av-burger-menu-main a { color: var(--hz-heading); }
/* Lange Menüpunkte im Overlay umbrechen statt abschneiden */
#top .av-burger-overlay #av-burger-menu-ul li a,
#top #av-burger-menu-ul li a {
	white-space: normal;
	overflow: visible;
	text-overflow: clip;
	line-height: 1.4;
	padding-top: 14px;
	padding-bottom: 14px;
}
#top .av-burger-overlay-scroll { max-width: 100%; }

/* --------------------------------------------------------------------------
   3. Buttons
   -------------------------------------------------------------------------- */

#top .avia-button,
#top .main_color .avia-button,
#top input[type="submit"],
#top button[type="submit"],
#top .wpcf7 input[type="submit"] {
	font-family: 'Montserrat', sans-serif;
	font-size: 16px;
	font-weight: 600;
	letter-spacing: .02em;
	border-radius: 4px;
	border: none;
	padding: 15px 30px;
	background-color: var(--hz-orange);
	color: var(--hz-heading);
	box-shadow: 0 2px 0 rgba(43,46,49,.06);
	transition: background-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
#top .avia-button:hover,
#top input[type="submit"]:hover,
#top button[type="submit"]:hover,
#top .wpcf7 input[type="submit"]:hover {
	background-color: var(--hz-orange-dark);
	color: #fff;
	transform: translateY(-1px);
	box-shadow: var(--hz-shadow);
}
#top .avia-button.avia-color-theme-color-subtle {
	background-color: transparent;
	color: var(--hz-heading);
	box-shadow: inset 0 0 0 2px var(--hz-orange);
}
#top .avia-button.avia-color-theme-color-subtle:hover {
	background-color: var(--hz-orange);
	color: var(--hz-heading);
}
/* Button auf dunklem Hero */
#top .hz-hero .avia-button { background-color: var(--hz-orange); color: var(--hz-heading); }
#top .hz-hero .avia-button:hover { background-color: #fff; color: var(--hz-heading); }

/* --------------------------------------------------------------------------
   4. Hero-Sektionen (ersetzen die Avada-Slider)
   -------------------------------------------------------------------------- */

/* Der von wpautop erzeugte leere Absatz vor der ersten Sektion würde einen
   sichtbaren Spalt zwischen Header und Titelbild erzeugen. */
#top #main > p { margin: 0 !important; padding: 0; height: 0; overflow: hidden; }
#top #main > br { display: none; }

#top .hz-hero {
	position: relative;
	background-size: cover;
	background-position: center center;
	/* einheitliche Höhe auf allen Unterseiten – ruhiger Seitenwechsel */
	min-height: 420px;
	display: flex;
	align-items: center;
}
#top .hz-hero > .container,
#top .hz-hero .av-section-color-overlay-wrap { width: 100%; }
#top .hz-hero::before {
	content: '';
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(20,22,24,.30) 0%, rgba(20,22,24,.55) 60%, rgba(20,22,24,.68) 100%);
	pointer-events: none;
}
#top .hz-hero .container, #top .hz-hero .content { position: relative; z-index: 2; }
#top .hz-hero h1,
#top .hz-hero h2,
#top .hz-hero .av-special-heading-tag {
	color: #fff;
	text-shadow: 0 2px 18px rgba(0,0,0,.45);
	margin-bottom: .35em;
}
#top .hz-hero h1 { font-size: 54px; line-height: 1.1; }
#top .hz-hero .hz-hero-sub,
#top .hz-hero .hz-hero-sub p {
	color: #F3F1EE;
	font-size: 21px;
	line-height: 1.5;
	text-shadow: 0 2px 14px rgba(0,0,0,.5);
	margin-bottom: 1.4em;
}
#top .hz-hero .av-subheading { color: #F3F1EE; }

/* Hero ohne Bild (Rechtstexte, Kontakt, Anmeldung) */
#top .hz-hero-plain {
	border-bottom: 3px solid var(--hz-orange);
	min-height: 260px;
	display: flex;
	align-items: center;
}
#top .hz-hero-plain > .container { width: 100%; }
#top .hz-hero-plain h1 { color: var(--hz-heading); margin-bottom: .3em; }
#top .hz-hero-plain .hz-hero-sub {
	color: var(--hz-muted);
	font-size: 19px;
	line-height: 1.5;
	margin-bottom: 0;
}

/* Startseiten-Hero */
#top .hz-hero-home { min-height: 620px; }
#top .hz-hero-home::before {
	background: linear-gradient(105deg, rgba(18,20,22,.82) 0%, rgba(18,20,22,.55) 48%, rgba(18,20,22,.25) 100%);
}
#top .hz-hero-home .container { max-width: 1310px; }
#top .hz-hero-home .avia_textblock { max-width: 900px; }
#top .hz-hero .avia_textblock p.hz-hero-kicker,
#top .hz-hero-kicker {
	color: var(--hz-orange);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .18em;
	text-transform: uppercase;
	margin-bottom: 14px;
	text-shadow: 0 2px 10px rgba(0,0,0,.5);
}
#top .hz-hero-home h1 { font-size: 58px; line-height: 1.08; margin-bottom: .38em; }
#top .hz-hero-home .hz-hero-sub { max-width: 620px; margin-bottom: 0; }
#top .hz-hero-cta {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 30px;
}
#top .hz-hero-cta .avia-button {
	margin: 0;
	padding: 16px 32px;
	font-size: 16px;
	font-weight: 600;
	border-radius: 4px;
}
#top .hz-hero-cta .hz-btn-primary { background: var(--hz-orange); color: var(--hz-heading); }
#top .hz-hero-cta .hz-btn-primary:hover { background: #fff; color: var(--hz-heading); }
#top .hz-hero .hz-hero-cta a.avia-button.hz-btn-ghost {
	background: transparent;
	background-color: transparent;
	color: #fff;
	box-shadow: inset 0 0 0 2px rgba(255,255,255,.8);
}
#top .hz-hero .hz-hero-cta a.avia-button.hz-btn-ghost:hover {
	background-color: #fff;
	color: var(--hz-heading);
	box-shadow: none;
}
#top .hz-hero .hz-hero-cta a.avia-button.hz-btn-primary { background-color: var(--hz-orange); color: var(--hz-heading); }
#top .hz-hero .hz-hero-cta a.avia-button.hz-btn-primary:hover { background-color: #fff; color: var(--hz-heading); }

/* Startseiten-Slider (nicht mehr im Einsatz, Regeln bleiben für den Fall der Fälle) */
#top .hz-homeslider .avia-caption-title {
	font-family: 'Montserrat', sans-serif;
	font-weight: 700;
	font-size: 52px;
	line-height: 1.1;
	color: #fff;
	text-shadow: 0 2px 18px rgba(0,0,0,.5);
	margin-bottom: .3em;
	padding: 0;
	background: none;
}
#top .hz-homeslider .avia-caption-content,
#top .hz-homeslider .avia-caption-content p {
	font-size: 21px;
	line-height: 1.5;
	color: #F3F1EE;
	text-shadow: 0 2px 14px rgba(0,0,0,.55);
	background: none;
	padding: 0;
}
#top .hz-homeslider .av-slideshow-caption { z-index: 3; }
#top .hz-homeslider .slideshow_align_caption { padding-bottom: 26px; }
#top .hz-homeslider .avia-slideshow-button,
#top .hz-homeslider a.avia-button.avia-color-light,
#top .hz-hero a.avia-button {
	margin-top: 18px;
	background-color: var(--hz-orange);
	background-image: none;
	color: var(--hz-heading);
	border: none;
	font-weight: 600;
	border-radius: 4px;
	text-shadow: none;
}
#top .hz-homeslider .avia-slideshow-button:hover,
#top .hz-homeslider a.avia-button.avia-color-light:hover,
#top .hz-hero a.avia-button:hover { background-color: #fff; color: var(--hz-heading); }
/* Verlauf von unten, damit die Caption immer lesbar bleibt */
#top .hz-homeslider .avia-slideshow-inner > li > .avia-slide-wrap::before {
	content: '';
	position: absolute; left: 0; right: 0; bottom: 0; top: 40%;
	background: linear-gradient(180deg, rgba(20,22,24,0) 0%, rgba(20,22,24,.72) 100%);
	z-index: 2;
	pointer-events: none;
}

/* --------------------------------------------------------------------------
   5. Sektionen, Trennlinien, Flächen
   -------------------------------------------------------------------------- */

#top .hz-alt { background-color: var(--hz-alt-bg); }

#top .hz-sep .av-seperator-icon,
#top .hz-sep hr { border-color: var(--hz-orange); }
#top hr.avia-divider-fullwidth,
#top .hr-inner .hr-inner-style,
#top .hr .hr-inner { border-color: rgba(243,146,0,.55); }
#top .hr-custom .hr-inner { border-top-width: 1px; }

/* Kartige Teaser (Startseite) — gleiche Höhe über Flexbox */
#top .hz-teasers .entry-content-wrapper {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	/* kein gap: die von wpautop erzeugten Whitespace-Textknoten werden zu
	   Null-Breite-Flex-Items, jeder gap würde zusätzlich zählen und umbrechen */
}
/* wpautop hinterlässt leere <p> und <br> zwischen den Spalten — im Flex-Container
   werden sie zu eigenen Flex-Items und brechen die Kartenreihe um. */
#top .entry-content-wrapper > br,
#top .entry-content-wrapper > p:empty { display: none; }
#top .hz-teasers .entry-content-wrapper > *:not(.flex_column) { display: none; }
#top .hz-teasers .flex_column.hz-card {
	width: calc((100% - 60px) / 3);
	flex: 0 0 calc((100% - 60px) / 3);
	margin: 0 30px 0 0 !important;
	float: none;
	display: flex;
	flex-direction: column;
}
#top .hz-teasers .flex_column.hz-card:nth-child(3n+6) { margin-right: 0 !important; }
#top .hz-teasers .flex_column.hz-card:last-of-type { margin-right: 0 !important; }
#top .hz-teasers .hz-card .av_textblock_section:last-child { margin-top: auto; }

#top .hz-card {
	background: #fff;
	border: 1px solid var(--hz-border);
	border-radius: 6px;
	overflow: hidden;
	box-shadow: var(--hz-shadow);
	transition: transform .25s ease, box-shadow .25s ease;
}
#top .hz-card:hover { transform: translateY(-4px); box-shadow: var(--hz-shadow-lg); }
#top .hz-card .avia-image-container,
#top .hz-card .avia-image-container-inner,
#top .hz-card .avia_image { margin: 0; display: block; width: 100%; }
#top .hz-card .avia-image-container img,
#top .hz-card img.avia_image {
	display: block;
	width: 100% !important;
	height: 230px !important;
	max-height: 230px;
	object-fit: cover;
	object-position: center center;
	border-radius: 0;
}
#top .hz-card .flex_column_inner,
#top .hz-card .hz-card-body { padding: 22px 24px 26px; }
#top .hz-card h3 { margin: 0 0 .5em; font-size: 21px; color: var(--hz-orange-dark); }
#top .hz-card p { font-size: 16px; line-height: 1.65; margin-bottom: 0; }
#top .hz-card a { border-bottom: none; }

/* Modul-/Inhaltsboxen (ehem. Avada Content Boxes) */
#top .hz-boxgrid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 26px;
	margin: 10px 0 30px;
}
#top .hz-box {
	background: var(--hz-orange-soft);
	border: 1px solid rgba(243,146,0,.35);
	border-radius: 6px;
	padding: 26px 28px;
	display: flex;
	flex-direction: column;
}
#top .hz-box h3 {
	color: var(--hz-orange-dark);
	font-size: 20px;
	margin: 0 0 .7em;
	text-transform: uppercase;
	letter-spacing: .04em;
}
#top .hz-box ul { margin: 0 0 1em; padding-left: 1.2em; }
#top .hz-box li { margin-bottom: .3em; font-size: 16px; line-height: 1.55; }
#top .hz-box p { font-size: 16px; line-height: 1.65; }
#top .hz-box .hz-box-cta { margin-top: auto; margin-bottom: 0; padding-top: 12px; }
#top .hz-box .hz-box-cta .avia-button { padding: 11px 22px; font-size: 15px; }

/* Produktkacheln (DVDs / Arbeitsbuch) */
#top .hz-products .entry-content-wrapper { display: flex; flex-wrap: wrap; align-items: stretch; }
#top .hz-products .entry-content-wrapper > *:not(.flex_column) { display: none; }
#top .hz-products .flex_column.hz-product {
	text-align: center;
	display: flex;
	flex-direction: column;
	width: calc((100% - 60px) / 3);
	flex: 0 0 calc((100% - 60px) / 3);
	margin: 0 30px 0 0 !important;
}
#top .hz-products .flex_column.hz-product:last-of-type { margin-right: 0 !important; }
#top .hz-product .avia-image-container { flex: 1 1 auto; display: flex; align-items: center; justify-content: center; }
#top .hz-product .av_textblock_section:last-child { margin-top: auto; padding-top: 14px; }
#top .hz-product .avia-image-container img {
	max-height: 320px;
	width: auto !important;
	margin: 0 auto;
	box-shadow: var(--hz-shadow);
	border-radius: 4px;
}
#top .hz-product h3 { color: var(--hz-orange-dark); font-size: 19px; }

/* Inline-Trenner (im Original Bindestrich-Linien) */
#top hr.hz-inline-sep {
	border: none;
	border-top: 1px solid rgba(243,146,0,.5);
	margin: 26px 0;
}

/* Info-/Hinweisbox */
#top .hz-note {
	background: var(--hz-orange-soft);
	border-left: 4px solid var(--hz-orange);
	border-radius: 4px;
	padding: 20px 24px;
}
#top .hz-note p:last-child { margin-bottom: 0; }

/* Kein Mouse-over-Overlay auf Bildern (Enfold-Opt-out ist die Klasse .noHover,
   zusätzlich das per JS eingefügte Overlay-Element ausblenden) */
#top .image-overlay,
#top .avia-image-container .image-overlay { display: none !important; }

/* Bilder */
#top .avia-image-container img { border-radius: 4px; }
#top .avia_textblock img { border-radius: 4px; max-width: 100%; height: auto; }

/* --------------------------------------------------------------------------
   6. Tabellen (Angebotsübersicht)
   -------------------------------------------------------------------------- */

#top .hz-table table,
#top .entry-content-wrapper table {
	border-collapse: collapse;
	width: 100%;
	font-size: 16px;
}
#top .hz-table th,
#top .entry-content-wrapper th {
	background: var(--hz-alt-bg);
	color: var(--hz-heading);
	font-weight: 700;
	text-align: left;
	border-bottom: 2px solid var(--hz-orange);
	padding: 14px 16px;
}
#top .hz-table td,
#top .entry-content-wrapper td {
	border-bottom: 1px solid var(--hz-border);
	padding: 14px 16px;
	vertical-align: top;
}
#top .hz-table tr:hover td { background: var(--hz-orange-soft); }
#top .hz-table .hz-col-title { font-weight: 600; color: var(--hz-orange-dark); width: 42%; }
#top .hz-table .hz-col-action { text-align: right; white-space: nowrap; }
.hz-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* --------------------------------------------------------------------------
   7. Team-/Personenblöcke
   -------------------------------------------------------------------------- */

#top .hz-person { padding-bottom: 10px; }
#top .hz-person h2, #top .hz-person h3 { color: var(--hz-orange-dark); }
#top .hz-person + .hz-person { border-top: 1px solid rgba(243,146,0,.4); padding-top: 34px; margin-top: 10px; }
#top .hz-person .avia-image-container img { border-radius: 6px; }

/* --------------------------------------------------------------------------
   8. Formulare (Contact Form 7)
   -------------------------------------------------------------------------- */

#top .wpcf7 { font-size: 16px; }
#top .wpcf7 label { display: block; font-weight: 600; color: var(--hz-heading); margin-bottom: 6px; }
#top .wpcf7 input[type="text"],
#top .wpcf7 input[type="email"],
#top .wpcf7 input[type="tel"],
#top .wpcf7 input[type="date"],
#top .wpcf7 textarea,
#top .wpcf7 select {
	width: 100%;
	font-family: 'Montserrat', sans-serif;
	font-size: 16px;
	color: var(--hz-text);
	background: #fff;
	border: 1px solid var(--hz-border);
	border-radius: 4px;
	padding: 12px 14px;
	transition: border-color .18s ease, box-shadow .18s ease;
}
#top .wpcf7 input:focus,
#top .wpcf7 textarea:focus,
#top .wpcf7 select:focus {
	border-color: var(--hz-orange);
	box-shadow: 0 0 0 3px rgba(243,146,0,.18);
	outline: none;
}
#top .wpcf7 textarea { min-height: 180px; }
#top .wpcf7 .wpcf7-list-item { display: block; margin: 0 0 8px; }
#top .wpcf7 .wpcf7-acceptance label,
#top .wpcf7 .wpcf7-checkbox label,
#top .wpcf7 .wpcf7-radio label {
	font-weight: 400;
	display: flex;
	gap: 10px;
	align-items: flex-start;
	line-height: 1.55;
}
#top .wpcf7 input[type="checkbox"],
#top .wpcf7 input[type="radio"] { width: auto; margin-top: 4px; flex: 0 0 auto; }
#top .wpcf7 .hz-form-row { margin-bottom: 20px; }
#top .wpcf7 .hz-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
#top .wpcf7-not-valid-tip { color: #B3261E; font-size: 14px; margin-top: 5px; }
#top .wpcf7 .wpcf7-response-output {
	border-radius: 4px;
	border-width: 1px;
	padding: 14px 18px;
	margin: 20px 0 0;
	font-size: 16px;
}
#top .wpcf7 .hz-legal-note { font-size: 14px; line-height: 1.6; color: var(--hz-muted); }

/* --------------------------------------------------------------------------
   9. Blog / News
   -------------------------------------------------------------------------- */

#top .post-entry .post-title { color: var(--hz-heading); }
#top .post-entry .post-title a { border-bottom: none; }
#top .post-entry .post-title a:hover { color: var(--hz-orange-dark); }
#top .post-meta-infos, #top .slide-meta { color: var(--hz-muted); font-size: 14px; }
#top .post-entry {
	border-bottom: 1px solid var(--hz-border);
	padding-bottom: 34px;
	margin-bottom: 34px;
}
#top .post-entry:last-child { border-bottom: none; }

/* --------------------------------------------------------------------------
   10. Footer & Socket
   -------------------------------------------------------------------------- */

#top #footer {
	background-color: var(--hz-footer-bg);
	background-image: linear-gradient(180deg, #3b3d3e 0%, var(--hz-footer-bg) 100%);
	color: var(--hz-footer-text);
	font-size: 16px;
	padding: 64px 0 52px;
	border-top: 3px solid var(--hz-orange);
}
#top #footer .flex_column { margin-bottom: 0; }
#top #footer .widgettitle {
	color: #fff;
	font-family: 'Montserrat', sans-serif;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	margin-bottom: 20px;
	padding-bottom: 12px;
	position: relative;
}
#top #footer .widgettitle::after {
	content: '';
	position: absolute;
	left: 0; bottom: 0;
	width: 34px; height: 2px;
	background: var(--hz-orange);
}
#top #footer .widget { margin-bottom: 0; }
#top #footer p { margin-bottom: .8em; line-height: 1.7; }
#top #footer a { color: var(--hz-footer-text); border-bottom: none; transition: color .18s ease; }
#top #footer a:hover { color: var(--hz-orange); }

/* Spalte 1 — Marke */
#top #footer .hz-footer-name { font-size: 18px; line-height: 1.4; margin-bottom: .6em; }
#top #footer .hz-footer-name strong { color: #fff; }
#top #footer .hz-footer-name span { color: var(--hz-footer-text); font-size: 16px; }
#top #footer .hz-footer-claim { color: #a5a29e; font-size: 15px; }
#top #footer .hz-footer-adr { font-size: 16px; }

/* Spalte 2 — Kontakt mit kleinen Labels */
#top #footer .hz-footer-contact p:not(.hz-footer-cta) { display: flex; flex-direction: column; margin-bottom: 1em; }
#top #footer .hz-lbl {
	font-size: 12px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #8f8c88;
	margin-bottom: 2px;
}
#top #footer .hz-footer-contact a { color: #fff; }
#top #footer .hz-footer-contact a:hover { color: var(--hz-orange); }
#top #footer .hz-footer-cta { margin-top: 22px; }
#top #footer .hz-footer-cta { display: block; }
#top #footer .hz-footer-cta a.avia-button {
	display: inline-block;
	width: auto;
	min-width: 0;
	background-color: var(--hz-orange);
	color: var(--hz-heading);
	padding: 13px 24px;
	font-size: 15px;
	border-radius: 4px;
}
#top #footer .hz-footer-cta .avia-button:hover { background-color: #fff; color: var(--hz-heading); }

/* Spalte 3 — Social */
#top #footer .hz-social-list {
	list-style: none;
	margin: 0 0 20px;
	padding: 0;
	/* Raster statt Flex: alle Schaltflächen bekommen dieselbe Breite */
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
}
#top #footer .hz-social-list li { margin: 0; }
#top #footer .hz-social-list a {
	display: flex;
	width: 100%;
	box-sizing: border-box;
	align-items: center;
	gap: 9px;
	background: rgba(255,255,255,.07);
	border: 1px solid rgba(255,255,255,.10);
	border-radius: 40px;
	padding: 9px 16px 9px 13px;
	font-size: 14px;
	line-height: 1;
	color: var(--hz-footer-text);
	transition: background-color .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
}
#top #footer .hz-social-list a:hover {
	background: var(--hz-orange);
	border-color: var(--hz-orange);
	color: var(--hz-heading);
	transform: translateY(-2px);
}
#top #footer .hz-social-list svg { flex: 0 0 auto; }
#top #footer .hz-footer-note { font-size: 15px; color: #a5a29e; }

/* Socket — Copyright und Rechtslinks */
#top #socket {
	background-color: var(--hz-socket-bg);
	color: #7c8083;
	font-size: 13px;
	padding: 20px 0;
	overflow: visible;
	height: auto;
	border-top: 1px solid rgba(255,255,255,.05);
}
#top #socket .container { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; }
#top #socket .copyright { float: none; margin: 0; }
#top #socket a { color: #93989b; border-bottom: none; transition: color .18s ease; }
#top #socket a:hover { color: var(--hz-orange); }
#top #socket .sub_menu_socket { float: none; margin: 0; }
#top #socket .sub_menu_socket ul {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 22px;
	margin: 0; padding: 0;
	list-style: none;
	line-height: 1.4;
}
#top #socket .sub_menu_socket li { margin: 0; padding: 0; border: none; line-height: 1.4; }
#top #socket .sub_menu_socket li a { padding: 0; font-size: 13px; line-height: 1.4; display: inline-block; }

/* Widerrufs-Schaltfläche nach § 356a BGB — dauerhaft sichtbar hervorgehoben */
/* Widerrufs-Schaltfläche nach § 356a BGB: dauerhaft sichtbar, aber dezent als Outline */
#top #socket .sub_menu_socket li.hz-widerruf-link a {
	background: transparent;
	color: var(--hz-orange);
	font-weight: 600;
	border: 1px solid rgba(243,146,0,.55);
	border-radius: 4px;
	padding: 7px 15px;
}
#top #socket .sub_menu_socket li.hz-widerruf-link a:hover {
	background: var(--hz-orange);
	border-color: var(--hz-orange);
	color: var(--hz-heading);
}

/* --------------------------------------------------------------------------
   11. Sonstiges
   -------------------------------------------------------------------------- */

/* Sichtbarer Fokus für Tastaturnutzung */
#top a:focus-visible,
#top button:focus-visible,
#top input:focus-visible,
#top textarea:focus-visible,
#top select:focus-visible {
	outline: 3px solid var(--hz-orange);
	outline-offset: 2px;
}

/* Scroll-Top-Button */
#top #scroll-top-link {
	background: rgba(43,46,49,.75);
	color: #fff;
	border-radius: 4px;
	border: none;
}
#top #scroll-top-link:hover { background: var(--hz-orange); color: var(--hz-heading); }

/* Sektionsabstände: symmetrisch und vorhersagbar.
   Gesetzt wird auf .content — Enfold schiebt je nach Overlay einen zusätzlichen
   Wrapper zwischen Sektion und .container, direkte Kindselektoren greifen dort nicht. */
#top .content, #top .sidebar { padding-top: 60px; padding-bottom: 60px; }
#top .avia-section .content { padding-top: 70px; padding-bottom: 70px; }
#top .avia-section.avia-section-default .content { padding-top: 50px; padding-bottom: 50px; }
#top .avia-section.avia-section-small .content { padding-top: 34px; padding-bottom: 34px; }
#top .avia-section.avia-section-no-padding .content { padding-top: 0; padding-bottom: 0; }

/* Hero: eigene Innenabstände, die Höhe steuert min-height */
#top .hz-hero.avia-section-large .content,
#top .hz-hero-plain.avia-section-large .content { padding-top: 48px; padding-bottom: 48px; }
#top .hz-hero-home.avia-section-large .content { padding-top: 88px; padding-bottom: 72px; }

/* Einleitung, die direkt vor der Tabelle steht, enger an diese heranführen */
#top .avia-section.hz-intro-tight .content { padding-bottom: 16px; }
#top .avia-section.hz-table .content { padding-top: 0; padding-bottom: 70px; }

/* --------------------------------------------------------------------------
   12. Responsive
   -------------------------------------------------------------------------- */

@media only screen and (max-width: 1400px) {
	#top .av-main-nav > li > a { padding: 0 10px; }
	#top .logo { padding-right: 36px; }
}

/* Umschaltpunkt zum Burger-Menü.
   Enfold bietet nur 768 px oder 990 px an; bei neun Hauptmenüpunkten läuft das Menü
   aber schon ab etwa 1290 px ins Logo. Deshalb hier Enfolds eigene Umschaltregeln
   (Klassen html_mobile_menu_tablet / av_mobile_menu_tablet sind gesetzt) ausgeweitet —
   statt Schriftgröße und Abstände immer weiter zu quetschen.
   Diese Site hat acht Menüpunkte und braucht den Burger erst ab 1080 px. */
@media only screen and (min-width: 768px) and (max-width: 1080px) {
	.responsive.html_mobile_menu_tablet #top .av-burger-menu-main { display: block; }
	.responsive #top .av_mobile_menu_tablet .av-main-nav .menu-item { display: none; }
	.responsive #top .av_mobile_menu_tablet .av-main-nav .menu-item-avia-special { display: block; }
	.responsive #top #wrap_all .av_mobile_menu_tablet .main_menu {
		top: 0; left: auto; right: 0; display: block;
	}
	#top .logo { padding-right: 24px; }
	#top .av-burger-menu-main { display: flex; align-items: center; height: 100%; }
}

@media only screen and (max-width: 1100px) {
	#top .av-main-nav > li > a { font-size: 14px; padding: 0 8px; }
	#top .hz-hero h1, #top .hz-homeslider .avia-caption-title { font-size: 42px; }
	#top .hz-teasers .flex_column.hz-card { width: calc((100% - 30px) / 2) !important; flex-basis: calc((100% - 30px) / 2) !important; }
}

@media only screen and (max-width: 989px) {
	#top h1 { font-size: 34px; }
	#top h2 { font-size: 26px; }
	#top h3 { font-size: 20px; }
	#top .hz-hero h1, #top .hz-homeslider .avia-caption-title { font-size: 34px; }
	#top .hz-hero-home h1 { font-size: 36px; }
	#top .hz-hero-home h1 br { display: none; }
	#top .hz-hero-home { min-height: 460px; }
	#top .hz-hero .hz-hero-sub, #top .hz-homeslider .avia-caption-content p { font-size: 18px; }
	#top .wpcf7 .hz-form-grid { grid-template-columns: 1fr; }
	#top .hz-boxgrid { grid-template-columns: 1fr; gap: 20px; }
	#top .hz-products .flex_column.hz-product { width: 100% !important; flex-basis: 100% !important; margin: 0 0 28px 0 !important; }
	#top .hz-homeslider .avia-slideshow-inner { padding-bottom: 0 !important; height: 400px; }
	#top .hz-homeslider .avia-slideshow-inner > li { height: 400px; }
	#top .hz-homeslider .avia-slideshow-inner > li > .avia-slide-wrap > img,
	#top .hz-homeslider .avia-slideshow-inner > li > img {
		height: 400px !important; width: 100% !important; object-fit: cover;
	}
}

@media only screen and (max-width: 767px) {
	body, .avia_textblock, #top .avia_textblock p { font-size: 16px; line-height: 1.7; }
	#top h1 { font-size: 28px; }
	#top h2 { font-size: 23px; }
	#top .hz-hero h1, #top .hz-homeslider .avia-caption-title { font-size: 27px; }
	#top .hz-hero-home h1 { font-size: 28px; }
	#top .hz-hero-home h1 br { display: none; }   /* Zeilenumbruch dem Fluss überlassen */
	#top .hz-hero-home { min-height: 420px; }
	#top .hz-hero-kicker { font-size: 12px; }
	#top .hz-hero-cta { gap: 10px; }
	#top .hz-hero-cta .avia-button { padding: 13px 22px; font-size: 15px; }
	#top .hz-hero .hz-hero-sub, #top .hz-homeslider .avia-caption-content p { font-size: 16px; }
	#top .hz-hero .content, #top .hz-hero .container { padding-top: 46px; padding-bottom: 46px; }
	#top .content, #top .sidebar { padding-top: 40px; padding-bottom: 40px; }
	#top .hz-teasers .flex_column.hz-card { width: 100% !important; flex-basis: 100% !important; margin: 0 0 24px 0 !important; }
	#top .hz-homeslider .slideshow_align_caption { padding-bottom: 12px; }
	/* Der Slider würde sonst auf Bildseitenverhältnis (~145px) schrumpfen
	   und die Caption abschneiden — feste Höhe + object-fit. */
	#top .hz-homeslider .avia-slideshow-inner { padding-bottom: 0 !important; height: 440px; }
	#top .hz-homeslider .avia-slideshow-inner > li { height: 440px; }
	#top .hz-homeslider .avia-slideshow-inner > li > .avia-slide-wrap > img,
	#top .hz-homeslider .avia-slideshow-inner > li > img {
		height: 440px !important;
		width: 100% !important;
		object-fit: cover;
		object-position: center center;
	}
	#top .hz-homeslider .avia-slideshow-button { padding: 12px 20px; font-size: 15px; }
	#top .avia-button { width: auto; }
	#top .hz-person + .hz-person { padding-top: 26px; }
	#top #footer { padding: 44px 0 36px; }
	#top #footer .flex_column { margin-bottom: 34px; }
	#top #footer .flex_column:last-child { margin-bottom: 0; }
	#top #socket .container { flex-direction: column; align-items: flex-start; text-align: left; }
	#top .hz-hero { min-height: 340px; }
	#top .hz-hero-plain { min-height: 200px; }
}
