/* ============================================================
 *  CART PAGE — scoped under .ib-cart
 *  Values derived from Panier.html mockup (1440px design viewport).
 * ============================================================ */
body.woocommerce-cart { background-color: #F5F7FF; overflow-x: clip; }
.ib-cart {
	max-width: 1440px;
	margin: 0 auto;
	padding: 8px 16px 80px;
	box-sizing: border-box;
}

/* Title row */
.ib-cart__title-row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 16px;
	margin: 8px 0 32px;
	flex-wrap: wrap;
}
.ib-cart__title {
	font-size: 32px;
	letter-spacing: -1px;
	font-weight: 800;
	margin: 0;
	color: var(--ib-ink, #0A1628);
	line-height: 1.2;
}
.ib-cart__title-count {
	font-size: 18px;
	color: var(--ib-sub, #5B6B85);
	font-weight: 600;
	letter-spacing: -1px;
	margin-left: 10px;
}
.ib-cart__continue {
	font-size: 13px;
	color: var(--ib-sub, #5B6B85);
	text-decoration: none;
	font-weight: 400;
}
.ib-cart__continue:hover { color: var(--ib-primary); }

/* Two-column grid: cards 1fr, summary fixed 380px */
.ib-cart__body {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 380px;
	gap: 32px;
	align-items: start;
}

/* === Cart line === */
.ib-cart-lines { display: flex; flex-direction: column; gap: 16px; }
.ib-cart-line {
	display: grid;
	grid-template-columns: 100px minmax(0,1fr) auto;
	gap: 20px;
	padding: 18px;
	background: #fff;
	border: 1px solid var(--ib-border, #E5E9F0);
	border-radius: 16px;
	align-items: center;
	box-shadow: 0 1px 2px rgba(10, 22, 40, 0.04);
	transition: max-height .2s ease, opacity .2s ease, padding .2s ease, margin .2s ease, transform .25s ease, box-shadow .25s ease, border-color .25s ease;
	overflow: hidden;
	position: relative;
	--mx: 50%;
	--my: 50%;
}
.ib-cart-line::before {
	content: '';
	position: absolute; inset: 0;
	background: radial-gradient(circle 220px at var(--mx) var(--my), rgba(24, 85, 204, 0.07) 0%, rgba(110, 91, 240, 0.04) 35%, transparent 65%);
	opacity: 0;
	transition: opacity .35s ease;
	pointer-events: none;
	border-radius: inherit;
	z-index: 0;
}
.ib-cart-line:hover::before { opacity: 1; }
.ib-cart-line > * { position: relative; z-index: 1; }
.ib-cart-line:hover {
	box-shadow: 0 12px 32px rgba(10, 22, 40, 0.06), 0 2px 6px rgba(10, 22, 40, 0.04);
	border-color: rgba(24, 85, 204, 0.18);
	transform: translateY(-1px);
}
@media (prefers-reduced-motion: reduce) {
	.ib-cart-line:hover { transform: none; }
}
.ib-cart-line.is-removing {
	opacity: 0;
	transform: translateY(-8px);
}
@media (prefers-reduced-motion: reduce) {
	.ib-cart-line.is-removing { transform: none; }
}
.ib-cart-line__img {
	width: 100px; height: 100px;
	border-radius: 12px;
	overflow: hidden;
	background: linear-gradient(135deg, #EEF3FF 0%, #F2EEFD 100%);
	display: flex; align-items: center; justify-content: center;
}
.ib-cart-line__img img {
	max-width: 80%; max-height: 80%;
	width: auto; height: auto;
	object-fit: contain; display: block;
}
.ib-cart-line__info { min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.ib-cart-line__title-row {
	display: flex; align-items: center; gap: 10px; min-width: 0;
}
.ib-cart-line__title {
	font-size: 15px; font-weight: 700;
	color: var(--ib-ink, #0A1628);
	text-decoration: none;
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
	line-height: 1.3;
	min-width: 0;
}
.ib-cart-line__title:hover { color: var(--ib-primary); }
.ib-cart-line__pct {
	flex-shrink: 0;
	position: relative;
	display: inline-flex; align-items: center;
	height: 22px; padding: 0 8px;
	font-size: 11px; font-weight: 800; letter-spacing: 0.02em;
	color: #fff;
	background: linear-gradient(135deg, #EF4444 0%, #DC2626 100%);
	border-radius: 6px;
	box-shadow: 0 2px 6px rgba(220, 38, 38, 0.28);
	overflow: hidden;
}
.ib-cart-line__pct::after {
	content: '';
	position: absolute; inset: 0;
	background: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, 0.55) 50%, transparent 70%);
	transform: translateX(-120%);
	animation: ib-pct-shimmer 3.6s ease-in-out infinite;
	animation-delay: var(--shimmer-delay, 0s);
	pointer-events: none;
}
@keyframes ib-pct-shimmer {
	0%, 55% { transform: translateX(-120%); }
	75%, 100% { transform: translateX(120%); }
}
@media (prefers-reduced-motion: reduce) {
	.ib-cart-line__pct::after { display: none; }
}
.ib-cart-line__variant {
	font-size: 12px;
	font-weight: 400;
	color: var(--ib-sub, #5B6B85);
	line-height: 1.4;
}
.ib-cart-line__pill {
	display: inline-flex; align-items: center; gap: 6px;
	font-size: 12px;
	color: var(--ib-success, #10B981);
	font-weight: 600;
	margin-top: 2px;
}
.ib-cart-line__pill svg { color: var(--ib-success, #10B981); }
.ib-cart-line__right {
	display: flex; flex-direction: column; align-items: flex-end; gap: 12px;
	min-width: 132px;
}
.ib-cart-line__price {
	font-weight: 800;
	font-size: 18px;
	letter-spacing: -0.4px;
	color: var(--ib-ink, #0A1628);
}
.ib-cart-line__controls {
	display: flex; align-items: center; gap: 8px;
}
.ib-cart-line__remove {
	width: 36px; height: 36px;
	display: inline-flex; align-items: center; justify-content: center;
	background: #fff; border: 1px solid var(--ib-border, #E5E9F0);
	cursor: pointer; color: var(--ib-sub, #5B6B85);
	border-radius: 10px;
	transition: color .15s ease, border-color .15s ease, background .15s ease;
}
.ib-cart-line__remove:hover {
	color: var(--ib-danger, #DC2626);
	border-color: var(--ib-danger, #DC2626);
	background: rgba(220,38,38,.04);
}

/* === Qty stepper === */
.ib-qty-stepper {
	display: inline-flex; align-items: center;
	border: 1px solid var(--ib-border, #E5E9F0);
	border-radius: 999px;
	background: #fff;
	padding: 2px;
	height: 36px;
	box-sizing: border-box;
}
.ib-qty-stepper button {
	width: 28px; height: 28px; border: 0; background: transparent;
	cursor: pointer; font-size: 14px; line-height: 1; color: var(--ib-ink, #0A1628);
	display: inline-flex; align-items: center; justify-content: center;
	border-radius: 50%;
}
.ib-qty-stepper button:hover { background: var(--ib-primary-lt, #EEF3FF); color: var(--ib-primary, #1855CC); }
.ib-qty-stepper button:disabled { opacity: .4; cursor: not-allowed; }
.ib-qty-stepper__num {
	min-width: 28px; text-align: center; font-size: 13px; font-weight: 700;
	user-select: none;
}

/* === Promo bar (dashed) === */
.ib-cart-promo {
	margin-top: 16px;
	background: transparent;
	border: 1.5px dashed var(--ib-border, #C9D1DC);
	border-radius: 16px;
	padding: 14px 18px;
}
.ib-cart-promo__row {
	display: grid;
	grid-template-columns: auto minmax(0,1fr) auto;
	gap: 16px;
	align-items: center;
}
.ib-cart-promo__label {
	display: inline-flex; align-items: center; gap: 8px;
	font-size: 13px; font-weight: 600;
	color: var(--ib-ink, #0A1628);
}
.ib-cart-promo__label svg { color: var(--ib-primary, #1855CC); }
.ib-cart-promo__input {
	width: 100%; min-width: 0;
	padding: 10px 14px;
	border: 1px solid var(--ib-border, #E5E9F0);
	border-radius: 10px;
	font: inherit;
	font-size: 13px;
	letter-spacing: .04em;
	text-transform: uppercase;
	background: #fff;
}
.ib-cart-promo__input:focus { outline: 2px solid var(--ib-primary-lt, #EEF3FF); border-color: var(--ib-primary, #1855CC); }
.ib-cart-promo__error {
	font-size: 12px; color: var(--ib-danger, #DC2626);
	margin-top: 8px;
	display: none;
	overflow-wrap: anywhere;
}
.ib-cart-promo.has-error .ib-cart-promo__error { display: block; }
.ib-cart-promo [data-cart-promo-submit] {
	padding: 10px 20px;
	font-size: 13px;
	font-weight: 700;
}

/* === Summary card (380px fixed) === */
.ib-cart-summary {
	background: #fff;
	border: 1px solid var(--ib-border, #E5E9F0);
	border-radius: 16px;
	padding: 24px;
	position: sticky;
	top: calc(var(--ib-header-h, 134px) + 16px);
	transition: box-shadow .2s ease;
	isolation: isolate; /* contain the aurora pseudo within stacking context */
}
.ib-cart-summary::before {
	content: '';
	position: absolute;
	inset: -32px -24px;
	background:
		radial-gradient(circle at 22% 18%, rgba(110, 91, 240, 0.28), transparent 55%),
		radial-gradient(circle at 78% 82%, rgba(24, 85, 204, 0.22), transparent 55%),
		radial-gradient(circle at 50% 50%, rgba(225, 17, 95, 0.10), transparent 60%);
	filter: blur(38px);
	z-index: -1;
	opacity: 0.85;
	animation: ib-aurora 14s ease-in-out infinite alternate;
	pointer-events: none;
	border-radius: 50%;
}
@keyframes ib-aurora {
	0%   { transform: translate3d(0, 0, 0) scale(1) rotate(0deg); }
	50%  { transform: translate3d(-6px, 8px, 0) scale(1.06) rotate(8deg); }
	100% { transform: translate3d(10px, -10px, 0) scale(1.03) rotate(-6deg); }
}
@media (prefers-reduced-motion: reduce) {
	.ib-cart-summary::before { animation: none; }
}
.ib-cart-summary.is-stuck { box-shadow: 0 12px 36px rgba(24, 85, 204, 0.10), 0 2px 8px rgba(10, 22, 40, 0.04); }
.ib-cart-summary__title {
	font-size: 16px;
	font-weight: 800;
	margin: 0 0 18px;
	color: var(--ib-ink, #0A1628);
	letter-spacing: normal;
}
.ib-cart-summary__row {
	display: flex; justify-content: space-between; align-items: baseline;
	font-size: 13px;
	padding: 6px 0;
	color: var(--ib-sub, #5B6B85);
	font-weight: 400;
}
.ib-cart-summary__row > span:last-child {
	color: var(--ib-ink, #0A1628);
	font-weight: 700;
}
.ib-cart-summary__row--discount > span:last-child { color: var(--ib-danger, #DC2626) !important; }
.ib-cart-summary__free { color: var(--ib-success, #10B981) !important; font-weight: 700 !important; }
.ib-cart-summary__row[hidden] { display: none; }
.ib-cart-summary__divider { height: 1px; background: var(--ib-border, #E5E9F0); margin: 14px 0; }
.ib-cart-summary__total {
	display: flex; justify-content: space-between; align-items: baseline;
	margin-top: 4px;
}
.ib-cart-summary__total > span:first-child {
	font-size: 14px;
	font-weight: 700;
	color: var(--ib-ink, #0A1628);
}
.ib-cart-summary__total > span:last-child {
	font-size: 24px;
	font-weight: 800;
	letter-spacing: -0.6px;
	color: var(--ib-ink, #0A1628);
	display: inline-block;
	transform-origin: right center;
	transition: color .2s ease;
}
.ib-cart-summary__total > span:last-child.is-pulsing {
	animation: ib-total-pulse .55s cubic-bezier(.2, .9, .3, 1.2);
}
@keyframes ib-total-pulse {
	0%   { transform: scale(1); color: var(--ib-ink, #0A1628); }
	35%  { transform: scale(1.08); color: var(--ib-primary, #1855CC); }
	100% { transform: scale(1); color: var(--ib-ink, #0A1628); }
}
@media (prefers-reduced-motion: reduce) {
	.ib-cart-summary__total > span:last-child.is-pulsing { animation: none; }
}
.ib-cart-summary__cta {
	width: 100%;
	margin-top: 20px;
	justify-content: center;
	padding: 14px 18px;
	font-size: 14px;
	font-weight: 700;
	border-radius: 10px;
	background: linear-gradient(135deg, var(--ib-primary, #1855CC) 0%, #4F8AE8 60%, #6E5BF0 100%);
	background-size: 180% 180%;
	background-position: 0% 50%;
	color: #fff;
	border: 0;
	box-shadow: 0 6px 16px rgba(24, 85, 204, 0.28);
	transition: background-position .4s ease, box-shadow .25s ease, transform .25s ease;
}
.ib-cart-summary__cta:hover {
	background-position: 100% 50%;
	box-shadow: 0 12px 28px rgba(110, 91, 240, 0.38);
	transform: translateY(-1px);
	color: #fff;
}
.ib-cart-summary__cta:active { transform: translateY(0); }
@media (prefers-reduced-motion: reduce) {
	.ib-cart-summary__cta:hover { transform: none; }
}
.ib-cart-summary__trust {
	list-style: none;
	margin: 16px 0 0;
	padding: 12px 0 0;
	border-top: 1px dashed var(--ib-border, #E5E9F0);
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 8px;
}
.ib-cart-summary__trust li {
	display: flex; flex-direction: column; align-items: center; gap: 4px;
	font-size: 11px; font-weight: 600;
	color: var(--ib-sub, #5B6B85);
	text-align: center;
}
.ib-cart-summary__trust svg {
	color: var(--ib-primary, #1855CC);
	width: 16px; height: 16px;
}
.ib-cart-summary__pay-row {
	display: flex; align-items: center; justify-content: center; gap: 8px;
	margin-top: 12px;
	flex-wrap: wrap;
}
.ib-cart-summary__pay-chip {
	font-size: 11px; font-weight: 700; letter-spacing: .04em;
	color: var(--ib-sub, #5B6B85);
	background: var(--ib-surface, #F4F6FA);
	border: 1px solid var(--ib-border, #E5E9F0);
	border-radius: 6px;
	padding: 4px 10px;
}

/* === WhatsApp card === */
.ib-cart-whatsapp {
	margin-top: 12px;
	background: #fff;
	border: 1px solid var(--ib-border, #E5E9F0);
	border-radius: 16px;
	padding: 14px 16px;
	display: flex; align-items: center; gap: 12px;
	text-decoration: none; color: inherit;
}
.ib-cart-whatsapp__avatar {
	width: 36px; height: 36px; border-radius: 50%;
	background: #25D366; color: #fff;
	display: inline-flex; align-items: center; justify-content: center;
	font-weight: 800;
	flex-shrink: 0;
}
.ib-cart-whatsapp__title { font-weight: 700; font-size: 13px; color: var(--ib-ink, #0A1628); }
.ib-cart-whatsapp__sub { font-size: 12px; color: var(--ib-sub, #5B6B85); }
.ib-cart-whatsapp:hover { border-color: #25D366; }

/* === Sticky bottom bar (mobile only) === */
.ib-cart__mobile-bar {
	display: none;
	position: fixed; left: 0; right: 0; bottom: 0;
	background: #fff;
	border-top: 1px solid var(--ib-border, #E5E9F0);
	padding: 12px 16px;
	gap: 12px;
	align-items: center; justify-content: space-between;
	box-shadow: 0 -8px 24px rgba(10,22,40,.06);
	z-index: 50;
}
.ib-cart__mobile-bar-total { font-weight: 800; font-size: 14px; }
.ib-cart__mobile-bar-total small { font-weight: 500; color: var(--ib-sub); display: block; font-size: 11px; }
.ib-cart__mobile-bar .ib-btn { padding: 10px 16px; }

/* === Responsive === */
@media (max-width: 1280px) {
	.ib-cart__body { grid-template-columns: minmax(0, 1fr) 340px; gap: 24px; }
}
@media (max-width: 1024px) {
	.ib-cart__body { grid-template-columns: minmax(0, 1fr) 320px; gap: 20px; }
}
@media (max-width: 768px) {
	.ib-cart { padding-left: 16px; padding-right: 16px; padding-bottom: 96px; }
	.ib-cart__body { grid-template-columns: 1fr; }
	.ib-cart-summary { position: static; }
	.ib-cart__mobile-bar { display: flex; }
	.ib-cart-summary__cta { display: none; }
}
@media (max-width: 480px) {
	.ib-cart-line { grid-template-columns: 80px minmax(0,1fr); gap: 14px; padding: 16px; }
	.ib-cart-line__img { width: 80px; height: 80px; }
	.ib-cart-line__right {
		grid-column: 1 / -1;
		flex-direction: row; align-items: center; justify-content: space-between;
		min-width: 0;
	}
}
