/* =============================================================================
   ISLENCY Button Design System — single source of truth
   Tokens: --islency-btn-* in views/brand_css.xml
   Change tokens once → all buttons update site-wide.
   ============================================================================= */

/* ── Shared reset (kill Odoo/Bootstrap gradients on buttons) ─────────────── */
body.o_theme_islency_nova .btn,
body.o_theme_islency_nova .btn-primary,
body.o_theme_islency_nova .btn-secondary,
body.o_theme_islency_nova .btn-outline-primary,
body.o_theme_islency_nova .btn-outline-secondary,
body.o_theme_islency_nova .islency-portal-btn,
body.o_theme_islency_nova .s_islency_header_categories_btn {
    background-image: none !important;
    font-family: var(--islency-font-family-btn, var(--islency-font-family-base));
    font-weight: var(--islency-btn-font-weight, 600);
    box-shadow: var(--islency-btn-shadow, none);
}

/* ── Shared sizing (primary & outline identical dimensions) ──────────────── */
body.o_theme_islency_nova .btn:not(.btn-sm):not(.btn-link):not(.islency-portal-btn--sm):not(.s_islency_search_btn),
body.o_theme_islency_nova .islency-portal-btn:not(.islency-portal-btn--sm),
body.o_theme_islency_nova .s_islency_header_categories_btn,
body.o_theme_islency_nova .btn-lg,
body.o_theme_islency_nova .islency-portal-btn--lg {
    padding: var(--islency-btn-padding-y, 0.625rem) var(--islency-btn-padding-x, 1.25rem) !important;
    font-size: var(--islency-btn-font-size, 0.9375rem) !important;
    border-radius: var(--islency-btn-border-radius, 0.5rem) !important;
    min-height: var(--islency-btn-min-height, 2.5rem);
    line-height: 1.35;
}

body.o_theme_islency_nova .btn-sm,
body.o_theme_islency_nova .islency-portal-btn--sm {
    padding: var(--islency-btn-sm-padding-y, 0.375rem) var(--islency-btn-sm-padding-x, 0.875rem) !important;
    font-size: var(--islency-btn-sm-font-size, 0.8125rem) !important;
    border-radius: var(--islency-btn-sm-border-radius, 0.375rem) !important;
    min-height: var(--islency-btn-sm-min-height, 2rem);
    line-height: 1.35;
}

/* ── Primary ─────────────────────────────────────────────────────────────── */
body.o_theme_islency_nova .btn-primary,
body.o_theme_islency_nova .btn-primary:active,
body.o_theme_islency_nova .btn-primary.active,
body.o_theme_islency_nova .btn-primary:focus,
body.o_theme_islency_nova .btn-primary:focus-visible,
body.o_theme_islency_nova .btn-group .btn-primary,
body.o_theme_islency_nova .btn-group > .btn.btn-primary,
body.o_theme_islency_nova .btn-group > .btn.btn-primary.active,
body.o_theme_islency_nova .modal-footer .btn-primary,
body.o_theme_islency_nova .o_portal .btn-primary,
body.o_theme_islency_nova #wrapwrap.o_portal .btn-primary,
body.o_theme_islency_nova .o_islency_portal .btn-primary,
body.o_theme_islency_nova .islency-portal-btn--primary,
body.o_theme_islency_nova .s_islency_header_categories_btn {
    /* Shorthand beats Odoo website color-combo `background: linear-gradient(...)` */
    background: var(--islency-btn-primary-bg, #124a6e) !important;
    border-color: var(--islency-btn-primary-border, #124a6e) !important;
    color: var(--islency-btn-primary-color, #fff) !important;
}

body.o_theme_islency_nova .btn-primary:hover,
body.o_theme_islency_nova .btn-group .btn-primary:hover,
body.o_theme_islency_nova .o_portal .btn-primary:hover,
body.o_theme_islency_nova #wrapwrap.o_portal .btn-primary:hover,
body.o_theme_islency_nova .o_islency_portal .btn-primary:hover,
body.o_theme_islency_nova .islency-portal-btn--primary:hover,
body.o_theme_islency_nova .islency-portal-btn--primary:focus,
body.o_theme_islency_nova .islency-portal-btn--primary:active,
body.o_theme_islency_nova .s_islency_header_categories_btn:hover,
body.o_theme_islency_nova .s_islency_header_categories_btn:focus {
    background: var(--islency-btn-primary-hover-bg, #0f3d58) !important;
    border-color: var(--islency-btn-primary-hover-border, #0f3d58) !important;
    color: var(--islency-btn-primary-hover-color, #fff) !important;
}

body.o_theme_islency_nova .btn-primary:disabled,
body.o_theme_islency_nova .btn-primary.disabled,
body.o_theme_islency_nova .islency-portal-btn--primary:disabled,
body.o_theme_islency_nova .islency-portal-btn--primary.disabled {
    background: var(--islency-btn-primary-bg, #124a6e) !important;
    border-color: var(--islency-btn-primary-border, #124a6e) !important;
    opacity: 0.65;
}

/* ── Outline primary ─────────────────────────────────────────────────────── */
body.o_theme_islency_nova .btn-outline-primary {
    color: var(--islency-btn-secondary-color, #124a6e) !important;
    border-color: var(--islency-brand-sea, #2680c4) !important;
    background-color: transparent !important;
}

body.o_theme_islency_nova .btn-outline-primary:hover,
body.o_theme_islency_nova .btn-outline-primary:focus,
body.o_theme_islency_nova .btn-outline-primary:focus-visible,
body.o_theme_islency_nova .btn-outline-primary.active {
    background: var(--islency-btn-primary-bg, #124a6e) !important;
    border-color: var(--islency-btn-primary-border, #124a6e) !important;
    color: var(--islency-btn-primary-color, #fff) !important;
}

/* ── Secondary / outline-secondary (filter tabs inactive, cancel, etc.) ── */
body.o_theme_islency_nova .btn-secondary,
body.o_theme_islency_nova .btn-outline-secondary,
body.o_theme_islency_nova .btn-group .btn-outline-secondary,
body.o_theme_islency_nova #wrapwrap.o_portal .btn-outline-secondary,
body.o_theme_islency_nova .o_islency_portal .btn-outline-secondary,
body.o_theme_islency_nova .islency-portal-btn--outline,
body.o_theme_islency_nova .islency-wallet-balance-header__cta-secondary {
    color: var(--islency-btn-secondary-color, #124a6e) !important;
    background: var(--islency-btn-secondary-bg, #fff) !important;
    border-color: var(--islency-btn-secondary-border, #d4dfe8) !important;
}

body.o_theme_islency_nova .btn-secondary:hover,
body.o_theme_islency_nova .btn-outline-secondary:hover,
body.o_theme_islency_nova .btn-secondary:focus,
body.o_theme_islency_nova .btn-outline-secondary:focus,
body.o_theme_islency_nova .btn-secondary:focus-visible,
body.o_theme_islency_nova .btn-outline-secondary:focus-visible,
body.o_theme_islency_nova .btn-group .btn-outline-secondary:hover,
body.o_theme_islency_nova .btn-group .btn-outline-secondary:focus,
body.o_theme_islency_nova .btn-group .btn-outline-secondary:focus-visible,
body.o_theme_islency_nova #wrapwrap.o_portal .btn-outline-secondary:hover,
body.o_theme_islency_nova #wrapwrap.o_portal .btn-outline-secondary:focus,
body.o_theme_islency_nova #wrapwrap.o_portal .btn-outline-secondary:focus-visible,
body.o_theme_islency_nova .o_islency_portal .btn-outline-secondary:hover,
body.o_theme_islency_nova .o_islency_portal .btn-outline-secondary:focus,
body.o_theme_islency_nova .o_islency_portal .btn-outline-secondary:focus-visible,
body.o_theme_islency_nova .islency-portal-btn--outline:hover,
body.o_theme_islency_nova .islency-portal-btn--outline:focus,
body.o_theme_islency_nova .islency-portal-btn--outline:active,
body.o_theme_islency_nova .islency-wallet-balance-header__cta-secondary:hover,
body.o_theme_islency_nova .islency-wallet-balance-header__cta-secondary:focus,
body.o_theme_islency_nova .islency-wallet-balance-header__cta-secondary:active {
    color: var(--islency-btn-secondary-hover-color, #124a6e) !important;
    background: var(--islency-btn-secondary-hover-bg, #f8f9fa) !important;
    border-color: var(--islency-btn-secondary-hover-border, #b8cfe0) !important;
}

/* ── Nav tabs / pills / pagination ───────────────────────────────────────── */
body.o_theme_islency_nova .nav-tabs .nav-link.active,
body.o_theme_islency_nova .nav-tabs .nav-item.show .nav-link {
    color: var(--islency-brand-sea-dark, #124a6e) !important;
    border-color: var(--islency-brand-border, #d4dfe8) var(--islency-brand-border, #d4dfe8)
        var(--islency-btn-active-bg, #124a6e) !important;
}

body.o_theme_islency_nova .nav-pills .nav-link.active,
body.o_theme_islency_nova .nav-pills .show > .nav-link {
    background: var(--islency-btn-active-bg, #124a6e) !important;
    border-color: var(--islency-btn-active-border, #124a6e) !important;
    color: var(--islency-btn-active-color, #fff) !important;
}

body.o_theme_islency_nova .page-item.active .page-link {
    background: var(--islency-btn-active-bg, #124a6e) !important;
    border-color: var(--islency-btn-active-border, #124a6e) !important;
    color: var(--islency-btn-active-color, #fff) !important;
}

body.o_theme_islency_nova .page-link {
    color: var(--islency-brand-sea-dark, #124a6e);
}

body.o_theme_islency_nova .page-link:hover {
    color: var(--islency-brand-grass, #4f9e32);
}

/* ── Accent (hero / promo on dark backgrounds) ───────────────────────────── */
body.o_theme_islency_nova #wrapwrap .s_islency_hero .btn-primary,
body.o_theme_islency_nova #wrapwrap .s_islency_promo .btn-primary {
    background: var(--islency-btn-accent-bg, #ffcc28) !important;
    border-color: var(--islency-btn-accent-border, #ffcc28) !important;
    color: var(--islency-btn-accent-color, #124a6e) !important;
}

body.o_theme_islency_nova #wrapwrap .s_islency_hero .btn-primary:hover,
body.o_theme_islency_nova #wrapwrap .s_islency_promo .btn-primary:hover {
    background: var(--islency-btn-accent-hover-bg, #e8a818) !important;
    border-color: var(--islency-btn-accent-hover-border, #e8a818) !important;
    color: var(--islency-btn-accent-hover-color, #124a6e) !important;
}

/* ── Form controls (checkbox accent) ─────────────────────────────────────── */
body.o_theme_islency_nova .form-check-input:checked {
    background-color: var(--islency-brand-sea, #2680c4) !important;
    border-color: var(--islency-brand-sea, #2680c4) !important;
}

/* ── Header search submit (icon-only; exempt from generic .btn sizing) ───── */
body.o_theme_islency_nova .s_islency_search_btn {
    flex: 0 0 auto !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: var(--islency-search-btn-size, 2.25rem) !important;
    min-width: var(--islency-search-btn-size, 2.25rem) !important;
    height: var(--islency-search-btn-size, 2.25rem) !important;
    aspect-ratio: 1;
    margin: var(--islency-search-btn-margin, 0.2rem) !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: var(--islency-search-btn-radius, 50%) !important;
    min-height: unset !important;
    font-size: unset !important;
    line-height: 1 !important;
    background: var(--islency-search-btn-bg, var(--islency-btn-primary-bg, #124a6e)) !important;
    color: var(--islency-search-btn-color, var(--islency-btn-primary-color, #fff)) !important;
    box-shadow: var(--islency-search-btn-shadow, 0 2px 8px rgba(18, 74, 110, 0.22));
    transition: background 0.15s ease, transform 0.15s ease, opacity 0.15s ease;
}

body.o_theme_islency_nova .s_islency_search_btn:hover,
body.o_theme_islency_nova .s_islency_search_btn:focus {
    background: var(--islency-search-btn-hover-bg, var(--islency-btn-primary-hover-bg, #0f3d58)) !important;
    color: var(--islency-search-btn-color, var(--islency-btn-primary-color, #fff)) !important;
    opacity: 1;
}

.s_islency_header_style_dark .s_islency_search_btn,
.s_islency_header_style_gradient .s_islency_search_btn {
    background: var(--islency-h-search-btn) !important;
    box-shadow: none;
}

.s_islency_header_style_dark .s_islency_search_btn:hover,
.s_islency_header_style_dark .s_islency_search_btn:focus,
.s_islency_header_style_gradient .s_islency_search_btn:hover,
.s_islency_header_style_gradient .s_islency_search_btn:focus {
    background: var(--islency-h-search-btn) !important;
    opacity: 0.9;
}

body.o_theme_islency_nova .s_islency_mobile_header_top .s_islency_search_btn {
    width: 1.95rem !important;
    min-width: 1.95rem !important;
    height: 1.95rem !important;
    margin: 0 !important;
}

/* Product page CTA — grass green (marketplace conversion); scoped to #wrap (Odoo 19 PDP) */
body.o_theme_islency_nova #wrap.o_wsale_product_page #add_to_cart,
body.o_theme_islency_nova #wrap.o_wsale_product_page #add_to_cart_wrap .btn-primary {
    background-color: var(--islency-brand-grass, #4f9e32) !important;
    background-image: none !important;
    background: var(--islency-brand-grass, #4f9e32) !important;
    border-color: var(--islency-brand-grass, #4f9e32) !important;
    color: #fff !important;
}

body.o_theme_islency_nova #wrap.o_wsale_product_page #add_to_cart:hover,
body.o_theme_islency_nova #wrap.o_wsale_product_page #add_to_cart:focus,
body.o_theme_islency_nova #wrap.o_wsale_product_page #add_to_cart_wrap .btn-primary:hover,
body.o_theme_islency_nova #wrap.o_wsale_product_page #add_to_cart_wrap .btn-primary:focus {
    background-color: var(--islency-brand-grass-dark, #357a22) !important;
    background-image: none !important;
    background: var(--islency-brand-grass-dark, #357a22) !important;
    border-color: var(--islency-brand-grass-dark, #357a22) !important;
    color: #fff !important;
}

/* Auth pages — solid navy login/signup/reset (beats legacy auth.css gradient link) */
body.o_theme_islency_nova .oe_login_buttons .btn-primary,
body.o_theme_islency_nova .oe_login_form .btn-primary,
body.o_theme_islency_nova .oe_signup_form .btn-primary,
body.o_theme_islency_nova .oe_reset_password_form .btn-primary,
body.o_theme_islency_nova .oe_website_login_container .btn-primary,
body.o_theme_islency_nova .o_islency_auth .btn-primary {
    background-color: var(--islency-btn-primary-bg, #124a6e) !important;
    background-image: none !important;
    background: var(--islency-btn-primary-bg, #124a6e) !important;
    border-color: var(--islency-btn-primary-border, #124a6e) !important;
    color: var(--islency-btn-primary-color, #fff) !important;
}

body.o_theme_islency_nova .oe_login_buttons .btn-primary:hover,
body.o_theme_islency_nova .oe_login_buttons .btn-primary:focus,
body.o_theme_islency_nova .oe_login_buttons .btn-primary:focus-visible,
body.o_theme_islency_nova .oe_login_form .btn-primary:hover,
body.o_theme_islency_nova .oe_login_form .btn-primary:focus,
body.o_theme_islency_nova .oe_login_form .btn-primary:focus-visible,
body.o_theme_islency_nova .oe_signup_form .btn-primary:hover,
body.o_theme_islency_nova .oe_signup_form .btn-primary:focus,
body.o_theme_islency_nova .oe_signup_form .btn-primary:focus-visible,
body.o_theme_islency_nova .oe_reset_password_form .btn-primary:hover,
body.o_theme_islency_nova .oe_reset_password_form .btn-primary:focus,
body.o_theme_islency_nova .oe_reset_password_form .btn-primary:focus-visible,
body.o_theme_islency_nova .oe_website_login_container .btn-primary:hover,
body.o_theme_islency_nova .oe_website_login_container .btn-primary:focus,
body.o_theme_islency_nova .oe_website_login_container .btn-primary:focus-visible,
body.o_theme_islency_nova .o_islency_auth .btn-primary:hover,
body.o_theme_islency_nova .o_islency_auth .btn-primary:focus,
body.o_theme_islency_nova .o_islency_auth .btn-primary:focus-visible {
    background-color: var(--islency-btn-primary-hover-bg, #0f3d58) !important;
    background-image: none !important;
    background: var(--islency-btn-primary-hover-bg, #0f3d58) !important;
    border-color: var(--islency-btn-primary-hover-border, #0f3d58) !important;
    color: var(--islency-btn-primary-hover-color, #fff) !important;
}
