/*
Theme Name: PATODO Atelier
Theme URI: https://www.patodo.com.co
Description: Tema hijo de Astra con el sistema visual "Atelier Underground" para PATODO — ropa urbana, Medellín.
Author: PATODO
Template: astra
Version: 1.0.0
Requires PHP: 7.4
Text Domain: patodo
*/

/* ---------------------------------------------------------------
   1. Tokens
--------------------------------------------------------------- */
:root {
	--p-canvas: #0f0f0f;
	--p-cell: #141414;
	--p-overlay: #1a1a1a;
	--p-lowest: #0e0e0e;
	--p-line: #272727;
	--p-line-strong: #333333;
	--p-chalk: #f5f5f3;
	--p-olive: #c2c7b0;
	--p-mineral: #d1d1cb;
	--p-text: #e5e5e5;
	--p-muted: #9ca3af;
	--p-dim: #8a8a8a;
	--p-error: #ffb4ab;
	/* Fondo detrás de las fotos de producto. Ahora son fotos completas en 4:5 (antes PNG
	   transparentes sobre fondo claro): oscuro, para que ningún borde se vea como una línea clara. */
	--p-photo: #141414;

	--p-display: "Space Grotesk", "Helvetica Neue", Arial, sans-serif;
	--p-body: "Geist", "Helvetica Neue", Arial, sans-serif;

	--p-gutter: 1.25rem;
	--p-gap: 1.5rem;
	--p-wide: 1440px;

	/* Paleta global de Astra: lleva todo el tema base al modo oscuro. */
	--ast-global-color-0: #f5f5f3;
	--ast-global-color-1: #c2c7b0;
	--ast-global-color-2: #ffffff;
	--ast-global-color-3: #c7c7bd;
	--ast-global-color-4: #0f0f0f;
	--ast-global-color-5: #141414;
	--ast-global-color-6: #1a1a1a;
	--ast-global-color-7: #272727;
	--ast-global-color-8: #0e0e0e;
	--ast-border-color: #272727;
}

@media (min-width: 1024px) {
	:root {
		--p-gutter: 3.5rem;
		--p-gap: 2.5rem;
	}
}

/* ---------------------------------------------------------------
   2. Base
--------------------------------------------------------------- */
html,
body.patodo,
body.patodo.ast-separate-container,
body.patodo .site,
body.patodo .site-content {
	background: var(--p-canvas);
}

body.patodo {
	color: var(--p-text);
	font-family: var(--p-body);
	font-size: 0.9375rem;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
}

body.patodo ::selection {
	background: var(--p-chalk);
	color: var(--p-canvas);
}

body.patodo h1,
body.patodo h2,
body.patodo h3,
body.patodo h4,
body.patodo h5,
body.patodo h6,
body.patodo .entry-title {
	font-family: var(--p-display);
	font-weight: 500;
	letter-spacing: -0.02em;
	color: #fff;
}

body.patodo a {
	color: var(--p-chalk);
	text-decoration-color: var(--p-line);
	text-underline-offset: 4px;
	transition: color 0.15s, text-decoration-color 0.15s, border-color 0.15s, background-color 0.15s;
}

body.patodo a:hover,
body.patodo a:focus {
	color: var(--p-olive);
	text-decoration-color: var(--p-olive);
}

body.patodo :focus-visible {
	outline: 1px solid var(--p-olive);
	outline-offset: 2px;
}

body.patodo hr {
	border-color: var(--p-line);
	background: var(--p-line);
}

body.patodo *,
body.patodo *::before,
body.patodo *::after {
	border-radius: 0 !important;
}

body.patodo .ast-container {
	max-width: var(--p-wide);
	padding-left: var(--p-gutter);
	padding-right: var(--p-gutter);
}

/* Contenedores de Astra con fondo blanco */
body.patodo .ast-separate-container .ast-article-single,
body.patodo .ast-separate-container .ast-article-post,
body.patodo .ast-separate-container .comments-area,
body.patodo .ast-separate-container .ast-woocommerce-container,
body.patodo.ast-separate-container .ast-article-single,
body.patodo.ast-separate-container .ast-woocommerce-container,
body.patodo .ast-plain-container .site-content,
body.patodo .site-main,
body.patodo .entry-content {
	background: transparent;
}

body.patodo .ast-separate-container .ast-article-single,
body.patodo.ast-separate-container .ast-article-single {
	padding-left: 0;
	padding-right: 0;
	border: 0;
}

/* Etiquetas y piezas reutilizables */
.patodo-label {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-family: var(--p-display);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.15em;
	line-height: 1.2;
	text-transform: uppercase;
	color: var(--p-muted);
}

.patodo-dot {
	display: inline-block;
	width: 6px;
	height: 6px;
	background: var(--p-olive);
	border-radius: 50% !important;
	flex: none;
}

.patodo-tag {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.3rem 0.6rem;
	border: 1px solid var(--p-line);
	background: var(--p-cell);
	font-family: var(--p-body);
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--p-mineral);
	line-height: 1.2;
}

.patodo-icon {
	flex: none;
}

.patodo-display {
	margin: 0;
	font-family: var(--p-display);
	font-size: 2.75rem;
	font-weight: 400;
	line-height: 1;
	letter-spacing: -0.03em;
	text-transform: uppercase;
	color: #fff;
}

.patodo-display span {
	color: var(--p-mineral);
	font-weight: 300;
}

.patodo-display--md {
	font-size: 2rem;
}

@media (min-width: 1024px) {
	.patodo-display {
		font-size: 5rem;
		line-height: 0.95;
		letter-spacing: -0.04em;
	}

	.patodo-display--md {
		font-size: 3rem;
	}
}

.patodo-h2 {
	margin: 0.5rem 0 0;
	font-size: 1.5rem;
	text-transform: uppercase;
	letter-spacing: -0.02em;
}

@media (min-width: 768px) {
	.patodo-h2 {
		font-size: 2rem;
	}
}

.patodo-link {
	font-family: var(--p-display);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: underline;
}

/* ---------------------------------------------------------------
   3. Botones (incluye los de WooCommerce y Astra)
--------------------------------------------------------------- */
body.patodo .patodo-btn,
body.patodo a.patodo-btn,
body.patodo .button,
body.patodo button.button,
body.patodo input[type="submit"],
body.patodo .wp-element-button,
html body.patodo a.button,
html body.patodo button.button,
html body.patodo input.button,
html body.patodo #respond input#submit,
html body.patodo .button.alt,
html body.patodo button.button.alt,
html body.patodo a.button.alt,
body.patodo .ast-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.6rem;
	min-height: 48px;
	padding: 0.85rem 1.75rem;
	border: 1px solid var(--p-chalk);
	background: var(--p-chalk);
	color: var(--p-canvas);
	font-family: var(--p-display);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	line-height: 1.2;
	text-transform: uppercase;
	text-decoration: none;
	box-shadow: none;
	cursor: pointer;
	transition: background-color 0.15s, border-color 0.15s, color 0.15s;
}

body.patodo a.patodo-btn:hover,
body.patodo .button:hover,
body.patodo button.button:hover,
body.patodo input[type="submit"]:hover,
body.patodo .wp-element-button:hover,
html body.patodo a.button:hover,
html body.patodo button.button:hover,
html body.patodo .button.alt:hover,
html body.patodo button.button.alt:hover,
html body.patodo a.button.alt:hover,
body.patodo .ast-button:hover {
	background: var(--p-olive);
	border-color: var(--p-olive);
	color: var(--p-canvas);
}

body.patodo a.patodo-btn--ghost,
html body.patodo .button.wc-backward,
html body.patodo a.added_to_cart {
	background: transparent;
	color: var(--p-chalk);
	border-color: var(--p-line-strong);
}

body.patodo a.patodo-btn--ghost:hover,
html body.patodo .button.wc-backward:hover {
	background: var(--p-overlay);
	border-color: var(--p-chalk);
	color: var(--p-chalk);
}

html body.patodo .button.disabled,
html body.patodo button.button:disabled,
html body.patodo button.button.disabled,
html body.patodo button.button.alt.disabled,
html body.patodo button.button.alt:disabled,
html body.patodo button.button.alt.disabled:hover,
html body.patodo button.button.alt:disabled:hover {
	background: transparent;
	border-color: var(--p-line-strong);
	color: var(--p-muted);
	opacity: 1;
	cursor: not-allowed;
}

.patodo-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	padding-top: 0.5rem;
}

/* ---------------------------------------------------------------
   4. Formularios
--------------------------------------------------------------- */
body.patodo input[type="text"],
body.patodo input[type="email"],
body.patodo input[type="tel"],
body.patodo input[type="password"],
body.patodo input[type="search"],
body.patodo input[type="number"],
body.patodo input[type="url"],
body.patodo input[type="date"],
body.patodo textarea,
body.patodo select,
html body.patodo form .form-row .input-text,
html body.patodo form .form-row select,
body.patodo .select2-container--default .select2-selection--single {
	min-height: 46px;
	padding: 0.65rem 0.85rem;
	border: 1px solid var(--p-line);
	background: var(--p-cell);
	color: #fff;
	font-family: var(--p-body);
	font-size: 0.9375rem;
	box-shadow: none;
}

body.patodo input:focus,
body.patodo textarea:focus,
body.patodo select:focus,
html body.patodo form .form-row .input-text:focus,
body.patodo .select2-container--focus .select2-selection--single,
body.patodo .select2-container--open .select2-selection--single {
	border-color: var(--p-olive);
	outline: none;
	box-shadow: none;
}

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

body.patodo label,
html body.patodo form .form-row label {
	font-family: var(--p-display);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--p-muted);
}

html body.patodo form .form-row .required {
	color: var(--p-olive);
	text-decoration: none;
}

body.patodo input[type="checkbox"],
body.patodo input[type="radio"] {
	appearance: none;
	-webkit-appearance: none;
	width: 16px;
	height: 16px;
	margin: 0 0.5rem 0 0;
	border: 1px solid var(--p-line-strong);
	background: transparent;
	vertical-align: -3px;
	cursor: pointer;
	position: relative;
}

body.patodo input[type="checkbox"]:checked,
body.patodo input[type="radio"]:checked {
	background: var(--p-chalk);
	border-color: var(--p-chalk);
}

body.patodo input[type="checkbox"]:checked::after,
body.patodo input[type="radio"]:checked::after {
	content: "";
	position: absolute;
	inset: 4px;
	background: var(--p-canvas);
}

body.patodo .select2-container--default .select2-selection--single .select2-selection__rendered {
	color: #fff;
	line-height: 1.6;
	padding: 0;
}

body.patodo .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 44px;
}

.select2-dropdown {
	background: var(--p-overlay) !important;
	border-color: var(--p-line-strong) !important;
	color: var(--p-text);
}

.select2-search--dropdown .select2-search__field {
	background: var(--p-cell) !important;
	border: 1px solid var(--p-line) !important;
	color: #fff !important;
}

.select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[aria-selected] {
	background: var(--p-chalk) !important;
	color: var(--p-canvas) !important;
}

/* ---------------------------------------------------------------
   5. Encabezado
--------------------------------------------------------------- */
.patodo-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: rgba(14, 14, 14, 0.96);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border-bottom: 1px solid #242424;
}

.admin-bar .patodo-header {
	top: 32px;
}

@media (max-width: 782px) {
	.admin-bar .patodo-header {
		top: 46px;
	}
}

.patodo-topbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.4rem var(--p-gutter);
	border-bottom: 1px solid #1f1f1f;
	background: var(--p-lowest);
	font-size: 0.6875rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--p-muted);
}

.patodo-topbar__loc {
	display: none;
	align-items: center;
	gap: 0.5rem;
	white-space: nowrap;
}

.patodo-topbar__msg {
	flex: 1;
	text-align: center;
	color: var(--p-mineral);
}

.patodo-topbar__end {
	display: none;
	color: var(--p-dim);
}

@media (min-width: 768px) {
	.patodo-topbar__loc,
	.patodo-topbar__end {
		display: inline-flex;
	}
}

.patodo-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	height: 64px;
	padding: 0 var(--p-gutter);
}

.patodo-bar__left,
.patodo-bar__right {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.patodo-bar__left {
	gap: 2.5rem;
}

.patodo-bar__right {
	flex: 1;
	justify-content: flex-end;
	max-width: 36rem;
}

.patodo-logo {
	display: inline-flex;
	align-items: center;
	text-decoration: none;
}

.patodo-logo__word {
	font-family: var(--p-display);
	font-size: 1.125rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	color: #fff;
}

.patodo-logo__img {
	max-height: 36px;
	width: auto;
}

.patodo-menu {
	display: flex;
	align-items: center;
	gap: 2rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

body.patodo .patodo-menu a {
	display: block;
	padding: 0.25rem 0;
	border-bottom: 1px solid transparent;
	font-family: var(--p-display);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--p-muted);
}

body.patodo .patodo-menu a:hover,
body.patodo .patodo-menu .current-menu-item > a,
body.patodo .patodo-menu .current_page_item > a {
	color: #fff;
	border-bottom-color: #fff;
}

.patodo-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	height: 36px;
	padding: 0 0.75rem;
	border: 1px solid #2a2a2a;
	background: #181818;
	color: var(--p-text);
	font-size: 0.75rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-decoration: none !important;
}

.patodo-chip--icon {
	width: 36px;
	padding: 0;
	justify-content: center;
}

body.patodo .patodo-chip:hover {
	border-color: var(--p-muted);
	color: #fff;
}

.patodo-cart-count {
	padding: 0.05rem 0.35rem;
	border: 1px solid var(--p-line-strong);
	background: #222;
	color: #fff;
	white-space: nowrap;
}

.patodo-cart__label {
	display: none;
}

.patodo-bar__search {
	flex: 1;
	max-width: 20rem;
	display: none;
}

.patodo-search {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	height: 36px;
	margin: 0;
	padding: 0 0.6rem;
	border: 1px solid #2a2a2a;
	background: #181818;
	color: var(--p-muted);
}

.patodo-search:focus-within {
	border-color: var(--p-muted);
}

body.patodo .patodo-search input[type="search"] {
	flex: 1;
	min-width: 0;
	min-height: 0;
	height: 34px;
	padding: 0;
	border: 0;
	background: transparent;
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.patodo-search kbd {
	padding: 0.05rem 0.3rem;
	border: 1px solid #303030;
	background: #222;
	color: var(--p-dim);
	font-family: var(--p-body);
	font-size: 0.625rem;
	box-shadow: none;
}

body.patodo .patodo-bar__search .dgwt-wcas-search-wrapp {
	max-width: none;
	min-width: 0;
}

body.patodo .patodo-bar__search .dgwt-wcas-sf-wrapp input[type="search"].dgwt-wcas-search-input {
	height: 36px;
	min-height: 0;
	border: 1px solid #2a2a2a;
	background: #181818;
	color: #fff;
	font-size: 0.8125rem;
}

body.patodo .dgwt-wcas-sf-wrapp {
	background: transparent;
	padding: 0;
}

body.patodo .dgwt-wcas-search-submit {
	display: none;
}

.patodo-burger {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 1px solid #2a2a2a;
	background: #181818;
	color: #fff;
}

body.patodo .patodo-burger:hover {
	background: #181818;
	border-color: var(--p-muted);
	color: #fff;
}

.patodo-nav {
	display: none;
}

body.patodo-nav-open {
	overflow: hidden;
}

/* El header usa backdrop-filter, que vuelve "fixed" relativo al header; por eso el panel es absoluto. */
body.patodo-nav-open .patodo-nav {
	display: block;
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	height: calc(100vh - var(--patodo-header-bottom, 101px));
	z-index: 99;
	padding: 1.5rem var(--p-gutter);
	background: var(--p-canvas);
	border-top: 1px solid var(--p-line);
	overflow-y: auto;
}

body.patodo-nav-open .patodo-menu {
	flex-direction: column;
	align-items: stretch;
	gap: 0;
}

body.patodo-nav-open .patodo-menu li {
	border-bottom: 1px solid var(--p-line);
}

body.patodo.patodo-nav-open .patodo-menu a {
	padding: 1rem 0;
	font-size: 1rem;
	color: #fff;
	border-bottom: 0;
}

@media (min-width: 768px) {
	.patodo-bar__search {
		display: block;
	}

	.patodo-cart__label {
		display: inline;
	}
}

@media (min-width: 1024px) {
	.patodo-burger {
		display: none;
	}

	body.patodo-nav-open {
		overflow: visible;
	}

	.patodo-nav,
	body.patodo-nav-open .patodo-nav {
		display: block;
		position: static;
		height: auto;
		padding: 0;
		border: 0;
		background: transparent;
		overflow: visible;
	}

	body.patodo-nav-open .patodo-menu {
		flex-direction: row;
		align-items: center;
		gap: 2rem;
	}

	body.patodo-nav-open .patodo-menu li {
		border: 0;
	}

	body.patodo.patodo-nav-open .patodo-menu a {
		padding: 0.25rem 0;
		font-size: 0.75rem;
		color: var(--p-muted);
	}
}

/* ---------------------------------------------------------------
   6. Portada
--------------------------------------------------------------- */
body.patodo-front .site-content > .ast-container {
	max-width: none;
	padding: 0;
	display: block;
}

.patodo-home {
	width: 100%;
}

.patodo-hero {
	display: grid;
	grid-template-columns: 1fr;
	border-bottom: 1px solid #222;
	background: var(--p-lowest);
}

.patodo-hero__copy {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 2rem;
	padding: 2rem var(--p-gutter);
}

.patodo-hero__main {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.patodo-hero__text {
	max-width: 36rem;
	margin: 0;
	font-size: 1.0625rem;
	line-height: 1.6;
	color: var(--p-muted);
}

.patodo-specs {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.75rem;
	padding-top: 2rem;
	border-top: 1px solid #202020;
}

.patodo-spec {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	padding: 0.75rem;
	border: 1px solid #222;
	background: #161616;
}

.patodo-spec strong {
	font-family: var(--p-display);
	font-size: 1rem;
	font-weight: 500;
	color: #fff;
	letter-spacing: -0.01em;
}

.patodo-spec__note {
	font-size: 0.75rem;
	color: var(--p-muted);
}

.patodo-hero__media {
	position: relative;
	min-height: 420px;
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	background: var(--p-photo);
	border-top: 1px solid #222;
	text-decoration: none !important;
}

.patodo-hero__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	padding: 0;
	object-fit: cover;
	object-position: 50% 20%;
	transition: transform 0.7s ease;
}

.patodo-hero__media:hover img {
	transform: scale(1.02);
}

.patodo-hero__caption {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	margin: 1.25rem;
	padding: 0.85rem 1rem;
	max-width: 22rem;
	border: 1px solid #2a2a2a;
	background: var(--p-canvas);
}

.patodo-hero__caption-name {
	font-family: var(--p-display);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #fff;
}

@media (min-width: 1024px) {
	.patodo-hero {
		grid-template-columns: 7fr 5fr;
		min-height: 72vh;
	}

	.patodo-hero__copy {
		padding: 3rem var(--p-gutter);
	}

	.patodo-hero__media {
		min-height: 100%;
		border-top: 0;
		border-left: 1px solid #222;
	}
}

.patodo-section {
	padding: 5rem var(--p-gutter);
	border-bottom: 1px solid #202020;
}

.patodo-section__head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 3rem;
}

.patodo-cats {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
}

@media (min-width: 768px) {
	.patodo-cats--2 {
		grid-template-columns: 7fr 5fr;
	}

	.patodo-cats--3 {
		grid-template-columns: 7fr 5fr;
	}

	.patodo-cats--3 .patodo-cat:nth-child(3) {
		grid-column: 1 / -1;
		min-height: 280px;
	}
}

.patodo-cat {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	min-height: 440px;
	padding: 1.5rem;
	overflow: hidden;
	border: 1px solid #222;
	background: #1c1b1b;
	text-decoration: none !important;
}

.patodo-cat:hover {
	border-color: #555;
}

.patodo-cat__img {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	transition: transform 0.7s ease;
}

.patodo-cat:hover .patodo-cat__img {
	transform: scale(1.02);
}

.patodo-cat::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, #0e0e0e 5%, rgba(14, 14, 14, 0.55) 45%, transparent);
}

.patodo-cat__top,
.patodo-cat__body {
	position: relative;
	z-index: 1;
}

.patodo-cat__top {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	color: #fff;
}

.patodo-cat__body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.6rem;
}

.patodo-cat__name {
	font-family: var(--p-display);
	font-size: 1.75rem;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: -0.02em;
	color: #fff;
}

.patodo-cat__desc {
	max-width: 28rem;
	font-size: 0.875rem;
	color: var(--p-mineral);
}

.patodo-manifesto {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	padding: 5rem var(--p-gutter);
	border-bottom: 1px solid #202020;
	background: var(--p-lowest);
}

.patodo-manifesto p {
	max-width: 40rem;
	margin: 0;
	font-size: 1.125rem;
	line-height: 1.6;
	color: var(--p-muted);
}

.patodo-services {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
}

@media (min-width: 768px) {
	.patodo-services {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.patodo-service {
	padding: 1.75rem;
	border: 1px solid var(--p-line);
	background: var(--p-cell);
}

.patodo-service__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	margin-bottom: 1.25rem;
	border: 1px solid var(--p-line-strong);
	background: var(--p-overlay);
	color: #fff;
}

.patodo-service h3 {
	margin: 0 0 0.5rem;
	font-size: 1.125rem;
	text-transform: uppercase;
}

.patodo-service p {
	margin: 0;
	font-size: 0.875rem;
	color: var(--p-muted);
}

html {
	scroll-behavior: smooth;
}

.patodo-home > section[id] {
	scroll-margin-top: 110px;
}

.patodo-steps__list {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: none;
}

@media (min-width: 768px) {
	.patodo-steps__list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.patodo-step {
	position: relative;
	margin: 0;
	padding: 1.75rem;
	border: 1px solid var(--p-line);
	border-left: 1px solid var(--p-olive);
	background: var(--p-cell);
}

.patodo-step__num {
	display: block;
	margin-bottom: 1rem;
	font-family: var(--p-display);
	font-size: 2rem;
	font-weight: 400;
	line-height: 1;
	letter-spacing: -0.03em;
	color: var(--p-olive);
}

.patodo-step h3 {
	margin: 0 0 0.5rem;
	font-size: 1.125rem;
	text-transform: uppercase;
}

.patodo-step p {
	margin: 0;
	font-size: 0.875rem;
	color: var(--p-muted);
}

.patodo-product-note {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin: -0.5rem 0 1.25rem;
	font-size: 0.75rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--p-mineral);
}

body.patodo table.shop_table .product-thumbnail img,
body.patodo .woocommerce-checkout-review-order img {
	background: var(--p-photo);
	padding: 0.25rem;
	object-fit: contain;
}

/* ---------------------------------------------------------------
   7. Tarjetas de producto (tienda, categorías, portada, relacionados)
--------------------------------------------------------------- */
html body.patodo ul.products,
body.patodo.woocommerce ul.products,
body.patodo ul.products {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
	margin: 0;
	padding: 0;
}

body.patodo ul.products::before,
body.patodo ul.products::after {
	display: none;
}

@media (min-width: 1024px) {
	html body.patodo ul.products,
	body.patodo.woocommerce ul.products,
	body.patodo ul.products {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 1.25rem;
	}

	html body.patodo ul.products.columns-3,
	body.patodo.woocommerce ul.products.columns-3,
	body.patodo ul.products.columns-3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

body.patodo ul.products li.product {
	display: flex;
	flex-direction: column;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	border: 1px solid var(--p-line);
	background: var(--p-cell);
	text-align: left;
	transition: border-color 0.15s;
}

body.patodo ul.products li.product:hover {
	border-color: var(--p-olive);
}

body.patodo ul.products li.product .astra-shop-thumbnail-wrap,
body.patodo ul.products li.product > a:first-child {
	position: relative;
	display: block;
	overflow: hidden;
	background: var(--p-photo);
	border-bottom: 1px solid var(--p-line);
}

/* Las fotos de producto ya vienen en 4:5 (vertical): llenan la tarjeta de borde a borde. */
body.patodo ul.products li.product img {
	width: 100%;
	aspect-ratio: 4 / 5;
	padding: 0;
	object-fit: cover;
	background: var(--p-photo);
	margin: 0 !important;
	transition: transform 0.6s ease;
}

body.patodo ul.products li.product:hover img {
	transform: scale(1.02);
}

body.patodo ul.products li.product .astra-shop-summary-wrap {
	display: flex;
	flex-direction: column;
	flex: 1;
	gap: 0.4rem;
	padding: 1rem;
}

.patodo-card__meta {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0.25rem 0.75rem;
	padding: 1rem 1rem 0;
	font-size: 0.6875rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--p-dim);
}

.astra-shop-summary-wrap .patodo-card__meta {
	padding: 0;
}

body.patodo ul.products li.product .ast-woo-product-category {
	display: none;
}

body.patodo ul.products li.product .woocommerce-loop-product__title,
body.patodo ul.products li.product h2 {
	margin: 0;
	padding: 0;
	font-family: var(--p-display);
	font-size: 0.9375rem;
	font-weight: 500;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: #fff;
}

body.patodo ul.products li.product .price {
	margin: 0;
	font-family: var(--p-body);
	font-size: 0.9375rem;
	font-weight: 500;
	color: var(--p-chalk);
}

body.patodo .price del {
	color: var(--p-dim);
	opacity: 1;
}

body.patodo .price ins {
	text-decoration: none;
}

body.patodo ul.products li.product .button {
	width: 100%;
	min-height: 42px;
	margin-top: auto !important;
	padding: 0.65rem 1rem;
	background: transparent;
	color: var(--p-chalk);
	border-color: var(--p-line-strong);
}

body.patodo ul.products li.product .button:hover,
body.patodo ul.products li.product .button:focus {
	background: var(--p-chalk) !important;
	border-color: var(--p-chalk) !important;
	color: var(--p-canvas) !important;
}

body.patodo ul.products li.product .star-rating {
	display: none;
}

html body.patodo span.onsale,
body.patodo span.onsale,
body.patodo .ast-on-card-button.ast-onsale-card {
	top: 0.75rem;
	left: 0.75rem;
	right: auto;
	min-width: 0;
	min-height: 0;
	padding: 0.3rem 0.6rem;
	border: 0;
	border-left: 1px solid var(--p-olive);
	background: var(--p-canvas);
	color: #fff;
	font-family: var(--p-display);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	line-height: 1.2;
	text-transform: uppercase;
}

/* ---------------------------------------------------------------
   8. Archivo de tienda
--------------------------------------------------------------- */
body.patodo.woocommerce .site-content > .ast-container,
body.patodo.woocommerce-page .site-content > .ast-container {
	padding-top: 2.5rem;
	padding-bottom: 5rem;
}

body.patodo .woocommerce-breadcrumb,
body.patodo .ast-breadcrumbs,
body.patodo .ast-breadcrumbs a,
body.patodo .woocommerce-breadcrumb a {
	font-size: 0.6875rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--p-muted);
}

body.patodo .woocommerce-products-header__title.page-title,
body.patodo.woocommerce .page-title {
	margin: 0.75rem 0 1rem;
	font-size: 2rem;
	text-transform: uppercase;
	letter-spacing: -0.03em;
}

@media (min-width: 1024px) {
	body.patodo .woocommerce-products-header__title.page-title,
	body.patodo.woocommerce .page-title {
		font-size: 3rem;
	}
}

body.patodo .term-description,
body.patodo .page-description,
body.patodo .woocommerce-products-header .term-description p {
	max-width: 48rem;
	color: var(--p-muted);
}

body.patodo .term-description p,
body.patodo .page-description p {
	margin: 0 0 0.9em;
	line-height: 1.6;
}

body.patodo .ast-woocommerce-container .woocommerce-result-count,
body.patodo .woocommerce-result-count {
	font-size: 0.75rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--p-muted);
}

body.patodo .woocommerce-ordering select {
	min-height: 40px;
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

body.patodo .woocommerce-pagination ul.page-numbers,
body.patodo .woocommerce-pagination ul.page-numbers li {
	border: 0;
}

body.patodo .woocommerce-pagination ul li a,
body.patodo .woocommerce-pagination ul li span {
	min-width: 40px;
	padding: 0.6rem;
	border: 1px solid var(--p-line);
	background: var(--p-cell);
	color: var(--p-text);
}

body.patodo .woocommerce-pagination ul li span.current,
body.patodo .woocommerce-pagination ul li a:hover {
	background: var(--p-chalk);
	border-color: var(--p-chalk);
	color: var(--p-canvas);
}

/* ---------------------------------------------------------------
   9. Página de producto
--------------------------------------------------------------- */
body.patodo.single-product div.product {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 2rem;
}

/* Celular: fotos → compra → video → descripción → relacionados. */
body.patodo.single-product div.product > .woocommerce-product-gallery { order: 1; }
body.patodo.single-product div.product > .summary { order: 2; }
body.patodo.single-product div.product > .patodo-product-video { order: 3; }
body.patodo.single-product div.product > .woocommerce-tabs { order: 4; }
body.patodo.single-product div.product > .up-sells,
body.patodo.single-product div.product > .related { order: 5; }

.patodo-product-video {
	position: relative;
	border: 1px solid var(--p-line);
	background: #000;
}

.patodo-product-video video {
	display: block;
	width: 100%;
	height: auto;
	max-height: 85vh;
	object-fit: contain;
	background: #000;
}

.patodo-product-video__tag {
	position: absolute;
	top: 0.75rem;
	left: 0.75rem;
	pointer-events: none;
}

@media (min-width: 1024px) {
	body.patodo.single-product div.product {
		grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
		gap: 3rem;
		align-items: start;
	}

	body.patodo.single-product div.product > .woocommerce-product-gallery {
		grid-column: 1;
		grid-row: 1;
	}

	body.patodo.single-product div.product > .patodo-product-video {
		grid-column: 1;
		grid-row: 2;
	}

	body.patodo.single-product div.product .summary {
		grid-column: 2;
		grid-row: 1 / span 2;
		position: sticky;
		top: 120px;
		background: var(--p-canvas);
	}

	body.patodo.single-product div.product > .woocommerce-tabs,
	body.patodo.single-product div.product > .related,
	body.patodo.single-product div.product > .up-sells,
	body.patodo.single-product div.product > .ast-single-product-wrapper ~ * {
		grid-column: 1 / -1;
	}
}

body.patodo.single-product div.product div.images,
body.patodo.single-product div.product div.summary {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
}

body.patodo.single-product div.product div.images .woocommerce-product-gallery__wrapper,
body.patodo.single-product div.product div.images .flex-viewport {
	border: 1px solid var(--p-line);
	background: var(--p-photo);
}

/* Con carrusel el marco va solo en el visor: si la fila de fotos también lleva borde,
   las fotos quedan corridas 1px y asoma una franja del fondo en el borde izquierdo. */
body.patodo.single-product div.product div.images .flex-viewport .woocommerce-product-gallery__wrapper {
	border: 0;
}

/* La lupa de WooCommerce pinta la foto ampliada con fondo blanco. */
body.patodo.single-product div.product div.images .zoomImg {
	background-color: var(--p-photo) !important;
}

body.patodo.single-product div.product div.images .woocommerce-product-gallery__image > a {
	display: block;
	aspect-ratio: 4 / 5;
	background: var(--p-photo);
}

body.patodo.single-product div.product div.images .woocommerce-product-gallery__image > a > img {
	width: 100%;
	height: 100%;
	padding: 0;
	object-fit: cover;
}

body.patodo.single-product div.product div.images img {
	width: 100%;
}

body.patodo.single-product div.product div.images .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.5rem;
	margin-top: 0.5rem;
}

body.patodo.single-product div.product div.images .flex-control-thumbs li {
	width: auto;
	margin: 0;
	padding: 0;
	border: 1px solid var(--p-line);
	background: var(--p-photo);
}

body.patodo.single-product div.product div.images .flex-control-thumbs li img {
	aspect-ratio: 4 / 5;
	padding: 0;
	object-fit: cover;
	opacity: 0.55;
}

body.patodo.single-product div.product div.images .flex-control-thumbs li img.flex-active,
body.patodo.single-product div.product div.images .flex-control-thumbs li:hover img {
	opacity: 1;
}

body.patodo.single-product div.product div.images .flex-control-thumbs li:has(img.flex-active) {
	border-color: var(--p-chalk);
}

/* Celular: con una foto por color hay 11 miniaturas; en una fila deslizable no empujan la compra. */
@media (max-width: 767px) {
	body.patodo.single-product div.product div.images .flex-control-thumbs {
		display: flex;
		flex-wrap: nowrap;
		overflow-x: auto;
		scroll-snap-type: x proximity;
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
	}

	body.patodo.single-product div.product div.images .flex-control-thumbs::-webkit-scrollbar {
		display: none;
	}

	body.patodo.single-product div.product div.images .flex-control-thumbs li {
		flex: 0 0 calc((100% - 2rem) / 4.5);
		scroll-snap-align: start;
	}
}

body.patodo .woocommerce-product-gallery__trigger {
	background: var(--p-canvas) !important;
	border: 1px solid var(--p-line);
}

body.patodo.single-product .product_title {
	margin: 0 0 0.75rem;
	font-size: 2rem;
	line-height: 1.05;
	text-transform: uppercase;
	letter-spacing: -0.03em;
}

@media (min-width: 1024px) {
	body.patodo.single-product .product_title {
		font-size: 2.75rem;
	}
}

body.patodo.single-product div.product .summary .price {
	margin: 0 0 1.25rem;
	padding: 1rem 0;
	border-top: 1px solid var(--p-line);
	border-bottom: 1px solid var(--p-line);
	font-family: var(--p-display);
	font-size: 1.75rem;
	font-weight: 500;
	color: #fff;
}

body.patodo.single-product .woocommerce-product-details__short-description {
	color: var(--p-muted);
}

body.patodo.single-product .woocommerce-product-details__short-description .wp-video {
	max-width: 100% !important;
}

/* Astra repite la categoría encima del título; ya está en la ruta de navegación y es un enlace diminuto. */
body.patodo.single-product .summary .single-product-category {
	display: none !important;
}

body.patodo .single-product-category,
body.patodo .single_product_category,
body.patodo .ast-single-product-category {
	font-size: 0.6875rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--p-muted);
}

body.patodo.single-product table.variations {
	width: 100%;
	margin-bottom: 1rem;
	border: 0;
}

body.patodo.single-product table.variations th,
body.patodo.single-product table.variations td {
	display: block;
	padding: 0;
	border: 0;
	background: transparent;
	text-align: left;
}

body.patodo.single-product table.variations th.label {
	padding-top: 0.75rem;
	padding-bottom: 0.5rem;
}

body.patodo.single-product table.variations select {
	width: 100%;
}

body.patodo.single-product .reset_variations {
	font-size: 0.6875rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--p-muted);
}

/*
 * Variation Swatches (talla y género = botones de texto, color = cuadros de color).
 * El estado seleccionado debe verse sin depender del hover: en celular el hover se queda pegado.
 */
body.patodo .variable-items-wrapper {
	gap: 0.5rem;
	margin: 0;
}

body.patodo .variable-items-wrapper .variable-item:not(.radio-variable-item) {
	margin: 0 !important;
	border: 1px solid var(--p-line) !important;
	background: transparent !important;
	box-shadow: none !important;
	outline: none;
	/* Variation Swatches cambia el texto a negro en hover; sobre fondo oscuro desaparecería. */
	color: var(--p-text) !important;
	transition: border-color 0.12s, background-color 0.12s;
}

body.patodo .variable-items-wrapper .variable-item.button-variable-item {
	min-width: 48px;
	height: 44px;
	padding: 0 0.75rem;
}

body.patodo .variable-items-wrapper .variable-item .variable-item-span-button {
	font-family: var(--p-display);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	color: inherit;
}

@media (hover: hover) {
	body.patodo .variable-items-wrapper .variable-item:not(.radio-variable-item):not(.selected):hover {
		border-color: var(--p-chalk) !important;
		background: var(--p-overlay) !important;
		color: #fff !important;
	}
}

body.patodo .variable-items-wrapper .variable-item.button-variable-item.selected,
body.patodo .variable-items-wrapper .variable-item.button-variable-item.selected:hover {
	border-color: var(--p-chalk) !important;
	background: var(--p-chalk) !important;
	color: var(--p-canvas) !important;
}

body.patodo .variable-items-wrapper .variable-item.color-variable-item {
	width: 44px;
	height: 44px;
	padding: 4px !important;
}

body.patodo .variable-items-wrapper .variable-item.color-variable-item .variable-item-contents,
body.patodo .variable-items-wrapper .variable-item.color-variable-item .variable-item-span-color {
	width: 100%;
	height: 100%;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.12);
}

/* Seleccionado: borde blanco grueso + marca, visible sobre cualquier color (también el negro). */
body.patodo .variable-items-wrapper .variable-item.color-variable-item.selected,
body.patodo .variable-items-wrapper .variable-item.color-variable-item.selected:hover {
	border: 2px solid var(--p-chalk) !important;
	padding: 3px !important;
}

/* Variation Swatches ya dibuja su propia ✓ dentro del color elegido; no se agrega otra. */

/* Al final de la página el botón de WhatsApp quedaba encima del pie (enlace a la SIC):
   se reserva su espacio y el botón «volver arriba» de Astra va en la esquina contraria. */
html body.patodo .patodo-footer {
	padding-bottom: 112px;
}

html body.patodo #ast-scroll-top {
	bottom: 20px;
	right: auto;
	left: 20px;
	width: 44px;
	height: 44px;
	line-height: 44px;
	background-color: var(--p-cell);
	border: 1px solid var(--p-line-strong);
	color: var(--p-chalk);
}

html body.patodo #ast-scroll-top:hover {
	background-color: var(--p-overlay);
	border-color: var(--p-chalk);
}

html body.patodo #ast-scroll-top svg,
html body.patodo #ast-scroll-top path {
	fill: var(--p-chalk);
}

/* Ojo de «Mostrar contraseña» (WooCommerce): venía negro sobre el campo oscuro y de 15 px. */
html body.patodo .password-input {
	position: relative;
	display: block;
}

html body.patodo .password-input input {
	padding-right: 52px;
}

html body.patodo .show-password-input,
html body.patodo .show-password-input:hover,
html body.patodo .show-password-input:focus {
	position: absolute;
	top: 50%;
	right: 0;
	transform: none;
	translate: 0 -50%;
	width: 44px;
	height: 44px;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none;
	color: var(--p-text) !important;
}

html body.patodo .show-password-input::after {
	color: var(--p-text);
}

html body.patodo .show-password-input:hover::after {
	color: #fff;
}

html body.patodo .show-password-input:focus-visible {
	outline: 2px solid var(--p-text);
	outline-offset: -4px;
}

/* Botón flotante de WhatsApp: en celular solo el ícono, para no tapar el contenido. */
@media (max-width: 767px) {
	body.patodo .qlwapp__button.qlwapp__button--button {
		width: 52px;
		height: 52px;
		padding: 0;
		justify-content: center;
	}

	body.patodo .qlwapp__button.qlwapp__button--button .qlwapp__text {
		position: absolute !important;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(1px, 1px, 1px, 1px);
		white-space: nowrap;
	}

	body.patodo .qlwapp__button.qlwapp__button--button .qlwapp__icon {
		margin: 0;
	}
}

body.patodo .variable-items-wrapper .variable-item.disabled,
body.patodo .variable-items-wrapper .variable-item.no-stock {
	opacity: 0.35;
}

/* Tooltips: sobran en botones de texto y en pantallas táctiles (se quedan pegados). */
body.patodo .variable-items-wrapper .variable-item.button-variable-item[data-wvstooltip]::before,
body.patodo .variable-items-wrapper .variable-item.button-variable-item[data-wvstooltip]::after {
	display: none !important;
}

@media (hover: none) {
	body.patodo .variable-items-wrapper .variable-item[data-wvstooltip]::before,
	body.patodo .variable-items-wrapper .variable-item[data-wvstooltip]::after {
		display: none !important;
	}
}

body.patodo .variable-items-wrapper .variable-item.color-variable-item[data-wvstooltip]::before {
	background: var(--p-chalk) !important;
	color: var(--p-canvas) !important;
	font-family: var(--p-display);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

body.patodo .variable-items-wrapper .variable-item.color-variable-item[data-wvstooltip]::after {
	border-top-color: var(--p-chalk) !important;
}

/* Nombre de la opción elegida junto a la etiqueta ("Color: Negro"). */
body.patodo .woo-selected-variation-item-name {
	margin-left: 0.35rem;
	color: #fff;
	font-weight: 600;
	letter-spacing: 0.08em;
}

body.patodo.single-product form.cart {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-bottom: 1.5rem;
}

body.patodo.single-product form.variations_form {
	display: block;
}

body.patodo.single-product .woocommerce-variation-add-to-cart {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

body.patodo .quantity .qty,
html body.patodo .quantity .qty {
	width: 4.5rem;
	min-height: 48px;
	text-align: center;
}

body.patodo .quantity .ast-qty-placeholder,
body.patodo .quantity .minus,
body.patodo .quantity .plus {
	border-color: var(--p-line) !important;
	background: var(--p-cell) !important;
	color: #fff !important;
}

body.patodo.single-product .single_add_to_cart_button {
	flex: 1;
	min-width: 12rem;
}

/*
 * Astra fuerza texto blanco en este botón con selectores muy específicos (estados
 * deshabilitado y hover). Como el fondo del sistema es claro, se fija con !important:
 * fondo claro = letra negra siempre.
 */
html body.patodo .single_add_to_cart_button.button,
html body.patodo .single_add_to_cart_button.button:focus {
	background: var(--p-chalk) !important;
	border: 1px solid var(--p-chalk) !important;
	color: var(--p-canvas) !important;
	opacity: 1 !important;
}

html body.patodo .single_add_to_cart_button.button:hover,
html body.patodo .single_add_to_cart_button.button:active {
	background: var(--p-olive) !important;
	border: 1px solid var(--p-olive) !important;
	color: var(--p-canvas) !important;
}

html body.patodo .single_add_to_cart_button.button.disabled,
html body.patodo .single_add_to_cart_button.button:disabled,
html body.patodo .single_add_to_cart_button.button.disabled:hover,
html body.patodo .single_add_to_cart_button.button:disabled:hover {
	background: transparent !important;
	border: 1px solid var(--p-chalk) !important;
	color: var(--p-chalk) !important;
	cursor: not-allowed;
}

body.patodo.single-product .woocommerce-tabs,
body.patodo.single-product section.up-sells,
body.patodo.single-product section.related {
	margin-top: 4rem;
	padding-top: 3rem;
	border-top: 1px solid var(--p-line);
}

.patodo-assurance {
	display: flex;
	flex-direction: column;
	margin: 0 0 1.5rem;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--p-line);
}

.patodo-assurance li {
	display: flex;
	gap: 0.85rem;
	padding: 1rem 0;
	border-bottom: 1px solid var(--p-line);
	color: var(--p-mineral);
}

.patodo-assurance strong {
	display: block;
	font-family: var(--p-display);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #fff;
}

.patodo-assurance span {
	font-size: 0.8125rem;
	color: var(--p-muted);
}

body.patodo.single-product .product_meta {
	font-size: 0.6875rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--p-dim);
}

body.patodo .woocommerce-tabs ul.tabs {
	margin: 0 0 1.5rem;
	padding: 0;
	border-bottom: 1px solid var(--p-line);
}

body.patodo .woocommerce-tabs ul.tabs::before,
body.patodo .woocommerce-tabs ul.tabs li::before,
body.patodo .woocommerce-tabs ul.tabs li::after {
	display: none !important;
}

body.patodo .woocommerce-tabs ul.tabs li {
	margin: 0 1.5rem 0 0;
	padding: 0;
	border: 0;
	background: transparent;
}

body.patodo .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 0.85rem 0;
	border-bottom: 1px solid transparent;
	font-family: var(--p-display);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--p-muted);
}

body.patodo .woocommerce-tabs ul.tabs li.active a {
	color: #fff;
	border-bottom-color: #fff;
}

body.patodo .woocommerce-tabs .panel {
	color: var(--p-muted);
}

body.patodo table.shop_attributes,
body.patodo table.shop_attributes th,
body.patodo table.shop_attributes td {
	border-color: var(--p-line);
	background: transparent;
	color: var(--p-text);
}

body.patodo table.shop_attributes th {
	font-family: var(--p-display);
	font-size: 0.6875rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--p-muted);
}

body.patodo .related > h2,
body.patodo .up-sells > h2,
body.patodo .cross-sells > h2 {
	margin: 0 0 1.5rem;
	font-size: 1.5rem;
	text-transform: uppercase;
}

/* ---------------------------------------------------------------
   10. Carrito, checkout y cuenta
--------------------------------------------------------------- */
body.patodo table.shop_table,
html body.patodo table.shop_table {
	border: 1px solid var(--p-line);
	border-collapse: collapse;
	background: var(--p-cell);
}

body.patodo table.shop_table th,
body.patodo table.shop_table td,
html body.patodo table.shop_table th,
html body.patodo table.shop_table td {
	border-color: var(--p-line) !important;
	background: transparent;
	color: var(--p-text);
}

body.patodo table.shop_table thead th {
	font-family: var(--p-display);
	font-size: 0.6875rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--p-muted);
}

body.patodo table.shop_table td.product-name a {
	font-family: var(--p-display);
	text-transform: uppercase;
	text-decoration: none;
}

html body.patodo a.remove {
	color: var(--p-muted) !important;
	border: 1px solid var(--p-line);
	font-weight: 400;
}

html body.patodo a.remove:hover {
	background: var(--p-chalk);
	color: var(--p-canvas) !important;
}

body.patodo .cart-collaterals .cart_totals,
body.patodo .woocommerce-checkout-review-order,
body.patodo #order_review,
body.patodo .woocommerce-checkout #customer_details .col-1,
body.patodo .woocommerce-checkout #customer_details .col-2 {
	padding: 1.5rem;
	border: 1px solid var(--p-line);
	background: var(--p-cell);
}

body.patodo .cart-collaterals .cart_totals table.shop_table,
body.patodo #order_review table.shop_table {
	border: 0;
	background: transparent;
}

body.patodo .cart_totals h2,
body.patodo #order_review_heading,
body.patodo .woocommerce-billing-fields h3,
body.patodo .woocommerce-shipping-fields h3,
body.patodo .woocommerce-additional-fields h3 {
	font-size: 1.125rem;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

body.patodo .order-total .amount,
body.patodo .cart_totals .order-total .amount {
	font-family: var(--p-display);
	font-size: 1.25rem;
	color: #fff;
}

body.patodo #payment,
body.patodo .woocommerce-checkout #payment,
body.patodo .woocommerce-checkout #payment ul.payment_methods {
	border-color: var(--p-line);
	background: var(--p-canvas);
}

body.patodo .woocommerce-checkout #payment div.payment_box {
	background: var(--p-overlay);
	color: var(--p-muted);
}

body.patodo .woocommerce-checkout #payment div.payment_box::before {
	border-bottom-color: var(--p-overlay);
}

body.patodo .woocommerce-checkout #payment ul.payment_methods li {
	border-bottom: 1px solid var(--p-line);
	padding: 0.85rem 0;
}

body.patodo .woocommerce-checkout #payment ul.payment_methods li img {
	max-height: 24px;
}

body.patodo .woocommerce-message,
body.patodo .woocommerce-info,
body.patodo .woocommerce-error,
body.patodo .woocommerce-notice,
body.patodo .wc-block-components-notice-banner {
	border: 1px solid var(--p-line);
	border-left: 2px solid var(--p-olive);
	background: var(--p-cell);
	color: var(--p-text);
}

body.patodo .woocommerce-error,
body.patodo .wc-block-components-notice-banner.is-error {
	border-left-color: var(--p-error);
}

/* WooCommerce pinta de blanco los botones de los avisos con una regla anidada; la clase doble la supera. */
html body.patodo .woocommerce-message .button.button,
html body.patodo .woocommerce-info .button.button,
html body.patodo .woocommerce-error .button.button {
	min-height: 40px;
	padding: 0.6rem 1.25rem;
	background: var(--p-chalk);
	border-color: var(--p-chalk);
	color: var(--p-canvas);
}

html body.patodo .woocommerce-message .button.button:hover,
html body.patodo .woocommerce-info .button.button:hover,
html body.patodo .woocommerce-error .button.button:hover {
	background: var(--p-olive);
	border-color: var(--p-olive);
	color: var(--p-canvas);
}

body.patodo .woocommerce-message::before,
body.patodo .woocommerce-info::before {
	color: var(--p-olive);
}

body.patodo .woocommerce-error::before {
	color: var(--p-error);
}

body.patodo .woocommerce-MyAccount-navigation ul {
	margin: 0;
	padding: 0;
	border: 1px solid var(--p-line);
	list-style: none;
}

body.patodo .woocommerce-MyAccount-navigation ul li {
	border-bottom: 1px solid var(--p-line);
}

body.patodo .woocommerce-MyAccount-navigation ul li:last-child {
	border-bottom: 0;
}

body.patodo .woocommerce-MyAccount-navigation ul li a {
	display: block;
	padding: 0.85rem 1rem;
	font-family: var(--p-display);
	font-size: 0.75rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--p-muted);
}

body.patodo .woocommerce-MyAccount-navigation ul li.is-active a,
body.patodo .woocommerce-MyAccount-navigation ul li a:hover {
	background: var(--p-overlay);
	color: #fff;
}

html body.patodo form.login,
html body.patodo form.register,
html body.patodo form.checkout_coupon,
html body.patodo form.lost_reset_password {
	border: 1px solid var(--p-line);
	background: var(--p-cell);
}

/* ---------------------------------------------------------------
   10b. Páginas de contenido (Novedades, Somos, Contacto, políticas)
--------------------------------------------------------------- */
body.patodo.page:not(.patodo-front):not(.woocommerce-page) .site-content > .ast-container {
	padding-top: 3rem;
	padding-bottom: 5rem;
}

body.patodo.page:not(.patodo-front) .entry-header .entry-title {
	margin-bottom: 1.5rem;
	font-size: 2rem;
	text-transform: uppercase;
	letter-spacing: -0.03em;
}

@media (min-width: 1024px) {
	body.patodo.page:not(.patodo-front) .entry-header .entry-title {
		font-size: 3rem;
	}
}

/* Ancho de lectura solo en páginas de texto; carrito, pago y cuenta usan todo el ancho. */
body.patodo:not(.woocommerce-page) .entry-content {
	max-width: 46rem;
	color: var(--p-mineral);
	font-size: 1rem;
	line-height: 1.7;
}

body.patodo .entry-content h2,
body.patodo .entry-content h3 {
	margin: 2.25rem 0 0.75rem;
	text-transform: uppercase;
}

body.patodo .entry-content h2 {
	font-size: 1.375rem;
}

body.patodo .entry-content h3 {
	font-size: 1.0625rem;
}

body.patodo .entry-content a {
	text-decoration: underline;
}

body.patodo .entry-content ul,
body.patodo .entry-content ol {
	margin-left: 1.25rem;
}

body.patodo .entry-content strong {
	color: #fff;
}

.patodo-page__head {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	margin-bottom: 3rem;
}

.patodo-page__content {
	margin-top: 0.5rem;
}

.patodo-blog-head {
	grid-column: 1 / -1;
	flex-basis: 100%;
	width: 100%;
}

@media (max-width: 921px) {
	body.patodo .patodo-blog-head {
		padding-inline: 34px;
	}
}

.patodo-teaser {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 1rem;
	padding: 2.5rem 1.75rem;
	border: 1px solid var(--p-line);
	border-left: 1px solid var(--p-olive);
	background: var(--p-cell);
}

.patodo-teaser p {
	max-width: 36rem;
	margin: 0;
	color: var(--p-muted);
}

body.patodo .entry-content ul.patodo-contact-cards,
.patodo-contact-cards {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
	margin: 2rem 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 768px) {
	.patodo-contact-cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.patodo-contact-cards li {
	padding: 1.5rem;
	border: 1px solid var(--p-line);
	background: var(--p-cell);
}

.patodo-contact-cards strong {
	display: block;
	margin-bottom: 0.4rem;
	font-family: var(--p-display);
	font-size: 0.75rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--p-muted);
}

body.patodo .patodo-contact-cards a {
	font-family: var(--p-display);
	font-size: 1.125rem;
	text-decoration: none;
	color: #fff;
}

.patodo-404__search {
	max-width: 28rem;
	margin-bottom: 1.5rem;
}

/* Carrito y pago en computador: contenido a la izquierda, resumen y botón a la derecha. */
@media (min-width: 1024px) {
	body.patodo.woocommerce-cart .entry-content > .woocommerce:has(form.woocommerce-cart-form) {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(320px, 400px);
		column-gap: 2.5rem;
		row-gap: 0;
		align-items: start;
	}

	body.patodo.woocommerce-cart .entry-content > .woocommerce > .woocommerce-notices-wrapper {
		grid-column: 1 / -1;
		grid-row: 1;
	}

	body.patodo.woocommerce-cart .entry-content > .woocommerce > form.woocommerce-cart-form {
		grid-column: 1;
		grid-row: 2;
	}

	body.patodo.woocommerce-cart .entry-content > .woocommerce > .cart-collaterals {
		grid-column: 2;
		grid-row: 2;
		position: sticky;
		top: 120px;
		width: auto;
	}

	body.patodo.woocommerce-cart .cart-collaterals .cart_totals,
	body.patodo.woocommerce-cart .cart-collaterals .cross-sells {
		float: none;
		width: 100%;
	}

	body.patodo.woocommerce-checkout form.checkout {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(340px, 440px);
		/* La columna de datos abarca las filas 2-3; el sobrante va a la última para no separar "Tu pedido" del resumen. */
		grid-template-rows: auto auto 1fr;
		column-gap: 2.5rem;
		row-gap: 0;
		align-items: start;
	}

	body.patodo.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup,
	body.patodo.woocommerce-checkout form.checkout > .woocommerce-notices-wrapper {
		grid-column: 1 / -1;
		grid-row: 1;
	}

	body.patodo.woocommerce-checkout form.checkout > #customer_details {
		grid-column: 1;
		grid-row: 2 / span 2;
		float: none;
		width: auto;
		margin: 0;
	}

	body.patodo.woocommerce-checkout form.checkout > #order_review_heading {
		grid-column: 2;
		grid-row: 2;
		float: none;
		width: auto;
		margin: 0;
		padding: 1.5rem 1.5rem 0;
		border: 1px solid var(--p-line);
		border-bottom: 0;
		background: var(--p-cell);
	}

	body.patodo.woocommerce-checkout form.checkout > #order_review {
		grid-column: 2;
		grid-row: 3;
		float: none;
		width: auto;
		margin: 0;
		border-top: 0;
	}
}

body.patodo.woocommerce-checkout #customer_details .col-1,
body.patodo.woocommerce-checkout #customer_details .col-2 {
	float: none;
	width: 100%;
	max-width: none;
}

body.patodo.woocommerce-checkout #customer_details .col-2 {
	margin-top: 1.5rem;
}

/* Astra pinta de #fbfbfb la cabecera de tablas y el título de totales del carrito. */
body.patodo table.shop_table thead,
body.patodo table.shop_table thead tr,
body.patodo table.shop_table thead th {
	background: var(--p-overlay) !important;
}

body.patodo .cart_totals > h2,
body.patodo .cart-collaterals .cart_totals > h2 {
	margin: 0 0 1rem;
	padding: 0;
	border: 0;
	background: transparent !important;
	color: #fff;
}

/* Zonas táctiles de al menos 44 px en celular y tableta. */
@media (max-width: 1023px) {
	.patodo-burger,
	.patodo-chip--icon {
		width: 44px;
		height: 44px;
	}

	.patodo-chip {
		height: 44px;
	}

	.patodo-logo {
		min-height: 44px;
	}

	.patodo-footer__list,
	.patodo-footer .patodo-menu,
	.patodo-footer__contact {
		gap: 0;
	}

	html body.patodo .patodo-footer__list a,
	html body.patodo .patodo-footer .patodo-menu a,
	html body.patodo .patodo-footer__contact a {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
		padding: 0;
	}
}

body.patodo .patodo-404__search .dgwt-wcas-sf-wrapp input[type="search"].dgwt-wcas-search-input {
	height: 48px;
	border: 1px solid var(--p-line);
	background: var(--p-cell);
	color: #fff;
}

body.patodo .patodo-404__search .dgwt-wcas-search-submit {
	min-width: 44px;
	min-height: 44px;
}

body.patodo .woocommerce-product-gallery__trigger {
	width: 44px !important;
	height: 44px !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
}

/* ---------------------------------------------------------------
   10c. Legal: formularios PQR, avisos, pendientes y checkout
--------------------------------------------------------------- */
.patodo-form {
	margin: 2rem 0;
	padding: 1.5rem;
	border: 1px solid var(--p-line);
	background: var(--p-cell);
}

.patodo-form__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0 1.25rem;
	margin: 0;
}

@media (min-width: 768px) {
	.patodo-form__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.patodo-form__grid p {
	margin: 0 0 1.1rem;
}

.patodo-form__full {
	grid-column: 1 / -1;
}

.patodo-form__grid label {
	display: block;
	margin-bottom: 0.4rem;
}

body.patodo .patodo-form__grid input:not([type="checkbox"]),
body.patodo .patodo-form__grid select,
body.patodo .patodo-form__grid textarea {
	width: 100%;
}



.patodo-form__trap {
	position: absolute !important;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.patodo-notice {
	margin-bottom: 1.5rem;
	padding: 1rem 1.25rem;
	border: 1px solid var(--p-line);
	border-left: 2px solid var(--p-olive);
	background: var(--p-overlay);
	color: var(--p-text);
}

.patodo-notice--error {
	border-left-color: var(--p-error);
}

.patodo-notice p {
	margin: 0.4rem 0 0;
}

body.patodo .patodo-notice code {
	padding: 0.1rem 0.4rem;
	background: var(--p-chalk);
	color: var(--p-canvas);
	font-size: 0.9375rem;
}

/* Datos que el dueño debe completar antes de publicar en producción. */
body.patodo mark.patodo-pendiente {
	padding: 0 0.3rem;
	background: #ffd54a;
	color: #0f0f0f;
	font-weight: 600;
}

.patodo-delivery-note {
	margin: 0 0 1rem;
	padding: 0.85rem 1rem;
	border: 1px solid var(--p-line);
	border-left: 2px solid var(--p-olive);
	background: var(--p-overlay);
}

.patodo-delivery-note strong {
	font-family: var(--p-display);
	font-size: 0.75rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #fff;
}

.patodo-delivery-note p {
	margin: 0.35rem 0 0;
	font-size: 0.875rem;
	color: var(--p-mineral);
}

/* Casillas legales: casilla a la izquierda y el texto (con enlaces) fluyendo al lado. */
html body.patodo .patodo-form__check label,
html body.patodo form .form-row.patodo-consent label,
html body.patodo .woocommerce-terms-and-conditions-wrapper .form-row label {
	display: block;
	position: relative;
	padding-left: 1.75rem;
	font-family: var(--p-body);
	font-size: 0.875rem;
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: 0;
	text-transform: none;
	color: var(--p-mineral);
}

html body.patodo .patodo-form__check label input[type="checkbox"],
html body.patodo form .form-row.patodo-consent label input[type="checkbox"],
html body.patodo .woocommerce-terms-and-conditions-wrapper .form-row label input[type="checkbox"] {
	position: absolute;
	left: 0;
	top: 0.15rem;
	margin: 0;
}

html body.patodo form .form-row.patodo-consent label a,
html body.patodo .woocommerce-terms-and-conditions-wrapper .form-row label a,
html body.patodo .patodo-form__check label a,
html body.patodo .woocommerce-privacy-policy-text a,
html body.patodo .woocommerce-privacy-policy-text a.woocommerce-privacy-policy-link,
html body.patodo .woocommerce-terms-and-conditions a {
	color: #fff;
	font-weight: 500;
	text-decoration: underline;
	text-underline-offset: 3px;
}

html body.patodo .woocommerce-terms-and-conditions a {
	text-decoration: underline !important;
}

body.patodo .woocommerce-terms-and-conditions {
	max-height: 18rem;
	padding: 1rem;
	border: 1px solid var(--p-line) !important;
	background: var(--p-canvas);
	color: var(--p-mineral);
}

body.patodo .patodo-footer__sic {
	color: var(--p-mineral);
	text-decoration: underline;
}

@media (max-width: 1023px) {
	html body.patodo .patodo-footer__sic {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
	}
}

/* ---------------------------------------------------------------
   10d. Guía de tallas: botón, ventana, diagrama y tablas
--------------------------------------------------------------- */
body.patodo .patodo-size-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	min-height: 44px;
	margin: 0 0 0.75rem;
	padding: 0 0.9rem;
	border: 1px solid var(--p-line-strong);
	background: transparent;
	color: var(--p-chalk);
	font-family: var(--p-display);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	cursor: pointer;
}

body.patodo .patodo-size-btn:hover,
body.patodo .patodo-size-btn:focus-visible {
	border-color: var(--p-chalk);
	background: var(--p-overlay);
	color: #fff;
}

body.patodo-dialog-open {
	overflow: hidden;
}

.patodo-dialog {
	width: min(760px, calc(100vw - 2rem));
	max-height: calc(100dvh - 2rem);
	margin: auto;
	padding: 0;
	border: 1px solid var(--p-line-strong);
	background: var(--p-canvas);
	color: var(--p-text);
	overflow: hidden;
}

.patodo-dialog::backdrop {
	background: rgba(0, 0, 0, 0.75);
}

.patodo-dialog__inner {
	display: flex;
	flex-direction: column;
	max-height: calc(100dvh - 2rem);
}

.patodo-dialog__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem 1.25rem;
	border-bottom: 1px solid var(--p-line);
	background: var(--p-lowest);
}

.patodo-dialog__head h2 {
	margin: 0;
	font-size: 1.125rem;
	text-transform: uppercase;
}

body.patodo .patodo-dialog__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	min-height: 0;
	padding: 0;
	border: 1px solid var(--p-line-strong);
	background: transparent;
	color: #fff;
}

body.patodo .patodo-dialog__close:hover {
	border-color: var(--p-chalk);
	background: var(--p-overlay);
	color: #fff;
}

.patodo-dialog__body {
	padding: 1.25rem;
	overflow-y: auto;
}

body.patodo .patodo-dialog__body.entry-content {
	max-width: none;
}

.patodo-measure {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
	align-items: center;
	margin: 1rem 0 2rem;
	padding: 1.25rem;
	border: 1px solid var(--p-line);
	background: var(--p-cell);
}

@media (min-width: 640px) {
	.patodo-measure {
		grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	}
}

.patodo-measure__figure {
	margin: 0;
}

.patodo-measure__svg {
	display: block;
	width: 100%;
	max-width: 320px;
	height: auto;
	margin: 0 auto;
}

.patodo-measure__shirt {
	fill: var(--p-overlay);
	stroke: var(--p-mineral);
	stroke-width: 2;
	stroke-linejoin: round;
}

.patodo-measure__collar {
	fill: none;
	stroke: var(--p-mineral);
	stroke-width: 2;
}

.patodo-measure__line {
	stroke: var(--p-olive);
	stroke-width: 2.5;
}

.patodo-measure__head {
	fill: var(--p-olive);
}

.patodo-measure__badge {
	fill: var(--p-olive);
}

.patodo-measure__label {
	fill: var(--p-canvas);
	font-family: var(--p-display);
	font-size: 15px;
	font-weight: 700;
}

.patodo-measure__steps {
	margin: 0;
	padding-left: 1.25rem;
	color: var(--p-mineral);
}

.patodo-measure__steps li {
	margin-bottom: 0.5rem;
}

body.patodo .patodo-measure__steps strong {
	color: #fff;
}

.patodo-size-tables {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
}

@media (min-width: 768px) {
	.patodo-size-tables {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

body.patodo table.patodo-size-table thead th:first-child {
	width: 24%;
}

body.patodo table.patodo-size-table {
	table-layout: fixed;
	width: 100%;
	margin: 0;
	border: 1px solid var(--p-line);
	border-collapse: collapse;
	background: var(--p-cell);
	font-size: 0.9375rem;
}

body.patodo table.patodo-size-table caption {
	padding: 0 0 0.6rem;
	text-align: left;
	font-family: var(--p-display);
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #fff;
}

body.patodo table.patodo-size-table th,
body.patodo table.patodo-size-table td {
	padding: 0.7rem 0.85rem;
	border: 0;
	border-bottom: 1px solid var(--p-line);
	text-align: left;
	color: var(--p-text);
}

body.patodo table.patodo-size-table thead th {
	background: var(--p-overlay);
	font-family: var(--p-display);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--p-muted);
}

body.patodo table.patodo-size-table tbody th {
	font-family: var(--p-display);
	font-weight: 600;
	color: #fff;
}

/* ---------------------------------------------------------------
   11. Pie de página
--------------------------------------------------------------- */
.patodo-footer {
	padding: 4rem var(--p-gutter) 2rem;
	border-top: 1px solid var(--p-line);
	background: var(--p-lowest);
	color: var(--p-muted);
	font-size: 0.875rem;
}

.patodo-footer__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2.5rem;
	padding-bottom: 3rem;
}

@media (min-width: 768px) {
	.patodo-footer__grid {
		grid-template-columns: 2fr repeat(3, minmax(0, 1fr));
	}
}

.patodo-footer__name {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin: 0 0 0.75rem;
	font-family: var(--p-display);
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	color: #fff;
}

.patodo-footer__blurb {
	max-width: 24rem;
	margin: 0 0 1.25rem;
}

.patodo-footer__contact,
.patodo-footer__list,
.patodo-footer .patodo-menu {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.6rem;
	margin: 1rem 0 0;
	padding: 0;
	list-style: none;
}

body.patodo .patodo-footer__contact a {
	text-decoration: none;
	color: var(--p-mineral);
}

body.patodo .patodo-footer__contact a:hover {
	color: #fff;
}

.patodo-footer__contact {
	margin: 0;
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

body.patodo .patodo-footer__list a,
body.patodo .patodo-footer .patodo-menu a {
	padding: 0;
	border: 0;
	font-family: var(--p-body);
	font-size: 0.75rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--p-mineral);
}

body.patodo .patodo-footer__list a:hover,
body.patodo .patodo-footer .patodo-menu a:hover {
	color: #fff;
}

.patodo-footer__pay {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.25rem 0;
	border-top: 1px solid var(--p-line);
	border-bottom: 1px solid var(--p-line);
}

.patodo-footer__pay-list {
	font-size: 0.75rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--p-mineral);
}

.patodo-footer__base {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0.75rem 2rem;
	padding-top: 1.5rem;
	font-size: 0.6875rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--p-dim);
}


/* Cuidados de la ropa: lista con símbolos de lavado (página propia y pestaña de cada producto). */
html body.patodo .entry-content ul.patodo-care,
html body.patodo ul.patodo-care {
	list-style: none;
	margin: 1.5rem 0;
	padding: 0;
	border-top: 1px solid var(--p-line);
}

html body.patodo ul.patodo-care > li {
	display: grid;
	grid-template-columns: 44px minmax(0, 1fr);
	column-gap: 1rem;
	align-items: center;
	margin: 0;
	padding: 1rem 0;
	border-bottom: 1px solid var(--p-line);
}

html body.patodo ul.patodo-care > li::before {
	content: "";
	grid-row: 1 / span 2;
	width: 44px;
	height: 44px;
	background-color: var(--p-chalk);
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
}

html body.patodo ul.patodo-care > li > strong {
	display: block;
	font-family: var(--p-display);
	font-size: 0.875rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #fff;
}

html body.patodo ul.patodo-care > li > span {
	display: block;
	color: var(--p-muted);
}

html body.patodo .patodo-care__more {
	margin-top: 0;
}

html body.patodo .patodo-care__item--mano::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath stroke='black' stroke-width='2.5' fill='none' stroke-linecap='round' stroke-linejoin='round' d='M5 21 L9.5 42 H38.5 L43 21'/%3E%3Cpath stroke='black' stroke-width='2.5' fill='none' stroke-linecap='round' stroke-linejoin='round' d='M5 21 c3 -3 6.5 -3 9.5 0 s6.5 3 9.5 0 s6.5 -3 9.5 0 s6.5 3 9.5 0'/%3E%3Crect stroke='black' stroke-width='2.5' fill='none' stroke-linecap='round' stroke-linejoin='round' x='18.5' y='4' width='13.5' height='9' rx='3'/%3E%3Cpath stroke='black' stroke-width='2.5' fill='none' stroke-linecap='round' stroke-linejoin='round' d='M20.5 13 V22 M24 13 V23 M27.5 13 V23 M31 13 V21 M18.5 9.5 L15 14'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath stroke='black' stroke-width='2.5' fill='none' stroke-linecap='round' stroke-linejoin='round' d='M5 21 L9.5 42 H38.5 L43 21'/%3E%3Cpath stroke='black' stroke-width='2.5' fill='none' stroke-linecap='round' stroke-linejoin='round' d='M5 21 c3 -3 6.5 -3 9.5 0 s6.5 3 9.5 0 s6.5 -3 9.5 0 s6.5 3 9.5 0'/%3E%3Crect stroke='black' stroke-width='2.5' fill='none' stroke-linecap='round' stroke-linejoin='round' x='18.5' y='4' width='13.5' height='9' rx='3'/%3E%3Cpath stroke='black' stroke-width='2.5' fill='none' stroke-linecap='round' stroke-linejoin='round' d='M20.5 13 V22 M24 13 V23 M27.5 13 V23 M31 13 V21 M18.5 9.5 L15 14'/%3E%3C/svg%3E");
}

html body.patodo .patodo-care__item--blanqueador::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath stroke='black' stroke-width='2.5' fill='none' stroke-linecap='round' stroke-linejoin='round' d='M24 7 L42 38 H6 Z'/%3E%3Cpath stroke='black' stroke-width='2.5' fill='none' stroke-linecap='round' stroke-linejoin='round' d='M9 8 L39 41 M39 8 L9 41'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath stroke='black' stroke-width='2.5' fill='none' stroke-linecap='round' stroke-linejoin='round' d='M24 7 L42 38 H6 Z'/%3E%3Cpath stroke='black' stroke-width='2.5' fill='none' stroke-linecap='round' stroke-linejoin='round' d='M9 8 L39 41 M39 8 L9 41'/%3E%3C/svg%3E");
}

html body.patodo .patodo-care__item--retorcer::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath stroke='black' stroke-width='2.5' fill='none' stroke-linecap='round' stroke-linejoin='round' d='M6 16 C14 16 16 24 24 24 C32 24 34 16 42 16 M6 32 C14 32 16 24 24 24 C32 24 34 32 42 32 M6 16 V32 M42 16 V32'/%3E%3Cpath stroke='black' stroke-width='2.5' fill='none' stroke-linecap='round' stroke-linejoin='round' d='M9 7 L39 41 M39 7 L9 41'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath stroke='black' stroke-width='2.5' fill='none' stroke-linecap='round' stroke-linejoin='round' d='M6 16 C14 16 16 24 24 24 C32 24 34 16 42 16 M6 32 C14 32 16 24 24 24 C32 24 34 32 42 32 M6 16 V32 M42 16 V32'/%3E%3Cpath stroke='black' stroke-width='2.5' fill='none' stroke-linecap='round' stroke-linejoin='round' d='M9 7 L39 41 M39 7 L9 41'/%3E%3C/svg%3E");
}

html body.patodo .patodo-care__item--sol::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Ccircle stroke='black' stroke-width='2.5' fill='none' stroke-linecap='round' stroke-linejoin='round' cx='24' cy='24' r='7'/%3E%3Cpath stroke='black' stroke-width='2.5' fill='none' stroke-linecap='round' stroke-linejoin='round' d='M24 6 V11 M24 37 V42 M6 24 H11 M37 24 H42 M11.3 11.3 L14.8 14.8 M33.2 33.2 L36.7 36.7 M36.7 11.3 L33.2 14.8 M14.8 33.2 L11.3 36.7'/%3E%3Cpath stroke='black' stroke-width='2.5' fill='none' stroke-linecap='round' stroke-linejoin='round' d='M8 8 L40 40'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Ccircle stroke='black' stroke-width='2.5' fill='none' stroke-linecap='round' stroke-linejoin='round' cx='24' cy='24' r='7'/%3E%3Cpath stroke='black' stroke-width='2.5' fill='none' stroke-linecap='round' stroke-linejoin='round' d='M24 6 V11 M24 37 V42 M6 24 H11 M37 24 H42 M11.3 11.3 L14.8 14.8 M33.2 33.2 L36.7 36.7 M36.7 11.3 L33.2 14.8 M14.8 33.2 L11.3 36.7'/%3E%3Cpath stroke='black' stroke-width='2.5' fill='none' stroke-linecap='round' stroke-linejoin='round' d='M8 8 L40 40'/%3E%3C/svg%3E");
}

html body.patodo .patodo-care__item--plancha::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath stroke='black' stroke-width='2.5' fill='none' stroke-linecap='round' stroke-linejoin='round' d='M6 36 L11 23 C12 21 13 20 15 20 H41 V36 Z'/%3E%3Cpath stroke='black' stroke-width='2.5' fill='none' stroke-linecap='round' stroke-linejoin='round' d='M18 20 V15 C18 13.5 19 13 20 13 H35 C36.5 13 37 14 37 15 V20'/%3E%3Ccircle cx='26' cy='29' r='2' fill='black'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath stroke='black' stroke-width='2.5' fill='none' stroke-linecap='round' stroke-linejoin='round' d='M6 36 L11 23 C12 21 13 20 15 20 H41 V36 Z'/%3E%3Cpath stroke='black' stroke-width='2.5' fill='none' stroke-linecap='round' stroke-linejoin='round' d='M18 20 V15 C18 13.5 19 13 20 13 H35 C36.5 13 37 14 37 15 V20'/%3E%3Ccircle cx='26' cy='29' r='2' fill='black'/%3E%3C/svg%3E");
}

/* Opciones de envío (pago y bolsa): una tarjeta por transportadora, a todo el ancho.
   El resumen deja de ser tabla para que la fila del envío pueda ocupar una línea completa.
   En la bolsa, en celular, se respeta la tabla adaptable de WooCommerce (etiqueta antes del valor). */
html body.patodo table.woocommerce-checkout-review-order-table,
html body.patodo table.woocommerce-checkout-review-order-table > thead,
html body.patodo table.woocommerce-checkout-review-order-table > tbody,
html body.patodo table.woocommerce-checkout-review-order-table > tfoot {
	display: block;
}

html body.patodo table.woocommerce-checkout-review-order-table tr {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: baseline;
	gap: 0 1rem;
}

html body.patodo table.woocommerce-checkout-review-order-table tr:not(:last-child) {
	border-bottom: 1px solid var(--p-line);
}

html body.patodo table.woocommerce-checkout-review-order-table tr > * {
	border: 0 !important;
}

html body.patodo table.woocommerce-checkout-review-order-table tr > :first-child {
	flex: 1 1 auto;
	min-width: 0;
}

html body.patodo table.woocommerce-checkout-review-order-table tr > :last-child:not(:first-child) {
	flex: 0 0 auto;
	text-align: right;
}

html body.patodo .woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals > th,
html body.patodo .woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals > td {
	display: block;
	flex: 1 1 100%;
	width: 100%;
	text-align: left;
}

html body.patodo .woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals > th {
	padding-bottom: 0.5rem;
}

html body.patodo .woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals > td {
	padding-top: 0;
}

@media (min-width: 768px) {
	html body.patodo .cart_totals table.shop_table,
	html body.patodo .cart_totals table.shop_table > tbody {
		display: block;
	}

	html body.patodo .cart_totals table.shop_table tr {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		align-items: baseline;
		gap: 0 1rem;
	}

	html body.patodo .cart_totals table.shop_table tr:not(:last-child) {
		border-bottom: 1px solid var(--p-line);
	}

	html body.patodo .cart_totals table.shop_table tr > * {
		border: 0 !important;
	}

	html body.patodo .cart_totals tr.woocommerce-shipping-totals > th,
	html body.patodo .cart_totals tr.woocommerce-shipping-totals > td {
		display: block;
		flex: 1 1 100%;
		width: 100%;
		text-align: left;
	}

	html body.patodo .cart_totals tr.woocommerce-shipping-totals > th {
		padding-bottom: 0.5rem;
	}

	html body.patodo .cart_totals tr.woocommerce-shipping-totals > td {
		padding-top: 0;
	}
}

@media (max-width: 767px) {
	html body.patodo .cart_totals tr.woocommerce-shipping-totals > td,
	html body.patodo .cart_totals tr.woocommerce-shipping-totals > td * {
		text-align: left !important;
	}

	html body.patodo .cart_totals tr.woocommerce-shipping-totals > td::before {
		float: none;
		display: block;
		margin-bottom: 0.5rem;
	}
}

html body.patodo ul#shipping_method {
	display: grid;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

html body.patodo ul#shipping_method li {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: center;
	gap: 0 0.75rem;
	margin: 0;
	padding: 0.75rem 0.9rem !important;
	text-indent: 0;
	border: 1px solid var(--p-line);
	background: var(--p-cell);
	text-align: left;
	text-transform: none;
	letter-spacing: normal;
}

html body.patodo ul#shipping_method li:has(input:checked) {
	border-color: var(--p-chalk);
}

html body.patodo ul#shipping_method li input {
	margin: 0;
}

html body.patodo ul#shipping_method li input[type="hidden"] + label {
	grid-column: 1 / -1;
}

html body.patodo ul#shipping_method li label {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 0.15rem 0.75rem;
	align-items: baseline;
	margin: 0;
	padding: 0;
	text-indent: 0;
	cursor: pointer;
	text-transform: none;
	letter-spacing: normal;
	font-weight: 400;
}

html body.patodo .patodo-envio__nombre {
	grid-column: 1;
	color: #fff;
	font-size: 0.9375rem;
	font-weight: 600;
}

html body.patodo .patodo-envio__dias {
	grid-column: 1;
	grid-row: 2;
	color: var(--p-muted);
	font-size: 0.8125rem;
}

html body.patodo .patodo-envio__precio {
	grid-column: 2;
	grid-row: 1;
	color: #fff;
	font-weight: 600;
	white-space: nowrap;
}

/* Campos y casillas que faltan al intentar pagar: borde de error y mensaje junto al campo. */
html body.patodo form.checkout .form-row.woocommerce-invalid input.input-text,
html body.patodo form.checkout .form-row.woocommerce-invalid select,
html body.patodo form.checkout .form-row.woocommerce-invalid .select2-selection {
	border-color: var(--p-error) !important;
}

html body.patodo form.checkout .form-row.patodo-falta:has(input[type="checkbox"]) {
	padding-left: 0.75rem;
	border-left: 2px solid var(--p-error);
}

html body.patodo .patodo-falta__msg {
	display: block;
	margin-top: 0.35rem;
	color: var(--p-error);
	font-size: 0.8125rem;
}

/* Municipio sin cotización en línea: se coordina el envío por WhatsApp. */
html body.patodo .patodo-sin-cobertura {
	margin: 0;
	padding: 0.9rem 1rem;
	border: 1px solid var(--p-line);
	border-left: 2px solid var(--p-olive);
	background: var(--p-cell);
	color: var(--p-text);
	font-size: 0.875rem;
	line-height: 1.5;
	text-align: left;
}

html body.patodo .patodo-sin-cobertura a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: #fff;
	font-weight: 600;
	text-decoration: underline;
}

/* ---------------------------------------------------------------
   12. Utilidades
--------------------------------------------------------------- */
.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

@media (prefers-reduced-motion: reduce) {
	.patodo-hero__media img,
	.patodo-cat__img,
	body.patodo ul.products li.product img {
		transition: none;
	}
}

/* Aviso de cookies */
.patodo-cookies {
	position: fixed;
	z-index: 100000;
	left: var(--p-gutter);
	right: var(--p-gutter);
	bottom: var(--p-gutter);
	max-width: 34rem;
	padding: 1.25rem;
	background: var(--p-cell);
	border: 1px solid var(--p-line-strong);
	color: var(--p-text);
	font-family: var(--p-body);
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}

.patodo-cookies[hidden] {
	display: none;
}

body.patodo .patodo-cookies__text {
	margin: 0 0 1rem;
	font-size: 0.875rem;
	line-height: 1.55;
	color: var(--p-text);
}

body.patodo .patodo-cookies__text a {
	color: var(--p-chalk);
	text-decoration: underline;
}

.patodo-cookies__actions {
	display: flex;
	gap: 0.75rem;
}

body.patodo .patodo-cookies__btn {
	flex: 1;
	min-height: 2.75rem;
	padding: 0.6rem 1rem;
	border: 1px solid var(--p-chalk);
	border-radius: 0;
	background: transparent;
	color: var(--p-chalk);
	font-family: var(--p-display);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	cursor: pointer;
}

body.patodo .patodo-cookies__btn:hover,
body.patodo .patodo-cookies__btn:focus-visible {
	background: var(--p-chalk);
	color: var(--p-canvas);
}
