/* Carret (carrito) — maqueta estática del boceto (frame eXcUw).
   ponytail: layout fijo; en fase 2 pasa a override real de WooCommerce (cart/cart.php). */

.carret-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
	padding: 48px var(--pad-x) 28px;
}
.carret-head__title {
	font-family: var(--font-display);
	font-size: 40px;
	font-weight: 600;
	letter-spacing: -1px;
	color: var(--ink);
	margin: 0;
}

/* Indicador de pasos */
.carret-steps {
	display: flex;
	align-items: center;
	gap: 14px;
}
.carret-step {
	display: flex;
	align-items: center;
	gap: 9px;
}
.carret-step__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border-radius: 13px;
	border: 1px solid var(--line);
	background: var(--paper-2);
	color: var(--ink-faint);
	font-family: var(--font-ui);
	font-size: 13px;
	font-weight: 700;
}
.carret-step__label {
	font-family: var(--font-ui);
	font-size: 14px;
	color: var(--ink-faint);
	white-space: nowrap;
}
.carret-step--active .carret-step__num {
	background: var(--wine);
	border-color: var(--wine);
	color: var(--paper);
}
.carret-step--active .carret-step__label {
	color: var(--ink);
	font-weight: 600;
}
.carret-steps svg {
	color: var(--ink-faint);
}

/* Cuerpo: tabla + resumen */
.carret-body {
	display: flex;
	align-items: flex-start;
	gap: 40px;
	padding: 12px var(--pad-x) 80px;
}
.carret-list {
	flex: 1 1 0;
	min-width: 0;
}

.carret-row {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 18px 0;
	border-bottom: 1px solid var(--line);
}
.carret-row--head {
	padding: 0 0 14px;
	border-bottom: 2px solid var(--line);
}
.carret-th {
	font-family: var(--font-mono);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 1.2px;
	color: var(--ink-faint);
}

.carret-col--product { flex: 1 1 0; min-width: 0; display: flex; align-items: center; gap: 14px; }
.carret-col--price    { width: 110px; }
.carret-col--qty      { width: 130px; }
.carret-col--subtotal { width: 100px; }
.carret-col--remove   { width: 36px; display: flex; justify-content: center; align-self: flex-start; }

.carret-cover {
	flex-shrink: 0;
	width: 54px;
	height: 74px;
	border-radius: 2px;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}
.carret-item__title {
	font-family: var(--font-display);
	font-size: 17px;
	font-weight: 600;
	color: var(--ink);
	margin: 0 0 4px;
}
.carret-item__author {
	font-family: var(--font-body);
	font-size: 14px;
	color: var(--ink-soft);
	margin: 0;
}
.carret-price {
	font-family: var(--font-ui);
	font-size: 15px;
	color: var(--ink);
}
.carret-subtotal {
	font-family: var(--font-ui);
	font-size: 16px;
	font-weight: 700;
	color: var(--ink);
}

/* Selector de cantidad */
.carret-qty {
	display: inline-flex;
	align-items: center;
	background: var(--paper-card);
	border: 1px solid var(--line);
	border-radius: 2px;
	overflow: hidden;
}
.carret-qty__btn,
.carret-qty__val {
	width: 34px;
	height: 38px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-ui);
	background: none;
	border: 0;
	cursor: pointer;
}
.carret-qty__btn { font-size: 18px; font-weight: 500; color: var(--ink); }
.carret-qty__btn:first-child { color: var(--ink-soft); }
.carret-qty__val { font-size: 14px; font-weight: 600; color: var(--ink); border-right: 1px solid var(--line); }
/* La quantitat és un input real (name="cart[key][qty]"): Woo l'actualitza de forma nativa. */
input.carret-qty__val { text-align: center; -moz-appearance: textfield; cursor: text; }
input.carret-qty__val::-webkit-outer-spin-button,
input.carret-qty__val::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
input.carret-qty__val:focus-visible { outline: 2px solid var(--wine); outline-offset: -2px; }

.carret-actions { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.carret-update {
	margin-top: 22px;
	padding: 12px 20px;
	background: transparent;
	border: 1px solid var(--line);
	border-radius: 2px;
	font-family: var(--font-ui);
	font-size: 13px;
	font-weight: 600;
	color: var(--ink-soft);
	cursor: pointer;
}
.carret-update:hover { border-color: var(--ink); color: var(--ink); }

/* Avisos de Woo ("afegit al carret", "carret actualitzat"): dins de la caixa,
   amb la pell del tema. Sense contenidor eixien a sang de banda a banda. */
.carret-notices { padding: 0 var(--pad-x); }
.carret-notices .woocommerce-message,
.carret-notices .woocommerce-info,
.carret-notices .woocommerce-error {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 26px;
	padding: 14px 18px;
	background: var(--paper-2);
	border: 1px solid var(--line);
	border-top-color: var(--wine);
	border-radius: 2px;
	font-family: var(--font-ui);
	font-size: 14px;
	color: var(--ink);
	list-style: none;
}
.carret-notices .woocommerce-error { border-top-color: var(--series-red); }
.carret-notices .woocommerce-message::before,
.carret-notices .woocommerce-info::before,
.carret-notices .woocommerce-error::before {
	position: static;
	color: var(--wine);
	font-size: 16px;
}
.carret-notices .woocommerce-error::before { color: var(--series-red); }
.carret-notices .button {
	margin-left: auto;
	padding: 9px 14px;
	background: transparent;
	border: 1px solid var(--ink);
	border-radius: 2px;
	font-family: var(--font-ui);
	font-size: 13px;
	font-weight: 600;
	color: var(--ink);
}
.carret-notices .button:hover { background: var(--ink); color: var(--paper); }

/* Carret buit */
.carret-empty { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; padding: 20px var(--pad-x) 90px; }
.carret-empty__text { margin: 0; font-family: var(--font-body); font-size: 18px; color: var(--ink-soft); }

.carret-item__meta { margin: 2px 0 0; font-family: var(--font-ui); font-size: 12.5px; color: var(--ink-faint); }
.carret-item__title a { color: inherit; text-decoration: none; }
.carret-item__title a:hover { text-decoration: underline; }

.carret-remove {
	display: inline-flex;
	color: var(--ink-faint);
	background: none;
	border: 0;
	padding: 0;
	cursor: pointer;
}

.carret-continue {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 22px;
	font-family: var(--font-ui);
	font-size: 14px;
	font-weight: 600;
	color: var(--wine);
	text-decoration: none;
}

/* Resumen lateral */
.carret-summary {
	width: 360px;
	flex-shrink: 0;
	background: var(--paper-card);
	border: 1px solid var(--line);
	border-radius: 2px;
	padding: 28px;
	display: flex;
	flex-direction: column;
	gap: 18px;
}
.carret-summary__title {
	font-family: var(--font-display);
	font-size: 21px;
	font-weight: 600;
	color: var(--ink);
	margin: 0;
}
.carret-summary__row {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.carret-summary__row span {
	font-family: var(--font-ui);
	font-size: 15px;
	color: var(--ink-soft);
}
.carret-summary__row strong {
	font-family: var(--font-ui);
	font-size: 15px;
	font-weight: 500;
	color: var(--ink);
}
.carret-summary__free { color: var(--green-deep) !important; font-weight: 600; }
.carret-summary__rule { height: 1px; background: var(--line); }
.carret-summary__total {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
}
.carret-summary__total span {
	font-family: var(--font-display);
	font-size: 18px;
	font-weight: 600;
	color: var(--ink);
}
.carret-summary__total strong {
	font-family: var(--font-display);
	font-size: 28px;
	font-weight: 700;
	color: var(--ink);
}
.carret-checkout {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	width: 100%;
	padding: 16px 24px;
	background: var(--wine);
	border-radius: 2px;
	color: var(--paper);
	font-family: var(--font-ui);
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
}
.carret-fineprint {
	font-family: var(--font-body);
	font-size: 12.5px;
	line-height: 1.44;
	color: var(--ink-faint);
	margin: 0;
}

@media (max-width: 1024px) {
	.carret-head, .carret-body { padding-left: 40px; padding-right: 40px; }
}
@media (max-width: 900px) {
	.carret-body { flex-direction: column; }
	.carret-summary { width: 100%; }
}
@media (max-width: 768px) {
	.carret-head, .carret-body { padding-left: var(--pad-x); padding-right: var(--pad-x); }
	.carret-steps { flex-wrap: wrap; }
	.carret-step__label { white-space: normal; }
}
@media (max-width: 640px) {
	.carret-row--head { display: none; }
	.carret-row { flex-wrap: wrap; }
	.carret-col--price { width: auto; }
	.carret-qty__btn { width: 44px; height: 44px; }
	.carret-remove { width: 44px; height: 44px; align-items: center; justify-content: center; }
}
