/*
 * Phase 08-G.16 — Structural Single Product Template
 * This file is loaded last and only on single-product pages.
 */

/* Neutralize legacy grid assumptions on the Woo product root. */
body.single-product .woocommerce div.product.mkp-product-template{
  display:block!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

/* ==========================================================
   TOP PRODUCT AREA — DOM is structurally correct now
   physical left = info, physical right = gallery
   ========================================================== */
body.single-product .mkp-product-main{
  direction:ltr;
  display:grid;
  grid-template-columns:minmax(0,.96fr) minmax(0,1.04fr);
  gap:34px;
  align-items:stretch;
  width:100%;
  padding:26px;
  border:1px solid var(--mkp-border);
  border-radius:26px;
  background:var(--mkp-surface);
  box-shadow:0 16px 44px rgba(2,18,25,.08);
}

body.single-product .mkp-product-info{
  direction:rtl;
  display:flex;
  flex-direction:column;
  min-width:0;
  height:100%;
  padding:6px 2px 0;
}

body.single-product .mkp-product-intro{
  min-width:0;
}

body.single-product .mkp-product-intro .product_title{
  max-width:19ch;
  margin:0 0 10px!important;
  color:var(--mkp-ink);
  font-family:var(--mkp-heading-font);
  font-size:clamp(1.55rem,2.8vw,2.45rem)!important;
  line-height:1.45;
}

body.single-product .mkp-product-intro .woocommerce-product-rating{
  margin:0 0 10px!important;
}

body.single-product .mkp-product-intro .woocommerce-product-details__short-description{
  max-width:62ch;
  margin:0!important;
  color:var(--mkp-muted);
  font-size:.72rem;
  line-height:2;
}

/* Gallery owns its own column. Zoom trigger/badge can no longer escape into title. */
body.single-product .mkp-product-gallery-frame{
  direction:rtl;
  min-width:0;
  align-self:stretch;
}

body.single-product .mkp-product-gallery-frame .woocommerce-product-gallery{
  position:relative!important;
  float:none!important;
  width:100%!important;
  margin:0!important;
}

body.single-product .mkp-product-gallery-frame .woocommerce-product-gallery__wrapper{
  overflow:hidden;
  border:1px solid var(--mkp-border);
  border-radius:22px;
  background:var(--mkp-surface-soft);
}

body.single-product .mkp-product-gallery-frame .woocommerce-product-gallery__image img{
  display:block!important;
  width:100%!important;
  height:auto!important;
  min-height:430px;
  max-height:560px;
  padding:18px;
  border-radius:21px!important;
  background:var(--mkp-surface-soft);
  object-fit:contain!important;
}

body.single-product .mkp-product-gallery-frame .flex-control-thumbs{
  display:flex!important;
  justify-content:center;
  gap:9px;
  flex-wrap:wrap;
  margin:12px 0 0!important;
  padding:0!important;
}

body.single-product .mkp-product-gallery-frame .flex-control-thumbs li{
  float:none!important;
  width:72px!important;
  margin:0!important;
}

body.single-product .mkp-product-gallery-frame .flex-control-thumbs img{
  width:72px!important;
  height:72px!important;
  padding:3px;
  border:1px solid var(--mkp-border);
  border-radius:11px;
  background:var(--mkp-surface-soft);
  object-fit:contain;
}

/* Sale badge is visually inside the gallery, not on the whole product card. */
body.single-product .mkp-product-gallery-frame .mkp-product-gallery-sale{
  position:absolute!important;
  z-index:8!important;
  top:12px!important;
  right:12px!important;
  left:auto!important;
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  min-width:auto!important;
  min-height:29px!important;
  margin:0!important;
  padding:6px 11px!important;
  border:1px solid rgba(16,149,79,.3)!important;
  border-radius:999px!important;
  background:#a9edc5!important;
  color:#075c31!important;
  box-shadow:0 8px 22px rgba(16,149,79,.14)!important;
  font-size:.55rem!important;
  font-weight:950!important;
  line-height:1!important;
}

/* ==========================================================
   BOTTOM DOCK — lives INSIDE the info column
   therefore it cannot span below the gallery again
   ========================================================== */
body.single-product .mkp-product-dock{
  direction:ltr;
  display:grid;
  grid-template-columns:minmax(275px,1.2fr) minmax(200px,.8fr);
  grid-template-areas:"purchase meta";
  gap:10px;
  align-items:stretch;
  width:100%;
  margin-top:auto;
  padding-top:16px;
}

body.single-product .mkp-product-dock__purchase{
  grid-area:purchase;
  direction:rtl;
  min-width:0;
}

body.single-product .mkp-product-dock__meta{
  grid-area:meta;
  direction:rtl;
  min-width:0;
}

body.single-product .mkp-product-dock .mkp-product-purchase,
body.single-product .mkp-product-dock .mkp-product-meta-card{
  width:100%!important;
  height:100%!important;
  min-height:146px!important;
  margin:0!important;
  border:1px solid var(--mkp-border)!important;
  border-radius:15px!important;
  background:var(--mkp-surface-soft)!important;
}

/* Purchase: price top; small quantity RIGHT; wide CTA LEFT. */
body.single-product .mkp-product-dock .mkp-product-purchase{
  display:flex!important;
  flex-direction:column!important;
  padding:11px!important;
}

body.single-product .mkp-product-dock .mkp-product-purchase__price{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:62px!important;
  padding:8px 10px 10px!important;
  border:0!important;
  border-bottom:1px solid var(--mkp-border)!important;
  border-radius:0!important;
  background:transparent!important;
}

body.single-product .mkp-product-dock .mkp-product-purchase__price .price{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  gap:2px!important;
  margin:0!important;
  text-align:center!important;
}

body.single-product .mkp-product-dock .mkp-product-purchase__price .price del{
  color:#e76868!important;
  font-size:.69rem!important;
  font-weight:800!important;
  opacity:.95!important;
  text-decoration-line:line-through!important;
  text-decoration-color:#ff5f68!important;
  text-decoration-thickness:2px!important;
}

body.single-product .mkp-product-dock .mkp-product-purchase__price .price ins,
body.single-product .mkp-product-dock .mkp-product-purchase__price .price>.woocommerce-Price-amount{
  color:#1cc76d!important;
  font-size:.96rem!important;
  font-weight:950!important;
  text-decoration:none!important;
}

/* Explicit physical order: unit LEFT, number RIGHT. */
body.single-product .mkp-price-pair,
body.woocommerce-shop .mkp-price-pair,
body.post-type-archive-product .mkp-price-pair,
.mkp-commerce-page--fallback .mkp-price-pair{
  display:inline-flex!important;
  flex-direction:row!important;
  align-items:baseline!important;
  gap:.3em!important;
  direction:ltr!important;
  unicode-bidi:isolate!important;
  white-space:nowrap!important;
}

body.single-product .mkp-price-pair .mkp-price-unit,
body.woocommerce-shop .mkp-price-pair .mkp-price-unit,
body.post-type-archive-product .mkp-price-pair .mkp-price-unit,
.mkp-commerce-page--fallback .mkp-price-pair .mkp-price-unit{
  order:1!important;
  direction:rtl!important;
  unicode-bidi:isolate!important;
}

body.single-product .mkp-price-pair .mkp-price-number,
body.woocommerce-shop .mkp-price-pair .mkp-price-number,
body.post-type-archive-product .mkp-price-pair .mkp-price-number,
.mkp-commerce-page--fallback .mkp-price-pair .mkp-price-number{
  order:2!important;
  direction:ltr!important;
  unicode-bidi:isolate!important;
}

body.single-product .mkp-product-dock .mkp-product-purchase__action{
  display:flex!important;
  align-items:flex-end!important;
  flex:1 1 auto!important;
  width:100%!important;
  padding-top:10px!important;
}

body.single-product .mkp-product-dock .mkp-product-purchase form.cart{
  direction:rtl!important;
  display:flex!important;
  flex-direction:row!important;
  align-items:stretch!important;
  gap:8px!important;
  width:100%!important;
  margin:auto 0 0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
}

body.single-product .mkp-product-dock .mkp-product-purchase form.cart .quantity{
  order:1!important;
  flex:0 0 58px!important;
  width:58px!important;
  margin:0!important;
}

body.single-product .mkp-product-dock .mkp-product-purchase form.cart .quantity .qty{
  width:58px!important;
  min-width:58px!important;
  min-height:46px!important;
  height:46px!important;
  text-align:center!important;
}

body.single-product .mkp-product-dock .mkp-product-purchase form.cart .single_add_to_cart_button{
  order:2!important;
  flex:1 1 auto!important;
  width:auto!important;
  min-width:0!important;
  min-height:46px!important;
  padding:9px 18px!important;
  font-size:.64rem!important;
  white-space:nowrap!important;
}

/* Meta is intentionally RTL/right-aligned, including on mobile. */
body.single-product .mkp-product-dock .mkp-product-meta-card{
  display:grid!important;
  align-content:center!important;
  gap:7px!important;
  padding:9px!important;
}

body.single-product .mkp-product-dock .mkp-product-meta-card,
body.single-product .mkp-product-dock .mkp-product-meta-card__row,
body.single-product .mkp-product-dock .mkp-product-meta-card__row>div,
body.single-product .mkp-product-dock .mkp-product-meta-card__row strong,
body.single-product .mkp-product-dock .mkp-product-meta-card__chips,
body.single-product .mkp-product-dock .mkp-product-meta-card__chips a{
  direction:rtl!important;
  text-align:right!important;
}

body.single-product .mkp-product-dock .mkp-product-meta-card__chips{
  justify-content:flex-start!important;
}

/* ==========================================================
   DESCRIPTION + REVIEWS — one integrated box
   ========================================================== */
body.single-product .mkp-product-details-box{
  direction:rtl;
  width:100%;
  margin-top:28px;
  padding:18px;
  border:1px solid var(--mkp-border);
  border-radius:22px;
  background:
    radial-gradient(circle at 88% 0%,rgba(16,149,79,.055),transparent 24rem),
    var(--mkp-surface-soft);
  box-shadow:0 14px 34px rgba(2,18,25,.10);
}

body.single-product .mkp-product-details-box .woocommerce-tabs{
  width:100%!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

body.single-product .mkp-product-details-box .woocommerce-tabs ul.tabs{
  display:flex!important;
  justify-content:center!important;
  gap:7px!important;
  margin:0 0 14px!important;
  padding:0!important;
}

body.single-product .mkp-product-details-box .woocommerce-Tabs-panel,
body.single-product .mkp-product-details-box #reviews{
  width:100%!important;
  margin:0!important;
  padding:19px!important;
  border:1px solid var(--mkp-border)!important;
  border-radius:17px!important;
  background:var(--mkp-surface)!important;
}

/* ==========================================================
   RELATED / UPSELL — centered as a section and as cards
   ========================================================== */
body.single-product .mkp-product-recommendations{
  direction:rtl;
  width:100%;
  margin-top:30px;
  text-align:center;
}

body.single-product .mkp-product-recommendations .related,
body.single-product .mkp-product-recommendations .upsells{
  width:100%!important;
  margin:0 0 24px!important;
  padding:26px 18px!important;
  border:1px solid var(--mkp-border);
  border-radius:20px;
  background:var(--mkp-surface-soft);
  text-align:center!important;
}

body.single-product .mkp-product-recommendations .related>h2,
body.single-product .mkp-product-recommendations .upsells>h2{
  width:100%!important;
  margin:0 0 16px!important;
  text-align:center!important;
}

body.single-product .mkp-product-recommendations ul.products{
  display:flex!important;
  flex-wrap:wrap!important;
  justify-content:center!important;
  align-items:stretch!important;
  gap:14px!important;
  width:min(100%,980px)!important;
  margin:0 auto!important;
  padding:0!important;
}

body.single-product .mkp-product-recommendations ul.products li.product{
  float:none!important;
  flex:0 1 280px!important;
  width:min(100%,280px)!important;
  max-width:280px!important;
  margin:0!important;
  text-align:center!important;
}

/* ==========================================================
   MOBILE — gallery first, general text centered,
   purchase first, meta second; meta itself remains RTL/right.
   ========================================================== */
@media(max-width:900px){
  body.single-product .mkp-product-main{
    display:flex;
    flex-direction:column;
    gap:0;
    padding:16px;
    border-radius:20px;
  }

  body.single-product .mkp-product-gallery-frame{
    order:1;
  }

  body.single-product .mkp-product-info{
    order:2;
    padding-top:18px;
    text-align:center;
  }

  body.single-product .mkp-product-intro,
  body.single-product .mkp-product-intro .product_title,
  body.single-product .mkp-product-intro .woocommerce-product-details__short-description,
  body.single-product .mkp-product-intro .woocommerce-product-details__short-description p{
    margin-inline:auto!important;
    text-align:center!important;
  }

  body.single-product .mkp-product-dock{
    direction:rtl;
    grid-template-columns:1fr;
    grid-template-areas:
      "purchase"
      "meta";
    gap:9px;
    margin-top:16px;
    padding-top:0;
  }

  body.single-product .mkp-product-dock .mkp-product-purchase,
  body.single-product .mkp-product-dock .mkp-product-purchase__price,
  body.single-product .mkp-product-dock .mkp-product-purchase__action{
    text-align:center!important;
  }

  body.single-product .mkp-product-dock .mkp-product-purchase form.cart,
  body.single-product .mkp-product-dock .mkp-product-purchase__price .price{
    justify-content:center!important;
  }

  /* Required exception: meta text must NOT be centered. */
  body.single-product .mkp-product-dock .mkp-product-meta-card,
  body.single-product .mkp-product-dock .mkp-product-meta-card__row,
  body.single-product .mkp-product-dock .mkp-product-meta-card__row>div,
  body.single-product .mkp-product-dock .mkp-product-meta-card__row strong,
  body.single-product .mkp-product-dock .mkp-product-meta-card__chips,
  body.single-product .mkp-product-dock .mkp-product-meta-card__chips a{
    direction:rtl!important;
    text-align:right!important;
  }

  body.single-product .mkp-product-details-box,
  body.single-product .mkp-product-details-box .woocommerce-Tabs-panel,
  body.single-product .mkp-product-details-box #reviews,
  body.single-product .mkp-product-recommendations,
  body.single-product .mkp-product-recommendations .related,
  body.single-product .mkp-product-recommendations .upsells{
    text-align:center!important;
  }
}

@media(max-width:620px){
  body.single-product .mkp-product-main{
    padding:12px;
  }

  body.single-product .mkp-product-gallery-frame .woocommerce-product-gallery__image img{
    min-height:0;
    max-height:none;
    padding:10px;
  }

  body.single-product .mkp-product-dock .mkp-product-purchase,
  body.single-product .mkp-product-dock .mkp-product-meta-card{
    min-height:auto!important;
  }

  body.single-product .mkp-product-recommendations ul.products li.product{
    flex:0 0 100%!important;
    width:100%!important;
    max-width:100%!important;
  }
}


/* ==========================================================
   Phase 08-G.16.1 — Reliable red old-price strike
   ========================================================== */

/* Woo price internals use inline-flex BDI spans, where inherited text-decoration
   can become visually inconsistent. Draw one explicit red line over the entire
   old amount instead of relying only on `text-decoration`. */
body.single-product .mkp-product-dock .mkp-product-purchase__price .price del .woocommerce-Price-amount{
  position:relative!important;
  display:inline-block!important;
  color:#e76868!important;
  text-decoration:none!important;
}

body.single-product .mkp-product-dock .mkp-product-purchase__price .price del .woocommerce-Price-amount::after{
  content:"";
  position:absolute;
  z-index:2;
  top:50%;
  right:-2px;
  left:-2px;
  height:2px;
  border-radius:999px;
  background:#ff5f68;
  transform:translateY(-50%) rotate(-3deg);
  pointer-events:none;
}

/* Shop/archive cards use the same reliable strike. */
body.woocommerce-shop ul.products li.product .price del .woocommerce-Price-amount,
body.post-type-archive-product ul.products li.product .price del .woocommerce-Price-amount,
.mkp-commerce-page--fallback ul.products li.product .price del .woocommerce-Price-amount{
  position:relative!important;
  display:inline-block!important;
  color:#e76868!important;
  text-decoration:none!important;
}

body.woocommerce-shop ul.products li.product .price del .woocommerce-Price-amount::after,
body.post-type-archive-product ul.products li.product .price del .woocommerce-Price-amount::after,
.mkp-commerce-page--fallback ul.products li.product .price del .woocommerce-Price-amount::after{
  content:"";
  position:absolute;
  z-index:2;
  top:50%;
  right:-2px;
  left:-2px;
  height:2px;
  border-radius:999px;
  background:#ff5f68;
  transform:translateY(-50%) rotate(-3deg);
  pointer-events:none;
}
