/*
Theme Name: GeneratePress Child
Theme URI: https://generatepress.com
Template: generatepress
Author: Tom Usborne
Author URI: https://generatepress.com/about
Description: GeneratePress is a lightweight WordPress theme built with a focus on speed and usability.
Version: 3.6.0.1763029272
Updated: 2025-11-13 11:21:12
*/

/* ============================================================
   Allgemein
   ============================================================ */

.site-info { display: none; }

p { hyphens: auto; }


/* ============================================================
   PLZ-Formular (Shop-Startseite)
   ============================================================ */

.plz-form-wrapper {
    display: flex;
    gap: 1rem;
    align-items: center;
    width: 100%;
}

.plz-input,
.plz-button {
    width: 50%;
    height: 3rem;
    box-sizing: border-box;
}

.plz-input::placeholder {
    color: #1a1a18;
    font-size: 1rem;
}

.plz-input {
    background-color: #ffffff !important;
    text-align: center;
    color: #1a1a18;
    border: 1px solid #1a1a18 !important;
    border-radius: 5px;
    padding: 0 1rem;
}

.plz-button {
    background-color: #ffe62d !important;
    font-weight: 600 !important;
    border: none !important;
    border-radius: 35px;
    cursor: not-allowed !important;
    transition: background-color 0.3s ease;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.visually-hidden {
    position: absolute !important;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

.plz-button[disabled] {
    background-color: #ffe62d !important;
    color: black !important;
    cursor: not-allowed !important;
}

.plz-button:not([disabled]) {
    background-color: #ffe62d !important;
    color: black !important;
}

.plz-button:hover:not([disabled]) {
    background-color: #444f54 !important;
    color: white !important;
    cursor: pointer !important;
}

@media (max-width: 768px) {
    .plz-form-wrapper {
        flex-direction: column;
        gap: 0.59rem;
    }
    .plz-input,
    .plz-button {
        width: 100% !important;
        max-width: none;
    }
}


/* ============================================================
   USP / Feature-Liste (Hero)
   ============================================================ */

.feature-list {
    display: flex;
    flex-direction: column;
    gap: 0.8em;
}

.feature-item {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: nowrap;
}

.feature-icon {
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
}

.feature-text {
    margin: 0;
    font-size: 1em;
    line-height: 1.35;
    flex: 1 1 auto;
}


/* ============================================================
   Öffnungszeiten (ACF)
   ============================================================ */

.bs-opening-hours {
    list-style: none;
    margin: 0;
    padding: 0;
}

.bs-opening-hours__item {
    display: flex;
    gap: 0.5rem;
}

.bs-opening-hours__day {
    display: inline-block;
    min-width: 6.5rem;
    flex-shrink: 0;
}

.bs-opening-hours__time,
.bs-opening-hours__closed {
    flex: 1 1 auto;
}


/* ============================================================
   Bewertungen (mu-plugin)
   ============================================================ */

.mammut-all-reviews { display: flow-root; }
.mammut-all-reviews :last-child { margin-bottom: 0; }


/* ============================================================
   Kontaktdaten
   ============================================================ */

.contact-grid {
    display: grid;
    grid-template-columns: max-content 1fr;
    column-gap: 1rem;
    row-gap: 0.35rem;
    align-items: baseline;
}

.contact-grid > p:first-child {
    grid-column: 1 / -1;
    margin: 0 0 0.25rem 0;
    font-weight: 400;
}

.contact-grid .contact-label { white-space: nowrap; font-weight: 400; }
.contact-grid .contact-value { font-weight: 400; word-break: break-word; }


/* ============================================================
   Landingpage – Leistungskarten
   ============================================================ */

.lp-cards {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
}

.lp-cards .lp-card {
    flex: 0 0 calc(33.333% - 2rem * 2 / 3);
    min-width: 0;
    background: #ffffff;
    border: 0.059rem solid #b2b2be;
    border-radius: 0.471rem;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

@media (max-width: 768px) {
    .lp-cards .lp-card {
        flex: 0 0 100%;
    }
}


/* ============================================================
   Landingpage – Trust / Zertifikate
   ============================================================ */

.lp-trust {
    padding: 2rem 0;
}

.lp-trust h2 {
    margin-bottom: 0.412rem;
}

.lp-trust p {
    max-width: 40rem;
    margin-bottom: 1.5rem;
}

.lp-cert-row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.824rem;
}

.lp-cert-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.412rem;
    flex: 0 0 auto;
}

.lp-cert-link {
    display: block;
    border: 0.059rem solid #d8dfe8;
    border-radius: 0.471rem;
    padding: 0.647rem;
    background: #ffffff;
}

.lp-cert-link:hover {
    border-color: #1a2e48;
}

.lp-cert-link img {
    display: block;
    width: 7.882rem;
    height: 7.882rem;
    object-fit: contain;
}

.lp-cert-label {
    font-size: 0.588rem;
    color: inherit;
    text-align: center;
    max-width: 7.882rem;
    line-height: 1.4;
}

@media (max-width: 768px) {
    .lp-cert-row {
        justify-content: center;
    }
}


/* ============================================================
   Landingpage – Behältertabelle Desktop / Mobile
   ============================================================ */

.lp-bt-wrap table {
    width: 100%;
    border-collapse: collapse;
    border: 0.059rem solid #d8dfe8;
    table-layout: fixed;
}

.lp-bt-wrap th,
.lp-bt-wrap td           { padding: 0.647rem 0.706rem; }
.lp-bt-wrap th           { border-bottom: 0.059rem solid #d8dfe8; background: #f4f5f7;
                            font-size: 1rem; font-weight: 700; text-transform: uppercase;
                            letter-spacing: 0.04rem; color: #595959; text-align: left; }
.lp-bt-wrap td           { border-bottom: 0.059rem solid #d8dfe8; vertical-align: middle; }
.lp-bt-wrap tr:last-child td { border-bottom: none; }
.lp-bt-wrap td:first-child,
.lp-bt-wrap th:first-child   { width: 8rem; }
.lp-bt-wrap .lp-bt-label { font-size: 1rem; font-weight: 700; color: #595959; }
.lp-bt-wrap .lp-bt-vol   { font-size: 0.882rem; font-weight: 700; color: #1a2e48; }
.lp-bt-wrap .lp-bt-val   { font-size: 0.882rem; }
.lp-bt-wrap .lp-bt-note  { font-size: 0.882rem; color: #595959; }
.lp-bt-wrap .lp-bt-note-hot { font-size: 0.882rem; font-weight: 700; color: #e41b13; }
.lp-bt-wrap img          { display: block; width: 3.5rem; height: 3.5rem;
                            object-fit: contain; margin: 0 auto; }
.lp-bt-footer            { display: flex; align-items: center; gap: 0.412rem;
                            font-size: 0.824rem; color: #595959;
                            margin-top: 0.706rem; padding-top: 0.706rem;
                            border-top: 0.059rem solid #d8dfe8; }

.lp-mob-wrap             { display: none; }

@media (max-width: 768px) {
    .lp-bt-wrap  { display: none; }
    .lp-mob-wrap { display: grid; gap: 0.706rem; }
}
@media (min-width: 769px) {
    .lp-bt-wrap  { display: block; }
    .lp-mob-wrap { display: none; }
}


/* ============================================================
   Landingpage – Behälter Mobile Karten
   ============================================================ */

.lp-mob-card             { border: 0.059rem solid #d8dfe8; border-radius: 0.353rem; overflow: hidden; }
.lp-mob-card-header      { display: flex; align-items: center; gap: 0.706rem; padding: 0.706rem 0.882rem; background: #f4f5f7; border-bottom: 0.059rem solid #d8dfe8; }
.lp-mob-card-header img  { width: 2.5rem; height: 2.5rem; object-fit: contain; flex-shrink: 0; }
.lp-mob-card-header span { font-size: 1rem; font-weight: 700; color: #1a2e48; }
.lp-mob-card-row         { display: flex; justify-content: space-between; padding: 0.471rem 0.882rem; font-size: 0.824rem; border-bottom: 0.059rem solid #f0f0f0; }
.lp-mob-card-row:last-of-type { border-bottom: none; }
.lp-mob-card-row span:first-child { color: #595959; font-weight: 700; }
.lp-mob-card-note        { font-size: 0.765rem; color: #595959; padding: 0.353rem 0.882rem 0.588rem; }
.lp-mob-card-note-hot    { font-size: 0.765rem; font-weight: 700; color: #e41b13; padding: 0.353rem 0.882rem 0.588rem; }


/* ============================================================
   Landingpage – Featured Product (240L)
   ============================================================ */

.lp-fp-body {
    display: grid;
    grid-template-columns: 1fr 13rem;
}

@media (max-width: 768px) {
    .lp-fp-body {
        grid-template-columns: 1fr;
    }
}


/* ============================================================
   Landingpage – Bewertungsseite Grid
   ============================================================ */

.lp-bew-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    align-items: start;
}

@media (max-width: 768px) {
    .lp-bew-grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
}


/* ============================================================
   Bewertungssterne
   ============================================================ */

.lp-stars {
    color: #a36b00;
    letter-spacing: 0.1rem;
}


/* ============================================================
   Landingpage – Kontaktblock
   ============================================================ */

.lp-contact-grid {
    background: #ffffff;
    border: 0.059rem solid #d8dfe8;
    border-radius: 0.471rem;
    overflow: hidden;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
}

@media (max-width: 768px) {
    .lp-contact-grid {
        grid-template-columns: 1fr;
        border-left: 0.235rem solid #009ee3;
    }
    .lp-contact-grid > div {
        border-left: none !important;
        border-right: none !important;
        border-top: 0.059rem solid #d8dfe8;
    }
    .lp-contact-grid > div:first-child {
        border-top: none;
    }
}


/* ============================================================
   Landingpage – FAQ
   ============================================================ */

details.lp-faq {
    border: 0.059rem solid #d8dfe8;
    border-radius: 0.471rem;
    background: #ffffff;
    overflow: hidden;
    margin-bottom: 3rem;
}

details.lp-faq summary {
    padding: 1rem 1.176rem;
    font-weight: 700;
    cursor: pointer;
    list-style: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
}

details.lp-faq summary::-webkit-details-marker { display: none; }

details.lp-faq summary::after {
    content: "+";
    font-size: 1.294rem;
    font-weight: 400;
    color: #595959;
    flex-shrink: 0;
}

details.lp-faq[open] summary::after { content: "−"; }

.lp-faq-body {
    padding: 0.882rem 1.176rem 1rem;
    font-size: 0.882rem;
    color: #595959;
    line-height: 1.7;
    border-top: 0.059rem solid #d8dfe8;
}


/* ============================================================
   Landingpage – Ablauf-Block
   ============================================================ */

.lp-ablauf { display: flex !important; }

.lp-ablauf-linie {
    position: absolute;
    top: 1.294rem;
    left: 1.294rem;
    right: 1.294rem;
    height: 0.059rem;
    background: #d8dfe8;
    z-index: 0;
}

.lp-ablauf-schritt {
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    gap: 0.706rem;
    position: relative;
    z-index: 1;
    padding: 0 0.5rem;
}

@media (max-width: 768px) {
    .lp-ablauf {
        flex-direction: column;
        gap: 1.5rem;
    }
    .lp-ablauf-linie {
        display: none;
    }
    .lp-ablauf-schritt {
        flex-direction: row;
        text-align: left;
        align-items: flex-start;
        padding: 0;
        gap: 1rem;
    }
    .lp-ablauf-schritt > div:first-child {
        flex-shrink: 0;
    }
}


/* ============================================================
   Landingpage – Gemeinde-Grid (Landkreis)
   ============================================================ */

.lp-gmd-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

@media (max-width: 768px) {
    .lp-gmd-grid {
        grid-template-columns: 1fr;
    }
}


/* ============================================================
   Landingpage – Bewertungen Akkordeon
   ============================================================ */

details.lp-reviews {
    border: 0.059rem solid #d8dfe8;
    border-radius: 0.471rem;
    background: #ffffff;
    overflow: hidden;
}

details.lp-reviews summary {
    padding: 1rem 1.5rem;
    cursor: pointer;
    list-style: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-weight: 700;
    font-size: 1rem;
}

details.lp-reviews summary::-webkit-details-marker { display: none; }

details.lp-reviews summary::after {
    content: "+";
    font-size: 1.294rem;
    font-weight: 400;
    color: #595959;
    flex-shrink: 0;
}

details.lp-reviews[open] summary::after { content: "−"; }

.lp-reviews-content {
    padding: 1.5rem;
    border-top: 0.059rem solid #d8dfe8;
}