/* ==========================================================================
   Waterclick — Single Product Page (PDP) redesign
   Scoped stylesheet: every selector is prefixed with `.wc-pdp` or
   `body.single-product` so nothing leaks into the rest of the live site.
   Design tokens live on `.wc-pdp` (NOT :root). Fonts reference the site's
   already-loaded Prompt + IBM Plex Mono stacks (no @import / <link>).
   Plain CSS — no build step required. Keep in sync with assets/scss/pdp.scss.
   ========================================================================== */

/* The category title band (wc_page_cover, emitted by woocommerce.php) shows on
   product pages too — before the breadcrumb — so the PDP header matches /products/
   and the category archives. It renders as an <h2> here (the hero product name is
   the page <h1>). The band clears the fixed header, so the breadcrumb no longer
   needs a top offset. */
body.single-product .woocommerce-breadcrumb{margin-top:0;margin-bottom:14px;font-size:13px;color:#3A5563}
body.single-product .woocommerce-breadcrumb a:hover{color:#D72127}

/* ---- Design tokens (light default) ---- */
.wc-pdp{
  --ink:#0A2430;--ink-2:#3A5563;--paper:#F4F8FA;--surface:#FFFFFF;
  --mist:#DCE8ED;--mist-2:#EAF1F4;--aqua:#D72127;--aqua-deep:#B01015;--aqua-wash:#EEF2F4;
  --red:#D72127;--red-deep:#B01015;--gold:#FFC24B;
  --shadow:0 1px 2px rgba(10,36,48,.05),0 8px 30px -12px rgba(10,36,48,.18);
  --shadow-lift:0 2px 4px rgba(10,36,48,.06),0 24px 48px -18px rgba(10,36,48,.30);
  --r:14px;--r-lg:22px;
  --font-sans:"Prompt","Noto Sans Thai","Sarabun",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;
  /* Use the site's main theme font (Prompt) everywhere — no extra fonts.
     --font-mono kept as an alias so existing rules still resolve to Prompt. */
  --font-mono:var(--font-sans);
  --maxw:1160px;
  color:var(--ink);
  font-family:var(--font-sans);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

/* ---- Dark theme (system preference) ---- */
@media (prefers-color-scheme:dark){
  .wc-pdp{
    --ink:#EAF3F6;--ink-2:#9FB6C0;--paper:#06222C;--surface:#0C2E3A;--mist:#1B3F4C;--mist-2:#123240;
    --aqua:#FF5A5F;--aqua-deep:#FF8388;--aqua-wash:#14303A;--red:#FF5A5F;--red-deep:#E23C41;
    --shadow:0 1px 2px rgba(0,0,0,.4),0 10px 34px -14px rgba(0,0,0,.6);
    --shadow-lift:0 2px 6px rgba(0,0,0,.5),0 28px 56px -18px rgba(0,0,0,.7);
  }
}

/* ---- Explicit theme toggles (win over system preference) ---- */
:root[data-theme="light"] .wc-pdp{
  --ink:#0A2430;--ink-2:#3A5563;--paper:#F4F8FA;--surface:#FFFFFF;--mist:#DCE8ED;--mist-2:#EAF1F4;
  --aqua:#D72127;--aqua-deep:#B01015;--aqua-wash:#EEF2F4;--red:#D72127;--red-deep:#B01015;
  --shadow:0 1px 2px rgba(10,36,48,.05),0 8px 30px -12px rgba(10,36,48,.18);
  --shadow-lift:0 2px 4px rgba(10,36,48,.06),0 24px 48px -18px rgba(10,36,48,.30);
}
:root[data-theme="dark"] .wc-pdp{
  --ink:#EAF3F6;--ink-2:#9FB6C0;--paper:#06222C;--surface:#0C2E3A;--mist:#1B3F4C;--mist-2:#123240;
  --aqua:#FF5A5F;--aqua-deep:#FF8388;--aqua-wash:#14303A;--red:#FF5A5F;--red-deep:#E23C41;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 10px 34px -14px rgba(0,0,0,.6);
  --shadow-lift:0 2px 6px rgba(0,0,0,.5),0 28px 56px -18px rgba(0,0,0,.7);
}

/* ---- Base ---- */
.wc-pdp *{box-sizing:border-box}
.wc-pdp{
  background-image:radial-gradient(1100px 460px at 82% -10%,var(--aqua-wash) 0%,transparent 58%);
}
.wc-pdp .wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px}
.wc-pdp h1,.wc-pdp h2,.wc-pdp h3{margin:0;line-height:1.15;text-wrap:balance;font-weight:600;letter-spacing:-.01em}
.wc-pdp p{margin:0}
.wc-pdp a{color:inherit;text-decoration:none}
.wc-pdp .mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.wc-pdp .eyebrow{font-family:var(--font-mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--aqua-deep);font-weight:500;display:inline-flex;align-items:center;gap:9px}
.wc-pdp .eyebrow::before{content:"";width:20px;height:1px;background:var(--aqua)}
.wc-pdp :focus-visible{outline:2.5px solid var(--aqua);outline-offset:3px;border-radius:5px}

/* ---- Buttons ---- */
.wc-pdp .btn{border:none;cursor:pointer;font-family:inherit;font-weight:600;font-size:15px;padding:13px 22px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:9px;transition:transform .16s ease,box-shadow .16s,background .16s,border-color .16s}
.wc-pdp .btn-red{background:var(--red);color:#fff}
.wc-pdp .btn-red:hover{background:var(--red-deep);transform:translateY(-1px);box-shadow:0 12px 24px -8px color-mix(in srgb,var(--red) 60%,transparent)}
.wc-pdp .btn-line{background:var(--ink);color:var(--paper)}
.wc-pdp .btn-line:hover{transform:translateY(-1px)}
.wc-pdp .btn-ghost{background:transparent;border:1px solid var(--mist);color:var(--ink)}
.wc-pdp .btn-ghost:hover{border-color:var(--ink)}

/* ---- Breadcrumb (in case the PDP renders its own crumb; root usually provides it) ---- */
.wc-pdp .crumb{font-size:13px;color:var(--ink-2);padding:20px 0 4px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.wc-pdp .crumb a:hover{color:var(--aqua-deep)}
.wc-pdp .crumb .sep{opacity:.5}
.wc-pdp .crumb .cur{color:var(--ink)}

/* ===== HERO ===== */
.wc-pdp .pdp{display:grid;grid-template-columns:1.05fr .95fr;gap:44px;padding:14px 0 40px;align-items:start}

/* gallery */
.wc-pdp .gallery{position:sticky;top:84px}
.wc-pdp .stage{background:linear-gradient(160deg,var(--surface),var(--mist-2));border:1px solid var(--mist);border-radius:var(--r-lg);aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.wc-pdp .stage .sale{position:absolute;top:16px;left:16px;background:var(--red);color:#fff;font-family:var(--font-mono);font-size:12px;font-weight:600;letter-spacing:.05em;padding:6px 12px;border-radius:8px}
.wc-pdp .stage .wm{position:absolute;bottom:14px;right:18px;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);opacity:.7}
.wc-pdp .stage svg{width:70%;height:70%}
.wc-pdp .stage img{width:100%;height:100%;object-fit:contain}
.wc-pdp .thumbs{display:flex;gap:10px;margin-top:12px}
.wc-pdp .thumb{flex:1;aspect-ratio:1/1;border:1px solid var(--mist);border-radius:12px;background:var(--surface);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .15s;overflow:hidden;padding:0}
.wc-pdp .thumb svg{width:58%;height:58%;opacity:.8}
.wc-pdp .thumb img{width:100%;height:100%;object-fit:contain}
.wc-pdp .thumb[aria-current="true"]{border-color:var(--aqua);box-shadow:0 0 0 1px var(--aqua)}
.wc-pdp .thumb:hover{border-color:var(--aqua-deep)}

/* info panel */
.wc-pdp .info .cat{color:var(--aqua-deep);font-size:13.5px;font-weight:500}
.wc-pdp .info h1{font-size:clamp(25px,3.4vw,36px);margin-top:6px;letter-spacing:-.02em}
.wc-pdp .rating{display:flex;align-items:center;gap:10px;margin-top:12px;font-size:13.5px;color:var(--ink-2)}
.wc-pdp .stars{color:var(--gold);letter-spacing:2px;font-size:15px}
.wc-pdp .rating a:hover{color:var(--aqua-deep)}
.wc-pdp .benefits{margin:18px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:9px}
.wc-pdp .benefits li{display:flex;gap:10px;font-size:15px;color:var(--ink)}
.wc-pdp .benefits svg{width:19px;height:19px;color:var(--aqua-deep);flex:none;margin-top:3px}

/* clarity strip */
.wc-pdp .cstrip{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:22px;background:var(--mist);border:1px solid var(--mist);border-radius:var(--r);overflow:hidden}
.wc-pdp .cstrip .c{background:var(--surface);padding:15px 16px}
.wc-pdp .cstrip .k{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}
.wc-pdp .cstrip .v{font-family:var(--font-mono);font-size:21px;font-weight:600;margin-top:4px}
.wc-pdp .cstrip .v .u{font-size:11px;color:var(--ink-2);margin-left:3px}
.wc-pdp .cstrip .gauge{margin-top:8px;height:6px;border-radius:99px;background:var(--mist);overflow:hidden}
.wc-pdp .cstrip .gauge>i{display:block;height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,var(--aqua),var(--aqua-deep));transition:width 1.1s cubic-bezier(.2,.7,.3,1)}

/* buy box */
.wc-pdp .buybox{margin-top:22px;background:var(--surface);border:1px solid var(--mist);border-radius:var(--r-lg);padding:22px;box-shadow:var(--shadow)}
/* Price block: big sale price on top; original (struck) + savings on a line below. */
.wc-pdp .priceline{display:block}
.wc-pdp .price-now{display:block;font-family:var(--font-mono);font-weight:600;font-size:34px;color:var(--ink);letter-spacing:-.01em;line-height:1.15}
.wc-pdp .price-now .woocommerce-Price-amount,.wc-pdp .price-now bdi{font-weight:inherit;color:inherit}
.wc-pdp .price-sub{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin-top:6px;font-size:14.5px}
.wc-pdp .price-was{color:var(--ink-2);text-decoration:line-through;font-family:var(--font-mono)}
.wc-pdp .price-save{color:var(--red);font-weight:600;font-family:var(--font-mono)}
/* mobile sticky-bar price (uses get_price_html) */
.wc-pdp .price{font-family:var(--font-mono);font-weight:600;color:var(--ink)}
.wc-pdp .mbar .price del{display:none}
.wc-pdp .instock{margin-top:8px;font-size:13px;color:var(--aqua-deep);display:inline-flex;align-items:center;gap:7px}
.wc-pdp .instock .d{width:8px;height:8px;border-radius:50%;background:#37d67a;box-shadow:0 0 0 3px color-mix(in srgb,#37d67a 24%,transparent)}
.wc-pdp .qtyrow{display:flex;gap:12px;margin-top:18px;align-items:stretch}
.wc-pdp .qty{display:flex;align-items:center;border:1px solid var(--mist);border-radius:999px;overflow:hidden;flex:none}
.wc-pdp .qty button{width:44px;height:100%;border:none;background:var(--surface);color:var(--ink);font-size:19px;cursor:pointer;font-family:var(--font-mono)}
.wc-pdp .qty button:hover{background:var(--mist-2)}
.wc-pdp .qty input{width:44px;text-align:center;border:none;background:transparent;font-family:var(--font-mono);font-size:16px;color:var(--ink)}
.wc-pdp .qtyrow .btn-red{flex:1}
.wc-pdp .altbuy{display:flex;gap:12px;margin-top:12px}
.wc-pdp .altbuy .btn{flex:1;font-size:14px;padding:11px 16px}
.wc-pdp .microtrust{display:flex;gap:18px;margin-top:18px;padding-top:16px;border-top:1px solid var(--mist);flex-wrap:wrap}
.wc-pdp .microtrust .m{display:flex;gap:8px;align-items:center;font-size:12.5px;color:var(--ink-2)}
.wc-pdp .microtrust svg{width:17px;height:17px;color:var(--aqua-deep);flex:none}

/* WooCommerce-native add-to-cart form living inside the buy box.
   The contract renders the cart form via woocommerce_template_single_add_to_cart()
   so quantity/AJAX/parent hooks keep working. Style its native markup to match. */
.wc-pdp .buybox form.cart{display:flex;gap:12px;margin-top:18px;align-items:center;flex-wrap:wrap}
.wc-pdp .buybox form.cart .quantity{display:flex;align-items:stretch;height:52px;border:1px solid var(--mist);border-radius:999px;overflow:hidden;flex:none}
.wc-pdp .buybox form.cart .quantity .btn-minus,
.wc-pdp .buybox form.cart .quantity .btn-plus{display:flex;align-items:center;justify-content:center;height:100%;padding:0 15px;cursor:pointer}
.wc-pdp .buybox form.cart .quantity input.qty{width:52px;text-align:center;border:none;background:transparent;font-family:var(--font-mono);font-size:16px;color:var(--ink);padding:0;height:100%;line-height:52px;-moz-appearance:textfield}
.wc-pdp .buybox form.cart .quantity input.qty::-webkit-outer-spin-button,
.wc-pdp .buybox form.cart .quantity input.qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.wc-pdp .buybox form.cart button.single_add_to_cart_button{background:var(--red);color:#fff;border:none;cursor:pointer;font-family:inherit;font-weight:600;font-size:15px;height:52px;margin:0;padding:0 22px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:9px;flex:1;transition:transform .16s ease,box-shadow .16s,background .16s}
.wc-pdp .buybox form.cart button.single_add_to_cart_button:hover{background:var(--red-deep);transform:translateY(-1px);box-shadow:0 12px 24px -8px color-mix(in srgb,var(--red) 60%,transparent)}
.wc-pdp .buybox form.cart button.single_add_to_cart_button.disabled,
.wc-pdp .buybox form.cart button.single_add_to_cart_button:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}

@media(max-width:900px){
  .wc-pdp .pdp{grid-template-columns:1fr;gap:26px}
  .wc-pdp .gallery{position:static}
  .wc-pdp .cstrip{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:520px){
  .wc-pdp .cstrip{grid-template-columns:1fr;gap:1px}
}

/* ===== SECTIONS ===== */
.wc-pdp section.blk{padding:40px 0;border-top:1px solid var(--mist)}
.wc-pdp .sec-h{margin-bottom:24px}
.wc-pdp .sec-h h2{font-size:clamp(21px,2.6vw,28px);margin-top:11px}
.wc-pdp .sec-h p{color:var(--ink-2);font-size:14.5px;margin-top:8px;max-width:56ch}

/* removes grid (signature) */
.wc-pdp .removes{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.wc-pdp .rm{background:var(--surface);border:1px solid var(--mist);border-radius:12px;padding:15px 15px 14px;display:flex;flex-direction:column;gap:9px;transition:transform .16s,border-color .16s}
.wc-pdp .rm:hover{transform:translateY(-3px);border-color:var(--aqua)}
.wc-pdp .rm .ic{width:30px;height:30px;color:var(--aqua-deep)}
.wc-pdp .rm .nm{font-size:14px;font-weight:500;line-height:1.35}
.wc-pdp .rm .code{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-2);letter-spacing:.04em;margin-top:auto}
@media(max-width:820px){.wc-pdp .removes{grid-template-columns:repeat(2,1fr)}}

/* how it works */
.wc-pdp .stages{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;counter-reset:st}
.wc-pdp .stage-c{background:var(--surface);border:1px solid var(--mist);border-radius:var(--r);padding:18px;position:relative}
.wc-pdp .stage-c .no{font-family:var(--font-mono);font-size:12px;color:var(--aqua-deep);letter-spacing:.08em}
.wc-pdp .stage-c h4{font-size:15px;margin:8px 0 6px}
.wc-pdp .stage-c p{font-size:13px;color:var(--ink-2)}
.wc-pdp .stage-c .bar{height:4px;border-radius:99px;background:var(--aqua);opacity:.85;margin-top:12px;width:100%}
@media(max-width:820px){.wc-pdp .stages{grid-template-columns:repeat(2,1fr)}}

/* spec table */
.wc-pdp .spectbl{background:var(--surface);border:1px solid var(--mist);border-radius:var(--r-lg);overflow:hidden}
.wc-pdp .spectbl table{width:100%;border-collapse:collapse;margin:0}
.wc-pdp .spectbl td{padding:14px 20px;border-bottom:1px solid var(--mist);font-size:14.5px}
.wc-pdp .spectbl tr:last-child td{border-bottom:none}
.wc-pdp .spectbl td:first-child{color:var(--ink-2);width:42%}
.wc-pdp .spectbl td:first-child small{display:block;font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;opacity:.7}
.wc-pdp .spectbl td:last-child{font-weight:500}
.wc-pdp .spectbl tr:nth-child(even){background:var(--mist-2)}
.wc-pdp .spectbl .v{font-family:var(--font-mono);font-variant-numeric:tabular-nums}

/* cartridge cross-sell */
.wc-pdp .cart-cross{background:linear-gradient(135deg,var(--aqua-wash),var(--surface));border:1px solid var(--mist);border-radius:var(--r-lg);padding:24px;display:flex;gap:22px;align-items:center;flex-wrap:wrap}
.wc-pdp .cart-cross .vis{width:88px;height:88px;flex:none;background:var(--surface);border:1px solid var(--mist);border-radius:16px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.wc-pdp .cart-cross .vis svg{width:52%;color:var(--aqua-deep)}
.wc-pdp .cart-cross .vis img{width:100%;height:100%;object-fit:contain}
.wc-pdp .cart-cross .body{flex:1;min-width:200px}
.wc-pdp .cart-cross .tag{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--aqua-deep)}
.wc-pdp .cart-cross h3{font-size:18px;margin:6px 0 4px}
.wc-pdp .cart-cross p{font-size:13.5px;color:var(--ink-2)}
.wc-pdp .cart-cross .act{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.wc-pdp .cart-cross .cprice{font-family:var(--font-mono);font-weight:600;font-size:20px}

/* reviews */
.wc-pdp .rev-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:22px;align-items:start}
.wc-pdp .rev-summary{background:var(--ink);color:var(--paper);border-radius:var(--r-lg);padding:26px}
.wc-pdp .rev-summary .big{font-family:var(--font-mono);font-size:50px;font-weight:600;line-height:1}
.wc-pdp .rev-summary .stars{font-size:19px;margin:6px 0}
.wc-pdp .rev-summary .sub{color:color-mix(in srgb,var(--paper) 70%,transparent);font-size:13.5px}
.wc-pdp .rev-aspects{margin-top:16px;display:flex;flex-direction:column;gap:9px}
.wc-pdp .rev-aspects .a{font-size:12.5px;color:color-mix(in srgb,var(--paper) 82%,transparent);display:flex;justify-content:space-between;font-family:var(--font-mono)}
.wc-pdp .rev-write{margin-top:18px;width:100%}
.wc-pdp .rev-cards{display:flex;flex-direction:column;gap:14px}
.wc-pdp .rc{background:var(--surface);border:1px solid var(--mist);border-radius:var(--r);padding:19px}
.wc-pdp .rc .top{display:flex;align-items:center;gap:12px;margin-bottom:9px}
.wc-pdp .rc .av{width:38px;height:38px;border-radius:50%;background:var(--aqua-wash);color:var(--aqua-deep);display:flex;align-items:center;justify-content:center;font-weight:600;flex:none}
.wc-pdp .rc .who{font-weight:500;font-size:14.5px}
.wc-pdp .rc .meta{font-family:var(--font-mono);font-size:11px;color:var(--ink-2)}
.wc-pdp .rc .verified{margin-left:auto;font-family:var(--font-mono);font-size:10.5px;color:var(--aqua-deep)}
.wc-pdp .rc .stars{color:var(--gold);font-size:13px;letter-spacing:2px}
.wc-pdp .rc p{font-size:14.5px;margin-top:7px}
@media(max-width:820px){.wc-pdp .rev-grid{grid-template-columns:1fr}}
.wc-pdp .rev-empty{background:var(--surface);border:1px dashed var(--mist);border-radius:var(--r-lg);padding:44px 24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px}
.wc-pdp .rev-empty svg{width:40px;height:40px;color:var(--aqua-deep);opacity:.8}
.wc-pdp .rev-empty h3{font-size:18px}
.wc-pdp .rev-empty p{font-size:14px;color:var(--ink-2);max-width:56ch}
.wc-pdp .rev-empty .btn{margin-top:8px}

/* related */
.wc-pdp .rel{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.wc-pdp .pcard{background:var(--surface);border:1px solid var(--mist);border-radius:var(--r);padding:16px;transition:transform .16s,box-shadow .16s,border-color .16s;display:flex;flex-direction:column}
.wc-pdp .pcard:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift);border-color:var(--aqua)}
.wc-pdp .pcard .pv{aspect-ratio:1/1;background:var(--mist-2);border-radius:10px;display:flex;align-items:center;justify-content:center;margin-bottom:12px;position:relative;overflow:hidden}
.wc-pdp .pcard .pv svg{width:58%;color:var(--aqua-deep);opacity:.85}
.wc-pdp .pcard .pv img{width:100%;height:100%;object-fit:contain}
.wc-pdp .pcard .pv .sl{position:absolute;top:9px;left:9px;background:var(--red);color:#fff;font-family:var(--font-mono);font-size:10px;padding:3px 7px;border-radius:6px;font-weight:600;z-index:1}
.wc-pdp .pcard .pn{font-size:14px;font-weight:500;line-height:1.35}
.wc-pdp .pcard .pp{margin-top:8px;font-family:var(--font-mono);font-weight:600;font-size:15px}
.wc-pdp .pcard .pp .w{font-size:11px;color:var(--ink-2);text-decoration:line-through;font-weight:400;margin-left:5px}
@media(max-width:820px){.wc-pdp .rel{grid-template-columns:repeat(2,1fr)}}

/* sticky mobile bar */
.wc-pdp .mbar{position:fixed;left:0;right:0;bottom:0;z-index:50;background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(12px);border-top:1px solid var(--mist);padding:11px 16px;display:none;gap:12px;align-items:center;box-shadow:0 -8px 24px -14px rgba(10,36,48,.4)}
.wc-pdp .mbar .mp{flex:none}
.wc-pdp .mbar .mp .price{font-size:20px}
.wc-pdp .mbar .mp .was{font-size:12px}
.wc-pdp .mbar .btn-red{flex:1}
@media(max-width:900px){
  .wc-pdp .mbar{display:flex}
  body.single-product{padding-bottom:74px}
}

/* footnote */
.wc-pdp .foot{padding:30px 0 40px;color:var(--ink-2);font-size:13px;text-align:center}
.wc-pdp .propose{display:inline-flex;align-items:center;gap:8px;background:var(--aqua-wash);color:var(--aqua-deep);font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:6px 13px;border-radius:999px;margin-bottom:16px}
.wc-pdp .foot .mono{font-size:11px;letter-spacing:.1em;text-transform:uppercase;margin-top:8px}

/* ---- Reveal animation ----
   No-JS-safe: content is VISIBLE by default. The hidden pre-state only applies
   when JS opts in by adding `reveal-on` to the `.wc-pdp` wrapper, so if the
   scroll-reveal script never runs the content still renders. */
.wc-pdp .reveal{opacity:1;transform:none}
.wc-pdp.reveal-on .reveal{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.3,1)}
.wc-pdp.reveal-on .reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  .wc-pdp .reveal,
  .wc-pdp.reveal-on .reveal{opacity:1;transform:none;transition:none}
  .wc-pdp .cstrip .gauge>i{transition:none}
}

/* ============================================================
   INTEGRATION FIXES — neutralize WooCommerce / theme layout that
   fights the custom PDP (WC's product wrapper was inline-flex,
   collapsing the grid; the WC gallery had no width).
   ============================================================ */
.wc-pdp .product{ display:block !important; width:100% !important; float:none !important; }
.wc-pdp .pdp{ width:100%; }

/* WooCommerce product gallery → fill the .stage, tame flexslider markup */
.wc-pdp .gallery,
.wc-pdp .stage{ width:100%; }
.wc-pdp .woocommerce-product-gallery{ width:100% !important; float:none !important; margin:0 !important; opacity:1 !important; }
.wc-pdp .woocommerce-product-gallery__wrapper{ margin:0 !important; display:block; width:100%; }
.wc-pdp .woocommerce-product-gallery__image{ width:100% !important; float:none !important; }
.wc-pdp .woocommerce-product-gallery__image a,
.wc-pdp .woocommerce-product-gallery__image img{ width:100% !important; height:auto !important; display:block; }
/* If flexslider did not initialise, don't stack all 14 images — show the first only */
.wc-pdp .woocommerce-product-gallery:not(.flexslider) .woocommerce-product-gallery__image:not(:first-child){ display:none !important; }
/* WC gallery thumbnails row (when flexslider is active) */
.wc-pdp .flex-control-thumbs{ display:flex; gap:8px; margin:12px 0 0; padding:0; list-style:none; }
.wc-pdp .flex-control-thumbs li{ width:64px; }
.wc-pdp .flex-control-thumbs img{ width:100%; height:auto; border:1px solid var(--mist); border-radius:10px; cursor:pointer; opacity:.75; }
.wc-pdp .flex-control-thumbs img.flex-active{ opacity:1; border-color:var(--aqua); }

/* Let the WooCommerce gallery (flexslider main image + thumbnails) render
   naturally inside the stage; release the fixed square so image height wins. */
.wc-pdp .stage{ position:relative; aspect-ratio:auto !important; min-height:0 !important; padding:18px; display:block; }
.wc-pdp .stage .woocommerce-product-gallery,
.wc-pdp .stage .flex-viewport{ width:100% !important; height:auto !important; }
.wc-pdp .stage .woocommerce-product-gallery__wrapper img,
.wc-pdp .stage .woocommerce-product-gallery__image img{
  width:100% !important; height:auto !important; max-width:100% !important;
  object-fit:contain; position:static !important; margin:0 auto; display:block;
}
/* Clarity strip: wrap cells to the available column width */
.wc-pdp .cstrip{ grid-template-columns:repeat(auto-fit,minmax(120px,1fr)) !important; }
.wc-pdp .cstrip .v{ font-size:16px; }
/* Custom gallery main image fit */
.wc-pdp .stage .stage-img{ width:100%; height:auto; max-height:520px; object-fit:contain; display:block; }
.wc-pdp .thumbs{ display:flex; gap:10px; margin-top:12px; flex-wrap:wrap; }
.wc-pdp .thumb{ width:72px; height:72px; padding:0; border:1px solid var(--mist); border-radius:12px; background:var(--surface); cursor:pointer; overflow:hidden; }
.wc-pdp .thumb img{ width:100%; height:100%; object-fit:contain; }
.wc-pdp .thumb.is-active{ border-color:var(--aqua); box-shadow:0 0 0 1px var(--aqua); }
.wc-pdp .thumb:hover{ border-color:var(--aqua-deep); }

/* ============================================================
   REAL WooCommerce markup styling — related products loop and
   the review form emit their own selectors (not the mockup's).
   ============================================================ */
/* Related / up-sells product grid — identical card design to the catalog
   archive (assets/css/catalog.css) so the loop cards read as one system. */
.wc-pdp .related, .wc-pdp .upsells, .wc-pdp .cart-cross-wrap{ width:100%; }
/* Give the related block the same top separation as the .blk sections above it,
   so its heading doesn't butt against the preceding content. */
.wc-pdp .rel-wrap{ margin-top:8px; padding-top:40px; border-top:1px solid var(--mist); }
.wc-pdp .rel-wrap .related > h2,
.wc-pdp .related.products > h2{ font-size:clamp(21px,2.6vw,28px); font-weight:600; margin:0 0 24px; }
.wc-pdp ul.products{ display:grid !important; grid-template-columns:repeat(4,1fr); gap:18px; list-style:none; margin:0; padding:0; }
.wc-pdp ul.products::before, .wc-pdp ul.products::after{ display:none !important; }
.wc-pdp ul.products li.product{
  width:auto !important; float:none !important; margin:0 !important; text-align:left;
  display:flex; flex-direction:column; gap:12px;
  background:var(--surface); border:1px solid var(--mist); border-radius:var(--r);
  padding:14px; position:relative; overflow:hidden; box-shadow:var(--shadow);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.wc-pdp ul.products li.product:hover{ transform:translateY(-4px); box-shadow:var(--shadow-lift); border-color:var(--red); }
/* signature red "waterline" fills across the card top on hover */
.wc-pdp ul.products li.product::before{
  content:""; position:absolute; top:0; left:0; right:0; height:3px; z-index:2;
  background:linear-gradient(90deg,var(--red),var(--red-deep));
  transform:scaleX(0); transform-origin:left; transition:transform .3s ease;
}
.wc-pdp ul.products li.product:hover::before{ transform:scaleX(1); }
/* product link wraps badge + image + title + price */
.wc-pdp ul.products li.product a.woocommerce-loop-product__link{
  display:flex; flex-direction:column; gap:10px; color:inherit; text-decoration:none; flex:1 1 auto;
}
/* product shot on the plain white card — no frame */
.wc-pdp ul.products li.product a img,
.wc-pdp ul.products li.product img{
  width:100%; aspect-ratio:1/1; object-fit:contain;
  background:transparent; padding:6px; margin:0; border-radius:0; display:block;
}
.wc-pdp ul.products li.product .woocommerce-loop-product__title{
  margin:0; padding:0; color:var(--ink);
  font-size:15px; line-height:1.4; font-weight:500; letter-spacing:-.005em;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:2.8em;
}
.wc-pdp ul.products li.product .price{
  margin:0; display:flex; align-items:baseline; flex-wrap:wrap; gap:8px;
  font-family:var(--font-sans); line-height:1.3; font-variant-numeric:tabular-nums;
}
.wc-pdp ul.products li.product .price .amount{ font-size:18px; font-weight:600; color:var(--ink); }
.wc-pdp ul.products li.product .price ins{ position:static; padding:0; text-decoration:none; background:none; order:1; }
.wc-pdp ul.products li.product .price ins .amount{ color:var(--ink); }
.wc-pdp ul.products li.product .price del{ position:static; transform:none; opacity:1; order:2; }
.wc-pdp ul.products li.product .price del .amount{ font-size:13px; font-weight:400; color:var(--ink-2); text-decoration:line-through; }
.wc-pdp ul.products li.product .onsale{
  position:absolute; top:22px; left:22px; z-index:3; margin:0; min-height:0; min-width:0;
  background:var(--red); color:#fff; font-family:var(--font-sans);
  font-size:12px; font-weight:600; line-height:1; letter-spacing:.01em;
  padding:5px 10px; border-radius:999px; box-shadow:0 4px 12px -4px rgba(215,33,39,.5);
  font-variant-numeric:tabular-nums;
}
/* primary CTA: solid-red pill (add to cart / read more) */
.wc-pdp ul.products li.product > a.button{
  display:flex; width:100%; justify-content:center; align-items:center; gap:8px;
  margin:0; min-height:0; border:none; cursor:pointer;
  background:var(--red); color:#fff; font-family:var(--font-sans);
  font-size:14px; font-weight:600; line-height:1.2; padding:11px 16px; border-radius:999px;
  transition:background .16s ease, transform .16s ease, box-shadow .16s ease;
}
.wc-pdp ul.products li.product > a.button:hover{
  background:var(--red-deep); color:#fff; transform:translateY(-1px);
  box-shadow:0 10px 22px -8px rgba(215,33,39,.55);
}
.wc-pdp ul.products li.product a.added_to_cart{
  display:inline-flex; align-self:center; margin:2px 0 0; padding:2px 4px;
  font-size:13px; font-weight:500; color:var(--red-deep); text-decoration:none;
}
.wc-pdp ul.products li.product a.added_to_cart:hover{ text-decoration:underline; }
/* compare button: keep compare.css colours, make it a full-width secondary block.
   margin-top adds to the flex gap so it sits clearly apart from the add-to-cart pill. */
.wc-pdp ul.products li.product .wc-cmp-btn{ display:flex; width:100%; margin:8px 0 0; padding:.62em 1.1em; font-size:13px; }
@media(max-width:820px){ .wc-pdp ul.products{ grid-template-columns:repeat(2,1fr); gap:12px; } }

/* Review form + list */
.wc-pdp #reviews #comments ol.commentlist{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:14px; }
.wc-pdp #reviews .commentlist li .comment_container{ background:var(--surface); border:1px solid var(--mist); border-radius:var(--r); padding:18px; display:flex; gap:14px; }
.wc-pdp #reviews #respond{ background:var(--surface); border:1px solid var(--mist); border-radius:var(--r-lg); padding:24px; margin-top:16px; }
.wc-pdp #reviews #respond .comment-reply-title{ font-size:16px; font-weight:600; }
.wc-pdp #reviews #respond label{ display:block; font-size:13px; color:var(--ink-2); margin:12px 0 6px; }
.wc-pdp #reviews #respond input[type=text],
.wc-pdp #reviews #respond input[type=email],
.wc-pdp #reviews #respond textarea{ width:100%; max-width:100%; border:1px solid var(--mist); border-radius:10px; padding:11px 13px; font-family:inherit; font-size:14px; background:var(--paper); color:var(--ink); box-sizing:border-box; }
.wc-pdp #reviews #respond textarea{ min-height:120px; resize:vertical; }
.wc-pdp #reviews #respond .stars a{ color:var(--aqua-deep); }
.wc-pdp #reviews #respond .stars a:hover{ color:var(--red); }
.wc-pdp #reviews #respond .form-submit input,
.wc-pdp #reviews #respond button[type=submit]{ background:var(--red); color:#fff; border:none; border-radius:999px; padding:12px 26px; font-family:inherit; font-weight:600; font-size:14.5px; cursor:pointer; margin-top:6px; transition:background .16s; }
.wc-pdp #reviews #respond .form-submit input:hover{ background:var(--red-deep); }
.wc-pdp #reviews .comment-form-cookies-consent{ display:flex; gap:8px; align-items:flex-start; font-size:12.5px; color:var(--ink-2); }
.wc-pdp #reviews .comment-form-cookies-consent label{ margin:0; }

/* Product tabs (description + tab-manager custom tabs) */
.wc-pdp .woocommerce-tabs{ margin:0; }
/* tabs section: drop the extra .blk top divider so it isn't a double line with the
   tab strip (needs .blk in the selector to out-specify .wc-pdp section.blk). */
.wc-pdp section.blk.wc-tabs-section{ border-top:none; padding-top:18px; }
.wc-pdp .woocommerce-tabs ul.tabs{ list-style:none; margin:0 0 26px; padding:0; display:flex; flex-wrap:wrap; gap:24px; border-bottom:2px solid var(--mist); }
.wc-pdp .woocommerce-tabs ul.tabs::before, .wc-pdp .woocommerce-tabs ul.tabs::after{ display:none !important; content:none; }
.wc-pdp .woocommerce-tabs ul.tabs li{ margin:0; padding:0; background:none; border:none; border-radius:0; }
.wc-pdp .woocommerce-tabs ul.tabs li::before, .wc-pdp .woocommerce-tabs ul.tabs li::after{ display:none !important; content:none; border:none; }
.wc-pdp .woocommerce-tabs ul.tabs li a{ display:block; padding:12px 2px; margin-bottom:-2px; font-weight:500; font-size:15px; color:var(--ink-2); border-bottom:2.5px solid transparent; transition:color .15s, border-color .15s; }
.wc-pdp .woocommerce-tabs ul.tabs li a:hover{ color:var(--ink); }
.wc-pdp .woocommerce-tabs ul.tabs li.active a{ color:var(--red); border-bottom-color:var(--red); font-weight:600; }
.wc-pdp .woocommerce-tabs .panel{ margin:0; padding:0; color:var(--ink); line-height:1.75; font-size:15px; }
.wc-pdp .woocommerce-tabs .panel > h2:first-child{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.wc-pdp .woocommerce-tabs .panel h2{ font-size:19px; margin:20px 0 10px; }
.wc-pdp .woocommerce-tabs .panel h3{ font-size:16px; margin:16px 0 8px; }
.wc-pdp .woocommerce-tabs .panel p{ margin:0 0 12px; }
.wc-pdp .woocommerce-tabs .panel ul, .wc-pdp .woocommerce-tabs .panel ol{ margin:0 0 14px 20px; }
.wc-pdp .woocommerce-tabs .panel li{ margin:0 0 6px; }
.wc-pdp .woocommerce-tabs .panel img{ max-width:100%; height:auto; border-radius:10px; }
.wc-pdp .woocommerce-tabs .panel table{ width:100%; border-collapse:collapse; margin:0 0 14px; }
.wc-pdp .woocommerce-tabs .panel table td, .wc-pdp .woocommerce-tabs .panel table th{ padding:10px 14px; border:1px solid var(--mist); text-align:left; vertical-align:top; }

/* The info column carries WooCommerce's `.summary` class, so the parent theme's
   `.product .summary{width:50%;padding:… 30px}` (woo-d.css @min-width:1024) was
   shrinking our grid item to half its column and leaving an empty gap. Reset it. */
.wc-pdp .info.summary{ width:100% !important; max-width:none !important; margin:0 !important; padding:0 !important; border-radius:0 !important; float:none !important; background:none !important; }
