/**
 * Phase 1 — Frontend Button Compliance
 * Structural button properties are controlled by the global dashboard variables.
 * Context-specific colors, gradients, widths and icon treatments remain component-owned.
 */

/* Primary action controls: one global structural contract. */
.mr-button,
.mr-ui-button,
.mrbt-button,
.mrbt-btn,
.mrbt-mrc-button,
.mrbt-cart-checkout-cta,
.mrbt-update-cart,
.mrbt-cart-coupon button,
.mrbt-catalog-search button,
.mrbt-search-form button,
.mrbt-search-trigger,
.mrbt-account-button,
.mrbt-mrc-price__select,
.mrbt-mrc-pricing__native-form .single_add_to_cart_button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
button[type="submit"],
input[type="submit"],
input[type="button"],
input[type="reset"] {
    min-height: var(--mr-button-height) !important;
    padding-inline: var(--mr-button-padding-x) !important;
    border-radius: var(--mr-button-radius) !important;
    border-width: var(--mr-button-border-width) !important;
    font-family: var(--mr-font-button) !important;
    font-size: var(--mr-button-size) !important;
    font-weight: var(--mr-button-weight) !important;
    line-height: 1.15;
    box-sizing: border-box;
}

/* Keep hover movement globally synchronized without taking over component colors. */
.mr-button:hover,
.mr-ui-button:hover,
.mrbt-button:hover,
.mrbt-btn:hover,
.mrbt-mrc-button:hover,
.mrbt-cart-checkout-cta:hover,
.mrbt-update-cart:hover,
.mrbt-cart-coupon button:hover,
.mrbt-catalog-search button:hover,
.mrbt-search-form button:hover,
.mrbt-search-trigger:hover,
.mrbt-account-button:hover,
.mrbt-mrc-price__select:hover,
.mrbt-mrc-pricing__native-form .single_add_to_cart_button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
button[type="submit"]:hover,
input[type="submit"]:hover,
input[type="button"]:hover,
input[type="reset"]:hover {
    transform: translateY(calc(var(--mr-button-hover-move) * -1)) !important;
}

/* Global outline-button hover contract: filled primary surface + readable white label. */
.mr-button--outline:hover,
.mr-button--outline:focus-visible,
.mr-ui-button--outline:hover,
.mr-ui-button--outline:focus-visible {
    background: var(--mr-color-primary-hover, var(--mr-color-primary));
    border-color: var(--mr-color-primary-hover, var(--mr-color-primary));
    color: #fff;
}

/* Product archive/card actions previously forced 32–36px sizing. */
.mrbt-catalog .mrbt-product-card__actions .mrbt-btn,
.mrbt-catalog .mrbt-product-card__actions a.button,
.mrbt-catalog .mrbt-product-card__actions button,
.mrbt-shop-archive .mrbt-product-card__actions .mrbt-btn,
.mrbt-shop-archive .mrbt-product-card__actions .button,
.mrbt-shop-archive .mrbt-product-card__actions .mrbt-variation-add-to-cart,
.mrbt-archive-showcase-card--featured .mr-button {
    min-height: var(--mr-button-height) !important;
    padding-inline: var(--mr-button-padding-x) !important;
    border-radius: var(--mr-button-radius) !important;
    border-width: var(--mr-button-border-width) !important;
    font-family: var(--mr-font-button) !important;
    font-size: var(--mr-product-card-action-font-size, 12px) !important;
    font-weight: var(--mr-button-weight) !important;
}

.mrbt-catalog .mrbt-product-card__actions .mrbt-btn:hover,
.mrbt-catalog .mrbt-product-card__actions a.button:hover,
.mrbt-catalog .mrbt-product-card__actions button:hover,
.mrbt-shop-archive .mrbt-product-card__actions .mrbt-btn:hover,
.mrbt-shop-archive .mrbt-product-card__actions .button:hover,
.mrbt-shop-archive .mrbt-product-card__actions .mrbt-variation-add-to-cart:hover,
.mrbt-archive-showcase-card--featured .mr-button:hover {
    transform: translateY(calc(var(--mr-button-hover-move) * -1)) !important;
}

/* CTA-specific buttons: preserve layout/width, inherit global dimensions. */
.mr-final-cta-card__actions .mr-button,
.mrbt-faq-support .mr-button,
.mrbt-terms-cta .mr-button,
.mrbt-privacy-cta .mr-button,
.mrbt-refund-cta .mr-button,
.mrbt-testimonials-cta .mr-button,
.mrbt-services-hero__actions .mr-button,
.mrbt-service-process__heading .mr-button,
.mrbt-ex-single-package .mrbt-button,
.mrbt-ex-single-media-actions .mrbt-button,
.mrbt-premium-demo-actions .mrbt-button,
.mrbt-thank-you__actions .mrbt-button {
    min-height: var(--mr-button-height) !important;
    padding-inline: var(--mr-button-padding-x) !important;
    border-radius: var(--mr-button-radius) !important;
    border-width: var(--mr-button-border-width) !important;
    font-family: var(--mr-font-button) !important;
    font-size: var(--mr-button-size) !important;
    font-weight: var(--mr-button-weight) !important;
}

/* Header action buttons use header-specific sizing while retaining global radius/border/typography/motion. */
.mrbt-search-trigger,
.mrbt-account-button {
    height: 42px !important;
    min-height: 42px !important;
}
.mrbt-search-trigger {
    padding: 0 12px 0 11px !important;
}
.mrbt-account-button {
    padding: 5px 10px 5px 8px !important;
}
.mrbt-search-trigger__label,
.mrbt-account-button__label {
    font-family: var(--mr-font-button);
    font-size: var(--mr-button-size);
    font-weight: var(--mr-button-weight);
}
@media (max-width: 960px) {
    .mobile-header-actions .mrbt-search-trigger,
    .mobile-header-actions .mrbt-account-button {
        height: 40px !important;
        min-height: 40px !important;
    }
    .mobile-header-actions .mrbt-search-trigger {
        padding: 0 10px !important;
    }
    .mobile-header-actions .mrbt-account-button {
        padding: 4px 9px 4px 7px !important;
    }
}
@media (max-width: 520px) {
    .mobile-header-actions .mrbt-search-trigger {
        padding: 0 11px !important;
    }
    .mobile-header-actions .mrbt-account-button {
        padding: 4px 10px 4px 8px !important;
    }
}

/* Search composite controls keep their own readable control height.
 * Global radius/typography still apply, but a very small global button height
 * must not collapse the header search field/button into a thin strip. */
.mrbt-search-form__row {
    min-height: 50px !important;
}
.mrbt-search-form input[type="search"] {
    height: 42px !important;
}
.mrbt-search-form button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 42px !important;
    height: 42px !important;
    padding: 0 16px !important;
    border-radius: var(--mr-button-radius) !important;
    border-width: var(--mr-button-border-width) !important;
    font-family: var(--mr-font-button) !important;
    font-size: var(--mr-button-size) !important;
    font-weight: var(--mr-button-weight) !important;
    line-height: 1.15 !important;
}
@media (max-width: 960px) {
    .mrbt-search-form__row {
        min-height: 44px !important;
    }
    .mrbt-search-form input[type="search"],
    .mrbt-search-form button {
        min-height: 44px !important;
        height: 44px !important;
    }
}


/* Preserve deliberately compact semantic controls; only use global typography where useful. */
.mrbt-services-filters button,
.mr-ui-tabs__button {
    font-family: var(--mr-font-button);
    font-weight: var(--mr-button-weight);
}

/* Motion accessibility. */
@media (prefers-reduced-motion: reduce) {
    .mr-button:hover,
    .mr-ui-button:hover,
    .mrbt-button:hover,
    .mrbt-btn:hover,
    .mrbt-mrc-button:hover,
    .mrbt-cart-checkout-cta:hover,
    .mrbt-update-cart:hover,
    .mrbt-search-trigger:hover,
    .mrbt-account-button:hover,
    .woocommerce a.button:hover,
    .woocommerce button.button:hover,
    button[type="submit"]:hover,
    input[type="submit"]:hover {
        transform: none !important;
    }
}

/* Cart coupon is a composite control: input and action button must share one readable height. */
.mrbt-cart-coupon__row input,
.mrbt-cart-coupon__row button {
    height: max(var(--mr-button-height, 42px), 44px) !important;
    min-height: max(var(--mr-button-height, 42px), 44px) !important;
    box-sizing: border-box !important;
}
.mrbt-cart-coupon__row input {
    padding: 0 14px !important;
    font-size: 13px !important;
    line-height: 1.2 !important;
}
.mrbt-cart-coupon__row button {
    padding-block: 0 !important;
}

/* v0.25.25 — Cart checkout CTA keeps readable hover contrast and smoother motion. */
.mrbt-cart-checkout-cta {
    color: #fff !important;
    transition: transform .34s cubic-bezier(.2,.65,.3,1), background-color .24s ease, border-color .24s ease, color .24s ease !important;
}
.mrbt-cart-checkout-cta:hover,
.mrbt-cart-checkout-cta:focus-visible {
    color: #fff !important;
    background: var(--mr-color-primary-hover, var(--mr-color-primary,#1e8a8a)) !important;
}

/* v0.25.27 — Catalog hero search is a compact composite control, not a full-size CTA. */
.mrbt-catalog-search button {
    height: 40px !important;
    min-height: 40px !important;
    padding: 0 16px !important;
    line-height: 1.2 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    white-space: nowrap;
}
.mrbt-catalog-search input {
    height: 40px !important;
}

/* v0.25.31 — Ready Theme hero actions use a readable hero-specific size while retaining global typography/radius/motion. */
.mrbt-ready-mrc .mrbt-mrc-hero .mrbt-mrc-actions .mrbt-mrc-button {
    height: 40px !important;
    min-height: 40px !important;
    padding: 0 16px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1.2 !important;
    white-space: nowrap;
}
