@charset "UTF-8";
/**
 * Panier — habillage du gabarit classique surchargé (woocommerce/cart/).
 *
 * Chargé après tokens/base/layout/components/account : n'utilise que les
 * jetons de tokens.css, aucune valeur hexadécimale en dur.
 * Portée : uniquement body.woocommerce-cart.
 */

/* ================================================================ Trame */

.woocommerce-cart .ff-entry__content { max-width: none; }

.ffc { display: block; }

.ffc__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 30px;
	margin: 0 0 26px;
}

.ffc__kick {
	margin: 0 0 12px;
	font: var(--ff-kick);
	letter-spacing: var(--ff-track);
	text-transform: uppercase;
	color: var(--ff-plum);
}

.ffc__title {
	margin: 0;
	font: 500 clamp(30px, 3.4vw, 40px)/1.1 var(--ff-serif);
	color: var(--ff-ink);
}

.ffc__count {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	font: 500 13px var(--ff-sans);
	color: var(--ff-ink-55);
	white-space: nowrap;
}
.ffc__count i { width: 4px; height: 4px; border-radius: 50%; background: var(--ff-pink); }
.ffc__count b { font-weight: 700; color: var(--ff-ink); }
.ffc__count b .woocommerce-Price-amount { font: inherit; color: inherit; }

.ffc__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 392px;
	gap: 34px;
	align-items: start;
}

/* ========================================================= Carte lignes */

.ffc-card {
	background: var(--ff-surface);
	border: 1px solid rgba(51, 39, 46, .09);
	border-radius: var(--ff-r-lg);
	box-shadow: var(--ff-shadow);
	overflow: hidden;
}

.ffc-card__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	padding: 18px 28px;
}

.ffc-back {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font: 700 10.5px var(--ff-sans);
	letter-spacing: var(--ff-track-sm);
	text-transform: uppercase;
	color: var(--ff-plum);
	text-decoration: none;
}
.ffc-back:hover { color: var(--ff-plum-deep); }

.ffc-card__note { margin: 0; font: 500 12px var(--ff-sans); color: var(--ff-ink-55); }

/* ============================================= Livraison offerte : barre */

.ffc-ship {
	padding: 20px 28px 18px;
	background: linear-gradient(180deg, var(--ff-veil), rgba(224, 147, 190, .04));
	border-bottom: 1px solid rgba(51, 39, 46, .07);
}

.ffc-ship__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 11px;
}

.ffc-ship__label {
	display: flex;
	align-items: center;
	gap: 8px;
	font: 600 13px var(--ff-sans);
	color: var(--ff-ink);
}
.ffc-ship__label .woocommerce-Price-amount { font-weight: 800; color: var(--ff-pink-deep); }
.ffc-ship.is-done .ffc-ship__label { color: var(--ff-ink); }
.ffc-ship.is-done .ffc-ship__label svg { color: var(--ff-sage-deep); }

.ffc-ship__from {
	font: var(--ff-kick-sm);
	letter-spacing: var(--ff-track-sm);
	text-transform: uppercase;
	color: var(--ff-plum);
	white-space: nowrap;
}
.ffc-ship__from .woocommerce-Price-amount { font: inherit; color: inherit; }

.ffc-ship__track {
	position: relative;
	height: 7px;
	border-radius: var(--ff-r-pill);
	background: rgba(224, 147, 190, .24);
}

.ffc-ship__fill {
	position: absolute;
	inset: 0 auto 0 0;
	border-radius: var(--ff-r-pill);
	background: linear-gradient(90deg, var(--ff-pink), var(--ff-pink-mid));
	transition: width .5s var(--ff-ease);
}
.ffc-ship.is-done .ffc-ship__fill { background: linear-gradient(90deg, var(--ff-pink), var(--ff-sage)); }

.ffc-ship__dot {
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
	display: grid;
	place-items: center;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--ff-surface);
	box-shadow: var(--ff-shadow-sm);
	font: 700 11px var(--ff-sans);
	color: var(--ff-pink-mid);
	transition: left .5s var(--ff-ease);
}
.ffc-ship.is-done .ffc-ship__dot { color: var(--ff-sage-deep); }

/* ================================================== Lignes du panier */

.ffc-lines { width: 100%; margin: 0; border: none; border-collapse: collapse; background: none; }
.ffc-lines tbody tr:has(.ffc-actions) { display: block; }
/* La rangée article est une grille (la spécificité doit battre le display
   de repli des tableaux et les feuilles génériques éventuelles). */
.ffc-lines tbody tr.ffc-line {
	display: grid;
	grid-template-columns: 104px minmax(0, 1fr) 132px 120px;
	gap: 20px;
	align-items: center;
}
.woocommerce-cart table.cart .ffc-line__media img { width: 104px; height: 104px; }

.ffc-lines thead tr {
	display: grid;
	grid-template-columns: 104px minmax(0, 1fr) 132px 120px;
	gap: 20px;
	padding: 14px 28px;
	background: rgba(224, 147, 190, .07);
}
.ffc-lines__th {
	padding: 0;
	border: none;
	font: var(--ff-kick-sm);
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--ff-plum);
	text-align: left;
}
.ffc-lines thead .ffc-lines__th:first-child { grid-column: span 2; }
.ffc-lines__th--end { text-align: right; }

.ffc-line {
	display: grid;
	grid-template-columns: 104px minmax(0, 1fr) 132px 120px;
	gap: 20px;
	align-items: center;
	padding: 22px 28px;
	border-bottom: 1px solid rgba(51, 39, 46, .07);
	transition: opacity .25s;
}
.ffc-line.is-busy { opacity: .5; pointer-events: none; }
.ffc-line > td { padding: 0; border: none; }

/* --- visuel --- */
.ffc-line__media { position: relative; }
.ffc-line__media a,
.ffc-line__media img {
	display: block;
	width: 104px;
	height: 104px;
	border-radius: 18px;
	object-fit: cover;
	background: var(--ff-clay);
}
.ffc-line__sale {
	position: absolute;
	top: 7px;
	left: 7px;
	padding: 3px 8px;
	border-radius: var(--ff-r-pill);
	background: var(--ff-surface);
	font: 800 8.5px var(--ff-sans);
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ff-pink-deep);
}

/* --- corps --- */
.ffc-line__body { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.ffc-line__cat {
	font: 700 9px var(--ff-sans);
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--ff-plum);
}
.ffc-line__name a,
.ffc-line__name {
	font: 600 19px/1.25 var(--ff-serif);
	color: var(--ff-ink);
	text-decoration: none;
}
.ffc-line__name a:hover { color: var(--ff-plum); }

.ffc-line__meta { display: flex; flex-direction: column; gap: 4px; }
.ffc-line__meta,
.ffc-line__meta p,
.ffc-line__meta dl {
	margin: 0;
	font: 500 12.5px/1.6 var(--ff-sans);
	color: var(--ff-ink-55);
}
/* Variations : « Couleur : doré » sur une ligne, pas en colonnes. */
.ffc-line__meta .variation { display: flex; flex-wrap: wrap; gap: 4px 10px; margin: 0; }
.ffc-line__meta .variation dt { font-weight: 700; color: var(--ff-ink-70); }
.ffc-line__meta .variation dd { margin: 0; }
.ffc-line__meta .variation dd p { margin: 0; }
.ffc-line__unit { display: block; }
.ffc-line__unit .woocommerce-Price-amount { font-weight: 700; color: var(--ff-ink-70); }

.ffc-line__stock {
	display: flex;
	align-items: center;
	gap: 7px;
	font: 600 11.5px var(--ff-sans);
	color: var(--ff-sage-deep);
}
.ffc-line__stock::before {
	content: '';
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--ff-sage);
}
.ffc-line__stock--warn { color: var(--ff-gold-deep); }
.ffc-line__stock--warn::before { background: var(--ff-gold); }

/* --- stepper --- */
.ffc-line__qty { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }

.ffc-stepper {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--ff-line-strong);
	border-radius: var(--ff-r-pill);
	background: var(--ff-surface);
	overflow: hidden;
}
.ffc-stepper__btn {
	width: 38px;
	height: 40px;
	border: none;
	background: none;
	cursor: pointer;
	color: var(--ff-plum);
	font: 700 16px var(--ff-sans);
	transition: background .2s, color .2s;
}
.ffc-stepper__btn:hover { background: var(--ff-veil); color: var(--ff-plum-deep); }
.ffc-stepper__btn:disabled { color: rgba(51, 39, 46, .25); cursor: default; }

/* Le champ natif reste dans le DOM (accessibilité, non-JS) mais sans chrome. */
.ffc-stepper .quantity { margin: 0; }
.ffc-stepper input.qty {
	width: 34px;
	min-width: 34px;
	padding: 0;
	border: none;
	background: none;
	box-shadow: none;
	text-align: center;
	font: 800 14px var(--ff-sans);
	color: var(--ff-ink);
	-moz-appearance: textfield;
}
.ffc-stepper input.qty::-webkit-outer-spin-button,
.ffc-stepper input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.ffc-stepper input.qty:focus-visible { outline: 2px solid var(--ff-pink-mid); outline-offset: 2px; border-radius: 6px; }

.ffc-stepper--single { padding: 8px 16px; gap: 8px; }
.ffc-stepper--single em {
	font: 600 11px var(--ff-sans);
	font-style: normal;
	color: var(--ff-ink-55);
}

.ffc-line__remove.remove {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	width: auto;
	height: auto;
	padding: 0;
	border-radius: 0;
	background: none !important;
	font: 600 11.5px var(--ff-sans);
	color: var(--ff-ink-55) !important;
	text-decoration: none;
}
.ffc-line__remove.remove:hover { color: var(--ff-pink-deep) !important; }
/* Le libellé fait 38 × 16 px : on élargit la zone de toucher sans
   déplacer le texte ni écarter les lignes du panier. */
.ffc-line__remove.remove { position: relative; }
.ffc-line__remove.remove::after {
	content: "";
	position: absolute;
	inset: -14px -16px;
}

/* --- total ligne --- */
.ffc-line__total { text-align: right; }
.ffc-line__total .woocommerce-Price-amount {
	font: 800 18px var(--ff-sans);
	color: var(--ff-ink);
	white-space: nowrap;
}
.ffc-line__save {
	display: block;
	margin-top: 3px;
	font: 600 11.5px var(--ff-sans);
	color: var(--ff-pink-deep);
}
.ffc-line__save .woocommerce-Price-amount { font: inherit; color: inherit; }

/* ===================================== Rangée d'actions : code promo */

.ffc-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	padding: 18px 28px;
	border: none;
	border-bottom: 1px solid rgba(51, 39, 46, .07);
	background: rgba(224, 147, 190, .05);
}

.ffc-actions__coupon { display: flex; flex-wrap: wrap; gap: 8px; flex: 1 1 300px; max-width: 420px; }
/* WooCommerce insère son message d'erreur comme troisième enfant flex :
   sans passage à la ligne, le champ et le bouton se retrouvent écrasés. */
.ffc-actions__coupon .coupon-error-notice {
	order: 3;
	flex: 1 0 100%;
	margin: 2px 0 0;
	font: 500 12.5px/1.45 var(--ff-sans);
	color: #A5484C;
}
.ffc-actions__coupon input#coupon_code { flex: 1 1 170px; }
.ffc-actions__coupon button.button { flex: 0 0 auto; white-space: nowrap; }
.ffc-actions__coupon input#coupon_code {
	flex: 1;
	min-width: 0;
	padding: 12px 18px;
	border: 1px dashed var(--ff-line-strong);
	border-radius: var(--ff-r-pill);
	background: var(--ff-surface);
	font: 500 13px var(--ff-sans);
	color: var(--ff-ink);
}
.ffc-actions__coupon input#coupon_code:focus {
	outline: none;
	border-style: solid;
	border-color: var(--ff-pink-mid);
	box-shadow: 0 0 0 3px var(--ff-veil);
}

.woocommerce-cart .ffc-actions button.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 12px 22px;
	border: none;
	border-radius: var(--ff-r-pill);
	background: var(--ff-pink);
	color: var(--ff-ink-deep);
	font: 800 10.5px var(--ff-sans);
	letter-spacing: .12em;
	text-transform: uppercase;
	cursor: pointer;
	box-shadow: 0 6px 14px rgba(224, 147, 190, .3);
	transition: background .25s, color .25s;
}
.woocommerce-cart .ffc-actions button.button:hover { background: var(--ff-ink); color: var(--ff-surface); }

/* « Mettre à jour le panier » : discret, le stepper s'en charge déjà. */
.woocommerce-cart .ffc-actions__update {
	margin-left: auto;
	background: none !important;
	box-shadow: none !important;
	color: var(--ff-plum) !important;
	text-decoration: underline;
}
.woocommerce-cart .ffc-actions__update:hover { color: var(--ff-plum-deep) !important; background: var(--ff-veil) !important; }
.woocommerce-cart .ffc-actions__update[disabled] { opacity: .45; }

/* ========================================================= Récapitulatif */

.ffc__side { display: flex; flex-direction: column; gap: 14px; position: sticky; top: 92px; }

.woocommerce-cart .cart-collaterals { width: 100%; float: none; margin: 0; }
.woocommerce-cart .cart-collaterals::before,
.woocommerce-cart .cart-collaterals::after { display: none; }

.ffc-sum {
	width: 100%;
	float: none;
	background: var(--ff-surface);
	border: 1px solid rgba(51, 39, 46, .09);
	border-radius: var(--ff-r-lg);
	box-shadow: var(--ff-shadow);
	overflow: hidden;
}

.ffc-sum__title {
	margin: 0;
	padding: 16px 22px 14px;
	border-bottom: 1px solid rgba(51, 39, 46, .08);
	font: 800 10.5px var(--ff-sans);
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--ff-plum);
}

.ffc-sum__rows { display: flex; flex-direction: column; gap: 12px; padding: 18px 22px 4px; }

.ffc-sum__row,
.ffc-sum .shipping,
.ffc-sum .fee,
.ffc-sum .tax-total,
.ffc-sum .tax-rate {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 14px;
	font: 500 13.5px/1.6 var(--ff-sans);
	color: var(--ff-ink-70);
}
.ffc-sum__row b,
.ffc-sum .shipping td,
.ffc-sum .fee td { font-weight: 700; color: var(--ff-ink); text-align: right; }
.ffc-sum__row .woocommerce-Price-amount { white-space: nowrap; }

.ffc-sum__row--discount b { color: var(--ff-pink-deep); }
.ffc-sum__code {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-left: 6px;
	padding: 3px 8px;
	border-radius: var(--ff-r-pill);
	background: rgba(224, 147, 190, .2);
	font: 800 9.5px var(--ff-sans);
	font-style: normal;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--ff-pink-deep);
}
.ffc-sum__code a { color: inherit; text-decoration: none; }

/* Tableau natif des totaux (si une extension le réinjecte) : même langage. */
.ffc-sum table,
.ffc-sum table th,
.ffc-sum table td { border: none; background: none; font: inherit; padding: 0; }

/* Mode de livraison : liste de choix en pilules douces. */
.ffc-sum .shipping { flex-direction: column; align-items: stretch; }
.ffc-sum #shipping_method { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.ffc-sum #shipping_method li {
	display: flex;
	align-items: center;
	gap: 9px;
	padding: 10px 12px;
	border: 1px solid rgba(51, 39, 46, .1);
	border-radius: 14px;
	font: 600 12.5px var(--ff-sans);
	color: var(--ff-ink);
}
.ffc-sum #shipping_method li:has(input:checked) {
	border-color: var(--ff-pink-mid);
	background: var(--ff-veil);
}
.ffc-sum #shipping_method input { accent-color: var(--ff-pink-mid); }
.ffc-sum #shipping_method label { margin: 0; }
.ffc-sum .woocommerce-shipping-destination { margin: 8px 0 0; font: 500 11.5px var(--ff-sans); color: var(--ff-ink-55); }
.ffc-sum .shipping-calculator-button {
	font: 700 10px var(--ff-sans);
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ff-pink-deep);
	text-decoration: none;
}
.ffc-sum .shipping-calculator-form { margin-top: 10px; display: flex; flex-direction: column; gap: 8px; }
.ffc-sum .shipping-calculator-form input,
.ffc-sum .shipping-calculator-form select,
.ffc-sum .shipping-calculator-form .select2-selection {
	width: 100%;
	padding: 10px 14px;
	border: 1px solid var(--ff-line-strong);
	border-radius: var(--ff-r-pill);
	background: var(--ff-surface);
	font: 500 13px var(--ff-sans);
	color: var(--ff-ink);
}

/* Total */
.ffc-sum__total { margin: 14px; padding: 16px 18px; border-radius: 18px; background: rgba(224, 147, 190, .15); }
.ffc-sum__total-row { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; }
.ffc-sum__total-row span { font: 600 17px var(--ff-serif); color: var(--ff-ink); }
.ffc-sum__total-row b .woocommerce-Price-amount,
.ffc-sum__total-row b {
	font: 800 26px/1.1 var(--ff-sans);
	color: var(--ff-ink);
	white-space: nowrap;
}
.ffc-sum__vat { margin: 4px 0 0; font: 500 11.5px var(--ff-sans); color: var(--ff-ink-55); }
.ffc-sum .includes_tax,
.ffc-sum small { display: block; font: 500 11px var(--ff-sans); color: var(--ff-ink-55); }

/* Estimation de livraison */
.ffc-sum__eta {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 14px 6px;
	padding: 12px 14px;
	border-radius: 14px;
	background: rgba(168, 183, 158, .16);
	font: 600 12.5px var(--ff-sans);
	color: var(--ff-sage-deep);
}
.ffc-sum__eta b { font-weight: 800; }

/* CTA */
.ffc-sum__cta { padding: 14px 14px 0; }
.ffc-sum__cta .checkout-button { justify-content: center; }
.ffc-sum__cta .checkout-button.ff-btn--block { height: 56px; }

.ffc-sum__trust {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin: 12px 14px 0;
	font: 600 11px var(--ff-sans);
	color: var(--ff-ink-55);
	text-align: center;
}

.ffc-marks { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 12px 14px 16px; opacity: .85; }
.ffc-marks svg { width: 34px; height: 22px; border-radius: 4px; box-shadow: 0 0 0 1px rgba(51, 39, 46, .12); }

/* Encart cadeau */
.ffc-gift {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 14px 18px;
	border-radius: var(--ff-r);
	background: rgba(246, 236, 225, .8);
	border: 1px solid rgba(51, 39, 46, .07);
}
.ffc-gift span { font: 500 15px var(--ff-script); color: var(--ff-plum); line-height: 1.3; }
.ffc-gift p { margin: 0; font: 500 12px/1.6 var(--ff-sans); color: var(--ff-ink-55); }

/* ================================================== Ventes croisées */

.woocommerce-cart .cross-sells { margin: 52px 0 0; width: 100%; float: none; }
.woocommerce-cart .cross-sells > h2 {
	margin: 0 0 20px;
	font: 500 28px/1.15 var(--ff-serif);
	color: var(--ff-ink);
}
.woocommerce-cart .cross-sells ul.products {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.woocommerce-cart .cross-sells ul.products li.product { width: auto; float: none; margin: 0; }

/* ======================================================= Panier vide */

.ffc-empty__card {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 420px;
	gap: 48px;
	align-items: center;
	padding: 44px 48px;
	background: var(--ff-surface);
	border: 1px solid rgba(51, 39, 46, .09);
	border-radius: 30px;
	box-shadow: var(--ff-shadow);
}

.ffc-empty__title { margin: 0 0 14px; font: 500 clamp(28px, 3.2vw, 38px)/1.12 var(--ff-serif); color: var(--ff-ink); text-wrap: pretty; }
.ffc-empty__intro { margin: 0 0 26px; max-width: 46ch; font: var(--ff-body); color: var(--ff-ink-55); }

.ffc-empty__cta { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.ffc-empty__alt {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 16px 26px;
	border-radius: var(--ff-r-pill);
	border: 1px solid var(--ff-line-strong);
	font: 700 11.5px var(--ff-sans);
	letter-spacing: var(--ff-track-sm);
	text-transform: uppercase;
	color: var(--ff-plum);
	text-decoration: none;
}
.ffc-empty__alt:hover { background: var(--ff-veil); }

.ffc-empty__facts {
	display: flex;
	flex-wrap: wrap;
	gap: 26px;
	margin: 34px 0 0;
	padding: 22px 0 0;
	border-top: 1px dashed rgba(201, 103, 159, .3);
	list-style: none;
}
.ffc-empty__facts b { display: block; font: 800 20px var(--ff-sans); color: var(--ff-ink); }
.ffc-empty__facts b .woocommerce-Price-amount { font: inherit; color: inherit; }
.ffc-empty__facts span { font: var(--ff-kick-sm); letter-spacing: var(--ff-track-sm); text-transform: uppercase; color: var(--ff-plum); }

.ffc-empty__art { position: relative; height: 340px; }
.ffc-empty__halo {
	position: absolute;
	inset: 20px;
	border-radius: 50%;
	background: radial-gradient(50% 50% at 50% 50%, rgba(224, 147, 190, .35), rgba(224, 147, 190, 0) 70%);
}
.ffc-empty__photo {
	position: absolute;
	object-fit: cover;
	border-radius: 22px;
	box-shadow: var(--ff-shadow-lg);
}
.ffc-empty__photo--1 { left: 8%; top: 6%; width: 190px; height: 230px; transform: rotate(-5deg); }
.ffc-empty__photo--2 { right: 6%; top: 24%; width: 170px; height: 200px; transform: rotate(6deg); }
.ffc-empty__sig {
	position: absolute;
	left: 50%;
	bottom: 2%;
	transform: translateX(-50%);
	font: 500 26px var(--ff-script);
	color: var(--ff-plum);
}

/* Coups de cœur */
.ffc-picks { margin-top: 44px; }
.ffc-picks__title { margin: 0 0 20px; font: 500 26px var(--ff-serif); color: var(--ff-ink); }
.ffc-picks__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.ffc-pick {
	display: block;
	background: var(--ff-surface);
	border: 1px solid rgba(51, 39, 46, .08);
	border-radius: 22px;
	overflow: hidden;
	box-shadow: 0 8px 18px rgba(58, 33, 53, .06);
	text-decoration: none;
	transition: transform .3s var(--ff-ease), box-shadow .3s;
}
.ffc-pick:hover { transform: translateY(-3px); box-shadow: var(--ff-shadow-lg); }
.ffc-pick img { display: block; width: 100%; height: 200px; object-fit: cover; }
.ffc-pick__foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 16px 16px; }
.ffc-pick__foot b { font: 600 16px var(--ff-serif); color: var(--ff-ink); }
.ffc-pick__foot i { font: 700 13px var(--ff-sans); font-style: normal; color: var(--ff-ink); }
.ffc-pick__foot i del { display: none; }

/* ========================================================== Tablette */

@media (max-width: 1080px) {
	.ffc__grid { grid-template-columns: 1fr; gap: 22px; }
	.ffc__side { position: static; }
	.ffc-empty__card { grid-template-columns: 1fr; gap: 30px; padding: 32px 30px; }
	.ffc-empty__art { height: 280px; }
	.woocommerce-cart .cross-sells ul.products,
	.ffc-picks__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ============================================================ Mobile */

@media (max-width: 700px) {
	.ffc__head { flex-direction: column; align-items: flex-start; gap: 10px; }

	.ffc-lines thead { display: none; }

	.ffc-ship { padding: 16px 18px 14px; }
	.ffc-ship__head { flex-direction: column; gap: 6px; }

	/* Chaque ligne devient une carte à deux colonnes. */
	.ffc-lines tbody tr.ffc-line {
		grid-template-columns: 58px minmax(0, 1fr);
		gap: 11px;
		padding: 11px 14px;
	}
	.ffc-line__media { grid-row: span 2; }
	.ffc-line__media a,
	.woocommerce-cart table.cart .ffc-line__media img { width: 58px; height: 64px; border-radius: 11px; }

	.ffc-line__body { grid-column: 2; }
	.ffc-line__name a,
	.ffc-line__name { font-size: 14.5px; }

	.ffc-line__qty {
		grid-column: 2;
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
		gap: 10px;
	}
	/* Cibles tactiles ≥ 44 px. */
	.ffc-stepper__btn { width: 38px; height: 38px; font-size: 15px; }

	.ffc-line__remove.remove span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
	.ffc-line__remove.remove {
		display: grid;
		place-items: center;
		width: 34px;
		height: 34px;
		border-radius: 50%;
		background: var(--ff-veil) !important;
		color: var(--ff-plum) !important;
	}
	.ffc-line__remove.remove::before { content: '\2715'; font: 700 15px/1 var(--ff-sans); }

	.ffc-line__total { grid-column: 2; text-align: left; }
	.ffc-line__total .woocommerce-Price-amount { font-size: 14.5px; }
	.ffc-line__total::before {
		content: attr(data-title);
		display: block;
		margin-bottom: 2px;
		font: var(--ff-kick-sm);
		letter-spacing: var(--ff-track-sm);
		text-transform: uppercase;
		color: var(--ff-ink-55);
	}

	.ffc-actions { flex-direction: column; align-items: stretch; padding: 16px 18px; }
	/* En colonne, la base flex s'applique à la hauteur : on la neutralise. */
	.ffc-actions__coupon { flex: none; max-width: none; flex-wrap: wrap; }
	.ffc-actions__coupon input#coupon_code { flex: 1 1 150px; height: 48px; }
	.woocommerce-cart .ffc-actions button.button { height: 48px; flex: none; }
	.woocommerce-cart .ffc-actions__update { margin: 0; }

	.ffc-card__foot { flex-direction: column; align-items: flex-start; gap: 10px; padding: 16px 18px; }

	.ffc-sum__rows { padding: 16px 18px 4px; }
	.ffc-sum__total-row b,
	.ffc-sum__total-row b .woocommerce-Price-amount { font-size: 23px; }

	.woocommerce-cart .cross-sells ul.products,
	.ffc-picks__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.ffc-pick img { height: 150px; }

	.ffc-empty__facts { gap: 18px; }
	.ffc-empty__art { height: 230px; }
	.ffc-empty__photo--1 { width: 130px; height: 165px; }
	.ffc-empty__photo--2 { width: 118px; height: 145px; }
}

/* ============================ Barre de paiement collée (mobile) ====== */

@media (max-width: 700px) {
	.ffc-sum__cta {
		position: sticky;
		bottom: calc(72px + env(safe-area-inset-bottom, 0px));
		z-index: 5;
		margin: 0 -1px;
		padding: 12px 14px;
		background: var(--ff-white-90);
		backdrop-filter: blur(10px);
		border-top: 1px solid var(--ff-line);
	}
}
