/* FlankBlast staging — dark tactical base, orange accent */
:root {
  --sb-bg: #0b0d0f;
  --sb-bg-2: #14171a;
  --sb-surface: #1b1e22;
  --sb-text: #e8e8e8;
  --sb-muted: #a0a4aa;
  --sb-orange: #f97316;
  --sb-orange-2: #ea580c;
  --sb-line: #2a2e33;
  --sb-white: #f5f5f5;
}

html,
body,
.site,
#inner-wrap,
#wrapper,
#page,
body .content-bg,
body .entry-content-wrap,
body .wp-site-blocks {
  background-color: var(--sb-bg) !important;
  color: var(--sb-text);
}

body,
button,
input,
select,
textarea {
  color: var(--sb-text);
}

a {
  color: var(--sb-orange);
}
a:hover,
a:focus {
  color: #fdba74;
}

/* Header / footer */
#masthead,
.site-header,
#colophon,
.site-footer,
header.site-header,
footer.site-footer {
  background: #0a0a0a !important;
  color: var(--sb-text) !important;
  border-color: var(--sb-line) !important;
}

.site-header a,
.site-footer a,
#masthead a,
#colophon a,
.main-navigation a,
.header-menu-container a {
  color: var(--sb-text) !important;
}
.site-header a:hover,
.main-navigation a:hover {
  color: var(--sb-orange) !important;
}

.site-title a,
.branding a,
.site-branding a {
  color: var(--sb-white) !important;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.site-description {
  color: var(--sb-muted) !important;
}

.sb-announce {
  background: var(--sb-orange);
  color: #111;
  text-align: center;
  font-weight: 650;
  letter-spacing: 0.02em;
  padding: 0.55rem 1rem;
  font-size: 0.92rem;
}

/* Buttons */
.sb-btn,
.button,
button.button,
.wp-block-button__link,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.single_add_to_cart_button,
.checkout-button,
.wp-element-button {
  background: var(--sb-orange) !important;
  color: #111 !important;
  border: 0 !important;
  border-radius: 2px !important;
  font-weight: 650 !important;
}
.sb-btn--ghost {
  background: transparent !important;
  color: var(--sb-white) !important;
  border: 1px solid var(--sb-orange) !important;
}
.sb-btn--primary,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce button.button.alt:hover {
  background: var(--sb-orange-2) !important;
  color: #111 !important;
}

/* Homepage */
.sb-home { color: var(--sb-text); }
.sb-hero { position: relative; margin: 0 0 2rem; }
.sb-hero__img { display: block; width: 100%; height: auto; max-height: 560px; object-fit: cover; object-position: center center; }
.sb-hero__copy { padding: 1.75rem 0 0; }
.sb-eyebrow { text-transform: uppercase; letter-spacing: 0.14em; color: var(--sb-orange); font-size: 0.8rem; margin: 0 0 0.6rem; }
.sb-hero h1, .sb-section h2 { color: var(--sb-white); letter-spacing: -0.02em; }
.sb-subhead, .sb-lead { color: var(--sb-muted); max-width: 40rem; }
.sb-cta-row { display: flex; gap: 0.75rem; flex-wrap: wrap; margin-top: 1.25rem; }
.sb-btn { display: inline-block; padding: 0.75rem 1.2rem; text-decoration: none !important; }
.sb-promises { background: var(--sb-bg-2); border-top: 1px solid var(--sb-line); border-bottom: 1px solid var(--sb-line); margin: 2rem 0; }
.sb-promises ul { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 0.75rem; list-style: none; margin: 0; padding: 1rem 0; }
.sb-promises li { text-align: center; font-weight: 600; color: var(--sb-white); }
.sb-section { margin: 2.5rem 0; }
.sb-center { text-align: center; }
.sb-text-link { color: var(--sb-orange); }
.sb-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; margin-top: 1.25rem; }
.sb-tile { display: block; background: var(--sb-surface); color: var(--sb-text) !important; text-decoration: none !important; border: 1px solid var(--sb-line); }
.sb-tile img { width: 100%; height: auto; display: block; }
.sb-tile h3, .sb-tile p, .sb-tile span { padding: 0 0.9rem; }
.sb-tile h3 { margin: 0.8rem 0 0.3rem; color: var(--sb-white); }
.sb-tile p { margin: 0 0 0.5rem; color: var(--sb-muted); }
.sb-tile span { display: block; padding-bottom: 1rem; color: var(--sb-orange); font-weight: 600; }
.sb-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1.25rem; list-style: none; margin: 1rem 0 0; padding: 0; counter-reset: step; }
.sb-steps li { background: var(--sb-surface); padding: 1rem 1.1rem; border-top: 3px solid var(--sb-orange); }
.sb-steps h3 { margin-top: 0; color: var(--sb-white); }
.sb-safety { display: grid; grid-template-columns: 1fr 1.4fr; gap: 1.5rem; align-items: center; background: var(--sb-bg-2); padding: 1.25rem; border: 1px solid var(--sb-line); }
.sb-safety__img img { width: 100%; height: auto; display: block; }
.sb-email, .sb-brand { background: var(--sb-surface); padding: 1.5rem; border: 1px solid var(--sb-line); }
.sb-fineprint, .sb-seo-foot { color: var(--sb-muted); font-size: 0.92rem; }
.sb-safety-block { background: var(--sb-bg-2); border-left: 4px solid var(--sb-orange); padding: 1rem 1.1rem; margin: 1rem 0; }
.sb-safety-block h2 { margin-top: 0; color: var(--sb-white); font-size: 1.1rem; }

/* WooCommerce surfaces */
.woocommerce div.product, .woocommerce-cart, .woocommerce-checkout, .woocommerce-account,
.woocommerce ul.products li.product, .woocommerce-tabs, .related, .upsells,
.wp-block-group, .entry-content, .entry-title, h1, h2, h3, h4 {
  color: var(--sb-text);
}
.woocommerce div.product p.price, .woocommerce ul.products li.product .price, .price {
  color: var(--sb-orange) !important;
}
.woocommerce ul.products li.product, .woocommerce-error, .woocommerce-info, .woocommerce-message,
.woocommerce-MyAccount-navigation, .woocommerce-MyAccount-content, table.shop_table,
.cart-collaterals, form.checkout, .woocommerce-checkout #payment {
  background: var(--sb-surface);
  color: var(--sb-text);
  border-color: var(--sb-line);
}
.woocommerce-error, .woocommerce-info, .woocommerce-message { padding: 1rem; }
input, select, textarea, .input-text, .select2-container .select2-selection--single {
  background: #0f1113 !important;
  color: var(--sb-text) !important;
  border-color: var(--sb-line) !important;
}

@media (max-width: 700px) {
  .sb-safety { grid-template-columns: 1fr; }
  .sb-hero__img { max-height: 320px; }
}

.sb-footer-legal { max-width: 72rem; margin: 0 auto; padding: 1.5rem 1rem 2.5rem; color: #a0a4aa; font-size: 0.85rem; border-top: 1px solid #2a2e33; }
.sb-footer-legal p { margin: 0.35rem 0; }


/* Hide Kadence page title on the homepage */
body.home .entry-header,
body.home .entry-hero,
body.home .hero-section.entry-hero,
body.home .wp-block-post-title,
body.home .entry-title,
body.home .title-container {
  display: none !important;
}

/* Contrast fix: Kadence default palette uses near-black text (palette3/5).
   Those rules beat earlier link color declarations because color is set on
   .site-title and headings themselves, not only on the wrapping <a>. */
.site-branding .site-title,
.site-branding .site-title a,
.site-title,
.site-title-wrap,
a.brand,
a.brand .site-title,
#masthead .site-title,
#masthead a.brand,
.mobile-site-branding .site-title,
.header-navigation .header-menu-container > ul > li.menu-item > a,
.main-navigation .primary-menu-container > ul > li.menu-item > a,
.main-navigation .primary-menu-container > ul > li.menu-item.current-menu-item > a,
#masthead .header-menu-container a,
#colophon a,
.site-footer a,
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .woocommerce-loop-product__title a,
.woocommerce-loop-product__title,
.woocommerce-loop-product__title a,
a.woocommerce-LoopProduct-link-title,
h2.woocommerce-loop-product__title,
.loop-entry .entry-title,
.loop-entry .entry-title a,
.product-title,
.product-title a,
.woocommerce div.product .product_title,
.woocommerce div.product h1.product_title,
.entry-content a,
.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4,
.entry-content h5,
body.kadence-theme h1,
body.kadence-theme h2,
body.kadence-theme h3,
body.kadence-theme h4,
body.kadence-theme h5,
body .entry-title,
body .entry-title a,
.sb-tile h3,
.sb-home h1,
.sb-home h2,
.sb-home h3,
.wp-block-heading {
  color: #e6e6e6 !important;
}

a.brand:hover,
a.brand:hover .site-title,
.site-branding a:hover,
.site-branding a:hover .site-title,
.site-title:hover,
#masthead a:hover,
.header-navigation .header-menu-container > ul > li.menu-item > a:hover,
.main-navigation .primary-menu-container > ul > li.menu-item > a:hover,
#colophon a:hover,
.site-footer a:hover,
.woocommerce ul.products li.product .woocommerce-loop-product__title a:hover,
.woocommerce-loop-product__title a:hover,
a.woocommerce-LoopProduct-link-title:hover,
.loop-entry .entry-title a:hover,
.product-title a:hover,
.entry-title a:hover,
.entry-content a:hover,
.sb-tile:hover h3,
.sb-text-link:hover {
  color: #f97316 !important;
}

/* Keep orange CTA button labels dark so they stay readable on the accent fill */
.sb-btn,
.sb-btn:hover,
.button,
button.button,
.wp-block-button__link,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.single_add_to_cart_button,
.checkout-button,
.wp-element-button {
  color: #111 !important;
}

/* ---- Language switcher ----
   Fixed-width row of buttons. Hover may change color or underline only.
   Nested <ul> was removed so Kadence `.nav--toggle-sub li:hover > ul { display:block }`
   cannot turn this into a dropdown and re-wrap the header. */
#masthead li.sb-lang-switcher,
.header-navigation li.sb-lang-switcher,
.primary-menu-container li.sb-lang-switcher,
.mobile-navigation li.sb-lang-switcher {
  display: flex !important;
  align-items: center;
  flex: 0 0 auto;
  width: calc(5 * 44px) !important;
  min-width: calc(5 * 44px) !important;
  max-width: calc(5 * 44px) !important;
  margin: 0 !important;
  padding: 0 !important;
  white-space: nowrap !important;
  position: relative !important;
  float: none !important;
}
#masthead li.sb-lang-switcher > .sb-lang-list,
.header-navigation li.sb-lang-switcher > .sb-lang-list,
.primary-menu-container li.sb-lang-switcher > .sb-lang-list,
.mobile-navigation li.sb-lang-switcher > .sb-lang-list,
.sb-lang-list {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center;
  gap: 0 !important;
  list-style: none;
  margin: 0 !important;
  padding: 0 !important;
  width: calc(5 * 44px) !important;
  min-width: calc(5 * 44px) !important;
  position: static !important;
  left: auto !important;
  right: auto !important;
  top: auto !important;
  bottom: auto !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  clip: auto !important;
  height: 44px !important;
  overflow: visible !important;
  background: transparent !important;
  box-shadow: none !important;
  white-space: nowrap !important;
  pointer-events: auto !important;
  float: none !important;
}
#masthead li.sb-lang-switcher:hover > .sb-lang-list,
#masthead li.sb-lang-switcher:focus-within > .sb-lang-list,
.header-navigation li.sb-lang-switcher:hover > .sb-lang-list,
.nav--toggle-sub li.sb-lang-switcher:hover > .sb-lang-list,
.nav--toggle-sub li.sb-lang-switcher:focus > .sb-lang-list,
.nav--toggle-sub li.sb-lang-switcher.menu-item--toggled-on > .sb-lang-list {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  position: static !important;
  height: 44px !important;
  width: calc(5 * 44px) !important;
  opacity: 1 !important;
  visibility: visible !important;
  overflow: visible !important;
  transform: none !important;
  background: transparent !important;
  box-shadow: none !important;
}
.sb-lang-link,
.sb-lang-fab a {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 44px !important;
  min-width: 44px !important;
  max-width: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
  padding: 0 !important;
  margin: 0 !important;
  color: #e6e6e6 !important;
  text-decoration: none !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  letter-spacing: 0.04em;
  border: 0 !important;
  border-radius: 2px;
  background: transparent;
  line-height: 1 !important;
  flex: 0 0 44px !important;
  white-space: nowrap !important;
}
.sb-lang-link:hover,
.sb-lang-link:focus,
.sb-lang-fab a:hover,
.sb-lang-fab a:focus {
  color: #f97316 !important;
  text-decoration: underline !important;
  text-underline-offset: 3px;
  font-weight: 600 !important;
  padding: 0 !important;
  border: 0 !important;
  letter-spacing: 0.04em !important;
  background: transparent;
}
.sb-lang-link.is-current,
.sb-lang-fab a.is-current {
  color: #111 !important;
  background: #f97316 !important;
  text-decoration: none !important;
}
.sb-lang-link.is-current:hover,
.sb-lang-link.is-current:focus,
.sb-lang-fab a.is-current:hover,
.sb-lang-fab a.is-current:focus {
  color: #111 !important;
  background: #f97316 !important;
  text-decoration: underline !important;
}
/* Fallback switcher — hidden on desktop (header nav already has the row);
   compact fixed bar at the top on mobile. */
.sb-lang-fab {
  display: none;
}

/* ---- Hide the empty Home page-title bar ---- */
body.home .entry-header,
body.home .entry-hero,
body.home .hero-section.entry-hero,
body.home .page-hero,
body.home .wp-block-post-title,
body.home .entry-title,
body.home .title-container,
body.home.content-title-style-above .entry-header,
body.home .content-title-style-above,
body.page-template-default.home .entry-hero {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

/* ---- Responsive + tap targets (min 44px) ---- */
#masthead .menu-toggle-open,
#masthead .menu-toggle-close,
.mobile-toggle-open-container .menu-toggle-open,
.mobile-toggle-close,
.nav-toggle,
button.menu-toggle-open,
button.menu-toggle-close {
  color: #e6e6e6 !important;
  min-width: 44px !important;
  min-height: 44px !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  padding: 0.5rem !important;
}
#masthead .menu-toggle-open:hover,
.mobile-toggle-open-container .menu-toggle-open:hover {
  color: #f97316 !important;
}

.main-navigation .primary-menu-container > ul > li.menu-item > a,
#masthead .header-menu-container a,
.mobile-navigation a,
.header-menu-container ul.menu > li > a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  color: #e6e6e6 !important;
}
.mobile-navigation a:hover,
#masthead .header-menu-container a:hover {
  color: #f97316 !important;
}

/* Mobile drawer: dark surface, readable links, 44px rows */
@media (max-width: 1024px) {
  .header-menu-container,
  .mobile-navigation,
  #mobile-nav,
  .kadence-mobile-nav {
    background: #0b0d0f !important;
  }
  .header-menu-container ul li a,
  .mobile-navigation a {
    color: #e6e6e6 !important;
    min-height: 44px;
    padding-top: 0.7rem;
    padding-bottom: 0.7rem;
  }
  .sb-lang-fab {
    display: flex !important;
    flex-wrap: nowrap !important;
    flex-direction: row !important;
    align-items: center;
    gap: 0 !important;
    position: fixed !important;
    top: 0;
    left: 0;
    right: 0;
    z-index: 10050;
    justify-content: flex-end;
    width: 100%;
    box-sizing: border-box;
    background: #0a0a0a;
    padding: 0.25rem 0.5rem;
    border-bottom: 1px solid #2a2e33;
    white-space: nowrap !important;
  }
  .sb-lang-fab a {
    flex: 0 0 44px !important;
  }
  /* Keep the fixed bar from covering the announcement + header. */
  body {
    padding-top: 53px;
  }
  .sb-hero__img {
    max-height: 220px;
    width: 100%;
    object-fit: cover;
    object-position: center center;
  }
  .sb-cta-row {
    display: flex;
    flex-direction: column;
  }
  .sb-cta-row .sb-btn {
    min-height: 44px;
    text-align: center;
  }
  .sb-promises ul {
    grid-template-columns: 1fr 1fr;
  }
  .sb-tiles,
  .sb-steps,
  .sb-safety {
    grid-template-columns: 1fr !important;
  }
  .woocommerce ul.products {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
  }
  .woocommerce ul.products li.product {
    width: 100% !important;
    margin: 0 !important;
  }
  .woocommerce div.product div.images img,
  .woocommerce-product-gallery img {
    width: 100%;
    height: auto;
    object-fit: cover;
  }
  .sb-announce {
    font-size: 0.8rem;
    padding: 0.5rem 0.75rem;
  }
}

/* Product / category / cart images stay contained */
.woocommerce ul.products li.product img,
.woocommerce-LoopProduct-link img,
.sb-tile img,
.woocommerce-product-gallery__image img,
.attachment-woocommerce_thumbnail {
  object-fit: cover;
  object-position: center center;
  max-width: 100%;
  height: auto;
}

/* Product names: force light text even if a later Kadence rule targets the link */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .woocommerce-loop-product__title a,
.woocommerce-loop-product__title a,
a.woocommerce-LoopProduct-link-title,
.woocommerce div.product .product_title,
h1.product_title {
  color: #e6e6e6 !important;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title a:hover,
a.woocommerce-LoopProduct-link-title:hover {
  color: #f97316 !important;
}

/* Checkout / cart: keep form controls usable on small screens */
@media (max-width: 700px) {
  .woocommerce-cart-form,
  .cart-collaterals,
  form.checkout,
  .woocommerce-checkout .col2-set .col-1,
  .woocommerce-checkout .col2-set .col-2 {
    width: 100% !important;
    float: none !important;
  }
  .woocommerce a.button,
  .woocommerce button.button,
  .checkout-button,
  .single_add_to_cart_button {
    min-height: 44px;
    width: 100%;
  }
  .quantity input.qty {
    min-height: 44px;
  }
}


/* Checkout / cart / account page titles: light text was invisible on the pale title band. */
body.woocommerce-checkout .entry-header,
body.woocommerce-cart .entry-header,
body.woocommerce-account .entry-header,
body.woocommerce-checkout .page-header,
body.woocommerce-cart .page-header,
body.woocommerce-account .page-header {
  background: #111111;
  color: #e6e6e6;
  border: 0;
}
body.woocommerce-checkout .entry-header .page-title,
body.woocommerce-checkout .entry-header .entry-title,
body.woocommerce-checkout h1.page-title,
body.woocommerce-checkout h1.entry-title,
body.woocommerce-cart h1.page-title,
body.woocommerce-cart h1.entry-title,
body.woocommerce-account h1.page-title,
body.woocommerce-account h1.entry-title {
  color: #e6e6e6 !important;
}

/* MSRP label on strikethrough regular prices */
.price .sb-msrp-label, .sb-msrp-label {
  display: inline-block;
  font-size: 0.72em;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: none;
  color: var(--sb-muted) !important;
  margin-right: 0.15em;
  vertical-align: 0.08em;
}
.price del, .product-price del, .woocommerce-Price-amount + del, del .woocommerce-Price-amount {
  color: var(--sb-muted) !important;
  opacity: 0.85;
  font-size: 0.85em;
  font-weight: 400;
}
.price ins, .product-price ins { text-decoration: none; color: var(--sb-orange) !important; font-weight: 700; }
