/* =========================================================================
   DACA Smash Burger
   Direccion de diseno: "DACA Monocromo" (Novamira)
   Alcance: carta (tienda + categorias), ficha de producto, carrito,
            finalizar compra y pagina 404. No se carga en el resto del sitio.
   ========================================================================= */

/* -------------------------------------------------------------------------
   1. Tokens
   ------------------------------------------------------------------------- */
body.daca {
	--daca-bg: #F5F4F2;
	--daca-surface: #FFFFFF;
	--daca-ink: #111110;
	--daca-ink-hover: #2E2C29;
	/* Contraste medido: 5.05:1 sobre el papel y 5.55:1 sobre blanco (WCAG AA). */
	--daca-muted: #6B6862;
	--daca-line: #E6E4E0;
	--daca-line-strong: #D6D3CE;
	--daca-inverse: #FFFFFF;
	--daca-danger: #B3261E;

	/* Acento ambar. Solo aparece en hover, foco y estado activo: en reposo la
	   pagina es estrictamente blanco y negro.
	   --daca-accent      3.64:1 sobre blanco -> filetes, rellenos, titulares grandes.
	   --daca-accent-deep 5.24:1 sobre blanco -> texto pequeno y fondo de boton. */
	--daca-accent: #E8552E;
	--daca-accent-deep: #C43C18;
	--daca-accent-soft: rgba(232, 85, 46, 0.16);

	--daca-font-display: 'Outfit', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
	--daca-font-body: 'Geist', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;

	--daca-r-sm: 8px;
	--daca-r-md: 14px;
	--daca-r-lg: 20px;
	--daca-r-pill: 999px;

	--daca-s-xs: 4px;
	--daca-s-sm: 8px;
	--daca-s-md: 16px;
	--daca-s-lg: 32px;
	--daca-s-xl: 64px;

	--daca-shadow-float: 0 12px 32px rgba(17, 17, 16, 0.07);
	--daca-shadow-stick: 0 6px 18px rgba(17, 17, 16, 0.06);
	--daca-shadow-hover: 0 10px 26px rgba(17, 17, 16, 0.10);
	--daca-focus: 0 0 0 3px var(--daca-accent-soft);
	--daca-t: 150ms ease;
	--daca-t-slow: 320ms cubic-bezier(0.22, 0.61, 0.36, 1);
	--daca-maxw: 1180px;

	/* Altura real de la cabecera, publicada por daca.js. El valor de reserva
	   cubre el primer pintado antes de que el script corra. */
	--daca-header-h: 60px;

	/* Punto de anclaje de todo lo que se fija al hacer scroll, para que nada
	   quede debajo de la cabecera. */
	--daca-sticky-top: calc(var(--daca-header-h) + var(--daca-admin-h, 0px) + 20px);

	/* Las fotos de la comida van a color: son el unico color propio de la
	   pagina en reposo. */
	--daca-photo-filter: none;
}

/* -------------------------------------------------------------------------
   2. Base
   ------------------------------------------------------------------------- */
body.daca {
	background-color: var(--daca-bg);
	color: var(--daca-ink);
	font-family: var(--daca-font-body);
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	font-feature-settings: 'tnum' 0;
}

body.daca :where(h1, h2, h3, h4, h5, .entry-title, .page-title) {
	font-family: var(--daca-font-display);
	font-weight: 800;
	letter-spacing: -0.03em;
	line-height: 1.08;
	color: var(--daca-ink);
}

body.daca :where(p, li, dd, dt, td, th, label, input, select, textarea, button, a) {
	font-family: var(--daca-font-body);
}

body.daca #content,
body.daca .site-content {
	background-color: var(--daca-bg);
}

body.daca .ast-container {
	max-width: var(--daca-maxw);
	padding-left: 24px;
	padding-right: 24px;
}

body.daca .ast-separate-container .ast-article-single,
body.daca .ast-separate-container #primary,
body.daca .ast-plain-container #primary {
	background: transparent;
	box-shadow: none;
	border: 0;
	padding-left: 0;
	padding-right: 0;
}

body.daca a {
	color: var(--daca-ink);
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

body.daca a:focus-visible,
body.daca button:focus-visible,
body.daca input:focus-visible,
body.daca select:focus-visible,
body.daca textarea:focus-visible {
	outline: 2px solid var(--daca-ink);
	outline-offset: 2px;
}

/* Altura de la barra de administracion, usada por los elementos fijados. */
body.admin-bar.daca {
	--daca-admin-h: 32px;
}

/* Enlaces de contenido: el ambar solo aparece al interactuar. */
body.daca .entry-content a:not(.button):not(.daca-nav__link):hover,
body.daca .woocommerce-breadcrumb a:hover,
body.daca td.product-name a:hover {
	color: var(--daca-accent-deep);
	text-decoration-color: var(--daca-accent);
}

/* -------------------------------------------------------------------------
   3. Botones
   ------------------------------------------------------------------------- */
body.daca .woocommerce a.button,
body.daca .woocommerce button.button,
body.daca .woocommerce input.button,
body.daca .woocommerce #respond input#submit,
body.daca a.button,
body.daca button.button,
body.daca .daca-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font-family: var(--daca-font-body);
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1;
	text-transform: none;
	text-decoration: none;
	padding: 14px 24px;
	background-color: var(--daca-ink);
	color: var(--daca-inverse);
	border: 1px solid var(--daca-ink);
	border-radius: var(--daca-r-pill);
	box-shadow: none;
	transition: background-color var(--daca-t), border-color var(--daca-t), color var(--daca-t), transform var(--daca-t);
}

body.daca .woocommerce a.button:hover,
body.daca .woocommerce button.button:hover,
body.daca .woocommerce input.button:hover,
body.daca .woocommerce #respond input#submit:hover,
body.daca a.button:hover,
body.daca button.button:hover,
body.daca .daca-button:hover {
	background-color: var(--daca-accent-deep);
	border-color: var(--daca-accent-deep);
	color: var(--daca-inverse);
	transform: translateY(-1px);
}

body.daca .woocommerce a.button:active,
body.daca .woocommerce button.button:active,
body.daca .woocommerce input.button:active,
body.daca a.button:active,
body.daca button.button:active,
body.daca .daca-button:active {
	transform: translateY(1px);
}

/* Boton secundario: filete, sin relleno */
body.daca .daca-button--ghost,
body.daca .woocommerce a.button.wc-backward,
body.daca .woocommerce .cart .actions .button[name='update_cart'] {
	background-color: transparent;
	color: var(--daca-ink);
	border-color: var(--daca-line-strong);
}

body.daca .daca-button--ghost:hover,
body.daca .woocommerce a.button.wc-backward:hover,
body.daca .woocommerce .cart .actions .button[name='update_cart']:hover {
	background-color: transparent;
	color: var(--daca-accent-deep);
	border-color: var(--daca-accent);
}

body.daca .woocommerce .button:disabled,
body.daca .woocommerce .button[disabled],
body.daca .woocommerce .button.disabled {
	opacity: 0.35;
	cursor: not-allowed;
}

/* -------------------------------------------------------------------------
   4. Campos de formulario
   ------------------------------------------------------------------------- */
body.daca input[type='text'],
body.daca input[type='email'],
body.daca input[type='tel'],
body.daca input[type='url'],
body.daca input[type='number'],
body.daca input[type='search'],
body.daca input[type='password'],
body.daca select,
body.daca textarea,
body.daca .select2-container .select2-selection--single {
	width: 100%;
	height: 48px;
	padding: 0 14px;
	background-color: var(--daca-surface);
	border: 1px solid var(--daca-line);
	border-radius: var(--daca-r-sm);
	font-family: var(--daca-font-body);
	font-size: 15px;
	color: var(--daca-ink);
	box-shadow: none;
	transition: border-color var(--daca-t), box-shadow var(--daca-t);
}

body.daca textarea {
	height: auto;
	min-height: 112px;
	padding: 14px;
	line-height: 1.6;
}

body.daca input:focus,
body.daca select:focus,
body.daca textarea:focus {
	border-color: var(--daca-accent);
	box-shadow: var(--daca-focus);
	outline: none;
}

body.daca input:hover:not(:focus),
body.daca select:hover:not(:focus),
body.daca textarea:hover:not(:focus) {
	border-color: var(--daca-line-strong);
}

body.daca ::placeholder {
	color: var(--daca-muted);
	opacity: 1;
}

body.daca .woocommerce form .form-row {
	padding: 0;
	margin: 0 0 18px;
}

body.daca .woocommerce form .form-row label {
	display: block;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.01em;
	color: var(--daca-ink);
	margin: 0 0 6px;
}

body.daca .woocommerce form .form-row label .optional {
	color: var(--daca-muted);
	font-weight: 400;
}

body.daca .woocommerce form .form-row .required {
	color: var(--daca-danger);
	text-decoration: none;
	border: 0;
}

body.daca .woocommerce form .form-row.woocommerce-invalid input.input-text,
body.daca .woocommerce form .form-row.woocommerce-invalid select {
	border-color: var(--daca-danger);
}

body.daca .woocommerce form .form-row.woocommerce-invalid label {
	color: var(--daca-danger);
}

body.daca .select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: 46px;
	padding-left: 0;
	color: var(--daca-ink);
}

body.daca .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 46px;
}

body.daca .select2-dropdown {
	border-color: var(--daca-line);
	border-radius: var(--daca-r-sm);
}

body.daca .select2-container--default .select2-results__option--highlighted[aria-selected] {
	background-color: var(--daca-ink);
	color: var(--daca-inverse);
}

/* -------------------------------------------------------------------------
   5. Avisos de WooCommerce
   ------------------------------------------------------------------------- */
body.daca .woocommerce-message,
body.daca .woocommerce-info,
body.daca .woocommerce-error {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
	background-color: var(--daca-surface);
	border: 1px solid var(--daca-line);
	border-left: 3px solid var(--daca-ink);
	border-radius: var(--daca-r-sm);
	color: var(--daca-ink);
	font-size: 15px;
	padding: 16px 20px;
	margin: 0 0 24px;
	list-style: none;
}

body.daca .woocommerce-error {
	border-left-color: var(--daca-danger);
	color: var(--daca-danger);
}

body.daca .woocommerce-message::before,
body.daca .woocommerce-info::before,
body.daca .woocommerce-error::before {
	display: none;
}

body.daca .woocommerce-message .button,
body.daca .woocommerce-info .button {
	margin-left: auto;
	padding: 10px 18px;
	font-size: 14px;
}

/* -------------------------------------------------------------------------
   6. Carta (archivo de tienda y categorias)
   ------------------------------------------------------------------------- */
body.daca .woocommerce-breadcrumb {
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--daca-muted);
	margin: 0 0 18px;
}

body.daca .woocommerce-breadcrumb a {
	color: var(--daca-muted);
	text-decoration: none;
}

body.daca .woocommerce-breadcrumb a:hover {
	color: var(--daca-ink);
}

body.daca .woocommerce-products-header {
	padding: 48px 0 36px;
	margin: 0;
	border: 0;
	text-align: left;
}

body.daca .woocommerce-products-header__title.page-title {
	font-family: var(--daca-font-display);
	font-size: clamp(46px, 7vw, 86px);
	font-weight: 900;
	letter-spacing: -0.045em;
	line-height: 0.94;
	margin: 0;
}

body.daca .daca-masthead__tagline {
	font-size: 17px;
	line-height: 1.5;
	color: var(--daca-muted);
	max-width: 36ch;
	margin: 16px 0 0;
}

/* Barra de categorias ---------------------------------------------------- */
body.daca .notiwoo-catalog {
	margin: 0;
	font-family: var(--daca-font-body);
}

body.daca .notiwoo-catalog__nav {
	background-color: var(--daca-bg);
	border: 0;
	border-bottom: 1px solid var(--daca-line);
	border-radius: 0;
	padding: 14px 0;
	margin: 0 0 48px;
	box-shadow: none;
}

body.daca .notiwoo-catalog.is-sticky .notiwoo-catalog__nav {
	position: sticky;
	/* Justo debajo de la cabecera fija, que publica su altura real desde JS. */
	top: calc(var(--daca-header-h) + var(--daca-admin-h, 0px));
	z-index: 20;
	box-shadow: var(--daca-shadow-stick);
}

body.daca .notiwoo-catalog__rail {
	display: flex;
	align-items: center;
	gap: 8px;
	overflow-x: auto;
	padding: 2px 0;
	margin: 0;
	scrollbar-width: none;
	-ms-overflow-style: none;
}

body.daca .notiwoo-catalog__rail::-webkit-scrollbar {
	display: none;
}

body.daca .notiwoo-catalog__link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	flex: 0 0 auto;
	white-space: nowrap;
	padding: 11px 20px;
	background-color: var(--daca-surface);
	border: 1px solid var(--daca-line);
	border-radius: var(--daca-r-pill);
	color: var(--daca-ink);
	font-family: var(--daca-font-body);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	box-shadow: none;
	transition: background-color var(--daca-t), border-color var(--daca-t), color var(--daca-t);
}

body.daca .notiwoo-catalog__link:hover {
	border-color: var(--daca-accent);
	background-color: var(--daca-surface);
	color: var(--daca-accent-deep);
}

body.daca .notiwoo-catalog__link.is-active:hover {
	background-color: var(--daca-accent-deep);
	border-color: var(--daca-accent-deep);
	color: var(--daca-inverse);
}

body.daca .notiwoo-catalog__link.is-active {
	background-color: var(--daca-ink);
	border-color: var(--daca-ink);
	color: var(--daca-inverse);
}

body.daca .notiwoo-catalog__link-count {
	font-size: 12px;
	font-weight: 500;
	color: var(--daca-muted);
	background: transparent;
	padding: 0;
}

body.daca .notiwoo-catalog__link.is-active .notiwoo-catalog__link-count {
	color: rgba(255, 255, 255, 0.62);
	background: transparent;
}

/* Secciones de categoria ------------------------------------------------- */
body.daca .notiwoo-catalog__section {
	margin: 0;
	padding: 0;
	border: 0;
}

body.daca .notiwoo-catalog__section-head {
	margin: 0 0 28px;
	padding: 0;
	border: 0;
}

body.daca .notiwoo-catalog__section-title {
	font-family: var(--daca-font-display);
	font-size: clamp(30px, 4.2vw, 46px);
	font-weight: 800;
	letter-spacing: -0.038em;
	line-height: 1.0;
	margin: 0;
	color: var(--daca-ink);
}

body.daca .notiwoo-catalog__section-description {
	color: var(--daca-muted);
	font-size: 16px;
	max-width: 62ch;
	margin: 12px 0 0;
}

body.daca .notiwoo-catalog__section--depth-2 > .notiwoo-catalog__section-head .notiwoo-catalog__section-title {
	font-size: 20px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--daca-muted);
}

/* -------------------------------------------------------------------------
   7. Tarjeta de producto
   ------------------------------------------------------------------------- */
body.daca ul.products {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	margin: 0;
	padding: 0;
	list-style: none;
}

body.daca .notiwoo-catalog__panel > ul.products {
	margin: 0 0 56px;
}

body.daca ul.products li.product {
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	clear: none !important;
	display: flex;
	flex-direction: column;
	background-color: var(--daca-surface);
	border: 1px solid var(--daca-line);
	border-radius: var(--daca-r-md);
	overflow: hidden;
	box-shadow: none;
	text-align: left;
	transition: border-color var(--daca-t), box-shadow var(--daca-t), transform var(--daca-t);
}

body.daca ul.products li.product:hover,
body.daca ul.products li.product:focus-within {
	border-color: var(--daca-accent);
	box-shadow: var(--daca-shadow-hover);
	transform: translateY(-3px);
}

body.daca ul.products li.product::before,
body.daca ul.products li.product::after {
	content: none;
}

/* Foto */
body.daca .astra-shop-thumbnail-wrap {
	position: relative;
	margin: 0;
	padding: 0;
	background-color: var(--daca-bg);
	overflow: hidden;
}

body.daca .astra-shop-thumbnail-wrap a {
	display: block;
	line-height: 0;
}

body.daca ul.products li.product img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	margin: 0;
	border-radius: 0;
	box-shadow: none;
	filter: var(--daca-photo-filter);
	transition: transform var(--daca-t-slow);
}

body.daca ul.products li.product:hover img,
body.daca ul.products li.product:focus-within img {
	transform: scale(1.04);
}

/* Una sola accion por tarjeta: se retira el boton flotante de Astra */
body.daca .ast-on-card-button,
body.daca .ast-card-action-tooltip {
	display: none !important;
}

/* Resumen */
body.daca .astra-shop-summary-wrap {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
	flex: 1 1 auto;
	padding: 20px;
	margin: 0;
}

body.daca .ast-woo-product-category {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var(--daca-muted);
	line-height: 1.2;
	margin: 0;
}

body.daca ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--daca-font-display);
	font-size: 20px;
	font-weight: 700;
	letter-spacing: -0.022em;
	line-height: 1.14;
	color: var(--daca-ink);
	margin: 0;
	padding: 0;
}

body.daca ul.products li.product a.ast-loop-product__link,
body.daca ul.products li.product a.woocommerce-loop-product__link {
	text-decoration: none;
}

body.daca ul.products li.product .price {
	font-family: var(--daca-font-body);
	font-size: 17px;
	font-weight: 600;
	color: var(--daca-ink);
	margin: 2px 0 0;
}

body.daca ul.products li.product .price del {
	color: var(--daca-muted);
	font-weight: 400;
	opacity: 1;
}

body.daca ul.products li.product .price ins {
	background: transparent;
	text-decoration: none;
	font-weight: 600;
}

body.daca ul.products li.product .woocommerce-product-details__short-description {
	font-size: 14px;
	line-height: 1.55;
	color: var(--daca-muted);
	margin: 0;
}

body.daca ul.products li.product .button,
body.daca ul.products li.product .added_to_cart {
	width: 100%;
	margin: 16px 0 0;
	padding: 13px 20px;
	font-size: 15px;
}

body.daca ul.products li.product .astra-shop-summary-wrap > .button {
	margin-top: auto;
}

body.daca ul.products li.product .added_to_cart {
	background: transparent;
	color: var(--daca-ink);
	border: 1px solid var(--daca-line-strong);
	border-radius: var(--daca-r-pill);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	font-weight: 600;
	font-size: 14px;
}

body.daca .woocommerce-result-count,
body.daca .woocommerce-ordering {
	font-size: 14px;
	color: var(--daca-muted);
}

/* -------------------------------------------------------------------------
   8. Ficha de producto
   ------------------------------------------------------------------------- */
body.daca.single-product div.product {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 56px;
	align-items: start;
	padding: 40px 0 0;
}

body.daca.single-product div.product .woocommerce-product-gallery {
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
	border-radius: var(--daca-r-lg);
	overflow: hidden;
	border: 1px solid var(--daca-line);
	background: var(--daca-surface);
}

body.daca.single-product div.product .woocommerce-product-gallery img {
	aspect-ratio: 1 / 1;
	object-fit: cover;
	filter: var(--daca-photo-filter);
}

body.daca.single-product div.product .summary.entry-summary {
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
	position: sticky;
	top: var(--daca-sticky-top);
}

body.daca.single-product div.product .product_title {
	font-size: clamp(34px, 4.6vw, 54px);
	font-weight: 900;
	letter-spacing: -0.04em;
	line-height: 0.98;
	margin: 0 0 14px;
}

body.daca.single-product div.product p.price,
body.daca.single-product div.product span.price {
	font-family: var(--daca-font-body);
	font-size: 26px;
	font-weight: 600;
	color: var(--daca-ink);
	margin: 0 0 20px;
}

body.daca.single-product .woocommerce-product-details__short-description {
	color: var(--daca-muted);
	font-size: 16px;
	max-width: 62ch;
	margin: 0 0 24px;
}

body.daca.single-product form.cart {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	margin: 0 0 28px;
}

body.daca.single-product form.cart .button {
	flex: 1 1 220px;
	padding: 16px 28px;
	font-size: 16px;
}

body.daca.single-product .product_meta {
	font-size: 13px;
	color: var(--daca-muted);
	border-top: 1px solid var(--daca-line);
	padding-top: 18px;
}

body.daca.single-product .woocommerce-tabs ul.tabs {
	display: flex;
	gap: 8px;
	padding: 0;
	margin: 0 0 24px;
	border: 0;
	border-bottom: 1px solid var(--daca-line);
}

body.daca.single-product .woocommerce-tabs ul.tabs::before,
body.daca.single-product .woocommerce-tabs ul.tabs li::before,
body.daca.single-product .woocommerce-tabs ul.tabs li::after {
	display: none;
}

body.daca.single-product .woocommerce-tabs ul.tabs li {
	background: transparent;
	border: 0;
	border-radius: 0;
	margin: 0;
	padding: 0;
}

body.daca.single-product .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 12px 4px;
	font-weight: 600;
	font-size: 14px;
	color: var(--daca-muted);
	border-bottom: 2px solid transparent;
	text-decoration: none;
}

body.daca.single-product .woocommerce-tabs ul.tabs li.active a {
	color: var(--daca-ink);
	border-bottom-color: var(--daca-ink);
}

body.daca.single-product section.related > h2,
body.daca.single-product section.upsells > h2 {
	font-size: 28px;
	margin: 56px 0 24px;
}

/* -------------------------------------------------------------------------
   9. Cantidad
   ------------------------------------------------------------------------- */
body.daca .quantity {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--daca-line);
	border-radius: var(--daca-r-pill);
	overflow: hidden;
	background: var(--daca-surface);
}

body.daca .quantity input.qty {
	width: 74px;
	height: 46px;
	padding: 0 8px;
	text-align: center;
	font-weight: 600;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}

body.daca .quantity input.qty:focus {
	box-shadow: none;
}

/* -------------------------------------------------------------------------
   10. Carrito
   ------------------------------------------------------------------------- */
body.woocommerce-cart.daca .entry-header {
	padding: 48px 0 8px;
	margin: 0;
	border: 0;
}

body.woocommerce-cart.daca .entry-title,
body.woocommerce-checkout.daca .entry-title {
	font-size: clamp(38px, 5.4vw, 62px);
	font-weight: 900;
	letter-spacing: -0.042em;
	line-height: 0.98;
	margin: 0 0 36px;
	text-align: left;
}

body.woocommerce-cart.daca .entry-content > .woocommerce {
	display: grid;
	grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
	column-gap: 48px;
	row-gap: 0;
	align-items: start;
	padding-bottom: 72px;
}

body.woocommerce-cart.daca .woocommerce-notices-wrapper {
	grid-column: 1 / -1;
}

body.woocommerce-cart.daca .woocommerce-cart-form {
	margin: 0;
}

body.daca table.shop_table {
	width: 100%;
	border: 0;
	border-radius: 0;
	border-collapse: collapse;
	background: transparent;
	margin: 0;
}

body.daca table.shop_table th,
body.daca table.shop_table td {
	border: 0;
	background: transparent;
}

body.daca .woocommerce-cart-form__contents thead {
	display: none;
}

body.daca .woocommerce-cart-form__contents,
body.daca .woocommerce-cart-form__contents tbody {
	display: block;
	width: 100%;
}

body.daca tr.woocommerce-cart-form__cart-item {
	display: grid;
	grid-template-columns: 84px minmax(0, 1fr) 96px 118px 104px 36px;
	align-items: center;
	gap: 20px;
	padding: 22px 0;
	border-bottom: 1px solid var(--daca-line);
}

body.daca tr.woocommerce-cart-form__cart-item:first-child {
	border-top: 1px solid var(--daca-line);
}

body.daca tr.woocommerce-cart-form__cart-item > td {
	display: block;
	padding: 0;
	border: 0;
	min-width: 0;
}

body.daca td.product-thumbnail {
	order: 1;
}

body.daca td.product-name {
	order: 2;
}

body.daca td.product-price {
	order: 3;
	text-align: right;
}

body.daca td.product-quantity {
	order: 4;
	text-align: center;
}

body.daca td.product-subtotal {
	order: 5;
	text-align: right;
}

body.daca td.product-remove {
	order: 6;
	text-align: right;
}

body.daca td.product-thumbnail img {
	width: 84px;
	height: 84px;
	object-fit: cover;
	border-radius: var(--daca-r-sm);
	border: 1px solid var(--daca-line);
	filter: var(--daca-photo-filter);
}

body.daca td.product-name a {
	font-family: var(--daca-font-display);
	font-size: 18px;
	font-weight: 700;
	letter-spacing: -0.02em;
	color: var(--daca-ink);
	text-decoration: none;
}

body.daca td.product-name dl.variation {
	margin: 6px 0 0;
	font-size: 13px;
	line-height: 1.5;
	color: var(--daca-muted);
}

body.daca td.product-name dl.variation dt,
body.daca td.product-name dl.variation dd {
	display: inline;
	margin: 0;
	font-weight: 400;
}

body.daca td.product-name dl.variation dd::after {
	content: '';
	display: block;
}

body.daca td.product-name dl.variation p {
	display: inline;
	margin: 0;
}

body.daca td.product-price {
	font-size: 14px;
	color: var(--daca-muted);
}

body.daca td.product-subtotal {
	font-size: 16px;
	font-weight: 600;
	color: var(--daca-ink);
}

body.daca td.product-remove a.remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: var(--daca-r-pill);
	border: 1px solid var(--daca-line);
	background: var(--daca-surface) !important;
	color: var(--daca-muted) !important;
	font-size: 18px;
	line-height: 1;
	text-decoration: none;
	transition: border-color var(--daca-t), color var(--daca-t);
}

body.daca td.product-remove a.remove:hover {
	border-color: var(--daca-ink);
	color: var(--daca-ink) !important;
}

body.daca .woocommerce-cart-form__contents tbody > tr:last-child {
	display: block;
	border: 0;
	padding: 24px 0 0;
}

body.daca td.actions {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	padding: 0 !important;
	border: 0;
}

body.daca td.actions .coupon {
	display: flex;
	align-items: center;
	gap: 8px;
	flex: 1 1 320px;
	margin: 0;
	padding: 0;
	border: 0;
}

body.daca td.actions .coupon label {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
}

body.daca td.actions .coupon input#coupon_code {
	flex: 1 1 auto;
	max-width: 260px;
}

/* Resumen del carrito ---------------------------------------------------- */
body.daca .cart-collaterals {
	width: 100%;
	float: none;
	margin: 0;
	padding: 0;
}

body.daca .cart-collaterals .cart_totals {
	width: 100% !important;
	float: none !important;
	position: sticky;
	top: var(--daca-sticky-top);
	align-self: start;
	background-color: var(--daca-surface);
	border: 1px solid var(--daca-line);
	border-radius: var(--daca-r-lg);
	box-shadow: var(--daca-shadow-float);
	padding: 28px;
}

body.daca .cart_totals h2 {
	font-size: 22px;
	font-weight: 800;
	letter-spacing: -0.025em;
	margin: 0 0 8px;
	text-align: left;
}

body.daca .cart_totals table.shop_table th {
	font-family: var(--daca-font-body);
	font-size: 14px;
	font-weight: 500;
	color: var(--daca-muted);
	text-align: left;
	padding: 12px 0;
	width: auto;
}

body.daca .cart_totals table.shop_table td {
	font-size: 15px;
	font-weight: 600;
	text-align: right;
	padding: 12px 0;
}

body.daca .cart_totals tr.order-total th,
body.daca .cart_totals tr.order-total td {
	border-top: 1px solid var(--daca-line);
	padding-top: 16px;
	font-size: 19px;
	font-weight: 700;
	color: var(--daca-ink);
}

body.daca .cart_totals tr.order-total th {
	font-family: var(--daca-font-display);
	letter-spacing: -0.02em;
}

body.daca .wc-proceed-to-checkout {
	padding: 20px 0 0;
	margin: 0;
}

body.daca .wc-proceed-to-checkout a.checkout-button {
	display: flex;
	width: 100%;
	padding: 17px 24px;
	font-size: 16px;
	margin: 0;
}

body.daca .cart-empty,
body.daca .woocommerce-cart .cart-empty {
	font-family: var(--daca-font-display);
	font-size: 28px;
	font-weight: 800;
	letter-spacing: -0.03em;
	color: var(--daca-ink);
}

body.daca .return-to-shop {
	margin: 20px 0 64px;
}

/* -------------------------------------------------------------------------
   11. Finalizar compra
   ------------------------------------------------------------------------- */
body.woocommerce-checkout.daca .entry-content > .woocommerce {
	padding-bottom: 72px;
}

body.daca .woocommerce-form-coupon-toggle .woocommerce-info {
	font-size: 14px;
	padding: 14px 18px;
}

body.daca form.checkout_coupon {
	background: var(--daca-surface);
	border: 1px solid var(--daca-line);
	border-radius: var(--daca-r-md);
	padding: 20px;
	margin: 0 0 24px;
}

body.daca form.checkout.woocommerce-checkout {
	display: grid;
	grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
	column-gap: 48px;
	row-gap: 8px;
	align-items: start;
}

body.daca form.checkout.woocommerce-checkout > * {
	grid-column: 1;
	min-width: 0;
}

body.daca form.checkout.woocommerce-checkout > .daca-checkout__aside {
	grid-column: 2;
	grid-row: 1 / span 99;
	min-width: 0;
	position: sticky;
	top: var(--daca-sticky-top);
	align-self: start;
}

body.daca form.checkout.woocommerce-checkout > wc-order-attribution-inputs {
	display: none;
}

/* Una sola columna, tanto si WooCommerce imprime col2-set como col1-set
   (usa uno u otro segun si pide direccion de envio aparte). */
body.daca #customer_details,
body.daca #customer_details.col2-set,
body.daca #customer_details.col1-set {
	display: block;
	width: 100%;
}

body.daca #customer_details .col-1,
body.daca #customer_details .col-2 {
	width: 100%;
	float: none;
	margin: 0;
}

body.daca #customer_details .col-2:empty {
	display: none;
}

body.daca .woocommerce-billing-fields > h3,
body.daca .woocommerce-shipping-fields > h3,
body.daca .woocommerce-additional-fields > h3,
body.daca #order_review_heading {
	font-family: var(--daca-font-display);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--daca-ink);
	margin: 0 0 18px;
}

body.daca .woocommerce-billing-fields,
body.daca .woocommerce-additional-fields {
	background-color: var(--daca-surface);
	border: 1px solid var(--daca-line);
	border-radius: var(--daca-r-md);
	padding: 26px;
	margin: 0 0 20px;
}

body.daca .woocommerce-billing-fields__field-wrapper,
body.daca .woocommerce-additional-fields__field-wrapper {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 16px;
}

body.daca .woocommerce form .form-row-wide,
body.daca .woocommerce form .form-row.notes {
	grid-column: 1 / -1;
}

body.daca .woocommerce form .form-row-first,
body.daca .woocommerce form .form-row-last {
	width: 100%;
	float: none;
	margin-right: 0;
}

/* Resumen del pedido -----------------------------------------------------
   El contenedor propio es la unica tarjeta: el titulo y la tabla viven
   dentro. WooCommerce y Astra le imponen float y width:48% a #order_review,
   asi que se neutralizan de forma explicita. */
body.daca .daca-checkout__aside {
	background-color: var(--daca-surface);
	border: 1px solid var(--daca-line);
	border-radius: var(--daca-r-lg);
	box-shadow: var(--daca-shadow-float);
	padding: 26px;
}

body.daca .daca-checkout__aside #order_review_heading {
	margin: 0 0 18px;
	padding: 0 0 14px;
	border-bottom: 1px solid var(--daca-line);
	color: var(--daca-ink);
}

body.daca .woocommerce-checkout #order_review,
body.daca .daca-checkout__aside #order_review {
	width: 100% !important;
	float: none !important;
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	padding: 0;
	margin: 0;
}

body.daca .woocommerce-checkout-review-order-table {
	width: 100%;
	border: 0;
}

body.daca .woocommerce-checkout-review-order-table thead th {
	font-family: var(--daca-font-body);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var(--daca-muted);
	padding: 0 0 12px;
	border-bottom: 1px solid var(--daca-line);
	text-align: left;
}

body.daca .woocommerce-checkout-review-order-table thead th:last-child {
	text-align: right;
}

body.daca .woocommerce-checkout-review-order-table tbody td {
	padding: 14px 0;
	border-bottom: 1px solid var(--daca-line);
	font-size: 15px;
	vertical-align: top;
}

body.daca .woocommerce-checkout-review-order-table td.product-name {
	font-weight: 500;
	color: var(--daca-ink);
}

body.daca .woocommerce-checkout-review-order-table td.product-name .product-quantity {
	color: var(--daca-muted);
	font-weight: 400;
}

body.daca .woocommerce-checkout-review-order-table td.product-total {
	text-align: right;
	font-weight: 600;
	white-space: nowrap;
}

body.daca .woocommerce-checkout-review-order-table tfoot th {
	font-family: var(--daca-font-body);
	font-size: 14px;
	font-weight: 500;
	color: var(--daca-muted);
	text-align: left;
	padding: 12px 0;
	border: 0;
}

body.daca .woocommerce-checkout-review-order-table tfoot td {
	text-align: right;
	font-weight: 600;
	padding: 12px 0;
	border: 0;
}

body.daca .woocommerce-checkout-review-order-table tfoot tr.order-total th,
body.daca .woocommerce-checkout-review-order-table tfoot tr.order-total td {
	border-top: 1px solid var(--daca-line);
	padding-top: 16px;
	font-size: 19px;
	font-weight: 700;
	color: var(--daca-ink);
}

body.daca .woocommerce-checkout-review-order-table tfoot tr.order-total th {
	font-family: var(--daca-font-display);
	letter-spacing: -0.02em;
}

body.daca tr.notiwoo-fulfillment-eta th,
body.daca tr.notiwoo-fulfillment-eta td {
	font-size: 13px;
	color: var(--daca-muted);
	font-weight: 500;
}

/* Metodos de pago -------------------------------------------------------- */
body.daca #payment {
	background: transparent;
	border-radius: 0;
	padding: 24px 0 0;
	margin: 0;
}

body.daca #payment ul.payment_methods {
	display: grid;
	gap: 10px;
	padding: 0;
	margin: 0 0 20px;
	border: 0;
	list-style: none;
}

body.daca #payment ul.payment_methods li {
	background: var(--daca-surface);
	border: 1px solid var(--daca-line);
	border-radius: var(--daca-r-sm);
	padding: 14px 16px;
	margin: 0;
	list-style: none;
	transition: border-color var(--daca-t);
}

body.daca #payment ul.payment_methods li:has(input:checked) {
	border-color: var(--daca-ink);
}

body.daca #payment ul.payment_methods li label {
	font-size: 15px;
	font-weight: 600;
	color: var(--daca-ink);
	cursor: pointer;
	margin: 0;
}

body.daca #payment div.payment_box {
	background: transparent;
	color: var(--daca-muted);
	font-size: 14px;
	line-height: 1.55;
	padding: 10px 0 0;
	margin: 8px 0 0;
	border-top: 1px solid var(--daca-line);
	border-radius: 0;
}

body.daca #payment div.payment_box::before {
	display: none;
}

body.daca .woocommerce-terms-and-conditions-wrapper {
	font-size: 13px;
	color: var(--daca-muted);
	margin: 0 0 16px;
}

body.daca .woocommerce-privacy-policy-text p {
	font-size: 13px;
	line-height: 1.55;
	color: var(--daca-muted);
	margin: 0;
}

body.daca #payment .form-row.place-order {
	padding: 0;
	margin: 0;
}

body.daca #place_order {
	display: flex;
	width: 100%;
	padding: 18px 24px;
	font-size: 16px;
	font-weight: 600;
	margin: 0;
}

/* -------------------------------------------------------------------------
   12. Bloques de entrega de Notiwoo
   ------------------------------------------------------------------------- */
body.daca .notiwoo-fulfillment {
	font-family: var(--daca-font-body);
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	padding: 0;
	margin: 0 0 24px;
}

body.daca .notiwoo-fulfillment--checkout {
	background-color: var(--daca-surface);
	border: 1px solid var(--daca-line);
	border-radius: var(--daca-r-md);
	padding: 26px;
}

body.daca .notiwoo-fulfillment--cart {
	padding: 0 0 22px;
	margin: 0 0 8px;
	border-bottom: 1px solid var(--daca-line);
}

body.daca .notiwoo-fulfillment__title {
	font-family: var(--daca-font-display);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--daca-ink);
	margin: 0 0 16px;
}

body.daca .notiwoo-fulfillment__services {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 8px;
	margin: 0 0 16px;
}

body.daca .notiwoo-fulfillment__service {
	margin: 0;
}

body.daca .notiwoo-fulfillment__service label {
	display: flex;
	flex-direction: column;
	gap: 3px;
	height: 100%;
	padding: 14px 16px;
	background-color: var(--daca-surface);
	border: 1px solid var(--daca-line);
	border-radius: var(--daca-r-sm);
	color: var(--daca-ink);
	cursor: pointer;
	box-shadow: none;
	transition: background-color var(--daca-t), border-color var(--daca-t), color var(--daca-t);
}

body.daca .notiwoo-fulfillment__service label:hover {
	border-color: var(--daca-line-strong);
	background-color: var(--daca-surface);
}

body.daca .notiwoo-fulfillment__service input:checked + label {
	background-color: var(--daca-ink);
	border-color: var(--daca-ink);
	color: var(--daca-inverse);
}

body.daca .notiwoo-fulfillment__service-name {
	font-family: var(--daca-font-display);
	font-size: 16px;
	font-weight: 700;
	letter-spacing: -0.015em;
	line-height: 1.2;
}

body.daca .notiwoo-fulfillment__service-note {
	font-size: 13px;
	line-height: 1.4;
	color: var(--daca-muted);
}

body.daca .notiwoo-fulfillment__service input:checked + label .notiwoo-fulfillment__service-note {
	color: rgba(255, 255, 255, 0.66);
}

body.daca .notiwoo-fulfillment__schedule {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 12px;
	margin: 0 0 16px;
}

body.daca .notiwoo-fulfillment__label {
	display: block;
	font-size: 13px;
	font-weight: 600;
	color: var(--daca-ink);
	margin: 0 0 6px;
}

body.daca .notiwoo-fulfillment__slots {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 16px;
}

body.daca .notiwoo-fulfillment__slot label {
	display: inline-flex;
	align-items: center;
	padding: 9px 16px;
	background-color: var(--daca-surface);
	border: 1px solid var(--daca-line);
	border-radius: var(--daca-r-pill);
	font-size: 14px;
	font-weight: 500;
	color: var(--daca-ink);
	cursor: pointer;
	transition: background-color var(--daca-t), border-color var(--daca-t), color var(--daca-t);
}

body.daca .notiwoo-fulfillment__slot input:checked + label {
	background-color: var(--daca-ink);
	border-color: var(--daca-ink);
	color: var(--daca-inverse);
}

body.daca .notiwoo-fulfillment__slot.is-unavailable label {
	opacity: 0.35;
	cursor: not-allowed;
	text-decoration: line-through;
}

body.daca .notiwoo-fulfillment__note {
	font-size: 13px;
	line-height: 1.5;
	color: var(--daca-muted);
	margin: 0 0 6px;
}

body.daca .notiwoo-fulfillment__note.is-error {
	color: var(--daca-danger);
	font-weight: 500;
}

body.daca .notiwoo-fulfillment__note.is-ok {
	color: var(--daca-ink);
}

body.daca .notiwoo-fulfillment__minimum {
	margin: 0 0 14px;
}

body.daca .notiwoo-fulfillment__bar {
	height: 4px;
	border-radius: var(--daca-r-pill);
	background-color: var(--daca-line);
	overflow: hidden;
}

body.daca .notiwoo-fulfillment__bar span {
	display: block;
	height: 100%;
	background-color: var(--daca-ink);
	border-radius: var(--daca-r-pill);
}

body.daca .notiwoo-fulfillment__empty {
	font-size: 14px;
	color: var(--daca-muted);
}

body.daca .notiwoo-fulfillment.is-busy {
	opacity: 0.55;
}

/* -------------------------------------------------------------------------
   13. Modal de adiciones de Notiwoo

   Intencionalmente sin sobrescribir. El popup conserva el estilo por defecto
   del plugin para que se pueda ajustar desde el panel de Notiwoo sin que este
   archivo compita con esos valores.
   ------------------------------------------------------------------------- */

/* -------------------------------------------------------------------------
   14. Pagina 404
   ------------------------------------------------------------------------- */
body.daca .daca-404 {
	display: grid;
	grid-template-columns: minmax(0, 0.85fr) minmax(0, 1fr);
	align-items: center;
	gap: 64px;
	min-height: 62vh;
	padding: 72px 0 96px;
}

body.daca .daca-404__mark {
	position: relative;
	background-color: var(--daca-ink);
	border-radius: var(--daca-r-lg);
	aspect-ratio: 1 / 1;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

body.daca .daca-404__mark img {
	width: 76%;
	height: auto;
	display: block;
	border-radius: 0;
	/* La marca es negra sobre blanco: al invertirla queda blanca sobre el
	   bloque de tinta, sin recorte ni fondo visible. */
	filter: invert(1);
}

body.daca .daca-404__wordmark {
	font-family: var(--daca-font-display);
	font-size: clamp(48px, 9vw, 96px);
	font-weight: 900;
	letter-spacing: -0.055em;
	line-height: 1;
	color: var(--daca-inverse);
}

body.daca .daca-404__code {
	font-family: var(--daca-font-body);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--daca-muted);
	margin: 0 0 18px;
}

body.daca .daca-404__title {
	font-family: var(--daca-font-display);
	font-size: clamp(46px, 6.6vw, 88px);
	font-weight: 900;
	letter-spacing: -0.05em;
	line-height: 0.92;
	margin: 0 0 20px;
}

body.daca .daca-404__text {
	font-size: 17px;
	line-height: 1.6;
	color: var(--daca-muted);
	max-width: 46ch;
	margin: 0 0 32px;
}

body.daca .daca-404__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0 0 40px;
}

body.daca .daca-404__links {
	border-top: 1px solid var(--daca-line);
	padding-top: 24px;
}

body.daca .daca-404__links-title {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--daca-muted);
	margin: 0 0 12px;
}

body.daca .daca-404__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
}

body.daca .daca-404__chips a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 9px 16px;
	background-color: var(--daca-surface);
	border: 1px solid var(--daca-line);
	border-radius: var(--daca-r-pill);
	font-size: 14px;
	font-weight: 500;
	color: var(--daca-ink);
	text-decoration: none;
	transition: border-color var(--daca-t);
}

body.daca .daca-404__chips a:hover {
	border-color: var(--daca-ink);
}

body.daca .daca-404__chips-count {
	font-size: 12px;
	color: var(--daca-muted);
}

/* -------------------------------------------------------------------------
   15. Responsive
   ------------------------------------------------------------------------- */
@media (max-width: 1024px) {
	body.daca ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	body.woocommerce-cart.daca .entry-content > .woocommerce,
	body.daca form.checkout.woocommerce-checkout {
		grid-template-columns: minmax(0, 1fr);
		row-gap: 32px;
	}

	body.daca form.checkout.woocommerce-checkout > * {
		grid-column: 1;
	}

	body.daca form.checkout.woocommerce-checkout > .daca-checkout__aside {
		grid-column: 1;
		grid-row: auto;
		position: static;
	}

	body.daca .cart-collaterals .cart_totals {
		position: static;
	}

	body.daca.single-product div.product {
		grid-template-columns: minmax(0, 1fr);
		gap: 32px;
	}

	body.daca.single-product div.product .summary.entry-summary {
		position: static;
	}

	body.daca .daca-404 {
		grid-template-columns: minmax(0, 1fr);
		gap: 40px;
		padding: 48px 0 72px;
	}

	body.daca .daca-404__mark {
		max-width: 240px;
		aspect-ratio: 1 / 1;
	}
}

@media (max-width: 782px) {
	body.admin-bar.daca {
		--daca-admin-h: 46px;
	}
}

@media (max-width: 600px) {
	/* Por debajo de 600px la barra de administracion deja de estar fija. */
	body.admin-bar.daca {
		--daca-admin-h: 0px;
	}
}

@media (max-width: 640px) {
	body.daca ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 14px;
	}

	body.daca .astra-shop-summary-wrap {
		padding: 14px;
	}

	body.daca ul.products li.product .woocommerce-loop-product__title {
		font-size: 17px;
	}

	body.daca ul.products li.product .button {
		padding: 11px 14px;
		font-size: 14px;
	}

	/* Carrito: cada linea pasa a dos filas */
	body.daca tr.woocommerce-cart-form__cart-item {
		grid-template-columns: 64px minmax(0, 1fr) 32px;
		grid-template-areas:
			'thumb name remove'
			'thumb price price'
			'qty qty subtotal';
		gap: 10px 14px;
		align-items: center;
	}

	body.daca td.product-thumbnail {
		grid-area: thumb;
		align-self: start;
	}

	body.daca td.product-name {
		grid-area: name;
	}

	body.daca td.product-price {
		grid-area: price;
		text-align: left;
	}

	body.daca td.product-quantity {
		grid-area: qty;
		text-align: left;
	}

	body.daca td.product-subtotal {
		grid-area: subtotal;
	}

	body.daca td.product-remove {
		grid-area: remove;
	}

	body.daca td.product-thumbnail img {
		width: 64px;
		height: 64px;
	}

	body.daca .woocommerce-billing-fields__field-wrapper,
	body.daca .woocommerce-additional-fields__field-wrapper {
		grid-template-columns: minmax(0, 1fr);
	}

	body.daca .woocommerce-billing-fields,
	body.daca .woocommerce-additional-fields,
	body.daca .notiwoo-fulfillment--checkout,
	body.daca .daca-checkout__aside,
	body.daca .cart-collaterals .cart_totals {
		padding: 20px;
	}

	body.daca .notiwoo-fulfillment__schedule {
		grid-template-columns: minmax(0, 1fr);
	}

	body.daca .notiwoo-fulfillment__services {
		grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	}

	body.daca td.actions {
		flex-direction: column;
		align-items: stretch;
	}

	body.daca td.actions .coupon {
		flex: 1 1 auto;
	}

	body.daca td.actions .coupon input#coupon_code {
		max-width: none;
	}

	body.daca .ast-container {
		padding-left: 18px;
		padding-right: 18px;
	}
}

/* -------------------------------------------------------------------------
   16. Cabecera
   ------------------------------------------------------------------------- */
body.daca .daca-header {
	position: sticky;
	top: var(--daca-admin-h, 0px);
	z-index: 40;
	background-color: var(--daca-surface);
	border-bottom: 1px solid var(--daca-line);
	transition: box-shadow var(--daca-t), background-color var(--daca-t);
}

body.daca .daca-header.is-scrolled {
	box-shadow: var(--daca-shadow-stick);
}

body.daca .daca-header__inner {
	display: flex;
	align-items: center;
	gap: 32px;
	width: 100%;
	max-width: var(--daca-maxw);
	margin: 0 auto;
	padding: 14px 24px;
	transition: padding var(--daca-t);
}

body.daca .daca-header.is-scrolled .daca-header__inner {
	padding-top: 8px;
	padding-bottom: 8px;
}

/* Marca ------------------------------------------------------------------ */
body.daca .daca-header__brand {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	flex: 0 0 auto;
	text-decoration: none;
	color: var(--daca-ink);
}

body.daca .daca-header__logo {
	width: 44px;
	height: 44px;
	display: block;
	border-radius: var(--daca-r-sm);
	transition: width var(--daca-t), height var(--daca-t), transform var(--daca-t);
}

body.daca .daca-header.is-scrolled .daca-header__logo {
	width: 36px;
	height: 36px;
}

body.daca .daca-header__brand:hover .daca-header__logo {
	transform: rotate(-4deg) scale(1.04);
}

body.daca .daca-header__name {
	display: flex;
	flex-direction: column;
	line-height: 1;
}

body.daca .daca-header__wordmark {
	font-family: var(--daca-font-display);
	font-size: 21px;
	font-weight: 900;
	letter-spacing: -0.04em;
	line-height: 1;
}

body.daca .daca-header__sub {
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--daca-muted);
	margin-top: 3px;
}

/* Navegacion ------------------------------------------------------------- */
body.daca .daca-nav--desktop {
	display: flex;
	align-items: center;
	gap: 4px;
	/* No crece: el boton del carrito manda y nunca se sale de la pantalla. */
	flex: 0 1 auto;
	min-width: 0;
	overflow: hidden;
}

body.daca .daca-nav__link {
	position: relative;
	padding: 9px 14px;
	border-radius: var(--daca-r-pill);
	font-size: 14px;
	font-weight: 600;
	color: var(--daca-ink);
	text-decoration: none;
	white-space: nowrap;
	transition: color var(--daca-t), background-color var(--daca-t);
}

body.daca .daca-nav__link::after {
	content: '';
	position: absolute;
	left: 14px;
	right: 14px;
	bottom: 4px;
	height: 2px;
	border-radius: 2px;
	background-color: var(--daca-accent);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform var(--daca-t-slow);
}

body.daca .daca-nav__link:hover {
	color: var(--daca-accent-deep);
}

body.daca .daca-nav__link:hover::after,
body.daca .daca-nav__link.is-current::after {
	transform: scaleX(1);
}

/* La pagina actual se marca en tinta; el ambar queda para el hover. */
body.daca .daca-nav__link.is-current {
	color: var(--daca-ink);
}

body.daca .daca-nav__link.is-current::after {
	background-color: var(--daca-ink);
}

body.daca .daca-nav__link.is-current:hover::after {
	background-color: var(--daca-accent);
}

/* Acciones --------------------------------------------------------------- */
body.daca .daca-header__actions {
	display: flex;
	align-items: center;
	gap: 10px;
	flex: 0 0 auto;
	margin-left: auto;
}

body.daca .daca-cart {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 11px 18px;
	background-color: var(--daca-ink);
	border: 1px solid var(--daca-ink);
	border-radius: var(--daca-r-pill);
	color: var(--daca-inverse);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	transition: background-color var(--daca-t), border-color var(--daca-t), transform var(--daca-t);
}

body.daca .daca-cart:hover {
	background-color: var(--daca-accent-deep);
	border-color: var(--daca-accent-deep);
	color: var(--daca-inverse);
	transform: translateY(-1px);
}

body.daca .daca-cart:active {
	transform: translateY(1px);
}

body.daca .daca-cart__icon {
	width: 18px;
	height: 18px;
	flex: 0 0 auto;
}

body.daca .daca-cart__count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	height: 22px;
	padding: 0 6px;
	border-radius: var(--daca-r-pill);
	background-color: var(--daca-inverse);
	color: var(--daca-ink);
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
}

body.daca .daca-cart__count.is-empty {
	background-color: rgba(255, 255, 255, 0.22);
	color: rgba(255, 255, 255, 0.85);
}

body.daca .daca-cart__count.is-pop {
	animation: daca-pop 320ms cubic-bezier(0.22, 1.2, 0.36, 1);
}

@keyframes daca-pop {
	0% {
		transform: scale(1);
	}

	45% {
		transform: scale(1.32);
	}

	100% {
		transform: scale(1);
	}
}

/* Boton de menu movil ---------------------------------------------------- */
body.daca .daca-header__toggle {
	display: none;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	background: transparent;
	border: 1px solid var(--daca-line);
	border-radius: var(--daca-r-pill);
	cursor: pointer;
	transition: border-color var(--daca-t);
}

body.daca .daca-header__toggle:hover {
	border-color: var(--daca-accent);
}

body.daca .daca-header__bars {
	display: flex;
	flex-direction: column;
	gap: 5px;
	width: 18px;
}

body.daca .daca-header__bars i {
	display: block;
	height: 2px;
	width: 100%;
	border-radius: 2px;
	background-color: var(--daca-ink);
	transition: transform var(--daca-t-slow);
}

body.daca .daca-header.is-open .daca-header__bars i:first-child {
	transform: translateY(3.5px) rotate(45deg);
}

body.daca .daca-header.is-open .daca-header__bars i:last-child {
	transform: translateY(-3.5px) rotate(-45deg);
}

body.daca .daca-header__mobile {
	border-top: 1px solid var(--daca-line);
	padding: 10px 24px 18px;
}

body.daca .daca-nav--mobile {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

body.daca .daca-nav--mobile .daca-nav__link {
	padding: 12px 4px;
	font-size: 16px;
	border-bottom: 1px solid var(--daca-line);
	border-radius: 0;
}

body.daca .daca-nav--mobile .daca-nav__link::after {
	left: 4px;
	right: 4px;
	bottom: 0;
}

/* -------------------------------------------------------------------------
   17. Pie de pagina
   ------------------------------------------------------------------------- */
body.daca .daca-footer {
	background-color: var(--daca-ink);
	color: rgba(255, 255, 255, 0.72);
	margin-top: 80px;
}

body.daca .daca-footer__inner {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr));
	gap: 48px;
	max-width: var(--daca-maxw);
	margin: 0 auto;
	padding: 64px 24px 48px;
}

body.daca .daca-footer__logo {
	width: 64px;
	height: 64px;
	display: block;
	margin: 0 0 18px;
	/* La marca es negra sobre blanco: invertida queda blanca sobre la tinta. */
	filter: invert(1);
}

body.daca .daca-footer__tagline {
	font-family: var(--daca-font-display);
	font-size: 24px;
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.12;
	color: var(--daca-inverse);
	max-width: 22ch;
	margin: 0;
}

body.daca .daca-footer__title {
	font-family: var(--daca-font-body);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.5);
	margin: 0 0 16px;
}

body.daca .daca-footer__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

body.daca .daca-footer__list a {
	color: var(--daca-inverse);
	font-size: 15px;
	text-decoration: none;
	transition: color var(--daca-t);
}

body.daca .daca-footer__list a:hover {
	color: var(--daca-accent);
}

body.daca .daca-footer__list--plain li {
	font-size: 14px;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.72);
}

body.daca .daca-footer__bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
	max-width: var(--daca-maxw);
	margin: 0 auto;
	padding: 20px 24px 28px;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	font-size: 13px;
}

body.daca .daca-footer__bottom p {
	margin: 0;
	color: rgba(255, 255, 255, 0.55);
}

body.daca .daca-footer__top {
	color: rgba(255, 255, 255, 0.55);
	text-decoration: none;
	transition: color var(--daca-t);
}

body.daca .daca-footer__top:hover {
	color: var(--daca-accent);
}

/* -------------------------------------------------------------------------
   18. Producto sin foto

   En lugar del gris de WooCommerce, el fondo papel con la marca al 12%.
   Se lee como decision, no como error.
   ------------------------------------------------------------------------- */
body.daca li.product.daca-no-photo .astra-shop-thumbnail-wrap {
	position: relative;
	background-color: var(--daca-bg);
}

body.daca li.product.daca-no-photo .astra-shop-thumbnail-wrap img {
	opacity: 0;
}

body.daca li.product.daca-no-photo .astra-shop-thumbnail-wrap::after {
	content: '';
	position: absolute;
	inset: 0;
	background-image: var(--daca-logo-url);
	background-repeat: no-repeat;
	background-position: center;
	background-size: 34%;
	/* La marca es un PNG negro sobre blanco. Sin multiply se dibujaba su
	   cuadrado blanco encima del papel y parecia un recuadro suelto. */
	mix-blend-mode: multiply;
	opacity: 0.26;
	pointer-events: none;
	transition: opacity var(--daca-t-slow), transform var(--daca-t-slow);
}

body.daca li.product.daca-no-photo:hover .astra-shop-thumbnail-wrap::after {
	opacity: 0.4;
	transform: scale(1.04);
}

/* -------------------------------------------------------------------------
   19. Campos ocultos del checkout
   ------------------------------------------------------------------------- */
body.daca .woocommerce form .form-row.daca-field-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

/* -------------------------------------------------------------------------
   19b. Correcciones sobre el markup heredado
   ------------------------------------------------------------------------- */

/* WooCommerce y Astra flotan las columnas del checkout al 48%. Aqui el
   reparto lo hace la rejilla, asi que se anulan sin excepcion. */
body.daca .woocommerce .col2-set,
body.daca .woocommerce-page .col2-set {
	width: 100%;
}

body.daca .woocommerce .col2-set .col-1,
body.daca .woocommerce .col2-set .col-2,
body.daca .woocommerce-page .col2-set .col-1,
body.daca .woocommerce-page .col2-set .col-2,
body.daca #customer_details .col-1,
body.daca #customer_details .col-2 {
	float: none !important;
	width: 100% !important;
	margin: 0;
}

/* La segunda columna queda vacia cuando no se pide direccion de envio. */
body.daca #customer_details .col-2:not(:has(.woocommerce-billing-fields)):not(:has(.woocommerce-shipping-fields)):not(:has(.form-row)) {
	display: none;
}

/* Enlaces en reposo: tinta. El ambar llega solo al pasar el cursor. */
body.daca .woocommerce-info a,
body.daca .woocommerce-message a,
body.daca a.showcoupon,
body.daca .woocommerce-privacy-policy-link {
	color: var(--daca-ink);
	font-weight: 600;
	text-decoration: underline;
	text-decoration-color: var(--daca-line-strong);
	text-underline-offset: 3px;
	transition: color var(--daca-t), text-decoration-color var(--daca-t);
}

body.daca .woocommerce-info a:hover,
body.daca .woocommerce-message a:hover,
body.daca a.showcoupon:hover,
body.daca .woocommerce-privacy-policy-link:hover {
	color: var(--daca-accent-deep);
	text-decoration-color: var(--daca-accent);
}

/* Servicios de entrega: una sola opcion no debe ocupar todo el ancho. */
body.daca .notiwoo-fulfillment__services {
	grid-template-columns: repeat(auto-fit, minmax(160px, 240px));
	justify-content: start;
}

/* Dia estrecho, franjas horarias con todo el espacio restante. */
body.daca .notiwoo-fulfillment__schedule {
	grid-template-columns: minmax(150px, 210px) minmax(0, 1fr);
	align-items: start;
	gap: 16px 24px;
}

body.daca .notiwoo-fulfillment__field {
	min-width: 0;
}

/* Franjas en rejilla pareja, no en flujo irregular. */
body.daca .notiwoo-fulfillment__slots {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(86px, 1fr));
	gap: 8px;
	margin: 0;
}

body.daca .notiwoo-fulfillment__slot label {
	justify-content: center;
	width: 100%;
	padding: 9px 8px;
	text-align: center;
}

body.daca .notiwoo-fulfillment__slot label:hover {
	border-color: var(--daca-accent);
	color: var(--daca-accent-deep);
}

body.daca .notiwoo-fulfillment__service label:hover {
	border-color: var(--daca-accent);
}

/* Las notas cierran el bloque sin dejar un hueco muerto debajo. */
body.daca .notiwoo-fulfillment__note:last-child {
	margin-bottom: 0;
}

/* -------------------------------------------------------------------------
   19c. Popup de adiciones de Notiwoo

   Los cuatro colores base (fondo, texto, filas y marca) siguen viniendo del
   panel de Notiwoo. Aqui solo se afinan los tonos que el plugin deriva y que
   quedaban demasiado sucios en una paleta clara, mas la tipografia y el hover.
   ------------------------------------------------------------------------- */
body.daca .notiwoo-options-modal,
body.daca .notiwoo-options-toast {
	/* El plugin mezcla el panel al 8% de la tinta y sale un gris pesado.
	   Se recalcula al 4% para que sea papel, no una losa gris. */
	--nw-panel: #F5F4F2;
	--nw-panel: color-mix(in srgb, var(--nw-surface) 96%, var(--nw-text));
	--nw-row-hover: #F5F4F2;
	--nw-row-hover: color-mix(in srgb, var(--nw-surface) 96%, var(--nw-text));
	--nw-line: #E6E4E0;
	--nw-radius: 20px;
	/* El plugin deriva "deep" como el fondo oscurecido al 86% y lo usa para el
	   degradado del hero. En un popup claro eso pintaba una banda negra bajo la
	   foto, asi que aqui deep es el mismo papel. */
	--nw-deep: #F5F4F2;
	--nw-deep-rgb: 245, 244, 242;
}

/* Nada de letterbox oscuro: la foto llena la caja y lo que sobre es papel. */
body.daca .notiwoo-hero__media {
	background: var(--daca-bg);
}

body.daca .notiwoo-hero__image {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* El degradado existia para leer el titulo encima de la foto. El titulo ya
   vive debajo, sobre la superficie clara, asi que sobra. */
body.daca .notiwoo-hero__scrim {
	display: none !important;
}

body.daca .notiwoo-options-dialog {
	font-family: var(--daca-font-body);
	border: 1px solid var(--daca-line);
	box-shadow: 0 24px 70px rgba(17, 17, 16, 0.28);
}

body.daca .notiwoo-options-modal__backdrop {
	background: rgba(17, 17, 16, 0.55);
}

/* Titulo y precio salen de encima de la foto: quedan sobre la superficie
   clara, en tinta y sin sombra. Funciona igual con foto y sin ella. */
body.daca .notiwoo-hero__copy {
	position: static;
	padding: 18px 20px 0;
	align-items: baseline;
}

body.daca .notiwoo-hero__title {
	font-family: var(--daca-font-display);
	font-weight: 800;
	letter-spacing: -0.03em;
	color: var(--daca-ink);
	text-shadow: none;
}

body.daca .notiwoo-hero__price {
	font-family: var(--daca-font-body);
	font-weight: 600;
	color: var(--daca-ink);
	text-shadow: none;
}

/* Producto sin foto: papel con la marca, igual que en la carta. La inicial
   quedaba en tinta al 30% sobre un fondo casi negro, o sea invisible. */
body.daca .notiwoo-hero__media--empty {
	background: var(--daca-bg);
	aspect-ratio: 16 / 7;
	border-bottom: 1px solid var(--daca-line);
}

body.daca .notiwoo-hero__media--empty .notiwoo-hero__initial {
	display: none;
}

body.daca .notiwoo-hero__media--empty::after {
	content: '';
	position: absolute;
	inset: 0;
	background-image: var(--daca-logo-url);
	background-repeat: no-repeat;
	background-position: center;
	background-size: 22%;
	opacity: 0.3;
	mix-blend-mode: multiply;
}

/* Bloques internos: filete en vez de relleno gris. */
body.daca .notiwoo-summary,
body.daca .notiwoo-quantity,
body.daca .notiwoo-options-comments__input {
	border: 1px solid var(--daca-line);
}

body.daca .notiwoo-summary {
	background: var(--nw-panel);
	border-radius: var(--daca-r-md);
}

body.daca .notiwoo-options-comments__input {
	background: var(--daca-surface);
	border-radius: var(--daca-r-sm);
}

body.daca .notiwoo-options-comments__input:focus {
	border-color: var(--daca-accent);
	box-shadow: var(--daca-focus);
	outline: none;
}

body.daca .notiwoo-summary__title,
body.daca .notiwoo-step__title,
body.daca .notiwoo-options-comments__label {
	color: var(--daca-ink);
}

body.daca .notiwoo-choice {
	border-color: var(--daca-line);
	border-radius: var(--daca-r-sm);
}

body.daca .notiwoo-choice:hover {
	border-color: var(--daca-accent);
}

body.daca .notiwoo-nav {
	background: var(--daca-surface);
	border: 1px solid var(--daca-line);
}

body.daca .notiwoo-nav:hover:not(:disabled) {
	border-color: var(--daca-accent);
	color: var(--daca-accent-deep);
}

body.daca .notiwoo-quantity__button:hover:not(:disabled) {
	color: var(--daca-accent-deep);
}

body.daca .notiwoo-cta:hover:not(:disabled) {
	background: var(--daca-accent-deep);
}

body.daca .notiwoo-options-dialog__close {
	background: rgba(17, 17, 16, 0.55);
}

body.daca .notiwoo-options-dialog__close:hover {
	background: var(--daca-accent-deep);
}

/* -------------------------------------------------------------------------
   19d. Barra de categorias fijada

   Sin sangrado completo el contenido se colaba por los lados de la barra al
   hacer scroll. --daca-vw lo publica daca.js con el ancho real del documento,
   sin contar la barra de desplazamiento, para no provocar scroll horizontal.
   ------------------------------------------------------------------------- */
body.daca .notiwoo-catalog.is-sticky .notiwoo-catalog__nav {
	--daca-bleed: calc((var(--daca-vw, 100vw) - 100%) / 2);
	margin-left: calc(var(--daca-bleed) * -1);
	margin-right: calc(var(--daca-bleed) * -1);
	padding-left: var(--daca-bleed);
	padding-right: var(--daca-bleed);
	background-color: var(--daca-bg);
	box-shadow: none;
	transition: box-shadow var(--daca-t);
}

/* La sombra solo cuando de verdad esta pegada, no en lo alto de la pagina. */
body.daca .daca-header.is-scrolled ~ #content .notiwoo-catalog.is-sticky .notiwoo-catalog__nav {
	box-shadow: var(--daca-shadow-stick);
}

/* Los titulos de seccion no quedan debajo de la cabecera al saltar por anclas. */
body.daca .notiwoo-catalog__section,
body.daca .woocommerce-products-header {
	scroll-margin-top: calc(var(--daca-sticky-top) + 72px);
}

/* -------------------------------------------------------------------------
   19e. Boton de volver arriba de Astra
   ------------------------------------------------------------------------- */
body.daca #ast-scroll-top {
	background-color: var(--daca-ink);
	color: var(--daca-inverse);
	border-radius: var(--daca-r-pill);
	border: 0;
	box-shadow: var(--daca-shadow-float);
	transition: background-color var(--daca-t), transform var(--daca-t);
}

body.daca #ast-scroll-top:hover {
	background-color: var(--daca-accent-deep);
	transform: translateY(-2px);
}

/* -------------------------------------------------------------------------
   20. Entradas al hacer scroll

   La clase .daca-reveal solo la anade daca.js, y solo a lo que aun no esta en
   pantalla. Sin JS, o con movimiento reducido, nada se oculta jamas.
   ------------------------------------------------------------------------- */
body.daca .daca-reveal {
	opacity: 0;
	transform: translateY(14px);
	transition: opacity var(--daca-t-slow), transform var(--daca-t-slow);
	will-change: opacity, transform;
}

body.daca .daca-reveal.is-in {
	opacity: 1;
	transform: none;
}

/* -------------------------------------------------------------------------
   21. Responsive de cabecera y pie
   ------------------------------------------------------------------------- */
@media (max-width: 1024px) {
	body.daca .daca-footer__inner {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 36px;
		padding: 48px 24px 36px;
	}

	body.daca .daca-footer__brand {
		grid-column: 1 / -1;
	}
}

/* Entre 1080 y 1280 la navegacion cabe, pero justa: se aprieta antes de
   colapsar, en lugar de empujar el boton del carrito fuera de la pantalla. */
@media (max-width: 1280px) {
	body.daca .daca-header__inner {
		gap: 18px;
	}

	body.daca .daca-nav--desktop {
		gap: 0;
	}

	body.daca .daca-nav__link {
		padding: 9px 10px;
		font-size: 13px;
	}

	body.daca .daca-nav__link::after {
		left: 10px;
		right: 10px;
	}
}

@media (max-width: 1080px) {
	body.daca .daca-nav--desktop {
		display: none;
	}

	body.daca .daca-header__toggle {
		display: inline-flex;
	}

	body.daca .daca-header__inner {
		gap: 16px;
	}
}

@media (max-width: 640px) {
	body.daca .daca-header__inner {
		padding: 10px 18px;
	}

	body.daca .daca-header__sub {
		display: none;
	}

	body.daca .daca-cart__label {
		display: none;
	}

	body.daca .daca-cart {
		padding: 10px 14px;
	}

	body.daca .daca-header__mobile {
		padding: 8px 18px 16px;
	}

	body.daca .daca-footer__inner {
		grid-template-columns: minmax(0, 1fr);
		gap: 32px;
		padding: 40px 18px 28px;
	}

	body.daca .daca-footer__bottom {
		padding: 18px 18px 24px;
	}

	body.daca .daca-footer {
		margin-top: 56px;
	}
}

/* -------------------------------------------------------------------------
   22. Movimiento reducido
   ------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	body.daca *,
	body.daca *::before,
	body.daca *::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}

	/* Red de seguridad: nada puede quedarse oculto ni desplazado. */
	body.daca .daca-reveal {
		opacity: 1 !important;
		transform: none !important;
	}

	body.daca ul.products li.product:hover,
	body.daca ul.products li.product:hover img,
	body.daca .daca-cart:hover,
	body.daca .daca-header__brand:hover .daca-header__logo,
	body.daca .woocommerce a.button:hover,
	body.daca .woocommerce button.button:hover {
		transform: none;
	}
}


/* Carrito movil: filas legibles y sin importes comprimidos. */
@media (max-width: 640px) {
	body.daca tr.woocommerce-cart-form__cart-item {
		grid-template-columns: 64px minmax(0, 1fr) 36px;
		grid-template-areas:
			'thumb name remove'
			'thumb price price'
			'qty qty qty'
			'subtotal subtotal subtotal';
		gap: 8px 12px;
		align-items: center;
		padding: 18px 0;
	}

	body.daca td.product-name {
		align-self: start;
		padding: 2px 4px 0 0 !important;
		text-align: left !important;
	}

	body.daca td.product-name::before {
		display: none !important;
	}

	body.daca td.product-price,
	body.daca td.product-quantity,
	body.daca td.product-subtotal {
		align-items: center;
		display: flex !important;
		justify-content: space-between;
		text-align: right !important;
		width: 100%;
	}

	body.daca td.product-price {
		grid-area: price;
	}

	body.daca td.product-quantity {
		grid-area: qty;
		border-top: 1px solid var(--daca-line);
		margin-top: 4px;
		padding-top: 14px !important;
	}

	body.daca td.product-subtotal {
		grid-area: subtotal;
		font-size: 18px;
		padding-top: 2px !important;
	}

	body.daca td.product-price::before,
	body.daca td.product-quantity::before,
	body.daca td.product-subtotal::before {
		color: var(--daca-ink);
		float: none !important;
		font-family: var(--daca-font-body);
		font-size: 14px;
		font-weight: 700;
		margin-right: 16px;
	}

	body.daca td.product-price .amount,
	body.daca td.product-subtotal .amount {
		white-space: nowrap;
	}

	body.daca td.product-quantity .quantity {
		margin-left: auto;
	}

	body.daca td.product-remove {
		align-self: start;
	}

	body.daca td.actions .coupon {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		width: 100%;
	}

	body.daca td.actions .coupon input#coupon_code {
		min-width: 0;
		width: 100%;
	}

	body.daca td.actions .coupon button {
		min-width: 112px;
		white-space: nowrap;
	}
}

@media (max-width: 360px) {
	body.daca td.actions .coupon {
		grid-template-columns: minmax(0, 1fr);
	}

	body.daca td.actions .coupon button {
		min-width: 0;
		width: 100%;
	}
}


@media (max-width: 640px) {
	body.daca td.actions .coupon {
		display: grid !important;
	}
}

@media (max-width: 640px) {
	body.daca td.actions .coupon input#coupon_code,
	body.daca td.actions .coupon button {
		float: none !important;
		margin: 0 !important;
		width: 100% !important;
	}
}


/* En la pagina del carrito el acceso flotante es redundante y tapa acciones. */
body.woocommerce-cart.daca #moderncart-floating-cart {
	display: none !important;
}

@media (min-width: 361px) and (max-width: 640px) {
	body.daca td.actions .coupon {
		display: flex !important;
		flex-wrap: nowrap;
	}

	body.daca td.actions .coupon input#coupon_code {
		flex: 1 1 auto;
		width: auto !important;
	}

	body.daca td.actions .coupon button {
		flex: 0 0 auto;
		min-width: 112px;
		width: auto !important;
	}
}


/* Carrito tablet: reutiliza la tarjeta movil para evitar columnas comprimidas. */
@media (min-width: 641px) and (max-width: 860px) {
  body.daca tr.woocommerce-cart-form__cart-item {
    grid-template-columns: 84px minmax(0, 1fr) 36px;
    grid-template-areas:
      'thumb name remove'
      'thumb price price'
      'qty qty qty'
      'subtotal subtotal subtotal';
    gap: 8px 14px;
    align-items: center;
    padding: 18px 0;
  }

  body.daca td.product-name {
    align-self: start;
    padding: 2px 4px 0 0 !important;
    text-align: left !important;
  }

  body.daca td.product-name::before {
    display: none !important;
  }

  body.daca td.product-price,
  body.daca td.product-quantity,
  body.daca td.product-subtotal {
    align-items: center;
    display: flex !important;
    justify-content: space-between;
    text-align: right !important;
    width: 100%;
  }

  body.daca td.product-price { grid-area: price; }

  body.daca td.product-quantity {
    grid-area: qty;
    border-top: 1px solid var(--daca-border);
    margin-top: 4px;
    padding-top: 14px !important;
  }

  body.daca td.product-subtotal {
    grid-area: subtotal;
    font-size: 18px;
    padding-top: 2px !important;
  }

  body.daca td.product-price::before,
  body.daca td.product-quantity::before,
  body.daca td.product-subtotal::before {
    float: none !important;
    font-family: var(--daca-font-body);
    font-size: 14px;
    font-weight: 700;
    margin-right: 16px;
  }

  body.daca td.product-price .amount,
  body.daca td.product-subtotal .amount {
    white-space: nowrap;
  }

  body.daca td.product-quantity .quantity {
    margin-left: auto;
  }

  body.daca td.product-remove {
    align-self: start;
  }
}

/* Carrito: cupón legible y selector de cantidad con botones menos/más. */
body.daca .woocommerce-cart-form .coupon button[name='apply_coupon'] {
  box-sizing: border-box;
  min-width: 132px !important;
  overflow: visible;
  padding-left: 14px !important;
  padding-right: 14px !important;
  text-overflow: clip;
  width: auto !important;
}

body.daca .woocommerce-cart-form .daca-qty {
  align-items: center;
  background: #fff;
  border: 1px solid var(--daca-border);
  border-radius: 999px;
  display: grid !important;
  grid-template-columns: 38px 50px 38px;
  height: 46px;
  margin: 0;
  overflow: hidden;
  width: 126px;
}

body.daca .woocommerce-cart-form .daca-qty input.qty {
  -moz-appearance: textfield;
  appearance: textfield;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: var(--daca-ink) !important;
  font-weight: 700;
  height: 44px !important;
  margin: 0 !important;
  padding: 0 !important;
  text-align: center;
  width: 50px !important;
}

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

body.daca .woocommerce-cart-form button.daca-qty__button {
  align-items: center;
  appearance: none;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: var(--daca-ink) !important;
  cursor: pointer;
  display: flex;
  font-family: var(--daca-font-body);
  font-size: 22px;
  font-weight: 500;
  height: 44px;
  justify-content: center;
  line-height: 1;
  margin: 0 !important;
  min-width: 0 !important;
  padding: 0 !important;
  transition: background-color 150ms ease, color 150ms ease;
  width: 38px !important;
}

body.daca .woocommerce-cart-form button.daca-qty__button:hover,
body.daca .woocommerce-cart-form button.daca-qty__button:focus-visible {
  background: var(--daca-paper) !important;
  color: var(--daca-accent-deep) !important;
}

body.daca .woocommerce-cart-form button.daca-qty__button:focus-visible {
  box-shadow: inset 0 0 0 2px var(--daca-accent) !important;
  outline: 0;
}

body.daca .woocommerce-cart-form button.daca-qty__button:disabled {
  color: var(--daca-muted) !important;
  cursor: not-allowed;
  opacity: 0.45;
}

@media (max-width: 360px) {
  body.daca .woocommerce-cart-form .coupon button[name='apply_coupon'] {
    min-width: 0 !important;
    width: 100% !important;
  }
}


/* Loader de entrada DACA: el logo real se arma letra por letra en DA / CA. */
.daca-loader {
  align-items: center;
  animation: daca-loader-failsafe 1ms linear 3s forwards;
  background: #fff;
  color: #111110;
  display: grid;
  inset: 0;
  justify-items: center;
  overflow: hidden;
  position: fixed;
  z-index: 2147483000;
}

.daca-loader--skip {
  display: none !important;
}

html.daca-loader-active,
html.daca-loader-active body {
  overflow: hidden !important;
}

.daca-loader__content {
  align-items: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  transform: translateY(-2vh);
}

.daca-loader__stage {
  animation: daca-loader-mark-settle 480ms cubic-bezier(.2,.85,.25,1) 1.02s both;
  height: clamp(116px, 18vw, 150px);
  position: relative;
  width: clamp(116px, 18vw, 150px);
}

.daca-loader__piece,
.daca-loader__complete {
  inset: 0;
  pointer-events: none;
  position: absolute;
}

.daca-loader__piece img,
.daca-loader__complete {
  display: block;
  height: 100%;
  object-fit: contain;
  width: 100%;
}

.daca-loader__piece {
  animation: daca-loader-letter-in 460ms cubic-bezier(.16,1,.3,1) both;
  opacity: 0;
  transform: translate3d(var(--loader-x), var(--loader-y), 0) scale(.72);
  will-change: opacity, transform;
}

.daca-loader__piece--d {
  --loader-x: -16px;
  --loader-y: -16px;
  animation-delay: 80ms;
  clip-path: inset(0 50% 50% 0);
  transform-origin: 25% 25%;
}

.daca-loader__piece--a-top {
  --loader-x: 16px;
  --loader-y: -16px;
  animation-delay: 280ms;
  clip-path: inset(0 0 50% 50%);
  transform-origin: 75% 25%;
}

.daca-loader__piece--c {
  --loader-x: -16px;
  --loader-y: 16px;
  animation-delay: 480ms;
  clip-path: inset(50% 50% 0 0);
  transform-origin: 25% 75%;
}

.daca-loader__piece--a-bottom {
  --loader-x: 16px;
  --loader-y: 16px;
  animation-delay: 680ms;
  clip-path: inset(50% 0 0 50%);
  transform-origin: 75% 75%;
}

.daca-loader__complete {
  animation: daca-loader-complete-in 300ms ease-out 1.02s both;
  opacity: 0;
  z-index: 2;
}

.daca-loader__caption {
  animation: daca-loader-caption-in 420ms cubic-bezier(.2,.8,.2,1) 880ms both;
  font-family: var(--daca-font-body);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .32em;
  margin-top: 17px;
  padding-left: .32em;
  text-transform: uppercase;
}

.daca-loader__line {
  animation: daca-loader-line-in 520ms cubic-bezier(.16,1,.3,1) 1.08s both;
  background: currentColor;
  height: 2px;
  margin-top: 12px;
  transform: scaleX(0);
  transform-origin: center;
  width: 36px;
}

.daca-loader.is-done {
  animation: daca-loader-out 480ms cubic-bezier(.55,0,1,.45) forwards;
  pointer-events: none;
}

@keyframes daca-loader-letter-in {
  0% {
    opacity: 0;
    transform: translate3d(var(--loader-x), var(--loader-y), 0) scale(.72);
  }
  62% {
    opacity: 1;
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}

@keyframes daca-loader-complete-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes daca-loader-mark-settle {
  0% { transform: scale(1); }
  56% { transform: scale(1.055); }
  100% { transform: scale(1); }
}

@keyframes daca-loader-caption-in {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes daca-loader-line-in {
  from { transform: scaleX(0); }
  to { transform: scaleX(1); }
}

@keyframes daca-loader-out {
  0% {
    opacity: 1;
    visibility: visible;
  }
  100% {
    opacity: 0;
    visibility: hidden;
  }
}

@keyframes daca-loader-failsafe {
  to {
    pointer-events: none;
    visibility: hidden;
  }
}

@media (prefers-reduced-motion: reduce) {
  .daca-loader {
    animation-delay: 450ms;
  }

  .daca-loader__piece,
  .daca-loader__stage,
  .daca-loader__caption,
  .daca-loader__line {
    animation: none !important;
  }

  .daca-loader__piece {
    display: none;
  }

  .daca-loader__complete {
    animation: none !important;
    opacity: 1;
  }

  .daca-loader__caption {
    opacity: 1;
  }

  .daca-loader__line {
    transform: scaleX(1);
  }
}


/* -------------------------------------------------------------------------
   22. Sistema de espaciado responsive
   Unifica gutters y ritmo vertical entre catálogo, carrito, checkout y 404.
   ------------------------------------------------------------------------- */
body.daca {
  --daca-page-gutter: clamp(18px, 3vw, 24px);
  --daca-section-space: clamp(40px, 6vw, 64px);
  --daca-stack-space: clamp(24px, 4vw, 40px);
}

body.daca .ast-container {
  box-sizing: border-box;
  max-width: var(--daca-maxw);
  padding-left: var(--daca-page-gutter);
  padding-right: var(--daca-page-gutter);
}

@media (max-width: 1024px) {
  body.daca .woocommerce-products-header {
    padding: 40px 0 32px;
  }

  body.daca .notiwoo-catalog__nav {
    margin-bottom: 40px;
  }

  body.daca .notiwoo-catalog__panel > ul.products {
    margin-bottom: 48px;
  }

  body.daca .daca-404 {
    gap: 32px;
    padding: 48px 0 64px;
  }
}

@media (max-width: 640px) {
  body.daca {
    --daca-page-gutter: 18px;
  }

  body.post-type-archive-product.daca #primary,
  body.tax-product_cat.daca #primary,
  body.woocommerce-cart.daca #primary,
  body.woocommerce-checkout.daca #primary,
  body.error404.daca #primary {
    margin-top: 0;
    margin-bottom: 0;
  }

  body.daca .woocommerce-products-header {
    padding: 32px 0 28px;
  }

  body.daca .daca-masthead__tagline {
    margin-top: 12px;
  }

  body.daca .notiwoo-catalog.is-sticky .notiwoo-catalog__nav {
    box-sizing: border-box;
    margin-left: calc(var(--daca-page-gutter) * -1);
    margin-right: calc(var(--daca-page-gutter) * -1);
    padding-left: var(--daca-page-gutter);
    padding-right: var(--daca-page-gutter);
    width: auto;
  }

  body.daca .notiwoo-catalog__nav {
    margin-bottom: 32px;
  }

  body.daca .notiwoo-catalog__section-head {
    margin-bottom: 20px;
  }

  body.daca .notiwoo-catalog__panel > ul.products {
    margin-bottom: 40px;
  }

  body.woocommerce-cart.daca .entry-header,
  body.woocommerce-checkout.daca .entry-header {
    padding: 32px 0 0;
  }

  body.woocommerce-cart.daca .entry-title,
  body.woocommerce-checkout.daca .entry-title {
    margin-bottom: 24px;
  }

  body.woocommerce-cart.daca .entry-content > .woocommerce,
  body.woocommerce-checkout.daca .entry-content > .woocommerce {
    padding-bottom: 48px;
  }

  body.daca .return-to-shop {
    margin-bottom: 48px;
  }

  body.error404.daca .ast-container {
    width: 100%;
  }

  body.daca .daca-404 {
    gap: 28px;
    min-height: 0;
    padding: 36px 0 52px;
  }

  body.daca .daca-404__code {
    margin-bottom: 12px;
  }

  body.daca .daca-404__title {
    margin-bottom: 16px;
  }

  body.daca .daca-404__text {
    margin-bottom: 24px;
  }

  body.daca .daca-404__actions {
    margin-bottom: 32px;
  }
}


@media (max-width: 640px) {
  body.error404.daca #primary {
    box-sizing: border-box;
    padding: 0;
    width: 100% !important;
  }
}


@media (max-width: 640px) {
  body.error404.daca .ast-container {
    padding-left: var(--daca-page-gutter) !important;
    padding-right: var(--daca-page-gutter) !important;
  }
}


/* Alineación global: cabecera, contenido y pie comparten el mismo ancho. */
body.daca .ast-container {
  max-width: var(--daca-maxw) !important;
}

@media (min-width: 641px) {
  body.daca .notiwoo-catalog.is-sticky .notiwoo-catalog__nav {
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
    width: auto;
  }
}
