/* KARMASU Shop Extras */
/* ---- festival banner ---- */
.ksx-fest{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;background:linear-gradient(90deg,#7a2e00,var(--karmasu-primary,#D35400),var(--karmasu-gold,#C5A059));color:#fff;padding:9px 16px;font-size:14px;font-weight:600;text-align:center;font-family:inherit}
.ksx-fest-t{line-height:1.35}
.ksx-cd{display:inline-flex;gap:4px;align-items:baseline;background:rgba(0,0,0,.28);border-radius:6px;padding:3px 10px;font-variant-numeric:tabular-nums}
.ksx-cd b{font-size:15px}.ksx-cd i{font-style:normal;font-size:11px;opacity:.8;margin-right:4px}
.ksx-fest-b{background:#fff;color:#7a2e00;border-radius:20px;padding:5px 16px;font-size:13px;font-weight:700;text-decoration:none}
@media (max-width:600px){.ksx-fest{font-size:12.5px;gap:8px;padding:8px 10px}}

/* ---- video modal ---- */
.ksx-modal{position:fixed;inset:0;background:rgba(0,0,0,.88);z-index:99999;display:flex;align-items:center;justify-content:center;padding:16px}
.ksx-modal-box{position:relative;width:min(420px,100%);max-height:100%;display:flex;flex-direction:column;gap:10px}
.ksx-modal-media{position:relative;width:100%;aspect-ratio:9/16;max-height:80vh;background:#000;border-radius:12px;overflow:hidden}
.ksx-modal-media.wide{aspect-ratio:16/9;width:min(900px,92vw)}
.ksx-modal-media iframe,.ksx-modal-media video{position:absolute;inset:0;width:100%;height:100%;border:0}
.ksx-modal-x{position:absolute;top:-6px;right:-6px;z-index:2;width:36px;height:36px;border-radius:50%;border:0;background:#fff;color:#111;font-size:22px;line-height:1;cursor:pointer}
.ksx-modal-buy{display:block;text-align:center;background:var(--karmasu-primary,#D35400);color:#fff;font-weight:700;padding:12px;border-radius:8px;text-decoration:none}
.ksx-modal-img{max-width:92vw;max-height:88vh;border-radius:10px}

/* ---- product gallery video thumb ---- */
.ksx-vthumb{position:relative;width:64px;height:64px;border:2px solid #E8DFD3;border-radius:8px;background:#222;padding:0;cursor:pointer;overflow:hidden;flex-shrink:0}
.ksx-vthumb img{width:100%;height:100%;object-fit:cover;opacity:.75}
.ksx-vthumb:hover{border-color:var(--karmasu-primary,#D35400)}
.ksx-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.92);color:#D35400;font-size:12px;display:flex;align-items:center;justify-content:center;padding-left:2px;box-shadow:0 2px 8px rgba(0,0,0,.35)}
@media (max-width:768px){.ksx-vthumb{width:56px;height:56px}}

/* ---- reels ---- */
.ksx-reels-track{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 2px 14px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.ksx-reel{position:relative;flex:0 0 200px;aspect-ratio:9/16;border-radius:14px;overflow:hidden;background:#1d1713;scroll-snap-align:start;cursor:pointer;box-shadow:0 4px 18px rgba(0,0,0,.14)}
.ksx-reel>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .4s}
.ksx-reel:hover>img{transform:scale(1.05)}
.ksx-reel .ksx-play{width:46px;height:46px;font-size:16px}
.ksx-reel-info{position:absolute;left:0;right:0;bottom:0;padding:34px 12px 12px;background:linear-gradient(transparent,rgba(0,0,0,.85));color:#fff}
.ksx-reel-name{font-size:13.5px;font-weight:600;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ksx-reel-price{font-size:13px;margin:4px 0 8px;opacity:.95}
.ksx-reel-price del{opacity:.6;margin-right:4px}.ksx-reel-price ins{text-decoration:none}
.ksx-reel-buy{display:inline-block;background:var(--karmasu-primary,#D35400);color:#fff;font-size:12px;font-weight:700;padding:6px 16px;border-radius:20px;text-decoration:none}
@media (max-width:600px){.ksx-reel{flex-basis:62vw}}

/* ---- review photos ---- */
.comment-form-ksx label{display:block;font-weight:600;margin-bottom:6px}
.ksx-rphotos{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.ksx-rphoto img{width:78px;height:78px;object-fit:cover;border-radius:8px;border:1px solid #E8DFD3;display:block}

/* ---- kit builder ---- */
.ksx-kb{max-width:1100px;margin:0 auto;font-family:inherit;color:#2C2724}
.ksx-kits{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}
.ksx-kit{background:#fff;border:1px solid #E8DFD3;border-radius:14px;overflow:hidden;cursor:pointer;transition:transform .2s,box-shadow .2s;text-align:left;padding:0;font-family:inherit}
.ksx-kit:hover{transform:translateY(-4px);box-shadow:0 10px 26px rgba(0,0,0,.1)}
.ksx-kit-img{aspect-ratio:16/10;background:#F6EEE2 center/cover;display:flex;align-items:center;justify-content:center;font-size:44px}
.ksx-kit-body{padding:14px 16px 18px}
.ksx-kit-title{font-size:18px;font-weight:700;margin-bottom:4px}
.ksx-kit-desc{font-size:13.5px;color:#6b6159;line-height:1.5;margin-bottom:8px}
.ksx-kit-meta{font-size:12.5px;font-weight:700;color:var(--karmasu-primary,#D35400)}
.ksx-back{background:none;border:0;color:var(--karmasu-primary,#D35400);font-weight:700;cursor:pointer;margin-bottom:12px;font-size:14px;padding:0;font-family:inherit}
.ksx-kit-head h2{font-size:28px;margin:0 0 4px}
.ksx-kit-head p{margin:0 0 18px;color:#6b6159}
.ksx-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;align-items:start}
.ksx-list{display:flex;flex-direction:column;gap:12px}
.ksx-item{display:grid;grid-template-columns:auto 64px 1fr auto;gap:12px;align-items:center;background:#fff;border:1px solid #E8DFD3;border-radius:12px;padding:12px}
.ksx-item.off{opacity:.55}
.ksx-item input[type=checkbox]{width:20px;height:20px;accent-color:var(--karmasu-primary,#D35400)}
.ksx-item img{width:64px;height:64px;object-fit:cover;border-radius:8px}
.ksx-iname{font-weight:600;font-size:14.5px;line-height:1.3}
.ksx-iname a{color:inherit;text-decoration:none}
.ksx-inote{font-size:12.5px;color:#7a6f66;margin-top:2px}
.ksx-tag{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;border-radius:4px;padding:2px 6px;margin-left:6px;vertical-align:middle}
.ksx-tag.e{background:#fdeede;color:#b24800}.ksx-tag.o{background:#eef2f6;color:#546}.ksx-tag.s{background:#fde8e8;color:#b00020}
.ksx-iright{text-align:right;min-width:104px}
.ksx-qty{display:inline-flex;align-items:center;border:1.5px solid #E8DFD3;border-radius:6px;overflow:hidden;margin-bottom:4px}
.ksx-qty button{width:28px;height:28px;border:0;background:#faf6ef;cursor:pointer;font-size:16px;font-family:inherit}
.ksx-qty span{min-width:28px;text-align:center;font-weight:700;font-size:13px}
.ksx-line{font-weight:700;font-size:14px}
.ksx-sum{background:#fff;border:1px solid #E8DFD3;border-radius:14px;padding:18px;position:sticky;top:120px}
.ksx-sum h3{margin:0 0 12px;font-size:17px}
.ksx-row{display:flex;justify-content:space-between;padding:6px 0;font-size:14px}
.ksx-row.t{border-top:1px solid #E8DFD3;margin-top:6px;padding-top:12px;font-size:18px;font-weight:700}
.ksx-row.sv{color:#1e7e34;font-weight:600}
.ksx-add{width:100%;margin-top:14px;background:var(--karmasu-primary,#D35400);color:#fff;border:0;border-radius:8px;padding:14px;font-size:15px;font-weight:700;cursor:pointer;font-family:inherit}
.ksx-add:disabled{opacity:.5;cursor:not-allowed}
.ksx-note{font-size:12px;color:#7a6f66;margin-top:10px;line-height:1.5}
.ksx-msg{margin-top:10px;font-size:13px;color:#b00020}
@media (max-width:860px){
  .ksx-layout{grid-template-columns:1fr}
  .ksx-sum{position:sticky;bottom:0;top:auto;z-index:20;border-radius:14px 14px 0 0;box-shadow:0 -6px 22px rgba(0,0,0,.12)}
  .ksx-item{grid-template-columns:auto 52px 1fr;}
  .ksx-item img{width:52px;height:52px}
  .ksx-iright{grid-column:2/-1;text-align:left;display:flex;align-items:center;gap:14px}
  .ksx-qty{margin:0}
}
