:root {
	--soporte73-woo-accent: #1d63ed;
	--soporte73-woo-accent-dark: #164fc2;
	--soporte73-woo-navy: #10213b;
	--soporte73-woo-text: #40506a;
	--soporte73-woo-muted: #6b7890;
	--soporte73-woo-border: #dfe6ef;
	--soporte73-woo-soft: #f5f8fc;
	--soporte73-woo-radius: 16px;
}

/* Contenedor y tipografía comercial */
body.woocommerce .site-main {
	--theme-normal-container-max-width: 1480px;
	--theme-block-max-width: 1480px;
	--theme-container-edge-spacing: calc(100vw - 48px);
	--theme-font-family: var(--theme-font-stack-default, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif);
	--theme-form-font-family: var(--theme-font-stack-default, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif);
	font-family: var(--theme-font-stack-default, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif);
}

/* Catálogo y categorías */
body.woocommerce [data-products] {
	--grid-columns-gap: 22px;
	--grid-rows-gap: 28px;
}

body.woocommerce [data-products] .product {
	align-items: stretch;
	overflow: hidden;
	min-width: 0;
	padding: 16px;
	text-align: start;
	background: #ffffff;
	border: 1px solid var(--soporte73-woo-border);
	border-radius: var(--soporte73-woo-radius);
	box-shadow: 0 8px 26px rgba(16, 33, 59, 0.06);
	transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

body.woocommerce [data-products] .product:hover {
	border-color: rgba(29, 99, 237, 0.38);
	box-shadow: 0 16px 38px rgba(16, 33, 59, 0.11);
	transform: translateY(-2px);
}

body.woocommerce [data-products] .product > figure {
	width: calc(100% + 32px);
	margin: -16px -16px 4px;
	background: var(--soporte73-woo-soft);
}

body.woocommerce [data-products] .product > figure .ct-media-container {
	border-radius: var(--soporte73-woo-radius) var(--soporte73-woo-radius) 0 0;
}

body.woocommerce [data-products] .woocommerce-loop-product__title {
	font-size: 16px;
	font-weight: 600;
	line-height: 1.4;
}

body.woocommerce [data-products] .woocommerce-loop-product__title a {
	color: var(--soporte73-woo-navy);
}

body.woocommerce [data-products] .woocommerce-loop-product__title a:hover {
	color: var(--soporte73-woo-accent);
}

.soporte73-product-brand {
	color: var(--soporte73-woo-muted);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.4;
	text-transform: uppercase;
}

.soporte73-product-brand a {
	color: inherit;
	text-decoration: none;
}

.soporte73-product-brand a:hover {
	color: var(--soporte73-woo-accent);
}

body.woocommerce [data-products] .price {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 4px 8px;
	color: var(--soporte73-woo-navy);
	font-size: 17px;
	font-weight: 700;
}

body.woocommerce [data-products] .price del {
	color: var(--soporte73-woo-muted);
	font-size: 13px;
	font-weight: 500;
}

body.woocommerce [data-products] .price ins {
	color: var(--soporte73-woo-accent);
}

.soporte73-card-stock,
body.woocommerce [data-products] .ct-woo-card-stock {
	font-size: 12px;
	font-weight: 650;
	line-height: 1.35;
}

.soporte73-card-stock .stock,
body.woocommerce [data-products] .ct-woo-card-stock .stock {
	margin: 0;
}

.soporte73-card-stock .in-stock,
body.woocommerce [data-products] .ct-woo-card-stock .in-stock {
	color: #167647;
}

.soporte73-card-stock .out-of-stock,
body.woocommerce [data-products] .ct-woo-card-stock .out-of-stock {
	color: #a33a3a;
}

body.woocommerce [data-products] .ct-woo-card-actions {
	width: 100%;
	margin-top: auto;
	margin-inline: 0;
	margin-bottom: 0;
}

body.woocommerce [data-products] .ct-woo-card-actions .button,
body.woocommerce [data-products] .ct-woo-card-actions .added_to_cart {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 44px;
	padding: 10px 16px;
	border-radius: 9px;
	font-size: 13px;
	font-weight: 700;
	text-align: center;
}

body.woocommerce [data-products] .ct-woo-card-actions .button {
	color: #ffffff;
	background: var(--soporte73-woo-accent);
	border-color: var(--soporte73-woo-accent);
}

body.woocommerce [data-products] .ct-woo-card-actions .button:hover {
	color: #ffffff;
	background: var(--soporte73-woo-accent-dark);
	border-color: var(--soporte73-woo-accent-dark);
}

body.woocommerce [data-products] .ct-woo-card-actions .added_to_cart {
	color: var(--soporte73-woo-accent);
	background: #edf4ff;
}

body.woocommerce [data-products] .onsale,
body.woocommerce [data-products] .out-of-stock-badge {
	min-height: 28px;
	padding: 6px 10px;
	border-radius: 8px;
	font-size: 11px;
	font-weight: 750;
	letter-spacing: 0.04em;
}

body.woocommerce [data-products] .product:focus-within {
	border-color: var(--soporte73-woo-accent);
	box-shadow: 0 0 0 3px rgba(29, 99, 237, 0.14);
}

/* Ficha individual */
body.single-product .product-entry-wrapper {
	--product-gallery-width: 49%;
	gap: clamp(48px, 4vw, 64px);
}

body.single-product .woocommerce-product-gallery {
	padding: clamp(12px, 2vw, 20px);
	background: var(--soporte73-woo-soft);
	border: 1px solid var(--soporte73-woo-border);
	border-radius: var(--soporte73-woo-radius);
}

body.single-product .woocommerce-product-gallery .ct-media-container {
	--border-radius: 12px;
}

body.single-product .entry-summary-items {
	--product-element-spacing: 18px;
}

body.single-product .entry-summary .product_title {
	color: var(--soporte73-woo-navy);
	font-family: var(--theme-font-stack-default, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif);
	font-size: clamp(30px, 4vw, 48px);
	font-weight: 650;
	letter-spacing: -0.035em;
	line-height: 1.08;
	overflow-wrap: anywhere;
}

.soporte73-product-brand--single {
	margin-bottom: 4px;
}

body.single-product .entry-summary .price {
	color: var(--soporte73-woo-navy);
	font-size: clamp(25px, 3vw, 34px);
	font-weight: 700;
	line-height: 1.2;
}

body.single-product .entry-summary .price del {
	color: var(--soporte73-woo-muted);
	font-size: 0.62em;
	font-weight: 500;
}

body.single-product .entry-summary .price ins {
	color: var(--soporte73-woo-accent);
}

body.single-product .entry-summary .woocommerce-product-details__short-description {
	color: var(--soporte73-woo-text);
	font-size: 15px;
	line-height: 1.7;
}

body.single-product .entry-summary .stock {
	display: inline-flex;
	align-items: center;
	min-height: 30px;
	padding: 5px 10px;
	margin: 0;
	border-radius: 8px;
	font-size: 13px;
	font-weight: 700;
}

body.single-product .entry-summary .stock.in-stock {
	color: #11663d;
	background: #eaf8f0;
}

body.single-product .entry-summary .stock.out-of-stock {
	color: #913232;
	background: #fff0f0;
}

body.single-product .ct-product-add-to-cart {
	padding: 18px;
	background: var(--soporte73-woo-soft);
	border: 1px solid var(--soporte73-woo-border);
	border-radius: 12px;
}

body.single-product .ct-cart-actions .quantity,
body.single-product .ct-cart-actions .single_add_to_cart_button {
	min-height: 48px;
}

body.single-product .ct-cart-actions .single_add_to_cart_button {
	background: var(--soporte73-woo-accent);
	border-radius: 9px;
	white-space: nowrap;
}

body.single-product .ct-cart-actions .single_add_to_cart_button:hover {
	background: var(--soporte73-woo-accent-dark);
}

.soporte73-product-support {
	padding: 20px;
	background: #edf4ff;
	border: 1px solid #cdddf8;
	border-radius: 13px;
}

.soporte73-product-support h2 {
	margin: 0;
	color: var(--soporte73-woo-navy);
	font-size: 18px;
	font-weight: 750;
	line-height: 1.3;
}

.soporte73-product-support p {
	margin: 8px 0 16px;
	color: var(--soporte73-woo-text);
	font-size: 14px;
	line-height: 1.6;
}

.soporte73-product-support__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: 9px 16px;
	color: #ffffff;
	background: var(--soporte73-woo-accent);
	border-radius: 8px;
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
}

.soporte73-product-support__button:hover {
	color: #ffffff;
	background: var(--soporte73-woo-accent-dark);
}

.soporte73-product-support__button:focus-visible {
	outline: 3px solid rgba(29, 99, 237, 0.3);
	outline-offset: 3px;
}

.soporte73-product-trust {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px;
	padding: 0;
	margin: 0;
	list-style: none;
}

.soporte73-product-trust li {
	display: flex;
	align-items: center;
	gap: 7px;
	min-width: 0;
	color: var(--soporte73-woo-text);
	font-size: 12px;
	font-weight: 650;
	line-height: 1.35;
}

.soporte73-product-trust li span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 22px;
	width: 22px;
	height: 22px;
	color: #167647;
	background: #eaf8f0;
	border-radius: 50%;
	font-size: 12px;
}

body.single-product .woocommerce-tabs {
	padding: clamp(24px, 4vw, 42px);
	margin-top: 48px;
	background: #ffffff;
	border: 1px solid var(--soporte73-woo-border);
	border-radius: var(--soporte73-woo-radius);
}

body.single-product .woocommerce-tabs .wc-tab {
	color: var(--soporte73-woo-text);
	line-height: 1.75;
}

/* Carrito y checkout */
body.woocommerce-cart .site-main,
body.woocommerce-checkout .site-main {
	--theme-normal-container-max-width: 1480px;
	--theme-block-max-width: 1480px;
	--theme-container-edge-spacing: calc(100vw - 48px);
	--theme-font-family: var(--theme-font-stack-default, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif);
	--theme-form-font-family: var(--theme-font-stack-default, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif);
	font-family: var(--theme-font-stack-default, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif);
}

body.woocommerce-cart .site-main > [class*="ct-container"],
body.woocommerce-checkout .site-main > [class*="ct-container"] {
	width: min(calc(100vw - 48px), 1480px);
	max-width: 1480px;
}

body.woocommerce-cart .site-main [class*="ct-container"] > article,
body.woocommerce-checkout .site-main [class*="ct-container"] > article {
	--theme-block-width: 100%;
	--theme-block-max-width: 1480px;
	width: 100%;
	max-width: none;
}

body.woocommerce-cart .ct-woocommerce-cart-form {
	gap: clamp(32px, 4vw, 56px);
}

body.woocommerce-cart .woocommerce-cart-form,
body.woocommerce-cart .cart_totals,
body.woocommerce-checkout .ct-customer-details,
body.woocommerce-checkout .ct-order-review,
body.woocommerce-cart .wc-block-cart__main,
body.woocommerce-cart .wc-block-components-sidebar,
body.woocommerce-checkout .wc-block-checkout__main,
body.woocommerce-checkout .wc-block-checkout__sidebar {
	background: #ffffff;
	border: 1px solid var(--soporte73-woo-border);
	border-radius: var(--soporte73-woo-radius);
}

body.woocommerce-cart .woocommerce-cart-form {
	padding: clamp(20px, 3vw, 32px);
}

body.woocommerce-cart .ct-woocommerce-cart-form .cart_totals {
	--cart-totals-padding: clamp(22px, 3vw, 32px);
	--cart-totals-border: 1px solid var(--soporte73-woo-border);
	--cart-totals-border-radius: var(--soporte73-woo-radius);
	box-shadow: 0 12px 34px rgba(16, 33, 59, 0.07);
}

body.woocommerce-cart .cart_totals h2,
body.woocommerce-checkout .ct-woocommerce-checkout h3 {
	color: var(--soporte73-woo-navy);
	font-size: 19px;
	font-weight: 650;
}

body.woocommerce-cart .woocommerce-cart-form__contents .product-name a {
	color: var(--soporte73-woo-navy);
	font-weight: 600;
}

body.woocommerce-cart .woocommerce-cart-form__contents .product-thumbnail img {
	background: var(--soporte73-woo-soft);
	border-radius: 10px;
}

body.woocommerce-cart .woocommerce-cart-form__contents :is(.product-price, .product-subtotal),
body.woocommerce-cart .cart_totals :is(.cart-subtotal, .order-total) td,
body.woocommerce-checkout .woocommerce-checkout-review-order-table :is(.product-total, .order-total td) {
	color: var(--soporte73-woo-navy);
	font-weight: 650;
}

body.woocommerce-cart .wc-proceed-to-checkout .checkout-button,
body.woocommerce-checkout #place_order,
body.woocommerce-cart .wc-block-cart__submit-button,
body.woocommerce-checkout .wc-block-components-checkout-place-order-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 52px;
	padding: 12px 22px;
	color: #ffffff;
	background: var(--soporte73-woo-accent);
	border-color: var(--soporte73-woo-accent);
	border-radius: 10px;
	font-size: 15px;
	font-weight: 700;
	text-align: center;
}

body.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover,
body.woocommerce-checkout #place_order:hover,
body.woocommerce-cart .wc-block-cart__submit-button:hover,
body.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover {
	color: #ffffff;
	background: var(--soporte73-woo-accent-dark);
	border-color: var(--soporte73-woo-accent-dark);
}

body.woocommerce-checkout .ct-woocommerce-checkout {
	grid-template-columns: minmax(0, 1.15fr) minmax(360px, 0.85fr);
	gap: clamp(32px, 4vw, 56px);
}

body.woocommerce-checkout .ct-customer-details,
body.woocommerce-checkout .ct-order-review {
	padding: clamp(22px, 3vw, 34px);
}

body.woocommerce-checkout #customer_details .col-2 {
	padding-top: 34px;
	margin-top: 34px;
	border-top: 1px solid var(--soporte73-woo-border);
}

body.woocommerce-checkout .form-row {
	margin-bottom: 18px;
}

body.woocommerce-checkout .form-row label {
	margin-bottom: 7px;
	color: var(--soporte73-woo-navy);
	font-size: 14px;
	font-weight: 600;
}

body.woocommerce-checkout .form-row :is(input.input-text, textarea, select),
body.woocommerce-cart .coupon input.input-text {
	min-height: 46px;
	border-color: var(--soporte73-woo-border);
	border-radius: 9px;
	background: #ffffff;
}

body.woocommerce-checkout .form-row textarea {
	min-height: 110px;
}

body.woocommerce-checkout .woocommerce-checkout-review-order-table {
	margin-bottom: 26px;
}

body.woocommerce-checkout #payment .payment_methods {
	overflow: hidden;
	border-radius: 12px;
}

body.woocommerce-cart :is(.wc-block-cart__main, .wc-block-components-sidebar),
body.woocommerce-checkout :is(.wc-block-checkout__main, .wc-block-checkout__sidebar) {
	padding: clamp(20px, 3vw, 32px);
}

body.woocommerce-cart .wp-block-woocommerce-cart,
body.woocommerce-checkout .wp-block-woocommerce-checkout {
	--theme-block-width: 100%;
	width: 100%;
}

/* Breadcrumbs comerciales de WooCommerce. */
:is(body.woocommerce, body.woocommerce-cart, body.woocommerce-checkout) .hero-section[data-type="type-1"],
:is(body.woocommerce, body.woocommerce-cart, body.woocommerce-checkout) .hero-section[data-type="type-2"] > [class*="ct-container"] {
	width: min(calc(100vw - 64px), 1480px);
	max-width: 1480px;
	margin-inline: auto;
}

@media (min-width: 1000px) {
	body.woocommerce.archive [data-products] {
		--shop-columns: repeat(4, minmax(0, 1fr));
	}

	body.single-product .site-main > .ct-container-full,
	body.single-product .site-main > .ct-container-full > article {
		width: 100%;
		max-width: none;
	}

	body.single-product .product-entry-wrapper:has(
		.woocommerce-product-gallery:not([data-gallery="top"], [data-gallery="columns-top"])
	) {
		display: grid;
		grid-template-columns: minmax(0, 49%) minmax(0, 1fr);
		width: min(calc(100% - 64px), 1480px);
		max-width: 1480px;
	}

	body.single-product .product-entry-wrapper:has(
		.woocommerce-product-gallery:not([data-gallery="top"], [data-gallery="columns-top"])
	) .woocommerce-product-gallery,
	body.single-product .product-entry-wrapper:has(
		.woocommerce-product-gallery:not([data-gallery="top"], [data-gallery="columns-top"])
	) .entry-summary {
		width: 100%;
		min-width: 0;
	}

	body.single-product .product-entry-wrapper:has(
		.woocommerce-product-gallery:not([data-gallery="top"], [data-gallery="columns-top"])
	) .entry-summary {
		margin-inline-start: 0;
	}

	body.single-product .entry-summary,
	body.single-product .entry-summary input,
	body.single-product .entry-summary select,
	body.single-product .entry-summary textarea,
	body.single-product .entry-summary button,
	body.single-product .woocommerce-tabs {
		font-family: var(--theme-font-stack-default, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif);
	}

	body.single-product .product > .woocommerce-tabs {
		--theme-block-width: 100%;
		--theme-block-max-width: 1280px;
		width: min(calc(100vw - 64px), 1280px);
		max-width: 1280px;
		margin-inline: auto;
	}

	body.single-product .related.products.is-width-constrained {
		--theme-block-max-width: 1480px;
		width: min(calc(100vw - 64px), 1480px);
		max-width: 1480px;
	}

	body.single-product .related [data-products] {
		--shop-columns: repeat(4, minmax(0, 1fr));
	}
}

@media (max-width: 999.98px) {
	body.woocommerce-cart .site-main,
	body.woocommerce-checkout .site-main {
		--theme-container-edge-spacing: calc(100vw - 32px);
	}

	body.woocommerce-cart .site-main > [class*="ct-container"],
	body.woocommerce-checkout .site-main > [class*="ct-container"] {
		width: calc(100vw - 32px);
	}

	body.woocommerce-checkout .ct-woocommerce-checkout {
		grid-template-columns: minmax(0, 1fr);
	}

	body.woocommerce .site-main {
		--theme-container-edge-spacing: calc(100vw - 32px);
	}

	body.woocommerce [data-products] {
		--shop-columns: repeat(2, minmax(0, 1fr));
		--grid-columns-gap: 18px;
		--grid-rows-gap: 22px;
	}

	body.single-product .related [data-products] {
		--shop-columns: repeat(2, minmax(0, 1fr));
	}

	body.single-product .product-entry-wrapper {
		--product-gallery-width: 50%;
		gap: 30px;
	}
}

@media (max-width: 689.98px) {
	body.woocommerce-cart .site-main,
	body.woocommerce-checkout .site-main {
		--theme-container-edge-spacing: calc(100vw - 24px);
	}

	body.woocommerce-cart .site-main > [class*="ct-container"],
	body.woocommerce-checkout .site-main > [class*="ct-container"] {
		width: calc(100vw - 24px);
	}

	body.woocommerce-cart .woocommerce-cart-form,
	body.woocommerce-checkout .ct-customer-details,
	body.woocommerce-checkout .ct-order-review,
	body.woocommerce-cart :is(.wc-block-cart__main, .wc-block-components-sidebar),
	body.woocommerce-checkout :is(.wc-block-checkout__main, .wc-block-checkout__sidebar) {
		padding: 18px;
	}

	body.woocommerce-checkout .woocommerce-checkout-payment {
		margin-inline: 0;
	}

	body.woocommerce-cart .woocommerce-cart-form__contents .coupon {
		gap: 10px;
	}

	body.woocommerce .site-main {
		--theme-container-edge-spacing: calc(100vw - 24px);
	}

	body.woocommerce [data-products] {
		--grid-columns-gap: 12px;
		--grid-rows-gap: 16px;
	}

	body.single-product .related [data-products] {
		--shop-columns: minmax(0, 1fr);
	}

	body.woocommerce [data-products] .product {
		padding: 12px;
		border-radius: 12px;
	}

	body.woocommerce [data-products] .product > figure {
		width: calc(100% + 24px);
		margin: -12px -12px 2px;
	}

	body.woocommerce [data-products] .woocommerce-loop-product__title {
		font-size: 14px;
	}

	body.woocommerce [data-products] .price {
		font-size: 15px;
	}

	body.woocommerce [data-products] .ct-woo-card-actions .button,
	body.woocommerce [data-products] .ct-woo-card-actions .added_to_cart {
		padding-inline: 10px;
		font-size: 12px;
	}

	body.single-product .woocommerce-product-gallery {
		padding: 10px;
	}

	body.single-product .entry-summary .product_title {
		font-size: 32px;
	}

	body.single-product .ct-product-add-to-cart,
	.soporte73-product-support,
	body.single-product .woocommerce-tabs {
		padding: 18px;
	}

	.soporte73-product-trust {
		grid-template-columns: minmax(0, 1fr);
		gap: 10px;
	}
}

@media (max-width: 479.98px) {
	body.woocommerce [data-products] {
		--shop-columns: minmax(0, 1fr);
	}
}

@media (prefers-reduced-motion: reduce) {
	body.woocommerce [data-products] .product,
	.soporte73-product-support__button {
		transition-duration: 0.01ms;
	}
}
