/* ── Kashi & Kin · global cart (FAB + drawer) ─────────────────────────── */

/* FAB */
#kkCartFab {
  position:fixed; bottom:28px; right:28px; z-index:900;
  width:52px; height:52px; border-radius:50%;
  background:#DCAB53; border:none; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 24px rgba(0,0,0,.5);
  transition:transform .2s, box-shadow .2s;
}
#kkCartFab:hover { transform:scale(1.08); box-shadow:0 6px 28px rgba(0,0,0,.55); }

#kkCartFab svg { width:22px; height:22px; stroke:#12100E; fill:none;
  stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }

#kkCartBadge {
  position:absolute; top:-5px; right:-5px;
  background:#12100E; color:#DCAB53;
  font-size:.55rem; font-family:'IBM Plex Mono',monospace; font-weight:600;
  min-width:18px; height:18px; border-radius:9px; padding:0 4px;
  display:none; align-items:center; justify-content:center;
  border:1.5px solid #DCAB53;
}
#kkCartFab.has-items #kkCartBadge { display:flex; }

/* Overlay */
#kkCartOverlay {
  position:fixed; inset:0; z-index:901;
  background:rgba(0,0,0,0); pointer-events:none;
  transition:background .3s;
}
#kkCartOverlay.open { background:rgba(0,0,0,.54); pointer-events:all; }

/* Drawer */
#kkCartDrawer {
  position:fixed; top:0; right:0; bottom:0; z-index:902;
  width:min(420px,100vw); background:#14110E;
  border-left:1px solid rgba(184,134,58,.18);
  display:flex; flex-direction:column;
  transform:translateX(100%);
  transition:transform .38s cubic-bezier(.16,1,.3,1);
}
#kkCartDrawer.open { transform:translateX(0); }

/* Header */
.kk-cart-head {
  display:flex; align-items:flex-start; justify-content:space-between;
  padding:24px 24px 18px;
  border-bottom:1px solid rgba(184,134,58,.12);
  flex-shrink:0;
}
.kk-cart-head-txt h4 {
  font-family:'Fraunces',Georgia,serif; font-weight:300;
  font-size:1.08rem; color:#FAF7F0; letter-spacing:-.01em; margin:0 0 4px;
}
.kk-cart-head-txt span {
  font-family:'IBM Plex Mono',monospace; font-size:.58rem;
  letter-spacing:.14em; text-transform:uppercase; color:rgba(220,171,83,.55);
}
.kk-cart-close {
  background:none; border:none; cursor:pointer; padding:2px 5px;
  color:rgba(232,224,210,.35); font-size:1.25rem; line-height:1;
  transition:color .2s; flex-shrink:0; margin-top:-2px;
}
.kk-cart-close:hover { color:#FAF7F0; }

/* Items */
#kkCartItems { flex:1; overflow-y:auto; padding:8px 0; }

.kk-cart-empty {
  padding:52px 24px; text-align:center;
  font-family:'IBM Plex Mono',monospace; font-size:.7rem;
  letter-spacing:.12em; text-transform:uppercase;
  color:rgba(232,224,210,.25); line-height:2;
}
.kk-cart-empty svg {
  display:block; margin:0 auto 16px;
  width:32px; height:32px; stroke:rgba(220,171,83,.2);
  fill:none; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round;
}

.kk-cart-item {
  display:flex; align-items:flex-start; gap:12px;
  padding:14px 24px; border-bottom:1px solid rgba(184,134,58,.08);
  animation:kkItemIn .25s ease both;
}
@keyframes kkItemIn { from{opacity:0;transform:translateX(10px)} to{opacity:1;transform:translateX(0)} }

.kk-cart-item-info { flex:1; }
.kk-cart-item-name {
  font-size:.86rem; color:#FAF7F0; line-height:1.45; margin-bottom:3px;
}
.kk-cart-item-label {
  font-family:'IBM Plex Mono',monospace; font-size:.68rem;
  color:rgba(220,171,83,.7); letter-spacing:.03em;
}
.kk-cart-item-remove {
  background:none; border:none; cursor:pointer; padding:3px 5px;
  color:rgba(232,224,210,.22); font-size:.8rem; line-height:1;
  transition:color .2s; flex-shrink:0; margin-top:1px;
}
.kk-cart-item-remove:hover { color:#EF4444; }

/* Footer */
.kk-cart-foot {
  padding:18px 24px 32px; border-top:1px solid rgba(184,134,58,.12); flex-shrink:0;
}
.kk-cart-note {
  font-size:.7rem; color:rgba(232,224,210,.35); line-height:1.7;
  margin-bottom:16px; font-family:'IBM Plex Mono',monospace; letter-spacing:.02em;
}
.kk-sum-row {
  display:flex; justify-content:space-between; align-items:baseline;
  font-size:.82rem; color:rgba(232,224,210,.65); padding:4px 0;
  font-family:'IBM Plex Mono',monospace;
}
.kk-sum-row.kk-sum-total {
  border-top:1px solid rgba(184,134,58,.18); margin-top:8px; padding-top:12px;
  color:#FAF7F0; font-size:.9rem;
}
.kk-sum-row.kk-sum-total b {
  font-family:'Fraunces',Georgia,serif; font-size:1.45rem; font-weight:400; color:#DCAB53;
}
#kkCartCheckout {
  display:flex; align-items:center; justify-content:center;
  width:100%; padding:13px 20px; border:none; border-radius:2px;
  background:#DCAB53; color:#12100E; cursor:pointer;
  font-family:'IBM Plex Mono',monospace; font-size:.7rem;
  letter-spacing:.15em; text-transform:uppercase; font-weight:600;
  text-decoration:none; transition:background .2s, opacity .2s;
  box-sizing:border-box;
}
#kkCartCheckout:hover { background:#C89030; }
#kkCartCheckout.disabled { opacity:.35; pointer-events:none; cursor:default; }
#kkCartWa {
  display:flex; align-items:center; justify-content:center; gap:8px;
  width:100%; padding:11px 20px; margin-top:10px;
  border:1px solid rgba(184,134,58,.35); border-radius:2px;
  background:transparent; color:rgba(220,171,83,.85); cursor:pointer;
  font-family:'IBM Plex Mono',monospace; font-size:.64rem;
  letter-spacing:.12em; text-transform:uppercase;
  text-decoration:none; transition:.2s;
  box-sizing:border-box;
}
#kkCartWa:hover { border-color:#DCAB53; color:#DCAB53; }
#kkCartWa svg {
  width:14px; height:14px; fill:none; stroke:currentColor;
  stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0;
}
#kkCartWa.disabled { opacity:.35; pointer-events:none; cursor:default; }

/* Service card: Add to cart button */
.svc-cart-btn {
  display:block; width:100%; text-align:center;
  margin-top:12px; box-sizing:border-box; cursor:pointer;
  border:none;
}
.svc.on .svc-cart-btn {
  background:transparent !important;
  color:rgba(220,171,83,.8) !important;
  border:1px solid rgba(220,171,83,.3) !important;
  letter-spacing:.12em;
}

@media(max-width:600px){
  #kkCartFab  { bottom:18px; right:14px; width:48px; height:48px; }
  #kkCartDrawer { width:100vw; }
}

/* ── quantity stepper (days / rides / ceremonies) ───────────────────── */
.kk-cart-item-opt{
  font-family:'IBM Plex Mono',monospace;font-size:.62rem;letter-spacing:.08em;
  text-transform:uppercase;color:rgba(220,171,83,.75);margin-top:2px;
}
.kk-cart-item-right{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex-shrink:0}
.kk-cart-item-total{
  font-family:'Fraunces',Georgia,serif;font-size:1rem;color:#DCAB53;white-space:nowrap;
}
.kk-qty{display:inline-flex;align-items:center;gap:0;margin-top:10px;
  border:1px solid rgba(184,134,58,.3);border-radius:3px;overflow:hidden}
.kk-qty-btn{
  width:28px;height:28px;line-height:1;background:none;border:none;cursor:pointer;
  color:#DCAB53;font-size:1rem;font-family:inherit;transition:background .15s ease;
}
.kk-qty-btn:hover{background:rgba(184,134,58,.18)}
.kk-qty-n{
  min-width:30px;text-align:center;font-family:'IBM Plex Mono',monospace;
  font-size:.8rem;color:#FAF7F0;
  border-left:1px solid rgba(184,134,58,.3);border-right:1px solid rgba(184,134,58,.3);
  padding:5px 0;
}