/*
 * CHIC CLOTHING CHILD — Overrides & WooCommerce Enhancement
 * ──────────────────────────────────────────────────────────
 */


/* ══════════════════════════════════════════════════════
   GLOBAL OVERFLOW PREVENTION — no horizontal scroll
   ══════════════════════════════════════════════════════ */
html {
    overflow-x: hidden;
    max-width: 100%;
}
body {
    overflow-x: hidden;
    max-width: 100%;
    position: relative;
}

/* Elementor sections & containers must never exceed viewport */
.elementor-section,
.elementor-section > .elementor-container,
.e-container,
.e-flex,
.e-con,
.elementor-widget-wrap {
    max-width: 100% !important;
    box-sizing: border-box;
}

/* Slider wrap clips its overflowing track */
.veloria-slider-wrap {
    overflow: hidden;
    width: 100%;
}

/* Side-cart drawer stays off-screen, never widens page */
.xoo-wsc-slider,
.xoo-wsc-container {
    max-width: min(420px, 100vw) !important;
    overflow-x: hidden;
}

/* Images & iframes never wider than parent */
img, iframe, video, embed, object {
    max-width: 100%;
}

/* ── WhatsApp button: LEFT side ──────────────────────── */
.veloria-whatsapp {
    right: auto !important;
    left:  1.5rem !important;
}

/* ── BRAND / LOGO TEXT FALLBACK ─────────────────────── */
.veloria-header__logo-text {
    font-size: 1.05rem;
    font-weight: 300;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--fg);
}

/* ── HEADER LOGO — base (sizes controlled via Appearance > Veloria Chic ⚙) */
.veloria-header__logo .custom-logo-link { display: flex; align-items: center; }
.veloria-header__logo img {
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
}

/* ── PRELOADER — base (logo + active state controlled via settings) */
.veloria-preloader__bar  { margin-top: 1.5rem; }

/* ── ANNOUNCEMENT: CHIC CLOTHING ────────────────────── */
.veloria-announcement { letter-spacing: 0.15em; }

/* ══════════════════════════════════════════════════════
   WOOCOMMERCE — SHARED
   ══════════════════════════════════════════════════════ */
.woocommerce-page .veloria-page-wrapper { background: var(--bg); }

.woocommerce-page h1.entry-title,
.woocommerce-page h1.page-title {
    font-size: clamp(1.2rem, 3vw, 2rem);
    font-weight: 300;
    letter-spacing: 0.06em;
    margin-bottom: 2rem;
}

/* WC notices */
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-info,
.woocommerce-notices-wrapper .woocommerce-error {
    font-size: 0.85rem;
    border-top: 3px solid var(--fg);
    background: var(--card-bg);
    color: var(--fg);
    padding: 1rem 1.25rem;
    margin-bottom: 1.5rem;
    border-radius: 0;
    list-style: none;
}
.woocommerce-notices-wrapper .woocommerce-error { border-top-color: #c0392b; }

/* WC buttons — global */
.woocommerce .button,
.woocommerce button.button,
.woocommerce a.button,
.woocommerce input[type=submit] {
    background: var(--fg) !important;
    color: var(--white) !important;
    font-family: var(--font);
    font-size: 0.68rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    padding: 0.85rem 2rem;
    border-radius: 0;
    border: none !important;
    transition: background var(--transition);
    cursor: pointer;
}
.woocommerce .button:hover,
.woocommerce button.button:hover,
.woocommerce a.button:hover,
.woocommerce input[type=submit]:hover {
    background: var(--primary) !important;
    color: var(--white) !important;
}
.woocommerce .button.alt,
.woocommerce button.button.alt { background: var(--primary) !important; }
.woocommerce .button.alt:hover  { background: var(--primary-d) !important; }

/* ══════════════════════════════════════════════════════
   WOOCOMMERCE — CART PAGE
   ══════════════════════════════════════════════════════ */
.veloria-is-cart .woocommerce,
.woocommerce-cart  .woocommerce { padding: 0; }

/* Cart section heading */
.woocommerce-cart-form h2,
.cart_totals h2,
.cross-sells h2 {
    font-size: 0.72rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    font-weight: 400;
    margin-bottom: 1.75rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--border);
}

/* Cart table */
.woocommerce table.cart {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.88rem;
}
.woocommerce table.cart th {
    font-size: 0.62rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 400;
    color: var(--muted);
    border-bottom: 2px solid var(--border);
    padding: 0.75rem 1rem;
    text-align: left;
}
.woocommerce table.cart td {
    padding: 1.25rem 1rem;
    border-bottom: 1px solid var(--border);
    vertical-align: middle;
}
.woocommerce table.cart .product-thumbnail img {
    width: 70px;
    height: 90px;
    object-fit: cover;
    display: block;
}
.woocommerce table.cart .product-name a { font-weight: 400; color: var(--fg); }
.woocommerce table.cart .product-name dl.variation {
    font-size: 0.76rem;
    color: var(--muted);
    margin-top: 0.35rem;
}
.woocommerce table.cart .cart-subtotal td,
.woocommerce table.cart .order-total td { font-weight: 400; }
.woocommerce .cart .remove {
    color: var(--muted) !important;
    font-size: 1.3rem;
    line-height: 1;
    font-weight: 300;
}
.woocommerce .cart .remove:hover { color: var(--fg) !important; }

/* Quantity */
.woocommerce .quantity input.qty {
    width: 56px;
    text-align: center;
    padding: 0.5rem 0.25rem;
    border: 1px solid var(--border);
    background: var(--white);
}

/* Cart update button */
.woocommerce table.cart td.actions { padding-top: 1.5rem; }
.woocommerce table.cart td.actions .coupon {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    flex-wrap: wrap;
}
.woocommerce table.cart td.actions .coupon input#coupon_code {
    max-width: 200px;
    font-size: 0.82rem;
}

/* Cart totals */
.cart_totals { max-width: 400px; margin-left: auto; margin-top: 2rem; }
.cart_totals .shop_table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.88rem;
}
.cart_totals .shop_table th,
.cart_totals .shop_table td {
    padding: 0.9rem 0;
    border-bottom: 1px solid var(--border);
}
.cart_totals .shop_table th {
    font-size: 0.68rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    font-weight: 400;
    color: var(--muted);
    width: 40%;
}
.cart_totals .shop_table .order-total th,
.cart_totals .shop_table .order-total td { font-size: 1rem; color: var(--fg); }
.cart_totals .wc-proceed-to-checkout { margin-top: 1.5rem; }
.cart_totals .wc-proceed-to-checkout .checkout-button {
    display: block;
    text-align: center;
    width: 100%;
    padding: 1.1rem !important;
    font-size: 0.72rem !important;
    letter-spacing: 0.25em !important;
}

/* Cart layout: table left, totals right */
@media (min-width: 960px) {
    .woocommerce-cart .woocommerce {
        display: grid;
        grid-template-columns: 1fr 340px;
        gap: 4rem;
        align-items: start;
    }
    .woocommerce-cart form.woocommerce-cart-form { grid-column: 1; }
    .woocommerce-cart .cart-collaterals { grid-column: 2; }
}

/* ══════════════════════════════════════════════════════
   WOOCOMMERCE — CHECKOUT PAGE
   ══════════════════════════════════════════════════════ */
.woocommerce-checkout .woocommerce { padding: 0; }

.woocommerce-checkout h3,
#order_review_heading {
    font-size: 0.72rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    font-weight: 400;
    margin: 2rem 0 1.25rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--border);
}

/* Form labels */
.woocommerce form .form-row label {
    font-size: 0.68rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--muted);
    display: block;
    margin-bottom: 0.4rem;
}
.woocommerce form .form-row label abbr { color: var(--primary); border: none; }

/* Form inputs */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 0;
    padding: 0.85rem 1rem;
    font-family: var(--font);
    font-size: 0.88rem;
    color: var(--fg);
    transition: border-color var(--transition);
    width: 100%;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus { border-color: var(--fg); outline: none; }
.woocommerce form .form-row.woocommerce-invalid input.input-text { border-color: #c0392b; }
.woocommerce form .form-row.woocommerce-validated input.input-text { border-color: var(--primary); }

/* Checkout order review table */
#order_review .shop_table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.88rem;
}
#order_review .shop_table th {
    font-size: 0.62rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 400;
    color: var(--muted);
    padding: 0.75rem 0;
    border-bottom: 2px solid var(--border);
    text-align: left;
}
#order_review .shop_table td {
    padding: 0.9rem 0;
    border-bottom: 1px solid var(--border);
    vertical-align: middle;
}
#order_review .shop_table .product-name { font-weight: 400; }
#order_review .shop_table .product-total { text-align: right; }
#order_review .shop_table .order-total th,
#order_review .shop_table .order-total td { font-size: 1rem; padding-top: 1.25rem; }

/* Payment section */
#payment { background: var(--card-bg); padding: 1.5rem; margin-top: 1rem; }
#payment .payment_methods { list-style: none; margin-bottom: 1.5rem; }
#payment .payment_methods li label { font-size: 0.88rem; cursor: pointer; }
#payment .payment_methods li .payment_box { font-size: 0.82rem; color: var(--muted); padding: 0.75rem 0 0; }
#payment .place-order { margin-top: 1rem; }

/* Place order button */
#place_order {
    display: block;
    width: 100%;
    background: var(--fg) !important;
    color: var(--white) !important;
    padding: 1.15rem 2rem !important;
    font-size: 0.72rem !important;
    letter-spacing: 0.25em !important;
    text-transform: uppercase !important;
    font-family: var(--font) !important;
    border: none !important;
    cursor: pointer;
    transition: background var(--transition);
}
#place_order:hover { background: var(--primary) !important; }

/* Checkout two-column layout */
@media (min-width: 960px) {
    .woocommerce-checkout #customer_details { float: none; width: 100%; }
    .woocommerce-checkout #order_review_heading,
    .woocommerce-checkout #order_review { float: none; width: 100%; }

    .woocommerce-checkout .woocommerce > form.checkout {
        display: grid;
        grid-template-columns: 1fr 380px;
        gap: 4rem;
        align-items: start;
    }
    .woocommerce-checkout .woocommerce > form.checkout #customer_details { grid-column: 1; }
    .woocommerce-checkout .woocommerce > form.checkout #order_review_heading { grid-column: 2; grid-row: 1; }
    .woocommerce-checkout .woocommerce > form.checkout #order_review { grid-column: 2; grid-row: 2 / span 3; }
}

/* ══════════════════════════════════════════════════════
   WOOCOMMERCE — THANK YOU PAGE
   ══════════════════════════════════════════════════════ */

/* Page wrapper */
.woocommerce-order-received .site-main { background: var(--card-bg); }
.woocommerce-order-received .ast-container { max-width: 860px !important; }
.woocommerce-order-received .entry-header { display: none !important; }
.woocommerce-order-received .entry-content { padding-top: 0 !important; }

/* ── Confirmation hero banner ── */
.woocommerce-order {
    font-size: 0.9rem;
}
.woocommerce-order::before {
    content: '';
    display: block;
    width: 56px;
    height: 56px;
    background: #1a1a1a;
    border-radius: 50%;
    margin: 3rem auto 1.25rem;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
}

/* Thank you message */
.woocommerce-thankyou-order-received {
    font-size: 1.5rem !important;
    font-weight: 300 !important;
    letter-spacing: .01em !important;
    text-align: center !important;
    margin-bottom: .5rem !important;
    color: var(--fg) !important;
}

/* Sub-message */
.woocommerce-order > p:not(.woocommerce-thankyou-order-received) {
    text-align: center;
    color: var(--muted);
    font-size: .88rem;
    margin-bottom: 2.5rem;
}

/* ── Order overview — single strip card with dividers ── */
.woocommerce-order-overview.woocommerce-thankyou-order-details {
    display: flex !important;
    flex-wrap: wrap !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 0 1.5rem !important;
    background: #fff !important;
    border: 1px solid var(--border) !important;
    border-radius: 6px !important;
    overflow: hidden !important;
}
.woocommerce-order-overview li {
    flex: 1 1 auto !important;
    padding: 1.2rem 1.5rem !important;
    font-size: .62rem !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
    color: var(--muted) !important;
    border-right: 1px solid var(--border) !important;
    border-radius: 0 !important;
    border-top: none !important;
    border-bottom: none !important;
    border-left: none !important;
    background: transparent !important;
}
.woocommerce-order-overview li:last-child {
    border-right: none !important;
}
.woocommerce-order-overview li strong {
    display: block !important;
    font-size: .92rem !important;
    font-weight: 500 !important;
    color: var(--fg) !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    margin-top: .3rem !important;
    white-space: nowrap !important;
}
@media (max-width: 600px) {
    .woocommerce-order-overview li {
        flex: 1 1 45% !important;
        border-right: 1px solid var(--border) !important;
        border-bottom: 1px solid var(--border) !important;
    }
    .woocommerce-order-overview li:nth-child(even) { border-right: none !important; }
    .woocommerce-order-overview li:last-child,
    .woocommerce-order-overview li:nth-last-child(2):nth-child(odd) { border-bottom: none !important; }
}

/* ── Order details table card ── */
.woocommerce-order-details {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 1.75rem 2rem;
    margin-bottom: 1rem !important;
}
.woocommerce-order-details__title {
    font-size: .68rem !important;
    letter-spacing: .2em !important;
    text-transform: uppercase !important;
    font-weight: 500 !important;
    color: var(--muted) !important;
    margin-bottom: 1.25rem !important;
    padding-bottom: .75rem !important;
    border-bottom: 1px solid var(--border) !important;
}
.woocommerce-order-details .shop_table { width: 100%; border-collapse: collapse; }
.woocommerce-order-details .shop_table thead th {
    font-size: .62rem !important;
    letter-spacing: .14em !important;
    text-transform: uppercase !important;
    color: var(--muted) !important;
    font-weight: 500 !important;
    padding: 0 0 .75rem !important;
    border-bottom: 1px solid var(--border) !important;
}
.woocommerce-order-details .shop_table tbody td {
    padding: 1rem 0 !important;
    border-bottom: 1px solid var(--border) !important;
    font-size: .88rem;
    vertical-align: middle;
}
.woocommerce-order-details .shop_table tbody tr:last-child td { border-bottom: none !important; }
.woocommerce-order-details .shop_table tfoot tr th,
.woocommerce-order-details .shop_table tfoot tr td {
    padding: .6rem 0 !important;
    font-size: .88rem;
    border-top: 1px solid var(--border) !important;
}
.woocommerce-order-details .shop_table tfoot .order-total th,
.woocommerce-order-details .shop_table tfoot .order-total td {
    font-size: 1rem !important;
    font-weight: 500 !important;
    padding-top: .85rem !important;
}

/* ── Customer address card ── */
.woocommerce-customer-details {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 1.75rem 2rem;
    margin-bottom: 2rem !important;
}
.woocommerce-column__title {
    font-size: .68rem !important;
    letter-spacing: .2em !important;
    text-transform: uppercase !important;
    font-weight: 500 !important;
    color: var(--muted) !important;
    margin-bottom: 1rem !important;
    padding-bottom: .75rem !important;
    border-bottom: 1px solid var(--border) !important;
}
.woocommerce-customer-details address {
    font-style: normal;
    font-size: .88rem;
    line-height: 1.8;
    color: var(--fg);
}
@media (min-width: 640px) {
    .woocommerce-customer-details .woocommerce-columns {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 2rem;
    }
}

/* ── Continue shopping CTA ── */
.woocommerce-order-received .woocommerce > .woocommerce-order::after {
    content: '';
}
.woocommerce-order-received .return-to-shop,
.woocommerce-order + .return-to-shop {
    text-align: center;
    padding: 1.5rem 0 3rem;
}
.woocommerce-order-received .return-to-shop a.button,
.woocommerce-order-received a.button.wc-backward {
    display: inline-flex !important;
    padding: .85rem 2.5rem !important;
    font-size: .72rem !important;
    letter-spacing: .2em !important;
    text-transform: uppercase !important;
    background: transparent !important;
    color: var(--fg) !important;
    border: 1px solid var(--border) !important;
    border-radius: 4px !important;
    transition: border-color .2s !important;
}
.woocommerce-order-received .return-to-shop a.button:hover { border-color: var(--fg) !important; }

/* ══════════════════════════════════════════════════════
   WOOCOMMERCE — MY ACCOUNT PAGE
   ══════════════════════════════════════════════════════ */
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; }
.woocommerce-account .woocommerce-MyAccount-navigation li a {
    display: block;
    padding: 0.65rem 0;
    font-size: 0.82rem;
    border-bottom: 1px solid var(--border);
    color: var(--muted);
    transition: color var(--transition);
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover { color: var(--fg); }

@media (min-width: 768px) {
    .woocommerce-account .woocommerce { display: grid; grid-template-columns: 200px 1fr; gap: 4rem; }
}

/* ══════════════════════════════════════════════════════
   HEADER — CART COUNT BADGE (AJAX updated)
   ══════════════════════════════════════════════════════ */
.veloria-header__cart { position: relative; }
.veloria-cart-count {
    position: absolute;
    top: -6px;
    right: -8px;
    background: var(--fg);
    color: var(--white);
    font-size: 0.55rem;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    letter-spacing: 0;
}
.veloria-cart-count:empty,
.veloria-cart-count[data-count="0"] { display: none; }

/* ══════════════════════════════════════════════════════
   PRODUCT GRID — 4 columns on large screens
   ══════════════════════════════════════════════════════ */
@media (min-width: 1200px) {
    .veloria-product-grid { grid-template-columns: repeat(4, 1fr); }
}

/* ══════════════════════════════════════════════════════
   SHOP / BOUTIQUE — sidebar + grid layout
   ══════════════════════════════════════════════════════ */
.veloria-shop-wrap {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 3rem;
    align-items: start;
}
@media (max-width: 900px) {
    .veloria-shop-wrap { grid-template-columns: 1fr; }
}

/* ══════════════════════════════════════════════════════
   MISC UTILITY
   ══════════════════════════════════════════════════════ */
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
    border: 1px solid var(--border);
    border-radius: 0;
    font-size: 0.78rem;
    color: var(--muted);
    padding: 0.5rem 0.9rem;
    transition: background var(--transition);
}
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li span.current {
    background: var(--fg);
    color: var(--white);
    border-color: var(--fg);
}
/* ══════════════════════════════════════════════════════
   FOOTER — text logo (no image file present)
   ══════════════════════════════════════════════════════ */
.veloria-footer__logo { display: none; }
.veloria-footer__brand::before {
    content: "CHIC CLOTHING";
    display: block;
    font-size: 1rem;
    letter-spacing: 0.3em;
    font-weight: 300;
    color: rgba(255,255,255,0.85);
    text-transform: uppercase;
    margin-bottom: 0.75rem;
}

/* Preloader: show site name instead of broken logo */
.veloria-preloader__logo { display: none !important; }
.veloria-preloader__inner::before {
    content: "CHIC CLOTHING";
    font-size: 1rem;
    letter-spacing: 0.3em;
    font-weight: 300;
    color: var(--fg);
    text-transform: uppercase;
}

/* ══════════════════════════════════════════════════════
   FRONT PAGE HERO — fallback bg colour if image missing
   ══════════════════════════════════════════════════════ */
.veloria-hero {
    min-height: 90vh;
    background-color: var(--card-bg);
    background-size: cover;
    background-position: center;
}

/* ══════════════════════════════════════════════════════
   BOUTIQUE — empty state polish
   ══════════════════════════════════════════════════════ */
.veloria-no-products {
    padding: 4rem 0;
    text-align: center;
    color: var(--muted);
    font-size: 0.88rem;
    grid-column: 1 / -1;
}

/* ══════════════════════════════════════════════════════
   COLLECTIONS — empty state polish
   ══════════════════════════════════════════════════════ */
.veloria-collections-grid:empty::after {
    content: "Les collections arrivent bientôt.";
    display: block;
    padding: 4rem 0;
    text-align: center;
    color: var(--muted);
    font-size: 0.88rem;
}

/* ══════════════════════════════════════════════════════
   WOOCOMMERCE: hide default page title on shop/cart/checkout
   (theme has its own headings)
   ══════════════════════════════════════════════════════ */
.woocommerce-page .woocommerce > .page-title,
.woocommerce-page .entry-title { display: none; }

/* ── FOOTER LOGO — base (logo/size/tagline controlled via Appearance > Veloria Chic ⚙) */
.veloria-footer__logo {
    filter: none !important;
    opacity: 1 !important;
    height: auto !important;
    display: block !important;
    margin-bottom: 0 !important;
}

/* ══════════════════════════════════════════════════════
   RESPONSIVE: announcement bar text on small screens
   ══════════════════════════════════════════════════════ */
@media (max-width: 480px) {
    .veloria-announcement p {
        overflow: hidden;
        white-space: nowrap;
        text-overflow: ellipsis;
        max-width: 100%;
    }
}

/* ══════════════════════════════════════════════════════
   SIDE CART PLUGIN — hide floating basket, use header cart
   ══════════════════════════════════════════════════════ */
.xoo-wsc-basket { display: none !important; }

/* ══════════════════════════════════════════════════════
   BUY NOW BUTTON
   ══════════════════════════════════════════════════════ */
.veloria-buy-now {
    display: block;
    width: 100%;
    margin-top: .625rem;
    cursor: pointer;
    font-size: .78rem;
    letter-spacing: .12em;
}
.veloria-buy-now.is-loading { opacity: .6; cursor: wait; }
/* On product page: quantity + add-to-cart on same row, buy-now below */
.single-product .cart {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    gap: .75rem;
    flex-wrap: wrap;
}
.single-product .cart .quantity {
    flex-shrink: 0;
    margin-bottom: 0;
    width: auto;
    display: flex;
    align-items: center;
    border: 1px solid #ddd;
    border-radius: 4px;
    overflow: hidden;
    height: 48px;
}
.single-product .cart .quantity .qty {
    border: none;
    outline: none;
    width: 48px;
    text-align: center;
    font-size: .9rem;
    padding: 0;
    height: 100%;
    -moz-appearance: textfield;
}
.single-product .cart .quantity .qty::-webkit-outer-spin-button,
.single-product .cart .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: auto; }
.single-product .single_add_to_cart_button {
    flex: 1;
    width: auto !important;
    margin-top: 0 !important;
    min-width: 160px;
}
.single-product .veloria-buy-now {
    flex-basis: 100%;
    width: 100% !important;
    margin-top: 0;
}

/* ══════════════════════════════════════════════════════
   PRODUCT CARD — ENHANCED HOVER & ANIMATIONS
   ══════════════════════════════════════════════════════ */

/* Card lift + shadow on hover */
.veloria-product-card {
    transition: transform .3s cubic-bezier(.4,0,.2,1), box-shadow .3s ease;
    border-radius: 2px;
    overflow: hidden;
}
.veloria-product-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 40px rgba(0,0,0,.12);
}

/* Image zoom (enhancing the existing 1.04 scale) */
.veloria-product-card__img {
    transition: transform .5s cubic-bezier(.4,0,.2,1), filter .4s ease !important;
    will-change: transform;
}
.veloria-product-card__link:hover .veloria-product-card__img {
    transform: scale(1.08) !important;
    filter: brightness(0.94);
}

/* Overlay on hover */
.veloria-product-card__img-wrap::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0);
    transition: background .35s ease;
    pointer-events: none;
    z-index: 1;
}
.veloria-product-card:hover .veloria-product-card__img-wrap::after {
    background: rgba(0,0,0,.06);
}

/* Quick-add button that appears on hover */
.veloria-card-quickadd {
    position: absolute;
    bottom: 12px;
    left: 50%;
    transform: translateX(-50%) translateY(8px);
    background: #fff;
    color: #111;
    border: none;
    padding: .5rem 1.25rem;
    font-size: .72rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    white-space: nowrap;
    cursor: pointer;
    opacity: 0;
    z-index: 3;
    transition: opacity .3s ease, transform .3s ease;
    box-shadow: 0 2px 12px rgba(0,0,0,.15);
}
.veloria-product-card:hover .veloria-card-quickadd {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}
.veloria-card-quickadd.is-added { background: #111; color: #fff; }

/* Price fade-up on hover */
.veloria-product-card__info {
    transition: transform .3s ease;
}
.veloria-product-card:hover .veloria-product-card__info {
    transform: translateY(-2px);
}

/* Staggered grid entrance animation */
.veloria-products-grid .veloria-product-card,
.veloria-archive-grid .veloria-product-card {
    opacity: 0;
    transform: translateY(20px);
    animation: veloria-card-in .5s ease forwards;
}
.veloria-products-grid .veloria-product-card:nth-child(1), .veloria-archive-grid .veloria-product-card:nth-child(1) { animation-delay: .05s; }
.veloria-products-grid .veloria-product-card:nth-child(2), .veloria-archive-grid .veloria-product-card:nth-child(2) { animation-delay: .1s; }
.veloria-products-grid .veloria-product-card:nth-child(3), .veloria-archive-grid .veloria-product-card:nth-child(3) { animation-delay: .15s; }
.veloria-products-grid .veloria-product-card:nth-child(4), .veloria-archive-grid .veloria-product-card:nth-child(4) { animation-delay: .2s; }
.veloria-products-grid .veloria-product-card:nth-child(n+5), .veloria-archive-grid .veloria-product-card:nth-child(n+5) { animation-delay: .25s; }

@keyframes veloria-card-in {
    to { opacity: 1; transform: translateY(0); }
}

/* Collection card hover */
.veloria-collection-card {
    overflow: hidden;
    transition: box-shadow .35s ease;
}
.veloria-collection-card:hover {
    box-shadow: 0 16px 48px rgba(0,0,0,.18);
}
.veloria-collection-card__img-wrap img {
    transition: transform .55s cubic-bezier(.4,0,.2,1) !important;
}
.veloria-collection-card:hover .veloria-collection-card__img-wrap img {
    transform: scale(1.07) !important;
}
.veloria-collection-card__body {
    transition: transform .35s ease;
}
.veloria-collection-card:hover .veloria-collection-card__body {
    transform: translateY(-4px);
}

/* ── Currency symbol: override parent theme display:none ─ */
.veloria-product-card__price .woocommerce-Price-currencySymbol,
.veloria-product-detail__price .woocommerce-Price-currencySymbol {
    display: inline !important;
}

/* ── No strikethrough on currency symbol inside <del> ──── */
del .woocommerce-Price-currencySymbol,
del bdi .woocommerce-Price-currencySymbol {
    display: inline-block;
    text-decoration: none !important;
}

/* ══════════════════════════════════════════════════════════
   SHOPIFY-STYLE PRODUCT PAGE
   ══════════════════════════════════════════════════════════ */

/* Page wrapper */
.vp-page { background: #fff; }
.vp-main {
    max-width: 1240px;
    margin: 0 auto;
    padding: 1.5rem 2rem 5rem;
}

/* Breadcrumb */
.vp-breadcrumb {
    display: flex;
    align-items: center;
    gap: .45rem;
    font-size: .72rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: 2rem;
}
.vp-breadcrumb a:hover { color: var(--fg); }
.vp-breadcrumb span { color: #ccc; }

/* ── MAIN LAYOUT: gallery | info ──────── */
.vp-layout {
    display: grid;
    grid-template-columns: 1fr 480px;
    gap: 4rem;
    align-items: start;
}
@media (max-width: 1024px) {
    .vp-layout { grid-template-columns: 1fr 400px; gap: 2.5rem; }
}
@media (max-width: 768px) {
    .vp-layout { grid-template-columns: 1fr; gap: 2rem; }
    .vp-main { padding: 1rem 1rem 4rem; }
}

/* ── GALLERY ──────────────────────────── */
.vp-gallery {
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: .75rem;
    position: sticky;
    top: 1rem;
}
@media (max-width: 768px) {
    .vp-gallery {
        display: flex;
        flex-direction: column;
        position: relative;
        top: auto;
    }
    .vp-gallery__main { order: 1; }
    .vp-gallery__thumbs {
        order: 2;
        flex-direction: row !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        max-height: none !important;
        max-width: 100%;
        padding-bottom: .25rem;
    }
    .vp-gallery__thumb {
        flex: 0 0 64px !important;
        height: 84px !important;
    }
    .vp-gallery__thumb img { height: 84px !important; }
}

/* Thumbnail strip */
.vp-gallery__thumbs {
    display: flex;
    flex-direction: column;
    gap: .5rem;
    overflow-y: auto;
    max-height: 600px;
    scrollbar-width: none;
}
.vp-gallery__thumbs::-webkit-scrollbar { display: none; }
@media (max-width: 768px) {
    .vp-gallery__thumbs {
        grid-row: 2;
        flex-direction: row;
        overflow-x: auto;
        max-height: none;
    }
}
.vp-gallery__thumb {
    width: 80px;
    height: 100px;
    flex-shrink: 0;
    border: 2px solid transparent;
    border-radius: 4px;
    overflow: hidden;
    cursor: pointer;
    transition: border-color .2s;
    padding: 0;
    background: var(--card-bg);
}
.vp-gallery__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.vp-gallery__thumb:hover,
.vp-gallery__thumb.is-active {
    border-color: var(--fg);
}
@media (max-width: 768px) {
    .vp-gallery__thumb { width: 64px; height: 80px; }
}

/* Main image */
.vp-gallery__main {
    position: relative;
    aspect-ratio: 3/4;
    background: var(--card-bg);
    border-radius: 4px;
    overflow: hidden;
    grid-column: 2;
}
@media (max-width: 768px) {
    .vp-gallery__main { grid-column: 1; grid-row: 1; }
}
.vp-gallery__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: opacity .2s ease;
}

/* Zoom button — hidden; zoom handled by CSS hover */
.vp-gallery__zoom {
    display: none !important;
}
/* Hover zoom on main image */
.vp-gallery__main {
    cursor: zoom-in;
}
.vp-gallery__img {
    transition: transform .45s ease, opacity .2s ease !important;
}
.vp-gallery__main:hover .vp-gallery__img {
    transform: scale(1.07);
}

/* Badges */
.vp-badge {
    position: absolute;
    top: .85rem;
    left: .85rem;
    z-index: 2;
    font-size: .62rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    font-weight: 500;
    padding: .3rem .65rem;
    border-radius: 2px;
}
.vp-badge--sale { background: var(--fg); color: #fff; }
.vp-badge--out  { background: #c0392b; color: #fff; }

/* ── PRODUCT INFO ─────────────────────── */
.vp-info { display: flex; flex-direction: column; gap: 0; }

.vp-info__cat {
    font-size: .65rem;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: .6rem;
}
.vp-info__cat a:hover { color: var(--fg); }

.vp-info__title {
    font-size: clamp(1.4rem, 3vw, 2rem);
    font-weight: 300;
    line-height: 1.25;
    letter-spacing: -.01em;
    margin-bottom: 1rem;
    color: var(--fg);
}

/* Price */
.vp-info__price {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin-bottom: 1.25rem;
    flex-wrap: wrap;
}
.vp-price--regular {
    font-size: 1.5rem;
    font-weight: 400;
    color: var(--fg);
}
/* Variable product: WC outputs <del> (old) + <ins> (sale) inside get_price_html() */
.vp-price--regular del {
    font-size: 1rem;
    color: var(--muted);
    text-decoration: line-through;
    margin-right: .4rem;
}
.vp-price--regular ins {
    font-size: 1.5rem;
    font-weight: 400;
    color: #c0392b;
    text-decoration: none;
}
.vp-price--old {
    font-size: 1rem;
    color: var(--muted);
    text-decoration: line-through;
}
.vp-price--sale {
    font-size: 1.5rem;
    font-weight: 400;
    color: #c0392b;
}
.vp-price--pct {
    font-size: .72rem;
    letter-spacing: .08em;
    background: #c0392b;
    color: #fff;
    padding: .2rem .5rem;
    border-radius: 2px;
}

/* Divider */
.vp-divider {
    height: 1px;
    background: var(--border);
    margin: 1.25rem 0;
}

/* Short description */
.vp-info__desc {
    font-size: .88rem;
    color: #555;
    line-height: 1.75;
    margin-bottom: 1.25rem;
}

/* ── WooCommerce form inside vp-info ──── */
.vp-info__form .woocommerce-variation-add-to-cart,
.vp-info__form .cart {
    display: flex;
    flex-direction: column;
    gap: .75rem;
}
/* Variation selects */
.vp-info__form .variations {
    width: 100%;
    border: none !important;
    margin-bottom: .5rem;
}
.vp-info__form .variations td,
.vp-info__form .variations th {
    display: block;
    padding: 0 !important;
    border: none !important;
}
.vp-info__form .variations th {
    font-size: .7rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--muted);
    font-weight: 500;
    margin-bottom: .4rem;
    margin-top: .75rem;
    font-family: var(--font);
}
.vp-info__form .variations select {
    width: 100% !important;
    border: 1px solid var(--border) !important;
    border-radius: 4px !important;
    padding: .75rem 1rem !important;
    font-size: .9rem;
    background: #fff !important;
    -webkit-appearance: auto;
}
.vp-info__form .variations select:focus {
    border-color: var(--fg) !important;
    outline: none;
}
.vp-info__form .reset_variations {
    font-size: .72rem;
    color: var(--muted);
    text-decoration: underline;
    display: block;
    margin-top: .25rem;
}
/* Quantity */
/* Quantité label */
.vp-qty-label {
    font-size: .88rem;
    font-weight: 700;
    color: var(--fg);
    margin-bottom: .5rem;
}

/* Stepper wrapper */
.vp-info__form .quantity {
    display: inline-flex !important;
    align-items: center !important;
    align-self: flex-start !important;
    border: 1px solid #ccc !important;
    border-radius: 4px !important;
    overflow: hidden !important;
    width: fit-content !important;
    height: 46px !important;
    background: #fff !important;
}

/* −/+ buttons */
.vp-qty-btn {
    width: 44px !important;
    height: 46px !important;
    border: none !important;
    border-radius: 0 !important;
    background: transparent !important;
    background-color: transparent !important;
    font-size: 1.25rem !important;
    line-height: 1 !important;
    color: #1a1a1a !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
    transition: background .15s !important;
    padding: 0 !important;
    box-shadow: none !important;
    text-shadow: none !important;
}
.vp-qty-btn:hover,
.vp-qty-btn:focus { background: #f5f5f5 !important; background-color: #f5f5f5 !important; outline: none !important; }

/* Number input */
.vp-info__form .quantity .qty {
    width: 48px !important;
    height: 46px !important;
    text-align: center !important;
    border: none !important;
    border-left: 1px solid #e0e0e0 !important;
    border-right: 1px solid #e0e0e0 !important;
    border-radius: 0 !important;
    padding: 0 !important;
    font-size: 1rem !important;
    background: transparent !important;
    -moz-appearance: textfield !important;
    appearance: textfield !important;
}
.vp-info__form .quantity .qty::-webkit-outer-spin-button,
.vp-info__form .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; appearance: none; }
/* Add to cart button */
.vp-info__form .single_add_to_cart_button,
.vp-info__form button[type="submit"].button {
    width: 100% !important;
    padding: 1rem 2rem !important;
    font-size: .78rem !important;
    letter-spacing: .18em !important;
    text-transform: uppercase !important;
    font-weight: 500 !important;
    background: var(--fg) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 4px !important;
    cursor: pointer !important;
    transition: opacity .2s ease !important;
}
.vp-info__form .single_add_to_cart_button:hover,
.vp-info__form button[type="submit"].button:hover {
    opacity: .8 !important;
}
/* Buy Now button */
.veloria-buy-now {
    width: 100%;
    padding: .95rem 2rem;
    font-size: .78rem;
    letter-spacing: .18em;
    text-transform: uppercase;
    font-weight: 500;
    background: transparent;
    color: var(--fg);
    border: 1px solid var(--fg);
    border-radius: 4px;
    cursor: pointer;
    transition: background .2s ease, color .2s ease;
    display: block;
    text-align: center;
    margin-top: .5rem;
}
.veloria-buy-now:hover {
    background: var(--fg);
    color: #fff;
}

/* ── TRUST BADGES ─────────────────────── */
.vp-trust {
    display: flex;
    flex-direction: column;
    gap: .65rem;
    padding: 1.25rem 0;
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    margin: 1.5rem 0;
}
.vp-trust__item {
    display: flex;
    align-items: center;
    gap: .65rem;
    font-size: .8rem;
    color: var(--muted);
}
.vp-trust__item svg { flex-shrink: 0; stroke: var(--fg); }
.vp-trust__item span { color: var(--fg); font-weight: 400; }

/* ── ACCORDION ────────────────────────── */
.vp-accordion {
    border-bottom: 1px solid var(--border);
}
.vp-accordion:first-of-type { border-top: 1px solid var(--border); }
.vp-accordion__toggle {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 0;
    font-size: .78rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    font-weight: 500;
    color: var(--fg);
    background: none;
    border: none;
    cursor: pointer;
    text-align: left;
}
.vp-accordion__icon {
    transition: transform .25s ease;
    flex-shrink: 0;
}
.vp-accordion__toggle[aria-expanded="true"] .vp-accordion__icon {
    transform: rotate(180deg);
}
.vp-accordion__body {
    max-height: 0;
    overflow: hidden;
    transition: max-height .35s ease;
    font-size: .86rem;
    color: #555;
    line-height: 1.75;
}
.vp-accordion__body p,
.vp-accordion__body ul,
.vp-accordion__body ol {
    margin-bottom: .75rem;
    padding-bottom: .75rem;
}

/* ── RELATED PRODUCTS — Horizontal Slider ─ */
.vp-related {
    margin-top: 5rem;
    padding-top: 3rem;
    border-top: 1px solid var(--border);
    overflow: hidden;
}
.vp-related__title {
    font-size: .75rem;
    letter-spacing: .2em;
    text-transform: uppercase;
    font-weight: 500;
    margin-bottom: 2rem;
    color: var(--fg);
}
/* Override grid to a horizontal scroll track */
.vp-related .veloria-product-grid {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 1rem !important;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 1rem;
    scrollbar-width: thin;
    scrollbar-color: var(--border) transparent;
}
.vp-related .veloria-product-grid::-webkit-scrollbar { height: 4px; }
.vp-related .veloria-product-grid::-webkit-scrollbar-track { background: transparent; }
.vp-related .veloria-product-grid::-webkit-scrollbar-thumb { background: var(--border); border-radius: 2px; }
.vp-related .veloria-product-grid .veloria-product-card {
    flex: 0 0 calc(25% - .75rem);
    min-width: 220px;
    scroll-snap-align: start;
}
@media (max-width: 1024px) {
    .vp-related .veloria-product-grid .veloria-product-card { flex: 0 0 calc(33.333% - .75rem); }
}
@media (max-width: 768px) {
    .vp-related .veloria-product-grid .veloria-product-card { flex: 0 0 calc(50% - .5rem); min-width: 160px; }
}
@media (max-width: 480px) {
    .vp-related .veloria-product-grid .veloria-product-card { flex: 0 0 72vw; }
}

/* ── VARIATION PILLS (replaces <select> dropdowns) ─── */
.vp-pills {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    margin-top: .35rem;
}
.vp-pill {
    padding: .42rem .9rem;
    border: 1px solid var(--border);
    border-radius: 2px;
    font-size: .8rem;
    letter-spacing: .04em;
    cursor: pointer;
    background: #fff;
    color: var(--fg);
    font-family: var(--font);
    transition: border-color .18s, background .18s, color .18s;
    line-height: 1.4;
}
.vp-pill:hover:not(:disabled) {
    border-color: var(--fg);
}
.vp-pill.is-active {
    background: var(--fg);
    color: #fff;
    border-color: var(--fg);
}
.vp-pill.is-unavailable,
.vp-pill:disabled {
    opacity: .3;
    cursor: not-allowed;
    text-decoration: line-through;
    pointer-events: none;
}

/* ── OUT OF STOCK ─────────────────────── */
.single-product .stock.out-of-stock {
    color: #c0392b !important;
    font-size: .8rem !important;
    font-weight: 500 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
    margin: .5rem 0 !important;
}
.woocommerce-variation-out-of-stock {
    color: #c0392b;
    font-size: .8rem;
    font-weight: 500;
    letter-spacing: .06em;
    text-transform: uppercase;
}
/* Disable add-to-cart + buy-now when OOS */
.single-product form.cart .single_add_to_cart_button.disabled,
.single-product form.cart .single_add_to_cart_button:disabled {
    opacity: .35 !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
    background: var(--muted) !important;
}
.single-product .veloria-buy-now.is-disabled {
    opacity: .35 !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
}

/* ── WC NOTICES on product page ───────── */
.single-product .woocommerce-notices-wrapper {
    max-width: 1240px;
    margin: 0 auto;
    padding: 0 2rem;
}

/* ══════════════════════════════════════════════════════════
   404 PAGE
   ══════════════════════════════════════════════════════════ */
.veloria-404-page {
    min-height: 70vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    padding: 4rem 1.5rem 6rem;
}
.veloria-404-inner {
    max-width: 680px;
    width: 100%;
    text-align: center;
}
.veloria-404-code {
    font-size: clamp(6rem, 18vw, 11rem);
    font-weight: 200;
    letter-spacing: -.04em;
    line-height: 1;
    color: var(--border);
    margin-bottom: -1.5rem;
    position: relative;
    z-index: 0;
    user-select: none;
}
.veloria-404-icon {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: var(--card-bg);
    color: var(--muted);
    margin-bottom: 1.75rem;
}
.veloria-404-title {
    font-size: clamp(1.4rem, 4vw, 2rem) !important;
    font-weight: 300 !important;
    letter-spacing: .02em !important;
    color: var(--fg) !important;
    margin-bottom: .75rem !important;
}
.veloria-404-desc {
    font-size: .9rem;
    color: var(--muted);
    line-height: 1.7;
    margin-bottom: 2.5rem;
}
.veloria-404-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 4rem;
}
.veloria-404-btn {
    display: inline-flex;
    align-items: center;
    padding: .85rem 2rem;
    font-size: .72rem;
    letter-spacing: .2em;
    text-transform: uppercase;
    font-weight: 500;
    border-radius: 2px;
    transition: all .2s ease;
    white-space: nowrap;
}
.veloria-404-btn--primary {
    background: var(--fg);
    color: #fff;
    border: 1px solid var(--fg);
}
.veloria-404-btn--primary:hover { opacity: .82; color: #fff; }
.veloria-404-btn--outline {
    background: transparent;
    color: var(--fg);
    border: 1px solid var(--border);
}
.veloria-404-btn--outline:hover { border-color: var(--fg); }

/* Products strip on 404 */
.veloria-404-products {
    border-top: 1px solid var(--border);
    padding-top: 2.5rem;
}
.veloria-404-products__label {
    font-size: .68rem;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: 1.5rem;
    font-weight: 500;
}
.veloria-404-products__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
}
@media (max-width: 640px) {
    .veloria-404-products__grid { grid-template-columns: repeat(2, 1fr); }
}
.veloria-404-product { text-align: left; }
.veloria-404-product__img {
    position: relative;
    aspect-ratio: 3/4;
    background: var(--card-bg);
    overflow: hidden;
    border-radius: 2px;
    margin-bottom: .6rem;
}
.veloria-404-product__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .4s ease;
}
.veloria-404-product:hover .veloria-404-product__img img { transform: scale(1.04); }
.veloria-404-product__badge {
    position: absolute;
    top: .5rem;
    left: .5rem;
    background: var(--fg);
    color: #fff;
    font-size: .58rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    padding: .2rem .5rem;
    border-radius: 2px;
}
.veloria-404-product__name {
    font-size: .78rem;
    font-weight: 400;
    margin-bottom: .25rem;
    color: var(--fg);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.veloria-404-product__price {
    font-size: .8rem;
    color: var(--muted);
}

/* ══════════════════════════════════════════════════════════
   CART PAGE — FULL REDESIGN
   ══════════════════════════════════════════════════════════ */

/* Page background */
.woocommerce-cart .site-content { background: var(--bg); }

/* Cart page layout */
.woocommerce-cart .entry-content,
.woocommerce-cart .ast-container { padding-top: 2.5rem; padding-bottom: 5rem; }

/* Cart heading */
.woocommerce-cart h1.entry-title,
.woocommerce-cart h1.page-title {
    display: none; /* we show inline heading */
}
.woocommerce-cart-form::before {
    content: 'Mon panier';
    display: block;
    font-size: .7rem;
    letter-spacing: .22em;
    text-transform: uppercase;
    font-weight: 500;
    color: var(--muted);
    margin-bottom: 1.25rem;
}

/* Cart table card */
.woocommerce-cart-form {
    background: #fff;
    border-radius: 6px;
    box-shadow: 0 1px 16px rgba(0,0,0,.05);
    padding: 1.75rem 2rem 2rem;
}
/* Col headers */
.woocommerce table.cart thead tr { border-bottom: 1px solid var(--border); }
.woocommerce table.cart thead th {
    font-size: .62rem !important;
    letter-spacing: .16em !important;
    text-transform: uppercase !important;
    color: var(--muted) !important;
    font-weight: 500 !important;
    padding: 0 1rem .85rem !important;
    border: none !important;
}
.woocommerce table.cart thead th:first-child { padding-left: 0 !important; }
/* Rows */
.woocommerce table.cart tbody td {
    padding: 1.4rem 1rem !important;
    border: none !important;
    border-bottom: 1px solid var(--border) !important;
    vertical-align: middle !important;
}
.woocommerce table.cart tbody td:first-child { padding-left: 0 !important; }
.woocommerce table.cart tbody tr:last-child td { border-bottom: none !important; }

/* Product thumbnail */
.woocommerce table.cart .product-thumbnail { width: 90px; }
.woocommerce table.cart .product-thumbnail img {
    width: 80px !important;
    height: 108px !important;
    object-fit: cover !important;
    border-radius: 4px !important;
    display: block !important;
}
/* Product name */
.woocommerce table.cart .product-name {
    font-size: .88rem;
    font-weight: 500;
}
.woocommerce table.cart .product-name a { color: var(--fg); }
.woocommerce table.cart .product-name a:hover { opacity: .7; }
.woocommerce table.cart .product-name dl.variation {
    font-size: .76rem;
    color: var(--muted);
    margin-top: .3rem;
}
.woocommerce table.cart .product-name dl.variation dt { font-weight: 500; }

/* Remove button — modern × */
.woocommerce table.cart .product-remove { width: 32px; text-align: right; }
.woocommerce table.cart .product-remove a.remove {
    font-size: 1.1rem !important;
    line-height: 1 !important;
    color: var(--muted) !important;
    font-weight: 300 !important;
    width: 28px !important;
    height: 28px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 50% !important;
    transition: background .18s, color .18s !important;
}
.woocommerce table.cart .product-remove a.remove:hover {
    background: #f4e4e4 !important;
    color: #c0392b !important;
}

/* Quantity input */
.woocommerce-cart .quantity .qty {
    width: 60px !important;
    text-align: center;
    border: 1px solid var(--border) !important;
    border-radius: 4px;
    padding: .5rem .4rem !important;
    font-size: .9rem;
}

/* Actions row */
.woocommerce table.cart td.actions {
    padding-top: 1.25rem !important;
    border-bottom: none !important;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: .75rem;
}
.woocommerce table.cart td.actions .coupon {
    display: flex;
    gap: .5rem;
    align-items: center;
}
.woocommerce table.cart td.actions .coupon input#coupon_code {
    max-width: 180px;
    font-size: .82rem;
    border-radius: 4px;
    padding: .6rem .85rem;
}
.woocommerce table.cart td.actions button[name="apply_coupon"],
.woocommerce table.cart td.actions button[name="update_cart"] {
    background: transparent !important;
    border: 1px solid var(--border) !important;
    color: var(--fg) !important;
    font-size: .7rem !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
    padding: .6rem 1.2rem !important;
    border-radius: 4px !important;
    transition: border-color .18s !important;
}
.woocommerce table.cart td.actions button:hover {
    border-color: var(--fg) !important;
}

/* Cart totals card */
.cart-collaterals { margin-top: 0; }
.cart-collaterals .cart_totals {
    background: #fff;
    border-radius: 6px;
    box-shadow: 0 1px 16px rgba(0,0,0,.05);
    padding: 1.75rem 2rem;
    max-width: 100% !important;
    float: none !important;
    width: 100% !important;
}
.cart_totals h2 {
    font-size: .7rem !important;
    letter-spacing: .22em !important;
    text-transform: uppercase !important;
    color: var(--muted) !important;
    font-weight: 500 !important;
    margin-bottom: 1.25rem !important;
    padding-bottom: .75rem !important;
    border-bottom: 1px solid var(--border) !important;
}
.cart_totals .shop_table th,
.cart_totals .shop_table td {
    padding: .75rem 0 !important;
    border-bottom: 1px solid var(--border) !important;
    border-top: none !important;
    font-size: .88rem;
}
.cart_totals .shop_table th {
    font-size: .72rem !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
    color: var(--muted) !important;
    font-weight: 500 !important;
    width: 45%;
}
.cart_totals .shop_table .order-total th,
.cart_totals .shop_table .order-total td {
    font-size: 1.1rem !important;
    font-weight: 500 !important;
    border-bottom: none !important;
    padding-top: 1rem !important;
}
/* Checkout button */
.cart_totals .wc-proceed-to-checkout {
    margin-top: 1.5rem !important;
}
.cart_totals .wc-proceed-to-checkout a.checkout-button {
    display: block !important;
    width: 100% !important;
    text-align: center !important;
    padding: 1rem !important;
    font-size: .75rem !important;
    letter-spacing: .2em !important;
    text-transform: uppercase !important;
    font-weight: 500 !important;
    background: var(--fg) !important;
    color: #fff !important;
    border-radius: 4px !important;
    border: none !important;
    transition: opacity .2s !important;
}
.cart_totals .wc-proceed-to-checkout a.checkout-button:hover { opacity: .82 !important; }

/* Continue shopping link */
.wc-empty-cart-message,
.return-to-shop {
    text-align: center;
    padding: 4rem 2rem;
}
.return-to-shop .button,
.wc-empty-cart-message + .return-to-shop a {
    display: inline-flex !important;
    padding: .85rem 2.5rem !important;
    font-size: .72rem !important;
    letter-spacing: .18em !important;
    text-transform: uppercase !important;
    background: var(--fg) !important;
    color: #fff !important;
    border-radius: 4px !important;
    margin-top: 1rem !important;
}
/* Empty cart icon + message */
.woocommerce-cart-is-empty p {
    font-size: .9rem;
    color: var(--muted);
    margin-bottom: 1.5rem;
}

/* Cross-sells */
.cross-sells { margin-top: 3rem; }
.cross-sells h2 {
    font-size: .7rem !important;
    letter-spacing: .22em !important;
    text-transform: uppercase !important;
    color: var(--muted) !important;
    font-weight: 500 !important;
    margin-bottom: 1.5rem !important;
}

/* ══════════════════════════════════════════════════════════
   HEADER — RELATIVE (scrolls with page, no overlay)
   ══════════════════════════════════════════════════════════ */
.veloria-announcement {
    position: relative !important;
    top: auto !important;
    z-index: 200 !important;
}
.veloria-header {
    position: relative !important;
    top: auto !important;
    z-index: 900 !important;
}
.veloria-page-wrapper {
    padding-top: 0 !important;
}

/* ══════════════════════════════════════════════════════════
   WC PAGES — LAYOUT RESET (Astra wrapper fixes)
   ══════════════════════════════════════════════════════════ */
.woocommerce-cart .ast-container,
.woocommerce-checkout .ast-container,
.woocommerce-order-received .ast-container {
    max-width: 1140px !important;
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
}
.woocommerce-cart .site-main,
.woocommerce-checkout .site-main,
.woocommerce-order-received .site-main {
    padding-top: 3rem !important;
    padding-bottom: 5rem !important;
}
.woocommerce-cart .entry-header,
.woocommerce-checkout .entry-header,
.woocommerce-order-received .entry-header {
    display: none !important;
}
/* Remove Astra sidebar on WC pages */
.woocommerce-cart .ast-flex-1,
.woocommerce-checkout .ast-flex-1,
.woocommerce-order-received .ast-flex-1 {
    width: 100% !important;
}

/* ══════════════════════════════════════════════════════════
   CART PAGE — Enhanced Design
   ══════════════════════════════════════════════════════════ */

/* Cart table */
.woocommerce-cart .woocommerce-cart-form {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 20px rgba(0,0,0,.06);
    padding: 1.5rem 2rem;
    margin-bottom: 2rem;
}
.woocommerce table.shop_table {
    border: none !important;
    border-collapse: collapse;
    width: 100%;
}
.woocommerce table.shop_table thead th {
    border: none !important;
    padding: .75rem 1rem;
    font-size: .72rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--muted);
    font-weight: 500;
    border-bottom: 1px solid var(--border) !important;
}
.woocommerce table.shop_table tbody td {
    border: none !important;
    padding: 1.25rem 1rem;
    border-bottom: 1px solid var(--border) !important;
    vertical-align: middle;
}
.woocommerce table.shop_table tfoot td,
.woocommerce table.shop_table tfoot th {
    border: none !important;
    padding: .75rem 1rem;
}
.woocommerce table.cart .product-thumbnail img {
    width: 72px;
    height: 96px;
    object-fit: cover;
    border-radius: 4px;
}
.woocommerce table.cart .product-name {
    font-size: .88rem;
    font-weight: 500;
}
.woocommerce table.cart .product-name a:hover { opacity: .7; }
.woocommerce table.cart .product-price,
.woocommerce table.cart .product-subtotal {
    font-size: .9rem;
    font-weight: 400;
}
/* Quantity stepper */
.woocommerce .quantity .qty {
    width: 64px !important;
    text-align: center;
    border: 1px solid var(--border) !important;
    border-radius: 4px;
    padding: .45rem .5rem;
    font-size: .88rem;
}
/* Cart totals box */
.cart-collaterals .cart_totals {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 20px rgba(0,0,0,.06);
    padding: 1.5rem 2rem;
    float: none !important;
    width: 100% !important;
    max-width: 420px;
    margin-left: auto;
}
.cart_totals h2 {
    font-size: .8rem !important;
    letter-spacing: .12em !important;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: 1rem !important;
    font-weight: 500 !important;
}
.cart_totals table.shop_table {
    box-shadow: none !important;
}
/* Update cart button */
.woocommerce table.cart td.actions .button {
    background: transparent !important;
    border: 1px solid var(--border) !important;
    color: var(--fg) !important;
    font-size: .72rem !important;
    letter-spacing: .1em !important;
    padding: .65rem 1.5rem !important;
    text-transform: uppercase !important;
}
.woocommerce table.cart td.actions .button:hover {
    border-color: var(--fg) !important;
}

/* ══════════════════════════════════════════════════════════
   CHECKOUT PAGE — Enhanced Design
   ══════════════════════════════════════════════════════════ */
/* Two-column layout: target the form itself, not .woocommerce wrapper */
form.woocommerce-checkout {
    display: grid !important;
    grid-template-columns: 1fr 380px !important;
    grid-template-rows: auto 1fr;
    column-gap: 2rem !important;
    align-items: start;
}
#customer_details {
    grid-column: 1 !important;
    grid-row: 1 / 3 !important;
}
#order_review_heading {
    grid-column: 2 !important;
    grid-row: 1 !important;
}
#order_review {
    grid-column: 2 !important;
    grid-row: 2 !important;
}
/* Stack on mobile */
@media (max-width: 900px) {
    form.woocommerce-checkout {
        grid-template-columns: 1fr !important;
    }
    #customer_details { grid-column: 1 !important; grid-row: auto !important; }
    #order_review_heading { grid-column: 1 !important; grid-row: auto !important; }
    #order_review { grid-column: 1 !important; grid-row: auto !important; }
}
/* Billing form card */
#customer_details {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 20px rgba(0,0,0,.06);
    padding: 2rem;
}
.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3 {
    font-size: .75rem !important;
    letter-spacing: .14em !important;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: 1.5rem !important;
    font-weight: 500 !important;
    padding-bottom: .75rem;
    border-bottom: 1px solid var(--border);
}
/* Inputs */
.woocommerce-checkout .woocommerce-input-wrapper input,
.woocommerce-checkout .woocommerce-input-wrapper select,
.woocommerce-checkout .woocommerce-input-wrapper textarea {
    border: 1px solid var(--border) !important;
    border-radius: 4px !important;
    padding: .85rem 1rem !important;
    font-size: .9rem !important;
    transition: border-color .2s ease !important;
    background: #fff !important;
}
.woocommerce-checkout .woocommerce-input-wrapper input:focus,
.woocommerce-checkout .woocommerce-input-wrapper select:focus {
    border-color: var(--fg) !important;
    box-shadow: none !important;
    outline: none !important;
}
.woocommerce-checkout label {
    font-size: .78rem !important;
    letter-spacing: .06em !important;
    text-transform: uppercase;
    color: var(--muted);
    font-weight: 500 !important;
    margin-bottom: .4rem !important;
}
.woocommerce-checkout .form-row {
    margin-bottom: 1.1rem !important;
}
/* Order review card */
#order_review_heading {
    font-size: .75rem !important;
    letter-spacing: .14em !important;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: 1.5rem !important;
    font-weight: 500 !important;
    padding-bottom: .75rem;
    border-bottom: 1px solid var(--border);
}
#order_review {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 20px rgba(0,0,0,.06);
    padding: 2rem;
    position: relative !important;
    top: auto !important;
}
#order_review table.shop_table {
    box-shadow: none !important;
    border: none !important;
}
#order_review table.shop_table th,
#order_review table.shop_table td {
    font-size: .86rem;
    padding: .65rem .5rem !important;
    border-bottom: 1px solid var(--border) !important;
    border-top: none !important;
}
#order_review table.shop_table tfoot .order-total th,
#order_review table.shop_table tfoot .order-total td {
    font-size: 1rem;
    font-weight: 500;
    border-bottom: none !important;
    padding-top: 1rem !important;
}
/* Payment methods */
#payment {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    margin-top: 1.5rem;
}
#payment .payment_methods li {
    border: 1px solid var(--border) !important;
    border-radius: 6px;
    padding: .85rem 1rem !important;
    margin-bottom: .5rem;
    background: #faf9f6;
    list-style: none;
}
#payment .payment_methods li label {
    font-size: .88rem !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    color: var(--fg) !important;
    font-weight: 500 !important;
}
#payment .payment_box {
    font-size: .82rem;
    color: var(--muted);
    padding: .6rem .5rem 0 !important;
    background: transparent !important;
    border: none !important;
}
/* Place order button */
#place_order {
    width: 100% !important;
    padding: 1rem !important;
    font-size: .8rem !important;
    letter-spacing: .18em !important;
    text-transform: uppercase !important;
    border-radius: 4px !important;
    margin-top: 1.5rem !important;
    background: var(--fg) !important;
    color: var(--white) !important;
    font-weight: 400 !important;
    transition: opacity .2s ease !important;
}
#place_order:hover {
    opacity: .85 !important;
    background: var(--fg) !important;
}

/* ══════════════════════════════════════════════════════════
   THANK YOU PAGE — Enhanced Design
   ══════════════════════════════════════════════════════════ */
.woocommerce-order-received .woocommerce {
    max-width: 680px;
    margin: 0 auto;
}
/* Confirmation header */
.woocommerce-thankyou-order-received {
    background: #f0f7f0;
    border: 1px solid #c3e0c3;
    border-radius: 8px;
    padding: 1.25rem 1.5rem !important;
    font-size: .9rem;
    color: #2d6a2d;
    margin-bottom: 2rem !important;
    display: flex;
    align-items: center;
    gap: .75rem;
}
.woocommerce-thankyou-order-received::before {
    content: '✓';
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #2d6a2d;
    color: #fff;
    font-size: .9rem;
    flex-shrink: 0;
}
/* Order details */
.woocommerce-order-details,
.woocommerce-customer-details {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 20px rgba(0,0,0,.06);
    padding: 1.75rem 2rem;
    margin-bottom: 1.5rem !important;
}
.woocommerce-order-details__title,
.woocommerce-column__title {
    font-size: .75rem !important;
    letter-spacing: .14em !important;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: 1.25rem !important;
    font-weight: 500 !important;
    padding-bottom: .75rem;
    border-bottom: 1px solid var(--border);
}
.woocommerce-table--order-details th,
.woocommerce-table--order-details td {
    font-size: .88rem !important;
    padding: .75rem .5rem !important;
    border-bottom: 1px solid var(--border) !important;
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
}
.woocommerce-table--order-details tfoot .order-total td,
.woocommerce-table--order-details tfoot .order-total th {
    font-size: 1rem !important;
    font-weight: 500 !important;
    border-bottom: none !important;
    padding-top: 1rem !important;
}
/* Order overview meta (order number, date, etc.) */
.woocommerce-order-overview {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 20px rgba(0,0,0,.06);
    padding: 1.25rem 2rem;
    margin-bottom: 2rem !important;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 2rem;
    list-style: none !important;
}
.woocommerce-order-overview li {
    font-size: .8rem;
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: .08em;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
.woocommerce-order-overview li strong {
    display: block;
    font-size: 1rem;
    color: var(--fg);
    text-transform: none;
    letter-spacing: 0;
    margin-top: .25rem;
}
/* Notices on WC pages */
.woocommerce-notices-wrapper .woocommerce-message {
    border-top-color: var(--primary) !important;
}

/* ══════════════════════════════════════════════════════════
   RESPONSIVE — WC PAGES MOBILE
   ══════════════════════════════════════════════════════════ */
@media (max-width: 767px) {
    .woocommerce-cart .woocommerce-cart-form { padding: 1rem; }
    #customer_details,
    #order_review { padding: 1.25rem; }
    .cart-collaterals .cart_totals { max-width: 100%; padding: 1.25rem; }
    .woocommerce-order-details,
    .woocommerce-customer-details { padding: 1.25rem; }
    .woocommerce-order-overview { padding: 1rem 1.25rem; }
}

/* ══════════════════════════════════════════════════════════
   CF7 — CONTACT FORM (matches Veloria design)
   ══════════════════════════════════════════════════════════ */
.wpcf7 {
    font-family: 'Jost', sans-serif;
    font-size: 16px;
    line-height: 1.5;
    color: #1a1a1a;
}
.wpcf7 form.wpcf7-form {
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.veloria-cf7-row {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
}
@media (max-width: 767px) {
    .veloria-cf7-row { grid-template-columns: 1fr; }
}
.veloria-cf7-field {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.veloria-cf7-field label {
    color: rgba(26, 25, 25, 0.8);
    font-size: 14px;
    line-height: 1.43;
    display: block;
}
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 select,
.wpcf7 textarea {
    width: 100%;
    background: transparent;
    border: 1px solid #e7e3da;
    padding: 12px 16px;
    font-family: 'Jost', sans-serif;
    font-size: 16px;
    line-height: 1.5;
    color: #1a1a1a;
    outline: none;
    transition: border-color 0.2s;
    border-radius: 0;
    -webkit-appearance: none;
    box-sizing: border-box;
}
.wpcf7 input[type="text"]:focus,
.wpcf7 input[type="email"]:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus {
    border-color: #1a1a1a;
}
.wpcf7 textarea {
    resize: none;
}
.veloria-cf7-select-wrap {
    position: relative;
}
.veloria-cf7-select-wrap select {
    appearance: none;
    -webkit-appearance: none;
    padding-right: 40px;
    cursor: pointer;
}
.veloria-cf7-select-wrap::after {
    content: '';
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    width: 12px;
    height: 8px;
    background: url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%231a1a1a' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center;
    pointer-events: none;
}
.wpcf7 input[type="submit"] {
    display: block;
    background-color: #6a9075;
    color: #fff;
    font-family: 'Jost', sans-serif;
    font-size: 14px;
    letter-spacing: 1.4px;
    line-height: 1.43;
    text-transform: uppercase;
    padding: 16px 32px;
    border: none;
    border-radius: 0;
    cursor: pointer;
    margin-top: 8px;
    transition: background-color 0.25s;
    -webkit-appearance: none;
}
.wpcf7 input[type="submit"]:hover {
    background-color: #5a7f65;
}
.wpcf7-response-output {
    border: none !important;
    padding: 12px 0 !important;
    margin: 0 !important;
    font-size: 14px;
}
.wpcf7-not-valid-tip {
    color: #c0392b;
    font-size: 13px;
    margin-top: 4px;
}
.wpcf7 .wpcf7-spinner {
    display: none;
}
