/* Ported from Shopify sections/zynbe-product-page.liquid — keep in sync with parts/product/main.php */
.zpd{ background:#FBF6F1; padding-bottom:8px; }

  /* gallery */
  .zpd__main{ position:relative; aspect-ratio:4/5; background:#F0E3DB; overflow:hidden; }
  .zpd__mainimg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .18s ease; }
  .zpd__mainimg.is-on{ opacity:1; }
  .zpd__off{ position:absolute; top:14px; left:14px; background:var(--zp); color:#fff; font-weight:800; font-size:12px; padding:5px 10px; border-radius:8px; }
  .zpd__count{ position:absolute; bottom:12px; right:12px; background:rgba(43,26,23,.55); color:#fff; font-size:11px; font-weight:700; padding:4px 9px; border-radius:999px; }
  .zpd__thumbs{ display:flex; gap:8px; padding:10px 14px 0; overflow-x:auto; scrollbar-width:none; }
  .zpd__thumbs::-webkit-scrollbar{ display:none; }
  .zpd__th{ flex:0 0 56px; aspect-ratio:4/5; border-radius:10px; overflow:hidden; border:2px solid transparent; padding:0; background:#F0E3DB; cursor:pointer; }
  .zpd__th img{ width:100%; height:100%; object-fit:cover; display:block; }
  .zpd__th.act{ border-color:var(--zp); }

  /* core */
  .zpd__core{ padding:14px 16px 4px; }
  .zpd__cat{ font-size:10.5px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:#C8963E; }
  .zpd__name{ font-family:Fraunces,'Playfair Display',Georgia,serif; font-weight:600; font-size:21px; line-height:1.25; margin:5px 0 8px; color:#2B1A17; }
  .zpd__meta{ display:flex; align-items:center; gap:10px; font-size:12.5px; color:#6D5D59; min-height:18px; }
  .zpd__sold{ color:#A1938E; }
  .zpd__price{ display:flex; align-items:baseline; gap:10px; margin:12px 0 2px; }
  .zpd__now{ font-size:28px; font-weight:800; color:var(--zp); letter-spacing:-.02em; }
  .zpd__was{ font-size:15px; color:#A1938E; }
  .zpd__save{ font-size:11.5px; font-weight:800; color:#1D7A46; background:#E7F5EC; padding:4px 8px; border-radius:6px; }
  .zpd__shipline{ font-size:12px; color:#6D5D59; margin:0 0 4px; }
  .zpd__shipline b{ color:#2B1A17; }
  .zpd__scarce{ display:flex; align-items:center; gap:8px; margin-top:10px; font-size:12px; font-weight:700; color:var(--zp); }
  .zpd__sbar{ flex:1; height:5px; border-radius:3px; background:#F0DAD3; overflow:hidden; }
  .zpd__sbar i{ display:block; height:100%; border-radius:3px; background:var(--zp); }

  /* variants */
  .zpd__blk{ padding:16px; border-top:1px solid #F0E3DB; margin-top:12px; }
  .zpd__blkrow{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:10px; }
  .zpd__blktitle{ font-size:13.5px; font-weight:800; color:#2B1A17; }
  .zpd__blklink{ font-size:12px; font-weight:700; color:var(--zp); text-decoration:underline; text-underline-offset:2px; }
  .zpd__sizes{ display:flex; gap:8px; flex-wrap:wrap; }
  .zpd__size{
    flex:1 1 0; min-width:64px; padding:11px 6px; text-align:center;
    border-radius:12px; border:1.5px solid #F0E3DB; background:#fff;
    font-size:13px; font-weight:700; color:#6D5D59; cursor:pointer;
    font-family:inherit;
  }
  .zpd__size small{ display:block; font-size:9.5px; font-weight:600; color:#A1938E; margin-top:2px; }
  .zpd__size.act{ border-color:var(--zp); background:var(--zp); color:#fff; }
  .zpd__size.act small{ color:#F3D5CB; }
  .zpd__size.oos{ opacity:.4; text-decoration:line-through; }
  .zpd__fit{ margin:10px 0 0; font-size:12px; color:#6D5D59; background:#fff; border:1px dashed #F0E3DB; border-radius:10px; padding:9px 12px; }

  /* trust */
  .zpd__trust{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; padding:14px 16px; border-top:1px solid #F0E3DB; }
  .zpd__ti{ background:#fff; border:1px solid #F0E3DB; border-radius:12px; padding:10px 6px; text-align:center; }
  .zpd__ti span{ font-size:16px; display:block; margin-bottom:4px; }
  .zpd__ti p{ margin:0; font-size:10px; font-weight:700; line-height:1.3; color:#6D5D59; white-space:pre-line; }

  /* delivery */
  .zpd__deliv{ margin:0 16px 14px; background:#fff; border:1px solid #F0E3DB; border-radius:14px; padding:13px 14px; }
  .zpd__drow{ display:flex; justify-content:space-between; font-size:12.5px; padding:3px 0; color:#6D5D59; }
  .zpd__drow b{ color:#2B1A17; font-weight:700; }
  .zpd__adv{ margin-top:9px; padding-top:9px; border-top:1px dashed #F0E3DB; font-size:11.5px; color:#6D5D59; line-height:1.45; }
  .zpd__bkchip{ display:inline-block; background:#FCE4EE; color:#C2185B; font-weight:800; font-size:10px; padding:2px 7px; border-radius:6px; margin-right:5px; }

  /* accordions */
  .zpd__acc{ border-top:1px solid #F0E3DB; padding:0 16px; }
  .zpd__acc summary{ list-style:none; display:flex; justify-content:space-between; align-items:center; padding:15px 0; font-size:13.5px; font-weight:800; color:#2B1A17; cursor:pointer; }
  .zpd__acc summary::-webkit-details-marker{ display:none; }
  .zpd__acc summary::after{ content:'+'; font-size:18px; font-weight:400; color:#A1938E; }
  .zpd__acc[open] summary::after{ content:'–'; }
  .zpd__accbody{ padding:0 0 15px; font-size:13px; line-height:1.6; color:#6D5D59; }
  .zpd__accbody table{ width:100%; border-collapse:collapse; font-size:12px; margin-top:6px; }
  .zpd__accbody td{ padding:6px 8px; border:1px solid #F0E3DB; }
  .zpd__accbody tr td:first-child{ font-weight:700; color:#2B1A17; background:#fff; }

  /* sticky CTA */
  .zpd__cta{
    position:sticky; bottom:0; z-index:70;
    background:rgba(255,255,255,.97);
    -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
    border-top:1px solid #F0E3DB;
    padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px));
    display:flex; gap:9px; align-items:center; margin:0;
  }
  .zpd__wa{ width:46px; height:46px; flex:none; border-radius:14px; border:1.5px solid #CBE8D4; background:#E9F8EF; display:grid; place-items:center; font-size:19px; text-decoration:none; }
  .zpd__add{ flex:1; height:46px; border-radius:14px; border:1.5px solid var(--zp); background:#fff; color:var(--zp); font-family:inherit; font-weight:800; font-size:13.5px; cursor:pointer; }
  .zpd__buy{ flex:1.3; height:46px; border-radius:14px; border:none; background:var(--zp); color:#fff; font-family:inherit; font-weight:800; font-size:13.5px; cursor:pointer; box-shadow:0 6px 16px rgba(122,31,43,.32); }
  .zpd__buy small{ display:block; font-size:9px; font-weight:600; opacity:.85; margin-top:1px; }
  .zpd__add:disabled, .zpd__buy:disabled{ opacity:.45; cursor:not-allowed; box-shadow:none; }
  .zpd__add.is-done{ background:#E7F5EC; border-color:#1D7A46; color:#1D7A46; }

  /* desktop: two-column layout */
  @media (min-width:1024px){
    .zpd{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:0 40px; max-width:1100px; margin:0 auto; padding:28px 28px 40px; align-items:start; }
    .zpd__gal{ grid-column:1; grid-row:1 / span 9; position:sticky; top:80px; }
    .zpd__main{ border-radius:20px; }
    .zpd__core, .zpd__blk, .zpd__trust, .zpd__deliv, .zpd__acc, .zpd__cta{ grid-column:2; }
    .zpd__core{ padding-top:0; }
    .zpd__name{ font-size:30px; }
    .zpd__cta{ position:static; background:none; border:0; padding:14px 16px; backdrop-filter:none; }
    .zpd__deliv{ margin:0 16px 4px; }
  }

/* ── WordPress additions ── */
.zpd__rating{ color:var(--zp); font-weight:800; font-size:12.5px; text-decoration:none; }
.zpd__rating span{ color:#8B7F7C; font-weight:600; }
.zpd__accbody table{ width:100%; border-collapse:collapse; }
.zpd__accbody td{ border:1px solid #F0E3DB; padding:6px 8px; }
.zpd__mainimg{ width:100%; height:auto; }

/* WooCommerce reviews (replaces Judge.me) */
.zrev{ padding:8px 16px 40px; max-width:820px; }
.zrev .woocommerce-Reviews-title{ font-family:var(--z-font-head); font-size:20px; margin:8px 0 14px; }
.zrev .commentlist{ list-style:none; margin:0; padding:0; }
.zrev .commentlist li{ background:#fff; border:1px solid #F0E3DB; border-radius:14px; padding:12px 14px; margin-bottom:10px; }
.zrev .commentlist .avatar{ display:none; }
.zrev .star-rating{ color:var(--z-accent); }
.zrev .comment-form input[type=text], .zrev .comment-form input[type=email], .zrev .comment-form textarea{ width:100%; border:1px solid #F0E3DB; border-radius:10px; padding:10px 12px; background:#fff; }
.zrev .comment-form .submit{ background:var(--z-accent); color:#fff; border:0; border-radius:999px; padding:11px 22px; font-weight:800; }
.zrev .stars a{ color:var(--z-accent); }

/* Reviews: summary, fit info, photos (zynbe-reviews.php) */
.zrev__title{ font-family:var(--z-font-head); font-size:20px; margin:10px 0 12px; }
.zrev .woocommerce-Reviews-title{ display:none; } /* our summary replaces WooCommerce's "N reviews for …" */
.zrvs{ display:flex; gap:18px; align-items:center; background:#fff; border:1px solid #F0E3DB; border-radius:16px; padding:14px; margin-bottom:14px; }
.zrvs__avg{ display:flex; flex-direction:column; align-items:center; min-width:86px; }
.zrvs__avg b{ font-size:30px; font-family:var(--z-font-head); line-height:1; }
.zrvs__avg small{ font-size:11px; color:#8B7F7C; margin-top:4px; }
.zrvs__stars{ font-size:14px; letter-spacing:1px; background:linear-gradient(90deg,var(--z-accent) calc(var(--r) / 5 * 100%),#E8DCD7 0); -webkit-background-clip:text; background-clip:text; color:transparent; }
.zrvs__bars{ flex:1; display:flex; flex-direction:column; gap:4px; }
.zrvs__bar{ display:flex; align-items:center; gap:8px; font-size:11px; color:#6D5D59; }
.zrvs__bar i{ flex:1; height:6px; border-radius:3px; background:#F3E8E0; overflow:hidden; }
.zrvs__bar em{ display:block; height:100%; background:var(--z-accent); }
.zrvs__none{ margin:0; font-size:13px; color:#6D5D59; }
.zrv__meta{ font-size:11.5px; font-weight:700; color:#6D5D59; margin:4px 0 0; }
.zrv__photos{ display:flex; gap:6px; margin-top:8px; flex-wrap:wrap; }
.zrv__photos img{ width:64px; height:64px; object-fit:cover; border-radius:8px; }
.zrv__fit{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.zrev .comment-form label{ display:block; font-size:12px; font-weight:800; margin-bottom:4px; }
.zrev .comment-form .optional{ font-weight:600; color:#A1938E; }
.zrev .woocommerce-review__verified{ color:#027A48; font-style:normal; font-weight:700; }
.zrev .description p{ margin:6px 0 0; white-space:pre-line; }
.zrv__err{ background:#FEF3F2; color:#B42318; border-radius:10px; padding:10px 12px; font-size:13px; font-weight:600; margin:0 0 10px; }
.zrev .comment-form-phone small{ display:block; font-size:11px; color:#6D5D59; margin-top:4px; }
.zrev .comment-form-phone input{ width:100%; border:1px solid #F0E3DB; border-radius:10px; padding:10px 12px; background:#fff; }
.zrv__ok{ background:#ECFDF3; color:#1D7A46; border-radius:10px; padding:10px 12px; font-size:13px; font-weight:700; margin:0 0 12px; }
