:root{
    --kvstar-bg:        #FBF7EF;
    --kvstar-cream:     #F1E8D7;
    --kvstar-terra:     #AC4A2F;
    --kvstar-terra-dk:  #933D26;
    --kvstar-ink:       #33241C;
    --kvstar-muted:     #83705F;
    --kvstar-zari:      #B9893F;
    --kvstar-line:      #E9DFCE;
    --kvstar-card:      #FFFFFF;
    --kvstar-disp:      'Marcellus', Georgia, serif;
    --kvstar-body:      'Karla', -apple-system, 'Segoe UI', sans-serif;
  }

  .kvstar-wrap *, .kvstar-wrap *::before, .kvstar-wrap *::after,
  .kvstar-modal *, .kvstar-modal *::before, .kvstar-modal *::after,
  .kvstar-sticky *, .kvstar-fab{
    box-sizing:border-box; margin:0; padding:0;
  }
  .kvstar-wrap{
    background:var(--kvstar-bg);
    color:var(--kvstar-ink);
    font-family:var(--kvstar-body);
    font-size:16px; line-height:1.55;
    padding:0 clamp(16px,4vw,56px) 140px; /* room for sticky footer */
  }

  /* ================= header ================= */
  .kvstar-head{
    max-width:1360px; margin:0 auto;
    padding:clamp(40px,7vw,80px) 0 clamp(22px,3.5vw,34px);
    text-align:center;
  }
  .kvstar-eyebrow{
    font-size:12px; letter-spacing:.24em; text-transform:uppercase;
    color:var(--kvstar-terra); font-weight:700;
  }
  .kvstar-title{
    font-family:var(--kvstar-disp);
    font-size:clamp(38px,6vw,64px);
    font-weight:400; line-height:1.08;
    margin-top:12px;
  }
  .kvstar-title .kvstar-starglyph{
    display:inline-block; color:var(--kvstar-zari);
    font-size:.55em; transform:translateY(-.55em);
  }
  .kvstar-sub{
    max-width:560px; margin:14px auto 0;
    color:var(--kvstar-muted); font-size:17px;
  }
  .kvstar-motto{
    margin-top:10px;
    font-family:var(--kvstar-disp);
    font-size:15px; letter-spacing:.14em;
    color:var(--kvstar-terra);
  }

  /* ================= filter pills =================
     Single-row scroll strip: centered while the pills fit, and
     horizontally swipeable (scrollbar hidden) once the category
     list outgrows one row — same strip pattern as the stores nav. */
  .kvstar-filters{
    max-width:1360px; margin:clamp(20px,3vw,30px) auto 30px;
    display:flex; gap:10px;
    flex-wrap:nowrap; overflow-x:auto;
    padding:2px 2px 6px;               /* room for focus rings   */
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;              /* Firefox                */
  }
  .kvstar-filters::-webkit-scrollbar{ display:none; }  /* WebKit */
  .kvstar-pill{
    flex:none; white-space:nowrap;
    font-family:var(--kvstar-body); font-size:13.5px; font-weight:600;
    letter-spacing:.03em; cursor:pointer;
    padding:9px 20px; border-radius:999px;
    border:1px solid var(--kvstar-line);
    background:var(--kvstar-card); color:var(--kvstar-muted);
    transition:all .18s ease;
  }
  /* auto-margins center the row when there's spare space and
     collapse to left-aligned the moment it overflows */
  .kvstar-pill:first-child{ margin-left:auto; }
  .kvstar-pill:last-child{ margin-right:auto; }
  .kvstar-pill:hover{ border-color:var(--kvstar-terra); color:var(--kvstar-terra); }
  .kvstar-pill[aria-pressed="true"]{
    background:var(--kvstar-terra); border-color:var(--kvstar-terra); color:#fff;
  }
  .kvstar-pill:focus-visible{ outline:2px solid var(--kvstar-terra); outline-offset:2px; }

  /* ================= masonry ================= */
  .kvstar-grid{
    max-width:1360px; margin:0 auto;
    column-count:4; column-gap:22px;
  }
  @media (max-width:1180px){ .kvstar-grid{ column-count:3; } }
  @media (max-width:860px) { .kvstar-grid{ column-count:2; column-gap:14px; } }

  .kvstar-card{
    position:relative;
    break-inside:avoid;
    margin:0 0 22px;
    background:var(--kvstar-card);
    border:1px solid var(--kvstar-line);
    border-radius:14px;
    overflow:hidden;
    transition:transform .22s ease, box-shadow .22s ease;
  }
  @media (max-width:860px){ .kvstar-card{ margin-bottom:14px; border-radius:11px; } }
  .kvstar-card:hover{
    transform:translateY(-3px);
    box-shadow:0 14px 34px rgba(51,36,28,.10);
  }

  /* photo — ANY aspect ratio, never cropped */
  .kvstar-photo{ position:relative; display:block; font-size:0; }
  .kvstar-photo img{ display:block; width:100%; height:auto; }

  /* demo placeholder (feed renderer uses it until real CF URLs) */
  .kvstar-ph{ width:100%; display:block; }

  .kvstar-chip{
    position:absolute; left:10px; bottom:10px;
    display:inline-flex; align-items:center; gap:7px;
    background:rgba(251,247,239,.94);
    border-radius:999px; padding:6px 13px 6px 9px;
    font-size:12.5px; font-weight:600; color:var(--kvstar-ink);
    backdrop-filter:blur(4px);
  }
  .kvstar-chip .kvstar-star{ color:var(--kvstar-zari); font-size:13px; }
  .kvstar-chip .kvstar-city{ font-weight:400; color:var(--kvstar-muted); }

  /* admin-only: link to the customer's original IG/FB post */
  .kvstar-postlink{
    position:absolute; top:10px; right:10px;
    display:inline-flex; align-items:center; gap:5px;
    background:rgba(51,36,28,.72); color:#fff;
    border-radius:999px; padding:5px 12px;
    font-size:11.5px; font-weight:700; letter-spacing:.03em;
    text-decoration:none;
    backdrop-filter:blur(4px);
    font-family:var(--kvstar-body);
  }
  .kvstar-postlink:hover{ background:rgba(51,36,28,.9); }

  .kvstar-sku{
    display:block; margin-top:3px;
    font-size:11px; font-weight:600; letter-spacing:.08em;
    text-transform:uppercase; color:var(--kvstar-muted);
  }

  /* admin-only: tap-to-copy chip for an already issued coupon */
  .kvstar-cpchip{
    display:inline-flex; align-items:center; gap:6px;
    margin-top:9px; cursor:pointer;
    font-family:ui-monospace, 'SF Mono', Menlo, monospace;
    font-size:11.5px; font-weight:600; letter-spacing:.02em;
    color:var(--kvstar-ink);
    background:var(--kvstar-cream);
    border:1.5px dashed var(--kvstar-zari);
    border-radius:8px; padding:5px 10px;
    max-width:100%; overflow:hidden; text-overflow:ellipsis;
    white-space:nowrap;
    transition:background .15s ease, border-color .15s ease, color .15s ease;
  }
  .kvstar-cpchip:hover{ background:#fff; }
  .kvstar-cpchip.kvstar-cpchip--copied{
    background:#557A52; border-color:#557A52; color:#fff;
  }

  .kvstar-tag{
    position:relative;
    padding:16px 16px 15px 26px;
    border-top:1.5px dashed var(--kvstar-line);
  }
  .kvstar-tag::before{
    content:"";
    position:absolute; left:10px; top:50%;
    width:7px; height:7px; border-radius:50%;
    transform:translateY(-50%);
    background:var(--kvstar-bg);
    border:1.5px solid var(--kvstar-line);
  }
  .kvstar-tag-name{
    font-family:var(--kvstar-disp);
    font-size:16.5px; line-height:1.25;
  }
  .kvstar-tag-row{
    margin-top:7px;
    display:flex; align-items:baseline; justify-content:space-between; gap:10px;
  }
  .kvstar-price{ font-weight:700; font-size:14.5px; }
  .kvstar-shop{
    font-size:13px; font-weight:700; letter-spacing:.02em;
    color:var(--kvstar-terra); text-decoration:none;
    border-bottom:1px solid transparent;
    transition:border-color .15s ease;
    white-space:nowrap;
  }
  .kvstar-shop:hover{ border-bottom-color:var(--kvstar-terra); }

  @media (max-width:860px){
    .kvstar-tag{ padding:12px 12px 12px 22px; }
    .kvstar-tag-name{ font-size:14.5px; }
    .kvstar-price{ font-size:13px; }
    .kvstar-shop{ font-size:12px; }
    .kvstar-chip{ font-size:11px; padding:5px 10px 5px 8px; }
  }

  /* ================= infinite scroll sentinel ================= */
  .kvstar-sentinel{
    max-width:1360px; margin:8px auto 0;
    display:flex; justify-content:center; padding:26px 0;
  }
  .kvstar-loader{
    display:inline-flex; align-items:center; gap:10px;
    color:var(--kvstar-muted); font-size:13.5px; font-weight:600;
  }
  .kvstar-loader .kvstar-spin{
    width:18px; height:18px; border-radius:50%;
    border:2.5px solid var(--kvstar-line);
    border-top-color:var(--kvstar-terra);
    animation:kvstar-rot .8s linear infinite;
  }
  @keyframes kvstar-rot{ to{ transform:rotate(360deg); } }
  .kvstar-end{
    color:var(--kvstar-muted); font-size:13.5px;
    display:inline-flex; align-items:center; gap:8px;
  }
  .kvstar-end .kvstar-star{ color:var(--kvstar-zari); }

  /* ================= sticky footer CTA ================= */
  .kvstar-sticky{
    position:fixed; left:0; right:0; bottom:0; z-index:9990;
    background:var(--kvstar-terra);
    color:var(--kvstar-cream);
    font-family:var(--kvstar-body);
    box-shadow:0 -6px 24px rgba(51,36,28,.18);
    transform:translateY(0);
    transition:transform .3s ease;
  }
  .kvstar-sticky.kvstar-sticky--hidden{ transform:translateY(110%); }
  .kvstar-sticky-inner{
    max-width:1360px; margin:0 auto;
    display:flex; align-items:center; gap:14px;
    padding:12px clamp(16px,4vw,56px);
  }
  .kvstar-sticky-text{
    flex:1; min-width:0;
    font-size:14.5px; line-height:1.35;
  }
  .kvstar-sticky-text strong{
    font-family:var(--kvstar-disp); font-weight:400;
    font-size:16px; color:#fff; letter-spacing:.02em;
    display:block;
  }
  .kvstar-sticky-text small{
    display:block; opacity:.92; font-size:12.5px;
    overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  }
  .kvstar-sticky-btn{
    flex:none; cursor:pointer;
    font-family:var(--kvstar-body); font-size:13.5px; font-weight:700;
    letter-spacing:.03em;
    background:var(--kvstar-cream); color:var(--kvstar-terra);
    border:none; border-radius:999px; padding:11px 22px;
    transition:transform .15s ease;
  }
  .kvstar-sticky-btn:hover{ transform:scale(1.04); }
  .kvstar-sticky-close{
    flex:none; cursor:pointer;
    background:transparent; border:none;
    color:var(--kvstar-cream); opacity:.75;
    font-size:20px; line-height:1; padding:6px;
  }
  .kvstar-sticky-close:hover{ opacity:1; }
  @media (max-width:560px){
    .kvstar-sticky-inner{ gap:10px; padding:10px 14px; }
    .kvstar-sticky-text strong{ font-size:14px; }
    .kvstar-sticky-text small{ font-size:11px; }
    .kvstar-sticky-btn{ font-size:12.5px; padding:10px 16px; }
  }

  /* floating ✦ bubble — appears when the sticky footer is dismissed */
  .kvstar-bubble{
    position:fixed; right:clamp(16px,3vw,32px); bottom:22px; z-index:9990;
    width:54px; height:54px; border-radius:50%;
    display:none; align-items:center; justify-content:center;
    cursor:pointer; border:none;
    background:var(--kvstar-terra); color:var(--kvstar-cream);
    font-size:22px; line-height:1;
    box-shadow:0 10px 28px rgba(51,36,28,.32);
    transition:transform .18s ease;
    animation:kvstar-pop .25s ease;
  }
  .kvstar-bubble:hover{ transform:scale(1.08); }
  .kvstar-bubble.kvstar-show{ display:inline-flex; }
  .kvstar-bubble:focus-visible{ outline:3px solid var(--kvstar-zari); outline-offset:2px; }

  /* ================= modal (shared shell) ================= */
  .kvstar-modal{
    position:fixed; inset:0; z-index:9995;
    display:none;
    align-items:center; justify-content:center;
    padding:20px;
    font-family:var(--kvstar-body);
  }
  .kvstar-modal.kvstar-open{ display:flex; }
  .kvstar-modal-backdrop{
    position:absolute; inset:0;
    background:rgba(51,36,28,.55);
    backdrop-filter:blur(3px);
  }
  .kvstar-modal-box{
    position:relative; z-index:1;
    width:100%; max-width:640px;
    max-height:min(86vh, 760px);
    overflow-y:auto;
    background:var(--kvstar-bg);
    border-radius:20px;
    box-shadow:0 30px 80px rgba(51,36,28,.35);
    animation:kvstar-pop .22s ease;
  }
  @keyframes kvstar-pop{
    from{ opacity:0; transform:translateY(14px) scale(.98); }
    to  { opacity:1; transform:none; }
  }
  .kvstar-modal-x{
    position:absolute; top:12px; right:12px; z-index:2;
    width:34px; height:34px; border-radius:50%;
    border:none; cursor:pointer;
    background:rgba(251,247,239,.9); color:var(--kvstar-ink);
    font-size:17px; line-height:1;
  }
  .kvstar-modal-x:hover{ background:#fff; }
  /* program popup: drop the × below the hashtag tape */
  #kvstarProgramModal .kvstar-modal-x{ top:42px; }

  /* --- program popup content --- */
  .kvstar-program{ background:var(--kvstar-terra); color:var(--kvstar-cream); }
  .kvstar-tape{
    background:var(--kvstar-cream); color:var(--kvstar-terra);
    font-weight:700; font-size:12px; letter-spacing:.12em;
    white-space:nowrap; overflow:hidden;
    padding:7px 0; text-transform:uppercase;
  }
  .kvstar-tape span{ padding:0 16px; }
  .kvstar-program-inner{ padding:28px clamp(20px,5vw,40px) 30px; }
  .kvstar-program h2{
    font-family:var(--kvstar-disp); font-weight:400;
    font-size:clamp(24px,4.5vw,32px);
    text-align:center; color:#fff;
  }
  .kvstar-steps{ margin-top:20px; display:grid; gap:13px; }
  .kvstar-step{ display:flex; gap:14px; align-items:flex-start; }
  .kvstar-step-num{
    flex:none; width:32px; height:32px; border-radius:50%;
    background:var(--kvstar-cream); color:var(--kvstar-terra);
    font-weight:700; font-size:14px;
    display:flex; align-items:center; justify-content:center;
    margin-top:2px;
  }
  .kvstar-step h3{ font-size:15.5px; font-weight:700; color:#fff; }
  .kvstar-step p{ margin-top:2px; font-size:13.5px; color:var(--kvstar-cream); opacity:.92; }
  .kvstar-reward{
    margin:18px auto 0;
    background:var(--kvstar-terra-dk);
    border:1px solid rgba(241,232,215,.35);
    border-radius:999px; padding:12px 22px;
    text-align:center; font-size:14px; font-weight:600; color:#fff;
  }
  .kvstar-reward .kvstar-star{ color:var(--kvstar-zari); padding:0 5px; }
  .kvstar-how{
    margin-top:12px;
    display:flex; flex-direction:row; flex-wrap:wrap;
    align-items:center; justify-content:center; gap:6px 8px;
    font-size:12px; color:var(--kvstar-cream);
  }
  .kvstar-how-chip{
    background:rgba(241,232,215,.14);
    border:1px solid rgba(241,232,215,.3);
    border-radius:999px; padding:6px 12px;
    white-space:nowrap;
  }
  .kvstar-how-arrow{ opacity:.7; }
  .kvstar-program-cta{
    display:block; margin:18px auto 0; width:max-content;
    background:var(--kvstar-cream); color:var(--kvstar-terra);
    text-decoration:none; font-weight:700; font-size:14px;
    border-radius:999px; padding:12px 26px;
  }
  .kvstar-program-motto{
    margin-top:12px; text-align:center;
    font-family:var(--kvstar-disp); letter-spacing:.14em;
    font-size:13.5px; color:var(--kvstar-cream);
  }

  /* --- admin: floating button --- */
  .kvstar-fab{
    position:fixed; right:clamp(16px,3vw,32px); bottom:92px; z-index:9991;
    display:none; align-items:center; gap:9px;
    cursor:pointer;
    background:var(--kvstar-ink); color:#fff;
    border:none; border-radius:999px;
    font-family:var(--kvstar-body); font-size:13.5px; font-weight:700;
    padding:13px 20px;
    box-shadow:0 10px 28px rgba(51,36,28,.3);
  }
  .kvstar-fab .kvstar-star{ color:var(--kvstar-zari); font-size:15px; }
  body.kvstar-is-admin .kvstar-fab{ display:inline-flex; }

  /* --- admin: form + coupon --- */
  .kvstar-admin-box{ padding:30px clamp(20px,5vw,40px) 32px; }
  .kvstar-admin-box h2{
    font-family:var(--kvstar-disp); font-weight:400;
    font-size:26px; text-align:center;
  }
  .kvstar-admin-note{
    text-align:center; font-size:13px; color:var(--kvstar-muted); margin-top:6px;
  }
  .kvstar-field{ margin-top:16px; }
  .kvstar-field label{
    display:block; font-size:12.5px; font-weight:700;
    letter-spacing:.06em; text-transform:uppercase;
    color:var(--kvstar-muted); margin-bottom:6px;
  }
  .kvstar-field input[type="text"],
  .kvstar-field select{
    width:100%; font-family:var(--kvstar-body); font-size:15px;
    padding:11px 14px; border-radius:10px;
    border:1px solid var(--kvstar-line); background:#fff;
    color:var(--kvstar-ink);
  }
  .kvstar-field input:focus, .kvstar-field select:focus{
    outline:2px solid var(--kvstar-terra); outline-offset:1px;
  }
  .kvstar-field-row{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
  @media (max-width:480px){ .kvstar-field-row{ grid-template-columns:1fr; } }

  .kvstar-skurow{ display:flex; gap:10px; }
  .kvstar-skurow input{ flex:1; }
  .kvstar-skurow .kvstar-btn{ flex:none; padding:11px 20px; }

  .kvstar-prodcard{
    margin-top:14px;
    background:var(--kvstar-cream);
    border:1px solid var(--kvstar-line);
    border-left:3px solid var(--kvstar-zari);
    border-radius:10px;
    padding:12px 16px;
  }
  .kvstar-prodcard-title{
    font-family:var(--kvstar-disp); font-size:16px; line-height:1.3;
  }
  .kvstar-prodcard-meta{
    margin-top:4px; font-size:12.5px; font-weight:600;
    letter-spacing:.04em; color:var(--kvstar-muted);
    text-transform:uppercase;
  }

  .kvstar-drop{
    margin-top:16px;
    border:2px dashed var(--kvstar-line); border-radius:14px;
    padding:22px; text-align:center; cursor:pointer;
    color:var(--kvstar-muted); font-size:14px;
    transition:border-color .15s ease;
    position:relative;
  }
  .kvstar-drop:hover{ border-color:var(--kvstar-terra); }
  .kvstar-drop img{
    display:block; max-width:120px; max-height:160px;
    margin:0 auto 10px; border-radius:8px;
  }
  .kvstar-drop small{ display:block; margin-top:4px; font-size:12px; opacity:.8; }

  .kvstar-btn{
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    cursor:pointer; border:none; border-radius:999px;
    font-family:var(--kvstar-body); font-size:14px; font-weight:700;
    padding:12px 24px;
    transition:transform .15s ease, opacity .15s ease;
  }
  .kvstar-btn:hover{ transform:scale(1.02); }
  .kvstar-btn--primary{ background:var(--kvstar-terra); color:#fff; }
  .kvstar-btn--copied{ background:#557A52 !important; color:#fff !important; }
  .kvstar-btn--ghost{
    background:transparent; color:var(--kvstar-ink);
    border:1px solid var(--kvstar-line);
  }
  .kvstar-btn--full{ width:100%; margin-top:22px; }
  .kvstar-btn[disabled]{ opacity:.5; cursor:not-allowed; transform:none; }

  .kvstar-divider{
    margin:26px 0 4px; display:flex; align-items:center; gap:12px;
    color:var(--kvstar-muted); font-size:12px; font-weight:700;
    letter-spacing:.1em; text-transform:uppercase;
  }
  .kvstar-divider::before, .kvstar-divider::after{
    content:""; flex:1; height:1px; background:var(--kvstar-line);
  }

  .kvstar-coupon{
    margin-top:14px; display:flex; gap:10px; align-items:stretch;
  }
  .kvstar-coupon-code{
    flex:1; display:flex; align-items:center; justify-content:center;
    font-family:ui-monospace, 'SF Mono', Menlo, monospace;
    font-size:14px; font-weight:600; letter-spacing:.04em;
    word-break:break-all;
    background:var(--kvstar-cream); color:var(--kvstar-ink);
    border:1.5px dashed var(--kvstar-zari); border-radius:10px;
    padding:12px; min-height:48px;
  }
  .kvstar-coupon-code.kvstar-empty{
    border-color:var(--kvstar-line); color:var(--kvstar-muted);
    font-family:var(--kvstar-body); font-size:13.5px;
    font-weight:500; letter-spacing:0;
  }
  .kvstar-coupon-hint{
    margin-top:8px; font-size:12px; color:var(--kvstar-muted); text-align:center;
  }
  .kvstar-toast{
    position:fixed; left:50%; bottom:110px; z-index:9999;
    transform:translateX(-50%) translateY(20px);
    background:var(--kvstar-ink); color:#fff;
    font-family:var(--kvstar-body); font-size:13.5px; font-weight:600;
    border-radius:999px; padding:10px 22px;
    opacity:0; pointer-events:none;
    transition:opacity .25s ease, transform .25s ease;
  }
  .kvstar-toast.kvstar-show{ opacity:1; transform:translateX(-50%); }

  @media (prefers-reduced-motion: reduce){
    .kvstar-card, .kvstar-pill, .kvstar-sticky, .kvstar-btn{ transition:none; }
    .kvstar-modal-box{ animation:none; }
    .kvstar-loader .kvstar-spin{ animation-duration:1.5s; }
  }

/* --- v1.0.1 overrides: Flatsome conflicts + widget clutter --- */

/* Theme button styles stretch the modal close button; pin the circle */
.kvstar-modal .kvstar-modal-x{
  width:34px !important; height:34px !important;
  min-width:34px !important; min-height:0 !important; max-height:34px !important;
  padding:0 !important; margin:0 !important;
  line-height:1 !important; font-size:17px !important;
  border-radius:50% !important; box-sizing:border-box !important;
  display:flex !important; align-items:center; justify-content:center;
}
.kvstar-sticky .kvstar-sticky-close{
  padding:6px !important; line-height:1 !important; min-width:0 !important;
}

/* WhatsApp widget owns bottom-right; our floating controls go LEFT */
.kvstar-bubble{ right:auto !important; left:clamp(16px,3vw,32px); }
.kvstar-fab{ right:auto !important; left:clamp(16px,3vw,32px); }

/* --- v1.0.2: floating controls back to the RIGHT, stacked above WhatsApp --- */
.kvstar-bubble{
  left:auto !important; right:clamp(16px,3vw,28px) !important;
  bottom:96px !important;
}
.kvstar-fab{
  left:auto !important; right:clamp(16px,3vw,28px) !important;
  bottom:164px !important;
}

/* --- v1.0.3: real spacing in the right-edge stack --- */
/* WhatsApp ~20px -> bubble 104px -> FAB 200px; ~40px clear air between each */
.kvstar-bubble{ bottom:104px !important; }
.kvstar-fab{ bottom:200px !important; box-shadow:0 6px 16px rgba(51,36,28,.28) !important; }
.kvstar-bubble{ box-shadow:0 6px 16px rgba(51,36,28,.28) !important; }

/* --- v1.0.4: [kusvaastar_moments] homepage strip --- */
.kvstar-moments{
  max-width:1360px; margin:0 auto; padding:8px 0 12px;
  font-family:'Karla',-apple-system,'Segoe UI',sans-serif;
}
.kvstar-moments-head{
  display:flex; align-items:baseline; justify-content:space-between;
  gap:16px; margin-bottom:18px;
}
.kvstar-moments-title{
  font-family:'Marcellus',Georgia,serif; font-weight:400;
  font-size:clamp(24px,3.4vw,34px); color:#33241C; margin:0;
}
.kvstar-moments-all{
  font-size:14px; font-weight:700; letter-spacing:.02em;
  color:#AC4A2F; text-decoration:none; white-space:nowrap;
}
.kvstar-moments-all:hover{ text-decoration:underline; }
.kvstar-moments-grid{ column-count:4; column-gap:18px; }
@media (max-width:1180px){ .kvstar-moments-grid{ column-count:3; } }
@media (max-width:860px) { .kvstar-moments-grid{ column-count:2; column-gap:12px; } }
.kvstar-moments-grid .kvstar-card{
  break-inside:avoid; margin:0 0 18px;
  background:#fff; border:1px solid #E9DFCE; border-radius:12px;
  overflow:hidden; position:relative;
}
@media (max-width:860px){ .kvstar-moments-grid .kvstar-card{ margin-bottom:12px; } }

/* --- v1.0.7: align to the WhatsApp column (right 20px), lift the stack --- */
.kvstar-bubble{ right:20px !important; bottom:170px !important; }
.kvstar-fab{ right:20px !important; bottom:236px !important; }

/* --- v1.0.8: FINAL floating-stack positions (supersedes all earlier blocks) ---
   Desktop >=850px: WA (inline, right:20/bottom:100, ~56px tall)
                    -> bubble 176 -> FAB 252. 20px air between each.
   Mobile  <850px : WA sits bottom-LEFT (main_wa.php), right column is ours:
                    bubble 96 -> FAB 172. */
@media (min-width:850px){
  .kvstar-bubble{ left:auto !important; right:20px !important; bottom:176px !important; }
  .kvstar-fab{    left:auto !important; right:20px !important; bottom:252px !important; }
}
@media (max-width:849px){
  .kvstar-bubble{ left:auto !important; right:16px !important; bottom:96px !important; }
  .kvstar-fab{    left:auto !important; right:16px !important; bottom:172px !important; }
}
.kvstar-bubble, .kvstar-fab{ box-shadow:0 5px 14px rgba(51,36,28,.25) !important; }

/* --- v1.0.8: FINAL floating-stack positions (supersedes earlier blocks) --- */
@media (min-width:850px){
  .kvstar-bubble{ left:auto !important; right:20px !important; bottom:176px !important; }
  .kvstar-fab{    left:auto !important; right:20px !important; bottom:252px !important; }
}
@media (max-width:849px){
  .kvstar-bubble{ left:auto !important; right:16px !important; bottom:96px !important; }
  .kvstar-fab{    left:auto !important; right:16px !important; bottom:172px !important; }
}
.kvstar-bubble, .kvstar-fab{ box-shadow:0 5px 14px rgba(51,36,28,.25) !important; }

/* --- v1.0.9: respect the hidden attribute on feed status elements --- */
.kvstar-loader[hidden], .kvstar-end[hidden]{ display:none !important; }

/* --- v1.0.10: tighten vertical rhythm (hero, pills, page end) --- */
.kvstar-head{ padding-top:28px !important; padding-bottom:0 !important; margin-bottom:0 !important; }
.kvstar-motto{ margin:14px 0 22px !important; }
.kvstar-filters{ margin-top:0 !important; margin-bottom:26px !important; }
.kvstar-sentinel{ margin:0 auto !important; padding:12px 0 !important; }
.kvstar-wrap{ padding-bottom:28px !important; }

/* --- v1.0.11: neutralize residual margins/transforms on the floating pair --- */
.kvstar-bubble, .kvstar-fab{
  position:fixed !important;
  margin:0 !important;
  transform:none !important;
}

/* --- v1.0.12: mobile restack, WA back on the right at 88px --- */
@media (max-width:849px){
  .kvstar-bubble{ right:16px !important; bottom:160px !important; }
  .kvstar-fab{    right:16px !important; bottom:236px !important; }
}

/* ============================================================
   KVSTAR LIGHTBOX v1.4.1 (appended block)
   Compact centered card: image with chip, details attached below.
   ============================================================ */
.kvstar-modal.kvstar-lightbox{
	position:fixed; inset:0; z-index:100000;
	display:none;
}
.kvstar-modal.kvstar-lightbox.kvstar-open{
	display:flex; align-items:center; justify-content:center;
	padding:16px;
}
.kvstar-lightbox .kvstar-modal-backdrop{
	position:absolute; inset:0;
	background:rgba(20,13,9,.9);
}
.kvstar-lightbox-box{
	position:relative; z-index:1;
	display:flex; flex-direction:column;
	width:fit-content; max-width:min(94vw,540px);
	max-height:92dvh;
	background:#fff; border-radius:16px; overflow:hidden;
	box-shadow:0 24px 64px rgba(0,0,0,.5);
}
.kvstar-lightbox .kvstar-modal-x{
	position:absolute; top:10px; right:10px; z-index:3;
	width:34px; height:34px; padding:0;
	border:0; border-radius:999px; cursor:pointer;
	background:rgba(24,16,11,.55); color:#fff;
	font-size:20px; line-height:34px; text-align:center;
}
.kvstar-lightbox .kvstar-modal-x:hover{ background:rgba(24,16,11,.8); }
.kvstar-lightbox-fig{
	position:relative; margin:0;
	flex:1 1 auto; min-height:0;
	display:flex; align-items:center; justify-content:center;
	background:#171310;
}
.kvstar-lightbox-fig img{
	display:block;
	max-width:100%;
	max-height:calc(92dvh - 132px);
	width:auto; height:auto;
	object-fit:contain;
}
.kvstar-lightbox-chip{
	position:absolute; left:12px; bottom:12px;
}
.kvstar-lightbox-tag{
	flex:0 0 auto;
	background:#fff;
	padding:12px 18px 16px;
	text-align:center;
}
.kvstar-lightbox-tag .kvstar-tag-name{ margin:0; }
.kvstar-lightbox-meta{
	margin:4px 0 0; display:flex; gap:12px; justify-content:center;
	font-size:12.5px; letter-spacing:.06em; text-transform:uppercase;
	color:#83705F;
}
.kvstar-lightbox-meta span:empty{ display:none; }
.kvstar-lightbox-shop{
	display:inline-block; margin-top:10px;
	padding:10px 24px; border-radius:999px;
	background:#33241C; color:#fff !important;
	font-size:13px; font-weight:700; letter-spacing:.05em;
	text-decoration:none;
}
.kvstar-lightbox-shop:hover{ background:#4a352a; }

/* product name inside the card details strip is a link */
a.kvstar-tag-link{ color:inherit; text-decoration:none; }
a.kvstar-tag-link:hover{ text-decoration:underline; }

/* ============================================================
   KVSTAR MOMENTS HOMEPAGE POLISH v1.5.1 (appended block)
   Branded centered heading on desktop; side padding on mobile.
   ============================================================ */
@media (min-width:850px){
	.kvstar-moments-head{ display:block; text-align:center; }
	.kvstar-moments-title{ display:block; margin:0 0 2px; }
	.kvstar-moments-all{ display:inline-block; margin-top:8px; }
}
@media (max-width:849px){
	.kvstar-moments{ padding-left:14px; padding-right:14px; box-sizing:border-box; }
}

/* ============================================================
   KVSTAR MOMENTS UNIFORM GRID v1.6.1 (appended block)
   Fixed 3:4 tiles, object-fit cover (face-biased) — clean 4x2
   on desktop, 2x2 on mobile (cards 5+ hidden). The lightbox
   shows the full uncropped photo on tap. Scoped to the moments
   grid only; the /kusvaastar/ gallery masonry is untouched.
   ============================================================ */
.kvstar-moments-grid{
	display:grid;
	grid-template-columns:repeat(4, 1fr);
	gap:18px;
	columns:auto;
}
.kvstar-moments-grid .kvstar-card{
	margin:0;
	break-inside:auto;
}
.kvstar-moments-grid .kvstar-photo{
	display:block;
	position:relative;
	aspect-ratio:3/4;
	overflow:hidden;
}
.kvstar-moments-grid .kvstar-photo img{
	width:100%; height:100%;
	object-fit:cover;
	object-position:center 22%;
	display:block;
}
@media (max-width:849px){
	.kvstar-moments-grid{
		grid-template-columns:repeat(2, 1fr);
		gap:12px;
	}
	.kvstar-moments-grid .kvstar-card:nth-child(n+5){ display:none; }
}

/* Homepage [kusvaastar_moments] title: star glyph in zari, matching /kusvaastar/ */
.kvstar-moments-title .kvstar-starglyph{color:#B9893F}

/* ============================================================
   KVSTAR LIGHTBOX NAV v1.6.3 (appended block)
   Prev/next arrows for the gallery + homepage moments lightboxes.
   ============================================================ */
.kvstar-lb-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:38px;height:38px;
	min-width:0 !important;min-height:0 !important;margin:0 !important;padding:0 !important;
	border:0 !important;border-radius:50% !important;cursor:pointer;
	background:rgba(30,22,18,.55) !important;color:#FFF !important;
	font-size:22px !important;font-weight:400 !important;line-height:1 !important;
	display:flex !important;align-items:center;justify-content:center;
	box-shadow:none !important;-webkit-appearance:none;appearance:none}
.kvstar-lb-nav:hover{background:rgba(30,22,18,.8) !important}
.kvstar-lb-prev{left:10px}
.kvstar-lb-next{right:10px}
