/*
 * OG e-Commerce — woocommerce.css
 * Boutique 5 colonnes, sidebar accordéon élégante, bannière fallback.
 */

/* ════════════════════════════════════════════════════════════════════════
   1. BANNIÈRE BOUTIQUE — Fallback élégant sans image
   ════════════════════════════════════════════════════════════════════════ */
.og-shop-banner {
    min-height: 260px;
    background:
        radial-gradient(ellipse at 20% 50%, rgba(204,0,0,0.15) 0%, transparent 60%),
        radial-gradient(ellipse at 80% 20%, rgba(255,255,255,0.04) 0%, transparent 50%),
        linear-gradient(135deg, #0d0d0d 0%, #1a1a1a 40%, #2a1a1a 70%, #1a0808 100%);
    position: relative;
    overflow: hidden;
}

/* Motif géométrique décoratif */
.og-shop-banner::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        repeating-linear-gradient(
            45deg,
            transparent,
            transparent 40px,
            rgba(204,0,0,0.03) 40px,
            rgba(204,0,0,0.03) 41px
        );
    pointer-events: none;
}

/* Cercle déco droite */
.og-shop-banner::after {
    content: '';
    position: absolute;
    right: -120px;
    top: -120px;
    width: 500px;
    height: 500px;
    border-radius: 50%;
    border: 1px solid rgba(204,0,0,0.12);
    box-shadow: 0 0 0 60px rgba(204,0,0,0.04),
                0 0 0 120px rgba(204,0,0,0.02);
    pointer-events: none;
}

/* Ligne accent bas */
.og-shop-banner .og-page-banner__overlay {
    background: linear-gradient(
        135deg,
        rgba(0,0,0,0.3) 0%,
        rgba(0,0,0,0.1) 100%
    );
}

/* ════════════════════════════════════════════════════════════════════════
   2. LAYOUT BOUTIQUE
   ════════════════════════════════════════════════════════════════════════ */
.og-shop-wrap { padding-block: var(--ci-space-xl) var(--ci-space-3xl); }

.og-shop-layout {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: var(--ci-space-xl);
    align-items: flex-start;
    margin-top: var(--ci-space-xl);
}

/* ════════════════════════════════════════════════════════════════════════
   3. SIDEBAR CATÉGORIES — Design accordéon élégant
   ════════════════════════════════════════════════════════════════════════ */
.og-shop-sidebar__inner {
    position: sticky;
    top: 90px;
    display: flex;
    flex-direction: column;
    gap: var(--ci-space-md);
}

.og-shop-filter {
    background: #fff;
    border: 1px solid var(--ci-gray-200);
    border-radius: var(--ci-radius-xl);
    padding: var(--ci-space-lg);
    overflow: hidden;
}

.og-shop-filter__title {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--ci-text-muted);
    margin-bottom: var(--ci-space-md);
    display: flex;
    align-items: center;
    gap: 8px;
    padding-bottom: var(--ci-space-sm);
    border-bottom: 1px solid var(--ci-gray-100);
}
.og-shop-filter__title i { color: var(--ci-red); font-size: 0.8rem; }

/* Liste catégories — reset COMPLET des styles WC natifs */
.og-shop-filter .product-categories,
.og-shop-filter .product-categories li,
.og-shop-filter .product-categories ul {
    list-style: none !important;
    list-style-type: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
.og-shop-filter .product-categories > li::before,
.og-shop-filter .product-categories > li::marker,
.og-shop-filter .product-categories li::before,
.og-shop-filter .product-categories li::marker {
    display: none !important;
    content: none !important;
}
.og-shop-filter .product-categories {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

/* Chaque item catégorie */
.og-shop-filter .product-categories > li {
    position: relative;
    border-radius: var(--ci-radius);
    overflow: visible;
}

/* Lien catégorie mère */
.og-shop-filter .product-categories > li > a {
    display: flex;
    align-items: center;
    padding: 8px 10px;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--ci-text);
    border-radius: var(--ci-radius);
    text-decoration: none;
    transition: background 0.18s, color 0.18s, padding-left 0.18s;
    position: relative;
    z-index: 1;
}

.og-shop-filter .product-categories > li > a:hover {
    background: var(--ci-red-100);
    color: var(--ci-red);
    padding-left: 14px;
}

/* Item actif */
.og-shop-filter .product-categories > li.current-cat > a,
.og-shop-filter .product-categories > li.current-cat-parent > a,
.og-shop-filter .product-categories > li.og-cat-active > a {
    background: var(--ci-red-100);
    color: var(--ci-red);
    font-weight: 700;
}

/* Bordure gauche sur actif */
.og-shop-filter .product-categories > li.current-cat > a::before,
.og-shop-filter .product-categories > li.current-cat-parent > a::before,
.og-shop-filter .product-categories > li.og-cat-active > a::before {
    content: '';
    position: absolute;
    left: 0; top: 20%; bottom: 20%;
    width: 3px;
    background: var(--ci-red);
    border-radius: 0 3px 3px 0;
}

/* Compteur — badge pill discret */
.og-shop-filter .product-categories > li > a .count,
.og-shop-filter .product-categories > li .count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 18px;
    padding: 0 5px;
    background: var(--ci-gray-100);
    color: var(--ci-text-muted);
    font-size: 0.6875rem;
    font-weight: 700;
    border-radius: var(--ci-radius-full);
    margin-left: auto;
    flex-shrink: 0;
}
.og-shop-filter .product-categories > li.current-cat > a .count,
.og-shop-filter .product-categories > li.og-cat-active > a .count {
    background: var(--ci-red);
    color: #fff;
}

/* Bouton flèche accordéon */
.og-cat-arrow {
    position: absolute;
    right: 6px;
    top: 50%;
    transform: translateY(-50%);
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: none;
    border-radius: var(--ci-radius-sm);
    color: var(--ci-text-muted);
    font-size: 0.6rem;
    cursor: pointer;
    transition: background 0.18s, color 0.18s, transform 0.28s ease;
    z-index: 2;
    padding: 0;
}
.og-cat-arrow:hover { background: var(--ci-gray-100); color: var(--ci-red); }

/* Flèche rotée quand ouvert */
.og-cat-open > .og-cat-arrow { transform: translateY(-50%) rotate(-180deg); color: var(--ci-red); }
.og-cat-open > .og-cat-arrow i { color: var(--ci-red); }

/* Ajuster le padding du lien si flèche présente */
.og-shop-filter .product-categories > li.cat-parent > a { padding-right: 36px; }

/* Sous-catégories */
.og-shop-filter .product-categories .children {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 0 4px 0 !important;
    display: flex;
    flex-direction: column;
    gap: 1px;
}
.og-shop-filter .product-categories .children li a {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 10px 6px 20px;
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--ci-text-light);
    border-radius: var(--ci-radius);
    text-decoration: none;
    transition: background 0.15s, color 0.15s, padding-left 0.15s;
}
.og-shop-filter .product-categories .children li a::before {
    content: '—';
    font-size: 0.6rem;
    color: var(--ci-red);
    flex-shrink: 0;
    opacity: 0.5;
}
.og-shop-filter .product-categories .children li a:hover {
    background: var(--ci-gray-100);
    color: var(--ci-red);
    padding-left: 24px;
}
.og-shop-filter .product-categories .children li a:hover::before { opacity: 1; }
.og-shop-filter .product-categories .children li.current-cat a {
    color: var(--ci-red);
    font-weight: 700;
    background: var(--ci-red-100);
}

/* CTA devis sidebar */
.og-shop-sidebar__cta {
    background: linear-gradient(135deg, var(--ci-red-100) 0%, rgba(204,0,0,0.05) 100%);
    border-color: rgba(204,0,0,0.15);
}
.og-shop-sidebar__cta p {
    font-size: 0.8125rem;
    color: var(--ci-red);
    font-weight: 600;
    margin-bottom: var(--ci-space-sm);
    line-height: 1.4;
}

/* ════════════════════════════════════════════════════════════════════════
   4. TOOLBAR
   ════════════════════════════════════════════════════════════════════════ */
.og-shop-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--ci-space-lg);
    padding: 10px 16px;
    background: #fff;
    border: 1px solid var(--ci-gray-200);
    border-radius: var(--ci-radius-lg);
    flex-wrap: wrap;
    gap: var(--ci-space-sm);
}
.og-shop-count { font-size: 0.8125rem; color: var(--ci-text-light); font-weight: 500; }
.woocommerce-ordering select {
    padding: 7px 28px 7px 10px;
    border: 1.5px solid var(--ci-gray-200);
    border-radius: var(--ci-radius);
    font-size: 0.8125rem; color: var(--ci-text); background: #fff;
    cursor: pointer; appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24'%3E%3Cpath fill='%236B7280' d='m7 10 5 5 5-5z'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 8px center;
    transition: border-color 0.2s;
}
.woocommerce-ordering select:focus { border-color: var(--ci-red); outline: none; }

/* ════════════════════════════════════════════════════════════════════════
   5. GRILLE PRODUITS — 5 colonnes forcées
   ════════════════════════════════════════════════════════════════════════ */
.woocommerce ul.products,
.woocommerce-page ul.products,
.woocommerce .products,
ul.products {
    display: grid !important;
    grid-template-columns: repeat(5, 1fr) !important;
    gap: 14px !important;
    list-style: none !important;
    margin: 0 0 var(--ci-space-xl) !important;
    padding: 0 !important;
    float: none !important;
    width: 100% !important;
}

/* ── Carte produit — compacte et élégante ────────────────────────────── */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
    background: #fff;
    border-radius: var(--ci-radius-lg);
    border: 1px solid var(--ci-gray-200);
    overflow: hidden;
    display: flex !important;
    flex-direction: column !important;
    position: relative;
    margin: 0 !important;
    opacity: 0;
    transform: translateY(16px);
    transition: box-shadow 0.25s ease, transform 0.25s ease, border-color 0.25s ease,
                opacity 0.45s ease !important;
}
.woocommerce ul.products li.product.og-revealed {
    opacity: 1 !important;
    transform: translateY(0) !important;
}
.woocommerce ul.products li.product:hover {
    box-shadow: 0 8px 32px rgba(0,0,0,0.11) !important;
    transform: translateY(-4px) !important;
    border-color: var(--ci-gray-300) !important;
}

/* Zone image */
.woocommerce ul.products li.product a.woocommerce-loop-product__link {
    display: block; overflow: hidden;
    background: var(--ci-gray-100);
    aspect-ratio: 1 / 1;
}
.woocommerce ul.products li.product a img {
    width: 100% !important; height: 100% !important;
    object-fit: contain !important; padding: 0.75rem !important;
    transition: transform 0.38s ease !important;
    background: var(--ci-gray-100) !important;
}
.woocommerce ul.products li.product:hover a img { transform: scale(1.07) !important; }

/* Titre — compact */
.woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-size: 0.8rem !important;
    font-weight: 600 !important;
    color: var(--ci-text) !important;
    padding: 0.6rem 0.75rem 0.2rem !important;
    margin: 0 !important;
    line-height: 1.35 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    min-height: 2.4em;
}

/* Prix — forcé visible */
.woocommerce ul.products li.product .price,
.woocommerce-page ul.products li.product .price,
ul.products li.product .price {
    display: flex !important;
    align-items: baseline !important;
    gap: 4px !important;
    padding: 0.1rem 0.75rem 0.5rem !important;
    font-size: 0.9375rem !important;
    font-weight: 800 !important;
    color: var(--ci-red) !important;
    flex-wrap: wrap !important;
    visibility: visible !important;
    opacity: 1 !important;
}
.woocommerce ul.products li.product .price del,
ul.products li.product .price del {
    font-size: 0.7rem !important;
    font-weight: 400 !important;
    color: var(--ci-text-muted) !important;
    text-decoration: line-through !important;
    visibility: visible !important;
    opacity: 0.7 !important;
}
.woocommerce ul.products li.product .price ins,
ul.products li.product .price ins {
    text-decoration: none !important;
    color: var(--ci-red) !important;
    font-weight: 800 !important;
}
.woocommerce ul.products li.product .price ins .amount,
ul.products li.product .price ins .amount {
    color: var(--ci-red) !important;
    font-weight: 800 !important;
}

/* Actions boutons — Voir au-dessus, Ajouter au panier en dessous */
.og-ec-card-actions {
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: 0 0.625rem 0.75rem;
    margin-top: auto;
}

/* Bouton "Voir le produit" — ligne du haut */
.og-ec-card-actions .og-ec-btn--outline {
    width: 100%;
    font-size: 0.75rem;
    padding: 0.4rem 0.5rem;
    border-radius: var(--ci-radius);
    text-align: center;
    justify-content: center;
}

/* Bouton "Ajouter au panier + icône" — ligne du bas */
.og-ec-card-actions .button.add_to_cart_button {
    width: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    padding: 0.45rem 0.5rem !important;
    background: var(--ci-red) !important;
    color: #fff !important;
    font-family: var(--ci-font) !important;
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    border-radius: var(--ci-radius) !important;
    border: 2px solid var(--ci-red) !important;
    transition: background 0.2s !important;
    cursor: pointer !important;
    white-space: nowrap !important;
    position: relative !important;
}

/* Icône + à la fin du bouton Ajouter au panier */
.og-ec-card-actions .button.add_to_cart_button::after {
    content: '\f067';
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    font-size: 0.65rem;
    margin-left: 2px;
    opacity: 0.9;
}

.og-ec-card-actions .button.add_to_cart_button:hover {
    background: var(--ci-red-hover) !important;
    border-color: var(--ci-red-hover) !important;
}
.og-ec-card-actions .added_to_cart { display: none !important; }

/* Badge sale WC */
.woocommerce span.onsale {
    background: #f59e0b !important; color: #fff !important;
    font-size: 0.65rem !important; font-weight: 700 !important;
    border-radius: var(--ci-radius-full) !important;
    padding: 2px 7px !important; min-height: auto !important; min-width: auto !important;
    line-height: 1.5 !important; top: 8px !important; left: 8px !important; right: auto !important;
}

/* Pagination */
.og-shop-pagination { margin-top: var(--ci-space-xl); }
.woocommerce-pagination ul { display: flex; gap: 5px; list-style: none; justify-content: center; flex-wrap: wrap; }
.woocommerce-pagination ul li a,
.woocommerce-pagination ul li span {
    display: flex; align-items: center; justify-content: center;
    width: 38px; height: 38px; border-radius: var(--ci-radius);
    border: 1.5px solid var(--ci-gray-200);
    font-size: 0.875rem; font-weight: 600; color: var(--ci-text); transition: var(--ci-transition);
}
.woocommerce-pagination ul li a:hover { border-color: var(--ci-red); color: var(--ci-red); }
.woocommerce-pagination ul li span.current { background: var(--ci-red); border-color: var(--ci-red); color: #fff; }

/* Vide */
.og-shop-empty { text-align: center; padding: var(--ci-space-3xl) var(--ci-space-lg); }
.og-shop-empty i { font-size: 3rem; color: var(--ci-gray-light); margin-bottom: var(--ci-space-lg); }
.og-shop-empty h2 { font-size: 1.375rem; margin-bottom: var(--ci-space-sm); }
.og-shop-empty p { max-width: 400px; margin: 0 auto var(--ci-space-xl); font-size: 0.9375rem; }
.og-shop-empty__actions { display: flex; gap: var(--ci-space-md); justify-content: center; flex-wrap: wrap; }

/* ════════════════════════════════════════════════════════════════════════
   6. FICHE PRODUIT
   ════════════════════════════════════════════════════════════════════════ */
.og-single-product-wrap { padding-block: var(--ci-space-2xl) var(--ci-space-3xl); }
.og-product-single__main { display: grid; grid-template-columns: 1fr 1fr; gap: var(--ci-space-3xl); margin-bottom: var(--ci-space-3xl); align-items: flex-start; }
.woocommerce div.product div.images { position: sticky; top: 90px; }
.woocommerce-product-gallery__image img { border-radius: var(--ci-radius-xl); border: 1px solid var(--ci-gray-200); }
.woocommerce-product-gallery__trigger { background: var(--ci-red) !important; border-radius: var(--ci-radius) !important; }
.og-product-single__summary-inner .product_title { font-size: clamp(1.5rem, 3vw, 2rem); font-weight: 800; color: var(--ci-text); margin-bottom: var(--ci-space-sm); line-height: 1.2; }
.woocommerce div.product p.price, .woocommerce div.product span.price { font-size: 1.875rem !important; font-weight: 800 !important; color: var(--ci-red) !important; margin-bottom: var(--ci-space-md) !important; }
.woocommerce div.product p.price del { font-size: 1rem !important; font-weight: 400 !important; color: var(--ci-text-muted) !important; opacity: 0.7; margin-right: 8px; }
.woocommerce div.product .woocommerce-product-details__short-description { font-size: 0.9375rem; color: var(--ci-text-light); line-height: 1.7; margin-bottom: var(--ci-space-lg); }
/* ── Fiche produit : boutons harmonisés ─────────────────────────────── */
.woocommerce div.product form.cart .single_add_to_cart_button,
.woocommerce div.product .single_add_to_cart_button {
    background: var(--ci-red) !important;
    color: #fff !important;
    font-family: var(--ci-font) !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    padding: 0.875rem 1.5rem !important;
    border-radius: var(--ci-radius) !important;
    border: none !important;
    width: 100% !important;
    min-height: 52px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    margin-bottom: var(--ci-space-sm) !important;
    transition: background 0.2s, transform 0.2s !important;
    cursor: pointer !important;
}
.woocommerce div.product form.cart .single_add_to_cart_button:hover {
    background: var(--ci-red-hover) !important;
    transform: translateY(-1px) !important;
}

/* Bouton WhatsApp fiche produit — même taille que add to cart */
.woocommerce div.product .og-ec-btn--whatsapp.og-ec-btn--block,
.og-product-single__summary-inner .og-ec-btn--whatsapp {
    min-height: 52px !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    padding: 0.875rem 1.5rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    width: 100% !important;
    border-radius: var(--ci-radius) !important;
    margin-bottom: var(--ci-space-sm) !important;
}
.woocommerce div.product form.cart .qty { width: 80px; padding: 0.65rem 1rem; border: 1.5px solid var(--ci-gray-200); border-radius: var(--ci-radius); font-size: 1rem; font-weight: 600; text-align: center; }
.woocommerce div.product .product_meta { font-size: 0.875rem; color: var(--ci-text-muted); padding-top: var(--ci-space-md); border-top: 1px solid var(--ci-gray-200); margin-top: var(--ci-space-md); }
.woocommerce div.product .product_meta a { color: var(--ci-red); }
.og-product-single__trust { display: grid; grid-template-columns: 1fr 1fr; gap: var(--ci-space-sm); margin-top: var(--ci-space-lg); padding: var(--ci-space-md); background: var(--ci-gray-100); border-radius: var(--ci-radius-lg); }
.og-product-single__trust-item { display: flex; align-items: center; gap: 8px; font-size: 0.8125rem; color: var(--ci-text-light); font-weight: 500; }
.og-product-single__trust-item i { color: var(--ci-red); font-size: 0.875rem; flex-shrink: 0; }
.og-product-single__tabs { margin-top: var(--ci-space-2xl); }
.woocommerce div.product .woocommerce-tabs ul.tabs { display: flex; gap: 4px; list-style: none; border-bottom: 2px solid var(--ci-gray-200); margin-bottom: var(--ci-space-xl); padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { margin: 0; border: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { display: block; padding: 0.75rem 1.25rem; font-size: 0.9375rem; font-weight: 600; color: var(--ci-text-light); border-radius: var(--ci-radius) var(--ci-radius) 0 0; transition: color 0.2s, background 0.2s; }
.woocommerce div.product .woocommerce-tabs ul.tabs li:hover a { color: var(--ci-red); background: var(--ci-gray-100); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--ci-red); border-bottom: 2px solid var(--ci-red); margin-bottom: -2px; }

/* ════════════════════════════════════════════════════════════════════════
   7. PANIER & CHECKOUT
   ════════════════════════════════════════════════════════════════════════ */
.og-cart-wrap { padding-block: var(--ci-space-2xl) var(--ci-space-3xl); }
.og-cart-layout { display: grid; grid-template-columns: 1fr 360px; gap: var(--ci-space-2xl); align-items: flex-start; }
.og-cart-table { width: 100%; border-collapse: collapse; }
.og-cart-table th { padding: var(--ci-space-md); font-size: 0.8125rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ci-text-muted); border-bottom: 2px solid var(--ci-gray-200); text-align: left; }
.og-cart-table td { padding: var(--ci-space-md); border-bottom: 1px solid var(--ci-gray-100); vertical-align: middle; }
.og-cart-table tr:last-child td { border-bottom: none; }
.og-cart-table__img { width: 80px; }
.og-cart-table__img img { width: 72px; height: 72px; object-fit: contain; border-radius: var(--ci-radius); background: var(--ci-gray-100); padding: 6px; }
.og-cart-item__name { font-weight: 600; color: var(--ci-text); font-size: 0.9375rem; }
.og-cart-remove { display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; background: var(--ci-gray-100); border-radius: 50%; color: var(--ci-text-muted); font-size: 0.875rem; transition: background 0.2s, color 0.2s; }
.og-cart-remove:hover { background: #fef2f2; color: var(--ci-red); }
.og-cart-actions { display: flex; align-items: center; gap: var(--ci-space-md); padding-top: var(--ci-space-md); flex-wrap: wrap; }
.og-cart-coupon { display: flex; align-items: center; gap: var(--ci-space-sm); flex: 1; }
.og-cart-coupon__label { font-size: 0.875rem; font-weight: 600; white-space: nowrap; }
.og-cart-coupon__field { display: flex; gap: 6px; flex: 1; }
.og-cart-coupon__input { flex: 1; padding: 0.6rem 1rem; border: 1.5px solid var(--ci-gray-200); border-radius: var(--ci-radius); font-size: 0.9rem; transition: border-color 0.2s; }
.og-cart-coupon__input:focus { border-color: var(--ci-red); outline: none; }
.og-cart-totals-col { position: sticky; top: 90px; display: flex; flex-direction: column; gap: var(--ci-space-md); }
.og-cart-totals { background: #fff; border: 1px solid var(--ci-gray-200); border-radius: var(--ci-radius-xl); padding: var(--ci-space-xl); }
.og-cart-totals__title { font-size: 1rem; font-weight: 700; margin-bottom: var(--ci-space-lg); padding-bottom: var(--ci-space-md); border-bottom: 1px solid var(--ci-gray-200); }
.cart_totals table { width: 100%; border-collapse: collapse; }
.cart_totals table th, .cart_totals table td { padding: 10px 0; border-bottom: 1px solid var(--ci-gray-100); font-size: 0.9375rem; }
.cart_totals table tr:last-child th, .cart_totals table tr:last-child td { border-bottom: none; font-size: 1.0625rem; font-weight: 800; color: var(--ci-red); padding-top: var(--ci-space-md); }
.cart_totals .wc-proceed-to-checkout { margin-top: var(--ci-space-md); }
.cart_totals .checkout-button { display: flex !important; align-items: center !important; justify-content: center !important; gap: 8px !important; width: 100% !important; padding: 1rem !important; background: var(--ci-red) !important; color: #fff !important; font-family: var(--ci-font) !important; font-size: 1rem !important; font-weight: 700 !important; border-radius: var(--ci-radius) !important; border: none !important; transition: background 0.2s !important; }
.cart_totals .checkout-button:hover { background: var(--ci-red-hover) !important; }
.og-cart-payment-note { display: flex; align-items: flex-start; gap: 8px; padding: var(--ci-space-md); background: var(--ci-gray-100); border-radius: var(--ci-radius); font-size: 0.8125rem; color: var(--ci-text-light); margin-top: var(--ci-space-md); }
.og-cart-payment-note i { color: var(--ci-red); margin-top: 2px; flex-shrink: 0; }
.og-cart-help { background: #fff; border: 1px solid var(--ci-gray-200); border-radius: var(--ci-radius-xl); padding: var(--ci-space-lg); text-align: center; }
.og-cart-help p { font-size: 0.875rem; color: var(--ci-text-light); margin-bottom: var(--ci-space-md); }
.og-cart-empty { text-align: center; padding: var(--ci-space-3xl) var(--ci-space-lg); }
.og-cart-empty__icon { font-size: 3.5rem; color: var(--ci-gray-light); margin-bottom: var(--ci-space-lg); }
.og-cart-empty h2 { font-size: 1.5rem; margin-bottom: var(--ci-space-sm); }
.og-cart-empty p { max-width: 420px; margin: 0 auto var(--ci-space-xl); }
.og-cart-empty__actions { display: flex; gap: var(--ci-space-md); justify-content: center; flex-wrap: wrap; }
.og-checkout-wrap { padding-block: var(--ci-space-2xl) var(--ci-space-3xl); }
.og-checkout-steps { display: flex; align-items: center; margin-bottom: var(--ci-space-2xl); }
.og-checkout-step { display: flex; align-items: center; gap: var(--ci-space-sm); flex: 1; position: relative; padding-right: var(--ci-space-xl); }
.og-checkout-step:not(:last-child)::after { content: ''; position: absolute; right: 0; top: 50%; transform: translateY(-50%); width: calc(var(--ci-space-xl) - 6px); height: 2px; background: var(--ci-gray-200); }
.og-checkout-step--done::after, .og-checkout-step--active::after { background: var(--ci-red); }
.og-checkout-step__num { width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; border-radius: 50%; font-size: 0.875rem; font-weight: 700; background: var(--ci-gray-200); color: var(--ci-text-muted); flex-shrink: 0; }
.og-checkout-step--done .og-checkout-step__num, .og-checkout-step--active .og-checkout-step__num { background: var(--ci-red); color: #fff; }
.og-checkout-layout { display: grid; grid-template-columns: 1fr 420px; gap: var(--ci-space-2xl); align-items: flex-start; }
.og-checkout-section { background: #fff; border: 1px solid var(--ci-gray-200); border-radius: var(--ci-radius-xl); padding: var(--ci-space-xl); margin-bottom: var(--ci-space-lg); }
.og-checkout-section__title { font-size: 1.0625rem; font-weight: 700; margin-bottom: var(--ci-space-sm); display: flex; align-items: center; gap: 10px; }
.og-checkout-section__title i { color: var(--ci-red); }
.og-checkout-section__subtitle { font-size: 0.875rem; color: var(--ci-text-muted); margin-bottom: var(--ci-space-lg); }
.woocommerce-billing-fields { display: grid; grid-template-columns: 1fr 1fr; gap: var(--ci-space-md); }
.woocommerce-billing-fields .form-row { margin: 0 !important; }
.woocommerce-billing-fields .form-row-wide, .woocommerce-billing-fields .form-row-last { grid-column: span 2; }
.woocommerce form .form-row label { font-size: 0.875rem; font-weight: 600; color: var(--ci-text); margin-bottom: 5px; display: block; }
.woocommerce form .form-row label .required { color: var(--ci-red); }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row select { width: 100% !important; padding: 0.7rem 1rem !important; border: 1.5px solid var(--ci-gray-300) !important; border-radius: var(--ci-radius) !important; font-family: var(--ci-font) !important; font-size: 0.9375rem !important; color: var(--ci-text) !important; background: #fff !important; min-height: 48px !important; box-shadow: none !important; transition: border-color 0.2s !important; }
.woocommerce form .form-row input.input-text:focus, .woocommerce form .form-row select:focus { border-color: var(--ci-red) !important; outline: none !important; box-shadow: 0 0 0 3px var(--ci-red-100) !important; }
.og-checkout-order-review { background: #fff; border: 1px solid var(--ci-gray-200); border-radius: var(--ci-radius-xl); padding: var(--ci-space-xl); position: sticky; top: 90px; }
.og-checkout-order-table { width: 100%; border-collapse: collapse; margin-bottom: var(--ci-space-lg); }
.og-checkout-order-table th, .og-checkout-order-table td { padding: 10px 0; border-bottom: 1px solid var(--ci-gray-100); font-size: 0.875rem; }
.og-checkout-order-table__total-row th, .og-checkout-order-table__total-row td { font-size: 1.0625rem; font-weight: 800; color: var(--ci-red); padding-top: var(--ci-space-md); border-top: 2px solid var(--ci-gray-200); border-bottom: none; }
.og-checkout-payment-note { display: flex; gap: 10px; align-items: flex-start; background: var(--ci-gray-100); border-radius: var(--ci-radius); padding: var(--ci-space-md); margin-bottom: var(--ci-space-md); font-size: 0.875rem; }
.og-checkout-payment-note i { color: var(--ci-red); flex-shrink: 0; }
.og-checkout-payment-note strong { display: block; color: var(--ci-text); margin-bottom: 2px; }
.og-checkout-payment-note p { color: var(--ci-text-light); margin: 0; }
#place_order { margin-top: var(--ci-space-sm) !important; }
.og-checkout-wa-fallback { margin-top: var(--ci-space-md); padding: var(--ci-space-lg); background: var(--ci-gray-100); border-radius: var(--ci-radius-lg); text-align: center; }
.og-checkout-wa-fallback p { font-size: 0.875rem; color: var(--ci-text-light); margin-bottom: var(--ci-space-sm); }

/* ════════════════════════════════════════════════════════════════════════
   8. NOTICES WC
   ════════════════════════════════════════════════════════════════════════ */
.woocommerce-message, .woocommerce-error, .woocommerce-info { border-radius: var(--ci-radius-lg) !important; border: none !important; padding: var(--ci-space-md) var(--ci-space-lg) !important; font-size: 0.9375rem !important; display: flex !important; align-items: center !important; gap: var(--ci-space-md) !important; margin-bottom: var(--ci-space-md) !important; }
.woocommerce-message { background: #f0fdf4 !important; color: #166534 !important; }
.woocommerce-error   { background: #fef2f2 !important; color: #991b1b !important; }
.woocommerce-info    { background: #eff6ff !important; color: #1e40af !important; }
.woocommerce-message::before { display: none !important; }
.woocommerce-message a.button, .woocommerce-error a.button, .woocommerce-info a.button { background: var(--ci-red) !important; color: #fff !important; border-radius: var(--ci-radius) !important; padding: 6px 14px !important; font-size: 0.875rem !important; font-weight: 700 !important; border: none !important; margin-left: auto !important; white-space: nowrap; }

/* ════════════════════════════════════════════════════════════════════════
   9. RESPONSIVE
   ════════════════════════════════════════════════════════════════════════ */
@media (max-width: 1280px) {
    .woocommerce ul.products { grid-template-columns: repeat(4, 1fr) !important; }
}
@media (max-width: 1024px) {
    .og-shop-layout { grid-template-columns: 1fr; }
    .og-shop-sidebar { display: none; }
    .woocommerce ul.products { grid-template-columns: repeat(3, 1fr) !important; }
    .og-product-single__main { grid-template-columns: 1fr; gap: var(--ci-space-xl); }
    .og-cart-layout { grid-template-columns: 1fr; }
    .og-cart-totals-col { position: static; }
    .og-checkout-layout { grid-template-columns: 1fr; }
    .og-checkout-order-review { position: static; }
}
@media (max-width: 767px) {
    .woocommerce ul.products { grid-template-columns: repeat(2, 1fr) !important; gap: 10px !important; }
    .og-cart-table thead { display: none; }
    .og-cart-table td { display: block; padding: 6px var(--ci-space-md); }
    .og-checkout-step__label { display: none; }
    .woocommerce-billing-fields .form-row { grid-column: span 2; }
    .og-product-single__trust { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
    .woocommerce ul.products { grid-template-columns: 1fr !important; }
}
