/**
 * Theme Name: Blocksy Child
 * Description: Blocksy Child theme
 * Author: Creative Themes
 * Template: blocksy
 * Text Domain: blocksy
 */

/* =========================================================
   1. Variables
   ========================================================= */
:root {
    --border-radius-custom: 9px;
}

/* =========================================================
   2. Animations & Loaders
   ========================================================= */
@keyframes skeleton-loading {
    0% { background-position: -200% 0; }
    100% { background-position: 200% 0; }
}

/* =========================================================
   3. Utilities / Helpers
   ========================================================= */
.flex { display: flex; }
.gap-5px { gap: 5px; }
.justify-between { justify-content: space-between; }

.bordered {
    border-radius: var(--border-radius-custom);
}

.force-border {
    border-radius: var(--border-radius-custom) !important;
    overflow: hidden;
}

.bordered-radius {
    border-radius: var(--border-radius-custom);
}

/* =========================================================
   4. Global UI
   ========================================================= */
.button,
.ct-button,
.added_to_cart,
.ct-button-ghost,
[type=submit],
.wp-element-button,
.wp-block-button__link,
button.regform-button,
button[class*=ajax],
.woocommerce button.button,
.woocommerce-message .showlogin,
.woocommerce-message .restore-item,
.forminator-ui[data-design=none] .forminator-button,
.fluentform .ff-el-group button.ff-btn,
.ct-button-secondary-text {
    text-transform: uppercase;
}

/* =========================================================
   5. Header / Navigation
   ========================================================= */
nav[data-menu="type-1"] > ul > li:first-child > a {
    padding-inline-start: 0;
}

nav[data-menu="type-1"] > ul > li:last-child > a {
    padding-inline-end: 0;
}

.custom-mini-cart-count {
    position: absolute;
    top: 31px;
    left: 150px;
    font-size: 14px;
}

/* =========================================================
   6. WooCommerce – Product Page
   ========================================================= */
.product .entry-summary .entry-title {
    margin-bottom: 0!important;
}

.product p.price {
    margin-bottom: 0;
}

.woocommerce-product-rating {
    float: right;
    margin-top: 11px;
}

.ct-product-add-to-cart {
    padding-top: 10px;
    margin-bottom: 20px ! Important;
}

.woocommerce-tabs > .tabs {
    display: none !important;
}

.woocommerce-Tabs-panel {
    display: block !important;
}

.product-template-default .hero-section[data-type=type-1] {
    margin-bottom: 20px;
}

.product-template-default [data-vertical-spacing*=top] {
    padding-top: 0;
}

.woocommerce-product-gallery .ct-media-container {
    border-radius: var(--border-radius-custom);
}

.ct-product-additional-info {
    margin-top: 20px;
}

.ct-product-additional-info ul {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.ct-product-additional-info ul li .ct-label {
    font-size: 14px;
}

/* =========================================================
   7. WooCommerce – Cards / Shop
   ========================================================= */
.ct-woo-card-actions {
    width: 100%;
}

.ct-woo-card-actions .button {
    width: 100%;
    padding: 14px;
}

[data-products] .product>* {
    margin-bottom: var(--product-element-spacing, 13px);
}

[data-products] .product figure {
    --product-element-spacing: 8px;
}

[data-products] .product .ct-woo-card-rating {
    --product-element-spacing: 0px;
}

.add_to_cart_button .price {
    margin-left: 10px;
}

span.onsale {
    border-radius: var(--border-radius-custom);
}

/* =========================================================
   8. Product Accordion (Blocksy)
   ========================================================= */
.ct-product-accordion {
    overflow: hidden;
}

.ct-product-accordion-title {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0px 20px 0px;
    cursor: pointer;
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 0;
}

.ct-product-accordion-title.active {
    margin-bottom: 10px;
}

.accordion-icon {
    position: relative;
    width: 20px;
    height: 20px;
    margin-left: 15px;
    transition: transform 0.3s ease;
}

.accordion-icon::before,
.accordion-icon::after {
    content: '';
    position: absolute;
    width: 12px;
    height: 2px;
    background: #666;
    top: 50%;
    left: 50%;
    transform-origin: center;
    transition: all 0.3s ease;
}

.accordion-icon::after {
    transform: translate(0%, 0px) rotate(90deg);
}

.ct-product-accordion-title.active .accordion-icon::before {
    transform: translate(-50%, -50%) rotate(45deg);
}

.ct-product-accordion-title.active .accordion-icon::after {
    transform: translate(-50%, -50%) rotate(-45deg);
}

.ct-product-accordion-content {
    max-height: 0;
    padding: 0 20px;
    margin-bottom: 0px;
    overflow: hidden;
    transition: max-height 0.3s ease, padding 0.3s ease;
}

.ct-product-accordion-content.active {
    margin-bottom: 10px;
}

.ct-product-accordion-content p {
    margin: 0;
    line-height: 1.6;
    color: #666;
}

.ct-product-accordion-content ul {
    margin: 0;
    padding: 0;
}

.ct-product-accordion-content ul li {
    list-style: none;
    margin: 0;
}

/* =========================================================
   9. Rewards / Points (WPS)
   ========================================================= */
.custom-points-message {
    border: 1px dashed var(--theme-border-color);
    padding: 20px;
    font-size: 16px;
}

.wps_wpr_product_point,
.wps_wpr_apply_custom_points p {
    display: none !important;
}

.custom-points-block {
    border: 1px dashed var(--theme-border-color);
    padding: 15px 20px;
    display: flex;
    gap: 20px;
}

.custom-points-block p {
    margin-bottom: 10px;
}

.custom-points-block .fluentform .ff-el-group {
    margin-bottom: 0;
}

span.custom-points-icon {
    font-size: 16px;
}

/* Cart points */
.shop_table.cart .wps_wpr_apply_custom_points #wps_cart_points {
    width: 220px;
    height: 30px !important;
    padding: 5px 17px;
    border-radius: 30px;
    background-color: #f2f2f2;
    border: 0;
    font-size: 16px;
}

button#wps_cart_points_apply {
    font-size: 14px;
    padding: var(--theme-button-padding);
}

/* =========================================================
   10. Swiper Skeleton Loader
   ========================================================= */
.swiper:not(.swiper-initialized) .swiper-wrapper {
    display: flex;
    justify-content: center;
    gap: 10px;
}

.swiper:not(.swiper-initialized) .swiper-slide {
    width: calc(100% / 5);
    border-radius: var(--border-radius-custom);
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    animation: skeleton-loading 1.5s infinite;
}

.swiper:not(.swiper-initialized) video,
.swiper:not(.swiper-initialized) .vps-product-overlay {
    display: none;
}

/* =========================================================
   11. VPS Product Overlay
   ========================================================= */
.vps-product-overlay {
    bottom: 5px!important;
    left: 5px!important;
    right: 5px!important;
    background: #fff!important;
    padding: 10px!important;
    border-radius: var(--border-radius-custom)!important;
}

.vps-product-name {
    color: #0e252c!important;
}

.vps-product-link {
    /* background: #fff!important;
    color: #0e252c!important; */
    border: 1px solid #0e252c;
    width: 40px!important;
    height: 30px;
    border-radius: 6px!important;
}

/* =========================================================
   12. Hover / Image Effects (GS / GSPB)
   ========================================================= */
.gspb_image {
    border-radius: var(--border-radius-custom);
    overflow: hidden;
}

.quote-on-hover {
    opacity: 0;
    transition: opacity 0.4s ease-in-out;
    position: relative;
    z-index: 1;
}

.quote-on-hover:hover {
    opacity: 1;
}

.quote-on-hover::before,
.image-on-hover .gspb_image::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: var(--border-radius-custom);
    background-color: #333;
    opacity: 0;
    transition: opacity 0.4s ease-in-out;
}

.quote-on-hover:hover::before,
.image-on-hover:hover .gspb_image::before {
    opacity: 0.4;
}

#gspb_image-id-gsbp-379e2010-00ab img {
    transition: all .5s ease;
}

.gspb-hoverparent-75:hover 
#gspb_image-id-gsbp-379e2010-00ab img {
    transform: scale(1.1);
}

/* =========================================================
   13. Newsletter & Forms
   ========================================================= */
.ct-newsletter-subscribe-block input,
.ct-newsletter-subscribe-block button {
    border-radius: 30px;
}

.ct-newsletter-subscribe-form button {
    background-color: var(--theme-palette-color-4, #3F3F3E);
    color: #fff !important;
}

/* =========================================================
   14. Other Styles
   ========================================================= */
.custom-points-block{
    border:none;
    border-radius: var(--border-radius-custom);
    background-color:rgba(0,0,0,0.02);
    padding:10px 20px;
}

.custom-points-block p, .custom-points-content{
    font-size:12px;
    margin-bottom:5px;
}

.custom-points-content{
    margin:0;
    display:flex;
    align-items:center;
}

.custom-points-block form#fluentform_2 fieldset {
    display: flex;
    gap: 10px;
    align-items: end;
}

.custom-points-block [type=email] {
    font-size: 12px ! IMPORTANT;
    height: 34px !important;
}

.custom-points-block form#fluentform_2 button {
    padding: 10px 20px;
    font-size: 12px;
}

.ct-product-additional-info ul li .ct-label {
    font-size: 12px;
}

.stk-block, .stk-container, .stk-container-padding {
    min-height: auto;
}

span.estimated-value {
    font-size: 12px;
    color: #999;
    font-weight: 400;
}

span.estimated-value b {
    font-weight: 700;
}

.remove_from_cart_button svg {
    width: 20px;
}

.woocommerce-mini-cart__buttons .button.wc-forward {
  --gridColumn: span 2!important;
    padding: 20px 0;
}

.cart_item .variation-Points, .mini_cart_item .variation-Points, .added_to_cart {
    display: none;
}

table.shop_table a svg {
    color: var(--theme-text-color);
}

.custom-points-block.after-free-shipping {
    margin-top: 30px;
}

.vps-swiper .swiper-button-next, .vps-swiper .swiper-button-prev {
    background: transparent!important;
    width: 30px!important;
  height: 30px!important;
}

.swiper-button-next svg, .swiper-button-prev svg {
        fill: #3f3f3e!important;
        color: #3f3f3e;
}

.woocommerce-checkout-payment .place-order button[type=submit] {
    padding: 20px;
}

.woocommerce-checkout-review-order .ct-payment-methods {
    margin-top: 30px;
}

.ct-order-review-modules, .ct-order-review-modules>*:not(:last-child) {
    padding-bottom: 0em;
}

table.shop_table{
    margin-bottom: 0;
}

.ct-payment-methods svg.ct-icon {
    width: 50px;
    height: 50px;
}

.ct-order-review {
    border-radius: var(--border-radius-custom);
}

.vps-slider-container .swiper-button-prev:after, .vps-slider-container .swiper-button-next:after {
    display:none;
}

.product>.woocommerce-tabs {
    padding-top: 10px;
}

.ct-footer [data-row] > div.ct-container {
    padding-block: 20px;
}

.ct-footer [data-row=middle] > div.ct-container {
    padding-top: 50px;
}

.ct-contact-info-block  [data-icons-type*=":"] .ct-icon-container {
    height: 15px
}

[data-vertical-spacing*=top] {
    padding-top: 0;
}

.tax-product_cat .site-main {
    padding-top: 30px;
}

.products .product img {
    transition: all 0.3s ease-in-out;
}

.ingredient .wp-block-post-excerpt__more-text {
    display:none;
}

.ct-breadcrumbs {
  --theme-font-size: 11px;
    margin-top:20px
}

.woocommerce-mini-cart__buttons, .ct-suggested-products--mini-cart {
    border-top: none!important;
}

.woocommerce-mini-cart__buttons .button.wc-forward{
    text-transform:uppercase!important;
}

.ct-suggested-products--checkout a  .price{
    display:none;
}

