.wcse-services {
	margin: 1em 0 1.5em;
	padding: 1em 1.25em;
	border: 1px solid #e0e0e0;
	border-radius: 6px;
	background: #fafafa;
}

.wcse-services__title {
	font-weight: 600;
	margin: 0 0 0.75em;
}

.wcse-service {
	display: flex;
	align-items: flex-start;
	gap: 0.6em;
	margin-bottom: 0.6em;
	cursor: pointer;
}

.wcse-service:last-child {
	margin-bottom: 0;
}

.wcse-service input[type="checkbox"] {
	margin-top: 0.25em;
	flex: 0 0 auto;
}

.wcse-service__info {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
}

.wcse-service__name {
	font-weight: 500;
}

.wcse-service__desc {
	font-size: 0.875em;
	color: #666;
}

.wcse-service__price {
	white-space: nowrap;
	font-weight: 600;
}

/* Aviso en la ficha de producto */
.wcse-services__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.wcse-services--notice .wcse-service {
	cursor: default;
}

.wcse-services__hint {
	margin: 0.75em 0 0;
	font-size: 0.875em;
	color: #666;
	font-style: italic;
}

/* Bloque de servicios en el carrito */
.wcse-cart-services {
	margin-top: 0.5em;
	padding: 0.6em 0.8em;
	border: 1px solid #e0e0e0;
	border-radius: 6px;
	background: #fafafa;
	font-size: 0.875em;
	max-width: 420px;
	transition: opacity 0.2s ease;
}

.wcse-cart-services.wcse-loading {
	opacity: 0.5;
	pointer-events: none;
}

.wcse-cart-services__title {
	font-weight: 600;
	margin: 0 0 0.5em;
}

.wcse-cart-services .wcse-service {
	margin-bottom: 0.4em;
}

/* Sub-filas de servicios bajo cada línea de compra (celdas reales de la tabla) */
.wcse-services-row td {
	border: none;
	background: transparent;
}

.wcse-services-row--title td {
	border-top: 1px solid #e5e5e5;
	padding: 0.9em 0.75em 0.25em;
}

.wcse-services-row--title .wcse-cart-services__title {
	margin: 0;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	font-size: 0.85em;
}

.wcse-services-row .wcse-cell {
	padding: 0.35em 0.75em;
	font-size: 0.9em;
	vertical-align: middle;
}

.wcse-service__main {
	display: flex;
	align-items: flex-start;
	gap: 0.6em;
	min-width: 0;
	cursor: pointer;
	margin: 0;
}

.wcse-service__main input[type="checkbox"] {
	margin-top: 0.25em;
	flex: 0 0 auto;
}

.wcse-cell--subtotal .wcse-service__subtotal {
	font-weight: 600;
	white-space: nowrap;
}

/* Bloque de código postal al inicio del carrito */
.wcse-postcode {
	margin: 0 0 1.5em;
	padding: 1em 1.25em;
	border: 1px solid #e0e0e0;
	border-radius: 6px;
	background: #fafafa;
}

.wcse-postcode__form label {
	display: block;
	font-weight: 600;
	margin-bottom: 0.5em;
}

.wcse-postcode__controls {
	display: inline-flex;
	gap: 0.5em;
	align-items: center;
}

.wcse-postcode__controls input {
	width: 8em;
}

.wcse-postcode__current {
	margin: 0;
}

.wcse-postcode__ask {
	font-weight: 600;
	margin: 0 0 0.5em;
}

.wcse-postcode__change {
	margin-top: 0.75em;
}

.wcse-postcode__change summary {
	display: inline-block;
	cursor: pointer;
	background: var(--wcse-green, #49ae4c);
	color: #fff;
	padding: 0.55em 1.2em;
	border-radius: 4px;
	font-size: 0.85em;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	text-decoration: none;
	list-style: none;
	transition: background 0.15s ease;
}

.wcse-postcode__change summary::-webkit-details-marker,
.wcse-postcode__change summary::marker {
	display: none;
	content: "";
}

.wcse-postcode__change summary:hover {
	background: var(--wcse-green-dark, #3c9440);
	color: #fff;
}

.wcse-postcode__change[open] summary {
	margin-bottom: 0.75em;
}

.wcse-postcode__status {
	margin: 0.75em 0 0;
	padding: 0.5em 0.75em;
	border-radius: 4px;
	font-size: 0.9em;
}

.wcse-postcode__status--ok {
	background: #edf7ed;
	border: 1px solid #b7dfb9;
}

.wcse-postcode__status--pickup {
	background: #fff8e5;
	border: 1px solid #f0d47e;
}

.wcse-postcode__warning {
	margin: 0 0 0.75em;
	padding: 0.6em 0.8em;
	background: #fff8e5;
	border: 1px solid #f0d47e;
	border-radius: 4px;
	font-size: 0.92em;
	font-weight: 600;
	text-align: left;
}

/* Listado de productos que solo admiten recogida */
.wcse-postcode__restricted {
	margin-top: 0.75em;
	padding: 0.75em 0.9em;
	background: #fff;
	border: 1px solid var(--wcse-border, #e5e5e5);
	border-radius: 4px;
	font-size: 0.9em;
	text-align: left;
}

.wcse-postcode__restricted p {
	margin: 0 0 0.35em;
}

.wcse-postcode__restricted ul {
	margin: 0 0 0.5em 1.25em;
	padding: 0;
}

.wcse-postcode__restricted li {
	margin-bottom: 0.25em;
}

.wcse-postcode__remove-item {
	margin-left: 0.5em;
	color: #d33;
	font-size: 0.9em;
	text-decoration: underline;
	white-space: nowrap;
}

/* Mensaje de aviso con icono dentro del recuadro de restringidos */
.wcse-postcode__alert {
	display: flex;
	align-items: flex-start;
	gap: 0.6em;
	margin: 0 0 0.75em;
	padding: 0.6em 0.75em;
	background: #fff8e5;
	border: 1px solid #f0d47e;
	border-radius: 4px;
	font-size: 0.92em;
	font-weight: 600;
	color: #7a5a00;
	text-align: left;
}

.wcse-postcode__alert-icon {
	font-size: 1.4em;
	line-height: 1;
	flex: 0 0 auto;
}

.wcse-postcode__restricted-note {
	color: #666;
	font-style: italic;
	font-size: 0.9em;
}

.wcse-postcode__pickup-note {
	margin: 0.75em 0 0;
	font-size: 0.9em;
	font-weight: 600;
	color: var(--wcse-green, #49ae4c);
}

.wcse-postcode__restricted .wcse-postcode__pickup-note {
	margin: 0 0 0.6em;
	padding-bottom: 0.5em;
	border-bottom: 1px solid var(--wcse-border, #e5e5e5);
}

.wcse-postcode__stores {
	margin-top: 0.75em;
	font-size: 0.9em;
}

.wcse-postcode__stores ul {
	margin: 0.25em 0 0 1.25em;
}

.wcse-postcode__store-address {
	color: #666;
}

/* ==================================================================== */
/* Diseño de la página del carrito (plantilla propia)                    */
/* ==================================================================== */

:root {
	--wcse-green: rgba(73, 174, 76, 1);
	--wcse-green-dark: #3c9440;
	--wcse-green-light: #eef7ee;
	--wcse-gray-bg: #ececec;
	--wcse-border: #e5e5e5;
	--wcse-text-soft: #8a8a8a;
}

/* Barra de pasos */
.wcse-steps {
	display: flex;
	justify-content: center;
	gap: 0;
	list-style: none;
	margin: 0 0 2em;
	padding: 0;
}

.wcse-steps__step {
	position: relative;
	text-align: center;
	text-transform: uppercase;
	font-size: 0.8em;
	font-weight: 700;
	letter-spacing: 0.05em;
	color: var(--wcse-green);
	padding: 1.4em 2.5em 0;
}

.wcse-steps__dot {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 14px;
	height: 14px;
	border: 2px solid var(--wcse-green);
	border-radius: 50%;
	background: #fff;
	z-index: 1;
}

.wcse-steps__step.is-active .wcse-steps__dot {
	background: var(--wcse-green);
}

.wcse-steps__step + .wcse-steps__step::before {
	content: "";
	position: absolute;
	top: 6px;
	right: 50%;
	width: 100%;
	height: 2px;
	background: var(--wcse-green);
}

/* Bloque de código postal: caja gris centrada */
.wcse-postcode {
	max-width: 520px;
	margin: 0 auto 2em;
	padding: 1.5em 2em;
	background: #ececec;
	border: none;
	border-radius: 0;
	text-align: center;
}

.wcse-postcode__ask,
.wcse-postcode__current {
	font-weight: 700;
	font-size: 1.05em;
}

.wcse-postcode__controls {
	justify-content: center;
}

.wcse-postcode__controls input {
	text-align: center;
	background: #fff;
}

.wcse-postcode__controls .button,
.wcse-coupon .button,
.wcse-btn-secondary {
	background: var(--wcse-green);
	color: #fff;
	border: none;
}

.wcse-postcode__controls .button:hover,
.wcse-coupon .button:hover,
.wcse-btn-secondary:hover {
	background: var(--wcse-green-dark);
	color: #fff;
}

.wcse-postcode__status {
	text-align: left;
}

.wcse-postcode__stores {
	text-align: left;
}

/* Layout de dos columnas */
.wcse-cart-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	gap: 24px;
	align-items: start;
}

/* Columna principal: tarjetas */
.wcse-line {
	display: grid;
	grid-template-columns: 28px 84px minmax(0, 1fr) 110px 130px 110px;
	gap: 0 14px;
	align-items: center;
}

.wcse-line--headers {
	padding: 0 16px 8px;
	color: var(--wcse-text-soft);
	text-transform: uppercase;
	font-size: 0.72em;
	letter-spacing: 0.06em;
	font-weight: 600;
}

.wcse-line--headers .wcse-col-desc {
	grid-column: 3;
}

.wcse-line--headers .wcse-col-price,
.wcse-line--headers .wcse-col-qty {
	text-align: center;
}

.wcse-line--headers .wcse-col-subtotal {
	text-align: right;
}

.wcse-card {
	background: #fff;
	border: 1px solid var(--wcse-border);
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
	padding: 18px 16px;
	margin-bottom: 16px;
}

.wcse-cell-remove .wcse-remove {
	font-size: 1.4em;
	line-height: 1;
	color: #9a9a9a;
	text-decoration: none;
	font-weight: 700;
}

.wcse-cell-remove .wcse-remove:hover {
	color: #d33;
}

.wcse-cell-thumb img {
	max-width: 80px;
	height: auto;
	display: block;
}

.wcse-cell-info {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.wcse-product-name,
.wcse-product-name a {
	font-weight: 700;
	color: inherit;
	text-decoration: none;
}

.wcse-product-ref {
	color: var(--wcse-text-soft);
	font-size: 0.85em;
	text-transform: uppercase;
}

.wcse-line--product .wcse-col-price,
.wcse-line--product .wcse-col-qty {
	text-align: center;
}

.wcse-line--product .wcse-col-subtotal {
	text-align: right;
	font-weight: 700;
}

.wcse-line--product .wcse-col-price ins {
	color: var(--wcse-green);
	font-weight: 700;
	text-decoration: none;
}

.wcse-line--product .wcse-col-price del {
	color: var(--wcse-text-soft);
	display: block;
	font-size: 0.85em;
}

/* Control de cantidad */
.wcse-qty {
	display: inline-flex;
	align-items: stretch;
}

.wcse-qty__btn {
	width: 30px;
	background: #dcdcdc;
	border: 1px solid #cfcfcf;
	cursor: pointer;
	font-size: 1em;
	line-height: 1;
	padding: 0;
}

.wcse-qty__btn:hover {
	background: var(--wcse-green);
	color: #fff;
}

.wcse-qty input[type="number"] {
	width: 44px;
	text-align: center;
	border: 1px solid #cfcfcf;
	border-left: none;
	border-right: none;
	-moz-appearance: textfield;
}

.wcse-qty input::-webkit-outer-spin-button,
.wcse-qty input::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* Nota de instalación incluida (solo envíos a domicilio) */
.wcse-card-install {
	margin: 10px 0 0;
	padding: 0.5em 0.75em;
	background: var(--wcse-green-light, #eef7ee);
	border: 1px solid #cfe8cf;
	border-radius: 4px;
	color: var(--wcse-green-dark, #3c9440);
	font-size: 0.88em;
	font-weight: 600;
}

/* Texto informativo del envío definido en la categoría */
.wcse-card-shipnote {
	margin: 8px 0 0;
	padding: 0.4em 0.75em;
	background: #f5f5f5;
	border-left: 3px solid #c9c9c9;
	color: #555;
	font-size: 0.88em;
	font-style: italic;
}

/* Desplegable de productos relacionados (ventas cruzadas) */
.wcse-cross {
	margin: 10px 0 0;
}

.wcse-cross summary {
	display: inline-block;
	cursor: pointer;
	color: var(--wcse-green, #49ae4c);
	font-weight: 700;
	font-size: 0.9em;
	list-style: none;
}

.wcse-cross summary::-webkit-details-marker,
.wcse-cross summary::marker {
	display: none;
	content: "";
}

.wcse-cross summary::before {
	content: "+ ";
}

.wcse-cross[open] summary::before {
	content: "\2212\00a0";
}

.wcse-cross__list {
	margin-top: 8px;
	padding: 0.6em 0.8em;
	background: #fafafa;
	border: 1px solid var(--wcse-border, #e5e5e5);
	border-radius: 4px;
}

.wcse-cross__item {
	display: flex;
	align-items: center;
	gap: 0.6em;
	margin-bottom: 0.4em;
	font-size: 0.92em;
}

.wcse-cross__item:last-child {
	margin-bottom: 0;
}

.wcse-cross__item input[type="checkbox"] {
	accent-color: var(--wcse-green, #49ae4c);
	flex: 0 0 auto;
}

.wcse-cross__nocheck {
	width: 13px;
	flex: 0 0 auto;
}

.wcse-cross__name {
	color: inherit;
	text-decoration: underline;
	min-width: 0;
}

.wcse-cross__name:hover {
	color: var(--wcse-green-dark, #3c9440);
}

.wcse-cross__price {
	white-space: nowrap;
	font-weight: 600;
	margin-left: auto;
}

.wcse-cross__note {
	color: var(--wcse-text-soft, #8a8a8a);
	font-size: 0.85em;
	white-space: nowrap;
}

/* Aviso de envío no calculable automáticamente */
.wcse-card-noship {
	margin: 10px 0 0;
	padding: 0.6em 0.75em;
	background: #fff8e5;
	border: 1px solid #f0d47e;
	border-radius: 4px;
	color: #7a5a00;
	font-size: 0.9em;
	font-weight: 700;
}

/* Formulario de consulta de opciones de envío */
.wcse-quote {
	margin-top: 1em;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.wcse-quote__text {
	margin: 0;
	padding: 0.6em 0.75em;
	background: #fff8e5;
	border: 1px solid #f0d47e;
	border-radius: 4px;
	font-size: 0.85em;
}

.wcse-quote input,
.wcse-quote textarea {
	width: 100%;
	font-size: 0.9em;
	box-sizing: border-box;
}

.wcse-quote__btn {
	border: none;
	cursor: pointer;
	width: 100%;
	margin-top: 0;
	font-size: 0.95em;
}

/* Servicios dentro de la tarjeta */
.wcse-card-services {
	margin-top: 14px;
	padding-top: 12px;
	border-top: 1px solid var(--wcse-border);
}

.wcse-card-services__title {
	color: var(--wcse-green);
	text-transform: uppercase;
	font-weight: 700;
	font-size: 0.85em;
	letter-spacing: 0.05em;
	margin: 0 0 10px;
}

.wcse-line--service {
	margin-bottom: 8px;
	font-size: 0.92em;
}

.wcse-svc-main {
	grid-column: 1 / 4;
	display: flex;
	align-items: flex-start;
	gap: 0.6em;
	cursor: pointer;
	margin: 0;
	min-width: 0;
}

.wcse-svc-main input[type="checkbox"] {
	margin-top: 0.2em;
	flex: 0 0 auto;
	accent-color: var(--wcse-green);
}

.wcse-svc-name {
	display: flex;
	flex-direction: column;
}

.wcse-svc-desc {
	color: var(--wcse-text-soft);
	font-size: 0.88em;
}

.wcse-line--service .wcse-col-price,
.wcse-line--service .wcse-col-qty {
	text-align: center;
	font-weight: 600;
}

.wcse-line--service .wcse-col-subtotal {
	text-align: right;
	font-weight: 600;
}

.wcse-cart-mainactions {
	margin: 4px 0 16px;
	text-align: right;
}

/* Bloque de servicios globales dentro del nuevo layout */
.wcse-cart-main .wcse-cart-services--global {
	background: #fff;
	border: 1px solid var(--wcse-border);
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
	border-radius: 0;
	padding: 18px 16px;
}

.wcse-cart-main .wcse-cart-services--global .wcse-cart-services__title {
	color: var(--wcse-green);
	text-transform: uppercase;
	font-size: 0.85em;
	letter-spacing: 0.05em;
}

/* Lateral */
.wcse-side-box {
	background: #fff;
	border: 1px solid var(--wcse-border);
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
	padding: 18px 16px;
	margin-bottom: 16px;
}

.wcse-side-box__title {
	color: var(--wcse-text-soft);
	text-transform: uppercase;
	font-size: 0.72em;
	letter-spacing: 0.06em;
	font-weight: 600;
	text-align: center;
	margin: 0 0 12px;
}

.wcse-delivery__option {
	display: flex;
	align-items: flex-start;
	gap: 0.5em;
	margin-bottom: 0.6em;
	cursor: pointer;
	font-size: 0.92em;
}

.wcse-delivery__option input[type="radio"] {
	accent-color: var(--wcse-green);
	margin-top: 0.2em;
}

.wcse-delivery__stores {
	margin-top: 0.75em;
	padding: 0.9em;
	background: var(--wcse-green-light);
	border: 1px solid #cfe8cf;
}

.wcse-delivery__stores-title {
	color: var(--wcse-green);
	font-weight: 700;
	font-size: 0.9em;
	margin: 0 0 0.5em;
}

.wcse-delivery__stores select {
	width: 100%;
}

.wcse-delivery__stores-note {
	color: var(--wcse-green-dark);
	font-size: 0.8em;
	margin: 0.5em 0 0;
}

/* Resumen del pedido */
.wcse-summary__row {
	display: flex;
	justify-content: space-between;
	gap: 1em;
	text-transform: uppercase;
	font-size: 0.85em;
	font-weight: 600;
	padding: 0.35em 0;
}

.wcse-summary__row--coupon {
	color: var(--wcse-green-dark);
	text-transform: none;
}

.wcse-coupon-remove {
	color: #d33;
	text-decoration: none;
	margin-left: 0.35em;
	font-weight: 700;
}

.wcse-summary__row--total {
	font-size: 1.05em;
	font-weight: 800;
	border-top: 1px solid var(--wcse-border);
	margin-top: 0.5em;
	padding-top: 0.75em;
}

.wcse-summary__row--total > span:last-child {
	color: var(--wcse-green);
	font-size: 1.25em;
}

.wcse-summary__vat {
	margin: 0.15em 0 0;
	text-align: right;
	font-size: 0.78em;
	color: var(--wcse-text-soft, #8a8a8a);
}

.wcse-postcode__reason {
	color: var(--wcse-text-soft, #8a8a8a);
	font-size: 0.88em;
}

.wcse-checkout-btn {
	display: block;
	margin-top: 1em;
	padding: 0.9em 1em;
	background: var(--wcse-green);
	color: #fff !important;
	text-align: center;
	text-transform: uppercase;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-decoration: none;
	border-radius: 4px;
}

.wcse-checkout-btn:hover {
	background: var(--wcse-green-dark);
}

/* Cupón */
.wcse-coupon {
	display: flex;
	gap: 8px;
	padding: 12px;
}

.wcse-coupon input {
	flex: 1 1 auto;
	min-width: 0;
	font-size: 0.9em;
}

/* Responsive */
@media ( max-width: 980px ) {
	.wcse-cart-layout {
		grid-template-columns: 1fr;
	}
}

@media ( max-width: 700px ) {
	.wcse-line {
		grid-template-columns: 28px 64px minmax(0, 1fr);
		row-gap: 6px;
	}

	.wcse-line--headers {
		display: none;
	}

	.wcse-line--product .wcse-col-price,
	.wcse-line--product .wcse-col-qty,
	.wcse-line--product .wcse-col-subtotal,
	.wcse-line--service .wcse-col-price,
	.wcse-line--service .wcse-col-qty,
	.wcse-line--service .wcse-col-subtotal {
		grid-column: 3;
		text-align: left;
	}

	.wcse-svc-main {
		grid-column: 1 / 4;
	}
}

/* Bloque de servicios globales (total de la compra) */
.wcse-cart-services--global {
	margin: 1.25em 0;
	max-width: none;
	font-size: 1em;
}

.wcse-cart-services--global .wcse-services__hint {
	margin: -0.25em 0 0.75em;
}
