/*
Theme Name: G.U.B. Analyse
Theme URI: https://www.gub-analyse.de
Description: Block-Theme für gub-analyse.de. Full Site Editing, ohne Page Builder, ohne externe Ressourcen.
Author: Cash. Medien AG / G.U.B. Analyse Finanzresearch GmbH
Version: 0.1.0
Requires at least: 6.6
Requires PHP: 8.0
License: GPL-2.0-or-later
Text Domain: gub
*/

/* Hier nur, was theme.json nicht kann. Farben/Abstände immer als var(--wp--preset--…). */

/* Skip-Link (Barrierefreiheit) */
.gub-skip-link {
	position: absolute;
	left: -9999px;
}
.gub-skip-link:focus {
	left: var(--wp--preset--spacing--30);
	top: var(--wp--preset--spacing--30);
	z-index: 100;
	padding: 0.5rem 1rem;
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--base);
}

/* Sticky Header */
.gub-header {
	position: sticky;
	top: 0;
	z-index: 50;
	border-bottom: 1px solid var(--wp--preset--color--line);
}

/* ---------- Navigation ---------- */
.gub-header .wp-block-navigation a:where(:not(.wp-element-button)) { text-decoration: none; }
.gub-header .wp-block-navigation .current-menu-item > a,
.gub-header .wp-block-navigation a:hover { color: var(--wp--preset--color--brand); }
.gub-header .wp-block-navigation__submenu-container {
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 0.75rem;
	box-shadow: var(--wp--preset--shadow--card);
	padding: 0.5rem;
}

/* ---------- Footer ---------- */
footer .wp-block-navigation a { text-decoration: none; opacity: 0.9; }
footer a:hover { text-decoration: underline; }

/* ---------- Block-Stile ---------- */
/* Gruppe „Karte“: weiße Fläche mit Rand und Schatten */
.wp-block-group.is-style-gub-card {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 1rem;
	box-shadow: var(--wp--preset--shadow--card);
	padding: var(--wp--preset--spacing--40);
}
/* Gruppe „Fläche“: sandfarbener Abschnitt */
.wp-block-group.is-style-gub-surface {
	background: var(--wp--preset--color--sand);
	border-radius: 1rem;
	padding: var(--wp--preset--spacing--50);
}
/* Kleine Überschrift über Titeln („Eyebrow“) */
.gub-eyebrow {
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--brand);
	margin-bottom: 0;
}
/* Tabellen */
.wp-block-table table { border-collapse: collapse; width: 100%; }
.wp-block-table th, .wp-block-table td { border: 0; border-bottom: 1px solid var(--wp--preset--color--line); padding: 0.75rem 0.5rem; text-align: left; }
.wp-block-table th { color: var(--wp--preset--color--muted); font-weight: 600; width: 30%; }
/* Bilder und Titelblätter */
.wp-block-image img { border-radius: 0.5rem; }

/* ---------- Akzente in Markenrot ---------- */
/* Dünne Linie am oberen Seitenrand und über dem Footer */
.gub-header { border-top: 4px solid var(--wp--preset--color--brand); }
footer.wp-block-group { border-top: 4px solid var(--wp--preset--color--brand); }
/* Kurzer roter Balken unter Seitentiteln und H2 */
h1.wp-block-post-title::after,
.wp-block-post-content h2.alignwide::after {
	content: "";
	display: block;
	width: 3rem;
	height: 4px;
	margin-top: 0.6em;
	border-radius: 2px;
	background: var(--wp--preset--color--brand);
}
/* Eckdaten-Tabelle: erste Spalte leicht getönt */
.wp-block-table th { background: var(--wp--preset--color--sand); }
/* Zitat auf getönter Fläche */
.wp-block-quote { background: var(--wp--preset--color--brand-tint); padding-block: var(--wp--preset--spacing--30); border-radius: 0 0.5rem 0.5rem 0; }

/* ---------- Analysen ---------- */
/* Eckdaten: Beschriftung links, Wert rechts; leere Zeilen werden ausgeblendet */
.gub-row { display: grid; grid-template-columns: 12rem 1fr; gap: var(--wp--preset--spacing--30); padding: 0.75rem 0; border-bottom: 1px solid var(--wp--preset--color--line); }
.gub-row > p { margin: 0; }
.gub-row .gub-label { color: var(--wp--preset--color--muted); font-weight: 600; font-size: var(--wp--preset--font-size--small); }
.gub-row:has(.gub-value:empty) { display: none; }
@media (max-width: 600px) { .gub-row { grid-template-columns: 1fr; gap: 0.25rem; } }
/* Button „PDF“ ohne Datei ausblenden */
.gub-pdf:has(a:not([href])), .gub-pdf:has(a[href=""]) { display: none; }
/* Analysen-Karten: Buttons unten, Titelblatt mit Rand */
.gub-analyse-card { display: flex; flex-direction: column; gap: var(--wp--preset--spacing--20); }
.gub-analyse-card .wp-block-post-featured-image img { border: 1px solid var(--wp--preset--color--line); }
.gub-analyse-card .wp-block-post-title { margin: 0; }
.gub-analyse-card .wp-block-post-title a { text-decoration: none; color: inherit; }
.gub-analyse-card .gub-buttons { margin-top: auto; padding-top: var(--wp--preset--spacing--20); }
.gub-analyse-card .wp-block-button__link { font-size: var(--wp--preset--font-size--small); padding: 0.5rem 1.1rem; }
.gub-analyse-card { transition: transform 0.15s ease, box-shadow 0.15s ease; }
.gub-analyse-card:hover { transform: translateY(-2px); }
/* Filter-Pillen (Branchen) */
.gub-pill { margin: 0; }
.gub-pill a, .wp-block-tag-cloud a {
	display: inline-block; padding: 0.35rem 1rem; border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px; background: var(--wp--preset--color--sand); color: var(--wp--preset--color--ink);
	text-decoration: none; font-size: 0.9rem !important; font-weight: 600;
}
.gub-pill a:hover, .wp-block-tag-cloud a:hover { border-color: var(--wp--preset--color--brand); color: var(--wp--preset--color--brand); }
.wp-block-tag-cloud { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--20); margin: 0; }
@media (prefers-reduced-motion: reduce) { .gub-analyse-card { transition: none; } .gub-analyse-card:hover { transform: none; } }
.gub-eyebrow a { text-decoration: none; }
.gub-pill { margin: 0; } .wp-block-query { margin-top: var(--wp--preset--spacing--40); }

/* ---------- Siegel auf der Karte ---------- */
.gub-cover { position: relative; }
.gub-cover img { object-position: top; }
.gub-seal { position: absolute; right: 0.75rem; bottom: -1.75rem; width: 8.25rem; margin: 0; z-index: 1; transform: rotate(-3deg); }
.gub-seal img { display: block; width: 100%; height: auto; border-radius: 0.25rem; box-shadow: var(--wp--preset--shadow--card); }
.gub-seal:has(img:not([src])), .gub-seal:has(img[src=""]) { display: none; }
.gub-datum { margin: 0; }
.gub-datum:empty { display: none; }
.gub-analyse-card .gub-cover { margin-bottom: 1.75rem; }

/* ---------- Einzelseite Analyse ---------- */
/* Roter Strich unter Titel UND Anbieter (statt direkt unter dem Titel) */
.single-gub_analyse h1.wp-block-post-title::after { display: none; }
.gub-analyse-head::after {
	content: "";
	display: block;
	width: 3rem;
	height: 4px;
	margin-top: 0.75rem;
	border-radius: 2px;
	background: var(--wp--preset--color--brand);
}
/* Zwischenüberschrift „Eckdaten“: klein und rot */
.gub-section-title {
	font-size: var(--wp--preset--font-size--medium);
	color: var(--wp--preset--color--brand);
	margin-top: 0;
}

/* G.U.B.-Urteil: wichtigste Zeile der Eckdaten, farbig hinterlegt und groß */
.gub-row.gub-row-urteil {
	align-items: center;
	margin: var(--wp--preset--spacing--30) 0;
	padding: 1rem 1.25rem;
	background: var(--wp--preset--color--brand-tint);
	border: 0;
	border-left: 6px solid var(--wp--preset--color--brand);
	border-radius: 0.5rem;
}
.gub-row-urteil .gub-label { color: var(--wp--preset--color--brand-dark); font-size: var(--wp--preset--font-size--regular); font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; }
.gub-row-urteil .gub-value { color: var(--wp--preset--color--brand); font-family: var(--wp--preset--font-family--heading); font-size: var(--wp--preset--font-size--x-large); font-weight: 800; line-height: 1; }

/* Header, Inhalt und Footer schließen bündig aneinander (Abstände regeln die Abschnitte selbst) */
.wp-site-blocks > * { margin-block-start: 0; }

/* Abschnitts-Überschriften auf der Startseite größer als in Fließtext-Seiten */
.wp-block-post-content h2.alignwide { font-size: var(--wp--preset--font-size--x-large); }

/* Urteil-Zeile: Siegel rechts in der Zeile statt auf dem Titelblatt */
.gub-row-urteil { grid-template-columns: 12rem 1fr auto; }
.gub-row-urteil .gub-seal { position: static; width: 7.5rem; transform: none; }
.gub-row-urteil .gub-seal img { box-shadow: none; }
@media (max-width: 600px) { .gub-row-urteil { grid-template-columns: 1fr; } }

/* ---------- Barrierefreiheit ---------- */
/* Sichtbarer Fokus für Tastaturbedienung bei Links und Buttons */
a:focus-visible, button:focus-visible, .wp-element-button:focus-visible {
	outline: 3px solid var(--wp--preset--color--petrol);
	outline-offset: 3px;
}
/* Sprungmarken (Inhaltsverzeichnis) liegen nicht unter dem fixierten Header */
html { scroll-padding-top: 6rem; }
