/* ═══════════════════════════════════════════════════════════
   eSaver Branchenanalysen – CSS v1.2
   – Keine externen Fonts (DSGVO-konform)
   – Typografie proportional skaliert:
     Body 19px · H1 50px · H3/Section 36px
   – Background 100% · Content max 1400px
   – Vollständig responsiv
═══════════════════════════════════════════════════════════ */

/* ── DESIGN TOKENS ──────────────────────────────────────── */
:root {
    /* Farben */
    --ep-ink:         #231F20;
    --ep-ink-soft:    #707070;
    --ep-ink-muted:   #707070;
    --ep-paper:       #ffffff;
    --ep-paper-warm:  #F5F5F5;
    --ep-rule:        #DCE0DF;
    --ep-accent:      #FF9B00;
    --ep-accent-dim:  rgba(255,155,0,.12);
    --ep-ok:          #FF9B00;
    --ep-ok-dim:      rgba(255,155,0,.10);
    --ep-warn:        #FFB84D;
    --ep-warn-dim:    rgba(255,184,77,.12);
    --ep-blue:        #FF9B00;

    /*
     * FONTS: Keine externen Quellen (DSGVO-konform).
     * Schriftarten werden vom aktiven WP-Theme (GeneratePress) geerbt.
     * Einstellen unter: Appearance → Customize → Typography
     */
    --ep-ff-head: 'Poppins';
    --ep-ff-body: 'Poppins';
    --ep-ff-mono: ui-monospace, 'Cascadia Code', 'Segoe UI Mono',
                  'Roboto Mono', 'Oxygen Mono', 'Ubuntu Monospace',
                  'Source Code Pro', 'Fira Mono', 'Droid Sans Mono',
                  'Courier New', monospace;

    /* Typografie-Skala  (Basis: Body 19 · H1 50 · H3 36) */
    --ep-fs-body:    19px;   /* Fließtext                        */
    --ep-fs-small:   15px;   /* Nebentexte, Karten-Beschreibung  */
    --ep-fs-xs:      13px;   /* Mono-Labels, Badges, Tags        */
    --ep-fs-h1:      50px;   /* Hero-Titel                       */
    --ep-fs-h2:      36px;   /* Section-Titel                    */
    --ep-fs-h3:      28px;   /* Archiv-Karten, CTA               */
    --ep-fs-prose:   17px;   /* Prose-Blöcke, Tabellen, Opt.     */
    --ep-fs-verdict: 19px;   /* Verdict-Banner Titel             */
    --ep-fs-score:   28px;   /* Ring-Zahl                        */

    --ep-lh-body:  1.65;
    --ep-lh-head:  1.1;
    --ep-lh-tight: 1.3;

    --ep-content-max: 1400px;
    --ep-gutter:      clamp(16px, 3vw, 48px);
    --ep-radius:      4px;
}

/* ── BASIS-RESET ────────────────────────────────────────── */
#esaver-pruefbericht,
#esaver-archiv {
    font-family:            var(--ep-ff-body);
    font-size:              var(--ep-fs-body);
    color:                  var(--ep-ink);
    -webkit-font-smoothing: antialiased;
    line-height:            var(--ep-lh-body);
}
#esaver-pruefbericht *,
#esaver-archiv * { box-sizing: border-box; }

/* ── LAYOUT-HELFER ──────────────────────────────────────── */
.ep-container {
    max-width:     var(--ep-content-max);
    margin-left:   auto;
    margin-right:  auto;
    padding-left:  var(--ep-gutter);
    padding-right: var(--ep-gutter);
    width:         100%;
}

/* ════════════════════════════════════════════════════════
   SINGLE BRANCHE – PRÜFBERICHT
════════════════════════════════════════════════════════ */

/* ── HERO ────────────────────────────────────────────────── */
.ep-hero {
    background: var(--ep-ink);
    color: #fff;
    padding: 64px 0 52px;
    position: relative;
    overflow: hidden;
    width: 100%;
}
.ep-hero--has-image {
    background-image:    var(--ep-hero-bg);
    background-size:     cover;
    background-position: center;
    background-repeat:   no-repeat;
}
.ep-hero--has-image::after {
    content:  '';
    position: absolute;
    inset:    0;
    background: linear-gradient(
        to right,
        rgba(35,31,32,.92) 0%,
        rgba(35,31,32,.75) 50%,
        rgba(35,31,32,.55) 100%
    );
    pointer-events: none;
    z-index: 0;
}
.ep-hero--has-image .ep-container {
    position: relative;
    z-index:  1;
}
.ep-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(
        -55deg,
        transparent 0, transparent 38px,
        rgba(255,255,255,.022) 38px, rgba(255,255,255,.022) 39px
    );
    pointer-events: none;
}
.ep-hero .ep-container { position: relative; }

.ep-report-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--ep-ff-mono);
    font-size: var(--ep-fs-xs);
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--ep-accent);
    border: 1px solid rgba(255,155,0,.45);
    padding: 5px 13px;
    border-radius: 2px;
    margin-bottom: 20px;
}
.ep-report-badge::before {
    content: '';
    width: 7px; height: 7px;
    border-radius: 50%;
    background: var(--ep-accent);
    animation: ep-pulse 2s ease-in-out infinite;
    flex-shrink: 0;
}
@keyframes ep-pulse {
    0%,100% { opacity: 1; transform: scale(1); }
    50%      { opacity: .4; transform: scale(.7); }
}

.ep-category-tag {
    font-family: var(--ep-ff-mono);
    font-size: var(--ep-fs-xs);
    color: rgba(255,255,255,.4);
    letter-spacing: .06em;
    text-transform: uppercase;
    margin: 0 0 16px;
}

.ep-hero-title {
    font-family:    var(--ep-ff-head);
    font-size:      clamp(2rem, 4vw, var(--ep-fs-h1));
    font-weight:    600;
    line-height:    var(--ep-lh-head);
    letter-spacing: -.02em;
    margin:         0 0 28px;
    color:          #fff;
}
.ep-accent { color: var(--ep-accent); }

.ep-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 24px;
    padding-top: 20px;
    border-top: 1px solid rgba(255,255,255,.1);
}
.ep-hero-meta-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--ep-ff-mono);
    font-size: var(--ep-fs-xs);
    color: rgba(255,255,255,.5);
}
.ep-dot {
    width: 7px; height: 7px;
    border-radius: 50%;
    background: var(--ep-accent);
    flex-shrink: 0;
}

/* ── VERDICT BANNER ──────────────────────────────────────── */
.ep-verdict-banner {
    background: var(--ep-accent);
    color: #fff;
    padding: 20px 0;
    width: 100%;
}
.ep-verdict-inner {
    display: flex;
    align-items: flex-start;
    gap: 16px;
}
.ep-verdict-icon {
    width: 40px; height: 40px;
    border: 2px solid rgba(255,255,255,.5);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.1rem;
    flex-shrink: 0;
    margin-top: 2px;
}
.ep-verdict-text {
    font-family: var(--ep-ff-head);
    font-size:   var(--ep-fs-verdict);
    font-weight: 500;
    line-height: var(--ep-lh-tight);
}
.ep-verdict-text span {
    display:     block;
    font-family: var(--ep-ff-body);
    font-weight: 400;
    font-size:   var(--ep-fs-small);
    opacity:     .9;
    margin-top:  4px;
    line-height: var(--ep-lh-body);
}

/* ── SCORE STRIP ─────────────────────────────────────────── */
.ep-score-strip {
    background: var(--ep-paper-warm);
    border-bottom: 1px solid var(--ep-rule);
    padding: 28px 0;
    width: 100%;
}
.ep-score-grid {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 28px;
    align-items: center;
}
.ep-score-items {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1px;
    background: var(--ep-rule);
    border: 1px solid var(--ep-rule);
    border-radius: var(--ep-radius);
    overflow: hidden;
}
.ep-score-item {
    background: var(--ep-paper);
    padding: 18px 20px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.ep-s-label {
    font-family:    var(--ep-ff-mono);
    font-size:      var(--ep-fs-xs);
    letter-spacing: .06em;
    text-transform: uppercase;
    color:          var(--ep-ink-muted);
    line-height:    1.3;
}
.ep-s-bar-wrap {
    height: 5px;
    background: var(--ep-rule);
    border-radius: 3px;
    overflow: hidden;
}
.ep-s-bar {
    height: 100%;
    background: var(--ep-accent);
    border-radius: 3px;
}
.ep-s-val {
    font-family: var(--ep-ff-mono);
    font-size:   var(--ep-fs-small);
    font-weight: 600;
    color:       var(--ep-ink);
}

/* Score-Ring */
.ep-score-main { text-align: center; flex-shrink: 0; }
.ep-score-ring {
    width: 90px; height: 90px;
    position: relative;
    margin: 0 auto 8px;
}
.ep-score-ring svg {
    transform: rotate(-90deg) !important;
    display: block;
}
.ep-ring-track { fill: none; stroke: var(--ep-rule);   stroke-width: 6; }
.ep-ring-fill  {
    fill: none; stroke: var(--ep-accent); stroke-width: 6;
    stroke-linecap: round; stroke-dasharray: 283;
}
.ep-ring-label {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    line-height: 1;
}
.ep-ring-num {
    font-family: var(--ep-ff-head);
    font-size:   var(--ep-fs-score);
    font-weight: 700;
    line-height: 1;
    color:       var(--ep-ink);
    margin:      0;
    padding:     0;
    display:     block;
}
.ep-ring-unit {
    font-family:    var(--ep-ff-mono);
    font-size:      11px;
    color:          var(--ep-ink-muted);
    letter-spacing: .05em;
    margin:         3px 0 0 0;
    padding:        0;
    display:        block;
}
.ep-score-main-label {
    font-family:    var(--ep-ff-mono);
    font-size:      var(--ep-fs-xs);
    letter-spacing: .07em;
    text-transform: uppercase;
    color:          var(--ep-ink-muted);
}

/* ── REPORT BODY ─────────────────────────────────────────── */
.ep-report-body {
    background: var(--ep-paper);
    padding: 56px 0 90px;
    width: 100%;
}
.ep-report-layout {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 48px;
    align-items: start;
}

/* ── SECTIONS ────────────────────────────────────────────── */
.ep-section { margin-bottom: 64px; }

.ep-section-header {
    display:      flex;
    align-items:  center;
    gap:          14px;
    margin-bottom: 20px;
    padding-bottom: 0;
    border-bottom:  none;
    border-left:    4px solid var(--ep-accent);
    padding-left:   14px;
}
.ep-section-num {
    font-family:    var(--ep-ff-mono);
    font-size:      var(--ep-fs-xs);
    letter-spacing: .1em;
    color:          var(--ep-accent);
    background:     var(--ep-accent-dim);
    padding:        4px 9px;
    border-radius:  2px;
    flex-shrink:    0;
}
.ep-section-title {
    font-family:    var(--ep-ff-head);
    font-size:      var(--ep-fs-h2);
    font-weight:    500;
    letter-spacing: -.01em;
    color:          var(--ep-ink);
    margin:         0;
    line-height:    var(--ep-lh-head);
}

.ep-intro-text {
    font-size:   var(--ep-fs-body);
    line-height: var(--ep-lh-body);
    color:       var(--ep-ink-soft);
    margin:      0;
}

/* Verbraucher */
.ep-verbraucher-grid { display: flex; flex-wrap: wrap; gap: 8px; }
.ep-verbraucher-tag {
    display:      inline-flex;
    align-items:  center;
    gap:          9px;
    background:   var(--ep-paper-warm);
    border:       1px solid var(--ep-rule);
    border-radius: 2px;
    padding:      7px 14px;
    font-size:    var(--ep-fs-small);
    color:        var(--ep-ink-soft);
    transition:   border-color .15s, background .15s;
    cursor:       default;
}
.ep-verbraucher-tag:hover {
    border-color: var(--ep-accent);
    background:   var(--ep-accent-dim);
    color:        var(--ep-ink);
}
.ep-tag-num {
    font-family: var(--ep-ff-mono);
    font-size:   var(--ep-fs-xs);
    color:       var(--ep-ink-muted);
    flex-shrink: 0;
}

/* Lasten-Tabelle */
.ep-last-table {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid var(--ep-rule);
    border-radius: var(--ep-radius);
    overflow: hidden;
}
.ep-last-table tr { border-bottom: 1px solid var(--ep-rule); }
.ep-last-table tr:last-child { border-bottom: none; }
.ep-last-table td {
    padding:        13px 16px;
    font-size:      var(--ep-fs-prose);
    vertical-align: top;
    line-height:    var(--ep-lh-body);
}
.ep-last-table td:first-child {
    width:        44px;
    font-family:  var(--ep-ff-mono);
    font-size:    var(--ep-fs-xs);
    color:        var(--ep-ink-muted);
    background:   var(--ep-paper-warm);
    text-align:   center;
    border-right: 1px solid var(--ep-rule);
    white-space:  nowrap;
}
.ep-last-table tr:nth-child(odd)  td:last-child { background: var(--ep-paper); }
.ep-last-table tr:nth-child(even) td:last-child { background: var(--ep-paper-warm); }

/* Effekte */
.ep-effekt-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ep-effekt-card {
    display:      flex;
    gap:          12px;
    align-items:  flex-start;
    background:   var(--ep-warn-dim);
    border:       1px solid rgba(255,184,77,.3);
    border-radius: var(--ep-radius);
    padding:      14px 16px;
}
.ep-e-icon { font-size: 1.1rem; flex-shrink: 0; margin-top: 2px; }
.ep-e-text { font-size: var(--ep-fs-prose); color: var(--ep-ink-soft); line-height: var(--ep-lh-body); }

/* Prose */
.ep-prose-block {
    background:    var(--ep-paper);
    border:        1px solid var(--ep-rule);
    border-radius: var(--ep-radius);
    padding:       22px 26px;
    font-size:     var(--ep-fs-prose);
    line-height:   var(--ep-lh-body);
    color:         var(--ep-ink-soft);
}
.ep-prose-warn { background: var(--ep-warn-dim); border-color: rgba(255,184,77,.3); }
.ep-prose-ok   { background: var(--ep-ok-dim);   border-color: rgba(255,155,0,.25); }

/* Optimierungen */
.ep-optimierung-list {
    border: 1px solid var(--ep-rule);
    border-radius: var(--ep-radius);
    overflow: hidden;
}
.ep-optimierung-item {
    display:      flex;
    align-items:  center;
    gap:          16px;
    padding:      15px 18px;
    border-bottom: 1px solid var(--ep-rule);
    background:   var(--ep-paper);
    transition:   background .14s;
}
.ep-optimierung-item:last-child { border-bottom: none; }
.ep-optimierung-item:hover { background: var(--ep-ok-dim); }
.ep-opt-num {
    width:       30px; height: 30px;
    background:  var(--ep-accent);
    color:       #fff;
    border-radius: 50%;
    display:     flex; align-items: center; justify-content: center;
    font-family: var(--ep-ff-mono);
    font-size:   var(--ep-fs-xs);
    font-weight: 600;
    flex-shrink: 0;
}
.ep-opt-text { font-size: var(--ep-fs-prose); color: var(--ep-ink-soft); line-height: var(--ep-lh-body); }

/* ── SIDEBAR ─────────────────────────────────────────────── */
.ep-sidebar {
    display:        flex;
    flex-direction: column;
    gap:            36px;
    position:       sticky;
    top:            24px;
}
.ep-sidebar-card {
    background:    var(--ep-paper);
    border:        1px solid var(--ep-rule);
    border-radius: var(--ep-radius);
    overflow:      hidden;
}
.ep-sidebar-card-head {
    background:     var(--ep-ink);
    color:          #fff;
    padding:        11px 16px;
    font-family:    var(--ep-ff-mono);
    font-size:      var(--ep-fs-xs);
    letter-spacing: .08em;
    text-transform: uppercase;
}
.ep-head-accent { background: var(--ep-accent); color: #fff; }
.ep-head-ok     { background: var(--ep-ok);     color: #fff; }
.ep-sidebar-card-body { padding: 16px 18px; }

.ep-criteria-list,
.ep-relevanz-list { display: flex; flex-direction: column; gap: 10px; }

.ep-criteria-item,
.ep-relevanz-item {
    display:     flex;
    align-items: flex-start;
    gap:         10px;
    font-size:   var(--ep-fs-small);
    color:       var(--ep-ink-soft);
    line-height: var(--ep-lh-tight);
}
.ep-criteria-item::before {
    content:     '✓';
    color:       var(--ep-ok);
    font-weight: 700;
    font-size:   var(--ep-fs-small);
    flex-shrink: 0;
    margin-top:  1px;
}
.ep-relevanz-item::before {
    content:     '€';
    color:       var(--ep-blue);
    font-family: var(--ep-ff-mono);
    font-weight: 600;
    font-size:   var(--ep-fs-xs);
    flex-shrink: 0;
    margin-top:  2px;
}

/* Sidebar Score-Bars */
.ep-score-bars { display: flex; flex-direction: column; gap: 14px; }
.ep-score-bar-item { display: flex; flex-direction: column; gap: 6px; }
.ep-score-bar-header {
    display:         flex;
    justify-content: space-between;
    font-size:       14px;
    color:           var(--ep-ink-muted);
    font-family:     var(--ep-ff-mono);
}
.ep-score-bar-track { height: 5px; background: var(--ep-rule); border-radius: 3px; overflow: hidden; }
.ep-score-bar-fill  { height: 100%; border-radius: 3px; }
.ep-score-total-row {
    display:         flex;
    justify-content: space-between;
    align-items:     center;
    border-top:      1px solid var(--ep-rule);
    padding-top:     12px;
    margin-top:      6px;
}
.ep-score-total-row span:first-child {
    font-family:    var(--ep-ff-mono);
    font-size:      var(--ep-fs-xs);
    letter-spacing: .06em;
    text-transform: uppercase;
    color:          var(--ep-ink-muted);
}
.ep-score-total-num {
    font-family: var(--ep-ff-head);
    font-size:   26px;
    font-weight: 700;
    color:       var(--ep-accent);
}

/* CTA */
.ep-cta-card {
    background:    var(--ep-ink);
    color:         #fff;
    border-radius: var(--ep-radius);
    padding:       24px 18px;
    text-align:    center;
}
.ep-cta-card h4 {
    font-family: var(--ep-ff-head);
    font-size:   var(--ep-fs-h3);
    font-weight: 700;
    margin:      0 0 10px;
    color:       #fff;
    line-height: var(--ep-lh-tight);
}
.ep-cta-card p {
    font-size:   var(--ep-fs-small);
    opacity:     .7;
    margin:      0 0 18px;
    line-height: var(--ep-lh-body);
}
.ep-cta-btn {
    display:         block;
    background:      var(--ep-accent);
    color:           #fff;
    text-decoration: none;
    padding:         12px 20px;
    border-radius:   2px;
    font-family:     var(--ep-ff-head);
    font-weight:     700;
    font-size:       var(--ep-fs-small);
    transition:      opacity .15s;
}
.ep-cta-btn:hover { opacity: .85; color: #fff; }

.ep-back-link {
    display:         inline-block;
    font-family:     var(--ep-ff-mono);
    font-size:       14px;
    color:           var(--ep-ink-muted);
    text-decoration: none;
    letter-spacing:  .04em;
    padding:         4px 0;
    transition:      color .15s;
}
.ep-back-link:hover { color: var(--ep-accent); }

/* ════════════════════════════════════════════════════════
   ARCHIV
════════════════════════════════════════════════════════ */
.ep-archiv-hero {
    background: var(--ep-ink);
    color: #fff;
    padding: 60px 0 48px;
    width: 100%;
}
.ep-archiv-overline {
    font-family:    var(--ep-ff-mono);
    font-size:      var(--ep-fs-xs);
    letter-spacing: .1em;
    text-transform: uppercase;
    color:          var(--ep-accent);
    margin:         0 0 14px;
}
.ep-archiv-title {
    font-family:    var(--ep-ff-head);
    font-size:      clamp(2rem, 4vw, var(--ep-fs-h1));
    font-weight:    500;
    letter-spacing: -.025em;
    margin:         0 0 14px;
    color:          #fff;
    line-height:    var(--ep-lh-head);
}
.ep-archiv-sub {
    font-size:   18px;
    color:       rgba(255,255,255,.6);
    max-width:   600px;
    margin:      0;
    line-height: var(--ep-lh-body);
}
.ep-archiv-body { background: var(--ep-paper); padding: 52px 0 90px; width: 100%; }
.ep-archiv-group { margin-bottom: 52px; }
.ep-archiv-group-title {
    font-family:    var(--ep-ff-mono);
    font-size:      var(--ep-fs-small);
    letter-spacing: .1em;
    text-transform: uppercase;
    color:          var(--ep-ink);
    border-bottom:  1px solid var(--ep-rule);
    padding-bottom: 10px;
    margin:         0 0 22px;
}
.ep-archiv-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}
.ep-archiv-card {
    background:      var(--ep-paper);
    border:          1px solid var(--ep-rule);
    border-radius:   var(--ep-radius);
    display:         flex;
    flex-direction:  column;
    overflow:        hidden;
    text-decoration: none;
    color:           var(--ep-ink);
    transition:      border-color .15s, box-shadow .2s, transform .2s;
    position:        relative;
}
.ep-archiv-card::after {
    content:          '';
    display:          block;
    height:           3px;
    background:       var(--ep-accent);
    transform:        scaleX(0);
    transform-origin: left;
    transition:       transform .25s ease;
}
.ep-archiv-card:hover {
    border-color:    var(--ep-accent);
    box-shadow:      0 6px 24px rgba(0,0,0,.11);
    transform:       translateY(-3px);
    color:           var(--ep-ink);
    text-decoration: none;
}
.ep-archiv-card:hover::after { transform: scaleX(1); }

/* Bild-Bereich */
.ep-archiv-card-img,
.ep-archiv-card-placeholder {
    position:   relative;
    height:     160px;
    overflow:   hidden;
    flex-shrink: 0;
}
.ep-archiv-card-img {
    background: var(--ep-ink);
}
.ep-archiv-card-img img {
    width:      100%;
    height:     100%;
    object-fit: cover;
    opacity:    .78;
    display:    block;
    transition: opacity .3s, transform .4s;
}
.ep-archiv-card:hover .ep-archiv-card-img img {
    opacity:   .88;
    transform: scale(1.04);
}

/* Placeholder wenn kein Bild */
.ep-archiv-card-placeholder {
    background: linear-gradient(135deg, #2a2627 0%, #1a1718 100%);
}
.ep-archiv-card-placeholder::before {
    content:  '';
    position: absolute;
    inset:    0;
    background: repeating-linear-gradient(
        -55deg, transparent, transparent 20px,
        rgba(255,255,255,.018) 20px, rgba(255,255,255,.018) 21px
    );
}

/* Score-Badge über dem Bild */
.ep-archiv-card-score-badge {
    position:        absolute;
    top:             12px;
    right:           12px;
    background:      rgba(35,31,32,.82);
    backdrop-filter: blur(4px);
    border:          1px solid rgba(255,155,0,.4);
    border-radius:   3px;
    padding:         4px 10px;
    display:         flex;
    align-items:     baseline;
    gap:             3px;
    z-index:         1;
}
.ep-archiv-card-score-num {
    font-family: var(--ep-ff-head);
    font-size:   1.4rem;
    font-weight: 700;
    line-height: 1;
}
.ep-archiv-card-score-pts {
    font-family: var(--ep-ff-mono);
    font-size:   10px;
    color:       rgba(255,255,255,.5);
    letter-spacing: .04em;
}

/* Bericht-Nr. Badge */
.ep-archiv-card-id-badge {
    position:       absolute;
    bottom:         10px;
    left:           12px;
    font-family:    var(--ep-ff-mono);
    font-size:      11px;
    color:          rgba(255,255,255,.55);
    letter-spacing: .07em;
    z-index:        1;
}

/* Text-Body der Karte */
.ep-archiv-card-body {
    padding:        18px 20px 20px;
    display:        flex;
    flex-direction: column;
    gap:            5px;
    flex:           1;
}
.ep-archiv-card-kat   { font-family: var(--ep-ff-mono); font-size: var(--ep-fs-xs); color: var(--ep-ink-muted); margin: 0; }
.ep-archiv-card-title { font-family: var(--ep-ff-head); font-size: var(--ep-fs-h3); font-weight: 500; margin: 4px 0 0; line-height: var(--ep-lh-tight); color: var(--ep-ink); }
.ep-archiv-card-fazit { font-size: var(--ep-fs-small); color: var(--ep-ink-soft); margin: 6px 0 0; line-height: var(--ep-lh-body); flex: 1; }
.ep-archiv-card-link  {
    font-family:    var(--ep-ff-mono);
    font-size:      var(--ep-fs-xs);
    color:          var(--ep-accent);
    letter-spacing: .04em;
    margin-top:     12px;
    display:        inline-flex;
    align-items:    center;
    gap:            5px;
    transition:     gap .15s;
}
.ep-archiv-card-link::after      { content: '→'; }
.ep-archiv-card:hover .ep-archiv-card-link { gap: 9px; }

.ep-archiv-empty { color: var(--ep-ink-muted); font-size: var(--ep-fs-body); }
/* ════════════════════════════════════════════════════════
   RESPONSIVE
   1024px  Tablet Landscape
    768px  Tablet Portrait
    580px  Großes Smartphone
    480px  Mobile
    360px  Kleine Smartphones
════════════════════════════════════════════════════════ */

@media (max-width: 1024px) {
    .ep-report-layout { grid-template-columns: 1fr 260px; gap: 32px; }
    .ep-archiv-grid   { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 768px) {
    :root {
        --ep-fs-h1: 38px;
        --ep-fs-h2: 28px;
        --ep-fs-h3: 22px;
    }

    .ep-hero              { padding: 44px 0 36px; }
    .ep-score-grid        { grid-template-columns: 1fr; }
    .ep-score-main        { display: none; }
    .ep-report-layout     { grid-template-columns: 1fr; gap: 0; }

    .ep-sidebar {
        position:              static;
        display:               grid;
        grid-template-columns: 1fr 1fr;
        gap:                   16px;
        margin-top:            16px;
    }
    .ep-cta-card,
    .ep-back-link         { grid-column: 1 / -1; }

    .ep-effekt-grid       { grid-template-columns: 1fr; }
    .ep-archiv-grid       { grid-template-columns: repeat(2, 1fr); }
    .ep-archiv-hero       { padding: 40px 0 30px; }
    .ep-archiv-body       { padding: 36px 0 64px; }
    .ep-report-body       { padding: 40px 0 64px; }
}

@media (max-width: 580px) {
    .ep-score-items { grid-template-columns: repeat(2, 1fr); }
    .ep-sidebar     { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
    :root {
        --ep-gutter:  16px;
        --ep-fs-body: 17px;
        --ep-fs-h1:   30px;
        --ep-fs-h2:   24px;
        --ep-fs-h3:   20px;
    }

    .ep-hero              { padding: 32px 0 28px; }
    .ep-score-items       { grid-template-columns: 1fr; }
    .ep-score-strip       { padding: 16px 0; }
    .ep-effekt-card       { padding: 12px 14px; }
    .ep-prose-block       { padding: 16px 18px; }
    .ep-last-table td     { padding: 10px 12px; }
    .ep-optimierung-item  { padding: 12px 14px; }
    .ep-archiv-grid       { grid-template-columns: 1fr; }
    .ep-archiv-hero       { padding: 28px 0 24px; }
    .ep-archiv-body       { padding: 24px 0 52px; }
    .ep-report-body       { padding: 28px 0 52px; }
}

@media (max-width: 360px) {
    :root {
        --ep-fs-h1: 26px;
        --ep-fs-h2: 22px;
    }
    .ep-report-badge  { font-size: 11px; padding: 4px 10px; }
    .ep-verdict-icon  { width: 32px; height: 32px; font-size: .9rem; }
    .ep-archiv-card   { padding: 16px 18px; }
}

/* ════════════════════════════════════════════════════════
   GENERATEPRESS – VOLLSTÄNDIGER LAYOUT-RESET
════════════════════════════════════════════════════════ */

body.esaver-single-branche  .site,
body.esaver-archiv-branchen .site,
body.esaver-single-branche  .grid-container,
body.esaver-archiv-branchen .grid-container,
body.esaver-single-branche  .site-content,
body.esaver-archiv-branchen .site-content,
body.esaver-single-branche  .content-area,
body.esaver-archiv-branchen .content-area,
body.esaver-single-branche  .site-main,
body.esaver-archiv-branchen .site-main {
    max-width: 100% !important;
    width:     100% !important;
    padding:   0    !important;
    margin:    0    !important;
}

body.esaver-single-branche  article,
body.esaver-archiv-branchen article,
body.esaver-single-branche  .inside-article,
body.esaver-archiv-branchen .inside-article,
body.esaver-single-branche  .post,
body.esaver-archiv-branchen .post,
body.esaver-single-branche  .type-branche,
body.esaver-archiv-branchen .type-branche {
    max-width: 100% !important;
    width:     100% !important;
    padding:   0    !important;
    margin:    0    !important;
    float:     none !important;
}

body.esaver-single-branche  .inside-full-width-content,
body.esaver-archiv-branchen .inside-full-width-content,
body.esaver-single-branche  .entry-content,
body.esaver-archiv-branchen .entry-content {
    max-width: 100% !important;
    padding:   0    !important;
    margin:    0    !important;
}

#esaver-pruefbericht,
#esaver-archiv {
    width:     100%;
    max-width: 100%;
    margin:    0;
    padding:   0;
    display:   block;
}

body.admin-bar .ep-sidebar { top: 56px; }
@media (max-width: 782px) {
    body.admin-bar .ep-sidebar { top: 0; }
}
