/* ── LOCAL FONTS ────────────────────────────────────────────────── */
/* font-display:swap — zeigt System-Font sofort + tauscht ein wenn Bebas geladen.
   Vorher 'block' verursachte bis zu 3s unsichtbare Hero-Headlines auf langsamen
   Verbindungen (FOIT) → schlechter LCP-Score. Mit Font-Preload im HTML head
   (siehe alle 10 *.html) ist das Swap meist unmerklich, FOIT war's nicht wert. */
@font-face{font-family:'Bebas Neue';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/bebas-neue-400.woff2) format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:300;font-display:swap;src:url(../fonts/dm-sans-300.woff2) format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/dm-sans-400.woff2) format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/dm-sans-500.woff2) format('woff2')}
@font-face{font-family:'DM Mono';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/dm-mono-400.woff2) format('woff2')}
@font-face{font-family:'DM Mono';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/dm-mono-500.woff2) format('woff2')}

/* ── RESET & VARS ───────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* ── SKIP-LINK (WCAG 2.4.1 — Bypass Blocks) ──────────────────────────
   Pre-Launch A11y-Fix 2026-05-09 / God Mode Round 5: vorher per JS
   in main.js (Z. ~6508) injected → bis main.js (398 KB) defer-geparst war,
   konnte ein bereits in HTML existierendes .vt-skip-link als sichtbarer
   Text oberhalb der Nav erscheinen (FOUC). Jetzt in style.css am Top —
   greift sofort beim ersten Render. */
.vt-skip-link{
  position:fixed; top:-200px; left:0; z-index:9999;
  background:#c8a96e; color:#0a0a0a;
  padding:.7rem 1.2rem;
  font-family:'DM Sans', sans-serif;
  font-size:.85rem; font-weight:600;
  text-decoration:none;
  border-radius:0 0 6px 0;
  transition:top .2s cubic-bezier(.2,.8,.2,1);
  /* Off-screen via clip-path bis :focus — nicht mit display:none, sonst
     ist der Link auch für Screen-Reader unsichtbar. */
  clip:rect(0,0,0,0); clip-path:inset(50%);
  overflow:hidden;
  width:1px; height:1px;
  white-space:nowrap;
}
.vt-skip-link:focus,
.vt-skip-link:focus-visible{
  top:0;
  outline:2px solid #fff;
  outline-offset:-4px;
  text-decoration:none;
  clip:auto; clip-path:none;
  overflow:visible;
  width:auto; height:auto;
}

/* ── PROMO BANNER (top-of-page coupon strip) ───────────────────── */
/* ════════════════════════════════════════════════════════════════════
   BANNER-LAYOUT — Sandbox + Promo stapeln
   ─────────────────────────────────────────────────────────────────────
   Beide Banner sind position:fixed am oberen Bildschirmrand. Die nav
   wird per CSS-Variable um die SUMME beider Höhen nach unten geschoben,
   damit nichts überlappt und alles klickbar bleibt.

   Reihenfolge (top→bottom): Sandbox (z:260) → Promo (z:250) → Nav.

   JS pflegt ZWEI Variablen auf <html>:
     --vt-sandbox-h  Höhe der Sandbox-Bar (0px wenn nicht aktiv)
     --vt-promo-h    Höhe des Promo-Banners (0px wenn nicht aktiv)
   ════════════════════════════════════════════════════════════════════ */
.vt-promo-banner{
  position:fixed;top:var(--vt-sandbox-h,0);left:0;right:0;z-index:250;
  background:#0c0c0c;
  box-shadow: inset 0 -1px 0 0 rgba(200,169,110,.18);
  font-family:'DM Sans',system-ui,-apple-system,sans-serif;
  color:rgba(245,245,240,.78);
  animation:vtPromoSlide .35s cubic-bezier(.2,.8,.2,1);
  font-size:13px;letter-spacing:-.005em;
  transition:top .15s ease;
}
/* Nav wird um die Summe beider Banner-Höhen nach unten geschoben.
   Pre-Launch UX-Fix 2026-05-09: -1px Overlap als Belt-and-Suspenders gegen
   subpixel-rounding zwischen Math.ceil(BCR.height) und render-height. Der
   Banner hat seinen Bottom-Akzent als inset box-shadow → wird vom Nav-Top
   überdeckt → keine doppelte Linie sichtbar, kein Lücke möglich. */
nav{top:calc(var(--vt-sandbox-h,0px) + var(--vt-promo-h,0px) - 1px)!important}
/* Mobile: Nav bleibt IMMER ganz oben (top:0). Promo-Banner wird UNTER die Nav geschoben.
   Verhindert dass das Mobile-Dropdown "in der Mitte" des Screens startet. */
@media(max-width:860px){
  nav{top:0!important}
  .vt-promo-banner{top:64px!important;z-index:150!important}
  .vt-sandbox-bar{top:0!important}
  .vt-promo-banner ~ nav{top:0!important}
  body{padding-top:64px!important}
}
@keyframes vtPromoSlide{from{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}
.vt-promo-inner{
  /* Phase A2 UX-Fix 2026-05-08: bündig mit nav (full-width, gleiches Padding-Pattern).
     Vorher max-width:1280px → ab >1280px Viewport visuell nicht aligned mit der nav. */
  max-width:none;margin:0;
  padding:9px clamp(1.25rem,4vw,4rem);
  padding-right:calc(clamp(1.25rem,4vw,4rem) + 32px); /* Platz für X-Close-Button */
  display:flex;align-items:center;justify-content:center;
  flex-wrap:wrap;gap:14px;
  position:relative;line-height:1.45;
}
.vt-promo-icon{
  display:inline-flex;align-items:center;justify-content:center;
  color:#c8a96e;flex-shrink:0;
  width:22px;height:22px;border-radius:50%;
  background:rgba(200,169,110,.08);
  border:1px solid rgba(200,169,110,.18);
}
.vt-promo-text{display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px;letter-spacing:-.005em}
.vt-promo-text strong{color:#fff;font-weight:600}
.vt-promo-mid{color:rgba(245,245,240,.65)}
.vt-promo-code-wrap{display:inline-flex;align-items:center;gap:5px;padding:0 4px}
.vt-promo-code-lbl{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:rgba(245,245,240,.38);font-weight:500}
.vt-promo-code{
  display:inline-block;
  background:transparent;color:#c8a96e;
  font-family:'DM Mono',monospace;
  font-size:12px;font-weight:600;
  padding:2px 8px;border-radius:4px;
  letter-spacing:.06em;
  border:1px dashed rgba(200,169,110,.55);
  vertical-align:baseline;
}
.vt-promo-sep{color:rgba(245,245,240,.22);margin:0 2px}
.vt-promo-until{color:rgba(245,245,240,.48);font-size:12px}
.vt-promo-date{color:rgba(245,245,240,.8);font-weight:500;font-size:12px}
.vt-promo-cta{
  display:inline-flex;align-items:center;gap:5px;
  font-family:'DM Sans',sans-serif;
  font-size:12.5px;font-weight:500;letter-spacing:-.005em;
  color:#c8a96e;text-decoration:none;
  border:none;background:transparent;
  padding:4px 0 4px 6px;
  white-space:nowrap;
  transition:color .15s, gap .2s;
  border-bottom:1px solid transparent;
}
.vt-promo-cta:hover{color:#d4b87a;border-bottom-color:rgba(212,184,122,.4);gap:8px;text-decoration:none}
.vt-promo-cta svg{transition:transform .2s}
.vt-promo-cta:hover svg{transform:translateX(2px)}
.vt-promo-close{
  /* Phase A2 UX-Fix 2026-05-08: right-Position passt jetzt zum nav-Padding (clamp adaptive) */
  position:absolute;right:clamp(.6rem,2vw,1rem);top:50%;transform:translateY(-50%);
  background:transparent;border:none;
  color:rgba(245,245,240,.35);
  cursor:pointer;padding:6px;border-radius:4px;
  display:inline-flex;align-items:center;justify-content:center;
  transition:color .15s, background .15s;
  line-height:0;
}
.vt-promo-close:hover{color:rgba(245,245,240,.8);background:rgba(200,180,140,.06)}
@media(max-width:760px){
  .vt-promo-inner{font-size:12px;padding:8px 38px 8px 12px;gap:8px;flex-direction:row;text-align:left;justify-content:flex-start}
  .vt-promo-text{gap:5px}
  .vt-promo-cta{font-size:11.5px}
  .vt-promo-close{right:8px}
}

/* ════════════════════════════════════════════════════════════════════
   SANDBOX-TOP-BAR (Stripe-/Vercel-Style „Test Mode"-Banner)
   Wenn aktiv: ersetzt visuell den Promo-Banner an gleicher Stelle.
   Stripe & Vercel benutzen dieses Pattern — universell verständlich.
   ════════════════════════════════════════════════════════════════════ */
.vt-sandbox-bar{
  position:fixed;top:0;left:0;right:0;z-index:260;
  background:linear-gradient(180deg, #2b1d05 0%, #1f1503 100%);
  border-bottom:1px solid rgba(232,179,0,.45);
  font-family:'DM Sans',system-ui,-apple-system,sans-serif;
  color:#f0d27a;
  animation:vtPromoSlide .35s cubic-bezier(.2,.8,.2,1);
  font-size:12.5px;letter-spacing:-.005em;
}
.vt-sandbox-inner{
  max-width:1280px;margin:0 auto;
  padding:8px 16px;
  display:flex;align-items:center;justify-content:center;
  gap:14px;flex-wrap:wrap;line-height:1.4;
}
.vt-sandbox-badge{
  display:inline-flex;align-items:center;gap:7px;
  background:rgba(232,179,0,.12);
  border:1px solid rgba(232,179,0,.4);
  color:#fad568;
  padding:3px 10px;border-radius:5px;
  font-family:'DM Mono',monospace;font-size:10.5px;font-weight:700;
  letter-spacing:.13em;text-transform:uppercase;
  flex-shrink:0;
}
.vt-sandbox-badge .vt-sandbox-dot{
  width:6px;height:6px;border-radius:50%;
  background:#fad568;
  box-shadow:0 0 0 3px rgba(250,213,104,.25);
  animation:vtSandboxPulse 2.4s ease-out infinite;
}
@keyframes vtSandboxPulse{0%,100%{box-shadow:0 0 0 3px rgba(250,213,104,.25)}50%{box-shadow:0 0 0 5px rgba(250,213,104,.1)}}
.vt-sandbox-msg{color:rgba(240,210,122,.92);font-weight:500}
.vt-sandbox-msg strong{color:#fad568;font-weight:600}
.vt-sandbox-end{
  display:inline-flex;align-items:center;gap:5px;
  background:transparent;border:1px solid rgba(232,179,0,.35);
  color:#fad568;
  font-family:'DM Sans',sans-serif;
  font-size:11.5px;font-weight:500;letter-spacing:-.005em;
  padding:4px 11px;border-radius:5px;cursor:pointer;
  transition:background .15s,color .15s,border-color .15s;
}
.vt-sandbox-end:hover{background:rgba(232,179,0,.12);color:#fff;border-color:rgba(232,179,0,.6)}
@media(max-width:760px){
  .vt-sandbox-inner{font-size:11.5px;padding:7px 12px;gap:10px}
  .vt-sandbox-badge{font-size:9.5px;padding:2px 8px}
}
:root{
  /* Render native UI (dropdowns, scrollbars, date pickers) in dark mode to match the dark theme. */
  color-scheme: dark;

  /* ════════════════════════════════════════════════════════════════
     LEGACY-FARBEN — bleiben damit existierender Code nicht bricht.
     Neue Komponenten sollen die SEMANTISCHEN Tokens unten verwenden.
     ════════════════════════════════════════════════════════════════ */
  /* Legacy-Tokens warm-getönt passend zu Gold */
  --black:#080807;--dark:#0e0e0c;--card:#161614;--border:#201f1a;
  --border2:#2a2920;--white:#f5f5f0;--muted:#a09888;
  --gold:#c8a96e;--gold2:#d4b87a;--glow:rgba(200,169,110,.18);

  /* ════════════════════════════════════════════════════════════════
     STRIPE-STYLE DESIGN-TOKENS (ETAPPE 1)
     ────────────────────────────────────────────────────────────────
     Konsistente Foundation für alle Komponenten. Inspiriert vom
     Stripe Dashboard Dark Theme: viel Whitespace, dezente Borders,
     scharfe Typografie, minimalistische Schatten, schnelle Motion.
     ════════════════════════════════════════════════════════════════ */

  /* SURFACES — warm-getönt passend zum Gold-Akzent.
     Nicht kalt-blau (#0a0a0c), sondern warm-neutral (#0a0a09).
     Das harmoniert mit dem Gold und wirkt luxuriös. */
  --surface-0:    #050505;  /* Scroll-BG / hinter allem            */
  --surface-1:    #0a0a09;  /* Page-BG (Sections)                  */
  --surface-2:    #100f0e;  /* Container / leichter erhöht         */
  --surface-3:    #171614;  /* Card / Panel                        */
  --surface-4:    #1d1c19;  /* Hover-State auf Cards               */
  --surface-5:    #24231f;  /* Active / pressed                    */

  /* TEXT — warm-getönt, harmoniert mit Gold */
  --text-1:       #f5f5f0;          /* Primary headings (warm-weiß)     */
  --text-2:       rgba(245,245,240,.80); /* Body text                   */
  --text-3:       rgba(245,245,240,.52); /* Secondary / labels          */
  --text-4:       rgba(245,245,240,.35); /* Muted / placeholders        */
  --text-5:       rgba(245,245,240,.18); /* Disabled / dividers         */

  /* BORDERS — warm-subtil, passend zum Gesamtton */
  --border-subtle:  rgba(200,180,140,.06);
  --border-default: rgba(200,180,140,.10);
  --border-strong:  rgba(200,180,140,.16);
  --border-focus:   var(--gold);

  /* BRAND — Gold-Akzent in Stufen */
  --brand:        #c8a96e;
  --brand-hover:  #d4b87a;
  --brand-soft:   rgba(200,169,110,.10);
  --brand-faint:  rgba(200,169,110,.04);
  --brand-ring:   rgba(200,169,110,.22);

  /* SEMANTIC STATES (warme Palette — kein Regenbogen) */
  --success:      #c8a96e;
  --success-soft: rgba(200,169,110,.10);
  --warning:      rgba(200,169,110,.85);
  --warning-soft: rgba(200,169,110,.08);
  --danger:       #c8907a;
  --danger-soft:  rgba(200,144,122,.10);
  --info:         #c8a96e;
  --info-soft:    rgba(200,169,110,.10);

  /* SPACING — 4pt-Grid (wie Tailwind/Polaris/Stripe) */
  --sp-0:    0;
  --sp-1:    4px;
  --sp-2:    8px;
  --sp-3:    12px;
  --sp-4:    16px;
  --sp-5:    20px;
  --sp-6:    24px;
  --sp-7:    28px;
  --sp-8:    32px;
  --sp-10:   40px;
  --sp-12:   48px;
  --sp-14:   56px;
  --sp-16:   64px;
  --sp-20:   80px;
  --sp-24:   96px;
  --sp-32:   128px;
  --sp-40:   160px;
  --sp-48:   192px;

  /* TYPE-SCALE — Apple-Style: SF Pro inspiriert, etwas größer als Stripe.
     Apple nutzt 17px Body, 21px Lead, 28px H3, 40px H2, 56px H1. */
  --fs-2xs:  10px;        /* meta-labels (rare)      */
  --fs-xs:   11.5px;      /* small chips, captions   */
  --fs-sm:   13px;        /* secondary text          */
  --fs-base: 14.5px;      /* body                    */
  --fs-md:   15.5px;      /* emphasized body         */
  --fs-lg:   17px;        /* lead text (Apple body)  */
  --fs-xl:   21px;        /* small headings (H4)     */
  --fs-2xl:  26px;        /* H3                      */
  --fs-3xl:  34px;        /* H2                      */
  --fs-4xl:  48px;        /* H1 medium               */
  --fs-5xl:  56px;        /* Hero headlines mobile   */
  --fs-6xl:  72px;        /* Hero headlines desktop  */
  --fs-7xl:  96px;        /* Display (Bebas Neue)    */

  /* TYPE-WEIGHTS */
  --fw-regular: 400;
  --fw-medium:  500;
  --fw-semi:    600;
  --fw-bold:    700;

  /* LINE-HEIGHTS — kontextual */
  --lh-tight:   1.15;     /* big display                 */
  --lh-snug:    1.3;      /* headings                    */
  --lh-normal:  1.55;     /* body                        */
  --lh-relaxed: 1.7;      /* long-form reading           */

  /* LETTER-SPACING — Apple-Style: sehr tight für Headlines (SF Pro Display Eigenschaft) */
  --ls-tight:   -.03em;   /* big display — Apple.com nutzt -.03em */
  --ls-snug:    -.015em;  /* headings                    */
  --ls-normal:  -.005em;  /* body (subpixel optical)     */
  --ls-wide:    .02em;    /* small text                  */
  --ls-wider:   .06em;    /* eyebrow labels uppercase    */
  --ls-widest:  .12em;    /* mono code-style             */

  /* RADIUS — 4 Stufen statt 7, konsistente Cards */
  --r-sm:   6px;
  --r-md:   8px;
  --r-lg:   12px;
  --r-xl:   16px;
  --r-2xl:  24px;
  --r-pill: 999px;

  /* SHADOWS — Stripe-Style: weich, kein harter Drop */
  --shadow-1:  0 1px 2px rgba(0,0,0,.4);
  --shadow-2:  0 2px 4px rgba(0,0,0,.3), 0 1px 2px rgba(0,0,0,.2);
  --shadow-3:  0 4px 12px rgba(0,0,0,.35), 0 2px 4px rgba(0,0,0,.2);
  --shadow-4:  0 8px 24px rgba(0,0,0,.45), 0 4px 8px rgba(0,0,0,.25);
  --shadow-5:  0 16px 48px rgba(0,0,0,.55), 0 8px 16px rgba(0,0,0,.3);
  --shadow-glow:0 0 0 4px var(--brand-ring);

  /* MOTION — schnell + natürlich (Stripe nutzt 150-250ms) */
  --dur-instant: 80ms;
  --dur-fast:    150ms;
  --dur-base:    220ms;
  --dur-slow:    400ms;
  --dur-slower:  600ms;

  /* EASE-CURVES — premium feel (kein "ease" / linear) */
  --ease-out:     cubic-bezier(.2, .8, .2, 1);     /* Standard für UI-Reaktionen */
  --ease-in:      cubic-bezier(.4, 0, 1, 1);       /* Page-Exits                  */
  --ease-in-out:  cubic-bezier(.4, 0, .2, 1);      /* Two-way Transitions         */
  --ease-bounce:  cubic-bezier(.34, 1.56, .64, 1); /* Subtile Pop-Effekte         */

  /* Z-INDEX — zentrale Skala damit nichts kollidiert */
  --z-base:    1;
  --z-raised:  10;
  --z-sticky:  100;
  --z-nav:     200;
  --z-banner:  250;
  --z-overlay: 900;
  --z-drawer:  1000;
  --z-modal:   1500;
  --z-toast:   2000;
  --z-popover: 3000;
}

/* ════════════════════════════════════════════════════════════════════
   GLOBAL RESETS & MOTION-RESPECT
   ════════════════════════════════════════════════════════════════════ */

/* Respect User-Setting für reduzierte Animationen (a11y, EU-Pflicht) */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

/* Smooth-Scroll global (außer für reduzierte Motion) */
html{ scroll-behavior: smooth; }

/* ════════════════════════════════════════════════════════════════════
   REVEAL-ON-SCROLL ANIMATIONS — Stripe-Style staggered fade-in
   Klassen die in JS via IntersectionObserver getoggelt werden.
   ════════════════════════════════════════════════════════════════════ */

/* Apple-Style Reveal: subtiler Versatz (12px statt 16px), längere Duration */
[data-reveal]{
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 500ms cubic-bezier(.32,.72,0,1),
              transform 500ms cubic-bezier(.32,.72,0,1);
  will-change: opacity, transform;
}
[data-reveal].in-view{
  opacity: 1;
  transform: translateY(0);
}

/* Stagger-Delay-Modifier — auf Children setzen für Cascade-Effect */
[data-reveal-delay="1"]{ transition-delay: 60ms; }
[data-reveal-delay="2"]{ transition-delay: 120ms; }
[data-reveal-delay="3"]{ transition-delay: 180ms; }
[data-reveal-delay="4"]{ transition-delay: 240ms; }
[data-reveal-delay="5"]{ transition-delay: 300ms; }
[data-reveal-delay="6"]{ transition-delay: 360ms; }

/* Variants: Slide-In von links/rechts statt von unten */
[data-reveal="left"]{ transform: translateX(-24px); }
[data-reveal="left"].in-view{ transform: translateX(0); }
[data-reveal="right"]{ transform: translateX(24px); }
[data-reveal="right"].in-view{ transform: translateX(0); }
[data-reveal="scale"]{ transform: scale(.96); }
[data-reveal="scale"].in-view{ transform: scale(1); }

/* ════════════════════════════════════════════════════════════════════
   UTILITY-KLASSEN — wiederverwendbar in allen Etappen
   ════════════════════════════════════════════════════════════════════ */

/* HOVER-LIFT — universeller Lift-Effekt für interactive Cards */
.vt-hover-lift{
  transition: transform var(--dur-fast) var(--ease-out),
              box-shadow var(--dur-fast) var(--ease-out),
              border-color var(--dur-fast) var(--ease-out);
}
.vt-hover-lift:hover{
  transform: translateY(-2px);
  box-shadow: var(--shadow-4);
  border-color: var(--border-strong);
}

/* SUBTLE-GLOW — für Premium-CTAs */
.vt-glow-on-hover{
  position: relative;
  transition: all var(--dur-fast) var(--ease-out);
}
.vt-glow-on-hover:hover{
  box-shadow: var(--shadow-glow);
}

/* SHIMMER — Loading-Skeleton Animation */
@keyframes vtShimmer{
  0%   { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}
.vt-skeleton{
  background: linear-gradient(90deg, var(--surface-3) 0%, var(--surface-4) 50%, var(--surface-3) 100%);
  background-size: 200% 100%;
  animation: vtShimmer 1.6s linear infinite;
  border-radius: var(--r-md);
}

/* PULSE — für Live-Indikatoren / Status-Dots */
@keyframes vtPulseRing{
  0%   { box-shadow: 0 0 0 0 currentColor; }
  70%  { box-shadow: 0 0 0 8px transparent; }
  100% { box-shadow: 0 0 0 0 transparent; }
}
.vt-pulse{
  animation: vtPulseRing 2s var(--ease-out) infinite;
}

/* FADE-IN-UP — Standalone Animation Klasse (z.B. nach AJAX-Load) */
@keyframes vtFadeInUp{
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}
.vt-fade-in-up{
  animation: vtFadeInUp var(--dur-base) var(--ease-out) both;
}

/* SCALE-IN — für Modal/Toast-Entries */
@keyframes vtScaleIn{
  from { opacity: 0; transform: scale(.94); }
  to   { opacity: 1; transform: scale(1); }
}
.vt-scale-in{
  animation: vtScaleIn var(--dur-base) var(--ease-out) both;
}

/* STAGGERED-CHILDREN — Cascade-Animation für Listen */
.vt-stagger > * {
  opacity: 0;
  animation: vtFadeInUp var(--dur-base) var(--ease-out) forwards;
}
.vt-stagger > *:nth-child(1){ animation-delay: 0ms; }
.vt-stagger > *:nth-child(2){ animation-delay: 60ms; }
.vt-stagger > *:nth-child(3){ animation-delay: 120ms; }
.vt-stagger > *:nth-child(4){ animation-delay: 180ms; }
.vt-stagger > *:nth-child(5){ animation-delay: 240ms; }
.vt-stagger > *:nth-child(6){ animation-delay: 300ms; }
.vt-stagger > *:nth-child(7){ animation-delay: 360ms; }
.vt-stagger > *:nth-child(8){ animation-delay: 420ms; }

/* FOCUS-RING — globaler Standard für Tastatur-Navigation (a11y) */
:focus-visible{
  outline: 2px solid var(--brand-ring);
  outline-offset: 2px;
  border-radius: var(--r-sm);
}

/* INLINE-SPINNER für Submit-Buttons (statt nur Text-Wechsel)
   Klasse `.vt-spinner` als 14px-Kreisel; nutzt currentColor.
   Verwendung: btn.classList.add('vt-loading'); → automatisch
   wird Inhalt via vtBtnLoading() in JS getauscht. */
.vt-spinner{
  display:inline-block;
  width:14px; height:14px;
  border:2px solid currentColor;
  border-top-color:transparent;
  border-radius:50%;
  animation:vtSpin .7s linear infinite;
  vertical-align:-2px;
  margin-right:6px;
}
@keyframes vtSpin{ to{ transform: rotate(360deg); } }

/* Loading-State für Buttons */
button.vt-loading,
.btn.vt-loading,
.btn-p.vt-loading,
.cart-checkout-btn.vt-loading{
  pointer-events:none;
  opacity:.85;
  cursor:wait;
}

/* SECTION-CONTAINER — Stripe-Style: konsistente Section-Padding */
.vt-section{
  padding: var(--sp-20) clamp(var(--sp-5), 5vw, var(--sp-16));
  position: relative;
}
.vt-section-narrow{ max-width: 720px; margin: 0 auto; }
.vt-section-default{ max-width: 1320px; margin: 0 auto; }
.vt-section-wide{ max-width: 1440px; margin: 0 auto; }

@media (max-width: 760px){
  .vt-section{ padding: var(--sp-14) var(--sp-5); }
}

/* SECTION-EYEBROW — Premium-Style kleine Label oberhalb von Headings */
.vt-eyebrow{
  display: inline-flex; align-items: center; gap: var(--sp-2);
  font-family: 'DM Mono', monospace;
  font-size: var(--fs-xs);
  letter-spacing: var(--ls-widest);
  text-transform: uppercase;
  color: var(--brand);
  font-weight: var(--fw-medium);
  margin-bottom: var(--sp-4);
}
.vt-eyebrow::before{
  content: '';
  width: 24px; height: 1px;
  background: currentColor;
  flex-shrink: 0;
  opacity: .6;
}

/* SECTION-HEADLINE — Stripe-Style: groß, kontrastiert, tight letter-spacing */
.vt-headline{
  font-family: 'DM Sans', sans-serif;
  font-size: clamp(var(--fs-3xl), 4vw, var(--fs-4xl));
  font-weight: var(--fw-semi);
  letter-spacing: var(--ls-tight);
  line-height: var(--lh-snug);
  color: var(--text-1);
  margin: 0 0 var(--sp-4);
}
.vt-headline-display{
  font-family: 'Bebas Neue', sans-serif;
  font-size: clamp(var(--fs-5xl), 8vw, var(--fs-7xl));
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-snug);
  line-height: var(--lh-tight);
  color: var(--text-1);
  margin: 0 0 var(--sp-5);
}
.vt-subhead{
  font-size: var(--fs-lg);
  font-weight: var(--fw-regular);
  line-height: var(--lh-normal);
  color: var(--text-3);
  max-width: 64ch;
  margin: 0 0 var(--sp-8);
}

/* DIVIDER — Hairline mit Mittel-Akzent (Stripe nutzt Hairlines überall) */
.vt-divider{
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--border-default), transparent);
  margin: var(--sp-12) 0;
  border: none;
}
html{
  -webkit-text-size-adjust:100%;
  overflow-y:scroll;
  overflow-x:hidden;
  /* Phase A2 UX-Fix 2026-05-08: garantiert 100% Width — verhindert
     "schwarzen Rand rechts" wenn child-elements horizontal überlaufen. */
  width:100%;max-width:100%;margin:0;padding:0;
}
body{
  background:var(--black);color:var(--white);
  font-family:'DM Sans',sans-serif;font-weight:400;line-height:1.7;
  letter-spacing:-.01em;
  overflow-x:clip;min-height:100vh;
  /* Phase A2 UX-Fix 2026-05-08: full width + kein margin/padding-right */
  width:100%;max-width:100%;margin:0;padding-right:0;padding-left:0;
  /* prevent subpixel rendering shifts */
  -webkit-font-smoothing:antialiased;
  /* Banner-Stack-Offset: schiebt ALLES (Hero, Sections, etc.) um die
     Summe beider Banner nach unten, damit nichts überdeckt wird.
     Fixed-Elemente (Nav) ignorieren das und nutzen ihre eigene calc()-Top. */
  padding-top:calc(var(--vt-sandbox-h,0px) + var(--vt-promo-h,0px));
  transition:padding-top .15s ease;
}
body.no-scroll{
  overflow:hidden;
  position:fixed;
  inset:0;
  width:100%;
  overscroll-behavior:none;
}

/* Selection */
::selection{background:var(--gold);color:var(--black)}

/* Scrollbar: warm-getönt */
::-webkit-scrollbar{width:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(200,180,140,.1);border-radius:5px}
::-webkit-scrollbar-thumb:hover{background:rgba(200,180,140,.18)}

/* Phase A2 UX-Polish 2026-05-08: clean dark — no gold-blob soup.
   Vorher 3 radial-gradients → wirkten unprofessionell wie "Lichthöfe".
   Jetzt: ein einzelner extrem subtiler oben-Accent (< 2% opacity) +
   sanfte langsame Drift-Animation (Aurora-Stil — premium ohne Ablenkung). */
body::before{
  content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(ellipse 70% 35% at 50% 0%, rgba(200,169,110,.025) 0%, transparent 70%);
  animation:vtAuroraDrift 24s ease-in-out infinite;
}
@keyframes vtAuroraDrift{
  0%, 100%{ transform: translateX(-3%); opacity: 1; }
  50%    { transform: translateX(3%);  opacity: .7; }
}
@media (prefers-reduced-motion: reduce){
  body::before{ animation: none; }
}

/* ── CUSTOM CURSOR — disabled to keep native OS cursor (prevents click-target mismatch) ── */
.cursor,.cursor-ring{display:none!important}

/* ── SCROLL TO TOP ──────────────────────────────────────────────── */
/* Sitzt LINKS UNTEN — Schnell-Kontakt-Bubble sitzt rechts unten.
   Komplett getrennte horizontale Positionen → kein Überlappen mehr,
   unabhängig von Bubble-Größe / iPhone-safe-area / Notch / Cookie-Banner. */
#scrollTop{
  position:fixed !important;
  bottom:max(20px, env(safe-area-inset-bottom, 20px)) !important;
  left:20px !important;
  right:auto !important;
  top:auto !important;
  z-index:400;
  width:42px;height:42px;
  background:rgba(22,22,22,.9);
  border:1px solid rgba(200,169,110,.25);
  color:var(--gold);font-size:1rem;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;border-radius:50%;
  opacity:0;pointer-events:none;
  transition:opacity .25s, transform .15s, background .15s, box-shadow .15s;
  backdrop-filter:blur(8px);
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
#scrollTop.show{opacity:1;pointer-events:all}
#scrollTop:hover{background:var(--gold);color:var(--black);transform:translateY(-2px);box-shadow:0 4px 14px rgba(200,169,110,.3)}
@media(max-width:600px){
  #scrollTop{
    bottom:max(16px, env(safe-area-inset-bottom, 16px)) !important;
    left:16px !important;
    width:40px;height:40px;
  }
}

/* ── CART FAB (floating button right-middle) ──────────────────────── */
#cartFab{
  position:fixed;top:50%;right:1.75rem;left:auto;bottom:auto;z-index:400;
  transform:translateY(-50%);
  width:54px;height:54px;
  background:#1a1917;
  border:1px solid rgba(200,169,110,.45);
  color:var(--gold);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;border-radius:50%;
  box-shadow:0 4px 18px rgba(0,0,0,.55), 0 0 0 1px rgba(200,169,110,.08);
  transition:all .2s ease;
  padding:0;
}
#cartFab:hover{background:var(--gold);color:var(--black);transform:translateY(-50%) scale(1.08);box-shadow:0 6px 22px rgba(200,169,110,.45)}
#cartFab svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#cartFabBadge{
  position:absolute;top:-4px;right:-4px;
  background:var(--gold,#c8a96e);color:#0a0a0a;
  min-width:20px;height:20px;border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  font-family:'DM Mono',monospace;font-size:.65rem;font-weight:700;
  border:2px solid #080808;padding:0 5px;box-sizing:border-box;
  animation:cartFabPulse .4s ease-out;
}
#cartFabBadge.hidden{display:none}
@keyframes cartFabPulse{0%{transform:scale(.6)}60%{transform:scale(1.2)}100%{transform:scale(1)}}
@media(max-width:700px){
  #cartFab{right:1rem;width:50px;height:50px}
  #cartFab svg{width:20px;height:20px}
}

/* ── NAV ────────────────────────────────────────────────────────── */
nav{
  position:fixed;top:0;left:0;right:0;z-index:200;
  height:64px;min-height:64px;max-height:64px;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 clamp(1.25rem,4vw,4rem);
  background:rgba(8,8,8,.92);
  backdrop-filter:blur(20px) saturate(1.4);
  -webkit-backdrop-filter:blur(20px) saturate(1.4);
  border-bottom:1px solid rgba(200,180,140,.06);
  overflow:hidden;
  transition:background var(--dur-fast,.15s) var(--ease-out,ease),
             box-shadow var(--dur-fast,.15s) var(--ease-out,ease);
}
nav.scrolled{
  background:rgba(8,8,7,.97);
  box-shadow:0 1px 3px rgba(0,0,0,.3);
}
/* LOGO */
.nav-logo{text-decoration:none;display:flex;align-items:center;gap:11px;position:relative;flex-shrink:0;height:44px}
/* LOGO SVG wrapper */
.logo-svg-wrap{
  width:40px;height:36px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  position:relative;
  isolation:isolate;
}
.logo-svg{width:40px;height:36px;display:block}
/* subtle glow ring – stays inside nav due to overflow:hidden */
.logo-svg-wrap::after{
  content:'';
  position:absolute;inset:-4px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(200,169,110,.35) 0%,transparent 70%);
  opacity:0;
  transition:opacity .25s;
  pointer-events:none;
}
.nav-logo:hover .logo-svg-wrap::after{opacity:1}
.logo-text{font-family:'Bebas Neue',sans-serif;font-size:1.6rem;letter-spacing:.14em;color:var(--white);line-height:1}
.logo-text em{font-style:normal;color:var(--gold)}
/* logo-glow removed – was bleeding outside nav */
/* NAV LINKS — Shopify Polaris-Style mit subtilen Pill-Hover */
.nav-links{display:flex;list-style:none;gap:2px;margin:0 auto}
.nav-links a{
  color:rgba(245,245,240,.6);text-decoration:none;
  font-family:'DM Sans',sans-serif;font-size:.82rem;font-weight:450;
  letter-spacing:-.005em;
  padding:.45rem .9rem;display:block;position:relative;
  border-radius:var(--r-md,8px);
  transition:color var(--dur-fast,.15s) var(--ease-out,ease),
             background var(--dur-fast,.15s) var(--ease-out,ease);
}
.nav-links a:hover{color:#f5f5f0;background:rgba(200,180,140,.05)}
.nav-links a.active{color:#f5f5f0;background:rgba(200,169,110,.08);font-weight:500}
/* Subtiler Gold-Dot unter aktivem Link */
.nav-links a.active::after{
  content:'';position:absolute;bottom:2px;left:50%;transform:translateX(-50%);
  width:4px;height:4px;border-radius:50%;
  background:var(--gold,#c8a96e);
  box-shadow:0 0 6px rgba(200,169,110,.4);
}
/* NAV RIGHT */
.nav-right{display:flex;align-items:center;gap:.6rem;flex-shrink:0}
/* USER AVATAR + DROPDOWN (public site) */
.nav-user{position:relative;display:flex;align-items:center;gap:.45rem;padding:.25rem;padding-right:.55rem;border-radius:8px;cursor:pointer;transition:background .15s;border:1px solid transparent}
.nav-user:hover{background:rgba(200,180,140,.04);border-color:var(--border2)}
.nav-user-avatar{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--gold),#a08648);display:flex;align-items:center;justify-content:center;font-family:'DM Sans',sans-serif;font-size:.65rem;font-weight:600;color:var(--black);flex-shrink:0}
.nav-user-name{font-size:.78rem;color:var(--white);font-weight:500;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav-user-chevron{color:var(--muted);flex-shrink:0;transition:transform .2s}
.nav-user.open .nav-user-chevron{transform:rotate(180deg)}
.nav-user-menu{position:absolute;top:calc(100% + 6px);right:0;background:var(--card);border:1px solid var(--border2);border-radius:10px;min-width:200px;box-shadow:0 12px 36px rgba(0,0,0,.6);z-index:210;overflow:hidden;display:none}
.nav-user-menu.open{display:block;animation:navMenuIn .15s ease}
@keyframes navMenuIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.nav-user-menu-hd{padding:.7rem 1rem;font-size:.68rem;color:var(--muted);border-bottom:1px solid var(--border)}
.nav-user-menu a,.nav-user-menu button{display:block;width:100%;text-align:left;padding:.6rem 1rem;font-size:.8rem;color:var(--white);background:none;border:none;cursor:pointer;font-family:'DM Sans',sans-serif;text-decoration:none;transition:background .12s}
.nav-user-menu a:hover,.nav-user-menu button:hover{background:rgba(200,180,140,.04)}
.nav-user-menu-sep{height:1px;background:var(--border);margin:.15rem 0}
.nav-user-menu .danger{color:var(--danger,#c8907a)}
.nav-user-menu .danger:hover{background:rgba(200,144,122,.08)}
/* MOBILE HAMBURGER */
.mob-btn{display:none;background:none;border:none;color:var(--white);font-size:1.4rem;cursor:pointer;padding:.4rem;line-height:1;flex-shrink:0}
@media(max-width:860px){.nav-user-name{display:none}}

/* MOBILE NAV — Dropdown unter der Nav.
   backdrop-filter auf <nav> erzeugt einen neuen containing-block,
   dadurch funktioniert position:fixed/absolute auf Children nicht normal.
   Lösung: overflow:visible + position:absolute + top:100% — das Dropdown
   hängt direkt am unteren Rand der Nav, egal wo die Nav steht. */
@media(max-width:860px){
  nav{
    overflow:visible !important;
  }
  .nav-links{
    display:flex;
    position:absolute;
    top:100%;
    left:0;right:0;
    background:rgba(8,8,8,.97);
    backdrop-filter:blur(24px) saturate(1.4);
    -webkit-backdrop-filter:blur(24px) saturate(1.4);
    border-bottom:1px solid rgba(200,180,140,.06);
    flex-direction:column;
    padding:.5rem .75rem;
    margin:0;gap:2px;
    max-height:0;
    overflow:hidden;
    opacity:0;
    pointer-events:none;
    transition:max-height .3s ease, opacity .2s ease, padding .2s ease;
    box-shadow:0 12px 32px rgba(0,0,0,.4);
  }
  .nav-links.open{
    max-height:500px;
    opacity:1;
    pointer-events:all;
    padding:.5rem .75rem;
  }
  .nav-links a{
    padding:.85rem 1.25rem;font-size:.9rem;font-weight:450;
    border-radius:8px;color:rgba(245,245,240,.6);
    letter-spacing:-.005em;
    transition:background .12s, color .12s;
  }
  .nav-links a:hover{background:rgba(200,180,140,.05);color:#f5f5f0}
  .nav-links a.active{background:rgba(200,169,110,.08);color:var(--gold,#c8a96e);font-weight:500}
  .nav-links a.active::after{display:none}
  .mob-btn{display:flex;align-items:center;justify-content:center}
}

/* ── LOGIN MODAL ────────────────────────────────────────────────── */
.modal-overlay{
  position:fixed;inset:0;z-index:500;
  background:rgba(0,0,0,.82);
  align-items:flex-start;justify-content:flex-end;
  padding:80px 1.5rem 0;
  opacity:0;display:none;transition:opacity .25s;
}
.modal-overlay.open{opacity:1;display:flex}
.modal-box{
  background:var(--card);
  border:1px solid var(--border2);
  width:100%;max-width:480px;
  padding:2rem;border-radius:12px;
  transform:translateY(-10px);transition:transform .25s;
  position:relative;box-shadow:0 16px 48px rgba(0,0,0,.5);
}
.modal-overlay.open .modal-box{transform:translateY(0)}
.modal-close{
  position:absolute;top:1rem;right:1rem;
  background:none;border:none;color:var(--muted);font-size:1.1rem;cursor:pointer;
  transition:color .2s;line-height:1;padding:.25rem;
}
.modal-close:hover{color:var(--white)}
.modal-title{font-family:'DM Sans',sans-serif;font-size:1.3rem;font-weight:600;margin-bottom:.25rem}
.modal-sub{font-family:'DM Sans',sans-serif;font-size:.72rem;color:var(--muted);margin-bottom:1.75rem;font-weight:400}
.modal-field{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem}
.modal-label{font-family:'DM Sans',sans-serif;font-size:.72rem;font-weight:500;color:var(--muted)}
.modal-input{background:var(--dark);border:1px solid var(--border2);color:var(--white);padding:.7rem .9rem;font-family:'DM Sans',sans-serif;font-size:.88rem;outline:none;transition:all .2s;width:100%;border-radius:6px}
.modal-input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(200,169,110,.12)}
/* MATH CAPTCHA */
.math-captcha{
  background:var(--dark);border:1px solid var(--border2);
  padding:.9rem 1rem;margin-bottom:1rem;border-radius:8px;
}
.math-label{font-family:'DM Sans',sans-serif;font-size:.72rem;font-weight:500;color:var(--muted);margin-bottom:.7rem}
.math-row{display:flex;align-items:center;gap:.75rem}
.math-question{font-family:'DM Mono',monospace;font-size:1.15rem;font-weight:600;letter-spacing:.04em;color:var(--gold);flex-shrink:0}
.math-input{flex:1;background:var(--card);border:1px solid var(--border2);color:var(--white);padding:.5rem .75rem;font-family:'DM Mono',monospace;font-size:.9rem;outline:none;transition:border-color .2s;border-radius:6px;-webkit-appearance:none;-moz-appearance:textfield}
.math-input::-webkit-outer-spin-button,.math-input::-webkit-inner-spin-button{-webkit-appearance:none}
.math-input:focus{border-color:var(--gold)}
.math-hint{font-family:'DM Mono',monospace;font-size:.65rem;margin-top:.5rem;min-height:1rem;transition:color .2s}
.modal-submit{
  background:var(--white);color:var(--black);border:none;
  width:100%;padding:.8rem;
  font-family:'DM Sans',sans-serif;font-size:.85rem;font-weight:600;
  cursor:pointer;transition:all .2s;margin-top:.25rem;border-radius:6px;
}
.modal-submit:hover{background:var(--gold);box-shadow:0 4px 12px rgba(200,169,110,.3)}
.modal-submit:active{transform:translateY(0)}
.modal-submit:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}
.modal-error{font-size:.75rem;color:var(--danger,#c8907a);font-family:'DM Mono',monospace;margin-top:.75rem;display:none}
.modal-cooldown{font-size:.72rem;color:var(--muted);font-family:'DM Mono',monospace;margin-top:.5rem;display:none}

/* ── HERO ────────────────────────────────────────────────────────── */
.hero{
  min-height:100vh;display:flex;align-items:center;
  padding:calc(64px + 4rem) clamp(1.25rem,5vw,4rem) 4rem;
  position:relative;overflow:hidden;
  /* isolate hero layer to prevent repaint bleed from nav */
  isolation:isolate;
}
/* GRID BACKGROUND */
.hero-grid{
  position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(237,237,237,.015) 1px,transparent 1px),
    linear-gradient(90deg,rgba(237,237,237,.015) 1px,transparent 1px);
  background-size:64px 64px;
  pointer-events:none;
}
.hero::after{content:'';position:absolute;bottom:0;left:0;right:0;height:120px;background:linear-gradient(transparent,var(--black));pointer-events:none;z-index:1}
/* PARTICLES */
.hero-particles{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.pt{
  position:absolute;border-radius:50%;background:var(--gold);
  animation:ptRise linear infinite;opacity:0;
}
@keyframes ptRise{
  0%{transform:translateY(100vh) scale(.5);opacity:0}
  8%{opacity:.6}88%{opacity:.3}
  100%{transform:translateY(-80px) scale(1.2);opacity:0}
}
/* HERO INNER GRID */
.hero-inner{
  position:relative;z-index:1;width:100%;
  display:grid;
  grid-template-columns:1fr min(360px,38%);
  gap:clamp(2rem,4vw,4rem);
  align-items:center;
}
.hero-tag{
  font-family:'DM Sans',sans-serif;font-size:.78rem;font-weight:500;letter-spacing:.1em;
  text-transform:uppercase;color:var(--gold);
  margin-bottom:1.5rem;display:flex;align-items:center;gap:1rem;
  animation:fadeUp .8s ease .15s both;
}
.hero-tag::before{content:'';width:36px;height:1px;background:var(--gold);flex-shrink:0}

/* ── ANIMATED TITLE ─────────────────────────────────────────────── */
.hero-h1{
  font-family:'Bebas Neue',sans-serif;
  font-size:clamp(5rem,12vw,11rem);
  line-height:.88;letter-spacing:.02em;
  margin-bottom:1.5rem;
  animation:fadeUp .8s ease .3s both;
  display:block;position:relative;
}
.title-row{display:block;position:relative;overflow:visible}
/* Each letter animates – only color changes, no text-shadow (causes Chrome reflow) */
.tl{
  display:inline-block;
  animation:glowPulse 5s ease-in-out infinite;
  will-change:color;
}
.tl:nth-child(1){animation-delay:0s}
.tl:nth-child(2){animation-delay:.18s}
.tl:nth-child(3){animation-delay:.36s}
.tl:nth-child(4){animation-delay:.54s}
@keyframes glowPulse{
  0%,100%{color:var(--white)}
  50%{color:#d4b87a}
}
.title-row2 .tl{color:var(--muted)}
.title-row2 .tl:nth-child(1){animation-delay:.7s}
.title-row2 .tl:nth-child(2){animation-delay:.88s}
.title-row2 .tl:nth-child(3){animation-delay:1.06s}
.title-row2 .tl:nth-child(4){animation-delay:1.24s}
@keyframes glowPulse2{
  0%,100%{color:var(--muted)}
  50%{color:#b89858}
}
.title-row2 .tl{animation-name:glowPulse2}
/* Scan line */
.scan-line{
  position:absolute;bottom:2px;left:0;
  width:40px;height:1.5px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
  animation:scanMove 5s ease-in-out infinite;
  pointer-events:none;
}
@keyframes scanMove{
  0%{left:-50px;opacity:0}5%{opacity:1}
  80%{opacity:.8}100%{left:110%;opacity:0}
}

/* Apple-Style: Hero subtitle — eleganter, mehr Luft */
.hero-sub{
  font-size:clamp(.95rem,1.5vw,1.1rem);color:var(--text-3);
  max-width:440px;margin-bottom:2.5rem;line-height:1.7;
  letter-spacing:-.005em;
  animation:fadeUp .8s ease .45s both;
}
.hero-btns{display:flex;gap:.9rem;flex-wrap:wrap;animation:fadeUp .8s ease .6s both}

/* HERO SCROLL INDICATOR */
.hero-scroll{
  position:absolute;bottom:2.5rem;right:clamp(1.25rem,4vw,4rem);
  font-family:'DM Mono',monospace;font-size:.62rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--muted);
  display:flex;flex-direction:column;align-items:center;gap:.5rem;
  writing-mode:vertical-rl;animation:fadeUp 1s ease 1s both;
}
.hero-scroll::after{content:'';width:1px;height:52px;background:linear-gradient(var(--muted),transparent)}

/* ── NEWS BOX ───────────────────────────────────────────────────── */
.news-box{
  background:#131210;
  border:1px solid rgba(200,180,140,.08);border-radius:12px;
  animation:fadeUp .8s ease .75s both;
  overflow:hidden;
}
.news-box-hd{
  padding:.9rem 1.2rem;border-bottom:1px solid var(--border);
  display:flex;align-items:center;gap:.6rem;
}
.news-box-dot{width:6px;height:6px;background:var(--gold);border-radius:50%;animation:blink 2s ease-in-out infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.3}}
.news-box-tag{font-family:'DM Mono',monospace;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.news-items{display:flex;flex-direction:column}
.news-item{padding:1rem 1.2rem;border-bottom:1px solid var(--border);transition:background .2s}
.news-item:last-child{border-bottom:none}
.news-item:hover{background:rgba(200,169,110,.03);border-left:2px solid var(--gold)}
.ni-date{font-family:'DM Mono',monospace;font-size:.58rem;color:var(--gold);letter-spacing:.1em;margin-bottom:.25rem}
.ni-title{font-size:.85rem;font-weight:500;color:var(--white);margin-bottom:.25rem;line-height:1.3}
.ni-body{font-size:.78rem;color:var(--muted);line-height:1.55}
.news-link{
  display:inline-block;margin-top:.6rem;
  font-family:'DM Mono',monospace;font-size:.62rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--gold);text-decoration:none;
  border-bottom:1px solid rgba(200,169,110,.3);
  transition:border-color .2s,color .2s;
}
.news-link:hover{color:var(--white);border-color:var(--white)}
.ni-link{display:inline-block;margin-top:.5rem;font-family:'DM Mono',monospace;font-size:.62rem;letter-spacing:.08em;color:var(--gold);text-decoration:none;border-bottom:1px solid rgba(200,169,110,.3);transition:border-color .2s}
.ni-link:hover{border-color:var(--gold)}

/* ── BUTTONS — DEPRECATED, ersetzt durch ETAPPE 2 (Stripe-Style) Override
   Block weiter unten in der Datei. Definition hier entfernt damit nichts
   mit der neuen Foundation kollidiert (war: weißer BG + alter Hover-Style). */

/* ── PAGE HERO (v4 clean — wie Homepage Hero, aber Höhe behalten) ── */
.page-hero{
  padding:calc(64px + 4rem) clamp(1.25rem,5vw,4rem) 3.5rem;
  position:relative;overflow:hidden;
  border-bottom:none;
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:2rem;
  min-height:380px;
  isolation:isolate;
  background:var(--black);
}
/* Inner Content zentriert halten auf Ultrawide — wie alle Sections.
   Da .page-hero selbst ein Grid ist, nutzen wir padding-trick. */
@media(min-width:1400px){
  .page-hero{
    padding-left:calc((100vw - 1320px) / 2);
    padding-right:calc((100vw - 1320px) / 2);
  }
}
/* Subtiler oberer Akzent — identisch zu Homepage .hero::before */
.page-hero::before{
  content:'';position:absolute;top:0;left:0;right:0;height:50%;
  pointer-events:none;z-index:-1;
  background:
    radial-gradient(ellipse 60% 100% at 50% 0%,
      rgba(200,169,110,.04) 0%,
      transparent 70%);
}
/* Feiner Gold-Gradient-Trenner unten (statt 1px solid Border) */
.page-hero::after{
  content:'';position:absolute;bottom:0;left:0;right:0;height:1px;
  pointer-events:none;
  background:linear-gradient(90deg,
    transparent 0%,
    rgba(200,169,110,.18) 20%,
    rgba(200,169,110,.32) 50%,
    rgba(200,169,110,.18) 80%,
    transparent 100%);
}
/* Grid-Pattern raus (war zu viel Noise — wie auf Homepage) */
.page-hero-grid{
  display:none !important;
}
.page-hero-content{position:relative;z-index:1}

/* ── ANIMATED VAROTECH – right side of subpage heroes ───────────── */
.page-hero-brand{
  position:relative;z-index:1;
  text-align:right;
  user-select:none;
  pointer-events:none;
  line-height:.88;
}
.page-hero-brand .ph-row{
  display:block;
  position:relative;
  font-family:'Bebas Neue',sans-serif;
  /* Fixed breakpoints instead of vw-based clamp to prevent hero size jumps when scrollbar width changes */
  font-size:5rem;
  letter-spacing:.04em;
}
@media(min-width:1280px){.page-hero-brand .ph-row{font-size:6.5rem}}
@media(min-width:1600px){.page-hero-brand .ph-row{font-size:8rem}}
/* VARO (ph-row 1): weiss, sanftes Atmen — identisch zu .hero-h1 .title-row .tl */
.page-hero-brand .ph-tl{
  display:inline-block;
  color:var(--white) !important;
  -webkit-text-fill-color:var(--white) !important;
  background:none !important;
  filter: drop-shadow(0 0 1px rgba(255,255,255,.12))
          drop-shadow(0 1px 2px rgba(0,0,0,.5));
  animation: vtVaroBreathe 4.8s cubic-bezier(.4,0,.6,1) infinite !important;
  will-change: filter, opacity;
}
.page-hero-brand .ph-tl:nth-child(1){animation-delay:0s}
.page-hero-brand .ph-tl:nth-child(2){animation-delay:.06s}
.page-hero-brand .ph-tl:nth-child(3){animation-delay:.12s}
.page-hero-brand .ph-tl:nth-child(4){animation-delay:.18s}

/* TECH (ph-row2): solides Gold + Glow-Pulse — identisch zu Homepage */
.page-hero-brand .ph-row2 .ph-tl{
  color:transparent !important;
  -webkit-text-fill-color:transparent !important;
  background:linear-gradient(180deg,
    #e4c280 0%,
    #c8a96e 60%,
    #b09556 100%) !important;
  -webkit-background-clip:text !important;
          background-clip:text !important;
  filter: drop-shadow(0 0 6px rgba(200,169,110,.16))
          drop-shadow(0 1px 2px rgba(0,0,0,.5));
  animation: vtTechBreathe 4.8s cubic-bezier(.4,0,.6,1) infinite !important;
  animation-name: vtTechBreathe !important;
}
.page-hero-brand .ph-row2 .ph-tl:nth-child(1){animation-delay:.9s}
.page-hero-brand .ph-row2 .ph-tl:nth-child(2){animation-delay:.96s}
.page-hero-brand .ph-row2 .ph-tl:nth-child(3){animation-delay:1.02s}
.page-hero-brand .ph-row2 .ph-tl:nth-child(4){animation-delay:1.08s}

@media (prefers-reduced-motion: reduce){
  .page-hero-brand .ph-tl,
  .page-hero-brand .ph-row2 .ph-tl{
    animation:none !important;
    opacity:1 !important;
  }
}
.page-hero-brand .ph-scan{
  position:absolute;bottom:2px;right:0;
  width:36px;height:1.5px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
  animation:scanMoveR 5s ease-in-out infinite;
}
@keyframes scanMoveR{
  0%{right:110%;opacity:0}5%{opacity:1}80%{opacity:.8}100%{right:-5%;opacity:0}
}
.page-hero-brand .ph-tag{
  font-family:'DM Mono',monospace;
  font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold);margin-top:.75rem;
  display:flex;align-items:center;justify-content:flex-end;gap:.75rem;
}
.page-hero-brand .ph-tag::after{
  content:'';width:32px;height:1px;background:var(--gold);flex-shrink:0;
}

/* Page-Hero Eyebrow + Title — konsistent mit Homepage Hero-Tag */
.page-tag{
  font-family:'DM Mono',monospace;
  font-size:var(--fs-xs,11.5px);
  font-weight:var(--fw-medium,500);
  letter-spacing:var(--ls-widest,.14em);
  text-transform:uppercase;
  color:var(--brand,#c8a96e);
  margin-bottom:var(--sp-4,16px);
  display:inline-flex;align-items:center;gap:var(--sp-3,12px);
}
.page-tag::before{content:'';width:28px;height:1px;background:currentColor;flex-shrink:0;opacity:.6}
.page-title{
  font-family:'DM Sans',sans-serif;
  font-size:clamp(2.5rem,6vw,4.5rem);
  font-weight:700;
  line-height:.95;
  letter-spacing:-.03em;
  color:#fff;
  animation:fadeUp .7s ease both;
}
@media(min-width:1280px){.page-title{font-size:5rem}}
@media(min-width:1600px){.page-title{font-size:6rem}}

@media(max-width:860px){
  .page-hero{grid-template-columns:1fr;height:auto;min-height:220px}
  .page-hero-brand{display:none}
}

/* ── SECTIONS — Original-Block entfernt, neue Definition siehe ~Z. 1918+
       (Etappe-5 mit Design-Tokens). Vorher hatten wir 2 konkurrierende
       Definitionen die per Cascade-Order gewonnen haben — verwirrend +
       Maintenance-Risiko. Single source of truth jetzt. ── */
.sec-alt{background:linear-gradient(180deg,var(--dark) 0%,rgba(12,12,12,.95) 100%)}

/* ── SERVICE CARDS GRID ─────────────────────────────────────────── */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border-radius:8px;overflow:hidden}
.svc-card{background:var(--card);padding:2rem;position:relative;overflow:hidden;transition:background .25s,box-shadow .25s}
.svc-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--gold);opacity:0;transition:opacity .25s}
.svc-card:hover{background:#0f0f0f;box-shadow:0 8px 32px rgba(200,169,110,.08)}
.svc-card:hover::before{opacity:1}
.svc-num{font-family:'Bebas Neue',sans-serif;font-size:2.8rem;color:#3a3a3a;line-height:1;margin-bottom:.9rem;transition:color .3s}
.svc-card:hover .svc-num{color:var(--gold)}
.svc-title{font-size:.95rem;font-weight:500;margin-bottom:.6rem;color:var(--white)}
.svc-desc{font-size:.82rem;color:var(--muted);line-height:1.7}

/* ── SERVICE FULL (leistungen page) ─────────────────────────────── */
/* ── SERVICE-FEATURES (Leistungen-Page) — Shopify-Polaris Card-Pattern ── */
.sf{
  display:grid;grid-template-columns:72px 1fr;gap:0;
  background:var(--surface-3);
  border:1px solid var(--border-subtle);
  border-radius:var(--r-lg);
  margin-bottom:var(--sp-3);
  overflow:hidden;
  transition:border-color var(--dur-fast) var(--ease-out),
             background var(--dur-fast) var(--ease-out),
             transform var(--dur-fast) var(--ease-out),
             box-shadow var(--dur-fast) var(--ease-out);
  max-width:1320px;margin-left:auto;margin-right:auto;
}
.sf:hover{
  border-color:rgba(200,169,110,.32);
  background:var(--surface-4);
  transform:translateY(-2px);
  box-shadow:var(--shadow-3);
}
.sf-num{
  display:flex;align-items:flex-start;justify-content:center;padding-top:var(--sp-6);
  font-family:'DM Mono',monospace;font-size:var(--fs-xs);font-weight:var(--fw-medium);
  color:var(--brand);letter-spacing:var(--ls-widest)
}
.sf-body{padding:var(--sp-6) var(--sp-7);position:relative;overflow:hidden}
.sf-body::before{content:'';position:absolute;top:0;left:0;bottom:0;width:2px;background:var(--brand);opacity:0;transition:opacity var(--dur-fast) var(--ease-out)}
.sf:hover .sf-body::before{opacity:1}
.sf-title{font-family:'DM Sans',sans-serif;font-size:var(--fs-lg);font-weight:var(--fw-semi);letter-spacing:var(--ls-snug);color:var(--text-1);margin-bottom:var(--sp-2)}
.sf-desc{font-size:var(--fs-sm);color:var(--text-3);line-height:var(--lh-relaxed);max-width:640px}
.sf-tags{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-4)}
.sf-tag{
  border:1px solid var(--border-default);padding:var(--sp-1) var(--sp-3);
  font-family:'DM Mono',monospace;font-size:var(--fs-2xs);letter-spacing:var(--ls-wider);
  color:var(--text-4);text-transform:uppercase;border-radius:var(--r-sm);
  transition:border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);
}
.sf:hover .sf-tag{border-color:rgba(200,169,110,.25);color:var(--text-3)}

.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border);margin-bottom:2rem}
.stat{background:var(--card);padding:1.25rem}
.stat-n{font-family:'Bebas Neue',sans-serif;font-size:2rem;color:var(--gold);line-height:1}
.stat-l{font-size:.68rem;color:var(--muted);margin-top:.2rem;font-family:'DM Mono',monospace;letter-spacing:.06em}
.tags{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:1.25rem}
.tag{border:1px solid var(--border2);padding:.25rem .8rem;font-family:'DM Mono',monospace;font-size:.65rem;letter-spacing:.08em;color:var(--muted);text-transform:uppercase;transition:border-color .2s,color .2s}
.tag:hover{border-color:var(--gold);color:var(--gold)}

/* ── ABOUT PAGE ─────────────────────────────────────────────────── */
.about-main{display:grid;grid-template-columns:1fr 1.4fr;gap:clamp(3rem,6vw,6rem);align-items:start}
/* Left column: image + stats side by side */
.about-left{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;align-items:start}
.about-box{
  background:var(--card);border:1px solid var(--border2);
  display:flex;align-items:center;justify-content:center;
  font-family:'Bebas Neue',sans-serif;font-size:6rem;color:var(--border2);
  position:relative;overflow:hidden;
  max-width:280px;width:100%;
}
.about-box img{
  width:100%;height:auto;
  object-fit:cover;object-position:center top;
  display:none;
}
.about-box img.loaded{display:block}
.corner{position:absolute;width:32px;height:32px}
.corner.tl{top:-6px;left:-6px;border-top:2px solid var(--gold);border-left:2px solid var(--gold)}
.corner.br{bottom:-6px;right:-6px;border-bottom:2px solid var(--gold);border-right:2px solid var(--gold)}
.stats-block{display:flex;flex-direction:column;gap:1px;background:var(--border)}
.stat{background:var(--card);padding:1.1rem 1.25rem;position:relative;overflow:hidden}
/* animated gold accent line on left */
.stat::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--gold);opacity:0;transition:opacity .3s}
.stat:hover::before{opacity:1}
.stat:hover .stat-n{color:var(--gold);transform:scale(1.05);transition:all .3s}
/* entrance animation */
.stat.animate .stat-n{animation:statPop .5s cubic-bezier(.34,1.56,.64,1) both}
@keyframes statPop{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}
.about-body h2{font-family:'Bebas Neue',sans-serif;font-size:clamp(2.2rem,5vw,3.8rem);letter-spacing:.03em;margin-bottom:1.75rem;line-height:1}
.about-body p{font-size:.88rem;color:var(--muted);line-height:1.9;margin-bottom:1.1rem}
.skills-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);margin-top:2rem}
.skill-item{background:var(--card);padding:1.1rem 1.4rem;cursor:default}
.skill-name{font-size:.85rem;font-weight:500;font-family:'DM Sans',sans-serif;color:var(--white);letter-spacing:.04em}
.skill-item:hover .skill-name{color:var(--gold);text-shadow:0 0 18px rgba(200,169,110,.55),0 0 40px rgba(200,169,110,.25)}
@keyframes skillGlow{0%,100%{color:var(--white);text-shadow:none}50%{color:var(--gold);text-shadow:0 0 18px rgba(200,169,110,.6),0 0 40px rgba(200,169,110,.3)}}
.skill-item.glow .skill-name{animation:skillGlow 2.5s ease-in-out infinite}

/* ── CTA ────────────────────────────────────────────────────────── */
.cta-strip{
  background:var(--white);color:var(--black);
  padding:clamp(3rem,6vw,5rem) clamp(1.25rem,5vw,4rem);
  display:flex;align-items:center;justify-content:space-between;
  gap:2rem;flex-wrap:wrap;border-top:2px solid rgba(200,169,110,.3);
}
/* ↓ Alte Override-Regeln entfernt — die ETAPPE-4-Definition weiter unten
     liefert das richtige Stripe-Style Aurora-CTA + Gold-Button. */

/* ── KONTAKT ────────────────────────────────────────────────────── */
.form-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:clamp(2.5rem,6vw,6rem);align-items:start}
.fi h3{font-family:'Bebas Neue',sans-serif;font-size:1.8rem;margin-bottom:1.75rem}
.ci{display:flex;gap:.9rem;margin-bottom:1.4rem}
.ci-icon{width:40px;height:40px;flex-shrink:0;border:1px solid var(--border2);display:flex;align-items:center;justify-content:center;font-size:.95rem}
.ci-label{font-size:.65rem;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-family:'DM Mono',monospace}
.ci-val{font-size:.88rem;color:var(--white);margin-top:.1rem}
.note-box{background:var(--card);border:1px solid var(--border2);padding:1.25rem;margin-top:1.75rem}
.note-tag{font-family:'DM Mono',monospace;font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gold);margin-bottom:.6rem}
.note-text{font-size:.82rem;color:var(--muted);line-height:1.75}
/* FORM */
.cf{display:flex;flex-direction:column;gap:1rem}
.fg{display:flex;flex-direction:column;gap:.4rem}
.fr{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.fl{font-family:'DM Mono',monospace;font-size:.62rem;font-weight:500;color:rgba(245,245,240,.38);letter-spacing:.08em;text-transform:uppercase}
.fi-in,.fi-ta{background:rgba(200,180,140,.04);border:1px solid rgba(200,180,140,.10);color:#f5f5f0;padding:.85rem 1rem;font-family:'DM Sans',sans-serif;font-size:.88rem;outline:none;transition:border-color .15s,box-shadow .15s,background .15s;width:100%;-webkit-appearance:none;border-radius:10px;letter-spacing:-.005em}
.fi-in::placeholder,.fi-ta::placeholder{color:rgba(245,245,240,.25)}
.fi-in:hover,.fi-ta:hover{border-color:rgba(200,180,140,.16);background:rgba(200,180,140,.05)}
/* Pre-Launch UX-Fix 2026-05-09: doppelte :focus-Regel überschrieb den Premium-
   Box-Shadow → Focus-State wirkte karg auf allen Forms. Jetzt ein Selector
   mit dem vollen Premium-Glow. */
.fi-in:focus,.fi-ta:focus{
  border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(200,169,110,.12);
  background:rgba(200,180,140,.05);
  outline:none;
}
.fi-ta{resize:vertical;min-height:120px;line-height:1.6}
.fcheck{display:flex;align-items:flex-start;gap:.7rem}
.fcheck input[type=checkbox]{width:16px;height:16px;margin-top:2px;flex-shrink:0;accent-color:var(--gold);cursor:pointer;border-radius:4px}
.fcheck label{font-size:.78rem;color:rgba(245,245,240,.45);line-height:1.6}
.fcheck a{color:var(--gold)}
/* Pre-Launch UX-Fix 2026-05-09: .f-submit war white statt Premium-Gold.
   Jetzt: identischer Style zu .btn-p — Gold-Gradient + Inset-Highlight + Hover-Lift. */
.f-submit{
  background:linear-gradient(180deg, var(--gold-warm, #e4c280) 0%, var(--gold-base, #c8a96e) 100%);
  color:#1a1a1a;
  border:1px solid rgba(200,169,110,.6);
  padding:.85rem 1.85rem;
  font-family:'DM Sans',sans-serif;
  font-size:.9rem;
  font-weight:600;
  cursor:pointer;
  align-self:flex-start;
  margin-top:.4rem;
  border-radius:999px;
  isolation:isolate;
  box-shadow:
    inset 0 1px 0 0 rgba(255,255,255,.18),
    0 1px 2px rgba(0,0,0,.18);
  transition: transform .25s cubic-bezier(.2,.9,.3,1),
              box-shadow .25s cubic-bezier(.2,.9,.3,1),
              filter .25s cubic-bezier(.2,.9,.3,1);
}
.f-submit:hover{
  transform: translateY(-1px);
  filter: brightness(1.05);
  box-shadow:
    inset 0 1px 0 0 rgba(255,255,255,.22),
    0 4px 14px rgba(200,169,110,.22),
    0 1px 3px rgba(0,0,0,.2);
}
.f-submit:active{
  transform: translateY(0);
  filter: brightness(.96);
}
.f-submit:disabled{
  opacity:.45;
  cursor:not-allowed;
  transform:none;
}
.f-hint{font-size:.72rem;color:var(--muted)}

/* ── PRICING — Premium Pricing-Card ──────────────────────────────── */
.pricing{
  background:var(--surface-3);
  border:1px solid var(--border-subtle);
  border-radius:var(--r-lg);
  padding:var(--sp-8) var(--sp-10);
  margin-top:var(--sp-10);
  display:grid;grid-template-columns:1fr 1fr;
  gap:var(--sp-10);
  max-width:1320px;margin-left:auto;margin-right:auto;
  position:relative;
  overflow:hidden;
}
.pricing::before{
  content:'';position:absolute;top:0;left:var(--sp-10);right:var(--sp-10);height:1px;
  background:linear-gradient(90deg, transparent, rgba(200,169,110,.4), transparent);
  pointer-events:none;
}
.pricing h2,.pricing h3{font-family:'DM Sans',sans-serif;font-size:var(--fs-2xl);font-weight:var(--fw-semi);letter-spacing:var(--ls-snug);margin-bottom:var(--sp-4);color:var(--text-1)}
.pricing p{font-size:var(--fs-sm);color:var(--text-3);line-height:var(--lh-relaxed)}
.price-big{font-family:'Bebas Neue',sans-serif;font-size:clamp(3rem,5vw,4rem);color:var(--brand);line-height:1;margin:var(--sp-4) 0 var(--sp-2)}
.price-sub{font-size:var(--fs-xs);color:var(--text-4);font-weight:var(--fw-regular);letter-spacing:var(--ls-normal)}
@media(max-width:760px){
  .pricing{grid-template-columns:1fr;gap:var(--sp-6);padding:var(--sp-6)}
}

/* ── LEGAL ──────────────────────────────────────────────────────── */
.legal{max-width:760px}
/* Pre-Launch Round 6: .legal h2 = same style as .legal h3 (Heading-Hierarchie-Fix
   ohne visuellen Regressions-Risiko). h2 ist semantisch korrekt für Section-Headings
   unter dem h1 page-title — Lighthouse a11y-Score steigt. */
.legal h2,.legal h3{font-size:.9rem;font-weight:500;color:var(--white);margin:2.25rem 0 .5rem;padding-bottom:.35rem;border-bottom:1px solid var(--border)}
.legal h2:first-child,.legal h3:first-child{margin-top:0}
.legal p,.legal li{font-size:.85rem;color:var(--muted);line-height:1.85;margin-bottom:.45rem}
.legal a{color:var(--gold);text-decoration:none}
.legal ul{padding-left:1.4rem}
.lg{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;margin-bottom:2.5rem}
.lb h4{font-family:'DM Sans',sans-serif;font-size:.72rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);margin-bottom:.7rem}
.lb p,.lb a{font-size:.85rem;color:var(--muted);line-height:1.9;display:block;text-decoration:none}

/* ── FOOTER ─────────────────────────────────────────────────────── */
/* footer + .ft Etappe-1-Definitionen entfernt (siehe Z. 2449+ für Single
   Source of Truth mit Design-Tokens). Vorher: 2× footer + 2× .ft mit unter-
   schiedlichen border-Farben → visuelles Inkonsistenz-Risiko. */
.fl-logo{font-family:'Bebas Neue',sans-serif;font-size:1.7rem;letter-spacing:.14em;color:var(--white);margin-bottom:.9rem;display:block}
.fl-logo em{font-style:normal;color:var(--gold)}
.fb p{font-size:.82rem;color:var(--muted);line-height:1.8;max-width:240px}
/* Pre-Launch UX-Fix 2026-05-09: HTML nutzt h3 in den Footer-Spalten — CSS
   stylte aber nur h4. Beide Selectors abdecken damit Browser-Default nicht greift. */
.fc h3,.fc h4{font-family:'DM Sans',sans-serif;font-size:.7rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);margin-bottom:1rem}
.fc a,.fc p{display:block;font-size:.82rem;color:var(--muted);text-decoration:none;line-height:2;transition:color .2s}
.fc a:hover{color:var(--white)}
.fb2{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem}
.f-copy{font-size:.72rem;color:var(--muted)}
.f-legal{display:flex;gap:1.75rem}
.f-legal a{font-size:.72rem;color:var(--muted);text-decoration:none;transition:color .2s;position:relative}
.f-legal a::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:1px;background:var(--gold);transition:width .25s}
.f-legal a:hover{color:var(--white)}
.f-legal a:hover::after{width:100%}

/* ── REVEAL ─────────────────────────────────────────────────────── */
.reveal{opacity:0;transition:opacity .4s ease;pointer-events:none}
.reveal.visible{opacity:1;pointer-events:auto}
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}

/* ── ANIMATED COUNTERS ──────────────────────────────────────────── */
.counter-strip{background:linear-gradient(180deg,rgba(200,169,110,.06) 0%,transparent 100%);border-top:1px solid rgba(200,169,110,.12);border-bottom:1px solid var(--border);padding:clamp(2.5rem,5vw,4rem) clamp(1.25rem,5vw,4rem)}
.counter-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1.5rem,3vw,3rem);max-width:900px;margin:0 auto;text-align:center}
.counter-item{padding:1rem 0}
.counter-number{font-family:'Bebas Neue',sans-serif;font-size:clamp(2.5rem,6vw,4.5rem);color:var(--gold);line-height:1;letter-spacing:.03em;transition:color .3s}
.counter-label{font-family:'DM Sans',sans-serif;font-size:.7rem;font-weight:400;color:var(--muted);margin-top:.5rem}
.counter-item.counted .counter-number{text-shadow:0 0 30px rgba(200,169,110,.4)}
@media(max-width:600px){.counter-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem}}

/* REVIEWS-CSS entfernt — die alte Grid-basierte Reviews-Sektion wurde durch
   den Marquee-Carousel ersetzt (siehe main.js _vtInjectMarqueeCss → .vt-rev-card).
   Die alten Klassen .review-grid/.review-card/.review-stars/.review-text/
   .review-author/.review-avatar/.review-name/.review-company/.review-badge
   sind jetzt Dead-Code und wurden entfernt um CSS-Bloat zu reduzieren. */

/* ── FAQ ACCORDION ─────────────────────────────────────────────── */
#faqSection{border-top:1px solid rgba(200,169,110,.12)}
@media(max-width:860px){#faqSection > div{grid-template-columns:1fr !important}}
.faq-list{max-width:100%}
.faq-item{background:var(--card);border:1px solid var(--border);border-radius:4px;margin-bottom:.6rem;overflow:hidden;transition:border-color .2s}
.faq-item:hover,.faq-item.open{border-color:rgba(200,169,110,.25)}
.faq-q{display:flex;justify-content:space-between;align-items:center;padding:1.1rem 1.35rem;cursor:pointer;font-size:.9rem;font-weight:400;color:var(--white);transition:color .2s;gap:1rem}
.faq-q:hover{color:var(--gold)}
.faq-arrow{font-family:'Bebas Neue',sans-serif;font-size:1.3rem;color:var(--gold);transition:transform .25s;flex-shrink:0}
.faq-item.open .faq-arrow{transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s ease}
.faq-item.open .faq-a{max-height:500px;padding:0 1.35rem 1.25rem}
.faq-a p{font-size:.82rem;color:var(--muted);line-height:1.8}


/* ── COOKIE BANNER ─────────────────────────────────────────────── */
.cookie-banner{position:fixed;bottom:0;left:0;right:0;background:var(--card);border-top:1px solid var(--border);padding:1rem clamp(1.25rem,5vw,4rem);display:flex;align-items:center;justify-content:space-between;gap:1.5rem;z-index:100;transform:translateY(100%);transition:transform .35s ease;font-size:.78rem;color:var(--muted);line-height:1.6}
.cookie-banner.show{transform:translateY(0)}
.cookie-banner a{color:var(--gold)}
.cookie-btn{background:var(--gold);color:var(--black);border:none;padding:.55rem 1.5rem;font-family:'DM Sans',sans-serif;font-size:.78rem;font-weight:600;cursor:pointer;border-radius:6px;white-space:nowrap;flex-shrink:0;transition:all .2s}
.cookie-btn:hover{filter:brightness(1.1)}
@media(max-width:600px){.cookie-banner{flex-direction:column;text-align:center;gap:.75rem;padding:1rem}}

/* ── REVIEW MODAL ──────────────────────────────────────────────── */
.review-modal-stars{display:flex;gap:.35rem;margin:1rem 0}
.review-modal-stars span{font-size:2rem;cursor:pointer;color:var(--border2);transition:color .15s}
.review-modal-stars span.active,.review-modal-stars span:hover{color:var(--gold)}
.review-modal-stars:hover span{color:var(--gold)}
.review-modal-stars span:hover~span{color:var(--border2)}

/* ── RESPONSIVE ─────────────────────────────────────────────────── */

/* TABLET: 600–860px */
@media(max-width:860px){
  .hero-inner{grid-template-columns:1fr}
  .news-box{display:none}
  .hero-scroll{display:none}
  .svc-grid{grid-template-columns:1fr 1fr}
  .stats-row{grid-template-columns:repeat(4,1fr)}
  .about-main{grid-template-columns:1fr;gap:2.5rem}
  .about-left{grid-template-columns:1fr}
  .about-box{max-width:100%}
  .form-grid{grid-template-columns:1fr;gap:2.5rem}
  .fr{grid-template-columns:1fr}
  .pricing{grid-template-columns:1fr;gap:1.75rem}
  .cta-strip{flex-direction:column;align-items:flex-start}
  .ft{grid-template-columns:1fr 1fr;gap:1.75rem}
  .fb{grid-column:1/-1}
  .skills-grid{grid-template-columns:1fr}
  .sf{grid-template-columns:1fr}
  .sf-num{display:none}
  .sf-body{padding:1.5rem}
  .lg{grid-template-columns:1fr;gap:1.5rem}
}

/* MOBILE: <600px */
@media(max-width:600px){
  .svc-grid{grid-template-columns:1fr}
  .stats-row{grid-template-columns:1fr 1fr}
  .ft{grid-template-columns:1fr}
  .hero-btns{flex-direction:column;align-items:flex-start}
  .btn-p,.btn-s{width:100%;text-align:center}
  #scrollTop{bottom:1.25rem;right:1.25rem;width:40px;height:40px;font-size:.9rem}
}

/* ── TOAST NOTIFICATION ──────────────────────────────────────────── */
.vt-toast{
  position:fixed;bottom:1.5rem;right:1.5rem;z-index:100000;
  display:flex;flex-direction:column-reverse;gap:.6rem;pointer-events:none;
}
.vt-toast-item{
  background:#1a1918;border:1px solid rgba(200,180,140,.1);
  padding:.75rem 1rem;min-width:280px;max-width:380px;
  font-size:.82rem;font-family:'DM Sans',sans-serif;
  display:flex;align-items:center;gap:.65rem;
  opacity:0;transform:translateY(12px);
  transition:opacity .2s ease-out,transform .2s ease-out;
  pointer-events:all;border-radius:10px;
  box-shadow:0 8px 32px rgba(0,0,0,.5),0 0 0 1px rgba(200,180,140,.05);
  position:relative;overflow:hidden;
}
.vt-toast-progress{
  position:absolute;bottom:0;left:0;height:2px;border-radius:0 0 10px 10px;
  animation:vtToastProgress linear forwards;
}
.vt-toast-item.toast-ok .vt-toast-progress{background:rgba(200,169,110,.5)}
.vt-toast-item.toast-warn .vt-toast-progress{background:rgba(200,169,110,.5)}
.vt-toast-item.toast-error .vt-toast-progress{background:rgba(200,144,122,.55)}
@keyframes vtToastProgress{from{width:100%}to{width:0%}}
.vt-toast-item.show{opacity:1;transform:translateY(0)}
.vt-toast-item.hide{opacity:0;transform:translateY(12px)}
.vt-toast-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px}
.vt-toast-item.toast-ok .vt-toast-icon{background:rgba(200,169,110,.12);color:var(--gold,#c8a96e)}
.vt-toast-item.toast-warn .vt-toast-icon{background:rgba(200,169,110,.1);color:rgba(200,169,110,.8)}
.vt-toast-item.toast-error .vt-toast-icon{background:rgba(200,144,122,.12);color:var(--danger,#c8907a)}
.vt-toast-body{flex:1;min-width:0}
.vt-toast-title{font-weight:600;font-size:.8rem;color:rgba(245,245,240,.9);line-height:1.3}
.vt-toast-msg{color:rgba(245,245,240,.45);font-size:.72rem;line-height:1.5;margin-top:.15rem}
.vt-toast-close{background:none;border:none;color:rgba(245,245,240,.25);cursor:pointer;padding:4px;flex-shrink:0;display:flex;align-items:center;transition:color .15s}
.vt-toast-close:hover{color:rgba(245,245,240,.6)}
.vt-toast-item.toast-ok{border-left:none}
.vt-toast-item.toast-warn{border-left:none}
.vt-toast-item.toast-error{border-left:none}

/* ── CART GLOBAL ──────────────────────────────────────────────── */
/* Hide the legacy nav cart button - replaced by floating #cartFab */
#cartBtn{display:none !important}
.cart-btn{background:rgba(200,180,140,.04);border:1px solid rgba(200,180,140,.10);color:var(--white);padding:.45rem .95rem;
  cursor:pointer;font-family:'DM Sans',sans-serif;font-size:.78rem;font-weight:500;letter-spacing:-.005em;
  transition:border-color var(--dur-fast,.15s) var(--ease-out,ease),color var(--dur-fast,.15s) var(--ease-out,ease),background var(--dur-fast,.15s) var(--ease-out,ease),transform var(--dur-fast,.15s) var(--ease-out,ease);display:inline-flex;align-items:center;gap:.45rem;border-radius:8px}
.cart-btn:hover{border-color:rgba(200,169,110,.45);color:var(--gold);background:rgba(200,169,110,.06);transform:translateY(-1px)}
.cart-count{background:var(--gold);color:var(--black);border-radius:50%;width:16px;height:16px;
  display:inline-flex;align-items:center;justify-content:center;font-size:.6rem;font-weight:700}
.cart-count.hidden{display:none}
/* ──────────────────────────────────────────────────────────────────
   DRAWERS  ·  Shopify-Polaris-inspirierter Side-Drawer-Look
   Verwendet von: Cart, Account, Checkout, Order-Tracking
   ────────────────────────────────────────────────────────────────── */
.cart-drawer{
  position:fixed;right:0;top:0;
  height:100vh;height:100dvh;
  width:480px;max-width:100%;
  /* Premium-Restyle: Surface-Token statt hartcodiertem #0c0c0b → konsistent mit
     dem .acct-* Premium-Design. Funktion/Markup unverändert. */
  background:var(--surface-2,#100f0e);
  border-left:1px solid var(--border-default,rgba(200,180,140,.10));
  box-shadow:none;
  z-index:1000;
  transform:translateX(100%);
  transition:transform .28s cubic-bezier(.4,0,.2,1),
             box-shadow .28s cubic-bezier(.4,0,.2,1);
  display:flex;flex-direction:column;
  font-family:'DM Sans',-apple-system,BlinkMacSystemFont,sans-serif;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  /* Drawer liegt bei z-index:1000 ÜBER dem Promo-Banner (z:250) und der Nav (z:200).
     Deshalb top:0 + volle Viewport-Höhe — kein Offset nötig. */
}
.cart-drawer.open{
  transform:translateX(0);
  box-shadow:var(--shadow-5,-16px 0 48px rgba(0,0,0,.55));
}
/* Drag-Handle / Grabber oben am Drawer — visuelles Signal „swipe to close"
   auf Mobile. Sichtbar nur unter 760px. */
.cart-drawer::before{
  content:'';
  position:absolute;top:6px;left:50%;transform:translateX(-50%);
  width:36px;height:4px;border-radius:2px;
  background:rgba(200,180,140,.18);
  pointer-events:none;
  z-index:5;
  display:none;
}
@media(max-width:760px){
  .cart-drawer::before{display:block}
  .cart-hd{padding-top:18px}
}
/* SECURITY-FIX (Go-Live Audit 2026-05-23): CSS :hover statt inline onmouseover/onmouseout */
#accountFooter [data-action="doLogout"]:hover{
  border-color:rgba(200,180,140,.15)!important;
  color:rgba(245,245,240,.6)!important;
  background:rgba(200,180,140,.05)!important;
}
.cart-overlay{
  position:fixed;inset:0;
  background:rgba(0,0,0,.55);
  z-index:999;opacity:0;display:none;
  transition:opacity .25s ease;
}
.cart-overlay.open{
  opacity:1;display:block;
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
}

/* ════════════════════════════════════════════════════════════════════
   FAVORITEN-HERZ auf der Produktkarte (.ref-card)
   ─────────────────────────────────────────────────────────────────────
   Wird von main.js _renderRefGrid in .ref-card-img-wrap injiziert.
   Warmes Theme; gefüllter Gold-Zustand via .is-fav. style.css ist auf
   shop.html geladen → greift dort, wo die .ref-card-Karten gerendert werden.
   ════════════════════════════════════════════════════════════════════ */
.ref-card-fav{
  position:absolute; top:.6rem; right:.6rem; z-index:4;
  width:34px; height:34px; padding:0;
  display:flex; align-items:center; justify-content:center;
  border-radius:50%; cursor:pointer;
  background:rgba(8,8,7,.55); border:1px solid rgba(200,180,140,.18);
  color:rgba(245,245,240,.78);
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
  -webkit-tap-highlight-color:transparent; touch-action:manipulation;
  transition:color .15s var(--ease-out,ease),background .15s var(--ease-out,ease),
             border-color .15s var(--ease-out,ease),transform .15s var(--ease-out,ease);
}
.ref-card-fav:hover{ color:var(--gold,#c8a96e); border-color:rgba(200,169,110,.4); background:rgba(8,8,7,.72); }
.ref-card-fav:active{ transform:scale(.9); }
.ref-card-fav:focus-visible{ outline:2px solid var(--gold,#c8a96e); outline-offset:2px; }
.ref-card-fav svg{ pointer-events:none; transition:fill .15s var(--ease-out,ease); }
.ref-card-fav.is-fav{ color:var(--gold,#c8a96e); border-color:rgba(200,169,110,.5); background:rgba(200,169,110,.14); }
.ref-card-fav.is-fav svg{ fill:var(--gold,#c8a96e); }

/* ════════════════════════════════════════════════════════════════════
   ACCOUNT SIDEBAR  ·  Shopify-Polaris-Craft im warmen VaroTech-Theme
   ─────────────────────────────────────────────────────────────────────
   Vertikale Konto-Navigation für /konto.html. Desktop: sticky unter der
   fixed-Nav (folgt den Banner-Offsets via --vt-*-h, analog nav{top:calc()}).
   Mobile (≤860px): Off-Canvas von LINKS — nutzt body.no-scroll + .acct-overlay,
   analog zur .cart-drawer-Mechanik (z:999 Overlay / z:1000 Drawer).
   Aktiv-Zustand spiegelt .nav-links a.active (Z. 778), hier als linker
   Gold-Balken (statt Gold-Dot, passend für vertikale Navigation).
   ════════════════════════════════════════════════════════════════════ */
.acct-layout{ display:flex; align-items:flex-start; gap:0; width:100%; min-height:calc(100dvh - 64px - var(--vt-sandbox-h,0px) - var(--vt-promo-h,0px)); }

/* Konto-Seite hat keine .page-hero → 64px Nav-Höhe selbst reservieren.
   (body base reserviert nur die Banner-Offsets, nicht die fixed-Nav.) */
body.acct-page{ padding-top:calc(64px + var(--vt-sandbox-h,0px) + var(--vt-promo-h,0px)); }

/* ── Mobile-Topbar (Konto-Menü-Button) ── */
.acct-topbar{ display:none; }
.acct-topbar__btn{
  display:inline-flex; align-items:center; gap:.55rem;
  min-height:44px; padding:.5rem .85rem;
  background:var(--surface-3); color:var(--white);
  border:1px solid var(--border-default); border-radius:var(--r-md);
  font-family:'DM Sans',sans-serif; font-size:.85rem; font-weight:500; cursor:pointer;
  transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out);
}
.acct-topbar__btn:hover{ background:var(--surface-4); border-color:var(--border-strong); }
.acct-topbar__btn:focus-visible{ outline:2px solid var(--gold); outline-offset:2px; }
.acct-topbar__btn svg{ width:20px; height:20px; }

/* ── Sidebar / Drawer ── */
.acct-sidebar{
  flex:0 0 280px; width:280px;
  display:flex; flex-direction:column;
  background:var(--surface-2);
  border-right:1px solid var(--border-default);
  position:sticky;
  top:calc(64px + var(--vt-sandbox-h,0px) + var(--vt-promo-h,0px));
  height:calc(100dvh - 64px - var(--vt-sandbox-h,0px) - var(--vt-promo-h,0px));
  min-height:0;
}
.acct-sidebar__head{ display:flex; align-items:center; gap:.5rem; height:56px; padding:0 1.25rem; flex-shrink:0; }
.acct-sidebar__head .logo-text{ font-size:1.45rem; }
.acct-sidebar__close{
  display:none; margin-left:auto; width:40px; height:40px; place-items:center;
  background:none; border:0; color:var(--text-3); border-radius:var(--r-md); cursor:pointer;
  transition:color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out);
}
.acct-sidebar__close:hover{ color:var(--white); background:rgba(200,180,140,.06); }
.acct-sidebar__close:focus-visible{ outline:2px solid var(--gold); outline-offset:2px; }
.acct-sidebar__close svg{ width:20px; height:20px; }

/* ── Account-Chip ── */
.acct-chip{
  display:flex; align-items:center; gap:.75rem;
  margin:.25rem .75rem; padding:.6rem .7rem;
  background:var(--surface-3); border:1px solid var(--border-default);
  border-radius:var(--r-lg); text-decoration:none; flex-shrink:0;
  transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out);
}
.acct-chip:hover{ background:var(--surface-4); border-color:var(--border-strong); }
.acct-chip:focus-visible{ outline:2px solid var(--gold); outline-offset:2px; }
.acct-chip__avatar{
  width:40px; height:40px; border-radius:50%; flex-shrink:0; display:grid; place-items:center;
  background:linear-gradient(135deg,var(--gold2),#a08648);
  color:var(--black); font-family:'DM Sans',sans-serif; font-weight:600; font-size:.8rem;
}
.acct-chip__txt{ min-width:0; }
.acct-chip__name{ display:block; font-size:.875rem; font-weight:500; color:var(--white); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.acct-chip__mail{ display:block; font-size:.75rem; color:var(--text-3); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.acct-chip__chev{ margin-left:auto; color:var(--text-4); flex-shrink:0; }

/* ── Nav (scrollbar) ── */
.acct-nav{ flex:1 1 auto; min-height:0; overflow-y:auto; padding:.25rem .75rem 1rem; }
.acct-nav__section{
  margin:0; padding:1.25rem .75rem .4rem;
  font-size:.6875rem; font-weight:500; letter-spacing:.12em; text-transform:uppercase; color:var(--text-3);
}
.acct-nav__list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:2px; }
.acct-nav__link{
  position:relative; display:flex; align-items:center; gap:.75rem;
  padding:.5rem .7rem; min-height:40px; width:100%;
  border-radius:var(--r-md); border:0; background:none; text-align:left; cursor:pointer;
  font-family:'DM Sans',sans-serif; font-size:.875rem; font-weight:400; line-height:1;
  color:var(--text-2); text-decoration:none; -webkit-tap-highlight-color:transparent;
  transition:color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out);
}
.acct-nav__link:hover{ color:var(--white); background:rgba(200,180,140,.05); }
.acct-nav__link:active{ background:rgba(200,180,140,.08); }
.acct-nav__link:focus-visible{ outline:2px solid var(--gold); outline-offset:2px; }
.acct-nav__link.is-active{ color:var(--white); font-weight:500; background:rgba(200,169,110,.08); }
.acct-nav__link.is-active::before{
  content:''; position:absolute; left:0; top:50%; transform:translateY(-50%);
  width:3px; height:20px; border-radius:0 4px 4px 0;
  background:var(--gold); box-shadow:0 0 8px rgba(200,169,110,.45);
}
.acct-nav__ico{ width:20px; height:20px; flex-shrink:0; color:var(--text-3); transition:color var(--dur-fast) var(--ease-out); }
.acct-nav__link:hover .acct-nav__ico{ color:var(--text-2); }
.acct-nav__link.is-active .acct-nav__ico{ color:var(--gold); }
.acct-nav__badge{
  margin-left:auto; display:inline-flex; align-items:center; justify-content:center;
  min-width:20px; height:20px; padding:0 6px; border-radius:999px;
  font-size:.6875rem; font-weight:600; font-variant-numeric:tabular-nums;
  color:var(--gold2); background:rgba(200,169,110,.12); border:1px solid rgba(200,169,110,.2);
}
.acct-nav__chevron{ margin-left:auto; width:16px; height:16px; flex-shrink:0; color:var(--text-4); transition:transform var(--dur-base) var(--ease-out); }
.acct-nav__link[aria-expanded="true"] .acct-nav__chevron{ transform:rotate(180deg); }

/* ── Sub-Navigation (Akkordeon) ── */
.acct-subnav{
  list-style:none; margin:.15rem 0 .15rem 1.4rem; padding-left:.5rem;
  border-left:1px solid var(--border-strong);
  display:flex; flex-direction:column; gap:2px;
}
.acct-subnav[hidden]{ display:none; }
.acct-subnav__link{
  position:relative; display:flex; align-items:center; gap:.6rem;
  padding:.4rem .7rem; min-height:34px; border-radius:var(--r-md);
  font-family:'DM Sans',sans-serif; font-size:.8125rem; color:var(--text-3); text-decoration:none;
  transition:color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out);
}
.acct-subnav__link::before{ content:''; width:4px; height:4px; border-radius:50%; flex-shrink:0; background:rgba(245,245,240,.3); transition:background var(--dur-fast),box-shadow var(--dur-fast); }
.acct-subnav__link:hover{ color:var(--white); background:rgba(200,180,140,.04); }
.acct-subnav__link:focus-visible{ outline:2px solid var(--gold); outline-offset:2px; }
.acct-subnav__link.is-active{ color:var(--white); font-weight:500; }
.acct-subnav__link.is-active::before{ background:var(--gold); box-shadow:0 0 6px rgba(200,169,110,.5); }

/* ── Fußbereich (Hilfe + Abmelden) ── */
.acct-foot{ flex-shrink:0; border-top:1px solid var(--border-default); padding:.6rem .75rem; }
.acct-nav__link--danger{ color:rgba(200,144,122,.85); }
.acct-nav__link--danger:hover{ color:var(--danger,#c8907a); background:rgba(200,144,122,.08); }
.acct-nav__link--danger .acct-nav__ico{ color:rgba(200,144,122,.7); }
.acct-nav__link--danger:hover .acct-nav__ico{ color:var(--danger,#c8907a); }
.acct-nav__link--danger:focus-visible{ outline-color:var(--danger,#c8907a); }

/* ── Main + Panels ── */
.acct-main{ flex:1 1 auto; min-width:0; padding:2rem clamp(1.25rem,4vw,3rem); }
.acct-panel[hidden]{ display:none; }
.acct-eyebrow{ font-family:'DM Sans',sans-serif; font-size:.7rem; font-weight:500; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); }
.acct-title{ margin:.3rem 0 0; font-size:clamp(1.5rem,3vw,1.8rem); font-weight:600; letter-spacing:-.01em; color:var(--white); }
.acct-lead{ margin:.5rem 0 0; max-width:60ch; font-size:.95rem; line-height:1.6; color:var(--text-3); }
.acct-cards{ margin-top:1.75rem; display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:1rem; }
.acct-stat{ padding:1.25rem; background:var(--surface-2); border:1px solid var(--border-default); border-radius:var(--r-lg); }
.acct-stat__label{ margin:0; font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; color:var(--text-3); }
.acct-stat__value{ display:block; margin:.5rem 0 0; font-family:'Bebas Neue',sans-serif; font-size:2rem; letter-spacing:.03em; color:var(--white); }
.acct-stat__unit{ font-family:'DM Sans',sans-serif; font-size:.85rem; letter-spacing:0; color:var(--text-3); }
/* Stat-Karte als Launcher-Button — öffnet den jeweiligen getesteten Drawer */
.acct-stat--btn{
  display:block; width:100%; text-align:left; cursor:pointer;
  font:inherit; color:inherit; -webkit-tap-highlight-color:transparent;
  transition:border-color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out);
}
.acct-stat--btn:hover{ border-color:var(--border-strong); background:var(--surface-3); }
.acct-stat--btn:active{ transform:translateY(1px); }
.acct-stat--btn:focus-visible{ outline:2px solid var(--gold); outline-offset:2px; }
.acct-stat--btn .acct-stat__value{ font-family:'DM Sans',sans-serif; font-size:1.1rem; font-weight:600; color:var(--gold); }
.acct-stat--btn .acct-stat__value #acctStatCart{ font-family:'Bebas Neue',sans-serif; font-size:1.6rem; color:var(--white); vertical-align:-1px; }
.acct-stub{ margin-top:1.5rem; padding:2rem; text-align:center; background:var(--surface-1); border:1px dashed var(--border-strong); border-radius:var(--r-lg); }
.acct-stub p{ margin:0; font-size:.85rem; color:var(--text-3); }
.acct-stub code{ font-family:'DM Mono',monospace; color:var(--gold); }

/* === Konto-Drawer Premium-Features (Favoriten · Login-Verlauf · 2FA) =========
   WICHTIG: Der Drawer-Hintergrund ist --surface-2 (#100f0e). Karten und Listen
   liegen deshalb eine Stufe höher auf --surface-3 (#171614), sonst verschwinden
   sie kontrastlos im Drawer. Typografie px-basiert wie der restliche Drawer
   (13/12.5/11.5px), Gold-Akzente, 8px-Radius (--r-md). Kompakt für 480px Breite.
   ───────────────────────────────────────────────────────────────────────── */

/* ── Favoriten · horizontale Listen-Zeilen (Shopify-Saved-Style, drawer-gerecht) ── */
.acct-fav-list{ display:flex; flex-direction:column; gap:8px; margin-top:4px; }
.acct-fav-card{ display:flex; align-items:center; gap:11px; padding:9px; background:var(--surface-3); border:1px solid var(--border-default); border-radius:var(--r-md); transition:border-color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out); }
.acct-fav-card:hover{ border-color:var(--border-strong); background:var(--surface-4); }
.acct-fav-media{ flex-shrink:0; width:52px; height:52px; border-radius:var(--r-sm); background:linear-gradient(135deg,#0a0a0a,#1a1a1a); display:flex; align-items:center; justify-content:center; overflow:hidden; text-decoration:none; }
.acct-fav-media img{ width:100%; height:100%; object-fit:cover; }
.acct-fav-media span{ font-family:'DM Mono',monospace; font-size:11px; color:rgba(245,245,240,.35); }
.acct-fav-body{ flex:1; min-width:0; display:flex; flex-direction:column; gap:1px; }
.acct-fav-cat{ font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:rgba(245,245,240,.38); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.acct-fav-title{ font-size:13px; font-weight:600; color:#f5f5f0; line-height:1.3; letter-spacing:-.005em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.acct-fav-price{ font-family:'DM Mono',monospace; font-size:12px; color:var(--gold); margin-top:1px; }
.acct-fav-actions{ display:flex; align-items:center; gap:5px; flex-shrink:0; }
.acct-fav-iconbtn{ display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:var(--r-sm); cursor:pointer; -webkit-tap-highlight-color:transparent; transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),filter var(--dur-fast) var(--ease-out); }
.acct-fav-iconbtn:focus-visible{ outline:2px solid var(--gold); outline-offset:2px; }
.acct-fav-iconbtn svg{ width:16px; height:16px; }
.acct-fav-iconbtn--add{ background:var(--gold); color:#0a0a0a; border:1px solid var(--gold); }
.acct-fav-iconbtn--add:hover{ filter:brightness(1.07); }
.acct-fav-iconbtn--del{ background:transparent; color:rgba(245,245,240,.5); border:1px solid var(--border-default); }
.acct-fav-iconbtn--del:hover{ border-color:rgba(200,144,122,.5); color:#c8907a; background:rgba(200,144,122,.08); }
.acct-fav-empty{ margin-top:16px; padding:32px 22px; text-align:center; color:rgba(245,245,240,.42); border:1px dashed var(--border-strong); border-radius:var(--r-md); font-size:12.5px; line-height:1.55; }
.acct-fav-empty svg{ width:34px; height:34px; color:rgba(245,245,240,.2); margin-bottom:10px; }
.acct-fav-empty p{ margin:0; }
.acct-fav-empty a{ color:var(--gold); text-decoration:none; }
.acct-fav-empty a:hover{ text-decoration:underline; }

/* ── Login-Verlauf · kompakte Zeilen ── */
.acct-loglist{ list-style:none; margin:10px 0 0; padding:0; display:flex; flex-direction:column; gap:6px; }
.acct-logitem{ display:flex; align-items:center; gap:11px; padding:9px 11px; border-radius:var(--r-md); border:1px solid var(--border-default); background:var(--surface-3); }
.acct-logitem__ico{ flex-shrink:0; width:30px; height:30px; display:grid; place-items:center; border-radius:50%; background:rgba(200,169,110,.1); color:var(--gold); }
.acct-logitem__ico svg{ width:15px; height:15px; }
.acct-logitem__body{ min-width:0; display:flex; flex-direction:column; gap:1px; }
.acct-logitem__event{ font-size:12.5px; font-weight:500; color:#f5f5f0; }
.acct-logitem__meta{ font-size:11px; color:rgba(245,245,240,.42); font-variant-numeric:tabular-nums; }

/* ── 2FA-Verwaltung ── */
.acct-2fa-status{ display:flex; align-items:center; gap:9px; margin-top:12px; padding:11px 13px; border-radius:var(--r-md); font-size:12.5px; line-height:1.4; }
.acct-2fa-status svg{ width:18px; height:18px; flex-shrink:0; }
.acct-2fa-status--on{ color:var(--gold); background:rgba(200,169,110,.1); border:1px solid rgba(200,169,110,.25); }
.acct-2fa-status--off{ color:rgba(245,245,240,.6); background:var(--surface-3); border:1px solid var(--border-default); }
.acct-2fa-meta{ margin:11px 0 0; font-size:12px; line-height:1.55; color:rgba(245,245,240,.52); }
.acct-2fa-meta strong{ color:rgba(245,245,240,.78); font-weight:600; }
.acct-2fa-note{ margin:8px 0 0; font-size:12px; color:var(--gold); line-height:1.5; }
.acct-2fa-form{ margin-top:14px; }
.acct-2fa-lbl{ display:block; font-size:11.5px; font-weight:500; color:rgba(245,245,240,.5); margin-bottom:5px; letter-spacing:-.005em; }
.acct-2fa-input{ width:100%; box-sizing:border-box; background:var(--surface-3); border:1px solid var(--border-default); color:#f5f5f0; padding:9px 12px; border-radius:var(--r-md); font-family:inherit; font-size:13px; letter-spacing:-.005em; outline:none; transition:border-color var(--dur-fast) var(--ease-out); }
.acct-2fa-input:focus{ border-color:var(--gold); }
.acct-2fa-input::placeholder{ color:rgba(245,245,240,.3); }
.acct-2fa-err{ margin:7px 0 0; font-size:11.5px; color:#c8907a; }
/* Generischer Text-Button (2FA-Aktionen) — volle Breite, Gold oder Outline */
.acct-fav-btn{ display:inline-flex; align-items:center; justify-content:center; gap:7px; width:100%; box-sizing:border-box; padding:10px 14px; border-radius:var(--r-md); font-family:inherit; font-size:13px; font-weight:600; letter-spacing:-.005em; cursor:pointer; border:1px solid var(--border-default); background:var(--surface-4); color:#f5f5f0; transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),filter var(--dur-fast) var(--ease-out); }
.acct-fav-btn:hover{ background:var(--surface-5); border-color:var(--border-strong); }
.acct-fav-btn:focus-visible{ outline:2px solid var(--gold); outline-offset:2px; }
.acct-fav-btn--primary{ background:var(--gold); color:#0a0a0a; border-color:var(--gold); }
.acct-fav-btn--primary:hover{ filter:brightness(1.06); background:var(--gold); }
.acct-2fa-btn-danger{ color:#c8907a; border-color:rgba(200,144,122,.4); background:rgba(200,144,122,.08); }
.acct-2fa-btn-danger:hover{ background:rgba(200,144,122,.15); border-color:rgba(200,144,122,.6); }
.acct-2fa-codes{ margin-top:12px; display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.acct-2fa-code{ font-family:'DM Mono',monospace; font-size:12.5px; letter-spacing:.04em; color:#f5f5f0; background:var(--surface-3); border:1px solid var(--border-default); border-radius:var(--r-sm); padding:8px 6px; text-align:center; }

.acct-sec-skel{ height:64px; border-radius:var(--r-md,8px); background:linear-gradient(100deg,var(--surface-3,#171614) 30%,var(--surface-4,#1d1c19) 50%,var(--surface-3,#171614) 70%); background-size:200% 100%; animation:acctSkel 1.2s ease-in-out infinite; }
@keyframes acctSkel{ 0%{background-position:200% 0} 100%{background-position:-200% 0} }
@media (prefers-reduced-motion:reduce){ .acct-sec-skel{ animation:none; } }

/* ═══ Security-Settings-Zeile (2FA) — Shopify-Polaris-Settings ═════════════
   Bewusst FLACH gehalten: kein farbiges Icon-Badge, keine schwere Card —
   nur Titel + Status-Pill in einer Zeile, knappe Beschreibung, abgesetzte
   Aktion. Das vermeidet den „AI-Feature-Card"-Look. Status nie nur per Farbe
   (Pill trägt Text + Dot). */
.acct-set-row{ padding:2px 0; }
.acct-set-top{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.acct-set-title{ font-size:13px; font-weight:600; color:#f5f5f0; letter-spacing:-.005em; }
.acct-set-desc{ margin:5px 0 0; font-size:11.5px; color:rgba(245,245,240,.5); line-height:1.55; }
.acct-set-action{ margin-top:12px; }
/* dezenter Text-Link statt vollbreitem Button für „Deaktivieren" */
.acct-set-link{ background:none; border:0; padding:0; cursor:pointer; font-family:inherit; font-size:12px; font-weight:500; color:rgba(245,245,240,.6); text-decoration:underline; text-underline-offset:2px; transition:color var(--dur-fast,.15s) var(--ease-out,ease); }
.acct-set-link:hover{ color:#f5f5f0; }
.acct-set-link--danger{ color:#c8907a; }
.acct-set-link--danger:hover{ color:#d8a08a; }
.acct-set-link:focus-visible{ outline:2px solid var(--gold,#c8a96e); outline-offset:2px; border-radius:3px; }
.acct-set-form{ margin-top:10px; max-width:300px; }
.acct-set-action .acct-fav-btn{ max-width:300px; }
.acct-sec-pill{ flex-shrink:0; display:inline-flex; align-items:center; gap:5px; font-size:10.5px; font-weight:600; letter-spacing:.02em; padding:4px 9px; border-radius:999px; white-space:nowrap; }
.acct-sec-pill::before{ content:''; width:6px; height:6px; border-radius:50%; background:currentColor; flex-shrink:0; }
.acct-sec-pill--on{ color:var(--gold,#c8a96e); background:rgba(200,169,110,.14); }
.acct-sec-pill--off{ color:rgba(245,245,240,.5); background:rgba(245,245,240,.06); }
.acct-sec-pill--muted{ color:rgba(245,245,240,.4); background:rgba(245,245,240,.05); }
.acct-sec-note{ margin:0; font-size:11.5px; color:rgba(245,245,240,.5); line-height:1.5; }

/* ═══ Login-Verlauf · aufklappbares Dropdown (details/summary) ═════════════ */
.acct-log-drop{ border:1px solid var(--border-default,rgba(200,180,140,.10)); border-radius:var(--r-md,8px); background:var(--surface-3,#171614); overflow:hidden; }
.acct-log-summary{ display:flex; align-items:center; gap:10px; padding:12px 14px; cursor:pointer; list-style:none; -webkit-tap-highlight-color:transparent; user-select:none; }
.acct-log-summary::-webkit-details-marker{ display:none; }
.acct-log-summary:hover{ background:var(--surface-4,#1d1c19); }
.acct-log-summary:focus-visible{ outline:2px solid var(--gold,#c8a96e); outline-offset:-2px; }
.acct-log-hdico{ width:16px; height:16px; flex-shrink:0; color:var(--gold,#c8a96e); }
.acct-log-hdtxt{ flex:1; font-size:12.5px; font-weight:600; color:#f5f5f0; letter-spacing:-.005em; }
.acct-log-count{ font-family:'DM Mono',monospace; font-size:10px; font-weight:400; color:rgba(200,169,110,.6); min-width:20px; text-align:center; }
.acct-log-chev{ width:14px; height:14px; flex-shrink:0; color:rgba(245,245,240,.4); transition:transform var(--dur-fast,.15s) var(--ease-out,ease); }
.acct-log-drop[open] .acct-log-chev{ transform:rotate(180deg); }
.acct-log-panel{ padding:2px 14px 12px; border-top:1px solid var(--border-subtle,rgba(200,180,140,.06)); }
.acct-log-privacy{ margin:12px 0 0; padding-top:10px; border-top:1px solid var(--border-subtle,rgba(200,180,140,.05)); font-size:10.5px; color:rgba(245,245,240,.32); line-height:1.5; }
/* Login-Verlauf als ruhige Timeline (UI-Skill): dünne Verbindungslinie links +
   kleine Status-Punkte statt schwerer gold-gefüllter Kreis-Badges (wirkten
   repetitiv/AI). Event-Name prominent, relative Zeit + IP dezent darunter. */
.acct-log-panel .acct-loglist{ margin:4px 0 0; gap:0; position:relative; }
.acct-log-panel .acct-logitem{ position:relative; background:transparent; border:0; border-radius:0; padding:11px 0 11px 26px; align-items:flex-start; gap:0; }
.acct-log-panel .acct-logitem::before{ content:''; position:absolute; left:9px; top:0; bottom:0; width:1px; background:var(--border-default,rgba(200,180,140,.10)); }
.acct-log-panel .acct-logitem:first-child::before{ top:14px; }
.acct-log-panel .acct-logitem:last-child::before{ bottom:auto; height:14px; }
.acct-log-panel .acct-logitem__ico{ position:absolute; left:3px; top:13px; width:13px; height:13px; min-width:13px; padding:0; border-radius:50%; background:var(--surface-2,#100f0e); border:2px solid var(--gold,#c8a96e); display:block; }
.acct-log-panel .acct-logitem__ico svg{ display:none; }
/* Status der Timeline-Punkte monochrom warm: Standard Gold, Fehlversuch in
   gedämpftem Terrakotta (--danger #c8907a), Erfolg ebenfalls Gold (kein Grün). */
.acct-log-panel .acct-logitem--warn .acct-logitem__ico{ border-color:var(--danger,#c8907a); }
.acct-log-panel .acct-logitem--ok .acct-logitem__ico{ border-color:var(--gold,#c8a96e); }
.acct-log-panel .acct-logitem__body{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.acct-log-panel .acct-logitem__event{ font-size:12.5px; font-weight:600; color:#f5f5f0; letter-spacing:-.005em; }
.acct-log-panel .acct-logitem__meta{ font-size:11px; color:rgba(245,245,240,.42); font-variant-numeric:tabular-nums; }
/* Admin-Eintrag in der Sidebar — nur für Admins per JS eingeblendet */
.acct-admin-link{ display:none !important; }
.acct-admin-link.is-visible{ display:flex !important; }
.acct-admin-link .acct-nav__ico{ color:var(--gold); }

/* ── Overlay (Off-Canvas-Scrim) ── */
.acct-overlay{
  position:fixed; inset:0; background:rgba(0,0,0,.6);
  z-index:999; opacity:0; display:none;
  transition:opacity var(--dur-base) var(--ease-out);
}
.acct-overlay.open{ opacity:1; display:block; backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }

/* ── Mobile: Off-Canvas von links ── */
@media(max-width:860px){
  .acct-layout{ flex-direction:column; min-height:0; }
  .acct-topbar{
    display:flex; align-items:center; gap:.75rem; width:100%;
    padding:.7rem 1rem; border-bottom:1px solid var(--border-default);
    background:var(--surface-1);
  }
  .acct-sidebar{
    position:fixed; left:0; top:0; bottom:0; height:100dvh;
    width:min(300px,86vw); flex:0 0 auto; z-index:1000;
    transform:translateX(-100%); box-shadow:8px 0 32px rgba(0,0,0,.45);
    transition:transform var(--dur-base) var(--ease-out); will-change:transform;
  }
  .acct-sidebar.open{ transform:translateX(0); }
  .acct-sidebar__close{ display:grid; }
  .acct-main{ padding:1.25rem; width:100%; }
  /* Im Off-Canvas-Drawer 44px Touch-Targets (WCAG 2.5.5) */
  .acct-nav__link{ min-height:44px; }
  .acct-subnav__link{ min-height:40px; }
}
@media(prefers-reduced-motion:reduce){
  .acct-sidebar,.acct-overlay,.acct-nav__chevron{ transition:none; }
}

/* ─── Header ──────────────────────────────────────────────────── */
.cart-hd{
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 20px;
  border-bottom:1px solid rgba(200,180,140,.06);
  flex-shrink:0;
}
.cart-hd-title{
  font-family:inherit;
  font-size:15px;font-weight:600;
  letter-spacing:-.005em;
  color:#f5f5f0;
  display:inline-flex;align-items:center;gap:8px;
}
.cart-hd-title-count{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:20px;height:20px;padding:0 6px;
  border-radius:10px;
  background:rgba(200,169,110,.1);
  color:var(--gold);
  font-size:11px;font-weight:600;
  letter-spacing:0;
}
.cart-close{
  background:rgba(200,180,140,.04);border:1px solid rgba(200,180,140,.08);
  width:36px;height:36px;
  color:rgba(245,245,240,.5);
  cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:50%;
  transition:all .15s;
  padding:0;
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
  flex-shrink:0;
}
/* Fallback X for empty buttons (legacy HTML) */
.cart-close:empty::before{content:'\00d7';display:inline-block;font-size:1.35rem;font-weight:300;line-height:1}
.cart-close:hover{background:rgba(200,169,110,.1);color:#f5f5f0;border-color:rgba(200,169,110,.25)}
.cart-close:active{transform:scale(.92)}
.cart-close:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.cart-close svg{pointer-events:none}

/* ─── Items List (scrollable) ─────────────────────────────────── */
.cart-items{
  flex:1;overflow-y:auto;
  padding:8px 20px;
  font-family:inherit;font-size:13px;
  color:rgba(245,245,240,.8);
}
.cart-items::-webkit-scrollbar{width:4px}
.cart-items::-webkit-scrollbar-track{background:transparent}
.cart-items::-webkit-scrollbar-thumb{background:rgba(200,180,140,.1);border-radius:3px}
.cart-items::-webkit-scrollbar-thumb:hover{background:rgba(200,180,140,.18)}

/* ─── Cart Line-Item (Shopify-Polaris-kompakt) ─────────────────── */
/* Cart Items — warm-getönt */
.cart-item{
  display:flex;gap:10px;
  padding:10px 0;
  border-bottom:1px solid rgba(200,180,140,.05);
  align-items:flex-start;
}
.cart-item:last-child{border-bottom:none}
.cart-item-img{
  width:48px;height:48px;
  object-fit:cover;
  border-radius:8px;
  border:1px solid rgba(200,180,140,.08);
  flex-shrink:0;
  background:rgba(200,180,140,.03);
}
.cart-item-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.cart-item-title{
  font-family:inherit;font-size:13px;font-weight:500;
  color:#f5f5f0;line-height:1.3;
  letter-spacing:-.005em;
  margin:0;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;
}
.cart-item-cat{
  font-family:inherit;
  font-size:10.5px;font-weight:500;
  color:rgba(245,245,240,.38);
  text-transform:uppercase;letter-spacing:.04em;
  margin-bottom:2px;
}
.cart-item-price{
  font-family:inherit;
  font-size:13px;font-weight:600;
  color:var(--gold);
  margin-top:4px;
  display:flex;align-items:center;justify-content:space-between;gap:10px;
}
.cart-item-remove{
  background:none;border:none;
  width:36px;height:36px;
  color:rgba(245,245,240,.35);
  cursor:pointer;padding:0;
  border-radius:6px;
  display:inline-flex;align-items:center;justify-content:center;
  flex-shrink:0;align-self:flex-start;
  transition:color .12s, background .12s;
  font-size:0;
}
.cart-item-remove::before{
  content:'';width:14px;height:14px;
  -webkit-mask-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='3 6 5 6 21 6'/%3E%3Cpath d='M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6'/%3E%3Cpath d='M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='3 6 5 6 21 6'/%3E%3Cpath d='M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6'/%3E%3Cpath d='M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2'/%3E%3C/svg%3E");
  -webkit-mask-size:contain;mask-size:contain;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  background:currentColor;
}
.cart-item-remove:hover{color:var(--danger,#c8907a);background:var(--danger-soft,rgba(200,144,122,.1))}

/* ─── Empty State ─────────────────────────────────────────────── */
.cart-empty{
  text-align:center;
  padding:64px 24px;
  color:rgba(245,245,240,.48);
  font-family:inherit;font-size:13px;
  display:flex;flex-direction:column;align-items:center;gap:12px;
}

/* ─── Footer (Subtotal + Buttons) ─────────────────────────────── */
.cart-ft{
  padding:14px 18px 16px;
  border-top:1px solid rgba(200,180,140,.06);
  background:rgba(200,180,140,.03);
  flex-shrink:0;
}
.cart-total-row{
  display:flex;justify-content:space-between;align-items:baseline;
  margin-bottom:14px;
}
.cart-total-lbl{
  font-family:inherit;font-size:13px;font-weight:500;
  color:rgba(245,245,240,.65);
  letter-spacing:-.005em;
}
.cart-total-val{
  font-family:inherit;font-size:18px;font-weight:600;
  color:#fff;letter-spacing:-.01em;
}
/* .cart-checkout-btn Etappe-1-Block entfernt — vollständig durch Etappe-5
   ersetzt (~Z. 2889+, Token-basiert mit lift-on-hover). Vorher waren beide
   im File und Etappe-5 hat per Cascade gewonnen → sichtbarer Style war eh
   schon Etappe-5. Cleanup nur für Wartbarkeit. */

/* ─── Account-Order-Card (Shopify-Style Liste) ─────────────────────
   Klare visuelle Trennung jeder Bestellung:
   - dezenter dunkler Hintergrund (statt fast-transparent)
   - kräftigere Border (rgba .12 statt .08)
   - mehr vertikaler Abstand (14 statt 10px) → kein Überlappungs-Look
   - sanfter Box-Shadow als Tiefe
   - Hover: gold-tinted border + leichter Lift
   - Aktive (geklickte) Card via :active scale-down */
.vt-order-card{
  background:rgba(23,22,20,.55);
  border:1px solid rgba(200,180,140,.10);
  margin-bottom:14px;
  border-radius:11px;
  overflow:hidden;
  cursor:pointer;
  transition:border-color .18s ease, background .18s ease, transform .12s ease, box-shadow .18s ease;
  box-shadow:0 1px 0 rgba(200,180,140,.03), 0 2px 6px rgba(0,0,0,.25);
  position:relative;
}
.vt-order-card:hover{
  border-color:rgba(200,169,110,.42);
  background:rgba(28,24,18,.65);
  box-shadow:0 1px 0 rgba(200,169,110,.05), 0 6px 18px rgba(0,0,0,.35), 0 0 0 1px rgba(200,169,110,.08);
}
.vt-order-card:active{ transform:scale(.997); }
/* Letzte Card hat keinen unteren Abstand (verhindert „Lücke" am Ende) */
.vt-order-card:last-child{ margin-bottom:4px; }
/* .cart-continue-btn Etappe-1-Block entfernt — vollständig durch Etappe-5
   ersetzt (~Z. 2914+, Token-basiert). Cleanup nur für Wartbarkeit. */

/* Premium-Restyle: Surface/Border-Tokens + Hover-State (analog .acct-* Design). */
.acct-input{width:100%;background:var(--surface-3,#171614);border:1px solid var(--border-default,rgba(200,180,140,.10));color:var(--white);padding:.6rem .8rem;font-family:'DM Sans',sans-serif;font-size:.88rem;outline:none;border-radius:var(--r-md,8px);transition:border-color var(--dur-fast,.15s) var(--ease-out,ease),background var(--dur-fast,.15s) var(--ease-out,ease),box-shadow var(--dur-fast,.15s) var(--ease-out,ease);box-sizing:border-box}
.acct-input:hover{border-color:var(--border-strong,rgba(200,180,140,.16))}
.acct-input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(200,169,110,.12)}
.acct-input::placeholder{color:var(--text-4,rgba(245,245,240,.35))}

/* Passwort-Kriterien: Pop-Animation des Haken-Kreises beim Erfüllen einer
   Regel (von _vtCheckPwRules per JS getriggert). Respektiert reduced-motion. */
@keyframes vtPwPop{ 0%{transform:scale(.4)} 60%{transform:scale(1.2)} 100%{transform:scale(1)} }
@media (prefers-reduced-motion:reduce){ .vt-pw-ok .vt-pw-icon{ animation:none!important; } }

.auth-field{margin-bottom:.75rem}
.auth-label{display:block;font-family:'DM Sans',sans-serif;font-size:.78rem;font-weight:500;color:var(--muted);margin-bottom:.35rem}
.auth-input{width:100%;background:var(--dark);border:1px solid var(--border2);color:var(--white);padding:.75rem .9rem;font-family:'DM Sans',sans-serif;font-size:.92rem;outline:none;transition:all .2s;border-radius:6px;box-sizing:border-box}
.auth-input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(200,169,110,.1)}
.auth-input::placeholder{color:var(--muted);opacity:.5}

/* ── GLOBAL CONTAINER — Single Source of Truth für zentrierte Breite ── */
.container{max-width:1320px;margin:0 auto;padding:0 clamp(1.25rem,5vw,3rem)}

/* Master Content-Container: Zentriert alle Section-Inhalte auf Premium-Breite.
   1320px = sweet-spot zwischen "luftig" und "nicht zu eng" (Shopify: 1200-1400px).
   Konsistenter Seitenrand auf großen Screens durch clamp-Padding. */
.vt-wrap{
  max-width:1320px;
  margin-left:auto;
  margin-right:auto;
  padding-left:clamp(1.25rem, 4vw, 3.5rem);
  padding-right:clamp(1.25rem, 4vw, 3.5rem);
}

/* ── MOBILE EXTRA SMALL (<480px) ───────────────────────────────── */
@media(max-width:480px){
  .cart-drawer,#checkoutDrawer{width:100vw!important}
  /* WCAG 2.5.5 + Daumen-friendly: alle Cart-CTAs auf min. 48px Touch-Target */
  .cart-checkout-btn,.cart-continue-btn{
    min-height:48px;
    padding:14px 18px !important;
    font-size:15px !important;
  }
  /* Item-Stepper auf Mobile: Plus/Minus + Zahl ≥36px (waren 24px → zu klein) */
  .cart-item-qty .cart-qty-btn{width:36px !important;height:36px !important}
  .cart-item-qty .cart-qty-inp{width:40px !important;height:36px !important;font-size:16px !important}
  /* Cart-Item Remove-Button auf 40px (war 32px laut weiter oben) */
  .cart-item-remove{width:40px !important;height:40px !important}
  /* Cart-Item Image kleiner damit mehr Platz für Title + Preis */
  .cart-item-img{width:64px !important;height:64px !important;flex-shrink:0}
  /* Cart-Item Title: nicht zu eng — auf Mobile haben wir mehr Breite */
  .cart-item-title{font-size:14px !important;line-height:1.35}
  .cart-hd{padding:14px 16px}
  .cart-items{padding:8px 16px}
  .cart-ft{padding:14px 16px 18px}
  /* Touch-Target ≥44px (Apple HIG / Material) damit der Close-Button
     auf Smartphones sicher tappbar ist. */
  .cart-close{width:48px!important;height:48px!important;margin:-8px -8px -8px 0}
  .cart-close::before{width:20px;height:20px}
  .ref-modal-close{width:44px;height:44px;display:flex;align-items:center;justify-content:center;padding:0;font-size:1.4rem}
  .vt-toast{left:1rem;right:1rem;bottom:1rem}
  .vt-toast-item{min-width:auto;max-width:100%}
  .ref-toolbar{flex-direction:column;gap:.75rem}
  .ref-search-wrap{max-width:100%;min-width:100%}
  .ref-toolbar-right{width:100%;justify-content:space-between}
  .auth-input,.acct-input{font-size:16px!important}
}

/* ─── MOBILE: Checkout & Payment Grids (Red Team Audit 2026-05-14) ─ */
/* Inline-Grids in main.js für Payment-Methoden und Crypto-Coins responsive machen */
@media(max-width:500px){
  [style*="grid-template-columns:1fr 1fr"]{grid-template-columns:1fr !important}
  [style*="grid-template-columns:repeat(3"]{grid-template-columns:1fr 1fr !important}
  [style*="grid-template-columns:100px 1fr"]{grid-template-columns:1fr !important}
}
@media(max-width:360px){
  [style*="grid-template-columns:repeat(3"]{grid-template-columns:1fr !important}
  .counter-grid{grid-template-columns:1fr !important}
}
/* Promo-Banner: Mindest-Lesbarkeit auf Mobile */
@media(max-width:480px){
  .vt-promo-banner{font-size:13px;padding:6px 32px 6px 10px}
  .vt-promo-code-lbl{font-size:11px}
  .vt-promo-code{font-size:13px}
}
/* Referenzen-Modal Meta auf 1 Spalte bei sehr kleinen Screens */
@media(max-width:380px){
  .port-modal-meta{grid-template-columns:1fr !important}
}

/* ─── MOBILE AUDIT FIXES (2026-05-16) ──────────────────────────────
   Touch targets, iOS zoom, cart drawer, scroll-to-top, cookie btn  */

/* Cart drawer full-width earlier (was only at 480px) */
@media(max-width:600px){
  .cart-drawer,#checkoutDrawer{width:100vw!important}
}

/* Touch targets: 44px minimum on ALL screen sizes */
.cart-close{width:44px;height:44px}
.cart-item-remove{width:44px;height:44px}
.ref-modal-close{width:44px;height:44px}
#scrollTop{width:44px;height:44px}
@media(max-width:860px){
  .cart-item-remove{width:44px!important;height:44px!important}
  .cart-item-qty .cart-qty-btn{width:44px!important;height:44px!important;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
}

/* iOS input zoom fix: 16px on ALL mobile inputs */
@media(max-width:760px){
  .fi-in,.fi-ta,.modal-input,input.fi,textarea.fta,select.fs{font-size:16px!important}
  /* Cart font readability: 13px → 14px on mobile */
  .cart-items{font-size:14px}
  .cart-item-title{font-size:14px}
  .cart-item-price{font-size:14px}
}

/* Cookie button touch target */
.cookie-btn{min-height:44px;display:inline-flex;align-items:center}

/* Lightbox nav buttons 44px on mobile */
@media(max-width:600px){
  .ref-lightbox-nav{width:44px!important;height:44px!important}
  .ref-modal-nav{width:44px!important;height:44px!important}
}

/* Product grid: prevent overflow on 320px */
@media(max-width:400px){
  .ref-grid{grid-template-columns:1fr!important;gap:.75rem}
  .ref-card-body{padding:.75rem .85rem}
}

/* Scroll-to-top button: fix mobile reduction */
@media(max-width:600px){
  #scrollTop{width:44px!important;height:44px!important}
}

/* Safe-area insets for notched devices */
@supports(padding:max(0px)){
  .ref-modal-box{padding-top:max(0px,env(safe-area-inset-top))}
  .cart-drawer{padding-top:max(0px,env(safe-area-inset-top))}
  .ref-lightbox-close{top:max(1rem,env(safe-area-inset-top));right:max(1rem,env(safe-area-inset-right))}
}

/* ════════════════════════════════════════════════════════════════════
   ETAPPE 2 — NAVIGATION & HERO (Stripe-Style Refinement)
   ────────────────────────────────────────────────────────────────────
   Override-Block: nutzt Tokens aus Etappe 1, refined existing
   Nav + Hero ohne Markup-Änderung. Das Original-VARO/TECH-Letter-Logo
   bleibt — nur Spacing, Hierarchie, Buttons, Background werden poliert.
   ════════════════════════════════════════════════════════════════════ */

/* ─── NAVIGATION ────────────────────────────────────────────────── */
nav{
  background:rgba(8,8,8,.72);
  /* backdrop-filter NICHT direkt auf nav — sonst wird nav zum Containing-Block
     für fixed-positioned descendants (z.B. das Mobile-Dropdown), wodurch
     top:108px relativ zur nav statt viewport interpretiert wird → versetzt.
     Der gleiche Effekt liegt auf nav::before (siehe unten). */
  border-bottom:1px solid var(--border-subtle);
  padding:0 clamp(var(--sp-5), 4vw, var(--sp-16));
  transition:background var(--dur-base) var(--ease-out),
             border-color var(--dur-base) var(--ease-out);
}
/* Backdrop-Filter via Pseudo-Element — kein Containing-Block-Effekt */
nav::before{
  content:'';
  position:absolute;
  inset:0;
  z-index:-1;
  background:inherit;
  backdrop-filter:saturate(180%) blur(16px);
  -webkit-backdrop-filter:saturate(180%) blur(16px);
  pointer-events:none;
}
/* Scroll-State: stärkerer Background sobald gescrollt (JS togglet .scrolled) */
nav.scrolled{
  background:rgba(8,8,8,.92);
  border-bottom-color:var(--border-default);
}

.logo-text{
  font-size:var(--fs-2xl);
  letter-spacing:.12em;
  font-weight:var(--fw-regular);
}

.nav-links{ gap:var(--sp-1); }
.nav-links a{
  color:var(--text-3);
  font-size:var(--fs-base);
  font-weight:var(--fw-regular);
  letter-spacing:var(--ls-normal);
  padding:var(--sp-2) var(--sp-4);
  border-radius:var(--r-md);
  transition:color var(--dur-fast) var(--ease-out),
             background-color var(--dur-fast) var(--ease-out);
}
.nav-links a::after{ display:none; }   /* Stripe-Style: kein Underline, stattdessen sanftes BG */
.nav-links a:hover{
  color:var(--text-1);
  background:var(--brand-faint);
}
.nav-links a.active{
  color:var(--text-1);
  background:var(--brand-soft);
}

.nav-right{ gap:var(--sp-3); }

/* User-Pill: Stripe-Dashboard-Style — schmaler, refined */
.nav-user{
  padding:var(--sp-1) var(--sp-3) var(--sp-1) var(--sp-1);
  border-radius:var(--r-pill);
  border:1px solid var(--border-subtle);
  transition:all var(--dur-fast) var(--ease-out);
}
.nav-user:hover{
  border-color:var(--border-strong);
  background:var(--surface-3);
  transform:translateY(-1px);
}
.nav-user-avatar{
  width:26px;height:26px;
  font-size:var(--fs-2xs);
  font-weight:var(--fw-semi);
}
.nav-user-name{ font-size:var(--fs-sm); }
.nav-user-menu{
  border-radius:var(--r-lg);
  border-color:var(--border-default);
  box-shadow:var(--shadow-4);
  background:var(--surface-3);
  min-width:220px;
}

/* ═══════════════════════════════════════════════════════════════════════
   HERO — Stripe/Linear/Apple-Niveau (2026-05-08 v4 — FINAL CLEAN)
   Lehre aus v3: blur(60px) auf radial-gradient sieht auf manchen Displays
   pixelig aus, "viele Gold-Blobs" wirkt billig. Echtes Premium = MINIMAL.
   Strategie: Hero kürzer, EIN sehr subtiler Bottom-Vignette-Gradient mit
   GAR keinem Blur, KEIN Particle-Rain, KEIN gold-blob. Background komplett
   ruhig. Nur die Headline trägt die Marke (gold-clip), sonst clean dark.
   ═══════════════════════════════════════════════════════════════════════ */

/* Premium Gold-Palette (für andere Bereiche genutzt — Hero-BG nutzt sie nicht mehr) */
:root{
  --gold-light:    #f5e6c8;
  --gold-warm:     #e4c280;
  --gold-main:     #d4b06a;
  --gold-base:     #c8a96e;
  --gold-deep:     #a08651;
  --gold-shimmer:  linear-gradient(135deg,
                     #e4c280 0%,
                     #d4b06a 35%,
                     #c8a96e 50%,
                     #d4b06a 65%,
                     #e4c280 100%);
}

.hero{
  /* Apple-Style: 75vh für Impact, großzügiger Vertical Padding */
  min-height:75vh;
  padding:calc(var(--sp-20) + 64px) clamp(var(--sp-5), 5vw, var(--sp-16)) var(--sp-20);
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background:var(--black);
}

/* Subtiler oberer Akzent — nur am OBEREN Rand des Hero, NICHT unten.
   Dadurch ist das Bottom des Hero pure black → seamless transition.
   Der Akzent oben gibt etwas Atmosphäre ohne aufdringlich zu sein. */
.hero::before{
  content:'';position:absolute;top:0;left:0;right:0;height:50%;
  pointer-events:none;z-index:-1;
  background:
    radial-gradient(ellipse 60% 100% at 50% 0%,
      rgba(200,169,110,.04) 0%,
      transparent 70%);
}

/* Hero-Grid: deaktiviert (war zu viel Noise) */
.hero-grid{ display:none; }

/* Hero-Particles: deaktiviert (Particle-Rain wirkt billig) */
.hero-particles{ display:none; }

/* Hero-Tag (Eyebrow) — exakt Stripe-Pattern */
.hero-tag{
  font-size:var(--fs-xs);
  letter-spacing:var(--ls-widest);
  color:var(--brand);
  font-weight:var(--fw-medium);
  margin-bottom:var(--sp-6);
  gap:var(--sp-3);
}
.hero-tag::before{
  width:28px;
  background:var(--brand);
  opacity:.7;
}

/* ═══════════════════════════════════════════════════════════════════
   HERO H1 — VARO (weiss) + TECH (gold) — Apple/Shopify-Niveau Pulse
   Idee: VARO als kühler, ruhiger Akzent (white breathe), TECH als
   Brand-Star in solidem Gold mit leichtem Glow-Pulse. 4.5s ease-in-out
   Loop, leicht versetzt zwischen Zeile 1 und 2 → atmender Wave-Effekt.
   ═══════════════════════════════════════════════════════════════════ */
.hero-h1{
  margin-bottom:var(--sp-6);
  letter-spacing:.015em;
}
/* Reset: alle Buchstaben sind inline-block */
.hero-h1 .tl{
  display:inline-block;
  will-change:filter, opacity;
}

/* ─── VARO (Zeile 1) — pures Weiss, sanftes Atmen ───────────────── */
.hero-h1 .title-row .tl{
  color: var(--white) !important;
  -webkit-text-fill-color: var(--white) !important;
  background: none !important;
  filter: drop-shadow(0 0 1px rgba(255,255,255,.12))
          drop-shadow(0 1px 2px rgba(0,0,0,.5));
  animation: vtVaroBreathe 4.8s cubic-bezier(.4,0,.6,1) infinite !important;
}

/* ─── TECH (Zeile 2) — solides Gold, kräftigerer Glow-Pulse ─────── */
.hero-h1 .title-row2 .tl{
  color: transparent !important;
  -webkit-text-fill-color: transparent !important;
  background: linear-gradient(180deg,
    #e4c280 0%,
    #c8a96e 60%,
    #b09556 100%) !important;
  background-size: 100% 100% !important;
  -webkit-background-clip: text !important;
          background-clip: text !important;
  filter: drop-shadow(0 0 8px rgba(200,169,110,.18))
          drop-shadow(0 1px 2px rgba(0,0,0,.5));
  animation: vtTechBreathe 4.8s cubic-bezier(.4,0,.6,1) infinite !important;
  /* Versetzt: TECH atmet 0.9s NACH VARO → wave-Gefühl */
  animation-delay: .9s !important;
}

/* Apple-Style Breathe: opacity + filter glow, NO position-shift */
@keyframes vtVaroBreathe{
  0%, 100% {
    opacity:.92;
    filter: drop-shadow(0 0 1px rgba(255,255,255,.10))
            drop-shadow(0 1px 2px rgba(0,0,0,.5));
  }
  50% {
    opacity:1;
    filter: drop-shadow(0 0 14px rgba(255,255,255,.18))
            drop-shadow(0 1px 2px rgba(0,0,0,.5));
  }
}
@keyframes vtTechBreathe{
  0%, 100% {
    opacity:.94;
    filter: drop-shadow(0 0 6px rgba(200,169,110,.16))
            drop-shadow(0 1px 2px rgba(0,0,0,.5));
  }
  50% {
    opacity:1;
    filter: drop-shadow(0 0 22px rgba(212,176,106,.34))
            drop-shadow(0 0 4px rgba(228,194,128,.18))
            drop-shadow(0 1px 2px rgba(0,0,0,.5));
  }
}

/* Per-Buchstaben Mikro-Stagger (max 80ms) — gibt feinen Schimmer-Versatz */
.hero-h1 .title-row .tl:nth-child(1) { animation-delay: 0s; }
.hero-h1 .title-row .tl:nth-child(2) { animation-delay: .06s; }
.hero-h1 .title-row .tl:nth-child(3) { animation-delay: .12s; }
.hero-h1 .title-row .tl:nth-child(4) { animation-delay: .18s; }
.hero-h1 .title-row2 .tl:nth-child(1) { animation-delay: .9s; }
.hero-h1 .title-row2 .tl:nth-child(2) { animation-delay: .96s; }
.hero-h1 .title-row2 .tl:nth-child(3) { animation-delay: 1.02s; }
.hero-h1 .title-row2 .tl:nth-child(4) { animation-delay: 1.08s; }

@media (prefers-reduced-motion: reduce){
  .hero-h1 .title-row .tl,
  .hero-h1 .title-row2 .tl{
    animation: none !important;
    opacity: 1 !important;
  }
}

.hero-sub{
  font-size:clamp(var(--fs-md), 1.4vw, var(--fs-lg));
  color:var(--text-3);
  max-width:480px;
  line-height:var(--lh-normal);
  margin-bottom:var(--sp-10);
}

.hero-btns{ gap:var(--sp-4); display:flex; flex-wrap:wrap; }

/* ═══════════════════════════════════════════════════════════════════
   CTA BUTTONS — Stripe/Linear-Style minimal-clean (v4 2026-05-08)
   Lehre aus v3: shine-sweep ist zu plakativ. Glass-blur ist zu viel.
   Echtes Premium = solid + clean + dezenter Hover-Lift.
   ═══════════════════════════════════════════════════════════════════ */

/* ── PRIMARY: Apple-Style Solid Gold — clean, minimal shadow, 980px pill ── */
.btn-p{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  position:relative;
  padding:.9rem 2rem;
  border-radius:980px;
  font-size:.88rem;
  font-weight:600;
  letter-spacing:-.005em;
  color:#1a1a1a;
  text-decoration:none;
  cursor:pointer;
  background: linear-gradient(180deg,
    var(--gold-warm, #e4c280) 0%,
    var(--gold-base, #c8a96e) 100%);
  border: 1px solid rgba(200,169,110,.5);
  box-shadow:
    inset 0 1px 0 0 rgba(255,255,255,.15),
    0 1px 3px rgba(0,0,0,.12);
  transition: transform .3s cubic-bezier(.32,.72,0,1),
              box-shadow .3s cubic-bezier(.32,.72,0,1),
              filter .3s cubic-bezier(.32,.72,0,1);
}
.btn-p:hover{
  transform: translateY(-1px);
  filter: brightness(1.04);
  box-shadow:
    inset 0 1px 0 0 rgba(255,255,255,.2),
    0 6px 20px rgba(200,169,110,.18),
    0 2px 4px rgba(0,0,0,.15);
}
.btn-p:active{ transform: translateY(0) scale(.98); transition-duration: .12s; }

/* ── SECONDARY: Apple-Style Ghost — barely visible border, elegant hover ── */
.btn-s{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  position:relative;
  padding:.9rem 2rem;
  border-radius:980px;
  font-size:.88rem;
  font-weight:500;
  letter-spacing:-.005em;
  color:var(--text-2);
  text-decoration:none;
  cursor:pointer;
  background: transparent;
  border: 1px solid rgba(200,180,140,.08);
  transition: all .3s cubic-bezier(.32,.72,0,1);
}
.btn-s:hover{
  transform: translateY(-1px);
  border-color: rgba(200,169,110,.3);
  background: rgba(200,169,110,.05);
  color: var(--text-1);
}
.btn-s:active{ transform: translateY(0) scale(.98); transition-duration: .12s; }

/* Reduced motion safety */
@media (prefers-reduced-motion: reduce){
  .btn-p, .btn-s{ transition: none !important; }
}
.btn-s:active{ transform:translateY(0); }

/* Pfeil-Icon entfernt — sauberer, professioneller Look ohne ablenkende Pfeile */

/* ─── HERO INNER GRID — bessere Proportionen ────────────────────── */
.hero-inner{
  gap:clamp(var(--sp-8), 4vw, var(--sp-16));
  grid-template-columns:1fr min(380px, 36%);
  max-width:1320px;
  margin-left:auto;
  margin-right:auto;
}

/* Hero-Scroll-Indikator — dezenter, Stripe-Style mono */
.hero-scroll{
  font-size:var(--fs-2xs);
  letter-spacing:var(--ls-widest);
  color:var(--text-4);
  bottom:var(--sp-8);
  right:clamp(var(--sp-5), 4vw, var(--sp-16));
  gap:var(--sp-3);
}
.hero-scroll::after{
  height:64px;
  background:linear-gradient(var(--text-4), transparent);
}

/* ─── NEWS BOX — refined ────────────────────────────────────────── */
.news-box{
  background:var(--surface-3);
  border:1px solid var(--border-subtle);
  border-radius:var(--r-lg);
  box-shadow:var(--shadow-2);
  transition:transform var(--dur-base) var(--ease-out),
             box-shadow var(--dur-base) var(--ease-out),
             border-color var(--dur-base) var(--ease-out);
}
.news-box:hover{
  transform:translateY(-2px);
  border-color:var(--border-default);
  box-shadow:var(--shadow-3);
}
.news-box-hd{
  padding:var(--sp-3) var(--sp-5);
  border-bottom:1px solid var(--border-subtle);
  gap:var(--sp-2);
}
.news-box-tag{
  font-size:var(--fs-2xs);
  letter-spacing:var(--ls-widest);
  color:var(--brand);
  font-weight:var(--fw-medium);
}
.news-item{
  padding:var(--sp-4) var(--sp-5);
  border-bottom:1px solid var(--border-subtle);
  transition:background var(--dur-fast) var(--ease-out);
}
.news-item:hover{
  background:var(--brand-faint);
  border-left:none;       /* alte Border-Animation entfernt — sieht clean aus */
}
.ni-date{
  font-size:var(--fs-2xs);
  letter-spacing:var(--ls-wider);
  color:var(--brand);
  font-weight:var(--fw-medium);
}

/* ─── COUNTER-STRIP — Stripe-Style Stats ─────────────────────────── */
.counter-strip{
  background:var(--surface-1);
  border-top:1px solid var(--border-subtle);
  border-bottom:1px solid var(--border-subtle);
  padding:var(--sp-12) clamp(var(--sp-5), 5vw, var(--sp-16));
  position:relative;
}
.counter-grid{
  max-width:1320px; margin:0 auto;
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:var(--sp-8);
  align-items:center;
}
.counter-item{
  text-align:left;
  padding:0 var(--sp-2);
  border-left:1px solid var(--border-subtle);
  padding-left:var(--sp-6);
}
.counter-item:first-child{ border-left:none; padding-left:0; }
/* Apple-Style Counter Numbers: sehr tight, heavy weight */
.counter-number{
  font-family:'DM Sans', sans-serif;
  font-size:clamp(var(--fs-3xl), 5vw, var(--fs-4xl));
  font-weight:700;
  letter-spacing:-.03em;
  color:var(--text-1);
  line-height:1;
  margin-bottom:var(--sp-2);
  display:block;
}
.counter-label{
  font-size:var(--fs-sm);
  color:var(--text-3);
  font-weight:var(--fw-regular);
  letter-spacing:var(--ls-normal);
  text-transform:none;       /* Stripe-Style: nicht uppercase */
}
@media(max-width:760px){
  .counter-grid{ grid-template-columns:repeat(2, 1fr); gap:var(--sp-6); }
  .counter-item{ border-left:none; padding-left:0; }
  .counter-item:nth-child(odd){ border-left:none; padding-left:0; }
}

/* ─── HERO-Mobile Refinements ───────────────────────────────────── */
@media(max-width:860px){
  .hero{
    min-height:auto;
    padding:calc(var(--sp-16) + 64px) var(--sp-5) var(--sp-12);
  }
  .hero-inner{
    grid-template-columns:1fr;
    gap:var(--sp-10);
  }
  .hero-scroll{ display:none; }
}

/* ════════════════════════════════════════════════════════════════════
   ETAPPE 3 — HOMEPAGE-SECTIONS (Services / Process / Trust)
   ────────────────────────────────────────────────────────────────────
   Stripe-Style: konsistente Section-Container, refined Cards mit
   Hover-Lift, Eyebrow-Headline-Subhead-Pattern, kein Bebas-Neue für
   Body-Cards (nur Display), Hairline-Borders, Reveal-on-Scroll.
   ════════════════════════════════════════════════════════════════════ */

/* ─── SECTION-BASIS — alle Sections gleich gespaced ──────────────── */
/* Apple-Style: großzügige vertikale Sections (Apple nutzt 80-120px vertical Padding) */
.sec{
  padding:clamp(var(--sp-20), 8vw, var(--sp-32)) clamp(var(--sp-5), 5vw, var(--sp-16));
  position:relative;
}
/* Zentriert den Inhalt aller Sections auf max 1320px — verhindert
   Stretching auf Ultrawide-Screens und sorgt für Premium-Weißraum. */
.sec > *:not(.vt-marquee-host){
  max-width:1320px;
  margin-left:auto;
  margin-right:auto;
}
.sec-alt{ background:var(--surface-1); }

/* Section-Header (Eyebrow + Title + Sub)
   Eyebrow ist IMMER links — display:flex (Block-Level) damit text-align:center
   der Geschwister-Elemente ihn nicht beeinflusst. */
.sec-tag{
  display:flex; align-items:center; gap:var(--sp-2);
  width:fit-content;
  font-family:'DM Mono', monospace;
  font-size:var(--fs-xs);
  font-weight:var(--fw-medium);
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:var(--brand);
  margin-bottom:var(--sp-4);
}
.sec-tag::before{
  content:'';
  width:24px; height:1px;
  background:currentColor;
  flex-shrink:0;
  opacity:.6;
}
/* Apple-Style Headlines: zentriert, tight tracking, heavy weight */
.sec-title{
  font-family:'DM Sans', sans-serif;
  font-size:clamp(var(--fs-3xl), 4.5vw, var(--fs-4xl));
  font-weight:700;
  letter-spacing:-.03em;
  line-height:1.1;
  color:var(--text-1);
  margin-bottom:var(--sp-4);
  text-transform:none;
  text-align:center;
}
/* Apple-Style: Subtitles zentriert unter der Headline */
.sec-sub{
  font-size:var(--fs-lg);
  color:var(--text-3);
  font-weight:var(--fw-regular);
  line-height:1.6;
  max-width:56ch;
  margin:0 auto var(--sp-14);
  text-align:center;
}

/* ─── INDUSTRIES STRIP (Vertrauen-Sektion auf Index) ────────────
   Entstand aus Audit T3 — vorher waren diese Werte 6× inline auf jedem
   Span dupliziert + Container-Style war auch inline. Jetzt sauber als
   Utility-Klassen, single source of truth. */
.vt-industries-strip{
  display:flex; flex-wrap:wrap;
  justify-content:center;
  gap:1.5rem 2.5rem;
  margin-top:2rem;
  padding:1.5rem 0 0;
  border:none;
}
.vt-industries-strip__item{
  font-family:'DM Sans', sans-serif;
  font-size:.92rem;
  color:var(--muted);
  font-weight:500;
  letter-spacing:.005em;
}

/* ─── SEC-CTA + SEC-INNER Utilities ─────────────────────────────
   Common section-level layout patterns die vorher inline waren. */
.sec-cta{ margin-top:var(--sp-10, 2.5rem); text-align:center; }
.sec-inner{ max-width:1320px; margin:0 auto; }
.sec-inner-narrow{ max-width:900px; margin:0 auto; }

/* Sec-tag center-Modifier (manche Sektionen wollen den Eyebrow zentriert) */
.sec-tag.is-centered,
.sec-tag--centered{ justify-content:center; }

/* Inheritance-Helper für Footer/Contact-Links die nur Farbe der Eltern erben sollen */
.link-inherit{ color:inherit; text-decoration:none; }
.link-inherit:hover{ color:var(--gold); text-decoration:underline; text-underline-offset:3px; }

/* ─── SERVICES (svc-grid) — Stripe-Card-Pattern ─────────────────── */
.svc-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:var(--sp-4);
  background:transparent;       /* alter „1px-gap-via-bg"-Trick weg */
  border-radius:0;
  overflow:visible;
  max-width:1320px;
  margin:0 auto;
}
/* Apple-Style Cards: größerer Radius, mehr Padding, sanftere Transitions */
.svc-card{
  background:var(--surface-3);
  border:1px solid var(--border-subtle);
  border-radius:16px;
  padding:var(--sp-8) var(--sp-7) var(--sp-7);
  position:relative;
  overflow:hidden;
  isolation:isolate;
  transition:transform .35s cubic-bezier(.32,.72,0,1),
             border-color .35s cubic-bezier(.32,.72,0,1),
             box-shadow .35s cubic-bezier(.32,.72,0,1),
             background .35s cubic-bezier(.32,.72,0,1);
}
/* Feiner Top-Akzent (Gold-Gradient, 1px) — fade-in on hover, identisch zu .btn-Style */
.svc-card::before{
  content:'';
  position:absolute; top:0; left:var(--sp-6); right:var(--sp-6); height:1px;
  background:linear-gradient(90deg,
    transparent 0%,
    rgba(200,169,110,.55) 50%,
    transparent 100%);
  opacity:0;
  transition:opacity .25s cubic-bezier(.2,.9,.3,1);
  pointer-events:none;
}
.svc-card:hover{
  background:var(--surface-4);
  border-color:rgba(200,169,110,.32);
  transform:translateY(-2px);
  box-shadow:
    0 1px 0 0 rgba(255,255,255,.04) inset,
    0 8px 24px rgba(0,0,0,.28),
    0 2px 6px rgba(200,169,110,.08);
}
.svc-card:hover::before{ opacity:1; }
.svc-num{
  font-family:'DM Mono', monospace;
  font-size:var(--fs-xs);
  font-weight:var(--fw-medium);
  letter-spacing:var(--ls-widest);
  color:var(--brand);
  line-height:1;
  margin-bottom:var(--sp-5);
  text-transform:uppercase;
  display:inline-flex; align-items:center; gap:var(--sp-2);
}
.svc-num::before{
  content:'';
  width:18px; height:1px;
  background:currentColor;
  opacity:.7;
}
.svc-card:hover .svc-num{ color:var(--brand-hover); }
.svc-title{
  font-family:'DM Sans', sans-serif;
  font-size:var(--fs-xl);
  font-weight:var(--fw-semi);
  letter-spacing:var(--ls-snug);
  color:var(--text-1);
  margin-bottom:var(--sp-3);
  line-height:var(--lh-snug);
}
.svc-desc{
  font-size:var(--fs-sm);
  color:var(--text-3);
  line-height:var(--lh-normal);
  margin:0;
}

/* ─── PROCESS-GRID — Stripe-Pattern ───────────────────────────────── */
.proc-grid{
  display:grid !important;
  grid-template-columns:repeat(4, 1fr) !important;
  gap:var(--sp-4) !important;
  margin-top:var(--sp-10) !important;
  position:relative;
}
.proc-grid > *{
  background:var(--surface-3) !important;
  border:1px solid var(--border-subtle) !important;
  border-radius:var(--r-lg) !important;
  padding:var(--sp-6) var(--sp-5) !important;
  transition:transform var(--dur-base) var(--ease-out),
             border-color var(--dur-base) var(--ease-out),
             box-shadow var(--dur-base) var(--ease-out),
             background var(--dur-base) var(--ease-out) !important;
}
.proc-grid > *:hover{
  background:var(--surface-4) !important;
  border-color:var(--border-default) !important;
  transform:translateY(-2px) !important;
  box-shadow:var(--shadow-3);
}

/* Step-Nummer (01-04) — Stripe-Style mono, klein, oben */
.proc-grid > * > *:nth-child(1){       /* 01/02/... */
  font-family:'DM Mono', monospace !important;
  font-size:var(--fs-2xs) !important;
  font-weight:var(--fw-medium) !important;
  letter-spacing:var(--ls-widest) !important;
  color:var(--brand) !important;
  text-transform:uppercase;
  margin-bottom:var(--sp-3) !important;
  display:inline-flex; align-items:center; gap:var(--sp-2);
}
.proc-grid > * > *:nth-child(1)::before{
  content:''; width:18px; height:1px;
  background:currentColor; opacity:.6;
}
/* Tag-Label (Analyse/Angebot/...) — direkt unter Nummer, dezent */
.proc-grid > * > *:nth-child(2){
  font-family:'DM Mono', monospace !important;
  font-size:var(--fs-2xs) !important;
  letter-spacing:var(--ls-wider) !important;
  color:var(--text-4) !important;
  text-transform:uppercase;
  margin-bottom:var(--sp-3) !important;
  font-weight:var(--fw-regular) !important;
}
/* Title */
.proc-grid > * > *:nth-child(3){
  font-family:'DM Sans', sans-serif !important;
  font-size:var(--fs-md) !important;
  font-weight:var(--fw-semi) !important;
  color:var(--text-1) !important;
  letter-spacing:var(--ls-snug) !important;
  line-height:var(--lh-snug) !important;
  margin-bottom:var(--sp-3) !important;
}
/* Description */
.proc-grid > * > *:nth-child(4){
  font-size:var(--fs-sm) !important;
  color:var(--text-3) !important;
  line-height:var(--lh-normal) !important;
  margin:0 !important;
}

/* Responsive: 2-Column statt 4-Column auf Tablets */
@media(max-width:900px){
  .proc-grid{ grid-template-columns:repeat(2, 1fr) !important; }
}
@media(max-width:480px){
  .proc-grid{ grid-template-columns:1fr !important; }
}

/* ─── TRUST-SECTION — refined Stripe-Style ───────────────────────── */
[data-section="trust"]{
  padding:var(--sp-20) clamp(var(--sp-5), 5vw, var(--sp-16));
}
[data-section="trust"] > div{
  max-width:1320px !important; margin:0 auto !important;
}

/* Industrien-Strip — saubere Hairline-Linien, Sentence-Case */
[data-section="trust"] > div > div:nth-of-type(1){
  display:flex !important;
  flex-wrap:wrap !important;
  justify-content:center !important;
  gap:var(--sp-4) var(--sp-10) !important;
  margin:var(--sp-8) 0 var(--sp-6) !important;
  padding:var(--sp-6) 0 0 !important;
  border:none !important;
}
[data-section="trust"] > div > div:nth-of-type(1) span{
  font-family:'DM Sans', sans-serif !important;
  font-size:var(--fs-base) !important;
  font-weight:var(--fw-medium) !important;
  color:var(--text-3) !important;
  letter-spacing:var(--ls-normal) !important;
  transition:color var(--dur-fast) var(--ease-out);
}
[data-section="trust"] > div > div:nth-of-type(1) span:hover{
  color:var(--text-1) !important;
}

/* Trust-Badges — Native SVG-Markup im HTML, sauber stylable */
/* Trust-Badges — links-aligned, volle Container-Breite */
.vt-trust-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:var(--sp-3);
  margin-top:var(--sp-8);
}
/* Apple-Style Trust Items: links-aligned wie alle anderen Sections */
.vt-trust-item{
  background:var(--surface-3);
  border:1px solid var(--border-subtle);
  border-radius:16px;
  padding:var(--sp-6) var(--sp-5);
  transition:all .35s cubic-bezier(.32,.72,0,1);
  text-align:left;
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:var(--sp-4);
}
.vt-trust-item:hover{
  background:var(--surface-4);
  border-color:var(--border-default);
  transform:translateY(-2px);
}
.vt-trust-icon{
  color:var(--brand);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:32px; height:32px;
  background:var(--brand-faint);
  border-radius:var(--r-md);
}
.vt-trust-label{
  font-family:'DM Sans', sans-serif;
  font-size:var(--fs-sm);
  letter-spacing:var(--ls-normal);
  text-transform:none;
  color:var(--text-3);
  font-weight:var(--fw-medium);
}
@media(max-width:760px){
  .vt-trust-grid{ grid-template-columns:repeat(2, 1fr); }
}

@media(max-width:760px){
  .svc-grid{ grid-template-columns:1fr !important; gap:var(--sp-3); }
  .proc-grid{ grid-template-columns:repeat(2, 1fr) !important; }
  [data-section="trust"] > div > div:nth-of-type(2){
    grid-template-columns:repeat(2, 1fr) !important;
  }
}

/* ════════════════════════════════════════════════════════════════════
   ETAPPE 4 — REVIEWS / FAQ / CONTACT / CTA-STRIP
   ────────────────────────────────────────────────────────────────────
   Stripe-Style: refined Cards mit Quote-Marks, Accordion mit Chevron,
   Contact-Block mit SVG-Icons statt Emojis, CTA-Strip dunkel + premium
   statt weißer Block (sah aggressiv aus).
   ════════════════════════════════════════════════════════════════════ */

/* ─── REVIEWS ─── (Etappe-4-Reviews-CSS entfernt — Marquee-Carousel ersetzt
       grid+card. Siehe main.js _vtInjectMarqueeCss → .vt-rev-card.) ────── */

/* ─── FAQ ──────────────────────────────────────────────────────── */
.faq-list{
  max-width:760px;
  margin:0 auto;
}
/* Apple-Style FAQ Items: 14px radius, subtilere Transition */
.faq-item{
  background:var(--surface-3);
  border:1px solid var(--border-subtle);
  border-radius:14px;
  margin-bottom:var(--sp-2);
  overflow:hidden;
  transition:all .3s cubic-bezier(.32,.72,0,1);
}
.faq-item:hover{
  border-color:var(--border-default);
  background:var(--surface-4);
}
.faq-item.open{
  border-color:var(--border-strong);
  background:var(--surface-4);
}
.faq-q{
  /* Pre-Launch A11y-Fix 2026-05-09: war <div>, jetzt <button>. Reset native
     button-Styles damit Look identisch bleibt + Tastatur funktioniert (Enter+Space). */
  -webkit-appearance:none;
  appearance:none;
  background:transparent;
  border:none;
  width:100%;
  text-align:left;
  font-family:inherit;
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:var(--sp-5) var(--sp-6);
  cursor:pointer;
  font-size:var(--fs-md);
  font-weight:var(--fw-medium);
  letter-spacing:var(--ls-normal);
  color:var(--text-1);
  transition:color var(--dur-fast) var(--ease-out);
  gap:var(--sp-4);
}
.faq-q:hover{ color:var(--brand); }
.faq-q:focus-visible{
  outline:2px solid var(--brand);
  outline-offset:-2px;
  color:var(--brand);
}
.faq-item.open .faq-q{ color:var(--text-1); }

/* Plus-zu-Minus Animation: Chevron-Style statt + Symbol */
.faq-arrow{
  font-family:inherit;
  font-size:0;                  /* Original-+-Zeichen unsichtbar */
  width:20px; height:20px;
  flex-shrink:0;
  position:relative;
  color:var(--text-3);
  transition:color var(--dur-fast) var(--ease-out),
             transform var(--dur-base) var(--ease-out);
}
.faq-arrow::before,
.faq-arrow::after{
  content:'';
  position:absolute;
  top:50%; left:50%;
  background:currentColor;
  transition:transform var(--dur-base) var(--ease-out);
  border-radius:1px;
}
.faq-arrow::before{
  /* Vertical bar */
  width:2px; height:12px;
  transform:translate(-50%,-50%);
}
.faq-arrow::after{
  /* Horizontal bar */
  width:12px; height:2px;
  transform:translate(-50%,-50%);
}
.faq-q:hover .faq-arrow{ color:var(--brand); }
.faq-item.open .faq-arrow{ color:var(--brand); transform:rotate(180deg); }
.faq-item.open .faq-arrow::before{
  /* Vertikalen Balken einklappen → Minus */
  transform:translate(-50%,-50%) scaleY(0);
}

.faq-a{
  max-height:0;
  overflow:hidden;
  transition:max-height var(--dur-slow) var(--ease-in-out),
             padding var(--dur-slow) var(--ease-in-out);
}
.faq-item.open .faq-a{
  max-height:600px;
  padding:0 var(--sp-6) var(--sp-5);
}
.faq-a p{
  font-size:var(--fs-base);
  color:var(--text-3);
  line-height:var(--lh-relaxed);
  margin:0;
}

/* ─── CONTACT-BLOCK (.fi mit ci-icon) ─────────────────────────── */
.fi h3,
.vt-contact-heading{
  font-family:'DM Sans', sans-serif;
  font-size:var(--fs-2xl);
  font-weight:var(--fw-semi);
  letter-spacing:var(--ls-snug);
  color:var(--text-1);
  margin-bottom:var(--sp-7);
  margin-top:0;
}
.ci{
  display:flex;
  gap:var(--sp-4);
  align-items:flex-start;
  margin-bottom:var(--sp-5);
}
/* SVG-Container für Contact-Icons. SVG kommt jetzt INLINE im HTML
   (statt CSS ::before content-URI mit positions-fragiler nth-child).
   Vorher: leere Boxen wenn .ci nicht in [data-section="faq"] war. */
/* Apple-Style Contact Icons: rund, subtiler */
.ci-icon{
  width:42px; height:42px;
  flex-shrink:0;
  border:1px solid var(--border-subtle);
  border-radius:50%;
  background:var(--surface-3);
  display:flex; align-items:center; justify-content:center;
  color:var(--brand);
  transition:all .3s cubic-bezier(.32,.72,0,1);
}
.ci-icon svg{ display:block; }
.ci:hover .ci-icon{
  border-color:var(--brand-ring);
  background:var(--brand-faint);
}
/* Old emoji-fallback: falls noch irgendwo ein Emoji-Char drin ist
   (z.B. legacy-render der per data-t Translation kommt) */
.ci-icon:empty::before,
.ci-icon:not(:has(svg))::before{
  content:'';
}
.ci-label{
  font-family:'DM Mono', monospace;
  font-size:var(--fs-2xs);
  color:var(--text-4);
  text-transform:uppercase;
  letter-spacing:var(--ls-widest);
  font-weight:var(--fw-medium);
  margin-bottom:var(--sp-1);
}
.ci-val{
  font-size:var(--fs-base);
  color:var(--text-1);
  line-height:var(--lh-snug);
  font-weight:var(--fw-regular);
}

/* Note-Box (allgemeiner Hinweis-Block) — Stripe-Info-Pattern */
.note-box{
  background:var(--brand-faint);
  border:1px solid var(--brand-ring);
  border-radius:var(--r-md);
  padding:var(--sp-4) var(--sp-5);
  margin-top:var(--sp-7);
}
.note-tag{
  font-family:'DM Mono', monospace;
  font-size:var(--fs-2xs);
  color:var(--brand);
  text-transform:uppercase;
  letter-spacing:var(--ls-widest);
  font-weight:var(--fw-medium);
  margin-bottom:var(--sp-2);
}
.note-text{
  font-size:var(--fs-sm);
  color:var(--text-2);
  line-height:var(--lh-normal);
  margin:0;
}

/* Form-Grid (Contact left + FAQ right) */
.form-grid{
  display:grid;
  grid-template-columns:1fr 1.5fr;
  gap:var(--sp-16);
  align-items:start;
  max-width:1320px;
  margin:0 auto;
}
@media(max-width:900px){
  .form-grid{
    grid-template-columns:1fr;
    gap:var(--sp-12);
  }
}

/* ─── CTA-STRIP — Stripe-Premium-Style (dunkel + Aurora) ─────── */
/* Phase A2 UX-Polish 2026-05-08: clean dark — vorher 2 gold-blobs (15%+8%)
   sahen wie Spotlight-Bleed aus. Jetzt: clean surface + dünne gold-Akzentlinie
   am Top (Apple/Linear-Style) + minimaler animierter Shimmer von links→rechts. */
.cta-strip{
  background: var(--surface-1);
  color:var(--text-1);
  padding:var(--sp-20) clamp(var(--sp-5), 5vw, var(--sp-16));
  display:flex;
  align-items:center;
  justify-content:space-between;
  position:relative;
  overflow:hidden;
  /* Top-Accent-Linie mit sanftem Gold-Verlauf zur Mitte */
  border-top:1px solid transparent;
  background-image:
    linear-gradient(180deg, rgba(200,169,110,.06) 0%, transparent 40%),
    linear-gradient(var(--surface-1), var(--surface-1));
  background-clip: padding-box, padding-box;
}
.cta-strip::before{
  /* Schmaler Gold-Accent-Strich am oberen Rand — wie ein Premium-Highlight */
  content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg, transparent 0%, rgba(200,169,110,.5) 50%, transparent 100%);
  pointer-events:none;
}
.cta-strip::after{
  /* Subtile Shimmer-Animation — wandert sehr langsam von links nach rechts */
  content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(105deg,
    transparent 0%,
    transparent 35%,
    rgba(200,169,110,.025) 50%,
    transparent 65%,
    transparent 100%);
  background-size:300% 100%;
  animation: vtCtaShimmer 12s ease-in-out infinite;
}
@keyframes vtCtaShimmer{
  0%,100%{ background-position: 100% 0; }
  50%   { background-position: -50% 0; }
}
@media (prefers-reduced-motion: reduce){
  .cta-strip::after{ animation: none; }
}
.cta-strip > *{ position:relative; z-index:1; }
/* Auf Ultrawide-Screens Inhalt zentrieren: dynamisches Padding wächst, sodass
   der sichtbare Content-Bereich nie breiter als 1320px wird. */
@media(min-width:1400px){
  .cta-strip{
    padding-left:calc((100% - 1320px) / 2);
    padding-right:calc((100% - 1320px) / 2);
  }
}
/* Apple-Style CTA: sehr große, tight-getrackte Headline */
.cta-strip h2{
  font-family:'DM Sans', sans-serif;
  font-size:clamp(var(--fs-2xl), 4vw, var(--fs-4xl));
  font-weight:700;
  letter-spacing:-.03em;
  line-height:1.1;
  color:var(--text-1);
  margin:0;
  max-width:20ch;
  text-transform:none;
}
/* CTA-Button: gold solid, NOT inverted dark wie vorher */
.cta-strip .btn-p{
  background:var(--brand);
  color:#080808;
  border-color:var(--brand);
}
.cta-strip .btn-p:hover{
  background:var(--brand-hover);
  color:#080808;
  border-color:var(--brand-hover);
  transform:translateY(-1px);
  box-shadow:0 8px 24px rgba(200,169,110,.35);
}
@media(max-width:760px){
  .cta-strip{
    flex-direction:column;
    align-items:flex-start;
    text-align:left;
    padding:var(--sp-14) var(--sp-5);
    gap:var(--sp-6);
  }
}

/* ════════════════════════════════════════════════════════════════════
   ETAPPE 5 — FOOTER & GLOBALE POLISH (Buttons, Forms, Toasts, Inputs)
   ════════════════════════════════════════════════════════════════════ */

/* ─── FOOTER ───────────────────────────────────────────────────── */
/* Apple-Style Footer: noch mehr vertikaler Raum */
footer{
  background:var(--surface-0);
  border-top:none;
  padding:var(--sp-20) clamp(var(--sp-5), 5vw, var(--sp-16)) var(--sp-10);
  position:relative;
}
/* Feiner Gold-Trenner statt harter 1px-Border (transparent → gold → transparent) */
footer::before{
  content:'';
  position:absolute;
  top:0; left:0; right:0;
  height:1px;
  background:linear-gradient(90deg,
    transparent 0%,
    rgba(200,169,110,.18) 20%,
    rgba(200,169,110,.32) 50%,
    rgba(200,169,110,.18) 80%,
    transparent 100%);
  pointer-events:none;
}
.ft{
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1fr;
  gap:var(--sp-12);
  padding-bottom:var(--sp-12);
  border-bottom:1px solid var(--border-subtle);
  margin-bottom:var(--sp-6);
  max-width:1320px; margin-left:auto; margin-right:auto;
}
/* Animierter Logo-Akzent: dezenter gold-glow auf <em>, fade-in beim Hover */
.fl-logo{
  font-family:'Bebas Neue', sans-serif;
  font-size:var(--fs-2xl);
  letter-spacing:.12em;
  color:var(--text-1);
  margin-bottom:var(--sp-4);
  display:inline-block;
  font-weight:var(--fw-regular);
  position:relative;
  transition:filter .35s cubic-bezier(.2,.9,.3,1);
}
.fl-logo em{
  color:var(--brand);
  font-style:normal;
  position:relative;
  display:inline-block;
  transition:text-shadow .35s cubic-bezier(.2,.9,.3,1);
}
.fl-logo:hover em{
  text-shadow:0 0 14px rgba(200,169,110,.45),
              0 0 2px rgba(200,169,110,.35);
}
/* Subtiler Underline-Sweep beim Hover (Premium-Effekt, no flicker) */
.fl-logo::after{
  content:'';
  position:absolute;
  left:0; bottom:-3px;
  width:0; height:1px;
  background:linear-gradient(90deg, transparent, rgba(200,169,110,.55), transparent);
  transition:width .45s cubic-bezier(.2,.9,.3,1);
}
.fl-logo:hover::after{ width:100%; }
@media (prefers-reduced-motion: reduce){
  .fl-logo, .fl-logo em, .fl-logo::after{ transition:none !important; }
  .fl-logo:hover em{ text-shadow:none !important; }
  .fl-logo:hover::after{ width:0 !important; }
}
.fb p{
  font-size:var(--fs-sm);
  color:var(--text-3);
  line-height:var(--lh-relaxed);
  max-width:280px;
  margin:0;
}
.fc h3,
.fc h4{
  font-family:'DM Mono', monospace;
  font-size:var(--fs-2xs);
  font-weight:var(--fw-medium);
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:var(--brand);
  margin-bottom:var(--sp-4);
}
.fc a, .fc p{
  display:block;
  font-size:var(--fs-sm);
  color:var(--text-3);
  text-decoration:none;
  line-height:1.9;
  transition:color var(--dur-fast) var(--ease-out),
             padding-left var(--dur-fast) var(--ease-out);
}
.fc a{ position:relative; }
.fc a:hover{
  color:var(--text-1);
  padding-left:var(--sp-2);
}
.fc a::before{
  content:'';
  position:absolute;
  left:0; top:50%; transform:translateY(-50%);
  width:0; height:1px;
  background:var(--brand);
  transition:width var(--dur-fast) var(--ease-out);
}
.fc a:hover::before{ width:var(--sp-1); }
.fb2{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:var(--sp-3);
  max-width:1320px; margin-left:auto; margin-right:auto;
}
.f-copy{
  font-size:var(--fs-xs);
  color:var(--text-4);
}
.f-legal{
  display:flex;
  gap:var(--sp-6);
}
.f-legal a{
  font-size:var(--fs-xs);
  color:var(--text-4);
  text-decoration:none;
  transition:color var(--dur-fast) var(--ease-out);
}
.f-legal a:hover{ color:var(--text-2); }

@media(max-width:760px){
  .ft{ grid-template-columns:1fr 1fr; gap:var(--sp-8); }
  .fb{ grid-column:1 / -1; }
  .fb2{ flex-direction:column; align-items:flex-start; gap:var(--sp-4); }
  .f-legal{ flex-wrap:wrap; gap:var(--sp-4); }
}

/* ─── BUTTONS — globale Standardisierung ──────────────────────── */
/* Generic .btn (used in admin + public) */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  gap:var(--sp-2);
  font-family:'DM Sans', sans-serif;
  font-size:var(--fs-base);
  font-weight:var(--fw-semi);
  letter-spacing:var(--ls-normal);
  padding:var(--sp-3) var(--sp-5);
  border-radius:var(--r-md);
  border:1px solid var(--brand);
  background:var(--brand);
  color:#080808;
  cursor:pointer;
  transition:all var(--dur-fast) var(--ease-out);
  text-decoration:none;
  line-height:1.4;
}
.btn:hover:not(:disabled){
  background:var(--brand-hover);
  border-color:var(--brand-hover);
  transform:translateY(-1px);
  box-shadow:var(--shadow-2);
}
.btn:active:not(:disabled){ transform:translateY(0); }
.btn:disabled{ opacity:.5; cursor:not-allowed; }

.btn.ghost,
.btn.outline{
  background:transparent;
  color:var(--text-2);
  border-color:var(--border-default);
}
.btn.ghost:hover:not(:disabled),
.btn.outline:hover:not(:disabled){
  background:var(--surface-3);
  border-color:var(--border-strong);
  color:var(--text-1);
}
.btn.danger{
  background:var(--danger);
  border-color:var(--danger);
  color:#fff;
}
.btn.danger:hover:not(:disabled){
  filter:brightness(1.08);
  box-shadow:0 6px 16px rgba(200,144,122,.28);
}
.btn.sm{
  font-size:var(--fs-sm);
  padding:var(--sp-2) var(--sp-3);
  border-radius:var(--r-sm);
  font-weight:var(--fw-medium);
}

/* ─── INPUTS / TEXTAREAS / SELECTS — globale Standardisierung ─ */
/* Public site forms (auth, account, contact) — bleiben rückwärtskompatibel
   via existing .auth-input/.acct-input Klassen, refined */
.auth-input,
.acct-input,
.cart-input{
  background:var(--surface-3);
  border:1px solid var(--border-default);
  color:var(--text-1);
  font-family:'DM Sans', sans-serif;
  font-size:var(--fs-base);
  font-weight:var(--fw-regular);
  letter-spacing:var(--ls-normal);
  padding:var(--sp-3) var(--sp-4);
  border-radius:var(--r-md);
  outline:none;
  transition:border-color var(--dur-fast) var(--ease-out),
             box-shadow var(--dur-fast) var(--ease-out),
             background var(--dur-fast) var(--ease-out);
  width:100%;
  box-sizing:border-box;
  line-height:1.5;
}
.auth-input:hover,
.acct-input:hover,
.cart-input:hover{
  border-color:var(--border-strong);
}
.auth-input:focus,
.acct-input:focus,
.cart-input:focus{
  border-color:var(--brand);
  box-shadow:0 0 0 3px var(--brand-ring);
  background:var(--surface-4);
}
.auth-input::placeholder,
.acct-input::placeholder,
.cart-input::placeholder{
  color:var(--text-4);
}

/* Labels für public-side Forms */
.auth-label,
.acct-lbl{
  display:block;
  font-family:'DM Mono', monospace;
  font-size:var(--fs-2xs);
  font-weight:var(--fw-medium);
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:var(--text-4);
  margin-bottom:var(--sp-2);
}

/* ─── TOASTS — Stripe-Style Notification ──────────────────────── */
/* Toast Design-Token Overrides — entfernt, Base-Styles oben reichen */

/* ─── SCROLL-TO-TOP — token-aware ─────────────────────────────── */
/* Apple-Style Scroll-to-Top: subtle, blurred background */
#scrollTop{
  width:40px; height:40px;
  background:rgba(23,22,20,.88);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(200,180,140,.06);
  color:var(--brand);
  bottom:var(--sp-6);
  right:var(--sp-6);
  border-radius:var(--r-pill);
  box-shadow:0 4px 16px rgba(0,0,0,.3);
  transition:all .3s cubic-bezier(.32,.72,0,1);
}
#scrollTop:hover{
  background:var(--brand);
  color:#080808;
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(200,169,110,.25);
}

/* ─── COOKIE-BANNER (falls vorhanden) ─────────────────────────── */
.vt-cookie-banner,
#vtCookieBanner{
  background:var(--surface-3) !important;
  border:1px solid var(--border-default) !important;
  border-radius:var(--r-lg) !important;
  box-shadow:var(--shadow-5) !important;
}

/* ════════════════════════════════════════════════════════════════════
   ETAPPE 6 — SIDEBAR / DRAWER (Cart, Checkout, Account, Auth)
   ────────────────────────────────────────────────────────────────────
   Stripe-Drawer-Pattern: refined Header, smooth Animations, clean
   Item-Cards, konsistente Spacing, polished Footer mit CTA.
   ════════════════════════════════════════════════════════════════════ */

/* ─── Drawer-Container — warm Schwarz/Gold ──────────── */
.cart-drawer{
  background:#0c0c0b;
  border-left:1px solid rgba(200,180,140,.06);
  box-shadow:none;
  transition:transform .32s cubic-bezier(.32,.72,0,1),
             box-shadow .32s cubic-bezier(.32,.72,0,1);
}
.cart-drawer.open{
  box-shadow:-24px 0 80px rgba(0,0,0,.7);
}
.cart-overlay{
  background:rgba(0,0,0,.55);
  backdrop-filter:blur(12px) saturate(1.2);
  -webkit-backdrop-filter:blur(12px) saturate(1.2);
  transition:opacity .25s var(--ease-out,ease);
}

/* ─── Drawer-Header — Shopify-Style fixed top ─────────────── */
.cart-hd{
  padding:var(--sp-5) var(--sp-6);
  border-bottom:1px solid var(--border-subtle,rgba(200,180,140,.06));
  flex-shrink:0;
  /* Premium-Restyle: Surface-Token statt #0c0c0b (konsistent mit .cart-drawer). */
  background:var(--surface-2,#100f0e);
  z-index:2;
}
.cart-hd-title{
  font-family:'DM Sans', sans-serif !important;
  font-size:var(--fs-md) !important;
  font-weight:var(--fw-semi) !important;
  letter-spacing:var(--ls-snug) !important;
  color:var(--text-1) !important;
  text-transform:none !important;
  display:inline-flex; align-items:center; gap:var(--sp-2);
}
.cart-hd-title-count{
  background:var(--brand-faint);
  color:var(--brand);
  border:1px solid var(--brand-ring);
  border-radius:var(--r-pill);
  padding:1px var(--sp-2);
  font-family:'DM Mono', monospace;
  font-size:var(--fs-2xs);
  font-weight:var(--fw-semi);
  letter-spacing:0;
  min-width:18px;
  text-align:center;
}

/* ─── Cart-Items — scrollbarer Mittelteil zwischen Header und Footer ── */
.cart-items{
  padding:var(--sp-3) var(--sp-6);
  flex:1 1 auto;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  min-height:0;
}
.cart-item{
  padding:var(--sp-4) 0;
  border-bottom:1px solid var(--border-subtle);
  transition:background var(--dur-fast) var(--ease-out);
}
.cart-item:last-child{ border-bottom:none; }
.cart-item-title{
  font-size:var(--fs-base);
  font-weight:var(--fw-semi);
  color:var(--text-1);
  letter-spacing:var(--ls-snug);
  line-height:var(--lh-snug);
}
.cart-item-cat{
  font-family:'DM Mono', monospace;
  font-size:var(--fs-2xs);
  color:var(--text-4);
  letter-spacing:var(--ls-wider);
  text-transform:uppercase;
  margin-top:var(--sp-1);
}
.cart-item-price{
  color:var(--brand);
  font-size:var(--fs-base);
  font-weight:var(--fw-semi);
  font-variant-numeric:tabular-nums;
}

/* Quantity-Stepper */
.cart-qty-stepper{
  display:inline-flex; align-items:center;
  background:var(--surface-3);
  border:1px solid var(--border-default);
  border-radius:var(--r-md);
  overflow:hidden;
  height:28px;
}
.cart-qty-stepper button{
  background:transparent;
  border:none;
  color:var(--text-3);
  width:24px; height:26px;
  cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center;
  font-size:var(--fs-base);
  transition:background var(--dur-fast) var(--ease-out),
             color var(--dur-fast) var(--ease-out);
  font-family:inherit;
}
.cart-qty-stepper button:hover{
  background:var(--surface-4);
  color:var(--brand);
}
.cart-qty-stepper button:disabled{
  opacity:.3; cursor:not-allowed;
}
.cart-qty-stepper input,
.cart-qty-stepper .cart-qty-val,
.cart-qty-inp{
  width:28px; text-align:center;
  background:transparent;
  border:none;
  color:var(--text-1);
  font-family:'DM Mono', monospace;
  font-size:var(--fs-sm);
  font-weight:var(--fw-semi);
  -moz-appearance:textfield;
  font-variant-numeric:tabular-nums;
}
/* iOS Safari Zoom-Prevention: Inputs unter 16px lösen Auto-Zoom on focus aus.
   Auf Mobile bumpen wir alle Cart-Qty-Inputs auf 16px hoch. */
@media(max-width:768px){
  .cart-qty-stepper input,
  .cart-qty-stepper .cart-qty-val,
  .cart-qty-inp,
  input.cart-qty-inp[type="number"]{
    font-size:16px !important;
  }
}

/* Cart Item Remove */
.cart-item-remove{
  background:transparent;
  border:none;
  color:var(--text-4);
  cursor:pointer;
  width:32px; height:32px;
  border-radius:var(--r-sm);
  transition:color var(--dur-fast) var(--ease-out),
             background var(--dur-fast) var(--ease-out);
  display:inline-flex; align-items:center; justify-content:center;
}
.cart-item-remove:hover{
  color:var(--danger);
  background:var(--danger-soft);
}

/* ─── Cart-Footer — fixed am Drawer-Bottom ──────────────────── */
.cart-ft{
  padding:var(--sp-5) var(--sp-6) var(--sp-6);
  border-top:1px solid var(--border-subtle,rgba(200,180,140,.06));
  /* Premium-Restyle: Surface-Token statt #0c0c0b (konsistent mit Drawer/Header). */
  background:var(--surface-2,#100f0e);
  flex-shrink:0;
  z-index:2;
}
.cart-total-row{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  margin-bottom:var(--sp-4);
}
.cart-total-lbl{
  font-family:'DM Mono', monospace;
  font-size:var(--fs-2xs);
  color:var(--text-4);
  text-transform:uppercase;
  letter-spacing:var(--ls-widest);
  font-weight:var(--fw-medium);
}
.cart-total-val{
  font-family:'DM Sans', sans-serif;
  font-size:var(--fs-2xl);
  color:var(--text-1);
  font-weight:var(--fw-semi);
  letter-spacing:var(--ls-tight);
  font-variant-numeric:tabular-nums;
}

/* CTA-Button: gold + lift */
.cart-checkout-btn{
  width:100%;
  padding:var(--sp-4) var(--sp-5);
  background:linear-gradient(180deg, #e4c280 0%, var(--brand) 100%);
  color:#080808;
  border:1px solid rgba(200,169,110,.6);
  border-radius:var(--r-lg);
  font-family:'DM Sans', sans-serif;
  font-size:var(--fs-base);
  font-weight:var(--fw-semi);
  letter-spacing:var(--ls-normal);
  cursor:pointer;
  transition:all var(--dur-fast) var(--ease-out);
  margin-bottom:var(--sp-2);
  display:inline-flex; align-items:center; justify-content:center;
  gap:var(--sp-2);
  box-shadow:inset 0 1px 0 0 rgba(255,255,255,.18), 0 1px 2px rgba(0,0,0,.18);
}
.cart-checkout-btn:hover{
  filter:brightness(1.05);
  transform:translateY(-1px);
  box-shadow:inset 0 1px 0 0 rgba(255,255,255,.22), 0 6px 18px rgba(200,169,110,.32), 0 1px 3px rgba(0,0,0,.2);
}
.cart-checkout-btn:active{ transform:translateY(0); transition-duration:.1s; }

.cart-continue-btn{
  width:100%;
  padding:var(--sp-3) var(--sp-5);
  background:transparent;
  border:1px solid var(--border-default);
  color:var(--text-3);
  font-family:'DM Sans', sans-serif;
  font-size:var(--fs-sm);
  font-weight:var(--fw-medium);
  border-radius:var(--r-lg);
  cursor:pointer;
  transition:all var(--dur-fast) var(--ease-out);
}
.cart-continue-btn:hover{
  border-color:var(--border-strong);
  color:var(--text-1);
  background:var(--surface-3);
  transform:translateY(-1px);
}

/* ─── Empty-State im Drawer ───────────────────────────────────── */
.cart-items > div:only-child[style*="text-align:center"]{
  /* Empty cart message */
  padding:var(--sp-12) var(--sp-4) !important;
  color:var(--text-4) !important;
  font-size:var(--sm) !important;
  font-family:'DM Sans', sans-serif !important;
}

/* ─── Account-Drawer: Tabs ────────────────────────────────────── */
.acct-tab{
  background:transparent;
  border:none;
  border-bottom:2px solid transparent;
  color:var(--text-4);
  padding:var(--sp-3) var(--sp-1);
  font-family:'DM Sans', sans-serif;
  font-size:var(--fs-sm);
  font-weight:var(--fw-medium);
  cursor:pointer;
  transition:color var(--dur-fast) var(--ease-out),
             border-color var(--dur-fast) var(--ease-out);
  letter-spacing:var(--ls-normal);
}
.acct-tab:hover{ color:var(--text-2); }
.acct-tab.active{
  color:var(--brand);
  border-bottom-color:var(--brand);
}

/* ─── Auth-Drawer: Form-Polish ────────────────────────────────── */
.auth-tabs{
  display:flex;
  gap:var(--sp-1);
  margin-bottom:var(--sp-6);
  border-bottom:1px solid var(--border-subtle);
}
.auth-tab{
  flex:1;
  padding:var(--sp-3) var(--sp-4);
  background:transparent;
  border:none;
  border-bottom:2px solid transparent;
  color:var(--text-4);
  font-family:'DM Sans', sans-serif;
  font-size:var(--fs-sm);
  font-weight:var(--fw-medium);
  cursor:pointer;
  transition:color var(--dur-fast) var(--ease-out),
             border-color var(--dur-fast) var(--ease-out);
}
.auth-tab.active{
  color:var(--brand);
  border-bottom-color:var(--brand);
}
.auth-tab:not(.active):hover{ color:var(--text-2); }

.auth-field{ margin-bottom:var(--sp-4); }

/* Auth-Drawer Buttons — überschreibt Inline-Styles aus JS für konsistenten Gold-Gradient */
#authDrawerContent button[id$="Submit"],
#authDrawerContent button[id="resetSubmit"]{
  background:linear-gradient(180deg,#e4c280 0%,var(--brand,#c8a96e) 100%) !important;
  color:#1a1a1a !important;
  border:1px solid rgba(200,169,110,.6) !important;
  border-radius:var(--r-lg,10px) !important;
  font-family:'DM Sans',sans-serif !important;
  font-size:var(--fs-sm,.82rem) !important;
  font-weight:var(--fw-semi,600) !important;
  letter-spacing:-.005em !important;
  text-transform:none !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18), 0 1px 2px rgba(0,0,0,.18) !important;
  transition:all .2s cubic-bezier(.2,.9,.3,1) !important;
  padding:.85rem 1.5rem !important;
  cursor:pointer !important;
}
#authDrawerContent button[id$="Submit"]:hover,
#authDrawerContent button[id="resetSubmit"]:hover{
  filter:brightness(1.05) !important;
  transform:translateY(-1px) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22), 0 6px 18px rgba(200,169,110,.25) !important;
}

/* Auth-Links im Drawer — konsistenter Gold-Style */
#authDrawerContent a[style*="color:var(--gold)"]{
  transition:opacity .15s !important;
}
#authDrawerContent a[style*="color:var(--gold)"]:hover{
  opacity:.85 !important;
  text-decoration:underline !important;
}
.auth-error,
.auth-success{
  font-size:var(--fs-sm);
  padding:var(--sp-3) var(--sp-4);
  border-radius:var(--r-md);
  margin:var(--sp-3) 0;
}
.auth-error{
  background:var(--danger-soft);
  border:1px solid rgba(200,144,122,.3);
  color:var(--danger);
}
.auth-success{
  background:var(--success-soft);
  border:1px solid rgba(76,175,125,.3);
  color:var(--success);
}

/* ─── Checkout-Drawer UI Refinements ──────────────────────────── */
/* Payment-Method Radio-Cards — CSS-basiertes Upgrade der Inline-Styles */
#checkoutContent .pay-btn{
  border-radius:10px !important;
  transition:all .15s ease !important;
}
#checkoutContent .pay-btn:hover:not(.active){
  background:rgba(200,180,140,.04) !important;
  border-color:rgba(200,180,140,.14) !important;
}
#checkoutContent .pay-btn.active{
  border-color:rgba(200,169,110,.5) !important;
  box-shadow:0 0 0 1px rgba(200,169,110,.15) !important;
}
/* Checkout Total-Box */
#coPayTotal{
  border-radius:10px !important;
  border-color:rgba(200,169,110,.35) !important;
  background:rgba(200,169,110,.05) !important;
}
/* AGB-Checkbox-Box */
#checkoutContent label[style*="display:flex"][style*="cursor:pointer"]{
  transition:color .15s !important;
}
/* Stripe Sub-Method Buttons */
#checkoutContent .coStripeMethodBtn{
  border-radius:8px !important;
  transition:all .12s ease !important;
}
#checkoutContent .coStripeMethodBtn:hover{
  border-color:rgba(200,169,110,.4) !important;
  color:#fff !important;
}
/* Crypto Coin Buttons */
#checkoutContent .coCoinBtn{
  border-radius:8px !important;
  transition:all .12s ease !important;
}
#checkoutContent .coCoinBtn:hover{
  border-color:rgba(200,169,110,.4) !important;
  color:#fff !important;
}

/* ════════════════════════════════════════════════════════════════════
   ETAPPE 7 — SHOP-PAGE (Listing + Produkt-Detail-Modal)
   ════════════════════════════════════════════════════════════════════ */

/* ─── Shop-Toolbar / Filter ───────────────────────────────────── */
.shop-toolbar{
  display:flex;
  flex-wrap:wrap;
  gap:var(--sp-3);
  align-items:center;
  padding:var(--sp-5) clamp(var(--sp-5), 5vw, var(--sp-16));
  border-bottom:1px solid var(--border-subtle);
  background:var(--surface-1);
  position:sticky;
  top:calc(64px + var(--vt-sandbox-h, 0px) + var(--vt-promo-h, 0px));
  z-index:50;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.shop-toolbar input,
.shop-toolbar select{
  background:var(--surface-3);
  color:var(--text-1);
  border:1px solid var(--border-default);
  border-radius:var(--r-md);
  padding:var(--sp-2) var(--sp-3);
  font-family:'DM Sans', sans-serif;
  font-size:var(--fs-sm);
  letter-spacing:var(--ls-normal);
  transition:border-color var(--dur-fast) var(--ease-out),
             box-shadow var(--dur-fast) var(--ease-out);
  min-width:160px;
}
.shop-toolbar input:focus,
.shop-toolbar select:focus{
  outline:none;
  border-color:var(--brand);
  box-shadow:0 0 0 3px var(--brand-ring);
}

/* ════════════════════════════════════════════════════════════════════
   GLOBAL DROPDOWN OVERRIDE (auch fuer Public-Pages: Shop-Sortierung,
   Country-Selector im Checkout, etc.)
   ════════════════════════════════════════════════════════════════════ */
select{
  color-scheme:dark !important;
  background-color:var(--surface-3, #161616) !important;
  color:var(--text-1, #f2f2f2) !important;
}
select:hover{
  background-color:var(--surface-3, #161616) !important;
}
select:focus, select:focus-visible{
  outline:none !important;
  border-color:var(--brand, #c8a96e) !important;
  box-shadow:0 0 0 3px rgba(200,169,110,.18) !important;
  background-color:var(--surface-3, #161616) !important;
}
select option, select optgroup{
  background-color:var(--surface-3, #161616) !important;
  color:var(--text-1, #f2f2f2) !important;
  background-image:none !important;
}
select option:checked{
  background:linear-gradient(0deg, var(--brand, #c8a96e), var(--brand, #c8a96e)) !important;
  color:#080808 !important;
}
/* Autofill */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
select:-webkit-autofill,
textarea:-webkit-autofill{
  -webkit-text-fill-color:#f2f2f2 !important;
  -webkit-box-shadow:0 0 0 30px var(--surface-3, #161616) inset !important;
  caret-color:#f2f2f2 !important;
  transition:background-color 9999s ease-out, color 9999s ease-out;
}
/* Date-Picker Icons in Dark */
input[type="date"]::-webkit-calendar-picker-indicator,
input[type="datetime-local"]::-webkit-calendar-picker-indicator,
input[type="time"]::-webkit-calendar-picker-indicator,
input[type="month"]::-webkit-calendar-picker-indicator{
  filter:invert(1) brightness(.8);
  cursor:pointer;
}

/* ─── Produkt-Card im Listing ─────────────────────────────────── */
.prod-card,
.product-card{
  background:var(--surface-3);
  border:1px solid var(--border-subtle);
  border-radius:var(--r-lg);
  overflow:hidden;
  transition:transform var(--dur-base) var(--ease-out),
             border-color var(--dur-base) var(--ease-out),
             box-shadow var(--dur-base) var(--ease-out),
             background var(--dur-base) var(--ease-out);
  position:relative;
  cursor:pointer;
}
.prod-card:hover,
.product-card:hover{
  transform:translateY(-4px);
  border-color:var(--border-default);
  box-shadow:var(--shadow-4);
  background:var(--surface-4);
}
/* Card-Image */
.prod-card img,
.product-card img{
  transition:transform var(--dur-slow) var(--ease-out);
}
.prod-card:hover img,
.product-card:hover img{
  transform:scale(1.04);
}
/* Quick-View / Add-to-Cart Overlay */
.prod-card-overlay,
.product-card-overlay{
  background:linear-gradient(to top, rgba(8,8,8,.92), transparent);
  opacity:0;
  transition:opacity var(--dur-base) var(--ease-out);
}
.prod-card:hover .prod-card-overlay,
.product-card:hover .product-card-overlay{ opacity:1; }

/* Produkt-Listing Grid */
.shop-row{
  display:grid;
  gap:var(--sp-4);
  padding:var(--sp-8) clamp(var(--sp-5), 5vw, var(--sp-16));
}
.shop-row.grid-3{ grid-template-columns:repeat(3, 1fr); }
.shop-row.grid-4{ grid-template-columns:repeat(4, 1fr); }
@media(max-width:900px){
  .shop-row.grid-3, .shop-row.grid-4{ grid-template-columns:repeat(2, 1fr); }
}
@media(max-width:560px){
  .shop-row.grid-3, .shop-row.grid-4{ grid-template-columns:1fr; }
}

/* ─── Produkt-Detail-Modal (.ref-modal) ───────────────────────── */
.ref-modal{
  background:var(--surface-2) !important;
  border:1px solid var(--border-subtle) !important;
  border-radius:var(--r-xl) !important;
  box-shadow:var(--shadow-5) !important;
}
.ref-modal-close{
  background:var(--surface-3);
  border:1px solid var(--border-default);
  border-radius:var(--r-md);
  color:var(--text-3);
  transition:all var(--dur-fast) var(--ease-out);
}
.ref-modal-close:hover{
  background:var(--danger-soft);
  border-color:var(--danger);
  color:var(--danger);
}

/* ════════════════════════════════════════════════════════════════
   USABILITY-FIXES (Mobile + Button-Polish)
   ════════════════════════════════════════════════════════════════ */

/* ── 1) Button-Anchors NIE underline (kommt vom globalen a:hover) ── */
.btn-p, .btn-s, .btn, a.btn-p, a.btn-s, a.btn,
.cta-strip a, .ref-card-overlay-btn,
button[class*="btn"] {
  text-decoration:none !important;
}
.btn-p:hover, .btn-s:hover, .btn:hover,
a.btn-p:hover, a.btn-s:hover, a.btn:hover,
.cta-strip a:hover, .ref-card-overlay-btn:hover,
button[class*="btn"]:hover {
  text-decoration:none !important;
}

/* ── 2) Mobile-Hamburger iOS-Robustheit + größerer Tap-Target ── */
.mob-btn {
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
  min-width:44px; min-height:44px;     /* WCAG 2.5.5 Touch-Target */
  position:relative; z-index:51;       /* über Nav-Border */
}
.mob-btn span { pointer-events:none; } /* Klick muss auf Button selbst landen, nicht auf Span */

/* ── 3) Landscape Tablet/Phone breakpoint erweitert auf 1024px ── */
@media (max-width:1024px) {
  /* Nav-Links + Hamburger zeigen wenn Viewport ≤ 1024px (Tablet + iPhone Landscape) */
  .mob-btn { display:flex !important; align-items:center; justify-content:center; }
  .nav-links {
    display:flex !important;
    position:fixed;
    top: calc(68px + var(--vt-sandbox-h,0px) + var(--vt-promo-h,0px));
    left:0; right:0;
    background:rgba(8,8,8,.99);
    border-bottom:1px solid var(--border);
    flex-direction:column;
    padding:.5rem 0;
    margin:0;
    visibility:hidden;
    opacity:0;
    pointer-events:none;
    transition:opacity .2s, visibility .2s;
    max-height:calc(100vh - 64px);
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
  }
  .nav-links.open {
    visibility:visible;
    opacity:1;
    pointer-events:all;
  }
  .nav-links a {
    padding:1rem 1.5rem;
    font-size:.95rem;
    border-radius:0;
  }
  .nav-links a::after { display:none; }
}
/* Auf sehr breitem Display (>1024px) Hamburger wieder weg */
@media (min-width:1025px) {
  .mob-btn { display:none !important; }
}

/* ── 4) Cart-Close-Button auf Mobile noch größer ── */
@media(max-width:600px){
  .cart-close{width:42px;height:42px;font-size:1.6rem}
}


/* ════════════════════════════════════════════════════════════════
   MOBILE-CRITICAL FIXES (iPhone 17 Hamburger + Cart-Close Click)
   ════════════════════════════════════════════════════════════════ */

/* ── 1) Hamburger ALWAYS clickable ──────────────────────────────── */
#mobBtn.mob-btn {
  z-index: 9999 !important;
  position: relative !important;
  min-width: 44px !important;
  min-height: 44px !important;
  padding: .5rem !important;
  cursor: pointer !important;
  pointer-events: auto !important;
  touch-action: manipulation !important;
  -webkit-tap-highlight-color: rgba(200,169,110,.2) !important;
  user-select: none !important;
  -webkit-user-select: none !important;
}
#mobBtn.mob-btn * {
  pointer-events: none !important;
}

/* ── 2) Sehr schmale Screens — userBtn kompakter ──────────────── */
@media (max-width: 420px) {
  #userBtn { padding: .35rem .55rem !important; font-size: .7rem !important; }
  #userBtn span { max-width: 60px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: inline-block; }
  nav { padding-left: .75rem; padding-right: .75rem; gap: .35rem; }
  .nav-right { gap: .35rem !important; }
  .nav-logo .logo-text { font-size: .85rem; }
}
@media (max-width: 360px) {
  #userBtn span { display: none; }
  #userBtn::before { content: '\1F464'; font-size: 1rem; }
}

/* ── 3) Cart-Close Click immer durchlassen ──────────────────────── */
.cart-close::before { pointer-events: none !important; }
.cart-close {
  pointer-events: auto !important;
  z-index: 5;
  position: relative;
}
.cart-close:hover { transform: none !important; }
.cart-close:active { transform: scale(.92) !important; }

/* ── 4) Drawer X-Button — Shopify-Polaris Pill-Style ──────────── */
.cart-drawer .cart-close {
  background: rgba(200,180,140,.04) !important;
  border: 1px solid rgba(200,180,140,.08) !important;
  color: rgba(245,245,240,.5) !important;
  width: 36px !important;
  height: 36px !important;
  font-size: 1.1rem !important;
  font-weight: 400 !important;
  border-radius: 10px !important;
  transition: all .15s ease !important;
}
.cart-drawer .cart-close:hover {
  background: rgba(200,180,140,.08) !important;
  color: #f5f5f0 !important;
  border-color: rgba(200,180,140,.14) !important;
}

/* ════════════════════════════════════════════════════════════════
   ADMIN-PANEL MOBILE/TABLET-FRIENDLY
   ════════════════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
  body[data-admin="1"] .adm-sb {
    position: fixed !important;
    top: 60px !important; left: 0 !important; bottom: 0 !important;
    width: 280px !important; max-width: 80vw !important;
    transform: translateX(-100%);
    transition: transform .25s cubic-bezier(.2,.8,.2,1);
    z-index: 100;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    box-shadow: 4px 0 20px rgba(0,0,0,.5);
  }
  body[data-admin="1"] .adm-sb.open { transform: translateX(0); }
  body[data-admin="1"] .adm-body { grid-template-columns: 1fr !important; }
  body[data-admin="1"] .adm-content {
    padding: 1rem .85rem !important;
    padding-bottom: 5rem !important;
  }
  body[data-admin="1"] .hbtn-mob {
    display: inline-flex !important;
    align-items: center; justify-content: center;
    min-width: 40px; min-height: 40px;
    margin-right: .35rem;
  }
  body[data-admin="1"] .adm-hd {
    padding: 0 .85rem !important;
    height: 56px !important;
  }
  body[data-admin="1"] .adm-logo small,
  body[data-admin="1"] .adm-user-name { display: none !important; }
  body[data-admin="1"] .hdr-search-text { display: none !important; }
  body[data-admin="1"] #cmdkHotkey { display: none !important; }
}
@media (max-width: 768px) {
  body[data-admin="1"] .tbl-wrap {
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    margin: 0 -.5rem;
    padding: 0 .5rem;
    border-radius: 6px;
  }
  body[data-admin="1"] .tbl { min-width: 600px; }
  body[data-admin="1"] .tbl th,
  body[data-admin="1"] .tbl td {
    padding: .5rem .55rem !important;
    font-size: .72rem !important;
    white-space: nowrap;
  }
  body[data-admin="1"] .mdl-bg {
    padding: env(safe-area-inset-top, 8px) 8px env(safe-area-inset-bottom, 8px) 8px !important;
  }
  body[data-admin="1"] .mdl {
    max-width: 100% !important;
    max-height: calc(100vh - 16px) !important;
    border-radius: 10px !important;
  }
  body[data-admin="1"] .mdl-bd { padding: .85rem !important; }
  body[data-admin="1"] .mdl-hd { padding: .75rem .85rem !important; }
  body[data-admin="1"] .mdl-ft {
    padding: .65rem .85rem !important;
    flex-wrap: wrap !important;
    gap: .35rem !important;
  }
  body[data-admin="1"] .mdl-ft .btn,
  body[data-admin="1"] .mdl-ft button {
    flex: 1 1 auto;
    min-width: 0;
    font-size: .72rem !important;
  }
  body[data-admin="1"] .frow,
  body[data-admin="1"] .frow.three,
  body[data-admin="1"] .vt-form-row,
  body[data-admin="1"] .vt-form-row.three,
  body[data-admin="1"] .vt-form-row.split-1-2 {
    grid-template-columns: 1fr !important;
    gap: .5rem !important;
  }
  body[data-admin="1"] .p-acts {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: .35rem !important;
    width: 100%;
  }
  body[data-admin="1"] .p-acts .btn {
    width: 100% !important;
    justify-content: center;
    font-size: .75rem !important;
  }
  body[data-admin="1"] .p-hd {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: .65rem !important;
  }
  body[data-admin="1"] .p-title { font-size: 1.25rem !important; }
  body[data-admin="1"] .p-sub { font-size: .75rem !important; }
  body[data-admin="1"] .filter {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: .35rem !important;
  }
  body[data-admin="1"] .filter > * { width: 100% !important; min-width: 0 !important; }
  body[data-admin="1"] .vt-daterange {
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100%;
  }
  body[data-admin="1"] .cards { grid-template-columns: 1fr 1fr !important; gap: .55rem !important; }
  body[data-admin="1"] .card { padding: .8rem .65rem !important; }
  body[data-admin="1"] .card-value { font-size: 1.4rem !important; }
  body[data-admin="1"] .card-label { font-size: .55rem !important; }
  body[data-admin="1"] .vt-quick-grid { grid-template-columns: 1fr !important; }
  body[data-admin="1"] .vt-toast {
    bottom: max(20px, env(safe-area-inset-bottom)) !important;
    right: 16px !important;
    left: 16px !important;
    max-width: none !important;
  }
  body[data-admin="1"] .vt-toast-item { width: 100% !important; }
  body[data-admin="1"] .notif-panel {
    position: fixed !important;
    top: 56px !important; right: 8px !important; left: 8px !important;
    width: auto !important;
    max-height: calc(100vh - 70px) !important;
  }
}
@media (max-width: 480px) {
  body[data-admin="1"] .cards { grid-template-columns: 1fr !important; }
  body[data-admin="1"] .hbtn { font-size: 11px !important; padding: 5px 8px !important; }
  body[data-admin="1"] .hbtn span { display: none; }
  body[data-admin="1"] .hbtn-icon { width: 32px !important; height: 32px !important; }
  body[data-admin="1"] .vt-status-dot { width: 7px !important; height: 7px !important; }
}

@media (max-width: 1024px) {
  body[data-admin="1"] .sb-overlay {
    display: none;
    position: fixed; inset: 0;
    background: rgba(0,0,0,.5);
    z-index: 99;
    -webkit-tap-highlight-color: transparent;
  }
  body[data-admin="1"] .sb-overlay.show {
    display: block;
    animation: vtSbOverlayIn .2s ease;
  }
}
@keyframes vtSbOverlayIn { from { opacity: 0 } to { opacity: 1 } }

/* ── 5) KRITISCHER FIX: nav overflow:hidden auf Mobile entfernen ── */
/* Das overflow:hidden auf <nav> clippte das Dropdown-Menü so dass es zwar
   in den DOM kam aber NICHT sichtbar wurde. Auf Desktop bleibt overflow für
   logo-glow-Clipping erhalten — nur bei Mobile-Burger-Modus überschreiben. */
@media (max-width: 1024px) {
  nav { overflow: visible !important; }
  /* Sicherstellen dass nav-links über alle Inhalte rendert */
  .nav-links { z-index: 250 !important; }
}

/* ═══════════════════════════════════════════════════════════════════
   COMPONENT CLASSES — für JS-generiertes HTML (Account, Checkout,
   Order-Detail, Draft-Modal). Nutzt die bestehenden Design-Tokens.
   Ersetzt inline-styles für Konsistenz über alle Bereiche hinweg.
   ═══════════════════════════════════════════════════════════════════ */

/* ── Order Card (Account-Bestellliste) ──────────────────────────── */
/* Bestell-Karte — Shopify-Polaris (UI-Skill): klare Surface (surface-3, deutlich
   ueber Drawer-BG surface-2), ruhige Hierarchie, dezente Hover-Anhebung.
   BUGFIX: Hover setzte background auf rgba(...,.015) -> Karte wurde FLACHER statt
   heller. Jetzt surface-4 + weicher Schatten. Tabulare Ziffern (Datum/Betrag). */
.vt-ocard{background:var(--surface-3,#171614);border:1px solid var(--border-default);border-radius:var(--r-lg);cursor:pointer;transition:border-color .15s var(--ease-out,ease),box-shadow .15s var(--ease-out,ease),background .15s var(--ease-out,ease),transform .12s var(--ease-out,ease);margin-bottom:10px;overflow:hidden}
.vt-ocard:hover{border-color:rgba(200,169,110,.28);background:var(--surface-4,#1d1c19);box-shadow:0 2px 10px rgba(0,0,0,.22)}
.vt-ocard:active{transform:scale(.992)}
.vt-ocard:focus-visible{outline:2px solid var(--gold,#c8a96e);outline-offset:2px}
.vt-ocard-inner{padding:14px 16px}
.vt-ocard-hd{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}
.vt-ocard-id{font-size:13px;color:var(--white);font-weight:600;letter-spacing:-.01em;word-break:break-all;font-variant-numeric:tabular-nums}
.vt-ocard-date{color:var(--muted);font-size:11px;font-weight:400;white-space:nowrap;font-variant-numeric:tabular-nums}
.vt-ocard-row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:0;flex-wrap:wrap}
.vt-ocard-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:12px;font-weight:400}
.vt-ocard-meta .sep{opacity:.3}
.vt-ocard-total{color:var(--gold);font-size:14px;font-weight:600;letter-spacing:-.01em;line-height:1;white-space:nowrap;font-variant-numeric:tabular-nums}
.vt-ocard-ft{display:none}

/* ── Status Badge (Shopify-Style: warm monochromatisch, kein Regenbogen) ── */
.vt-badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:5px;font-size:10.5px;font-weight:600;letter-spacing:.02em;flex-shrink:0}
.vt-badge::before{display:none}
/* Konsistentes Pattern: bg 8%, text 55% (neutral) oder spezifische Akzentfarbe */
.vt-badge-pending{background:rgba(200,169,110,.08);color:rgba(200,169,110,.7)}
.vt-badge-paid{background:rgba(200,180,140,.06);color:rgba(245,245,240,.45)}
.vt-badge-shipped{background:rgba(200,180,140,.06);color:rgba(245,245,240,.45)}
.vt-badge-delivered{background:rgba(200,169,110,.08);color:rgba(200,169,110,.65)}
.vt-badge-cancelled{background:rgba(180,140,130,.06);color:rgba(220,175,165,.5)}
.vt-badge-refunded{background:rgba(180,140,130,.06);color:rgba(220,175,165,.5)}
.vt-badge-partially_refunded{background:rgba(200,180,140,.06);color:rgba(245,245,240,.4)}
.vt-badge-disputed{background:rgba(200,144,122,.1);color:rgba(200,144,122,.7)}

/* ── Collapsible Sections (Order-Detail) ────────────────────────── */
#acctOrders details summary::-webkit-details-marker{display:none}
#acctOrders details summary::marker{display:none;content:''}
#acctOrders details[open] summary svg:last-child{transform:rotate(180deg)}
#acctOrders details summary:hover{background:rgba(200,180,140,.03)}

/* ── Pending Hint (compact, in order list) ──────────────────────── */
.vt-pending-hint{margin-top:6px;display:flex;align-items:center;gap:6px;padding:6px 10px;background:rgba(200,169,110,.06);border:1px solid rgba(200,169,110,.12);border-radius:var(--r-md);color:rgba(200,169,110,.8);font-size:11.5px;font-weight:500}
.vt-pending-hint svg{flex-shrink:0}
.vt-pending-hint span{flex:1}

/* ── Badges Row (Tracking, Keys, Perso) ─────────────────────────── */
.vt-badges{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:6px}
.vt-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:5px;font-size:11px;font-weight:500}
.vt-chip-track{background:rgba(200,180,140,.08);color:rgba(245,245,240,.45)}
.vt-chip-key{background:rgba(200,169,110,.08);color:rgba(200,169,110,.7)}
.vt-chip-perso{background:rgba(200,180,140,.08);color:rgba(245,245,240,.45)}

/* ── Payment Panel (Track Detail View) ──────────────────────────── */
.vt-pay-panel{margin-top:1.25rem;background:var(--card);border:1px solid rgba(200,169,110,.15);border-radius:var(--r-lg);overflow:hidden;box-sizing:border-box;max-width:100%}
.vt-pay-header{padding:20px 20px 16px;text-align:center;border-bottom:1px solid var(--border-subtle)}
.vt-pay-header .label{font-size:11px;color:rgba(245,245,240,.4);text-transform:uppercase;letter-spacing:.1em;margin-bottom:6px}
.vt-pay-header .amount{font-family:'DM Sans',sans-serif;font-size:1.75rem;font-weight:700;color:var(--gold);letter-spacing:-.01em;line-height:1}
.vt-pay-body{padding:16px 20px}
.vt-pay-foot{padding:0 20px 16px}

/* ── Method Grid (Stripe/Crypto Auswahl) ────────────────────────── */
.vt-method-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}
.vt-method-btn{display:flex;align-items:center;gap:8px;padding:10px 12px;box-sizing:border-box;min-width:0;min-height:44px;background:rgba(200,180,140,.03);border:1px solid var(--border-default);color:rgba(245,245,240,.6);border-radius:var(--r-md);cursor:pointer;font-family:inherit;font-size:12.5px;font-weight:500;transition:all var(--dur-fast) var(--ease-out);text-align:left}
.vt-method-btn:hover{border-color:rgba(200,180,140,.22);background:rgba(200,180,140,.05)}
.vt-method-btn.active{background:rgba(200,169,110,.06);border-color:var(--gold);color:#f5f5f0}
.vt-method-btn .ic{display:inline-flex;color:rgba(245,245,240,.45);flex-shrink:0;transition:color var(--dur-fast)}
.vt-method-btn.active .ic{color:var(--gold)}
.vt-method-btn .lbl{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vt-coin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}
.vt-coin-btn{box-sizing:border-box;min-width:0;min-height:44px;padding:9px 6px;text-align:center;cursor:pointer;border-radius:var(--r-md);font-family:inherit;font-size:12px;font-weight:500;transition:all var(--dur-fast) var(--ease-out);background:rgba(200,180,140,.03);border:1px solid var(--border-default);color:rgba(245,245,240,.6)}
.vt-coin-btn:hover{border-color:rgba(200,180,140,.22);background:rgba(200,180,140,.05)}
.vt-coin-btn.active{background:rgba(200,169,110,.06);border-color:var(--gold);color:#f5f5f0}
.vt-coin-btn .sym{display:inline-block;font-family:'DM Mono',monospace;color:rgba(245,245,240,.42);margin-right:3px;transition:color var(--dur-fast)}
.vt-coin-btn.active .sym{color:var(--gold)}

/* ── Primary CTA Button (Payment) ───────────────────────────────── */
.vt-pay-btn{width:100%;background:linear-gradient(180deg,var(--gold-warm,#e4c280) 0%,var(--gold) 100%);color:#0a0a0a;border:1px solid rgba(200,169,110,.45);padding:14px 20px;border-radius:var(--r-md);font-weight:700;font-size:14px;cursor:pointer;font-family:inherit;display:flex;align-items:center;justify-content:center;gap:8px;transition:all var(--dur-fast) var(--ease-out);min-height:48px;box-shadow:inset 0 1px 0 0 rgba(255,255,255,.12),0 1px 3px rgba(0,0,0,.12)}
.vt-pay-btn:hover{filter:brightness(1.04);transform:translateY(-1px);box-shadow:inset 0 1px 0 0 rgba(255,255,255,.14),0 6px 20px rgba(200,169,110,.16)}
.vt-pay-btn:active{transform:translateY(0) scale(.98);filter:brightness(.98)}

/* ── Decline Button ─────────────────────────────────────────────── */
.vt-decline-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:11px;background:transparent;color:rgba(220,175,165,.55);border:1px solid rgba(200,160,150,.12);border-radius:var(--r-md);font-size:12.5px;font-weight:600;cursor:pointer;font-family:inherit;transition:all var(--dur-fast) var(--ease-out);min-height:44px}
.vt-decline-btn:hover{border-color:rgba(200,160,150,.3);color:rgba(220,175,165,.75);background:rgba(200,160,150,.04)}

/* ── Section Label (DM Mono Uppercase) ──────────────────────────── */
.vt-section-label{font-family:'DM Mono',monospace;font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.12em;margin:0 0 .85rem;font-weight:500}

/* ── Info Box (Meta-Panel, Pricing, etc.) ───────────────────────── */
.vt-info-box{margin-top:1.25rem;padding:14px 16px;background:rgba(200,180,140,.03);border:1px solid rgba(200,180,140,.08);border-radius:var(--r-lg);overflow:hidden}
.vt-info-grid{display:grid;grid-template-columns:auto 1fr;gap:.5rem .85rem;font-size:.82rem;line-height:1.5}
.vt-info-grid .k{color:var(--muted)}

/* ── Track Stepper ──────────────────────────────────────────────── */
.vt-stepper{display:flex;gap:.5rem;margin-bottom:1.25rem;position:relative}
.vt-step{text-align:center;flex:1;position:relative;padding-top:34px}
.vt-step-dot{position:absolute;top:0;left:50%;transform:translateX(-50%);width:24px;height:24px;border-radius:50%;font-size:11px;font-weight:700;line-height:20px;display:flex;align-items:center;justify-content:center;z-index:2;transition:all var(--dur-base)}
.vt-step-dot.done{background:var(--gold);border:2px solid var(--gold);color:#080808}
.vt-step-dot.current{background:var(--gold);border:2px solid var(--gold);color:#080808}
.vt-step-dot.future{background:var(--dark);border:2px solid var(--border2);color:var(--muted)}
.vt-step-label{font-family:'DM Mono',monospace;font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;transition:color var(--dur-base)}
.vt-step-label.active{color:var(--gold)}
.vt-step-label.inactive{color:var(--muted)}
.vt-step-date{font-size:.65rem;color:var(--muted);margin-top:3px;font-family:'DM Mono',monospace}

/* ── Track Container ────────────────────────────────────────────── */
.vt-track-wrap{background:var(--card);border:1px solid var(--border2);border-radius:var(--r-lg);padding:1.5rem;overflow:hidden;box-sizing:border-box}
.vt-track-header{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:.75rem;margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:1px solid var(--border2)}
.vt-track-id{font-family:'DM Mono',monospace;font-size:.78rem;color:var(--gold);font-weight:600}
.vt-track-id .pre{color:var(--muted);font-weight:400;margin-right:.5rem}

/* ── Item List (Track + Cart) ───────────────────────────────────── */
.vt-items{margin-top:1.25rem}
.vt-item{display:flex;justify-content:space-between;align-items:center;padding:.65rem 0;border-bottom:1px solid var(--border)}
.vt-item:last-child{border-bottom:none}
.vt-item-title{flex:1;color:var(--white);font-size:.85rem}
.vt-item-qty{color:var(--muted);font-size:.78rem;margin:0 .8rem;font-family:'DM Mono',monospace}
.vt-item-price{color:var(--gold);font-family:'DM Mono',monospace;font-size:.85rem;font-weight:600;white-space:nowrap}

/* ── Pricing Block ──────────────────────────────────────────────── */
.vt-pricing{margin-top:1rem;padding:14px 16px;background:rgba(200,180,140,.03);border:1px solid rgba(200,180,140,.08);border-radius:var(--r-lg);font-size:.85rem}
.vt-pricing-row{display:flex;justify-content:space-between;padding:5px 0;color:var(--white)}
.vt-pricing-row .k{color:var(--muted)}
.vt-pricing-row.discount{color:var(--gold)}
.vt-pricing-total{border-top:1px solid var(--border2);margin-top:8px;padding-top:8px;display:flex;justify-content:space-between;align-items:center;font-weight:700}
.vt-pricing-total .k{color:var(--muted);font-family:'DM Mono',monospace;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase}
.vt-pricing-total .v{color:var(--gold);font-family:'Bebas Neue',sans-serif;font-size:1.6rem;letter-spacing:.04em}

/* ── Tracking Link Box ──────────────────────────────────────────── */
.vt-tracking-box{background:var(--dark);border:1px solid var(--gold);border-radius:var(--r-md);padding:1rem;margin:1.25rem 0;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.vt-tracking-nr{font-family:'DM Mono',monospace;font-size:.85rem;color:var(--gold);font-weight:600;word-break:break-all}
.vt-tracking-carrier{font-size:.7rem;color:var(--muted);margin-top:3px;letter-spacing:.06em;text-transform:uppercase;font-family:'DM Mono',monospace}
.vt-tracking-link{background:var(--gold);color:#080808;padding:.55rem 1rem;text-decoration:none;border-radius:6px;font-family:'DM Mono',monospace;font-size:.65rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700;white-space:nowrap;transition:all var(--dur-fast)}
.vt-tracking-link:hover{filter:brightness(1.05);transform:translateY(-1px)}

/* ── Checkout Method Selector ───────────────────────────────────── */
.vt-checkout-methods{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.vt-checkout-method{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border-default);border-radius:var(--r-md);cursor:pointer;font-family:inherit;font-size:13px;font-weight:500;letter-spacing:-.005em;text-align:left;width:100%;transition:all var(--dur-fast) var(--ease-out);background:rgba(200,180,140,.03);color:rgba(245,245,240,.7)}
.vt-checkout-method:hover{border-color:rgba(200,180,140,.22);background:rgba(200,180,140,.05)}
.vt-checkout-method.active{background:rgba(200,169,110,.06);border-color:var(--gold);color:#f5f5f0}
.vt-checkout-radio{width:16px;height:16px;border-radius:50%;border:2px solid rgba(200,180,140,.2);flex-shrink:0;transition:all var(--dur-fast)}
.vt-checkout-method.active .vt-checkout-radio{background:var(--gold);border-color:var(--gold)}
.vt-checkout-method .ic{display:inline-flex;color:var(--gold)}

/* ── Hint / Note Text ───────────────────────────────────────────── */
.vt-hint{font-size:10px;color:rgba(245,245,240,.25);text-align:center;margin-top:8px}
.vt-sub-hint{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:rgba(245,245,240,.45);margin-bottom:10px}

/* ── Drawer Shared ──────────────────────────────────────────────── */
.vt-drawer-loading{text-align:center;padding:3rem 1rem;color:rgba(245,245,240,.42);font-family:'DM Mono',monospace;font-size:.75rem}
.vt-drawer-empty{text-align:center;padding:48px 24px 32px}
.vt-drawer-empty svg{opacity:.3;margin-bottom:14px}
.vt-drawer-empty h3{font-size:15px;font-weight:600;color:#f5f5f0;margin-bottom:6px;letter-spacing:-.005em}
.vt-drawer-empty p{font-size:13px;color:rgba(245,245,240,.42);line-height:1.55;margin-bottom:18px;max-width:280px;margin-left:auto;margin-right:auto}

/* ── Admin Draft Method Grid ────────────────────────────────────── */
.vt-draft-method{display:flex;align-items:center;gap:10px;padding:12px 14px;background:rgba(200,180,140,.03);border:1px solid var(--border-default);color:rgba(245,245,240,.6);border-radius:var(--r-lg);cursor:pointer;font-family:inherit;font-size:12.5px;font-weight:500;transition:all var(--dur-fast) var(--ease-out);text-align:left}
.vt-draft-method:hover{border-color:rgba(200,180,140,.22);background:rgba(200,180,140,.05)}
.vt-draft-method.active{background:rgba(200,169,110,.06);border-color:var(--gold);color:#f5f5f0}
.vt-draft-method .ic{display:inline-flex;flex-shrink:0;transition:color var(--dur-fast)}
.vt-draft-method.active .ic{color:var(--gold)}
.vt-draft-method .sub{font-size:10px;color:var(--muted);font-weight:400}

/* ── Responsive Overrides ───────────────────────────────────────── */
@media(max-width:480px){
  .vt-method-grid{grid-template-columns:1fr}
  .vt-coin-grid{grid-template-columns:repeat(3,1fr)}
  .vt-ocard-total{font-size:14px}
  .vt-pay-header .amount{font-size:1.6rem}
  .vt-track-wrap{padding:1rem}
  .vt-info-box{padding:12px}
  .vt-pricing{padding:12px}
}

/* CSP-Haertung: Hover-Utility-Klassen (ersetzen inline onmouseover/onmouseout) */
.vt-hv-cobackcart-s2{color:rgba(245,245,240,.3)}.vt-hv-cobackcart-s2:hover{color:var(--gold)}
.vt-hv-coupon-s2{border-color:rgba(200,180,140,.12);color:rgba(245,245,240,.78)}.vt-hv-coupon-s2:hover{border-color:var(--gold);color:var(--gold)}
.vt-hv-keycopy-s3:hover{border-color:var(--gold)!important;color:var(--gold)!important}
.vt-hv-dllink-s3:hover{border-color:var(--gold)!important;color:var(--gold)!important}
.vt-hv-opa85-s3:hover{opacity:.85}
.vt-hv-saveprofile-s3:hover{filter:brightness(1.06);box-shadow:0 4px 14px rgba(200,169,110,.28)}
.vt-hv-acctexport-s4:hover{border-color:var(--gold)!important;color:var(--gold)!important;background:rgba(200,169,110,.05)!important}
.vt-hv-acctdelbtn-s4:hover{background:var(--danger-soft)!important;border-color:rgba(200,144,122,.55)!important}
.vt-hv-acctback-s4:hover{color:var(--gold)!important}
.vt-hv-cancelitem-s5{background:transparent}.vt-hv-cancelitem-s5:hover{background:rgba(200,180,140,.03)}
.vt-hv-cancelreason-s5{background:transparent}.vt-hv-cancelreason-s5:hover{background:rgba(200,180,140,.04)}
