/* Canova — styles du site (charte : rouge #B5121B, noir #121213, ivoire #F2F0EC) */
:root{--cv-red:#B5121B;--cv-red-dark:#8E0D14;--cv-ink:#121213;--cv-ivory:#F2F0EC;--cv-sand:#E9E5DE;--cv-line:#E4E1DB;--cv-muted:#6A6661;--cv-text:#3A3836;--cv-ease:cubic-bezier(.2,.7,.2,1)}
body{font-family:'Jost',sans-serif;color:var(--cv-text);background:#FAF9F7}
h1,h2,h3,.entry-title,.product_title,.woocommerce-products-header__title{font-family:'Cinzel',serif;font-weight:500;letter-spacing:.03em;color:var(--cv-ink)}
a{transition:color .25s var(--cv-ease)}

/* ---------- Animations d'entrée adoucies ---------- */
@keyframes cvFadeUp{from{opacity:0;transform:translate3d(0,36px,0)}to{opacity:1;transform:none}}
@keyframes cvFadeLeft{from{opacity:0;transform:translate3d(-40px,0,0)}to{opacity:1;transform:none}}
@keyframes cvFadeRight{from{opacity:0;transform:translate3d(40px,0,0)}to{opacity:1;transform:none}}
@keyframes cvZoomIn{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}
@keyframes cvFade{from{opacity:0}to{opacity:1}}
.elementor-element.animated{animation-duration:.95s;animation-timing-function:var(--cv-ease)}
.elementor-element.animated.fadeInUp{animation-name:cvFadeUp}
.elementor-element.animated.fadeInLeft{animation-name:cvFadeLeft}
.elementor-element.animated.fadeInRight{animation-name:cvFadeRight}
.elementor-element.animated.zoomIn{animation-name:cvZoomIn}
.elementor-element.animated.fadeIn{animation-name:cvFade}
@media (prefers-reduced-motion:reduce){.elementor-element.animated{animation:none!important}.elementor-invisible{visibility:visible!important}*{transition:none!important}}

/* ---------- En-tête ---------- */
.cv-topbar p{margin:0}
.cv-topbar a{color:#F5F4F1;text-decoration:underline;text-underline-offset:3px}
.cv-dot{display:inline-block;width:6px;height:6px;background:#E2575D;transform:rotate(45deg);margin:0 12px 2px 0}
.cv-header-main{transition:box-shadow .35s var(--cv-ease),padding .35s var(--cv-ease)}
.cv-header-main.elementor-sticky--effects{box-shadow:0 10px 30px rgba(18,18,19,.08)}
.cv-header-main .cv-logo img{transition:width .35s var(--cv-ease)}
.cv-header-main.elementor-sticky--effects .cv-logo img{width:160px}
.cv-nav .elementor-nav-menu--dropdown{box-shadow:0 18px 40px rgba(18,18,19,.12)}
.cv-cart .elementor-menu-cart__toggle .elementor-button{background:transparent;border:0;padding:6px}
.cv-cart .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before{font-family:'Jost',sans-serif;font-weight:600}

/* ---------- Titres et ornements ---------- */
.cv-swoosh-title .elementor-heading-title:after{content:"";display:block;width:76px;height:16px;margin:14px auto 0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 72 16'%3E%3Cpath d='M2 12 C 20 4, 42 1, 70 6 C 46 4, 24 7, 2 12 Z' fill='%23B5121B'/%3E%3Cpath d='M6 15 C 26 8, 48 6, 71 9 C 48 8, 26 11, 6 15 Z' fill='%23121213'/%3E%3C/svg%3E") no-repeat center/contain}
.cv-swoosh-left .elementor-heading-title:after{margin-left:0}
.cv-dark .cv-swoosh-title .elementor-heading-title:after{filter:brightness(1.6)}
.cv-eyebrow .elementor-heading-title{display:inline-flex;align-items:center;gap:14px}
.cv-eyebrow .elementor-heading-title:before{content:"";width:40px;height:1px;background:currentColor;flex:none}
.elementor-widget-heading.cv-eyebrow[class*=align-center] .elementor-heading-title:before{display:none}

/* ---------- Hero ---------- */
.cv-hero{overflow:hidden}
.cv-hero-media{position:relative}
.cv-hero-media:before{content:"";position:absolute;left:-14%;right:-14%;top:4%;height:34%;z-index:0;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 260'%3E%3Cdefs%3E%3ClinearGradient id='r' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23E02A32'/%3E%3Cstop offset='1' stop-color='%238E0D14'/%3E%3C/linearGradient%3E%3ClinearGradient id='b' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%234A4A4E'/%3E%3Cstop offset='1' stop-color='%230E0E0F'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M50 246 C 330 138, 660 96, 996 130 C 660 112, 340 162, 50 246 Z' fill='url(%23b)'/%3E%3Cpath d='M8 214 C 250 92, 600 30, 992 92 C 640 62, 300 122, 8 214 Z' fill='url(%23r)'/%3E%3Cpath d='M40 196 C 290 96, 610 44, 976 90 C 620 58, 300 106, 40 196 Z' fill='%23fff' opacity='.22'/%3E%3C/svg%3E") no-repeat center/100% auto}
.cv-hero-media>.e-con-inner,.cv-hero-media .elementor-widget{position:relative;z-index:1}
.cv-hero-img img{box-shadow:0 30px 70px rgba(18,18,19,.18);transition:transform .8s var(--cv-ease)}
.cv-hero-img:hover img{transform:scale(1.02)}
.cv-trust .elementor-icon-list-items{row-gap:10px}

/* ---------- Boutons ---------- */
.cv-btn .elementor-button{transition:background .3s var(--cv-ease),color .3s var(--cv-ease),transform .3s var(--cv-ease),box-shadow .3s var(--cv-ease)}
.cv-btn .elementor-button:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(18,18,19,.16)}
.cv-btn .elementor-button-icon{transition:transform .3s var(--cv-ease)}
.cv-btn .elementor-button:hover .elementor-button-icon{transform:translateX(4px)}
.cv-chip .elementor-button{transition:all .25s var(--cv-ease)}

/* ---------- Catégories ---------- */
.cv-panel{box-shadow:0 1px 0 rgba(0,0,0,.02)}
.cv-circle img{width:128px!important;height:128px!important;object-fit:cover;object-position:center top;border-radius:50%;border:1px solid var(--cv-line);background:var(--cv-ivory);transition:transform .45s var(--cv-ease),box-shadow .45s var(--cv-ease)}
.cv-cat:hover .cv-circle img{transform:translateY(-6px) scale(1.03);box-shadow:0 16px 32px rgba(18,18,19,.14)}
.cv-cat .elementor-heading-title:before{content:"";display:block;width:26px;height:2px;background:var(--cv-red);margin:0 auto 12px;transition:width .35s var(--cv-ease)}
.cv-cat:hover .elementor-heading-title:before{width:46px}
.cv-cat .elementor-heading-title a{color:inherit}

/* ---------- Univers (cartes photo) ---------- */
.cv-universe{overflow:hidden;transition:transform .5s var(--cv-ease),box-shadow .5s var(--cv-ease)}
.cv-universe:hover{transform:translateY(-6px);box-shadow:0 24px 50px rgba(18,18,19,.22)}

/* ---------- Bandes sombres et vague ---------- */
.cv-dark{position:relative;overflow:hidden}
.cv-swoosh-bg:after{content:"";position:absolute;right:-12%;bottom:-40px;width:70%;height:200px;z-index:0;pointer-events:none;opacity:.85;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 260'%3E%3Cpath d='M8 214 C 250 92, 600 30, 992 92 C 640 62, 300 122, 8 214 Z' fill='%23B5121B'/%3E%3Cpath d='M50 246 C 330 138, 660 96, 996 130 C 660 112, 340 162, 50 246 Z' fill='%232A2A2D'/%3E%3C/svg%3E") no-repeat right bottom/100% auto}
.cv-swoosh-bg>.e-con-inner,.cv-swoosh-bg>.elementor-element{position:relative;z-index:1}
.cv-framed img{box-shadow:0 30px 60px rgba(0,0,0,.35)}

/* ---------- Marques ---------- */
.cv-brands p{margin:0;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 0}
.cv-brands i{font-style:normal;color:var(--cv-red);margin:0 22px}

/* ---------- Galerie ---------- */
.cv-gal{overflow:hidden}
.cv-zoom{overflow:hidden}
.cv-zoom img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform 1.1s var(--cv-ease),filter .6s}
.cv-gal:hover .cv-zoom img{transform:scale(1.07)}

/* ---------- Avis et heures ---------- */
.cv-rating{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap}
.cv-score{font-family:'Cinzel',serif;font-size:44px;line-height:1;color:var(--cv-ink)}
.cv-stars{color:var(--cv-red);font-size:22px;letter-spacing:3px}
.cv-src{color:var(--cv-muted);font-size:15px}
.cv-hours{margin:0}
.cv-hours div{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #ECE9E4;font-size:16px}
.cv-hours dd{margin:0}
.cv-map iframe{display:block;filter:grayscale(.25)}
.cv-iconbox{background:#FAF9F7;border:1px solid #ECE9E4;padding:32px 28px;height:100%;transition:transform .4s var(--cv-ease),box-shadow .4s var(--cv-ease)}
.cv-iconbox:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(18,18,19,.08)}
.cv-why-row>.elementor-widget,.cv-why-row>.e-con-inner>.elementor-widget{flex:1 1 280px}
.cv-faq .elementor-accordion-item{border-color:var(--cv-line)!important;background:#fff}
.cv-faq .elementor-tab-title{padding:20px 24px}
.cv-form .elementor-field-group .elementor-field{min-height:48px}

/* ---------- WooCommerce : grilles produits ---------- */
.woocommerce ul.products,.woocommerce-page ul.products{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 22px;margin:0!important}
.woocommerce ul.products:before,.woocommerce ul.products:after{display:none!important}
.woocommerce ul.products li.product{width:auto!important;margin:0!important;float:none!important;background:#fff;border:1px solid #ECE9E4;padding:0 0 18px!important;display:flex;flex-direction:column;transition:transform .45s var(--cv-ease),box-shadow .45s var(--cv-ease);text-align:left}
.woocommerce ul.products li.product:hover{transform:translateY(-6px);box-shadow:0 22px 46px rgba(18,18,19,.10)}
.woocommerce ul.products li.product a img,.woocommerce ul.products li.product .astra-shop-thumbnail-wrap img{width:100%;aspect-ratio:4/5;object-fit:contain;background:#F1EFEB;margin:0 0 14px!important;padding:14px;transition:transform .8s var(--cv-ease)}
.woocommerce ul.products li.product:hover a img{transform:scale(1.03)}
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap{overflow:hidden}
.woocommerce ul.products li.product .astra-shop-summary-wrap,.woocommerce ul.products li.product>a:not(.button){padding:0 18px}
.woocommerce ul.products li.product .ast-woo-product-category{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--cv-muted)}
.woocommerce ul.products li.product .woocommerce-loop-product__title{font-family:'Jost',sans-serif!important;font-size:16px!important;font-weight:400;letter-spacing:0;line-height:1.35;color:var(--cv-ink);margin:4px 0 8px}
.woocommerce ul.products li.product .price{font-family:'Jost',sans-serif;font-size:18px;font-weight:500;color:var(--cv-ink)!important}
.cv-instore{font-family:'Jost',sans-serif;font-size:13px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--cv-red)}
.woocommerce ul.products li.product .button,.woocommerce ul.products li.product .ast-on-card-button{margin:auto 18px 0!important;background:var(--cv-ink)!important;color:#fff!important;border-radius:0!important;font-family:'Jost',sans-serif;font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;padding:13px 16px!important;text-align:center;transition:background .3s var(--cv-ease)}
.woocommerce ul.products li.product .button:hover{background:var(--cv-red)!important}
.woocommerce span.onsale{background:var(--cv-red);border-radius:0;font-family:'Jost',sans-serif;letter-spacing:.12em;text-transform:uppercase;font-size:11px}
@media (max-width:1024px){.woocommerce ul.products,.woocommerce-page ul.products{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:767px){.woocommerce ul.products,.woocommerce-page ul.products{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}.woocommerce ul.products li.product .woocommerce-loop-product__title{font-size:14px!important}.woocommerce ul.products li.product .button{margin:auto 10px 0!important;font-size:11px;padding:11px 8px!important}}

/* ---------- WooCommerce : boutique, fiche produit, panier ---------- */
.woocommerce-products-header,.ast-archive-description{background:var(--cv-ivory);padding:48px 24px!important;margin-bottom:36px;text-align:center}
.woocommerce-products-header__title,.ast-archive-description .ast-archive-title{font-size:clamp(32px,4vw,48px)!important}
.term-description{max-width:720px;margin:12px auto 0;color:#4E4B47}
.woocommerce .woocommerce-breadcrumb{font-size:13px;letter-spacing:.04em;color:var(--cv-muted)}
.woocommerce .woocommerce-ordering select{border:1px solid #D6D2CB;border-radius:0;min-height:44px;font-family:'Jost',sans-serif}
.single-product div.product .product_title{font-size:clamp(28px,3vw,40px);line-height:1.15;margin-bottom:12px}
.single-product div.product p.price,.single-product div.product span.price{font-family:'Jost',sans-serif;font-size:28px;font-weight:500;color:var(--cv-ink)}
.single-product div.product .woocommerce-product-gallery{background:#F1EFEB}
.single-product div.product .woocommerce-product-gallery img{object-fit:contain}
.woocommerce div.product form.cart .button,.woocommerce .single_add_to_cart_button,.woocommerce a.button,.woocommerce button.button,.woocommerce-page .button,.wc-block-components-button:not(.is-link){background:var(--cv-ink)!important;color:#fff!important;border-radius:0!important;font-family:'Jost',sans-serif!important;font-weight:500;letter-spacing:.14em;text-transform:uppercase;font-size:13px!important;transition:background .3s var(--cv-ease),transform .3s var(--cv-ease)}
.woocommerce div.product form.cart .button:hover,.woocommerce .single_add_to_cart_button:hover,.woocommerce a.button:hover,.woocommerce button.button:hover,.wc-block-components-button:not(.is-link):hover{background:var(--cv-red)!important;transform:translateY(-1px)}
.woocommerce .quantity .qty{border:1px solid var(--cv-ink);border-radius:0;min-height:48px}
.cv-brand{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--cv-muted);margin:0 0 6px}
.cv-instore-box{background:#fff;border:1px solid #ECE9E4;border-left:3px solid var(--cv-red);padding:20px 22px;margin:18px 0 24px}
.cv-instore-box p{margin:0 0 14px;color:#3A3836}
.cv-instore-actions{display:flex;flex-wrap:wrap;gap:10px}
.cv-instore-actions .button.cv-call{background:var(--cv-red)!important}
.cv-instore-actions .button.cv-ghost{background:transparent!important;color:var(--cv-ink)!important;border:1px solid var(--cv-ink)!important}
.cv-instore-actions .button.cv-ghost:hover{background:var(--cv-ink)!important;color:#fff!important}
.woocommerce-tabs ul.tabs li a{font-family:'Cinzel',serif;letter-spacing:.04em}
.related.products>h2,.upsells.products>h2{text-align:center;font-size:28px;margin-bottom:28px}
.wc-block-cart,.wc-block-checkout{font-family:'Jost',sans-serif}
.wc-block-components-totals-item__label,.wc-block-components-product-name{color:var(--cv-ink)}
.wp-block-woocommerce-cart .wc-block-cart__submit-button{background:var(--cv-red)!important}
.woocommerce-info,.woocommerce-message{border-top-color:var(--cv-red)}
.woocommerce-info:before,.woocommerce-message:before{color:var(--cv-red)}

/* ---------- Espacement des pages WooCommerce ---------- */
.woocommerce-cart #primary,.woocommerce-checkout #primary,.woocommerce-account #primary,.single-product #primary,.post-type-archive-product #primary,.tax-product_cat #primary{padding-top:48px;padding-bottom:80px}
.woocommerce-cart .entry-title,.woocommerce-checkout .entry-title,.woocommerce-account .entry-title{font-size:clamp(30px,3.4vw,44px);margin-bottom:28px}
@media (max-width:767px){.woocommerce-cart #primary,.woocommerce-checkout #primary,.woocommerce-account #primary,.single-product #primary,.post-type-archive-product #primary,.tax-product_cat #primary{padding-top:28px;padding-bottom:56px}}
