/*
Theme Name: epbd24.de
Theme URI: https://epbd24.de/
Author: Zurynski, Oezdogan & Co GmbH
Description: Textlastiges Joomla/YOOtheme-Industrieservice-Theme für epbd24.de — horizontale Navigation ohne Desktop-Burger, Foto-Hero mit mailto-CTA, Zwei-Spalten-Vergleich EPBD/GEG, nummerierte Paragraphenliste mit Gesetzesverweisen, helles 3-spaltiges Footer-Layout.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: t-epbd24-de
*/

/* -------------------------------------------------------------------------
 * 1. Tokens
 * ---------------------------------------------------------------------- */
:root{
	--bg:#fafafa;
	--surface:#ecedee;
	--text:#26292b;
	--muted:#50565c;
	--primary:#2d7f9d;
	--secondary:#2c5268;
	--accent:#4d7dd0;
	--link:#1c7291;
	--header-bg:#fafafa;
	--header-text:#26292b;
	--footer-bg:#fafafa;
	--footer-text:#26292b;
	--border:#c9cccf;
	--border-strong:#9ca3aa;
	--font-heading:'Cabin', Arial, Helvetica, sans-serif;
	--font-body:'Mulish', Arial, Helvetica, sans-serif;
	--maxw:1180px;
	--maxw-article:800px;
}

/* -------------------------------------------------------------------------
 * 2. Reset / Grundlagen
 * ---------------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
	margin:0;
	background:var(--bg);
	color:var(--text);
	font-family:var(--font-body);
	font-size:16px;
	line-height:1.5;
	overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block;}
a{color:var(--link);text-decoration:underline;text-decoration-color:currentColor;}
a:hover{color:var(--secondary);}
a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--accent);outline-offset:2px;}
h1,h2,h3,h4{
	font-family:var(--font-heading);
	font-weight:700;
	line-height:1.15;
	color:var(--text);
	margin:0 0 .5em;
	overflow-wrap:break-word;
	word-break:break-word;
	hyphens:auto;
}
p,li,td,th{overflow-wrap:break-word;word-break:break-word;}
h1{font-size:clamp(1.9rem,3.4vw,2.8rem);font-weight:700;}
h2{font-size:clamp(1.4rem,2.4vw,1.9rem);border-bottom:2px solid var(--border);padding-bottom:.3em;margin-top:1.6em;}
h3{font-size:1.2rem;}
p{margin:0 0 1.1em;}
ul,ol{margin:0 0 1.1em;padding-left:1.4em;}
li{margin-bottom:.4em;}
.container{max-width:var(--maxw);margin:0 auto;padding:0 20px;}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--secondary);color:#ffffff;padding:10px 16px;z-index:1000;}
.skip-link:focus{left:8px;top:8px;}
button{font-family:inherit;}

/* -------------------------------------------------------------------------
 * 3. Disclaimer-Banner (Kern-Ausgabe, hier ungenutzt aber Selektor bereit)
 * ---------------------------------------------------------------------- */
.ps-disclaimer{position:relative;z-index:50;}

/* -------------------------------------------------------------------------
 * 4. Header
 * ---------------------------------------------------------------------- */
.site-header{background:var(--header-bg);border-bottom:3px solid var(--secondary);}
.site-header__row{
	max-width:var(--maxw);
	margin:0 auto;
	padding:16px 20px;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:20px;
}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--header-text);}
.brand__mark{flex:0 0 auto;color:var(--primary);}
.brand__text{font-family:var(--font-heading);font-weight:700;font-size:1.5rem;letter-spacing:-.01em;color:var(--header-text);}
.brand__tagline{display:block;font-family:var(--font-body);font-weight:400;font-size:.72rem;color:var(--muted);letter-spacing:.02em;}

/* Desktop-Nav: horizontale Leiste, kein Hamburger sichtbar */
.nav-desktop{display:none;}
.nav-desktop ul{list-style:none;margin:0;padding:0;display:flex;gap:2px;}
.nav-desktop a{
	display:block;
	padding:10px 16px;
	color:var(--header-text);
	text-decoration:none;
	font-weight:600;
	font-size:.98rem;
	border-bottom:3px solid transparent;
}
.nav-desktop a:hover,.nav-desktop a:focus-visible{color:var(--primary);border-bottom-color:var(--primary);}
.nav-desktop .btn-mini{background:var(--primary);color:#ffffff;border-radius:0;padding:10px 18px;}
.nav-desktop .btn-mini:hover{background:var(--secondary);color:#ffffff;}

/* Mobile-Nav: eigenes, dupliziertes Markup + Toggle */
.nav-toggle{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:44px;height:44px;
	background:var(--primary);
	border:0;
	color:#ffffff;
	cursor:pointer;
}
.nav-toggle svg{width:22px;height:22px;}
.nav-mobile{display:none;background:var(--surface);border-top:1px solid var(--border);}
.nav-mobile.is-open{display:block;}
.nav-mobile ul{list-style:none;margin:0;padding:8px 0;}
.nav-mobile a{display:block;padding:14px 20px;color:var(--text);text-decoration:none;font-weight:600;border-bottom:1px solid var(--border);}
.nav-mobile a:hover{color:var(--primary);background:#ffffff;}
.nav-mobile .btn-mini{color:var(--primary);}

@media(min-width:900px){
	.nav-desktop{display:flex;align-items:center;gap:8px;}
	.nav-toggle{display:none;}
	.nav-mobile{display:none !important;}
}

/* -------------------------------------------------------------------------
 * 5. Hero
 * ---------------------------------------------------------------------- */
.hero{
	position:relative;
	background:#1a262e;
	color:#ffffff;
	min-height:420px;
	display:flex;
	align-items:flex-end;
}
.hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 35%;}
.hero__scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,32,40,.35) 0%,rgba(18,32,40,.55) 45%,rgba(18,32,40,.92) 100%);}
.hero__inner{position:relative;max-width:var(--maxw);margin:0 auto;padding:60px 20px 40px;width:100%;}
.hero__kicker{
	display:inline-block;
	font-weight:700;
	font-size:.78rem;
	letter-spacing:.08em;
	text-transform:uppercase;
	color:#ffffff;
	background:var(--primary);
	padding:5px 12px;
	margin-bottom:16px;
}
.hero__headline{font-family:var(--font-heading);font-size:clamp(1.7rem,4vw,2.6rem);font-weight:700;color:#ffffff;margin:0 0 .5em;max-width:760px;}
.hero__tagline{font-size:1.08rem;color:#e6edf2;max-width:640px;margin:0 0 1.4em;}
.btn{
	display:inline-block;
	background:var(--primary);
	color:#ffffff;
	font-weight:700;
	font-size:1rem;
	padding:13px 26px;
	text-decoration:none;
	border:2px solid var(--primary);
	border-radius:0;
}
.btn:hover{background:#ffffff;color:var(--primary);}
.btn--ghost{background:transparent;border-color:#ffffff;color:#ffffff;}
.btn--ghost:hover{background:#ffffff;color:var(--secondary);}
.btn--accent{background:var(--accent);border-color:var(--accent);color:#0b1527;}
.btn--accent:hover{background:transparent;color:var(--accent);}

/* -------------------------------------------------------------------------
 * 6. H1+Subheading Textblock
 * ---------------------------------------------------------------------- */
.intro{padding:48px 0 8px;}
.intro h1{margin-bottom:.4em;}
.intro__sub{font-size:1.15rem;line-height:1.6;color:var(--text);max-width:820px;}
.intro__meta{color:var(--muted);font-size:.9rem;margin-bottom:1.2em;}

/* -------------------------------------------------------------------------
 * 7. Kernthemen-Kacheln
 * ---------------------------------------------------------------------- */
.themen{padding:36px 0;}
.themen__head{max-width:760px;margin-bottom:24px;}
.themen__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--border-strong);border-left:1px solid var(--border-strong);}
.themen__item{
	border-right:1px solid var(--border-strong);
	border-bottom:1px solid var(--border-strong);
	padding:26px 24px 24px;
	background:#ffffff;
	display:flex;
	flex-direction:column;
}
.themen__icon{color:var(--primary);margin-bottom:14px;display:inline-flex;}
.themen__icon svg{width:32px;height:32px;max-width:100%;max-height:100%;}
.themen__item h3{margin-bottom:.5em;}
.themen__item p{color:var(--text);font-size:.97rem;flex-grow:1;}
.themen__item .read-more{font-weight:700;text-decoration:none;display:inline-flex;align-items:center;gap:6px;margin-top:10px;}
.themen__item .read-more svg{width:14px;height:14px;}

@media(max-width:899px){
	.themen__grid{grid-template-columns:1fr;}
}

/* -------------------------------------------------------------------------
 * 8. Zwei-Spalten-Vergleichslayout EPBD/GEG
 * ---------------------------------------------------------------------- */
.vergleich{padding:36px 0;background:var(--surface);}
.vergleich__head{max-width:800px;margin-bottom:22px;}
.vergleichstabelle{width:100%;border-collapse:collapse;background:#ffffff;font-size:.95rem;}
.vergleichstabelle caption{text-align:left;font-weight:700;padding-bottom:10px;}
.vergleichstabelle th,.vergleichstabelle td{border:1px solid var(--border-strong);padding:14px 16px;text-align:left;vertical-align:top;}
.vergleichstabelle thead th{background:var(--secondary);color:#ffffff;font-family:var(--font-heading);font-size:1rem;}
.vergleichstabelle tbody th{background:#f1f3f4;font-weight:700;width:26%;}
.vergleichstabelle tbody tr:nth-child(even) td,.vergleichstabelle tbody tr:nth-child(even) th{background:#f7f8f9;}
.vergleich__fn{color:var(--muted);font-size:.85rem;margin-top:12px;}

@media(max-width:640px){
	.vergleichstabelle,.vergleichstabelle thead,.vergleichstabelle tbody,.vergleichstabelle th,.vergleichstabelle td,.vergleichstabelle tr{display:block;}
	.vergleichstabelle thead{position:absolute;left:-9999px;}
	.vergleichstabelle tr{border:1px solid var(--border-strong);margin-bottom:14px;}
	.vergleichstabelle tbody th{width:auto;border-bottom:0;}
	.vergleichstabelle tbody td{border-top:0;}
}

/* -------------------------------------------------------------------------
 * 9. Nummerierte Paragraphenliste mit Gesetzesverweisen
 * ---------------------------------------------------------------------- */
.paragraphen{padding:36px 0;}
.paragraphen__head{max-width:800px;margin-bottom:20px;}
.paragraphenliste{list-style:none;margin:0;padding:0;counter-reset:pgraf;border-top:1px solid var(--border);}
.paragraphenliste li{
	counter-increment:pgraf;
	position:relative;
	padding:16px 0 16px 52px;
	margin:0;
	border-bottom:1px solid var(--border);
}
.paragraphenliste li::before{
	content:counter(pgraf, decimal-leading-zero);
	position:absolute;left:0;top:16px;
	font-family:var(--font-heading);
	font-weight:700;
	font-size:.95rem;
	color:#ffffff;
	background:var(--secondary);
	width:34px;height:28px;
	display:flex;align-items:center;justify-content:center;
}
.paragraphenliste .ref{display:block;font-family:var(--font-heading);font-weight:700;color:var(--primary);margin-bottom:.2em;}
.paragraphenliste p{margin:0;font-size:.97rem;}

/* -------------------------------------------------------------------------
 * 10. PSCoat-Hinweisblock (informativ, kein Anzeige-Label — theme_ad=none)
 * ---------------------------------------------------------------------- */
.hinweisblock{padding:30px 0;}
.hinweisblock__box{
	background:var(--surface);
	border-left:5px solid var(--accent);
	padding:22px 26px;
	max-width:900px;
}
.hinweisblock__box p{margin:0;font-size:.96rem;color:var(--text);}
.hinweisblock__box a{font-weight:700;}

/* -------------------------------------------------------------------------
 * 11. Abschluss-CTA-Block
 * ---------------------------------------------------------------------- */
.cta-block{background:var(--secondary);color:#ffffff;padding:46px 0;margin-top:10px;}
.cta-block__inner{max-width:760px;}
.cta-block h2{color:#ffffff;border:0;margin-top:0;}
.cta-block p{color:#dce8f0;font-size:1.05rem;}

/* -------------------------------------------------------------------------
 * 12. Artikel (single.php)
 * ---------------------------------------------------------------------- */
.article-head{padding:36px 0 18px;border-bottom:1px solid var(--border);}
.breadcrumb{font-size:.85rem;color:var(--muted);margin-bottom:14px;}
.breadcrumb a{color:var(--muted);}
.article-head h1{max-width:var(--maxw-article);}
.article-meta{display:flex;flex-wrap:wrap;gap:14px;color:var(--muted);font-size:.88rem;margin-top:10px;}
.article-body-wrap{padding:32px 0 10px;}
.article-body{max-width:var(--maxw-article);font-size:1.04rem;line-height:1.65;}
.article-body h2{font-size:1.5rem;}
.article-body h3{margin-top:1.3em;}
.article-body p{margin:0 0 1.2em;}
.article-body ul,.article-body ol{margin:0 0 1.2em;padding-left:1.5em;}
.article-body li{margin-bottom:.5em;}
.article-body table{width:100%;border-collapse:collapse;margin:1.4em 0;font-size:.94rem;}
.article-body th,.article-body td{border:1px solid var(--border-strong);padding:10px 12px;text-align:left;}
.article-body thead th{background:var(--secondary);color:#ffffff;}
.article-body blockquote{border-left:4px solid var(--primary);margin:1.4em 0;padding:.4em 0 .4em 1.2em;color:var(--muted);font-style:italic;}
.article-body code{background:var(--surface);padding:.15em .4em;font-size:.9em;}
.article-body figure{margin:1.6em 0;}
.article-body figure img{width:100%;}
.article-body figure.img-float-left{float:left;width:42%;margin:.2em 1.6em 1em 0;}
.article-body figure.img-float-right{float:right;width:42%;margin:.2em 0 1em 1.6em;}
.article-body figcaption{font-size:.78rem;color:var(--muted);margin-top:6px;}
.article-body::after{content:"";display:table;clear:both;}

.article-body .anzeige,.article-body .anzeige-block{
	background:var(--surface);
	border:1px solid var(--border-strong);
	border-left:5px solid var(--accent);
	padding:20px 22px;
	margin:1.8em 0;
	clear:both;
}
.article-body .anzeige p:first-child,.article-body .anzeige-block .anzeige-label{
	font-family:var(--font-heading);
	font-weight:700;
	text-transform:uppercase;
	font-size:.78rem;
	letter-spacing:.06em;
	color:var(--muted);
	margin-bottom:.6em;
}
.article-body .anzeige strong:first-child{
	font-family:var(--font-heading);
	font-weight:700;
	text-transform:uppercase;
	font-size:.78rem;
	letter-spacing:.06em;
	color:var(--muted);
}
.article-body .anzeige p,.article-body .anzeige-block p{margin-bottom:.6em;font-size:.95rem;}
.article-body .anzeige p:last-child,.article-body .anzeige-block p:last-child{margin-bottom:0;}

@media(max-width:720px){
	.article-body figure.img-float-left,.article-body figure.img-float-right{float:none;width:100%;margin:0 0 1.4em;}
}

.article-foot{max-width:var(--maxw-article);padding:20px 0 44px;border-top:1px solid var(--border);margin-top:30px;}
.article-foot a{font-weight:700;}

/* -------------------------------------------------------------------------
 * 13. Seiten (page.php) / Kontakt / Über diese Seite
 * ---------------------------------------------------------------------- */
.page-head{padding:36px 0 10px;}
.page-body-wrap{padding:16px 0 50px;}
.page-body{max-width:var(--maxw-article);font-size:1.04rem;line-height:1.65;}
.page-body h2{font-size:1.4rem;}
.kontaktliste{list-style:none;margin:1.4em 0;padding:0;border-top:1px solid var(--border);max-width:640px;}
.kontaktliste li{border-bottom:1px solid var(--border);padding:14px 0;margin:0;}
.kontaktliste .label{display:block;font-weight:700;color:var(--muted);font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.25em;}
.kontaktliste a{font-size:1.05rem;font-weight:700;}

/* -------------------------------------------------------------------------
 * 14. Weitere-Artikel / Index-Liste
 * ---------------------------------------------------------------------- */
.postliste{padding:40px 0;}
.postliste ul{list-style:none;margin:0;padding:0;}
.postliste li{border-bottom:1px solid var(--border);padding:20px 0;}
.postliste h2{border:0;margin:0 0 .3em;font-size:1.25rem;}
.postliste .meta{color:var(--muted);font-size:.85rem;}

/* -------------------------------------------------------------------------
 * 15. Footer — hell, 3 Spalten
 * ---------------------------------------------------------------------- */
.site-footer{background:var(--footer-bg);color:var(--footer-text);border-top:3px solid var(--secondary);margin-top:0;}
.footer__grid{
	max-width:var(--maxw);
	margin:0 auto;
	padding:44px 20px 24px;
	display:grid;
	grid-template-columns:1.2fr 1fr 1fr;
	gap:36px;
}
.footer__col h3{font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:.9em;}
.footer__col p{font-size:.92rem;margin-bottom:.7em;}
.footer__col ul{list-style:none;margin:0;padding:0;}
.footer__col li{margin-bottom:.55em;}
.footer__col a{color:var(--footer-text);text-decoration:none;font-size:.93rem;}
.footer__col a:hover{color:var(--primary);text-decoration:underline;}
.footer__betreiber{font-size:.86rem;color:var(--muted);}
.footer__bottom{
	max-width:var(--maxw);
	margin:0 auto;
	padding:18px 20px 30px;
	border-top:1px solid var(--border);
	display:flex;
	flex-wrap:wrap;
	gap:10px 24px;
	justify-content:space-between;
	font-size:.85rem;
	color:var(--muted);
}
.footer__transparenz{max-width:900px;}
.footer__transparenz a{color:var(--link);font-weight:700;}

@media(max-width:820px){
	.footer__grid{grid-template-columns:1fr;gap:26px;}
}

/* -------------------------------------------------------------------------
 * 16. Nach-oben Button
 * ---------------------------------------------------------------------- */
.top-btn{
	position:fixed;right:18px;bottom:18px;
	width:46px;height:46px;
	background:var(--secondary);color:#ffffff;
	border:0;display:flex;align-items:center;justify-content:center;
	opacity:0;visibility:hidden;transform:translateY(8px);
	transition:opacity .2s,transform .2s,visibility .2s;
	cursor:pointer;z-index:80;
}
.top-btn.is-visible{opacity:1;visibility:visible;transform:translateY(0);}
.top-btn:hover{background:var(--primary);}
.top-btn svg{width:20px;height:20px;}

/* -------------------------------------------------------------------------
 * 17. 404
 * ---------------------------------------------------------------------- */
.not-found{padding:70px 0;text-align:left;max-width:640px;}

/* -------------------------------------------------------------------------
 * 18. Bildlegende (CC0-Fotocredit, freiwillig)
 * ---------------------------------------------------------------------- */
.bildcredit{font-size:.72rem;color:var(--muted);}
