.product-card[role="button"] { cursor:pointer; overflow:hidden; }
.product-card[role="button"]:focus-visible { outline:3px solid #2563eb; outline-offset:3px; }
.cj-promo { height:21px; position:relative; overflow:hidden; margin:3px 0 5px; color:#15803d; font-size:.68rem; font-weight:500; }
.cj-promo span { position:absolute; inset:0; line-height:21px; white-space:nowrap; text-overflow:ellipsis; overflow:hidden; opacity:0; animation:cj-promo-down 12s infinite; }
.cj-promo span:nth-child(2) { animation-delay:4s; }
.cj-promo span:nth-child(3) { animation-delay:8s; }
@keyframes cj-promo-down {
  0% { opacity:0; transform:translateY(-110%); }
  5%,28% { opacity:1; transform:translateY(0); }
  33%,100% { opacity:0; transform:translateY(110%); }
}
.cj-product-modal { width:min(100vw,720px); height:min(100dvh,940px); max-width:100vw; max-height:100dvh; margin:auto; padding:0; border:0; border-radius:14px; background:#f6f7f9; color:#17202a; }
.cj-product-modal[open] { display:flex; flex-direction:column; }
.cj-product-modal::backdrop { background:rgba(15,23,42,.55); }
.cj-detail-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-shrink:0; padding:12px 16px; background:white; border-bottom:1px solid #eee; }
.cj-detail-toolbar button { padding:8px 12px; background:#f5f6f8; border:0; border-radius:20px; color:#253143; font-size:.85rem; cursor:pointer; }
.cj-detail-content { flex:1; min-height:0; overflow:auto; overscroll-behavior:contain; }
.cj-detail-image { width:100%; max-height:440px; aspect-ratio:1; object-fit:contain; display:block; background:white; }
.cj-detail-thumbnails { display:flex; gap:8px; padding:10px 16px; overflow-x:auto; background:white; }
.cj-detail-thumbnails button { flex:0 0 56px; width:56px; height:56px; padding:0; border:1px solid #e1e6ec; border-radius:6px; overflow:hidden; background:white; cursor:pointer; }
.cj-detail-thumbnails img { width:100%; height:100%; object-fit:cover; }
.cj-detail-section { margin-top:8px; padding:16px; background:white; }
.cj-detail-price { color:#e45729; font-size:1.6rem; font-weight:700; margin-bottom:8px; }
.cj-detail-name { font-size:1rem; line-height:1.5; font-weight:400; overflow-wrap:anywhere; }
.cj-detail-heading { font-size:.95rem; font-weight:600; margin-bottom:10px; }
.cj-description { font-size:.9rem; line-height:1.6; white-space:pre-wrap; overflow-wrap:anywhere; }
.cj-description-toggle { margin-top:10px; background:transparent; color:#2563eb; border:0; font-size:.9rem; cursor:pointer; padding:5px 0; }
.cj-description-images img { display:block; width:100%; height:auto; margin-top:12px; }
.cj-description-images[hidden] { display:none; }
.cj-variant-grid { display:flex; flex-wrap:wrap; gap:8px; }
.cj-variant-option { padding:10px 12px; border:1px solid #dce1e7; border-radius:7px; background:white; color:#263341; cursor:pointer; font-size:.8rem; }
.cj-variant-option[aria-pressed="true"] { background:#fff2eb; border-color:#e45729; color:#b73d19; }
.cj-variant-option:disabled { color:#9aa2ac; background:#f2f3f5; text-decoration:line-through; cursor:not-allowed; }
.cj-detail-notice { margin-top:12px; font-size:.82rem; line-height:1.5; color:#596778; }
.cj-quantity { display:flex; align-items:center; gap:12px; margin-top:16px; font-size:.85rem; }
.cj-quantity input { width:70px; padding:8px; border:1px solid #dce1e7; border-radius:6px; }
.cj-detail-footer { flex-shrink:0; display:flex; gap:8px; padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px)); background:white; border-top:1px solid #e1e6ec; }
.cj-detail-footer button { flex:1; min-height:48px; border-radius:8px; border:1px solid #169e93; font-size:.85rem; font-weight:600; cursor:pointer; }
.cj-add-cart { background:#edf9f7; color:#08776e; }
.cj-buy-now { background:#e45729; color:white; border-color:#e45729!important; }
.cj-detail-footer button:disabled { opacity:.45; cursor:wait; }
.cj-order-shipment { margin:10px 0; padding:12px; border:1px solid #dfe3e8; border-radius:10px; background:#fff; }
.cj-order-shipment summary { color:#233b8b; font-weight:600; cursor:pointer; }
.cj-order-shipment p,.cj-order-shipment small { display:block; margin:8px 0; line-height:1.45; overflow-wrap:anywhere; color:#596778; }
.cj-order-shipment button,.cj-order-item { min-height:40px; max-width:100%; margin:6px 6px 6px 0; padding:8px 10px; border:1px solid #dce1e7; border-radius:8px; background:white; color:#233b8b; text-align:left; cursor:pointer; }
.cj-order-item { font-weight:600; }
.cj-order-shipment button:disabled { opacity:.55; cursor:wait; }
.nex-reviews { margin:20px 0 84px; padding:18px 16px; border-top:8px solid #f3f4f6; background:#fff; display:grid; gap:14px; }
.nex-reviews h2 { margin:0; font-size:1.12rem; }
.nex-reviews input[type="search"] { width:100%; min-height:42px; border:1px solid #d1d5db; border-radius:10px; padding:10px; }
.nex-review-card { display:grid; grid-template-columns:1fr; gap:8px; padding:14px 0; border-bottom:1px solid #e5e7eb; }
.nex-review-stars { color:#edaa27; font-weight:700; }
.nex-review-card img,.nex-review-card video { max-width:min(100%,360px); max-height:360px; border-radius:10px; object-fit:contain; }
.nex-review-disclosure,.nex-reviews small { color:#606873; font-size:.84rem; line-height:1.45; }
.nex-review-dialog { width:min(92vw,540px); max-height:86dvh; overflow:auto; border:0; border-radius:16px; padding:22px; box-shadow:0 16px 48px #15263a40; }
.nex-review-dialog::backdrop { background:#16233b88; }
.nex-review-dialog form { display:grid; gap:16px; }
.nex-review-dialog h2 { margin:0; color:#172b4d; font-size:1.25rem; }
.nex-review-dialog fieldset { display:flex; gap:8px; flex-wrap:wrap; border:0; padding:0; }
.nex-review-dialog fieldset label { display:grid; justify-items:center; gap:5px; min-width:48px; padding:8px; border:1px solid #d8dee8; border-radius:9px; }
.nex-review-dialog textarea { width:100%; min-height:110px; resize:vertical; border:1px solid #d1d5db; border-radius:9px; padding:12px; }
.nex-review-dialog button { min-height:44px; border:1px solid #d8dee8; border-radius:9px; padding:8px 12px; }
@media (max-width:600px) {
  .cj-product-modal { width:100vw; height:100dvh; margin:0; border-radius:0; }
  .nex-review-dialog { margin:auto; max-height:82dvh; }
}
@media (prefers-reduced-motion:reduce) {
  .cj-promo span { animation:none; opacity:0; }
  .cj-promo span:first-child { opacity:1; transform:none; }
}
