/*
 * Gaceta-Uebersichtsseite: kompaktere Listendarstellung fuer viele
 * amtliche Veroeffentlichungen. Ueberschreibt nur Groessen/Abstaende
 * innerhalb .gaceta-list, die globale News-Darstellung (Aktuelles-
 * Unterseiten) bleibt unveraendert.
 */

/*
 * Dezente Quellenangabe im Hero-Bereich (page-header.php), unterhalb des
 * page-subtitle. Nur auf der Gaceta-Seite gerendert (page-header.php
 * selbst ist generisch), daher hier statt im globalen style.css definiert.
 */
.page-hero-extra {
    margin: 0.35rem 0 0;

    color: var(--lenz-muted);
    font-size: 0.85rem;
}

.page-hero-extra a {
    color: inherit;
    text-decoration: underline;
}

/*
 * Fuenf feste Themenfarben - projektweit konsistent (Filterpanel UND
 * Themenindikatoren unter jedem Artikel verwenden dieselben Variablen).
 * Bewusst gedaempft/nicht grell, um zum bestehenden Lenzinpa-Design
 * (warmer Hintergrund, dunkler Petrol-Ton als Primaerfarbe) zu passen,
 * aber untereinander klar unterscheidbar.
 */
:root {
    --gaceta-topic-real_estate: #c1652b;
    --gaceta-topic-migration: #3a6bd8;
    --gaceta-topic-economy: #b8902a;
    --gaceta-topic-environment: #2f8f5b;
    --gaceta-topic-transport: #8451b8;
}

.gaceta-topic-real_estate { --gaceta-topic-color: var(--gaceta-topic-real_estate); }
.gaceta-topic-migration { --gaceta-topic-color: var(--gaceta-topic-migration); }
.gaceta-topic-economy { --gaceta-topic-color: var(--gaceta-topic-economy); }
.gaceta-topic-environment { --gaceta-topic-color: var(--gaceta-topic-environment); }
.gaceta-topic-transport { --gaceta-topic-color: var(--gaceta-topic-transport); }

.gaceta-topic-swatch {
    display: inline-block;
    width: 0.7rem;
    height: 0.7rem;
    flex: 0 0 auto;

    background-color: var(--gaceta-topic-color, var(--lenz-muted));
    border-radius: 0.15rem;
}

/*
 * Toolbar: Filterpanel (linksbuendig, im normalen Inhaltsfluss) + kompakte
 * Trefferanzeige. Kein margin-left:auto mehr - ragt dadurch auf Desktop
 * nicht mehr rechts aus dem Content-Bereich heraus.
 */
.gaceta-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.5rem 1.5rem;
    margin-bottom: 2rem;

    max-width: 900px;
}

.gaceta-result-count {
    margin: 0.55rem 0 0;

    color: var(--lenz-muted);
    font-size: 0.85rem;
    white-space: nowrap;
}

/*
 * Aufklappbares Filterpanel - natives <details>/<summary>, keine
 * zusaetzliche JS-Abhaengigkeit fuer das Auf-/Zuklappen noetig.
 */
.gaceta-filter-panel {
    width: 100%;

    border: 1px solid var(--lenz-border);
    border-radius: 0.5rem;
    background-color: var(--lenz-surface);
}

.gaceta-filter-summary {
    padding: 0.55rem 0.9rem;

    color: var(--lenz-text-dark);
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    list-style: none;
}

.gaceta-filter-summary::-webkit-details-marker {
    display: none;
}

.gaceta-filter-summary::before {
    content: '▸';
    display: inline-block;
    margin-right: 0.4rem;

    transition: transform 0.15s ease;
}

.gaceta-filter-panel[open] > .gaceta-filter-summary::before {
    transform: rotate(90deg);
}

.gaceta-filter-form {
    padding: 0.25rem 0.9rem 0.9rem;

    border-top: 1px solid var(--lenz-border);
}

.gaceta-filter-row {
    display: grid;
    grid-template-columns: 9rem 1fr 2.25rem;
    align-items: center;
    gap: 0.6rem;
    padding: 0.4rem 0;
}

.gaceta-filter-row-topic {
    grid-template-columns: 0.7rem 8.3rem 1fr 2.25rem;
}

.gaceta-filter-label {
    margin: 0;

    color: var(--lenz-text);
    font-size: 0.85rem;
}

.gaceta-filter-range {
    width: 100%;
    accent-color: var(--lenz-primary);
}

.gaceta-filter-row-topic .gaceta-filter-range {
    accent-color: var(--gaceta-topic-color, var(--lenz-primary));
}

.gaceta-filter-value {
    color: var(--lenz-text-dark);
    font-size: 0.85rem;
    font-variant-numeric: tabular-nums;
    text-align: right;
}

.gaceta-filter-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
    margin-top: 0.6rem;
}

.gaceta-filter-actions-buttons {
    display: flex;
    gap: 0.6rem;
}

/*
 * "Legende & Hilfe anzeigen/ausblenden" - dezenter Text-Toggle. margin-
 * left:auto (statt justify-content auf dem Container) haelt ihn sowohl
 * einzeilig als auch nach einem Zeilenumbruch auf schmalen Displays
 * zuverlaessig rechtsbuendig.
 */
.gaceta-filter-help-toggle {
    margin-left: auto;
    padding: 0;

    border: 0;
    background: none;
    color: var(--lenz-muted);
    font-size: 0.8rem;
    text-decoration: underline;
    cursor: pointer;
}

.gaceta-filter-help-toggle:hover,
.gaceta-filter-help-toggle:focus-visible {
    color: var(--lenz-primary);
}

/*
 * Aufgeklappter Hilfebereich - bleibt innerhalb von .gaceta-filter-panel,
 * dezente Trennlinie nach oben im bestehenden Border-Stil, kompakte
 * Abstaende, keine eigene Box-in-Box-Optik. Themenfarben werden
 * ausschliesslich ueber die bereits vorhandenen .gaceta-topic-swatch/
 * .gaceta-topic-<key>-Klassen dargestellt (siehe oben) - keine zweite
 * Farbdefinition.
 */
.gaceta-filter-help {
    padding: 0.75rem 0.9rem 0.9rem;

    border-top: 1px solid var(--lenz-border);
}

.gaceta-filter-help-section {
    margin-bottom: 0.75rem;
}

.gaceta-filter-help-section:last-child {
    margin-bottom: 0;
}

.gaceta-filter-help-heading {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0 0 0.25rem;

    color: var(--lenz-text-dark);
    font-size: 0.85rem;
    font-weight: 600;
}

.gaceta-filter-help-section p {
    margin: 0 0 0.3rem;

    color: var(--lenz-text);
    font-size: 0.8rem;
    line-height: 1.5;
}

.gaceta-filter-help-section p:last-child {
    margin-bottom: 0;
}

@media (max-width: 575.98px) {
    .gaceta-filter-row,
    .gaceta-filter-row-topic {
        grid-template-columns: 1.2rem 1fr 2.25rem;
        grid-template-areas:
            "swatch label label"
            "swatch range value";
        row-gap: 0.2rem;
    }

    .gaceta-filter-row-general {
        grid-template-columns: 1fr 2.25rem;
        grid-template-areas:
            "label label"
            "range value";
    }

    .gaceta-filter-row .gaceta-topic-swatch { grid-area: swatch; align-self: center; }
    .gaceta-filter-row .gaceta-filter-label { grid-area: label; }
    .gaceta-filter-row .gaceta-filter-range { grid-area: range; }
    .gaceta-filter-row .gaceta-filter-value { grid-area: value; }
}

/*
 * Jede Veroeffentlichung als dezent abgesetzter Block - gleiche
 * Akzentlinie/Hintergrundfarbe wie .news-detail .news-relevance
 * (bereits vorhandenes "hervorgehobener Block"-Muster), keine neue
 * Kartenoptik, kein Schatten.
 */
.gaceta-list .news-item {
    padding: 0.85rem 1rem;

    border-left: 3px solid var(--lenz-primary);
    border-radius: 0.5rem;
    background-color: #fbfaf7;
}

.gaceta-list .news-item:not(:last-child) {
    margin-bottom: 1.75rem;
}

.gaceta-list .news-title {
    margin-bottom: 0.3rem;

    font-size: 1.125rem;
    line-height: 1.45;
}

.gaceta-list .gaceta-meta {
    display: block;
    margin-bottom: 0.4rem;

    font-size: 0.8125rem;
}

.gaceta-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.4rem 0.75rem;
    margin-bottom: 0;

    font-size: 0.8125rem;
}

.gaceta-action-link {
    color: var(--bs-link-color);
    text-decoration: underline;
    cursor: default;
}

.gaceta-actions-right {
    display: flex;
    align-items: center;
    gap: 0.5rem;

    margin-left: auto;
}

.gaceta-relevance-badge {
    color: var(--lenz-muted);
    white-space: nowrap;
}

.gaceta-topic-indicators {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

@media (max-width: 767.98px) {
    .gaceta-list .news-title {
        font-size: 1.05rem;
    }
}

/*
 * Pagination: Zurueck / Seitenangabe / Weiter
 */

.gaceta-pagination {
    margin-top: 2.5rem;
}

.gaceta-pagination-inner {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    grid-template-areas: "prev status next";
    align-items: center;
    gap: 1rem;

    /*
     * Exakt dieselbe horizontale Positionierung wie die Artikelblöcke:
     * .news-item (global in style.css) setzt nur "max-width: 900px" OHNE
     * margin:auto - die Bloecke sind also linksbuendig innerhalb von
     * .container, nicht zentriert. "margin: 0 auto" wuerde die Pagination
     * stattdessen zentrieren und damit gegenueber den Artikeln verschieben.
     */
    max-width: 900px;
}

.gaceta-pagination-prev {
    grid-area: prev;
    justify-self: start;
}

.gaceta-pagination-next {
    grid-area: next;
    justify-self: end;
}

.gaceta-pagination-status {
    grid-area: status;
    justify-self: center;

    color: var(--lenz-muted);
    font-size: 0.95rem;
    text-align: center;
}

@media (max-width: 575.98px) {
    .gaceta-pagination-inner {
        grid-template-columns: 1fr 1fr;
        grid-template-areas:
            "prev next"
            "status status";
        row-gap: 0.75rem;
    }

    .gaceta-pagination-prev,
    .gaceta-pagination-next {
        justify-self: stretch;
        text-align: center;
    }
}
