/* Raval58 · llistats de productes, cistella, pagament i compte (Moria Solutions) */

/* ---------- Elements comuns de botiga ---------- */
:is(body.woocommerce-cart, body.woocommerce-checkout, body.woocommerce-account, .r58-archive) :is(a.button, button.button, input.button) {
	align-items: center; background: var(--r58-rose) !important; border: 0 !important; border-radius: 8px !important; box-shadow: none !important; color: #fff !important;
	display: inline-flex; font: 600 13px/1.2 var(--r58-font) !important; justify-content: center; letter-spacing: .05em; min-height: 46px; padding: 0 22px !important; text-transform: uppercase; transition: background .2s;
}
:is(body.woocommerce-cart, body.woocommerce-checkout, body.woocommerce-account, .r58-archive) :is(a.button, button.button, input.button):hover { background: var(--r58-rose-dark) !important; }
:is(body.woocommerce-cart, body.woocommerce-checkout, body.woocommerce-account, .r58-archive) :is(a.button, button.button):disabled,
:is(body.woocommerce-cart, body.woocommerce-checkout, body.woocommerce-account, .r58-archive) :is(a.button, button.button).disabled { opacity: .5; }
:is(body.woocommerce-cart, body.woocommerce-checkout, body.woocommerce-account, .r58-archive) .r58-btn-outline,
body.woocommerce-cart button[name=update_cart],
body.woocommerce-cart button[name=apply_coupon] { background: #fff !important; box-shadow: inset 0 0 0 1px var(--r58-green) !important; color: var(--r58-green) !important; }
body.woocommerce-cart button[name=update_cart]:hover, body.woocommerce-cart button[name=apply_coupon]:hover { background: var(--r58-pink-soft) !important; }
:is(body.woocommerce-cart, body.woocommerce-checkout, body.woocommerce-account) :is(input.input-text, input[type=text], input[type=email], input[type=tel], input[type=password], input[type=number], textarea, select) {
	background: #fff; border: 1px solid #dcd0cd !important; border-radius: 8px !important; box-shadow: none; color: var(--r58-text); font: 15px var(--r58-font); min-height: 46px; padding: 10px 14px !important;
}
:is(body.woocommerce-cart, body.woocommerce-checkout, body.woocommerce-account) :is(input.input-text, textarea, select):focus { border-color: var(--r58-rose) !important; box-shadow: 0 0 0 3px rgba(215, 119, 114, .18); outline: 0; }
:is(body.woocommerce-checkout, body.woocommerce-account) .form-row label { color: var(--r58-text); font-size: 13px; font-weight: 500; margin-bottom: 4px; }
:is(body.woocommerce-cart, body.woocommerce-checkout, body.woocommerce-account, .r58-archive) :is(.woocommerce-info, .woocommerce-message, .woocommerce-error) {
	background: var(--r58-pink-soft); border: 1px solid var(--r58-line); border-left: 4px solid var(--r58-green); border-radius: 10px; color: var(--r58-text); font-size: 14px; padding: 14px 18px 14px 48px;
}
:is(body.woocommerce-cart, body.woocommerce-checkout, body.woocommerce-account, .r58-archive) .woocommerce-error { border-left-color: #b4433d; }
:is(body.woocommerce-cart, body.woocommerce-checkout, body.woocommerce-account, .r58-archive) :is(.woocommerce-info, .woocommerce-message, .woocommerce-error)::before { color: var(--r58-green); left: 18px; top: 14px; }

.r58-page-head { align-items: flex-end; display: flex; flex-wrap: wrap; font-family: var(--r58-font); gap: 14px 24px; justify-content: space-between; margin: 0 0 22px; }
.r58-page-head h1 { color: var(--r58-text); font: 600 28px/1.2 var(--r58-font) !important; letter-spacing: -.01em; margin: 0 0 4px !important; }
.r58-page-head p { color: var(--r58-muted); font-size: 15px; margin: 0; }
.r58-page-head--center { justify-content: center; text-align: center; }
.r58-back { color: var(--r58-green) !important; font-size: 14px; text-decoration: none !important; }
.r58-back:hover { text-decoration: underline !important; }
@media (min-width: 768px) { .r58-page-head h1 { font-size: 32px !important; } }

.r58-steps { counter-reset: none; display: flex; flex-wrap: wrap; gap: 6px 18px; list-style: none; margin: 0; padding: 0; }
.r58-steps li { align-items: center; color: var(--r58-muted); display: flex; font-size: 13px; font-weight: 500; gap: 8px; margin: 0; }
.r58-steps li span { align-items: center; border: 1.5px solid #cfc3c0; border-radius: 50%; display: inline-flex; font-size: 12px; font-weight: 600; height: 26px; justify-content: center; width: 26px; }
.r58-steps li.is-current { color: var(--r58-green); }
.r58-steps li.is-current span { background: var(--r58-green); border-color: var(--r58-green); color: #fff; }
.r58-steps li.is-done span { background: var(--r58-pink); border-color: var(--r58-pink); color: var(--r58-green); }

.r58-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.r58-chips--center { justify-content: center; margin: 18px 0 8px; }
@media (max-width: 767px) {
	.r58-archive__head .r58-chips { flex-wrap: nowrap; margin-right: calc(-1 * var(--r58-gutter)); overflow-x: auto; padding-bottom: 4px; padding-right: var(--r58-gutter); scrollbar-width: none; }
	.r58-archive__head .r58-chips::-webkit-scrollbar { display: none; }
	.r58-archive__head .r58-chip { flex: none; }
}
.r58-chip { background: #fff; border: 1px solid var(--r58-line); border-radius: 999px; color: var(--r58-green) !important; font-size: 14px; font-weight: 500; padding: 7px 14px; text-decoration: none !important; transition: background .2s, border-color .2s; }
.r58-chip:hover, .r58-chip:focus-visible { background: var(--r58-pink); border-color: var(--r58-pink); }

/* ---------- Llistat de productes ---------- */
.r58-archive { font-family: var(--r58-font); }
.r58-archive__head { background: var(--r58-pink-soft); border-bottom: 1px solid var(--r58-line); padding: 22px 0 24px; }
.r58-breadcrumb { color: var(--r58-muted); font-size: 13px; margin-bottom: 8px; }
.r58-breadcrumb a { color: var(--r58-green) !important; text-decoration: none !important; }
.r58-breadcrumb a:hover { text-decoration: underline !important; }
.r58-breadcrumb__sep { margin: 0 6px; opacity: .6; }
.r58-archive__title { color: var(--r58-text); font: 600 28px/1.2 var(--r58-font) !important; letter-spacing: -.01em; margin: 0 !important; }
@media (min-width: 768px) { .r58-archive__title { font-size: 36px !important; } }
.r58-archive__desc { color: var(--r58-text); font-size: 15px; line-height: 1.65; margin-top: 10px; max-width: 760px; }
.r58-archive__desc p { margin: 0 0 8px; }
.r58-archive__body { padding-bottom: 48px; padding-top: 20px; }
.r58-archive__toolbar { align-items: center; display: flex; flex-wrap: wrap; gap: 10px 16px; justify-content: space-between; margin-bottom: 18px; }
.r58-archive__toolbar .woocommerce-notices-wrapper { flex-basis: 100%; }
.r58-archive__toolbar .woocommerce-result-count { color: var(--r58-muted); float: none; font-size: 14px; margin: 0; }
.r58-archive__toolbar .woocommerce-ordering { float: none; margin: 0; }
.r58-archive__toolbar .woocommerce-ordering select { background-color: #fff; border: 1px solid #dcd0cd; border-radius: 8px; color: var(--r58-text); font: 14px var(--r58-font); min-height: 42px; padding: 0 36px 0 12px; }

.r58-archive ul.products { display: grid !important; gap: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); list-style: none; margin: 0 !important; padding: 0 !important; }
.r58-archive ul.products::before, .r58-archive ul.products::after { display: none !important; }
@media (min-width: 768px) { .r58-archive ul.products { gap: 20px; grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .r58-archive ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.r58-archive ul.products li.product { background: #fff; border: 1px solid var(--r58-line); border-radius: 12px; display: flex !important; flex-direction: column; float: none !important; margin: 0 !important; padding: 10px 10px 12px !important; position: relative; text-align: left; transition: box-shadow .2s, transform .2s; width: auto !important; }
.r58-archive ul.products li.product:hover { box-shadow: 0 12px 28px rgba(43, 44, 40, .1); transform: translateY(-2px); }
.r58-archive ul.products li.product a.woocommerce-LoopProduct-link { color: inherit !important; display: flex; flex: 1; flex-direction: column; text-decoration: none !important; }
.r58-archive ul.products li.product a img { aspect-ratio: 1 / 1; background: #fff; border: 0 !important; border-radius: 8px; box-shadow: none !important; padding: 0 !important; height: auto !important; margin: 0 0 10px !important; object-fit: contain; width: 100% !important; }
.r58-card-brand { color: var(--r58-rose-dark); display: block; font-size: 11px; font-weight: 600; letter-spacing: .08em; margin-bottom: 2px; text-transform: uppercase; }
.r58-archive ul.products li.product .woocommerce-loop-product__title { -webkit-box-orient: vertical; -webkit-line-clamp: 2; color: var(--r58-text) !important; display: -webkit-box; font: 500 14px/1.35 var(--r58-font) !important; margin: 0 0 8px !important; min-height: 2.7em; overflow: hidden; padding: 0 !important; }
.r58-archive ul.products li.product .price { color: var(--r58-text) !important; display: block; font-size: 16px !important; font-weight: 600; margin: auto 0 10px !important; }
.r58-archive ul.products li.product .price del { color: var(--r58-muted) !important; font-size: 13px; font-weight: 400; margin-right: 4px; opacity: 1; }
.r58-archive ul.products li.product .price ins { color: var(--r58-rose-dark); text-decoration: none; }
.r58-archive ul.products li.product .button { background: #fff !important; box-shadow: inset 0 0 0 1.5px var(--r58-rose) !important; color: var(--r58-rose-dark) !important; font-size: 12px !important; margin: 0 !important; min-height: 40px; padding: 0 10px !important; width: 100%; }
.r58-archive ul.products li.product .button:hover, .r58-archive ul.products li.product .button.added { background: var(--r58-rose) !important; color: #fff !important; }
.r58-archive ul.products li.product .button.loading { opacity: .6; }
.r58-archive ul.products li.product .added_to_cart { color: var(--r58-green) !important; display: block; font-size: 13px; font-weight: 500; margin-top: 6px; text-align: center; }
.r58-archive ul.products li.product .onsale, .single-product .onsale { background: var(--r58-rose) !important; border-radius: 999px !important; color: #fff !important; font: 600 12px/1 var(--r58-font) !important; left: 16px !important; margin: 0 !important; min-height: 0 !important; min-width: 0 !important; padding: 6px 10px !important; position: absolute; right: auto !important; top: 16px !important; z-index: 2; }
.r58-archive .star-rating { display: none; }

.r58-archive .woocommerce-pagination { margin-top: 32px; text-align: center; }
.r58-archive .woocommerce-pagination ul { border: 0 !important; display: inline-flex !important; flex-wrap: wrap; gap: 6px; justify-content: center; margin: 0 !important; }
.r58-archive .woocommerce-pagination ul li { border: 0 !important; float: none !important; overflow: visible !important; }
.r58-archive .woocommerce-pagination ul li :is(a, span) { align-items: center; border: 1px solid var(--r58-line) !important; border-radius: 8px; color: var(--r58-green) !important; display: inline-flex !important; font-size: 14px !important; height: 40px; justify-content: center; min-width: 40px; padding: 0 10px !important; }
.r58-archive .woocommerce-pagination ul li a:hover { background: var(--r58-pink-soft) !important; }
.r58-archive .woocommerce-pagination ul li span.current { background: var(--r58-green) !important; border-color: var(--r58-green) !important; color: #fff !important; }

.r58-empty { background: var(--r58-pink-soft); border-radius: 14px; padding: 32px 20px; text-align: center; }
.r58-empty p { color: var(--r58-text); font-size: 16px; margin: 0 0 18px; }

/* ---------- Cistella ---------- */
body.woocommerce-cart .woocommerce { display: grid; font-family: var(--r58-font); gap: 0 32px; grid-template-columns: minmax(0, 1fr); }
body.woocommerce-cart .woocommerce > * { grid-column: 1 / -1; }
@media (min-width: 1024px) {
	body.woocommerce-cart .woocommerce:has(.cart-collaterals) { grid-template-columns: minmax(0, 1fr) 380px; }
	body.woocommerce-cart .woocommerce > .woocommerce-cart-form { align-self: start; grid-column: 1; }
	body.woocommerce-cart .woocommerce > .cart-collaterals { align-self: start; grid-column: 2; position: sticky; top: 140px; }
}
.r58-freeship { background: #fff; border: 1px solid var(--r58-line); border-radius: 12px; margin-bottom: 16px; padding: 12px 16px 14px; }
.r58-freeship p { color: var(--r58-text); font-size: 14px; margin: 0 0 8px; }
.r58-freeship strong { color: var(--r58-green); }
.r58-freeship__bar { background: var(--r58-pink-soft); border-radius: 999px; display: block; height: 8px; overflow: hidden; }
.r58-freeship__bar span { background: var(--r58-green); border-radius: 999px; display: block; height: 100%; transition: width .4s; }
body.woocommerce-cart table.shop_table.cart { border: 1px solid var(--r58-line) !important; border-collapse: separate; border-radius: 12px; margin: 0 0 24px; overflow: hidden; }
body.woocommerce-cart table.shop_table.cart th { background: var(--r58-pink-soft); color: var(--r58-muted); font-size: 12px; font-weight: 600; letter-spacing: .06em; padding: 12px 14px; text-transform: uppercase; }
body.woocommerce-cart table.shop_table.cart td { border-top: 1px solid var(--r58-line) !important; color: var(--r58-text); font-size: 15px; padding: 14px; vertical-align: middle; }
body.woocommerce-cart table.cart .product-thumbnail img { border: 1px solid var(--r58-line); border-radius: 8px; width: 76px !important; }
body.woocommerce-cart table.cart .product-name a { color: var(--r58-text) !important; font-weight: 500; text-decoration: none; }
body.woocommerce-cart table.cart .product-name a:hover { color: var(--r58-green) !important; text-decoration: underline; }
body.woocommerce-cart table.cart .product-subtotal { font-weight: 600; }
body.woocommerce-cart table.cart a.remove { align-items: center; border: 1px solid var(--r58-line); border-radius: 50% !important; color: var(--r58-muted) !important; display: inline-flex !important; font-size: 18px !important; height: 30px !important; justify-content: center; width: 30px !important; }
body.woocommerce-cart table.cart a.remove:hover { background: var(--r58-rose) !important; border-color: var(--r58-rose); color: #fff !important; }
body.woocommerce-cart table.cart .quantity .qty { width: 70px; }
body.woocommerce-cart table.cart td.actions { background: #fff; padding: 14px !important; }
body.woocommerce-cart table.cart td.actions .coupon { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; }
body.woocommerce-cart table.cart td.actions .coupon .input-text { margin: 0 !important; min-width: 200px; width: auto !important; }
body.woocommerce-cart table.cart td.actions .coupon .button { width: auto !important; }
body.woocommerce-cart table.cart td.actions > .button { float: right; }
body.woocommerce-cart .cart-collaterals .cart_totals { background: var(--r58-pink-soft); border: 1px solid var(--r58-line); border-radius: 14px; float: none !important; padding: 22px; width: 100% !important; }
body.woocommerce-cart .cart_totals h2 { color: var(--r58-text); font: 600 20px/1.3 var(--r58-font) !important; margin: 0 0 12px !important; }
body.woocommerce-cart .cart_totals table.shop_table { background: transparent; border: 0 !important; margin: 0 0 10px; }
body.woocommerce-cart .cart_totals table.shop_table :is(th, td) { background: transparent; border-top: 1px solid var(--r58-line) !important; font-size: 14px; padding: 12px 0; vertical-align: top; }
body.woocommerce-cart .cart_totals table.shop_table th { color: var(--r58-muted); font-weight: 500; letter-spacing: 0; text-transform: none; width: 34%; }
body.woocommerce-cart .cart_totals .order-total :is(th, td) { color: var(--r58-text); font-size: 18px; font-weight: 600; }
body.woocommerce-cart .cart_totals #shipping_method li { margin-bottom: 6px; }
body.woocommerce-cart .cart_totals .woocommerce-shipping-destination, body.woocommerce-cart .cart_totals .shipping-calculator-button { color: var(--r58-muted); font-size: 13px; }
body.woocommerce-cart .wc-proceed-to-checkout { padding: 6px 0 0 !important; }
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { font-size: 15px !important; margin: 0 !important; min-height: 54px; width: 100%; }
.r58-cart-trust { display: grid; gap: 8px; list-style: none; margin: 16px 0 0 !important; padding: 0 !important; }
.r58-cart-trust li { align-items: center; color: var(--r58-text); display: flex; font-size: 13px; gap: 10px; margin: 0 !important; }
.r58-cart-trust .r58-icon { color: var(--r58-green); height: 18px; width: 18px; }
body.woocommerce-cart .cart-empty.woocommerce-info { font-size: 16px; margin: 0 auto 8px; max-width: 640px; text-align: left; }
body.woocommerce-cart .return-to-shop { margin: 18px 0 0; text-align: center; }
/* Les quantitats s'actualitzen soles (design.js): el botó "Actualitza la cistella" ja no cal i quedava sota "Aplica". */
body.r58-cart-auto.woocommerce-cart table.cart td.actions > button[name=update_cart] { display: none !important; }
@media (max-width: 768px) {
	body.woocommerce-cart table.shop_table_responsive.cart thead { display: none; }
	/* Sense model de taula: amb les files convertides en targetes, la taula calculava una amplada més gran que el mòbil. */
	body.woocommerce-cart table.shop_table_responsive.cart, body.woocommerce-cart table.shop_table_responsive.cart tbody, body.woocommerce-cart table.shop_table_responsive.cart tbody > tr:not(.cart_item) { display: block !important; width: 100% !important; }
	/* Cada línia, una targeta: foto a l'esquerra; nom, preu, quantitat i subtotal a la dreta. */
	body.woocommerce-cart table.shop_table_responsive.cart tr.cart_item { align-items: center; border-top: 1px solid var(--r58-line); column-gap: 14px; display: grid !important; grid-template-columns: 72px minmax(0, 1fr) auto; padding: 14px 46px 14px 14px; position: relative; row-gap: 6px; }
	body.woocommerce-cart table.shop_table_responsive.cart tr.cart_item:first-child { border-top: 0; }
	body.woocommerce-cart table.shop_table_responsive.cart tr.cart_item td { background: none !important; border: 0 !important; display: block !important; padding: 0 !important; text-align: left !important; }
	body.woocommerce-cart table.shop_table_responsive.cart tr.cart_item td::before { display: none !important; }
	body.woocommerce-cart table.shop_table_responsive.cart tr.cart_item td.product-thumbnail { align-self: start; grid-column: 1; grid-row: 1 / span 3; }
	body.woocommerce-cart table.shop_table_responsive.cart tr.cart_item td.product-thumbnail img { width: 72px !important; }
	body.woocommerce-cart table.shop_table_responsive.cart tr.cart_item td.product-name { font-size: 15px; grid-column: 2 / -1; line-height: 1.35; }
	body.woocommerce-cart table.shop_table_responsive.cart tr.cart_item td.product-price { color: var(--r58-muted); font-size: 13px; grid-column: 2 / -1; }
	body.woocommerce-cart table.shop_table_responsive.cart tr.cart_item td.product-quantity { grid-column: 2; }
	body.woocommerce-cart table.shop_table_responsive.cart tr.cart_item td.product-subtotal { font-size: 15px; grid-column: 3; text-align: right !important; }
	body.woocommerce-cart table.shop_table_responsive.cart tr.cart_item td.product-remove { position: absolute; right: 10px; top: 12px; }
	body.woocommerce-cart table.cart .quantity .qty { height: 40px; width: 64px; }
	.r58-archive ul.products li.product .button { font-size: 11px !important; letter-spacing: .02em; }
	body.woocommerce-cart table.cart td.actions { border-top: 1px solid var(--r58-line) !important; display: block !important; }
	body.woocommerce-cart table.cart td.actions::before { display: none !important; }
	body.woocommerce-cart table.cart td.actions .coupon { display: flex !important; flex-wrap: nowrap; }
	body.woocommerce-cart table.cart td.actions .coupon .input-text { flex: 1; min-width: 0; }
	body.woocommerce-cart table.cart td.actions > .button { float: none; margin-top: 10px !important; width: 100%; }
}

/* ---------- Pagament ----------
 * Esquerra: una targeta amb les dades (camps per parelles). Dreta: targeta "Resum de la comanda" amb foto i quantitat,
 * totals nets, enviament i mètodes de pagament com a opcions seleccionables i el botó de pagar. */
body.woocommerce-checkout form.checkout { font-family: var(--r58-font); }
@media (min-width: 1024px) {
	body.woocommerce-checkout form.checkout { align-items: start; display: grid; gap: 0 32px; grid-template-columns: minmax(0, 1fr) 430px; }
	body.woocommerce-checkout form.checkout > * { grid-column: 1 / -1; }
	body.woocommerce-checkout form.checkout > #customer_details { grid-column: 1; grid-row: 2 / span 2; }
	body.woocommerce-checkout form.checkout > #order_review_heading { grid-column: 2; grid-row: 2; }
	body.woocommerce-checkout form.checkout > #order_review { grid-column: 2; grid-row: 2 / span 2; }
}
body.woocommerce-checkout #customer_details.col2-set { background: #fff; border: 1px solid var(--r58-line) !important; border-radius: 14px; display: block !important; margin-bottom: 24px; padding: 22px 22px 8px; width: auto !important; }
body.woocommerce-checkout #customer_details.col2-set::before, body.woocommerce-checkout #customer_details.col2-set::after { display: none !important; }
body.woocommerce-checkout #customer_details :is(.col-1, .col-2) { float: none !important; max-width: none !important; padding: 0 !important; width: 100% !important; }
@media (min-width: 640px) { body.woocommerce-checkout #customer_details.col2-set { padding: 28px 30px 12px; } }
body.woocommerce-checkout #customer_details h3 { border-bottom: 1px solid var(--r58-line); color: var(--r58-green); font: 600 19px/1.3 var(--r58-font) !important; margin: 0 0 18px !important; padding: 0 0 12px !important; }
body.woocommerce-checkout #customer_details .woocommerce-additional-fields h3 { margin-top: 10px !important; }
body.woocommerce-checkout :is(.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper) { column-gap: 16px; display: grid; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 560px) { body.woocommerce-checkout :is(.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
body.woocommerce-checkout #customer_details .form-row { float: none !important; grid-column: 1 / -1; margin: 0 0 14px !important; padding: 0 !important; width: auto !important; }
@media (min-width: 560px) {
	body.woocommerce-checkout #customer_details .form-row-first { grid-column: 1; }
	body.woocommerce-checkout #customer_details .form-row-last { grid-column: 2; }
	/* Codi postal + població: la configuració per país de WooCommerce els torna a posar a amplada completa. */
	body.woocommerce-checkout #customer_details :is(#billing_postcode_field, #shipping_postcode_field, #billing_phone_field) { grid-column: 1; }
	body.woocommerce-checkout #customer_details :is(#billing_city_field, #shipping_city_field, #billing_email_field) { grid-column: 2; }
}
body.woocommerce-checkout #customer_details .form-row label { color: var(--r58-text); font-size: 13px !important; font-weight: 500; line-height: 1.4; margin: 0 0 5px; }
body.woocommerce-checkout #customer_details .form-row .required { color: var(--r58-rose); text-decoration: none; }
/* Sense el select ocult de select2: posicionat en absolut i al 100 %, feia la pàgina més ampla que la pantalla. */
body.woocommerce-checkout #customer_details :is(input.input-text, textarea, select:not(.select2-hidden-accessible)) { width: 100% !important; }
body.woocommerce-checkout #customer_details textarea { min-height: 96px; }
body.woocommerce-checkout #customer_details :is(#billing_address_2_field, #shipping_address_2_field) { margin-top: -6px !important; }
/* País únic: WooCommerce el mostra com a text; aquí, com un camp de només lectura. */
body.woocommerce-checkout #customer_details :is(#billing_country_field, #shipping_country_field) strong { background: var(--r58-pink-soft); border: 1px solid var(--r58-line); border-radius: 8px; color: var(--r58-text); display: block; font-size: 15px; font-weight: 500; padding: 11px 14px; }
body.woocommerce-checkout #customer_details :is(.select2-container--default .select2-selection--single) { align-items: center; border: 1px solid #dcd0cd !important; border-radius: 8px !important; display: flex !important; height: 46px !important; padding: 0 !important; }
body.woocommerce-checkout #customer_details .select2-selection__rendered { color: var(--r58-text) !important; font-size: 15px; line-height: 44px !important; padding: 0 34px 0 14px !important; }
body.woocommerce-checkout #customer_details .select2-selection__arrow { height: 44px !important; }
body.woocommerce-checkout #customer_details .woocommerce-form__label-for-checkbox { align-items: center; cursor: pointer; display: inline-flex !important; font-size: 14px !important; font-weight: 400 !important; gap: 10px; }
body.woocommerce-checkout #customer_details input[type=checkbox] { accent-color: var(--r58-green); height: 18px; margin: 0; width: 18px; }
/* "Vols rebre-la en una altra adreça?": casella dins un requadre, no com un títol. */
body.woocommerce-checkout #ship-to-different-address { background: var(--r58-pink-soft); display: block; width: 100%; border: 1px solid var(--r58-line) !important; border-radius: 10px; font: 500 14px/1.4 var(--r58-font) !important; margin: 4px 0 18px !important; padding: 12px 14px !important; }
body.woocommerce-checkout #ship-to-different-address label { font-size: 14px !important; font-weight: 500 !important; margin: 0; width: 100%; }
/* "Notes de la comanda (opcional)" repetia el títol de la secció: l'etiqueta queda només per als lectors de pantalla. */
body.woocommerce-checkout #order_comments_field > label { clip: rect(0 0 0 0); height: 1px; overflow: hidden; position: absolute; width: 1px; }

/* Cupó */
body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info { background: #fff; border: 1px dashed #dcc9c5; border-left: 1px dashed #dcc9c5; font-size: 14px; padding: 12px 16px 12px 44px; }
body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info a { color: var(--r58-rose-dark) !important; font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }
body.woocommerce-checkout form.checkout_coupon { background: #fff; border: 1px solid var(--r58-line) !important; border-radius: 12px; display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 20px !important; padding: 16px !important; }
body.woocommerce-checkout form.checkout_coupon p:first-child { color: var(--r58-muted); flex: 1 1 100%; font-size: 13px; margin: 0; }
body.woocommerce-checkout form.checkout_coupon .form-row { float: none !important; margin: 0 !important; padding: 0 !important; width: auto !important; }
body.woocommerce-checkout form.checkout_coupon .form-row-first { flex: 1 1 200px; }
body.woocommerce-checkout form.checkout_coupon .button { background: #fff !important; box-shadow: inset 0 0 0 1px var(--r58-green) !important; color: var(--r58-green) !important; min-height: 46px; }

/* Pagament exprés (Apple Pay / Google Pay) i separador "— O —" */
body.woocommerce-checkout #wcpay-express-checkout-element { margin-bottom: 4px; }
body.woocommerce-checkout #wcpay-express-checkout-button-separator { color: var(--r58-muted); font-size: 13px; letter-spacing: .08em; margin: 10px 0 18px !important; }

/* Resum de la comanda: el títol va dins la targeta (shop.php); l'encapçalament separat deixava una franja blanca. */
body.woocommerce-checkout #order_review_heading { display: none !important; }
body.woocommerce-checkout #order_review { background: var(--r58-pink-soft); border: 1px solid var(--r58-line); border-radius: 14px; margin-bottom: 24px; padding: 22px; }
body.woocommerce-checkout .r58-co-title { border-bottom: 1px solid var(--r58-line); color: var(--r58-text); font: 600 20px/1.3 var(--r58-font) !important; margin: 0 0 4px !important; padding: 0 0 14px !important; }
/* La taula del resum es mostra com a files flexibles: com a taula, l'enviament quedava encongit a la columna dels preus. */
body.woocommerce-checkout #order_review table.shop_table { background: transparent; border: 0 !important; border-radius: 0 !important; display: block; margin: 0 0 16px !important; padding: 0 !important; width: 100%; }
body.woocommerce-checkout #order_review table.shop_table thead { display: none !important; }
body.woocommerce-checkout #order_review table.shop_table :is(tbody, tfoot) { display: block; }
body.woocommerce-checkout #order_review table.shop_table tr { align-items: center; border-top: 1px solid var(--r58-line); display: flex; gap: 12px; justify-content: space-between; padding: 12px 0; }
body.woocommerce-checkout #order_review table.shop_table tbody tr:first-child { border-top: 0; }
body.woocommerce-checkout #order_review table.shop_table :is(th, td) { background: transparent !important; border: 0 !important; color: var(--r58-text); display: block; font-size: 14px; padding: 0 !important; width: auto !important; }
body.woocommerce-checkout #order_review table.shop_table td.product-name { flex: 1; min-width: 0; }
body.woocommerce-checkout #order_review table.shop_table :is(td.product-total, tfoot td) { flex: none; font-weight: 600; text-align: right; white-space: nowrap; }
body.woocommerce-checkout #order_review table.shop_table tfoot th { color: var(--r58-muted); font-weight: 500; letter-spacing: 0; text-transform: none; }
body.woocommerce-checkout #order_review .order-total { padding-top: 16px !important; }
body.woocommerce-checkout #order_review .order-total :is(th, td) { color: var(--r58-text) !important; font-size: 19px !important; font-weight: 600 !important; }
body.woocommerce-checkout #order_review .order-total .includes_tax { color: var(--r58-muted); display: block; font-size: 12px; font-weight: 400; }
.r58-co-item { align-items: center; display: flex; gap: 12px; }
.r58-co-item__img { flex: none; position: relative; }
.r58-co-item__img img { background: #fff; border: 1px solid var(--r58-line); border-radius: 8px; display: block; height: 56px !important; object-fit: contain; width: 56px !important; }
.r58-co-item__qty { align-items: center; background: var(--r58-green); border: 2px solid var(--r58-pink-soft); border-radius: 999px; color: #fff; display: flex; font-size: 11px; font-weight: 600; height: 22px; justify-content: center; min-width: 22px; padding: 0 5px; position: absolute; right: -8px; top: -8px; }
.r58-co-item__name { font-weight: 500; line-height: 1.35; }
/* Enviament: cada opció, un requadre */
body.woocommerce-checkout #order_review table.shop_table tr.woocommerce-shipping-totals { flex-wrap: wrap; gap: 8px; }
body.woocommerce-checkout #order_review table.shop_table tr.woocommerce-shipping-totals :is(th, td) { flex: 1 1 100%; text-align: left; white-space: normal; }
body.woocommerce-checkout #order_review #shipping_method { margin: 0; padding: 0; }
body.woocommerce-checkout #order_review #shipping_method li { align-items: center; background: #fff; border: 1px solid var(--r58-line); border-radius: 10px; display: flex; font-weight: 400; gap: 8px; margin: 0 0 8px !important; padding: 9px 12px; text-align: left; }
body.woocommerce-checkout #order_review #shipping_method li:has(input:checked) { border-color: var(--r58-green); box-shadow: inset 0 0 0 1px var(--r58-green); }
body.woocommerce-checkout #order_review #shipping_method input { accent-color: var(--r58-green); flex: none; margin: 0 !important; }
body.woocommerce-checkout #order_review #shipping_method label { display: flex; flex: 1; font-size: 14px; font-weight: 400; gap: 6px; justify-content: space-between; margin: 0; }
/* Mètodes de pagament */
body.woocommerce-checkout #payment { background: transparent !important; border: 0; border-radius: 0 !important; }
body.woocommerce-checkout #payment ul.payment_methods { border: 0 !important; margin: 0 0 4px !important; padding: 0 !important; }
body.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method { background: #fff; border: 1px solid var(--r58-line); border-radius: 12px; list-style: none; margin: 0 0 10px !important; padding: 14px 16px !important; }
body.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method:has(> input:checked) { border-color: var(--r58-green); box-shadow: inset 0 0 0 1px var(--r58-green); }
body.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method > input { accent-color: var(--r58-green); margin: 0 8px 0 0 !important; vertical-align: middle; }
body.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method > label { color: var(--r58-text) !important; display: inline-flex !important; flex-wrap: wrap; font-size: 15px !important; font-weight: 500 !important; gap: 6px; vertical-align: middle; }
body.woocommerce-checkout #payment div.payment_box { background: transparent !important; border-radius: 0 !important; color: var(--r58-text) !important; font-size: 14px; margin: 12px 0 0 !important; padding: 0 !important; }
body.woocommerce-checkout #payment div.payment_box :is(.wcpay-upe-element, .wcpay-payment-element, fieldset) { border: 0 !important; margin: 0 !important; padding: 0 !important; }
body.woocommerce-checkout #payment div.payment_box::before { display: none !important; }
body.woocommerce-checkout #payment .place-order { background: transparent; margin: 0 !important; padding: 6px 0 0 !important; }
body.woocommerce-checkout #payment .woocommerce-privacy-policy-text p { color: var(--r58-muted); font-size: 12.5px !important; line-height: 1.55; margin: 0 0 12px; }
body.woocommerce-checkout #payment .woocommerce-privacy-policy-text a, body.woocommerce-checkout #payment .woocommerce-terms-and-conditions-link { color: var(--r58-rose-dark) !important; }
body.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper .form-row { margin: 0 0 14px !important; padding: 0 !important; }
body.woocommerce-checkout #payment .woocommerce-form__label-for-checkbox { align-items: flex-start; display: flex !important; font-size: 14px; gap: 10px; line-height: 1.45; }
body.woocommerce-checkout #payment .woocommerce-form__label-for-checkbox input { accent-color: var(--r58-green); flex: none; height: 18px; margin: 1px 0 0 !important; width: 18px; }
body.woocommerce-checkout #payment #place_order { border-radius: 10px !important; font-size: 15px !important; letter-spacing: .06em; min-height: 56px; width: 100%; }

/* ---------- El meu compte ---------- */
body.woocommerce-account .woocommerce { font-family: var(--r58-font); margin: 0 auto; max-width: 1040px; }
body.woocommerce-account :is(#customer_login, form.login, form.register, form.lost_reset_password) { border: 0 !important; box-shadow: none !important; }
body.woocommerce-account #customer_login { display: grid; gap: 20px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 900px) { body.woocommerce-account #customer_login { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
body.woocommerce-account #customer_login::before, body.woocommerce-account #customer_login::after { display: none !important; }
body.woocommerce-account #customer_login > div { background: #fff; border: 1px solid var(--r58-line); border-radius: 14px; float: none !important; padding: 26px; width: auto !important; }
body.woocommerce-account #customer_login > .u-column2 { background: var(--r58-pink-soft); }
body.woocommerce-account #customer_login h2, body.woocommerce-account .woocommerce > h2 { color: var(--r58-text); font: 600 22px/1.3 var(--r58-font) !important; margin: 0 0 16px !important; }
body.woocommerce-account :is(form.login, form.register) { background: transparent !important; margin: 0 !important; padding: 0 !important; }
body.woocommerce-account form.login .form-row:last-of-type { align-items: center; display: flex; flex-wrap: wrap; gap: 12px 18px; }
body.woocommerce-account .woocommerce-form-login__rememberme { align-items: center; display: inline-flex; font-size: 14px; gap: 6px; margin: 0 !important; }
body.woocommerce-account .lost_password a { color: var(--r58-rose-dark) !important; font-size: 14px; }
body.woocommerce-account .woocommerce-privacy-policy-text p { color: var(--r58-muted); font-size: 13px; line-height: 1.5; }
body.woocommerce-account form.lost_reset_password { background: #fff; border: 1px solid var(--r58-line) !important; border-radius: 14px; margin: 0 auto !important; max-width: 520px; padding: 26px !important; }

body.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) { display: grid; gap: 24px; grid-template-columns: minmax(0, 1fr); max-width: 1180px; }
body.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) > :is(.r58-account-head, .woocommerce-notices-wrapper) { grid-column: 1 / -1; }
@media (min-width: 900px) { body.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) { grid-template-columns: 250px minmax(0, 1fr); } }
body.woocommerce-account .woocommerce-MyAccount-navigation { float: none !important; width: auto !important; }
body.woocommerce-account .woocommerce-MyAccount-navigation ul { background: #fff; border: 1px solid var(--r58-line); border-radius: 14px; list-style: none; margin: 0; overflow: hidden; padding: 6px; }
body.woocommerce-account .woocommerce-MyAccount-navigation li { border: 0 !important; margin: 0; }
body.woocommerce-account .woocommerce-MyAccount-navigation li a { border-radius: 8px; color: var(--r58-text) !important; display: block; font-size: 15px; padding: 11px 14px; text-decoration: none !important; }
body.woocommerce-account .woocommerce-MyAccount-navigation li a:hover { background: var(--r58-pink-soft); }
body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { background: var(--r58-green); color: #fff !important; }
body.woocommerce-account .woocommerce-MyAccount-content { background: #fff; border: 1px solid var(--r58-line); border-radius: 14px; float: none !important; font-size: 15px; line-height: 1.6; padding: 24px; width: auto !important; }
body.woocommerce-account .woocommerce-MyAccount-content a { color: var(--r58-rose-dark); }
body.woocommerce-account .woocommerce-orders-table { border: 1px solid var(--r58-line) !important; border-radius: 10px; overflow: hidden; }
body.woocommerce-account .woocommerce-orders-table :is(th, td) { font-size: 14px; padding: 10px 12px; }

/* Text ampliat de categoria (sota els productes) */
.r58-archive__more { border-top: 1px solid var(--r58-line); margin-top: 40px; max-width: 860px; padding-top: 28px; }
.r58-archive__more h2 { color: var(--r58-green); font: 600 20px/1.3 var(--r58-font) !important; margin: 0 0 10px !important; }
.r58-archive__more p { color: var(--r58-text); font-size: 15px; line-height: 1.7; margin: 0 0 10px; }
