/**
 * Frontend-Styles fuer das Top-Banner.
 *
 * Naming: BEM (.jg-tbd-banner als Block, __element, --modifier).
 * Mobile-first mit Breakpoint bei 782px (gleicher Wert, den
 * WordPress fuer den Admin-Bar-Wechsel verwendet).
 *
 * Farben und Schriftgroesse werden NICHT hier gesetzt – diese
 * Werte kommen dynamisch ueber wp_add_inline_style() aus PHP.
 *
 * @package Top_Banner_Display
 * @author  Joern Gorres
 * @version 1.0.0
 */


/* ==========================================================
 * Block: .jg-tbd-banner
 * ==========================================================
 *
 * Fixed am oberen Bildschirmrand, ueber praktisch allen
 * Inhalten (z-index knapp unter der WP-Adminbar = 99999).
 * Initial via translateY ausserhalb des Viewports geparkt;
 * .jg-tbd-banner--visible bringt es per Slide-In hinein. Damit
 * gibt es kein "Aufpoppen" beim Laden, sondern eine ruhige
 * Animation, sobald das JS den Banner sichtbar schaltet.
 */
.jg-tbd-banner {
	position:        fixed;
	top:             0;
	left:            0;
	right:           0;
	z-index:         99998;
	box-sizing:      border-box;
	width:           100%;
	padding:         16px 20px;
	box-shadow:      0 2px 8px rgba(0, 0, 0, 0.15);
	transform:       translateY(-110%);
	transition:      transform 350ms ease-out;
	line-height:     1.1;
}

/* Sichtbarer Zustand – wird per JS gesetzt, sobald sichergestellt
 * ist, dass das Banner nicht via Session-Cookie als geschlossen
 * markiert wurde. */
.jg-tbd-banner--visible {
	transform: translateY(0);
}

/* Schliessen-Animation: gleicher Slide nach oben, leicht andere
 * Easing-Funktion. */
.jg-tbd-banner--closing {
	transform:  translateY(-110%);
	transition: transform 350ms ease-in;
}


/* ==========================================================
 * Element: .jg-tbd-banner__inner
 * ==========================================================
 *
 * Zentriert den Banner-Inhalt auf max. 1200px Breite und legt
 * Inhalt + Schliessen-Button nebeneinander.
 */
.jg-tbd-banner__inner {
	display:         flex;
	align-items:     center;
	justify-content: space-between;
	gap:             16px;
	max-width:       1200px;
	margin:          0 auto;
	width:           100%;
}


/* ==========================================================
 * Element: .jg-tbd-banner__content
 * ==========================================================
 *
 * Eigentlicher Banner-Text (HTML inkl. wpautop-Absaetze).
 * Default-Margin der erzeugten <p>-Elemente entfernen, damit
 * mehrzeiliger Inhalt sauber im Banner sitzt.
 *
 * - font-weight: 700  -> Banner-Text grundsaetzlich fett.
 * - text-align: center -> Inhalt horizontal zentriert.
 */
.jg-tbd-banner__content {
	flex:        1 1 auto;
	min-width:   0;
	font-weight: 700;
	text-align:  center;
}

.jg-tbd-banner__content p {
	margin: 0;
}

.jg-tbd-banner__content p + p {
	margin-top: 2px;
}


/* ==========================================================
 * Element: .jg-tbd-banner__close (Symbol + Text)
 * ==========================================================
 *
 * Erbt Schriftfarbe vom Banner (color: inherit), bekommt aber
 * einen leicht abgesetzten halbtransparenten Hintergrund, damit
 * der Schliessen-Button auch auf farbigem Banner gut sichtbar
 * ist – unabhaengig von der vom Redakteur gewaehlten BG-Farbe.
 */
.jg-tbd-banner__close {
	flex:            0 0 auto;
	display:         inline-flex;
	align-items:     center;
	gap:             6px;
	padding:         8px 14px;
	background:      rgba(0, 0, 0, 0.10);
	border:          0;
	border-radius:   4px;
	color:           inherit;
	font:            inherit;
	font-size:       14px;
	line-height:     1;
	cursor:          pointer;
	transition:      background-color 150ms ease;
}

.jg-tbd-banner__close:hover,
.jg-tbd-banner__close:focus {
	background: rgba(0, 0, 0, 0.18);
	outline:    none;
}

.jg-tbd-banner__close:focus-visible {
	outline:        2px solid currentColor;
	outline-offset: 2px;
}

.jg-tbd-banner__close-icon {
	font-size:   18px;
	line-height: 1;
}


/* ==========================================================
 * Admin-Bar-Kompatibilitaet
 * ==========================================================
 *
 * Wenn ein eingeloggter User die WordPress-Admin-Bar sieht,
 * sitzt diese bereits am oberen Rand. Den Banner darunter
 * versetzen, damit nichts ueberlappt.
 *
 * Werte: 32px Desktop, 46px Mobile (<= 782px) – das sind die
 * Standardhoehen der WP-Admin-Bar.
 */
body.admin-bar .jg-tbd-banner {
	top: 32px;
}


/* ==========================================================
 * Mobile (<= 782px)
 * ==========================================================
 *
 * - Inhalt und Schliessen-Button untereinander statt nebeneinander
 * - Etwas geringeres Padding
 * - Admin-Bar-Hoehe auf 46px korrigieren
 */
@media screen and (max-width: 782px) {

	.jg-tbd-banner {
		padding: 12px 14px;
	}

	.jg-tbd-banner__inner {
		flex-direction: column;
		align-items:    stretch;
		text-align:     center;
		gap:            10px;
	}

	.jg-tbd-banner__close {
		align-self: center;
	}

	body.admin-bar .jg-tbd-banner {
		top: 46px;
	}
}


/* ==========================================================
 * Reduzierte Bewegung respektieren
 * ==========================================================
 *
 * Nutzer mit "prefers-reduced-motion" bekommen das Banner
 * ohne Slide-Animation – sofortiges Ein-/Ausblenden.
 */
@media (prefers-reduced-motion: reduce) {

	.jg-tbd-banner,
	.jg-tbd-banner--closing {
		transition: none;
	}
}
