/* Shared storefront action buttons. Selection cards, navigation, icon controls,
   quantity steppers and payment-provider widgets keep their own semantics. */
:root {
  --button-background: #000;
  --button-hover: #262626;
  --button-radius: 6px;
}
body :is(
  .btn.primary,
  .editorial .btn,
  .cart-secure-checkout,
  .cart-config-action,
  .orders-history-action a,
  .btn.ghost,
  .btn-home,
  .btn-rose,
  .btn_dark,
  .btn-outline,
  .about-btn,
  .home-biometric-link,
  .checkout-button,
  .product-actions-row .add-to-bag,
  .add-to-bag--secondary,
  .sticky-buy button,
  .next,
  .validate,
  .apply-filters,
  .fabric-modal-select,
  .ai-shirt-generate,
  .logo-upload-button,
  .quantity-done,
  .cart-quantity-button,
  .cart-confirm-cancel,
  .cart-confirm-remove,
  .customer-tool-button,
  .creation-save button,
  .compare-open,
  .address-save,
  .address-cancel,
  .btn-ajout,
  .orders-empty-action,
  .orders-page .product-line-actions .btn,
  .orders-content .orders-panel.info form > .btn,
  .password-recovery-card button,
  .journal-button,
  .corp-button,
  .logos-button,
  .vendors-intro-content .btn,
  .quality-btn,
  .environment-btn,
  .gt-cta,
  .ai-style-search button,
  .ai-style-card a,
  .finder-input-row button,
  .newsletter button,
  .btn-save-simple,
  .mesures-form__btns .btn,
  .biometric-final-actions button
) {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 48px !important;
  height: auto !important;
  max-width: 100%;
  padding: 12px 22px !important;
  border: 1px solid var(--button-border, #000) !important;
  border-radius: var(--button-radius) !important;
  background: var(--button-fill, #000) !important;
  color: var(--button-text, #fff) !important;
  font: 600 14px/1.5 "DM Sans", Arial, sans-serif !important;
  letter-spacing: .01em !important;
  text-transform: none !important;
  text-align: center;
  text-decoration: none !important;
  white-space: normal;
  box-shadow: none !important;
  cursor: pointer;
  transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}
body :is(
  .btn.primary,
  .editorial .btn,
  .cart-secure-checkout,
  .cart-config-action,
  .orders-history-action a,
  .btn.ghost,
  .btn-home,
  .btn-rose,
  .btn_dark,
  .btn-outline,
  .about-btn,
  .home-biometric-link,
  .checkout-button,
  .product-actions-row .add-to-bag,
  .add-to-bag--secondary,
  .sticky-buy button,
  .next,
  .validate,
  .apply-filters,
  .fabric-modal-select,
  .ai-shirt-generate,
  .logo-upload-button,
  .quantity-done,
  .cart-quantity-button,
  .cart-confirm-cancel,
  .cart-confirm-remove,
  .customer-tool-button,
  .creation-save button,
  .compare-open,
  .address-save,
  .address-cancel,
  .btn-ajout,
  .orders-empty-action,
  .orders-page .product-line-actions .btn,
  .orders-content .orders-panel.info form > .btn,
  .password-recovery-card button,
  .journal-button,
  .corp-button,
  .logos-button,
  .vendors-intro-content .btn,
  .quality-btn,
  .environment-btn,
  .gt-cta,
  .ai-style-search button,
  .ai-style-card a,
  .finder-input-row button,
  .newsletter button,
  .btn-save-simple,
  .mesures-form__btns .btn,
  .biometric-final-actions button
):hover {
  background: var(--button-hover-fill, #262626) !important;
  border-color: var(--button-hover-border, #262626) !important;
  color: var(--button-hover-text, #fff) !important;
  transform: none !important;
}
/* Variants use tokens so they also override highly specific legacy selectors. */
body :is(.cart-config-action, .btn-outline, .add-to-bag--secondary, #customizeBtn, .checkout-button.checkout-edit, .cart-quantity-button, .cart-confirm-cancel, .address-cancel, .compare-open, .cart-achat .btn-home, .checkout-pickup-actions .checkout-button:not(.is-selected), [data-pickup-cancel]) {
  --button-fill: #fff;
  --button-text: #000;
  --button-hover-fill: #f0f0f0;
  --button-hover-border: #000;
  --button-hover-text: #000;
}
/* Inverse buttons remain legible on dark sections. */
body :is(.btn.ghost, .corp-final .corp-button) {
  --button-fill: transparent;
  --button-border: #fff;
  --button-text: #fff;
  --button-hover-fill: #fff;
  --button-hover-border: #fff;
  --button-hover-text: #000;
}
body .cart-confirm-remove {
  --button-fill: #a52626;
  --button-border: #a52626;
  --button-hover-fill: #801c1c;
  --button-hover-border: #801c1c;
}
body :is(
  .btn.primary,
  .editorial .btn,
  .cart-secure-checkout,
  .cart-config-action,
  .orders-history-action a,
  .btn.ghost,
  .btn-home,
  .btn-rose,
  .btn_dark,
  .btn-outline,
  .about-btn,
  .home-biometric-link,
  .checkout-button,
  .product-actions-row .add-to-bag,
  .add-to-bag--secondary,
  .sticky-buy button,
  .next,
  .validate,
  .apply-filters,
  .fabric-modal-select,
  .ai-shirt-generate,
  .logo-upload-button,
  .quantity-done,
  .cart-quantity-button,
  .cart-confirm-cancel,
  .cart-confirm-remove,
  .customer-tool-button,
  .creation-save button,
  .compare-open,
  .address-save,
  .address-cancel,
  .btn-ajout,
  .orders-empty-action,
  .orders-page .product-line-actions .btn,
  .orders-content .orders-panel.info form > .btn,
  .password-recovery-card button,
  .journal-button,
  .corp-button,
  .logos-button,
  .vendors-intro-content .btn,
  .quality-btn,
  .environment-btn,
  .gt-cta,
  .ai-style-search button,
  .ai-style-card a,
  .finder-input-row button,
  .newsletter button,
  .btn-save-simple,
  .mesures-form__btns .btn,
  .biometric-final-actions button
):focus-visible {
  outline: 2px solid #000 !important;
  outline-offset: 4px;
}
body :is(
  .btn.primary,
  .editorial .btn,
  .cart-secure-checkout,
  .cart-config-action,
  .orders-history-action a,
  .btn.ghost,
  .btn-home,
  .btn-rose,
  .btn_dark,
  .btn-outline,
  .about-btn,
  .home-biometric-link,
  .checkout-button,
  .product-actions-row .add-to-bag,
  .add-to-bag--secondary,
  .sticky-buy button,
  .next,
  .validate,
  .apply-filters,
  .fabric-modal-select,
  .ai-shirt-generate,
  .logo-upload-button,
  .quantity-done,
  .cart-quantity-button,
  .cart-confirm-cancel,
  .cart-confirm-remove,
  .customer-tool-button,
  .creation-save button,
  .compare-open,
  .address-save,
  .address-cancel,
  .btn-ajout,
  .orders-empty-action,
  .orders-page .product-line-actions .btn,
  .orders-content .orders-panel.info form > .btn,
  .password-recovery-card button,
  .journal-button,
  .corp-button,
  .logos-button,
  .vendors-intro-content .btn,
  .quality-btn,
  .environment-btn,
  .gt-cta,
  .ai-style-search button,
  .ai-style-card a,
  .finder-input-row button,
  .newsletter button,
  .btn-save-simple,
  .mesures-form__btns .btn,
  .biometric-final-actions button
):is(:disabled, [aria-disabled="true"]) {
  opacity: .5 !important;
  cursor: not-allowed;
  pointer-events: none;
}
body :is(
  .btn.primary,
  .editorial .btn,
  .cart-secure-checkout,
  .cart-config-action,
  .orders-history-action a,
  .btn.ghost,
  .btn-home,
  .btn-rose,
  .btn_dark,
  .btn-outline,
  .about-btn,
  .home-biometric-link,
  .checkout-button,
  .product-actions-row .add-to-bag,
  .add-to-bag--secondary,
  .sticky-buy button,
  .next,
  .validate,
  .apply-filters,
  .fabric-modal-select,
  .ai-shirt-generate,
  .logo-upload-button,
  .quantity-done,
  .cart-quantity-button,
  .cart-confirm-cancel,
  .cart-confirm-remove,
  .customer-tool-button,
  .creation-save button,
  .compare-open,
  .address-save,
  .address-cancel,
  .btn-ajout,
  .orders-empty-action,
  .orders-page .product-line-actions .btn,
  .orders-content .orders-panel.info form > .btn,
  .password-recovery-card button,
  .journal-button,
  .corp-button,
  .logos-button,
  .vendors-intro-content .btn,
  .quality-btn,
  .environment-btn,
  .gt-cta,
  .ai-style-search button,
  .ai-style-card a,
  .finder-input-row button,
  .newsletter button,
  .btn-save-simple,
  .mesures-form__btns .btn,
  .biometric-final-actions button
)[hidden] { display: none !important; }
@media (prefers-reduced-motion: reduce) {
body :is(
  .btn.primary,
  .editorial .btn,
  .cart-secure-checkout,
  .cart-config-action,
  .orders-history-action a,
  .btn.ghost,
  .btn-home,
  .btn-rose,
  .btn_dark,
  .btn-outline,
  .about-btn,
  .home-biometric-link,
  .checkout-button,
  .product-actions-row .add-to-bag,
  .add-to-bag--secondary,
  .sticky-buy button,
  .next,
  .validate,
  .apply-filters,
  .fabric-modal-select,
  .ai-shirt-generate,
  .logo-upload-button,
  .quantity-done,
  .cart-quantity-button,
  .cart-confirm-cancel,
  .cart-confirm-remove,
  .customer-tool-button,
  .creation-save button,
  .compare-open,
  .address-save,
  .address-cancel,
  .btn-ajout,
  .orders-empty-action,
  .orders-page .product-line-actions .btn,
  .orders-content .orders-panel.info form > .btn,
  .password-recovery-card button,
  .journal-button,
  .corp-button,
  .logos-button,
  .vendors-intro-content .btn,
  .quality-btn,
  .environment-btn,
  .gt-cta,
  .ai-style-search button,
  .ai-style-card a,
  .finder-input-row button,
  .newsletter button,
  .btn-save-simple,
  .mesures-form__btns .btn,
  .biometric-final-actions button
) { transition: none; }
}

body .site-button-arrow { display:inline-block; flex:0 0 auto; margin-left:8px; font:400 18px/1 Arial,sans-serif; color:inherit; }

body :is(.text-link, .review-stories-link, .customer-reviews-link, .corp-text-link) { display:inline-flex; align-items:center; gap:12px; font:600 13px/1.5 "DM Sans",Arial,sans-serif; letter-spacing:0; text-transform:none; text-decoration:none; border-bottom:1px solid currentColor; padding-bottom:5px; }
body :is(.text-link, .review-stories-link, .customer-reviews-link, .corp-text-link) .site-button-arrow { margin-left:0; }

/* Compact paired actions must fit the cart's narrow product column. */
#cartDrawer .cart-item-config-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
#cartDrawer .cart-item-config-actions form { min-width:0; }
#cartDrawer .cart-config-action {
  width:100%; min-width:0; height:48px!important; padding:10px 6px!important;
  gap:6px; font-size:12px!important; white-space:nowrap;
}
#cartDrawer .cart-config-action span { flex-shrink:0; line-height:1; }
@media(max-width:600px) {
  #cartDrawer .cart-item-config-actions { grid-template-columns:1fr; }
}

/* Product actions: wide purchase button with price, compact outlined customization. */
.product-actions-row {
  grid-template-columns:minmax(0,2.6fr) minmax(112px,1fr)!important;
  align-items:stretch; gap:12px;
}
.product-actions-row > *, .product-actions-row form { min-width:0; max-width:100%; }
.product-actions-row :is(#addToBag,#customizeBtn) {
  width:100%; min-width:0; height:52px!important; min-height:52px!important;
  padding:10px 8px!important; gap:6px;
  border-radius:2px!important; font-size:12px!important; letter-spacing:.04em!important;
  text-transform:uppercase!important; white-space:nowrap;
}
.product-actions-row #addToBag { flex-direction:row; flex-wrap:nowrap; }
.product-actions-row :is(.product-cart-label,.product-cart-price) { white-space:nowrap; }
.product-actions-row #customizeBtn {
  --button-border:#9a9a9a; --button-fill:#fff; --button-text:#333;
  --button-hover-border:#333; --button-hover-fill:#f5f5f5; --button-hover-text:#000;
}
@media(max-width:1100px) {
  .product-actions-row { grid-template-columns:minmax(0,1fr) 112px!important; gap:8px; }
  .product-actions-row :is(#addToBag,#customizeBtn) { font-size:11px!important; letter-spacing:0!important; gap:4px; padding:10px 5px!important; }
}
@media(max-width:360px) {
  .product-actions-row { grid-template-columns:minmax(0,1fr) 96px!important; gap:6px; }
  .product-actions-row :is(#addToBag,#customizeBtn) { font-size:10px!important; }
}
