 .col-lg-7 .shop-single-item-photos {
    max-width: 100%;
    max-height: 100%;
    overflow: hidden; /* Keep the overall div content hidden if it overflows */
    box-sizing: border-box; /* Ensures padding and border are included in the element's total width and height */
}

.shop-single-item-gallery {
    display: flex; /* Use flex layout */
    flex-wrap: wrap; /* Allow items to wrap within the container */
    max-width: 100%;
    max-height: 100%; /* Set a fixed height for the ul to ensure it scrolls if content overflows */
    overflow-y: auto; /* Enable vertical scrolling if content overflows */
    list-style-type: none; /* Remove default list styles */
    padding: 0;
    margin: 0;
}

.shop-single-item-gallery li {
    flex: 1 1 auto; /* Ensure items take up available space */
    padding: 5px; /* Add spacing as needed */
}

.shop-single-item-gallery li img {
    width: 100%; /* Ensure images take up full width of their parent li */
    height: auto; /* Maintain aspect ratio */
    display: block;
}

/* ---- Bild-und-Text-Block ---- */

.bild-und-text-overline {
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: 13px;
    font-weight: 600;
    color: #054939;
    margin-bottom: 10px;
}

.bild-und-text h2 {
    font-weight: 600;
}

.bild-und-text-bild {
    position: relative;
}

.bild-und-text-bild img {
    width: 100%;
    height: auto;
    display: block;
}

.bild-und-text-akzent {
    position: absolute;
    left: 20px;
    bottom: 20px;
    max-width: 65%;
    background: rgba(5, 73, 57, 0.9);
    color: #fff;
    padding: 20px 25px;
}

.bild-und-text-akzent h3 {
    font-size: 20px;
    font-weight: 600;
    margin-bottom: 8px;
    color: #fff;
}

.bild-und-text-akzent div {
    font-size: 14px;
    line-height: 1.5;
}

/* Auf schmalen Bildschirmen die Akzentbox unter statt über das Bild legen,
   damit der Text nicht auf dem Foto zerquetscht wird. */
@media (max-width: 767px) {
    .bild-und-text-akzent {
        position: static;
        max-width: none;
        margin-top: 15px;
    }
}

/* ---- Karten-Reihe-Block ---- */

.karten-reihe-titel {
    margin-bottom: 40px;
}

.karten-reihe-spalte {
    margin-bottom: 30px;
}

.karte-bild img {
    width: 100%;
    height: auto;
    display: block;
    margin-bottom: 15px;
}

.karte-titel {
    font-weight: 600;
    font-size: 18px;
    margin-bottom: 10px;
}

.karte-titel a {
    color: inherit;
}

.karte-text {
    font-size: 14px;
    line-height: 1.5;
    color: #505455;
}

.karte-preis {
    font-weight: 600;
    color: #054939;
    margin-top: 10px;
}

@media (max-width: 767px) {
    .karten-reihe-titel {
        margin-bottom: 25px;
    }

    .karte-titel {
        font-size: 16px;
    }

    .karte-text {
        font-size: 13px;
    }
}
