/**
 * ==========================================================================
 * Confiserie Gmeiner – Custom Styles
 * ==========================================================================
 * Basis: Bootstrap 5.3.8 (Grid/Utilities), eigenes BEM-Styling darüber.
 *
 * Prinzip: Optik/Layout bleiben stabil. Wiederkehrende Werte liegen in
 * :root-Tokens – Komponenten greifen darauf zu, ändern die Werte aber nicht.
 *
 * Inhalt:
 *   1. Design Tokens (:root)
 *      1.1 Pattern – Section- & Page-Titles (Doku + gebündelte Selektoren)
 *      1.2 Pattern – Text + Media (.media-split)
 *   2. Basis / Global
 *   3. Layout
 *   4. Komponenten (Buttons)
 *   5. Header
 *      5.1 Shell & Scroll-Zustand
 *      5.2 Top-Bar (Logo, Utilities)
 *      5.3 Navigation (gemeinsam)
 *      5.4 Desktop-Dropdowns (ab 992px)
 *      5.5 Mobile-Drawer (Offcanvas)
 *      5.6 Mobile-Header (bis 991px)
 *      5.7 Such-Overlay
 *   6. Hero (Startseiten-Banner)
 *   7. Intro-Bar (grüner Info-Streifen)
 *   8. Product-Showcase (Produkt-Raster im schmalen Farbblock)
 *   9. Gift-Showcase (Geschenke-Kategorien)
 *  10. Company-Section (Familienunternehmen + Video)
 *  11. Category-Showcase (Beliebte Kategorien)
 *  12. New-Showcase (Neues)
 *  13. Instagram-Feed
 *  14. Newsletter-Section
 *  15. Site-Footer
 *  16. Rechtstexte (Impressum)
 *  17. About – Familienunternehmen
 *  18. About – Auszeichnungen
 *  19. Kontakt
 *  20. Presse
 *  21. Katalog anfordern
 *  22. Barrierefreiheits-Widget
 *  23. Breadcrumbs
 *  24. Produktdetail
 *  22. Produkt-Recommendations (Das könnte Ihnen gefallen)
 *  23. Consent Manager (Cookie-Banner)
 *  24. Kategorie-Listing
 *  25. Product-Card Quick-Actions / Toast
 *  26. Stores-Übersicht
 *  27. Newsletter-Popup
 *  28. Warenkorb
 *      28.1 Grußkarten-Editor
 *  29. Checkout (Kasse)
 *  30. Bestellabschluss
 *
 * Breakpoints (Bootstrap-nah, bewusst hardcodiert):
 *   - 991.98px  Header → Burger, Footer 2-Spalten, Produkt-Galerie mobil
 *   - 767.98px  Hero / Intro / Showcase-Titel mobil mittig
 *   - 575.98px  enge Mobile-Overrides (Footer, Purchase-Row)
 * ==========================================================================
 */

/* lato-300 - latin */
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Lato';
    font-style: normal;
    font-weight: 300;
    src: url('../fonts/lato-v25-latin-300.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
         url('../fonts/lato-v25-latin-300.ttf') format('truetype'); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
  }
  
  /* lato-300italic - latin */
  @font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Lato';
    font-style: italic;
    font-weight: 300;
    src: url('../fonts/lato-v25-latin-300italic.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
         url('../fonts/lato-v25-latin-300italic.ttf') format('truetype'); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
  }
  
  /* lato-regular - latin */
  @font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Lato';
    font-style: normal;
    font-weight: 400;
    src: url('../fonts/lato-v25-latin-regular.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
         url('../fonts/lato-v25-latin-regular.ttf') format('truetype'); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
  }
  
  /* lato-italic - latin */
  @font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Lato';
    font-style: italic;
    font-weight: 400;
    src: url('../fonts/lato-v25-latin-italic.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
         url('../fonts/lato-v25-latin-italic.ttf') format('truetype'); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
  }
  
  /* lato-700 - latin */
  @font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Lato';
    font-style: normal;
    font-weight: 700;
    src: url('../fonts/lato-v25-latin-700.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
         url('../fonts/lato-v25-latin-700.ttf') format('truetype'); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
  }
  
  /* lato-700italic - latin */
  @font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Lato';
    font-style: italic;
    font-weight: 700;
    src: url('../fonts/lato-v25-latin-700italic.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
         url('../fonts/lato-v25-latin-700italic.ttf') format('truetype'); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
  }
  /* eb-garamond-regular - latin */
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'EB Garamond';
    font-style: normal;
    font-weight: 400;
    src: url('../fonts/eb-garamond-v33-latin-regular.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
         url('../fonts/eb-garamond-v33-latin-regular.ttf') format('truetype'); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
  }
  
  /* eb-garamond-italic - latin */
  @font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'EB Garamond';
    font-style: italic;
    font-weight: 400;
    src: url('../fonts/eb-garamond-v33-latin-italic.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
         url('../fonts/eb-garamond-v33-latin-italic.ttf') format('truetype'); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
  }
  
  /* eb-garamond-500 - latin */
  @font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'EB Garamond';
    font-style: normal;
    font-weight: 500;
    src: url('../fonts/eb-garamond-v33-latin-500.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
         url('../fonts/eb-garamond-v33-latin-500.ttf') format('truetype'); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
  }
  
  /* eb-garamond-500italic - latin */
  @font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'EB Garamond';
    font-style: italic;
    font-weight: 500;
    src: url('../fonts/eb-garamond-v33-latin-500italic.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
         url('../fonts/eb-garamond-v33-latin-500italic.ttf') format('truetype'); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
  }
  
  /* eb-garamond-600 - latin */
  @font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'EB Garamond';
    font-style: normal;
    font-weight: 600;
    src: url('../fonts/eb-garamond-v33-latin-600.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
         url('../fonts/eb-garamond-v33-latin-600.ttf') format('truetype'); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
  }
  
  /* eb-garamond-600italic - latin */
  @font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'EB Garamond';
    font-style: italic;
    font-weight: 600;
    src: url('../fonts/eb-garamond-v33-latin-600italic.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
         url('../fonts/eb-garamond-v33-latin-600italic.ttf') format('truetype'); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
  }
  
  /* eb-garamond-700 - latin */
  @font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'EB Garamond';
    font-style: normal;
    font-weight: 700;
    src: url('../fonts/eb-garamond-v33-latin-700.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
         url('../fonts/eb-garamond-v33-latin-700.ttf') format('truetype'); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
  }
  
  /* eb-garamond-700italic - latin */
  @font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'EB Garamond';
    font-style: italic;
    font-weight: 700;
    src: url('../fonts/eb-garamond-v33-latin-700italic.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
         url('../fonts/eb-garamond-v33-latin-700italic.ttf') format('truetype'); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
  }
  
/* ==========================================================================
   1. Design Tokens
   --------------------------------------------------------------------------
   Nur Werte, die mehrfach identisch vorkommen. Keine „Annäherungen“ –
   abweichende Einzelwerte bleiben bewusst hardcodiert.
   ========================================================================== */

:root {
    /* Markenfarben */
    --gmeiner-brown: #5d3222;
    --gmeiner-brown-dark: #4a281b;
    --gmeiner-brown-light: #6b4a3a;
    --gmeiner-gold: #c8ac55;
    --gmeiner-bg-cream: #f9f7f6;
    --gmeiner-bg-bestseller: #f7f0e2;
    --gmeiner-bg-mint: #cce5d9;
    --gmeiner-bg-sage: #e9f1e9;
    --gmeiner-bg-blush: #fdf2f0;      /* Schokoladen-Showcase */
    --gmeiner-bg-about: #f2f5f1;      /* Familienunternehmen-Sektion */
    --gmeiner-bg-footer: #e1e9da;     /* Footer-Hauptfläche */
    --gmeiner-bg-tafel-image: #fcede9; /* Bourbon Vanille – Bildhintergrund */
    --gmeiner-bg-tafel-page: #fef6f4;  /* Fitness Schokolade – Seitenhintergrund */
    --gmeiner-white: #ffffff;
    --gmeiner-text: #2a2a2a;
    --gmeiner-text-muted: #5a5a5a;

    /* Typografie */
    --gmeiner-font: 'Lato', sans-serif;
    --gmeiner-font-display: 'EB Garamond', Garamond, 'Times New Roman', serif;
    --font-size-section-title: clamp(1.75rem, 3vw, 2.5rem);
    --font-size-page-title: clamp(2rem, 4vw, 3rem);
    --letter-spacing-nav: 0.12em;
    --letter-spacing-eyebrow: 0.14em;

    /* Header – Werte werden per .is-scrolled überschrieben */
    --header-logo-height: 7.5rem;
    --header-top-padding: 2.5rem;
    --header-nav-padding: 1.25rem;
    --header-transition: 0.35s ease;
    /* Fallback, bis main.js die gemessene Header-Höhe setzt */
    --site-header-offset: clamp(6.5rem, 18vw, 13.5rem);

    /* Layout – gleiche maximale Breite wie Header (1400px) */
    --content-max-width: 87.5rem;
    --content-padding-x: clamp(1rem, 2.5vw, 2rem);

    /* Section-Spacing (Startseite & verwandte Blöcke) */
    --section-pad-y: clamp(2.5rem, 5vw, 4rem);
    --section-title-margin: clamp(1.5rem, 3vw, 2.5rem);
    --section-title-pad-mobile: clamp(2.75rem, 8vw, 3.5rem);
    --section-card-gap: clamp(1rem, 2vw, 1.75rem);
    /* Seiten-Chrome (About, Cart, Stores, Category, Legal, Product, …) */
    --page-pad-bottom: clamp(3rem, 6vw, 5rem);
    --page-header-margin: clamp(1.5rem, 3vw, 2.5rem);
    --font-size-body: 0.9375rem;
    --line-height-body: 1.7;
    /* Abstand Header → Breadcrumbs (Seiten mit Breadcrumbs: kein extra padding-top) */
    --breadcrumb-pad-top: 1.75rem;
    --breadcrumb-pad-bottom: 0.75rem;

    /* Motion */
    --transition-fast: 0.2s ease;
    --transition-media: 0.35s ease;

    /* Overlays / Borders (Textfarbe #2a2a2a bzw. Schwarz) */
    --overlay-black-04: rgba(0, 0, 0, 0.04);
    --overlay-black-08: rgba(0, 0, 0, 0.08);
    --overlay-text-08: rgba(42, 42, 42, 0.08);
    --overlay-text-12: rgba(42, 42, 42, 0.12);
    --overlay-text-18: rgba(42, 42, 42, 0.18);
    --overlay-text-35: rgba(42, 42, 42, 0.35);
    --border-subtle: 1px solid var(--overlay-text-18);
    --shadow-elevated: 0 0.75rem 1.75rem var(--overlay-text-08);

    /* Barrierefreiheits-Widget */
    --a11y-font-scale: 1;
}


/* ==========================================================================
   1.1 Pattern – Section- & Page-Titles
   --------------------------------------------------------------------------
   Drei Ebenen (Doku + identische Regeln gebündelt):

   A) Showcase-Titel (Startseite)
      Selektoren: .product-showcase__title, .gift-showcase__title, .new-showcase__title
      Gemeinsam: padding-top, section-title-margin, Display-Typo
      Desktop: links; Mobil (767.98px): zentriert + --section-title-pad-mobile

   B) Display-Titel (--font-size-section-title)
      Selektoren: .category-showcase__title, .company-section__title,
      .instagram-feed__title, .product-related__title,
      .category-listing__section-title
      Abstände und text-align bleiben in den Komponenten-Blöcken.

   C) Seiten-Titel / H1 (--font-size-page-title)
      Selektoren: .category-listing__title, .stores-listing__title,
      .cart-page__title, .checkout-page__title, .order-review-page__title, .order-success-page__title, .about-page__title, .about-awards-page__title, .contact-page__title, .press-page__title, .catalog-page__title, .legal-page__title
      Gemeinsam: Farbe, Display-Font, Größe, Gewicht, Zeilenhöhe
      C.1 Abstand unter Header: --page-header-margin
      Seiten-Padding unten: --page-pad-bottom (kein padding-top bei Breadcrumbs)
      Fließtext: --font-size-body / --line-height-body
      (Newsletter-Section-Titel ist bewusst eigen: Section-CTA, weight 400)
      (Gutschein-Seiten nutzen product-detail__title wie Produktdetail)
   ========================================================================== */

/* A – Showcase-Titel */
.product-showcase__title,
.gift-showcase__title,
.new-showcase__title {
    margin: 0 0 var(--section-title-margin);
    padding-top: var(--section-pad-y);
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font-display);
    font-size: var(--font-size-section-title);
    font-weight: 400;
    line-height: 1.2;
}

.product-showcase__title,
.gift-showcase__title {
    text-align: left;
}

/* B – Display-Titel (Typo) */
.category-showcase__title,
.company-section__title,
.instagram-feed__title,
.product-related__title,
.category-listing__section-title {
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font-display);
    font-size: var(--font-size-section-title);
    font-weight: 400;
    line-height: 1.2;
}

/* C – Seiten-Titel / H1 (Typo) */
.category-listing__title,
.stores-listing__title,
.cart-page__title,
.checkout-page__title,
.order-review-page__title,
.order-success-page__title,
.newsletter-page__title,
.career-page__title,
.career-application__title,
.story-mission-page__title,
.corporate-page__title,
.about-page__title,
.about-awards-page__title,
.contact-page__title,
.press-page__title,
.catalog-page__title,
.legal-page__title,
.shop-not-found__title,
.auth-page__title,
.checkout-auth-page__title,
.account-page__title,
.wishlist-page__title {
    margin: 0;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font-display);
    font-size: var(--font-size-page-title);
    font-weight: 500;
    line-height: 1.15;
}

/* C.1 – Abstand unter dem Seiten-Header (nach Breadcrumbs + H1) */
.about-page__header,
.about-awards-page__header,
.contact-page__header,
.press-page__header,
.catalog-page__header,
.newsletter-page__header,
.career-page__header,
.career-application__header,
.story-mission-page__header,
.corporate-page__header,
.cart-page__header,
.checkout-page__header,
.order-review-page__header,
.order-success-page__header,
.stores-listing__header,
.category-listing__header,
.auth-page__header,
.checkout-auth-page__header,
.account-page__header,
.wishlist-page__header,
.shop-not-found__header {
    margin: 0 0 var(--page-header-margin);
    text-align: center;
}

.legal-page__title {
    margin-bottom: var(--page-header-margin);
    text-align: center;
}

@media (max-width: 767.98px) {
    .product-showcase__title,
    .gift-showcase__title,
    .new-showcase__title,
    .category-showcase__title {
        padding-top: var(--section-title-pad-mobile);
    }

    .product-showcase__title,
    .gift-showcase__title,
    .new-showcase__title {
        text-align: center;
    }
}


/* ==========================================================================
   1.2 Pattern – Text + Media (.media-split)
   --------------------------------------------------------------------------
   Zweispaltiges Layout Text | Media (Video/Bild).
   Modifier: .media-split--with-cta (Content+CTA links, Media rechts).
   Nutzung: Company-Section, About-Seite.
   ========================================================================== */

.media-split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: clamp(1.75rem, 4vw, 3.5rem);
    row-gap: clamp(1.5rem, 4vw, 2rem);
    align-items: start;
}

.media-split--with-cta {
    grid-template-areas:
        "content media"
        "cta media";
    column-gap: clamp(2rem, 5vw, 4rem);
    row-gap: 0;
}

.media-split--with-cta > .media-split__content {
    grid-area: content;
}

.media-split--with-cta > .media-split__media {
    grid-area: media;
    align-self: center;
}

.media-split--with-cta > .media-split__cta {
    grid-area: cta;
    justify-self: start;
}

.media-split__media {
    width: 100%;
    min-width: 0;
}

.media-split__video {
    display: block;
    width: 100%;
    height: auto;
    background-color: #000;
}

@media (max-width: 991.98px) {
    .media-split {
        grid-template-columns: 1fr;
    }

    .media-split--with-cta {
        grid-template-areas:
            "content"
            "media"
            "cta";
        row-gap: clamp(1.5rem, 4vw, 2rem);
    }

    .media-split--with-cta > .media-split__media {
        align-self: stretch;
    }
}


/* ==========================================================================
   2. Basis / Global
   ========================================================================== */

body {
    /* Fallback bis main.js die exakte Header-Höhe setzt (verhindert Überlappung) */
    padding-top: clamp(6.5rem, 18vw, 13.5rem);
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-weight: 400;
}

body.page-bg-tafel .product-related {
    background-color: var(--gmeiner-bg-tafel-page);
}

body.page-bg-tafel .product-card__image,
body.page-bg-tafel .product-detail__main-media {
    background-color: var(--gmeiner-bg-tafel-image);
}

/**
 * Textlinks: CI-Braun statt Browser-Blau.
 *
 * :where() hält die Spezifität niedrig (nur `a` bzw. `a:hover`).
 * Button-artige Links (Klasse enthält btn / checkout / fab, plus Skip-Link)
 * sind ausgenommen – deren color aus der Komponenten-CSS bleibt gültig
 * (CMP, Warenkorb-Checkout, .btn-gmeiner, …). Keine Einzelfall-:not()-Liste.
 */
a:where(:not([class*="btn"], [class*="checkout"], [class*="fab"], .skip-link)) {
    color: var(--gmeiner-brown);
}

a:where(:not([class*="btn"], [class*="checkout"], [class*="fab"], .skip-link)):visited {
    color: var(--gmeiner-brown);
}

a:where(:not([class*="btn"], [class*="checkout"], [class*="fab"], .skip-link)):hover,
a:where(:not([class*="btn"], [class*="checkout"], [class*="fab"], .skip-link)):focus-visible {
    color: var(--gmeiner-brown-dark);
}

html {
    font-size: calc(100% * var(--a11y-font-scale));
}

/** Skip-Link – nur bei Tastatur-Fokus sichtbar */
.skip-link {
    position: absolute;
    top: 0.75rem;
    left: 0.75rem;
    z-index: 1100;
    padding: 0.75rem 1rem;
    background-color: var(--gmeiner-brown);
    color: var(--gmeiner-white);
    font-family: var(--gmeiner-font);
    font-size: 0.875rem;
    text-decoration: none;
    transform: translateY(-200%);
    transition: transform var(--transition-fast);
}

.skip-link:focus {
    transform: translateY(0);
}

/** Deutlicher Fokus-Ring für Tastatur-Nutzer (WCAG 2.4.7) */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
    outline: 2px solid var(--gmeiner-brown);
    outline-offset: 2px;
}


/* ==========================================================================
   3. Layout
   ========================================================================== */

/** Zentrierter Content-Container – Hintergrund darf 100 % breit sein */
.container-gmeiner {
    width: 100%;
    max-width: var(--content-max-width);
    margin: 0 auto;
    padding-left: var(--content-padding-x);
    padding-right: var(--content-padding-x);
}

/** Skip-Link-Ziel: nicht unter fixiertem Header verstecken */
#maincontent {
    scroll-margin-top: 8rem;
}


/* ==========================================================================
   4. Komponenten – Buttons
   ========================================================================== */

.btn-gmeiner {
    display: inline-block;
    padding: 0.875rem 2rem;
    background-color: var(--gmeiner-brown);
    border: none;
    color: var(--gmeiner-white);
    font-family: var(--gmeiner-font);
    font-size: 0.8125rem;
    font-weight: 400;
    letter-spacing: var(--letter-spacing-nav);
    line-height: 1;
    text-decoration: none;
    text-transform: uppercase;
    transition: background-color var(--transition-fast), color var(--transition-fast);
}

a.btn-gmeiner,
a.btn-gmeiner:visited {
    color: var(--gmeiner-white);
}

.btn-gmeiner:hover,
.btn-gmeiner:focus-visible {
    background-color: var(--gmeiner-brown-dark);
    color: var(--gmeiner-white);
}

a.btn-gmeiner:hover,
a.btn-gmeiner:focus-visible {
    color: var(--gmeiner-white);
}

/** Outline-Variante für Karten-Buttons */
.btn-gmeiner-outline {
    display: inline-block;
    padding: 0.625rem 1.25rem;
    background-color: var(--gmeiner-white);
    border: 1px solid var(--gmeiner-text);
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.8125rem;
    font-weight: 400;
    line-height: 1;
    text-decoration: none;
    transition: background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);
}

a.btn-gmeiner-outline,
a.btn-gmeiner-outline:visited {
    color: var(--gmeiner-text);
}

.btn-gmeiner-outline:hover,
.btn-gmeiner-outline:focus-visible {
    background-color: var(--gmeiner-brown);
    border-color: var(--gmeiner-brown);
    color: var(--gmeiner-white);
}

a.btn-gmeiner-outline:hover,
a.btn-gmeiner-outline:focus-visible {
    color: var(--gmeiner-white);
}

@media (max-width: 767.98px) {
    .hero .btn-gmeiner,
    .product-showcase__footer .btn-gmeiner,
    .new-showcase__footer .btn-gmeiner,
    .company-section .btn-gmeiner,
    .newsletter-form__submit {
        padding: 0.65rem 1.35rem;
        font-size: 0.75rem;
        letter-spacing: 0.1em;
    }
}


/* ==========================================================================
   5. Header
   ========================================================================== */

/* --------------------------------------------------------------------------
   5.1 Shell & Scroll-Zustand
   -------------------------------------------------------------------------- */

.site-header {
    --header-logo-height: 7.5rem;
    --header-top-padding: 2.5rem;
    --header-nav-padding: 1.25rem;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1030;
    background-color: var(--gmeiner-white);
    overflow: visible; /* Desktop-Dropdowns dürfen herausragen */
    transition: box-shadow var(--header-transition);
}

/** Kompakter Zustand nach Scrollen */
.site-header.is-scrolled {
    --header-logo-height: 4.5rem;
    --header-top-padding: 1rem;
    --header-nav-padding: 0.75rem;
    box-shadow: 0 1px 0 #e5e5e5;
}

/** Suchleiste offen – Header hebt sich über den Backdrop */
.site-header.is-search-open {
    box-shadow: 0 8px 24px var(--overlay-black-08);
}

.site-header.is-search-open .site-header__nav {
    padding-bottom: 0.75rem;
}


/* --------------------------------------------------------------------------
   5.2 Top-Bar – Logo, Utilities, Mobile-Aktionen
   -------------------------------------------------------------------------- */

.site-header__top {
    padding: var(--header-top-padding) var(--content-padding-x) 0;
    transition: padding var(--header-transition);
}

.site-header__top-inner {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    max-width: var(--content-max-width);
    margin: 0 auto;
}

/** Leere Grid-Spalte links – hält Logo zentriert (nur Desktop) */
.site-header__top-spacer {
    /* absichtlich leer */
}

.site-header__logo {
    display: block;
    line-height: 0;
    justify-self: center;
}

.site-header__logo img {
    display: block;
    width: auto;
    height: var(--header-logo-height);
    transition: height var(--header-transition);
}

/** Burger + Suche – nur Mobile sichtbar */
.site-header__mobile-left {
    display: none;
    align-items: center;
    gap: 1.25rem;
}

.site-header__burger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: none;
    background: none;
    color: var(--gmeiner-text);
    cursor: pointer;
}

.site-header__burger:hover,
.site-header__burger:focus-visible {
    color: var(--gmeiner-brown);
}

/** Utilities rechts: Sprache separat, Icons mit gleichem Abstand */
.site-header__utilities {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 1.25rem;
    justify-self: end;
}

.site-header__utility-icons {
    display: flex;
    align-items: center;
    gap: 1.75rem;
}

.site-header__lang {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.75rem;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.site-header__lang-link {
    color: var(--gmeiner-text);
    text-decoration: none;
    opacity: 0.55;
    transition: color var(--transition-fast), opacity var(--transition-fast);
}

.site-header__lang-link:hover,
.site-header__lang-link:focus-visible,
.site-header__lang-link.is-active {
    color: var(--gmeiner-brown);
    opacity: 1;
}

.site-header__lang-sep {
    opacity: 0.35;
    user-select: none;
}

.site-header__utility-link {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0;
    border: none;
    background: none;
    color: var(--gmeiner-text);
    font-family: inherit;
    font-size: 0.8125rem;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    transition: color var(--transition-fast);
}

.site-header__utility-link:hover,
.site-header__utility-link:focus-visible {
    color: var(--gmeiner-brown);
}

.site-header__utility-link--icon-only {
    gap: 0;
}

.site-header__utility-link--badge {
    position: relative;
}

.site-header__utility-badge {
    position: absolute;
    top: -0.35rem;
    right: -0.5rem;
    min-width: 1rem;
    height: 1rem;
    padding: 0 0.25rem;
    border-radius: 999px;
    background-color: var(--gmeiner-brown);
    color: var(--gmeiner-white);
    font-family: var(--gmeiner-font);
    font-size: 0.625rem;
    font-weight: 700;
    line-height: 1rem;
    text-align: center;
}

.site-header__icon {
    width: 1.125rem;
    height: 1.125rem;
    flex-shrink: 0;
}


/* --------------------------------------------------------------------------
   5.3 Navigation – gemeinsame Styles (Desktop + Drawer)
   -------------------------------------------------------------------------- */

.site-header__nav {
    padding: var(--header-nav-padding) 0 1.5rem;
    transition: padding var(--header-transition);
}

.site-header.is-scrolled .site-header__nav {
    padding-bottom: 1rem;
}

.site-header__nav-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 0.5rem 2rem;
    width: 100%;
    max-width: var(--content-max-width);
    margin: 0 auto;
    padding: 0 var(--content-padding-x);
    list-style: none;
}

.site-header__nav-item {
    position: relative;
}

.site-header__nav-link {
    display: inline-block;
    color: var(--gmeiner-text);
    font-size: 0.75rem;
    font-weight: 400;
    letter-spacing: var(--letter-spacing-nav);
    text-transform: uppercase;
    text-decoration: none;
    text-align: center;
    line-height: 1.4;
    transition: color var(--transition-fast);
}

/** Desktop-Untermenü-Trigger als Button */
button.site-header__nav-link {
    padding: 0;
    border: none;
    background: none;
    font-family: inherit;
    cursor: pointer;
}

.site-header__nav-link:hover,
button.site-header__nav-link:hover,
.site-header__nav-link:focus-visible,
button.site-header__nav-link:focus-visible {
    color: var(--gmeiner-brown);
}

/** Zusatz „(nur bei Bedarf)“ z. B. bei Saison */
.site-header__nav-suffix {
    font-size: 0.625rem;
    letter-spacing: 0.06em;
    color: var(--gmeiner-text-muted);
    text-transform: uppercase;
    margin-left: 0.25rem;
}

/** Unterpunkte – Standard versteckt; sichtbar per Dropdown oder Collapse */
.site-header__subnav:not(.collapse) {
    display: none;
    list-style: none;
    margin: 0;
    padding: 0;
}

.site-header__subnav.collapse {
    list-style: none;
    margin: 0;
    padding: 0;
}

.site-header__subnav-link {
    display: block;
    padding: 0.35rem 0;
    color: var(--gmeiner-text-muted);
    font-family: var(--gmeiner-font);
    font-size: 0.875rem;
    font-weight: 400;
    text-decoration: none;
    transition: color var(--transition-fast);
}

.site-header__subnav-link:visited {
    color: var(--gmeiner-text-muted);
}

.site-header__subnav-link:hover,
.site-header__subnav-link:focus-visible {
    color: var(--gmeiner-brown);
}

/** „Alle anzeigen“-Link – optisch wie die übrigen Einträge, nur mit Trennlinie */
.site-header__subnav-link--all {
    margin-top: 0.25rem;
    padding-top: 0.65rem;
    border-top: 1px solid var(--overlay-black-08);
}


/* --------------------------------------------------------------------------
   5.4 Desktop-Dropdowns (ab 992px, Hover)
   -------------------------------------------------------------------------- */

@media (min-width: 992px) {
    .site-header__nav--desktop .site-header__nav-list {
        justify-content: space-between;
        gap: 0.5rem 1rem;
    }

    /** Dezenter Pfeil bei Einträgen mit Unterpunkten */
    .site-header__nav--desktop .site-header__nav-item.has-children > .site-header__nav-link::after {
        content: '';
        display: inline-block;
        width: 0.35rem;
        height: 0.35rem;
        margin-left: 0.35rem;
        border-right: 1.5px solid currentColor;
        border-bottom: 1.5px solid currentColor;
        transform: rotate(45deg) translateY(-0.15rem);
        vertical-align: middle;
        opacity: 0.80;
    }

    .site-header__nav--desktop .site-header__nav-item.has-children > .site-header__nav-link:hover::after,
    .site-header__nav--desktop .site-header__nav-item.has-children > .site-header__nav-link:focus-visible::after,
    .site-header__nav--desktop .site-header__nav-item.has-children.is-dropdown-open > .site-header__nav-link::after {
        opacity: 1;
    }

    .site-header__nav--desktop .site-header__subnav {
        display: block;
        position: absolute;
        top: calc(100% + 0.5rem);
        left: 50%;
        z-index: 1040;
        min-width: 13rem;
        padding: 0.5rem 0;
        background-color: var(--gmeiner-white);
        border: 1px solid rgba(0, 0, 0, 0.06);
        box-shadow: 0 8px 24px var(--overlay-black-08);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translateX(-50%) translateY(0.35rem);
        transition: opacity var(--transition-fast), visibility var(--transition-fast), transform var(--transition-fast);
    }

    /** Unsichtbare Brücke – Maus verliert Hover nicht beim Wechsel zum Panel */
    .site-header__nav--desktop .site-header__subnav::before {
        content: '';
        position: absolute;
        top: -0.5rem;
        left: 0;
        width: 100%;
        height: 0.5rem;
    }

    .site-header__nav--desktop .site-header__nav-item.has-children.is-dropdown-open > .site-header__nav-link {
        color: var(--gmeiner-brown);
    }

    .site-header__nav--desktop .site-header__nav-item.has-children.is-dropdown-open > .site-header__subnav {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateX(-50%) translateY(0);
    }

    .site-header__nav--desktop .site-header__subnav-link {
        padding: 0.5rem 1.25rem;
        font-size: 0.8125rem;
        line-height: 1.4;
        white-space: nowrap;
    }

    .site-header__nav--desktop .site-header__subnav-link:hover,
    .site-header__nav--desktop .site-header__subnav-link:focus-visible {
        color: var(--gmeiner-brown);
    }

    .site-header__nav--desktop .site-header__subnav-link--all {
        margin-top: 0.35rem;
        padding-top: 0.75rem;
    }
}


/* --------------------------------------------------------------------------
   5.5 Mobile-Drawer (Bootstrap Offcanvas)
   -------------------------------------------------------------------------- */

.site-nav-drawer {
    --bs-offcanvas-zindex: 2147483646;
    width: min(20rem, 85vw);
    z-index: var(--bs-offcanvas-zindex);
}

.offcanvas-backdrop {
    z-index: 2147483645;
}

.site-nav-drawer__title {
    margin: 0;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font-display);
    font-size: 1.5rem;
}

.site-nav-drawer .offcanvas-body {
    display: flex;
    flex-direction: column;
}

/** Sprachwechsler am unteren Drawer-Rand */
.site-nav-drawer__lang {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    gap: 0.35rem;
    margin-top: auto;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(0, 0, 0, 0.08);
    font-size: 0.8125rem;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.site-header__nav-list--drawer {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    max-width: none;
    padding-left: 0;
    padding-right: 0;
}

.site-header__nav-list--drawer .site-header__nav-item {
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

/** Einträge ohne Unterpunkte – direkter Link */
.site-header__nav-list--drawer .site-header__nav-link {
    flex: 1;
    display: block;
    padding: 1rem 0;
    font-size: 0.8125rem;
    text-align: left;
}

/** Einträge mit Unterpunkten – ganze Zeile klickbar (Accordion-Toggle) */
.site-header__drawer-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    width: 100%;
    padding: 1rem 0;
    border: none;
    background: none;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.8125rem;
    font-weight: 400;
    letter-spacing: var(--letter-spacing-nav);
    line-height: 1.4;
    text-align: left;
    text-transform: uppercase;
    cursor: pointer;
    transition: color var(--transition-fast);
    flex-wrap: nowrap;
}

.site-header__drawer-toggle:hover,
.site-header__drawer-toggle:focus-visible {
    color: var(--gmeiner-brown);
}

.site-header__drawer-label {
    flex: 1;
    min-width: 0;
    text-align: left;
}

.site-header__nav-toggle-icon {
    width: 1rem;
    height: 1rem;
    transition: transform var(--transition-fast);
}

.site-header__drawer-toggle .site-header__nav-toggle-icon {
    flex-shrink: 0;
    width: 1.25rem;
    height: 1.25rem;
    color: var(--gmeiner-text);
    opacity: 0.85;
}

.site-header__drawer-toggle:hover .site-header__nav-toggle-icon,
.site-header__drawer-toggle:focus-visible .site-header__nav-toggle-icon,
.site-header__drawer-toggle[aria-expanded="true"] .site-header__nav-toggle-icon {
    opacity: 1;
}

.site-header__drawer-toggle[aria-expanded="true"] .site-header__nav-toggle-icon {
    transform: rotate(180deg);
}

.site-header__nav-list--drawer .site-header__subnav {
    padding: 0 0 0.5rem 0.75rem;
}

/** Schnelleres Aufklappen (Bootstrap-Standard: ~350ms) */
.site-header__nav-list--drawer .site-header__subnav.collapsing {
    transition: height 0.15s ease;
}

.site-header__nav-list--drawer .site-header__subnav-link {
    padding: 0.45rem 0;
    font-size: 0.8125rem;
}

.site-header__nav-list--drawer .site-header__nav-suffix {
    display: inline;
    margin-left: 0.35rem;
}


/* --------------------------------------------------------------------------
   5.6 Mobile-Header (bis 991px – Burger statt Navigationszeile)
   -------------------------------------------------------------------------- */

@media (max-width: 991.98px) {
    .site-header {
        --header-logo-height: 3.25rem;
        --header-top-padding: 0.875rem;
        --header-nav-padding: 0;
    }

    .site-header.is-scrolled {
        --header-logo-height: 2.75rem;
        --header-top-padding: 0.625rem;
    }

    .site-header__top {
        padding-bottom: 0.875rem;
    }

    .site-header.is-scrolled .site-header__top {
        padding-bottom: 0.625rem;
    }

    .site-header__top-inner {
        grid-template-columns: 1fr auto 1fr;
        gap: 0.75rem;
    }

    .site-header__mobile-left {
        display: flex;
        justify-self: start;
    }

    .site-header__top-spacer {
        display: none;
    }

    .site-header__logo {
        justify-self: center;
    }

    .site-header__utilities {
        gap: 0.75rem;
        justify-self: end;
    }

    .site-header__utility-icons {
        gap: 1rem;
    }

    /** Desktop-only Elemente ausblenden */
    .site-header__lang,
    .site-header__utility-link--desktop,
    .site-header__nav--desktop {
        display: none;
    }
}


/* --------------------------------------------------------------------------
   5.7 Suchleiste unter dem Header (Bettys-Stil)
   -------------------------------------------------------------------------- */

.site-search {
    width: 100%;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    background-color: var(--gmeiner-white);
    border-top: 1px solid transparent;
    transition:
        max-height var(--transition-media),
        opacity 0.25s ease,
        border-color 0.25s ease;
}

.site-header.is-search-open .site-search {
    max-height: 7rem;
    opacity: 1;
    border-top-color: rgba(0, 0, 0, 0.1);
}

.site-search__bar {
    display: flex;
    align-items: flex-end;
    gap: clamp(1.5rem, 4vw, 3rem);
    width: 100%;
    max-width: var(--content-max-width);
    margin: 0 auto;
    padding: 1.25rem 2rem 1.75rem;
}

.site-search__form {
    flex: 1 1 auto;
    min-width: 0;
}

.site-search__field {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    min-height: 2.75rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--overlay-text-35);
}

.site-search__input {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    padding: 0;
    border: none;
    background: transparent;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font-display);
    font-size: clamp(1.25rem, 2.5vw, 1.75rem);
    font-weight: 400;
    line-height: 1.35;
}

.site-search__input:focus {
    outline: none;
}

.site-search__input::placeholder {
    color: var(--gmeiner-text-muted);
}

.site-search__submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: none;
    background: none;
    color: var(--gmeiner-text);
    cursor: pointer;
    transition: color var(--transition-fast);
}

.site-search__submit:hover,
.site-search__submit:focus-visible {
    color: var(--gmeiner-brown);
}

.site-search__submit-icon {
    width: 1.25rem;
    height: 1.25rem;
}

.site-search__close {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    flex-shrink: 0;
    width: 3.5rem;
    padding: 0 0 0.5rem;
    border: none;
    background: none;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.6875rem;
    line-height: 1;
    cursor: pointer;
    transition: color var(--transition-fast);
}

.site-search__close:hover,
.site-search__close:focus-visible {
    color: var(--gmeiner-brown);
}

.site-search__close-icon {
    width: 1.125rem;
    height: 1.125rem;
}

.site-search__close-label {
    letter-spacing: 0.04em;
}

/** Abdunkelung / Unschärfe unterhalb von Header + Suchleiste */
.site-search-backdrop {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1020;
    background-color: rgba(249, 247, 246, 0.72);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    cursor: pointer;
}

.site-search-backdrop[hidden] {
    display: none;
}

@media (max-width: 991.98px) {
    .site-header.is-search-open .site-search {
        max-height: 6.5rem;
    }

    .site-search__bar {
        padding: 1rem var(--content-padding-x) 1.25rem;
        gap: 1rem;
    }

    .site-search__field {
        min-height: 2.5rem;
    }

    .site-search__close {
        width: 3rem;
        padding-bottom: 0.35rem;
    }

    .site-search__close-label {
        font-size: 0.625rem;
    }
}


/* ==========================================================================
   6. Hero – Startseiten-Banner
   ========================================================================== */

.hero {
    width: 100%;
    background-color: var(--gmeiner-bg-cream);
}

/**
 * Desktop/Tablet: Vollbild-Banner mit proportionalem Seitenverhältnis.
 * Text liegt als Overlay links über dem Bild.
 */
.hero__inner {
    position: relative;
    width: 100%;
    aspect-ratio: 1920 / 680;
    min-height: 18rem;
    overflow: hidden;
}

.hero__media {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.hero__media picture,
.hero__media img {
    display: block;
    width: 100%;
    height: 100%;
}

.hero__media img {
    object-fit: cover;
    object-position: center right;
}

.hero__content-wrap {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: flex;
    align-items: center;
    pointer-events: none;
}

.hero__content-inner {
    display: flex;
    align-items: center;
    width: 100%;
    height: 100%;
}

.hero__content {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: clamp(1rem, 2vw, 1.5rem);
    width: min(46%, 36rem);
    padding: clamp(1.5rem, 4vw, 3rem) 0;
    pointer-events: auto;
}

.hero__eyebrow {
    margin: 0;
    color: var(--gmeiner-brown-light);
    font-family: var(--gmeiner-font);
    font-size: clamp(0.625rem, 1.2vw, 0.75rem);
    font-weight: 400;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.hero__title {
    margin: 0;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font-display);
    font-size: clamp(1.75rem, 3.5vw, 3.25rem);
    font-weight: 400;
    line-height: 1.15;
}

/** Mobile: Bild oben, Text-Band darunter (rosa Hintergrund) */
@media (max-width: 767.98px) {
    .hero {
        background-color: var(--gmeiner-bg-blush);
    }

    .hero__inner {
        display: flex;
        flex-direction: column;
        aspect-ratio: auto;
        min-height: 0;
        overflow: visible;
    }

    .hero__media {
        position: relative;
        inset: auto;
        flex-shrink: 0;
        aspect-ratio: 768 / 520;
    }

    .hero__media img {
        object-position: center center;
    }

    .hero__content-wrap {
        position: relative;
        inset: auto;
    }

    .hero__content-inner {
        height: auto;
    }

    .hero__content {
        width: 100%;
        align-items: center;
        text-align: center;
        padding: 2rem 0 2.5rem;
        background-color: var(--gmeiner-bg-blush);
    }

    .hero__eyebrow {
        font-size: 0.75rem;
    }

    .hero__title {
        font-size: clamp(1.75rem, 7vw, 2.25rem);
    }
}

/**
 * Optionaler Hero-Slider (ab zwei Folien).
 * Eine Folie nutzt weiterhin nur .hero / .hero__inner ohne diese Regeln.
 */
.hero--slider {
    position: relative;
}

.hero--slider .hero__viewport {
    position: relative;
    width: 100%;
    aspect-ratio: 1920 / 680;
    min-height: 18rem;
    overflow: hidden;
    touch-action: pan-y;
}

.hero--slider .hero__track {
    display: flex;
    height: 100%;
    transition: transform 0.55s ease;
    will-change: transform;
}

.hero--slider.is-dragging .hero__track {
    transition: none;
}

.hero--slider .hero__inner {
    flex: 0 0 100%;
    width: 100%;
    max-width: 100%;
    height: 100%;
    aspect-ratio: auto;
    min-height: 0;
}

.hero--slider .hero__dots-wrap {
    position: absolute;
    inset: 0;
    z-index: 4;
    pointer-events: none;
}

.hero--slider .hero__dots {
    position: absolute;
    left: 50%;
    bottom: 1rem;
    z-index: 4;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.1rem;
    margin: 0;
    padding: 0.15rem 0.35rem;
    border-radius: 999px;
    background: rgba(61, 40, 33, 0.38);
    transform: translateX(-50%);
    pointer-events: auto;
}

.hero--slider .hero__dot {
    position: relative;
    width: 1.75rem;
    height: 1.75rem;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    cursor: pointer;
}

.hero--slider .hero__dot::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.5);
    transform: translate(-50%, -50%);
}

.hero--slider .hero__dot[aria-current="true"]::after {
    background: #fff;
}

.hero--slider .hero__dot:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 2px;
}

@media (max-width: 767.98px) {
    .hero--slider .hero__viewport {
        aspect-ratio: auto;
        min-height: 0;
    }

    .hero--slider .hero__track {
        height: auto;
        align-items: stretch;
    }

    .hero--slider .hero__inner {
        display: flex;
        flex-direction: column;
        height: auto;
        overflow: visible;
    }

    .hero--slider .hero__content-wrap {
        flex: 1;
    }

    .hero--slider .hero__dots-wrap {
        inset: auto;
        top: 0;
        left: 0;
        right: 0;
        aspect-ratio: 768 / 520;
    }
}

@media (prefers-reduced-motion: reduce) {
    .hero--slider .hero__track {
        transition: none;
    }
}


/* ==========================================================================
   7. Intro-Bar – grüner Info-Streifen unter dem Hero
   ========================================================================== */

/** Hintergrund 100 % breit, Text in .container-gmeiner / __inner */
.intro-bar {
    width: 100%;
    background-color: var(--gmeiner-bg-sage);
    padding: clamp(2.5rem, 5vw, 3.5rem) 0;
}

/** Direkt unter dem Hero ohne Zwischenraum */
.intro-bar--flush-top {
    margin-top: 0;
}

.intro-bar__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(2rem, 5vw, 4rem);
}

.intro-bar__heading {
    margin: 0 0 1.25rem;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: clamp(0.75rem, 1.5vw, 0.875rem);
    font-weight: 700;
    letter-spacing: var(--letter-spacing-eyebrow);
    line-height: 1.5;
    text-align: center;
    text-transform: uppercase;
}

.intro-bar__text {
    margin: 0;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: clamp(0.875rem, 1.5vw, 1rem);
    font-weight: 400;
    line-height: 1.65;
    text-align: center;
}

@media (max-width: 767.98px) {
    .intro-bar__inner {
        grid-template-columns: 1fr;
        gap: 2.5rem;
    }

    .intro-bar__col--guarantee {
        display: none;
    }
}


/* ==========================================================================
   8. Product-Showcase – Produkt-Raster im schmalen Farbblock
   ========================================================================== */

/**
 * Farbfläche (__panel) über volle Viewport-Breite,
 * Inhalt zentriert in .container-gmeiner.
 */
.product-showcase {
    padding: 0;
    background-color: var(--gmeiner-white);
}

/** Direkt an vorherigen Block anschließen – kein weißer Section-Rahmen */
.intro-bar + .product-showcase--flush-top,
.product-showcase--flush-bottom + .product-showcase--flush-top {
    display: contents;
}

.product-showcase__panel {
    width: 100%;
    padding-top: clamp(2rem, 4vw, 3.5rem);
}

.product-showcase--flush-top .product-showcase__panel {
    padding-top: 0;
}

.product-showcase--flush-bottom .product-showcase__panel {
    padding-bottom: 0;
}

.product-showcase__panel--bestseller {
    background-color: var(--gmeiner-bg-bestseller);
}

.product-showcase__panel--bestseller .product-card__image {
    background-color: transparent;
}

.product-showcase__panel--cream {
    background-color: var(--gmeiner-bg-cream);
}

.product-showcase__panel--blush {
    background-color: var(--gmeiner-bg-blush);
}

/** 4 Spalten Desktop – immer 4 Produkte */
.product-showcase__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--section-card-gap);
}

.product-card {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    margin: 0;
    min-width: 0;
}

.product-card__media {
    position: relative;
}

.product-card__image-link,
.product-card__meta-link {
    display: block;
    color: inherit;
    text-decoration: none;
    transition: color var(--transition-fast);
}

.product-card__meta-link {
    flex: 0 0 auto;
    margin-top: 0;
}

.product-card__meta-link:hover .product-card__name,
.product-card__meta-link:focus-visible .product-card__name {
    color: var(--gmeiner-brown);
}

.product-card__image {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background-color: var(--overlay-black-04);
}

.product-card__image img,
.product-card__image video {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
    transition: transform var(--transition-media);
}

.product-card__image-hover {
    z-index: 1;
    opacity: 0;
    transition: opacity var(--transition-media), transform var(--transition-media);
}

.product-card__media.is-hover-image .product-card__image-hover {
    opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
    .product-card__image-hover {
        transition: none;
    }
}

.product-card__image-link:hover .product-card__image img,
.product-card__image-link:focus-visible .product-card__image img,
.product-card__media:hover .product-card__image img,
.product-card__media:focus-within .product-card__image img,
.product-card--video:hover .product-card__image video,
.product-card__media:hover .product-card__image video {
    transform: scale(1.03);
}

.product-card__quick-actions {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
}

.product-card__action {
    position: absolute;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: none;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.88);
    color: var(--gmeiner-text);
    box-shadow: 0 1px 5px rgba(0, 0, 0, 0.07);
    cursor: pointer;
    pointer-events: auto;
    opacity: 0;
    transform: scale(1);
    transition:
        opacity var(--transition-media),
        color var(--transition-fast),
        background-color var(--transition-fast),
        box-shadow var(--transition-fast),
        transform var(--transition-fast);
}

.product-card__action--wishlist {
    top: 0.65rem;
    right: 0.65rem;
}

.product-card__action--cart {
    right: 0.65rem;
    bottom: 0.65rem;
}

.product-card__action-icon {
    width: 1rem;
    height: 1rem;
    transition: transform var(--transition-fast);
}

.product-card__media:hover .product-card__action,
.product-card__media:focus-within .product-card__action {
    opacity: 0.82;
}

.product-card__action:hover,
.product-card__action:focus-visible {
    opacity: 1;
    color: var(--gmeiner-brown);
    background-color: var(--gmeiner-white);
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.14);
    transform: scale(1.08);
}

.product-card__action:hover .product-card__action-icon,
.product-card__action:focus-visible .product-card__action-icon {
    transform: scale(1.06);
}

.product-card__action--wishlist.is-active {
    opacity: 1;
    color: var(--gmeiner-brown);
}

.product-card__action--wishlist.is-active:hover,
.product-card__action--wishlist.is-active:focus-visible {
    background-color: rgba(255, 255, 255, 0.98);
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.16);
}

.product-card__action--wishlist.is-active .product-card__action-icon {
    fill: currentColor;
}

.product-card__action--cart.is-added {
    color: var(--gmeiner-brown);
    background-color: var(--gmeiner-white);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

.product-card__name {
    margin: 1rem 0 0;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.9375rem;
    font-weight: 700;
    line-height: 1.35;
}

.product-card__price {
    margin: 0.35rem 0 0;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.9375rem;
    font-weight: 400;
}

/* Badges / Status – Coming soon aktiv, Neu/Vegan/Winterpause/Sold-Out-Text deaktiviert */
.product-card__badges {
    position: absolute;
    top: 0.65rem;
    left: 0.65rem;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
    pointer-events: none;
}

.product-card__badge {
    display: inline-block;
    padding: 0.2rem 0.5rem;
    border-radius: 0.15rem;
    background-color: rgba(255, 255, 255, 0.92);
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.2;
    text-transform: uppercase;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
}

.product-card__badge--new {
    color: var(--gmeiner-brown);
}

.product-card__badge--coming-soon {
    color: var(--gmeiner-brown);
}

.product-card__badge--vegan {
    color: #3d6b4f;
}

.product-card__badge--winter {
    color: #753218;
}

.product-card__coming-soon {
    margin: 0.25rem 0 0;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font);
    font-size: 0.8125rem;
    font-style: italic;
    font-weight: 600;
    line-height: 1.35;
}

.product-card__status {
    margin: 0.35rem 0 0;
    color: #753218;
    font-family: var(--gmeiner-font);
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.3;
}

.product-showcase__footer {
    margin-top: clamp(2rem, 4vw, 3rem);
    padding-bottom: var(--section-pad-y);
    text-align: center;
}

@media (max-width: 991.98px) {
    .product-showcase__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* ==========================================================================
   9. Gift-Showcase – Geschenke-Kategorien
   ========================================================================== */

.gift-showcase {
    padding: 0 0 var(--section-pad-y);
    background-color: var(--gmeiner-bg-bestseller);
}

.gift-showcase .gift-card__image-link {
    background-color: transparent;
}

.gift-showcase__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--section-card-gap);
}

.gift-card {
    display: flex;
    flex-direction: column;
    margin: 0;
    min-width: 0;
}

.gift-card__image-link {
    display: block;
    overflow: hidden;
    aspect-ratio: 1 / 1;
    background-color: var(--overlay-black-04);
}

.gift-card__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition-media);
}

.gift-card__image-link:hover .gift-card__image,
.gift-card__image-link:focus-visible .gift-card__image {
    transform: scale(1.03);
}

.gift-card__label {
    margin: 1rem 0 0.75rem;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: var(--letter-spacing-eyebrow);
    line-height: 1.35;
    text-transform: uppercase;
    overflow-wrap: break-word;
    hyphens: auto;
}

.gift-card .btn-gmeiner-outline {
    display: block;
    width: 100%;
    box-sizing: border-box;
    margin-top: auto;
    text-align: center;
    font-size: clamp(0.6875rem, 2.6vw, 0.8125rem);
    padding: 0.625rem 0.5rem;
    white-space: nowrap;
}

@media (max-width: 991.98px) {
    .gift-showcase__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* ==========================================================================
   10. Company-Section – Familienunternehmen mit Video
   --------------------------------------------------------------------------
   Layout-Basis: .media-split / .media-split--with-cta (gemeinsam mit About)
   ========================================================================== */

.company-section {
    padding: var(--section-pad-y) 0;
    background-color: var(--gmeiner-bg-about);
}

.company-section__eyebrow {
    margin: 0 0 1.25rem;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: clamp(0.75rem, 1.5vw, 0.875rem);
    font-weight: 700;
    letter-spacing: var(--letter-spacing-eyebrow);
    line-height: 1.5;
    text-transform: uppercase;
}

.company-section__title {
    margin: 0 0 1.5rem;
}

.company-section__text {
    margin: 0 0 clamp(1.75rem, 3vw, 2.5rem);
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: clamp(0.875rem, 1.5vw, 1rem);
    font-weight: 400;
    line-height: 1.65;
}

.company-section__cta {
    margin: 0;
}

@media (max-width: 991.98px) {
    .company-section__text {
        margin-bottom: 0;
    }
}

@media (max-width: 767.98px) {
    .company-section__content {
        text-align: center;
    }

    .company-section .media-split--with-cta > .media-split__cta {
        justify-self: center;
    }
}


/* ==========================================================================
   11. Category-Showcase – Beliebte Kategorien (runde Kreise)
   ========================================================================== */

.category-showcase {
    padding: 0;
    background-color: var(--gmeiner-white);
}

.category-showcase__title {
    margin: 0 0 clamp(2rem, 4vw, 3rem);
    padding-top: var(--section-pad-y);
    text-align: center;
}

.category-showcase__grid {
    display: flex;
    flex-wrap: wrap;
    gap: clamp(1.5rem, 3vw, 2.5rem) clamp(1.25rem, 2.5vw, 2rem);
    justify-content: center;
    padding-bottom: var(--section-pad-y);
}

.category-card {
    flex: 0 1 10.5rem;
    max-width: 11.5rem;
    margin: 0;
    min-width: 0;
}

.category-card__link {
    display: flex;
    flex-direction: column;
    align-items: center;
    color: inherit;
    text-decoration: none;
    transition: color var(--transition-fast);
}

.category-card__link:hover .category-card__label,
.category-card__link:focus-visible .category-card__label {
    color: var(--gmeiner-brown);
}

.category-card__image-wrap {
    display: block;
    width: clamp(7.5rem, 14vw, 10.5rem);
    aspect-ratio: 1 / 1;
    overflow: hidden;
    border-radius: 50%;
    background-color: var(--overlay-black-04);
}

.category-card__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition-media);
}

.category-card__link:hover .category-card__image,
.category-card__link:focus-visible .category-card__image {
    transform: scale(1.05);
}

.category-card__label {
    margin: 1rem 0 0;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: clamp(0.8125rem, 1.4vw, 0.9375rem);
    font-weight: 400;
    line-height: 1.35;
    text-align: center;
    overflow-wrap: break-word;
    hyphens: auto;
}

@media (max-width: 767.98px) {
    .category-card {
        flex-basis: calc(50% - 0.75rem);
        max-width: calc(50% - 0.75rem);
    }
}

@media (max-width: 479.98px) {
    .category-card {
        flex-basis: calc(50% - 0.625rem);
        max-width: calc(50% - 0.625rem);
    }

    .category-card__image-wrap {
        width: clamp(6.75rem, 34vw, 8.5rem);
    }
}


/* ==========================================================================
   12. New-Showcase – Neues
   ========================================================================== */

.new-showcase {
    padding: 0 0 var(--section-pad-y);
    background-color: var(--gmeiner-bg-blush);
}

.new-showcase__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--section-card-gap);
}

.new-card {
    margin: 0;
    min-width: 0;
}

.new-card__link {
    display: block;
    color: inherit;
    text-decoration: none;
}

.new-card__link:hover .new-card__name,
.new-card__link:focus-visible .new-card__name {
    color: var(--gmeiner-brown);
}

.new-card__image {
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background-color: var(--overlay-black-04);
}

.new-card__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition-media);
}

.new-card__link:hover .new-card__image img,
.new-card__link:focus-visible .new-card__image img {
    transform: scale(1.03);
}

.new-card__name {
    margin: 1rem 0 0;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.9375rem;
    font-weight: 700;
    line-height: 1.35;
}

.new-card__price {
    margin: 0.35rem 0 0;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.9375rem;
    font-weight: 400;
}

.new-showcase__footer {
    margin-top: clamp(2rem, 4vw, 3rem);
    text-align: center;
}

@media (max-width: 991.98px) {
    .new-showcase__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}


/* ==========================================================================
   13. Instagram-Feed
   ========================================================================== */

.instagram-feed {
    padding: var(--section-pad-y) 0;
    background-color: var(--gmeiner-white);
}

.instagram-feed__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
    gap: clamp(1.5rem, 4vw, 3rem);
}

.instagram-feed__header {
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 0.75rem;
    margin-bottom: 0;
    padding-top: 0;
    max-width: 32rem;
}

.instagram-feed__title {
    margin: 0;
}

.instagram-feed__profile-link {
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: var(--letter-spacing-nav);
    text-decoration: none;
    text-transform: uppercase;
    transition: color var(--transition-fast);
}

.instagram-feed__text {
    margin: 0;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.6;
}

.instagram-feed__profile-link:hover,
.instagram-feed__profile-link:focus-visible {
    color: var(--gmeiner-brown);
}

.instagram-feed__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(0.375rem, 0.75vw, 0.625rem);
    width: 100%;
    max-width: 31rem;
    margin: 0;
    padding-bottom: 0;
}

.instagram-feed__post {
    position: relative;
    display: block;
    overflow: hidden;
    aspect-ratio: 1 / 1;
    background-color: var(--overlay-black-04);
}

.instagram-feed__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition-media);
}

.instagram-feed__overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: rgba(93, 50, 34, 0.45);
    opacity: 0;
    transition: opacity 0.25s ease;
}

.instagram-feed__icon {
    width: 2rem;
    height: 2rem;
    fill: var(--gmeiner-white);
}

.instagram-feed__post:hover .instagram-feed__overlay,
.instagram-feed__post:focus-visible .instagram-feed__overlay {
    opacity: 1;
}

.instagram-feed__post:hover .instagram-feed__image,
.instagram-feed__post:focus-visible .instagram-feed__image {
    transform: scale(1.03);
}

@media (max-width: 767.98px) {
    .instagram-feed__layout {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .instagram-feed__header {
        max-width: none;
        align-items: center;
        text-align: center;
    }

    .instagram-feed__grid {
        margin: 0 auto;
        max-width: 22rem;
    }
}


/* ==========================================================================
   14. Newsletter-Section
   ========================================================================== */

.newsletter-section {
    padding: clamp(2.5rem, 5vw, 3.5rem) 0;
    background-color: var(--gmeiner-bg-sage);
}

.newsletter-section__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 32rem;
    margin: 0 auto;
    text-align: center;
}

.newsletter-section__title {
    margin: 0 0 1rem;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font-display);
    font-size: clamp(1.75rem, 4vw, 2.5rem);
    font-weight: 400;
    line-height: 1.2;
}

.newsletter-section__text {
    margin: 0 0 1.5rem;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: clamp(0.9375rem, 1.5vw, 1.0625rem);
    font-weight: 400;
    line-height: 1.65;
}

.newsletter-form {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    width: 100%;
}

.newsletter-form__field {
    width: 100%;
}

.newsletter-form__input {
    width: 100%;
    padding: 0.875rem 1rem;
    border: 1px solid rgba(42, 42, 42, 0.2);
    background-color: var(--gmeiner-white);
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 1rem;
    line-height: 1.4;
    text-align: left;
}

.newsletter-form__input:focus {
    border-color: var(--gmeiner-brown);
    outline: none;
}

.newsletter-form__consent {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.875rem;
    line-height: 1.55;
    text-align: left;
    cursor: pointer;
}

.newsletter-form__consent a {
    color: var(--gmeiner-brown);
    text-decoration: underline;
}

.newsletter-form__consent a:hover,
.newsletter-form__consent a:focus-visible {
    color: var(--gmeiner-brown-dark);
}

.newsletter-form__checkbox {
    flex-shrink: 0;
    margin-top: 0.25rem;
}

.newsletter-form__honeypot {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.newsletter-form__submit {
    width: auto;
    align-self: center;
    border: none;
    cursor: pointer;
    text-align: center;
}

.newsletter-form__unsubscribe {
    align-self: center;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    line-height: 1.4;
    text-transform: uppercase;
    text-decoration: underline;
}

.newsletter-form__unsubscribe:hover,
.newsletter-form__unsubscribe:focus-visible {
    color: var(--gmeiner-brown);
}

.newsletter-form__iframe {
    position: absolute;
    width: 0;
    height: 0;
    border: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
}

.newsletter-form__success {
    width: 100%;
}

.newsletter-form__success-lead {
    margin: 0 0 0.75rem;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font-display);
    font-size: clamp(1.375rem, 3vw, 1.75rem);
    font-weight: 400;
    line-height: 1.25;
}

.newsletter-form__success-text {
    margin: 0;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: clamp(0.9375rem, 1.5vw, 1.0625rem);
    line-height: 1.65;
}

.newsletter-section.is-success .newsletter-section__title {
    margin-bottom: 1.25rem;
}

.newsletter-page__inner {
    padding-bottom: var(--page-pad-bottom);
}

.newsletter-form[hidden],
.newsletter-form__success[hidden],
#newsletter-intro[hidden] {
    display: none;
}


/* ==========================================================================
   15. Site-Footer
   ========================================================================== */

.site-footer {
    margin-top: 0;
}

.site-footer__main {
    padding: clamp(3rem, 6vw, 4.5rem) 0;
    background-color: var(--gmeiner-bg-footer);
}

.site-footer__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr) minmax(0, 0.85fr) minmax(0, 0.85fr);
    gap: clamp(2rem, 4vw, 3.5rem);
    align-items: start;
}

.site-footer__heading {
    margin: 0 0 1.25rem;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: var(--letter-spacing-eyebrow);
    line-height: 1.5;
    text-transform: uppercase;
}

.site-footer__social,
.site-footer__links,
.site-footer__stores {
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-footer__stores a,
.site-footer__links a {
    color: var(--gmeiner-text);
    font-size: 0.9375rem;
    line-height: 1.55;
    text-decoration: none;
    transition: color var(--transition-fast);
}

.site-footer__stores a:hover,
.site-footer__stores a:focus-visible,
.site-footer__links a:hover,
.site-footer__links a:focus-visible {
    color: var(--gmeiner-brown);
    text-decoration: underline;
}

.site-footer__stores li + li,
.site-footer__links li + li {
    margin-top: 0.5rem;
}

.site-footer__social-link {
    display: inline-flex;
    gap: 0.625rem;
    align-items: center;
    color: var(--gmeiner-brown);
    font-size: 0.9375rem;
    text-decoration: none;
    transition: color var(--transition-fast);
}

.site-footer__social-link:hover,
.site-footer__social-link:focus-visible {
    color: var(--gmeiner-brown-dark);
}

.site-footer__social-icon {
    width: 1.375rem;
    height: 1.375rem;
    flex-shrink: 0;
}

.site-footer__legal {
    padding: 0.875rem 0;
    background-color: var(--gmeiner-bg-footer);
    border-top: 1px solid rgba(93, 50, 34, 0.08);
}

.site-footer__legal-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.25rem;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-footer__legal-links a {
    color: var(--gmeiner-text-muted);
    font-size: 0.8125rem;
    line-height: 1.4;
    text-decoration: none;
    transition: color var(--transition-fast);
}

.site-footer__legal-links a:hover,
.site-footer__legal-links a:focus-visible {
    color: var(--gmeiner-brown);
    text-decoration: underline;
}

.site-footer__bar {
    padding: 1.125rem 0;
    background-color: var(--gmeiner-bg-sage);
    border-top: 1px solid rgba(93, 50, 34, 0.08);
}

.site-footer__bar-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}

.site-footer__copyright {
    margin: 0;
    color: var(--gmeiner-text-muted);
    font-size: 0.8125rem;
    line-height: 1.4;
}

@media (max-width: 991.98px) {
    .site-footer__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .site-footer__col--stores {
        grid-column: 1 / -1;
    }

    .site-footer__stores {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.5rem 1.25rem;
    }

    .site-footer__stores li + li {
        margin-top: 0;
    }
}

@media (max-width: 575.98px) {
    .site-footer__grid {
        grid-template-columns: 1fr;
        gap: 2.25rem;
    }

    .site-footer__legal-links {
        justify-content: flex-start;
    }

    .site-footer__bar-inner {
        flex-direction: column;
        align-items: flex-start;
    }
}


/* ==========================================================================
   16. Rechtstexte (Impressum, Datenschutz …)
   ========================================================================== */

.legal-page {
    /* Kein padding-top: Abstand steuert .breadcrumbs (--breadcrumb-pad-top) */
    padding: 0 0 var(--page-pad-bottom);
    background-color: var(--gmeiner-bg-cream);
}

.shop-not-found {
    padding: 0 0 clamp(8rem, 24vh, 14rem);
}

.shop-not-found .shop-not-found__header {
    margin-top: clamp(5.5rem, 18vh, 11rem);
}

.shop-not-found__text {
    margin: 0 auto 1.5rem;
    max-width: 36rem;
    color: var(--gmeiner-text);
    font-size: 1rem;
    line-height: 1.6;
    text-align: center;
}

.shop-not-found__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1rem;
}

.shop-not-found__actions .btn-gmeiner,
.shop-not-found__actions .btn-gmeiner-outline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 10rem;
    padding: 0.875rem 2rem;
    text-align: center;
}

.shop-not-found__actions .btn-gmeiner-outline {
    border-color: var(--gmeiner-brown);
    color: var(--gmeiner-brown);
    text-transform: uppercase;
    letter-spacing: var(--letter-spacing-nav);
}

.legal-page__content h2 {
    margin: 2rem 0 0.75rem;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font);
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1.5;
    text-transform: uppercase;
}

.legal-page__content h3 {
    margin: 2rem 0 0.75rem;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font);
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.35;
}

.legal-page__content h4 {
    margin: 1.25rem 0 0.5rem;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font);
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.45;
}

.legal-page__content h4[id] {
    scroll-margin-top: calc(var(--site-header-offset, 8rem) + 1rem);
}

.legal-page__content h5 {
    margin: 1rem 0 0.35rem;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: var(--font-size-body);
    font-weight: 700;
    line-height: var(--line-height-body);
}

.legal-page__content h2:first-child,
.legal-page__content h3:first-child {
    margin-top: 0;
}

.legal-page__content ul {
    margin: 0 0 1rem;
    padding-left: 1.25rem;
    color: var(--gmeiner-text);
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
}

.legal-page__content ul li + li {
    margin-top: 0.35rem;
}

.legal-page__table {
    width: 100%;
    margin: 0 0 1.5rem;
    border-collapse: collapse;
    font-size: 0.875rem;
    line-height: 1.45;
}

.legal-page__table th,
.legal-page__table td {
    padding: 0.65rem 0.75rem;
    border: 1px solid rgba(93, 50, 34, 0.14);
    text-align: left;
    vertical-align: top;
}

.legal-page__table thead th {
    color: var(--gmeiner-text) !important;
    font-weight: 700;
    background-color: rgba(93, 50, 34, 0.06);
}

.legal-page__table td {
    color: var(--gmeiner-text);
}

@media (max-width: 767.98px) {
    .legal-page__table {
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
}

.legal-page__content p {
    margin: 0 0 1rem;
    color: var(--gmeiner-text);
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
}

.legal-page__content a {
    color: var(--gmeiner-brown);
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.legal-page__content a:hover,
.legal-page__content a:focus-visible {
    color: var(--gmeiner-brown-dark);
}

.legal-page__note {
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 1px solid rgba(93, 50, 34, 0.12);
    color: var(--gmeiner-text-muted);
    font-size: 0.875rem;
}


/* ==========================================================================
   17. About – Familienunternehmen
   --------------------------------------------------------------------------
   Layout-Basis: .media-split (gemeinsam mit Company-Section)
   ========================================================================== */

.about-page {
    padding: 0 0 var(--page-pad-bottom);
    background-color: var(--gmeiner-bg-about);
}

.about-page__header {
    text-align: center;
}

.about-page__content {
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: var(--font-size-body);
    font-weight: 400;
    line-height: var(--line-height-body);
    text-align: center;
}

.about-page__content p {
    margin: 0 0 1rem;
}

.about-page__content p:last-child {
    margin-bottom: 0;
}

.about-page__signoff {
    margin-top: 1.75rem;
    font-style: italic;
}


/* ==========================================================================
   18. About – Auszeichnungen
   ========================================================================== */

.about-awards-page {
    padding: 0 0 var(--page-pad-bottom);
    background-color: var(--gmeiner-white);
}

.about-awards-page__header {
    text-align: center;
}

.about-awards-list {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-top: clamp(1rem, 2vw, 1.75rem);
}

.about-award {
    background-color: var(--gmeiner-bg-cream);
}

.about-award:nth-child(even) {
    background-color: var(--gmeiner-white);
}

.about-award__inner {
    /* Nur vertikal – horizontales Padding kommt von .container-gmeiner */
    padding-top: var(--section-pad-y);
    padding-bottom: var(--section-pad-y);
}

.about-award__title {
    margin: 0 0 clamp(1rem, 2vw, 1.5rem);
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: clamp(0.875rem, 1.8vw, 1rem);
    font-weight: 700;
    letter-spacing: var(--letter-spacing-eyebrow);
    line-height: 1.5;
    text-transform: uppercase;
}

.about-award__title-link {
    color: inherit;
    text-decoration: none;
}

.about-award__title-link:hover,
.about-award__title-link:focus-visible {
    color: var(--gmeiner-brown);
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.about-award__body {
    display: grid;
    grid-template-columns: minmax(0, 8fr) minmax(0, 4fr);
    gap: clamp(1.25rem, 3vw, 2.5rem);
    align-items: start;
}

.about-award__body--text-only {
    grid-template-columns: 1fr;
}

.about-award__content {
    min-width: 0;
}

.about-award__text {
    margin: 0;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: var(--font-size-body);
    font-weight: 400;
    line-height: var(--line-height-body);
    text-align: left;
}

.about-award__media {
    display: flex;
    align-items: center;
    justify-content: center;
}

.about-award__image-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    max-width: 100%;
    line-height: 0;
    text-decoration: none;
}

.about-award__image-link--sluurpy {
    padding: 0.5rem;
}

.about-award__image {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 13rem;
    object-fit: contain;
}

.about-award__image--sluurpy {
    max-width: 11.25rem;
    max-height: none;
}

/* Restaurant-Guru-Badge (wie Live-Widget sq5_n.css, lokal eingebunden) */
.restaurant-guru-badge {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: fit-content;
    max-width: 14rem;
    min-width: 9.375rem;
    margin: 0 auto;
    padding: 0.625rem;
    border: 4px solid var(--gmeiner-white);
    border-radius: 0.9375rem;
    background-color: #b71c1c;
    color: var(--gmeiner-white);
    font-family: 'Roboto Condensed', var(--gmeiner-font);
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.4;
    text-align: center;
    text-decoration: none;
    box-sizing: border-box;
    transition: opacity var(--transition-fast);
}

.restaurant-guru-badge:hover,
.restaurant-guru-badge:focus-visible {
    color: var(--gmeiner-white);
    opacity: 0.92;
}

.restaurant-guru-badge__venue {
    font-size: 1.25rem;
    line-height: 1.2;
}

.restaurant-guru-badge__star {
    display: block;
    flex-shrink: 0;
    width: 2.25rem;
    height: 2.25rem;
    margin: 0.35rem auto;
    background: url('../img/about/auszeichnungen/restaurant-guru-badge.svg') no-repeat center;
    background-size: contain;
}

.restaurant-guru-badge__label {
    font-size: 0.9375rem;
    line-height: 1.3;
}

.restaurant-guru-badge__prefix {
    display: block;
    text-transform: uppercase;
}

@media (max-width: 991.98px) {
    .about-award__title {
        text-align: center;
    }

    .about-award__body {
        grid-template-columns: 1fr;
    }

    /* Mobil: Bild über dem Fließtext */
    .about-award__media {
        order: -1;
    }
}


/* ==========================================================================
   19. Kontakt
   ========================================================================== */

.contact-page {
    padding: 0 0 var(--page-pad-bottom);
    background-color: var(--gmeiner-white);
}

.contact-page__header {
    text-align: center;
}

.contact-page__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(2rem, 5vw, 4rem);
    align-items: stretch;
}

.contact-page__col {
    padding: clamp(1.5rem, 3vw, 2.5rem);
    background-color: #f6f8f3;
}

.contact-page__col--company,
.contact-page__col--people {
    /* Höhe folgt dem Grid (stretch) */
    min-height: 100%;
}

.contact-page__intro {
    margin: 0 0 1.5rem;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: var(--font-size-body);
    font-weight: 400;
    line-height: var(--line-height-body);
}

.contact-field {
    margin: 0 0 1.25rem;
}

.contact-field:last-child {
    margin-bottom: 0;
}

.contact-field__label {
    margin: 0 0 0.35rem;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: var(--letter-spacing-eyebrow);
    line-height: 1.4;
    text-transform: uppercase;
}

.contact-field__value {
    margin: 0;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: var(--font-size-body);
    font-weight: 400;
    line-height: var(--line-height-body);
}

.contact-field__value a {
    color: inherit;
    text-decoration: none;
}

.contact-field__value a:hover,
.contact-field__value a:focus-visible {
    color: var(--gmeiner-brown);
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.contact-person {
    margin: 0 0 1.75rem;
}

.contact-person:last-child {
    margin-bottom: 0;
}

.contact-person__name {
    margin: 0 0 0.75rem;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: var(--font-size-body);
    font-weight: 700;
    line-height: 1.4;
}

.contact-page__cooperation {
    margin: clamp(2.75rem, 5vw, 4rem) 0 0;
}

.contact-instagram {
    display: inline-flex;
    align-items: center;
    gap: 0.85rem;
    margin: 1.5rem 0 clamp(2.75rem, 5vw, 4rem);
    color: var(--gmeiner-text);
    text-decoration: none;
}

.contact-instagram:hover,
.contact-instagram:focus-visible {
    color: var(--gmeiner-brown);
}

.contact-instagram__icon {
    flex-shrink: 0;
    width: 1.75rem;
    height: 1.75rem;
}

.contact-instagram__copy {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.contact-instagram__headline {
    font-family: var(--gmeiner-font);
    font-size: var(--font-size-body);
    font-weight: 700;
    line-height: 1.35;
}

.contact-instagram__label {
    font-family: var(--gmeiner-font);
    font-size: 0.875rem;
    font-weight: 400;
    line-height: 1.4;
}

.contact-stores {
    max-width: 50%;
    margin-left: 0;
    margin-right: auto;
    padding: clamp(1.5rem, 3vw, 2.5rem);
    background-color: var(--gmeiner-bg-cream);
}

.contact-stores__title {
    margin: 0 0 1rem;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: var(--letter-spacing-eyebrow);
    line-height: 1.4;
    text-transform: uppercase;
}

.contact-stores__list {
    margin: 0;
    padding: 0;
    list-style: none;
    border-top: 1px solid var(--overlay-text-12);
}

.contact-store {
    border-bottom: 1px solid var(--overlay-text-12);
}

.contact-store__toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    width: 100%;
    margin: 0;
    padding: 0.95rem 0;
    border: none;
    background: none;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: var(--letter-spacing-eyebrow);
    line-height: 1.4;
    text-align: left;
    text-transform: uppercase;
    cursor: pointer;
    transition: color var(--transition-fast);
}

.contact-store__toggle:hover,
.contact-store__toggle:focus-visible {
    color: var(--gmeiner-brown);
}

.contact-store__name {
    min-width: 0;
}

.contact-store__chevron {
    flex-shrink: 0;
    width: 1rem;
    height: 1rem;
    transition: transform var(--transition-fast);
}

.contact-store__toggle.is-open .contact-store__chevron {
    transform: rotate(180deg);
}

.contact-store__panel[hidden] {
    display: none;
}

.contact-store__content {
    padding: 0 0 1.15rem;
}

.contact-store__address {
    margin: 0 0 0.75rem;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: var(--font-size-body);
    font-weight: 400;
    line-height: var(--line-height-body);
}

.contact-store__maps {
    margin: 0;
}

.contact-store__maps a {
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font);
    font-size: var(--font-size-body);
    font-weight: 400;
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.contact-store__maps a:hover,
.contact-store__maps a:focus-visible {
    color: var(--gmeiner-brown-dark);
}

@media (max-width: 991.98px) {
    .contact-page__grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .contact-stores {
        max-width: none;
    }
}


/* ==========================================================================
   20. Presse
   ========================================================================== */

.press-page {
    padding: 0 0 var(--page-pad-bottom);
    background-color: var(--gmeiner-white);
}

.press-page__header {
    text-align: center;
}

.press-gallery {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(0.75rem, 2vw, 1.25rem);
    margin: 0 0 clamp(2rem, 4vw, 3rem);
    padding: 0;
    list-style: none;
}

.press-gallery__item {
    margin: 0;
    min-width: 0;
}

.press-gallery__image {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: cover;
}

.press-page__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(2rem, 5vw, 4rem);
    align-items: start;
}

.press-page__col--contact {
    padding: clamp(1.5rem, 3vw, 2.5rem);
    background-color: #fbfcf9;
}

.press-page__col--quotes {
    padding: clamp(1.5rem, 3vw, 2.5rem);
}

.press-block__title {
    margin: 0 0 1rem;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: var(--letter-spacing-eyebrow);
    line-height: 1.4;
    text-transform: uppercase;
}

.press-contact__intro {
    margin: 0 0 1.25rem;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: var(--font-size-body);
    font-weight: 400;
    line-height: var(--line-height-body);
}

.press-contact__person {
    font-weight: 700;
}

.press-quotes {
    margin: 0;
    padding: 0;
    list-style: none;
    border-top: 1px solid var(--overlay-text-12);
}

.press-quotes__item {
    border-bottom: 1px solid var(--overlay-text-12);
}

.press-quotes__text {
    margin: 0;
    padding: 0.95rem 0 0.25rem;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: var(--font-size-body);
    font-weight: 400;
    line-height: var(--line-height-body);
}

.press-quotes__source {
    margin: 0;
    padding: 0 0 0.95rem;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: var(--font-size-body);
    font-weight: 400;
    font-style: italic;
    line-height: var(--line-height-body);
}

@media (max-width: 991.98px) {
    .press-gallery {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .press-page__grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
}

@media (max-width: 575.98px) {
    .press-gallery {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .press-contact__person {
        display: block;
        margin-top: 0.35rem;
    }
}


/* ==========================================================================
   20.45 Story & Mission
   --------------------------------------------------------------------------
   Oberer Teil analog Karriere (Galerie + zentrierter Copy-Block).
   ========================================================================== */

.story-mission-page {
    padding: 0 0 var(--page-pad-bottom);
    background-color: var(--gmeiner-white);
}

.story-mission-page__copy {
    max-width: 42rem;
    margin: 0 auto;
    padding: clamp(2rem, 4vw, 3rem) 0 clamp(3rem, 6vw, 4.5rem);
    text-align: center;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: var(--font-size-body);
    font-weight: 400;
    line-height: var(--line-height-body);
}

.story-mission-page__body {
    margin: 0 0 1rem;
}

.story-mission-page__body:last-of-type {
    margin-bottom: 0;
}

.story-mission-stories {
    background-color: var(--gmeiner-white);
}

.story-mission-block {
    padding: var(--section-pad-y) 0;
}

.story-mission-block--media-left {
    background-color: var(--gmeiner-bg-cream);
}

.story-mission-block--media-right {
    background-color: var(--gmeiner-white);
}

.story-mission-block + .story-mission-block {
    padding-top: var(--section-pad-y);
}

.story-mission-block__inner {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    column-gap: clamp(1.25rem, 3vw, 2.25rem);
    row-gap: clamp(1.5rem, 4vw, 2rem);
    align-items: start;
}

.story-mission-block--media-right .story-mission-block__inner {
    grid-template-columns: minmax(0, 1fr) auto;
}

.story-mission-block--text-only .story-mission-block__inner {
    grid-template-columns: minmax(0, 1fr);
}

.story-mission-block--media-left .story-mission-block__media {
    order: 1;
    justify-self: start;
}

.story-mission-block--media-left .story-mission-block__content {
    order: 2;
}

.story-mission-block--media-right .story-mission-block__media {
    order: 2;
    justify-self: end;
}

.story-mission-block--media-right .story-mission-block__content {
    order: 1;
}

.story-mission-block__media {
    display: grid;
    grid-template-columns: 1fr;
    gap: clamp(0.75rem, 2vw, 1rem);
    /* Fallback ohne JS; Desktop setzt story-mission.js die Breite */
    width: min(20rem, 42%);
    max-width: 20rem;
    min-width: 0;
}

.story-mission-block__media--pair {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: min(28rem, 52%);
    max-width: 28rem;
}

.story-mission-block__figure {
    margin: 0;
    min-width: 0;
    line-height: 0;
}

.story-mission-block__image {
    display: block;
    width: 100%;
    max-width: 20rem;
    height: auto;
    object-fit: contain;
    box-shadow: 0 0.35rem 1.1rem rgba(42, 42, 42, 0.08);
}

.story-mission-block__media--pair .story-mission-block__image {
    max-width: none;
}

.story-mission-block__year {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.6rem;
    margin: 0 0 0.75rem;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.8125rem;
    font-weight: 400;
    letter-spacing: var(--letter-spacing-eyebrow);
    line-height: 1.45;
    text-transform: uppercase;
}

.story-mission-block__year-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.55rem;
    border: 1px solid rgba(42, 42, 42, 0.25);
    border-radius: 999px;
    font-size: 0.7rem;
    letter-spacing: 0.04em;
    line-height: 1.2;
}

.story-mission-block__title {
    margin: 0 0 1rem;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font-display);
    font-size: clamp(2rem, 4vw, 2.75rem);
    font-weight: 400;
    line-height: 1.15;
}

.story-mission-block__title--timeline {
    font-size: clamp(1.3rem, 2vw, 1.65rem);
    line-height: 1.3;
}

.story-mission-block__text {
    margin: 0 0 1rem;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: var(--font-size-body);
    font-weight: 400;
    line-height: var(--line-height-body);
}

.story-mission-block__text:last-of-type {
    margin-bottom: 0;
}

@media (max-width: 991.98px) {
    .story-mission-block__inner,
    .story-mission-block--media-right .story-mission-block__inner,
    .story-mission-block--text-only .story-mission-block__inner {
        grid-template-columns: 1fr;
    }

    .story-mission-block--media-left .story-mission-block__media,
    .story-mission-block--media-right .story-mission-block__media {
        order: 1;
        justify-self: start;
        width: min(20rem, 100%);
        max-width: min(20rem, 100%);
    }

    /* Gestapelt: keine Höhenkopplung – JS setzt hier nichts sinnvolles */
    .story-mission-block--media-left .story-mission-block__image,
    .story-mission-block--media-right .story-mission-block__image {
        width: 100% !important;
        max-width: 20rem;
        max-height: none !important;
        height: auto !important;
    }

    .story-mission-block--media-left .story-mission-block__content,
    .story-mission-block--media-right .story-mission-block__content {
        order: 2;
    }
}


/* ==========================================================================
   20.48 Firmenkunden
   ========================================================================== */

.corporate-page {
    padding: 0 0 var(--page-pad-bottom);
    background-color: var(--gmeiner-white);
}

.corporate-page__intro {
    padding: clamp(2.5rem, 5vw, 4rem) 0;
    background-color: var(--gmeiner-bg-about);
}

.corporate-page__intro-inner {
    text-align: left;
}

.corporate-page__intro-inner .press-block__title {
    text-align: left;
}

.corporate-page__intro-text {
    margin: 0 0 1rem;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: var(--font-size-body);
    font-weight: 400;
    line-height: var(--line-height-body);
    text-align: left;
}

.corporate-page__intro-text:last-of-type {
    margin-bottom: 0;
}

.corporate-page__intro-inner .corporate-page__cta-text {
    margin: 1.75rem 0 1.25rem;
}

.corporate-page__intro-inner .corporate-page__actions {
    margin-top: 0;
    flex-wrap: nowrap;
}

.corporate-page__contact {
    padding: clamp(2.5rem, 5vw, 4rem) 0;
    background-color: var(--gmeiner-white);
}

.corporate-page__contact-inner {
    text-align: left;
}

.corporate-page__contact-heading {
    margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
    text-align: left;
}

.corporate-page__people {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.corporate-page__people .contact-person {
    margin: 0;
    padding: clamp(1.25rem, 2.5vw, 1.75rem);
    background-color: var(--gmeiner-bg-sage);
    border: 0;
    border-radius: 0.375rem;
}

.corporate-page__people .contact-person:last-child {
    margin: 0;
    padding: clamp(1.25rem, 2.5vw, 1.75rem);
    border-bottom: 0;
}

.corporate-page__cta-text {
    margin: clamp(2rem, 4vw, 3rem) 0 1.5rem;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: var(--font-size-body);
    font-weight: 400;
    line-height: var(--line-height-body);
    text-align: left;
}

.corporate-page__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem 1rem;
    justify-content: flex-start;
}

.corporate-page__action,
.corporate-page__action:visited {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 12rem;
    padding: 0.95rem 1.5rem;
    border: 0;
    background-color: var(--gmeiner-bg-sage);
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.8125rem;
    font-weight: 400;
    letter-spacing: var(--letter-spacing-nav);
    line-height: 1.25;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
    transition: background-color var(--transition-fast), color var(--transition-fast);
}

.corporate-page__action:hover,
.corporate-page__action:focus-visible {
    background-color: var(--gmeiner-bg-mint);
    color: var(--gmeiner-text);
    outline: none;
}

@media (max-width: 767.98px) {
    .corporate-page__intro-inner .corporate-page__actions {
        flex-wrap: wrap;
    }
}

@media (max-width: 575.98px) {
    .corporate-page__people {
        grid-template-columns: 1fr;
    }

    .corporate-page__action {
        width: 100%;
    }
}

/* ==========================================================================
   20.5 Karriere
   ========================================================================== */
.career-page {
    padding: 0 0 var(--page-pad-bottom);
    background-color: var(--gmeiner-white);
}

.career-page__copy {
    max-width: 42rem;
    margin: 0 auto;
    padding: clamp(2rem, 4vw, 3rem) 0 clamp(3rem, 6vw, 4.5rem);
    text-align: center;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: var(--font-size-body);
    font-weight: 400;
    line-height: var(--line-height-body);
}

.career-page__lead {
    margin: 0 0 0.75rem;
}

.career-page__body {
    margin: 0 0 0.25rem;
}

.career-page__body:last-of-type {
    margin-bottom: 0;
}

.career-jobs {
    max-width: 50%;
    margin: clamp(1.5rem, 3vw, 2.5rem) auto 0;
    padding: 0;
    list-style: none;
    border-top: 1px solid var(--overlay-text-12);
}

.career-jobs__item {
    margin: 0;
    border-bottom: 1px solid var(--overlay-text-12);
}

.career-jobs__trigger {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    width: 100%;
    margin: 0;
    padding: clamp(1.15rem, 2.5vw, 1.5rem) clamp(1rem, 2vw, 1.35rem);
    border: 0;
    background-color: transparent;
    color: inherit;
    font: inherit;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    transition: background-color var(--transition-fast);
}

.career-jobs__trigger:hover,
.career-jobs__trigger:focus-visible {
    background-color: var(--gmeiner-bg-sage);
    outline: none;
}

.career-jobs__title {
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font-display);
    font-size: clamp(1.25rem, 2.2vw, 1.5rem);
    font-weight: 400;
    line-height: 1.3;
}

.career-jobs__line {
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: var(--font-size-body);
    font-weight: 400;
    line-height: var(--line-height-body);
}

@media (max-width: 991.98px) {
    .career-jobs {
        max-width: none;
    }
}

body.is-career-modal-open {
    overflow: hidden;
}

.career-modal {
    position: fixed;
    inset: 0;
    z-index: 1100;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(0.75rem, 2vw, 1.25rem);
}

.career-modal[hidden] {
    display: none;
}

.career-modal__backdrop {
    position: absolute;
    inset: 0;
    background-color: rgba(42, 42, 42, 0.45);
}

.career-modal__dialog {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    width: min(87.5rem, calc(100vw - 2.5rem));
    max-height: min(94vh, 58rem);
    overflow: auto;
    padding: clamp(2.75rem, 4vw, 3.25rem) clamp(1.5rem, 3vw, 2.5rem) clamp(1.5rem, 3vw, 2.5rem);
    background-color: var(--gmeiner-white);
    box-shadow: var(--shadow-elevated);
}

.career-modal__dialog:focus,
.career-modal__dialog:focus-visible {
    outline: none;
}

.career-modal__close {
    position: absolute;
    top: 0.55rem;
    right: 0.65rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--gmeiner-text);
    font-size: 1.75rem;
    line-height: 1;
    cursor: pointer;
}

.career-modal__close:hover,
.career-modal__close:focus-visible {
    color: var(--gmeiner-brown);
}

.career-modal__intro {
    margin: 0 0 1.75rem;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: var(--font-size-body);
    font-weight: 400;
    line-height: var(--line-height-body);
    text-align: center;
}

.career-modal__panel[hidden] {
    display: none;
}

.career-modal__header {
    margin: 0 0 clamp(1.25rem, 2.5vw, 1.75rem);
}

.career-modal__title {
    margin: 0 0 0.65rem;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font-display);
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 400;
    line-height: 1.2;
}

.career-modal__highlight {
    margin: 0 0 0.35rem;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: var(--font-size-body);
    font-weight: 700;
    line-height: var(--line-height-body);
}

.career-modal__location {
    margin: 0 0 0.5rem;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.8125rem;
    font-weight: 400;
    letter-spacing: var(--letter-spacing-eyebrow);
    line-height: 1.45;
    text-transform: uppercase;
}

.career-modal__columns {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(1rem, 2vw, 1.5rem);
    margin: 0 0 clamp(1.5rem, 3vw, 2.25rem);
}

.career-modal__col {
    padding: clamp(0.75rem, 1.2vw, 1rem);
    background-color: var(--gmeiner-bg-sage);
    border-radius: 0.375rem;
}

.career-modal__col-title {
    margin: 0 0 0.85rem;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font-display);
    font-size: clamp(1.125rem, 2vw, 1.375rem);
    font-weight: 400;
    line-height: 1.25;
}

.career-modal__list {
    margin: 0;
    padding-left: 1.15rem;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: var(--font-size-body);
    font-weight: 400;
    line-height: var(--line-height-body);
}

.career-modal__list li + li {
    margin-top: 0.45rem;
}

.career-modal__footer {
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem;
    align-items: flex-end;
    justify-content: space-between;
}

.career-modal__contact {
    min-width: min(100%, 18rem);
}

.career-modal__contact-heading {
    margin: 0 0 0.45rem;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: var(--letter-spacing-eyebrow);
    line-height: 1.4;
    text-transform: uppercase;
}

.career-modal__contact-company,
.career-modal__contact-line {
    margin: 0;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.875rem;
    font-weight: 400;
    line-height: 1.55;
}

.career-modal__contact-company {
    margin-bottom: 0.35rem;
    text-transform: uppercase;
}

.career-modal__contact-line a {
    color: var(--gmeiner-brown);
    text-decoration: none;
}

.career-modal__contact-line a:hover,
.career-modal__contact-line a:focus-visible {
    text-decoration: underline;
}

.career-modal__apply {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.875rem 1.75rem;
    border: 0;
    background-color: var(--gmeiner-bg-mint);
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.8125rem;
    font-weight: 400;
    letter-spacing: var(--letter-spacing-nav);
    line-height: 1;
    text-decoration: none;
    text-transform: uppercase;
    cursor: pointer;
    transition: background-color var(--transition-fast), color var(--transition-fast);
}

.career-modal__apply:hover,
.career-modal__apply:focus-visible {
    background-color: #bddccb;
    outline: none;
}

@media (max-width: 991.98px) {
    .career-modal__columns {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767.98px) {
    .career-modal {
        align-items: stretch;
        padding: 0.75rem;
    }

    .career-modal__dialog {
        width: 100%;
        max-height: calc(100vh - 1.5rem);
        max-height: calc(100dvh - 1.5rem);
        margin: auto 0;
        padding: 2.75rem 1rem 1.35rem;
        border: 1px solid rgba(42, 42, 42, 0.12);
        border-radius: 0.5rem;
        box-shadow: 0 0.5rem 1.5rem rgba(42, 42, 42, 0.12);
        -webkit-overflow-scrolling: touch;
    }

    .career-modal__close {
        top: 0.35rem;
        right: 0.35rem;
        width: 2.5rem;
        height: 2.5rem;
        font-size: 1.85rem;
        z-index: 2;
    }

    .career-modal__intro {
        max-width: none;
        margin: 0 0 1.35rem;
        font-size: 0.875rem;
        line-height: 1.55;
    }

    .career-modal__header {
        margin-bottom: 1.15rem;
    }

    .career-modal__title {
        font-size: 1.5rem;
        line-height: 1.2;
    }

    .career-modal__highlight {
        font-size: 0.9375rem;
    }

    .career-modal__location {
        font-size: 0.75rem;
        letter-spacing: 0.04em;
    }

    .career-modal__columns {
        grid-template-columns: 1fr;
        gap: 0.85rem;
        margin-bottom: 1.35rem;
    }

    .career-modal__col {
        padding: 1.1rem 1rem;
        border-radius: 0.5rem;
    }

    .career-modal__col-title {
        margin-bottom: 0.7rem;
        font-size: 1.2rem;
    }

    .career-modal__list {
        font-size: 0.875rem;
        line-height: 1.5;
    }

    .career-modal__footer {
        flex-direction: column;
        align-items: stretch;
        gap: 1.35rem;
    }

    .career-modal__contact {
        min-width: 0;
    }

    .career-modal__contact-heading {
        margin-bottom: 0.55rem;
    }

    .career-modal__contact-company,
    .career-modal__contact-line {
        font-size: 0.8125rem;
        line-height: 1.5;
    }

    .career-modal__apply {
        width: 100%;
        min-height: 3rem;
        padding: 1rem 1.25rem;
        font-size: 0.8125rem;
    }
}


/* ==========================================================================
   20.6 Karriere – Bewerbungsformular
   ========================================================================== */

.career-application {
    padding: 0 0 var(--page-pad-bottom);
    background-color: var(--gmeiner-white);
}

.career-application__panel {
    max-width: 48rem;
    margin: 0 auto;
    padding: clamp(1.5rem, 3vw, 2.5rem);
    background-color: #f3f3f1;
}

.career-application__error {
    margin: 0 0 1.25rem;
    color: #8a1f1f;
    font-family: var(--gmeiner-font);
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
}

.career-application__autosave {
    margin: 0 0 1rem;
    color: #5a6b4f;
    font-family: var(--gmeiner-font);
    font-size: 0.875rem;
}

.career-application__success {
    max-width: 40rem;
    margin: 0 auto;
    text-align: center;
}

.career-application__success-lead {
    margin: 0 0 0.75rem;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font-display);
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 400;
}

.career-application__success-text {
    margin: 0 0 1.5rem;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
}

.career-application__section-title {
    margin: clamp(1.5rem, 3vw, 2rem) 0 1rem;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: var(--letter-spacing-eyebrow);
    line-height: 1.4;
    text-transform: uppercase;
}

.career-application__section-title:first-of-type {
    margin-top: 0;
}

.career-application__note {
    margin: 0 0 1.25rem;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.875rem;
    line-height: 1.55;
}

.career-application__field {
    display: grid;
    grid-template-columns: minmax(10rem, 14rem) minmax(0, 1fr);
    gap: 0.75rem 1rem;
    align-items: start;
    margin: 0 0 0.95rem;
}

.career-application__field--stack {
    grid-template-columns: 1fr;
}

.career-application__label {
    padding-top: 0.55rem;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: var(--font-size-body);
    font-weight: 400;
    line-height: 1.4;
    text-align: right;
}

.career-application__required {
    margin-left: 0.15rem;
    color: #b42318;
}

.career-application__control {
    min-width: 0;
}

.career-application__input,
.career-application__select {
    width: 100%;
    max-width: 28rem;
    padding: 0.65rem 0.75rem;
    border: 1px solid rgba(42, 42, 42, 0.25);
    background-color: var(--gmeiner-white);
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 1rem;
    line-height: 1.4;
}

.career-application__input:focus,
.career-application__select:focus {
    border-color: var(--gmeiner-brown);
    outline: none;
}

.career-application__field--error .career-application__input,
.career-application__field--error .career-application__select {
    border-color: #b42318;
}

.career-dropzone {
    position: relative;
    width: 100%;
    max-width: 28rem;
}

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

.career-dropzone__surface {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-height: 3.25rem;
    padding: 0.75rem 0.9rem;
    border: 1px dashed rgba(42, 42, 42, 0.35);
    background-color: var(--gmeiner-white);
    color: var(--gmeiner-text);
    cursor: pointer;
    transition: border-color 0.15s ease, background-color 0.15s ease;
}

.career-dropzone__surface:hover,
.career-dropzone__surface:focus-visible,
.career-dropzone.is-dragover .career-dropzone__surface {
    border-color: var(--gmeiner-brown);
    background-color: var(--gmeiner-bg-sage);
    outline: none;
}

.career-dropzone.has-file .career-dropzone__surface {
    border-style: solid;
    border-color: rgba(93, 50, 34, 0.35);
}

.career-dropzone.has-error .career-dropzone__surface {
    border-color: #b42318;
    border-style: solid;
}

.career-application__field--error .career-dropzone__surface {
    border-color: #b42318;
}

.career-dropzone__icon {
    flex: 0 0 auto;
    display: inline-flex;
    color: var(--gmeiner-brown);
}

.career-dropzone__copy {
    flex: 1 1 auto;
    min-width: 0;
    font-family: var(--gmeiner-font);
    font-size: 0.9375rem;
    line-height: 1.4;
}

.career-dropzone__browse {
    color: var(--gmeiner-brown);
    text-decoration: underline;
}

.career-dropzone__name {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.career-dropzone.has-error .career-dropzone__name {
    color: #b42318;
}

.career-dropzone__clear {
    flex: 0 0 auto;
    width: 1.75rem;
    height: 1.75rem;
    padding: 0;
    border: 1px solid rgba(42, 42, 42, 0.25);
    background-color: var(--gmeiner-white);
    color: var(--gmeiner-text);
    font-size: 1.25rem;
    line-height: 1;
    cursor: pointer;
}

.career-dropzone__clear:hover,
.career-dropzone__clear:focus-visible {
    border-color: var(--gmeiner-brown);
    color: var(--gmeiner-brown);
    outline: none;
}

.career-application__hint {
    display: block;
    margin-top: 0.35rem;
    color: #b42318;
    font-size: 0.8125rem;
    line-height: 1.4;
}

.career-application__file-hint {
    display: block;
    margin-top: 0.25rem;
    color: var(--gmeiner-text-muted);
    font-size: 0.8125rem;
}

.career-application__choices {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.5rem;
    padding-top: 0.45rem;
}

.career-application__choices--stack {
    flex-direction: column;
    gap: 0.85rem;
}

.career-application__choices .checkout-choice__label {
    font-weight: 400;
}

.career-application__check {
    margin-top: 0;
}

.career-application__select {
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M6 9l6 6 6-6' stroke='%232a2a2a' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    background-size: 1rem;
    padding-right: 2.25rem;
}

.career-application__privacy-link {
    margin: 0 0 0.85rem;
}

.career-application__privacy-link a {
    color: var(--gmeiner-brown);
    text-decoration: underline;
}

.career-application__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 1.5rem;
    align-items: center;
    margin-top: clamp(1.5rem, 3vw, 2rem);
}

.career-application__cancel {
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.8125rem;
    letter-spacing: var(--letter-spacing-nav);
    text-decoration: underline;
    text-transform: uppercase;
}

.career-application__cancel:hover,
.career-application__cancel:focus-visible {
    color: var(--gmeiner-brown);
}

.career-upload-overlay {
    position: fixed;
    inset: 0;
    z-index: 10050;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    background: rgba(28, 24, 22, 0.72);
}

.career-upload-overlay[hidden] {
    display: none !important;
}

body.career-upload-overlay-open {
    overflow: hidden;
}

.career-upload-overlay__panel {
    width: min(100%, 28rem);
    padding: clamp(1.5rem, 4vw, 2rem);
    border-radius: 0.25rem;
    background: #fff;
    box-shadow: 0 1.25rem 3rem rgba(0, 0, 0, 0.2);
    text-align: center;
}

.career-upload-overlay__spinner {
    width: 2.75rem;
    height: 2.75rem;
    margin: 0 auto 1rem;
    border: 3px solid rgba(122, 88, 56, 0.2);
    border-top-color: var(--gmeiner-brown, #7a5838);
    border-radius: 50%;
    animation: career-upload-spin 0.85s linear infinite;
}

.career-upload-overlay.is-processing .career-upload-overlay__progress {
    opacity: 0.45;
}

.career-upload-overlay__title {
    margin: 0 0 0.5rem;
    color: var(--gmeiner-text, #1c1816);
    font-family: var(--gmeiner-font);
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.career-upload-overlay__text {
    margin: 0 0 1rem;
    color: var(--gmeiner-text, #1c1816);
    font-family: var(--gmeiner-font);
    font-size: 0.9375rem;
    line-height: 1.5;
}

.career-upload-overlay__progress {
    overflow: hidden;
    height: 0.5rem;
    margin-bottom: 1rem;
    border-radius: 999px;
    background: rgba(122, 88, 56, 0.15);
}

.career-upload-overlay__progress-bar {
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: var(--gmeiner-brown, #7a5838);
    transition: width 0.2s ease;
}

.career-upload-overlay.is-indeterminate .career-upload-overlay__progress-bar {
    width: 35% !important;
    animation: career-upload-indeterminate 1.4s ease-in-out infinite;
}

.career-upload-overlay__hint {
    margin: 0;
    color: rgba(28, 24, 22, 0.72);
    font-family: var(--gmeiner-font);
    font-size: 0.8125rem;
    line-height: 1.5;
}

@keyframes career-upload-spin {
    to {
        transform: rotate(360deg);
    }
}

@keyframes career-upload-indeterminate {
    0% {
        transform: translateX(-120%);
    }
    100% {
        transform: translateX(320%);
    }
}

@media (max-width: 767.98px) {
    .career-application__field {
        grid-template-columns: 1fr;
        gap: 0.35rem;
    }

    .career-application__label {
        padding-top: 0;
        text-align: left;
    }

    .career-application__input,
    .career-application__select,
    .career-dropzone {
        max-width: none;
    }
}


/* ==========================================================================
   21. Katalog anfordern
   ========================================================================== */

.catalog-page {
    padding: 0 0 var(--page-pad-bottom);
    background-color: var(--gmeiner-white);
}

.catalog-page__header {
    text-align: center;
}

.catalog-page__intro {
    max-width: 42rem;
    margin: 0 0 clamp(1.75rem, 3vw, 2.5rem);
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: var(--font-size-body);
    font-weight: 400;
    line-height: var(--line-height-body);
    text-align: left;
}

.catalog-page__intro p {
    margin: 0 0 0.75rem;
}

.catalog-page__intro p:last-child {
    margin-bottom: 0;
}

.catalog-form-panel {
    max-width: 36rem;
    margin: 0;
    padding: clamp(1.75rem, 3vw, 2.75rem);
    background-color: #f5f5f3;
}

.catalog-form__prompt {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    margin: 0 0 1.75rem;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: var(--font-size-body);
    font-weight: 700;
    line-height: var(--line-height-body);
}

.catalog-form__prompt-line {
    display: block;
}

.catalog-form__error {
    margin: 0 0 1rem;
    color: #8a1f1f;
    font-family: var(--gmeiner-font);
    font-size: var(--font-size-body);
}

.catalog-form__success {
    max-width: 36rem;
    margin: 0 auto;
    padding: clamp(2rem, 4vw, 3rem) 0;
    text-align: center;
}

.catalog-form__success-lead {
    margin: 0 0 0.85rem;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font-display);
    font-size: clamp(1.75rem, 3.5vw, 2.25rem);
    font-weight: 400;
    line-height: 1.2;
}

.catalog-form__success-text {
    margin: 0;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
}

.btn-catalog:disabled {
    opacity: 0.65;
    cursor: wait;
}

.catalog-form__honeypot {
    position: absolute;
    left: -10000px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.catalog-options {
    margin: 0 0 2rem;
    border-top: 1px solid rgba(42, 42, 42, 0.35);
}

.catalog-options__row {
    display: flex;
    align-items: center;
    min-height: 2.75rem;
    padding: 0.65rem 0;
    border-bottom: 1px solid rgba(42, 42, 42, 0.35);
}

.catalog-options__row--split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.catalog-options__item {
    margin-top: 0;
    align-items: center;
}

.catalog-options .checkout-check {
    align-items: center;
}

/* Checkbox wie Live: leer weiß / aktiv sage + × */
.catalog-options .checkout-check__box {
    width: 1.125rem;
    height: 1.125rem;
    margin-top: 0;
    border: 1px solid rgba(42, 42, 42, 0.45);
    background-color: var(--gmeiner-white);
}

.catalog-options .checkout-check__input:checked + .checkout-check__box {
    border-color: rgba(42, 42, 42, 0.25);
    background-color: var(--gmeiner-bg-sage);
    background-image: none;
}

.catalog-options .checkout-check__input:checked + .checkout-check__box::before {
    content: '×';
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: var(--gmeiner-text);
    font-size: 0.9375rem;
    font-weight: 700;
    line-height: 1;
}

@media (max-width: 575.98px) {
    .catalog-options__row--split {
        grid-template-columns: 1fr;
        gap: 0.75rem;
    }
}

.catalog-form__fields {
    margin-bottom: 1.5rem;
}

.catalog-form__fields .checkout-field--street {
    grid-column: 1 / 9;
}

.catalog-form__fields .checkout-field--houseno {
    grid-column: 9 / 13;
}

.catalog-form__fields .checkout-field--zip {
    grid-column: 1 / 5;
}

.catalog-form__fields .checkout-field--city {
    grid-column: 5 / 13;
}

.catalog-captcha {
    display: grid;
    grid-template-columns: minmax(8rem, 11rem) minmax(0, 1fr);
    gap: 0.85rem;
    align-items: end;
    grid-column: 1 / -1;
}

.catalog-captcha__field {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    min-width: 0;
}

.catalog-captcha__code {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 2.85rem;
    padding: 0.5rem;
    background-color: #2a2a2a;
    color: var(--gmeiner-white);
    font-family: var(--gmeiner-font);
    font-size: 1.125rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    user-select: none;
}

.btn-catalog {
    display: inline-block;
    min-width: 14rem;
    padding: 0.95rem 1.75rem;
    border: none;
    background-color: var(--gmeiner-bg-sage);
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font);
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: var(--letter-spacing-nav);
    line-height: 1;
    text-transform: uppercase;
    cursor: pointer;
    transition: background-color var(--transition-fast), color var(--transition-fast);
}

.btn-catalog:hover,
.btn-catalog:focus-visible {
    background-color: var(--gmeiner-bg-mint);
    color: var(--gmeiner-brown-dark);
}

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

@media (max-width: 575.98px) {
    .catalog-captcha {
        grid-template-columns: 1fr;
        align-items: stretch;
    }
}


/* ==========================================================================
   22. Barrierefreiheits-Widget
   ========================================================================== */

body .accessibility-widget {
    position: fixed !important;
    right: 0.75rem !important;
    bottom: 0.75rem !important;
    z-index: 2147483000 !important;
    font-family: var(--gmeiner-font);
}

.site-fab {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: none;
    border-radius: 50%;
    background-color: var(--gmeiner-brown);
    color: var(--gmeiner-white);
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
    transition: background-color var(--transition-fast), transform var(--transition-fast);
}

.site-fab:hover,
.site-fab:focus-visible {
    background-color: var(--gmeiner-brown-dark);
    transform: scale(1.05);
}

.site-fab--consent {
    position: fixed;
    left: 0.75rem;
    bottom: 0.75rem;
    z-index: 2147483000;
}

.site-fab__cookie-chip {
    fill: var(--gmeiner-brown);
}

.site-fab--consent:hover .site-fab__cookie-chip,
.site-fab--consent:focus-visible .site-fab__cookie-chip {
    fill: var(--gmeiner-brown-dark);
}

body .accessibility-widget__toggle {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 2rem !important;
    height: 2rem !important;
    padding: 0 !important;
    border: none !important;
    border-radius: 50% !important;
    background-color: var(--gmeiner-brown) !important;
    color: var(--gmeiner-white) !important;
    cursor: pointer !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18) !important;
    transition: background-color var(--transition-fast), transform var(--transition-fast) !important;
}

body .accessibility-widget__toggle:hover,
body .accessibility-widget__toggle:focus-visible {
    background-color: var(--gmeiner-brown-dark) !important;
    transform: scale(1.05);
}

body .accessibility-widget__panel {
    position: absolute !important;
    right: 0 !important;
    bottom: calc(100% + 0.75rem) !important;
    width: min(17.5rem, calc(100vw - 1.5rem)) !important;
    margin: 0 !important;
    padding: 0 !important;
    background-color: var(--gmeiner-white) !important;
    border: 1px solid var(--overlay-black-08) !important;
    border-radius: 0.5rem !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(0.5rem) !important;
    transition: opacity var(--transition-fast), visibility var(--transition-fast), transform var(--transition-fast) !important;
}

body .accessibility-widget__panel[hidden] {
    display: none !important;
}

body .accessibility-widget__panel.is-open {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateY(0) !important;
}

body .accessibility-widget__header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 0.75rem !important;
    padding: 0.875rem 1.125rem !important;
    border-bottom: 1px solid var(--overlay-black-08) !important;
}

body .accessibility-widget__title {
    margin: 0 !important;
    color: var(--gmeiner-text) !important;
    font-family: var(--gmeiner-font) !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    line-height: 1.4 !important;
}

body .accessibility-widget__close {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    height: auto !important;
    padding: 0.25rem !important;
    border: none !important;
    border-radius: 0.25rem !important;
    background: transparent !important;
    color: var(--gmeiner-text-muted) !important;
    cursor: pointer !important;
}

body .accessibility-widget__close:hover,
body .accessibility-widget__close:focus-visible {
    background-color: var(--gmeiner-bg-cream) !important;
    color: var(--gmeiner-text) !important;
}

body .accessibility-widget__content {
    padding: 1.125rem !important;
}

body .accessibility-widget__fieldset {
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    min-width: 0 !important;
}

body .accessibility-widget__legend {
    float: none !important;
    width: 100% !important;
    margin: 0 0 0.625rem !important;
    padding: 0 !important;
    color: var(--gmeiner-text) !important;
    font-size: 0.875rem !important;
    font-weight: 600 !important;
}

body .accessibility-widget__font-controls {
    display: flex !important;
    gap: 0.5rem !important;
}

body .accessibility-widget__font-btn {
    flex: 1 !important;
    min-width: 2.25rem !important;
    height: 2.5rem !important;
    padding: 0 !important;
    border: 2px solid rgba(0, 0, 0, 0.1) !important;
    border-radius: 0.375rem !important;
    background-color: var(--gmeiner-white) !important;
    color: var(--gmeiner-text) !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    cursor: pointer !important;
}

body .accessibility-widget__font-btn[data-size="1"] { font-size: 0.875rem !important; }
body .accessibility-widget__font-btn[data-size="1.1"] { font-size: 1rem !important; }
body .accessibility-widget__font-btn[data-size="1.2"] { font-size: 1.125rem !important; }
body .accessibility-widget__font-btn[data-size="1.3"] { font-size: 1.25rem !important; }
body .accessibility-widget__font-btn[data-size="1.4"] { font-size: 1.375rem !important; }

body .accessibility-widget__font-btn:hover,
body .accessibility-widget__font-btn:focus-visible {
    border-color: var(--gmeiner-brown) !important;
    background-color: var(--gmeiner-bg-cream) !important;
}

body .accessibility-widget__font-btn.is-active {
    border-color: var(--gmeiner-brown) !important;
    background-color: var(--gmeiner-brown) !important;
    color: var(--gmeiner-white) !important;
}


/* ==========================================================================
   19. Breadcrumbs
   --------------------------------------------------------------------------
   Einheitlicher Abstand unter dem Site-Header.
   Seiten mit Breadcrumbs: Section ohne padding-top
   (About, Cart, Stores, Category, Product, Legal, …).
   ========================================================================== */

.breadcrumbs {
    padding: var(--breadcrumb-pad-top) 0 var(--breadcrumb-pad-bottom);
}

.breadcrumbs__list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
    color: var(--gmeiner-text-muted);
    font-size: 0.8125rem;
    line-height: 1.5;
}

.breadcrumbs__item {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.breadcrumbs__item:not(:last-child)::after {
    content: '>';
    color: var(--overlay-text-35);
}

.breadcrumbs__link {
    color: var(--gmeiner-text-muted);
    text-decoration: none;
    transition: color var(--transition-fast);
}

.breadcrumbs__link:hover,
.breadcrumbs__link:focus-visible {
    color: var(--gmeiner-brown);
}

.breadcrumbs__current {
    color: var(--gmeiner-text);
}

/* ==========================================================================
   20. Produktdetail
   ========================================================================== */

.product-detail {
    padding: 0 0 var(--page-pad-bottom);
}

.product-detail__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(2rem, 5vw, 4rem);
    align-items: start;
}

.product-detail__gallery {
    position: sticky;
    top: calc(var(--site-header-offset, 8rem) + 1rem);
}

.product-detail__main-media {
    position: relative;
    margin: 0;
    background-color: var(--gmeiner-white);
    overflow: hidden;
    touch-action: pan-y pinch-zoom;
}

.product-detail__main-media img,
.product-detail__main-video {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: cover;
}

.product-detail__wishlist {
    top: 0.75rem;
    right: 0.75rem;
    z-index: 3;
    opacity: 1;
}

.product-detail__wishlist:hover,
.product-detail__wishlist:focus-visible {
    opacity: 1;
}

.product-detail__gallery-nav {
    position: absolute;
    top: 50%;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.92);
    color: var(--gmeiner-brown);
    box-shadow: 0 0.125rem 0.75rem var(--overlay-text-12);
    cursor: pointer;
    transform: translateY(-50%);
    transition: background-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);
}

.product-detail__gallery-nav svg {
    width: 1.25rem;
    height: 1.25rem;
}

.product-detail__gallery-nav--prev {
    left: 0.75rem;
}

.product-detail__gallery-nav--next {
    right: 0.75rem;
}

.product-detail__gallery-nav:hover,
.product-detail__gallery-nav:focus-visible {
    background-color: var(--gmeiner-brown);
    color: var(--gmeiner-white);
    transform: translateY(-50%) scale(1.04);
}

.product-detail__gallery-nav[hidden],
.product-detail__thumbs[hidden] {
    display: none !important;
}

.product-detail__main-video {
    background-color: #000;
}

.product-detail__thumbs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.625rem;
    margin: 0.625rem 0 0;
    padding: 0;
    list-style: none;
}

/* Zweite Thumbnail-Reihe vorerst ausblenden (Bilder 4–6) */
.product-detail__thumb-item:nth-child(n + 4):nth-child(-n + 6) {
    display: none;
}

.product-detail__thumb-item {
    min-width: 0;
}

.product-detail__thumb {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    padding: 0;
    border: 0;
    background-color: var(--gmeiner-white);
    cursor: pointer;
    overflow: hidden;
}

.product-detail__thumb::after {
    content: "";
    position: absolute;
    inset: 0;
    background-color: rgba(42, 42, 42, 0);
    pointer-events: none;
    transition: background-color 0.25s ease;
}

.product-detail__thumb:not(.is-active)::after {
    background-color: var(--overlay-text-08);
}

.product-detail__thumb.is-active::after {
    background-color: rgba(42, 42, 42, 0);
}

.product-detail__thumb:hover::after,
.product-detail__thumb:focus-visible::after {
    background-color: var(--overlay-text-18);
}

.product-detail__thumb.is-active:hover::after,
.product-detail__thumb.is-active:focus-visible::after {
    background-color: rgba(42, 42, 42, 0.06);
}

.product-detail__thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.25s ease;
}

.product-detail__thumb.is-active img {
    transform: scale(1.05);
}

.product-detail__thumb:hover img,
.product-detail__thumb:focus-visible img {
    transform: scale(1.03);
}

.product-detail__thumb.is-active:hover img,
.product-detail__thumb.is-active:focus-visible img {
    transform: scale(1.06);
}

.product-detail__thumb--video .product-detail__thumb-play {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: rgba(93, 50, 34, 0.35);
    pointer-events: none;
}

.product-detail__thumb--video .product-detail__thumb-play::before {
    content: "";
    width: 0;
    height: 0;
    margin-left: 0.2rem;
    border-top: 0.55rem solid transparent;
    border-bottom: 0.55rem solid transparent;
    border-left: 0.9rem solid var(--gmeiner-white);
}

.product-detail__title {
    margin: 0 0 1.25rem;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font-display);
    font-size: clamp(2.25rem, 4vw, 3.25rem);
    font-weight: 500;
    line-height: 1.15;
}

.product-detail__description {
    margin-bottom: 2rem;
    color: var(--gmeiner-text);
    font-size: 0.9375rem;
    line-height: 1.75;
}

.product-detail__description-text {
    margin: 0;
}

.product-detail__description p {
    margin: 0;
}

.product-detail__description p + p {
    margin-top: 1.25em;
}

.product-detail__description strong {
    font-weight: 700;
}

.product-detail__description-full[hidden] {
    display: none;
}

.product-detail__description-full .product-detail__more-btn {
    display: inline-block;
    margin-top: 0.5rem;
}

.product-detail__more-btn {
    display: inline;
    margin-left: 0.25rem;
    padding: 0;
    border: none;
    background: none;
    color: inherit;
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
    text-decoration: underline;
    text-underline-offset: 0.12em;
    cursor: pointer;
}

.product-detail__more-btn:hover,
.product-detail__more-btn:focus-visible {
    color: var(--gmeiner-brown);
}

.product-detail__variants-title {
    margin: 0 0 0.75rem;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.9375rem;
    font-weight: 700;
    letter-spacing: var(--letter-spacing-nav);
    line-height: 1.4;
    text-transform: uppercase;
}

.product-detail__variant-list {
    margin: 0 0 1.75rem;
    padding: 0;
    border: none;
    border-top: 1px solid var(--overlay-text-12);
}

.product-detail__variant-row {
    display: grid;
    grid-template-columns: 1.25rem minmax(0, 1fr) minmax(4.5rem, auto);
    gap: 0.75rem 1rem;
    align-items: center;
    margin: 0;
    padding: 0.75rem 0.5rem;
    border-bottom: 1px solid var(--overlay-text-12);
    cursor: pointer;
    transition: background-color var(--transition-fast);
}

.product-detail__variant-row.is-selected {
    background-color: var(--gmeiner-bg-sage);
}

.product-detail__variant-input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.product-detail__variant-indicator {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.125rem;
    height: 1.125rem;
    border: var(--border-subtle);
    background-color: var(--gmeiner-bg-sage);
}

.product-detail__variant-row.is-selected .product-detail__variant-indicator {
    border-color: rgba(42, 42, 42, 0.25);
    background-color: var(--gmeiner-bg-mint);
}

.product-detail__variant-row.is-selected .product-detail__variant-indicator::before {
    content: '×';
    color: var(--gmeiner-brown);
    font-size: 0.9375rem;
    font-weight: 700;
    line-height: 1;
}

.product-detail__variant-name {
    color: var(--gmeiner-text);
    font-size: 0.9375rem;
    line-height: 1.4;
}

.product-detail__variant-price {
    color: var(--gmeiner-text);
    font-size: 0.9375rem;
    font-weight: 400;
    text-align: right;
    white-space: nowrap;
    min-width: 4.5rem;
}

/** Preiszeile ohne Varianten – über Menge/Warenkorb */
.product-detail__price-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem 1.5rem;
    margin: 0 0 1.25rem;
    padding: 1rem 0;
    border-top: 1px solid var(--overlay-text-12);
    border-bottom: 1px solid var(--overlay-text-12);
}

.product-detail__price-bar-info {
    margin: 0;
    color: var(--gmeiner-text);
    font-size: 0.875rem;
    line-height: 1.5;
}

.product-detail__price-bar-info a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 0.12em;
}

.product-detail__price-bar-info a:hover,
.product-detail__price-bar-info a:focus-visible {
    color: var(--gmeiner-brown);
}

.product-detail__price-bar-value {
    margin: 0;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.3;
    white-space: nowrap;
}

.product-detail__request-text {
    margin: 0 0 1.25rem;
}

.product-detail__request-text-label {
    display: block;
    margin: 0 0 0.5rem;
    color: var(--gmeiner-text);
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.product-detail__request-text-input {
    display: block;
    width: 100%;
    max-width: none;
    box-sizing: border-box;
    padding: 0.75rem 0.9rem;
    border: 1px solid rgba(42, 42, 42, 0.2);
    background-color: var(--gmeiner-white);
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.9375rem;
    line-height: 1.4;
}

.product-detail__request-text-input:focus {
    outline: 2px solid var(--gmeiner-brown);
    outline-offset: 2px;
}

.product-detail__request-text-input.is-invalid {
    border-color: #b42318;
}

.product-detail__request-text-input.is-invalid:focus {
    outline-color: #b42318;
}

.product-detail__request-text-hint {
    margin: 0.4rem 0 0;
    color: var(--gmeiner-text-muted, #6b645c);
    font-size: 0.8125rem;
    line-height: 1.4;
}

.product-detail__request-text-error {
    margin: 0.4rem 0 0;
    color: #b42318;
    font-size: 0.8125rem;
    line-height: 1.4;
}

.wiesnherz-page__copy p {
    margin: 0 0 0.85em;
    line-height: 1.55;
}

.wiesnherz-page__copy p:last-child {
    margin-bottom: 0;
}

.wiesnherz-page__colors {
    margin: 0 0 1.5rem;
}

.wiesnherz-page__color-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.25rem;
    margin: 0;
    padding: 0;
    border: none;
}

.wiesnherz-page__color {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
    margin: 0;
    cursor: pointer;
    color: var(--gmeiner-text);
    font-size: 0.8125rem;
    line-height: 1.3;
}

.wiesnherz-page__color input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.wiesnherz-page__swatch {
    display: block;
    width: 2.125rem;
    height: 2.125rem;
    border-radius: 50%;
    border: 2px solid rgba(42, 42, 42, 0.18);
}

.wiesnherz-page__color.is-selected .wiesnherz-page__swatch,
.wiesnherz-page__color input:checked + .wiesnherz-page__swatch {
    border-color: var(--gmeiner-brown);
    box-shadow: 0 0 0 2px var(--gmeiner-brown);
}

.wiesnherz-page__nutrition {
    margin: 0 0 1.5rem;
    font-family: var(--gmeiner-font);
    font-size: 0.9375rem;
}

.wiesnherz-page__nutrition a {
    color: var(--gmeiner-brown);
    text-decoration: underline;
    text-underline-offset: 0.15em;
    font-weight: 600;
}

.product-detail__purchase {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: stretch;
    margin-bottom: 1.5rem;
}

.product-detail__quantity {
    display: inline-flex;
    align-items: stretch;
    border: 1px solid rgba(42, 42, 42, 0.2);
}

.product-detail__quantity-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    padding: 0;
    border: none;
    background-color: var(--gmeiner-white);
    color: var(--gmeiner-text);
    font-size: 1.125rem;
    line-height: 1;
    cursor: pointer;
    transition: background-color var(--transition-fast), color var(--transition-fast);
}

.product-detail__quantity-btn:hover,
.product-detail__quantity-btn:focus-visible {
    background-color: var(--gmeiner-bg-cream);
    color: var(--gmeiner-brown);
}

.product-detail__quantity-input {
    width: 3rem;
    padding: 0.75rem 0.25rem;
    border: none;
    border-left: 1px solid var(--overlay-text-12);
    border-right: 1px solid var(--overlay-text-12);
    background-color: var(--gmeiner-white);
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.9375rem;
    text-align: center;
    -moz-appearance: textfield;
}

.product-detail__quantity-input::-webkit-outer-spin-button,
.product-detail__quantity-input::-webkit-inner-spin-button {
    margin: 0;
    -webkit-appearance: none;
}

.product-detail__cart-btn {
    flex: 1 1 12rem;
    min-height: 3rem;
    padding: 0.875rem 1.5rem;
    border: none;
    background-color: var(--gmeiner-bg-sage);
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.8125rem;
    font-weight: 400;
    letter-spacing: 0.08em;
    line-height: 1.2;
    text-transform: uppercase;
    cursor: pointer;
    transition: background-color var(--transition-fast), color var(--transition-fast);
}

.product-detail__cart-btn:hover,
.product-detail__cart-btn:focus-visible {
    background-color: var(--gmeiner-bg-mint);
    color: var(--gmeiner-brown);
}

.product-detail__meta {
    margin: 0 0 1rem;
}

.product-detail__meta-line {
    margin: 0 0 0.625rem;
    color: var(--gmeiner-text);
    font-size: 0.875rem;
    line-height: 1.65;
}

.product-detail__meta-line:last-child {
    margin-bottom: 0;
}

.product-detail__meta-label {
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.product-detail__meta-line a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 0.12em;
}

.product-detail__meta-line a:hover,
.product-detail__meta-line a:focus-visible {
    color: var(--gmeiner-brown);
}

.product-detail__shipping-note {
    margin: 0.75rem 0 2rem;
    color: var(--gmeiner-text);
    font-size: 0.875rem;
    line-height: 1.65;
}

.product-detail__status-banner {
    margin: 0 0 1.25rem;
    padding: 0.9rem 1.05rem;
    border-left: 0.2rem solid #c45c4a;
    background-color: rgba(196, 92, 74, 0.08);
}

.product-detail__status-banner .product-detail__status-note {
    margin: 0;
    color: #8a3a2c;
}

.product-detail__status-banner .product-detail__status-note--coming-soon {
    margin-top: 0.35rem;
}

.product-detail__status-note {
    margin: 0 0 1.25rem;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font);
    font-size: 0.9375rem;
    font-weight: 700;
    line-height: 1.5;
}

.product-detail__accordions {
    border-top: 1px solid rgba(42, 42, 42, 0.15);
}

.product-detail__accordion-item {
    border: none;
    border-bottom: 1px solid rgba(42, 42, 42, 0.15);
    border-radius: 0;
    background: transparent;
}

.product-detail__accordion-btn.accordion-button {
    padding: 1rem 2rem 1rem 0;
    background-color: transparent;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.9375rem;
    font-weight: 700;
    letter-spacing: var(--letter-spacing-nav);
    line-height: 1.4;
    text-transform: uppercase;
    box-shadow: none;
}

.product-detail__accordion-btn.accordion-button:not(.collapsed) {
    background-color: transparent;
    color: var(--gmeiner-brown);
    box-shadow: none;
}

.product-detail__accordion-btn::after {
    width: 0.75rem;
    height: 0.75rem;
    background-size: 0.75rem;
    filter: none;
}

.product-detail__accordion-btn:focus {
    box-shadow: none;
}

.product-detail__accordion-btn:focus-visible {
    outline: 2px solid var(--gmeiner-brown);
    outline-offset: 2px;
}

.product-detail__accordion-body {
    padding: 0 0 1.25rem;
    color: var(--gmeiner-text);
    font-size: 0.9375rem;
    font-weight: 400;
    line-height: 1.7;
}

.product-detail__accordion-body p:last-child {
    margin-bottom: 0;
}

.product-nutrition-sheet {
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: inherit;
    line-height: inherit;
}

.product-nutrition-sheet__row {
    display: grid;
    grid-template-columns: minmax(7.5rem, 9.5rem) minmax(0, 1fr);
    gap: 0.75rem 1rem;
    padding: 0.2rem 0;
}

.product-nutrition-sheet__label {
    font-weight: 700;
}

.product-nutrition-sheet__value {
    min-width: 0;
}

.product-nutrition-sheet__value--ingredients {
    line-height: 1.7;
}

.product-nutrition-sheet__allergen {
    font-style: italic;
    font-weight: 700;
}

.product-nutrition-sheet__table-wrap {
    padding-top: 0.35rem;
}

.product-nutrition-sheet__table {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid rgba(42, 42, 42, 0.08);
    font-family: var(--gmeiner-font);
    font-size: inherit;
    line-height: 1.5;
}

.product-nutrition-sheet__table th,
.product-nutrition-sheet__table td {
    padding: 0.2rem 0.45rem;
    border-bottom: 1px solid rgba(42, 42, 42, 0.08);
    background-color: transparent;
    color: var(--gmeiner-text);
    font-weight: 400;
    vertical-align: middle;
}

.product-nutrition-sheet__table tr:last-child th,
.product-nutrition-sheet__table tr:last-child td {
    border-bottom: none;
}

.product-nutrition-sheet__table-label {
    text-align: left;
    color: var(--gmeiner-text);
}

.product-nutrition-sheet__table-label.is-indented {
    padding-left: 1rem;
}

.product-nutrition-sheet__table-value {
    text-align: right;
    color: var(--gmeiner-text);
    white-space: nowrap;
}

.product-nutrition-sheet__table tr:first-child .product-nutrition-sheet__table-label,
.product-nutrition-sheet__table tr:first-child .product-nutrition-sheet__table-value {
    font-weight: 700;
}

@media (max-width: 767.98px) {
    .product-nutrition-sheet__row--short {
        display: flex;
        flex-wrap: wrap;
        align-items: baseline;
        gap: 0.15rem 0.35rem;
        padding: 0.4rem 0;
    }

    .product-nutrition-sheet__row--ingredients {
        display: block;
        padding: 0.4rem 0;
    }

    .product-nutrition-sheet__row--ingredients .product-nutrition-sheet__label {
        margin-bottom: 0.25rem;
    }

    .product-nutrition-sheet__row--addition {
        display: block;
        padding: 0.4rem 0;
    }

    .product-nutrition-sheet__row--addition .product-nutrition-sheet__label {
        display: none;
    }

    .product-nutrition-sheet__table-wrap {
        padding-top: 0.5rem;
        margin-top: 0.15rem;
    }

    .product-nutrition-sheet__table {
        table-layout: fixed;
    }

    .product-nutrition-sheet__table th,
    .product-nutrition-sheet__table td {
        padding: 0.4rem 0.35rem;
        font-size: 0.875rem;
        line-height: 1.45;
    }

    .product-nutrition-sheet__table-label {
        width: 58%;
        white-space: normal;
        padding-right: 0.35rem;
        vertical-align: top;
    }

    .product-nutrition-sheet__table-label.is-indented {
        padding-left: 0.5rem;
    }

    .product-nutrition-sheet__table-value {
        width: 42%;
        padding-left: 0.25rem;
        vertical-align: top;
    }
}

@media (max-width: 991.98px) {
    .product-detail__layout {
        grid-template-columns: 1fr;
    }

    .product-detail__gallery {
        position: static;
    }

    .product-detail__thumbs {
        display: none;
    }
}

@media (max-width: 575.98px) {
    .product-detail__purchase {
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: stretch;
    }

    .product-detail__quantity {
        flex: 0 0 auto;
    }

    .product-detail__cart-btn {
        flex: 1 1 auto;
        min-width: 0;
        width: auto;
    }
}

/* ==========================================================================
   21. Produkt-Recommendations – Das könnte Ihnen gefallen
   ========================================================================== */

.product-related {
    padding: clamp(1.25rem, 3vw, 2rem) 0 clamp(3rem, 6vw, 5rem);
    background-color: var(--gmeiner-white);
    border-top: 1px solid var(--overlay-black-08);
}

.product-related__title {
    margin: 0 0 var(--section-title-margin);
    text-align: center;
}

.product-related__grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: var(--section-card-gap);
}

@media (max-width: 1199.98px) {
    .product-related__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .product-related__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}


/* ==========================================================================
   22. Consent Manager – kompakteres Cookie-Banner
   ========================================================================== */

/**
 * Externes CMP (consentmanager.net) – eigene Klassen mit „cmp“-Präfix.
 * Standard-Design nutzt bei „Erweiterte Einstellungen“ oft cmpfullscreen (~1200px breit).
 */
#cmpbox,
.cmpbox {
    width: min(42rem, calc(100vw - 2rem)) !important;
    max-width: min(42rem, calc(100vw - 2rem)) !important;
    max-height: 85vh !important;
    height: auto !important;
    font-size: 14px !important;
    line-height: 1.45 !important;
    box-sizing: border-box !important;
}

#cmpbox.cmpfullscreen,
#cmpbox.cmpboxCustomChoices {
    width: min(42rem, calc(100vw - 2rem)) !important;
    max-width: min(42rem, calc(100vw - 2rem)) !important;
}

#cmpbox .cmpboxinner {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    max-width: 100% !important;
    max-height: 85vh !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
}

/** Anbieter-/Zweck-Liste scrollbar statt Vollbild-Höhe */
#cmpbox .cmptblbox {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: calc(85vh - 8rem) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
}

#cmpbox .cmpboxbtns {
    flex-shrink: 0 !important;
    width: 100% !important;
}

/** CMP-Aktionsbuttons: weiße Schrift auf braunem Grund (nicht die globale Linkfarbe) */
#cmpbox a.cmpboxbtn,
#cmpbox a.cmpboxbtn:visited,
#cmpbox a.cmpboxbtn:hover,
#cmpbox a.cmpboxbtn:focus-visible,
.cmpbox a.cmpboxbtn,
.cmpbox a.cmpboxbtn:visited,
.cmpbox a.cmpboxbtn:hover,
.cmpbox a.cmpboxbtn:focus-visible {
    color: #fff !important;
}

@media (max-width: 575.98px) {
    #cmpbox,
    .cmpbox {
        width: calc(100vw - 1rem) !important;
        max-width: calc(100vw - 1rem) !important;
        max-height: 90vh !important;
    }

    #cmpbox .cmptblbox {
        max-height: calc(90vh - 7rem) !important;
    }
}

/** Native CMP-Cookie-Icon ausblenden – eigener Button unten links */
#cmpboxflag,
.cmpboxflag,
#cmpboxkeybutton,
.cmp-resurface,
body > img[src*="consentmanager.net"],
body > a:has(> img[src*="consentmanager.net"]),
body > div:has(> img[src*="consentmanager.net"]) {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

body:has(.cart-sticky.is-visible) .site-fab--consent,
body:has(.cart-sticky.is-visible) .accessibility-widget {
    visibility: hidden;
    pointer-events: none;
}


/* ==========================================================================
   23. Kategorie-Listing
   ========================================================================== */

.category-listing {
    padding: 0 0 var(--page-pad-bottom);
}

.category-listing__inner {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.category-listing__header {
    max-width: 46rem;
    margin-right: auto;
    margin-left: auto;
    text-align: center;
}

.category-listing__intro {
    max-width: 46rem;
    margin: 0 auto var(--page-header-margin);
    color: var(--gmeiner-text);
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
    text-align: center;
}

.sondertorten-listing .category-listing__intro {
    margin-bottom: 1.35rem;
}

.category-listing__cta-text {
    max-width: 46rem;
    margin: 0 auto 1.25rem;
    color: var(--gmeiner-text);
    font-size: var(--font-size-body);
    font-weight: 600;
    line-height: var(--line-height-body);
    text-align: center;
}

.category-listing__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.85rem 1rem;
    max-width: 46rem;
    margin: 0 auto 3.75rem;
}

.category-listing__action,
.category-listing__action:visited {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 12rem;
    padding: 0.95rem 1.5rem;
    border: 0;
    background-color: var(--gmeiner-bg-sage);
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.8125rem;
    font-weight: 400;
    letter-spacing: var(--letter-spacing-nav);
    line-height: 1.25;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
    transition: background-color var(--transition-fast), color var(--transition-fast);
}

.category-listing__action:hover,
.category-listing__action:focus-visible {
    background-color: var(--gmeiner-bg-mint);
    color: var(--gmeiner-text);
    outline: none;
}

@media (max-width: 575.98px) {
    .category-listing__action {
        width: 100%;
    }
}

.category-listing__intro-text {
    margin: 0;
}

.category-listing__intro-full[hidden] {
    display: none;
}

.category-listing__intro-full .category-listing__more-btn {
    display: inline-block;
    margin-top: 0.5rem;
}

.category-listing__more-btn {
    display: inline;
    margin-left: 0.25rem;
    padding: 0;
    border: none;
    background: none;
    color: #c0392b;
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
    text-decoration: underline;
    text-underline-offset: 0.12em;
    cursor: pointer;
}

.category-listing__more-btn:hover,
.category-listing__more-btn:focus-visible {
    color: var(--gmeiner-brown);
}

.category-listing__toolbar-sentinel {
    height: 1px;
    margin: 0;
}

.category-listing__toolbar-wrap {
    position: sticky;
    top: var(--site-header-offset, 8rem);
    z-index: 30;
    width: 100%;
    margin-bottom: clamp(1.75rem, 3vw, 2.5rem);
    border-top: 1px solid #e5e5e5;
    background-color: var(--gmeiner-white);
    overflow: visible;
    transition: box-shadow var(--transition-fast);
}

.category-listing__toolbar-wrap.is-stuck {
    box-shadow: 0 0.5rem 1rem rgba(42, 42, 42, 0.06);
}

/* Produktlisting: Rose erst unter dem Filterbalken, Kopfbereich bleibt weiss */
body.page-bg-tafel .category-listing {
    padding-bottom: 0;
}

body.page-bg-tafel .category-listing__toolbar-wrap {
    margin-bottom: 0;
}

body.page-bg-tafel .category-listing__catalog {
    width: 100%;
    padding: clamp(1.75rem, 3vw, 2.5rem) var(--content-padding-x) var(--page-pad-bottom);
    background-color: var(--gmeiner-bg-tafel-page);
}

body.page-bg-tafel .category-listing__catalog-inner {
    width: 100%;
    max-width: var(--content-max-width);
    margin: 0 auto;
}

.category-listing__toolbar-inner {
    width: 100%;
    max-width: var(--content-max-width);
    margin: 0 auto;
    padding: 0 var(--content-padding-x) 0.75rem;
}

.category-listing__toolbar-wrap.is-stuck .category-listing__toolbar-inner {
    padding-bottom: 0.625rem;
}

.category-listing__toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: center;
    justify-content: flex-end;
    padding-top: 0.5rem;
}

.category-listing__controls {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: center;
    justify-content: flex-end;
    width: 100%;
}

.category-listing__dropdown {
    position: relative;
}

.category-listing__dropdown.is-open {
    z-index: 35;
}

.category-listing__dropdown-toggle {
    display: inline-flex;
    gap: 0.625rem;
    align-items: center;
    justify-content: space-between;
    min-width: 11.5rem;
    min-height: 2.75rem;
    padding: 0.625rem 1rem;
    border: 1px solid var(--overlay-text-35);
    background-color: var(--gmeiner-white);
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.875rem;
    font-weight: 400;
    line-height: 1.3;
    text-align: left;
    cursor: pointer;
    transition: border-color var(--transition-fast), color var(--transition-fast);
}

.category-listing__dropdown-text {
    display: inline-flex;
    gap: 0.25rem;
    align-items: baseline;
}

.category-listing__filter-count {
    color: var(--gmeiner-brown);
    font-weight: 700;
}

.category-listing__filter-count[hidden] {
    display: none;
}

.category-listing__dropdown-toggle:hover,
.category-listing__dropdown-toggle:focus-visible,
.category-listing__dropdown.is-open .category-listing__dropdown-toggle {
    border-color: var(--gmeiner-brown);
    color: var(--gmeiner-brown);
}

.category-listing__dropdown--filter .category-listing__dropdown-toggle {
    border: none;
    box-shadow: none;
}

.category-listing__dropdown--subcat .category-listing__dropdown-toggle,
.category-listing__dropdown--sort .category-listing__dropdown-toggle {
    border: none;
    box-shadow: none;
}

.category-listing__dropdown--filter .category-listing__dropdown-toggle:hover,
.category-listing__dropdown--filter .category-listing__dropdown-toggle:focus-visible,
.category-listing__dropdown--filter.is-open .category-listing__dropdown-toggle {
    border: none;
}

.category-listing__dropdown--subcat .category-listing__dropdown-toggle:hover,
.category-listing__dropdown--subcat .category-listing__dropdown-toggle:focus-visible,
.category-listing__dropdown--subcat.is-open .category-listing__dropdown-toggle,
.category-listing__dropdown--sort .category-listing__dropdown-toggle:hover,
.category-listing__dropdown--sort .category-listing__dropdown-toggle:focus-visible,
.category-listing__dropdown--sort.is-open .category-listing__dropdown-toggle {
    border: none;
}

.category-listing__dropdown-icon {
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
    transition: transform var(--transition-fast);
}

.category-listing__dropdown.is-open .category-listing__dropdown-icon {
    transform: rotate(180deg);
}

.category-listing__dropdown-menu {
    position: absolute;
    /* Bündig mit Unterkante der Filterleiste (toolbar-inner padding-bottom) */
    top: calc(100% + 0.75rem);
    right: 0;
    z-index: 40;
    min-width: max(100%, 14rem);
    padding: 0.875rem 1rem;
    border: var(--border-subtle);
    background-color: var(--gmeiner-white);
    box-shadow: var(--shadow-elevated);
}

.category-listing__controls .category-listing__dropdown:first-child .category-listing__dropdown-menu {
    right: auto;
    left: 0;
}

.category-listing__dropdown-menu[hidden] {
    display: none;
}

.category-listing__mobile-panel-header,
.category-listing__mobile-panel-footer {
    display: none;
}

.category-listing__mobile-panel-title {
    margin: 0;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font-display);
    font-size: 2rem;
    font-weight: 400;
    line-height: 1.2;
}

.category-listing__mobile-panel-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
    border: 0;
    background: none;
    color: var(--gmeiner-text);
    font-size: 2.25rem;
    line-height: 1;
    cursor: pointer;
}

.category-listing__mobile-panel-close:hover,
.category-listing__mobile-panel-close:focus-visible {
    color: var(--gmeiner-brown);
}

.category-listing__mobile-panel-apply {
    width: 100%;
    border: none;
    cursor: pointer;
}

.category-listing__filter-panel {
    position: absolute;
    /* Bündig mit Unterkante der Filterleiste (toolbar-inner padding-bottom) */
    top: calc(100% + 0.75rem);
    left: 0;
    z-index: 40;
    width: min(18rem, calc(100vw - 2rem));
    min-width: 100%;
    padding: 0.875rem 1rem 1rem;
    border: var(--border-subtle);
    background-color: var(--gmeiner-white);
    box-shadow: var(--shadow-elevated);
}

.category-listing__toolbar-wrap.is-stuck .category-listing__dropdown-menu,
.category-listing__toolbar-wrap.is-stuck .category-listing__filter-panel {
    top: calc(100% + 0.625rem);
}

.category-listing__filter-panel[hidden] {
    display: none;
}

.category-listing__filter-panel-header,
.category-listing__filter-panel-footer {
    display: none;
}

.category-listing__filter-panel-title {
    margin: 0;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font-display);
    font-size: 1.25rem;
    font-weight: 400;
    line-height: 1.2;
}

.category-listing__filter-panel-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
    border: 0;
    background: none;
    color: var(--gmeiner-text);
    font-size: 1.75rem;
    line-height: 1;
    cursor: pointer;
}

.category-listing__filter-panel-close:hover,
.category-listing__filter-panel-close:focus-visible {
    color: var(--gmeiner-brown);
}

.category-listing__filter-apply {
    width: 100%;
    border: none;
    cursor: pointer;
}

.category-listing__filter-backdrop {
    position: fixed;
    inset: 0;
    z-index: 49;
    background-color: rgba(42, 42, 42, 0.45);
}

.category-listing__filter-backdrop[hidden] {
    display: none;
}

.category-listing__active-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
    align-items: center;
    padding-top: 0.875rem;
}

.category-listing__active-filters[hidden] {
    display: none;
}

.category-listing__chip-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.category-listing__chip {
    display: inline-flex;
    gap: 0.375rem;
    align-items: center;
    padding: 0.375rem 0.75rem;
    border: var(--border-subtle);
    border-radius: 999px;
    background-color: var(--gmeiner-bg-sage);
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.8125rem;
    line-height: 1.3;
    cursor: pointer;
    transition: border-color var(--transition-fast), color var(--transition-fast), background-color var(--transition-fast);
}

.category-listing__chip:hover,
.category-listing__chip:focus-visible {
    border-color: var(--gmeiner-brown);
    color: var(--gmeiner-brown);
}

.category-listing__chip-remove {
    font-size: 1rem;
    line-height: 1;
}

.category-listing__clear-filters {
    padding: 0;
    border: 0;
    background: none;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font);
    font-size: 0.8125rem;
    line-height: 1.4;
    text-decoration: underline;
    text-underline-offset: 0.12em;
    cursor: pointer;
}

.category-listing__clear-filters:hover,
.category-listing__clear-filters:focus-visible {
    color: var(--gmeiner-brown-dark);
}

body.category-filter-open,
html.category-filter-open {
    overflow: hidden;
    overscroll-behavior: none;
}

body.category-filter-open {
    position: relative;
    width: 100%;
    max-width: 100%;
}

.category-listing__dropdown-heading {
    margin: 0 0 0.625rem;
    color: var(--gmeiner-text);
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.4;
}

.category-listing__option-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.category-listing__filter-panel-body {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.category-listing__filter-group-title {
    margin: 0 0 0.65rem;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font);
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.3;
    text-transform: uppercase;
}

.category-listing__option-list li + li {
    margin-top: 0.375rem;
}

.category-listing__option {
    display: flex;
    gap: 0.625rem;
    align-items: center;
    min-height: 1.75rem;
    cursor: pointer;
}

.category-listing__option-input {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    border: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}

.category-listing__option-indicator {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
    border: 1px solid var(--overlay-text-35);
    background-color: var(--gmeiner-white);
    transition: background-color var(--transition-fast), border-color var(--transition-fast);
}

.category-listing__option-input:checked + .category-listing__option-indicator {
    border-color: var(--gmeiner-brown);
    background-color: var(--gmeiner-brown);
}

.category-listing__option-input:checked + .category-listing__option-indicator::before {
    content: "";
    width: 0.45rem;
    height: 0.25rem;
    margin-top: -0.05rem;
    border-bottom: 2px solid var(--gmeiner-white);
    border-left: 2px solid var(--gmeiner-white);
    transform: rotate(-45deg);
}

.category-listing__option-label {
    color: var(--gmeiner-text);
    font-size: 0.875rem;
    line-height: 1.4;
}

.category-listing__option-list--links li + li {
    border-top: 1px solid var(--overlay-text-08);
}

.category-listing__sort-option {
    display: block;
    width: 100%;
    padding: 0.5rem 0;
    border: none;
    background: none;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.875rem;
    font-weight: 400;
    line-height: 1.4;
    text-align: left;
    cursor: pointer;
    transition: color var(--transition-fast);
}

.category-listing__sort-option:hover,
.category-listing__sort-option:focus-visible {
    color: var(--gmeiner-brown);
}

.category-listing__sort-option.is-selected {
    color: var(--gmeiner-brown);
    font-weight: 700;
}

.category-listing__subcat-link {
    display: block;
    padding: 0.5rem 0;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.875rem;
    font-weight: 400;
    line-height: 1.35;
    text-decoration: none;
    transition: color var(--transition-fast);
}

.category-listing__subcat-link:hover,
.category-listing__subcat-link:focus-visible {
    color: var(--gmeiner-brown);
}

.category-listing__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--section-card-gap);
}

/* Mehrfach-Bloecke (Tafelschokoladen / „Alle anzeigen“) */
.category-listing__sections {
    display: flex;
    flex-direction: column;
    gap: clamp(2.5rem, 5vw, 4rem);
}

.category-listing__sections--nested {
    gap: clamp(1.75rem, 3.5vw, 2.75rem);
}

.category-listing__section-title {
    margin: 0 0 var(--section-title-margin);
    text-align: center;
}

.category-listing__section-title--sub {
    font-size: clamp(1.1rem, 1.8vw, 1.4rem);
    font-weight: 500;
}

.category-listing__section--nested {
    margin: 0;
}

/* Abschnitte: weiße Vollbreite-Unterbrechung vor jeder Überschrift (nicht der ersten) */
body.page-bg-tafel .category-listing__sections {
    gap: 0;
}

body.page-bg-tafel .category-listing__section:not(:first-child)::before {
    content: "";
    display: block;
    width: 100vw;
    max-width: 100vw;
    height: var(--section-card-gap);
    margin: var(--section-card-gap) calc(50% - 50vw);
    background-color: var(--gmeiner-white);
}

@media (max-width: 991.98px) {
    .category-listing__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .category-listing__toolbar-wrap {
        z-index: 60;
        margin-bottom: 0.5rem;
    }

    body.page-bg-tafel .category-listing__catalog {
        padding-top: 0.5rem;
    }

    .category-listing__toolbar-inner {
        padding-bottom: 0;
    }

    .category-listing__toolbar-wrap.is-stuck .category-listing__toolbar-inner {
        padding-bottom: 0;
    }

    .category-listing__toolbar {
        align-items: stretch;
        padding-top: 0.25rem;
    }

    .category-listing__controls {
        display: grid;
        grid-template-columns: 1fr 1fr;
        column-gap: 0.75rem;
        row-gap: 0;
        align-items: stretch;
        width: 100%;
    }

    .category-listing__dropdown--subcat {
        grid-column: 1 / -1;
    }

    .category-listing__dropdown {
        width: 100%;
        min-width: 0;
    }

    .category-listing__dropdown--filter:only-child,
    .category-listing__dropdown--sort:only-child {
        grid-column: 1 / -1;
    }

    .category-listing__dropdown-toggle {
        width: 100%;
        min-width: 0;
    }

    .category-listing__dropdown-menu,
    .category-listing__filter-panel {
        position: fixed;
        top: var(--site-header-offset, 4rem);
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 70;
        display: flex;
        flex-direction: column;
        box-sizing: border-box;
        width: auto;
        min-width: 0;
        max-width: 100%;
        max-height: none;
        margin: 0;
        padding: 0;
        border: 0;
        border-radius: 0;
        overflow: hidden;
        box-shadow: none;
        background-color: var(--gmeiner-white);
    }

    .category-listing__filter-backdrop {
        top: var(--site-header-offset, 4rem);
        right: 0;
        left: 0;
        width: auto;
        max-width: 100%;
        z-index: 65;
    }

    .category-listing__filter-panel-header,
    .category-listing__filter-panel-footer,
    .category-listing__mobile-panel-header {
        display: flex;
    }

    .category-listing__filter-panel-header,
    .category-listing__mobile-panel-header {
        position: relative;
        z-index: 1;
        flex-shrink: 0;
        align-items: center;
        justify-content: space-between;
        padding: 1rem 1rem 0.75rem;
        border-bottom: 1px solid rgba(42, 42, 42, 0.1);
        background-color: var(--gmeiner-white);
    }

    .category-listing__filter-panel-title,
    .category-listing__mobile-panel-title {
        font-size: 2rem;
    }

    .category-listing__filter-panel .category-listing__filter-panel-body,
    .category-listing__filter-panel .category-listing__option-list,
    .category-listing__dropdown-menu .category-listing__option-list {
        flex: 1 1 auto;
        min-height: 0;
        margin: 0;
        padding: 0.75rem 1rem 1rem;
        overflow: auto;
        -webkit-overflow-scrolling: touch;
    }

    .category-listing__filter-panel .category-listing__filter-group .category-listing__option-list {
        flex: none;
        min-height: 0;
        margin: 0;
        padding: 0;
        overflow: visible;
    }

    .category-listing__dropdown-menu .category-listing__dropdown-heading {
        margin: 0.75rem 1rem 0;
    }

    .category-listing__mobile-panel-footer {
        display: none;
    }

    .category-listing__filter-panel-footer {
        position: relative;
        flex-shrink: 0;
        margin-top: auto;
        padding: 0.875rem 1rem 1rem;
        background-color: var(--gmeiner-white);
        border-top: 1px solid rgba(42, 42, 42, 0.1);
    }

    body.category-filter-open .category-listing__toolbar-wrap {
        width: 100%;
        max-width: 100%;
        margin-left: 0;
        margin-right: 0;
    }
}

/* --------------------------------------------------------------------------
   24. Produktkarten – Quick-Actions (Toast, Mobil)
   -------------------------------------------------------------------------- */

.product-action-toast {
    position: fixed;
    bottom: 1.5rem;
    left: 50%;
    z-index: 9999;
    max-width: min(90vw, 24rem);
    padding: 0.75rem 1.25rem;
    border-radius: 2px;
    background-color: var(--gmeiner-text);
    color: var(--gmeiner-white);
    font-family: var(--gmeiner-font);
    font-size: 0.875rem;
    line-height: 1.4;
    text-align: center;
    opacity: 0;
    pointer-events: none;
    transform: translateX(-50%) translateY(0.75rem);
    transition:
        opacity 0.25s ease,
        transform 0.25s ease;
}

.product-action-toast.is-visible {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

@media (max-width: 767.98px) {
    .product-card__action {
        opacity: 0.78;
    }

    .product-card__action--wishlist.is-active,
    .product-card__action:hover,
    .product-card__action:focus-visible {
        opacity: 1;
    }
}


/* ==========================================================================
   25. Stores-Übersicht
   ========================================================================== */

.stores-listing {
    padding: 0 0 var(--page-pad-bottom);
}

.stores-listing__header {
    text-align: center;
}

.stores-listing__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: clamp(1.5rem, 3vw, 2.5rem);
    row-gap: 0;
}

/**
 * Subgrid: Bild | Content (Titel+Text) | Accordion
 * → Titel/Text bleiben zusammen, ADRESSE in der Zeile auf gleicher Höhe
 */
.store-card {
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 3;
    min-width: 0;
    scroll-margin-top: 8rem;
}

.store-card__media {
    margin: 0 0 1.25rem;
    overflow: hidden;
    background-color: var(--overlay-black-04);
}

.store-card__image {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: cover;
}

.store-card__content {
    margin: 0 0 1.25rem;
}

.store-card__title {
    margin: 0 0 0.85rem;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font-display);
    font-size: clamp(1.25rem, 2vw, 1.5rem);
    font-weight: 500;
    line-height: 1.3;
}

.store-card__description {
    margin: 0;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.875rem;
    line-height: 1.65;
}

.store-card__actions {
    margin: 0 0 clamp(2rem, 4vw, 3rem);
    padding: 0;
    list-style: none;
    border-top: 1px solid var(--overlay-text-12);
    align-self: start;
}

.store-card__description-teaser,
.store-card__description-full p {
    margin: 0;
}

.store-card__description-full[hidden] {
    display: none;
}

.store-card__description-full .store-card__more-btn {
    display: inline-block;
    margin-top: 0.5rem;
    margin-left: 0;
}

.store-card__more-btn {
    display: inline;
    margin-left: 0.25rem;
    padding: 0;
    border: none;
    background: none;
    color: inherit;
    font-family: inherit;
    font-size: inherit;
    font-weight: 700;
    line-height: inherit;
    text-decoration: underline;
    text-underline-offset: 0.12em;
    cursor: pointer;
}

.store-card__more-btn:hover,
.store-card__more-btn:focus-visible {
    color: var(--gmeiner-brown);
}

.store-card__action {
    border-bottom: 1px solid var(--overlay-text-12);
}

.store-card__action-toggle,
.store-card__action-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    width: 100%;
    margin: 0;
    padding: 0.85rem 0;
    border: none;
    background: none;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: var(--letter-spacing-eyebrow);
    line-height: 1.35;
    text-align: left;
    text-decoration: none;
    text-transform: uppercase;
    cursor: pointer;
    transition: color var(--transition-fast);
}

.store-card__action-toggle:hover,
.store-card__action-toggle:focus-visible,
.store-card__action-link:hover,
.store-card__action-link:focus-visible {
    color: var(--gmeiner-brown);
}

.store-card__chevron {
    flex-shrink: 0;
    width: 1rem;
    height: 1rem;
    transition: transform var(--transition-fast);
}

.store-card__action-toggle.is-open .store-card__chevron--down {
    transform: rotate(180deg);
}

.store-card__action-panel[hidden] {
    display: none;
}

.store-card__action-content {
    padding: 0 0 1rem;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.875rem;
    font-weight: 400;
    letter-spacing: normal;
    line-height: 1.65;
    text-transform: none;
}

.store-card__menus {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.store-card__menu-item {
    display: block;
}

.store-card__menu-link {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--gmeiner-text);
    text-decoration: none;
    font-family: var(--gmeiner-font);
    font-size: 0.875rem;
    font-weight: 500;
    letter-spacing: normal;
    line-height: 1.45;
    text-transform: none;
}

.store-card__menu-link:hover,
.store-card__menu-link:focus-visible {
    text-decoration: none;
}

.store-card__menu-arrow {
    flex-shrink: 0;
    color: var(--gmeiner-text);
}

/* ==========================================================================
   Stores – Tischreservierung Modal
   ========================================================================== */

body.is-table-reservation-open {
    overflow: hidden;
}

.table-reservation-modal {
    position: fixed;
    inset: 0;
    z-index: 1100;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(1rem, 3vw, 2rem);
}

.table-reservation-modal[hidden] {
    display: none;
}

.table-reservation-modal__backdrop {
    position: absolute;
    inset: 0;
    background-color: rgba(42, 42, 42, 0.45);
}

.table-reservation-modal__dialog {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    width: min(28rem, 100%);
    max-height: min(96vh, 56rem);
    overflow: auto;
    padding: clamp(1.75rem, 3.5vw, 2.25rem) clamp(1.25rem, 3vw, 2rem) clamp(1.5rem, 3vw, 2rem);
    background-color: var(--gmeiner-white);
    border: 1px solid var(--overlay-text-12);
    box-shadow: var(--shadow-elevated);
    -webkit-overflow-scrolling: touch;
}

.table-reservation-modal__dialog:focus,
.table-reservation-modal__dialog:focus-visible {
    outline: none;
}

.table-reservation-modal__close {
    position: absolute;
    top: 0.55rem;
    right: 0.65rem;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--gmeiner-text);
    font-size: 1.75rem;
    line-height: 1;
    cursor: pointer;
}

.table-reservation-modal__close:hover,
.table-reservation-modal__close:focus-visible {
    color: var(--gmeiner-brown);
    outline: none;
}

.table-reservation-modal__header {
    margin-bottom: clamp(1rem, 2.5vw, 1.35rem);
    text-align: center;
}

.table-reservation-modal__brand {
    margin: 0 0 0.65rem;
}

.table-reservation-modal__logo {
    display: block;
    width: auto;
    height: clamp(3rem, 8vw, 4.25rem);
    margin: 0 auto;
}

.table-reservation-modal__title {
    margin: 0;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: var(--letter-spacing-eyebrow);
    line-height: 1.4;
    text-transform: uppercase;
}

.table-reservation-modal__store {
    margin: 0.65rem 0 0;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font-display);
    font-size: clamp(1.125rem, 2.5vw, 1.35rem);
    font-weight: 400;
    line-height: 1.3;
}

.table-reservation-modal__subtitle {
    margin: 0 0 1rem;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: var(--letter-spacing-eyebrow);
    line-height: 1.4;
    text-transform: uppercase;
}

.table-reservation-modal__fields {
    border: 1px solid var(--overlay-text-12);
    background-color: #fbfcf9;
}

.table-reservation-modal__field {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.75rem 1rem;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid var(--overlay-text-12);
    cursor: pointer;
    transition: background-color var(--transition-fast);
}

.table-reservation-modal__field:hover,
.table-reservation-modal__field:focus-within {
    background-color: #f5f8f4;
}

.table-reservation-modal__field:last-child {
    border-bottom: 0;
}

.table-reservation-modal__field-label {
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: var(--letter-spacing-eyebrow);
    line-height: 1.35;
    text-transform: uppercase;
}

.table-reservation-modal__control {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    min-width: 9.5rem;
    max-width: 14rem;
}

.table-reservation-modal__value,
.table-reservation-modal__value-btn {
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: var(--font-size-body);
    line-height: 1.35;
    text-align: right;
    cursor: pointer;
}

.table-reservation-modal__value-btn:focus-visible {
    outline: none;
    color: var(--gmeiner-brown);
}

.table-reservation-modal__input {
    min-width: 0;
    width: 100%;
    max-width: 11rem;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: var(--font-size-body);
    text-align: right;
    appearance: none;
    cursor: pointer;
}

.table-reservation-modal__input--date {
    position: absolute;
    inset: 0;
    width: 100%;
    max-width: none;
    opacity: 0;
    cursor: pointer;
}

.table-reservation-modal__input:focus {
    outline: none;
    color: var(--gmeiner-brown);
}

.table-reservation-modal__field--time {
    display: block;
    cursor: default;
}

.table-reservation-modal__field-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.75rem 1rem;
    cursor: pointer;
}

.table-reservation-modal__field--time .table-reservation-modal__value-btn {
    min-width: 4.5rem;
}

.table-reservation-modal__time-panel {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.4rem;
    width: 100%;
    margin-top: 0.85rem;
    padding: 0.15rem 0 0.15rem;
    border-top: 1px solid var(--overlay-text-12);
    padding-top: 0.85rem;
    background: transparent;
    box-shadow: none;
    max-height: none;
    overflow: visible;
}

.table-reservation-modal__time-panel[hidden] {
    display: none;
}

.table-reservation-modal__time-option {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 2.25rem;
    padding: 0.35rem 0.4rem;
    border: 1px solid transparent;
    background-color: var(--gmeiner-white);
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.875rem;
    line-height: 1;
    cursor: pointer;
    transition: background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);
}

.table-reservation-modal__time-option:hover,
.table-reservation-modal__time-option:focus-visible {
    border-color: rgba(42, 42, 42, 0.2);
    background-color: #f5f8f4;
    outline: none;
}

.table-reservation-modal__time-option.is-selected {
    border-color: rgba(42, 42, 42, 0.25);
    background-color: var(--gmeiner-bg-sage);
    color: var(--gmeiner-brown);
    font-weight: 700;
}

.table-reservation-modal__time-empty {
    grid-column: 1 / -1;
    padding: 0.75rem 0.5rem;
    color: rgba(42, 42, 42, 0.65);
    font-family: var(--gmeiner-font);
    font-size: 0.875rem;
    text-align: center;
}

.table-reservation-modal__primary {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    width: 100%;
    margin-top: 1.25rem;
    padding: 0.95rem 1.25rem;
    border: 0;
    background-color: var(--gmeiner-bg-mint);
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.8125rem;
    font-weight: 400;
    letter-spacing: var(--letter-spacing-nav);
    line-height: 1.2;
    text-transform: uppercase;
    cursor: pointer;
    transition: background-color var(--transition-fast), color var(--transition-fast);
}

.table-reservation-modal__primary:hover,
.table-reservation-modal__primary:focus-visible {
    background-color: #bddccb;
    color: var(--gmeiner-text);
    outline: none;
}

.table-reservation-modal__primary--compact {
    margin-top: 0;
}

.table-reservation-modal__primary-summary {
    font-size: 0.8125rem;
    font-weight: 400;
    letter-spacing: normal;
    line-height: 1.35;
    text-transform: none;
    opacity: 0.92;
}

.table-reservation-modal__secondary {
    width: 100%;
    padding: 0.875rem 1rem;
    border: 1px solid var(--gmeiner-text);
    background-color: var(--gmeiner-white);
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.8125rem;
    font-weight: 400;
    letter-spacing: var(--letter-spacing-nav);
    line-height: 1;
    text-align: center;
    text-transform: uppercase;
    cursor: pointer;
    transition: background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);
}

.table-reservation-modal__secondary:hover,
.table-reservation-modal__secondary:focus-visible {
    background-color: var(--gmeiner-bg-sage);
    border-color: var(--gmeiner-text);
    color: var(--gmeiner-text);
    outline: none;
}

.table-reservation-modal__summary-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
    padding: 0.75rem 1rem;
    background-color: var(--gmeiner-bg-sage);
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: var(--font-size-body);
    line-height: 1.45;
}

.table-reservation-modal__change {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: 0;
    background: none;
    color: var(--gmeiner-text);
    cursor: pointer;
    transition: opacity var(--transition-fast);
}

.table-reservation-modal__change-icon {
    width: 1.125rem;
    height: 1.125rem;
}

.table-reservation-modal__change:hover,
.table-reservation-modal__change:focus-visible {
    opacity: 0.72;
    outline: none;
}

.table-reservation-modal__guest-fields {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.table-reservation-modal__guest-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem 1rem;
}

.table-reservation-modal__guest-field {
    display: block;
    min-width: 0;
}

.table-reservation-modal__guest-label {
    display: block;
    margin-bottom: 0.2rem;
    color: var(--gmeiner-text-muted);
    font-family: var(--gmeiner-font);
    font-size: 0.8125rem;
}

.table-reservation-modal__guest-input {
    width: 100%;
    padding: 0.55rem 0.75rem;
    border: 1px solid #e6ece8;
    border-radius: 2px;
    background-color: #f5f8f4;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: var(--font-size-body);
    transition: background-color var(--transition-fast), border-color var(--transition-fast);
}

.table-reservation-modal__guest-input:focus {
    outline: none;
    border-color: rgba(117, 50, 24, 0.22);
    background-color: #f0f5f1;
}

.table-reservation-modal__guest-textarea {
    resize: vertical;
    min-height: 3.25rem;
}

.table-reservation-modal__checkbox {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    margin-top: 0.75rem;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.875rem;
    line-height: 1.45;
}

.table-reservation-modal__checkbox input {
    margin-top: 0.2rem;
    accent-color: var(--gmeiner-brown);
}

.table-reservation-modal__checkbox a {
    color: var(--gmeiner-brown);
}

.table-reservation-modal__actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
    margin-top: 1rem;
}

.table-reservation-modal__alert {
    margin-bottom: 1rem;
    padding: 0.75rem 1rem;
    background-color: #fff4f4;
    color: #8a1f1f;
    font-family: var(--gmeiner-font);
    font-size: 0.875rem;
    line-height: 1.45;
}

.table-reservation-modal__info-text {
    margin: 0 0 1.25rem;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
}

.table-reservation-modal__success-text {
    margin: 0 0 1.25rem;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font-display);
    font-size: clamp(1.25rem, 3vw, 1.5rem);
    font-weight: 400;
    line-height: 1.35;
    text-align: center;
    white-space: pre-line;
}

.table-reservation-modal__honeypot {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

@media (max-width: 767.98px) {
    .table-reservation-modal {
        align-items: flex-end;
        padding: 0;
    }

    .table-reservation-modal__dialog {
        width: 100%;
        max-height: min(98dvh, 100%);
        margin: 0;
        padding: 2rem 1rem 1.5rem;
        padding-bottom: calc(1.5rem + env(safe-area-inset-bottom, 0px));
        border-right: 0;
        border-bottom: 0;
        border-left: 0;
        border-radius: 0.5rem 0.5rem 0 0;
    }

    .table-reservation-modal__close {
        top: 0.35rem;
        right: 0.35rem;
        width: 2.5rem;
        height: 2.5rem;
        font-size: 1.85rem;
    }

    .table-reservation-modal__logo {
        height: 2.75rem;
    }

    .table-reservation-modal__field {
        grid-template-columns: 1fr;
        gap: 0.35rem;
    }

    .table-reservation-modal__field-row {
        grid-template-columns: 1fr;
        gap: 0.35rem;
    }

    .table-reservation-modal__input,
    .table-reservation-modal__value,
    .table-reservation-modal__value-btn {
        max-width: none;
        text-align: left;
        font-size: 1rem;
    }

    .table-reservation-modal__control {
        min-width: 0;
        max-width: none;
        justify-content: flex-start;
    }

    .table-reservation-modal__time-panel {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .table-reservation-modal__primary {
        padding: 0.85rem 1rem;
        font-size: 0.75rem;
    }

    .table-reservation-modal__actions {
        grid-template-columns: 1fr;
    }

    .table-reservation-modal__secondary {
        order: 2;
    }

    .table-reservation-modal__primary.table-reservation-modal__primary--compact {
        order: 1;
    }
}

.store-card__cashless {
    margin-top: 0.9rem;
}

.store-card__cashless-title {
    margin: 0 0 0.65rem;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.store-card__cashless-icons {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem;
}

.store-card__cashless-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.25rem;
}

.store-card__cashless-item img {
    width: 2.5rem;
    height: 2.5rem;
    object-fit: contain;
}

.store-card__cashless-item span {
    color: var(--gmeiner-text);
    font-size: 0.625rem;
    line-height: 1.1;
    text-transform: none;
}

.store-card.is-focused .store-card__title {
    color: var(--gmeiner-brown-dark);
}

@media (max-width: 991.98px) {
    .stores-listing__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .stores-listing__grid {
        grid-template-columns: 1fr;
    }

    .store-card {
        scroll-margin-top: 6rem;
    }

    .store-card__actions {
        margin-bottom: clamp(2.5rem, 6vw, 3.5rem);
    }
}

/** Fallback ohne Subgrid */
@supports not (grid-template-rows: subgrid) {
    .stores-listing__grid {
        gap: clamp(2rem, 4vw, 3rem) clamp(1.5rem, 3vw, 2.5rem);
        align-items: stretch;
    }

    .store-card {
        display: flex;
        flex-direction: column;
        grid-row: auto;
        height: 100%;
    }

    .store-card__content {
        flex: 1 1 auto;
    }

    .store-card__actions {
        margin-top: auto;
        margin-bottom: 0;
    }
}


/* ==========================================================================
   26. Newsletter-Popup (Cupcake)
   ========================================================================== */

body.is-newsletter-popup-open {
    overflow: hidden;
}

.newsletter-popup {
    position: fixed;
    inset: 0;
    z-index: 1080;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.newsletter-popup[hidden] {
    display: none;
}

.newsletter-popup__backdrop {
    position: absolute;
    inset: 0;
    background-color: rgba(42, 42, 42, 0.18);
}

.newsletter-popup__dialog {
    position: relative;
    z-index: 1;
    width: min(22rem, 92vw);
    max-height: min(92vh, 36rem);
    border: none;
    outline: none;
}

.newsletter-popup__dialog:focus,
.newsletter-popup__dialog:focus-visible {
    outline: none;
}

.newsletter-popup__close {
    position: absolute;
    top: 4%;
    right: 2%;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    padding: 0;
    border: none;
    background-color: rgba(255, 255, 255, 0.72);
    color: var(--gmeiner-text);
    font-size: 1.25rem;
    line-height: 1;
    cursor: pointer;
    transition: background-color var(--transition-fast), color var(--transition-fast);
}

.newsletter-popup__close:hover,
.newsletter-popup__close:focus-visible {
    background-color: var(--gmeiner-white);
    color: var(--gmeiner-brown);
}

.newsletter-popup__cupcake {
    position: relative;
    width: 100%;
    filter:
        drop-shadow(0 0.35rem 0.6rem rgba(42, 42, 42, 0.12))
        drop-shadow(0 1.25rem 2.25rem rgba(42, 42, 42, 0.28));
}

.newsletter-popup__image {
    display: block;
    width: 100%;
    height: auto;
}

.newsletter-popup__title {
    position: absolute;
    top: 34%;
    left: 50%;
    z-index: 2;
    width: 78%;
    margin: 0;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font-display);
    font-size: clamp(1.75rem, 6.5vw, 2.35rem);
    font-style: italic;
    font-weight: 400;
    line-height: 1.1;
    text-align: center;
    transform: translateX(-50%);
}

.newsletter-popup__body {
    position: absolute;
    top: 58%;
    left: 50%;
    z-index: 2;
    width: 68%;
    transform: translateX(-50%);
}

.newsletter-popup__form {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.85rem;
    width: 100%;
}

.newsletter-popup__field {
    width: 100%;
}

.newsletter-popup__input {
    width: 100%;
    padding: 0.65rem 0.75rem;
    border: 1px solid rgba(42, 42, 42, 0.35);
    background-color: var(--gmeiner-white);
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.6875rem;
    font-weight: 400;
    letter-spacing: 0.08em;
    line-height: 1.3;
    text-align: center;
    text-transform: uppercase;
}

.newsletter-popup__input::placeholder {
    color: var(--gmeiner-text-muted);
    opacity: 1;
}

.newsletter-popup__input:focus {
    border-color: var(--gmeiner-brown);
    outline: none;
}

.newsletter-popup__consent {
    display: flex;
    gap: 0.5rem;
    align-items: flex-start;
    justify-content: center;
    width: 100%;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.625rem;
    line-height: 1.45;
    text-align: center;
    cursor: pointer;
}

.newsletter-popup__consent a {
    color: inherit;
    text-decoration: underline;
}

.newsletter-popup__consent a:hover,
.newsletter-popup__consent a:focus-visible {
    color: var(--gmeiner-brown);
}

.newsletter-popup__checkbox {
    flex-shrink: 0;
    margin-top: 0.1rem;
}

.newsletter-popup__honeypot,
.newsletter-popup__iframe {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
    white-space: nowrap;
}

.newsletter-popup__submit {
    min-width: 7.5rem;
    padding: 0.55rem 1.25rem;
    font-size: 0.6875rem;
    letter-spacing: 0.12em;
}

.newsletter-popup__success {
    padding-top: 2.75rem;
    text-align: center;
}

.newsletter-popup__success-lead {
    margin: 0 0 0.5rem;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font-display);
    font-size: 1.25rem;
    font-style: italic;
    font-weight: 400;
    line-height: 1.2;
}

.newsletter-popup__success-text {
    margin: 0;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.75rem;
    line-height: 1.5;
}

.newsletter-popup__form[hidden],
.newsletter-popup__success[hidden] {
    display: none;
}

@media (max-width: 480px) {
    .newsletter-popup__dialog {
        width: min(19rem, 94vw);
    }

    .newsletter-popup__body {
        width: 72%;
        top: 57%;
    }

    .newsletter-popup__title {
        top: 33%;
        width: 80%;
        font-size: clamp(1.6rem, 8vw, 2rem);
    }
}



/* ==========================================================================
   27. Warenkorb
   ========================================================================== */

.cart-page {
    padding: 0 0 var(--page-pad-bottom);
}

.cart-page__empty {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1.25rem;
    padding: 1rem 0 2rem;
}

.cart-page__empty-text {
    margin: 0;
    color: var(--gmeiner-text);
    font-size: 1rem;
    line-height: 1.6;
}

.cart-page__below {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(16rem, 22rem);
    gap: clamp(2rem, 4vw, 3.5rem);
    align-items: start;
    margin-top: clamp(1.75rem, 3vw, 2.5rem);
}

/* --- Positionen --- */

.cart-table__head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 9.5rem 6.5rem 6.5rem;
    gap: 1rem;
    padding: 0 0 0.75rem;
    border-bottom: 1px solid var(--overlay-text-12);
    color: var(--gmeiner-text-muted);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: var(--letter-spacing-eyebrow);
    text-transform: uppercase;
}

.cart-table__cell--qty {
    display: grid;
    grid-template-columns: minmax(0, 1fr) calc(7rem + 2px) 1.75rem;
    column-gap: 0.65rem;
    align-items: center;
}

.cart-table__qty-label {
    grid-column: 2;
    justify-self: center;
    text-align: center;
}

/* Platzhalter = Breite des Papierkorbs in den Zeilen darunter */
.cart-table__cell--qty::after {
    content: "";
    grid-column: 3;
    width: 1.75rem;
}

.cart-table__cell--unit,
.cart-table__cell--sum {
    text-align: right;
}

.cart-line {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 9.5rem 6.5rem 6.5rem;
    gap: 1rem;
    align-items: center;
    padding: 1.25rem 0;
    border-bottom: 1px solid var(--overlay-text-12);
}

.cart-line__product {
    display: flex;
    gap: 1rem;
    align-items: center;
    min-width: 0;
}

.cart-line__media {
    flex-shrink: 0;
    display: block;
    width: 5.5rem;
    height: 5.5rem;
    overflow: hidden;
    background-color: var(--overlay-black-04);
}

.cart-line__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cart-line__info {
    min-width: 0;
}

.cart-line__unit-inline {
    display: none;
}

.cart-line__sku {
    margin: 0 0 0.25rem;
    color: var(--gmeiner-text-muted);
    font-size: 0.75rem;
    line-height: 1.4;
}

.cart-line__name {
    color: var(--gmeiner-text);
    font-size: 0.9375rem;
    line-height: 1.45;
    text-decoration: none;
}

button.cart-line__jump-greeting {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.cart-line--greeting .cart-line__product {
    cursor: pointer;
}

.cart-line__name:hover,
.cart-line__name:focus-visible {
    color: var(--gmeiner-brown);
}

.cart-line__qty {
    display: grid;
    grid-template-columns: minmax(0, 1fr) calc(7rem + 2px) 1.75rem;
    column-gap: 0.65rem;
    align-items: center;
}

.cart-line__qty-control {
    grid-column: 2;
    justify-self: center;
    display: inline-flex;
    align-items: stretch;
    border: 1px solid rgba(42, 42, 42, 0.2);
    background-color: var(--gmeiner-white);
}

.cart-line__qty-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    padding: 0;
    border: none;
    background: none;
    color: var(--gmeiner-text);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
}

.cart-line__qty-btn:hover,
.cart-line__qty-btn:focus-visible {
    color: var(--gmeiner-brown);
}

.cart-line__qty-input {
    width: 2.5rem;
    padding: 0.55rem 0.15rem;
    border: none;
    border-left: 1px solid var(--overlay-text-12);
    border-right: 1px solid var(--overlay-text-12);
    background: transparent;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.875rem;
    text-align: center;
    -moz-appearance: textfield;
}

.cart-line__qty-input::-webkit-outer-spin-button,
.cart-line__qty-input::-webkit-inner-spin-button {
    margin: 0;
    -webkit-appearance: none;
}

.cart-line__remove {
    grid-column: 3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    padding: 0.25rem 0;
    border: none;
    background: none;
    color: var(--gmeiner-text-muted);
    cursor: pointer;
}

.cart-line__remove:hover,
.cart-line__remove:focus-visible {
    color: var(--gmeiner-brown);
}

.cart-line__unit,
.cart-line__sum {
    color: var(--gmeiner-text);
    font-size: 0.9375rem;
    line-height: 1.4;
    text-align: right;
    white-space: nowrap;
}

.cart-line__mobile-label {
    display: none;
}

/* --- Add-ons: Häufig gekauft mit --- */

.cart-extras {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    min-width: 0;
}

.cart-addons {
    min-width: 0;
}

.cart-addons__title {
    margin: 0 0 0.75rem;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: var(--letter-spacing-eyebrow);
    line-height: 1.3;
    text-transform: uppercase;
}

.cart-addons__list {
    margin: 0;
    padding: 0;
    list-style: none;
    border-top: 1px solid var(--overlay-text-12);
}

.cart-addon {
    display: grid;
    grid-template-columns: 4.5rem minmax(0, 1fr) auto;
    gap: 1rem 1.25rem;
    align-items: start;
    padding: 1rem 0;
    border-bottom: 1px solid var(--overlay-text-12);
}

.cart-addon__media {
    width: 4.5rem;
    height: 4.5rem;
    overflow: hidden;
    background-color: #d9d9d9;
}

.cart-addon__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cart-addon__placeholder {
    display: block;
    width: 100%;
    height: 100%;
    background-color: #d9d9d9;
}

.cart-addon__body {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    min-width: 0;
}

.cart-addon__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.75rem;
    align-items: baseline;
}

.cart-addon__name {
    margin: 0;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.9375rem;
    font-weight: 400;
    line-height: 1.35;
}

.cart-addon__price {
    margin: 0;
    color: var(--gmeiner-text);
    font-size: 0.9375rem;
    font-weight: 400;
    line-height: 1.35;
    white-space: nowrap;
}

.cart-addon__fields {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem 1.35rem;
    align-items: flex-start;
}

.cart-addon__field {
    position: relative;
    display: inline-flex;
    flex: 0 0 auto;
    margin: 0;
}

.cart-addon__select {
    display: inline-flex;
    gap: 0.35rem;
    align-items: center;
    max-width: 100%;
    padding: 0;
    border: 0;
    background: none;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1.5;
    text-transform: uppercase;
    cursor: pointer;
}

.cart-addon__select-label {
    display: inline-block;
    line-height: 1.5;
    white-space: nowrap;
}

.cart-addon__select-icon {
    width: 0.85rem;
    height: 0.85rem;
    flex-shrink: 0;
    transition: transform var(--transition-fast);
}

.cart-addon__field.is-open .cart-addon__select-icon {
    transform: rotate(180deg);
}

.cart-addon__select:focus-visible {
    outline: 1px solid var(--gmeiner-brown);
    outline-offset: 2px;
}

.cart-addon__select-menu {
    position: absolute;
    top: calc(100% + 0.35rem);
    left: 0;
    z-index: 20;
    min-width: 12rem;
    margin: 0;
    padding: 0;
    list-style: none;
    border: var(--border-subtle);
    background-color: var(--gmeiner-white);
    box-shadow: var(--shadow-elevated);
}

.cart-addon__select-menu[hidden] {
    display: none;
}

.cart-addon__select-option {
    display: block;
    width: 100%;
    padding: 0.5rem 0.85rem;
    border: 0;
    background: none;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.8125rem;
    font-weight: 400;
    line-height: 1.4;
    text-align: left;
    cursor: pointer;
}

.cart-addon__select-option:hover,
.cart-addon__select-option:focus-visible,
.cart-addon__select-option.is-selected {
    background-color: var(--gmeiner-bg-sage);
    color: var(--gmeiner-brown);
}

.cart-addon__field--motif {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.25rem;
}

.cart-addon__field--motif.is-open .cart-addon__select-icon {
    transform: rotate(180deg);
}

.cart-addon__motif-error {
    margin: 0;
    color: #8a2a2a;
    font-family: var(--gmeiner-font);
    font-size: 0.6875rem;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.35;
    text-transform: none;
}

.cart-addon__motif-error[hidden] {
    display: none;
}

.cart-addon__motifs {
    grid-column: 1 / -1;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    padding: 0.15rem 0 0.35rem;
}

.cart-addon__motifs[hidden] {
    display: none;
}

.cart-addon__motifs-title {
    margin: 0;
    color: var(--gmeiner-text-muted);
    font-family: var(--gmeiner-font);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1.4;
    text-transform: uppercase;
}

.cart-addon__motifs-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 7.5rem));
    gap: 0.75rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.cart-addon__motif {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    width: 100%;
    padding: 0;
    border: 1px solid transparent;
    background: none;
    color: var(--gmeiner-text);
    text-align: left;
    cursor: pointer;
}

.cart-addon__motif:hover,
.cart-addon__motif:focus-visible {
    color: var(--gmeiner-brown);
}

.cart-addon__motif:focus-visible {
    outline: 1px solid var(--gmeiner-brown);
    outline-offset: 2px;
}

.cart-addon__motif.is-selected {
    color: var(--gmeiner-brown);
}

.cart-addon__motif.is-selected .cart-addon__motif-image {
    outline: 1px solid var(--gmeiner-brown);
    outline-offset: 2px;
}

.cart-addon__motif-image {
    display: block;
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    background-color: #d9d9d9;
}

.cart-addon__motif-label {
    display: block;
    font-family: var(--gmeiner-font);
    font-size: 0.75rem;
    font-weight: 400;
    line-height: 1.35;
}

.cart-addon__message {
    grid-column: 1 / -1;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    padding: 0.25rem 0 0.5rem;
    scroll-margin-top: 8rem;
}

.cart-addon__message[hidden] {
    display: none;
}

.cart-addon__message-hint,
.cart-addon__message-price {
    margin: 0;
    color: var(--gmeiner-text-muted);
    font-size: 0.8125rem;
    line-height: 1.55;
}

.cart-addon__message-price {
    color: var(--gmeiner-text);
}

/* ==========================================================================
   27.1 Grußkarten-Editor
   --------------------------------------------------------------------------
   Markup: cart/view.php (Addon „Grußkarte“, data-greeting-editor)
   Logik:  assets/js/greeting-editor.js (window.GmeinerGreetingEditor)
   Einbindung: additional_bottom_scripts/cart.php
   ========================================================================== */

.greeting-editor {
    display: flex;
    flex-direction: column;
    border: 1px solid rgba(42, 42, 42, 0.2);
    background-color: var(--gmeiner-white);
}

.greeting-editor__toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
    align-items: center;
    padding: 0.55rem 0.75rem;
    border-bottom: 1px solid var(--overlay-text-12);
}

.greeting-editor__group {
    position: relative;
    display: inline-flex;
    gap: 0.35rem;
    align-items: center;
}

.greeting-editor__btn {
    display: inline-flex;
    gap: 0.35rem;
    align-items: center;
    justify-content: center;
    min-width: 1.75rem;
    min-height: 1.75rem;
    padding: 0.15rem 0.35rem;
    border: 0;
    background: none;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font-display);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
}

.greeting-editor__btn:hover,
.greeting-editor__btn:focus-visible {
    color: var(--gmeiner-brown);
}

.greeting-editor__btn--size {
    min-width: 5.5rem;
    justify-content: space-between;
    font-size: 0.95rem;
}

.greeting-editor__size-caret {
    width: 0;
    height: 0;
    border-left: 0.28rem solid transparent;
    border-right: 0.28rem solid transparent;
    border-top: 0.32rem solid currentColor;
    border-bottom: 0.32rem solid transparent;
    margin-top: -0.1rem;
}

.greeting-editor__underline {
    text-decoration: underline;
}

.greeting-editor__menu {
    position: absolute;
    top: calc(100% + 0.25rem);
    left: 0;
    z-index: 25;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 2.75rem;
    padding: 0.35rem;
    border: 1px solid var(--overlay-text-12);
    background-color: var(--gmeiner-white);
    box-shadow: var(--shadow-elevated);
}

.greeting-editor__menu[hidden] {
    display: none;
}

.greeting-editor__menu--size {
    min-width: 7rem;
    align-items: stretch;
}

.greeting-editor__menu-btn,
.greeting-editor__size-option {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 0.35rem 0.5rem;
    border: 0;
    background: none;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font-display);
    cursor: pointer;
}

.greeting-editor__menu-btn:hover,
.greeting-editor__menu-btn:focus-visible,
.greeting-editor__size-option:hover,
.greeting-editor__size-option:focus-visible {
    background-color: var(--gmeiner-bg-sage);
    color: var(--gmeiner-brown);
}

.greeting-editor__size-option--small {
    font-size: 0.8rem;
}

.greeting-editor__size-option--normal {
    font-size: 1rem;
}

.greeting-editor__size-option--large {
    font-size: 1.25rem;
}

.greeting-editor__size-option--huge {
    font-size: 1.5rem;
}

.greeting-editor__align-icon {
    display: block;
    width: 1rem;
    height: 0.75rem;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 1rem 0.75rem;
}

.greeting-editor__align-icon--left {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 12'%3E%3Cpath fill='%232a2a2a' d='M0 1h10v1.5H0zm0 4.25h16v1.5H0zm0 4.25h12v1.5H0z'/%3E%3C/svg%3E");
}

.greeting-editor__align-icon--center {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 12'%3E%3Cpath fill='%232a2a2a' d='M3 1h10v1.5H3zm0 4.25h16v1.5H0zm2 4.25h12v1.5H2z'/%3E%3C/svg%3E");
}

.greeting-editor__align-icon--right {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 12'%3E%3Cpath fill='%232a2a2a' d='M6 1h10v1.5H6zm0 4.25H16v1.5H0zm4 4.25h12v1.5H4z'/%3E%3C/svg%3E");
}

.greeting-editor__align-icon--justify {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 12'%3E%3Cpath fill='%232a2a2a' d='M0 1h16v1.5H0zm0 4.25h16v1.5H0zm0 4.25h16v1.5H0z'/%3E%3C/svg%3E");
}

.greeting-editor__surface {
    min-height: 10rem;
    padding: 0.9rem 1rem 1.1rem;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font-display);
    font-size: 1.25rem;
    line-height: 1.35;
    outline: none;
    overflow: auto;
}

.greeting-editor__surface p,
.greeting-editor__surface div {
    margin: 0;
    padding: 0;
    line-height: inherit;
}

.greeting-editor.is-empty .greeting-editor__surface::before {
    content: attr(data-placeholder);
    color: var(--gmeiner-text-muted);
    font-style: italic;
    pointer-events: none;
}

.greeting-editor__surface .greeting-editor__size--small {
    font-size: 0.9rem;
}

.greeting-editor__surface .greeting-editor__size--normal {
    font-size: 1.25rem;
}

.greeting-editor__surface .greeting-editor__size--large {
    font-size: 1.65rem;
}

.greeting-editor__surface .greeting-editor__size--huge {
    font-size: 2.1rem;
}

.greeting-editor__count {
    margin: 0;
    padding: 0.45rem 0.75rem 0.55rem;
    border-top: 1px solid var(--overlay-text-12);
    color: var(--gmeiner-text-muted);
    font-size: 0.75rem;
    line-height: 1.4;
    text-align: right;
}

.cart-addon__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 10.5rem;
    padding: 0.85rem 1.25rem;
    border: none;
    background-color: var(--gmeiner-bg-sage);
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: var(--letter-spacing-eyebrow);
    line-height: 1.2;
    text-transform: uppercase;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color var(--transition-fast), color var(--transition-fast);
}

.cart-addon__btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.cart-addon__btn:hover:not(:disabled),
.cart-addon__btn:focus-visible:not(:disabled),
.cart-addon__btn.is-added {
    background-color: var(--gmeiner-bg-mint);
    color: var(--gmeiner-brown);
}

/* --- Sidebar --- */

.cart-summary {
    position: sticky;
    top: calc(var(--site-header-offset, 8rem) + 1rem);
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.cart-summary__totals {
    margin: 0;
}

.cart-summary__row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin: 0 0 0.7rem;
    color: var(--gmeiner-text);
    font-size: 0.8125rem;
    letter-spacing: 0.04em;
    line-height: 1.4;
    text-transform: uppercase;
}

.cart-summary__row dt {
    margin: 0;
    font-weight: 400;
}

.cart-summary__row dd {
    margin: 0;
    font-weight: 400;
    text-align: right;
    white-space: nowrap;
}

.cart-summary__row--total {
    margin-top: 0.35rem;
    font-weight: 700;
}

.cart-summary__row--total dt,
.cart-summary__row--total dd {
    font-weight: 700;
}

.cart-coupon {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding-top: 1rem;
    border-top: 1px solid var(--overlay-text-12);
}

.cart-coupon__title {
    margin: 0;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font-display);
    font-size: 1.25rem;
    font-weight: 500;
    line-height: 1.25;
}

.cart-coupon__input {
    width: 100%;
    padding: 0.8rem 0.9rem;
    border: 1px solid rgba(42, 42, 42, 0.25);
    background-color: var(--gmeiner-white);
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.75rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.cart-coupon__input::placeholder {
    color: var(--gmeiner-text-muted);
    opacity: 1;
}

.cart-coupon__input:focus {
    border-color: var(--gmeiner-brown);
    outline: none;
}

.cart-coupon__submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 0.85rem 1rem;
    border: none;
    background-color: var(--gmeiner-bg-mint);
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: var(--letter-spacing-eyebrow);
    text-transform: uppercase;
    cursor: pointer;
    transition: background-color var(--transition-fast), color var(--transition-fast);
}

.cart-coupon__submit:hover,
.cart-coupon__submit:focus-visible {
    background-color: var(--gmeiner-bg-sage);
    color: var(--gmeiner-brown);
}

.cart-coupon__message {
    margin: 0;
    color: var(--gmeiner-text-muted);
    font-size: 0.8125rem;
    line-height: 1.5;
}

.cart-coupon__message.is-error {
    color: #8a2f2f;
}

.cart-coupon__message.is-success {
    color: #2f6b45;
}

.cart-coupon__clear {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin-top: 0.5rem;
    padding: 0.65rem 1rem;
    border: 1px solid var(--gmeiner-border, #cfc8be);
    background: transparent;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.75rem;
    cursor: pointer;
}

.cart-line__subtitle {
    margin: 0.25rem 0 0;
    color: var(--gmeiner-text-muted, #6b645c);
    font-size: 0.8125rem;
    font-style: italic;
    line-height: 1.4;
}

.cart-line__qty-fixed {
    grid-column: 2;
    justify-self: center;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: calc(7rem + 2px);
    min-height: 2.5rem;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.875rem;
    text-align: center;
}

.cart-line__media--empty {
    width: 96px;
    height: 96px;
    background-color: var(--gmeiner-bg-sage, #e8ebe4);
}

.cart-summary__incentive {
    margin: 0;
    padding: 1rem 1.1rem;
    background-color: var(--gmeiner-bg-sage);
    color: var(--gmeiner-text);
    font-size: 0.8125rem;
    line-height: 1.55;
    text-align: center;
}

.cart-summary__incentive-text {
    margin: 0;
}

.cart-money,
.cart-summary__incentive-text strong {
    white-space: nowrap;
}

.cart-gratis {
    text-align: left;
}

.cart-gratis__intro {
    margin: 0 0 0.75rem;
    text-align: center;
}

.cart-gratis__dropdown {
    position: relative;
}

.cart-gratis__toggle {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    width: 100%;
    padding: 0.45rem 0.65rem;
    border: 1px solid var(--gmeiner-border, #cfc8be);
    background-color: #fff;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.875rem;
    line-height: 1.35;
    text-align: left;
    cursor: pointer;
}

.cart-gratis__toggle:focus-visible {
    outline: 2px solid var(--gmeiner-brown, #5c4033);
    outline-offset: 2px;
}

.cart-gratis__toggle-media,
.cart-gratis__option-media {
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    overflow: hidden;
    background-color: var(--gmeiner-bg-sage, #e8ebe4);
}

.cart-gratis__toggle-media img,
.cart-gratis__option-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cart-gratis__thumb-placeholder {
    display: block;
    width: 100%;
    height: 100%;
    background-color: var(--gmeiner-bg-sage, #e8ebe4);
}

.cart-gratis__toggle-label,
.cart-gratis__option-label {
    flex: 1 1 auto;
    min-width: 0;
}

.cart-gratis__chevron {
    flex: 0 0 auto;
    width: 0.45rem;
    height: 0.45rem;
    margin-right: 0.15rem;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg);
    opacity: 0.7;
}

.cart-gratis__dropdown.is-open .cart-gratis__chevron {
    transform: rotate(-135deg);
    margin-top: 0.25rem;
}

.cart-gratis__panel {
    position: absolute;
    z-index: 20;
    top: calc(100% + 0.25rem);
    left: 0;
    right: 0;
    max-height: 16rem;
    overflow: auto;
    border: 1px solid var(--gmeiner-border, #cfc8be);
    background-color: #fff;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}

.cart-gratis__group-label {
    margin: 0;
    padding: 0.55rem 0.75rem 0.25rem;
    color: var(--gmeiner-text-muted, #6b645c);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.cart-gratis__option {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    width: 100%;
    padding: 0.4rem 0.65rem;
    border: 0;
    background: transparent;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.8125rem;
    line-height: 1.35;
    text-align: left;
    cursor: pointer;
}

.cart-gratis__option:hover,
.cart-gratis__option:focus-visible {
    background-color: var(--gmeiner-bg-sage, #e8ebe4);
}

.cart-gratis__option.is-selected {
    background-color: var(--gmeiner-bg-mint, #d8e6df);
}

.cart-summary__checkout {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 1.15rem 1.25rem;
    background-color: var(--gmeiner-brown);
    color: var(--gmeiner-white);
    font-family: var(--gmeiner-font);
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: var(--letter-spacing-eyebrow);
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
    box-shadow: 0 0.35rem 0.85rem rgba(92, 64, 51, 0.22);
    transition: background-color var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast);
}

.cart-summary__checkout:hover,
.cart-summary__checkout:focus-visible {
    background-color: var(--gmeiner-brown-dark);
    color: var(--gmeiner-white);
    box-shadow: 0 0.45rem 1rem rgba(92, 64, 51, 0.28);
}

.cart-summary__continue {
    display: inline-block;
    margin: 0 auto;
    color: var(--gmeiner-text);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: var(--letter-spacing-eyebrow);
    line-height: 1.4;
    text-align: center;
    text-decoration: underline;
    text-transform: uppercase;
    text-underline-offset: 0.15em;
}

.cart-summary__continue:hover,
.cart-summary__continue:focus-visible {
    color: var(--gmeiner-brown);
}

/* Sticky Checkout nur Mobile */
.cart-sticky {
    display: none;
}

@media (max-width: 991.98px) {
    .cart-page__below {
        grid-template-columns: 1fr;
    }

    .cart-summary {
        position: static;
        order: 1;
    }

    .cart-extras {
        order: 2;
    }

    .cart-table__head {
        display: none;
    }

    .cart-line {
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas:
            "product product"
            "qty sum";
        gap: 0.85rem 1rem;
    }

    .cart-line__product {
        grid-area: product;
    }

    .cart-line__qty {
        grid-area: qty;
        display: flex;
        justify-content: flex-start;
        gap: 0.65rem;
    }

    .cart-line__qty-control,
    .cart-line__remove {
        grid-column: auto;
    }

    .cart-line__unit {
        display: none;
    }

    .cart-line__unit-inline {
        display: block;
        margin: 0.35rem 0 0;
        color: var(--gmeiner-text-muted);
        font-size: 0.8125rem;
        line-height: 1.4;
    }

    .cart-line__unit-inline .cart-line__mobile-label {
        margin-right: 0.35rem;
    }

    .cart-line__sum {
        grid-area: sum;
        font-weight: 700;
        text-align: right;
    }

    .cart-line__mobile-label {
        display: inline;
        color: var(--gmeiner-text-muted);
        font-size: 0.6875rem;
        font-weight: 700;
        letter-spacing: 0.06em;
        text-transform: uppercase;
    }

    .cart-line__sum .cart-line__mobile-label {
        display: none;
    }

    .cart-addon {
        grid-template-columns: 3.75rem minmax(0, 1fr);
        grid-template-areas:
            "media body"
            "btn btn";
        gap: 0.85rem 1rem;
        align-items: start;
    }

    .cart-addon__media {
        grid-area: media;
        width: 3.75rem;
        height: 3.75rem;
    }

    .cart-addon__body {
        grid-area: body;
    }

    .cart-addon__btn {
        grid-area: btn;
        width: 100%;
        min-width: 0;
    }

    .cart-addon__motifs-list {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0.55rem;
    }

    .cart-addon__motif-label {
        font-size: 0.6875rem;
    }

    .cart-page {
        padding-bottom: 6.5rem;
    }

    .cart-sticky {
        position: fixed;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 2147483644;
        display: block;
        padding: 0.75rem 1rem calc(0.75rem + env(safe-area-inset-bottom));
        background-color: var(--gmeiner-white);
        border-top: 1px solid var(--overlay-text-12);
        box-shadow: 0 -0.5rem 1.25rem var(--overlay-text-08);
        opacity: 0;
        pointer-events: none;
        transform: translateY(100%);
        transition: opacity var(--transition-fast), transform var(--transition-fast);
    }

    .cart-sticky.is-visible {
        opacity: 1;
        pointer-events: auto;
        transform: translateY(0);
    }

    .cart-sticky__inner {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
        max-width: var(--content-max-width);
        margin: 0 auto;
    }

    .cart-sticky__total {
        display: flex;
        flex-direction: column;
        gap: 0.15rem;
        margin: 0;
        color: var(--gmeiner-text);
        font-size: 0.75rem;
        letter-spacing: 0.06em;
        text-transform: uppercase;
    }

    .cart-sticky__total strong {
        font-size: 1rem;
        font-weight: 700;
        letter-spacing: normal;
        text-transform: none;
    }

    .cart-sticky__checkout {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 10rem;
        padding: 0.95rem 1.25rem;
        background-color: var(--gmeiner-brown);
        color: var(--gmeiner-white);
        font-size: 0.75rem;
        font-weight: 700;
        letter-spacing: var(--letter-spacing-eyebrow);
        text-decoration: none;
        text-transform: uppercase;
    }

    .cart-sticky__checkout:hover,
    .cart-sticky__checkout:focus-visible {
        background-color: var(--gmeiner-brown-dark);
        color: var(--gmeiner-white);
    }
}


/* ==========================================================================
   28. Checkout (Kasse)
   ========================================================================== */

.checkout-page {
    padding: 0 0 var(--page-pad-bottom);
}

.checkout-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(2rem, 4vw, 3.5rem);
    align-items: start;
}

.checkout-section {
    margin: 0 0 2rem;
    padding: 0 0 2rem;
    border-bottom: 1px solid var(--overlay-text-12);
}

.checkout-section:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}

.checkout-section__title {
    margin: 0 0 1.25rem;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: var(--letter-spacing-eyebrow);
    line-height: 1.3;
    text-transform: uppercase;
}

.checkout-fields {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 1rem 0.85rem;
}

.checkout-field {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    grid-column: 1 / -1;
}

.checkout-field--half {
    grid-column: span 6;
}

.checkout-field--street {
    grid-column: 1 / 9;
}

.checkout-field--houseno {
    grid-column: 9 / 13;
}

.checkout-field--zip {
    grid-column: 1 / 6;
}

.checkout-field--city {
    grid-column: 6 / 13;
}

.checkout-field--suggested .checkout-field__input,
.checkout-field--suggested.checkout-field__input {
    border-color: #c4a35a;
    box-shadow: 0 0 0 2px rgba(196, 163, 90, 0.22);
    background-color: #fffdf6;
}

/* Flatpickr an Checkout-Felder anpassen */
.checkout-choice__extra .flatpickr-input,
.checkout-choice__extra .form-control.input {
    width: 100%;
}

.flatpickr-calendar {
    font-family: var(--gmeiner-font);
    border-radius: 0;
    box-shadow: var(--shadow-elevated, 0 0.75rem 1.75rem rgba(42, 42, 42, 0.08));
}

.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange,
.flatpickr-day.selected:hover {
    background: var(--gmeiner-brown, #5c4033);
    border-color: var(--gmeiner-brown, #5c4033);
}

.flatpickr-day.flatpickr-disabled,
.flatpickr-day.prevMonthDay.flatpickr-disabled,
.flatpickr-day.nextMonthDay.flatpickr-disabled {
    color: rgba(42, 42, 42, 0.28);
}

.checkout-field__label {
    color: var(--gmeiner-text-muted);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.checkout-field__input {
    width: 100%;
    padding: 0.8rem 0.9rem;
    border: 1px solid rgba(42, 42, 42, 0.25);
    background-color: var(--gmeiner-white);
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.875rem;
    line-height: 1.4;
}

.checkout-field__input::placeholder {
    color: var(--gmeiner-text-muted);
    opacity: 1;
}

.checkout-field__input:focus {
    border-color: var(--gmeiner-brown);
    outline: none;
}

.checkout-field__input--select {
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M6 9l6 6 6-6' stroke='%232a2a2a' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    background-size: 1rem;
    padding-right: 2.25rem;
}

.checkout-field__input--textarea {
    min-height: 8rem;
    resize: vertical;
}

.checkout-check {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    margin-top: 1.25rem;
    cursor: pointer;
}

.checkout-check__input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.checkout-check__box {
    flex: 0 0 auto;
    width: 1.1rem;
    height: 1.1rem;
    margin-top: 0.1rem;
    border: 1px solid rgba(42, 42, 42, 0.45);
    background-color: var(--gmeiner-white);
}

.checkout-check__input:checked + .checkout-check__box {
    background-color: var(--gmeiner-brown);
    border-color: var(--gmeiner-brown);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M5 12.5l5 5L19 7' stroke='%23fff' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 0.8rem;
}

.checkout-check__input:focus-visible + .checkout-check__box {
    outline: 2px solid var(--gmeiner-brown);
    outline-offset: 2px;
}

.checkout-check__label {
    color: var(--gmeiner-text);
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
}

.checkout-check__label a {
    color: var(--gmeiner-brown);
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.checkout-check__label a:hover,
.checkout-check__label a:focus-visible {
    color: var(--gmeiner-brown-dark);
}

.checkout-choice-list {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.checkout-address-picker {
    margin: 0 0 1.25rem;
}

.checkout-address-picker__intro {
    margin: 0 0 0.65rem;
    color: var(--gmeiner-text);
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
}

.checkout-address-picker__list {
    gap: 0.4rem;
}

.checkout-address-picker__option {
    position: relative;
    align-items: center;
    width: fit-content;
    max-width: 100%;
}

.checkout-address-picker__option .checkout-choice__control {
    margin-top: 0;
}

.checkout-address-picker__badge {
    margin-left: 0.4rem;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font);
    font-size: 0.8rem;
    font-weight: 500;
}

.checkout-address-picker__tooltip {
    display: none;
    position: absolute;
    left: 1.85rem;
    top: calc(100% + 0.35rem);
    z-index: 8;
    min-width: 12rem;
    max-width: min(18rem, 80vw);
    padding: 0.65rem 0.8rem;
    border: 1px solid var(--overlay-text-12);
    background: #fff;
    color: var(--gmeiner-text);
    box-shadow: 0 0.35rem 1rem rgba(42, 42, 42, 0.1);
    font-family: var(--gmeiner-font);
    font-size: 0.875rem;
    line-height: 1.45;
    pointer-events: none;
}

.checkout-address-picker__tooltip-line {
    display: block;
}

.checkout-address-picker__option:hover .checkout-address-picker__tooltip,
.checkout-address-picker__option:focus-within .checkout-address-picker__tooltip {
    display: block;
}

@media (hover: none) {
    .checkout-address-picker__tooltip {
        display: none !important;
    }
}

.checkout-address-picker + [data-checkout-address-fields] {
    margin-top: 0.25rem;
}

.checkout-choice {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    cursor: default;
    position: relative;
}

/* Absender/Zahlung/Pickup: Label selbst ist die Choice-Zeile */
label.checkout-choice {
    flex-direction: row;
    align-items: flex-start;
    gap: 0.85rem;
    cursor: pointer;
}

.checkout-choice__row {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    cursor: pointer;
}

.checkout-choice--compact {
    gap: 0.75rem;
}

.checkout-choice--compact .checkout-choice__row {
    gap: 0.75rem;
}

.checkout-choice__input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.checkout-choice__control {
    flex: 0 0 auto;
    width: 1.15rem;
    height: 1.15rem;
    margin-top: 0.15rem;
    border: 1px solid rgba(42, 42, 42, 0.45);
    border-radius: 50%;
    background-color: var(--gmeiner-white);
}

.checkout-choice__input:checked + .checkout-choice__control {
    border-color: var(--gmeiner-brown);
    border-width: 0.3rem;
}

.checkout-choice__input:focus-visible + .checkout-choice__control {
    outline: 2px solid var(--gmeiner-brown);
    outline-offset: 2px;
}

.checkout-choice__body {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-width: 0;
}

.checkout-choice__label {
    color: var(--gmeiner-text);
    font-size: var(--font-size-body);
    font-weight: 500;
    line-height: var(--line-height-body);
}

.checkout-choice__meta,
.checkout-choice__price {
    color: var(--gmeiner-text-muted);
    font-size: 0.8125rem;
    line-height: 1.55;
}

.checkout-choice-list--bars {
    gap: 0.5rem;
}

label.checkout-choice.checkout-choice--bar,
.checkout-choice.checkout-choice--bar {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 0.5rem 0.75rem;
    margin: 0;
    padding: 0.75rem 1rem;
    background-color: var(--gmeiner-bg-sage);
    border: 0;
    cursor: pointer;
}

.checkout-choice--bar:has(.checkout-choice__input:checked) {
    background-color: var(--gmeiner-bg-mint);
}

.checkout-choice--bar:focus-within {
    outline: 2px solid var(--gmeiner-brown);
    outline-offset: 2px;
}

.checkout-choice--bar .checkout-choice__row,
.checkout-choice--bar .checkout-choice__body {
    display: contents;
}

.checkout-choice--bar .checkout-choice__control {
    display: none;
}

.checkout-choice--bar .checkout-choice__label {
    grid-column: 1;
    grid-row: 1;
    min-width: 0;
    font-weight: 600;
    line-height: 1.35;
}

.checkout-choice--bar .checkout-choice__facts {
    grid-column: 2;
    grid-row: 1;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.75rem;
    text-align: right;
    white-space: nowrap;
}

.checkout-choice--bar .checkout-choice__time,
.checkout-choice--bar .checkout-choice__price {
    flex: 0 0 auto;
    color: var(--gmeiner-text);
    font-size: 0.8125rem;
    font-weight: 500;
    line-height: 1.3;
}

.checkout-choice--bar .checkout-bar__info {
    grid-column: 3;
    grid-row: 1;
}

.checkout-choice--bar .checkout-choice__extra {
    grid-column: 1 / -1;
    grid-row: 2;
    margin: 0;
    max-width: 16rem;
}

.checkout-bar__info {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.25rem;
    height: 1.25rem;
    padding: 0;
    border: 1px solid rgba(42, 42, 42, 0.35);
    border-radius: 999px;
    background: var(--gmeiner-white);
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 0.75rem;
    font-style: italic;
    font-weight: 600;
    line-height: 1;
    cursor: help;
}

.checkout-bar__tooltip {
    display: none;
    position: absolute;
    right: 0.75rem;
    top: calc(100% + 0.35rem);
    z-index: 8;
    max-width: 22rem;
    padding: 0.7rem 0.85rem;
    background: var(--gmeiner-white);
    border: 1px solid rgba(42, 42, 42, 0.12);
    box-shadow: 0 0.35rem 1rem rgba(42, 42, 42, 0.12);
    color: var(--gmeiner-text);
    font-size: 0.8125rem;
    line-height: 1.45;
    white-space: pre-line;
    pointer-events: none;
}

.checkout-bar__info:hover + .checkout-bar__tooltip,
.checkout-bar__info:focus-visible + .checkout-bar__tooltip {
    display: block;
}

.checkout-bar__tooltip:empty {
    display: none;
}

.checkout-choice__extra {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    margin-top: 0.65rem;
    margin-left: calc(1.15rem + 0.85rem);
    max-width: 16rem;
}

.checkout-choice__extra .flatpickr-input,
.checkout-choice__extra input.checkout-field__input {
    width: 100%;
    cursor: pointer;
    background-color: var(--gmeiner-white);
}

.checkout-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 1rem;
    margin-top: clamp(1.5rem, 3vw, 2.5rem);
    padding-top: 1.5rem;
    border-top: 1px solid var(--overlay-text-12);
}

.checkout-actions__back,
.checkout-actions__next {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 10rem;
    padding: 0.875rem 2rem;
    text-align: center;
}

.checkout-actions__back {
    border-color: var(--gmeiner-brown);
    color: var(--gmeiner-brown);
    text-transform: uppercase;
    letter-spacing: var(--letter-spacing-nav);
}

@media (max-width: 991.98px) {
    .checkout-layout {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .checkout-layout__aside .checkout-section:first-child {
        padding-top: 0.5rem;
    }
}

@media (max-width: 575.98px) {
    .checkout-field--half {
        grid-column: 1 / -1;
    }

    .checkout-actions {
        flex-direction: column-reverse;
    }

    .checkout-actions__back,
    .checkout-actions__next {
        width: 100%;
    }
}


/* ==========================================================================
   29. Bestellabschluss
   ========================================================================== */

.order-review-page {
    padding: 0 0 var(--page-pad-bottom);
}

.order-review-layout {
    display: grid;
    grid-template-columns: minmax(12rem, 18rem) minmax(0, 1fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
    align-items: start;
}

.order-review-layout__heading-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    margin: 0 0 1.25rem;
}

.order-review-layout__heading-row .order-review-layout__heading {
    margin: 0;
}

.order-review-layout__heading {
    margin: 0 0 1.25rem;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font-display);
    font-size: 1.375rem;
    font-weight: 500;
    line-height: 1.25;
}

.order-review-layout__edit {
    flex-shrink: 0;
    color: var(--gmeiner-text-muted);
    font-family: var(--gmeiner-font);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    line-height: 1.3;
    text-decoration: underline;
    text-transform: uppercase;
    text-underline-offset: 0.15em;
}

.order-review-layout__edit:hover,
.order-review-layout__edit:focus-visible {
    color: var(--gmeiner-brown);
}

.order-review-block {
    margin: 0 0 1.5rem;
    padding: 0 0 1.5rem;
    border-bottom: 1px solid var(--overlay-text-12);
}

.order-review-block:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}

.order-review-block__title {
    margin: 0 0 0.75rem;
    color: var(--gmeiner-text-muted);
    font-family: var(--gmeiner-font);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: var(--letter-spacing-eyebrow);
    line-height: 1.3;
    text-transform: uppercase;
}

.order-review-block__body {
    color: var(--gmeiner-text);
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
}

.order-review-block__body p {
    margin: 0;
}

.order-review-block__body a {
    color: var(--gmeiner-text);
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.order-review-block__body a:hover,
.order-review-block__body a:focus-visible {
    color: var(--gmeiner-brown);
}

.order-review-items {
    margin: 0 0 1.5rem;
}

.order-review-item {
    display: grid;
    grid-template-columns: 5rem minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: start;
    padding: 1.15rem 0;
    border-bottom: 1px solid var(--overlay-text-12);
}

.order-review-item:first-child {
    border-top: 1px solid var(--overlay-text-12);
}

.order-review-item__media {
    display: block;
    width: 5rem;
    height: 5rem;
    overflow: hidden;
    background-color: var(--overlay-black-04);
}

.order-review-item__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.order-review-item__info {
    min-width: 0;
}

.order-review-item__name {
    display: inline-block;
    margin: 0 0 0.35rem;
    color: var(--gmeiner-text);
    font-size: 0.9375rem;
    font-weight: 700;
    line-height: 1.4;
    text-decoration: none;
}

.order-review-item__name:hover,
.order-review-item__name:focus-visible {
    color: var(--gmeiner-brown);
}

.order-review-item__subtitle {
    margin: 0.25rem 0 0.35rem;
    color: var(--gmeiner-text-muted, #6b645c);
    font-size: 0.8125rem;
    font-style: italic;
    line-height: 1.4;
}

.order-review-item__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 0.85rem;
    margin: 0 0 0.35rem;
    color: var(--gmeiner-text-muted);
    font-size: 0.8125rem;
    line-height: 1.45;
}

.order-review-item__qty {
    margin: 0;
    color: var(--gmeiner-text);
    font-size: 0.8125rem;
    line-height: 1.4;
}

.order-review-item__sum {
    margin: 0;
    color: var(--gmeiner-text);
    font-size: 0.9375rem;
    font-weight: 700;
    line-height: 1.4;
    text-align: right;
    white-space: nowrap;
}

.order-review-summary {
    position: static;
    max-width: 22rem;
    margin-left: auto;
}

.order-review-note {
    margin: clamp(2rem, 4vw, 2.75rem) 0 0;
    padding: 1.25rem 1.5rem;
    background-color: var(--gmeiner-bg-sage);
    color: var(--gmeiner-text);
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
    text-align: center;
}

.order-review-legal {
    margin: 1.5rem 0 0;
    color: var(--gmeiner-text);
    font-size: 0.875rem;
    line-height: 1.55;
    text-align: center;
}

.order-review-legal a {
    color: var(--gmeiner-text);
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.order-review-legal a:hover,
.order-review-legal a:focus-visible {
    color: var(--gmeiner-brown);
}

.order-review-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 1rem;
    margin-top: clamp(1.5rem, 3vw, 2.5rem);
    padding-top: 1.5rem;
    border-top: 1px solid var(--overlay-text-12);
}

.order-review-actions__back,
.order-review-actions__submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 10rem;
    padding: 0.875rem 2rem;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: var(--letter-spacing-nav);
}

@media (max-width: 991.98px) {
    .order-review-layout {
        grid-template-columns: 1fr;
        gap: 2.5rem;
    }

    .order-review-layout__cart {
        order: 1;
    }

    .order-review-layout__data {
        order: 2;
    }

    .order-review-summary {
        max-width: none;
        margin-left: 0;
    }
}

@media (max-width: 575.98px) {
    .order-review-item {
        grid-template-columns: 4.25rem minmax(0, 1fr);
        grid-template-areas:
            "media info"
            "media sum";
    }

    .order-review-item__media {
        grid-area: media;
        width: 4.25rem;
        height: 4.25rem;
    }

    .order-review-item__info {
        grid-area: info;
    }

    .order-review-item__sum {
        grid-area: sum;
        text-align: left;
    }

    .order-review-actions {
        flex-direction: column-reverse;
    }

    .order-review-actions__back,
    .order-review-actions__submit {
        width: 100%;
    }
}

/* Success-Seite analog Live 2025 (Häkchen + zentrierter Text) */

@keyframes order-success-icon-in {
    from {
        opacity: 0;
        transform: scale(0.45);
    }
    to {
        opacity: 1;
        transform: scale(0.8);
    }
}

@keyframes order-success-icon-rotate {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

@keyframes order-success-star-grow {
    0%,
    100% {
        transform: scale(0);
        opacity: 0;
    }
    50% {
        transform: scale(1);
        opacity: 1;
    }
}

.order-success-page {
    padding: 0 0 var(--page-pad-bottom);
}

.order-success-page__inner {
    text-align: center;
}

.order-success-page__header .order-success-page__title {
    margin-top: 0.5rem;
}

.order-success-icon {
    position: relative;
    display: inline-block;
    padding: 1.875rem;
    margin: -1.25rem 0 0.75rem;
    transform: scale(0.8);
    animation: order-success-icon-in 0.7s cubic-bezier(0.42, 0, 0.275, 1.155) both;
}

.order-success-icon__star {
    position: absolute;
    fill: var(--gmeiner-brown);
    opacity: 0;
    animation: order-success-star-grow 3s infinite;
}

.order-success-icon__star:nth-child(1) {
    width: 12px;
    height: 12px;
    left: 12px;
    top: 16px;
    animation-delay: 1.5s;
}

.order-success-icon__star:nth-child(2) {
    width: 18px;
    height: 18px;
    left: 168px;
    top: 84px;
    animation-delay: 3s;
}

.order-success-icon__star:nth-child(3) {
    width: 10px;
    height: 10px;
    left: 32px;
    top: 162px;
    animation-delay: 4.5s;
}

.order-success-icon__star:nth-child(4) {
    width: 20px;
    height: 20px;
    left: 82px;
    top: -12px;
    animation-delay: 6s;
}

.order-success-icon__star:nth-child(5) {
    width: 14px;
    height: 14px;
    left: 125px;
    top: 162px;
    animation-delay: 7.5s;
}

.order-success-icon__star:nth-child(6) {
    width: 10px;
    height: 10px;
    left: 16px;
    top: 16px;
    animation-delay: 9s;
}

.order-success-icon__check {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 1;
    transform: translate(-50%, -50%);
    fill: var(--gmeiner-white);
}

.order-success-icon__bg {
    display: block;
    fill: var(--gmeiner-brown);
    animation: order-success-icon-rotate 35s linear infinite;
}

.order-success-page__number {
    margin: 0 auto 1rem;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font);
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
}

.order-success-page__text {
    max-width: 38rem;
    margin: 0 auto 1rem;
    color: var(--gmeiner-text);
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
}

.order-success-page__text a {
    color: var(--gmeiner-brown);
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.order-success-page__text a:hover,
.order-success-page__text a:focus-visible {
    color: var(--gmeiner-brown-dark);
}

.order-success-page__instagram {
    margin: 1.75rem auto 0;
}

.order-success-page__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.75rem 1rem;
    margin: 2.5rem 0 0;
}

.order-success-page__actions .btn-gmeiner,
.order-success-page__actions .btn-gmeiner-outline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 10rem;
    padding: 0.875rem 2rem;
    text-align: center;
}

.order-success-page__actions .btn-gmeiner-outline,
.order-success-page__actions a.btn-gmeiner-outline,
.order-success-page__actions a.btn-gmeiner-outline:visited {
    border-color: var(--gmeiner-brown);
    color: var(--gmeiner-brown);
    text-transform: uppercase;
    letter-spacing: var(--letter-spacing-nav);
}

@media (prefers-reduced-motion: reduce) {
    .order-success-icon,
    .order-success-icon__bg,
    .order-success-icon__star {
        animation: none;
    }

    .order-success-icon {
        opacity: 1;
        transform: scale(0.8);
    }

    .order-success-icon__star {
        display: none;
    }
}

/* --------------------------------------------------------------------------
   Kundenkonto / Auth / Checkout-Weiche
   -------------------------------------------------------------------------- */

.auth-page,
.checkout-auth-page,
.account-page {
    padding-bottom: var(--page-pad-bottom);
}

.auth-page__panel {
    max-width: 28rem;
    margin: 0 auto;
}

.auth-page__error {
    margin: 0 0 1rem;
    color: #8a2f2f;
}

.auth-page__success {
    margin: 0 0 1.5rem;
}

.auth-page__success-lead {
    margin: 0 0 0.5rem;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font-display);
    font-size: 1.35rem;
}

/* Status-Hinweise (Konto, Formulare) – klar sichtbar, dezent im Brand */
.shop-notice {
    margin: 0 0 1.25rem;
    padding: 0.9rem 1.1rem;
    border-left: 3px solid var(--gmeiner-brown);
    background: var(--gmeiner-bg-cream);
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: var(--font-size-body);
    line-height: 1.55;
}

.shop-notice--success {
    border-left-color: #5a7a62;
    background: var(--gmeiner-bg-sage);
    color: var(--gmeiner-brown-dark);
}

.shop-notice--error {
    border-left-color: #8a2f2f;
    background: var(--gmeiner-bg-blush);
    color: #6e2424;
}

.shop-notice--info {
    border-left-color: var(--gmeiner-gold);
    background: var(--gmeiner-bg-bestseller);
    color: var(--gmeiner-brown-dark);
}

.shop-notice--warning {
    border-left-color: #c4a35a;
    background: #fff8e8;
    color: #5c4a1f;
}

.auth-page__intro,
.auth-page__hint,
.auth-page__switch {
    margin: 1rem 0 0;
    color: var(--gmeiner-text);
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
}

.auth-page__intro {
    margin-bottom: 1.25rem;
}

.auth-page__hint a,
.auth-page__switch a,
.auth-page__privacy a,
.account-panel__link {
    color: var(--gmeiner-brown);
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.auth-page__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1.5rem;
}

.auth-page__privacy {
    margin-top: 1.25rem;
}

.auth-page__field-error {
    display: block;
    margin-top: 0.35rem;
    color: #8a2f2f;
    font-size: 0.875rem;
}

.checkout-choice-list--inline {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.75rem 1.5rem;
}

.checkout-choice-list--inline .checkout-choice {
    width: auto;
    flex: 0 0 auto;
}

.checkout-auth-page__intro {
    margin: 0.75rem auto 0;
    max-width: 36rem;
    text-align: center;
    color: var(--gmeiner-text);
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
}

.checkout-auth-options {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
    max-width: 28rem;
    margin: clamp(2rem, 5vw, 3.5rem) auto 0;
}

.checkout-auth-option {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.65rem;
    padding: 1.15rem 1.25rem;
    border: 0;
    background-color: var(--gmeiner-bg-sage);
    color: var(--gmeiner-text);
    text-align: center;
    text-decoration: none;
}

.checkout-auth-option--link {
    justify-content: center;
    font-size: var(--font-size-body);
    font-weight: 500;
    line-height: 1.4;
}

.checkout-auth-option--link:hover,
.checkout-auth-option--link:focus-visible {
    background-color: var(--gmeiner-bg-mint);
    color: var(--gmeiner-text);
    outline: none;
}

.checkout-auth-option__label {
    margin: 0;
    font-size: var(--font-size-body);
    font-weight: 500;
    line-height: 1.4;
    text-align: center;
}

.checkout-auth-option__input {
    width: 100%;
    padding: 0.7rem 0.85rem;
    border: 1px solid rgba(42, 42, 42, 0.18);
    background: var(--gmeiner-white);
    color: var(--gmeiner-text);
    font-family: inherit;
    font-size: var(--font-size-body);
}

.checkout-auth-option__submit {
    padding: 0.7rem 1rem;
    border: 0;
    background: var(--gmeiner-bg-mint);
    color: var(--gmeiner-text);
    font-family: inherit;
    font-size: 0.8125rem;
    letter-spacing: var(--letter-spacing-nav);
    text-transform: uppercase;
    cursor: pointer;
}

.checkout-auth-option__submit:hover,
.checkout-auth-option__submit:focus-visible {
    background-color: #bddccb;
    outline: none;
}

.checkout-auth-option__title {
    margin: 0;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font-display);
    font-size: 1.5rem;
    font-weight: 500;
}

.checkout-auth-option__text {
    margin: 0;
    flex: 1 1 auto;
    color: var(--gmeiner-text);
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
}

.account-page__subtitle {
    margin: 0.55rem 0 0;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font-display);
    font-size: clamp(1.25rem, 2.2vw, 1.65rem);
    font-weight: 500;
    line-height: 1.25;
}

.account-layout {
    display: grid;
    grid-template-columns: 14rem minmax(0, 1fr);
    gap: clamp(1.5rem, 4vw, 3rem);
    align-items: start;
}

.account-layout--single {
    grid-template-columns: minmax(0, 1fr);
}

.account-nav__list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.account-nav__item + .account-nav__item {
    margin-top: 0.35rem;
}

.account-nav__link {
    display: block;
    padding: 0.4rem 0;
    color: var(--gmeiner-text);
    text-decoration: none;
    border-bottom: 1px solid transparent;
}

.account-nav__link:hover,
.account-nav__link:focus-visible {
    color: var(--gmeiner-brown);
}

.account-nav__link.is-active {
    color: var(--gmeiner-brown);
    border-bottom-color: var(--gmeiner-brown);
}

.account-page__welcome {
    margin: 0 0 1.5rem;
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
}

.account-panel {
    margin-bottom: 1.75rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--overlay-text-12);
}

.account-panel:last-child {
    border-bottom: none;
}

.account-panel__heading-row {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.75rem;
    align-items: baseline;
    margin-bottom: 0.85rem;
}

.account-panel__title {
    margin: 0 0 0.75rem;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font-display);
    font-size: 1.35rem;
    font-weight: 500;
}

.account-panel__heading-row .account-panel__title {
    margin-bottom: 0;
}

.account-panel__text {
    margin: 0;
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
}

.account-panel__text p {
    margin: 0 0 0.2rem;
}

.account-quicklinks {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.account-order-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.account-order-list__item + .account-order-list__item {
    margin-top: 0.75rem;
}

.account-order-list__link {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.25rem 1rem;
    padding: 0.85rem 0;
    color: inherit;
    text-decoration: none;
    border-top: 1px solid var(--overlay-text-12);
}

.account-order-list__item:first-child .account-order-list__link {
    border-top: none;
    padding-top: 0;
}

.account-order-list__number {
    grid-column: 1;
    color: var(--gmeiner-brown);
    font-weight: 500;
}

.account-order-list__meta {
    grid-column: 1;
    color: var(--gmeiner-text);
    font-size: 0.95rem;
}

.account-order-list__total {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: center;
    font-weight: 500;
}

.account-order-detail__meta {
    margin: 0 0 1.25rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
    color: var(--gmeiner-text);
    font-size: var(--font-size-body);
}

.account-order-status {
    display: inline-block;
    padding: 0.2rem 0.55rem;
    border-left: 3px solid var(--gmeiner-gold);
    background: var(--gmeiner-bg-bestseller);
    color: var(--gmeiner-brown-dark);
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    line-height: 1.3;
}

.account-order-status--processing {
    border-left-color: var(--gmeiner-gold);
    background: var(--gmeiner-bg-bestseller);
}

.account-order-status--shipped {
    border-left-color: #5a7a62;
    background: var(--gmeiner-bg-sage);
}

.account-order-detail__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
    margin-bottom: 1.75rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--overlay-text-12);
}

.account-order-detail__grid--triple {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.account-order-detail__grid > .account-panel {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
}

.account-order-meta-list {
    margin: 0;
}

.account-order-meta-list__row {
    display: grid;
    grid-template-columns: 4.5rem minmax(0, 1fr);
    gap: 0.5rem;
    margin: 0.35rem 0;
    align-items: baseline;
}

.account-order-meta-list__row dt {
    margin: 0;
    color: var(--gmeiner-text-muted);
    font-weight: 400;
}

.account-order-meta-list__row dd {
    margin: 0;
}

.account-order-items {
    margin: 0;
    padding: 0;
    list-style: none;
}

.account-order-items__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 4.5rem 5.5rem;
    align-items: baseline;
    gap: 0.35rem 1rem;
    padding: 0.75rem 0;
    border-bottom: 1px solid var(--overlay-text-12);
}

.account-order-items__row--head {
    padding-top: 0;
    padding-bottom: 0.45rem;
    border-bottom-color: var(--overlay-text-20, rgba(0, 0, 0, 0.18));
    color: var(--gmeiner-text-muted, #6b645c);
    font-size: 0.8125rem;
    font-weight: 500;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.account-order-items__row--head .account-order-items__qty,
.account-order-items__row--head .account-order-items__price {
    color: inherit;
    font-weight: inherit;
}

.account-order-items__product {
    min-width: 0;
}

.account-order-items__name {
    display: block;
    color: var(--gmeiner-brown);
    font-weight: 500;
    line-height: 1.35;
}

.account-order-items__subtitle {
    display: block;
    margin: 0.2rem 0 0;
    color: var(--gmeiner-text-muted, #6b645c);
    font-size: 0.8125rem;
    font-style: italic;
    font-weight: 400;
}

.account-order-items__qty {
    color: var(--gmeiner-text);
    font-variant-numeric: tabular-nums;
    text-align: right;
    white-space: nowrap;
}

.account-order-items__price {
    font-weight: 500;
    font-variant-numeric: tabular-nums;
    text-align: right;
    white-space: nowrap;
}

@media (max-width: 575.98px) {
    .account-order-items__row {
        grid-template-columns: minmax(0, 1fr) 3.25rem 4.75rem;
        gap: 0.25rem 0.75rem;
    }

    .account-order-items__row--head {
        font-size: 0.75rem;
    }
}

.account-order-totals {
    margin: 1rem 0 0;
}

.account-order-totals__row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin: 0.35rem 0;
}

.account-order-totals__row--total {
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--overlay-text-12);
    font-weight: 600;
}

.account-address-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
    margin-bottom: 1.5rem;
}

.account-address-card {
    padding: 1.25rem;
    border: 1px solid var(--overlay-text-12);
}

.account-address-card__title {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin: 0 0 0.75rem;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font-display);
    font-size: 1.25rem;
    font-weight: 500;
}

.account-address-card__badge {
    font-family: var(--gmeiner-font-body);
    font-size: 0.75rem;
    font-weight: 400;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--gmeiner-text);
}

.account-address-card__body p {
    margin: 0 0 0.2rem;
}

.account-address-card__actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.85rem;
}

.account-address-card__action-form {
    display: inline;
    margin: 0;
}

.account-address-card__action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--gmeiner-brown);
    opacity: 0.7;
    cursor: pointer;
    text-decoration: none;
    transition: opacity 0.15s ease, color 0.15s ease;
}

.account-address-card__action:hover,
.account-address-card__action:focus-visible {
    opacity: 1;
    color: var(--gmeiner-brown);
    outline: none;
}

.account-address-card__action:focus-visible {
    outline: 2px solid var(--gmeiner-brown);
    outline-offset: 2px;
}

.account-empty {
    text-align: center;
    padding: 2rem 0;
}

.account-empty p {
    margin: 0 0 1rem;
}

.wishlist-page__grid {
    margin-top: 0.5rem;
}

.wishlist-page {
    padding-bottom: var(--page-pad-bottom);
}

.wishlist-page__intro {
    margin: 0.75rem auto 0;
    max-width: 40rem;
    text-align: center;
    color: var(--gmeiner-text);
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
}

.wishlist-page__intro a {
    color: var(--gmeiner-brown);
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.wishlist-page .product-card__action {
    opacity: 1;
}

.order-review-account-upsell {
    margin-top: clamp(2rem, 4vw, 3rem);
    padding: 1.5rem;
    border: 1px solid var(--overlay-text-12);
    text-align: center;
}

.order-review-account-upsell__title {
    margin: 0 0 0.5rem;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font-display);
    font-size: 1.5rem;
    font-weight: 500;
}

.order-review-account-upsell__text {
    margin: 0 0 1rem;
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
}

@media (max-width: 991.98px) {
    .account-layout {
        grid-template-columns: 1fr;
    }

    .account-nav {
        padding-bottom: 1rem;
        border-bottom: 1px solid var(--overlay-text-12);
    }

    .account-nav__list {
        display: flex;
        flex-wrap: wrap;
        gap: 0.5rem 1.25rem;
    }

    .account-nav__item + .account-nav__item {
        margin-top: 0;
    }

    .account-order-detail__grid,
    .account-order-detail__grid--triple,
    .account-address-list {
        grid-template-columns: 1fr;
    }
}

/* =============================================================================
   Gutschein-Kaufseiten – Shell = Produktdetail; nur Zusatzregeln hier
   ============================================================================= */

.gutschein-page__form {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.gutschein-page__motif-row {
    grid-template-columns: 1.25rem 3rem minmax(0, 1fr);
}

.gutschein-page__motif-thumb {
    display: block;
    width: 3rem;
    height: 3rem;
    object-fit: cover;
    background-color: var(--gmeiner-bg-sage);
}

.gutschein-page__types .product-detail__variant-row {
    grid-template-columns: 1.25rem minmax(0, 1fr);
}

.gutschein-page__motifs,
.gutschein-page__amounts,
.gutschein-page__delivery,
.gutschein-page__types {
    margin-bottom: 0;
}

.gutschein-page__motifs[hidden],
.gutschein-page__delivery[hidden] {
    display: none;
}

.gutschein-page__cross {
    margin-top: 0.75rem;
}

.gutschein-page__cross a {
    color: var(--gmeiner-brown);
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.gutschein-page__error {
    margin: 0 0 1rem;
    color: #8a1f1f;
    font-family: var(--gmeiner-font);
    font-size: 0.875rem;
}

/* -------------------------------------------------------------------------
   Macaron-Konfigurator
   ------------------------------------------------------------------------- */
.macaron-page__nutrition {
    margin: 0 0 1.5rem;
    font-family: var(--gmeiner-font);
    font-size: 0.9375rem;
}

.macaron-page__nutrition a {
    color: var(--gmeiner-brown);
    text-decoration: underline;
    text-underline-offset: 0.15em;
    font-weight: 600;
}

.macaron-page__section-title {
    margin: 0 0 0.5rem;
    font-family: var(--gmeiner-font);
    font-size: 1rem;
    font-weight: 600;
    color: var(--gmeiner-brown);
}

.macaron-page__selection {
    margin-bottom: 1.75rem;
}

.macaron-page__selection-hint {
    margin: 0 0 0.75rem;
    font-family: var(--gmeiner-font);
    font-size: 0.875rem;
    color: var(--gmeiner-text-muted, #6b6560);
}

.macaron-page__box {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.75rem 0.5rem;
    padding: 1.1rem 0.9rem 0.85rem;
    border: 1px solid var(--macaron-box-border, #c4b49a);
    background-color: var(--macaron-box-bg, #f3e8d4);
    border-radius: 2px;
}

.macaron-page__slot {
    position: relative;
    text-align: center;
}

.macaron-page__slot-media {
    width: 100%;
    max-width: 5rem;
    margin: 0 auto;
}

.macaron-page__slot-image {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1;
    object-fit: contain;
    filter: drop-shadow(2px 2px 4px rgba(0, 0, 0, 0.1));
}

.macaron-page__slot-name {
    display: block;
    margin-top: 0.35rem;
    font-family: var(--gmeiner-font);
    font-size: 0.75rem;
    line-height: 1.2;
    color: var(--gmeiner-brown);
    min-height: 1.8em;
}

/* Wie 2025 .macaron-delete + FA-Stack (hellgrüner Kreis, weißes X) */
.macaron-page__slot-remove {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    line-height: 0;
}

.macaron-page__slot-remove svg {
    display: block;
    width: 1.75rem;
    height: 1.75rem;
}

.macaron-page__slot-remove:hover svg circle,
.macaron-page__slot-remove:focus-visible svg circle {
    fill: #cfd9c4;
}

.macaron-page__slot-remove:focus-visible {
    outline: 2px solid var(--gmeiner-brown);
    outline-offset: 2px;
    border-radius: 50%;
}

.macaron-page__flavors {
    margin-bottom: 1.75rem;
}

.macaron-page__flavor-grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem 0.5rem;
}

@media (min-width: 768px) {
    .macaron-page__flavor-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .macaron-page[data-slots="12"] .macaron-page__box,
    .macaron-page[data-slots="16"] .macaron-page__box {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }
}

.macaron-page__flavor-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    width: 100%;
    padding: 0.25rem;
    border: 0;
    background: transparent;
    cursor: pointer;
    font: inherit;
    color: inherit;
}

.macaron-page__flavor-btn:hover img,
.macaron-page__flavor-btn:focus-visible img {
    transform: scale(1.04);
}

.macaron-page__flavor-btn img {
    width: 100%;
    max-width: 5.5rem;
    height: auto;
    aspect-ratio: 1;
    object-fit: contain;
    transition: transform 0.15s ease;
}

.macaron-page__flavor-name {
    font-family: var(--gmeiner-font);
    font-size: 0.75rem;
    line-height: 1.25;
    text-align: center;
    color: var(--gmeiner-brown);
}

.macaron-page__error {
    margin: 0.75rem 0 0;
    color: #8a1f1f;
    font-family: var(--gmeiner-font);
    font-size: 0.875rem;
}

.macaron-page__back {
    margin: 1.5rem 0 0;
    font-family: var(--gmeiner-font);
    font-size: 0.9375rem;
}

.macaron-page__back a {
    color: var(--gmeiner-brown);
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.macaron-page__media-empty {
    width: 100%;
    aspect-ratio: 1;
    background: var(--gmeiner-bg-sage, #e8ebe3);
}

.macaron-page .product-detail__cart-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

/* -------------------------------------------------------------------------
   Schatzkiste / Sonderangebot-Konfigurator
   ------------------------------------------------------------------------- */
.schatzkiste-page__section-title {
    margin: 0 0 0.5rem;
    font-family: var(--gmeiner-font);
    font-size: 1rem;
    font-weight: 600;
    color: var(--gmeiner-brown);
}

.schatzkiste-page__selection {
    margin-bottom: 1.75rem;
}

.schatzkiste-page__selection-hint {
    margin: 0 0 0.75rem;
    font-family: var(--gmeiner-font);
    font-size: 0.875rem;
    color: var(--gmeiner-text-muted, #6b6560);
}

.schatzkiste-page__box {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.75rem 0.5rem;
    padding: 1rem 0.75rem;
    border: 3px double #e1e9da;
    background-color: #f7f9f4;
}

.schatzkiste-page[data-slots="3"] .schatzkiste-page__box {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    max-width: 22rem;
}

.schatzkiste-page[data-slots="10"] .schatzkiste-page__box {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.schatzkiste-page__slot {
    text-align: center;
}

.schatzkiste-page__slot-media {
    width: 100%;
    max-width: 4.5rem;
    margin: 0 auto;
}

.schatzkiste-page__slot-image {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1;
    object-fit: contain;
    filter: drop-shadow(2px 2px 4px rgba(0, 0, 0, 0.1));
}

.schatzkiste-page__slot-remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 0.5rem;
    width: 1.75rem;
    height: 1.75rem;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    line-height: 0;
}

.schatzkiste-page__slot-remove svg {
    display: block;
    width: 1.75rem;
    height: 1.75rem;
}

.schatzkiste-page__slot-remove:hover svg circle,
.schatzkiste-page__slot-remove:focus-visible svg circle {
    fill: #cfd9c4;
}

.schatzkiste-page__slot-remove:focus-visible {
    outline: 2px solid var(--gmeiner-brown);
    outline-offset: 2px;
    border-radius: 50%;
}

.schatzkiste-page__error {
    margin: 0.75rem 0 0;
    color: #8a1f1f;
    font-family: var(--gmeiner-font);
    font-size: 0.875rem;
}

.schatzkiste-page__back {
    margin: 1.5rem 0 0;
    font-family: var(--gmeiner-font);
    font-size: 0.9375rem;
}

.schatzkiste-page__back a {
    color: var(--gmeiner-brown);
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.schatzkiste-page__media-empty {
    width: 100%;
    aspect-ratio: 1;
    background: var(--gmeiner-bg-sage, #e8ebe3);
}

.schatzkiste-page .product-detail__cart-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.schatzkiste-feedback {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 10050;
    display: flex;
    justify-content: center;
    padding: 1.75rem 1rem 2rem;
    background: rgba(0, 0, 0, 0.88);
    color: #fff;
    cursor: pointer;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35);
    animation: schatzkiste-feedback-in 0.45s ease-out;
}

.schatzkiste-feedback[hidden] {
    display: none !important;
    animation: none;
}

@keyframes schatzkiste-feedback-in {
    from {
        opacity: 0;
        transform: translateY(-100%);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.schatzkiste-feedback__inner {
    width: min(1100px, 100%);
    text-align: center;
}

.schatzkiste-feedback__slots {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.75rem 1rem;
    list-style: none;
    margin: 0 0 1.25rem;
    padding: 0;
}

.schatzkiste-feedback__slot {
    position: relative;
    width: clamp(88px, 15vw, 140px);
    aspect-ratio: 1;
    margin: 0;
    border-radius: 2px;
    overflow: visible;
    background: #fff;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
}

/* 10er: 2×5, gleiche Slot-Größe wie grosse Schatzkiste */
.schatzkiste-feedback[data-slots="10"] .schatzkiste-feedback__slots {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    justify-content: center;
    gap: 0.75rem 1rem;
    width: min(820px, 100%);
    margin-left: auto;
    margin-right: auto;
}

.schatzkiste-feedback[data-slots="10"] .schatzkiste-feedback__slot {
    width: 100%;
    max-width: 140px;
    justify-self: center;
}

.schatzkiste-feedback[data-slots="3"] .schatzkiste-feedback__slot {
    width: clamp(100px, 18vw, 160px);
}

.schatzkiste-feedback__slot img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    background: #fff;
}

/* Leere Slots: Placeholder mit Innenabstand (Padding am Bild, nicht am Slot) */
.schatzkiste-feedback__slot:not(.is-filled) img {
    box-sizing: border-box;
    padding: 14%;
    background: #fff;
}

.schatzkiste-feedback__remove {
    position: absolute;
    top: -0.35rem;
    right: -0.35rem;
    z-index: 2;
    width: 1.65rem;
    height: 1.65rem;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #e1e9da;
    color: #fff;
    font-size: 1.15rem;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
}

.schatzkiste-feedback__remove:hover,
.schatzkiste-feedback__remove:focus-visible {
    background: #cfd9c4;
    outline: none;
}

.schatzkiste-feedback__message {
    margin: 0;
    font-family: var(--gmeiner-font);
    font-size: clamp(1.05rem, 2.2vw, 1.35rem);
    line-height: 1.45;
    font-weight: 400;
}

.schatzkiste-feedback__message strong {
    display: block;
    margin-top: 0.35rem;
    font-size: clamp(1.35rem, 3vw, 1.85rem);
    font-weight: 700;
    letter-spacing: 0.01em;
}

.schatzkiste-feedback__hint {
    margin: 0.85rem 0 0;
    font-size: 0.9rem;
    opacity: 0.75;
}

.schatzkiste-page__catalog {
    margin-top: 3rem;
    padding-top: 2rem;
    border-top: 1px solid rgba(117, 50, 24, 0.12);
}

.schatzkiste-page__group {
    margin-bottom: 2.5rem;
}

.schatzkiste-page__group-title {
    margin: 0 0 1.25rem;
    font-family: var(--gmeiner-font);
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--gmeiner-brown);
    text-align: center;
}

.schatzkiste-page__tafel-grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--section-card-gap);
}

@media (max-width: 991.98px) {
    .schatzkiste-page__tafel-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.schatzkiste-page__tafel-btn {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
    width: 100%;
    min-width: 0;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    font: inherit;
    color: inherit;
    text-align: left;
}

.schatzkiste-page__tafel-btn:focus-visible {
    outline: 2px solid var(--gmeiner-brown);
    outline-offset: 3px;
}

.schatzkiste-page__tafel-btn img {
    display: block;
    width: 100%;
    max-width: none;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    background-color: var(--overlay-black-04);
    transition: transform var(--transition-media);
}

.schatzkiste-page__tafel-btn:hover img,
.schatzkiste-page__tafel-btn:focus-visible img {
    transform: scale(1.03);
}

.schatzkiste-page__tafel-name {
    margin: 0;
    font-family: var(--gmeiner-font);
    font-size: 0.9375rem;
    font-weight: 700;
    line-height: 1.35;
    text-align: left;
    color: var(--gmeiner-text);
}

/* -------------------------------------------------------------------------
   Produktsuche (/shop/suche)
   ------------------------------------------------------------------------- */
.search-results__form {
    max-width: 40rem;
    margin: 0 auto 1.75rem;
}

.search-results__field {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: stretch;
}

.search-results__input {
    flex: 1 1 12rem;
    min-width: 0;
    margin: 0;
    padding: 0.85rem 1rem;
    border: 1px solid rgba(117, 50, 24, 0.22);
    border-radius: 0;
    background: #fff;
    color: var(--gmeiner-text);
    font-family: var(--gmeiner-font);
    font-size: 1rem;
    line-height: 1.4;
}

.search-results__input:focus {
    outline: 2px solid var(--gmeiner-brown);
    outline-offset: 2px;
}

.search-results__submit {
    flex: 0 0 auto;
    min-width: 7.5rem;
}

.search-results__meta {
    margin: 0 0 2rem;
    text-align: center;
    font-family: var(--gmeiner-font);
    font-size: 1rem;
    line-height: 1.5;
    color: var(--gmeiner-text);
}

.search-results__meta strong {
    font-weight: 700;
    color: var(--gmeiner-brown);
}

/* --- Reseller / B2B-Portal --- */
main.retailer-portal {
    overflow: visible;
}

/* Retailer-Header: ohne B2C-Utilities, Logo zentriert */
.site-header--retailer .site-header__top-inner {
    grid-template-columns: 1fr auto 1fr;
}

@media (max-width: 991.98px) {
    .site-header--retailer .site-header__mobile-left {
        min-width: 2.75rem;
    }
}

/* Retailer-Header: Nav linksbündig, RETAILSHOP-Dropdown bündig unter dem Menüpunkt */
@media (min-width: 992px) {
    .site-header--retailer-nav .site-header__nav--desktop .site-header__nav-list {
        justify-content: flex-start;
        gap: 0.5rem 2rem;
    }

    .site-header--retailer-nav .site-header__nav--desktop .site-header__nav-item--retailer-shop.has-children > .site-header__subnav {
        left: 0;
        right: auto;
        transform: translate3d(0, 0.35rem, 0);
        column-count: 2;
        column-gap: 1.5rem;
        min-width: min(36rem, 92vw);
        max-height: 70vh;
        overflow-x: hidden;
        overflow-y: auto;
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .site-header--retailer-nav .site-header__nav--desktop .site-header__nav-item--retailer-shop.has-children.is-dropdown-open > .site-header__subnav {
        transform: translate3d(0, 0, 0);
    }

    .site-header--retailer-nav .site-header__nav--desktop .site-header__nav-item--retailer-shop > .site-header__subnav > .site-header__subnav-item {
        break-inside: avoid;
    }
}

.retailer-portal .reseller_order_content {
    overflow: visible;
    padding-top: 1.5rem;
}

/* Kategorie-Anker: Headline nicht unter fixiertem Header */
body.retailer-portal-layout {
    scroll-padding-top: calc(var(--site-header-offset, 12rem) + 0.75rem);
}

.retailer-portal h3[id^="category-"] {
    scroll-margin-top: calc(var(--site-header-offset, 12rem) + 0.75rem);
}

/* Bestellseite: Badges außen, Überschrift mittig (wie 2025) */
.retailer-portal .retailer-order-hero {
    position: relative;
    width: 100%;
    min-height: clamp(8rem, 18vw, 12.5rem);
    margin-bottom: 0.5rem;
}

.retailer-portal .retailer-order-hero__badge {
    position: absolute;
    top: 0;
    z-index: 2;
    line-height: 0;
    pointer-events: auto;
}

.retailer-portal .retailer-order-hero__badge--promo {
    left: 0;
}

.retailer-portal .retailer-order-hero__badge--catalog {
    right: 0;
}

.retailer-portal .retailer-order-hero__badge img {
    display: block;
    width: 200px;
    max-width: 28vw;
    height: auto;
    filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.1));
}

.retailer-portal .retailer-order-hero__badge--promo img {
    transform: rotate(-10deg);
}

.retailer-portal .retailer-order-hero__badge--catalog img {
    transform: rotate(10deg);
}

.retailer-portal .retailer-order-hero > .content_headline {
    position: relative;
    z-index: 0;
    width: 100%;
    margin: 0 auto 1.75rem;
    padding: clamp(1.25rem, 3vw, 2.5rem) clamp(6.5rem, 16vw, 11rem) 0;
    text-align: center;
    pointer-events: none;
}

.retailer-portal .retailer-order-hero--no-promo > .content_headline {
    padding-left: clamp(1.25rem, 3vw, 2.5rem);
}

@media (max-width: 767.98px) {
    .retailer-portal .retailer-order-hero__badge img {
        width: clamp(5.5rem, 22vw, 7.5rem);
    }

    .retailer-portal .retailer-order-hero > .content_headline {
        padding-left: clamp(5.5rem, 22vw, 7.5rem);
        padding-right: clamp(5.5rem, 22vw, 7.5rem);
    }

    .retailer-portal .retailer-order-hero--no-promo > .content_headline {
        padding-left: clamp(1.25rem, 3vw, 2.5rem);
    }
}

.retailer-portal .reseller_order_content h3 {
    font-family: var(--gmeiner-font-condensed, "Barlow Condensed", var(--gmeiner-font));
    color: var(--gmeiner-brown-dark, #753218);
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: clamp(1.25rem, 2.5vw, 1.75rem);
    margin-top: 2rem;
    margin-bottom: 0.75rem;
}

.retailer-portal .reseller_products_tabele {
    margin-bottom: 0.5rem;
}

.retailer-portal .reseller_products_tabele > tbody > tr:first-child,
.retailer-portal .reseller_products_tabele > tr:first-child {
    background-color: #e1e9da !important;
    font-weight: bold;
}

.retailer-portal .reseller_products_tabele > tbody > tr:first-child > th,
.retailer-portal .reseller_products_tabele > tr:first-child > th {
    background-color: #e1e9da !important;
    color: #753218 !important;
    border-color: rgba(117, 50, 24, 0.12);
    vertical-align: middle;
}

.retailer-portal .login-page.retailer-auth {
    padding: 2.5rem 0 4rem;
}

.retailer-portal h1.content_headline {
    margin: 0 0 2rem;
    color: var(--gmeiner-brown);
    font-family: var(--gmeiner-font-display);
    font-size: var(--font-size-page-title);
    font-weight: 500;
    line-height: 1.15;
    text-align: center;
    text-transform: none;
    letter-spacing: normal;
}

.retailer-portal .login-page h3 {
    margin-bottom: 1.25rem;
    text-transform: uppercase;
    color: #222;
    font-weight: 700;
    font-family: var(--gmeiner-font);
    font-size: 1.1rem;
    letter-spacing: 0.03em;
}

.retailer-portal .login-page .theme-card {
    padding: 1.875rem;
    border: none;
    background-color: #f8f8f8;
    box-shadow: 0 0 2px 2px #f1f1f1;
    line-height: 1.5;
    min-height: 100%;
}

.retailer-portal .login-page .authentication-right {
    display: flex;
    flex-direction: column;
}

.retailer-portal .login-page .authentication-right .btn-solid {
    margin-top: auto;
    align-self: flex-start;
}

.retailer-portal .login-page .theme-card .theme-form label {
    text-transform: uppercase;
    color: #333;
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    margin-bottom: 0.5rem;
}

.retailer-portal .login-page .theme-card .theme-form input.form-control {
    border: 1px solid #eaeaea;
    font-size: 1rem;
    padding: 0.85rem 1.25rem;
    margin-bottom: 1.25rem;
    height: auto;
    border-radius: 0;
    background-color: #fff;
}

.retailer-portal .login-page .theme-card .theme-form input.form-control:focus {
    border-color: #9ab384;
    box-shadow: 0 0 0 0.15rem rgba(154, 179, 132, 0.25);
}

.retailer-portal .login-page .authentication-left p,
.retailer-portal .login-page .authentication-right p {
    font-size: 0.875rem;
    color: #555;
    line-height: 1.9;
    margin-bottom: 1rem;
}

.retailer-portal .login-page .authentication-right h6.title-font {
    text-transform: uppercase;
    color: #333;
    font-weight: 600;
    margin-bottom: 1rem;
    font-size: 0.95rem;
    letter-spacing: 0.03em;
}

.retailer-portal .btn-solid {
    display: inline-block;
    font-family: var(--gmeiner-font-condensed, "Barlow Condensed", var(--gmeiner-font));
    padding: 0.8rem 1.75rem;
    color: #753218;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    text-decoration: none;
    border: 2px solid #e1e9da;
    background-color: #e1e9da;
    background-image: linear-gradient(30deg, #e1e9da 50%, transparent 50%);
    background-size: 850px;
    background-repeat: no-repeat;
    background-position: 0;
    transition: background 300ms ease-in-out, color 300ms ease-in-out;
    cursor: pointer;
}

.retailer-portal .btn-solid:hover,
.retailer-portal .btn-solid:focus {
    background-position: 100%;
    color: #000;
    background-color: #fff;
    text-decoration: none;
}

.retailer-portal button.btn-solid {
    font-size: inherit;
    line-height: inherit;
}

.retailer-portal .login-page .theme-form .retailer-captcha {
    display: flex;
    align-items: flex-end;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.retailer-portal .login-page .theme-form .retailer-captcha img {
    display: block;
    height: calc(1.5em + 1.7rem + 2px);
    width: calc((1.5em + 1.7rem + 2px) * 3.5);
    flex: 0 0 auto;
    object-fit: fill;
    cursor: pointer;
    background: #fff;
    border: 1px solid #eaeaea;
}

.retailer-portal .login-page .theme-form .retailer-captcha .form-group {
    flex: 1;
    margin-bottom: 0;
}

.retailer-portal .login-page .theme-form .retailer-captcha input.form-control {
    margin-bottom: 0;
}

.retailer-overview-footer {
    margin-top: 2.5rem;
}

.retailer-overview-legal {
    margin: 0 0 1.75rem;
    text-align: center;
}

.retailer-overview-legal a {
    text-decoration: underline;
}

.retailer-overview-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 1.5rem 2.5rem;
}

.retailer-portal .errorText {
    color: #c61515;
    font-weight: 700;
    text-align: center;
    margin-bottom: 1rem;
}

.retailer-portal .retailer-form-alert {
    background-color: #f8d7da;
    border: 1px solid #f1aeb5;
    color: #842029;
    font-weight: 700;
    text-align: center;
    padding: 0.95rem 1.25rem;
    margin: 0 0 1.5rem;
    border-radius: 0;
}

.retailer-portal .login-page .theme-form .retailer-captcha--error img,
.retailer-portal .login-page .theme-form .retailer-captcha--error input.form-control {
    border-color: #dc3545;
}

.retailer-portal .login-page .theme-form .retailer-captcha--error input.form-control:focus {
    border-color: #dc3545;
    box-shadow: 0 0 0 0.15rem rgba(220, 53, 69, 0.25);
}

.retailer-portal .success-text {
    color: #753218;
    max-width: 42rem;
    margin: 0 auto;
}

.retailer-portal .success-text h3 {
    text-transform: uppercase;
    margin-bottom: 1rem;
}

.retailer-portal .retailer-success-card {
    max-width: 40rem;
    margin: 0 auto;
    padding: 2.75rem 2rem 2.5rem;
    text-align: center;
}

.retailer-portal .retailer-success-card .content_headline {
    margin-bottom: 1.5rem;
}

.retailer-portal .retailer-success-card p {
    color: #555;
    font-size: 1rem;
    line-height: 1.8;
    margin-bottom: 1rem;
}

.retailer-portal .retailer-success-card a:not(.btn) {
    color: var(--gmeiner-brown, #753218);
    text-decoration: underline;
}

.retailer-portal .retailer-success-card .btn-solid {
    margin-top: 1.25rem;
}

@media (min-width: 992px) {
    .retailer-portal .retailer-auth__columns {
        align-items: stretch;
    }

    .retailer-portal .right-login {
        display: flex;
        flex-direction: column;
    }
}

.retailer-header-bar {
    width: 100%;
    text-align: center;
    padding: 0.35rem 1rem;
    background: var(--gmeiner-green-light, #e1e9da);
    border-bottom: 1px solid rgba(110, 41, 17, 0.12);
}

.retailer-header-bar__link {
    font-family: var(--gmeiner-font);
    font-weight: 700;
    letter-spacing: 0.04em;
    color: var(--gmeiner-brown, #6e2911);
    text-decoration: none;
}

.retailer-header-bar__link:hover {
    color: var(--gmeiner-brown-dark, #753218);
    text-decoration: underline;
}

.reseller-nav-container {
    display: flex;
    width: 100%;
    flex-wrap: nowrap;
    overflow-x: auto;
    margin-bottom: 1.5rem;
}

.reseller-nav-with-search .reseller-nav-container {
    margin-bottom: 0;
}

.reseller-nav-tab {
    flex: 1 1 auto;
    min-width: 10rem;
    border: none;
    margin-right: 1px;
    border-radius: 8px 8px 0 0;
    padding: 12px 20px;
    font-weight: normal;
    text-decoration: none;
    text-align: center;
    white-space: nowrap;
    font-family: var(--gmeiner-font);
}

.reseller-nav-tab.active {
    background-color: var(--gmeiner-green, #9ab384);
    color: #fff;
    font-weight: bold;
}

.reseller-nav-tab.inactive {
    background-color: var(--gmeiner-green-light, #e1e9da);
    color: var(--gmeiner-brown-dark, #753218);
}

.reseller-nav-tab:hover {
    text-decoration: none;
    background-color: var(--gmeiner-green, #9ab384);
    color: #fff;
    font-weight: bold;
}

.retailer-order .order_table th,
.retailer-order table.order_table th {
    color: inherit;
}

.overview_details_box {
    border: 1px solid rgba(0, 0, 0, 0.12);
    padding: 1rem;
    margin-bottom: 1rem;
    border-radius: 6px;
}

.overview_details_box_headline {
    font-weight: 700;
    margin-bottom: 0.5rem;
    text-transform: uppercase;
    font-size: 0.85rem;
}

.ds_warning {
    color: #b42318;
}

.reseller-filter-hidden {
    display: none !important;
}

/* Reseller-Suchleiste (nach Klick auf Lupen-Tab) – direkt unter Nav, kompakt */
.reseller-nav-with-search {
    margin-bottom: 0;
}

.reseller-search-bar {
    margin-top: 0;
    margin-bottom: 1rem;
    padding: 1rem;
    background: linear-gradient(135deg, #e8f0e4 0%, #e1e9da 100%);
    border: 1px solid rgba(117, 50, 24, 0.15);
    border-radius: 0 0 8px 8px;
    box-shadow: 0 2px 6px rgba(117, 50, 24, 0.06);
    transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.reseller-search-bar--no-results {
    background: linear-gradient(135deg, #f8d7da 0%, #f1b0b7 100%);
    border-color: rgba(114, 28, 36, 0.25);
    box-shadow: 0 2px 6px rgba(114, 28, 36, 0.1);
}

.reseller-search-bar--no-results .reseller-search-result-count {
    color: #721c24;
}

.reseller-search-bar-inner {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    width: 100%;
    flex-wrap: nowrap;
}

.reseller-search-bar-inner .form-control {
    flex: 1;
    min-width: 0;
    border-color: rgba(117, 50, 24, 0.25);
    border-radius: 4px;
    padding: 0.8rem;
    font-size: 1rem;
}

.reseller-search-bar__input-wrap {
    flex: 1;
    min-width: 0;
}

.reseller-search-bar__input-wrap .form-control {
    width: 100%;
}

.reseller-search-result-count {
    margin: 0.75rem 0 0.65rem;
    padding: 0.15rem 0 0.25rem;
    padding-left: 0.15rem;
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.4;
    color: #753218;
}

.reseller-search-bar-inner .form-control:focus {
    border-color: #9ab384;
    box-shadow: 0 0 0 0.2rem rgba(154, 179, 132, 0.25);
}

.reseller-search-bar-inner .btn-outline-secondary {
    border-color: rgba(117, 50, 24, 0.3);
    color: #753218;
    border-radius: 4px;
    flex-shrink: 0;
    padding: 1rem;
    font-size: 1rem;
    height: auto;
    line-height: 1;
    text-transform: uppercase;
    font-weight: bold;
    align-self: flex-start;
}

.reseller-search-bar-inner .btn-outline-secondary:hover {
    background-color: #e1e9da;
    border-color: #9ab384;
    color: #753218;
}

.reseller-nav-tab.reseller-search-tab {
    flex: 0 0 auto;
    padding: 12px 16px;
    min-width: 48px;
}

.reseller-nav-tab.reseller-search-tab.active {
    background-color: var(--gmeiner-green, #9ab384);
    color: #fff;
    font-weight: bold;
}

.retailer-portal .reseller_products_tabele img.retailer-order__thumb {
    display: block;
    width: 80px;
    height: 80px;
    max-width: 80px;
    max-height: 80px;
    margin: 0 auto;
    object-fit: contain;
}

.retailer-portal .reseller_products_tabele td:has(.retailer-order__thumb) {
    width: 90px;
    padding: 0.35rem;
    vertical-align: middle;
}

.retailer-portal .reseller_products_tabele img[src*="badge_"] {
    display: inline-block;
    width: 60px;
    height: 60px;
    max-width: none;
    margin-left: 0.35rem;
    vertical-align: middle;
    object-fit: contain;
}

/* Retailer-Modals */
.retailer-product-modal__image {
    max-height: 350px;
    width: auto;
    object-fit: contain;
}

.retailer-product-modal__downloads {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-top: 1.25rem;
}

.retailer-product-modal__download {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--gmeiner-brown);
    font-weight: 500;
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.retailer-product-modal__download:hover,
.retailer-product-modal__download:focus-visible {
    color: var(--gmeiner-brown-dark);
}

.retailer-notice-modal__logo {
    height: 4.5rem;
    width: auto;
}

.retailer-notice-modal__body-inner {
    padding: 0.75rem 0;
    border-top: 2px solid var(--gmeiner-brown);
    border-bottom: 2px solid var(--gmeiner-brown);
}

.retailer-notice-modal__title {
    margin: 0 0 0.5rem;
    font-size: 1.1rem;
    font-weight: 600;
    text-transform: none;
    color: var(--gmeiner-brown);
}

.retailer-ve-notice-modal .retailer-notice-modal__body-inner {
    padding: 1.5rem 0;
}

.retailer-ve-notice-modal .retailer-notice-modal__title {
    margin: 0 0 1.25rem;
    font-size: 1.15rem;
    color: #111;
}

.retailer-ve-notice-modal .retailer-notice-modal__body-inner p {
    font-size: 0.95rem;
    line-height: 1.6;
    margin-bottom: 1rem;
    hyphens: none;
    -webkit-hyphens: none;
    text-wrap: pretty;
}

.retailer-promo-modal .modal-dialog {
    max-width: min(960px, 96vw);
    margin: 1rem auto;
}

.retailer-promo-modal__content {
    position: relative;
    border: 0;
    background: transparent;
    box-shadow: none;
    overflow: visible;
}

.retailer-promo-modal__body {
    padding: 0;
    text-align: center;
    line-height: 0;
    background-color: #fff;
    border-radius: 3px;
}

.retailer-promo-modal__close {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    z-index: 2;
    margin: 0;
    padding: 0.65rem;
    border-radius: 50%;
    background-color: rgba(0, 0, 0, 0.55);
    opacity: 1;
}

.retailer-promo-modal__close:hover,
.retailer-promo-modal__close:focus {
    background-color: rgba(0, 0, 0, 0.75);
    opacity: 1;
}

.retailer-promo-modal__image {
    display: block;
    width: 100%;
    height: auto;
    max-height: 90vh;
    object-fit: contain;
    border: 4px solid #fff;
    border-radius: 3px;
}

