/* Shared gift-bag components supply the catalogue geometry and typography. */
.ribbon-catalog { --ribbon-pink:var(--pink); }
.ribbon-catalog .model-catalog-hero__image { object-position:center 50%; }
.ribbon-count-label { display:flex; flex-direction:column; line-height:1.05; white-space:nowrap; }
.ribbon-count-label--mobile { display:none; }
.ribbon-catalog__order button { display:flex; align-items:center; justify-content:center; gap:4px; }
.ribbon-catalog__order button svg { flex:0 0 12px; }
.ribbon-group__native-link { text-decoration:none; }
.ribbon-group__summary > p { width:100%; }
.ribbon-group__thumbnails button { position:relative; }
.ribbon-group__thumbnails .ribbon-group__more { display:grid; place-items:center; color:var(--pink); font-size:16px; font-weight:700; }
.ribbon-group__thumbnails.has-overflow > [data-ribbon-thumbnail]:nth-child(9), .ribbon-group__more-mobile-count { display:none; }
.ribbon-group__thumbnails img { object-fit:cover; }
.ribbon-group__expand { margin-top:auto; }
.ribbon-product__media > a { display:block; width:100%; height:100%; }
.ribbon-catalog .ribbon-product__favorite svg { display:block; width:17px; height:17px; }
.ribbon-product__action.is-error { background:#a5332d; }
.ribbon-product__action[hidden] { display:none !important; }
.ribbon-product__purchase, .ribbon-product__variants { grid-column:1 / -1; }
.ribbon-group.is-expanded { display:block; }
.ribbon-catalog__seo { margin-top:34px; line-height:1.55; }
@media(max-width:760px) {
 .ribbon-count-label--desktop { display:none; }
 .ribbon-count-label--mobile { display:flex; }
 .ribbon-catalog .model-catalog-hero__image { transform:translateY(8px) scale(1.5); transform-origin:center; }
 .ribbon-catalog .model-catalog-sort__count { align-items:center; }
 .ribbon-count-label { align-items:flex-start; text-align:left; line-height:1.2; }
 .ribbon-catalog__order button { gap:2px; padding-inline:2px; font-size:10.25px; }
 .ribbon-catalog__order button svg { width:10px; height:10px; flex-basis:10px; }
 .ribbon-group__thumbnails.has-overflow > [data-ribbon-thumbnail]:nth-child(9) { display:block; }
 .ribbon-group__more-desktop { display:none; }
 .ribbon-group__more-mobile-count { display:inline; }
 .ribbon-group__expand { margin-top:10px; }
 .ribbon-group__more-mobile { cursor:pointer; }
 .ribbon-catalog .model-catalog-product__status { display:flex; gap:4px; }
 .ribbon-catalog .model-catalog-product__status > span { font-size:9px; }
 .ribbon-catalog .model-catalog-product__status strong { font-size:11px; }
}
.ribbon-product__media.is-loading > a > img, .ribbon-group__thumbnails .is-loading > img { opacity: 0; }
.ribbon-product__media.is-placeholder { background: linear-gradient(145deg,#fffaf5,#f3e7df); }
.ribbon-product__media.is-placeholder img { padding: 22%; }
.ribbon-product__placeholder { position: absolute; right: 6px; bottom: 7px; left: 6px; display: none; color: #7e7069; font-size: 9px; text-align: center; }
.ribbon-product__media.is-placeholder .ribbon-product__placeholder { display: block; }
.ribbon-product__spinner { position: absolute; z-index: 3; inset: 0; display: grid; place-items: center; pointer-events: none; background: rgba(246,238,231,.9); }
.ribbon-product__spinner[hidden] { display: none; }
.ribbon-product__spinner::after { width: 27px; height: 27px; border: 3px solid rgba(196,30,80,.2); border-top-color: var(--ribbon-pink); border-radius: 50%; content: ""; animation: ribbon-spin .75s linear infinite; }
@keyframes ribbon-spin { to { transform: rotate(360deg); } }
.ribbon-product__variants { display: flex; gap: 5px; overflow-x: auto; margin-top: 7px; scrollbar-width: none; }
.ribbon-product__variants button { width: 38px; height: 38px; flex: 0 0 38px; overflow: hidden; border: 1px solid #e8d7cf; border-radius: 5px; background: #fff; padding: 0; }
.ribbon-product__variants button[aria-pressed="true"] { border-color: var(--ribbon-pink); box-shadow: inset 0 0 0 1px var(--ribbon-pink); }
.ribbon-product__variants img { width: 100%; height: 100%; object-fit: contain; }
