/* Category booking page (/category-booking/{slug}-{id}). Builds on tos.css; the page script drives selection, totals, promo and the details sheet. */
.cb-hero{position:relative;isolation:isolate;overflow-x:clip;color:#fff;padding:30px 0 70px;background:radial-gradient(700px 420px at 85% 0,rgba(124,61,255,.42),transparent 65%),radial-gradient(520px 360px at 0 100%,rgba(224,79,240,.2),transparent 70%),linear-gradient(160deg,#160a3d,#2a1270 55%,#1d0d52)}
.cb-bg{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.cb-bg::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.12) 1px,transparent 1.2px);background-size:30px 30px;-webkit-mask-image:radial-gradient(70% 80% at 30% 40%,#000,transparent);mask-image:radial-gradient(70% 80% at 30% 40%,#000,transparent)}
.cb-hin{display:grid;grid-template-columns:1fr 360px;gap:40px;align-items:center}
.cb-hcopy .tos-crumbs{margin-bottom:18px}
.cb-hero h1{margin:0 0 14px;color:#fff;font-size:clamp(30px,4.4vw,52px);font-weight:800;line-height:1.08;letter-spacing:-.025em;text-wrap:balance}
.cb-hero h1 .tos-w{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.14em;margin-bottom:-.14em}
.cb-hero h1 .tos-w>span{display:inline-block;animation:tos-word .95s cubic-bezier(.2,.8,.2,1) calc(var(--w,0) * 80ms + .1s) both}
.cb-lead{max-width:520px;margin:0 0 20px;color:#d6cff0;font-size:clamp(15.5px,1.5vw,17.5px)}
.cb-chips{display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none}
.cb-chips li{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid rgba(255,255,255,.2);border-radius:999px;background:rgba(255,255,255,.1);backdrop-filter:blur(6px);color:#efeaff;font-size:13.5px;font-weight:600}
.cb-chips .i{width:16px;height:16px;color:#c4b5fd}
.cb-art{margin:0;overflow:hidden;border:4px solid rgba(255,255,255,.95);border-radius:26px;box-shadow:0 30px 70px rgba(8,3,28,.5);animation:tos-float 7s ease-in-out infinite}
.cb-art img{display:block;width:100%;height:auto}

.cb-main{position:relative;padding:0 0 80px;background:linear-gradient(180deg,#faf8ff,#fff 420px)}
.cb-grid{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:36px;align-items:start}
.cb-left{margin-top:-34px}
.cb-side{position:sticky;top:96px;margin-top:-34px}

/* Filter */
.cb-filter{padding:20px 22px;border:1px solid #ece6ff;border-radius:22px;background:#fff;box-shadow:0 14px 36px rgba(75,33,181,.1)}
.cb-label{margin:0 0 12px;color:var(--ink);font-size:14.5px;font-weight:800}
.cb-tabs{display:flex;flex-wrap:wrap;gap:8px}
.cb-tab{padding:10px 18px;border:1.5px solid #e3d9fb;border-radius:999px;background:#fff;color:var(--deep);font-size:14px;font-weight:700;cursor:pointer;transition:background-color .25s,color .25s,border-color .25s,transform .2s,box-shadow .25s}
.cb-tab:hover{transform:translateY(-2px);border-color:#c7b3f7}
.cb-tab.is-on{border-color:transparent;color:#fff;background:linear-gradient(135deg,#5b2dd4,#7c3dff);box-shadow:0 8px 20px rgba(106,53,232,.35)}
.cb-listhead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:34px 0 16px}
.cb-listhead h2{margin:0;color:var(--ink);font-size:clamp(22px,2.4vw,28px);font-weight:800;letter-spacing:-.02em}
.cb-count{padding:7px 14px;border:1px solid #e3d9fb;border-radius:999px;background:#f7f4ff;color:var(--deep);font-size:13px;font-weight:800}

/* Services */
.cb-list{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0;padding:0;list-style:none}
.cb-list li[style*="display: none"]{display:none!important}
.service-option-card{position:relative;display:flex;align-items:center;gap:14px;width:100%;height:100%;padding:14px 56px 14px 14px;border:1.5px solid #ece6ff;border-radius:20px;background:#fff;color:inherit;font:inherit;text-align:left;cursor:pointer;box-shadow:0 8px 22px rgba(75,33,181,.06);transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s,border-color .3s,background-color .3s}
.service-option-card:hover{transform:translateY(-4px);border-color:#d6c8ff;box-shadow:0 20px 44px rgba(75,33,181,.16)}
.service-option-card.is-selected{border-color:var(--brand);background:linear-gradient(135deg,#faf7ff,#f3edff);box-shadow:0 14px 34px rgba(106,53,232,.2)}
.cb-thumb{display:block;flex:none;width:72px;height:72px;overflow:hidden;border:1px solid #f0edf8;border-radius:16px;background:#fff}
.cb-thumb img{display:block;width:100%;height:100%;object-fit:contain}
.cb-info{display:flex;flex:1;min-width:0;flex-direction:column;gap:4px}
.cb-info b{color:var(--ink);font-size:14.5px;line-height:1.35}
.cb-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.cb-meta em{padding:2px 8px;border-radius:999px;background:#e8f8f1;color:#0b8a5d;font-size:11.5px;font-style:normal;font-weight:800}
.cb-meta small{color:var(--muted);font-size:12px}
.cb-price{color:var(--brand);font-size:16px;font-weight:800;white-space:nowrap}
.cb-add{position:absolute;right:14px;top:50%;display:grid;place-items:center;width:32px;height:32px;margin-top:-16px;border-radius:50%;background:#f1eefb;color:var(--brand);transition:background-color .3s,color .3s,transform .4s cubic-bezier(.3,1.4,.5,1)}
.cb-add .i{width:16px;height:16px;grid-area:1/1;transition:opacity .2s,transform .3s}
.cb-tick{opacity:0;transform:scale(.4)}
.service-option-card:hover .cb-add{transform:scale(1.1)}
.service-option-card.is-selected .cb-add{background:var(--brand);color:#fff}
.service-option-card.is-selected .cb-plus{opacity:0;transform:rotate(90deg) scale(.4)}
.service-option-card.is-selected .cb-tick{opacity:1;transform:none}
.cb-empty{grid-column:1/-1;padding:24px;border:1px dashed #d6c8ff;border-radius:18px;color:var(--muted);text-align:center}
.cb-bhk{margin-top:30px}

/* Side card */
.cb-card{position:relative;overflow:hidden;border:1px solid #e6dcff;border-radius:28px;background:#fff;box-shadow:0 2px 6px rgba(22,9,58,.03),0 30px 70px rgba(75,33,181,.18)}
.cb-promo{padding:22px 24px;color:#fff;background:linear-gradient(135deg,#2b1370,#5b2dd4)}
.cb-promo label{display:block;margin-bottom:10px;font-size:14px;font-weight:800}
.cb-promorow{display:flex;gap:8px}
.cb-promorow input{flex:1;min-width:0;padding:12px 16px;border:0;border-radius:999px;background:#fff;color:var(--ink);font:inherit;font-size:14.5px;outline:0}
.cb-promorow input:focus{box-shadow:0 0 0 3px rgba(196,181,253,.6)}
.cb-promorow button{padding:12px 20px;border:0;border-radius:999px;background:#fff;color:var(--deep);font:inherit;font-size:14px;font-weight:800;cursor:pointer;transition:transform .2s,background-color .2s}
.cb-promorow button:hover{transform:translateY(-1px);background:#f3edff}
.cb-promo p{margin:10px 0 0;color:#d6cff0;font-size:12.5px}
.cb-sum,.cb-pay{padding:20px 24px 4px}
.cb-sum h3,.cb-pay h3{margin:0 0 12px;color:var(--deep);font-size:16.5px;font-weight:800}
.cb-sum dl,.cb-pay dl{margin:0}
.cb-sum dl div,.cb-pay dl div{display:flex;justify-content:space-between;gap:14px;padding:7px 0;font-size:14px}
.cb-sum dl div[hidden],.cb-pay dl div[hidden]{display:none}
.cb-sum dt,.cb-pay dt{color:var(--muted)}
.cb-sum dd,.cb-pay dd{margin:0;color:var(--ink);font-weight:700;text-align:right}
.cb-pay{border-top:1px solid #f0edf8;margin-top:12px;padding-top:20px}
.cb-pay .is-green dd{color:#0b8a5d}
.cb-pay .is-total{margin-top:6px;padding-top:14px;border-top:1px dashed #e3d9fb}
.cb-pay .is-total dt{color:var(--ink);font-weight:800}
.cb-pay .is-total dd{color:var(--deep);font-size:22px;font-weight:800;letter-spacing:-.02em}
.summary-service-list{display:grid;gap:8px;margin:12px 0 0;padding:0;list-style:none}
.summary-service-list li{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:12px;background:#f7f4ff;color:var(--muted);font-size:13px;line-height:1.4}
.summary-service-list li span{color:var(--ink);font-weight:600}
.summary-service-list li b{flex:none;color:var(--brand);white-space:nowrap}
.cb-next{width:calc(100% - 48px);margin:16px 24px 0;padding:16px 20px;font-size:16px}
.cb-next:disabled,.cb-bar .tos-btn:disabled{opacity:.7;cursor:progress}
.cb-safe{display:flex;align-items:center;justify-content:center;gap:8px;margin:14px 24px 22px;color:var(--muted);font-size:12.5px;text-align:center}
.cb-safe .i{width:15px;height:15px;flex:none;color:var(--ok)}

/* Mobile bar */
.cb-bar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:none;align-items:center;justify-content:space-between;gap:14px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid #ece6ff;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);box-shadow:0 -10px 30px rgba(22,9,58,.12)}
.cb-bar small{display:block;color:var(--muted);font-size:12px}
.cb-bar b{color:var(--ink);font-size:19px;font-weight:800}

/* Details sheet */
.cb-overlay{position:fixed;inset:0;z-index:90;background:rgba(14,6,41,.6);backdrop-filter:blur(3px);opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
.cb-overlay.active{opacity:1;visibility:visible}
.cb-modal{position:fixed;left:50%;top:50%;z-index:100;display:flex;flex-direction:column;width:min(560px,calc(100vw - 24px));max-height:calc(100vh - 40px);overflow:hidden;border-radius:26px;background:#fff;box-shadow:0 40px 100px rgba(8,3,28,.5);opacity:0;visibility:hidden;transform:translate(-50%,-46%) scale(.96);transition:opacity .3s,transform .4s cubic-bezier(.2,.8,.2,1),visibility .3s}
.cb-modal.active{opacity:1;visibility:visible;transform:translate(-50%,-50%)}
.cb-mhead{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid #f0edf8}
.cb-mhead h2{margin:0;color:var(--ink);font-size:18px;font-weight:800}
.cb-x{display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:50%;background:#f1eefb;color:var(--deep);cursor:pointer;transition:transform .25s,background-color .2s}
.cb-x:hover{transform:rotate(90deg);background:#e7defb}
.cb-x .i{width:18px;height:18px}
.cb-mbody{flex:1;overflow-y:auto;padding:20px 22px}
.cb-mtop{display:flex;align-items:center;gap:16px;margin-bottom:16px}
.cb-mimg{display:block;flex:none;width:96px;height:96px;overflow:hidden;border:1px solid #f0edf8;border-radius:18px;background:#fff}
.cb-mimg img{display:block;width:100%;height:100%;object-fit:contain}
.cb-mtop h3{margin:0 0 8px;color:var(--ink);font-size:18px;font-weight:800;line-height:1.3}
.cb-mmeta{display:flex;align-items:center;gap:10px;margin:0}
.cb-mmeta b{color:var(--brand);font-size:20px;font-weight:800}
.cb-off{padding:3px 10px;border-radius:999px;background:#e8f8f1;color:#0b8a5d;font-size:12px;font-weight:800}
.cb-mdesc{padding-top:16px;border-top:1px solid #f0edf8;color:#4d476a;font-size:14.5px;line-height:1.7}
.cb-mdesc h1,.cb-mdesc h2,.cb-mdesc h3,.cb-mdesc h4{margin:1.2em 0 .4em;color:var(--ink);font-size:16px;font-weight:800}
.cb-mdesc p{margin:0 0 .9em}
.cb-mdesc ul,.cb-mdesc ol{margin:0 0 1em;padding-left:20px}
.cb-mdesc li{margin-bottom:.4em}
.cb-mdesc img{max-width:100%;height:auto;border-radius:12px}
.cb-mfoot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;padding:16px 22px calc(16px + env(safe-area-inset-bottom));border-top:1px solid #f0edf8;background:#faf8ff}
.cb-qty{display:flex;align-items:center;gap:12px}
.cb-qty button{display:grid;place-items:center;width:38px;height:38px;border:1.5px solid #d6c8ff;border-radius:50%;background:#fff;color:var(--deep);cursor:pointer;transition:background-color .2s,color .2s,transform .2s}
.cb-qty button:hover{background:var(--deep);color:#fff;transform:scale(1.08)}
.cb-qty button .i{width:16px;height:16px}
.cb-qty span{min-width:24px;color:var(--ink);font-size:18px;font-weight:800;text-align:center}
.cb-qty em{color:var(--brand);font-size:16px;font-style:normal;font-weight:800}
.cb-msel{min-width:180px;padding:14px 22px}
.cb-msel.is-remove{background:linear-gradient(135deg,#dc2626,#e11d48);box-shadow:0 8px 20px rgba(220,38,38,.35)}
.cb-msel:disabled{opacity:.7}

.cb-toast{position:fixed;left:50%;top:84px;z-index:120;max-width:calc(100vw - 32px);padding:12px 22px;border-radius:999px;background:var(--ink);color:#fff;font-size:14px;font-weight:600;box-shadow:0 18px 40px rgba(22,9,58,.4);transform:translate(-50%,-14px);opacity:0;transition:opacity .3s,transform .3s}
.cb-toast.is-on{opacity:1;transform:translate(-50%,0)}
.cb-toast.is-success{background:#0b6b4a}
.cb-toast.is-error{background:#9f1239}
.cb-toast[hidden]{display:block;visibility:hidden}

@media (max-width:1000px){
  .cb-hin{grid-template-columns:1fr}
  .cb-art{display:none}
  .cb-hero{padding-bottom:56px}
  .cb-grid{grid-template-columns:1fr;gap:26px}
  .cb-side{position:static;margin-top:0}
  .cb-bar{display:flex}
  .cb-main{padding-bottom:110px}
  .cb-next,.cb-safe{display:none}
  .cb-card{border-radius:24px}
}
@media (max-width:640px){
  .cb-list{grid-template-columns:1fr}
  .cb-filter{padding:16px}
  .cb-tab{padding:9px 15px}
  .cb-modal{top:auto;bottom:0;left:0;width:100%;max-height:92vh;border-radius:26px 26px 0 0;transform:translateY(100%)}
  .cb-modal.active{transform:none}
  .cb-mfoot{flex-direction:column;align-items:stretch}
  .cb-qty{justify-content:space-between}
  .cb-msel{width:100%}
}
@media (prefers-reduced-motion:reduce){.cb-art{animation:none}.cb-modal{transition:opacity .2s}}
body:has(.cb-hero) .tos-footer{margin-top:0}
@media (max-width:1000px){body:has(.cb-bar) .tos-fab{bottom:88px}body:has(.cb-bar) #back-to-top{bottom:160px}}
