.iki-rec-shell { margin: 2rem auto; max-width: 100%; min-width: 0; width: 100%; }
.iki-product-details-stack > .iki-rec-shell { margin: 0; max-width: 100%; min-width: 0; }
.iki-rec-panel { background: linear-gradient(135deg, #fff 0%, #fff8f6 100%); border: 1px solid #e8ebf0; border-radius: var(--iki-radius-feature, .5rem); box-shadow: 0 16px 40px rgba(16,24,40,.06); box-sizing: border-box; max-width: 100%; min-width: 0; overflow: hidden; padding: 1.5rem; }
.iki-rec-heading { align-items: flex-end; display: flex; gap: 1rem; justify-content: space-between; margin-bottom: 1.25rem; }
.iki-rec-heading h2 { color: #111827; font-size: clamp(1.35rem, 2.2vw, 1.85rem); font-weight: 750; line-height: 1.15; margin: .25rem 0 0; }
.iki-rec-kicker { color: #ef6b5f; font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.iki-rec-live { align-items: center; background: #effaf3; border: 1px solid #c9eed5; border-radius: 999px; color: #237a43; display: inline-flex; font-size: .78rem; font-weight: 700; gap: .4rem; padding: .42rem .7rem; white-space: nowrap; }
.iki-rec-live i { background: #48c774; border-radius: 50%; box-shadow: 0 0 0 4px rgba(72,199,116,.14); height: .45rem; width: .45rem; }
.iki-rec-grid { display: grid; gap: 1rem; grid-template-columns: repeat(4,minmax(0,1fr)); }
.iki-rec-carousel { max-width: 100%; min-width: 0; position: relative; }
.iki-rec-carousel.is-active { padding: 0 2.65rem 1.35rem; }
.iki-rec-carousel.is-active .iki-rec-grid { display: flex; overflow-x: auto; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: none; }
.iki-rec-carousel.is-active .iki-rec-grid::-webkit-scrollbar { display: none; }
.iki-rec-carousel.is-active .iki-rec-card { flex: 0 0 calc((100% - 3rem)/4); scroll-snap-align: start; }
.iki-rec-carousel-button { align-items: center; background: #fff; border: 1px solid #d9dee7; border-radius: 50%; box-shadow: 0 8px 20px rgba(16,24,40,.12); color: #263143; cursor: pointer; display: flex; font-size: 1.8rem; height: 2.35rem; justify-content: center; position: absolute; top: 46%; transform: translateY(-50%); width: 2.35rem; z-index: 3; }
.iki-rec-carousel-button:disabled { cursor: default; opacity: .32; }
.iki-rec-carousel-prev { left: 0; }
.iki-rec-carousel-next { right: 0; }
.iki-rec-card { background: #fff; border: 1px solid #e8ebf0; border-radius: var(--iki-radius-feature, .5rem); display: flex; flex-direction: column; min-width: 0; overflow: hidden; transition: transform .2s ease,box-shadow .2s ease,border-color .2s ease; }
.iki-rec-card:hover { border-color: #f2b4ae; box-shadow: 0 14px 28px rgba(16,24,40,.09); }
.iki-rec-image { aspect-ratio: 1/1; background: #fff; display: block; overflow: hidden; }
.iki-rec-image img { height: 100%; object-fit: contain; transition: transform .25s ease; width: 100%; }
.products-grid .product-item-photo,.products-list .product-item-photo { background-color: #fff !important; }
.iki-rec-card:hover .iki-rec-image img { transform: scale(1.025); }
.iki-rec-card-body { display: flex; flex: 1; flex-direction: column; padding: 1rem; }
.iki-rec-reason { color: #ef6b5f; font-size: .72rem; font-weight: 800; letter-spacing: .035em; margin-bottom: .45rem; text-transform: uppercase; }
.iki-rec-name { color: #171b24; display: -webkit-box; font-size: .94rem; font-weight: 650; line-height: 1.35; overflow: hidden; text-decoration: none; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.iki-rec-card-bottom { align-items: center; display: flex; gap: .65rem; justify-content: space-between; margin-top: auto; padding-top: 1rem; }
.iki-rec-price { color: #111827; font-size: 1.05rem; white-space: nowrap; }
.iki-rec-add,.iki-rec-primary { align-items: center; background: #ef6b5f; border: 0; border-radius: var(--iki-radius-panel, .375rem); color: #fff; cursor: pointer; display: inline-flex; font-size: .84rem; font-weight: 750; justify-content: center; padding: .68rem .9rem; text-align: center; text-decoration: none; transition: background .2s ease,transform .2s ease; }
.iki-rec-add:hover,.iki-rec-primary:hover { background: #dc584d; transform: translateY(-1px); }
.iki-rec-dialog { background: #f8f9fb; border: 0; border-radius: var(--iki-radius-feature, .5rem); box-shadow: 0 26px 80px rgba(0,0,0,.24); max-height: min(90vh,780px); max-width: min(1050px,calc(100vw - 2rem)); overflow: auto; padding: 1.25rem; width: 100%; }
.iki-rec-dialog::backdrop { background: rgba(9,14,25,.72); backdrop-filter: blur(5px); }
.iki-rec-dialog-close { align-items: center; background: #fff; border: 1px solid #dde2ea; border-radius: 50%; color: #374151; cursor: pointer; display: flex; font-size: 1.55rem; height: 2.4rem; justify-content: center; margin-left: auto; position: sticky; right: 0; top: 0; width: 2.4rem; z-index: 2; }
.iki-rec-dialog .iki-rec-panel { border: 0; box-shadow: none; padding: .25rem; }
.iki-rec-dialog-actions { display: flex; gap: .75rem; justify-content: flex-end; padding: 1.25rem .25rem .25rem; }
.iki-rec-secondary { align-items: center; background: #fff; border: 1px solid #cfd5df; border-radius: var(--iki-radius-panel, .375rem); color: #263143; cursor: pointer; display: inline-flex; font-weight: 700; justify-content: center; padding: .7rem 1rem; text-align: center; text-decoration: none; }
@media (max-width: 1024px) {
    .iki-rec-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .iki-rec-carousel.is-active .iki-rec-card { flex-basis: calc((100% - 1rem)/2); }
}
@media (max-width: 600px) {
    .iki-rec-panel { border-radius: var(--iki-radius-feature, .5rem); padding: 1rem; }
    .iki-rec-grid { display: flex; margin-right: -1rem; overflow-x: auto; padding-bottom: .5rem; scroll-snap-type: x mandatory; }
    .iki-rec-card { flex: 0 0 78%; scroll-snap-align: start; }
    .iki-rec-heading { align-items: flex-start; flex-direction: column; }
    .iki-rec-dialog { border-radius: var(--iki-radius-feature, .5rem); max-width: calc(100vw - 1rem); padding: .75rem; }
    .iki-rec-dialog .iki-rec-panel { padding: 0; }
    .iki-rec-dialog .iki-rec-heading { padding-right: .25rem; }
    .iki-rec-dialog .iki-rec-card { flex-basis: 82%; }
    .iki-rec-carousel.is-active { padding: 0 0 1.35rem; }
    .iki-rec-carousel.is-active .iki-rec-grid { -webkit-overflow-scrolling: touch; margin-right: 0; overscroll-behavior-x: contain; scroll-padding-left: .1rem; }
    .iki-rec-carousel.is-active .iki-rec-card { flex-basis: 82%; }
    .iki-rec-carousel-button { display: none; }
    .iki-rec-dialog-actions { background: #f8f9fb; bottom: 0; flex-direction: column-reverse; padding: .75rem .25rem .25rem; position: sticky; z-index: 4; }
    .iki-rec-dialog-actions>* { box-sizing: border-box; min-height: 3rem; width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .iki-rec-card,.iki-rec-image img,.iki-rec-add,.iki-rec-primary { transition: none; } }
