/**
 * Drevko Product Addons — Frontend Styles
 *
 * INHERITANCE RULE: Uses Drevko Framework CSS variables where available.
 * Fallback to theme variables (--theme-palette-color-*) for storefront integration.
 * No hardcoded HEX colors except #ffffff.
 */

/* ==========================================================================
   General
   ========================================================================== */

.drevko-product-addon {
    padding-bottom: 5px;
}

.product-addons-label {
    font-weight: 600;
    margin: 12px 0 6px;
    font-size: 15px;
}

/* ==========================================================================
   Checkbox
   ========================================================================== */

.drevko-product-addon input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    width: 20px;
    min-width: 20px;
    height: 20px;
    border: 1px solid var(--drevko-input-border, var(--theme-border-color, currentColor));
    outline: none;
    cursor: pointer;
    position: relative;
    vertical-align: middle;
    border-radius: 0;
    background: transparent;
}

.drevko-product-addon input[type="checkbox"]:checked {
    background-color: var(--theme-palette-color-1, var(--drevko-accent-strong, currentColor));
    border-color: var(--theme-palette-color-1, var(--drevko-accent-strong, currentColor));
}

.drevko-product-addon input[type="checkbox"]:checked:after {
    content: "";
    position: absolute;
    left: 6px;
    top: 2px;
    width: 5px;
    height: 10px;
    border: solid #ffffff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

/* ==========================================================================
   Text field
   ========================================================================== */

.drevko-product-addon .addon-text-field {
    width: 100%;
    padding: 8px;
    border: 1px solid var(--drevko-input-border, var(--theme-border-color, currentColor));
}

/* ==========================================================================
   Info box
   ========================================================================== */

.drevko-product-addon .addon-info-box {
    margin: 6px 0 16px;
    padding: 16px 20px;
    background-color: var(--drevko-bg-surface, var(--theme-palette-color-8, inherit));
    color: var(--drevko-text-primary, var(--theme-text-color, inherit));
    font-size: 13px;
    line-height: 1.5;
    display: none; /* Hidden by default */
}

.drevko-product-addon .addon-info .addon-info-title {
    font-weight: 700;
    margin-bottom: 8px;
}

/* ==========================================================================
   Dependent addons
   ========================================================================== */

.drevko-dependent-addons {
    margin-top: 10px;
}

/* ==========================================================================
   Select (dropdown)
   ========================================================================== */

.drevko-product-addon .addon-select-field {
    width: 100%;
    padding: 8px;
    border: 1px solid var(--drevko-input-border, var(--theme-border-color, currentColor));
    background-color: #ffffff;
    margin-bottom: 12px;
    border-radius: 0;
}

/* ==========================================================================
   Checkbox / Radio groups
   ========================================================================== */

.addon-group-label {
    font-weight: 600;
    margin: 12px 0 6px;
}

.addon-checkbox-group,
.addon-radio-group {
    display: flex;
    flex-wrap: wrap;
    margin: 0 -5px;
}

.addon-checkbox-option,
.addon-radio-option {
    flex: 0 0 50%;
    padding: 5px;
    box-sizing: border-box;
}

.addon-checkbox-option label,
.addon-radio-option label {
    display: flex;
    align-items: center;
    cursor: pointer;
}

/* ==========================================================================
   Radio buttons
   ========================================================================== */

.drevko-product-addon input[type="radio"] {
    appearance: none;
    -webkit-appearance: none;
    width: 20px;
    min-width: 20px;
    height: 20px;
    border: 1px solid var(--drevko-input-border, var(--theme-border-color, currentColor));
    border-radius: 50%;
    outline: none;
    cursor: pointer;
    position: relative;
    vertical-align: middle;
    margin-right: 8px;
}

.drevko-product-addon input[type="radio"]:checked {
    border-color: var(--theme-palette-color-1, var(--drevko-accent-strong, currentColor));
}

.drevko-product-addon input[type="radio"]:checked:after {
    content: "";
    position: absolute;
    left: 5px;
    top: 5px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: var(--theme-palette-color-1, var(--drevko-accent-strong, currentColor));
}

/* ==========================================================================
   Image select / Image radio
   ========================================================================== */

.addon-image-select-group,
.addon-image-radio-group {
    display: flex;
    flex-wrap: wrap;
    margin: 0 -8px;
}

.addon-image-option {
    flex: 0 0 calc(33.333% - 16px);
    margin: 0 8px 16px;
    position: relative;
}

.addon-image-option .image-option-label {
    display: block;
    cursor: pointer;
    border: 1px solid transparent;
    padding: 8px;
    transition: all 0.3s ease;
}

.image-option-input-wrapper {
    display: flex;
    justify-content: center;
    margin-bottom: 10px;
}

.addon-image-option .image-option-label img {
    width: 100%;
    height: auto;
    max-height: 150px;
    object-fit: cover;
    aspect-ratio: 1 / 1;
    margin-bottom: 8px;
}

.addon-image-option.selected .image-option-label,
.addon-image-option .image-option-input:checked + .image-option-label {
    border-color: var(--theme-palette-color-1, var(--drevko-accent-strong, currentColor));
    background-color: var(--theme-palette-color-11, var(--drevko-accent-subtle, inherit));
}

.image-option-details {
    text-align: center;
}

.image-option-title {
    display: block;
    font-weight: 600;
    margin-bottom: 4px;
}

.image-option-price {
    display: block;
    font-size: 13px;
}

/* ==========================================================================
   Cart addons display
   ========================================================================== */

.drevko-cart-addons {
    margin-top: 5px;
    font-size: 12px;
    color: var(--drevko-text-secondary, var(--theme-text-color, inherit));
    opacity: 0.7;
}

.drevko-cart-addon {
    padding: 2px 0;
}

/* ==========================================================================
   Order addons display
   ========================================================================== */

.drevko-order-addon {
    margin: 3px 0;
}

/* ==========================================================================
   Admin order addons (in WC order view)
   ========================================================================== */

.drevko-admin-order-addons {
    margin-top: 20px;
    padding: 15px;
    background: var(--drevko-bg-surface, inherit);
    border: 1px solid var(--drevko-border-default, currentColor);
}

.drevko-admin-order-product {
    margin-bottom: 15px;
}

.drevko-admin-order-product h4 {
    margin-bottom: 5px;
    font-weight: 600;
}

.drevko-admin-order-addon {
    margin: 3px 0 3px 15px;
}

/* ==========================================================================
   Gift package layout
   ========================================================================== */

.product-gift-wrapper {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
}

.product-gift-col {
    box-sizing: border-box;
    width: 50%;
}

.product-gift-col-left {
    flex: 0 0 50%;
    max-width: 50%;
}

.product-gift-col-right {
    flex: 0 0 50%;
    max-width: 250px;
    padding-left: 6px;
    text-align: right;
}

/* ==========================================================================
   Labels & required
   ========================================================================== */

.drevko-product-addon label {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-size: 14px;
}

.drevko-product-addon .required {
    color: var(--drevko-color-error, var(--theme-error-color, red));
    margin-left: 2px;
}

/* ==========================================================================
   Validation errors
   ========================================================================== */

.addon-field-error {
    border: 1px solid var(--drevko-color-error, var(--theme-error-color, red)) !important;
    background-color: var(--drevko-feedback-error-bg, rgba(200, 38, 44, 0.05));
    padding-top: 5px;
}

.addon-required-error {
    color: var(--drevko-color-error, var(--theme-error-color, red));
    font-size: 12px;
    margin-top: 4px;
}

/* ==========================================================================
   Responsive
   ========================================================================== */

@media (max-width: 768px) {
    .addon-checkbox-option,
    .addon-radio-option {
        flex: 0 0 100%;
    }

    .addon-image-option {
        flex: 0 0 calc(50% - 16px);
    }
}

@media (max-width: 480px) {
    .addon-image-option {
        flex: 0 0 calc(50% - 16px);
    }
}