/* =======================================================
   RedeGold-Shop mit Storefront im Look der Ratgeber
   Kopf, Menü, Fuß, Shop-Seiten, Warenkorb, Kasse, Konto.
   Produktseite: produktseite.css
   ======================================================= */

/* Schriften von redegold.de (gleiche Domain, kein Google) */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/includes/fonts/inter-latin.woff2') format('woff2');
}
@font-face {
  font-family: 'Inter';
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
  src: url('/includes/fonts/inter-latin-italic.woff2') format('woff2');
}
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/includes/fonts/roboto-latin.woff2') format('woff2');
}
:root {
  --rg-gold: #C5A059;
  --rg-gold-dark: #A68545;
  --rg-gold-text: #563B0C;
  --rg-gold-soft: rgba(197, 160, 89, 0.35);
  --rg-ink: #111;
  --rg-text: #333;
  --rg-muted: #4b5563;
  --rg-line: rgba(17, 17, 17, 0.1);
  --rg-bg-soft: #F7F7F7;
  --rg-green: #4A7C59;
  --rg-green-dark: #3B6347;
  --rg-sans: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --rg-head: 'Roboto', 'Inter', -apple-system, 'Segoe UI', sans-serif;
}

/* --- Grundlage --- */
body, button, input, select, textarea,
.main-navigation ul li a, .site-header-cart .cart-contents {
  font-family: var(--rg-sans);
}
body {
  color: var(--rg-text);
  background: #fff;
  font-size: 18.7px; /* +10 % auf Franks Wunsch (vorher 17) */
  line-height: 1.5; /* Fließtext 1,5 wie auf den Ratgebern (Franks Wunsch) */
  -webkit-font-smoothing: antialiased;
  hyphens: auto;
  -webkit-hyphens: auto;
}
p, li { text-wrap: pretty; }

h1, h2, h3, h4, h5, h6, .page-title, .entry-title, .product_title, .woocommerce-loop-product__title {
  font-family: var(--rg-head);
  font-weight: 500;
  color: var(--rg-ink);
  letter-spacing: -0.01em;
  line-height: 1.12;
  text-wrap: balance;
  hyphens: manual;
  -webkit-hyphens: manual;
}
/* Handy rund 38 px (vorher 32, kaum größer als die H2), Desktop wie bisher bis 2,8rem */
h1, .page-title, .entry-title { font-size: clamp(2.35rem, 1.9rem + 2vw, 2.8rem); overflow-wrap: break-word; hyphens: auto; }
h2 { font-size: clamp(1.6rem, 3vw, 2.2rem); }
h3 { font-size: 1.45rem; }

a { color: var(--rg-gold-text); text-decoration: none; transition: color .2s; }
a:hover, a:focus { color: var(--rg-gold); }
.entry-content a:not(.button):not(.wp-block-button__link),
.woocommerce-info a, .woocommerce-message a:not(.button) {
  text-decoration: underline;
  text-decoration-color: var(--rg-gold-soft);
  text-underline-offset: 3px;
}
::selection { background: rgba(197, 160, 89, 0.25); }
* { scrollbar-width: thin; scrollbar-color: var(--rg-gold) #FDFCFB; }
:where(.site) *, :where(.site) *::before, :where(.site) *::after { border-radius: 0 !important; } /* :where = Spezifität 0, damit bewusst runde Elemente (Punkte, Pfeile) gewinnen */

.col-full { max-width: 1200px; }

/* --- Kopf: volle Breite, zwei Zeilen (wie das Original): oben Logo links und Claim rechts, darunter das Menü ---
   Beim Scrollen heftet sich nur die Menüzeile oben an (shop.js setzt body.rg-gescrollt; Platzhalter gegen Springen). */
.site-header {
  position: relative;
  z-index: 50;
  display: flex;
  flex-wrap: wrap;
  /* kein backdrop-filter hier: er machte den Kopf zum Bezugsrahmen der festen Menüzeile */
  background: #fff;
  border-bottom: 1px solid var(--rg-line);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);
  padding: 0;
  margin: 0 !important;
}
/* volle Breite inklusive Innenabstand (sonst ragt die Zeile um den Abstand über den Rand) */
.site-header > .col-full, .site-header .storefront-primary-navigation > .col-full, .site-footer > .col-full { box-sizing: border-box; }
/* Storefronts Clearfix (::before/::after) würde in den Flex-Zeilen als eigenes Element mitzählen */
.site-header > .col-full::before, .site-header > .col-full::after,
.site-header .storefront-primary-navigation > .col-full::before, .site-header .storefront-primary-navigation > .col-full::after { display: none; }
/* Storefront setzt overflow-x: hidden – damit klebt der Kopf nicht; clip schneidet genauso ab, lässt sticky aber zu */
body, .site { overflow-x: clip; }
.site-header .secondary-navigation { display: none; }
.site-header .skip-link { position: absolute; }

.site-header > .col-full {
  flex: 0 0 100%;
  max-width: none;
  margin: 0;
  padding: 0 clamp(16px, 3vw, 48px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  height: 88px;
}
@media (min-width: 768px) {
  .rg-gescrollt .site-header { padding-bottom: var(--rg-menue-hoehe, 50px) !important; }
  .rg-gescrollt .site-header .storefront-primary-navigation {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 60;
    background: rgba(255, 255, 255, 0.97);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-top: 0;
    border-bottom: 1px solid var(--rg-line);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.05);
  }
  .admin-bar.rg-gescrollt .site-header .storefront-primary-navigation { top: 32px; }
}

.rg-logo { float: none !important; width: auto !important; margin: 0 !important; padding: 0; }
.rg-logo img { display: block; height: 46px; width: auto; }
.rg-kopf-claim, .rg-kopf-claim:hover, .rg-kopf-claim:focus {
  display: block;
  padding: .5rem 0 .5rem 1rem; /* größere Klickfläche */
  font-family: 'Roboto Condensed', var(--rg-head);
  font-weight: 700;
  font-size: clamp(1.15rem, 1.9vw, 1.6rem);
  letter-spacing: -0.005em;
  line-height: 1.1;
  color: var(--rg-ink);
  text-decoration: none;
  margin: 0;
  white-space: nowrap;
}
.rg-kopf-claim .gold { color: var(--rg-gold); transition: color .2s; }
.rg-kopf-claim:hover .gold { color: var(--rg-gold-dark); }

/* Desktop: kleine Hand links in der angehefteten Menüzeile, erscheint erst beim Scrollen */
.rg-mini-logo { display: none; }
@media (min-width: 768px) {
  .rg-mini-logo {
    display: block;
    position: absolute;
    left: clamp(16px, 3vw, 48px);
    top: 50%;
    transform: translateY(-50%) scale(.85);
    opacity: 0;
    visibility: hidden;
    transition: opacity .25s, transform .25s, visibility 0s .25s;
  }
  .rg-mini-logo img { display: block; width: 34px; height: 34px; }
  .rg-gescrollt .rg-mini-logo { opacity: 1; visibility: visible; transform: translateY(-50%); transition: opacity .25s, transform .25s; }
}

.site-header .storefront-primary-navigation {
  flex: 0 0 100%;
  position: relative;
  background: transparent;
  border-top: 1px solid var(--rg-line);
}
.site-header .storefront-primary-navigation > .col-full {
  max-width: none;
  margin: 0;
  padding: 0 clamp(16px, 3vw, 48px);
  display: flex;
  align-items: center;
  justify-content: center;
}
.main-navigation { position: static; width: auto !important; float: none !important; margin: 0 !important; }
.main-navigation ul.menu > li > a,
.main-navigation ul.nav-menu > li > a {
  font-family: var(--rg-head);
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: uppercase; /* Hauptmenü in Versalien (Brotkrumen dafür in Normalschrift) */
  color: #745F2A;
  padding: .75em 1em;
  transition: color .2s;
}
/* keine Linie, keine Pfeile – nur die Farbe wechselt */
.main-navigation ul.menu li > a::after,
.main-navigation ul.nav-menu li > a::after { display: none !important; }
.main-navigation ul.menu > li:hover > a,
.main-navigation ul.menu > li.focus > a,
.main-navigation ul.menu > li.current-menu-item > a,
.main-navigation ul.menu > li.current-menu-ancestor > a { color: var(--rg-gold-text); }
.main-navigation ul.menu > li:hover > a, .main-navigation ul.menu > li.focus > a { color: var(--rg-gold); }

.site-header-cart {
  position: absolute;
  right: clamp(16px, 3vw, 48px);
  top: 50%;
  transform: translateY(-50%);
  width: auto !important;
  float: none;
  margin: 0;
}
.site-header-cart .cart-contents { padding: .6em 0; color: var(--rg-text); font-weight: 600; font-size: 14px; white-space: nowrap; }
.site-header-cart .cart-contents .count { display: inline; margin-left: .4em; margin-right: .55em; opacity: 1; color: var(--rg-muted); font-weight: 400; }
.site-header-cart .cart-contents::after { color: var(--rg-gold); }
/* Mini-Warenkorb (Darüberfahren über den Warenkorb im Kopf): eigenes Fenster in fester Breite,
   lange Listen scrollen innen, Summe und die zwei Knöpfe bleiben sichtbar */
.site-header-cart .widget_shopping_cart {
  width: 380px;
  max-width: calc(100vw - 32px);
  background: #fff;
  border: 1px solid var(--rg-line);
  border-top: 3px solid var(--rg-gold);
  box-shadow: 0 24px 48px rgba(0, 0, 0, 0.12);
  padding: 0;
  text-align: left;
}
.site-header-cart:hover .widget_shopping_cart, .site-header-cart.focus .widget_shopping_cart { left: auto !important; right: 0; }
.site-header-cart .widget_shopping_cart_content { padding: 1rem 1.3rem 1.3rem; }
.site-header-cart ul.woocommerce-mini-cart { max-height: min(32vh, 340px); overflow-y: auto; margin: 0 -1.3rem; padding: 0 1.3rem; list-style: none; }
.site-header-cart li.mini_cart_item {
  position: relative;
  min-height: 64px;
  padding: .85rem 1.8rem .85rem 92px;
  border-bottom: 1px solid var(--rg-line);
  font-size: 14px;
  line-height: 1.4;
}
.site-header-cart li.mini_cart_item img { position: absolute; left: 0; top: .85rem; width: 64px; height: 64px; max-width: none; /* Storefront: 2,6em */ object-fit: cover; margin: 0; float: none; }
.site-header-cart li.mini_cart_item a:not(.remove) { display: block; color: var(--rg-ink); font-weight: 600; text-decoration: none; }
.site-header-cart li.mini_cart_item a:not(.remove):hover { color: var(--rg-gold-text); }
/* Entfernen-Kreuz rechts oben (Storefront setzt es links und schiebt das × aus dem Bild) */
.site-header-cart .widget_shopping_cart .product_list_widget li.mini_cart_item a.remove {
  position: absolute; right: 0; top: .8rem; left: auto;
  width: 22px; height: 22px; line-height: 20px; text-align: center; font-size: 16px; text-indent: 0;
  border: 1px solid var(--rg-line); border-radius: 50%; color: var(--rg-muted); text-decoration: none;
}
.site-header-cart .widget_shopping_cart .product_list_widget li.mini_cart_item a.remove::before { display: none; }
.site-header-cart .widget_shopping_cart .product_list_widget li.mini_cart_item a.remove:hover { border-color: #B4483C; color: #B4483C; }
.site-header-cart li.mini_cart_item dl.variation { margin: .25rem 0 0; padding: 0; border: 0; font-size: 12.5px; color: var(--rg-muted); }
.site-header-cart li.mini_cart_item dl.variation dt { float: left; clear: left; margin: 0 .3em 0 0; font-weight: 400; }
.site-header-cart li.mini_cart_item dl.variation dd, .site-header-cart li.mini_cart_item dl.variation dd p { margin: 0; }
.site-header-cart li.mini_cart_item .quantity { display: block; margin-top: .3rem; font-size: 13px; color: var(--rg-text); }
.site-header-cart .woocommerce-mini-cart__total {
  display: flex; justify-content: space-between; align-items: baseline;
  margin: .9rem 0 .3rem; padding: .8rem 0 0; border-top: 2px solid var(--rg-gold-soft);
  font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: var(--rg-muted);
}
.site-header-cart .woocommerce-mini-cart__total strong { font-weight: 600; }
.site-header-cart .woocommerce-mini-cart__total .amount { font-family: var(--rg-head); font-size: 1.3rem; font-weight: 500; letter-spacing: 0; color: var(--rg-ink); text-transform: none; }
.site-header-cart .widget_shopping_cart_content > p:not(.woocommerce-mini-cart__total):not(.woocommerce-mini-cart__buttons) { font-size: 12px; line-height: 1.5; color: var(--rg-muted); margin: 0 0 .9rem; padding-top: .45rem; } /* Luft zur Haarlinie über der Summe */
.site-header-cart .woocommerce-mini-cart__buttons { margin: 0; padding: 0; }
/* Storefront legt Summe und Knopfzeilen auf Beige (#F0EEE9) – bei uns alles auf Weiß, die Goldlinie trennt */
.site-header-cart .widget_shopping_cart p.woocommerce-mini-cart__total,
.site-header-cart .widget_shopping_cart p.woocommerce-mini-cart__buttons { background: transparent; }
.site-header-cart .woocommerce-mini-cart__buttons:has(.wc-forward) { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
.site-header-cart .woocommerce-mini-cart__buttons .button { margin: 0; padding: .8em .6em; font-size: 14px; line-height: 1.25; text-align: center; white-space: nowrap; }
.site-header-cart .woocommerce-mini-cart__buttons + .woocommerce-mini-cart__buttons { margin-top: .6rem; }
.site-header-cart .woocommerce-mini-cart__buttons .button.checkout { background-color: var(--rg-green); color: #fff; } /* Storefront: Dunkelgrau */
.site-header-cart .woocommerce-mini-cart__buttons .button.checkout:hover { background-color: var(--rg-green-dark); }

/* Handy-Warenkorb im Kopf: nur am Handy (siehe unten) */
.rg-handy-korb { display: none; }

/* Mega-Menü: 2. Ebene = Spaltenüberschriften, 3./4. Ebene = Links darunter */
@media (min-width: 768px) {
  .main-navigation ul.menu > li > ul.sub-menu {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 250px); /* Spalten bis 250 px, schrumpfen mit dem Fenster */
    justify-content: center;
    width: auto;
    gap: 0;
    padding: 2.4rem clamp(16px, 3vw, 48px) 2.8rem;
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.86), rgba(255, 255, 255, 0.78)),
      var(--rg-mega-bild, none) center 35% / cover no-repeat,
      #fff;
    border: 0;
    border-top: 1px solid var(--rg-line);
    border-bottom: 2px solid var(--rg-gold);
    box-shadow: 0 24px 40px rgba(0, 0, 0, 0.10);
    top: 100%;
    left: -9999em;
    right: auto;
  }
  #menu-item-108 > ul.sub-menu { --rg-mega-bild: var(--rg-mega-angebote); }
  #menu-item-1276 > ul.sub-menu { --rg-mega-bild: var(--rg-mega-infos); background-position: 0 0, right 8% center, 0 0; background-size: auto, auto 115%, auto; }
  /* unter der ganzen Menüzeile über die volle Fensterbreite ausklappen */
  .main-navigation ul.menu > li { position: static; }
  .main-navigation ul.menu > li:hover > ul.sub-menu,
  .main-navigation ul.menu > li.focus > ul.sub-menu { left: 0; right: 0; }
  .main-navigation ul.menu > li > ul.sub-menu > li { padding: 0 1.6rem; border-left: 1px solid rgba(17, 17, 17, 0.12); }
  .main-navigation ul.menu > li > ul.sub-menu > li:first-child { border-left: 0; }
  /* Spaltenüberschriften: Roboto Light wie im Original */
  .main-navigation ul.menu > li > ul.sub-menu > li > a {
    font-family: var(--rg-head);
    font-size: 22px;
    font-weight: 300;
    line-height: 1.2;
    letter-spacing: 0;
    color: var(--rg-ink);
    width: auto;                 /* Storefront: 200 px */
    padding: 0 0 .7em;
    margin-bottom: .5em;
    border-bottom: 1px solid var(--rg-gold-soft);
    background: none;
    white-space: normal;
    overflow-wrap: break-word;
    hyphens: auto;
  }
  .main-navigation ul.menu > li > ul.sub-menu > li > a:not([href="#"]):hover { color: var(--rg-gold-text); }
  .main-navigation ul.menu ul a { white-space: normal; }
  /* tiefere Ebenen: immer sichtbar unter ihrer Überschrift */
  .main-navigation ul.menu ul ul {
    position: static;
    left: auto !important;
    box-shadow: none;
    background: transparent !important;
    width: auto;
    border: 0;
    padding: 0;
  }
  .main-navigation ul.menu ul ul ul { padding-left: 1rem; }
  .main-navigation ul.menu ul ul ul a { font-size: 14.5px; }
  .main-navigation ul.menu ul li { width: auto; }
  /* Links darunter mit kleinem goldenem Dreieck wie im Original */
  .main-navigation ul.menu ul ul a {
    position: relative;
    font-size: 15.5px;
    line-height: 1.35;
    color: #222;
    padding: .36em 0 .36em 1em;
    width: auto;
    background: none !important;
  }
  .main-navigation ul.menu ul ul a::before {
    content: '';
    display: block; /* Storefront blendet ::before an Menü-Links aus */
    position: absolute;
    left: 0;
    top: .78em;
    border: 4px solid transparent;
    border-left: 5px solid var(--rg-gold);
    border-right: 0;
  }
  .main-navigation ul.menu ul ul a:hover { color: var(--rg-gold-text); }
  .main-navigation ul.menu ul li.menu-item-has-children > a::after { display: none; }
  /* „#“-Überschriften ohne Ziel nicht wie Links aussehen lassen */
  .main-navigation ul.menu > li > ul.sub-menu > li > a[href="#"] { cursor: default; }
}

/* Handy-Menü */
.menu-toggle {
  font-size: 13.5px !important;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  background: #fff !important;
  border: 1px solid var(--rg-gold-soft) !important;
  color: var(--rg-text) !important;
}
@media (max-width: 767px) {
  /* eine Zeile: Logo links, Menü-Knopf rechts; das geöffnete Menü liegt darunter über die volle Breite */
  .site-header { position: sticky; top: 0; flex-wrap: nowrap; align-items: center; gap: 1rem; padding: 0 16px !important; }
  .site-header > .col-full { flex: 1 1 auto; height: 62px; padding: 0; }
  .rg-kopf-claim { display: none; }
  .rg-logo img { height: 34px; }
  .site-header .storefront-primary-navigation { flex: 0 0 auto; position: static; border-top: 0; }
  .site-header .storefront-primary-navigation > .col-full { padding: 0; justify-content: flex-end; }
  .menu-toggle { margin: 0; float: none !important; }
  .site-header-cart { display: none; }
  /* Warenkorb-Symbol mittig im Kopf (statt der Leiste unten) */
  .rg-handy-korb { display: block; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); z-index: 2; }
  .rg-handy-korb a.footer-cart-contents {
    position: relative;
    display: block;
    width: 48px;
    height: 48px;
    font-size: 0; /* Wort „Warenkorb“ nur für Vorleseprogramme (title/aria) */
    color: var(--rg-text);
    text-decoration: none;
  }
  .rg-handy-korb a.footer-cart-contents::before {
    content: '\f291';
    font-family: 'Font Awesome 5 Free';
    font-weight: 900;
    font-size: 22px;
    line-height: 48px;
    display: block;
    text-align: center;
    color: var(--rg-text);
  }
  .rg-handy-korb a.footer-cart-contents .count {
    position: absolute;
    top: 4px;
    left: 26px;
    min-width: 19px;
    height: 19px;
    padding: 0 4px;
    box-sizing: border-box;
    border: 2px solid #fff;
    border-radius: 10px !important;
    background: var(--rg-gold);
    color: #fff;
    font-size: 10.5px;
    font-weight: 700;
    line-height: 15px;
    text-align: center;
  }
  .main-navigation .handheld-navigation {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #fff;
    padding: 0 16px;
  }
  /* nur geöffnet sichtbar (Storefront klappt über max-height zu) */
  .main-navigation.toggled .handheld-navigation {
    border-top: 1px solid var(--rg-line);
    border-bottom: 2px solid var(--rg-gold);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);
    max-height: calc(100vh - 140px);
    overflow-y: auto;
  }
  .handheld-navigation ul.menu > li > a { font-weight: 600; text-transform: uppercase; letter-spacing: .1em; font-size: 13.5px; }
  .handheld-navigation ul.menu ul a { font-size: 15px; }
}

/* --- Inhalt --- */
.site-content { padding-top: 1.5em; }
/* Brotkrumen: ohne Linie und Leerzeile, rechts bündig mit Claim und Warenkorb, ein goldener Pfeil als Trenner */
.storefront-breadcrumb {
  position: relative;
  z-index: 2;
  background: transparent;
  border: 0;
  margin: 0;
  padding: 1.6rem 0 .6rem;
}
.storefront-breadcrumb > .col-full { max-width: none; box-sizing: border-box; padding: 0 clamp(16px, 3vw, 48px); }
.woocommerce-breadcrumb {
  margin: 0;
  font-size: 14px;   /* Normalschrift statt gesperrter Versalien: rund 17 % kürzer */
  line-height: 20px;
  letter-spacing: 0;
  color: var(--rg-muted);
  text-align: right;
}
.woocommerce-breadcrumb a { color: var(--rg-gold-text); text-decoration: none; }
.woocommerce-breadcrumb a:hover { color: var(--rg-gold); }
.woocommerce-breadcrumb a:first-of-type::before, .woocommerce-breadcrumb .breadcrumb-separator { display: none; }
.rg-bc-pfeil { color: var(--rg-gold-text); margin: 0 .55em; font-size: 1.15em; letter-spacing: 0; }
.woocommerce-breadcrumb { hyphens: none; -webkit-hyphens: none; overflow-wrap: normal; word-break: normal; }
/* Handy: statt vier Zeilen Pfad nur ein Zurück-Link zur übergeordneten Seite („‹ Training“) */
@media (max-width: 767px) {
  .woocommerce-breadcrumb { font-size: 0; }
  .woocommerce-breadcrumb a, .woocommerce-breadcrumb .rg-bc-pfeil { display: none; }
  .woocommerce-breadcrumb a:last-of-type { display: inline-block; font-size: 14px; padding: .35em 0; }
  .woocommerce-breadcrumb a:last-of-type::before { content: '‹'; display: inline-block; margin-right: .5em; font-size: 1.25em; line-height: 1; color: var(--rg-gold); }
}

.hentry .entry-header, .woocommerce-products-header { border-bottom: 0; padding-bottom: 1em; margin-bottom: 2em; }
.hentry .entry-header .entry-title::after,
.woocommerce-products-header__title::after {
  content: '';
  display: block;
  width: 56px;
  height: 2px;
  background: var(--rg-gold);
  margin-top: .45em;
}
@media (min-width: 768px) {
  .woocommerce-cart .entry-header .entry-title::after,
  .woocommerce-checkout .entry-header .entry-title::after,
  .woocommerce-account .entry-header .entry-title::after { margin-left: auto; margin-right: auto; }
}

/* Seiten mit Fließtext (AGB, Datenschutz …) und umgewandelte Avada-Seiten */
.page .entry-content { max-width: 820px; font-size: 19.25px; line-height: 1.5; }
.page .entry-content h2 { margin-top: 2em; }
.page .entry-content h3 { margin-top: 1.6em; }
.rg-kasten {
  background: #F6FBF7; /* Hauch Grün (vorher Elfenbein #FFFFF7) */
  border: 1px solid var(--rg-line);
  border-left: 3px solid #889A58; /* Goldgrün: Mitte zwischen Gold und Knopf-Grün */
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  padding: 1.4rem 1.8rem;
  margin: 1.8rem 0;
  color: #222;
}
.rg-kasten > :last-child, .rg-kasten .wp-block-group__inner-container > :last-child { margin-bottom: 0; }
.rg-haken { list-style: none; margin: 1rem 0; padding: 0; }
.rg-haken li { position: relative; padding: .45rem 0 .45rem 1.8rem; }
.rg-haken li::before { content: '✓'; position: absolute; left: 0; color: var(--rg-gold); font-weight: 700; }
.rg-haken li.rg-hinweis::before { content: '!'; }
.rg-haken li.rg-hinweis { color: var(--rg-muted); line-height: 1.5; }
/* Aufzählungen: goldene Rauten, Abstand nach jedem Punkt */
ul.wp-block-list:not(.rg-haken):not(.rg-plus) { list-style: none; padding-left: 0; margin: 1.2em 0 1.6em; }
ul.wp-block-list:not(.rg-haken):not(.rg-plus) > li { position: relative; padding-left: 1.7em; margin-bottom: .75em; }
ul.wp-block-list:not(.rg-haken):not(.rg-plus) > li::before {
  content: '';
  position: absolute;
  left: .2em;
  top: .62em;
  width: 7px;
  height: 7px;
  background: var(--rg-gold);
  transform: rotate(45deg);
}
/* Nummerierungen: große, feine Zahlen in Gold (Roboto Light wie das Zahlen-Band der Ratgeber) */
ol.wp-block-list { list-style: none; padding-left: 0; margin: 1.4em 0 1.8em; counter-reset: rg-zahl; }
ol.wp-block-list > li {
  counter-increment: rg-zahl;
  position: relative;
  padding-left: 3.6rem;
  min-height: 2.8rem;
  margin-bottom: 1.2em;
}
ol.wp-block-list > li::before {
  content: counter(rg-zahl);
  position: absolute;
  left: 0;
  top: -.12em;
  width: 2.6rem;
  text-align: center;
  font-family: var(--rg-head);
  font-weight: 200;
  font-size: 2.6rem;
  line-height: 1;
  color: var(--rg-gold);
  font-variant-numeric: lining-nums;
}

/* Feine Versalien-Überschrift wie FAQ und Ablauf der Ratgeber (Roboto 200, 15 % größer) */
.rg-fein {
  font-family: var(--rg-head);
  font-weight: 200 !important;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  font-size: calc(clamp(1.6rem, 3vw, 2.2rem) * 1.15) !important;
  line-height: 1.2;
  color: var(--rg-ink);
}
.rg-fein .gold { font-weight: 300; }

/* Einblenden beim Scrollen (wie .reveal auf den Ratgebern); shop.js setzt die Klassen */
.rg-reveal { opacity: 0; transform: translateY(24px); transition: opacity .75s ease-out, transform .75s ease-out; }
.rg-reveal.rg-sichtbar { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .rg-reveal { opacity: 1; transform: none; transition: none; } }
.rg-portrait { float: right; width: 25%; max-width: 200px; margin: 0 0 1rem 4%; }
.rg-portrait img { width: 100%; height: auto; display: block; }
.rg-nur-mobil { display: none; }
@media (max-width: 767px) { .rg-nur-mobil { display: block; } .rg-nur-desktop { display: none; } }
.wp-block-separator { border: 0; border-top: 1px solid var(--rg-line); margin: 2.5rem 0; background: none; }

/* --- Buttons --- */
button, input[type=button], input[type=reset], input[type=submit],
.button, .wp-element-button, .wp-block-button__link, .added_to_cart, .widget a.button {
  background-color: var(--rg-green); /* nur die Farbe: Zahlknöpfe (Google Pay u. a.) zeigen ihr Logo als Hintergrundbild */
  border: 0;
  color: #fff;
  font-family: var(--rg-sans);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0;
  text-transform: none;
  padding: .95em 2em;
  box-shadow: none;
  text-shadow: none;
  transition: background-color .2s;
}
button:hover, input[type=button]:hover, input[type=submit]:hover,
.button:hover, .wp-element-button:hover, .wp-block-button__link:hover, .added_to_cart:hover, .widget a.button:hover {
  background-color: var(--rg-green-dark); /* „background:“ setzte Wiederholung/Größe zurück – Google-Pay-Logo wurde gekachelt */
  color: #fff;
}
button:focus-visible, .button:focus-visible, input:focus-visible, a:focus-visible { outline: 2px solid var(--rg-gold); outline-offset: 2px; }
.checkout-button, #place_order { font-size: 17px !important; padding: 1.1em 2.6em; }
.checkout-button::after, #place_order::after { content: ' →'; }

/* Zweitrangig: weiß mit Goldrahmen */
.button.wc-backward, .woocommerce-cart-form button[name=update_cart], .coupon .button,
.widget_shopping_cart .buttons .button:not(.checkout), .german-market-withdrawal-button {
  background: #fff !important;
  color: var(--rg-text) !important;
  border: 1px solid var(--rg-gold-soft) !important;
  font-weight: 600;
}
.button.wc-backward:hover, .woocommerce-cart-form button[name=update_cart]:hover, .coupon .button:hover,
.german-market-withdrawal-button:hover { border-color: var(--rg-gold) !important; color: var(--rg-ink) !important; }
.site-search button, .widget_product_search button, .menu-toggle, .dropdown-toggle, .show-password-input,
.handheld-navigation button, .storefront-handheld-footer-bar button, .pswp button {
  background: transparent;
  color: var(--rg-text);
}

/* --- Formulare --- */
input[type=text], input[type=email], input[type=url], input[type=password], input[type=search],
input[type=number], input[type=tel], textarea, .input-text, select, .select2-container .select2-selection--single {
  background: #fff;
  border: 1.25px solid var(--rg-line);
  box-shadow: none;
  color: var(--rg-ink);
  padding: .8em 1em;
}
.select2-container .select2-selection--single { height: auto; padding: .55em .6em; }
input:focus, textarea:focus, .input-text:focus, select:focus, .select2-container--focus .select2-selection--single {
  border-color: var(--rg-gold);
  box-shadow: 0 0 0 3px rgba(197, 160, 89, 0.1);
  outline: 0;
}
label, .form-row label { font-size: 14px; font-weight: 600; color: var(--rg-text); }
input[type=checkbox], input[type=radio] { accent-color: var(--rg-gold); }

/* --- Hinweise --- */
.woocommerce-info, .woocommerce-message, .woocommerce-noreviews, p.no-comments, .woocommerce-error {
  background: #fff;
  color: var(--rg-text);
  border: 1px solid var(--rg-line);
  border-left: 3px solid var(--rg-gold);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}
.woocommerce-info::before, .woocommerce-message::before { color: var(--rg-gold); }
.woocommerce-error { border-left-color: #B4483C; }
/* Links in Hinweisen: Storefront färbt sie weiß (für seine farbigen Kästen) – auf unserem Weiß unsichtbar */
.woocommerce-info a:not(.button), .woocommerce-message a:not(.button), .woocommerce-error a:not(.button), .woocommerce-noreviews a:not(.button) {
  color: var(--rg-gold-text);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: var(--rg-gold-soft);
  text-underline-offset: 3px;
}
.woocommerce-info a:not(.button):hover, .woocommerce-message a:not(.button):hover, .woocommerce-error a:not(.button):hover { color: var(--rg-gold); text-decoration-color: var(--rg-gold); }
.woocommerce-message .button, .woocommerce-info .button { background-color: var(--rg-gold) !important; color: var(--rg-ink) !important; text-decoration: none; } /* Gold (Franks Wunsch); Grün bleibt der Hauptaktion vorbehalten */

/* --- Produktübersichten --- */
ul.products li.product {
  background: #fff;
  border: 1px solid var(--rg-line);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  padding: 10px 10px 1.6em; /* Bild mit etwas Luft zum Rahmen */
  transition: box-shadow .3s, transform .3s, border-color .3s;
}
ul.products li.product:hover { border-color: var(--rg-gold-soft); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08); transform: translateY(-3px); }
ul.products li.product img { margin-bottom: 1.2em; }
ul.products li.product .woocommerce-loop-product__title { font-size: 1.2rem; padding: 0 .6em; margin-bottom: .5em; }
ul.products li.product .price { font-weight: 600; color: var(--rg-gold-text); padding: 0 .6em; }
ul.products li.product .wgm-info, ul.products li.product .woocommerce-de_price_taxrate { font-size: 12.5px; color: var(--rg-muted); padding: 0 .75em; }
/* Knopf mit Luft darüber und in einer Reihe unten bündig, auch wenn Bilder oder Titel verschieden hoch sind */
ul.products li.product:not(.product-category) { display: flex; flex-direction: column; }
ul.products li.product:not(.product-category) > .button { margin-top: auto; align-self: center; }
ul.products li.product:not(.product-category) > :nth-last-child(1 of :not(.button):not(.screen-reader-text)) { margin-bottom: 1.1em; }
/* Karten einer Reihe gleich hoch (Storefront setzt Floats mit festen Breiten; die bleiben, nur die Höhe gleicht sich an) */
@media (min-width: 768px) {
  .site-main ul.products { display: flex; flex-wrap: wrap; }
  .site-main ul.products::before, .site-main ul.products::after { display: none; }
}
ul.products li.product .redegold-anfrage-btn { font-size: 14px; padding: .8em 1.2em; }
.onsale { background: var(--rg-gold); border: 0; color: #fff; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.woocommerce-result-count { color: var(--rg-muted); font-size: 14px; }
.woocommerce-pagination .page-numbers li .page-numbers { border: 1px solid var(--rg-line); background: #fff; color: var(--rg-text); }
.woocommerce-pagination .page-numbers li .page-numbers.current { background: var(--rg-ink); border-color: var(--rg-ink); color: #fff; }

/* --- Tabellen: Warenkorb, Kasse, Bestellungen --- */
table { border: 1px solid var(--rg-line); border-collapse: collapse; }
table th, table td, table tbody tr:nth-child(2n) td, table tbody tr:nth-child(2n) th { background: #fff !important; border-bottom: 1px solid var(--rg-line); }
table thead th, table.shop_table th { font-size: 12.5px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--rg-muted); }
table.cart td.product-name a { color: var(--rg-ink); font-weight: 600; }
.cart_totals h2, #order_review_heading, .woocommerce-checkout h3, .woocommerce-Address-title h3, .cross-sells > h2, .related > h2, .upsells > h2 {
  font-family: var(--rg-sans);
  font-size: 13.5px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--rg-text);
  border-bottom: 1px solid var(--rg-gold-soft);
  padding-bottom: .8em;
}
.cart_totals .order-total strong .amount, .woocommerce-checkout-review-order-table .order-total strong .amount {
  font-family: var(--rg-head);
  font-size: 1.4rem;
  font-weight: 500;
  color: var(--rg-ink);
}
/* Warenkorb, Kasse, Konto: volle Breite statt 820-px-Lesespalte der normalen Seiten */
.woocommerce-cart .entry-content, .woocommerce-checkout .entry-content, .woocommerce-account .entry-content { max-width: none; }
/* Warenkorb-Tabelle: Storefront gibt jeder Zelle 28 px Innenabstand je Seite – der fehlte dem Produktnamen */
@media (min-width: 768px) {
  table.cart th, table.cart td { padding: 1.1rem .7rem; }
  table.cart .product-remove { width: 1%; padding-left: .9rem; padding-right: 0; }
  table.cart td.product-name { min-width: 160px; overflow-wrap: normal; hyphens: auto; }
  table.cart .product-thumbnail { width: 76px; }
  table.cart .product-thumbnail img { width: 64px; max-width: none; }
  table.cart .product-price, table.cart .product-subtotal { white-space: nowrap; }
  table.cart .product-subtotal .tax_label, table.cart .product-subtotal small, table.cart .product-subtotal .wgm-tax { white-space: normal; display: block; font-size: 12.5px; color: var(--rg-muted); }
  table.cart .product-quantity { width: 90px; }
  table.cart td.actions { padding: 1.2rem; }
}
/* Tablet (einspaltig): Einzelpreis weglassen, die Zwischensumme zeigt ihn mit; kleineres Vorschaubild */
@media (min-width: 768px) and (max-width: 1023px) {
  table.cart .product-price { display: none; }
  table.cart .product-thumbnail { width: 56px; }
  table.cart .product-thumbnail img { width: 48px; }
}
/* Warenkorb: erst die Summe, dann die Empfehlungen („Das interessiert Sie vielleicht“) über die volle Breite,
   drei nebeneinander, mit großem Abstand darüber. Desktop: Produkte links, Summe rechts (nicht mehr mitlaufend:
   sie würde sich sonst über die Empfehlungen schieben). */
.woocommerce-cart .cart-collaterals { display: flex; flex-direction: column; }
.woocommerce-cart .cart-collaterals .cart_totals { order: -1; }
.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-cart .cart-collaterals .cross-sells { float: none; width: 100%; margin-left: 0; margin-right: 0; }
.woocommerce-cart .cross-sells { margin-top: clamp(3.5rem, 7vw, 6rem); }
.woocommerce-cart .cross-sells > h2 { margin-bottom: calc(1.618em + 3px); } /* 3 px mehr Luft unter der Haarlinie */
.woocommerce-cart .cross-sells ul.products { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; margin: 0; }
.woocommerce-cart .cross-sells ul.products::before, .woocommerce-cart .cross-sells ul.products::after { display: none; }
.woocommerce-cart .site-main .cross-sells ul.products.columns-3 li.product, .woocommerce-cart .site-main .cross-sells ul.products li.product { width: auto; float: none; margin: 0; } /* Storefront (volle Breite): 29,4 % mit Float */
@media (max-width: 860px) { .woocommerce-cart .cross-sells ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .woocommerce-cart .cross-sells ul.products { grid-template-columns: minmax(0, 1fr); } }
@media (min-width: 1024px) {
  .woocommerce-cart .entry-content > .woocommerce {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 380px);
    column-gap: clamp(2rem, 4vw, 3.5rem);
    align-items: start;
  }
  .woocommerce-cart .woocommerce-notices-wrapper { grid-column: 1 / -1; }
  .woocommerce-cart .woocommerce-cart-form { grid-column: 1; grid-row: 2; margin: 0; }
  /* Kästen der Nebenspalte direkt ins Raster: Summe rechts neben den Produkten, Empfehlungen darunter über beide Spalten */
  .woocommerce-cart .cart-collaterals { display: contents; }
  .woocommerce-cart .cart-collaterals .cart_totals {
    grid-column: 2;
    grid-row: 2;
    background: #fff;
    border: 1px solid var(--rg-line);
    border-top: 3px solid var(--rg-gold);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.06);
    padding: 1.6rem 1.6rem 1.2rem;
  }
  .woocommerce-cart .cart-collaterals .cart_totals table { border: 0; }
  .woocommerce-cart .cart-collaterals .cross-sells { grid-column: 1 / -1; grid-row: 3; }
}
/* Warenkorb-Tabelle: Zeile „Hier erfahren Sie mehr zu den Versandkosten …“ (German Market) wie der Hinweis unter der Summe;
   die Zelle trug einen weißen Hintergrund über dem Tabellenrahmen – daher die Lücke links und rechts */
table.cart tr.jde_hint td { font-size: 13px; line-height: 1.5; color: var(--rg-muted); text-align: left; background: transparent !important; }
table.cart tr.jde_hint td a { color: var(--rg-gold-text); }
table.cart dl.variation, .woocommerce-checkout-review-order-table dl.variation { font-size: .7875em; } /* Warenkorb und Kasse: 10 % kleiner als Storefronts .875em */
/* „Warenkorb aktualisieren“: mit JavaScript überflüssig (Mengen werden automatisch übernommen, shop.js) –
   ohne JavaScript bleibt er sichtbar, mit Luft nach oben */
.woocommerce-cart-form button[name=update_cart] { margin-top: .8rem; }
/* Gutschein (Warenkorb und Kasse): Feld und Knopf gleich hoch */
.coupon #coupon_code, .coupon .button, form.checkout_coupon .input-text, form.checkout_coupon .button {
  box-sizing: border-box; height: 56px; padding-top: 0; padding-bottom: 0; line-height: normal; vertical-align: middle; margin-top: 0; margin-bottom: 0;
}
@media (max-width: 767px) { .coupon .button { width: 100%; margin-top: .6rem; } } /* Handy: Knopf unter dem Feld, mit Luft */
.rg-js .woocommerce-cart-form button[name=update_cart] { display: none; }

/* Hinweis unter der Warenkorb-Summe („Versandkosten und Steuern sind geschätzt …“): klein, normaler Zeilenabstand */
.cart_totals .woocommerce-shipping-destination, .cart_totals .wc-cart-shipping-notice, .cart_totals > p,
.cart_totals .shipping-calculator-button, .cart_totals small { font-size: 13px; line-height: 1.5; color: var(--rg-muted); }
/* enthaltene MwSt. unter Summen: klein und in einer Zeile je Steuersatz (German Market) */
.cart_totals .wgm-tax, .woocommerce-checkout-review-order-table .wgm-tax { display: block; font-size: 12.5px; line-height: 1.5; color: var(--rg-muted); }
.cart_totals .wgm-tax .amount, .woocommerce-checkout-review-order-table .wgm-tax .amount { font: inherit; color: inherit; }
.cart_totals br.wgm-break, .woocommerce-checkout-review-order-table br.wgm-break { display: none; }
.cart_totals table th { width: 38%; }
#payment { background: var(--rg-bg-soft) !important; border: 1px solid var(--rg-line); }
#payment .payment_methods > li { background: #fff !important; border-bottom: 1px solid var(--rg-line); }
#payment .payment_methods li .payment_box { background: var(--rg-bg-soft) !important; border-left: 2px solid var(--rg-gold); }
#payment .payment_methods > li .payment_box::before { display: none; }

/* Mein Konto */
.woocommerce-MyAccount-navigation ul li a { font-size: 13.5px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--rg-text); }
.woocommerce-MyAccount-navigation ul li.is-active a, .woocommerce-MyAccount-navigation ul li a:hover { color: var(--rg-gold-text); }
form.login, form.register, form.checkout_coupon, form.lost_reset_password {
  border: 1px solid var(--rg-line);
  background: #fff;
  padding: 2em;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

/* --- Fuß wie die Ratgeber, gleiche Breite wie der Kopf --- */
.site-footer > .col-full { max-width: none; padding-left: clamp(16px, 3vw, 48px); padding-right: clamp(16px, 3vw, 48px); }
.site-footer {
  background: #fff;
  color: var(--rg-muted);
  border-top: 1px solid var(--rg-gold-soft);
  padding: 4.5rem 0 2rem;
  font-size: 15px;
}
.site-footer a:not(.button) { color: var(--rg-text); text-decoration: none; }
.site-footer a:not(.button):hover { color: var(--rg-gold-text) !important; }
.rg-fuss {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 3rem;
  padding-bottom: 3rem;
}
.rg-fuss-marke img { width: 180px; height: auto; display: block; margin-bottom: 1rem; }
.rg-fuss-marke p { font-family: var(--rg-sans); font-size: 16px; font-weight: 400; letter-spacing: -0.01em; text-transform: uppercase; color: #333; line-height: 24px; margin: 10px 0 0; max-width: 24em; } /* wie der Claim im Fuß der Ratgeber */
.rg-fuss-titel { font-size: 13.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--rg-ink); margin: 0 0 1.2rem; }
.rg-fuss ul { list-style: none; margin: 0; padding: 0; }
.rg-fuss li { margin: 0 0 .7rem; }
.rg-copyright {
  border-top: 1px solid var(--rg-line);
  padding-top: 1.6rem;
  font-size: 13px;
  line-height: 1.6;
  color: var(--rg-muted);
}
.site-footer .german-market-withdrawal-button-wrap { margin-top: 1.4rem; text-align: left; }
.site-footer .german-market-withdrawal-button { font-size: 13px; padding: .6em 1.2em; }
@media (max-width: 767px) {
  .rg-fuss { grid-template-columns: 1fr; gap: 2rem; }
}

/* Handy-Leiste unten */
.storefront-handheld-footer-bar { background: #fff; border-top: 1px solid var(--rg-gold-soft); box-shadow: 0 -6px 20px rgba(0, 0, 0, 0.05); }
.storefront-handheld-footer-bar ul li > a { background: #fff; color: var(--rg-text) !important; }
.storefront-handheld-footer-bar ul li.cart .count { background: var(--rg-gold); border-color: #fff; color: #fff; }

/* --- Menü in mittleren Breiten enger --- */
@media (min-width: 768px) and (max-width: 1100px) {
  .main-navigation ul.menu > li > a { padding-left: .6em; padding-right: .6em; font-size: 14.5px; letter-spacing: .06em; }
  .site-header-cart .cart-contents .count { display: none; }
}

/* --- Zweiter Button-Stil (Umriss) --- */
.wp-block-button.is-style-outline > .wp-block-button__link {
  background: #fff;
  color: var(--rg-text);
  border: 1px solid var(--rg-gold-soft);
  font-weight: 600;
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { border-color: var(--rg-gold); color: var(--rg-ink); background: #fff; }
.wp-block-buttons { gap: .8rem; }

/* --- Startseite --- */
.home .hentry .entry-header { display: none; }
.home .site-content { padding-top: 0; }
.home .storefront-breadcrumb { display: none; }
.home .entry-content { max-width: none; }
.home .hentry { margin-bottom: 0; padding-bottom: 0; border: 0; }
.gold { color: var(--rg-gold); }
.rg-label { font-size: 13.5px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--rg-text); margin-bottom: 1rem; }

/* Kopf der Startseite: Applaus-Publikum über die volle Breite hinter weißem Schleier (links dichter, wo der Text steht) */
.rg-start-kopf {
  margin: 0 calc(50% - 50vw);
  padding: 4.5rem calc(50vw - 50%) 5rem;
  border-bottom: 1px solid var(--rg-line);
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.95) 0%, rgba(255, 255, 255, 0.88) 45%, rgba(255, 255, 255, 0.62) 100%),
    var(--rg-start-bild, none) center 30% / cover no-repeat;
}
@media (min-width: 1025px) and (hover: hover) { .rg-start-kopf { background-attachment: scroll, fixed; } }
/* H1: Wörter steigen nacheinander auf, über „Applaus“ gleitet ein Lichtstreifen, die Goldlinie wächst */
.rg-start-titel { animation: rg-start-hoch .9s cubic-bezier(.22, .61, .36, 1) .15s both; }
.rg-start-titel .gold {
  display: inline-block;
  background: linear-gradient(110deg, var(--rg-gold) 0%, var(--rg-gold) 40%, #F3DFA8 50%, var(--rg-gold) 60%, var(--rg-gold) 100%) 100% 0 / 300% 100% no-repeat;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: rg-start-hoch .9s cubic-bezier(.22, .61, .36, 1) .45s both, rg-start-glanz 1.8s ease-in-out 1.3s both;
}
.rg-start-titel::after { transform-origin: left; animation: rg-start-linie .9s cubic-bezier(.22, .61, .36, 1) 1.1s both; }
.rg-start-kopf .rg-label, .rg-start-lead, .rg-start-kopf .wp-block-buttons { animation: rg-start-hoch .8s cubic-bezier(.22, .61, .36, 1) .7s both; }
@keyframes rg-start-hoch { from { opacity: 0; transform: translateY(26px); } }
@keyframes rg-start-glanz { from { background-position: 100% 0; } to { background-position: 0 0; } }
@keyframes rg-start-linie { from { transform: scaleX(0); } }
@media (prefers-reduced-motion: reduce) {
  .rg-start-titel, .rg-start-titel .gold, .rg-start-titel::after, .rg-start-kopf .rg-label, .rg-start-lead, .rg-start-kopf .wp-block-buttons { animation: none; }
}
.rg-start-kopf .wp-block-columns { gap: 3.5rem; margin: 0; }
.rg-start-titel { font-size: clamp(2.6rem, 6vw, 4.4rem); line-height: 1.02; letter-spacing: -0.02em; margin: 0 0 1.4rem; }
.rg-start-titel::after { content: ''; display: block; width: 56px; height: 2px; background: var(--rg-gold); margin-top: .5em; }
.rg-start-lead { font-size: 1.35rem; line-height: 1.5; color: #222; max-width: 30em; margin-bottom: 2rem; }
.rg-start-video { display: block; width: 100%; height: auto; background: #000; box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08); border: 1px solid var(--rg-line); }

.rg-start-wege { padding: 4.5rem 0; }
.rg-start-wege .wp-block-columns { gap: 2rem; margin: 0; }
.rg-karte {
  background: #fff;
  border: 1px solid var(--rg-line);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  padding: 0 0 1.6rem;
  transition: box-shadow .3s, transform .3s, border-color .3s;
  display: flex;
  flex-direction: column;
}
.rg-karte:hover { border-color: var(--rg-gold-soft); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08); transform: translateY(-3px); }
.rg-karte .wp-block-image { margin: 0 0 1.4rem; }
.rg-karte .wp-block-image img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block; }
.rg-karte h3, .rg-karte p { padding: 0 1.6rem; }
.rg-karte h3 { font-size: 1.45rem; margin: 0 0 .8rem; }
.rg-karte p { font-size: 17.6px; line-height: 1.5; }
.rg-karte .rg-karte-link { margin-top: auto; margin-bottom: 0; font-weight: 700; }
.rg-karte .rg-karte-link a { color: var(--rg-green); text-decoration: none !important; }

.rg-start-beliebt { padding: 3.5rem 0; border-top: 1px solid var(--rg-line); }
.home .rg-wertungen { margin-top: 0; }

@media (max-width: 781px) {
  .rg-start-kopf { padding-top: 2.5rem; padding-bottom: 3rem; background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.93), rgba(255, 255, 255, 0.8)), var(--rg-start-bild, none); }
  .rg-start-kopf .wp-block-columns, .rg-start-wege .wp-block-columns { gap: 2rem; }
}

/* --- Shop-Übersicht: Kategorie-Kacheln --- */
ul.products li.product-category { padding-bottom: 1.2em; }
ul.products li.product-category img { aspect-ratio: 16 / 10; object-fit: cover; width: 100%; }
ul.products li.product-category h2, .woocommerce-loop-category__title {
  font-family: var(--rg-head);
  font-size: 1.2rem !important;
  font-weight: 500;
  color: var(--rg-ink);
  padding: 0 1em;
}
ul.products li.product-category mark.count { background: none; color: var(--rg-muted); font-weight: 400; font-size: .85em; }
.woocommerce-products-header .page-description, .woocommerce-products-header .term-description { font-size: 1.2rem; color: #222; }
.post-type-archive-product .woocommerce-products-header .page-description h2 { display: none; }
.storefront-sorting { border-bottom: 1px solid var(--rg-line); padding-bottom: 1em; margin-bottom: 2em; }

/* Storefront färbt Block-Buttons mit :not(.has-background) grau – gleiche Gewichtung, eigene Farbe */
.wp-block-button:not(.is-style-outline) > .wp-block-button__link:not(.has-background) { background: var(--rg-green); color: #fff; border: 0; }
.wp-block-button:not(.is-style-outline) > .wp-block-button__link:not(.has-background):hover { background: var(--rg-green-dark); color: #fff; }
.wp-block-button.is-style-outline > .wp-block-button__link:not(.has-background) { background: #fff; color: var(--rg-text); border: 1px solid var(--rg-gold-soft); }

/* Kacheln: „Preis nach Aufwand“ als ruhige Zeile statt zweitem Knopf */
ul.products li.product .price .redegold-anfrage-btn {
  display: block;
  background: none;
  color: var(--rg-gold-text);
  padding: 0;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
  text-decoration: none;
  white-space: normal;
}
ul.products li.product .price .redegold-anfrage-btn + br, ul.products li.product .price .redegold-anfrage-btn + br + br { display: none; }

/* --- Eigene Kategorie-Seiten (vorher Avada-Layout), z. B. „Rede drucken, gestalten und vertonen“ --- */
.rg-kategorie-seite .entry-content { max-width: 1000px; margin: 0 auto; font-size: 19.25px; line-height: 1.5; }
.rg-kategorie-seite .entry-content h2 { margin-top: 2.2em; }
.rg-kategorie-seite .entry-content > .wp-block-heading:first-child { margin-top: .5em; }

/* --- Kategorie-Seite Druck + Halt (kategorieseiten/versand-per-post.html): breiter Satzspiegel,
       Kopf zweispaltig mit Bild rechts oben, danach einspaltig; Produkte in Bändern mit Goldverlauf --- */
.rg-kategorie-seite .entry-content:has(.rg-kat-hero) { max-width: 1200px; }
.rg-kat-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: start;
  margin: 1rem 0 3.5rem;
}
.rg-kat-hero-text { padding-top: .5rem; }
.rg-kat-hero .rg-augenbraue { margin-bottom: .9rem; }
.rg-kategorie-seite .rg-augenbraue { font-size: 13px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--rg-gold); }
.rg-kat-titel {
  font-family: var(--rg-head);
  font-weight: 200;
  font-size: clamp(2.6rem, 5.6vw, 4.6rem);
  line-height: 1.04;
  letter-spacing: -0.015em;
  color: var(--rg-ink);
  margin: 0 0 1.6rem;
}
.rg-kat-titel .gold { color: var(--rg-gold); font-weight: 300; }
.rg-kat-lead { font-size: 1.15em; line-height: 1.5; color: #222; margin: 0 0 1.1rem; }
.rg-kat-fragen { list-style: none; margin: 0; padding: 0; }
.rg-kat-fragen li {
  font-family: var(--rg-head);
  font-weight: 300;
  font-style: italic;
  font-size: 1.3em;
  line-height: 1.35;
  color: var(--rg-gold-text);
  padding: .55rem 0 .55rem 1.2rem;
  border-left: 2px solid var(--rg-gold-soft);
}
.rg-kat-hero-bild { margin: 0 1.2rem 1.2rem 0; position: relative; isolation: isolate; }
.rg-kat-hero-bild img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 25%; box-shadow: 0 30px 60px rgba(0, 0, 0, 0.12); }
@media (max-width: 860px) { .rg-kat-hero-bild img { aspect-ratio: 4 / 3; object-position: 50% 22%; } } /* Handy: flacher, damit der Titel früh kommt */
.rg-kat-hero-bild::after { content: ''; position: absolute; inset: 1.2rem -1.2rem -1.2rem 1.2rem; border: 1px solid var(--rg-gold); z-index: -1; }

.rg-kat-abschnitt { max-width: 860px; margin: 0 0 2.6rem; }
.rg-kategorie-seite .rg-kat-abschnitt h2 { font-size: clamp(1.6rem, 2.8vw, 2.1rem); margin: 0 0 .7em; }

/* Personen-Leiste über die volle Breite des Satzspiegels, Zitat rechts daneben */
.rg-person-leiste {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr) minmax(0, 1.25fr);
  gap: 2.2rem;
  align-items: center;
  margin: 1rem 0 3.5rem;
}
.rg-person-leiste .rg-person-bild { margin: 0; }
.rg-person-leiste .rg-person-bild img { max-width: 150px; }
.rg-person-leiste .rg-person-name { font-size: 1.45rem !important; }
.rg-person-zitat {
  margin: 0;
  padding: 0 0 0 2.2rem;
  border-left: 1px solid var(--rg-gold-soft);
  font-family: var(--rg-head);
  font-weight: 300;
  font-style: italic;
  font-size: 1.3rem;
  line-height: 1.45;
  color: var(--rg-ink);
}
.rg-person-zitat p { margin: 0; }
@media (max-width: 960px) {
  .rg-person-leiste { grid-template-columns: 110px minmax(0, 1fr); }
  .rg-person-leiste .rg-person-bild img { max-width: 110px; }
  .rg-person-zitat { grid-column: 1 / -1; padding: 1.2rem 0 0; border-left: 0; border-top: 1px solid var(--rg-gold-soft); }
}

/* Produkt-Bänder: oben ein Hauch Gold, der nach unten in Weiß ausläuft (wie im Original, feiner) */
.rg-kat-produkt {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: start;
  margin: 0 calc(50% - 50vw);
  padding: clamp(3rem, 6vw, 5rem) calc(50vw - 50%) clamp(2.5rem, 5vw, 4rem); /* Innenkante = Satzspiegel */
  background: linear-gradient(180deg, rgba(197, 160, 89, 0.11) 0%, rgba(197, 160, 89, 0.03) 45%, rgba(255, 255, 255, 0) 100%);
  border-top: 1px solid var(--rg-gold-soft);
  scroll-margin-top: 90px;
}
.rg-kategorie-seite .rg-kat-produkt h2 { font-size: clamp(1.7rem, 3vw, 2.3rem); margin: 0 0 .8em; }
.rg-kat-nummer {
  font-family: var(--rg-head);
  font-weight: 200;
  font-size: 3.4rem;
  line-height: 1;
  color: var(--rg-gold);
  margin: 0 0 .5rem;
}
.rg-kat-weiter { margin: 1.6rem 0 0; }
.rg-kat-weiter a { font-weight: 700; color: var(--rg-gold-text); text-decoration: none !important; border-bottom: 1px solid var(--rg-gold); padding-bottom: 2px; }
.rg-kat-weiter a:hover { color: var(--rg-gold); }
/* Karte beginnt bündig mit der Überschrift (Nummer davor ist 3.9rem hoch) */
.rg-kat-produkt-karte { padding-top: 3.9rem; }
.rg-kat-produkt-karte > p:empty { display: none; }
.rg-kat-produkt-karte .rg-produktkarte { grid-template-columns: 1fr; gap: 1.3rem; margin: 0; padding: 0 0 1.6rem; border-top-width: 3px; }
.rg-kat-produkt-karte .rg-produktkarte-text { padding: 0 1.6rem; }
.rg-kat-versand .rg-kat-produkt-karte, .rg-kat-versand .rg-kat-tipp { padding-top: 0; }
.rg-kat-tipp { background: #fff; border-left: 3px solid var(--rg-gold); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.06); padding: 1.8rem 2rem; }
.rg-kat-tipp .rg-label { margin-bottom: .6rem; }
.rg-kat-tipp p:last-child { margin: 0; }
@media (max-width: 860px) {
  .rg-kat-hero, .rg-kat-produkt { grid-template-columns: minmax(0, 1fr); }
  .rg-kat-hero-bild { order: -1; }
  .rg-kat-hero-bild::after { display: none; }
  .rg-kat-produkt-karte { padding-top: 0; }
}

/* Produktkarte: Bild links, Titel, Preis und Knopf rechts (ersetzt Avada „Post Cards“) */
.rg-produktkarte {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  gap: 2rem;
  align-items: center;
  background: #fff;
  border: 1px solid var(--rg-line);
  border-top: 3px solid var(--rg-gold);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.06);
  padding: 1.6rem;
  margin: 2rem 0 3rem;
  transition: transform .3s, box-shadow .3s;
}
.rg-produktkarte:hover { transform: translateY(-3px); box-shadow: 0 28px 50px rgba(0, 0, 0, 0.09); }
.rg-produktkarte-bild img { width: 100%; height: auto; display: block; }
.rg-produktkarte h3 { font-size: 1.5rem; margin: 0 0 .6rem; }
.rg-produktkarte h3 a { color: var(--rg-ink); text-decoration: none !important; }
.rg-produktkarte-preis { font-family: var(--rg-head); font-size: 1.5rem; font-weight: 500; color: var(--rg-ink); margin-bottom: 1.2rem; }
.rg-produktkarte-preis .wgm-info, .rg-produktkarte-preis small { display: block; font-family: var(--rg-sans); font-size: 13px; font-weight: 400; color: var(--rg-muted); }
.rg-produktkarte-knopf { text-decoration: none; }
@media (max-width: 640px) { .rg-produktkarte { grid-template-columns: 1fr; gap: 1.2rem; } }

/* Personen-Box „Ihr Redenschreiber“ */
.rg-person {
  background: var(--rg-bg-soft);
  border-left: 3px solid var(--rg-gold);
  padding: 2rem 2.2rem;
  margin: 2.5rem 0;
}
.rg-person .wp-block-columns { gap: 2rem; margin: 0; }
.rg-person-bild img { width: 100%; max-width: 220px; height: auto; display: block; box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08); }
.rg-person .rg-label { margin-bottom: .4rem; }
.rg-person-name { font-size: 1.6rem; margin: 0 0 .3rem; }
.rg-person-rolle { color: var(--rg-muted); margin: 0 0 1rem; }
.rg-person-kontakt { font-size: 15px; margin: 0; }
.rg-person-kontakt a { color: var(--rg-gold-text); text-decoration: none !important; }
/* in einer Spalte neben Text: Bild über dem Text */
.wp-block-column .rg-produktkarte { grid-template-columns: 1fr; gap: 1.2rem; margin: 0 0 2rem; }

/* Sprungziele, die shop.js zum Vorlesen fokussiert: kein Fokusrahmen um ganze Abschnitte */
[tabindex="-1"]:focus { outline: none; }

/* Bankverbindung (Vorkasse) auf der Bestätigungsseite: IBAN in einer Zeile, auch am Handy */
.woocommerce-bacs-bank-details ul.order_details li strong, ul.wc-bacs-bank-details.order_details li strong { font-size: 1.05rem; letter-spacing: .02em; white-space: nowrap; }

/* --- Warenkorb und Kasse: Knopffarben und Preisschrift --- */
/* Knopf in Hinweisen („Einkauf fortsetzen“): Gold mit dunkler Schrift, Luft rundum (Storefront: rechts 0) */
.woocommerce-message .button.wc-forward, .woocommerce-info .button.wc-forward, .woocommerce-message a.button, .woocommerce-info a.button {
  background-color: var(--rg-gold);
  color: var(--rg-ink);
  padding: .55em 1.15em;
  border: 0;
  line-height: 1.3;
}
.woocommerce-message a.button:hover, .woocommerce-info a.button:hover { background-color: #B38E48 !important; color: var(--rg-ink) !important; }
.woocommerce-message .button.wc-forward::after, .woocommerce-message a.button::after { margin-left: .55em; margin-right: 0; }
/* Text und Knopf nebeneinander; passt der Knopf nicht mehr in die Zeile, rutscht er mit etwas Abstand darunter
   (vorher klebte der nach rechts geschobene Knopf am Satz) */
.woocommerce-message:has(> .button), .woocommerce-info:has(> .button) { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; column-gap: 1em; row-gap: 4px; }
.woocommerce-message:has(> .button) > .button, .woocommerce-info:has(> .button) > .button { float: none; order: 2; margin-left: auto; }

/* Hauptaktion „Weiter zur Kasse“ und „Zahlungspflichtig bestellen“: unser Grün statt Storefronts Dunkelgrau */
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button.button.alt,
.woocommerce-checkout #place_order.button.alt {
  background-color: var(--rg-green);
  color: #fff;
}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button.button.alt:hover,
.woocommerce-checkout #place_order.button.alt:hover { background-color: var(--rg-green-dark); color: #fff; }

/* Preise in Warenkorb, Summen und Bestellübersicht: schlanke Roboto statt breiter, fetter Inter */
table.cart .amount, .cart_totals .amount, .woocommerce-checkout-review-order-table .amount,
.woocommerce-table--order-details .amount, .site-header-cart .widget_shopping_cart .amount {
  font-family: var(--rg-head);
  font-weight: 400;
  letter-spacing: 0;
}
table.cart .product-subtotal strong, .cart_totals .order-total strong { font-weight: 400; }
.cart_totals .order-total strong .amount, .woocommerce-checkout-review-order-table .order-total strong .amount { font-weight: 500; }
