/* ═══════════════════════════════════════════════════════════
   HazePlus X — Extra CSS v3.1 (clean, no conflicts)
═══════════════════════════════════════════════════════════ */

/* ── RESET ───────────────────────────────────────────────── */
html,body { overflow-x:hidden; width:100%; background:var(--bg); }
*,*::before,*::after { box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
input,textarea,select { font-size:16px!important; -webkit-appearance:none; font-family:'Manrope',sans-serif; }

/* ── PRODUCT IMAGES — white bg fix ──────────────────────── */
.pc-img { background:#fff!important; }
.pc-img img {
  width:100%; height:100%;
  object-fit:contain!important;
  padding:10px!important;
  background:#fff;
  mix-blend-mode:multiply;
  display:block;
}
.pc { transform:none!important; transition:box-shadow .25s,border-color .25s!important; }
.pc:hover { transform:none!important; box-shadow:0 8px 32px rgba(0,0,0,.45),0 0 0 1px rgba(177,78,251,.25)!important; border-color:rgba(177,78,251,.35)!important; }
.pc:hover .pc-img img { transform:scale(1.06)!important; }
.pc:active { filter:brightness(.92)!important; }
.pc-img img { transition:transform .35s ease!important; }

/* PDP gallery image */
.pdp-gallery { background:#fff!important; }
.pdp-gallery img { mix-blend-mode:multiply; object-fit:contain; width:85%!important; height:85%!important; margin:auto; }

/* ── CART OVERLAY — FIX z-index so it's BELOW cart panel ── */
#cartOverlayV2 {
  position: fixed !important;
  inset: 0 !important;
  background: rgba(0,0,0,0.65) !important;
  z-index: 919 !important;  /* BELOW cart panel (920) so clicks reach panel */
  opacity: 0 !important;
  pointer-events: none !important;
  transition: opacity .3s !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
#cartOverlayV2.open {
  opacity: 1 !important;
  pointer-events: all !important;
}

/* ── CART PANEL — ensure above its overlay ───────────────── */
.cart-panel-v2 { z-index:920!important; }

/* ── CART BUTTONS — force clickable ─────────────────────── */
.cart-checkout-btn {
  cursor: pointer !important;
  border: none !important;
  background: linear-gradient(135deg,#B14EFB,#6B0ADB) !important;
  color: #fff !important;
  width: 100% !important;
  padding: 16px !important;
  border-radius: 14px !important;
  font-size: 15px !important;
  font-weight: 900 !important;
  position: relative !important;
  z-index: 1 !important;
  opacity: 1 !important;
}
.cart-qty-btn-v2 {
  cursor: pointer !important;
  position: relative !important;
  z-index: 1 !important;
  pointer-events: all !important;
}
.cart-remove-v2 { cursor: pointer !important; pointer-events: all !important; }
.cart-items-v2 { position:relative!important; z-index:1!important; overflow-y:auto; }
.cart-panel-footer { position:relative!important; z-index:1!important; }

/* ── REMOVE ALL BLURS from overlays ─────────────────────── */
.drawer-overlay, #cartOverlayV2, .modal-overlay, .pc-wishlist {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
/* Keep header glass and btn-outline blur */
/* header: backdrop-filter:blur(20px) — intentional */

/* ── CHECKOUT MODAL — above everything ───────────────────── */
.modal-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 3000 !important;
  background: rgba(0,0,0,0.82);
  align-items: flex-end;
  justify-content: center;
  padding: 0;
  backdrop-filter: none !important;
}
.modal-overlay.open { display: flex !important; }
@media (min-width:640px) {
  .modal-overlay { align-items: center; padding: 20px; }
}

/* ── CHECKOUT BOX — DARK THEME ────────────────────────────── */
.checkout-box {
  background: var(--surface) !important;
  border-radius: 24px 24px 0 0;
  max-width: 520px;
  width: 100%;
  max-height: 95vh;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  box-shadow: 0 -8px 60px rgba(0,0,0,.6), 0 0 0 1px rgba(255,255,255,.06);
  position: relative;
  z-index: 3001;
  padding-bottom: max(24px,env(safe-area-inset-bottom));
  border: 1px solid var(--border2);
}
@media (min-width:640px) {
  .checkout-box { border-radius:20px; max-height:90vh; }
}

/* Gradient header */
.co-header-bar {
  background: linear-gradient(135deg,#B14EFB,#6B0ADB) !important;
  border-radius: 24px 24px 0 0;
  padding: 18px 22px 14px;
  display: flex; align-items: center; gap: 12px;
  position: relative;
}
@media (min-width:640px) { .co-header-bar { border-radius:20px 20px 0 0; } }
.co-brand { font-family:'Saira Condensed',sans-serif; font-size:22px; letter-spacing:2px; color:#fff; line-height:1; }
.co-tagline { font-size:10px; color:rgba(255,255,255,.75); font-weight:700; text-transform:uppercase; letter-spacing:.5px; }

/* Body area */
.co-ready-msg {
  padding: 12px 22px;
  font-size: 13px; font-weight: 700;
  color: var(--text2);
  background: rgba(255,255,255,.03);
  border-bottom: 1px solid var(--border);
  line-height: 1.6;
}
.co-nb { color: #FF6B6B; font-weight: 800; font-size: 11px; }

/* Order summary */
.order-summary {
  margin: 14px 22px;
  background: var(--surface2);
  border-radius: 14px;
  padding: 14px 16px;
  border: 1px solid var(--border2);
}
.order-summary-title {
  font-size: 10px; font-weight: 800; color: var(--violet);
  text-transform: uppercase; letter-spacing: .5px; margin-bottom: 10px;
}
.order-row {
  display: flex; justify-content: space-between;
  font-size: 12px; margin-bottom: 5px;
  color: var(--text2); font-weight: 600;
}
.order-total-row {
  display: flex; justify-content: space-between;
  font-weight: 800; padding-top: 10px;
  border-top: 1px solid var(--border);
  margin-top: 8px; font-size: 15px;
  color: var(--text);
}
.order-total-row span:last-child {
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.co-flavor { color: var(--text3); font-size: 11px; }

/* Fields */
.co-fields { padding: 4px 22px 0; display: flex; flex-direction: column; gap: 10px; }
.co-field {
  display: flex; align-items: center; gap: 10px;
  border: 1.5px solid var(--border2);
  border-radius: 12px; padding: 0 14px;
  background: var(--surface2);
  transition: border-color .2s;
}
.co-field:focus-within { border-color: var(--violet); }
.co-field-icon { font-size: 16px; flex-shrink: 0; color: var(--text3); }
.co-input {
  border: none; outline: none;
  background: transparent;
  font-family: 'Manrope',sans-serif;
  font-size: 14px !important;
  font-weight: 600;
  color: var(--text) !important;
  width: 100%; padding: 13px 0;
}
.co-input::placeholder { color: var(--text3); font-weight: 600; }
.co-textarea { resize: none; padding: 13px 0; min-height: 60px; line-height: 1.5; }

/* Contact block */
.co-contact-block { display: flex; flex-direction: column; gap: 8px; }
.co-fast-note {
  background: rgba(16,185,129,.1) !important;
  border: 1px solid rgba(16,185,129,.3) !important;
  border-radius: 10px !important;
  padding: 9px 13px !important;
  font-size: 12px; font-weight: 700;
  color: #34d399 !important;
  margin-bottom: 8px;
}
.co-contact-label { font-size: 12px; font-weight: 800; color: var(--text2); letter-spacing: .3px; }
.co-contact-methods { display: grid; grid-template-columns: repeat(2,1fr); gap: 10px; }
.co-contact-btn {
  display: flex; align-items: center; justify-content: center;
  gap: 7px; padding: 11px 8px;
  border: 1.5px solid var(--border2);
  border-radius: 12px;
  background: var(--surface2);
  cursor: pointer; font-size: 12px; font-weight: 800;
  color: var(--text2);
  transition: all .15s;
  font-family: 'Manrope',sans-serif;
}
.co-contact-btn:hover:not(.selected) {
  border-color: rgba(255,255,255,.25);
  color: var(--text);
}
.co-contact-btn.selected {
  border-color: var(--violet);
  background: rgba(177,78,251,.12);
  color: var(--violet);
}
.co-contact-hint { font-size: 11px; color: var(--text3); }

/* Standalone contact input (outside co-field) */
#cfContact {
  background: var(--surface2) !important;
  border: 1.5px solid var(--border2) !important;
  color: var(--text) !important;
}
#cfContact:focus { border-color: var(--violet) !important; }

/* Payment */
.co-pay-label {
  font-size: 10px; font-weight: 900;
  text-transform: uppercase; letter-spacing: 1.5px;
  color: var(--violet); margin: 16px 22px 8px;
}
.co-pay-list { padding: 0 22px; display: flex; flex-direction: column; gap: 8px; }
.pay-radio {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 14px;
  border: 1.5px solid var(--border2);
  border-radius: 12px; cursor: pointer;
  background: var(--surface2);
  transition: all .18s;
}
.pay-radio:hover:not(.locked) {
  border-color: rgba(177,78,251,.4);
  background: rgba(177,78,251,.06);
}
.pay-radio.selected {
  border-color: var(--violet);
  background: rgba(177,78,251,.1);
}
.pay-radio.locked { opacity: .4; cursor: not-allowed; }
.pay-radio-icon {
  width: 52px; height: 24px;
  border-radius: 6px; object-fit: contain;
  flex-shrink: 0; background: transparent;
}
.pay-radio-name { flex: 1; font-size: 13px; font-weight: 700; color: var(--text); }
.pay-radio-min {
  font-size: 10px; font-weight: 800;
  color: var(--violet);
  background: rgba(177,78,251,.12);
  border: 1px solid rgba(177,78,251,.25);
  padding: 2px 8px; border-radius: 20px; white-space: nowrap;
}
.pay-radio-dot {
  width: 18px; height: 18px; border-radius: 50%;
  border: 2px solid var(--border2); flex-shrink: 0;
  transition: all .15s;
}
.pay-radio.selected .pay-radio-dot {
  border-color: var(--violet); background: var(--violet);
  box-shadow: 0 0 0 3px rgba(177,78,251,.2);
}
.pay-radio-lock { font-size: 13px; opacity: .5; }
.co-pay-note { font-size: 11px; color: var(--text3); margin: 8px 22px 0; line-height: 1.5; }

/* Discreet note */
.co-discreet-note {
  margin: 14px 22px 0;
  padding: 11px 14px;
  background: rgba(16,185,129,.08);
  border: 1px solid rgba(16,185,129,.25);
  border-radius: 10px;
  font-size: 12px; font-weight: 700;
  color: #34d399; line-height: 1.5;
}

/* Place Order button */
.co-place-btn {
  display: block !important;
  width: calc(100% - 44px) !important;
  margin: 16px 22px 0 !important;
  padding: 16px !important;
  background: var(--grad) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 14px !important;
  font-size: 16px !important;
  font-weight: 900 !important;
  letter-spacing: .3px !important;
  cursor: pointer !important;
  font-family: 'Manrope',sans-serif !important;
  box-shadow: 0 6px 24px rgba(177,78,251,.4) !important;
  transition: all .2s !important;
  position: relative !important;
  z-index: 1 !important;
}
.co-place-btn:hover { opacity: .9 !important; transform: translateY(-1px) !important; }

/* Close button */
.modal-close {
  position: absolute !important;
  top: 14px !important; right: 14px !important;
  width: 32px !important; height: 32px !important;
  border-radius: 50% !important;
  background: rgba(255,255,255,.15) !important;
  border: 1px solid rgba(255,255,255,.25) !important;
  color: #fff !important;
  font-size: 18px !important;
  cursor: pointer !important;
  z-index: 10 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-weight: 900 !important;
}
.modal-close:hover { background: rgba(255,255,255,.25) !important; }

/* Success box */
.success-box { overflow: hidden; }
.done-btn { cursor: pointer !important; }


/* ── HIDE WA BUTTON ON MOBILE (header) ───────────────────── */
.wa-header-btn { display:none!important; }
@media (min-width:900px) { .wa-header-btn { display:flex!important; } }

/* ── MOBILE BOTTOM NAV ───────────────────────────────────── */
.mobile-bottom-nav {
  position:fixed; bottom:0; left:0; right:0;
  background:var(--surface); border-top:1px solid var(--border2);
  display:flex; z-index:850;
  padding-bottom:max(8px,env(safe-area-inset-bottom));
  box-shadow:0 -4px 24px rgba(0,0,0,.4);
}
.mbn-item { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:8px 4px; cursor:pointer; font-size:10px; font-weight:800; color:var(--text3); letter-spacing:.3px; transition:color .15s; border:none; background:none; font-family:'Manrope',sans-serif; }
.mbn-icon { font-size:22px; margin-bottom:2px; line-height:1; display:block; }
.mbn-item.active { color:var(--violet); }
.mbn-item:active { transform:scale(.92); }
@media (max-width:899px) { body { padding-bottom:68px!important; } }
@media (min-width:900px) { .mobile-bottom-nav { display:none!important; } body { padding-bottom:0!important; } }

/* WA float - hidden everywhere (we use bottom nav) */
.wa-float-v2 { display:none!important; }

/* ── NAV DROPDOWN ────────────────────────────────────────── */
.nav-has-drop { position:relative; }
.nav-dropdown { position:absolute; top:calc(100% + 8px); left:50%; transform:translateX(-50%) translateY(-6px); background:var(--surface2); border:1px solid var(--border2); border-radius:var(--radius); padding:8px; min-width:220px; box-shadow:var(--shadow-lg); opacity:0; pointer-events:none; transition:all .2s; z-index:200; }
.nav-has-drop:hover .nav-dropdown, .nav-has-drop:focus-within .nav-dropdown { opacity:1; pointer-events:all; transform:translateX(-50%) translateY(0); }
.nav-contact-drop { min-width:260px!important; right:0!important; left:auto!important; transform:translateY(-6px)!important; }
.nav-has-drop:hover .nav-contact-drop, .nav-has-drop:focus-within .nav-contact-drop { transform:translateY(0)!important; }
.nav-contact-btn::after { content:''; position:absolute; top:6px; right:22px; width:7px; height:7px; background:#10B981; border-radius:50%; border:1.5px solid var(--bg); animation:pulse-online 2s ease infinite; }

/* Desktop FAB */
.desktop-chat-fab { position:fixed; bottom:28px; right:28px; display:none; flex-direction:column; align-items:flex-end; gap:10px; z-index:800; }
@media (min-width:900px) { .desktop-chat-fab { display:flex!important; } }
.fab-btn { display:flex; align-items:center; gap:10px; padding:11px 18px; border-radius:50px; font-size:13px; font-weight:800; text-decoration:none; color:#fff; cursor:pointer; transition:all .2s; box-shadow:0 4px 18px rgba(0,0,0,.35); border:none; font-family:'Manrope',sans-serif; }
.fab-btn:hover { transform:translateX(-3px); }
.fab-wa { background:#25D366; box-shadow:0 4px 18px rgba(37,211,102,.45); }
.fab-chat { background:linear-gradient(135deg,#B14EFB,#6B0ADB); box-shadow:0 4px 18px rgba(177,78,251,.45); }

/* ── WHY CARDS ───────────────────────────────────────────── */
.why-card-v2 { background:var(--surface2); border:1px solid var(--border); border-radius:var(--radius-lg); padding:20px 16px; transition:all .25s; }
.why-card-v2:hover { border-color:rgba(255,255,255,.2); transform:translateY(-3px); }
.why-icon-v2 { width:44px; height:44px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:22px; margin-bottom:12px; }
.why-title-v2 { font-size:14px; font-weight:800; color:var(--text); margin-bottom:6px; }
.why-text-v2 { font-size:12px; color:var(--text3); font-weight:600; line-height:1.65; }
@media (max-width:480px) { #whyGrid { grid-template-columns:1fr!important; } }

/* ── LAB BADGE ───────────────────────────────────────────── */
.lab-badge-v2 { display:inline-flex; align-items:center; gap:4px; background:rgba(16,185,129,.12); border:1px solid rgba(16,185,129,.3); border-radius:50px; padding:3px 10px; font-size:9px; font-weight:900; color:#10b981; letter-spacing:.5px; text-transform:uppercase; }

/* ── FAQ ─────────────────────────────────────────────────── */
.faq-item { background:var(--surface); border:1px solid var(--border); border-radius:16px; overflow:hidden; margin-bottom:10px; }
.faq-q { display:flex; align-items:center; justify-content:space-between; padding:18px 20px; cursor:pointer; font-size:14px; font-weight:800; color:var(--text); transition:background .15s; }
.faq-q:hover { background:rgba(255,255,255,.03); }
.faq-q span.faq-icon { font-size:18px; color:var(--violet); transition:transform .25s; flex-shrink:0; }
.faq-q.open span.faq-icon { transform:rotate(45deg); }
.faq-a { max-height:0; overflow:hidden; transition:max-height .35s ease,padding .25s; }
.faq-a.open { max-height:600px; padding:0 20px 18px; }
.faq-a p,.faq-a ul { font-size:13px; color:var(--text2); line-height:1.8; font-weight:600; }
.faq-a ul { padding-left:18px; }

/* ── REVIEWS ─────────────────────────────────────────────── */
.rev-summary { display:flex; gap:24px; align-items:center; background:var(--surface); border:1px solid var(--border); border-radius:20px; padding:24px; margin-bottom:24px; flex-wrap:wrap; }
.rev-big-score { font-family:'Saira Condensed',sans-serif; font-size:76px; letter-spacing:-2px; line-height:1; background:var(--grad-amber); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.rev-card-v2 { background:var(--surface); border:1px solid var(--border); border-radius:16px; padding:18px; margin-bottom:10px; transition:border-color .2s; }
.rev-card-v2:hover { border-color:rgba(255,255,255,.2); }
.rev-name { font-size:14px; font-weight:800; color:var(--text); }
.rev-product { font-size:11px; color:var(--violet); font-weight:700; margin-top:1px; }
.rev-text { font-size:13px; color:var(--text2); line-height:1.7; font-weight:600; margin-top:8px; font-style:italic; }

/* ══════════════════════════════════════════════════════════════
   LIVE CHAT PAGE — Custom Supabase-powered chat
═══════════════════════════════════════════════════════════════ */
#pageChat.active { display:flex!important; flex-direction:column; }

.livechat-wrapper {
  display:flex; flex-direction:column;
  width:100%; max-width:600px; margin:0 auto;
  height:calc(100dvh - 62px);
  background:var(--bg);
}
@media (max-width:899px) {
  .livechat-wrapper { height:calc(100dvh - 62px - 68px); max-width:100%; }
}

.livechat-header {
  display:flex; align-items:center; gap:12px;
  padding:12px 16px;
  background:var(--surface); border-bottom:1px solid var(--border);
  flex-shrink:0;
}
.livechat-back {
  background:none; border:none; color:var(--text); font-size:22px;
  cursor:pointer; padding:4px 8px; border-radius:8px; transition:background .2s;
}
.livechat-back:hover { background:var(--surface2); }
.livechat-header-info { display:flex; align-items:center; gap:10px; }
.livechat-avatar {
  width:38px; height:38px; border-radius:50%;
  background:linear-gradient(135deg,#B14EFB,#6B0ADB);
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-weight:900; font-size:16px; flex-shrink:0;
}
.livechat-title { font-size:14px; font-weight:800; color:var(--text); }
.livechat-status { font-size:11px; color:var(--text3); font-weight:600; display:flex; align-items:center; gap:5px; }
.livechat-dot {
  width:7px; height:7px; border-radius:50%; background:#25D366;
  display:inline-block; animation:chatDotPulse 2s infinite;
}
@keyframes chatDotPulse { 0%,100%{opacity:1} 50%{opacity:.4} }

/* Messages area */
.livechat-messages {
  flex:1; overflow-y:auto; padding:16px;
  display:flex; flex-direction:column; gap:8px;
  scroll-behavior:smooth;
}

.chat-status-msg {
  display:flex; flex-direction:column; align-items:center;
  justify-content:center; height:100%; gap:10px; text-align:center;
}
.chat-status-msg p { margin:0; }

/* Message bubbles */
.chat-bubble {
  max-width:85%; padding:0; border-radius:16px;
  animation:bubbleIn .2s ease;
  display:flex; gap:8px; align-items:flex-start;
}
.chat-bubble-inner {
  padding:10px 14px; border-radius:16px; min-width:0; flex:1;
}
@keyframes bubbleIn { from{opacity:0;transform:translateY(6px)} to{opacity:1;transform:none} }

.chat-bubble.visitor {
  align-self:flex-end; flex-direction:row-reverse;
}
.chat-bubble.visitor .chat-bubble-inner {
  background:linear-gradient(135deg,#B14EFB,#6B0ADB);
  color:#fff; border-bottom-right-radius:4px;
}
.chat-bubble.agent {
  align-self:flex-start;
}
.chat-bubble.agent .chat-bubble-inner {
  background:var(--surface); border:1px solid var(--border);
  color:var(--text); border-bottom-left-radius:4px;
}

/* Bot avatar */
.chat-bot-avatar {
  width:28px; height:28px; min-width:28px; max-width:28px;
  border-radius:50%; flex-shrink:0; object-fit:cover;
  border:2px solid rgba(177,78,251,.3);
}

/* Force images inside bubbles to be contained */
.chat-bubble img:not(.chat-bot-avatar) {
  max-width:100%; border-radius:10px;
}

/* Seen indicator */
.chat-seen {
  margin-left:6px; font-size:9px; color:#34d399; font-weight:700;
}
.chat-bubble-name {
  font-size:10px; font-weight:800; opacity:.7;
  margin-bottom:3px; text-transform:uppercase; letter-spacing:.5px;
}
.chat-bubble-text { font-size:14px; font-weight:600; line-height:1.5; word-break:break-word; }
.chat-bubble-time { font-size:10px; opacity:.5; margin-top:4px; text-align:right; }

/* Input bar */
.livechat-input-bar {
  display:flex; align-items:center; gap:8px;
  padding:10px 14px;
  background:var(--surface); border-top:1px solid var(--border);
  flex-shrink:0;
}
.livechat-input {
  flex:1; background:rgba(255,255,255,.06); border:1.5px solid var(--border);
  border-radius:24px; padding:11px 18px; color:#fff;
  font-size:14px; font-weight:600; outline:none;
  transition:border-color .2s;
}
.livechat-input:focus { border-color:var(--violet); }
.livechat-input::placeholder { color:var(--text3); }
.livechat-send {
  width:44px; height:44px; border-radius:50%; border:none;
  background:linear-gradient(135deg,#B14EFB,#6B0ADB);
  color:#fff; display:flex; align-items:center; justify-content:center;
  cursor:pointer; flex-shrink:0; transition:transform .15s;
}
.livechat-send:active { transform:scale(.9); }

.chat-notif-badge {
  position:absolute; top:-4px; right:-6px;
  width:10px; height:10px; border-radius:50%;
  background:#ef4444; border:2px solid var(--bg);
  animation:chatBadgePulse 2s infinite;
}
@keyframes chatBadgePulse { 0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,.5)} 50%{box-shadow:0 0 0 6px rgba(239,68,68,0)} }

/* Pre-chat form */
.chat-prechat {
  flex:1; display:flex; align-items:center; justify-content:center;
}
.chat-prechat-inner {
  text-align:center; padding:32px 24px; max-width:300px; width:100%;
}

/* Typing indicator */
.chat-typing {
  display:flex; align-items:center; gap:8px; padding:6px 16px;
  font-size:12px; font-weight:600; color:var(--text3); flex-shrink:0;
}
.typing-dots { display:flex; gap:3px; }
.typing-dots span {
  width:6px; height:6px; border-radius:50%; background:var(--text3);
  animation:typeDot 1.4s infinite ease-in-out;
}
.typing-dots span:nth-child(2) { animation-delay:.2s; }
.typing-dots span:nth-child(3) { animation-delay:.4s; }
@keyframes typeDot { 0%,80%,100%{transform:scale(.4);opacity:.4} 40%{transform:scale(1);opacity:1} }

/* Quick reply buttons */
.chat-quick-replies {
  display:flex; gap:6px; padding:6px 12px; overflow-x:auto;
  flex-shrink:0; -webkit-overflow-scrolling:touch;
}
.chat-quick-replies::-webkit-scrollbar { display:none; }
.chat-quick-replies button {
  white-space:nowrap; background:var(--surface); border:1px solid var(--border);
  color:var(--text2); border-radius:20px; padding:7px 14px;
  font-size:11px; font-weight:700; cursor:pointer; transition:all .15s;
  flex-shrink:0;
}
.chat-quick-replies button:hover { border-color:var(--violet); color:var(--violet); }

/* Attachment & voice buttons */
.chat-attach-btn, .chat-voice-btn {
  width:36px; height:36px; border-radius:50%; border:none;
  background:rgba(255,255,255,.06); color:var(--text2);
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; flex-shrink:0; transition:color .15s;
}
.chat-attach-btn:hover, .chat-voice-btn:hover { color:var(--violet); }

/* Recording bar */
.chat-recording-bar {
  display:flex; align-items:center; gap:12px;
  padding:10px 14px; background:var(--surface);
  border-top:1px solid var(--border); flex-shrink:0;
}
.recording-dot {
  width:10px; height:10px; border-radius:50%; background:#ef4444;
  animation:recPulse 1s infinite;
}
@keyframes recPulse { 0%,100%{opacity:1} 50%{opacity:.3} }
#recordTimer { font-size:14px; font-weight:800; color:var(--text); font-variant-numeric:tabular-nums; }

/* Image attachments in bubbles */
.chat-img-attach {
  max-width:220px; max-height:200px; border-radius:10px;
  margin-bottom:4px; cursor:pointer; display:block;
}
.chat-file-link {
  display:inline-flex; align-items:center; gap:4px;
  padding:8px 14px; background:rgba(255,255,255,.08);
  border-radius:10px; color:var(--violet); font-weight:700;
  font-size:12px; text-decoration:none; margin-bottom:4px;
}

/* Bot message style */
.chat-bubble.bot {
  background:linear-gradient(135deg,#06B6D4,#3B82F6)!important;
  border:none!important; color:#fff!important;
}

.livechat-spinner {
  width:28px; height:28px; border-radius:50%;
  border:3px solid var(--border); border-top-color:var(--violet);
  animation:chatSpin .8s linear infinite;
}
@keyframes chatSpin { to{transform:rotate(360deg)} }

/* ── RESPONSIVE PRODUCT GRID ─────────────────────────────── */
@media (max-width:479px) { .product-grid-v2 { grid-template-columns:1fr!important; } }
@media (min-width:380px) and (max-width:639px) { .product-grid-v2 { grid-template-columns:repeat(2,1fr)!important; gap:10px!important; } }
@media (min-width:640px) { .product-grid-v2 { grid-template-columns:repeat(3,1fr)!important; } }
@media (min-width:900px) { .product-grid-v2 { grid-template-columns:repeat(4,1fr)!important; } }
@media (min-width:1200px) { .product-grid-v2 { grid-template-columns:repeat(5,1fr)!important; } }
@media (min-width:900px) { #hSearchWrap { display:flex!important; } }

/* ═══════════════════════════════════════════════════════════
   HAZEPLUS X — THE HAZE
   The signature. Violet fog banked along the same diagonal the
   HX blade runs on, drifting slowly behind everything. Sits at
   z-index:-1 so it never intercepts a click or covers copy.
═══════════════════════════════════════════════════════════ */
html { background: var(--bg); }

body::before {
  content: '';
  position: fixed;
  inset: -20%;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(38% 44% at 18% 14%, rgba(177,78,251,0.20) 0%, transparent 68%),
    radial-gradient(42% 40% at 84% 78%, rgba(107,10,219,0.22) 0%, transparent 70%),
    radial-gradient(30% 30% at 62% 30%, rgba(214,140,254,0.08) 0%, transparent 72%);
  filter: blur(28px);
  animation: haze-drift 44s ease-in-out infinite alternate;
  will-change: transform;
}
@keyframes haze-drift {
  from { transform: translate3d(-2%, -1%, 0) scale(1);    }
  to   { transform: translate3d( 2%,  2%, 0) scale(1.12); }
}

/* Thicker haze in the hero — the blade cuts through it */
.hero-v2::after {
  content: '';
  position: absolute;
  inset: -30% -10%;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(
    calc(90deg + var(--slant)),
    transparent 0%,
    rgba(107,10,219,0.28) 38%,
    rgba(177,78,251,0.16) 58%,
    transparent 82%);
  filter: blur(46px);
  opacity: .85;
}

/* ── TYPE ────────────────────────────────────────────────────
   Saira Condensed carries the display voice — condensed and
   square-shouldered, like the blade. Manrope does the reading.
   Bebas only ever had one weight; Saira has a range, so the
   headline weights are now set on purpose.
──────────────────────────────────────────────────────────── */
.hero-title-v2 { font-weight: 800; letter-spacing: 1px; }
.logo-name     { font-weight: 800; letter-spacing: 1.5px; }
.section-title-v2, .co-brand { font-weight: 800; }

/* ── THE BLADE ───────────────────────────────────────────────
   One echo of the mark's slant, on the hero eyebrow only.
──────────────────────────────────────────────────────────── */
.hero-eyebrow {
  position: relative;
  border-radius: 4px;
  padding-left: 20px;
  overflow: hidden;   /* clips the blade to the tag */
}
.hero-eyebrow::before {
  content: '';
  position: absolute;
  left: 5px; top: -4px; bottom: -4px;
  width: 4px;
  background: var(--grad);
  transform: skewX(var(--slant));
}

@media (prefers-reduced-motion: reduce) {
  body::before { animation: none; }
  .hero-title-v2 .grad-text { animation: none; }
  .hero-eyebrow-dot { animation: none; }
}

/* ═══════════════════════════════════════════════════════════
   HAZEPLUS X — ICON SET
   Replaces the emoji the v12 build used for every category,
   trust badge and nav item. Emoji render differently on every
   OS and can't take a brand colour; these are drawn on a 24px
   grid and inherit currentColor.

   NOTE: <use> clones into a shadow tree that document CSS
   selectors can't reach — only inherited properties get in.
   That's why fill/stroke are set on the host .ic element, and
   why the filled details inside a symbol carry presentation
   attributes instead of a class.
═══════════════════════════════════════════════════════════ */
.ic {
  width: 1em; height: 1em;
  display: inline-block;
  vertical-align: -0.14em;
  flex-shrink: 0;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
  overflow: visible;
}

/* Sizing per context — 1em is wrong where the container's
   font-size was tuned for emoji rather than for line art. */
.section-eyebrow .ic  { width: 13px; height: 13px; vertical-align: -0.18em; margin-right: 2px; }
.ship-banner .ic      { width: 14px; height: 14px; vertical-align: -0.2em;  margin-right: 4px; }
.cat-pill-icon .ic    { width: 16px; height: 16px; }
.trust-icon-wrap .ic  { width: 19px; height: 19px; }
.nav-dropdown-icon .ic{ width: 16px; height: 16px; }
.drawer-nav-icon .ic  { width: 17px; height: 17px; }
.why-icon-v2 .ic      { width: 22px; height: 22px; }
.about-value-icon .ic { width: 21px; height: 21px; }
.mbn-icon .ic         { width: 21px; height: 21px; }
.cart-btn-v2 .ic      { width: 20px; height: 20px; }
.shop-search-icon .ic { width: 17px; height: 17px; }

/* Line art wants a touch more weight inside the small gradient
   tiles, and a touch less at display sizes. */
.nav-dropdown-icon .ic, .drawer-nav-icon .ic, .trust-icon-wrap .ic { stroke-width: 1.9; }
.why-icon-v2 .ic, .about-value-icon .ic { stroke-width: 1.6; }

.pdp-gallery-placeholder .ic { width: 44px; height: 44px; stroke-width: 1.2; opacity: .35; }

/* ── SEARCH ──────────────────────────────────────────────────
   Clear button, plus the idle/zero-result suggestion panel that
   replaces v12's blank "Start typing to search" dead end.
──────────────────────────────────────────────────────────── */
.search-clear {
  position: absolute; right: 14px; top: 50%;
  transform: translateY(-50%);
  width: 30px; height: 30px;
  display: none; align-items: center; justify-content: center;
  border: 0; border-radius: 50%;
  background: transparent; color: var(--text3);
  font-size: 17px; cursor: pointer;
  transition: color .15s, background .15s;
}
.search-clear:hover { color: var(--text); background: rgba(255,255,255,.08); }

.search-suggest { padding-top: 4px; }
.search-suggest-label {
  font-size: 10px; font-weight: 800; letter-spacing: 2px;
  text-transform: uppercase; color: var(--text3);
  margin: 0 0 12px 2px;
}
.search-suggest-chips {
  display: flex; flex-wrap: wrap; gap: 8px;
}
.search-chip {
  border: 1px solid var(--border2);
  background: var(--surface);
  color: var(--text2);
  border-radius: 50px;
  padding: 8px 15px;
  font-family: inherit;
  font-size: 12px; font-weight: 700;
  cursor: pointer;
  transition: border-color .15s, color .15s, transform .15s, background .15s;
}
.search-chip:hover {
  border-color: var(--violet);
  background: rgba(177,78,251,0.12);
  color: #fff;
  transform: translateY(-1px);
}
