/* =========================
   THEME / VARS
========================= */
:root{
  /* Kanten / Breite */
  --dock-margin: 170px;        /* Abstand links/rechts der Dock-Navbar */
  --dock-inner-pad: 24px;      /* Innenabstand Topbar & Dock */
  --dock-gap-top: -25px;         /* Abstand Dock zur Topbar */
  --dock-max: 1440px;          /* optionaler Max-Wert (wird von calc unten übersteuert) */

  /* Farben */
  --hdr-bg:#0c0f14;
  --dock-bg:#191e27;
  --dock-border:#191d26;
  --text:#e3e8f4;
  --muted:#8b94a9;
  --hover:#1f2633;
  --red:#007bff;
  --red2:#007bff;
  --blue:#7a86ff;
}

/* =========================
   HEADER / BACKDROP
========================= */
.site-header{
  background: radial-gradient(transparent 1px, var(--hdr-bg) 1px), var(--hdr-bg);
  background-size: 8px 8px, auto;
  padding:14px 0 42px;  /* oben Luft + unten Platz für Dock */
}



/*------------------------------------------- HERO -------------------------------------------------------*/

/* =========================
   HERO (1:1 wie Referenz)
========================= */
:root{
  /* wie weit das Hero-Background BEREITS ÜBER der Dock-Navbar beginnen soll */
  --hero-overlap: 120px;              /* anpassen: 100–160 je nach Dock-Höhe */
  --hero-min-h: 640px;                /* Höhe des markierten Bereichs */
  --hero-pad-bottom: 80px;            /* Platz bis zu den Cards darunter */
  --dock-margin: 170px;               /* kommt bereits von oben – gleiche Kanten */
  --hero-text-max: 760px;             /* max Breite des Textblocks links */
  --hero-red: #007bff;
}

/* Full-bleed Background mit Overlay, beginnt schon über der Navbar */
.hero{
  position: relative;
  /* dein Liquid liefert das background-image inline -> hier nur Verhalten: */
  background-position: center top;
  background-size: cover;
  background-repeat: no-repeat;

  /* Bild soll bereits HINTER der Dock erscheinen */
  margin-top: calc(var(--hero-overlap) * -1);
  padding-top: calc(140px + var(--hero-overlap));
  padding-bottom: var(--hero-pad-bottom);
  min-height: var(--hero-min-h);
}

/* dunkles Overlay + leichter links->rechts Verlauf (wie Referenz) */
.hero::after{
  content:"";
  position:absolute; inset:0;
  background:
    linear-gradient(90deg, rgba(0,0,0,.70) 0%, rgba(0,0,0,.55) 38%, rgba(0,0,0,.35) 62%, rgba(0,0,0,.20) 100%),
    radial-gradient(1200px 480px at 0% 0%, rgba(0,0,0,.65) 0%, rgba(0,0,0,0) 70%);
  pointer-events:none;
}

/* gleiche linke/rechte Kanten wie Topbar/Dock */
.hero > .container{
  width: calc(100% - (var(--dock-margin)*2));
  margin: 0 auto;
  position: relative; z-index: 1;    /* über Overlay */
  display: grid;
  grid-template-columns: 1.05fr .95fr;  /* Text links / Bild rechts */
  gap: 32px;
  align-items: end;
}

/* TEXTBLOCK links */
.hero .content{
  max-width: var(--hero-text-max);
  color: #e9edf6;
}

/* Überschrift groß & dicht wie im Shot */
.hero .content h1{
  margin: 0 0 16px 0;
  line-height: 1.06;
  font-weight: 800;
  /* skaliert sauber: ~56–72px am Desktop */
  font-size: clamp(40px, 5.2vw, 72px);
  letter-spacing: .2px;
}

/* Rot für Akzent-Wörter im Titel (nutze im Titel <span class="accent">No Risk.</span>) */
.hero .content h1 .accent,
.hero .content h1 b,
.hero .content h1 strong,
.hero .content h1 em{
  color: var(--hero-red);
  font-weight: 800;
}

/* Subline */
.hero .content p{
  margin: 0 0 24px 0;
  color: #c9d2e2;
  font-size: 16px;
}

/* Fake-Search-Capsule */
.hero .fake-searchbar{
  display:flex; align-items:center; gap:12px;
  background: rgba(15,18,24,.75);
  border:1px solid rgba(255,255,255,.12);
  border-radius: 12px;
  padding: 12px 14px;
  backdrop-filter: blur(3px);
  max-width: 600px;
  margin: 4px 0 22px 0;
  cursor: pointer;
  box-shadow: 0 10px 28px rgba(0,0,0,.35);
}
.hero .fake-searchbar svg{ width:22px; height:22px; color:#cfd6e4; flex:0 0 22px; }
.hero .fake-searchbar input{
  background:transparent; border:0; outline:0; color:#e9edf6;
  font-weight: 600; width:100%;
}

/* Stats Reihe */
.hero .stats-wrapper{ margin-top: 6px; }
.hero .stats{
  display:flex; gap: 28px; flex-wrap: wrap;
  color:#cfd6e4; font-size: 14px;
}
.hero .stats .value{ display:block; font-size: 22px; font-weight:800; color:#fff; }
.hero .stats .label{ opacity:.85; }

/* HERO-BILD rechts (optional) */
.hero .image{ display:flex; align-items:end; justify-content:flex-end; }
.hero .image img{
  max-height: 520px; width: auto; height: auto;
  filter: drop-shadow(0 20px 40px rgba(0,0,0,.55));
  object-fit: contain;
}

/* ---------- Responsive ---------- */
@media (max-width: 1200px){
  :root{ --hero-min-h: 560px; --hero-overlap: 110px; }
  .hero > .container{ grid-template-columns: 1fr .9fr; gap: 24px; }
  .hero .image img{ max-height: 480px; }
}
@media (max-width: 992px){
  :root{ --hero-overlap: 80px; }
  .hero{ padding-top: calc(120px + var(--hero-overlap)); }
  .hero > .container{ grid-template-columns: 1fr; }
  .hero .image{ order: 2; justify-content: center; }
  .hero .image img{ max-width: 84%; max-height: 420px; }
  .hero .content{ order: 1; text-align: left; }
  .hero .fake-searchbar{ max-width: 100%; }
}
@media (max-width: 576px){
  :root{ --hero-overlap: 64px; --hero-min-h: 520px; }
  .hero .content h1{ font-size: clamp(34px, 8vw, 44px); }
  .hero .stats{ gap: 18px; font-size: 13px; }
  .hero .stats .value{ font-size: 18px; }
}


/* Hero-Bereich mit Hintergrund über gesamte Höhe inkl. Navbar */
.hero {
  position: relative;
  background-image: url('DEIN-BILD-LINK'); /* bleibt oder kommt von deinem HTML */
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;

  /* kein margin zwischen Navbar und Hero */
  margin-top: 0;

  /* sorgt dafür, dass das Bild schon hinter die Navbar geht */
  padding-top: 160px; /* Höhe deiner Navbar + extra Abstand für Content */
  padding-bottom: 80px;
  min-height: 640px;
}

/* Overlay über kompletten Hero inkl. Navbar */
.hero::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0,0,0,0.5); /* dunkler Layer wie bei dir im Design */
  pointer-events: none;
  z-index: 0;
}

/* Content im Hero über dem Overlay */
.hero > .container {
  position: relative;
  z-index: 1;
}

:root{
  /* total height of your topbar + dock card */
  --header-stack: 180px;   /* tweak 10–20px until perfect */
}

/* HERO: pull the section up so its background starts under the navbar,
   then add the same amount as padding so the content stays in place. */
.hero{
  position: relative;
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;

  /* key trick */
  margin-top: calc(var(--header-stack) * -1);
  padding-top: calc(var(--header-stack) + 120px); /* 120px = spacing above text */
  padding-bottom: 140px;

  min-height: 760px; /* enough height like on the ref */
  overflow: clip;
  z-index: 0;
}

/* the dark overlay must cover the whole hero */
.hero .bg-overlay{
  position:absolute;
  inset:0;
  background: rgba(0,0,0,.58);
  pointer-events:none;
  z-index: 0;
}

/* make sure hero content is above the overlay */
.hero > .container,
.hero .content{ position: relative; z-index: 1; }

/* keep the dock card above the hero background */
.site-header .navbar.component{ position: relative; z-index: 5; }

/* Use the same side margins you already set for the dock */
.hero > .container{
  max-width: none !important;
  width: calc(100% - (var(--dock-margin) * 2)) !important;
  margin: 0 auto !important;
  padding-left: var(--dock-inner-pad) !important;
  padding-right: var(--dock-inner-pad) !important;
}

:root {
  --hero-text-top: -85px;       /* Text weiter rauf */
  --hero-title-max: 72px;      /* max. Größe Desktop */
  --hero-title-min: 38px;      /* min. Größe Mobile */
  --hero-body: 17px;           /* Subline-Größe */
}

/* Hero-Textblock */
.hero .hero-text {
  max-width: var(--hero-text-max);
  margin-top: var(--hero-text-top);
  color: #e9edf6;
}

/* Titel */
.hero .hero-text h1 {
  margin: 0 0 14px 0;
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: .2px;
  font-size: clamp(var(--hero-title-min), 5.2vw, var(--hero-title-max));
}

/* Weißer Part */
.hero .hero-text .highlight {
  color: #f5f7fb;
}

/* Roter Part mit Verlauf */
.hero .hero-text .danger {
  font-weight: 800;
  background: linear-gradient(90deg, #007bff 0%, #007bff 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* Subline */
.hero .hero-text p {
  margin: 0 0 20px 0;
  font-size: clamp(15px, 1.4vw, var(--hero-body));
  line-height: 1.55;
  color: #c8d0df;
}

/* Responsives Feintuning */
@media (max-width: 992px) {
  :root {
    --hero-text-top: 20px;
    --hero-title-max: 64px;
    --hero-title-min: 32px;
  }
}

@media (max-width: 576px) {
  :root {
    --hero-text-top: 16px;
    --hero-title-min: 28px;
    --hero-body: 15px;
  }
}

.hero::before,
.hero::after{ display:none !important; }


/* ===== Hero: Bild etwas verblassen ===== */
.theme-header__wrap .hasBackground{
  /* weniger bunt/kontrast, bisschen dunkler */
  filter: saturate(.8) contrast(.94) brightness(.96);
  opacity: .92;                   /* 1 = voll sichtbar, 0.85 = mehr Fade */
}

/* ===== Hero: Fades/Overlays ===== */
.theme-header__hero{ position: relative; }

/* 1) Linker Fade unter der Navbar in die Headerfarbe */
.theme-header__hero::before{
  content:"";
  position:absolute; inset:0;
  pointer-events:none; z-index:0;             /* unter Text, über Bild */
  /* Passe die Farbe an deine Header- / Body-Farbe an */
  --bg: var(--hdr-bg, #0c0f14);
  /* Übergang so, dass er genau bei der Dock/Topbar-Kante endet */
  background:
    linear-gradient(
      90deg,
      var(--bg) 0
      /* bis ungefähr Kante + Innenpadding der Dockkarte */
      , var(--bg) calc(var(--dock-margin, 170px) + var(--dock-inner-pad, 24px))
      , color-mix(in srgb, var(--bg) 75%, transparent) calc(var(--dock-margin,170px) + var(--dock-inner-pad,24px) + 80px)
      , transparent calc(var(--dock-margin,170px) + var(--dock-inner-pad,24px) + 220px)
    );
}

/* 2) Leichter globaler Verlauf über dem Bild (fein) */
.theme-header__hero::after{
  content:""; position:absolute; inset:0; pointer-events:none; z-index:0;
  background:
    /* ein sehr sanfter Schwarzverlauf fürs „Verblassen“ */
    radial-gradient(1200px 500px at 0% 0%, rgba(0,0,0,.18) 0%, rgba(0,0,0,0) 70%),
    linear-gradient(90deg, rgba(0,0,0,.22) 0%, rgba(0,0,0,.12) 45%, rgba(0,0,0,.06) 70%, rgba(0,0,0,0) 100%);
  opacity: 1;
}

/* Sicherstellen, dass der Text über den Overlays liegt */
.theme-header__hero .ipsLayout_container,
.theme-header__hero .heroTitle,
.theme-header__hero .heroDesc{ position: relative; z-index: 1; }

/* Optional: auf kleinen Screens den Fade etwas schmaler */
@media (max-width: 992px){
  .theme-header__hero::before{
    background:
      linear-gradient(
        90deg,
        var(--bg) 0, var(--bg) 48px,
        color-mix(in srgb, var(--bg) 75%, transparent) 120px,
        transparent 220px
      );
  }
}


/* Bild leicht verblassen */
.theme-header__hero img,
.theme-header__wrap img {
    opacity: 0.85; /* sichtbare Transparenz */
    filter: brightness(0.9) saturate(0.9);
}

/* Linker Fade */
.theme-header__hero {
    position: relative;
}

.theme-header__hero::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 200px; /* Breite des Fades, anpassen */
    height: 100%;
    background: linear-gradient(to right, #0b0d11 0%, transparent 100%);
    z-index: 2; /* Über dem Bild, unter Text */
    pointer-events: none;
}

/* Text soll über allem liegen */
.theme-header__hero .ipsLayout_container {
    position: relative;
    z-index: 3;
}
/* ---------- NAV SEARCH ---------- */
.nav-search{
  background: #171b22;
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 12px;
  height: 48px;
  padding: 10px 12px;
  display: flex;
  align-items: center;
  gap: 12px;
  box-shadow: 0 6px 16px rgba(0,0,0,.28);
  width: 440px;               /* desktop width */
}

.nav-search--mobile{ width: 100%; }

.nav-search:focus-within{
  border-color: rgba(255,255,255,.12);
  box-shadow:
    0 0 0 2px rgba(255,255,255,.04),
    0 0 0 3px rgba(61, 135, 255, 0.18);
}

.nav-search .search-icon{
  display: inline-grid;
  place-items: center;
  width: 28px; height: 28px;
  border: 0; background: transparent; padding: 0;
  color: #9aa3b2; cursor: pointer;
}

.nav-search .search-input{
  flex: 1 1 auto;
  min-width: 120px;
  background: transparent;
  border: 0; outline: 0;
  color: #e7ecf7;
  font-weight: 600;
}
.nav-search .search-input::placeholder{ color:#9aa3b2; font-weight:500; }

/* Filter chip (summary) */
.nav-search .search-filter{ position: relative; }
.nav-search .filter-summary{
  list-style: none;
  cursor: pointer;
  user-select: none;
  background: #11151b;
  color: #cfd6e4;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 10px;
  padding: 8px 10px;
  font-size: 14px;
  line-height: 1;
}
.nav-search .search-filter[open] .filter-summary{
  border-color: rgba(255,255,255,.18);
}

/* Dropdown menu */
.nav-search .filter-menu{
  position: absolute;
  right: 0; top: calc(100% + 8px);
  background: #12161c;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 10px;
  padding: 8px;
  min-width: 180px;
  box-shadow: 0 12px 28px rgba(0,0,0,.38);
  z-index: 30;
}
.nav-search .filter-menu li{ list-style: none; }
.nav-search .filter-menu label{
  display: flex; gap: 8px; align-items: center;
  color: #cfd6e4; font-size: 14px; padding: 8px 10px;
  border-radius: 8px; cursor: pointer;
}
.nav-search .filter-menu label:hover{
  background: rgba(255,255,255,.04);
}
.nav-search .filter-menu input{ accent-color: #007bff; }

/* Reduce pill a bit on small screens */
@media (max-width: 1200px){
  .nav-search{ width: 360px; }
}
@media (max-width: 992px){
  .nav-search{ height: 46px; }
}
:root {
  --tw-bg: #0d1015;
  --tw-panel: #121418;
  --tw-line: rgba(255,255,255,.08);
  --tw-line-soft: rgba(255,255,255,.06);
  --tw-text: #e9edf6;
  --tw-muted: #c7cfdd;
  --tw-red: #007bff;
}

/* Container Hintergrund */
.shop-wrapper {
  background-color: var(--tw-bg);
  padding: 20px;
}

/* Filter Buttons */
.filter-bar .btn-danger {
  background-color: var(--tw-red);
  border: none;
}
.filter-bar .btn-dark {
  background-color: var(--tw-panel);
  border: 1px solid var(--tw-line-soft);
  color: var(--tw-text);
}
.filter-bar .btn-dark:hover {
  border-color: var(--tw-line);
}

/* ===================== THEME VARS ===================== */
:root{
  --c-bg: #0e1217;
  --c-panel: #11161d;
  --c-panel-2: #0c1117;
  --c-stroke: #262e39;
  --c-text: #e9eef5;
  --c-accent: #007bff;
  --c-accent-soft: rgba(59, 128, 231, 0.18);
  --shadow-1: 0 8px 22px rgba(0,0,0,.35);
  --shadow-2: 0 12px 30px rgba(0,0,0,.45);
}

/* etwas Luft im Grid */
.row.g-3{ row-gap: 1.1rem; }

/* ===================== CARD ===================== */
.group-card.card{
  position: relative;
  display: block;
  border: 1px solid var(--c-stroke);
  background: linear-gradient(180deg, var(--c-panel) 0%, var(--c-panel-2) 100%);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: var(--shadow-1);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.group-card.card:hover{
  transform: translateY(-3px);
  box-shadow: var(--shadow-2);
  border-color: #344053;
}

/* ===================== BILDBEREICH 16:9 ===================== */
.group-card__img{
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #0b0f14;
}
.group-card__img > img{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* leichte Bild-Overlays (dezent) */
.group-card__img::before{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(255,255,255,.05) 0%, rgba(0,0,0,0) 35%);
  pointer-events:none;
}

/* ===================== TITEL-BUBBLE über data-title ===================== */
.group-card__img::after{
  content: attr(data-title);
  position: absolute;
  left: 12px;
  bottom: 10px;
  max-width: calc(100% - 24px);
  display: inline-flex;
  align-items: center;
  padding: .42rem .68rem;
  border-radius: 10px;
  font-size: .86rem;
  font-weight: 800;
  letter-spacing: .02em;
  color: #e9eef5;
  background: rgba(15,20,25,.85);
  border: 1px solid rgba(255,255,255,.12);
  backdrop-filter: blur(6px);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  z-index: 2;
  box-shadow: 0 8px 22px rgba(0,0,0,.45);
  transition: background .18s ease, box-shadow .18s ease, transform .18s ease;
}
.group-card:hover .group-card__img::after{
  background: rgba(18,24,31,.92);
}

/* ===================== CATALOG BOX / TOOLBAR ===================== */
.catalog-box{
  background: transparent;
  border: 0;
  padding: 0;
  box-shadow: none;
  margin-top: .75rem;
}
.catalog-box > h2{
  margin: 0 0 .75rem;
  font-weight: 800;
  color: var(--c-text, #e9eef5);
}

.catalog-toolbar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  padding:.5rem .6rem;
  border-radius:12px;
  border:1px solid var(--c-stroke, #202833);
  background: linear-gradient(180deg, rgba(16,21,27,.55), rgba(11,15,20,.55));
  margin-bottom:.9rem;
}

.catalog-letters{
  display:flex;
  flex-wrap:wrap;
  gap:.35rem;
}
.catalog-letters .chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:36px;
  padding:.45rem .55rem;
  border-radius:10px;
  border:1px solid var(--c-stroke, #202833);
  background:#11161c;
  color:var(--c-text, #e9eef5);
  font-weight:700;
  font-size:.8rem;
  line-height:1;
  transition: background .2s, border-color .2s, transform .15s;
}
.catalog-letters .chip:hover{
  transform: translateY(-1px);
  background:#151c24;
}
.catalog-letters .chip.is-active{
  background: var(--c-accent, #007bff);
  border-color: var(--c-accent, #007bff);
  color:#fff;
  box-shadow: 0 6px 18px rgba(0, 123, 255, 0.18);
}

.catalog-search{
  margin-left:auto;
  min-width:220px;
}
.catalog-search input{
  width:100%;
  height:38px;
  padding:.4rem .75rem;
  border-radius:10px;
  border:1px solid var(--c-stroke, #202833);
  background:#0f1419;
  color:var(--c-text, #e9eef5);
  outline:none;
}
.catalog-search input::placeholder{ color:#8b97a6; }

/* ===================== GRID / CONTAINER ===================== */
/* 🔹 Only affect the PRODUCTS section container */
section.products-component.container {
  max-width: 1600px !important;
}

/* 🔹 Only affect columns INSIDE the products grid */
section.products-component #catalogGrid > .col-12 {
  display: flex !important;
}

section.products-component #catalogGrid > .col-12 .group-card {
  width: 100% !important;
}

section.products-component #catalogGrid > .col-12.is-hidden {
  display: none !important;
}

/* ✔ Nur im Shop-Grid die Spaltenbreite selbst steuern */
.shop-wrapper .row.g-3{
  display:flex;
  flex-wrap:wrap;
  gap:20px;
  --tile-width:48%; /* 48%≈2 pro Reihe; 32%≈3; 100%=1 */
}
.shop-wrapper .row.g-3 > [class*="col-"]{
  flex:0 0 var(--tile-width);
  max-width:var(--tile-width);
}
@media (max-width:1199.98px){
  .shop-wrapper .row.g-3{ --tile-width:48%; }
}
@media (max-width:767.98px){
  .shop-wrapper .row.g-3{ --tile-width:100%; }
}

/* ===================== DIVERSES ===================== */
.group-card__overlay{ pointer-events:none; }
.group-card__badges{ z-index:3; }
.product-img-placeholder{
  position:absolute; inset:0;
  display:grid; place-items:center;
  background: linear-gradient(180deg,#151b22,#10161d);
  color:#647286;
}

/* Body kompakt, Titel im Body ausgeblendet (Bubble übernimmt) */
.group-card__body{ padding:.8rem .9rem 1rem; }

/* Card-Grundlage */
.group-card.card{
  position: relative;
  display: block;
  border: 1px solid var(--c-stroke, #262e39);
  background: linear-gradient(180deg, var(--c-panel, #11161d), var(--c-panel-2, #0c1117));
  border-radius: 12px;
  overflow: hidden;
  box-shadow: var(--shadow-1, 0 8px 22px rgba(0,0,0,.35));
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.group-card.card:hover{
  transform: translateY(-3px);
  box-shadow: var(--shadow-2, 0 12px 30px rgba(0,0,0,.45));
  border-color: #344053;
}

/* Bild-Bereich (16:9) */
.group-card__img{
  position: relative;
  width: 100%;
  aspect-ratio: 16/9;
  overflow: hidden;
  background: #0b0f14;
}
.group-card__img > img{
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  display: block;
  transform: scale(1);
  transition: transform .35s ease;
}
.group-card:hover .group-card__img > img{ transform: scale(1.02); }

/* sanftes Overlay */
.group-card__img::before{
  content:""; position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(255,255,255,.05) 0%, rgba(0,0,0,0) 35%);
  pointer-events:none;
}

/* === Bubble im Bild: liest den Namen aus data-title === */
.group-card__img::after{
  content: attr(data-title);
  position: absolute;
  left: 12px; bottom: 10px;
  max-width: calc(100% - 24px);
  display: inline-flex; align-items: center;
  padding: .42rem .68rem;
  border-radius: 10px;
  font-size: .86rem; font-weight: 800; letter-spacing: .02em;
  color: #e9eef5;
  background: rgba(15, 20, 25, .85);
  border: 1px solid rgba(255,255,255,.12);
  backdrop-filter: blur(6px);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  box-shadow: 0 8px 22px rgba(0,0,0,.45);
  transition: background .18s ease, box-shadow .18s ease, transform .18s ease;
  z-index: 2;
}
.group-card:hover .group-card__img::after{
  background: rgba(18, 24, 31, .92);
}

/* Nur Bild & Bubble sichtbar – Rest ausblenden */
.group-card__body,
.group-card__meta,
.group-card__price,
.group-card__title,
.group-card__overlay,
.group-card .text-primary{
  display: none !important;
}

/* Badges bleiben klick-neutral darüber */
.group-card__overlay{ pointer-events:none; }
.group-card__badges{ z-index: 3; }

/* Placeholder hübsch */
.product-img-placeholder{
  position:absolute; inset:0;
  display:grid; place-items:center;
  background: linear-gradient(180deg,#151b22,#10161d);
  color:#647286;
}

/* Card komplett randlos */
.group-card.card {
  border: none;
  border-radius: 0;
  box-shadow: none;
}

/* Bild flächendeckend und leicht gezoomt */
.group-card__img {
  position: relative;
  width: 100%;
  aspect-ratio: 16/9;
  overflow: hidden;
  background: #000; /* Fallback falls kein Bild */
}

.group-card__img > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transform: scale(1.05); /* leicht gezoomt */
}

/* Optional: Hover noch etwas mehr zoomen */
.group-card:hover .group-card__img > img {
  transform: scale(1.06);
}

.group-card__img > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transform: scale(1.22); /* vorher 1.05 → jetzt stärker gezoomt */
  transition: transform 0.35s ease;
}

.group-card:hover .group-card__img > img {
  transform: scale(1.18); /* beim Hover noch minimal mehr */
}

/* Card mit runden Ecken */
.group-card.card {
  border: none;
  border-radius: 12px; /* gewünschte Rundung */
  overflow: hidden;    /* wichtig, damit Bild den Radius übernimmt */
  box-shadow: none;
}

/* Bild-Container auch runden */
.group-card__img {
  border-radius: inherit;
  overflow: hidden;
}

/* Bild füllt die Card */
.group-card__img > img {
  border-radius: inherit;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transform: scale(1.18);
  transition: transform 0.35s ease;
}

.group-card:hover .group-card__img > img {
  transform: scale(1.18);
}

/* Shop Section weiter nach oben schieben */
section.container.py-20.component {
  margin-top: -130px; /* Wert anpassen, je nachdem wie hoch */
}

/* Falls die Abstände innerhalb der Section zu groß sind */
section.container.py-20.component .section-title {
  margin-top: 0;
  padding-top: 0;
}

/* ================ PANEL (Box um Filter + Grid) ================ */
.catalog-panel{
  background:#0d0f12;
  border:1px solid rgba(255,255,255,.08);
  border-radius:10px;
  box-shadow:0 0 20px rgba(0,0,0,.4);
  padding:15px;
}

/* ================ FILTER-TOOLBAR ================ */
.catalog-box{ margin-top:.5rem; }

.catalog-toolbar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  padding:.5rem .6rem;
  border-radius:12px;
  border:1px solid var(--c-stroke, #202833);
  background: linear-gradient(180deg, rgba(16,21,27,.55), rgba(11,15,20,.55));
  margin-bottom:.9rem;
  /* keine position: sticky; keine z-index hacks – bleibt im Flow */
}

/* Chips */
.catalog-letters{ display:flex; flex-wrap:wrap; gap:.4rem; }
.catalog-letters .chip{
  border:1px solid var(--c-stroke, #202833);
  background:#11161c;
  color:#e9eef5;
  font-weight:700;
  font-size:.85rem;
  line-height:1;
  border-radius:10px;
  padding:.45rem .7rem;
  cursor:pointer;
  transition: background .2s, border-color .2s, transform .15s;
}
.catalog-letters .chip:hover{ transform:translateY(-1px); background:#151c24; }
.catalog-letters .chip.is-active{
  background:var(--c-accent, #007bff);
  border-color:var(--c-accent, #007bff);
  color:#fff;
  box-shadow:0 6px 18px rgba(230,57,70,.18);
}

/* Suche */
.catalog-search{ margin-left:auto; min-width:220px; }
.catalog-search input{
  width:100%;
  height:38px;
  padding:.4rem .75rem;
  border-radius:10px;
  border:1px solid var(--c-stroke, #202833);
  background:#0f1419;
  color:#e9eef5;
  outline:none;
}
.catalog-search input::placeholder{ color:#8b97a6; }

/* ================ GRID ================ */
#catalogGrid .is-hidden{ display:none !important; } /* Filter-Hide */
.products{ margin:0; } /* bündig im Panel */

/* ================ SECTIONS / NAV ================ */
/* Section nicht künstlich nach oben ziehen – verhindert Überlappungen */
.component.products-component{
  padding-top:0 !important;
  margin-top:0 !important;
}

/* Navbar bleibt oben (ohne das Catalog zu überdecken) */
.navbar{ position:relative; z-index:5000; }

/* keine overflow-clipper nötig – aber falls gesetzt, neutral halten */
.site-header, .component, .container, .container > .row { overflow:visible; }
.component.products-component{
  margin-top:-220px !important;
  padding-top:0 !important;
  position:relative; z-index:2;
}
.component.products-component .section-title,
.component.products-component .section-title h2{ margin-top:0 !important; }
.component.products-component::before{ content:""; display:block; height:1px; margin-top:-1px; }


/* ===== Theme hooks (nutzt deine bestehenden Vars, mit Fallbacks) ===== */
:root{
  --c-bg: #0e1217;
  --c-panel: #11161d;
  --c-panel-2: #0c1117;
  --c-stroke: #262e39;
  --c-text: #e9eef5;
}

/* ===== Grid layout ===== */
.status-grid{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px,1fr));
  gap: 14px;
}

/* ===== Card ===== */
.status-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  padding: 14px 16px;
  border-radius: 14px;
  border:1px solid var(--c-stroke);
  background: linear-gradient(180deg, var(--c-panel), var(--c-panel-2));
  box-shadow: 0 8px 22px rgba(0,0,0,.35);
  color: var(--c-text);
  text-decoration:none;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}
.status-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 14px 32px rgba(0,0,0,.45);
  border-color: #344053;
}

/* Titel */
.status-card__title{
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: .01em;
  margin: 0;
  line-height: 1.15;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ===== Status-Pill rechts ===== */
.status{
  display:flex;
  align-items:center;
  gap: 10px;
  margin-left: auto;
}

/* Indikator (nimmt --st aus dem style-Attribut) */
.status .indicator{
  --dot: var(--st, #22c55e);
  position: relative;
  width: 12px; height: 12px;
  border-radius: 999px;
  background: var(--dot);
  box-shadow:
    0 0 0 2px rgba(0,0,0,.35),
    0 0 18px 0 color-mix(in srgb, var(--dot), transparent 70%);
  flex: 0 0 12px;
}
.status .indicator .pulsating{
  position:absolute; inset:0;
  border-radius:inherit;
  background: var(--dot);
  opacity:.35;
  animation: pulse 1.6s ease-out infinite;
}
@keyframes pulse{
  0%   { transform: scale(1);   opacity:.35; }
  70%  { transform: scale(2.2); opacity:0; }
  100% { transform: scale(2.2); opacity:0; }
}

/* Label-Chip */
.status .label{
  --dot: var(--st, #22c55e);
  display:inline-flex;
  align-items:center;
  gap:.4ch;
  font-weight:800;
  font-size:.82rem;
  letter-spacing:.02em;
  line-height:1;
  padding:.5rem .65rem;
  border-radius:10px;
  color: var(--dot);
  border:1px solid color-mix(in srgb, var(--dot), #ffffff 72%);
  background:
    linear-gradient(180deg,
      color-mix(in srgb, var(--dot), transparent 86%),
      color-mix(in srgb, var(--dot), transparent 92%));
  text-transform: capitalize;
  white-space: nowrap;
}

/* Motion light/dark + accessibility */
@media (prefers-reduced-motion: reduce){
  .status-card{ transition:none }
  .status .indicator .pulsating{ animation: none }
}

/* ===== Optional: Status-Varianten nach Text (fallback, falls du fix mappen willst) ===== */
/* .status[data-label*="offline" i] { --st: #ef4444; }
   .status[data-label*="maintenance" i] { --st: #f59e0b; }
   .status[data-label*="online" i] { --st: #22c55e; } */

   .status-section{
  border:1px solid rgba(255,255,255,.08);
  background: linear-gradient(180deg, #11161d, #0c1117);
  border-radius:16px;
  padding:18px;
  box-shadow:0 10px 32px rgba(0,0,0,.35);
}

.status-list{ display:flex; flex-direction:column; gap:12px; }

/* Card-Styling */
.status-card{
  display:flex; align-items:center; justify-content:space-between;
  gap:12px; padding:14px 16px;
  border-radius:12px; border:1px solid #262e39;
  background: linear-gradient(180deg, #12171d, #0d1117);
  color:#e9eef5; text-decoration:none;
  box-shadow: 0 8px 22px rgba(0,0,0,.35);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.status-card:hover{ transform: translateY(-2px); border-color:#344053; box-shadow:0 14px 32px rgba(0,0,0,.45); }

.status-card__title{ margin:0; font-weight:800; font-size:1rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* Status-Badge rechts */
.status{ display:flex; align-items:center; gap:10px; margin-left:auto; }

.status .indicator{
  --dot: var(--st, #22c55e);
  width:12px; height:12px; border-radius:50%;
  background:var(--dot); position:relative; flex:0 0 12px;
  box-shadow:0 0 0 2px rgba(0,0,0,.35), 0 0 18px 0 color-mix(in srgb, var(--dot), transparent 70%);
}
.status .indicator .pulsating{
  position:absolute; inset:0; border-radius:inherit; background:var(--dot); opacity:.35;
  animation: pulse 1.6s ease-out infinite;
}
@keyframes pulse{ 0%{transform:scale(1);opacity:.35} 70%,100%{transform:scale(2.2);opacity:0} }

.status .label{
  --dot: var(--st, #22c55e);
  display:inline-flex; align-items:center;
  font-weight:800; font-size:.82rem; letter-spacing:.02em; line-height:1;
  padding:.5rem .65rem; border-radius:10px; color:var(--dot);
  border:1px solid color-mix(in srgb, var(--dot), #ffffff 72%);
  background: linear-gradient(180deg,
    color-mix(in srgb, var(--dot), transparent 86%),
    color-mix(in srgb, var(--dot), transparent 92%));
  white-space:nowrap;
}

/* Safety: niemals clippen */
.status-section, .status-list, .status-card { overflow: visible; }
@media (prefers-reduced-motion: reduce){ .status-card{transition:none} .status .pulsating{animation:none} }
.status-list{
  display:grid;
  grid-template-columns: repeat(auto-fill, minmax(280px,1fr));
  gap:12px;
}
.status-card{ height:72px; } /* Option: gleich hohe Kacheln */

/* ===== Section/Panel ===== */
.status-section{
  border:1px solid rgba(255,255,255,.08);
  background: linear-gradient(180deg, #11161d, #0c1117);
  border-radius:16px;
  padding:18px;
  box-shadow:0 10px 32px rgba(0,0,0,.35);
}

.status-group{ margin-bottom:16px; }
.status-group__title{
  margin:0 0 10px 0;
  font-weight:800; color:#e9eef5;
}

/* Liste: einspaltig wie im Screenshot */
.status-list{
  display:flex;
  flex-direction:column;
  gap:12px;
}

/* ===== Card ===== */
.status-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 16px;
  border-radius:12px;
  border:1px solid #262e39;
  background: linear-gradient(180deg, #12171d, #0d1117);
  color:#e9eef5;
  text-decoration:none;
  box-shadow: 0 8px 22px rgba(0,0,0,.35);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}
.status-card:hover{
  transform: translateY(-2px);
  border-color:#344053;
  box-shadow: 0 14px 32px rgba(0,0,0,.45);
}
.status-card__title{
  margin:0; font-size:1rem; font-weight:800;
  letter-spacing:.01em; line-height:1.15;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}

/* ===== Status-Badge rechts ===== */
.status{
  display:flex; align-items:center; gap:10px;
  margin-left:auto;
}

.status .indicator{
  --dot: var(--st, #22c55e);
  width:12px; height:12px; border-radius:999px; position:relative;
  background: var(--dot); flex: 0 0 12px;
  box-shadow:
    0 0 0 2px rgba(0,0,0,.35),
    0 0 18px 0 color-mix(in srgb, var(--dot), transparent 70%);
}
.status .indicator .pulsating{
  position:absolute; inset:0; border-radius:inherit;
  background: var(--dot); opacity:.35;
  animation: pulse 1.6s ease-out infinite;
}
@keyframes pulse{
  0%{ transform:scale(1); opacity:.35; }
  70%{ transform:scale(2.2); opacity:0; }
  100%{ transform:scale(2.2); opacity:0; }
}

/* Chip */
.status .label{
  --dot: var(--st, #22c55e);
  display:inline-flex; align-items:center;
  font-weight:800; font-size:.82rem; letter-spacing:.02em; line-height:1;
  padding:.5rem .65rem; border-radius:10px;
  color: var(--dot);
  border:1px solid color-mix(in srgb, var(--dot), #ffffff 72%);
  background: linear-gradient(180deg,
    color-mix(in srgb, var(--dot), transparent 86%),
    color-mix(in srgb, var(--dot), transparent 92%));
  white-space:nowrap;
}

/* Accessibility */
@media (prefers-reduced-motion: reduce){
  .status-card{ transition:none; }
  .status .indicator .pulsating{ animation:none; }
}
:root{
  --accent-orange: #007bff; /* dein Orange */
}

.highlight .accent-x{
  color: var(--accent-orange);
}

/* Hero: Bild füllt, keine Wiederholung */
.hero{
  position: relative;
  background-position: center top;
  background-size: cover;
  background-repeat: no-repeat;
}

/* Fade-Overlay → unten + rechts in den Seitenhintergrund blenden */
.hero::after{
  content:"";
  position:absolute; inset:0;
  pointer-events:none;

  /* unten (1) und rechts (2) weich zu --c-bg einfaden */
  background:
    linear-gradient(to bottom, transparent 65%, var(--c-bg) 100%),
    linear-gradient(to right,  transparent 70%, var(--c-bg) 100%);
}

/* Optional: wenn du NUR unten ausblenden willst, nutz stattdessen: */
/*
.hero::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background: linear-gradient(to bottom, transparent 65%, var(--c-bg) 100%);
}
*/

.hero{
  -webkit-mask-image: linear-gradient(to bottom, #000 78%, transparent 100%);
          mask-image: linear-gradient(to bottom, #000 58%, transparent 100%);
          mask-image: linear-gradient(to bottom, #000 30%, transparent 100%);
}

/* === Theme-Farben (anpassen) === */
:root{
  --scroll-track:  #0e1217;     /* Track/Hintergrund */
  --scroll-thumb:  #007bff;     /* Orange (Thumb)    */
  --scroll-thumb2: #007bff;     /* Verlauf/unterer Teil */
  --scroll-hover:  #007bff;     /* Hover-Orange      */
}

/* === Firefox === */
html{
  scrollbar-width: thin; /* auto | thin | none */
  scrollbar-color: var(--scroll-thumb) var(--scroll-track);
}

/* === WebKit (Chrome, Edge, Safari) – Seiten-Scrollbar === */
html::-webkit-scrollbar{
  width: 10px;               /* vertikal */
  height: 10px;              /* horizontal */
}
html::-webkit-scrollbar-track{
  background: var(--scroll-track);
}
html::-webkit-scrollbar-thumb{
  background: linear-gradient(180deg, var(--scroll-thumb), var(--scroll-thumb2));
  border-radius: 999px;
  border: 2px solid var(--scroll-track); /* erzeugt „Gap“ */
  box-shadow: 0 0 0 1px rgba(0,0,0,.2) inset;
}
html::-webkit-scrollbar-thumb:hover{
  background: var(--scroll-hover);
}
html::-webkit-scrollbar-corner{
  background: var(--scroll-track);
}

/* === Optional: für scrollbare Container (z.B. .catalog-box, .table-wrap, etc.) === */
.scrollable, .catalog-box, .table-wrap{
  scrollbar-width: thin;
  scrollbar-color: var(--scroll-thumb) transparent;
}
.scrollable::-webkit-scrollbar,
.catalog-box::-webkit-scrollbar,
.table-wrap::-webkit-scrollbar{
  width: 8px;
  height: 8px;
}
.scrollable::-webkit-scrollbar-thumb,
.catalog-box::-webkit-scrollbar-thumb,
.table-wrap::-webkit-scrollbar-thumb{
  background: var(--scroll-thumb);
  border-radius: 999px;
  border: 2px solid transparent;
  background-clip: padding-box;
}

/* STATUS PAGE ---------------------------------------------------------------------------------------------------------------------------------------------- */

#vision-status{
  --accent: #007bff;
  --edge: rgba(255,255,255,.08);
  --text: #E9EEF5;
  --muted:#A1ADBD;
  --card: rgba(255,255,255,.03);
  position: relative;
  border: 1px solid var(--edge);
  border-radius: 22px;
  padding: clamp(18px,2.6vw,28px);
  background: linear-gradient(180deg, rgba(255,255,255,.015), rgba(0,0,0,.16));
  box-shadow: 0 18px 45px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.04);
  overflow: hidden;
  isolation: isolate;
}
#vision-status .x-scan{
  position:absolute; inset:-40% -20% auto -20%;
  height: 70%; pointer-events:none; mix-blend-mode: screen;
  background: radial-gradient(40% 35% at 20% 0%, rgba(0, 136, 255, 0.25), transparent 60%),
              radial-gradient(40% 35% at 80% 0%, rgba(255,193,115,.15), transparent 60%);
  filter: blur(30px); opacity:.35; animation: vs-pulse 7s ease-in-out infinite;
}
#vision-status .x-grid{
  position:absolute; inset:-2px; pointer-events:none; opacity:.18;
  background-image:
    radial-gradient(circle at 50% -10%, rgba(0, 123, 255,.14), transparent 30%),
    linear-gradient(transparent 0 0),
    linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
  background-size: 100% 100%, 100% 100%, 36px 36px, 36px 36px;
  background-position: 0 0, 0 0, 0 0, 0 0;
}
@keyframes vs-pulse{ 0%,100%{opacity:.25} 50%{opacity:.45} }
#vision-status .x-status-head{
  display:flex; flex-wrap:wrap; gap:16px 22px; align-items:flex-end; justify-content:space-between;
  margin-bottom: clamp(14px,2vw,18px);
}
#vision-status .x-title{
  margin:0; font-weight:800; letter-spacing:.2px; color:var(--text);
  font-size: clamp(1.4rem, 2.6vw, 2rem);
}
#vision-status .x-em{
  color: var(--accent);
  text-shadow: 0 0 18px rgba(0, 123, 255,.35);
}
#vision-status .x-sub{ color:var(--muted); margin:.25rem 0 0; }
#vision-status .x-head-right{ display:flex; gap:12px; align-items:flex-end; flex-wrap:wrap; }
#vision-status .x-legend{ display:flex; gap:8px; flex-wrap:wrap; }
#vision-status .x-tag{
  display:inline-flex; align-items:center; gap:8px; padding:8px 12px; border-radius:999px;
  color:#cfd7e6; background:var(--card); border:1px solid var(--edge); cursor:pointer;
  transition: border-color .2s, transform .12s;
}
#vision-status .x-tag .dot{ width:9px; height:9px; border-radius:50%; background:var(--c); box-shadow:0 0 12px var(--c); }
#vision-status .x-tag:not(.is-on){ opacity:.55; }
#vision-status .x-tag:active{ transform: translateY(1px); }
#vision-status .x-tools{ display:flex; gap:10px; align-items:center; }
#vision-status .x-input{
  display:flex; align-items:center; gap:8px; padding:8px 10px; border-radius:10px;
  border:1px solid var(--edge); background:var(--card); color:#cdd6e4;
}
#vision-status .x-input input{
  background:transparent; border:0; color:inherit; outline:0; width:200px;
}
#vision-status .x-refresh{
  display:inline-flex; gap:8px; align-items:center; padding:9px 12px; border-radius:10px;
  color:#0f0f0f; background: linear-gradient(180deg, #007bff, #007bff);
  border:1px solid rgba(0, 123, 255,.35); box-shadow:0 10px 22px rgba(0, 123, 255,.35), inset 0 1px 0 rgba(255,255,255,.2);
}
#vision-status .x-group{ position:relative; margin-top:18px; }
#vision-status .x-group-head h2{
  margin: 0 0 10px; font-size: .95rem; letter-spacing:.14em; text-transform:uppercase; color:#A1ADBD;
}
#vision-status .x-cards{
  display:grid; grid-template-columns: repeat(12, 1fr); gap:12px;
}
@media (max-width: 1200px){ #vision-status .x-cards{ grid-template-columns: repeat(8, 1fr);} }
@media (max-width: 880px){  #vision-status .x-cards{ grid-template-columns: repeat(6, 1fr);} }
@media (max-width: 640px){  #vision-status .x-cards{ grid-template-columns: repeat(1, 1fr);} }
#vision-status .x-card{
  --st: #9aa4b2;
  grid-column: span 12;
  display:flex; flex-direction:column; gap:10px; position:relative;
  padding:14px; border-radius:14px; text-decoration:none; color:var(--text);
  background: var(--card); border:1px solid var(--edge);
  overflow:hidden;
}
@media (min-width: 641px){ #vision-status .x-card{ grid-column: span 6; } }
@media (min-width: 881px){ #vision-status .x-card{ grid-column: span 4; } }
#vision-status .x-card-main{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
}
#vision-status .x-name{ display:flex; flex-direction:column; gap:4px; min-width:0; }
#vision-status .x-label{ font-weight:700; letter-spacing:.2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
#vision-status .x-subtle{ color:var(--muted); font-size:.9rem; }
#vision-status .x-pill{
  display:inline-flex; align-items:center; gap:8px; padding:8px 10px; border-radius:999px;
  border:1px solid color-mix(in srgb, var(--st) 45%, transparent);
  background: linear-gradient(180deg, color-mix(in srgb, var(--st) 18%, transparent), rgba(0,0,0,.15));
  color:#eaf2ff;
}
#vision-status .x-pill .dot{
  width:9px; height:9px; border-radius:50%;
  background: var(--st); box-shadow: 0 0 14px var(--st);
}
#vision-status .x-pill .txt{ font-weight:600; opacity:.95; }
#vision-status .x-meta{
  display:flex; gap:10px; align-items:center; color:#c9d2e1; font-size:.92rem;
}
#vision-status .x-price{
  padding:6px 10px; border-radius:8px; background:rgba(255,255,255,.035); border:1px solid var(--edge);
}
#vision-status .x-card .x-glow{
  position:absolute; inset:-30% -10%; background:
    radial-gradient(30% 30% at 70% 0%, color-mix(in srgb, var(--st) 25%, transparent), transparent 60%);
  filter: blur(28px); opacity:.25; pointer-events:none; transition: opacity .25s;
}
#vision-status .x-card .x-border{
  position:absolute; inset:0; border-radius:inherit; pointer-events:none; opacity:.35;
  background: conic-gradient(from 0deg at 50% 50%,
    rgba(255,255,255,.0),
    color-mix(in srgb, var(--st) 60%, transparent),
    rgba(255,255,255,.0) 45%) border-box;
  -webkit-mask: linear-gradient(#000 0 0) padding-box, linear-gradient(#000 0 0) border-box;
  -webkit-mask-composite: xor; mask-composite: exclude;
  border:1px solid transparent; animation: vs-rotate 14s linear infinite;
}
@keyframes vs-rotate{ to{ transform: rotate(360deg); } }
#vision-status .x-card:hover .x-glow{ opacity:.4; }
#vision-status [data-group][style*="display: none"]{ margin:0; padding:0; }
#vision-status .x-card:hover{ transform: translateY(-1px); transition: transform .12s; }

#vision-status{
  --accent:#007bff; --edge:rgba(255,255,255,.08); --text:#E9EEF5; --muted:#A1ADBD; --card:rgba(255,255,255,.03);
  position:relative; border:1px solid var(--edge); border-radius:22px;
  padding:clamp(18px,2.6vw,28px);
  margin-block: clamp(28px,5vw,64px);
  background:linear-gradient(180deg, rgba(255,255,255,.015), rgba(0,0,0,.16));
  box-shadow:0 18px 45px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.04);
  overflow:hidden; isolation:isolate;
}
#vision-status .x-scan{position:absolute; inset:-40% -20% auto -20%; height:70%; pointer-events:none; mix-blend-mode:screen;
  background: radial-gradient(40% 35% at 20% 0%, rgba(0, 123, 255,.25), transparent 60%),
             radial-gradient(40% 35% at 80% 0%, rgba(255,193,115,.15), transparent 60%);
  filter:blur(30px); opacity:.35; animation:vs-pulse 7s ease-in-out infinite;}
#vision-status .x-grid{position:absolute; inset:-2px; pointer-events:none; opacity:.18;
  background-image: radial-gradient(circle at 50% -10%, rgba(0, 123, 255,.14), transparent 30%),
                    linear-gradient(transparent 0 0),
                    linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
                    linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
  background-size:100% 100%,100% 100%,36px 36px,36px 36px;}
@keyframes vs-pulse{0%,100%{opacity:.25}50%{opacity:.45}}
#vision-status .x-corner-logo{position:absolute; top:382px; right:12px; width:56px; height:56px; display:grid; place-items:center;
  border-radius:14px; border:1px solid var(--edge); background:radial-gradient(70% 70% at 50% 50%, rgba(0, 123, 255,.16), rgba(0,0,0,0));
  box-shadow: inset 0 0 22px rgba(0, 123, 255,.22), 0 8px 26px rgba(0, 123, 255,.18);}
#vision-status .x-corner-logo img{width:60%; height:auto; filter: drop-shadow(0 1px 6px rgba(0, 123, 255,.35));}
.x-status-head{display:flex; flex-wrap:wrap; gap:16px 22px; align-items:flex-end; justify-content:space-between; margin-bottom:clamp(14px,2vw,18px);}
#vision-status .x-title{margin:0; font-weight:800; letter-spacing:.2px; color:var(--text); font-size:clamp(1.4rem,2.6vw,2rem);}
#vision-status .x-em{color:var(--accent); text-shadow:0 0 18px rgba(0, 123, 255,.35);}
#vision-status .x-sub{color:var(--muted); margin:.25rem 0 0;}
#vision-status .x-head-right{display:flex; gap:12px; align-items:flex-end; flex-wrap:wrap;}
#vision-status .x-legend{display:flex; gap:8px; flex-wrap:wrap;}
#vision-status .x-tag{display:inline-flex; align-items:center; gap:8px; padding:8px 12px; border-radius:999px; color:#cfd7e6; background:var(--card); border:1px solid var(--edge); cursor:pointer; transition:border-color .2s, transform .12s;}
#vision-status .x-tag .dot{width:9px; height:9px; border-radius:50%; background:var(--c); box-shadow:0 0 12px var(--c);}
#vision-status .x-tag:not(.is-on){opacity:.55;}
#vision-status .x-tag:active{transform:translateY(1px);}
#vision-status .x-tools{display:flex; gap:10px; align-items:center;}
#vision-status .x-input{display:flex; align-items:center; gap:8px; padding:8px 10px; border-radius:10px; border:1px solid var(--edge); background:var(--card); color:#cdd6e4;}
#vision-status .x-input input{background:transparent; border:0; color:inherit; outline:0; width:200px;}
#vision-status .x-refresh{display:inline-flex; gap:8px; align-items:center; padding:9px 12px; border-radius:10px; color:#0f0f0f; background:linear-gradient(180deg,#007bff,#007bff); border:1px solid rgba(0, 123, 255,.35); box-shadow:0 10px 22px rgba(0, 123, 255,.35), inset 0 1px 0 rgba(255,255,255,.2);}
#vision-status .x-group{position:relative; margin-top:18px;}
#vision-status .x-group-head h2{margin:0 0 10px; font-size:.95rem; letter-spacing:.14em; text-transform:uppercase; color:#A1ADBD;}
#vision-status .x-cards{display:grid; grid-template-columns:repeat(12,1fr); gap:12px;}
@media (max-width:1200px){#vision-status .x-cards{grid-template-columns:repeat(8,1fr);}}
@media (max-width:880px){#vision-status .x-cards{grid-template-columns:repeat(6,1fr);}}
@media (max-width:640px){#vision-status .x-cards{grid-template-columns:repeat(1,1fr);}}
#vision-status .x-card{--st:#9aa4b2; position:relative; z-index:0; grid-column:span 12;
  display:flex; flex-direction:column; gap:10px; text-decoration:none; cursor:pointer;
  padding:14px; border-radius:14px; color:var(--text); background:var(--card); border:1px solid var(--edge); overflow:hidden;}
@media (min-width:641px){#vision-status .x-card{grid-column:span 6;}}
@media (min-width:881px){#vision-status .x-card{grid-column:span 4;}}
#vision-status .x-card-main{display:flex; align-items:center; justify-content:space-between; gap:12px;}
#vision-status .x-name{display:flex; flex-direction:column; gap:4px; min-width:0;}
#vision-status .x-label{font-weight:700; letter-spacing:.2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
#vision-status .x-subtle{color:var(--muted); font-size:.9rem;}
#vision-status .x-pill{display:inline-flex; align-items:center; gap:8px; padding:8px 10px; border-radius:999px; border:1px solid rgba(255,255,255,.08); background:rgba(0,0,0,.15);}
#vision-status .x-pill .dot{width:9px; height:9px; border-radius:50%; background:var(--st); box-shadow:0 0 14px var(--st);}
#vision-status .x-pill .txt{font-weight:600; opacity:.95;}
#vision-status .x-meta{display:flex; gap:10px; align-items:center; color:#c9d2e1; font-size:.92rem;}
#vision-status .x-price{padding:6px 10px; border-radius:8px; background:rgba(255,255,255,.035); border:1px solid var(--edge);}
#vision-status .x-glow,
#vision-status .x-border{pointer-events:none;}
#vision-status .x-glow{position:absolute; inset:-30% -10%; background:radial-gradient(30% 30% at 70% 0%, rgba(0, 123, 255,.25), transparent 60%); filter:blur(28px); opacity:.25; transition:opacity .25s;}
#vision-status .x-border{position:absolute; inset:0; border-radius:inherit; opacity:.35; background:conic-gradient(from 0deg at 50% 50%, rgba(255,255,255,.0), rgba(0, 123, 255,.5), rgba(255,255,255,.0) 45%); -webkit-mask:linear-gradient(#000 0 0) padding-box,linear-gradient(#000 0 0) border-box; -webkit-mask-composite:xor; mask-composite:exclude; border:1px solid transparent; animation:vs-rotate 14s linear infinite;}
#vision-status .x-card:hover .x-glow{opacity:.4;}
@keyframes vs-rotate{to{transform:rotate(360deg)}}

/* INFO CARD ---------------------------------------------------------------------------------------------------------------------------------------------- */

.x-community-card{
  --accent: #007bff;
  --accent-2:#007bff;
  --edge:   rgba(255,255,255,.08);
  --bg-0:   #0B0F14;
  --bg-1:   #10151C;
  --text:   #E9EEF5;
  --muted:  #A1ADBD;
  --card-image: none;

  position: relative;
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 28px;
  padding: clamp(20px,3.5vw,36px);


/* feiner Gradient-Rahmen / Glow in Orange */
.xph-desc-card::before{
  content:"";
  position:absolute; inset:-1px;
  padding:1px; border-radius:14px;
  background: linear-gradient(90deg, #007bff, #007bff);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  opacity:.22; pointer-events:none;
}

.xph-desc-head{
  display:flex; align-items:center; justify-content:flex-start;
  padding:10px 12px 0 12px;
}
.xph-desc-head .pill{
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.35rem .65rem; border-radius:999px;
  font-weight:800; font-size:.72rem; letter-spacing:.08em;
  color:#0b1220;
  background: linear-gradient(90deg, #007bff, #007bff);
  box-shadow: 0 10px 22px rgba(0,0,0,.35);
}

.xph-desc-body{
  padding:12px 12px 14px 12px;
  max-height: clamp(180px, 34vh, 360px);
  overflow: auto;
  color:#cfd6df;
  font-size:.92rem;
  line-height:1.6;
}

/* nicer list/typography inside description editor */
.xph-desc-body h1,.xph-desc-body h2,.xph-desc-body h3{ 
  margin:.2rem 0 .4rem; 
  font-weight:800; 
  color:#e9eef5;
}
.xph-desc-body h1{ font-size:1.25rem; }
.xph-desc-body h2{ font-size:1.1rem; }
.xph-desc-body h3{ font-size:1rem; }

.xph-desc-body p{ margin:.35rem 0; }
.xph-desc-body ul, .xph-desc-body ol{ margin:.4rem 0 .6rem 1.1rem; }
.xph-desc-body li{ margin:.2rem 0; }
.xph-desc-body a{ color:#007bff; text-decoration:underline dotted; }

.xph-desc-body img, .xph-desc-body iframe, .xph-desc-body video{
  max-width:100%; height:auto; border-radius:10px; display:block;
  margin:.4rem 0;
}

/* dezente Scrollbar */
.xph-desc-body{ scrollbar-width:thin; scrollbar-color:#596172 transparent; }
.xph-desc-body::-webkit-scrollbar{ width:8px; }
.xph-desc-body::-webkit-scrollbar-thumb{ border-radius:10px; background:#2a2f36; }

/* Responsive: auf Mobile etwas luftiger */
@media (max-width: 992px){
  .xph-desc-body{ max-height: unset; }
}

footer.footer {
  position: relative;   /* eigener Stack */
  z-index: 20;          /* über normalen Sektionen */
}

/* ersetze .enginex-payments durch deine Klasse/ID dieser Section */
.enginex-payments {
  position: relative;
  isolation: isolate;   /* eigener Stacking-Context */
  z-index: 0;
  overflow: hidden;     /* schneidet großen Glow am Rand ab */
  margin-bottom: 32px;  /* Abstand vor dem Footer */
}

/* Deko-Layer hinter den Inhalt UND hinter dem Footer */
.enginex-payments::before,
.enginex-payments::after {
  pointer-events: none;
  z-index: -1;
}


 

 /* ADDON ON FOR KENAN FROM ENGINEX */

 /* === Grundlayout & Headings im Block === */
body { background:#0b0f16; }

.cryptic-features{ padding:64px 0; }
.cryptic-features .container{ max-width:1180px; }

.hero-11-badge{
  display:inline-flex; align-items:center; justify-content:center;
  padding:.35rem .95rem; border-radius:999px; font-size:.8rem; letter-spacing:.08em; text-transform:uppercase;
  color:#000000; background:rgba(0, 123, 255,.67); border:1px solid rgb(0, 123, 255);
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.25), 0 8px 20px rgba(0,0,0,.25);
  backdrop-filter:blur(6px);
}
.hero-11-title{
  font-weight:900; line-height:.95; font-size:clamp(2.8rem,7.2vw,6rem); letter-spacing:.02em; margin:0;
  background:linear-gradient(180deg,#fff,#c8d0dc);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  text-shadow:0 2px 0 rgba(151,151,151,.486);
}
.hero-11-subtitle{ color:#c7cbd5; font-size:clamp(1.05rem,2.2vw,1.35rem); margin:0; }
.hero-11-subsubtitle{ color:#9aa2b3; font-size:.95rem; margin-bottom:2.25rem; }

/* === Grid & Karten === */
.cryptic-features .cf-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:22px; }
.cryptic-features .f-ui{ grid-column:span 2; }
.cryptic-features .f-safe{ grid-column:span 1; }
@media (max-width:992px){
  .cryptic-features .cf-grid{ grid-template-columns:1fr 1fr; }
  .cryptic-features .f-ui{ grid-column:span 2; }
  .cryptic-features .f-safe{ grid-column:span 2; }
}
@media (max-width:576px){
  .cryptic-features .cf-grid{ grid-template-columns:1fr; }
  .cryptic-features .f-ui, .cryptic-features .f-safe{ grid-column:span 1; }
}

.cryptic-features .fcard{
  position:relative; overflow:hidden; border-radius:18px; color:#fff;
  border:1px solid rgba(120,170,255,.12);
  background: radial-gradient(120% 100% at 50% 0, rgba(0, 123, 255,.08) 0%, rgba(20,24,32,.92) 42%, #121620 100%);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.03), 0 18px 40px rgba(0,0,0,.35);
  transition: transform .25s, box-shadow .25s, border-color .25s;
}
.cryptic-features .fcard:hover{
  transform:translateY(-4px); border-color:rgba(120,170,255,.22);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.06), 0 26px 70px rgba(0,0,0,.45);
}
.cryptic-features .fcard .f-inner{ position:relative; padding:20px 22px 22px; }
.cryptic-features .fcard .f-inner::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background-image:
    radial-gradient(1px 1px at 0 0, rgba(255,255,255,.27) 99%, transparent 100%),
    radial-gradient(1px 1px at 50% 50%, rgba(255,255,255,.12) 99%, transparent 100%);
  background-size:22px 22px,22px 22px; background-position:0 0, 11px 11px;
  opacity:.55; box-shadow: inset 0 60px 120px rgba(0, 123, 255,.06);
  animation: infoDotsDrift 26s linear infinite;
  mask-image: linear-gradient(to bottom, rgba(0,0,0,.75) 0%, rgba(0,0,0,.95) 70%, rgba(0,0,0,1) 100%);
  -webkit-mask-image: linear-gradient(to bottom, rgba(0,0,0,.75) 0%, rgba(0,0,0,.95) 70%, rgba(0,0,0,1) 100%);
  border-bottom-left-radius: inherit; border-bottom-right-radius: inherit;
}
.cryptic-features .fcard .f-inner::after{
  content:""; position:absolute; inset:0; pointer-events:none; z-index:0;
  background-image:
    radial-gradient(2px 2px at 22% 32%, rgba(255,255,255,.95) 99%, transparent 100%),
    radial-gradient(1.6px 1.6px at 68% 58%, rgba(255,255,255,.9) 99%, transparent 100%),
    radial-gradient(1.8px 1.8px at 42% 84%, rgba(255,255,255,.95) 99%, transparent 100%),
    radial-gradient(1.4px 1.4px at 82% 26%, rgba(255,255,255,.85) 99%, transparent 100%);
  filter: drop-shadow(0 0 6px rgba(255,255,255,.45)); opacity:0; animation: infoTwinkle 6s ease-in-out infinite;
}
@keyframes infoDotsDrift{ 0%{background-position:0 0,11px 11px} 100%{background-position:0 -220px,11px -209px} }
@keyframes infoTwinkle{ 0%,100%{opacity:0} 6%{opacity:.85} 12%{opacity:0} 56%{opacity:0} 60%{opacity:.6} 66%{opacity:0} }

.cryptic-features .fcard::before{
  content:""; position:absolute; left:0; right:0; top:-120%; height:120%; z-index:0; pointer-events:none;
  background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,0));
  filter: blur(8px); animation: infoScanDown 5.6s ease-in-out infinite;
}
.cryptic-features .fcard::after{
  content:""; position:absolute; bottom:-20px; left:50%; transform:translateX(-50%);
  width:240%; height:10%; z-index:0; pointer-events:none;
  background: radial-gradient(ellipse at center, rgba(0, 123, 255.37) 0%, rgba(0, 123, 255.15) 40%, rgba(0, 123, 2550) 80%);
  filter: blur(20px);
}
@keyframes infoScanDown{ 0%{transform:translateY(0)} 50%{transform:translateY(100%)} 100%{transform:translateY(0)} }

.cryptic-features .fcard h4{ margin:16px 0 0; font-size:14px; line-height:1.4; color:#cfd6e6; position:relative; z-index:1; }
.cryptic-features .fcard h4 b{ color:#fff; }

/* === Progress-Ring === */
.cryptic-features .ring-wrap{ position:relative; width:180px; height:180px; margin:6px auto 10px; }
.cryptic-features .ring{ width:180px; height:180px; transform:rotate(-90deg); }
.cryptic-features .ring .track{ fill:none; stroke:rgba(255,255,255,.12); stroke-width:10; stroke-linecap:round; }
.cryptic-features .ring .bar{
  fill:none; stroke-width:10; stroke-linecap:round; stroke-dasharray:314; stroke-dashoffset:314;
  transition: stroke-dashoffset 1.2s cubic-bezier(.22,1,.36,1);
  filter: drop-shadow(0 10px 22px rgba(0, 123, 255,.35));
}
.cryptic-features .f-progress .ring .bar{ filter:none !important; }
.cryptic-features .ring-center{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; }
.cryptic-features .ring-center small{ color:#c9cfdd; opacity:.9; }
.cryptic-features .ring-center .ring-val{ font-size:20px; margin-top:6px; }

/* === License-Box === */
.cryptic-licbox{
  position:relative; background:rgba(0,0,0,.35); border:1px solid rgba(255,255,255,.06);
  border-radius:14px; padding:18px; text-align:center; overflow:hidden;
}
.clb-title{ margin-bottom:10px; font-weight:700; color:#fff; }
.clb-input input{
  width:100%; height:42px; border-radius:10px; background:#0f131c; border:1px solid rgba(255,255,255,.06);
  padding:0 12px; color:#aeb6c8; font-family:monospace; font-size:14px;
}
.clb-btn{
  display:block; width:100%; margin:12px auto 0; height:40px; border-radius:999px; border:none;
  background:linear-gradient(180deg, #007bff, #007bff); color:#fff; font-weight:800; letter-spacing:.04em;
  box-shadow:0 12px 24px rgba(0, 123, 255,.35), inset 0 -2px 0 rgba(0,0,0,.25); transition: transform .2s, box-shadow .25s;
}
.clb-btn.is-press{ transform:scale(.95); box-shadow:none; }
.clb-stage{
  position:absolute; inset:0; background:rgba(0,0,0,.92);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  opacity:0; pointer-events:none; transition:opacity .4s ease;
}
.clb-stage.is-open{ opacity:1; pointer-events:auto; }
.clb-spinner svg{ width:70px; height:70px; }
.clb-track{ fill:none; stroke:rgba(255,255,255,.12); stroke-width:6; }
.clb-arc{ fill:none; stroke:url(#clbGrad); stroke-width:6; stroke-dasharray:200; stroke-dashoffset:150; animation:spinArc 1.2s linear infinite; }
@keyframes spinArc{ to{ stroke-dashoffset:-200; } }
.clb-status{ margin-top:14px; font-size:15px; font-weight:600; color:#ccc; }
.clb-success{ display:flex; flex-direction:column; align-items:center; opacity:0; transform:scale(.9); transition:all .3s ease; }
.clb-success.show{ opacity:1; transform:scale(1); }
.clb-check{ width:48px; height:48px; border-radius:50%; background:#28c76f; display:grid; place-items:center; }
.clb-check i{ width:16px; height:8px; border-left:3px solid #fff; border-bottom:3px solid #fff; transform:rotate(-45deg); }
.clb-success-text{ margin-top:8px; color:#28c76f; font-weight:700; }
.d-none{ display:none !important; }
.clb-pointer{
  position:absolute; width:20px; height:20px; border-radius:50%; background:#fff; box-shadow:0 0 0 2px rgba(0,0,0,.2);
  opacity:0; transform:translate(-50%,-50%); transition: transform .3s, opacity .3s;
}

/* === Chat-Bubbles & Animation === */
.cryptic-features .chat{ position:relative; min-height:120px; display:flex; flex-direction:column; gap:8px; }
.cryptic-features .bubble{
  max-width:86%; padding:10px 14px; border-radius:12px; font-size:14px; line-height:1.35;
  opacity:0; transform:translateY(10px) scale(.96); will-change:transform,opacity,filter;
}
.cryptic-features .bubble--sys{
  color:#e9edf7; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.10); box-shadow: inset 0 0 0 1px rgba(255,255,255,.03);
}
.cryptic-features .bubble--me{
  margin-left:auto; color:#fff; background:linear-gradient(180deg,#007bff,#007bff);
  border:1px solid rgba(255,255,255,.22); box-shadow:0 10px 24px rgba(0, 123, 255,.45);
}
.cryptic-features .bubble--mini{ font-size:12px; padding:6px 10px; }
.cryptic-features .bubble.cf-in{ animation:cfPopIn .42s cubic-bezier(.22,1,.36,1) forwards; }
.cryptic-features .bubble.cf-out{ animation:cfPopOut .25s ease forwards; }
@keyframes cfPopIn{ 0%{opacity:0; transform:translateY(10px) scale(.96)} 70%{opacity:1; transform:translateY(0) scale(1.04)} 100%{opacity:1; transform:translateY(0) scale(1)} }
@keyframes cfPopOut{ to{opacity:0; transform:translateY(6px) scale(.98)} }

/* === UI Demo (Tabs, Slider, Toggles) === */
.cryptic-features .ui-topbar{ display:flex; justify-content:flex-end; align-items:center; margin-bottom:10px; padding-right:8px; }
.cryptic-features .menu-name{
  font-size:13px; font-weight:700; letter-spacing:.5px; color:#007bff;
  background:rgba(0, 123, 255,.08); padding:4px 10px; border-radius:8px; border:1px solid rgba(0, 123, 255,.25);
}
.cryptic-features .ui-demo.ui-modern,
.cryptic-features .f-ui .ui-demo{
  display:grid !important; grid-template-columns:1fr !important; gap:16px !important;
  background:rgba(12,16,24,.55) !important; border:1px solid rgba(255,255,255,.08) !important;
  border-radius:16px !important; padding:16px 18px !important; box-shadow: inset 0 0 0 1px rgba(255,255,255,.03) !important;
}
.cryptic-features .ui-demo .tabs{ display:flex !important; flex-direction:row !important; gap:8px !important; overflow:auto !important; padding-bottom:4px !important; }
.cryptic-features .ui-demo .tab{
  height:auto !important; padding:8px 12px !important; border-radius:999px !important; font-size:12px !important; font-weight:800 !important;
  background:rgba(255,255,255,.06) !important; color:#cfd6e6 !important; border:1px solid rgba(255,255,255,.10) !important;
  white-space:nowrap !important; transition:transform .18s, box-shadow .25s, background .25s, border-color .25s !important;
}
.cryptic-features .ui-demo .tab.is-active{
  color:#fff !important; background:linear-gradient(180deg,#007bff,#007bff) !important; border-color:rgba(255,255,255,.28) !important;
  box-shadow:0 8px 20px rgba(0, 123, 255,.35), inset 0 -2px 0 rgba(0,0,0,.25) !important;
}
.cryptic-features .ui-demo .ui-body{ display:grid !important; grid-template-columns:1fr 1fr !important; gap:16px !important; }
.cryptic-features .ui-demo .ui-col{
  background:rgba(255,255,255,.04) !important; border:1px solid rgba(255,255,255,.08) !important; border-radius:12px !important;
  padding:14px !important; box-shadow: inset 0 0 0 1px rgba(255,255,255,.02) !important;
}
.cryptic-features .ui-demo .ui-col h5{ margin:0 0 10px !important; font-size:11px !important; letter-spacing:.14em !important; color:#98a3b9 !important; }
.cryptic-features .ui-demo .row{
  display:flex !important; align-items:center !important; justify-content:center !important;
  gap:14px !important; padding:10px 0 !important; border-bottom:1px dashed rgba(255,255,255,.06) !important;
}
.cryptic-features .ui-demo .row:last-child{ border-bottom:0 !important; }
.cryptic-features .ui-demo .row span{ color:#e5eaf5 !important; font-weight:600 !important; flex:0 0 auto; }

.cryptic-features .tgl input{ display:none; }
.cryptic-features .tgl i{
  --w:46px; --h:26px; width:var(--w); height:var(--h); position:relative; border-radius:999px;
  background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.16); transition:background .2s, border-color .2s;
}
.cryptic-features .tgl i::after{
  content:""; position:absolute; top:3px; left:3px; width:20px; height:20px; border-radius:50%; background:#fff; box-shadow:0 4px 10px rgba(0,0,0,.25);
  transition: transform .22s cubic-bezier(.22,1,.36,1);
}
.cryptic-features .tgl input:checked + i{ background:linear-gradient(180deg,#007bff,#007bff); border-color:rgba(255,255,255,.28); }
.cryptic-features .tgl input:checked + i::after{ transform:translateX(20px); }

.cryptic-features .slider{
  position:relative; width:160px; height:8px; border-radius:999px; flex:0 0 auto;
  background:linear-gradient(90deg, rgba(255,255,255,.18), rgba(255,255,255,.10)); border:1px solid rgba(255,255,255,.10);
}
.cryptic-features .slider i{
  position:absolute; top:50%; transform:translate(-50%,-50%); width:16px; height:16px; border-radius:50%; background:#fff;
  box-shadow:0 4px 12px rgba(0,0,0,.28), 0 0 0 6px rgba(0, 123, 255,.18);
}
.cryptic-features .slider i.anim-walk{ left:10%; animation: knobWalk 4.5s ease-in-out infinite; }
@keyframes knobWalk{ 0%{left:10%} 50%{left:78%} 100%{left:10%} }

.cryptic-features .scribble{ display:flex; align-items:center; gap:10px; margin:10px 0 6px; color:#007bff; font-size:12px; }
.cryptic-features .scribble i{ width:34px; height:34px; border:2px dashed rgba(255,255,255,.18); border-radius:50%; animation: spin 4s linear infinite; }
@keyframes spin{ to{ transform:rotate(360deg) } }

/* === Safe-Block (Shield + Orbit + Radarband) === */
.safe-core{ position:relative; width:190px; height:190px; margin:6px auto 14px; display:grid; place-items:center; isolation:isolate; }
.safe-core::before{ content:""; position:absolute; inset:16px; border-radius:50%; background: radial-gradient(closest-side, rgba(0, 123, 255,.28), transparent 60%); filter:blur(12px); z-index:0; }
.safe-core .fa-shield{ font-size:46px; color:#fff; text-shadow:0 8px 22px rgba(0, 123, 255,.35); transform:scale(1); animation:shieldPulse 2.4s ease-in-out infinite; position:relative; z-index:2; }
@keyframes shieldPulse{ 0%,100%{transform:scale(1)} 50%{transform:scale(1.06)} }
.safe-core .orbit{
  position:absolute; inset:0; border-radius:50%;
  background: conic-gradient(from 0deg, rgba(255,255,255,.08), transparent 25%, transparent 75%, rgba(255,255,255,.08));
  mask: radial-gradient(farthest-side, transparent calc(50% - 1px), #000 calc(50% + 1px));
  animation: orbitSpin 5.6s linear infinite; z-index:1; opacity:.7;
}
@keyframes orbitSpin{ to{ transform: rotate(360deg) } }
.safe-core .spark{
  position:absolute; width:8px; height:8px; border-radius:50%; background:#007bff; box-shadow:0 0 12px #007bff;
  top:50%; left:50%; transform:translate(-50%,-50%); animation: sparkOrbit 2.8s ease-in-out infinite;
}
.safe-core .spark.s2{ width:6px; height:6px; animation-duration:3.4s; opacity:.85; }
.safe-core .spark.s3{ width:5px; height:5px; animation-duration:4.2s; opacity:.7; }
@keyframes sparkOrbit{ 0%{transform:translate(-50%,-50%) rotate(0deg) translateX(70px)} 50%{transform:translate(-50%,-50%) rotate(180deg) translateX(76px)} 100%{transform:translate(-50%,-50%) rotate(360deg) translateX(70px)} }
.cryptic-features .ripple{ position:absolute; inset:0; border-radius:50%; border:1px solid rgba(255,255,255,.18); animation:ripple 3.2s ease-out infinite; }
.cryptic-features .ripple.r2{ animation-delay:.6s } .cryptic-features .ripple.r3{ animation-delay:1.2s }
@keyframes ripple{ 0%{ opacity:.35; transform: scale(.6) } 100%{ opacity:0; transform: scale(1.25) } }

.safe-band{
  position:relative; height:110px; margin-top:12px; border-radius:12px;
  background: rgba(12,16,24,.55); border:1px solid rgba(255,255,255,.06);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.03); overflow:hidden; isolation:isolate;
}
.safe-band .sb-grid{
  position:absolute; inset:0; z-index:0; pointer-events:none;
  background:
    repeating-linear-gradient(135deg, rgba(255,255,255,.05) 0 1px, transparent 1px 12px),
    radial-gradient(1px 1px at 0 0, rgba(255,255,255,.22) 99%, transparent 100%),
    radial-gradient(1px 1px at 50% 50%, rgba(255,255,255,.10) 99%, transparent 100%);
  background-size:100% 100%, 22px 22px, 22px 22px;
  background-position:0 0, 0 0, 11px 11px; animation: sbGridDrift 24s linear infinite; opacity:.9;
}
@keyframes sbGridDrift{ 0%{background-position:0 0,0 0,11px 11px} 100%{background-position:0 0,0 -200px,11px -189px} }
.safe-band .sb-sweep{
  position:absolute; inset:-30% -40%; z-index:1; mix-blend-mode:screen; filter:blur(10px);
  background:
    radial-gradient(35% 60% at 0% 50%, rgba(0, 123, 255,.22), rgba(0, 123, 255,0) 65%),
    radial-gradient(25% 50% at 0% 50%, rgba(0, 123, 255,.18), rgba(0, 123, 255,0) 60%);
  transform:translateX(-60%); animation: sbSweep 5.8s linear infinite;
}
@keyframes sbSweep{ 0%{transform:translateX(-60%)} 100%{transform:translateX(160%)} }
.sb-blip{
  position:absolute; width:7px; height:7px; border-radius:50%; background:#007bff;
  box-shadow:0 0 12px #007bff, 0 0 24px rgba(0, 123, 255,.4); z-index:2; opacity:0; transform:scale(.5);
  animation: sbBlip 3.2s ease-in-out infinite;
}
.sb-blip.b1{ top:22%; left:22%; animation-delay:.2s }
.sb-blip.b2{ top:46%; left:58%; animation-delay:1.1s }
.sb-blip.b3{ top:70%; left:36%; animation-delay:2s }
@keyframes sbBlip{ 0%{opacity:0; transform:scale(.4)} 10%{opacity:1; transform:scale(1)} 30%{opacity:.6; transform:scale(.85)} 60%{opacity:0; transform:scale(.6)} 100%{opacity:0; transform:scale(.5)} }

/* === Zusatz: kleine Helfer === */
.d-none{ display:none !important; }

.products .card .card-body .btn-primary,
.products .card .card-body .btn-purchase{
  background: linear-gradient(180deg, #007bff, #007bff);
  color:#fff;
  border:1px solid rgba(255,255,255,.25);
  box-shadow: 0 10px 22px rgba(216,150,52,.35), inset 0 -2px 0 rgba(0,0,0,.25);
}
.products .card .card-body .btn-primary:hover,
.products .card .card-body .btn-purchase:hover{
  transform: translateY(-1px);
  box-shadow: 0 14px 32px rgba(0, 123, 255,.45);
}

/* ========== TABS SICHTBAR MACHEN ========== */
.cryptic-features .ui-demo .tabs{
  display:flex; gap:8px; overflow:auto; padding-bottom:4px;
}
.cryptic-features .ui-demo .tab{
  appearance:none; border:0; cursor:pointer;
  padding:10px 14px; border-radius:999px; font-weight:800; font-size:12px;
  color:#e5eaf5;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.14);
  transition:transform .18s, box-shadow .25s, background .25s, border-color .25s;
}
.cryptic-features .ui-demo .tab:hover{
  transform:translateY(-1px);
  background:rgba(255,255,255,.16);
  border-color:rgba(255,255,255,.24);
  box-shadow:0 8px 18px rgba(0,0,0,.25);
}
.cryptic-features .ui-demo .tab.is-active{
  color:#fff;
  background:linear-gradient(180deg,#007bff,#007bff);
  border-color:rgba(255,255,255,.28);
  box-shadow:0 8px 20px rgba(0, 123, 255,.35), inset 0 -2px 0 rgba(0,0,0,.25);
}

/* ========== TOGGLE-SWITCH SICHTBAR MACHEN ========== */
.cryptic-features .tgl input{ display:none; }
.cryptic-features .tgl i{
  --w:46px; --h:26px;
  position:relative; display:inline-block; vertical-align:middle;
  width:var(--w); height:var(--h); border-radius:999px; cursor:pointer;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.18);
  box-shadow: inset 0 -2px 0 rgba(0,0,0,.25);
  transition: background .2s, border-color .2s, box-shadow .25s;
}
.cryptic-features .tgl i::after{
  content:""; position:absolute; top:3px; left:3px;
  width:20px; height:20px; border-radius:50%;
  background:#fff;
  box-shadow:0 4px 10px rgba(0,0,0,.25);
  transform:translateX(0);
  transition: transform .22s cubic-bezier(.22,1,.36,1);
}
.cryptic-features .tgl input:checked + i{
  background:linear-gradient(180deg,#007bff,#007bff);
  border-color:rgba(255,255,255,.28);
  box-shadow: inset 0 -2px 0 rgba(0,0,0,.25), 0 10px 20px rgba(0, 123, 255,.28);
}
.cryptic-features .tgl input:checked + i::after{ transform:translateX(20px); }

/* ========== SLIDER TRACK + KNOB SICHTBAR ========== */
.cryptic-features .slider{
  position:relative; width:160px; height:8px; flex:0 0 auto; border-radius:999px;
  background:linear-gradient(90deg, rgba(255,255,255,.18), rgba(255,255,255,.10));
  border:1px solid rgba(255,255,255,.12);
}
.cryptic-features .slider i{
  position:absolute; top:50%; transform:translate(-50%,-50%);
  width:16px; height:16px; border-radius:50%; background:#fff;
  box-shadow:0 4px 12px rgba(0,0,0,.28), 0 0 0 6px rgba(0, 123, 255,.18);
}

/* ========== KARTENKONTUR (damit Panels nicht „flach“ wirken) ========== */
.cryptic-features .ui-demo .ui-col{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.10);
  border-radius:12px; padding:14px;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.02);
}

/* ============================================================
   GLASS OVERRIDE — PRODUCT WRAPPER ONLY
   Paste at very bottom of CSS
============================================================ */

/* Main shop wrapper (outer glass layer) */
.shop-wrapper,
.component.products-component,
.catalog-panel {
  background: rgba(18, 24, 34, 0.55) !important;
  backdrop-filter: blur(14px) saturate(1.15);
  -webkit-backdrop-filter: blur(14px) saturate(1.15);

  border: 1px solid rgba(255, 255, 255, 0.10);
  border-radius: 18px;

  box-shadow:
    0 20px 60px rgba(0, 0, 0, 0.55),
    inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

/* Inner padding polish */
.component.products-component {
  padding: 20px !important;
}

/* Toolbar / filters glassy */
.catalog-toolbar {
  background: rgba(15, 20, 30, 0.55) !important;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);

  border: 1px solid rgba(255,255,255,.10);
}

/* Search inside glass */
.catalog-search input {
  background: rgba(10, 14, 22, 0.65) !important;
  backdrop-filter: blur(6px);
  border-color: rgba(255,255,255,.14);
}

/* Alphabet chips glassy */
.catalog-letters .chip {
  background: rgba(18, 24, 34, 0.55);
  backdrop-filter: blur(6px);
  border-color: rgba(255,255,255,.12);
}

.catalog-letters .chip.is-active {
  background: rgba(0, 123, 255, 0.35);
  backdrop-filter: blur(6px);
}

/* Subtle top highlight to sell the glass */
.shop-wrapper::before,
.catalog-panel::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: inherit;

  background: linear-gradient(
    180deg,
    rgba(255,255,255,0.08),
    rgba(255,255,255,0) 45%
  );
}

/* ===============================
   GLASSY PRODUCT WRAPPER
   =============================== */

/* Main product card glass effect */
section.products-component .group-card.card {
  background: rgba(14, 18, 28, 0.55) !important;
  backdrop-filter: blur(18px) saturate(1.3);
  -webkit-backdrop-filter: blur(18px) saturate(1.3);

  border: 1px solid rgba(120, 170, 255, 0.25) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.08),
    0 18px 45px rgba(0,0,0,0.55),
    0 0 30px rgba(0,123,255,0.18) !important;
}

/* Slight hover lift + glow */
section.products-component .group-card.card:hover {
  transform: translateY(-4px);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.12),
    0 28px 70px rgba(0,0,0,0.65),
    0 0 45px rgba(0,123,255,0.28) !important;
}

/* Image overlay glow */
section.products-component .group-card__img::before {
  background:
    linear-gradient(
      180deg,
      rgba(255,255,255,0.10),
      rgba(0,0,0,0.15)
    ) !important;
}

/* Soft grid shimmer inside card */
section.products-component .group-card.card::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: inherit;

  background-image:
    linear-gradient(rgba(255,255,255,0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.035) 1px, transparent 1px);

  background-size: 34px 34px;
  opacity: 0.35;
}
/* =========================================================
   FORCE REAL GLASSMORPHISM FOR PRODUCT CARDS
   ========================================================= */

/* 1️⃣ Make card background ACTUALLY transparent */
section.products-component .group-card.card {
  background: rgba(15, 20, 30, 0.35) !important; /* <- key */
  backdrop-filter: blur(26px) saturate(1.6) !important;
  -webkit-backdrop-filter: blur(26px) saturate(1.6) !important;

  border: 1px solid rgba(140, 190, 255, 0.35) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.12),
    0 20px 60px rgba(0,0,0,0.75),
    0 0 60px rgba(0,123,255,0.35) !important;
}

/* 2️⃣ Fade image so glass can be seen */
section.products-component .group-card__img {
  position: relative;
}

section.products-component .group-card__img::after {
  content: "";
  position: absolute;
  inset: 0;

  background:
    linear-gradient(
      180deg,
      rgba(5,10,20,0.35),
      rgba(5,10,20,0.75)
    );

  pointer-events: none;
}

/* 3️⃣ Reduce image dominance */
section.products-component .group-card__img > img {
  opacity: 0.88 !important;
}

/* 4️⃣ Add glass grid reflection */
section.products-component .group-card.card::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: inherit;

  background-image:
    linear-gradient(rgba(255,255,255,0.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.045) 1px, transparent 1px);

  background-size: 32px 32px;
  opacity: 0.45;
}

/* 5️⃣ Hover intensifies glass */
section.products-component .group-card.card:hover {
  backdrop-filter: blur(32px) saturate(1.9) !important;
  -webkit-backdrop-filter: blur(32px) saturate(1.9) !important;

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.18),
    0 30px 80px rgba(0,0,0,0.85),
    0 0 80px rgba(0,123,255,0.55) !important;
}
/* ===================== MAKE PRODUCT WRAPPER TRANSPARENT ===================== */
.catalog-panel,
.shop-wrapper,
section.products-component {
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
}
/* ===================== BACKDROP FOR GLASS BLUR ===================== */
section.products-component::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;

  background:
    radial-gradient(circle at 20% 10%, rgba(0,123,255,.25), transparent 40%),
    radial-gradient(circle at 80% 30%, rgba(0,123,255,.18), transparent 45%),
    linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);

  background-size: auto, auto, 36px 36px, 36px 36px;
}
/* ===================== REAL GLASS CARDS ===================== */
section.products-component .group-card.card {
  position: relative;
  z-index: 1;

  background: rgba(15, 20, 30, 0.28) !important;
  backdrop-filter: blur(34px) saturate(1.8) !important;
  -webkit-backdrop-filter: blur(34px) saturate(1.8) !important;

  border: 1px solid rgba(120,190,255,0.35) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.18),
    0 25px 80px rgba(0,0,0,.85),
    0 0 90px rgba(0,123,255,.45) !important;
}
/* ===================== IMAGE SOFTEN ===================== */
section.products-component .group-card__img > img {
  opacity: 0.82 !important;
}

section.products-component .group-card__img::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(5,10,20,.25),
    rgba(5,10,20,.65)
  );
}

/* ===============================
   HERO TEXT — MOBILE ALIGN LEFT
=============================== */
@media (max-width: 768px) {
  .hero-container {
    justify-content: flex-start;
    text-align: left;
  }

  .hero-text {
    max-width: 100%;
    padding-left: 16px;
    padding-right: 16px;
  }

  .hero-title {
    text-align: left;
  }

  .hero-text p {
    text-align: left;
  }
}
/* ===============================
   HERO — FORCE LEFT ON MOBILE
=============================== */
@media (max-width: 768px) {

  /* Break out of dock-margin math */
  .hero > .container {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;

    display: block !important; /* kill grid centering */
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  /* Text block must not center itself */
  .hero .hero-text {
    margin: 0 !important;
    max-width: 100% !important;
    text-align: left !important;
  }

  /* Explicitly force left */
  .hero .hero-title,
  .hero .hero-text p {
    text-align: left !important;
  }
}
/* ==================================================
   HERO — MOBILE: LEFT EDGE + BIGGER TITLE
================================================== */
@media (max-width: 768px) {

  /* Kill dock-based centering */
  .hero > .container {
    width: 100vw !important;
    max-width: 100vw !important;
    margin: 0 !important;

    padding-left: 16px !important;
    padding-right: 16px !important;

    display: block !important; /* remove grid centering */
  }

  /* Force text block to page-left */
  .hero .hero-text {
    margin: 0 !important;
    max-width: none !important;
    text-align: left !important;
  }

  /* BIGGER TITLE on mobile */
  .hero .hero-title {
    font-size: clamp(42px, 9vw, 54px) !important;
    line-height: 1.04 !important;
    text-align: left !important;
  }

  /* Subtitle also left */
  .hero .hero-text p {
    text-align: left !important;
    font-size: 16px !important;
  }
}

/* =========================================================
   HERO (MOBILE) — FORCE LEFT EDGE + BIGGER TITLE (NUCLEAR)
========================================================= */
@media (max-width: 900px){

  /* hit ANY hero variant */
  .hero--anim,
  .hero.hero--anim,
  section.hero--anim,
  .hero{
    text-align: left !important;
  }

  /* kill container centering (Bootstrap, IPS, any “container”) */
  .hero--anim .container,
  .hero--anim [class*="container"],
  .hero--anim .ipsLayout_container{
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;

    padding-left: 16px !important;
    padding-right: 16px !important;

    display: block !important;      /* removes grid/flex centering */
    justify-content: flex-start !important;
    align-items: flex-start !important;
  }

  /* the text block itself */
  .hero--anim .hero-text,
  .hero--anim .hero-text *{
    text-align: left !important;
  }

  .hero--anim .hero-text{
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;           /* removes auto-centering */
    padding: 0 !important;
  }

  /* bigger title on phones */
  .hero--anim .hero-title{
    font-size: clamp(46px, 11vw, 66px) !important;
    line-height: 1.04 !important;
    margin-left: 0 !important;
  }

  .hero--anim p{
    font-size: 16px !important;
    margin-left: 0 !important;
  }
}