/* Product detail module: reference-aligned, WooCommerce data-driven. */
.chm-product-detail {
    --product-blue: #0d73bc;
    --product-yellow: #f6c700;
    --product-radius: 18px;
    padding-top: 28px;
    padding-bottom: 72px;
}

.chm-product-detail button,
.chm-product-detail a { cursor: pointer; }

.chm-product-detail .product-breadcrumb {
    display: flex;
    min-height: 28px;
    align-items: center;
    gap: 10px;
    color: #737373;
    font-size: 13px;
    line-height: 20px;
}

.chm-product-detail .product-back {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    gap: 5px;
    margin: 6px 0 6px;
    color: #737373;
    font-size: 14px;
}

.chm-product-detail .product-back svg {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    transform: rotate(90deg);
}

.chm-product-detail .product-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(390px, .82fr);
    grid-template-areas: "gallery heading" "gallery purchase";
    gap: 0 40px;
    align-items: start;
}

.chm-product-detail .product-heading { grid-area: heading; padding: 4px 0 20px; }
.chm-product-detail .product-heading .product_title {
    margin: 0;
    color: #111;
    font: 600 24px/1.35 var(--font-body);
    letter-spacing: 0;
}
.chm-product-detail .product-rating-row { margin-top: 6px; }
.chm-product-detail .woocommerce-product-rating { display: flex; align-items: center; gap: 9px; margin: 0; }
.chm-product-detail .star-rating { color: var(--product-yellow); }
.chm-product-detail .woocommerce-review-link { color: #737373; font-size: 12px; }

.chm-product-detail .product-gallery {
    grid-area: gallery;
    position: sticky;
    top: 80px;
    align-self: start;
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr);
    grid-template-areas: "thumbs stage" ". tabs";
    gap: 12px 14px;
    min-width: 0;
}
.chm-product-detail .product-gallery-thumbnails {
    grid-area: thumbs;
    display: flex;
    max-height: 640px;
    flex-direction: column;
    gap: 8px;
    overflow: auto;
    scrollbar-width: none;
}
.chm-product-detail .product-gallery-thumbnails::-webkit-scrollbar { display: none; }
.chm-product-detail .product-gallery-thumb {
    width: 64px;
    height: 64px;
    flex: 0 0 64px;
    overflow: hidden;
    padding: 0;
    border: 2px solid transparent;
    border-radius: 8px;
    background: #fff;
    box-shadow: inset 0 0 0 1px #ededed;
    opacity: .78;
    transition: border-color 180ms ease, opacity 180ms ease;
}
.chm-product-detail .product-gallery-thumb:hover,
.chm-product-detail .product-gallery-thumb:focus-visible,
.chm-product-detail .product-gallery-thumb.is-active { border-color: var(--product-blue); opacity: 1; }
.chm-product-detail .product-gallery-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.chm-product-page .woocommerce-notices-wrapper,
.chm-product-page .woocommerce-error,
.chm-product-page .woocommerce-message,
.chm-product-page .woocommerce-info { display: none !important; }
.chm-product-detail .product-gallery-thumbnails { visibility: hidden; }
.chm-product-page.chm-interactive-ready .product-gallery-thumbnails { visibility: visible; }

.chm-product-detail .product-gallery-stage,
.chm-product-detail .product-gallery-video {
    grid-area: stage;
    position: relative;
    width: 100%;
    overflow: hidden;
    border-radius: 10px;
    background: #fff;
    aspect-ratio: 1 / 1;
}
.chm-product-detail .product-gallery-stage { touch-action: pan-y; }
.chm-product-detail .product-gallery-main-link {
    display: block;
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: zoom-in;
}
.chm-product-detail .product-gallery-main-link span { position: relative; display: block; width: 100%; height: 100%; overflow: hidden; }
.chm-product-detail .product-gallery-main-image,
.chm-product-detail .product-gallery-video video { display: block; width: 100%; height: 100%; object-fit: contain; }
.chm-product-detail .product-gallery-transition-image {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: block;
    width: 100%;
    height: 100%;
    pointer-events: none;
    object-fit: contain;
}
.chm-product-detail .product-gallery-main-image.is-entering-next,
.product-lightbox img.is-entering-next { animation: chm-gallery-enter-next 220ms ease both; }
.chm-product-detail .product-gallery-main-image.is-entering-prev,
.product-lightbox img.is-entering-prev { animation: chm-gallery-enter-prev 220ms ease both; }
.chm-product-detail .product-gallery-transition-image.is-leaving-next,
.product-lightbox .product-gallery-transition-image.is-leaving-next { animation: chm-gallery-leave-next 220ms ease both; }
.chm-product-detail .product-gallery-transition-image.is-leaving-prev,
.product-lightbox .product-gallery-transition-image.is-leaving-prev { animation: chm-gallery-leave-prev 220ms ease both; }
@keyframes chm-gallery-enter-next { from { opacity: 0; transform: translateX(18px); } to { opacity: 1; transform: translateX(0); } }
@keyframes chm-gallery-enter-prev { from { opacity: 0; transform: translateX(-18px); } to { opacity: 1; transform: translateX(0); } }
@keyframes chm-gallery-leave-next { from { opacity: 1; transform: translateX(0); } to { opacity: 0; transform: translateX(-18px); } }
@keyframes chm-gallery-leave-prev { from { opacity: 1; transform: translateX(0); } to { opacity: 0; transform: translateX(18px); } }
@media (prefers-reduced-motion: reduce) {
    .chm-product-detail .product-gallery-main-image,
    .chm-product-detail .product-gallery-transition-image,
    .product-lightbox img { animation: none !important; }
}
.chm-product-detail .product-gallery-arrow {
    position: absolute;
    top: 50%;
    z-index: 3;
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    padding: 0;
    border: 0;
    border-radius: 50%;
    color: #737373;
    background: rgba(255,255,255,.92);
    box-shadow: 0 2px 10px rgba(0,0,0,.08);
    transform: translateY(-50%);
}
.chm-product-detail .product-gallery-arrow.is-prev { left: 12px; }
.chm-product-detail .product-gallery-arrow.is-next { right: 12px; }
.chm-product-detail .product-gallery-arrow svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.chm-product-detail .product-gallery-arrow.is-prev svg { transform: rotate(90deg); }
.chm-product-detail .product-gallery-arrow.is-next svg { transform: rotate(-90deg); }
.chm-product-detail .product-gallery-dots { position: absolute; right: 16px; bottom: 14px; left: 16px; display: flex; justify-content: center; gap: 7px; }
.chm-product-detail .product-gallery-dots span { width: 7px; height: 7px; border-radius: 50%; background: #d6d6d6; }
.chm-product-detail .product-gallery-dots span.is-active { background: #2196e4; }

.chm-product-detail .product-media-tabs {
    grid-area: tabs;
    display: flex;
    width: fit-content;
    min-height: 44px;
    align-items: center;
    justify-self: center;
    padding: 3px;
    border: 1px solid #e4e4e7;
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 3px 10px rgba(0,0,0,.1);
}
.chm-product-detail .product-media-tabs button {
    display: inline-flex;
    min-height: 36px;
    align-items: center;
    gap: 6px;
    padding: 0 14px;
    border: 0;
    border-radius: 20px;
    color: #737373;
    background: transparent;
    font-size: 13px;
}
.chm-product-detail .product-media-tabs button[aria-selected="true"] { color: #111; background: #fafafa; box-shadow: inset 0 0 0 1px #ddd; }
.chm-product-detail .product-media-tabs button:disabled { cursor: not-allowed; opacity: .42; }
.chm-product-detail .product-media-tabs svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.chm-product-detail .product-media-tabs span { color: #999; }

.chm-product-detail .product-purchase { grid-area: purchase; min-width: 0; }
.chm-product-detail .product-purchase > .price { margin: 0 0 22px; color: #111; font-size: 25px; font-weight: 600; line-height: 32px; }
.chm-product-detail .product-purchase form.cart { margin: 0; }
.chm-product-detail .product-purchase form.cart.variations_form:not(.product-ui-enhanced) .variations { visibility: hidden; }
.chm-product-detail .product-purchase form.cart.variations_form.product-ui-enhanced .variations { visibility: visible; }
.chm-product-detail .product-purchase form.cart .variations { width: 100%; margin: 0; border: 0; border-collapse: collapse; }
.chm-product-detail .product-purchase form.cart .variations tbody,
.chm-product-detail .product-purchase form.cart .variations tr,
.chm-product-detail .product-purchase form.cart .variations th,
.chm-product-detail .product-purchase form.cart .variations td { display: block; width: 100%; }
.chm-product-detail .product-purchase form.cart .variations tr { margin: 0 0 18px; }
.chm-product-detail .product-purchase form.cart .variations tr:last-child { margin-bottom: 0; }
.chm-product-detail .product-purchase form.cart .variations th { padding: 0 0 8px; color: #737373; font-size: 14px; font-weight: 400; text-align: left; }
.chm-product-detail .product-purchase form.cart .variations th label { font-weight: 400; }
.chm-product-detail .product-purchase form.cart .variations th label strong { color: #111; font-weight: 600; }
.chm-product-detail .product-purchase form.cart .variations td { padding: 0; }
.chm-product-detail .product-purchase form.cart select {
    width: 100%;
    min-height: 48px;
    padding: 0 42px 0 14px;
    border: 1px solid #dedede;
    border-radius: 8px;
    color: #111;
    background: #fff;
    font-size: 14px;
}
.chm-product-detail .product-size-select { position: relative; width: 100%; }
.chm-product-detail .product-size-select-trigger {
    display: flex;
    width: 100%;
    min-height: 48px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    box-sizing: border-box;
    padding: 8px 16px;
    border: 2px solid #e4e4e7;
    border-radius: 6px;
    color: #737373;
    background: #fff;
    font-size: 14px;
    text-align: left;
}
.chm-product-detail .product-size-select-trigger svg { width: 16px; height: 16px; flex: 0 0 16px; fill: none; stroke: currentColor; stroke-width: 1.8; transition: transform 180ms ease; }
.chm-product-detail .product-size-trigger-measurement { margin-left: auto; color: #737373; }
.chm-product-detail .product-size-select.is-open .product-size-select-trigger { border-color: #bdbdbd; }
.chm-product-detail .product-size-select.is-open .product-size-select-trigger svg { transform: rotate(180deg); }
.chm-product-detail .product-size-select-menu {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    left: 0;
    z-index: 20;
    display: none;
    max-height: 360px;
    overflow: auto;
    padding: 4px;
    border: 1px solid #e4e4e7;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 24px rgba(0,0,0,.12);
}
.chm-product-detail .product-size-select.is-open .product-size-select-menu { display: block; }
.chm-product-detail .product-size-select-option {
    display: grid;
    width: 100%;
    min-height: 42px;
    grid-template-columns: minmax(0,1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 0 12px;
    border: 0;
    border-radius: 14px;
    color: #222;
    background: transparent;
    font-size: 14px;
    text-align: left;
}
.chm-product-detail .product-size-select-option small { color: #737373; font-size: 13px; }
.chm-product-detail .product-size-select-option:hover,
.chm-product-detail .product-size-select-option:focus-visible,
.chm-product-detail .product-size-select-option.is-active { background: #f5f5f5; }
.chm-product-detail .product-size-select-option:disabled { cursor: not-allowed; color: #a1a1aa; background: #f7f7f7; opacity: 1; }
.chm-product-detail .product-size-select-option:disabled small { color: #a1a1aa; }
.chm-product-detail .product-size-selection-helper { margin: 12px 0 0; padding: 10px 12px; border-radius: 8px; color: #111; background: #f7f7f7; font-size: 14px; line-height: 20px; }
.chm-product-detail .product-size-selection-helper p { margin: 0; }
.chm-product-detail .product-size-selection-helper p + p { margin-top: 2px; color: #737373; font-size: 12px; line-height: 16px; }
.chm-product-detail .product-purchase form.cart select:focus-visible { border-color: var(--product-blue); outline: 2px solid rgba(13,115,188,.18); }
.chm-product-detail .reset_variations { display: none !important; }
.chm-product-detail .product-size-open { float: right; display: inline-flex; min-height: 24px; align-items: center; gap: 5px; padding: 0; border: 0; color: var(--product-blue); background: transparent; font-size: 14px; text-decoration: underline; }
.chm-product-detail .product-size-open svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; }
/* Native WooCommerce variation selects stay in the form for variation
 * resolution and add-to-cart data, but are never part of the storefront UI. */
.chm-product-detail .product-purchase form.cart.variations_form .variations select {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    clip: rect(0, 0, 0, 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    border: 0 !important;
}
.chm-product-detail .product-variation-native { position: absolute !important; width: 1px !important; height: 1px !important; margin: -1px !important; padding: 0 !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; border: 0 !important; }
.chm-product-detail .product-variation-swatches { display: flex; flex-wrap: wrap; gap: 10px; }
.chm-product-detail .product-variation-swatch { display: grid; width: 58px; height: 58px; place-items: center; overflow: hidden; padding: 4px; border: 2px solid #e4e4e7; border-radius: 8px; background: #fff; }
.chm-product-detail .product-variation-swatch:hover,
.chm-product-detail .product-variation-swatch:focus-visible,
.chm-product-detail .product-variation-swatch.is-active { border-color: #2196e4; }
.chm-product-detail .product-variation-swatch img,
.chm-product-detail .product-variation-swatch span { display: block; width: 100%; height: 100%; border-radius: 5px; object-fit: contain; background: var(--swatch-color,#f4f4f5); }
.chm-product-detail .product-variation-swatch:disabled { cursor: not-allowed; opacity: .35; }
.chm-product-detail .woocommerce-variation { margin: 0; }
.chm-product-detail .woocommerce-variation-price:empty,
.chm-product-detail .woocommerce-variation-description:empty,
.chm-product-detail .woocommerce-variation-availability:empty { display: none; }
.chm-product-detail .woocommerce-variation-availability,
.chm-product-detail .stock { display: none !important; }
.chm-product-detail .woocommerce-variation-add-to-cart,
.chm-product-detail form.cart:not(.variations_form) { display: none !important; }
.chm-product-detail .quantity { display: none !important; }
.chm-product-detail .chm-product-buy-row { display: flex; align-items: center; gap: 10px; margin: 24px 0 18px; }
.chm-product-detail .single_add_to_cart_button {
    flex: 1 1 auto;
    width: auto !important;
    min-height: 44px !important;
    margin: 0 !important;
    padding: 0 20px !important;
    border: 1px solid #171717 !important;
    border-radius: 24px !important;
    color: #fff !important;
    background: #171717 !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 42px !important;
}
.chm-product-detail .chm-product-add-button {
    flex: 1 1 auto;
    width: auto;
    min-height: 44px;
    margin: 0;
    padding: 0 20px;
    border: 1px solid #171717;
    border-radius: 24px;
    color: #fff;
    background: #171717;
    font-size: 14px;
    font-weight: 500;
    line-height: 42px;
}
.chm-product-detail .chm-product-add-button:hover,
.chm-product-detail .chm-product-add-button:focus-visible { background: #333; }
.chm-product-detail .chm-product-add-button:disabled { cursor: not-allowed; opacity: .42; }
.chm-product-detail .single_add_to_cart_button:hover,
.chm-product-detail .single_add_to_cart_button:focus-visible { background: #333 !important; }
.chm-product-detail .single_add_to_cart_button.disabled,
.chm-product-detail .single_add_to_cart_button:disabled { cursor: not-allowed !important; color: #fff !important; background: #171717 !important; opacity: .42 !important; }
.chm-product-detail .product-utility { position: relative; display: flex; flex: 0 0 auto; align-items: center; gap: 8px; margin: 0; }
.chm-product-detail .product-utility .wishlist-button,
.chm-product-detail .product-share { display: grid; width: 44px; min-width: 44px; height: 44px; place-items: center; padding: 0; border: 1px solid #e4e4e7; border-radius: 50%; color: #737373; background: #fff; }
.chm-product-detail .product-utility .wishlist-button:hover,
.chm-product-detail .product-utility .wishlist-button:focus-visible,
.chm-product-detail .product-utility .wishlist-button.is-active,
.chm-product-detail .product-share:hover,
.chm-product-detail .product-share:focus-visible { color: #111; border-color: #bbb; background: #fafafa; }
.chm-product-detail .product-utility svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.chm-product-detail .product-utility .wishlist-button.is-active { color: #ef3340; }
.chm-product-detail .product-utility .wishlist-button.is-active svg { fill: currentColor; }
.chm-product-detail .product-share span:not(.sr-only) { display: none; }
.chm-product-detail .product-share-menu { position: absolute; right: 0; bottom: calc(100% + 10px); z-index: 20; display: none; width: 164px; overflow: hidden; padding: 6px; border: 1px solid #e4e4e7; border-radius: 10px; background: #fff; box-shadow: 0 12px 30px rgba(0,0,0,.14); }
.chm-product-detail .product-share-menu.is-open { display: grid; }
.chm-product-detail .product-share-menu button,
.chm-product-detail .product-share-menu a { display: flex; min-height: 38px; align-items: center; padding: 0 10px; border: 0; border-radius: 6px; color: #111; background: transparent; font: 500 13px/18px var(--font-body); text-align: left; text-decoration: none; }
.chm-product-detail .product-share-menu button:hover,
.chm-product-detail .product-share-menu button:focus-visible,
.chm-product-detail .product-share-menu a:hover,
.chm-product-detail .product-share-menu a:focus-visible { background: #f5f5f5; }
.chm-product-detail .chm-cart-form-notice { flex: 1 0 100%; order: -1; padding: 10px 12px; border-radius: 8px; color: #991b1b; background: #fef2f2; font-size: 13px; line-height: 20px; }

.chm-product-detail .product-about { position: relative; margin-top: 30px; padding-top: 20px; border-top: 0; }
.chm-product-detail .product-about h2 { margin: 0 0 12px; font: 500 15px/22px var(--font-body); }
.chm-product-detail .product-about-content { position: relative; max-height: 168px; overflow: hidden; color: #737373; font-size: 13px; line-height: 22px; }
.chm-product-detail .product-about-content::after { position: absolute; right: 0; bottom: 0; left: 0; height: 58px; background: linear-gradient(transparent,#fafafa); content: ""; pointer-events: none; }
.chm-product-detail .product-about.is-expanded .product-about-content { max-height: none; }
.chm-product-detail .product-about.is-expanded .product-about-content::after { display: none; }
.chm-product-detail .product-about-toggle { display: block; min-height: 44px; margin: 2px auto 0; padding: 0 16px; border: 0; color: #06f; background: transparent; font-weight: 600; }

.chm-product-detail .product-facts-card { margin-top: 24px; overflow: hidden; border: 1px solid #e4e4e7; border-radius: 24px; background: #fff; box-shadow: 0 2px 5px rgba(0,0,0,.08); }
.chm-product-detail .product-facts { display: grid; gap: 7px; padding: 24px 24px 18px; margin: 0; }
.chm-product-detail .product-facts > div { display: grid; grid-template-columns: 126px minmax(0,1fr); gap: 12px; align-items: center; font-size: 13px; line-height: 20px; }
.chm-product-detail .product-facts dt { display: flex; align-items: center; gap: 9px; color: #737373; }
.chm-product-detail .product-facts dt svg { width: 16px; height: 16px; flex: 0 0 16px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.chm-product-detail .product-facts dd { display: flex; min-width: 0; align-items: center; gap: 8px; margin: 0; overflow-wrap: anywhere; }
.chm-product-detail .product-facts a { color: #06f; }
.chm-product-detail .product-fact-pill { padding: 1px 9px; border-radius: 12px; color: #111 !important; background: #f5f5f5; }
.chm-product-detail .product-facts code { max-width: 190px; overflow: hidden; color: #737373; text-overflow: ellipsis; white-space: nowrap; }
.chm-product-detail .product-copy-button { display: grid; width: 28px; height: 28px; place-items: center; padding: 0; border: 0; color: #737373; background: transparent; }
.chm-product-detail .product-copy-button.is-copied { color: var(--product-blue); }
.chm-product-detail .product-copy-button svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.chm-product-detail .product-help { display: flex; min-height: 70px; align-items: center; justify-content: flex-end; gap: 16px; margin: 0 24px; border-top: 0; color: #737373; font-size: 12px; }
.chm-product-detail .product-help a { display: inline-flex; min-height: 44px; align-items: center; gap: 6px; color: #06f; }
.chm-product-detail .product-help a:first-of-type { color: #00a63e; }
.chm-product-detail .product-help svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; }

.chm-product-detail .product-brand-card { position: static; margin-top: 24px; padding: 20px; border: 1px solid #e4e4e7; border-radius: 24px; background: #fff; box-shadow: 0 2px 5px rgba(0,0,0,.08); }
.chm-product-detail .product-brand-heading { display: flex; min-height: 36px; align-items: center; justify-content: space-between; gap: 14px; }
.chm-product-detail .product-brand-identity { display: flex; min-width: 0; align-items: center; gap: 10px; }
.chm-product-detail .product-brand-avatar { display: grid; width: 36px; height: 36px; flex: 0 0 36px; place-items: center; border: 1px solid #e4e4e7; border-radius: 50%; color: #737373; background: #fafafa; font-size: 14px; }
.chm-product-detail .product-brand-identity > div { display: flex; min-width: 0; align-items: center; gap: 8px; }
.chm-product-detail .product-brand-name { overflow: hidden; color: #111; font-size: 14px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.chm-product-detail .product-brand-bookmark { display: inline-flex; min-height: 28px; align-items: center; gap: 5px; padding: 0 9px; border: 1px solid #e4e4e7; border-radius: 7px; color: #111; background: #fff; font-size: 12px; }
.chm-product-detail .product-brand-bookmark svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.chm-product-detail .product-brand-bookmark[aria-pressed="true"] { color: #fff; border-color: #111; background: #111; }
.chm-product-detail .product-brand-view-all { display: inline-flex; min-height: 28px; align-items: center; gap: 3px; color: var(--product-blue); font-size: 12px; white-space: nowrap; }
.chm-product-detail .product-brand-view-all svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 1.8; transform: rotate(-90deg); }
.chm-product-detail .product-brand-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 14px; }
.chm-product-detail .product-brand-product { min-width: 0; color: #111; }
.chm-product-detail .product-brand-product-image { display: block; overflow: hidden; border-radius: 10px; background: #f5f5f5; aspect-ratio: 1 / 1; }
.chm-product-detail .product-brand-product-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.chm-product-detail .product-brand-product > strong { display: block; margin-top: 5px; font-size: 12px; line-height: 16px; }
.chm-product-detail .product-brand-card-placeholder { min-height: 300px; }
.chm-product-detail .product-brand-placeholder-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.chm-product-detail .product-brand-placeholder-heading span { display: block; width: 42%; height: 18px; border-radius: 6px; background: #f0f0f0; }
.chm-product-detail .product-brand-placeholder-heading i { display: block; width: 58px; height: 16px; border-radius: 6px; background: #f0f0f0; }
.chm-product-detail .product-brand-placeholder-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px; margin-top: 20px; }
.chm-product-detail .product-brand-placeholder-grid span { display: block; aspect-ratio: 1 / 1; border-radius: 10px; background: #f3f3f3; }

.chm-product-detail .product-reviews-section,
.chm-product-detail .product-recommendations { margin-top: 72px; }
.chm-product-detail .product-reviews-section { width: min(55%, 586px); padding: 24px; border: 1px solid #e4e4e7; border-radius: 24px; background: #fff; box-shadow: 0 2px 5px rgba(0,0,0,.08); }
.chm-product-detail .product-reviews-section > h2,
.chm-product-detail .product-rail-heading h2 { margin: 0 0 24px; font: 600 22px/30px var(--font-body); }
.chm-product-detail .product-review-summary { display: grid; grid-template-columns: 150px minmax(0,1fr); gap: 20px; align-items: center; padding: 18px; border: 0; border-radius: 12px; background: #f7f7f7; }
.chm-product-detail .product-review-summary > div { display: grid; gap: 6px; }
.chm-product-detail .product-review-summary strong { font-size: 36px; line-height: 1; }
.chm-product-detail .product-review-stars { color: var(--product-yellow); letter-spacing: 1px; }
.chm-product-detail .product-review-summary ol { display: grid; gap: 5px; margin: 0; padding: 0; list-style: none; }
.chm-product-detail .product-review-summary li { display: grid; grid-template-columns: 38px minmax(100px,1fr) 40px; gap: 8px; align-items: center; color: #737373; font-size: 12px; }
.chm-product-detail .product-review-summary li b { height: 6px; overflow: hidden; border-radius: 4px; background: #eee; }
.chm-product-detail .product-review-summary li i { display: block; height: 100%; background: var(--product-yellow); }
.chm-product-detail .product-review-list { display: grid; gap: 12px; margin-top: 18px; }
.chm-product-detail .product-review-item { display: grid; grid-template-columns: 40px minmax(0,1fr); gap: 14px; padding: 16px; border: 1px solid #e4e4e7; border-radius: 12px; }
.chm-product-detail .product-review-avatar { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 50%; background: #f2f2f2; font-weight: 600; }
.chm-product-detail .product-review-item header { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.chm-product-detail .product-review-item header span { color: var(--product-blue); font-size: 12px; }
.chm-product-detail .product-review-item time { margin-left: auto; color: #737373; font-size: 12px; }
.chm-product-detail .product-review-item p { margin: 8px 0 0; color: #444; font-size: 14px; line-height: 22px; }
.chm-product-detail .product-review-gallery {
    position: relative;
    width: min(220px, 100%);
    margin-top: 14px;
    overflow: hidden;
    border-radius: 10px;
    background: #f4f4f5;
    aspect-ratio: 1 / 1;
}
.chm-product-detail .product-review-gallery > img { display: none; width: 100%; height: 100%; object-fit: cover; }
.chm-product-detail .product-review-gallery > img.is-active { display: block; }
.chm-product-detail .product-review-gallery-count {
    position: absolute;
    top: 9px;
    right: 9px;
    padding: 4px 8px;
    border-radius: 12px;
    color: #fff;
    background: rgba(0,0,0,.58);
    font-size: 11px;
}
.chm-product-detail .product-review-gallery-arrow {
    position: absolute;
    top: 50%;
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    padding: 0;
    border: 0;
    border-radius: 50%;
    color: #333;
    background: rgba(255,255,255,.92);
    box-shadow: 0 2px 8px rgba(0,0,0,.12);
    transform: translateY(-50%);
}
.chm-product-detail .product-review-gallery-arrow.is-prev { left: 8px; }
.chm-product-detail .product-review-gallery-arrow.is-next { right: 8px; }
.chm-product-detail .product-review-gallery-arrow svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.chm-product-detail .product-review-gallery-arrow.is-prev svg { transform: rotate(90deg); }
.chm-product-detail .product-review-gallery-arrow.is-next svg { transform: rotate(-90deg); }
.chm-product-detail .product-review-more {
    display: flex;
    min-height: 48px;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding-top: 16px;
    color: #737373;
    font-size: 12px;
}
.chm-product-detail .product-review-more button {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    gap: 5px;
    padding: 0 12px;
    border: 0;
    color: #06f;
    background: transparent;
    font-weight: 600;
}
.chm-product-detail .product-review-more button svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.8; transform: rotate(-90deg); transition: transform 180ms ease; }
.chm-product-detail .product-review-more button[aria-expanded="true"] svg { transform: rotate(90deg); }
.chm-product-detail .product-review-empty { padding: 30px; margin: 18px 0 0; border: 1px dashed #d4d4d4; border-radius: 16px; color: #737373; text-align: center; }

.chm-product-detail .product-rail-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.chm-product-detail .product-rail-heading > div { display: flex; gap: 8px; }
.chm-product-detail .product-rail-heading button { display: grid; width: 40px; height: 40px; place-items: center; padding: 0; border: 1px solid #e4e4e7; border-radius: 50%; color: #737373; background: #fff; }
.chm-product-detail .product-rail-heading button:first-child svg { transform: rotate(90deg); }
.chm-product-detail .product-rail-heading button:last-child svg { transform: rotate(-90deg); }
.chm-product-detail .product-rail-heading svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.chm-product-detail .product-rail { display: grid; grid-auto-columns: minmax(180px,1fr); grid-auto-flow: column; gap: 14px; overflow-x: auto; padding-bottom: 10px; scroll-snap-type: x proximity; scrollbar-width: none; }
.chm-product-detail .product-rail::-webkit-scrollbar { display: none; }
.chm-product-detail .product-rail-card { min-width: 0; scroll-snap-align: start; }
.chm-product-detail .product-rail-image { display: block; overflow: hidden; border-radius: 10px; background: #f5f5f5; aspect-ratio: 1/1; }
.chm-product-detail .product-rail-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.chm-product-detail .product-rail-title { display: block; min-height: 19px; margin-top: 8px; overflow: hidden; color: #222; font-size: 13px; line-height: 19px; text-overflow: ellipsis; white-space: nowrap; }
.chm-product-detail .product-rail-card > div { display: flex; min-height: 36px; align-items: center; justify-content: space-between; gap: 8px; }
.chm-product-detail .product-rail-card .wishlist-button { display: grid; width: 36px; height: 36px; place-items: center; padding: 0; border: 0; color: #737373; background: transparent; }
.chm-product-detail .product-rail-card .wishlist-button svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; }

.chm-product-detail .product-lightbox,
.chm-product-detail .product-size-modal { position: fixed; inset: 0; z-index: 100000; display: none; }
.chm-product-detail .product-lightbox.is-open,
.chm-product-detail .product-size-modal.is-open { display: flex; }
.chm-product-detail .product-lightbox { align-items: center; justify-content: center; color: #fff; background: #000; }
.chm-product-detail .product-lightbox-count { position: absolute; top: 20px; left: 24px; z-index: 3; padding: 7px 13px; border-radius: 18px; background: #202020; font-size: 13px; }
.chm-product-detail .product-lightbox-close { position: absolute; top: 18px; right: 22px; z-index: 3; display: grid; width: 46px; height: 46px; place-items: center; padding: 0; border: 0; border-radius: 50%; color: #fff; background: #272727; }
.chm-product-detail .product-lightbox-close svg,
.chm-product-detail .product-lightbox-arrow svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.chm-product-detail .product-lightbox-stage { position: relative; display: grid; width: min(92vw,1200px); height: min(84vh,1000px); place-items: center; overflow: hidden; background: transparent; touch-action: pan-y; }
.chm-product-detail .product-lightbox-stage img {
    position: absolute;
    inset: 0;
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    margin: auto;
    object-fit: contain;
    will-change: opacity,transform;
}
.chm-product-detail .product-lightbox .product-gallery-transition-image { width: auto; height: auto; max-width: 100%; max-height: 100%; margin: auto; }
.chm-product-detail .product-lightbox-arrow { position: absolute; top: 50%; z-index: 3; display: grid; width: 48px; height: 48px; place-items: center; padding: 0; border: 0; border-radius: 50%; color: #fff; background: #272727; transform: translateY(-50%); }
.chm-product-detail .product-lightbox-arrow.is-prev { left: 28px; }
.chm-product-detail .product-lightbox-arrow.is-next { right: 28px; }
.chm-product-detail .product-lightbox-arrow.is-prev svg { transform: rotate(90deg); }
.chm-product-detail .product-lightbox-arrow.is-next svg { transform: rotate(-90deg); }
.chm-product-detail .product-lightbox-thumbnails { position: absolute; right: 80px; bottom: 12px; left: 80px; display: flex; justify-content: center; gap: 8px; overflow-x: auto; }
.chm-product-detail .product-lightbox-thumbnails button { width: 46px; height: 46px; flex: 0 0 46px; overflow: hidden; padding: 0; border: 2px solid transparent; border-radius: 4px; background: #222; opacity: .58; }
.chm-product-detail .product-lightbox-thumbnails button.is-active { border-color: #fff; opacity: 1; }
.chm-product-detail .product-lightbox-thumbnails img { display: block; width: 100%; height: 100%; object-fit: cover; }

.chm-product-detail .product-size-modal { align-items: center; justify-content: center; padding: 20px; background: rgba(0,0,0,.55); backdrop-filter: blur(4px); }
.chm-product-detail .product-size-dialog { width: min(512px,100%); max-height: calc(100vh - 40px); overflow: auto; padding: 26px; border-radius: 26px; background: #fff; box-shadow: 0 20px 50px rgba(0,0,0,.22); }
.chm-product-detail .product-size-dialog header { display: flex; align-items: center; justify-content: space-between; }
.chm-product-detail .product-size-dialog h2 { margin: 0; font-size: 16px; }
.chm-product-detail .product-size-dialog header button { display: grid; width: 36px; height: 36px; place-items: center; padding: 0; border: 0; border-radius: 50%; background: #f6f6f6; }
.chm-product-detail .product-size-dialog header svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.chm-product-detail .product-size-units { display: flex; width: fit-content; margin: 30px 0; overflow: hidden; border: 1px solid #e4e4e7; border-radius: 8px; }
.chm-product-detail .product-size-units button { min-height: 32px; padding: 0 12px; border: 0; color: #737373; background: #fff; }
.chm-product-detail .product-size-units button[aria-pressed="true"] { color: #fff; background: #111; }
.chm-product-detail .product-size-table-wrap { overflow-x: auto; border: 1px solid #d9d9d9; }
.chm-product-detail .product-size-dialog table { width: 100%; border-collapse: collapse; table-layout: auto; font-size: 14px; }
.chm-product-detail .product-size-dialog th,
.chm-product-detail .product-size-dialog td { height: 48px; padding: 10px 8px; border: 1px solid #d9d9d9; text-align: center; vertical-align: middle; white-space: nowrap; }
.chm-product-detail .product-size-dialog th { color: #666; background: #fafafa; font-size: 13px; font-weight: 600; }
.chm-product-detail .product-size-dialog th:first-child,
.chm-product-detail .product-size-dialog td:first-child { width: 16%; }
.chm-product-detail .product-size-dialog td:first-child { color: #222; font-weight: 600; }
.chm-product-detail .product-size-dialog th { overflow: visible; text-overflow: clip; }
.chm-product-detail .product-size-dialog p { margin: 22px 0 0; color: #737373; font-size: 11px; line-height: 18px; }

.cart-drawer-item [data-cart-plus]:disabled { cursor: not-allowed; color: #aaa; background: #f5f5f5; }
.cart-stock-notice { margin: 0 0 10px; padding: 9px 11px; border-radius: 8px; color: #991b1b; background: #fef2f2; font-size: 12px; }

@media (max-width: 800px) {
    .chm-product-detail { padding-top: 14px; padding-bottom: 48px; }
    .chm-product-detail .product-breadcrumb { font-size: 12px; }
    .chm-product-detail .product-back { min-height: 36px; margin: 0 0 5px; font-size: 12px; }
    .chm-product-detail .product-layout { grid-template-columns: minmax(0,1fr); grid-template-areas: "heading" "gallery" "purchase"; gap: 0; }
    .chm-product-detail .product-heading { padding: 0 0 12px; }
    .chm-product-detail .product-heading .product_title { font-size: 18px; line-height: 27px; }
    .chm-product-detail .product-gallery { grid-template-columns: minmax(0,1fr); grid-template-areas: "stage" "tabs" "thumbs"; gap: 12px; }
    .chm-product-detail .product-gallery { position: static; }
    .chm-product-detail .product-gallery-stage,
    .chm-product-detail .product-gallery-video { border-radius: 10px; }
    .chm-product-detail .product-gallery-thumbnails { flex-direction: row; gap: 8px; max-height: none; overflow-x: auto; overflow-y: hidden; padding: 0 0 3px; scroll-snap-type: x proximity; }
    .chm-product-detail .product-gallery-thumb { width: 56px; height: 56px; flex-basis: 56px; scroll-snap-align: start; }
    .chm-product-detail .product-media-tabs { min-height: 42px; }
    .chm-product-detail .product-media-tabs button { min-height: 34px; padding: 0 12px; }
    .chm-product-detail .product-gallery-arrow { width: 40px; height: 40px; }
    .chm-product-detail .product-gallery-arrow.is-prev { left: 8px; }
    .chm-product-detail .product-gallery-arrow.is-next { right: 8px; }
    .chm-product-detail .product-purchase { padding-top: 22px; }
    .chm-product-detail .product-purchase > .price { margin-bottom: 18px; font-size: 23px; }
    .chm-product-detail .single_add_to_cart_button { min-width: 0; }
    .chm-product-detail .product-utility { gap: 7px; }
    .chm-product-detail .product-utility .wishlist-button,
    .chm-product-detail .product-share { width: 44px; min-width: 44px; }
    .chm-product-detail .product-about { margin-top: 26px; }
    .chm-product-detail .product-about-content { max-height: 168px; }
    .chm-product-detail .product-facts-card { margin-top: 20px; border-radius: 24px; }
    .chm-product-detail .product-brand-card { margin-top: 20px; }
    .chm-product-detail .product-facts { padding: 20px 20px 14px; }
    .chm-product-detail .product-facts > div { grid-template-columns: 106px minmax(0,1fr); gap: 8px; }
    .chm-product-detail .product-help { min-height: 72px; flex-wrap: wrap; justify-content: flex-start; gap: 4px 14px; margin: 0 20px; padding: 10px 0; }
    .chm-product-detail .product-help > span { flex: 1 0 100%; }
    .chm-product-detail .product-reviews-section,
    .chm-product-detail .product-recommendations { margin-top: 52px; }
    .chm-product-detail .product-reviews-section { width: auto; padding: 18px; }
    .chm-product-detail .product-reviews-section > h2,
    .chm-product-detail .product-rail-heading h2 { margin-bottom: 18px; font-size: 19px; line-height: 26px; }
    .chm-product-detail .product-review-summary { grid-template-columns: minmax(0,1fr); gap: 20px; padding: 18px; }
    .chm-product-detail .product-review-item time { width: 100%; margin-left: 0; }
    .chm-product-detail .product-review-gallery { width: min(180px,100%); }
    .chm-product-detail .product-review-more { align-items: flex-start; flex-direction: column; gap: 0; }
    .chm-product-detail .product-rail { grid-auto-columns: 46%; gap: 10px; }
    .chm-product-detail .product-rail-heading > div { display: none; }
    .chm-product-detail .product-lightbox-stage { width: calc(100vw - 24px); height: min(78dvh,920px); }
    .chm-product-detail .product-lightbox-arrow { width: 44px; height: 44px; }
    .chm-product-detail .product-lightbox-arrow.is-prev { left: 10px; }
    .chm-product-detail .product-lightbox-arrow.is-next { right: 10px; }
    .chm-product-detail .product-lightbox-thumbnails { right: 12px; bottom: 12px; left: 12px; justify-content: flex-start; }
    .chm-product-detail .product-size-modal { padding: 12px; }
    .chm-product-detail .product-size-dialog { max-height: calc(100vh - 24px); padding: 20px 16px; border-radius: 20px; }
    .chm-product-detail .product-size-table-wrap { margin-right: 0; margin-left: 0; overflow-x: visible; border: 0; }
    .chm-product-detail .product-size-dialog table { width: 100%; min-width: 0; table-layout: auto; font-size: 14px; }
    .chm-product-detail .product-size-dialog th,
    .chm-product-detail .product-size-dialog td { height: auto; min-height: 36px; padding: 7px 4px; border-width: 0 0 1px; text-align: left; white-space: normal; line-height: 20px; }
    .chm-product-detail .product-size-dialog th { color: #737373; background: transparent; font-size: 14px; font-weight: 400; vertical-align: bottom; }
    .chm-product-detail .product-size-dialog th:first-child,
    .chm-product-detail .product-size-dialog td:first-child { width: 18%; }
    .chm-product-detail .product-size-dialog td:first-child { color: #222; font-weight: 500; }
    .chm-product-detail .product-size-dialog th { overflow: visible; text-overflow: clip; }
    .chm-product-detail .product-size-dialog th[data-size-column-key="foot"] { min-width: 72px; }
    .chm-product-detail .product-size-units { margin: 22px 0; }
}

@media (prefers-reduced-motion: reduce) {
    .chm-product-detail *,
    .chm-product-detail *::before,
    .chm-product-detail *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
