/* Coffrets & lots — cartes, fiche, sélecteur, groupes au panier (app bundles). */
.ns-w-80 { width: 80px; }
.ns-bhero { padding: 1.6rem 0 .4rem; }
.ns-bhero-title, .ns-bdetail-title { font-family: 'Playfair Display', Georgia, serif; }
.ns-bhero-title { font-size: clamp(1.8rem, 4vw, 2.6rem); }

.ns-bcard {
    display: flex; flex-direction: column; background: var(--ns-surface, #fff); border: 1px solid var(--ns-border, #e9ecef);
    border-radius: 20px; overflow: hidden; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.ns-bcard:hover { transform: translateY(-4px); border-color: var(--naydor-gold); box-shadow: 0 16px 36px rgba(25,42,108,.12); }
.ns-bcard-media { position: relative; display: block; aspect-ratio: 4 / 3; background: var(--ns-surface-2, #fbfbfd); }
.ns-bcard-media img { width: 100%; height: 100%; object-fit: cover; }
.ns-bcard-ph { display: flex; width: 100%; height: 100%; min-height: 160px; align-items: center; justify-content: center;
    font-size: 2.6rem; color: var(--naydor-gold); background: linear-gradient(135deg, rgba(226,138,59,.10), rgba(25,42,108,.08)); }
.ns-bcard-flag { position: absolute; top: .7rem; left: .7rem; background: var(--naydor-green, #2E7E8C); color: #fff;
    border-radius: 999px; padding: .2rem .65rem; font-size: .8rem; font-weight: 700; }
.ns-bcard-body { padding: 1rem 1.1rem 1.2rem; display: flex; flex-direction: column; flex: 1 1 auto; }
.ns-bcard-kind { font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; color: var(--naydor-gold); font-weight: 700; }
.ns-bcard-title { font-size: 1.05rem; margin: .3rem 0 .4rem; }
.ns-bcard-title a { color: inherit; text-decoration: none; }
.ns-bcard-title a:hover { color: var(--naydor-gold); }
.ns-bcard-price { font-weight: 700; font-size: 1.1rem; margin-top: auto; }
.ns-bcard-save { font-size: .82rem; color: var(--naydor-green, #2E7E8C); font-weight: 600; }

.ns-bdetail-media { border-radius: 24px; overflow: hidden; background: var(--ns-surface-2, #fbfbfd); aspect-ratio: 16 / 10; }
.ns-bdetail-media img { width: 100%; height: 100%; object-fit: cover; }
.ns-bitems .ns-bitem { display: flex; align-items: center; gap: .9rem; padding: .7rem; border: 1px solid var(--ns-border, #e9ecef);
    border-radius: 16px; margin-bottom: .6rem; transition: border-color .2s ease, background .2s ease; }
.ns-bitem.is-picked { border-color: var(--naydor-gold); background: rgba(226,138,59,.06); }
.ns-bitem.is-off { opacity: .55; }
.ns-bitem-thumb img { width: 64px; height: 64px; object-fit: cover; border-radius: 12px; }
.ns-bitem-info { flex: 1 1 auto; min-width: 0; }
.ns-bpick-counter { display: inline-block; border-radius: 999px; padding: .1rem .6rem; font-size: .85rem;
    background: var(--ns-surface-2, #f1f3f5); border: 1px solid var(--ns-border, #dee2e6); }
.ns-bpick-counter.is-full { background: var(--naydor-gold); border-color: var(--naydor-gold); color: #fff; }

/* Panier : groupe de coffret */
.ns-bgroup { border: 1px solid var(--naydor-gold); border-radius: 18px; padding: .9rem 1rem; margin-bottom: 1rem;
    background: linear-gradient(135deg, rgba(226,138,59,.06), transparent 60%); }
.ns-bgroup-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .6rem; }
.ns-bgroup-title { font-weight: 700; }
.ns-bgroup-title i { color: var(--naydor-gold); }
.ns-bgroup-items { list-style: none; padding: 0; margin: .6rem 0 0; font-size: .9rem; }
.ns-bgroup-items li { display: flex; justify-content: space-between; gap: .5rem; padding: .2rem 0; border-top: 1px dashed var(--ns-border, #e9ecef); }
.ns-bgroup-actions { display: flex; gap: .4rem; align-items: center; }
.ns-bgroup-actions input { width: 70px; }
.ns-bline-tag { display: inline-block; font-size: .72rem; border-radius: 999px; padding: .05rem .5rem; margin-left: .25rem;
    background: rgba(226,138,59,.12); color: var(--naydor-dark-gold, #C56F26); font-weight: 600; }
.ns-bhint { border: 1px dashed var(--naydor-gold); border-radius: 14px; padding: .6rem .8rem; font-size: .9rem; }

/* Mosaïque des photos produits : coffret sans image propre (l'image du coffret reste prioritaire). */
.ns-bdetail-media { position: relative; }
/* Hors flux : la taille des photos ne doit jamais agrandir le cadre (cartes de même hauteur). */
.ns-bmosaic { position: absolute; inset: 0; display: grid; gap: 3px; background: #fff; }
.ns-bmosaic img { display: block; width: 100%; height: 100%; min-width: 0; min-height: 0; object-fit: cover; }
.ns-bmosaic-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: minmax(0, 1fr); }
.ns-bmosaic-3 { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); grid-template-rows: repeat(2, minmax(0, 1fr)); }
.ns-bmosaic-3 img:first-child { grid-row: 1 / 3; }
.ns-bmosaic-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(0, 1fr)); }
