.product-page {
    background: none;
}
.product-page .tab-content {
    margin: 0;
}
.product-page .tab-content img {
    max-width: none;
}
.product-page h3 {
    margin-bottom: 0;
}
.product-page.product-quickview .flexi-nav {
    margin: 0;
}
.product-page:not(.product-quickview) .product-image-wrapper,
.product-page:not(.product-quickview) .vertical-thumbnails {
    padding-left: 0;
}
.product-page.product-quickview .product-image-wrapper .product-main-image {
    padding-left: 15px;
}
/* Step A — gutter: pad the media container so there's room OUTSIDE the
   zoom-bound .product-card for a finger to land and swipe-scroll the page. */
.product-page:not(.product-quickview) .product-image-wrapper .product-main-image {
    padding: 10px 18px;
}
.product-page .bootstrap-select, .product-page .form-group {
    width: 200px !important;
}
.product-page .form-group {
    margin-top: 10px;
}
.product-page .bootstrap-select .btn,
.product-quickview .bootstrap-select .btn {
    background: white;
    color: black;
    border: 1px solid #ccc;
}
.product-page .flexi-nav > li a {
    opacity: 1;
    margin: 0;
}
.product-page .main-price {
    text-align: left;
}
.product-page .product-options {
    padding-bottom: 10px;
}
.color-product-options .color-option {
    display: inline-block;
    margin: 10px 10px 10px 0;
    color: transparent;
    -moz-transition: all 0.3s ease-in-out, padding 1ms none;
    -o-transition: all 0.3s ease-in-out, padding 1ms none;
    -webkit-transition: all 0.3s ease-in-out, padding 1ms none;
    transition: all 0.3s ease-in-out, padding 1ms none;
    -moz-border-radius: 50%;
    -webkit-border-radius: 50%;
    border-radius: 50%;
    border: 1px solid #ccc;
    height: 36px;
    width: 36px;
    padding: 4px 0 0 4px;
}
.color-product-options .color-option .color-inner {
    -moz-border-radius: 50%;
    -webkit-border-radius: 50%;
    border-radius: 50%;
    display: block;
    height: 26px;
    width: 26px;
    position: relative;
}
.color-product-options .color-option.active {
    box-shadow: 0 14px 26px -12px rgba(var(--brand-primary-rgb), 0.42), 0 4px 23px 0 rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(var(--brand-primary-rgb), 0.2);
}
.color-option.active.Black {
    border-color: black;
    border-width: 2px;
    padding: 3px 0 0 3px;
}
.color-option .color-inner.Black {
    background: black;
}
.color-option.active.Blue {
    border-color: blue;
    border-width: 2px;
    padding: 3px 0 0 3px;
}
.color-option .color-inner.Blue {
    background: blue;
}
.color-option.active.Red {
    border-color: red;
    border-width: 2px;
    padding: 3px 0 0 3px;
}
.color-option .color-inner.Red {
    background: red;
}
.color-option.active.Silver {
    border-color: silver;
    border-width: 2px;
    padding: 3px 0 0 3px;
}
.color-option .color-inner.Silver {
    background: silver;
}

/* Product Add-on styles */
.addon-item-wrapper {
    border-left: 2px solid #ccc;
    margin-bottom: 25px;
    padding-left: 10px;
}
.configure-row {
    margin-bottom: 1em;
}
.configure-row .configure-title {
    padding: 0;
}
.item-price {
    text-align: right;
}
.item-price span:not(.item-price-span) {
    padding: 1em;
    font-weight: bold;
}
.child-product-options .color-product-options .color-option {
    height: 26px;
    width: 26px;
    padding: 4px 0 0 4px;
}
.child-product-options .color-option.active {
    padding: 3px 0 0 3px;
}
.child-product-options .color-product-options .color-option .color-inner {
    height: 16px;
    width: 16px;
}
.child-product-options .bootstrap-select .btn,
.product-quickview .bootstrap-select .btn {
    width: 200px;
    background: white;
    color: black;
    border: 1px solid #ccc;
    padding: 6px 20px;
}
.configure-title .panel .panel-heading {
    padding: 2px 0 0 0;
}
.configure-title .panel .panel-heading h4 {
    font-size: 12px;
    margin: 4px 0;
    padding-left: 4px;
}
.configure-title .panel.panel-default {
    margin: 0;
}
.configure-title .bootstrap-select {
    width: 100% !important;
    margin: -7px 0 0 0;
}
.configure-title .bootstrap-select .btn {
    padding: 4px 9px;
    text-transform: inherit;
    margin-top: 7px;
}
.configure-title .bootstrap-select.btn-group .dropdown-toggle .filter-option {
    width: 90%;
}
.configure-row .out-of-stock {
    text-align: right;
}

@media (min-width: 768px) {
    .product-page .bootstrap-select, .product-page .form-group {
        width: 100%;
    }
}

#img-gallery-modal #thumbnails {
    overflow-y: auto;
}

#img-gallery-modal #thumbnails img {
    max-height: 100%;
    max-width: 100%;
    padding: 5px;
    border-radius: 5px;
}

#img-gallery-modal #thumbnails .active img {
    border: 2px #bbbbbb solid;
}

#img-gallery-modal .primary-img img {
    width: 100%;
}

#img-gallery-modal .modal-dialog {
    padding-left: 30px;
    padding-right: 30px;
    margin-top: 10px;
    margin-bottom: 10px;
    width: auto;
}

.zoom-text {
    font-size: 18px;
    text-align: center;
    margin-top: -1.5em;
}

.zoom-text span {
    vertical-align: top;
}

.product-social-media {
    display: inline-block;
    margin-top: 20px;
}
.product-social-media > button {
    padding: 6px !important;
}

@media (max-width: 768px) {

    .share-label {
        display: none;
    }

    .text-center-mobile {
        text-align: center;
    }

    .margin-top-mobile {
        margin-top: 30px;
    }
}

#product-main-button-panel .btn, #product-wishlist-button-panel .btn {
    width: 100%;
}

/* Drop the Add to Cart button's default bottom margin so the WhatsApp inquire
   button (when present) stacks snug beneath it. */
#product-main-button-panel .js-addToCart {
    margin-bottom: 0;
}

/* Breathing room to the right of the Add to Cart / action buttons (between
   them and the wishlist button). */
#product-main-button-panel {
    padding-right: 15px;
}

@media (max-width: 767px) {
    #product-main-button-panel div, #product-wishlist-button-panel div {
        text-align: center;
    }
}

.product-social-media > * {
    margin-bottom: 0;
    margin-top: 0;
}

.product-page .vertical-thumbnails-list  {
    position: absolute;
}

.product-page .vertical-thumbnails {
    position: relative;
    overflow-y: hidden;
}

/* Outer col wrapper: allow overflow so the down-arrow below the scroll area
   is never clipped. Height and overflow are intentionally not set here —
   they only apply to the inner js-verticalThumbnails scroll container. */
.product-page:not(.product-quickview) .col-flex-sm-2.vertical-thumbnails {
    overflow: visible;
    height: auto;
    margin-top: 30px;
}

/* Inner scroll container: explicit height (set by scaleThumbnails via JS)
   and hidden overflow so thumbnails scroll under JS control. */
.product-page:not(.product-quickview) .js-verticalThumbnails {
    height: 550px;
    overflow-y: hidden;
}

.vertical-thumbnails::before {
    background: linear-gradient(
            rgba(255, 255, 255, 1) 0%,
            rgba(255, 255, 255, 0) 100%);
    top: 0;
    width: 100%;
    height: 50px;
}

.vertical-thumbnails::after {
    background: linear-gradient(
            rgba(255, 255, 255, 0) 0%,
            rgba(255, 255, 255, 1) 100%);

    bottom: 0;
    width: 100%;
    height: 50px;
}

.horizontal-thumbnails::before {
    background: linear-gradient(
            to right,
            rgba(255, 255, 255, 1) 0%,
            rgba(255, 255, 255, 0) 100%);
    width: 50px;
    height: 100%;
}

.horizontal-thumbnails::after {
    background: linear-gradient(
            to right,
            rgba(255, 255, 255, 0) 0%,
            rgba(255, 255, 255, 1) 100%);
    right: 0;
    width: 50px;
    height: 100%;
}

.vertical-thumbnails::before, .horizontal-thumbnails::before,
.vertical-thumbnails::after, .horizontal-thumbnails::after {
    content: '';
    position: absolute;
    z-index: 1;
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
}

.thumbnail-top-fade::before {
    opacity: 1;
}

.thumbnail-bottom-fade::after {
    opacity: 1;
}

.product-page .up-arrow, .product-page .down-arrow {
    text-align: center;
}

#product_content .flexi-nav {
    margin: 0;
}

#product_content .flexi-nav li a {
    margin-left: auto;
    margin-right: auto;
}

.product-page .thumbnail-button-top, .product-page .thumbnail-button-bottom {
    width: 80%;
}

@media (max-width: 991px) {
    .product-page .thumbnail-button-top, .product-page .thumbnail-button-bottom {
        padding: 0;
    }

    #product_content .flexi-nav li a {
        padding: 2px;
        margin-bottom: 5px;
    }
}

.product-page .thumbnail-button-top {
    margin: 0 0 5px;
}

.product-page .thumbnail-button-bottom {
    margin: 5px 0 0;
}

.product-page .vertical-thumbnails .flexi-nav > li a {
    width: 100%;
}

.product-page .horizontal-thumbnail-list {
    list-style: none;
    margin: 0;
    padding: 0;
    overflow-x: hidden;
    white-space: nowrap;
    text-align: center;
    min-width: 99%;
}

.product-page .thumbnail-item {
    display: inline;
}

.product-page .thumbnail-item a {
    display: inline-block;
    padding: 8px;
    border-radius: 8px;
    border: 1px solid transparent;
    transition: all 0.5s ease;
}

.product-page .thumbnail-item a:hover {
    border: 1px solid #EEEEEE
}

.product-page .thumbnail-item.active a {
    border: 1px solid #DDDDDD
}

.product-page .thumbnail-item img {
    max-height: 85px;
}

/* Mobile horizontal thumbnail strip */
.product-page .thumbnail-row {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    width: 100%;
}

.product-page .thumbnail-row .left-arrow,
.product-page .thumbnail-row .right-arrow {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
}

.product-page .thumbnail-row .left-arrow .btn,
.product-page .thumbnail-row .right-arrow .btn {
    padding: 4px 2px;
    min-width: 28px;
}

.product-page .horizontal-thumbnails {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 auto;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    position: relative;
    /* height matches thumbnail image (70px) + vertical padding (8px each side) */
    height: 86px;
}

.product-page .horizontal-thumbnail-list {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: nowrap;
        -ms-flex-wrap: nowrap;
            flex-wrap: nowrap;
    list-style: none;
    padding: 4px 0;
    margin: 0;
    position: absolute;
    left: 0;
}

.product-page .horizontal-thumbnail-list .thumbnail-item {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    margin-right: 6px;
}

.product-page .horizontal-thumbnail-list .thumbnail-item img {
    width: 70px;
    height: 70px;
    object-fit: cover;
}

/**********************/
/** Customer Reviews **/
/**********************/
#customer-reviews-container {
    max-width: 760px;
}

/* Section title: keep the store's own copy, but lead it with a quiet eyebrow
   and set it in the heading face. */
#customer-reviews-container h3 {
    font-family: var(--font-heading);
    font-size: 1.4rem;
    color: #1c1c21;
    margin: 0 0 16px;
}
#customer-reviews-container h3::before {
    content: "Reviews";
    display: block;
    font-family: var(--font-base);
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--brand-primary);
    margin-bottom: 6px;
}

/* Rating masthead — the signature: a large average (read from the widget's
   data-community-rating) next to the amber stars, count on the line below. */
#community-rating-container {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 3px 14px;
    padding-bottom: 16px;
    margin-bottom: 18px;
    border-bottom: 1px solid #ececf0;
}
#community-rating {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin: 0;
}
#community-rating::before {
    content: attr(data-community-rating);
    font-family: var(--font-heading);
    font-size: 2.3rem;
    font-weight: 700;
    line-height: 1;
    color: #1c1c21;
    font-variant-numeric: tabular-nums;
}
.total-reviews {
    flex-basis: 100%;
    margin: 0;
    font-size: 0;                 /* collapse the template's "( … )" wrapper text */
    color: #9a9aa2;               /* match the review attribution line */
    letter-spacing: .01em;
}
.total-reviews::before {
    content: "Based on";
    font-size: 1.15rem;
    margin-right: .35em;
}
.total-reviews span { font-size: 1.15rem; }
.total-reviews span + span { margin-left: .35em; }

/* Subsection labels: "Your Review" / "Customer Reviews". */
#customer-reviews-container h4 {
    font-family: var(--font-base);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #6b6b73;
    margin: 0 0 12px;
}

/* The shopper's own review, set apart in a brand-tinted callout. */
.your-review-body {
    padding: 14px 16px;
    background: rgba(var(--brand-primary-rgb), .04);
    border-radius: 12px;
    margin-bottom: 20px;
}
.your-review-body .customer-rating { margin-bottom: 8px; }

/* Review cards laid out as a horizontal, swipeable rail — the section height
   stays fixed however many reviews there are, and cards keep a comfortable
   reading width instead of stretching across the container. */
.customer-reviews {
    list-style: none;
    margin: 0;
    padding: 0 0 6px;              /* a little room under the cards for the scrollbar */
    display: flex;
    gap: 12px;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}
.customer-reviews li {
    flex: 0 0 auto;
    width: 340px;
    max-width: 85%;                /* on phones the next card peeks in, hinting the scroll */
    scroll-snap-align: start;
    padding: 13px 16px;
    background: #fff;
    border: 1px solid #ececf0;
    border-radius: 12px;
}
.customer-reviews .customer-rating { margin-bottom: 7px; }
.customer-reviews br { display: none; }
.voting-summary {
    margin: 0 0 5px;
    font-size: .8rem;
    color: #9a9aa2;
}
.reviewer-info {
    border: 0;
    margin: 0;
    padding: 0;
}
.reviewer-info p {
    margin: 0 0 8px;
    font-size: 1.2rem;
    line-height: 1.45;
    color: #26262b;
}
.reviewer-info small {
    display: block;
    color: #9a9aa2;
    font-size: 1.15rem;
}
.penname {
    color: var(--brand-primary);
    font-weight: 600;
}

/* Write-a-review call to action + form. */
.js-createReview.btn {
    display: inline-block;
    margin-top: 22px;
}
#review-form { margin-top: 24px; }
#new-rating-form {
    max-width: 520px;
    padding: 22px;
    background: #fff;
    border: 1px solid #ececf0;
    border-radius: 16px;
}
#new-rating-form .title {
    font-family: var(--font-heading);
    font-size: 1.15rem;
    margin: 0 0 16px;
}
.rate-product {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 8px;
}
.rate-product label { margin: 0; font-weight: 600; color: #4a4a52; }
.review-status-bottom { display: block; margin-top: 10px; }

@media (max-width: 767px) {
    /* Breathing room from the screen edges on phones. */
    #customer-reviews-container,
    #review-form { padding-left: 15px; padding-right: 15px; }
    #community-rating::before { font-size: 2rem; }
    .your-review-body { padding: 14px; }
    .customer-reviews li { padding: 13px 14px; }
    #new-rating-form { padding: 16px; }

    .product-page,
    .product-page .product-image-wrapper {
        padding-left: 15px;
    }

    /* Step A — wider side gutters on phones for swipe-scroll room. */
    .product-page:not(.product-quickview) .product-image-wrapper .product-main-image {
        padding: 10px 24px;
    }

    /* Step B — fixed image-view height: every product image presents at the
       same height on a phone, whole image visible on white (object-fit:contain
       so nothing distorts). --pdp-image-size is the single knob. */
    .product-page:not(.product-quickview) {
        --pdp-image-size: 340px;
    }
    .product-page:not(.product-quickview) .product-main-image img.js-main-product-img {
        display: block;
        width: 100%;
        max-width: var(--pdp-image-size);
        height: var(--pdp-image-size);
        margin: 0 auto;
        object-fit: contain;
        background-color: #fff;
    }

    .product-page.product-quickview .product-image-wrapper {
        margin: 0;
    }
}
.open-zoom-gallery:hover {
    cursor: pointer;
}

#myCarousel {
    padding: 0;
}

.carousel-inner {
    height: 100%;
}

/* === Quick-view: uniform media presentation =================================
   Mirror the grid card treatment (fixed square box, object-fit:contain on
   white, no crop) for the quick-view main image, and let the thumbnail strip
   scroll vertically when a product has more media than fits the image height.
   Scoped to .product-page.product-quickview so the full product-detail page
   (with its own zoom gallery + JS thumbnail scaling) is untouched. */
.product-page.product-quickview {
    --qv-image-size: 340px;
}

/* Main image: uniform square box, whole image visible on white. The explicit
   object-fit + sizing override material-kit's `.tab-content img` (max-width
   300px) and product.css's `.tab-content img { max-width: none }`. */
.product-page.product-quickview .product-main-image .tab-content {
    margin: 0;
    overflow: hidden;
}
.product-page.product-quickview .product-main-image .product-card.card {
    margin: 0;
}
.product-page.product-quickview .product-main-image img.img-raised {
    display: block;
    width: 100%;
    max-width: var(--qv-image-size);
    height: var(--qv-image-size);
    margin: 0 auto;
    object-fit: contain;
    background-color: #fff;
}

/* Thumbnail strip: cap to the image-box height and scroll when media overflow
   (overrides `.product-page .vertical-thumbnails { overflow-y: hidden }`). */
.product-page.product-quickview .vertical-thumbnails {
    max-height: var(--qv-image-size);
    overflow-y: auto;
    overflow-x: hidden;
}
.product-page.product-quickview .vertical-thumbnails .flexi-nav {
    margin: 0;
}
/* Uniform square thumbnails inside the scroll strip. */
.product-page.product-quickview .vertical-thumbnails .flexi-nav > li a img {
    height: 64px;
    object-fit: contain;
    background-color: #fff;
}

.carousel-group {
    display: flex;
    align-content: center;
    justify-content: center;
    padding: 5px;
    flex-direction: column;
}

#myCarousel .item.active.left {
    -webkit-transform: translate3d(0, 150%, 0);
    transform: translate3d(0, 150%, 0);
}

#myCarousel .item.active.right {
    -webkit-transform: translate3d(0, -150%, 0);
    transform: translate3d(0, -150%, 0);
}

#myCarousel .item.prev, #myCarousel .item.next {
    z-index: 10;
}

#myCarousel .thumbnail.active {
    padding: 10px;
    border-radius: 5px;
    border: 2px solid #cccccc;
}

#myCarousel .carousel-indicators {
    position: relative;
}

#img-gallery-modal .modal-dialog {
    max-width: 850px;
}
