/* ═══════════════════════════════════════════════════════════════════
   SORLI FREEESH — Design System & Main Stylesheet
   Mobile-first · CSS Variables · Sin frameworks
   ═══════════════════════════════════════════════════════════════════ */

/* ───────────────────────────────────────────────────────────────────
   VARIABLES GLOBALES
   ─────────────────────────────────────────────────────────────────── */
:root {
	/* Colores */
	--color-green-dark:  #1e6b3a;
	--color-green-mid:   #2d8a4e;
	--color-green-light: #4aae68;
	--color-green-pale:  #e8f5ed;
	--color-accent:      #f5821f;
	--color-accent-pale: #fff3e8;
	--color-yellow:      #ffc947;
	/* Azul corporativo Sorlí */
	--color-blue:        #53b9e4;
	--color-blue-dark:   #2a90c0;
	--color-blue-pale:   #e8f6fd;
	--color-white:       #ffffff;
	--color-bg:          #f9faf7;
	--color-bg-alt:      #f0f5f1;
	--color-text:        #1c1c1c;
	--color-text-mid:    #4a4a4a;
	--color-text-light:  #7a7a7a;
	--color-border:      #dde8e0;
	--color-border-mid:  #c2d8c9;
	--color-error:       #c0392b;
	--color-success:     #27ae60;

	/* Tipografía */
	--font-base:    'Poppins', system-ui, sans-serif;
	--fw-light:     300;
	--fw-regular:   400;
	--fw-medium:    500;
	--fw-semibold:  600;
	--fw-bold:      700;
	--fw-extrabold: 800;

	/* Escala tipográfica */
	--text-xs:   0.75rem;
	--text-sm:   0.875rem;
	--text-base: 1rem;
	--text-lg:   1.125rem;
	--text-xl:   1.25rem;
	--text-2xl:  1.5rem;
	--text-3xl:  1.875rem;
	--text-4xl:  2.25rem;
	--text-5xl:  3rem;
	--text-6xl:  3.75rem;

	/* Espaciado */
	--space-xs:   0.25rem;
	--space-sm:   0.5rem;
	--space-md:   1rem;
	--space-lg:   1.5rem;
	--space-xl:   2rem;
	--space-2xl:  3rem;
	--space-3xl:  4rem;
	--space-4xl:  6rem;

	/* Bordes */
	--radius-sm:  0.375rem;
	--radius-md:  0.75rem;
	--radius-lg:  1.25rem;
	--radius-xl:  2rem;
	--radius-full: 9999px;

	/* Sombras */
	--shadow-sm:  0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
	--shadow-md:  0 4px 12px rgba(0,0,0,.08), 0 2px 4px rgba(0,0,0,.05);
	--shadow-lg:  0 10px 30px rgba(0,0,0,.10), 0 4px 8px rgba(0,0,0,.06);
	--shadow-xl:  0 20px 50px rgba(0,0,0,.12);

	/* Transiciones */
	--transition-fast:   150ms ease;
	--transition-base:   250ms ease;
	--transition-slow:   400ms ease;

	/* Layout */
	--container-max:  1280px;
	--container-pad:  var(--space-lg);
	--header-height:  72px;
}


/* ───────────────────────────────────────────────────────────────────
   RESET & BASE
   ─────────────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
}

body {
	font-family: var(--font-base);
	font-size: var(--text-base);
	font-weight: var(--fw-regular);
	line-height: 1.65;
	color: var(--color-text);
	background-color: var(--color-bg);
	-webkit-font-smoothing: antialiased;
}

img, video, svg { display: block; max-width: 100%; height: auto; }
a { color: var(--color-green-mid); text-decoration: none; transition: color var(--transition-fast); }
a:hover { color: var(--color-green-dark); }
ul, ol { list-style: none; }
button, input, select, textarea { font-family: inherit; font-size: inherit; }
button { cursor: pointer; border: none; background: none; }
:focus-visible { outline: 1px solid var(--color-blue); outline-offset: 3px; border-radius: var(--radius-sm); }

.skip-link {
	position: absolute;
	top: -40px;
	left: 0;
	padding: var(--space-sm) var(--space-md);
	background: var(--color-green-dark);
	color: var(--color-white);
	z-index: 100;
}
.skip-link:focus { top: 0; }

.screen-reader-text {
	position: absolute;
	clip: rect(0,0,0,0);
	clip-path: inset(50%);
	width: 1px;
	height: 1px;
	overflow: hidden;
	white-space: nowrap;
}


/* ───────────────────────────────────────────────────────────────────
   UTILIDADES
   ─────────────────────────────────────────────────────────────────── */
.container {
	width: 100%;
	max-width: var(--container-max);
	margin-inline: auto;
	padding-inline: var(--container-pad);
}

@media (min-width: 768px) {
	:root { --container-pad: var(--space-xl); }
}
@media (min-width: 1280px) {
	:root { --container-pad: var(--space-2xl); }
}


/* ───────────────────────────────────────────────────────────────────
   BOTONES
   ─────────────────────────────────────────────────────────────────── */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-sm);
	padding: 0.75rem 1.5rem;
	border-radius: var(--radius-full);
	font-weight: var(--fw-semibold);
	font-size: var(--text-sm);
	line-height: 1;
	transition: background var(--transition-fast), color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);
	white-space: nowrap;
	cursor: pointer;
	text-decoration: none;
}
.btn svg { width: 16px; height: 16px; flex-shrink: 0; }
.btn:active { transform: translateY(1px); }
.btn:disabled, .btn[disabled] { opacity: .5; cursor: not-allowed; pointer-events: none; }

.btn--primary {
	background: var(--color-green-mid);
	color: var(--color-white);
	box-shadow: 0 2px 8px rgba(45,138,78,.3);
}
.btn--primary:hover { background: var(--color-green-dark); color: var(--color-white); box-shadow: 0 4px 16px rgba(45,138,78,.4); }

.btn--ghost {
	background: transparent;
	color: var(--color-green-mid);
	border: 2px solid var(--color-border-mid);
}
.btn--ghost:hover { border-color: var(--color-green-mid); background: var(--color-green-pale); color: var(--color-green-dark); }

.btn--accent {
	background: var(--color-accent);
	color: var(--color-white);
}
.btn--accent:hover { background: #d96a10; color: var(--color-white); }

.btn--blue {
	background: var(--color-blue);
	color: var(--color-white);
	box-shadow: 0 2px 8px rgba(83,185,228,.3);
}
.btn--blue:hover { background: var(--color-blue-dark); color: var(--color-white); box-shadow: 0 4px 16px rgba(83,185,228,.4); }

.btn--lg { padding: 1rem 2rem; font-size: var(--text-base); }
.btn--sm { padding: 0.5rem 1rem; font-size: var(--text-xs); }
.btn--full { width: 100%; }


/* ───────────────────────────────────────────────────────────────────
   HEADER
   ─────────────────────────────────────────────────────────────────── */
.site-header {
	position: fixed;
	top: 0;
	inset-inline: 0;
	height: var(--header-height);
	background: rgba(255,255,255,.95);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border-bottom: 1px solid var(--color-border);
	z-index: 900;
	transition: box-shadow var(--transition-base);
}
.site-header:has(+ .site-main .hero) {
	/* Más prominente cuando hay hero debajo */
}
body.scrolled .site-header { box-shadow: var(--shadow-md); }

.header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 100%;
	gap: var(--space-lg);
}

/* Logo */
.site-logo { display: flex; align-items: center; }
.site-logo__img { height: 45px !important; width: auto; }

/* Navegación principal */
.header-nav { display: none; }
.nav-menu {
	display: flex;
	align-items: center;
	gap: var(--space-xs);
	list-style: none;
}
.nav-menu a {
	display: block;
	padding: var(--space-sm) var(--space-md);
	border-radius: var(--radius-full);
	font-size: var(--text-sm);
	font-weight: var(--fw-medium);
	color: var(--color-text);
	transition: background var(--transition-fast), color var(--transition-fast);
}
.nav-menu a:hover, .nav-menu .current-menu-item > a {
	background: var(--color-green-pale);
	color: var(--color-green-dark);
}
.nav-menu .menu-item-cta > a {
	background: var(--color-blue);
	color: var(--color-white);
}
.nav-menu .menu-item-cta > a:hover { background: var(--color-blue-dark); color: var(--color-white); }

@media (min-width: 960px) {
	.header-nav { display: block; }
	.nav-toggle { display: none; }
}

/* Acciones */
.header-actions {
	display: flex;
	align-items: center;
	gap: var(--space-md);
}

.cart-link {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: var(--radius-full);
	color: var(--color-text);
	transition: background var(--transition-fast);
}
.cart-link:hover { background: var(--color-green-pale); color: var(--color-green-dark); }
.cart-icon { width: 22px; height: 22px; }
.account-link { position: relative; display: flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: var(--radius-full); color: var(--color-text); transition: background var(--transition-fast); }
.account-link svg { width: 22px; height: 22px; }
.account-link:hover { background: var(--color-green-pale); color: var(--color-green-dark); }
@media (max-width: 768px) { .account-link { display: none; } }

.mobile-menu__account {
	display: flex;
	align-items: center;
	gap: var(--space-sm);
	padding: var(--space-md) var(--space-lg);
	margin-top: var(--space-sm);
	border-top: 1px solid var(--color-border);
	color: var(--color-blue);
	font-weight: var(--fw-semibold);
	font-size: var(--text-sm);
}
.mobile-menu__account svg { width: 20px; height: 20px; flex-shrink: 0; }
.mobile-menu__account:hover { background: rgba(83,185,228,.08); }

.cart-link:hover { background: var(--color-blue-pale); color: var(--color-blue-dark); }

.cart-count {
	position: absolute;
	top: 4px;
	right: 4px;
	width: 18px;
	height: 18px;
	background: var(--color-blue);
	color: var(--color-white);
	border-radius: var(--radius-full);
	font-size: 10px;
	font-weight: var(--fw-bold);
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
}

/* Botón hamburguesa */
.nav-toggle {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 36px;
	height: 36px;
	padding: 6px;
	border-radius: var(--radius-sm);
}
.hamburger-line {
	display: block;
	width: 100%;
	height: 2px;
	background: var(--color-text);
	border-radius: 2px;
	transition: transform var(--transition-base), opacity var(--transition-base);
}
.nav-toggle[aria-expanded="true"] .hamburger-line:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .hamburger-line:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] .hamburger-line:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (min-width: 960px) { .nav-toggle { display: none; } }

/* Menú móvil */
.mobile-menu {
	display: none;
	position: absolute;
	top: var(--header-height);
	inset-inline: 0;
	background: var(--color-white);
	border-bottom: 1px solid var(--color-border);
	box-shadow: var(--shadow-lg);
	padding: var(--space-lg);
}
.mobile-menu.is-open { display: block; }
.mobile-nav-menu { display: flex; flex-direction: column; gap: var(--space-sm); }
.mobile-nav-menu a {
	display: block;
	padding: var(--space-md);
	border-radius: var(--radius-md);
	font-weight: var(--fw-medium);
	color: var(--color-text);
}
.mobile-nav-menu a:hover { background: var(--color-green-pale); color: var(--color-green-dark); }
body.menu-open { overflow: hidden; }

/* Ajuste del main para el header fijo */
.site-main { padding-top: var(--header-height); }


/* ───────────────────────────────────────────────────────────────────
   FOOTER
   ─────────────────────────────────────────────────────────────────── */
.site-footer {
	background: var(--color-green-dark);
	color: rgba(255,255,255,.85);
}

.footer-inner {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-2xl);
	padding-block: var(--space-3xl);
}
@media (min-width: 768px) {
	.footer-inner { grid-template-columns: 2fr 1fr 1fr; }
}


.footer-tagline { margin-top: var(--space-md); font-size: var(--text-sm); line-height: 1.7; opacity: .8; }

.footer-social { display: flex; gap: var(--space-md); margin-top: var(--space-lg); }
.footer-social a {
	width: 38px; height: 38px;
	display: flex; align-items: center; justify-content: center;
	border-radius: var(--radius-full);
	border: 1px solid rgba(255,255,255,.2);
	color: rgba(255,255,255,.7);
	transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
}
.footer-social a:hover { background: var(--color-blue); color: var(--color-white); border-color: var(--color-blue); }
.footer-social svg { width: 16px; height: 16px; }

.footer-heading {
	font-size: var(--text-xs);
	font-weight: var(--fw-semibold);
	text-transform: uppercase;
	letter-spacing: .12em;
	color: rgba(255,255,255,.5);
	margin-bottom: var(--space-lg);
}

.footer-nav-menu { display: flex; flex-direction: column; gap: var(--space-sm); }
.footer-nav-menu a {
	font-size: var(--text-sm);
	color: rgba(255,255,255,.75);
	transition: color var(--transition-fast);
}
.footer-nav-menu a:hover { color: var(--color-white); }

.footer-contact-list { display: flex; flex-direction: column; gap: var(--space-md); }
.footer-contact-list li {
	display: flex;
	align-items: flex-start;
	gap: var(--space-sm);
	font-size: var(--text-sm);
	color: rgba(255,255,255,.75);
}
.footer-contact-list svg { width: 16px; height: 16px; flex-shrink: 0; margin-top: 2px; opacity: .6; }
.footer-contact-list a { color: rgba(255,255,255,.75); }
.footer-contact-list a:hover { color: var(--color-white); }

.footer-bottom {
	border-top: 1px solid rgba(255,255,255,.1);
	padding-block: var(--space-lg);
}
.footer-bottom-inner {
	display: flex;
	flex-direction: column;
	gap: var(--space-md);
	align-items: flex-start;
}
@media (min-width: 640px) {
	.footer-bottom-inner { flex-direction: row; justify-content: space-between; align-items: center; }
}
.footer-copy { font-size: var(--text-xs); opacity: .5; }
.footer-legal { display: flex; flex-wrap: wrap; gap: var(--space-sm) var(--space-lg); }
.footer-legal a { font-size: var(--text-xs); color: rgba(255,255,255,.5); transition: color var(--transition-fast); }
.footer-legal a:hover { color: rgba(255,255,255,.8); }
@media (max-width: 639px) {
	.footer-legal { flex-direction: column; gap: var(--space-sm); }
}


/* ───────────────────────────────────────────────────────────────────
   SECCIONES GENÉRICAS
   ─────────────────────────────────────────────────────────────────── */
.section { padding-block: var(--space-3xl); }
@media (min-width: 768px) { .section { padding-block: var(--space-4xl); } }

.section--alt { background: var(--color-bg-alt); }
.section--green { background: var(--color-green-pale); }
.section--blue { background: var(--color-blue-pale); }

.section-header {
	text-align: center;
	margin-bottom: var(--space-2xl);
	max-width: 640px;
	margin-inline: auto;
}
.section-label {
	display: inline-block;
	font-size: var(--text-xs);
	font-weight: var(--fw-semibold);
	text-transform: uppercase;
	letter-spacing: .12em;
	color: var(--color-green-mid);
	background: var(--color-green-pale);
	padding: var(--space-xs) var(--space-md);
	border-radius: var(--radius-full);
	margin-bottom: var(--space-md);
}
.section-label--blue {
	color: var(--color-blue-dark);
	background: var(--color-blue-pale);
}
.section-title {
	font-size: var(--text-3xl);
	font-weight: var(--fw-extrabold);
	line-height: 1.2;
	color: var(--color-text);
}
@media (min-width: 768px) { .section-title { font-size: var(--text-4xl); } }

.section-subtitle {
	margin-top: var(--space-md);
	color: var(--color-text-mid);
	font-size: var(--text-lg);
	font-weight: var(--fw-light);
}
.section-footer { text-align: center; margin-top: var(--space-2xl); }


/* ───────────────────────────────────────────────────────────────────
   HERO SLIDER
   ─────────────────────────────────────────────────────────────────── */
.hero-slider {
	position: relative;
	width: 100%;
	height: 100svh;
	min-height: 520px;
	max-height: 800px;
	overflow: hidden;
	background: var(--color-green-dark);
	margin-top: calc(-1 * var(--header-height));
}

/* Slides */
.slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity .8s ease;
	pointer-events: none;
}
.slide.is-active {
	opacity: 1;
	pointer-events: auto;
}

/* Fondos de cada slide (reemplaza con background-image: url() para fotos reales) */
.slide__bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	transform: scale(1.04);
	transition: transform 6s ease;
}
.slide.is-active .slide__bg { transform: scale(1); }

.slide--1 .slide__bg {
	background-image: url('/wp-content/uploads/2026/06/arbol-scaled.jpg');
	background-size: cover;
	background-position: center;
}
.slide--2 .slide__bg {
	background-image: url('/wp-content/uploads/2026/06/mandas-1-scaled.jpg');
	background-size: cover;
	background-position: center;
}
/* Slide 3 usa el azul corporativo Sorlí */
.slide--3 .slide__bg {
	background-image: url('/wp-content/uploads/2026/06/mar.jpg');
	background-size: cover;
	background-position: center;
}

.slide__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to right,
		rgba(0,0,0,.72) 0%,
		rgba(0,0,0,.50) 50%,
		rgba(0,0,0,.18) 100%
	);
}

/* Contenido del slide */
.slide__content {
	position: relative;
	z-index: 2;
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding-block: calc(var(--header-height) + var(--space-2xl)) var(--space-3xl);
	max-width: 700px;
}

.slide__label {
	display: inline-block;
	font-size: var(--text-xs);
	font-weight: var(--fw-semibold);
	text-transform: uppercase;
	letter-spacing: .14em;
	color: rgba(255,255,255,.8);
	background: rgba(255,255,255,.15);
	backdrop-filter: blur(6px);
	border: 1px solid rgba(255,255,255,.2);
	padding: var(--space-xs) var(--space-md);
	border-radius: var(--radius-full);
	margin-bottom: var(--space-lg);
	width: fit-content;
	opacity: 0;
	transform: translateY(16px);
	transition: opacity .6s ease .1s, transform .6s ease .1s;
}
.slide.is-active .slide__label { opacity: 1; transform: none; }

.slide__title {
	font-size: var(--text-4xl);
	font-weight: var(--fw-extrabold);
	line-height: 1.1;
	color: var(--color-white);
	margin-bottom: var(--space-lg);
	opacity: 0;
	transform: translateY(20px);
	transition: opacity .6s ease .25s, transform .6s ease .25s;
	text-shadow: 0 2px 12px rgba(0,0,0,.5);
}
.slide.is-active .slide__title { opacity: 1; transform: none; }
@media (min-width: 768px) { .slide__title { font-size: var(--text-5xl); } }

.slide__title em {
	font-style: normal;
	color: var(--color-yellow);
}

.slide__subtitle {
	font-size: var(--text-base);
	font-weight: var(--fw-light);
	color: rgba(255,255,255,.85);
	line-height: 1.7;
	margin-bottom: var(--space-2xl);
	max-width: 520px;
	opacity: 0;
	transform: translateY(20px);
	transition: opacity .6s ease .4s, transform .6s ease .4s;
	text-shadow: 0 1px 6px rgba(0,0,0,.4);
}
.slide.is-active .slide__subtitle { opacity: 1; transform: none; }
@media (min-width: 768px) { .slide__subtitle { font-size: var(--text-lg); } }

.slide__cta {
	width: fit-content;
	opacity: 0;
	transform: translateY(16px);
	transition: opacity .5s ease .55s, transform .5s ease .55s;
}
.slide.is-active .slide__cta { opacity: 1; transform: none; }

/* Botones prev/next */
.slider-btn {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 10;
	width: 48px;
	height: 48px;
	border-radius: var(--radius-full);
	background: rgba(255,255,255,.15);
	backdrop-filter: blur(6px);
	border: 1px solid rgba(255,255,255,.25);
	color: var(--color-white);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: background var(--transition-fast), transform var(--transition-fast);
}
.slider-btn:hover { background: rgba(255,255,255,.3); }
.slider-btn svg { width: 22px; height: 22px; }
.slider-btn--prev { left: var(--space-lg); }
.slider-btn--next { right: var(--space-lg); }

@media (max-width: 639px) {
	.slider-btn { display: none; }
}

/* Dots */
.slider-dots {
	position: absolute;
	bottom: var(--space-xl);
	left: 50%;
	transform: translateX(-50%);
	z-index: 10;
	display: flex;
	gap: var(--space-sm);
}
.slider-dot {
	width: 8px;
	height: 8px;
	border-radius: var(--radius-full);
	background: rgba(255,255,255,.4);
	border: none;
	cursor: pointer;
	transition: background var(--transition-fast), width var(--transition-base);
	padding: 0;
}
.slider-dot.is-active {
	background: var(--color-white);
	width: 28px;
}


/* ───────────────────────────────────────────────────────────────────
   HERO (legado — se mantiene por compatibilidad si se usa en otro lado)
   ─────────────────────────────────────────────────────────────────── */
.hero {
	position: relative;
	overflow: hidden;
	background: linear-gradient(135deg, #e8f5ed 0%, #f0f9f3 50%, #fff8f2 100%);
	padding-block: var(--space-4xl);
	margin-top: calc(-1 * var(--header-height));
	padding-top: calc(var(--header-height) + var(--space-4xl));
}

.hero-content {
	position: relative;
	z-index: 2;
	max-width: 680px;
}

.hero-badge {
	display: inline-flex;
	align-items: center;
	gap: var(--space-sm);
	font-size: var(--text-sm);
	font-weight: var(--fw-medium);
	color: var(--color-green-dark);
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-full);
	padding: var(--space-sm) var(--space-md);
	margin-bottom: var(--space-lg);
	box-shadow: var(--shadow-sm);
}

.hero-title {
	font-size: var(--text-4xl);
	font-weight: var(--fw-extrabold);
	line-height: 1.1;
	color: var(--color-text);
	margin-bottom: var(--space-lg);
}
.hero-title em {
	font-style: normal;
	color: var(--color-green-mid);
}
@media (min-width: 768px) { .hero-title { font-size: var(--text-6xl); } }

.hero-subtitle {
	font-size: var(--text-lg);
	font-weight: var(--fw-light);
	color: var(--color-text-mid);
	line-height: 1.7;
	margin-bottom: var(--space-2xl);
	max-width: 540px;
}
@media (min-width: 768px) { .hero-subtitle { font-size: var(--text-xl); } }

.hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-md);
	margin-bottom: var(--space-2xl);
}

.hero-trust {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-lg);
}
.trust-item {
	display: flex;
	align-items: center;
	gap: var(--space-sm);
	font-size: var(--text-sm);
	color: var(--color-text-mid);
}
.trust-item svg { width: 18px; height: 18px; color: var(--color-green-mid); }

.hero-image-wrap {
	display: none;
}
@media (min-width: 1024px) {
	.hero {
		display: grid;
		grid-template-columns: 1fr 1fr;
		align-items: center;
		gap: var(--space-3xl);
	}
	.hero-image-wrap { display: block; }
	.hero-image-placeholder {
		aspect-ratio: 4/5;
		background: linear-gradient(145deg, var(--color-green-pale) 0%, var(--color-green-mid) 100%);
		border-radius: var(--radius-xl);
		box-shadow: var(--shadow-xl);
	}
}


/* ───────────────────────────────────────────────────────────────────
   CAJAS DE SUSCRIPCIÓN
   ─────────────────────────────────────────────────────────────────── */
.boxes-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-xl);
}
@media (min-width: 768px) { .boxes-grid { grid-template-columns: repeat(3, 1fr); } }

/* Grid de 4 columnas para la portada */
.boxes-grid--4 { grid-template-columns: 1fr; }
@media (min-width: 640px)  { .boxes-grid--4 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .boxes-grid--4 { grid-template-columns: repeat(4, 1fr); } }

/* Nota de descuento bajo las cajas */
.boxes-discount-note {
	display: flex;
	align-items: center;
	gap: var(--space-md);
	margin-top: var(--space-2xl);
	padding: var(--space-md) var(--space-xl);
	background: var(--color-blue-pale);
	border-radius: var(--radius-lg);
	border-left: 4px solid var(--color-blue);
	font-size: var(--text-sm);
	color: var(--color-blue-dark);
}
.boxes-discount-note svg { width: 20px; height: 20px; flex-shrink: 0; color: var(--color-blue); }
.boxes-discount-note strong { color: var(--color-blue-dark); }

/* Tamaños de cesta (Temporada) */
.box-card__sizes {
	margin-block: var(--space-md) var(--space-lg);
	display: flex;
	flex-direction: column;
	gap: var(--space-xs);
}
.box-card__size {
	display: flex;
	align-items: center;
	gap: var(--space-sm);
	font-size: var(--text-xs);
	padding: var(--space-xs) var(--space-sm);
	border-radius: var(--radius-sm);
	border: 1px solid var(--color-border);
	background: var(--color-bg);
	transition: background var(--transition-fast), border-color var(--transition-fast);
}
.box-card__size:hover { background: var(--color-green-pale); border-color: var(--color-green-mid); }
.size-label { font-weight: var(--fw-semibold); flex: 1; }
.size-weight { color: var(--color-text-light); }
.size-price { font-size: var(--text-xs); color: var(--color-text-mid); margin-left: auto; }
.size-price strong { font-weight: var(--fw-bold); color: var(--color-green-dark); font-size: var(--text-sm); }

/* Colores de los fondos de cesta */
.box-card__image--temporada  {background-image: url('/wp-content/uploads/2026/05/PHOTO-2026-05-10-20-17-27.jpg'); background-size: cover; background-position: center; }
.box-card__image--citricos   { background-image: url('/wp-content/uploads/2026/05/PHOTO-2026-05-10-20-17-28.jpg'); background-size: cover; background-position: center; }
.box-card__image--permanente {background-image: url('/wp-content/uploads/2026/05/PHOTO-2026-05-10-20-17-27.jpg'); background-size: cover; background-position: center; }
.box-card__image--basicos    {background-image: url('/wp-content/uploads/2026/05/PHOTO-2026-05-10-20-17-28-2.jpg'); background-size: cover; background-position: center; }

.box-card {
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	overflow: hidden;
	transition: box-shadow var(--transition-base), transform var(--transition-base);
	position: relative;
}
.box-card:hover { box-shadow: var(--shadow-lg); transform: translateY(-4px); }

.box-card--featured {
	border-color: var(--color-blue);
	box-shadow: 0 0 0 2px var(--color-blue), var(--shadow-md);
}
.box-card--featured:hover { box-shadow: 0 0 0 2px var(--color-blue-dark), var(--shadow-lg); }

.box-card__badge {
	position: absolute;
	top: var(--space-md);
	right: var(--space-md);
	background: var(--color-accent);
	color: var(--color-white);
	font-size: var(--text-xs);
	font-weight: var(--fw-semibold);
	padding: var(--space-xs) var(--space-md);
	border-radius: var(--radius-full);
	z-index: 1;
}

.box-card__image-wrap { overflow: hidden; }
.box-card__image {
	height: 200px;
	background-size: cover;
	background-position: center;
	transition: transform var(--transition-slow);
}
.box-card:hover .box-card__image { transform: scale(1.04); }
.box-card__image--small  { background: linear-gradient(135deg, #c8e6c9, #a5d6a7); }
.box-card__image--medium { background: linear-gradient(135deg, #a5d6a7, #66bb6a); }
.box-card__image--large  { background: linear-gradient(135deg, #66bb6a, #388e3c); }

.box-card__body { padding: var(--space-lg); }
.box-card__tag {
	font-size: var(--text-xs);
	font-weight: var(--fw-semibold);
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--color-text-light);
}
.box-card__title { font-size: var(--text-xl); font-weight: var(--fw-bold); margin-top: var(--space-sm); }
.box-card__desc { color: var(--color-text-mid); font-size: var(--text-sm); margin-top: var(--space-sm); line-height: 1.6; }
.box-card__features {
	margin-top: var(--space-lg);
	display: flex;
	flex-direction: column;
	gap: var(--space-sm);
}
.box-card__features li { font-size: var(--text-sm); color: var(--color-text-mid); }
.box-card__price-wrap { display: flex; align-items: baseline; gap: var(--space-xs); margin-block: var(--space-lg); }
.box-card__price { font-size: var(--text-lg); color: var(--color-text-mid); }
.box-card__price strong { font-size: var(--text-2xl); font-weight: var(--fw-extrabold); color: var(--color-text); }
.box-card__freq { font-size: var(--text-xs); color: var(--color-text-light); }


/* ───────────────────────────────────────────────────────────────────
   CÓMO FUNCIONA
   ─────────────────────────────────────────────────────────────────── */
.section--how { background: var(--color-green-pale); }

.how-steps {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-xl);
	counter-reset: steps;
}
@media (min-width: 640px) { .how-steps { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 960px) { .how-steps { grid-template-columns: repeat(4, 1fr); } }

.how-step {
	position: relative;
	padding: var(--space-xl);
	background: var(--color-white);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-sm);
}
.how-step__number {
	font-size: var(--text-3xl);
	font-weight: var(--fw-extrabold);
	color: var(--color-blue-pale);
	line-height: 1;
	position: absolute;
	top: var(--space-md);
	right: var(--space-md);
}
.how-step { border-top: 3px solid var(--color-blue-pale); transition: border-color var(--transition-base), box-shadow var(--transition-base); }
.how-step:hover { border-top-color: var(--color-blue); }
.how-step__title { font-size: var(--text-lg); font-weight: var(--fw-bold); margin-bottom: var(--space-sm); }
.how-step__desc { font-size: var(--text-sm); color: var(--color-text-mid); line-height: 1.6; }


/* ───────────────────────────────────────────────────────────────────
   GRID DE PRODUCTOS (Portada y Tienda)
   ─────────────────────────────────────────────────────────────────── */
.products-grid,
.wc-products-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--space-lg);
}
@media (min-width: 640px) { .products-grid, .wc-products-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1024px) { .products-grid, .wc-products-grid { grid-template-columns: repeat(4, 1fr); } }

.product-card {
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	overflow: hidden;
	transition: box-shadow var(--transition-base), transform var(--transition-base);
	display: flex;
	flex-direction: column;
}
.product-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.product-card__link { display: flex; flex-direction: column; flex: 1; color: inherit; text-decoration: none; }
.product-card__image-wrap { overflow: hidden; aspect-ratio: 1; position: relative; display: flex; align-items: center; justify-content: center; }
.product-card__image { width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform var(--transition-slow); }
.product-card:hover .product-card__image { transform: scale(1.05); }
.product-card__no-image { width: 100%; height: 100%; background: linear-gradient(135deg, var(--color-green-pale), var(--color-bg-alt)); }
.product-card__badge {
	position: absolute;
	top: var(--space-sm);
	left: var(--space-sm);
	background: var(--color-accent);
	color: var(--color-white);
	font-size: var(--text-xs);
	font-weight: var(--fw-bold);
	padding: 2px 8px;
	border-radius: var(--radius-full);
}
.product-card__body { padding: var(--space-md); flex: 1; display: flex; flex-direction: column; }
.product-card__origin { font-size: var(--text-xs); color: var(--color-text-light); text-transform: uppercase; letter-spacing: .08em; }
.product-card__title { font-size: var(--text-base) !important; font-weight: var(--fw-semibold) !important; margin-top: var(--space-xs); line-height: 1.3; flex: 1; }
.product-card__price { margin-top: var(--space-sm); font-size: var(--text-lg); font-weight: var(--fw-bold); color: var(--color-blue-dark); }
.product-card .btn { margin: var(--space-md); margin-top: 0; }

/* Sobreescribir botón de WooCommerce */
.product-card .button,
.product-card .add_to_cart_button {
	display: inline-block;
	align-self: center;
	margin: var(--space-md) !important;
	margin-top: 0 !important;
	margin-bottom: var(--space-lg) !important;
	padding: 0.6rem 1.25rem !important;
	background: var(--color-blue) !important;
	color: var(--color-white) !important;
	border-radius: var(--radius-full) !important;
	font-size: var(--text-sm) !important;
	font-weight: var(--fw-semibold) !important;
	text-align: center;
	transition: background var(--transition-fast);
	text-decoration: none;
}
.product-card .button:hover,
.product-card .add_to_cart_button:hover { background: var(--color-blue-dark) !important; }


/* ───────────────────────────────────────────────────────────────────
   TESTIMONIOS
   ─────────────────────────────────────────────────────────────────── */
.section--testimonials { background: var(--color-bg-alt); }
.testimonials-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-xl);
}
@media (min-width: 768px) { .testimonials-grid { grid-template-columns: repeat(3, 1fr); } }

.testimonial {
	background: var(--color-white);
	border-radius: var(--radius-lg);
	padding: var(--space-xl);
	box-shadow: var(--shadow-sm);
	border-left: 4px solid var(--color-green-mid);
}
.testimonial__text { font-size: var(--text-base); line-height: 1.7; color: var(--color-text-mid); font-style: italic; }
.testimonial__author {
	display: flex;
	align-items: center;
	gap: var(--space-md);
	margin-top: var(--space-lg);
}
.testimonial__avatar {
	width: 40px; height: 40px;
	border-radius: var(--radius-full);
	background: var(--color-green-pale);
	color: var(--color-green-dark);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: var(--text-xs);
	font-weight: var(--fw-bold);
	flex-shrink: 0;
}
.testimonial__author strong { display: block; font-size: var(--text-sm); font-weight: var(--fw-semibold); }
.testimonial__author span { font-size: var(--text-xs); color: var(--color-text-light); }


/* ───────────────────────────────────────────────────────────────────
   TIENDA (archive-product)
   ─────────────────────────────────────────────────────────────────── */
.shop-wrap { padding-block: var(--space-2xl); }
.shop-header { margin-bottom: var(--space-2xl); }
.shop-title { font-size: var(--text-3xl); font-weight: var(--fw-extrabold); }

.shop-layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-2xl);
}
@media (min-width: 960px) {
	.shop-layout { grid-template-columns: 260px 1fr; }
}

/* Sidebar filtros */
.shop-sidebar {}
.shop-filters { position: sticky; top: calc(var(--header-height) + var(--space-lg)); }
.filters-title { font-size: var(--text-xs); font-weight: var(--fw-semibold); text-transform: uppercase; letter-spacing: .1em; color: var(--color-text-light); margin-bottom: var(--space-lg); }
.filter-group { margin-bottom: var(--space-xl); }
.filter-group__title { font-size: var(--text-sm); font-weight: var(--fw-semibold); margin-bottom: var(--space-md); }
.filter-categories { display: flex; flex-direction: column; gap: var(--space-xs); }
.filter-cat {
	display: flex;
	justify-content: space-between;
	padding: var(--space-sm) var(--space-md);
	border-radius: var(--radius-sm);
	font-size: var(--text-sm);
	color: var(--color-text-mid);
	transition: background var(--transition-fast), color var(--transition-fast);
}
.filter-cat:hover { background: var(--color-green-pale); color: var(--color-green-dark); }
.filter-cat.is-active { background: var(--color-blue-pale); color: var(--color-blue-dark); font-weight: var(--fw-semibold); }

/* Toolbar */
.shop-toolbar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: var(--space-xl);
	padding-bottom: var(--space-md);
	border-bottom: 1px solid var(--color-border);
}
.shop-result-count,
.woocommerce-result-count { font-size: var(--text-sm); color: var(--color-text-light); }
.woocommerce-ordering select {
	padding: var(--space-sm) var(--space-md);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	font-size: var(--text-sm);
	background: var(--color-white);
	cursor: pointer;
}

/* Paginación */
.woocommerce nav.woocommerce-pagination { text-align: center; margin-top: var(--space-2xl); }
.woocommerce-pagination ul,
nav.woocommerce-pagination ul { display: flex; gap: var(--space-sm); flex-wrap: wrap; margin-top: var(--space-2xl); justify-content: center; border: none !important; margin: 0; white-space: normal; }
.woocommerce-pagination ul li { float: none !important; border-right: none !important; overflow: visible; }
.woocommerce-pagination ul li a,
.woocommerce-pagination ul li span {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: var(--radius-sm) !important;
	font-size: var(--text-sm) !important;
	font-weight: var(--fw-medium);
	border: none !important;
	color: var(--color-text-mid);
	transition: background var(--transition-fast), color var(--transition-fast);
}
.woocommerce-pagination ul li a:hover { background: var(--color-blue-pale) !important; color: var(--color-blue-dark) !important; }
.woocommerce-pagination ul li span.current { background: var(--color-blue) !important; color: var(--color-white) !important; }


/* ───────────────────────────────────────────────────────────────────
   SINGLE PRODUCT (estándar)
   ─────────────────────────────────────────────────────────────────── */
.single-product-wrap { padding-block: var(--space-2xl); }

.single-product-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-2xl);
}
@media (min-width: 768px) {
	.single-product-grid { grid-template-columns: 1fr 1fr; align-items: start; }
}

/* Galería WooCommerce (flexslider) */
.woocommerce-product-gallery {
	position: relative;
}
.woocommerce-product-gallery .flex-viewport {
	border-radius: var(--radius-lg);
	overflow: hidden;
	margin-bottom: var(--space-md);
}
.woocommerce-product-gallery__wrapper {
	margin: 0;
	padding: 0;
}
.woocommerce-product-gallery__image {
	display: block;
}
.woocommerce-product-gallery__image img {
	width: 100%;
	height: auto;
	object-fit: cover;
	border-radius: var(--radius-lg);
	display: block;
}
/* Imagen única (sin slider) */
.woocommerce-product-gallery__image:first-child:last-child img {
	border-radius: var(--radius-lg);
}

/* Thumbnails */
.flex-control-nav.flex-control-thumbs {
	display: flex;
	gap: var(--space-sm);
	flex-wrap: wrap;
	margin: 0;
	padding: 0;
	list-style: none;
}
.flex-control-thumbs li { margin: 0; }
.flex-control-thumbs img {
	width: 72px;
	height: 72px;
	object-fit: cover;
	border-radius: var(--radius-md);
	border: 2px solid var(--color-border);
	cursor: pointer;
	opacity: .6;
	transition: opacity var(--transition-fast), border-color var(--transition-fast);
	display: block;
}
.flex-control-thumbs img:hover { opacity: 1; border-color: var(--color-blue); }
.flex-control-thumbs img.flex-active { opacity: 1; border-color: var(--color-blue); }

/* Botón zoom */
.woocommerce-product-gallery__trigger {
	position: absolute;
	top: var(--space-md);
	right: var(--space-md);
	z-index: 10;
	width: 36px;
	height: 36px;
	border-radius: var(--radius-full);
	background: rgba(255,255,255,.9);
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: var(--shadow-sm);
}
.woocommerce-product-gallery__trigger img { width: 20px; height: 20px; }

/* Flechas prev/next del slider */
.flex-direction-nav { display: none; }

.product_title { font-size: var(--text-3xl); font-weight: var(--fw-extrabold); line-height: 1.2; margin-bottom: var(--space-md); }
.product-origen { display: inline-block; font-size: var(--text-xs); color: var(--color-text-light); text-transform: uppercase; letter-spacing: .1em; margin-bottom: var(--space-sm); }

.price { font-size: var(--text-2xl); font-weight: var(--fw-bold); color: var(--color-blue-dark); }
.price del { font-size: var(--text-lg); color: var(--color-text-light); font-weight: var(--fw-regular); }
.price ins { text-decoration: none; }
.price .woocommerce-Price-amount { color: var(--color-blue-dark); }

.single-product-excerpt { color: var(--color-text-mid); line-height: 1.7; margin-bottom: var(--space-xl); }

/* Añadir al carrito */
.cart { display: flex; align-items: center; gap: var(--space-md); flex-wrap: wrap; margin-bottom: var(--space-xl); }
.qty { display: flex; align-items: center; border: 1px solid var(--color-border); border-radius: var(--radius-full); overflow: hidden; }
.qty input {
	width: 48px;
	text-align: center;
	border: none;
	font-size: var(--text-base);
	font-weight: var(--fw-semibold);
	padding: var(--space-sm) 0;
	-moz-appearance: textfield;
}
.qty input::-webkit-outer-spin-button,
.qty input::-webkit-inner-spin-button { -webkit-appearance: none; }
.qty__btn {
	background: none;
	border: none;
	width: 36px;
	height: 36px;
	font-size: 1.2rem;
	line-height: 1;
	cursor: pointer;
	color: var(--color-text-mid);
	transition: background var(--transition-fast), color var(--transition-fast);
	flex-shrink: 0;
}
.qty__btn:hover { background: var(--color-bg-alt); color: var(--color-blue); }
.single_add_to_cart_button.button,
.single_add_to_cart_button.button.alt {
	background: var(--color-blue) !important;
	color: var(--color-white) !important;
	border: none;
	padding: 0.6rem 2rem;
	border-radius: var(--radius-full);
	font-size: var(--text-sm);
	font-weight: var(--fw-semibold);
	cursor: pointer;
	transition: background var(--transition-fast);
}
.single_add_to_cart_button.button:hover,
.single_add_to_cart_button.button.alt:hover { background: var(--color-blue-dark) !important; }

/* Badges del producto */
.product-badges { display: flex; gap: var(--space-lg); flex-wrap: wrap; margin-top: var(--space-xl); padding-top: var(--space-xl); border-top: 1px solid var(--color-border); }
.product-badge { display: flex; align-items: center; gap: var(--space-sm); font-size: var(--text-xs); color: var(--color-text-mid); }
.product-badge svg { width: 16px; height: 16px; color: var(--color-blue); }

/* Tabs */
.woocommerce-tabs { margin-top: var(--space-3xl); }
.woocommerce-tabs ul.tabs { display: flex; border-bottom: 2px solid var(--color-border); gap: 0; }
.woocommerce-tabs ul.tabs li { list-style: none; }
.woocommerce-tabs ul.tabs li a {
	display: block;
	padding: var(--space-md) var(--space-xl);
	font-size: var(--text-sm);
	font-weight: var(--fw-medium);
	color: var(--color-text-mid);
	border-bottom: 2px solid transparent;
	margin-bottom: -2px;
}
.woocommerce-tabs ul.tabs li.active a { color: var(--color-blue-dark); border-bottom-color: var(--color-blue); }
.woocommerce-tabs .panel { padding-block: var(--space-xl); }

/* Productos relacionados */
.related.products { margin-top: var(--space-3xl); }
.related.products h2 { font-size: var(--text-2xl); font-weight: var(--fw-bold); margin-bottom: var(--space-xl); }
.related.products ul.products {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--space-lg);
	list-style: none;
	padding: 0;
	margin: 0;
}
.related.products ul.products::before,
.related.products ul.products::after { display: none; }
.related.products ul.products li.product { width: auto !important; float: none !important; margin: 0 !important; }
@media (min-width: 640px)  { .related.products ul.products { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1024px) { .related.products ul.products { grid-template-columns: repeat(4, 1fr); } }


/* ───────────────────────────────────────────────────────────────────
   CARRITO
   ─────────────────────────────────────────────────────────────────── */
.cart-wrap { padding-block: var(--space-2xl); }
.cart-title { font-size: var(--text-3xl); font-weight: var(--fw-extrabold); margin-bottom: var(--space-2xl); }

.cart-layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-2xl);
}
@media (min-width: 960px) {
	.cart-layout { grid-template-columns: 1fr 380px; align-items: start; }
}

.cart-items { display: flex; flex-direction: column; gap: var(--space-md); }

.cart-item {
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	overflow: hidden;
}
.cart-item__info {
	display: grid;
	grid-template-columns: auto 1fr auto auto auto;
	gap: var(--space-md);
	align-items: center;
	padding: var(--space-lg);
}
@media (max-width: 640px) {
	.cart-item__info { grid-template-columns: 1fr; }
}

.cart-item__image { width: 80px; height: 80px; border-radius: var(--radius-md); overflow: hidden; flex-shrink: 0; }
.cart-item__image img { width: 100%; height: 100%; object-fit: cover; }
.cart-item__name a { font-weight: var(--fw-semibold); color: var(--color-text); }
.cart-item__name a:hover { color: var(--color-green-dark); }

.sorli-caja-meta {
	margin-top: var(--space-sm);
	font-size: var(--text-xs);
	color: var(--color-text-light);
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 2px var(--space-sm);
	align-items: start;
}
.sorli-caja-meta dt {
	font-weight: var(--fw-semibold);
	color: var(--color-text-mid);
	white-space: nowrap;
}
.sorli-caja-meta dt::after { content: ':'; }
.sorli-caja-meta dd {
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 1px;
}
.cart-item__price { font-weight: var(--fw-medium); color: var(--color-text-mid); }
.cart-item__quantity .qty { border-color: var(--color-border); }
.cart-item__subtotal { font-weight: var(--fw-bold); color: var(--color-green-dark); }
.cart-item__remove .remove { color: var(--color-text-light); font-size: var(--text-xl); line-height: 1; display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: var(--radius-full); transition: background var(--transition-fast), color var(--transition-fast); }
.cart-item__remove .remove:hover { background: #fde8e8; color: var(--color-error); }

.cart-actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: var(--space-md);
	padding-top: var(--space-lg);
}

.coupon { display: flex; align-items: center; gap: var(--space-md); }
.coupon label { font-size: var(--text-sm); font-weight: var(--fw-medium); }
.coupon input {
	padding: var(--space-sm) var(--space-md);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-full);
	font-size: var(--text-sm);
	width: 160px;
}

/* Resumen carrito */
.cart-summary {
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	padding: var(--space-xl);
	position: sticky;
	top: calc(var(--header-height) + var(--space-lg));
}
.cart-summary__title { font-size: var(--text-xl); font-weight: var(--fw-bold); margin-bottom: var(--space-xl); }
.cart_totals table { width: 100%; }
.cart_totals table tr { border-bottom: 1px solid var(--color-border); }
.cart_totals table th, .cart_totals table td { padding: var(--space-md) 0; font-size: var(--text-sm); }
.cart_totals table .order-total th, .cart_totals table .order-total td { font-size: var(--text-base); font-weight: var(--fw-bold); }
.checkout-button.button,
.wc-block-cart__submit-button,
.wp-block-woocommerce-proceed-to-checkout-block a {
	display: inline-block;
	width: auto;
	padding: 0.5rem var(--space-xl);
	background: var(--color-blue) !important;
	color: var(--color-white) !important;
	border: none;
	border-radius: var(--radius-full);
	font-size: var(--text-sm);
	font-weight: var(--fw-semibold);
	text-align: center;
	margin-top: var(--space-xl);
	transition: background var(--transition-fast);
	text-decoration: none;
	cursor: pointer;
}
.wc-proceed-to-checkout,
.cart_totals .wc-proceed-to-checkout {
	text-align: center;
}
.wc-block-cart__submit-container {
	text-align: center;
}
.wc-block-cart__submit-container a {
	text-decoration: none !important;
}
.checkout-button.button:hover,
.wc-block-cart__submit-button:hover,
.wp-block-woocommerce-proceed-to-checkout-block a:hover {
	background: var(--color-blue-dark) !important;
}


/* ───────────────────────────────────────────────────────────────────
   CHECKOUT
   ─────────────────────────────────────────────────────────────────── */

/* En carrito, checkout y mi cuenta, page-wrap no debe limitar el ancho a 900px */
body.woocommerce-cart .page-wrap,
body.woocommerce-checkout .page-wrap,
body.woocommerce-account .page-wrap {
	max-width: none;
}

.checkout-wrap { padding-block: var(--space-2xl); }

.checkout-layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-2xl);
}
@media (min-width: 960px) {
	.checkout-layout { grid-template-columns: 1fr 420px; align-items: start; }
}

.checkout-section { margin-bottom: var(--space-2xl); }
.checkout-section__title { font-size: var(--text-xl); font-weight: var(--fw-bold); margin-bottom: var(--space-xl); padding-bottom: var(--space-md); border-bottom: 1px solid var(--color-border); }

/* Campos WooCommerce */
.woocommerce-input-wrapper { width: 100%; }
.form-row { margin-bottom: var(--space-md); }
.form-row label { display: block; font-size: var(--text-sm); font-weight: var(--fw-medium); margin-bottom: var(--space-xs); }
.form-row label .required { color: var(--color-accent); }
.form-row input,
.form-row select,
.form-row textarea {
	width: 100%;
	padding: 0.75rem var(--space-md);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	font-size: var(--text-base);
	transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
	background: var(--color-white);
}
.form-row input:focus,
.form-row select:focus,
.form-row textarea:focus {
	border-color: var(--color-blue);
	box-shadow: 0 0 0 3px rgba(83,185,228,.2);
	outline: none;
}
.form-row.woocommerce-validated input { border-color: var(--color-success); }
.form-row.woocommerce-invalid input { border-color: var(--color-error); }

/* Revisión del pedido */
.checkout-order-review {
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	padding: var(--space-xl);
	position: sticky;
	top: calc(var(--header-height) + var(--space-lg));
}
#order_review_heading { font-size: var(--text-xl); font-weight: var(--fw-bold); margin-bottom: var(--space-xl); }

table.shop_table { width: 100%; border-collapse: collapse; }
table.shop_table th, table.shop_table td { padding: var(--space-md); border-bottom: 1px solid var(--color-border); font-size: var(--text-sm); }
table.shop_table tfoot tr:last-child td, table.shop_table tfoot tr:last-child th { font-size: var(--text-base); font-weight: var(--fw-bold); }

#place_order,
.wc-block-components-checkout-place-order-button {
	width: auto;
	padding: 0.5rem var(--space-xl);
	background: var(--color-blue) !important;
	color: var(--color-white) !important;
	border: none;
	border-radius: var(--radius-full);
	font-size: var(--text-sm);
	font-weight: var(--fw-semibold);
	cursor: pointer;
	margin-top: var(--space-xl);
	transition: background var(--transition-fast);
}
#place_order:hover,
.wc-block-components-checkout-place-order-button:hover {
	background: var(--color-blue-dark) !important;
}


/* ───────────────────────────────────────────────────────────────────
   CONFIGURADOR DE CAJA
   ─────────────────────────────────────────────────────────────────── */

/* Header del producto caja */
.single-product-caja .caja-header {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-2xl);
	margin-bottom: var(--space-3xl);
}
@media (min-width: 768px) {
	.single-product-caja .caja-header { grid-template-columns: 1fr 1fr; align-items: center; }
}

.caja-header__image { border-radius: var(--radius-xl); overflow: hidden; }
.caja-header__img { width: 100%; height: auto; object-fit: cover; max-height: 500px; border-radius: var(--radius-xl); }
.caja-header__img-placeholder {
	aspect-ratio: 4/3;
	background: linear-gradient(135deg, var(--color-green-pale) 0%, var(--color-green-light) 100%);
	border-radius: var(--radius-xl);
}

.caja-title { font-size: var(--text-3xl); font-weight: var(--fw-extrabold); line-height: 1.2; margin-bottom: var(--space-md); }
@media (min-width: 768px) { .caja-title { font-size: var(--text-4xl); } }
.caja-excerpt { color: var(--color-text-mid); line-height: 1.7; margin-bottom: var(--space-xl); }

/* Selector de frecuencia */
/* Selector de tamaño */
.size-selector { margin-bottom: var(--space-xl); }
.size-selector__label { font-size: var(--text-sm); font-weight: var(--fw-semibold); margin-bottom: var(--space-md); }

.size-options {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
	gap: var(--space-sm);
}

.size-option { cursor: pointer; }
.size-radio { position: absolute; opacity: 0; width: 0; height: 0; }

.size-option__card {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: var(--space-md) var(--space-sm);
	border: 2px solid var(--color-border);
	border-radius: var(--radius-md);
	background: var(--color-white);
	transition: border-color var(--transition-fast), background var(--transition-fast), box-shadow var(--transition-fast);
	user-select: none;
}
.size-option:hover .size-option__card {
	border-color: var(--color-blue);
	background: var(--color-blue-pale);
}
.size-radio:checked + .size-option__card {
	border-color: var(--color-blue-dark);
	background: var(--color-blue-pale);
	box-shadow: 0 0 0 3px rgba(83,185,228,.2);
}
.size-option__name {
	font-size: var(--text-xs);
	font-weight: var(--fw-bold);
	color: var(--color-text);
}
.size-option__precio {
	font-size: var(--text-xs);
	font-weight: var(--fw-bold);
	margin-top: var(--space-xs);
	padding: 2px 8px;
	border-radius: var(--radius-full);
	background: var(--color-blue-pale);
	color: var(--color-blue-dark);
	transition: background var(--transition-fast), color var(--transition-fast);
}
.size-radio:checked + .size-option__card .size-option__precio {
	background: var(--color-blue);
	color: var(--color-white);
}

.freq-selector { margin-bottom: var(--space-xl); }
.freq-selector__label { font-size: var(--text-sm); font-weight: var(--fw-semibold); margin-bottom: var(--space-md); }

.freq-options {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--space-sm);
}
@media (min-width: 400px) {
	.freq-options { grid-template-columns: repeat(4, 1fr); }
}
.freq-options--3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 400px) { .freq-options--3 { grid-template-columns: 1fr; } }

.freq-note {
	display: flex;
	align-items: center;
	gap: var(--space-sm);
	font-size: var(--text-xs);
	color: var(--color-text-light);
	margin-top: var(--space-sm);
}
.freq-note svg { width: 14px; height: 14px; flex-shrink: 0; color: var(--color-green-mid); }

/* Entrega puntual usa el azul corporativo */
.freq-option__modifier--neutral {
	background: var(--color-blue-pale);
	color: var(--color-blue-dark);
}
.freq-radio:checked + .freq-option__card .freq-option__modifier--neutral,
.freq-radio:checked + .freq-option__card .freq-option__modifier {
	background: var(--color-blue);
	color: var(--color-white);
}

/* Badge info azul (para notas informativas) */
.badge-info {
	display: inline-flex;
	align-items: center;
	gap: var(--space-xs);
	background: var(--color-blue-pale);
	color: var(--color-blue-dark);
	border: 1px solid rgba(83,185,228,.3);
	border-radius: var(--radius-full);
	font-size: var(--text-xs);
	font-weight: var(--fw-medium);
	padding: var(--space-xs) var(--space-md);
}
.badge-info svg { width: 13px; height: 13px; }

.freq-option { cursor: pointer; }
.freq-radio { position: absolute; opacity: 0; width: 0; height: 0; }
.freq-option__card {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: var(--space-md) var(--space-sm);
	border: 2px solid var(--color-border);
	border-radius: var(--radius-md);
	transition: border-color var(--transition-fast), background var(--transition-fast), box-shadow var(--transition-fast);
	user-select: none;
}
.freq-option:hover .freq-option__card {
	border-color: var(--color-blue);
	background: var(--color-blue-pale);
}
.freq-radio:checked + .freq-option__card {
	border-color: var(--color-blue-dark);
	background: var(--color-blue-pale);
	box-shadow: 0 0 0 3px rgba(83,185,228,.2);
}
.freq-option__name { font-size: var(--text-xs); font-weight: var(--fw-bold); color: var(--color-text); }
.freq-option__desc { font-size: 10px; color: var(--color-text-light); margin-top: 2px; }
.freq-option__modifier {
	font-size: var(--text-xs);
	font-weight: var(--fw-bold);
	margin-top: var(--space-xs);
	padding: 2px 6px;
	border-radius: var(--radius-full);
	background: var(--color-blue-pale);
	color: var(--color-blue-dark);
}

/* Precio total */
.caja-precio-total {
	display: flex;
	align-items: baseline;
	gap: var(--space-sm);
	flex-wrap: wrap;
	margin-bottom: var(--space-xl);
	padding: var(--space-lg) var(--space-xl);
	background: var(--color-blue-pale);
	border: 1px solid rgba(83,185,228,.25);
	border-radius: var(--radius-lg);
}
.caja-precio-total__label {
	font-size: var(--text-sm);
	font-weight: var(--fw-semibold);
	color: var(--color-blue-dark);
	text-transform: uppercase;
	letter-spacing: .05em;
}
.caja-precio-total__amount { font-size: var(--text-3xl); font-weight: var(--fw-extrabold); color: var(--color-blue-dark); }
.caja-precio-total__freq-text { font-size: var(--text-sm); color: var(--color-blue); }

/* ── Configurador principal ── */
.configurador {
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-xl);
	padding: var(--space-2xl);
	margin-bottom: var(--space-3xl);
}
.configurador__header { margin-bottom: var(--space-2xl); }
.configurador__title { font-size: var(--text-2xl); font-weight: var(--fw-bold); margin-bottom: var(--space-sm); }
.configurador__subtitle { font-size: var(--text-sm); color: var(--color-text-mid); }

/* Loading */
.configurador__loading {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--space-md);
	padding: var(--space-3xl);
	color: var(--color-text-light);
}
.configurador__loading[hidden],
.configurador__error[hidden] { display: none; }
.spinner {
	width: 36px; height: 36px;
	border: 3px solid var(--color-border);
	border-top-color: var(--color-green-mid);
	border-radius: var(--radius-full);
	animation: spin .7s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* Error */
.configurador__error { padding: var(--space-xl); background: #fef2f2; border-radius: var(--radius-lg); color: var(--color-error); }

/* ── Grid de slots ── */
.slots-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-md);
}
@media (min-width: 640px) { .slots-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .slots-grid { grid-template-columns: repeat(3, 1fr); } }

/* ── Tarjeta de slot ── */
.slot-card {
	background: var(--color-bg);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	overflow: hidden;
	transition: box-shadow var(--transition-base);
	grid-column: span 1;
}
.slot-card:hover { box-shadow: var(--shadow-md); }
.slot-card__inner {
	display: flex;
	align-items: flex-start;
	gap: var(--space-md);
	padding: var(--space-md);
	flex-wrap: wrap;
}

.slot-card__img-wrap { flex-shrink: 0; width: 72px; height: 72px; }
.slot-card__img { width: 72px; height: 72px; object-fit: cover; border-radius: var(--radius-md); }
.slot-card__img-placeholder { width: 72px; height: 72px; background: var(--color-green-pale); border-radius: var(--radius-md); }

.slot-card__body { flex: 1; min-width: 0; }
.slot-card__nombre { font-size: var(--text-sm); font-weight: var(--fw-semibold); margin-bottom: var(--space-xs); line-height: 1.3; }
.slot-card__origen { font-size: var(--text-xs); color: var(--color-text-light); margin-bottom: var(--space-xs); }
.slot-card__cantidad { font-size: var(--text-xs); color: var(--color-text-mid); margin-bottom: var(--space-xs); }
.slot-card__precio { font-size: var(--text-sm); font-weight: var(--fw-bold); color: var(--color-blue-dark); }

.slot-card__change-btn {
	margin-top: auto;
	align-self: flex-end;
	font-size: var(--text-xs);
	font-weight: var(--fw-bold);
	letter-spacing: .05em;
	border-color: var(--color-blue);
	color: var(--color-blue-dark);
}
.slot-card__change-btn:hover { background: var(--color-blue-pale); border-color: var(--color-blue-dark); color: var(--color-blue-dark); }
.slot-card__change-btn[aria-expanded="true"] { background: var(--color-blue); color: var(--color-white); border-color: var(--color-blue); }

/* ── Carrusel de alternativas ── */
.slot-carousel {
	grid-column: 1 / -1;
	background: var(--color-accent-pale);
	border: 1px solid rgba(245,130,31,.25);
	border-radius: var(--radius-lg);
	padding: var(--space-lg);
	margin-block: var(--space-xs);
}
.slot-carousel__title { font-size: var(--text-sm); font-weight: var(--fw-semibold); margin-bottom: var(--space-md); color: var(--color-text); }

.slot-carousel__track {
	display: flex;
	gap: var(--space-md);
	overflow-x: auto;
	padding-bottom: var(--space-md);
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
	scrollbar-color: var(--color-border) transparent;
}
.slot-carousel__track::-webkit-scrollbar { height: 4px; }
.slot-carousel__track::-webkit-scrollbar-track { background: transparent; }
.slot-carousel__track::-webkit-scrollbar-thumb { background: var(--color-border); border-radius: 2px; }

/* ── Ítem del carrusel ── */
.carousel-item {
	flex-shrink: 0;
	scroll-snap-align: start;
	width: 140px;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: var(--space-md);
	background: var(--color-white);
	border: 2px solid var(--color-border);
	border-radius: var(--radius-lg);
	cursor: pointer;
	transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
	gap: var(--space-sm);
}
.carousel-item:hover { border-color: var(--color-accent); box-shadow: var(--shadow-md); }
.carousel-item.is-selected { border-color: var(--color-green-mid); background: var(--color-green-pale); box-shadow: 0 0 0 3px rgba(45,138,78,.2); }

.carousel-item__img { width: 80px; height: 80px; object-fit: cover; border-radius: var(--radius-md); flex-shrink: 0; }
.carousel-item__img-placeholder { width: 80px; height: 80px; background: var(--color-bg-alt); border-radius: var(--radius-md); flex-shrink: 0; }
.carousel-item__nombre { font-size: var(--text-xs); font-weight: var(--fw-semibold); line-height: 1.3; }
.carousel-item__origen { font-size: 10px; color: var(--color-text-light); }
.carousel-item .price-badge { margin-top: auto; }
.carousel-item .price-badge--pos,
.carousel-item .price-badge--neg,
.carousel-item .price-badge--zero { background: #d4edda; color: #155724; }

/* ── Badges de diferencial de precio ── */
.price-badge {
	display: inline-block;
	font-size: var(--text-xs);
	font-weight: var(--fw-bold);
	padding: 2px 8px;
	border-radius: var(--radius-full);
	line-height: 1.4;
}
.price-badge--neg { background: #d4edda; color: #155724; }   /* Ahorro → verde */
.price-badge--pos { background: #fff3cd; color: #856404; }   /* Más caro → naranja/amarillo */
.price-badge--zero { background: var(--color-bg-alt); color: var(--color-text-light); }

.slot-carousel__close { margin-top: var(--space-md); }

/* Footer del configurador */
.configurador__footer { padding-top: var(--space-xl); border-top: 1px solid var(--color-border); margin-top: var(--space-xl); display: flex; justify-content: flex-end; align-items: center; gap: var(--space-lg); }
.configurador__footer .btn--blue { gap: var(--space-sm); }
.configurador__footer .btn--blue svg { width: 16px; height: 16px; }


/* ───────────────────────────────────────────────────────────────────
   BLOG (archive y single)
   ─────────────────────────────────────────────────────────────────── */
.blog-wrap { padding-block: var(--space-2xl); }

.blog-layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-2xl);
}
@media (min-width: 960px) {
	.blog-layout { grid-template-columns: 1fr 280px; }
}

.archive-header { margin-bottom: var(--space-2xl); }
.archive-title { font-size: var(--text-3xl); font-weight: var(--fw-extrabold); }

.posts-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-xl);
}
@media (min-width: 640px) { .posts-grid { grid-template-columns: repeat(2, 1fr); } }

.post-card { background: var(--color-white); border: 1px solid var(--color-border); border-radius: var(--radius-lg); overflow: hidden; transition: box-shadow var(--transition-base), transform var(--transition-base); }
.post-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.post-card__image-wrap { overflow: hidden; aspect-ratio: 16/9; }
.post-card__image { width: 100%; height: 100%; object-fit: cover; transition: transform var(--transition-slow); }
.post-card:hover .post-card__image { transform: scale(1.04); }
.post-card__body { padding: var(--space-xl); }
.post-card__meta { font-size: var(--text-xs); color: var(--color-text-light); margin-bottom: var(--space-sm); }
.post-card__title { font-size: var(--text-xl); font-weight: var(--fw-bold); line-height: 1.3; margin-bottom: var(--space-sm); }
.post-card__title a { color: var(--color-text); }
.post-card__title a:hover { color: var(--color-green-dark); }
.post-card__excerpt { font-size: var(--text-sm); color: var(--color-text-mid); line-height: 1.6; margin-bottom: var(--space-lg); }

/* Single post */
.post-article { max-width: 780px; }
.post-article__header { margin-bottom: var(--space-xl); }
.post-article__meta { font-size: var(--text-sm); color: var(--color-text-light); margin-bottom: var(--space-md); }
.post-article__title { font-size: var(--text-3xl); font-weight: var(--fw-extrabold); line-height: 1.2; margin-bottom: var(--space-lg); }
@media (min-width: 768px) { .post-article__title { font-size: var(--text-4xl); } }
.post-article__author { display: flex; align-items: center; gap: var(--space-md); font-size: var(--text-sm); }
.author-avatar { border-radius: var(--radius-full); }
.post-article__hero { margin-bottom: var(--space-2xl); border-radius: var(--radius-lg); overflow: hidden; }
.post-article__hero-img { width: 100%; height: auto; max-height: 520px; object-fit: cover; }
.post-article__content { font-size: var(--text-base); line-height: 1.8; }
.post-article__content h2, .post-article__content h3 { font-weight: var(--fw-bold); margin-block: var(--space-xl) var(--space-md); }
.post-article__content p { margin-bottom: var(--space-md); }
.post-article__content img { border-radius: var(--radius-md); margin-block: var(--space-lg); }
.post-article__footer { margin-top: var(--space-2xl); padding-top: var(--space-xl); border-top: 1px solid var(--color-border); }
.post-tags { font-size: var(--text-sm); color: var(--color-text-mid); margin-bottom: var(--space-lg); }
.post-tags a { background: var(--color-blue-pale); color: var(--color-blue-dark); padding: 2px 10px; border-radius: var(--radius-full); font-size: var(--text-xs); transition: background var(--transition-fast), color var(--transition-fast); }
.post-tags a:hover { background: var(--color-blue); color: var(--color-white); }
.post-navigation { display: flex; justify-content: space-between; gap: var(--space-lg); }
.post-navigation a { font-size: var(--text-sm); font-weight: var(--fw-semibold); color: var(--color-blue-dark); }
.post-navigation a:hover { color: var(--color-blue); }

/* Sidebar */
.widget { margin-bottom: var(--space-2xl); }
.widget__title { font-size: var(--text-sm); font-weight: var(--fw-bold); text-transform: uppercase; letter-spacing: .1em; color: var(--color-text-light); margin-bottom: var(--space-lg); padding-bottom: var(--space-sm); border-bottom: 2px solid var(--color-blue-pale); }
.recent-posts-list { display: flex; flex-direction: column; gap: var(--space-md); }
.recent-post a { display: flex; gap: var(--space-md); align-items: flex-start; }
.recent-post__thumb { width: 60px; height: 60px; border-radius: var(--radius-sm); overflow: hidden; flex-shrink: 0; }
.recent-post__thumb img { width: 100%; height: 100%; object-fit: cover; }
.recent-post__title { font-size: var(--text-sm); font-weight: var(--fw-semibold); color: var(--color-text); display: block; line-height: 1.4; }
.recent-post a:hover .recent-post__title { color: var(--color-green-dark); }
.recent-post__date { font-size: var(--text-xs); color: var(--color-text-light); margin-top: 2px; }
.categories-list { display: flex; flex-direction: column; gap: var(--space-sm); }
.categories-list a { display: flex; justify-content: space-between; font-size: var(--text-sm); color: var(--color-text-mid); padding: var(--space-sm) var(--space-md); border-radius: var(--radius-sm); transition: background var(--transition-fast), color var(--transition-fast); }
.categories-list a:hover { background: var(--color-green-pale); color: var(--color-green-dark); }
.cat-count { font-size: var(--text-xs); color: var(--color-text-light); background: var(--color-bg-alt); padding: 2px 8px; border-radius: var(--radius-full); }

/* Paginación blog */
.pagination { margin-top: var(--space-2xl); }
.pagination ul { display: flex; gap: var(--space-sm); flex-wrap: wrap; }
.pagination ul li a, .pagination ul li span { display: flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding-inline: var(--space-sm); border-radius: var(--radius-sm); font-size: var(--text-sm); font-weight: var(--fw-medium); border: 1px solid var(--color-border); color: var(--color-text-mid); transition: background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast); }
.pagination ul li a:hover { background: var(--color-blue-pale); border-color: var(--color-blue); color: var(--color-blue-dark); }
.pagination ul li span.current { background: var(--color-blue); color: var(--color-white); border-color: var(--color-blue); }


/* ───────────────────────────────────────────────────────────────────
   PÁGINAS GENÉRICAS
   ─────────────────────────────────────────────────────────────────── */
.page-wrap { max-width: 900px; margin-inline: auto; padding-block: var(--space-2xl); }
.page-article__header { margin-bottom: var(--space-2xl); }
.page-article__title { font-size: var(--text-3xl); font-weight: var(--fw-extrabold); }
@media (min-width: 768px) { .page-article__title { font-size: var(--text-4xl); } }
.page-article__hero-image { margin-bottom: var(--space-2xl); border-radius: var(--radius-lg); overflow: hidden; }
.page-article__content { font-size: var(--text-base); line-height: 1.8; }
.page-article__content h2, .page-article__content h3 { font-weight: var(--fw-bold); margin-block: var(--space-xl) var(--space-md); }
.page-article__content p { margin-bottom: var(--space-md); }


/* ───────────────────────────────────────────────────────────────────
   SOBRE NOSOTROS
   ─────────────────────────────────────────────────────────────────── */

/* Hero — mismo patrón que los slides */
.sn-hero {
	position: relative;
	height: 70svh;
	min-height: 420px;
	max-height: 640px;
	overflow: hidden;
	display: flex;
	align-items: center;
}
.sn-hero__bg {
	position: absolute;
	inset: 0;
	background-image: url('/wp-content/uploads/2026/06/cajas-naranjas.jpg');
	background-size: cover;
	background-position: center;
}
.sn-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to right, rgba(0,0,0,.6) 0%, rgba(0,0,0,.3) 60%, rgba(0,0,0,.05) 100%);
}
.sn-hero__content {
	position: relative;
	z-index: 2;
	max-width: 640px;
	padding-block: var(--space-2xl);
}
.sn-hero__label {
	display: inline-block;
	font-size: var(--text-xs);
	font-weight: var(--fw-semibold);
	text-transform: uppercase;
	letter-spacing: .14em;
	color: rgba(255,255,255,.85);
	background: rgba(255,255,255,.15);
	backdrop-filter: blur(6px);
	border: 1px solid rgba(255,255,255,.2);
	padding: var(--space-xs) var(--space-md);
	border-radius: var(--radius-full);
	margin-bottom: var(--space-lg);
}
.sn-hero__title {
	font-size: var(--text-5xl);
	font-weight: var(--fw-extrabold);
	line-height: 1.05;
	color: var(--color-white);
	margin-bottom: var(--space-lg);
}
.sn-hero__title em { color: var(--color-accent); font-style: normal; }
.sn-hero__lead {
	font-size: var(--text-lg);
	color: rgba(255,255,255,.8);
	line-height: 1.7;
	max-width: 480px;
}
@media (min-width: 768px) { .sn-hero__title { font-size: var(--text-6xl); } }

/* Historia */
.sn-historia__body { max-width: 720px; }
.sn-historia__text p {
	font-size: var(--text-lg);
	color: var(--color-text-mid);
	line-height: 1.8;
	margin-top: var(--space-md);
}
.sn-historia__quote {
	border-left: 4px solid var(--color-accent);
	padding: var(--space-lg) var(--space-xl);
	margin-block: var(--space-2xl);
	background-color: var(--color-accent-pale);
	border-radius: 0 var(--radius-md) var(--radius-md) 0;
	font-size: var(--text-xl);
	font-weight: var(--fw-semibold);
	color: var(--color-text);
	line-height: 1.5;
	font-style: normal;
}
.sn-historia__closing {
	font-size: var(--text-base);
	color: var(--color-text-mid);
	line-height: 1.8;
}

/* Timeline — basado en how-step pero con años */
.sn-timeline__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-xl);
}
@media (min-width: 640px)  { .sn-timeline__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .sn-timeline__grid { grid-template-columns: repeat(5, 1fr); } }

.sn-timeline__step {
	position: relative;
	padding: var(--space-xl);
	background: var(--color-white);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-sm);
	border-top: 3px solid var(--color-blue-pale);
	transition: border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base);
	opacity: 0;
	transform: translateY(18px);
}
.sn-timeline__step.is-visible {
	opacity: 1;
	transform: none;
	transition: border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base),
	            opacity .45s ease, transform .45s ease;
}
.sn-timeline__step:hover { border-top-color: var(--color-blue); box-shadow: var(--shadow-md); transform: translateY(-2px); }
.sn-timeline__step--now { border-top-color: var(--color-accent); }
.sn-timeline__step--now:hover { border-top-color: var(--color-accent); }

.sn-timeline__year {
	display: block;
	font-size: var(--text-3xl);
	font-weight: var(--fw-extrabold);
	color: var(--color-blue-pale);
	line-height: 1;
	margin-bottom: var(--space-md);
}
.sn-timeline__step--now .sn-timeline__year { color: var(--color-accent-pale); }

.sn-timeline__title {
	font-size: var(--text-base);
	font-weight: var(--fw-bold);
	color: var(--color-text);
	margin-bottom: var(--space-sm);
}
.sn-timeline__step--now .sn-timeline__title { color: var(--color-accent); }

.sn-timeline__desc {
	font-size: var(--text-sm);
	color: var(--color-text-mid);
	line-height: 1.6;
}

/* Icono en how-step */
.how-step__icon {
	width: 28px;
	height: 28px;
	color: var(--color-blue);
	margin-bottom: var(--space-sm);
}

/* CTA Sorli — sección oscura azul */
.section--cta-sorli {
	background: var(--color-blue-dark);
}
.section--cta-sorli .section-label {
	color: rgba(255,255,255,.7);
	background: rgba(255,255,255,.12);
}


/* ───────────────────────────────────────────────────────────────────
   CONTACTO
   ─────────────────────────────────────────────────────────────────── */

/* Hero — idéntico al de sobre-nosotros */
.cp-hero {
	position: relative;
	height: 50svh;
	min-height: 340px;
	max-height: 520px;
	overflow: hidden;
	display: flex;
	align-items: center;
}
.cp-hero__bg {
	position: absolute;
	inset: 0;
	background: linear-gradient(155deg, #1e6b3a 0%, #2d8a4e 45%, #4aae68 80%, #1a4a2e 100%);
	background-size: cover;
	background-position: center;
	/* Para foto real: background-image: url('/wp-content/themes/sorli-freeesh/assets/images/contacto-campo.jpg'); */
}
.cp-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to right, rgba(0,0,0,.6) 0%, rgba(0,0,0,.3) 60%, rgba(0,0,0,.05) 100%);
}
.cp-hero__content {
	position: relative;
	z-index: 2;
	max-width: 580px;
	padding-block: var(--space-2xl);
}
.cp-hero__label {
	display: inline-block;
	font-size: var(--text-xs);
	font-weight: var(--fw-semibold);
	text-transform: uppercase;
	letter-spacing: .14em;
	color: rgba(255,255,255,.85);
	background: rgba(255,255,255,.15);
	backdrop-filter: blur(6px);
	border: 1px solid rgba(255,255,255,.2);
	padding: var(--space-xs) var(--space-md);
	border-radius: var(--radius-full);
	margin-bottom: var(--space-lg);
}
.cp-hero__title {
	font-size: var(--text-5xl);
	font-weight: var(--fw-extrabold);
	line-height: 1.05;
	color: var(--color-white);
	margin-bottom: var(--space-lg);
}
.cp-hero__lead {
	font-size: var(--text-lg);
	color: rgba(255,255,255,.8);
	line-height: 1.7;
}
@media (min-width: 768px) { .cp-hero__title { font-size: var(--text-6xl); } }

/* Grid dos columnas */
.cp-grid {
	display: grid;
	gap: var(--space-3xl);
}
@media (min-width: 900px) {
	.cp-grid { grid-template-columns: 1fr 1.2fr; align-items: start; }
}

/* Info */
.cp-info__heading, .cp-form__heading {
	font-size: var(--text-2xl);
	font-weight: var(--fw-bold);
	color: var(--color-text);
	margin-bottom: var(--space-xl);
}
.cp-info__list { display: flex; flex-direction: column; gap: var(--space-lg); margin-bottom: var(--space-2xl); }
.cp-info__item { display: flex; gap: var(--space-md); align-items: flex-start; }
.cp-info__icon {
	width: 44px;
	height: 44px;
	background: var(--color-blue-pale);
	border-radius: var(--radius-full);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.cp-info__icon svg { width: 20px; height: 20px; color: var(--color-blue-dark); }
.cp-info__label {
	display: block;
	font-size: var(--text-xs);
	font-weight: var(--fw-semibold);
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--color-text-light);
	margin-bottom: 2px;
}
.cp-info__value {
	display: block;
	font-size: var(--text-base);
	font-weight: var(--fw-medium);
	color: var(--color-text);
}
a.cp-info__value:hover { color: var(--color-blue); }

/* Mapa */
.cp-map { border-radius: var(--radius-lg); overflow: hidden; }
.cp-map iframe { display: block; width: 100%; height: 280px; border: none; }
.cp-map__placeholder {
	width: 100%;
	height: 280px;
	background: var(--color-blue-pale);
	border: 2px dashed #a8d8ef;
	border-radius: var(--radius-lg);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: var(--space-md);
	color: var(--color-text-light);
	font-size: var(--text-sm);
}
.cp-map__placeholder svg { width: 40px; height: 40px; color: #a8d8ef; }

/* Formulario */
.cp-form { display: flex; flex-direction: column; gap: var(--space-lg); }
.cp-form__row { display: grid; gap: var(--space-lg); }
@media (min-width: 480px) { .cp-form__row--2col { grid-template-columns: 1fr 1fr; } }
.cp-form__field { display: flex; flex-direction: column; gap: var(--space-xs); }
.cp-form__label {
	font-size: var(--text-sm);
	font-weight: var(--fw-semibold);
	color: var(--color-text);
}
.cp-form__label span { color: var(--color-accent); }
.cp-form__input {
	width: 100%;
	padding: var(--space-sm) var(--space-md);
	border: 1.5px solid var(--color-border-mid);
	border-radius: var(--radius-md);
	background: var(--color-white);
	color: var(--color-text);
	font-size: var(--text-base);
	transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}
.cp-form__input:focus {
	outline: none;
	border-color: var(--color-blue);
	box-shadow: 0 0 0 3px var(--color-blue-pale);
}
.cp-form__textarea { resize: vertical; min-height: 140px; }
.cp-form__submit { align-self: flex-start; }

/* Avisos éxito / error */
.cp-notice {
	display: flex;
	align-items: center;
	gap: var(--space-sm);
	padding: var(--space-md) var(--space-lg);
	border-radius: var(--radius-md);
	font-size: var(--text-sm);
	font-weight: var(--fw-medium);
	margin-bottom: var(--space-lg);
}
.cp-notice svg { width: 20px; height: 20px; flex-shrink: 0; }
.cp-notice--ok    { background: #e6f4ec; color: var(--color-success); border: 1px solid #b8dfc8; }
.cp-notice--error { background: #fdecea; color: var(--color-error);   border: 1px solid #f5c5c0; }


/* ───────────────────────────────────────────────────────────────────
   404
   ─────────────────────────────────────────────────────────────────── */
.error-404 { padding-block: var(--space-4xl); }
.error-404__inner { max-width: 560px; margin-inline: auto; text-align: center; }
.error-404__illustration { display: flex; flex-direction: column; align-items: center; margin-bottom: var(--space-2xl); }
.error-404__emoji { font-size: 5rem; line-height: 1; }
.error-404__code { font-size: var(--text-6xl); font-weight: var(--fw-extrabold); color: var(--color-blue); line-height: 1; margin-top: -1rem; }
.error-404__title { font-size: var(--text-2xl); font-weight: var(--fw-bold); margin-bottom: var(--space-md); }
.error-404__text { color: var(--color-text-mid); line-height: 1.7; margin-bottom: var(--space-xl); }
.error-404__actions { display: flex; gap: var(--space-md); justify-content: center; flex-wrap: wrap; margin-bottom: var(--space-2xl); }
.error-404__actions .btn--primary { background: var(--color-blue); color: var(--color-white); }
.error-404__actions .btn--primary:hover { background: #3aa3d0; box-shadow: 0 4px 16px rgba(83,185,228,.4); }
.error-404__actions .btn--ghost { border-color: var(--color-blue); color: var(--color-blue); }
.error-404__actions .btn--ghost:hover { border-color: var(--color-blue); background: rgba(83,185,228,.1); color: var(--color-blue); }
.error-404__search label { display: block; font-size: var(--text-sm); font-weight: var(--fw-medium); margin-bottom: var(--space-md); }
.search-input-wrap { display: flex; gap: var(--space-sm); }
.search-input-wrap input { flex: 1; padding: 0.75rem var(--space-md); border: 1px solid var(--color-border); border-radius: var(--radius-full); font-size: var(--text-base); }
.search-input-wrap input:focus { border-color: var(--color-blue); outline: none; box-shadow: 0 0 0 3px rgba(83,185,228,.2); }


/* ───────────────────────────────────────────────────────────────────
   COMING SOON (página standalone, sin header ni footer)
   ─────────────────────────────────────────────────────────────────── */
.coming-soon-page { background: var(--color-white); margin: 0; }

.cs { min-height: 100vh; display: flex; flex-direction: column; position: relative; }
.cs__wave-top, .cs__wave-bottom { display: block; line-height: 0; }
.cs__wave-top svg, .cs__wave-bottom svg { width: 100%; height: 80px; display: block; }

.cs__inner { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: var(--space-lg) var(--space-lg); text-align: center; gap: var(--space-lg); }

.cs__logo { display: block; margin-top: var(--space-xl); }
.cs__logo img { width: 220px; max-width: 60vw; height: auto; }

.cs__badge { display: inline-block; background: var(--color-blue-pale); color: var(--color-blue-dark); font-size: var(--text-xs); font-weight: var(--fw-semibold); letter-spacing: .08em; text-transform: uppercase; padding: .3rem .8rem; border-radius: var(--radius-full); }

.cs__title { font-size: clamp(var(--text-xl), 4vw, var(--text-3xl)); font-weight: var(--fw-extrabold); color: var(--color-blue); line-height: 1.2; max-width: 520px; margin: 0; }

.cs__subtitle { color: var(--color-text-mid); line-height: 1.6; max-width: 460px; font-size: var(--text-sm); margin: 0; }

.cs__features { display: flex; gap: var(--space-lg); flex-wrap: wrap; justify-content: center; }
.cs__feature { display: flex; flex-direction: column; align-items: center; gap: var(--space-xs); min-width: 110px; }
.cs__feature-icon { width: 44px; height: 44px; border-radius: 50%; background: var(--color-blue-pale); display: flex; align-items: center; justify-content: center; color: var(--color-blue); }
.cs__feature-icon svg { width: 20px; height: 20px; }
.cs__feature-text { font-size: var(--text-xs); color: var(--color-text-mid); line-height: 1.4; }
.cs__feature-text strong { color: var(--color-text); display: block; }

.cs__whatsapp { display: inline-flex; align-items: center; gap: var(--space-sm); background: #25d366; color: var(--color-white); font-weight: var(--fw-semibold); font-size: var(--text-sm); padding: .75rem 1.75rem; border-radius: var(--radius-full); text-decoration: none; transition: background .2s, transform .15s; box-shadow: 0 4px 16px rgba(37,211,102,.35); }
.cs__whatsapp:hover { background: #1ebe5d; transform: translateY(-2px); }
.cs__whatsapp svg { width: 20px; height: 20px; flex-shrink: 0; }

.cs__social { display: flex; gap: var(--space-lg); }
.cs__social a { color: var(--color-text-light); transition: color .2s; }
.cs__social a:hover { color: var(--color-blue); }
.cs__social svg { width: 22px; height: 22px; display: block; }


/* ───────────────────────────────────────────────────────────────────
   BREADCRUMBS
   ─────────────────────────────────────────────────────────────────── */
.woocommerce-breadcrumb {
	font-size: var(--text-xs);
	color: var(--color-text-light);
	margin-bottom: var(--space-xl);
}
.woocommerce-breadcrumb a { color: var(--color-text-light); }
.woocommerce-breadcrumb a:hover { color: var(--color-blue); }
.breadcrumb-sep { margin-inline: var(--space-xs); }


/* ───────────────────────────────────────────────────────────────────
   WOOCOMMERCE NOTICES
   ─────────────────────────────────────────────────────────────────── */
.woocommerce-message,
.woocommerce-error,
.woocommerce-info {
	padding: var(--space-md) var(--space-lg);
	border-radius: var(--radius-md);
	margin-bottom: var(--space-lg);
	font-size: var(--text-sm);
	display: flex;
	align-items: center;
	gap: var(--space-md);
}
.woocommerce-message { background: #d4edda; color: #155724; border-left: 4px solid var(--color-success); }
.woocommerce-error { background: #f8d7da; color: #721c24; border-left: 4px solid var(--color-error); }
.woocommerce-message::before,
.woocommerce-error::before,
.woocommerce-info::before { margin-right: var(--space-sm); }
/* WC info notice usa el azul corporativo */
.woocommerce-info { background: var(--color-blue-pale); color: var(--color-blue-dark); border-left: 4px solid var(--color-blue); }
.woocommerce-error ul { list-style: disc; padding-left: var(--space-lg); }


/* ───────────────────────────────────────────────────────────────────
   ENTRY CONTENT (editor)
   ─────────────────────────────────────────────────────────────────── */
.entry-content h1, .entry-content h2, .entry-content h3, .entry-content h4 { font-weight: var(--fw-bold); line-height: 1.3; margin-bottom: var(--space-md); margin-top: var(--space-xl); }
.entry-content p { margin-bottom: var(--space-md); }
.entry-content ul, .entry-content ol { padding-left: var(--space-xl); margin-bottom: var(--space-md); }
.entry-content ul { list-style: disc; }
.entry-content ol { list-style: decimal; }
.entry-content blockquote { border-left: 4px solid var(--color-green-mid); padding-left: var(--space-lg); color: var(--color-text-mid); font-style: italic; margin-block: var(--space-xl); }
.entry-content a { color: #2a90c0; text-decoration: none; }
.acct-card, .acct-card:hover { text-decoration: none !important; }
.entry-content a:hover { color: var(--color-blue); }
.entry-content img { border-radius: var(--radius-md); margin-block: var(--space-lg); }


/* ───────────────────────────────────────────────────────────────────
   RESPONSIVO (ajustes adicionales)
   ─────────────────────────────────────────────────────────────────── */
@media (max-width: 639px) {
	:root { --space-4xl: 3rem; --space-3xl: 2.5rem; }
	.section-title { font-size: var(--text-2xl); }
	.hero-title { font-size: var(--text-3xl); }
	.single-product-caja .caja-header { gap: var(--space-xl); }
	.configurador { padding: var(--space-lg); }
	.freq-options { grid-template-columns: repeat(2, 1fr); }
}

/* ── WooCommerce Blocks: metadatos de caja (carrito + checkout) ── */
.wc-block-components-product-details > span {
	display: block !important;
	margin-bottom: 2px;
}
.wc-block-components-product-details [aria-hidden="true"] {
	display: none !important;
}
.wc-block-components-product-details__name {
	font-size: var(--text-xs);
	font-weight: var(--fw-semibold);
	color: var(--color-text-mid);
}
.wc-block-components-product-details__value {
	font-size: var(--text-xs);
	color: var(--color-text-light);
}

/* Ocultar "Precio total de 1 artículo: X€" — redundante cuando qty=1 */
.wc-block-components-order-summary-item__individual-prices {
	display: none !important;
}

/* ───────────────────────────────────────────────────────────────────
   Mi cuenta
   ─────────────────────────────────────────────────────────────────── */

.woocommerce-account .site-main {
	padding-block: var(--space-xl) !important;
	background: var(--color-bg) !important;
}

/* Layout: sidebar + contenido */
.woocommerce-account .woocommerce {
	width: 100% !important;
}

/* ── Navegación lateral ── */
.woocommerce-MyAccount-navigation {
	background: #fff !important;
	border-radius: var(--radius-lg) !important;
	overflow: hidden !important;
	box-shadow: 0 2px 12px rgba(0,0,0,.07) !important;
}
.woocommerce-MyAccount-navigation ul {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}
.woocommerce-MyAccount-navigation ul li a {
	display: block !important;
	padding: var(--space-md) var(--space-lg) !important;
	color: var(--color-text) !important;
	font-weight: var(--fw-medium) !important;
	font-size: var(--text-sm) !important;
	border-left: 3px solid transparent !important;
	transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast) !important;
}
@media (max-width: 768px) {
	.woocommerce-MyAccount-navigation { border-radius: var(--radius-md) !important; margin-bottom: var(--space-lg) !important; }
	.woocommerce-MyAccount-navigation ul { display: flex !important; overflow-x: auto !important; -webkit-overflow-scrolling: touch !important; scrollbar-width: none !important; }
	.woocommerce-MyAccount-navigation ul::-webkit-scrollbar { display: none !important; }
	.woocommerce-MyAccount-navigation ul li { flex-shrink: 0 !important; }
	.woocommerce-MyAccount-navigation ul li a { border-left: none !important; border-bottom: 3px solid transparent !important; padding: var(--space-sm) var(--space-md) !important; font-size: var(--text-xs) !important; white-space: nowrap !important; }
	.woocommerce-MyAccount-navigation ul li a:hover { border-bottom-color: var(--color-blue) !important; border-left-color: transparent !important; }
	.woocommerce-MyAccount-navigation ul li.is-active a,
	.woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--is-active a { border-bottom-color: #3aa3d0 !important; border-left-color: transparent !important; }
}
.woocommerce-MyAccount-navigation ul li a:hover {
	background: rgba(83,185,228,.08) !important;
	color: var(--color-blue) !important;
	border-left-color: var(--color-blue) !important;
}
.woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--is-active a {
	background: var(--color-blue) !important;
	color: #fff !important;
	border-left-color: #3aa3d0 !important;
	font-weight: var(--fw-semibold) !important;
}

/* ── Contenido principal ── */
.woocommerce-MyAccount-content {
	background: #fff !important;
	border-radius: var(--radius-lg) !important;
	padding: var(--space-2xl) !important;
	box-shadow: 0 2px 12px rgba(0,0,0,.07) !important;
}
@media (max-width: 600px) {
	.woocommerce-MyAccount-content { padding: var(--space-md) var(--space-sm) !important; }
}

/* Títulos de sección */
.woocommerce-MyAccount-content h2,
.woocommerce-MyAccount-content h3 {
	color: var(--color-blue) !important;
	font-weight: var(--fw-bold) !important;
	margin-bottom: var(--space-lg) !important;
}

/* ── Tabla de pedidos ── */
.woocommerce-orders-table {
	width: 100% !important;
	border-collapse: collapse !important;
	font-size: var(--text-sm) !important;
}
.woocommerce-orders-table th {
	background: var(--color-blue) !important;
	color: #fff !important;
	padding: var(--space-sm) var(--space-md) !important;
	text-align: left !important;
	font-weight: var(--fw-semibold) !important;
}
.woocommerce-orders-table td {
	padding: var(--space-sm) var(--space-md) !important;
	border-bottom: 1px solid var(--color-border) !important;
	vertical-align: middle !important;
}
.woocommerce-orders-table tr:hover td {
	background: rgba(83,185,228,.05) !important;
}
.woocommerce-orders-table .woocommerce-button {
	font-size: var(--text-xs) !important;
	padding: 4px 12px !important;
}

/* ── Badges de estado de pedido ── */
.woocommerce-orders-table .wc-item-meta,
mark.order-status {
	display: inline-block !important;
	padding: 2px 10px !important;
	border-radius: var(--radius-full) !important;
	font-size: var(--text-xs) !important;
	font-weight: var(--fw-semibold) !important;
	background: rgba(83,185,228,.15) !important;
	color: var(--color-blue) !important;
}
mark.order-status.status-completed { background: rgba(45,138,78,.12) !important; color: var(--color-green-dark) !important; }
mark.order-status.status-processing { background: rgba(83,185,228,.15) !important; color: #2a8fb5 !important; }
mark.order-status.status-on-hold { background: #fff3cd !important; color: #856404 !important; }
mark.order-status.status-cancelled { background: #fde8e8 !important; color: #c0392b !important; }

/* ── Direcciones ── */
.woocommerce-Addresses {
	gap: var(--space-xl) !important;
}
.woocommerce-Address {
	border: 1px solid var(--color-border) !important;
	border-radius: var(--radius-md) !important;
	padding: var(--space-lg) !important;
}
.woocommerce-Address-title {
	display: flex !important;
	justify-content: space-between !important;
	align-items: center !important;
	margin-bottom: var(--space-md) !important;
	border-bottom: 2px solid var(--color-blue) !important;
	padding-bottom: var(--space-sm) !important;
}
.woocommerce-Address-title h3 {
	color: var(--color-blue) !important;
	margin: 0 !important;
}

/* ── Formularios de cuenta ── */
.woocommerce-EditAccountForm fieldset,
.woocommerce-address-fields fieldset {
	border: 1px solid var(--color-border) !important;
	border-radius: var(--radius-md) !important;
	padding: var(--space-lg) !important;
	margin-bottom: var(--space-xl) !important;
}
.woocommerce-EditAccountForm legend,
.woocommerce-address-fields legend {
	font-weight: var(--fw-semibold) !important;
	color: var(--color-blue) !important;
	padding-inline: var(--space-sm) !important;
}
.woocommerce-account .woocommerce-form-row label,
.woocommerce-account .form-row label {
	font-size: var(--text-sm) !important;
	font-weight: var(--fw-medium) !important;
	margin-bottom: 4px !important;
	display: block !important;
}
.woocommerce-account .woocommerce-form-row input,
.woocommerce-account .form-row input,
.woocommerce-account .form-row select {
	width: 100% !important;
	border: 1px solid var(--color-border) !important;
	border-radius: var(--radius-sm) !important;
	padding: 10px 14px !important;
	font-size: var(--text-sm) !important;
}
.woocommerce-account .woocommerce-form-row input:focus,
.woocommerce-account .form-row input:focus,
.woocommerce-account .form-row select:focus {
	outline: none !important;
	border-color: var(--color-blue) !important;
	box-shadow: 0 0 0 3px rgba(83,185,228,.2) !important;
}

/* Botones de cuenta — azul */
.woocommerce-account .woocommerce-Button,
.woocommerce-account button[type="submit"],
.woocommerce-account .button {
	background: var(--color-blue) !important;
	color: #fff !important;
	border: none !important;
	border-radius: var(--radius-md) !important;
	padding: 10px 24px !important;
	font-weight: var(--fw-semibold) !important;
	font-size: var(--text-sm) !important;
	cursor: pointer !important;
}
.woocommerce-account .woocommerce-Button:hover,
.woocommerce-account button[type="submit"]:hover,
.woocommerce-account .button:hover {
	background: #3aa3d0 !important;
	box-shadow: 0 4px 16px rgba(83,185,228,.4) !important;
}

/* ── Dashboard de cuenta ── */
.acct-dashboard { display: flex; flex-direction: column; gap: var(--space-xl); }

.acct-dashboard__welcome {
	display: flex;
	justify-content: space-between;
	align-items: center;
	background: #fff;
	border: 1px solid var(--color-border);
	border-left: 4px solid var(--color-blue);
	border-radius: var(--radius-lg);
	padding: var(--space-md) var(--space-xl);
}
.acct-dashboard__hello { font-size: var(--text-base); color: var(--color-text); }
.acct-dashboard__hello strong { font-weight: var(--fw-bold); color: var(--color-blue); }
.acct-dashboard__logout { display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: var(--radius-full); color: var(--color-text-mid); background: var(--color-bg); transition: background var(--transition-fast), color var(--transition-fast); flex-shrink: 0; }
.acct-dashboard__logout svg { width: 18px; height: 18px; }
.acct-dashboard__logout:hover { background: #fde8e8; color: #c0392b; }

.acct-dashboard__last-order {
	display: flex;
	align-items: center;
	gap: var(--space-lg);
	background: #f0f9ff;
	border: 1px solid rgba(83,185,228,.3);
	border-radius: var(--radius-lg);
	padding: var(--space-lg) var(--space-xl);
	flex-wrap: wrap;
}
.acct-dashboard__last-order-label { display: block; font-size: var(--text-xs); font-weight: var(--fw-semibold); color: var(--color-blue); text-transform: uppercase; letter-spacing: .05em; margin-bottom: 2px; }
.acct-dashboard__last-order-num { display: block; font-size: var(--text-lg); font-weight: var(--fw-bold); }
.acct-dashboard__last-order-date { display: block; font-size: var(--text-sm); color: var(--color-text-mid); }
.acct-dashboard__last-order-meta { display: flex; flex-direction: column; gap: 4px; margin-left: auto; }
.acct-dashboard__last-order-total { font-weight: var(--fw-bold); font-size: var(--text-lg); }
.acct-dashboard__last-order-status { display: inline-block; padding: 2px 10px; border-radius: var(--radius-full); font-size: var(--text-xs); font-weight: var(--fw-semibold); background: rgba(83,185,228,.15); color: var(--color-blue); }
.acct-dashboard__last-order-status.status-completed { background: rgba(45,138,78,.12); color: var(--color-green-dark); }
.acct-dashboard__last-order-status.status-cancelled { background: #fde8e8; color: #c0392b; }
.acct-dashboard__last-order-link { font-size: var(--text-sm); font-weight: var(--fw-semibold); color: var(--color-blue); white-space: nowrap; }
.acct-dashboard__last-order-link:hover { text-decoration: underline; }
@media (max-width: 600px) {
	.acct-dashboard__last-order { flex-direction: column; align-items: flex-start; gap: var(--space-md); padding: var(--space-lg); }
	.acct-dashboard__last-order-meta { margin-left: 0; flex-direction: row; align-items: center; gap: var(--space-md); }
}

.acct-dashboard__cards {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--space-lg);
}
@media (max-width: 600px) { .acct-dashboard__cards { grid-template-columns: 1fr; gap: var(--space-md); } }

.acct-card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--space-sm);
	background: #fff;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	padding: var(--space-xl);
	transition: border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);
}
.acct-card:hover { border-color: var(--color-blue); box-shadow: 0 4px 20px rgba(83,185,228,.2); transform: translateY(-2px); }
.acct-card__icon { width: 44px; height: 44px; background: rgba(83,185,228,.1); border-radius: var(--radius-md); display: flex; align-items: center; justify-content: center; color: var(--color-blue); border: 2px solid rgba(45,138,78,.35); }
.acct-card__icon svg { width: 22px; height: 22px; }
.acct-card__label { font-weight: var(--fw-bold); font-size: var(--text-base); color: var(--color-text); }
.acct-card__desc { font-size: var(--text-sm); color: var(--color-text-mid); line-height: 1.5; }
.acct-card--accent { border-color: var(--color-blue); background: var(--color-blue); }
.acct-card--accent .acct-card__icon { background: rgba(255,255,255,.2); color: #fff; }
.acct-card--accent .acct-card__label { color: #fff; }
.acct-card--accent .acct-card__desc { color: rgba(255,255,255,.85); }
.acct-card--accent:hover { box-shadow: 0 4px 20px rgba(83,185,228,.4); border-color: var(--color-blue); }

/* ── Página de login de cuenta ── */
.woocommerce-account .u-columns {
	gap: var(--space-2xl) !important;
}
.woocommerce-account .woocommerce-form-login,
.woocommerce-account .woocommerce-form-register {
	background: #fff !important;
	border-radius: var(--radius-lg) !important;
	padding: var(--space-2xl) !important;
	box-shadow: 0 2px 12px rgba(0,0,0,.07) !important;
}
.woocommerce-account .woocommerce-form-login h2,
.woocommerce-account .woocommerce-form-register h2 {
	color: var(--color-blue) !important;
	font-weight: var(--fw-bold) !important;
	margin-bottom: var(--space-lg) !important;
	font-size: var(--text-xl) !important;
}
.woocommerce-account .lost_password a {
	font-size: var(--text-sm) !important;
	color: var(--color-blue) !important;
}
.woocommerce-account .lost_password a:hover { text-decoration: underline !important; }


/* === Botón flotante WhatsApp === */
.wa-fab {
	position: fixed;
	bottom: 1.5rem;
	right: 1.5rem;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3.25rem;
	height: 3.25rem;
	border-radius: 50%;
	background: #25d366;
	box-shadow: 0 4px 18px rgba(37, 211, 102, .45);
	color: #fff;
	text-decoration: none;
	transition: background .2s, transform .2s, box-shadow .2s;
}
.wa-fab:hover,
.wa-fab:focus-visible {
	background: #1ebe5d;
	transform: translateY(-3px) scale(1.07);
	box-shadow: 0 8px 24px rgba(37, 211, 102, .5);
	color: #fff;
}
.wa-fab svg { width: 1.75rem; height: 1.75rem; flex-shrink: 0; }
@media (max-width: 600px) {
	.wa-fab { bottom: 1rem; right: 1rem; width: 3rem; height: 3rem; }
	.wa-fab svg { width: 1.5rem; height: 1.5rem; }
}
