/* =============================================================================
   ss-custom.css — Smarter Surfaces Child Theme
   
   IMPORTANT: This file contains ONLY styles that are NOT injected by ss-custom.js.
   The following components inject their own styles at runtime via injectStyles()
   and are intentionally excluded from this file to avoid double-parsing:
     - #ss-sticky-bar       (injected by Sticky Bar module)
     - #ss-calc-drawer      (injected by Calculator module)
     - #ss-calc-overlay     (injected by Calculator module)
     - #ss-contact-bubble   (injected by Contact Bubble module)
     - #ss-cart-popup       (injected by Cart Hover module)
     - #ss-drawer           (injected by Mobile Drawer module)
     - #ss-drawer-overlay   (injected by Mobile Drawer module)
     - #ss-mega-wrap        (injected by Mega Menu module)
     - #ss-tab-bar          (injected by Mega Menu module)
     - #ss-mega-grid        (injected by Mega Menu module)
     - .ss-search-tabs      (injected by Search module)
     - .ss-suggestions      (injected by Search module)
   ============================================================================= */


/* =============================================================================
   1. FOUC PREVENTION
   Hides elements that JS controls before JS runs, preventing flash of
   unstyled/wrong-position content. Kept here as the permanent rule —
   the inline <head> shield handles the very first paint, this handles
   subsequent navigations and cached page loads.
   ============================================================================= */

/* Hide JS-controlled menus before mega menu JS initialises */
#menu-item-2223640 ul.sub-menu,
#menu-item-2223657 ul.sub-menu,
#menu-item-2223667 ul.sub-menu,
#menu-item-2223688 ul.sub-menu {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

/* Hide JS-injected UI elements before JS creates and positions them */
#ss-sticky-bar,
#ss-calc-overlay,
#ss-calc-drawer,
#ss-contact-bubble,
#ss-drawer,
#ss-drawer-overlay {
    display: none !important;
}


/* Prevent sub-menus flashing as bullet lists on desktop before mega menu takes over */
@media (min-width: 981px) {
    #menu-item-2223640 > ul.sub-menu,
    #menu-item-2223657 > ul.sub-menu,
    #menu-item-2223667 > ul.sub-menu,
    #menu-item-2223688 > ul.sub-menu {
        display: none !important;
        visibility: hidden !important;
    }
}

/* Prevent mobile menus flashing as plain lists before drawer takes over */
@media (max-width: 980px) {
    #mobile_menu1,
    #mobile_menu2,
    .et_mobile_menu {
        display: none !important;
        visibility: hidden !important;
    }
}


/* =============================================================================
   2. GLOBAL LAYOUT FIXES
   ============================================================================= */

/* Prevent horizontal scroll on all pages */
body:not(.et-fb) #page-container {
    overflow-x: hidden !important;
}

/* Consistent top padding for main content */
body:not(.et-tb) #main-content .container,
body:not(.et-tb-has-header) #main-content .container {
    padding-top: 30px;
}

/* Reserve space for top bar to prevent CLS */
.et_pb_section:first-child,
#top-bar {
    min-height: 45px;
}

/* Fix overflow on before/after image sliders */
.et_pb_before_after_image_slider,
.et_pb_before_after_image_slider_handle {
    overflow: visible !important;
}

/* Fix LiteSpeed lazy-loaded iframes collapsing to 0 height */
iframe.entered.litespeed-loaded {
    height: auto;
}


/* =============================================================================
   3. HEADER & NAVIGATION
   ============================================================================= */

/* Desktop nav: wider sub-menus, full-width items */
@media (min-width: 981px) {
    .nav li ul.sub-menu {
        width: 400px !important;
    }
    .nav li ul.sub-menu a,
    .nav li ul.sub-menu li {
        width: 100% !important;
        white-space: nowrap;
    }
}

/* Mobile nav: keep drawer hamburger z-index above Divi header */
@media (max-width: 980px) {
    #ss-mega-wrap,
    .et_pb_menu_0_tb_header .et-menu-nav,
    .et_pb_menu_0_tb_header .et_mobile_menu,
    .et_pb_menu_0_tb_header .mobile_nav.opened .et_mobile_menu {
        display: none !important;
    }
    .et_pb_menu_0_tb_header .mobile_nav.et_toggle_slide_active .et_mobile_menu {
        display: block !important;
    }
    #top-header,
    .et-fixed-header,
    .et_pb_menu_0_tb_header,
    .et_pb_row_0_tb_header,
    .et_pb_section_0_tb_header {
        z-index: 99990 !important;
    }
    /* Mobile menu sizing */
    .et_mobile_menu {
        overflow-x: hidden !important;
        max-width: 100vw !important;
        box-sizing: border-box !important;
        width: 100vw !important;
        left: 0 !important;
        right: 0 !important;
    }
    .et_mobile_menu li {
        position: relative !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }
    .et_mobile_menu .sub-menu {
        position: relative !important;
        left: 0 !important;
        right: auto !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        padding-left: 16px !important;
        background: #f9f9f9 !important;
        box-shadow: none !important;
    }
}

/* Mobile menu scroll for large product sub-menus */
#mobile_menu1 .menu-item-2223649 .sub-menu {
    max-height: 250px !important;
    overflow-y: auto !important;
    display: block;
    -webkit-overflow-scrolling: touch;
}

/* Header icon styling */
button.et_pb_menu__icon.et_pb_menu__search-button {
    color: #3a3a3a !important;
    background: #efefef;
    padding: 10px;
    border-radius: 10px;
}
a.et_pb_menu__icon.et_pb_menu__cart-button {
    background: #efffd1;
    padding: 10px;
    border-radius: 10px;
}

/* Prevent Divi menu wrap clipping sub-menus */
.et_pb_menu__wrap {
    transform: none !important;
    overflow: visible !important;
}
.et_pb_menu__wrap .mobile_menu_bar {
    transform: none !important;
}
.et_mobile_nav_menu {
    position: relative;
    z-index: 99999 !important;
    overflow: visible !important;
}
.et_mobile_nav_menu .et_mobile_menu {
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    width: 200px !important;
    background: #fff !important;
    z-index: 99999 !important;
    box-shadow: 0 4px 10px rgba(0,0,0,.15) !important;
}
.et_mobile_nav_menu .et_mobile_menu .sub-menu {
    display: none !important;
}
.et_mobile_nav_menu .mobile_nav.opened #mobile_menu1 {
    height: auto !important;
    overflow: visible !important;
}
.et_pb_menu__search-form {
    flex: 1;
    display: flex !important;
    align-items: center;
    border: none;
    margin: 0;
    padding: 0;
}
.et_pb_menu__close-search-button {
    display: none !important;
}


/* =============================================================================
   4. WOOCOMMERCE — PRODUCT PAGE
   ============================================================================= */

/* Variation price — hidden because we render price via #ss-qty-price-row clone instead */
/* Font size kept here as fallback in case clone is absent */
.woocommerce-variation-price {
    font-size: 22px;
    font-weight: 700;
}

/* Reset variations link */
a.reset_variations {
    color: #950e0e !important;
    font-size: 14px !important;
}

/* Gallery — reserve space, prevent CLS, no conflicting rules */
.woocommerce-product-gallery__wrapper {
    aspect-ratio: 1 / 1;
    width: 100%;
    overflow: hidden;
}

.woocommerce-product-gallery__wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Reserve space for thumbnails */
.flex-control-thumbs {
    min-height: 80px;
}
.flex-control-thumbs li {
    aspect-ratio: 1 / 1;
}

/* Hide variation meta elements we don't use */
.woocommerce-variation-availability,
.woocommerce-variation-description {
    display: none !important;
}
/* NOTE: .woocommerce-variation.single_variation is intentionally NOT overridden.
   WooCommerce controls its display to signal preselection state internally.
   Forcing display:contents breaks the found_variation event on page load. */

/* Quantity + price row */
#ss-qty-price-row {
    display: flex !important;
    align-items: center !important;
    gap: 14px !important;
    margin-bottom: 10px !important;
}
#ss-qty-price-row .ss-price-clone {
    display: block !important;
    margin: 0 !important;
}
#ss-qty-price-row .ss-price-clone .price,
#ss-qty-price-row .ss-price-clone .woocommerce-Price-amount {
    font-size: 22px !important;
    font-weight: 700 !important;
    color: #98ca3c !important;
    line-height: 1 !important;
}

/* Add to cart button row
   NOTE: flex layout is owned by wc-variation-enhancements.css.
   We only set button dimensions here to avoid conflicting with
   the inline price badge flex layout. */
.woocommerce-variation-add-to-cart .single_add_to_cart_button,
.variations_button .single_add_to_cart_button {
    flex: 0 0 100% !important;
    width: 100% !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    height: 48px !important;
    font-size: 15px !important;
}

/* Quantity input — original styles, native spinners */
.quantity input[type=number].qty {
    -moz-appearance: number-input !important;
    appearance: auto !important;
    width: 72px !important;
    height: 48px !important;
    text-align: center !important;
    border: 2px solid #e0e0e0 !important;
    border-radius: 6px !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    box-sizing: border-box !important;
    padding-right: 4px !important;
}
.quantity input[type=number].qty::-webkit-inner-spin-button,
.quantity input[type=number].qty::-webkit-outer-spin-button {
    opacity: 1 !important;
    -webkit-appearance: inner-spin-button !important;
    cursor: pointer !important;
    height: 48px !important;
}
/* minus/plus buttons removed — not used on this site */


/* =============================================================================
   5. WOOCOMMERCE — VARIATION SWATCHES
   ============================================================================= */

.woocommerce div.product form.cart .variations {
    border: 0;
    width: 100%;
    margin-bottom: 0 !important;
}

/* Variation swatch button list */
body ul.variable-items-wrapper {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    padding: 0 !important;
    list-style: none !important;
    margin: 0 0 2px !important;
}
body ul.variable-items-wrapper li.variable-item.button-variable-item {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    min-width: 100px !important;
    max-width: 220px !important;
    height: 48px !important;
    min-height: 48px !important;
    max-height: 48px !important;
    padding: 10px 18px !important;
    border: 2px solid #e0e0e0 !important;
    border-radius: 6px !important;
    background: #fff !important;
    cursor: pointer !important;
    transition: .2s !important;
    box-sizing: border-box !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    flex: 0 0 auto !important;
    overflow: hidden !important;
}
body ul.variable-items-wrapper li.variable-item.button-variable-item .variable-item-span {
    font-size: 15px !important;
    font-weight: 600 !important;
    color: #333 !important;
    text-decoration: none !important;
    line-height: 1.4 !important;
    text-align: center !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    max-width: 100% !important;
}
body ul.variable-items-wrapper li.variable-item.button-variable-item:hover {
    border-color: #98ca3c !important;
}
body ul.variable-items-wrapper li.variable-item.button-variable-item:hover .variable-item-span {
    color: #98ca3c !important;
}
body ul.variable-items-wrapper li.variable-item.button-variable-item.selected,
body ul.variable-items-wrapper li.variable-item.button-variable-item[aria-checked=true] {
    border-color: #98ca3c !important;
    box-shadow: 0 0 0 1px #333 !important;
}
body ul.variable-items-wrapper li.variable-item.button-variable-item.disabled {
    opacity: 1 !important;
    pointer-events: auto !important;
    cursor: pointer !important;
}
body ul.variable-items-wrapper li.variable-item.button-variable-item.disabled .variable-item-span {
    color: #333 !important;
    text-decoration: none !important;
}

/* Remove pseudo-elements injected by variation plugin */
body ul.variable-items-wrapper li.variable-item::before,
body ul.variable-items-wrapper li.variable-item::after,
body ul.variable-items-wrapper li.variable-item ::before,
body ul.variable-items-wrapper li.variable-item ::after {
    display: none !important;
    content: none !important;
}

.variable-item-contents {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    pointer-events: none !important;
    width: 100% !important;
}

/* Variation table layout overrides */
.variations table,
.variations tbody,
.variations tr {
    display: block !important;
    width: 100% !important;
}
.variations td.value,
.variations th.label {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
}
.variations th.label label {
    font-size: 14px !important;
    font-weight: 700 !important;
    color: #333 !important;
}
.variations th.label span.woo-selected-variation-item-name {
    display: none !important;
}

/* Remove table clearfix artifacts */
.variations .label::after,
.variations .value::after,
.variations td::after,
.variations tr::after,
.variations_form::after,
.woocommerce-variation-add-to-cart::after {
    display: none !important;
    content: none !important;
}

/* Hide default select + plugin extras */
.variations select,
.woo-variation-items-wrapper > span:last-child,
.woo-variation-items-wrapper > svg,
td.value::after,
td.value > svg {
    display: none !important;
}

/* Clean up variation table cell backgrounds */
.variations th.label,
table.variations th.label {
    background: 0 0 !important;
    border: none !important;
    vertical-align: top !important;
}
.variations td,
.variations td.value,
.variations th,
.variations tr,
table.variations td.value {
    background: 0 0 !important;
    border: none !important;
}

/* Spacing */
.variations {
    margin-bottom: 12px !important;
}
.variations tr:first-child th.label {
    padding-top: 0 !important;
}
.variations tr {
    margin: 0 !important;
    padding: 0 !important;
}
.variations th.label {
    margin: 0 0 4px !important;
    padding: 8px 0 0 !important;
}
.variations td.value {
    margin: 0 !important;
    padding: 0 !important;
}
.woocommerce-variation-add-to-cart {
    margin-top: 12px !important;
}
.woo-variation-items-wrapper {
    margin: 0 !important;
    padding: 0 !important;
}
#left-area ul.variable-items-wrapper {
    padding: 0 !important;
    margin: 0 !important;
}

/* Hide plugin-injected selected label (we show it via custom JS) */
span.woo-selected-variation-item-name,
table.variations th.label span.woo-selected-variation-item-name,
th.label span.woo-selected-variation-item-name {
    display: none !important;
    visibility: hidden !important;
    position: absolute !important;
    left: -9999px !important;
}


/* =============================================================================
   6. WOOCOMMERCE — CROSS-SELLS
   ============================================================================= */

.cross-sells ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 20px !important;
    float: none !important;
}
.cross-sells ul.products li.product {
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
.cross-sells ul.products::before,
.cross-sells ul.products::after {
    display: none !important;
    content: none !important;
}

@media (max-width: 768px) {
    .cross-sells ul.products {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}


/* =============================================================================
   7. WOOCOMMERCE — CONTENT TABLE FIX
   ============================================================================= */

#content-area table td,
#content-area table th {
    padding: 0;
    max-width: 100%;
}


/* =============================================================================
   8. PRODUCT IMAGE — Divi module fix
   ============================================================================= */

.et_pb_image_2 .et_pb_image_wrap img {
    height: auto !important;
    width: auto;
}


/* =============================================================================
   9. ADD TO CART BUTTON (custom SS style)
   ============================================================================= */

.ss-atc-btn {
    display: block !important;
    width: 100%;
    margin-top: 10px;
    padding: 10px 16px;
    background: #fff;
    color: #98ca3c !important;
    font-size: 15px;
    font-weight: 700;
    text-align: center;
    border-radius: 4px;
    cursor: pointer;
    text-decoration: none !important;
    transition: background .2s;
    box-sizing: border-box;
    border: 2px solid #98ca3c;
}
.ss-atc-btn:hover {
    background: #6aa82e !important;
}


/* =============================================================================
   10. JETFORMBUILDER — Form styles
   ============================================================================= */

.jet-form-builder__field {
    width: 100%;
    padding: 14px 18px !important;
    border: 1.5px solid #ddd !important;
    border-radius: 6px !important;
    font-size: 15px !important;
    color: #333 !important;
    background-color: #fff !important;
    transition: border-color .3s, box-shadow .3s !important;
    outline: 0 !important;
    margin-bottom: 0 !important;
}
.jet-form-builder__field.textarea-field {
    min-height: 140px !important;
    resize: vertical !important;
}
.jet-form-builder__field.select-field {
    appearance: auto !important;
    cursor: pointer !important;
}
.jet-form-builder__field:focus,
.jet-form-builder__field:focus-visible {
    border-color: #98ca3c !important;
    box-shadow: 0 0 0 3px rgba(0,115,230,.15) !important;
    background-color: #f0f7ff !important;
}
.jet-form-builder__field::placeholder {
    color: #999 !important;
    opacity: 1 !important;
}
.jet-form-builder-row {
    margin-bottom: 0 !important;
}
.wp-block-columns.is-layout-flex {
    gap: 20px !important;
    margin-bottom: 0 !important;
}
.jet-form-builder__label-text {
    font-size: 14px !important;
    color: #444 !important;
    margin-bottom: 8px !important;
    display: block !important;
    line-height: 1.5 !important;
}
.jet-form-builder__field-label.for-checkbox {
    display: flex !important;
    align-items: flex-start !important;
    gap: 10px !important;
    font-size: 14px !important;
    color: #444 !important;
    cursor: pointer !important;
}
.checkboxes-field {
    width: 18px !important;
    height: 18px !important;
    margin-top: 2px !important;
    flex-shrink: 0 !important;
    accent-color: #0073e6 !important;
}
.jet-form-builder-file-upload__content {
    padding: 16px !important;
    border: 2px dashed #ccc !important;
    border-radius: 6px !important;
    background: #fafafa !important;
}
.jet-form-builder__submit {
    padding: 14px 36px !important;
    font-size: 16px !important;
    border-radius: 6px !important;
    cursor: pointer !important;
    background: #98ca3c !important;
    color: #fff !important;
    border: none !important;
    transition: background .3s !important;
}
.jet-form-builder__submit:hover {
    background: #7daa2e !important;
}


/* =============================================================================
   11. SEARCH UI
   Styles for the custom search tabs and suggestions overlay.
   Note: .ss-suggestions positioning is handled here (not in JS) because
   it depends on the static layout context.
   ============================================================================= */

.ss-search-tabs {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    border-right: 1px solid #e0e0d8;
    padding-right: 8px;
    margin-right: 12px;
}
.ss-tab {
    background: 0 0;
    border: none;
    border-bottom: 3px solid transparent;
    padding: 10px 14px;
    font-size: 13px;
    font-weight: 600;
    color: #888;
    cursor: pointer;
    letter-spacing: .3px;
    white-space: nowrap;
    transition: color .15s, border-color .15s;
}
.ss-tab:hover {
    color: #2c2c2a;
}
.ss-tab--active {
    color: #2c2c2a !important;
    border-bottom-color: #7ab317 !important;
}
.ss-close-btn {
    background: 0 0;
    border: none;
    cursor: pointer;
    padding: 4px 8px;
    color: #7ab317;
    font-size: 22px;
    line-height: 1;
    flex-shrink: 0;
}
.ss-suggestions {
    position: absolute;
    top: calc(100% + 10px);
    left: -160px;
    right: 0;
    background: #fff;
    border: 1px solid #e0e0d8;
    border-radius: 6px;
    box-shadow: 0 4px 16px rgba(0,0,0,.1);
    z-index: 99999;
    max-height: 320px;
    overflow-y: auto;
    display: none;
}
.ss-suggestions.ss-visible {
    display: block;
}
.ss-suggestion-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    cursor: pointer;
    border-bottom: 1px solid #f4f4f0;
    text-decoration: none;
    color: #2c2c2a;
    font-size: 14px;
    transition: background .1s;
}
.ss-suggestion-item:last-child {
    border-bottom: none;
}
.ss-suggestion-item:hover {
    background: #f7faf0;
}
.ss-suggestion-thumb {
    width: 36px;
    height: 36px;
    object-fit: cover;
    border-radius: 4px;
    flex-shrink: 0;
}
.ss-suggestion-thumb-placeholder {
    width: 36px;
    height: 36px;
    border-radius: 4px;
    background: #f0f0eb;
    flex-shrink: 0;
}
.ss-suggestion-title {
    font-weight: 600;
    font-size: 13px;
    color: #2c2c2a;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.ss-suggestion-type {
    font-size: 11px;
    color: #aaa;
    margin-top: 2px;
}
.ss-suggestion-empty,
.ss-suggestion-loading {
    padding: 12px 14px;
    font-size: 13px;
    color: #aaa;
    text-align: center;
}

/* Mobile search overlay */
@media (max-width: 980px) {
    .et_pb_menu__search-container:not(.et_pb_menu__search-container--hidden) {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: 100vw !important;
        background: #fff !important;
        z-index: 999999 !important;
        box-shadow: 0 2px 12px rgba(0,0,0,.15) !important;
        padding: 8px 0 !important;
        box-sizing: border-box !important;
    }
    .et_pb_menu__search-container:not(.et_pb_menu__search-container--hidden) .et_pb_menu__search {
        padding: 0 12px !important;
        position: relative !important;
    }
    .et_pb_menu__search-container:not(.et_pb_menu__search-container--hidden) .ss-search-tabs {
        border-right: none !important;
        border-bottom: 1px solid #e0e0d8 !important;
        padding-right: 0 !important;
        margin-right: 0 !important;
        width: 100% !important;
        justify-content: space-around !important;
    }
    .et_pb_menu__search-container:not(.et_pb_menu__search-container--hidden) .ss-tab {
        flex: 1 !important;
        text-align: center !important;
        padding: 10px 8px !important;
        font-size: 12px !important;
    }
    .et_pb_menu__search-container:not(.et_pb_menu__search-container--hidden) .ss-close-btn {
        position: absolute !important;
        top: 6px !important;
        right: 12px !important;
    }
    .et_pb_menu__search-container:not(.et_pb_menu__search-container--hidden) .ss-suggestions {
        left: 0 !important;
        right: 0 !important;
        top: 100% !important;
        border-radius: 0 0 6px 6px !important;
    }
    .et_pb_menu__search-container {
        padding-top: 0 !important;
        height: auto !important;
        min-height: 0 !important;
    }
    .et_pb_menu__search[data-ss-init=true] {
        flex-direction: column !important;
        align-items: stretch !important;
        padding: 8px 12px !important;
        gap: 0 !important;
    }
    .et_pb_menu__search[data-ss-init=true] .ss-search-tabs {
        border-right: none !important;
        border-bottom: 1px solid #e0e0d8 !important;
        padding-right: 0 !important;
        margin-right: 0 !important;
        margin-bottom: 6px !important;
        justify-content: space-around !important;
        width: 100% !important;
    }
    .et_pb_menu__search[data-ss-init=true] .ss-tab {
        flex: 1 !important;
        text-align: center !important;
        padding: 10px 8px !important;
        font-size: 12px !important;
    }
    .et_pb_menu__search[data-ss-init=true] .et_pb_menu__search-form {
        width: 100% !important;
        padding: 4px 0 !important;
    }
    .et_pb_menu__search[data-ss-init=true] .ss-close-btn {
        position: absolute !important;
        top: 6px !important;
        right: 8px !important;
    }
}


/* =============================================================================
   12. SLIDER LABEL ANIMATION
   ============================================================================= */

@keyframes pulse-label {
    30%, 100% { opacity: 1; transform: translateX(-50%) scale(1); }
    70%        { opacity: .6; transform: translateX(-50%) scale(.95); }
}


/* =============================================================================
   13. AUTHOR BIO CARD (blog)
   ============================================================================= */

.author-bio-card {
    display: flex;
    align-items: flex-start;
    padding: 20px;
    margin-top: 40px;
    border-top: 1px solid #ddd;
    background-color: #f9f9f9;
    border-radius: 8px;
    gap: 20px;
    flex-wrap: wrap;
}
.author-avatar-wrapper img.author-avatar {
    border-radius: 50%;
    width: 100px;
    height: 100px;
    object-fit: cover;
    flex-shrink: 0;
}
.author-details {
    flex: 1;
    min-width: 200px;
}
.author-name {
    margin: 0 0 10px;
    font-size: 1.2em;
    color: #333;
}
.author-bio {
    margin: 0;
    font-size: 1em;
    color: #555;
    line-height: 1.5;
}
@media (max-width: 600px) {
    .author-bio-card {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }
    .author-avatar-wrapper {
        margin-bottom: 15px;
    }
}


/* =============================================================================
   14. BLOG — Consistent post image heights
   ============================================================================= */

.et_pb_posts .et_pb_post .entry-featured-image-url img,
.et-l .et_pb_blog_grid .et_pb_post .entry-featured-image-url img {
    height: 250px !important;
    width: 100%;
    object-fit: cover;
    object-position: center;
}


/* =============================================================================
   15. THIRD-PARTY FIXES
   ============================================================================= */

/* Zendesk widget — push above sticky bar */
iframe#launcher {
    bottom: 80px !important;
}


/* Catch all variable-item selected states regardless of type */
body ul.variable-items-wrapper li.variable-item.selected {
    border-color: #98ca3c !important;
    box-shadow: 0 0 0 1px #333 !important;
}

/* =============================================================================
   16. CLS ISSUE
   ============================================================================= */


body:not(.et-tb) #main-content .container {
	padding-top: 20px !important;
}

/* Fix CLS — Divi icon font */
@font-face {
    font-family: 'ETmodules';
    font-display: block;
}

/* Fix CLS — product page main row */
.woocommerce div.product .et_pb_row_1.et_flex_row {
    contain: layout style !important;
    min-height: 600px;
}

@media (max-width: 980px) {
    .woocommerce div.product .et_pb_row_1.et_flex_row {
        min-height: 800px;
    }
}


/* Nuclear option — remove ALL counters from gallery */
.woocommerce-product-gallery * {
    counter-increment: none !important;
    counter-reset: none !important;
    list-style-type: none !important;
}
.woocommerce-product-gallery li::before,
.woocommerce-product-gallery li::after {
    content: none !important;
    display: none !important;
}
ol.flex-control-nav.flex-control-thumbs {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
ol.flex-control-nav.flex-control-thumbs li {
    list-style: none !important;
}
ol.flex-control-nav.flex-control-thumbs li::before {
    content: none !important;
    display: none !important;
}



.woocommerce-product-gallery {
    counter-reset: none !important;
}
.woocommerce-product-gallery ol {
    counter-reset: none !important;
    list-style: none !important;
}
.woocommerce-product-gallery ol li {
    counter-increment: none !important;
    list-style: none !important;
}
.woocommerce-product-gallery ol li::before {
    content: none !important;
    display: none !important;
}

/* Hide inline price badge — WooCommerce native price handles display */
.wc-inline-price {
    display: none !important;
}

/* Fix cookie bar CLS — force overlay, not push */
#moove_gdpr_cookie_info_bar,
.moove_gdpr_cookie_info_bar,
#moove-gdpr-cookie-modal-bg {
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 99998 !important;
    transform: none !important;
}
/* Fix CLS — product page blurb images only */
.woocommerce div.product .et_pb_blurb_content .et_pb_main_blurb_image {
    min-height: 22px;
}