/* =========================================================================
   Parfum Garage — Haupt-Stylesheet (v0.2)
   Schwarzes Boutique-Luxus-Design · Noir + Champagner-Gold · mobile-first · responsive
   ========================================================================= */

/* -------- Globaler Fokus-/Tap-Reset --------------------------------------
   Entfernt beim Klicken/Tippen JEDEN sichtbaren Fokusrahmen. Das lila 2px-
   Rechteck stammt aus dem Storefront-Elternthema:
     `a:focus, input:focus, textarea:focus, button:focus { outline:#7f54b3 solid 2px }`
   Diese Selektoren haben höhere Spezifität als ein einfaches `:focus`, daher
   muss der Reset mit `!important` erzwungen werden — sonst gewinnt Storefront.
   Zusätzlich der graue Tap-Highlight-Flash auf mobilen Browsern.
   Tastatur-Fokus (`:focus-visible`) bleibt als dezenter Gold-Ring erhalten;
   der erscheint NUR bei Tab-Navigation, nie beim Klicken/Tippen. */
*,
*::before,
*::after {
  -webkit-tap-highlight-color: transparent;
}
*:focus,
*:focus-within {
  outline: none !important;
}
*:focus-visible {
  outline: 2px solid var(--pg-gold-2) !important;
  outline-offset: 2px;
}
/* Auf dunklen Flächen (Hero, Newsletter-Modal + Trigger, Header, dunkle
   Sektionen) ist das tiefe Gold-2 (#7a6528) zu trüb/„grau" und wirkt beim
   Antippen (iOS zeigt dort :focus-visible) wie ein hässlicher Kasten.
   Dort greift das helle Champagner-Gold; auf hellen Flächen bleibt das
   kontraststarke Gold-2 (Barrierefreiheit ≥3:1). */
.pg-hero :focus-visible,
.pg-nl :focus-visible,
.pg-nl-tab:focus-visible,
.site-header :focus-visible,
.pg-section--dark :focus-visible,
.pg-takeoff-feature :focus-visible {
  outline-color: var(--pg-gold) !important;
}

/* -------- Storefront-Layout-Reset für die volle Breite der Startseite ---- */
.pg-home {
  margin: 0;
}
.home #content .col-full,
.home #primary,
.home .content-area,
.home #main {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
}
.home #content {
  padding-top: 0 !important;
}
.home .site-content {
  padding-top: 0 !important;
}
/* Storefront-Standard-Seitentitel auf der Startseite ausblenden (Hero übernimmt). */
.home .page-title,
.home .entry-header {
  display: none;
}

/* ----------------------------- Base ------------------------------------- */
body {
  background: var(--pg-cream);
  color: var(--pg-ink);
  font-family: var(--pg-font-body);
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  /* WICHTIG: KEIN overflow-x: hidden/clip auf <body> (überschreibt bewusst Storefronts
     `body{overflow-x:hidden}`). Ein Nicht-`visible`-overflow auf <body>/<html> bricht
     auf iOS Safari die native Positionierung von `position: fixed`-Elementen — die
     Bottom-Nav klebt dann nicht mehr am sichtbaren Unterrand. Horizontales Clipping
     übernimmt der innere Wrapper `#page.site` (siehe oben). */
  overflow-x: visible;
}
/* Storefront setzt zusätzlich `#page.site { overflow-x: hidden }`. Das macht den
   DIREKTEN Elternteil des Headers zum Scroll-Container und bricht damit den
   Sticky-Header. `clip` klippt horizontal weiter, erzeugt aber keinen Container. */
#page.site,
.hfeed.site {
  overflow-x: clip;
}
h1,
h2,
h3,
h4 {
  font-family: var(--pg-font-head);
  font-weight: 600;
  line-height: 1.08;
  letter-spacing: 0.005em;
}
a {
  color: var(--pg-gold-2);
  text-decoration: none;
  transition: color 0.2s var(--pg-ease);
}
a:hover {
  color: var(--pg-gold);
}
img {
  max-width: 100%;
  height: auto;
}

.pg-wrap {
  max-width: var(--pg-maxw);
  margin-inline: auto;
  padding-inline: clamp(1.1rem, 4vw, 2.5rem);
}

/* Eyebrow / Kicker */
.pg-eyebrow {
  text-transform: uppercase;
  letter-spacing: 0.32em;
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--pg-gold-2);
  margin: 0 0 1rem;
}
.pg-eyebrow--light {
  color: var(--pg-gold);
}

/* ----------------------------- Buttons ---------------------------------- */
.pg-btn,
.pg-home .button,
.pg-gb-submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce .button.alt {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  background: var(--pg-ink);
  color: var(--pg-on-dark) !important;
  border: 0;
  border-radius: 0;
  padding: 0.95em 1.9em;
  font-family: var(--pg-font-body);
  font-weight: 600;
  font-size: 0.95rem;
  letter-spacing: 0.02em;
  line-height: 1;
  cursor: pointer;
  text-transform: none;
  transition:
    transform 0.25s var(--pg-ease),
    background 0.25s var(--pg-ease),
    box-shadow 0.25s var(--pg-ease);
}
.pg-btn:hover,
.pg-home .button:hover,
.pg-gb-submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce .button.alt:hover {
  background: linear-gradient(120deg, var(--pg-gold), var(--pg-gold-2));
  color: #101010 !important;
  transform: translateY(-2px);
  box-shadow: var(--pg-shadow-gold);
}
/* Primär-CTA auf dunklen Flächen (Hero/dunkle Sektionen): Gold statt Ink —
   dunkler Button auf dunklem Grund hat zu wenig Kontrast/Signalwirkung. */
.pg-hero .pg-btn:not(.pg-btn--ghost),
.pg-section--dark .pg-btn:not(.pg-btn--ghost),
.pg-takeoff-feature .pg-btn:not(.pg-btn--ghost) {
  background: linear-gradient(120deg, var(--pg-gold), #e2bd7e);
  color: #101010 !important;
  box-shadow: var(--pg-shadow-gold);
}
.pg-hero .pg-btn:not(.pg-btn--ghost):hover,
.pg-section--dark .pg-btn:not(.pg-btn--ghost):hover,
.pg-takeoff-feature .pg-btn:not(.pg-btn--ghost):hover {
  background: linear-gradient(120deg, #e2bd7e, var(--pg-gold));
}
/* -------- Hero-CTA-Paar: „Onyx-Platte + Hairline-Ghost" ------------------
   Bewusst maskulin-architektonisch statt Pille + Glanz: kantige Ecken
   (0 — wie die gesamte Seite), gesperrte Versalien in Inter (die Grotesk ist enger/technischer als
   die runde Nunito Sans). Beide CTAs teilen dieselbe Geometrie und Grundlinie
   und bilden so ein ruhiges Paar — der frühere Textlink mit Pfeil ließ die
   Gruppe unausgewogen wirken.

   Materialregel: Gold trägt NIE die Fläche, nur Kontur und Schrift. Eine
   großflächig goldgefüllte Platte liest sich als lackiertes Plastik (billig),
   dieselbe Fläche in warmem Onyx mit Gold-Haarlinie als Metall (edel). Die
   Hierarchie kommt darum aus der Füllung (deckend vs. Glas), nicht aus der
   Farbe. Gemeinsame Maße als Custom Properties, damit Primär/Ghost nie
   auseinanderlaufen. */
.pg-hero__cta {
  --pg-cta-pad-y: 1.05em;
  --pg-cta-pad-x: 2.5em;
  --pg-cta-radius: 0;
  --pg-cta-font: 0.8rem;
  --pg-cta-track: 0.16em;
}
.pg-hero .pg-btn:not(.pg-btn--ghost),
.pg-hero__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.7rem;
  padding: var(--pg-cta-pad-y) var(--pg-cta-pad-x);
  border-radius: 0;
  font-family: "Inter", var(--pg-font-body);
  font-size: var(--pg-cta-font);
  font-weight: 700;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: var(--pg-cta-track);
  /* Versalien + Sperrung optisch zentrieren (rechts fehlt sonst der Ausgleich). */
  text-indent: var(--pg-cta-track);
}
/* Primär: deckende Champagner-Platte mit tiefdunkler Schrift.
   ABWEICHUNG von der Regel „Gold trägt nie die Fläche", die für die übrige
   Seite weiter gilt: gemeint war dort das gesättigte Gold (#d2ab66), das als
   lackiertes Plastik liest. Hier trägt ein heller, entsättigter Champagnerton
   die Fläche — der liest sich als Papier/Karton, nicht als Metall-Imitat, und
   ist auf der dunklen Bühne der einzige helle Block. Genau das macht ihn zum
   eindeutigen Primärziel; die frühere Onyx-Platte verschwand im Hintergrund. */
.pg-hero .pg-btn:not(.pg-btn--ghost) {
  background: #ecd9ab;
  border: 1px solid #ecd9ab;
  color: #171310 !important;
  box-shadow: none;
  transition:
    background 0.25s var(--pg-ease),
    border-color 0.25s var(--pg-ease),
    transform 0.25s var(--pg-ease);
}
.pg-hero .pg-btn:not(.pg-btn--ghost):hover {
  background: #f5e7c4;
  border-color: #f5e7c4;
  color: #171310 !important;
  transform: translateY(-1px);
}
.pg-hero .pg-btn:not(.pg-btn--ghost) svg {
  flex: none;
  width: 1em;
  height: 1em;
  transition: transform 0.25s var(--pg-ease);
}
.pg-hero .pg-btn:not(.pg-btn--ghost):hover svg {
  transform: translateX(4px);
}
/* Sekundär: reiner Textlink mit Unterstrich — kein Kasten. Zwei gerahmte
   Flächen nebeneinander lasen sich als gleichwertiges Paar; die Hierarchie
   kommt jetzt aus Fläche (primär) gegen Linie (sekundär). Das Padding wird
   zurückgenommen, damit der Unterstrich am Text sitzt und nicht an einer
   unsichtbaren Box; die Grundlinie bleibt über align-items an der Platte. */
.pg-hero__link {
  padding: 0;
  border: 0;
  background: none;
  color: #f2f0ea !important;
  text-indent: 0;
  letter-spacing: 0.1em;
  font-size: 0.78rem;
  text-transform: none;
  border-bottom: 1px solid rgba(242, 240, 234, 0.45);
  padding-bottom: 0.5em;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
  transition:
    color 0.25s var(--pg-ease),
    border-color 0.25s var(--pg-ease);
}
.pg-hero__link:hover {
  color: #ffffff !important;
  background: none;
  border-bottom-color: #ffffff;
}
.pg-btn--ghost {
  background: transparent;
  color: var(--pg-on-dark) !important;
  border: 1px solid rgba(240, 239, 234, 0.4);
}
.pg-btn--ghost:hover {
  background: var(--pg-on-dark);
  color: #0b0b0b !important;
  border-color: var(--pg-on-dark);
}

/* -------- Storefront-Button-Default-Hover neutralisieren -----------------
   Storefront (Customizer-CSS) legt für JEDEN generischen Button/Input einen
   hellgrauen Hover (#d5d5d5) mit dunklem Text an. Das ist für ein helles Theme
   gedacht und kollidiert im Noir-Design überall: z. B. beim „Nein danke" im
   Newsletter, wo unser heller Hover-Text auf Storefronts hellgrauem Kasten
   landet → unlesbar. Hier generell entschärfen: der Hover erbt Fläche/Farbe
   aus dem Kontext statt Grau zu erzwingen. `body`-Präfix hebt die Spezifität
   knapp über Storefront (0,1,2 > 0,1,1); unsere eigenen, klassenbasierten
   Button-Hover (Gold) liegen darüber und bleiben unberührt. */
body button:hover,
body button:focus,
body button:active,
body input[type="button"]:hover,
body input[type="button"]:focus,
body input[type="button"]:active,
body input[type="reset"]:hover,
body input[type="reset"]:focus,
body input[type="reset"]:active,
body input[type="submit"]:hover,
body input[type="submit"]:focus,
body input[type="submit"]:active {
  background-color: transparent;
  color: inherit;
}

/* ----------------------------- Sections --------------------------------- */
.pg-section {
  padding: clamp(3.5rem, 8vw, 7rem) 0;
}
.pg-section--dark {
  background: var(--pg-bg);
  color: var(--pg-on-dark);
}
.pg-section--dark h2 {
  color: var(--pg-on-dark);
}
.pg-section__head {
  max-width: 640px;
  margin: 0 auto clamp(2rem, 4vw, 3.5rem);
  text-align: center;
}
.pg-section__title {
  font-size: clamp(2rem, 5vw, 3.4rem);
  margin: 0 0 0.6rem;
}
.pg-section__lead {
  color: var(--pg-ink-soft);
  font-size: 1.05rem;
  margin: 0;
}
.pg-section--dark .pg-section__lead {
  color: var(--pg-on-dark-2);
}
.pg-center-cta {
  text-align: center;
  margin-top: clamp(2rem, 4vw, 3rem);
}

/* ====================== Ankündigungsleiste (Topbar) ======================
   Schwarze Leiste GANZ oben, oberhalb der Navbar (inc/topbar.php). Eine
   Botschaft → statisch zentriert; mehrere → Endlos-Marquee (main.js klont
   die Sequenz und setzt --pg-set-w/--pg-set-d). --pg-topbar-off hält die
   aktuell sichtbare Resthöhe der Leiste bereit — der fixe Front-Header und
   das Mobilmenü-Overlay schieben sich exakt darunter. --pg-topbar-h ist die
   VOLLE Leistenhöhe (scroll-unabhängig) — der Hero zieht sie von seiner
   Viewport-Höhe ab, damit Leiste + Hero zusammen genau einen Viewport füllen. */
html:has(.pg-topbar) {
  /* Fallback bis das (deferte) JS die echte Höhe misst — verhindert, dass
     der fixe Front-Header die Leiste beim ersten Paint überdeckt. */
  --pg-topbar-off: 34px;
  --pg-topbar-h: 34px;
}
/* Das Aktivierungs-Band (siehe unten) gehört zum selben Ankündigungs-Stapel und
   zählt in beide Maße hinein — Schätzwerte bis main.js exakt misst. */
html:has(.pg-authbar) {
  --pg-topbar-off: 62px;
  --pg-topbar-h: 62px;
}
html:has(.pg-topbar):has(.pg-authbar) {
  --pg-topbar-off: 96px;
  --pg-topbar-h: 96px;
}
.pg-topbar {
  position: relative;
  z-index: 101; /* knapp über dem Header (100) — nie darunter verschwinden */
  background: #000;
  color: #fff;
  overflow: hidden;
  border-bottom: 1px solid rgba(210, 171, 102, 0.28);
}
.pg-topbar__track {
  display: flex;
  width: max-content;
}
.pg-topbar__set {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
}
.pg-topbar__item {
  display: inline-flex;
  align-items: center;
  padding: 0.55rem 0;
  font-family: var(--pg-font-body);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #fff;
  white-space: nowrap;
}
.pg-topbar__item a {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: var(--pg-gold);
}
.pg-topbar__item a:hover {
  color: var(--pg-gold);
}
.pg-topbar__sep {
  color: var(--pg-gold);
  margin: 0 clamp(1rem, 3vw, 1.8rem);
  font-size: 0.6rem;
}
/* Eine Botschaft: statisch mittig, darf mobil umbrechen. */
.pg-topbar--single .pg-topbar__track {
  width: 100%;
  justify-content: center;
}
.pg-topbar--single .pg-topbar__set {
  flex-wrap: wrap;
  justify-content: center;
  padding: 0 1rem;
}
.pg-topbar--single .pg-topbar__item {
  white-space: normal;
  text-align: center;
}
/* Einzelne, aber ÜBERLANGE Botschaft: main.js misst den Overflow und setzt
   .pg-topbar--marquee — die Zeile wird zur Laufschrift, die links (am Textanfang)
   startet und nicht mehr umbricht/zentriert. */
.pg-topbar--single.pg-topbar--marquee .pg-topbar__track {
  width: max-content;
  justify-content: flex-start;
}
.pg-topbar--single.pg-topbar--marquee .pg-topbar__set {
  flex-wrap: nowrap;
  padding: 0;
}
.pg-topbar--single.pg-topbar--marquee .pg-topbar__item {
  white-space: nowrap;
  text-align: left;
}
/* Mehrere Botschaften: Marquee — Track wandert genau eine Sequenz nach links. */
@keyframes pg-topbar-scroll {
  to { transform: translate3d(calc(-1 * var(--pg-set-w, 100%)), 0, 0); }
}
.pg-topbar__track.is-anim {
  animation: pg-topbar-scroll var(--pg-set-d, 24s) linear infinite;
  will-change: transform;
}
.pg-topbar:hover .pg-topbar__track.is-anim {
  animation-play-state: paused;
}
@media (prefers-reduced-motion: reduce) {
  .pg-topbar__track.is-anim { animation: none; }
}

/* ================= Aktivierungs-Band (Double-Opt-in) ====================
   Unbestätigtes Konto (inc/account-activation.php). Liegt im Ankündigungs-
   Stapel zwischen Topbar und Navbar — NICHT in #content: auf der Startseite
   zieht `body.pg-front #content` sich unter die transparente Navbar, ein Band
   dort verschwände halb hinter dem Header (so sah Germanizeds Original-Notice
   aus). Champagner-Ton statt einer zweiten schwarzen Leiste: die Meldung
   verlangt eine Handlung und darf sich vom Marketing-Band abheben. */
.pg-authbar {
  position: relative;
  z-index: 101; /* wie die Topbar — nie unter dem Header (100) verschwinden */
  background: linear-gradient(180deg, #f7efdd 0%, #f1e6cf 100%);
  color: var(--pg-ink);
  border-bottom: 1px solid rgba(127, 99, 32, 0.28);
}
.pg-authbar__inner {
  max-width: var(--pg-maxw);
  margin: 0 auto;
  padding: 0.7rem clamp(1rem, 4vw, 2rem);
  display: flex;
  align-items: center;
  gap: 0.9rem;
}
.pg-authbar__icon {
  flex: none;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: var(--pg-gold-2);
  background: rgba(127, 99, 32, 0.1);
  border: 1px solid rgba(127, 99, 32, 0.22);
}
.pg-authbar__icon svg {
  width: 18px;
  height: 18px;
}
.pg-authbar__text {
  min-width: 0;
  margin-right: auto;
}
.pg-authbar__head {
  margin: 0;
  font-family: var(--pg-font-head);
  font-size: 1.12rem;
  font-weight: 700;
  line-height: 1.25;
  color: var(--pg-ink);
}
.pg-authbar__sub {
  margin: 0.1rem 0 0;
  font-size: 0.82rem;
  line-height: 1.45;
  color: var(--pg-ink-soft);
}
.pg-authbar__mail {
  color: var(--pg-ink);
  font-weight: 600;
  overflow-wrap: anywhere;
}
.pg-authbar__cta {
  flex: none;
  padding: 0.5rem 1.1rem;
  border-radius: 0;
  background: var(--pg-ink);
  color: var(--pg-on-dark) !important;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color 0.25s var(--pg-ease), color 0.25s var(--pg-ease);
}
.pg-authbar__cta:hover {
  background: var(--pg-gold-2);
  color: #fff !important;
}
/* Nach dem Versand: gleiche Fläche, nur der Akzent wechselt auf Grün — der
   Wechsel Umschlag→Haken trägt die Botschaft, die Leiste springt nicht. */
.pg-authbar--sent .pg-authbar__icon {
  color: #2f6b43;
  background: rgba(47, 107, 67, 0.1);
  border-color: rgba(47, 107, 67, 0.25);
}

@media (max-width: 767px) {
  .pg-authbar__inner {
    flex-wrap: wrap;
    padding: 0.6rem 1rem;
    gap: 0.6rem;
  }
  .pg-authbar__head {
    font-size: 1rem;
  }
  .pg-authbar__sub {
    font-size: 0.76rem;
  }
  /* `flex-basis: 0` statt `auto`: sonst ist die Wunschbreite des Textblocks
     größer als der Rest neben dem Icon, und wrap schiebt ihn unter das Icon —
     das Icon stünde allein in einer Zeile und kostete Höhe. */
  .pg-authbar__text {
    flex: 1 1 0;
  }
  /* Der Button rutscht unter den Text und nimmt die volle Breite — auf
     schmalen Geräten sonst ein 90px-Stummel neben zwei Textzeilen. */
  .pg-authbar__cta {
    flex-basis: 100%;
    text-align: center;
  }
}

/* ====================== Header (Storefront, dunkel) ====================== */
.site-header {
  background: linear-gradient(to bottom, var(--pg-bg-soft), var(--pg-bg)) !important;
  border-bottom: 1px solid rgba(210, 171, 102, 0.35);
  position: sticky;
  top: 0;
  z-index: 100;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  transition:
    box-shadow 0.35s var(--pg-ease),
    background-color 0.35s var(--pg-ease),
    border-color 0.35s var(--pg-ease);
}
.admin-bar .site-header {
  top: 32px;
}
.site-header.pg-scrolled {
  box-shadow: 0 4px 32px -8px rgba(0, 0, 0, 0.55);
}

/* -------- Startseite: transparente Navbar über dem Hero ----------------
   Ganz oben liegt die Navbar transparent über dem Hero (der Hero scheint
   durch, seine dunkle Oberkante hält Logo/Menü/Icons lesbar). Beim Scrollen
   (`.pg-scrolled`, per JS ab 40px) oder sobald ein Overlay/Menü offen ist
   (`body.pg-noscroll`) blendet die deckende Fläche weich ein. Nur die
   `background-color` wird animiert — opake Farbverläufe lassen sich nicht
   weich überblenden und würden „springen".                               */
body.pg-front .site-header {
  /* Nativer Sticky-Glide statt „fixed + JS-top": die Navbar bleibt in-flow direkt
     unter der Ankündigungsleiste und klebt beim Scrollen absolut weich an top:0.
     Kein per-Scroll-JS mehr, das früher --pg-topbar-off auf :root schrieb und so
     bei jedem Scroll-Tick einen Style-Recalc des ganzen Dokuments erzwang (→ Hero
     ruckelte, Navbar „landete" stufig). Das folgende #content wird per negativem
     margin-top wieder unter die transparente Navbar gezogen (Hero scheint durch). */
  position: sticky;
  top: 0;
  background-color: transparent !important;
  background-image: none !important;
  border-bottom-color: transparent;
  box-shadow: none;
}
body.admin-bar.pg-front .site-header {
  top: 32px;
}
/* #content unter die nun in-flow liegende Navbar ziehen → der Hero beginnt bündig
   ganz oben, die transparente Navbar liegt darüber (optisch wie zuvor bei fixed). */
body.pg-front #content.site-content {
  margin-top: calc(-1 * var(--pg-header-h, 76px));
}
/* Lesbarkeits-Schutz im transparenten Zustand (v. a. bei hellem Custom-Hero):
   ein zarter Schlagschatten legt sich um Logo, Menü und Icons. */
body.pg-front .site-header:not(.pg-scrolled) .col-full {
  filter: drop-shadow(0 1px 8px rgba(0, 0, 0, 0.55));
}
/* Offenes Mobilmenü: KEIN filter auf .col-full. Ein `filter` macht das Element
   zum Containing-Block für position:fixed-Kinder — das Vollbild-Overlay würde
   sonst auf die (zentrierte, max-breite) Spalte begrenzt statt vollbreit. */
body.pg-front.pg-noscroll .site-header .col-full {
  filter: none;
}
body.pg-front .site-header.pg-scrolled,
body.pg-front.pg-noscroll .site-header {
  background-color: var(--pg-bg) !important;
  border-bottom-color: rgba(210, 171, 102, 0.35);
}
body.pg-front .site-header.pg-scrolled {
  box-shadow: 0 4px 32px -8px rgba(0, 0, 0, 0.55);
}
.site-header * {
  color: var(--pg-on-dark);
}
.site-branding {
  line-height: 0;
  font-size: 0;
}
.pg-logo-link {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  line-height: 0;
}
.pg-logo {
  display: block;
  height: 64px !important;
  width: 64px !important;
  border-radius: 50%;
  mix-blend-mode: screen;
  flex: none;
  transition: opacity 0.2s var(--pg-ease), transform 0.2s var(--pg-ease);
}
.pg-logo-link:hover .pg-logo {
  opacity: 0.85;
  transform: scale(1.04);
}
.site-branding .site-title,
.site-branding .site-title a {
  font-family: var(--pg-font-head);
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-size: clamp(1.2rem, 2vw, 1.55rem);
  line-height: 1.1;
  white-space: nowrap;
  color: var(--pg-on-dark) !important;
}
.site-branding .site-description {
  color: var(--pg-on-dark-2) !important;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-size: 0.6rem;
  white-space: nowrap;
  margin: 0.15rem 0 0;
}
.storefront-primary-navigation {
  background: transparent !important;
  border: 0 !important;
}
/* Hauptnavigation — die Links sind die wichtigste Funktion im Header und
   müssen das auch aussehen. Das frühere gedeckte Gold (#d2ab66) auf dem
   fast schwarzen Band lag bei ~5:1 und ging neben Logo und Icons unter.
   Jetzt trägt der Ruhezustand Porzellan (~15:1), größer, fetter und weiter
   gesperrt; Gold bleibt für Hover/aktive Seite — als Auszeichnung, nicht als
   Grundton. Genau die Materialregel der CTAs: Gold markiert, es füllt nicht. */
.main-navigation ul.menu > li > a,
.main-navigation ul.nav-menu > li > a {
  color: var(--pg-on-dark) !important;
  font-family: var(--pg-font-body);
  font-size: 0.92rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  position: relative;
  padding-bottom: 4px;
  transition: color 0.2s var(--pg-ease);
}
.main-navigation ul.menu > li > a::after,
.main-navigation ul.nav-menu > li > a::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 2px;
  background: var(--pg-gold);
  transition: width 0.25s var(--pg-ease);
}
.main-navigation ul.menu > li > a:hover,
.main-navigation ul.nav-menu > li > a:hover {
  color: var(--pg-gold) !important;
}
.main-navigation ul.menu > li > a:hover::after,
.main-navigation ul.nav-menu > li > a:hover::after,
.main-navigation ul.menu > li.current-menu-item > a::after,
.main-navigation ul.nav-menu > li.current-menu-item > a::after {
  width: 100%;
}
.main-navigation ul.menu > li.current-menu-item > a,
.main-navigation ul.nav-menu > li.current-menu-item > a {
  color: var(--pg-gold) !important;
}
.site-header .site-header-cart .cart-contents,
.site-header a {
  color: var(--pg-on-dark) !important;
}
.site-header-cart .cart-contents:hover {
  color: var(--pg-gold) !important;
}

/* -------- Navbar: 3-Spalten-Layout (Logo · Menü · Icons) ---------------- */
.site-header .col-full {
  position: relative;
}

/* Icon-Gruppe rechts — großzügige Abstände wie im Mockup */
.pg-header-actions {
  display: flex;
  align-items: center;
  gap: 0.9rem;
}
.pg-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  color: var(--pg-gold) !important;
  background: transparent !important; /* Storefront-Button-Reset überschreiben */
  border: 0 !important;
  box-shadow: none !important;
  cursor: pointer;
  position: relative;
  transition: color 0.2s var(--pg-ease), background 0.2s var(--pg-ease);
}
.pg-action:hover {
  color: #eed7a0 !important;
  background: rgba(210, 171, 102, 0.1) !important;
}
.pg-action svg {
  display: block;
  width: 22px !important;
  height: 22px !important;
  flex-shrink: 0;
}

/* Warenkorb-Zähler als kleiner Gold-Punkt */
.pg-cart-link {
  position: relative;
}
.pg-cart-count {
  position: absolute;
  top: 5px;
  right: 3px;
  min-width: 17px;
  height: 17px;
  padding: 0 4px;
  display: none;
  align-items: center;
  justify-content: center;
  background: var(--pg-gold);
  color: #1f1f1d;
  border-radius: 0;
  font-size: 0.62rem;
  font-weight: 700;
  line-height: 1;
  border: 2px solid var(--pg-bg);
}
.pg-cart-count.is-filled {
  display: inline-flex;
}

/* Menü-Toggle (Hamburger ⇄ X). Beide SVG-Icons liegen deckungsgleich im Button
   und werden per Rotation/Skalierung ineinander übergeblendet. */
.site-header button.menu-toggle {
  position: relative;
  background: transparent !important;
  border: 1px solid transparent !important;
  color: var(--pg-gold);
  cursor: pointer;
  padding: 0;
  margin: 0;
  line-height: 0;
  border-radius: 0;
  transition: background 0.2s var(--pg-ease), border-color 0.2s var(--pg-ease),
    color 0.2s var(--pg-ease);
}
.pg-menu-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: transform 0.3s var(--pg-ease), opacity 0.25s var(--pg-ease);
}
/* Geschlossen: Hamburger sichtbar, X versteckt (gedreht/verkleinert). */
.pg-menu-icon--close {
  transform: translate(-50%, -50%) rotate(-90deg) scale(0.5);
  opacity: 0;
}
/* Geöffnet: X sichtbar, Hamburger dreht raus. */
.main-navigation.toggled .pg-menu-icon--open {
  transform: translate(-50%, -50%) rotate(90deg) scale(0.5);
  opacity: 0;
}
.main-navigation.toggled .pg-menu-icon--close {
  transform: translate(-50%, -50%) rotate(0) scale(1);
  opacity: 1;
}
/* Im geöffneten Zustand: nur das X-Icon, identisch zum Hamburger
   (gleiche Farbe, keine Pill-Fläche, kein Rahmen). */
.main-navigation.toggled button.menu-toggle {
  color: var(--pg-gold);
  background: transparent !important;
  border-color: transparent !important;
}
.site-header button.menu-toggle:hover {
  color: #eed7a0;
}
/* Storefront zeichnet einen EIGENEN Hamburger/X über ::before/::after/span::before
   (versetzte, dunkle Balken). Wir nutzen eigene SVG-Icons → Storefront-Pseudos aus,
   sonst überlagert ein „schwarzer Strich" das X. */
.site-header button.menu-toggle::before,
.site-header button.menu-toggle::after,
.site-header button.menu-toggle span::before {
  display: none !important;
  content: none !important;
}

/* Desktop: echtes 3-Spalten-Grid (Logo | Menü mittig | Icons) */
@media (min-width: 992px) {
  .site-header .col-full {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    grid-template-rows: auto;
    align-items: center;
    column-gap: 1.5rem;
    row-gap: 0;
    padding-top: 12px !important;
    padding-bottom: 12px !important;
  }
  /* Storefront-Skip-Links sicher aus dem Grid-Fluss nehmen (sonst belegen sie Spalten). */
  .site-header .col-full > .skip-link {
    position: absolute !important;
  }
  .site-header .site-branding {
    grid-column: 1;
    grid-row: 1;
    margin: 0;
    padding: 0;
    float: none !important; /* Storefront setzt float:left — überschreiben */
    justify-self: start;
    align-self: center;
  }
  .site-header .main-navigation {
    grid-column: 2;
    grid-row: 1;
    justify-self: center;
    align-self: center;
    /* Storefront (.woocommerce-active …) gibt der Nav 73.9% Breite → das ul
       liefe rechts über und klebte an den Icons (v. a. mit „Lagerliste").
       max-content = echte Inhaltsbreite, die Grid-Spalte übernimmt sie 1:1. */
    width: max-content !important;
    margin: 0;
    float: none !important;
  }
  .site-header .pg-header-actions {
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
    align-self: center;
  }
  .menu-toggle {
    display: none;
  }
  .main-navigation ul.menu,
  .main-navigation ul.nav-menu {
    display: flex;
    gap: 2.2rem;
    margin: 0;
    align-items: center;
  }
  .main-navigation ul.menu > li,
  .main-navigation ul.nav-menu > li {
    white-space: nowrap;
  }
}

/* Mobil/Tablet (< 992px): Logo links, Icons + Burger rechts, Menü als Dropdown */
@media (max-width: 991px) {
  .site-header .col-full {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    /* Vertikale Luft: das Logo klebte sonst am oberen Rand (Header setzt
       padding oben/unten auf 0 !important → hier gezielt zurückholen). */
    padding-top: 12px !important;
    padding-bottom: 12px !important;
  }
  .site-header .site-branding {
    margin: 0 auto 0 0;
    padding: 0;
    float: none !important;
    min-width: 0;
    align-self: center;
  }
  /* Tagline auf Mobil aus, Logo kompakter */
  .site-header .site-description {
    display: none;
  }
  .pg-logo {
    height: 56px !important;
    width: 56px !important;
  }
  .site-header .site-title,
  .site-header .site-title a {
    font-size: clamp(1.05rem, 5vw, 1.35rem);
  }
  /* Mobil/Tablet: Konto, Suche und Warenkorb wandern in die Bottom-Nav →
     Top-Navbar zeigt nur noch Logo + Menü (native-App-Look). */
  .pg-action--account,
  .pg-action--search,
  .pg-cart-link {
    display: none;
  }
  .pg-action {
    width: 40px;
    height: 40px;
  }
  .site-header .pg-header-actions {
    order: 2;
  }
  .site-header .main-navigation {
    order: 3;
    position: static;
  }
  /* Hamburger auf Mobil UND Tablet sicher einblenden (Storefront blendet ihn
     standardmäßig ab 768px aus → sonst gar keine Navigation auf Tablet). */
  .site-header button.menu-toggle {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    padding: 0;
  }
  .pg-menu-icon {
    width: 28px;
    height: 28px;
  }
  .main-navigation .menu,
  .main-navigation .nav-menu {
    display: none;
    flex-direction: column;
    background: var(--pg-bg);
    margin: 0;
  }
}

/* -------- Kompakt-Modus (Eigentümer): Hamburger schon < 1200px ----------
   Mit dem zusätzlichen Menüpunkt „Lagerliste" (nur eingeloggte Eigentümer,
   body.pg-nav-compact — s. inc/offer.php) wird das Inline-Menü zwischen
   992–1200px zu eng → gleiches Muster wie Mobil: Logo links, Icons + Burger
   rechts. Die Icons bleiben sichtbar (keine Bottom-Nav in diesem Bereich). */
@media (min-width: 992px) and (max-width: 1199.98px) {
  body.pg-nav-compact .site-header .col-full {
    display: flex;
    align-items: center;
    gap: 0.35rem;
  }
  body.pg-nav-compact .site-header .site-branding {
    margin: 0 auto 0 0;
  }
  body.pg-nav-compact .site-header .pg-header-actions {
    order: 2;
  }
  body.pg-nav-compact .site-header .main-navigation {
    order: 3;
    position: static;
    width: auto;
    margin: 0;
  }
  body.pg-nav-compact .site-header button.menu-toggle {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    padding: 0;
  }
  body.pg-nav-compact .pg-menu-icon {
    width: 28px;
    height: 28px;
  }
  body.pg-nav-compact .main-navigation:not(.toggled) .menu,
  body.pg-nav-compact .main-navigation:not(.toggled) .nav-menu {
    display: none;
  }
}

/* -------- Mobilmenü-Overlay (Hamburger geöffnet) -------------------------
   Bewusst OHNE Media-Query: `.toggled` kann nur entstehen, wo der Burger
   sichtbar ist (< 992px sowie Kompakt-Modus < 1200px) — auf Desktop ist der
   Button ausgeblendet. Vollbild-Overlay direkt unter der (weiterhin
   sichtbaren) Navbar; elegante, kompakte Liste statt riesiger Reihen. */
.main-navigation.toggled .menu,
.main-navigation.toggled .nav-menu {
  display: flex;
  /* Desktop-Inline-Flex (row, gap 2.2rem) explizit überschreiben — im
     Kompakt-Modus gelten die ≥992px-Regeln weiter. */
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  position: fixed;
  /* Ankündigungsleiste (falls oben noch sichtbar) einrechnen — sonst klafft
     zwischen Navbar und Overlay ein Spalt bzw. das Overlay überdeckt sie. */
  top: calc(var(--pg-header-h, 64px) + var(--pg-topbar-off, 0px));
  left: 0;
  right: 0;
  /* Volle SICHTBARE Resthöhe — `dvh` folgt der iOS-Toolbar (statt `bottom: 0`). */
  height: calc(100vh - var(--pg-header-h, 64px) - var(--pg-topbar-off, 0px));
  height: calc(100dvh - var(--pg-header-h, 64px) - var(--pg-topbar-off, 0px));
  z-index: 90;
  /* Storefront begrenzt .nav-menu auf max-height:0 (JS-Animation) — für unser
     Vollbild-Overlay aufheben. */
  max-height: none !important;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  border-top: 1px solid var(--pg-line-dark);
  background: linear-gradient(180deg, var(--pg-bg), var(--pg-bg-deep));
  padding: clamp(0.8rem, 3vw, 1.6rem) clamp(1.4rem, 6vw, 2.4rem)
    max(1.6rem, env(safe-area-inset-bottom));
}
.admin-bar .main-navigation.toggled .menu,
.admin-bar .main-navigation.toggled .nav-menu {
  top: calc(var(--pg-header-h, 64px) + var(--pg-topbar-off, 0px) + 46px);
}
.main-navigation.toggled ul.menu > li,
.main-navigation.toggled ul.nav-menu > li {
  flex: 0 0 auto;       /* nicht über die Höhe strecken */
  display: block;
  padding: 0;
  /* Feine Gold-Haarlinie als Trenner — wertiger als flaches Grau. */
  border-bottom: 1px solid rgba(210, 171, 102, 0.16);
}
/* Einträge: zurückhaltende Cormorant-Serife in Editorial-Größe — klein,
   fein gesperrt und luftig gesetzt (boutique-hafte Zurückhaltung statt
   plakativer Großschrift). */
.main-navigation.toggled ul.nav-menu > li > a,
.main-navigation.toggled ul.menu > li > a {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  padding: 1.05rem 0.35rem;
  font-family: var(--pg-font-head);
  font-size: clamp(1.1rem, 4vw, 1.35rem);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: 0.06em;
  color: var(--pg-on-dark);
  transition: color 0.2s var(--pg-ease), padding-left 0.25s var(--pg-ease);
}
/* Desktop-Unterstrich (a::after) im Mobilmenü deaktivieren — sonst wird er
   beim aktiven Eintrag (width:100%) sichtbar/verzerrt. */
.main-navigation.toggled ul > li > a::after {
  display: none;
}
/* Chevron rechts als feiner Hinweis (via ::before, absolut → kein Konflikt). */
.main-navigation.toggled ul > li > a::before {
  content: "";
  position: absolute;
  right: 0.35rem;
  top: 50%;
  width: 6px;
  height: 6px;
  border-right: 1px solid var(--pg-gold);
  border-top: 1px solid var(--pg-gold);
  transform: translateY(-50%) rotate(45deg);
  opacity: 0.4;
  transition: opacity 0.2s var(--pg-ease), right 0.2s var(--pg-ease);
}
.main-navigation.toggled ul > li > a:hover,
.main-navigation.toggled ul > li > a:focus {
  color: var(--pg-gold);
  padding-left: 0.7rem;
}
.main-navigation.toggled ul > li > a:hover::before,
.main-navigation.toggled ul > li > a:focus::before {
  opacity: 1;
  right: 0;
}
.main-navigation.toggled ul > li.current-menu-item > a {
  color: var(--pg-gold);
}
/* Kontakt als abgesetzter Gold-CTA-Button. Nicht schlicht `:last-child`:
   beim Eigentümer hängt offer.php „Lagerliste" ans Menü an — der CTA soll
   trotzdem Kontakt bleiben (letzter NICHT-Lagerliste-Eintrag) und via
   `order` visuell ganz unten stehen. */
.main-navigation.toggled ul > li:nth-last-child(1 of :not(.pg-menu-offer)) {
  border-bottom: 0;
  margin-top: 1.4rem;
  order: 1; /* Flex-Spalte: CTA ans Ende, „Lagerliste" davor */
}
.main-navigation.toggled ul > li:nth-last-child(1 of :not(.pg-menu-offer)) > a {
  justify-content: center;
  font-family: var(--pg-font-body);
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #101010;
  background: linear-gradient(120deg, var(--pg-gold), var(--pg-gold-2));
  border-radius: 0;
  padding: 1.05rem 1.4rem;
  box-shadow: var(--pg-shadow-gold);
  transition: filter 0.2s var(--pg-ease), transform 0.2s var(--pg-ease);
}
.main-navigation.toggled ul > li:nth-last-child(1 of :not(.pg-menu-offer)) > a::before {
  display: none;
}
.main-navigation.toggled ul > li:nth-last-child(1 of :not(.pg-menu-offer)) > a:hover,
.main-navigation.toggled ul > li:nth-last-child(1 of :not(.pg-menu-offer)) > a:focus {
  color: #101010;
  padding-left: 1.4rem;
  filter: brightness(1.05);
  transform: translateY(-1px);
}

/* ====================== Bottom-Navigation (Mobile/Tablet) ============== */
/* Feste Tab-Leiste am unteren Rand für den Native-App-Look. Nur < 992px,
   passend zum Header-Mobil-Breakpoint. Auf Desktop komplett aus. */
.pg-bottomnav {
  display: none;
}
.pg-bnav__item {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-height: 58px;
  padding: 7px 2px;
  background: transparent !important; /* Storefront-Button-Hover-Bg neutralisieren */
  border: 0 !important;
  box-shadow: none !important;
  color: var(--pg-on-dark-2);
  font-family: var(--pg-font-body);
  font-size: 0.62rem;
  font-weight: 500;
  letter-spacing: 0.03em;
  text-decoration: none;
  cursor: pointer;
  position: relative;
  -webkit-tap-highlight-color: transparent;
  transition: color 0.2s var(--pg-ease), transform 0.12s var(--pg-ease);
}
.pg-bnav__item svg {
  width: 23px;
  height: 23px;
  display: block;
  stroke-width: 1.5;
}
.pg-bnav__label {
  line-height: 1;
  white-space: nowrap;
}
.pg-bnav__item:hover,
.pg-bnav__item:focus,
.pg-bnav__item:focus-visible {
  color: var(--pg-gold) !important;
  background: transparent !important;
  outline: none;
}
.pg-bnav__item:active {
  transform: scale(0.92);
}
.pg-bnav__item.is-active {
  color: var(--pg-gold);
}
/* Aktiv-Indikator: feiner Gold-Strich oben am Tab */
.pg-bnav__item.is-active::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 28px;
  height: 2px;
  border-radius: 0;
  background: linear-gradient(90deg, var(--pg-gold), var(--pg-gold-2));
}
/* Warenkorb-Icon mit Zähler-Badge */
.pg-bnav__ico {
  position: relative;
  display: inline-flex;
}
.pg-bnav__badge {
  position: absolute;
  top: -6px;
  right: -9px;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  display: none;
  align-items: center;
  justify-content: center;
  background: var(--pg-gold);
  color: #1f1f1d;
  border-radius: 0;
  font-size: 0.56rem;
  font-weight: 700;
  line-height: 1;
  border: 2px solid var(--pg-bg-deep);
}
.pg-bnav__badge.is-filled {
  display: inline-flex;
}

@media (max-width: 991px) {
  .pg-bottomnav {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    display: flex;
    align-items: stretch;
    justify-content: space-around;
    background: rgba(12, 11, 9, 0.94); /* near-black, leicht transluzent */
    -webkit-backdrop-filter: saturate(140%) blur(14px);
    backdrop-filter: saturate(140%) blur(14px);
    border-top: 1px solid var(--pg-line-dark);
    box-shadow: 0 -16px 36px -26px rgba(0, 0, 0, 0.85);
    padding-bottom: env(safe-area-inset-bottom);
    transition: transform 0.3s var(--pg-ease);
  }
  /* Platz schaffen, damit die fixe Leiste keinen Seiteninhalt verdeckt. */
  body {
    padding-bottom: calc(58px + env(safe-area-inset-bottom));
  }
  /* Bei offenem Overlay (Menü/Warenkorb/Filter) nach unten ausblenden. */
  body.pg-noscroll .pg-bottomnav {
    transform: translateY(100%);
    pointer-events: none;
  }
  /* Startseite: die Bottom-Nav erst einblenden, sobald die Navbar eine Fläche
     bekommt (gescrollt, s. `.pg-scrolled`). Ganz oben über dem Hero — wo die
     Navbar transparent ist — bleibt sie unten weggeschoben. */
  body.pg-front:not(.pg-scrolled) .pg-bottomnav {
    transform: translateY(100%);
    pointer-events: none;
  }
}

/* Ausklappbares Such-Panel unter der Navbar */
.pg-search {
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  z-index: 95;
  background: var(--pg-bg);
  border-top: 1px solid var(--pg-line-dark);
  box-shadow: 0 22px 44px -26px rgba(0, 0, 0, 0.7);
}
.pg-search[hidden] {
  display: none;
}
.pg-search__heading,
.pg-search__hint {
  display: none;
}
.pg-search__inner {
  max-width: var(--pg-maxw);
  margin: 0 auto;
  padding: 1rem clamp(1.1rem, 4vw, 2.5rem);
  display: flex;
  align-items: center;
  gap: 0.8rem;
}
.pg-search form.woocommerce-product-search {
  flex: 1;
  display: flex;
  gap: 0.6rem;
  margin: 0;
}
.pg-search .woocommerce-product-search label {
  display: none;
}
/* Feld mit eingebettetem Lupen-Icon (Best Practice) */
.pg-search__field {
  position: relative;
  flex: 1;
  display: flex;
  align-items: center;
}
.pg-search__field-ico {
  position: absolute;
  left: 1.05em;
  top: 50%;
  transform: translateY(-50%);
  display: inline-flex;
  color: var(--pg-on-dark-2);
  pointer-events: none;
}
.pg-search__field-ico svg {
  width: 19px;
  height: 19px;
  display: block;
}
.pg-search input[type="search"],
.pg-search .search-field {
  flex: 1;
  width: 100%;
  background: var(--pg-bg-soft);
  border: 1px solid var(--pg-line-dark);
  color: var(--pg-on-dark);
  padding: 0.85em 1.1em 0.85em 2.9em;
  border-radius: 0;
  font: inherit;
  transition: border-color 0.2s var(--pg-ease), box-shadow 0.2s var(--pg-ease);
}
.pg-search input[type="search"]:focus,
.pg-search .search-field:focus {
  outline: none;
  border-color: var(--pg-gold);
  box-shadow: 0 0 0 3px rgba(210, 171, 102, 0.18);
}
.pg-search input[type="search"]::placeholder {
  color: var(--pg-on-dark-2);
}
.pg-search input[type="search"]:focus + .pg-search__field-ico,
.pg-search__field:focus-within .pg-search__field-ico {
  color: var(--pg-gold);
}
.pg-search .woocommerce-product-search button[type="submit"] {
  background: linear-gradient(120deg, var(--pg-gold), var(--pg-gold-2));
  color: #101010;
  border: 0;
  border-radius: 0;
  padding: 0.85em 1.6em;
  font-weight: 600;
  cursor: pointer;
}
/* Mobil/Tablet: Submit-Button weg — Suche per Enter / Live-Liste (Best Practice). */
@media (max-width: 991px) {
  .pg-search .woocommerce-product-search button[type="submit"] {
    display: none;
  }
  /* Mobile Suche als eigene ruhige Bühne: Das Feld bleibt auch bei geöffneter
     Bildschirmtastatur oben, die Treffer scrollen unabhängig darunter. */
  .pg-search.pg-search--mobile {
    position: fixed;
    inset: 0;
    z-index: 1100;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    min-height: 100dvh;
    max-height: 100vh;
    max-height: 100dvh;
    overflow: hidden;
    border: 0;
    background:
      radial-gradient(80% 42% at 50% 0%, rgba(210, 171, 102, 0.10), transparent 68%),
      var(--pg-bg-deep);
    box-shadow: none;
    animation: pg-search-enter 0.28s var(--pg-ease) both;
  }
  .pg-search.pg-search--mobile[hidden] {
    display: none;
  }
  .pg-search--mobile .pg-search__heading {
    display: block;
    padding: max(1.15rem, env(safe-area-inset-top)) 1.25rem 0.85rem;
  }
  .pg-search__eyebrow {
    display: block;
    margin-bottom: 0.2rem;
    color: var(--pg-gold);
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.22em;
    line-height: 1.3;
    text-transform: uppercase;
  }
  .pg-search--mobile .pg-search__heading h2 {
    margin: 0;
    color: var(--pg-on-dark);
    font-size: clamp(1.8rem, 8vw, 2.35rem);
    line-height: 1;
  }
  .pg-search--mobile .pg-search__inner {
    flex: 0 0 auto;
    width: 100%;
    padding: 0 1.25rem 1.1rem;
    gap: 0.65rem;
    border-bottom: 1px solid var(--pg-line-dark);
  }
  .pg-search--mobile form.woocommerce-product-search {
    min-width: 0;
  }
  .pg-search--mobile input[type="search"],
  .pg-search--mobile .search-field {
    min-height: 54px;
    padding-left: 3.05rem;
    background: rgba(255, 255, 255, 0.055);
    border-color: rgba(210, 171, 102, 0.42);
    font-size: 16px; /* verhindert den automatischen iOS-Zoom */
  }
  .pg-search--mobile .pg-search__close {
    width: 48px;
    height: 54px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--pg-line-dark);
  }
  .pg-search--mobile .pg-search__hint {
    display: block;
    margin: 0;
    padding: 1.2rem 1.25rem;
    color: var(--pg-on-dark-2);
    font-size: 0.82rem;
    letter-spacing: 0.025em;
  }
  .pg-search--mobile .pg-search__hint[hidden] {
    display: none;
  }
  .pg-search--mobile .pg-search__results {
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
    max-height: none;
    padding: 0.45rem 1.25rem max(1.25rem, env(safe-area-inset-bottom));
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }
  .pg-search--mobile .pg-search-result {
    min-height: 76px;
    padding: 0.7rem 0;
    gap: 0.9rem;
  }
  .pg-search--mobile .pg-search-result__thumb {
    width: 58px;
    height: 58px;
  }
  .pg-search--mobile .pg-search-more {
    margin-top: 0.45rem;
    padding: 1rem;
    border: 1px solid rgba(210, 171, 102, 0.38);
  }
  body.pg-search-open {
    overflow: hidden;
    touch-action: none;
  }
  body.pg-search-open .pg-bottomnav {
    transform: translateY(100%);
    pointer-events: none;
  }
  body.pg-search-open [data-pg-topbar],
  body.pg-search-open [data-pg-authbar],
  body.pg-search-open .pg-nl-tab,
  body.pg-search-open .pg-deal-badge {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
}
@keyframes pg-search-enter {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .pg-search.pg-search--mobile { animation: none; }
}
.pg-search__close {
  flex: 0 0 auto;
  background: none;
  border: 0;
  color: var(--pg-on-dark);
  cursor: pointer;
  display: inline-flex;
  padding: 0.4rem;
  transition: color 0.2s var(--pg-ease);
}
.pg-search__close:hover {
  color: var(--pg-gold);
}

/* Live-Suche: Trefferliste unter dem Suchfeld (theme-konform, dunkles Panel) */
.pg-search__results {
  max-width: var(--pg-maxw);
  margin: 0 auto;
  padding: 0 clamp(1.1rem, 4vw, 2.5rem) 1.1rem;
  max-height: 62vh;
  overflow-y: auto;
}
.pg-search__results[hidden] { display: none; }
/* Treffer-Zeile: Thumbnail · Name + Marke/Duftart · Preis. `.is-active`
   spiegelt die Tastatur-Auswahl (↑/↓) und teilt den Hover-Look. */
.pg-search-result {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.55rem 0.9rem 0.55rem 0.55rem;
  color: var(--pg-on-dark) !important;
  border-bottom: 1px solid var(--pg-line-dark);
  border-radius: 0;
  font-size: 0.98rem;
  letter-spacing: 0.01em;
  text-decoration: none;
  transition: background 0.15s var(--pg-ease);
}
.pg-search-result:last-of-type { border-bottom: 0; }
.pg-search-result__thumb {
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  object-fit: cover;
  border-radius: 0;
  background: var(--pg-cream-2);
}
.pg-search-result__meta {
  min-width: 0;
  display: grid;
  gap: 0.14rem;
}
.pg-search-result__name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 500;
}
.pg-search-result__sub {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.7rem;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--pg-gold);
}
.pg-search-result__price {
  margin-left: auto;
  padding-left: 0.6rem;
  flex: 0 0 auto;
  font-weight: 600;
  color: var(--pg-on-dark);
  white-space: nowrap;
}
/* price_html liefert ggf. Grundpreis-/MwSt-Zusätze — im Dropdown ausblenden. */
.pg-search-result__price .wc-gzd-additional-info,
.pg-search-result__price .price-unit {
  display: none;
}
.pg-search-result:hover,
.pg-search-result:focus,
.pg-search-result.is-active {
  background: var(--pg-bg-soft);
}
.pg-search-result:hover .pg-search-result__name,
.pg-search-result:focus .pg-search-result__name,
.pg-search-result.is-active .pg-search-result__name {
  color: var(--pg-gold);
}
.pg-search-more {
  display: block;
  text-align: center;
  padding: 0.8rem 0.9rem;
  font-size: 0.85rem;
  letter-spacing: 0.06em;
  color: var(--pg-gold) !important;
  border-radius: 0;
}
.pg-search-more:hover,
.pg-search-more.is-active {
  background: var(--pg-bg-soft);
}
.pg-search-empty {
  color: var(--pg-on-dark-2);
  font-size: 0.92rem;
  padding: 0.8rem 0.9rem;
  margin: 0;
}

/* -------- Vollbreite auf Shop-/WooCommerce-Seiten (Sidebar entfernt) ---- */
.pg-fullwidth #primary,
.pg-fullwidth .content-area,
.woocommerce-page.pg-fullwidth #primary {
  width: 100% !important;
  float: none !important;
  margin: 0 !important;
}
.pg-fullwidth #secondary {
  display: none !important;
}
.pg-fullwidth .site-main {
  margin: 0 auto;
}
.main-navigation ul.menu > li > a,
.main-navigation ul.nav-menu > li > a {
  white-space: nowrap;
}
/* Nav-Link mit animiertem Unterstrich */
.main-navigation ul.menu > li > a,
.main-navigation ul.nav-menu > li > a {
  position: relative;
  padding-block: 0.35rem;
}
.main-navigation ul.menu > li > a::after,
.main-navigation ul.nav-menu > li > a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  height: 1px;
  width: 0;
  background: var(--pg-gold);
  transition: width 0.3s var(--pg-ease);
}
.main-navigation ul.menu > li > a:hover::after,
.main-navigation ul.nav-menu > li > a:hover::after {
  width: 100%;
}

/* ====================== Hero =========================================== */
.pg-hero {
  position: relative;
  /* Volle Viewport-Höhe (Referenz-Design): das Bild trägt die ganze Bühne,
     die fixe Navbar liegt transparent darüber. `dvh` folgt mobilen Toolbars.
     Die Ankündigungsleiste (falls aktiv) wird abgezogen: Leiste + Hero füllen
     zusammen genau einen Viewport, der Hero ragt nicht unter die Falz. */
  min-height: calc(100vh - var(--pg-topbar-h, 0px));
  min-height: calc(100dvh - var(--pg-topbar-h, 0px));
  /* Sobald main.js die erste Viewport-Höhe eingefroren hat (--pg-hero-h), bleibt
     die Bühne stabil — kein Springen durch ein-/ausblendende Mobil-Toolbars.
     Fallback 100dvh bis das (deferte) JS misst. */
  min-height: calc(var(--pg-hero-h, 100dvh) - var(--pg-topbar-h, 0px));
  display: flex;
  align-items: center;
  color: var(--pg-on-dark);
  /* Editorial-Layout: Typo links, Bild als Bühne rechts/dahinter. */
  text-align: left;
  overflow: hidden;
  /* Dunkle Bühne mit leichtem Tiefen-Verlauf — sichtbar oberhalb des
     Foto-Bands (siehe .pg-hero__bg). */
  background: radial-gradient(120% 90% at 50% 0%, var(--pg-bg-soft) 0%, var(--pg-bg-deep) 62%);
}
/* Das Quellfoto ist ein schmaler Streifen (1939×549). Vollflächiges `cover`
   müsste es massiv hochskalieren → wirkt unscharf. Stattdessen Bühnen-
   Komposition: dunkle Fläche mit Gold-Schimmer oben (dort sitzt die Typo),
   das Foto als „Regal"-Band am unteren Rand in nativer Skalierung (via
   aspect-ratio nie vertikal gestreckt), oben weich maskiert. */
.pg-hero__bg {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  aspect-ratio: 1939 / 549;
  min-height: 48%;
  max-height: 74%;
  background-size: cover;
  background-position: center bottom;
  /* Cineastisches Grading: tiefere Schatten, wärmerer Ton, weniger „Stock"-
     Kühle — hebt die Flakons vom flachen Original ab. */
  filter: contrast(1.14) saturate(0.85) brightness(0.9);
  /* Längere, weichere Maske: das Foto steigt eleganter aus dem Dunkel auf. */
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, 0.35) 32%, #000 66%);
  mask-image: linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, 0.35) 32%, #000 66%);
  transform-origin: 50% 100%;
  transform: scale(1.06);
  animation: pg-kenburns 18s ease-out forwards;
}
/* Warmer Duoton-Schleier bindet das Foto an die Marken-Palette (Antikgold /
   Espresso) und nimmt dem Stock-Foto den kühlen, „billigen" Cast. */
.pg-hero__bg::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(
      120% 130% at 50% 100%,
      rgba(210, 171, 102, 0.28) 0%,
      rgba(210, 171, 102, 0) 55%
    ),
    linear-gradient(180deg, rgba(10, 10, 10, 0) 30%, rgba(10, 10, 10, 0.45) 100%);
  mix-blend-mode: soft-light;
}
@keyframes pg-kenburns {
  to {
    transform: scale(1);
  }
}
.pg-hero__overlay {
  position: absolute;
  inset: 0;
  /* Gold-Schimmer oben (Luxus-Anmutung), Abdunklung oben für Navbar/Titel,
     Mitte weitgehend frei, unten sanfte Vignette über dem Flakon-Band,
     damit CTAs und Scroll-Cue lesbar bleiben. */
  background:
    /* Gold-Schimmer oben — Luxus-Anmutung */
    radial-gradient(
      110% 80% at 50% 0%,
      rgba(210, 171, 102, 0.12) 0%,
      rgba(210, 171, 102, 0) 45%
    ),
    /* Lesbarkeits-Scrim: Abdunklung der linken Seite, dort sitzt die Typo —
       die rechte Bildhälfte (Flakons) bleibt frei sichtbar. Bewusst leicht
       gehalten: gerade genug, um die helle Typo zu tragen, ohne das (helle)
       Bild abzudunkeln. */
    linear-gradient(
      90deg,
      rgba(14, 12, 9, 0.5) 0%,
      rgba(14, 12, 9, 0.24) 36%,
      rgba(14, 12, 9, 0) 62%
    ),
    /* Vertikale Bühne: leichte Abdunklung oben (Navbar/Titel), zarter Fuß. */
    linear-gradient(
      180deg,
      rgba(20, 17, 13, 0.34) 0%,
      rgba(20, 17, 13, 0.12) 36%,
      rgba(20, 17, 13, 0.06) 60%,
      rgba(20, 17, 13, 0.32) 100%
    ),
    /* Seitliche Rahmen-Vignette — bündelt den Blick, wirkt editorial/teuer. */
    radial-gradient(
      130% 125% at 50% 52%,
      rgba(0, 0, 0, 0) 55%,
      rgba(0, 0, 0, 0.24) 100%
    );
}
/* Feines Filmkorn über der gesamten Bühne — bindet Foto-Band und dunkle
   Fläche zusammen und lässt die Komposition „fotografisch" wirken. */
.pg-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  opacity: 0.05;
  mix-blend-mode: overlay;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}
.pg-hero--promotion-active::after {
  opacity: 0;
}
.pg-hero__inner {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: var(--pg-maxw);
  margin-inline: auto;
  /* Mehr Padding unten: schiebt die Typo auf die dunkle Bühne,
     das Flakon-Band darunter bleibt frei sichtbar. */
  padding: 4rem clamp(1.1rem, 4vw, 2.5rem) clamp(7rem, 18vh, 12rem);
}
.pg-hero__content {
  /* Breit genug, dass „FRAGRANCES" einzeilig bleibt (Sub/CTA begrenzen sich selbst). */
  max-width: 760px;
}
/* Eyebrow über dem Titel: kurze Goldlinie + gesperrter Marken-Claim. */
.pg-hero__brand {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  margin: 0 0 1.5rem;
  /* Helleres Gold als das Basis-Token: über der hellen Bild-Bühne sonst
     zu kontrastarm. Enger + weicher Schatten trägt die Buchstaben. */
  color: #ecd5a0;
  text-transform: uppercase;
  letter-spacing: 0.42em;
  font-size: 0.74rem;
  font-weight: 700;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.55), 0 1px 12px rgba(0, 0, 0, 0.5);
}
.pg-hero__brand-line {
  width: 42px;
  height: 1px;
  flex: none;
  background: linear-gradient(90deg, var(--pg-gold), rgba(210, 171, 102, 0));
}
/* Emblem als rundes Gold-Medaillon (das Quell-JPEG hat schwarzen Hintergrund,
   der so zum eleganten dunklen Badge mit Goldring wird). */
.pg-hero__emblem {
  width: clamp(104px, 14vw, 156px);
  height: clamp(104px, 14vw, 156px);
  object-fit: cover;
  border-radius: 50%;
  margin: 0 auto 1.4rem;
  display: block;
  border: 1px solid rgba(210, 171, 102, 0.7);
  box-shadow:
    0 0 0 6px rgba(210, 171, 102, 0.1),
    0 18px 40px -16px rgba(0, 0, 0, 0.7);
}
/* Titel im Editorial-Serifen-Stil (Cormorant), Weiß → Champagner-Verlauf. */
.pg-hero__title {
  margin: 0 0 1.3rem;
  font-family: var(--pg-font-head);
  font-weight: 600;
  letter-spacing: -0.005em;
  font-size: clamp(2.8rem, 6.6vw, 5.4rem);
  line-height: 1.02;
  /* Verlauf Weiß → zartes Champagner. Kein text-shadow (schiene durch die
     transparente Füllung durch); stattdessen dezenter drop-shadow-Filter. */
  background: linear-gradient(96deg, #ffffff 0%, #f6edd8 48%, #e9cf9b 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: #fff; /* Fallback ohne background-clip */
  /* Zwei Schatten: ein enger für scharfe Kanten (trägt die champagnerfarbenen
     Buchstaben auch über der hellen Bildhälfte), ein weicher fürs Volumen —
     erlaubt einen sehr leichten Scrim. */
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.38)) drop-shadow(0 3px 26px rgba(0, 0, 0, 0.42));
}
.pg-hero__sub {
  font-size: clamp(1.05rem, 2.4vw, 1.3rem);
  /* Etwas heller (nahezu Weiß) für angenehmeres Lesen; enger Schatten fürs
     Kanten-Definieren über der hellen Bildhälfte, weicher fürs Volumen. */
  color: #fbfaf7;
  max-width: 480px;
  margin: 0 0 2.2rem;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.42), 0 2px 18px rgba(0, 0, 0, 0.58);
}
.pg-hero__cta {
  display: flex;
  align-items: center;
  gap: 1rem 1.8rem;
  justify-content: flex-start;
  flex-wrap: wrap;
}
/* Mobil: beide CTAs volle Breite, gestapelt — ein Block aus zwei gleich
   breiten Flächen liest sich ruhiger als Platte + freistehender Link, und die
   Tap-Fläche bleibt für beide ≥48px hoch. */
@media (max-width: 767.98px) {
  .pg-hero__cta {
    --pg-cta-pad-y: 1.3em;
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
    width: 100%;
    max-width: 420px;
  }
  .pg-hero__cta .pg-btn {
    width: 100%;
  }
  /* Der sekundäre Link ist jetzt Text, kein Kasten: auf volle Breite gezogen
     liefe der Unterstrich weit über die Schrift hinaus. */
  .pg-hero__link {
    width: auto;
    align-self: flex-start;
    margin-top: 0.35rem;
  }
  .pg-hero--dalign-center .pg-hero__link {
    align-self: center;
  }
  /* Bei mittiger Typo muss der gedeckelte CTA-Block mitwandern — `justify-
     content: center` greift in der Spalte nur auf der Querachse. */
  .pg-hero--dalign-center .pg-hero__cta {
    margin-inline: auto;
  }
  /* Trust-Badges einzeilig wie im Mockup: kleiner, ohne Trennpunkte, über
     die volle Breite verteilt. (`.pg-hero`-Präfix: die Basis-Regeln stehen
     später im File und würden sonst bei gleicher Spezifität gewinnen.) */
  .pg-hero .pg-hero__trust {
    font-size: 0.7rem;
    gap: 0.5rem 0.4rem;
    justify-content: space-between;
    width: 100%;
  }
  .pg-hero .pg-hero__trust-item {
    gap: 0.3rem;
  }
  .pg-hero .pg-hero__trust-item + .pg-hero__trust-item::before {
    display: none;
  }
  .pg-hero .pg-hero__trust-ico svg {
    width: 14px;
    height: 14px;
  }
}
/* Sanfter, gestaffelter Auftritt der Hero-Elemente (einmalig beim Laden).
   Bewusst kurz & dezent — Luxus, kein Effekt-Feuerwerk. Entfällt komplett
   bei reduzierter Bewegung. */
@media (prefers-reduced-motion: no-preference) {
  .pg-hero__brand,
  .pg-hero__title,
  .pg-hero__sub,
  .pg-hero__cta,
  .pg-hero__trust {
    opacity: 0;
    transform: translateY(16px);
    animation: pg-hero-in 0.7s var(--pg-ease) forwards;
  }
  .pg-hero__title { animation-delay: 0.1s; }
  .pg-hero__sub { animation-delay: 0.2s; }
  .pg-hero__cta { animation-delay: 0.3s; }
  .pg-hero__trust { animation-delay: 0.42s; }
  /* Mobil: der Kauf-CTA („Kollektion entdecken") steht sofort — keine
     Staffelungs-Verzögerung für das wichtigste Element der Startseite. */
  @media (max-width: 767.98px) {
    .pg-hero__cta {
      opacity: 1;
      transform: none;
      animation: none;
    }
  }
}
@keyframes pg-hero-in {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* Vertrauens-Badges unter den Buttons (Originalware · Faire Preise · …). */
.pg-hero__trust {
  list-style: none;
  margin: 2rem 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem 1.4rem;
  /* Deutlich heller als das gedämpfte Basis-Token — über der hellen
     Bild-Bühne war der graue Ton kaum lesbar. */
  color: #f4f2ec;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}
.pg-hero__trust-item {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  white-space: nowrap;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.55), 0 1px 12px rgba(0, 0, 0, 0.6);
}
/* Trenn-Punkte zwischen den Badges (nur wenn nebeneinander). */
.pg-hero__trust-item + .pg-hero__trust-item::before {
  content: "·";
  margin-right: 1.4rem;
  margin-left: -0.9rem;
  color: rgba(226, 189, 126, 0.85);
}
.pg-hero__trust-ico {
  display: inline-flex;
  color: #ecd5a0;
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.5));
}
/* Variante „vollflächiges Foto" — greift, wenn im Customizer ein eigenes
   Hero-Bild gesetzt ist: Bild als cover über die ganze Bühne statt als
   unteres „Regal"-Band, Typo sitzt mittig-links (kein Band-Freiraum nötig). */
.pg-hero--photo .pg-hero__bg {
  top: 0;
  aspect-ratio: auto;
  min-height: 100%;
  max-height: none;
  background-position: center;
  -webkit-mask-image: none;
  mask-image: none;
  filter: contrast(1.06) saturate(0.95) brightness(0.92);
}
.pg-hero--photo .pg-hero__inner {
  padding-bottom: clamp(5rem, 12vh, 8rem);
}

/* ---- Desktop: geteilte Bühne (Typo links, Foto rechts) -----------------
   Statt Typo ÜBER dem Bild stehen beide nebeneinander. Der Gewinn ist
   Lesbarkeit: der Text braucht keinen abdunkelnden Scrim mehr, der bisher
   zwangsläufig auch das Foto matschig machte — er sitzt auf ruhigem Dunkel,
   das Foto bleibt unangetastet. Die Kante zwischen beiden ist kein Schnitt,
   sondern eine weiche Maske: das Bild steigt aus dem Dunkel auf.

   Nur für die Foto-Variante (eigenes Bild im Customizer). Das schmale
   Fallback-Asset (1939×549) würde in einer halbhohen Spalte extrem
   beschnitten und behält darum seine Band-Komposition.

   Die Selektoren tragen bewusst `.pg-hero--photo` bzw. `.pg-hero`: Media
   Queries erhöhen die Spezifität nicht, und die Regeln oben stehen auf
   derselben Stufe — ohne den Präfix würden sie hier gewinnen. */
@media (min-width: 900px) {
  .pg-hero--photo .pg-hero__bg {
    top: 0;
    bottom: 0;
    left: 38%;
    right: 0;
    aspect-ratio: auto;
    min-height: 0;
    max-height: none;
    background-size: cover;
    /* Bildausschnitt: rechtsbündig. Die Spalte ist fast quadratisch (≈1:1),
       das Motiv 16:9 — `cover` MUSS also rund 40 % der Breite wegschneiden,
       die Frage ist nur, auf welcher Seite.

       `right` verankert die rechte Bildkante an der rechten Viewport-Kante:
       dort wird nie etwas abgeschnitten. Der Beschnitt fällt komplett auf die
       linke Seite — also genau dorthin, wo die Maske das Bild ohnehin ins
       Dunkel auflöst und der Verlust unsichtbar bleibt.

       Bewusst KEIN handgerechneter Prozentwert: der müsste bei jedem neuen
       Hero-Bild nachgemessen werden. `right` gilt motivunabhängig. */
    background-position: var(--pg-hero-focus, right) center;
    /* Ken-Burns-Ursprung nach rechts. Die Intro-Animation startet auf
       scale(1.06) und wächst sonst um die Elementmitte — das schob das Bild
       ~28 px über die rechte Viewport-Kante, wo `overflow:hidden` des Hero es
       abschnitt. Mit `right center` bleibt die rechte Kante während der
       gesamten Animation fix; der Zoom läuft nach links ins Maskierte. */
    transform-origin: right center;
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.4) 10%, #000 26%);
    mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.4) 10%, #000 26%);
  }
  /* Der Scrim darf jetzt sehr viel leiser sein — er hat nur noch die Aufgabe,
     den Übergang zu binden, nicht mehr Text lesbar zu machen. */
  .pg-hero .pg-hero__overlay {
    background:
      radial-gradient(110% 80% at 50% 0%, rgba(210, 171, 102, 0.1) 0%, rgba(210, 171, 102, 0) 45%),
      linear-gradient(90deg, rgba(14, 12, 9, 0.72) 0%, rgba(14, 12, 9, 0.3) 30%, rgba(14, 12, 9, 0) 52%),
      linear-gradient(180deg, rgba(20, 17, 13, 0.3) 0%, rgba(20, 17, 13, 0.06) 40%, rgba(20, 17, 13, 0.28) 100%),
      radial-gradient(130% 125% at 50% 52%, rgba(0, 0, 0, 0) 58%, rgba(0, 0, 0, 0.22) 100%);
  }
  /* Vertikal mittig statt „über dem Bodenband" — das Band gibt es hier nicht. */
  .pg-hero .pg-hero__inner {
    padding-top: clamp(3rem, 8vh, 6rem);
    padding-bottom: clamp(3rem, 8vh, 6rem);
  }
  /* Textspalte endet vor der Bildkante, damit Zeilen nicht ins Foto laufen. */
  .pg-hero .pg-hero__content {
    max-width: min(52%, 620px);
  }
}

/* ---- Zwei Bilder: Desktop vs. Mobile (per Media-Query getauscht) -------- */
.pg-hero__bg--mobile {
  display: none;
}
@media (max-width: 767.98px) {
  .pg-hero__bg--desktop {
    display: none;
  }
  .pg-hero__bg--mobile {
    display: block;
  }
}

/* ---- Desktop-Ausrichtung: links (Standard) / mittig -------------------- */
.pg-hero--dalign-center .pg-hero__content {
  margin-inline: auto;
  text-align: center;
}
.pg-hero--dalign-center .pg-hero__brand,
.pg-hero--dalign-center .pg-hero__cta,
.pg-hero--dalign-center .pg-hero__trust {
  justify-content: center;
}
.pg-hero--dalign-center .pg-hero__sub {
  margin-inline: auto;
}
/* Bei mittiger Typo den einseitigen (linken) Lesbarkeits-Scrim durch eine
   zentrierte Abdunklung ersetzen. */
.pg-hero--dalign-center .pg-hero__overlay {
  background:
    radial-gradient(110% 80% at 50% 0%, rgba(210, 171, 102, 0.12) 0%, rgba(210, 171, 102, 0) 45%),
    linear-gradient(180deg, rgba(14, 12, 9, 0.32) 0%, rgba(14, 12, 9, 0.14) 40%, rgba(14, 12, 9, 0.1) 62%, rgba(14, 12, 9, 0.32) 100%),
    radial-gradient(120% 120% at 50% 50%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.24) 100%);
}

@media (max-width: 600px) {
  .pg-hero__brand {
    letter-spacing: 0.3em;
  }
  .pg-hero__brand-line {
    width: 30px;
  }
}

/* ---- Mobile-Ausrichtung: oben (Standard) / mittig / unten -------------- */
@media (max-width: 767.98px) {
  .pg-hero {
    min-height: calc(100vh - var(--pg-topbar-h, 0px));
    min-height: calc(100dvh - var(--pg-topbar-h, 0px));
    min-height: calc(var(--pg-hero-h, 100dvh) - var(--pg-topbar-h, 0px));
  }
  .pg-hero--malign-top {
    align-items: flex-start;
  }
  .pg-hero--malign-center {
    align-items: center;
  }
  .pg-hero--malign-bottom {
    align-items: flex-end;
  }
  /* Innen-Padding je Position: Text soll nicht am Rand kleben, aber dem
     Bildmotiv (Flakons) Platz lassen. */
  .pg-hero--malign-top .pg-hero__inner {
    /* Muss den fixierten Header (~77px) freihalten, dann sitzt der Text „oben". */
    padding-top: clamp(5.5rem, 14vh, 7.5rem);
    padding-bottom: 0;
  }
  .pg-hero--malign-bottom .pg-hero__inner {
    padding-top: 0;
    padding-bottom: clamp(3rem, 10vh, 6rem);
  }
  /* Scrim je Position: dunkel dort, wo der Text sitzt, klar über dem Motiv.
     Das Mittelfeld (~50–70 %) trägt zusätzlich, seit der sekundäre CTA dort
     ein reiner Textlink ohne Glasplatte ist — bei hellen Hero-Bildern (helle
     Flakons vor Sandstein) war er mit den früheren 6 % kaum lesbar. */
  .pg-hero--malign-top .pg-hero__overlay {
    background:
      radial-gradient(120% 55% at 50% 0%, rgba(210, 171, 102, 0.14) 0%, rgba(210, 171, 102, 0) 55%),
      linear-gradient(180deg, rgba(12, 10, 8, 0.52) 0%, rgba(12, 10, 8, 0.34) 30%, rgba(12, 10, 8, 0.28) 58%, rgba(12, 10, 8, 0.4) 100%);
  }
  .pg-hero--malign-bottom .pg-hero__overlay {
    background:
      linear-gradient(180deg, rgba(12, 10, 8, 0.2) 0%, rgba(12, 10, 8, 0.1) 40%, rgba(12, 10, 8, 0.42) 72%, rgba(12, 10, 8, 0.6) 100%);
  }
}
.pg-hero__scroll {
  position: absolute;
  bottom: 1.4rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  /* Bewusst dezent: kleines Gold-Label + pulsierende Haarlinie. */
  color: rgba(210, 171, 102, 0.75);
  font-size: 0.6rem;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
}
.pg-hero__scroll span {
  width: 1px;
  height: 34px;
  background: linear-gradient(var(--pg-gold), transparent);
  animation: pg-pulse 2s var(--pg-ease) infinite;
}
/* Mobil/Tablet liegt die fixe Bottom-Nav (58px) über dem unteren Hero-Rand —
   den Scroll-Hinweis darüber anheben. */
@media (max-width: 991px) {
  .pg-hero__scroll {
    bottom: calc(58px + env(safe-area-inset-bottom) + 1.1rem);
  }
}
@keyframes pg-pulse {
  0%,
  100% {
    opacity: 0.3;
    transform: scaleY(0.6);
  }
  50% {
    opacity: 1;
    transform: scaleY(1);
  }
}

/* ---- Hero-Carousel für laufende Aktionen ------------------------------
   Die visuelle Sprache bleibt bewusst dieselbe dunkle, editoriale Bühne wie
   beim Stamm-Hero. Navigation als kleine Messing-Konsole statt großer,
   bildüberlagernder Standard-Pfeile. */
.pg-hero__slides {
  position: absolute;
  inset: 0;
}
.pg-hero__slide {
  position: absolute;
  inset: 0;
  min-height: 100%;
  display: flex;
  align-items: center;
  color: var(--pg-on-dark);
  text-align: left;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.7s var(--pg-ease), visibility 0s linear 0.7s;
}
.pg-hero__slide.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition-delay: 0s;
}
.pg-hero__slide--promotion .pg-hero__bg {
  inset: 0;
  aspect-ratio: auto;
  min-height: 100%;
  max-height: none;
  background-size: cover;
  background-position: center;
  -webkit-mask-image: none;
  mask-image: none;
  filter: none;
  transform-origin: center;
}
.pg-hero__slide--promotion .pg-hero__bg::before {
  display: none;
}
.pg-hero__promo-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(
      90deg,
      rgba(7, 7, 7, 0.97) 0%,
      rgba(7, 7, 7, 0.91) 22%,
      rgba(7, 7, 7, 0.68) 39%,
      rgba(7, 7, 7, 0.24) 54%,
      rgba(7, 7, 7, 0) 70%
    ),
    linear-gradient(
      180deg,
      rgba(7, 7, 7, 0.3) 0%,
      rgba(7, 7, 7, 0) 34%,
      rgba(7, 7, 7, 0.16) 100%
    );
}
.pg-hero__promo-inner {
  position: relative;
  z-index: 2;
  width: 100%;
  min-height: 100%;
  max-width: var(--pg-maxw);
  margin-inline: auto;
  padding: clamp(7rem, 12vh, 9rem) clamp(1.1rem, 4vw, 2.5rem) clamp(9.5rem, 17vh, 11rem);
  display: flex;
  align-items: center;
}
.pg-hero__promo-content {
  width: min(49vw, 660px);
  color: #f7f1e7;
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.46);
}
.pg-hero__promo-kicker {
  margin: 0 0 clamp(1.3rem, 3vh, 2.3rem);
  color: #d4a859;
  font-size: clamp(0.72rem, 0.9vw, 0.9rem);
  font-weight: 600;
  letter-spacing: 0.42em;
  line-height: 1.3;
  text-transform: uppercase;
}
.pg-hero__promo-title {
  max-width: 650px;
  margin: 0;
  color: #f2eadf;
  font-family: var(--pg-font-head);
  font-size: clamp(3.8rem, 6.4vw, 6.8rem);
  font-weight: 400;
  letter-spacing: -0.035em;
  line-height: 0.9;
  text-wrap: balance;
}
.pg-hero__promo-divider {
  width: min(100%, 520px);
  height: 24px;
  margin: clamp(1.5rem, 3.5vh, 2.7rem) 0 clamp(1.35rem, 3vh, 2.25rem);
  display: flex;
  align-items: center;
  color: #b88c45;
}
.pg-hero__promo-divider::before,
.pg-hero__promo-divider::after {
  content: "";
  height: 1px;
  flex: 1;
  background: linear-gradient(90deg, transparent, currentColor);
}
.pg-hero__promo-divider::after {
  background: linear-gradient(90deg, currentColor, transparent);
}
.pg-hero__promo-divider i {
  width: 11px;
  height: 11px;
  margin-inline: 12px;
  border: 2px solid currentColor;
  transform: rotate(45deg);
}
.pg-hero__promo-validity {
  width: fit-content;
  min-height: 52px;
  margin: 0 0 clamp(1.5rem, 3vh, 2.25rem);
  padding: 0.8rem 1.65rem;
  display: flex;
  align-items: center;
  color: #d6aa5d;
  border: 1px solid rgba(201, 151, 71, 0.82);
  background: rgba(8, 8, 8, 0.24);
  font-size: clamp(0.72rem, 1vw, 0.9rem);
  font-weight: 600;
  letter-spacing: 0.24em;
  line-height: 1.25;
  text-transform: uppercase;
}
.pg-hero__promo-conditions {
  max-width: 640px;
  font-size: clamp(0.92rem, 1.25vw, 1.15rem);
  line-height: 1.5;
}
.pg-hero__promo-conditions p {
  margin: 0;
}
.pg-hero__promo-conditions p + p {
  margin-top: 0.75rem;
}
.pg-hero__promo-conditions .is-accent {
  color: #d4a859;
}
.pg-hero-nav {
  position: absolute;
  z-index: 5;
  left: 50%;
  bottom: 1.5rem;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.pg-hero__promo-cta {
  position: absolute;
  z-index: 4;
  left: 50%;
  bottom: clamp(4rem, 9vh, 6rem);
  transform: translateX(-50%);
  min-width: clamp(180px, 18vw, 240px);
  min-height: 52px;
  padding: 0.9rem 1.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: rgba(10, 9, 8, 0.88);
  box-shadow: 0 18px 34px -20px rgba(0, 0, 0, 0.95);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  line-height: 1;
  text-transform: uppercase;
  text-decoration: none;
  transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}
.pg-hero__promo-cta:hover {
  color: #17130d;
  border-color: var(--pg-gold);
  background: var(--pg-gold);
  transform: translateX(-50%) translateY(-3px);
}
.pg-hero__promo-cta:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}
.pg-hero__promo-cta svg {
  transition: transform 0.25s ease;
}
.pg-hero__promo-cta:hover svg {
  transform: translateX(4px);
}
.pg-hero-nav__dot {
  appearance: none;
  border: 0;
  border-radius: 50%;
  background: transparent;
  margin: 0;
  padding: 0;
  box-shadow: none;
}
.pg-hero-nav__dots {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.pg-hero-nav__dot {
  width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
  cursor: pointer;
}
.pg-hero-nav__dot-mark {
  display: block;
  width: 10px;
  height: 10px;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.62);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.78);
  transition: background-color 0.25s ease, transform 0.25s ease;
}
.pg-hero-nav__dot.is-active .pg-hero-nav__dot-mark {
  width: 16px;
  height: 16px;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.pg-hero-nav__progress {
  display: none;
  width: 16px;
  height: 16px;
  overflow: visible;
  filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.78));
}
.pg-hero-nav__dot.is-active .pg-hero-nav__progress {
  display: block;
}
.pg-hero-nav__progress-track,
.pg-hero-nav__progress-value {
  fill: none;
  stroke-width: 3;
}
.pg-hero-nav__progress-track {
  stroke: rgba(255, 255, 255, 0.28);
}
.pg-hero-nav__progress-value {
  stroke: #fff;
  stroke-linecap: round;
  stroke-dasharray: 100;
  stroke-dashoffset: 0;
  transform: rotate(-90deg);
  transform-origin: 50% 50%;
}
.pg-hero-nav__dot.is-active.is-progressing .pg-hero-nav__progress-value {
  animation: pg-hero-dot-progress 8s linear forwards;
}
.pg-hero-nav__dot:hover .pg-hero-nav__dot-mark {
  background: rgba(255, 255, 255, 0.78);
  transform: scale(1.15);
}
.pg-hero-nav__dot.is-active:hover .pg-hero-nav__dot-mark {
  background: transparent;
  transform: scale(1.08);
}
.pg-hero-nav__dot:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}
@keyframes pg-hero-dot-progress {
  from { stroke-dashoffset: 100; }
  to { stroke-dashoffset: 0; }
}
.pg-hero--carousel .pg-hero__scroll {
  display: none;
}
@media (max-width: 767.98px) {
  .pg-hero__promo-overlay {
    background:
      linear-gradient(
        180deg,
        rgba(7, 7, 7, 0.78) 0%,
        rgba(7, 7, 7, 0.58) 40%,
        rgba(7, 7, 7, 0.3) 62%,
        rgba(7, 7, 7, 0.72) 100%
      ),
      linear-gradient(90deg, rgba(7, 7, 7, 0.7) 0%, rgba(7, 7, 7, 0.12) 100%);
  }
  .pg-hero__promo-inner {
    padding: clamp(6.5rem, 14vh, 7.5rem) 1.15rem calc(58px + env(safe-area-inset-bottom) + 14rem);
    align-items: flex-start;
  }
  .pg-hero__promo-content {
    width: 100%;
    max-width: 34rem;
  }
  .pg-hero__promo-kicker {
    margin-bottom: 1.1rem;
    font-size: 0.68rem;
    letter-spacing: 0.34em;
  }
  .pg-hero__promo-title {
    max-width: 12ch;
    font-size: clamp(2.75rem, 12vw, 4rem);
    line-height: 0.94;
  }
  .pg-hero__promo-divider {
    width: min(88%, 330px);
    height: 18px;
    margin: 1.2rem 0 1rem;
  }
  .pg-hero__promo-divider i {
    width: 8px;
    height: 8px;
    margin-inline: 9px;
    border-width: 1px;
  }
  .pg-hero__promo-validity {
    min-height: 42px;
    margin-bottom: 1rem;
    padding: 0.65rem 1rem;
    font-size: 0.65rem;
    letter-spacing: 0.16em;
  }
  .pg-hero__promo-conditions {
    max-width: 31rem;
    font-size: clamp(0.82rem, 3.8vw, 0.98rem);
    line-height: 1.4;
  }
  .pg-hero__promo-conditions p + p {
    margin-top: 0.45rem;
  }
  .pg-hero-nav {
    /* Oberhalb von Bottom-Navigation, Newsletter-Pill und Deal-Badge. */
    bottom: calc(58px + env(safe-area-inset-bottom) + 5.3rem);
  }
  .pg-hero__promo-cta {
    bottom: calc(58px + env(safe-area-inset-bottom) + 10.3rem);
    width: min(280px, calc(100% - 2rem));
    min-width: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .pg-hero__slide {
    transition: none;
  }
  .pg-hero-nav__dot.is-active.is-progressing .pg-hero-nav__progress-value {
    animation: none;
  }
}

/* ====================== USP / Trust-Leiste ============================== */
.pg-usp {
  background: var(--pg-bg-soft);
  border-block: 1px solid var(--pg-line-dark);
}
.pg-usp__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem 1rem;
  padding: 2rem 0;
  text-align: center;
}
.pg-usp__item {
  color: var(--pg-on-dark);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
}
.pg-usp__icon {
  color: var(--pg-gold);
  width: 26px;
  height: 26px;
}
.pg-usp__t {
  font-weight: 600;
  font-size: 0.98rem;
}
.pg-usp__d {
  color: var(--pg-on-dark-2);
  font-size: 0.82rem;
}
@media (min-width: 760px) {
  .pg-usp__grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* ====================== Newsletter (Startseite) ======================== */
.pg-home-newsletter {
  position: relative;
  overflow: hidden;
  background: var(--pg-cream);
  color: var(--pg-ink);
  border-block: 1px solid var(--pg-line);
}
.pg-home-newsletter::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: clamp(5px, 0.7vw, 10px);
  background: linear-gradient(180deg, var(--pg-gold), var(--pg-gold-2));
}
.pg-home-newsletter__inner {
  display: grid;
  gap: clamp(2rem, 5vw, 5rem);
  align-items: center;
}
.pg-home-newsletter__copy {
  max-width: 38rem;
}
.pg-home-newsletter__copy .pg-eyebrow {
  color: var(--pg-gold-2);
}
.pg-home-newsletter__copy h2 {
  margin: 0.35rem 0 0.8rem;
  color: var(--pg-ink);
  font-size: clamp(2rem, 5vw, 3.35rem);
}
.pg-home-newsletter__copy p:last-child {
  margin: 0;
  color: var(--pg-ink-soft);
  font-size: 1.04rem;
  line-height: 1.7;
}
.pg-home-newsletter__form {
  min-width: 0;
}
.pg-home-newsletter__form > label {
  display: block;
  margin-bottom: 0.5rem;
  color: var(--pg-ink);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}
.pg-home-newsletter__fields {
  display: grid;
  gap: 0.65rem;
}
.pg-home-newsletter__fields input[type="email"] {
  width: 100%;
  min-height: 52px;
  margin: 0;
  padding: 0.85rem 1rem;
  background: var(--pg-surface);
  color: var(--pg-ink);
  border: 1px solid rgba(23, 23, 23, 0.28);
  border-radius: 0;
  box-shadow: none;
}
.pg-home-newsletter__fields input[type="email"]:focus {
  outline: none;
  border-color: var(--pg-gold-2);
  box-shadow: 0 0 0 3px rgba(127, 99, 32, 0.13);
}
.pg-home-newsletter__fields button {
  min-height: 52px;
  margin: 0;
  padding: 0.85rem 1.35rem;
  border: 1px solid var(--pg-bg);
  border-radius: 0;
  background: var(--pg-bg) !important;
  color: var(--pg-on-dark) !important;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  white-space: nowrap;
  cursor: pointer;
  transition: background 0.2s var(--pg-ease), border-color 0.2s var(--pg-ease), color 0.2s var(--pg-ease);
}
.pg-home-newsletter__fields button:hover,
.pg-home-newsletter__fields button:focus-visible {
  background: var(--pg-gold-2) !important;
  border-color: var(--pg-gold-2);
  color: #fff !important;
}
.pg-home-newsletter__fields button:disabled {
  cursor: wait;
  opacity: 0.7;
}
.pg-home-newsletter__legal,
.pg-home-newsletter__status {
  margin: 0.7rem 0 0;
  color: var(--pg-ink-soft);
  font-size: 0.74rem;
  line-height: 1.55;
}
.pg-home-newsletter__legal a {
  color: var(--pg-gold-2);
  text-decoration: underline;
  text-underline-offset: 0.16em;
}
.pg-home-newsletter__status {
  color: #25613f;
  font-weight: 700;
}
.pg-home-newsletter__status.is-error {
  color: #9f1c2d;
}
.pg-home-newsletter__hp {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
}
@media (min-width: 760px) {
  .pg-home-newsletter__inner {
    grid-template-columns: minmax(0, 0.9fr) minmax(360px, 1.1fr);
  }
  .pg-home-newsletter__fields {
    grid-template-columns: minmax(0, 1fr) auto;
  }
}

/* ====================== Produktkarten (WooCommerce) ====================
   Editorial-Look (Referenz-Design): randloses, hohes Bild ohne Rundung, darunter
   ein linksbündiger Textblock — Duftrichtung (Gold, Versalien), Marke, Name in
   der Serifenschrift, Preis rechts auf derselben Zeile, Pflichtangaben und eine
   abschließende „Duft entdecken"-Leiste über einer Haarlinie. Keine Rundungen:
   die Kante ist hier das Gestaltungsmittel. Die GANZE Karte ist klickbar
   (gestreckter Produktname-Link), Warenkorb-Button/Badges liegen darüber; der
   Button erscheint auf Desktop erst beim Hover (auf Touch immer sichtbar).    */
ul.products {
  display: grid !important;
  /* Mobil-Standard: EINE gerahmte Karte pro Reihe (volle Breite) — die Boutique-
     Karten wirken zu zweit auf schmalen Geräten gequetscht. Auf dem Shop kann per
     Umschalter auf 2 Spalten gewechselt werden (Klasse .pg-cols-2). */
  grid-template-columns: minmax(0, 1fr);
  /* Enge Spalten, luftige Reihen: ohne Rahmen trennt der Weißraum die Karten,
     und der Textblock jeder Karte braucht nach unten mehr Luft als zur Seite. */
  column-gap: clamp(0.9rem, 1.4vw, 1.15rem);
  row-gap: clamp(2.4rem, 4vw, 3.2rem);
  margin: 0 !important;
  padding: 0 !important;
  list-style: none;
}
/* Storefront-Clearfix-Pseudoelemente entfernen — sonst nimmt ::before die erste
   Grid-Zelle ein (erste Reihe hätte sonst nur 3 statt 4 Produkte). */
ul.products::before,
ul.products::after {
  content: none !important;
  display: none !important;
}

li.product.pg-card {
  position: relative;     /* Anker für den „ganze-Karte-klickbar"-Overlay-Link */
  float: none !important;
  width: auto !important;
  min-width: 0;          /* Grid-Item darf unter Inhalts-Mindestbreite schrumpfen */
  margin: 0 !important;
  clear: none !important;
  list-style: none;
  padding: 0;
  display: flex;
  flex-direction: column;
  background: transparent;  /* KEINE Kartenbox — Text nutzt die volle Spaltenbreite */
  border: 0;
  border-radius: 0;
  overflow: visible;
}
li.product.pg-card::before,
li.product.pg-card::after {
  display: none !important;
}
.pg-card__namelink {
  display: block;
  color: var(--pg-ink) !important;
  text-decoration: none;
}
.pg-card__namelink:hover .pg-card__name {
  color: var(--pg-gold-2);
}
/* Ganze Karte klickbar: der Produktname-Link wird über die gesamte Karte
   „gestreckt" (kein verschachteltes <a> nötig). Buttons/Badges liegen per
   z-index darüber und bleiben einzeln klickbar. */
.pg-card__namelink::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}

/* Bild: randlos, volle Breite, kein Padding/Margin. Quadratische Quellbilder
   → object-fit:cover füllt die Fläche ohne sichtbaren Beschnitt. */
.pg-card__media {
  position: relative;
  /* Hohes Format wie im Referenz-Design (Spaltenbreite ≈ 0,7 der Höhe). Auf
     schmalen Viewports zurück auf 4/5 — sonst füllt EIN Produkt den Screen. */
  aspect-ratio: 5 / 7;
  /* Warmer Beige-Verlauf als Bühne — trägt Bottles mit hellem/freigestelltem
     Hintergrund und gibt der Karte den warmen Boutique-Ton des Referenz-Designs. */
  background: linear-gradient(160deg, #f3ece0 0%, #ece0cd 100%);
  overflow: hidden;
  border: 0;
  border-radius: 0;
  transition: box-shadow 0.3s var(--pg-ease);
}
@media (max-width: 679px) {
  .pg-card__media {
    aspect-ratio: 4 / 5;
  }
}
li.product.pg-card:hover .pg-card__media {
  box-shadow: 0 18px 40px -22px rgba(23, 23, 23, 0.35);
}
.pg-card__imglink {
  display: block;
  width: 100%;
  height: 100%;
  line-height: 0;
}
.pg-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  padding: 0 !important;
  margin: 0 !important;
  display: block;
  transition: transform 0.6s var(--pg-ease);
}
li.product.pg-card:hover .pg-card__media img {
  transform: scale(1.05);
}
/* Badge = aufgelegtes Papier-Etikett: rechteckig, heller Grund, dunkle Versalien.
   Keine Gold-Fläche mehr — Gold trägt im Theme nie die Fläche (siehe CTA-Regel). */
.pg-card__badge {
  position: absolute;
  top: 0.85rem;
  left: 0.85rem;
  z-index: 3;
  background: var(--pg-surface, #fbfaf7);
  color: var(--pg-ink);
  border-radius: 0;
  padding: 0.62em 0.9em;
  font-size: 0.6rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
/* Rabatt-Badge für reduzierte Produkte — kräftiges Rot, weiße Schrift. Der
   Preisvorteil ist ein Signal und darf die Ruhe der Karte bewusst brechen. */
.pg-card__badge--sale {
  background: #b01124;
  color: #fff;
  letter-spacing: 0.08em;
  font-weight: 700;
}
.pg-card__atc {
  position: absolute;
  top: 0.7rem;
  right: 0.7rem;
  z-index: 3;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--pg-ink);
  cursor: pointer;
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid rgba(18, 18, 18, 0.08);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  transition:
    color 0.2s var(--pg-ease),
    transform 0.2s var(--pg-ease),
    background 0.2s var(--pg-ease);
}
.pg-card__atc svg {
  width: 19px;
  height: 19px;
}
.pg-card__atc:hover {
  color: var(--pg-gold-2);
  transform: scale(1.08);
  background: var(--pg-surface);
}
/* Kein hässlicher Default-Fokusring nach dem Mausklick (der Drawer öffnet ohnehin);
   Tastatur-Fokus bleibt über :focus-visible erhalten (Barrierefreiheit). */
.pg-card__atc:focus {
  outline: none;
}
.pg-card__atc:focus-visible {
  outline: 2px solid var(--pg-gold-2);
  outline-offset: 2px;
}
/* Desktop (echter Hover): Quick-Add erst beim Überfahren der Karte einblenden —
   ruhigeres Grid, wie bei den großen Shops. Auf Touch bleibt er immer sichtbar. */
@media (hover: hover) and (pointer: fine) {
  .pg-card__atc {
    opacity: 0;
    transform: translateY(6px);
    transition:
      opacity 0.25s var(--pg-ease),
      transform 0.25s var(--pg-ease),
      color 0.2s var(--pg-ease),
      background 0.2s var(--pg-ease);
  }
  li.product.pg-card:hover .pg-card__atc,
  li.product.pg-card:focus-within .pg-card__atc {
    opacity: 1;
    transform: none;
  }
  .pg-card__atc:hover {
    transform: scale(1.08);
  }
}
/* WooCommerce hängt nach dem AJAX-„In den Warenkorb" einen „Warenkorb ansehen"-
   Link (.added_to_cart) an den Button. Überflüssig — der Warenkorb-Drawer öffnet
   sich automatisch — und in der Karte erscheint er als dunkler Kasten. Ausblenden. */
.pg-card .added_to_cart {
  display: none !important;
}

/* Text linksbündig zur Bildkante, ruhig & wertig — ohne Box direkt auf der
   Seitenfläche (Editorial-Look). */
.pg-card__body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  padding: 1.05rem 0 0;  /* bündig zur Bildkante — kein seitliches Padding */
  text-align: left;
  overflow-wrap: break-word;
}
/* Kopfzeile: Marke + Name links, Preis rechts. Der Preis sitzt per Grundlinie
   auf der Namenszeile (align-self + Ausgleich der Markenzeile darüber). */
.pg-card__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.8rem;
}
.pg-card__ident {
  min-width: 0;
}
/* Marke: Einordnungszeile zwischen Duftrichtung (Gold, oben) und Duftnamen.
   Bewusst gedeckt statt golden — sonst konkurrieren zwei goldene Versalien-
   Zeilen direkt übereinander und die Duftrichtung verliert ihren Vorrang. */
.pg-card__brand {
  display: block;
  max-width: 100%;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--pg-ink-soft);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pg-card__name {
  font-family: var(--pg-font-head);
  font-size: clamp(1.15rem, 1.5vw, 1.38rem);
  font-weight: 500;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--pg-ink);
  margin: 0.2rem 0 0 !important;
  padding: 0 !important;
  line-height: 1.15;
  /* Höchstens zwei Zeilen: Fremdmarken-Namen wie „Al Haramain Amber Oud Aqua
     Dubai 100ml" laufen sonst über vier Zeilen und sprengen die Kopfzeile.
     Der volle Name steht im title-Attribut und auf der Produktseite. */
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: color 0.2s var(--pg-ease);
}
.pg-card__price {
  flex: 0 0 auto;
  font-family: var(--pg-font-head);
  font-size: clamp(0.98rem, 1.15vw, 1.1rem);
  font-weight: 500;
  line-height: 1.15;
  white-space: nowrap;
  color: var(--pg-ink);
}
.pg-card__price .woocommerce-Price-amount {
  color: var(--pg-ink) !important;
  font-weight: 500;
}
/* Reduziert: Streichpreis über den aktuellen Preis, damit die Kopfzeile bei
   langen Namen nicht durch zwei nebeneinanderliegende Beträge gesprengt wird. */
.pg-card__price del {
  display: block;
  opacity: 0.5;
  font-size: 0.8em;
  font-weight: 400;
}
.pg-card__price ins {
  text-decoration: none;
}
/* Grundpreis + Rechtshinweis in einer Zeile — Pflichtangaben, aber leise. */
.pg-card__meta {
  display: block;
  font-size: 0.7rem;
  line-height: 1.45;
  color: var(--pg-ink-soft);
  opacity: 0.8;
  margin-top: 0.5rem;
}
/* Abschlussleiste über einer Haarlinie — das kantige Gegenstück zum Bild.
   Kein eigener Link: der gestreckte Namens-Link deckt die ganze Karte ab. */
.pg-card__cta {
  margin-top: auto;
  padding-top: 0.85rem;
  padding-bottom: 0.1rem;
  min-height: 2.9rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.6rem;
  border-top: 1px solid var(--pg-line, rgba(18, 18, 18, 0.14));
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--pg-ink);
  transition: color 0.2s var(--pg-ease);
}
.pg-card__cta svg {
  flex: 0 0 auto;
  transition: transform 0.25s var(--pg-ease);
}
li.product.pg-card:hover .pg-card__cta {
  color: var(--pg-gold-2);
}
li.product.pg-card:hover .pg-card__cta svg {
  transform: translateX(4px);
}
.pg-card__meta .woocommerce-Price-amount {
  font-weight: 400;
}
/* B2C-Bestand: Knappheits-Hinweis auf Karte („Nur noch X …") + Produktseite. */
.pg-card__stock,
.pg-stock-note {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: 0.45rem;
  font-size: 0.74rem;
  font-weight: 600;
}
.pg-card__stock::before,
.pg-stock-note::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: currentColor;
  flex: 0 0 auto;
}
.pg-card__stock--low,
.pg-stock-note--low { color: #9a6a12; }
.pg-card__stock--out,
.pg-stock-note--out { color: #b01124; }
.pg-stock-note { font-size: 0.85rem; }

/* Mobil wählbar: 2 Produkte pro Reihe (Opt-in; Standard ist 1). Klasse setzt
   das Inline-Script/JS des Shop-Umschalters. */
@media (max-width: 679px) {
  .pg-cols-2 ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Bestseller-Startseite: Spalten-Umschalter über dem Grid — nur mobil, wo die
   Wahl etwas ändert (Desktop = fixe 3/4 Spalten). Rechtsbündig, dezent. */
.pg-bestsellers__toolbar {
  display: none;
}
@media (max-width: 679px) {
  .pg-bestsellers__toolbar {
    display: flex;
    justify-content: flex-end;
    margin: 0 0 1rem;
  }
}
@media (min-width: 680px) {
  ul.products {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (min-width: 1000px) {
  ul.products {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* Spalten-Umschalter: bewusst unauffällig — kleine Outline-Glyphen neben der
   Sortierung, nur auf schmalen Viewports (dort, wo die Wahl etwas ändert). */
.pg-view-toggle {
  display: none;
  align-items: center;
  gap: 0.15rem;
}
@media (max-width: 679px) {
  .pg-view-toggle {
    display: inline-flex;
  }
}
.pg-view-toggle__btn {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  color: var(--pg-ink-soft);
  opacity: 0.45;
  cursor: pointer;
  transition: opacity 0.2s var(--pg-ease), color 0.2s var(--pg-ease);
}
.pg-view-toggle__btn svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.4;
}
.pg-view-toggle__btn.is-active {
  color: var(--pg-ink);
  opacity: 1;
}
.pg-view-toggle__btn:focus-visible {
  outline: 2px solid var(--pg-gold-2);
  outline-offset: 2px;
}

/* ====================== Über uns ======================================= */
.pg-about {
  background: var(--pg-bg);
  color: var(--pg-on-dark);
}
.pg-about__inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(2rem, 5vw, 4rem);
  align-items: start;
}
.pg-about h2 {
  color: var(--pg-on-dark);
  font-size: clamp(2rem, 4.5vw, 3rem);
}
.pg-about p {
  color: var(--pg-on-dark-2);
  margin: 0 0 1.1rem;
}
.pg-about__lead {
  font-size: 1.15rem;
  color: var(--pg-on-dark);
}
.pg-about__sub {
  color: var(--pg-on-dark);
  font-size: 1.35rem;
  margin: 2rem 0 0.9rem;
}
.pg-about__sub strong {
  color: var(--pg-gold);
}
.pg-about__outro {
  margin-top: 2rem;
  padding-top: 1.4rem;
  border-top: 1px solid var(--pg-line-dark);
}
.pg-about__claim {
  display: inline-block;
  margin-top: 0.4rem;
  color: var(--pg-gold);
  font-size: 1.25rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.pg-about__media {
  position: relative;
  border-radius: 0;
  overflow: hidden;
  box-shadow: var(--pg-shadow);
  border: 1px solid var(--pg-line-dark);
}
.pg-about__media img {
  display: block;
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
}
.pg-about__badge {
  position: absolute;
  bottom: 1rem;
  left: 1rem;
  background: rgba(14, 13, 12, 0.85);
  backdrop-filter: blur(6px);
  border: 1px solid var(--pg-line-dark);
  color: var(--pg-on-dark);
  padding: 0.7rem 1.1rem;
  border-radius: 0;
  font-size: 0.85rem;
}
.pg-about__badge b {
  color: var(--pg-gold);
}
@media (min-width: 880px) {
  .pg-about__inner {
    grid-template-columns: 1fr 1fr;
  }
  .pg-about__inner.pg-about--rev .pg-about__media {
    order: -1;
  }
  /* Der Über-uns-Text ist deutlich höher als das Bild — sticky hält das
     Bild auf ganzer Textlänge im Blick, statt es oben stehen zu lassen. */
  .pg-about__media {
    position: sticky;
    top: calc(var(--pg-header-h, 64px) + var(--pg-topbar-off, 0px) + 2rem);
  }
}

/* ====================== Trust / Zahlen ================================= */
.pg-trust {
  background: var(--pg-cream);
}
.pg-trust__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem 1rem;
  text-align: center;
}
.pg-trust__num {
  font-family: var(--pg-font-head);
  font-size: clamp(2.4rem, 5vw, 3.4rem);
  color: var(--pg-gold-2);
  line-height: 1;
}
.pg-trust__lbl {
  color: var(--pg-ink-soft);
  font-size: 0.9rem;
  letter-spacing: 0.04em;
  margin-top: 0.4rem;
}
@media (min-width: 760px) {
  .pg-trust__grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* ====================== Instagram-Reels ================================ */
.pg-instagram {
  background: var(--pg-bg);
  color: var(--pg-on-dark);
}
.pg-instagram .pg-section__title {
  color: var(--pg-on-dark);
}
.pg-instagram .pg-section__lead {
  color: var(--pg-on-dark-2);
}
.pg-instagram .pg-eyebrow {
  color: var(--pg-gold);
}
.pg-reels {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.8rem;
}
.pg-reel {
  position: relative;
  display: block;
  aspect-ratio: 1/1;
  overflow: hidden;
  border-radius: 0;
  background: var(--pg-bg-soft);
  border: 1px solid var(--pg-line-dark);
}
.pg-reel__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s var(--pg-ease);
}
.pg-reel:hover .pg-reel__img {
  transform: scale(1.08);
}
.pg-reel__badge {
  position: absolute;
  top: 0.55rem;
  right: 0.65rem;
  color: #fff;
  font-size: 0.95rem;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.7);
}
.pg-reels--placeholder {
  text-align: center;
  padding: 2.4rem;
  border: 1px dashed var(--pg-line-dark);
  border-radius: 0;
}
.pg-reels__hint {
  color: var(--pg-on-dark-2);
  margin: 0;
}
@media (min-width: 620px) {
  .pg-reels {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (min-width: 980px) {
  .pg-reels {
    grid-template-columns: repeat(6, 1fr);
  }
}

/* „Folge uns"-Karten (Instagram + TikTok) */
.pg-follow {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  max-width: 720px;
  margin: 0 auto;
}
.pg-follow__card {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.1rem 1.3rem;
  border-radius: 0;
  color: #fff !important;
  text-decoration: none;
  transition:
    transform 0.25s var(--pg-ease),
    box-shadow 0.25s var(--pg-ease);
  position: relative;
  overflow: hidden;
}
.pg-follow__card:hover {
  transform: translateY(-3px);
  box-shadow: var(--pg-shadow);
}
.pg-follow__card--ig {
  background: linear-gradient(120deg, #f9ce34 0%, #ee2a7b 45%, #6228d7 100%);
}
.pg-follow__card--tt {
  background: #0f0f10;
  border: 1px solid rgba(255, 255, 255, 0.12);
}
.pg-follow__icon {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.18);
  flex: 0 0 auto;
}
.pg-follow__meta {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}
.pg-follow__net {
  font-family: var(--pg-font-head);
  font-size: 1.3rem;
  font-weight: 600;
}
.pg-follow__handle {
  font-size: 0.9rem;
  opacity: 0.85;
}
.pg-follow__cta {
  margin-left: auto;
  font-weight: 600;
  font-size: 0.9rem;
  padding: 0.5em 1.2em;
  border: 1px solid rgba(255, 255, 255, 0.6);
  border-radius: 0;
}
.pg-follow__card:hover .pg-follow__cta {
  background: var(--pg-surface);
  color: #101010;
  border-color: #fff;
}
@media (min-width: 680px) {
  .pg-follow {
    grid-template-columns: 1fr 1fr;
  }
}

/* DSGVO-gated Embeds */
.pg-embeds {
  margin: 0 auto 1.5rem;
  max-width: 980px;
}
.pg-embeds__consent {
  text-align: center;
  padding: clamp(1.5rem, 4vw, 2.6rem);
  border: 1px dashed var(--pg-line-dark);
  border-radius: 0;
  background: var(--pg-bg-soft);
}
.pg-embeds__consent p {
  color: var(--pg-on-dark-2);
  margin: 0 auto 1.2rem;
  max-width: 520px;
}
.pg-embeds__remember {
  display: block;
  margin-top: 0.9rem;
  font-size: 0.82rem;
  color: var(--pg-on-dark-2);
}
.pg-embeds__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.2rem;
}
.pg-embeds__grid .pg-embed {
  margin: 0 auto !important;
  max-width: 340px;
  width: 100%;
}
@media (min-width: 700px) {
  .pg-embeds__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 1000px) {
  .pg-embeds__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* ====================== Footer ========================================= */
.site-footer {
  background: var(--pg-bg) !important;
  color: var(--pg-on-dark-2) !important;
  border-top: 1px solid var(--pg-line-dark);
  padding: 0 !important;
}
.site-footer .col-full {
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.site-footer a {
  color: var(--pg-on-dark) !important;
}
.site-footer a:hover {
  color: var(--pg-gold) !important;
}

.pg-footer {
  padding: clamp(2.6rem, 6vw, 4.5rem) 0 2.5rem;
}
.pg-footer__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.2rem;
}
.pg-footer__brand {
  max-width: 360px;
}
.pg-footer__emblem {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  border: 1px solid var(--pg-line-dark);
  object-fit: cover;
}
.pg-footer__blurb {
  color: var(--pg-on-dark-2);
  font-size: 0.92rem;
  margin: 0.9rem 0 1.1rem;
  line-height: 1.6;
}
.pg-footer__social {
  display: flex;
  gap: 0.7rem;
}
.pg-footer__social a {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid var(--pg-line-dark);
  color: var(--pg-on-dark) !important;
  transition: all 0.25s var(--pg-ease);
}
.pg-footer__social a:hover {
  background: var(--pg-gold);
  color: #1f1f1d !important;
  border-color: var(--pg-gold);
  transform: translateY(-2px);
}
.pg-footer__col h4 {
  font-family: var(--pg-font-head);
  font-size: 1.15rem;
  color: var(--pg-on-dark);
  margin: 0 0 0.9rem;
}
.pg-footer__col ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.55rem;
}
.pg-footer__col a {
  color: var(--pg-on-dark-2) !important;
  font-size: 0.92rem;
}
.pg-footer__col a:hover {
  color: var(--pg-gold) !important;
  padding-left: 3px;
}
@media (min-width: 600px) {
  .pg-footer__grid {
    grid-template-columns: 1fr 1fr;
    gap: 2rem 2.4rem;
  }
}
@media (min-width: 900px) {
  .pg-footer__grid {
    grid-template-columns: 1.5fr 1fr 1fr 1fr 1.3fr;
    gap: 2.2rem;
  }
}

/* Footer: Kontakt-Spalte */
.pg-footer__address {
  font-style: normal;
  display: grid;
  gap: 0.45rem;
  margin: 0 0 1rem;
}
.pg-footer__address a {
  color: var(--pg-on-dark-2) !important;
  font-size: 0.92rem;
  line-height: 1.5;
}
.pg-footer__address a:hover {
  color: var(--pg-gold) !important;
}
.pg-footer__hours {
  display: grid;
  gap: 0.3rem;
  margin: 0 0 1rem;
  font-size: 0.86rem;
  color: var(--pg-on-dark-2);
}
.pg-footer__hours strong {
  color: var(--pg-on-dark);
  font-weight: 600;
  margin-right: 0.4rem;
}
.pg-footer__contact-link {
  font-size: 0.88rem;
  color: var(--pg-gold) !important;
  font-weight: 600;
}
.pg-footer__contact-link:hover {
  padding-left: 3px;
}

.pg-footer-bottom {
  border-top: 1px solid var(--pg-line-dark);
}
.pg-footer-bottom__inner {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem 1.5rem;
  align-items: center;
  justify-content: space-between;
  padding: 1.2rem 0;
  font-size: 0.82rem;
  color: var(--pg-on-dark-2);
}
.pg-footer-pay .pg-co-payicons {
  align-items: center;
  justify-content: center;
}
.pg-footer-pay .pg-co-payicon svg {
  width: 42px;
  height: 26px;
}
.pg-cookie-reopen {
  background: none;
  border: 0;
  color: var(--pg-on-dark-2);
  font: inherit;
  cursor: pointer;
  text-decoration: underline;
  padding: 0;
}
.pg-cookie-reopen:hover {
  color: var(--pg-gold);
}

/* Dezenter „Made by"-Credit unter der Bottom-Bar */
.pg-footer-credit {
  display: block;
  padding: 0 0 1.3rem;
  text-align: center;
  font-size: 0.74rem;
  letter-spacing: 0.04em;
  color: var(--pg-on-dark-2);
}
.pg-footer-credit a {
  color: var(--pg-on-dark-2);
  text-decoration: none;
  font-weight: 600;
  transition: color 0.2s var(--pg-ease);
}
.pg-footer-credit a:hover {
  color: var(--pg-gold);
}

/* ---- Germanized: „Vertrag widerrufen"-Button (EU OWB) ---------------------
   Liegt ganz unten im Footer (storefront_footer, Prio 20). Standard ist der
   helle Storefront-.button — hier zum dezenten, themekonformen Ghost-Button
   auf der dunklen Fläche umgestaltet. */
.eu-owb-order-withdraw-from-contract-button {
  margin: 0;
  padding: 1.4rem 1rem 2rem;
  text-align: center;
  border-top: 1px solid var(--pg-line-dark);
}
.eu-owb-order-withdraw-from-contract-button .button {
  display: inline-block;
  width: auto;
  min-height: 0;
  margin: 0;
  padding: 0.6rem 1.5rem;
  background: transparent !important;
  color: var(--pg-on-dark-2) !important;
  border: 1px solid var(--pg-line-dark);
  border-radius: 0;
  font-family: var(--pg-font-body);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1.2;
  text-decoration: none;
  text-transform: none;
  box-shadow: none;
  transition: color 0.2s var(--pg-ease), border-color 0.2s var(--pg-ease),
    background 0.2s var(--pg-ease);
}
.eu-owb-order-withdraw-from-contract-button .button:hover,
.eu-owb-order-withdraw-from-contract-button .button:focus-visible {
  background: var(--pg-gold-soft) !important;
  color: var(--pg-gold) !important;
  border-color: var(--pg-gold);
  box-shadow: none;
}

/* ====================== Cookie-Banner ================================== */
.pg-cookie {
  position: fixed;
  inset: auto 0 0;
  z-index: 9999;
  width: 100%;
  background:
    linear-gradient(110deg, rgba(210, 171, 102, 0.075), transparent 42%),
    rgba(14, 14, 14, 0.985);
  color: var(--pg-on-dark);
  border: 0;
  border-top: 1px solid rgba(210, 171, 102, 0.42);
  border-radius: 0;
  box-shadow: 0 -24px 70px -28px rgba(0, 0, 0, 0.92);
  animation: pg-cookie-in 0.45s var(--pg-ease) both;
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
}
@keyframes pg-cookie-in {
  from {
    opacity: 0;
    transform: translateY(100%);
  }
}
.pg-cookie[hidden] {
  display: none;
}
.pg-cookie__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(1.5rem, 4vw, 4.5rem);
  align-items: center;
  max-width: var(--pg-maxw);
  margin: 0 auto;
  padding: clamp(1.15rem, 2.5vw, 1.8rem) clamp(1.1rem, 4vw, 2.5rem)
    max(clamp(1.15rem, 2.5vw, 1.8rem), env(safe-area-inset-bottom));
}
.pg-cookie__text {
  position: relative;
  max-width: 52rem;
  padding-left: clamp(1rem, 2vw, 1.5rem);
}
.pg-cookie__text::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 2px;
  background: linear-gradient(180deg, var(--pg-gold), rgba(210, 171, 102, 0.18));
}
.pg-cookie__text strong {
  display: block;
  font-family: var(--pg-font-head);
  font-size: clamp(1.4rem, 2.6vw, 1.9rem);
  font-weight: 600;
  line-height: 1.05;
  color: var(--pg-on-dark);
}
.pg-cookie__text p {
  color: var(--pg-on-dark-2);
  font-size: clamp(0.82rem, 1.3vw, 0.94rem);
  margin: 0.45rem 0 0;
  line-height: 1.6;
}
.pg-cookie__text a {
  color: var(--pg-gold) !important;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}
.pg-cookie__actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(9.5rem, 1fr));
  gap: 0.65rem;
  width: min(100%, 25rem);
}
.pg-cookie__actions .pg-btn {
  justify-content: center;
  min-height: 52px;
  margin: 0;
  padding: 0.8rem 1.15rem;
  border: 1px solid rgba(242, 240, 234, 0.3);
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  line-height: 1.2;
  text-align: center;
  text-transform: uppercase;
  white-space: nowrap;
  transition: color 0.2s var(--pg-ease), background 0.2s var(--pg-ease),
    border-color 0.2s var(--pg-ease), transform 0.2s var(--pg-ease);
}
.pg-cookie__actions [data-pg-cookie="necessary"] {
  background: transparent !important;
  color: var(--pg-on-dark) !important;
}
.pg-cookie__actions [data-pg-cookie="necessary"]:hover,
.pg-cookie__actions [data-pg-cookie="necessary"]:focus-visible {
  background: rgba(242, 240, 234, 0.08) !important;
  border-color: var(--pg-on-dark);
}
.pg-cookie__actions [data-pg-cookie="all"] {
  background: linear-gradient(120deg, var(--pg-gold), #e4c384) !important;
  color: #111 !important;
  border-color: var(--pg-gold);
}
.pg-cookie__actions [data-pg-cookie="all"]:hover,
.pg-cookie__actions [data-pg-cookie="all"]:focus-visible {
  background: var(--pg-on-dark) !important;
  color: #111 !important;
  border-color: var(--pg-on-dark);
  transform: translateY(-1px);
}
.pg-cookie__actions .pg-btn:focus-visible {
  outline: 2px solid var(--pg-gold);
  outline-offset: 3px;
}
@media (max-width: 760px) {
  .pg-cookie__inner {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
  .pg-cookie__actions {
    width: 100%;
  }
}
@media (max-width: 420px) {
  .pg-cookie__actions {
    grid-template-columns: 1fr;
  }
  .pg-cookie__actions .pg-btn {
    min-height: 48px;
  }
}

/* ====================== Gästebuch ====================================== */
.pg-gb-wrap {
  max-width: 760px;
  margin-inline: auto;
}
.pg-gb-form {
  background: var(--pg-surface);
  border: 1px solid var(--pg-line);
  border-radius: 0;
  padding: clamp(1.3rem, 3vw, 2rem);
  margin: 0 0 2.5rem;
  box-shadow: var(--pg-shadow);
}
.pg-gb-form label {
  display: block;
  font-weight: 600;
  margin-bottom: 0.35rem;
  color: var(--pg-ink);
}
.pg-gb-form input[type="text"],
.pg-gb-form textarea {
  width: 100%;
  border: 1px solid var(--pg-line);
  border-radius: 0;
  padding: 0.8em 0.9em;
  font: inherit;
  background: var(--pg-cream);
  color: var(--pg-ink);
}
.pg-gb-form input[type="text"]:focus,
.pg-gb-form textarea:focus {
  outline: 2px solid var(--pg-gold);
  border-color: var(--pg-gold);
}
.pg-gb-form p {
  margin: 0 0 1rem;
}
.pg-gb-consent label {
  font-weight: 400;
  display: flex;
  gap: 0.55rem;
  align-items: flex-start;
  font-size: 0.92rem;
  color: var(--pg-ink-soft);
}
.pg-hp {
  position: absolute;
  left: -9999px;
  height: 0;
  overflow: hidden;
}
.pg-gb-notice {
  border-radius: 0;
  padding: 0.85rem 1.1rem;
  margin-bottom: 1.2rem;
  font-weight: 500;
}
.pg-gb-notice--success {
  background: rgba(63, 130, 80, 0.1);
  border: 1px solid rgba(63, 130, 80, 0.28);
  color: #1f6b32;
}
.pg-gb-notice--error {
  background: rgba(180, 50, 50, 0.08);
  border: 1px solid rgba(180, 50, 50, 0.26);
  color: #9b2b2b;
}
.pg-gb-entries {
  display: grid;
  gap: 1rem;
}
.pg-gb-entry {
  background: var(--pg-surface);
  border: 1px solid var(--pg-line);
  border-radius: 0;
  padding: 1.2rem 1.4rem;
}
.pg-gb-entry__head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  margin-bottom: 0.4rem;
}
.pg-gb-entry__author {
  font-weight: 600;
  font-family: var(--pg-font-head);
  font-size: 1.2rem;
  color: var(--pg-ink);
}
.pg-gb-entry__date {
  color: var(--pg-ink-soft);
  font-size: 0.8rem;
}
.pg-gb-entry__body {
  color: var(--pg-ink);
  line-height: 1.6;
}
.pg-gb-empty {
  color: var(--pg-ink-soft);
  text-align: center;
}

/* ====================== Scroll-Reveal ================================= */
.pg-reveal {
  opacity: 0;
  transform: translateY(26px);
  transition:
    opacity 0.7s var(--pg-ease),
    transform 0.7s var(--pg-ease);
}
.pg-reveal.is-in {
  opacity: 1;
  transform: none;
}
.pg-reveal[data-d="1"] {
  transition-delay: 0.08s;
}
.pg-reveal[data-d="2"] {
  transition-delay: 0.16s;
}
.pg-reveal[data-d="3"] {
  transition-delay: 0.24s;
}
@media (prefers-reduced-motion: reduce) {
  .pg-reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .pg-hero__bg {
    animation: none;
    transform: none;
  }
}

/* ====================== Shop-Toolbar + Marke auf Karte ================= */
/* Storefronts eigene Sortier-/Anzahl-Ausgabe ausblenden — unsere Toolbar ersetzt sie. */
.storefront-sorting {
  display: none !important;
}
.woocommerce-result-count {
  display: none !important;
}

.pg-shop-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin: 0 0 2rem;
  padding-bottom: 1.2rem;
  border-bottom: 1px solid var(--pg-line);
}
/* Links: Filter-Button mit Produktanzahl darunter. */
.pg-shop-toolbar__left {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.15rem;
}
.pg-filter-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  background: none;
  border: 0;
  font: inherit;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--pg-ink);
  cursor: pointer;
  padding: 0.2em 0.2em;
}
.pg-filter-btn:hover {
  color: var(--pg-gold-2);
}
.pg-shop-count {
  padding-left: 0.2em;
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--pg-ink-soft);
}
/* Rechts: Sortierung als theme-konformes Custom-Dropdown.
   Trigger: breit = Text + Chevron, Mobil = nur Icon. Menü: eigenes Panel. */
.pg-shop-toolbar__sort {
  display: flex;
  align-items: center;
}
.pg-sort {
  position: relative;
}
.pg-sort__form {
  display: none;   /* nur fürs Submit – wird per JS gesendet */
}
.pg-sort__toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  background: none;
  border: 0;
  font: inherit;
  font-weight: 600;
  font-size: 0.82rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--pg-ink);
  cursor: pointer;
  padding: 0.4em 0.2em;
  transition: color 0.2s var(--pg-ease);
}
.pg-sort__toggle:hover {
  color: var(--pg-gold-2);
}
.pg-sort__ico {
  display: none;        /* nur Mobil */
}
.pg-sort__chevron {
  display: inline-flex;
  transition: transform 0.25s var(--pg-ease);
}
.pg-sort__chevron svg {
  display: block;
  width: 0.95em;
  height: 0.95em;
}
.pg-sort.is-open .pg-sort__chevron {
  transform: rotate(180deg);
}
/* Themed Dropdown-Panel */
.pg-sort__menu {
  position: absolute;
  top: calc(100% + 0.55rem);
  right: 0;
  z-index: 80;
  min-width: 235px;
  margin: 0;
  padding: 0.4rem;
  list-style: none;
  background: var(--pg-surface);
  border: 1px solid var(--pg-line);
  border-radius: 0;
  box-shadow: var(--pg-shadow);
  transform-origin: top right;
  animation: pgSortIn 0.18s var(--pg-ease);
}
.pg-sort__menu[hidden] {
  display: none;
}
@keyframes pgSortIn {
  from { opacity: 0; transform: translateY(-6px) scale(0.98); }
  to   { opacity: 1; transform: none; }
}
.pg-sort__opt {
  padding: 0.62rem 0.8rem;
  border-radius: 0;
  font-size: 0.9rem;
  color: var(--pg-ink);
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.15s var(--pg-ease), color 0.15s var(--pg-ease);
}
.pg-sort__opt:hover,
.pg-sort__opt:focus-visible {
  background: var(--pg-cream-2);
  color: var(--pg-gold-2);
  outline: none;
}
.pg-sort__opt.is-selected {
  color: var(--pg-gold-2);
  font-weight: 600;
}
/* Mobil (≤600px): nur Icon-Button; die alte Text-Lösung bleibt auf breiten Geräten. */
@media (max-width: 600px) {
  .pg-sort__toggle {
    width: 42px;
    height: 42px;
    padding: 0;
    justify-content: center;
    border: 1px solid var(--pg-line);
    border-radius: 50%;
  }
  .pg-sort__toggle:hover {
    border-color: var(--pg-gold);
  }
  .pg-sort__ico {
    display: inline-flex;
  }
  .pg-sort__ico svg {
    display: block;
  }
  .pg-sort__current,
  .pg-sort__chevron {
    display: none;
  }
}

/* ====================== Warenkorb-Drawer (Off-Canvas, rechts) =========
   Hochwertiger Slide-in-Warenkorb im Boutique-Stil (warmes Ivory + Gold),
   Layout an Premium-Shops angelehnt: Produkte oben, Summe + Checkout
   unten fixiert. Öffnet per Klick auf das Warenkorb-Icon.                */
.pg-cart {
  position: fixed;
  inset: 0;
  bottom: auto;
  /* Volle SICHTBARE Höhe — `dvh` folgt der iOS-Toolbar, `inset:0`/`100%` nicht. */
  height: 100vh;
  height: 100dvh;
  z-index: 1100;
  visibility: hidden;
}
.pg-cart.is-open {
  visibility: visible;
}
.pg-cart__overlay {
  position: absolute;
  inset: 0;
  background: rgba(20, 18, 14, 0.5);
  opacity: 0;
  transition: opacity 0.35s var(--pg-ease);
}
.pg-cart.is-open .pg-cart__overlay {
  opacity: 1;
}
.pg-cart__panel {
  position: absolute;
  top: 0;
  right: 0;
  height: 100%;
  width: min(440px, 94vw);
  background: var(--pg-surface);
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.4s var(--pg-ease);
  box-shadow: -30px 0 70px -30px rgba(0, 0, 0, 0.5);
}
.pg-cart.is-open .pg-cart__panel {
  transform: none;
}
/* Aus der Bottom-Nav geöffnet: derselbe Warenkorb, aber im Vollbild. */
.pg-cart--full .pg-cart__panel {
  width: 100%;
  max-width: 100%;
  box-shadow: none;
}
.pg-cart.is-loading .pg-cart__panel {
  cursor: progress;
}
.pg-cart.is-loading .widget_shopping_cart_content {
  opacity: 0.55;
  transition: opacity 0.2s;
}

/* Kopf */
.pg-cart__head {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.4rem 1.6rem;
  border-bottom: 1px solid var(--pg-line);
}
.pg-cart__head strong {
  font-family: var(--pg-font-body);
  font-weight: 600;
  font-size: 0.8rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--pg-ink);
}
.pg-cart__x {
  background: none;
  border: 0;
  padding: 0.2rem;
  line-height: 0;
  cursor: pointer;
  color: var(--pg-ink);
  transition:
    color 0.2s var(--pg-ease),
    transform 0.2s var(--pg-ease);
}
.pg-cart__x:hover {
  color: var(--pg-gold-2);
  transform: rotate(90deg);
}

/* Fragment-Wrapper füllt den Panel-Rest */
.pg-cart .widget_shopping_cart_content {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

/* Scrollbarer Bereich: Produkte (+ Empfehlungen) */
.pg-mc__scroll {
  flex: 1 1 auto;
  overflow-y: auto;
  min-height: 0;
}
.pg-mc__scroll::-webkit-scrollbar {
  width: 5px;
}
.pg-mc__scroll::-webkit-scrollbar-thumb {
  background: var(--pg-line);
  border-radius: 0;
}

.pg-cart .woocommerce-mini-cart {
  list-style: none;
  margin: 0;
  padding: 0;
}
.pg-cart .woocommerce-mini-cart-item {
  display: flex;
  gap: 1.1rem;
  align-items: flex-start;
  padding: 1.4rem 1.6rem;
  border-bottom: 1px solid var(--pg-line);
}
.pg-mc-item__img {
  flex: 0 0 84px;
  width: 84px;
  display: block;
}
/* !important + Spezifität, da WooCommerce-Core .product_list_widget img überschreibt */
.pg-cart .pg-mc-item__img img {
  width: 84px !important;
  height: auto !important; /* Original-Seitenverhältnis, kein Beschnitt */
  max-width: 84px;
  float: none !important;
  margin: 0 !important;
  display: block;
  background: var(--pg-surface);
  border: 1px solid var(--pg-line);
}
.pg-mc-item__info {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}
.pg-mc-item__brand {
  font-size: 0.64rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--pg-ink-soft);
}
.pg-mc-item__name {
  font-family: var(--pg-font-head);
  font-size: 1.18rem;
  line-height: 1.2;
  color: var(--pg-ink) !important;
  font-weight: 600;
}
.pg-mc-item__name:hover {
  color: var(--pg-gold-2) !important;
}
.pg-mc-item__meta {
  font-size: 0.82rem;
  color: var(--pg-ink-soft);
}
.pg-mc-item__meta dl,
.pg-mc-item__meta dd,
.pg-mc-item__meta dt {
  margin: 0;
  display: inline;
}
.pg-mc-item__price {
  font-weight: 600;
  color: var(--pg-ink);
  margin-top: 0.1rem;
}
.pg-mc-item__unit {
  font-size: 0.76rem;
  color: var(--pg-ink-soft);
}

/* Reihe: Mengen-Stepper + Entfernen */
.pg-mc-item__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 0.7rem;
}
.pg-qty {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--pg-line);
  border-radius: 0;
  background: var(--pg-surface);
  overflow: hidden;
  /* Keine Textmarkierung beim (Doppel-)Klick auf +/- → verhindert die blaue
     Selektionslinie neben der Mengenzahl; ebenso kein Mobile-Tap-Highlight. */
  user-select: none;
  -webkit-user-select: none;
  -webkit-tap-highlight-color: transparent;
}
.pg-qty__btn {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  background: none;
  border: 0;
  padding: 0;          /* Storefront-Button-Padding neutralisieren → SVG exakt mittig */
  margin: 0;
  cursor: pointer;
  color: var(--pg-ink);
  line-height: 1;
  transition:
    background 0.2s var(--pg-ease),
    color 0.2s var(--pg-ease);
}
/* SVG-Icon statt Text-Glyph: geometrisch exakt mittig (Text-Operatoren sitzen
   auf der Mathe-Achse und wirken dadurch leicht nach unten versetzt). */
.pg-qty__btn svg {
  display: block;
}
.pg-qty__btn:hover {
  background: var(--pg-cream-2);
  color: var(--pg-gold-2);
}
.pg-qty__btn:focus-visible {
  outline: 2px solid var(--pg-gold-2);
  outline-offset: -2px;
}
.pg-qty__val {
  min-width: 2ch;
  text-align: center;
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--pg-ink);
}
/* Höhere Spezifität als WooCommerce-Core (.woocommerce a.remove), das den
   Link sonst als quadratisches „×"-Glyph rendert. */
.pg-cart .woocommerce-mini-cart-item a.pg-mc-item__remove {
  width: auto !important;
  height: auto !important;
  float: none !important;
  display: inline-block;
  line-height: 1 !important;
  text-indent: 0 !important;
  font-size: 0.68rem !important;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--pg-ink-soft) !important;
  background: none !important;
  border: 0;
  cursor: pointer;
  padding: 0.4rem 0.2rem;
  white-space: nowrap;
  transition: color 0.2s var(--pg-ease);
}
.pg-cart .woocommerce-mini-cart-item a.pg-mc-item__remove:hover {
  color: var(--pg-gold-2) !important;
  background: none !important;
}
/* WooCommerce legt über ::before einen (Lade-)Glyph/Spinner auf den Link —
   für den Text-Button „Entfernen" neutralisieren. */
.pg-cart .woocommerce-mini-cart-item a.pg-mc-item__remove::before,
.pg-cart .woocommerce-mini-cart-item a.pg-mc-item__remove::after {
  content: none !important;
  display: none !important;
}

/* Empfehlungen */
.pg-mc-recos {
  padding: 1.6rem;
  border-top: 8px solid var(--pg-cream-2);
}
.pg-mc-recos__title {
  font-family: var(--pg-font-head);
  font-size: 1.3rem;
  color: var(--pg-ink);
  margin: 0 0 1.1rem;
  text-align: center;
}
.pg-mc-reco {
  display: flex;
  gap: 1rem;
  align-items: center;
  padding: 0.7rem 0;
}
.pg-mc-reco + .pg-mc-reco {
  border-top: 1px solid var(--pg-line);
}
.pg-mc-reco__img {
  flex: 0 0 64px;
  width: 64px;
}
.pg-cart .pg-mc-reco__img img {
  width: 64px !important;
  height: auto !important; /* Original-Seitenverhältnis */
  max-width: 64px;
  float: none !important;
  margin: 0 !important;
  background: var(--pg-surface);
  border: 1px solid var(--pg-line);
  display: block;
}
.pg-mc-reco__info {
  flex: 1 1 auto;
  min-width: 0;
}
.pg-mc-reco__name {
  font-family: var(--pg-font-head);
  font-size: 1rem;
  color: var(--pg-ink) !important;
  font-weight: 600;
  display: block;
  line-height: 1.2;
}
.pg-mc-reco__name:hover {
  color: var(--pg-gold-2) !important;
}
.pg-mc-reco__price {
  font-size: 0.85rem;
  color: var(--pg-ink-soft);
  margin-top: 0.15rem;
}
.pg-mc-reco__add {
  flex: 0 0 auto;
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 600;
  border: 1px solid var(--pg-line);
  border-radius: 0;
  padding: 0.55em 1em;
  color: var(--pg-ink) !important;
  background: var(--pg-surface);
  white-space: nowrap;
  transition:
    border-color 0.2s var(--pg-ease),
    color 0.2s var(--pg-ease),
    background 0.2s var(--pg-ease);
}
.pg-mc-reco__add:hover {
  border-color: var(--pg-gold);
  color: var(--pg-gold-2) !important;
  background: var(--pg-cream);
}

/* Fuß: Summe + Versandhinweis + Checkout (fixiert) */
.pg-mc__foot {
  flex: 0 0 auto;
  padding: 1.3rem 1.6rem 1.6rem;
  border-top: 1px solid var(--pg-line);
  background: var(--pg-surface);
}
.pg-cart .woocommerce-mini-cart__total {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin: 0;
}
.pg-cart .woocommerce-mini-cart__total strong {
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--pg-ink);
}
/* WooCommerce gibt zusätzlich „Zwischensumme:" aus — ausblenden, „Gesamt" reicht. */
.pg-cart .woocommerce-mini-cart__total strong + strong {
  display: none;
}
.pg-cart .woocommerce-mini-cart__total .woocommerce-Price-amount {
  font-family: var(--pg-font-head);
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--pg-ink);
}
.pg-mc__shipnote {
  margin: 0.35rem 0 1.1rem;
  font-size: 0.78rem;
  color: var(--pg-ink-soft);
}
.pg-cart .woocommerce-mini-cart__buttons {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
/* „Warenkorb ansehen" dezent, „Checkout" als goldener Vollbreit-Button */
.pg-cart .woocommerce-mini-cart__buttons .button {
  width: 100%;
  justify-content: center;
  text-align: center;
}
.pg-cart .woocommerce-mini-cart__buttons a.button:not(.checkout) {
  order: 2;
  background: transparent !important;
  color: var(--pg-ink-soft) !important;
  border: 0;
  padding: 0.4em;
  font-size: 0.8rem;
  text-transform: none;
  letter-spacing: 0;
}
.pg-cart .woocommerce-mini-cart__buttons a.button:not(.checkout):hover {
  color: var(--pg-gold-2) !important;
  transform: none;
  box-shadow: none;
  background: transparent !important;
}
.pg-cart .woocommerce-mini-cart__buttons .checkout {
  order: 1;
  background: linear-gradient(
    120deg,
    var(--pg-gold),
    var(--pg-gold-2)
  ) !important;
  color: #101010 !important;
  padding: 1.05em 1.4em;
  font-size: 0.82rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  border-radius: 0;
}
.pg-cart .woocommerce-mini-cart__buttons .checkout:hover {
  filter: brightness(1.04);
  transform: translateY(-1px);
  box-shadow: var(--pg-shadow-gold);
}
.pg-mc-express {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.45rem;
  margin-top: 0.85rem;
  padding-top: 0.85rem;
  border-top: 1px solid var(--pg-line);
  color: var(--pg-ink-soft);
}
.pg-mc-express__label {
  font-size: 0.7rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.pg-mc-express__methods {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.35rem;
}
.pg-mc-express__methods span {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0.2rem 0.5rem;
  border: 1px solid var(--pg-line);
  background: #fff;
  color: var(--pg-ink);
  font-size: 0.68rem;
  font-weight: 600;
  line-height: 1;
}

/* Leerer Warenkorb */
.pg-cart .woocommerce-mini-cart__empty-message,
.pg-mc-empty {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1.2rem;
  padding: 3rem 2rem;
  text-align: center;
  color: var(--pg-ink-soft);
  margin: 0;
}
.pg-mc-empty__icon {
  color: var(--pg-line);
}
.pg-mc-empty .pg-btn {
  margin-top: 0.4rem;
}

/* ====================== Pagination unter den Produkten ================
   Mehr Luft zum Footer, moderne Pill-Buttons, Gold-Akzent.             */
.woocommerce-pagination {
  margin-top: clamp(3rem, 6vw, 5rem) !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-top: 0 !important;
  padding-bottom: clamp(4rem, 9vw, 7rem) !important;
  text-align: center;
  position: relative;
}
.woocommerce-pagination::before {
  content: "";
  display: block;
  width: 40px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--pg-gold), transparent);
  margin: 0 auto 2rem;
}
.woocommerce-pagination ul.page-numbers {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  align-items: center;
  border: 0 !important;
  margin: 0;
  padding: 0;
  list-style: none;
}
.woocommerce-pagination ul.page-numbers li {
  margin: 0;
  border: 0 !important;
}
.woocommerce-pagination .page-numbers {
  display: grid;
  place-items: center;
  min-width: 2.75rem;
  height: 2.75rem;
  padding: 0 0.75rem;
  border: 1px solid var(--pg-line);
  border-radius: 0;
  background: transparent;
  font-size: 0.88rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--pg-ink) !important;
  transition:
    color 0.22s var(--pg-ease),
    border-color 0.22s var(--pg-ease),
    background 0.22s var(--pg-ease),
    transform 0.22s var(--pg-ease),
    box-shadow 0.22s var(--pg-ease);
}
.woocommerce-pagination a.page-numbers:hover {
  border-color: var(--pg-gold);
  color: var(--pg-gold-2) !important;
  background: rgba(210, 171, 102, 0.08);
  transform: translateY(-1px);
}
.woocommerce-pagination .page-numbers.current {
  background: linear-gradient(120deg, var(--pg-gold), var(--pg-gold-2));
  border-color: transparent;
  color: #0b0b0b !important;
  box-shadow: 0 4px 18px -8px rgba(148, 124, 64, 0.5);
}
.woocommerce-pagination .page-numbers.dots {
  border: 0;
  min-width: auto;
  color: var(--pg-ink-soft) !important;
  letter-spacing: 0.1em;
}
/* Pfeil-Links (prev / next) etwas breiter */
.woocommerce-pagination .page-numbers.prev,
.woocommerce-pagination .page-numbers.next {
  min-width: 3rem;
  font-size: 1rem;
}
/* Marke über dem Produktnamen */
.pg-loop-brand {
  display: block;
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--pg-ink-soft);
  padding: 1rem 1.1rem 0;
  margin-bottom: -0.3rem;
}
.pg-section--dark .pg-loop-brand {
  color: var(--pg-on-dark-2);
}

/* ====================== Filter-Drawer (Off-Canvas) ==================== */
.pg-drawer {
  position: fixed;
  inset: 0;
  bottom: auto;
  /* Volle SICHTBARE Höhe — `dvh` folgt der iOS-Toolbar, `inset:0`/`100%` nicht. */
  height: 100vh;
  height: 100dvh;
  z-index: 1000;
  visibility: hidden;
}
.pg-drawer.is-open {
  visibility: visible;
}
.pg-drawer__overlay {
  position: absolute;
  inset: 0;
  background: rgba(20, 18, 14, 0.45);
  opacity: 0;
  transition: opacity 0.3s var(--pg-ease);
}
.pg-drawer.is-open .pg-drawer__overlay {
  opacity: 1;
}
.pg-drawer__panel {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: min(420px, 92vw);
  background: var(--pg-surface);
  transform: translateX(-100%);
  transition: transform 0.38s var(--pg-ease);
  overflow-y: auto;
  display: flex;
  flex-direction: column;
}
.pg-drawer.is-open .pg-drawer__panel {
  transform: none;
}
.pg-drawer__head {
  position: sticky;
  top: 0;
  background: var(--pg-surface);
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.2rem 1.4rem;
  border-bottom: 1px solid var(--pg-line);
}
.pg-drawer__head strong {
  font-family: var(--pg-font-head);
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: 0.02em;
}
/* 40 px Trefferfläche für Touch, aber OHNE sichtbare Fläche: eine graue Kachel
   neben der zarten Serifen-Überschrift wirkt wie ein Fremdkörper aus einem
   Formular. Rückmeldung kommt allein aus der Farbe des Glyphen.
   Wichtig sind die expliziten Nullen: Storefront legt auf JEDES `button` ein
   großzügiges Padding (≈17px/38px). Das gewinnt gegen `width`, weil Padding die
   Mindestbreite bestimmt — der Button wurde dadurch 77 px breit, das Zentrieren
   lief ins Leere und Storefronts Button-Hover malte die ganze Fläche aus. */
.pg-drawer__x {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  min-width: 0;
  padding: 0;
  margin-right: -0.5rem;
  background: none;
  border: 0;
  box-shadow: none;
  font-size: 1.6rem;
  line-height: 1;
  cursor: pointer;
  color: var(--pg-ink-soft);
  transition: color 0.18s var(--pg-ease);
}
.pg-drawer__x:hover,
.pg-drawer__x:focus {
  color: var(--pg-ink);
  background: none;
  box-shadow: none;
}
.pg-drawer__x:focus-visible {
  outline: 2px solid var(--pg-gold-2);
  outline-offset: 2px;
}
.pg-drawer__form {
  padding: 0.4rem 1.4rem 7rem;
}
/* Letzte Sektion ohne Trennlinie — sie säße sonst direkt über der Fußleiste
   und ergäbe eine doppelte Kante. */
.pg-drawer__form > .pg-fsec:last-of-type {
  border-bottom: 0;
}

/* ---- Filter-Sektionen ----
   Die Hierarchie kommt aus Schrift und Weißraum, nicht aus Flächen: Hersteller
   und Duftrichtung tragen gesperrte Versalien in Tinte, die Nebenrubriken eine
   ruhige, gedeckte Zeile. Gold erscheint nur als Markierung (Häkchen, Zähler) —
   dieselbe Materialregel wie bei den CTAs: Gold trägt nie die Fläche. */
.pg-fsec {
  border-bottom: 1px solid var(--pg-line);
}
.pg-fsec > summary {
  list-style: none;
  cursor: pointer;
  padding: 1.05rem 0;
  display: flex;
  align-items: center;
  gap: 0.7rem;
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--pg-ink-soft);
  transition: color 0.18s var(--pg-ease);
  -webkit-user-select: none;
  user-select: none;
}
.pg-fsec > summary:hover {
  color: var(--pg-ink);
}
.pg-fsec > summary::-webkit-details-marker {
  display: none;
}
.pg-fsec__t {
  flex: 1;
}
/* Chevron aus zwei Kanten statt eines Schrift-Dreiecks: skaliert sauber,
   liegt optisch auf der Grundlinie und dreht beim Aufklappen. */
.pg-fsec > summary::after {
  content: "";
  flex: 0 0 auto;
  width: 7px;
  height: 7px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg) translate(-2px, -2px);
  opacity: 0.55;
  transition: transform 0.25s var(--pg-ease);
}
.pg-fsec[open] > summary::after {
  transform: rotate(225deg) translate(-2px, -2px);
}
/* Zähler der aktiven Auswahl — ersetzt das Aufklappen als Signal. */
.pg-fsec__n {
  flex: 0 0 auto;
  min-width: 1.35rem;
  padding: 0.15rem 0.35rem;
  border: 1px solid var(--pg-gold);
  color: var(--pg-gold-2);
  font-size: 0.68rem;
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
}
/* Primär: Hersteller + Duftrichtung. */
.pg-fsec--primary > summary {
  padding: 1.25rem 0 1.05rem;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.17em;
  text-transform: uppercase;
  color: var(--pg-ink);
}
.pg-fsec--primary > summary::after {
  opacity: 0.8;
}
.pg-fsec--primary .pg-fsec__body {
  max-height: 340px;
}

/* Der Scroll-Container selbst wird nach außen gezogen und die Einrückung über
   das Zeilen-Padding wiederhergestellt. Bekämen stattdessen die Zeilen negative
   Ränder, wäre ihr Inhalt breiter als der Container — das erzeugt eine
   horizontale Scrollleiste unter der Liste. */
.pg-fsec__body {
  margin: 0 -0.6rem;
  padding: 0 0 1.15rem;
  display: grid;
  gap: 0;
  max-height: 260px;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-gutter: stable;
}
/* Zeilen als Liste mit voller Trefferfläche — bis an den Panel-Rand gezogen,
   damit der Hover als Band liest und nicht als schwebender Kasten. */
.pg-fcheck {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  cursor: pointer;
  padding: 0.52rem 0.6rem;
  font-size: 0.95rem;
  line-height: 1.3;
  transition: background 0.15s var(--pg-ease);
}
.pg-fcheck:hover {
  background: rgba(23, 23, 23, 0.04);
}
/* Eigene, kantige Checkbox — die native runde Systembox fiel aus der Form. */
.pg-fcheck input {
  appearance: none;
  -webkit-appearance: none;
  flex: 0 0 auto;
  width: 17px;
  height: 17px;
  margin: 0;
  border: 1px solid rgba(23, 23, 23, 0.32);
  background: var(--pg-surface);
  cursor: pointer;
  transition:
    border-color 0.15s var(--pg-ease),
    background 0.15s var(--pg-ease);
}
.pg-fcheck:hover input {
  border-color: var(--pg-gold-2);
}
.pg-fcheck input:checked {
  border-color: var(--pg-gold-2);
  background: var(--pg-gold-2);
}
/* Häkchen: gedrehtes L aus zwei Kanten, damit kein Icon-Font nötig ist. */
.pg-fcheck input:checked::after {
  content: "";
  display: block;
  width: 4px;
  height: 8px;
  margin: 1px auto 0;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(45deg);
}
.pg-fcheck input:focus-visible {
  outline: 2px solid var(--pg-gold-2);
  outline-offset: 2px;
}
.pg-fcheck__l {
  flex: 1;
  min-width: 0;
}
/* Trefferzahl: gleiche Ziffernbreite, damit die Spalte rechts ruhig steht. */
.pg-fcount {
  flex: 0 0 auto;
  color: var(--pg-ink-soft);
  font-size: 0.78rem;
  font-variant-numeric: tabular-nums;
  opacity: 0.7;
}

/* Farbpunkt der Duftfamilie — dieselbe Codierung wie auf der Produktkarte. */
.pg-fdot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  margin-right: 0.5rem;
  vertical-align: 0.05em;
  flex: 0 0 auto;
}

.pg-price-inputs {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0.4rem 0 1.2rem;
}
.pg-price-inputs input {
  width: 100%;
  border: 1px solid var(--pg-line);
  border-radius: 0;
  padding: 0.55em 0.6em;
  font: inherit;
}
.pg-price-cur {
  color: var(--pg-ink-soft);
}
.pg-price-sep {
  color: var(--pg-ink-soft);
}
.pg-range {
  position: relative;
  height: 34px;
  margin-bottom: 0.6rem;
}
.pg-range input[type="range"] {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  margin: 0;
  background: none;
  pointer-events: none;
  -webkit-appearance: none;
  appearance: none;
  height: 34px;
  z-index: 2;
}
.pg-range input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  pointer-events: auto;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--pg-gold);
  border: 2px solid var(--pg-bg);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.5);
  cursor: pointer;
}
.pg-range input[type="range"]::-moz-range-thumb {
  pointer-events: auto;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--pg-gold);
  border: 2px solid var(--pg-bg);
  cursor: pointer;
}
.pg-range__track {
  position: absolute;
  top: 16px;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--pg-line);
  border-radius: 0;
  z-index: 1;
}
.pg-range__fill {
  position: absolute;
  top: 0;
  height: 100%;
  background: var(--pg-gold-2);
  border-radius: 0;
}

.pg-drawer__foot {
  position: fixed;
  bottom: 0;
  left: 0;
  width: min(420px, 92vw);
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem 1.4rem;
  background: var(--pg-surface);
  border-top: 1px solid var(--pg-line);
}
.pg-drawer__apply {
  flex: 1;
  justify-content: center;
}
.pg-drawer__reset {
  color: var(--pg-ink-soft);
  font-size: 0.9rem;
  white-space: nowrap;
}
.pg-noscroll {
  overflow: hidden;
}

/* Mobil: Filter im Vollbild */
@media (max-width: 600px) {
  .pg-drawer__panel,
  .pg-drawer__foot {
    width: 100%;
  }
}
/* ====================== Duftbeschreibung (Parfumo) ==================== */
.pg-product-extra {
  max-width: var(--pg-maxw);
  margin: clamp(2rem, 5vw, 3.5rem) auto 0;
}
.pg-frag-h {
  font-family: var(--pg-font-head);
  font-size: clamp(1.5rem, 3vw, 2rem);
  margin: 1.6rem 0 1rem;
}
.pg-frag-fams {
  display: flex;
  flex-wrap: wrap;
  gap: 1.2rem;
  margin-bottom: 0.5rem;
}
.pg-frag-fam {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 500;
}
.pg-frag-dot {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  display: inline-block;
}

.pg-pyramid {
  display: grid;
  gap: 1.2rem;
}
.pg-pyr-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.5rem;
  padding-bottom: 1.1rem;
  border-bottom: 1px solid var(--pg-line);
}
.pg-pyr-label {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 0.82rem;
  color: var(--pg-ink-soft);
}
.pg-pyr-ic {
  width: 22px;
  height: 16px;
  flex: 0 0 auto;
  background: linear-gradient(var(--pg-gold), var(--pg-gold)) no-repeat;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 18'%3E%3Cpath d='M12 1 22 7 12 13 2 7z' fill='black'/%3E%3C/svg%3E")
    center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 18'%3E%3Cpath d='M12 1 22 7 12 13 2 7z' fill='black'/%3E%3C/svg%3E")
    center/contain no-repeat;
  opacity: 0.85;
}
.pg-pyr-ic[data-l="1"] {
  opacity: 0.6;
}
.pg-pyr-ic[data-l="2"] {
  opacity: 0.4;
}
.pg-pyr-notes {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
/* inline-block statt inline-flex: in einem Flex-Container wird <sup> zum
   Flex-Item und verliert seine Hochstellung — als Inline-Inhalt bleibt sie. */
.pg-pyr-note {
  display: inline-block;
  padding: 0.4em 0.9em;
  border-radius: 0;
  background: var(--pg-surface);
  border: 1px solid var(--pg-line);
  color: var(--pg-ink);
  font-size: 0.95rem;
}
.pg-pyr-note sup,
.pg-pyr-note sub {
  font-size: 0.7em;
  line-height: 0;
}
@media (min-width: 640px) {
  .pg-pyr-row {
    grid-template-columns: 130px 1fr;
    align-items: start;
    gap: 1.2rem;
  }
}

/* ====================== Bewertungs-Balken ============================= */
.pg-ratings {
  margin-top: 1rem;
}
.pg-rate-bars {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.4rem 2.5rem;
}
@media (min-width: 640px) {
  .pg-rate-bars {
    grid-template-columns: 1fr 1fr;
  }
}
.pg-rate-bar__label {
  font-weight: 700;
  letter-spacing: 0.06em;
  font-size: 0.82rem;
}
.pg-rate-bar__track {
  height: 8px;
  border-radius: 0;
  background: rgba(210,171,102,.15);
  margin: 0.5rem 0 0.4rem;
  overflow: hidden;
}
.pg-rate-bar__fill {
  display: block;
  height: 100%;
  border-radius: 0;
  transition: width 0.8s var(--pg-ease);
}
.pg-rate-bar__bottom strong {
  font-size: 1.5rem;
  font-family: var(--pg-font-head);
}
.pg-rate-bar__bottom span {
  color: var(--pg-ink-soft);
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.pg-rate-empty {
  color: var(--pg-ink-soft);
}
.pg-ratings__hint {
  margin-top: 1rem;
}
.pg-ratings__hint a {
  font-weight: 600;
}

/* Bewertungsformular (3 Kriterien — Zahlen-Picker) */
.pg-rate-fields {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.4rem;
  margin: 0 0 1.2rem;
}
@media (min-width: 560px) {
  .pg-rate-fields {
    grid-template-columns: repeat(3, 1fr);
  }
}
.pg-rate-field {
  display: flex;
  flex-direction: column;
  gap: .45rem;
}
.pg-rate-field__label {
  display: block;
  font-weight: 700;
  font-size: .8rem;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--pg-rate-accent, var(--pg-gold));
}
.pg-rate-picker {
  display: flex;
  gap: .25rem;
  flex-wrap: wrap;
}
.pg-rate-picker--err .pg-rate-num {
  border-color: #b3261e;
}
.pg-rate-num {
  width: 2.1rem;
  height: 2.1rem;
  border-radius: 0;
  border: 1.5px solid var(--pg-line);
  background: transparent;
  font: 600 .82rem/1 var(--pg-font-body);
  color: var(--pg-ink);
  cursor: pointer;
  transition: background .15s, border-color .15s, color .15s;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}
.pg-rate-num:hover {
  border-color: var(--pg-rate-accent, var(--pg-gold));
  color: var(--pg-rate-accent, var(--pg-gold));
}
.pg-rate-num.is-active {
  background: var(--pg-rate-accent, var(--pg-gold));
  border-color: var(--pg-rate-accent, var(--pg-gold));
  color: #fff;
}
/* ====================== Vorher/Nachher-Pfeile ======================== */
.pg-prevnext {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: stretch;
  max-width: var(--pg-maxw);
  margin: clamp(2rem, 5vw, 3.5rem) auto 0;
  padding-top: 1.6rem;
  border-top: 1px solid var(--pg-line);
}
.pg-prevnext__side {
  flex: 1 1 0;
  min-width: 0;
}
.pg-prevnext__side--next {
  text-align: right;
}
.pg-prevnext__link {
  display: inline-flex;
  align-items: center;
  gap: 0.9rem;
  color: var(--pg-ink) !important;
  max-width: 100%;
}
.pg-prevnext__side--next .pg-prevnext__link {
  flex-direction: row;
  justify-content: flex-end;
}
.pg-pn-arrow {
  font-size: 1.6rem;
  color: var(--pg-gold-2);
  transition: transform 0.25s var(--pg-ease);
  flex: 0 0 auto;
}
.pg-prevnext__side--prev .pg-prevnext__link:hover .pg-pn-arrow {
  transform: translateX(-4px);
}
.pg-prevnext__side--next .pg-prevnext__link:hover .pg-pn-arrow {
  transform: translateX(4px);
}
.pg-pn-meta {
  display: flex;
  flex-direction: column;
  line-height: 1.25;
  min-width: 0;
}
.pg-pn-kicker {
  font-size: 0.68rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--pg-ink-soft);
  opacity: 0.7;
}
.pg-pn-name {
  font-family: var(--pg-font-head);
  font-size: 1.1rem;
  color: var(--pg-ink-soft);
  font-weight: 500;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pg-prevnext__link:hover .pg-pn-name {
  color: var(--pg-gold-2);
}

/* ====================== WooCommerce Seiten-Feinschliff ================= */
.woocommerce-products-header {
  text-align: center;
  padding-top: 2rem;
}
.woocommerce-products-header__title.page-title {
  font-family: var(--pg-font-head);
  font-size: clamp(2rem, 5vw, 3rem);
}
.woocommerce div.product .product_title {
  font-family: var(--pg-font-head);
  font-size: clamp(1.8rem, 4vw, 2.6rem);
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  color: var(--pg-gold-2);
  font-weight: 600;
}
.single-product div.product img {
  border-radius: 0;
}

/* --- Produktseite: Preis-Hierarchie beruhigen --------------------------- */
/* Hauptpreis prominent … */
.single-product div.product .summary p.price {
  font-size: clamp(1.7rem, 3vw, 2.1rem);
  margin-bottom: 0.4rem;
}
/* Rechtshinweise (MwSt./Versand/Lieferzeit) dezent unter dem Preis. */
.single-product div.product .summary .wc-gzd-additional-info {
  font-size: 0.88rem;
  color: var(--pg-ink-soft);
}
/* … der Grundpreis (Germanized, Pflichtangabe) ist KEIN zweiter Verkaufs-
   preis: klein, neutral, direkt an den Preis angedockt. Nach den generischen
   Regeln oben notiert, damit er sie bei gleicher Spezifität überstimmt. */
.single-product div.product .summary p.price.price-unit {
  font-size: 0.92rem;
  font-weight: 500;
  color: var(--pg-ink-soft);
  margin: 0 0 0.6rem;
}
.single-product div.product .summary p.price.price-unit .woocommerce-Price-amount {
  font-weight: 500;
}
/* Artikelnummer/Kategorie/Marke als ruhige Meta-Zeilen mit Trennlinie. */
.single-product div.product .summary .product_meta {
  display: grid;
  gap: 0.3rem;
  font-size: 0.85rem;
  color: var(--pg-ink-soft);
  border-top: 1px solid var(--pg-line);
  padding-top: 1rem;
  margin-top: 1.2rem;
}
.single-product div.product .summary .product_meta a {
  color: var(--pg-gold-2);
}
.storefront-breadcrumb {
  font-size: 0.82rem;
  /* Einheitlicher, knapper Abstand Navbar → Breadcrumb → Inhalt auf ALLEN
     Seiten. !important, weil Storefronts style.css denselben Selektor mit
     viel größeren Werten (margin 3.7em, padding 1.4em) später lädt. */
  padding: clamp(0.9rem, 2vw, 1.3rem) 0 0 !important;
  margin: 0 0 clamp(1rem, 2.2vw, 1.5rem) !important;
}
.storefront-breadcrumb .woocommerce-breadcrumb,
.storefront-breadcrumb .woocommerce-breadcrumb a {
  color: var(--pg-ink-soft);
}
.storefront-breadcrumb .woocommerce-breadcrumb a:hover {
  color: var(--pg-gold-2);
}

/* ====================== B2B-Portal (Registrierung) ===================== */
.pg-b2b-intro {
  max-width: 760px;
  margin: 0 auto clamp(1.5rem, 4vw, 2.5rem);
  text-align: center;
}
.pg-b2b-form,
.pg-b2b-status {
  max-width: 720px;
  margin: 0 auto;
  background: var(--pg-surface);
  border: 1px solid var(--pg-line);
  border-radius: 0;
  padding: clamp(1.6rem, 4vw, 2.6rem);
  box-shadow: var(--pg-shadow);
}

/* Form-Kopf: Markenzeichen + Titel + Subline → setzt sofort Kontext/Vertrauen */
.pg-b2b-form__head {
  text-align: center;
  margin: 0 0 1.7rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--pg-line);
}
.pg-b2b-form__badge {
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  margin: 0 auto 0.95rem;
  border-radius: 50%;
  color: var(--pg-gold-2);
  background: linear-gradient(140deg, rgba(210, 171, 102, 0.18), rgba(122, 101, 40, 0.08));
  border: 1px solid rgba(210, 171, 102, 0.38);
}
.pg-b2b-form__badge svg {
  width: 25px;
  height: 25px;
}
.pg-b2b-form__title {
  font-family: var(--pg-font-head);
  font-size: clamp(1.4rem, 3vw, 1.85rem);
  color: var(--pg-ink);
  margin: 0 0 0.4rem;
}
.pg-b2b-form__sub {
  max-width: 46ch;
  margin: 0 auto;
  font-size: 0.92rem;
  line-height: 1.55;
  color: var(--pg-ink-soft);
}
.pg-b2b-form__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.05rem 1.2rem;
}
.pg-b2b-field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  /* Ohne min-width:0 erzwingt die intrinsische Input-Mindestbreite, dass die
     Grid-Spalte nicht unter Inhalts-Breite schrumpft → Felder ragen über die
     Karte/Viewport hinaus. */
  min-width: 0;
}
.pg-b2b-field--wide {
  grid-column: 1 / -1;
}
.pg-b2b-field > span {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--pg-ink-soft);
}
/* Hinweis: `.pg-b2b-form`-Präfix bewusst, um die globale Formular-Regel
   (`input[type="text"] … { background: var(--pg-surface-2) }`, weiter unten in
   dieser Datei) sicher zu überstimmen — sonst bleiben die Felder sandfarben. */
.pg-b2b-form .pg-b2b-field input,
.pg-b2b-form .pg-b2b-field select,
.pg-b2b-form .pg-b2b-field textarea {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box; /* width:100% inkl. Padding/Border — sonst Overflow */
  border: 1px solid var(--pg-line);
  border-radius: 0;
  padding: 0.8em 0.95em;
  font: inherit;
  font-size: 0.95rem;
  /* Reinweiße Felder heben sich klar von der warmen Karte ab → wirkt sauber
     und vertrauenswürdig (statt „Block in Block" in derselben Sandfarbe). */
  background: #fff;
  color: var(--pg-ink);
  transition: border-color 0.2s var(--pg-ease), box-shadow 0.2s var(--pg-ease);
}
.pg-b2b-form .pg-b2b-field input::placeholder {
  color: #aeada6;
}
.pg-b2b-form .pg-b2b-field input:hover,
.pg-b2b-form .pg-b2b-field select:hover,
.pg-b2b-form .pg-b2b-field textarea:hover {
  border-color: rgba(23, 23, 23, 0.22);
}
.pg-b2b-form .pg-b2b-field input:focus,
.pg-b2b-form .pg-b2b-field select:focus,
.pg-b2b-form .pg-b2b-field textarea:focus {
  outline: 0;
  border-color: var(--pg-gold-2);
  box-shadow: 0 0 0 3px rgba(210, 171, 102, 0.18);
}
.pg-b2b-consent {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  margin: 1.5rem 0 0;
  padding: 0.9rem 1.05rem;
  background: rgba(210, 171, 102, 0.06);
  border: 1px solid rgba(210, 171, 102, 0.22);
  border-radius: 0;
  font-size: 0.88rem;
  line-height: 1.5;
  color: var(--pg-ink-soft);
}
.pg-b2b-consent input {
  margin-top: 0.15rem;
  accent-color: var(--pg-gold-2);
  width: 17px;
  height: 17px;
  flex: 0 0 auto;
}
.pg-b2b-submit {
  margin-top: 1.4rem;
  width: 100%;
  justify-content: center;
  gap: 0.55rem;
}
.pg-b2b-submit svg {
  width: 16px;
  height: 16px;
}
.pg-b2b-note {
  margin: 0.9rem 0 0;
  font-size: 0.8rem;
  line-height: 1.5;
  color: var(--pg-ink-soft);
  text-align: center;
}
/* Trust-Leiste: kompakte Vertrauenssignale unter dem Formular */
.pg-b2b-trust {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.55rem 1.4rem;
  margin: 1.3rem 0 0;
  padding-top: 1.25rem;
  border-top: 1px solid var(--pg-line);
}
.pg-b2b-trust__item {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--pg-ink-soft);
}
.pg-b2b-trust__item svg {
  width: 15px;
  height: 15px;
  flex: 0 0 auto;
  color: var(--pg-gold-2);
}
.pg-b2b-status {
  text-align: center;
}
.pg-b2b-status h3 {
  font-family: var(--pg-font-head);
  font-size: clamp(1.5rem, 3vw, 2rem);
  margin: 0 0 0.6rem;
}
.pg-b2b-status--ok {
  border-color: var(--pg-gold);
  box-shadow: var(--pg-shadow-gold);
}
.pg-b2b-status--ok h3 {
  color: var(--pg-gold-2);
}
@media (max-width: 600px) {
  .pg-b2b-form__grid {
    grid-template-columns: 1fr;
  }
  /* Karte über die volle Viewport-Breite (Full-Bleed, unabhängig vom Seiten-Padding)
     + schmalerer Innenabstand → spürbar breitere Felder, mehr Platz. */
  .pg-b2b-form,
  .pg-b2b-status {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    border-radius: 0;
    border-left: 0;
    border-right: 0;
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

/* ====================== B2B-Staffelrabatte & Fortschritt =============== */
.pg-b2b-tiers {
  max-width: 760px;
  margin: 0 auto clamp(1.5rem, 4vw, 2.2rem);
  background: var(--pg-bg);
  color: var(--pg-on-dark);
  border-radius: 0;
  padding: clamp(1.2rem, 3vw, 1.8rem);
}
.pg-b2b-tiers h3 {
  font-family: var(--pg-font-head);
  color: var(--pg-on-dark);
  text-align: center;
  margin: 0 0 1rem;
  font-size: clamp(1.3rem, 2.6vw, 1.7rem);
}
.pg-b2b-tiers__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.6rem;
}
.pg-b2b-tier {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 0.8rem;
  padding: 0.85rem 1.1rem;
  background: var(--pg-bg-soft);
  border: 1px solid var(--pg-line-dark);
  border-radius: 0;
}
.pg-b2b-tier__step {
  font-size: 0.68rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--pg-on-dark-2);
}
.pg-b2b-tier__from {
  font-weight: 500;
}
.pg-b2b-tier__pct {
  font-family: var(--pg-font-head);
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--pg-gold);
}
.pg-b2b-tiers .pg-b2b-note {
  color: var(--pg-on-dark-2);
  margin: 1rem 0 0;
}

/* B2B-Werbetext (für nicht-freigeschaltete Besucher) */
.pg-b2b-teaser {
  background: rgba(210,171,102,.08);
  border: 1px solid rgba(210,171,102,.25);
  border-radius: 0;
  padding: 2rem 2rem 1.5rem;
  margin-bottom: 2.5rem;
}
.pg-b2b-teaser__title {
  font-family: var(--pg-font-head);
  font-size: clamp(1.5rem, 3vw, 2rem);
  color: var(--pg-ink);
  margin: 0 0 .75rem;
}
.pg-b2b-teaser__lead {
  color: var(--pg-ink-soft);
  margin: 0 0 1.25rem;
  line-height: 1.6;
}
.pg-b2b-teaser__list {
  list-style: none;
  padding: 0;
  margin: 0 0 1.25rem;
  display: grid;
  gap: .5rem;
}
.pg-b2b-teaser__list li {
  color: var(--pg-ink);
  font-size: .95rem;
}
.pg-b2b-teaser__sub {
  font-size: .88rem;
  color: var(--pg-ink-soft);
  margin: 0;
  border-top: 1px solid rgba(210,171,102,.2);
  padding-top: .75rem;
}

/* Fortschritt (Drawer / Cart / Checkout) */
.pg-b2b-progress {
  margin: 0 0 1rem;
}
.pg-mc__foot .pg-b2b-progress {
  padding-bottom: 1rem;
  margin-bottom: 1rem;
  border-bottom: 1px solid var(--pg-line);
}
.pg-b2b-progress__msg {
  margin: 0 0 0.5rem;
  font-size: 0.84rem;
  color: var(--pg-ink-soft);
}
.pg-mc__foot .pg-b2b-progress__msg {
  color: var(--pg-ink-soft);
}
.pg-b2b-progress__msg--active {
  color: var(--pg-gold-2);
  font-weight: 600;
}
.pg-b2b-progress__msg strong {
  color: var(--pg-ink);
}
.pg-b2b-progress__bar {
  height: 6px;
  border-radius: 0;
  background: var(--pg-line);
  overflow: hidden;
}
.pg-b2b-progress__bar > span {
  display: block;
  height: 100%;
  border-radius: 0;
  background: linear-gradient(90deg, var(--pg-gold-2), var(--pg-gold));
  transition: width 0.4s var(--pg-ease);
}
/* Auf dunklen Flächen (Shop/Checkout-Hinweise) */
.woocommerce-cart .pg-b2b-progress__msg,
.woocommerce-checkout .pg-b2b-progress__msg {
  color: var(--pg-ink-soft);
}

/* ====================== Endless Scrolling (Shop) ====================== */
/* Pagination wird per JS ausgeblendet (No-JS-Fallback bleibt). Der Loop
   braucht dann unten etwas Luft zum Footer. */
.woocommerce-page ul.products {
  margin-bottom: clamp(2.5rem, 6vw, 4.5rem);
}
.pg-infinite {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: clamp(1.5rem, 4vw, 3rem) 0 clamp(3rem, 7vw, 6rem);
}
.pg-infinite__spinner {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  border: 2px solid var(--pg-line);
  border-top-color: var(--pg-gold);
  opacity: 0;
  animation: pg-spin 0.8s linear infinite;
  transition: opacity 0.2s var(--pg-ease);
}
.pg-infinite.is-loading .pg-infinite__spinner {
  opacity: 1;
}
@keyframes pg-spin {
  to { transform: rotate(360deg); }
}

/* ============================ Checkout ============================ */
/* Zwei-Spalten-Layout: Formular links, klebrige Bestellübersicht rechts.
   Das Formular bleibt EIN <form>; das JS verschiebt nur Knoten in die Summary. */
.woocommerce-checkout .site-main { max-width: 1240px; margin: 0 auto; }
.woocommerce-checkout form.checkout { margin: 0; }

/* Grid ab 900 px; darunter einspaltig */
.woocommerce-checkout form.checkout.pg-co-2col {
  display: grid; grid-template-columns: 1fr; gap: clamp(1.4rem, 4vw, 2.4rem);
  align-items: start;
}
@media (min-width: 900px) {
  .woocommerce-checkout form.checkout.pg-co-2col {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(2rem, 4vw, 3.5rem);
  }
}
/* Notices über beide Spalten */
.woocommerce-checkout form.checkout.pg-co-2col > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
.pg-co-hide { display: none !important; }

/* Linke Spalte */
.pg-co-main { min-width: 0; }
@media (min-width: 900px) { .pg-co-main { grid-column: 1; } }

/* Rechte Spalte: klebrige Summary-Karte */
.pg-co-summary {
  min-width: 0; background: var(--pg-surface); border: 1px solid var(--pg-line);
  border-radius: 0; box-shadow: var(--pg-shadow); overflow: hidden;
}
@media (min-width: 900px) {
  .pg-co-summary { grid-column: 2; position: sticky; top: 92px; }
}
.pg-co-summary__body {
  padding: clamp(1.1rem, 3vw, 1.6rem);
  /* Horizontaler Innenabstand folgt im Full-Bleed-Modus dem Seiten-Gutter (s. u.),
     damit der Inhalt mit den Formularfeldern fluchtet (Fallback = Standard-Padding). */
  padding-left: var(--pg-co-gutter, clamp(1.1rem, 3vw, 1.6rem));
  padding-right: var(--pg-co-gutter, clamp(1.1rem, 3vw, 1.6rem));
  display: flex; flex-direction: column; gap: 1.1rem;
}
/* Mobil-Toggle (auf Desktop ausgeblendet) */
.pg-co-summary__toggle {
  display: none; width: 100%; align-items: center; gap: 0.6rem;
  background: var(--pg-cream-2); border: 0; border-bottom: 1px solid var(--pg-line);
  padding: 0.95rem var(--pg-co-gutter, 1.1rem); cursor: pointer; color: var(--pg-ink); font: inherit; font-weight: 600;
}
.pg-co-summary__toggle { min-height: 52px; }
.pg-co-summary__toggle-label { flex: 1; text-align: left; font-size: 0.92rem; }
/* Bei zugeklappter Übersicht (Standard auf Mobil) der einzige sichtbare
   Gesamtpreis → so groß wie in der Übersicht selbst, Versalziffern erzwungen. */
.pg-co-summary__toggle-total {
  font-size: 1.25rem; font-weight: 800; color: var(--pg-ink);
  font-variant-numeric: lining-nums tabular-nums;
  font-feature-settings: "lnum" 1, "tnum" 1;
}
.pg-co-summary__chev { transition: transform 0.2s var(--pg-ease); flex: 0 0 auto; }
.pg-co-summary.is-open .pg-co-summary__chev { transform: rotate(180deg); }
@media (max-width: 899px) {
  /* Bestellübersicht über die volle Bildschirmbreite: bricht aus den seitlichen
     Gutter-Margins von Storefronts .col-full aus (Full-Bleed-Trick).
     WICHTIG: KEINE explizite width:100vw — die Summary ist ein Grid-Item in einer
     1fr-Spalte; eine feste 100vw-Breite würde (min-width:auto) die geteilte Spalte
     aufblähen und ALLE Felder (E-Mail, Name …) überlaufen lassen. Stattdessen über
     width:auto (= Spaltenbreite) + negative Margins ausbrechen → Spalte bleibt schmal. */
  .pg-co-summary {
    order: -1;
    width: auto;
    min-width: 0;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    border-left: 0; border-right: 0; border-radius: 0;
    /* Voller Hintergrund über die Breite, aber Inhalt auf den Storefront-Gutter
       eingerückt (= .col-full-Margin) → fluchtet mit den Formularfeldern.
       569–1064px: 2.617924em; ≤568px: 1.41575em (s. nächste Query). */
    --pg-co-gutter: 2.617924em;
  }
  /* Negative Margins nutzen 50vw (inkl. Scrollbar-Breite) → minimaler Überstand.
     #content ist viewport-breit und enthält die Summary, aber NICHT die sticky
     Navbar (#masthead) → hier gefahrlos clippen. clip (nicht hidden) erzeugt keinen
     Scroll-Container, sticky bleibt intakt. */
  .woocommerce-checkout #content.site-content { overflow-x: clip; }
  .pg-co-summary__toggle { display: flex; }
  .pg-co-summary__body { display: none; }
  .pg-co-summary.is-open .pg-co-summary__body { display: flex; }
}
/* Unter 568px verkleinert Storefront den .col-full-Gutter → mitziehen. */
@media (max-width: 568px) {
  .pg-co-summary { --pg-co-gutter: 1.41575em; }
}

/* Trust-Leiste – heller Kopf der Summary */
.pg-co-trust {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.7rem 1rem;
  margin: 0; padding: 0 0 1.05rem; border-bottom: 1px solid var(--pg-line);
}
.pg-co-trust__item { display: flex; align-items: center; gap: 0.55rem; color: var(--pg-ink); }
.pg-co-trust__ic { color: var(--pg-gold-2); flex: 0 0 auto; display: inline-flex; }
.pg-co-trust__txt { display: flex; flex-direction: column; line-height: 1.2; }
.pg-co-trust__txt strong { font-size: 0.8rem; font-weight: 600; }
.pg-co-trust__txt small { font-size: 0.7rem; color: var(--pg-ink-soft); }
.woocommerce-checkout h3, .woocommerce-checkout #order_review_heading {
  font-family: var(--pg-font-head); font-size: clamp(1.35rem, 2.6vw, 1.7rem);
  color: var(--pg-ink); margin: 0 0 1.1rem;
}
/* „Lieferung an andere Adresse" ist ein Checkbox-Toggle, keine große Headline */
.woocommerce-checkout .woocommerce-shipping-fields > h3 {
  font-family: var(--pg-font-body); font-size: 0.92rem; font-weight: 600; margin: 0 0 0.5rem;
}
.woocommerce-checkout .woocommerce-shipping-fields > h3 label { font-weight: 600; }

/* Kundendaten füllen die volle Breite der linken Spalte (kein Float). */
.woocommerce-checkout #customer_details {
  float: none; width: 100%; max-width: none; margin: 0;
}
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2 { width: 100%; float: none; }
/* "Weitere Informationen" ist redundant — eigene Labels genügen */
.woocommerce-checkout .woocommerce-additional-fields > h3 { display: none; }
/* Trennlinie + Abstand zum Abschnitt Versand/Notizen */
.woocommerce-checkout #customer_details .col-2 { border-top: 1px solid var(--pg-line); padding-top: 1rem; margin-top: 0.6rem; }

/* Paired fields (Vorname/Nachname, PLZ/Stadt) ab 600 px nebeneinander.
   WooCommerce gibt den Zeilen `width:47%; float:left` — im Grid sorgt das für
   schmale Felder; daher hier auf volle Zellbreite zurücksetzen. */
@media (min-width: 600px) {
  .woocommerce-checkout .woocommerce-billing-fields__field-wrapper {
    display: grid; grid-template-columns: 1fr 1fr; column-gap: 1.25rem;
  }
  .woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row {
    width: 100%; float: none; margin-left: 0; margin-right: 0;
  }
  .woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row-wide { grid-column: 1 / -1; }
}

/* Formularfelder */
.woocommerce-checkout .form-row { margin: 0 0 1rem; padding: 0; }
.woocommerce-checkout .form-row label { font-size: 0.82rem; font-weight: 600; color: var(--pg-ink); margin-bottom: 0.3rem; display: block; }
.woocommerce-checkout .input-text,
.woocommerce-checkout select,
.woocommerce-checkout textarea {
  width: 100%; background: var(--pg-surface); border: 1px solid var(--pg-line);
  border-radius: 0; padding: 0.78em 0.9em; font: inherit; color: var(--pg-ink);
  transition: border-color 0.2s var(--pg-ease), box-shadow 0.2s var(--pg-ease);
}
.woocommerce-checkout .input-text:focus,
.woocommerce-checkout select:focus,
.woocommerce-checkout textarea:focus {
  outline: 0; border-color: var(--pg-gold-2); box-shadow: 0 0 0 3px rgba(210, 171, 102, 0.18);
}
.woocommerce-checkout .woocommerce-input-wrapper { width: 100%; }
/* Select2 (Land/Region) an Theme angleichen */
.woocommerce-checkout .select2-container--default .select2-selection--single {
  height: auto; border: 1px solid var(--pg-line); border-radius: 0; background: var(--pg-surface);
}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
  line-height: 1.4; padding: 0.78em 0.9em; color: var(--pg-ink);
}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow { height: 100%; }

/* Order-Review: in der linken Spalte verbleibt nur der Zahlungsbereich → transparent. */
.woocommerce-checkout #order_review {
  width: 100% !important; float: none !important;
  background: transparent; border: 0; border-radius: 0; padding: 0; box-shadow: none;
}
.woocommerce-checkout #order_review_heading { float: none; width: 100%; }
/* Basis für die übrigen Kassen-Tabellen — allen voran die Bestellübersicht der
   Danke-Seite, die dieselbe body-Klasse trägt.
   Das `:not()` hält diese Regeln bewusst von der Bestelltabelle der Kasse fern:
   die bringt weiter unten ihr eigenes, vollständiges Layout mit. Ohne die
   Ausnahme müsste jede einzelne Regel dort per Spezifität zurückgedreht werden —
   und ein Zeilenrahmen bliebe garantiert übrig. Eine Tabelle, ein Eigentümer. */
.woocommerce-checkout .shop_table { border: 0; margin: 0; width: 100%; }
.woocommerce-checkout .shop_table:not(.woocommerce-checkout-review-order-table) th,
.woocommerce-checkout .shop_table:not(.woocommerce-checkout-review-order-table) td { border: 0; border-bottom: 1px solid var(--pg-line); padding: 1.05rem 0.5rem 1.05rem 0; vertical-align: top; }
.woocommerce-checkout .shop_table:not(.woocommerce-checkout-review-order-table) tfoot th,
.woocommerce-checkout .shop_table:not(.woocommerce-checkout-review-order-table) tfoot td { font-weight: 600; padding: 0.85rem 0.5rem 0.85rem 0; }
.woocommerce-checkout .shop_table:not(.woocommerce-checkout-review-order-table) td + td,
.woocommerce-checkout .shop_table:not(.woocommerce-checkout-review-order-table) tfoot td { padding-left: 0.75rem; }
/* Germanized-Einheitspreis / „Produkt enthält: X ml" — klein und gedämpft */
.woocommerce-checkout .shop_table small,
.woocommerce-checkout .shop_table .wc-gzd-product-units-total,
.woocommerce-checkout .shop_table .wc-gzd-cart-info {
  display: block; font-size: 0.74rem; color: var(--pg-ink-soft);
  font-weight: 400; margin-top: 0.25rem;
}
/* Versandmethoden im tfoot sauber untereinander */
.woocommerce-checkout .shop_table .woocommerce-shipping-methods { list-style: none; margin: 0; padding: 0; }
.woocommerce-checkout .shop_table:not(.woocommerce-checkout-review-order-table) .woocommerce-shipping-methods li { margin: 0.3rem 0; font-weight: 400; }

/* Zahlungsarten — gruppierte Karten-Liste (ein Rahmen, interne Trenner,
   ausgewählte Methode hervorgehoben, Sub-Panel angedockt). */
.pg-payment-heading {
  font-family: var(--pg-font-head) !important;
  font-size: clamp(1.2rem, 2.2vw, 1.5rem) !important;
  color: var(--pg-ink) !important; margin: 0 0 0.2rem !important;
}
.pg-payment-sub { margin: 0 0 0.9rem; font-size: 0.86rem; color: var(--pg-ink-soft); }
.woocommerce-checkout #wc-stripe-express-checkout-element {
  width: 100%;
  margin: 0.8rem 0 0 !important;
  gap: 0.55rem;
  justify-content: stretch;
}
.woocommerce-checkout #wc-stripe-express-checkout-element > div {
  min-width: min(220px, 100%);
}
.woocommerce-checkout #wc-stripe-express-checkout-button-separator {
  display: none;
  position: relative;
  margin: 1rem 0 0.15rem !important;
  color: var(--pg-ink-soft);
  font-size: 0;
  line-height: 1;
}
.woocommerce-checkout #wc-stripe-express-checkout-button-separator::before {
  content: "";
  position: absolute;
  inset: 50% 0 auto;
  border-top: 1px solid var(--pg-line);
}
.woocommerce-checkout #wc-stripe-express-checkout-button-separator::after {
  content: "oder andere Zahlungsart wählen";
  position: relative;
  display: inline-block;
  padding: 0 0.75rem;
  background: var(--pg-cream);
  font-size: 0.72rem;
  line-height: 1.2;
}
.woocommerce-checkout #payment {
  background: transparent; border-radius: 0;
  border-top: 0; margin-top: 1rem; padding-top: 0;
}
.woocommerce-checkout #payment ul.payment_methods {
  border: 1px solid var(--pg-line); border-radius: 0;
  padding: 0; margin: 0 0 1rem; display: block; overflow: hidden; background: var(--pg-surface);
}
.woocommerce-checkout #payment ul.payment_methods li {
  list-style: none; border: 0; border-bottom: 1px solid var(--pg-line); border-radius: 0;
  background: transparent; padding: 0; margin: 0;
  display: flex; flex-wrap: wrap; align-items: center;
}
.woocommerce-checkout #payment ul.payment_methods li:last-child { border-bottom: 0; }
/* Radio als sichtbarer Kreis. Storefront versteckt das native Radio
   (position:absolute; clip; 1px) — daher hier erzwungen wieder einblenden. */
.woocommerce-checkout #payment ul.payment_methods li > label::before { display: none !important; }
.woocommerce-checkout #payment ul.payment_methods li > input[type="radio"] {
  appearance: none; -webkit-appearance: none; order: 0; flex: 0 0 18px;
  width: 18px !important; height: 18px !important; margin: 0 0 0 1.1rem !important;
  position: relative !important; clip: auto !important; opacity: 1 !important;
  border: 2px solid #b6ae95; border-radius: 50%; background: var(--pg-surface);
  cursor: pointer; transition: border-color 0.15s var(--pg-ease), background 0.15s var(--pg-ease);
}
/* Gewählt: goldener Ring + goldener Mittelpunkt (Pseudo-Elemente greifen bei
   <input> nicht zuverlässig — daher via Hintergrund + inset-Schatten). */
.woocommerce-checkout #payment ul.payment_methods li > input[type="radio"]:checked {
  border-color: var(--pg-gold-2); background: var(--pg-gold-2);
  box-shadow: inset 0 0 0 3px #fff;
}
.woocommerce-checkout #payment ul.payment_methods li > label {
  order: 1; flex: 1 1 auto; min-width: 0; display: flex; align-items: center; gap: 0.6rem;
  padding: 1rem 1.1rem; margin: 0; cursor: pointer; font-weight: 600; color: var(--pg-ink);
}
.woocommerce-checkout #payment ul.payment_methods li > label img {
  margin-left: auto; max-height: 24px; width: auto; display: inline-block;
}
.woocommerce-checkout #payment ul.payment_methods li > .payment_box { order: 2; flex: 0 0 100%; }
/* Ausgewählte Methode hervorheben */
.woocommerce-checkout #payment ul.payment_methods li.is-selected,
.woocommerce-checkout #payment ul.payment_methods li:has(> input[type="radio"]:checked) {
  background: rgba(210, 171, 102, 0.08); box-shadow: inset 3px 0 0 var(--pg-gold-2);
}
.woocommerce-checkout #payment .payment_box {
  background: var(--pg-cream); border-radius: 0; margin: 0;
  padding: 1rem 1.1rem 1.15rem; font-size: 0.88rem; color: var(--pg-ink-soft);
  border-top: 1px solid var(--pg-line); text-align: left;
}
.woocommerce-checkout #payment .payment_box::before { display: none; }
.woocommerce-checkout #payment .payment_box p { margin: 0; }
.woocommerce-checkout #payment div.form-row.place-order { padding: 0; margin: 1.2rem 0 0; }

/* Stripe Optimized Checkout / Payment Element.
   Der eigentliche Inhalt sitzt in einem Stripe-Iframe und wird über `appearance`
   in inc/checkout.php gestaltet. Hier bekommt sein sicherer Außenrahmen die
   passende Hierarchie und genügend Platz, ohne die Plugin-Interaktion anzufassen. */
.woocommerce-checkout #payment li.wc-stripe-optimized-checkout {
  box-shadow: inset 3px 0 0 var(--pg-gold-2);
}
.woocommerce-checkout #payment li.wc-stripe-optimized-checkout .payment_box.payment_method_stripe {
  padding: clamp(0.85rem, 2.5vw, 1.25rem) !important;
  background: #f6f2eb !important;
}
.woocommerce-checkout #payment #wc-stripe-upe-form {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
.woocommerce-checkout #payment .wc-stripe-upe-element {
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: clamp(0.7rem, 2vw, 1rem);
  border: 1px solid var(--pg-line);
  background: #fffdf9;
  box-shadow: 0 12px 34px -28px rgba(25, 21, 15, 0.55);
}
.woocommerce-checkout #payment .wc-stripe-upe-element iframe {
  display: block;
  width: 100% !important;
  max-width: none !important;
}
.woocommerce-checkout #payment .wc-stripe-payment-method-instruction,
.woocommerce-checkout #payment .testmode-info {
  margin: 0 0 0.8rem !important;
  padding: 0.65rem 0.75rem !important;
  border-left: 2px solid var(--pg-gold-2);
  background: rgba(255,255,255,0.62);
  color: var(--pg-ink-soft);
  font-size: 0.78rem;
  line-height: 1.55;
}
.woocommerce-checkout #payment .wc-stripe-copy-test-number {
  color: var(--pg-ink) !important;
  font-weight: 700 !important;
}

/* Bestellen-Button */
.woocommerce-checkout #place_order,
.woocommerce-checkout .pg-co-next {
  width: 100%; justify-content: center; text-align: center;
  background: linear-gradient(120deg, var(--pg-gold), var(--pg-gold-2)) !important;
  color: #101010 !important; border: 0; border-radius: 0;
  padding: 1.05em 1.4em; font-weight: 600; font-size: 1rem; letter-spacing: 0.02em; cursor: pointer;
  transition: transform 0.2s var(--pg-ease), box-shadow 0.2s var(--pg-ease), filter 0.2s var(--pg-ease);
}
.woocommerce-checkout #place_order:hover,
.woocommerce-checkout .pg-co-next:hover { transform: translateY(-1px); box-shadow: var(--pg-shadow-gold); filter: brightness(1.03); }
.woocommerce-checkout .pg-co-back {
  background: none; border: 0; color: var(--pg-ink-soft); cursor: pointer;
  font-size: 0.9rem; padding: 0.3rem 0; margin-bottom: 1rem; display: inline-flex; align-items: center; gap: 0.3rem;
}
.woocommerce-checkout .pg-co-back:hover { color: var(--pg-gold-2); }

/* Sicherheits-Hinweis unter dem Button */
.pg-co-secure {
  display: flex; align-items: center; justify-content: center; gap: 0.45rem;
  margin: 0.9rem 0 0; font-size: 0.8rem; color: var(--pg-ink-soft);
}
.pg-co-secure svg { color: var(--pg-gold-2); }

/* Ungültige Felder rot hervorheben */
.woocommerce-checkout .woocommerce-invalid .input-text,
.woocommerce-checkout .woocommerce-invalid select,
.woocommerce-checkout .woocommerce-invalid .select2-container--default .select2-selection--single {
  border-color: #c0392b !important;
  box-shadow: 0 0 0 3px rgba(192,57,43,0.1) !important;
}

/* Germanized-Rechtstexte/Checkboxen — Trennlinie oberhalb als visuelle Zäsur */
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper,
.woocommerce-checkout .wc-gzd-checkout-legal-checkbox { font-size: 0.88rem; color: var(--pg-ink-soft); }
.woocommerce-checkout .wc-gzd-premium-checkbox,
.woocommerce-checkout .woocommerce-additional-fields { font-size: 0.88rem; color: var(--pg-ink-soft); }

/* WooCommerce-Notices an Theme angleichen (Login/Gutschein-Toggle u.a.) */
.woocommerce-info,
.woocommerce-message {
  background: var(--pg-cream) !important; color: var(--pg-ink) !important;
  border-top: 0 !important; border-left: 3px solid var(--pg-gold-2) !important;
  border-radius: 0;
}
.woocommerce-info::before,
.woocommerce-message::before { color: var(--pg-gold-2) !important; }
/* Links in den Hinweisboxen (Login-/Gutschein-Toggle oben) waren weiß und kaum
   lesbar — normale Textfarbe, unterstrichen als Link-Affordanz. */
.woocommerce-info a, .woocommerce-message a,
.woocommerce-checkout .showlogin,
.woocommerce-checkout .showcoupon {
  color: var(--pg-ink) !important; font-weight: 600; text-decoration: underline;
}
.woocommerce-info a:hover, .woocommerce-message a:hover,
.woocommerce-checkout .showlogin:hover,
.woocommerce-checkout .showcoupon:hover { color: var(--pg-gold-2) !important; }
.woocommerce-error {
  background: rgba(200, 70, 70, 0.1) !important; color: var(--pg-ink) !important;
  border-top: 0 !important; border-left: 3px solid #d06464 !important; border-radius: 0;
}
.woocommerce-error::before { color: #d06464 !important; }

/* ============================================================
   GUTSCHEIN IM CHECKOUT (unter Produktzeilen in der Bestellübersicht)
   ============================================================ */
.pg-co-coupon-block {
  margin: 0;
}

.pg-co-pills { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-bottom: 0.55rem; }
/* Hinweis zur E-Mail-Bindung: bricht in der Pill-Zeile auf volle Breite um. */
.pg-co-pills .pg-coupon-note { flex: 1 0 100%; }
.pg-coupon-note {
  display: block; margin-top: 0.3rem;
  font-size: 0.75rem; line-height: 1.35; font-weight: 400;
  color: var(--pg-ink-soft);
}
/* AUSNAHME von der kantigen Formsprache: Gutschein-Pillen bleiben rund.
   Der eingelöste Code ist ein angehefteter Marker, kein Flächenelement — die
   Pillenform sagt „abnehmbar" und trennt ihn von den rechteckigen Feldern und
   Summen ringsum. Eckig gelesen wirkte er wie eine weitere Tabellenzelle. */
.pg-co-pill {
  display: inline-flex; align-items: center; gap: 0.35em;
  background: rgba(148,124,64,0.1);
  border: 1px solid rgba(148,124,64,0.35);
  border-radius: 999px;
  padding: 0.22em 0.5em 0.22em 0.7em;
  font-size: 0.8rem; color: var(--pg-ink);
}
.pg-co-pill__code { font-weight: 700; letter-spacing: 0.06em; }
.pg-co-pill__rm {
  display: inline-flex; align-items: center; justify-content: center;
  background: none; border: 0; padding: 0.1em; cursor: pointer;
  color: var(--pg-ink-soft); line-height: 1;
  transition: color 0.15s;
}
.pg-co-pill__rm:hover { color: #b3261e; }

.pg-co-coupon-form { display: flex; gap: 0.45rem; align-items: center; }
.pg-co-coupon-input {
  flex: 1; background: var(--pg-cream);
  border: 1px solid var(--pg-line); border-radius: 0;
  padding: 0.55em 0.75em; font-size: 0.88rem; font-family: var(--pg-font-body);
  color: var(--pg-ink); outline: none;
  transition: border-color 0.18s, box-shadow 0.18s;
}
.pg-co-coupon-input::placeholder { color: var(--pg-ink-soft); }
.pg-co-coupon-input:focus {
  border-color: var(--pg-gold-2); box-shadow: 0 0 0 3px rgba(210,171,102,0.18);
}
.pg-co-coupon-btn {
  flex: 0 0 auto; background: transparent;
  border: 1px solid var(--pg-gold-2); border-radius: 0;
  color: var(--pg-gold-2); padding: 0.55em 1em;
  font-size: 0.82rem; font-weight: 600; font-family: var(--pg-font-body);
  cursor: pointer; white-space: nowrap;
  transition: background 0.18s, color 0.18s;
}
.pg-co-coupon-btn:hover { background: var(--pg-gold-2); color: #fff; }
.pg-co-coupon-btn:disabled { opacity: 0.5; cursor: wait; }

.pg-co-coupon-msg { margin-top: 0.4rem; font-size: 0.82rem; line-height: 1.4; }
.pg-co-coupon-msg.is-ok  { color: #2d7a4f; }
.pg-co-coupon-msg.is-err { color: #b3261e; }

/* ============================================================
   BESTELLTABELLE DER KASSE — eigenes Layout, mobile-first
   ============================================================
   Die Tabellen-Semantik (table/tr/th/td) wird komplett auf Blöcke gestellt und
   jede Zeile als Flex/Grid neu aufgebaut. Grund: Die Übersicht ist auf JEDER
   Breite eine schmale Spalte (mobil = Viewport, ab 900px = halbe Grid-Spalte) —
   ein zweispaltiges th|td-Raster quetscht dort Versandoptionen, Rabattzeile und
   Gesamtpreis. Ein einziges Block-Layout für alle Breiten ist deshalb nicht nur
   einfacher, sondern auch das einzige, das durchgängig trägt.

   Verankert an `.woocommerce-checkout-review-order-table` (nicht an
   `.pg-co-summary`): Die Klasse sitzt fest an der Tabelle und überlebt sowohl das
   Verschieben per JS als auch den AJAX-Fragment-Austausch — und trifft NICHT die
   Bestelltabelle der Danke-Seite, die dieselbe body-Klasse hat.

   ACHTUNG Spezifität: Germanized (build/static/layout-styles.css) legt auf genau
   diese Tabelle eigene Regeln mit bis zu vier Klassen — u. a.
   `table.…-review-order-table .product-name { width: 45% }`, `min-width: 60px`
   aufs Bild und ab 768px `display: flex` auf den Namens-Wrapper. Die betroffenen
   Regeln unten tragen deshalb bewusst längere Selektorketten (`table…`,
   `tr.cart_item`, `td.product-name`), damit sie nicht auf die Ladereihenfolge der
   Stylesheets angewiesen sind. Beim Kürzen kippt das Layout lautlos. */
.woocommerce-checkout-review-order-table,
.woocommerce-checkout-review-order-table tbody,
.woocommerce-checkout-review-order-table tfoot,
.woocommerce-checkout-review-order-table tr,
.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td {
  display: block; width: auto; padding: 0; border: 0; text-align: left;
}
/* Tabellenkopf „Produkt / Zwischensumme" — die Zeilen sprechen für sich. */
.woocommerce-checkout-review-order-table thead { display: none; }
/* Lange Produktnamen brechen notfalls im Wort statt die Spalte zu sprengen. */
.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td { overflow-wrap: anywhere; word-break: normal; }
/* Preise: Ziffern in gleicher Breite und auf Versalhöhe. Cormorant setzt sonst
   Mediävalziffern („65,oo €") — in einer Preisspalte schlicht unleserlich. */
.woocommerce-checkout-review-order-table .woocommerce-Price-amount,
.woocommerce-checkout-review-order-table .amount {
  font-variant-numeric: lining-nums tabular-nums;
  font-feature-settings: "lnum" 1, "tnum" 1;
}

/* ---- Produktzeile: Bild | Name + Meta | Preis ---------------------------- */
.woocommerce-checkout-review-order-table tbody tr.cart_item {
  display: grid; grid-template-columns: minmax(0, 1fr) auto;
  align-items: start; gap: 0.3rem 0.9rem;
  padding: 0.95rem 0; border-bottom: 1px solid var(--pg-line);
}
.woocommerce-checkout-review-order-table tbody tr.cart_item:first-child { padding-top: 0; }

/* `width: auto` muss Germanizeds 45%-Regel schlagen → volle Selektorkette. */
table.woocommerce-checkout-review-order-table tr.cart_item td.product-name,
table.woocommerce-checkout-review-order-table tr.cart_item td.product-total { width: auto; }

.woocommerce-checkout-review-order-table td.product-name {
  position: relative; min-width: 0;
  font-size: 0.95rem; font-weight: 600; line-height: 1.35; color: var(--pg-ink);
}
/* Bild aus dem Textfluss nehmen (statt float) → Name, Badge und Meta sitzen
   unabhängig von der Bildhöhe. Germanized macht den Wrapper ab 768px zum
   Flex-Container und zwingt dem Bild min-width/max-width/margin auf — beides hier
   zurückgedreht, damit die Zeile auf allen Breiten identisch aufgebaut ist.
   Ob ein Bild da ist, verrät Germanized über die Zeilenklasse — verlässlicher als
   ein `:has()` auf die Zelle. Fehlt das Bild (Thumbnails in Germanized aus), fällt
   die Zeile auf reinen Textfluss zurück, s. u. beim Mengen-Badge. */
.woocommerce-checkout-review-order-table tr.wc-gzd-cart-item-has-thumbnail td.product-name {
  padding-left: 66px; min-height: 54px;
}
table.woocommerce-checkout-review-order-table tr.cart_item td.product-name .wc-gzd-cart-item-name-wrapper {
  display: block; overflow: visible;
}
table.woocommerce-checkout-review-order-table tr.cart_item td.product-name .wc-gzd-cart-item-name-wrapper .wc-gzd-cart-item-thumbnail {
  position: absolute; left: 0; top: 0; float: none; line-height: 0;
  width: 54px; min-width: 0; max-width: none; margin: 0;
}
.woocommerce-checkout-review-order-table .wc-gzd-cart-item-thumbnail img {
  width: 54px; height: 54px; object-fit: cover;
  border-radius: 0; border: 1px solid var(--pg-line); background: var(--pg-cream-2);
}
/* Menge als Badge auf der Bildecke (PHP liefert dafür die nackte Zahl). */
.woocommerce-checkout-review-order-table tr.wc-gzd-cart-item-has-thumbnail td.product-name .product-quantity {
  position: absolute; top: -7px; left: 39px; z-index: 1;
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 21px; height: 21px; padding: 0 6px;
  background: var(--pg-ink); color: var(--pg-cream);
  border: 2px solid var(--pg-surface); border-radius: 0;
  font-size: 0.7rem; font-weight: 700; line-height: 1; white-space: nowrap;
}
/* Ohne Bild kein Bildeck — Menge läuft als Pille hinter dem Namen mit. */
.woocommerce-checkout-review-order-table tr:not(.wc-gzd-cart-item-has-thumbnail) td.product-name .product-quantity {
  display: inline-block; margin-left: 0.4rem; padding: 0.1em 0.5em;
  background: var(--pg-cream-2); border-radius: 0;
  font-size: 0.75rem; font-weight: 700; color: var(--pg-ink);
}
.woocommerce-checkout-review-order-table td.product-total {
  text-align: right; white-space: nowrap;
  font-size: 0.95rem; font-weight: 600; color: var(--pg-ink);
}
/* Grundpreis („700,00 € / 1000 ml“) unter den Preis, nicht daneben. */
.woocommerce-checkout-review-order-table td.product-total .wc-gzd-product-units-price,
.woocommerce-checkout-review-order-table td.product-total small {
  display: block; margin-top: 0.2rem;
  font-size: 0.72rem; font-weight: 400; color: var(--pg-ink-soft);
}

/* ---- Summenzeilen: Label links, Wert rechts ------------------------------ */
.woocommerce-checkout-review-order-table tfoot { padding-top: 0.35rem; }
/* nowrap: Ein langes Label (z. B. „Gutschein: willkommen-bwfvhr") soll in seiner
   eigenen Spalte umbrechen — nicht den Betrag in die nächste Zeile schieben. */
.woocommerce-checkout-review-order-table tfoot tr {
  display: flex; flex-wrap: nowrap; justify-content: space-between;
  align-items: baseline; gap: 0.15rem 1rem;
  padding: 0.62rem 0; border-bottom: 1px solid var(--pg-line);
}
.woocommerce-checkout-review-order-table tfoot th {
  min-width: 0; font-size: 0.88rem; font-weight: 500; color: var(--pg-ink-soft);
}
.woocommerce-checkout-review-order-table tfoot td { flex: 0 0 auto; }
.woocommerce-checkout-review-order-table tfoot td {
  text-align: right; white-space: nowrap;
  font-size: 0.95rem; font-weight: 600; color: var(--pg-ink);
}

/* Rabatt — die Ersparnis ist ein Verkaufsargument und darf nicht wie eine
   weitere graue Zeile aussehen. */
.woocommerce-checkout-review-order-table tfoot tr.cart-discount th,
.woocommerce-checkout-review-order-table tfoot tr.cart-discount td,
.woocommerce-checkout-review-order-table tfoot tr.cart-discount td .woocommerce-Price-amount {
  color: #2d7a4f; font-weight: 700;
}
.woocommerce-checkout-review-order-table tfoot tr.cart-discount th {
  font-size: 0.88rem; letter-spacing: 0.01em;
}
/* Betrag und „[Entfernen]" bleiben im Textfluss: Der Betrag steht als nackter
   Textknoten („−") plus Span in der Zelle — als Flex-Container würde daraus ein
   eigenes Flex-Item mit sichtbarer Lücke („−  5,00 €"). */
.woocommerce-checkout-review-order-table tfoot tr.cart-discount .woocommerce-remove-coupon {
  margin-left: 0.4rem;
  font-size: 0.75rem; font-weight: 500; color: var(--pg-ink-soft); text-decoration: underline;
}
.woocommerce-checkout-review-order-table tfoot tr.cart-discount .woocommerce-remove-coupon:hover { color: #b3261e; }

/* Versandoptionen — auf Mobil die einzigen anzutippenden Elemente der Übersicht:
   volle Breite, Radio und Label in einer Zeile, Trefferfläche ≥44px. */
.woocommerce-checkout-review-order-table tfoot tr.shipping { display: block; }
.woocommerce-checkout-review-order-table tfoot tr.shipping th { margin-bottom: 0.3rem; }
.woocommerce-checkout-review-order-table tfoot tr.shipping td { text-align: left; white-space: normal; }
.woocommerce-checkout-review-order-table .woocommerce-shipping-methods li {
  display: flex; align-items: center; gap: 0.6rem; margin: 0;
  min-height: 44px; font-weight: 500;
}
.woocommerce-checkout-review-order-table .woocommerce-shipping-methods li + li { border-top: 1px solid var(--pg-line); }
.woocommerce-checkout-review-order-table .woocommerce-shipping-methods li label {
  margin: 0; flex: 1; cursor: pointer; font-size: 0.9rem; color: var(--pg-ink);
}
.woocommerce-checkout-review-order-table .woocommerce-shipping-methods li input[type="radio"] { flex: 0 0 auto; margin: 0; }
/* Versandhinweis („Gratisversand ab 80 €“ o. ä.) darunter, gedämpft. */
.woocommerce-checkout-review-order-table tfoot tr.shipping .woocommerce-shipping-destination,
.woocommerce-checkout-review-order-table tfoot tr.shipping p {
  margin: 0.4rem 0 0; font-size: 0.75rem; color: var(--pg-ink-soft);
}

/* Gesamt — der eine Wert, den jede Kundin sucht: eigene Fläche, größter Wert
   der Seite, klar abgesetzt von allem darüber. */
.woocommerce-checkout-review-order-table tfoot tr.order-total {
  margin-top: 0.7rem; padding: 0.85rem 1rem; border-bottom: 0;
  align-items: center; gap: 0.5rem 1rem;
  background: var(--pg-cream); border: 1px solid var(--pg-line);
  border-radius: 0;
}
.woocommerce-checkout-review-order-table tfoot tr.order-total th {
  font-family: var(--pg-font-head); font-size: 1.3rem; font-weight: 600; color: var(--pg-ink);
}
.woocommerce-checkout-review-order-table tfoot tr.order-total td { font-size: 1.05rem; }
.woocommerce-checkout-review-order-table tfoot tr.order-total .woocommerce-Price-amount {
  font-size: 1.6rem; font-weight: 800; letter-spacing: -0.01em; color: var(--pg-ink);
}
/* Steuerzeile (Germanized) hängt als Fußnote am Gesamtpreis. */
.woocommerce-checkout-review-order-table tfoot tr.order-tax,
.woocommerce-checkout-review-order-table tfoot tr.tax-total,
.woocommerce-checkout-review-order-table tfoot tr.tax-rate {
  padding: 0.45rem 1rem 0; border-bottom: 0;
}
.woocommerce-checkout-review-order-table tfoot tr.order-tax th,
.woocommerce-checkout-review-order-table tfoot tr.order-tax td,
.woocommerce-checkout-review-order-table tfoot tr.tax-total th,
.woocommerce-checkout-review-order-table tfoot tr.tax-total td,
.woocommerce-checkout-review-order-table tfoot tr.tax-rate th,
.woocommerce-checkout-review-order-table tfoot tr.tax-rate td {
  font-size: 0.78rem; font-weight: 400; color: var(--pg-ink-soft);
}

/* ---- Summary: Extras (Zahlungs-Badges + Service) ---- */
.pg-co-extras {
  display: flex; flex-direction: column; gap: 1rem;
  padding-top: 1.05rem; border-top: 1px solid var(--pg-line);
}
.pg-co-payicons { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.pg-co-payicon { display: inline-flex; line-height: 0; }
.pg-co-payicon svg { display: block; border-radius: 0; }
.pg-co-service { font-size: 0.82rem; color: var(--pg-ink-soft); line-height: 1.55; }
.pg-co-service__title {
  display: block; color: var(--pg-ink); font-size: 0.9rem; font-weight: 600; margin-bottom: 0.35rem;
}
.pg-co-service__row { display: block; }
.pg-co-service__row a { color: var(--pg-gold-2); font-weight: 600; }

/* ============================================================
   BESTELLBESTÄTIGUNG / DANKE-SEITE
   ============================================================ */
.woocommerce-order-received .site-main {
  max-width: 1120px;
  margin-inline: auto;
}
.woocommerce-order-received .entry-header {
  margin-bottom: clamp(1rem, 2.5vw, 1.8rem);
}
.woocommerce-order-received .entry-title {
  margin-bottom: 0;
  font-size: clamp(2.35rem, 6vw, 4.6rem);
  line-height: 0.95;
  letter-spacing: -0.025em;
}
.woocommerce-order-received .woocommerce-order {
  position: relative;
}
.woocommerce-order-received .woocommerce-thankyou-order-received {
  position: relative;
  max-width: 760px;
  margin: 0 0 clamp(1.5rem, 4vw, 2.5rem);
  padding: 0 0 0 3rem;
  color: var(--pg-ink-soft);
  font-size: clamp(0.98rem, 1.8vw, 1.08rem);
  line-height: 1.65;
}
.woocommerce-order-received .woocommerce-thankyou-order-received::before {
  content: "✓";
  position: absolute;
  top: 0.02rem;
  left: 0;
  display: grid;
  width: 2rem;
  height: 2rem;
  place-items: center;
  border: 1px solid var(--pg-gold-2);
  background: rgba(143,114,43,0.08);
  color: var(--pg-gold-2);
  font-size: 1rem;
  font-weight: 800;
}
.woocommerce-order-received .woocommerce-thankyou-order-received strong {
  color: var(--pg-ink);
  font-weight: 700;
}

.woocommerce-order-received ul.woocommerce-order-overview {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(155px, 1fr));
  margin: 0 0 clamp(1.6rem, 4vw, 2.8rem);
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--pg-line);
  background: var(--pg-surface);
  box-shadow: 0 16px 40px -36px rgba(25,21,15,0.55);
  border-top: 2px solid var(--pg-gold-2);
}
.woocommerce-order-received ul.woocommerce-order-overview li {
  float: none;
  width: auto !important;
  min-width: 0;
  margin: 0;
  padding: 1rem clamp(0.9rem, 2vw, 1.25rem);
  border: 0;
  border-left: 1px solid var(--pg-line);
  color: var(--pg-ink-soft);
  font-size: 0.65rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}
.woocommerce-order-received ul.woocommerce-order-overview li:first-child { border-left: 0; }
.woocommerce-order-received ul.woocommerce-order-overview li strong {
  display: block;
  margin-top: 0.35rem;
  overflow-wrap: anywhere;
  color: var(--pg-ink);
  font-family: var(--pg-font-body);
  font-size: clamp(0.88rem, 1.35vw, 1rem);
  font-weight: 650;
  line-height: 1.35;
  letter-spacing: 0;
  text-transform: none;
  font-variant-numeric: lining-nums tabular-nums;
}
.woocommerce-order-received ul.woocommerce-order-overview::before,
.woocommerce-order-received ul.woocommerce-order-overview::after {
  display: none;
}

.pg-order-next {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin: 0 0 clamp(2rem, 5vw, 4rem);
  border-block: 1px solid var(--pg-line);
}
.pg-order-next__item {
  display: flex;
  align-items: flex-start;
  gap: 0.8rem;
  padding: 1.2rem 1rem 1.2rem 0;
}
.pg-order-next__item + .pg-order-next__item {
  padding-left: clamp(1rem, 3vw, 2rem);
  border-left: 1px solid var(--pg-line);
}
.pg-order-next__icon {
  display: inline-flex;
  flex: 0 0 auto;
  color: var(--pg-gold-2);
}
.pg-order-next__item > span:last-child {
  display: flex;
  min-width: 0;
  flex-direction: column;
}
.pg-order-next__item strong {
  color: var(--pg-ink);
  font-size: 0.9rem;
}
.pg-order-next__item small {
  margin-top: 0.18rem;
  color: var(--pg-ink-soft);
  font-size: 0.76rem;
  line-height: 1.5;
}
.pg-order-next__help {
  grid-column: 1 / -1;
  padding: 0.85rem 0;
  border-top: 1px solid var(--pg-line);
  color: var(--pg-ink-soft);
  font-size: 0.8rem;
}
.pg-order-next__help a {
  color: var(--pg-gold-2);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.woocommerce-order-received .woocommerce-order-details,
.woocommerce-order-received .woocommerce-customer-details {
  margin: 0 0 clamp(2rem, 5vw, 4rem);
}
.woocommerce-order-received .woocommerce-order-details {
  padding: clamp(1.15rem, 3vw, 1.8rem);
  border: 1px solid var(--pg-line);
  border-top: 2px solid var(--pg-gold-2);
  background: var(--pg-surface);
  box-shadow: 0 18px 44px -38px rgba(25,21,15,0.55);
}
.woocommerce-order-received .woocommerce-order-details__title,
.woocommerce-order-received .woocommerce-customer-details h2 {
  margin: 0 0 1.15rem;
  color: var(--pg-ink);
  font-size: clamp(1.45rem, 3vw, 1.85rem);
  line-height: 1.1;
}
.woocommerce-order-received table.woocommerce-table--order-details {
  width: 100%;
  margin: 0;
  border: 0;
  border-top: 1px solid var(--pg-line);
  background: transparent !important;
  box-shadow: none;
}
.woocommerce-checkout.woocommerce-order-received table.woocommerce-table--order-details th,
.woocommerce-checkout.woocommerce-order-received table.woocommerce-table--order-details td {
  padding: 0.95rem clamp(0.8rem, 2.2vw, 1.1rem) !important;
  border: 0;
  border-bottom: 1px solid var(--pg-line) !important;
  vertical-align: middle;
}
.woocommerce-order-received table.woocommerce-table--order-details thead th {
  background: rgba(23,23,23,0.025) !important;
  color: var(--pg-ink-soft);
  font-size: 0.66rem;
  font-weight: 750;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.woocommerce-order-received table.woocommerce-table--order-details .product-total,
.woocommerce-order-received table.woocommerce-table--order-details tfoot td {
  width: 30%;
  text-align: right;
  font-variant-numeric: lining-nums tabular-nums;
}
.woocommerce-order-received table.woocommerce-table--order-details tbody .product-name a {
  color: var(--pg-ink);
  font-family: var(--pg-font-body);
  font-size: 0.94rem;
  font-weight: 700;
  text-decoration: none;
}
.woocommerce-order-received table.woocommerce-table--order-details tbody .product-name a:hover {
  color: var(--pg-gold-2);
}
.woocommerce-order-received table.woocommerce-table--order-details .wc-item-meta,
.woocommerce-order-received table.woocommerce-table--order-details .wc-gzd-product-units-total {
  margin: 0.22rem 0 0;
  color: var(--pg-ink-soft);
  font-size: 0.72rem;
}
.woocommerce-order-received table.woocommerce-table--order-details tfoot th {
  color: var(--pg-ink-soft);
  font-size: 0.8rem;
  font-weight: 600;
}
.woocommerce-order-received table.woocommerce-table--order-details tfoot td {
  color: var(--pg-ink);
  font-size: 0.86rem;
  font-weight: 650;
}
.woocommerce-order-received table.woocommerce-table--order-details tfoot tr:last-child th,
.woocommerce-order-received table.woocommerce-table--order-details tfoot tr:last-child td {
  border-bottom: 0 !important;
}

.woocommerce-order-received .woocommerce-columns--addresses {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1rem, 3vw, 1.5rem);
}
.woocommerce-order-received .woocommerce-columns--addresses::before,
.woocommerce-order-received .woocommerce-columns--addresses::after {
  display: none;
}
.woocommerce-order-received .woocommerce-columns--addresses .woocommerce-column {
  float: none;
  width: 100% !important;
  max-width: none;
  padding: clamp(1rem, 3vw, 1.35rem);
  border: 1px solid var(--pg-line);
  background: var(--pg-surface);
}
.woocommerce-order-received .woocommerce-customer-details .woocommerce-column__title {
  margin-bottom: 0.8rem;
  font-family: var(--pg-font-body);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.woocommerce-order-received .woocommerce-customer-details address {
  margin: 0;
  padding: 0;
  border: 0;
  color: var(--pg-ink);
  font-style: normal;
  line-height: 1.7;
}
.woocommerce-order-received .woocommerce-customer-details address p {
  margin: 0.45rem 0 0;
  color: var(--pg-ink-soft);
}

@media (max-width: 900px) {
  .woocommerce-order-received ul.woocommerce-order-overview {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .woocommerce-order-received ul.woocommerce-order-overview li,
  .woocommerce-order-received ul.woocommerce-order-overview li:nth-child(n) {
    border-bottom: 1px solid var(--pg-line);
  }
  .woocommerce-order-received ul.woocommerce-order-overview li:nth-child(odd) {
    border-left: 0;
  }
  .woocommerce-order-received ul.woocommerce-order-overview li:last-child,
  .woocommerce-order-received ul.woocommerce-order-overview li:nth-last-child(2):nth-child(odd) {
    border-bottom: 0;
  }
}

@media (max-width: 620px) {
  .woocommerce-order-received ul.woocommerce-order-overview,
  .pg-order-next,
  .woocommerce-order-received .woocommerce-columns--addresses {
    grid-template-columns: 1fr;
  }
  .woocommerce-order-received ul.woocommerce-order-overview li,
  .woocommerce-order-received ul.woocommerce-order-overview li:nth-child(n) {
    border-left: 0;
    border-bottom: 1px solid var(--pg-line);
  }
  .woocommerce-order-received ul.woocommerce-order-overview li:last-child {
    border-bottom: 0;
  }
  .pg-order-next__item + .pg-order-next__item {
    padding-left: 0;
    border-top: 1px solid var(--pg-line);
    border-left: 0;
  }
  .woocommerce-order-received .woocommerce-order-details {
    padding: 1rem;
  }
  .woocommerce-checkout.woocommerce-order-received table.woocommerce-table--order-details th,
  .woocommerce-checkout.woocommerce-order-received table.woocommerce-table--order-details td {
    padding-inline: 0.65rem !important;
  }
}

/* ============================================================
   GUTSCHEIN IM WARENKORB-DRAWER
   ============================================================ */
.pg-mc-coupon {
  padding: 0.7rem 1rem 0.5rem;
  border-bottom: 1px solid var(--pg-line-dark);
  margin-bottom: 0.6rem;
}

/* Angewendete Gutschein-Tags */
.pg-mc-coupon__tags {
  display: flex; flex-direction: column; gap: 0.35rem; margin-bottom: 0.6rem;
}
/* Rund wie die Checkout-Pille (.pg-co-pill) — siehe Begründung dort. */
.pg-mc-coupon__tag {
  display: flex; align-items: center; gap: 0.45rem;
  background: rgba(210,171,102,0.12);
  border: 1px solid rgba(210,171,102,0.35);
  border-radius: 999px;
  padding: 0.28em 0.65em 0.28em 0.55em;
  font-size: 0.8rem; color: var(--pg-on-dark);
}
.pg-mc-coupon__tag svg { color: var(--pg-gold); flex: 0 0 auto; }
/* Hinweis zur E-Mail-Bindung individueller Codes (Mini-Warenkorb: heller Text auf Dunkel) */
.pg-mc-coupon__tags .pg-coupon-note { color: rgba(255,255,255,0.62); padding: 0 0.55em; }
.pg-mc-coupon__code { font-weight: 700; letter-spacing: 0.06em; flex: 1; }
.pg-mc-coupon__save { color: var(--pg-gold); font-weight: 600; white-space: nowrap; }
.pg-mc-coupon__rem {
  background: none; border: 0; padding: 0 0.1em; line-height: 1;
  color: var(--pg-on-dark-2); cursor: pointer; font-size: 1rem;
  transition: color 0.15s;
}
.pg-mc-coupon__rem:hover { color: var(--pg-gold); }

/* Eingabe-Zeile — Drawer-Fuß hat cremefarbenen Hintergrund */
.pg-mc-coupon__form { margin: 0; }
.pg-mc-coupon__row {
  display: flex; gap: 0.4rem; align-items: center;
}
.pg-mc-coupon__input {
  flex: 1; background: var(--pg-surface);
  border: 1px solid var(--pg-line); border-radius: 0;
  padding: 0.55em 0.7em; font-size: 0.82rem; font-family: var(--pg-font-body);
  color: var(--pg-ink); outline: none;
  transition: border-color 0.18s var(--pg-ease), box-shadow 0.18s var(--pg-ease);
}
.pg-mc-coupon__input::placeholder { color: var(--pg-ink-soft); }
.pg-mc-coupon__input:focus {
  border-color: var(--pg-gold-2); box-shadow: 0 0 0 2px rgba(210,171,102,0.18);
}
.pg-mc-coupon__btn {
  flex: 0 0 auto; background: transparent;
  border: 1px solid var(--pg-gold-2); border-radius: 0;
  color: var(--pg-gold-2); padding: 0.55em 0.9em;
  font-size: 0.78rem; font-weight: 600; font-family: var(--pg-font-body);
  cursor: pointer; white-space: nowrap;
  transition: background 0.18s var(--pg-ease), color 0.18s var(--pg-ease);
}
.pg-mc-coupon__btn:hover { background: var(--pg-gold-2); color: #fff; }
.pg-mc-coupon__btn:disabled { opacity: 0.5; cursor: wait; }

/* Angewendete Tags brauchen auf hellem Hintergrund dunklere Farben */
.pg-mc-coupon__tag {
  background: rgba(148,124,64,0.08);
  border-color: rgba(148,124,64,0.3);
  color: var(--pg-ink);
}
.pg-mc-coupon__code { color: var(--pg-ink); }
.pg-mc-coupon__rem { color: var(--pg-ink-soft); }
.pg-mc-coupon__rem:hover { color: var(--pg-gold-2); }

/* Rückmeldung (Erfolg / Fehler) */
.pg-mc-coupon__msg {
  margin: 0.4rem 0 0; padding: 0; font-size: 0.78rem; line-height: 1.45;
}
.pg-mc-coupon__msg.is-ok  { color: #2d7a4f; }
.pg-mc-coupon__msg.is-err { color: #b3261e; }

/* ============================================================
   MARKEN-GRID (Startseite — template-parts/brands.php)
   ============================================================ */
.pg-brands { background: var(--pg-cream); }
.pg-brands .pg-section__head { text-align: center; }
.pg-brands .pg-section__head .pg-eyebrow { color: var(--pg-gold-2); }
.pg-brands .pg-section__title { color: var(--pg-ink); }
.pg-brands .pg-section__lead { color: var(--pg-ink-soft); }

.pg-brands__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 1rem;
  margin-top: clamp(1.5rem, 4vw, 2.5rem);
}

.pg-brand-card {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 0.6rem; padding: 1.4rem 1rem;
  background: var(--pg-surface);
  border: 1px solid var(--pg-line);
  border-radius: 0;
  color: var(--pg-ink);
  text-decoration: none;
  position: relative;
  transition: background 0.22s var(--pg-ease), border-color 0.22s var(--pg-ease), transform 0.22s var(--pg-ease), box-shadow 0.22s var(--pg-ease);
}
.pg-brand-card:hover {
  background: var(--pg-surface-2);
  border-color: var(--pg-gold);
  transform: translateY(-3px);
  box-shadow: 0 14px 30px -14px rgba(0,0,0,0.6);
  color: var(--pg-ink);
}
.pg-brand-card--own {
  border-color: var(--pg-gold-2);
  background: rgba(210,171,102,0.1);
}
.pg-brand-card__img {
  width: 64px; height: 64px; object-fit: contain; border-radius: 0;
}
.pg-brand-card__initial {
  width: 64px; height: 64px; border-radius: 50%;
  background: var(--pg-gold-2); color: #fff;
  display: grid; place-items: center;
  font-family: var(--pg-font-head); font-size: 1.8rem; font-weight: 700;
}
.pg-brand-card__name {
  font-family: var(--pg-font-head); font-size: 1.05rem; font-weight: 600; text-align: center;
}
.pg-brand-card__badge {
  position: absolute; top: 0.55rem; right: 0.55rem;
  background: var(--pg-gold-2); color: #fff;
  font-size: 0.62rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
  padding: 0.18em 0.5em; border-radius: 0;
}
.pg-brand-card__count {
  font-size: 0.74rem; color: var(--pg-ink-soft);
}

/* ============================================================
   TAKE-OFF FEATURE (Startseite — template-parts/takeoff-feature.php)
   ============================================================ */
.pg-takeoff-feature {
  background: var(--pg-bg-deep);
}
.pg-takeoff-feature__inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(2.5rem, 6vw, 4rem);
  align-items: center;
}
@media (min-width: 720px) {
  .pg-takeoff-feature__inner {
    grid-template-columns: 1fr 2fr;
  }
}

.pg-takeoff-feature__media {
  display: flex; align-items: center; justify-content: center; position: relative;
}
.pg-takeoff-feature__emblem {
  width: clamp(140px, 22vw, 220px);
  height: auto;
  border-radius: 50%;
  box-shadow: var(--pg-shadow-gold);
  position: relative; z-index: 1;
}
.pg-takeoff-feature__ring {
  position: absolute; inset: -14px;
  border-radius: 50%;
  border: 1px solid rgba(210,171,102,0.35);
  pointer-events: none;
}

.pg-takeoff-feature__content .pg-eyebrow { color: var(--pg-gold); }
.pg-takeoff-feature__content h2 {
  color: var(--pg-on-dark);
  font-size: clamp(2rem, 4.5vw, 3rem);
  margin: 0.4rem 0 1rem;
}
.pg-takeoff-feature__lead {
  color: var(--pg-on-dark); font-size: 1.06rem; line-height: 1.7; margin-bottom: 0.8rem;
}
.pg-takeoff-feature__content p { color: var(--pg-on-dark-2); }
.pg-takeoff-feature__ctas {
  display: flex; flex-wrap: wrap; gap: 0.8rem; margin-top: 1.5rem;
}
.pg-takeoff-feature .pg-btn--ghost {
  background: transparent !important;
  border: 1px solid var(--pg-gold);
  color: var(--pg-gold) !important;
}
.pg-takeoff-feature .pg-btn--ghost:hover {
  background: var(--pg-gold) !important;
  color: var(--pg-bg-deep) !important;
}

/* ============================================================
   ÜBER TAKE OFF — SEITENVORLAGE (page-ueber-take-off.php)
   ============================================================ */
.pg-takeoff-page {
  margin: 0;
}
/* WordPress adds .page-template-page-ueber-take-off-php to <body> for this template */
.page-template-page-ueber-take-off-php #content .col-full,
.page-template-page-ueber-take-off-php #primary,
.page-template-page-ueber-take-off-php .content-area,
.page-template-page-ueber-take-off-php #main {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
}
.page-template-page-ueber-take-off-php #content { padding-top: 0 !important; }
.page-template-page-ueber-take-off-php .site-content { padding-top: 0 !important; }
.page-template-page-ueber-take-off-php .page-title,
.page-template-page-ueber-take-off-php .entry-header { display: none; }

/* Hero */
.pg-to-hero {
  position: relative; min-height: clamp(340px, 55vh, 520px);
  display: flex; align-items: center; justify-content: center; overflow: hidden;
}
.pg-to-hero__bg {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
}
.pg-to-hero__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, rgba(20,20,20,0.72) 0%, rgba(20,20,20,0.55) 100%);
}
.pg-to-hero__inner {
  position: relative; z-index: 1; text-align: center;
  padding: clamp(3rem, 8vw, 6rem) clamp(1rem, 5vw, 3rem);
}
.pg-to-hero__emblem {
  width: 90px; height: 90px; border-radius: 50%;
  box-shadow: var(--pg-shadow-gold); margin-bottom: 1.2rem;
}
.pg-to-hero__title {
  font-family: var(--pg-font-head);
  font-size: clamp(2.8rem, 7vw, 5rem);
  font-weight: 700; color: var(--pg-on-dark); margin: 0.3rem 0 0.7rem;
  letter-spacing: -0.01em;
}
.pg-to-hero__sub {
  font-size: clamp(1rem, 2.2vw, 1.2rem); color: var(--pg-on-dark-2); margin: 0;
}

/* Geschichte */
.pg-to-story { background: var(--pg-cream); }
.pg-to-story__inner {
  display: grid; grid-template-columns: 1fr;
  gap: clamp(2rem, 5vw, 3.5rem); align-items: start;
}
@media (min-width: 720px) {
  .pg-to-story__inner { grid-template-columns: 1.6fr 1fr; }
}
.pg-to-story__text h2 { font-size: clamp(1.8rem, 3.5vw, 2.4rem); margin: 0.4rem 0 1.2rem; }
.pg-to-story__text p { max-width: 58ch; }

.pg-to-aside-card {
  background: var(--pg-bg); border-radius: 0;
  padding: 1.1rem 1.3rem; margin-bottom: 1rem;
  display: flex; flex-direction: column; gap: 0.3rem;
}
.pg-to-aside-card:last-child { margin-bottom: 0; }
.pg-to-aside-card__num {
  font-family: var(--pg-font-head); font-size: 2rem;
  color: var(--pg-gold); line-height: 1;
}
.pg-to-aside-card span { color: var(--pg-on-dark-2); font-size: 0.88rem; }

/* Konzept-Säulen */
.pg-to-concept { background: var(--pg-bg); }
.pg-to-concept .pg-section__head .pg-eyebrow { color: var(--pg-gold); }
.pg-to-concept .pg-section__title,
.pg-to-concept .pg-section__lead { color: var(--pg-on-dark); }
.pg-to-concept .pg-section__lead { color: var(--pg-on-dark-2); }

.pg-to-pillars {
  display: grid; grid-template-columns: 1fr;
  gap: 1.2rem;
  margin-top: clamp(1.5rem, 4vw, 2.5rem);
}
@media (min-width: 600px) { .pg-to-pillars { grid-template-columns: repeat(3, 1fr); } }

.pg-to-pillar {
  background: rgba(242,240,234,0.06); border: 1px solid var(--pg-line-dark);
  border-radius: 0; padding: 1.5rem 1.2rem; text-align: center;
}
.pg-to-pillar__ic {
  display: block; font-size: 2.2rem; margin-bottom: 0.8rem; line-height: 1;
}
.pg-to-pillar h3 {
  font-size: 1.05rem; color: var(--pg-on-dark); margin: 0 0 0.6rem;
}
.pg-to-pillar p { font-size: 0.9rem; color: var(--pg-on-dark-2); margin: 0; }

/* Produkte (Take-Off-Kollektion) */
.pg-to-products { background: var(--pg-cream); }
.pg-to-products .pg-section__head { text-align: center; }

/* Social-Media-Sektion */
.pg-to-social { background: var(--pg-bg-deep); }
.pg-to-social .pg-section__head { text-align: center; }
.pg-to-social .pg-section__head .pg-eyebrow { color: var(--pg-gold); }
.pg-to-social .pg-section__title { color: var(--pg-on-dark); }
.pg-to-social .pg-section__lead { color: var(--pg-on-dark-2); }

.pg-to-social-cards {
  display: grid; grid-template-columns: 1fr;
  gap: 1.2rem; max-width: 540px; margin: clamp(1.5rem, 4vw, 2.5rem) auto 0;
}
@media (min-width: 520px) { .pg-to-social-cards { grid-template-columns: repeat(2, 1fr); } }

.pg-to-social-card {
  display: flex; flex-direction: column; align-items: center; gap: 0.6rem;
  padding: 2rem 1.5rem; border-radius: 0;
  text-decoration: none; text-align: center;
  border: 1px solid var(--pg-line-dark);
  transition: transform 0.22s var(--pg-ease), box-shadow 0.22s var(--pg-ease);
}
.pg-to-social-card:hover { transform: translateY(-4px); box-shadow: var(--pg-shadow); }

.pg-to-social-card--ig {
  background: linear-gradient(135deg, #833ab4 0%, #c13584 40%, #e1306c 70%, #fd1d1d 100%);
  color: #fff !important;
}
.pg-to-social-card--tt {
  background: #010101; color: #fff !important;
  border-color: rgba(255,255,255,0.12);
}
.pg-to-social-card__handle {
  font-family: var(--pg-font-head); font-size: 1.25rem; font-weight: 600;
}
.pg-to-social-card__label {
  font-size: 0.8rem; letter-spacing: 0.12em; text-transform: uppercase; opacity: 0.75;
}
.pg-to-social-card__cta {
  font-size: 0.85rem; font-weight: 600; margin-top: 0.3rem; opacity: 0.9;
}

/* ============================================================
   WARENKORB: FLY-ANIMATION + TOAST
   ============================================================ */

/* Dot, der vom Button zum Warenkorb-Icon fliegt */
.pg-fly-dot {
  position: fixed;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--pg-gold);
  pointer-events: none;
  z-index: 99998;
  transition: transform .55s cubic-bezier(.4,0,.2,1), opacity .55s;
  opacity: 1;
}

/* Warenkorb-Icon: kurzer Bounce wenn Item ankommt */
@keyframes pg-cart-bounce {
  0%   { transform: scale(1); }
  35%  { transform: scale(1.35); }
  65%  { transform: scale(.9); }
  100% { transform: scale(1); }
}
.pg-cart-bounce {
  animation: pg-cart-bounce .45s var(--pg-ease) both;
}

/* Toast-Benachrichtigung (dezent, oben rechts) */
.pg-toast {
  position: fixed;
  top: 76px;
  right: 1rem;
  z-index: 99999;
  background: var(--pg-bg);
  color: var(--pg-on-dark);
  border: 1px solid rgba(210,171,102,.35);
  border-radius: 0;
  padding: .65rem 1rem;
  font-size: .87rem;
  line-height: 1.4;
  display: flex;
  align-items: center;
  gap: .55rem;
  box-shadow: 0 6px 24px rgba(0,0,0,.35);
  opacity: 0;
  transform: translateX(calc(100% + 1.5rem));
  transition: opacity .28s, transform .28s cubic-bezier(.4,0,.2,1);
  pointer-events: none;
  max-width: 260px;
}
.pg-toast.is-visible {
  opacity: 1;
  transform: translateX(0);
}
.pg-toast__check {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: rgba(210,171,102,.2);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--pg-gold);
  font-size: .85rem;
}

/* ============================================================
   GOOGLE-REZENSIONEN ([pg_google_reviews])
   ============================================================ */
.pg-gr { max-width: var(--pg-maxw); margin-inline: auto; padding-inline: clamp(1.1rem,4vw,2.5rem); }

/* Zusammenfassung: Score + Sterne + Google-Logo */
.pg-gr__summary {
  display: flex; flex-wrap: wrap; align-items: center; gap: 1.2rem;
  padding: 1.6rem 2rem; margin-bottom: 2rem;
  background: var(--pg-cream); border: 1px solid var(--pg-line);
  border-radius: 0; box-shadow: 0 2px 12px rgba(20,20,20,.06);
}
.pg-gr__score {
  font-family: var(--pg-font-head); font-size: 3.6rem; font-weight: 700;
  color: var(--pg-ink); line-height: 1;
}
.pg-gr__meta { display: flex; flex-direction: column; gap: 0.4rem; }
.pg-gr-stars { display: inline-flex; gap: 2px; }
.pg-gr__count { font-size: 0.82rem; color: var(--pg-ink-soft); }
.pg-gr__attr  { display: inline-block; margin-top: 0.2rem; opacity: 0.85; }
.pg-gr__attr:hover { opacity: 1; }

/* Karten-Grid */
.pg-gr__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.2rem; margin-bottom: 2.5rem;
}
.pg-gr__card {
  background: var(--pg-surface); border: 1px solid var(--pg-line);
  border-radius: 0; padding: 1.4rem 1.6rem;
  display: flex; flex-direction: column; gap: 0.85rem;
  transition: transform 0.2s var(--pg-ease), box-shadow 0.2s var(--pg-ease);
}
.pg-gr__card:hover { transform: translateY(-2px); box-shadow: 0 8px 24px -6px rgba(20,20,20,.1); }

.pg-gr__card-head {
  display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap;
}
.pg-gr__avatar {
  width: 40px; height: 40px; border-radius: 50%; object-fit: cover; flex: 0 0 40px;
}
.pg-gr__avatar--fallback {
  width: 40px; height: 40px; border-radius: 50%; flex: 0 0 40px;
  background: var(--pg-gold); color: #101010;
  display: inline-flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 1rem;
}
.pg-gr__author { display: block; font-size: 0.9rem; font-weight: 600; color: var(--pg-ink); }
.pg-gr__date   { display: block; font-size: 0.75rem; color: var(--pg-ink-soft); margin-top: 1px; }
.pg-gr__card-head .pg-gr-stars { margin-left: auto; }

.pg-gr__text { margin: 0; font-size: 0.88rem; color: var(--pg-ink-soft); line-height: 1.6; flex: 1; }
.pg-gr__more {
  display: inline; background: none; border: 0; padding: 0;
  color: var(--pg-gold-2); font-size: 0.82rem; font-weight: 600;
  cursor: pointer; margin-left: 0.25em;
}
.pg-gr__more:hover { text-decoration: underline; }

/* CTA */
.pg-gr__cta { text-align: center; padding: 0.5rem 0 1rem; }

/* Admin-Hinweis */
.pg-gr-notice {
  padding: 1rem 1.4rem; background: rgba(210,171,102,.12);
  border: 1px solid var(--pg-gold); border-radius: 0;
  font-size: 0.88rem; color: var(--pg-ink-soft);
}
.pg-gr-notice code { background: rgba(0,0,0,.06); padding: 0.1em 0.3em; border-radius: 0; }

/* ═══════════════════════════════════════════════════════════════════════
   Angebots-Builder „Lagerliste" (inc/offer.php · assets/js/offer.js)
   Geschützte Schnellerfassung für den Eigentümer. Schlankes, dichtes Layout.
   ═══════════════════════════════════════════════════════════════════════ */

.pg-offer-denied {
  max-width: 520px; margin: 4rem auto; text-align: center;
  padding: 2.4rem; background: var(--pg-surface); border: 1px solid var(--pg-line);
  border-radius: 0; box-shadow: var(--pg-shadow);
}

.pg-offer {
  display: grid; grid-template-columns: 1fr 360px; gap: 2rem;
  align-items: start; max-width: var(--pg-maxw); margin: 0 auto; padding: 1.5rem 0 4rem;
}
/* B2B-Schnellbestellung: kein Angebots-Panel → volle Breite. */
.pg-offer--cart { grid-template-columns: 1fr; }
.pg-offer__title { font-size: clamp(1.8rem, 3vw, 2.6rem); margin: 0 0 .4rem; }
.pg-offer__lead { color: var(--pg-ink-soft); max-width: 60ch; margin: 0 0 1.2rem; }

/* Sprachumschalter (DE / العربية) in der Lagerliste */
.pg-offer__intro { position: relative; }
.pg-langswitch {
  position: absolute; top: 0; inset-inline-end: 0; z-index: 2;
  display: inline-flex; gap: 4px; padding: 3px;
  border: 1px solid var(--pg-line, #e3dccb); border-radius: 0; background: #fff;
}
.pg-langswitch__btn {
  border: 0; background: transparent; cursor: pointer; padding: .35rem .9rem;
  border-radius: 0; font: inherit; font-size: .85rem; line-height: 1;
  color: var(--pg-ink-soft, #5b5a55);
}
.pg-langswitch__btn.is-active { background: var(--pg-ink, #141414); color: #fff; }

/* Arabisch / RTL in der Lagerliste */
.pg-offer--ar { direction: rtl; }
.pg-offer--ar .pg-offer__lead { margin-inline: 0 auto; }
.pg-offer--ar .pg-offer-card { text-align: right; }
.pg-offer--ar .pg-offer-card__name { direction: rtl; }

.pg-offer__search { margin: 0 0 1.2rem; }
.pg-offer__search input {
  width: 100%; padding: .7rem 1rem; font-size: 1rem;
  border: 1px solid var(--pg-line); border-radius: 0;
  background: var(--pg-surface); color: var(--pg-ink);
}

/* ---- Produktraster ----
   Gleiche Design-Sprache wie die B2C-Karten (Editorial: gerundetes Bild-Tile,
   Text auf der Seitenfläche), aber kompakt & werkzeughaft: Menge + Hinzufügen
   in EINER Zeile für schnelles Abarbeiten von Bestelllisten. */
.pg-offer-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
  gap: 1.6rem 1.1rem;
}
.pg-offer-card {
  display: flex; flex-direction: column;
  background: transparent; border: 0; border-radius: 0; overflow: visible;
}
.pg-offer-card__img {
  aspect-ratio: 1/1; background: var(--pg-surface-2);
  border: 1px solid var(--pg-line); border-radius: 0;
  overflow: hidden;
  transition: box-shadow .3s var(--pg-ease);
}
.pg-offer-card:hover .pg-offer-card__img { box-shadow: 0 18px 40px -22px rgba(23, 23, 23, .35); }
.pg-offer-card__img img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .6s var(--pg-ease);
}
.pg-offer-card:hover .pg-offer-card__img img { transform: scale(1.05); }
.pg-offer-card__body { padding: .75rem .1rem 0; display: flex; flex-direction: column; gap: .2rem; flex: 1; }
/* Marke zuerst — gleiche Sprache wie die B2C-Karte (.pg-card__brand): bei
   Großhandelsmengen ist sie das primäre Scan-Kriterium, nicht der Duftname. */
.pg-offer-card__brand {
  font-size: .66rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
  color: var(--pg-ink-soft);
}
.pg-offer-card__name { font-family: var(--pg-font-body); font-size: .92rem; font-weight: 600; margin: 0 0 .4rem; line-height: 1.3; }
.pg-offer-card__ek { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; margin-top: auto; }
/* EK als kleiner Gold-Chip: der Einkaufspreis ist die zentrale B2B-Information
   und darf sich sichtbar vom VK-Preis der normalen Karten unterscheiden. */
.pg-offer-card__ek-label {
  font-size: .62rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  color: var(--pg-gold-2); background: var(--pg-gold-soft);
  border: 1px solid rgba(210, 171, 102, 0.35);
  padding: .25em .6em; border-radius: 0;
}
.pg-offer-card__ek-val { font-weight: 700; font-size: 1.02rem; color: var(--pg-ink); }
.pg-offer-card__price { color: var(--pg-ink); }
.pg-offer-card__price del { color: var(--pg-ink-soft); font-weight: 400; opacity: .7; }
/* B2B-Label: kleiner neutraler Chip, damit sich der (standardmäßig sichtbare)
   B2B-Preis in der Lagerliste vom Gold-EK-Chip unterscheidet. */
.pg-offer-card__b2b-label {
  font-size: .62rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  color: var(--pg-ink-soft); background: var(--pg-surface-2);
  border: 1px solid var(--pg-line);
  padding: .25em .6em; border-radius: 0;
}
/* Augen-Icon zum Aufdecken des EK (pro Karte). Dezent, damit der Preis führt. */
.pg-offer-card__ekbtn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; padding: 0; margin-left: auto;
  color: var(--pg-ink-soft); background: transparent;
  border: 1px solid var(--pg-line); border-radius: 0;
  cursor: pointer; transition: color .15s, border-color .15s, background .15s;
}
.pg-offer-card__ekbtn:hover { color: var(--pg-gold-2); border-color: rgba(210, 171, 102, 0.5); }
.pg-offer-card__ekbtn[aria-expanded="true"] { color: var(--pg-gold-2); border-color: var(--pg-gold-2); background: var(--pg-gold-soft); }
/* EK bleibt versteckt, bis er per Karten-Toggle (.is-open) ODER dem globalen
   Schalter (.pg-offer--show-ek) aufgedeckt wird. */
.pg-offer-card__ekhidden { display: none; align-items: center; gap: .45rem; flex: 0 0 100%; margin-top: .3rem; }
.pg-offer-card__ekhidden.is-open,
.pg-offer--show-ek .pg-offer-card__ekhidden { display: flex; }
/* Globaler EK-Schalter in der Toolbar. */
.pg-offer__ektoggle {
  display: inline-flex; align-items: center; gap: .4rem;
  height: 42px; padding: 0 .9rem;
  font-size: .82rem; font-weight: 600;
  color: var(--pg-ink-soft); background: var(--pg-surface-2);
  border: 1px solid var(--pg-line); border-radius: 0;
  cursor: pointer; white-space: nowrap; transition: color .15s, border-color .15s, background .15s;
}
.pg-offer__ektoggle:hover { color: var(--pg-ink); }
.pg-offer__ektoggle.is-active { color: var(--pg-gold-2); border-color: var(--pg-gold-2); background: var(--pg-gold-soft); }
/* Aktionen in EINER Zeile: Stepper wächst, runder Icon-Button rechts. */
.pg-offer-card__actions { display: flex; flex-direction: row; gap: .5rem; align-items: center; }

/* Stepper (Karte) — edle Pille, füllt die Aktionszeile neben dem Icon-Button.
   Nur − / + und freie Zahleneingabe; bewusst KEINE nativen Spinner-Pfeile. */
.pg-offer-qty {
  display: flex; align-items: center; justify-content: space-between;
  flex: 1 1 auto; min-width: 0; height: 42px; padding: 3px; gap: 3px;
  background: var(--pg-surface-2);
  border: 1px solid var(--pg-line);
  border-radius: 0;
}
/* Höhere Spezifität (.pg-offer-qty …) nötig, um die globale input[type=number]-
   Regel (0,1,1) und Storefronts button-Styles sicher zu überschreiben. */
.pg-offer-qty .pg-offer-qty__btn {
  display: flex; align-items: center; justify-content: center;
  flex: 0 0 auto; width: 34px; height: 34px; min-height: 0; padding: 0;
  border: 0; border-radius: 50%;
  background: var(--pg-surface); color: var(--pg-ink);
  line-height: 0; cursor: pointer;
  box-shadow: 0 1px 2px rgba(23, 23, 23, .08);
  transition: background .2s var(--pg-ease), color .2s var(--pg-ease), transform .12s var(--pg-ease);
}
/* SVG-Icons zentrieren geometrisch perfekt (keine Schrift-Baseline); display:block killt den Inline-Spalt. */
.pg-offer-qty .pg-offer-qty__btn svg { display: block; }
.pg-offer-qty .pg-offer-qty__btn:hover { background: var(--pg-gold); color: #101010; }
.pg-offer-qty .pg-offer-qty__btn:active { transform: scale(.9); }
.pg-offer-qty .pg-offer-qty__input {
  flex: 1 1 auto; width: 100%; min-width: 0; height: 34px; padding: 0;
  border: 0 !important; background: transparent !important; color: var(--pg-ink);
  text-align: center; font-size: 1rem; font-weight: 600;
  -moz-appearance: textfield; appearance: none !important; -webkit-appearance: none !important;
}
.pg-offer-qty .pg-offer-qty__input:focus { outline: none; border: 0 !important; }
.pg-offer-qty .pg-offer-qty__input::-webkit-outer-spin-button,
.pg-offer-qty .pg-offer-qty__input::-webkit-inner-spin-button {
  -webkit-appearance: none !important; appearance: none !important; margin: 0; display: none;
}

/* „Hinzufügen" — runder Icon-Button (dunkel, Gold-Verlauf beim Hover über
   .pg-btn); Label steckt als .screen-reader-text im Markup. */
.pg-offer-card__add {
  flex: 0 0 auto;
  width: 42px; height: 42px;
  padding: 0 !important;
  justify-content: center;
  border-radius: 50%;
}
.pg-offer-card__add svg { display: block; }
.pg-offer-card__add.is-added,
.pg-offer-card__add.added {
  background: var(--pg-gold-2) !important;
  color: #fff !important;
}
/* WooCommerce hängt nach AJAX-AddToCart einen „Warenkorb ansehen"-Link an —
   überflüssig (Drawer öffnet automatisch), würde die Aktionszeile sprengen. */
.pg-offer-card .added_to_cart { display: none !important; }

/* ---- Eigenes Produkt ---- */
.pg-offer-custom {
  margin-top: 2rem; padding: 1.2rem; background: var(--pg-surface);
  border: 1px dashed var(--pg-line); border-radius: 0;
}
.pg-offer-custom__title { font-size: 1.15rem; margin: 0 0 .8rem; }
.pg-offer-custom__row { display: flex; flex-wrap: wrap; gap: .8rem; align-items: end; }
.pg-offer-custom__field { display: flex; flex-direction: column; gap: .25rem; flex: 1 1 120px; }
.pg-offer-custom__field--wide { flex: 2 1 220px; }
.pg-offer-custom__field span { font-size: .78rem; color: var(--pg-ink-soft); }
.pg-offer-custom__field input { padding: .55rem .7rem; border: 1px solid var(--pg-line); border-radius: 0; background: var(--pg-surface); }
.pg-offer-custom__field input[type=number] { -moz-appearance: textfield; appearance: textfield; -webkit-appearance: none; }
.pg-offer-custom__field input[type=number]::-webkit-outer-spin-button,
.pg-offer-custom__field input[type=number]::-webkit-inner-spin-button { -webkit-appearance: none; appearance: none; margin: 0; }
/* Ghost-Button auf hellem Grund NUR im Angebots-Formular (sonst gilt die globale,
   helle Variante für dunkle Hintergründe — Hero, Cookie-Banner). */
.pg-offer-custom .pg-btn--ghost { background: transparent !important; color: var(--pg-ink) !important; border: 1px solid var(--pg-ink) !important; }

/* ---- Angebots-Panel (sticky) ---- */
.pg-offer-panel { position: sticky; top: 90px; }
.pg-offer-panel__inner {
  background: var(--pg-bg); color: var(--pg-on-dark);
  border-radius: 0; padding: 1.3rem; box-shadow: var(--pg-shadow);
}
.pg-offer-panel__title { color: var(--pg-on-dark); font-size: 1.4rem; margin: 0 0 1rem; }
.pg-offer-panel__namefield,
.pg-offer-panel__notefield { display: block; margin-bottom: .8rem; }
.pg-offer-panel__namefield span,
.pg-offer-panel__notefield span { display: block; font-size: .78rem; color: var(--pg-on-dark-2); margin-bottom: .25rem; }
/* Höhere Spezifität (.pg-offer-panel …) nötig: die globale input[type=text/email]-
   Regel (helle Storefront-Felder) steht später im Quelltext und würde sonst den
   dunklen Hintergrund überschreiben → helle Schrift auf hell = unsichtbar. */
.pg-offer-panel .pg-offer-panel__namefield input,
.pg-offer-panel .pg-offer-panel__notefield textarea {
  width: 100%; padding: .6rem .7rem; border: 1px solid var(--pg-line-dark);
  border-radius: 0; background: var(--pg-bg-soft); color: var(--pg-on-dark); font-family: inherit;
  -webkit-text-fill-color: var(--pg-on-dark); caret-color: var(--pg-gold);
}
.pg-offer-panel .pg-offer-panel__namefield input::placeholder,
.pg-offer-panel .pg-offer-panel__notefield textarea::placeholder { color: var(--pg-on-dark-2); -webkit-text-fill-color: var(--pg-on-dark-2); }
.pg-offer-panel .pg-offer-panel__namefield input:focus,
.pg-offer-panel .pg-offer-panel__notefield textarea:focus {
  outline: none; border-color: var(--pg-gold); background: var(--pg-bg-deep);
}
/* Browser-Autofill würde den Hintergrund hell überschreiben → Text unlesbar.
   Per inset-Schatten den dunklen Hintergrund erzwingen, Textfarbe creme halten. */
.pg-offer-panel__namefield input:-webkit-autofill,
.pg-offer-panel__notefield textarea:-webkit-autofill,
.pg-offer-panel__namefield input:-webkit-autofill:focus,
.pg-offer-panel__notefield textarea:-webkit-autofill:focus {
  -webkit-text-fill-color: var(--pg-on-dark);
  -webkit-box-shadow: 0 0 0 1000px var(--pg-bg-soft) inset;
  box-shadow: 0 0 0 1000px var(--pg-bg-soft) inset;
  caret-color: var(--pg-gold);
}
.pg-offer-panel__notefield textarea { resize: vertical; }

.pg-offer-list { list-style: none; margin: .6rem 0; padding: 0; max-height: 46vh; overflow-y: auto; }
.pg-offer-list__empty { color: var(--pg-on-dark-2); font-size: .9rem; padding: 1rem 0; text-align: center; }
.pg-offer-row {
  display: flex; align-items: center; justify-content: space-between; gap: .6rem;
  padding: .55rem 0; border-bottom: 1px solid var(--pg-line-dark);
}
.pg-offer-row__info { display: flex; flex-direction: column; min-width: 0; }
.pg-offer-row__name { font-size: .88rem; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 150px; }
.pg-offer-row__ek { font-size: .78rem; color: var(--pg-on-dark-2); }
.pg-offer-row__ctrl { display: flex; align-items: center; gap: .2rem; flex: 0 0 auto; }
.pg-offer-row__step, .pg-offer-row__del {
  display: flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; padding: 0; border: 1px solid var(--pg-line-dark); background: transparent;
  color: var(--pg-on-dark); border-radius: 0; cursor: pointer; font-size: 1.05rem; line-height: 1;
}
.pg-offer-row__step:hover { background: rgba(242,240,234,.1); }
.pg-offer-row__del:hover { background: rgba(220,80,80,.25); border-color: rgba(220,80,80,.5); }
.pg-offer-row__qty {
  width: 40px; height: 28px; text-align: center; border: 1px solid var(--pg-line-dark);
  background: rgba(0,0,0,.22); color: var(--pg-on-dark); border-radius: 0; font-size: .9rem;
  -moz-appearance: textfield; appearance: textfield; -webkit-appearance: none;
}
.pg-offer-row__qty::-webkit-outer-spin-button,
.pg-offer-row__qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.pg-offer-panel__foot { margin-top: 1rem; }
.pg-offer-sum { display: flex; justify-content: space-between; align-items: baseline; font-size: 1.05rem; padding: .6rem 0; border-top: 1px solid var(--pg-line-dark); }
.pg-offer-sum strong { color: var(--pg-gold); font-size: 1.25rem; }
.pg-offer-submit { width: 100%; margin-top: .8rem; }
.pg-offer-submit:disabled { opacity: .5; cursor: not-allowed; }
.pg-offer-clear { display: block; width: 100%; margin-top: .5rem; background: transparent; border: 0; color: var(--pg-on-dark-2); font-size: .8rem; cursor: pointer; text-decoration: underline; }
.pg-offer-clear:hover { color: var(--pg-on-dark); }
.pg-offer-msg { margin: .7rem 0 0; font-size: .85rem; min-height: 1.2em; }
.pg-offer-msg--ok { color: var(--pg-gold); }
.pg-offer-msg--error { color: #f0a3a3; }
.pg-offer-msg a { color: var(--pg-gold); }

@media (max-width: 900px) {
  .pg-offer { grid-template-columns: 1fr; }
  .pg-offer-panel { position: static; order: -1; }
  .pg-offer-list { max-height: 32vh; }
}

/* ====================== Storefront-Default-Farben heben =======================
   Storefront färbt etliche Überschriften/Texte hart (#333 / #43454b). „inherit"
   lässt Überschriften die Textfarbe ihres Kontextes erben → dunkel auf hellem
   Inhalt, Elfenbein in dunklen Sektionen/Footer. */
h1, h2, h3, h4, h5, h6 {
  color: inherit;
}
.woocommerce div.product .product_title,
.pg-frag-h,
.woocommerce-tabs .tabs li a,
.woocommerce-Tabs-panel h2,
.wc-tab h2,
.related > h2, .up-sells > h2, .cross-sells > h2,
.cart_totals h2, .shipping-calculator-button,
.woocommerce-billing-fields h3, .woocommerce-shipping-fields h3,
.woocommerce-MyAccount-content h2, .woocommerce-MyAccount-content h3,
.woocommerce-order-details h2, .woocommerce-customer-details h2,
.woocommerce-column__title, .woocommerce-order-overview {
  color: var(--pg-ink);
}
/* Aktiver Produkt-Tab in Gold (statt Storefront-Default) */
.woocommerce-tabs .tabs li.active a {
  color: var(--pg-gold);
}

/* Formularfelder: Storefront-Default (#f2f2f2 hell) auf dunkle Flächen umstellen. */
input[type="text"], input[type="email"], input[type="tel"], input[type="password"],
input[type="search"], input[type="number"], input[type="url"], input[type="date"],
input[type="month"], textarea, select, .input-text {
  background-color: var(--pg-surface-2);
  color: var(--pg-ink);
  border: 1px solid var(--pg-line);
}
input[type="text"]:focus, input[type="email"]:focus, input[type="tel"]:focus,
input[type="password"]:focus, input[type="number"]:focus, input[type="url"]:focus,
textarea:focus, select:focus, .input-text:focus {
  border-color: var(--pg-gold);
  outline: none;
}
input::placeholder, textarea::placeholder { color: var(--pg-ink-soft); }
/* native Select-Optionen auf Systemebene lesbar halten */
select option { background-color: var(--pg-surface); color: var(--pg-ink); }

/* Storefront-Tabellen (#eee/#f8f8f8 hell) auf dunkel: Warenkorb, Checkout, Konto.
   Ausnahme `tr.order-total`: Die Gesamt-Zeile der Kasse ist bewusst eine
   abgesetzte Fläche (s. Bestelltabelle weiter oben) — dieses `!important` würde
   sie sonst wieder transparent bügeln. Kein Rückfall auf Storefronts Grau, weil
   dessen Hintergrund an der Tabelle hängt, nicht an der Zeile. */
.woocommerce table.shop_table,
.woocommerce table.shop_table thead,
.woocommerce table.shop_table tbody,
.woocommerce table.shop_table tfoot,
.woocommerce table.shop_table tr:not(.order-total),
.woocommerce table.shop_table th,
.woocommerce table.shop_table td,
.woocommerce-checkout-review-order-table,
.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td,
.cart_totals table, .cart_totals th, .cart_totals td,
.woocommerce-orders-table, .woocommerce-orders-table td, .woocommerce-orders-table th,
.woocommerce-table--order-details, .woocommerce-table--order-details td, .woocommerce-table--order-details th {
  background-color: transparent !important;
  color: var(--pg-ink);
  border-color: var(--pg-line) !important;
}

/* Zahlungsart-Beschreibungsbox (SEPA-Felder etc.) — Storefront #fafafa → dunkel. */
.woocommerce-checkout .payment_box {
  background-color: var(--pg-surface-2) !important;
  color: var(--pg-ink);
}
.woocommerce-checkout .payment_box::before {
  border-bottom-color: var(--pg-surface-2) !important;
}

/* ============================================================
   Schwebendes Deal-Badge (Startseiten-Hero)
   Rundes, dauerhaft rotierendes Medaillon rechts. Der weiße
   Hintergrund des Quell-JPEGs sitzt nur in den Ecken außerhalb
   des Kreises und wird durch border-radius:50% + leichten Zoom
   sauber weggeschnitten — keine Freistellung nötig.
   Die Rotation selbst kommt aus JS (Federanimation), hier nur
   Position/Form.
   ============================================================ */
.pg-deal-badge {
  position: fixed;
  right: clamp(0.6rem, 2.2vw, 2rem);
  top: 50%;
  transform: translateY(-50%);
  z-index: 90;
  display: block;
  width: clamp(86px, 11vw, 150px);
  height: clamp(86px, 11vw, 150px);
  border-radius: 50%;
  /* Goldring + Schatten als Rahmen ums runde Badge. */
  box-shadow:
    0 0 0 1px rgba(210, 171, 102, 0.55),
    0 0 0 7px rgba(210, 171, 102, 0.10),
    0 18px 44px -14px rgba(0, 0, 0, 0.85);
  /* Sanftes Hereinschweben beim ersten Laden + Hover. */
  transition:
    scale 0.35s var(--pg-ease, cubic-bezier(0.22, 1, 0.36, 1)),
    opacity 0.2s ease,
    visibility 0.2s ease;
  -webkit-tap-highlight-color: transparent;
}
.pg-deal-badge:hover,
.pg-deal-badge:focus-visible {
  scale: 1.06;
  outline: none;
}
.pg-deal-badge--hidden-zone {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.pg-deal-badge__img {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
  /* Leichter Zoom drückt den verbleibenden weißen Rand aus dem Kreis. */
  scale: 1.06;
  will-change: transform;
  /* Fallback-Rotation per CSS, falls JS (noch) nicht läuft. */
  animation: pg-deal-spin 16s linear infinite;
}
/* Sobald JS die Steuerung übernimmt, CSS-Fallback abschalten. */
.pg-deal-badge--js .pg-deal-badge__img {
  animation: none;
}
@keyframes pg-deal-spin {
  to { rotate: 360deg; }
}

@media (max-width: 991px) {
  /* Mobil/Tablet: unten rechts, knapp über der fixen Bottom-Nav (~58px) —
     sichtbar, aber nicht im Weg. Etwas kleiner als auf Desktop. */
  .pg-deal-badge {
    top: auto;
    bottom: calc(58px + env(safe-area-inset-bottom) + 0.7rem);
    right: clamp(0.6rem, 3vw, 1rem);
    transform: none;
    width: clamp(64px, 19vw, 88px);
    height: clamp(64px, 19vw, 88px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .pg-deal-badge__img { animation: none; }
  .pg-deal-badge { transition: none; }
}

/* ============================================================
   Aktionen & Rabatte (Archiv /aktionen/ + Einzelaktion)
   ============================================================ */
.pg-aktionen-page .pg-center-cta {
  margin-top: 1.4rem;
}
.pg-aktion-list {
  display: flex;
  flex-direction: column;
  gap: clamp(1.4rem, 3vw, 2.4rem);
  margin-top: clamp(1.8rem, 4vw, 3rem);
}
.pg-aktion-card {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: clamp(1.2rem, 3vw, 2.2rem);
  align-items: center;
  background: var(--pg-surface);
  border: 1px solid var(--pg-line);
  border-radius: 0;
  overflow: hidden;
  padding: clamp(1rem, 2.4vw, 1.6rem);
  box-shadow: 0 18px 44px -30px rgba(0, 0, 0, 0.35);
}
/* Aktionen ohne Bild: einspaltig. */
.pg-aktion-card:not(:has(.pg-aktion-card__media)) {
  grid-template-columns: 1fr;
}
.pg-aktion-card__media {
  margin: 0;
  border-radius: 0;
  overflow: hidden;
  aspect-ratio: 4 / 3;
}
.pg-aktion-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.pg-aktion-card__title {
  font-size: clamp(1.5rem, 3vw, 2.1rem);
  margin: 0 0 0.6rem;
  color: var(--pg-ink);
}
.pg-aktion-card__content {
  color: var(--pg-ink-soft);
  line-height: 1.7;
}
.pg-aktion-card__content > :first-child { margin-top: 0; }
.pg-aktion-card__content > :last-child { margin-bottom: 0; }
.pg-aktion-card__content img {
  max-width: 100%;
  height: auto;
  border-radius: 0;
}
.pg-aktion-empty {
  text-align: center;
  color: var(--pg-ink-soft);
  padding: 3rem 0;
}

/* --- Regel-Chips + CTA (Archiv-Karte & Einzelseite) --- */
.pg-promo-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0 0 0.9rem;
}
.pg-section__head .pg-promo-meta {
  justify-content: center;
  margin-top: 1rem;
}
.pg-promo-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.32rem 0.75rem;
  border-radius: 0;
  border: 1px solid var(--pg-line);
  background: var(--pg-surface-2);
  color: var(--pg-ink-soft);
  font-size: 0.74rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  white-space: nowrap;
}
.pg-promo-chip--deal {
  background: linear-gradient(120deg, var(--pg-gold), var(--pg-gold-2));
  border-color: transparent;
  color: #16130c;
}
.pg-promo-chip--time {
  border-color: rgba(210, 171, 102, 0.55);
  color: var(--pg-gold-2);
  background: var(--pg-gold-soft);
}
.pg-promo-chip--aud {
  border-style: dashed;
}
.pg-promo-chip--ended {
  background: transparent;
  text-decoration: line-through;
}
.pg-promo-cta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.4rem 1rem;
  margin: 0 0 1rem;
}
.pg-section__head .pg-promo-cta {
  justify-content: center;
  margin-top: 1.2rem;
}
.pg-promo-cta__hint {
  color: var(--pg-ink-soft);
  font-size: 0.86rem;
}
.pg-btn--sm {
  padding: 0.55rem 1.2rem;
  font-size: 0.82rem;
}

/* Warenkorb-Drawer: angewendete Aktionen unter der Zwischensumme. */
.pg-mc-promos {
  margin: 0.4rem 0 0.6rem;
  padding: 0.5rem 0.8rem;
  border: 1px dashed rgba(210, 171, 102, 0.55);
  border-radius: 0;
  background: var(--pg-gold-soft);
}
.pg-mc-promo {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin: 0.15rem 0;
  font-size: 0.88rem;
}
.pg-mc-promo__amount {
  font-weight: 700;
  white-space: nowrap;
}

/* Einzelaktion */
.pg-wrap--narrow {
  max-width: 820px;
}
.pg-aktion-detail__media {
  margin: 0 0 1.6rem;
  border-radius: 0;
  overflow: hidden;
}
.pg-aktion-detail__media img {
  width: 100%;
  height: auto;
  display: block;
}
.pg-aktion-detail__content {
  color: var(--pg-ink-soft);
  line-height: 1.75;
  font-size: 1.05rem;
}
.pg-aktion-detail__content img {
  max-width: 100%;
  height: auto;
  border-radius: 0;
}

@media (max-width: 720px) {
  .pg-aktion-card {
    grid-template-columns: 1fr;
  }
  .pg-aktion-card__media {
    aspect-ratio: 16 / 9;
  }
}

/* ============================== FAQ-Accordion =========================== */
.pg-faq {
  padding: clamp(3rem, 7vw, 6rem) 0;
}
.pg-faq__head {
  margin-bottom: clamp(1.8rem, 4vw, 3rem);
}
.pg-faq__list {
  max-width: 820px;
  margin-inline: auto;
}

/* Einzelner Eintrag */
.pg-faq__item {
  border: 1px solid var(--pg-line);
  border-radius: 0;
  background: var(--pg-surface);
  margin-bottom: 0.85rem;
  overflow: hidden;
  transition: border-color 0.25s var(--pg-ease), box-shadow 0.25s var(--pg-ease);
}
.pg-faq__item[open] {
  border-color: rgba(210, 171, 102, 0.45);
  box-shadow: var(--pg-shadow-gold);
}

/* Frage (klickbarer Kopf) */
.pg-faq__q {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.15rem clamp(1.1rem, 3vw, 1.6rem);
  cursor: pointer;
  list-style: none;
  font-family: var(--pg-font-head);
  font-size: clamp(1.15rem, 2.4vw, 1.5rem);
  line-height: 1.3;
  color: var(--pg-ink);
  transition: color 0.2s var(--pg-ease);
}
.pg-faq__q::-webkit-details-marker { display: none; }
.pg-faq__q:hover { color: var(--pg-gold-2); }
.pg-faq__item[open] .pg-faq__q { color: var(--pg-gold-2); }

.pg-faq__q-text { flex: 1; }

/* Chevron-Icon */
.pg-faq__icon {
  flex: none;
  color: var(--pg-gold-2);
  transition: transform 0.3s var(--pg-ease);
}
.pg-faq__item[open] .pg-faq__icon {
  transform: rotate(180deg);
}

/* Antwort */
.pg-faq__a {
  padding: 0 clamp(1.1rem, 3vw, 1.6rem) 1.3rem;
  color: var(--pg-ink-soft);
  font-size: 1rem;
  line-height: 1.7;
}
.pg-faq__a > :first-child { margin-top: 0; }
.pg-faq__a > :last-child { margin-bottom: 0; }
.pg-faq__a a {
  color: var(--pg-gold-2);
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Sanftes Aufklappen (nur wo unterstützt; sonst ohne Animation) */
@supports (interpolate-size: allow-keywords) {
  .pg-faq__item {
    interpolate-size: allow-keywords;
  }
  .pg-faq__item::details-content {
    height: 0;
    overflow: hidden;
    opacity: 0;
    transition: height 0.3s var(--pg-ease), opacity 0.3s var(--pg-ease), content-visibility 0.3s allow-discrete;
    content-visibility: hidden;
  }
  .pg-faq__item[open]::details-content {
    height: auto;
    opacity: 1;
    content-visibility: visible;
  }
}

/* Auf dunklen Sektionen (z. B. [pg_faq] in pg-section--dark) */
.pg-section--dark .pg-faq__item {
  background: var(--pg-bg-soft);
  border-color: var(--pg-line-dark);
}
.pg-section--dark .pg-faq__q { color: var(--pg-on-dark); }
.pg-section--dark .pg-faq__q:hover,
.pg-section--dark .pg-faq__item[open] .pg-faq__q { color: var(--pg-gold); }
.pg-section--dark .pg-faq__icon { color: var(--pg-gold); }
.pg-section--dark .pg-faq__a { color: var(--pg-on-dark-2); }
.pg-section--dark .pg-faq__a a { color: var(--pg-gold); }

/* =========================================================================
   Kontaktseite (page-kontakt.php) — Full-Bleed-Split-Layout
   ========================================================================= */
/* Volle Breite erzwingen (Storefront-.col-full-Begrenzung aufheben). */
.page-template-page-kontakt-php #content .col-full,
.page-template-page-kontakt-php #primary,
.page-template-page-kontakt-php .content-area,
.page-template-page-kontakt-php #main {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
}
.page-template-page-kontakt-php #content { padding-top: 0 !important; }
.page-template-page-kontakt-php .site-content { padding-top: 0 !important; }
.page-template-page-kontakt-php .page-title,
.page-template-page-kontakt-php .entry-header { display: none; }

.pg-contact-page { margin: 0; }

/* Hero — kein Top-Padding: der einheitliche Breadcrumb-Abstand reicht,
   so beginnt der Inhalt genauso hoch wie auf Standardseiten. */
.pg-contact-hero {
  text-align: center;
  padding-top: 0;
  padding-bottom: clamp(1.6rem, 4vw, 2.6rem);
}
.pg-contact-hero__title {
  font-size: clamp(2.2rem, 6vw, 3.6rem);
  margin: 0 0 0.8rem;
}
.pg-contact-hero .pg-section__lead {
  margin-inline: auto;
  max-width: 640px;
}

/* Split-Sektion: Info-Panel + Karte, edge-to-edge */
.pg-contact-split {
  display: grid;
  grid-template-columns: 1fr;
}
@media (min-width: 900px) {
  .pg-contact-split {
    grid-template-columns: minmax(440px, 1fr) 1.35fr;
    align-items: stretch;
  }
}

/* Linkes Info-Panel (dunkel) */
.pg-ci {
  background: var(--pg-bg);
  color: var(--pg-on-dark);
  padding: clamp(2.4rem, 5vw, 4.6rem) clamp(1.4rem, 5vw, 4.6rem);
  display: flex;
  align-items: center;
}
.pg-ci__inner {
  width: 100%;
  max-width: 520px;
  margin-inline: auto;
}
.pg-ci__title {
  font-size: clamp(1.7rem, 3.5vw, 2.3rem);
  color: var(--pg-on-dark);
  margin: 0 0 2rem;
}
.pg-ci__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1.6rem;
}
.pg-ci__item {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1rem;
  padding-bottom: 1.6rem;
  border-bottom: 1px solid var(--pg-line-dark);
}
.pg-ci__item:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}
.pg-ci__ic {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: var(--pg-gold-soft);
  color: var(--pg-gold);
  flex-shrink: 0;
}
.pg-ci__body h3 {
  font-family: var(--pg-font-body);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.74rem;
  font-weight: 600;
  color: var(--pg-on-dark-2);
  margin: 0.3rem 0 0.5rem;
}
.pg-ci__body address {
  font-style: normal;
  font-size: 1.05rem;
  line-height: 1.55;
  color: var(--pg-on-dark);
  margin: 0 0 0.7rem;
}
.pg-ci__value {
  display: inline-block;
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--pg-on-dark) !important;
}
.pg-ci__value:hover { color: var(--pg-gold) !important; }
.pg-ci__note {
  color: var(--pg-on-dark-2);
  font-size: 0.88rem;
  margin: 0.35rem 0 0;
}
.pg-ci__link {
  display: inline-block;
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--pg-gold) !important;
}
.pg-ci__link:hover { padding-left: 3px; }

.pg-ci__hours {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.4rem;
  max-width: 280px;
}
.pg-ci__hours li {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  font-size: 0.98rem;
  color: var(--pg-on-dark);
}
.pg-ci__hours li span:first-child { color: var(--pg-on-dark-2); }
.pg-ci__hours li span:last-child { font-weight: 600; }
.pg-ci__hours li.is-closed span:last-child {
  color: var(--pg-on-dark-2);
  font-weight: 400;
}

/* Rechte Seite: Karte */
.pg-ci-map {
  min-height: 420px;
  position: relative;
}

/* Karte / Google-Maps-Embed (DSGVO-gated) */
.pg-map {
  position: relative;
  overflow: hidden;
  height: 100%;
  min-height: inherit;
  background: var(--pg-bg-soft);
}
.pg-map__frame {
  width: 100%;
  height: 100%;
  display: block;
}
.pg-map__frame[hidden] { display: none; }

.pg-map__consent {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  text-align: center;
  padding: 1.6rem;
  overflow: auto;
  background: linear-gradient(rgba(10, 10, 10, 0.86), rgba(10, 10, 10, 0.94));
}
/* WICHTIG: ohne diese Regel überschreibt display:grid das hidden-Attribut,
   das Overlay würde nach dem Laden nicht verschwinden. */
.pg-map__consent[hidden] { display: none !important; }
.pg-map__consent-inner {
  max-width: 420px;
  color: var(--pg-on-dark);
}
.pg-map__consent-inner h3 {
  font-size: 1.4rem;
  margin: 0 0 0.6rem;
  color: var(--pg-on-dark);
}
.pg-map__consent-inner p {
  color: var(--pg-on-dark-2);
  font-size: 0.92rem;
  margin: 0 0 1rem;
}
.pg-map__consent-inner p a { color: var(--pg-gold); }
.pg-map__remember {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.86rem;
  color: var(--pg-on-dark-2);
  margin-bottom: 1.1rem;
  cursor: pointer;
}
.pg-map__fallback {
  display: block;
  margin-top: 0.9rem;
  font-size: 0.86rem;
  color: var(--pg-on-dark-2) !important;
}
.pg-map__fallback:hover { color: var(--pg-gold) !important; }

/* ===================== Haftung: UGC-Hinweis + Melden-Link =================== */
/* Dezenter Hinweis + „Melden"-Link für nutzergenerierte Inhalte (inc/legal.php). */
.pg-ugc-note {
  font-size: .8rem;
  line-height: 1.5;
  opacity: .7;
  margin: .25rem 0 1.25rem;
}
.pg-report {
  font-size: .72rem;
  opacity: .5;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.pg-report:hover,
.pg-report:focus { opacity: .95; }
.pg-report-wrap { margin-left: .5rem; white-space: nowrap; }
.pg-gb-entry__foot { margin-top: .4rem; }

/* ============================================================================
   Shop-Verbesserungen (Duftrichtung, Bestseller, B2B-Preis, Related,
   B2B-Karte: Lager + Zeilenansicht, Vorkasse-Danke-Seite)
   ========================================================================== */

/* ---- Bestseller-Badge (Grid) — Onyx-Etikett mit Champagner-Prägung.
   Der dunkle Grund hebt sich auch von sehr hellen Produktbildern klar ab,
   ohne mit deren Goldtönen zu konkurrieren. Sale hat weiterhin Vorrang. ---- */
.pg-card__badge--bestseller {
  background: linear-gradient(120deg, #141414 0%, #2b251c 100%);
  color: #ecd9ab;
  border: 1px solid rgba(236, 217, 171, 0.68);
  box-shadow:
    0 10px 24px -12px rgba(0, 0, 0, 0.7),
    inset 0 1px 0 rgba(255, 255, 255, 0.08);
  letter-spacing: 0.14em;
  font-weight: 700;
}

/* ---- Duftrichtungs-Zeile auf der B2C-Karte ----
   Auszeichnungszeile über dem Namen (Referenz-Design): Gold, Versalien, gesperrt.
   Der farbige Punkt bleibt — er codiert die Duftfamilie und ist die einzige
   Information, die die Karte sonst nicht trägt. */
/* Genau EINE Zeile, feste Höhe: die Duftrichtungs-Zeile ist eine typografische
   Konstante der Karte — sie steht auch dann, wenn keine Duftfamilie gepflegt
   ist. Was nicht hineinpasst, wird geschnitten; so stehen Marke und Duftname
   einer Grid-Reihe immer bündig. Der Wrapper aus pg_scent_family_chips() wird
   per display:contents aufgelöst, damit die Chips direkt in dieser Zeile sitzen. */
.pg-card__eyebrow {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-start;
  gap: 0 0.6rem;
  margin: 0 0 0.5rem;
  height: 0.8rem;
  overflow: hidden;
}
.pg-card__eyebrow .pg-card__scents {
  display: contents;
}
/* Duftrichtungs-Chips außerhalb der Karte (z. B. Produktseite). */
.pg-card__scents {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 0.2rem 0.6rem;
}
.pg-card__scent {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  white-space: nowrap;
  gap: 0.35rem;
  font-size: 0.6rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--pg-gold-2);
  line-height: 1.3;
}
.pg-card__scent-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  display: inline-block;
  flex: 0 0 auto;
}
.pg-card__scent--more {
  color: var(--pg-ink-soft);
  opacity: 0.7;
  font-weight: 600;
}
/* Der Karten-Body ist eine Flex-Spalte mit align-items:stretch — Inline-Elemente
   wie B2B-Preis und Bestandshinweis würden sonst auf volle Breite gezogen. */
.pg-card__body > .pg-card__b2b,
.pg-card__body > .pg-card__stock {
  align-self: flex-start;
}

/* ---- B2B-Preis-Pille auf der B2C-Karte (nur für B2B-Kunden sichtbar) ----
   Gerahmte Gold-Pille wie im Referenz-Design: „B2B  20,00 €". */
.pg-card__b2b {
  margin-top: 0.55rem;
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--pg-gold-2);
  display: inline-flex;
  align-items: baseline;
  gap: 0.45rem;
  padding: 0.4em 0.95em;
  border: 1px solid rgba(210, 171, 102, 0.55);
  border-radius: 0;
  background: var(--pg-gold-soft);
}
.pg-card__b2b-label {
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--pg-gold-2);
}
.pg-card__b2b .woocommerce-Price-amount {
  color: var(--pg-gold-2) !important;
  font-weight: 700;
}

/* ---- B2B-Preis-Hinweis auf der Produkt-Einzelseite ---- */
.pg-b2b-inline {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.5rem 0.9rem;
  margin: 0.4rem 0 1rem;
  padding: 0.7rem 1rem;
  background: var(--pg-gold-soft);
  border: 1px solid rgba(210, 171, 102, 0.35);
  border-left: 3px solid var(--pg-gold);
  border-radius: 0;
}
.pg-b2b-inline__label {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--pg-gold-2);
}
.pg-b2b-inline__val {
  font-family: var(--pg-font-head);
  font-size: 1.35rem;
  font-weight: 600;
  color: var(--pg-gold-2);
}
.pg-b2b-inline__val .woocommerce-Price-amount {
  color: var(--pg-gold-2) !important;
}
.pg-b2b-inline__link {
  margin-left: auto;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--pg-gold-2);
  text-decoration: none;
  white-space: nowrap;
}
.pg-b2b-inline__link:hover { text-decoration: underline; }

/* ---- „Ähnliche Düfte" (Related) — nutzt das bestehende ul.products-Grid ---- */
.pg-related {
  margin: 3rem 0 1rem;
  clear: both;
}
.pg-related__title {
  font-family: var(--pg-font-head);
  font-size: clamp(1.4rem, 2.6vw, 1.9rem);
  margin: 0 0 1.2rem;
}

/* ---- B2B-Shop: Toolbar (Suche + Ansichtsumschalter) ---- */
.pg-offer__toolbar {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  margin: 0 0 1.2rem;
}
.pg-offer__toolbar .pg-offer__search {
  flex: 1 1 auto;
  margin: 0;
}
.pg-offer__view {
  flex: 0 0 auto;
  display: inline-flex;
  gap: 3px;
  padding: 3px;
  border: 1px solid var(--pg-line);
  border-radius: 0;
  background: var(--pg-surface);
}
.pg-offer__view-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--pg-ink-soft);
  cursor: pointer;
  line-height: 0;
  transition: background 0.2s var(--pg-ease), color 0.2s var(--pg-ease);
}
.pg-offer__view-btn svg { display: block; }
.pg-offer__view-btn:hover { color: var(--pg-ink); }
.pg-offer__view-btn.is-active {
  background: var(--pg-ink);
  color: #fff;
}

/* ---- B2B-Karte: Lagerbestand ---- */
.pg-offer-card__stock {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: 0.35rem;
  font-size: 0.74rem;
  font-weight: 600;
  color: #1d7a3e;
}
.pg-offer-card__stock::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: currentColor;
  flex: 0 0 auto;
}
.pg-offer-card__stock--low { color: #9a6a12; }
.pg-offer-card__stock--out { color: #b01124; }

/* ---- B2B-Karte: kompakte Zeilenansicht (Umschalter) ---- */
.pg-offer-grid--list {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.pg-offer-grid--list .pg-offer-card {
  flex-direction: row;
  align-items: center;
  gap: 0.9rem;
  padding: 0.65rem 0.25rem;
  border-bottom: 1px solid var(--pg-line);
}
.pg-offer-grid--list .pg-offer-card__img {
  flex: 0 0 56px;
  width: 56px;
  height: 56px;
  border-radius: 0;
}
.pg-offer-grid--list .pg-offer-card__body {
  flex: 1 1 auto;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem 0.9rem;
  padding: 0;
}
.pg-offer-grid--list .pg-offer-card__brand { flex: 0 0 100%; margin: 0; }
.pg-offer-grid--list .pg-offer-card__name {
  flex: 1 1 30%;
  min-width: 120px;
  margin: 0;
}
.pg-offer-grid--list .pg-offer-card__ek { margin: 0; flex: 0 0 auto; }
.pg-offer-grid--list .pg-offer-card__stock { margin: 0; flex: 0 0 auto; }
.pg-offer-grid--list .pg-offer-card__actions {
  flex: 0 0 auto;
  margin-left: auto;
}
/* Marke steht (Vollzeile) über dem Namen; auf sehr schmalen Karten bleibt die
   Zeile trotzdem lesbar, weil Aktionen bei Bedarf umbrechen. */
@media (max-width: 520px) {
  .pg-offer-grid--list .pg-offer-card__actions { margin-left: 0; flex-basis: 100%; }
}

/* ---- Danke-Seite: Vorkasse-Stepper + Bankdaten ---- */
.pg-vk {
  margin: 1.5rem 0 2.5rem;
}
.pg-vk__title {
  font-family: var(--pg-font-head);
  font-size: clamp(1.3rem, 2.4vw, 1.7rem);
  margin: 0 0 1.1rem;
}
.pg-vk-steps {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem 0;
  list-style: none;
  margin: 0 0 1.4rem;
  padding: 0;
  counter-reset: none;
}
.pg-vk-step {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  flex: 1 1 0;
  min-width: 180px;
  position: relative;
  padding-right: 0.5rem;
  color: var(--pg-ink-soft);
  font-size: 0.9rem;
}
.pg-vk-step__dot {
  flex: 0 0 auto;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-weight: 700;
  font-size: 0.9rem;
  background: var(--pg-surface-2);
  color: var(--pg-ink-soft);
  border: 1px solid var(--pg-line);
}
.pg-vk-step--done .pg-vk-step__dot {
  background: #1d7a3e;
  color: #fff;
  border-color: #1d7a3e;
}
.pg-vk-step--active .pg-vk-step__dot {
  background: linear-gradient(120deg, var(--pg-gold), var(--pg-gold-2));
  color: #0b0b0b;
  border-color: transparent;
}
.pg-vk-step--active .pg-vk-step__label {
  color: var(--pg-ink);
  font-weight: 700;
}
.pg-vk-box {
  background: var(--pg-surface);
  border: 1px solid var(--pg-line);
  border-left: 3px solid var(--pg-gold);
  border-radius: 0;
  padding: 1.2rem 1.4rem;
}
.pg-vk-box__lead {
  margin: 0 0 1rem;
  color: var(--pg-ink);
}
.pg-vk-fields {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: 0.5rem 1.2rem;
  margin: 0;
}
.pg-vk-fields dt {
  color: var(--pg-ink-soft);
  font-size: 0.85rem;
  align-self: center;
}
.pg-vk-fields dd {
  margin: 0;
  color: var(--pg-ink);
  font-weight: 600;
  align-self: center;
}
.pg-vk-mono {
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.02em;
}
.pg-vk-amount {
  font-family: var(--pg-font-head);
  font-size: 1.2rem;
  color: var(--pg-gold-2);
}
.pg-vk-amount .woocommerce-Price-amount { color: var(--pg-gold-2) !important; }
.pg-vk-copyrow {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  flex-wrap: wrap;
}
.pg-vk-copy {
  border: 1px solid var(--pg-line);
  background: var(--pg-surface-2);
  color: var(--pg-ink);
  border-radius: 0;
  padding: 0.28em 0.8em;
  font-size: 0.74rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s var(--pg-ease), color 0.2s var(--pg-ease);
}
.pg-vk-copy:hover { background: var(--pg-gold); color: #0b0b0b; }
.pg-vk-copy.is-copied { background: #1d7a3e; color: #fff; border-color: #1d7a3e; }
.pg-vk-hint {
  margin: 1rem 0 0;
  font-size: 0.78rem;
  color: var(--pg-ink-soft);
  line-height: 1.5;
}
@media (max-width: 520px) {
  .pg-vk-fields { grid-template-columns: 1fr; gap: 0.15rem 0; }
  .pg-vk-fields dd { margin-bottom: 0.6rem; }
}

/* ============================================================
   Produktseite (PDP) — Premium-Aufbau
   Grid statt Storefront-Floats, Sticky-Galerie, Marken-Kicker,
   Reassurance-Block, gestaltete Sektionen statt Tabs, Bewertungen.
   ============================================================ */

/* ---- Layout: Galerie links (sticky) · Summary rechts ---- */
@media (min-width: 768px) {
  .single-product div.product {
    display: grid;
    grid-template-columns: minmax(0, 46%) minmax(0, 1fr);
    gap: 0 clamp(2rem, 4.5vw, 4rem);
    align-items: start;
  }
  /* Alles außer Galerie/Summary (Sektionen, Related, PrevNext, Germanized-
     Blöcke …) läuft über die volle Breite. */
  .single-product div.product > * {
    grid-column: 1 / -1;
    min-width: 0;
  }
  .single-product div.product > .woocommerce-product-gallery {
    grid-column: 1;
    grid-row: 1;
    width: 100% !important;
    float: none !important;
    margin-bottom: 0;
    position: sticky;
    top: 92px;
  }
  .single-product div.product > .summary {
    grid-column: 2;
    grid-row: 1;
    width: 100% !important;
    float: none !important;
    margin-bottom: 0;
  }
  /* Sale-Badge über der Galerie statt als eigene Grid-Zelle. */
  .single-product div.product > .onsale {
    grid-column: 1;
    grid-row: 1;
    justify-self: start;
    align-self: start;
    z-index: 2;
    margin: 0.9rem 0 0 0.9rem;
  }
}

/* ---- Galerie: ruhige Bühne fürs Produktbild ---- */
.single-product div.product .woocommerce-product-gallery {
  background: var(--pg-surface);
  border: 1px solid var(--pg-line);
  border-radius: 0;
  padding: clamp(0.9rem, 2vw, 1.4rem);
}
.single-product div.product .woocommerce-product-gallery__wrapper {
  border-radius: 0;
  overflow: hidden;
}
/* Kein Hover-Zoom: das Magnify-Overlay des zoom-Plugins hart ausblenden.
   Die Vergrößerung läuft ausschließlich über den Lightbox-Button. */
.single-product div.product .woocommerce-product-gallery img.zoomImg {
  display: none !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* ---- Kicker: Marke · Duftart über dem Titel ---- */
.pg-pdp-kicker {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin: 0 0 0.35rem;
  font-size: 0.74rem;
  font-weight: 600;
  letter-spacing: 0.24em;
  text-transform: uppercase;
}
.pg-pdp-kicker__brand {
  color: var(--pg-gold-2);
}
.pg-pdp-kicker__brand:hover {
  color: var(--pg-ink);
}
.pg-pdp-kicker__type,
.pg-pdp-kicker__sep {
  color: var(--pg-ink-soft);
}

/* ---- Duftrichtungs-Chips unter dem Preis (Karten-Chip-Design) ---- */
.pg-pdp-scents {
  margin: 0.5rem 0 0.9rem;
}
.pg-pdp-scents .pg-card__scents {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}
/* Auf der Produktseite bleiben die Chips lesbar-groß und ruhig — die kleine,
   goldene Versalien-Fassung ist allein die Sprache der Grid-Karte. */
.pg-pdp-scents .pg-card__scent {
  font-size: 0.85rem;
  font-weight: 400;
  letter-spacing: normal;
  text-transform: none;
  color: var(--pg-ink-soft);
}
.pg-pdp-scents .pg-card__scent-dot {
  width: 9px;
  height: 9px;
}

/* ---- Reassurance-Block unter dem Warenkorb-Button ---- */
.pg-pdp-trust {
  display: grid;
  gap: 0.85rem;
  margin: 1.4rem 0 0.4rem;
  padding: 1.1rem 1.2rem;
  background: var(--pg-surface);
  border: 1px solid var(--pg-line);
  border-radius: 0;
}
.pg-pdp-trust__row {
  display: flex;
  align-items: flex-start;
  gap: 0.8rem;
}
.pg-pdp-trust__ico {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  color: var(--pg-gold-2);
  background: var(--pg-gold-soft);
  border: 1px solid rgba(210, 171, 102, 0.35);
}
.pg-pdp-trust__txt {
  display: grid;
  gap: 0.1rem;
  font-size: 0.88rem;
  line-height: 1.45;
}
.pg-pdp-trust__txt strong {
  color: var(--pg-ink);
  font-weight: 600;
}
.pg-pdp-trust__txt span {
  color: var(--pg-ink-soft);
  font-size: 0.82rem;
}
@media (min-width: 1100px) {
  .pg-pdp-trust {
    grid-template-columns: 1fr 1fr;
    gap: 1rem 1.4rem;
  }
}

/* ---- Gestaltete Sektionen statt Tabs ---- */
.pg-pdp-section {
  max-width: 860px;
  margin: 0 auto;
  padding: clamp(2.4rem, 6vw, 4rem) 0 0;
}
.pg-pdp-section + .pg-pdp-section {
  margin-top: clamp(2.4rem, 6vw, 4rem);
  border-top: 1px solid var(--pg-line);
}
.pg-pdp-section__head {
  margin-bottom: 1.4rem;
}
.pg-pdp-section__title {
  font-size: clamp(1.6rem, 3.4vw, 2.2rem);
  margin: 0;
}
.pg-pdp-section__lead {
  color: var(--pg-ink-soft);
  font-size: 0.92rem;
  margin: 0.4rem 0 0;
}
.pg-pdp-desc__body {
  font-size: 1.02rem;
  line-height: 1.75;
  color: var(--pg-ink);
  max-width: 68ch;
}
.pg-pdp-desc__body p {
  margin: 0 0 1.1em;
}

/* Erste PDP-Sektion: Abstand zum Summary-Bereich + Trennlinie. */
.single-product div.product > .pg-pdp-section:first-of-type,
.single-product div.product .pg-reviews .pg-pdp-section {
  border-top: 1px solid var(--pg-line);
}
.single-product div.product > .pg-pdp-desc,
.single-product div.product > .pg-pdp-frag,
.single-product div.product > .pg-reviews {
  margin-top: clamp(2.2rem, 5vw, 3.4rem);
}

/* ---- Bewertungen ---- */
.pg-reviews .pg-pdp-section {
  padding-top: clamp(2.4rem, 6vw, 4rem);
}
.pg-reviews .pg-rate-bars {
  margin-bottom: 2rem;
}
.pg-reviews__none {
  color: var(--pg-ink-soft);
  font-size: 0.95rem;
  margin: 0 0 1.6rem;
}
.pg-review-list {
  list-style: none;
  margin: 0 0 2rem;
  padding: 0;
  display: grid;
  gap: 1rem;
}
.pg-review {
  display: flex;
  gap: 0.95rem;
  align-items: flex-start;
  background: var(--pg-surface);
  border: 1px solid var(--pg-line);
  border-radius: 0;
  padding: 1.1rem 1.2rem;
}
.pg-review__avatar {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  font-family: var(--pg-font-head);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--pg-gold-2);
  background: var(--pg-gold-soft);
  border: 1px solid rgba(210, 171, 102, 0.35);
}
.pg-review__body {
  min-width: 0;
  flex: 1;
}
.pg-review__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.3rem 0.7rem;
  margin-bottom: 0.45rem;
}
.pg-review__author {
  font-weight: 600;
}
.pg-review__verified {
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--pg-gold-2);
  background: var(--pg-gold-soft);
  border: 1px solid rgba(210, 171, 102, 0.35);
  border-radius: 0;
  padding: 0.14em 0.65em;
}
.pg-review__date {
  margin-left: auto;
  font-size: 0.8rem;
  color: var(--pg-ink-soft);
}
.pg-review__crits {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-bottom: 0.55rem;
}
.pg-review__crit {
  font-size: 0.75rem;
  color: var(--pg-ink-soft);
  border: 1px solid var(--pg-line);
  border-left: 3px solid var(--pg-rate-accent, var(--pg-gold));
  border-radius: 0;
  padding: 0.22em 0.6em;
  background: #fff;
}
.pg-review__crit strong {
  color: var(--pg-ink);
}
.pg-review__pending {
  font-size: 0.82rem;
  color: var(--pg-gold-2);
  margin: 0 0 0.4rem;
}
.pg-review__text {
  font-size: 0.95rem;
  line-height: 1.65;
}
.pg-review__text p:last-child {
  margin-bottom: 0;
}
.pg-review-pagination {
  display: flex;
  justify-content: center;
  gap: 0.6rem;
  margin-bottom: 2rem;
}

/* ---- Bewertungs-Formular / Login-CTA ---- */
.pg-review-form {
  background: var(--pg-surface);
  border: 1px solid var(--pg-line);
  border-radius: 0;
  padding: clamp(1.2rem, 3vw, 1.8rem);
}
.pg-review-form__title {
  font-family: var(--pg-font-head);
  font-size: 1.4rem;
  margin: 0 0 0.3rem;
}
.pg-review-form__hint {
  color: var(--pg-ink-soft);
  font-size: 0.88rem;
  margin: 0 0 1rem;
}
.pg-review-form textarea {
  width: 100%;
  border: 1px solid var(--pg-line);
  border-radius: 0;
  background: #fff;
  padding: 0.7em 0.9em;
  font-family: var(--pg-font-body);
  font-size: 0.95rem;
}
.pg-review-login {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 1.4rem;
  background: var(--pg-surface);
  border: 1px solid var(--pg-line);
  border-radius: 0;
  padding: clamp(1.2rem, 3vw, 1.6rem);
}
.pg-review-login__txt {
  display: grid;
  gap: 0.15rem;
  flex: 1 1 260px;
}
.pg-review-login__txt strong {
  font-family: var(--pg-font-head);
  font-size: 1.2rem;
}
.pg-review-login__txt span {
  color: var(--pg-ink-soft);
  font-size: 0.9rem;
}

/* „Inhalt melden"-Link (legal.php, UGC) in Bewertungen dezent absetzen. */
.pg-review__text .pg-report {
  display: inline-block;
  margin-left: 0.6rem;
  font-size: 0.75rem;
  color: var(--pg-ink-soft);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.pg-review__text .pg-report:hover {
  color: var(--pg-gold-2);
}

/* ---- Sterne-Zeile unterm Titel (Woo + Germanized-Echtheitshinweis) ---- */
.single-product div.product .woocommerce-product-rating {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.2rem 0.55rem;
  margin: 0.1rem 0 0.75rem;
  font-size: 0.82rem;
  color: var(--pg-ink-soft);
}
.single-product div.product .star-rating,
.single-product div.product .star-rating span::before,
.single-product div.product .star-rating::before {
  color: var(--pg-gold-2);
}
.single-product div.product .woocommerce-product-rating a {
  color: var(--pg-ink-soft);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.single-product div.product .woocommerce-product-rating a:hover {
  color: var(--pg-gold-2);
}
/* Führender Gesamtwert „8,7/10" — Mittel aus Duft · Haltbarkeit · Sillage. */
.pg-rating-top__score {
  display: inline-flex;
  align-items: baseline;
  gap: 0.08em;
  font-family: var(--pg-font-head);
  line-height: 1;
  color: var(--pg-gold-2);
  cursor: help;
}
.pg-rating-top__score strong {
  font-size: 1.5rem;
  font-weight: 600;
}
.pg-rating-top__max {
  font-size: 0.9rem;
  color: var(--pg-ink-soft);
}
.single-product div.product .pg-rating-top__count {
  text-decoration: none;
}
.single-product div.product .pg-rating-top__count:hover {
  text-decoration: underline;
}
.pg-rating-top--empty {
  margin: 0.1rem 0 0.75rem;
  font-size: 0.85rem;
}
.pg-rating-top--empty a {
  color: var(--pg-gold-2);
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Woo-Sterne überall im Theme-Gold (auch Sticky-Bar, Listen, Widgets). */
.star-rating,
.star-rating span::before,
.star-rating::before {
  color: var(--pg-gold-2);
}

/* ---- Bewertungsformular: Anzeigename-Wahl (DSGVO) ---- */
.pg-name-choice {
  border: 0;
  margin: 0 0 1.1rem;
  padding: 0;
  background: transparent;
}
.pg-name-choice legend {
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--pg-ink);
  padding: 0;
  margin: 0 0 0.55rem;
  background: transparent; /* Storefront legt sonst eine helle Box hinter die Legende */
}
.pg-name-choice__opts {
  display: grid;
  gap: 0.6rem;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}
/* Karte: Name mittig im Fokus, Versionsart klein/dezent unten rechts, nie gequetscht. */
.pg-name-opt {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: 78px;
  padding: 1.15rem 0.9rem 1.6rem;
  border: 1px solid var(--pg-line);
  border-radius: 0;
  background: var(--pg-surface);
  cursor: pointer;
  transition: border-color 0.15s var(--pg-ease), box-shadow 0.15s var(--pg-ease);
}
/* Native Radio unsichtbar (Auswahl über Gold-Rahmen sichtbar), aber fokussierbar. */
.pg-name-opt input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  pointer-events: none;
}
.pg-name-opt__name {
  font-weight: 600;
  font-size: 1rem;
  line-height: 1.2;
  color: var(--pg-ink);
  overflow-wrap: anywhere;
}
.pg-name-opt__hint {
  position: absolute;
  right: 0.7rem;
  bottom: 0.5rem;
  font-size: 0.62rem;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--pg-ink-soft);
}
.pg-name-opt:has(input:checked) {
  border-color: var(--pg-gold-2);
  box-shadow: 0 0 0 1px var(--pg-gold-2);
}
.pg-name-opt:has(input:checked) .pg-name-opt__name {
  color: var(--pg-gold-2);
}
.pg-name-opt:has(input:focus-visible) {
  outline: 2px solid var(--pg-gold-2);
  outline-offset: 2px;
}
.pg-review-comment {
  margin: 0 0 0.4rem;
}
.pg-review-comment label {
  display: block;
  font-weight: 600;
  font-size: 0.9rem;
  margin-bottom: 0.4rem;
}
.pg-review-form__privacy {
  font-size: 0.78rem;
  line-height: 1.55;
  color: var(--pg-ink-soft);
  margin: 0.9rem 0 0;
}
.pg-review-form__privacy a {
  color: var(--pg-gold-2);
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* ---- Bewertungs-Paginierung (5 pro Seite) ---- */
.pg-review-pagination a,
.pg-review-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  height: 38px;
  padding: 0 0.65rem;
  border: 1px solid var(--pg-line);
  border-radius: 0;
  color: var(--pg-ink);
  font-size: 0.9rem;
  transition: border-color 0.15s var(--pg-ease), color 0.15s var(--pg-ease);
}
.pg-review-pagination a:hover {
  border-color: var(--pg-gold-2);
  color: var(--pg-gold-2);
}
.pg-review-pagination .page-numbers.current {
  background: var(--pg-ink);
  border-color: var(--pg-ink);
  color: var(--pg-on-dark);
}

/* ---- Bewertungs-Submit sichtbar machen (überschreibt Storefronts
   High-Specificity `#review_form #respond .form-submit input`, die sonst
   einen hellgrauen Button mit hellem Text = unsichtbar erzeugt). ---- */
.woocommerce #review_form #respond .form-submit input,
#review_form #respond .form-submit input[type="submit"],
.pg-review-form .form-submit input[type="submit"] {
  background: var(--pg-ink);
  color: var(--pg-on-dark);
  border: 0;
  border-radius: 0;
  padding: 0.95em 1.9em;
  font-weight: 600;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition:
    background 0.25s var(--pg-ease),
    transform 0.25s var(--pg-ease),
    box-shadow 0.25s var(--pg-ease);
}
.woocommerce #review_form #respond .form-submit input:hover,
#review_form #respond .form-submit input[type="submit"]:hover,
.pg-review-form .form-submit input[type="submit"]:hover {
  background: linear-gradient(120deg, var(--pg-gold), var(--pg-gold-2));
  color: #101010;
  transform: translateY(-2px);
  box-shadow: var(--pg-shadow-gold);
}

/* ---- Reviews-Kopf: Titel links · „Bewertung abgeben" gegenüber rechts ---- */
.pg-reviews__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem 1.5rem;
  flex-wrap: wrap;
}
.pg-reviews__head-text {
  min-width: 0;
}
.pg-review-write-btn {
  flex: 0 0 auto;
}
/* Scroll-Ziel des „Bewertung abgeben"-Buttons — Offset für Sticky-Header. */
.pg-review-write-anchor {
  height: 0;
  scroll-margin-top: 110px;
}
#pg-review-write {
  scroll-margin-top: 110px;
}

/* ========================= „Mein Konto" (Boutique-Layout) =================
   WooCommerce/Storefront liefern hier Floats (Nav 30 % / Inhalt 68 %) und
   Fließtext. Wir legen Nav + Inhalt in ein Grid, geben beiden Karten-Flächen
   und ersetzen die Listen-Nav durch eine Icon-Navigation (Masken, kein JS).
   Markup: woocommerce/myaccount/my-account.php + dashboard.php. */

/* Eingeloggt begrüßt der Konto-Header namentlich — Storefronts Seitentitel
   „Mein Konto" darüber wäre eine zweite H1. Ausgeloggt (Login/Registrieren)
   bleibt er stehen. */
.pg-account.logged-in .entry-header {
  display: none;
}

/* -------- Konto-Header --------------------------------------------------- */
.pg-account-hero {
  display: flex;
  align-items: center;
  gap: 1.1rem;
  flex-wrap: wrap;
  background: linear-gradient(135deg, var(--pg-bg) 0%, var(--pg-bg-soft) 100%);
  border: 1px solid var(--pg-line-dark);
  border-radius: 0;
  padding: 1.5rem 1.6rem;
  margin: 0 0 1.4rem;
  box-shadow: var(--pg-shadow-gold);
}
.pg-account-hero__medal {
  flex: none;
  width: 62px;
  height: 62px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-family: var(--pg-font-head);
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--pg-gold);
  background: rgba(210, 171, 102, 0.1);
  border: 1px solid rgba(210, 171, 102, 0.4);
}
.pg-account-hero__text {
  min-width: 0;
  margin-right: auto;
}
.pg-account-hero__greet {
  margin: 0;
  font-size: 0.72rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--pg-on-dark-2);
}
.pg-account-hero__name {
  margin: 0.1rem 0 0;
  font-family: var(--pg-font-head);
  font-size: clamp(1.6rem, 3.6vw, 2.1rem);
  font-weight: 700;
  line-height: 1.15;
  color: var(--pg-on-dark);
}
.pg-account-hero__mail {
  margin: 0.15rem 0 0;
  font-size: 0.85rem;
  color: var(--pg-on-dark-2);
  overflow-wrap: anywhere;
}
/* Rechte Spalte des Konto-Headers: Status-Badge + „Kunde seit". Letzteres saß
   früher als Kachel neben Bestellzahl/Umsatz — die sieht jetzt nur noch B2B
   (s. pg_account_show_totals()), das Beitrittsdatum bleibt für alle. */
.pg-account-hero__side {
  flex: none;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.4rem;
}
.pg-account-hero__since {
  margin: 0;
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--pg-on-dark-2);
  white-space: nowrap;
}
.pg-account-badge {
  flex: none;
  align-self: center;
  font-size: 0.68rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding: 0.42rem 0.85rem;
  border-radius: 0;
  white-space: nowrap;
}
.pg-account-badge--gold {
  color: var(--pg-bg);
  background: var(--pg-gold);
}
.pg-account-badge--muted {
  color: var(--pg-gold);
  background: var(--pg-gold-soft);
  border: 1px solid rgba(210, 171, 102, 0.4);
}
.pg-account-badge--plain {
  color: var(--pg-on-dark-2);
  border: 1px solid var(--pg-line-dark);
}

/* -------- Grid: Navigation + Inhalt ------------------------------------- */
.pg-account-grid {
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr);
  gap: 1.4rem;
  align-items: start;
}
/* Storefront-Floats abräumen — sonst bricht das Grid. */
.pg-account .woocommerce-MyAccount-navigation,
.pg-account .woocommerce-MyAccount-content {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
}
.pg-account .woocommerce-MyAccount-navigation {
  position: sticky;
  top: calc(var(--pg-header-h, 76px) + var(--pg-topbar-off, 0px) + 1rem);
  background: var(--pg-surface);
  border: 1px solid var(--pg-line);
  border-radius: 0;
  padding: 0.5rem;
  overflow: hidden;
}
.pg-account .woocommerce-MyAccount-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.pg-account .woocommerce-MyAccount-navigation li {
  margin: 0;
  border: 0;
}
.pg-account .woocommerce-MyAccount-navigation li a {
  /* Storefront setzt hier `display:block` mit höherer Spezifität → sonst
     landet das Icon nicht in der Flex-Zeile, sondern hinter dem Text. */
  display: flex !important;
  align-items: center;
  gap: 0.7rem;
  padding: 0.72rem 0.8rem;
  border-radius: 0;
  font-size: 0.92rem;
  color: var(--pg-ink);
  text-decoration: none;
  transition: background 0.18s var(--pg-ease), color 0.18s var(--pg-ease);
}
.pg-account .woocommerce-MyAccount-navigation li a::before {
  content: "";
  flex: none;
  width: 19px;
  height: 19px;
  background-color: currentColor;
  opacity: 0.75;
  -webkit-mask: var(--pg-acc-icon) center / contain no-repeat;
  mask: var(--pg-acc-icon) center / contain no-repeat;
}
.pg-account .woocommerce-MyAccount-navigation li a:hover {
  background: var(--pg-cream-2);
  color: var(--pg-gold-2);
}
.pg-account .woocommerce-MyAccount-navigation li.is-active a {
  background: var(--pg-bg);
  color: var(--pg-gold);
}
.pg-account .woocommerce-MyAccount-navigation li.is-active a::before {
  opacity: 1;
}
/* Abmelden setzt sich ab (Trennlinie + gedämpft). */
.pg-account .woocommerce-MyAccount-navigation-link--customer-logout {
  border-top: 1px solid var(--pg-line) !important;
  margin-top: 0.35rem !important;
  padding-top: 0.35rem;
}
.pg-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a {
  color: var(--pg-ink-soft);
}

/* Icons je Endpunkt (SVG-Masken als Data-URI — kein Extra-Request). */
.pg-account .woocommerce-MyAccount-navigation li a {
  --pg-acc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8'/%3E%3C/svg%3E");
}
.pg-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--dashboard a {
  --pg-acc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M4 4h7v7H4zM13 4h7v7h-7zM4 13h7v7H4zM13 13h7v7h-7z'/%3E%3C/svg%3E");
}
.pg-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--orders a {
  --pg-acc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 7h12l-1 13H7L6 7z'/%3E%3Cpath d='M9 7V5a3 3 0 0 1 6 0v2'/%3E%3C/svg%3E");
}
.pg-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--downloads a {
  --pg-acc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v11m0 0l-4-4m4 4l4-4M5 19h14'/%3E%3C/svg%3E");
}
.pg-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--edit-address a {
  --pg-acc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s7-5.4 7-11a7 7 0 1 0-14 0c0 5.6 7 11 7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.4'/%3E%3C/svg%3E");
}
.pg-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--edit-account a {
  --pg-acc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 20a7.5 7.5 0 0 1 15 0'/%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3C/svg%3E");
}
.pg-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a {
  --pg-acc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 4h3a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-3M10 17l-5-5 5-5M5 12h11'/%3E%3C/svg%3E");
}

/* -------- Inhaltsfläche -------------------------------------------------- */
.pg-account .woocommerce-MyAccount-content {
  background: var(--pg-surface);
  border: 1px solid var(--pg-line);
  border-radius: 0;
  padding: 1.6rem;
}
.pg-account .woocommerce-MyAccount-content > p:first-child {
  margin-top: 0;
}

/* -------- Kennzahl-Kacheln ---------------------------------------------- */
.pg-account-stats {
  list-style: none;
  margin: 0 0 1.5rem;
  padding: 0;
  display: grid;
  /* Die Kachelzahl hängt an der Rolle (nur B2B sieht sie) — auto-fit statt einer
     festen Spaltenzahl, damit keine Lücke entsteht. */
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 0.8rem;
}
.pg-account-stat {
  margin: 0;
  padding: 1.1rem 1rem;
  border-radius: 0;
  background: var(--pg-cream);
  border: 1px solid var(--pg-line);
  text-align: center;
}
.pg-account-stat__val {
  display: block;
  font-family: var(--pg-font-head);
  font-size: 1.85rem;
  font-weight: 700;
  line-height: 1.1;
  color: var(--pg-ink);
}
.pg-account-stat__val--sm {
  font-size: 1.2rem;
  padding: 0.32rem 0;
}
.pg-account-stat__val .amount,
.pg-account-stat__val bdi {
  font-family: inherit;
  color: inherit;
}
.pg-account-stat__key {
  display: block;
  margin-top: 0.3rem;
  font-size: 0.68rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--pg-ink-soft);
}

/* -------- Panels (Letzte Bestellung / Schnellzugriff) ------------------- */
.pg-account-panel {
  margin: 0 0 1.5rem;
}
.pg-account-panel__title {
  margin: 0 0 0.7rem;
  font-family: var(--pg-font-head);
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--pg-ink);
}
.pg-account-last {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  padding: 1rem 1.1rem;
  border: 1px solid var(--pg-line);
  border-left: 3px solid var(--pg-gold);
  border-radius: 0;
  background: var(--pg-cream);
}
.pg-account-last__meta {
  margin-right: auto;
  min-width: 0;
}
.pg-account-last__no {
  display: block;
  font-weight: 700;
  color: var(--pg-ink);
}
.pg-account-last__date {
  display: block;
  font-size: 0.8rem;
  color: var(--pg-ink-soft);
}
.pg-account-last__sum {
  font-weight: 700;
  color: var(--pg-ink);
  white-space: nowrap;
}
.pg-account-last__link {
  font-size: 0.82rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--pg-gold-2);
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  white-space: nowrap;
}
.pg-account-status {
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 0.3rem 0.7rem;
  border-radius: 0;
  background: var(--pg-cream-2);
  color: var(--pg-ink-soft);
  white-space: nowrap;
}
.pg-account-status--completed {
  background: rgba(46, 125, 74, 0.14);
  color: #1f6b40;
}
.pg-account-status--processing,
.pg-account-status--on-hold {
  background: var(--pg-gold-soft);
  color: var(--pg-gold-2);
}
.pg-account-status--cancelled,
.pg-account-status--failed,
.pg-account-status--refunded {
  background: rgba(160, 40, 40, 0.12);
  color: #96322f;
}

/* -------- Schnellzugriff ------------------------------------------------- */
.pg-account-quick {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.7rem;
}
.pg-account-quick__item {
  display: block;
  padding: 0.95rem 1.05rem;
  border: 1px solid var(--pg-line);
  border-radius: 0;
  background: var(--pg-cream);
  text-decoration: none;
  transition: border-color 0.18s var(--pg-ease), transform 0.18s var(--pg-ease);
}
.pg-account-quick__item:hover {
  border-color: var(--pg-gold);
  transform: translateY(-2px);
}
.pg-account-quick__item--shop {
  background: var(--pg-bg);
  border-color: transparent;
}
.pg-account-quick__head {
  display: block;
  font-weight: 700;
  color: var(--pg-ink);
}
.pg-account-quick__sub {
  display: block;
  font-size: 0.8rem;
  color: var(--pg-ink-soft);
}
.pg-account-quick__item--shop .pg-account-quick__head {
  color: var(--pg-gold);
}
.pg-account-quick__item--shop .pg-account-quick__sub {
  color: var(--pg-on-dark-2);
}

/* -------- Mobil ---------------------------------------------------------- */
@media (max-width: 767px) {
  .pg-account-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  /* Nav wird zur horizontal scrollbaren Chip-Leiste über dem Inhalt. */
  .pg-account .woocommerce-MyAccount-navigation {
    position: static;
    padding: 0.4rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .pg-account .woocommerce-MyAccount-navigation ul {
    display: flex;
    gap: 0.3rem;
    width: max-content;
  }
  .pg-account .woocommerce-MyAccount-navigation li a {
    white-space: nowrap;
    font-size: 0.85rem;
  }
  .pg-account .woocommerce-MyAccount-navigation-link--customer-logout {
    border-top: 0 !important;
    border-left: 1px solid var(--pg-line);
    margin: 0 0 0 0.35rem !important;
    padding: 0 0 0 0.35rem;
  }
  .pg-account .woocommerce-MyAccount-content {
    padding: 1.1rem;
  }
  .pg-account-hero {
    padding: 1.2rem;
    gap: 0.85rem;
  }
  .pg-account-hero__medal {
    width: 50px;
    height: 50px;
    font-size: 1.2rem;
  }
  /* Badge + „Kunde seit" unter Medaille/Name statt daneben — nebeneinander
     bliebe für den Namen keine Breite. */
  .pg-account-hero__side {
    order: 3;
    flex-basis: 100%;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    flex-wrap: wrap;
  }
  .pg-account-stats {
    grid-template-columns: minmax(0, 1fr);
  }
  .pg-account-stat {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    text-align: left;
    padding: 0.8rem 1rem;
  }
  .pg-account-stat__val,
  .pg-account-stat__val--sm {
    font-size: 1.35rem;
  }
  .pg-account-quick {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* ====================== Warenkorb-Seite ====================== */
/* Layout & Karten für woocommerce/cart/cart.php (Theme-Override).
   Die Bestellübersicht rechts ist WooCommerces Standard-`cart_totals`
   (wird von cart.js per AJAX ersetzt) — nur umgestylt, nie umgebaut. */

.pg-cp {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 380px;
  gap: clamp(1.4rem, 3vw, 2.4rem);
  align-items: start;
  margin: 0.4rem 0 clamp(2.5rem, 6vw, 4rem);
}
.pg-cp__main { min-width: 0; }
.pg-cp__side { min-width: 0; }

/* ---- Artikel-Liste: eine Karte, Zeilen mit internen Trennern ---- */
.pg-cp__list {
  background: var(--pg-surface);
  border: 1px solid var(--pg-line);
  border-radius: 0;
  overflow: hidden;
}
.pg-cp-item {
  position: relative;
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr) auto;
  gap: 0.35rem 1.15rem;
  align-items: center;
  padding: 1.15rem clamp(1rem, 2vw, 1.4rem);
  border-bottom: 1px solid var(--pg-line);
}
.pg-cp-item:last-child { border-bottom: 0; }

.pg-cp-item__img {
  display: block;
  width: 96px; height: 96px;
  border-radius: 0;
  overflow: hidden;
  background: var(--pg-cream-2);
}
.pg-cp-item__img img {
  width: 100%; height: 100%;
  object-fit: cover; display: block; margin: 0;
}

.pg-cp-item__info { min-width: 0; }
.pg-cp-item__name {
  display: inline-block;
  font-family: var(--pg-font-head);
  font-size: clamp(1.15rem, 2vw, 1.35rem);
  font-weight: 600;
  line-height: 1.25;
  color: var(--pg-ink);
  text-decoration: none;
}
.pg-cp-item__name:hover { color: var(--pg-gold-2); }
/* Germanized-Zusätze („Produkt enthält: 100 ml", Lieferzeit) + Variationsdaten */
.pg-cp-item__info p,
.pg-cp-item__info .wc-gzd-cart-info,
.pg-cp-item__info dl.variation {
  margin: 0.15rem 0 0;
  font-size: 0.78rem;
  color: var(--pg-ink-soft);
}
.pg-cp-item__info dl.variation { display: block; }
.pg-cp-item__info dl.variation dt,
.pg-cp-item__info dl.variation dd { display: inline; margin: 0; font-weight: 400; }
/* Einzelpreis + Grundpreis */
.pg-cp-item__price {
  margin-top: 0.45rem;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--pg-ink);
}
.pg-cp-item__price .wc-gzd-unit-price,
.pg-cp-item__price .unit-price,
.pg-cp-item__price small {
  display: block;
  font-size: 0.74rem;
  font-weight: 400;
  color: var(--pg-ink-soft);
  margin-top: 0.1rem;
}

/* Rechte Spalte der Zeile: Zeilensumme + Stepper */
.pg-cp-item__ctrl {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.65rem;
  padding-right: 0.25rem;
}
.pg-cp-item__subtotal {
  order: -1;
  font-family: var(--pg-font-head);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--pg-ink);
  white-space: nowrap;
}

/* Mengen-Stepper (− N +) — Pendant zum Drawer-Stepper */
.pg-cp-qty {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--pg-line);
  border-radius: 0;
  background: var(--pg-surface);
}
.pg-cp-qty__btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 34px; height: 34px;
  border: 0; border-radius: 0;
  background: none; color: var(--pg-ink-soft);
  cursor: pointer; padding: 0;
  transition: color 0.15s var(--pg-ease), background 0.15s var(--pg-ease);
}
.pg-cp-qty__btn:hover { color: var(--pg-ink); background: var(--pg-cream-2); }
.pg-cp-qty .quantity {
  margin: 0; float: none; width: auto;
}
.pg-cp-qty input.qty {
  width: 2.4em;
  border: 0; background: none; box-shadow: none;
  padding: 0; margin: 0;
  text-align: center;
  font-size: 0.95rem; font-weight: 600; color: var(--pg-ink);
  -moz-appearance: textfield;
  appearance: textfield;
}
.pg-cp-qty input.qty::-webkit-outer-spin-button,
.pg-cp-qty input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* Entfernen-Kreuz oben rechts in der Zeile */
.pg-cp-item .product-remove {
  position: absolute;
  top: 0.85rem; right: 0.9rem;
}
.pg-cp-item .product-remove a.remove {
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px;
  border-radius: 50%;
  color: var(--pg-ink-soft) !important;
  background: none;
  font-weight: 400;
  transition: color 0.15s var(--pg-ease), background 0.15s var(--pg-ease);
}
.pg-cp-item .product-remove a.remove:hover {
  color: var(--pg-ink) !important;
  background: var(--pg-cream-2);
}

/* ---- Gutschein-Zeile unter der Liste ---- */
.pg-cp__actions {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin-top: 1rem;
}
.pg-cp__coupon {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.6rem;
  flex: 1 1 auto;
}
.pg-cp__coupon .input-text#coupon_code {
  flex: 0 1 260px;
  min-width: 160px;
  border: 1px solid var(--pg-line);
  border-radius: 0;
  background: var(--pg-surface);
  padding: 0.7em 1.1em;
  font-size: 0.92rem;
  color: var(--pg-ink);
  transition: border-color 0.2s var(--pg-ease), box-shadow 0.2s var(--pg-ease);
}
.pg-cp__coupon .input-text#coupon_code:focus {
  outline: 0;
  border-color: var(--pg-gold-2);
  box-shadow: 0 0 0 3px rgba(210, 171, 102, 0.18);
}
.pg-cp__coupon-btn {
  border: 1px solid var(--pg-gold-2);
  border-radius: 0;
  background: none;
  color: var(--pg-gold-2);
  padding: 0.68em 1.4em;
  font-size: 0.92rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s var(--pg-ease), color 0.15s var(--pg-ease);
}
.pg-cp__coupon-btn:hover { background: var(--pg-gold-2); color: #fff; }
.pg-cp__coupon .coupon-error-notice {
  flex-basis: 100%;
  margin: 0;
  font-size: 0.8rem;
  color: #b3261e;
}
/* Versteckter „Warenkorb aktualisieren"-Button — main.js klickt ihn nach
   jeder Mengenänderung, cart.js erledigt das AJAX-Update. */
.pg-cp__update {
  position: absolute !important;
  width: 1px; height: 1px;
  margin: -1px; padding: 0; border: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

/* „Weiter einkaufen" */
.pg-cp__continue {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: 1.3rem;
  font-size: 0.9rem;
  color: var(--pg-ink-soft);
  text-decoration: none;
}
.pg-cp__continue:hover { color: var(--pg-gold-2); }

/* ---- Bestellübersicht (rechte Spalte, Standard-cart_totals) ---- */
.woocommerce-cart .cart_totals {
  width: 100% !important;
  float: none !important;
  background: var(--pg-surface);
  border: 1px solid var(--pg-line);
  border-radius: 0;
  padding: clamp(1.2rem, 2vw, 1.6rem);
  position: sticky;
  top: 110px;
}
.woocommerce-cart .cart_totals h2 {
  font-family: var(--pg-font-head);
  font-size: clamp(1.35rem, 2.4vw, 1.65rem);
  margin: 0 0 0.9rem;
  color: var(--pg-ink);
}
.woocommerce-cart .cart_totals .shop_table {
  border: 0; margin: 0; width: 100%;
}
.woocommerce-cart .cart_totals .shop_table th,
.woocommerce-cart .cart_totals .shop_table td {
  border: 0;
  background: none;
  padding: 0.55rem 0;
  vertical-align: top;
  font-size: 0.95rem;
}
.woocommerce-cart .cart_totals .shop_table th {
  width: 40%;
  text-align: left;
  font-weight: 500;
  color: var(--pg-ink-soft);
  padding-right: 0.75rem;
}
.woocommerce-cart .cart_totals .shop_table td { text-align: right; }
.woocommerce-cart .cart_totals .shop_table small {
  display: block;
  font-size: 0.74rem;
  font-weight: 400;
  color: var(--pg-ink-soft);
}
/* Versandoptionen: Radio-Liste im Theme-Stil (goldener Punkt) */
.woocommerce-cart .cart_totals .woocommerce-shipping-methods {
  list-style: none; margin: 0; padding: 0; text-align: right;
}
.woocommerce-cart .cart_totals .woocommerce-shipping-methods li {
  margin: 0 0 0.45rem;
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 0.45rem;
}
.woocommerce-cart .cart_totals .woocommerce-shipping-methods li:last-child { margin-bottom: 0; }
.woocommerce-cart .cart_totals .woocommerce-shipping-methods input[type="radio"] {
  appearance: none; -webkit-appearance: none;
  width: 16px; height: 16px;
  flex: 0 0 16px;
  margin: 0;
  align-self: center;
  border: 2px solid #b6ae95;
  border-radius: 50%;
  background: var(--pg-surface);
  cursor: pointer;
  transition: border-color 0.15s var(--pg-ease), background 0.15s var(--pg-ease);
}
.woocommerce-cart .cart_totals .woocommerce-shipping-methods input[type="radio"]:checked {
  border-color: var(--pg-gold-2);
  background: var(--pg-gold-2);
  box-shadow: inset 0 0 0 3px var(--pg-surface);
}
.woocommerce-cart .cart_totals .woocommerce-shipping-methods label {
  font-weight: 400; color: var(--pg-ink); cursor: pointer; margin: 0;
}
.woocommerce-cart .cart_totals .woocommerce-shipping-destination {
  margin: 0.35rem 0 0;
  font-size: 0.78rem;
  color: var(--pg-ink-soft);
}
.woocommerce-cart .cart_totals .woocommerce-shipping-calculator { margin: 0.35rem 0 0; }
.woocommerce-cart .cart_totals .shipping-calculator-button {
  font-size: 0.8rem;
  color: var(--pg-gold-2);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.woocommerce-cart .cart_totals .shipping-calculator-form { margin-top: 0.6rem; text-align: left; }
.woocommerce-cart .cart_totals .shipping-calculator-form .input-text,
.woocommerce-cart .cart_totals .shipping-calculator-form select {
  width: 100%;
  border: 1px solid var(--pg-line);
  border-radius: 0;
  background: var(--pg-surface-2);
  padding: 0.6em 0.8em;
  font-size: 0.9rem;
}
/* Gutschein-Rabattzeile */
.woocommerce-cart .cart_totals .cart-discount td { color: var(--pg-gold-2); }
.woocommerce-cart .cart_totals .woocommerce-remove-coupon {
  display: inline-block;
  margin-left: 0.4rem;
  font-size: 0.78rem;
  color: var(--pg-ink-soft);
}
.woocommerce-cart .cart_totals .woocommerce-remove-coupon:hover { color: #b3261e; }
/* Gesamtsumme */
.woocommerce-cart .cart_totals .order-total th,
.woocommerce-cart .cart_totals .order-total td {
  border-top: 1px solid var(--pg-line);
  padding-top: 0.95rem;
  margin-top: 0.4rem;
}
.woocommerce-cart .cart_totals .order-total th {
  color: var(--pg-ink);
  font-weight: 600;
  font-size: 1rem;
}
.woocommerce-cart .cart_totals .order-total td .woocommerce-Price-amount {
  font-family: var(--pg-font-head);
  font-size: 1.55rem;
  font-weight: 600;
  color: var(--pg-ink);
}
.woocommerce-cart .cart_totals .order-total td small .woocommerce-Price-amount {
  font-family: var(--pg-font-body);
  font-size: 0.74rem;
  font-weight: 400;
  color: var(--pg-ink-soft);
}
/* „Zur Kasse"-Button — Pendant zum Bestellen-Button im Checkout */
.woocommerce-cart .wc-proceed-to-checkout {
  padding: 0;
  margin: 1.1rem 0 0;
}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
  display: block;
  width: 100%;
  text-align: center;
  background: linear-gradient(120deg, var(--pg-gold), var(--pg-gold-2)) !important;
  color: #101010 !important;
  border: 0;
  border-radius: 0;
  padding: 1.05em 1.4em;
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  transition: transform 0.2s var(--pg-ease), box-shadow 0.2s var(--pg-ease), filter 0.2s var(--pg-ease);
}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover {
  transform: translateY(-1px);
  box-shadow: var(--pg-shadow-gold);
  filter: brightness(1.03);
}

/* ---- Leerer Warenkorb ---- */
.woocommerce-cart .wc-empty-cart-message {
  margin: clamp(2rem, 6vw, 3.5rem) 0 1rem;
}
/* !important nötig: die generelle Notice-Regel weiter oben erzwingt
   background/border-left ihrerseits mit !important. */
.woocommerce-cart .wc-empty-cart-message .cart-empty,
.woocommerce-cart .woocommerce-notices-wrapper .cart-empty,
.woocommerce-cart p.cart-empty {
  background: none !important;
  border: 0 !important;
  padding: 0;
  margin: 0;
  text-align: center;
  font-family: var(--pg-font-head);
  font-size: clamp(1.4rem, 3vw, 1.9rem);
  color: var(--pg-ink);
}
.woocommerce-cart .cart-empty::before { display: none; }
.woocommerce-cart .return-to-shop {
  text-align: center;
  margin: 0 0 clamp(2.5rem, 6vw, 4rem);
}
.woocommerce-cart .return-to-shop a.button {
  display: inline-block;
  background: linear-gradient(120deg, var(--pg-gold), var(--pg-gold-2)) !important;
  color: #101010 !important;
  border: 0;
  border-radius: 0;
  padding: 0.95em 2.2em;
  font-weight: 600;
}

/* ---- Responsive ---- */
@media (max-width: 980px) {
  .pg-cp { grid-template-columns: 1fr; }
  .woocommerce-cart .cart_totals { position: static; }
}
@media (max-width: 640px) {
  .pg-cp-item {
    grid-template-columns: 76px minmax(0, 1fr);
    align-items: start;
    padding: 1rem;
  }
  .pg-cp-item__img { width: 76px; height: 76px; }
  .pg-cp-item__info { padding-right: 2rem; } /* Platz fürs Entfernen-Kreuz */
  .pg-cp-item__ctrl {
    grid-column: 1 / -1;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding-right: 0;
  }
  .pg-cp-item__subtotal { order: 1; }
  .pg-cp__actions { flex-direction: column; }
  .pg-cp__coupon .input-text#coupon_code { flex: 1 1 auto; }
}

/* ====================== Kantige Ecken: Eltern-Theme ====================
   Storefront legt auf Bilder, Buttons und Formularfelder pauschal 3 px Radius.
   Im Kind-Theme sitzt jeder Radius auf 0 (siehe --pg-radius in style.css) —
   diese Reste kommen aus der Eltern-Stylesheet und werden hier abgeräumt.
   Echte Kreise (Icon-Buttons, Punkte, Avatare) nutzen 50 % und sind davon
   bewusst NICHT betroffen: sie werden hier gar nicht erst adressiert.

   AUSNAHME `.pg-logo`: das Logo ist ein Kreis (border-radius:50%), und der
   Selektor `.site img` ist spezifischer als `.pg-logo` — ohne das :not() hier
   gewinnt die Abräumregel und schneidet das Logo eckig. Der dunkle Grund des
   Quellbildes wird sonst als schwarzes Kästchen sichtbar, sobald der Header
   über einer hellen Stelle des Hero-Bildes liegt (mix-blend-mode: screen
   entfernt ihn nur gegen dunklen Untergrund).                               */
.site img:not(.pg-logo),
.site input,
.site select,
.site textarea,
.site button:not([class*="--circle"]),
.site .button,
/* Der Zoom-Trigger der Galerie bekommt seinen Radius aus einer sehr spezifischen
   Storefront-Regel — hier ist !important der ehrlichere Weg als ein noch
   längerer Selektor-Wettlauf. */
.woocommerce-product-gallery__trigger {
  border-radius: 0 !important;
}

/* ====================== Echtheit von Bewertungen =======================
   Editoriale Transparenzseite. Der Inhalt kommt vollständig aus Gutenberg;
   die pg-review-policy-* Klassen werden dort als „Zusätzliche CSS-Klasse"
   gepflegt und ergeben ohne Page-Builder ein hochwertiges, stabiles Layout. */
.pg-review-policy-page .site-content,
.pg-review-policy-page .site-content > .col-full {
  max-width: none;
  margin: 0;
  padding: 0;
}
.pg-review-policy {
  background:
    linear-gradient(90deg, transparent 0, transparent calc(50% - 1px), rgba(23, 23, 23, 0.035) 50%, transparent calc(50% + 1px)),
    var(--pg-cream);
  color: var(--pg-ink);
}
.pg-review-policy__hero {
  position: relative;
  overflow: hidden;
  padding: clamp(5rem, 10vw, 8.5rem) 0 clamp(4rem, 8vw, 7rem);
  background:
    radial-gradient(circle at 78% 25%, rgba(210, 171, 102, 0.19), transparent 24rem),
    linear-gradient(118deg, #0a0a0a 0%, #171717 62%, #242019 100%);
  color: var(--pg-on-dark);
}
.pg-review-policy__hero::after {
  content: "";
  position: absolute;
  right: -8rem;
  bottom: -12rem;
  width: 31rem;
  height: 31rem;
  border: 1px solid rgba(210, 171, 102, 0.2);
  transform: rotate(26deg);
}
.pg-review-policy__hero-inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(3rem, 8vw, 8rem);
  align-items: end;
}
.pg-review-policy__hero-copy {
  max-width: 52rem;
}
.pg-review-policy__hero h1 {
  max-width: 11ch;
  margin: 0.35rem 0 1.25rem;
  color: var(--pg-on-dark);
  font-size: clamp(3.1rem, 8vw, 6.6rem);
  font-weight: 500;
  line-height: 0.88;
  letter-spacing: -0.035em;
}
.pg-review-policy__hero-lead {
  max-width: 42rem;
  margin: 0;
  color: var(--pg-on-dark-2);
  font-size: clamp(1.05rem, 1.8vw, 1.28rem);
  line-height: 1.7;
}
.pg-review-policy__seal {
  display: grid;
  width: clamp(11.5rem, 16vw, 14rem);
  min-height: clamp(11.5rem, 16vw, 14rem);
  padding: 1.7rem;
  place-content: center;
  justify-items: center;
  border: 1px solid rgba(210, 171, 102, 0.55);
  color: var(--pg-gold);
  text-align: center;
  transform: rotate(-2deg);
}
.pg-review-policy__seal svg {
  width: 3.25rem;
  margin-bottom: 0.8rem;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
}
.pg-review-policy__seal strong {
  color: var(--pg-on-dark);
  font-family: var(--pg-font-head);
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.1;
}
.pg-review-policy__seal span {
  margin-top: 0.35rem;
  color: var(--pg-on-dark-2);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}
.pg-review-policy__article {
  margin: 0;
  padding: clamp(4rem, 8vw, 7.5rem) 0;
}
.pg-review-policy__content {
  max-width: 67rem;
  margin: 0 auto;
}
.pg-review-policy__content > * {
  margin-block: 0;
}
.pg-review-policy__content > * + * {
  margin-top: 1.35rem;
}
.pg-review-policy__content > .pg-review-policy__intro {
  max-width: 50rem;
  margin: 0 0 clamp(3.5rem, 7vw, 6rem);
  font-family: var(--pg-font-head);
  font-size: clamp(1.8rem, 4.2vw, 3.15rem);
  font-weight: 500;
  line-height: 1.18;
  letter-spacing: -0.018em;
}
.pg-review-policy__content h2 {
  margin: clamp(4rem, 8vw, 7rem) 0 1rem;
  color: var(--pg-ink);
  font-size: clamp(2.2rem, 5vw, 3.9rem);
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.025em;
}
.pg-review-policy__content h3 {
  color: var(--pg-ink);
  font-size: clamp(1.45rem, 2.6vw, 1.9rem);
  font-weight: 500;
}
.pg-review-policy__content p,
.pg-review-policy__content li {
  color: var(--pg-ink-soft);
  font-size: 1.03rem;
  line-height: 1.75;
}
.pg-review-policy__content a {
  color: var(--pg-gold-2);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}
.pg-review-policy__content .pg-review-policy__steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin: 2.4rem 0 clamp(4rem, 8vw, 7rem);
  padding: 1px;
  background: var(--pg-line);
  list-style: none;
  counter-reset: pg-review-step;
}
.pg-review-policy__steps > li {
  position: relative;
  min-height: 18rem;
  margin: 0;
  padding: clamp(1.6rem, 3vw, 2.4rem);
  background: var(--pg-surface);
  counter-increment: pg-review-step;
}
.pg-review-policy__steps > li::before {
  content: "0" counter(pg-review-step);
  display: block;
  margin-bottom: 3.8rem;
  color: var(--pg-gold-2);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.14em;
}
.pg-review-policy__steps strong {
  display: block;
  margin-bottom: 0.65rem;
  color: var(--pg-ink);
  font-family: var(--pg-font-head);
  font-size: 1.65rem;
  font-weight: 600;
  line-height: 1.1;
}
.pg-review-policy__content .pg-review-policy__disclosure {
  position: relative;
  margin: clamp(3rem, 7vw, 5.5rem) 0;
  padding: clamp(2rem, 5vw, 4.5rem);
  background: var(--pg-bg);
  color: var(--pg-on-dark);
}
.pg-review-policy__disclosure::before {
  content: "i";
  position: absolute;
  top: clamp(2rem, 5vw, 4.5rem);
  right: clamp(2rem, 5vw, 4.5rem);
  display: grid;
  width: 2.4rem;
  height: 2.4rem;
  place-items: center;
  border: 1px solid rgba(210, 171, 102, 0.55);
  color: var(--pg-gold);
  font-family: var(--pg-font-head);
  font-size: 1.35rem;
  font-style: italic;
}
.pg-review-policy__disclosure > .wp-block-group__inner-container {
  display: block;
}
.pg-review-policy__disclosure h2,
.pg-review-policy__disclosure h3,
.pg-review-policy__disclosure strong {
  color: var(--pg-on-dark);
}
.pg-review-policy__disclosure h2 {
  max-width: none;
  margin: 0 0 clamp(1.7rem, 3vw, 2.5rem);
  padding-right: clamp(4.5rem, 8vw, 7rem);
  font-size: clamp(2.35rem, 4.5vw, 3.9rem);
  line-height: 1;
  hyphens: none;
  overflow-wrap: normal;
  word-break: normal;
}
.pg-review-policy__disclosure p,
.pg-review-policy__disclosure li {
  max-width: 56rem;
  color: var(--pg-on-dark-2);
}
.pg-review-policy__disclosure p:first-of-type {
  margin-top: 0;
}
.pg-review-policy__content .pg-review-policy__principles {
  margin: 2.2rem 0 clamp(4rem, 8vw, 7rem);
}
.pg-review-policy__principles > .wp-block-group__inner-container {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.5rem, 3vw, 2.7rem);
}
.pg-review-policy__principles > .wp-block-group__inner-container > * {
  margin: 0;
  padding-top: 1.4rem;
  border-top: 2px solid var(--pg-gold-2);
}
.pg-review-policy__principles h3 {
  margin: 0 0 0.65rem;
}
.pg-review-policy__principles p {
  margin: 0;
  font-size: 0.95rem;
}
.pg-review-policy__content .pg-review-policy__faq {
  margin: 1.8rem 0 0;
  border-top: 1px solid var(--pg-line);
}
.pg-review-policy__faq details {
  margin: 0;
  padding: 1.2rem 0;
  border-bottom: 1px solid var(--pg-line);
}
.pg-review-policy__faq summary {
  position: relative;
  padding-right: 3rem;
  color: var(--pg-ink);
  font-family: var(--pg-font-head);
  font-size: clamp(1.3rem, 2.5vw, 1.65rem);
  font-weight: 600;
  cursor: pointer;
  list-style: none;
}
.pg-review-policy__faq summary::-webkit-details-marker {
  display: none;
}
.pg-review-policy__faq summary::after {
  content: "+";
  position: absolute;
  right: 0.25rem;
  top: 50%;
  color: var(--pg-gold-2);
  font-family: var(--pg-font-body);
  font-size: 1.45rem;
  font-weight: 400;
  transform: translateY(-50%);
}
.pg-review-policy__faq details[open] summary::after {
  content: "−";
}
.pg-review-policy__faq details > *:not(summary) {
  max-width: 49rem;
  margin: 0.8rem 0 0;
}
.pg-review-policy__content .pg-review-policy__contact {
  margin-top: clamp(4rem, 8vw, 7rem);
  padding: clamp(2rem, 5vw, 4rem);
  border: 1px solid rgba(127, 99, 32, 0.42);
  background:
    linear-gradient(110deg, rgba(210, 171, 102, 0.14), transparent 52%),
    var(--pg-surface);
}
.pg-review-policy__contact h2 {
  margin-top: 0;
}
.pg-review-policy__contact p:last-child {
  margin-bottom: 0;
}
@media (max-width: 760px) {
  .pg-review-policy__hero-inner {
    grid-template-columns: 1fr;
    align-items: start;
  }
  .pg-review-policy__seal {
    width: 9.5rem;
    min-height: 9.5rem;
    padding: 1rem;
  }
  .pg-review-policy__seal svg {
    width: 2.5rem;
    margin-bottom: 0.55rem;
  }
  .pg-review-policy__seal strong {
    font-size: 1.15rem;
  }
  .pg-review-policy__disclosure h2 {
    padding-right: 3.75rem;
  }
  .pg-review-policy__content .pg-review-policy__steps,
  .pg-review-policy__principles > .wp-block-group__inner-container {
    grid-template-columns: 1fr;
  }
  .pg-review-policy__steps > li {
    min-height: 0;
  }
  .pg-review-policy__steps > li::before {
    margin-bottom: 2.2rem;
  }
}
