/* ==========================================================================
   Charity Basket — thème
   Couleurs et typographies reprises de la maquette Lovable.
   ========================================================================== */

@font-face { font-family: "Archivo"; font-style: normal; font-display: swap; font-weight: 100 900; font-stretch: 62% 125%; src: url(../fonts/archivo-latin-wdth-normal.woff2) format("woff2-variations"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Archivo"; font-style: normal; font-display: swap; font-weight: 100 900; font-stretch: 62% 125%; src: url(../fonts/archivo-latin-ext-wdth-normal.woff2) format("woff2-variations"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "Inter"; font-style: normal; font-display: swap; font-weight: 100 900; src: url(../fonts/inter-latin-wght-normal.woff2) format("woff2-variations"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Inter"; font-style: normal; font-display: swap; font-weight: 100 900; src: url(../fonts/inter-latin-ext-wght-normal.woff2) format("woff2-variations"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }

:root {
	--cb-bg: #ffffff;
	--cb-fg: #0d0d0d;
	--cb-muted: #636363;
	--cb-secondary: #f4f3f2;
	--cb-accent: #efeeed;
	--cb-surface: #f1f0ed;
	--cb-border: #e5e4e3;
	--cb-input: #dededc;
	--cb-green: #16a34a;
	--cb-green-soft: #dcfce7;
	--cb-coral: #e85f61;
	--cb-navy: #242d42;
	--cb-red: #e7000b;
	--cb-radius: .5rem;
	--cb-font-display: "Archivo", "Arial Narrow", system-ui, sans-serif;
	--cb-font: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
	--header-h: 3.5rem;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 4.5rem; }
body { margin: 0; background: var(--cb-bg); color: var(--cb-fg); font-family: var(--cb-font); font-size: 1rem; line-height: 1.5; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img, svg, video { max-width: 100%; height: auto; }
a { color: inherit; }
button, input, select, textarea { font: inherit; color: inherit; }
h1, h2, h3, .site-logo__text { font-family: var(--cb-font-display); font-stretch: 85%; letter-spacing: -.02em; }
:focus-visible { outline: 2px solid var(--cb-fg); outline-offset: 2px; }
.container { width: 100%; max-width: 72rem; margin: 0 auto; padding: 0 1rem; }
.skip-link:focus { position: fixed !important; left: 1rem; top: 1rem; width: auto; height: auto; clip: auto; clip-path: none; z-index: 100; background: #fff; padding: .5rem 1rem; border-radius: .5rem; }

/* --- Bandeau slogan ------------------------------------------------------- */
.slogan-bar { margin: 0; border-bottom: 1px solid var(--cb-border); background: var(--cb-green-soft); color: var(--cb-green); padding: .375rem .75rem; text-align: center; font-size: 11px; line-height: 1.25; }
.slogan-bar__icon { margin-right: .3rem; vertical-align: -1px; }
.slogan-bar__a { font-weight: 600; }
.slogan-bar__b { font-weight: 900; }
@media (min-width: 640px) { .slogan-bar { font-size: .75rem; } }

/* --- En-tête -------------------------------------------------------------- */
.site-header { position: sticky; top: 0; z-index: 30; border-bottom: 1px solid var(--cb-border); background: rgba(255,255,255,.95); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 0; } }
.site-header__inner { display: flex; align-items: center; gap: 1.5rem; height: var(--header-h); }
.site-logo { display: flex; align-items: center; gap: .5rem; flex: none; text-decoration: none; }
.site-logo__mark { height: 1.75rem; width: auto; }
.site-logo__text { margin: 0; font-size: 1.125rem; font-weight: 900; text-transform: uppercase; line-height: 1; letter-spacing: -.025em; }
.is-coral { color: var(--cb-coral); }
.is-navy { color: var(--cb-navy); }
.site-nav { display: none; gap: 1.25rem; font-size: .875rem; }
.site-nav a { text-decoration: none; }
.site-nav a:hover { text-decoration: underline; text-underline-offset: 4px; }
.site-nav a.is-active, .site-nav .current-menu-item > a { font-weight: 700; }
.site-actions { margin-left: auto; display: flex; align-items: center; gap: .5rem; }
.site-actions__sell, .site-actions__login { display: none !important; }
.site-actions__login { font-size: .875rem; text-decoration: none; }
.site-cart { position: relative; display: grid; place-items: center; width: 2.25rem; height: 2.25rem; }
.site-cart__count[hidden] { display: none; }
.site-cart__count { position: absolute; right: -2px; top: -2px; display: grid; place-items: center; min-width: 1rem; height: 1rem; padding: 0 .2rem; border-radius: 999px; background: var(--cb-fg); color: var(--cb-bg); font-size: 10px; line-height: 1; }
@media (min-width: 768px) {
	.site-nav { display: flex; }
	.site-actions__sell { display: inline-flex !important; }
	.site-actions__login { display: inline !important; }
}

/* --- Pied de page --------------------------------------------------------- */
.site-main { min-height: 60vh; padding-bottom: 5rem; }
@media (min-width: 768px) { .site-main { padding-bottom: 0; } }
.site-footer { margin-top: 4rem; border-top: 1px solid var(--cb-border); background: var(--cb-surface); padding: 2.5rem 0 6rem; font-size: .875rem; color: var(--cb-muted); }
@media (min-width: 768px) { .site-footer { padding-bottom: 2.5rem; } }
.site-footer__brand { display: flex; align-items: center; gap: .5rem; }
.site-footer__logo { height: 2rem; width: auto; }
.site-footer__nav { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; margin-top: 1rem; }
.site-footer__nav a { text-decoration: none; }
.site-footer__nav a:hover { color: var(--cb-fg); }
@media (min-width: 640px) { .site-footer__nav { display: flex; gap: 1.5rem; } }
.site-footer__note { max-width: 28rem; margin: .75rem 0 0; }
.site-footer__copy { margin: 1rem 0 0; font-size: .75rem; }

/* --- Navigation mobile ---------------------------------------------------- */
.bottom-nav { position: fixed; inset: auto 0 0 0; z-index: 30; display: grid; grid-template-columns: repeat(5, 1fr); border-top: 1px solid var(--cb-border); background: var(--cb-bg); padding-bottom: env(safe-area-inset-bottom); }
.bottom-nav a { display: flex; flex-direction: column; align-items: center; gap: .125rem; padding: .5rem 0; font-size: 11px; color: var(--cb-muted); text-decoration: none; }
.bottom-nav a.is-active { color: var(--cb-fg); font-weight: 600; }
@media (min-width: 768px) { .bottom-nav { display: none; } }

/* --- Accueil -------------------------------------------------------------- */
.hero { position: relative; overflow: hidden; color: #fff; }
.hero--photo { height: 70vh; min-height: 460px; }
.hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero__shade { position: absolute; inset: 0; background: linear-gradient(to top, rgba(13,13,13,.8), rgba(13,13,13,.2) 50%, transparent); }
.hero--photo .hero__content { position: absolute; left: 0; right: 0; bottom: 0; padding-bottom: 2.5rem; }
.hero--brand { background: var(--cb-navy); min-height: 460px; display: flex; align-items: flex-end; }
.hero--brand::before { content: ""; position: absolute; inset: 0; background: radial-gradient(70% 90% at 85% 30%, rgba(232,95,97,.35), transparent 60%); }
.hero__mark { position: absolute; right: -6%; top: 8%; width: min(70vw, 560px); opacity: .95; transform: rotate(-6deg); }
.hero--brand .hero__content { position: relative; padding-top: 12rem; padding-bottom: 2.5rem; }
.hero__title { max-width: 48rem; margin: 0; font-size: 2.25rem; font-weight: 900; text-transform: uppercase; line-height: .95; }
@media (min-width: 640px) { .hero__title { font-size: 3.75rem; } }
@media (min-width: 768px) { .hero__title { font-size: 4.5rem; } .hero--brand { min-height: 560px; } .hero__mark { right: 4%; top: 12%; width: 440px; } }
.hero__ctas { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.5rem; }
.impact-band { border-bottom: 1px solid var(--cb-border); background: var(--cb-green-soft); padding: 2.5rem 0; }
.home-sections { display: grid; gap: 4rem; padding-top: 3rem; }
.section-title { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.section-title h2 { margin: 0; font-size: 1.5rem; font-weight: 900; text-transform: uppercase; line-height: 1.1; }
.section-title a { font-size: .875rem; }
@media (min-width: 640px) { .section-title h2 { font-size: 1.875rem; } }
.cb-brand-tile { display: grid; place-items: center; height: 5rem; border-radius: calc(var(--cb-radius) - 2px); background: var(--cb-surface); font-family: var(--cb-font-display); font-stretch: 85%; font-size: 1.125rem; font-weight: 900; text-transform: uppercase; text-decoration: none; text-align: center; padding: 0 .25rem; line-height: 1.05; transition: background-color .15s; }
.cb-brand-tile:hover { background: var(--cb-accent); }
.cb-step-item { border-top: 2px solid var(--cb-fg); padding-top: 1rem; }
.cb-step-item p { margin: 0; }
.cb-step-item__num { font-family: var(--cb-font-display); font-stretch: 85%; font-size: 3rem; font-weight: 900; line-height: 1; }
.cb-step-item__title { margin-top: .5rem !important; font-size: 1.125rem; font-weight: 700; }
.cb-step-item__text { margin-top: .25rem !important; font-size: .875rem; color: var(--cb-muted); }
.cb-steps-block { gap: 1.5rem; grid-template-columns: 1fr; }
@media (min-width: 768px) { .cb-steps-block { grid-template-columns: repeat(3, 1fr); } }

/* --- Pages ---------------------------------------------------------------- */
.page-wrap { padding-top: 1.5rem; padding-bottom: 1rem; }
.page-wrap--narrow { max-width: 64rem; padding-top: 2rem; }
.page-wrap--mid { max-width: 56rem; padding-top: 2rem; }
.page-title { margin: 0; font-size: 1.875rem; font-weight: 900; text-transform: uppercase; line-height: 1.1; }
.page-title--lg { font-size: 1.875rem; }
.page-title--xl { font-size: 2.25rem; }
@media (min-width: 640px) { .page-title--lg { font-size: 2.25rem; } .page-title--xl { font-size: 3rem; } }
.lead { max-width: 36rem; margin: .5rem 0 0; color: var(--cb-muted); }
.entry { margin-top: 1.5rem; line-height: 1.65; }
.entry > :first-child { margin-top: 0; }
.h2-block { margin: 3.5rem 0 1rem; font-size: 1.5rem; font-weight: 900; text-transform: uppercase; line-height: 1.1; }
.back-link { font-size: .875rem; }
.big-404 { font-family: var(--cb-font-display); font-weight: 900; font-size: 6rem; margin: 2rem 0 0; line-height: 1; }
.cb-center { text-align: center; }
.how-grid { display: grid; gap: 1rem; margin-top: 2.5rem; }
@media (min-width: 640px) { .how-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .how-grid { grid-template-columns: repeat(3, 1fr); } }
.how-card { border: 1px solid var(--cb-border); border-radius: var(--cb-radius); padding: 1.25rem; }
.how-card p { margin: 0; }
.how-card__title { margin-top: .75rem !important; font-size: 1.125rem; font-weight: 700; }
.how-card__text { margin-top: .25rem !important; font-size: .875rem; color: var(--cb-muted); }
.how-card--green { border-color: var(--cb-green); background: var(--cb-green-soft); }
.how-card--green .cb-ic { color: var(--cb-green); }
.cycle { display: grid; gap: .75rem; list-style: none; margin: 1rem 0 0; padding: 0; }
@media (min-width: 640px) { .cycle { grid-template-columns: repeat(3, 1fr); } }
.cycle li { display: flex; gap: .75rem; border-top: 2px solid var(--cb-fg); padding-top: .75rem; font-size: .875rem; }
.cycle li span { font-family: var(--cb-font-display); font-stretch: 85%; font-size: 1.875rem; font-weight: 900; line-height: 1; }
.faq { margin-top: 1rem; }
.faq__item { border-bottom: 1px solid var(--cb-border); }
.faq__item summary { cursor: pointer; padding: 1rem 0; font-weight: 500; list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
.faq__item summary::after { content: "+"; font-size: 1.25rem; line-height: 1; }
.faq__item[open] summary::after { content: "−"; }
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item p { margin: 0 0 1rem; color: var(--cb-muted); font-size: .9rem; }
.impact-box { margin: 2rem 0; border-radius: var(--cb-radius); background: var(--cb-green-soft); padding: 2rem 1rem; }
.asso-head { display: flex; align-items: center; gap: 1rem; margin-top: 1.5rem; }
.asso-head .page-title { font-size: 2.25rem; }

/* --- Catalogue ------------------------------------------------------------ */
.catalog__bar { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-top: 1rem; }
.catalog__bar p { margin: 0; }
.catalog__sort { padding-right: 2rem; appearance: none; background: var(--cb-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%230d0d0d' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right .75rem center; }
.catalog__layout { display: grid; gap: 2rem; margin-top: 1.5rem; }
.catalog__filters { display: none; }
.catalog__filters.is-open { display: grid; gap: 1.5rem; align-content: start; }
.catalog__empty { grid-column: 1 / -1; padding: 5rem 0; text-align: center; color: var(--cb-muted); }
.filter-group { border: 0; margin: 0; padding: 0; min-width: 0; }
.filter-group legend, .filter-group__label { display: block; margin-bottom: .5rem; font-size: .875rem; font-weight: 700; padding: 0; }
.filter-group .cb-range { margin-top: 0; }
@media (min-width: 768px) {
	.catalog__toggle { display: none !important; }
	.catalog__layout { grid-template-columns: 240px minmax(0, 1fr); }
	.catalog__filters { display: grid; gap: 1.5rem; align-content: start; }
	.js .catalog__apply { display: none; }
}
.cb-pagination { margin-top: 2.5rem; }
.cb-pagination .nav-links { display: flex; justify-content: center; gap: .5rem; flex-wrap: wrap; }
.cb-pagination .page-numbers { display: grid; place-items: center; min-width: 2.25rem; height: 2.25rem; padding: 0 .5rem; border-radius: 999px; border: 1px solid var(--cb-border); text-decoration: none; font-size: .875rem; }
.cb-pagination .page-numbers.current { background: var(--cb-fg); color: var(--cb-bg); border-color: var(--cb-fg); }
.screen-reader-text.nav-subtitle, .cb-pagination h2 { position: absolute; clip: rect(1px,1px,1px,1px); }

/* --- Fiche produit -------------------------------------------------------- */
.product-layout { display: grid; gap: 2rem; }
@media (min-width: 768px) { .product-layout { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.product-gallery__main { position: relative; aspect-ratio: 4 / 5; overflow: hidden; border-radius: calc(var(--cb-radius) - 2px); background: var(--cb-surface); }
.product-gallery__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.product-gallery__thumbs { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; margin-top: .5rem; }
.product-gallery__thumb { aspect-ratio: 1; overflow: hidden; border-radius: .25rem; background: var(--cb-surface); border: 0; padding: 0; cursor: pointer; }
.product-gallery__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.product-gallery__thumb.is-active { box-shadow: 0 0 0 2px var(--cb-fg); }
.product-info__brand { margin: 0; font-size: .875rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.product-info__title { margin: 0; font-size: 1.875rem; font-weight: 900; text-transform: uppercase; line-height: 1.1; }
@media (min-width: 640px) { .product-info__title { font-size: 2.25rem; } }
.product-info__price { margin: .75rem 0 0; font-size: 1.875rem; font-weight: 700; }
.product-info__chips { margin-top: 1rem; font-size: .875rem; }
.donation-box { margin-top: 1.5rem; border: 1px solid var(--cb-green); border-radius: var(--cb-radius); background: var(--cb-green-soft); padding: 1rem; }
.donation-box p { margin: 0; }
.donation-box__title { display: flex; align-items: center; gap: .5rem; font-weight: 700; color: var(--cb-green); }
.donation-box .cb-sm { margin-top: .25rem; }
.product-actions { display: grid; grid-template-columns: 1fr 1fr auto; gap: .5rem; margin-top: 1.5rem; }
.product-actions form { margin: 0; }
.product-actions__wide { grid-column: span 2; }
.assurances { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; gap: .5rem; font-size: .875rem; color: var(--cb-muted); }
.assurances li { display: flex; gap: .5rem; }
.assurances .cb-ic { color: var(--cb-fg); margin-top: .15rem; }
.product-info__desc { margin-top: 1.5rem; font-size: .875rem; line-height: 1.65; }
.product-info__desc p { margin: 0 0 .75rem; }
.seller-card { display: flex; align-items: center; gap: .75rem; margin-top: 1.5rem; border: 1px solid var(--cb-border); border-radius: var(--cb-radius); padding: 1rem; text-decoration: none; transition: border-color .15s; }
.seller-card:hover { border-color: var(--cb-fg); }
.seller-card > span { display: grid; }
.seller-card__avatar { display: grid !important; place-items: center; flex: none; width: 3rem; height: 3rem; border-radius: 999px; background: var(--cb-surface); font-family: var(--cb-font-display); font-weight: 900; font-size: 1.125rem; }
.seller-card__avatar--lg { width: 4.5rem; height: 4.5rem; font-size: 1.75rem; }
.seller-card__name { display: flex !important; align-items: center; gap: .5rem; font-weight: 700; }
.related { margin-top: 4rem; }
.related .h2-block { margin-top: 0; }
.size-table { width: 100%; border-collapse: collapse; font-size: .875rem; }
.size-table th, .size-table td { text-align: left; padding: .5rem 0; border-bottom: 1px solid var(--cb-border); }
.store-head { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; margin-bottom: 2rem; }
.store-head p { margin: .25rem 0 0; }
.store-head__impact { margin-left: auto; text-align: right; border-radius: var(--cb-radius); background: var(--cb-green-soft); padding: .75rem 1rem; }
.store-head__impact .cb-display { font-size: 1.75rem; margin: 0; }

/* --- Notices WooCommerce -------------------------------------------------- */
.notices-wrap:empty { display: none; }
.notices-wrap { padding-top: 1rem; }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-notice {
	list-style: none; margin: 0 0 1rem; padding: .875rem 1rem; border-radius: var(--cb-radius); background: var(--cb-surface); font-size: .875rem;
	display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; border: 0;
}
.woocommerce-message { background: var(--cb-green-soft); color: #14532d; }
.woocommerce-error { background: #fef2f2; color: #991b1b; display: block; }
.woocommerce-error li { margin: .15rem 0; }
.woocommerce-message .button, .woocommerce-info .button { order: 2; margin-left: auto; }
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { display: none; }

/* --- Boutons et champs WooCommerce ---------------------------------------- */
.woocommerce .button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button, .woocommerce #respond input#submit,
.woocommerce-page .button, .dokan-btn-theme {
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem; height: 3rem; padding: 0 1.25rem; border-radius: 999px;
	border: 1px solid var(--cb-fg); background: var(--cb-fg); color: var(--cb-bg); font-weight: 600; font-size: .9rem; line-height: 1; cursor: pointer; text-decoration: none;
}
.woocommerce .button:hover, .woocommerce button.button:hover, .woocommerce a.button:hover { opacity: .85; background: var(--cb-fg); color: var(--cb-bg); }
.woocommerce .button:disabled, .woocommerce .button.disabled { opacity: .4; }
.woocommerce form .form-row { margin: 0 0 1rem; padding: 0; }
.woocommerce form .form-row label { display: block; margin-bottom: .35rem; font-size: .875rem; font-weight: 600; }
.woocommerce form .form-row .required { color: var(--cb-coral); text-decoration: none; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select,
.woocommerce-page form .input-text, .select2-container .select2-selection--single {
	width: 100%; height: 3rem; padding: 0 1rem; border-radius: var(--cb-radius); border: 1px solid var(--cb-input); background: var(--cb-bg); font-size: .95rem; line-height: normal;
}
.woocommerce form .form-row textarea { height: 6rem; padding: .75rem 1rem; }
.select2-container .select2-selection--single .select2-selection__rendered { line-height: 3rem; padding: 0; }
.select2-container .select2-selection--single .select2-selection__arrow { height: 3rem; right: .5rem; }
.woocommerce form .form-row-first, .woocommerce form .form-row-last { width: 100%; }
@media (min-width: 640px) {
	.woocommerce form .form-row-first, .woocommerce form .form-row-last { width: calc(50% - .375rem); float: left; }
	.woocommerce form .form-row-last { float: right; }
}
.woocommerce-billing-fields__field-wrapper::after, .woocommerce-shipping-fields__field-wrapper::after, .woocommerce-address-fields__field-wrapper::after { content: ""; display: table; clear: both; }
.woocommerce-input-wrapper { display: block; }
.woocommerce-invalid input.input-text { border-color: var(--cb-red); }

/* --- Panier --------------------------------------------------------------- */
.page-wrap--wide .entry { margin-top: 1.25rem; }
.woocommerce-cart-form { margin: 0; }
.woocommerce table.shop_table { width: 100%; border-collapse: collapse; border: 0; font-size: .9rem; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: .75rem .5rem; border-bottom: 1px solid var(--cb-border); text-align: left; vertical-align: middle; }
.woocommerce table.shop_table thead th { font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; color: var(--cb-muted); }
.woocommerce-cart-form .product-thumbnail img { width: 4rem; height: 4rem; object-fit: cover; border-radius: .25rem; background: var(--cb-surface); }
.woocommerce-cart-form .product-name a { font-weight: 700; text-decoration: none; }
.woocommerce-cart-form .product-remove a { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 999px; text-decoration: none; color: var(--cb-muted); font-size: 1.25rem; }
.woocommerce-cart-form .product-quantity .quantity { display: none; }
.woocommerce-cart-form .product-quantity::after { content: "1"; }
.woocommerce-cart-form td.actions { border: 0; }
.woocommerce-cart-form td.actions .coupon { display: flex; gap: .5rem; flex-wrap: wrap; }
.woocommerce-cart-form td.actions .coupon .input-text { width: 12rem; height: 3rem; padding: 0 1rem; border-radius: var(--cb-radius); border: 1px solid var(--cb-input); }
.woocommerce-cart-form button[name="update_cart"] { display: none; }
.cart-collaterals { margin-top: 2rem; }
.cart_totals { max-width: 26rem; margin-left: auto; border-radius: var(--cb-radius); background: var(--cb-surface); padding: 1.25rem; }
.cart_totals h2 { margin: 0 0 .5rem; font-size: 1rem; font-family: var(--cb-font); letter-spacing: 0; text-transform: none; }
.cart_totals table.shop_table th, .cart_totals table.shop_table td { padding: .5rem 0; }
.cart_totals .order-total { font-size: 1rem; font-weight: 700; }
.wc-proceed-to-checkout { margin-top: 1rem; }
.wc-proceed-to-checkout .checkout-button { width: 100%; }
.woocommerce-shipping-methods { list-style: none; margin: 0; padding: 0; }
.woocommerce-shipping-methods li { margin: .25rem 0; }
.cart-empty { text-align: center; font-family: var(--cb-font-display); font-weight: 900; text-transform: uppercase; font-size: 1.5rem; background: none !important; justify-content: center; }
.return-to-shop { text-align: center; }

/* --- Commande (paiement) -------------------------------------------------- */
form.checkout { display: grid; gap: 2rem; }
#order_review_heading { display: none; }
@media (min-width: 900px) {
	form.checkout { grid-template-columns: minmax(0, 1fr) 360px; align-items: start; }
	form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
	form.checkout #customer_details, form.checkout .cb-checkout-asso { grid-column: 1; }
	form.checkout #order_review { grid-column: 2; grid-row: 1 / span 2; position: sticky; top: 5rem; }
	form.checkout:has(> .woocommerce-NoticeGroup) #order_review { grid-row: 2 / span 2; }
}
#order_review::before { content: "Récapitulatif"; display: block; margin-bottom: .5rem; font-weight: 700; }
#customer_details .col-1, #customer_details .col-2 { width: 100%; float: none; max-width: none; padding: 0; }
#customer_details h3, .cb-checkout-step__title, #order_review_heading {
	margin: 0 0 1rem; padding-top: .5rem; border-top: 2px solid var(--cb-fg); font-family: var(--cb-font); font-size: .875rem; font-weight: 600; letter-spacing: 0; text-transform: none;
}
.woocommerce-billing-fields > h3::before { content: "1. "; }
.cb-checkout-step__title span { margin-right: .15rem; }
.woocommerce-shipping-fields h3 { border-top: 0; padding-top: 0; }
.woocommerce-shipping-fields h3 label { display: flex; align-items: center; gap: .5rem; font-weight: 600; }
.woocommerce-additional-fields h3 { display: none; }
.cb-checkout-asso .cb-muted { font-size: .875rem; margin: 0 0 1rem; }
#order_review { border-radius: var(--cb-radius); background: var(--cb-surface); padding: 1.25rem; }
#order_review_heading::after { content: " · Récapitulatif"; display: none; }
#order_review table.shop_table { font-size: .875rem; }
#order_review table.shop_table th, #order_review table.shop_table td { padding: .5rem 0; border-color: var(--cb-border); }
#order_review .order-total th, #order_review .order-total td { font-size: 1rem; font-weight: 700; border-top: 1px solid var(--cb-fg); }
body #payment, body.woocommerce-checkout #payment { margin-top: 1.25rem; background: none; border-radius: 0; }
body #payment ul.payment_methods { border: 0; padding: 0; }
body.woocommerce-checkout #payment div.payment_box::before { display: none; }
body #payment div.form-row { padding: 0; }
body #payment #place_order, body.woocommerce-checkout #payment #place_order { background: var(--cb-fg); border-color: var(--cb-fg); color: var(--cb-bg); border-radius: 999px; height: 3rem; float: none; font-size: .95rem; }
#payment::before { content: "3. Paiement"; display: block; margin-bottom: .75rem; padding-top: .5rem; border-top: 2px solid var(--cb-fg); font-size: .875rem; font-weight: 600; }
#payment ul.payment_methods { list-style: none; margin: 0; padding: 0; border: 0; display: grid; gap: .5rem; }
#payment ul.payment_methods li { border: 1px solid var(--cb-border); border-radius: var(--cb-radius); background: var(--cb-bg); padding: .875rem 1rem; }
#payment ul.payment_methods li label { font-weight: 700; }
body #payment div.payment_box, body.woocommerce-checkout #payment div.payment_box { margin: .5rem 0 0; padding: 0; background: none; font-size: .8rem; color: var(--cb-muted); }
#payment div.payment_box::before { display: none; }
#payment .place-order { margin-top: 1rem; padding: 0; }
#payment #place_order { width: 100%; }
.woocommerce-terms-and-conditions-wrapper { font-size: .75rem; color: var(--cb-muted); }
.woocommerce-form-login-toggle .woocommerce-info, .woocommerce-form-coupon-toggle .woocommerce-info { background: var(--cb-surface); }
.checkout_coupon, .woocommerce-form-login { border: 1px solid var(--cb-border); border-radius: var(--cb-radius); padding: 1rem; margin-bottom: 1rem; }

/* Confirmation de commande */
.woocommerce-order { max-width: 40rem; margin: 0 auto; }
.woocommerce-thankyou-order-received { background: var(--cb-green-soft) !important; color: #14532d; font-family: var(--cb-font-display); font-stretch: 85%; font-weight: 900; font-size: 1.5rem; text-transform: uppercase; line-height: 1.1; padding: 1.25rem; }
ul.woocommerce-order-overview { list-style: none; margin: 0 0 1.5rem; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: .5rem; font-size: .75rem; color: var(--cb-muted); }
ul.woocommerce-order-overview li { border: 1px solid var(--cb-border); border-radius: var(--cb-radius); padding: .75rem; }
ul.woocommerce-order-overview strong { display: block; color: var(--cb-fg); font-size: .9rem; }
.woocommerce-order-details__title, .woocommerce-column__title { font-size: 1.125rem; text-transform: uppercase; font-weight: 900; }
.woocommerce-customer-details address { font-style: normal; border: 1px solid var(--cb-border); border-radius: var(--cb-radius); padding: 1rem; }

/* --- Mon compte ----------------------------------------------------------- */
.woocommerce-account .entry > .woocommerce { display: grid; gap: 1.5rem; }
@media (min-width: 900px) {
	.woocommerce-account.logged-in .entry > .woocommerce { grid-template-columns: 200px minmax(0, 1fr); align-items: start; }
	.woocommerce-account.logged-in .entry > .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
	.woocommerce-account.logged-in .entry > .woocommerce > .woocommerce-notices-wrapper:empty { display: none; }
	.woocommerce-MyAccount-navigation { grid-column: 1; }
	.woocommerce-MyAccount-content { grid-column: 2; max-width: 48rem; }
}
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; gap: .5rem; overflow-x: auto; }
@media (min-width: 900px) { .woocommerce-MyAccount-navigation ul { flex-direction: column; } }
.woocommerce-MyAccount-navigation a { display: inline-flex; align-items: center; height: 2.25rem; padding: 0 .9rem; border-radius: 999px; border: 1px solid var(--cb-border); text-decoration: none; font-size: .85rem; white-space: nowrap; }
.woocommerce-MyAccount-navigation .is-active a { background: var(--cb-fg); color: var(--cb-bg); border-color: var(--cb-fg); }
.woocommerce-MyAccount-content > .cb-impact-card:first-child { margin-top: 0; }
.woocommerce-MyAccount-content .cb-stack { margin-top: 1.5rem; }
.u-columns.col2-set { display: grid; gap: 2rem; }
@media (min-width: 768px) { .u-columns.col2-set { grid-template-columns: 1fr 1fr; } }
.u-columns .u-column1, .u-columns .u-column2 { width: auto; float: none; }
.woocommerce-form-login, .woocommerce-form-register { border: 1px solid var(--cb-border); border-radius: var(--cb-radius); padding: 1.5rem; margin: 0; }
.u-columns h2 { font-size: 1.25rem; text-transform: uppercase; font-weight: 900; margin: 0 0 1rem; }
.woocommerce-form-login__rememberme { display: flex; gap: .5rem; align-items: center; margin-bottom: .75rem; font-size: .875rem; }
.woocommerce-LostPassword { font-size: .875rem; }
.user-role { display: grid; gap: .5rem; margin: 1rem 0; }
.user-role label { display: flex !important; gap: .5rem; align-items: center; font-weight: 500 !important; }
.woocommerce-Addresses { display: grid; gap: 1rem; }
@media (min-width: 768px) { .woocommerce-Addresses { grid-template-columns: 1fr 1fr; } }
.woocommerce-Address { border: 1px solid var(--cb-border); border-radius: var(--cb-radius); padding: 1rem; width: auto !important; float: none !important; }
.woocommerce-Address-title { display: flex; justify-content: space-between; align-items: baseline; }
.woocommerce-Address-title h2 { font-size: 1rem; margin: 0 0 .5rem; }
.woocommerce-Address address { font-style: normal; font-size: .875rem; }
.woocommerce-EditAccountForm fieldset { border: 1px solid var(--cb-border); border-radius: var(--cb-radius); padding: 1rem; margin: 1rem 0; }

/* --- Avis produit --------------------------------------------------------- */
.woocommerce-Reviews-title { font-size: 1.25rem; }

/* --- Dokan (tableau de bord vendeur) -------------------------------------- */
.dokan-dashboard .dokan-dash-sidebar { background: var(--cb-fg); border-radius: var(--cb-radius); }
.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li.active { background: var(--cb-coral); }
.cb-dokan-escrow { margin-top: 1rem; }
.dokan-store-wrap, .dokan-single-store { width: 100%; }

/* Vendre : compte vendeur */
.cb-sell { margin-top: .5rem; }

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; } }
.woocommerce-message:focus, .woocommerce-info:focus, .woocommerce-error:focus, .woocommerce-notices-wrapper:focus { outline: none; }


/* ==========================================================================
   Elementor : boutons et détails aux couleurs de la marque.
   Les réglages faits dans Elementor (couleurs, tailles) restent prioritaires.
   ========================================================================== */
.elementor-widget.cbx-btn .elementor-button { border-radius: 999px; height: 3rem; padding: 0 1.25rem; display: inline-flex; align-items: center; gap: .5rem; font-family: var(--cb-font); font-weight: 600; font-size: .9rem; line-height: 1; border: 1px solid transparent; transition: opacity .15s, background-color .15s; }
.elementor-widget.cbx-btn--dark .elementor-button { background: var(--cb-fg); color: #fff; }
.elementor-widget.cbx-btn--light .elementor-button { background: #fff; color: var(--cb-fg); }
.elementor-widget.cbx-btn--ghost .elementor-button { background: transparent; color: #fff; border-color: #fff; }
.elementor-widget.cbx-btn--outline .elementor-button { background: #fff; color: var(--cb-fg); border-color: var(--cb-fg); }
.elementor-widget.cbx-btn--link .elementor-button { background: none; color: var(--cb-fg); height: auto; padding: 0; font-weight: 400; font-size: .875rem; text-decoration: underline; border: 0; }
.elementor-widget.cbx-btn .elementor-button:hover { opacity: .85; }
.elementor-widget.cbx-btn--ghost .elementor-button:hover { background: rgba(255,255,255,.12); opacity: 1; }
.elementor-widget.cbx-btn .elementor-button-icon svg { width: 1rem; height: 1rem; fill: currentColor; }
.elementor-widget-heading .elementor-heading-title { font-stretch: 85%; letter-spacing: -.02em; }
.elementor-widget-shortcode .elementor-shortcode > :first-child { margin-top: 0; }
.cbx-lead .elementor-widget-container p, .cbx-lead p { max-width: 36rem; margin: 0; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.cbx-faq .elementor-toggle-item { border-bottom: 1px solid var(--cb-border); }
.cbx-faq .elementor-tab-title { border: 0 !important; padding: 1rem 0 !important; font-weight: 500; }
.cbx-faq .elementor-tab-content { border: 0 !important; padding: 0 0 1rem !important; color: var(--cb-muted); font-size: .9rem; }
.cbx-faq .elementor-toggle-title { color: var(--cb-fg); }
.cbx-hero-mark img { transform: rotate(-6deg); }
.elementor-page .page-wrap { padding-top: 0; }
