/*
Theme Name:   Droguemar
Theme URI:    https://droguemar.es
Description:  Tema propio de Ferretería Droguemar (rediseño dg3, «Mariano»). Independiente: no necesita Shoptimizer, Elementor ni JetEngine.
Author:       Pc Emprende
Author URI:   https://pcemprende.com
Version:      1.0.202610191329
Requires at least: 6.5
Requires PHP: 7.4
License:      GNU General Public License v2 or later
License URI:  https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  droguemar
*/


/* =========================================================
   Tokens de diseño — sistema visual Droguemar (Carrito.pdf)
   ========================================================= */
:root {
	/* Color */
	--dg-black: #111111;
	--dg-ink: #1a1a1a;
	--dg-gray-700: #4a4a4a;
	--dg-gray-500: #767676;
	--dg-red: #de0100;
	--dg-yellow: #fff102;
	--dg-green: #128a3e;
	--dg-green-soft: #e7f5ec;
	--dg-bg: #f6f5f2;
	--dg-card: #ffffff;
	--dg-border: #e6e3dd;

	/* Forma */
	--dg-radius: 12px;
	--dg-radius-sm: 8px;
	--dg-radius-pill: 999px;
	--dg-shadow: 0 1px 2px rgba(17, 17, 17, 0.05);

	/* Espaciado */
	--dg-gap: 16px;
	--dg-gap-lg: 24px;
}

/* =========================================================
   Franja de servicios (sobre el footer)
   ========================================================= */
.dg-services {
	background: var(--dg-bg);
	border-top: 1px solid var(--dg-border);
	padding: 28px 0;
}

.dg-services__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--dg-gap);
}

.dg-service {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	background: var(--dg-card);
	border: 1px solid var(--dg-border);
	border-radius: var(--dg-radius);
	padding: 18px 20px;
	box-shadow: var(--dg-shadow);
}

.dg-service svg {
	width: 26px;
	height: 26px;
	flex: 0 0 auto;
	color: var(--dg-ink);
	margin-top: 2px;
}

.dg-service strong {
	display: block;
	font-size: 14px;
	font-weight: 600;
	color: var(--dg-ink);
	line-height: 1.35;
}

.dg-service span {
	display: block;
	font-size: 13px;
	color: var(--dg-gray-500);
	margin-top: 2px;
	line-height: 1.4;
}

/* =========================================================
   Footer principal
   ========================================================= */
.dg-footer {
	background: var(--dg-black);
	color: #b9b6b0;
	padding: 72px 0 80px;
	font-size: 14px;
}

.dg-footer .col-full,
.dg-copyright .col-full {
	display: block;
}

.dg-footer__grid {
	display: grid;
	grid-template-columns: 1.5fr 1fr 1fr 1.2fr;
	gap: 48px 64px;
	width: 100%;
}

.dg-footer__logoimg {
	width: 190px;
	height: auto;
	filter: brightness(0) invert(1);
}

.dg-footer__logo {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	text-decoration: none;
	margin-bottom: 16px;
}

.dg-footer__logomark {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border: 2px solid #ffffff;
	border-radius: 10px;
	font-weight: 800;
	font-size: 17px;
	color: #ffffff;
	letter-spacing: 0.02em;
}

.dg-footer__logotext {
	color: #ffffff;
	font-weight: 700;
	font-size: 14px;
	line-height: 1.25;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.dg-footer__brand p {
	margin: 0 0 20px;
	line-height: 1.65;
	max-width: 34ch;
}

.dg-footer__social {
	display: flex;
	gap: 10px;
}

.dg-footer__social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border: 1px solid #3a3a3a;
	border-radius: var(--dg-radius-sm);
	color: #ffffff;
	transition: border-color 0.15s ease, background 0.15s ease;
}

.dg-footer__social a:hover {
	border-color: #ffffff;
	background: rgba(255, 255, 255, 0.06);
}

.dg-footer__social svg {
	width: 18px;
	height: 18px;
}

.dg-footer__col h3 {
	color: #8d8a84;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	margin: 0 0 16px;
}

.dg-footer__col ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.dg-footer__col li {
	margin: 0 0 10px;
}

.dg-footer__col a {
	color: #d8d5cf;
	text-decoration: none;
	transition: color 0.15s ease;
}

.dg-footer__col a:hover {
	color: #ffffff;
}

.dg-footer__contact span {
	color: #8d8a84;
}

/* =========================================================
   Barra inferior: copyright + legal + pago
   ========================================================= */
.dg-copyright {
	background: var(--dg-black);
	border-top: 1px solid #2a2a2a;
	padding: 18px 0;
	font-size: 12.5px;
	color: #8d8a84;
}

.dg-copyright__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	flex-wrap: wrap;
	width: 100%;
}

.dg-copyright__legal {
	display: flex;
	gap: 18px;
	flex-wrap: wrap;
}

.dg-copyright__legal a,
.dg-copyright__text a {
	color: #8d8a84;
	text-decoration: none;
}

.dg-copyright__legal a:hover,
.dg-copyright__text a:hover {
	color: #ffffff;
}

.dg-copyright__pay {
	display: flex;
	gap: 6px;
}

.dg-copyright__pay span {
	border: 1px solid #3a3a3a;
	border-radius: 4px;
	padding: 2px 7px;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: #d8d5cf;
}

/* =========================================================
   Avisos de la tienda (Woo) — tarjetas premium en toda la web
   (Shoptimizer los pinta como banners planos de color con
   texto blanco; aquí: tarjeta blanca + icono por tipo)
   ========================================================= */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	display: flex;
	align-items: flex-start;
	flex-wrap: wrap;
	gap: 12px;
	background: var(--dg-card) !important;
	color: var(--dg-ink) !important;
	border: 1px solid var(--dg-border);
	border-radius: var(--dg-radius);
	box-shadow: var(--dg-shadow);
	padding: 15px 18px !important;
	margin: 0 0 22px;
	font-size: 14px;
	line-height: 1.5;
	list-style: none;
}

/* Icono según el tipo (SVG en máscara, coloreado con background-color) */
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error > li::before {
	content: "";
	flex: 0 0 20px;
	width: 20px;
	height: 20px;
	margin-top: 1px;
	-webkit-mask: var(--dg-notice-icon) center / contain no-repeat;
	mask: var(--dg-notice-icon) center / contain no-repeat;
	background-color: var(--dg-notice-color);
}

.woocommerce-message {
	--dg-notice-color: var(--dg-green);
	--dg-notice-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 11.08V12a10 10 0 1 1-5.93-9.14'/%3E%3Cpolyline points='22 4 12 14.01 9 11.27'/%3E%3C/svg%3E");
}

.woocommerce-info {
	--dg-notice-color: var(--dg-gray-700);
	--dg-notice-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='12' y1='16' x2='12' y2='12'/%3E%3Cline x1='12' y1='8' x2='12.01' y2='8'/%3E%3C/svg%3E");
}

/* El error es un <ul> con <li> por aviso: la tarjeta es el ul y cada li lleva icono */
.woocommerce-error {
	--dg-notice-color: var(--dg-red);
	display: block;
	--dg-notice-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='12' y1='8' x2='12' y2='12'/%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'/%3E%3C/svg%3E");
}

.woocommerce-error > li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin: 0;
	padding: 0;
}

.woocommerce-error > li + li {
	margin-top: 10px;
}

.woocommerce-message a:not(.button),
.woocommerce-info a:not(.button),
.woocommerce-error a:not(.button) {
	color: var(--dg-ink);
	text-decoration: underline;
}

/* Botón del aviso («Ver carrito», etc.): pastilla oscura a la derecha */
.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button {
	order: 1;
	margin-left: auto;
	float: none !important;
	align-self: center;
	background: var(--dg-black) !important;
	color: #fff !important;
	border-radius: var(--dg-radius-pill);
	padding: 7px 16px !important;
	font-size: 12.5px;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
}

.woocommerce-message .button:hover,
.woocommerce-info .button:hover,
.woocommerce-error .button:hover {
	background: #262626 !important;
}

/* =========================================================
   Minicarrito lateral (drawer de Shoptimizer) — limpio
   ========================================================= */
/* Aire alrededor de la barra de envío gratis: separada del encabezado
   «Carrito» y de los productos (!important: CommerceKit impone su margen) */
.shoptimizer-mini-cart-wrap .cgkit-fsn-bar-mini-cart {
	margin: 16px 6px 22px !important;
}

/* Scrollbar del drawer del color del fondo del encabezado */
.shoptimizer-mini-cart-wrap .widget_shopping_cart {
	scrollbar-width: thin;
	scrollbar-color: var(--dg-border) var(--dg-bg);
}

.shoptimizer-mini-cart-wrap .widget_shopping_cart::-webkit-scrollbar {
	width: 8px;
}

.shoptimizer-mini-cart-wrap .widget_shopping_cart::-webkit-scrollbar-track {
	background: var(--dg-bg);
}

.shoptimizer-mini-cart-wrap .widget_shopping_cart::-webkit-scrollbar-thumb {
	background: var(--dg-border);
	border-radius: var(--dg-radius-pill);
}

/* Eliminar producto: icono papelera (como en la página de carrito).
   Shoptimizer ya define la máscara del icono en el ::before pero con
   content:none; se activa con el id del drawer para ganar especificidad. */
#shoptimizerCartDrawer .mini_cart_item a.remove,
.shoptimizer-mini-cart-wrap .mini_cart_item a.remove {
	font-size: 0 !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	border: 0 !important;
	background: #fbeaea !important;
	transition: background 0.15s ease;
}

/* Papelera como background-image con el SVG ya coloreado: sin máscaras
   (el mask del tema y el propio no pintaban en Safari). Hay que anular la
   máscara del tema o recortaría el fondo. */
#shoptimizerCartDrawer .mini_cart_item a.remove::before,
.shoptimizer-mini-cart-wrap ul.woocommerce-mini-cart li.mini_cart_item a.remove::before {
	content: "" !important;
	/* !important: fuera de la página de carrito el tema pone display:none
	   al ::before (por eso el icono no salía en páginas de producto) */
	display: block !important;
	width: 14px;
	height: 15px;
	position: static !important;
	margin: 0 !important;
	-webkit-mask: none !important;
	mask: none !important;
	background-color: transparent !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23de0100' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='3 6 5 6 21 6'/%3E%3Cpath d='M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2'/%3E%3C/svg%3E") !important;
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
}

#shoptimizerCartDrawer .mini_cart_item a.remove:hover,
.shoptimizer-mini-cart-wrap .mini_cart_item a.remove:hover {
	background: var(--dg-red) !important;
}

#shoptimizerCartDrawer .mini_cart_item a.remove:hover::before,
.shoptimizer-mini-cart-wrap ul.woocommerce-mini-cart li.mini_cart_item a.remove:hover::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='3 6 5 6 21 6'/%3E%3Cpath d='M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2'/%3E%3C/svg%3E") !important;
}

/* Productos compactos, sin recuadros ni bordes */
.shoptimizer-mini-cart-wrap .mini_cart_item {
	border: 0 !important;
	box-shadow: none !important;
	background: transparent !important;
	border-radius: 0 !important;
	padding-top: 12px;
	padding-bottom: 12px;
}

.shoptimizer-mini-cart-wrap ul.woocommerce-mini-cart {
	border: 0 !important;
}

/* Sin hueco de scrollbar a la derecha del drawer: el html reserva el carril
   (scrollbar-gutter: stable) y con el body bloqueado queda una franja blanca
   entre la X y el borde; con el drawer abierto se elimina la reserva. */
html:has(body.drawer-open) {
	scrollbar-gutter: auto !important;
}

/* Entrega estimada visible pero discreta */
#shoptimizerCartDrawer .mini_cart_item dl.variation {
	display: block !important;
	margin: 0 !important;
	font-size: 12px;
	color: var(--dg-gray-500);
}

#shoptimizerCartDrawer .mini_cart_item dl.variation dt,
#shoptimizerCartDrawer .mini_cart_item dl.variation dd {
	display: inline;
	margin: 0;
	padding: 0;
	font-weight: 400;
	border: 0;
}

#shoptimizerCartDrawer .mini_cart_item dl.variation dd p {
	display: inline;
	margin: 0;
}

/* Item en rejilla: nombre / entrega / fila con cantidad (izq) y precio (dcha).
   La miniatura y la X van en absoluto y no participan en la rejilla. */
#shoptimizerCartDrawer .mini_cart_item {
	display: grid !important;
	grid-template-columns: 1fr auto;
	row-gap: 7px;
	align-items: center;
}

#shoptimizerCartDrawer .mini_cart_item > a:not(.remove) {
	grid-row: 1;
	grid-column: 1 / -1;
}

#shoptimizerCartDrawer .mini_cart_item > dl.variation {
	grid-row: 2;
	grid-column: 1 / -1;
}

#shoptimizerCartDrawer .mini_cart_item > .shoptimizer-custom-quantity-mini-cart_container {
	grid-row: 3;
	grid-column: 1;
	justify-self: start;
}

#shoptimizerCartDrawer .mini_cart_item > span.amount {
	grid-row: 3;
	grid-column: 2;
	justify-self: end;
	font-weight: 700;
	color: var(--dg-ink);
}

/* Distintivo cuando no hay selector (última unidad / cantidad fija):
   ocupa el hueco del selector para que la fila quede alineada con el precio */
#shoptimizerCartDrawer .mini_cart_item > .dg-mini-qty-fixed {
	grid-row: 3;
	grid-column: 1;
	justify-self: start;
	font-size: 11.5px;
	font-weight: 600;
	color: var(--dg-gray-700);
	background: var(--dg-bg);
	border: 1px solid var(--dg-border);
	border-radius: var(--dg-radius-pill);
	padding: 5px 12px;
	line-height: 1.2;
}

/* Sin botón de PayPal en el drawer (desactivado también en el plugin;
   esto es el cinturón por si quedara HTML cacheado) */
#ppc-button-minicart {
	display: none !important;
}

/* El bloque «Tu compra está protegida» sale duplicado (anidado) */
.shoptimizer-mini-cart-wrap .cart-drawer-below .cart-drawer-below {
	display: none;
}

/* =========================================================
   Carrito — versión limpia (estilo Molino)
   ========================================================= */
.woocommerce-cart .site-content,
.woocommerce-cart #content {
	background: var(--dg-bg);
}

/* Título centrado sobre el carrito */
.dg-cart-title {
	text-align: center;
	margin: 6px 0 30px;
}

.dg-cart-title h1 {
	font-size: 30px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--dg-ink);
	margin: 0;
}

.dg-cart-title p {
	font-size: 15px;
	color: var(--dg-gray-500);
	margin: 8px 0 0;
	font-style: italic;
}

/* Layout: grid de dos columnas a todo el ancho del contenedor (mismo ancho
   que el menú). La barra de envío gratis vive dentro del resumen. El resumen
   abarca las dos filas: el alto sobrante se reparte a la fila 2, así que el
   cupón queda pegado justo debajo de la tabla de productos. */
.woocommerce-cart .shoptimizer-cart-wrapper {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 420px;
	/* auto 1fr: el alto sobrante del resumen (que abarca ambas filas) va
	   entero a la fila flexible, y el cupón queda pegado a los productos */
	grid-template-rows: auto 1fr;
	grid-template-areas:
		"products summary"
		"coupon   summary";
	gap: 0 36px;
	align-items: start;
	max-width: none;
	margin: 0;
}

.woocommerce-cart .shoptimizer-cart-wrapper > wc-order-attribution-inputs {
	position: absolute;
	width: 0;
	height: 0;
	overflow: hidden;
}

.woocommerce-cart form.woocommerce-cart-form {
	grid-area: products;
	float: none;
	width: auto;
	margin: 0;
}

.woocommerce-cart .cart-collaterals {
	grid-area: summary;
	float: none;
	width: auto;
	margin: 0;
}

.woocommerce-cart .cart-collaterals .cross-sells {
	display: none;
}

.woocommerce-cart .dg-coupon-wrapper {
	grid-area: coupon;
	margin: 18px 0 0;
}

/* Barra de envío gratis, integrada dentro del resumen (sin tarjeta propia) */
.woocommerce-cart .cart_totals .dg-fsn {
	margin: 0 0 20px;
}

/* La copia superior de la barra solo existe en móvil */
.woocommerce-cart .dg-fsn-top {
	display: none;
}

.dg-fsn .cgkit-fsn-bar {
	background: var(--dg-bg);
	border: 0;
	border-radius: var(--dg-radius-sm);
	box-shadow: none;
	padding: 13px 16px;
	margin: 0;
}

/* =========================================================
   Tabla de productos (tarjeta)
   ========================================================= */
.woocommerce-cart .woocommerce-cart-form__contents {
	width: 100%;
	background: var(--dg-card);
	border: 1px solid var(--dg-border);
	border-radius: var(--dg-radius);
	box-shadow: var(--dg-shadow);
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
	margin: 0;
}

.woocommerce-cart .woocommerce-cart-form__contents thead th {
	text-transform: uppercase;
	font-size: 11px;
	letter-spacing: 0.07em;
	color: var(--dg-gray-500);
	font-weight: 700;
	text-align: left;
	padding: 20px 12px 14px;
	border: 0;
	border-bottom: 1px solid var(--dg-border);
	background: transparent;
}

.woocommerce-cart .woocommerce-cart-form__contents thead .product-price,
.woocommerce-cart .woocommerce-cart-form__contents thead .product-quantity,
.woocommerce-cart .woocommerce-cart-form__contents thead .product-subtotal {
	text-align: center;
}

/* Cabecera y columna de precio visibles en escritorio (Shoptimizer las oculta;
   si el precio del cuerpo queda oculto, las columnas se desalinean). */
@media (min-width: 769px) {
	.woocommerce-cart .woocommerce-cart-form__contents thead {
		display: table-header-group;
	}

	.woocommerce-cart .woocommerce-cart-form__contents thead .product-price,
	.woocommerce-cart .cart_item .product-price {
		display: table-cell;
	}
}

.woocommerce-cart .cart_item td {
	padding: 18px 12px;
	border: 0;
	border-bottom: 1px solid var(--dg-border);
	vertical-align: middle;
	background: transparent;
}

.woocommerce-cart .cart_item:last-child td {
	border-bottom: 0;
}

/* Eliminar (×) redondo */
.woocommerce-cart .cart_item .product-remove {
	width: 54px;
	text-align: center;
}

.woocommerce-cart .cart_item .product-remove a.remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: #fbeaea !important;
	font-size: 0 !important; /* ocultar la × de texto; el icono real es el ::before enmascarado */
	line-height: 1;
	text-decoration: none;
	transition: background 0.15s ease;
}

/* El icono (papelera) de Shoptimizer se pinta con background-color sobre una máscara */
.woocommerce-cart .cart_item .product-remove a.remove::before {
	background-color: var(--dg-red) !important;
	transition: background-color 0.15s ease;
}

.woocommerce-cart .cart_item .product-remove a.remove:hover {
	background: var(--dg-red) !important;
}

.woocommerce-cart .cart_item .product-remove a.remove:hover::before {
	background-color: #fff !important; /* icono blanco al pasar por encima */
}

/* Miniatura */
.woocommerce-cart .cart_item .product-thumbnail {
	width: 96px;
}

.woocommerce-cart .cart_item .product-thumbnail img {
	width: 74px;
	height: 74px;
	object-fit: contain;
	border: 1px solid var(--dg-border);
	border-radius: var(--dg-radius-sm);
	background: #fff;
}

/* Nombre + marca + variación */
.woocommerce-cart .cart_item .product-name a {
	color: var(--dg-ink);
	font-weight: 600;
	font-size: 14.5px;
	line-height: 1.35;
	text-decoration: none;
}

.dg-item-brand {
	display: block;
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--dg-gray-500);
	margin-bottom: 3px;
}

.woocommerce-cart .cart_item .product-name dl.variation {
	margin: 4px 0 0;
	font-size: 12.5px;
	color: var(--dg-gray-500);
}

.woocommerce-cart .cart_item .product-name dl.variation dt,
.woocommerce-cart .cart_item .product-name dl.variation dd {
	display: inline;
	margin: 0;
	padding: 0;
	font-weight: 400;
	float: none;
}

.woocommerce-cart .cart_item .product-name dl.variation dd p {
	display: inline;
	margin: 0;
}

/* Precio / subtotal */
.woocommerce-cart .cart_item .product-price {
	text-align: center;
	color: var(--dg-gray-700);
	font-size: 14px;
}

.woocommerce-cart .cart_item .product-subtotal {
	text-align: center;
	color: var(--dg-ink);
	font-weight: 700;
	font-size: 15px;
}

/* Cantidad — pastilla − N + */
.woocommerce-cart .cart_item .product-quantity {
	text-align: center;
}

.woocommerce-cart .cart_item .quantity {
	position: relative;
	display: inline-block;
	width: 96px;
	height: 40px;
	border: 1px solid var(--dg-border);
	border-radius: var(--dg-radius-pill);
	background: #fff;
	overflow: hidden;
}

.woocommerce-cart .cart_item .quantity input.qty {
	width: 100%;
	box-sizing: border-box;
	border: 0;
	text-align: center;
	padding: 0 28px;
	height: 100%;
	line-height: 38px;
	font-size: 14px;
	font-weight: 600;
	background: transparent;
	-moz-appearance: textfield;
	appearance: textfield;
}

.woocommerce-cart .cart_item .quantity input.qty::-webkit-outer-spin-button,
.woocommerce-cart .cart_item .quantity input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.woocommerce-cart .cart_item .quantity .quantity-nav {
	display: block;
	position: static;
}

.woocommerce-cart .cart_item .quantity > .quantity-nav ~ .quantity-nav,
.woocommerce-cart .cart_item .quantity .quantity-nav .quantity-nav {
	display: none;
}

.woocommerce-cart .cart_item .quantity .quantity-button {
	position: absolute;
	top: 0 !important;
	bottom: 0 !important;
	height: auto !important; /* estirar a toda la altura para centrar − y + con el número */
	width: 28px;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	color: var(--dg-ink);
}

.woocommerce-cart .cart_item .quantity .quantity-down {
	left: 0;
}

.woocommerce-cart .cart_item .quantity .quantity-up {
	right: 0;
}

.woocommerce-cart .cart_item .quantity .quantity-down::before {
	content: "−";
	font-size: 17px;
}

.woocommerce-cart .cart_item .quantity .quantity-up::before {
	content: "+";
	font-size: 16px;
}

/* Ocultar fila de acciones nativa (cupón + actualizar); cantidad es AJAX */
.woocommerce-cart .woocommerce-cart-form .actions {
	display: none;
}

/* Vaciar carrito */
.dg-empty-link {
	display: inline-block;
	margin-top: 16px;
	font-size: 13px;
	color: var(--dg-gray-500);
	text-decoration: none;
}

.dg-empty-link:hover {
	color: var(--dg-red);
}

/* Cupón (formulario propio, recogido justo bajo la tabla de productos) */
.dg-coupon {
	display: flex;
	gap: 10px;
	max-width: 520px;
}

.dg-coupon__input {
	flex: 1;
	min-width: 0;
	border: 1px solid var(--dg-border);
	border-radius: var(--dg-radius-sm);
	padding: 12px 14px;
	font-size: 14px;
	background: #fff;
}

.dg-coupon__btn {
	border: 1px solid var(--dg-ink);
	background: #fff;
	color: var(--dg-ink);
	border-radius: var(--dg-radius-sm);
	padding: 12px 20px;
	font-size: 13.5px;
	font-weight: 600;
	cursor: pointer;
	white-space: nowrap;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.dg-coupon__btn:hover {
	background: var(--dg-ink);
	color: #fff;
}

/* =========================================================
   Resumen del pedido
   ========================================================= */
.woocommerce-cart .cart-collaterals .cart_totals {
	background: var(--dg-card);
	border: 1px solid var(--dg-border);
	border-radius: var(--dg-radius);
	box-shadow: var(--dg-shadow);
	padding: 26px 26px 28px;
	/* flex para poder colocar el título antes de la barra de envío gratis
	   (el hook before_cart_totals imprime la barra antes del h2) */
	display: flex;
	flex-direction: column;
}

.woocommerce-cart .cart-collaterals .cart_totals > h2 {
	display: block;
	order: -1; /* título primero; la barra de envío queda justo debajo */
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--dg-ink);
	margin: 0 0 18px;
}

.woocommerce-cart .cart_totals .shop_table {
	border: 0;
	background: transparent;
	margin: 0;
}

.woocommerce-cart .cart_totals .shop_table tr,
.woocommerce-cart .cart_totals .shop_table tr:nth-child(2n) td,
.woocommerce-cart .cart_totals .shop_table th,
.woocommerce-cart .cart_totals .shop_table td {
	border: 0;
	padding: 9px 0;
	background: transparent !important;
	font-size: 14px;
	color: var(--dg-gray-700);
}

/* Minimalista: sin línea bajo el subtotal (la única divisoria es la del Total) */
.woocommerce-cart .cart_totals .cart-subtotal th,
.woocommerce-cart .cart_totals .cart-subtotal td {
	border-bottom: 0;
	padding-bottom: 10px;
}

.woocommerce-cart .cart_totals .cart-subtotal td {
	text-align: right;
	color: var(--dg-ink);
	font-weight: 600;
}

/* Envío como tarjetas radio */
.woocommerce-cart .cart_totals .shipping {
	display: block;
	padding: 14px 0 6px;
}

.woocommerce-cart .cart_totals .shipping th,
.woocommerce-cart .cart_totals .shipping td {
	display: block;
	width: 100%;
	text-align: left;
}

.woocommerce-cart .cart_totals .shipping th {
	color: var(--dg-ink);
	font-weight: 700;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	padding-bottom: 8px;
}

.woocommerce-cart ul#shipping_method {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.woocommerce-cart ul#shipping_method li {
	border: 1px solid var(--dg-border);
	border-radius: var(--dg-radius-sm);
	padding: 11px 14px;
	margin: 0;
	display: flex;
	align-items: flex-start;
	gap: 9px;
	background: #fff;
}

.woocommerce-cart ul#shipping_method li:has(input:checked) {
	border-color: var(--dg-ink);
	box-shadow: 0 0 0 1px var(--dg-ink);
	background: #fafaf8;
}

.woocommerce-cart ul#shipping_method li input.shipping_method {
	accent-color: var(--dg-black);
	margin: 3px 0 0;
	flex: 0 0 auto;
}

.woocommerce-cart ul#shipping_method li label {
	font-size: 13px;
	line-height: 1.45;
	margin: 0;
	cursor: pointer;
}

.woocommerce-cart .cart_totals .woocommerce-shipping-destination {
	font-size: 12.5px;
	color: var(--dg-gray-500);
	margin: 10px 0 2px;
}

.woocommerce-cart .cart_totals .shipping-calculator-button {
	font-size: 12.5px;
	color: var(--dg-ink);
	text-decoration: underline;
}

/* Total: sin línea encima (separación por aire) */
.woocommerce-cart .cart_totals .order-total th,
.woocommerce-cart .cart_totals .order-total td {
	border-top: 0;
	padding-top: 22px;
	font-size: 15px;
}

.woocommerce-cart .cart_totals .order-total th {
	vertical-align: top;
	line-height: 30px; /* alinear «Total» con la línea del importe grande */
}

.woocommerce-cart .cart_totals .order-total th {
	color: var(--dg-ink);
	font-weight: 700;
}

.woocommerce-cart .cart_totals .order-total td {
	text-align: right;
}

.woocommerce-cart .cart_totals .order-total .amount {
	font-size: 24px;
	font-weight: 800;
	color: var(--dg-ink);
}

.woocommerce-cart .cart_totals .includes_tax,
.woocommerce-cart .cart_totals small.includes_tax {
	display: block;
	font-size: 11.5px;
	color: var(--dg-gray-500);
	font-weight: 400;
	margin-top: 2px;
}

/* El importe del IVA hereda el tamaño grande del total: compactarlo */
.woocommerce-cart .cart_totals .order-total .includes_tax .amount {
	font-size: 11.5px;
	font-weight: 600;
	color: var(--dg-gray-500);
}

/* Botón proceder al pago */
.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
	background: var(--dg-black) !important;
	border-radius: var(--dg-radius-pill) !important;
	font-weight: 700;
	letter-spacing: 0.03em;
	padding: 16px 24px;
	margin-top: 4px;
}

.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover {
	background: #262626 !important;
}

/* Pago exprés: botones apilados a ancho completo.
   COMPROBADO EN VIVO: al meter los monederos en columnas estrechas (barra
   lateral ~306px), Stripe OCULTA Apple Pay y Link y deja solo Google Pay.
   Stripe solo pinta todos los botones cuando cada uno tiene ancho suficiente,
   así que se apilan a ancho completo. No forzar filas de varios botones. */
.woocommerce-cart .wc-proceed-to-checkout {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.woocommerce-cart .wc-proceed-to-checkout > * {
	width: 100%;
	margin: 0;
}

/* Flex para ordenar el divisor «o» y la etiqueta delante de los botones
   (los pseudo-elementos participan como items flex con order) y poner los
   monederos de Stripe en fila de dos columnas (con la barra a 420px cada
   caja mide ~178px, por encima del umbral en el que Stripe los oculta;
   a ~95px sí los ocultaba — no estrechar más). El plugin mete
   margin-top:1em inline: se anula para que el divisor quede simétrico. */
.woocommerce-cart #wc-stripe-express-checkout-element {
	display: flex;
	flex-flow: row wrap;
	column-gap: 10px;
	width: 100%;
	margin-top: 0 !important;
}

/* Divisor «— o —» entre Finalizar compra y el pago exprés */
.woocommerce-cart #wc-stripe-express-checkout-element::before {
	content: "o" !important;
	order: -2;
	flex: 0 0 100%;
	width: 100%;
	text-align: center;
	font-size: 13px;
	font-style: italic;
	color: var(--dg-gray-500);
	line-height: 1;
	margin: 4px 0 14px !important;
	padding: 0;
	background:
		linear-gradient(var(--dg-border), var(--dg-border)) left center / calc(50% - 24px) 1px no-repeat,
		linear-gradient(var(--dg-border), var(--dg-border)) right center / calc(50% - 24px) 1px no-repeat;
}

/* Etiqueta «PAGO EXPRÉS» al estilo de los títulos del resumen */
.woocommerce-cart #wc-stripe-express-checkout-element::after {
	content: "Pago exprés";
	order: -1;
	flex: 0 0 100%;
	width: 100%;
	text-align: center;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--dg-gray-500);
	margin: 0 0 12px;
}

/* Dos monederos por fila (Apple Pay | Google Pay/Link) */
.woocommerce-cart #wc-stripe-express-checkout-element > .StripeElement {
	flex: 1 1 calc(50% - 6px);
	min-width: 0;
	width: auto;
	margin: 0 0 10px;
}

/* En móvil vuelven a ancho completo (columna estrecha) */
@media (max-width: 480px) {
	.woocommerce-cart #wc-stripe-express-checkout-element > .StripeElement {
		flex: 0 0 100%;
	}
}

.woocommerce-cart .wc-proceed-to-checkout .ppc-button-wrapper {
	width: 100%;
}

/* Carrito de la barra de menú: bloque centrado en la barra */
.shoptimizer-primary-navigation .site-header-cart {
	align-self: center;
}

.site-header-cart .cart-contents {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	height: 100%;
}

.site-header-cart .cart-contents .amount,
.site-header-cart .cart-contents .count {
	display: inline-flex;
	align-items: center;
	line-height: 1;
	float: none;
	margin: 0;
}

.site-header-cart .cart-contents .count {
	line-height: 1 !important;
	height: auto !important;
	padding: 3px 6px !important;
	font-size: 11px !important;
}

/* =========================================================
   Carrito — orden en móvil
   ========================================================= */
@media (max-width: 768px) {
	.woocommerce-cart .shoptimizer-cart-wrapper {
		grid-template-columns: 1fr;
		grid-template-rows: auto;
		grid-template-areas:
			"fsn"
			"products"
			"coupon"
			"summary";
		gap: 16px 0;
	}

	/* Barra de envío gratis arriba, bajo el subtítulo y antes de los
	   productos (más visible); se oculta la copia de dentro del resumen */
	.woocommerce-cart .dg-fsn-top {
		display: block;
		grid-area: fsn;
		margin: 0;
	}

	.woocommerce-cart .dg-fsn-top .cgkit-fsn-bar {
		background: var(--dg-card);
		border: 1px solid var(--dg-border);
		border-radius: var(--dg-radius);
		box-shadow: var(--dg-shadow);
		padding: 15px 18px;
		margin: 0;
	}

	.woocommerce-cart .cart_totals .dg-fsn {
		display: none;
	}

	.dg-cart-title h1 {
		font-size: 24px;
	}

	.woocommerce-cart .dg-coupon-wrapper {
		margin: 0;
	}

	/* Tarjeta de producto estilo Molino: miniatura + nombre + eliminar arriba,
	   y la fila cantidad + precio de línea debajo. Sin etiquetas, sin precio
	   unitario, sin línea de entrega: simple y directo. */
	.woocommerce-cart .woocommerce-cart-form__contents,
	.woocommerce-cart .woocommerce-cart-form__contents tbody {
		display: block !important;
	}

	.woocommerce-cart .woocommerce-cart-form__contents {
		padding: 0 !important;
	}

	.woocommerce-cart table.cart .cart_item,
	.woocommerce-cart .cart_item {
		display: grid !important;
		grid-template-columns: 64px 1fr auto;
		grid-template-areas:
			"thumb name remove"
			"thumb qty  subtotal";
		column-gap: 14px;
		row-gap: 12px;
		align-items: center;
		padding: 16px !important;
		margin: 0 !important;
		border-bottom: 1px solid var(--dg-border);
	}

	.woocommerce-cart .cart_item:last-child {
		border-bottom: 0;
	}

	.woocommerce-cart .cart_item td {
		padding: 0 !important;
		border: 0 !important;
		width: auto !important;
		float: none !important;
	}

	.woocommerce-cart .cart_item td::before {
		display: none !important; /* ocultar etiquetas «Precio:», «Cantidad:», «Subtotal:» */
	}

	.woocommerce-cart .cart_item .product-thumbnail {
		grid-area: thumb;
		align-self: start;
		width: auto !important;
		display: block !important;
	}

	.woocommerce-cart .cart_item .product-thumbnail img {
		width: 64px !important;
		height: 64px !important;
	}

	.woocommerce-cart .cart_item .product-name {
		grid-area: name;
		align-self: start;
		display: block !important;
		margin: 0 !important;
	}

	.woocommerce-cart .cart_item .product-name dl.variation {
		display: none !important; /* sin línea de entrega en móvil (estilo Molino) */
	}

	.woocommerce-cart .cart_item .product-remove {
		grid-area: remove;
		align-self: start;
		justify-self: end;
		display: block !important;
		width: auto;
	}

	.woocommerce-cart .cart_item .product-price {
		display: none !important; /* sin precio unitario en móvil */
	}

	.woocommerce-cart .cart_item .product-quantity {
		grid-area: qty;
		justify-self: start;
		align-self: center;
		display: block !important;
		text-align: left;
		margin: 0 !important;
	}

	.woocommerce-cart .cart_item .product-subtotal {
		grid-area: subtotal;
		justify-self: end;
		align-self: center;
		display: block !important;
		text-align: right;
		font-size: 16px;
		margin: 0 !important;
	}
}

/* Responsive */
@media (max-width: 992px) {
	.dg-services__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.dg-footer__grid {
		grid-template-columns: 1fr 1fr;
		gap: 32px;
	}
}

@media (max-width: 600px) {
	.dg-services__grid {
		grid-template-columns: 1fr;
	}

	.dg-footer__grid {
		grid-template-columns: 1fr;
		gap: 28px;
	}

	.dg-copyright__inner {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
	}
}

/* =========================================================
   Búsqueda: contener el float de .content-area
   ========================================================= */
/* En las páginas de búsqueda (search.php y búsqueda de productos) Shoptimizer deja
   .content-area con float:right y su contenedor no lo limpia: colapsa a altura 0 y
   la franja de servicios del footer se dibuja detrás de los resultados. flow-root
   crea un contexto de formato que contiene el float sin cambiar el layout. */
body.search .shoptimizer-archive > .col-full {
	display: flow-root;
}
