/* ============================================================
   Sand & Bronze — Single Product (custom .jmsb-pdp template)
   Luxury 2026. WC-native gallery (reliable), real lead form,
   no price/cart. WhatsApp .btn-wa stays green.
   ============================================================ */
.jmsb-pdp{ background:var(--bg,#f3ede1); padding-block:clamp(18px,3vw,36px) 0; color:var(--ink,#2a2418); }
.jmsb-pdp .wrap{ max-width:var(--max,1240px); margin-inline:auto; padding-inline:clamp(16px,4vw,32px); }
.jmsb-pdp .pdp-crumbs{ font-family:var(--sans,'Rubik',sans-serif); font-size:.82rem; color:var(--ink-2,#6b6350); margin-bottom:clamp(14px,2vw,22px); }
.jmsb-pdp .pdp-crumbs a{ color:var(--gold-deep,#78571f); text-decoration:none; }

/* ---- hero split ---- */
.jmsb-pdp .pdp-hero{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(24px,3.4vw,52px); align-items:start; padding-bottom:clamp(40px,6vw,72px); }
@media(max-width:900px){ .jmsb-pdp .pdp-hero{ grid-template-columns:1fr; gap:26px; } }

/* ---- self-contained gallery (main image + thumbnails) ---- */
.jmsb-pdp .pdp-gal-main{ border-radius:var(--r-lg,20px); overflow:hidden; border:1px solid var(--line,#e7ddc9); box-shadow:var(--shadow,0 24px 60px rgba(60,44,18,.14)); background:linear-gradient(135deg,var(--surface,#fffefb),var(--bg,#f3ede1)); aspect-ratio:4/3; }
.jmsb-pdp .pdp-gal-main img{ width:100%; height:100%; object-fit:cover; display:block; transition:opacity .2s; }
.jmsb-pdp .pdp-gal-thumbs{ display:flex; flex-wrap:wrap; gap:10px; margin-top:12px; }
.jmsb-pdp .pdp-gal-th{ width:86px; height:66px; padding:0; border:2px solid transparent; border-radius:10px; overflow:hidden; cursor:pointer; background:var(--bg,#f3ede1); opacity:.72; transition:.2s; }
.jmsb-pdp .pdp-gal-th img{ width:100%; height:100%; object-fit:contain; display:block; }
.jmsb-pdp .pdp-gal-th.on,.jmsb-pdp .pdp-gal-th:hover{ border-color:var(--gold,#9c7433); opacity:1; }

/* ---- summary ---- */
.jmsb-pdp .pdp-summary{ position:sticky; top:96px; display:flex; flex-direction:column; gap:14px; }
@media(max-width:900px){ .jmsb-pdp .pdp-summary{ position:static; } }
.jmsb-pdp .pdp-brandlogo{ height:40px; width:auto; opacity:.95; }
.jmsb-pdp .pdp-eyebrow{ font-family:var(--sans,'Rubik',sans-serif); font-weight:700; letter-spacing:.14em; text-transform:uppercase; font-size:.78rem; color:var(--gold-deep,#78571f); text-decoration:none; }
.jmsb-pdp .pdp-title{ font-family:var(--serif,'Frank Ruhl Libre',serif)!important; font-weight:700; color:var(--ink,#2a2418); font-size:clamp(1.7rem,3.4vw,2.5rem); line-height:1.12; margin:0; }
.jmsb-pdp .pdp-promo{ color:var(--gold-deep,#78571f); font-weight:600; font-size:.98rem; margin:0; }

/* ---- lead form ---- */
.jmsb-pdp .pdp-lead{ background:var(--surface,#fffefb); border:1px solid var(--line,#e7ddc9); border-radius:var(--r,16px); padding:20px; box-shadow:var(--shadow,0 18px 44px rgba(60,44,18,.1)); display:flex; flex-direction:column; gap:12px; }
.jmsb-pdp .pdp-field{ display:flex; flex-direction:column; gap:5px; }
.jmsb-pdp .pdp-field > span{ font-family:var(--sans,'Rubik',sans-serif); font-weight:600; font-size:.85rem; color:var(--ink-2,#6b6350); }
.jmsb-pdp .pdp-field input{ border:1px solid var(--line,#e7ddc9); border-radius:10px; background:var(--bg,#f3ede1); padding:12px 14px; font-family:var(--body,'Heebo',sans-serif); color:var(--ink,#2a2418); }
.jmsb-pdp .pdp-field input:focus{ outline:none; border-color:var(--gold-2,#b28a49); box-shadow:0 0 0 3px rgba(178,138,73,.18); }
.jmsb-pdp .pdp-lead-note{ margin:0; font-size:.78rem; color:var(--ink-2,#8a8172); text-align:center; }
.jmsb-pdp .pdp-btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; border-radius:12px; padding:13px 20px; font-family:var(--sans,'Rubik',sans-serif); font-weight:600; text-decoration:none; cursor:pointer; border:1px solid transparent; transition:.2s; }
.jmsb-pdp .pdp-btn-gold{ background:linear-gradient(135deg,var(--gold-2,#b28a49),var(--gold-deep,#78571f)); color:#fffdf7; box-shadow:0 8px 22px rgba(120,87,31,.22); }
.jmsb-pdp .pdp-btn-gold:hover{ filter:brightness(1.07); transform:translateY(-1px); }
.jmsb-pdp .pdp-quote-alt{ display:flex; gap:10px; }
.jmsb-pdp .pdp-quote-alt .pdp-btn{ flex:1; }
.jmsb-pdp .btn-wa{ background:#25d366; color:#fff; }
.jmsb-pdp .pdp-btn-line{ background:transparent; border-color:var(--line,#e7ddc9); color:var(--ink,#2a2418); }
.jmsb-pdp .pdp-btn-line:hover{ border-color:var(--gold,#9c7433); color:var(--gold-deep,#78571f); }
.jmsb-pdp .gold-ic{ width:18px; height:18px; }
.jmsb-pdp .btn-wa .gold-ic{ fill:#fff; stroke:#fff; }

/* trust */
.jmsb-pdp .pdp-trust{ list-style:none; margin:4px 0 0; padding:0; display:flex; flex-direction:column; gap:8px; }
.jmsb-pdp .pdp-trust li{ display:flex; align-items:center; gap:10px; font-size:.9rem; color:var(--ink-2,#6b6350); }
.jmsb-pdp .pdp-trust .gold-ic{ width:20px; height:20px; stroke:var(--gold-deep,#78571f); fill:none; stroke-width:1.7; flex:none; }

/* ---- benefits section ---- */
.jmsb-pdp .pdp-benefits{ background:linear-gradient(180deg,#241f14,#2e2716); color:#f4efe2; padding-block:clamp(46px,6vw,84px); }
.jmsb-pdp .pdp-ben-head{ text-align:center; max-width:640px; margin:0 auto clamp(28px,3.5vw,48px); }
.jmsb-pdp .pdp-ben-head .eyebrow{ font-family:var(--sans,'Rubik',sans-serif); font-weight:700; letter-spacing:.16em; text-transform:uppercase; font-size:.76rem; color:var(--gold-2,#b28a49); }
.jmsb-pdp .pdp-ben-head h2{ font-family:var(--serif,'Frank Ruhl Libre',serif); color:#f7f2e6; font-size:clamp(1.6rem,3.2vw,2.4rem); margin:.2em 0 0; }
.jmsb-pdp .pdp-ben-head .foil{ background:linear-gradient(90deg,var(--gold-2,#b28a49),#e7cf9e); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.jmsb-pdp .pdp-ben-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2vw,28px); }
@media(max-width:760px){ .jmsb-pdp .pdp-ben-grid{ grid-template-columns:1fr; } }
.jmsb-pdp .pdp-ben{ background:rgba(255,255,255,.04); border:1px solid rgba(178,138,73,.28); border-radius:var(--r,16px); padding:26px 22px; text-align:center; }
.jmsb-pdp .pdp-ben .gold-ic{ width:36px; height:36px; stroke:var(--gold-2,#b28a49); fill:none; stroke-width:1.6; margin-bottom:12px; }
.jmsb-pdp .pdp-ben h3{ font-family:var(--serif,'Frank Ruhl Libre',serif); font-size:1.25rem; margin:0 0 8px; color:#f7f2e6; }
.jmsb-pdp .pdp-ben p{ margin:0; color:rgba(244,239,226,.78); font-size:.95rem; line-height:1.7; }

/* ---- spokes grid (internal link network: same-brand + top-GSC promotes) ---- */
.jmsb-pdp .pdp-spokes{ background:var(--bg,#f3ede1); padding-block:clamp(44px,6vw,84px); border-top:1px solid var(--line,#e7ddc9); }
.jmsb-pdp .pdp-spokes-head{ text-align:center; margin:0 auto clamp(26px,3vw,44px); }
.jmsb-pdp .pdp-spokes-head .eyebrow{ font-family:var(--sans,'Rubik',sans-serif); font-weight:700; letter-spacing:.16em; text-transform:uppercase; font-size:.74rem; color:var(--gold-deep,#78571f); }
.jmsb-pdp .pdp-spokes-head h2{ font-family:var(--serif,'Frank Ruhl Libre',serif); color:var(--ink,#2a2418); font-size:clamp(1.5rem,3vw,2.2rem); margin:.15em 0 0; }
.jmsb-pdp .pdp-spokes-head .foil{ background:linear-gradient(90deg,var(--gold-deep,#78571f),var(--gold-2,#b28a49)); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.jmsb-pdp .pdp-spoke-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(14px,1.6vw,22px); }
@media(max-width:1000px){ .jmsb-pdp .pdp-spoke-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:520px){ .jmsb-pdp .pdp-spoke-grid{ grid-template-columns:1fr 1fr; gap:12px; } }
.jmsb-pdp .pdp-spoke{ display:flex; flex-direction:column; background:var(--surface,#fffefb); border:1px solid var(--line,#e7ddc9); border-radius:var(--r,16px); overflow:hidden; text-decoration:none; transition:transform .28s var(--ease,ease),box-shadow .3s,border-color .3s; }
.jmsb-pdp .pdp-spoke:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg,0 26px 60px rgba(60,44,18,.18)); border-color:var(--gold,#9c7433); }
.jmsb-pdp .pdp-spoke-img{ display:block; aspect-ratio:1/1; overflow:hidden; background:var(--bg,#f3ede1); }
.jmsb-pdp .pdp-spoke-img img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s var(--ease,ease); }
.jmsb-pdp .pdp-spoke:hover .pdp-spoke-img img{ transform:scale(1.06); }
.jmsb-pdp .pdp-spoke-body{ padding:14px 15px 16px; display:flex; flex-direction:column; gap:6px; }
.jmsb-pdp .pdp-spoke-name{ font-family:var(--serif,'Frank Ruhl Libre',serif); color:var(--ink,#2a2418); font-size:1.02rem; line-height:1.25; }
.jmsb-pdp .pdp-spoke-go{ font-family:var(--sans,'Rubik',sans-serif); font-size:.8rem; font-weight:600; color:var(--gold-deep,#78571f); }

/* ---- bottom contact form (before footer) ---- */
.jmsb-pdp .pdp-contact{ background:linear-gradient(180deg,var(--surface,#fffefb),var(--bg,#f3ede1)); padding-block:clamp(48px,7vw,92px); border-top:1px solid var(--line,#e7ddc9); }
.jmsb-pdp .pdp-contact-panel{ max-width:760px; margin:0 auto; background:var(--surface,#fffefb); border:1px solid var(--line,#e7ddc9); border-radius:var(--r-lg,20px); box-shadow:var(--shadow,0 24px 60px rgba(60,44,18,.12)); padding:clamp(28px,4vw,46px); }
.jmsb-pdp .pdp-contact-head{ text-align:center; margin-bottom:clamp(20px,2.5vw,30px); }
.jmsb-pdp .pdp-contact-head .eyebrow{ font-family:var(--sans,'Rubik',sans-serif); font-weight:700; letter-spacing:.16em; text-transform:uppercase; font-size:.74rem; color:var(--gold-deep,#78571f); }
.jmsb-pdp .pdp-contact-head h2{ font-family:var(--serif,'Frank Ruhl Libre',serif); color:var(--ink,#2a2418); font-size:clamp(1.7rem,3.4vw,2.4rem); margin:.12em 0 .3em; }
.jmsb-pdp .pdp-contact-head .foil{ background:linear-gradient(90deg,var(--gold-deep,#78571f),var(--gold-2,#b28a49)); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.jmsb-pdp .pdp-contact-head p{ color:var(--ink-2,#6b6350); margin:0; }
.jmsb-pdp .pdp-contact-form{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.jmsb-pdp .pdp-contact-form textarea{ grid-column:1/-1; resize:vertical; min-height:96px; }
.jmsb-pdp .pdp-contact-form input,.jmsb-pdp .pdp-contact-form textarea{ border:1px solid var(--line,#e7ddc9); border-radius:10px; background:var(--bg,#f3ede1); padding:13px 15px; font-family:var(--body,'Heebo',sans-serif); color:var(--ink,#2a2418); }
.jmsb-pdp .pdp-contact-form input:focus,.jmsb-pdp .pdp-contact-form textarea:focus{ outline:none; border-color:var(--gold-2,#b28a49); box-shadow:0 0 0 3px rgba(178,138,73,.18); }
.jmsb-pdp .pdp-contact-form .pdp-btn-gold{ grid-column:1/-1; }
@media(max-width:560px){ .jmsb-pdp .pdp-contact-form{ grid-template-columns:1fr; } }

/* ---- "deals you shouldn't miss" (price + add-to-cart; ~40% of pages) ---- */
.jmsb-pdp .pdp-deals{ background:linear-gradient(180deg,var(--surface,#fffefb),var(--bg,#f3ede1)); padding-block:clamp(44px,6vw,80px); border-top:1px solid var(--line,#e7ddc9); }
.jmsb-pdp .pdp-deals-head{ text-align:center; margin:0 auto clamp(24px,3vw,40px); }
.jmsb-pdp .pdp-deals-head .eyebrow{ font-family:var(--sans,'Rubik',sans-serif); font-weight:700; letter-spacing:.16em; text-transform:uppercase; font-size:.74rem; color:var(--gold-deep,#78571f); }
.jmsb-pdp .pdp-deals-head h2{ font-family:var(--serif,'Frank Ruhl Libre',serif); color:var(--ink,#2a2418); font-size:clamp(1.5rem,3vw,2.2rem); margin:.15em 0 0; }
.jmsb-pdp .pdp-deals-head .foil{ background:linear-gradient(90deg,var(--gold-deep,#78571f),var(--gold-2,#b28a49)); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.jmsb-pdp .pdp-deals-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2vw,26px); }
@media(max-width:760px){ .jmsb-pdp .pdp-deals-grid{ grid-template-columns:1fr; } }
.jmsb-pdp .pdp-deal{ background:var(--surface,#fffefb); border:1px solid var(--line,#e7ddc9); border-radius:var(--r,16px); overflow:hidden; display:flex; flex-direction:column; transition:transform .28s var(--ease,ease),box-shadow .3s,border-color .3s; }
.jmsb-pdp .pdp-deal:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg,0 26px 60px rgba(60,44,18,.18)); border-color:var(--gold,#9c7433); }
.jmsb-pdp .pdp-deal-img{ position:relative; display:block; aspect-ratio:4/3; overflow:hidden; background:var(--bg,#f3ede1); }
.jmsb-pdp .pdp-deal-img img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s var(--ease,ease); }
.jmsb-pdp .pdp-deal:hover .pdp-deal-img img{ transform:scale(1.05); }
.jmsb-pdp .pdp-deal-badge{ position:absolute; top:12px; inset-inline-start:12px; background:linear-gradient(135deg,var(--gold-2,#b28a49),var(--gold-deep,#78571f)); color:#fffdf7; font-family:var(--sans,'Rubik',sans-serif); font-weight:700; font-size:.72rem; letter-spacing:.04em; padding:5px 13px; border-radius:999px; box-shadow:0 4px 14px rgba(120,87,31,.28); }
.jmsb-pdp .pdp-deal-body{ padding:15px 16px 18px; display:flex; flex-direction:column; gap:10px; flex:1; }
.jmsb-pdp .pdp-deal-name{ font-family:var(--serif,'Frank Ruhl Libre',serif); color:var(--ink,#2a2418); font-size:1.02rem; line-height:1.3; text-decoration:none; font-weight:700; }
.jmsb-pdp .pdp-deal-name:hover{ color:var(--gold-deep,#78571f); }
.jmsb-pdp .pdp-deal-price{ font-family:var(--sans,'Rubik',sans-serif); }
.jmsb-pdp .pdp-deal-price del{ color:var(--ink-2,#8a8172); opacity:.75; margin-inline-end:8px; font-size:.9rem; }
.jmsb-pdp .pdp-deal-price ins,.jmsb-pdp .pdp-deal-price .woocommerce-Price-amount{ color:var(--gold-deep,#78571f)!important; font-weight:700; text-decoration:none; font-size:1.15rem; }
.jmsb-pdp .pdp-deal-cart{ margin-top:auto; text-align:center; background:linear-gradient(135deg,var(--gold-2,#b28a49),var(--gold-deep,#78571f))!important; color:#fffdf7!important; border-radius:10px!important; border:none!important; padding:11px 18px!important; font-family:var(--sans,'Rubik',sans-serif)!important; font-weight:600!important; text-decoration:none; transition:.2s!important; box-shadow:0 8px 20px rgba(120,87,31,.2)!important; }
.jmsb-pdp .pdp-deal-cart:hover{ filter:brightness(1.07); transform:translateY(-1px); }

/* Fixtures (faucets/sinks/accessories) ship as photos on a WHITE backdrop (not cutouts),
   unlike stone slabs. Multiply-blend that white into the site's sand background so the
   gallery matches the stone product pages (site background everywhere). Stone is unaffected. */
.jmsb-pdp--fixture .pdp-gal-main img,
.jmsb-pdp--fixture .pdp-gal-th img{ mix-blend-mode:multiply; }
