/*
Theme Name: AIBEI Storefront
Description: Conversion and readability enhancements for the AIBEI Shoptimizer storefront.
Author: AIBEI
Template: shoptimizer
Version: 1.3.9
Text Domain: shoptimizer-child-blank
*/

:root {
    --aibei-ink: #171417;
    --aibei-brand: #f72565;
    --aibei-brand-dark: #b51248;
    --aibei-surface: #fffaf8;
    --aibei-line: #eadfe2;
    --aibei-radius: 14px;
    --aibei-shadow: 0 12px 34px rgba(45, 18, 29, .09);
}

body { color: var(--aibei-ink); background: #fff; -webkit-font-smoothing: antialiased; }
.post-type-archive-product .woocommerce-products-header { display: none; }
.aibei-shop-intro {
    margin: 0 0 28px;
    padding: clamp(24px, 4vw, 46px);
    border: 1px solid var(--aibei-line);
    border-radius: var(--aibei-radius);
    background: linear-gradient(135deg, #fff8f5 0%, #f5eeea 100%);
}
.aibei-shop-intro__eyebrow {
    margin: 0 0 8px;
    color: var(--aibei-brand-dark);
    font-size: 12px;
    font-weight: 750;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.aibei-shop-intro h1 { margin: 0 0 12px; font-size: clamp(30px, 5vw, 48px); letter-spacing: -.035em; }
.aibei-shop-intro > p:not(.aibei-shop-intro__eyebrow) { max-width: 760px; margin: 0; color: #51464a; font-size: 17px; line-height: 1.65; }
.aibei-shop-intro__links { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 20px; }
.aibei-shop-intro__links a {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 8px 14px;
    border: 1px solid #dfcbd1;
    border-radius: 999px;
    background: #fff;
    color: #3a2930;
    font-size: 14px;
    font-weight: 700;
}
.aibei-shop-intro__links a:hover,
.aibei-shop-intro__links a:focus-visible { border-color: var(--aibei-brand); color: var(--aibei-brand-dark); }
.site-header, .main-navigation { border-color: rgba(255, 255, 255, .08); }
.site-header .site-search input[type="search"] { border: 1px solid transparent; border-radius: 10px; box-shadow: none; }

@media (min-width: 993px) {
    body:not(.header-4).sticky-d .col-full-nav.is_stuck {
        top: 0 !important;
        position: sticky !important;
        z-index: 10 !important;
    }
    .theme-shoptimizer.sticky-d.single-product .logo-mark { display: block !important; }
    .theme-shoptimizer.sticky-d.single-product .is_stuck .primary-navigation.with-logo .menu-primary-menu-container {
        margin-left: 170px !important;
    }
}

.archive .woocommerce-products-header,
.tax-product_cat .woocommerce-products-header {
    background: linear-gradient(135deg, #fff8f5 0%, #f5eeea 100%);
    border-bottom: 1px solid var(--aibei-line);
}

.archive .woocommerce-products-header h1,
.tax-product_cat .woocommerce-products-header h1 { letter-spacing: -.025em; }

.woocommerce .woocommerce-ordering select {
    min-height: 44px;
    border: 1px solid var(--aibei-line);
    border-radius: 10px;
    background: #fff;
}

.woocommerce ul.products li.product {
    overflow: hidden;
    border: 1px solid var(--aibei-line);
    border-radius: var(--aibei-radius);
    background: #fff;
    box-shadow: 0 5px 18px rgba(36, 20, 27, .05);
    transition: transform .2s ease, box-shadow .2s ease;
}

.woocommerce ul.products li.product:hover { transform: translateY(-3px); box-shadow: var(--aibei-shadow); }
.woocommerce ul.products li.product img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .button { margin-right: 16px; margin-left: 16px; }

.woocommerce ul.products li.product .woocommerce-loop-product__title {
    min-height: 3.4em;
    margin-top: 15px;
    font-size: 16px;
    line-height: 1.35;
}

.woocommerce ul.products li.product .price { margin-bottom: 18px; color: var(--aibei-brand-dark); font-weight: 700; }

.widget_product_tag_cloud .tagcloud {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
}

.widget_product_tag_cloud .tag-cloud-link {
    display: block;
    overflow: hidden;
    margin: 0 !important;
    padding: 7px 8px;
    border: 1px solid var(--aibei-line);
    border-radius: 8px;
    background: #fff;
    color: #3a3035;
    text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.single-product .site-main div.product { gap: clamp(28px, 4vw, 64px); }
.single-product div.product .summary { padding: 8px 0 30px; }

.single-product div.product .product_title {
    max-width: 760px;
    font-size: clamp(30px, 3vw, 44px);
    line-height: 1.08;
    letter-spacing: -.035em;
}

.single-product div.product p.price { color: var(--aibei-brand-dark); font-size: 24px; }
.gudeer-universal-module { margin: 18px 0 22px; }

.aibei-trust-panel {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    padding: 16px;
    border: 1px solid var(--aibei-line);
    border-radius: var(--aibei-radius);
    background: var(--aibei-surface);
}

.aibei-trust-panel__intro { grid-column: 1 / -1; padding-bottom: 8px; border-bottom: 1px solid var(--aibei-line); }
.aibei-trust-panel__intro strong { display: block; margin-bottom: 4px; font-size: 16px; color: var(--aibei-ink); }
.aibei-trust-panel__intro span { display: block; color: #574b50; font-size: 13px; line-height: 1.5; }
.aibei-trust-panel__item { padding: 4px 2px; color: #574b50; font-size: 13px; line-height: 1.5; }
.aibei-trust-panel__item strong { display: block; margin-bottom: 3px; color: var(--aibei-ink); font-size: 14px; }
.aibei-trust-panel__item a { color: var(--aibei-brand-dark); font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
.aibei-trust-panel__item a:focus-visible { outline: 2px solid var(--aibei-brand-dark); outline-offset: 3px; }

.single-product .tm-extra-product-options,
.single-product .tc-extra-product-options {
    margin-top: 20px;
    padding: 20px;
    border: 1px solid var(--aibei-line);
    border-radius: var(--aibei-radius);
    background: #fff;
}

.single-product .tm-extra-product-options select,
.single-product .tm-extra-product-options input[type="text"],
.single-product .tm-extra-product-options input[type="number"] {
    min-height: 44px;
    border: 1px solid #d9ccd1;
    border-radius: 8px;
}

.single-product button.single_add_to_cart_button,
.single-product .single_add_to_cart_button.button {
    min-height: 52px;
    border-radius: 10px;
    background: var(--aibei-brand);
    box-shadow: 0 8px 22px rgba(247, 37, 101, .22);
    font-weight: 700;
}

.single-product button.single_add_to_cart_button:hover { background: var(--aibei-brand-dark); }
.woocommerce-tabs, .product .related, .product .upsells { margin-top: clamp(44px, 6vw, 88px); }
.aibei-mobile-product-heading, .aibei-mobile-cta { display: none; }
.aibei-options-anchor { scroll-margin-top: 24px; }

.aibei-product-details {
    clear: both;
    margin: clamp(48px, 7vw, 96px) 0 0;
}

.aibei-product-details .product-details-wrapper {
    width: min(1180px, calc(100% - 32px));
    margin: 0 auto;
}

.aibei-product-details h2 {
    margin: 0 0 24px;
    font-size: clamp(27px, 3vw, 38px);
    line-height: 1.15;
    letter-spacing: -.025em;
}

.dm-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
    gap: clamp(28px, 5vw, 72px);
    align-items: start;
}

.dm-images {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.dm-images img {
    width: 100%;
    height: auto;
    border-radius: var(--aibei-radius);
    background: #f5f1ef;
}

.dm-table {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    margin: 0;
    border-top: 1px solid var(--aibei-line);
}

.dm-cell {
    margin: 0;
    padding: 13px 10px 13px 0;
    border-bottom: 1px solid var(--aibei-line);
}

.dm-key,
.dm-value { margin: 0; }
.dm-key { color: #6f6268; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; }
.dm-value { margin-top: 3px; color: var(--aibei-ink); font-size: 15px; font-weight: 700; }
.dm-note { margin-top: 18px; color: #6f6268; font-size: 13px; }

.pg-masonry {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.pg-item { margin: 0; overflow: hidden; border-radius: 10px; background: #f5f1ef; }
.pg-item a { display: block; }
.pg-item img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    transition: transform .25s ease;
}
.pg-item a:hover img { transform: scale(1.025); }

.pv-title { text-align: center; }
.pv-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}
.pv-item { overflow: hidden; border-radius: var(--aibei-radius); background: #111; }
.pv-video { display: block; width: 100%; max-height: 78vh; background: #111; }

.aibei-lightbox[hidden] { display: none; }
.aibei-lightbox {
    position: fixed;
    z-index: 10050;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 24px;
    background: rgba(10, 8, 9, .94);
}
.aibei-lightbox__frame { position: relative; width: min(1100px, 100%); }
.aibei-lightbox__image { display: block; max-width: 100%; max-height: 82vh; margin: 0 auto; object-fit: contain; }
.aibei-lightbox__controls { display: flex; align-items: center; justify-content: center; gap: 18px; margin-top: 14px; color: #fff; }
.aibei-lightbox__button,
.aibei-lightbox__close {
    min-height: 42px;
    padding: 9px 14px;
    border: 1px solid rgba(255, 255, 255, .55);
    border-radius: 8px;
    background: #fff;
    color: #171417;
    font-weight: 700;
}
.aibei-lightbox__close { position: absolute; z-index: 2; top: 0; right: 0; }
.aibei-lightbox-open { overflow: hidden; }

@media (min-width: 993px) {
    .single-product div.product .summary { position: sticky; top: 24px; align-self: flex-start; }
}

@media (max-width: 992px) {
    .topbar-wrapper,
    .topbar-wrapper .top-bar,
    .topbar-wrapper .top-bar .col-full,
    .topbar-wrapper .top-bar-center {
        width: 100%;
        max-width: 100vw;
        height: auto;
        min-height: 0;
        box-sizing: border-box;
        overflow: visible;
        white-space: normal;
    }

    .topbar-wrapper .textwidget p {
        margin: 0;
        padding: 6px 14px;
        font-size: 11px;
        line-height: 1.3;
        text-align: center;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .woocommerce ul.products li.product .woocommerce-loop-product__title { min-height: 0; }
    .aibei-trust-panel { grid-template-columns: 1fr; }

    .single-product .woocommerce-breadcrumb {
        display: block;
        max-width: calc(100vw - 30px);
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .single-product div.product .summary {
        width: calc(100vw - 30px) !important;
        min-width: 0;
        max-width: calc(100vw - 30px) !important;
        box-sizing: border-box;
        margin-right: 0 !important;
        margin-left: 0 !important;
        padding-right: 16px;
        padding-left: 16px;
    }

    .single-product div.product .summary > .product_title,
    .single-product div.product .summary > p.price {
        display: none;
    }

    .aibei-mobile-product-heading {
        display: block;
        width: 100vw;
        max-width: 100vw;
        box-sizing: border-box;
        padding: 2px 18px 18px;
    }

    .aibei-mobile-product-heading__title {
        font-size: 24px;
        font-weight: 700;
        line-height: 1.15;
        letter-spacing: -.025em;
        overflow-wrap: anywhere;
    }

    .aibei-mobile-product-heading__price {
        margin-top: 8px;
        color: var(--aibei-brand-dark);
        font-size: 19px;
        font-weight: 700;
    }

    .aibei-mobile-cta {
        position: fixed;
        z-index: 9998;
        right: 0;
        bottom: 0;
        left: 0;
        display: flex;
        width: auto;
        max-width: none;
        box-sizing: border-box;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        padding: 10px 14px;
        border-top: 1px solid var(--aibei-line);
        background: rgba(255, 255, 255, .97);
        box-shadow: 0 -10px 28px rgba(37, 19, 26, .12);
    }

    .aibei-mobile-cta__price {
        flex: 0 1 auto;
        min-width: 0;
        color: var(--aibei-brand-dark);
        font-size: 14px;
        font-weight: 700;
        white-space: nowrap;
    }
    .aibei-mobile-cta__price del { display: none; }

    .aibei-mobile-cta__button {
        flex: 1 1 auto;
        width: auto !important;
        min-width: 0;
        max-width: none;
        box-sizing: border-box;
        padding: 12px 10px;
        border-radius: 9px;
        background: var(--aibei-brand);
        color: #fff;
        font-size: 14px;
        font-weight: 700;
        text-decoration: none;
        text-align: center;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .dm-grid { grid-template-columns: 1fr; }
    .pg-masonry { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
    .pv-grid { grid-template-columns: 1fr; }
    .aibei-lightbox { padding: 14px; }
}

@media (max-width: 767px) {
    .tax-product_cat .shoptimizer-category-banner .taxonomy-description.is-collapsible:not(.is-expanded) {
        display: -webkit-box;
        overflow: hidden;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
    }

    .aibei-category-description-toggle {
        margin-top: 10px;
        padding: 7px 0;
        border: 0;
        background: transparent;
        color: var(--aibei-brand-dark);
        font-size: 13px;
        font-weight: 700;
        text-decoration: underline;
        text-underline-offset: 3px;
    }
}

@media (min-width: 360px) and (max-width: 767px) {
    .woocommerce-page ul.products,
    .woocommerce ul.products {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }

    .woocommerce-page ul.products::before,
    .woocommerce-page ul.products::after,
    .woocommerce ul.products::before,
    .woocommerce ul.products::after { display: none !important; }

    .woocommerce ul.products li.product {
        width: 100% !important;
        min-width: 0;
        margin: 0 !important;
    }

    .woocommerce ul.products li.product .woocommerce-loop-product__title {
        display: -webkit-box;
        min-height: 2.7em;
        margin: 10px 10px 0;
        overflow: hidden;
        font-size: 13px;
        line-height: 1.35;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }

    .woocommerce ul.products li.product .price {
        margin: 7px 10px 12px;
        font-size: 12px;
        white-space: nowrap;
    }

    .woocommerce ul.products li.product .price del { display: none; }
}

/* Category description: CSS-only "Read more" (checkbox + label rendered by inc/aibei-layout.php, no script). */
.aibei-category-description-toggle { display: none; }
@media (max-width: 767px) {
    label.aibei-category-description-toggle { display: inline-block; cursor: pointer; -webkit-tap-highlight-color: transparent; }
    .aibei-cat-desc-more:checked ~ .aibei-category-description-toggle .aibei-more,
    .aibei-cat-desc-more:not(:checked) ~ .aibei-category-description-toggle .aibei-less { display: none; }
    .tax-product_cat .shoptimizer-category-banner .aibei-cat-desc-more:checked + .taxonomy-description.is-collapsible:not(.is-expanded) { display: block; overflow: visible; -webkit-line-clamp: unset; }
    .aibei-cat-desc-more:focus-visible ~ .aibei-category-description-toggle { outline: 2px solid var(--aibei-brand-dark); outline-offset: 3px; }
}

/* Product options (TM EPO) at first paint: closed sections start collapsed and the option list is visible at once,
   instead of a ~9,000px hidden block that collapses when the plugin initialises. Conditional fields stay hidden until
   the plugin runs, and the totals box keeps its space so "Add to cart" does not move. */
.single-product .tm-extra-product-options .tm-collapse-wrap.closed { display: none; }
.single-product .tc-extra-product-options { visibility: visible; }
.single-product .summary:not(.tc-init) .tc-extra-product-options [data-haslogic="1"] { display: none; }
.single-product .summary:not(.tc-init) .tc-extra-product-options ~ .tc-totals-form { display: block; min-height: 183px; }
