/*
 * Product page (single product) – ported from TS layout.
 * Keep this file isolated to avoid breaking header/categories.
 */

.fp-product{max-width:1200px;margin:0 auto;padding:18px 18px 56px}
.fp-product__breadcrumbs{font-size:12px;color:#6b7280;margin:0 0 16px}
.fp-product__breadcrumbs a{color:inherit;text-decoration:none}
.fp-product__breadcrumbs a:hover{text-decoration:underline}

.fp-product__top{display:grid;grid-template-columns:1fr 420px;gap:28px;align-items:start}

/* Gallery */
.fp-product__gallery{display:grid;grid-template-columns:68px 1fr;gap:16px}
.fp-product__thumbs{display:flex;flex-direction:column;gap:14px}
.fp-thumb{border:1px solid #e5e7eb;border-radius:12px;padding:6px;background:#fff;cursor:pointer;width:68px;height:68px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.fp-thumb img{display:block;width:100%;height:100%;object-fit:cover;border-radius:8px}
.fp-thumb.is-active{border-color:#e11d48;box-shadow:0 0 0 2px rgba(225,29,72,.18)}
.fp-product__main-image,
.fp-product__mainimg{border:1px solid #e5e7eb;border-radius:16px;background:#fff;padding:16px;height:440px;min-height:0;display:flex;align-items:stretch;justify-content:stretch;overflow:hidden;width:100%;max-width:100%;aspect-ratio:1/1}
.fp-mainimg{display:none;width:100%;height:100%}
.fp-mainimg.is-active{display:block}
.fp-mainimg img{display:block;width:100%;height:100%;object-fit:cover;border-radius:14px}

/* Summary */
.fp-product__summary{border:1px solid #e5e7eb;border-radius:16px;background:#fff;padding:26px 26px 22px;position:relative}
.fp-product__brand{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.fp-product__brand-bar{width:4px;height:18px;background:#dc2626;border-radius:99px}
.fp-product__brand-name{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#6b7280}
.fp-product__title{margin:0 0 10px;font-size:26px;letter-spacing:.02em;font-weight:800;text-transform:uppercase;color:#111827}
.fp-product__sku{margin:0 0 14px;color:#6b7280;font-size:13px}
.fp-product__sku-label{color:#111827;font-weight:600}
.fp-product__sku-value{color:#dc2626;font-weight:700}
.fp-product__divider{border:0;border-top:1px solid #e5e7eb;margin:14px 0 18px}
.fp-product__price{font-size:24px;font-weight:800;color:#111827;margin:0 0 16px}
.fp-product__cart .single_add_to_cart_button{width:100%;border-radius:12px;padding:14px 16px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.fp-product__access{display:flex;align-items:center;justify-content:center;width:100%;background:#525252;color:#fff;text-decoration:none;border-radius:12px;padding:14px 16px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.fp-product__access:hover{filter:brightness(1.05)}
.fp-product__notlogged{position:absolute;top:-12px;right:-12px;background:#525252;color:#fff;font-size:11px;padding:8px 10px;border-radius:10px;font-weight:700;letter-spacing:.08em}

/* Tabs */
.fp-product__tabs{margin-top:26px}
.fp-tabs{display:grid;grid-template-columns:1fr 1fr 1fr;border:1px solid #ef4444;border-radius:12px 12px 0 0;overflow:hidden;background:#fff}
.fp-tab{appearance:none;border:0;background:#fff;padding:16px 12px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;font-size:12px;cursor:pointer}
.fp-tab.is-active{outline:0;border-bottom:2px solid #ef4444}
.fp-tabpanels{border:1px solid #e5e7eb;border-top:0;border-radius:0 0 16px 16px;background:#fff;box-shadow:0 10px 24px rgba(17,24,39,.08)}

/*
 * Interaction safety (force clickability)
 *
 * If any global overlay ends up above the product UI, these rules keep the
 * gallery thumbs, arrows, and tab buttons clickable.
 */
.fp-product__media,.fp-product__tabs{position:relative;z-index:50}
.fp-product__thumb,.fp-product__nav,.fp-product__tabbtn{position:relative;z-index:10;pointer-events:auto!important}

/* Disable Woo default zoom trigger/overlays that can sit on top of our UI */
.woocommerce-product-gallery__trigger{
  pointer-events:none!important;
}
.fp-panel{display:none;padding:22px 22px 26px}
.fp-panel.is-active{display:block}
.fp-product__description{color:#374151;line-height:1.7;font-size:14px}

.fp-specs{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px}
.fp-spec{border:1px solid #e5e7eb;border-radius:12px;padding:12px 14px;background:#fafafa}
.fp-spec__label{font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-size:11px;color:#111827;margin-bottom:6px}
.fp-spec__value{color:#374151;font-size:13px}

.fp-docs{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.fp-doc a{display:flex;gap:10px;align-items:center;border:1px solid #e5e7eb;border-radius:12px;padding:12px 14px;text-decoration:none;color:#111827;background:#fff}
.fp-doc a:hover{border-color:#ef4444;box-shadow:0 0 0 2px rgba(239,68,68,.14)}
.fp-doc__icon{font-weight:900}
.fp-empty{color:#6b7280;margin:0}

/* Related */
.fp-product__related{margin-top:36px}
.fp-related__head{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.fp-related__bar{width:6px;height:28px;background:#dc2626;border-radius:99px}
.fp-related__title{margin:0;font-weight:900;letter-spacing:.14em;text-transform:uppercase}
.fp-related__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.fp-related__card{border:1px solid #e5e7eb;border-radius:16px;background:#fff;overflow:hidden;text-decoration:none;color:inherit;box-shadow:0 10px 24px rgba(17,24,39,.08);transition:transform .15s ease, box-shadow .15s ease}
.fp-related__card:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(17,24,39,.12)}
.fp-related__img{aspect-ratio:4/3;background:#f3f4f6}
.fp-related__img img{width:100%;height:100%;object-fit:cover;display:block}
.fp-related__meta{padding:12px 12px 14px}
.fp-related__name{font-weight:900;letter-spacing:.06em;text-transform:uppercase;font-size:12px;min-height:36px}
.fp-related__price{margin-top:8px;font-weight:900;color:#111827}
.fp-related__price.is-hidden{color:#6b7280;font-weight:800}


.fp-related__link{display:block;text-decoration:none;color:inherit}
.fp-related__meta{padding:12px 12px 14px}
.fp-related__line{font-size:11px;color:#6b7280;margin-top:6px}
.fp-related__label{font-weight:800;color:#111827}
.fp-related__brand{letter-spacing:.04em;text-transform:uppercase}
.fp-related__stock{margin-top:8px;font-size:11px;color:#059669;font-weight:800}
.fp-related__stock--out{color:#dc2626}
.fp-related__actions{margin-top:10px;display:flex;flex-direction:column;gap:10px}
.fp-related__qty{width:max-content}
.fp-related__add,.fp-related__cta,.fp-related__contact{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:10px;padding:10px 12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;font-size:11px;text-decoration:none;cursor:pointer}
.fp-related__add{background:#fbbf24;color:#111827}
.fp-related__cta{background:#4b5563;color:#fff}
.fp-related__contact{background:#4b5563;color:#fff}
.fp-related__add.loading{opacity:.75;pointer-events:none}

/* Responsive */
@media (max-width: 1024px){
  .fp-product__top{grid-template-columns:1fr;}
  .fp-product__summary{order:2}
  .fp-product__gallery{order:1}
  .fp-related__grid{grid-template-columns:repeat(2,1fr)}
}

/* -------------------------------------------------------------------------- */
/* Interaction & sizing hardening (fix "no click" + oversized text issues) */
/* -------------------------------------------------------------------------- */

/* Keep interactive UI above any accidental overlays */
.fp-product__gallery{position:relative;}
.fp-product__main{position:relative;z-index:2;}
.fp-product__thumbs{position:relative;z-index:3;}
.fp-thumb{position:relative;z-index:3;}

/* Gallery arrows */
.fp-gallery__nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:6;
  width:38px;
  height:38px;
  border-radius:999px;
  border:1px solid #e5e7eb;
  background:rgba(255,255,255,.92);
  color:#111827;
  font-size:22px;
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  pointer-events:auto;
}
.fp-gallery__prev{left:14px;}
.fp-gallery__next{right:14px;}

/* Tabs */
.fp-tabs{position:relative;z-index:4;}
.fp-tab{position:relative;z-index:4;pointer-events:auto;}
.fp-panel{position:relative;z-index:4;}

/* Prevent global CSS from blowing up prices/buttons */
.fp-product__price-value{font-size:16px!important;line-height:1.1!important;}
.fp-product__special .fp-product__price-value{font-size:20px!important;}
.fp-product__your .fp-product__price-value{font-size:22px!important;}
.fp-product__add{font-size:12px!important;}

@media (max-width: 640px){
  .fp-product{padding:14px 14px 46px}
  .fp-product__gallery{grid-template-columns:60px 1fr;gap:12px}
  .fp-product__main-image,.fp-product__mainimg{height:320px;min-height:0;padding:12px}
  .fp-specs{grid-template-columns:1fr}
}


/* Pricing + buy box details (TS parity) */
.fp-product__stock{
  background:#ecfdf3;
  border:1px solid #b7f0c8;
  color:#055d2a;
  padding:14px 16px;
  border-radius:6px;
  font-size:13px;
  font-weight:600;
  margin:18px 0 12px;
}
.fp-product__stock--outofstock{
  background:#fff1f2;
  border-color:#fecdd3;
  color:#7f1d1d;
}
.fp-product__prices{ margin:6px 0 14px; }
.fp-product__price-line{
  display:flex;
  gap:12px;
  align-items:baseline;
  margin:8px 0;
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#111827;
}
.fp-product__price-label{ min-width:120px; color:#6b7280; }
.fp-product__price-value{ font-weight:700; letter-spacing:0; text-transform:none; }
.fp-product__price-value--strike{ text-decoration:line-through; color:#9ca3af; font-weight:600; }
.fp-product__price-value--special{ color:#f59e0b; font-size:20px; font-weight:800; }
.fp-product__price-value--your{ color:#d70000; font-size:22px; font-weight:900; }
.fp-product__cart{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  align-items:flex-end;
  margin:10px 0 0;
}
.fp-product__qty{ flex:0 0 auto; }
.fp-product__qty-label{
  display:block;
  font-size:12px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#111827;
  margin-bottom:8px;
}
.fp-qty{
  display:flex;
  align-items:stretch;
  border:1px solid #d1d5db;
  border-radius:6px;
  overflow:hidden;
  height:42px;
}
.fp-qty__btn{
  width:44px;
  border:0;
  background:#f3f4f6;
  font-size:18px;
  font-weight:800;
  cursor:pointer;
}
.fp-qty__input{
  width:56px;
  border:0;
  text-align:center;
  font-weight:700;
  outline:none;
}

/* Hide native number spinners (we use + / - buttons). */
.fp-qty__input[type=number]{
  -moz-appearance:textfield;
}
.fp-qty__input[type=number]::-webkit-outer-spin-button,
.fp-qty__input[type=number]::-webkit-inner-spin-button{
  -webkit-appearance:none;
  margin:0;
}
.fp-product__add{
  flex:1 1 auto;
  height:42px;
  border:0;
  border-radius:6px;
  background:#f4b400;
  color:#111827;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  cursor:pointer;
  padding:0 18px;
  white-space:nowrap;
  font-size:12px;
}

/* Fix: don't force 100% width buttons inside flex (prevents overflow/cut-off). */
.fp-product__cart .single_add_to_cart_button{width:auto !important;flex:1 1 220px;min-width:200px;}
.fp-product__disclaimer{
  margin-top:12px;
  padding:12px 14px;
  border:1px solid #e5e7eb;
  border-radius:6px;
  color:#6b7280;
  font-size:12px;
  line-height:1.4;
  font-style:italic;
}
.fp-product__locked{
  margin-top:18px;
}
.fp-product__locked-button{
  height:46px;
  border-radius:8px;
  background:#5b5b5b;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase;
}

/* -------------------------------------------------------------------------- */
/* Interaction & sizing hardening (fix "no click" + oversized text issues) */
/* -------------------------------------------------------------------------- */

/* Ensure the interactive elements sit on top */
.fp-product__gallery{position:relative;z-index:1;}
.fp-product__thumbs{position:relative;z-index:3;}
.fp-thumb{position:relative;z-index:3;}
.fp-product__main{position:relative;z-index:2;}

/* Gallery prev/next controls */
.fp-gallery__nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:38px;
  height:38px;
  border-radius:999px;
  border:1px solid #e5e7eb;
  background:rgba(255,255,255,.86);
  color:#111827;
  font-size:26px;
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  z-index:6;
  pointer-events:auto;
}
.fp-gallery__prev{left:14px;}
.fp-gallery__next{right:14px;}

/* Tabs must be clickable (sometimes a positioned sibling can overlap them) */
.fp-tabs{position:relative;z-index:5;}
.fp-tabs__nav{position:relative;z-index:5;}
.fp-tab{position:relative;z-index:5;pointer-events:auto;}
.fp-panels{position:relative;z-index:5;}
.fp-panel{position:relative;z-index:5;}

/* Clamp typography to match TS comp (avoid huge scaling from global styles) */
.fp-product__price-label{font-size:11px !important;letter-spacing:.12em;}
.fp-product__msrp .fp-product__price-value{font-size:14px !important;}
.fp-product__special .fp-product__price-value{font-size:18px !important;}
.fp-product__your .fp-product__price-value{font-size:22px !important; word-break:break-word;}

/* Prevent button label overflow */
.fp-product__add{min-width:210px; white-space:nowrap; padding-left:22px; padding-right:22px;}

/* Product page links should not be underlined */
.fp-product a{ text-decoration:none; }
.fp-product a:hover{ text-decoration:none; }

/* Gallery controls must remain clickable */
.fp-product__stage{position:relative;z-index:1;}
.fp-product__nav{z-index:20;pointer-events:auto;}
.fp-product__thumbs{position:relative;z-index:10;}
.fp-product__thumb{z-index:20;pointer-events:auto;}

/* Tabs must remain clickable */
.fp-tabs,.fp-tabs__nav{z-index:30;pointer-events:auto;}
.fp-tab{pointer-events:auto;}


/* === Gallery behavior (ensure thumbs don't get covered) === */
.fp-product__gallery{display:grid;grid-template-columns:72px 1fr 340px;gap:24px;align-items:start;}
@media (max-width: 1100px){.fp-product__gallery{grid-template-columns:72px 1fr;}.fp-product__summary{grid-column:1/-1;}}
.fp-product__thumbs{position:relative;z-index:5;}
.fp-thumb{display:flex;align-items:center;justify-content:center;width:64px;height:64px;border:1px solid #e5e7eb;border-radius:10px;background:#fff;cursor:pointer;pointer-events:auto;}
.fp-thumb.is-active{border-color:#ef4444;box-shadow:0 0 0 2px rgba(239,68,68,.15) inset;}
.fp-product__stage{position:relative;border:1px solid #e5e7eb;border-radius:14px;background:#fff;padding:28px;overflow:hidden;z-index:1;}
.fp-product__slides{position:relative;}
.fp-product__slide{display:none;}
.fp-product__slide.is-active{display:block;}
.fp-product__slide img{display:block;max-width:100%;height:auto;border-radius:10px;}

/* Prevent global underline on theme links */
.fp a, .site a, a{ text-decoration:none; }
.fp a:hover, .site a:hover, a:hover{ text-decoration:none; }

/* === Product gallery (ensures thumbs are clickable and slides switch) === */
.fp-product__gallery{display:grid;grid-template-columns:72px 1fr;gap:18px;align-items:start}
.fp-product__thumbs{position:relative;z-index:3;display:flex;flex-direction:column;gap:14px}
.fp-product__thumb,.fp-thumb{pointer-events:auto;cursor:pointer;position:relative;z-index:3}
.fp-product__stage{position:relative;z-index:1}
.fp-product__slides{position:relative;min-height:420px}
.fp-product__slide{display:none}
.fp-product__slide.is-active{display:block}
.fp-product__slide img{width:100%;height:auto;display:block}

/* Prevent any accidental overlays from blocking clicks */
.fp-product__gallery *, .fp-product__gallery{touch-action:manipulation}

/* ===== Final hardening ===== */
.fp-product__summary{position:relative;z-index:50;pointer-events:auto;}
.fp-qty{position:relative;z-index:60;pointer-events:auto;}
.fp-qty__btn{position:relative;z-index:70;pointer-events:auto;}

/* Hide native number spinners everywhere */
input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
input[type=number]{-moz-appearance:textfield}

/* Consistent hero image sizing */
.fp-product__slides{min-height:420px;}
.fp-product__slide img{width:100%;height:100%;object-fit:cover;}

/* Prevent any layout element from creating horizontal overflow */
.fp-product__wrap, .fp-product__top, .fp-product__gallery{max-width:100%;}
.fp-tabs{position:relative;z-index:60;pointer-events:auto;}
.fp-tab{pointer-events:auto;}
.fp-tab::before,.fp-tab::after{pointer-events:none;}


/* --- Hard safety fixes (tabs/qty/click) --- */
.fp-product, .fp-product * { box-sizing: border-box; }
.fp-product { overflow-x: hidden; }
.fp-product__gallery, .fp-product__hero { overflow: hidden; }
.fp-product__main-image, .fp-product__thumbs img { object-fit: cover; }
.fp-qty__btn { pointer-events: auto; z-index: 5; position: relative; }
.fp-tabs, .fp-tabs * { pointer-events: auto; }
.fp-tab { cursor: pointer; }
a { text-decoration: none; }

/* Ensure consistent product media sizing */
.fp-product__main-media {
  position: relative;
  width: 100%;
  height: 420px;
  overflow: hidden;
  border-radius: 14px;
}
@media (max-width: 900px) {
  .fp-product__main-media { height: 300px; }
}
.fp-product__main-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Remove native number spinners; we use +/- buttons */
.fp-qty input[type="number"]::-webkit-outer-spin-button,
.fp-qty input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.fp-qty input[type="number"] { -moz-appearance: textfield; }


/* --- Hard safety + interaction fixes --- */
html, body { overflow-x: hidden; }

.fp-product a { text-decoration: none; }

/* Ensure nothing overlays clickable UI */
.fp-product__media, .fp-product__tabs, .fp-product__buy { position: relative; z-index: 1; }
.fp-product__media * { pointer-events: auto; }

/* Gallery main images: fixed viewport + cover */
.fp-mainimg { display: none; }
.fp-mainimg.is-active { display: block; }
.fp-mainimg img {
  width: 100%;
  height: 100%;
  max-width: 100%;
  object-fit: cover;
}
.fp-product__mainimg {
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

/* Tabs must be clickable */
.fp-tabs__btn { cursor: pointer; pointer-events: auto; }

/* Quantity stepper: hide native spinners and keep buttons clickable */
.fp-qty__input::-webkit-outer-spin-button,
.fp-qty__input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.fp-qty__input { -moz-appearance: textfield; }

/* Buy row: prevent button from being cut off */
.fp-product__buyrow {
  display: flex;
  gap: 16px;
  align-items: center;
  flex-wrap: nowrap;
}
.fp-product__buyrow .fp-qty { flex: 0 0 auto; }
.fp-product__buyrow .single_add_to_cart_button,
.fp-product__buyrow .fp-addtocart {
  flex: 1 1 auto;
  min-width: 0;
  max-width: 420px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
