/* Button Library V3, approved 2026-10-11 (including the grey arrow exception).
 * Three styles:solid / blue outline / text. Legacy selectors are aliases.
 * Arrow-only paging keeps grey outlines and blue-fill hover. Utility icons stay
 * neutral, and text actions use text-only feedback (user correction 2026-10-11).
 * Scoped !important declarations bridge legacy page/ID rules during migration.
 * Load after page styles; new controls should use .ui-button + optional
 * --solid / --text / --icon / --arrow / --round modifiers.
 */
:root {
  --ui-brand: #0072ce !important;
  --ui-hover: #0054a6 !important;
  --ui-pressed: #003e7d !important;
  --ui-line: #d8dde1 !important;
  --ui-arrow: #4d4d4d !important;
  --ui-soft: #f1f7fc !important;
  --ui-disabled: #e9eef2 !important;
  --ui-disabled-ink: #75818b !important;
  --ui-motion: 180ms ease !important;
  --ui-shadow: 0 6px 16px rgb(0 61 118 / 24%) !important;
}
:root
  body
  :where(
    .cp-btn,
    #successModal .cp-modal-actions .cp-btn,
    #forgotModal .cp-btn,
    .ui-button,
    #newsletterForm button,
    .filter-confirm,
    .filter-clear-all,
    .product-card-add,
    .product-load-more,
    .header-navbar,
    .header-user,
    .header-cart,
    .burger-close,
    .cp-modal-close,
    .footer-social-icon,
    .swiper-button-prev,
    .swiper-button-next,
    .product-search button,
    .order-search button,
    .inquiry-search button,
    .login-forgot,
    .login-apply-link a,
    .member-edit,
    .order-back,
    .single-extra-specs summary,
    .laimu-job-link,
    .cart-list .item-del,
    .filter-tag-remove,
    .caper-captcha-refresh
  ) {
  --button-hover-bg: var(--ui-hover) !important;
  --button-hover-border: var(--ui-hover) !important;
  --button-hover-ink: #fff !important;
  --button-hover-decoration: none !important;
  --button-active-bg: var(--ui-pressed) !important;
  --button-active-border: var(--ui-pressed) !important;
  --button-active-ink: #fff !important;
  --button-bg: transparent !important;
  --button-border: var(--ui-brand) !important;
  --button-ink: var(--ui-brand) !important;
  --button-focus: var(--ui-brand) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  min-height: 48px !important;
  height: auto !important;
  max-width: 100% !important;
  padding: 12px 24px !important;
  border: 1px solid var(--button-border) !important;
  border-radius: 0 !important;
  background: var(--button-bg) !important;
  color: var(--button-ink) !important;
  box-shadow: none !important;
  font-family: inherit !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.35 !important;
  text-align: center !important;
  text-decoration: none !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  cursor: pointer !important;
  transform: none !important;
  transition:
    color var(--ui-motion),
    background-color var(--ui-motion),
    border-color var(--ui-motion),
    box-shadow var(--ui-motion) !important;
}
:root
  body
  :where(
    .cp-btn-solid,
    #forgotModal .cp-btn-solid,
    .ui-button--solid,
    #newsletterForm button,
    .filter-confirm
  ) {
  --button-bg: var(--ui-brand) !important;
  --button-border: var(--ui-brand) !important;
  --button-ink: #fff !important;
}
:root
  body
  :where(
    .cp-btn-text,
    .ui-button--text,
    .product-card-add,
    .filter-clear-all,
    .product-load-more,
    .header-navbar,
    .header-user,
    .header-cart,
    .burger-close,
    .cp-modal-close,
    .product-search button,
    .order-search button,
    .inquiry-search button,
    .login-forgot,
    .login-apply-link a,
    .member-edit,
    .order-back,
    .single-extra-specs summary,
    .laimu-job-link,
    .cart-list .item-del,
    .filter-tag-remove
  ) {
  --button-border: transparent !important;
  --button-hover-bg: transparent !important;
  --button-hover-border: transparent !important;
  --button-hover-ink: var(--ui-hover) !important;
  --button-hover-decoration: underline !important;
  --button-active-bg: transparent !important;
  --button-active-border: transparent !important;
  --button-active-ink: var(--ui-pressed) !important;
  padding-inline: 12px !important;
  text-underline-offset: 4px !important;
}
/* Navigation and utility glyphs are neutral; only the glyph changes on hover. */
:root
  body
  :where(
    .ui-button--icon:not(.ui-button--arrow),
    .header-navbar,
    .header-user,
    .header-cart,
    .burger-close,
    .cp-modal-close,
    .product-search button,
    .order-search button,
    .inquiry-search button,
    .filter-tag-remove
  ) {
  --button-border: transparent !important;
  --button-ink: #333 !important;
  --button-hover-bg: transparent !important;
  --button-hover-border: transparent !important;
  --button-hover-ink: var(--ui-brand) !important;
  --button-hover-decoration: none !important;
  --button-active-bg: transparent !important;
  --button-active-border: transparent !important;
  --button-active-ink: var(--ui-pressed) !important;
}
/* Preserve the original social treatment: black icons within light grey circles. */
:root body .footer-social-icon {
  --button-border: #ddd !important;
  --button-ink: #000 !important;
  --button-hover-bg: transparent !important;
  --button-hover-border: var(--ui-brand) !important;
  --button-hover-ink: var(--ui-brand) !important;
  --button-active-bg: transparent !important;
  --button-active-border: var(--ui-pressed) !important;
  --button-active-ink: var(--ui-pressed) !important;
}
:root body .cp-btn-white {
  --button-border: #fff !important;
  --button-ink: #fff !important;
  --button-focus: #fff !important;
}
:root
  body
  :where(
    .ui-button--icon,
    .header-navbar,
    .header-user,
    .header-cart,
    .burger-close,
    .cp-modal-close,
    .footer-social-icon,
    .swiper-button-prev,
    .swiper-button-next,
    .product-search button,
    .order-search button,
    .inquiry-search button,
    .filter-tag-remove
  ) {
  min-width: 44px !important;
  width: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
  padding: 0 !important;
  flex-shrink: 0 !important;
}
:root
  body
  :where(
    .swiper-button-prev,
    .swiper-button-next,
    .ui-button--arrow,
    .pager-arrow
  ) {
  --button-border: var(--ui-line) !important;
  --button-ink: var(--ui-arrow) !important;
}
:root body :where(.footer-social-icon, .ui-button--round) {
  border-radius: 50% !important;
}
/* Legacy arrow strokes, close controls and nested labels inherit currentColor. */
:root body .cp-btn::before {
  display: none !important;
}
:root body :where(.cp-btn, #successModal .cp-modal-actions .cp-btn) .cp-arrow,
:root
  body
  :where(.cp-btn, #successModal .cp-modal-actions .cp-btn)
  .cp-arrow::before,
:root
  body
  :where(.cp-btn, #successModal .cp-modal-actions .cp-btn)
  .cp-arrow::after {
  background: currentColor !important;
}
:root body :where(.cp-btn, #successModal .cp-modal-actions .cp-btn) .cp-arrow {
  margin-left: 0 !important;
  transform: none !important;
  transition: transform var(--ui-motion) !important;
  flex: none !important;
}
:root body :where(.swiper-button-prev, .swiper-button-next)::after {
  color: currentColor !important;
}
:root body .header-navbar {
  padding: 8px !important;
}
:root body .header-navbar span {
  background: currentColor !important;
}
:root body :where(.burger-close, .cp-modal-close)::before,
:root body :where(.burger-close, .cp-modal-close)::after {
  background: currentColor !important;
  transition: background-color var(--ui-motion) !important;
}
:root body .burger-close::before,
:root body .burger-close::after {
  width: 24px !important;
  margin-left: -12px !important;
}
:root body .cp-button-copy {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  min-width: 0 !important;
}
:root body .caper-captcha-refresh {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  width: 100% !important;
  padding: 0 !important;
}
:root body .caper-captcha-refresh-copy {
  color: inherit !important;
}
:root body .laimu-carousel-controls {
  width: 104px !important;
  height: 44px !important;
}
:root body #newsletterForm {
  height: auto !important;
  min-height: 48px !important;
  align-items: stretch !important;
}
:root body #newsletter-email {
  height: auto !important;
  min-height: 46px !important;
}
:root body #newsletterForm button {
  margin: -1px -1px -1px 0 !important;
  flex: 0 0 112px !important;
}
:root body .single-actions {
  gap: 16px !important;
}
:root
  body
  :where(
    .filter-trigger,
    .order-tab,
    .inquiry-tab,
    .order-pager a,
    .order-pager button,
    .inquiry-pager a,
    .inquiry-pager button,
    .product-series button,
    .laimu-history-years button
  ) {
  min-height: 44px !important;
  color: var(--ui-brand) !important;
  transition:
    color var(--ui-motion),
    background-color var(--ui-motion),
    border-color var(--ui-motion) !important;
}
:root body :where(.order-pager, .inquiry-pager) :is(a, button) {
  --button-border: var(--ui-brand) !important;
  --button-ink: var(--ui-brand) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 44px !important;
  height: 44px !important;
  padding: 0 8px !important;
  border: 1px solid var(--button-border) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--button-ink) !important;
  font: inherit !important;
  cursor: pointer !important;
}
:root body :where(.order-pager, .inquiry-pager) .pager-arrow {
  --button-border: var(--ui-line) !important;
  --button-ink: var(--ui-arrow) !important;
}
:root body :where(.order-pager, .inquiry-pager) [aria-current="page"] {
  background: var(--ui-brand) !important;
  border-color: var(--ui-brand) !important;
  color: #fff !important;
}
:root body :where(.inquiry-tab, .order-tab) {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 10px 12px !important;
  border: 0 !important;
  border-bottom: 2px solid transparent !important;
  border-radius: 0 !important;
  background: transparent !important;
  cursor: pointer !important;
  font: inherit !important;
}
:root body :where(.order-tab, .inquiry-tab)[aria-pressed="true"] {
  color: var(--ui-brand) !important;
  border-bottom-color: var(--ui-brand) !important;
}
@media (hover: hover) and (pointer: fine) {
  :root
    body
    :where(
      .cp-btn,
      #successModal .cp-modal-actions .cp-btn,
      #forgotModal .cp-btn,
      .ui-button,
      #newsletterForm button,
      .filter-confirm,
      .filter-clear-all,
      .product-card-add,
      .product-load-more,
      .header-navbar,
      .header-user,
      .header-cart,
      .burger-close,
      .cp-modal-close,
      .footer-social-icon,
      .swiper-button-prev,
      .swiper-button-next,
      .product-search button,
      .order-search button,
      .inquiry-search button,
      .login-forgot,
      .login-apply-link a,
      .member-edit,
      .order-back,
      .single-extra-specs summary,
      .laimu-job-link,
      .cart-list .item-del,
      .filter-tag-remove,
      .caper-captcha-refresh
    ):not(:disabled):not([aria-disabled="true"]):not(.disabled):not(
      .swiper-button-disabled
    ):not(.is-busy):not(.is-loading):not([aria-busy="true"]):hover,
  :root
    body
    :where(
      .filter-trigger,
      .order-tab,
      .inquiry-tab,
      .order-pager a,
      .order-pager button,
      .inquiry-pager a,
      .inquiry-pager button,
      .product-series button,
      .laimu-history-years button
    ):not(:disabled):not([aria-disabled="true"]):not(.disabled):not(
      .swiper-button-disabled
    ):not(.is-busy):not(.is-loading):not([aria-busy="true"]):hover {
    background: var(--button-hover-bg, var(--ui-hover)) !important;
    border-color: var(--button-hover-border, var(--ui-hover)) !important;
    color: var(--button-hover-ink, #fff) !important;
    text-decoration: var(--button-hover-decoration, none) !important;
  }
  :root
    body
    :where(
      .cp-btn-solid,
      #forgotModal .cp-btn-solid,
      .ui-button--solid,
      #newsletterForm button,
      .filter-confirm
    ):not(:disabled):not([aria-disabled="true"]):not(.disabled):not(
      .swiper-button-disabled
    ):not(.is-busy):not(.is-loading):not([aria-busy="true"]):hover {
    box-shadow: var(--ui-shadow) !important;
  }
  :root
    body
    .cp-btn:not(:disabled):not([aria-disabled="true"]):not(.disabled):not(
      .swiper-button-disabled
    ):not(.is-busy):not(.is-loading):not([aria-busy="true"]):hover
    .cp-arrow {
    transform: translateX(3px) !important;
  }
  :root body .product-series button:hover h3 {
    color: inherit !important;
  }
  :root body .product-series button:hover img {
    filter: brightness(0) invert(1) !important;
  }
}
:root
  body
  :where(
    .cp-btn,
    #successModal .cp-modal-actions .cp-btn,
    #forgotModal .cp-btn,
    .ui-button,
    #newsletterForm button,
    .filter-confirm,
    .filter-clear-all,
    .product-card-add,
    .product-load-more,
    .header-navbar,
    .header-user,
    .header-cart,
    .burger-close,
    .cp-modal-close,
    .footer-social-icon,
    .swiper-button-prev,
    .swiper-button-next,
    .product-search button,
    .order-search button,
    .inquiry-search button,
    .login-forgot,
    .login-apply-link a,
    .member-edit,
    .order-back,
    .single-extra-specs summary,
    .laimu-job-link,
    .cart-list .item-del,
    .filter-tag-remove,
    .caper-captcha-refresh
  ):not(:disabled):not([aria-disabled="true"]):not(.disabled):not(
    .swiper-button-disabled
  ):not(.is-busy):not(.is-loading):not([aria-busy="true"]):active,
:root
  body
  :where(
    .filter-trigger,
    .order-tab,
    .inquiry-tab,
    .order-pager a,
    .order-pager button,
    .inquiry-pager a,
    .inquiry-pager button,
    .product-series button,
    .laimu-history-years button
  ):not(:disabled):not([aria-disabled="true"]):not(.disabled):not(
    .swiper-button-disabled
  ):not(.is-busy):not(.is-loading):not([aria-busy="true"]):active {
  background: var(--button-active-bg, var(--ui-pressed)) !important;
  border-color: var(--button-active-border, var(--ui-pressed)) !important;
  color: var(--button-active-ink, #fff) !important;
  box-shadow: none !important;
}
:root
  body
  :where(
    .cp-btn,
    #successModal .cp-modal-actions .cp-btn,
    #forgotModal .cp-btn,
    .ui-button,
    #newsletterForm button,
    .filter-confirm,
    .filter-clear-all,
    .product-card-add,
    .product-load-more,
    .header-navbar,
    .header-user,
    .header-cart,
    .burger-close,
    .cp-modal-close,
    .footer-social-icon,
    .swiper-button-prev,
    .swiper-button-next,
    .product-search button,
    .order-search button,
    .inquiry-search button,
    .login-forgot,
    .login-apply-link a,
    .member-edit,
    .order-back,
    .single-extra-specs summary,
    .laimu-job-link,
    .cart-list .item-del,
    .filter-tag-remove,
    .caper-captcha-refresh
  ):focus-visible,
:root
  body
  :where(
    .filter-trigger,
    .order-tab,
    .inquiry-tab,
    .order-pager a,
    .order-pager button,
    .inquiry-pager a,
    .inquiry-pager button,
    .product-series button,
    .laimu-history-years button
  ):focus-visible {
  outline: 2px solid var(--button-focus, var(--ui-brand)) !important;
  outline-offset: 4px !important;
}
:root
  body
  :where(
    .cp-btn,
    #successModal .cp-modal-actions .cp-btn,
    #forgotModal .cp-btn,
    .ui-button,
    #newsletterForm button,
    .filter-confirm,
    .filter-clear-all,
    .product-card-add,
    .product-load-more,
    .header-navbar,
    .header-user,
    .header-cart,
    .burger-close,
    .cp-modal-close,
    .footer-social-icon,
    .swiper-button-prev,
    .swiper-button-next,
    .product-search button,
    .order-search button,
    .inquiry-search button,
    .login-forgot,
    .login-apply-link a,
    .member-edit,
    .order-back,
    .single-extra-specs summary,
    .laimu-job-link,
    .cart-list .item-del,
    .filter-tag-remove,
    .caper-captcha-refresh
  ):is(
    :disabled,
    [aria-disabled="true"],
    .disabled,
    .swiper-button-disabled
  ):not(.is-busy):not(.is-loading),
:root
  body
  :where(
    .filter-trigger,
    .order-tab,
    .inquiry-tab,
    .order-pager a,
    .order-pager button,
    .inquiry-pager a,
    .inquiry-pager button,
    .product-series button,
    .laimu-history-years button
  ):is(:disabled, [aria-disabled="true"], .disabled) {
  background: var(--ui-disabled) !important;
  border-color: var(--ui-disabled) !important;
  color: var(--ui-disabled-ink) !important;
  box-shadow: none !important;
  opacity: 1 !important;
  cursor: not-allowed !important;
}
:root
  body
  :where(
    .cp-btn-text,
    .ui-button--text,
    .product-card-add,
    .filter-clear-all,
    .product-load-more,
    .header-navbar,
    .header-user,
    .header-cart,
    .burger-close,
    .cp-modal-close,
    .product-search button,
    .order-search button,
    .inquiry-search button,
    .login-forgot,
    .login-apply-link a,
    .member-edit,
    .order-back,
    .single-extra-specs summary,
    .laimu-job-link,
    .cart-list .item-del,
    .filter-tag-remove
  ):is(:disabled, [aria-disabled="true"], .disabled):not(.is-busy):not(
    .is-loading
  ) {
  background: transparent !important;
  border-color: transparent !important;
}
:root
  body
  :where(
    .cp-btn,
    #successModal .cp-modal-actions .cp-btn,
    #forgotModal .cp-btn,
    .ui-button,
    #newsletterForm button,
    .filter-confirm,
    .filter-clear-all,
    .product-card-add,
    .product-load-more,
    .header-navbar,
    .header-user,
    .header-cart,
    .burger-close,
    .cp-modal-close,
    .footer-social-icon,
    .swiper-button-prev,
    .swiper-button-next,
    .product-search button,
    .order-search button,
    .inquiry-search button,
    .login-forgot,
    .login-apply-link a,
    .member-edit,
    .order-back,
    .single-extra-specs summary,
    .laimu-job-link,
    .cart-list .item-del,
    .filter-tag-remove,
    .caper-captcha-refresh
  ):is(.is-busy, .is-loading, [aria-busy="true"]) {
  background: var(--button-bg) !important;
  border-color: var(--button-border) !important;
  color: var(--button-ink) !important;
  box-shadow: none !important;
  cursor: wait !important;
}
@media (max-width: 768px) {
  :root body :where(.single-actions, .access-actions, .product-empty-actions) {
    gap: 12px !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  :root
    body
    :where(
      .cp-btn,
      #successModal .cp-modal-actions .cp-btn,
      #forgotModal .cp-btn,
      .ui-button,
      #newsletterForm button,
      .filter-confirm,
      .filter-clear-all,
      .product-card-add,
      .product-load-more,
      .header-navbar,
      .header-user,
      .header-cart,
      .burger-close,
      .cp-modal-close,
      .footer-social-icon,
      .swiper-button-prev,
      .swiper-button-next,
      .product-search button,
      .order-search button,
      .inquiry-search button,
      .login-forgot,
      .login-apply-link a,
      .member-edit,
      .order-back,
      .single-extra-specs summary,
      .laimu-job-link,
      .cart-list .item-del,
      .filter-tag-remove,
      .caper-captcha-refresh
    ),
  :root
    body
    :where(
      .filter-trigger,
      .order-tab,
      .inquiry-tab,
      .order-pager a,
      .order-pager button,
      .inquiry-pager a,
      .inquiry-pager button,
      .product-series button,
      .laimu-history-years button
    ) {
    transition: none !important;
  }
  :root body .cp-btn:hover .cp-arrow {
    transform: none !important;
  }
}

/* Small glyphs and compact choice controls follow the shared foreground. */
:root body .filter-trigger .filter-count {
  color: inherit !important;
}
:root body .filter-arrow {
  border-top-color: currentColor !important;
}

/* Visibility belongs to page state, including Swiper overflow locking. */
:root body [hidden],
:root body .swiper-button-lock {
  display: none !important;
}
/* Glyphs must retain their own geometry inside the 44px icon hit area. */
:root body .header-navbar {
  gap: 7px !important;
}
:root body .header-navbar span {
  height: 2px !important;
  flex-shrink: 0 !important;
  margin: 0 !important;
}
:root body .filter-arrow::before,
:root body .filter-arrow::after {
  background: currentColor !important;
}
@media (max-width: 600px) {
  :root body .filter-bar {
    flex-wrap: wrap;
    gap: 12px;
  }
  :root body .filter-item {
    flex: 1 1 120px;
    min-width: 120px;
  }
  :root body .filter-trigger {
    padding: 12px 4px;
    height: auto;
    gap: 8px;
  }
}
