/* Medusa product photos are square, full-scene shots (device, box and plinth on
   their own background), unlike the bundled cut-outs the design was drawn for.
   These rules frame them as photos; cut-outs keep the original float styling. */

/* flavour carousel */
.fcard--photo .fcard__img { top: 6%; width: 78%; aspect-ratio: 1; object-fit: cover; border-radius: 18px; filter: drop-shadow(0 26px 30px rgba(0, 0, 0, .55)); }
.fcard--photo.fcard--pods .fcard__img { width: 78%; top: 6%; }

/* product cards */
.pcard--photo .pcard__media img { top: 7%; left: 7%; margin: 0; width: 86%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 14px; filter: drop-shadow(0 18px 22px rgba(0, 0, 0, .5)); }
.pcard--photo .pcard__word { opacity: .35; }
.pcard__buy b small { font: 500 11px/1 var(--ui); color: var(--mute); text-transform: uppercase; letter-spacing: .08em; margin-right: 2px; }

/* restock tiles */
.rtile--photo .rtile__img img { width: 82%; aspect-ratio: 1; object-fit: cover; border-radius: 12px; }

/* thumbnails (drawer, search, toast, sticky bar) */
.pthumb--photo img { width: 100%; height: 100%; object-fit: cover; filter: none; }

/* product page gallery: show the whole photo, no vignette */
.stage__imgs img.is-photo { width: min(88%, 560px); aspect-ratio: 1; object-fit: cover; mask-image: none; -webkit-mask-image: none; box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .8); }
/* Non-square photos keep their own shape inside the same square box instead of being cropped. */
.stage__imgs img.is-photo.is-tall { width: calc(min(88%, 560px) * var(--ar)); aspect-ratio: var(--ar); }
.stage__imgs img.is-photo.is-wide { aspect-ratio: var(--ar); }
.thumbs button img { object-fit: cover; }
.pdp__price s { margin-left: 10px; color: var(--mute); font-size: .6em; }

/* pack-size chips carry their own price */
.vchip span small { display: block; margin-top: 3px; font-size: 12px; opacity: .75; letter-spacing: .04em; }
.vchip.is-out { opacity: .45; }
.vchip.is-out span { text-decoration: line-through; }
.sw.is-out { opacity: .45; }

/* sold out + in-flight buttons */
.is-soldout, button:disabled.is-soldout { opacity: .5; cursor: not-allowed; filter: grayscale(.6); }
[data-add].is-busy, .bundle__add.is-busy { opacity: .6; pointer-events: none; }
.toast.is-err { border-color: rgba(248, 113, 113, .5); }
.toast.is-err b { color: #fca5a5; }

.cartpage__loading { color: var(--mute); padding: 40px 0; }
.subscribe-follow { display: flex; justify-content: center; margin-top: 28px; }
