/* ============================================================
   TERINEO — Page Panier v8.1
   Charte Térinéo : Sunday Club + Inter, coral / cream / ink
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap');
@font-face {
    font-family: 'Sunday Club';
    src: url('https://terineo.com/wp-content/uploads/2026/05/Sunday-Club.ttf') format('truetype');
    font-weight: 400 900;
    font-display: swap;
}

:root {
    --tc-accent:       #D9594A;
    --tc-accent-dark:  #A34338;
    --tc-accent-soft:  rgba(217, 89, 74, 0.08);
    --tc-accent-glow:  rgba(217, 89, 74, 0.20);
    --tc-dark:         #3B1F0E;
    --tc-dark-soft:    #5A3520;
    --tc-gray:         #6b5d4a;
    --tc-gray-light:   #8A7C68;
    --tc-bg:           #FEFAEE;
    --tc-bg-input:     #FCF6E4;
    --tc-cream-soft:   #FCF6E4;
    --tc-white:        #fff;
    --tc-border:       rgba(59, 31, 14, 0.14);
    --tc-border-light: rgba(59, 31, 14, 0.08);
    --tc-radius:       16px;
    --tc-radius-sm:    12px;
    --tc-shadow:       0 1px 3px rgba(59,31,14,.04), 0 6px 24px rgba(59,31,14,.06);
    --tc-shadow-hover: 0 2px 6px rgba(59,31,14,.05), 0 12px 36px rgba(59,31,14,.10);
    --tc-font:         'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    --tc-font-title:   'Sunday Club', 'Brush Script MT', cursive;
}

/* Background page panier en cream */
body.tco-cart-active {
    background: var(--tc-bg) !important;
}

/* ============================================================
   MASQUER le bloc droit natif WC (totaux, Apple Pay, coupon)
   ============================================================ */
body.tco-cart-active .cart-collaterals,
body.tco-cart-active .cart_totals,
body.tco-cart-active .wc-proceed-to-checkout,
body.tco-cart-active .cross-sells,
body.tco-cart-active .cart-checkout,
body.tco-cart-active #apple-pay-wrapper,
body.tco-cart-active [id*="apple-pay"],
body.tco-cart-active [id*="gpay"],
body.tco-cart-active .coupon-toggle,
body.tco-cart-active [class*="coupon-toggle"],
body.tco-cart-active [class*="coupon_toggle"],
body.tco-cart-active .woocommerce-cart .coupon-col,
body.tco-cart-active [class*="coupon-col"],
body.tco-cart-active [class*="promo-code"],
body.tco-cart-active [class*="promo_code"] {
    display: none !important;
}

/* ============================================================
   WRAPPER + GRILLE 2 COLONNES (main + aside suggestions)
   ============================================================ */
.tco-cart-wrapper {
    max-width: 1240px;
    margin: 0 auto;
    padding: 32px 24px 80px;
    font-family: var(--tc-font);
    color: var(--tc-dark);
}

.tco-cart-header {
    text-align: center;
    margin-bottom: 36px;
}

.tco-cart-title {
    font-family: var(--tc-font-title) !important;
    font-size: clamp(40px, 6vw, 56px) !important;
    font-weight: 700 !important;
    color: var(--tc-dark) !important;
    text-align: center !important;
    margin: 0 0 4px !important;
    padding: 0 !important;
    letter-spacing: -0.02em;
    line-height: 1.05;
}

.tco-cart-count {
    text-align: center;
    font-family: var(--tc-font);
    font-size: 13px;
    font-weight: 500;
    color: var(--tc-gray);
    margin: 0;
    text-transform: uppercase;
    letter-spacing: .12em;
}

/* Grille : panier à gauche (1fr), suggestions à droite (380px)
   align-items: center → la card panier (souvent plus courte) se centre
   verticalement par rapport à la sidebar Sélection */
.tco-cart-grid {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 24px;
    align-items: center;
}
/* Le main devient une grosse CARD blanche cohérente avec la sidebar */
.tco-cart-main {
    min-width: 0;
    background: var(--tc-white);
    border: 1px solid var(--tc-border-light);
    border-radius: var(--tc-radius);
    padding: 28px 28px 24px;
    box-shadow: var(--tc-shadow);
    align-self: center;
}
.tco-cart-aside {
    align-self: stretch;
}

/* ============================================================
   ITEMS PANIER — flat dans la card main (pas de cards imbriquées)
   ============================================================ */
.tco-products {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.tco-product {
    display: flex;
    align-items: center;
    gap: 22px;
    background: transparent;
    border-radius: 0;
    padding: 20px 0;
    box-shadow: none;
    border: none;
    border-bottom: 1px solid var(--tc-border-light);
    transition: background .2s;
}
.tco-product:first-child {
    padding-top: 4px;
}
.tco-product:last-child {
    border-bottom: none;
    padding-bottom: 4px;
}
.tco-product:hover {
    background: rgba(252, 246, 228, .4);
}

.tco-product__img-link {
    flex-shrink: 0;
    display: block;
}

.tco-product__img {
    width: 96px;
    height: 96px;
    object-fit: cover;
    border-radius: 14px;
    border: 1px solid var(--tc-border-light);
    background: var(--tc-bg-input);
    display: block;
}

.tco-product__info {
    flex: 1;
    min-width: 0;
}

.tco-product__name {
    font-family: var(--tc-font);
    font-size: 16px;
    font-weight: 700;
    color: var(--tc-dark);
    text-decoration: none !important;
    display: block;
    margin-bottom: 6px;
    line-height: 1.3;
    transition: color .2s;
}

.tco-product__name:hover {
    color: var(--tc-accent);
}

.tco-product__price {
    font-size: 14px;
    font-weight: 600;
    color: var(--tc-gray);
}

.tco-product__price .woocommerce-Price-amount {
    color: var(--tc-gray);
}

/* ── Actions (qty + subtotal + remove) ── */
.tco-product__actions {
    display: flex;
    align-items: center;
    gap: 22px;
    flex-shrink: 0;
}

.tco-product__subtotal {
    font-size: 20px;
    font-weight: 800;
    color: var(--tc-accent);
    white-space: nowrap;
    min-width: 80px;
    text-align: right;
    font-family: var(--tc-font);
}

.tco-product__subtotal .woocommerce-Price-amount {
    color: var(--tc-accent);
    font-weight: 800;
}

/* ── Quantité ── */
.tco-product__qty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}

.tco-product__qty-label {
    font-size: 10px !important;
    font-weight: 700 !important;
    color: var(--tc-gray) !important;
    text-transform: uppercase !important;
    letter-spacing: .12em !important;
    margin: 0 !important;
}

.tco-product__qty-input {
    width: 56px !important;
    padding: 9px 6px !important;
    border: 1.5px solid var(--tc-border) !important;
    border-radius: 10px !important;
    text-align: center !important;
    font-family: var(--tc-font) !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    color: var(--tc-dark) !important;
    background: var(--tc-bg-input) !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    -moz-appearance: textfield !important;
    outline: none !important;
    transition: border-color .2s, box-shadow .2s, background .2s !important;
}

.tco-product__qty-input:focus {
    border-color: var(--tc-accent) !important;
    box-shadow: 0 0 0 3px var(--tc-accent-soft) !important;
    background: var(--tc-white) !important;
}

.tco-product__qty-input::-webkit-outer-spin-button,
.tco-product__qty-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* ── Bouton supprimer ── */
.tco-product__remove {
    flex-shrink: 0;
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--tc-bg-input);
    color: var(--tc-gray);
    text-decoration: none !important;
    border: 1px solid var(--tc-border-light);
    transition: all .2s;
}

.tco-product__remove:hover {
    background: var(--tc-accent);
    border-color: var(--tc-accent);
    color: #fff;
    transform: scale(1.05);
}

.tco-product__remove svg {
    display: block;
    width: 17px;
    height: 17px;
}

/* ============================================================
   BOUTONS D'ACTION (continuer / passer au paiement) — DANS la card main
   ============================================================ */
.tco-cart-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 24px;
    padding-top: 22px;
    border-top: 1.5px solid var(--tc-border-light);
    font-family: var(--tc-font);
}

.tco-cart-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 16px 32px;
    border-radius: 999px;
    font-family: var(--tc-font);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .12em;
    text-decoration: none !important;
    cursor: pointer;
    transition: all .25s ease;
    line-height: 1;
}

.tco-cart-btn--secondary {
    background: var(--tc-white);
    color: var(--tc-dark) !important;
    border: 1.5px solid var(--tc-border);
}

.tco-cart-btn--secondary:hover {
    border-color: var(--tc-dark);
    color: var(--tc-dark) !important;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(59,31,14,.10);
}

.tco-cart-btn--primary,
.tco-cart-btn--primary:link,
.tco-cart-btn--primary:visited,
.tco-cart-btn--primary:active {
    background: var(--tc-accent) !important;
    color: #ffffff !important;
    border: 1.5px solid var(--tc-accent) !important;
    box-shadow: 0 6px 20px rgba(217, 89, 74, .30);
}

.tco-cart-btn--primary:hover {
    background: var(--tc-accent-dark) !important;
    border-color: var(--tc-accent-dark) !important;
    color: #ffffff !important;
    transform: translateY(-2px);
    box-shadow: 0 10px 28px rgba(217, 89, 74, .40);
}

.tco-cart-btn--primary svg {
    stroke: #ffffff !important;
}

/* ============================================================
   SECTION SUGGESTIONS — sidebar à droite
   ============================================================ */
.tcart-suggestions {
    background: var(--tc-white);
    border: 1px solid var(--tc-border-light);
    border-radius: var(--tc-radius);
    padding: 22px 18px;
    box-shadow: var(--tc-shadow);
    font-family: var(--tc-font);
}

.tcart-suggestions-head {
    text-align: center;
    margin-bottom: 18px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--tc-border-light);
}

.tcart-suggestions-eyebrow {
    display: inline-block;
    background: var(--tc-accent-soft);
    color: var(--tc-accent);
    padding: 4px 12px;
    border-radius: 999px;
    font-family: var(--tc-font) !important;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .14em;
    margin-bottom: 10px;
}

/* Titre sidebar : Inter (PAS Sunday Club, trop décoratif pour ce contexte) */
html body.tco-cart-active .tcart-suggestions-title,
.tcart-suggestions-title {
    font-family: var(--tc-font) !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    color: var(--tc-dark) !important;
    margin: 0 !important;
    padding: 0 !important;
    letter-spacing: 0 !important;
    line-height: 1.2 !important;
    text-transform: none !important;
    text-align: center !important;
}

/* Grille 2 colonnes dans la sidebar */
.tcart-suggestions-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}

.tcart-suggestion-card {
    background: var(--tc-white);
    border: 1px solid var(--tc-border-light);
    border-radius: var(--tc-radius-sm);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: box-shadow .25s, transform .2s, border-color .2s;
    min-width: 0;
}

.tcart-suggestion-card:hover {
    box-shadow: 0 4px 16px rgba(59,31,14,.10);
    transform: translateY(-2px);
    border-color: var(--tc-border);
}

.tcart-suggestion-img {
    display: block;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: var(--tc-bg-input);
}

.tcart-suggestion-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .4s ease;
}

.tcart-suggestion-card:hover .tcart-suggestion-img img {
    transform: scale(1.04);
}

.tcart-suggestion-body {
    padding: 10px 10px 12px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex: 1;
}

/* Nom produit : Inter petit, pas Sunday Club. Override aggressif des h3/typo theme */
html body.tco-cart-active .tcart-suggestion-name,
html body.tco-cart-active .tcart-suggestion-name a,
.tcart-suggestion-name,
.tcart-suggestion-name a {
    font-family: var(--tc-font) !important;
    font-size: 12.5px !important;
    font-weight: 700 !important;
    color: var(--tc-dark) !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.3 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    text-decoration: none !important;
    text-align: left !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    min-height: 32px !important;
}

.tcart-suggestion-name a:hover {
    color: var(--tc-accent) !important;
}

.tcart-suggestion-price,
.tcart-suggestion-price .woocommerce-Price-amount {
    font-family: var(--tc-font) !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    color: var(--tc-accent) !important;
    line-height: 1 !important;
    margin: 2px 0 4px !important;
}

/* Bouton Ajouter : CORAL FILLED par défaut (pas transparent) */
html body.tco-cart-active .tcart-suggestion-add,
.tcart-suggestion-add {
    -webkit-appearance: none !important;
    appearance: none !important;
    margin-top: auto !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 4px !important;
    width: 100% !important;
    padding: 8px 10px !important;
    background: var(--tc-accent) !important;
    background-color: var(--tc-accent) !important;
    background-image: none !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 999px !important;
    font-family: var(--tc-font) !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: .1em !important;
    cursor: pointer !important;
    transition: all .2s ease !important;
    box-shadow: 0 2px 8px rgba(217,89,74,.25) !important;
    line-height: 1 !important;
    text-shadow: none !important;
    visibility: visible !important;
    opacity: 1 !important;
}

.tcart-suggestion-add:hover {
    background: var(--tc-accent-dark) !important;
    background-color: var(--tc-accent-dark) !important;
    color: #ffffff !important;
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(217,89,74,.40) !important;
}

.tcart-suggestion-add.is-loading,
.tcart-suggestion-add[disabled] {
    opacity: .65 !important;
    pointer-events: none !important;
}

.tcart-suggestion-add.is-added {
    background: var(--tc-accent-dark) !important;
    color: #ffffff !important;
    pointer-events: none !important;
}

.tcart-suggestion-add-icon {
    font-size: 13px !important;
    line-height: 1 !important;
    font-weight: 700 !important;
    margin-top: -1px;
}
.tcart-suggestion-add-text {
    font-family: var(--tc-font) !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    color: #ffffff !important;
    text-transform: uppercase !important;
    letter-spacing: .1em !important;
}

.tcart-suggestion-add-spinner {
    width: 12px;
    height: 12px;
    border: 2px solid currentColor;
    border-top-color: transparent;
    border-radius: 50%;
    display: inline-block;
    animation: tcartSpin .7s linear infinite;
}

@keyframes tcartSpin {
    to { transform: rotate(360deg); }
}

/* ============================================================
   PANIER VIDE
   ============================================================ */
body.tco-cart-active .cart-empty {
    text-align: center !important;
    font-family: var(--tc-font) !important;
    font-size: 16px !important;
    color: var(--tc-gray) !important;
    padding: 60px 0 !important;
}

body.tco-cart-active .return-to-shop .button {
    background: var(--tc-accent) !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 999px !important;
    padding: 16px 32px !important;
    font-family: var(--tc-font) !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: .12em !important;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
/* Tablette : la sidebar passe sous le panier */
@media (max-width: 1024px) {
    .tco-cart-grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }
    .tco-cart-aside {
        position: static;
    }
    .tcart-suggestions-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

@media (max-width: 640px) {
    .tco-cart-wrapper {
        padding: 16px 16px 60px;
    }
    .tco-product {
        flex-wrap: wrap;
        gap: 14px;
        padding: 16px;
    }
    .tco-product__img {
        width: 80px;
        height: 80px;
    }
    .tco-product__info {
        flex: 1 1 calc(100% - 100px);
    }
    .tco-product__name {
        font-size: 14px;
    }
    .tco-product__actions {
        width: 100%;
        justify-content: space-between;
        gap: 14px;
    }
    .tco-product__qty {
        flex-direction: row;
        gap: 8px;
        align-items: center;
    }
    .tco-product__remove {
        width: 36px;
        height: 36px;
    }
    .tco-cart-actions {
        flex-direction: column-reverse;
        gap: 12px;
    }
    .tco-cart-btn {
        width: 100%;
        justify-content: center;
    }
    .tcart-suggestions-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }
}
