/* Fish Mox Supply - single product page, T4S/Kalles parity.
   Loaded on product pages only (after style.css). Values come from the
   Shopify theme's rendered CSS variables: title 16/600/2px #4d5959,
   price 22/400 #696969, stock #4eb0be, accent buttons #ffb100 -> #ff4e00,
   1170px content width (t4s-container-xl). */

/* ---------- layout: 1170px content, no sidebar, gallery 7/12 ---------- */
.single-product .product-container,
.single-product .fms-pr-breadcrumb .container,
.single-product .fms-ship-wrap { max-width: 1200px; margin-left: auto; margin-right: auto; }

/* ---------- breadcrumb bar + same-day line (above the product row) ---------- */
.fms-pr-breadcrumb { background: #f6f6f6; margin: 0 0 40px; padding: 18px 0; line-height: 18px; font-size: 14px; }
.fms-pr-breadcrumb nav { display: flex; align-items: center; flex-wrap: wrap; gap: 4px; }
.fms-pr-breadcrumb a { color: #222222; }
.fms-pr-breadcrumb a:hover { color: var(--fms-link-hover); }
.fms-pr-breadcrumb svg { width: 16px; height: 16px; flex: 0 0 auto; color: #222222; }
.fms-pr-breadcrumb span { color: #222222; }
.fms-ship-line { font-size: 1.2em; font-weight: 700; color: #333333; margin: 0 0 50px; }
.single-product .product-info .woocommerce-breadcrumb { display: none; }
@media (max-width: 767px) {
  .fms-pr-breadcrumb { margin-bottom: 30px; }
  .fms-ship-line { margin-bottom: 30px; }
}

/* ---------- info column ---------- */
.single-product .product-info { padding-top: 0; }
.single-product .product-info .product-title {
  font-family: var(--fms-font-body); font-size: 16px; font-weight: 600; line-height: 20px;
  letter-spacing: 2px; text-transform: none; color: #4d5959; margin: 0 0 15px;
}
.single-product .product-info .product-title a { color: inherit; }
.single-product .product-info .is-divider { display: none; }

/* price + stock row */
.fms-price-stock {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  margin: 0 0 20px; padding-bottom: 10px; border-bottom: 1px solid #e5e5e5;
}
.fms-price-stock .fms-price .price,
.fms-price-stock .fms-price .price .amount,
.fms-price-stock .fms-price .price bdi {
  font-family: var(--fms-font-body); font-size: 22px; font-weight: 400; color: #696969; margin: 0; line-height: 1.2;
}
.fms-price-stock .fms-price .price ins { text-decoration: none; }
.fms-price-stock .fms-price .price ins .amount { color: #ec0101; }
.fms-price-stock .fms-price .price del .amount { color: #696969; font-size: 18px; }
.fms-price-stock .fms-price .price .t4s-price-from { font-size: 14px; color: #696969; margin-right: 3px; }
.fms-avail { font-size: 14px; color: #4eb0be; white-space: nowrap; }
.fms-avail.is-out { color: #696969; }
.single-product .product-info .woocommerce-variation-price,
.single-product .product-info .woocommerce-variation-availability,
.single-product .product-info .single_variation .price,
.single-product .product-info p.stock { display: none !important; }

/* trust block: dealer line, dispatch countdown, live stock dot */
.fms-pr-trust { margin: 0 0 18px; }
.fp-dealer-line { display: flex; align-items: center; gap: 8px; width: 100%; min-width: 0; margin: 0 0 8px; }
.fp-dealer-line-icon-wrap { display: inline-flex; flex-shrink: 0; width: 18px; height: 18px; }
.fp-dealer-line-icon { width: 18px !important; height: 18px !important; min-width: 18px !important; flex-shrink: 0 !important; }
.fp-dealer-shield { stroke: #143583; }
.fp-dealer-check { stroke: #10b981; }
.fp-dealer-line-text { display: block; flex: 0 1 auto; min-width: 0; font-size: 13px; line-height: 1.2; font-weight: 600; letter-spacing: .3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: #143583; }
.fp-dealer-line-text strong { font-weight: 700; color: inherit; }

[data-shipping-widget-root].fp-backorder-hidden { display: none !important; }
[data-shipping-widget-root] .shipping-widget-container { margin: 2px 0 18px 0; display: none; flex-direction: column; gap: 6px; width: 100%; overflow: hidden; }
[data-shipping-widget-root] .shipping-timer-wrapper { display: flex; align-items: flex-start; gap: 8px; color: #143583; width: 100%; }
[data-shipping-widget-root] .shipping-timer-icon { width: 18px !important; height: 18px !important; min-width: 18px !important; flex-shrink: 0 !important; margin-top: 1px; }
[data-shipping-widget-root] .shipping-timer-content { font-size: 13px; font-weight: 700; letter-spacing: .1px; display: flex; align-items: baseline; flex-wrap: wrap; row-gap: 2px; column-gap: 4px; line-height: 1.4; }
[data-shipping-widget-root] .dynamic-ship-status { text-decoration: underline; text-decoration-color: rgba(20,53,131,.3); text-underline-offset: 3px; white-space: nowrap; }
[data-shipping-widget-root] .dynamic-ship-timer { display: inline-flex; align-items: baseline; transition: color .5s ease; font-weight: 700; white-space: nowrap; }
[data-shipping-widget-root] .tm-num { display: inline-block; text-align: center; width: .75em; font-family: inherit; }
[data-shipping-widget-root] .tm-unit { display: inline-block; font-weight: 400; font-size: .85em; opacity: .8; margin-right: 2px; }
[data-shipping-widget-root] .shipping-urgency-wrapper { display: flex; align-items: flex-start; gap: 11px; width: 100%; color: #666; }
[data-shipping-widget-root] .urgency-icon { width: 13px !important; height: 13px !important; min-width: 13px !important; flex-shrink: 0 !important; margin-top: 2px; margin-left: 2px; }
[data-shipping-widget-root] .urgency-text { font-size: 12px; line-height: 1.4; letter-spacing: .2px; }
[data-shipping-widget-root] .urgency-text strong { color: #143583; font-weight: 700; }
[data-shipping-widget-root] .shipping-widget-container.is-queue-only .shipping-timer-wrapper { display: none; }
[data-shipping-widget-root] .shipping-widget-container.is-queue-only .shipping-urgency-wrapper,
[data-shipping-widget-root] .shipping-widget-container.is-queue-only .urgency-text { color: #143583; }
[data-shipping-widget-root] .shipping-widget-container.is-queue-only .urgency-text { text-decoration: underline; text-decoration-color: rgba(20,53,131,.3); text-underline-offset: 3px; }
[data-shipping-widget-root] .timer-safe { color: #10B981 !important; }
[data-shipping-widget-root] .timer-warning { color: #F59E0B !important; }
[data-shipping-widget-root] .timer-critical { color: #DC2626 !important; animation: shipping-widget-heartbeat-pulse 1.2s infinite ease-in-out; }
@keyframes shipping-widget-heartbeat-pulse { 0% { opacity: 1; text-shadow: none; } 50% { opacity: .7; text-shadow: 0 0 5px rgba(220,38,38,.5); } 100% { opacity: 1; text-shadow: none; } }
@media screen and (max-width: 768px) {
  [data-shipping-widget-root] .shipping-timer-wrapper, [data-shipping-widget-root] .shipping-urgency-wrapper { flex-wrap: nowrap !important; }
  [data-shipping-widget-root] .shipping-timer-content, [data-shipping-widget-root] .urgency-text { white-space: nowrap !important; display: block !important; }
}

.live-stock-widget { display: flex; align-items: center; gap: 10px; margin: 5px 0 15px 0; font-family: inherit; }
.stock-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; transition: background-color .3s ease; }
.stock-dot.is-in-stock { background-color: #10B981; animation: pulse-green 2s infinite; }
.stock-dot.is-out-of-stock { background-color: #9CA3AF; }
.stock-text { font-size: 14px; font-weight: 700; transition: color .3s ease; }
.stock-dot.is-backorder { background-color: #DC2626; animation: pulse-red 2s infinite; }
.stock-text.is-backorder { animation: fp-backorder-blink 1.2s ease-in-out infinite; }
@keyframes pulse-red { 0% { transform: scale(.95); box-shadow: 0 0 0 0 rgba(220,38,38,.7); } 70% { transform: scale(1); box-shadow: 0 0 0 6px rgba(220,38,38,0); } 100% { transform: scale(.95); box-shadow: 0 0 0 0 rgba(220,38,38,0); } }
@keyframes fp-backorder-blink { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
@keyframes pulse-green { 0% { transform: scale(.95); box-shadow: 0 0 0 0 rgba(16,185,129,.7); } 70% { transform: scale(1); box-shadow: 0 0 0 6px rgba(16,185,129,0); } 100% { transform: scale(.95); box-shadow: 0 0 0 0 rgba(16,185,129,0); } }
@media (prefers-reduced-motion: reduce) { .stock-dot.is-backorder, .stock-text.is-backorder, .stock-dot.is-in-stock { animation: none; } }

/* ---------- variations: selects become swatch pills ---------- */
.single-product table.variations { margin: 0 0 6px; border: 0; width: 100%; }
.single-product table.variations tr, .single-product table.variations th, .single-product table.variations td { display: block; padding: 0; border: 0; width: 100%; }
.single-product table.variations th.label { display: none; }
.single-product table.variations select { display: none !important; }
.single-product table.variations .reset_variations { display: none !important; }
.single-product table.variations td.value { position: relative; }
.t4s-swatch__title { font-family: var(--fms-font-body); font-size: 14px; text-transform: uppercase; font-weight: 700; letter-spacing: .5px; margin: .65em 0 .5em; color: #333333; }
.t4s-swatch__list { display: flex; flex-wrap: wrap; margin: 10px -5px 0; }
.t4s-swatch__item {
  display: inline-block; padding: 6px 16px 7px; margin: 0 5px 10px; text-align: center; font-size: 14px; line-height: 1.4;
  border: 1px solid #dddddd; border-radius: 40px; color: #878787; cursor: pointer; user-select: none; transition: .2s;
}
.t4s-swatch__item:hover { border-color: #333333; color: #333333; }
.t4s-swatch__item.is--selected { background: #333333; border-color: #333333; color: #ffffff; }
.t4s-swatch__item.is--unavailable { opacity: .5; text-decoration: line-through; }
.single-product .product-info .single_variation_wrap { margin: 0; }

/* ---------- quantity / add to cart / wishlist row ---------- */
.single-product form.cart .woocommerce-variation-add-to-cart,
.single-product form.cart:not(.variations_form) { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0; }
.single-product form.cart .quantity {
  min-width: 120px; width: 120px; height: 40px; margin: 0; order: 1;
  border: 1px solid #4d5959; border-radius: 40px; display: inline-flex; align-items: center; overflow: hidden; background: #fff;
}
.single-product form.cart .quantity .button,
.single-product form.cart .quantity input.qty { border: 0 !important; background: transparent !important; box-shadow: none; height: 38px; line-height: 38px; margin: 0; }
.single-product form.cart .quantity .button { width: 36px; padding: 0; font-size: 18px; font-weight: 400; color: #222222; }
.single-product form.cart .quantity input.qty { width: 46px; padding: 0; text-align: center; font-size: 14px; color: #222222; }
.single-product form.cart .single_add_to_cart_button {
  flex: 1 1 auto; order: 2; margin: 0; min-height: 40px; height: 40px; line-height: 40px; padding: 0 25px;
  border: 0; border-radius: 40px; background: #ffb100 !important; color: #ffffff !important;
  font-family: var(--fms-font-body); font-size: 14px; font-weight: 600; letter-spacing: .3px; text-transform: uppercase;
  transition: background-color .3s;
}
.single-product form.cart .single_add_to_cart_button:hover { background: #ff4e00 !important; }
.single-product form.cart .tinv-wraper { margin: 0; order: 3; width: auto; }
.single-product form.cart .tinv-wraper .tinv-wishlist-clear { display: none; }
.single-product .tinv-wraper .tinvwl_add_to_wishlist_button {
  display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; margin: 0; padding: 0;
  border: 1px solid #222222; border-radius: 50%; color: #222222; font-size: 0; line-height: 1;
}
.single-product .tinv-wraper .tinvwl_add_to_wishlist_button::before { font-size: 16px; margin: 0; }
.single-product .tinv-wraper .tinvwl_add_to_wishlist_button:hover { color: #ba5252; border-color: #ba5252; }
.single-product .tinv-wraper .tinvwl_add_to_wishlist_button.tinvwl-product-in-list { color: #e81e63; border-color: #e81e63; }
@media (max-width: 767px) {
  .single-product form.cart .single_add_to_cart_button { flex-basis: 100%; order: 3; margin-top: 10px; }
  .single-product form.cart .tinv-wraper { order: 2; }
}

/* ---------- payment logos replace the share icons ---------- */
.fms-trust-seal { display: flex; flex-wrap: wrap; align-items: center; margin: 20px 0 0; }
.fms-trust-seal img { width: auto; height: 33px; padding: 2.5px; }
.single-product .product-info .social-icons.share-icons { display: none; }
@media (max-width: 767px) { .fms-trust-seal { justify-content: center; } }

/* ---------- gallery: thumbnails left of the main image (desktop) ---------- */
.single-product .product-images { position: relative; }
.single-product .product-images .fms-mb--single { z-index: 5; }
@media (min-width: 850px) {
  .single-product .product-gallery { display: flex; flex-direction: row; gap: 12px; align-items: flex-start; }
  .single-product .product-gallery .product-images { order: 2; flex: 1 1 auto; min-width: 0; margin-bottom: 0; }
  .single-product .product-gallery .product-thumbnails { order: 1; flex: 0 0 70px; width: 70px; max-width: 70px; margin: 0; }
  .single-product .product-thumbnails .flickity-viewport { height: auto !important; overflow: visible; }
  .single-product .product-thumbnails .flickity-slider { position: static !important; transform: none !important; display: flex; flex-direction: column; gap: 10px; }
  .single-product .product-thumbnails .col { position: static !important; left: auto !important; transform: none !important; width: 100% !important; max-width: 100% !important; padding: 0 !important; }
  .single-product .product-thumbnails .flickity-prev-next-button { display: none; }
}

/* ---------- sticky add-to-cart bar sits at the bottom (T4S) ---------- */
.sticky-add-to-cart { top: auto !important; bottom: 0 !important; transform: translateY(110%) !important; transition: transform .3s ease !important; box-shadow: 0 0 9px rgba(0,0,0,.12); }
.sticky-add-to-cart.sticky-add-to-cart--active { transform: translateY(0) !important; }
@media (max-width: 849px) { body.has-fms-toolbar .sticky-add-to-cart { bottom: 60px !important; } }

/* ---------- tabs ---------- */
.single-product .product-footer .woocommerce-tabs { margin-top: 30px; }

/* ---------- fixes after first live check ---------- */
/* Flatsome gives every child of the variation form flex: 1 1 100%, which
   pushed the wishlist heart onto its own line. */
.single-product form.cart .tinv-wraper { flex: 0 0 auto !important; width: auto !important; }
/* The sale badge keeps the top-left for the "Save 5%" medal and moves right. */
.single-product .product-images .badge-container { left: auto; right: 18px; top: 18px; }
@media (max-width: 767px) { .single-product .product-images .badge-container { right: 12px; top: 12px; } }
