/* =========================================================
   THANYH SINGLE PRODUCT
   Source of truth for product detail page
   ========================================================= */

.single-product .th-woo-page {
    padding: 30px 20px 72px;
}

.single-product .th-woo-page > .th-container {
    width: 100%;
    max-width: 1140px;
    margin-inline: auto;
}


/* Breadcrumb */

.single-product .thanyh-breadcrumb {
    margin: 0 0 17px;

    color: var(--th-muted);

    font-size: 15px;
}

.single-product .thanyh-breadcrumb a {
    color: var(--th-muted);
}

.single-product .thanyh-breadcrumb a:hover {
    color: var(--th-blue);
}


/* Woo outer product */

.single-product div.product {
    display: block;

    margin: 0;
}


/* =========================================================
   HERO — one unified container
   ========================================================= */

.single-product .th-product-hero {
    width: 100%;

    padding: 20px;

    display: grid;
    grid-template-columns:
        minmax(0, .9fr)
        minmax(0, 1.1fr);

    gap: 20px;

    border-radius: 22px;

    background:
        radial-gradient(
            circle at 0% 100%,
            rgba(23,105,232,.24),
            transparent 32%
        ),
        #0b1018;

    overflow: hidden;
}


/* Gallery */

.single-product
.th-product-hero
.woocommerce-product-gallery {
    float: none;

    width: 100%;
    min-width: 0;

    margin: 0;

    min-height: 410px;

    padding: 28px;

    display: flex;
    align-items: center;
    justify-content: center;

    border:
        1px solid
        rgba(255,255,255,.08);

    border-radius: 16px;

    background: #f5f7fa;
}

.single-product
.woocommerce-product-gallery
.flex-viewport {
    width: 100%;
}

.single-product
.woocommerce-product-gallery
.woocommerce-product-gallery__image {
    text-align: center;
}

.single-product
.woocommerce-product-gallery
.woocommerce-product-gallery__image
img {
    width: 100%;
    max-width: 320px;
    max-height: 320px;

    margin-inline: auto;

    object-fit: contain;
}

.single-product
.woocommerce-product-gallery
.flex-control-thumbs {
    margin: 14px 0 0;
    padding: 0;

    display: flex;
    gap: 7px;

    list-style: none;
}

.single-product
.woocommerce-product-gallery
.flex-control-thumbs li {
    width: 54px;
}

.single-product
.woocommerce-product-gallery
.flex-control-thumbs img {
    width: 54px;
    height: 54px;

    padding: 5px;

    border: 1px solid var(--th-border);
    border-radius: 8px;

    background: #fff;

    object-fit: contain;
}


/* =========================================================
   SUMMARY
   ========================================================= */

.single-product
.th-product-hero
.summary {
    float: none;

    width: 100%;
    min-width: 0;

    margin: 0;
    padding: 25px 10px 15px;

    display: flex;
    flex-direction: column;

    color: #fff;
}


/* badges */

.th-single-kicker {
    display: flex;
    gap: 6px;

    margin-bottom: 15px;
}

.th-single-kicker span {
    padding: 5px 9px;

    border:
        1px solid
        rgba(255,255,255,.14);

    border-radius: 999px;

    background:
        rgba(255,255,255,.06);

    color:
        rgba(255,255,255,.72);

    font-size: 15px;
    font-weight: 700;
}


/* title */

.single-product .product_title {
    margin: 0 0 12px;

    color: #fff;

    font-size:
        clamp(30px,3.3vw,42px);

    line-height: 1.3;

    letter-spacing: -.5px;
}


/* rating */

.single-product
.woocommerce-product-rating {
    margin-bottom: 11px;

    color:
        rgba(255,255,255,.65);

    font-size: 14px;
}

.single-product
.star-rating {
    color: #f8b84e;
}


/* price */

.single-product
div.product
p.price,
.single-product
div.product
span.price {
    margin: 4px 0 15px;

    color: #fff;

    font-size: 29px;
    font-weight: 900;

    line-height: 1.3;
}

.single-product
div.product
.price del {
    margin-inline-start: 7px;

    color:
        rgba(255,255,255,.38);

    font-size: 15px;
}

.single-product
div.product
.price ins {
    text-decoration: none;
}


/* description */

.single-product
.woocommerce-product-details__short-description {
    margin-bottom: 18px;

    color:
        rgba(255,255,255,.63);

    font-size: 14px;
    line-height: 1.95;
}

.single-product
.woocommerce-product-details__short-description
p {
    margin: 0 0 8px;
}


/* =========================================================
   CART / BUY NOW
   ========================================================= */

.single-product form.cart {
    width: 100%;

    margin: auto 0 0;
    padding-top: 18px;

    border-top:
        1px solid
        rgba(255,255,255,.11);

    display: grid;
    grid-template-columns:
        62px
        minmax(0,1fr)
        minmax(0,1fr);

    gap: 8px;
}

.single-product
form.cart
.quantity {
    float: none;

    width: 62px;
    margin: 0;
}

.single-product
form.cart
.quantity
.qty {
    width: 62px;
    height: 47px;

    padding: 0;

    border:
        1px solid
        rgba(255,255,255,.17);

    border-radius: 9px;

    background:
        rgba(255,255,255,.06);

    color: #fff;

    text-align: center;
}


/* Add to cart */

.single-product
form.cart
.single_add_to_cart_button {
    float: none;

    width: 100%;
    min-height: 47px;

    margin: 0;
    padding: 0 15px;

    border: 0;
    border-radius: 9px;

    display: flex;
    align-items: center;
    justify-content: center;

    background: var(--th-blue);
    color: #fff;

    font-size: 15px;
    font-weight: 800;
}

.single-product
form.cart
.single_add_to_cart_button:hover {
    background: var(--th-blue-hover);
}


/* Buy now */

.single-product
form.cart
.th-buy-now {
    width: 100%;
    min-height: 47px;

    padding: 0 15px;

    border:
        1px solid
        rgba(255,255,255,.28);

    border-radius: 9px;

    background: transparent;
    color: #fff;

    font-size: 15px;
    font-weight: 800;
}

.single-product
form.cart
.th-buy-now:hover {
    border-color: #fff;

    background:
        rgba(255,255,255,.07);
}


/* product meta */

.single-product .product_meta {
    margin-top: 15px;

    color:
        rgba(255,255,255,.4);

    font-size: 15px;
}

.single-product .product_meta a {
    color:
        rgba(255,255,255,.72);
}


/* =========================================================
   TRUST
   ========================================================= */

.single-product
.thanyh-product-trust {
    margin-top: 17px;
    padding-top: 15px;

    border-top:
        1px solid
        rgba(255,255,255,.1);

    display: grid;
    grid-template-columns:
        repeat(3,minmax(0,1fr));

    gap: 7px;
}

.single-product
.thanyh-product-trust
div {
    min-width: 0;

    padding: 10px 8px;

    border:
        1px solid
        rgba(255,255,255,.09);

    border-radius: 9px;

    background:
        rgba(255,255,255,.035);
}

.single-product
.thanyh-product-trust
strong,
.single-product
.thanyh-product-trust
span {
    display: block;
}

.single-product
.thanyh-product-trust
strong {
    color: #fff;

    font-size: 15px;
}

.single-product
.thanyh-product-trust
span {
    margin-top: 2px;

    color:
        rgba(255,255,255,.46);

    font-size: 8px;
}


/* =========================================================
   TABS
   ========================================================= */

.single-product
div.product
.woocommerce-tabs {
    width: 100%;

    margin-top: 28px;

    border:
        1px solid
        var(--th-border);

    border-radius: 15px;

    overflow: hidden;

    background: #fff;
}

.single-product
div.product
.woocommerce-tabs
ul.tabs {
    margin: 0;
    padding: 0 20px;

    display: flex;
    gap: 4px;

    border-bottom:
        1px solid
        var(--th-border);

    background: #f8fafc;

    list-style: none;
}

.single-product
div.product
.woocommerce-tabs
ul.tabs::before,
.single-product
div.product
.woocommerce-tabs
ul.tabs li::before,
.single-product
div.product
.woocommerce-tabs
ul.tabs li::after {
    display: none;
}

.single-product
div.product
.woocommerce-tabs
ul.tabs li {
    margin: 0;
    padding: 0;

    border: 0;
    border-radius: 0;

    background: transparent;
}

.single-product
div.product
.woocommerce-tabs
ul.tabs li a {
    padding: 15px 12px;

    color: var(--th-muted);

    font-size: 15px;
    font-weight: 700;
}

.single-product
div.product
.woocommerce-tabs
ul.tabs li.active a {
    color: var(--th-blue);
}

.single-product
div.product
.woocommerce-tabs
.panel {
    margin: 0;
    padding: 28px;

    color: var(--th-text);

    font-size: 15px;
    line-height: 2;
}

.single-product
div.product
.woocommerce-tabs
.panel h2:first-child {
    margin-top: 0;

    font-size: 22px;
}


/* =========================================================
   REVIEWS
   ========================================================= */

.single-product #reviews {
    width: 100%;
}

.single-product #reviews #comments {
    margin-bottom: 28px;
}

.single-product #reviews #comments > h2 {
    margin: 0 0 18px;

    color: var(--th-text);

    font-size: 20px;
}

.single-product #reviews .woocommerce-noreviews {
    margin: 0 0 22px;

    color: var(--th-muted);

    font-size: 14px;
}


/* Existing reviews */

.single-product #reviews .commentlist {
    margin: 0;
    padding: 0;

    list-style: none;
}

.single-product #reviews .commentlist li {
    margin: 0 0 12px;
}

.single-product #reviews .comment_container {
    display: grid;
    grid-template-columns: 44px 1fr;
    gap: 13px;

    padding: 17px;

    border: 1px solid var(--th-border);
    border-radius: 12px;

    background: #fff;
}

.single-product #reviews .comment_container .avatar {
    position: static;

    width: 44px;
    height: 44px;

    margin: 0;
    padding: 0;

    border: 0;
    border-radius: 50%;
}

.single-product #reviews .comment-text {
    margin: 0;
    padding: 0;

    border: 0;
}

.single-product #reviews .meta {
    margin: 0 0 7px;

    color: var(--th-muted);

    font-size: 14px;
}

.single-product #reviews .description {
    color: var(--th-text);

    font-size: 14px;
    line-height: 1.85;
}


/* Rating shown on existing review */

.single-product #reviews .star-rating {
    width: auto;
    height: auto;

    margin: 0 0 7px;

    float: none;

    color: #f5a623;

    font-size: 15px;
    line-height: 1;
}


/* Review form */

.single-product #review_form_wrapper {
    padding: 22px;

    border: 1px solid var(--th-border);
    border-radius: 13px;

    background: #f8fafc;
}

.single-product #review_form .comment-reply-title {
    display: block;

    margin-bottom: 16px;

    color: var(--th-text);

    font-size: 18px;
    font-weight: 800;
}

.single-product #review_form .comment-form-rating {
    margin: 0 0 18px;
}

.single-product #review_form .comment-form-rating > label {
    display: block;

    margin-bottom: 7px;

    color: var(--th-text);

    font-size: 14px;
    font-weight: 700;
}


/* Interactive stars */

.single-product #review_form p.stars {
    margin: 0;
}

.single-product #review_form p.stars span {
    display: inline-flex;
    flex-direction: row-reverse;
    justify-content: flex-end;

    gap: 3px;
}

.single-product #review_form p.stars a {
    position: relative;

    width: 28px;
    height: 28px;

    display: block;

    overflow: hidden;

    color: transparent;

    font-size: 0;
    line-height: 28px;

    text-decoration: none;
}

.single-product #review_form p.stars a::before {
    content: "☆";

    position: absolute;
    inset: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    color: #d0d5dd;

    font-size: 25px;
    line-height: 1;

    transition:
        color .15s ease,
        transform .15s ease;
}

.single-product #review_form p.stars a:hover::before,
.single-product #review_form p.stars a:hover ~ a::before {
    content: "★";

    color: #f5a623;

    transform: scale(1.07);
}

.single-product #review_form p.stars.selected a::before {
    content: "★";

    color: #f5a623;
}


/* Form fields */

.single-product #review_form .comment-form-comment label,
.single-product #review_form .comment-form-author label,
.single-product #review_form .comment-form-email label {
    display: block;

    margin-bottom: 6px;

    color: var(--th-text);

    font-size: 15px;
    font-weight: 700;
}

.single-product #review_form textarea {
    width: 100%;
    min-height: 125px;

    padding: 12px;

    border: 1px solid var(--th-border);
    border-radius: 9px;

    background: #fff;

    resize: vertical;
}

.single-product #review_form input[type="text"],
.single-product #review_form input[type="email"] {
    width: 100%;
    min-height: 43px;

    padding-inline: 11px;

    border: 1px solid var(--th-border);
    border-radius: 9px;

    background: #fff;
}

.single-product #review_form .comment-form-author,
.single-product #review_form .comment-form-email {
    width: calc(50% - 6px);

    display: inline-block;

    vertical-align: top;
}

.single-product #review_form .comment-form-email {
    margin-inline-start: 8px;
}

.single-product #review_form .form-submit {
    margin: 15px 0 0;
}

.single-product #review_form input[type="submit"] {
    min-height: 42px;

    padding: 0 22px;

    border: 0;
    border-radius: 9px;

    background: var(--th-blue);
    color: #fff;

    font-size: 15px;
    font-weight: 800;

    cursor: pointer;
}

.single-product #review_form input[type="submit"]:hover {
    background: var(--th-blue-hover);
}


@media (max-width: 767px) {

    .single-product #review_form_wrapper {
        padding: 16px;
    }

    .single-product #review_form .comment-form-author,
    .single-product #review_form .comment-form-email {
        width: 100%;

        display: block;
    }

    .single-product #review_form .comment-form-email {
        margin-inline-start: 0;
    }

    .single-product #reviews .comment_container {
        grid-template-columns: 35px 1fr;

        padding: 13px;
    }

    .single-product #reviews .comment_container .avatar {
        width: 35px;
        height: 35px;
    }

    .single-product #review_form p.stars a {
        width: 32px;
        height: 32px;
    }

    .single-product #review_form p.stars a::before {
        font-size: 27px;
    }
}


/* =========================================================
   RELATED
   ========================================================= */

.single-product
.related.products {
    margin-top: 42px;
}

.single-product
.related.products > h2 {
    margin:
        0 0
        20px;

    font-size: 25px;
}

.single-product
.related.products
ul.products {
    grid-template-columns:
        repeat(4,minmax(0,1fr));
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767px) {

    .single-product
    .th-woo-page {
        padding:
            18px 12px
            48px;
    }

    .single-product
    .th-product-hero {
        padding: 12px;

        display: flex;
        flex-direction: column;

        gap: 12px;

        border-radius: 17px;
    }

    .single-product
    .th-product-hero
    .woocommerce-product-gallery {
        min-height: 0;

        padding: 20px;

        border-radius: 13px;
    }

    .single-product
    .woocommerce-product-gallery
    .woocommerce-product-gallery__image
    img {
        max-height: 240px;
    }

    .single-product
    .th-product-hero
    .summary {
        min-height: 0;

        padding: 19px 11px 10px;
    }

    .single-product
    .product_title {
        font-size: 26px;
    }

    .single-product
    div.product
    p.price,
    .single-product
    div.product
    span.price {
        font-size: 24px;
    }

    .single-product
    form.cart {
        grid-template-columns:
            55px 1fr;

        gap: 7px;
    }

    .single-product
    form.cart
    .quantity,
    .single-product
    form.cart
    .quantity
    .qty {
        width: 55px;
    }

    .single-product
    form.cart
    .th-buy-now {
        grid-column: 1 / -1;
    }

    .single-product
    .thanyh-product-trust {
        grid-template-columns:
            repeat(3,minmax(0,1fr));
    }

    .single-product
    div.product
    .woocommerce-tabs {
        margin-top: 18px;

        border-radius: 12px;
    }

    .single-product
    div.product
    .woocommerce-tabs
    ul.tabs {
        padding: 0 6px;

        overflow-x: auto;

        white-space: nowrap;

        scrollbar-width: none;
    }

    .single-product
    div.product
    .woocommerce-tabs
    ul.tabs::-webkit-scrollbar {
        display: none;
    }

    .single-product
    div.product
    .woocommerce-tabs
    ul.tabs li {
        flex: 0 0 auto;
    }

    .single-product
    div.product
    .woocommerce-tabs
    ul.tabs li a {
        padding: 12px 9px;

        font-size: 14px;
    }

    .single-product
    div.product
    .woocommerce-tabs
    .panel {
        padding: 18px;

        font-size: 14px;
    }

    .single-product
    #review_form_wrapper {
        padding: 16px;
    }

    .single-product
    #reviews
    .comment_container {
        grid-template-columns:
            34px 1fr;

        padding: 13px;
    }

    .single-product
    #reviews
    .comment_container
    .avatar {
        width: 34px;
        height: 34px;
    }

    .single-product
    .related.products
    ul.products {
        grid-template-columns:
            repeat(2,minmax(0,1fr));
    }
}
