/* =========================================================
   SINGLE PRODUCT
========================================================= */

.ldlt-single-product-page {

    --void: #07070c;
    --night: #10131f;
    --panel: #161a2c;
    --panel-2: #1b2036;

    --blood: #d6451f;
    --blood-deep: #8f2712;
    --ember: #d9a441;

    --parchment: #fbf7ee;
    --mist: #e4e5e6;

    --text: rgba(243,237,224,.72);
    --text-dim: rgba(243,237,224,.56);

    --line: rgba(243,237,224,.10);

    --display: 'Cinzel', serif;
    --body: 'Inter', sans-serif;
    --mono: 'IBM Plex Mono', monospace;

    background: var(--void);
    color: var(--parchment);

    font-family: var(--body);

    overflow: hidden;
}

.ldlt-single-product-page *,
.ldlt-single-product-page *::before,
.ldlt-single-product-page *::after {
    box-sizing: border-box;
}

.ldlt-single-product-page a {
    text-decoration: none;
}

.single-product-container {
    width: min(1180px, calc(100% - 50px));
    margin: 0 auto;
}


/* =========================================================
   HERO
========================================================= */

.single-product-hero {

    min-height: 400px;

    position: relative;

    display: flex;

    align-items: center;

    justify-content: center;

    overflow: hidden;

   
}

.single-product-stars {

    position: absolute;

    inset: 0;

    opacity: .6;

    background-image:
        radial-gradient(
            circle,
            rgba(255,255,255,.8) 1px,
            transparent 1px
        ),
        radial-gradient(
            circle,
            rgba(255,255,255,.45) 1px,
            transparent 1px
        );

    background-size:
        180px 180px,
        280px 280px;
}

.single-product-hero::after {

    content: "";

    position: absolute;

    width: 380px;
    height: 380px;

    border-radius: 50%;
background-image: url("../theme/images/bloodmoon.png") !important;
background-size: cover !important;
background-position: center !important;
background-repeat: no-repeat !important;
  

    opacity: .8;
}

.single-product-hero-content {

    position: relative;

    z-index: 5;

    text-align: center;

    max-width: 850px;

    padding: 50px 20px;
}

.single-product-kicker,
.single-product-section-kicker {

    display: block;

    color: var(--ember);

    font-family: var(--mono);

    font-size: 10px;

    letter-spacing: 3px;

    text-transform: uppercase;
}

.single-product-kicker {
    margin-bottom: 20px;
}

.single-product-hero h1 {

    margin: 0;

    color: var(--parchment);

    font-family: var(--display);

   font-size: clamp(40px, 5vw, 60px);

    line-height: 1.05;
}

.single-product-hero-line {

    width: 90px;

    height: 2px;

    margin: 25px auto;

    background:
        linear-gradient(
            90deg,
            transparent,
            var(--blood),
            var(--ember),
            transparent
        );
}

.single-product-hero p {

    margin: 0;

    color: var(--text-dim);

    font-family: var(--mono);

    font-size: 9px;

    letter-spacing: 2px;
}


/* =========================================================
   ORBITS
========================================================= */

.single-product-orbit {

    position: absolute;

    border: 1px solid rgba(217,164,65,.11);

    border-radius: 50%;
}

.single-product-orbit.orbit-one {

    width: 650px;
    height: 650px;

    transform: rotate(35deg);
}

.single-product-orbit.orbit-two {

    width: 850px;
    height: 430px;

    transform: rotate(-25deg);
}


/* =========================================================
   PRODUCT SECTION
========================================================= */

.single-product-section {

    padding: 100px 0;

    background: var(--night);

    border-top: 1px solid var(--line);
}


/* =========================================================
   PRODUCT LAYOUT
========================================================= */

.single-product-layout {

    display: grid;

    grid-template-columns:
        minmax(0, 1.05fr)
        minmax(0, .95fr);

    gap: 70px;

    align-items: start;
}


/* =========================================================
   GALLERY
========================================================= */

.single-product-gallery {

    position: sticky;

    top: 100px;
}

.product-main-image {

    position: relative;

    /*aspect-ratio: 4 / 5;*/

    overflow: hidden;

    background:
        radial-gradient(
            circle,
            rgba(214,69,31,.10),
            transparent 55%
        ),
        var(--panel);

    border: 1px solid var(--line);
}

.product-main-image a {

    display: block;

    width: 100%;
    height: 100%;
}

.product-main-image img {

    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;

    transition: transform .7s ease;
}

.product-main-image:hover img {
    transform: scale(1.025);
}

.product-placeholder,
.product-placeholder img {

    width: 100%;
    height: 100%;
}

.product-placeholder img {
    object-fit: cover;
}


/* =========================================================
   THUMBNAILS
========================================================= */

.product-thumbnails {

    display: flex;

    flex-wrap: wrap;

    gap: 10px;

    margin-top: 15px;
}

.product-thumbnail {

    width: 75px;
    height: 90px;

    padding: 0;

    overflow: hidden;

    border: 1px solid var(--line);

    background: var(--panel);

    cursor: pointer;

    opacity: .65;

    transition: all .3s ease;
}

.product-thumbnail:hover,
.product-thumbnail.active {

    opacity: 1;

    border-color: var(--ember);
}

.product-thumbnail img {

    width: 100%;
    height: 100%;

    object-fit: cover;
}


/* =========================================================
   PRODUCT SUMMARY
========================================================= */

.single-product-summary {

    padding-top: 10px;
}

.single-product-category {

    display: inline-block;

    margin-bottom: 15px;

    color: var(--ember);

    font-family: var(--mono);

    font-size: 9px;

    letter-spacing: 2px;

    text-transform: uppercase;
}

.single-product-title {

    margin: 0;

    color: var(--parchment);

    font-family: var(--display);

    font-size: clamp(35px, 4vw, 55px);

    line-height: 1.1;
}

.single-product-sku {

    margin-top: 15px;

    color: var(--text-dim);

    font-family: var(--mono);

    font-size: 9px;

    letter-spacing: 1px;
}

.single-product-sku strong {
    color: var(--text);
}


/* =========================================================
   RATING
========================================================= */

.single-product-rating {

    display: flex;

    align-items: center;

    gap: 12px;

    margin-top: 20px;
}

.single-product-rating .star-rating {

    margin: 0;

    color: var(--ember);
}

.single-product-rating span {

    color: var(--text-dim);

    font-size: 10px;
}


/* =========================================================
   PRICE
========================================================= */

.single-product-price {

    margin-top: 25px;

    color: var(--ember);

    font-family: var(--display);

    font-size: 32px;
}

.single-product-price del {

    color: var(--text-dim);

    font-size: 18px;
}

.single-product-price ins {

    text-decoration: none;
}


/* =========================================================
   DESCRIPTION
========================================================= */

.single-product-short-description {

    margin-top: 25px;

    color: var(--text);

    font-size: 14px;

    line-height: 1.8;
}

.single-product-divider {

    height: 1px;

    margin: 30px 0;

    background: var(--line);
}


/* =========================================================
   ADD TO CART
========================================================= */

.single-product-add-cart {

    color: var(--parchment);
}

.single-product-add-cart
.woocommerce div.product form.cart {

    margin: 0;
}

.single-product-add-cart
.woocommerce div.product form.cart .quantity {

    margin: 0 10px 0 0;
}

.single-product-add-cart
.quantity .qty {

    width: 75px;

    height: 52px;

    padding: 10px;

    border: 1px solid var(--line);

    border-radius: 0;

    background: var(--panel);

    color: var(--parchment);

    text-align: center;

    outline: none;
}

.single-product-add-cart
.single_add_to_cart_button {

    min-height: 52px;

    padding: 0 28px;

    border: 1px solid var(--blood);

    border-radius: 0;

    background: var(--blood);

    color: white;

    font-family: var(--mono);

    font-size: 9px;

    letter-spacing: 1.5px;

    text-transform: uppercase;

    transition: all .3s ease;
}

.single-product-add-cart
.single_add_to_cart_button:hover {

    background: var(--ember);

    border-color: var(--ember);

    color: var(--void);
}


/* =========================================================
   VARIABLE PRODUCT
========================================================= */

.single-product-add-cart
.variations {

    width: 100%;

    margin-bottom: 20px;
}

.single-product-add-cart
.variations td {

    padding: 8px 0;

    border: 0;
}

.single-product-add-cart
.variations label {

    color: var(--text);

    font-family: var(--mono);

    font-size: 9px;

    letter-spacing: 1px;

    text-transform: uppercase;
}

.single-product-add-cart
.variations select {

    min-height: 45px;

    padding: 10px 15px;

    border: 1px solid var(--line);

    border-radius: 0;

    background: var(--panel);

    color: var(--parchment);
}


/* =========================================================
   META
========================================================= */

.single-product-meta {

    margin-top: 35px;

    border-top: 1px solid var(--line);
}

.product-meta-row {

    display: flex;

    justify-content: space-between;

    gap: 20px;

    padding: 14px 0;

    border-bottom: 1px solid var(--line);

    color: var(--text-dim);

    font-size: 11px;
}

.product-meta-row span {

    font-family: var(--mono);

    font-size: 8px;

    letter-spacing: 1.5px;
}

.product-meta-row strong {

    color: var(--parchment);

    font-weight: 500;
}


/* =========================================================
   TRUST
========================================================= */

.single-product-trust {

    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 10px;

    margin-top: 25px;
}

.trust-item {

    display: flex;

    gap: 12px;

    padding: 15px;

    border: 1px solid var(--line);

    background: rgba(255,255,255,.015);
}

.trust-item > span {

    color: var(--ember);

    font-size: 16px;
}

.trust-item strong {

    display: block;

    color: var(--parchment);

    font-family: var(--mono);

    font-size: 7px;

    letter-spacing: 1px;
}

.trust-item small {

    display: block;

    margin-top: 5px;

    color: var(--text-dim);

    font-size: 8px;

    line-height: 1.5;
}


/* =========================================================
   PRODUCT DESCRIPTION SECTION
========================================================= */

.product-description-section {

    margin-top: 110px;

    padding-top: 70px;

    border-top: 1px solid var(--line);
}

.product-description-heading {

    margin-bottom: 35px;
}

.product-description-heading h2 {

    margin: 10px 0 0;

    color: var(--parchment);

    font-family: var(--display);

    font-size: 40px;
}

.product-description-content {

    max-width: 850px;

    color: var(--text);

    font-size: 14px;

    line-height: 1.9;
}

.product-description-content h2,
.product-description-content h3,
.product-description-content h4 {

    color: var(--parchment);

    font-family: var(--display);
}

.product-description-content strong {

    color: var(--parchment);
}

.product-description-content a {

    color: var(--ember);
}


/* =========================================================
   DIGITAL DOWNLOAD NOTICE
========================================================= */

.digital-format-notice {

    display: grid;

    grid-template-columns: 120px minmax(0,1fr);

    gap: 35px;

    align-items: center;

    /*margin-top: 80px;*/

    padding: 40px;

    border: 1px solid rgba(217,164,65,.22);

    background:
        linear-gradient(
            110deg,
            rgba(214,69,31,.10),
            rgba(217,164,65,.04)
        ),
        var(--panel);
}

.digital-notice-icon {

    width: 120px;

    height: 145px;

    display: flex;

    align-items: center;

    justify-content: center;

    position: relative;

    background: var(--void);

    border: 1px solid rgba(217,164,65,.3);

    box-shadow:
        0 15px 40px rgba(0,0,0,.25);
}

.digital-notice-icon::before {

    content: "";

    position: absolute;

    top: 0;

    right: 0;

    border-style: solid;

    border-width: 0 30px 30px 0;

    border-color:
        transparent
        var(--ember)
        transparent
        transparent;
}

.digital-notice-icon span {

    color: var(--ember);

    font-family: var(--mono);

    font-size: 16px;

    font-weight: 600;

    letter-spacing: 1px;
}

.digital-notice-content h2 {

    margin: 8px 0 20px;

    color: var(--parchment);

    font-family: var(--display);

    font-size: 32px;
}

.digital-notice-text {

    color: var(--text);

    font-size: 13px;

    line-height: 1.8;
}

.digital-notice-text p {

    margin: 0 0 12px;
}

.digital-notice-text strong {

    color: var(--parchment);
}

.digital-warning {

    margin-top: 20px !important;

    padding: 15px 18px;

    border-left: 3px solid var(--blood);

    background: rgba(214,69,31,.08);

    color: var(--parchment);
}


/* =========================================================
   FINAL CTA
========================================================= */

.single-product-final {

    padding: 120px 0;

    text-align: center;

    background:
        radial-gradient(
            circle at center,
            rgba(214,69,31,.12),
            transparent 38%
        ),
        var(--void);

    border-top: 1px solid var(--line);
}

.single-product-final h2 {

    margin: 15px 0;

    color: var(--parchment);

    font-family: var(--display);

    font-size: clamp(45px, 6vw, 75px);

    line-height: 1;
}

.single-product-final h2 em {

    color: var(--ember);

    font-style: normal;
}

.single-product-final p {

    margin: 20px 0 0;

    color: var(--text-dim);
}


/* =========================================================
   WOOCOMMERCE NOTICES
========================================================= */

.ldlt-single-product-page
.woocommerce-message,
.ldlt-single-product-page
.woocommerce-error,
.ldlt-single-product-page
.woocommerce-info {

    padding: 15px 20px;

    background: var(--panel);

    border: 1px solid var(--line);

    color: var(--parchment);
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 991px) {

    .single-product-layout {

        grid-template-columns: 1fr;

        gap: 50px;
    }

    .single-product-gallery {

        position: static;

        max-width: 700px;

        width: 100%;

        margin: 0 auto;
    }

}


@media (max-width: 767px) {

    .single-product-container {

        width: calc(100% - 30px);
    }

    .single-product-hero {

        min-height: 380px;
    }

    .single-product-hero h1 {

        font-size: 43px;
    }

    .single-product-section {

        padding: 65px 0;
    }

    .single-product-title {

        font-size: 36px;
    }

    .single-product-trust {

        grid-template-columns: 1fr;
    }

    .digital-format-notice {

        grid-template-columns: 1fr;

        padding: 28px;
    }

    .digital-notice-icon {

        width: 90px;

        height: 110px;
    }

    .product-description-section {

        margin-top: 70px;

        padding-top: 50px;
    }

}


@media (max-width: 480px) {

    .single-product-hero h1 {

        font-size: 36px;
    }

    .single-product-summary {

        padding-top: 0;
    }

    .single-product-price {

        font-size: 28px;
    }

    .single-product-add-cart
    .woocommerce div.product form.cart {

        display: block;
    }

    .single-product-add-cart
    .woocommerce div.product form.cart .quantity {

        margin: 0 0 12px;
    }

    .single-product-add-cart
    .quantity .qty {

        width: 100%;

        height: 50px;
    }

    .single-product-add-cart
    .single_add_to_cart_button {

        width: 100%;
    }

    .digital-format-notice {

        padding: 22px;
    }

    .digital-notice-content h2 {

        font-size: 27px;
    }

}
/* =========================================
   CUSTOM SINGLE PRODUCT CART
========================================= */

.single-product-add-cart .custom-single-cart {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin: 0 !important;
}


/* =========================================
   QUANTITY
========================================= */

.single-product-add-cart .custom-quantity {
    position: relative !important;
    display: flex !important;
    align-items: center !important;

    width: 112px !important;
    height: 52px !important;

    margin: 0 !important;
}


/* WooCommerce quantity wrapper */

.single-product-add-cart .custom-quantity .quantity {
    width: 100% !important;
    height: 52px !important;

    margin: 0 !important;
}


/* Input */

.single-product-add-cart .custom-quantity .qty {
    width: 100% !important;
    height: 52px !important;

    margin: 0 !important;
    padding: 0 35px !important;

    text-align: center !important;

    background: #171a29 !important;
    color: #ffffff !important;

    border: 1px solid #303447 !important;
    border-radius: 0 !important;

    font-size: 15px !important;
    font-weight: 600 !important;

    outline: none !important;

    -moz-appearance: textfield !important;
}


/* Remove Chrome number arrows */

.single-product-add-cart .custom-quantity .qty::-webkit-inner-spin-button,
.single-product-add-cart .custom-quantity .qty::-webkit-outer-spin-button {
    -webkit-appearance: none !important;
    margin: 0 !important;
}


/* =========================================
   MINUS / PLUS
========================================= */

.single-product-add-cart .quantity-minus,
.single-product-add-cart .quantity-plus {

    position: absolute !important;

    top: 0 !important;

    width: 35px !important;
    height: 52px !important;

    padding: 0 !important;
    margin: 0 !important;

    border: 0 !important;

    background: transparent !important;

    color: #ffffff !important;

    font-size: 20px !important;
    font-weight: 500 !important;

    line-height: 52px !important;

    text-align: center !important;

    cursor: pointer !important;

    z-index: 10 !important;

    transition: 0.2s ease !important;
}


.single-product-add-cart .quantity-minus {
    left: 0 !important;
}


.single-product-add-cart .quantity-plus {
    right: 0 !important;
}


.single-product-add-cart .quantity-minus:hover,
.single-product-add-cart .quantity-plus:hover {
    color: #e3412a !important;
}


/* =========================================
   ADD TO CART
========================================= */

.single-product-add-cart .single_add_to_cart_button {

    height: 52px !important;

    min-width: 152px !important;

    margin: 0 !important;
    padding: 0 28px !important;

    border: none !important;
    border-radius: 0 !important;

    background: #e3412a !important;
    color: #ffffff !important;

    font-size: 11px !important;
    font-weight: 700 !important;

    letter-spacing: 2px !important;
    text-transform: uppercase !important;

    cursor: pointer !important;

    transition: 0.3s ease !important;
}


.single-product-add-cart .single_add_to_cart_button:hover {
    background: #c92f1e !important;
}


/* =========================================
   MOBILE
========================================= */

@media (max-width: 575px) {

    .single-product-add-cart .custom-single-cart {
        width: 100% !important;
    }

    .single-product-add-cart .custom-quantity {
        width: 105px !important;
        height: 50px !important;
    }

    .single-product-add-cart .custom-quantity .quantity,
    .single-product-add-cart .custom-quantity .qty {
        height: 50px !important;
    }

    .single-product-add-cart .quantity-minus,
    .single-product-add-cart .quantity-plus {
        height: 50px !important;
        line-height: 50px !important;
    }

    .single-product-add-cart .single_add_to_cart_button {
        flex: 1 !important;
        min-width: 0 !important;
        height: 50px !important;
    }
}