/* ============================================================
   46KLEBER – STYLESHEET
   Barlow Condensed + Barlow · BVB-Schwarz/Gelb
============================================================ */

/* ── RESET & DESIGN TOKENS ─────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --Y:   #FDE100;   /* BVB Gelb  */
  --Yd:  #e8ce00;
  --K:   #0d0d0d;   /* Schwarz   */
  --K2:  #161616;
  --K3:  #1e1e1e;
  --K4:  #272727;
  --K5:  #303030;
  --W:   #f2f0e8;   /* Off-white */
  --G:   #7a7870;   /* Grau      */
  --Gl:  #aaa89e;
  --BD:  #2c2c2c;   /* Border    */
  --ERR: #e84040;
  --r:   8px;
  --fh:  'Barlow Condensed', sans-serif;
  --fb:  'Barlow', sans-serif;
  --ease: cubic-bezier(.4,0,.2,1);
}
html{scroll-behavior:smooth}
body{
  background:var(--K);color:var(--W);
  font-family:var(--fb);font-size:15px;line-height:1.6;
  min-height:100vh;overflow-x:hidden;
}

/* ── DIAGONAL TEXTURE ───────────────────────────────────── */
body::before{
  content:'';position:fixed;inset:0;z-index:0;pointer-events:none;
  background: repeating-linear-gradient(
    -55deg,
    transparent 0px,transparent 28px,
    rgba(253,225,0,.018) 28px,rgba(253,225,0,.018) 29px
  );
}

/* ── LAYOUT ─────────────────────────────────────────────── */
.wrap{max-width:1140px;margin:0 auto;padding:0 24px 100px;position:relative;z-index:1}

/* ── HEADER ──────────────────────────────────────────────── */
.site-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:26px 0 30px;
  border-bottom:3px solid var(--Y);
  margin-bottom:48px;gap:16px;
}
.logo{display:flex;align-items:center;gap:14px}
.logo-badge{
  width:50px;height:50px;
  background:var(--Y);
  border-radius:5px;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--fh);font-size:22px;font-weight:900;
  color:var(--K);letter-spacing:-.06em;flex-shrink:0;
}
.logo-badge.flash {
  animation: flashYellow 0.8s ease;
}

@keyframes flashYellow {
  0%   { background: #111; color: #fff; }
  30%  { background: #ffd800; color: #000; transform: scale(1.2); }
  100% { background: #111; color: #fff; }
}
.logo-words{line-height:1}
.logo-title{
  font-family:var(--fh);
  font-size:clamp(22px,4vw,36px);font-weight:900;
  text-transform:uppercase;letter-spacing:-.03em;
}
.logo-title b{color:var(--Y)}
.logo-tagline{
  font-size:11px;font-weight:600;
  text-transform:uppercase;letter-spacing:.14em;
  color:var(--G);margin-top:1px;
}
.hdr-right{display:flex;align-items:center;gap:10px}
.cart-btn{
  display:flex;align-items:center;gap:10px;
  background:var(--K2);border:2px solid var(--BD);border-radius:50px;
  padding:9px 18px 9px 14px;cursor:pointer;
  font-family:var(--fh);font-size:15px;font-weight:700;
  text-transform:uppercase;letter-spacing:.07em;color:var(--W);
  transition:.2s var(--ease);
}
.cart-btn:hover{border-color:var(--Y);color:var(--Y)}
.cart-pill{
  background:var(--Y);color:var(--K);border-radius:50px;
  padding:1px 9px;font-size:13px;font-weight:900;
  font-family:var(--fh);min-width:22px;text-align:center;
  transition:.2s var(--ease);
}

/* ── STEP BAR ────────────────────────────────────────────── */
.step-bar{
  display:flex;align-items:center;margin-bottom:44px;
  overflow-x:auto;scrollbar-width:none;
}
.step-bar::-webkit-scrollbar{display:none}
.step-item{
  display:flex;align-items:center;gap:9px;white-space:nowrap;
  font-family:var(--fh);font-size:13px;font-weight:700;
  text-transform:uppercase;letter-spacing:.1em;color:var(--G);
  transition:.25s var(--ease);
}
.step-item.active{color:var(--Y)}
.step-item.done{color:var(--Gl)}
.step-num{
  width:28px;height:28px;border-radius:4px;
  border:2px solid currentColor;
  display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:900;
  transition:.25s var(--ease);flex-shrink:0;
}
.step-item.active .step-num{background:var(--Y);color:var(--K);border-color:var(--Y)}
.step-item.done .step-num{background:var(--K3);border-color:var(--Gl)}
.step-item.done .step-num-i{display:none}
.step-item.done .step-num::after{content:'✓';font-size:11px}
.step-line{flex:1;min-width:20px;height:2px;background:var(--BD);margin:0 10px}

/* ── PANELS ──────────────────────────────────────────────── */
.panel{display:none;animation:panelIn .35s var(--ease) both}
.panel.active{display:block}
@keyframes panelIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
.ph{
  font-family:var(--fh);font-size:clamp(28px,6vw,50px);
  font-weight:900;letter-spacing:-.04em;text-transform:uppercase;
  line-height:1;margin-bottom:34px;
}
.ph em{color:var(--Y);font-style:normal}
.ph small{
  display:block;font-size:11px;font-weight:700;
  text-transform:uppercase;letter-spacing:.14em;color:var(--G);margin-bottom:8px;
}

/* ── STICKER GRID ────────────────────────────────────────── */
#sticker-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(228px,1fr));
  gap:16px;margin-bottom:36px;
}
.sc{
  background:var(--K2);border:2px solid var(--BD);border-radius:var(--r);
  overflow:hidden;cursor:pointer;transition:.22s var(--ease);position:relative;
}
.sc:hover{border-color:var(--Y);transform:translateY(-4px);box-shadow:0 14px 44px rgba(253,225,0,.11)}
.sc.sel{border-color:var(--Y);box-shadow:0 0 0 3px rgba(253,225,0,.22),0 14px 40px rgba(253,225,0,.12)}
.sc .cimg{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--K3);display:block}
.cimg-ph{width:100%;aspect-ratio:4/3;background:var(--K3);display:flex;align-items:center;justify-content:center;font-size:36px;color:var(--BD)}
.cbody{padding:13px 15px 15px}
.cname{font-family:var(--fh);font-weight:700;font-size:16px;text-transform:uppercase;letter-spacing:.02em;margin-bottom:3px}
.cpack{font-size:12px;color:var(--G);font-weight:500;margin-bottom:8px}
.cprice{font-family:var(--fh);font-size:21px;font-weight:900;color:var(--Y);display:flex;align-items:baseline;gap:6px}
.cprice sub{font-size:11px;color:var(--G);font-family:var(--fb);font-weight:400;bottom:0}
.cdesc{font-size:12px;color:var(--G);margin-top:7px;line-height:1.4}
.cadd{
  position:absolute;top:10px;right:10px;
  width:34px;height:34px;background:var(--Y);color:var(--K);
  border:none;border-radius:4px;font-size:22px;font-weight:900;
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  opacity:0;transform:scale(.6) rotate(-15deg);
  transition:.22s var(--ease);font-family:var(--fh);line-height:1;
}
.sc:hover .cadd,.sc.sel .cadd{opacity:1;transform:scale(1) rotate(0)}
.cbadge{
  position:absolute;top:10px;left:10px;
  background:var(--Y);color:var(--K);border-radius:3px;
  padding:3px 8px;font-family:var(--fh);font-size:10px;font-weight:900;
  text-transform:uppercase;letter-spacing:.06em;display:none;
}
.sc.sel .cbadge{display:block}

/* ── SKELETON ────────────────────────────────────────────── */
.sk-card{background:var(--K2);border:2px solid var(--BD);border-radius:var(--r);overflow:hidden}
.sk{background:linear-gradient(90deg,var(--K3) 25%,var(--K4) 50%,var(--K3) 75%);background-size:200% 100%;animation:shim 1.5s infinite}
@keyframes shim{from{background-position:200% 0}to{background-position:-200% 0}}
.sk-img{aspect-ratio:4/3}.sk-body{padding:14px;display:flex;flex-direction:column;gap:10px}
.sk-line{height:12px;border-radius:4px}.sk-sm{width:55%}

/* ── MODAL ───────────────────────────────────────────────── */
.overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.88);backdrop-filter:blur(10px);
  z-index:200;display:flex;align-items:center;justify-content:center;
  padding:20px;opacity:0;pointer-events:none;transition:.25s var(--ease);
}
.overlay.open{opacity:1;pointer-events:all}
.modal{
  background:var(--K2);border:2px solid var(--Y);border-radius:14px;
  padding:34px;width:100%;max-width:400px;
  transform:scale(.88) translateY(22px);
  transition:.28s var(--ease);position:relative;overflow:hidden;
}
.overlay.open .modal{transform:scale(1) translateY(0)}
.modal::before{
  content:'';position:absolute;top:0;right:0;
  width:64px;height:64px;background:var(--Y);
  clip-path:polygon(100% 0,0 0,100% 100%);border-radius:0 12px 0 0;
}
.m-name{
  font-family:var(--fh);font-size:24px;font-weight:900;
  text-transform:uppercase;letter-spacing:-.02em;
  margin-bottom:4px;padding-right:44px;
}
.m-meta{color:var(--G);font-size:13px;margin-bottom:26px}
.qty-row{display:flex;align-items:center;justify-content:center;gap:18px;margin-bottom:18px}
.qbtn{
  width:46px;height:46px;background:var(--K3);border:2px solid var(--BD);border-radius:7px;
  color:var(--W);font-size:22px;font-weight:700;font-family:var(--fh);
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:.18s var(--ease);line-height:1;
}
.qbtn:hover{border-color:var(--Y);color:var(--Y);background:rgba(253,225,0,.06)}
.qval{
  font-family:var(--fh);font-size:50px;font-weight:900;
  letter-spacing:-.04em;color:var(--Y);min-width:96px;text-align:center;line-height:1;
}
.presets{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-bottom:26px}
.preset{
  background:var(--K3);border:1.5px solid var(--BD);border-radius:50px;
  padding:5px 14px;font-size:13px;font-weight:700;font-family:var(--fh);
  text-transform:uppercase;letter-spacing:.05em;cursor:pointer;color:var(--W);
  transition:.18s var(--ease);
}
.preset:hover{border-color:var(--Y);color:var(--Y)}
.m-btns{display:flex;gap:10px}

/* ── BUTTONS ─────────────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:12px 24px;border-radius:6px;
  font-family:var(--fh);font-size:15px;font-weight:700;
  text-transform:uppercase;letter-spacing:.07em;
  cursor:pointer;border:2px solid transparent;
  transition:.2s var(--ease);text-decoration:none;white-space:nowrap;
}
.btn-y{background:var(--Y);color:var(--K);border-color:var(--Y)}
.btn-y:hover{background:var(--Yd);border-color:var(--Yd);transform:translateY(-1px)}
.btn-y:disabled{opacity:.4;cursor:not-allowed;transform:none}
.btn-o{background:transparent;color:var(--W);border-color:var(--BD)}
.btn-o:hover{border-color:var(--W)}
.btn-g{background:transparent;color:var(--G);border-color:transparent;font-size:14px}
.btn-g:hover{color:var(--W)}
.btn-lg{padding:15px 34px;font-size:17px}
.btn-full{width:100%}
.act{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:8px}

/* ── CART ────────────────────────────────────────────────── */
.ctbl{width:100%;border-collapse:collapse;margin-bottom:0}
.ctbl th{
  font-family:var(--fh);font-size:10px;font-weight:900;
  text-transform:uppercase;letter-spacing:.14em;color:var(--G);
  padding:0 16px 12px;text-align:left;border-bottom:2px solid var(--BD);
}
.ctbl th:last-child,.ctbl td:last-child{text-align:right}
.ctbl td{padding:15px 16px;border-bottom:1px solid var(--BD);font-size:14px;vertical-align:middle}
.ctbl tr:last-child td{border-bottom:none}
.ci-n{font-family:var(--fh);font-size:16px;font-weight:700;text-transform:uppercase;letter-spacing:.02em}
.ci-m{font-size:12px;color:var(--G);margin-top:2px}
.ci-p{font-family:var(--fh);font-size:18px;font-weight:900;color:var(--Y)}
.rmbtn{
  background:none;border:1.5px solid var(--BD);color:var(--G);cursor:pointer;
  font-size:12px;font-family:var(--fh);font-weight:700;padding:5px 10px;border-radius:4px;
  transition:.18s var(--ease);text-transform:uppercase;letter-spacing:.06em;
}
.rmbtn:hover{border-color:var(--ERR);color:var(--ERR)}
.sum-box{background:var(--K2);border:2px solid var(--BD);border-radius:var(--r);overflow:hidden;margin-bottom:30px}
.sum-row{display:flex;justify-content:space-between;align-items:center;padding:12px 18px;border-bottom:1px solid var(--BD);font-size:14px}
.sum-row:last-child{border-bottom:none}
.sum-row.tot{background:var(--Y);color:var(--K)}
.sum-row.tot .sl,.sum-row.tot .sv{font-family:var(--fh);font-size:21px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}

/* ── FORM ────────────────────────────────────────────────── */
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:30px}
@media(max-width:540px){.fgrid{grid-template-columns:1fr}}
.field{display:flex;flex-direction:column;gap:6px}
.field.full{grid-column:1/-1}
label{font-family:var(--fh);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.14em;color:var(--G)}
input[type=text],input[type=email]{
  background:var(--K2);border:2px solid var(--BD);border-radius:6px;
  padding:11px 15px;color:var(--W);font-family:var(--fb);font-size:15px;
  font-weight:500;outline:none;transition:.2s var(--ease);width:100%;
}
input[type=text]:focus,input[type=email]:focus{border-color:var(--Y);box-shadow:0 0 0 3px rgba(253,225,0,.1)}
input::placeholder{color:var(--K5)}
.err-msg{font-size:12px;color:var(--ERR);display:none;font-weight:600;font-family:var(--fh);letter-spacing:.04em;text-transform:uppercase}
.field.err input{border-color:var(--ERR)}
.field.err .err-msg{display:block}

/* ── REVIEW ──────────────────────────────────────────────── */
.rev-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:26px}
@media(max-width:620px){.rev-grid{grid-template-columns:1fr}}
.ibox{background:var(--K2);border:2px solid var(--BD);border-radius:var(--r);padding:18px 20px}
.ibox-lbl{font-family:var(--fh);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.16em;color:var(--G);margin-bottom:12px;display:flex;align-items:center;gap:8px}
.ibox-lbl::after{content:'';flex:1;height:1px;background:var(--BD)}
.ad-name{font-family:var(--fh);font-size:17px;font-weight:700;text-transform:uppercase;letter-spacing:.02em;margin-bottom:4px}
.ad-line{font-size:13px;color:var(--Gl)}

/* ── SUCCESS ─────────────────────────────────────────────── */
.succ{max-width:460px;margin:0 auto;text-align:center;padding:20px 0}
.succ-stripe{
  height:7px;margin-bottom:34px;border-radius:4px;
  background:repeating-linear-gradient(90deg,var(--Y) 0,var(--Y) 50%,var(--K) 50%,var(--K) 100%);
  background-size:22px 7px;animation:sv 1.1s linear infinite;
}
@keyframes sv{from{background-position:0}to{background-position:22px}}
.succ-ico{font-size:60px;line-height:1;margin-bottom:18px}
.succ-h{
  font-family:var(--fh);font-size:clamp(30px,7vw,50px);font-weight:900;
  text-transform:uppercase;letter-spacing:-.04em;line-height:1;margin-bottom:10px;
}
.succ-h em{color:var(--Y);font-style:normal}
.succ-sub{font-size:15px;color:var(--Gl);line-height:1.6;margin-bottom:26px}
.ord-tag{
  display:inline-block;background:var(--K2);
  border:2px solid var(--Y);border-radius:5px;
  padding:9px 22px;font-family:var(--fh);font-size:20px;font-weight:900;
  color:var(--Y);letter-spacing:.05em;margin-bottom:28px;
}

/* ── LOADER ──────────────────────────────────────────────── */
#loader{
  position:fixed;inset:0;background:rgba(0,0,0,.92);backdrop-filter:blur(8px);
  z-index:300;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:22px;opacity:0;pointer-events:none;transition:.25s var(--ease);
}
#loader.on{opacity:1;pointer-events:all}
.lring{width:50px;height:50px;border:3px solid var(--BD);border-top-color:var(--Y);border-radius:50%;animation:spin .75s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.ltxt{font-family:var(--fh);font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--G)}

/* ── TOASTS ──────────────────────────────────────────────── */
#tbox{position:fixed;bottom:22px;right:22px;z-index:400;display:flex;flex-direction:column;gap:9px;align-items:flex-end}
.tst{
  background:var(--K2);border-left:4px solid var(--Y);
  border-top:1px solid var(--BD);border-right:1px solid var(--BD);border-bottom:1px solid var(--BD);
  border-radius:6px;padding:11px 16px;font-size:13px;font-weight:700;
  font-family:var(--fh);text-transform:uppercase;letter-spacing:.07em;
  transform:translateX(120%);transition:transform .3s var(--ease);
  max-width:290px;display:flex;align-items:center;gap:9px;
}
.tst.show{transform:translateX(0)}
.tst.err{border-left-color:var(--ERR)}

/* ── MISC ────────────────────────────────────────────────── */
.empty{text-align:center;padding:60px 20px}
.empty-ico{font-size:48px;margin-bottom:14px}
.empty-txt{color:var(--G);font-size:15px}
@media(max-width:640px){.site-header{flex-direction:column;align-items:flex-start;gap:14px}}
