/* =====================================================================
   I-Store storefront product page — claude_design "I-Store Product".
   Loads after istore-home.css (tokens, header, cards, bag); pieces here are .ipd-.
   ===================================================================== */
.ipd{padding-top:20px}
.ipd-muted{color:var(--muted)}
.ipd-crumbs{display:flex;flex-wrap:wrap;gap:8px;font-size:13px;color:var(--muted);margin-bottom:20px}
.isx .ipd-crumbs a{color:var(--muted)}
.isx .ipd-crumbs a:hover{color:var(--violet)}
.ipd-crumbs [aria-current]{color:var(--ink);max-width:40ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ipd-top{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(380px,1fr);gap:56px;align-items:start}

/* Gallery */
.ipd-gal{position:sticky;top:88px;display:flex;gap:14px;height:min(calc(100vh - 112px),820px);min-height:520px}
.ipd-thumbs{flex:0 0 78px;display:flex;flex-direction:column;gap:10px;overflow-y:auto;scrollbar-width:none;padding:4px}
.ipd-thumbs::-webkit-scrollbar{display:none}
.ipd-thumb{position:relative;flex:0 0 auto;width:70px;aspect-ratio:3/4;border-radius:12px;overflow:hidden;background:var(--line)!important;opacity:.55;box-shadow:inset 0 0 0 1px rgba(36,32,38,.08);transition:opacity .3s,box-shadow .3s}
.ipd-thumb img{width:100%;height:100%;object-fit:cover}
.ipd-thumb:hover{opacity:1}
.ipd-thumb.is-on{opacity:1;box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--plum)}
.ipd-stage{position:relative;flex:1;min-width:0;border-radius:24px;overflow:hidden;background:var(--line);touch-action:pan-y}
.ipd-layer{position:absolute;inset:0;z-index:1;pointer-events:none;visibility:hidden}
.ipd-layer img{width:100%;height:100%;object-fit:cover;transform:scale(1.08);transition:transform 1.4s var(--ease)}
.ipd-layer.is-on{z-index:3;visibility:visible;pointer-events:auto;clip-path:inset(0 0 0 0);transition:clip-path 1s cubic-bezier(.77,0,.18,1)}
.ipd-layer.is-on img{transform:none}
.ipd-layer.is-prev{z-index:2;visibility:visible}
.ipd-layer.is-prev img{transform:none}
.ipd-stage .ipd-layer.is-on img{cursor:zoom-in}
.ipd-badges{position:absolute;left:16px;top:16px;z-index:5;display:flex;gap:6px;pointer-events:none}
[dir="rtl"] .ipd-badges{left:auto;right:16px}
.ipd-badges span{height:30px;padding:0 11px;border-radius:999px;background:var(--paper);color:var(--deep);font-size:13px;font-weight:600;display:flex;align-items:center}
.ipd-badges span.is-sale{background:var(--sale);color:#fff}
.ipd-glass{width:46px;height:46px;border-radius:999px;background:rgba(255,255,255,.92)!important;color:var(--ink);display:grid;place-items:center;box-shadow:0 10px 24px -12px rgba(41,21,47,.4);transition:transform .3s var(--ease)}
.ipd-glass:hover{transform:scale(1.08)}
.ipd-full{position:absolute;right:16px;top:16px;z-index:5}
[dir="rtl"] .ipd-full{right:auto;left:16px}
.ipd-galbar{position:absolute;left:16px;right:16px;bottom:16px;z-index:5;display:flex;justify-content:space-between;align-items:center;pointer-events:none}
.ipd-count{height:40px;padding:0 14px;border-radius:999px;background:rgba(255,255,255,.92);display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:12px;color:var(--ink)}
.ipd-count i{position:relative;width:64px;height:2px;border-radius:2px;background:rgba(36,32,38,.15);overflow:hidden}
.ipd-count b{position:absolute;inset-inline-start:0;top:0;bottom:0;background:var(--plum);transition:width .6s var(--ease)}
.ipd-galnav{display:flex;gap:8px;pointer-events:auto}

/* Buy box */
.ipd-info{display:flex;flex-direction:column;min-width:0}
.ipd-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.isx .ipd-eyebrow{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--violet);font-weight:500}
.isx .ipd-rate{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--ink);white-space:nowrap}
.ipd-stars{color:var(--violet);letter-spacing:1px}
.ipd-rate u{color:var(--muted)}
.ipd-title{margin:12px 0 0;font-family:var(--serif);font-weight:700;font-size:clamp(28px,1.4vw + 20px,40px);line-height:1.05;letter-spacing:-0.025em;text-wrap:pretty}
.ipd-price{display:flex;align-items:baseline;gap:10px;margin-top:16px;flex-wrap:wrap}
.ipd-price b{font-size:28px;font-weight:600;color:var(--ink)}
.ipd-price b.is-sale,.ipd-sticky__price b.is-sale{color:var(--sale)}
.ipd-price s{font-size:17px;color:var(--muted)}
.ipd-save{height:26px;padding:0 9px;border-radius:999px;background:var(--sale-soft);color:var(--sale);font-size:13px;font-weight:600;display:flex;align-items:center;align-self:center}
.ipd-stock{font-size:14px;color:var(--muted);margin-top:6px;min-height:21px}
.ipd-stock.is-low{color:var(--sale)}
.ipd-stock.is-ok{color:var(--green)}
.ipd-rule{height:1px;background:var(--line);margin:18px 0 24px}
.ipd-opt+.ipd-opt{margin-top:26px}
.ipd-opt__head{display:flex;justify-content:space-between;align-items:center;font-size:14px}
.isx .ipd-link{font-size:14px;font-weight:500;text-decoration:underline}
.ipd-swatches{display:flex;gap:12px;margin-top:12px;flex-wrap:wrap}
.ipd-swatch{width:40px;height:40px;border-radius:999px;box-shadow:inset 0 0 0 1px rgba(36,32,38,.15);transition:box-shadow .3s,transform .3s var(--ease)}
.ipd-swatch:hover{transform:scale(1.08)}
.ipd-swatch.is-on{box-shadow:0 0 0 3px var(--bg),0 0 0 5px var(--plum)}
.ipd-swatch.is-out{opacity:.4}
.ipd-sizes{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:8px;margin-top:12px}
.ipd-size{position:relative;height:50px;padding:0 8px!important;border-radius:14px;border:1.5px solid var(--line)!important;background:var(--paper)!important;color:var(--ink);font-size:15px;font-weight:500;transition:background .25s,color .25s,border-color .25s,transform .2s}
.ipd-size:active{transform:scale(.96)}
.ipd-size:hover{border-color:var(--lilac)!important}
.ipd-size i{position:absolute;top:6px;right:6px;width:6px;height:6px;border-radius:99px;background:var(--sale);display:none}
[dir="rtl"] .ipd-size i{right:auto;left:6px}
.ipd-size.is-low i{display:block}
.ipd-size.is-out{background:var(--line)!important;color:var(--muted);text-decoration:line-through}
.ipd-size.is-on{background:var(--plum)!important;border-color:var(--plum)!important;color:var(--bg)}
.ipd-opt.is-error .ipd-size:not(.is-on){border-color:var(--sale)!important}
.ipd-opt.is-shake .ipd-sizes{animation:ipd-shake .42s ease-out}
.ipd-msg{min-height:22px;margin-top:10px;font-size:13px;color:var(--muted)}
.ipd-msg.is-alert{color:var(--sale)}
.ipd-buy{display:flex;gap:10px;margin-top:14px}
.ipd-qty{display:flex;align-items:center;height:56px;border:1.5px solid var(--line);border-radius:999px;background:var(--paper)}
.ipd-qty button{width:44px;height:52px;font-size:18px;color:var(--ink)}
.ipd-qty button:disabled{opacity:.3;cursor:default}
.ipd-qty span{min-width:22px;text-align:center;font-size:15px;font-weight:600}
.ipd-add{flex:1;height:56px;border-radius:999px;background:var(--violet)!important;color:#fff!important;font-size:16px;font-weight:600!important;display:flex;align-items:center;justify-content:center;gap:10px;transition:background .3s,transform .2s}
.ipd-add:hover{background:var(--deep)!important}
.ipd-add:active{transform:scale(.98)}
.ipd-add.is-added{background:var(--plum)!important}
.ipd-add.is-notify{background:var(--ink)!important}
.ipd-add.is-busy{opacity:.7}
.ipd-heart{flex:0 0 56px;height:56px;border-radius:999px;border:1.5px solid var(--line)!important;background:var(--paper)!important;display:grid;place-items:center;color:var(--ink);transition:border-color .25s}
.ipd-heart:hover{border-color:var(--lilac)!important}
.ipd-heart.is-on{color:var(--violet)}
.ipd-heart.is-on svg{fill:var(--violet)}
.ipd-heart.is-pop{animation:ish-heart .52s var(--ease)}
.ipd-perks{display:flex;flex-direction:column;margin-top:20px;padding:6px 18px;border-radius:18px;background:var(--paper);border:1px solid var(--line)}
.ipd-perk{display:flex;align-items:center;gap:14px;padding:12px 0}
.ipd-perk+.ipd-perk{border-top:1px solid var(--line)}
.ipd-perk>span{flex:0 0 36px;height:36px;border-radius:999px;background:var(--lilac2);color:var(--deep);display:grid;place-items:center;font-family:var(--mono);font-size:12px;font-weight:500}
.ipd-perk>div{min-width:0}
.ipd-perk b{display:block;font-size:14px;font-weight:600}
.ipd-perk small{display:block;font-size:13px;color:var(--muted);margin-top:2px}
.ipd-acc{margin-top:20px}
.ipd-acc__item{border-bottom:1px solid var(--line)}
.ipd-acc__btn{width:100%;display:flex;justify-content:space-between;align-items:center;padding:18px 0!important;color:var(--ink)!important;font-size:15px;font-weight:600!important;text-align:start}
.ipd-acc__btn span{width:28px;height:28px;border-radius:999px;background:var(--line);display:grid;place-items:center;transition:transform .45s var(--ease)}
.ipd-acc__item.is-open .ipd-acc__btn span{transform:rotate(45deg)}
.ipd-acc__body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s var(--ease)}
.ipd-acc__item.is-open .ipd-acc__body{grid-template-rows:1fr}
.ipd-acc__body>div{overflow:hidden}
.ipd-rich{padding:0 0 18px;font-size:15px;line-height:1.6;color:var(--ink2);opacity:0;transition:opacity .4s;text-wrap:pretty;overflow-wrap:anywhere}
.ipd-acc__item.is-open .ipd-rich{opacity:1}
.ipd-rich p{margin:0 0 10px}
.ipd-rich p:last-child{margin:0}
.ipd-rich ul,.ipd-rich ol{margin:0 0 10px;padding-inline-start:20px}
.ipd-rich img{max-width:100%;height:auto}
.ipd-rich table{border-collapse:collapse;width:100%}
.ipd-rich td,.ipd-rich th{border:1px solid var(--line);padding:6px 8px;text-align:start}
.ipd-dl{display:grid;grid-template-columns:max-content 1fr;gap:8px 20px;margin:0}
.ipd-dl dt{color:var(--muted)}
.ipd-dl dd{margin:0;color:var(--ink)}

/* Sections */
.ipd-h2{margin:0;font-family:var(--serif);font-weight:700;font-size:clamp(28px,1.3vw + 22px,40px);line-height:1.08;letter-spacing:-0.025em}
.ipd-h2--reviews{margin-bottom:32px}
.ipd-sub{font-size:15px;color:var(--muted);margin-top:8px}
.ipd-outline{height:48px;padding:0 22px!important;border-radius:999px;border:1.5px solid var(--ink)!important;background:var(--paper)!important;color:var(--ink)!important;font-size:15px;font-weight:600!important;white-space:nowrap;transition:background .25s,color .25s}
.ipd-outline:hover{background:var(--ink)!important;color:var(--bg)!important}
.ipd-outline.is-busy{opacity:.6;pointer-events:none}
.ipd-look .ish-card .ish-dots-c,.ipd-look .ish-wish{display:none}

/* Reviews */
.ipd-rev{display:grid;grid-template-columns:minmax(280px,1fr) minmax(0,2.2fr);gap:48px;align-items:start}
.ipd-rev__sum{background:var(--paper);border:1px solid var(--line);border-radius:24px;padding:28px;position:sticky;top:96px}
.ipd-rev__avg{display:flex;align-items:flex-end;gap:12px}
.ipd-rev__avg>b{font-family:"Source Serif 4",Georgia,serif;font-weight:700;font-size:64px;line-height:.9;letter-spacing:-0.03em}
.ipd-rev__avg>div{padding-bottom:4px}
.ipd-rev__avg .ipd-stars{letter-spacing:2px}
.ipd-rev__avg small{display:block;font-size:13px;color:var(--muted);margin-top:2px}
.ipd-dist{display:flex;flex-direction:column;gap:4px;margin-top:22px}
.ipd-dist button{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink2);padding:2px 4px!important;margin:0 -4px;border-radius:8px;transition:background .2s}
.ipd-dist button:hover:not(:disabled),.ipd-dist button.is-on{background:var(--lilac2)}
.ipd-dist button:disabled{cursor:default;opacity:.6}
.ipd-dist span:first-child{width:12px}
.ipd-dist i{flex:1;height:6px;border-radius:99px;background:var(--line);overflow:hidden}
.ipd-dist b{display:block;height:100%;border-radius:99px;background:var(--violet)}
.ipd-dist span:last-child{width:36px;text-align:end;color:var(--muted)}
.ipd-rev__none b{display:block;font-family:var(--serif);font-weight:600;font-size:22px}
.ipd-rev__none span{display:block;font-size:15px;color:var(--muted);margin-top:8px}
.ipd-rev__tabs{margin:0 0 8px}
[data-review-list]{transition:opacity .3s}
[data-review-list].is-busy{opacity:.4}
.ipd-review{display:grid;grid-template-columns:180px minmax(0,1fr);gap:24px;padding:24px 0;border-bottom:1px solid var(--line);animation:ish-up .5s var(--ease) both;animation-delay:calc(var(--i,0) * 60ms)}
.ipd-review__who b{display:block;font-size:15px;font-weight:600}
.ipd-review__who small{display:block;font-size:13px;color:var(--muted);margin-top:4px;line-height:1.5}
.ipd-review__top{display:flex;justify-content:space-between;gap:12px}
.ipd-review__top .ipd-stars{letter-spacing:2px}
.ipd-review__top small{font-size:13px;color:var(--muted)}
.ipd-review p{margin:8px 0 0;font-size:15px;line-height:1.6;color:var(--ink2);text-wrap:pretty;overflow-wrap:anywhere;white-space:pre-line}
.ipd-review__photos{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.ipd-review__photos a{width:88px;height:110px;border-radius:12px;overflow:hidden;background:var(--line)}
.ipd-review__photos img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.ipd-review__photos a:hover img{transform:scale(1.06)}
.ipd-review__reply{margin-top:14px;padding:12px 14px;border-radius:12px;background:var(--lilac2);font-size:14px;line-height:1.5;color:var(--ink2)}
.ipd-review__reply b{display:block;font-size:13px;color:var(--deep);margin-bottom:2px}
.ipd-review__help{font-size:13px;color:var(--muted);margin-top:12px}
.ipd-review__help button{text-decoration:underline;color:var(--muted)!important;font-size:13px}
.ipd-review__help button.is-on{color:var(--violet)!important;font-weight:600!important}
.ipd-more{margin-top:24px}

/* Footer */
.ipd-foot{padding-top:clamp(64px,6vw + 40px,112px);padding-bottom:120px}
.ipd-foot__row{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding-top:32px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}
.isx .ipd-foot__row .ish-logo{font-size:22px}
.isx .ipd-foot__row span a{color:var(--muted)}
.isx .ipd-foot__row span a:hover{color:var(--violet)}

/* Sticky add bar */
.ipd-sticky{position:fixed;left:0;right:0;bottom:0;z-index:70;transform:translateY(110%);transition:transform .6s var(--ease);background:rgba(255,255,255,.98);border-top:1px solid var(--line)}
.ipd-sticky.is-on{transform:none;box-shadow:0 -20px 40px -24px rgba(41,21,47,.25)}
.ipd-sticky__row{display:flex;align-items:center;gap:16px;padding-top:12px;padding-bottom:12px}
.ipd-sticky__img{flex:0 0 44px;height:56px;border-radius:10px;object-fit:cover;background:var(--line)}
.ipd-sticky__copy{flex:1;min-width:0}
.ipd-sticky__copy b{display:block;font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ipd-sticky__copy small{display:block;font-size:13px;color:var(--muted);margin-top:2px}
.ipd-sticky__price{display:flex;align-items:baseline;gap:8px}
.ipd-sticky__price b{font-size:20px;font-weight:600}
.ipd-sticky__price s{font-size:14px;color:var(--muted)}
.ipd-add--sm{flex:0 0 auto;height:50px;padding:0 30px!important;font-size:15px;white-space:nowrap}
body.has-sticky .isx-spinfab{bottom:96px}

/* Lightbox */
.ipd-lb{position:fixed;inset:0;z-index:100;pointer-events:none;opacity:0;transition:opacity .45s;background:rgba(24,12,28,.94)}
.ipd-lb.is-open{pointer-events:auto;opacity:1}
.ipd-lb__stage{position:absolute;inset:0;display:grid;place-items:center;padding:72px 120px 120px;transform:scale(.94);transition:transform .6s var(--ease)}
.ipd-lb.is-open .ipd-lb__stage{transform:none}
.ipd-lb__stage img{max-width:100%;max-height:100%;object-fit:contain;border-radius:12px}
.ipd-lb__stage img.is-swap{animation:ipd-swap .5s var(--ease)}
.ipd-lb__btn{position:absolute;width:56px;height:56px;border-radius:999px;background:rgba(252,250,247,.12)!important;color:var(--bg)!important;display:grid;place-items:center;transition:background .2s}
.ipd-lb__btn:hover{background:rgba(252,250,247,.22)!important}
.ipd-lb__x{right:28px;top:24px;width:48px;height:48px}
[dir="rtl"] .ipd-lb__x{right:auto;left:28px}
.ipd-lb__prev{left:32px;top:50%;margin-top:-28px}
.ipd-lb__next{right:32px;top:50%;margin-top:-28px}
[dir="rtl"] .ipd-lb__prev{left:auto;right:32px}
[dir="rtl"] .ipd-lb__next{right:auto;left:32px}
.ipd-lb__thumbs{position:absolute;left:0;right:0;bottom:28px;display:flex;justify-content:center;gap:8px;flex-wrap:wrap;padding:0 16px}
.ipd-lb__thumbs button{width:48px;aspect-ratio:3/4;border-radius:8px;overflow:hidden;background:rgba(252,250,247,.14)!important;opacity:.55;transition:opacity .3s,box-shadow .3s}
.ipd-lb__thumbs button.is-on{opacity:1;box-shadow:0 0 0 2px var(--bg)}
.ipd-lb__thumbs img{width:100%;height:100%;object-fit:cover}

/* Load-in of the buy box (JS adds .ipd-in; reduced motion skips it) */
.ish-js .ipd-info>*{opacity:0;transform:translateY(22px)}
.ish-js .ipd-info.ipd-in>*{opacity:1;transform:none;transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:calc(120ms + var(--i,0) * 45ms)}

@keyframes ipd-shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-8px)}50%{transform:translateX(7px)}75%{transform:translateX(-4px)}}
@keyframes ipd-swap{from{opacity:0;transform:translateX(calc(var(--dir,1) * 40px))}to{opacity:1;transform:none}}

/* Responsive */
@media (max-width: 1100px) {
  .ipd-top{grid-template-columns:minmax(0,1fr) minmax(340px,1fr);gap:32px}
}
@media (max-width: 860px) {
  .ipd-top{grid-template-columns:1fr;gap:28px}
  .ipd-gal{position:relative;top:0;height:auto;min-height:0;flex-direction:column-reverse}
  .ipd-stage{aspect-ratio:4/5;flex:none}
  .ipd-thumbs{flex-direction:row;flex:none;overflow-x:auto;overflow-y:visible}
  .ipd-thumb{width:60px}
  .ipd-rev{grid-template-columns:1fr;gap:28px}
  .ipd-rev__sum{position:static}
  .ipd-sticky__price{display:none}
}
@media (max-width: 640px) {
  .ipd{padding-top:12px}
  .ipd-crumbs{margin-bottom:12px;font-size:12px;flex-wrap:nowrap;overflow-x:auto;white-space:nowrap;scrollbar-width:none}
  .ipd-crumbs::-webkit-scrollbar{display:none}
  .ipd-crumbs [aria-current]{max-width:none;overflow:visible}
  .ipd-stage{border-radius:20px;margin:0 calc(var(--gutter) * -1);border-radius:0}
  .ipd-galnav{display:none}
  .ipd-price b{font-size:24px}
  .ipd-badges{left:12px;top:12px}
  [dir="rtl"] .ipd-badges{right:12px}
  .ipd-badges span{height:26px;font-size:12px;padding:0 9px}
  .ipd-full{right:12px;top:12px}
  [dir="rtl"] .ipd-full{left:12px}
  .ipd-full.ipd-glass{width:40px;height:40px}
  .ipd-galbar{left:12px;right:12px;bottom:12px}
  .ipd-count{height:34px;padding:0 12px}
  .ipd-buy{gap:8px}
  .ipd-qty,.ipd-add,.ipd-heart{height:52px}
  .ipd-heart{flex-basis:52px}
  .ipd-review{grid-template-columns:1fr;gap:10px}
  .ipd-rev__sum{padding:22px}
  .ipd-rev__avg>b{font-size:52px}
  .ish-grid4.ipd-look{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ipd-sticky__img{display:none}
  .ipd-add--sm{padding:0 20px!important}
  .ipd-lb__stage{padding:64px 12px 96px}
  .ipd-lb__prev,.ipd-lb__next{display:none}
  .ipd-shead-btn{width:100%}
  .ipd-foot{padding-bottom:110px}
}
@media (hover: none) {
  /* Gallery photos crossfade on touch screens instead of the clip-path wipe */
  .ipd-layer{clip-path:none!important;opacity:0;transition:opacity .45s ease}
  .ipd-layer.is-on{opacity:1;transition:opacity .45s ease}
  .ipd-layer.is-prev{opacity:1}
  .ipd-layer img{transform:none;transition:none}
}
