/* Lớp hướng dẫn viên — demo. Màu lấy từ biến của style.css; lớp này dùng nền mực tối để khách hiểu đây là phần "người dẫn", không phải tính năng của shop. */
:root{
  --g-ink:var(--ink,#1E2A2A);
  --g-need:var(--pri,#1F6F68);--g-need-l:var(--pri-l,#DDEFEC);--g-need-d:var(--pri-d,#17544F);
  --g-opt:var(--acc,#F2B544);--g-opt-l:var(--acc-l,#FDF1D8);--g-opt-d:#7A5410;
  --g-r:16px;
}

/* 1. Nút mở hướng dẫn: viên thuốc nền mực, la bàn vàng, góc dưới trái */
.g-launch{position:fixed;left:max(16px,env(safe-area-inset-left,0px));bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:60;
  display:inline-flex;align-items:center;gap:8px;min-height:52px;padding:0 20px 0 14px;border:0;border-radius:999px;
  background:var(--g-ink);color:#fff;font:700 16px/1.2 var(--f);cursor:pointer;box-shadow:0 8px 24px rgb(30 42 42/.28)}
.g-launch .g-ic{width:30px;height:30px;border-radius:50%;background:var(--g-opt);color:var(--g-ink);display:flex;align-items:center;justify-content:center;font-size:17px}
.g-launch:hover{background:#000}
.g-launch[aria-expanded=true]{background:#fff;color:var(--g-ink);outline:2px solid var(--g-ink)}
@media (max-width:899px){
  .g-launch{bottom:calc(78px + env(safe-area-inset-bottom,0px));left:12px;min-height:48px;padding:0 16px 0 10px;font-size:15px}
}

/* 2. Chấm số trên tính năng thật */
.g-dot{position:absolute;z-index:55;width:44px;height:44px;margin:-22px 0 0 -22px;border:0;padding:0;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center}
.g-dot b{position:relative;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font:800 15px/1 var(--f);box-shadow:0 3px 10px rgb(0 0 0/.25);border:3px solid #fff}
.g-dot.need b{background:var(--g-need);color:#fff}
/* ➕ khác cả màu lẫn hình: nền vàng, viền nét đứt, có dấu + nhỏ — không chỉ dựa vào màu */
.g-dot.opt b{background:var(--g-opt);color:var(--g-ink);border-style:dashed;border-color:var(--g-ink)}
.g-dot.opt b::after{content:"+";position:absolute;top:-9px;right:-9px;width:16px;height:16px;border-radius:50%;background:var(--g-ink);color:#fff;font-size:12px;line-height:16px;text-align:center}
.g-dot.on b{transform:scale(1.15)}
.g-dot.on::before{content:"";position:absolute;inset:0;border-radius:50%;border:3px solid currentColor;animation:g-pulse 1.6s ease-out infinite}
.g-dot.need{color:var(--g-need)}.g-dot.opt{color:var(--g-opt-d)}
.g-dot.seen b{opacity:.55}
@keyframes g-pulse{from{transform:scale(.8);opacity:.9}to{transform:scale(1.5);opacity:0}}
@media (prefers-reduced-motion:reduce){.g-dot.on::before{animation:none;transform:scale(1.25)}}

/* Viền sáng quanh tính năng đang giải thích */
.g-hl{position:absolute;z-index:54;pointer-events:none;border-radius:14px;outline:3px solid var(--g-opt);outline-offset:4px;box-shadow:0 0 0 9999px rgb(30 42 42/.35);transition:all .25s}

/* 3. Khung giải thích */
.g-card{position:fixed;z-index:70;width:min(360px,calc(100vw - 32px));background:#fff;color:var(--tx,#2E3838);border-radius:var(--g-r);
  box-shadow:0 18px 48px rgb(30 42 42/.28);padding:18px 18px 14px;font:16px/1.5 var(--f)}
.g-card h3{margin:8px 44px 10px 0;font-size:19px;color:var(--g-ink)}
.g-x{position:absolute;top:8px;right:8px;width:44px;height:44px;border:0;border-radius:12px;background:none;font-size:24px;cursor:pointer;color:var(--g-ink)}
.g-x:hover{background:var(--soft,#F5EFE6)}
.g-tier{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;font-weight:700;font-size:14px}
.g-tier.need{background:var(--g-need-l);color:var(--g-need-d)}
.g-tier.opt{background:var(--g-opt-l);color:var(--g-opt-d);outline:1.5px dashed var(--g-opt-d);outline-offset:-1.5px}
.g-rows{margin:0;display:grid;gap:10px}
.g-rows div{display:grid;grid-template-columns:28px 1fr;gap:8px;align-items:start}
.g-rows dt{font-size:20px;line-height:1.3}
.g-rows dd{margin:0}
.g-rows dd b{display:block;font-size:13px;color:var(--tx2,#5E6866);font-weight:700;text-transform:uppercase;letter-spacing:.03em}
.g-foot{display:flex;align-items:center;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line,#E8DFD2)}
.g-step{margin-right:auto;font-size:14px;color:var(--tx2,#5E6866);font-weight:600}
.g-bar{display:flex;gap:4px;margin-top:4px}.g-bar i{width:18px;height:5px;border-radius:3px;background:var(--line,#E8DFD2)}.g-bar i.on{background:var(--g-ink)}
.g-btn{min-height:48px;padding:0 18px;border-radius:12px;border:2px solid var(--g-ink);background:var(--g-ink);color:#fff;font:700 16px var(--f);cursor:pointer}
.g-btn.alt{background:#fff;color:var(--g-ink)}
/* mũi nhọn chỉ về chấm */
.g-card[data-side=below]::before,.g-card[data-side=above]::before{content:"";position:absolute;left:var(--g-ax,40px);width:16px;height:16px;background:#fff;transform:rotate(45deg);margin-left:-8px}
.g-card[data-side=below]::before{top:-8px}.g-card[data-side=above]::before{bottom:-8px}

/* Thẻ mở đầu: chọn vòng */
.g-pick{display:grid;gap:10px;margin-top:12px}
.g-pick button{display:grid;grid-template-columns:40px 1fr;gap:10px;align-items:center;text-align:left;min-height:64px;padding:10px 12px;border-radius:14px;cursor:pointer;font:inherit;background:#fff}
.g-pick .need{border:2px solid var(--g-need)}.g-pick .opt{border:2px dashed var(--g-opt-d)}
.g-pick button span:first-child{font-size:26px;text-align:center}
.g-pick small{display:block;color:var(--tx2,#5E6866);font-size:14px}
.g-note{margin:12px 0 0;font-size:14px;color:var(--tx2,#5E6866)}

/* 4. Điện thoại: khung trượt lên từ đáy, chữ to, nút to */
@media (max-width:899px){
  .g-card{left:0!important;right:0;bottom:0;top:auto!important;width:100%;border-radius:22px 22px 0 0;padding:10px 18px calc(16px + env(safe-area-inset-bottom,0px));font-size:17px;animation:g-up .25s ease-out}
  .g-card::before{display:none}
  .g-card::after{content:"";position:absolute;top:8px;left:50%;width:44px;height:5px;margin-left:-22px;border-radius:3px;background:var(--line,#E8DFD2)}
  .g-card h3{font-size:21px;margin-top:12px}
  .g-foot .g-btn{flex:1;min-height:54px;font-size:17px}
  .g-step{flex-basis:100%;margin:0 0 4px}
  .g-foot{flex-wrap:wrap}
}
@keyframes g-up{from{transform:translateY(100%)}to{transform:none}}
@media (prefers-reduced-motion:reduce){.g-card{animation:none}}
