/* === Luchs Bayern design tokens — DO NOT EDIT INSIDE THIS BLOCK MANUALLY === */
/* Managed via DiviOps token migration (Phase 1). Brand colors mirror the gcid */
/* global colors and are exposed at :root so non-Divi-rendered surfaces        */
/* (child-theme CSS, plugin pages like wpdmpro) can reference them too.        */
:root {
  /* brand */
  --brand-petrol:      #455d5c;
  --brand-petrol-light:#95a3a2;
  --brand-rust:        #c6611e;
  --brand-rust-hover:  #ad5316;
  --brand-sand:        #e9bc8b;
  --brand-beige:       #f2e1cb;
  --brand-paper:       #f6e7da;
  --brand-h2:          #a7712a;
  --brand-h3:          #cc8a33;
  --surface-teaser:    #eee1c4;
  --neutral-200:       #dee1e2;
  --ink-body:          #515151;
  /* spacing scale (mirrors gvid spacing variables) */
  --sp-xs:  8px;
  --sp-sm:  16px;
  --sp-md:  24px;
  --sp-lg:  40px;
  --sp-xl:  64px;
  --sp-2xl: 96px;
  /* radius scale */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 16px;
}
/* === end Luchs Bayern design tokens === */
/**
 * Theme Name:     Divi Child
 * Author:         Julius Kramer
 * Template:       Divi
 * Text Domain:	   divi-child
 * Description:    Overwrites für Luchs Bayern
 */

/* ============================================================
   Infomaterial — list rows (added 2026-06)
   Used by:
     - Page /infomaterial/ (3-4 group sections)
     - WPDM template link-template-luchs-row.php
   Colors are read from the Divi customizer/global palette
   (gcid-* CSS custom properties) — no hard-coded brand values.
   ============================================================ */
.lb-info-list { max-width: 1080px; margin: 0; }

/* Jump-link chip row */
.lb-info-jump {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    max-width: 1080px;
    margin: 24px 0 0;
}
.lb-jump {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: 'Open Sans', system-ui, sans-serif;
    font-size: .9375rem;
    font-weight: 600;
    color: var(--brand-petrol) !important;
    background: transparent;
    border: 1.5px solid var(--brand-petrol);
    padding: 9px 16px;
    text-decoration: none;
    transition: background .16s ease, color .16s ease;
    line-height: 1.2;
    border-radius: 0;
    cursor: pointer;
}
.lb-jump svg { width: 14px; height: 14px; flex: none; }
.lb-jump:hover,
.lb-jump:focus {
    background: var(--brand-petrol);
    color: #fff !important;
    border-color: var(--brand-petrol);
}

/* Anchor offset so the section heading isn't hidden behind the sticky header */
.lb-info-list .lb-grp { scroll-margin-top: 96px; }

.lb-info-list .lb-grp {
    display: flex;
    align-items: baseline;
    gap: 14px;
    margin: 40px 0 4px;
}
.lb-info-list .lb-grp:first-of-type { margin-top: 24px; }
.lb-info-list .lb-grp h2 {
    font-family: 'Open Sans', system-ui, sans-serif;
    font-size: 1.333rem;
    font-weight: 600;
    margin: 0;
    color: var(--brand-petrol);
}
.lb-info-list .lb-grp__count {
    font-family: 'Open Sans', system-ui, sans-serif;
    font-size: .833rem;
    color: var(--gcid-2761a961-e6f0-467f-bdf5-882e27a26903);
}
.lb-info-list .lb-grp__rule {
    flex: 1;
    height: 1px;
    background: var(--gcid-ec04f7f0-339b-4e73-bbd1-eb47efb23a56);
}

.lb-row {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 18px 12px;
    border-bottom: 1px solid var(--gcid-ec04f7f0-339b-4e73-bbd1-eb47efb23a56);
    transition: background .16s ease;
}
.lb-row:hover { background: rgba(255,255,255,.4); }
.lb-row:last-child { border-bottom: 0; }

.lb-chip {
    width: 58px;
    height: 78px;
    flex: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    border: 1px solid var(--gcid-0858369f-15a3-4d69-aeed-513defc84dda);
    background: rgba(246, 231, 218, 0.35);
    text-decoration: none;
}
.lb-chip svg {
    width: 21px;
    height: 21px;
    color: var(--brand-h2);
}
.lb-chip__ext {
    font-family: 'Open Sans', system-ui, sans-serif;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: .08em;
    color: var(--brand-rust);
}
.lb-chip--news {
    background: rgba(69, 93, 92, 0.08);
    border-color: rgba(69, 93, 92, 0.25);
}
.lb-chip--news svg,
.lb-chip--news .lb-chip__ext {
    color: var(--brand-petrol);
}

.lb-row__body { flex: 1; min-width: 0; }
.lb-row__title {
    font-family: 'Open Sans', system-ui, sans-serif;
    font-size: 1.333rem;
    font-weight: 600;
    color: var(--brand-petrol);
    text-decoration: none;
    display: block;
    margin-bottom: 3px;
    line-height: 1.2;
}
.lb-row__title:hover { color: var(--brand-rust); }
.lb-row__desc {
    font-size: .875rem;
    color: var(--gcid-2761a961-e6f0-467f-bdf5-882e27a26903);
    line-height: 1.6;
    margin: 0 0 6px;
    max-width: 64ch;
}
.lb-row__meta {
    font-family: 'Open Sans', system-ui, sans-serif;
    font-size: .833rem;
    color: var(--gcid-2761a961-e6f0-467f-bdf5-882e27a26903);
}

.lb-row__btn {
    flex: none;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: 'Open Sans', system-ui, sans-serif;
    font-size: .9375rem;
    font-weight: 600;
    cursor: pointer;
    border: 1.5px solid var(--brand-petrol);
    background: transparent;
    color: var(--brand-petrol);
    padding: 9px 16px;
    text-decoration: none;
    transition: background .16s ease, color .16s ease;
    border-radius: 0;
}
.lb-row__btn svg { width: 15px; height: 15px; }
.lb-row__btn:hover {
    background: var(--brand-petrol);
    color: #fff;
}

/* Force readable text colors that survive Divi's mobile/tablet bg_layout
   overrides (et_pb_bg_layout_dark_phone {color:#fff !important}). */
.lb-row__title { color: var(--brand-petrol) !important; }
.lb-row__desc { color: var(--ink-body) !important; }
.lb-row__meta { color: var(--gcid-2761a961-e6f0-467f-bdf5-882e27a26903) !important; }

@media (max-width: 720px) {
    .lb-row {
        flex-wrap: wrap;
        gap: 12px 14px;
        padding: 14px 0;
        align-items: flex-start;
    }
    .lb-chip { width: 48px; height: 64px; }
    .lb-row__body {
        /* Take all width after the chip (48px chip + 14px gap = 62px) */
        flex: 1 1 calc(100% - 62px);
        min-width: 0;
    }
    .lb-row__btn {
        /* Drop to its own row, full-width, centered */
        width: 100%;
        margin-left: 0;
        justify-content: center;
    }
}

/* ============================================================
   Download Detail Page (added 2026-06)
   Rendered by: child theme WPDM template
     wp-content/themes/divi-child/download-manager/page-template-default-simplified.php
   ============================================================ */
.dl-main { max-width: 1080px; margin: 0 auto; }
.dl-wrap { padding: 8px 0 40px; }

.dl-back {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-family: 'Open Sans', system-ui, sans-serif;
    font-size: .9375rem;
    font-weight: 600;
    color: var(--gcid-2761a961-e6f0-467f-bdf5-882e27a26903);
    text-decoration: none;
    margin-bottom: 28px;
    line-height: 1;
}
.dl-back:hover { color: var(--brand-petrol); }

.dl-grid {
    display: grid;
    grid-template-columns: 0.78fr 1fr;
    gap: 48px;
    align-items: start;
}

/* Aside: cover + specs + actions */
.dl-aside { display: flex; flex-direction: column; gap: 20px; }

.dl-cover {
    position: relative;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    background: var(--brand-petrol);
    box-shadow: 0 12px 28px rgba(24,34,31,.12), 0 4px 8px rgba(24,34,31,.06);
}
.dl-cover img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Specs panel — square, list of key/value rows */
.dl-specs {
    background: #fff;
    border: 1px solid var(--gcid-ec04f7f0-339b-4e73-bbd1-eb47efb23a56);
    padding: 6px 18px;
}
.dl-specs__r {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 0;
    border-bottom: 1px solid var(--gcid-ec04f7f0-339b-4e73-bbd1-eb47efb23a56);
}
.dl-specs__r:last-child { border-bottom: 0; }
.dl-specs__k {
    font-family: 'Open Sans', system-ui, sans-serif;
    font-size: .9375rem;
    color: var(--gcid-2761a961-e6f0-467f-bdf5-882e27a26903);
}
.dl-specs__v {
    font-family: 'Open Sans', system-ui, sans-serif;
    font-size: .9375rem;
    color: var(--brand-petrol);
    font-weight: 500;
}

/* Buttons */
.dl-actions { display: flex; flex-direction: column; gap: 12px; }
.dl-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    font-family: 'Open Sans', system-ui, sans-serif;
    font-weight: 600;
    font-size: 1.125rem;
    padding: 15px 20px;
    cursor: pointer;
    border: 1.5px solid transparent;
    text-decoration: none;
    transition: background .16s ease, color .16s ease, border-color .16s ease;
    border-radius: 0;
    line-height: 1.2;
}
/* Bumped specificity + !important: Divi's #left-area a:hover overrides
   plain :hover rules (turns links white), which made the white-on-orange
   button go white-on-white on hover. */
a.dl-btn--accent,
.dl-actions a.dl-btn--accent {
    background: var(--brand-rust) !important;
    color: #fff !important;
    border-color: var(--brand-rust) !important;
}
a.dl-btn--accent:hover,
a.dl-btn--accent:focus,
.dl-actions a.dl-btn--accent:hover,
.dl-actions a.dl-btn--accent:focus {
    background: var(--brand-h2) !important;
    border-color: var(--brand-h2) !important;
    color: #fff !important;
}
a.dl-btn--secondary,
.dl-actions a.dl-btn--secondary {
    background: transparent !important;
    color: var(--brand-petrol) !important;
    border-color: var(--brand-petrol) !important;
}
a.dl-btn--secondary:hover,
a.dl-btn--secondary:focus {
    background: var(--brand-petrol) !important;
    color: #fff !important;
}

/* Right column: title + body */
.dl-content > * { max-width: 64ch; }
.dl-title {
    font-family: 'Open Sans', system-ui, sans-serif;
    font-size: 2.3em;
    font-weight: 600;
    color: var(--brand-petrol);
    line-height: 1.08;
    margin: 0 0 22px;
    letter-spacing: -.02em;
}
.dl-body { color: var(--gcid-body-color); }
.dl-body p {
    font-size: 1.125rem;
    line-height: 1.72;
    margin: 0 0 16px;
}
.dl-body h3, .dl-body h2 {
    font-family: 'Open Sans', system-ui, sans-serif;
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--brand-petrol);
    margin: 28px 0 16px;
}
.dl-body ul {
    list-style: none;
    padding: 0;
    margin: 0 0 28px;
    display: flex;
    flex-direction: column;
    gap: 13px;
}
.dl-body ul li {
    position: relative;
    padding-left: 30px;
    font-size: 1rem;
    line-height: 1.6;
}
.dl-body ul li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 4px;
    width: 19px;
    height: 19px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23455d5c' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: contain;
}

.dl-quote {
    font-family: 'Open Sans', system-ui, sans-serif;
    font-size: 1.5rem;
    font-weight: 300;
    line-height: 1.3;
    color: var(--brand-petrol);
    border-left: 3px solid var(--brand-rust);
    padding: 6px 0 6px 24px;
    margin: 0 0 24px;
}
.dl-imprint {
    font-size: .9375rem;
    color: var(--gcid-2761a961-e6f0-467f-bdf5-882e27a26903);
    margin: 0;
    line-height: 1.6;
}

@media (max-width: 820px) {
    .dl-grid { grid-template-columns: 1fr; gap: 32px; }
    .dl-aside { max-width: 480px; }
    .dl-title { font-size: 2rem; }
}

/* WPDM single page — let our template own the layout.
   Hide Divi's default <h1 entry-title>, post-meta, and full-width featured image
   that get inserted above the content; hide the sidebar; make content full-width.
   Our template provides its own title via .dl-title and its own cover via .dl-cover. */
body.single-wpdmpro .et_post_meta_wrapper { display: none !important; }
body.single-wpdmpro #left-area,
body.single-wpdmpro .et_pb_extra_column_main,
body.single-wpdmpro #main-content .container > .et_pb_extra_column_main {
    width: 100% !important;
    padding-right: 0 !important;
    float: none !important;
}
body.single-wpdmpro #sidebar { display: none !important; }
/* Divi's default layout draws a 1 px vertical separator between #left-area and
   #sidebar via #main-content .container::before. With the sidebar removed, the
   line lingers as a faint stripe down the page — kill it on wpdmpro. */
body.single-wpdmpro #main-content .container::before,
body.single-wpdmpro #main-content .container::after,
body.single-wpdmpro #content-area::before,
body.single-wpdmpro #content-area::after { display: none !important; content: none !important; }
/* The default Divi article wrapper adds its own padding-bottom that's not needed
   when our template provides the spacing. */
body.single-wpdmpro article.et_pb_post { padding-bottom: 0 !important; }

/* === Homepage: hero behind transparent menu === */
.home .et_pb_section_2_tb_header {
  background-color: transparent !important;
}
.home .et_pb_section_2_tb_header > .et_pb_bottom_inside_divider {
  display: none !important;
}
.home .et_pb_section_0 {
  margin-top: -95px !important;
  position: relative;
  z-index: 1;
  width: 100% !important;
}
@media (max-width: 980px) {
  .home .et_pb_section_0 {
    margin-top: -65px !important;
  }
}
/* === end Homepage hero === */

/* Bibliothek book table — gleiche Bildbreite für alle Cover */
.infomaterial-table td.thumb img {
    width: 165px;
    max-width: 165px;
    height: auto;
}
/* Mobile: Cover über den Text stapeln statt schmale 2-Spalten-Quetschung */
@media (max-width: 600px) {
    .infomaterial-table,
    .infomaterial-table tbody,
    .infomaterial-table tr,
    .infomaterial-table td {
        display: block;
        width: 100%;
    }
    .infomaterial-table tr { margin-bottom: 28px; }
    .infomaterial-table td.thumb {
        text-align: center;
        margin-bottom: 12px;
    }
    .infomaterial-table td.thumb img {
        width: 140px;
        max-width: 140px;
    }
}

/* Weite-Wege-Toggle: nur das eigene Pfoten-PNG zeigen,
   den zusätzlichen FontAwesome-Pfoten-Glyph (\f1b0) unterdrücken.
   Höhere Spezifität als die Divi-Modul/Preset-Regeln, daher gewinnt content:''. */
.et_pb_toggle.et_pb_toggle_item.et_pb_toggle_close.preset--module--divi-toggle--default .et_pb_toggle_title:before,
.et_pb_toggle.et_pb_toggle_item.et_pb_toggle_open.preset--module--divi-toggle--default .et_pb_toggle_title:before {
    content: '' !important;
    font-family: inherit !important;
}

/* "Nach oben" link nach jeder Infomaterial-Sektion */
.lb-top {
    margin: 10px 0 0;
    text-align: right;
}
.lb-top a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: 'Open Sans', system-ui, sans-serif;
    font-size: .833rem;
    font-weight: 600;
    color: var(--brand-petrol);
    text-decoration: none;
}
.lb-top a:hover { color: var(--brand-rust); }
