
/* ═══════════════════════════════════════════════════════
   TOKENS
═══════════════════════════════════════════════════════ */
:root {
  /* Dark palette */
  --c-bg:      #0a0a0c;
  --c-surface: #131316;
  --c-card:    #181820;
  --c-border:  rgba(255,255,255,.08);
  --c-border2: rgba(255,255,255,.05);
  --c-txt:     #f0eff8;
  --c-txt2:    rgba(240,239,248,.60);
  --c-txt3:    rgba(240,239,248,.38);
  --c-red:     #e8183a;
  --c-red2:    #ff4060;
  --c-gold:    #c9a44e;
  --c-gold2:   #e8c97a;
  --c-overlay: rgba(0,0,0,.70);
  --c-scrim:   rgba(10,10,12,.94);

  --r-xl:  24px;
  --r-lg:  18px;
  --r-md:  14px;
  --r-sm:  10px;
  --r-pill:999px;

  --font-display: "Cormorant Garamond", Georgia, serif;
  --font-ui:      "Montserrat", "Manrope", system-ui, sans-serif;

  --ease:   cubic-bezier(.22,.9,.22,1);
  --spring: cubic-bezier(.34,1.56,.64,1);

  --nav-h: 68px;
  --hdr-h: 60px;
  --safe-b: env(safe-area-inset-bottom, 0px);
  --safe-t: env(safe-area-inset-top, 0px);

  --max: 1200px;
  --pad: 16px;

  color-scheme: dark;
}
[data-theme="light"] {
  --c-bg:      #faf8f5;
  --c-surface: #f2ede6;
  --c-card:    #ffffff;
  --c-border:  rgba(0,0,0,.09);
  --c-border2: rgba(0,0,0,.05);
  --c-txt:     #1a1814;
  --c-txt2:    rgba(26,24,20,.58);
  --c-txt3:    rgba(26,24,20,.36);
  --c-overlay: rgba(0,0,0,.40);
  --c-scrim:   rgba(250,248,245,.96);
  color-scheme: light;
}

/* ═══════════════════════════════════════════════════════
   RESET
═══════════════════════════════════════════════════════ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{height:100%;scroll-behavior:smooth;overflow-x:hidden}
body{
  min-height:100%;
  font-family:var(--font-ui);
  font-size:14px;
  line-height:1.5;
  color:var(--c-txt);
  background:var(--c-bg);
  /* overflow-x moved to html to allow sticky positioning */
  transition:background .3s ease,color .3s ease;
}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:none;background:none}
img{display:block;max-width:100%}
input,select{font:inherit}
.sr{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ═══════════════════════════════════════════════════════
   LAYOUT
═══════════════════════════════════════════════════════ */
.container{
  width:min(var(--max), calc(100% - var(--pad)*2));
  margin-inline:auto;
}
.main{
  padding-block:16px calc(var(--nav-h) + var(--safe-b) + 80px);
}
@media(min-width:900px){.main{padding-bottom:48px}}

/* ═══════════════════════════════════════════════════════
   ANIMATED BACKGROUND
═══════════════════════════════════════════════════════ */
body::before{
  content:"";
  position:fixed;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(ellipse 900px 600px at 15% 0%,   rgba(232,24,58,.10) 0%,transparent 70%),
    radial-gradient(ellipse 700px 500px at 85% 20%,  rgba(201,164,78,.07) 0%,transparent 70%),
    radial-gradient(ellipse 600px 400px at 50% 100%, rgba(232,24,58,.06) 0%,transparent 70%);
  transition:opacity .5s ease;
}
[data-theme="light"] body::before{
  background:
    radial-gradient(ellipse 900px 600px at 15% 0%,   rgba(232,24,58,.05) 0%,transparent 70%),
    radial-gradient(ellipse 700px 500px at 85% 20%,  rgba(201,164,78,.04) 0%,transparent 70%),
    radial-gradient(ellipse 600px 400px at 50% 100%, rgba(232,24,58,.03) 0%,transparent 70%);
}
.main,.bottomNav,.stickyCart,.stickyFilters,.contacts,.toTop{position:relative;z-index:1}

/* ═══════════════════════════════════════════════════════
   TYPOGRAPHY
═══════════════════════════════════════════════════════ */
.display{font-family:var(--font-display);font-weight:600;line-height:1.08;letter-spacing:-.01em}
.h1{font-size:clamp(34px,6vw,56px)}
.h2{font-size:clamp(26px,4vw,38px)}
.h3{font-size:20px;font-weight:700}
.h4{font-size:16px;font-weight:700}
.caption{font-size:12px;color:var(--c-txt3);font-weight:500;letter-spacing:.04em;text-transform:uppercase}
.muted{color:var(--c-txt2)}

/* ═══════════════════════════════════════════════════════
   CARDS / SURFACES
═══════════════════════════════════════════════════════ */
.card{
  background:var(--c-card);
  border:1px solid var(--c-border);
  border-radius:var(--r-xl);
  overflow:hidden;
  transition:border-color .2s ease,box-shadow .2s ease,transform .2s var(--ease);
}
[data-theme="dark"] .card{
  box-shadow:0 1px 0 rgba(255,255,255,.04) inset, 0 4px 16px rgba(0,0,0,.30);
}
[data-theme="light"] .card{
  box-shadow:0 1px 0 rgba(255,255,255,.80) inset, 0 2px 12px rgba(0,0,0,.06);
}
.card:hover{transform:translateY(-3px)}
[data-theme="dark"]  .card:hover{box-shadow:0 1px 0 rgba(255,255,255,.06) inset, 0 12px 32px rgba(0,0,0,.40);border-color:rgba(255,255,255,.14)}
[data-theme="light"] .card:hover{box-shadow:0 1px 0 rgba(255,255,255,.80) inset, 0 8px 24px rgba(0,0,0,.10);border-color:rgba(0,0,0,.16)}

.surface{
  background:var(--c-surface);
  border:1px solid var(--c-border);
  border-radius:var(--r-xl);
}

/* ═══════════════════════════════════════════════════════
   BUTTONS
═══════════════════════════════════════════════════════ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  height:44px;padding:0 18px;
  border-radius:var(--r-md);
  border:1px solid var(--c-border);
  background:rgba(255,255,255,.06);
  color:var(--c-txt);
  font-size:13.5px;font-weight:600;white-space:nowrap;
  cursor:pointer;user-select:none;
  transition:transform .17s var(--ease),background .17s ease,border-color .17s ease,box-shadow .17s ease;
}
[data-theme="light"] .btn{background:rgba(0,0,0,.04);border-color:rgba(0,0,0,.10)}
.btn:hover{transform:translateY(-2px);background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.18);box-shadow:0 6px 20px rgba(0,0,0,.22)}
[data-theme="light"] .btn:hover{background:rgba(0,0,0,.07);border-color:rgba(0,0,0,.18);box-shadow:0 4px 14px rgba(0,0,0,.09)}
.btn:active{transform:scale(.97)}

.btn-primary{
  background:var(--c-red);
  border-color:var(--c-red);
  color:#fff;
  box-shadow:0 4px 18px rgba(232,24,58,.35);
}
.btn-primary:hover{background:#c8102e;border-color:#c8102e;box-shadow:0 8px 26px rgba(232,24,58,.45);transform:translateY(-2px)}
[data-theme="light"] .btn-primary{background:var(--c-red);border-color:var(--c-red);color:#fff}

.btn-ghost{background:transparent;border-color:transparent}
.btn-ghost:hover{background:rgba(255,255,255,.06);border-color:var(--c-border)}
[data-theme="light"] .btn-ghost:hover{background:rgba(0,0,0,.05);border-color:var(--c-border)}

.btn-gold{
  background:rgba(201,164,78,.14);
  border-color:rgba(201,164,78,.30);
  color:var(--c-gold2);
}
[data-theme="light"] .btn-gold{background:rgba(201,164,78,.10);color:rgba(140,100,20,.90)}
.btn-gold:hover{background:rgba(201,164,78,.22);box-shadow:0 6px 20px rgba(201,164,78,.18)}

.btn-icon{width:44px;height:44px;padding:0;border-radius:var(--r-md);flex-shrink:0}
.btn-sm{height:36px;padding:0 14px;font-size:12.5px;border-radius:var(--r-sm)}
.btn-xs{height:30px;padding:0 10px;font-size:12px;border-radius:8px}

/* ═══════════════════════════════════════════════════════
   CHIPS / BADGES
═══════════════════════════════════════════════════════ */
.chip{
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 10px;border-radius:var(--r-pill);
  border:1px solid var(--c-border);
  background:rgba(255,255,255,.05);
  color:var(--c-txt2);font-size:12.5px;font-weight:500;
  white-space:nowrap;
}
[data-theme="light"] .chip{background:rgba(0,0,0,.04);border-color:rgba(0,0,0,.09);color:var(--c-txt2)}
.chip b,.chip strong{color:var(--c-txt);font-weight:700}
.chip-red{border-color:rgba(232,24,58,.28);background:rgba(232,24,58,.08);color:rgba(255,96,120,.90)}
[data-theme="light"] .chip-red{color:rgba(180,10,30,.85)}
.chip-gold{border-color:rgba(201,164,78,.28);background:rgba(201,164,78,.08);color:var(--c-gold2)}
[data-theme="light"] .chip-gold{color:rgba(130,90,10,.90)}
.chip-green{border-color:rgba(34,197,94,.26);background:rgba(34,197,94,.07);color:rgba(74,222,128,.90)}
[data-theme="light"] .chip-green{color:rgba(20,140,60,.90)}

/* ═══════════════════════════════════════════════════════
   TAGS (на карточках товаров)
═══════════════════════════════════════════════════════ */
.tag{
  display:inline-flex;align-items:center;
  padding:4px 8px;border-radius:6px;
  font-size:11px;font-weight:700;letter-spacing:.02em;
  white-space:nowrap;line-height:1;
}
.tag-sale{background:var(--c-red);color:#fff}
.tag-new{background:rgba(34,197,94,.85);color:#fff}
.tag-hit{background:rgba(201,164,78,.90);color:#fff}
.tag-order{background:rgba(255,255,255,.12);color:var(--c-txt2)}
[data-theme="light"] .tag-order{background:rgba(0,0,0,.08);color:var(--c-txt2)}

/* ═══════════════════════════════════════════════════════
   SECTION HEADER
═══════════════════════════════════════════════════════ */
.sec-head{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:12px;margin-bottom:18px;flex-wrap:wrap;
}
.sec-head h2{
  font-family:var(--font-display);font-size:clamp(22px,4vw,30px);
  font-weight:600;line-height:1.1;
  background:linear-gradient(135deg,var(--c-txt) 40%,var(--c-txt2));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
/* sec-head h2 light — handled by TYPOGRAPHY_CSS */
.sec-head p{font-size:13px;color:var(--c-txt3);margin-top:4px}
.sec-head .right{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.section{margin-top:32px}
@media(max-width:600px){.section{margin-top:24px}}

/* ═══════════════════════════════════════════════════════
   HEADER
═══════════════════════════════════════════════════════ */
/* duplicate .header removed */
.hdr-inner{
  display:flex;align-items:center;gap:10px;
  height:var(--hdr-h);
}

/* Logo */
.logo{
  display:flex;align-items:center;gap:10px;
  flex-shrink:0;cursor:pointer;
}
.logo-dark{display:block;width:100%;height:100%;padding:2px}
.logo-light{display:none;width:100%;height:100%;padding:2px}
[data-theme="light"] .logo-dark{display:none}
[data-theme="light"] .logo-light{display:block}
.logo-img{
  width:40px;height:40px;border-radius:12px;
  overflow:hidden;border:1px solid var(--c-border);
  flex-shrink:0;
  background:linear-gradient(135deg,rgba(232,24,58,.18),rgba(201,164,78,.12));
  display:flex;align-items:center;justify-content:center;
  transition:transform .2s var(--spring);
}
.logo-img:hover{transform:scale(1.06)}
.logo-img img{width:100%;height:100%;object-fit:contain;padding:4px}
.logo-text{min-width:0}
.logo-text b{display:block;font-size:14px;font-weight:800;letter-spacing:-.02em;white-space:nowrap}
.logo-text span{display:block;font-size:11px;color:var(--c-txt3);white-space:nowrap}
@media(max-width:640px){.logo-text span{display:none}}

/* Desktop search */
.hdr-search{
  flex:1;min-width:0;max-width:480px;
  display:flex;align-items:center;gap:9px;
  height:40px;padding:0 12px;
  border-radius:var(--r-md);
  border:1px solid var(--c-border);
  background:rgba(255,255,255,.05);
  transition:background .2s,border-color .2s,box-shadow .2s;
  cursor:text;
}
[data-theme="light"] .hdr-search{background:rgba(0,0,0,.04);border-color:rgba(0,0,0,.10)}
.hdr-search:focus-within{
  border-color:rgba(232,24,58,.40);
  background:rgba(232,24,58,.04);
  box-shadow:0 0 0 3px rgba(232,24,58,.10);
}
.hdr-search svg{flex-shrink:0;opacity:.45}
[data-theme="light"] .hdr-search svg{opacity:.50}
.hdr-search input{
  flex:1;min-width:0;background:none;border:none;outline:none;
  font-size:13.5px;color:var(--c-txt);
}
.hdr-search input::placeholder{color:var(--c-txt3)}
.eta-badge{
  flex-shrink:0;
  font-size:11px;font-weight:600;
  padding:3px 7px;border-radius:var(--r-pill);
  border:1px solid var(--c-border);
  background:rgba(255,255,255,.04);
  color:var(--c-txt3);
  white-space:nowrap;
}
[data-theme="light"] .eta-badge{background:rgba(0,0,0,.04)}
@media(max-width:760px){.hdr-search{display:none}}

/* Header actions */
.hdr-actions{display:flex;align-items:center;gap:7px;margin-left:auto;flex-shrink:0}
.hdr-call{
  display:flex;align-items:center;gap:7px;
  height:36px;padding:0 12px;
  border-radius:var(--r-sm);
  font-size:13px;font-weight:600;
  border:1px solid var(--c-border);
  background:transparent;color:var(--c-txt);
  transition:background .17s,border-color .17s;
}
.hdr-call:hover{background:rgba(255,255,255,.06)}
[data-theme="light"] .hdr-call{border-color:rgba(0,0,0,.10)}
[data-theme="light"] .hdr-call:hover{background:rgba(0,0,0,.05)}
.call-dot{width:7px;height:7px;border-radius:50%;background:var(--c-red);box-shadow:0 0 8px rgba(232,24,58,.50);flex-shrink:0}
@media(max-width:640px){.hdr-call{display:none}}

/* Cart button */
.cart-btn{position:relative}
.cart-count{
  position:absolute;top:-4px;right:-4px;
  min-width:18px;height:18px;padding:0 4px;
  border-radius:var(--r-pill);
  background:var(--c-red);color:#fff;
  font-size:10.5px;font-weight:800;
  display:none;align-items:center;justify-content:center;
  border:2px solid var(--c-bg);
}
.cart-count.show{display:flex}
[data-theme="light"] .cart-count{border-color:var(--c-bg)}

/* Mobile search */
.mob-search-btn{display:none}
@media(max-width:760px){.mob-search-btn{display:flex}}
/* burger always visible */
#btnBurger{display:flex}

/* ═══════════════════════════════════════════════════════
   VIEWS
═══════════════════════════════════════════════════════ */
.view{display:none}
.view.active{display:block;animation:viewIn .3s var(--ease) both}
@keyframes viewIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* ═══════════════════════════════════════════════════════
   HERO / SLIDER
═══════════════════════════════════════════════════════ */
.hero{
  display:grid;
  grid-template-columns:1.3fr .7fr;
  gap:14px;
  align-items:stretch;
  margin-bottom:24px;
}
@media(max-width:900px){.hero{grid-template-columns:1fr;gap:12px}}

.slider-wrap{
  position:relative;overflow:hidden;
  border-radius:var(--r-xl);
  min-height:340px;
  touch-action:pan-y;
}
@media(max-width:600px){.slider-wrap{min-height:280px}}

.slides{display:flex;height:100%;transition:transform .6s var(--ease);will-change:transform}
.slide{
  flex:0 0 100%;
  padding:32px;
  display:flex;flex-direction:column;justify-content:space-between;gap:16px;
  position:relative;overflow:hidden;
}
@media(max-width:480px){.slide{padding:20px 18px}}

/* Slide BG */
.slide::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(232,24,58,.15) 0%,rgba(201,164,78,.08) 60%,rgba(20,20,30,.20) 100%);
  z-index:0;
}
[data-theme="light"] .slide::before{
  background:linear-gradient(135deg,rgba(232,24,58,.08) 0%,rgba(201,164,78,.06) 60%,rgba(240,235,228,.40) 100%);
}
.slide>*{position:relative;z-index:1}

.slide-eyebrow{margin-bottom:10px}
.slide h1{
  font-family:var(--font-display);
  font-size:clamp(30px,5vw,48px);
  font-weight:600;line-height:1.05;
  color:var(--c-txt);
  margin-bottom:10px;
}
.slide h1 em{font-style:italic;color:var(--c-red2)}
.slide p{font-size:15px;color:var(--c-txt2);line-height:1.55;max-width:480px;margin-bottom:4px}
@media(max-width:480px){.slide p{font-size:13.5px}}
.slide-actions{display:flex;gap:9px;flex-wrap:wrap}
.slide-meta{display:flex;gap:8px;flex-wrap:wrap}

/* Slider dots */
.slider-dots{
  position:absolute;left:20px;bottom:16px;
  display:flex;gap:7px;z-index:3;
}
.sdot{
  width:8px;height:8px;border-radius:var(--r-pill);
  background:rgba(255,255,255,.25);border:none;
  cursor:pointer;padding:0;
  transition:width .3s var(--spring),background .2s;
}
.sdot.on{width:22px;background:var(--c-red)}

/* Slider arrows */
.sarr{
  position:absolute;top:50%;transform:translateY(-50%);
  width:36px;height:36px;border-radius:var(--r-sm);
  background:rgba(0,0,0,.40);border:1px solid rgba(255,255,255,.14);
  backdrop-filter:blur(8px);
  color:#fff;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;z-index:3;
  opacity:0;pointer-events:none;
  transition:opacity .2s,transform .15s var(--ease),background .15s;
}
.slider-wrap:hover .sarr{opacity:1;pointer-events:all}
.sarr:hover{background:rgba(0,0,0,.65);transform:translateY(-50%) scale(1.08)}
.sarr.l{left:10px}.sarr.r{right:10px}
@media(max-width:640px){.sarr{display:none}}
[data-theme="light"] .sarr{background:rgba(255,255,255,.18);border-color:rgba(0,0,0,.06);color:#222;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
[data-theme="light"] .sarr:hover{background:rgba(255,255,255,.40)}

/* Countdown */
.countdown{
  display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;
  padding:7px 10px;border-radius:var(--r-pill);
  border:1px solid rgba(232,24,58,.28);
  background:rgba(232,24,58,.08);
}
.cdown-lbl{font-size:11.5px;font-weight:700;color:rgba(255,110,130,.85)}
[data-theme="light"] .cdown-lbl{color:rgba(180,10,30,.85)}
.cdown-seg{display:inline-flex;align-items:baseline;gap:3px}
.cdown-seg b{font-size:13.5px;font-weight:800;color:var(--c-txt);font-variant-numeric:tabular-nums}
.cdown-seg span{font-size:10.5px;color:var(--c-txt3)}

/* Hero right cards */
.hero-side{display:flex;flex-direction:column;gap:14px}
@media(max-width:900px){.hero-side{display:grid;grid-template-columns:1fr 1fr;gap:12px}}
@media(max-width:540px){.hero-side{grid-template-columns:1fr}}

.mini-card{
  flex:1;
  padding:20px;
  border-radius:var(--r-xl);
  display:flex;flex-direction:column;justify-content:space-between;gap:12px;
  position:relative;overflow:hidden;
  min-height:140px;
  cursor:pointer;
  transition:transform .2s var(--ease),box-shadow .2s ease;
}
[data-theme="dark"] .mini-card{
  background:var(--c-card);
  border:1px solid var(--c-border);
  box-shadow:0 4px 16px rgba(0,0,0,.28);
}
[data-theme="light"] .mini-card{
  background:#fff;
  border:1px solid var(--c-border);
  box-shadow:0 2px 12px rgba(0,0,0,.06);
}
.mini-card:hover{transform:translateY(-3px)}
[data-theme="dark"] .mini-card:hover{box-shadow:0 12px 32px rgba(0,0,0,.40)}
[data-theme="light"] .mini-card:hover{box-shadow:0 8px 24px rgba(0,0,0,.10)}
.mini-card::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse 240px 180px at 90% 90%,rgba(201,164,78,.10),transparent);
}
.mini-card h3{font-size:16px;font-weight:700;margin-bottom:4px}
.mini-card p{font-size:12.5px;color:var(--c-txt2);line-height:1.45}
.mini-card-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}

/* ═══════════════════════════════════════════════════════
   USP ROW
═══════════════════════════════════════════════════════ */
.usp-row{
  display:flex;gap:8px;flex-wrap:wrap;padding:14px 16px;
  border-radius:var(--r-lg);
  border:1px solid var(--c-border);
  background:var(--c-surface);
}
@media(max-width:600px){
  .usp-row{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
  .usp-row .chip{white-space:normal;justify-content:center;text-align:center;width:100%}
}

/* ═══════════════════════════════════════════════════════
   CATEGORY GRID
═══════════════════════════════════════════════════════ */
.cat-grid{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:12px;
}
@media(max-width:900px){.cat-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){
  .cat-grid{grid-template-columns:repeat(2,1fr);gap:10px}
}

.cat-item{
  padding:16px 14px;
  border-radius:var(--r-lg);
  cursor:pointer;
  display:flex;flex-direction:column;gap:8px;
  border:1px solid var(--c-border);
  background:var(--c-card);
  transition:transform .2s var(--ease),border-color .2s ease,box-shadow .2s ease;
  min-height:110px;justify-content:space-between;
  position:relative;overflow:hidden;
}
@media(max-width:600px){
  .cat-item{min-height:100px;padding:14px 12px}
}
/* Background image layer */
.cat-item::before{
  content:'';position:absolute;inset:0;z-index:0;
  background-size:cover;background-position:center;
  transition:transform .45s var(--ease),opacity .3s ease;
}
.cat-item:hover::before{transform:scale(1.09)}
.cat-item > *{position:relative;z-index:1}
[data-theme="dark"] .cat-item::before{opacity:.22;filter:saturate(.5) brightness(.45)}
[data-theme="light"] .cat-item::before{opacity:.15;filter:saturate(.4) brightness(1.2)}
.cat-item[data-cat="flowers"]::before{
  background-image:url('https://images.pexels.com/photos/11166470/pexels-photo-11166470.jpeg?auto=compress&cs=tinysrgb&w=400');
}
.cat-item[data-cat="gifts"]::before{
  background-image:url('https://images.unsplash.com/photo-1549465220-1a8b9238cd48?ixlib=rb-4.0.3&auto=format&fit=crop&w=400&q=80');
}
.cat-item[data-cat="balloons"]::before{
  background-image:url('https://images.unsplash.com/photo-1530103862676-de8c9debad1d?ixlib=rb-4.0.3&auto=format&fit=crop&w=400&q=80');
}
.cat-item[data-cat="souvenirs"]::before{
  background-image:url('https://images.unsplash.com/photo-1559454403-b8fb88521f11?ixlib=rb-4.0.3&auto=format&fit=crop&w=400&q=80');
}
.cat-item[data-cat="coffee"]::before{
  background-image:url('https://images.unsplash.com/photo-1495474472287-4d71bcdd2085?ixlib=rb-4.0.3&auto=format&fit=crop&w=400&q=80');
}
[data-theme="light"] .cat-item{background:var(--c-card)}
.cat-item:hover{transform:translateY(-4px);border-color:rgba(232,24,58,.28)}
[data-theme="dark"] .cat-item:hover{box-shadow:0 12px 28px rgba(0,0,0,.35)}
[data-theme="light"] .cat-item:hover{box-shadow:0 8px 20px rgba(0,0,0,.09)}
.cat-item:active{transform:scale(.96);border-color:rgba(232,24,58,.35)}
.cat-emoji{
  width:40px;height:40px;border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  font-size:20px;
  border:1px solid var(--c-border);
  background:rgba(255,255,255,.04);
  transition:transform .25s var(--spring);
}
[data-theme="light"] .cat-emoji{background:rgba(0,0,0,.03)}
.cat-item:hover .cat-emoji{transform:scale(1.15) rotate(8deg)}
.cat-item b{font-size:14px;font-weight:700;color:var(--c-txt)}
.cat-item span{font-size:11.5px;color:var(--c-txt3)}
@media(max-width:600px){.cat-item b{font-size:13px}.cat-item span{font-size:11px}}

/* ═══════════════════════════════════════════════════════
   PRODUCTS GRID
═══════════════════════════════════════════════════════ */
.prod-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
}
@media(max-width:1100px){.prod-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:780px) {.prod-grid{grid-template-columns:repeat(2,1fr);gap:12px}}
/* vm-grid2: 2 колонки всегда на мобильных *
   prod-grid.two-col = 2col forced */
.prod-grid.two-col{grid-template-columns:repeat(2,1fr) !important}
.prod-grid.one-col{grid-template-columns:1fr !important}

/* Catalog toolbar */
.cat-toolbar{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:12px 14px;
  border-radius:var(--r-lg);
  border:1px solid var(--c-border);
  background:var(--c-surface);
  margin-bottom:14px;
  flex-wrap:wrap;
  gap:8px;
}
.toolbar-l,.toolbar-r{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sort-pill{
  display:inline-flex;align-items:center;gap:7px;
  padding:7px 12px;border-radius:var(--r-pill);
  border:1px solid var(--c-border);
  background:rgba(255,255,255,.04);
  color:var(--c-txt2);font-size:12.5px;
}
[data-theme="light"] .sort-pill{background:rgba(0,0,0,.04)}
.sort-pill select{
  background:none;border:none;outline:none;
  color:var(--c-txt);font-weight:700;font-size:12.5px;
  cursor:pointer;
}
.view-icon{
  width:36px;height:36px;border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  border:1px solid var(--c-border);
  background:rgba(255,255,255,.04);
  cursor:pointer;
  transition:background .15s,border-color .15s;
  flex-shrink:0;
}
[data-theme="light"] .view-icon{background:rgba(0,0,0,.04)}
.view-icon:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.16)}
[data-theme="light"] .view-icon:hover{background:rgba(0,0,0,.07);border-color:rgba(0,0,0,.16)}
.view-icon.on{border-color:rgba(232,24,58,.30);background:rgba(232,24,58,.08)}
.view-icon svg path{stroke:var(--c-txt2)}
.view-icon.on svg path{stroke:var(--c-red2)}

/* Category tabs */
.cat-tabs{
  display:flex;gap:6px;flex-wrap:nowrap;overflow-x:auto;
  scrollbar-width:none;padding-bottom:2px;
}
.cat-tabs::-webkit-scrollbar{display:none}
.ctab{
  flex-shrink:0;padding:7px 12px;border-radius:var(--r-pill);
  border:1px solid var(--c-border);
  background:rgba(255,255,255,.04);
  color:var(--c-txt2);font-size:12.5px;font-weight:600;
  cursor:pointer;
  transition:background .15s,border-color .15s,color .15s;
  white-space:nowrap;
}
[data-theme="light"] .ctab{background:rgba(0,0,0,.04)}
.ctab:hover{background:rgba(255,255,255,.08);color:var(--c-txt)}
[data-theme="light"] .ctab:hover{background:rgba(0,0,0,.07);color:var(--c-txt)}
.ctab.on{background:rgba(232,24,58,.10);border-color:rgba(232,24,58,.30);color:var(--c-txt)}

/* ═══════════════════════════════════════════════════════
   PRODUCT CARD
═══════════════════════════════════════════════════════ */
.pcard{
  border-radius:var(--r-xl);
  overflow:hidden;
  cursor:pointer;
  display:flex;flex-direction:column;
  border:1px solid var(--c-border);
  background:var(--c-card);
  transition:transform .22s var(--ease),border-color .2s,box-shadow .2s;
  min-width:0;
  position:relative;
}
[data-theme="dark"] .pcard{box-shadow:0 2px 10px rgba(0,0,0,.24)}
[data-theme="light"] .pcard{box-shadow:0 1px 6px rgba(0,0,0,.06)}
.pcard:hover{transform:translateY(-4px)}
[data-theme="dark"] .pcard:hover{border-color:rgba(255,255,255,.14);box-shadow:0 14px 36px rgba(0,0,0,.38)}
[data-theme="light"] .pcard:hover{border-color:rgba(0,0,0,.15);box-shadow:0 10px 28px rgba(0,0,0,.10)}

/* Image */
.pcard-img{
  position:relative;overflow:hidden;
  aspect-ratio:3/4;
  background:var(--c-surface);
  flex-shrink:0;
}
.pcard-img img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .45s var(--ease);
}
.pcard:hover .pcard-img img{transform:scale(1.06)}
.pcard-img.empty::after{
  content:"🌸";position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;
  font-size:36px;opacity:.25;
}
.pcard-tags{
  position:absolute;top:8px;left:8px;z-index:2;
  display:flex;gap:5px;flex-wrap:wrap;
  max-width:calc(100% - 46px);
}
.pcard-img .pcard-fav{
  position:absolute;top:8px;right:8px;z-index:2;
  width:32px;height:32px;border-radius:10px;
  background:rgba(0,0,0,.40);backdrop-filter:blur(8px);
  display:flex;align-items:center;justify-content:center;
  border:none;cursor:pointer;
  opacity:.65;transition:transform .2s var(--spring),background .15s,opacity .15s;
}
.pcard:hover .pcard-fav{opacity:1}
.pcard-fav:hover{transform:scale(1.2);background:rgba(232,24,58,.50)}
.pcard-fav.liked{background:rgba(232,24,58,.70);opacity:1}

/* Body */
.pcard-body{
  padding:12px;
  display:flex;flex-direction:column;gap:6px;
  flex:1;
}
@media(max-width:480px){.pcard-body{padding:10px}}
.pcard-name{
  font-size:13.5px;font-weight:700;
  color:var(--c-txt);line-height:1.25;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
@media(max-width:480px){.pcard-name{font-size:12.5px}}
.pcard-desc{
  font-size:12px;color:var(--c-txt3);
  display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;
}
@media(max-width:480px){.pcard-desc{display:none}}
.pcard-promo{
  display:flex;align-items:center;justify-content:space-between;gap:6px;
  padding:6px 8px;border-radius:8px;
  background:rgba(232,24,58,.08);border:1px solid rgba(232,24,58,.18);
  font-size:11.5px;
}
[data-theme="light"] .pcard-promo{background:rgba(232,24,58,.06)}
.pcard-promo b{color:var(--c-red2);font-weight:700}
.pcard-promo span{color:var(--c-txt3)}
.pcard-foot{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:8px;margin-top:auto;padding-top:4px;
}
.pcard-price .now{font-size:16px;font-weight:800;color:var(--c-txt);line-height:1}
.pcard-price .old{font-size:11.5px;color:var(--c-txt3);text-decoration:line-through;margin-top:2px}
@media(max-width:480px){.pcard-price .now{font-size:15px}}
.pcard-rating{
  display:flex;align-items:center;gap:4px;
  font-size:12px;color:var(--c-txt3);flex-shrink:0;
}
.star{color:var(--c-gold)}
.pcard-actions{
  display:flex;gap:7px;padding:0 12px 12px;
}
@media(max-width:480px){.pcard-actions{padding:0 10px 10px;gap:6px}}
.pcard-actions .btn{flex:1;min-width:0}
.pcard-add{font-size:13px;height:38px;border-radius:12px}
.pcard-view{height:38px;border-radius:12px;padding:0 12px;font-size:13px}
@media(max-width:380px){.pcard-view{display:none}.pcard-add{border-radius:12px}}

/* List row view */
.prow{
  display:flex;gap:12px;align-items:center;padding:12px;
  border-radius:var(--r-lg);border:1px solid var(--c-border);
  background:var(--c-card);
  transition:border-color .2s,box-shadow .2s;
  cursor:pointer;
}
.prow:hover{border-color:rgba(255,255,255,.16)}
[data-theme="light"] .prow:hover{border-color:rgba(0,0,0,.15)}
.prow-thumb{
  width:72px;flex-shrink:0;aspect-ratio:3/4;
  border-radius:12px;overflow:hidden;background:var(--c-surface);position:relative;
}
.prow-thumb img{width:100%;height:100%;object-fit:cover}
.prow-thumb.empty::after{content:"🌸";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:24px;opacity:.3}
.prow-info{flex:1;min-width:0}
.prow-name{font-weight:700;font-size:14px;color:var(--c-txt);margin-bottom:3px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prow-desc{font-size:12.5px;color:var(--c-txt3);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:6px}
.prow-tags{display:flex;gap:5px;flex-wrap:wrap}
.prow-right{text-align:right;flex-shrink:0;min-width:90px}
.prow-right .now{font-size:15px;font-weight:800;color:var(--c-txt)}
.prow-right .old{font-size:11.5px;color:var(--c-txt3);text-decoration:line-through;margin-bottom:4px}
.prow-actions{display:flex;gap:7px}

/* ═══════════════════════════════════════════════════════
   GIFT BUILDER
═══════════════════════════════════════════════════════ */
.builder-wrap{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:14px;
}
@media(max-width:900px){.builder-wrap{grid-template-columns:1fr}}

.builder-steps{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}
.bstep{
  padding:8px 13px;border-radius:var(--r-pill);
  border:1px solid var(--c-border);background:rgba(255,255,255,.04);
  color:var(--c-txt2);font-size:12.5px;font-weight:600;
  cursor:pointer;
  transition:background .15s,border-color .15s,color .15s;
}
[data-theme="light"] .bstep{background:rgba(0,0,0,.04)}
.bstep.on{background:rgba(232,24,58,.10);border-color:rgba(232,24,58,.30);color:var(--c-txt)}

.picks-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:10px;
}
.pick-item{
  display:flex;align-items:center;gap:10px;
  padding:11px;border-radius:var(--r-md);
  border:1px solid var(--c-border);
  background:rgba(255,255,255,.03);
  cursor:pointer;
  transition:border-color .15s,background .15s,transform .15s var(--ease);
}
[data-theme="light"] .pick-item{background:rgba(0,0,0,.02)}
.pick-item:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.16);background:rgba(255,255,255,.06)}
[data-theme="light"] .pick-item:hover{background:rgba(0,0,0,.05);border-color:rgba(0,0,0,.16)}
.pick-item.sel{border-color:rgba(232,24,58,.38);background:rgba(232,24,58,.07)}
.pick-icon{
  width:42px;height:42px;border-radius:12px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:19px;
  border:1px solid var(--c-border);background:rgba(255,255,255,.05);
}
.pick-info{min-width:0}
.pick-info b{display:block;font-size:12.5px;font-weight:700;color:var(--c-txt);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pick-info span{font-size:12px;color:var(--c-txt3)}

/* Summary */
.builder-summary{
  padding:20px;border-radius:var(--r-xl);
  border:1px solid var(--c-border);background:var(--c-card);
  position:sticky;top:calc(var(--hdr-h) + 20px + var(--safe-t));
}
@media(max-width:900px){.builder-summary{position:relative;top:0}}
[data-theme="dark"] .builder-summary{box-shadow:0 4px 20px rgba(0,0,0,.24)}
.sum-row{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:10px 0;border-bottom:1px solid var(--c-border2);
}
.sum-row:last-child{border-bottom:none}
.sum-row .lbl{font-size:13px;color:var(--c-txt2)}
.sum-row .val{font-weight:700;font-size:13px;color:var(--c-txt)}
.sum-row .name{font-size:12px;color:var(--c-txt3);margin-top:2px}
.sum-total{
  display:flex;align-items:center;justify-content:space-between;
  padding-top:14px;margin-top:4px;border-top:1px solid var(--c-border);
}
.sum-total .big{font-size:22px;font-weight:800;color:var(--c-txt)}
.sum-disc{font-size:13px;font-weight:700;color:var(--c-gold2)}

/* ═══════════════════════════════════════════════════════
   INFO BLOCKS (delivery, about, coffee)
═══════════════════════════════════════════════════════ */
.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
@media(max-width:860px){.two-cols{grid-template-columns:1fr}}

.info-block{
  padding:22px;border-radius:var(--r-xl);
  border:1px solid var(--c-border);background:var(--c-card);
}
[data-theme="dark"] .info-block{box-shadow:0 2px 12px rgba(0,0,0,.22)}
.info-block h3{font-size:18px;font-weight:700;color:var(--c-txt);margin-bottom:8px}
.info-block>p{font-size:13.5px;color:var(--c-txt2);line-height:1.55;margin-bottom:14px}
.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}
@media(max-width:480px){.info-grid{grid-template-columns:1fr}}
.info-item{
  padding:12px;border-radius:var(--r-md);
  border:1px solid var(--c-border2);background:rgba(255,255,255,.03);
}
[data-theme="light"] .info-item{background:rgba(0,0,0,.025)}
.info-item b{display:block;font-size:12.5px;font-weight:700;color:var(--c-txt);margin-bottom:3px}
.info-item span{font-size:12px;color:var(--c-txt2)}
.info-btns{display:flex;gap:8px;flex-wrap:wrap}

/* Map */
.map-frame{
  width:100%;height:320px;border:none;
  border-radius:var(--r-lg);overflow:hidden;display:block;
  border:1px solid var(--c-border);
}
@media(max-width:540px){.map-frame{height:260px}}

/* ═══════════════════════════════════════════════════════
   FAQ
═══════════════════════════════════════════════════════ */
.faq-list{display:flex;flex-direction:column;gap:8px}
.faq-item{
  border-radius:var(--r-lg);
  border:1px solid var(--c-border);background:var(--c-card);
  overflow:hidden;
  transition:border-color .2s;
}
.faq-item:hover{border-color:rgba(255,255,255,.14)}
[data-theme="light"] .faq-item:hover{border-color:rgba(0,0,0,.15)}
.faq-q{
  width:100%;padding:16px;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:none;border:none;color:var(--c-txt);
  font-weight:600;font-size:14px;text-align:left;cursor:pointer;
}
.faq-q .faq-icon{
  width:24px;height:24px;border-radius:8px;
  background:rgba(255,255,255,.06);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
  transition:transform .3s var(--ease),background .2s;
}
[data-theme="light"] .faq-q .faq-icon{background:rgba(0,0,0,.06)}
.faq-item.open .faq-icon{transform:rotate(45deg);background:rgba(232,24,58,.12)}
.faq-a{
  max-height:0;overflow:hidden;
  transition:max-height .35s var(--ease);
}
.faq-item.open .faq-a{max-height:300px}
.faq-a-inner{padding:0 16px 16px;font-size:13.5px;color:var(--c-txt2);line-height:1.6}

/* ═══════════════════════════════════════════════════════
   FOOTER
═══════════════════════════════════════════════════════ */
.footer{
  border-top:1px solid var(--c-border);
  padding:32px 0 24px;margin-top:40px;
}
.footer-grid{
  display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:24px;margin-bottom:28px;
}
@media(max-width:860px){.footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.footer-grid{grid-template-columns:1fr}}
.footer-col h4{font-size:13px;font-weight:700;margin-bottom:12px;color:var(--c-txt)}
.footer-col a,.footer-col p{
  display:block;font-size:13px;color:var(--c-txt3);
  margin-bottom:7px;transition:color .15s;
}
.footer-col a:hover{color:var(--c-txt)}
.footer-brand{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.footer-logo{
  width:36px;height:36px;border-radius:10px;overflow:hidden;
  border:1px solid var(--c-border);flex-shrink:0;
  background:linear-gradient(135deg,rgba(232,24,58,.15),rgba(201,164,78,.10));
}
.footer-logo img{width:100%;height:100%;object-fit:contain;padding:3px}
.footer-name{font-size:14px;font-weight:800;letter-spacing:-.02em}
.footer-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.footer-bottom{
  padding-top:20px;border-top:1px solid var(--c-border2);
  display:flex;align-items:center;justify-content:space-between;
  gap:12px;flex-wrap:wrap;
}
.footer-copy{font-size:12px;color:var(--c-txt3)}

/* ═══════════════════════════════════════════════════════
   BOTTOM NAV (mobile)
═══════════════════════════════════════════════════════ */
.bottomNav{
  position:fixed;bottom:0;left:0;right:0;z-index:100;
  background:var(--c-scrim);
  backdrop-filter:blur(20px) saturate(180%);
  -webkit-backdrop-filter:blur(20px) saturate(180%);
  border-top:1px solid var(--c-border);
  padding:8px 4px max(10px,var(--safe-b));
  display:flex;justify-content:center;
}
@media(min-width:900px){.bottomNav{display:none}}
.nav-bar{
  display:grid;grid-template-columns:1fr 1fr 96px 1fr 1fr;
  gap:2px 3px;width:100%;max-width:560px;
  align-items:end;
}
.nav-btn{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:4px;height:50px;border-radius:16px;
  border:1px solid transparent;
  background:none;color:var(--c-txt3);
  cursor:pointer;
  transition:color .18s,background .18s,border-color .18s,transform .15s var(--ease);
  position:relative;
}
.nav-btn:active{transform:scale(.94)}
.nav-btn.on{
  color:var(--c-txt);
  background:rgba(232,24,58,.09);
  border-color:rgba(232,24,58,.22);
}
.nav-btn span{font-size:11px;font-weight:600;letter-spacing:.01em}
.nav-btn svg{flex-shrink:0}
.nav-badge{
  position:absolute;top:6px;right:calc(50% - 20px);
  min-width:17px;height:17px;padding:0 4px;
  border-radius:var(--r-pill);
  background:var(--c-red);color:#fff;
  font-size:10px;font-weight:800;
  display:none;align-items:center;justify-content:center;
  border:2px solid var(--c-bg);
}
.nav-badge.show{display:flex}

/* ── Центральная AI-кнопка в нижней панели ── */
.nav-ai-btn{
  /* Зафиксированная высота = nav-btn, orb торчит выше через overflow:visible */
  height:50px;overflow:visible;
  display:flex;flex-direction:column;align-items:center;justify-content:flex-end;
  padding-bottom:6px;background:none;border:none;cursor:pointer;
  position:relative;-webkit-tap-highlight-color:transparent;
}
.nav-ai-wrap{
  /* Абсолютное позиционирование: orb висит над меткой, не раздувает grid-row */
  position:absolute;bottom:20px;
  width:52px;height:52px;flex-shrink:0;
}
.nav-ai-wrap::before{
  content:'';position:absolute;inset:-2.5px;border-radius:50%;
  background:conic-gradient(from 0deg,var(--c-red),#a855f7,var(--c-gold),#6366f1,var(--c-red));
  animation:navAiSpin 3.5s linear infinite;
  box-shadow:0 0 16px rgba(168,85,247,.35);
}
.nav-ai-orb{
  position:absolute;inset:2.5px;border-radius:50%;z-index:1;
  background:rgba(20,6,30,.62);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  display:flex;align-items:center;justify-content:center;
  font-size:20px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 2px 8px rgba(0,0,0,.35);
}
[data-theme="light"] .nav-ai-orb{
  background:rgba(255,255,255,.72);
  backdrop-filter:blur(14px) saturate(160%);
  -webkit-backdrop-filter:blur(14px) saturate(160%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.90),0 2px 10px rgba(168,85,247,.18);
}
.nav-ai-chip{
  position:absolute;top:-4px;right:-8px;z-index:2;
  background:linear-gradient(135deg,#6366f1 0%,#a855f7 100%);
  color:#fff;font-size:7px;font-weight:900;letter-spacing:.5px;
  padding:2px 5px;border-radius:5px;
  border:1.5px solid var(--c-bg);
  font-family:var(--font-ui);
  pointer-events:none;
  box-shadow:0 2px 6px rgba(99,102,241,.4);
}
.nav-ai-lbl{
  font-size:9px;font-weight:700;color:var(--c-txt3);
  margin-top:4px;font-family:var(--font-ui);letter-spacing:.02em;
}
.nav-ai-badge{
  position:absolute;top:-4px;left:-4px;z-index:3;
  min-width:17px;height:17px;padding:0 4px;
  border-radius:10px;background:var(--c-red);
  color:#fff;font-size:9px;font-weight:900;font-family:var(--font-ui);
  display:none;align-items:center;justify-content:center;
  border:2px solid var(--c-bg);
  pointer-events:none;
}
.nav-ai-badge.show{display:flex}
.nav-ai-btn.bounce .nav-ai-orb{animation:navAiBounce .55s var(--spring) forwards}
@keyframes navAiSpin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes navAiBounce{0%{transform:scale(1)}28%{transform:scale(1.22)}55%{transform:scale(.92)}78%{transform:scale(1.07)}100%{transform:scale(1)}}

/* ═══════════════════════════════════════════════════════
   STICKY CART BAR (mobile)
═══════════════════════════════════════════════════════ */
/* old stickyCart rule removed */
[data-theme="light"] .stickyCart{
  background:rgba(255,255,255,.92);
  box-shadow:0 8px 28px rgba(0,0,0,.14);
  border-color:rgba(232,24,58,.20);
}
/* moved to BOTTOM_ROW_CSS */
@media(min-width:900px){.stickyCart{display:none!important}}
@keyframes slideUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.sticky-info b{display:block;font-size:14px;font-weight:700;color:var(--c-txt)}
.sticky-info span{font-size:12px;color:var(--c-txt3)}

/* ═══════════════════════════════════════════════════════
   STICKY FILTERS (mobile, catalog)
═══════════════════════════════════════════════════════ */
.stickyFilters{
  position:fixed;
  left:14px;
  bottom:calc(var(--nav-h) + var(--safe-b) + 12px);
  z-index:89;
  display:none;align-items:center;gap:8px;
}
.stickyFilters.show{display:flex}
@media(min-width:900px){.stickyFilters{display:none!important}}

/* ═══════════════════════════════════════════════════════
   FLOATING CONTACTS
═══════════════════════════════════════════════════════ */
.contacts{
  position:fixed;right:14px;
  bottom:calc(var(--nav-h) + var(--safe-b) + 62px);
  z-index:88;
  display:flex;flex-direction:column;gap:9px;
}
@media(min-width:900px){.contacts{bottom:80px}}
.contact-btn{
  width:44px;height:44px;border-radius:15px;
  display:flex;align-items:center;justify-content:center;
  font-size:19px;cursor:pointer;
  border:1px solid var(--c-border);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  transition:transform .18s var(--spring),box-shadow .18s ease;
}
[data-theme="dark"] .contact-btn{background:rgba(14,14,18,.70)}
[data-theme="light"] .contact-btn{background:rgba(255,255,255,.88);box-shadow:0 2px 10px rgba(0,0,0,.08)}
.contact-btn:hover{transform:translateY(-3px) scale(1.09);box-shadow:0 8px 22px rgba(0,0,0,.28)}
[data-theme="light"] .contact-btn:hover{box-shadow:0 6px 18px rgba(0,0,0,.14)}
.contact-btn.red{border-color:rgba(232,24,58,.28)}
.contact-btn.tg {border-color:rgba(40,160,240,.22)}
.contact-btn.vk {border-color:rgba(70,120,250,.22)}

/* Back to top */
/* toTop moved to BOTTOM_ROW_CSS */

/* ═══════════════════════════════════════════════════════
   CART DRAWER
═══════════════════════════════════════════════════════ */
.overlay{
  position:fixed;inset:0;z-index:200;
  background:var(--c-overlay);
  display:none;
}
.overlay.open{display:block;animation:fadeOverlay .25s ease both;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
@keyframes fadeOverlay{from{opacity:0}to{opacity:1}}

.drawer{
  position:fixed;top:0;right:0;bottom:0;
  width:min(440px,100%);
  z-index:201;
  background:var(--c-surface);
  border-left:1px solid var(--c-border);
  display:flex;flex-direction:column;
  animation:drawerIn .32s var(--ease) both;
}
@keyframes drawerIn{from{transform:translateX(100%)}to{transform:translateX(0)}}
.drawer-head{
  padding:18px;display:flex;align-items:center;justify-content:space-between;gap:12px;
  border-bottom:1px solid var(--c-border);flex-shrink:0;
}
.drawer-head h3{font-size:18px;font-weight:700}
.drawer-head-right{display:flex;gap:8px;align-items:center}
.drawer-body{flex:1;overflow-y:auto;padding:14px 18px}
.drawer-foot{
  padding:16px 18px;border-top:1px solid var(--c-border);flex-shrink:0;
  background:var(--c-surface);
}
.cart-empty{
  padding:40px 0;text-align:center;
}
.cart-empty .emoji{font-size:44px;margin-bottom:12px}
.cart-empty h4{font-size:16px;font-weight:700;margin-bottom:7px}
.cart-empty p{font-size:13px;color:var(--c-txt2);margin-bottom:20px}
.cart-line{
  display:flex;gap:12px;align-items:center;
  padding:12px;border-radius:var(--r-md);
  border:1px solid var(--c-border2);background:rgba(255,255,255,.03);
  margin-bottom:10px;
}
[data-theme="light"] .cart-line{background:rgba(0,0,0,.02);border-color:var(--c-border)}
.cart-thumb{
  width:54px;height:54px;border-radius:10px;flex-shrink:0;
  overflow:hidden;background:var(--c-card);border:1px solid var(--c-border);
  position:relative;
}
.cart-thumb img{width:100%;height:100%;object-fit:cover}
.cart-thumb.empty::after{content:"🌸";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:20px;opacity:.35}
.cart-line-info{flex:1;min-width:0}
.cart-line-name{font-size:13px;font-weight:700;color:var(--c-txt);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:3px}
.cart-line-price{font-size:12.5px;color:var(--c-txt2)}
.qty-row{display:flex;align-items:center;gap:8px}
.qty-btn{
  width:30px;height:30px;border-radius:9px;
  border:1px solid var(--c-border);background:rgba(255,255,255,.05);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;font-size:16px;font-weight:700;color:var(--c-txt);
  transition:background .15s,border-color .15s;
}
[data-theme="light"] .qty-btn{background:rgba(0,0,0,.04)}
.qty-btn:hover{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.18)}
[data-theme="light"] .qty-btn:hover{background:rgba(0,0,0,.08)}
.qty-n{min-width:22px;text-align:center;font-weight:700;font-size:14px}
.cart-total-row{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:12px;
}
.cart-total-row .lbl{font-size:14px;color:var(--c-txt2)}
.cart-total-row .val{font-size:20px;font-weight:800;color:var(--c-txt)}
.drawer-btns{display:flex;flex-direction:column;gap:8px}

/* ═══════════════════════════════════════════════════════
   FILTERS DRAWER
═══════════════════════════════════════════════════════ */
.filt-drawer{
  position:fixed;top:0;left:0;bottom:0;
  width:min(500px,100%);
  z-index:201;
  background:var(--c-surface);
  border-right:1px solid var(--c-border);
  display:flex;flex-direction:column;
  animation:filtIn .32s var(--ease) both;
}
@keyframes filtIn{from{transform:translateX(-100%)}to{transform:translateX(0)}}
.filt-head{
  padding:18px;display:flex;align-items:center;justify-content:space-between;gap:12px;
  border-bottom:1px solid var(--c-border);flex-shrink:0;
}
.filt-head h3{font-size:18px;font-weight:700}
.filt-body{flex:1;overflow-y:auto;padding:16px 18px}
.filt-foot{
  padding:14px 18px;border-top:1px solid var(--c-border);flex-shrink:0;
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  background:var(--c-surface);
}
.filt-found{font-size:12px;color:var(--c-txt3)}
.filt-found b{font-size:18px;font-weight:800;color:var(--c-txt);display:block}
.filt-group{margin-bottom:18px}
.filt-group h4{font-size:13px;font-weight:700;color:var(--c-txt2);margin-bottom:10px;text-transform:uppercase;letter-spacing:.05em}
.pill-cloud{display:flex;flex-wrap:wrap;gap:7px}
.fpill{
  padding:7px 11px;border-radius:var(--r-pill);
  border:1px solid var(--c-border);background:rgba(255,255,255,.04);
  color:var(--c-txt2);font-size:12.5px;font-weight:600;
  cursor:pointer;
  transition:background .15s,border-color .15s,color .15s;
}
[data-theme="light"] .fpill{background:rgba(0,0,0,.04)}
.fpill:hover{background:rgba(255,255,255,.08)}
[data-theme="light"] .fpill:hover{background:rgba(0,0,0,.07)}
.fpill.on{background:rgba(232,24,58,.09);border-color:rgba(232,24,58,.30);color:var(--c-txt)}
.fchk{
  display:flex;align-items:center;gap:9px;
  padding:10px 12px;border-radius:var(--r-sm);
  border:1px solid var(--c-border);background:rgba(255,255,255,.03);
  cursor:pointer;font-size:13px;color:var(--c-txt2);
  transition:background .15s,border-color .15s,color .15s;
}
[data-theme="light"] .fchk{background:rgba(0,0,0,.03)}
.fchk.on{background:rgba(232,24,58,.08);border-color:rgba(232,24,58,.28);color:var(--c-txt)}
.fchk-box{
  width:16px;height:16px;border-radius:5px;flex-shrink:0;
  border:1px solid var(--c-border);
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.05);
  font-size:10px;color:var(--c-gold);font-weight:900;
  transition:background .15s,border-color .15s;
}
.fchk.on .fchk-box{background:rgba(232,24,58,.15);border-color:rgba(232,24,58,.40)}
.fchk-row{display:flex;flex-wrap:wrap;gap:8px}
.range-block{
  padding:12px;border-radius:var(--r-sm);
  border:1px solid var(--c-border2);background:rgba(255,255,255,.025);
}
[data-theme="light"] .range-block{background:rgba(0,0,0,.02)}
.range-top{
  display:flex;justify-content:space-between;align-items:baseline;gap:8px;
  margin-bottom:8px;
}
.range-top b{font-size:13px;color:var(--c-txt)}
.range-top span{font-size:12.5px;color:var(--c-txt3)}
.range-inputs{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:400px){.range-inputs{grid-template-columns:1fr}}
input[type="range"]{width:100%;accent-color:var(--c-red)}
.range-vals{display:flex;gap:10px;margin-top:8px;font-size:12px;color:var(--c-txt3)}

/* ═══════════════════════════════════════════════════════
   PRODUCT MODAL
═══════════════════════════════════════════════════════ */
.modal-overlay{
  position:fixed;inset:0;z-index:300;
  background:var(--c-overlay);
  display:none;
  padding:14px;
  overflow-y:auto;
}
.modal-overlay.open{display:flex;align-items:flex-start;justify-content:center;animation:fadeOverlay .25s ease both;backdrop-filter:blur(10px) saturate(80%);-webkit-backdrop-filter:blur(10px) saturate(80%)}
.modal-box{
  width:min(900px,100%);
  border-radius:var(--r-xl);
  border:1px solid var(--c-border);
  background:var(--c-surface);
  overflow:hidden;
  animation:modalIn .3s var(--ease) both;
  margin:auto;
}
@keyframes modalIn{from{opacity:0;transform:scale(.96) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}
.modal-grid{display:grid;grid-template-columns:1fr 1fr}
@media(max-width:760px){.modal-grid{grid-template-columns:1fr}}
.modal-media{padding:18px;background:var(--c-card)}
.modal-img{
  width:100%;aspect-ratio:3/4;border-radius:var(--r-lg);
  overflow:hidden;background:var(--c-surface);border:1px solid var(--c-border);
  position:relative;
}
.modal-img img{width:100%;height:100%;object-fit:cover}
.modal-img.empty::after{content:"🌸";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:52px;opacity:.25}
.modal-content{
  padding:24px;overflow-y:auto;max-height:80vh;
  display:flex;flex-direction:column;gap:14px;
}
@media(max-width:760px){.modal-content{max-height:none}}
.modal-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.modal-title{font-size:22px;font-weight:800;color:var(--c-txt);line-height:1.2;margin-bottom:5px}
.modal-meta{font-size:13px;color:var(--c-txt3)}
.modal-rating{display:flex;align-items:center;gap:5px;font-size:13px;color:var(--c-txt3);margin-bottom:2px}
.modal-opts{display:flex;flex-wrap:wrap;gap:8px}
.mopt{
  padding:8px 13px;border-radius:var(--r-pill);
  border:1px solid var(--c-border);background:rgba(255,255,255,.04);
  color:var(--c-txt2);font-size:13px;cursor:pointer;
  transition:background .15s,border-color .15s,color .15s;
}
[data-theme="light"] .mopt{background:rgba(0,0,0,.04)}
.mopt.on{background:rgba(232,24,58,.09);border-color:rgba(232,24,58,.30);color:var(--c-txt)}
.modal-desc{font-size:13.5px;color:var(--c-txt2);line-height:1.6}
.modal-stats{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.modal-stat{padding:10px;border-radius:var(--r-sm);border:1px solid var(--c-border2);background:rgba(255,255,255,.03)}
[data-theme="light"] .modal-stat{background:rgba(0,0,0,.025)}
.modal-stat b{display:block;font-size:12px;font-weight:700;margin-bottom:2px}
.modal-stat span{font-size:12px;color:var(--c-txt2)}
.modal-price-row{
  display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;
  padding-top:4px;
}
.modal-price .now{font-size:26px;font-weight:800;line-height:1}
.modal-price .old{font-size:14px;color:var(--c-txt3);text-decoration:line-through;margin-top:2px}
.modal-btns{display:flex;gap:8px;flex-wrap:wrap}
.modal-chips{display:flex;flex-wrap:wrap;gap:7px}

/* ═══════════════════════════════════════════════════════
   MOBILE SEARCH OVERLAY
═══════════════════════════════════════════════════════ */
.search-overlay{
  position:fixed;inset:0;z-index:400;
  background:var(--c-scrim);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  display:none;flex-direction:column;
  padding:max(16px,var(--safe-t)) 14px 14px;
}
.search-overlay.open{display:flex;animation:fadeOverlay .2s ease both}
.search-inner{
  display:flex;align-items:center;gap:10px;
  padding:12px 14px;border-radius:var(--r-lg);
  border:1px solid rgba(232,24,58,.35);
  background:rgba(255,255,255,.06);
  box-shadow:0 0 0 3px rgba(232,24,58,.10);
  margin-bottom:12px;
}
[data-theme="light"] .search-inner{background:rgba(255,255,255,.90);border-color:rgba(232,24,58,.40)}
.search-inner input{
  flex:1;min-width:0;background:none;border:none;outline:none;
  font-size:16px;color:var(--c-txt);
}
.search-inner input::placeholder{color:var(--c-txt3)}
.search-results{flex:1;overflow-y:auto}
.search-hint{
  font-size:13px;color:var(--c-txt3);
  padding:16px 0;text-align:center;
}

/* ═══════════════════════════════════════════════════════
   TOAST
═══════════════════════════════════════════════════════ */
.toast{
  position:fixed;left:50%;bottom:calc(var(--nav-h) + var(--safe-b) + 90px);
  transform:translateX(-50%);
  z-index:500;
  padding:10px 16px;border-radius:var(--r-pill);
  border:1px solid rgba(255,255,255,.14);
  background:rgba(15,15,18,.85);
  backdrop-filter:blur(16px);
  color:var(--c-txt);font-size:13.5px;font-weight:600;
  white-space:nowrap;
  display:none;
}
[data-theme="light"] .toast{background:rgba(26,24,20,.88);color:#fff}
.toast.show{display:block;animation:toastPop .25s var(--ease) both}
@keyframes toastPop{from{opacity:0;transform:translateX(-50%) translateY(8px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
@media(min-width:900px){.toast{bottom:30px}}

/* ═══════════════════════════════════════════════════════
   SCROLL ANIMATIONS
═══════════════════════════════════════════════════════ */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.reveal.in{opacity:1;transform:translateY(0)}
.reveal-d1{transition-delay:.08s}
.reveal-d2{transition-delay:.16s}
.reveal-d3{transition-delay:.24s}

/* ═══════════════════════════════════════════════════════
   MISC
═══════════════════════════════════════════════════════ */
.divider{height:1px;background:var(--c-border);margin:28px 0}
.text-red{color:var(--c-red2)}
.text-gold{color:var(--c-gold2)}
.inline-flex{display:inline-flex;align-items:center;gap:8px}
hr{border:none;border-top:1px solid var(--c-border);margin:0}
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(255,255,255,.15);border-radius:4px}
[data-theme="light"] ::-webkit-scrollbar-thumb{background:rgba(0,0,0,.15)}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}

/* ── OVERFLOW PREVENTION ─────────────────── */
html{overflow-x:hidden}
.hero,.hero-side,.mini-card,.mini-card-foot,.usp-row,
.cat-grid,.cat-item,.cat-toolbar,.toolbar-l,.toolbar-r,
.prod-grid,.pcard,.pcard-body,.pcard-actions,
.builder-wrap,.picks-grid,.pick-item,.builder-summary,
.two-cols,.info-block,.info-grid,.faq-list,.faq-item,
.footer,.footer-grid,.footer-col,
.section,.sec-head{
  min-width:0;max-width:100%;
}
.slide{min-width:100%;max-width:100%;flex-shrink:0}
/* Prevent long words from overflowing */
.pcard-name,.prow-name,.modal-title,.pick-info b{
  word-break:break-word;overflow-wrap:break-word;
}
/* Section head right buttons — don't overflow */
.sec-head .right .btn{white-space:nowrap;flex-shrink:0}
/* Hero grid explicit single column on mobile */
@media(max-width:900px){
  .hero{display:flex;flex-direction:column;gap:12px}
  .hero-side{display:grid;grid-template-columns:1fr 1fr;gap:12px}
}
@media(max-width:540px){
  .hero-side{grid-template-columns:1fr}
}
/* Cat-toolbar wrap properly */
.cat-toolbar{flex-wrap:wrap}
/* Sticky cart and filters z-index order */
.stickyCart{z-index:90}
.stickyFilters{z-index:89}
/* Prevent pcard-actions buttons from overflowing */
@media(max-width:380px){
  .pcard-actions{flex-wrap:nowrap}
  .pcard-add{min-width:0;font-size:11.5px;padding:0 8px}
  .pcard-view{display:none}
}


/* ── SLIDER SNAP ─────────────── */
.slider-wrap{overflow:hidden;position:relative;width:100%}
.slides{display:flex;flex-direction:row;flex-wrap:nowrap;height:100%;transition:transform .6s var(--ease)}
.slide{flex:0 0 100%;width:100%;min-width:0;max-width:100%;position:relative}


/* ── FAB CONTACT WIDGET ─────────────────── */
/* fab-wrap moved to BOTTOM_ROW_CSS */

.fab-items{
  display:flex;flex-direction:column;align-items:flex-end;gap:9px;
  pointer-events:none;
}
.fab-item{
  display:flex;align-items:center;gap:10px;
  opacity:0;transform:translateY(12px) scale(.88);
  transition:opacity .25s var(--ease),transform .25s var(--ease),pointer-events 0s .25s;
  pointer-events:none;
}
.fab-wrap.open .fab-item{
  opacity:1;transform:translateY(0) scale(1);
  pointer-events:all;
  transition:opacity .25s var(--ease),transform .25s var(--ease);
}
.fab-wrap.open .fab-items{pointer-events:all}
.fab-item:nth-child(1){transition-delay:.05s}
.fab-item:nth-child(2){transition-delay:.10s}
.fab-item:nth-child(3){transition-delay:.15s}
.fab-item:nth-child(4){transition-delay:.20s}
.fab-item-lbl{
  font-size:12.5px;font-weight:600;color:var(--c-txt);
  background:var(--c-surface);
  border:1px solid var(--c-border);
  padding:6px 10px;border-radius:var(--r-pill);
  white-space:nowrap;
  box-shadow:0 2px 10px rgba(0,0,0,.22);
  opacity:0;transform:translateX(6px);
  transition:opacity .2s var(--ease),transform .2s var(--ease);
}
.fab-wrap.open .fab-item-lbl{opacity:1;transform:translateX(0)}
.fab-wrap.open .fab-item:nth-child(1) .fab-item-lbl{transition-delay:.08s}
.fab-wrap.open .fab-item:nth-child(2) .fab-item-lbl{transition-delay:.13s}
.fab-wrap.open .fab-item:nth-child(3) .fab-item-lbl{transition-delay:.18s}
.fab-link{
  width:46px;height:46px;border-radius:15px;
  display:flex;align-items:center;justify-content:center;
  font-size:20px;text-decoration:none;
  border:1px solid var(--c-border);
  box-shadow:0 4px 16px rgba(0,0,0,.26);
  transition:transform .18s var(--spring),box-shadow .18s ease;
  flex-shrink:0;
}
[data-theme="dark"] .fab-link{background:rgba(18,18,24,.80);backdrop-filter:blur(12px)}
[data-theme="light"] .fab-link{background:rgba(255,255,255,.92);backdrop-filter:blur(12px)}
.fab-link:hover{transform:scale(1.10);box-shadow:0 8px 24px rgba(0,0,0,.32)}
.fab-link.red{border-color:rgba(232,24,58,.30)}
.fab-link.tg {border-color:rgba(40,160,240,.28)}
.fab-link.vk {border-color:rgba(80,120,255,.24)}
.fab-link.max{border-color:rgba(0,95,249,.24)}

/* Main FAB button */
.fab-main{
  width:50px;height:50px;border-radius:17px;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;border:none;
  background:var(--c-red);
  box-shadow:0 6px 22px rgba(232,24,58,.45);
  /* box-shadow убран из transition — управляется анимацией fabGlow */
  transition:transform .22s var(--spring),background .2s ease;
  position:relative;overflow:hidden;
}
.fab-main:hover{transform:scale(1.08);box-shadow:0 10px 28px rgba(232,24,58,.55)}
.fab-main:active{transform:scale(.94)}
.fab-main::after{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.35),transparent 70%);
  opacity:0;transition:opacity .3s ease;border-radius:inherit;
}
.fab-wrap.open .fab-main::after{opacity:1}
.fab-wrap.open .fab-main{
  background:#c8102e;
  box-shadow:0 6px 22px rgba(232,24,58,.30);
}

/* FAB icon — cross animation */
.fab-icon{
  position:relative;width:22px;height:22px;
  transition:transform .3s var(--ease);
}
.fab-icon-flower,.fab-icon-close{
  position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;
  transition:opacity .25s ease,transform .25s var(--ease);
}
.fab-icon-close{opacity:0;transform:rotate(-45deg) scale(.6)}
.fab-wrap.open .fab-icon-flower{opacity:0;transform:rotate(45deg) scale(.6)}
.fab-wrap.open .fab-icon-close{opacity:1;transform:rotate(0) scale(1)}

/* ══ FAB Enhanced Animations ══════════════════════════════

   Слой 1: fabBounce на .fab-wrap — float (Y) + wiggle (rotate),
           не конфликтует с hover scale на .fab-main
   Слой 2: fabGlow на .fab-main — пульс box-shadow наружу
           (не обрезается overflow:hidden, видна кольцом)
   Слой 3: fabShimmer на .fab-main::before — блик внутри кнопки
           (overflow:hidden обрезает красиво по форме)
   Слой 4: fabEntry — пружинный появление при загрузке
═══════════════════════════════════════════════════════════ */

/* ─ Слой 1: Float + attention wiggle ─ */
@keyframes fabBounce{
  0%,100%{transform:translateY(0) rotate(0deg)}
  /* Плавный подъём */
  8% {transform:translateY(-7px) rotate(0deg)}
  16%{transform:translateY(0)    rotate(0deg)}
  /* Вигл-внимание в середине цикла */
  58%{transform:translateY(0)    rotate(0deg)}
  61%{transform:translateY(-3px) rotate(-9deg)}
  64%{transform:translateY(-1px) rotate(10deg)}
  67%{transform:translateY(-2px) rotate(-6deg)}
  70%{transform:translateY(0)    rotate(4deg)}
  73%{transform:translateY(0)    rotate(-1deg)}
  76%{transform:translateY(0)    rotate(0deg)}
}
.fab-wrap:not(.open){
  transform-origin:center bottom; /* bounce — см. :not(.fab-entering) ниже */
}
/* Пауза только при наведении (не focus-within — на мобильных зависает) */
.fab-wrap:not(.open):hover{
  animation-play-state:paused;
}
.fab-wrap.open{animation:none;transform:none}

/* ─ Слой 2: Glow pulse — box-shadow (виден снаружи) ─ */
@keyframes fabGlow{
  0%,100%{box-shadow:0 6px 22px rgba(232,24,58,.45),0 0 0 0   rgba(232,24,58,.40)}
  50%    {box-shadow:0 10px 32px rgba(232,24,58,.60),0 0 0 14px rgba(232,24,58,0)}
}
.fab-wrap:not(.open) .fab-main{
  animation:fabGlow 2.6s ease-in-out infinite;
}
/* Убираем анимацию и transition box-shadow на hover — hover-правило само обновит тень */
.fab-main:hover,.fab-main:active{animation-play-state:paused}
.fab-wrap.open .fab-main{animation:none}

/* ─ Слой 3: Shimmer glint внутри кнопки ─ */
@keyframes fabShimmer{
  0%,22%  {transform:translateX(-170%) skewX(-20deg);opacity:0}
  25%     {opacity:1}
  52%,100%{transform:translateX(260%)  skewX(-20deg);opacity:0}
}
.fab-main::before{
  content:"";position:absolute;
  top:-10%;left:-15%;width:28%;height:120%;
  background:linear-gradient(90deg,
    transparent,
    rgba(255,255,255,.34) 50%,
    transparent);
  transform:translateX(-170%) skewX(-20deg);
  animation:fabShimmer 5s ease-in-out infinite 0.8s;
  pointer-events:none;
  /* overflow:hidden родителя обрезает блик по форме кнопки */
}
.fab-wrap.open .fab-main::before{animation:none;opacity:0}

/* ─ Слой 4: Entry — пружинный вход при первой загрузке ─ */
@keyframes fabEntry{
  0%  {transform:translateY(60px) scale(.55);opacity:0}
  60% {transform:translateY(-8px) scale(1.06);opacity:1}
  80% {transform:translateY(3px)  scale(.97)}
  100%{transform:translateY(0)    scale(1);opacity:1}
}
/* Entry — только один раз (JS добавляет/снимает класс fab-entering) */
.fab-wrap.fab-entering{
  animation:fabEntry .7s cubic-bezier(.34,1.56,.64,1) .4s both !important;
}
/* Bounce без entry — запускается после снятия fab-entering */
.fab-wrap:not(.open):not(.fab-entering){
  animation:fabBounce 8s cubic-bezier(.45,0,.55,1) 1.5s infinite;
}

/* Backdrop when open */
.fab-backdrop{
  display:none;position:fixed;inset:0;z-index:87;
  background:rgba(0,0,0,.18);
}
.fab-wrap.open~.fab-backdrop{
  display:block;animation:fadeOverlay .2s ease both;
  backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);
}


/* ── TAGS light theme fix ── */
[data-theme="light"] .tag{color:#fff !important;text-shadow:0 1px 3px rgba(0,0,0,.25)}
[data-theme="light"] .tag-sale{background:#d91030;color:#fff !important}
[data-theme="light"] .tag-new{background:#16a34a;color:#fff !important}
[data-theme="light"] .tag-hit{background:#b8860b;color:#fff !important}
[data-theme="light"] .tag-order{background:rgba(26,24,20,.58);color:rgba(255,255,255,.95) !important}
[data-theme="light"] .pcard-tags .tag{font-weight:700;letter-spacing:.02em}


/* ════════════════════════════════════════
   BURGER MENU
════════════════════════════════════════ */
.menu-overlay{
  position:fixed;inset:0;z-index:500;
  background:var(--c-overlay);
  display:none;
}
.menu-overlay.open{display:block;animation:fadeOverlay .22s ease both;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}

/* ═══════════════════════════════════════
   SIDE MENU ACCORDION
═══════════════════════════════════════ */
.sm-group{border-bottom:1px solid var(--c-border2)}
.sm-group:last-child{border-bottom:none}
.sm-group-header{
  display:flex;align-items:center;gap:10px;
  padding:13px 16px;
  cursor:pointer;user-select:none;
  transition:background .12s;
}
.sm-group-header:hover{background:rgba(255,255,255,.04)}
[data-theme="light"] .sm-group-header:hover{background:rgba(0,0,0,.035)}
.sm-group-header-ico{
  width:32px;height:32px;border-radius:10px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:16px;
  background:rgba(255,255,255,.05);
  border:1px solid var(--c-border);
  transition:background .15s,border-color .15s;
}
[data-theme="light"] .sm-group-header-ico{background:rgba(0,0,0,.04)}
.sm-group.open .sm-group-header-ico{
  background:rgba(232,24,58,.10);
  border-color:rgba(232,24,58,.22);
}
.sm-group-header-txt{flex:1;min-width:0}
.sm-group-header-txt b{display:block;font-size:13.5px;font-weight:700;color:var(--c-txt)}
.sm-group-header-txt span{font-size:11px;color:var(--c-txt3)}
.sm-group-arrow{
  flex-shrink:0;opacity:.40;
  transition:transform .28s var(--ease),opacity .2s;
}
.sm-group.open .sm-group-arrow{transform:rotate(180deg);opacity:.70}
.sm-group-body{
  overflow:hidden;
  max-height:0;
  transition:max-height .32s var(--ease);
}
.sm-group.open .sm-group-body{max-height:600px}
/* Profile mini-card inside menu */
.sm-profile-card{
  margin:0 12px 4px;
  padding:12px;
  border-radius:var(--r-lg);
  border:1px solid var(--c-border);
  background:rgba(255,255,255,.03);
  display:flex;align-items:center;gap:10px;
  cursor:pointer;
  transition:background .15s,border-color .15s;
}
.sm-profile-card:hover{background:rgba(232,24,58,.07);border-color:rgba(232,24,58,.20)}
[data-theme="light"] .sm-profile-card{background:rgba(0,0,0,.025)}
.sm-profile-ava{
  width:38px;height:38px;border-radius:50%;
  background:linear-gradient(135deg,var(--c-red),var(--c-gold));
  display:flex;align-items:center;justify-content:center;
  font-size:17px;flex-shrink:0;color:#fff;font-weight:800;
}
.sm-profile-info b{display:block;font-size:13px;font-weight:700;color:var(--c-txt)}
.sm-profile-info span{font-size:11px;color:var(--c-txt3)}
.sm-profile-pts{
  margin-left:auto;
  padding:4px 8px;border-radius:var(--r-pill);
  background:rgba(201,164,78,.14);
  border:1px solid rgba(201,164,78,.24);
  font-size:11px;font-weight:700;color:var(--c-gold2);
  flex-shrink:0;
}

.side-menu{
  position:fixed;top:0;right:0;bottom:0;
  width:min(340px,92vw);
  z-index:501;
  background:var(--c-surface);
  border-left:1px solid var(--c-border);
  display:flex;flex-direction:column;
  overflow:hidden;
  animation:slideInRight .3s var(--ease) both;
}
.sm-head{
  padding:16px;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  border-bottom:1px solid var(--c-border);
  flex-shrink:0;
}
.sm-head-left{display:flex;align-items:center;gap:10px}
.sm-logo{
  width:34px;height:34px;border-radius:10px;overflow:hidden;
  border:1px solid var(--c-border);flex-shrink:0;
}
.sm-logo img{width:100%;height:100%;object-fit:contain;padding:3px}
.sm-brand b{display:block;font-size:14px;font-weight:800;letter-spacing:-.02em}
.sm-brand span{font-size:11px;color:var(--c-txt3)}
.sm-body{
  flex:1;overflow-y:auto;padding:0 0 20px;
  scrollbar-width:none;
}
.sm-body::-webkit-scrollbar{display:none}

/* Theme row in menu */
.sm-theme-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 16px;
  border-bottom:1px solid var(--c-border2);
}
.sm-theme-row span{font-size:14px;font-weight:600;color:var(--c-txt)}
.theme-toggle{
  display:flex;align-items:center;gap:8px;
  padding:7px 10px;border-radius:var(--r-md);
  border:1px solid var(--c-border);
  background:rgba(255,255,255,.04);
  cursor:pointer;font-size:13px;font-weight:600;color:var(--c-txt2);
  transition:background .15s,border-color .15s;
}
[data-theme="light"] .theme-toggle{background:rgba(0,0,0,.04)}
.theme-toggle:hover{background:rgba(255,255,255,.10);color:var(--c-txt)}
[data-theme="light"] .theme-toggle:hover{background:rgba(0,0,0,.08)}
.theme-toggle .t-ico{font-size:15px}

/* Menu sections */
.sm-section{padding:8px 0}
.sm-section-lbl{
  padding:10px 16px 6px;
  font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;
  color:var(--c-txt3);
}
.sm-item{
  display:flex;align-items:center;gap:12px;
  padding:11px 16px;
  cursor:pointer;
  border-radius:0;
  transition:background .12s;
  position:relative;
  text-decoration:none;color:inherit;
}
.sm-item:hover{background:rgba(255,255,255,.05)}
[data-theme="light"] .sm-item:hover{background:rgba(0,0,0,.04)}
.sm-item .si-icon{
  width:34px;height:34px;border-radius:10px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:17px;
  border:1px solid var(--c-border);
  background:rgba(255,255,255,.04);
}
[data-theme="light"] .sm-item .si-icon{background:rgba(0,0,0,.04)}
.sm-item .si-text{min-width:0}
.sm-item .si-text b{display:block;font-size:14px;font-weight:600;color:var(--c-txt)}
.sm-item .si-text span{font-size:11.5px;color:var(--c-txt3)}
.sm-item .si-badge{
  margin-left:auto;padding:3px 8px;border-radius:var(--r-pill);
  font-size:11px;font-weight:700;
  background:rgba(232,24,58,.12);
  color:var(--c-red2);
  border:1px solid rgba(232,24,58,.22);
  flex-shrink:0;
}
.sm-item.active .si-text b{color:var(--c-red2)}
.sm-item.active .si-icon{border-color:rgba(232,24,58,.28);background:rgba(232,24,58,.08)}

/* Sub items */
.sm-sub{
  background:rgba(255,255,255,.02);
  border-left:2px solid rgba(232,24,58,.20);
  margin-left:26px;
  border-radius:0 0 0 0;
}
[data-theme="light"] .sm-sub{background:rgba(0,0,0,.015);border-left-color:rgba(232,24,58,.18)}
.sm-sub .sm-item{padding:9px 14px}
.sm-sub .sm-item .si-icon{width:28px;height:28px;font-size:14px;border-radius:8px}
.sm-sub .sm-item .si-text b{font-size:13px}

/* Contacts in menu */
.sm-contacts{
  padding:14px 16px;
  display:flex;flex-direction:column;gap:8px;
}
.sm-contact-link{
  display:flex;align-items:center;gap:10px;
  padding:10px 12px;border-radius:var(--r-md);
  border:1px solid var(--c-border);
  background:rgba(255,255,255,.03);
  color:var(--c-txt);text-decoration:none;
  font-size:13px;font-weight:600;
  transition:background .12s,border-color .12s;
}
[data-theme="light"] .sm-contact-link{background:rgba(0,0,0,.025)}
.sm-contact-link:hover{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.16)}
[data-theme="light"] .sm-contact-link:hover{background:rgba(0,0,0,.06)}
.sm-contact-link .sc-icon{
  width:30px;height:30px;border-radius:9px;
  display:flex;align-items:center;justify-content:center;font-size:16px;
  flex-shrink:0;
  border:1px solid var(--c-border);background:rgba(255,255,255,.05);
}
[data-theme="light"] .sm-contact-link .sc-icon{background:rgba(0,0,0,.04)}
.sm-divider{height:1px;background:var(--c-border2);margin:0 16px}


/* ════════════════════════════════════════
   PRODUCT IMAGE CAROUSEL
════════════════════════════════════════ */
.img-carousel{position:relative;overflow:hidden;touch-action:pan-y}
.img-carousel-track{
  display:flex;flex-direction:row;flex-wrap:nowrap;height:100%;
  transition:transform .42s var(--ease);
  will-change:transform;
}
.img-carousel-track.no-anim{transition:none}
.img-carousel-slide{flex:0 0 100%;min-width:100%;max-width:100%;position:relative}
.img-carousel-slide img{width:100%;height:100%;object-fit:cover;display:block}
.img-carousel-slide.empty::after{
  content:"🌸";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:42px;opacity:.25;
}
.img-carousel-dots{
  position:absolute;bottom:8px;left:50%;transform:translateX(-50%);
  display:flex;gap:5px;z-index:3;
}
.icdot{
  width:6px;height:6px;border-radius:var(--r-pill);
  background:rgba(255,255,255,.40);border:none;padding:0;cursor:pointer;
  transition:width .25s var(--spring),background .2s;
}
.icdot.on{width:16px;background:#fff}
.img-carousel-arr{
  position:absolute;top:50%;transform:translateY(-50%);
  width:28px;height:28px;border-radius:9px;
  background:rgba(0,0,0,.42);backdrop-filter:blur(6px);
  border:1px solid rgba(255,255,255,.18);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;z-index:3;
  opacity:0;pointer-events:none;
  transition:opacity .18s,transform .15s var(--ease),background .15s;
}
.img-carousel:hover .img-carousel-arr{opacity:1;pointer-events:all}
.img-carousel-arr:hover{background:rgba(0,0,0,.65);transform:translateY(-50%) scale(1.08)}
.img-carousel-arr.l{left:7px}.img-carousel-arr.r{right:7px}
@media(max-width:640px){.img-carousel-arr{display:none}}

/* Modal big carousel */
.modal-carousel{border-radius:var(--r-lg);overflow:hidden}
.modal-carousel .img-carousel-track .img-carousel-slide{aspect-ratio:3/4}
.modal-carousel .img-carousel-arr{width:34px;height:34px;border-radius:11px}
.modal-carousel:hover .img-carousel-arr{opacity:1;pointer-events:all}
.modal-thumbs{
  display:flex;gap:8px;margin-top:10px;
  overflow-x:auto;scrollbar-width:none;padding-bottom:2px;
}
.modal-thumbs::-webkit-scrollbar{display:none}
.modal-thumb{
  width:52px;height:52px;flex-shrink:0;border-radius:9px;overflow:hidden;
  border:2px solid transparent;cursor:pointer;
  transition:border-color .15s,opacity .15s;
  opacity:.55;
}
.modal-thumb img{width:100%;height:100%;object-fit:cover}
.modal-thumb.on{border-color:var(--c-red);opacity:1}


/* ════════════════════════════════════════
   CART UPSELL + MODAL CROSS-SELL
════════════════════════════════════════ */
.upsell-section{
  margin-top:16px;padding-top:14px;
  border-top:1px solid var(--c-border2);
}
.upsell-title{
  font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  color:var(--c-txt3);margin-bottom:10px;
}
.upsell-list{display:flex;flex-direction:column;gap:8px}
.upsell-item{
  display:flex;align-items:center;gap:10px;
  padding:9px 10px;border-radius:var(--r-md);
  border:1px solid var(--c-border);background:rgba(255,255,255,.03);
  cursor:pointer;transition:background .12s,border-color .12s;
}
[data-theme="light"] .upsell-item{background:rgba(0,0,0,.02)}
.upsell-item:hover{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.14)}
[data-theme="light"] .upsell-item:hover{background:rgba(0,0,0,.05)}
.upsell-thumb{
  width:44px;height:44px;border-radius:9px;flex-shrink:0;
  overflow:hidden;background:var(--c-card);border:1px solid var(--c-border);
  position:relative;
}
.upsell-thumb img{width:100%;height:100%;object-fit:cover}
.upsell-thumb.empty::after{content:"🌸";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:16px;opacity:.4}
.upsell-info{flex:1;min-width:0}
.upsell-info b{display:block;font-size:12.5px;font-weight:700;color:var(--c-txt);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.upsell-info span{font-size:12px;color:var(--c-txt3)}
.upsell-add{
  width:32px;height:32px;border-radius:10px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:var(--c-red);border:none;cursor:pointer;
  transition:transform .15s var(--spring),box-shadow .15s;
  box-shadow:0 2px 8px rgba(232,24,58,.35);
}
.upsell-add:hover{transform:scale(1.12);box-shadow:0 4px 14px rgba(232,24,58,.45)}
.upsell-add:active{transform:scale(.93)}

/* Cross-sell in modal */
.cross-sell{
  border-top:1px solid var(--c-border2);
  padding-top:14px;margin-top:4px;
}
.cross-sell-title{
  font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  color:var(--c-txt3);margin-bottom:10px;
}
.cross-sell-list{display:flex;flex-direction:column;gap:7px}
.cs-item{
  display:flex;align-items:center;gap:10px;
  padding:8px 10px;border-radius:var(--r-sm);
  border:1px solid var(--c-border);background:rgba(255,255,255,.03);
  cursor:pointer;transition:background .12s;
}
[data-theme="light"] .cs-item{background:rgba(0,0,0,.02)}
.cs-item:hover{background:rgba(255,255,255,.06)}
[data-theme="light"] .cs-item:hover{background:rgba(0,0,0,.04)}
.cs-thumb{
  width:38px;height:38px;border-radius:8px;flex-shrink:0;
  overflow:hidden;background:var(--c-card);border:1px solid var(--c-border);position:relative;
}
.cs-thumb img{width:100%;height:100%;object-fit:cover}
.cs-thumb.empty::after{content:"🌸";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:14px;opacity:.4}
.cs-info{flex:1;min-width:0}
.cs-info b{font-size:12.5px;font-weight:700;display:block;color:var(--c-txt);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cs-info span{font-size:12px;color:var(--c-txt3)}
.cs-add{
  width:28px;height:28px;border-radius:8px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:var(--c-red);border:none;cursor:pointer;
  transition:transform .15s var(--spring),box-shadow .15s;
}
.cs-add:hover{transform:scale(1.12)}
.cs-add:active{transform:scale(.92)}


/* ════════════════════════════════════════
   DELIVERY CALCULATOR MODAL
════════════════════════════════════════ */
.delivery-modal{
  position:fixed;inset:0;z-index:600;
  background:var(--c-overlay);
  display:none;padding:14px;overflow-y:auto;
}
.delivery-modal.open{display:flex;align-items:flex-start;justify-content:center;animation:fadeOverlay .25s ease both}
.delivery-box{
  width:min(860px,100%);
  margin:auto;
  border-radius:var(--r-xl);
  border:1px solid var(--c-border);
  background:var(--c-surface);
  overflow:hidden;
  animation:modalIn .3s var(--ease) both;
  display:flex;flex-direction:column;
}
.delivery-head{
  padding:18px 20px;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  border-bottom:1px solid var(--c-border);flex-shrink:0;
}
.delivery-head h3{font-size:18px;font-weight:800}
.delivery-body{
  display:grid;grid-template-columns:1fr 1fr;
}
@media(max-width:680px){.delivery-body{grid-template-columns:1fr}}
.delivery-form{
  padding:20px;border-right:1px solid var(--c-border);
}
@media(max-width:680px){.delivery-form{border-right:none;border-bottom:1px solid var(--c-border)}}
.delivery-form h4{font-size:14px;font-weight:700;margin-bottom:14px;color:var(--c-txt)}
.dlv-input-group{margin-bottom:12px}
.dlv-input-group label{
  display:block;font-size:12px;font-weight:600;color:var(--c-txt2);
  margin-bottom:5px;letter-spacing:.03em;text-transform:uppercase;
}
.dlv-input{
  width:100%;padding:10px 12px;border-radius:var(--r-sm);
  border:1px solid var(--c-border);
  background:rgba(255,255,255,.05);
  color:var(--c-txt);font-size:14px;
  outline:none;
  transition:border-color .2s,box-shadow .2s;
}
[data-theme="light"] .dlv-input{background:rgba(0,0,0,.03)}
.dlv-input:focus{border-color:rgba(232,24,58,.40);box-shadow:0 0 0 3px rgba(232,24,58,.10)}
.dlv-input::placeholder{color:var(--c-txt3)}
.dlv-select{
  width:100%;padding:10px 12px;border-radius:var(--r-sm);
  border:1px solid var(--c-border);
  background:rgba(255,255,255,.05);
  color:var(--c-txt);font-size:14px;
  outline:none;cursor:pointer;
  transition:border-color .2s;
}
[data-theme="light"] .dlv-select{background:rgba(0,0,0,.03)}
.dlv-select:focus{border-color:rgba(232,24,58,.40)}

/* ── Custom city picker ── */
.city-pick-wrap{position:relative}
.city-pick-btn{
  width:100%;display:flex;align-items:center;gap:8px;
  padding:10px 12px;border-radius:var(--r-sm);
  border:1px solid var(--c-border);
  background:rgba(255,255,255,.05);
  color:var(--c-txt);font-size:14px;
  cursor:pointer;text-align:left;
  transition:border-color .2s,box-shadow .2s;
  font-family:inherit;
}
[data-theme="light"] .city-pick-btn{background:rgba(0,0,0,.03)}
.city-pick-btn:hover,.city-pick-btn.open{
  border-color:rgba(232,24,58,.40);
  box-shadow:0 0 0 3px rgba(232,24,58,.10);
}
.city-pick-ico{font-size:14px;flex-shrink:0;opacity:.75}
.city-pick-val{flex:1;font-size:14px}
.city-pick-chev{flex-shrink:0;color:var(--c-txt3);transition:transform .22s var(--ease)}
.city-pick-btn.open .city-pick-chev{transform:rotate(180deg)}
.city-pick-drop{
  position:fixed;z-index:99999;
  background:var(--c-card);
  border:1px solid rgba(232,24,58,.22);
  border-radius:var(--r-md);
  box-shadow:0 12px 40px rgba(0,0,0,.28),0 0 0 1px rgba(232,24,58,.08);
  overflow:hidden;
  display:none;
  animation:fadeInUp .15s var(--ease) both;
}
.city-pick-drop.open{display:block}
.city-pick-search-wrap{
  padding:8px 8px 6px;
  border-bottom:1px solid var(--c-border2);
}
.city-pick-search{
  width:100%;box-sizing:border-box;
  padding:7px 10px 7px 30px;
  border-radius:var(--r-sm);
  border:1px solid var(--c-border);
  background:var(--c-bg);
  color:var(--c-txt);font-size:13px;
  outline:none;font-family:inherit;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' viewBox='0 0 24 24' fill='none'%3E%3Ccircle cx='11' cy='11' r='7' stroke='%23999' stroke-width='2'/%3E%3Cpath d='M16.5 16.5L21 21' stroke='%23999' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:9px 50%;
  transition:border-color .2s;
}
.city-pick-search:focus{border-color:rgba(232,24,58,.40);box-shadow:0 0 0 2px rgba(232,24,58,.10)}
.city-pick-list{max-height:210px;overflow-y:auto}
.city-pick-grp{
  padding:6px 12px 3px;
  font-size:10.5px;font-weight:700;color:var(--c-txt3);
  text-transform:uppercase;letter-spacing:.06em;
  pointer-events:none;
  border-top:1px solid var(--c-border2);
  margin-top:2px;
}
.city-pick-grp:first-child{border-top:none;margin-top:0}
.city-pick-item{
  display:flex;align-items:center;gap:8px;
  padding:9px 12px;cursor:pointer;
  font-size:13.5px;color:var(--c-txt);
  transition:background .12s,color .12s;
  position:relative;
}
.city-pick-item::before{content:'📍';font-size:11px;opacity:.45;flex-shrink:0}
.city-pick-item.popular::before{content:'⭐';opacity:.7}
.city-pick-item:hover,.city-pick-item.hov{background:rgba(232,24,58,.06);color:var(--c-red2)}
.city-pick-item.sel{color:var(--c-red2);font-weight:600}
.city-pick-item.sel::after{
  content:'✓';position:absolute;right:12px;
  font-size:12px;color:var(--c-red2);opacity:.8;
}
.dlv-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.dlv-calc-btn{
  width:100%;margin-top:14px;
}
/* Street autocomplete */
.dlv-ac-wrap{position:relative}
.dlv-ac-list{
  position:absolute;top:calc(100% + 2px);left:0;right:0;z-index:9999;
  background:var(--c-card);
  border:1px solid rgba(232,24,58,.22);
  border-radius:var(--r-md);
  box-shadow:0 12px 40px rgba(0,0,0,.22),0 0 0 1px rgba(232,24,58,.08);
  max-height:220px;overflow-y:auto;display:none;
  animation:fadeInUp .15s var(--ease) both;
}
[data-theme="light"] .dlv-ac-list{
  background:#fff;
  border-color:rgba(232,24,58,.18);
  box-shadow:0 8px 32px rgba(0,0,0,.12),0 0 0 1px rgba(232,24,58,.07);
}
.dlv-ac-list.open{display:block}
.dlv-ac-hint{
  padding:7px 12px 4px;font-size:10.5px;font-weight:700;
  color:var(--c-txt3);text-transform:uppercase;letter-spacing:.06em;
  pointer-events:none;border-bottom:1px solid var(--c-border2);
}
.dlv-ac-item{
  display:flex;align-items:center;gap:8px;
  padding:9px 12px;cursor:pointer;font-size:13.5px;color:var(--c-txt);
  font-weight:500;border-bottom:1px solid var(--c-border2);
  transition:background .1s,color .1s;
}
.dlv-ac-item:last-child{border-bottom:none}
.dlv-ac-item::before{content:'📍';font-size:12px;opacity:.5;flex-shrink:0}
.dlv-ac-item.house::before{content:'🏠'}
.dlv-ac-item:hover,.dlv-ac-item.active{
  background:rgba(232,24,58,.06);color:var(--c-red2);
}
[data-theme="light"] .dlv-ac-item:hover,[data-theme="light"] .dlv-ac-item.active{
  background:rgba(232,24,58,.05);
}

/* ── Time Drum Picker ── */
.tdrum{
  position:relative;height:220px;overflow:hidden;border-radius:var(--r-md);
  border:1px solid var(--c-border);background:var(--c-bg);
  cursor:ns-resize;user-select:none;-webkit-user-select:none;
}
[data-theme="light"] .tdrum{background:rgba(0,0,0,.02)}
.tdrum-list{
  will-change:transform;
  transition:transform .28s cubic-bezier(.25,.8,.25,1);
}
.tdrum-item{
  height:44px;display:flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:500;font-family:var(--font-ui);
  transition:opacity .22s,transform .22s,font-size .22s,color .22s;
  color:var(--c-txt2);
}
.tdrum-item.tdrum-d0{font-size:15.5px;font-weight:700;opacity:1;transform:scale(1);color:var(--c-txt)}
.tdrum-item.tdrum-d1{font-size:13px;opacity:.45;transform:scaleY(.96);color:var(--c-txt2)}
.tdrum-item.tdrum-d2{font-size:11.5px;opacity:.15;transform:scaleY(.88);color:var(--c-txt3)}
/* Center highlight bar */
.tdrum::before{
  content:'';position:absolute;left:0;right:0;top:88px;height:44px;z-index:2;
  border-top:1px solid rgba(232,24,58,.28);border-bottom:1px solid rgba(232,24,58,.28);
  background:rgba(232,24,58,.05);pointer-events:none;border-radius:2px;
}
/* Gradient fade top/bottom */
.tdrum::after{
  content:'';position:absolute;inset:0;z-index:3;pointer-events:none;
  background:
    linear-gradient(to bottom,var(--c-bg) 0%,transparent 38%),
    linear-gradient(to top,var(--c-bg) 0%,transparent 38%);
}
[data-theme="light"] .tdrum::after{
  background:
    linear-gradient(to bottom,rgba(0,0,0,.02) 0%,transparent 38%),
    linear-gradient(to top,rgba(0,0,0,.02) 0%,transparent 38%);
}

/* Geo button */
.dlv-geo-btn{
  width:100%;display:flex;align-items:center;justify-content:center;gap:7px;
  padding:9px 14px;margin-bottom:14px;border-radius:var(--r-md);
  background:rgba(46,160,67,.07);border:1px solid rgba(46,160,67,.22);
  color:#22c55e;font-size:13px;font-weight:600;cursor:pointer;
  transition:background .15s,border-color .15s,color .15s;
}
.dlv-geo-btn:hover{background:rgba(46,160,67,.14);border-color:rgba(46,160,67,.4)}
.dlv-geo-btn.loading{opacity:.6;pointer-events:none}
.dlv-geo-btn.error{background:rgba(232,24,58,.06);border-color:rgba(232,24,58,.22);color:var(--c-red2)}
.dlv-result{
  margin-top:14px;padding:14px;border-radius:var(--r-md);
  border:1px solid var(--c-border);
  background:rgba(255,255,255,.03);
  display:none;
}
[data-theme="light"] .dlv-result{background:rgba(0,0,0,.025)}
.dlv-result.show{display:block;animation:fadeInUp .3s var(--ease) both}
.dlv-result-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:7px 0;border-bottom:1px solid var(--c-border2);font-size:13.5px;
}
.dlv-result-row:last-child{border-bottom:none}
.dlv-result-row .rk{color:var(--c-txt2)}
.dlv-result-row .rv{font-weight:700;color:var(--c-txt)}
.dlv-result-row .rv.red{color:var(--c-red2)}
.dlv-result-row .rv.green{color:#22c55e}
.dlv-zones{margin-top:10px}
.dlv-zone{
  display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;
  font-size:12.5px;margin-bottom:5px;
  border:1px solid var(--c-border2);background:rgba(255,255,255,.02);
}
.dlv-zone-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.delivery-map-side{padding:20px;display:flex;flex-direction:column;gap:12px}
.delivery-map-side h4{font-size:14px;font-weight:700;color:var(--c-txt)}
.dlv-map-frame{
  flex:1;min-height:320px;border-radius:var(--r-md);
  border:1px solid var(--c-border);overflow:hidden;
}
@media(max-width:680px){.dlv-map-frame{min-height:240px}}
.dlv-map-frame iframe{width:100%;height:100%;border:none;display:block}
.dlv-disclaimer{
  font-size:12px;color:var(--c-txt3);line-height:1.5;
  padding:10px;border-radius:var(--r-sm);
  border:1px solid var(--c-border2);background:rgba(255,255,255,.02);
}


/* ── DESKTOP VIEW ICONS ── */
.vm-desktop{display:flex}
@media(max-width:899px){.vm-desktop{display:none!important}}

/* ── PROD GRID columns ── */
.prod-grid.col3{grid-template-columns:repeat(3,1fr)!important}
.prod-grid.col4{grid-template-columns:repeat(4,1fr)!important}
.prod-grid.col5{grid-template-columns:repeat(5,1fr)!important}
/* Override on tablet/mobile: always 2 col */
@media(max-width:899px){
  .prod-grid.col3,.prod-grid.col4,.prod-grid.col5{grid-template-columns:repeat(2,1fr)!important}
}
@media(max-width:480px){
  .prod-grid.col3,.prod-grid.col4,.prod-grid.col5{grid-template-columns:repeat(2,1fr)!important}
}

/* ── HEADER sticky desktop (already sticky, ensure z-index) ── */
@media(min-width:900px){
  .header{
    position:sticky;top:0;z-index:100;
    box-shadow:0 1px 0 var(--c-border2);
  }
}

/* ── STICKY FILTERS/SORT — blur bg on mobile ── */
.stickyFilters .btn,
.stickyCart{
  backdrop-filter:blur(16px) saturate(180%);
  -webkit-backdrop-filter:blur(16px) saturate(180%);
}
.stickyFilters .btn{
  background:rgba(12,12,16,.75)!important;
  border-color:rgba(255,255,255,.18)!important;
  box-shadow:0 4px 16px rgba(0,0,0,.40);
}
[data-theme="light"] .stickyFilters .btn{
  background:rgba(250,248,245,.88)!important;
  border-color:rgba(0,0,0,.18)!important;
  box-shadow:0 4px 16px rgba(0,0,0,.14);
}
[data-theme="dark"] .stickyCart{background:rgba(12,12,16,.85)!important;box-shadow:0 8px 32px rgba(0,0,0,.50)}
[data-theme="light"] .stickyCart{background:rgba(255,255,255,.94)!important;border-color:rgba(232,24,58,.22)!important;box-shadow:0 6px 24px rgba(0,0,0,.12)!important;color:var(--c-txt)!important}
/* moved to BOTTOM_ROW_CSS */

/* ── CATALOG CATEGORY NAV (hierarchical) ── */
.cat-nav-wrap{
  margin-bottom:14px;
  border-radius:var(--r-lg);
  border:1px solid var(--c-border);
  background:var(--c-surface);
  overflow:hidden;
}
.cat-nav-main{
  display:flex;gap:0;
  overflow-x:auto;
  scrollbar-width:none;
  border-bottom:1px solid var(--c-border2);
  flex-wrap:nowrap;
}
.cat-nav-main::-webkit-scrollbar{display:none}
.cnav-btn{
  display:flex;align-items:center;gap:7px;
  padding:10px 14px;
  border:none;border-right:1px solid var(--c-border2);
  background:transparent;
  color:var(--c-txt2);
  font-size:13px;font-weight:600;
  cursor:pointer;white-space:nowrap;
  transition:background .14s,color .14s;
  position:relative;flex-shrink:0;
}
.cnav-btn:last-child{border-right:none}
.cnav-btn:hover{background:rgba(255,255,255,.06);color:var(--c-txt)}
[data-theme="light"] .cnav-btn:hover{background:rgba(0,0,0,.05)}
.cnav-btn.on{
  background:rgba(232,24,58,.08);
  color:var(--c-txt);
}
.cnav-btn.on::after{
  content:"";position:absolute;bottom:0;left:0;right:0;height:2px;
  background:var(--c-red);border-radius:2px 2px 0 0;
}
.cnav-btn .cico{font-size:15px}
.cnav-btn .carr{
  font-size:10px;color:var(--c-txt3);
  transition:transform .2s var(--ease);
}
.cnav-btn.sub-open .carr{transform:rotate(180deg)}

/* Sub-row */
.cat-nav-sub{
  display:none;
  overflow-x:auto;scrollbar-width:none;
  padding:8px 10px;gap:6px;
  flex-wrap:nowrap;
  background:rgba(255,255,255,.02);
}
[data-theme="light"] .cat-nav-sub{background:rgba(0,0,0,.015)}
.cat-nav-sub::-webkit-scrollbar{display:none}
.cat-nav-sub.open{display:flex}
.csub-btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 11px;border-radius:var(--r-pill);
  border:1px solid var(--c-border);
  background:rgba(255,255,255,.04);
  color:var(--c-txt2);font-size:12.5px;font-weight:600;
  cursor:pointer;white-space:nowrap;flex-shrink:0;
  transition:background .14s,border-color .14s,color .14s;
}
[data-theme="light"] .csub-btn{background:rgba(0,0,0,.04)}
.csub-btn:hover{background:rgba(255,255,255,.09);color:var(--c-txt)}
[data-theme="light"] .csub-btn:hover{background:rgba(0,0,0,.07)}
.csub-btn.on{background:rgba(232,24,58,.10);border-color:rgba(232,24,58,.32);color:var(--c-txt)}
.csub-badge{
  font-size:10px;font-weight:700;padding:1px 5px;border-radius:4px;
  background:var(--c-red);color:#fff;
}
.csub-badge.new{background:rgba(34,197,94,.85)}

/* ── FILTER PRESETS ── */
.filt-presets{
  display:flex;flex-wrap:wrap;gap:7px;
  margin-bottom:14px;
}
.fpreset{
  display:inline-flex;align-items:center;gap:5px;
  padding:7px 11px;border-radius:var(--r-pill);
  border:1px solid var(--c-border);
  background:rgba(255,255,255,.04);
  color:var(--c-txt2);font-size:12.5px;font-weight:600;
  cursor:pointer;white-space:nowrap;
  transition:background .14s,border-color .14s,color .14s;
}
[data-theme="light"] .fpreset{background:rgba(0,0,0,.04)}
.fpreset:hover{background:rgba(255,255,255,.09);color:var(--c-txt)}
[data-theme="light"] .fpreset:hover{background:rgba(0,0,0,.07)}
.fpreset.on{background:rgba(201,164,78,.12);border-color:rgba(201,164,78,.35);color:var(--c-txt)}
.fpreset .pico{font-size:14px}


/* ════════════════════════════════════════
   LOAD MORE
════════════════════════════════════════ */
.load-more-wrap{
  display:none;
  flex-direction:column;
  align-items:center;
  gap:12px;
  margin-top:24px;
  padding:4px 0;
}
.load-more-wrap.show{display:flex}
.load-more-btn{
  min-width:200px;
  height:46px;
  border-radius:var(--r-md);
  border:1px solid var(--c-border);
  background:rgba(255,255,255,.05);
  color:var(--c-txt);
  font-size:14px;font-weight:600;
  cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  transition:background .18s,border-color .18s,transform .18s var(--ease),box-shadow .18s;
}
[data-theme="light"] .load-more-btn{background:rgba(0,0,0,.04);border-color:rgba(0,0,0,.10)}
.load-more-btn:hover{
  background:rgba(255,255,255,.10);
  border-color:rgba(255,255,255,.22);
  transform:translateY(-2px);
  box-shadow:0 6px 20px rgba(0,0,0,.22);
}
[data-theme="light"] .load-more-btn:hover{
  background:rgba(0,0,0,.07);
  border-color:rgba(0,0,0,.18);
  box-shadow:0 4px 14px rgba(0,0,0,.09);
}
.load-more-btn:active{transform:scale(.97)}
.load-more-btn .lm-ico{font-size:16px}
.load-more-btn.loading{pointer-events:none;opacity:.7}
.load-more-btn.loading .lm-ico{animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.load-more-count{
  font-size:12.5px;color:var(--c-txt3);
  font-weight:500;
}


/* ── stickyCart compact on mobile ── */
/* moved to BOTTOM_ROW_CSS */


/* ════════════════════════════════════════
   MOBILE BOTTOM ROW — CLEAN LAYOUT
   [stickyCart]      [↑] [☎]
════════════════════════════════════════ */

/* stickyCart: left strip, doesn't reach right buttons */
.stickyCart{
  position:fixed;
  left:14px;
  right:calc(44px + 8px + 50px + 8px + 14px); /* room for toTop+FAB */
  /* +28px = 13px орб над nav + 15px визуальный зазор */
  bottom:calc(var(--nav-h) + var(--safe-b) + 42px);
  z-index:90;
  display:none;align-items:center;justify-content:space-between;gap:8px;
  padding:9px 12px;border-radius:16px;
  background:rgba(10,10,12,.72);
  backdrop-filter:blur(18px) saturate(180%);
  -webkit-backdrop-filter:blur(18px) saturate(180%);
  border:1px solid rgba(232,24,58,.22);
  box-shadow:0 8px 28px rgba(0,0,0,.40);
  animation:slideUp .3s var(--ease) both;
  min-width:0;
  overflow:hidden;
}
[data-theme="light"] .stickyCart{
  background:rgba(255,255,255,.94)!important;
  border-color:rgba(232,24,58,.22)!important;
  box-shadow:0 6px 20px rgba(0,0,0,.10)!important;
  color:var(--c-txt)!important;
}
.stickyCart.show{display:flex}
.stickyCart.raised{bottom:calc(var(--nav-h) + var(--safe-b) + 62px)}
.stickyCart.aboveFilters{bottom:calc(var(--nav-h) + var(--safe-b) + 62px)}
@media(min-width:900px){.stickyCart{display:none!important}}

/* Compact text inside cart bar */
.sticky-info{min-width:0;overflow:hidden}
.sticky-info b{
  display:block;font-size:13px;font-weight:700;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.sticky-info span{
  display:block;font-size:11.5px;color:var(--c-txt2);
  white-space:nowrap;
}
/* Compact checkout button */
#btnStickyCheckout{
  height:36px;padding:0 12px;font-size:13px;border-radius:12px;
  flex-shrink:0;white-space:nowrap;
}

/* toTop: left of FAB, same bottom level as stickyCart */
.toTop{
  position:fixed;
  right:calc(50px + 8px + 14px); /* = 72px from right edge */
  bottom:calc(var(--nav-h) + var(--safe-b) + 14px);
  z-index:93;display:none;
}
.toTop.show{display:block}
@media(min-width:900px){.toTop{bottom:16px;right:16px}}

/* FAB: far right */
.fab-wrap{
  position:fixed;right:14px;z-index:95;
  bottom:calc(var(--nav-h) + var(--safe-b) + 14px);
  display:flex;flex-direction:column;align-items:flex-end;gap:9px;
}
@media(min-width:900px){.fab-wrap{bottom:80px}}

/* toTop button itself */
.toTop .btn-icon{
  width:44px;height:44px;border-radius:14px;
  background:rgba(10,10,12,.72);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 4px 14px rgba(0,0,0,.32);
}
[data-theme="light"] .toTop .btn-icon{
  background:rgba(255,255,255,.82);
  border-color:rgba(0,0,0,.12);
  box-shadow:0 4px 14px rgba(0,0,0,.10);
}

/* ════════════════════════════════════════
   TRANSPARENCY + BLUR ENHANCEMENT
════════════════════════════════════════ */

/* Header — more transparent + blur */
.header{
  background:rgba(10,10,12,.72) !important;
  backdrop-filter:blur(24px) saturate(200%) !important;
  -webkit-backdrop-filter:blur(24px) saturate(200%) !important;
  border-bottom:1px solid rgba(255,255,255,.07) !important;
}
[data-theme="light"] .header{
  background:rgba(250,248,245,.78) !important;
  border-bottom-color:rgba(0,0,0,.07) !important;
}

/* Bottom nav — more transparent */
.bottomNav{
  background:rgba(10,10,12,.68) !important;
  backdrop-filter:blur(24px) saturate(200%) !important;
  -webkit-backdrop-filter:blur(24px) saturate(200%) !important;
  border-top:1px solid rgba(255,255,255,.06) !important;
}
[data-theme="light"] .bottomNav{
  background:rgba(250,248,245,.78) !important;
  border-top-color:rgba(0,0,0,.07) !important;
}

/* Cart drawer */
.drawer{
  background:rgba(14,14,18,.82) !important;
  backdrop-filter:blur(28px) saturate(200%);
  -webkit-backdrop-filter:blur(28px) saturate(200%);
}
[data-theme="light"] .drawer{
  background:rgba(250,248,245,.86) !important;
}
.drawer-head,.drawer-foot,.drawer-body{background:transparent !important}

/* Filter drawer */
.filt-drawer{
  background:rgba(14,14,18,.82) !important;
  backdrop-filter:blur(28px) saturate(200%);
  -webkit-backdrop-filter:blur(28px) saturate(200%);
}
[data-theme="light"] .filt-drawer{
  background:rgba(250,248,245,.86) !important;
}
.filt-head,.filt-body,.filt-foot{background:transparent !important}

/* Side menu */
.side-menu{
  background:rgba(14,14,18,.84) !important;
  backdrop-filter:blur(28px) saturate(200%);
  -webkit-backdrop-filter:blur(28px) saturate(200%);
}
[data-theme="light"] .side-menu{
  background:rgba(250,248,245,.88) !important;
}
.sm-head,.sm-body{background:transparent !important}

/* Overlays/scrims — lighter */
.overlay{background:rgba(0,0,0,.55) !important}
.menu-overlay{background:rgba(0,0,0,.50) !important}
.modal-overlay{background:rgba(0,0,0,.58) !important}
.delivery-modal{background:rgba(0,0,0,.55) !important}
.search-overlay{
  background:rgba(10,10,12,.80) !important;
  backdrop-filter:blur(28px) saturate(200%);
}
[data-theme="light"] .search-overlay{
  background:rgba(250,248,245,.88) !important;
}

/* Sticky bars blur */
.stickyFilters .btn{
  background:rgba(10,10,12,.72) !important;
  backdrop-filter:blur(18px) saturate(180%) !important;
  -webkit-backdrop-filter:blur(18px) saturate(180%) !important;
}
[data-theme="light"] .stickyFilters .btn{
  background:rgba(255,255,255,.80) !important;
}

/* c-scrim variables — override with more transparent values */
:root{--c-scrim:rgba(10,10,12,.72)}
[data-theme="light"]{--c-scrim:rgba(250,248,245,.80)}


/* ── toTop position by page context ── */
/* Default: left side (home / profile / checkout — no stickyCart conflict) */
.toTop{
  position:fixed;
  left:auto !important;
  right:72px;
  bottom:calc(var(--nav-h) + var(--safe-b) + 14px);
  z-index:93;display:none;
}
.toTop.show{display:block}
/* On catalog: right side, left of FAB */
.catalog-page .toTop{
  left:auto;
  right:calc(50px + 8px + 14px);
}
@media(min-width:900px){
  .toTop{left:auto;right:16px;bottom:16px}
}


/* ════════════════════════════════════════
   ACTION ISLAND  (mobile / tablet <900px)
   Replaces stickyCart + stickyFilters + toTop
════════════════════════════════════════ */
#actionIsland{
  position:fixed;
  left:14px;
  right:auto; /* compact by default, grows with .ai-full */
  max-width:calc(100% - 14px - 50px - 10px - 14px); /* never overlap FAB */
  bottom:calc(var(--nav-h) + var(--safe-b) + 12px);
  z-index:92;
  display:none;align-items:center;
  height:46px;
  border-radius:16px;
  background:rgba(10,10,12,.82);
  backdrop-filter:blur(20px) saturate(180%);
  -webkit-backdrop-filter:blur(20px) saturate(180%);
  border:1px solid rgba(255,255,255,.11);
  box-shadow:0 8px 28px rgba(0,0,0,.40);
  overflow:hidden;
  transition:opacity .22s,transform .22s,width .22s;
}
[data-theme="light"] #actionIsland{
  background:rgba(255,255,255,.93);
  border-color:rgba(0,0,0,.10);
  box-shadow:0 6px 24px rgba(0,0,0,.12);
  color:var(--c-txt);
}
/* When cart is visible — stretch to fill full available width */
#actionIsland.ai-full{
  right:calc(50px + 10px + 14px);
}
#actionIsland.ai-visible{display:flex}
body.overlay-open #actionIsland{opacity:0;pointer-events:none;transform:scale(.92) translateY(4px)}
body.kiosk-mode #actionIsland{display:none!important}
@media(min-width:900px){#actionIsland{display:none!important}}

/* Hide old mobile elements — replaced by Action Island */
@media(max-width:899px){
  .stickyCart{display:none!important}
  .stickyFilters{display:none!important}
  .toTop{display:none!important}
}

/* ── Filters segment ── */
.ai-filters{
  display:none;align-items:center;
  height:100%;padding:0 4px 0 10px;
  border-right:1px solid rgba(255,255,255,.11);
  flex-shrink:0;
}
[data-theme="light"] .ai-filters{border-right-color:rgba(0,0,0,.08)}
.ai-filters.ai-seg-vis{display:flex}

.ai-filt-btn{
  display:flex;align-items:center;gap:5px;
  background:none;border:none;cursor:pointer;
  font-size:12.5px;font-weight:600;color:var(--c-txt2);
  padding:0 5px 0 0;white-space:nowrap;height:100%;
}
.ai-filt-btn:active{opacity:.7}
.ai-filt-badge{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:16px;height:16px;padding:0 3px;border-radius:8px;
  background:var(--c-red);color:#fff;
  font-size:10px;font-weight:700;line-height:1;margin-left:2px;
}
.ai-sort-btn{
  background:none;border:none;cursor:pointer;
  color:var(--c-txt2);
  display:flex;align-items:center;justify-content:center;
  width:30px;height:100%;flex-shrink:0;
}
.ai-sort-btn:active{opacity:.7}

/* ── Cart segment ── */
.ai-cart{
  display:none;align-items:center;
  flex:1;min-width:0;height:100%;
  padding:0 8px 0 10px;gap:6px;
}
.ai-cart.ai-seg-vis{display:flex}
.ai-cart-info{display:flex;flex-direction:column;min-width:0;flex:1}
.ai-cart-qty{font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ai-cart-sum{font-size:11px;color:var(--c-txt2);white-space:nowrap}
.ai-checkout-btn{
  height:32px;padding:0 10px;
  font-size:12.5px;border-radius:10px;
  flex-shrink:0;white-space:nowrap;
}
/* Стрелка скрыта в полном режиме, видна только при схлопывании */
.ai-co-arrow{display:none}
/* Кнопка «Оформить» → иконка только когда одновременно видны фильтры И кнопка ↑ */
#actionIsland.ai-has-top .ai-filters.ai-seg-vis ~ .ai-cart .ai-co-label{display:none}
#actionIsland.ai-has-top .ai-filters.ai-seg-vis ~ .ai-cart .ai-checkout-btn{
  width:34px;padding:0;
  display:flex;align-items:center;justify-content:center;
}
#actionIsland.ai-has-top .ai-filters.ai-seg-vis ~ .ai-cart .ai-co-arrow{display:flex;align-items:center;line-height:1}

/* ── Sep + ToTop segment ── */
.ai-sep{width:1px;height:24px;background:rgba(255,255,255,.11);flex-shrink:0;margin:0}
[data-theme="light"] .ai-sep{background:rgba(0,0,0,.08)}
.ai-top{
  display:none;align-items:center;justify-content:center;
  width:44px;height:100%;
  background:none;border:none;cursor:pointer;
  color:var(--c-txt2);flex-shrink:0;
}
.ai-top.ai-seg-vis{display:flex}
.ai-top.ai-has-sep{border-left:1px solid rgba(255,255,255,.11)}
[data-theme="light"] .ai-top.ai-has-sep{border-left-color:rgba(0,0,0,.08)}
.ai-top:active{opacity:.7}


/* ════════════════════════════════════════
   CHECKOUT PAGE
════════════════════════════════════════ */
.checkout-layout{
  display:flex;flex-direction:column;gap:16px;
  max-width:860px;margin:0 auto;
}
.co-block{
  border-radius:var(--r-xl);
  border:1px solid var(--c-border);
  background:var(--c-card);
  overflow:hidden;
}
[data-theme="dark"] .co-block{box-shadow:0 2px 12px rgba(0,0,0,.22)}
.co-head{
  padding:16px 18px 12px;
  border-bottom:1px solid var(--c-border2);
  display:flex;align-items:center;gap:10px;
}
.co-num{
  width:26px;height:26px;border-radius:8px;
  background:var(--c-red);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:800;flex-shrink:0;
}
.co-head h3{font-size:16px;font-weight:700;margin:0}
.co-body{padding:16px 18px}
.co-row{
  display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;
}
@media(max-width:540px){.co-row{grid-template-columns:1fr}}

/* ── Анонимная доставка — toggle card ── */
.co-anon-card{
  display:flex;align-items:center;gap:12px;
  margin-top:12px;padding:13px 15px;
  border-radius:var(--r-md);
  border:1.5px solid var(--c-border);
  background:var(--c-surface);
  cursor:pointer;
  transition:border-color .2s,background .2s,box-shadow .2s;
  user-select:none;
}
.co-anon-card:hover{
  border-color:rgba(232,24,58,.25);
  background:rgba(232,24,58,.04);
}
.co-anon-check{ display:none }
.co-anon-ico{ font-size:22px;flex-shrink:0;line-height:1 }
.co-anon-body{
  flex:1;min-width:0;
  display:flex;flex-direction:column;gap:2px;
}
.co-anon-body b{
  font-size:14px;font-weight:700;color:var(--c-txt);
}
.co-anon-body span{
  font-size:12px;color:var(--c-txt3);
}
/* Toggle switch */
.co-anon-toggle{
  width:44px;height:24px;border-radius:999px;
  background:var(--c-border);
  position:relative;flex-shrink:0;
  transition:background .25s var(--ease);
  border:1.5px solid transparent;
}
.co-anon-knob{
  position:absolute;top:2px;left:2px;
  width:16px;height:16px;border-radius:50%;
  background:#fff;
  box-shadow:0 1px 4px rgba(0,0,0,.25);
  transition:transform .25s var(--spring);
}
.co-anon-check:checked ~ * .co-anon-toggle,
.co-anon-card:has(.co-anon-check:checked) .co-anon-toggle{
  background:var(--c-red);border-color:rgba(232,24,58,.4);
}
.co-anon-card:has(.co-anon-check:checked) .co-anon-knob{
  transform:translateX(20px);
}
.co-anon-card:has(.co-anon-check:checked){
  border-color:rgba(232,24,58,.30);
  background:rgba(232,24,58,.06);
}
[data-theme="light"] .co-anon-card{
  background:rgba(0,0,0,.02);
}
[data-theme="light"] .co-anon-card:hover{
  background:rgba(232,24,58,.04);
}
/* ── Поля с ошибкой ── */
.co-input.co-error,.reg-input.co-error,.phone-error,.email-error{
  border-color:var(--c-red)!important;
  background:rgba(232,24,58,.05)!important;
  animation:shake .35s ease;
}
/* ── Согласие на обработку данных ── */
.co-consent{
  display:flex;align-items:flex-start;gap:10px;
  margin-bottom:14px;padding:12px 14px;
  border-radius:var(--r-md);
  border:1px solid var(--c-border2);
  background:rgba(0,0,0,.03);
  cursor:pointer;
  transition:border-color .2s,background .2s;
}
.co-consent:hover{ border-color:rgba(232,24,58,.25); }
.co-consent.consent-required{
  border-color:var(--c-red)!important;
  background:rgba(232,24,58,.06);
  animation:shake .35s ease;
}
.co-consent-check{
  width:18px;height:18px;flex-shrink:0;margin-top:1px;
  accent-color:var(--c-red);cursor:pointer;
}
.co-consent-text{
  font-size:12px;line-height:1.55;color:var(--c-txt2);
}
.co-consent-link{
  color:var(--c-red2);text-decoration:underline;
  text-underline-offset:2px;
}

/* ══════════════════════════════════════════
   LIKE PETAL PARTICLES
══════════════════════════════════════════ */
@keyframes petalFly{
  0%{transform:translate(0,0) scale(1) rotate(0deg);opacity:1}
  100%{transform:translate(var(--ptx),var(--pty)) scale(.3) rotate(var(--pr));opacity:0}
}
.like-petal{
  position:fixed;pointer-events:none;z-index:9999;
  font-size:13px;line-height:1;
  animation:petalFly .65s cubic-bezier(.22,.9,.22,1) forwards;
}

/* ══════════════════════════════════════════
   ORDER SUCCESS OVERLAY
══════════════════════════════════════════ */
@keyframes confettiFall{
  0%{transform:translateY(-20px) rotate(0deg);opacity:1}
  100%{transform:translateY(110vh) rotate(720deg);opacity:0}
}
@keyframes osoIn{
  0%{opacity:0;transform:translateY(30px) scale(.92)}
  100%{opacity:1;transform:translateY(0) scale(1)}
}
.order-success-overlay{
  position:fixed;inset:0;z-index:10000;
  background:linear-gradient(160deg,rgba(10,8,6,.97),rgba(20,12,16,.99));
  display:flex;align-items:center;justify-content:center;
  animation:fadeOverlay .35s var(--ease);
}
.order-success-overlay.hiding{
  animation:none;opacity:0;transition:opacity .3s;pointer-events:none;
}
.oso-content{
  text-align:center;padding:32px 24px;max-width:360px;width:100%;
  animation:osoIn .45s var(--spring);
  position:relative;z-index:1;
}
.oso-icon{font-size:64px;margin-bottom:8px;display:block}
.oso-title{font-size:28px;font-weight:900;color:var(--c-txt);margin:0 0 6px}
.oso-num{font-size:15px;color:var(--c-gold2);font-weight:700;margin-bottom:14px;letter-spacing:.04em}
.oso-sub{font-size:15px;color:var(--c-txt2);margin:0 0 18px;line-height:1.5}
.oso-timer{
  display:inline-block;padding:10px 20px;border-radius:var(--r-pill);
  background:rgba(201,164,78,.12);border:1px solid rgba(201,164,78,.3);
  font-size:13.5px;color:var(--c-gold2);margin-bottom:14px;
}
.oso-pts{
  font-size:13px;color:var(--c-txt3);margin-bottom:24px;
}
.oso-btn{width:100%;height:50px;font-size:15px;font-weight:800}
.oso-confetti-wrap{
  position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:0;
}
.oso-confetti-piece{
  position:absolute;top:-20px;width:8px;height:8px;
  border-radius:2px;
  animation:confettiFall linear forwards;
}

/* ══════════════════════════════════════════
   БУКЕТ ДНЯ BANNER
══════════════════════════════════════════ */
.bouquet-of-day{
  position:relative;overflow:hidden;
  border-radius:var(--r-xl);
  background:linear-gradient(135deg,rgba(232,24,58,.12),rgba(10,8,6,.8)),var(--c-card);
  border:1px solid rgba(232,24,58,.2);
  padding:20px;margin-bottom:20px;
  display:flex;align-items:center;gap:16px;
  min-height:120px;
}
[data-theme="light"] .bouquet-of-day{
  background:linear-gradient(135deg,rgba(232,24,58,.08) 0%,rgba(232,24,58,.03) 100%),var(--c-card);
  border-color:rgba(232,24,58,.18);
  box-shadow:0 4px 20px rgba(232,24,58,.08);
}
[data-theme="light"] .bod-title{color:var(--c-txt)}
[data-theme="light"] .bod-desc{color:var(--c-txt2)}
.bod-badge{
  position:absolute;top:12px;left:12px;
  background:var(--c-red);color:#fff;
  font-size:10.5px;font-weight:800;letter-spacing:.06em;
  padding:3px 9px;border-radius:var(--r-pill);text-transform:uppercase;
}
.bod-img{
  width:90px;height:90px;border-radius:var(--r-lg);object-fit:cover;flex-shrink:0;
  border:2px solid rgba(232,24,58,.25);
}
.bod-img-empty{
  width:90px;height:90px;border-radius:var(--r-lg);flex-shrink:0;
  background:rgba(232,24,58,.08);display:flex;align-items:center;justify-content:center;
  font-size:36px;
}
.bod-body{flex:1;min-width:0}
.bod-title{font-size:16px;font-weight:800;margin:0 0 4px;color:var(--c-txt)}
.bod-desc{font-size:12.5px;color:var(--c-txt2);margin:0 0 10px;line-height:1.4}
.bod-footer{display:flex;align-items:center;gap:10px}
.bod-price{font-size:17px;font-weight:900;color:var(--c-red2)}
.bod-btn{font-size:12px;padding:6px 14px;height:auto}

/* ══════════════════════════════════════════
   ПЕРСОНАЛИЗИРОВАННЫЕ РЕКОМЕНДАЦИИ
══════════════════════════════════════════ */
.reco-section{margin:20px 0}
.reco-title{
  font-size:13px;font-weight:700;color:var(--c-txt2);
  letter-spacing:.04em;text-transform:uppercase;
  margin:0 0 10px;display:flex;align-items:center;gap:6px;
}
.reco-scroll{
  display:flex;gap:10px;overflow-x:auto;padding-bottom:6px;
  scrollbar-width:none;-ms-overflow-style:none;
}
.reco-scroll::-webkit-scrollbar{display:none}
.reco-card{
  flex-shrink:0;width:120px;cursor:pointer;
  border-radius:var(--r-md);overflow:hidden;
  border:1px solid var(--c-border);
  background:var(--c-card);
  transition:transform .2s var(--ease),box-shadow .2s;
}
.reco-card:hover{transform:translateY(-3px);box-shadow:0 8px 20px rgba(0,0,0,.25)}
.reco-card-img{
  width:100%;height:90px;object-fit:cover;display:block;
}
.reco-card-img-empty{
  width:100%;height:90px;background:var(--c-surface);
  display:flex;align-items:center;justify-content:center;font-size:28px;
}
.reco-card-name{
  padding:6px 8px;font-size:11.5px;font-weight:600;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  color:var(--c-txt);
}
.reco-card-price{
  padding:0 8px 8px;font-size:11px;color:var(--c-red2);font-weight:700;
}

/* ══════════════════════════════════════════
   ДОСТИЖЕНИЯ
══════════════════════════════════════════ */
.achieve-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px;
}
@media(max-width:480px){.achieve-grid{grid-template-columns:repeat(3,1fr)}}
.achieve-item{
  display:flex;flex-direction:column;align-items:center;gap:5px;
  padding:10px 6px;border-radius:var(--r-md);
  border:1px solid var(--c-border);background:var(--c-card);
  text-align:center;cursor:default;transition:transform .2s;
}
.achieve-item.unlocked{
  border-color:rgba(201,164,78,.35);background:rgba(201,164,78,.07);
}
.achieve-item.unlocked:hover{transform:translateY(-2px)}
.achieve-ico{font-size:26px;line-height:1}
.achieve-name{font-size:10px;font-weight:700;color:var(--c-txt);line-height:1.2}
.achieve-item:not(.unlocked) .achieve-ico{filter:grayscale(1);opacity:.35}
.achieve-item:not(.unlocked) .achieve-name{color:var(--c-txt3)}
@keyframes achievePop{
  0%{transform:scale(.5);opacity:0}
  70%{transform:scale(1.15)}
  100%{transform:scale(1);opacity:1}
}
.achieve-item.just-unlocked{animation:achievePop .5s var(--spring)}

/* ══════════════════════════════════════════
   ANIMATED ORDER ROUTE
══════════════════════════════════════════ */
.order-route{
  margin:16px 0;padding:16px;border-radius:var(--r-md);
  background:var(--c-card);border:1px solid var(--c-border);
  position:relative;overflow:hidden;
}
.order-route-line{
  position:absolute;left:50%;top:0;bottom:0;width:2px;
  background:linear-gradient(to bottom,var(--c-red),rgba(201,164,78,.5));
  transform:translateX(-50%);
}
.order-route-points{
  position:relative;z-index:1;
  display:flex;flex-direction:column;gap:0;
}
.orp-item{
  display:flex;align-items:center;gap:12px;padding:8px 0;
}
.orp-dot{
  width:36px;height:36px;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:17px;
  background:var(--c-surface);border:2px solid var(--c-border);
  position:relative;z-index:1;
}
.orp-dot.pulse{
  border-color:var(--c-red);
  animation:orpPulse 1.5s ease-in-out infinite;
}
@keyframes orpPulse{
  0%,100%{box-shadow:0 0 0 0 rgba(232,24,58,.4)}
  50%{box-shadow:0 0 0 8px rgba(232,24,58,0)}
}
.orp-courier{
  position:absolute;left:50%;transform:translateX(-50%);
  font-size:20px;z-index:2;
  animation:courierMove 3s ease-in-out infinite alternate;
}
@keyframes courierMove{
  0%{top:30%} 100%{top:65%}
}

/* ── Карточка "Авторизован" в блоке заказчика ── */
.co-auth-banner{
  display:flex;align-items:center;gap:10px;
  padding:10px 13px;margin-bottom:14px;
  border-radius:var(--r-md);
  border:1px solid rgba(201,164,78,.25);
  background:rgba(201,164,78,.06);
  font-size:13px;
}
.co-auth-banner b{color:var(--c-gold);margin-right:4px}
.co-auth-banner .co-auth-lnk{
  margin-left:auto;font-size:12px;color:var(--c-red2);
  text-decoration:none;cursor:pointer;white-space:nowrap;
}
[data-theme="light"] .co-auth-banner{background:rgba(201,164,78,.08)}

/* ── Карточка "Адрес по умолчанию" (как anon-card но синяя/зелёная) ── */
.co-def-addr{
  display:flex;align-items:center;gap:12px;
  padding:11px 14px;margin-bottom:12px;
  border-radius:var(--r-md);
  border:1px solid var(--c-border);
  background:rgba(255,255,255,.03);
  cursor:pointer;transition:border-color .2s,background .2s;
  -webkit-tap-highlight-color:transparent;
  position:relative;
}
.co-def-addr-check{display:none}
.co-def-addr-ico{font-size:20px;flex-shrink:0}
.co-def-addr-body{flex:1;min-width:0}
.co-def-addr-body b{display:block;font-size:13px;font-weight:700;margin-bottom:2px}
.co-def-addr-body span{font-size:12px;color:var(--c-txt2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.co-def-addr:hover{background:rgba(78,131,201,.06);border-color:rgba(78,131,201,.25)}
.co-def-addr:has(.co-def-addr-check:checked) .co-anon-toggle{background:var(--c-red);border-color:rgba(232,24,58,.4)}
.co-def-addr:has(.co-def-addr-check:checked) .co-anon-knob{transform:translateX(20px)}
.co-def-addr:has(.co-def-addr-check:checked){border-color:rgba(232,24,58,.30);background:rgba(232,24,58,.06)}
[data-theme="light"] .co-def-addr{background:rgba(0,0,0,.02)}

.co-field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}
.co-field label{font-size:12px;font-weight:600;color:var(--c-txt2);text-transform:uppercase;letter-spacing:.04em}
.co-input{
  width:100%;padding:11px 12px;border-radius:var(--r-sm);
  border:1px solid var(--c-border);
  background:rgba(255,255,255,.04);
  color:var(--c-txt);font-size:14px;outline:none;
  transition:border-color .2s,box-shadow .2s;
}
[data-theme="light"] .co-input{background:rgba(0,0,0,.03)}
.co-input:focus{border-color:rgba(232,24,58,.40);box-shadow:0 0 0 3px rgba(232,24,58,.09)}
.co-input::placeholder{color:var(--c-txt3)}
.co-select{
  width:100%;padding:11px 12px;border-radius:var(--r-sm);
  border:1px solid var(--c-border);
  background:rgba(255,255,255,.04);
  color:var(--c-txt);font-size:14px;outline:none;cursor:pointer;
}
[data-theme="light"] .co-select{background:rgba(0,0,0,.03)}
.co-select:focus{border-color:rgba(232,24,58,.40)}

/* Delivery toggle */
.delivery-toggle{
  display:grid;grid-template-columns:1fr 1fr;gap:8px;
  margin-bottom:14px;
}
.dt-btn{
  padding:12px 10px;border-radius:var(--r-md);
  border:1px solid var(--c-border);
  background:rgba(255,255,255,.04);
  cursor:pointer;text-align:center;
  transition:background .15s,border-color .15s,color .15s;
}
[data-theme="light"] .dt-btn{background:rgba(0,0,0,.03)}
.dt-btn b{display:block;font-size:13.5px;font-weight:700;margin-bottom:3px;color:var(--c-txt)}
.dt-btn span{font-size:12px;color:var(--c-txt3)}
.dt-btn.on{background:rgba(232,24,58,.09);border-color:rgba(232,24,58,.32)}
.dt-btn.on b{color:var(--c-red2)}

/* Pickup block */
.pickup-block,.delivery-block{
  border-radius:var(--r-md);
  border:1px solid var(--c-border2);
  background:rgba(255,255,255,.025);
  padding:14px;margin-bottom:12px;
}
[data-theme="light"] .pickup-block,[data-theme="light"] .delivery-block{background:rgba(0,0,0,.02)}
.pickup-block .pb-addr{font-size:14px;font-weight:700;margin-bottom:8px}
.pickup-block .pb-time{font-size:13px;color:var(--c-txt2);margin-bottom:12px}

/* Delivery embedded calc — reuse dlv styles */
.co-dlv-result{display:none;animation:fadeInUp .3s var(--ease) both}
.co-dlv-result.show{display:block}

/* Order items in checkout */
.co-cart-item{
  display:flex;align-items:center;gap:12px;
  padding:10px 0;border-bottom:1px solid var(--c-border2);
}
.co-cart-item:last-child{border-bottom:none}
.co-cart-thumb{
  width:48px;height:48px;border-radius:10px;flex-shrink:0;
  overflow:hidden;background:var(--c-surface);border:1px solid var(--c-border);
  position:relative;
}
.co-cart-thumb img{width:100%;height:100%;object-fit:cover}
.co-cart-thumb.empty::after{content:"🌸";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:17px;opacity:.35}
.co-cart-info{flex:1;min-width:0}
.co-cart-info b{display:block;font-size:13px;font-weight:700;color:var(--c-txt);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:2px}
.co-cart-info span{font-size:12px;color:var(--c-txt2)}
.co-cart-qty{display:flex;align-items:center;gap:6px;flex-shrink:0}
.co-qty-btn{
  width:28px;height:28px;border-radius:8px;
  border:1px solid var(--c-border);background:rgba(255,255,255,.04);
  display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:700;color:var(--c-txt);cursor:pointer;
  transition:background .12s;
}
[data-theme="light"] .co-qty-btn{background:rgba(0,0,0,.04)}
.co-qty-btn:hover{background:rgba(255,255,255,.10)}
[data-theme="light"] .co-qty-btn:hover{background:rgba(0,0,0,.08)}
.co-qty-n{min-width:20px;text-align:center;font-size:13.5px;font-weight:700}
.co-cart-del{
  width:26px;height:26px;border-radius:7px;border:none;
  background:rgba(232,24,58,.08);color:var(--c-red2);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;font-size:14px;flex-shrink:0;
  transition:background .12s,transform .12s;
}
.co-cart-del:hover{background:rgba(232,24,58,.18);transform:scale(1.1)}

/* Order total in checkout */
.co-total{
  padding:12px 0 0;border-top:1px solid var(--c-border2);
  margin-top:8px;
}
.co-total-row{
  display:flex;justify-content:space-between;align-items:baseline;
  gap:10px;margin-bottom:7px;font-size:13.5px;
}
.co-total-row .tlbl{color:var(--c-txt2)}
.co-total-row .tval{font-weight:700;color:var(--c-txt)}
.co-total-row.big .tval{font-size:20px;font-weight:800}
.co-total-row.disc .tval{color:var(--c-gold2)}


/* stickyCart light theme text colors */
[data-theme="light"] .sticky-info b{color:var(--c-txt)!important}
[data-theme="light"] .sticky-info span{color:var(--c-txt2)!important}


/* ── FAB branded colors ── */
.fab-link.vk{border-color:rgba(0,119,255,.30)!important}
.fab-link.vk:hover{box-shadow:0 6px 20px rgba(0,119,255,.28)!important}
.fab-link.tg{border-color:rgba(40,160,240,.28)!important}
.fab-link.tg:hover{box-shadow:0 6px 20px rgba(40,160,240,.24)!important}
.fab-link.red{border-color:rgba(232,24,58,.30)!important}
.fab-link.red:hover{box-shadow:0 6px 20px rgba(232,24,58,.30)!important}
[data-theme="dark"] .fab-link{background:rgba(18,18,26,.80)!important}
[data-theme="light"] .fab-link{background:rgba(255,255,255,.94)!important}


/* ════════════════════════════════════════
   QUIZ — Подбор букета
════════════════════════════════════════ */
.quiz-wrap{
  border-radius:var(--r-xl);
  border:1px solid var(--c-border);
  background:var(--c-card);
  overflow:hidden;
  position:relative;
}
[data-theme="dark"] .quiz-wrap{box-shadow:0 4px 20px rgba(0,0,0,.26)}
[data-theme="light"] .quiz-wrap{box-shadow:0 2px 12px rgba(0,0,0,.07)}
.quiz-progress{
  height:3px;
  background:var(--c-border);
  border-radius:0;overflow:hidden;
}
.quiz-bar{
  height:100%;
  background:linear-gradient(90deg,var(--c-red),var(--c-gold));
  border-radius:var(--r-pill);
  transition:width .4s var(--ease);
}
.quiz-inner{padding:24px}
@media(max-width:540px){.quiz-inner{padding:18px}}
.quiz-step{display:none;animation:quizSlide .3s var(--ease) both}
.quiz-step.active{display:block}
@keyframes quizSlide{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:translateX(0)}}
.quiz-emoji{font-size:36px;margin-bottom:10px;display:block}
.quiz-q{font-family:var(--font-display);font-size:clamp(20px,3.5vw,28px);font-weight:600;margin-bottom:6px}
.quiz-hint{font-size:13px;color:var(--c-txt3);margin-bottom:18px}
.quiz-opts{display:flex;flex-direction:column;gap:9px}
.qopt{
  display:flex;align-items:center;gap:13px;
  padding:13px 15px;border-radius:var(--r-md);
  border:1px solid var(--c-border);
  background:rgba(255,255,255,.04);
  cursor:pointer;text-align:left;
  transition:border-color .17s,background .17s,transform .17s var(--ease);
}
[data-theme="light"] .qopt{background:rgba(0,0,0,.03)}
.qopt:hover{background:rgba(255,255,255,.09);border-color:rgba(232,24,58,.28);transform:translateX(4px)}
[data-theme="light"] .qopt:hover{background:rgba(0,0,0,.06);border-color:rgba(232,24,58,.28)}
.qopt.selected{background:rgba(232,24,58,.10);border-color:rgba(232,24,58,.40)}
.qopt-ico{font-size:22px;flex-shrink:0}
.qopt-txt{min-width:0}
.qopt-txt b{display:block;font-size:14px;font-weight:700;color:var(--c-txt)}
.qopt-txt span{font-size:12.5px;color:var(--c-txt3)}
.quiz-footer{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-top:18px;flex-wrap:wrap;
}
.quiz-counter{font-size:13px;color:var(--c-txt3)}
.quiz-result{display:none}
.quiz-result.active{display:block;animation:quizSlide .35s var(--ease) both}
.qres-header{
  display:flex;align-items:center;gap:16px;
  padding:20px 20px 18px;
  background:linear-gradient(135deg,rgba(232,24,58,.12) 0%,rgba(201,164,78,.08) 60%,transparent 100%);
  border-bottom:1px solid var(--c-border2);
  position:relative;overflow:hidden;
}
.qres-header::after{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse at 100% 0%,rgba(201,164,78,.08),transparent 60%);
  pointer-events:none;
}
.qres-ava{
  flex-shrink:0;width:56px;height:56px;border-radius:50%;
  background:linear-gradient(135deg,rgba(232,24,58,.80),rgba(201,164,78,.70));
  display:flex;align-items:center;justify-content:center;
  font-size:26px;
  box-shadow:0 4px 16px rgba(232,24,58,.25);
}
.qres-emoji{font-size:48px} /* legacy compat */
.qres-title{font-family:var(--font-display);font-size:21px;font-weight:700;margin-bottom:3px;line-height:1.2}
.qres-sub{font-size:12.5px;color:var(--c-txt3);font-family:var(--font-ui)}
.qres-ai-badge{
  margin-left:auto;flex-shrink:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  width:52px;height:52px;border-radius:50%;
  background:rgba(34,197,94,.12);border:1.5px solid rgba(34,197,94,.30);
}
.qres-ai-pct{font-size:14px;font-weight:900;color:#22c55e;font-family:var(--font-ui);line-height:1}
.qres-ai-lbl{font-size:8.5px;color:rgba(34,197,94,.70);font-family:var(--font-ui);font-weight:700;text-align:center}
.qres-products{
  display:grid;grid-template-columns:repeat(3,1fr);gap:12px;
  padding:16px;
}
@media(max-width:540px){.qres-products{grid-template-columns:1fr 1fr}}
.qres-restart{font-size:13px;color:var(--c-txt3);background:none;border:none;cursor:pointer;text-decoration:underline;text-underline-offset:3px;font-family:var(--font-ui)}
/* Quiz result product overlay */
.qres-card-wrap{position:relative}
.qres-score{
  position:absolute;top:7px;right:7px;left:auto;z-index:2;
  padding:3px 8px;border-radius:var(--r-pill);
  background:rgba(34,197,94,.88);
  font-size:10px;font-weight:800;color:#fff;
  font-family:var(--font-ui);backdrop-filter:blur(4px);
}
.qres-reason{
  font-size:11px;color:var(--c-txt3);font-family:var(--font-ui);
  padding:0 10px 10px;line-height:1.4;
}

/* ════════════════════════════════════════
   OCCASIONS — Праздники и поводы
════════════════════════════════════════ */
.occ-wrap{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;
}
@media(max-width:600px){.occ-wrap{grid-template-columns:1fr 1fr}}
.occ-card{
  padding:18px 16px;border-radius:var(--r-lg);
  border:1px solid var(--c-border);background:var(--c-card);
  cursor:pointer;
  transition:transform .2s var(--ease),border-color .2s,box-shadow .2s;
  position:relative;overflow:hidden;
}
.occ-card::before{
  content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:var(--occ-color,var(--c-red));
  transform:scaleX(0);transform-origin:left;
  transition:transform .3s var(--ease);
}
.occ-card:hover{transform:translateY(-4px)}
.occ-card:hover::before{transform:scaleX(1)}
[data-theme="dark"] .occ-card:hover{box-shadow:0 10px 28px rgba(0,0,0,.35);border-color:rgba(255,255,255,.14)}
[data-theme="light"] .occ-card:hover{box-shadow:0 8px 22px rgba(0,0,0,.10)}
.occ-emoji{font-size:28px;margin-bottom:10px;display:block}
.occ-name{font-size:14px;font-weight:700;color:var(--c-txt);margin-bottom:4px}
.occ-date{font-size:12px;color:var(--c-txt3);margin-bottom:10px}
.occ-timer{
  display:inline-flex;align-items:center;gap:5px;
  font-size:11.5px;font-weight:700;
  padding:4px 8px;border-radius:var(--r-pill);
  background:rgba(232,24,58,.10);
  color:var(--c-red2);
  border:1px solid rgba(232,24,58,.20);
}
[data-theme="light"] .occ-timer{color:rgba(180,10,30,.85)}

/* ════════════════════════════════════════
   GALLERY — Наши работы
════════════════════════════════════════ */
.gallery-grid{
  columns:3 200px;gap:12px;
}
@media(max-width:600px){.gallery-grid{columns:2 140px}}
.gallery-item{
  break-inside:avoid;margin-bottom:12px;
  border-radius:var(--r-lg);overflow:hidden;
  position:relative;cursor:pointer;
  display:block;
}
.gallery-item img{
  width:100%;height:auto;display:block;
  transition:transform .45s var(--ease);
}
.gallery-item:hover img{transform:scale(1.06)}
.gallery-overlay{
  position:absolute;inset:0;
  background:linear-gradient(0deg,rgba(0,0,0,.60) 0%,transparent 60%);
  opacity:0;transition:opacity .25s;
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:12px;
}
.gallery-item:hover .gallery-overlay{opacity:1}
.gallery-like{
  position:absolute;top:8px;right:8px;
  width:32px;height:32px;border-radius:10px;
  background:rgba(0,0,0,.40);backdrop-filter:blur(8px);
  display:flex;align-items:center;justify-content:center;
  font-size:15px;cursor:pointer;
  transition:transform .2s var(--spring),background .15s;
}
.gallery-like:hover{transform:scale(1.2);background:rgba(232,24,58,.50)}
.gallery-like.liked{background:rgba(232,24,58,.70)}
/* Fav quick row (profile main tab) */
.fav-quick-row{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:var(--c-surface);border:1px solid var(--c-border);
  border-radius:var(--r-md);padding:11px 14px;margin-bottom:10px;
}
.fav-quick-info{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--c-txt)}
.fav-quick-info svg{flex-shrink:0}
#favMainBadge{
  background:var(--c-red);color:#fff;font-size:11px;font-weight:700;
  padding:1px 7px;border-radius:99px;min-width:20px;text-align:center;
  display:none;
}
@keyframes fav-pop{
  0%{transform:scale(1)}
  40%{transform:scale(1.4)}
  70%{transform:scale(.88)}
  100%{transform:scale(1)}
}
.fav-pop{animation:fav-pop .4s var(--spring)}
.gallery-price{
  font-size:12px;font-weight:700;color:#fff;
  background:rgba(232,24,58,.85);
  padding:3px 8px;border-radius:6px;
  display:inline-block;margin-bottom:4px;
}
.gallery-name{font-size:12.5px;color:rgba(255,255,255,.90);font-weight:600}

/* ════════════════════════════════════════
   STATS — Живые цифры
════════════════════════════════════════ */
.stats-row{
  display:grid;grid-template-columns:repeat(4,1fr);gap:12px;
}
@media(max-width:700px){.stats-row{grid-template-columns:1fr 1fr}}
@media(max-width:380px){.stats-row{grid-template-columns:1fr}}
.stat-card{
  padding:20px 16px;border-radius:var(--r-lg);
  border:1px solid var(--c-border);background:var(--c-card);
  text-align:center;
  transition:transform .2s var(--ease),box-shadow .2s;
}
.stat-card:hover{transform:translateY(-3px)}
[data-theme="dark"] .stat-card:hover{box-shadow:0 8px 24px rgba(0,0,0,.32)}
[data-theme="light"] .stat-card:hover{box-shadow:0 6px 18px rgba(0,0,0,.09)}
.stat-num{
  font-family:var(--font-display);font-size:clamp(28px,5vw,42px);
  font-weight:700;line-height:1;margin-bottom:6px;
  background:linear-gradient(135deg,var(--c-red),var(--c-gold));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  background-clip:text;
}
.stat-lbl{font-size:13px;color:var(--c-txt2)}
.stat-sub{font-size:11.5px;color:var(--c-txt3);margin-top:3px}

/* ════════════════════════════════════════
   CARE TIPS — Как ухаживать за букетом
════════════════════════════════════════ */
.tips-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:12px;
}
@media(max-width:860px){.tips-grid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.tips-grid{grid-template-columns:1fr}}
.tip-card{
  padding:18px;border-radius:var(--r-lg);
  border:1px solid var(--c-border);background:var(--c-card);
  cursor:pointer;
  transition:transform .2s var(--ease),box-shadow .2s;
}
.tip-card:hover{transform:translateY(-3px)}
[data-theme="dark"] .tip-card:hover{box-shadow:0 8px 24px rgba(0,0,0,.30)}
[data-theme="light"] .tip-card:hover{box-shadow:0 6px 18px rgba(0,0,0,.09)}
.tip-ico{
  font-size:28px;margin-bottom:12px;
  width:50px;height:50px;border-radius:14px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.05);border:1px solid var(--c-border);
}
[data-theme="light"] .tip-ico{background:rgba(0,0,0,.04)}
.tip-title{font-size:14px;font-weight:700;margin-bottom:6px;color:var(--c-txt)}
.tip-text{font-size:13px;color:var(--c-txt2);line-height:1.55}
.tip-exp{
  max-height:0;overflow:hidden;
  transition:max-height .35s var(--ease),margin .25s;
  font-size:13px;color:var(--c-txt2);line-height:1.6;
}
.tip-card.open .tip-exp{max-height:300px;margin-top:8px}
.tip-toggle{
  font-size:12px;color:var(--c-txt3);margin-top:8px;
  display:flex;align-items:center;gap:4px;background:none;border:none;cursor:pointer;
  padding:0;font-family:inherit;
}
.tip-toggle .tarr{transition:transform .3s var(--ease);display:inline-block}
.tip-card.open .tarr{transform:rotate(180deg)}

/* ════════════════════════════════════════
   REVIEW CAROUSEL
════════════════════════════════════════ */
.reviews-track-wrap{
  overflow:hidden;position:relative;
  margin:0 -4px;
}
.reviews-track{
  display:flex;gap:12px;
  transition:transform .45s var(--ease);
  padding:4px;
}
.review-card{
  flex:0 0 calc(33.333% - 8px);min-width:260px;
  padding:18px;border-radius:var(--r-lg);
  border:1px solid var(--c-border);background:var(--c-card);
}
@media(max-width:860px){.review-card{flex:0 0 calc(50% - 6px)}}
@media(max-width:540px){.review-card{flex:0 0 calc(90% - 6px)}}
[data-theme="dark"] .review-card{box-shadow:0 2px 10px rgba(0,0,0,.22)}
.rv-header{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.rv-avatar{
  width:38px;height:38px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:16px;font-weight:700;color:#fff;
  flex-shrink:0;
}
.rv-name{font-size:13.5px;font-weight:700;color:var(--c-txt)}
.rv-date{font-size:12px;color:var(--c-txt3)}
.rv-stars{color:var(--c-gold);font-size:13px;margin-bottom:8px}
.rv-text{font-size:13px;color:var(--c-txt2);line-height:1.6}
.rv-tag{
  display:inline-block;margin-top:10px;
  padding:4px 9px;border-radius:var(--r-pill);
  font-size:11.5px;font-weight:600;
  background:rgba(232,24,58,.08);
  border:1px solid rgba(232,24,58,.18);
  color:var(--c-red2);
}
[data-theme="light"] .rv-tag{color:rgba(180,10,30,.85)}
.reviews-nav{display:flex;gap:8px;align-items:center;justify-content:center;margin-top:16px}
.rv-dot{
  width:8px;height:8px;border-radius:var(--r-pill);
  background:var(--c-border);border:none;cursor:pointer;padding:0;
  transition:width .3s var(--spring),background .2s;
}
.rv-dot.on{width:22px;background:var(--c-red)}


/* ════════════════════════════════════════
   HOT STRIP — Горячая лента
════════════════════════════════════════ */
.hot-strip{
  overflow:hidden;position:relative;
  padding:4px 0;margin-bottom:0;
}
.hot-inner{
  display:flex;gap:10px;
  animation:hotScroll 30s linear infinite;
  width:max-content;
}
.hot-inner:hover{animation-play-state:paused}
@keyframes hotScroll{
  0%{transform:translateX(0)}
  100%{transform:translateX(-50%)}
}
.hot-pill{
  display:inline-flex;align-items:center;gap:7px;
  padding:8px 14px;border-radius:var(--r-pill);
  border:1px solid var(--c-border);
  background:var(--c-card);
  white-space:nowrap;cursor:pointer;flex-shrink:0;
  font-size:13px;font-weight:600;
  transition:border-color .2s,background .2s;
}
.hot-pill:hover{border-color:rgba(232,24,58,.35);background:rgba(232,24,58,.07)}
.hot-pill .hprice{color:var(--c-red2);font-weight:800;margin-left:4px}
.hot-pill .hdsc{
  font-size:11px;font-weight:700;
  background:var(--c-red);color:#fff;
  padding:2px 6px;border-radius:5px;
}

/* ════════════════════════════════════════
   HORIZONTAL SCROLL STRIP (категории)
════════════════════════════════════════ */
.hscroll-products{
  display:flex;gap:12px;
  overflow-x:auto;scrollbar-width:none;
  padding-bottom:4px;touch-action:pan-x;
}
.hscroll-products::-webkit-scrollbar{display:none}
.hscroll-products .pcard{
  flex:0 0 200px;min-width:200px;
}
@media(max-width:640px){
  .hscroll-products .pcard{flex:0 0 160px;min-width:160px}
}

/* ════════════════════════════════════════
   LOYALTY — Накопительная программа
════════════════════════════════════════ */
.loyalty-hero{
  border-radius:var(--r-xl);
  overflow:hidden;
  position:relative;
}
[data-theme="dark"] .loyalty-hero{
  background:linear-gradient(135deg,rgba(201,164,78,.18) 0%,rgba(232,24,58,.12) 50%,rgba(14,14,18,.80) 100%);
  border:1px solid rgba(201,164,78,.22);
  box-shadow:0 4px 24px rgba(201,164,78,.12);
}
[data-theme="light"] .loyalty-hero{
  background:linear-gradient(135deg,rgba(201,164,78,.10) 0%,rgba(232,24,58,.07) 50%,rgba(250,248,245,.80) 100%);
  border:1px solid rgba(201,164,78,.20);
}
.loyalty-inner{
  padding:32px;
  display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:center;
}
@media(max-width:760px){.loyalty-inner{grid-template-columns:1fr;gap:18px;padding:22px 18px}}
.loyalty-badge{
  display:inline-flex;align-items:center;gap:8px;
  padding:6px 12px;border-radius:var(--r-pill);
  background:rgba(201,164,78,.15);border:1px solid rgba(201,164,78,.30);
  color:var(--c-gold2);font-size:12.5px;font-weight:700;
  margin-bottom:12px;
}
.loyalty-title{
  font-family:var(--font-display);
  font-size:clamp(26px,4vw,38px);
  font-weight:600;line-height:1.1;
  margin-bottom:10px;
}
.loyalty-title span{color:var(--c-gold2)}
.loyalty-sub{font-size:14px;color:var(--c-txt2);line-height:1.6;margin-bottom:18px;max-width:440px}
.loyalty-btns{display:flex;gap:9px;flex-wrap:wrap}
.btn-loyalty{
  height:46px;padding:0 20px;border-radius:14px;
  background:linear-gradient(135deg,rgba(201,164,78,.90),rgba(232,24,58,.80));
  color:#fff;font-size:14px;font-weight:700;border:none;cursor:pointer;
  box-shadow:0 4px 18px rgba(201,164,78,.30);
  transition:transform .18s var(--spring),box-shadow .18s;
}
.btn-loyalty:hover{transform:translateY(-2px) scale(1.03);box-shadow:0 8px 24px rgba(201,164,78,.40)}
.btn-loyalty:active{transform:scale(.97)}

/* Levels */
.loyalty-levels{display:flex;flex-direction:column;gap:10px}
.loyalty-level{
  padding:14px 16px;border-radius:var(--r-md);
  display:flex;align-items:center;gap:14px;
  border:1px solid var(--c-border);
  background:rgba(255,255,255,.04);
  transition:transform .2s var(--ease),border-color .2s;
}
[data-theme="light"] .loyalty-level{background:rgba(0,0,0,.03)}
.loyalty-level:hover{transform:translateX(4px)}
.ll-icon{
  width:42px;height:42px;border-radius:13px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:20px;
  border:1px solid var(--c-border);
}
.ll-info{min-width:0}
.ll-name{font-size:14px;font-weight:800;margin-bottom:2px}
.ll-desc{font-size:12px;color:var(--c-txt3)}
.ll-bonus{
  margin-left:auto;flex-shrink:0;
  font-size:13px;font-weight:800;
  padding:4px 10px;border-radius:var(--r-pill);
}
.ll-bonus.bronze{background:rgba(180,120,60,.15);color:#c8894a;border:1px solid rgba(180,120,60,.25)}
.ll-bonus.silver{background:rgba(150,150,160,.15);color:#9ca3b0;border:1px solid rgba(150,150,160,.25)}
.ll-bonus.gold{background:rgba(201,164,78,.15);color:var(--c-gold2);border:1px solid rgba(201,164,78,.28)}
.ll-bonus.diamond{background:rgba(130,80,240,.15);color:#a78bfa;border:1px solid rgba(130,80,240,.22)}

/* Demo loyalty card */
.loyalty-card-demo{
  border-radius:var(--r-lg);overflow:hidden;
  background:linear-gradient(135deg,#1a1006,#2d1f08);
  border:1px solid rgba(201,164,78,.25);
  padding:18px;
  box-shadow:0 8px 32px rgba(0,0,0,.30), inset 0 1px 0 rgba(201,164,78,.15);
  position:relative;
  max-width:340px;
}
[data-theme="light"] .loyalty-card-demo{
  background:linear-gradient(135deg,#fff8e8,#fff0cc);
  box-shadow:0 6px 24px rgba(201,164,78,.20);
}
.loyalty-card-demo::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse 280px 200px at 85% 10%,rgba(201,164,78,.15),transparent);
  pointer-events:none;
}
.lc-logo{display:flex;align-items:center;gap:8px;margin-bottom:16px}
.lc-logo b{font-size:13px;font-weight:800;letter-spacing:-.01em;color:var(--c-gold2)}
.lc-logo span{font-size:11px;color:rgba(201,164,78,.60)}
.lc-name{font-size:18px;font-weight:800;margin-bottom:2px;color:var(--c-txt)}
.lc-level{
  display:inline-flex;align-items:center;gap:5px;
  font-size:11.5px;font-weight:700;
  padding:3px 9px;border-radius:var(--r-pill);
  background:rgba(201,164,78,.18);color:var(--c-gold2);
  border:1px solid rgba(201,164,78,.28);margin-bottom:14px;
}
.lc-points{
  display:flex;align-items:baseline;gap:6px;margin-bottom:4px;
}
.lc-points .big{font-size:32px;font-weight:800;color:var(--c-gold2);line-height:1}
.lc-points .lbl{font-size:13px;color:var(--c-txt2)}
.lc-prog{height:6px;border-radius:var(--r-pill);background:rgba(255,255,255,.10);overflow:hidden;margin-bottom:6px}
[data-theme="light"] .lc-prog{background:rgba(0,0,0,.10)}
.lc-prog-fill{height:100%;border-radius:var(--r-pill);background:linear-gradient(90deg,var(--c-gold),var(--c-red));width:40%}
.lc-prog-lbl{display:flex;justify-content:space-between;font-size:11px;color:var(--c-txt3)}

/* Points info row */
.pts-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.pts-chip{
  display:flex;align-items:center;gap:6px;
  padding:8px 12px;border-radius:var(--r-sm);
  border:1px solid var(--c-border);background:rgba(255,255,255,.04);
  font-size:12.5px;color:var(--c-txt2);
}
[data-theme="light"] .pts-chip{background:rgba(0,0,0,.03)}
.pts-chip b{color:var(--c-gold2);font-weight:800;font-size:14px}

/* Modal — Register / Loyalty info */
.loyalty-modal{
  position:fixed;inset:0;z-index:600;
  background:var(--c-overlay);
  display:none;padding:14px;overflow-y:auto;
}
.loyalty-modal.open{display:flex;align-items:flex-start;justify-content:center;animation:fadeOverlay .25s ease both}
.loyalty-box{
  width:min(600px,100%);margin:auto;
  border-radius:var(--r-xl);border:1px solid var(--c-border);
  background:var(--c-surface);overflow:hidden;
  animation:modalIn .3s var(--ease) both;
}
.loyalty-box-head{
  padding:20px;display:flex;align-items:center;justify-content:space-between;
  border-bottom:1px solid var(--c-border);
  background:linear-gradient(135deg,rgba(201,164,78,.12),rgba(232,24,58,.07));
}
.loyalty-box-head h3{font-size:20px;font-weight:800}
.loyalty-box-body{padding:20px}
.reg-form{display:flex;flex-direction:column;gap:12px}
.reg-input{
  width:100%;padding:12px 14px;border-radius:var(--r-md);
  border:1px solid var(--c-border);background:rgba(255,255,255,.04);
  color:var(--c-txt);font-size:14px;outline:none;
  transition:border-color .2s,box-shadow .2s;
}
[data-theme="light"] .reg-input{background:rgba(0,0,0,.03)}
.reg-input:focus{border-color:rgba(201,164,78,.45);box-shadow:0 0 0 3px rgba(201,164,78,.12)}
.reg-input::placeholder{color:var(--c-txt3)}
.welcome-bonus{
  padding:12px 14px;border-radius:var(--r-sm);
  border:1px solid rgba(201,164,78,.25);
  background:rgba(201,164,78,.08);
  display:flex;align-items:center;gap:10px;
  font-size:13px;color:var(--c-txt2);
}
.welcome-bonus b{color:var(--c-gold2);font-size:16px}


/* ════════════════════════════════════════
   TYPOGRAPHY OVERHAUL — Montserrat first
════════════════════════════════════════ */
body{ font-family:"Montserrat","Manrope",system-ui,sans-serif !important }
h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4{font-family:"Montserrat","Manrope",system-ui,sans-serif}
.btn,.chip,.tag,.nav-btn,.ctab,.cnav-btn,.csub-btn,.fpill,.fpreset,.qopt-txt b,
.sort-pill,.co-field label,.reg-input,.co-input,.dlv-input{
  font-family:"Montserrat","Manrope",system-ui,sans-serif;
}

/* Section heading — bigger, distinct */
.sec-head{margin-bottom:22px}
.sec-head h2{
  font-family:"Montserrat","Manrope",system-ui,sans-serif !important;
  font-size:clamp(22px,3.5vw,32px) !important;
  font-weight:800 !important;
  line-height:1.08 !important;
  letter-spacing:-.03em !important;
  -webkit-text-fill-color:var(--c-txt) !important;
  background:none !important;
  color:var(--c-txt) !important;
}
.sec-head h2 em{font-style:italic;color:var(--c-red2)}
.sec-head p{font-size:13.5px;color:var(--c-txt3);margin-top:5px;font-weight:500}

/* Section label accent line */
.sec-label{
  display:inline-flex;align-items:center;gap:8px;
  font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--c-txt3);margin-bottom:8px;
}
.sec-label::before{
  content:"";display:block;width:20px;height:2px;
  background:var(--c-red);border-radius:2px;
}

/* Hero h1 — keep display font */
.slide h1{font-family:var(--font-display) !important;font-weight:600 !important}
.loyalty-title{font-family:"Montserrat","Manrope",sans-serif !important;font-weight:800 !important}

/* Card names bigger */
.pcard-name{font-size:14px !important;font-weight:700 !important}
@media(max-width:480px){.pcard-name{font-size:13px !important}}

/* h3 headings */
.info-block h3,.co-head h3,.drawer-head h3,.filt-head h3{
  font-family:"Montserrat","Manrope",sans-serif !important;
  font-weight:800 !important;
  letter-spacing:-.02em;
}


/* ── Home strips: grid instead of carousel ── */
.home-grid-12{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
}
@media(max-width:1100px){.home-grid-12{grid-template-columns:repeat(3,1fr)}}
@media(max-width:780px) {.home-grid-12{grid-template-columns:repeat(2,1fr);gap:12px}}


/* ════════════════════════════════════════
   PROFILE PAGE
════════════════════════════════════════ */
.profile-layout{display:flex;flex-direction:column;gap:14px;max-width:900px;margin:0 auto}

/* Profile tabs */
.profile-tabs-nav{display:flex;gap:6px;flex-wrap:wrap;padding:2px 0 4px}
.ptab{
  padding:8px 16px;border-radius:var(--r-pill);font-size:13px;font-weight:700;
  background:rgba(255,255,255,.05);border:1px solid var(--c-border);
  color:var(--c-txt3);cursor:pointer;transition:all .18s;white-space:nowrap;
}
[data-theme="light"] .ptab{background:rgba(0,0,0,.04)}
.ptab:hover{background:rgba(255,255,255,.10);color:var(--c-txt)}
[data-theme="light"] .ptab:hover{background:rgba(0,0,0,.08)}
.ptab.active{
  background:linear-gradient(135deg,rgba(232,24,58,.18),rgba(201,164,78,.18));
  border-color:rgba(201,164,78,.40);color:var(--c-txt);
}
.ptab-pane{display:none;flex-direction:column;gap:14px}
.ptab-pane.active{display:flex}

/* Profile stats row */
.prof-stats-row{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.prof-stat-card{
  border-radius:var(--r-md);padding:14px 16px;
  background:var(--c-card);border:1px solid var(--c-border);
  display:flex;align-items:center;gap:12px;
}
.prof-stat-ico{font-size:24px;flex-shrink:0}
.prof-stat-val{font-size:22px;font-weight:900;font-family:"Montserrat",sans-serif;
  background:linear-gradient(135deg,var(--c-gold),var(--c-red));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1}
.prof-stat-label{font-size:12px;color:var(--c-txt3);margin-top:2px}

/* Profile reminders */
.prof-reminders{display:flex;flex-direction:column;gap:8px}
.prof-reminder{
  display:flex;align-items:center;gap:10px;
  padding:10px 14px;border-radius:var(--r-md);
  background:rgba(245,158,11,.08);border:1px solid rgba(245,158,11,.22);
  font-size:13px;cursor:pointer;transition:background .15s;
}
.prof-reminder:hover{background:rgba(245,158,11,.14)}
.prof-reminder.rem-success{background:rgba(34,197,94,.07);border-color:rgba(34,197,94,.20)}
.prof-reminder-ico{font-size:18px;flex-shrink:0}
.prof-reminder-text{flex:1}
.prof-reminder-text b{display:block;font-weight:700;color:var(--c-txt)}
.prof-reminder-text span{font-size:12px;color:var(--c-txt3)}
.prof-reminder-arrow{color:var(--c-txt3);font-size:14px;flex-shrink:0}

/* ── Order tracking stepper ── */
.order-track{
  display:none;flex-direction:column;gap:0;
  margin-top:10px;padding:10px 0 4px;
  border-top:1px solid var(--c-border);
}
.order-track.open{display:flex}
.ot-steps{display:flex;align-items:flex-start;gap:0;position:relative;padding:0 4px}
.ot-step{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;position:relative}
.ot-step-ico{
  width:32px;height:32px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:14px;
  background:var(--c-bg2);border:2px solid var(--c-border);
  position:relative;z-index:1;transition:all .3s;flex-shrink:0;
}
.ot-step.done .ot-step-ico{background:rgba(34,197,94,.15);border-color:#22c55e}
.ot-step.active .ot-step-ico{background:rgba(201,164,78,.20);border-color:var(--c-gold2);box-shadow:0 0 0 3px rgba(201,164,78,.15)}
.ot-step-lbl{font-size:10px;color:var(--c-txt3);text-align:center;line-height:1.2;padding:0 2px}
.ot-step.done .ot-step-lbl,.ot-step.active .ot-step-lbl{color:var(--c-txt2)}
.ot-line{position:absolute;top:15px;left:50%;right:-50%;height:2px;background:var(--c-border);z-index:0}
.ot-step.done .ot-line{background:#22c55e}
.ot-step:last-child .ot-line{display:none}
.ot-eta{font-size:12px;color:var(--c-gold2);font-weight:600;text-align:center;margin-top:8px}

/* ── QR modal ── */
.qr-modal-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:3000;
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;transition:opacity .2s;
}
.qr-modal-overlay.show{opacity:1;pointer-events:all}
.qr-modal-box{
  background:var(--c-card);border-radius:var(--r-xl);padding:28px 24px 24px;
  max-width:320px;width:90%;text-align:center;
  border:1px solid var(--c-border);
  transform:scale(.92);transition:transform .22s var(--ease);
}
.qr-modal-overlay.show .qr-modal-box{transform:scale(1)}
.qr-modal-title{font-size:17px;font-weight:800;margin-bottom:4px}
.qr-modal-sub{font-size:12.5px;color:var(--c-txt3);margin-bottom:16px}
.qr-modal-img{
  width:180px;height:180px;border-radius:var(--r-md);margin:0 auto 12px;
  background:white;display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.qr-modal-img img{width:100%;height:100%}
.qr-modal-id{font-size:11px;color:var(--c-txt3);letter-spacing:.04em;margin-bottom:16px}

/* ── Kiosk tips ── */
.kom-tips{padding:10px 16px 0}
.kom-tips-lbl{font-size:12px;color:var(--c-txt3);font-weight:600;margin-bottom:6px}
.kom-tips-row{display:flex;gap:6px;flex-wrap:wrap}
.kom-tip-btn{
  flex:1;min-width:48px;padding:7px 4px;border-radius:var(--r-sm);font-size:13px;font-weight:700;
  background:rgba(255,255,255,.05);border:1px solid var(--c-border);
  color:var(--c-txt2);cursor:pointer;transition:all .15s;text-align:center;
}
.kom-tip-btn.active{background:rgba(201,164,78,.18);border-color:var(--c-gold2);color:var(--c-txt)}
[data-theme="light"] .kom-tip-btn{background:rgba(0,0,0,.04)}

/* ── Confetti ── */
.confetti-canvas{position:fixed;inset:0;pointer-events:none;z-index:9999}

/* ── Fav coffee ── */
.com-fav-btn{
  display:flex;align-items:center;gap:6px;
  padding:7px 13px;border-radius:var(--r-pill);font-size:12px;font-weight:700;
  background:rgba(255,255,255,.05);border:1px solid var(--c-border);color:var(--c-txt3);
  cursor:pointer;transition:all .15s;margin-top:6px;width:100%;justify-content:center;
}
.com-fav-btn.saved{background:rgba(201,164,78,.15);border-color:var(--c-gold2);color:var(--c-gold2)}
[data-theme="light"] .com-fav-btn{background:rgba(0,0,0,.04)}

/* Hero card */
.profile-hero{
  border-radius:var(--r-xl);overflow:hidden;
  background:linear-gradient(135deg,rgba(232,24,58,.12),rgba(201,164,78,.10),rgba(14,14,18,.80));
  border:1px solid rgba(201,164,78,.20);
  padding:24px;
  display:flex;align-items:center;gap:18px;
  position:relative;
}
[data-theme="light"] .profile-hero{background:linear-gradient(135deg,rgba(232,24,58,.06),rgba(201,164,78,.07),rgba(250,248,245,.80))}
.profile-avatar{
  width:64px;height:64px;border-radius:20px;flex-shrink:0;
  background:linear-gradient(135deg,var(--c-red),var(--c-gold));
  display:flex;align-items:center;justify-content:center;
  font-size:28px;font-weight:800;color:#fff;
  box-shadow:0 4px 16px rgba(232,24,58,.30);
  font-family:"Montserrat",sans-serif;
}
.profile-hero-info{flex:1;min-width:0}
.ph-name{font-size:20px;font-weight:800;margin-bottom:3px;letter-spacing:-.02em}
.ph-level{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:700;
  padding:4px 10px;border-radius:var(--r-pill);
  background:rgba(201,164,78,.15);color:var(--c-gold2);border:1px solid rgba(201,164,78,.25);margin-bottom:10px}
.ph-stats{display:flex;gap:16px;flex-wrap:wrap}
.ph-stat{text-align:left}
.ph-stat b{display:block;font-size:18px;font-weight:800;color:var(--c-txt);line-height:1}
.ph-stat span{font-size:11.5px;color:var(--c-txt3)}
.profile-edit-btn{position:absolute;top:16px;right:16px}

/* Points card */
.points-card{
  border-radius:var(--r-xl);padding:20px;
  background:var(--c-card);border:1px solid var(--c-border);
}
[data-theme="dark"] .points-card{box-shadow:0 2px 12px rgba(0,0,0,.22)}
.pc-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.pc-points{font-family:"Montserrat",sans-serif;font-size:40px;font-weight:900;
  background:linear-gradient(135deg,var(--c-gold),var(--c-red));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1}
.pc-label{font-size:13px;color:var(--c-txt3);margin-top:3px}
.pc-next{text-align:right}
.pc-next b{display:block;font-size:15px;font-weight:800;color:var(--c-txt)}
.pc-next span{font-size:12px;color:var(--c-txt3)}
.pc-progress{height:8px;border-radius:var(--r-pill);background:var(--c-border);overflow:hidden;margin-bottom:8px}
.pc-prog-fill{height:100%;border-radius:var(--r-pill);
  background:linear-gradient(90deg,var(--c-gold),var(--c-red));
  transition:width .8s var(--ease)}
.pc-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}
.pc-step{
  padding:10px 8px;border-radius:var(--r-sm);border:1px solid var(--c-border);
  background:rgba(255,255,255,.03);text-align:center;
}
[data-theme="light"] .pc-step{background:rgba(0,0,0,.025)}
.pc-step.current{border-color:rgba(201,164,78,.35);background:rgba(201,164,78,.08)}
.pc-step .step-ico{font-size:18px;margin-bottom:4px}
.pc-step b{display:block;font-size:12.5px;font-weight:800;color:var(--c-txt)}
.pc-step span{font-size:11px;color:var(--c-txt3)}

/* Orders */
.orders-list{display:flex;flex-direction:column;gap:7px}
.order-card{
  padding:10px 14px;border-radius:var(--r-md);
  border:1px solid var(--c-border);background:rgba(255,255,255,.03);
  display:flex;flex-direction:column;gap:5px;
  cursor:pointer;transition:background .15s,border-color .15s;
}
.order-card-row{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;min-width:0}
[data-theme="light"] .order-card{background:rgba(0,0,0,.025)}
.order-card:hover{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14)}
[data-theme="light"] .order-card:hover{background:rgba(0,0,0,.05);border-color:rgba(0,0,0,.14)}
/* Верхняя строка: номер + название + цена + иконка оплаты */
.order-num{font-size:12px;font-weight:800;color:var(--c-txt3);flex-shrink:0}
.order-name{font-size:13px;font-weight:600;color:var(--c-txt);flex:1;min-width:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.order-price{font-size:13px;font-weight:800;color:var(--c-txt);flex-shrink:0}
/* Нижняя строка: статус + дата + баллы */
.order-card-bot{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.order-pts{font-size:11px;font-weight:700;color:var(--c-gold2);flex-shrink:0}
.order-status{
  padding:2px 8px;border-radius:var(--r-pill);font-size:11px;font-weight:700;
  flex-shrink:0;
}
.status-done{background:rgba(34,197,94,.12);color:#22c55e;border:1px solid rgba(34,197,94,.22)}
.status-process{background:rgba(201,164,78,.12);color:var(--c-gold2);border:1px solid rgba(201,164,78,.22)}
.status-new{background:rgba(232,24,58,.10);color:var(--c-red2);border:1px solid rgba(232,24,58,.20)}
.order-date{font-size:11px;color:var(--c-txt3);flex-shrink:0}
.order-pay-ico{font-size:13px;flex-shrink:0}

/* Profile prefs */
.pref-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:500px){.pref-grid{grid-template-columns:1fr}}
.pref-item{
  padding:12px 14px;border-radius:var(--r-md);
  border:1px solid var(--c-border);background:rgba(255,255,255,.03);
  display:flex;align-items:center;gap:10px;
}
[data-theme="light"] .pref-item{background:rgba(0,0,0,.025)}
.pref-ico{font-size:20px;flex-shrink:0}
.pref-info{min-width:0}
.pref-info b{display:block;font-size:13px;font-weight:700}
.pref-info span{font-size:12px;color:var(--c-txt3)}
.pref-edit{margin-left:auto;flex-shrink:0}

/* Coupons */
.coupon-list{display:flex;flex-direction:column;gap:8px}
.coupon{
  padding:14px 16px;border-radius:var(--r-md);
  border:1px dashed rgba(201,164,78,.35);
  background:rgba(201,164,78,.06);
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
}
.coupon-code{
  font-family:"Montserrat",sans-serif;font-size:16px;font-weight:900;
  letter-spacing:.08em;color:var(--c-gold2);
  padding:5px 12px;border-radius:8px;
  background:rgba(201,164,78,.12);border:1px solid rgba(201,164,78,.25);
  cursor:pointer;user-select:all;
  transition:background .15s;
}
.coupon-code:hover{background:rgba(201,164,78,.22)}
.coupon-desc{font-size:13px;color:var(--c-txt2);flex:1}
.coupon-exp{font-size:12px;color:var(--c-txt3);flex-shrink:0}

/* ── Subscription in Profile ── */
.sub-status-pill{
  display:inline-flex;align-items:center;gap:5px;
  padding:3px 10px;border-radius:var(--r-pill);
  font-size:11px;font-weight:700;flex-shrink:0;
}
.sub-status-active{background:rgba(46,160,67,.14);color:#2ea043;border:1px solid rgba(46,160,67,.28)}
.sub-status-paused{background:rgba(201,164,78,.14);color:var(--c-gold2);border:1px solid rgba(201,164,78,.28)}
.sub-status-none{background:rgba(255,255,255,.06);color:var(--c-txt3);border:1px solid var(--c-border)}

.sub-prof-plan{
  display:flex;align-items:center;gap:12px;
  padding:14px;border-radius:var(--r-md);
  background:linear-gradient(135deg,rgba(46,160,67,.07),rgba(201,164,78,.05));
  border:1px solid rgba(46,160,67,.18);
  margin-bottom:14px;
}
.sub-prof-plan.paused{
  background:linear-gradient(135deg,rgba(201,164,78,.07),rgba(46,160,67,.03));
  border-color:rgba(201,164,78,.22);
}
.sub-plan-ico{font-size:28px;line-height:1;flex-shrink:0}
.sub-plan-body{flex:1;min-width:0}
.sub-plan-name{font-size:15px;font-weight:800;color:var(--c-txt)}
.sub-plan-freq{font-size:12px;color:var(--c-txt3);margin-top:2px}
.sub-plan-price{font-size:13px;font-weight:700;color:var(--c-gold2);white-space:nowrap;text-align:right}
.sub-plan-per{font-size:11px;color:var(--c-txt3);font-weight:400;display:block}

.sub-next-box{
  border:1px solid var(--c-border);border-radius:var(--r-md);
  padding:12px 14px;margin-bottom:12px;
  background:rgba(255,255,255,.02);
}
.sub-next-label{font-size:11px;font-weight:700;color:var(--c-txt3);
  text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}
.sub-next-date{font-size:17px;font-weight:800;color:var(--c-txt);margin-bottom:5px}
.sub-next-meta{font-size:12px;color:var(--c-txt2);display:flex;gap:14px;flex-wrap:wrap}
.sub-next-meta span{display:flex;align-items:center;gap:4px}
.sub-countdown{
  display:inline-flex;align-items:center;
  padding:2px 8px;border-radius:var(--r-pill);
  background:rgba(46,160,67,.12);color:#2ea043;
  font-size:11.5px;font-weight:700;margin-left:8px;
}
.sub-pause-box{
  padding:12px 14px;border-radius:var(--r-md);
  background:rgba(201,164,78,.07);border:1px solid rgba(201,164,78,.22);
  margin-bottom:12px;font-size:13px;color:var(--c-txt2);
}
.sub-pause-until{font-size:15px;font-weight:800;color:var(--c-gold2);margin-top:4px}

.sub-section-label{
  font-size:11px;font-weight:700;color:var(--c-txt3);
  text-transform:uppercase;letter-spacing:.05em;
  margin:12px 0 7px;
}
.sub-timeline{display:flex;flex-direction:column;gap:5px}
.sub-tl-item{
  display:grid;grid-template-columns:18px 1fr auto;
  align-items:center;gap:8px;
  padding:8px 10px;border-radius:var(--r-sm);
  border:1px solid var(--c-border);background:rgba(255,255,255,.02);
}
.sub-tl-dot{
  width:8px;height:8px;border-radius:50%;
  background:rgba(46,160,67,.65);margin:0 auto;flex-shrink:0;
}
.sub-tl-dot.upcoming{background:rgba(201,164,78,.70)}
.sub-tl-name{font-size:13px;font-weight:600;color:var(--c-txt);line-height:1.3}
.sub-tl-date{font-size:11px;color:var(--c-txt3);margin-top:1px}
.sub-tl-badge{
  font-size:10.5px;font-weight:700;padding:2px 7px;
  border-radius:var(--r-pill);white-space:nowrap;
}
.sub-tl-badge.done{background:rgba(46,160,67,.12);color:#2ea043}
.sub-tl-badge.upcoming{background:rgba(201,164,78,.12);color:var(--c-gold2)}
.sub-tl-badge.skipped{background:rgba(255,255,255,.06);color:var(--c-txt3)}

.sub-prefs-list{display:flex;flex-direction:column;gap:5px;margin-bottom:4px}
.sub-pref-row{
  display:flex;align-items:center;gap:8px;
  padding:8px 10px;border-radius:var(--r-sm);
  border:1px solid var(--c-border);background:rgba(255,255,255,.02);
}
.sub-pref-ico{font-size:14px;width:18px;text-align:center;flex-shrink:0}
.sub-pref-key{font-size:11px;color:var(--c-txt3);font-weight:600;width:60px;flex-shrink:0}
.sub-pref-val{font-size:12.5px;color:var(--c-txt2);flex:1;min-width:0}

.sub-action-row{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}

/* Sub payment block */
.sub-pay-block{border-radius:var(--r-md);border:1.5px solid rgba(232,24,58,.25);background:rgba(232,24,58,.04);padding:14px;margin-bottom:12px}
[data-theme="light"] .sub-pay-block{background:rgba(232,24,58,.03)}
.sub-pay-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.sub-pay-title{font-size:14px;font-weight:800;color:var(--c-txt)}
.sub-pay-timer{display:flex;align-items:center;gap:5px;font-size:13px;font-weight:700;color:var(--c-red2)}
.sub-pay-timer.warning{color:#ef4444;animation:pulse .8s ease-in-out infinite}
.sub-pay-amount{font-size:22px;font-weight:800;color:var(--c-txt);margin-bottom:4px}
.sub-pay-hint{font-size:12px;color:var(--c-txt3);margin-bottom:12px}
.sub-pay-points-row{display:flex;align-items:center;gap:8px;margin-bottom:10px;padding:10px 12px;border-radius:var(--r-sm);border:1px solid var(--c-border);background:rgba(255,255,255,.03)}
.sub-pay-pts-label{font-size:13px;flex:1}
.sub-pay-btns{display:flex;gap:8px;flex-wrap:wrap}

.sub-no-block{
  text-align:center;padding:18px 0 6px;
}
.sub-no-ico{font-size:42px;display:block;margin-bottom:8px}
.sub-no-title{font-size:16px;font-weight:800;margin-bottom:5px}
.sub-no-desc{font-size:13px;color:var(--c-txt2);line-height:1.55;margin-bottom:14px;max-width:320px;margin-inline:auto}
.sub-mini-plans{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.sub-mini-plan{
  display:flex;align-items:center;gap:10px;
  padding:10px 12px;border-radius:var(--r-md);
  border:1px solid var(--c-border);background:rgba(255,255,255,.02);
  cursor:pointer;transition:border-color .15s,background .15s;
  text-align:left;width:100%;
}
.sub-mini-plan:hover,.sub-mini-plan:focus{
  border-color:rgba(46,160,67,.35);background:rgba(46,160,67,.05);
}
.sub-mini-plan.popular{border-color:rgba(232,24,58,.25)}
.sub-mini-ico{font-size:22px;flex-shrink:0}
.sub-mini-info{flex:1;min-width:0}
.sub-mini-name{font-size:13px;font-weight:700;color:var(--c-txt)}
.sub-mini-freq{font-size:11px;color:var(--c-txt3)}
.sub-mini-right{text-align:right;flex-shrink:0}
.sub-mini-price{font-size:13px;font-weight:800;color:var(--c-txt)}
.sub-mini-per{font-size:10.5px;color:var(--c-txt3)}
.sub-hot{
  font-size:10px;font-weight:800;padding:2px 6px;
  border-radius:var(--r-pill);background:rgba(232,24,58,.15);
  color:var(--c-red2);margin-left:5px;vertical-align:middle;
}
.sub-streak-bar{
  display:flex;align-items:center;gap:8px;
  padding:9px 12px;border-radius:var(--r-md);
  background:rgba(46,160,67,.06);border:1px solid rgba(46,160,67,.15);
  margin-bottom:10px;
}
.sub-streak-ico{font-size:18px;flex-shrink:0}
.sub-streak-text{font-size:13px;font-weight:600;color:var(--c-txt2);flex:1}
.sub-streak-badge{
  font-size:10.5px;font-weight:700;padding:2px 7px;
  border-radius:var(--r-pill);
  background:rgba(201,164,78,.14);color:var(--c-gold2);
  border:1px solid rgba(201,164,78,.25);white-space:nowrap;
}
.sub-next-progress{
  height:3px;border-radius:2px;
  background:rgba(255,255,255,.07);
  overflow:hidden;margin:8px 0 6px;
}
.sub-next-progress-bar{
  height:100%;border-radius:2px;
  background:linear-gradient(90deg,rgba(46,160,67,.6),rgba(46,160,67,1));
  transition:width .4s ease;
}
.sub-form-plan-badge{
  display:flex;align-items:center;gap:12px;
  padding:12px 14px;border-radius:var(--r-md);
  background:linear-gradient(135deg,rgba(46,160,67,.07),rgba(201,164,78,.05));
  border:1px solid rgba(46,160,67,.18);
  margin-bottom:14px;
}

/* ── Мои получатели ── */
.recip-card{
  display:flex;align-items:center;gap:11px;
  padding:11px 12px;border-radius:var(--r-md);
  border:1px solid var(--c-border);
  background:rgba(255,255,255,.02);
  transition:border-color .15s;
}
.recip-card:hover{border-color:rgba(232,24,58,.25)}
.recip-avatar{
  width:38px;height:38px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,var(--c-red),var(--c-red2));
  display:flex;align-items:center;justify-content:center;
  font-size:16px;font-weight:800;color:#fff;
}
.recip-info{flex:1;min-width:0}
.recip-name{font-size:14px;font-weight:700;color:var(--c-txt)}
.recip-phone{font-size:12px;color:var(--c-txt3);margin-top:1px}
.recip-addr{font-size:11.5px;color:var(--c-txt3);margin-top:2px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.recip-actions{display:flex;gap:4px;flex-shrink:0}
.recip-btn{
  width:30px;height:30px;border-radius:var(--r-sm);
  border:1px solid var(--c-border);background:transparent;
  cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;
  transition:background .12s;
}
.recip-btn:hover{background:rgba(255,255,255,.06)}
.recip-btn.danger:hover{background:rgba(232,24,58,.12);border-color:rgba(232,24,58,.3)}

/* ── Kiosk Promo Card (always dark, coffee vibe) ── */
.kiosk-promo-card{
  border-radius:var(--r-xl);overflow:hidden;position:relative;
  background:linear-gradient(135deg,#1e0d04 0%,#2e1508 60%,#1a0b03 100%);
  border:1px solid rgba(201,164,78,.28);
  box-shadow:0 6px 40px rgba(0,0,0,.22);
}
[data-theme="light"] .kiosk-promo-card{
  box-shadow:0 8px 48px rgba(0,0,0,.32),0 2px 12px rgba(0,0,0,.18);
  border-color:rgba(201,164,78,.40);
}
/* Force light text inside — regardless of theme */
.kiosk-promo-card h2{
  color:#fff!important;
  text-shadow:0 1px 10px rgba(0,0,0,.45);
}
.kiosk-promo-desc{color:rgba(255,255,255,.64)!important}
/* Chips inside always look good on dark bg */
.kiosk-promo-card .chip{
  background:rgba(255,255,255,.10)!important;
  border-color:rgba(255,255,255,.20)!important;
  color:rgba(255,255,255,.82)!important;
}
.kiosk-promo-card .chip-gold{
  background:rgba(201,164,78,.20)!important;
  border-color:rgba(201,164,78,.38)!important;
  color:#e8c86a!important;
}
/* "10-я бесплатно" label */
.kiosk-promo-badge{
  font-size:11px;font-weight:700;
  color:#e8c86a;text-align:center;line-height:1.35;
}

/* Not logged in state */
.profile-guest{padding:32px;text-align:center}
.profile-guest .emoji{font-size:52px;margin-bottom:14px}
.profile-guest h3{font-size:20px;font-weight:800;margin-bottom:8px}
.profile-guest p{font-size:14px;color:var(--c-txt2);margin-bottom:20px;line-height:1.6;max-width:380px;margin-inline:auto}


/* ════════════════════════════════════════
   DEMO LOGIN MODAL
════════════════════════════════════════ */
.demo-login-modal{
  position:fixed;inset:0;z-index:700;
  background:rgba(0,0,0,.65);
  backdrop-filter:blur(10px);
  display:none;padding:14px;overflow-y:auto;
}
.demo-login-modal.open{display:flex;align-items:center;justify-content:center;animation:fadeOverlay .25s ease both}
.demo-login-box{
  width:min(420px,100%);
  border-radius:var(--r-xl);border:1px solid var(--c-border);
  background:var(--c-surface);overflow:hidden;
  animation:modalIn .3s var(--ease) both;
}
.dlb-head{
  padding:20px;
  background:linear-gradient(135deg,rgba(232,24,58,.12),rgba(201,164,78,.08));
  border-bottom:1px solid var(--c-border);
  display:flex;align-items:center;justify-content:space-between;
}
.dlb-head h3{font-size:18px;font-weight:800;letter-spacing:-.02em}
.dlb-body{padding:22px}
.demo-hint{
  padding:10px 12px;border-radius:var(--r-sm);
  background:rgba(201,164,78,.10);border:1px solid rgba(201,164,78,.22);
  font-size:12.5px;color:var(--c-txt2);margin-bottom:16px;line-height:1.5;
}
.demo-hint b{color:var(--c-gold2)}
.dlb-form{display:flex;flex-direction:column;gap:11px}

@keyframes shake{
  0%,100%{transform:translateX(0)}
  20%,60%{transform:translateX(-8px)}
  40%,80%{transform:translateX(8px)}
}

/* ════════════════════════════════════════
   EXCLUSIVE SOUVENIRS section
════════════════════════════════════════ */
.exclusive-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
}
@media(max-width:1100px){.exclusive-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:780px){.exclusive-grid{grid-template-columns:repeat(2,1fr);gap:12px}}
.excl-card{
  border-radius:var(--r-xl);overflow:hidden;
  border:1px solid var(--c-border);
  background:var(--c-card);
  cursor:pointer;
  transition:transform .22s var(--ease),box-shadow .2s,border-color .2s;
  display:flex;flex-direction:column;
}
[data-theme="dark"] .excl-card{box-shadow:0 2px 10px rgba(0,0,0,.22)}
[data-theme="light"] .excl-card{box-shadow:0 1px 6px rgba(0,0,0,.06)}
.excl-card:hover{transform:translateY(-4px)}
[data-theme="dark"] .excl-card:hover{box-shadow:0 12px 32px rgba(0,0,0,.38);border-color:rgba(201,164,78,.25)}
[data-theme="light"] .excl-card:hover{box-shadow:0 8px 24px rgba(0,0,0,.10);border-color:rgba(201,164,78,.25)}
.excl-img{
  aspect-ratio:1/1;background:var(--c-surface);
  display:flex;align-items:center;justify-content:center;
  font-size:52px;position:relative;overflow:hidden;
}
.excl-img::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(201,164,78,.08),rgba(232,24,58,.05));
}
.excl-body{padding:14px;flex:1;display:flex;flex-direction:column;gap:6px}
.excl-material{
  display:inline-flex;align-items:center;gap:5px;
  font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  color:var(--c-gold2);margin-bottom:2px;
}
.excl-name{font-size:14px;font-weight:700;color:var(--c-txt);line-height:1.25}
.excl-desc{font-size:12px;color:var(--c-txt3);line-height:1.45}
.excl-foot{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  margin-top:auto;padding-top:6px;
}
.excl-price{font-size:16px;font-weight:800;color:var(--c-txt)}
.excl-badge{
  font-size:10.5px;font-weight:700;
  padding:3px 8px;border-radius:5px;
  background:rgba(201,164,78,.15);
  color:var(--c-gold2);border:1px solid rgba(201,164,78,.22);
}


/* ════════════════════════════════════════
   SIDE MENU enhanced
════════════════════════════════════════ */
.sm-badge-excl{
  font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px;
  background:linear-gradient(135deg,rgba(201,164,78,.80),rgba(232,24,58,.60));
  color:#fff;flex-shrink:0;
}


/* ════════════════════════════════════════
   UNIFORM PCARD BUTTONS — all 38px
════════════════════════════════════════ */
.pcard-actions .pcard-add{
  height:38px !important;font-size:13px !important;
  border-radius:12px !important;padding:0 12px !important;
}
.pcard-actions .pcard-view{
  height:38px !important;font-size:13px !important;
  border-radius:12px !important;padding:0 12px !important;
}
.pcard-actions .btn.btn-sm{height:38px !important;font-size:13px !important}


/* ════════════════════════════════════════
   MOBILE 2-COL TOGGLE BUTTON
════════════════════════════════════════ */
.view-icon.vm-mobile{display:none}
@media(max-width:899px){.vm-mobile{display:flex !important}}
@media(max-width:899px){.vm-desktop{display:none !important}}

/* ── В корзину mobile wider ── */
@media(max-width:540px){
  .pcard-add{
    padding:0 10px !important;
    font-size:12px !important;
    white-space:nowrap;
    min-width:0;
    flex:1.3 !important;
  }
  .pcard-actions{gap:5px !important}
}

/* ════════════════════════════════════════
   ORDER DETAIL MODAL
════════════════════════════════════════ */
.order-detail-modal{
  position:fixed;inset:0;z-index:650;
  background:var(--c-overlay);
  display:none;padding:14px;overflow-y:auto;
}
.order-detail-modal.open{display:flex;align-items:flex-start;justify-content:center;animation:fadeOverlay .25s ease both}
.order-detail-box{
  width:min(640px,100%);margin:auto;
  border-radius:var(--r-xl);border:1px solid var(--c-border);
  background:var(--c-surface);overflow:hidden;
  animation:modalIn .3s var(--ease) both;
}
.odm-head{
  padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;
  border-bottom:1px solid var(--c-border);
  background:linear-gradient(135deg,rgba(232,24,58,.08),rgba(201,164,78,.05));
}
.odm-head h3{font-size:18px;font-weight:800}
.odm-body{padding:20px}
.odm-status-row{
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;
  padding:12px 14px;border-radius:var(--r-md);
  border:1px solid var(--c-border);background:rgba(255,255,255,.03);
  margin-bottom:14px;
}
[data-theme="light"] .odm-status-row{background:rgba(0,0,0,.025)}
.odm-timeline{
  display:flex;flex-direction:column;gap:0;
  margin-bottom:16px;
}
.odm-step{
  display:flex;align-items:flex-start;gap:12px;padding-bottom:14px;position:relative;
}
.odm-step:not(:last-child)::after{
  content:"";position:absolute;left:15px;top:32px;bottom:0;
  width:2px;background:var(--c-border);
}
.odm-step-dot{
  width:32px;height:32px;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:14px;
  border:2px solid var(--c-border);background:var(--c-surface);
  position:relative;z-index:1;
}
.odm-step.done .odm-step-dot{background:rgba(34,197,94,.15);border-color:rgba(34,197,94,.40)}
.odm-step.active .odm-step-dot{background:rgba(201,164,78,.15);border-color:rgba(201,164,78,.40);box-shadow:0 0 12px rgba(201,164,78,.25)}
.odm-step-info{min-width:0;padding-top:4px}
.odm-step-title{font-size:13.5px;font-weight:700;color:var(--c-txt);margin-bottom:2px}
.odm-step-time{font-size:12px;color:var(--c-txt3)}
.odm-items{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.odm-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--r-sm);border:1px solid var(--c-border2);background:rgba(255,255,255,.025)}
[data-theme="light"] .odm-item{background:rgba(0,0,0,.02)}
.odm-thumb{width:44px;height:44px;border-radius:9px;overflow:hidden;flex-shrink:0;background:var(--c-surface);border:1px solid var(--c-border);position:relative}
.odm-thumb img{width:100%;height:100%;object-fit:cover}
.odm-thumb.empty::after{content:"🌸";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:16px;opacity:.35}
.odm-item-name{flex:1;min-width:0;font-size:13px;font-weight:600}
.odm-item-price{font-size:13px;font-weight:700;flex-shrink:0}

/* ════════════════════════════════════════
   ORDER ROUTE BLOCK (horizontal inline)
════════════════════════════════════════ */
.odm-step[data-key="courier"]{padding-bottom:0}
.odm-step[data-key="courier"]::after{display:none!important}
.odm-route-inline{
  margin-left:44px;margin-bottom:0;padding:10px 0 14px;
  position:relative;
}
.odm-route-inline::before{
  content:"";position:absolute;left:-29px;top:0;bottom:0;width:2px;background:var(--c-border);
}
.odm-route-h{display:flex;align-items:center;gap:8px}
.odm-rh-ico{font-size:18px;flex-shrink:0;line-height:1}
.odm-rh-track{flex:1;height:5px;background:rgba(255,255,255,.1);border-radius:3px;position:relative}
[data-theme="light"] .odm-rh-track{background:rgba(0,0,0,.08)}
.odm-rh-fill{position:absolute;top:0;left:0;height:100%;border-radius:3px;background:linear-gradient(90deg,rgba(46,160,67,.6),rgba(46,160,67,1));transition:width 1.2s ease;width:0%}
.odm-rh-car{position:absolute;top:50%;transform:translate(-50%,-50%);font-size:20px;transition:left 1.2s ease;filter:drop-shadow(0 1px 3px rgba(0,0,0,.3));z-index:2;line-height:1}
.odm-rh-status{font-size:12px;color:var(--c-txt3);margin-top:7px}
.orp-eta-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:20px;background:rgba(46,160,67,.1);border:1px solid rgba(46,160,67,.25);font-size:11.5px;font-weight:600;color:#2ea043;margin-left:5px}
.orp-delay-banner{margin-top:8px;padding:8px 12px;border-radius:var(--r-sm);border:1px solid rgba(201,164,78,.3);background:rgba(201,164,78,.07);font-size:12px;color:var(--c-txt2)}

/* ════════════════════════════════════════
   SETTINGS EDIT MODAL
════════════════════════════════════════ */
.settings-modal{
  position:fixed;inset:0;z-index:660;
  background:var(--c-overlay);
  display:none;padding:14px;overflow-y:auto;
}
.settings-modal.open{display:flex;align-items:center;justify-content:center;animation:fadeOverlay .22s ease both}
.settings-box{
  width:min(480px,100%);
  border-radius:var(--r-xl);border:1px solid var(--c-border);
  background:var(--c-surface);overflow:hidden;
  animation:modalIn .28s var(--ease) both;
}
.settings-box-head{
  padding:16px 20px;display:flex;align-items:center;justify-content:space-between;
  border-bottom:1px solid var(--c-border);
}
.settings-box-head h3{font-size:16px;font-weight:800}
.settings-box-body{padding:18px}

/* ════════════════════════════════════════
   PROMO CODE INPUT (checkout)
════════════════════════════════════════ */
.promo-row{
  display:flex;gap:8px;align-items:stretch;
  padding:12px 14px;border-radius:var(--r-md);
  border:1px solid var(--c-border);background:rgba(255,255,255,.03);
  margin-bottom:10px;
}
[data-theme="light"] .promo-row{background:rgba(0,0,0,.025)}
.promo-input{
  flex:1;min-width:0;
  padding:10px 12px;border-radius:var(--r-sm);
  border:1px solid var(--c-border);
  background:rgba(255,255,255,.05);
  color:var(--c-txt);font-size:14px;font-family:"Montserrat",sans-serif;
  outline:none;transition:border-color .2s,box-shadow .2s;
  text-transform:uppercase;letter-spacing:.05em;
}
[data-theme="light"] .promo-input{background:rgba(0,0,0,.03)}
.promo-input:focus{border-color:rgba(201,164,78,.40);box-shadow:0 0 0 3px rgba(201,164,78,.10)}
.promo-input::placeholder{text-transform:none;letter-spacing:0;color:var(--c-txt3)}
.promo-applied{
  padding:10px 14px;border-radius:var(--r-md);
  border:1px solid rgba(34,197,94,.25);background:rgba(34,197,94,.08);
  display:none;align-items:center;justify-content:space-between;gap:10px;
  font-size:13px;margin-bottom:10px;
}
.promo-applied.show{display:flex}
.promo-applied .pa-code{font-weight:800;color:#22c55e;letter-spacing:.06em}
.promo-applied .pa-disc{font-weight:700;color:#22c55e}

/* ════════════════════════════════════════
   PAYMENT SECTION ENHANCED
════════════════════════════════════════ */
.pay-methods{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.pay-method{
  padding:14px;border-radius:var(--r-md);
  border:2px solid var(--c-border);
  background:rgba(255,255,255,.03);
  cursor:pointer;text-align:center;
  transition:border-color .17s,background .17s,transform .15s var(--ease);
  user-select:none;
}
[data-theme="light"] .pay-method{background:rgba(0,0,0,.025)}
.pay-method:hover{transform:translateY(-2px);border-color:rgba(232,24,58,.30)}
.pay-method.selected{border-color:var(--c-red);background:rgba(232,24,58,.08)}
.pay-method-ico{font-size:26px;margin-bottom:6px}
.pay-method-name{font-size:13px;font-weight:700;color:var(--c-txt)}
.pay-method-sub{font-size:11.5px;color:var(--c-txt3);margin-top:2px}
.pay-summary{
  border-radius:var(--r-md);overflow:hidden;
  border:1px solid var(--c-border);margin-bottom:14px;
}
.pay-sum-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 14px;border-bottom:1px solid var(--c-border2);
  font-size:13.5px;
}
.pay-sum-row:last-child{border-bottom:none}
.pay-sum-row.total{padding:12px 14px;background:rgba(255,255,255,.02);font-weight:800}
[data-theme="light"] .pay-sum-row.total{background:rgba(0,0,0,.02)}
.pay-sum-row .lbl{color:var(--c-txt2)}
.pay-sum-row .val{font-weight:700;color:var(--c-txt)}
.pay-sum-row.total .val{font-size:18px;color:var(--c-txt)}
.pay-sum-row.disc .val{color:#22c55e}

/* ════════════════════════════════════════
   SMART FILTER CHIP ROW (active filters)
════════════════════════════════════════ */
.active-filters-row{
  display:flex;gap:6px;flex-wrap:wrap;align-items:center;
  margin-bottom:10px;
}
.af-chip{
  display:inline-flex;align-items:center;gap:5px;
  padding:5px 9px;border-radius:var(--r-pill);
  border:1px solid rgba(232,24,58,.28);background:rgba(232,24,58,.09);
  color:var(--c-txt);font-size:12px;font-weight:600;
  cursor:pointer;transition:background .15s;
}
.af-chip:hover{background:rgba(232,24,58,.16)}
.af-chip .afc-x{color:var(--c-txt3);font-size:13px;line-height:1}
.af-clear{
  font-size:12px;color:var(--c-txt3);cursor:pointer;
  background:none;border:none;font:inherit;
  text-decoration:underline;text-underline-offset:2px;
  padding:4px;
}


/* ════════════════════════════════════════
   FAB BLIND ZONE FIX
════════════════════════════════════════ */
/* Nullify old .contacts rule that causes conflicts */
.contacts{display:none !important}

/* FAB wrap: no pointer-events on wrapper itself when closed */
.fab-wrap{
  pointer-events:none !important;
}
/* Only the main button and open items get pointer events */
.fab-main{pointer-events:all !important}
.fab-wrap.open .fab-item{pointer-events:all !important}
.fab-wrap.open .fab-items{pointer-events:all !important}
.fab-wrap.open .fab-link{pointer-events:all !important}

/* fab-backdrop pointer events */
.fab-backdrop{
  pointer-events:none !important;
}
.fab-wrap.open~.fab-backdrop{
  pointer-events:all !important;
}

/* fab-items height: 0 when closed, auto when open */
.fab-items{
  max-height:0;overflow:hidden;
  transition:max-height .3s var(--ease);
}
.fab-wrap.open .fab-items{
  max-height:300px;overflow:visible;
}

/* Ensure stickyCart doesn't block right zone */
@media(max-width:899px){
  .stickyCart{
    /* Pointer events only on stickyCart element itself */
    pointer-events:all;
  }
}


/* ════════════════════════════════════════
   VIP SOUVENIRS CAROUSEL (mobile)
════════════════════════════════════════ */
.vip-carousel-wrap{
  overflow:hidden;position:relative;
  margin:0 -4px;
  touch-action:pan-y;
}
.vip-carousel-track{
  display:flex;gap:14px;
  transition:transform .42s var(--ease);
  padding:4px;
  will-change:transform;
}
/* Mobile: carousel single large card */
@media(max-width:899px){
  .vip-carousel-track .excl-vip-card{
    flex:0 0 min(320px, calc(90vw - 20px));
    min-width:min(320px, calc(90vw - 20px));
  }
}
/* Desktop: grid */
@media(min-width:900px){
  .vip-carousel-wrap{overflow:visible;margin:0}
  .vip-carousel-track{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:14px;
    transition:none;transform:none !important;
  }
  .vip-carousel-track .excl-vip-card{
    flex:none;min-width:0;
  }
}

/* VIP card — detailed, premium */
.excl-vip-card{
  border-radius:var(--r-xl);overflow:hidden;
  border:1px solid rgba(201,164,78,.22);
  background:var(--c-card);
  display:flex;flex-direction:column;
  cursor:pointer;
  transition:transform .22s var(--ease),box-shadow .2s,border-color .2s;
  position:relative;
}
[data-theme="dark"] .excl-vip-card{
  box-shadow:0 4px 20px rgba(0,0,0,.28),inset 0 1px 0 rgba(201,164,78,.08);
}
[data-theme="light"] .excl-vip-card{
  box-shadow:0 2px 12px rgba(0,0,0,.08);
}
.excl-vip-card:hover{transform:translateY(-4px)}
[data-theme="dark"] .excl-vip-card:hover{
  border-color:rgba(201,164,78,.40);
  box-shadow:0 12px 36px rgba(0,0,0,.38),inset 0 1px 0 rgba(201,164,78,.12);
}
[data-theme="light"] .excl-vip-card:hover{
  border-color:rgba(201,164,78,.40);
  box-shadow:0 8px 24px rgba(0,0,0,.12);
}
/* Top gold accent line */
.excl-vip-card::before{
  content:"";position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,var(--c-gold),rgba(201,164,78,.30),transparent);
  z-index:2;
}

/* Image */
.vip-card-img{
  aspect-ratio:4/3;
  background:linear-gradient(135deg,rgba(201,164,78,.08),rgba(14,14,18,.15));
  display:flex;align-items:center;justify-content:center;
  font-size:56px;position:relative;overflow:hidden;
  flex-shrink:0;
}
@media(max-width:899px){.vip-card-img{aspect-ratio:16/10}}
.vip-card-img img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform .45s var(--ease);
}
.excl-vip-card:hover .vip-card-img img{transform:scale(1.07)}
.vip-card-badge{
  position:absolute;top:10px;left:10px;
  display:flex;gap:6px;flex-wrap:wrap;
  z-index:3;
}
.vip-material-badge{
  display:inline-flex;align-items:center;gap:4px;
  padding:4px 9px;border-radius:var(--r-pill);
  font-size:11px;font-weight:700;
  background:rgba(201,164,78,.90);color:#fff;
  backdrop-filter:blur(6px);
  letter-spacing:.02em;
}
.vip-disc-badge{
  padding:4px 9px;border-radius:var(--r-pill);
  font-size:11px;font-weight:700;
  background:var(--c-red);color:#fff;
}

/* Body */
.vip-card-body{padding:16px;flex:1;display:flex;flex-direction:column;gap:8px}
.vip-card-label{
  font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--c-gold2);
}
.vip-card-name{font-size:15px;font-weight:800;color:var(--c-txt);line-height:1.2;margin-bottom:2px}
.vip-card-desc{font-size:13px;color:var(--c-txt2);line-height:1.55;flex:1}
.vip-card-features{
  display:flex;flex-wrap:wrap;gap:5px;margin-top:4px;
}
.vip-feature{
  padding:3px 8px;border-radius:5px;
  font-size:11px;font-weight:600;
  border:1px solid rgba(201,164,78,.22);
  background:rgba(201,164,78,.08);
  color:var(--c-gold2);
}
.vip-card-foot{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:12px 16px;
  border-top:1px solid var(--c-border2);
  background:rgba(201,164,78,.04);
}
.vip-price .now{font-size:18px;font-weight:900;color:var(--c-txt);line-height:1}
.vip-price .old{font-size:12px;color:var(--c-txt3);text-decoration:line-through;margin-top:2px}
.vip-rating{
  display:flex;align-items:center;gap:4px;
  font-size:12.5px;font-weight:700;
  color:var(--c-gold2);
}

/* VIP carousel nav (mobile) */
.vip-nav{
  display:flex;gap:6px;align-items:center;justify-content:center;
  margin-top:14px;
}
@media(min-width:900px){.vip-nav{display:none}}
.vip-dot{
  width:7px;height:7px;border-radius:var(--r-pill);
  background:var(--c-border);border:none;padding:0;cursor:pointer;
  transition:width .25s var(--spring),background .2s;
}
.vip-dot.on{width:20px;background:var(--c-gold)}


/* ── Toast mobile fix ── */
@media(max-width:600px){
  .toast{
    white-space:normal !important;
    max-width:calc(100vw - 28px) !important;
    text-align:center !important;
    line-height:1.45 !important;
  }
}


/* ════════════════════════════════════════
   FAVOURITES MODAL
════════════════════════════════════════ */
.fav-modal{
  position:fixed;inset:0;z-index:640;
  background:var(--c-overlay);
  display:none;padding:14px;overflow-y:auto;
}
.fav-modal.open{display:flex;align-items:flex-start;justify-content:center;animation:fadeOverlay .25s ease both}
.fav-box{
  width:min(680px,100%);margin:auto;
  border-radius:var(--r-xl);border:1px solid var(--c-border);
  background:var(--c-surface);overflow:hidden;
  animation:modalIn .3s var(--ease) both;
}
.fav-head{
  padding:16px 20px;display:flex;align-items:center;justify-content:space-between;
  border-bottom:1px solid var(--c-border);
}
.fav-head h3{font-size:18px;font-weight:800}
.fav-toolbar{
  padding:12px 16px;border-bottom:1px solid var(--c-border);
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
}
.fav-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:12px;
  padding:16px;
}
@media(max-width:480px){.fav-grid{grid-template-columns:1fr 1fr;gap:10px}}
.fav-card{
  border-radius:var(--r-md);overflow:hidden;
  border:1px solid var(--c-border);background:var(--c-card);
  position:relative;cursor:pointer;
  transition:transform .18s var(--ease),border-color .18s;
}
.fav-card:hover{transform:translateY(-3px);border-color:rgba(232,24,58,.28)}
.fav-card-img{
  aspect-ratio:1/1;background:var(--c-surface);
  display:flex;align-items:center;justify-content:center;font-size:32px;
  position:relative;overflow:hidden;
}
.fav-card-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.fav-card-del{
  position:absolute;top:5px;right:5px;
  width:26px;height:26px;border-radius:8px;
  background:rgba(239,68,68,.80);backdrop-filter:blur(6px);
  display:flex;align-items:center;justify-content:center;
  font-size:13px;color:#fff;cursor:pointer;
  border:none;z-index:2;
  transition:background .15s,transform .15s;
}
.fav-card-del:hover{background:rgba(239,68,68,.95);transform:scale(1.1)}
.fav-card-body{padding:9px 10px}
.fav-card-name{font-size:12px;font-weight:700;color:var(--c-txt);margin-bottom:4px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fav-card-price{font-size:12.5px;font-weight:800;color:var(--c-txt)}
.fav-card-btn{
  width:100%;height:32px;border:none;cursor:pointer;
  background:rgba(232,24,58,.85);color:#fff;
  font-size:12px;font-weight:700;font-family:inherit;
  border-top:1px solid var(--c-border);
  transition:background .15s;
}
.fav-card-btn:hover{background:var(--c-red)}
.fav-empty{
  padding:40px 20px;text-align:center;
  font-size:14px;color:var(--c-txt3);
}
.fav-empty .fe-ico{font-size:44px;margin-bottom:12px}


/* ════════════════════════════════════════
   EDIT PROFILE MODAL
════════════════════════════════════════ */
.edit-profile-modal{
  position:fixed;inset:0;z-index:645;
  background:var(--c-overlay);
  display:none;padding:14px;overflow-y:auto;
}
.edit-profile-modal.open{display:flex;align-items:flex-start;justify-content:center;animation:fadeOverlay .22s ease both}
.edit-profile-box{
  width:min(520px,100%);margin:auto;
  border-radius:var(--r-xl);border:1px solid var(--c-border);
  background:var(--c-surface);overflow:hidden;
  animation:modalIn .28s var(--ease) both;
}
.epb-head{
  padding:16px 20px;border-bottom:1px solid var(--c-border);
  background:linear-gradient(135deg,rgba(232,24,58,.08),rgba(201,164,78,.05));
  display:flex;align-items:center;justify-content:space-between;
}
.epb-head h3{font-size:18px;font-weight:800}
.epb-avatar-row{
  padding:20px;display:flex;align-items:center;gap:14px;
  border-bottom:1px solid var(--c-border);
}
.epb-avatar{
  width:60px;height:60px;border-radius:18px;
  background:linear-gradient(135deg,var(--c-red),var(--c-gold));
  display:flex;align-items:center;justify-content:center;
  font-size:24px;font-weight:800;color:#fff;font-family:'Montserrat',sans-serif;
  flex-shrink:0;
}
.epb-avatar-info{min-width:0}
.epb-avatar-name{font-size:16px;font-weight:800;margin-bottom:3px}
.epb-avatar-lvl{font-size:12px;color:var(--c-gold2)}
.epb-body{padding:18px;display:flex;flex-direction:column;gap:10px}
.ep-field{display:flex;flex-direction:column;gap:5px}
.ep-field label{font-size:11.5px;font-weight:700;color:var(--c-txt3);text-transform:uppercase;letter-spacing:.05em}
.ep-input{
  width:100%;padding:11px 13px;border-radius:var(--r-sm);
  border:1px solid var(--c-border);
  background:rgba(255,255,255,.04);
  color:var(--c-txt);font-size:14px;font-family:'Montserrat',sans-serif;
  outline:none;transition:border-color .2s,box-shadow .2s;
}
[data-theme="light"] .ep-input{background:rgba(0,0,0,.03)}
.ep-input:focus{border-color:rgba(232,24,58,.40);box-shadow:0 0 0 3px rgba(232,24,58,.09)}
.ep-input::placeholder{color:var(--c-txt3)}
.ep-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:480px){.ep-row{grid-template-columns:1fr}}


/* ════════════════════════════════════════
   SOCIAL AUTH BUTTONS
════════════════════════════════════════ */
.social-auth-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:9px;
  margin-bottom:14px;
}
.sa-btn{
  display:flex;align-items:center;gap:9px;
  padding:11px 12px;border-radius:var(--r-md);
  border:1px solid var(--c-border);
  background:rgba(255,255,255,.04);
  cursor:pointer;transition:background .15s,border-color .15s,transform .13s var(--ease);
  font-size:13px;font-weight:600;font-family:'Montserrat',sans-serif;
  color:var(--c-txt);
}
[data-theme="light"] .sa-btn{background:rgba(0,0,0,.025)}
.sa-btn:hover{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.18);transform:translateY(-1px)}
[data-theme="light"] .sa-btn:hover{background:rgba(0,0,0,.06);border-color:rgba(0,0,0,.14)}
.sa-btn:active{transform:scale(.97)}
.sa-ico{
  width:26px;height:26px;border-radius:7px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:15px;
}
.sa-ico.tg{background:#29b6f6;color:#fff}
.sa-ico.vk{background:#0077ff;color:#fff}
.sa-ico.max{background:#3d35c9;color:#fff}
.sa-ico.ya{background:#fc3f1d;color:#fff}
.sa-ico.gosu{background:#0b5fa5;color:#fff}
.sa-ico.sber{background:#21a038;color:#fff}
.sa-divider{
  display:flex;align-items:center;gap:12px;
  margin:14px 0;font-size:12px;color:var(--c-txt3);
}
.sa-divider::before,.sa-divider::after{
  content:"";flex:1;height:1px;background:var(--c-border);
}


/* ── Catalog SEO text ── */
.catalog-seo{
  padding:24px 0 16px;
  opacity:.38;
  transition:opacity .25s;
}
.catalog-seo:hover{opacity:.55}
.catalog-seo h2{
  font-size:14px;font-weight:700;color:var(--c-txt);
  margin-bottom:6px;letter-spacing:-.01em;
}
.catalog-seo p{
  font-size:12.5px;color:var(--c-txt2);
  line-height:1.65;margin-bottom:8px;
}
.catalog-seo .seo-tags{
  display:flex;flex-wrap:wrap;gap:5px;margin-top:8px;
}
.catalog-seo .seo-tag{
  font-size:11px;color:var(--c-txt3);
  border:1px solid var(--c-border2);
  padding:2px 7px;border-radius:4px;
}
@media(max-width:899px){
  .catalog-seo{padding-bottom:70px}
}


/* ════════════════════════════════════════
   AI BOUQUET CONSTRUCTOR
════════════════════════════════════════ */
.ai-constructor{
  border-radius:var(--r-xl);overflow:hidden;
  border:1px solid rgba(201,164,78,.25);
  background:linear-gradient(135deg,rgba(14,14,18,.95),rgba(20,12,20,.95));
  position:relative;
}
[data-theme="light"] .ai-constructor{
  background:linear-gradient(135deg,rgba(250,248,245,.97),rgba(255,250,240,.97));
  border-color:rgba(201,164,78,.22);
}
.ai-constructor::before{
  content:"";position:absolute;top:-60px;right:-40px;
  width:200px;height:200px;border-radius:50%;
  background:radial-gradient(rgba(201,164,78,.12),transparent 70%);
  pointer-events:none;
}
.ai-header{
  padding:22px 24px;
  border-bottom:1px solid rgba(201,164,78,.15);
  display:flex;align-items:center;gap:14px;
  background:linear-gradient(135deg,rgba(201,164,78,.08),rgba(232,24,58,.05));
}
@media(max-width:540px){.ai-header{padding:16px}}
.ai-header-ico{
  width:48px;height:48px;border-radius:14px;flex-shrink:0;
  background:linear-gradient(135deg,rgba(201,164,78,.30),rgba(232,24,58,.20));
  display:flex;align-items:center;justify-content:center;font-size:22px;
  border:1px solid rgba(201,164,78,.30);
}
.ai-header-text h3{font-size:18px;font-weight:800;margin-bottom:2px}
.ai-header-text span{font-size:12.5px;color:var(--c-txt3)}
.ai-badge{
  margin-left:auto;
  padding:4px 10px;border-radius:var(--r-pill);
  background:linear-gradient(135deg,rgba(201,164,78,.25),rgba(232,24,58,.15));
  border:1px solid rgba(201,164,78,.30);
  font-size:11px;font-weight:700;color:var(--c-gold2);
  white-space:nowrap;flex-shrink:0;animation:aiBadgePulse 2.5s ease infinite;
}
@keyframes aiBadgePulse{0%,100%{box-shadow:0 0 0 0 rgba(201,164,78,.25)}50%{box-shadow:0 0 0 6px rgba(201,164,78,.0)}}

.ai-body{padding:20px 24px}
@media(max-width:540px){.ai-body{padding:14px 14px}}

/* Steps */
.ai-steps{
  display:flex;gap:0;margin-bottom:20px;overflow:hidden;border-radius:10px;
  border:1px solid var(--c-border);
}
.ai-step-btn{
  flex:1;padding:8px 4px;text-align:center;border:none;cursor:pointer;
  font-size:11px;font-weight:700;font-family:inherit;
  background:rgba(255,255,255,.03);color:var(--c-txt3);
  transition:background .2s,color .2s;border-right:1px solid var(--c-border);
  position:relative;
}
[data-theme="light"] .ai-step-btn{background:rgba(0,0,0,.025)}
.ai-step-btn:last-child{border-right:none}
.ai-step-btn.active{background:rgba(201,164,78,.12);color:var(--c-gold2)}
.ai-step-btn.done::after{
  content:"✓";position:absolute;top:3px;right:5px;font-size:9px;color:#22c55e;
}
.ai-step-num{display:block;font-size:16px;margin-bottom:2px}
.ai-step-label{display:block;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60px;margin:0 auto}

/* Panels */
.ai-panel{display:none;animation:quizSlide .28s var(--ease) both}
.ai-panel.active{display:block}

/* Option grids */
.ai-opts-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;
  margin-bottom:14px;
}
@media(max-width:480px){.ai-opts-grid{grid-template-columns:repeat(3,1fr)}}
.ai-opt{
  padding:10px 8px;border-radius:var(--r-md);border:1px solid var(--c-border);
  background:rgba(255,255,255,.03);cursor:pointer;text-align:center;
  transition:border-color .15s,background .15s,transform .15s var(--ease);
}
[data-theme="light"] .ai-opt{background:rgba(0,0,0,.025)}
.ai-opt:hover{background:rgba(201,164,78,.08);border-color:rgba(201,164,78,.30);transform:translateY(-2px)}
.ai-opt.selected{background:rgba(232,24,58,.10);border-color:rgba(232,24,58,.35)}
.ai-opt-ico{font-size:22px;margin-bottom:5px;display:block}
.ai-opt-lbl{font-size:11.5px;font-weight:600;color:var(--c-txt);display:block;line-height:1.2}

/* Wide opts (type/wrap) */
.ai-opts-wide{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:14px}
.ai-opt-pill{
  padding:8px 12px;border-radius:var(--r-pill);border:1px solid var(--c-border);
  background:rgba(255,255,255,.03);cursor:pointer;
  font-size:12.5px;font-weight:600;color:var(--c-txt);
  transition:border-color .15s,background .15s;
}
[data-theme="light"] .ai-opt-pill{background:rgba(0,0,0,.025)}
.ai-opt-pill:hover{border-color:rgba(201,164,78,.30);background:rgba(201,164,78,.07)}
.ai-opt-pill.selected{border-color:rgba(232,24,58,.35);background:rgba(232,24,58,.09)}

/* Flower count input */
.ai-count-row{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.ai-count-btn{
  width:36px;height:36px;border-radius:10px;border:1px solid var(--c-border);
  background:rgba(255,255,255,.04);cursor:pointer;
  font-size:18px;font-weight:700;color:var(--c-txt);
  display:flex;align-items:center;justify-content:center;
  transition:background .12s;flex-shrink:0;
}
[data-theme="light"] .ai-count-btn{background:rgba(0,0,0,.04)}
.ai-count-btn:hover{background:rgba(201,164,78,.15)}
.ai-count-input{
  width:80px;text-align:center;padding:7px;border-radius:10px;
  border:1px solid var(--c-border);background:rgba(255,255,255,.04);
  color:var(--c-txt);font-size:16px;font-weight:800;font-family:inherit;
  outline:none;
}
[data-theme="light"] .ai-count-input{background:rgba(0,0,0,.04)}
.ai-count-label{font-size:13px;color:var(--c-txt3);flex:1}

/* Color swatches */
.ai-colors{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.ai-color{
  width:36px;height:36px;border-radius:50%;cursor:pointer;
  border:2px solid transparent;transition:transform .15s,border-color .15s;
  flex-shrink:0;
}
.ai-color:hover{transform:scale(1.15)}
.ai-color.selected{border-color:rgba(255,255,255,.7);box-shadow:0 0 0 3px rgba(201,164,78,.30)}
[data-theme="light"] .ai-color.selected{border-color:rgba(0,0,0,.5)}

/* Generate button */
.ai-generate-btn{
  width:100%;height:54px;border-radius:16px;border:none;cursor:pointer;
  background:linear-gradient(135deg,rgba(201,164,78,.80),rgba(232,24,58,.70));
  color:#fff;font-size:15px;font-weight:800;font-family:inherit;
  box-shadow:0 6px 24px rgba(201,164,78,.25);
  transition:transform .18s var(--spring),box-shadow .18s,opacity .2s;
  position:relative;overflow:hidden;
}
.ai-generate-btn:hover{transform:translateY(-2px);box-shadow:0 10px 32px rgba(201,164,78,.35)}
.ai-generate-btn:active{transform:scale(.97)}
.ai-generate-btn:disabled{opacity:.6;pointer-events:none}
.ai-generate-btn::after{
  content:"";position:absolute;top:-50%;left:-60%;
  width:60%;height:200%;background:rgba(255,255,255,.15);
  transform:skewX(-20deg);
  transition:left .4s ease;pointer-events:none;
}
.ai-generate-btn:hover::after{left:110%}

/* Results */
.ai-results{display:none;margin-top:20px}
.ai-results.show{display:block;animation:quizSlide .35s var(--ease) both}
.ai-res-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:14px;
}
@media(max-width:600px){.ai-res-grid{grid-template-columns:1fr}}
.ai-res-card{
  border-radius:var(--r-xl);overflow:hidden;
  border:1px solid rgba(201,164,78,.18);background:var(--c-card);
  position:relative;cursor:pointer;
  transition:transform .22s var(--spring),border-color .2s,box-shadow .2s;
  display:flex;flex-direction:column;
}
.ai-res-card:hover{
  transform:translateY(-5px);
  border-color:rgba(201,164,78,.38);
  box-shadow:0 12px 32px rgba(0,0,0,.30);
}
.ai-res-card.featured{
  border-color:rgba(232,24,58,.35);
  box-shadow:0 4px 20px rgba(232,24,58,.12);
}
.ai-res-card.featured:hover{box-shadow:0 14px 36px rgba(232,24,58,.22)}
.ai-res-tier{
  position:absolute;top:10px;left:10px;z-index:2;
  padding:4px 10px;border-radius:var(--r-pill);
  font-size:10px;font-weight:800;letter-spacing:.04em;
  font-family:var(--font-ui);text-transform:uppercase;
  backdrop-filter:blur(8px);
}
.ai-res-tier.top{background:linear-gradient(135deg,var(--c-red),var(--c-gold));color:#fff;box-shadow:0 2px 10px rgba(232,24,58,.35)}
.ai-res-tier.author{background:rgba(99,102,241,.85);color:#fff}
.ai-res-tier.premium{background:linear-gradient(135deg,#0f172a,#1e293b);color:var(--c-gold2);border:1px solid rgba(201,164,78,.40)}
.ai-res-img{
  aspect-ratio:4/3;
  background:linear-gradient(135deg,rgba(201,164,78,.10),rgba(232,24,58,.07));
  display:flex;align-items:center;justify-content:center;font-size:52px;
  position:relative;overflow:hidden;
}
.ai-res-match{
  position:absolute;top:10px;right:10px;z-index:2;
  padding:4px 9px;border-radius:var(--r-pill);
  background:rgba(10,10,12,.75);backdrop-filter:blur(8px);
  border:1px solid rgba(34,197,94,.35);
  font-size:11px;font-weight:800;color:#22c55e;
  font-family:var(--font-ui);
}
.ai-res-body{padding:14px;flex:1;display:flex;flex-direction:column}
.ai-res-name{font-size:13.5px;font-weight:800;color:var(--c-txt);margin-bottom:5px;font-family:var(--font-ui);line-height:1.3}
.ai-res-desc{font-size:11.5px;color:var(--c-txt3);line-height:1.55;margin-bottom:10px;flex:1;font-family:var(--font-ui)}
.ai-res-matchbar{
  height:3px;border-radius:2px;background:rgba(255,255,255,.07);
  margin-bottom:10px;overflow:hidden;
}
.ai-res-matchbar-fill{
  height:100%;border-radius:2px;
  background:linear-gradient(90deg,var(--c-red),var(--c-gold));
  transition:width 1s var(--ease);
}
.ai-res-foot{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.ai-res-price{font-size:17px;font-weight:900;color:var(--c-txt);font-family:var(--font-ui)}
.ai-res-btns{display:flex;gap:6px}
.ai-res-btns .btn{flex:1;font-size:12px}

/* Progress / loading */
.ai-loading{
  padding:30px;text-align:center;display:none;
}
.ai-loading.show{display:block;animation:quizSlide .3s var(--ease) both}
.ai-loading-dots{display:flex;justify-content:center;gap:7px;margin-bottom:14px}
.ai-dot-pulse{
  width:10px;height:10px;border-radius:50%;
  background:var(--c-gold);
  animation:aiDotPulse 1.2s ease infinite;
}
.ai-dot-pulse:nth-child(2){animation-delay:.2s}
.ai-dot-pulse:nth-child(3){animation-delay:.4s}
@keyframes aiDotPulse{
  0%,80%,100%{transform:scale(.7);opacity:.5}
  40%{transform:scale(1);opacity:1}
}
.ai-loading-text{font-size:13.5px;color:var(--c-txt2);font-weight:600;animation:aiTextFade 2.5s ease infinite}
@keyframes aiTextFade{0%,100%{opacity:.6}50%{opacity:1}}

/* Section label */
.ai-section-label{font-size:11.5px;font-weight:700;color:var(--c-txt3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;display:block}

/* Navigation row */
.ai-nav-row{display:flex;justify-content:space-between;align-items:center;margin-top:14px;gap:10px}


/* ════════════════════════════════════════
   ENHANCED SEARCH
════════════════════════════════════════ */
.search-overlay{
  display:none;position:fixed;inset:0;z-index:400;
  background:rgba(10,10,12,.88);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
}
.search-overlay.open{display:flex;flex-direction:column;animation:fadeOverlay .2s ease both}
.search-inner{
  padding:max(12px,var(--safe-t)) 14px 10px;
  display:flex;align-items:center;gap:10px;flex-shrink:0;
  border-bottom:1px solid var(--c-border2);
}
#q-mob{flex:1;height:42px;padding:0 14px;border-radius:var(--r-md);
  border:1px solid var(--c-border);background:rgba(255,255,255,.07);
  color:var(--c-txt);font-size:15px;font-family:var(--font-ui);outline:none;}
#q-mob::placeholder{color:var(--c-txt3)}
#q-mob:focus{border-color:rgba(232,24,58,.40);background:rgba(255,255,255,.10)}
[data-theme="light"] #q-mob{background:rgba(0,0,0,.05);border-color:var(--c-border)}
[data-theme="light"] #q-mob:focus{background:rgba(0,0,0,.07)}
.search-results{flex:1;overflow-y:auto;padding:0 14px 80px;}
/* Cloud chips */
.search-cloud{padding:12px 0 4px}
.search-cloud-lbl{font-size:11px;font-weight:700;color:var(--c-txt3);text-transform:uppercase;
  letter-spacing:.06em;margin-bottom:8px;display:block}
.search-cloud-wrap{display:flex;flex-wrap:wrap;gap:7px}
.sc-chip{
  padding:7px 12px;border-radius:var(--r-pill);border:1px solid var(--c-border);
  background:rgba(255,255,255,.05);font-size:13px;color:var(--c-txt2);cursor:pointer;
  transition:border-color .15s,background .15s;font-family:var(--font-ui);
}
[data-theme="light"] .sc-chip{background:rgba(0,0,0,.04)}
.sc-chip:hover{border-color:rgba(232,24,58,.30);background:rgba(232,24,58,.07);color:var(--c-txt)}
.sc-chip.recent::before{content:"🕐 ";font-size:12px}
/* Autocomplete results */
.search-ac-list{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.sac-item{
  display:flex;align-items:center;gap:12px;
  padding:10px 12px;border-radius:var(--r-md);
  border:1px solid var(--c-border2);background:rgba(255,255,255,.04);
  cursor:pointer;transition:background .15s;
}
[data-theme="light"] .sac-item{background:rgba(0,0,0,.025)}
.sac-item:hover{background:rgba(255,255,255,.08);border-color:rgba(232,24,58,.20)}
[data-theme="light"] .sac-item:hover{background:rgba(0,0,0,.06)}
.sac-thumb{
  width:44px;height:44px;border-radius:10px;flex-shrink:0;overflow:hidden;
  background:var(--c-surface);border:1px solid var(--c-border);
}
.sac-thumb img{width:100%;height:100%;object-fit:cover}
.sac-info{flex:1;min-width:0}
.sac-name{font-size:13.5px;font-weight:700;color:var(--c-txt);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sac-price{font-size:12.5px;color:var(--c-txt3);margin-top:2px}
.sac-add{
  width:32px;height:32px;border-radius:9px;border:none;cursor:pointer;
  background:rgba(232,24,58,.80);color:#fff;font-size:16px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  transition:background .12s,transform .12s;
}
.sac-add:hover{background:var(--c-red);transform:scale(1.1)}
.search-no-results{padding:24px 0;text-align:center;font-size:14px;color:var(--c-txt3)}
/* AI promo banner in search */
.search-ai-promo{
  margin:14px 0;padding:14px 16px;border-radius:var(--r-lg);
  background:linear-gradient(135deg,rgba(201,164,78,.12),rgba(232,24,58,.08));
  border:1px solid rgba(201,164,78,.22);cursor:pointer;
  display:flex;align-items:center;gap:12px;
  transition:border-color .2s,transform .15s var(--ease);
}
.search-ai-promo:hover{border-color:rgba(201,164,78,.40);transform:translateY(-2px)}
.sap-ico{font-size:28px;flex-shrink:0}
.sap-text b{font-size:13.5px;font-weight:800;color:var(--c-txt);display:block;margin-bottom:2px}
.sap-text span{font-size:12px;color:var(--c-txt2)}
.sap-arrow{margin-left:auto;font-size:18px;color:var(--c-gold2)}


/* ════════════════════════════════════════
   TELEGRAM NEWS CAROUSEL
════════════════════════════════════════ */
.tgnews-wrap{overflow:hidden;position:relative;touch-action:pan-y}
.tgnews-track{
  display:flex;gap:14px;
  transition:transform .42s var(--ease);
  padding:4px;
}
.tgnews-card{
  flex:0 0 min(340px,calc(88vw - 14px));min-width:min(340px,calc(88vw - 14px));
  border-radius:var(--r-xl);overflow:hidden;
  border:1px solid var(--c-border);background:var(--c-card);
  cursor:pointer;
  transition:transform .2s var(--ease),border-color .2s;
  display:flex;flex-direction:column;
}
@media(min-width:900px){
  .tgnews-card{flex:0 0 calc(33.333% - 10px);min-width:0}
}
.tgnews-card:hover{transform:translateY(-4px);border-color:rgba(232,24,58,.22)}
[data-theme="dark"] .tgnews-card:hover{box-shadow:0 10px 28px rgba(0,0,0,.32)}
[data-theme="light"] .tgnews-card:hover{box-shadow:0 8px 22px rgba(0,0,0,.10)}
.tgn-preview{
  aspect-ratio:16/9;background:var(--c-surface);position:relative;overflow:hidden;
  display:flex;align-items:center;justify-content:center;
}
.tgn-preview img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .4s var(--ease)}
.tgnews-card:hover .tgn-preview img{transform:scale(1.05)}
.tgn-preview video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tgn-preview .tgn-play{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,0,.35);cursor:pointer;
  transition:background .2s;
}
.tgn-preview .tgn-play:hover{background:rgba(0,0,0,.50)}
.tgn-play-ico{
  width:52px;height:52px;border-radius:50%;
  background:rgba(255,255,255,.92);
  display:flex;align-items:center;justify-content:center;
  transition:transform .2s var(--spring),box-shadow .2s;
}
.tgn-preview .tgn-play:hover .tgn-play-ico{transform:scale(1.10);box-shadow:0 6px 20px rgba(0,0,0,.30)}
.tgn-play-triangle{
  width:0;height:0;
  border-top:10px solid transparent;
  border-bottom:10px solid transparent;
  border-left:18px solid var(--c-red);
  margin-left:4px;
}
.tgn-badge{
  position:absolute;top:8px;left:8px;
  display:flex;align-items:center;gap:5px;
  padding:4px 9px;border-radius:var(--r-pill);
  background:rgba(10,10,12,.65);backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.12);
  font-size:11px;font-weight:700;color:#fff;
}
.tgn-badge-video{background:rgba(232,24,58,.80);border-color:rgba(232,24,58,.40)}
.tgn-body{padding:14px;flex:1;display:flex;flex-direction:column;gap:6px}
.tgn-date{font-size:11.5px;color:var(--c-txt3);font-weight:600}
.tgn-text{font-size:13.5px;color:var(--c-txt);line-height:1.55;flex:1;
  display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.tgn-foot{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 14px;border-top:1px solid var(--c-border2);
}
.tgn-stats{display:flex;gap:10px;font-size:12px;color:var(--c-txt3)}
.tgn-link{
  font-size:12px;font-weight:700;color:var(--c-red2);
  display:flex;align-items:center;gap:4px;
  transition:color .15s;
}
.tgn-link:hover{color:var(--c-txt)}
/* Video modal overlay */
.tgn-video-modal{
  position:fixed;inset:0;z-index:9000;
  background:rgba(0,0,0,.92);
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;
  transition:opacity .25s ease;
}
.tgn-video-modal.show{opacity:1;pointer-events:all}
.tgn-video-inner{
  position:relative;width:min(860px,94vw);
  border-radius:var(--r-xl);overflow:hidden;
  background:#000;
  box-shadow:0 24px 80px rgba(0,0,0,.60);
}
.tgn-video-inner video{width:100%;max-height:80vh;display:block}
.tgn-video-close{
  position:absolute;top:10px;right:10px;
  width:36px;height:36px;border-radius:50%;
  background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.18);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;color:#fff;font-size:18px;line-height:1;
  transition:background .15s;
}
.tgn-video-close:hover{background:rgba(232,24,58,.70)}
/* Carousel nav */
.tgnews-nav{display:flex;gap:6px;align-items:center;justify-content:center;margin-top:14px}
.tgn-dot{
  width:7px;height:7px;border-radius:var(--r-pill);
  background:var(--c-border);border:none;padding:0;cursor:pointer;
  transition:width .25s var(--spring),background .2s;
}
.tgn-dot.on{width:20px;background:var(--c-red)}
.tgnews-btns{display:flex;gap:8px;margin-top:12px;justify-content:center}


/* ════════════════════════════════════════
   COFFEE KIOSK VIEW
════════════════════════════════════════ */
#view-kiosk{
  min-height:100vh;
  background:var(--c-bg);
  display:none;
  flex-direction:column;
  padding:0;
}
#view-kiosk.active{display:flex}
/* In kiosk mode — hide header, bottomNav, FAB, toTop */
body.kiosk-mode .header,
body.kiosk-mode .bottomNav,
body.kiosk-mode .fab-wrap,
body.kiosk-mode .toTop,
body.kiosk-mode .stickyCart,
body.kiosk-mode .stickyFilters{display:none!important}

/* Kiosk header */
.kiosk-header{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:16px 20px;
  background:linear-gradient(135deg,rgba(201,164,78,.12),rgba(232,24,58,.08));
  border-bottom:1px solid rgba(201,164,78,.18);
  flex-shrink:0;
}
.kiosk-logo{display:flex;align-items:center;gap:10px}
.kiosk-logo img{width:44px;height:44px;border-radius:12px;object-fit:contain}
.kiosk-logo-text b{font-size:18px;font-weight:800;letter-spacing:-.02em}
.kiosk-logo-text span{font-size:12px;color:var(--c-txt3)}
.kiosk-time{font-size:22px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--c-txt);min-width:60px;text-align:right}
.kiosk-exit{background:none;border:1px solid var(--c-border);border-radius:10px;padding:6px 12px;cursor:pointer;font-size:12px;color:var(--c-txt3);font-family:var(--font-ui)}
.kiosk-exit:hover{border-color:rgba(232,24,58,.30);color:var(--c-red2)}

/* Kiosk layout */
.kiosk-body{
  display:grid;
  grid-template-columns:1fr 300px;
  gap:0;
  flex:1;overflow:hidden;
}
@media(max-width:860px){
  .kiosk-body{grid-template-columns:1fr;grid-template-rows:1fr auto}
}

/* Menu area */
.kiosk-menu{overflow-y:auto;padding:14px}
.kiosk-cats{
  display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap;
}
.kiosk-cat-btn{
  padding:8px 14px;border-radius:var(--r-pill);border:1px solid var(--c-border);
  background:rgba(255,255,255,.04);cursor:pointer;
  font-size:13px;font-weight:700;font-family:var(--font-ui);color:var(--c-txt2);
  transition:background .15s,border-color .15s,color .15s;white-space:nowrap;
}
[data-theme="light"] .kiosk-cat-btn{background:rgba(0,0,0,.03)}
.kiosk-cat-btn.active{background:rgba(232,24,58,.12);border-color:rgba(232,24,58,.35);color:var(--c-txt)}
.kiosk-cat-btn:hover:not(.active){border-color:rgba(201,164,78,.30)}

/* Kiosk product grid */
.kiosk-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(140px,1fr));
  gap:10px;
}
@media(min-width:1200px){.kiosk-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}}
@media(max-width:480px){.kiosk-grid{grid-template-columns:repeat(2,1fr)}}

.kiosk-card{
  border-radius:var(--r-lg);overflow:hidden;
  border:1px solid var(--c-border);background:var(--c-card);
  cursor:pointer;transition:transform .18s var(--ease),border-color .18s,box-shadow .18s;
  display:flex;flex-direction:column;
  user-select:none;
}
.kiosk-card:hover{transform:translateY(-3px)}
[data-theme="dark"] .kiosk-card:hover{box-shadow:0 8px 20px rgba(0,0,0,.32);border-color:rgba(232,24,58,.25)}
[data-theme="light"] .kiosk-card:hover{box-shadow:0 6px 16px rgba(0,0,0,.10);border-color:rgba(232,24,58,.25)}
.kiosk-card:active{transform:scale(.96)}
.kiosk-card.in-cart{border-color:rgba(34,197,94,.35)}
.kiosk-card-img{
  aspect-ratio:1/1;background:var(--c-surface);
  display:flex;align-items:center;justify-content:center;font-size:40px;
  position:relative;overflow:hidden;
}
.kiosk-card-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.kiosk-card-badge{
  position:absolute;top:6px;right:6px;
  width:24px;height:24px;border-radius:50%;
  background:rgba(34,197,94,.90);
  display:none;align-items:center;justify-content:center;
  font-size:13px;color:#fff;font-weight:800;
}
.kiosk-card.in-cart .kiosk-card-badge{display:flex}
.kiosk-card-body{padding:8px 10px 10px}
.kiosk-card-name{font-size:12.5px;font-weight:700;color:var(--c-txt);margin-bottom:4px;line-height:1.2}
.kiosk-card-price{font-size:14px;font-weight:900;color:var(--c-txt)}
.kiosk-card-add{
  width:100%;height:30px;border:none;cursor:pointer;
  background:rgba(232,24,58,.80);color:#fff;
  font-size:12px;font-weight:700;font-family:var(--font-ui);
  border-top:1px solid rgba(232,24,58,.20);
  transition:background .15s;
}
.kiosk-card-add:hover{background:var(--c-red)}

/* Kiosk cart sidebar */
.kiosk-cart{
  border-left:1px solid var(--c-border);
  background:rgba(255,255,255,.025);
  display:flex;flex-direction:column;
  overflow:hidden;
}
[data-theme="light"] .kiosk-cart{background:rgba(0,0,0,.02)}
@media(max-width:860px){
  .kiosk-cart{border-left:none;border-top:1px solid var(--c-border);max-height:280px}
}
.kiosk-cart-head{
  padding:12px 14px;border-bottom:1px solid var(--c-border);
  font-size:14px;font-weight:800;display:flex;align-items:center;justify-content:space-between;
}
.kiosk-cart-items{flex:1;overflow-y:auto;padding:10px 12px}
.kiosk-cart-item{
  display:flex;align-items:center;gap:8px;
  padding:7px 0;border-bottom:1px solid var(--c-border2);
}
.kiosk-cart-item:last-child{border-bottom:none}
.kci-ico{font-size:20px;flex-shrink:0}
.kci-name{font-size:12.5px;font-weight:600;flex:1;color:var(--c-txt);min-width:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kci-qty{
  display:flex;align-items:center;gap:5px;flex-shrink:0;
}
.kci-btn{
  width:24px;height:24px;border-radius:6px;border:1px solid var(--c-border);
  background:rgba(255,255,255,.05);cursor:pointer;font-size:13px;font-weight:700;
  display:flex;align-items:center;justify-content:center;color:var(--c-txt);
}
[data-theme="light"] .kci-btn{background:rgba(0,0,0,.04)}
.kci-btn:hover{background:rgba(232,24,58,.15)}
.kci-n{font-size:13px;font-weight:700;min-width:18px;text-align:center}
.kci-price{font-size:12.5px;font-weight:700;color:var(--c-txt);flex-shrink:0}
.kiosk-empty{padding:20px;text-align:center;font-size:13px;color:var(--c-txt3)}
.kiosk-cart-foot{
  padding:12px 14px;border-top:1px solid var(--c-border);
  background:rgba(255,255,255,.02);
  flex-shrink:0;
}
[data-theme="light"] .kiosk-cart-foot{background:rgba(0,0,0,.02)}
.kiosk-total{
  display:flex;justify-content:space-between;align-items:baseline;
  margin-bottom:10px;
}
.kiosk-total .lbl{font-size:13px;color:var(--c-txt3)}
.kiosk-total .val{font-size:22px;font-weight:900;color:var(--c-txt)}
.kiosk-pay-btns{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.kiosk-pay-btn{
  height:46px;border-radius:12px;border:none;cursor:pointer;
  font-size:13px;font-weight:700;font-family:var(--font-ui);
  transition:transform .15s var(--spring),box-shadow .15s;
}
.kiosk-pay-btn:hover{transform:translateY(-2px)}
.kiosk-pay-btn:active{transform:scale(.97)}
.kiosk-pay-btn.online{background:var(--c-red);color:#fff;box-shadow:0 4px 14px rgba(232,24,58,.30)}
.kiosk-pay-btn.cash{background:rgba(255,255,255,.08);color:var(--c-txt);border:1px solid var(--c-border)}
[data-theme="light"] .kiosk-pay-btn.cash{background:rgba(0,0,0,.06)}

/* ── Kiosk: скрыть сайдбар, правильный scroll-layout ── */
body.kiosk-mode .kiosk-cart{display:none!important}
body.kiosk-mode .kiosk-body{
  grid-template-columns:1fr!important;
  grid-template-rows:1fr; /* ячейка сетки растягивается на всю доступную высоту */
  flex:1;              /* занимает оставшееся место внутри #view-kiosk (flex column) */
  min-height:0!important; /* без этого flex-item не сжимается */
  padding-bottom:0;
}
body.kiosk-mode .kiosk-menu{
  min-height:0;
  overflow:hidden;  /* клипаем, скролл ниже */
}
body.kiosk-mode .kiosk-scroll{
  flex:1;
  min-height:0;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  padding-bottom:80px; /* отступ под плавающий островок */
}

/* Order done screen */
.kiosk-done{
  display:none;position:fixed;inset:0;z-index:9000;
  background:rgba(10,10,12,.95);
  backdrop-filter:blur(20px);
  flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:30px;
  animation:fadeOverlay .3s ease both;
}
.kiosk-done.show{display:flex}
.kd-order-num{
  font-size:clamp(60px,12vw,100px);font-weight:900;
  font-variant-numeric:tabular-nums;letter-spacing:-.04em;
  background:linear-gradient(135deg,var(--c-gold),var(--c-red));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  line-height:1;margin-bottom:10px;
}
.kd-title{font-size:22px;font-weight:800;margin-bottom:6px;color:#fff}
.kd-sub{font-size:15px;color:rgba(255,255,255,.90);margin-bottom:30px}
.kd-timer{font-size:36px;font-weight:900;color:var(--c-gold2);margin-bottom:20px}
.kd-new-btn{
  height:52px;padding:0 32px;border-radius:16px;border:none;cursor:pointer;
  background:var(--c-red);color:#fff;font-size:16px;font-weight:800;font-family:var(--font-ui);
  box-shadow:0 6px 20px rgba(232,24,58,.35);
  transition:transform .15s var(--spring);
}
.kd-new-btn:hover{transform:translateY(-2px)}

/* ══════════════════════════════════════════════════════════════
   KIOSK ORDER MODAL — auth + payment
══════════════════════════════════════════════════════════════ */
.kiosk-order-modal{
  position:fixed;inset:0;z-index:8500;
  background:rgba(0,0,0,.72);backdrop-filter:blur(20px) saturate(150%);
  display:none;align-items:center;justify-content:center;padding:20px;
}
.kiosk-order-modal.open{display:flex;animation:fadeOverlay .25s ease both}
.kom-box{
  background:var(--c-surface);border-radius:24px;
  width:100%;max-width:480px;
  box-shadow:0 24px 64px rgba(0,0,0,.55);
  overflow:hidden;
  animation:komSlideIn .3s var(--spring) both;
}
@keyframes komSlideIn{
  0%{transform:translateY(30px) scale(.97);opacity:0}
  100%{transform:translateY(0) scale(1);opacity:1}
}
/* Header */
.kom-head{
  display:flex;align-items:center;gap:10px;
  padding:16px 20px 14px;border-bottom:1px solid var(--c-border);
}
.kom-back-btn{
  background:none;border:none;cursor:pointer;min-width:60px;
  font-size:13px;color:var(--c-txt3);font-family:inherit;padding:4px 0;
}
.kom-back-btn:hover{color:var(--c-txt)}
.kom-head-title{font-size:16px;font-weight:800;color:var(--c-txt);flex:1;text-align:center}
.kom-close-btn{
  min-width:28px;width:28px;height:28px;border-radius:50%;
  background:rgba(255,255,255,.07);border:none;cursor:pointer;
  font-size:14px;color:var(--c-txt3);display:flex;align-items:center;justify-content:center;
}
.kom-close-btn:hover{background:rgba(255,255,255,.14);color:var(--c-txt)}
/* Summary */
.kom-summary{padding:8px 16px;border-bottom:1px solid var(--c-border);max-height:300px;overflow-y:auto}
.kom-sum-row{padding:8px 0;border-bottom:1px solid rgba(255,255,255,.04)}
[data-theme="light"] .kom-sum-row{border-bottom-color:rgba(0,0,0,.05)}
.kom-sum-row:last-child{border-bottom:none}
.kom-sum-top{display:flex;align-items:center;gap:7px;font-size:13px}
.kom-sum-ico{font-size:16px;flex-shrink:0}
.kom-sum-info{flex:1;min-width:0}
.kom-sum-name{color:var(--c-txt);font-weight:600;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kom-sum-mods{font-size:10px;color:var(--c-txt3);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kom-sum-price{font-weight:700;color:var(--c-txt);flex-shrink:0;font-size:13px}
.kom-free-tag{color:#22c55e;font-weight:700;font-size:12px}
.kom-sum-bot{display:flex;align-items:center;gap:5px;margin-top:5px;margin-left:23px}
.kom-sum-stepper{display:flex;align-items:center;background:var(--c-bg2);border-radius:8px;overflow:hidden;flex-shrink:0}
.kom-sum-step{width:26px;height:26px;display:flex;align-items:center;justify-content:center;
  font-size:15px;font-weight:700;color:var(--c-txt);background:none;border:none;cursor:pointer;transition:background .12s}
.kom-sum-step:hover{background:rgba(201,164,78,.18)}
.kom-sum-step-n{min-width:22px;text-align:center;font-size:13px;font-weight:700;color:var(--c-txt)}
.kom-sum-edit{display:flex;align-items:center;gap:3px;height:26px;padding:0 8px;font-size:11px;font-weight:600;
  color:var(--c-gold2);background:rgba(201,164,78,.12);border:none;border-radius:7px;cursor:pointer;
  transition:background .12s;white-space:nowrap}
.kom-sum-edit:hover{background:rgba(201,164,78,.22)}
.kom-sum-del{width:26px;height:26px;display:flex;align-items:center;justify-content:center;
  font-size:14px;color:var(--c-txt3);background:none;border:none;border-radius:7px;cursor:pointer;
  margin-left:auto;transition:background .12s,color .12s}
.kom-sum-del:hover{background:rgba(239,68,68,.15);color:#ef4444}
.kom-total-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:12px 20px;border-bottom:1px solid var(--c-border);
}
.kom-total-lbl{font-size:13px;color:var(--c-txt3)}
.kom-total-val{font-size:24px;font-weight:900;color:var(--c-txt);font-variant-numeric:tabular-nums}
/* States */
.kom-state{padding:20px}
/* User greeting */
.kom-user-greet{
  display:flex;align-items:center;gap:12px;
  padding:12px 16px;border-radius:14px;
  background:rgba(201,164,78,.07);border:1px solid rgba(201,164,78,.18);
  margin-bottom:18px;
}
.kom-greet-ico{font-size:24px;flex-shrink:0}
.kom-greet-name{font-size:14px;font-weight:700;color:var(--c-txt)}
.kom-greet-sub{font-size:12px;color:var(--c-txt3);margin-top:2px}
/* Payment buttons */
.kom-pay-label{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--c-txt3);margin-bottom:12px}
.kom-pay-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.kom-pay-btn{
  height:86px;border-radius:16px;border:1.5px solid var(--c-border);
  cursor:pointer;font-family:inherit;background:rgba(255,255,255,.03);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  transition:transform .15s var(--spring),box-shadow .15s,border-color .15s;
}
.kom-pay-btn:hover{transform:translateY(-3px)}
.kom-pay-btn:active{transform:scale(.97)}
.kpb-ico{font-size:28px}
.kpb-lbl{font-size:14px;font-weight:800;color:var(--c-txt)}
.kpb-sub{font-size:11px;color:var(--c-txt3)}
.kom-pay-btn.kom-online{
  background:rgba(232,24,58,.06);border-color:rgba(232,24,58,.28);
}
.kom-pay-btn.kom-online:hover{border-color:var(--c-red);box-shadow:0 6px 20px rgba(232,24,58,.22)}
.kom-pay-btn.kom-online .kpb-lbl{color:var(--c-red)}
[data-theme="light"] .kom-pay-btn{background:rgba(0,0,0,.02)}
/* Auth intro */
.kom-auth-top{text-align:center;margin-bottom:18px}
.kom-auth-ico{font-size:42px;margin-bottom:8px}
.kom-auth-title{font-size:17px;font-weight:800;color:var(--c-txt);margin-bottom:6px}
.kom-auth-sub{font-size:13px;color:var(--c-txt2);line-height:1.5}
/* Phone input */
.kom-phone-wrap{margin-bottom:14px}
.kom-phone-input{
  width:100%;height:54px;border-radius:14px;
  border:1.5px solid var(--c-border);background:rgba(255,255,255,.04);
  color:var(--c-txt);font-size:22px;font-weight:700;text-align:center;
  letter-spacing:.04em;outline:none;font-family:var(--font-ui);
  padding:0 16px;box-sizing:border-box;transition:border-color .2s,box-shadow .2s;
}
[data-theme="light"] .kom-phone-input{background:rgba(0,0,0,.03)}
.kom-phone-input:focus{border-color:rgba(232,24,58,.45);box-shadow:0 0 0 3px rgba(232,24,58,.10)}
/* Verify method btns */
.kom-verify-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.kom-verify-btn{
  height:52px;border-radius:14px;border:1.5px solid var(--c-border);
  background:transparent;cursor:pointer;font-family:inherit;
  font-size:14px;font-weight:700;color:var(--c-txt);
  display:flex;align-items:center;justify-content:center;gap:8px;
  transition:transform .15s var(--spring),border-color .2s,background .2s;
}
.kom-verify-btn:hover{transform:translateY(-2px)}
.kom-verify-btn.tg{border-color:rgba(27,146,209,.35);color:#1B92D1}
.kom-verify-btn.tg:hover{background:rgba(27,146,209,.09);border-color:rgba(27,146,209,.6)}
.kom-verify-btn.sms{border-color:rgba(34,197,94,.35);color:#22c55e}
.kom-verify-btn.sms:hover{background:rgba(34,197,94,.08);border-color:rgba(34,197,94,.6)}
.kom-skip{text-align:center}
.kom-skip-btn{
  background:none;border:none;cursor:pointer;
  font-size:12.5px;color:var(--c-txt3);font-family:inherit;
  text-decoration:underline;text-underline-offset:3px;
}
.kom-skip-btn:hover{color:var(--c-txt)}
/* Code input */
.kom-code-wrap{margin-bottom:12px}
.kom-code-input{
  width:100%;height:68px;border-radius:14px;
  border:1.5px solid var(--c-border);background:rgba(255,255,255,.04);
  color:var(--c-txt);font-size:34px;font-weight:800;text-align:center;
  letter-spacing:.3em;outline:none;font-family:var(--font-ui);
  padding:0 16px;box-sizing:border-box;transition:border-color .2s,box-shadow .2s,background .2s;
}
[data-theme="light"] .kom-code-input{background:rgba(0,0,0,.03)}
.kom-code-input:focus{border-color:rgba(34,197,94,.45);box-shadow:0 0 0 3px rgba(34,197,94,.10)}
.kom-code-input.err{border-color:rgba(232,24,58,.55)!important;animation:komShake .3s ease}
.kom-code-input.ok{border-color:rgba(34,197,94,.55)!important;background:rgba(34,197,94,.06)!important}
@keyframes komShake{
  0%,100%{transform:translateX(0)}
  25%{transform:translateX(-7px)}
  75%{transform:translateX(7px)}
}
.kom-resend-row{text-align:center;margin-bottom:14px}
.kom-resend-timer{font-size:12px;color:var(--c-txt3)}
.kom-resend-btn{
  background:none;border:none;cursor:pointer;font-family:inherit;
  font-size:13px;color:var(--c-txt2);text-decoration:underline;text-underline-offset:3px;
}
/* Demo hint */
.kom-demo-hint{
  padding:8px 12px;border-radius:10px;margin-bottom:14px;
  background:rgba(201,164,78,.07);border:1px solid rgba(201,164,78,.16);
  font-size:12px;color:var(--c-gold2,#e8c86a);text-align:center;
}
/* Action button */
.kom-action-btn{
  width:100%;height:52px;border-radius:14px;border:none;cursor:pointer;
  background:var(--c-red);color:#fff;font-size:15px;font-weight:800;font-family:inherit;
  box-shadow:0 4px 16px rgba(232,24,58,.28);
  transition:transform .15s var(--spring);
}
.kom-action-btn:hover{transform:translateY(-2px)}
.kom-action-btn:active{transform:scale(.97)}
.kom-action-btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}

/* ════════════════════════════════════════
   COFFEE LOYALTY CARD (in profile)
════════════════════════════════════════ */
.coffee-loyalty-card{
  border-radius:var(--r-xl);overflow:hidden;
  background:linear-gradient(135deg,#1a0e06,#2d1a08);
  border:1px solid rgba(201,164,78,.22);
  padding:20px;
  box-shadow:0 6px 28px rgba(0,0,0,.28),inset 0 1px 0 rgba(201,164,78,.12);
  position:relative;margin-bottom:14px;
}
[data-theme="light"] .coffee-loyalty-card{
  background:linear-gradient(135deg,#fff8e8,#fff0cc);
  box-shadow:0 4px 20px rgba(201,164,78,.18);
}
.coffee-loyalty-card::before{
  content:"";position:absolute;top:-30px;right:-30px;
  width:130px;height:130px;border-radius:50%;
  background:radial-gradient(rgba(201,164,78,.15),transparent 70%);
  pointer-events:none;
}
.clc-header{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.clc-logo{font-size:28px}
.clc-title{font-size:16px;font-weight:800;color:var(--c-gold2)}
.clc-sub{font-size:12px;color:var(--c-txt3)}
/* Cups grid */
.clc-cups{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.clc-cup{
  display:flex;flex-direction:column;align-items:center;gap:4px;
  width:calc(12.5% - 7px);min-width:36px;
}
@media(max-width:400px){.clc-cup{min-width:30px}}
.clc-cup-ico{
  width:38px;height:38px;border-radius:50%;
  border:2px solid var(--c-border);background:rgba(255,255,255,.03);
  display:flex;align-items:center;justify-content:center;font-size:18px;
  transition:transform .2s var(--spring),border-color .2s,background .2s;
}
@media(max-width:400px){.clc-cup-ico{width:30px;height:30px;font-size:14px}}
.clc-cup.filled .clc-cup-ico{background:rgba(201,164,78,.18);border-color:rgba(201,164,78,.50)}
.clc-cup.free .clc-cup-ico{
  background:linear-gradient(135deg,rgba(201,164,78,.30),rgba(232,24,58,.20));
  border-color:rgba(201,164,78,.60);
  box-shadow:0 0 12px rgba(201,164,78,.25);
  animation:cupGlow 2s ease infinite;
}
@keyframes cupGlow{0%,100%{box-shadow:0 0 8px rgba(201,164,78,.20)}50%{box-shadow:0 0 18px rgba(201,164,78,.45)}}
.clc-cup-n{font-size:10px;color:var(--c-txt3);font-weight:600}
.clc-cup.filled .clc-cup-n{color:var(--c-gold2)}
.clc-cup.free .clc-cup-n{color:var(--c-gold2);font-weight:800}
/* Progress text */
.clc-progress-text{
  font-size:13px;color:var(--c-txt2);padding:8px 12px;
  border-radius:var(--r-sm);background:rgba(201,164,78,.08);
  border:1px solid rgba(201,164,78,.15);margin-bottom:10px;line-height:1.5;
}
.clc-progress-text b{color:var(--c-gold2)}
.clc-actions{display:flex;gap:8px;flex-wrap:wrap}
/* Coffee history */
.coffee-order-item{
  display:flex;align-items:center;gap:10px;
  padding:9px 12px;border-radius:var(--r-sm);
  border:1px solid var(--c-border2);background:rgba(255,255,255,.025);
  font-size:13px;margin-bottom:7px;
}
[data-theme="light"] .coffee-order-item{background:rgba(0,0,0,.025)}
.coi-ico{font-size:18px;flex-shrink:0}
.coi-name{flex:1;font-weight:600;color:var(--c-txt)}
.coi-price{font-weight:700;color:var(--c-txt);flex-shrink:0}
.coi-date{font-size:12px;color:var(--c-txt3);flex-shrink:0}
.coi-cup{font-size:11.5px;font-weight:700;color:var(--c-gold2);flex-shrink:0}


/* ── Kiosk entry button (for tablet/desktop) ── */
.kiosk-entry-btn{
  display:none;
  position:fixed;bottom:20px;left:50%;transform:translateX(-50%);
  z-index:150;
  padding:12px 24px;border-radius:var(--r-pill);border:none;cursor:pointer;
  background:linear-gradient(135deg,rgba(201,164,78,.90),rgba(232,24,58,.70));
  color:#fff;font-size:14px;font-weight:800;font-family:var(--font-ui);
  box-shadow:0 6px 24px rgba(201,164,78,.30);
  transition:transform .18s var(--spring),box-shadow .18s;
  white-space:nowrap;
}
.kiosk-entry-btn:hover{transform:translateX(-50%) translateY(-3px);box-shadow:0 10px 32px rgba(201,164,78,.40)}
/* Show only when navigated to kiosk path */
body.show-kiosk-btn .kiosk-entry-btn{display:block}


/* ── Coffee card cups fix ── */
.clc-cups{
  display:grid;
  grid-template-columns:repeat(8,1fr);
  gap:6px;margin-bottom:12px;
}
.clc-cup{
  display:flex;flex-direction:column;align-items:center;gap:3px;
  width:auto;min-width:0;
}
.clc-cup-ico{
  width:100%;aspect-ratio:1/1;max-width:44px;
  border-radius:50%;
  border:2px solid var(--c-border);background:rgba(255,255,255,.03);
  display:flex;align-items:center;justify-content:center;
  font-size:clamp(14px,3vw,20px);
  transition:transform .2s var(--spring),border-color .2s,background .2s;
}
.clc-cup.filled .clc-cup-ico{background:rgba(201,164,78,.18);border-color:rgba(201,164,78,.50)}
.clc-cup.free-earned .clc-cup-ico{
  background:linear-gradient(135deg,rgba(34,197,94,.25),rgba(201,164,78,.20));
  border-color:rgba(34,197,94,.50);
  box-shadow:0 0 14px rgba(34,197,94,.30);
  animation:cupGlowGreen 1.8s ease infinite;
}
@keyframes cupGlowGreen{0%,100%{box-shadow:0 0 8px rgba(34,197,94,.20)}50%{box-shadow:0 0 20px rgba(34,197,94,.50)}}
.clc-cup-n{font-size:10px;color:var(--c-txt3);font-weight:600;line-height:1}
.clc-cup.filled .clc-cup-n,.clc-cup.free-earned .clc-cup-n{color:var(--c-gold2)}
.clc-use-btn{
  width:100%;height:40px;border-radius:12px;border:none;cursor:pointer;
  background:linear-gradient(135deg,rgba(34,197,94,.80),rgba(201,164,78,.60));
  color:#fff;font-size:13.5px;font-weight:800;font-family:var(--font-ui);
  box-shadow:0 4px 16px rgba(34,197,94,.25);
  animation:freePulse 2s ease infinite;
  display:none;
}
.clc-use-btn.show{display:block}
@keyframes freePulse{0%,100%{box-shadow:0 4px 12px rgba(34,197,94,.20)}50%{box-shadow:0 6px 22px rgba(34,197,94,.45)}}


/* ════════════════════════════════════════
   KIOSK UPGRADE
════════════════════════════════════════ */
/* Tablet landscape — optimal kiosk mode */
@media(orientation:landscape) and (max-width:1024px){
  .kiosk-body{grid-template-columns:1fr 280px}
  .kiosk-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}
}

/* Mobile portrait kiosk */
@media(max-width:600px){
  .kiosk-header{padding:10px 12px}
  .kiosk-logo-text b{font-size:14px}
  .kiosk-logo-text span{display:none}
  .kiosk-time{font-size:18px}
  .kiosk-menu{padding:10px}
  .kiosk-cats{gap:6px;overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px;scrollbar-width:none}
  .kiosk-cats::-webkit-scrollbar{display:none}
  .kiosk-cat-btn{padding:6px 10px;font-size:12px;white-space:nowrap;flex-shrink:0}
  .kiosk-grid{grid-template-columns:repeat(3,1fr);gap:8px}
  .kiosk-card-name{font-size:11.5px}
  .kiosk-card-price{font-size:13px}
  /* Cart below on mobile */
  .kiosk-cart{max-height:220px}
  .kiosk-cart-head{padding:8px 12px;font-size:13px}
  .kiosk-cart-items{padding:6px 10px}
  .kiosk-cart-foot{padding:10px 12px}
  .kiosk-total .val{font-size:18px}
  .kiosk-pay-btn{height:40px;font-size:12.5px}
}

/* Card hover animation */
.kiosk-card{position:relative}
.kiosk-card::after{
  content:"✓ Добавлено!";
  position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;
  background:rgba(34,197,94,.85);
  border-radius:var(--r-lg);
  color:#fff;font-size:13px;font-weight:800;font-family:var(--font-ui);
  opacity:0;transition:opacity .15s;pointer-events:none;
}
.kiosk-card.flash::after{opacity:1}

/* Kiosk categories with icon + count */
.kiosk-cat-btn{position:relative}
.kiosk-cat-count{
  position:absolute;top:-4px;right:-4px;
  width:16px;height:16px;border-radius:50%;
  background:var(--c-red);color:#fff;
  font-size:10px;font-weight:800;
  display:none;align-items:center;justify-content:center;
}
.kiosk-cat-btn.has-items .kiosk-cat-count{display:flex}

/* Special item tags */
.kiosk-tag{
  position:absolute;top:6px;left:6px;
  padding:2px 6px;border-radius:5px;
  font-size:10px;font-weight:800;
  background:var(--c-red);color:#fff;
  z-index:2;
}
.kiosk-tag.popular{background:rgba(201,164,78,.90)}
.kiosk-tag.new{background:rgba(34,197,94,.85)}

/* Kiosk loyalty bar */
.kiosk-loyalty-strip{
  background:linear-gradient(90deg,rgba(201,164,78,.15),rgba(232,24,58,.10));
  border-bottom:1px solid rgba(201,164,78,.15);
  padding:6px 14px;
  display:none;align-items:center;gap:10px;
  font-size:12.5px;flex-shrink:0;
}
.kiosk-loyalty-strip.show{display:flex}
.kls-cups{display:flex;gap:4px}
.kls-cup{font-size:14px;line-height:1}

/* Free coffee selector modal */
.kfc-modal{
  position:fixed;inset:0;z-index:10100;
  display:flex;align-items:flex-end;justify-content:center;
  background:rgba(0,0,0,.55);
  opacity:0;pointer-events:none;transition:opacity .22s;
}
.kfc-modal.open{opacity:1;pointer-events:auto;}
.kfc-box{
  background:var(--c-surface);border-radius:20px 20px 0 0;
  padding:20px 16px 32px;width:100%;max-width:480px;
  transform:translateY(32px);transition:transform .25s cubic-bezier(.32,.72,0,1);
}
.kfc-modal.open .kfc-box{transform:translateY(0);}
.kfc-handle{width:40px;height:4px;border-radius:2px;background:rgba(128,128,128,.25);margin:0 auto 16px;}
.kfc-title{font-weight:800;font-size:17px;margin-bottom:4px;color:var(--c-txt);}
.kfc-sub{font-size:13px;color:var(--c-txt3);margin-bottom:16px;line-height:1.4;}
.kfc-list{display:flex;flex-direction:column;gap:8px;}
.kfc-item{
  display:flex;align-items:center;gap:12px;
  padding:12px 14px;border-radius:14px;
  border:1.5px solid var(--c-border);
  cursor:pointer;transition:border-color .15s,background .15s;
  background:var(--c-surface);
}
.kfc-item:hover,.kfc-item:active{border-color:var(--c-gold2);background:rgba(201,164,78,.06);}
.kfc-ico{font-size:28px;line-height:1;}
.kfc-info{flex:1;min-width:0;}
.kfc-name{font-weight:600;font-size:14px;color:var(--c-txt);}
.kfc-mods{font-size:11px;color:var(--c-txt3);margin-top:1px;}
.kfc-detail{font-size:12px;color:var(--c-txt3);}
.kfc-badge{font-size:12px;font-weight:700;color:#fff;
  background:linear-gradient(135deg,#e8183a,#c91d3a);
  padding:3px 9px;border-radius:8px;white-space:nowrap;}

/* Free item in cart */
.kci-free-row{
  background:linear-gradient(90deg,rgba(0,180,90,.07),rgba(0,180,90,.04));
  border:1px solid rgba(0,180,90,.18);border-radius:10px;
}
.kci-free-badge{
  font-size:10px;font-weight:700;color:#0a8;
  background:rgba(0,180,90,.12);border-radius:5px;padding:1px 5px;
  margin-left:4px;
}

/* Done screen improvements */
.kd-receipt{
  background:rgba(255,255,255,.07);border-radius:var(--r-md);
  padding:12px 16px;margin:14px 0;text-align:left;
  font-size:12.5px;max-width:300px;
  border:1px solid var(--c-border);
}
.kd-receipt-row{display:flex;justify-content:space-between;gap:12px;padding:4px 0;border-bottom:1px solid rgba(255,255,255,.06)}
.kd-receipt-row:last-child{border-bottom:none;font-weight:800;font-size:14px;margin-top:4px;padding-top:6px}

/* Kiosk product quickview */
.kiosk-quickview{
  position:fixed;inset:0;z-index:9500;
  background:rgba(0,0,0,.75);backdrop-filter:blur(12px);
  display:none;align-items:center;justify-content:center;
  padding:20px;
}
.kiosk-quickview.show{display:flex;animation:fadeOverlay .2s ease both}
.kqv-box{
  background:var(--c-surface);border-radius:var(--r-xl);
  border:1px solid var(--c-border);
  width:min(380px,100%);overflow:hidden;
  animation:modalIn .25s var(--ease) both;
}
.kqv-img{
  height:180px;background:var(--c-surface);
  display:flex;align-items:center;justify-content:center;font-size:64px;
}
.kqv-body{padding:18px}
.kqv-name{font-size:20px;font-weight:800;margin-bottom:4px}
.kqv-desc{font-size:13.5px;color:var(--c-txt2);margin-bottom:10px}
.kqv-price{font-size:24px;font-weight:900;margin-bottom:14px}
.kqv-row{display:flex;align-items:center;gap:10px}
.kqv-count-btn{width:40px;height:40px;border-radius:12px;border:1px solid var(--c-border);
  background:rgba(255,255,255,.05);cursor:pointer;font-size:20px;font-weight:700;
  display:flex;align-items:center;justify-content:center;color:var(--c-txt)}
.kqv-count-n{font-size:20px;font-weight:900;min-width:30px;text-align:center}
.kqv-add-btn{flex:1;height:46px;border-radius:14px;border:none;cursor:pointer;
  background:var(--c-red);color:#fff;font-size:15px;font-weight:800;font-family:var(--font-ui)}


/* ════════════════════════════════════════
   KIOSK LAYOUT FIX — override main/container
════════════════════════════════════════ */
body.kiosk-mode .main{
  padding:0 !important;
  margin:0 !important;
}
body.kiosk-mode .main > .container{
  padding:0 !important;
  margin:0 !important;
  max-width:100% !important;
  width:100% !important;
}
#view-kiosk.active{
  display:flex !important;
  flex-direction:column;
  min-height:100vh;
  padding:0 !important;
  animation:none !important;
}


/* ══════════════════════════════════════════════════════
   KIOSK FULL REDESIGN — override layer
══════════════════════════════════════════════════════ */

/* 1. Kill inherited padding/margin from .main */
body.kiosk-mode .main,
body.kiosk-mode .main>.container{
  padding:0!important;margin:0!important;
  max-width:100%!important;width:100%!important;
}
#view-kiosk.active{
  display:flex!important;flex-direction:column;
  height:100dvh;height:100vh;
  overflow:hidden!important;
  padding:0!important;animation:none!important;
}

/* 2. Header — dark glass, no extra margin */
.kiosk-header{
  display:flex!important;align-items:center;justify-content:space-between;gap:10px;
  padding:10px 14px!important;flex-shrink:0;
  background:rgba(10,8,6,.85)!important;
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid rgba(201,164,78,.18)!important;
  position:sticky;top:0;z-index:10;
}
[data-theme="light"] .kiosk-header{background:rgba(255,255,255,.90)!important}
.kiosk-logo img{width:34px;height:34px;border-radius:8px}
.kiosk-logo svg{width:40px!important;height:40px!important;flex-shrink:0}
.kiosk-logo-text b{font-size:14px;font-weight:800}
.kiosk-logo-text span{font-size:10.5px;opacity:.55}
.kiosk-time{font-size:18px;font-weight:900;font-variant-numeric:tabular-nums;
  background:linear-gradient(135deg,var(--c-gold),var(--c-red));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.kiosk-exit{font-size:11px;padding:5px 10px;border-radius:8px}

/* 3. Loyalty strip */
.kiosk-loyalty-strip{
  padding:6px 14px!important;font-size:12px!important;
}
.kls-cup{font-size:12px}

/* 4. Body */
.kiosk-body{
  display:grid;
  grid-template-columns:1fr 290px;
  flex:1;overflow:hidden;min-height:0;
}
@media(max-width:820px){.kiosk-body{grid-template-columns:1fr;grid-template-rows:1fr auto}}
@media(max-width:540px){.kiosk-body{grid-template-rows:1fr 240px}}

/* 5. Menu area — flex column with scroll */
.kiosk-menu{display:flex!important;flex-direction:column;overflow:hidden}

/* 6. Categories — horizontal tabs */
.kiosk-cats{
  display:flex!important;gap:0!important;flex-wrap:nowrap!important;
  overflow-x:auto;scrollbar-width:none;
  border-bottom:1px solid rgba(255,255,255,.08);
  background:rgba(0,0,0,.35);flex-shrink:0;
}
[data-theme="light"] .kiosk-cats{background:rgba(0,0,0,.04);border-color:rgba(0,0,0,.08)}
.kiosk-cats::-webkit-scrollbar{display:none}
.kiosk-cat-btn{
  display:flex!important;flex-direction:column;align-items:center;
  padding:9px 12px 7px!important;white-space:nowrap;flex-shrink:0;
  border:none!important;border-bottom:2px solid transparent!important;
  background:transparent!important;
  font-size:10.5px!important;font-weight:700!important;
  color:rgba(255,255,255,.40)!important;
  transition:color .15s,border-color .15s!important;
  border-radius:0!important;
}
[data-theme="light"] .kiosk-cat-btn{color:rgba(0,0,0,.35)!important}
.kiosk-cat-btn .cat-emoji{font-size:18px;display:block;margin-bottom:3px;line-height:1}
.kiosk-cat-btn.active{
  color:#fff!important;
  border-bottom-color:var(--c-red)!important;
}
[data-theme="light"] .kiosk-cat-btn.active{color:#111!important}
.kiosk-cat-count{
  position:absolute;top:4px;right:6px;
  min-width:15px;height:15px;border-radius:8px;padding:0 3px;
  background:var(--c-red);color:#fff;
  font-size:9px;font-weight:800;
  display:none!important;align-items:center;justify-content:center;
}
.kiosk-cat-btn.has-items .kiosk-cat-count{display:flex!important}

/* 7. Scroll container */
.kiosk-scroll{
  flex:1;overflow-y:auto;padding:12px;
  scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.10) transparent;
}
@media(max-width:540px){.kiosk-scroll{padding:8px}}
.kiosk-scroll::-webkit-scrollbar{width:3px}
.kiosk-scroll::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:2px}

/* 8. Product grid */
.kiosk-grid{
  display:grid!important;
  grid-template-columns:repeat(auto-fill,minmax(145px,1fr));
  gap:10px;
}
@media(max-width:820px){.kiosk-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}}
@media(max-width:540px){.kiosk-grid{grid-template-columns:repeat(3,1fr);gap:7px}}
@media(max-width:360px){.kiosk-grid{grid-template-columns:repeat(2,1fr)}}

/* 9. Product cards */
.kiosk-card{
  background:rgba(22,18,14,.80)!important;border-radius:14px!important;
  border:1px solid rgba(255,255,255,.08)!important;
  overflow:hidden;cursor:pointer;
  transition:transform .18s var(--ease),border-color .15s,box-shadow .15s!important;
  display:flex!important;flex-direction:column;position:relative;
}
[data-theme="light"] .kiosk-card{background:rgba(255,255,255,.90)!important;border-color:rgba(0,0,0,.08)!important}
.kiosk-card:active{transform:scale(.95)!important}
.kiosk-card.in-cart{border-color:rgba(34,197,94,.40)!important}
.kiosk-card-img{
  aspect-ratio:1;
  display:flex!important;align-items:center;justify-content:center;
  font-size:clamp(28px,5vw,42px);
  background:rgba(255,255,255,.03);border-bottom:1px solid rgba(255,255,255,.06);
}
[data-theme="light"] .kiosk-card-img{background:rgba(0,0,0,.03);border-color:rgba(0,0,0,.06)}
.kiosk-card-body{padding:8px 9px 4px;flex:1}
.kiosk-card-name{
  font-size:12px!important;font-weight:700!important;
  color:var(--c-txt);line-height:1.25;margin-bottom:3px;
}
.kiosk-card-price{font-size:13.5px!important;font-weight:900!important;color:var(--c-txt);margin-bottom:0}
.kiosk-card-add{
  width:100%;height:27px!important;border:none;cursor:pointer;
  background:rgba(232,24,58,.80)!important;color:#fff;
  font-size:11px!important;font-weight:700;font-family:inherit;
  border-radius:0 0 13px 13px!important;
  transition:background .12s;
}
.kiosk-card-add:hover{background:var(--c-red)!important}
@media(max-width:540px){
  .kiosk-card-body{padding:6px 7px 3px}
  .kiosk-card-name{font-size:11px!important}
  .kiosk-card-price{font-size:12px!important}
}

/* 10. Tag badges */
.kiosk-tag{
  position:absolute;top:5px;left:5px;z-index:2;
  padding:2px 5px;border-radius:4px;
  font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;
}
.kiosk-tag.popular{background:rgba(201,164,78,.90);color:#fff}
.kiosk-tag.new{background:rgba(34,197,94,.85);color:#fff}
.kiosk-card-badge{
  position:absolute;top:5px;right:5px;
  min-width:20px;height:20px;border-radius:10px;padding:0 4px;
  background:var(--c-red);color:#fff;
  font-size:10px;font-weight:800;
  display:none;align-items:center;justify-content:center;
  box-shadow:0 2px 6px rgba(232,24,58,.40);
}
.kiosk-card.in-cart .kiosk-card-badge{display:flex!important}

/* 11. Cart sidebar */
.kiosk-cart{
  display:flex!important;flex-direction:column;
  border-left:1px solid rgba(255,255,255,.07);
  background:rgba(0,0,0,.30);
  overflow:hidden;
}
[data-theme="light"] .kiosk-cart{background:rgba(0,0,0,.02);border-left-color:rgba(0,0,0,.07)}
@media(max-width:820px){.kiosk-cart{border-left:none;border-top:1px solid rgba(255,255,255,.08)}}
.kiosk-cart-head{
  padding:9px 12px!important;border-bottom:1px solid rgba(255,255,255,.07);
  font-size:13px!important;font-weight:800;flex-shrink:0;
}
.kiosk-cart-items{
  flex:1;overflow-y:auto;padding:7px 11px;
  scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.10) transparent;
}
.kiosk-cart-item{
  display:flex;align-items:center;gap:7px;
  padding:6px 0;border-bottom:1px solid rgba(255,255,255,.06);
}
.kiosk-cart-item:last-child{border-bottom:none}
.kci-ico{font-size:17px;flex-shrink:0;width:20px;text-align:center}
.kci-info{flex:1;min-width:0}
.kci-name{font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kci-mods{font-size:10px;color:var(--c-txt3);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kci-qty{display:flex;align-items:center;gap:4px;flex-shrink:0}
.kci-btn{width:22px;height:22px;border-radius:6px;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.05);cursor:pointer;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;color:var(--c-txt);transition:background .1s}
.kci-btn:hover{background:rgba(232,24,58,.25)}
.kci-n{font-size:13px;font-weight:800;min-width:16px;text-align:center}
.kci-price{font-size:12px;font-weight:800;flex-shrink:0;margin-left:2px}

/* Sticky total footer */
.kiosk-cart-foot{
  padding:10px 12px!important;border-top:1px solid rgba(255,255,255,.08);
  background:rgba(0,0,0,.50);flex-shrink:0;
}
[data-theme="light"] .kiosk-cart-foot{background:rgba(0,0,0,.04)}
.kiosk-total{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}
.kiosk-total .lbl{font-size:12px;color:var(--c-txt3)}
.kiosk-total .val{font-size:20px;font-weight:900;font-variant-numeric:tabular-nums}
.kiosk-pay-btns{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.kiosk-pay-btn{height:42px!important;border-radius:12px!important;font-size:12.5px!important;font-weight:800}
.kiosk-pay-btn.online{background:var(--c-red)!important;color:#fff;box-shadow:0 4px 14px rgba(232,24,58,.28)}
.kiosk-pay-btn.cash{background:rgba(255,255,255,.07)!important;color:var(--c-txt);border:1px solid rgba(255,255,255,.10)}

/* 12. Combo strip */
.kiosk-combos{margin-bottom:14px}
.kiosk-combo-label{
  font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;
  color:var(--c-gold2);margin-bottom:8px;display:flex;align-items:center;gap:5px;
}
.kiosk-combo-strip{
  display:flex;gap:9px;
  overflow-x:auto;scrollbar-width:none;padding-bottom:3px;
}
.kiosk-combo-strip::-webkit-scrollbar{display:none}
.kiosk-combo-card{
  flex:0 0 175px;padding:10px 12px;border-radius:12px;
  border:1px solid rgba(201,164,78,.22);
  background:linear-gradient(135deg,rgba(201,164,78,.09),rgba(232,24,58,.05));
  cursor:pointer;transition:transform .15s,border-color .15s;
}
.kiosk-combo-card:hover{transform:translateY(-2px);border-color:rgba(201,164,78,.40)}
.kiosk-combo-card:active{transform:scale(.97)}
.kcc-title{font-size:13px;font-weight:800;margin-bottom:3px;color:var(--c-txt)}
.kcc-items{font-size:11px;color:var(--c-txt3);margin-bottom:6px;line-height:1.4}
.kcc-footer{display:flex;align-items:baseline;gap:6px}
.kcc-price{font-size:14px;font-weight:900;color:var(--c-txt)}
.kcc-old{font-size:12px;color:var(--c-txt3);text-decoration:line-through}
.kcc-save{font-size:11px;font-weight:800;color:#22c55e}

/* 13. Done screen */
.kiosk-done{
  position:fixed!important;inset:0;z-index:9000;
  background:rgba(6,5,4,.96)!important;backdrop-filter:blur(24px);
  flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:24px;display:none;
}
.kiosk-done.show{display:flex!important;animation:fadeOverlay .3s ease both}
.kd-order-num{
  font-size:clamp(64px,14vw,108px);font-weight:900;letter-spacing:-.04em;
  background:linear-gradient(135deg,var(--c-gold),var(--c-red));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  line-height:1;margin-bottom:6px;
}
.kd-title{font-size:20px;font-weight:800;margin-bottom:4px;color:#fff}
.kd-sub{font-size:13px;color:rgba(255,255,255,.90);margin-bottom:12px}
.kd-timer{font-size:32px;font-weight:900;color:var(--c-gold2);margin-bottom:8px}
.kd-receipt{
  background:rgba(255,255,255,.06);border-radius:12px;padding:10px 14px;
  margin:8px 0;text-align:left;font-size:12.5px;max-width:280px;width:100%;
  border:1px solid rgba(255,255,255,.08);
}
.kd-receipt-row{display:flex;justify-content:space-between;gap:10px;padding:4px 0;border-bottom:1px solid rgba(255,255,255,.06);color:rgba(255,255,255,.75);font-size:12px}
.kd-receipt-row:last-child{border-bottom:none;font-weight:800;color:#fff;font-size:14px;padding-top:6px}
.kd-hint{font-size:12.5px;color:var(--c-txt3);margin-bottom:20px}
.kd-new-btn{height:48px;padding:0 28px;border-radius:14px;border:none;cursor:pointer;background:var(--c-red);color:#fff;font-size:14px;font-weight:800;font-family:inherit;box-shadow:0 6px 18px rgba(232,24,58,.32);transition:transform .15s var(--spring)}
.kd-new-btn:hover{transform:translateY(-2px)}

/* 14. Coffee options bottom-sheet */
.coffee-opts-modal{
  position:fixed;inset:0;z-index:9200;
  background:rgba(0,0,0,.72);backdrop-filter:blur(14px);
  display:none;align-items:flex-end;justify-content:center;padding:0;
}
@media(min-width:600px){.coffee-opts-modal{align-items:center;padding:16px}}
.coffee-opts-modal.show{display:flex!important;animation:fadeOverlay .22s ease both}
.com-box{
  background:#18141000;
  background:color-mix(in srgb,var(--c-surface) 96%,transparent);
  border-radius:22px 22px 0 0;
  border:1px solid var(--c-border);
  width:min(500px,100%);max-height:88vh;
  overflow-y:auto;overflow-x:hidden;
  animation:slideUpSheet .32s var(--ease) both;
  scrollbar-width:thin;
}
@media(min-width:600px){.com-box{border-radius:20px;animation:modalIn .28s var(--ease) both}}
@keyframes slideUpSheet{from{transform:translateY(100%)}to{transform:translateY(0)}}
.com-handle{width:34px;height:4px;border-radius:2px;background:var(--c-border);margin:9px auto 0;display:block}
@media(min-width:600px){.com-handle{display:none}}
.com-header{padding:14px 18px 10px;border-bottom:1px solid var(--c-border)}
.com-emoji{font-size:30px;margin-bottom:6px}
.com-title{font-size:18px;font-weight:800;letter-spacing:-.02em;margin-bottom:4px}
.com-price-row{display:flex;align-items:baseline;gap:8px}
.com-price-now{font-size:24px;font-weight:900}
.com-price-extras{font-size:13px;color:var(--c-txt3)}
.com-section{padding:13px 18px 0}
.com-section-lbl{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--c-txt3);margin-bottom:7px}
.com-opts{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:2px}
.com-opt{
  padding:7px 12px;border-radius:var(--r-pill);border:1px solid var(--c-border);
  background:rgba(255,255,255,.04);cursor:pointer;
  font-size:13px;font-weight:600;font-family:inherit;color:var(--c-txt);
  transition:border-color .13s,background .13s;user-select:none;
}
[data-theme="light"] .com-opt{background:rgba(0,0,0,.03)}
.com-opt:active{transform:scale(.95)}
.com-opt.selected{border-color:var(--c-red)!important;background:rgba(232,24,58,.10)!important}
.com-opt.extra-opt{border-color:rgba(201,164,78,.25);color:var(--c-gold2)}
.com-opt.extra-opt.selected{background:rgba(201,164,78,.10)!important;border-color:rgba(201,164,78,.50)!important}
/* Stepper */
.com-stepper{display:flex;align-items:center;gap:10px;margin-top:2px}
.com-step-btn{width:36px;height:36px;border-radius:10px;border:1px solid var(--c-border);background:rgba(255,255,255,.05);cursor:pointer;font-size:18px;font-weight:700;display:flex;align-items:center;justify-content:center;color:var(--c-txt);transition:background .1s}
.com-step-btn:hover{background:rgba(232,24,58,.18)}
.com-step-n{font-size:18px;font-weight:900;min-width:26px;text-align:center}
/* Footer */
.com-foot{
  padding:12px 18px 16px;
  position:sticky;bottom:0;
  background:var(--c-surface);
  border-top:1px solid var(--c-border);
}
.com-add-btn{
  width:100%;height:50px;border-radius:14px;border:none;cursor:pointer;
  background:var(--c-red);color:#fff;font-size:15px;font-weight:800;font-family:inherit;
  transition:transform .15s var(--spring);display:flex;align-items:center;justify-content:center;gap:8px;
  box-shadow:0 6px 20px rgba(232,24,58,.28);
}
.com-add-btn:hover{transform:translateY(-2px)}
.com-add-btn:active{transform:scale(.97)}

/* 15. Mobile sticky total bar (below cart or bottom of screen) */
.kiosk-sticky-total{
  display:none;
  position:fixed;bottom:0;left:0;right:0;z-index:100;
  padding:10px 14px;padding-bottom:calc(10px + env(safe-area-inset-bottom));
  background:rgba(10,8,6,.94);backdrop-filter:blur(20px);
  border-top:1px solid rgba(201,164,78,.20);
  align-items:center;justify-content:space-between;gap:12px;
  animation:slideUp .25s var(--ease) both;
}
[data-theme="light"] .kiosk-sticky-total{background:rgba(255,255,255,.94)}
body.kiosk-mode.kiosk-has-items .kiosk-sticky-total{display:flex}
/* Desktop kiosk: превращаем sticky bar в плавающий остров */
@media(min-width:820px){
  body.kiosk-mode .kiosk-sticky-total{
    left:50%;right:auto;transform:translateX(-50%);
    bottom:24px;border-radius:20px;border-top:none;
    width:auto;min-width:380px;padding:14px 22px;
    border:1px solid rgba(201,164,78,.22);
    box-shadow:0 8px 40px rgba(0,0,0,.50);
  }
  body.kiosk-mode.kiosk-has-items .kiosk-sticky-total{display:flex!important}
}
.kst-info{min-width:0}
.kst-qty{font-size:12px;color:var(--c-txt3)}
.kst-price{font-size:20px;font-weight:900;font-variant-numeric:tabular-nums}
.kst-btn{
  height:46px;padding:0 22px;border-radius:14px;border:none;cursor:pointer;
  background:var(--c-red);color:#fff;font-size:14px;font-weight:800;font-family:inherit;
  white-space:nowrap;flex-shrink:0;
  box-shadow:0 4px 16px rgba(232,24,58,.30);
  transition:transform .15s var(--spring);
}
.kst-btn:hover{transform:scale(1.03)}
/* padding-bottom теперь задан в body.kiosk-mode .kiosk-scroll */

/* ══ FLOWER SUBSCRIPTION ════════════════════════════════ */
.sub-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
  margin-top:24px;
}
.sub-card{
  position:relative;
  display:flex;flex-direction:column;
  background:var(--c-card);
  border:1px solid var(--c-border);
  border-radius:var(--r-xl);
  padding:24px 20px 20px;
  transition:transform .2s var(--spring),border-color .2s,box-shadow .2s;
}
.sub-card:hover{
  transform:translateY(-4px);
  box-shadow:0 12px 36px rgba(0,0,0,.30);
}
.sub-card.popular{
  border-color:rgba(232,24,58,.35);
  background:linear-gradient(160deg,rgba(232,24,58,.06) 0%,var(--c-card) 50%);
  box-shadow:0 4px 24px rgba(232,24,58,.14);
}
.sub-card.popular:hover{
  box-shadow:0 14px 40px rgba(232,24,58,.22);
}
.sub-popular-badge{
  position:absolute;top:-12px;left:50%;transform:translateX(-50%);
  background:linear-gradient(135deg,var(--c-red),var(--c-gold));
  color:#fff;font-size:10px;font-weight:800;letter-spacing:.06em;
  text-transform:uppercase;border-radius:var(--r-pill);
  padding:4px 14px;white-space:nowrap;
  font-family:var(--font-ui);
  box-shadow:0 2px 10px rgba(232,24,58,.35);
}
.sub-ico{font-size:32px;margin-bottom:10px}
.sub-name{
  font-size:17px;font-weight:800;color:var(--c-txt);
  font-family:var(--font-ui);margin-bottom:4px;
}
.sub-freq{
  font-size:11px;font-weight:600;color:var(--c-txt3);
  text-transform:uppercase;letter-spacing:.06em;
  font-family:var(--font-ui);margin-bottom:16px;
}
.sub-price{
  display:flex;align-items:baseline;gap:4px;margin-bottom:18px;
}
.sub-price-val{
  font-size:28px;font-weight:800;color:var(--c-txt);
  font-family:var(--font-ui);line-height:1;
}
.sub-price-cur{font-size:16px;font-weight:700;color:var(--c-txt2);font-family:var(--font-ui)}
.sub-price-per{font-size:12px;color:var(--c-txt3);font-family:var(--font-ui)}
.sub-features{
  list-style:none;padding:0;margin:0 0 20px;
  display:flex;flex-direction:column;gap:7px;
  flex:1;
}
.sub-features li{
  display:flex;align-items:center;gap:8px;
  font-size:12.5px;color:var(--c-txt2);font-family:var(--font-ui);
}
.sub-features li::before{
  content:'✓';flex-shrink:0;
  width:18px;height:18px;border-radius:50%;
  background:rgba(34,197,94,.15);color:#22c55e;
  display:flex;align-items:center;justify-content:center;
  font-size:10px;font-weight:800;
}
.sub-card.popular .sub-features li::before{
  background:rgba(232,24,58,.12);color:var(--c-red2);
}
.sub-btn{
  width:100%;padding:11px;border-radius:var(--r-pill);
  font-size:13px;font-weight:700;font-family:var(--font-ui);
  border:1.5px solid var(--c-border);
  background:transparent;color:var(--c-txt2);cursor:pointer;
  transition:all .18s var(--spring);
}
.sub-btn:hover{
  border-color:rgba(232,24,58,.40);
  color:var(--c-txt);background:rgba(232,24,58,.06);
}
.sub-card.popular .sub-btn{
  background:linear-gradient(135deg,var(--c-red),var(--c-gold));
  border-color:transparent;color:#fff;
  box-shadow:0 4px 16px rgba(232,24,58,.30);
}
.sub-card.popular .sub-btn:hover{
  transform:scale(1.03);box-shadow:0 6px 20px rgba(232,24,58,.40);
}
.sub-note{
  text-align:center;font-size:12px;color:var(--c-txt3);
  margin-top:16px;font-family:var(--font-ui);
}
@media(max-width:760px){
  .sub-grid{grid-template-columns:1fr;max-width:360px;margin-inline:auto}
  .sub-card.popular{order:-1}
}

/* ══ PAYMENT STRIP ══════════════════════════════════════ */
.pay-strip{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
  margin-top:20px;
}
.pay-strip-card{
  display:flex;flex-direction:column;align-items:center;
  gap:8px;padding:18px 10px 14px;
  background:var(--c-card);
  border:1px solid var(--c-border);
  border-radius:var(--r-lg);
  cursor:default;
  transition:border-color .2s,transform .2s var(--spring),box-shadow .2s;
}
.pay-strip-card:hover{
  border-color:rgba(232,24,58,.28);
  transform:translateY(-3px);
  box-shadow:0 8px 24px rgba(0,0,0,.25);
}
.pay-strip-ico{
  width:48px;height:48px;border-radius:14px;
  display:flex;align-items:center;justify-content:center;
  font-size:24px;
}
.pay-strip-ico.card-ico{ background:linear-gradient(135deg,#1a56e0,#0ea5e9) }
.pay-strip-ico.sbp-ico{  background:linear-gradient(135deg,#8b5cf6,#6366f1) }
.pay-strip-ico.cash-ico{ background:linear-gradient(135deg,#16a34a,#22c55e) }
.pay-strip-ico.transfer-ico{ background:linear-gradient(135deg,var(--c-red),var(--c-gold)) }
.pay-strip-name{
  font-size:12px;font-weight:700;
  color:var(--c-txt);font-family:var(--font-ui);
  text-align:center;
}
.pay-strip-sub{
  font-size:10.5px;color:var(--c-txt3);
  text-align:center;line-height:1.4;
  font-family:var(--font-ui);
}
@media(max-width:520px){
  .pay-strip{grid-template-columns:repeat(2,1fr)}
}

/* ══ SMART HELPER BUBBLE ════════════════════════════════ */
/* ══ AI GUIDE "ФЛОРА" ══════════════════════════════════ */
.aig-wrap{
  position:fixed;bottom:20px;left:16px;z-index:1900;
}
.aig-trigger{
  width:56px;height:56px;border-radius:50%;
  background:linear-gradient(135deg,var(--c-red) 0%,#e8503a 45%,var(--c-gold) 100%);
  border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  font-size:24px;
  box-shadow:0 4px 20px rgba(232,24,58,.45);
  position:relative;
  transition:transform .2s var(--spring),box-shadow .2s;
  animation:aigIdle 3.5s ease infinite;
}
.aig-trigger:hover{transform:scale(1.09);box-shadow:0 6px 28px rgba(232,24,58,.55);animation:none}
.aig-trigger.active{animation:none;box-shadow:0 3px 16px rgba(232,24,58,.30)}
.aig-trigger.bounce{animation:aigBounce .55s var(--spring) forwards}
@keyframes aigIdle{
  0%  {box-shadow:0 4px 20px rgba(232,24,58,.45),0 0 0 0 rgba(168,85,247,0)}
  35% {box-shadow:0 4px 28px rgba(232,24,58,.65),0 0 0 8px rgba(232,24,58,.12)}
  70% {box-shadow:0 4px 28px rgba(168,85,247,.55),0 0 0 8px rgba(168,85,247,.14)}
  100%{box-shadow:0 4px 20px rgba(232,24,58,.45),0 0 0 0 rgba(168,85,247,0)}
}
@keyframes aigBounce{
  0%{transform:scale(1)}
  28%{transform:scale(1.22)}
  55%{transform:scale(.92)}
  78%{transform:scale(1.07)}
  100%{transform:scale(1)}
}
.aig-badge{
  position:absolute;top:-3px;right:-3px;
  min-width:19px;height:19px;padding:0 5px;
  border-radius:10px;background:var(--c-red2);
  color:#fff;font-size:10px;font-weight:900;font-family:var(--font-ui);
  display:none;align-items:center;justify-content:center;
  border:2px solid var(--c-bg);pointer-events:none;
}
/* Panel */
.aig-panel{
  position:absolute;bottom:66px;left:0;
  width:316px;
  background:var(--c-card);
  border:1px solid rgba(232,24,58,.18);
  border-radius:22px 22px 22px 6px;
  box-shadow:0 24px 64px rgba(0,0,0,.55),
             0 0 0 1px rgba(255,255,255,.04),
             inset 0 1px 0 rgba(255,255,255,.06);
  display:flex;flex-direction:column;
  overflow:hidden;
  opacity:0;transform:scale(.86) translateY(14px);
  transform-origin:bottom left;
  transition:opacity .34s var(--ease),transform .38s var(--spring);
  pointer-events:none;
  max-height:500px;
}
.aig-panel.open{
  opacity:1;transform:scale(1) translateY(0);
  pointer-events:all;
}
/* Header */
.aig-head{
  display:flex;align-items:center;gap:10px;
  padding:13px 14px 12px;
  border-bottom:1px solid var(--c-border2);
  background:linear-gradient(135deg,rgba(232,24,58,.09) 0%,rgba(201,164,78,.04) 100%);
  flex-shrink:0;
}
.aig-head-ava{
  width:40px;height:40px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,var(--c-red),var(--c-gold));
  display:flex;align-items:center;justify-content:center;
  font-size:19px;
  box-shadow:0 3px 12px rgba(232,24,58,.35);
}
.aig-head-info{flex:1;min-width:0}
.aig-head-name{
  font-size:14px;font-weight:800;color:var(--c-txt);
  font-family:var(--font-ui);line-height:1.15;
}
.aig-head-status{
  font-size:10.5px;color:#22c55e;font-family:var(--font-ui);
  display:flex;align-items:center;gap:4px;margin-top:2px;
}
.aig-head-status::before{
  content:'';width:6px;height:6px;border-radius:50%;
  background:#22c55e;flex-shrink:0;
  box-shadow:0 0 0 2px rgba(34,197,94,.2);
}
.aig-head-close{
  width:28px;height:28px;border-radius:50%;flex-shrink:0;
  background:rgba(255,255,255,.07);border:none;cursor:pointer;
  color:var(--c-txt3);font-size:13px;
  display:flex;align-items:center;justify-content:center;
  transition:background .15s,color .15s;
}
.aig-head-close:hover{background:rgba(255,255,255,.15);color:var(--c-txt)}
/* Messages */
.aig-messages{
  flex:1;overflow-y:auto;
  padding:12px 12px 6px;
  display:flex;flex-direction:column;gap:8px;
  min-height:80px;max-height:300px;
  scroll-behavior:smooth;
}
.aig-messages::-webkit-scrollbar{width:3px}
.aig-messages::-webkit-scrollbar-thumb{background:rgba(255,255,255,.10);border-radius:2px}
.aig-msg{display:flex;align-items:flex-end;gap:7px;animation:aigMsgIn .28s var(--ease) both}
@keyframes aigMsgIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.aig-msg.user{justify-content:flex-end}
.aig-msg-ava{
  width:26px;height:26px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,var(--c-red),var(--c-gold));
  display:flex;align-items:center;justify-content:center;
  font-size:13px;align-self:flex-end;
}
.aig-msg-bubble{
  max-width:228px;padding:9px 13px;
  background:rgba(255,255,255,.07);
  border-radius:14px 14px 14px 3px;
  font-size:12.5px;line-height:1.55;color:var(--c-txt);
  font-family:var(--font-ui);word-break:break-word;
}
.aig-msg.user .aig-msg-bubble{
  background:linear-gradient(135deg,var(--c-red),#e05030 60%,var(--c-gold));
  color:#fff;border-radius:14px 14px 3px 14px;font-weight:600;
}
/* Typing dots */
.aig-typing{
  display:flex;align-items:center;gap:5px;
  padding:11px 14px;min-width:52px;
}
.aig-typing span{
  width:7px;height:7px;border-radius:50%;
  background:rgba(240,239,248,.30);
  animation:aigDot 1.3s ease infinite;display:block;
}
.aig-typing span:nth-child(2){animation-delay:.2s}
.aig-typing span:nth-child(3){animation-delay:.4s}
@keyframes aigDot{
  0%,60%,100%{transform:translateY(0);opacity:.35}
  30%{transform:translateY(-6px);opacity:1}
}
/* Chips */
.aig-chips{
  display:flex;gap:6px;
  padding:8px 12px 13px;
  overflow-x:auto;flex-wrap:wrap;flex-shrink:0;
  -ms-overflow-style:none;scrollbar-width:none;
}
.aig-chips::-webkit-scrollbar{display:none}
.aig-chip{
  flex-shrink:0;padding:6px 14px;
  border-radius:var(--r-pill);
  border:1px solid rgba(232,24,58,.28);
  background:transparent;color:var(--c-txt2);
  font-size:12px;font-weight:600;font-family:var(--font-ui);
  cursor:pointer;white-space:nowrap;
  transition:background .16s,color .16s,border-color .16s,transform .16s var(--spring);
}
.aig-chip:hover{
  background:rgba(232,24,58,.12);color:var(--c-txt);
  border-color:rgba(232,24,58,.48);transform:scale(1.04);
}
/* Кнопка "Главное меню" — всегда видна, чуть тоньше стилем */
.aig-chip-menu{
  border-style:dashed;
  border-color:var(--c-border);
  color:var(--c-txt3);
  font-size:11px;
  opacity:.82;
}
.aig-chip-menu:hover{
  border-color:rgba(232,24,58,.35);
  border-style:solid;
  opacity:1;
}
/* ── Иконка и текст внутри desktop-trigger ── */
.aig-trigger-ico{ flex-shrink:0; line-height:1; }
.aig-trigger-text{
  font-size:13px;font-weight:700;color:#fff;
  font-family:var(--font-ui);letter-spacing:.02em;
  white-space:nowrap;overflow:hidden;
  max-width:0;opacity:0;
  transition:max-width .48s var(--ease),opacity .38s,margin-left .38s;
  pointer-events:none;margin-left:0;
}

/* AI chip на desktop-триггере */
.aig-ai-chip{
  position:absolute;bottom:-5px;right:-5px;
  background:linear-gradient(135deg,#6366f1,#a855f7);
  color:#fff;font-size:7px;font-weight:900;letter-spacing:.5px;
  padding:2px 5px;border-radius:5px;
  border:1.5px solid var(--c-bg);
  font-family:var(--font-ui);
  pointer-events:none;z-index:2;
  box-shadow:0 2px 8px rgba(99,102,241,.5);
}

/* ══ ПЛАНШЕТ (600–899px): центральная кнопка в nav, чуть крупнее ══ */
@media(min-width:600px) and (max-width:899px){
  .nav-ai-wrap{ width:56px;height:56px;bottom:22px; }
  .nav-ai-orb{ font-size:22px; }
  .nav-ai-lbl{ font-size:10px; }
}

/* ══ МОБИЛЬНЫЙ (<600px): скрываем floating trigger, панель над nav-bar ══ */
@media(max-width:899px){
  .aig-trigger{ display:none!important }
  .aig-wrap{
    left:14px;right:14px;width:auto;
    bottom:calc(var(--nav-h) + var(--safe-b) + 10px);
  }
  .aig-panel{
    left:0;right:0;width:auto;
    bottom:0;border-radius:22px;
    transform-origin:bottom center;
  }
}

/* ══ ДЕСКТОП (≥900px): pill-кнопка справа, панель влево-вверх ══ */
@media(min-width:900px){
  /* Перемещаем в правый нижний угол */
  .aig-wrap{
    left:auto;right:24px;bottom:24px;
  }
  /* Pill-форма */
  .aig-trigger{
    width:auto;min-width:56px;height:56px;
    border-radius:999px;
    flex-direction:row;gap:0;
    padding:0 18px 0 15px;
    overflow:visible;
  }
  .aig-trigger-ico{ font-size:22px; }
  /* Текст раскрыт по умолчанию */
  .aig-trigger-text{
    max-width:130px;opacity:1;margin-left:9px;
  }
  /* Свёрнутое состояние — только иконка */
  .aig-trigger.pill-collapsed .aig-trigger-text{
    max-width:0;opacity:0;margin-left:0;
  }
  /* Ховер — всегда раскрыть */
  .aig-trigger:hover .aig-trigger-text,
  .aig-trigger.active .aig-trigger-text{
    max-width:130px!important;opacity:1!important;margin-left:9px!important;
  }
  /* AI chip скрыт — текст уже говорит «AI» */
  .aig-ai-chip{ display:none; }
  /* Панель открывается вправо-вверх */
  .aig-panel{
    left:auto;right:0;
    bottom:66px;width:350px;
    transform-origin:bottom right;
    border-radius:22px 22px 6px 22px;
  }
  /* Idle-анимация для pill — только свечение, без ripple */
  .aig-trigger:not(.active){
    animation:aigIdleDesktop 4s ease infinite;
  }
  @keyframes aigIdleDesktop{
    0%,100%{ box-shadow:0 4px 20px rgba(232,24,58,.40) }
    40%{ box-shadow:0 6px 32px rgba(232,24,58,.60),0 0 48px rgba(168,85,247,.18) }
    80%{ box-shadow:0 6px 28px rgba(168,85,247,.50),0 0 40px rgba(168,85,247,.20) }
  }
}
[data-theme="light"] .aig-panel{box-shadow:0 24px 64px rgba(0,0,0,.18),0 0 0 1px rgba(0,0,0,.05)}
[data-theme="light"] .aig-msg-bubble{background:rgba(0,0,0,.055)}


/* ══════════════════════════════════════════════════════════════
   BODY SCROLL LOCK (cross-browser incl. iOS)
══════════════════════════════════════════════════════════════ */
body.scroll-locked{
  position:fixed!important;
  top:var(--scroll-lock-y,0)!important;
  left:0!important;right:0!important;
  overflow-y:scroll!important;
}

/* ══════════════════════════════════════════════════════════════
   УМНЫЙ DOCK — десктоп (≥900px): объединённая мульти-кнопка
══════════════════════════════════════════════════════════════ */
.dock{
  position:fixed;right:16px;bottom:24px;z-index:1850;
  display:none;flex-direction:column;align-items:center;gap:7px;
  transition:opacity .22s,transform .22s;
}
/* Когда любой оверлей открыт — dock уходит за него */
body.overlay-open .dock{
  opacity:0;
  pointer-events:none;
  transform:scale(.88) translateY(8px);
  z-index:150;
}
@media(min-width:900px){
  .dock{display:flex}
  /* Скрываем отдельные кнопки — всё в Dock */
  .fab-wrap{display:none!important}
  .toTop{display:none!important}
  .contacts{display:none!important}
  /* AI-триггер из aig-wrap скрыт, панель открывается через Dock */
  .aig-trigger{display:none!important}
  /* Панель: фиксированная, открывается левее Dock */
  .aig-panel{
    position:fixed!important;
    right:68px;bottom:24px;
    left:auto!important;bottom:24px;
    transform-origin:bottom right;
    border-radius:22px 22px 6px 22px;
    width:340px;
  }
}

/* Базовая кнопка Dock */
.dock-btn{
  width:42px;height:42px;border-radius:13px;
  display:flex;align-items:center;justify-content:center;
  border:1px solid var(--c-border2);
  background:var(--c-card);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  cursor:pointer;text-decoration:none;color:var(--c-txt2);flex-shrink:0;
  position:relative;
  transition:transform .18s var(--spring),box-shadow .18s,background .18s,border-color .18s,color .15s;
}
.dock-btn:hover{
  transform:scale(1.13);color:var(--c-txt);
  box-shadow:0 6px 24px rgba(0,0,0,.28);
  border-color:rgba(232,24,58,.22);
}
[data-theme="light"] .dock-btn{
  background:rgba(255,255,255,.92);
  box-shadow:0 2px 8px rgba(0,0,0,.07);
}
[data-theme="light"] .dock-btn:hover{box-shadow:0 6px 20px rgba(0,0,0,.14)}

/* Тултип при ховере */
.dock-btn[title]:hover::before{
  content:attr(title);
  position:absolute;right:calc(100% + 10px);top:50%;
  transform:translateY(-50%);
  background:var(--c-card);border:1px solid var(--c-border2);
  color:var(--c-txt);font-size:12px;font-weight:600;font-family:var(--font-ui);
  white-space:nowrap;padding:5px 12px;border-radius:9px;
  box-shadow:0 4px 16px rgba(0,0,0,.28);pointer-events:none;z-index:10;
  letter-spacing:.01em;
}
[data-theme="light"] .dock-btn[title]:hover::before{
  background:rgba(255,255,255,.97);
  box-shadow:0 4px 16px rgba(0,0,0,.12);
}

/* Флорист AI — главная кнопка Dock */
.dock-ai{
  width:50px;height:50px;border-radius:16px;
  background:linear-gradient(135deg,var(--c-red) 0%,#e8503a 48%,var(--c-gold) 100%);
  border:none;color:#fff;font-size:22px;
  box-shadow:0 4px 22px rgba(232,24,58,.45);
  animation:dockAiPulse 3.5s ease infinite;
}
.dock-ai:hover{animation:none;transform:scale(1.1)}
.dock-ai.active{animation:none;box-shadow:0 2px 12px rgba(232,24,58,.28);transform:scale(.97)}
@keyframes dockAiPulse{
  0%,100%{box-shadow:0 4px 22px rgba(232,24,58,.42)}
  40%{box-shadow:0 6px 32px rgba(232,24,58,.65),0 0 42px rgba(168,85,247,.20)}
  78%{box-shadow:0 6px 28px rgba(168,85,247,.52),0 0 38px rgba(168,85,247,.24)}
}
.dock-ai-chip{
  position:absolute;top:-6px;right:-7px;
  background:linear-gradient(135deg,#6366f1,#a855f7);
  color:#fff;font-size:7px;font-weight:900;letter-spacing:.4px;
  padding:2px 5px;border-radius:5px;
  border:1.5px solid var(--c-bg);font-family:var(--font-ui);
  pointer-events:none;
  box-shadow:0 2px 8px rgba(99,102,241,.50);
}
.dock-ai-badge{
  position:absolute;top:-6px;left:-6px;
  min-width:17px;height:17px;padding:0 4px;
  border-radius:10px;background:var(--c-red);
  color:#fff;font-size:9px;font-weight:900;font-family:var(--font-ui);
  display:none;align-items:center;justify-content:center;
  border:2px solid var(--c-bg);pointer-events:none;
}
.dock-ai-badge.show{display:flex}

/* Telegram */
.dock-btn-tg:hover{background:rgba(40,167,245,.12)!important;border-color:rgba(40,167,245,.30)!important;color:#29a8e6!important}
/* VK */
.dock-btn-vk:hover{background:rgba(0,119,255,.10)!important;border-color:rgba(0,119,255,.25)!important;color:#0077ff!important}
/* Max */
.dock-btn-max:hover{background:rgba(95,55,220,.10)!important;border-color:rgba(95,55,220,.25)!important}
/* Телефон */
.dock-btn-phone:hover{background:rgba(232,24,58,.10)!important;border-color:rgba(232,24,58,.25)!important;color:var(--c-red)!important}
/* Наверх */
.dock-top-btn{color:var(--c-txt3);display:none}
.dock-top-btn.show{display:flex}
.dock-top-btn:hover{color:var(--c-txt)!important}

/* Разделитель */
.dock-sep{
  width:22px;height:1px;
  background:var(--c-border);border-radius:1px;
  margin:1px 0;flex-shrink:0;
}
.dock-sep.hidden{display:none}

/* ---- rules present only in the etalon's truncated first <style> block.
     Only genuinely absent selectors are carried over: copying the block
     wholesale re-imported an OLDER .nav-bar (4 columns) that overrode the
     correct 5-column rule. ---- */
/* Image */
.pcard-img img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .45s var(--ease);
}
/* shop-gallery */
.shop-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.shop-photo{position:relative;overflow:hidden;border-radius:var(--r-lg);background:var(--c-card);aspect-ratio:4/3;cursor:pointer}
.shop-photo.wide{grid-column:span 2;aspect-ratio:16/9}
.shop-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s var(--ease)}
.shop-photo:hover img{transform:scale(1.06)}
.shop-photo-cap{position:absolute;bottom:0;left:0;right:0;padding:10px 14px;background:linear-gradient(transparent,rgba(0,0,0,.62));color:#fff;font-size:12.5px;font-weight:600;letter-spacing:.02em}
/* ═══════════════════════════════════════════════════════
   STICKY CART BAR (mobile)
═══════════════════════════════════════════════════════ */
/* stickyCart replaced */
[data-theme="light"] .stickyCart{
  background:rgba(255,255,255,.92);
  box-shadow:0 8px 28px rgba(0,0,0,.14);
  border-color:rgba(232,24,58,.20);
}
