

  :root{
    --pro360-bg:#f6f8fb;
    --pro360-card:#ffffff;
    --pro360-text:#111827;
    --pro360-muted:#6b7280;
    --pro360-line:rgba(17,24,39,.08);
    --pro360-dark:#0f172a;
    --pro360-shadow:0 18px 50px rgba(15,23,42,.10);
    --pro360-shadow-soft:0 10px 30px rgba(15,23,42,.08);
  }

#pro360Viewer{
  pointer-events: none;
}

  .product360-pro-v4{
    background:var(--pro360-bg);
  }

  /* ================= LEFT VIEWER ================= */
  .pro360-viewer-card{
    background:var(--pro360-card);
    box-shadow:var(--pro360-shadow);
  }

  .pro360-viewer-shell{
    position:relative;
    min-height:620px;
    overflow:hidden;
    background:
      radial-gradient(circle at top right, rgba(255,255,255,.10), rgba(255,255,255,0) 34%),
      linear-gradient(135deg,#0f172a,#111827 46%,#1f2937);
  }

  .pro360-pannellum{
    width:100%;
    height:620px;
    background:#111827;
  }

  .pro360-topbar{ pointer-events:none; }

  .pro360-heading{ max-width:min(780px,100%); }

  .pro360-kicker{
    color:rgba(255,255,255,.76);
    font-size:12px;
    font-weight:800;
    letter-spacing:.16em;
    text-transform:uppercase;
    margin-bottom:10px;
  }

  .pro360-title{
    color:#fff;
    font-weight:800;
    font-size:clamp(1.45rem,2.2vw,2.5rem);
    line-height:1.08;
    margin:0;
  }

  .pro360-subtitle{
    color:rgba(255,255,255,.72);
    font-size:14px;
  }

  .pro360-serial{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:58px;
    padding:8px 14px;
    border-radius:999px;
    background:rgba(255,255,255,.14);
    color:#fff;
    font-size:12px;
    font-weight:800;
    letter-spacing:.06em;
    backdrop-filter:blur(8px);
  }

  .pro360-type-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:8px 14px;
    border-radius:999px;
    background:rgba(255,255,255,.94);
    color:#111827;
    font-size:12px;
    font-weight:800;
    letter-spacing:.03em;
    box-shadow:0 10px 30px rgba(0,0,0,.14);
  }

  .pro360-live-pill{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:10px 16px;
    border-radius:999px;
    background:rgba(255,255,255,.94);
    color:#111827;
    font-size:12px;
    font-weight:800;
    letter-spacing:.12em;
    box-shadow:0 12px 30px rgba(0,0,0,.14);
  }

  .pro360-status-pill{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:90px;
    padding:10px 14px;
    border-radius:999px;
    background:rgba(255,255,255,.14);
    color:#fff;
    font-size:13px;
    font-weight:700;
    backdrop-filter:blur(8px);
  }

  .pro360-bottom-fade{
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    height:190px;
    z-index:1;
    background:linear-gradient(to top, rgba(0,0,0,.72), rgba(0,0,0,0));
    pointer-events:none;
  }

  .pro360-controls{ z-index:4; }

  .pro360-btn{
    border:0;
    color:#fff;
    background:rgba(255,255,255,.14);
    backdrop-filter:blur(8px);
    border-radius:999px;
    padding:10px 16px;
    font-weight:700;
    font-size:14px;
    box-shadow:0 8px 24px rgba(0,0,0,.14);
  }

  .pro360-btn:hover{
    color:#fff;
    background:rgba(255,255,255,.22);
  }

  .pro360-mini-note{
    color:rgba(255,255,255,.70);
    font-size:13px;
    font-weight:600;
  }

  .pro360-loader,
  .pro360-error{
    position:absolute;
    inset:0;
    z-index:5;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    text-align:center;
    padding:24px;
  }

  .pro360-loader{
    background:rgba(0,0,0,.24);
    transition:opacity .22s ease, visibility .22s ease;
  }

  .pro360-loader.hide{
    opacity:0;
    visibility:hidden;
    pointer-events:none;
  }

  .pro360-error{
    background:rgba(127,29,29,.28);
  }

  /* ================= RIGHT SIDE ================= */
  .pro360-side-card{
    background:var(--pro360-card);
    box-shadow:var(--pro360-shadow);
  }

  .pro360-side-kicker{
    font-size:12px;
    font-weight:800;
    letter-spacing:.12em;
    color:var(--pro360-muted);
    text-transform:uppercase;
    margin-bottom:4px;
  }

  .pro360-count-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:42px;
    height:42px;
    padding:0 12px;
    border-radius:999px;
    background:#111827;
    color:#fff;
    font-size:13px;
    font-weight:800;
  }

  /* category chips */
  .pro360-category-wrap{
    display:none;
    gap:10px;
    flex-wrap:wrap;
  }

  .pro360-chip{
    border:1px solid rgba(17,24,39,.10);
    background:#fff;
    color:#111827;
    border-radius:999px;
    padding:10px 16px;
    font-size:13px;
    font-weight:700;
    line-height:1;
    transition:all .25s ease;
    box-shadow:0 4px 12px rgba(15,23,42,.04);
  }

  .pro360-chip:hover{
    transform:translateY(-2px);
    border-color:rgba(17,24,39,.18);
    box-shadow:0 10px 22px rgba(15,23,42,.08);
  }

  .pro360-chip.active{
    background:#111827;
    color:#fff;
    border-color:#111827;
    box-shadow:0 12px 28px rgba(17,24,39,.18);
  }

  /* scroll area */
  .pro360-thumb-scroller{
    overflow:auto;
    padding-right:4px;
    min-height:220px;
  }

  .pro360-thumb-scroller::-webkit-scrollbar{
    width:8px;
  }
  .pro360-thumb-scroller::-webkit-scrollbar-track{
    background:transparent;
  }
  .pro360-thumb-scroller::-webkit-scrollbar-thumb{
    background:rgba(17,24,39,.16);
    border-radius:999px;
  }
  .pro360-thumb-scroller{
    scrollbar-width:thin;
    scrollbar-color:rgba(17,24,39,.18) transparent;
  }

  /* ===== ONLY ROUND IMAGE GRID ===== */
  
  .pro360-thumb-grid{
  display:grid;
  grid-template-columns:repeat(2, 110px); /* thumbnail width fixed */
  justify-content:center;                  /* center align */
  gap:15px 50px;
  align-items:start;
  margin-top: 10px;
}

  .pro360-thumb-btn{
    border:0;
    background:none;
    padding:0;
    display:block;
    width:100%;
  }

  .pro360-thumb-circle{
    position:relative;
    width:100%;
    aspect-ratio:1 / 1;
    border-radius:50%;
    overflow:hidden;
    background:
      radial-gradient(circle at 30% 30%, #ffffff 0%, #f7f8fb 45%, #eef2f7 100%);
    border:4px solid rgba(17,24,39,.08);
    box-shadow:
      0 10px 24px rgba(15,23,42,.10),
      inset 0 1px 0 rgba(255,255,255,.8);
    transition:
      transform .32s ease,
      box-shadow .32s ease,
      border-color .32s ease;
  }

  .pro360-thumb-btn:hover .pro360-thumb-circle{
    transform:translateY(-4px) scale(1.03);
    border-color:rgba(17,24,39,.18);
    box-shadow:
      0 20px 38px rgba(15,23,42,.16),
      inset 0 1px 0 rgba(255,255,255,.9);
  }

  .pro360-thumb-btn.active .pro360-thumb-circle{
    border-color:#111827;
    transform:translateY(-2px) scale(1.02);
    box-shadow:
      0 0 0 8px rgba(17,24,39,.06),
      0 18px 40px rgba(17,24,39,.18);
  }

  .pro360-thumb-circle::after{
    content:"";
    position:absolute;
    inset:0;
    border-radius:50%;
    background:
      radial-gradient(circle at top left, rgba(255,255,255,.55), rgba(255,255,255,0) 35%),
      radial-gradient(circle at bottom right, rgba(17,24,39,.03), rgba(17,24,39,0) 45%);
    pointer-events:none;
  }

  .pro360-thumb-circle img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover; /* FULL round image fill */
    display:block;
    transition:transform .45s ease;
    background:#fff;
  }

  .pro360-thumb-btn:hover .pro360-thumb-circle img{
    transform:scale(1.06);
  }

  .pro360-thumb-btn.active .pro360-thumb-circle img{
    transform:scale(1.03);
  }

  .pro360-thumb-index{
    position:absolute;
    top:8px;
    right:8px;
    z-index:3;
    min-width:34px;
    height:34px;
    padding:0 8px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    background:rgba(17,24,39,.92);
    color:#fff;
    font-size:11px;
    font-weight:800;
    letter-spacing:.04em;
    box-shadow:0 8px 20px rgba(0,0,0,.18);
  }

  /* skeleton */
  .pro360-skeleton-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
  }

  .pro360-skeleton-circle{
    aspect-ratio:1/1;
    border-radius:50%;
    background:#eef2f7;
    position:relative;
    overflow:hidden;
    box-shadow:var(--pro360-shadow-soft);
  }

  .pro360-skeleton-circle::after{
    content:"";
    position:absolute;
    inset:0;
    transform:translateX(-100%);
    background:linear-gradient(90deg, transparent, rgba(255,255,255,.65), transparent);
    animation:pro360Shimmer 1.2s infinite;
  }

  @keyframes pro360Shimmer{
    100%{ transform:translateX(100%); }
  }

  /* pannellum cleanup */
  .pnlm-controls-container,
  .pnlm-about-msg{
    display:none !important;
  }

  .pnlm-render-container{
    filter:saturate(1.02) contrast(1.02);
  }

  /* responsive */
  @media (max-width:1199.98px){
    .pro360-viewer-shell,
    .pro360-pannellum{
      min-height:580px;
      height:580px;
    }
  }

  @media (max-width:991.98px){
    .pro360-viewer-shell,
    .pro360-pannellum{
      min-height:460px;
      height:460px;
    }

    .pro360-thumb-scroller{
      overflow:visible;
      min-height:auto;
      max-height:none;
    }

    .pro360-category-wrap{
      flex-wrap:nowrap;
      overflow:auto;
      padding-bottom:4px;
    }

    .pro360-category-wrap::-webkit-scrollbar{
      height:6px;
    }

    .pro360-category-wrap::-webkit-scrollbar-thumb{
      background:rgba(17,24,39,.16);
      border-radius:999px;
    }

    .pro360-thumb-grid{
      grid-template-columns:repeat(3,minmax(0,1fr));
      gap:16px;
    }
  }

  @media (max-width:575.98px){
    .pro360-viewer-shell,
    .pro360-pannellum{
      min-height:340px;
      height:340px;
    }

    .pro360-btn{
      padding:9px 14px;
      font-size:13px;
    }

    .pro360-title{
      font-size:1.35rem;
    }

    .pro360-thumb-grid{
      grid-template-columns:repeat(3,minmax(0,1fr));
      gap:12px;
    }

    .pro360-thumb-index{
      min-width:28px;
      height:28px;
      font-size:10px;
    }
  }


  /* =========================================================
   PRO360 RESPONSIVE UI PATCH
   - only UI polish
   - no logic change
========================================================= */

/* ---------- Tablet + small laptop ---------- */
@media (max-width: 991.98px){

  #product360ProV4{
    padding-top: 24px !important;
    padding-bottom: 24px !important;
  }

  #product360ProV4 .container-fluid{
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  /* stack spacing */
  .product360-pro-v4 .row{
    --bs-gutter-y: 16px;
  }

  /* viewer card */
  .pro360-viewer-card,
  .pro360-side-card{
    border-radius: 22px !important;
  }

  .pro360-viewer-shell{
    min-height: 460px !important;
  }

  .pro360-pannellum{
    height: 460px !important;
  }

  /* top content more compact */
  .pro360-topbar{
    padding: 16px !important;
    display: none;
  }

  .pro360-heading{
    max-width: 100%;
  }

  .pro360-kicker{
    font-size: 10px;
    letter-spacing: .14em;
    margin-bottom: 8px;
  }

  .pro360-title{
    font-size: 1.35rem !important;
    line-height: 1.15;
    max-width: 100%;
  }

  .pro360-subtitle{
    font-size: 12px;
    line-height: 1.45;
    max-width: 100%;
  }

  .pro360-serial,
  .pro360-type-badge,
  .pro360-live-pill,
  .pro360-status-pill{
    padding: 8px 12px;
    min-height: 34px;
    font-size: 11px;
  }

  .pro360-live-pill{
    letter-spacing: .08em;
  }

  /* top right pills line-break friendly */
  .pro360-topbar .d-flex.flex-wrap.align-items-start.justify-content-between{
    align-items: flex-start !important;
    gap: 12px !important;
  }

  /* bottom overlay smaller */
  .pro360-bottom-fade{
    height: 140px;
  }

  /* controls */
  .pro360-controls{
    padding: 14px !important;
  }

  .pro360-controls > .d-flex{
    align-items: stretch !important;
    gap: 12px !important;
  }

  .pro360-controls .d-flex.flex-wrap.align-items-center.gap-2{
    gap: 8px !important;
  }

  .pro360-btn{
    padding: 9px 14px;
    font-size: 12px;
    min-height: 38px;
  }

  .pro360-mini-note{
    font-size: 12px;
  }

  /* right panel */
  .pro360-side-card .card-body{
    padding: 16px !important;
  }

  .pro360-side-kicker{
    font-size: 10px;
    margin-bottom: 2px;
  }

  .pro360-count-badge{
    min-width: 36px;
    height: 36px;
    font-size: 12px;
  }

  /* category chips scroll nicely */
  .pro360-category-wrap{
    flex-wrap: nowrap !important;
    overflow-x: auto;
    overflow-y: hidden;
    padding-bottom: 2px;
    margin-bottom: 14px !important;
    gap: 8px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .pro360-category-wrap::-webkit-scrollbar{
    display: none;
  }

  .pro360-chip{
    flex: 0 0 auto;
    white-space: nowrap;
    padding: 9px 14px;
    font-size: 12px;
  }

  /* thumb area */
  .pro360-thumb-scroller{
    overflow: visible !important;
    min-height: auto !important;
    max-height: none !important;
    padding-right: 0;
  }

  .pro360-thumb-grid{
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 14px !important;
    justify-items: center;
  }

  .pro360-thumb-btn{
    width: 100px;
    max-width: 100%;
    margin-inline: auto;
  }

  .pro360-thumb-circle{
    border-width: 3px;
    box-shadow:
      0 8px 18px rgba(15,23,42,.10),
      inset 0 1px 0 rgba(255,255,255,.85);
  }

  .pro360-thumb-index{
    min-width: 28px;
    height: 28px;
    top: 6px;
    right: 6px;
    font-size: 10px;
    padding: 0 6px;
  }
}

/* ---------- Mobile ---------- */
@media (max-width: 767.98px){

  #product360ProV4{
    padding-top: 18px !important;
    padding-bottom: 18px !important;
  }

  #product360ProV4 .container-fluid{
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  .product360-pro-v4 .row{
    --bs-gutter-y: 14px;
  }

  .pro360-viewer-card,
  .pro360-side-card{
    border-radius: 18px !important;
  }

  /* viewer height */
  .pro360-viewer-shell{
    min-height: 380px !important;
  }

  .pro360-pannellum{
    height: 380px !important;
  }

  /* top section becomes fully compact */
  .pro360-topbar{
    padding: 12px !important;
  }

  .pro360-topbar .d-flex.flex-wrap.align-items-start.justify-content-between{
    flex-direction: column;
    align-items: flex-start !important;
    gap: 10px !important;
  }

  .pro360-heading{
    width: 100%;
  }

  .pro360-kicker{
    font-size: 9px;
    letter-spacing: .12em;
    margin-bottom: 6px;
  }

  .pro360-title{
    font-size: 1.08rem !important;
    line-height: 1.18;
    margin-bottom: 4px !important;
    padding-right: 0;
  }

  .pro360-subtitle{
    font-size: 11px;
    line-height: 1.4;
    max-width: 92%;
  }

  .pro360-serial{
    min-width: 48px;
  }

  .pro360-serial,
  .pro360-type-badge,
  .pro360-live-pill,
  .pro360-status-pill{
    min-height: 30px;
    padding: 6px 10px;
    font-size: 10px;
    border-radius: 999px;
  }

  .pro360-live-pill{
    letter-spacing: .06em;
  }

  /* keep pills left aligned on mobile */
  .pro360-topbar .d-flex.flex-column.align-items-end.gap-2{
    align-items: flex-start !important;
    gap: 8px !important;
  }

  /* bottom fade */
  .pro360-bottom-fade{
    height: 120px;
  }

  /* controls -> 2 rows feel */
  .pro360-controls{
    padding: 10px !important;
  }

  .pro360-controls > .d-flex{
    flex-direction: column;
    align-items: stretch !important;
    gap: 10px !important;
  }

  .pro360-controls .d-flex.flex-wrap.align-items-center.gap-2{
    gap: 8px !important;
    justify-content: flex-start;
  }

  .pro360-btn{
    padding: 8px 12px;
    min-height: 36px;
    font-size: 11px;
    box-shadow: 0 6px 18px rgba(0,0,0,.12);
  }

  .pro360-mini-note{
    font-size: 11px;
    line-height: 1.35;
  }

  /* side card */
  .pro360-side-card .card-body{
    padding: 14px !important;
  }

  .pro360-side-kicker{
    font-size: 9px;
  }

  .pro360-side-card h5{
    font-size: 1rem;
    line-height: 1.2;
  }

  .pro360-count-badge{
    min-width: 34px;
    height: 34px;
    padding: 0 10px;
    font-size: 11px;
  }

  /* thumbs */
  .pro360-thumb-grid{
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 12px !important;
  }

  .pro360-thumb-btn{
    width: 84px;
  }

  .pro360-thumb-circle{
    border-width: 3px;
  }

  .pro360-thumb-index{
    min-width: 24px;
    height: 24px;
    font-size: 9px;
    top: 5px;
    right: 5px;
  }
}

/* ---------- Small mobile ---------- */
@media (max-width: 575.98px){

  .pro360-viewer-shell{
    min-height: 330px !important;
  }

  .pro360-pannellum{
    height: 330px !important;
  }

  .pro360-topbar{
    padding: 10px !important;
  }

  .pro360-title{
    font-size: 1rem !important;
  }

  .pro360-subtitle{
    font-size: 10px;
    max-width: 100%;
  }

  .pro360-serial,
  .pro360-type-badge,
  .pro360-live-pill,
  .pro360-status-pill{
    min-height: 28px;
    padding: 5px 9px;
    font-size: 9px;
  }

  .pro360-controls{
    padding: 8px !important;
  }

  .pro360-btn{
    padding: 7px 10px;
    min-height: 34px;
    font-size: 10px;
  }

  .pro360-mini-note{
    font-size: 10px;
  }

  .pro360-side-card .card-body{
    padding: 12px !important;
  }

  .pro360-side-card h5{
    font-size: .95rem;
  }

  /* 2 per row on very small phones for better spacing */
  .pro360-thumb-grid{
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 12px !important;
  }

  .pro360-thumb-btn{
    width: 92px;
  }

  .pro360-thumb-index{
    min-width: 22px;
    height: 22px;
    font-size: 8px;
  }
}

/* ---------- ultra small devices ---------- */
@media (max-width: 380px){

  .pro360-viewer-shell{
    min-height: 300px !important;
  }

  .pro360-pannellum{
    height: 300px !important;
  }

  .pro360-title{
    font-size: .95rem !important;
  }

  .pro360-thumb-btn{
    width: 60px;
  }

  .pro360-thumb-grid{
    gap: 10px !important;
    margin: 0px;
  }

  .pro360-btn{
    padding: 7px 9px;
    font-size: 9.5px;
  }
}

