/* ===== Vcraft — Boutique (Tebex) ===== */
/* =========================================================
   Boutique (Tebex)
   ========================================================= */
.vc-btn-sm { min-height: 36px; padding: 0 12px; font-size: 14px; }
.vc-store-label { display: block; font-size: 12px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: var(--vc-faint); }

.vc-store-bar {
    display: flex; flex-direction: column; gap: 12px; margin-bottom: 16px; padding: 16px;
    background: var(--vc-surface); border: 1px solid var(--vc-line); border-radius: 12px;
}
.vc-store-buyer { display: flex; align-items: center; gap: 12px; min-width: 0; flex: 1; }
.vc-store-buyer-text { flex: 1; min-width: 0; }
.vc-store-buyer-text strong { display: block; font-size: 18px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vc-store-login { width: 100%; }
.vc-store-login .vc-store-label { color: var(--vc-gold); margin-bottom: 6px; }
.vc-store-login-row { display: flex; gap: 8px; }
.vc-store-login input, .vc-cart-code input, .vc-cart-qty input {
    min-height: 44px; padding: 0 12px; border-radius: 8px; border: 1px solid var(--vc-line-2);
    background: var(--vc-bg); color: var(--vc-text); font: inherit; min-width: 0;
}
.vc-store-login input { flex: 1; }
.vc-store-login small { display: block; margin-top: 6px; color: var(--vc-faint); font-size: 13px; }
.vc-store-login small strong { color: var(--vc-text); }
.vc-store-cart { gap: 8px; }
.vc-store-count {
    min-width: 24px; height: 24px; padding: 0 6px; border-radius: 999px; display: inline-grid; place-items: center;
    background: var(--vc-bg); color: var(--vc-text); font-size: 13px;
}
.vc-store-cats { margin-bottom: 20px; }
.vc-store-cats a[role=tab] {
    flex: none; display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border-radius: 999px;
    border: 1px solid var(--vc-line-2); color: var(--vc-muted); font-weight: 700; font-size: 15px;
}
.vc-store-cats a[role=tab]:hover { color: var(--vc-text); background: var(--vc-surface); }
.vc-store-cats a[aria-selected=true] { background: var(--vc-grass); border-color: var(--vc-grass); color: var(--vc-bg); }

.vc-store-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.vc-pack { position: relative; padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.vc-pack.is-in-cart { border-color: var(--vc-grass); }
.vc-pack-banner {
    position: absolute; top: 10px; left: 10px; z-index: 1; padding: 3px 10px; border-radius: 999px;
    font-size: 12px; font-weight: 700; text-transform: uppercase;
}
.vc-pack-img { aspect-ratio: 1; background: var(--vc-bg); display: grid; place-items: center; overflow: hidden; }
.vc-pack-img img { width: 100%; height: 100%; object-fit: cover; }
.vc-pack-body { padding: 12px; display: flex; flex-direction: column; gap: 4px; flex: 1; }
.vc-pack-name { margin: 0; font-size: 16px; font-weight: 700; line-height: 1.3; }
.vc-pack-price { margin: 0 0 8px; font-family: var(--vc-pixel); font-size: 24px; color: var(--vc-gold); }
.vc-pack-price del { font-family: 'Figtree', sans-serif; font-size: 14px; color: var(--vc-faint); margin-right: 4px; }
.vc-pack-btn { margin-top: auto; width: 100%; white-space: normal; }

.vc-store-catcard { display: flex; flex-direction: column; gap: 6px; color: var(--vc-text); }
.vc-store-catcard:hover { border-color: var(--vc-grass); color: var(--vc-text); }
.vc-store-catcard strong { font-size: 20px; }
.vc-store-catcard span { color: var(--vc-muted); }
.vc-store-home { margin-bottom: 16px; }

.vc-store-trust {
    list-style: none; margin: 24px 0 0; padding: 16px; display: grid; gap: 10px;
    border: 1px solid var(--vc-line); border-radius: 12px; color: var(--vc-muted); font-size: 15px;
}
.vc-store-trust i { color: var(--vc-grass); margin-right: 6px; }
.vc-store-recent { margin-top: 16px; }
.vc-store-recent-list { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.vc-store-recent-list span {
    display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px 4px 4px;
    border-radius: 999px; background: var(--vc-surface); border: 1px solid var(--vc-line); font-size: 14px;
}

/* Fenêtres (détail d'une offre, pseudo) */
.vc-modal .modal-content { background: var(--vc-surface); border: 1px solid var(--vc-line); border-radius: 14px; color: var(--vc-text); }
.vc-modal .modal-header, .vc-modal .modal-footer { border-color: var(--vc-line); }
.vc-modal .modal-title { font-family: var(--vc-pixel); font-size: 26px; font-weight: 700; }
.vc-modal .form-control { min-height: 46px; }
.vc-pack-modal-img { text-align: center; margin-bottom: 16px; }
.vc-pack-modal-img img { max-height: 220px; max-width: 100%; border-radius: 10px; }
.vc-pack-desc { color: var(--vc-muted); }
.vc-pack-desc h2:empty, .vc-pack-desc h1:empty, .vc-pack-desc hr:first-child { display: none; }
.vc-pack-desc h1, .vc-pack-desc h2, .vc-pack-desc h3 { font-size: 18px; font-weight: 700; color: var(--vc-text); margin: 18px 0 8px; }
.vc-pack-desc blockquote { margin: 0 0 12px; padding: 10px 14px; border-left: 3px solid var(--vc-gold); background: var(--vc-bg); border-radius: 0 8px 8px 0; }
.vc-pack-desc blockquote p { margin: 0; }
.vc-pack-desc ul { padding-left: 18px; }
.vc-pack-desc li p { margin: 0; }
.vc-pack-desc li + li { margin-top: 6px; }
.vc-pack-desc strong { color: var(--vc-text); }
.vc-pack-desc hr { border-color: var(--vc-line); opacity: 1; }
.vc-pack-desc code { color: var(--vc-gold); background: var(--vc-bg); padding: 1px 6px; border-radius: 4px; }
.vc-pack-modal-footer { justify-content: space-between; gap: 12px; }
.vc-pack-modal-price { display: flex; flex-direction: column; }
.vc-pack-modal-price #modal-pkg-price-display { font-family: var(--vc-pixel); font-size: 28px; color: var(--vc-gold); line-height: 1.1; }
.vc-pack-modal-actions { display: flex; flex-wrap: wrap; gap: 8px; }

/* Panier */
.vc-cart { display: grid; gap: 16px; }
.vc-cart-items { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.vc-cart-item {
    display: grid; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "img info remove" "img qty line";
    gap: 8px 12px; align-items: center; padding: 12px;
}
.vc-cart-img { grid-area: img; width: 64px; height: 64px; object-fit: cover; border-radius: 8px; }
.vc-cart-info { grid-area: info; min-width: 0; display: flex; flex-direction: column; }
.vc-cart-info strong { overflow-wrap: anywhere; }
.vc-cart-unit { font-size: 14px; color: var(--vc-faint); }
.vc-cart-qty { grid-area: qty; }
.vc-cart-qty input { width: 76px; text-align: center; }
.vc-cart-line { grid-area: line; font-size: 18px; color: var(--vc-gold); text-align: right; }
.vc-cart-remove {
    grid-area: remove; justify-self: end; width: 40px; height: 40px; border-radius: 8px;
    border: 1px solid var(--vc-line-2); background: transparent; color: var(--vc-muted);
}
.vc-cart-remove:hover { color: #ff6b61; border-color: #6b2323; }
.vc-cart-links { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 4px; }
.vc-cart-clear { background: none; border: 0; color: var(--vc-faint); text-decoration: underline; padding: 8px 0; font: inherit; font-size: 14px; }
.vc-cart-clear:hover { color: #ff6b61; }
.vc-cart-summary { display: flex; flex-direction: column; gap: 16px; }
.vc-cart-total { display: flex; justify-content: space-between; align-items: baseline; padding-top: 4px; border-top: 1px solid var(--vc-line); }
.vc-cart-total strong { font-family: var(--vc-pixel); font-size: 32px; color: var(--vc-gold); }
.vc-cart-code { margin-bottom: 12px; }
.vc-cart-code summary { cursor: pointer; color: var(--vc-muted); font-size: 15px; padding: 4px 0; }
.vc-cart-code input { width: 100%; margin-top: 8px; }
.vc-cart-pay { width: 100%; }
.vc-cart-summary .vc-hint { margin: 0; font-size: 14px; }
.vc-cart-empty { text-align: center; padding: 40px 20px; }
.vc-cart-empty i { font-size: 40px; color: var(--vc-faint); }
.vc-cart-empty p { color: var(--vc-muted); margin: 8px 0 16px; }

@media (min-width: 576px) {
    .vc-store-bar { flex-direction: row; align-items: center; }
    .vc-store-trust { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .vc-cart-item { grid-template-columns: auto minmax(0, 1fr) auto auto auto; grid-template-areas: "img info qty line remove"; }
    .vc-cart-line { min-width: 90px; }
}
@media (min-width: 768px) {
    .vc-store-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
    .vc-pack-body { padding: 16px; }
    .vc-pack-name { font-size: 18px; }
    .vc-pack-price { font-size: 28px; }
}
@media (min-width: 992px) {
    .vc-store-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .vc-store-trust { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .vc-cart { grid-template-columns: minmax(0, 1fr) 340px; align-items: start; }
    .vc-cart-summary { position: sticky; top: 96px; }
}
.vc-pack-desc > h2:empty + hr, .vc-pack-desc > h1:empty + hr, .vc-pack-desc > h3:empty + hr { display: none; }
.vc-pack-desc > :first-child:not(:empty) { margin-top: 0; }

/* Prix : police normale, plus lisible */
.vc-pack-price, .vc-pack-modal-price #modal-pkg-price-display, .vc-cart-total strong, .vc-cart-line {
    font-family: 'Figtree', system-ui, sans-serif; font-weight: 800; letter-spacing: 0;
}
.vc-pack-price { font-size: 22px; }
.vc-pack-modal-price #modal-pkg-price-display { font-size: 26px; }
.vc-cart-total strong { font-size: 28px; }
@media (min-width: 768px) { .vc-pack-price { font-size: 24px; } }

.vc-store-trust { grid-template-columns: 1fr; }
@media (min-width: 576px) { .vc-store-trust { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 992px) { .vc-store-trust { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
