﻿/* ────────────────────────────────────────────────────────────────────────
   Jennifer Eichler Theme — Design-System
   Palette direkt aus dem Logo abgeleitet.
   CSS-Klassen-Prefix: .je-*
──────────────────────────────────────────────────────────────────────── */

/* ── BRAND TOKENS ─────────────────────────────────────────────────────── */
:root {
  --je-bg:           #FAF8F3;
  --je-surface:      #F0EAE0;
  --je-surface-soft: #F5EFE5;
  --je-text:         #524E4A;
  --je-text-soft:    #78716B;  /* war: #7A736D (4.40:1 → jetzt 4.52:1 auf --je-bg, WCAG 1.4.3 AA) */
  --je-text-muted:   #797168;  /* war: #A8A097 (2.43:1 → jetzt 4.52:1 auf --je-bg, WCAG 1.4.3 AA) */
  --je-line:         #E2D8C7;
  --je-line-soft:    #EDE5D6;
  --je-gold:         #CEBA88;
  --je-gold-deep:    #B8A070;
  --je-gold-light:   #E8D9B0;

  --je-glass-bg:        rgba(250, 248, 243, 0.62);
  --je-glass-bg-strong: rgba(250, 248, 243, 0.95);
  --je-glass-border:    rgba(206, 186, 136, 0.22);
  --je-glass-shadow:    0 1px 0 rgba(255,255,255,0.5) inset,
                        0 24px 60px -28px rgba(82,78,74,0.18),
                        0 2px 6px -2px rgba(82,78,74,0.06);

  --je-font-display: "Cormorant Garamond", "Cormorant", Georgia, serif;
  --je-font-body:    "Raleway", "Helvetica Neue", Helvetica, Arial, sans-serif;

  --je-nav-h: 80px;
  --je-filterbar-h: 60px;

  /* abgeleitete Tokens (zuvor undefiniert referenziert) */
  --je-border:   var(--je-line);
  --je-gutter:   56px;
  --je-font-ui:  var(--je-font-body);
}

/* ── BASE ─────────────────────────────────────────────────────────────── */
/* scroll-padding-top: fixed Navbar verdeckt beim Focus-Scrollen keine Elemente mehr (WCAG 2.4.7) */
/* overflow-x:clip NICHT auf html setzen — bricht position:fixed auf iOS Safari ≤15 */
html { scroll-padding-top: var(--je-nav-h); }
body.je {
  overflow-x: clip;
  background: var(--je-bg);
  color: var(--je-text);
  font-family: var(--je-font-body);
  font-weight: 300;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body.je h1, body.je h2, body.je h3, body.je h4 {
  font-family: var(--je-font-display);
  font-weight: 600;
  color: var(--je-text);
  letter-spacing: -0.01em;
  line-height: 1.08;
  margin: 0;
}

body.je a { color: var(--je-text); text-decoration: none; }
body.je a:hover { color: var(--je-gold-deep); }

/* ── TYPOGRAPHY PRIMITIVES ────────────────────────────────────────────── */
.je-eyebrow {
  font-family: var(--je-font-body);
  font-weight: 400;
  font-size: 11px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--je-text-soft);  /* war: var(--je-gold-deep) (2.38:1 → jetzt 4.52:1, WCAG 1.4.3 AA) */
  display: flex;
  align-items: center;
  gap: 10px;
}

.je-small-caps {
  font-family: var(--je-font-body);
  font-weight: 400;
  font-size: 11px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
}

.je-rule {
  display: inline-block;
  width: 28px;
  height: 1px;
  background: var(--je-gold);
  vertical-align: middle;
  flex-shrink: 0;
}

.je-divider       { height: 1px; background: var(--je-line);      margin: 12px 0; }
.je-divider-soft  { height: 1px; background: var(--je-line-soft); margin: 12px 0; }

.je-gold-text { color: var(--je-gold-deep) !important; }

/* ── GLASS ────────────────────────────────────────────────────────────── */
.je-glass {
  background: var(--je-glass-bg);
  backdrop-filter: blur(20px) saturate(140%);
  -webkit-backdrop-filter: blur(20px) saturate(140%);
  border: 1px solid var(--je-glass-border);
  box-shadow: var(--je-glass-shadow);
}
.je-glass-strong {
  background: var(--je-glass-bg-strong);
  backdrop-filter: blur(24px) saturate(150%);
  -webkit-backdrop-filter: blur(24px) saturate(150%);
  border: 1px solid var(--je-glass-border);
  box-shadow: var(--je-glass-shadow);
}

/* ── PILLS / BADGES ───────────────────────────────────────────────────── */
.je-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 30px;
  padding: 0 14px;
  border-radius: 999px;
  background: rgba(250,248,243,0.55);
  backdrop-filter: blur(14px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  border: 1px solid var(--je-glass-border);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--je-text);
  white-space: nowrap;
}
.je-pill-gold {
  background: rgba(232,217,176,0.55);
  border-color: rgba(184,160,112,0.45);
  color: var(--je-gold-deep);
}

/* ── BUTTONS ──────────────────────────────────────────────────────────── */
.je-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  height: 56px;
  padding: 0 28px;
  background: var(--je-text);
  color: var(--je-bg) !important;
  border: none;
  font-family: var(--je-font-body);
  font-weight: 400;
  font-size: 12px;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 220ms ease;
  text-decoration: none;
}
.je-cta:hover { background: var(--je-gold-deep); color: var(--je-bg) !important; }

.je-cta-ghost {
  background: transparent !important;
  color: var(--je-text) !important;
  border: 1px solid var(--je-line);
}
.je-cta-ghost:hover { background: var(--je-gold) !important; border-color: var(--je-gold); color: var(--je-text) !important; }

/* ── LINKS ────────────────────────────────────────────────────────────── */
.je-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--je-text);
  border-bottom: 1px solid var(--je-gold);
  padding-bottom: 3px;
  transition: color 200ms, border-color 200ms;
  text-decoration: none;
}
.je-link:hover { color: var(--je-gold-deep); border-color: var(--je-gold-deep); }

/* ── PLACEHOLDERS ─────────────────────────────────────────────────────── */
.je-canvas-art {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.05), rgba(82,78,74,0.06)),
    repeating-linear-gradient(
      92deg,
      #ECE3D2 0, #ECE3D2 2px,
      #E5DAC4 2px, #E5DAC4 5px,
      #EFE6D6 5px, #EFE6D6 9px,
      #E0D3B8 9px, #E0D3B8 11px
    );
}

.je-canvas-jewel {
  position: relative;
  overflow: hidden;
  background: radial-gradient(60% 50% at 50% 45%, #F7F1E5, #ECE3D2 70%, #E2D8C7);
}

/* ── SOLD OVERLAY ─────────────────────────────────────────────────────── */
.je-sold-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(82,78,74,0.42);
  backdrop-filter: blur(2px) saturate(120%);
  -webkit-backdrop-filter: blur(2px) saturate(120%);
}
.je-sold-card {
  background: rgba(250,248,243,0.82);
  backdrop-filter: blur(18px) saturate(140%);
  -webkit-backdrop-filter: blur(18px) saturate(140%);
  border: 1px solid rgba(206,186,136,0.4);
  padding: 18px 28px;
  text-align: center;
  max-width: 80%;
}
.je-sold-card__label {
  font-family: var(--je-font-display);
  font-style: italic;
  font-size: 22px;
  color: var(--je-text);
}
.je-sold-card__sub {
  font-size: 10px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--je-gold-deep);
  margin-top: 6px;
}

/* ── NAVBAR ───────────────────────────────────────────────────────────── */
.je-nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  height: var(--je-nav-h);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 56px;
  background: var(--je-glass-bg-strong);
  backdrop-filter: blur(22px) saturate(150%);
  -webkit-backdrop-filter: blur(22px) saturate(150%);
  border-bottom: 1px solid var(--je-glass-border);
  /* iOS: GPU-Layer erzwingen damit backdrop-filter + position:fixed korrekt rendert */
  will-change: transform;
}

.je-nav__logo-img {
  height: 60px;
  width: auto;
  display: block;
}
.je-nav__wordmark {
  font-family: var(--je-font-display);
  font-size: 22px;
  color: var(--je-text);
  letter-spacing: 0.08em;
}

/* OC4 menu inside navbar */
.je-nav__menu { flex: 1; display: flex; justify-content: center; }

.je-nav__menu #menu { margin: 0; padding: 0; background: transparent; border: none; box-shadow: none; }
.je-nav__menu #menu .navbar-nav { flex-direction: row; gap: 32px; }
.je-nav__menu #menu .nav-item > a {
  font-size: 13px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  font-weight: 400;
  color: var(--je-text) !important;
  padding: 4px 0;
  border-bottom: 1px solid transparent;
  transition: color 200ms, border-color 200ms;
  background: transparent !important;
}
.je-nav__menu #menu .nav-item > a:hover,
.je-nav__menu #menu .nav-item.active > a {
  color: var(--je-gold-deep) !important;
  border-bottom-color: var(--je-gold);
}
.je-nav__menu #menu .dropdown-menu {
  background: var(--je-glass-bg-strong);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid var(--je-glass-border);
  border-radius: 0;
  box-shadow: var(--je-glass-shadow);
}
.je-nav__menu #menu .dropdown-menu .nav-item a {
  font-size: 12px;
  letter-spacing: 0.18em;
  color: var(--je-text) !important;
  padding: 10px 18px;
}
.je-nav__menu #menu .dropdown-menu .nav-item a:hover { color: var(--je-gold-deep) !important; background: transparent; }

.je-nav__actions {
  display: flex;
  align-items: center;
  gap: 20px;
}
.je-nav__icon {
  color: var(--je-text);
  display: flex;
  align-items: center;
  transition: color 200ms;
}
.je-nav__icon:hover { color: var(--je-gold-deep); }

/* Language switcher — minimal */
.je-nav__lang .dropdown-toggle {
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--je-text-soft);
  background: transparent !important;
  border: none;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 6px;
}
.je-nav__lang .dropdown-toggle::after { display: none; }
.je-nav__lang .dropdown-toggle img { width: 16px; height: 11px; object-fit: cover; border-radius: 1px; }
.je-nav__lang .dropdown-toggle:hover { color: var(--je-text); }
.je-nav__lang .dropdown-toggle .fa-caret-down { font-size: 9px; opacity: 0.5; }

.je-nav__lang .dropdown-menu {
  background: var(--je-glass-bg-strong);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid var(--je-glass-border);
  border-radius: 0;
  box-shadow: var(--je-glass-shadow);
  padding: 6px 0;
  min-width: 140px;
}
.je-nav__lang .dropdown-item {
  font-family: var(--je-font-body);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--je-text-soft);
  padding: 9px 18px;
  display: flex;
  align-items: center;
  gap: 8px;
  background: transparent;
  transition: color 140ms, background 140ms;
}
.je-nav__lang .dropdown-item img { width: 16px; height: 11px; object-fit: cover; border-radius: 1px; }
.je-nav__lang .dropdown-item:hover,
.je-nav__lang .dropdown-item:focus { color: var(--je-text); background: rgba(206, 186, 136, 0.10); }

/* ── ACCOUNT DROPDOWN ───────────────────────────────────────────────────── */
.je-nav__account { position: relative; }

.je-account-panel {
  position: absolute;
  top: calc(100% + 12px);
  right: 0;
  min-width: 170px;
  background: var(--je-glass-bg-strong);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid var(--je-border);
  border-radius: 8px;
  padding: 6px 0;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0s linear 0.2s;
  z-index: 1050;
  box-shadow: 0 8px 32px rgba(0,0,0,0.15);
}
.je-account-panel.is-open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  transition-delay: 0s;
}
.je-account-panel__link {
  display: block;
  padding: 11px 20px;
  font-family: var(--je-font-body);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--je-text);
  text-decoration: none;
  transition: color 0.15s ease, background 0.15s ease;
}
.je-account-panel__link:hover { color: var(--je-gold-deep); background: rgba(206,186,136,0.08); }
.je-account-panel__link--secondary {
  color: var(--je-text-muted);
  border-top: 1px solid var(--je-border);
  margin-top: 2px;
}

/* Mobile-Nav Account-Links */
.je-mob-nav__account {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 16px 0 8px;
  border-top: 1px solid var(--je-border);
  margin: 0 32px;
}
.je-mob-nav__account-link {
  font-family: var(--je-font-body);
  font-size: 12px;
  letter-spacing: 0.1em;
  color: var(--je-text-soft);
  text-decoration: none;
  padding: 6px 0;
  transition: color 0.15s ease;
}
.je-mob-nav__account-link:hover { color: var(--je-gold-deep); }

/* Hamburger (mobile) */
.je-nav__hamburger {
  display: none;
  background: transparent;
  border: none;
  cursor: pointer;
  color: var(--je-text);
  padding: 4px;
}

@media (max-width: 991px) {
  .je-nav { padding: 0 24px; }
  .je-nav__menu { display: none; }
  .je-nav__hamburger { display: flex; align-items: center; }
  .je-nav__lang { display: none; }
}

body.je main { padding-top: var(--je-nav-h); }

/* ── MOBILE NAV OVERLAY ───────────────────────────────────────────────── */
.je-mob-nav {
  position: fixed;
  inset: 0;
  z-index: 200;
  background: rgba(250,248,243,0.96);
  backdrop-filter: blur(28px) saturate(150%);
  -webkit-backdrop-filter: blur(28px) saturate(150%);
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  touch-action: pan-y;
  visibility: hidden;
  transform: translateX(100%);
  transition: transform 320ms cubic-bezier(0.4, 0, 0.2, 1), visibility 0s linear 320ms;
}
.je-mob-nav.is-open {
  transform: translateX(0);
  visibility: visible;
  transition: transform 320ms cubic-bezier(0.4, 0, 0.2, 1), visibility 0s linear 0s;
}

.je-mob-nav__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: var(--je-nav-h);
  padding: 0 24px;
  border-bottom: 1px solid var(--je-glass-border);
}
.je-mob-nav__close {
  background: transparent;
  border: none;
  cursor: pointer;
  color: var(--je-text);
  display: flex;
  align-items: center;
}

.je-mob-nav__menu { padding: 24px; }
.je-mob-nav__menu #menu { background: transparent; border: none; box-shadow: none; }
.je-mob-nav__menu #menu .navbar-nav { flex-direction: column; gap: 0; }
.je-mob-nav__menu #menu .nav-item > a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 0;
  border-bottom: 1px solid var(--je-line-soft);
  font-family: var(--je-font-display);
  font-style: italic;
  font-size: 28px;
  color: var(--je-text) !important;
  background: transparent !important;
  letter-spacing: 0;
}
.je-mob-nav__menu #menu .nav-item > a:hover { color: var(--je-gold-deep) !important; }

.je-mob-nav__footer { margin-top: auto; padding: 24px; }

/* ── HOMEPAGE ─────────────────────────────────────────────────────────── */
.je-homepage { overflow-x: hidden; }

/* Hero */
.je-hero {
  position: relative;
  margin-top: calc(-1 * var(--je-nav-h));
  height: 100vh;
  min-height: 600px;
  overflow: hidden;
}
.je-hero__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transition: transform 0.6s ease;
}
.je-hero:hover .je-hero__bg { transform: scale(1.03); }
.je-hero__card {
  position: absolute;
  left: 56px;
  bottom: 56px;
  width: min(380px, calc(100vw - 112px));
  padding: 32px 36px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.je-hero__title {
  font-size: clamp(28px, 4vw, 44px);
  font-style: italic;
  font-weight: 500;
}
.je-hero__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}
.je-hero__price {
  font-family: var(--je-font-display);
  font-style: italic;
  font-size: 28px;
  color: var(--je-gold-deep);
}
.je-hero__scroll {
  position: absolute;
  right: 56px;
  bottom: 56px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  color: var(--je-text-soft);
}
.je-hero__scroll-text { writing-mode: vertical-rl; transform: rotate(180deg); }
.je-hero__scroll-line { width: 1px; height: 60px; background: var(--je-gold); }

@media (max-width: 768px) {
  .je-hero__card { left: 20px; bottom: 20px; width: calc(100vw - 40px); padding: 20px 24px; }
  .je-hero__scroll { display: none; }
}

/* Editorial */
.je-editorial {
  padding: 120px 96px 80px;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.je-section-header {
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-width: 680px;
  margin-bottom: 80px;
}
.je-section-header__title { font-size: clamp(28px, 3.5vw, 44px); font-style: italic; font-weight: 500; }
.je-section-header__kicker { color: var(--je-text-soft); font-size: 15px; line-height: 1.7; }

.je-editorial__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
  padding: 60px 0;
  border-top: 1px solid var(--je-line-soft);
}
.je-editorial__row--reverse { direction: rtl; }
.je-editorial__row--reverse > * { direction: ltr; }

.je-editorial__image {
  position: relative;
  overflow: hidden;
}
.je-editorial__image img,
.je-editorial__image > div {
  aspect-ratio: 4/5;
  width: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}
.je-editorial__image:hover img { transform: scale(1.03); }
.je-editorial__image-link {
  position: absolute;
  inset: 0;
  z-index: 1;
}

.je-editorial__text {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 0 32px;
}
.je-editorial__title { font-size: clamp(24px, 3vw, 40px); font-style: italic; font-weight: 500; }
.je-editorial__price { font-family: var(--je-font-display); font-style: italic; font-size: 28px; color: var(--je-gold-deep); }

@media (max-width: 991px) {
  .je-editorial { padding: 80px 32px 60px; }
  .je-editorial__row { grid-template-columns: 1fr; gap: 32px; }
  .je-editorial__row--reverse { direction: ltr; }
  .je-editorial__text { padding: 0; }
}

/* Das Stück der Woche */
.je-week-section { padding: 0 96px 120px; }
.je-week {
  position: relative;
  background: var(--je-surface);
  padding: 56px;
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 72px;
  align-items: center;
  overflow: hidden;
}
.je-week__glow {
  position: absolute;
  right: -120px;
  top: -120px;
  width: 360px;
  height: 360px;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(206,186,136,0.30), transparent);
  pointer-events: none;
}
.je-week__image-wrap { position: relative; overflow: hidden; }
.je-week__image-wrap img,
.je-week__image-wrap > div {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}
.je-week__image-wrap:hover img { transform: scale(1.03); }
.je-week__text {
  display: flex;
  flex-direction: column;
  gap: 20px;
  position: relative;
}
.je-week__title { font-size: clamp(28px, 3.5vw, 48px); font-style: italic; font-weight: 500; }
.je-week__price { font-family: var(--je-font-display); font-style: italic; font-size: 36px; color: var(--je-gold-deep); }

@media (max-width: 991px) {
  .je-week-section { padding: 0 24px 80px; }
  .je-week { grid-template-columns: 1fr; padding: 32px; gap: 32px; }
}

/* Masonry */
.je-masonry-section { padding: 0 96px 120px; }
.je-masonry-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 48px;
  gap: 24px;
}
.je-masonry-header__title { font-size: clamp(24px, 3vw, 40px); font-style: italic; font-weight: 500; margin-top: 10px; }

.je-masonry {
  columns: 3;
  column-gap: 20px;
}
.je-masonry__item {
  position: relative;
  margin: 0 0 20px;
  break-inside: avoid;
  overflow: hidden;
  display: block;
  cursor: pointer;
}
.je-masonry__item img,
.je-masonry__item > div:first-child {
  width: 100%;
  display: block;
  object-fit: cover;
  transition: transform 0.5s ease;
}
.je-masonry__item:hover img { transform: scale(1.03); }
/* Varying heights for asymmetric effect */
.je-masonry__item:nth-child(1) img { aspect-ratio: 3/4; }
.je-masonry__item:nth-child(2) img { aspect-ratio: 4/5; }
.je-masonry__item:nth-child(3) img { aspect-ratio: 2/3; }
.je-masonry__item:nth-child(4) img { aspect-ratio: 4/5; }
.je-masonry__item:nth-child(5) img { aspect-ratio: 3/4; }
.je-masonry__item:nth-child(6) img { aspect-ratio: 1/1; }
.je-masonry__item:nth-child(7) img { aspect-ratio: 4/3; }
.je-masonry__item:nth-child(8) img { aspect-ratio: 3/4; }

.je-masonry__caption {
  position: absolute;
  left: 12px;
  bottom: 12px;
  right: 12px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 8px;
}
.je-masonry__caption-name,
.je-masonry__caption-price {
  font-family: var(--je-font-display);
  font-style: italic;
  font-size: 16px;
  background: rgba(250,248,243,0.82);
  padding: 5px 10px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.je-masonry__caption-price { color: var(--je-gold-deep); }
.je-masonry__link {
  position: absolute;
  inset: 0;
  z-index: 10;
}

@media (max-width: 991px) {
  .je-masonry-section { padding: 0 24px 80px; }
  .je-masonry { columns: 2; }
}
@media (max-width: 576px) {
  .je-masonry { columns: 1; }
}

/* ── FOOTER ───────────────────────────────────────────────────────────── */
.je-footer {
  background: var(--je-surface);
  border-top: 1px solid var(--je-line);
  padding: 64px 96px 48px;
}
.je-footer__inner {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  gap: 48px;
  margin-bottom: 48px;
}
.je-footer__brand { display: flex; flex-direction: column; gap: 16px; }
.je-footer__tagline { color: var(--je-text-soft); font-size: 14px; line-height: 1.7; max-width: 280px; }

.je-footer__col { display: flex; flex-direction: column; gap: 14px; }
.je-footer__col-title { color: var(--je-gold-deep); margin-bottom: 4px; }
.je-footer__col ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.je-footer__col ul li a { font-size: 14px; color: var(--je-text-soft); transition: color 200ms; }
.je-footer__col ul li a:hover { color: var(--je-gold-deep); }

.je-footer__social { display: flex; gap: 14px; align-items: center; margin-top: 4px; }
.je-footer__social-link { color: var(--je-text-soft); transition: color 200ms; line-height: 0; padding: 4px; }
.je-footer__social-link:hover { color: var(--je-gold-deep); }
@media (max-width: 576px) {
  .je-footer__social-link { padding: 12px; }
}

.je-footer__bottom {
  border-top: 1px solid var(--je-line);
  padding-top: 20px;
  display: flex;
  justify-content: space-between;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--je-text-muted);
}
.je-footer__bottom a { color: var(--je-text-muted); }
.je-footer__bottom a:hover { color: var(--je-gold-deep); }

@media (max-width: 991px) {
  .je-footer { padding: 48px 32px 36px; }
  .je-footer__inner { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 576px) {
  .je-footer { padding: 40px 20px 32px; }
  .je-footer__inner { grid-template-columns: 1fr; }
  .je-footer__bottom { flex-direction: column; gap: 10px; }
}

/* ── MENU (je-menu__* — clean ul/li, kein Bootstrap) ─────────────────── */
.je-menu__list {
  display: flex;
  align-items: center;
  gap: 36px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.je-menu__item { position: relative; }

/* Unsichtbare Hover-Brücke über den Spalt zwischen Link und Dropdown */
.je-menu__item--has-children::after {
  content: '';
  position: absolute;
  top: 100%;
  left: -16px;
  right: -16px;
  height: 20px;
}

.je-menu__link {
  display: block;
  font-size: 12px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  font-weight: 400;
  color: var(--je-text);
  padding: 4px 0;
  border-bottom: 1px solid transparent;
  transition: color 200ms, border-color 200ms;
  white-space: nowrap;
}
.je-menu__link:hover,
.je-menu__item--has-children:hover > .je-menu__link {
  color: var(--je-gold-deep);
  border-bottom-color: var(--je-gold);
}

.je-menu__dropdown {
  position: absolute;
  top: calc(100% + 16px);
  left: 50%;
  transform: translateX(-50%) translateY(-8px);
  min-width: 200px;
  display: flex;
  flex-direction: column;
  padding: 8px 0;
  background: var(--je-glass-bg-strong);
  backdrop-filter: blur(20px) saturate(150%);
  -webkit-backdrop-filter: blur(20px) saturate(150%);
  border: 1px solid var(--je-glass-border);
  box-shadow: var(--je-glass-shadow);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 200ms, transform 200ms, visibility 200ms;
  z-index: 50;
}
/* Nur .je-nav__menu (Desktop) — nie .je-mob-nav__menu; sonst setzt :hover visibility:visible    */
/* auf Mobile-Nav-Items, die visibility:hidden vom Elternelement erben → Items landen im Tab-Order */
/* :focus-within entfernt — WCAG 3.2.1: Dropdown darf sich nicht allein durch Tab-Fokus öffnen.   */
/* Tastatur-Öffnen via .is-open (JS: ArrowDown / Space auf dem Kategorie-Link).                    */
.je-nav__menu .je-menu__item--has-children:hover .je-menu__dropdown,
.je-nav__menu .je-menu__item--has-children.is-open .je-menu__dropdown {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}

.je-menu__dropdown-item {
  display: block;
  padding: 10px 20px;
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--je-text);
  white-space: nowrap;
  transition: color 200ms, background 200ms;
}
.je-menu__dropdown-item:hover { color: var(--je-gold-deep); background: rgba(206,186,136,0.08); }
.je-menu__dropdown-item--all {
  border-top: 1px solid var(--je-line-soft);
  margin-top: 4px;
  padding-top: 14px;
  color: var(--je-gold-deep);
}

/* Mobile: Menü im Overlay */
.je-mob-nav__menu .je-menu__list {
  flex-direction: column;
  align-items: stretch;
  gap: 0;
}
.je-mob-nav__menu .je-menu__link {
  font-family: var(--je-font-display);
  font-style: italic;
  font-size: 28px;
  letter-spacing: 0;
  text-transform: none;
  padding: 18px 0;
  border-bottom: 1px solid var(--je-line-soft) !important;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.je-mob-nav__menu .je-menu__dropdown {
  position: static;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: none;
  background: transparent;
  border: none;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  padding: 4px 0 4px 20px;
  flex-direction: column;
}
.je-mob-nav__menu .je-menu__dropdown-item {
  font-family: var(--je-font-display);
  font-style: italic;
  font-size: 18px;
  letter-spacing: 0;
  text-transform: none;
  padding: 10px 0;
  border-bottom: 1px solid var(--je-line-soft);
  white-space: normal;
}
.je-mob-nav__menu .je-menu__item--has-children::after { display: none; }
.je-mob-nav__menu .je-menu__item--has-children:hover .je-menu__dropdown {
  transform: none;
  transition: none;
}

/* ── CATEGORY PAGE ────────────────────────────────────────────────────── */
.je-category { padding: 0; }

.je-breadcrumb {
  padding: 18px 56px;
  display: flex;
  align-items: center;
  gap: 10px;
  border-bottom: 1px solid var(--je-line-soft);
}
.je-breadcrumb__item {
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--je-text-muted);
}
.je-breadcrumb__item--current { color: var(--je-gold-deep); }
.je-breadcrumb__sep { color: var(--je-line); }

.je-category__header {
  padding: 64px 96px 48px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: flex-end;
}
.je-category__header-left { display: flex; flex-direction: column; gap: 20px; }
.je-category__title { font-size: clamp(40px, 5.5vw, 76px); font-style: italic; font-weight: 500; line-height: 1.0; }
.je-category__header-desc {
  color: var(--je-text-soft);
  font-size: 16px;
  line-height: 1.75;
  max-width: 460px;
  padding-bottom: 8px;
  margin: 0;
}

/* Glass Filter Bar */
.je-category__filterbar-wrap {
  padding: 0 96px;
}
.je-category__filterbar {
  display: flex;
  align-items: center;
  gap: 0;
  padding: 14px 20px;
  flex-wrap: wrap;
  row-gap: 8px;
}
.je-category__filterbar-group {
  display: flex;
  align-items: center;
  gap: 10px;
}
.je-category__filterbar-group--sort { margin-left: auto; }
.je-category__filter-pills {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.je-category__filterbar-sep {
  width: 1px;
  height: 24px;
  background: var(--je-line);
  flex-shrink: 0;
  margin: 0 20px;
}

/* Custom Dropdown */
.je-dropdown { position: relative; display: inline-block; }
.je-dropdown__trigger {
  background: transparent;
  border: none;
  color: var(--je-text);
  font-family: var(--je-font-body);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  cursor: pointer;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 7px;
  outline: none;
}
.je-dropdown__trigger:focus-visible {
  outline: 1px solid var(--je-gold);
  outline-offset: 4px;
  border-radius: 2px;
}
.je-dropdown__chevron {
  opacity: 0.5;
  flex-shrink: 0;
  transition: transform 200ms ease;
}
.je-dropdown.is-open .je-dropdown__chevron { transform: rotate(180deg); }
.je-dropdown__list {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  min-width: 200px;
  background: rgba(255, 251, 246, 0.97);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid var(--je-line);
  border-radius: 4px;
  box-shadow: 0 8px 32px rgba(82, 78, 74, 0.12);
  list-style: none;
  padding: 6px 0;
  margin: 0;
  z-index: 300;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity 180ms ease, visibility 180ms ease, transform 180ms ease;
  pointer-events: none;
}
.je-dropdown.is-open .je-dropdown__list {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}
.je-dropdown__item a {
  display: block;
  padding: 9px 22px;
  font-family: var(--je-font-body);
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--je-text-soft);
  text-decoration: none;
  white-space: nowrap;
  transition: color 140ms, background 140ms;
}
.je-dropdown__item a:hover { color: var(--je-text); background: rgba(206, 186, 136, 0.1); }
.je-dropdown__item.is-active a { color: var(--je-gold); }

/* Ergebnis-Zeile */
.je-category__countrow {
  padding: 24px 96px 16px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.je-category__countrow-right { display: flex; align-items: center; gap: 12px; }
.je-category__countrow-sep { width: 1px; height: 18px; background: var(--je-line); flex-shrink: 0; }

/* Legacy select */
.je-select {
  background: transparent;
  border: 1px solid var(--je-line);
  color: var(--je-text);
  font-family: var(--je-font-body);
  font-size: 12px;
  letter-spacing: 0.18em;
  padding: 8px 14px;
  appearance: none;
  cursor: pointer;
}
.je-select:focus { outline: none; border-color: var(--je-gold); }

.je-category__grid {
  padding: 40px 56px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}

.je-category__pagination {
  padding: 28px 56px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid var(--je-line-soft);
}
.je-category__pagination .pagination { margin: 0; }
.je-category__pagination .pagination .page-item .page-link {
  background: transparent;
  border-color: var(--je-line);
  color: var(--je-text);
  font-size: 12px;
  letter-spacing: 0.18em;
  border-radius: 0;
}
.je-category__pagination .pagination .page-item.active .page-link {
  background: var(--je-text);
  border-color: var(--je-text);
  color: var(--je-bg);
}
.je-category__pagination .pagination .page-item .page-link:hover {
  background: var(--je-gold-light);
  border-color: var(--je-gold);
  color: var(--je-gold-deep);
}

.je-category__empty {
  padding: 80px 56px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  text-align: center;
}

@media (max-width: 991px) {
  .je-breadcrumb { padding: 14px 24px; }
  .je-category__header { padding: 32px 24px 20px; grid-template-columns: 1fr; gap: 24px; }
  .je-category__filterbar-wrap { padding: 0 24px; }
  .je-category__filterbar-group { width: 100%; flex-wrap: wrap; justify-content: center; }
  .je-category__filter-pills { flex: 1 1 auto; min-width: 0; justify-content: center; }
  .je-category__countrow { padding: 16px 24px 8px; flex-direction: column; align-items: flex-start; gap: 8px; }
  .je-category__countrow-right { flex-wrap: wrap; }
  .je-category__countrow-right .je-dropdown__list { right: auto; left: 0; }
  .je-category__sub { padding: 0 24px 24px; }
  .je-category__toolbar { padding: 14px 24px; flex-wrap: wrap; gap: 16px; }
  .je-category__grid { padding: 24px; grid-template-columns: repeat(2, 1fr); gap: 16px; }
  .je-category__pagination { padding: 20px 24px; flex-direction: column; align-items: center; gap: 12px; }
  .je-category__empty { padding: 60px 24px; }
}
@media (max-width: 576px) {
  .je-category__header { gap: 24px; }
  .je-category__grid { grid-template-columns: 1fr; }
}

/* ── FILTER-BAR (horizontal, Desktop) ────────────────────────────────── */
.je-category__filter-wrap {
  padding: 0 96px;
  margin-bottom: 0;
  position: sticky;
  top: var(--je-nav-h);
  z-index: 50;
}

@media (min-height: 720px) and (min-width: 992px) {
  .je-category__filterbar-wrap {
    position: sticky;
    top: var(--je-nav-h);
    z-index: 50;
  }
  .je-category__filterbar-wrap + .je-category__filter-wrap {
    top: calc(var(--je-nav-h) + var(--je-filterbar-h));
  }
}

.je-filter-bar {
  display: flex;
  align-items: center;
  overflow: visible;
  position: relative;
  z-index: 50;
}

.je-filter-bar__groups {
  display: flex !important;
  flex-direction: row !important;
  align-items: stretch;
  flex: 1;
  flex-wrap: wrap;
}

.je-filter-bar__group {
  position: relative;
}

.je-filter-bar__group-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 46px;
  padding: 0 20px;
  background: transparent;
  border: none;
  border-right: 1px solid var(--je-glass-border);
  color: var(--je-text-soft);
  font-family: var(--je-font-body);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  cursor: pointer;
  transition: color 160ms, background 160ms;
  white-space: nowrap;
}
.je-filter-bar__group-btn:hover {
  color: var(--je-text);
  background: rgba(206, 186, 136, 0.07);
}
.je-filter-bar__group.is-open > .je-filter-bar__group-btn {
  color: var(--je-gold-deep);
  background: rgba(206, 186, 136, 0.10);
}
.je-filter-bar__group.has-active > .je-filter-bar__group-btn {
  color: var(--je-gold-deep);
}

.je-filter-chevron {
  font-size: 9px;
  transition: transform 200ms ease;
  flex-shrink: 0;
}
.je-filter-bar__group.is-open > .je-filter-bar__group-btn .je-filter-chevron {
  transform: rotate(180deg);
}

.je-filter-bar__panel {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 200;
  min-width: 220px;
  max-height: 360px;
  overflow-y: auto;
  padding: 16px;
  background: var(--je-glass-bg-strong);
  backdrop-filter: blur(24px) saturate(150%);
  -webkit-backdrop-filter: blur(24px) saturate(150%);
  border: 1px solid var(--je-glass-border);
  box-shadow: var(--je-glass-shadow);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity 180ms ease, visibility 180ms ease, transform 180ms ease;
  pointer-events: none;
}
.je-filter-bar__group.is-open > .je-filter-bar__panel {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}

.je-filter-bar__panel .form-check {
  padding: 3px 0 3px 24px;
}
.je-filter-bar__panel .form-check-label {
  font-size: 13px;
  color: var(--je-text-soft);
  cursor: pointer;
}
.je-filter-bar__panel .form-check-input:checked {
  background-color: var(--je-gold);
  border-color: var(--je-gold);
}
.je-filter-bar__panel .lw-filter-more-link {
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--je-gold);
}
.je-filter-bar__panel .lw-filter-more-link:hover { color: var(--je-gold-deep); }

.je-filter-bar__actions {
  display: flex;
  flex-direction: row-reverse;
  align-items: center;
  padding: 0 16px;
  flex-shrink: 0;
  border-left: 1px solid var(--je-glass-border);
}
#lw-reset-dt {
  max-width: 0;
  padding-left: 0;
  padding-right: 0;
  margin-right: 0;
  opacity: 0;
  overflow: hidden;
  white-space: nowrap;
  visibility: hidden;  /* aus Tab-Order entfernen wenn unsichtbar (WCAG 2.1.1) */
  transition: max-width 300ms ease, padding-left 300ms ease, padding-right 300ms ease, margin-right 300ms ease, opacity 220ms ease, visibility 0s 300ms;
}
#lw-reset-dt.lw-visible {
  max-width: 160px;
  padding-left: 14px;
  padding-right: 14px;
  margin-right: 8px;
  opacity: 1;
  visibility: visible;
  transition: max-width 300ms ease, padding-left 300ms ease, padding-right 300ms ease, margin-right 300ms ease, opacity 220ms ease, visibility 0s 0s;
}
.je-filter-apply-btn {
  height: 32px;
  padding: 0 18px;
  background: var(--je-text);
  border: none;
  color: var(--je-bg);
  font-family: var(--je-font-body);
  font-size: 10px;
  font-weight: 400;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 180ms;
  border-radius: 0;
}
.je-filter-apply-btn:hover { background: var(--je-gold-deep); }
.je-filter-bar__actions .lw-reset-btn {
  height: 32px;
  padding: 0 14px;
  background: transparent !important;
  border: 1px solid var(--je-line) !important;
  color: var(--je-text-muted) !important;
  font-family: var(--je-font-body);
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  cursor: pointer;
  border-radius: 0;
  transition: border-color 180ms, color 180ms;
}
.je-filter-bar__actions .lw-reset-btn:hover {
  border-color: var(--je-gold) !important;
  color: var(--je-gold-deep) !important;
}

/* ── Pin-Button ─────────────────────────────────────────────────────────── */
.lw-filter-pin {
  background: transparent;
  border: none;
  padding: 0;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--je-text-muted);
  opacity: 0.35;
  cursor: pointer;
  transition: opacity 180ms, color 180ms;
}
.lw-filter-pin i {
  transform: rotate(45deg);
  transition: transform 220ms ease;
  line-height: 1;
}
.lw-filter-pin.is-pinned { opacity: 1; color: var(--je-gold-deep); }
.lw-filter-pin.is-pinned i { transform: rotate(0deg); }
.lw-filter-pin:hover { opacity: 1; color: var(--je-gold-deep); }

/* Unpinned: sticky aufheben */
body.je-filter-unpinned .je-category__filterbar-wrap,
body.je-filter-unpinned .je-category__filter-wrap {
  position: relative !important;
  top: auto !important;
}

@media (max-width: 991px) {
  .je-category__filter-wrap { padding: 0 24px; }
}

/* ── PRODUCT THUMB ────────────────────────────────────────────────────── */
.je-thumb {
  position: relative;
  margin: 0;
  cursor: pointer;
}

.je-thumb__img-wrap {
  position: relative;
  overflow: hidden;
  aspect-ratio: 3 / 4;
}

.je-thumb__img-wrap img,
.je-thumb__placeholder {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 400ms ease;
}

.je-thumb:hover .je-thumb__img-wrap img {
  transform: scale(1.03);
}

/* Badge (Unikat) */
.je-thumb__badge {
  position: absolute;
  top: 14px;
  left: 14px;
  z-index: 2;
}

/* Caption am unteren Rand */
.je-thumb__caption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 48px 14px 14px;
  background: linear-gradient(to top, rgba(82,78,74,0.48), transparent);
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 8px;
  z-index: 2;
  pointer-events: none;
}

.je-thumb__name,
.je-thumb__price {
  font-family: var(--je-font-display);
  font-style: italic;
  background: rgba(250,248,243,0.78);
  padding: 5px 10px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  line-height: 1.2;
}

.je-thumb__name { font-size: 17px; color: var(--je-text); }
.je-thumb__price { font-size: 15px; color: var(--je-gold-deep); white-space: nowrap; flex-shrink: 0; }

/* Hover-Actions (Warenkorb / Wunschliste) */
/* visibility:hidden entfernt Buttons aus Tab-Order solange die Karte nicht hover/fokus ist.       */
/* Transition-Delay-Trick: beim Ausblenden wartet visibility auf das Ende der opacity-Animation.   */
/* :focus-within → Keyboard-Nutzer sehen die Buttons wenn sie auf das Produktbild tabben.          */
.je-thumb__actions {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 3;
  display: flex;
  flex-direction: column;
  gap: 8px;
  opacity: 0;
  visibility: hidden;
  transform: translateX(8px);
  transition: opacity 250ms ease, transform 250ms ease, visibility 0s 250ms;
}
.je-thumb:hover .je-thumb__actions,
.je-thumb:focus-within .je-thumb__actions {
  opacity: 1;
  visibility: visible;
  transform: translateX(0);
  transition: opacity 250ms ease, transform 250ms ease, visibility 0s 0s;
}

.je-thumb__action-btn {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(250,248,243,0.85);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid var(--je-glass-border);
  color: var(--je-text);
  cursor: pointer;
  transition: background 180ms, color 180ms;
}
.je-thumb__action-btn:hover { background: var(--je-text); color: var(--je-bg); }

/* Touch-Geräte: Actions immer sichtbar, größere Tap-Targets */
@media (hover: none) {
  .je-thumb__actions { opacity: 1; visibility: visible; transform: translateX(0); transition: none; }
  .je-thumb__action-btn { width: 44px; height: 44px; }
}

/* Vollflächiger Link — unter Actions (z-index 1) */
.je-thumb__link {
  position: absolute;
  inset: 0;
  z-index: 1;
}

/* Sold-Zustand */
.je-thumb--sold .je-thumb__img-wrap img { filter: grayscale(35%); }

@media (max-width: 576px) {
  .je-thumb__name { font-size: 14px; }
  .je-thumb__price { font-size: 13px; }
}

/* ── PRODUCT DETAIL ───────────────────────────────────────────────────── */
/* Vollständige Detailregeln stehen weiter unten in der Sektion
   "PRODUKTDETAIL-SEITE" (ab .je-product__breadcrumb). Die frühere
   Doppeldefinition wurde entfernt; hier bleiben nur Regeln, die dort
   nicht vorkommen. */

/* Macht den Galerie-Link blockbildend, damit das Bild die aspect-ratio-Box füllt */
.je-product__main-wrap a {
  display: block;
  line-height: 0;
  width: 100%;
  height: 100%;
}

/* Kleine Pill-Variante (Produkt-Tags, Unikat-Badge im Warenkorb) */
.je-pill--sm {
  font-size: 11px;
  padding: 4px 10px;
}

/* ── OC4 OVERRIDES ────────────────────────────────────────────────────── */

/* OC4 nutzt einen "Sticky-Footer via absolute"-Hack:
   #container { position: absolute; margin-bottom: 300px }
   footer     { position: absolute; bottom: -1px }
   Das lässt den Footer über den Content gleiten. Wir neutralisieren das. */
#container {
  position: relative;
  margin-bottom: 0;
  min-height: 100vh;
}
footer.je-footer {
  position: static;
  bottom: auto;
  border: none;
}
#content, #column-left, #column-right { padding-bottom: 0; }

/* Bootstrap navbar reset (Fallback falls #menu doch noch gerendert wird) */
#menu.navbar { padding: 0; background: transparent !important; }
#menu .navbar-collapse { flex-grow: 0; }
#menu .navbar-toggler { display: none; }

/* Alert box — der Toast-Container #alert wird in der Sektion
   "TOAST-BENACHRICHTIGUNGEN" definiert (vormals hier doppelt). */
.alert { border-radius: 0; font-family: var(--je-font-body); font-size: 13px; }

/* Inline-Alerts im Seiteninhalt (alle außerhalb des Toast-Containers #alert) */
body.je .alert {
  border: none;
  border-left: 3px solid transparent;
  border-radius: 0;
  padding: 14px 44px 14px 20px;
  font-family: var(--je-font-body);
  font-size: 13px;
  letter-spacing: 0.03em;
  line-height: 1.55;
}
body.je .alert-success {
  background: rgba(184, 160, 112, 0.10);
  color: var(--je-text);
  border-left-color: var(--je-gold-deep);
}
body.je .alert-danger,
body.je .alert-warning {
  background: rgba(176, 112, 96, 0.10);
  color: var(--je-text);
  border-left-color: #b07060;
}
body.je .alert-info {
  background: rgba(122, 158, 181, 0.10);
  color: var(--je-text);
  border-left-color: #7a9eb5;
}
body.je .alert .btn-close {
  opacity: 0.45;
  filter: sepia(1) saturate(0.4) brightness(0.7);
  font-size: 11px;
}

/* ── CART DRAWER ──────────────────────────────────────────────────────── */
.je-cart-drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 480px;
  max-width: 100vw;
  z-index: 250;
  display: flex;
  flex-direction: column;
  background: var(--je-glass-bg-strong);
  backdrop-filter: blur(24px) saturate(150%);
  -webkit-backdrop-filter: blur(24px) saturate(150%);
  border-left: 1px solid var(--je-glass-border);
  box-shadow: -30px 0 80px -20px rgba(82,78,74,0.25);
  transform: translateX(100%);
  visibility: hidden;
  transition: transform 340ms cubic-bezier(0.4, 0, 0.2, 1), visibility 0s linear 340ms;
}
.je-cart-drawer.is-open {
  transform: translateX(0);
  visibility: visible;
  transition: transform 340ms cubic-bezier(0.4, 0, 0.2, 1), visibility 0s linear 0s;
}

.je-cart-backdrop {
  position: fixed;
  inset: 0;
  z-index: 240;
  background: rgba(82,78,74,0.42);
  backdrop-filter: blur(4px) saturate(120%);
  -webkit-backdrop-filter: blur(4px) saturate(120%);
  opacity: 0;
  visibility: hidden;
  transition: opacity 300ms, visibility 300ms;
}
.je-cart-backdrop.is-visible { opacity: 1; visibility: visible; }

.je-cart-drawer__close {
  position: absolute;
  top: 20px;
  right: 20px;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  cursor: pointer;
  color: var(--je-text);
  transition: color 180ms;
  z-index: 2;
}
.je-cart-drawer__close:hover { color: var(--je-gold-deep); }

/* #cart fills the drawer height */
.je-cart-drawer #cart {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.je-cart-drawer__head {
  padding: 28px 32px;
  border-bottom: 1px solid var(--je-line-soft);
  flex-shrink: 0;
}
.je-cart-drawer__eyebrow {
  font-family: var(--je-font-body);
  font-size: 11px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--je-gold-deep);
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}
.je-cart-drawer__subtitle {
  font-family: var(--je-font-display);
  font-style: italic;
  font-size: 24px;
  color: var(--je-text);
}

.je-cart-drawer__items {
  flex: 1;
  overflow-y: auto;
  padding: 20px 32px;
  display: flex;
  flex-direction: column;
  gap: 22px;
}

.je-cart-item {
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr);
  gap: 18px;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--je-line-soft);
}
.je-cart-item:last-child { border-bottom: none; padding-bottom: 0; }

.je-cart-item__img {
  display: block;
  width: 100px;
  height: 120px;
  overflow: hidden;
  flex-shrink: 0;
}
.je-cart-item__img img { width: 100%; height: 100%; object-fit: cover; display: block; }

.je-cart-item__body { display: flex; flex-direction: column; gap: 6px; min-width: 0; }

.je-cart-item__name {
  font-family: var(--je-font-display);
  font-style: italic;
  font-size: 20px;
  color: var(--je-text);
  line-height: 1.2;
  overflow-wrap: anywhere;
}
.je-cart-item__name:hover { color: var(--je-gold-deep); }

.je-cart-item__meta {
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--je-text-muted);
  display: block;
}
.je-cart-item__pill { align-self: flex-start; }

.je-cart-item__footer {
  margin-top: auto;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
}

.je-cart-item__remove {
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--je-line);
  padding: 0 0 2px;
  cursor: pointer;
  font-family: var(--je-font-body);
  font-size: 10px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--je-text-soft);
  transition: color 180ms, border-color 180ms;
}
.je-cart-item__remove:hover { color: var(--je-gold-deep); border-color: var(--je-gold); }

.je-cart-item__price {
  font-family: var(--je-font-display);
  font-style: italic;
  font-size: 22px;
  color: var(--je-gold-deep);
}

.je-cart-drawer__note {
  margin: 0 32px;
  padding: 14px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 12px;
  color: var(--je-text-soft);
  flex-shrink: 0;
}

.je-cart-drawer__summary {
  padding: 20px 32px 28px;
  border-top: 1px solid var(--je-line);
  background: rgba(240,234,224,0.5);
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex-shrink: 0;
}
.je-cart-drawer__row {
  display: flex;
  justify-content: space-between;
  font-size: 13px;
  color: var(--je-text-soft);
}
.je-cart-drawer__total {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}
.je-cart-drawer__total-price {
  font-family: var(--je-font-display);
  font-style: italic;
  font-size: 32px;
  color: var(--je-gold-deep);
}
.je-cart-drawer__microcopy {
  font-size: 10px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--je-text-muted);
  text-align: center;
  display: block;
}

.je-cart-drawer__empty {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 40px 32px;
  gap: 24px;
  text-align: center;
}
.je-cart-drawer__empty p { font-size: 15px; color: var(--je-text-soft); line-height: 1.6; }

@media (max-width: 576px) {
  .je-cart-drawer { width: 100vw; }
  .je-cart-drawer__items { padding: 16px 20px; }
  .je-cart-drawer__note { margin: 0 20px; }
  .je-cart-drawer__coupon { padding: 10px 20px; }
  .je-cart-drawer__summary { padding: 16px 20px 24px; }
}

/* ── CART PAGE ────────────────────────────────────────────────────────── */
.je-cartpage__header {
  padding: 64px 96px 32px;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 32px;
  border-bottom: 1px solid var(--je-line-soft);
}
.je-cartpage__header .je-eyebrow { margin-bottom: 16px; }

.je-cartpage__steps { padding: 20px 96px; }
.je-cartpage__steps-bar {
  display: flex;
  align-items: center;
  padding: 14px 24px;
}
.je-cartpage__step {
  display: flex;
  align-items: center;
  gap: 10px;
}
.je-cartpage__step-num {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--je-font-display);
  font-style: italic;
  font-size: 14px;
  flex-shrink: 0;
}
.je-cartpage__step-num--active  { background: var(--je-gold-deep); color: var(--je-bg); }
.je-cartpage__step-num--inactive { background: transparent; border: 1px solid var(--je-line); color: var(--je-text-muted); }
.je-cartpage__step-label { font-size: 11px; letter-spacing: 0.28em; text-transform: uppercase; }
.je-cartpage__step-label--active  { color: var(--je-text); }
.je-cartpage__step-label--inactive { color: var(--je-text-muted); }
.je-cartpage__step-sep { flex: 1; height: 1px; background: var(--je-line); margin: 0 14px; min-width: 24px; }

.je-cartpage__body {
  padding: 0 96px 100px;
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 56px;
  align-items: flex-start;
}

.je-cartpage__items { display: flex; flex-direction: column; }

.je-cartpage__items-head {
  display: grid;
  grid-template-columns: 120px 1fr auto;
  gap: 20px;
  padding: 14px 0;
  border-bottom: 1px solid var(--je-line);
  align-items: center;
}
.je-cartpage__col-label {
  font-size: 10px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--je-text-muted);
}

.je-cartpage__item {
  display: grid;
  grid-template-columns: 120px 1fr auto;
  gap: 20px;
  padding: 24px 0;
  border-bottom: 1px solid var(--je-line-soft);
  align-items: center;
}
.je-cartpage__item-img {
  display: block;
  width: 120px;
  height: 140px;
  overflow: hidden;
}
.je-cartpage__item-img img { width: 100%; height: 100%; object-fit: cover; display: block; }

.je-cartpage__item-meta { display: flex; flex-direction: column; gap: 8px; }
.je-cartpage__item-name {
  font-family: var(--je-font-display);
  font-style: italic;
  font-size: 24px;
  font-weight: 500;
  color: var(--je-text);
  margin: 0;
}
.je-cartpage__item-name:hover { color: var(--je-gold-deep); }
.je-cartpage__item-sub {
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--je-text-muted);
  display: block;
}
.je-cartpage__item-pills { display: flex; gap: 8px; margin-top: 4px; }

.je-cartpage__item-price-wrap {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 12px;
}
.je-cartpage__item-price {
  font-family: var(--je-font-display);
  font-style: italic;
  font-size: 24px;
  color: var(--je-gold-deep);
  white-space: nowrap;
}
.je-cartpage__item-remove {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1px solid var(--je-line);
  background: transparent;
  color: var(--je-text-muted);
  cursor: pointer;
  text-decoration: none;
  transition: border-color 180ms, color 180ms, background 180ms;
}
.je-cartpage__item-remove:hover { background: var(--je-text); color: var(--je-bg); border-color: var(--je-text); }

.je-cartpage__extras {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-top: 32px;
}
.je-cartpage__extra-box { padding: 22px; display: flex; flex-direction: column; gap: 12px; }
.je-cartpage__extra-title { font-size: 10px; letter-spacing: 0.3em; text-transform: uppercase; color: var(--je-gold-deep); }
.je-cartpage__voucher-row { display: flex; gap: 10px; }
.je-cartpage__input {
  flex: 1;
  min-width: 0;
  height: 44px;
  padding: 0 14px;
  background: rgba(250,248,243,0.6);
  border: 1px solid var(--je-line);
  font-family: var(--je-font-body);
  font-size: 14px;
  color: var(--je-text);
  outline: none;
}
.je-cartpage__input:focus { border-color: var(--je-gold); }

/* Summary sidebar */
.je-cartpage__summary-wrap {
  position: sticky;
  top: calc(var(--je-nav-h) + 16px);
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.je-cartpage__summary { padding: 32px; display: flex; flex-direction: column; gap: 18px; }
.je-cartpage__summary-row {
  display: flex;
  justify-content: space-between;
  font-size: 14px;
  color: var(--je-text-soft);
}
.je-cartpage__summary-total { display: flex; justify-content: space-between; align-items: baseline; }
.je-cartpage__summary-total-price {
  font-family: var(--je-font-display);
  font-style: italic;
  font-size: 40px;
  color: var(--je-gold-deep);
}
.je-cartpage__payment-badges { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; margin-top: 6px; }
.je-cartpage__trust-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--je-text-muted);
}
.je-cartpage__note-box { padding: 20px 24px; background: var(--je-surface); display: flex; flex-direction: column; gap: 8px; }
.je-cartpage__note-title { font-size: 10px; letter-spacing: 0.3em; text-transform: uppercase; color: var(--je-gold-deep); }
.je-cartpage__note-text { font-size: 13px; line-height: 1.65; color: var(--je-text-soft); margin: 0; }

.je-cartpage__empty {
  grid-column: 1 / -1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  padding: 80px 0;
  text-align: center;
}

@media (max-width: 1100px) {
  .je-cartpage__header { padding: 48px 32px 24px; }
  .je-cartpage__steps  { padding: 20px 32px; }
  .je-cartpage__body   { padding: 0 32px 80px; gap: 32px; }
}
@media (max-width: 768px) {
  .je-cartpage__header { padding: 32px 20px 20px; flex-direction: column; align-items: flex-start; }
  .je-cartpage__steps  { display: none; }
  .je-cartpage__body   { padding: 0 20px 60px; grid-template-columns: minmax(0, 1fr); overflow-x: hidden; }
  .je-cartpage__items  { min-width: 0; }
  .je-cartpage__summary-wrap { position: static; min-width: 0; }
  .je-cartpage__summary { padding: 20px; }
  .je-cartpage__summary-total-price { font-size: 30px; }
  .je-cartpage__extras { grid-template-columns: minmax(0, 1fr); }
  .je-cartpage__items-head { display: none; }
  .je-cartpage__item { grid-template-columns: 90px minmax(0, 1fr); }
  .je-cartpage__item-img { width: 90px; height: 110px; grid-row: 1 / span 2; align-self: start; }
  .je-cartpage__item-meta { min-width: 0; }
  .je-cartpage__item-price-wrap { grid-column: 2; flex-direction: row; align-items: center; justify-content: space-between; min-width: 0; }
  .je-cartpage__item-name { font-size: 16px; }
  .je-cartpage__item-price { font-size: 18px; }
}

/* ── CHECKOUT PAGE ────────────────────────────────────────────────────── */
.je-checkout { background: var(--je-bg); padding: 0 0 100px; }

.je-checkout__header {
  padding: 56px 96px 24px;
}
.je-checkout__title {
  font-family: var(--je-font-display);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(32px, 4vw, 56px);
  line-height: 1.0;
  margin: 16px 0 0;
}

/* Progress bar */
.je-checkout__steps-wrap { padding: 0 96px 32px; }
.je-checkout__steps-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 24px;
}
.je-checkout__step { display: flex; align-items: center; gap: 14px; }
.je-checkout__step-num {
  width: 26px; height: 26px; border-radius: 13px;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--je-font-display); font-style: italic; font-size: 14px;
  flex-shrink: 0;
}
.je-checkout__step-num--active   { background: var(--je-gold-deep); color: var(--je-bg); border: none; }
.je-checkout__step-num--done     { background: var(--je-gold-deep); color: var(--je-bg); border: none; opacity: 0.55; }
.je-checkout__step-num--inactive { background: transparent; color: var(--je-text-muted); border: 1px solid var(--je-line); }
.je-checkout__step-label {
  font-size: 11px; letter-spacing: 0.28em; text-transform: uppercase;
}
.je-checkout__step-label--active   { color: var(--je-text); }
.je-checkout__step-label--done     { color: var(--je-text-muted); }
.je-checkout__step-label--inactive { color: var(--je-text-muted); }
.je-checkout__step-sep {
  flex: 1; height: 1px; background: var(--je-line); min-width: 40px; max-width: 80px;
}

/* Two-column layout */
.je-checkout__body {
  padding: 24px 96px 0;
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 56px;
  align-items: flex-start;
}

/* Left: form sections */
.je-checkout__forms { display: flex; flex-direction: column; gap: 40px; }

.je-checkout__section { display: flex; flex-direction: column; gap: 20px; }
.je-checkout__section-title {
  font-family: var(--je-font-display);
  font-style: italic;
  font-size: 28px;
  font-weight: 500;
  color: var(--je-text);
  margin: 0;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--je-line-soft);
}

/* Right: sticky aside */
.je-checkout__aside {
  position: sticky;
  top: calc(var(--je-nav-h) + 16px);
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* Coupon box */
.je-checkout__coupon {
  padding: 20px 28px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.je-checkout__coupon-row {
  display: flex;
  gap: 8px;
}
.je-checkout__coupon-row .je-cartpage__input { flex: 1; }
.je-checkout__coupon-btn { height: 44px; padding: 0 20px; font-size: 11px; white-space: nowrap; }

/* Confirm box */
.je-checkout__confirm { padding: 28px; display: flex; flex-direction: column; gap: 14px; }

/* Trust list */
.je-checkout__trust { padding: 16px 0; }
.je-checkout__trust-list {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-direction: column; gap: 10px;
  font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--je-text-muted);
}

/* ── Bootstrap overrides within .je-checkout ──────────────────────────── */
.je-checkout .form-control,
.je-checkout .form-select {
  height: 52px;
  border: 1px solid var(--je-line);
  border-radius: 0;
  font-family: var(--je-font-body);
  font-size: 15px;
  color: var(--je-text);
  box-shadow: none;
  outline: none;
  transition: border-color 180ms;
  background-color: rgba(250,248,243,0.6);
}
.je-checkout .form-control {
  padding: 0 16px;
  background-image: none;
}
.je-checkout .form-select {
  padding: 0 44px 0 16px;
  -webkit-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23524E4A' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right 16px center;
  background-size: 14px 10px;
  cursor: pointer;
  color-scheme: light;
}
.je-checkout .form-control:focus,
.je-checkout .form-select:focus {
  border-color: var(--je-gold);
  box-shadow: none;
  background-color: rgba(250,248,243,0.85);
}
.je-checkout textarea.form-control {
  height: auto;
  padding: 14px 16px;
  resize: none;
  font-family: var(--je-font-display);
  font-style: italic;
  font-size: 16px;
}
.je-checkout label.form-label,
.je-checkout .form-check-label {
  font-size: 10px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--je-text-muted);
  margin-bottom: 8px;
}
.je-checkout fieldset { border: none; padding: 0; margin: 0; }
.je-checkout fieldset legend {
  font-family: var(--je-font-display);
  font-style: italic;
  font-size: 22px;
  font-weight: 500;
  color: var(--je-text);
  margin-bottom: 20px;
  float: none;
  width: auto;
}
.je-checkout .btn-primary,
.je-checkout button[type="submit"]:not(.je-cta):not(.je-cta-ghost) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 56px;
  padding: 0 28px;
  background: var(--je-text);
  color: var(--je-bg);
  border: none;
  border-radius: 0;
  font-family: var(--je-font-body);
  font-weight: 400;
  font-size: 12px;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 220ms ease;
}
.je-checkout .btn-primary:hover,
.je-checkout button[type="submit"]:not(.je-cta):not(.je-cta-ghost):hover {
  background: var(--je-gold-deep);
  border-color: transparent;
  box-shadow: none;
}
.je-checkout .btn-primary:active,
.je-checkout .btn-primary:focus,
.je-checkout .btn-primary:focus-visible {
  background: var(--je-gold-deep);
  border-color: transparent;
  box-shadow: none;
  outline: none;
}
/* Order confirm table */
.je-checkout__confirm .table {
  font-size: 13px;
  color: var(--je-text);
  border-color: var(--je-line-soft);
  margin: 0;
}
.je-checkout__confirm .table thead th {
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--je-text-muted);
  font-weight: 400;
  border-color: var(--je-line);
  background: transparent;
}
.je-checkout__confirm .table tfoot tr:last-child td {
  font-family: var(--je-font-display);
  font-style: italic;
  font-size: 22px;
  color: var(--je-gold-deep);
  border-top: 1px solid var(--je-line);
}
.je-checkout__confirm #checkout-payment { margin-top: 20px; }
/* Form check (radio/checkbox) */
.je-checkout .form-check-input {
  border-color: var(--je-gold-deep);
  border-radius: 0;
  width: 16px; height: 16px;
  margin-top: 2px;
}
.je-checkout .form-check-input:checked {
  background-color: var(--je-gold-deep);
  border-color: var(--je-gold-deep);
}
.je-checkout .form-check-input:focus { box-shadow: none; }

/* AGB: Checkbox links — global, kein Ancestor-Selektor (form-check-reverse nur für AGB genutzt) */
.form-check-reverse {
  padding-right: 0 !important;
  padding-left: 1.5em !important;
  text-align: left !important;
}
.form-check-reverse .form-check-input {
  float: left !important;
  margin-right: 0 !important;
  margin-left: -1.5em !important;
}
.form-switch.form-check-reverse {
  padding-right: 0 !important;
  padding-left: 2.5em !important;
}
.form-switch.form-check-reverse .form-check-input {
  float: left !important;
  margin-right: 0 !important;
  margin-left: -2.5em !important;
}

/* Overflow-Schutz: Lange Texte in Formular-Containern */
.je-checkout__section,
.je-checkout__forms { min-width: 0; }
.je-checkout .row { margin-left: 0; margin-right: 0; }
.je-checkout .row > [class*="col-"] { min-width: 0; }
.je-checkout .form-control,
.je-checkout .form-select { max-width: 100%; }

/* Method row (Versand + Zahlung) */
.je-checkout__method-row {
  display: flex;
  align-items: stretch;
  gap: 0;
  border: 1px solid var(--je-line);
}
.je-checkout__method-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  flex-shrink: 0;
  background: var(--je-surface);
  color: var(--je-text-muted);
  border-right: 1px solid var(--je-line);
}
.je-checkout__method-input {
  flex: 1;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: rgba(250,248,243,0.6) !important;
}
.je-checkout__method-btn {
  width: auto !important;
  padding: 0 24px !important;
  height: 52px !important;
  font-size: 11px !important;
  flex-shrink: 0;
  border-radius: 0;
}

/* Comment textarea */
.je-checkout__comment {
  margin-top: 24px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.je-checkout__comment-label {
  font-size: 10px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--je-text-muted);
}

/* Agree checkbox — Bootstrap form-switch, input vor label (Pflicht für ~-Selektor) */
.je-checkout__agree {
  margin-top: 18px;
}
.je-checkout__agree-label {
  font-size: 13px;
  color: var(--je-text-soft);
  line-height: 1.6;
  cursor: pointer;
}
/* Toggle-Farben im JE-Design */
.je-checkout__agree .form-check-input {
  border-color: var(--je-line);
}
.je-checkout__agree .form-check-input:checked {
  background-color: var(--je-text);
  border-color: var(--je-text);
}
.je-checkout__agree .form-check-input:focus {
  box-shadow: none;
  border-color: var(--je-gold-deep);
}

/* JE Modal (Versand / Zahlung Auswahl) */
.je-modal { background: var(--je-bg); border: 1px solid var(--je-glass-border); border-radius: 0; }
.je-modal__head {
  padding: 24px 28px;
  border-bottom: 1px solid var(--je-line-soft);
}
.je-modal__title {
  font-family: var(--je-font-display);
  font-style: italic;
  font-size: 24px;
  font-weight: 500;
  color: var(--je-text);
}
.je-modal__body { padding: 24px 28px; }
.je-modal__group {
  font-size: 10px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--je-gold-deep);
  margin: 0 0 14px;
}
.je-modal__option {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 20px;
  border: 1px solid var(--je-line);
  margin-bottom: 10px;
  cursor: pointer;
}
.je-modal__option input[type="radio"] {
  width: 18px; height: 18px;
  border-color: var(--je-gold-deep);
  accent-color: var(--je-gold-deep);
  flex-shrink: 0;
}
.je-modal__option label {
  font-size: 15px;
  color: var(--je-text);
  cursor: pointer;
  margin: 0;
  font-family: var(--je-font-display);
  font-style: italic;
}
.je-modal__footer {
  margin-top: 24px;
  display: flex;
  justify-content: flex-end;
}

@media (max-width: 1100px) {
  .je-checkout__header { padding: 40px 32px 20px; }
  .je-checkout__steps-wrap { padding: 0 32px 24px; }
  .je-checkout__body { padding: 20px 32px 0; gap: 32px; }
}
@media (max-width: 768px) {
  .je-checkout__header { padding: 32px 20px 16px; }
  .je-checkout__steps-wrap { display: none; }
  .je-checkout__body { padding: 16px 20px 0; grid-template-columns: 1fr; gap: 24px; }
  .je-checkout__forms { gap: 24px; }
  .je-checkout__aside { position: static; }
  .je-checkout__title { font-size: 32px; }
  .je-checkout__section-title { font-size: 22px; }
  .je-checkout__confirm { padding: 20px; }
  .je-checkout__coupon { padding: 16px 20px; }
  .je-checkout .btn-primary,
  .je-checkout button[type="submit"]:not(.je-cta):not(.je-cta-ghost) { width: 100%; }
}
@media (max-width: 480px) {
  .je-checkout__header { padding: 20px 16px 12px; }
  .je-checkout__title { font-size: 26px; }
  .je-checkout__body { padding: 12px 16px 0; gap: 16px; }
  .je-checkout__forms { gap: 16px; }
  .je-checkout__section { gap: 14px; }
  .je-checkout__section-title { font-size: 18px; padding-bottom: 12px; }
  .je-checkout .form-control,
  .je-checkout .form-select { height: 48px; font-size: 14px; }
  .je-checkout label.form-label,
  .je-checkout .form-check-label { font-size: 9px; }
  .je-checkout fieldset legend { font-size: 18px; margin-bottom: 14px; }
  .je-checkout__confirm { padding: 14px; gap: 10px; }
  .je-checkout__coupon { padding: 12px 14px; }
  .je-checkout__coupon-row { flex-direction: column; }
  .je-checkout__coupon-row .je-cartpage__input { height: 48px; font-size: 14px; }
  .je-checkout__coupon-row .je-cta, .je-checkout__coupon-row .je-cta-ghost { width: 100%; justify-content: center; }
  .je-checkout__confirm .table { font-size: 12px; }
  .je-checkout__confirm .table tfoot tr:last-child td { font-size: 18px; }
  .je-checkout__method-row { flex-wrap: nowrap; }
  .je-checkout__method-icon { width: 40px; }
  .je-checkout__method-btn { padding: 0 14px !important; font-size: 10px !important; }
  .je-checkout__trust-list { font-size: 9px; gap: 8px; }
  .je-cselect__list { max-height: 200px; }
  .je-cselect__btn { height: 48px; font-size: 14px; }
  .je-cselect__option { padding: 10px 14px; font-size: 13px; }
}

/* ── CUSTOM SELECT (je-cselect) ──────────────────────────────────────── */
.je-cselect { position: relative; min-width: 0; }
.je-cselect .form-select { display: none !important; }

.je-cselect__btn {
  width: 100%;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 16px;
  background-color: rgba(250,248,243,0.6);
  border: 1px solid var(--je-line);
  border-radius: 0;
  font-family: var(--je-font-body);
  font-size: 15px;
  color: var(--je-text);
  text-align: left;
  cursor: pointer;
  transition: border-color 180ms, background-color 180ms;
}
.je-cselect__btn:hover,
.je-cselect.is-open .je-cselect__btn { border-color: var(--je-gold); background-color: rgba(250,248,243,0.85); }
.je-cselect__btn:disabled { opacity: 0.45; cursor: not-allowed; }
.je-cselect__label { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.je-cselect__arrow { flex-shrink: 0; margin-left: 12px; color: var(--je-text-muted); display: flex; align-items: center; transition: transform 200ms ease; }
.je-cselect.is-open .je-cselect__arrow { transform: rotate(180deg); }

.je-cselect__list {
  display: none;
  position: absolute;
  top: calc(100% + 2px);
  left: 0; right: 0;
  z-index: 1200;
  list-style: none;
  margin: 0; padding: 6px 0;
  max-height: 260px;
  overflow-y: auto;
  background: var(--je-glass-bg-strong);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid var(--je-border);
  box-shadow: 0 8px 32px rgba(0,0,0,0.12);
}
.je-cselect.is-open .je-cselect__list { display: block; }

.je-cselect__option {
  padding: 11px 16px;
  font-family: var(--je-font-body);
  font-size: 14px;
  color: var(--je-text);
  cursor: pointer;
  transition: background 140ms, color 140ms;
}
.je-cselect__option:hover { background: rgba(206,186,136,0.12); color: var(--je-gold-deep); }
.je-cselect__option.is-selected { color: var(--je-gold-deep); background: rgba(206,186,136,0.08); }
/* Virtueller Tastatur-Fokus — APG aria-activedescendant Pattern (WCAG 2.4.7 AA) */
.je-cselect__option--focused { background: rgba(206,186,136,0.18); color: var(--je-gold-deep); outline: 2px solid var(--je-text); outline-offset: -2px; }
.je-cselect__option--sold { color: var(--je-text-muted); }
.je-cselect__sold-badge { display: inline-block; font-size: 0.62em; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--je-text-muted); border: 1px solid currentColor; padding: 1px 5px; border-radius: 3px; margin-left: 8px; vertical-align: middle; }
.je-cselect.is-invalid .je-cselect__btn { border-color: #dc3545; }

/* ── ORDER SUCCESS PAGE ───────────────────────────────────────────────── */
.je-success { background: var(--je-bg); }

.je-success__hero {
  padding: 80px 96px 60px;
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 80px;
  align-items: stretch;
}
.je-success__left { display: flex; flex-direction: column; gap: 24px; }
.je-success__title {
  font-family: var(--je-font-display);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(40px, 5vw, 72px);
  line-height: 0.98;
  margin: 0;
}
.je-success__title--gold { color: var(--je-gold-deep); }
.je-success__message { color: var(--je-text-soft); font-size: 17px; line-height: 1.75; max-width: 460px; }
.je-success__message p { margin: 0; }
.je-success__actions { margin-top: 12px; }

.je-success__right { position: relative; margin: -80px -96px -60px 0; }
.je-success__artwork {
  position: absolute;
  inset: 0;
  background-image: url('../../../../../image/catalog/Werkstatt/IMG_8690.jpg');
  background-size: cover;
  background-position: center;
}
.je-success__artwork-caption {
  position: absolute;
  left: 20px;
  bottom: 20px;
  padding: 14px 18px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  max-width: 280px;
}

.je-success__next {
  padding: 60px 96px 100px;
  background: var(--je-surface);
}
.je-success__next-eyebrow {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-bottom: 48px;
}
.je-success__steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}
.je-success__step {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 28px 0;
  border-top: 1px solid var(--je-gold);
}
.je-success__step-num {
  font-family: var(--je-font-display);
  font-style: italic;
  font-size: 44px;
  color: var(--je-gold-deep);
  line-height: 1;
}
.je-success__step-title {
  font-family: var(--je-font-display);
  font-style: italic;
  font-size: 24px;
  font-weight: 500;
  margin: 0;
}
.je-success__step-desc {
  color: var(--je-text-soft);
  font-size: 14px;
  line-height: 1.7;
  margin: 0;
}

@media (max-width: 1100px) {
  .je-success__hero { padding: 60px 32px 40px; gap: 48px; }
  .je-success__right { margin: -60px -32px -40px 0; }
  .je-success__next { padding: 48px 32px 80px; }
}
@media (max-width: 768px) {
  .je-success__hero { padding: 40px 20px 32px; grid-template-columns: 1fr; }
  .je-success__right { display: none; }
  .je-success__next { padding: 40px 20px 60px; }
  .je-success__steps { grid-template-columns: 1fr; }
  .je-success__title { font-size: clamp(36px, 8vw, 52px); }
}

/* ════════════════════════════════════════════════════════════════════════
   LOGIN & ACCOUNT — JE Account-Seiten
════════════════════════════════════════════════════════════════════════ */

/* ── Login Split Layout ─────────────────────────────────────────────── */
.je-login {
  background: var(--je-bg);
  min-height: calc(100vh - var(--je-nav-h));
}
.je-login__alert { margin: 24px 96px 0; }

.je-login__split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: calc(100vh - var(--je-nav-h));
}

/* Register: min-height aufheben damit Grid mit Inhalt wächst → normaler Page-Scroll */
.je-register.je-login,
.je-register .je-login__split {
  min-height: 0;
}

.je-login__image-side {
  position: relative;
  background: var(--je-surface);
  overflow: hidden;
}

.je-login__artwork { position: absolute; inset: 0; }

.je-login:not(.je-register) .je-login__artwork {
  background-image: url('../../../../../image/catalog/Werkstatt/IMG_8919.jpg');
  background-size: cover;
  background-position: center;
}
.je-register .je-login__artwork {
  background-image: url('../../../../../image/catalog/Werkstatt/IMG_8776.jpg');
  background-size: cover;
  background-position: center;
}

.je-login__image-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(82,78,74,0) 40%, rgba(82,78,74,0.55) 100%);
}

.je-login__image-text {
  position: absolute;
  left: 40px; bottom: 40px;
  display: flex; flex-direction: column; gap: 16px;
  width: fit-content;
  max-width: calc(100% - 80px);
  padding: 28px 32px;
  border-radius: 0;
  background: rgba(250, 248, 243, 0.75);
  backdrop-filter: blur(24px) saturate(150%);
  -webkit-backdrop-filter: blur(24px) saturate(150%);
  border: 1px solid var(--je-glass-border);
  box-shadow: var(--je-glass-shadow);
}

.je-login__image-title {
  font-size: clamp(36px, 3.5vw, 56px);
  font-style: italic; font-weight: 500; line-height: 1.05;
  color: var(--je-charcoal); margin: 0;
}

.je-login__image-desc {
  font-size: 16px; line-height: 1.7;
  color: var(--je-charcoal); max-width: 420px; margin: 0;
}

.je-login__image-text .je-small-caps { color: var(--je-gold-deep); }

.je-login__form-side {
  display: flex; align-items: center; justify-content: center;
  padding: 80px 96px;
}

.je-login__form-wrap {
  width: 100%; max-width: 440px;
  display: flex; flex-direction: column; gap: 26px;
}

.je-login__title {
  font-size: clamp(32px, 3vw, 48px);
  font-style: italic; font-weight: 500; line-height: 1.0; margin: 0;
}

/* Tabs */
.je-login__tabs { display: flex; border-bottom: 1px solid var(--je-line); }

.je-login__tab {
  flex: 1; text-align: center; padding: 14px 0;
  font-size: 11px; letter-spacing: 0.28em; text-transform: uppercase;
  color: var(--je-text-muted);
  background: none; border: none; cursor: pointer;
  text-decoration: none; font-family: var(--je-font-body);
  transition: color 0.2s;
}

.je-login__tab--active {
  color: var(--je-gold-deep);
  border-bottom: 2px solid var(--je-gold-deep);
  margin-bottom: -1px;
}

/* Felder */
.je-login__form { display: flex; flex-direction: column; gap: 18px; }

.je-login__field { display: flex; flex-direction: column; gap: 8px; }

.je-login__label {
  font-size: 10px; letter-spacing: 0.28em; text-transform: uppercase;
  color: var(--je-text-muted); display: block; margin: 0;
}

.je-login__input {
  height: 52px; padding: 0 16px;
  background: rgba(250,248,243,0.6);
  border: 1px solid var(--je-line);
  font-family: var(--je-font-body); font-size: 15px; color: var(--je-text);
  outline: none; width: 100%; box-sizing: border-box;
  transition: border-color 0.2s, background 0.2s;
}
.je-login__input:focus {
  border-color: var(--je-gold); background: rgba(250,248,243,0.85);
}
.je-login__textarea { height: auto; padding: 14px 16px; resize: vertical; }

.je-login__password-head {
  display: flex; justify-content: space-between; align-items: baseline;
}

/* Divider "oder" */
.je-login__divider { display: flex; align-items: center; gap: 14px; }
.je-login__divider span:first-child,
.je-login__divider span:last-child { flex: 1; height: 1px; background: var(--je-line); }

.je-login__register-hint {
  text-align: center; font-size: 12px; color: var(--je-text-muted); margin: 0;
}

/* ── Register — Overrides & Erweiterungen ───────────────────────────── */
.je-register .je-login__form-side {
  align-items: flex-start;
  padding-top: 60px; padding-bottom: 60px;
}
.je-register .je-login__form-wrap { max-width: 480px; }

.je-register__section { margin-bottom: 32px; }

.je-register__section-title {
  font-family: var(--je-font-display);
  font-style: italic; font-size: 22px; font-weight: 500;
  color: var(--je-text); margin: 0 0 20px;
  padding-bottom: 12px; border-bottom: 1px solid var(--je-line-soft);
}

.je-register__error { font-size: 11px; color: #c0392b; min-height: 16px; }

/* Bootstrap-Inputs im Register überschreiben */
.je-register .form-control,
.je-register .form-select {
  height: 52px; padding: 0 16px;
  background: rgba(250,248,243,0.6);
  border: 1px solid var(--je-line); border-radius: 0;
  font-family: var(--je-font-body); font-size: 15px; color: var(--je-text);
  box-shadow: none;
}
.je-register .form-control:focus,
.je-register .form-select:focus {
  border-color: var(--je-gold); background: rgba(250,248,243,0.85);
  box-shadow: none;
}
.je-register textarea.form-control { height: auto; padding: 14px 16px; }

.je-register .col-form-label {
  font-size: 10px; letter-spacing: 0.28em; text-transform: uppercase;
  color: var(--je-text-muted); font-family: var(--je-font-body); padding-top: 18px;
}
.je-register .invalid-feedback { font-size: 11px; }

/* Newsletter Toggle */
.je-register__toggle { position: relative; cursor: pointer; flex-shrink: 0; }
.je-register__toggle-check { position: absolute; opacity: 0; width: 0; height: 0; }
.je-register__toggle-track {
  display: block; width: 44px; height: 24px;
  background: var(--je-line); border-radius: 12px;
  transition: background 0.2s;
}
.je-register__toggle-check:checked + .je-register__toggle-track { background: var(--je-gold-deep); }
.je-register__toggle-track::after {
  content: '';
  position: absolute; top: 3px; left: 3px;
  width: 18px; height: 18px;
  background: white; border-radius: 50%;
  transition: transform 0.2s;
}
.je-register__toggle-check:checked + .je-register__toggle-track::after { transform: translateX(20px); }

/* Register Footer (AGB + Submit) */
.je-register__footer { display: flex; flex-direction: column; gap: 16px; }
.je-register__agb { font-size: 12px; color: var(--je-text-muted); margin: 0; line-height: 1.7; }
.je-register__agb a { color: var(--je-gold-deep); text-decoration: none; }

/* ── Account Dashboard ──────────────────────────────────────────────── */
.je-account { background: var(--je-bg); min-height: calc(100vh - var(--je-nav-h)); }
.je-account__alert { margin: 24px 96px 0; }

.je-account__header { padding: 64px 96px 32px; }
.je-account__header-title {
  font-size: clamp(36px, 3.5vw, 64px);
  font-style: italic; font-weight: 500; line-height: 1.0; margin: 14px 0 0;
}

.je-account__body {
  padding: 24px 96px 100px;
  display: grid; grid-template-columns: 260px 1fr;
  gap: 64px; align-items: flex-start;
}

/* Sidebar */
.je-account__sidebar-nav { display: flex; flex-direction: column; }

.je-account__sidebar-item {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 16px;
  background: transparent; border-left: 2px solid transparent;
  color: var(--je-text);
  font-size: 12px; letter-spacing: 0.24em; text-transform: uppercase;
  text-decoration: none; transition: background 0.2s, color 0.2s;
}
.je-account__sidebar-item:hover { background: rgba(206,186,136,0.07); color: var(--je-text); }
.je-account__sidebar-item--active {
  background: rgba(206,186,136,0.10);
  border-left-color: var(--je-gold-deep);
  color: var(--je-gold-deep);
}
.je-account__sidebar-item--active:hover { color: var(--je-gold-deep); }

.je-account__sidebar-arrow { width: 12px; height: 12px; opacity: 0.5; flex-shrink: 0; }

.je-account__sidebar-logout {
  display: block; margin-top: 24px; padding: 14px 16px;
  font-size: 11px; letter-spacing: 0.24em; text-transform: uppercase;
  color: var(--je-text-muted); text-decoration: none;
}

/* Hauptinhalt */
.je-account__main { display: flex; flex-direction: column; gap: 40px; }

/* Schnellzugriff-Karten */
.je-account__quick-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }

/* Kontoverwaltungs-Grid */
.je-account__manage-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0; }

.je-account__quick-card {
  padding: 22px; text-decoration: none; color: var(--je-text);
  display: flex; flex-direction: column; gap: 6px;
  transition: opacity 0.2s;
}
.je-account__quick-card:hover { opacity: 0.8; }

.je-account__quick-num {
  font-family: var(--je-font-display); font-style: italic;
  font-size: 32px; color: var(--je-gold-deep); line-height: 1;
}
.je-account__quick-label {
  font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase;
}
.je-account__quick-sub { font-size: 11px; color: var(--je-text-muted); }

/* Atelier-Note */
.je-account__note {
  padding: 40px 48px; background: var(--je-surface);
  display: grid; grid-template-columns: 1fr auto;
  gap: 32px; align-items: center;
}
.je-account__note-title {
  font-family: var(--je-font-display); font-style: italic;
  font-size: 26px; font-weight: 500; line-height: 1.3; margin: 10px 0 0;
}
.je-account__note-text {
  color: var(--je-text-soft); font-size: 14px; line-height: 1.7; margin: 10px 0 0;
}

/* ── Bestellungen (order_list) ──────────────────────────────────────── */
.je-order-card {
  padding: 28px;
  display: grid; grid-template-columns: 1fr auto;
  gap: 32px; margin-bottom: 20px;
}

.je-order-card__num {
  font-family: var(--je-font-display); font-style: italic;
  font-size: 26px; color: var(--je-gold-deep);
}

.je-order-card__meta {
  display: flex; gap: 24px; flex-wrap: wrap;
  font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--je-text-muted);
}

.je-order-card__actions {
  display: flex; flex-direction: column;
  justify-content: center; align-items: flex-end; gap: 12px;
}

.je-orders__empty {
  padding: 64px 48px; text-align: center;
  color: var(--je-text-muted);
  font-family: var(--je-font-display); font-style: italic; font-size: 22px;
}

.je-orders__pagination {
  display: flex; justify-content: space-between; align-items: center;
  padding: 16px 0; font-size: 12px; color: var(--je-text-muted);
}
.je-orders__pagination .pagination { margin: 0; }
.je-orders__pagination .pagination .page-link {
  color: var(--je-text); border-color: var(--je-line);
  background: transparent; font-size: 12px;
}
.je-orders__pagination .pagination .page-item.active .page-link {
  background: var(--je-gold-deep); border-color: var(--je-gold-deep); color: white;
}

/* ── Forgotten Password ─────────────────────────────────────────────── */
.je-forgotten {
  background: var(--je-bg);
  min-height: calc(100vh - var(--je-nav-h));
  display: flex; align-items: center; justify-content: center;
  flex-direction: column; padding: 80px 96px;
}

.je-forgotten__card {
  width: 100%; max-width: 480px;
  display: flex; flex-direction: column; gap: 26px;
}

.je-forgotten__title {
  font-size: clamp(28px, 2.5vw, 42px);
  font-style: italic; font-weight: 500; line-height: 1.1; margin: 0;
}

.je-forgotten__desc {
  font-size: 14px; line-height: 1.7; color: var(--je-text-soft); margin: 0;
}

.je-forgotten__actions { display: flex; gap: 12px; align-items: center; margin-top: 8px; }

/* ── Mobile Overrides ───────────────────────────────────────────────── */
@media (max-width: 1100px) {
  .je-login__form-side { padding: 60px 48px; }
  .je-account__body { padding: 24px 48px 80px; gap: 40px; }
  .je-account__header { padding: 48px 48px 24px; }
  .je-account__quick-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
  .je-login__split { grid-template-columns: 1fr; }
  .je-login__image-side { min-height: 380px; }
  .je-login__form-side { padding: 48px 32px; }
  .je-login__alert { margin: 24px 24px 0; }
  .je-account__body { grid-template-columns: 1fr; padding: 24px 24px 60px; gap: 28px; }
  .je-account__sidebar-nav { display: grid; grid-template-columns: 1fr 1fr; }
  .je-account__header { padding: 40px 24px 20px; }
  .je-account__alert { margin: 24px 24px 0; }
  .je-account__note { grid-template-columns: 1fr; padding: 28px; }
  .je-order-card { grid-template-columns: 1fr; gap: 16px; }
  .je-order-card__actions { align-items: flex-start; }
  .je-forgotten { padding: 60px 24px; }
}
@media (max-width: 576px) {
  .je-account__sidebar-nav { grid-template-columns: 1fr; }
  .je-account__quick-label { letter-spacing: 0.1em; }
  .je-account__quick-grid { grid-auto-rows: 140px; }
  .je-account__quick-card { align-items: center; text-align: center; justify-content: center; }
  .je-account__manage-grid { grid-template-columns: 1fr; }
}

/* ════════════════════════════════════════════════════════════════════════
   ACCOUNT UNTERSEITEN — Formulare, Adressen, Wunschliste, Downloads
════════════════════════════════════════════════════════════════════════ */

/* ── Formular-Karte (edit, password, newsletter, address_form) ───────── */
.je-account__form-card {
  padding: 36px 40px;
  display: flex; flex-direction: column; gap: 0;
}
.je-account__form-card form { display: flex; flex-direction: column; }
.je-account__form-actions {
  display: flex; justify-content: space-between; align-items: center;
  margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--je-line-soft);
}

/* Select mit JE-Styling (für address_form) */
.je-login__select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' stroke='%23A8A097' stroke-width='1' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  padding-right: 40px;
  cursor: pointer;
}

/* ── Adress-Formular Grid ────────────────────────────────────────────── */
.je-address-form__grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 16px;
}
.je-address-form__full { grid-column: 1 / -1; }

/* ── Adressliste (address_list.twig) ─────────────────────────────────── */
.je-address-list { display: flex; flex-direction: column; gap: 12px; }

.je-address-card {
  padding: 20px 24px;
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
}

.je-address-card__text {
  font-size: 14px; line-height: 1.7; color: var(--je-text-soft);
  flex: 1;
}

.je-address-card__actions {
  display: flex; gap: 20px; flex-shrink: 0; align-items: center;
}

/* ── Wunschliste (wishlist_list.twig) ────────────────────────────────── */
.je-wishlist-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 20px;
}

.je-wishlist-card {
  display: flex; flex-direction: column; overflow: hidden;
}

.je-wishlist-card__img-wrap {
  display: block; aspect-ratio: 3/4; overflow: hidden;
  background: var(--je-surface); text-decoration: none;
}
.je-wishlist-card__img-wrap--empty { min-height: 200px; }

.je-wishlist-card__img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 0.4s ease;
}
.je-wishlist-card__img-wrap:hover .je-wishlist-card__img { transform: scale(1.03); }

.je-wishlist-card__body {
  padding: 16px; display: flex; flex-direction: column; gap: 8px; flex: 1;
}

.je-wishlist-card__name {
  font-family: var(--je-font-display); font-style: italic; font-size: 17px;
  color: var(--je-text); text-decoration: none; line-height: 1.3;
}
.je-wishlist-card__name:hover { color: var(--je-gold-deep); }

.je-wishlist-card__price {
  font-family: var(--je-font-display); font-style: italic; font-size: 16px;
  color: var(--je-gold-deep);
}

.je-wishlist-card__actions {
  display: flex; align-items: center; gap: 14px; margin-top: auto; padding-top: 12px;
}

/* ── Download-Karte ──────────────────────────────────────────────────── */
.je-download-card {
  padding: 20px 28px;
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
}

.je-download-card__info { flex: 1; display: flex; flex-direction: column; gap: 6px; }

.je-download-card__name {
  font-family: var(--je-font-display); font-style: italic; font-size: 20px;
  color: var(--je-text);
}

.je-download-card__meta {
  display: flex; gap: 20px; font-size: 11px;
  letter-spacing: 0.22em; text-transform: uppercase; color: var(--je-text-muted);
}

/* ── Bestelldetail (order_info) ──────────────────────────────────────── */
.je-order-info__meta-card {
  padding: 18px 22px; display: flex; flex-direction: column; gap: 6px;
}
.je-order-info__meta-val {
  font-family: var(--je-font-display); font-style: italic; font-size: 20px;
  color: var(--je-text);
}

.je-order-info__product {
  display: grid;
  grid-template-columns: 1fr 80px 120px 120px auto;
  gap: 16px; align-items: center;
  padding: 18px 0;
}

.je-order-info__product-info { display: flex; flex-direction: column; gap: 4px; }

.je-order-info__product-name {
  font-family: var(--je-font-display); font-style: italic; font-size: 18px;
  color: var(--je-text); text-decoration: none;
}
.je-order-info__product-name:hover { color: var(--je-gold-deep); }

.je-order-info__product-meta {
  display: flex; flex-wrap: wrap; gap: 12px;
  font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--je-text-muted);
}

.je-order-info__product-qty,
.je-order-info__product-price,
.je-order-info__product-total {
  display: flex; flex-direction: column; gap: 4px;
}

.je-order-info__product-actions {
  display: flex; flex-direction: column; gap: 8px; align-items: flex-end;
}

/* Mobile Responsive — Unterseiten */
@media (max-width: 1100px) {
  .je-account__form-card { padding: 28px 28px; }
  .je-order-info__product { grid-template-columns: 1fr 60px 100px; }
  .je-order-info__product-total { display: none; }
  .je-order-info__product-actions { flex-direction: row; grid-column: 1 / -1; }
}

@media (max-width: 768px) {
  .je-account__form-card { padding: 24px 20px; }
  .je-address-form__grid { grid-template-columns: 1fr; }
  .je-address-form__full { grid-column: 1; }
  .je-wishlist-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .je-download-card { flex-direction: column; align-items: flex-start; }
  .je-order-info__product { grid-template-columns: 1fr auto; }
  .je-order-info__product-qty,
  .je-order-info__product-price,
  .je-order-info__product-total { display: none; }
  .je-order-info__product-actions { flex-direction: row; grid-column: 1 / -1; }
  .je-address-card { flex-direction: column; align-items: flex-start; }
}

/* =============================================================
   PRODUKTDETAIL-SEITE
   ============================================================= */

/* Breadcrumb */
.je-product__breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--je-text-muted);
  margin-bottom: 36px;
  padding: 0 var(--je-gutter, 32px);
  max-width: 1400px;
  margin-left: auto;
  margin-right: auto;
}
.je-product__breadcrumb-link { color: var(--je-text-muted); text-decoration: none; transition: color 0.15s; }
.je-product__breadcrumb-link:hover { color: var(--je-gold-deep); }
.je-product__breadcrumb-sep { opacity: 0.4; }
.je-product__breadcrumb-current { color: var(--je-text); }

/* Hauptlayout */
.je-product {
  max-width: 1400px;
  margin: 0 auto;
  padding: 40px var(--je-gutter, 32px) 80px;
}

.je-product__layout {
  display: grid;
  grid-template-columns: 60fr 40fr;
  gap: 64px;
  align-items: start;
  margin-bottom: 64px;
}

/* Galerie */
.je-product__gallery { position: sticky; top: 80px; min-width: 0; }

.je-product__main-wrap {
  width: 100%;
  overflow: hidden;
  border-radius: 2px;
  background: var(--je-surface);
  position: relative;
}

.je-product__img {
  width: 100%;
  height: auto;
  display: block;
  transition: transform 0.5s ease;
}
.je-product__main-wrap:hover .je-product__img { transform: scale(1.02); }
.je-product__img--sold { filter: grayscale(0.3) brightness(0.85); }

.je-product__img-placeholder {
  width: 100%;
  height: 100%;
}

.je-product__sold-overlay {
  pointer-events: none;
}

.je-product__thumbs {
  display: flex;
  gap: 8px;
  margin-top: 10px;
  overflow-x: auto;
  padding-bottom: 4px;
}

.je-product__thumb-btn {
  width: 68px;
  height: 68px;
  flex-shrink: 0;
  overflow: hidden;
  border-radius: 1px;
  border: 1px solid transparent;
  background: none;
  padding: 0;
  cursor: pointer;
  opacity: 0.65;
  transition: opacity 0.2s, border-color 0.2s;
}
.je-product__thumb-btn img { width: 100%; height: 100%; object-fit: cover; display: block; }
.je-product__thumb-btn:hover { opacity: 1; }
.je-product__thumb-btn--active { opacity: 1; border-color: var(--je-gold); }

/* Info-Spalte */
.je-product__info { display: flex; flex-direction: column; gap: 0; padding: 0; min-width: 0; }

.je-product__badge { margin-bottom: 14px; align-self: flex-start; }

.je-product__name {
  font-family: var(--je-font-display);
  font-style: italic;
  font-size: clamp(28px, 3vw, 46px);
  line-height: 1.15;
  color: var(--je-text);
  margin: 0 0 20px;
}

.je-product__price {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 10px 16px;
  margin-bottom: 24px;
}
.je-product__price--regular,
.je-product__price--special {
  font-family: var(--je-font-display);
  font-style: italic;
  font-size: 34px;
  color: var(--je-gold-deep);
}
.je-product__price--old {
  font-size: 18px;
  color: var(--je-text-muted);
  text-decoration: line-through;
}
.je-product__price--tax {
  font-size: 12px;
  color: var(--je-text-muted);
  align-self: center;
}

/* Optionen */
.je-product__options { margin-bottom: 20px; display: flex; flex-direction: column; gap: 12px; }
.je-product__radio-group { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; }
.je-product__radio-label { display: flex; align-items: center; gap: 6px; font-size: 13px; cursor: pointer; }

/* Warenkorb-Zeile */
.je-product__cart-row {
  display: flex;
  gap: 12px;
  align-items: center;
  margin-bottom: 12px;
}

/* Mengen-Steuerung */
.je-qty-control {
  display: flex;
  align-items: stretch;
  border: 1px solid var(--je-line, rgba(82,78,74,0.2));
  border-radius: 2px;
  overflow: hidden;
  flex-shrink: 0;
}
.je-qty-btn {
  width: 38px;
  background: none;
  border: none;
  font-size: 20px;
  line-height: 1;
  color: var(--je-text-soft);
  cursor: pointer;
  transition: background 0.15s;
  flex-shrink: 0;
}
.je-qty-btn:hover { background: var(--je-surface); }
.je-qty-input {
  width: 44px;
  text-align: center;
  border: none;
  border-left: 1px solid var(--je-line, rgba(82,78,74,0.2));
  border-right: 1px solid var(--je-line, rgba(82,78,74,0.2));
  background: none;
  font-family: var(--je-font-body);
  font-size: 15px;
  color: var(--je-text);
  padding: 10px 0;
}

/* Aktions-Zeile: Cart + Herz nebeneinander */
.je-product__actions {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
}
.je-product__btn-cart { flex: 1; width: 100%; justify-content: center; }

/* Herz-Button: kompaktes Icon-Quadrat */
.je-product__btn-wish {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  background: none;
  border: 1px solid var(--je-line, rgba(82,78,74,0.2));
  border-radius: 2px;
  color: var(--je-text-muted);
  cursor: pointer;
  transition: border-color 0.2s, color 0.2s;
}
.je-product__btn-wish:hover {
  border-color: var(--je-gold-deep);
  color: var(--je-gold-deep);
}
.je-product__btn-wish svg { flex-shrink: 0; }

/* Verkauft-Info */
.je-product__sold-info { margin-bottom: 20px; }
.je-product__sold-text {
  font-family: var(--je-font-display);
  font-style: italic;
  font-size: 18px;
  color: var(--je-text-soft);
  margin-bottom: 14px;
}

/* Beschreibung */
.je-product__desc {
  font-size: 14px;
  line-height: 1.85;
  color: var(--je-text-soft);
  margin-bottom: 24px;
  border-top: 1px solid var(--je-line-soft, rgba(206,186,136,0.2));
  padding-top: 24px;
}
.je-product__desc p { margin-bottom: 0.8em; }

/* Attribute */
.je-product__attrs {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-bottom: 20px;
}
.je-product__attr {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 9px 0;
  border-bottom: 1px solid var(--je-line-soft, rgba(206,186,136,0.15));
  font-size: 13px;
}
.je-product__attr-name { color: var(--je-text-muted); }
.je-product__attr-value { color: var(--je-text); text-align: right; }

/* Tags */
.je-product__tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }

/* Meta */
.je-product__meta {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 12px;
  color: var(--je-text-muted);
  padding-top: 16px;
  margin-top: 8px;
  border-top: 1px solid var(--je-line-soft, rgba(206,186,136,0.15));
}
.je-product__meta-link { color: var(--je-gold-deep); text-decoration: none; }
.je-product__meta-link:hover { text-decoration: underline; }

/* Verwandte Produkte */
.je-product__related { margin-top: 60px; }

/* Mobile */
@media (max-width: 991px) {
  .je-product__layout { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .je-product__gallery { position: static; }
}
@media (max-width: 480px) {
  .je-product { padding: 24px 16px 60px; }
  .je-product__secondary-actions { flex-wrap: wrap; }
  .je-product__btn-wish { flex: 1; justify-content: center; }
  .je-product__cart-row { flex-wrap: wrap; }
  .je-product__btn-cart { width: 100%; }
}

/* =============================================================
   TOAST-BENACHRICHTIGUNGEN (Frosted Glass)
   ============================================================= */

/* Container: fixiert oben rechts */
#alert {
  position: fixed;
  top: calc(var(--je-nav-h) + 12px);
  right: 24px;
  left: auto;
  margin-left: 0;
  z-index: 9999;
  width: 360px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  pointer-events: none;
}

/* Jeder Alert = Frosted-Glass-Karte */
#alert .alert {
  pointer-events: auto;
  margin: 0;
  padding: 18px 44px 18px 24px;
  border: none;
  border-radius: 2px;
  position: relative;
  background: rgba(250, 248, 243, 0.92);
  backdrop-filter: blur(24px) saturate(1.5);
  -webkit-backdrop-filter: blur(24px) saturate(1.5);
  box-shadow:
    0 8px 32px rgba(82, 78, 74, 0.18),
    0 0 0 1px rgba(206, 186, 136, 0.28);
  animation: je-toast-in 0.4s cubic-bezier(0.16, 1, 0.3, 1) both;
  font-family: var(--je-font-body, 'Raleway', sans-serif);
  font-size: 13px;
  line-height: 1.65;
  color: var(--je-text, #524E4A);
}

/* Bootstrap-Hintergrundfarben überschreiben */
#alert .alert-success,
#alert .alert-danger,
#alert .alert-warning,
#alert .alert-info {
  background: rgba(250, 248, 243, 0.92);
  color: var(--je-text, #524E4A);
}

/* Farbiger Akzentstreifen links */
#alert .alert::after {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
}
#alert .alert-success::after { background: var(--je-gold-deep, #B8A070); }
#alert .alert-danger::after  { background: #b07060; }
#alert .alert-warning::after { background: #c9a84c; }
#alert .alert-info::after    { background: #7a9eb5; }

/* FontAwesome-Icons */
#alert .alert .fa-solid { margin-right: 8px; font-size: 12px; }
#alert .alert-success .fa-solid { color: var(--je-gold-deep, #B8A070); }
#alert .alert-danger  .fa-solid { color: #b07060; }
#alert .alert-warning .fa-solid { color: #c9a84c; }
#alert .alert-info    .fa-solid { color: #7a9eb5; }

/* Schließen-Button (Bootstrap btn-close überschreiben) */
#alert .btn-close {
  position: absolute;
  top: 50%;
  right: 14px;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  padding: 0;
  border: none;
  background: none !important;
  background-image: none !important;
  cursor: pointer;
  opacity: 0.35;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.15s;
}
#alert .btn-close::before {
  content: '×';
  font-size: 20px;
  color: var(--je-text, #524E4A);
  font-family: var(--je-font-body, 'Raleway', sans-serif);
  line-height: 1;
}
#alert .btn-close:hover { opacity: 0.85; }

/* Einblend-Animation: von rechts eingleiten */
@keyframes je-toast-in {
  from { opacity: 0; transform: translateX(16px); }
  to   { opacity: 1; transform: translateX(0); }
}

/* Fortschrittsbalken (läuft 3 s, entspricht dem JS-Timeout vor dem Fade-out) */
#alert .alert::before {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  height: 2px;
  width: 100%;
  animation: je-toast-progress 3s linear forwards;
}
#alert .alert-success::before { background: var(--je-gold-deep, #B8A070); opacity: 0.5; }
#alert .alert-danger::before  { background: #b07060; opacity: 0.5; }
#alert .alert-warning::before { background: #c9a84c; opacity: 0.5; }
#alert .alert-info::before    { background: #7a9eb5; opacity: 0.5; }

@keyframes je-toast-progress {
  from { width: 100%; }
  to   { width: 0%; }
}

/* Mobile: volle Breite, unter Navbar */
@media (max-width: 480px) {
  #alert {
    top: calc(var(--je-nav-h) + 8px);
    bottom: auto;
    right: 12px;
    left: 12px;
    margin-left: 0;
    width: auto;
    flex-direction: column;
  }
  #alert .alert {
    padding: 14px 52px 14px 16px;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    background: rgba(250, 248, 243, 0.97);
  }
  #alert .btn-close {
    width: 44px;
    height: 44px;
    right: 4px;
  }
}

/* ── PRODUCT INFO CARD + STORY ────────────────────────────────────────── */
.je-product__info-card {
  padding: 32px 36px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.je-product__info-dl {
  display: grid;
  grid-template-columns: auto 1fr;
  row-gap: 12px;
  column-gap: 20px;
  font-size: 13px;
  margin: 0;
}
.je-product__info-dl dt {
  grid-column: 1;
  font-family: var(--je-font-body);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--je-text-muted);
  align-self: start;
  padding-top: 2px;
}
.je-product__info-dl dd {
  grid-column: 2;
  margin: 0;
  color: var(--je-text);
  font-size: 13px;
  align-self: start;
  word-break: break-word;
}

.je-product__info-notes {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 16px;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--je-text-muted);
  margin-top: 4px;
}
.je-product__info-notes a { color: var(--je-text-muted); }
.je-product__info-notes a:hover { color: var(--je-gold-deep); }

/* Geschichte hinter dem Werk */
.je-product__story {
  background: var(--je-surface);
  padding: 72px 96px 96px;
  border-top: 1px solid var(--je-line-soft);
}
.je-product__story-inner {
  max-width: 760px;
  margin: 0 auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 24px;
  align-items: center;
}
.je-product__story-body {
  color: var(--je-text-soft);
  font-size: 17px;
  line-height: 1.85;
  text-align: left;
}
.je-product__story-body p { margin: 0 0 1.2em; }
.je-product__story-body p:last-child { margin-bottom: 0; }

@media (max-width: 991px) {
  .je-product__info-card { padding: 24px; }
  .je-product__story { padding: 48px 24px 56px; }
}
@media (max-width: 576px) {
  .je-product__info-card { padding: 16px; }
  .je-product__info-dl { grid-template-columns: auto 1fr; }
  .je-product__story { padding: 36px 16px 44px; }
}

/* ── INFORMATION PAGE ─────────────────────────────────────────────────── */
.je-information { padding: 0 0 96px; }

.je-information__header {
  padding: 64px 56px 48px;
  border-bottom: 1px solid var(--je-line-soft);
}
.je-information__title {
  font-size: clamp(32px, 4vw, 56px);
  font-style: italic;
  font-weight: 500;
  margin: 0;
  line-height: 1.1;
}

.je-information__content {
  max-width: 720px;
  padding: 56px 56px 0;
}

/* ── PROSE (WYSIWYG-Inhalte) ──────────────────────────────────────────── */
.je-prose h2 {
  font-family: var(--je-font-display);
  font-size: clamp(20px, 2.5vw, 28px);
  font-style: italic;
  font-weight: 500;
  color: var(--je-text);
  margin: 48px 0 16px;
  line-height: 1.2;
}
.je-prose h3 {
  font-family: var(--je-font-body);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--je-text-muted);
  margin: 36px 0 12px;
}
.je-prose p {
  font-size: 16px;
  line-height: 1.85;
  color: var(--je-text-soft);
  margin: 0 0 20px;
}
.je-prose ul, .je-prose ol {
  padding-left: 20px;
  margin: 0 0 20px;
}
.je-prose li {
  font-size: 16px;
  line-height: 1.85;
  color: var(--je-text-soft);
  margin-bottom: 6px;
}
.je-prose a {
  color: var(--je-gold-deep);
  border-bottom: 1px solid var(--je-gold-light);
  transition: border-color 0.2s;
}
.je-prose a:hover { border-color: var(--je-gold-deep); }
.je-prose strong { color: var(--je-text); font-weight: 500; }
.je-prose hr {
  border: none;
  border-top: 1px solid var(--je-line);
  margin: 48px 0;
}

@media (max-width: 991px) {
  .je-information__header { padding: 40px 24px 32px; }
  .je-information__content { padding: 36px 24px 0; }
}

/* ── CONTACT PAGE ─────────────────────────────────────────────────────── */
.je-contact { padding: 0 0 96px; }

.je-contact__header {
  padding: 64px 56px 48px;
  border-bottom: 1px solid var(--je-line-soft);
}
.je-contact__title {
  font-size: clamp(32px, 4vw, 56px);
  font-style: italic;
  font-weight: 500;
  margin: 0;
  line-height: 1.1;
}

.je-contact__body {
  max-width: 640px;
  padding: 56px 56px 0;
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.je-contact__info {
  padding: 24px 28px;
  display: flex;
  gap: 20px;
  align-items: flex-start;
}
.je-contact__info-img {
  width: 80px;
  height: 80px;
  object-fit: cover;
  flex-shrink: 0;
}

.je-contact__form {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.je-contact__actions { margin-top: 8px; }

@media (max-width: 991px) {
  .je-contact__header { padding: 40px 24px 32px; }
  .je-contact__body { padding: 36px 24px 0; }
}

/* ── SITEMAP PAGE ─────────────────────────────────────────────────────── */
.je-sitemap { padding: 0 0 96px; }

.je-sitemap__header {
  padding: 64px 56px 48px;
  border-bottom: 1px solid var(--je-line-soft);
}
.je-sitemap__title {
  font-size: clamp(32px, 4vw, 56px);
  font-style: italic;
  font-weight: 500;
  margin: 0;
  line-height: 1.1;
}

.je-sitemap__body {
  padding: 56px 56px 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
}
.je-sitemap__list { list-style: none; padding: 0; margin: 0; }
.je-sitemap__item {
  padding: 10px 0;
  border-bottom: 1px solid var(--je-line-soft);
  font-size: 14px;
}
.je-sitemap__item > a {
  font-family: var(--je-font-body);
  font-weight: 500;
  letter-spacing: 0.06em;
  color: var(--je-text);
}
.je-sitemap__sub {
  list-style: none;
  padding: 8px 0 0 16px;
  margin: 0;
}
.je-sitemap__sub li { padding: 4px 0; }
.je-sitemap__sub a { font-size: 13px; color: var(--je-text-soft); }
.je-sitemap__sub a:hover,
.je-sitemap__item > a:hover { color: var(--je-gold-deep); }

@media (max-width: 991px) {
  .je-sitemap__header { padding: 40px 24px 32px; }
  .je-sitemap__body { padding: 36px 24px 0; grid-template-columns: 1fr; gap: 32px; }
}

/* ── GDPR PAGE ────────────────────────────────────────────────────────── */
.je-gdpr { padding: 0 0 96px; }

.je-gdpr__header {
  padding: 64px 56px 48px;
  border-bottom: 1px solid var(--je-line-soft);
}
.je-gdpr__title {
  font-size: clamp(32px, 4vw, 56px);
  font-style: italic;
  font-weight: 500;
  margin: 0;
  line-height: 1.1;
}
.je-gdpr__body { max-width: 640px; padding: 56px 56px 0; }
.je-gdpr__form { display: flex; flex-direction: column; gap: 40px; }
.je-gdpr__radio { display: flex; flex-direction: column; gap: 12px; }
.je-gdpr__radio-label {
  display: flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  font-size: 15px;
  color: var(--je-text);
}
.je-gdpr__radio-input { accent-color: var(--je-gold-deep); width: 16px; height: 16px; }
.je-gdpr__actions { display: flex; gap: 16px; flex-wrap: wrap; }

@media (max-width: 991px) {
  .je-gdpr__header { padding: 40px 24px 32px; }
  .je-gdpr__body { padding: 36px 24px 0; }
}


/* ── MANUFACTURER LIST ──────────────────────────────────────────────── */
.je-manufacturer-list { padding: 0 0 96px; }

.je-manufacturer-list__header {
  padding: 64px 56px 48px;
  border-bottom: 1px solid var(--je-line-soft);
}
.je-manufacturer-list__title {
  font-size: clamp(32px, 4vw, 56px);
  font-style: italic;
  font-weight: 500;
  margin: 0;
  line-height: 1.1;
}

.je-manufacturer-list__index {
  padding: 20px 56px;
  border-bottom: 1px solid var(--je-line-soft);
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}
.je-manufacturer-list__index a {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--je-text-muted);
  padding: 4px 8px;
  transition: color 0.2s;
}
.je-manufacturer-list__index a:hover { color: var(--je-gold-deep); }

.je-manufacturer-list__body { padding: 48px 56px 0; }

.je-manufacturer-list__section { margin-bottom: 48px; }
.je-manufacturer-list__letter {
  font-family: var(--je-font-display);
  font-size: clamp(20px, 3vw, 32px);
  font-style: italic;
  font-weight: 500;
  color: var(--je-text);
  margin: 0 0 20px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--je-line-soft);
}
.je-manufacturer-list__brands {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 8px 24px;
}
.je-manufacturer-list__brand {
  font-size: 14px;
  color: var(--je-text-soft);
  padding: 6px 0;
  transition: color 0.2s;
  display: block;
}
.je-manufacturer-list__brand:hover { color: var(--je-gold-deep); }

@media (max-width: 991px) {
  .je-manufacturer-list__header { padding: 40px 24px 32px; }
  .je-manufacturer-list__index { padding: 16px 24px; }
  .je-manufacturer-list__body { padding: 32px 24px 0; }
}

/* ── SEARCH OVERLAY ───────────────────────────────────────────────────── */

.je-nav__icon-search[aria-expanded="true"] {
  color: var(--je-gold-deep);
}

.je-search-overlay {
  position: fixed;
  top: var(--je-nav-h);
  left: 0;
  right: 0;
  z-index: 90;
  background: var(--je-glass-bg-strong);
  backdrop-filter: blur(24px) saturate(150%);
  -webkit-backdrop-filter: blur(24px) saturate(150%);
  border-bottom: 1px solid var(--je-glass-border);
  box-shadow: 0 8px 32px -8px rgba(82, 78, 74, 0.14);
  transform: translateY(-100%);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition:
    transform 280ms cubic-bezier(0.4, 0, 0.2, 1),
    opacity   240ms ease,
    visibility 0ms linear 280ms;
}

.je-search-overlay.is-open {
  transform: translateY(0);
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition:
    transform 280ms cubic-bezier(0.4, 0, 0.2, 1),
    opacity   240ms ease,
    visibility 0ms linear 0ms;
}

.je-search-overlay__inner {
  max-width: 760px;
  margin: 0 auto;
  padding: 36px 56px;
  display: flex;
  align-items: center;
  gap: 20px;
  position: relative;
}

.je-search-overlay__close {
  position: absolute;
  top: 16px;
  right: 16px;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--je-text-muted);
  display: flex;
  align-items: center;
  padding: 8px;
  transition: color 200ms;
}
.je-search-overlay__close:hover { color: var(--je-text); }

.je-search__form { flex: 1; }

.je-search__inner {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.je-search__label { display: block; }

.je-search__field {
  display: flex;
  align-items: center;
  border: 1px solid var(--je-line);
  background: rgba(250, 248, 243, 0.6);
  transition: border-color 200ms;
}
.je-search__field:focus-within {
  border-color: var(--je-gold);
}

.je-search__input {
  flex: 1;
  height: 52px;
  padding: 0 20px;
  background: transparent;
  border: none;
  outline: none;
  font-family: var(--je-font-display);
  font-style: italic;
  font-size: 22px;
  color: var(--je-text);
}
.je-search__input::placeholder {
  color: var(--je-text-muted);
  font-style: italic;
}

/* ── COMMENTS ───────────────────────────────────────────────── */
.je-comments {
  max-width: 760px;
  margin: 0 auto;
  padding: 48px 24px 80px;
  border-top: 1px solid var(--je-line);
}
.je-comments__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 32px;
}
.je-comments__title {
  font-family: var(--je-font-display);
  font-size: 28px;
  font-style: italic;
  font-weight: 500;
  color: var(--je-text);
  margin: 0;
}

/* Comment form */
.je-comment-form {
  background: var(--je-surface);
  border: 1px solid var(--je-line);
  padding: 28px 32px;
  margin-bottom: 40px;
}
.je-comment-form__group { margin-bottom: 20px; }

.je-label {
  display: block;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--je-text-muted);
  margin-bottom: 8px;
}
.je-input,
.je-textarea {
  width: 100%;
  background: transparent;
  border: 1px solid var(--je-line);
  color: var(--je-text);
  font-family: var(--je-font-body);
  font-size: 15px;
  padding: 10px 14px;
  outline: none;
  transition: border-color 200ms;
  box-sizing: border-box;
}
.je-input:focus,
.je-textarea:focus { border-color: var(--je-gold); }
.je-input--error { border-color: #c0392b; }
.je-textarea--error { border-color: #c0392b; }
.je-input--sm { padding: 8px 12px; font-size: 14px; }
.je-textarea--sm { padding: 8px 12px; font-size: 14px; }
.je-textarea { resize: vertical; }

.je-field-error {
  font-size: 12px;
  color: #c0392b;
  margin-top: 4px;
}
.je-comment-alert {
  padding: 10px 16px;
  font-size: 14px;
  margin-bottom: 16px;
}
.je-comment-alert--error  { background: rgba(192,57,43,0.08);  color: #c0392b; }
.je-comment-alert--success { background: rgba(39,174,96,0.08); color: #1e8449; }

/* Comment list */
.je-comment-list { margin-top: 40px; }
.je-comment {
  padding: 24px 0;
  border-bottom: 1px solid var(--je-line);
}
.je-comment:first-child { border-top: 1px solid var(--je-line); }
.je-comment__meta {
  margin-bottom: 8px;
  color: var(--je-text-muted);
  font-size: 11px;
}
.je-comment__sep { margin: 0 6px; }
.je-comment__body {
  font-size: 15px;
  line-height: 1.7;
  color: var(--je-text);
  white-space: pre-line;
}
.je-comment__actions { margin-top: 12px; }
.je-comment__reply-toggle {
  background: none;
  border: none;
  cursor: pointer;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--je-text-muted);
  padding: 0;
  transition: color 200ms;
}
.je-comment__reply-toggle:hover { color: var(--je-gold-deep); }

/* Reply form */
.je-reply-form-wrap {
  margin-top: 16px;
  padding: 16px 20px;
  background: var(--je-surface);
  border-left: 2px solid var(--je-line);
}
.je-reply-form { display: flex; flex-direction: column; gap: 10px; }

/* Replies */
.je-replies { margin-top: 16px; }
.je-reply {
  padding: 16px 0 16px 24px;
  border-left: 2px solid var(--je-line);
  margin-top: 8px;
}
.je-comment__load-replies { margin-top: 12px; }
.je-comment__load-btn,
.je-replies-more button {
  background: none;
  border: none;
  cursor: pointer;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--je-text-muted);
  padding: 0;
  transition: color 200ms;
}
.je-comment__load-btn:hover,
.je-replies-more button:hover { color: var(--je-gold-deep); }

.je-comment-empty {
  color: var(--je-text-muted);
  font-size: 15px;
  text-align: center;
  padding: 40px 0;
}
.je-comment-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 24px 0;
}

.je-search__submit {
  width: 52px;
  height: 52px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--je-text);
  border: none;
  color: var(--je-bg);
  cursor: pointer;
  transition: background 200ms;
}
.je-search__submit:hover { background: var(--je-gold-deep); }

.je-search__input--sm {
  height: 44px;
  font-size: 14px;
  font-style: normal;
  font-family: var(--je-font-body);
  letter-spacing: 0.04em;
  padding: 0 16px;
}
.je-search__submit--sm {
  width: 44px;
  height: 44px;
}

/* ── SEARCH RESULTS PAGE ──────────────────────────────────────────────── */

.je-search-results__header {
  align-items: flex-start;
}

.je-search-results__refine {
  display: flex;
  align-items: flex-end;
  padding-bottom: 8px;
}

.je-search__form--inline { width: 100%; }

.je-search-results__empty {
  gap: 20px;
}

.je-search-results__empty-icon {
  width: 80px;
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--je-line);
  border-radius: 50%;
  flex-shrink: 0;
}

.je-search-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  top: var(--je-nav-h);
  z-index: 89;
  cursor: default;
}
.je-search-backdrop.is-open { display: block; }

/* ── PS LIVE SEARCH DROPDOWN ─────────────────────────────────────────── */
.ps-live-search-list {
  max-height: 400px;
  overflow-y: auto;
  overscroll-behavior: contain;
}

@media (max-width: 991px) {
  .je-search-overlay__inner { padding: 24px 24px; }
  .je-search-results__header { grid-template-columns: 1fr; gap: 24px; }
  .je-search-results__refine { padding-bottom: 0; width: 100%; }
}

@media (max-width: 576px) {
  .je-search-overlay__inner { padding: 20px 16px; gap: 12px; }
  .je-search__input { font-size: 18px; height: 48px; }
  .je-search__submit { width: 48px; height: 48px; }
}

/* ── JOURNAL NAV LINK ───────────────────────────────────── */
.je-nav__journal-link {
  font-size: 11px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--je-text-muted);
  text-decoration: none;
  padding: 4px 0;
  border-bottom: 1px solid transparent;
  transition: color 0.2s, border-color 0.2s;
  white-space: nowrap;
  margin-left: 24px;
  align-self: center;
}
.je-nav__journal-link:hover {
  color: var(--je-gold-deep);
  border-color: var(--je-gold);
}
@media (max-width: 991px) {
  .je-nav__menu .je-nav__journal-link { display: none; }
}
.je-mob-nav__journal {
  padding: 16px 32px;
  border-top: 1px solid var(--je-line);
  margin-top: 8px;
}
.je-mob-nav__journal-link {
  font-size: 12px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--je-text);
  text-decoration: none;
}
.je-mob-nav__journal-link:hover {
  color: var(--je-gold-deep);
}

/* Mobile-Nav — Sprachauswahl */
.je-mob-nav__lang {
  padding: 16px 32px;
  border-top: 1px solid var(--je-line);
}
.je-mob-nav__lang .dropdown-toggle {
  font-family: var(--je-font-body);
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--je-text);
  background: none;
  border: none;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
}
.je-mob-nav__lang .dropdown-toggle::after { display: none; }
.je-mob-nav__lang .dropdown-toggle img { width: 16px; height: 11px; object-fit: cover; border-radius: 1px; }
.je-mob-nav__lang .dropdown-menu {
  background: var(--je-glass-bg-strong);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid var(--je-glass-border);
  border-radius: 8px;
  padding: 6px 0;
  min-width: 140px;
}
.je-mob-nav__lang .dropdown-item {
  font-family: var(--je-font-body);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--je-text-muted);
  padding: 8px 16px;
  display: flex;
  align-items: center;
  gap: 8px;
  background: transparent;
}
.je-mob-nav__lang .dropdown-item img { width: 16px; height: 11px; object-fit: cover; border-radius: 1px; }
.je-mob-nav__lang .dropdown-item:hover,
.je-mob-nav__lang .dropdown-item:focus { color: var(--je-text); background: rgba(206, 186, 136, 0.10); }

/* ── BLOG LISTING ───────────────────────────────────────── */
#je-blog { padding: 0; }

.je-blog-header {
  padding: 72px 96px 48px;
  border-bottom: 1px solid var(--je-line);
}
.je-blog-header__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: end;
  max-width: 1200px;
  margin: 0 auto;
}
.je-blog-header h1 {
  font-family: var(--je-font-display);
  font-size: 64px;
  font-style: italic;
  font-weight: 500;
  line-height: 1.1;
  color: var(--je-text);
  margin: 12px 0 0;
}
.je-blog-header__right p {
  font-size: 16px;
  color: var(--je-text-soft, #7A736D);
  line-height: 1.7;
  margin: 0;
}

.je-blog-filter {
  padding: 20px 96px;
  background: var(--je-surface);
  border-bottom: 1px solid var(--je-line);
  position: sticky;
  top: 0;
  z-index: 10;
}
.je-blog-filter__inner {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  max-width: 1200px;
  margin: 0 auto;
}
.je-pill--gold {
  background: var(--je-gold);
  color: var(--je-bg);
  border-color: var(--je-gold);
}

.je-blog-featured {
  padding: 64px 96px;
  border-bottom: 1px solid var(--je-line);
}
.je-blog-featured__inner {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 60px;
  align-items: center;
  max-width: 1200px;
  margin: 0 auto;
}
.je-blog-featured__image { overflow: hidden; }
.je-blog-featured__image img {
  width: 100%;
  aspect-ratio: 5/4;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.je-blog-featured__image:hover img { transform: scale(1.02); }
.je-blog-featured__meta { margin-bottom: 16px; }
.je-blog-featured__content h2 {
  font-family: var(--je-font-display);
  font-size: 44px;
  font-style: italic;
  font-weight: 500;
  line-height: 1.15;
  margin: 0 0 20px;
}
.je-blog-featured__content h2 a {
  color: var(--je-text);
  text-decoration: none;
}
.je-blog-featured__content h2 a:hover { color: var(--je-gold-deep); }
.je-blog-featured__content > p {
  font-size: 17px;
  color: var(--je-text-soft, #7A736D);
  line-height: 1.75;
  margin: 0 0 28px;
}

.je-blog-grid { padding: 64px 96px 80px; }
.je-blog-grid__inner {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px 40px;
  max-width: 1200px;
  margin: 0 auto;
}
.je-blog-card__image {
  display: block;
  overflow: hidden;
  margin-bottom: 20px;
}
.je-blog-card__image img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.je-blog-card__image:hover img { transform: scale(1.02); }
.je-blog-card__meta { margin-bottom: 10px; }
.je-blog-card h3 {
  font-family: var(--je-font-display);
  font-size: 24px;
  font-style: italic;
  font-weight: 500;
  line-height: 1.2;
  margin: 0 0 12px;
}
.je-blog-card h3 a { color: var(--je-text); text-decoration: none; }
.je-blog-card h3 a:hover { color: var(--je-gold-deep); }
.je-blog-card p {
  font-size: 14px;
  color: var(--je-text-soft, #7A736D);
  line-height: 1.7;
  margin: 0 0 16px;
}

.je-blog-pagination {
  padding: 32px 96px 64px;
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  justify-content: center;
}
.je-blog-pagination .pagination { justify-content: center; margin: 0; }
.je-blog-pagination .pagination .page-item .page-link {
  background: transparent;
  border-color: var(--je-line);
  color: var(--je-text);
  font-family: var(--je-font-ui);
  font-size: 13px;
  border-radius: 0;
}
.je-blog-pagination .pagination .page-item.active .page-link {
  background: var(--je-text);
  border-color: var(--je-text);
  color: var(--je-bg);
}
.je-blog-pagination .pagination .page-item .page-link:hover {
  background: var(--je-gold-light);
  border-color: var(--je-gold);
  color: var(--je-text);
}

.je-blog-empty {
  padding: 80px 96px;
  text-align: center;
  color: var(--je-text-muted);
  font-size: 16px;
}

/* ── BLOG DETAIL ────────────────────────────────────────── */
#je-blog-info { padding: var(--je-nav-h) 0 0; }

.je-article-hero { width: 100%; max-height: 520px; overflow: hidden; }
.je-article-hero img {
  width: 100%;
  max-height: 520px;
  object-fit: cover;
  display: block;
}
.je-article {
  max-width: 760px;
  margin: 0 auto;
  padding: 56px 24px 80px;
}
.je-article__back { display: inline-block; margin-bottom: 40px; }
.je-article__meta { margin-bottom: 24px; }
.je-article__author { color: var(--je-text-muted); text-decoration: none; }
.je-article__author:hover { color: var(--je-gold-deep); }
.je-article h1 {
  font-family: var(--je-font-display);
  font-size: 52px;
  font-style: italic;
  font-weight: 500;
  line-height: 1.1;
  margin: 0 0 32px;
  color: var(--je-text);
}
.je-article__body {
  font-size: 17px;
  line-height: 1.8;
  color: var(--je-text);
}
.je-article__body h2,
.je-article__body h3 {
  font-family: var(--je-font-display);
  font-style: italic;
  font-weight: 500;
  color: var(--je-text);
  margin-top: 40px;
}
.je-article__body h2 { font-size: 34px; }
.je-article__body h3 { font-size: 26px; }
.je-article__body img { max-width: 100%; height: auto; margin: 24px 0; }
.je-article__body a {
  color: var(--je-gold-deep);
  text-decoration: underline;
  text-decoration-color: var(--je-gold-light);
}
.je-article__tags {
  margin-top: 48px;
  padding-top: 24px;
  border-top: 1px solid var(--je-line);
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.je-article__tags a {
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--je-text-muted);
  text-decoration: none;
  padding: 4px 12px;
  border: 1px solid var(--je-line);
  border-radius: 999px;
  transition: border-color 0.2s, color 0.2s;
}
.je-article__tags a:hover {
  color: var(--je-gold-deep);
  border-color: var(--je-gold);
}

/* ── RESPONSIVE: BLOG ───────────────────────────────────── */
@media (max-width: 1024px) {
  .je-blog-header,
  .je-blog-featured,
  .je-blog-grid,
  .je-blog-filter,
  .je-blog-pagination,
  .je-blog-empty { padding-left: 32px; padding-right: 32px; }
  .je-blog-header__inner { grid-template-columns: 1fr; gap: 16px; }
  .je-blog-featured__inner { grid-template-columns: 1fr; }
  .je-blog-grid__inner { grid-template-columns: repeat(2, 1fr); }
  .je-blog-header h1 { font-size: 48px; }
  .je-blog-featured__content h2 { font-size: 34px; }
}
@media (max-width: 640px) {
  .je-blog-header { padding: 40px 20px 32px; }
  .je-blog-featured,
  .je-blog-grid,
  .je-blog-filter,
  .je-blog-pagination,
  .je-blog-empty { padding-left: 20px; padding-right: 20px; }
  .je-blog-grid__inner { grid-template-columns: 1fr; }
  .je-blog-header h1 { font-size: 36px; }
  .je-blog-featured__content h2 { font-size: 28px; }
  .je-article { padding: 40px 20px 60px; }
  .je-article h1 { font-size: 36px; }
}

/* ── ABOUT PAGE ──────────────────────────────────────────────────────── */

.je-about { background: var(--je-bg); }

/* 1. Hero */
.je-about__hero {
  display: grid;
  grid-template-columns: 1fr 1.05fr;
  gap: 80px;
  padding: 88px 96px 100px;
  align-items: center;
}
.je-about__page-title {
  text-align: center;
  font-family: var(--je-font-display);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(32px, 5vw, 56px);
  padding: 60px 96px 0;
}
.je-about__hero--portrait-only {
  display: flex;
  justify-content: center;
}
.je-about__hero--portrait-only .je-about__portrait {
  width: min(600px, 100%);
}
.je-about__portrait { position: relative; }
.je-about__portrait-img { width: 100%; aspect-ratio: 4 / 5; }
.je-about__portrait-caption {
  position: absolute; left: 20px; bottom: 20px;
  padding: 12px 16px;
  display: flex; flex-direction: column; gap: 4px;
}
.je-about__intro { display: flex; flex-direction: column; gap: 26px; }
.je-about__intro h1 {
  font-size: clamp(52px, 6vw, 84px);
  font-style: italic; font-weight: 500; line-height: 0.98;
}
.je-about__lead { color: var(--je-text-soft); font-size: 18px; line-height: 1.75; max-width: 480px; }
.je-about__ctas { display: flex; gap: 14px; margin-top: 6px; }
.je-about__ctas .je-cta { width: auto; padding: 0 32px; }
.je-about__ctas .je-cta-ghost { padding: 0 28px; }

/* 2. Philosophy */
.je-about__philosophy { padding: 40px 96px 100px; background: var(--je-surface); }
.je-about__philosophy-inner {
  max-width: 920px; margin: 0 auto; text-align: center;
  display: flex; flex-direction: column; gap: 30px; padding: 60px 0;
}
.je-about__philosophy blockquote {
  font-family: var(--je-font-display); font-style: italic;
  font-weight: 500; font-size: clamp(28px, 3.5vw, 44px); line-height: 1.25;
  color: var(--je-text); margin: 0;
}
.je-about__philosophy cite {
  font-size: 11px; letter-spacing: 0.32em; text-transform: uppercase;
  color: var(--je-gold-deep); font-style: normal;
}

/* 3. Biography */
.je-about__bio { display: grid; grid-template-columns: 1fr 1.4fr; gap: 80px; padding: 120px 96px 100px; }
.je-about__bio-left .eyebrow { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; }
.je-about__bio-left h2 { font-size: clamp(36px, 4vw, 52px); font-style: italic; font-weight: 500; line-height: 1.05; }
.je-about__bio-right { display: flex; flex-direction: column; gap: 22px; color: var(--je-text-soft); font-size: 16px; line-height: 1.85; }
.je-about__bio-right p { margin: 0; }

/* 4. Timeline */
.je-about__timeline { display: grid; grid-template-columns: repeat(5, 1fr); gap: 24px; padding: 0 96px 120px; }
.je-about__timeline-card {
  padding: 28px 24px; border-top: 1px solid var(--je-gold);
  display: flex; flex-direction: column; gap: 12px;
}
.je-about__timeline-card--current { background: var(--je-surface); }
.je-about__year { font-family: var(--je-font-display); font-style: italic; font-size: 36px; color: var(--je-gold-deep); }
.je-about__milestone { font-family: var(--je-font-display); font-style: italic; font-size: 22px; color: var(--je-text); }
.je-about__timeline-card p { color: var(--je-text-soft); font-size: 13px; line-height: 1.65; margin: 0; }

/* 5. Atelier Images */
.je-about__atelier { padding: 0 96px 120px; }
.je-about__atelier-header { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 40px; }
.je-about__atelier-header h2 { font-size: clamp(28px, 3vw, 40px); font-style: italic; font-weight: 500; }
.je-about__atelier-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 20px; }
.je-about__atelier-main { width: 100%; aspect-ratio: 4 / 5; }
.je-about__atelier-stack { display: grid; grid-template-rows: 1fr 1fr; gap: 20px; }
.je-about__atelier-stack .je-canvas-art { width: 100%; height: 100%; min-height: 180px; }
.je-about__atelier-side { width: 100%; aspect-ratio: 4 / 5; }
.je-about__portrait-grid { display: flex; justify-content: center; }
.je-about__portrait-grid-img {
  width: min(600px, 100%);
  aspect-ratio: 4 / 5;
  display: block;
  object-fit: cover;
  object-position: center top;
}

/* 6. Press Quotes */
.je-about__press { padding: 0 96px 120px; }
.je-about__press h2 { font-size: clamp(28px, 3vw, 40px); font-style: italic; font-weight: 500; margin: 8px 0 0; }
.je-about__press-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 48px; }
.je-about__press-grid blockquote {
  margin: 0; padding: 32px;
  display: flex; flex-direction: column; gap: 20px;
}
.je-quote-mark {
  font-family: var(--je-font-display); font-style: italic;
  font-size: 56px; color: var(--je-gold); line-height: 0.4; height: 24px;
  display: block;
}
.je-about__press-grid p {
  font-family: var(--je-font-display); font-style: italic;
  font-size: 22px; line-height: 1.45; margin: 0;
}
.je-press-footer {
  display: flex; justify-content: space-between;
  font-size: 11px; letter-spacing: 0.26em; text-transform: uppercase;
}
.je-press-footer .source { color: var(--je-gold-deep); }
.je-press-footer .year { color: var(--je-text-muted); }

/* 7. Contact CTA */
.je-about__cta { padding: 0 96px 120px; }
.je-about__cta-panel {
  padding: 64px;
  display: grid; grid-template-columns: 1.2fr 1fr; gap: 60px; align-items: center;
}
.je-about__cta-text { display: flex; flex-direction: column; gap: 16px; }
.je-about__cta-text h2 { font-size: clamp(28px, 3vw, 44px); font-style: italic; font-weight: 500; }
.je-about__cta-text p { color: var(--je-text-soft); font-size: 15px; line-height: 1.75; max-width: 460px; }
.je-about__cta-details { display: flex; flex-direction: column; }
.je-about__contact-row { display: flex; justify-content: space-between; align-items: center; padding: 18px 0; border-bottom: 1px solid var(--je-line-soft); }
.je-about__contact-row .label { font-size: 11px; letter-spacing: 0.32em; text-transform: uppercase; color: var(--je-text-muted); }
.je-about__contact-row .value { font-family: var(--je-font-display); font-style: italic; font-size: 18px; color: var(--je-gold-deep); }

/* ── ABOUT PAGE RESPONSIVE ───────────────────────────────────────────── */
@media (max-width: 991px) {
  .je-about__hero { grid-template-columns: 1fr; gap: 40px; padding: 60px 24px 80px; }
  .je-about__philosophy { padding: 40px 24px 80px; }
  .je-about__bio { grid-template-columns: 1fr; gap: 40px; padding: 80px 24px 80px; }
  .je-about__timeline { grid-template-columns: 1fr 1fr; padding: 0 24px 80px; }
  .je-about__page-title { padding: 40px 24px 0; }
  .je-about__atelier { padding: 0 24px 80px; }
  .je-about__atelier-grid { grid-template-columns: 1fr 1fr; }
  .je-about__atelier-side { display: none; }
  .je-about__press { padding: 0 24px 80px; }
  .je-about__press-grid { grid-template-columns: 1fr; }
  .je-about__cta { padding: 0 24px 80px; }
  .je-about__cta-panel { grid-template-columns: 1fr; gap: 40px; padding: 40px; }
}

@media (max-width: 575px) {
  .je-about__timeline { grid-template-columns: 1fr; }
  .je-about__atelier-grid { grid-template-columns: 1fr; }
  .je-about__atelier-stack { display: none; }
  .je-about__portrait-grid { grid-template-columns: 1fr; grid-template-rows: auto; }
  .je-about__portrait-grid-img:nth-child(1) { grid-row: auto; aspect-ratio: 4 / 5; }
  .je-about__cta-panel { padding: 28px 20px; }
  .je-about__contact-row { flex-direction: column; align-items: flex-start; gap: 6px; }
}

/* ── ACCESSIBILITY — Skip-Link (WCAG 2.4.1 A) ──────────────────────────── */
/* Ursprünglich nicht vorhanden — hinzugefügt für Tastatur- und Screen-Reader-Navigation */
.je-skip-link {
  position: absolute;
  top: -100%;
  left: 16px;
  z-index: 10000;
  padding: 10px 20px;
  background: var(--je-text);
  color: var(--je-bg) !important;
  font-family: var(--je-font-body);
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.04em;
  text-decoration: none;
  border-radius: 0 0 6px 6px;
  transition: top 0s;
}
.je-skip-link:focus {
  top: 0;
  outline: 3px solid var(--je-gold);
  outline-offset: 0;
}

/* ── ACCESSIBILITY — Focus-Visible Ring (WCAG 2.4.7 AA) ────────────────── */
/* Tastatur-Fokus sichtbar machen, Maus-Fokus ausblenden.                   */
/* Überschreibt alle outline:none in :focus-Regeln oben.                    */
/* Ursprünglich: outline:none überall ohne :focus-visible-Ersatz            */
*:focus:not(:focus-visible) {
  outline: none !important;
}
*:focus-visible {
  outline: 2px solid var(--je-text) !important;
  outline-offset: 3px !important;
  border-radius: 2px;
}
/* OC4 stylesheet.css hat button:focus { outline:none !important } mit Spezifität 0,1,1.      */
/* Unsere *:focus-visible-Regel hat nur 0,1,0 → verliert bei !important trotz später Ladung.  */
/* Fix: gleiche Spezifität (button:focus-visible = 0,1,1) + späterere Kaskadenposition gewinnt */
button:focus-visible {
  outline: 2px solid var(--je-text) !important;
  outline-offset: 3px !important;
  border-radius: 2px !important;
}

/* Elemente in overflow:hidden/auto-Containern: outline-offset:3px wird weggesnitten.         */
/* Fix: negativer offset zeichnet den Ring nach innen (WCAG 2.4.7 AA konform).               */
/* je-product__main-wrap { overflow:hidden } schneidet den Link-Outline ab */
#je-product-main-link:focus-visible {
  outline: 3px solid var(--je-text) !important;
  outline-offset: -3px !important;
  border-radius: 0 !important;
}
/* je-product__thumbs { overflow:auto } schneidet Thumb-Button-Outlines ab */
.je-product__thumb-btn:focus-visible {
  outline: 2px solid var(--je-text) !important;
  outline-offset: -2px !important;
  border-radius: 1px !important;
}
/* je-masonry__item { overflow:hidden } schneidet Masonry-Link-Outline ab (Startseite) */
.je-masonry__link:focus-visible {
  outline: 3px solid var(--je-text) !important;
  outline-offset: -3px !important;
  border-radius: 0 !important;
}
/* je-editorial__image { overflow:hidden } schneidet Editorial-Link-Outline ab (Startseite, nach Hero) */
.je-editorial__image-link:focus-visible {
  outline: 3px solid var(--je-text) !important;
  outline-offset: -3px !important;
  border-radius: 0 !important;
}

/* Weiße Fotoränder wegblenden — Bootstrap CSS-Variable + mix-blend-mode
   (ersetzt lw_img_bg OCMod + stylesheet.css-Einträge) */
:root {
  --bs-body-bg: #FAF7F2;
  --bs-body-bg-rgb: 250, 247, 242;
}
.product-thumb img,
.img-thumbnail,
.je-masonry__item img,
.je-editorial__image img,
.je-week__image-wrap img,
.je-thumb__img-wrap img,
.je-product__img,
.je-product__thumb-btn img {
  mix-blend-mode: multiply;
}
.image.magnific-popup .img-thumbnail {
  padding: 0;
  background-color: transparent;
}

/* Hochkant-Video-Popup (9:16) */
.mfp-video-portrait .mfp-iframe-holder .mfp-content {
  max-width: 360px;
}
.mfp-video-portrait .mfp-iframe-scaler {
  padding-top: 177.78%; /* 9:16 */
}
