/* Hooshmand Universal Variation Swatches */
form.variations_form.buvs-form table.variations {
    width: 100%;
    border: 0;
    margin: 0 0 12px;
}

form.variations_form.buvs-form table.variations tbody,
form.variations_form.buvs-form table.variations tr.buvs-enhanced,
form.variations_form.buvs-form table.variations td.value {
    display: block;
    width: 100%;
}

form.variations_form.buvs-form table.variations tr.buvs-enhanced {
    margin: 0 0 18px;
}

form.variations_form.buvs-form table.variations tr.buvs-enhanced:last-child {
    margin-bottom: 10px;
}

form.variations_form.buvs-form table.variations tr.buvs-enhanced > th.label {
    display: none !important;
}

form.variations_form.buvs-form table.variations tr.buvs-enhanced > td.value {
    padding: 0 !important;
    border: 0 !important;
}

.buvs-native-select {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.buvs-attribute {
    width: 100%;
    color: var(--buvs-text, #242424);
    direction: inherit;
}

.buvs-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 0 0 10px;
    min-height: 26px;
}

.buvs-label {
    font-size: 14px;
    font-weight: 700;
    line-height: 1.8;
}

.buvs-current {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 2px 9px;
    border-radius: 999px;
    background: #f4f5f5;
    color: #777;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.6;
    transition: background-color .18s ease, color .18s ease;
}

.buvs-current.has-value {
    color: var(--buvs-accent, #2f9e66);
    background: var(--buvs-accent-soft, #eaf8f0);
}

.buvs-options {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--buvs-gap, 9px);
}

.buvs-option {
    appearance: none;
    -webkit-appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-width: 68px;
    min-height: var(--buvs-height, 44px);
    margin: 0;
    padding: 7px 14px;
    border: 1px solid var(--buvs-border, #dedede);
    border-radius: var(--buvs-radius, 10px);
    background: var(--buvs-bg, #fff);
    color: var(--buvs-text, #242424);
    box-shadow: none;
    font: inherit;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.5;
    text-align: center;
    cursor: pointer;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
    transition: border-color .18s ease, background-color .18s ease, color .18s ease, transform .14s ease, box-shadow .18s ease;
}

.buvs-option:hover:not(:disabled) {
    border-color: var(--buvs-accent, #2f9e66);
    transform: translateY(-1px);
}

.buvs-option:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--buvs-accent, #2f9e66) 28%, transparent);
    outline-offset: 2px;
}

.buvs-option.is-selected {
    border-color: var(--buvs-accent, #2f9e66);
    background: var(--buvs-accent-soft, #eaf8f0);
    color: var(--buvs-accent, #2f9e66);
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--buvs-accent, #2f9e66) 18%, transparent);
}

.buvs-check {
    display: none;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    border-radius: 50%;
    background: var(--buvs-accent, #2f9e66);
    color: var(--buvs-on-accent, #fff);
    font-family: Arial, sans-serif;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
}

.buvs-option.is-selected .buvs-check {
    display: inline-flex;
}

.buvs-color-dot {
    display: inline-block;
    width: 26px;
    height: 26px;
    flex: 0 0 26px;
    border: 1px solid rgba(0, 0, 0, .12);
    border-radius: 7px;
    background: var(--buvs-term-color, transparent);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .25);
}

.buvs-option.is-disabled,
.buvs-option:disabled {
    opacity: .38;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

.buvs-option.is-disabled .buvs-option-label,
.buvs-option:disabled .buvs-option-label {
    text-decoration: line-through;
}

form.variations_form.buvs-form .reset_variations {
    display: inline-flex;
    margin-top: 9px;
    color: #777;
    font-size: 12px;
    text-decoration: none;
}

.buvs-toast {
    position: relative;
    z-index: 4;
    display: block;
    width: fit-content;
    max-width: 100%;
    margin: 0 0 9px auto;
    padding: 9px 13px;
    border-radius: 8px;
    background: #242424;
    color: #fff;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .16);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.7;
    opacity: 0;
    transform: translateY(5px);
    transition: opacity .2s ease, transform .2s ease;
}

.buvs-toast::after {
    content: '';
    position: absolute;
    right: 22px;
    bottom: -6px;
    width: 12px;
    height: 12px;
    background: #242424;
    transform: rotate(45deg);
}

.buvs-toast.is-visible {
    opacity: 1;
    transform: translateY(0);
}

@media (max-width: 767px) {
    .buvs-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 5px;
    }

    .buvs-options {
        gap: var(--buvs-gap, 8px);
    }

    .buvs-option {
        min-width: 72px;
        min-height: max(46px, var(--buvs-height, 44px));
        padding-inline: 12px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .buvs-option,
    .buvs-current,
    .buvs-toast {
        transition: none;
    }
}

.buvs-option[hidden] { display: none !important; }
.buvs-heading, .buvs-option { overflow-wrap: anywhere; }
.buvs-option { max-width: 100%; }
.buvs-needs-selection .buvs-options { outline: 2px dashed var(--buvs-accent, #2f9e66); outline-offset: 4px; border-radius: var(--buvs-radius, 10px); }
.buvs-option:focus-visible { outline-color: var(--buvs-accent, #2f9e66); }
/* Original Solar Outline assets by 480 Design; see assets/icons/solar/. */
.buvs-icon { display:inline-block; width:24px; height:24px; flex:0 0 auto; background:currentColor; -webkit-mask:var(--buvs-icon) center/contain no-repeat; mask:var(--buvs-icon) center/contain no-repeat; }
.buvs-icon-check { --buvs-icon:url('../icons/solar/check.svg'); }
.buvs-icon-check-circle { --buvs-icon:url('../icons/solar/check-circle.svg'); }
.buvs-icon-close { --buvs-icon:url('../icons/solar/close.svg'); }
.buvs-icon-cart { --buvs-icon:url('../icons/solar/cart-large.svg'); }
.buvs-check .buvs-icon { width:13px; height:13px; }
.buvs-modal { position:fixed; inset:0; z-index:999999; display:flex; align-items:center; justify-content:center; padding:24px; background:rgb(16 24 20 / 40%); -webkit-backdrop-filter:blur(5px); backdrop-filter:blur(5px); color:var(--buvs-text,#242424); font:inherit; isolation:isolate; }
.buvs-modal *, .buvs-modal { box-sizing:border-box; }
.buvs-modal .buvs-dialog { position:relative; display:flex; flex-direction:column; width:100%; max-width:520px; max-height:calc(100vh - 48px); max-height:calc(100dvh - 48px); margin:0; padding:0; overflow:hidden; border:1px solid rgb(255 255 255 / 18%); border-radius:24px; background:var(--buvs-bg,#fff); box-shadow:0 32px 100px rgb(10 30 20 / 20%),0 4px 20px rgb(0 0 0 / 6%); text-align:start; animation:buvs-dialog-in .24s cubic-bezier(.2,.8,.2,1); transform:translateY(var(--buvs-drag-y,0px)); }
.buvs-dialog-header { flex:0 0 auto; display:flex; flex-direction:column; align-items:center; gap:14px; padding:30px 54px 24px; text-align:center; }
.buvs-modal h2 { margin:0; padding:0; color:inherit; font:inherit; font-size:20px; font-weight:700; letter-spacing:normal; line-height:1.8; overflow-wrap:anywhere; }
.buvs-modal .buvs-modal-close { position:absolute; inset-inline-start:12px; top:12px; z-index:2; display:flex; align-items:center; justify-content:center; width:44px; height:44px; min-height:44px; margin:0; padding:0; border:0; border-radius:50%; background:transparent; color:var(--buvs-text,#242424); box-shadow:none; cursor:pointer; }
.buvs-modal-close .buvs-icon { width:20px; height:20px; opacity:.65; }
.buvs-modal .buvs-modal-close:hover { background:rgb(127 127 127 / 10%); }
.buvs-success-icon { display:flex; align-items:center; justify-content:center; width:62px; height:62px; border-radius:22px; background:var(--buvs-accent-soft,#eaf8f0); color:var(--buvs-accent,#2f9e66); }
.buvs-success-icon .buvs-icon { width:34px; height:34px; }
.buvs-dialog-body { min-height:0; padding:0 28px; overflow:auto; overscroll-behavior:contain; }
.buvs-cart-product { display:flex; gap:16px; align-items:center; padding:16px; border:1px solid var(--buvs-border,#dedede); border-radius:18px; background:rgb(127 127 127 / 3%); }
.buvs-cart-thumbnail { position:relative; display:flex; justify-content:center; align-items:center; flex:0 0 88px; width:88px; height:88px; overflow:hidden; border-radius:14px; background:var(--buvs-bg,#fff); color:var(--buvs-accent,#2f9e66); }
.buvs-cart-thumbnail>.buvs-icon { width:34px; height:34px; opacity:.6; }
.buvs-cart-thumbnail img { position:absolute; inset:0; width:100%; height:100%; max-width:100%; object-fit:contain; background:var(--buvs-bg,#fff); }
.buvs-cart-info { flex:1; min-width:0; overflow-wrap:anywhere; }
.buvs-modal .buvs-cart-info h3 { margin:0 0 6px; color:inherit; font:inherit; font-size:15px; font-weight:700; line-height:1.8; }
.buvs-modal .buvs-cart-info p { margin:4px 0; font:inherit; font-size:12px; line-height:1.85; }
.buvs-cart-details { white-space:pre-line; opacity:.75; }
.buvs-modal .buvs-cart-info .buvs-cart-quantity { display:inline-block; padding:3px 9px; border-radius:7px; background:rgb(127 127 127 / 8%); }
.buvs-cart-price { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:6px 16px; padding:20px 2px; line-height:1.8; }
.buvs-price-label { font-size:13px; opacity:.75; }
.buvs-price-value { font-size:18px; font-weight:700; overflow-wrap:anywhere; }
.buvs-price-value .woocommerce-Price-currencySymbol { font-size:.75em; font-weight:500; }
.buvs-dialog-footer { flex:0 0 auto; padding:0 28px 28px; }
.buvs-cart-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:stretch; gap:10px; }
.buvs-modal .buvs-cart-actions a, .buvs-modal .buvs-cart-actions button { display:flex; align-items:center; justify-content:center; gap:8px; width:100%; min-width:0; min-height:50px; margin:0; padding:12px 10px; border:1px solid var(--buvs-border,#dedede); border-radius:max(10px,var(--buvs-radius,10px)); box-shadow:none; font:inherit; font-size:13px; font-weight:600; text-align:center; text-decoration:none; line-height:1.8; cursor:pointer; overflow-wrap:anywhere; transition:background-color .16s ease,box-shadow .16s ease; }
.buvs-cart-actions .buvs-icon { width:20px; height:20px; }
.buvs-modal .buvs-cart-actions .buvs-cart-primary { background:var(--buvs-accent,#2f9e66); border-color:var(--buvs-accent,#2f9e66); color:var(--buvs-on-accent,#fff); }
.buvs-modal .buvs-cart-actions .buvs-cart-continue { background:var(--buvs-bg,#fff); color:var(--buvs-text,#242424); }
.buvs-modal .buvs-cart-actions a:hover, .buvs-modal .buvs-cart-actions button:hover { box-shadow:inset 0 0 0 99px rgb(127 127 127 / 9%); }
.buvs-modal a:focus-visible, .buvs-modal button:focus-visible { outline:3px solid var(--buvs-accent,#2f9e66); outline-offset:3px; }
.buvs-sheet-grip { display:none; }
@keyframes buvs-dialog-in { from { opacity:0; transform:translateY(12px) scale(.98); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes buvs-sheet-in { from { transform:translateY(100%); } to { transform:translateY(0); } }
@media(max-width:600px) {
    .buvs-modal { padding:0; align-items:flex-end; }
    .buvs-modal .buvs-dialog { max-width:none; max-height:calc(100vh - 20px); max-height:calc(100dvh - max(20px,env(safe-area-inset-top,0px))); border-width:1px 0 0; border-radius:26px 26px 0 0; box-shadow:0 -12px 60px rgb(10 30 20 / 16%); animation:buvs-sheet-in .32s cubic-bezier(.22,.75,.2,1); transition:transform .22s ease; }
    .buvs-sheet-grip { flex:0 0 30px; display:flex; align-items:center; justify-content:center; width:100%; touch-action:none; cursor:grab; }
    .buvs-sheet-grip span { width:36px; height:5px; border-radius:99px; background:var(--buvs-text,#242424); opacity:.18; pointer-events:none; }
    .buvs-dialog-header { padding:4px 50px 20px; gap:12px; }
    .buvs-modal h2 { font-size:18px; }
    .buvs-success-icon { width:54px; height:54px; border-radius:19px; }
    .buvs-success-icon .buvs-icon { width:30px; height:30px; }
    .buvs-modal .buvs-modal-close { top:30px; inset-inline-start:8px; }
    .buvs-dialog-body { padding:0 20px; }
    .buvs-cart-product { padding:12px; gap:12px; border-radius:16px; }
    .buvs-cart-thumbnail { flex-basis:72px; width:72px; height:72px; border-radius:12px; }
    .buvs-cart-price { padding:18px 2px; }
    .buvs-price-value { font-size:17px; }
    .buvs-dialog-footer { padding:0 20px max(20px,env(safe-area-inset-bottom,0px)); }
    .buvs-modal .buvs-cart-actions a, .buvs-modal .buvs-cart-actions button { min-height:50px; padding:11px 8px; gap:6px; font-size:12px; }
    .buvs-modal .buvs-dialog.is-dragging { transition:none; animation:none; }
}
.buvs-modal .buvs-dialog.has-entered { animation:none; }
@media(prefers-reduced-motion:reduce) { .buvs-modal .buvs-dialog,.buvs-modal .buvs-cart-actions a,.buvs-modal .buvs-cart-actions button { animation:none; transition:none; } }
@media(forced-colors:active) { .buvs-icon{background:ButtonText;forced-color-adjust:none}.buvs-cart-actions a,.buvs-cart-actions button{border-color:ButtonText!important} }
