
/* 1. HERO-REVEAL FALLBACK — Contact & Cart hero titles ship at opacity:0
      waiting for a JS reveal that doesn't always fire. Guarantee they
      appear even if that JS never runs (reveal still plays when it does). */
@keyframes solasHeroShow { to { opacity: 1; } }
.solas-hero-heading .elementor-heading-title,
.solas-hero-sub {
  animation: solasHeroShow .5s ease-out .8s forwards;
}
@media (prefers-reduced-motion: reduce) {
  .solas-hero-heading .elementor-heading-title,
  .solas-hero-sub { animation: none; opacity: 1 !important; }
}

/* 2. 404 PAGE — title/sub sit on a navy band; navy-on-navy was unreadable */
body.error404 .page-title.page-title { color: #FFFFFF !important; }
body.error404 .page-sub-title.page-sub-title { color: rgba(255,255,255,.88) !important; }
body.error404 .search-submit { min-width: 44px; min-height: 44px; }

/* 3. CHECKOUT — "Show Order Summary" toggle was slate #334155 on dark navy (~2:1) */
.ast-order-review-toggle-text { color: #FFFFFF !important; }

/* 4. DISABLED ADD-TO-CART — the button hides its real label and paints
      "Select a size first" via ::after, brand-blue on brand-blue dimmed by
      opacity (~1.5:1). Pale pill + navy pseudo text; doubled class wins
      the cascade against 7574. */
body.single-product .single_add_to_cart_button.single_add_to_cart_button.disabled,
body.single-product .single_add_to_cart_button.single_add_to_cart_button[disabled],
body.single-product .single_add_to_cart_button.single_add_to_cart_button.woobt-disabled {
  background: #DCE7F3 !important;
  opacity: 1 !important;
}
body.single-product .single_add_to_cart_button.single_add_to_cart_button.disabled::after,
body.single-product .single_add_to_cart_button.single_add_to_cart_button[disabled]::after,
body.single-product .single_add_to_cart_button.single_add_to_cart_button.woobt-disabled::after {
  color: var(--solas-disabled-text, #ABABAB) !important;
}

/* 5. COMMERCE BUTTONS & LINKS — white text sat on #4A85C5 (3.68:1) at 12-13px.
      Brand blue #346CAC = 5.4:1 with white; labels up to 15px. */
.woocommerce-cart .coupon .button,
.woocommerce-checkout .coupon .button,
.wc-proceed-to-checkout a.checkout-button,
.astra-cart-drawer .elementor-button {
  background: var(--solas-btn-fill, #0B2349) !important;
  color: #FFFFFF !important;
  font-size: 15px !important;
}
.woocommerce td.product-name a,
a.shipping-calculator-button { color: var(--solas-link, #385E9B) !important; }

/* 6. iOS INPUT-ZOOM GUARD — inputs under 16px make iPhones auto-zoom on focus */
@media (max-width: 767px) {
  .woocommerce .input-text,
  .woocommerce input.qty,
  input.dgwt-wcas-search-input,
  input[type="search"],
  .woocommerce-checkout select,
  select.country_to_state, select.state_select {
    font-size: 16px !important;
  }
  .woocommerce .input-text, .woocommerce input.qty { min-height: 42px; }
}

/* 7. TAP TARGETS — measured 13-35px; minimum comfortable is 40-44px */
@media (max-width: 767px) {
  .elementor-menu-toggle { min-width: 44px; min-height: 44px; }
  .woocommerce a.remove {
    width: 38px; height: 38px; line-height: 36px; font-size: 22px;
  }
  .pf-chip, .coa-chip { min-height: 40px; padding-top: 8px; padding-bottom: 8px; }
  .elementor-accordion .elementor-tab-title { padding-top: 6px; padding-bottom: 6px; }
  a.elementor-accordion-title { display: block; padding: 8px 0; }
  .ast-quick-view-close-btn { width: 40px !important; height: 40px !important; }
  .woocommerce input[type="checkbox"], .woocommerce input[type="radio"] {
    width: 18px; height: 18px;
  }
  .woocommerce-breadcrumb a { display: inline-block; padding: 6px 2px; }
  a.coa-view { display: inline-block; padding: 9px 0; }
  .solas-bulk-pill { min-height: 38px; padding: 8px 14px; }
  footer .menu-link { display: inline-block; padding: 6px 0; }
  .hfe-loop-product__link { display: inline-block; padding: 3px 0; }
}

/* 8. PROMO TAB (#sp-tab) — compact on mobile so it stops covering
      left-column ADD TO CART buttons while scrolling the catalog */
@media (max-width: 767px) {
  #sp-tab { bottom: 12px !important; left: 10px !important; }
  #sp-tab .sp-tab-main { padding: 7px 12px !important; }
  #sp-tab .sp-tab-pct { font-size: 14px !important; }
  #sp-tab .sp-tab-sub { font-size: 10px !important; }
}

/* 9. PRODUCT-CARD MICRO-TEXT (2-per-row mobile grid) — badge was 9px */
@media (max-width: 767px) {
  .hfe-woo-products-grid .solas-six-badge { font-size: 10px !important; }
  .hfe-woo-products-grid .hfe-product-category { font-size: 10.5px !important; }
}

/* 10. SMALL-TYPE CONTRAST — COA cards + footer payment labels */
.coa-test-method { color: #42566E !important; }          /* was 4.37:1 */
.coa-thumb-tag { color: #334155 !important; font-size: 10.5px !important; } /* was 3.43:1 @10px */
.coa-card-cat { font-size: 10.5px !important; }
.solas-raw-footer__pay-label { color: #D5E0EE !important; } /* was 4.44:1 on navy */
.solas-pay-badge { color: #45536B !important; }             /* was 3.03-3.56:1 */

/* 11. CHECKOUT COUPON PROMPT — "Have a coupon?Click here" missing space */
.woocommerce-form-coupon-toggle .showcoupon { margin-left: .3em; }

/* 12. CART TABLE (mobile stacked view) — breathing room for label/value rows */
@media (max-width: 767px) {
  .woocommerce-cart table.cart td { padding: 8px 12px; }
}
