body.single-product { background: #f6f5f3; }

.woocommerce-breadcrumb { margin-top: 30px !important; }

body.single-product .woocommerce-notices-wrapper { display: none; }

.product-layout {
    display:       flex;
    align-items:   flex-start;
    gap:           60px;
    margin-top:    20px;
}

.product-layout__gallery,
.product-layout__summary { flex: 1 1 0; min-width: 0; }

.product-gallery { display: flex; gap: 10px; }

.product-gallery__thumbs {
    flex:           none;
    display:        flex;
    flex-direction: column;
    gap:            10px;
    width:          110px;
    max-height:     640px;
    overflow-y:     auto;
}

.product-gallery__thumb {
    flex:          none;
    overflow:      hidden;
    background:    #ffffff;
    border-radius: 10px;
    cursor:        pointer;
    opacity:       .6;
    transition:    opacity var(--transition);
}

.product-gallery__thumb-image { display: block; width: 100%; height: 110px; object-fit: cover; }

.product-gallery__thumb.is-active,
.product-gallery__thumb:hover { opacity: 1; }

.product-gallery__main-wrap { position: relative; flex: 1 1 0; min-width: 0; }

.product-gallery__image {
    display:       block;
    width:         100%;
    height:        640px;
    object-fit:    fill;
    border-radius: 10px;
}

.product-gallery__nav {
    display:         flex;
    align-items:     center;
    justify-content: center;
    position:        absolute;
    top:             50%;
    z-index:         2;
    width:           28px;
    height:          28px;
    padding:         0;
    background:      rgba(0, 0, 0, .3);
    border:          0;
    border-radius:   60px;
    color:           #ffffff;
    transform:       translateY(-50%);
    cursor:          pointer;
}

.product-gallery__nav--prev { left: 12px; }
.product-gallery__nav--next { right: 12px; }
.product-gallery__nav--prev .icon { transform: scaleX(-1); }

.product-summary {
    padding:       24px;
    background:    #ffffff;
    border-radius: 10px;
}

.product-summary__title {
    margin:      0 0 16px;
    font-size:   24px;
    font-weight: 700;
    line-height: 28px;
    color:       var(--color-heading);
}

.product-summary__meta-row {
    display:         flex;
    align-items:     flex-start;
    justify-content: space-between;
    gap:             16px;
}

.product_meta {
    display:         flex;
    flex-direction:  column;
    gap:             4px;
    font-size:       16px;
    font-weight:     500;
    line-height:     20px;
    color:           var(--color-heading);
}

.product_meta a { color: var(--color-heading); }
.product_meta a:hover { color: var(--color-primary); }

.product-summary__stock {
    display:         inline-flex;
    flex-shrink:     0;
    padding:         4px 8px;
    background:      rgba(32, 181, 38, .2);
    border-radius:   4px;
    font-size:       16px;
    line-height:     20px;
    color:           var(--color-accent);
}

.product-summary__stock--out { background: rgba(108, 105, 98, .15); color: var(--color-muted); }

.product-summary__divider { margin: 20px 0; border: 0; border-top: 1px solid var(--color-border); }

.product-summary__price-row {
    display:         flex;
    align-items:     center;
    justify-content: space-between;
    gap:             20px;
}

.product-summary .price {
    margin:      0;
    font-size:   20px;
    font-weight: 400;
    line-height: 20px;
    color:       var(--color-heading) !important;
}

.product-summary__specs-link {
    display:         inline-flex;
    flex-shrink:     0;
    align-items:     center;
    gap:             8px;
    padding:         14px 32px;
    border:          1px solid var(--color-muted);
    border-radius:   10px;
    font-size:       14px;
    font-weight:     600;
    line-height:     16px;
    color:           var(--color-muted);
    transition:      background var(--transition), color var(--transition);
}

.product-summary__specs-link svg { flex-shrink: 0; }
.product-summary__specs-link:hover { background: var(--color-muted); color: #ffffff; }
.product-summary__specs-link:hover svg { color: #ffffff; }

.product-summary__cart .cart {
    display:     flex;
    align-items: center;
    gap:         20px;
}

.product-summary__cart .quantity {
    display:         flex;
    align-items:     center;
    justify-content: center;
    gap:             2px;
    height:          52px;
    padding:         8px;
    border:          1px solid var(--color-border);
    border-radius:   100px;
}

.quantity__control {
    display:         flex;
    flex:            none;
    align-items:     center;
    justify-content: center;
    width:           36px;
    height:          36px;
    padding:         0;
    background:      transparent;
    border:          1px solid var(--color-border);
    border-radius:   50%;
    color:           #666666;
    cursor:          pointer;
}

.product-summary__cart .qty {
    width:       33px;
    padding:     0;
    border:      0;
    font-size:   16px;
    font-weight: 400;
    text-align:  center;
    appearance:  textfield;
}

.product-summary__cart .qty::-webkit-outer-spin-button,
.product-summary__cart .qty::-webkit-inner-spin-button { appearance: none; margin: 0; }

.single_add_to_cart_button {
    display:         flex;
    align-items:     center;
    justify-content: center;
    width:           235px;
    height:          52px;
    padding:         8px 20px;
    background:      #3F8F46 !important;
    border:          0;
    border-radius:   100px !important;
    font-size:       16px;
    font-weight:     500;
    line-height:     20px;
    letter-spacing:  1px;
    color:           #ffffff !important;
    cursor:          pointer;
    transition:      background var(--transition);
}

.single_add_to_cart_button:hover { background: var(--color-primary-hov) !important; }

.single_add_to_cart_button.added,
.single_add_to_cart_button.added:hover {
    background: var(--color-secondary) !important;
}

.single_add_to_cart_button.loading { opacity: 0.7; pointer-events: none; }

.product-notices {
    display:         flex;
    flex-direction:  column;
    gap:             16px;
    margin-top:      20px;
    padding:         24px;
    background:      #ffffff;
    border-radius:   10px;
}

.product-notice { display: flex; align-items: flex-start; gap: 16px; }

.product-notice__icon { flex: none; width: 24px; height: 24px; color: var(--color-muted); }

.product-notice__text {
    margin:      0;
    font-size:   16px;
    font-weight: 400;
    line-height: 20px;
    color:       var(--color-heading);
}

.product-notice__text strong { font-weight: 700; }

.product-tabs { margin-top: 60px; }

.woocommerce-tabs.wc-tabs-wrapper { display: flex; flex-direction: column; gap: 20px; }

.tabs.wc-tabs {
    display:         flex;
    align-self:      stretch;
    align-items:     center;
    justify-content: center;
    flex-wrap:       wrap;
    gap:             10px;
    width:           100vw;
    margin-top:      0 !important;
    margin-bottom:   0 !important;
    margin-left:     calc(-50vw + 50%) !important;
    margin-right:    calc(-50vw + 50%) !important;
    padding:         10px !important;
    list-style:      none;
    background:      #ffffff;
    border-radius:   0;
}

.tabs.wc-tabs li {
    background:    transparent !important;
    border:        0 !important;
    border-radius: 0 !important;
    padding:       0 !important;
    margin:        0 !important;
}

.tabs.wc-tabs li::before,
.tabs.wc-tabs li::after {
    content: none !important;
    display: none !important;
}

.tabs.wc-tabs li a {
    display:         flex;
    align-items:     center;
    padding:         6px 10px !important;
    border-radius:   6px;
    background:      #F4F3EE;
    font-size:       20px !important;
    font-weight:     500 !important;
    line-height:     24px;
    letter-spacing:  1px;
    color:           var(--color-heading);
    transition:      background var(--transition), color var(--transition);
}

.tabs.wc-tabs li.active a {
    background-color: var(--color-accent) !important;
    color:             #ffffff !important;
}

.woocommerce-Tabs-panel {
    width:         100%;
    max-width:     1400px;
    margin-left:   auto !important;
    margin-right:  auto !important;
    padding:       40px !important;
    background:    #ffffff !important;
    border-radius: 10px;
    font-size:     16px;
    line-height:   24px;
    color:         var(--color-heading);
}

.woocommerce-Tabs-panel p { margin: 0 0 16px; }
.woocommerce-Tabs-panel p:last-child { margin-bottom: 0; }

.woocommerce-Tabs-panel h2 {
    margin:      24px 0 16px;
    font-size:   24px;
    font-weight: 700;
    line-height: 28px;
    color:       var(--color-heading);
}
.woocommerce-Tabs-panel h2:first-child { margin-top: 0; }

.woocommerce-Tabs-panel h3 {
    margin:      15px 0;
    font-family: Roboto, sans-serif;
    font-size:   28px;
    font-weight: 400;
    line-height: 39.2px;
    color:       #3B3D42;
}

.woocommerce-Tabs-panel ul {
    margin:              0 0 16px 24px;
    padding:             0;
    list-style:          disc outside;
}
.woocommerce-Tabs-panel li {
    display:     list-item;
    font-size:   16px;
    line-height: 24px;
}

.woocommerce-Tabs-panel table {
    width:           100%;
    border-collapse: collapse;
    margin:          0 0 16px;
}
.woocommerce-Tabs-panel table:last-child { margin-bottom: 0; }

.woocommerce-Tabs-panel table th,
.woocommerce-Tabs-panel table td {
    padding:       12px 16px;
    font-size:     16px;
    line-height:   22px;
    color:         var(--color-heading);
    text-align:    left;
    vertical-align: top;
    border-bottom: 1px solid var(--color-border);
}

.woocommerce-Tabs-panel table tr:last-child > th,
.woocommerce-Tabs-panel table tr:last-child > td { border-bottom: 0; }

.woocommerce-Tabs-panel table th,
.woocommerce-Tabs-panel table thead td {
    font-weight: 700;
}

.woocommerce-Tabs-panel table thead tr { background: var(--color-bg-alt); }
.woocommerce-Tabs-panel table tbody tr:nth-child(even) { background: var(--color-bg-alt); }

.woocommerce-Tabs-panel table b,
.woocommerce-Tabs-panel table strong { color: var(--color-primary); }

.woocommerce-Tabs-panel table.additional-attributes th.col.label { color: var(--color-heading); }

.woocommerce-Reviews-title { margin: 0 0 20px; }
.woocommerce-Reviews-title:first-child { margin-top: 0; }

.woocommerce-noreviews {
    padding:       16px 20px;
    background:    var(--color-bg-alt);
    border-radius: 8px;
    color:         var(--color-muted);
}

.commentlist {
    display:        flex;
    flex-direction: column;
    gap:            24px;
    margin:         0 0 32px;
    padding:        0;
    list-style:     none;
}

.commentlist .comment_container { display: flex; align-items: flex-start; gap: 16px; }

.commentlist .comment_container img.avatar {
    flex:          none;
    width:         48px;
    height:        48px;
    border-radius: 50%;
}

.commentlist .comment-text {
    flex:          1 1 0;
    min-width:     0;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--color-border);
}

.commentlist li:last-child .comment-text { padding-bottom: 0; border-bottom: 0; }

.star-rating {
    overflow:    hidden;
    position:    relative;
    height:      1.2em;
    line-height: 1.2em;
    width:       5.4em;
    font-size:   16px;
    color:       var(--color-border);
}
.star-rating::before {
    content:     "\53\53\53\53\53";
    top:         0;
    left:        0;
    position:    absolute;
    font-family: star;
    color:       var(--color-border);
}
.star-rating span { overflow: hidden; float: left; top: 0; left: 0; position: absolute; padding-top: 1.5em; }
.star-rating span::before {
    content:     "\53\53\53\53\53";
    top:         0;
    position:    absolute;
    left:        0;
    font-family: star;
    color:       var(--color-accent);
}

.commentlist .meta {
    margin:      10px 0 8px;
    font-size:   14px;
    line-height: 18px;
    color:       var(--color-muted);
}

.woocommerce-review__author { font-weight: 600; color: var(--color-heading); }
.woocommerce-review__verified { font-style: normal; color: var(--color-accent); }
.woocommerce-review__dash { margin: 0 4px; }

.commentlist .description p { margin: 0; }

.woocommerce-pagination { margin-top: 0; }

#review_form_wrapper { padding-top: 24px; border-top: 1px solid var(--color-border); }
.commentlist ~ #review_form_wrapper,
.woocommerce-noreviews ~ #review_form_wrapper { border-top: 0; padding-top: 0; }

.comment-reply-title {
    display:     block;
    margin:      0 0 20px;
    font-size:   20px;
    font-weight: 700;
    line-height: 24px;
    color:       var(--color-heading);
}

#respond .comment-form-rating { margin: 0 0 16px; }
#respond .comment-form-rating label#comment-form-rating-label { display: block; margin: 0 0 8px; font-size: 14px; font-weight: 500; color: var(--color-heading); }

#respond .comment-form-comment,
#respond .comment-form-author,
#respond .comment-form-email { margin: 0 0 16px; }

#respond label {
    display:     block;
    margin:      0 0 8px;
    font-size:   14px;
    font-weight: 500;
    color:       var(--color-heading);
}

#respond .required { color: #d0392c; }

#respond input,
#respond textarea,
#respond select {
    width:         100%;
    padding:       10px 16px;
    border:        1px solid var(--color-border);
    border-radius: 6px;
    font-family:   var(--font-body);
    font-size:     16px;
    color:         var(--color-heading);
    transition:    border-color var(--transition);
}

#respond input:focus,
#respond textarea:focus,
#respond select:focus { outline: none; border-color: var(--color-primary); }

#respond textarea { resize: vertical; min-height: 120px; }

#respond select#rating {
    appearance: none;
    background: #ffffff url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="10" height="6" viewBox="0 0 10 6"><path d="M1 1l4 4 4-4" fill="none" stroke="%23000000" stroke-opacity=".5" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>') no-repeat right 16px center;
    cursor:     pointer;
}

#respond .form-submit { margin-top: 8px; }

#respond #submit {
    display:         inline-flex;
    align-items:     center;
    justify-content: center;
    width:           auto;
    padding:         12px 32px;
    background:      var(--color-primary) !important;
    border:          0;
    border-radius:   100px !important;
    color:           #ffffff !important;
    font-size:       16px;
    font-weight:     500;
    cursor:          pointer;
    transition:      background var(--transition);
}

#respond #submit:hover { background: var(--color-primary-hov) !important; }

.must-log-in a,
.woocommerce-verification-required { color: var(--color-primary); }

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
    margin:          0 0 24px !important;
    padding:         16px 20px !important;
    background:      var(--color-bg-alt) !important;
    border:          0 !important;
    border-left:     4px solid var(--color-primary) !important;
    border-radius:   8px !important;
    list-style:      none !important;
    font-size:       16px;
    line-height:     22px;
    color:           var(--color-heading);
}

.woocommerce-info { border-left-color: #3D8FD1 !important; }
.woocommerce-error { border-left-color: #D0392C !important; }
.woocommerce-error li { list-style: none !important; padding: 0 !important; margin: 0 !important; }

.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before,
.woocommerce-error li::before { content: none !important; }
.woocommerce-error li + li { margin-top: 12px !important; }

.woocommerce-message__text {
    display:         flex;
    align-items:     center;
    justify-content: flex-start;
    flex-wrap:       wrap;
    gap:             16px;
    padding-left:    4px;
}

.woocommerce-message a.button.wc-forward,
.woocommerce-info a.button.wc-forward {
    flex:            none;
    display:         inline-flex;
    align-items:     center;
    justify-content: center;
    padding:         10px 24px;
    background:      var(--color-primary);
    border-radius:   100px;
    color:           #ffffff;
    font-size:       14px;
    font-weight:     500;
    white-space:     nowrap;
    transition:      background var(--transition);
}

.woocommerce-message a.button.wc-forward:hover,
.woocommerce-info a.button.wc-forward:hover { background: var(--color-primary-hov); }

@media (max-width: 767px) {
    .woocommerce-message__text { flex-direction: column; align-items: flex-start; }
    .woocommerce-message a.button.wc-forward,
    .woocommerce-info a.button.wc-forward { width: 100%; }
}

@media (max-width: 767px) {
    .commentlist .comment_container { gap: 12px; }
    .commentlist .comment_container img.avatar { width: 40px; height: 40px; }
}

.product-related {
    width:         100vw;
    margin-top:    60px;
    margin-left:   calc(-50vw + 50%);
    margin-right:  calc(-50vw + 50%);
    padding-bottom: 60px;
}
.product-related .container { max-width: 1860px; }

.product-related__title {
    margin:      0 0 20px;
    font-size:   24px;
    font-weight: 700;
    line-height: 28px;
    color:       var(--color-heading);
}

.product-related-slider-wrap { position: relative; }

.product-related-slider { margin: 0 -10px; }
.product-related-slider .slick-track { display: flex; }
.product-related-slider .slick-slide { height: auto; padding: 10px; }

.product-related-slider__arrow {
    display:         flex;
    align-items:     center;
    justify-content: center;
    position:        absolute;
    top:             50%;
    z-index:         2;
    width:           32px;
    height:          32px;
    padding:         0;
    background:      transparent;
    border:          0;
    color:           var(--color-heading);
    transform:       translateY(-50%);
    cursor:          pointer;
}

.product-related-slider__arrow--prev { left: 0; }
.product-related-slider__arrow--next { right: 0; }
.product-related-slider__arrow--prev .icon { transform: scaleX(-1); }

@media (max-width: 1024px) {
    .product-layout { gap: 30px; }
    .product-gallery__image { height: auto; aspect-ratio: 1 / 1; }
}

@media (max-width: 767px) {
    .product-layout { flex-direction: column; align-items: stretch; gap: 24px; }

    .product-gallery { flex-direction: column; gap: 12px; }
    .product-gallery__main-wrap { order: -1; }

    .product-gallery__thumbs {
        flex-direction: row;
        width:          100%;
        max-height:     none;
        overflow-x:     auto;
        overflow-y:     visible;
    }
    .product-gallery__thumb { flex: none; width: 70px; }
    .product-gallery__thumb-image { width: 70px; height: 70px; }
    .product-gallery__image { height: 263px; }

    .product-summary__title { font-size: 18px; line-height: 22px; }

    .product-summary__specs-link { padding: 8px 16px; }

    .product-summary__cart .cart { flex-wrap: wrap; }
    .single_add_to_cart_button { width: 100%; margin-top: 12px; }

    .product-notices { padding: 16px; }

    .product-tabs { margin-top: 40px; }
    .product-related { margin-top: 40px; padding-bottom: 40px; }
}
