/*
 Theme Name:   GeneratePress Child – Gabriele Aigner
 Theme URI:    https://generatepress.com
 Description:  Child-Theme für gabrieleaigner.de (Header-Layout, Terminsache-Events, kleine Ergänzungen zu den GB-Global-Styles)
 Author:       Bastian Böhm
 Template:     generatepress
 Version:      1.0.0
 Text Domain:  generatepress-child
*/

/* ==========================================================================
   Header: Logo links, Menü mittig, CTA-Menüpunkt rechts (GP "Navigation as Header")
   ========================================================================== */
.main-navigation .inside-navigation {
	display: flex;
	align-items: center;
}
.main-navigation .navigation-branding {
	margin-right: 0;
}
.main-navigation .navigation-branding img {
	max-height: 96px;
	width: auto;
	padding: 8px 0;
}
.main-navigation .main-nav {
	flex: 1 1 auto;
	display: flex;
}
.main-navigation .main-nav > ul {
	display: flex;
	align-items: center;
	width: 100%;
}
/* Beide auto-Margins → restliche Menüpunkte sitzen mittig zwischen Logo und CTA */
.main-navigation .main-nav > ul > li:first-child {
	margin-left: auto;
}
.main-navigation .main-nav > ul > li.bb-nav-cta {
	margin-left: auto;
}
.main-navigation .main-nav > ul > li.bb-nav-cta > a {
	background-image: linear-gradient(180deg, color-mix(in srgb, var(--accent-2), white 28%) 0%, var(--accent-2) 100%);
	color: var(--accent);
	font-weight: 500;
	line-height: 1.25;
	padding: 0.85em 1.5em;
	border-radius: 8px;
	box-shadow: 0 3px 10px color-mix(in srgb, var(--accent) 22%, transparent), inset 0 1px 0 color-mix(in srgb, white 55%, transparent);
	transition: transform 0.2s, box-shadow 0.2s;
	margin-left: 1.25rem;
}
.main-navigation .main-nav > ul > li.bb-nav-cta > a:hover,
.main-navigation .main-nav > ul > li.bb-nav-cta > a:focus {
	color: var(--accent);
	transform: translateY(-2px);
	box-shadow: 0 6px 16px color-mix(in srgb, var(--accent) 28%, transparent), inset 0 1px 0 color-mix(in srgb, white 55%, transparent);
}
/* Aktiver Menüpunkt: dezente Linie in Gold */
.main-navigation .main-nav > ul > li.current-menu-item > a,
.main-navigation .main-nav > ul > li.current-menu-ancestor > a {
	box-shadow: inset 0 -2px 0 var(--accent-2);
}
.main-navigation .main-nav > ul > li.bb-nav-cta.current-menu-item > a {
	box-shadow: 0 3px 10px color-mix(in srgb, var(--accent) 22%, transparent);
}
/* Sticky-Header: weicher Schatten */
.main-navigation.is_stuck {
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
}
/* Mobile: CTA als normaler Menüpunkt */
@media (max-width: 1024px) {
	.main-navigation .main-nav > ul > li.bb-nav-cta > a {
		margin: 0.5rem 1rem;
		display: inline-block;
	}
	.main-navigation .main-nav > ul > li:first-child,
	.main-navigation .main-nav > ul > li.bb-nav-cta {
		margin-left: 0;
	}
	.mobile-header-navigation .mobile-header-logo img {
		max-height: 68px;
		width: auto;
		padding: 4px 0;
	}
}

/* ==========================================================================
   Typografie-Ergänzungen
   ========================================================================== */
/* Lange Überschriften auf Mobil nicht abschneiden (Kundin: "Veröffentlich…", "Sexualtherapie") */
h1, h2, h3 {
	overflow-wrap: anywhere;
}
@media (max-width: 767px) {
	h1, h2, h3 {
		hyphens: auto;
		-webkit-hyphens: auto;
	}
}
/* Listen in zentrierten Karten linksbündig */
.bb-card ul,
.bb-card ol,
.bb-list-left {
	text-align: left;
}
.bb-card ul {
	padding-left: 1.2em;
	width: 100%;
}
/* Core-Listen etwas luftiger */
.bb-stack ul,
.bb-faq-content ul {
	padding-left: 1.25em;
}
.bb-stack ul li + li,
.bb-faq-content ul li + li {
	margin-top: 0.35em;
}
/* Letztes Element in Stacks ohne Unterkante */
.bb-stack > :last-child {
	margin-bottom: 0;
}
/* Responsive Embeds (YouTube) */
.wp-block-embed.wp-has-aspect-ratio iframe {
	border-radius: 14px;
}
.wp-block-embed {
	margin: 0;
}
/* Accordion-Icon-Umschaltung (GB Pro blendet .gb-accordion__toggle-icon-open/-close selbst um) */
.bb-faq-icon svg {
	display: block;
}
/* Beitrags-Einzelseiten etwas eingerückt (Content ohne eigene Sektionen) */
.single-post .site-content,
.single-bb_event .site-content,
.archive .site-content,
.search .site-content,
.error404 .site-content {
	padding: 3rem 1.25rem;
	max-width: 900px;
	margin: 0 auto;
}
.single-post .entry-header,
.single-bb_event .entry-header {
	margin-bottom: 1.5rem;
}
/* Zurück-nach-oben */
.generate-back-to-top {
	border-radius: 50%;
}

/* ==========================================================================
   Terminsache (Events) – 3 pro Reihe, mehr Luft, Haus-Farben
   ========================================================================== */
.bb-events .bb-ts-events {
	width: 100%;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 2.25rem;
	align-items: stretch;
}
@media (max-width: 1024px) {
	.bb-events .bb-ts-events {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1.75rem;
	}
}
@media (max-width: 640px) {
	.bb-events .bb-ts-events {
		grid-template-columns: 1fr;
	}
}
.bb-events .bb-ts-event {
	flex-direction: column;
	gap: 0;
	padding: 0;
	overflow: hidden;
	background: var(--base-3);
	border: 1px solid var(--base);
	border-radius: 14px;
	box-shadow: 0 4px 18px color-mix(in srgb, var(--accent) 6%, transparent);
}
.bb-events .bb-ts-event:hover {
	box-shadow: 0 8px 24px color-mix(in srgb, var(--accent) 12%, transparent);
}
.bb-events .bb-ts-event__image {
	width: 100%;
	aspect-ratio: 3 / 2;
	border-bottom: 1px solid var(--base);
}
.bb-events .bb-ts-event__image img {
	aspect-ratio: 3 / 2;
	border-radius: 0;
	display: block;
}
.bb-events .bb-ts-event__image a:hover {
	opacity: 0.9;
}
.bb-events .bb-ts-event__video {
	aspect-ratio: 3 / 2;
	position: relative;
	overflow: hidden;
	border-radius: 0;
}
.bb-events .bb-ts-event__video iframe {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	height: 100%;
	max-height: none;
	width: 118.52%;
	max-width: none;
}
.bb-events .bb-ts-event__content {
	padding: 1.25rem 1.5rem 1.5rem;
	flex: 1 1 0;
}
.bb-events .bb-ts-event__content h2.bb-ts-event__title,
.bb-events .bb-ts-event__content .bb-ts-event__title a {
	font-size: 1.35rem;
	margin: 0;
	color: var(--contrast-2);
}
.bb-events .bb-ts-event__content a {
	color: var(--accent);
	opacity: 1;
}
.bb-events .bb-ts-event__content a:hover {
	opacity: 0.8;
}
.bb-events .bb-ts-event__meta {
	padding: 10px 0;
	margin: 6px 0 10px;
	border-top: 1px solid var(--base);
	border-bottom: 1px solid var(--base);
}
.bb-events .bb-ts-event__links {
	margin-top: auto;
	padding-top: 0.5rem;
}
/* Event-Einzelseite */
.single-bb_event .page-header,
.single-bb_event .page-content {
	max-width: 800px;
	margin: 0 auto;
}
.single-bb_event .page-header {
	margin-top: 60px;
}
.single-bb_event .page-content {
	margin-bottom: 80px;
}
.single-bb_event .bb-ts-single {
	margin-top: 0;
}
.single-bb_event .bb-ts-single__details {
	margin-top: 0;
	border-top: 1px solid var(--base);
	border-bottom: 1px solid var(--base);
}
.single-bb_event a {
	color: var(--accent);
}
.single-bb_event .bb-ts-single__actions {
	margin-top: 60px;
}

/* ==========================================================================
   Transitions
   ========================================================================== */
a,
.main-navigation a {
	transition: color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
}
.bb-faq .gb-accordion__content {
	transition-duration: 0.4s;
	transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.bb-faq-toggle,
.bb-faq-icon {
	transition: color 0.2s ease;
}
.bb-card,
.bb-events .bb-ts-event {
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.bb-card:hover,
.bb-events .bb-ts-event:hover {
	transform: translateY(-3px);
}
.bb-img-rounded,
.wp-block-embed iframe {
	transition: box-shadow 0.25s ease;
}
.gb-carousel-dot {
	transition: background-color 0.3s ease, transform 0.3s ease, opacity 0.3s ease;
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
	}
}
