/* SFP PREMIUM PRODUCT PAGES 1.1.0
   WooCommerce-native, narrowly scoped to single-product pages.
   No template replacement, no changes to form behavior. */
body.single-product {
  --sfp-navy: #0a1721;
  --sfp-panel: #152632;
  --sfp-line: #344956;
  --sfp-blue: #1596d2;
  --sfp-blue-hover: #087eb6;
  --sfp-muted: #c6d4de;
}

/* Preserve theme header/footer, alter only primary single product display. */
body.single-product .site-main:has(.woocommerce div.product),
body.single-product main:has(> .woocommerce div.product),
body.single-product .woocommerce:has(> div.product) {
  background: var(--sfp-navy);
}
body.single-product div.product {
  color: #f4f8fb;
  background: var(--sfp-navy);
  padding: clamp(22px, 3vw, 48px);
  border-top: 3px solid var(--sfp-blue);
  overflow: hidden;
  border-radius: 0;
}
body.single-product div.product::after { content: ""; display: block; clear: both; }

/* If the theme supplies a breadcrumb before the product wrapper */
body.single-product .woocommerce-breadcrumb {
  font-size: 13px;
  color: #657a8b;
  padding-top: 13px;
  margin-bottom: 18px;
}
body.single-product .woocommerce-breadcrumb a { color: #137fb7; text-decoration: none; }
body.single-product .woocommerce-breadcrumb a:hover { color: #065b86; }

/* Image stage stays pale for dark/metal products. Do not force crop product photos. */
body.single-product div.product div.images {
  margin-bottom: 36px;
}
body.single-product div.product div.images .woocommerce-product-gallery__wrapper,
body.single-product div.product div.images .woocommerce-product-gallery__image {
  background: #eff3f5;
}
body.single-product div.product div.images .woocommerce-product-gallery__image:first-child {
  border: 1px solid #dbe3e8;
  border-radius: 6px;
  overflow: hidden;
}
body.single-product div.product div.images .woocommerce-product-gallery__image a { display: block; }
body.single-product div.product div.images .woocommerce-product-gallery__image img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}
body.single-product div.product div.images .flex-control-thumbs {
  margin: 12px 0 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
body.single-product div.product div.images .flex-control-thumbs li {
  width: auto; float: none; margin: 0; background: #eff3f5;
  border: 2px solid transparent; border-radius: 4px; overflow: hidden;
}
body.single-product div.product div.images .flex-control-thumbs li:has(img.flex-active) {
  border-color: var(--sfp-blue);
}

/* Product details */
body.single-product div.product .summary { color: var(--sfp-muted); }
body.single-product div.product .product_title {
  color: white;
  font-size: clamp(32px, 3.5vw, 54px);
  font-weight: 900;
  line-height: 1.06;
  letter-spacing: -.035em;
  margin: 0 0 22px;
  overflow-wrap: anywhere;
}
body.single-product div.product .summary .price,
body.single-product div.product .summary p.price,
body.single-product div.product .summary span.price {
  color: #6ed0fc;
  font-size: clamp(24px, 2.4vw, 33px);
  font-weight: 900;
  line-height: 1.3;
  margin-bottom: 22px;
}
body.single-product div.product .summary .price ins { color: #6ed0fc; text-decoration: none; }
body.single-product div.product .summary .price del { color: #b1bfca; opacity: .7; }
body.single-product div.product .summary p,
body.single-product div.product .summary li {
  color: #c6d4de; line-height: 1.65;
}
body.single-product div.product .woocommerce-product-details__short-description {
  padding: 17px 0 8px;
  border-top: 1px solid var(--sfp-line);
}
body.single-product div.product .summary a { color: #77d5ff; }
body.single-product div.product .summary a:hover { color: white; }

/* Variation forms; keep native controls and WooCommerce scripts */
body.single-product div.product form.cart { margin-top: 18px; }
body.single-product div.product form.cart .variations {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 10px;
  margin-bottom: 12px;
}
body.single-product div.product form.cart .variations tr {
  background: #1b2d3a;
}
body.single-product div.product form.cart .variations th,
body.single-product div.product form.cart .variations td {
  padding: 14px 14px; vertical-align: middle;
  background: #1b2d3a;
}
body.single-product div.product form.cart .variations th { width: 34%; }
body.single-product div.product form.cart .variations label {
  color: white; font-size: 14px; font-weight: 800;
}
body.single-product div.product form.cart select,
body.single-product div.product form.cart input.input-text,
body.single-product div.product form.cart input.qty {
  max-width: 100%;
  background: #f5f8fa;
  color: #12212c;
  border: 1px solid #a3b6c3;
  border-radius: 4px;
  padding: 11px 13px;
  min-height: 46px;
}
body.single-product div.product form.cart .reset_variations {
  display: inline-block;
  padding: 6px 0;
  font-size: 12px;
  color: #84d8ff;
}
body.single-product div.product .woocommerce-variation-price .price {
  color: #6ed0fc;
}
body.single-product div.product .single_variation_wrap { margin-top: 16px; }
body.single-product div.product form.cart .quantity {
  margin: 0 12px 12px 0;
}
body.single-product div.product form.cart .quantity .qty { width: 82px; }
body.single-product div.product form.cart .button,
body.single-product div.product form.cart button.single_add_to_cart_button {
  min-height: 49px;
  padding: 13px 27px;
  border: none;
  border-radius: 4px;
  color: #fff;
  background: var(--sfp-blue);
  font-size: 13px;
  letter-spacing: .045em;
  font-weight: 900;
  line-height: 1.2;
  text-transform: uppercase;
  transition: background .2s, transform .2s;
}
body.single-product div.product form.cart .button:hover,
body.single-product div.product form.cart button.single_add_to_cart_button:hover {
  color: white; background: var(--sfp-blue-hover); transform: translateY(-2px);
}
body.single-product div.product form.cart .button:disabled,
body.single-product div.product form.cart .button.disabled {
  opacity: .5; cursor: not-allowed; transform: none;
}
body.single-product div.product .stock { color: #9de2b6; font-weight: 700; }
body.single-product div.product .out-of-stock { color: #ffc6c6; }
body.single-product div.product .product_meta {
  clear: both; padding: 22px 0 0;
  margin-top: 20px; border-top: 1px solid var(--sfp-line);
  color: #a9bbc8; font-size: 13px;
}
body.single-product div.product .product_meta > span { display: block; margin-bottom: 5px; }

/* Existing third-party payment widgets (Affirm, etc.) remain enabled. */
body.single-product div.product .summary .affirm-as-low-as,
body.single-product div.product .summary .affirm-payment-method,
body.single-product div.product .summary [class*="affirm"] {
  color: #d9e3eb;
}
body.single-product div.product .summary [class*="affirm"] a { color: #80d7ff; }

/* Promise bar */
body.single-product div.product .sfp-product-promise {
  clear: both; display: flex; flex-wrap: wrap;
  justify-content: space-between; gap: 14px;
  border-top: 1px solid var(--sfp-line);
  border-bottom: 1px solid var(--sfp-line);
  padding: 20px 0; margin: 35px 0;
}
body.single-product div.product .sfp-product-promise span {
  font-size: 10px; font-weight: 900; letter-spacing: .12em;
  color: #96bed4;
}

/* Description / specs tabs and product information */
body.single-product div.product .woocommerce-tabs { clear: both; padding-top: 28px; }
body.single-product div.product .woocommerce-tabs ul.tabs {
  margin: 0 0 22px; padding: 0; border-bottom: 1px solid var(--sfp-line);
}
body.single-product div.product .woocommerce-tabs ul.tabs::before,
body.single-product div.product .woocommerce-tabs ul.tabs li::before,
body.single-product div.product .woocommerce-tabs ul.tabs li::after { display: none; }
body.single-product div.product .woocommerce-tabs ul.tabs li {
  background: transparent; border: none; border-radius: 0;
  padding: 0 18px 12px 0; margin: 0 14px 0 0;
}
body.single-product div.product .woocommerce-tabs ul.tabs li a {
  color: #aabfcd; font-size: 13px; font-weight: 800;
}
body.single-product div.product .woocommerce-tabs ul.tabs li.active { border-bottom: 3px solid var(--sfp-blue); }
body.single-product div.product .woocommerce-tabs ul.tabs li.active a,
body.single-product div.product .woocommerce-tabs ul.tabs li a:hover { color: #fff; }
body.single-product div.product .woocommerce-tabs .panel {
  color: #cfdae3; line-height: 1.75; padding: 5px 0 20px;
}
body.single-product div.product .woocommerce-tabs .panel h2,
body.single-product div.product .related > h2,
body.single-product div.product .upsells > h2 {
  color: white; font-size: clamp(24px, 2.5vw, 37px); font-weight: 900;
  letter-spacing: -.03em; margin: 0 0 22px;
}
body.single-product div.product .woocommerce-tabs .panel p,
body.single-product div.product .woocommerce-tabs .panel li { color: #cfdae3; }
body.single-product div.product .woocommerce-tabs .panel a { color: #82d6ff; }
body.single-product div.product .woocommerce-product-attributes,
body.single-product div.product .woocommerce-product-attributes tr,
body.single-product div.product .woocommerce-product-attributes th,
body.single-product div.product .woocommerce-product-attributes td {
  background: #182a37; color: #d9e6ef; border-color: #354956;
}
body.single-product div.product .woocommerce-product-attributes th,
body.single-product div.product .woocommerce-product-attributes td { padding: 14px; }

/* Native WooCommerce related/upsells cards */
body.single-product div.product .related,
body.single-product div.product .upsells { clear: both; padding-top: 35px; }
body.single-product div.product .products { display: flex; flex-wrap: wrap; gap: 20px; }
body.single-product div.product .products::before,
body.single-product div.product .products::after { display: none; }
body.single-product div.product .products li.product {
  float: none; width: calc(25% - 15px); margin: 0;
  background: #172934; border: 1px solid #354956;
  padding: 0 0 20px; border-radius: 4px;
  overflow: hidden; min-width: 0;
}
body.single-product div.product .products li.product a img {
  display: block; width: 100%; height: 230px;
  object-fit: contain; background: #eef2f5;
  padding: 14px; margin: 0 0 18px;
}
body.single-product div.product .products li.product .woocommerce-loop-product__title {
  color: white; font-size: 17px; font-weight: 800;
  line-height: 1.35; padding: 0 17px;
}
body.single-product div.product .products li.product .price {
  color: #74d4ff; font-size: 18px; font-weight: 900;
  padding: 0 17px;
}
body.single-product div.product .products li.product .button {
  margin: 12px 17px 0; display: inline-block;
  padding: 12px 16px; border-radius: 3px;
  color: white; background: var(--sfp-blue);
  text-align: center; font-weight: 800;
}
body.single-product div.product .products li.product .button:hover { background: var(--sfp-blue-hover); }

body.single-product div.product a:focus-visible,
body.single-product div.product button:focus-visible,
body.single-product div.product select:focus-visible {
  outline: 3px solid #8cddff; outline-offset: 2px;
}

@media (max-width: 1050px) {
  body.single-product div.product .products li.product { width: calc(50% - 10px); }
}
@media (max-width: 767px) {
  body.single-product div.product { padding: 22px 18px; }
  body.single-product div.product div.images,
  body.single-product div.product div.summary { float: none; width: 100%; }
  body.single-product div.product .product_title { font-size: 36px; }
  body.single-product div.product form.cart .variations th,
  body.single-product div.product form.cart .variations td { display: block; width: 100%; padding: 10px 13px; }
  body.single-product div.product .sfp-product-promise { flex-direction: column; }
  body.single-product div.product .woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; }
  body.single-product div.product .products li.product { width: calc(50% - 10px); }
  body.single-product div.product .products li.product a img { height: 180px; }
}
@media (max-width: 420px) {
  body.single-product div.product .products li.product { width: 100%; }
  body.single-product div.product .products li.product a img { height: 230px; }
}
@media (prefers-reduced-motion: reduce) {
  body.single-product div.product * { transition: none !important; }
}

/* 1.1: Broad theme compatibility and guaranteed WooCommerce single-product canvas */
body.single-product .site-content,
body.single-product #content,
body.single-product .content-area,
body.single-product main#main,
body.single-product main.site-main,
body.single-product .woocommerce:has(.product.type-product) {
  background: #0a1721;
}
body.single-product div.product.type-product {
  background: #0a1721;
  color: #f4f8fb;
}
body.single-product div.product.type-product .woocommerce-product-gallery {
  background: #eff3f5;
  padding: 14px;
  border-radius: 6px;
}
body.single-product div.product.type-product .woocommerce-product-gallery .flex-control-thumbs {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 10px;
  padding: 0;
  list-style: none;
}
body.single-product div.product.type-product .woocommerce-product-gallery .flex-control-thumbs li {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.single-product div.product.type-product .woocommerce-product-gallery .flex-control-thumbs img {
  width: 100%;
  height: 90px;
  object-fit: contain;
  background: #fff;
  padding: 4px;
}
body.single-product div.product.type-product .summary .product_title:before,
body.single-product div.product.type-product .summary .product_title:after {
  content: none !important;
  display: none !important;
}
body.single-product div.product.type-product .sfp-product-promise {
  clear: both;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 15px;
  padding: 20px 0;
  border-top: 1px solid #344956;
  border-bottom: 1px solid #344956;
  margin: 35px 0;
}
body.single-product div.product.type-product .sfp-product-promise span {
  display: inline-block;
  color: #95c8e3;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .1em;
}
body.single-product div.product.type-product .woocommerce-product-gallery__trigger {
  z-index: 3;
}
body.single-product div.product.type-product .woocommerce-tabs iframe,
body.single-product div.product.type-product .woocommerce-tabs video {
  max-width: 100%;
}
body.single-product div.product.type-product .woocommerce-tabs iframe {
  border: 0;
}
body.single-product div.product.type-product .woocommerce-tabs .panel > * {
  max-width: 100%;
}
body.single-product div.product.type-product .related.products ul.products,
body.single-product div.product.type-product .upsells.products ul.products {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}
@media (max-width: 767px) {
  body.single-product div.product.type-product .woocommerce-product-gallery .flex-control-thumbs {
    grid-template-columns: repeat(4,minmax(0,1fr));
  }
  body.single-product div.product.type-product .woocommerce-product-gallery .flex-control-thumbs img { height: 65px; }
}

/* ============================================================
   1.2.0 - Visual compatibility corrections for SFP theme
   Scope only WooCommerce single product content.
   ============================================================ */

/* Affirms can inject nested spans with their own black color. */
body.single-product div.product .summary .affirm-as-low-as,
body.single-product div.product .summary .affirm-as-low-as *,
body.single-product div.product .summary .affirm-payment-method,
body.single-product div.product .summary .affirm-payment-method *,
body.single-product div.product .summary #learn-more,
body.single-product div.product .summary #learn-more * {
  color: #dce7ee !important;
}
body.single-product div.product .summary .affirm-as-low-as a,
body.single-product div.product .summary .affirm-payment-method a,
body.single-product div.product .summary #learn-more a {
  color: #82d9ff !important;
  text-decoration: underline;
}

/* Select text must stay visible in the theme's dark variant. */
body.single-product div.product form.cart .variations select,
body.single-product div.product form.cart .variations select option,
body.single-product div.product form.cart select[name^="attribute_"] {
  color: #102330 !important;
  background-color: #f5f8fa !important;
  border: 1px solid #a7c0ce !important;
  opacity: 1 !important;
  -webkit-text-fill-color: #102330;
  color-scheme: light;
}
body.single-product div.product form.cart select:disabled {
  opacity: .55 !important;
}

/* Tabs: some themes inject a white current-tab box and pseudo-elements. */
body.single-product div.product .woocommerce-tabs ul.tabs,
body.single-product div.product .woocommerce-tabs ul.tabs li,
body.single-product div.product .woocommerce-tabs ul.tabs li.active,
body.single-product div.product .woocommerce-tabs ul.tabs li a,
body.single-product div.product .woocommerce-tabs ul.tabs li.active a {
  background: transparent !important;
  box-shadow: none !important;
}
body.single-product div.product .woocommerce-tabs ul.tabs li {
  border: 0 !important;
  border-bottom: 3px solid transparent !important;
  margin: 0 12px 0 0 !important;
  padding: 0 14px 13px !important;
}
body.single-product div.product .woocommerce-tabs ul.tabs li.active {
  border-bottom-color: #1596d2 !important;
}
body.single-product div.product .woocommerce-tabs ul.tabs li a {
  display: inline-block !important;
  color: #c2d8e6 !important;
  visibility: visible !important;
  opacity: 1 !important;
  text-indent: 0 !important;
  font-size: 14px !important;
}
body.single-product div.product .woocommerce-tabs ul.tabs li.active a {
  color: #fff !important;
}
body.single-product div.product .woocommerce-tabs ul.tabs li::before,
body.single-product div.product .woocommerce-tabs ul.tabs li::after,
body.single-product div.product .woocommerce-tabs ul.tabs::before {
  content: none !important;
  display: none !important;
}

/* Related products: enforce real card width; theme layout was compressing
   a card to ~40px despite the flex container introduced in v1.1. */
body.single-product div.product section.related ul.products,
body.single-product div.product section.upsells ul.products,
body.single-product div.product .related.products ul.products,
body.single-product div.product .upsells.products ul.products {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 20px !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  float: none !important;
  clear: both !important;
}
body.single-product div.product section.related ul.products > li.product,
body.single-product div.product section.upsells ul.products > li.product,
body.single-product div.product .related.products ul.products > li.product,
body.single-product div.product .upsells.products ul.products > li.product {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 0 20px !important;
  float: none !important;
  display: block !important;
  position: static !important;
  flex: none !important;
  box-sizing: border-box !important;
  background: #172934 !important;
  border: 1px solid #354956 !important;
  border-radius: 4px;
  overflow: hidden;
}
body.single-product div.product .related ul.products > li.product a img,
body.single-product div.product .upsells ul.products > li.product a img {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  height: 230px !important;
  padding: 14px !important;
  object-fit: contain !important;
  background: #eef2f5 !important;
  margin: 0 0 18px !important;
}
body.single-product div.product .related ul.products > li.product .woocommerce-loop-product__title,
body.single-product div.product .upsells ul.products > li.product .woocommerce-loop-product__title {
  color: #fff !important;
  padding: 0 17px !important;
  overflow-wrap: break-word;
  line-height: 1.35;
}
body.single-product div.product .related ul.products > li.product .price,
body.single-product div.product .upsells ul.products > li.product .price {
  color: #74d4ff !important;
  padding: 0 17px !important;
}
body.single-product div.product .related ul.products > li.product .button,
body.single-product div.product .upsells ul.products > li.product .button {
  margin: 14px 17px 0 !important;
  color: #fff !important;
  background: #1596d2 !important;
  display: inline-block !important;
  width: auto !important;
  max-width: calc(100% - 34px) !important;
  white-space: normal;
}
/* Give embedded media room but don't interfere with interactive 3D models. */
body.single-product div.product .woocommerce-tabs .panel iframe,
body.single-product div.product .woocommerce-tabs .panel video {
  max-width: 100% !important;
}
@media (max-width: 900px) {
  body.single-product div.product section.related ul.products,
  body.single-product div.product section.upsells ul.products,
  body.single-product div.product .related.products ul.products,
  body.single-product div.product .upsells.products ul.products {
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
  }
}
@media (max-width: 540px) {
  body.single-product div.product section.related ul.products,
  body.single-product div.product section.upsells ul.products,
  body.single-product div.product .related.products ul.products,
  body.single-product div.product .upsells.products ul.products {
    grid-template-columns: 1fr !important;
  }
}
