/*
 Theme Name:   Woodmart Child
 Description:  Woodmart Child Theme
 Author:       XTemos
 Author URI:   http://xtemos.com
 Template:     woodmart
 Version:      1.0.0
 Text Domain:  woodmart
*/

/* ============================================================
   DESIGN TOKENS — single source of truth
   Edit here; reference everywhere with var(--token-name)
   ============================================================ */
:root {
  /* Brand Colors */
  --color-primary:        #8f9779;   /* sage green — buttons, links, badges */
  --color-primary-dark:   #6b705c;   /* hover state */
  --color-primary-light:  #c5cbb4;   /* light tint, hover surfaces */
  --color-accent:         #d4a59a;   /* dusty rose — decorative */
  --color-swatch-active:  #8f9779;   /* active/focus ring on swatches — company green */

  /* Text */
  --color-heading:       #2a2a2a;
  --color-text:          #4c4c4c;
  --color-muted:         #767676;

  /* Surfaces */
  --color-white:         #ffffff;
  --color-surface:       #f7f7f7;
  --color-surface-2:     #f1f1f1;

  /* Borders */
  --color-border:        rgba(0,0,0,0.10);
  --color-border-strong: rgba(0,0,0,0.20);

  /* Feedback */
  --color-success-bg:    #e2f3e2;
  --color-success-text:  #2c6e2c;
  --color-warning-bg:    #fff4e5;
  --color-warning-text:  #8a5a2a;
  --color-error-bg:      #fde8e8;
  --color-error-text:    #b91c1c;

  /* Typography */
  --font-heading:  'Libre Caslon Text', Georgia, serif;
  --font-body:     'Hanken Grotesk', Arial, Helvetica, sans-serif;

  /* Type scale */
  --text-xs:    0.8125rem;  /* 13px */
  --text-sm:    0.875rem;   /* 14px */
  --text-base:  1rem;       /* 16px */
  --text-md:    1.125rem;   /* 18px */
  --text-lg:    1.375rem;   /* 22px — H3 */
  --text-xl:    1.75rem;    /* 28px — H2 */
  --text-2xl:   2.25rem;    /* 36px — H1 */
  --text-3xl:   3.5rem;     /* 56px — Display */

  /* Spacing (8px grid) */
  --space-1:  4px;
  --space-2:  8px;
  --space-3:  16px;
  --space-4:  24px;
  --space-5:  32px;
  --space-6:  48px;
  --space-7:  64px;
  --space-8:  96px;

  /* Layout */
  --container-width: 1700px;
  --content-width:   1200px;

  /* Components */
  --radius-base:       5px;
  --radius-pill:       100px;
  --shadow-card:       0 2px 8px rgba(0,0,0,0.06);
  --shadow-card-hover: 0 8px 24px rgba(0,0,0,0.12);
  --transition-base:   0.2s ease;
  --btn-height:        44px;
  --input-height:      42px;
}

/* ============================================================
   GLOBAL COMPONENTS
   ============================================================ */

.btn {
    border-radius: var(--radius-base);

    &.btn-style-link {
        border-radius: 0;
    }
}

nav[class*="-pagination"] li .page-numbers {
    border-radius: var(--radius-base);
}

/* ============================================================
   FORMS
   ============================================================ */

.newsletter-form p {
    margin-bottom: 0;
}

.newsletter-form .row {
    margin-bottom: 10px;
}

.newsletter-form .wpcf7-acceptance .wpcf7-list-item-label {
    font-size: var(--text-sm);
    font-style: italic;
}

.contact-form-quick > p {
    display: flex;
    justify-content: center;
}

.contact-form-quick .wpcf7-form-control-wrap input {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    border-color: var(--color-primary);
    border-right-style: none;
}

.contact-form-quick .wpcf7-submit {
    border-top-right-radius: 4px !important;
    border-bottom-right-radius: 4px !important;
}

#b2b-contact-form .wpcf7-acceptance {
    font-size: var(--text-xs);
}

/* ============================================================
   PRODUCT CARD
   ============================================================ */

.product-label.onsale {
    display: none;
}

.woocommerce-product-gallery .product-label {
    border-radius: 4px 0 0 4px;
}

.pb-product-wrapper {
    text-align: left;

    & .product-element-top {
        padding: 11px;

        & .product-image-link img {
            box-shadow: 4px 6px 6px rgba(0, 0, 0, .2);
        }
    }

    & .wd-entities-title {
        font-size: var(--text-base) !important;
        padding: 0 11px;

        & .product-card_subtitle {
            display: none;
            font-family: var(--font-body);
            color: #707072;
            text-overflow: ellipsis;
            white-space: nowrap;
            overflow: hidden;
        }
    }

    & .price {
        padding: 0 11px;

        & del .amount {
            font-weight: 400 !important;
        }
    }

    & .price,
    & .amount {
        color: #000;
        font-size: var(--text-base) !important;
        font-weight: bold;
    }
}

.wp-singular .price del {
    margin-left: 10px;
}

.pb-product-wrapper .price del {
    margin-left: 6px;
}

/* ============================================================
   PRODUCT DETAIL PAGE — GENERAL
   ============================================================ */

.single-product-page {
    margin-top: -50px;
}

body.single-product {
    & .product_title {
        text-wrap: balance;
    }
}

.woocommerce-variation {
    display: none !important;
}

/* ============================================================
   PRODUCT DETAIL PAGE — GALLERY
   ============================================================ */

.thumbs-position-left .wd-gallery-thumb .wd-carousel-item {
    height: auto !important;
}

.woocommerce-product-gallery.thumbs-position-left .wd-gallery-thumb .wd-carousel-inner {
    padding-right: 50px;
}

.woocommerce-product-gallery.thumbs-position-left .wd-gallery-thumb .wd-carousel-item {
    margin-bottom: 25px;
}

.woocommerce-product-gallery__wrapper .wd-carousel-item:first-of-type img.frame-black {
    border-style: solid;
    border-width: 30px;
    border-top-color: #000000cc;
    border-right-color: #000;
    border-bottom-color: #000000cc;
    border-left-color: #000;
}

.woocommerce-product-gallery__wrapper .wd-carousel-item:first-of-type img.frame-white {
    border-style: solid;
    border-width: 30px;
    border-top-color: #f5f5f5;
    border-right-color: #ebebeb;
    border-bottom-color: #f5f5f5;
    border-left-color: #ebebeb;
}

.woocommerce-product-gallery__wrapper .wd-carousel-item:first-of-type img.frame-wood {
    border-image: url(https://posterbazaar.eu/wp-content/uploads/2025/08/frame_wood_bg.jpg) 36 / 0px / 0px repeat stretch;
    border-style: solid;
    border-width: 0px;
}

/* ============================================================
   PRODUCT DETAIL PAGE — SIZE GUIDE
   ============================================================ */

.wd-sizeguide-btn {
    display: none !important;
}

table.variations th.label label {
    display: flex !important;
    align-items: baseline;
    flex-wrap: wrap;
    width: 100%;
}

.pb-sizeguide-link {
    margin-left: auto;
    font-size: var(--text-base);
    font-weight: 400 !important;
    color: var(--color-heading) !important;
    text-decoration: underline !important;
    text-underline-offset: 3px;

    &:hover {
        opacity: 0.7;
    }
}

/* ============================================================
   PRODUCT DETAIL PAGE — VARIATIONS & SWATCHES
   ============================================================ */

table.variations {
    margin-bottom: 25px !important;

    & label:after {
        content: "" !important;
    }

    & .label {
        min-width: 200px;
    }

    & .label > * {
        font-weight: 700 !important;
        font-size: var(--text-md);
        color: var(--color-heading);
    }
}

.wapf-field-label label {
    font-weight: 700;
    font-size: var(--text-md);
    color: var(--color-heading);
    margin-bottom: 0;
}

.wd-swatches-product {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px !important;
}

.wapf-field-container {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.wapf-image-swatch-wrapper {
    grid-template-columns: repeat(4, 1fr) !important;
    align-items: stretch;
    gap: 10px !important;
}

.wapf-swatch--image img {
    height: 80px;
    width: 100%;
    object-fit: contain;
    border-radius: 8px;
}

[class*="wd-swatches"].wd-text-style-3 .wd-swatch.wd-text .wd-swatch-text {
    font-size: var(--text-base) !important;
    padding: 15px 20px;
}

[class*="wd-swatches"].wd-bg-style-3 .wd-swatch.wd-bg.wd-active,
[class*="wd-swatches"].wd-bg-style-3 :is(.wd-swatch-wrap a:hover, .wd-swatch-wrap.wd-active) .wd-swatch.wd-bg,
[class*="wd-swatches"].wd-text-style-3 .wd-swatch.wd-text.wd-active,
[class*="wd-swatches"].wd-text-style-3 :is(.wd-swatch-wrap a:hover, .wd-swatch-wrap.wd-active) .wd-swatch.wd-text {
    --wd-swatch-brd-color: var(--color-swatch-active) !important;
    border-width: 2px;
    border-radius: 8px;
}

[class*="wd-swatches"].wd-bg-style-3 .wd-swatch.wd-bg,
[class*="wd-swatches"].wd-text-style-3 .wd-swatch.wd-text {
    border-width: 2px !important;
    border-radius: 8px;
    height: 100%;
}

.wapf-swatch--image.wapf-checked .apf-pick-box,
.wapf-swatch--image.wapf-checked.apf-pick-box {
    border-radius: 8px;
    border-color: var(--color-swatch-active);
}

.wapf-swatch--image .apf-pick-box,
.wapf-swatch--image.apf-pick-box {
    border-radius: 8px;
    border-color: rgba(0, 0, 0, 0.075);
}

.wapf-no-frame img {
    padding: 12px 6px 6px;
    box-sizing: border-box;
}

.wapf-no-frame-visual {
    width: 100%;
    height: 80px;
    background: #fff;
    border-radius: 8px;
    border: 1px solid rgba(0, 0, 0, 0.12);
    box-shadow: 2px 3px 8px rgba(0, 0, 0, 0.10);
    display: flex;
    align-items: center;
    justify-content: center;
}

.wd-reset-var,
.wd-attr-selected {
    display: none !important;
}

.wd-swatch-text .variation-price {
    border-top: 1px solid rgba(0, 0, 0, 0.075);
    padding-top: 5px;
    margin-top: 5px;
    color: rgba(42, 42, 42, .7);
}

.wd-swatch.wd-text .wd-swatch-text {
    font-weight: normal;
}

.elementor-widget-wd_single_product_add_to_cart {
    width: 100%;
}

.elementor-widget-wd_single_product_add_to_cart form {
    flex-direction: column;
}

/* ============================================================
   RESPONSIVE — PRODUCT DETAIL PAGE
   ============================================================ */

@media only screen and (max-width: 1024px) {
    table.variations th.label.cell {
        width: 100% !important;
        display: block !important;
    }
}

@media only screen and (max-width: 767px) {
    table.variations td.value.cell {
        width: 100% !important;
    }

    .wd-swatches-product {
        grid-template-columns: repeat(2, 1fr);
        width: 100%;
    }

    .wapf-image-swatch-wrapper {
        grid-template-columns: repeat(2, 1fr) !important;
        width: 100%;
    }

    .wapf-swatch--image img {
        height: 60px;
    }

    table.variations th.label label {
        flex-direction: column;
        align-items: flex-start;
    }

    .pb-sizeguide-link {
        margin-left: 0;
        margin-bottom: var(--space-2);
    }
}

/* ============================================================
   NAVIGATION
   ============================================================ */

.whb-main-header .wd-search-form {
    max-width: 290px;
}

.woodmart-nav-link .wd-nav-img {
    padding: 3px;
}

.woodmart-nav-link::after {
    display: none;
}

.wd-dropdown {
    left: 10px;
    margin-top: 10px;
}

#extra-menu-list-inline li {
    display: inline-block;
}

.wd-sub-menu li > a .menu-label {
    margin-top: -16px;
}

/* ============================================================
   LAYOUT UTILITIES
   ============================================================ */

.wd-inline-list {
    min-width: 100% !important;
}

.wd-inline-list ul.wd-list {
    flex-direction: row;
    justify-content: space-around;
}

.wd-grid-g {
    row-gap: 60px;
    column-gap: 20px;
}

.hidden-fields-container {
    display: none;
}

.text-balance {
    text-wrap: balance;
}

.text-balance_title {
    & .title {
        text-wrap: balance;
    }
}

.text-balance_text {
    & .title-after_title {
        text-wrap: balance;
    }
}

/* ============================================================
   CHECKOUT & PAYMENTS
   ============================================================ */

.woocommerce-order .payment-section .page-title-line,
.woocommerce-order .payment-section .section-divider {
    display: none;
}

.woocommerce-order .payment-section .pay-button {
    box-shadow: none;
    background-color: var(--color-primary);
    color: #fff;
    border-radius: 0;
}

.woocommerce-order .payment-section .pay-button:hover {
    background-color: var(--color-primary-dark);
}

input:checked + .payment-option {
    border-color: var(--color-primary) !important;
    border-radius: 6px;
}

input:checked + .payment-option .radio-mark {
    border-color: var(--color-primary) !important;
}

input:checked + .payment-option .radio-mark:before {
    background: var(--color-primary) !important;
}

/* InPost / EasyPack */
.easypack_show_geowidget {
    font-size: var(--text-base) !important;
    padding: 10px;
    max-width: 100%;
    width: 100%;
}

.easypack-parcel-machine-label {
    padding: 0;
}

#selected-parcel-machine {
    margin: 0;
    text-align: left;
}

.easypack-visible-point-header {
    background: none;
}

.easypack-parcel-machine-select {
    padding-left: 0;
}

.woocommerce-checkout-review-order-table .easypack-shipping-method-logo {
    display: none;
}

/* tpay BLIK */
.tpay-blik0 .tpay_blik-payment-form .top .spacer {
    width: 0;
}

.tpay-blik0 .tpay_blik-payment-form .top label {
    margin: 0 auto;
}

.tpay-blik0 .tpay_blik-payment-form.active .bottom {
    margin: 0 auto;
}

.tpay-blik0 .tpay_blik-payment-form {
    min-width: 280px;
}

/* ============================================================
   NEWSLETTER & POPUPS
   ============================================================ */

#popup-newsletter {
    max-width: var(--content-width);
    padding: 0;
}

#popup-newsletter .wpcf7-list-item-label {
    font-size: 12px;
}

/* ============================================================
   MISC
   ============================================================ */

.grecaptcha-badge {
    visibility: hidden;
}

.wd-social-icons.color-scheme-dark {
    --wd-social-color: rgba(0,0,0,.4) !important;
    --wd-social-brd-color: rgba(0,0,0,.4) !important;
}

.wd-social-icons .wd-label {
    font-weight: 300 !important;
}

.close-side-widget a {
    font-weight: 100 !important;
}

.scrollToTop {
    bottom: 40px !important;
}

.cookies-info-text {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: space-between;
    align-items: center;
}

.wd-header-search .wd-tools-text {
    display: none;
}

/* ============================================================
   pb_review_quotes — customer review carousel above footer
   ============================================================ */
.pb-review-quotes {
    background: transparent;
    padding: 0;
    margin: 0;
}
.pb-review-quotes__inner {
    max-width: 100%;
    margin: 0;
    padding: 0;
}
.pb-review-quotes__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 28px;
}
.pb-review-quotes__summary {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}
.pb-review-quotes__stars {
    color: var(--color-primary, #8f9779);
    font-size: 22px;
    line-height: 1;
    display: inline-flex;
    gap: 3px;
}
.pb-review-quotes__stars i { line-height: 1; }
.pb-review-quotes__score {
    font-family: var(--font-serif, 'Libre Caslon Text', Georgia, serif);
    font-size: 22px;
    font-weight: 700;
    color: var(--color-heading, #2a2a2a);
    line-height: 1;
}
.pb-review-quotes__meta {
    font-size: 15px;
    color: var(--color-muted, #767676);
}
.pb-review-quotes__row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}
.pb-review-quote {
    background: #f4ede2;
    border-radius: var(--radius, 5px);
    padding: 26px 28px;
    display: flex;
    flex-direction: column;
    position: relative;
    color: inherit;
}
.pb-review-quote::before {
    content: "\201C";
    position: absolute;
    top: 4px;
    right: 18px;
    font-family: var(--font-serif, 'Libre Caslon Text', Georgia, serif);
    font-size: 80px;
    line-height: 1;
    color: var(--color-primary, #8f9779);
    opacity: 0.18;
    pointer-events: none;
}
.pb-review-quote__stars {
    color: var(--color-primary, #8f9779);
    font-size: 16px;
    margin-bottom: 14px;
    line-height: 1;
    display: inline-flex;
    gap: 2px;
}
.pb-review-quote__stars i { line-height: 1; }
.pb-review-quote__text {
    font-size: 16px;
    color: var(--color-text, #4c4c4c);
    line-height: 1.6;
    margin: 0 0 18px;
    font-style: italic;
    flex: 1;
}
.pb-review-quote__author {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    flex-wrap: wrap;
}
.pb-review-quote__avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #b8694a;
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-serif, 'Libre Caslon Text', Georgia, serif);
    font-weight: 700;
    font-size: 15px;
    flex-shrink: 0;
}
.pb-review-quote__author-meta {
    display: flex;
    flex-direction: column;
    gap: 2px;
    line-height: 1.2;
}
.pb-review-quote__name {
    color: var(--color-heading, #2a2a2a);
    font-weight: 700;
    font-size: 15px;
}
.pb-review-quote__date {
    color: var(--color-muted, #767676);
    font-size: 12px;
    font-weight: 500;
}
.pb-review-quote__verified {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: var(--color-primary-dark, #6b705c);
    background: rgba(143,151,121,0.14);
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
}
.pb-review-quote__verified-icon {
    font-size: 14px;
    line-height: 1;
    flex-shrink: 0;
    color: var(--color-primary-dark, #6b705c);
}

@media (max-width: 1024px) {
    .pb-review-quotes__row {
        grid-template-columns: 1fr 1fr;
    }
    .pb-review-quotes__row > :nth-child(3) { display: none; }
}
@media (max-width: 640px) {
    .pb-review-quotes__row {
        grid-template-columns: 1fr;
    }
    .pb-review-quotes__row > :nth-child(3) { display: block; }
    .pb-review-quotes__score { font-size: 20px; }
    .pb-review-quotes__stars { font-size: 18px; }
    .pb-review-quotes__meta { font-size: 14px; }
}

/* ============================================================
   CusRev review form — brand color skin (no layout changes)
   ============================================================ */
.cr-form-wrapper .cr-form-required,
.cr-form-wrapper .cr-form-item-subheader > span {
    color: var(--color-primary, #8f9779);
}
.cr-form-wrapper .cr-form-submit {
    background: var(--color-primary, #8f9779);
    border-color: var(--color-primary, #8f9779);
    color: #fff;
    border-radius: var(--radius, 5px);
}
.cr-form-wrapper .cr-form-submit:hover,
.cr-form-wrapper .cr-form-submit:focus {
    background: var(--color-primary-dark, #6b705c);
    border-color: var(--color-primary-dark, #6b705c);
}
.cr-form-wrapper input[type="text"]:focus,
.cr-form-wrapper textarea:focus {
    border-color: var(--color-primary, #8f9779);
    outline: none;
}