/* Libre Franklin Regular */
@font-face {
    font-family: "Libre Franklin";
    src: url("./fonts/LibreFranklin-Regular.ttf") format("truetype");
    font-weight: 400;
    font-style: normal;
}

/* Libre Franklin Bold */
@font-face {
    font-family: "Libre Franklin";
    src: url("./fonts/LibreFranklin-Bold.ttf") format("truetype");
    font-weight: 700;
    font-style: normal;
}
/* Libre Franklin Thin */
@font-face {
    font-family: "Libre Franklin";
    src: url("./fonts/LibreFranklin-Thin.ttf") format("truetype");
    font-weight: 100;
    font-style: normal;
}

@font-face {
    font-family: "Libre Franklin";
    src: url("./fonts/LibreFranklin-ThinItalic.ttf") format("truetype");
    font-weight: 100;
    font-style: italic;
}

/* Libre Franklin Extra Light */
@font-face {
    font-family: "Libre Franklin";
    src: url("./fonts/LibreFranklin-ExtraLight.ttf") format("truetype");
    font-weight: 200;
    font-style: normal;
}

@font-face {
    font-family: "Libre Franklin";
    src: url("./fonts/LibreFranklin-ExtraLightItalic.ttf") format("truetype");
    font-weight: 200;
    font-style: italic;
}

/* Libre Franklin Light */
@font-face {
    font-family: "Libre Franklin";
    src: url("./fonts/LibreFranklin-Light.ttf") format("truetype");
    font-weight: 300;
    font-style: normal;
}

@font-face {
    font-family: "Libre Franklin";
    src: url("./fonts/LibreFranklin-LightItalic.ttf") format("truetype");
    font-weight: 300;
    font-style: italic;
}

/* Libre Franklin Regular */
@font-face {
    font-family: "Libre Franklin";
    src: url("./fonts/LibreFranklin-Regular.ttf") format("truetype");
    font-weight: 400;
    font-style: normal;
}

@font-face {
    font-family: "Libre Franklin";
    src: url("./fonts/LibreFranklin-Italic.ttf") format("truetype");
    font-weight: 400;
    font-style: italic;
}

/* Libre Franklin Medium */
@font-face {
    font-family: "Libre Franklin";
    src: url("./fonts/LibreFranklin-Medium.ttf") format("truetype");
    font-weight: 500;
    font-style: normal;
}

@font-face {
    font-family: "Libre Franklin";
    src: url("./fonts/LibreFranklin-MediumItalic.ttf") format("truetype");
    font-weight: 500;
    font-style: italic;
}

/* Libre Franklin Semi Bold */
@font-face {
    font-family: "Libre Franklin";
    src: url("./fonts/LibreFranklin-SemiBold.ttf") format("truetype");
    font-weight: 600;
    font-style: normal;
}

@font-face {
    font-family: "Libre Franklin";
    src: url("./fonts/LibreFranklin-SemiBoldItalic.ttf") format("truetype");
    font-weight: 600;
    font-style: italic;
}

/* Libre Franklin Bold */
@font-face {
    font-family: "Libre Franklin";
    src: url("./fonts/LibreFranklin-Bold.ttf") format("truetype");
    font-weight: 700;
    font-style: normal;
}

@font-face {
    font-family: "Libre Franklin";
    src: url("./fonts/LibreFranklin-BoldItalic.ttf") format("truetype");
    font-weight: 700;
    font-style: italic;
}

/* Libre Franklin Extra Bold */
@font-face {
    font-family: "Libre Franklin";
    src: url("./fonts/LibreFranklin-ExtraBold.ttf") format("truetype");
    font-weight: 800;
    font-style: normal;
}

@font-face {
    font-family: "Libre Franklin";
    src: url("./fonts/LibreFranklin-ExtraBoldItalic.ttf") format("truetype");
    font-weight: 800;
    font-style: italic;
}

/* Libre Franklin Black */
@font-face {
    font-family: "Libre Franklin";
    src: url("./fonts/LibreFranklin-Black.ttf") format("truetype");
    font-weight: 900;
    font-style: normal;
}

@font-face {
    font-family: "Libre Franklin";
    src: url("./fonts/LibreFranklin-BlackItalic.ttf") format("truetype");
    font-weight: 900;
    font-style: italic;
}

/* Allgemeine Stile */
.shop-main * {
    padding: 0;
    margin: 0;
    text-decoration: none;
    border-radius: 5px;
    box-sizing: border-box;
}
body.shop-page {
    width: 100%;
    margin: 0;
    padding: 0;
    overflow-x: hidden; /* Verhindert horizontalen Scrollbalken */
}
.shop-main,
.shop-main label,
.shop-main input {
    color: #444;
    width: 100%;
    margin: 0;
    padding: 0;
    overflow-x: hidden; /* Verhindert horizontalen Scrollbalken */
}



/* Links */
.shop-main a {
    color: inherit;
    text-decoration: none;
}

.shop-main a:hover {
    text-decoration: underline;
}

/* Textelemente */
.shop-main a,
.shop-main p,
.shop-main h1,
.shop-main h2,
.shop-main h3,
.shop-main h4,
.shop-main input {
    font-family:  "Libre Franklin", "Helvetica Neue", helvetica, arial, sans-serif;
}
/* Schriftfarbe für die Menülinks */
.shop-main .navbar .nav-links li a {
    color: rgb(38, 38, 38); /* Schriftfarbe */
    text-decoration: none; /* Entfernt eventuelle Unterstreichung */
    
}

/* Optional: Hover-Effekt für die Links */
.shop-main .navbar .nav-links li a:hover {
    color: rgb(185, 0, 0); /* Farbe bei Hover */
    text-decoration: underline; /* Unterstreichen beim Hover */
}
/* Tabellen */
.shop-main table.t1,
.shop-main table.t2,
.shop-main .bestellte_ware45 {
    display: none;
}

.shop-main table {
    border: 1px solid black;
    margin: 0 auto; /* Zentriert die Tabelle horizontal */
    /* border-collapse: collapse;  Verhindert doppelte Rahmen */
}




.shop-main table.t3,
.shop-main table.t4 {
    /* max-width: 600px; */
    font-size: medium;
    /* table-layout: auto; */
}

.shop-main table th,
.shop-main table td {
    border: 1px solid black;
    padding: 8px; /* Fügt Innenabstand für bessere Lesbarkeit hinzu */
    white-space: nowrap; /* Verhindert Zeilenumbrüche innerhalb der Zellen */
}

.shop-main table th {
    background-color: #a41420;
    color: #fff;
    text-align: right;
}

.shop-main table td {
    text-align: left;
    
}
.shop-main .t3 th {
    width: 50%; /* Die Breite der ersten Spalte kann angepasst werden */
}


.shop-main table tr:nth-child(even) {
    background-color: #f2f2f2;
}

.shop-main th label,
.shop-main td input {
    /* display: block; */ /* Stellt sicher, dass die Elemente die volle Breite einnehmen */
    /* width: 100%;  */   /* Lässt `input`-Felder die volle Breite des Containers einnehmen */
    /* box-sizing: border-box;  */ /* Beinhaltet Padding und Border in der Breite */
}



/* form div {
    margin-bottom: 15px;  Abstand zwischen den Eingabefeldern 
} */

/* form label {
    text-align: center;
    margin-bottom: 5px;
    font-weight: bold;
} */

.shop-main form input[type="text"],
.shop-main form input[type="email"],
.shop-main form input[type="tel"] {
    
    font-size: 16px;
    border: 1px solid #ccc;
    border-radius: 5px;
    box-sizing: border-box; /* Padding und Border in der Breite einbeziehen */
    width: 100%;
    padding: 0;          
    text-align: left;   
}


.shop-main textarea {
    font-size: 16px;
    border: 1px solid #ccc;
    border-radius: 5px;
    width: 100%;
}

/* Artikel */
.shop-main .artikel {
    border: 1px solid black;
}

.shop-main .artikel img {
    display: block;
    margin: auto;
}

/* Warenkorb */
.shop-main .warenkorb {
    text-align: center;
    margin-top: 16px;
}

.shop-main .warenkorb table {
    margin: 0 auto;
}

.shop-main .warenkorb th,
.shop-main .warenkorb td {
    padding: 8px;
}

/* Slider */
.shop-main .slide {
    position: relative;
    text-align: center;
    margin: 0;
}

.shop-main .slide img {
    max-width: 100%;
    height: auto;
    margin: 20px 5px 5px 20px;
}

/* JePa preview hardening */
.shop-main .jepa-protected-image {
    position: relative;
    display: block;
    overflow: hidden;
    border-radius: 8px;
    user-select: none;
    -webkit-user-select: none;
    -webkit-touch-callout: none;
}

.shop-main .jepa-protected-image img {
    display: block;
    max-width: 100%;
    height: auto;
    pointer-events: none;
    user-select: none;
    -webkit-user-drag: none;
    -webkit-user-select: none;
}

.shop-main .jepa-protected-image--thumbnail {
    max-width: 180px;
    margin: 0 auto;
}

.shop-main .jepa-preview-note {
    margin-top: 12px;
    font-size: 0.95rem;
    color: #555;
}

/* .slide .caption {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translate(-50%, -50%);
    border-radius: 5px;
    font-size: 8px;
    color: #fff;
    background-color: #00000070;
    padding: 10px;
    text-align: center;
}
*/

/* Buttons */
.shop-main button,
.shop-main input[type="submit"] {
    background-color: #333;
    color: white;
    padding: 10px;
    font-size: 18px;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    transition: background-color 0.3s;
}

.shop-main button:hover,
.shop-main input[type="submit"]:hover {
    background-color: #555;
}

/* Bestellvorgang */
.shop-main .bestellvorgang {
    margin: 2%;
    display: grid;
    grid-template-columns: auto;
    grid-column-gap: 20px;
    grid-row-gap: 20px;
}

.shop-main .bestellvorgang > *,
.shop-main .bestellvorgang2 > * {

    text-align: center;
    padding: 5px;
}
.shop-main .event-link p a{
    color: #fff;
}


/* Kontaktformular */
.shop-main .anzahl form {
    display: flex;
    flex-direction: column;
    gap: 15px;
    max-width: 100px;
    margin: 0 auto;
    text-align: left;
}

.shop-main .anzahl h4:nth-of-type(2){
    font-size: 2em;
}

.shop-main label {
    color: #ffffff;
    font-weight: bold;
}
.shop-main label h3 {
    color: #444;
}

.shop-main .artikel-liste-phone {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 5px; /* Abstand zwischen den Artikeln */
}
.shop-main .artikel {
    width: 300px;
    min-height: 350px; /* Mindesthöhe für gleiche Größe */
    max-width: 100%; /* Stellt sicher, dass es nicht zu breit wird */
    
    padding: 5px;
    margin: 5px auto;
    height: auto;
    background-color: #f9f9f9;
}

/* Einzelnes Artikel-Element */
.shop-main .artikel-item {
    display: flex;
    flex-direction: column;
    width: calc(33.333% - 20px); /* 3 Artikel pro Zeile am Desktop */
    border: 1px solid #ccc;
    padding: 15px;
    border-radius: 5px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    background-color: #fff;
}

/* Thumbnail-Styling */
.shop-main .artikel-thumbnail img {
    width: 100%;
    height: auto;
    border-radius: 5px;
}

/* Artikel-Information */
.shop-main .artikel-info p {
    margin: 10px 0;
    font-size: 14px;
}

/* Anzahl-Formulare */
.shop-main .artikel-anzahl {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 10px 0;
}

.shop-main .artikel-anzahl form button {
    padding: 5px 10px;
    font-size: 16px;
}

.seite-artikelauswahl .bestellvorgang .artikel p:last-of-type {
  display: none;
}

.shop-main .datenschutz-hinweis {
    white-space: nowrap; /* Verhindert Zeilenumbrüche */
    font-size: 16px;     /* Optional: Schriftgröße einstellen */
    margin: 10px 0;      /* Optional: Abstände einstellen */
}

.shop-main .datenschutz-hinweis a {
    color: #007BFF;      /* Optional: Link-Farbe */
    text-decoration: none; /* Optional: Link-Unterstreichung entfernen */
}

.shop-main .datenschutz-hinweis a:hover {
    text-decoration: underline; /* Optional: Unterstreichung beim Hover */
}
.shop-main .datenschutz-container {
    display: contents;
}

.shop-main .datenschutz-container input[type="checkbox"] {
    width: 20px; /* Größe der Checkbox anpassen */
    height: 20px;
    margin: 20px;
}

.shop-main .datenschutz-container label h3 {
    margin: 0;
    font-size: 16px; /* Schriftgröße des Textes */  
}


.shop-main .datenschutz-container .datenschutz-flex {
    display: flex;
    align-items: center;
    gap: 10px; /* Abstand zwischen Checkbox und Text */
    padding: 8px;
}

.shop-main .datenschutz-flex input[type="checkbox"] {
    margin: 0;
}

.shop-main .datenschutz-flex p {
    margin: 0; /* Entfernt den Standard-Margin von <p> */
    color: #000; /* Optional: Textfarbe auf Schwarz setzen */
}
/* Media Queries für 800px und kleiner */
@media screen and (max-width: 800px) {

/* Logo-Container zentrieren */
.shop-main .c1 {
    width: 100%;
    display: inline-grid;
    justify-content: center; /* Zentriert das Logo horizontal */
    align-items: center;     /* Zentriert das Logo vertikal (falls nötig) */
    margin: 0 auto;
    padding: 10px 0;         /* Optional: Fügt etwas vertikalen Abstand hinzu */
    }

/* PNG-Logo */
.shop-main .c1 img {
    max-width: 150px;    /* Optional: Begrenze die maximale Breite des Logos */
    height: auto;        /* Erhält das Seitenverhältnis des Logos */
    display: inline-block; /* Stellt sicher, dass das Bild korrekt dargestellt wird */
    }

    /* Zentriert und entfernt Margin/Padding für äußere divs */
    .shop-main .bestellvorgang,
    .shop-main .c2,
    .shop-main .c3,
    .shop-main .slider,
    .shop-main .artikel-liste-phone
    {
        margin: 5px;
        padding: 5px;
        max-width: 100%;
        box-sizing: border-box;
        text-align: center;
    }
    .shop-main .artikel {
        display: inline-block;
    }

    /* Bild und Button im Artikel mittig platzieren */
    .shop-main .artikel img {
    max-width: 100px;
    height: auto;
    margin: 0 auto 15px;
    }
    .shop-main .artikel-liste {
        flex-direction: column;
        align-items: center;
    }

    .shop-main .artikel-item {
        max-width: 100%;
        display: contents;
    }

    /* Pulldown-Menü-Anpassungen */
    .shop-main .c6 select {
        width: 100%;
        max-width: 300px; /* Begrenzte Breite für bessere Darstellung */
        margin: 0 auto;   /* Zentriert das Pulldown-Menü */
        display: flex;
    }

    /* Slider-Anpassungen */
    .shop-main .slider {
        width: 100%;
        padding: 0;
        margin: 0 auto;
        display: flex;
        flex-direction: column;
        align-items: center;
        overflow: hidden;
    }

    .shop-main .slider .slide {
        width: 100%;
        box-sizing: border-box;
        margin: 0;
        display: flex;
        justify-content: center;
    }
    .shop-main .slide img{
        margin: 0;
    }
    .shop-main .slider .slide img {
        width: 100%; /* Bild nimmt die volle Breite des Containers ein */
        max-width: 100%; /* Verhindert, dass das Bild zu groß wird */
        height: auto;
        display: flex;
    }
/*
    
    .slider .caption {
        font-size: 12px;
        text-align: center;
        margin-top: 5px;
        padding: 5px;
        background-color: rgba(0, 0, 0, 0.6);
        color: #fff;
        border-radius: 5px;
        width: 90%;
        box-sizing: border-box;
    }
*/  
.shop-main .slider .slide a .caption h3 {
    margin: 0 0 0.30em 0;
}

    /* Allgemeine Button-Anpassungen */
    .shop-main button,
    .shop-main input[type="submit"],
    .shop-main a {
        
        width: 100%;
        box-sizing: border-box;
        margin-bottom: 0px;
        
    }
    .shop-main .button-container,
    .shop-main .artikel h3{
        margin: 5px;
    }

    .shop-main form input[type="text"],
    .shop-main form input[type="email"],
    .shop-main form input[type="tel"] {
        max-width: 100%; /* Eingabefelder passen sich der Bildschirmbreite an */
    }

    /* Tabelle scrollbar machen */
    .shop-main table.t4 {
        width: 100%;
        border-collapse: collapse;
        display: block; /* Macht die Tabelle zu einem Blockelement */
        overflow-x: auto; /* Horizontales Scrollen ermöglichen */
        white-space: nowrap; /* Verhindert Zeilenumbrüche innerhalb der Tabelle */
    }

    /* Tabellenzellen anpassen */
    .shop-main table.t4 th,
    .shop-main table.t4 td {
        padding: 8px; /* Platz zwischen Inhalt und Rahmen */
        text-align: left; /* Text linksbündig */
        min-width: 120px; /* Mindestbreite für jede Spalte */
        box-sizing: border-box;
    }

    /* Optional: Zentrierung der Tabelle */
    .shop-main .bestellte_ware {
        display: flex;
        justify-content: center;
        align-items: center;
        overflow: hidden; /* Verhindert Überschuss */
        padding: 5px;
    }

}
    /* Media Query für Smartphones */
@media screen and (max-width: 798px) {
    /* Tabelle vollständig sichtbar machen */
    .shop-main.seite-bestellformular_kontak table.t4,
    .seite-bestellformular_kontak .shop-main table.t4 {
        display: none;
    }
    .shop-main .bestellte_ware45 {
        display:block;
    }
    
    .shop-main table.t45 {
        width: 100%;
        border: none;
        overflow-x: auto; /* Ermöglicht horizontales Scrollen, falls nötig */
    }

    /* Zeilen und Zellen untereinander darstellen */
    .shop-main table.t45 tr {
        display: flex;
        flex-direction: column;
        margin-bottom: 10px; /* Abstand zwischen den Zeilen */
    }

    .shop-main table.t45 th,
    .shop-main table.t45 td {
        display: block; /* Zellen als Blockelemente darstellen */
        width: 100%;
        box-sizing: border-box;
        text-align: left; /* Links ausgerichtet */
        padding: 8px; /* Platz zwischen Inhalt und Rahmen */
        border: 1px solid #ccc; /* Optionaler Rahmen für Klarheit */
    }

    /* Input-Felder anpassen */
    .shop-main table.t45 input[type="text"],
    .shop-main table.t45 input[type="email"],
    .shop-main table.t45 input[type="tel"] {
        width: 100%; /* Eingabefelder füllen die volle Breite */
        padding: 8px;
        box-sizing: border-box; /* Padding wird in die Breite einbezogen */
    }

   /* Datenschutz-Container anpassen */
   .shop-main .datenschutz-container {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 8px;
}

.shop-main .datenschutz-flex {
    display: flex;
    align-items: center;
    gap: 10px; /* Abstand zwischen Checkbox und Text */
}

.shop-main .datenschutz-hinweis p {
    margin: 0;
    font-size: 14px;
    line-height: 1.4;
}

/* Checkbox anpassen */
.shop-main .datenschutz-flex input[type="checkbox"] {
    width: 20px;
    height: 20px;
}

/* Submit-Button anpassen */
.shop-main .submit-container {
    text-align: center;
    padding: 10px;
}

.shop-main .submit-container input[type="submit"] {
    width: 100%;
    padding: 10px;
    font-size: 16px;
    box-sizing: border-box;
    background-color: #444;
    color: #fff;
    border: none;
    border-radius: 5px;
    cursor: pointer;
}

.shop-main .submit-container input[type="submit"]:hover {
    background-color: #555;
}
}

/* ----------------------------------------------------------
   JePa Shop Content Normalization
---------------------------------------------------------- */

.shop-main {
    --jepa-shop-content-max: 1200px;
    --jepa-shop-content-narrow: 760px;
    --jepa-shop-content-gap: clamp(1rem, 2vw, 2rem);
    --jepa-shop-section-gap: clamp(2rem, 4vw, 4rem);
    --jepa-shop-surface: #ffffff;
    --jepa-shop-border: #d7d7d7;
    --jepa-shop-text: #222222;
    --jepa-shop-muted: #5a5a5a;
    --jepa-shop-accent: #ab2631;
    --jepa-shop-accent-hover: #8f1f29;
    --jepa-shop-page-surface: #f5f5f7;
    --jepa-shop-line: #e7e7ed;
    color: var(--jepa-shop-text);
    padding: clamp(2rem, 4vw, 4rem) clamp(1rem, 3vw, 2rem) clamp(3rem, 5vw, 5rem);
}

.shop-main * {
    box-sizing: border-box;
}

.shop-main > * {
    max-width: var(--jepa-shop-content-max);
    margin-right: auto;
    margin-left: auto;
}

.shop-main a,
.shop-main p,
.shop-main h1,
.shop-main h2,
.shop-main h3,
.shop-main h4,
.shop-main label,
.shop-main input,
.shop-main select,
.shop-main textarea,
.shop-main button {
    font-family: "Libre Franklin", "Helvetica Neue", helvetica, arial, sans-serif;
}

.shop-main p,
.shop-main ul,
.shop-main ol {
    margin: 0;
    line-height: 1.6;
}

.shop-main h1,
.shop-main h2,
.shop-main h3,
.shop-main h4 {
    margin: 0;
    line-height: 1.2;
    color: var(--jepa-shop-text);
}

.shop-main .bestellvorgang,
.shop-main .bestellvorgang2 {
    max-width: 960px;
    margin: 0 auto var(--jepa-shop-section-gap);
    gap: var(--jepa-shop-content-gap);
}

.shop-main .bestellvorgang > *,
.shop-main .bestellvorgang2 > * {
    margin: 0;
    padding: 0;
}

.shop-main .c1 {
    display: flex;
    justify-content: center;
    align-items: center;
}

.shop-main .c1 img {
    display: block;
    width: min(220px, 46vw);
    max-width: 100%;
    height: auto;
    margin: 0 auto;
}

.shop-main .c2 h1,
.shop-main .c2 h2 {
    font-size: clamp(2.25rem, 4vw, 3.6rem);
    font-weight: 300;
    text-align: center;
}

.shop-main .c3 h2,
.shop-main .c5 h2,
.shop-main .c6 h2,
.shop-main #c7 h2,
.shop-main #c8 h2 {
    font-size: clamp(1.75rem, 3vw, 2.4rem);
    font-weight: 300;
    text-align: center;
}

.shop-main .c3 p,
.shop-main .c5 p,
.shop-main .c6 p,
.shop-main .bestellvorgang > div > p {
    max-width: 48rem;
    margin: 0 auto;
    color: var(--jepa-shop-muted);
    text-align: center;
}

.shop-main .c6 select,
.shop-main select {
    display: block;
    width: min(100%, 540px);
    min-height: 56px;
    margin: 0 auto;
    padding: 0.9rem 1rem;
    color: var(--jepa-shop-text);
    background: #ffffff;
    border: 1px solid var(--jepa-shop-border);
    border-radius: 12px;
}

.shop-main .slider {
    max-width: 1320px;
    margin: 0 auto var(--jepa-shop-section-gap);
}

.shop-main .slide,
.shop-main .slider .slide {
    display: block;
    margin: 0;
}

.shop-main .slide img,
.shop-main .slider .slide img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    margin: 0;
    border-radius: 18px;
}

.shop-main .caption {
    margin-top: 0.75rem;
}

.shop-main button,
.shop-main input[type="submit"] {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    padding: 8px;
    color: #ffffff;
    background-color: var(--jepa-shop-accent);
    border: 0;
    border-radius: 12px;
    cursor: pointer;
    transition: background-color 0.2s ease, transform 0.2s ease;
}

.shop-main button:hover,
.shop-main button:focus,
.shop-main input[type="submit"]:hover,
.shop-main input[type="submit"]:focus {
    background-color: var(--jepa-shop-accent-hover);
    transform: translateY(-1px);
}

.shop-main .artikel-liste-phone {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 1.5rem;
    align-items: start;
    max-width: var(--jepa-shop-content-max);
    margin: 0 auto var(--jepa-shop-section-gap);
}

.shop-main .artikel {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    width: auto;
    min-height: 0;
    height: auto;
    margin: 0;
    padding: 1.25rem;
    background: var(--jepa-shop-surface);
    border: 1px solid var(--jepa-shop-border);
    border-radius: 16px;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.06);
}

.shop-main .artikel img {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 0 auto 0.75rem;
    border-radius: 12px;
}

.shop-main .artikel h3 {
    font-size: 18px;
    font-weight: 700;
}

.shop-main .artikel h4 {
    font-size: 1rem;
    font-weight: 600;
}

.shop-main .artikel p {
    color: var(--jepa-shop-muted);
}

.shop-main .button-container {
    margin-top: auto;
    padding-top: 0;
}

.shop-main .jepa-admin-tools {
    margin-top: 0.5rem;
    padding-top: 0.25rem;
}

.shop-main .jepa-original-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 8px;
    background: #f4f4f4;
    border: 1px solid var(--jepa-shop-border);
    border-radius: 12px;
    color: var(--jepa-shop-text);
    font-weight: 600;
    text-decoration: none;
    transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.shop-main .jepa-original-link:hover,
.shop-main .jepa-original-link:focus {
    background: #ebebeb;
    border-color: #bdbdbd;
    color: var(--jepa-shop-text);
    text-decoration: none;
    transform: translateY(-1px);
}

.shop-main .artikel input[type="submit"],
.shop-main .button-container input[type="submit"] {
    width: 100%;
}

.shop-main .bestellte_ware,
.shop-main .bestellte_ware45 {
    max-width: var(--jepa-shop-content-max);
    margin: 0 auto var(--jepa-shop-section-gap);
}

.shop-main .bestellte_ware {
    overflow-x: auto;
}

.shop-main table {
    width: 100%;
    margin: 0;
    background: #ffffff;
    border-collapse: separate;
    border-spacing: 0;
    border: 1px solid var(--jepa-shop-border);
    border-radius: 16px;
    overflow: hidden;
}

.shop-main table th,
.shop-main table td {
    padding: 8px;
    text-align: left;
    vertical-align: top;
    white-space: normal;
    border: 0;
    border-bottom: 1px solid var(--jepa-shop-line);
}

.shop-main table th {
    background-color: var(--jepa-shop-accent);
    color: #ffffff;
    font-weight: 600;
}

.shop-main table tr:last-child td {
    border-bottom: 0;
}

.shop-main table td img {
    border-radius: 10px;
}

.shop-main .container {
    display: grid;
    gap: 1rem;
    max-width: var(--jepa-shop-content-narrow);
    margin: 0 auto var(--jepa-shop-section-gap);
}

.shop-main label {
    display: block;
    color: var(--jepa-shop-text);
    font-weight: 600;
}

.shop-main .container > label:not(.privacy-label) {
    margin-bottom: -0.35rem;
}

.shop-main form input[type="text"],
.shop-main form input[type="email"],
.shop-main form input[type="tel"],
.shop-main form input[type="password"],
.shop-main form input[type="number"],
.shop-main form select,
.shop-main textarea {
    width: 100%;
    padding: 0.95rem 1rem;
    color: var(--jepa-shop-text);
    background: #ffffff;
    border: 1px solid var(--jepa-shop-border);
    border-radius: 12px;
    box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.03);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.shop-main form input[type="text"]:focus,
.shop-main form input[type="email"]:focus,
.shop-main form input[type="tel"]:focus,
.shop-main form input[type="password"]:focus,
.shop-main form input[type="number"]:focus,
.shop-main form select:focus,
.shop-main textarea:focus {
    outline: 0;
    border-color: var(--jepa-shop-accent);
    box-shadow: 0 0 0 4px rgba(171, 38, 49, 0.12);
    background-color: #ffffff;
}

.shop-main textarea {
    min-height: 12rem;
    resize: vertical;
}

.shop-main .privacy-label {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    font-weight: 400;
    line-height: 1.5;
}

.shop-main .privacy-label input[type="checkbox"] {
    flex: 0 0 auto;
    width: 1.2rem;
    height: 1.2rem;
    margin-top: 0.15rem;
}

.shop-main .privacy-label a,
.shop-main .datenschutz-hinweis a {
    color: #1d4ed8;
    text-decoration: underline;
}

.shop-main .container button {
    width: auto;
    min-width: 200px;
    justify-self: start;
}

.shop-main .datenschutz-container {
    display: block;
}

.shop-main .datenschutz-container .datenschutz-flex {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 0;
}

.shop-main .datenschutz-container input[type="checkbox"],
.shop-main .datenschutz-flex input[type="checkbox"] {
    width: 1.2rem;
    height: 1.2rem;
    margin: 0.15rem 0 0;
}

.shop-main .datenschutz-flex p,
.shop-main .datenschutz-hinweis p {
    color: var(--jepa-shop-text);
}

.shop-main .submit-container {
    padding: 0;
    text-align: left;
}

.shop-main .submit-container input[type="submit"] {
    width: auto;
    min-width: 220px;
}

.shop-main .event-link {
    max-width: 960px;
    margin: 1.5rem auto 0;
}

.shop-main .event-link p a {
    display: inline-flex;
    justify-content: center;
    width: auto;
    min-height: 54px;
    padding: 8px;
    color: #ffffff;
    text-decoration: none;
    background: var(--jepa-shop-accent);
    border-radius: 12px;
}

.shop-main .jepa-shop-empty-message {
    max-width: 960px;
    margin: 0 auto var(--jepa-shop-section-gap);
    color: var(--jepa-shop-muted);
    text-align: center;
}

@media screen and (min-width: 783px) {
    body.seite-artikelauswahl .shop-main,
    body.seite-warenkorb .shop-main,
    body.seite-bestellformular_kontak .shop-main,
    body.seite-bestellformular_bestaetigung .shop-main {
        background: var(--jepa-shop-page-surface);
    }

    body.seite-artikelauswahl .shop-main .bestellvorgang,
    body.seite-warenkorb .shop-main .bestellvorgang,
    body.seite-warenkorb .shop-main .bestellvorgang2,
    body.seite-bestellformular_kontak .shop-main .bestellvorgang,
    body.seite-bestellformular_bestaetigung .shop-main .bestellvorgang {
        padding: 1.75rem 2rem;
        background: #ffffff;
        border: 1px solid rgba(171, 38, 49, 0.12);
        border-radius: 24px;
        box-shadow: 0 14px 38px rgba(15, 23, 42, 0.06);
    }

    body.seite-artikelauswahl .shop-main .artikel,
    body.seite-warenkorb .shop-main .artikel,
    body.seite-bestellformular_kontak .shop-main .bestellte_ware,
    body.seite-bestellformular_kontak .shop-main .bestellte_ware45,
    body.seite-bestellformular_bestaetigung .shop-main .bestellte_ware {
        padding: 1.75rem;
        background: #ffffff;
        border: 1px solid rgba(171, 38, 49, 0.1);
        border-radius: 24px;
        box-shadow: 0 16px 40px rgba(15, 23, 42, 0.07);
    }

    body.seite-warenkorb .shop-main .artikel-liste-desktop,
    body.seite-bestellformular_kontak .shop-main .bestellte_ware,
    body.seite-bestellformular_bestaetigung .shop-main .bestellte_ware {
        margin-bottom: 2rem;
    }

    body.seite-bestellformular_kontak .shop-main table.t4,
    body.seite-bestellformular_bestaetigung .shop-main table.t4 {
        table-layout: fixed;
    }

    body.seite-bestellformular_kontak .shop-main table.t4 th,
    body.seite-bestellformular_bestaetigung .shop-main table.t4 th {
        width: 32%;
    }

    body.seite-bestellformular_kontak .shop-main table th,
    body.seite-bestellformular_kontak .shop-main table td,
    body.seite-bestellformular_bestaetigung .shop-main table th,
    body.seite-bestellformular_bestaetigung .shop-main table td,
    body.seite-warenkorb .shop-main table th,
    body.seite-warenkorb .shop-main table td {
        padding: 8px;
    }

    body.seite-warenkorb .shop-main table td,
    body.seite-bestellformular_kontak .shop-main table td,
    body.seite-bestellformular_bestaetigung .shop-main table td {
        background: #ffffff;
    }

    body.seite-bestellformular_kontak .shop-main .datenschutz-container,
    body.seite-bestellformular_bestaetigung .shop-main .datenschutz-container {
        padding-top: 0.5rem;
    }

    body.seite-bestellformular_kontak .shop-main .submit-container,
    body.seite-bestellformular_bestaetigung .shop-main .submit-container {
        padding-top: 0.75rem;
    }
}

@media screen and (max-width: 1024px) {
    .shop-main .artikel-liste-phone {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media screen and (max-width: 782px) {
    .shop-main {
        padding: 2rem 1rem 3rem;
    }

    .shop-main .bestellvorgang,
    .shop-main .bestellvorgang2 {
        margin-bottom: 2rem;
    }

    .shop-main .c2 h1,
    .shop-main .c2 h2 {
        font-size: clamp(1.9rem, 8vw, 3rem);
    }

    .shop-main .c3 h2,
    .shop-main .c5 h2,
    .shop-main .c6 h2,
    .shop-main #c7 h2,
    .shop-main #c8 h2 {
        font-size: clamp(1.5rem, 7vw, 2.2rem);
    }

    .shop-main .artikel-liste-phone {
        grid-template-columns: 1fr;
    }

    .shop-main .bestellte_ware {
        padding: 0;
    }

    .shop-main .container button,
    .shop-main .submit-container input[type="submit"],
    .shop-main .event-link p a {
        width: 100%;
        min-width: 0;
    }
}

body.seite-index-shop .shop-main {
    background: var(--jepa-shop-page-surface);
}

.shop-main .jepa-index-shop-wrap {
    display: grid;
    gap: 1.5rem;
    max-width: 1380px;
    margin: 0 auto;
}

.shop-main .jepa-index-shop-intro {
    padding: 1.75rem 2rem;
    background: #ffffff;
    border: 1px solid rgba(171, 38, 49, 0.12);
    border-radius: 24px;
    box-shadow: 0 14px 38px rgba(15, 23, 42, 0.06);
}

.shop-main .jepa-index-shop-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: space-between;
    align-items: end;
}

.shop-main .jepa-index-shop-event-form {
    display: grid;
    gap: 0.5rem;
    width: min(100%, 420px);
}

.shop-main .jepa-index-shop-event-form label {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--jepa-shop-text);
}

.shop-main .jepa-index-shop-cart-link a {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-height: 54px;
    padding: 8px;
    color: #ffffff;
    text-decoration: none;
    background: var(--jepa-shop-accent);
    border-radius: 12px;
}

.shop-main .jepa-index-shop-notice {
    padding: 1rem 1.25rem;
    border-radius: 18px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    background: #ffffff;
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.05);
}

.shop-main .jepa-index-shop-notice--success {
    border-color: rgba(22, 163, 74, 0.22);
    background: #f0fdf4;
}

.shop-main .jepa-index-shop-notice--error {
    border-color: rgba(171, 38, 49, 0.24);
    background: #fff1f2;
}

.shop-main .jepa-index-shop-notice p {
    margin: 0;
    font-weight: 600;
}

.shop-main .jepa-index-shop-card {
    display: grid;
    grid-template-columns: minmax(0, 600px) minmax(320px, 1fr);
    gap: 2rem;
    padding: 1.75rem;
    background: #ffffff;
    border: 1px solid rgba(171, 38, 49, 0.1);
    border-radius: 28px;
    box-shadow: 0 18px 48px rgba(15, 23, 42, 0.07);
}

.shop-main .jepa-index-shop-card__media {
    min-width: 0;
}

.shop-main .jepa-index-shop-card__image {
    display: block;
    width: 100%;
    max-width: 600px;
    aspect-ratio: 3 / 2;
    overflow: hidden;
    background: #060606;
    border-radius: 22px;
}

.shop-main .jepa-index-shop-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.shop-main .jepa-index-shop-card__content {
    display: grid;
    gap: 1.25rem;
    min-width: 0;
}

.shop-main .jepa-index-shop-card__header {
    display: grid;
    gap: 0.4rem;
}

.shop-main .jepa-index-shop-card__eyebrow {
    margin: 0;
    font-size: 0.9rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--jepa-shop-muted);
}

.shop-main .jepa-index-shop-card__header h2 {
    margin: 0;
    font-size: clamp(1.45rem, 2vw, 2rem);
    font-weight: 700;
    line-height: 1.15;
}

.shop-main .jepa-index-shop-card__cart-status {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: center;
    margin: 0;
    padding: 0.75rem 0.9rem;
    border: 1px solid rgba(171, 38, 49, 0.18);
    border-radius: 14px;
    background: #fff6f7;
    font-size: 10px;
    font-weight: 700;
    line-height: 1.3;
    color: #7f1d1d;
}

.shop-main .jepa-index-shop-card__bild-id,
.shop-main .jepa-index-shop-card__admin-link {
    margin: 0;
}

.shop-main .jepa-index-shop-card__form {
    display: grid;
    gap: 1rem;
    padding: 1rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 24px;
    background: #fbfbfc;
}

.shop-main .jepa-index-shop-card__fieldset {
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.shop-main .jepa-index-shop-card__fieldset legend {
    padding: 0 0.45rem;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--jepa-shop-text);
}

.shop-main .jepa-index-shop-choice-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
}

.shop-main .jepa-index-shop-choice-grid--print {
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem;
    align-items: flex-start;
}

.shop-main .jepa-index-shop-choice-grid--digital {
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem;
    align-items: flex-start;
}

.shop-main .jepa-index-shop-choice-grid--print .jepa-index-shop-choice {
    width: auto;
    min-width: 0;
    padding: 0;
}

.shop-main .jepa-index-shop-choice-grid--digital .jepa-index-shop-choice {
    width: auto;
    min-width: 0;
    padding: 0;
}

.shop-main .jepa-index-shop-choice-grid--print .jepa-index-shop-choice__text {
    display: inline-grid;
}

.shop-main .jepa-index-shop-choice-grid--digital .jepa-index-shop-choice__text {
    display: inline-grid;
}

.shop-main .jepa-index-shop-choice {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 0.35rem 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    transition: none;
    width: 100%;
}

.shop-main .jepa-index-shop-choice:hover {
    border-color: transparent;
    box-shadow: none;
    transform: none;
}

.shop-main .jepa-index-shop-choice input[type="radio"],
.shop-main .jepa-index-shop-choice input[type="checkbox"] {
    flex: 0 0 auto;
    width: 1.1rem;
    height: 1.1rem;
    margin-top: 0.1rem;
}

.shop-main .jepa-index-shop-choice__text {
    display: grid;
    gap: 0.2rem;
}

.shop-main .jepa-index-shop-choice__text strong {
    font-size: 1rem;
    line-height: 1.35;
}

.shop-main .jepa-index-shop-choice__text small {
    color: var(--jepa-shop-muted);
}

.shop-main .jepa-index-shop-bundle-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    min-height: 2rem;
    padding: 0.25rem 0.6rem;
    margin-left: 0.25rem;
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1;
    border-radius: 999px;
    border: 1px solid transparent;
}

.shop-main .jepa-index-shop-bundle-badge--empty {
    color: #475569;
    background: #e2e8f0;
    border-color: #cbd5e1;
}

.shop-main .jepa-index-shop-bundle-badge--open {
    color: #166534;
    background: #dcfce7;
    border-color: #86efac;
}

.shop-main .jepa-index-shop-bundle-badge--full {
    color: #991b1b;
    background: #fee2e2;
    border-color: #fca5a5;
}

.shop-main .jepa-index-shop-choice--frame input:disabled + .jepa-index-shop-choice__text {
    opacity: 0.6;
}

.shop-main .jepa-index-shop-card__hint {
    margin: 0.75rem 0 0;
    font-size: 0.92rem;
    color: var(--jepa-shop-muted);
}

.shop-main .jepa-index-shop-card__footer {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: space-between;
    align-items: center;
    padding-top: 0.25rem;
}

.shop-main .jepa-index-shop-card__price-box {
    display: grid;
    gap: 0.2rem;
}

.shop-main .jepa-index-shop-card__price-label {
    margin: 0;
    font-size: 0.9rem;
    color: var(--jepa-shop-muted);
}

.shop-main .jepa-index-shop-card__price {
    margin: 0;
    font-size: clamp(1.25rem, 2vw, 1.8rem);
    font-weight: 700;
    line-height: 1.1;
    color: var(--jepa-shop-text);
}

.shop-main .jepa-index-shop-card__actions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.shop-main .jepa-index-shop-card__submit[disabled] {
    cursor: not-allowed;
    opacity: 0.55;
    transform: none;
}

.shop-main .jepa-index-shop-card__cart-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 54px;
    padding: 8px 1rem;
    color: #111111;
    text-decoration: none;
    background: #ffffff;
    border: 1px solid var(--jepa-shop-accent);
    border-radius: 12px;
}

.shop-main .jepa-index-shop-card__cart-link:hover,
.shop-main .jepa-index-shop-card__cart-link:focus {
    color: #111111;
    background: #fff5f5;
    text-decoration: none;
}

@media screen and (max-width: 1024px) {
    .shop-main .jepa-index-shop-card {
        grid-template-columns: 1fr;
    }

    .shop-main .jepa-index-shop-card__image {
        max-width: none;
    }
}

@media screen and (max-width: 782px) {
    .shop-main .jepa-index-shop-intro,
    .shop-main .jepa-index-shop-card {
        padding: 1.25rem;
        border-radius: 20px;
    }

    .shop-main .jepa-index-shop-toolbar,
    .shop-main .jepa-index-shop-card__footer {
        grid-template-columns: 1fr;
        display: grid;
        align-items: stretch;
    }

    .shop-main .jepa-index-shop-event-form {
        width: 100%;
    }

    .shop-main .jepa-index-shop-cart-link a,
    .shop-main .jepa-index-shop-card__actions,
    .shop-main .jepa-index-shop-card__submit,
    .shop-main .jepa-index-shop-card__cart-link {
        width: 100%;
    }

    .shop-main .jepa-index-shop-card__actions {
        justify-content: stretch;
    }
}

/* Typografie-Begrenzung: keine Shop-Schrift groesser als 16px */
.shop-main .c2 h1,
.shop-main .c2 h2,
.shop-main .c3 h2,
.shop-main .c5 h2,
.shop-main .c6 h2,
.shop-main #c7 h2,
.shop-main #c8 h2,
.shop-main .artikel h3,
.shop-main .anzahl h4:nth-of-type(2),
.shop-main .jepa-index-shop-card__header h2,
.shop-main .jepa-index-shop-card__price {
    font-size: 16px;
}
