/* ==========================================================================
   Corsica Beauty - Boutique : socle commun
   Chargé sur tout le site (le mini-panier vit dans le header).

   1. Variables (DA)       5. Accordéons, code promo, emballage cadeau
   2. Typo & liens         6. Totaux
   3. Boutons              7. Mini-panier (widget « Panier » d'Elementor)
   4. Lignes produit

   Sélecteurs parfois doublés (.x.x) : passer devant woocommerce.css, le CSS de
   Hello Elementor (boutons roses, tables zébrées) et le kit Elementor.
   ========================================================================== */

/* =============================== 1. VARIABLES =============================== */

:root {
	--cb-green:        #1d3a2a;
	--cb-green-dark:   #15251a; /* boutons principaux */
	--cb-gold:         #c2a878;
	--cb-gold-dark:    #a98a58;
	--cb-cream:        #f4eed6; /* fonds récapitulatif / carte commande (crème du fil d'Ariane du site) */
	--cb-cream-border: #ebdcb6;
	--cb-line:         #ece2c9; /* séparateurs */
	--cb-field-border: #e6dabd; /* bordure des champs */
	--cb-ink:          #1a1a1a;
	--cb-muted:        #6f6f6f;
	--cb-eyebrow:      #8e8a82;
	--cb-error:        #a4342a;
	--cb-radius-pill:  999px;
	--cb-font-title:   'Lustria', Georgia, serif;
	--cb-font-body:    'Overpass', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	--cb-sticky-offset: 0px; /* hauteur du header collant + barre d'admin, mise à jour par assets/js/sticky-offset.js */
}

/* Surfaces crème : petits textes gris un peu plus foncés (#6f6f6f sur crème < 4,5:1, AA) */
.cb-recap,
.cb-thankyou__card,
.zerosix-cartblock { --cb-muted: #5c5c5c; }

/* =============================== 2. TYPO & LIENS =============================== */

.cb-title.cb-title {
	font-family: var(--cb-font-title);
	font-size: clamp(1.7rem, 2.6vw, 2.1rem);
	font-weight: 400;
	line-height: 1.1;
	letter-spacing: 0;
	text-transform: none;
	color: var(--cb-ink);
	margin: 0 0 1.75rem;
}
.cb-title:focus { outline: none; }

/* Petit libellé de section : LIVRAISON, RÈGLEMENT… */
.cb-label.cb-label {
	font-family: var(--cb-font-body);
	font-size: .68rem;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #4a4a4a;
	margin: 1.6rem 0 .8rem;
}

/* Lien discret en capitales : J'AI DÉJÀ UN COMPTE, SUPPRIMER, MODIFIER… */
a.cb-link.cb-link {
	font-family: var(--cb-font-body);
	font-size: .68rem;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--cb-ink);
	text-decoration: none;
	cursor: pointer;
}
a.cb-link.cb-link:hover,
a.cb-link.cb-link:focus-visible { color: var(--cb-green); text-decoration: underline; }

.cb-note { font-size: .8rem; line-height: 1.5; color: var(--cb-muted); margin: .6rem 0 0; }

/* =============================== 3. BOUTONS =============================== */

.cb-btn.cb-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	box-sizing: border-box;
	min-height: 44px;
	padding: .85rem 2rem;
	font-family: var(--cb-font-body);
	font-size: .85rem;
	font-weight: 600;
	line-height: 1;
	letter-spacing: .01em;
	text-align: center;
	text-decoration: none;
	text-transform: none;
	white-space: nowrap;
	border-radius: var(--cb-radius-pill);
	box-shadow: none;
	text-shadow: none;
	cursor: pointer;
	transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}
.cb-btn.cb-btn--block { display: flex; width: 100%; }

.cb-btn.cb-btn--primary,
.cb-btn.cb-btn--primary:visited {
	color: #fff;
	background: var(--cb-green-dark);
	border: 1px solid var(--cb-green-dark);
}
.cb-btn.cb-btn--primary:hover,
.cb-btn.cb-btn--primary:focus {
	color: #fff;
	background: var(--cb-green);
	border-color: var(--cb-green);
}

.cb-btn.cb-btn--outline,
.cb-btn.cb-btn--outline:visited {
	color: var(--cb-ink);
	background: #fff;
	border: 1.5px solid var(--cb-ink);
}
.cb-btn.cb-btn--outline:hover,
.cb-btn.cb-btn--outline:focus {
	color: #fff;
	background: var(--cb-green);
	border-color: var(--cb-green);
}

.cb-btn.cb-btn:focus-visible { outline: 2px solid var(--cb-gold); outline-offset: 2px; }
.cb-btn.cb-btn[disabled],
.cb-btn.cb-btn.is-loading { opacity: .6; pointer-events: none; }

/* =============================== 4. LIGNES PRODUIT =============================== */

.cb-lines {
	font-family: var(--cb-font-body);
	color: var(--cb-ink);
	margin: 0;
	border: 0;
}

.cb-line.cb-line {
	display: grid;
	grid-template-columns: 78px minmax(0, 1fr) auto;
	gap: 1.25rem;
	padding: 1.25rem 0;
	border-bottom: 1px solid var(--cb-line);
	transition: opacity .2s ease;
}
.cb-line.cb-line:first-child { padding-top: 0; }
.cb-line.is-loading { opacity: .45; pointer-events: none; }

.cb-line__thumb a { display: block; }
.cb-line .cb-line__thumb img {
	display: block;
	width: 78px;
	height: 78px;
	max-width: none;
	object-fit: cover;
	border-radius: 2px;
	box-shadow: none;
}

.cb-line__body { min-width: 0; }

.cb-line__brand {
	font-size: .62rem;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--cb-eyebrow);
	margin: .1rem 0 .25rem;
}

.cb-line .cb-line__name {
	font-size: .95rem;
	font-weight: 500;
	line-height: 1.3;
	margin: 0 0 .35rem;
}
.cb-line .cb-line__name a { color: var(--cb-ink); text-decoration: none; }
.cb-line .cb-line__name a:hover { color: var(--cb-green); }

.cb-line__desc {
	font-size: .8rem;
	line-height: 1.45;
	color: var(--cb-muted);
	margin: 0 0 .75rem;
}

.cb-line dl.variation,
.cb-thankyou ul.wc-item-meta {
	font-size: .78rem;
	color: var(--cb-muted);
	margin: 0 0 .6rem;
	padding: 0;
	list-style: none;
}
.cb-line dl.variation dt,
.cb-line dl.variation dd,
.cb-line dl.variation p,
.cb-thankyou ul.wc-item-meta li,
.cb-thankyou ul.wc-item-meta p { display: inline; margin: 0; }

.cb-line .backorder_notification { font-size: .78rem; color: var(--cb-gold-dark); margin: 0 0 .5rem; }

.cb-line__qty-label { font-size: .78rem; color: var(--cb-muted); }

/* --- Sélecteur de quantité ( - 1 + ) --- */
.cb-qty {
	display: inline-flex;
	align-items: stretch;
	height: 28px;
	border: 1px solid var(--cb-field-border);
	background: #fff;
}
.cb-qty .quantity { display: flex; margin: 0; }
.cb-qty .cb-qty__btn.cb-qty__btn {
	width: 24px;
	min-height: 0;
	padding: 0;
	margin: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--cb-ink);
	font-family: var(--cb-font-body);
	font-size: .85rem;
	font-weight: 500;
	line-height: 1;
	box-shadow: none;
	cursor: pointer;
}
.cb-qty .cb-qty__btn.cb-qty__btn:hover,
.cb-qty .cb-qty__btn.cb-qty__btn:focus { background: var(--cb-cream); color: var(--cb-ink); outline: none; }
.cb-qty .cb-qty__btn.cb-qty__btn:focus-visible { outline: 2px solid var(--cb-green); outline-offset: -2px; }

.cb-qty input.qty.qty {
	width: 26px;
	height: 100%;
	min-height: 0;
	padding: 0;
	margin: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--cb-ink);
	font-family: var(--cb-font-body);
	font-size: .8rem;
	text-align: center;
	box-shadow: none;
	-moz-appearance: textfield;
	appearance: textfield;
}
.cb-qty input.qty::-webkit-outer-spin-button,
.cb-qty input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.cb-qty input.qty:focus { outline: none; }

/* --- Prix + Supprimer --- */
.cb-line__side {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	justify-content: space-between;
	gap: .75rem;
	text-align: right;
}
.cb-line__price { font-size: .9rem; font-weight: 700; white-space: nowrap; }
.cb-line__price del { font-weight: 400; color: var(--cb-muted); margin-right: .35rem; }
.cb-line__price ins { text-decoration: none; }

.cb-line .cb-line__remove a.cb-line__remove-link {
	font-size: .68rem;
	font-weight: 600;
	line-height: 1;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #4a4a4a;
	text-decoration: none;
}
.cb-line .cb-line__remove a.cb-line__remove-link:hover,
.cb-line .cb-line__remove a.cb-line__remove-link:focus-visible { color: var(--cb-green); text-decoration: underline; }

/* =============================== 5. ACCORDÉONS =============================== */

.cb-extras { font-family: var(--cb-font-body); color: var(--cb-ink); }

.cb-accordion { border-bottom: 1px solid var(--cb-line); }
.cb-accordion > summary {
	list-style: none;
	cursor: pointer;
	padding: 1.05rem 0;
	font-size: .85rem;
	font-weight: 500;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}
.cb-accordion > summary::-webkit-details-marker { display: none; }
.cb-accordion > summary::after {
	content: "+";
	flex: 0 0 auto;
	font-size: 1.05rem;
	font-weight: 600;
	line-height: 1;
}
.cb-accordion[open] > summary::after { content: "−"; }
.cb-accordion > summary:focus-visible { outline: 2px solid var(--cb-gold); outline-offset: 2px; }
.cb-accordion__body { padding: 0 0 1.1rem; }
.cb-accordion__body:empty { display: none; }

/* --- Champ texte générique (code promo) ---
   0,4,1 / 0,5,1 : passe devant les « Champs de formulaire » du kit Elementor
   (.elementor-kit-N input:not(…):not(…) = 0,3,1, :focus = 0,4,1). */
input[type="text"].cb-input.cb-input.cb-input {
	box-sizing: border-box;
	width: 100%;
	min-height: 44px;
	margin: 0;
	padding: .7rem .9rem;
	font-family: var(--cb-font-body);
	font-size: .85rem;
	color: var(--cb-ink);
	background: #fff;
	border: 1px solid var(--cb-field-border);
	border-radius: 0;
	box-shadow: none;
}
input[type="text"].cb-input.cb-input.cb-input::placeholder { color: #7a7a7a; opacity: 1; }
input[type="text"].cb-input.cb-input.cb-input:focus {
	outline: none;
	background: #fff;
	border-color: var(--cb-green);
	box-shadow: 0 0 0 3px rgba(29, 58, 42, .1);
}

/* --- Code promo --- */
.cb-coupon.cb-coupon { display: flex; flex-wrap: wrap; gap: .75rem; float: none; padding: 0; margin: 0; }
/* Erreur ajoutée par le JS du panier de WooCommerce dans .coupon : sur sa propre ligne */
.cb-coupon .coupon-error-notice { flex: 1 0 100%; margin: 0; font-size: .8rem; color: var(--cb-error); }
.cb-coupon input[type="text"].cb-input.cb-input.cb-input { flex: 1 1 auto; min-width: 0; width: auto; }
.cb-coupon .cb-btn { flex: 0 0 auto; padding: .7rem 1.5rem; }
.cb-coupon.is-loading { opacity: .6; pointer-events: none; }
.cb-coupon-notice { margin-top: .75rem; font-size: .8rem; }

/* --- Case à cocher maison (ronde, comme sur la maquette) ---
   0,4,1 et plus : passe devant woocommerce.css (0,3,1) et le kit Elementor
   (0,3,1, :focus 0,4,1) qui sinon carrent la case ou masquent l'état coché. */
input[type="checkbox"].cb-check.cb-check.cb-check,
.woocommerce-checkout input[type="checkbox"].woocommerce-form__input-checkbox.woocommerce-form__input-checkbox {
	appearance: none;
	-webkit-appearance: none;
	position: relative;
	display: inline-block;
	flex: 0 0 auto;
	box-sizing: border-box;
	width: 16px;
	height: 16px;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 1px solid #7a7a7a;
	border-radius: 50%;
	background: #fff;
	box-shadow: none;
	cursor: pointer;
	vertical-align: middle;
}
input[type="checkbox"].cb-check.cb-check.cb-check:focus,
.woocommerce-checkout input[type="checkbox"].woocommerce-form__input-checkbox.woocommerce-form__input-checkbox:focus {
	background: #fff;
	border-color: #7a7a7a;
	box-shadow: none;
}
input[type="checkbox"].cb-check.cb-check.cb-check:checked,
.woocommerce-checkout input[type="checkbox"].woocommerce-form__input-checkbox.woocommerce-form__input-checkbox:checked {
	background: var(--cb-green);
	border-color: var(--cb-green);
}
input[type="checkbox"].cb-check.cb-check.cb-check:checked::after,
.woocommerce-checkout input[type="checkbox"].woocommerce-form__input-checkbox.woocommerce-form__input-checkbox:checked::after {
	content: "";
	position: absolute;
	left: 5px;
	top: 2px;
	width: 4px;
	height: 8px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}
input[type="checkbox"].cb-check.cb-check.cb-check:focus-visible,
.woocommerce-checkout input[type="checkbox"].woocommerce-form__input-checkbox.woocommerce-form__input-checkbox:focus-visible { outline: 2px solid var(--cb-gold); outline-offset: 2px; }

/* --- Emballage cadeau --- */
label.cb-giftwrap.cb-giftwrap {
	display: inline-flex;
	align-items: center;
	gap: .6rem;
	font-size: .85rem;
	line-height: 1.3;
	cursor: pointer;
}
.cb-giftwrap__price { font-weight: 700; margin-left: .25rem; }
.cb-giftwrap.is-loading { opacity: .5; pointer-events: none; }

/* =============================== 6. TOTAUX =============================== */

.cb-totals.cb-totals {
	width: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	border-collapse: collapse;
	background: transparent;
	font-family: var(--cb-font-body);
}
.cb-totals.cb-totals tr { background: transparent; }
.cb-totals.cb-totals th,
.cb-totals.cb-totals td {
	width: auto;
	padding: .65rem 0;
	border: 0;
	background: transparent;
	font-size: .8rem;
	line-height: 1.4;
	vertical-align: baseline;
	color: var(--cb-ink);
}
.cb-totals.cb-totals th { font-weight: 400; text-align: left; }
.cb-totals.cb-totals td { font-weight: 600; text-align: right; }

.cb-totals.cb-totals .cb-totals__total th,
.cb-totals.cb-totals .cb-totals__total td {
	padding-top: 1.1rem;
	border-top: 1px solid var(--cb-ink);
	font-size: 1rem;
	font-weight: 700;
}
.cb-totals__total td strong { font-weight: inherit; }
.cb-totals__total small.includes_tax { display: none; }
.cb-totals__currency { margin-left: .15rem; }
.cb-totals.cb-totals .cb-totals__muted { font-weight: 400; color: var(--cb-muted); }

/* Lien « [Supprimer] » d'un code promo */
.cb-totals .cart-discount td a {
	margin-left: .35rem;
	font-weight: 400;
	font-size: .75rem;
	color: var(--cb-gold-dark);
}

/* =============================== 7. MINI-PANIER =============================== */

.cb-minicart {
	font-family: var(--cb-font-body);
	color: var(--cb-ink);
	text-align: left;
}

.cb-minicart .cb-minicart__head {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: .35rem;
	padding: 0 2rem 1rem 0; /* place pour la croix de fermeture d'Elementor */
	border-bottom: 1px solid var(--cb-line);
}
.cb-minicart .cb-minicart__title {
	font-family: var(--cb-font-title);
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 1.1;
	margin: 0;
}
.cb-minicart .cb-minicart__count { font-size: .8rem; color: var(--cb-muted); }

.cb-minicart ul.cb-minicart__items.cb-minicart__items {
	list-style: none;
	margin: 0;
	padding: 0;
}
.cb-minicart ul.cb-minicart__items li.cb-minicart__item {
	display: grid;
	grid-template-columns: 64px minmax(0, 1fr) auto;
	gap: 1rem;
	margin: 0;
	padding: 1rem 0;
	border-bottom: 1px solid var(--cb-line);
	background: none;
	list-style: none;
}
.cb-minicart ul.cb-minicart__items li.cb-minicart__item::before,
.cb-minicart ul.cb-minicart__items li.cb-minicart__item::after { content: none; }

/* Sélecteurs passant par ul.cb-minicart__items (0,3,2+) : woocommerce.css cible
   .woocommerce ul.cart_list li img / li a / dl (0,2,3+) sur les pages boutique. */
.cb-minicart ul.cb-minicart__items .cb-minicart__thumb a { display: block; }
.cb-minicart ul.cb-minicart__items .cb-minicart__thumb img {
	display: block;
	float: none;
	width: 64px;
	height: 64px;
	max-width: none;
	margin: 0;
	object-fit: cover;
	border-radius: 2px;
	box-shadow: none;
}

.cb-minicart .cb-minicart__body { min-width: 0; }
.cb-minicart .cb-minicart__brand {
	font-size: .6rem;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--cb-eyebrow);
	margin: 0 0 .2rem;
}
.cb-minicart .cb-minicart__name { font-size: .88rem; font-weight: 500; line-height: 1.3; margin: 0 0 .45rem; }
.cb-minicart ul.cb-minicart__items .cb-minicart__name a {
	display: inline;
	font-weight: 500;
	color: var(--cb-ink);
	text-decoration: none;
}
.cb-minicart ul.cb-minicart__items .cb-minicart__name a:hover { color: var(--cb-green); }
.cb-minicart ul.cb-minicart__items dl.variation {
	font-size: .75rem;
	color: var(--cb-muted);
	margin: 0 0 .4rem;
	padding: 0;
	border: 0;
}
.cb-minicart ul.cb-minicart__items dl.variation::before,
.cb-minicart ul.cb-minicart__items dl.variation::after { content: none; }
.cb-minicart ul.cb-minicart__items dl.variation dt,
.cb-minicart ul.cb-minicart__items dl.variation dd,
.cb-minicart ul.cb-minicart__items dl.variation p { display: inline; float: none; margin: 0; padding: 0; border: 0; }

.cb-minicart .cb-minicart__meta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: .9rem;
	font-size: .75rem;
}
.cb-minicart .cb-minicart__qty { color: var(--cb-muted); }
.cb-minicart a.cb-minicart__remove.cb-minicart__remove {
	position: static;
	display: inline;
	width: auto;
	height: auto;
	padding: 0;
	font-size: .65rem;
	font-weight: 600;
	line-height: 1;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #4a4a4a;
	background: transparent;
	border: 0;
	border-radius: 0;
	text-decoration: none;
}
.cb-minicart a.cb-minicart__remove.cb-minicart__remove:hover { color: var(--cb-green); background: transparent; text-decoration: underline; }

.cb-minicart .cb-minicart__price { font-size: .85rem; font-weight: 700; white-space: nowrap; text-align: right; }

.cb-minicart .cb-minicart__totals { padding: 1rem 0 0; }
.cb-minicart p.cb-minicart__line.cb-minicart__line {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	margin: 0;
	padding: .35rem 0;
	font-size: .82rem;
	border: 0;
	text-align: left;
}
.cb-minicart p.cb-minicart__line--total.cb-minicart__line {
	margin-top: .5rem;
	padding-top: .85rem;
	border-top: 1px solid var(--cb-ink);
	font-size: .95rem;
	font-weight: 700;
}
.cb-minicart .cb-minicart__line strong { font-weight: inherit; }
.cb-minicart .cb-minicart__note { margin: .4rem 0 0; font-size: .75rem; color: var(--cb-muted); }

.cb-minicart p.cb-minicart__buttons.cb-minicart__buttons {
	display: flex;
	flex-direction: column;
	gap: .6rem;
	margin: 1.25rem 0 0;
	padding: 0;
}
.cb-minicart p.cb-minicart__buttons.cb-minicart__buttons::before,
.cb-minicart p.cb-minicart__buttons.cb-minicart__buttons::after { content: none; }
.cb-minicart p.cb-minicart__buttons .cb-btn { margin: 0; }

.cb-minicart .cb-minicart__empty { padding: 1.5rem 0; text-align: center; }
/* Elementor aligne .woocommerce-mini-cart__empty-message à gauche (0,3,0) */
.cb-minicart .cb-minicart__empty p.woocommerce-mini-cart__empty-message.cb-minicart__title { margin: 0 0 1.25rem; text-align: center; }

/* Conteneur Elementor (panneau latéral / déroulant) */
.elementor-menu-cart__main .widget_shopping_cart_content { font-family: var(--cb-font-body); min-height: 0; }
.elementor-menu-cart__main .blockUI.blockOverlay { background: rgba(255, 255, 255, .6) !important; }

/* Panneau latéral : seule la liste défile, en-tête / totaux / boutons restent visibles.
   (Type « Mini Cart » déroulant : hauteur gérée par le JS d'Elementor via .elementor-menu-cart__products.) */
.elementor-menu-cart--cart-type-side-cart .elementor-menu-cart__main { overflow-y: auto; overscroll-behavior: contain; } /* secours : écrans très bas */
.elementor-menu-cart--cart-type-side-cart .elementor-menu-cart__main .widget_shopping_cart_content,
.elementor-menu-cart--cart-type-side-cart .cb-minicart {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	min-height: 0;
}
.elementor-menu-cart--cart-type-side-cart .cb-minicart > * { flex-shrink: 0; }
.elementor-menu-cart--cart-type-side-cart .cb-minicart ul.cb-minicart__items.cb-minicart__items {
	flex: 0 1 auto;
	min-height: 0;
	max-height: none;
	overflow-y: auto;
	overscroll-behavior: contain;
}
