/* ==========================================================================
   PDP (v2.3.0) · product page upgrade. Uses the existing brand tokens
   (--gold, --ink, --hair, --paper, --serif, --sans). Mobile first. Loads last.
   ========================================================================== */

/* ---------- gallery: desktop hover magnifier ---------- */
.ng-gal .slide{overflow:hidden}
.ng-gal .slide img{transition:transform .2s ease;will-change:transform}
.ng-gal .slide.pdp-zoom img{transform:scale(1.9);transform-origin:var(--zx,50%) var(--zy,50%);transition:transform .12s ease-out}

/* ---------- photo viewer with zoom ---------- */
.pdp-lb .lx3-lb-stage{touch-action:none;overscroll-behavior:contain;cursor:zoom-in;overflow:hidden;user-select:none;-webkit-user-select:none}
.pdp-lb.is-zoomed .lx3-lb-stage{cursor:grab}
.pdp-lb.is-zoomed .lx3-lb-stage:active{cursor:grabbing}
.pdp-lb .lx3-lb-stage img{transform-origin:center center;will-change:transform;-webkit-user-drag:none;touch-action:none}
.pdp-lb-z{position:absolute;z-index:2;top:max(14px,env(safe-area-inset-top,0px));left:14px;width:46px;height:46px;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font:400 30px/1 var(--sans);display:grid;place-items:center;padding-bottom:3px;cursor:pointer;transition:background .25s}
.pdp-lb-z:hover{background:rgba(255,255,255,.28)}
.pdp-lb-hint{position:absolute;z-index:2;top:max(24px,calc(env(safe-area-inset-top,0px) + 10px));left:50%;transform:translateX(-50%);padding:7px 14px;border-radius:999px;background:rgba(255,255,255,.14);color:#fff;font:500 13px/1.2 var(--sans);white-space:nowrap;pointer-events:none;animation:pdpHint 4.2s ease forwards}
.pdp-lb.is-zoomed .pdp-lb-hint{display:none}
@keyframes pdpHint{0%,70%{opacity:1}100%{opacity:0}}
@media(max-width:380px){.pdp-lb-hint{display:none}}

/* ---------- price extras ---------- */
.pdp-save{margin:6px 0 0;font:600 14px/1.3 var(--sans);color:#2f7a4d}

/* ---------- "at a glance": material / size / weight ---------- */
.pdp-glance{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:8px}
.pdp-glance li{display:flex;align-items:center;gap:9px;padding:11px 12px;background:var(--ivory);border-radius:14px;min-width:0}
.pdp-glance svg{flex:none;width:22px;height:22px;color:var(--gold-d)}
.pdp-glance span{display:block;min-width:0}
.pdp-glance small{display:block;font:500 11px/1.2 var(--sans);color:var(--taupe);letter-spacing:.04em;text-transform:uppercase}
.pdp-glance b{display:block;font:600 13.5px/1.25 var(--sans);color:var(--ink);overflow-wrap:anywhere}
@media(max-width:560px){
	.pdp-glance{gap:0;padding:12px 0;background:var(--ivory);border-radius:14px}
	.pdp-glance li{display:block;padding:2px 12px;background:none;border-radius:0}
	.pdp-glance li+li{border-left:1px solid var(--hair)}
	.pdp-glance svg{display:none}
	.pdp-glance small{margin-bottom:3px}
}

/* ---------- main buttons: "in your cart" state ---------- */
.ng-ghost.lx3-add.is-in{background:#fff!important;border:1.5px solid var(--gold)!important;color:var(--gold-d)!important;box-shadow:none!important}
.ng-ghost.lx3-add.is-in:hover{background:var(--ivory)!important;color:var(--gold-d)!important}
.lx3-cta .ng-submit,.lx3-cta .ng-ghost,.lx3-cta .lx3-wish{min-height:56px}

/* ---------- delivery info (under the buy buttons) ---------- */
.pdp-deliv{list-style:none;margin:16px 0 0;padding:14px 16px;display:grid;gap:11px;border:1px solid var(--hair);border-radius:16px;font:400 14px/1.4 var(--sans);color:var(--taupe)}
.pdp-deliv li{display:flex;align-items:flex-start;gap:12px}
.pdp-deliv svg{flex:none;width:21px;height:21px;margin-top:1px;color:var(--gold-d)}
.pdp-deliv b{display:block;font-weight:600;color:var(--ink)}
.pdp-deliv li:first-child span{color:var(--ink)}
.lx3-assure{margin-top:12px}

/* ---------- product details table ---------- */
.pdp-specs{margin:0}
.pdp-specs>div{display:grid;grid-template-columns:minmax(110px,38%) 1fr;gap:12px;padding:11px 0;border-top:1px solid var(--hair-2)}
.pdp-specs>div:first-child{border-top:0;padding-top:2px}
.pdp-specs dt{font:500 14px/1.4 var(--sans);color:var(--taupe)}
.pdp-specs dd{margin:0;font:500 14.5px/1.4 var(--sans);color:var(--ink);overflow-wrap:anywhere}
.lx3-acc .ng-desc p{margin:0 0 12px}
.lx3-acc .ng-desc p:last-child{margin-bottom:0}

/* ---------- section titles (below the product) ---------- */
.pdp-fbt,.pdp-rel,.pdp-recent{padding:30px 0 6px;border-top:1px solid var(--hair);margin-top:26px}
.pdp-fbt h2.sub,.pdp-rel h2.sub,.pdp-recent h2.sub,.ng-reviews h2.sub{font:700 clamp(24px,6.4vw,30px)/1.15 var(--serif);margin:0 0 16px}
.pdp-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.pdp-clear{border:0;background:none;color:var(--taupe);font:500 14px var(--sans);text-decoration:underline;cursor:pointer;padding:6px 0}

/* ---------- frequently bought together ---------- */
.pdp-fbt-list{display:grid;gap:10px}
.pdp-fbt-item{position:relative;display:grid;grid-template-columns:auto 84px 1fr;gap:12px;align-items:center;padding:10px 12px 10px 10px;border:1px solid var(--hair);border-radius:16px;background:#fff;transition:opacity .25s,border-color .25s}
.pdp-fbt-item.off{opacity:.55}
.pdp-fbt-item+.pdp-fbt-item::before{content:"+";position:absolute;left:24px;top:-17px;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:var(--ink);color:#fff;font:600 15px/1 var(--sans);z-index:1}
.pdp-fbt-chk{position:relative;display:grid;place-items:center;width:30px;height:44px;cursor:pointer}
.pdp-fbt-chk input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.pdp-fbt-chk .bx{width:24px;height:24px;border-radius:7px;border:1.5px solid var(--ink);background:#fff;display:grid;place-items:center;transition:background .2s,border-color .2s}
.pdp-fbt-chk input:checked+.bx{background:var(--gold);border-color:var(--gold)}
.pdp-fbt-chk input:checked+.bx::after{content:"";width:6px;height:11px;border:solid #1a140c;border-width:0 2.2px 2.2px 0;transform:rotate(45deg) translate(-1px,-1px)}
.pdp-fbt-chk input:disabled{cursor:default}
.pdp-fbt-chk input:disabled+.bx{opacity:.75}
.pdp-fbt-chk input:focus-visible+.bx{outline:2px solid var(--gold);outline-offset:3px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.pdp-fbt-pic{display:block;width:84px;height:84px;border-radius:12px;background:var(--paper);overflow:hidden}
.pdp-fbt-pic img{width:100%;height:100%;object-fit:contain;display:block}
.pdp-fbt-meta{min-width:0;display:grid;gap:3px;justify-items:start}
.pdp-fbt-meta .t{font:600 15px/1.3 var(--serif);color:var(--ink);text-decoration:none}
.pdp-fbt-meta .p{display:flex;gap:8px;align-items:baseline;font:700 15px var(--sans);color:var(--ink)}
.pdp-fbt-meta .p s{font:400 13px var(--sans);color:#8f867c}
.pdp-fbt-meta small{font:500 12px var(--sans);color:var(--taupe)}
.pdp-fbt-meta select{max-width:100%;margin-top:3px;padding:7px 30px 7px 12px;border:1px solid var(--hair);border-radius:999px;background-color:#fff;font:500 13.5px var(--sans);color:var(--ink)}
.pdp-fbt-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:14px;padding:14px 16px;background:var(--ivory);border-radius:16px}
.pdp-fbt-sum{display:grid;gap:2px}
.pdp-fbt-sum span{font:500 12px var(--sans);color:var(--taupe);letter-spacing:.06em;text-transform:uppercase}
.pdp-fbt-sum b{font:700 24px/1 var(--sans);color:var(--ink)}
.pdp-fbt-foot .ng-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 22px;font-size:15px;min-height:52px}
.pdp-fbt-foot .ng-btn svg{width:22px;height:22px}
.pdp-fbt-foot .ng-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
@media(max-width:520px){.pdp-fbt-foot{flex-direction:column;align-items:stretch}.pdp-fbt-foot .ng-btn{width:100%}.pdp-fbt-sum{grid-auto-flow:column;justify-content:space-between;align-items:baseline}}
@media(min-width:860px){
	.pdp-fbt-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:34px;max-width:980px}
	.pdp-fbt-item{grid-template-columns:auto 1fr;grid-template-rows:auto auto;padding:12px}
	.pdp-fbt-pic{grid-column:1/-1;grid-row:1;width:100%;height:auto;aspect-ratio:4/3}
	.pdp-fbt-chk{grid-row:2;height:auto;align-self:start;padding-top:2px}
	.pdp-fbt-meta{grid-row:2}
	.pdp-fbt-item+.pdp-fbt-item::before{left:-28px;top:42%}
	.pdp-fbt-foot{max-width:520px;margin-left:auto}
}

/* ---------- reviews summary ---------- */
.pdp-rsum{display:grid;gap:18px;margin:0 0 18px;padding:18px;border:1px solid var(--hair);border-radius:18px;background:#fff}
.pdp-rsum .big{display:grid;justify-items:start;gap:4px}
.pdp-rsum .big b{font:700 46px/1 var(--serif);color:var(--ink)}
.pdp-rsum .big .stars{font-size:20px;letter-spacing:1px}
.pdp-rsum .big small{font:400 14px var(--sans);color:var(--taupe)}
.pdp-rsum .bars{list-style:none;margin:0;padding:0;display:grid;gap:7px;align-content:center}
.pdp-rsum .bars li{display:grid;grid-template-columns:30px 1fr 28px;align-items:center;gap:10px;font:500 13px var(--sans);color:var(--taupe)}
.pdp-rsum .bars i{display:block;height:8px;border-radius:99px;background:var(--hair-2);overflow:hidden}
.pdp-rsum .bars u{display:block;height:100%;border-radius:99px;background:var(--star,#c9983f);text-decoration:none}
.pdp-rsum .bars em{font-style:normal;text-align:right}
@media(min-width:560px){.pdp-rsum{grid-template-columns:200px 1fr;align-items:center;gap:32px}}

/* ---------- rails: similar products + recently viewed (swipe on phones) ---------- */
.pdp-rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(150px,44%);gap:12px;overflow-x:auto;padding:2px 20px 14px;margin:0 -20px;scroll-padding-left:20px;scroll-snap-type:x proximity;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.pdp-rail::-webkit-scrollbar{display:none}
.pdp-rail>*{scroll-snap-align:start;min-width:0}
.pdp-rail-cards .ng-card{height:100%}
@media(min-width:640px){.pdp-rail{grid-auto-columns:calc((100% - 24px)/3)}}
@media(min-width:860px){.pdp-rail{padding:2px 2px 14px;margin:0 -2px;scroll-padding-left:0}}
@media(min-width:1000px){.pdp-rail{grid-auto-columns:calc((100% - 54px)/4);gap:18px}}
.pdp-recent[hidden]{display:none}
.pdp-rc{display:grid;gap:6px;align-content:start;text-decoration:none;color:var(--ink)}
.pdp-rc .pic{display:block;aspect-ratio:1/1;border-radius:14px;background:var(--paper);overflow:hidden}
.pdp-rc img{width:100%;height:100%;object-fit:contain;display:block;transition:transform .35s}
.pdp-rc:hover img{transform:scale(1.04)}
.pdp-rc .t{font:600 14.5px/1.3 var(--serif);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pdp-rc .p{font:700 14px var(--sans)}

/* ---------- sticky add-to-cart (phones) ---------- */
.pdp-sticky{gap:14px;padding:10px 14px}
.pdp-st-p{min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:0 8px;line-height:1.2}
.pdp-st-p strong{font:700 21px/1.2 var(--sans)}
.pdp-st-p s{font:400 13px var(--sans);color:#8f867c}
.pdp-st-p small{flex-basis:100%;font:500 12px var(--sans);color:var(--taupe);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pdp-sticky .ng-btn{flex:1 1 auto;max-width:62%;display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:50px;padding:0 18px;font-size:15.5px;white-space:nowrap}
.pdp-sticky .ng-btn svg{width:22px;height:22px;flex:none}
.pdp-sticky .ng-btn.is-in{background:#fff!important;border:1.5px solid var(--gold)!important;color:var(--gold-d)!important;box-shadow:none!important;font-size:14px}

@media(max-width:859px){.ng-main.ng-prod-page{padding-bottom:150px}}
@media(prefers-reduced-motion:reduce){.pdp-lb-hint{animation:none;opacity:0}.ng-gal .slide img,.pdp-rc img,.pdp-fbt-item{transition:none}}
