/* WooCommerce en modo oscuro, mobile first. Usa los tokens del tema. */

:root {
	--dsu-tap: 48px;
}

/* ---------- Tablas de planes (shortcodes) ---------- */

.dsu-plans { position: relative; }
.dsu-plans > input { position: absolute; opacity: 0; pointer-events: none; }
.dsu-plans__toggle {
	display: inline-flex; padding: 4px; gap: 4px; margin-bottom: 1.5rem;
	background: var(--dsu-surface); border: 1px solid var(--dsu-line); border-radius: 999px;
}
.dsu-plans__toggle label {
	min-height: 40px; display: inline-flex; align-items: center; gap: .5rem; padding: 0 1.1rem;
	border-radius: 999px; cursor: pointer; font-size: var(--wp--preset--font-size--sm); color: var(--dsu-crater); font-weight: 500;
	transition: background-color var(--dsu-ease), color var(--dsu-ease);
}
.dsu-plans__toggle label span { font-family: var(--wp--preset--font-family--mono); font-size: var(--wp--preset--font-size--xs); color: var(--dsu-amber); }
.dsu-plans__m:checked ~ .dsu-plans__toggle label[for$="-m"],
.dsu-plans__y:checked ~ .dsu-plans__toggle label[for$="-y"] { background: var(--dsu-moon); color: var(--dsu-night); }
.dsu-plans__y:checked ~ .dsu-plans__toggle label[for$="-y"] span { color: var(--dsu-night); }
.dsu-plans__m:focus-visible ~ .dsu-plans__toggle label[for$="-m"],
.dsu-plans__y:focus-visible ~ .dsu-plans__toggle label[for$="-y"] { outline: 2px solid var(--dsu-amber); outline-offset: 2px; }

.dsu-plans__list { list-style: none; padding: 0; margin: 0; display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .dsu-plans__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .dsu-plans__list { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.dsu-plan {
	margin: 0; display: flex; flex-direction: column; gap: 1.25rem;
	padding: 1.5rem; background: var(--dsu-surface); border: 1px solid var(--dsu-line); border-radius: var(--dsu-r-lg);
}
.dsu-plan__head h3 { margin: 0; font-size: var(--wp--preset--font-size--lg); }
.dsu-plan__price { margin: .35rem 0 0; color: var(--dsu-moon); font-size: 2rem; font-weight: 600; letter-spacing: -0.03em; line-height: 1.1; }
.dsu-plan__price small { font-size: var(--wp--preset--font-size--sm); color: var(--dsu-dim); font-weight: 400; margin-left: .25rem; letter-spacing: 0; }
.dsu-plan__specs { display: grid; grid-template-columns: auto 1fr; gap: .45rem 1rem; margin: 0; font-size: var(--wp--preset--font-size--sm); }
.dsu-plan__specs dt { font-family: var(--wp--preset--font-family--mono); font-size: var(--wp--preset--font-size--xs); color: var(--dsu-dim); text-transform: uppercase; letter-spacing: .05em; padding-top: .15rem; }
.dsu-plan__specs dd { margin: 0; color: var(--dsu-moon); text-align: right; }
.dsu-plan__cta {
	margin-top: auto; min-height: var(--dsu-tap); display: flex; align-items: center; justify-content: center;
	border-radius: 999px; background: var(--dsu-amber); color: var(--dsu-night); font-weight: 600; text-decoration: none; font-size: var(--wp--preset--font-size--sm);
}
.dsu-plan__cta:hover { background: var(--wp--preset--color--amber-soft); color: var(--dsu-night); }
.dsu-plan__price--y, .dsu-plan__cta--y { display: none; }
.dsu-plans__y:checked ~ .dsu-plans__list .dsu-plan__price--m,
.dsu-plans__y:checked ~ .dsu-plans__list .dsu-plan__cta--m { display: none; }
.dsu-plans__y:checked ~ .dsu-plans__list .dsu-plan__price--y { display: block; }
.dsu-plans__y:checked ~ .dsu-plans__list .dsu-plan__cta--y { display: flex; }
.dsu-plans__foot { margin-top: 1rem; font-size: var(--wp--preset--font-size--sm); color: var(--dsu-dim); }

.dsu-mailtable { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--dsu-line); border-radius: var(--dsu-r-md); }
.dsu-mailtable table { width: 100%; min-width: 620px; border-collapse: collapse; font-size: var(--wp--preset--font-size--sm); }
.dsu-mailtable th, .dsu-mailtable td { padding: .9rem 1rem; border-bottom: 1px solid var(--dsu-line); text-align: left; white-space: nowrap; }
.dsu-mailtable thead th { font-family: var(--wp--preset--font-family--mono); font-size: var(--wp--preset--font-size--xs); color: var(--dsu-dim); text-transform: uppercase; letter-spacing: .05em; font-weight: 500; background: var(--dsu-surface); }
.dsu-mailtable tbody th { color: var(--dsu-moon); position: sticky; left: 0; background: var(--dsu-night); }
.dsu-mailtable td a { display: inline-flex; min-height: 40px; align-items: center; padding: 0 .75rem; margin-left: -.75rem; border-radius: var(--dsu-r-sm); color: var(--dsu-moon); text-decoration: none; font-weight: 500; }
.dsu-mailtable td a:hover { background: var(--dsu-surface-2); color: var(--dsu-amber); }
.dsu-mailtable tr:last-child > * { border-bottom: 0; }

/* ---------- Base WooCommerce / bloques ---------- */

.woocommerce, .wc-block-components-form, .wp-block-woocommerce-cart, .wp-block-woocommerce-checkout { color: var(--dsu-crater); }
.wc-block-components-title, .wc-block-components-checkout-step__title, .wc-block-cart__totals-title { color: var(--dsu-moon) !important; }

.wc-block-components-text-input input,
.wc-block-components-textarea,
.wc-blocks-components-select__select,
.wc-block-components-combobox .components-combobox-control input,
.woocommerce form .input-text, .woocommerce form select {
	background: var(--dsu-night) !important; color: var(--dsu-moon) !important;
	border: 1px solid var(--dsu-line) !important; border-radius: var(--dsu-r-sm) !important; min-height: var(--dsu-tap);
	font-size: 16px !important; /* evita el zoom automático de iOS */
}
.wc-block-components-text-input label, .wc-blocks-components-select__label { color: var(--dsu-dim) !important; }
.wc-block-components-text-input.is-active label { color: var(--dsu-crater) !important; }
.wc-block-components-text-input input:focus, .wc-blocks-components-select__select:focus { border-color: var(--dsu-amber) !important; box-shadow: 0 0 0 3px color-mix(in srgb, var(--dsu-amber) 22%, transparent) !important; }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox] { background: var(--dsu-night); border-color: var(--dsu-line); width: 22px; height: 22px; }
.wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: var(--dsu-night); }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]:checked { background: var(--dsu-amber); border-color: var(--dsu-amber); }

.wc-block-components-button:not(.is-link),
.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.single_add_to_cart_button, .wp-block-button.wc-block-components-product-button .wp-block-button__link {
	background: var(--dsu-amber) !important; color: var(--dsu-night) !important; border: 0 !important;
	border-radius: 999px !important; min-height: var(--dsu-tap); font-weight: 600 !important;
}
.wc-block-components-button:not(.is-link):hover, .single_add_to_cart_button:hover { background: var(--wp--preset--color--amber-soft) !important; }

.wc-block-components-panel, .wc-block-components-totals-wrapper, .wc-block-components-order-summary,
.wp-block-woocommerce-checkout-order-summary-block, .wc-block-components-sidebar .wc-block-components-panel {
	border-color: var(--dsu-line) !important;
}
.wp-block-woocommerce-checkout-order-summary-block, .wc-block-cart__sidebar .wp-block-woocommerce-cart-order-summary-block {
	background: var(--dsu-surface); border: 1px solid var(--dsu-line) !important; border-radius: var(--dsu-r-lg); padding: 1rem 1.25rem;
}
.wc-block-components-totals-item__label, .wc-block-components-product-name { color: var(--dsu-moon) !important; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label { color: var(--dsu-moon) !important; font-size: var(--wp--preset--font-size--lg) !important; }
.wc-block-components-product-metadata, .wc-block-components-product-details { color: var(--dsu-dim); font-size: var(--wp--preset--font-size--xs); }
.wc-block-components-radio-control__option, .wc-block-components-radio-control-accordion-option { border-color: var(--dsu-line) !important; }
.wc-block-components-radio-control__input { background: var(--dsu-night); border-color: var(--dsu-crater); }
.wc-block-components-radio-control__input:checked::before { background: var(--dsu-amber); }
.wc-block-components-notice-banner { background: var(--dsu-surface) !important; color: var(--dsu-moon) !important; border-color: var(--dsu-line) !important; }
.wc-block-components-quantity-selector { border-color: var(--dsu-line) !important; border-radius: var(--dsu-r-sm); }
.wc-block-components-quantity-selector input { color: var(--dsu-moon) !important; background: transparent; }
.wc-block-components-quantity-selector button { color: var(--dsu-moon) !important; min-width: 40px; }
.wc-block-components-address-card { border-color: var(--dsu-line) !important; background: var(--dsu-surface); }
.wc-block-components-order-summary-item__quantity { background: var(--dsu-moon); color: var(--dsu-night); box-shadow: none; }
.dsu-checkout-note { margin-top: .75rem; font-size: var(--wp--preset--font-size--xs); color: var(--dsu-dim); }

/* Precios */
.woocommerce .price, .wc-block-components-product-price, .woocommerce-Price-amount { color: var(--dsu-moon); }
.woocommerce .price del, .wc-block-components-product-price del { color: var(--dsu-dim); opacity: 1; }
.woocommerce .price ins, .wc-block-components-product-price ins { text-decoration: none; color: var(--dsu-amber); }
.woocommerce-price-suffix { font-size: var(--wp--preset--font-size--xs); color: var(--dsu-dim); margin-left: .35rem; }

/* ---------- Catálogo ---------- */

.wc-block-product-template, ul.products { gap: 1rem !important; }
.wc-block-product, li.product {
	background: var(--dsu-surface); border: 1px solid var(--dsu-line); border-radius: var(--dsu-r-lg);
	padding: 1.25rem !important; display: flex; flex-direction: column; gap: .5rem;
}
.wc-block-product .wp-block-post-title a, li.product .woocommerce-loop-product__title { color: var(--dsu-moon); text-decoration: none; font-size: var(--wp--preset--font-size--lg); }
.wc-block-product .wp-block-post-excerpt, .wc-block-product .wp-block-post-excerpt p { font-size: var(--wp--preset--font-size--sm); color: var(--dsu-crater); }
.wc-block-product img, li.product img { border-radius: var(--dsu-r-md); background: var(--dsu-night); }
.wc-block-product .wp-block-button { margin-top: auto; }

/* ---------- Ficha de producto ---------- */

.single-product .woocommerce-product-gallery img { border-radius: var(--dsu-r-lg); border: 1px solid var(--dsu-line); }
.single-product .woocommerce-product-gallery__trigger { display: none; }
.single-product .product_title, .single-product .wp-block-post-title { color: var(--dsu-moon); }
.single-product .woocommerce-variation-price .price, .single-product .wp-block-woocommerce-product-price { font-size: 1.75rem; font-weight: 600; letter-spacing: -0.02em; }
.single-product table.variations { width: 100%; border: 0; }
.single-product table.variations th, .single-product table.variations td { display: block; padding: 0 0 .4rem; text-align: left; border: 0; }
.single-product table.variations label { color: var(--dsu-moon); font-weight: 500; }
.single-product table.variations select { width: 100%; }
.single-product .reset_variations { color: var(--dsu-dim); font-size: var(--wp--preset--font-size--xs); }
.single-product .quantity .qty { min-height: var(--dsu-tap); width: 5rem; background: var(--dsu-night); color: var(--dsu-moon); border: 1px solid var(--dsu-line); border-radius: var(--dsu-r-sm); }
.single-product form.cart { display: grid; gap: 1rem; }
.single-product .single_add_to_cart_button { width: 100%; }
.woocommerce-tabs, .wc-tabs-wrapper { border-top: 1px solid var(--dsu-line); margin-top: 2rem; padding-top: 1rem; }
.woocommerce-tabs ul.tabs { display: none; }
.product_meta { font-size: var(--wp--preset--font-size--xs); color: var(--dsu-dim); font-family: var(--wp--preset--font-family--mono); }
.product_meta a { color: var(--dsu-crater); }

/* Barra de compra fija en celular */
@media (max-width: 781px) {
	.single-product form.cart .woocommerce-variation-add-to-cart,
	.single-product form.cart:not(.variations_form) {
		position: sticky; bottom: 0; z-index: 30; padding: .75rem 0 calc(.75rem + env(safe-area-inset-bottom));
		background: linear-gradient(to top, var(--dsu-night) 75%, transparent);
	}
	.dsu-wa { bottom: calc(5.5rem + env(safe-area-inset-bottom)); }
}

/* ---------- Mi cuenta ---------- */

.woocommerce-account .woocommerce { display: grid; gap: 2rem; }
@media (min-width: 900px) { .woocommerce-account .woocommerce { grid-template-columns: 220px minmax(0, 1fr); } }
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0; display: flex; gap: .5rem; overflow-x: auto; }
@media (min-width: 900px) { .woocommerce-MyAccount-navigation ul { flex-direction: column; } }
.woocommerce-MyAccount-navigation a {
	display: flex; align-items: center; min-height: 44px; padding: 0 1rem; white-space: nowrap;
	border: 1px solid var(--dsu-line); border-radius: 999px; text-decoration: none; color: var(--dsu-crater); font-size: var(--wp--preset--font-size--sm);
}
.woocommerce-MyAccount-navigation .is-active a { background: var(--dsu-moon); color: var(--dsu-night); border-color: var(--dsu-moon); }
.woocommerce table.shop_table { width: 100%; border-collapse: collapse; border: 1px solid var(--dsu-line); border-radius: var(--dsu-r-md); overflow: hidden; font-size: var(--wp--preset--font-size--sm); }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { border-bottom: 1px solid var(--dsu-line); padding: .8rem; text-align: left; }
.woocommerce table.shop_table th { color: var(--dsu-moon); }
@media (max-width: 640px) {
	.woocommerce table.shop_table_responsive thead { display: none; }
	.woocommerce table.shop_table_responsive tr { display: block; border-bottom: 1px solid var(--dsu-line); padding: .5rem 0; }
	.woocommerce table.shop_table_responsive td { display: flex; justify-content: space-between; gap: 1rem; border: 0; padding: .4rem .8rem; }
	.woocommerce table.shop_table_responsive td::before { content: attr(data-title); color: var(--dsu-dim); font-family: var(--wp--preset--font-family--mono); font-size: var(--wp--preset--font-size--xs); text-transform: uppercase; }
}
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-notices-wrapper > * {
	background: var(--dsu-surface); color: var(--dsu-moon); border: 1px solid var(--dsu-line); border-radius: var(--dsu-r-md); padding: 1rem 1.25rem; list-style: none;
}
.woocommerce form .form-row label { color: var(--dsu-moon); }
.woocommerce form .form-row { margin-bottom: 1rem; }

/* Carrito en el encabezado */
.dsu-header .wc-block-mini-cart__button { color: var(--dsu-crater); min-height: 40px; }
.dsu-header .wc-block-mini-cart__button:hover { color: var(--dsu-moon); }
.wc-block-mini-cart__badge { background: var(--dsu-amber) !important; color: var(--dsu-night) !important; }
.wc-block-mini-cart__drawer .components-modal__content, .wc-block-mini-cart__drawer .wc-block-mini-cart__template-part { background: var(--dsu-night); color: var(--dsu-crater); }

/* Selector de periodicidad (dsu-subscriptions) con los colores del tema */
.dsu-schemes { --dsu-sub-line: var(--dsu-line); --dsu-sub-accent: var(--dsu-amber); --dsu-sub-selected: var(--dsu-surface); --dsu-sub-radius: var(--dsu-r-md); }
.dsu-schemes legend { color: var(--dsu-moon); }
.dsu-scheme { color: var(--dsu-moon); background: var(--dsu-night); }
.dsu-scheme__price .woocommerce-Price-amount { color: var(--dsu-moon); }
.dsu-scheme-note { color: var(--dsu-dim); opacity: 1; }
