/*
Theme Name: Vibepress
Theme URI: https://sternenvogelverlag.de
Author: Lenny
Description: Schlankes Hybrid-Theme (klassische PHP-Templates + theme.json). Struktur im Theme, Design komplett über den Vibepress Design Controller (Tokens + Custom-CSS) steuerbar.
Version: 1.2.0
Requires at least: 6.5
Tested up to: 6.9
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: vibepress

Changelog:
1.2.0 - Copyright-Footer entfernt (Footer-Widget-Area bleibt)
1.1.0 - Editor-Styles dynamisch aus DB-Optionen (WYSIWYG im Block-Editor)
1.0.0 - Aufgeraeumt: alle Effekt-/Buchseiten-Regeln in Custom-CSS ausgelagert, Theme enthaelt nur noch Struktur. --vp-box-bg entfernt (Box-Hintergrund kommt aus Custom-CSS).
0.8.0 - Mobile-Navigation mit Hamburger-Menue
0.7.0 - Buchseiten (jetzt in Custom-CSS)
0.6.0 - Trickkiste (jetzt in Custom-CSS)
0.5.0 - Vorschaubild
0.4.0 - Verspielte Effekte (jetzt in Custom-CSS)
0.3.0 - Versionssprung
0.2.0 - Design-Steuerung ausgelagert
0.1.0 - Grundgeruest
*/

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

body {
	margin: 0;
	background-color: var(--vp-bg-page);
	color: var(--vp-text);
	font-family: var(--vp-font-body);
	font-size: var(--vp-size-base);
	line-height: var(--vp-line-height);
}

/* Container */
.vp-container {
	max-width: var(--vp-container);
	margin-left: auto;
	margin-right: auto;
	padding-left: 20px;
	padding-right: 20px;
}

/* Inhalts-Box: nur Struktur, kein fester Hintergrund (kommt aus Custom-CSS) */
.vp-content-box {
	padding: var(--vp-zone-pad, 20px) 18px 30px 14px;
	margin-top: 8px;
	margin-bottom: 8px;
}

/* Überschriften */
h1, h2, h3 {
	font-family: var(--vp-font-heading);
	font-weight: 600;
	line-height: 1.1;
}
h1 { font-size: var(--vp-size-h1); }
h2 { font-size: var(--vp-size-h2); }
h3 { font-size: var(--vp-size-h3); }

.entry-title {
	font-weight: 600;
	font-size: var(--vp-size-h1);
	line-height: 1.2;
	margin-top: 0;
}
.entry-title a { color: var(--vp-text); text-decoration: none; }
.entry-title a:hover { color: var(--vp-text-muted); }

a { color: var(--vp-link); }
a:hover, a:focus { color: var(--vp-text); text-decoration: underline; }

/* Header */
.site-header { background-color: var(--vp-brand); }
.site-header .vp-header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 8px 20px;
}
.site-logo img {
	width: var(--vp-logo-width);
	height: auto;
	display: block;
}

/* Navigation */
.main-navigation { background-color: var(--vp-brand); }
.main-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
}
.main-navigation a {
	display: block;
	text-transform: uppercase;
	font-size: 18px;
	text-decoration: none;
	color: var(--vp-text);
	padding: 0 24px;
	line-height: 44px;
}
.main-navigation a:hover,
.main-navigation .current-menu-item > a {
	color: var(--vp-accent);
}

/* Inhaltsbereich */
.site-content { padding-top: 8px; padding-bottom: 8px; }
.entry-content > * { margin-top: 1em; margin-bottom: 1em; }

/* Footer */
.footer-widgets {
	background-color: var(--vp-brand);
	padding: 22px 24px 40px;
}
.site-info {
	background-color: var(--vp-creme);
	padding-bottom: 20px;
}

/* Buttons (Basis) */
button,
input[type="submit"],
.wp-block-button__link {
	color: #fff;
	background-color: var(--vp-button);
	border: none;
	padding: 10px 20px;
	cursor: pointer;
}
button:hover,
input[type="submit"]:hover,
.wp-block-button__link:hover {
	background-color: var(--vp-button-hover);
}

/* ============================================
   Mobile Navigation / Hamburger
   ============================================ */
.vp-menu-toggle {
	display: none;
	background: transparent;
	border: none;
	cursor: pointer;
	padding: 10px;
	width: 48px;
	height: 48px;
}
.vp-menu-bars,
.vp-menu-bars::before,
.vp-menu-bars::after {
	display: block;
	width: 26px;
	height: 3px;
	background: var(--vp-text);
	border-radius: 3px;
	transition: transform 0.3s ease, opacity 0.3s ease;
}
.vp-menu-bars { position: relative; }
.vp-menu-bars::before,
.vp-menu-bars::after { content: ""; position: absolute; left: 0; }
.vp-menu-bars::before { top: -8px; }
.vp-menu-bars::after  { top: 8px; }
.vp-nav-open .vp-menu-bars { background: transparent; }
.vp-nav-open .vp-menu-bars::before { transform: translateY(8px) rotate(45deg); }
.vp-nav-open .vp-menu-bars::after  { transform: translateY(-8px) rotate(-45deg); }

@media (max-width: 768px) {
	.vp-menu-toggle { display: block; }
	.main-navigation { position: relative; }
	.main-navigation #vp-primary-menu {
		display: none;
		flex-direction: column;
		width: 100%;
	}
	.main-navigation.vp-nav-open #vp-primary-menu { display: flex; }
	.main-navigation #vp-primary-menu a {
		line-height: 52px;
		border-top: 1px solid rgba(0,0,0,0.06);
	}
}
