/*
Theme Name:   Organium Child — Casa Alonso v2
Theme URI:    https://casa-alonso.es
Description:  Child theme premium para Casa Alonso. Sistema de componentes propios .ca-* sobre Organium. Paleta tierra cálida (granate/oliva/dorado/crema) + Cormorant Garamond + Inter. v2 incluye overrides completos de WooCommerce templates.
Author:       Monir Jrana / Blackout Media
Author URI:   https://blackoutmedia.es
Template:     organium
Version:      2.0.0
Text Domain:  organium-child
*/


/* ============================================================
   GOOGLE FONTS — Cormorant Garamond (titulares editorial) + Inter (cuerpo humanista)
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&family=Inter:wght@400;500;600;700&display=swap');


/* ============================================================
   1. SISTEMA DE DISEÑO — TOKENS
   Si Zaka quiere cambiar la paleta, cambia AQUÍ y se propaga.
   ============================================================ */
:root {

	/* Paleta tierra cálida — Casa Alonso */
	--c-cream:           #faf6f0;
	--c-cream-2:         #f5efe6;
	--c-paper:           #fffdf9;
	--c-line:            #e8dfd2;
	--c-line-strong:     #c9a878;

	--c-ink:             #2a1d14;
	--c-ink-soft:        #6b5a4b;
	--c-ink-mute:        #9b8b7d;
	--c-on-dark:         #faf6f0;

	--c-wine:            #7a2e2e;
	--c-wine-dark:       #5e2222;
	--c-wine-light:      #a04545;

	--c-olive:           #6b8e4e;
	--c-olive-dark:      #4d6b39;

	--c-honey:           #c08850;
	--c-honey-dark:      #9a6a3c;
	--c-honey-soft:      #e8c896;

	--c-earth:           #6b4423;
	--c-earth-dark:      #3d2817;
	--c-earth-light:     #a8825a;

	--c-sand:            #d4c4a0;

	--c-success:         #4a6741;
	--c-error:           #8b3a3a;
	--c-warn:            #c08850;

	/* Tipografía */
	--f-serif:           'Cormorant Garamond', Georgia, 'Times New Roman', serif;
	--f-sans:            'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;

	--w-regular:         400;
	--w-medium:          500;
	--w-semibold:        600;
	--w-bold:            700;

	--fs-xs:             12px;
	--fs-s:              14px;
	--fs-base:           16px;
	--fs-m:              18px;
	--fs-l:              22px;
	--fs-xl:             28px;
	--fs-2xl:            36px;
	--fs-3xl:            48px;
	--fs-4xl:            64px;
	--fs-5xl:            84px;

	--lh-tight:          1.15;
	--lh-snug:           1.3;
	--lh-normal:         1.5;
	--lh-relaxed:        1.7;

	--sp-1:              4px;
	--sp-2:              8px;
	--sp-3:              12px;
	--sp-4:              16px;
	--sp-5:              20px;
	--sp-6:              24px;
	--sp-8:              32px;
	--sp-10:             40px;
	--sp-12:             48px;
	--sp-16:             64px;
	--sp-20:             80px;
	--sp-24:             96px;
	--sp-32:             128px;

	--r-xs:              2px;
	--r-s:               4px;
	--r-m:               8px;
	--r-l:               16px;
	--r-pill:            999px;

	--sh-1:              0 1px 2px rgba(42, 29, 20, 0.04), 0 1px 3px rgba(42, 29, 20, 0.06);
	--sh-2:              0 2px 6px rgba(42, 29, 20, 0.06), 0 4px 12px rgba(42, 29, 20, 0.08);
	--sh-3:              0 6px 16px rgba(42, 29, 20, 0.08), 0 12px 32px rgba(42, 29, 20, 0.10);
	--sh-4:              0 12px 32px rgba(42, 29, 20, 0.12), 0 24px 64px rgba(42, 29, 20, 0.14);

	--t-fast:            120ms cubic-bezier(.4,0,.2,1);
	--t-base:            200ms cubic-bezier(.4,0,.2,1);
	--t-slow:            350ms cubic-bezier(.4,0,.2,1);

	--container-max:     1320px;
	--container-narrow:  840px;
	--container-wide:    1440px;
	--gutter:            24px;
}


/* ============================================================
   2. RESET Y BASE
   ============================================================ */
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body,
body.organium {
	font-family: var(--f-sans) !important;
	font-size: var(--fs-base);
	line-height: var(--lh-relaxed);
	color: var(--c-ink) !important;
	background: var(--c-cream) !important;
	font-weight: var(--w-regular);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}

img, svg, video {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	color: var(--c-ink);
	text-decoration: none;
	transition: color var(--t-base);
}
a:hover { color: var(--c-wine); }

::selection { background: var(--c-wine); color: var(--c-on-dark); }

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
	font-family: var(--f-serif) !important;
	font-weight: var(--w-medium);
	line-height: var(--lh-tight);
	color: var(--c-ink);
	margin: 0 0 var(--sp-4);
	letter-spacing: -0.005em;
}

h1, .h1 { font-size: clamp(36px, 5vw, var(--fs-4xl)); }
h2, .h2 { font-size: clamp(28px, 4vw, var(--fs-3xl)); }
h3, .h3 { font-size: clamp(22px, 3vw, var(--fs-2xl)); }
h4, .h4 { font-size: var(--fs-xl); }
h5, .h5 { font-size: var(--fs-l); }
h6, .h6 { font-size: var(--fs-m); }

p { margin: 0 0 var(--sp-4); line-height: var(--lh-relaxed); }
p:last-child { margin-bottom: 0; }

.ca-eyebrow {
	font-family: var(--f-sans);
	font-size: var(--fs-xs);
	font-weight: var(--w-semibold);
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-honey-dark);
	margin: 0 0 var(--sp-3);
}


/* ============================================================
   3. LAYOUT PRIMITIVES
   ============================================================ */
.ca-container {
	width: 100%;
	max-width: var(--container-max);
	margin: 0 auto;
	padding: 0 var(--gutter);
	box-sizing: border-box;
}
.ca-container-narrow {
	width: 100%;
	max-width: var(--container-narrow);
	margin: 0 auto;
	padding: 0 var(--gutter);
	box-sizing: border-box;
}

.ca-section { padding: var(--sp-20) 0; }
.ca-section-tight { padding: var(--sp-12) 0; }
.ca-section-loose { padding: var(--sp-24) 0; }

.ca-section-title {
	font-family: var(--f-serif);
	font-size: clamp(26px, 3.5vw, 40px);
	font-weight: var(--w-medium);
	line-height: var(--lh-tight);
	margin: 0 0 var(--sp-4);
	letter-spacing: -0.01em;
}

.ca-section-lede {
	font-size: var(--fs-m);
	color: var(--c-ink-soft);
	max-width: 60ch;
	margin: 0 0 var(--sp-8);
	line-height: var(--lh-relaxed);
}


/* ============================================================
   4. BOTONES
   ============================================================ */
.button,
.ca-btn,
button.ca-btn,
input[type="submit"],
.wp-block-button__link,
.elementor-button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce-page button.button,
.woocommerce a.button.alt,
.woocommerce button.button.alt {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 8px !important;
	font-family: var(--f-sans) !important;
	font-size: var(--fs-s) !important;
	font-weight: var(--w-semibold) !important;
	line-height: 1 !important;
	letter-spacing: 0.04em !important;
	text-transform: uppercase !important;
	padding: 14px 28px !important;
	border-radius: var(--r-pill) !important;
	border: 1.5px solid transparent !important;
	background: var(--c-wine) !important;
	color: var(--c-on-dark) !important;
	cursor: pointer !important;
	transition: background var(--t-base), color var(--t-base), border-color var(--t-base), transform var(--t-fast), box-shadow var(--t-base) !important;
	text-decoration: none !important;
	min-height: 44px !important;
	box-shadow: none !important;
}

.button:hover,
.ca-btn:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover {
	background: var(--c-wine-dark) !important;
	color: var(--c-on-dark) !important;
	transform: translateY(-1px);
	box-shadow: var(--sh-2) !important;
}

.ca-btn--ghost,
.woocommerce a.button.ca-ghost {
	background: transparent !important;
	color: var(--c-ink) !important;
	border-color: var(--c-ink) !important;
}
.ca-btn--ghost:hover {
	background: var(--c-ink) !important;
	color: var(--c-on-dark) !important;
}

.boton-proximamente,
a.button.boton-proximamente {
	background: var(--c-line) !important;
	color: var(--c-ink-mute) !important;
	cursor: not-allowed !important;
	pointer-events: none;
}


/* ============================================================
   5. FORMULARIOS
   ============================================================ */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
textarea,
select,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea {
	font-family: var(--f-sans) !important;
	font-size: var(--fs-base) !important;
	color: var(--c-ink) !important;
	background: var(--c-paper) !important;
	border: 1px solid var(--c-line) !important;
	border-radius: var(--r-s) !important;
	padding: 14px 16px !important;
	width: 100%;
	box-sizing: border-box;
	transition: border-color var(--t-base), box-shadow var(--t-base);
	min-height: 48px;
}

input:focus,
textarea:focus,
select:focus {
	outline: none !important;
	border-color: var(--c-wine) !important;
	box-shadow: 0 0 0 3px rgba(122, 46, 46, 0.12) !important;
}

label {
	font-family: var(--f-sans);
	font-size: var(--fs-s);
	font-weight: var(--w-medium);
	color: var(--c-ink);
	margin-bottom: var(--sp-2);
	display: block;
}

::placeholder { color: var(--c-ink-mute); opacity: 1; }


/* ============================================================
   6. HEADER DEL SITIO
   ============================================================ */
.organium-header,
.header_main,
header#header,
header.header {
	background: var(--c-cream) !important;
	border-bottom: 1px solid var(--c-line);
	box-shadow: none !important;
	position: sticky;
	top: 0;
	z-index: 100;
	transition: padding var(--t-base), background var(--t-base);
}

.organium_logo a,
.site-title a,
.organium_logo_text {
	font-family: var(--f-serif) !important;
	font-size: clamp(22px, 2.5vw, 30px) !important;
	font-weight: var(--w-medium) !important;
	color: var(--c-ink) !important;
	font-style: italic;
}

.organium_logo img {
	max-height: 56px;
	width: auto;
}

.organium_menu_wrapper ul.menu,
ul.organium_menu,
nav.organium_menu_holder ul,
.menu-main-menu-container ul {
	display: flex;
	gap: var(--sp-8);
	margin: 0;
	padding: 0;
	list-style: none;
	align-items: center;
}

.organium_menu_wrapper ul.menu li a,
ul.organium_menu li a,
nav.organium_menu_holder ul li a,
.menu-main-menu-container ul li a {
	font-family: var(--f-sans) !important;
	font-size: var(--fs-s) !important;
	font-weight: var(--w-medium) !important;
	color: var(--c-ink) !important;
	letter-spacing: 0.06em !important;
	text-transform: uppercase;
	padding: 8px 0 !important;
	border-bottom: 1.5px solid transparent;
	transition: color var(--t-base), border-color var(--t-base);
}

.organium_menu_wrapper ul.menu li a:hover,
.organium_menu_wrapper ul.menu li.current-menu-item a,
ul.organium_menu li a:hover,
ul.organium_menu li.current-menu-item a,
nav.organium_menu_holder ul li a:hover,
nav.organium_menu_holder ul li.current-menu-item a {
	color: var(--c-wine) !important;
	border-bottom-color: var(--c-wine);
}

.organium_top_bar_icons a,
.header-icons a,
.organium_woo_cart_icon {
	color: var(--c-ink) !important;
	transition: color var(--t-base);
}
.organium_top_bar_icons a:hover {
	color: var(--c-wine) !important;
}


/* ============================================================
   7. FOOTER DEL SITIO
   ============================================================ */
.organium_footer,
.organium_footer_main,
footer.site-footer,
footer#footer {
	background: var(--c-earth-dark) !important;
	color: var(--c-on-dark) !important;
	padding: var(--sp-20) 0 var(--sp-8) !important;
	margin-top: var(--sp-24);
}

.organium_footer .widget-title,
.organium_footer h4,
.organium_footer h5 {
	font-family: var(--f-serif) !important;
	font-size: var(--fs-l) !important;
	font-weight: var(--w-medium) !important;
	color: var(--c-honey-soft) !important;
	margin-bottom: var(--sp-4) !important;
	font-style: italic;
}

.organium_footer p,
.organium_footer li,
.organium_footer a,
.organium_footer .widget {
	color: var(--c-on-dark) !important;
	opacity: 0.85;
	font-size: var(--fs-s);
	line-height: var(--lh-relaxed);
}

.organium_footer a:hover {
	color: var(--c-honey-soft) !important;
	opacity: 1;
}

.organium_footer ul {
	list-style: none;
	padding: 0;
	margin: 0;
}
.organium_footer ul li { margin: var(--sp-2) 0; }

.organium_footer .organium_copyright,
.organium_footer .footer_copyright,
.organium_footer .copyright {
	border-top: 1px solid rgba(250, 246, 240, 0.12);
	margin-top: var(--sp-12);
	padding-top: var(--sp-6);
	font-size: var(--fs-xs);
	letter-spacing: 0.05em;
	opacity: 0.6;
	text-align: center;
}


/* ============================================================
   8. TARJETA DE PRODUCTO (.ca-card)
   ============================================================ */
ul.products,
.products.columns-3,
.products.columns-4 {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	display: grid !important;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--sp-10) var(--sp-8);
}

@media (max-width: 1024px) {
	ul.products,
	.products.columns-3,
	.products.columns-4 {
		grid-template-columns: repeat(2, 1fr);
		gap: var(--sp-8) var(--sp-5);
	}
}

@media (max-width: 480px) {
	ul.products,
	.products.columns-3 {
		grid-template-columns: repeat(2, 1fr);
		gap: var(--sp-6) var(--sp-3);
	}
}

li.product,
li.ca-card,
ul.products li.product {
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	list-style: none !important;
	padding: 0 !important;
	background: transparent !important;
	display: flex !important;
	flex-direction: column !important;
	position: relative;
}

.ca-card-media {
	display: block;
	position: relative;
	overflow: hidden;
	background: var(--c-cream-2);
	border-radius: var(--r-s);
	aspect-ratio: 1 / 1;
}

.ca-card-img-wrap {
	position: relative;
	width: 100%;
	height: 100%;
}

.ca-card-img,
li.product img,
li.ca-card img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block;
	transition: opacity var(--t-slow), transform var(--t-slow);
	margin: 0 !important;
}

.ca-card-img-hover {
	position: absolute !important;
	inset: 0;
	opacity: 0;
}

.ca-card:hover .ca-card-img-primary { opacity: 0; }
.ca-card:hover .ca-card-img-hover { opacity: 1; }
.ca-card:hover .ca-card-img-primary:only-child {
	opacity: 1;
	transform: scale(1.04);
}

.ca-card-body {
	padding: var(--sp-4) 0 0;
	display: flex;
	flex-direction: column;
	gap: var(--sp-2);
}

.ca-card-cat {
	font-family: var(--f-sans);
	font-size: 11px;
	font-weight: var(--w-semibold);
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--c-honey-dark);
}

.ca-card-title {
	font-family: var(--f-serif) !important;
	font-size: var(--fs-l) !important;
	font-weight: var(--w-medium) !important;
	line-height: var(--lh-snug) !important;
	margin: 0 !important;
	letter-spacing: -0.005em;
}

.ca-card-title a {
	color: var(--c-ink) !important;
	transition: color var(--t-base);
}

.ca-card-title a:hover { color: var(--c-wine) !important; }

.ca-card-format {
	font-size: var(--fs-s);
	color: var(--c-ink-mute);
	font-style: italic;
	margin-bottom: var(--sp-2);
}

.ca-card-meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--sp-3);
	margin-top: auto;
	padding-top: var(--sp-2);
}

.ca-card-price {
	font-family: var(--f-serif);
	font-size: var(--fs-l);
	font-weight: var(--w-semibold);
	color: var(--c-ink);
}

.ca-card-price del {
	color: var(--c-ink-mute);
	font-weight: var(--w-regular);
	font-size: var(--fs-base);
	margin-right: var(--sp-2);
	opacity: 0.7;
}

.ca-card-price ins {
	background: transparent;
	text-decoration: none;
	color: var(--c-wine);
}

.precio-pendiente {
	font-family: var(--f-sans);
	font-size: var(--fs-s);
	font-weight: var(--w-medium);
	color: var(--c-ink-mute);
	font-style: italic;
}

.ca-card-actions a.button,
.ca-card-actions .added_to_cart {
	font-size: var(--fs-xs) !important;
	padding: 10px 18px !important;
	min-height: 36px !important;
	background: transparent !important;
	color: var(--c-ink) !important;
	border: 1.5px solid var(--c-ink) !important;
}
.ca-card-actions a.button:hover {
	background: var(--c-ink) !important;
	color: var(--c-on-dark) !important;
}

.badge-producto,
.ca-badge,
.onsale {
	position: absolute !important;
	top: 12px !important;
	right: 12px !important;
	left: auto !important;
	background: var(--c-ink) !important;
	color: var(--c-on-dark) !important;
	padding: 6px 12px !important;
	border-radius: var(--r-pill) !important;
	font-family: var(--f-sans) !important;
	font-size: 10px !important;
	font-weight: var(--w-semibold) !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
	z-index: 5;
	min-height: auto !important;
	min-width: auto !important;
	line-height: 1 !important;
	margin: 0 !important;
}

.onsale { background: var(--c-wine) !important; }


/* ============================================================
   9. SINGLE PRODUCT (.ca-product-*)
   ============================================================ */
body.single-product main,
body.single-product .ca-product-single {
	padding-top: var(--sp-12);
	padding-bottom: var(--sp-16);
	background: var(--c-cream);
}

.ca-product-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--sp-16);
	max-width: var(--container-max);
	margin: 0 auto;
	padding: 0 var(--gutter);
	box-sizing: border-box;
}

@media (max-width: 1024px) {
	.ca-product-grid {
		grid-template-columns: 1fr;
		gap: var(--sp-8);
	}
}

.ca-product-gallery-col { min-width: 0; }

.ca-product-gallery-sticky {
	position: sticky;
	top: 100px;
}

@media (max-width: 1024px) {
	.ca-product-gallery-sticky { position: static; }
}

.woocommerce-product-gallery,
.ca-product-gallery-sticky .woocommerce-product-gallery {
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
}

.woocommerce-product-gallery__image img {
	border-radius: var(--r-s);
	background: var(--c-cream-2);
}

.flex-control-thumbs {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr) !important;
	gap: var(--sp-2) !important;
	padding: var(--sp-3) 0 0 !important;
	margin: 0 !important;
}

.flex-control-thumbs li {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
}

.flex-control-thumbs li img {
	border-radius: var(--r-s);
	border: 2px solid transparent;
	transition: border-color var(--t-base), opacity var(--t-base);
	opacity: 0.7;
	cursor: pointer;
}

.flex-control-thumbs li img.flex-active,
.flex-control-thumbs li img:hover {
	border-color: var(--c-wine);
	opacity: 1;
}

.ca-product-info-col { min-width: 0; }

.ca-product-summary {
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
	padding: var(--sp-4) 0 0;
}

.ca-product-eyebrow {
	font-family: var(--f-sans);
	font-size: var(--fs-xs);
	font-weight: var(--w-semibold);
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-honey-dark);
	margin: 0 0 var(--sp-3);
}

.product_title,
.ca-product-summary .product_title {
	font-family: var(--f-serif) !important;
	font-size: clamp(32px, 4vw, 52px) !important;
	font-weight: var(--w-medium) !important;
	line-height: var(--lh-tight) !important;
	margin: 0 0 var(--sp-4) !important;
	letter-spacing: -0.01em;
}

.ca-product-summary .price,
.summary .price {
	font-family: var(--f-serif) !important;
	font-size: var(--fs-2xl) !important;
	font-weight: var(--w-semibold) !important;
	color: var(--c-ink) !important;
	margin: 0 0 var(--sp-4) !important;
}

.summary .price del {
	color: var(--c-ink-mute) !important;
	font-weight: var(--w-regular) !important;
	font-size: var(--fs-l);
	margin-right: var(--sp-3);
}

.summary .price ins {
	background: transparent !important;
	text-decoration: none !important;
	color: var(--c-wine) !important;
}

.woocommerce-product-details__short-description {
	font-size: var(--fs-m);
	color: var(--c-ink-soft);
	line-height: var(--lh-relaxed);
	margin: 0 0 var(--sp-6);
	padding-bottom: var(--sp-6);
	border-bottom: 1px solid var(--c-line);
}

.cart {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: var(--sp-3) !important;
	align-items: stretch !important;
	margin: 0 0 var(--sp-6) !important;
}

.quantity {
	display: inline-flex !important;
	align-items: center;
	border: 1.5px solid var(--c-ink);
	border-radius: var(--r-pill);
	overflow: hidden;
	height: 48px;
}

.quantity .qty,
input[type="number"].qty {
	width: 56px !important;
	border: 0 !important;
	background: transparent !important;
	text-align: center;
	font-weight: var(--w-semibold);
	min-height: auto !important;
	padding: 0 !important;
	-moz-appearance: textfield;
}

.quantity .qty:focus { box-shadow: none !important; }

.cart .single_add_to_cart_button {
	flex: 1 1 auto;
	min-width: 200px;
}

.product_meta {
	font-size: var(--fs-s);
	color: var(--c-ink-mute);
	border-top: 1px solid var(--c-line);
	padding-top: var(--sp-4);
	margin-top: var(--sp-4);
}

.product_meta > span {
	display: block;
	margin-bottom: var(--sp-1);
}

.product_meta a {
	color: var(--c-ink-soft);
	border-bottom: 1px solid transparent;
}
.product_meta a:hover {
	color: var(--c-wine);
	border-bottom-color: var(--c-wine);
}

.ca-product-trust {
	list-style: none;
	margin: var(--sp-6) 0 0;
	padding: var(--sp-5) 0 0;
	border-top: 1px solid var(--c-line);
	display: flex;
	flex-direction: column;
	gap: var(--sp-3);
}

.ca-product-trust li {
	display: flex;
	align-items: center;
	gap: var(--sp-3);
	font-size: var(--fs-s);
	color: var(--c-ink-soft);
}

.ca-product-trust svg {
	color: var(--c-honey-dark);
	flex-shrink: 0;
}

.ca-product-trust small {
	font-size: 11px;
	color: var(--c-ink-mute);
	font-style: italic;
}

.ca-product-story {
	background: var(--c-cream-2);
	padding: var(--sp-20) 0;
	margin: var(--sp-16) 0 0;
}

.ca-product-story-text {
	font-family: var(--f-serif);
	font-size: var(--fs-l);
	line-height: var(--lh-relaxed);
	color: var(--c-ink-soft);
	font-style: italic;
}

.ca-product-story-text p:first-child::first-letter {
	font-size: 4em;
	float: left;
	line-height: 0.85;
	margin: 0.05em 0.1em 0 0;
	color: var(--c-wine);
	font-weight: var(--w-semibold);
}

.ca-product-accordions {
	padding: var(--sp-16) 0;
}

.ca-acc {
	border-bottom: 1px solid var(--c-line);
	margin: 0;
	padding: 0;
}

.ca-acc summary {
	cursor: pointer;
	list-style: none;
	padding: var(--sp-5) 0;
	font-family: var(--f-serif);
	font-size: var(--fs-l);
	font-weight: var(--w-medium);
	color: var(--c-ink);
	display: flex;
	justify-content: space-between;
	align-items: center;
	user-select: none;
	transition: color var(--t-base);
}

.ca-acc summary::-webkit-details-marker { display: none; }

.ca-acc summary::after {
	content: '+';
	font-family: var(--f-sans);
	font-size: 24px;
	font-weight: var(--w-regular);
	transition: transform var(--t-base);
	color: var(--c-honey-dark);
}

.ca-acc[open] summary::after { transform: rotate(45deg); }
.ca-acc summary:hover { color: var(--c-wine); }

.ca-acc-body {
	padding: 0 0 var(--sp-6);
	font-size: var(--fs-base);
	line-height: var(--lh-relaxed);
	color: var(--c-ink-soft);
}

.ca-acc-body p { margin-bottom: var(--sp-3); }

.placeholder-pendiente {
	display: inline-block;
	background: rgba(192, 136, 80, 0.12);
	color: var(--c-honey-dark);
	padding: 2px 8px;
	border-radius: var(--r-s);
	font-family: var(--f-sans);
	font-size: var(--fs-s);
	font-weight: var(--w-medium);
	font-style: normal;
}

.related.products,
.upsells.products {
	border-top: 1px solid var(--c-line);
	padding: var(--sp-16) 0 var(--sp-12);
	margin: var(--sp-16) 0 0;
}

.related.products > h2,
.upsells.products > h2 {
	font-family: var(--f-serif) !important;
	font-size: var(--fs-2xl) !important;
	font-weight: var(--w-medium) !important;
	margin: 0 0 var(--sp-8) !important;
	letter-spacing: -0.01em;
	text-align: center;
}


/* ============================================================
   10. ARCHIVE / SHOP (.ca-shop-*)
   ============================================================ */
.ca-shop-hero {
	background: var(--c-cream-2);
	padding: var(--sp-12) 0 var(--sp-10);
	border-bottom: 1px solid var(--c-line);
}

.ca-shop-hero-title {
	font-family: var(--f-serif);
	font-size: clamp(40px, 6vw, 72px);
	font-weight: var(--w-medium);
	line-height: var(--lh-tight);
	margin: var(--sp-3) 0 var(--sp-4);
	color: var(--c-ink);
	letter-spacing: -0.015em;
}

.ca-shop-hero-desc {
	font-size: var(--fs-m);
	color: var(--c-ink-soft);
	max-width: 60ch;
	line-height: var(--lh-relaxed);
}

.ca-shop-wrap { padding: var(--sp-12) 0; }

.ca-shop-grid {
	display: grid;
	grid-template-columns: 260px 1fr;
	gap: var(--sp-12);
}

@media (max-width: 1024px) {
	.ca-shop-grid { grid-template-columns: 1fr; }
}

.ca-shop-sidebar {
	position: sticky;
	top: 100px;
	height: fit-content;
}

.ca-sidebar-title {
	font-family: var(--f-sans);
	font-size: var(--fs-xs);
	font-weight: var(--w-semibold);
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--c-ink-mute);
	margin: 0 0 var(--sp-4);
}

.ca-shop-sidebar .widget {
	margin-bottom: var(--sp-8);
	padding: 0;
	background: transparent;
	border: 0;
}

.ca-shop-sidebar .widget-title {
	font-family: var(--f-serif);
	font-size: var(--fs-l);
	font-weight: var(--w-medium);
	color: var(--c-ink);
	margin: 0 0 var(--sp-3);
	padding: 0 0 var(--sp-2);
	border-bottom: 1px solid var(--c-line);
}

.ca-shop-sidebar ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ca-shop-sidebar li { margin: var(--sp-2) 0; }

.ca-shop-sidebar li a {
	font-size: var(--fs-s);
	color: var(--c-ink-soft);
	transition: color var(--t-base);
}

.ca-shop-sidebar li a:hover,
.ca-shop-sidebar li.current-cat a {
	color: var(--c-wine);
}

.cat-count { color: var(--c-ink-mute); font-size: var(--fs-xs); }

.ca-shop-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--sp-4);
	margin-bottom: var(--sp-8);
	padding-bottom: var(--sp-4);
	border-bottom: 1px solid var(--c-line);
}

.ca-filters-toggle { display: none; }

@media (max-width: 1024px) {
	.ca-filters-toggle {
		display: inline-flex;
		align-items: center;
		gap: 6px;
		font-family: var(--f-sans);
		font-size: var(--fs-s);
		font-weight: var(--w-semibold);
		text-transform: uppercase;
		letter-spacing: 0.06em;
		padding: 10px 18px;
		background: transparent;
		color: var(--c-ink);
		border: 1.5px solid var(--c-ink);
		border-radius: var(--r-pill);
		cursor: pointer;
	}
	.ca-shop-sidebar {
		position: fixed;
		top: 0;
		left: -100%;
		bottom: 0;
		width: min(85%, 320px);
		background: var(--c-cream);
		padding: var(--sp-8) var(--sp-5);
		overflow-y: auto;
		z-index: 200;
		transition: left var(--t-slow);
		box-shadow: var(--sh-3);
	}
	.ca-shop-sidebar.is-open { left: 0; }
	.ca-filters-close {
		position: absolute;
		top: 12px;
		right: 16px;
		background: transparent;
		border: 0;
		font-size: 32px;
		color: var(--c-ink);
		cursor: pointer;
	}
}

@media (min-width: 1025px) {
	.ca-filters-close { display: none; }
}

.woocommerce-result-count {
	font-size: var(--fs-s);
	color: var(--c-ink-mute);
	margin: 0;
}

.woocommerce-ordering select {
	background: transparent !important;
	border: 0 !important;
	border-bottom: 1px solid var(--c-line) !important;
	border-radius: 0 !important;
	padding: 4px 24px 4px 0 !important;
	font-size: var(--fs-s) !important;
	min-height: auto !important;
	cursor: pointer;
}

.woocommerce-pagination {
	margin-top: var(--sp-12) !important;
	padding-top: var(--sp-8) !important;
	border-top: 1px solid var(--c-line);
	text-align: center;
}

.woocommerce-pagination ul.page-numbers {
	display: inline-flex !important;
	gap: var(--sp-2) !important;
	border: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
}

.woocommerce-pagination ul.page-numbers li {
	border: 0 !important;
	margin: 0 !important;
}

.page-numbers {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 12px !important;
	border-radius: var(--r-pill) !important;
	font-family: var(--f-sans) !important;
	font-size: var(--fs-s) !important;
	font-weight: var(--w-medium) !important;
	color: var(--c-ink) !important;
	background: transparent !important;
	border: 1.5px solid transparent !important;
	transition: background var(--t-base), color var(--t-base), border-color var(--t-base);
}

.page-numbers:hover,
.page-numbers.current {
	background: var(--c-ink) !important;
	color: var(--c-on-dark) !important;
}


/* ============================================================
   11. CART, CHECKOUT
   ============================================================ */
.woocommerce-cart .cart_totals h2,
.woocommerce-checkout #order_review_heading {
	font-family: var(--f-serif) !important;
	font-size: var(--fs-2xl) !important;
	font-weight: var(--w-medium) !important;
	margin-bottom: var(--sp-6) !important;
}

.woocommerce table.shop_table {
	border: 0 !important;
	border-collapse: collapse;
	width: 100%;
}

.woocommerce table.shop_table th {
	font-family: var(--f-sans);
	font-size: var(--fs-xs);
	font-weight: var(--w-semibold);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--c-ink-mute);
	background: transparent !important;
	border-bottom: 1px solid var(--c-line);
	padding: 12px !important;
}

.woocommerce table.shop_table td {
	background: transparent !important;
	border-bottom: 1px solid var(--c-line);
	padding: 16px 12px !important;
}

.product-thumbnail img {
	max-width: 80px;
	border-radius: var(--r-s);
}

.cart_totals {
	background: var(--c-cream-2);
	padding: var(--sp-6);
	border-radius: var(--r-m);
}

.woocommerce-info,
.woocommerce-message {
	background: rgba(192, 136, 80, 0.10) !important;
	border-top-color: var(--c-honey) !important;
	border-left: 3px solid var(--c-honey) !important;
	border-radius: 0 var(--r-s) var(--r-s) 0 !important;
	padding: var(--sp-4) var(--sp-5) !important;
	color: var(--c-ink) !important;
}

.woocommerce-info::before,
.woocommerce-message::before {
	color: var(--c-honey) !important;
}

.woocommerce-error {
	background: rgba(139, 58, 58, 0.10) !important;
	border-left-color: var(--c-error) !important;
	color: var(--c-ink) !important;
}

.woocommerce-checkout form.checkout {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--sp-12);
}

@media (max-width: 1024px) {
	.woocommerce-checkout form.checkout {
		grid-template-columns: 1fr;
	}
}

.woocommerce-checkout #order_review_heading,
.woocommerce-checkout #order_review {
	grid-column: 2;
	position: sticky;
	top: 100px;
	height: fit-content;
	background: var(--c-cream-2);
	padding: var(--sp-6);
	border-radius: var(--r-m);
}

@media (max-width: 1024px) {
	.woocommerce-checkout #order_review_heading,
	.woocommerce-checkout #order_review {
		grid-column: 1;
		position: static;
	}
}

.woocommerce-checkout .col2-set { grid-column: 1; }

.woocommerce form .form-row { margin-bottom: var(--sp-4) !important; }

.woocommerce form .form-row label { color: var(--c-ink) !important; }


/* ============================================================
   12. HOME — bloques específicos (.ca-home-*)
   ============================================================ */

.ca-home-hero {
	position: relative;
	min-height: clamp(480px, 80vh, 720px);
	background: linear-gradient(135deg, var(--c-earth-dark) 0%, var(--c-earth) 100%);
	color: var(--c-on-dark);
	display: flex;
	align-items: center;
	overflow: hidden;
}

.ca-home-hero-bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	opacity: 0.55;
	z-index: 1;
}

.ca-home-hero-content {
	position: relative;
	z-index: 2;
	max-width: 720px;
	padding: var(--sp-16) var(--gutter);
	margin: 0 auto;
	text-align: center;
}

.ca-home-hero-eyebrow {
	font-family: var(--f-sans);
	font-size: var(--fs-xs);
	font-weight: var(--w-semibold);
	letter-spacing: 0.2em;
	text-transform: uppercase;
	margin-bottom: var(--sp-4);
	opacity: 0.85;
}

.ca-home-hero-title {
	font-family: var(--f-serif);
	font-size: clamp(44px, 7vw, 88px);
	font-weight: var(--w-medium);
	line-height: 1.05;
	letter-spacing: -0.02em;
	margin: 0 0 var(--sp-5);
	color: var(--c-on-dark);
}

.ca-home-hero-lede {
	font-family: var(--f-serif);
	font-size: clamp(18px, 2.2vw, 24px);
	font-weight: var(--w-regular);
	font-style: italic;
	line-height: var(--lh-snug);
	color: var(--c-honey-soft);
	margin: 0 auto var(--sp-8);
	max-width: 38ch;
}

.ca-home-hero-actions {
	display: inline-flex;
	gap: var(--sp-4);
	flex-wrap: wrap;
	justify-content: center;
}

.ca-home-hero-actions .ca-btn--ghost {
	color: var(--c-on-dark) !important;
	border-color: var(--c-on-dark) !important;
}
.ca-home-hero-actions .ca-btn--ghost:hover {
	background: var(--c-on-dark) !important;
	color: var(--c-ink) !important;
}

.ca-home-cats { padding: var(--sp-20) 0; }

.ca-home-cats-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--sp-6);
}

@media (max-width: 768px) {
	.ca-home-cats-grid {
		grid-template-columns: 1fr;
		gap: var(--sp-4);
	}
}

.ca-home-cat-card {
	position: relative;
	display: block;
	aspect-ratio: 4 / 5;
	background: var(--c-cream-2);
	overflow: hidden;
	border-radius: var(--r-s);
	color: var(--c-on-dark);
}

.ca-home-cat-card img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--t-slow);
}

.ca-home-cat-card:hover img { transform: scale(1.05); }

.ca-home-cat-card::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 30%, rgba(42, 29, 20, 0.7) 100%);
}

.ca-home-cat-label {
	position: absolute;
	bottom: var(--sp-6);
	left: var(--sp-6);
	right: var(--sp-6);
	z-index: 2;
	color: var(--c-on-dark);
}

.ca-home-cat-name {
	font-family: var(--f-serif);
	font-size: clamp(24px, 3vw, 32px);
	font-weight: var(--w-medium);
	line-height: 1.1;
	margin: 0 0 var(--sp-2);
}

.ca-home-cat-arrow {
	font-size: var(--fs-s);
	font-weight: var(--w-semibold);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	transition: gap var(--t-base);
}

.ca-home-cat-card:hover .ca-home-cat-arrow { gap: 12px; }

.ca-home-story {
	padding: var(--sp-24) 0;
	background: var(--c-cream-2);
}

.ca-home-story-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--sp-12);
	align-items: center;
}

@media (max-width: 1024px) {
	.ca-home-story-grid { grid-template-columns: 1fr; }
}

.ca-home-story-img {
	aspect-ratio: 4 / 5;
	overflow: hidden;
	border-radius: var(--r-s);
	background: var(--c-line);
}

.ca-home-story-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ca-home-story-text h2 { margin-bottom: var(--sp-6); }

.ca-home-story-text p {
	font-size: var(--fs-m);
	color: var(--c-ink-soft);
	line-height: var(--lh-relaxed);
	margin-bottom: var(--sp-4);
}

.ca-home-story-text p:first-of-type::first-letter {
	font-family: var(--f-serif);
	font-size: 4em;
	float: left;
	line-height: 0.85;
	margin: 0.05em 0.1em 0 0;
	color: var(--c-wine);
	font-weight: var(--w-semibold);
}

.ca-home-values {
	padding: var(--sp-20) 0;
	border-top: 1px solid var(--c-line);
	border-bottom: 1px solid var(--c-line);
}

.ca-home-values-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--sp-12);
}

@media (max-width: 768px) {
	.ca-home-values-grid {
		grid-template-columns: 1fr;
		gap: var(--sp-8);
	}
}

.ca-home-value { text-align: center; }

.ca-home-value-icon {
	width: 48px;
	height: 48px;
	margin: 0 auto var(--sp-4);
	color: var(--c-honey);
}

.ca-home-value-title {
	font-family: var(--f-serif);
	font-size: var(--fs-xl);
	font-weight: var(--w-medium);
	margin: 0 0 var(--sp-3);
}

.ca-home-value-text {
	font-size: var(--fs-base);
	color: var(--c-ink-soft);
	line-height: var(--lh-relaxed);
	max-width: 32ch;
	margin: 0 auto;
}


/* ============================================================
   13. ELEMENTOR OVERRIDES
   ============================================================ */
.elementor-widget-heading h1,
.elementor-widget-heading h2,
.elementor-widget-heading h3,
.elementor-widget-heading h4,
.elementor-widget-heading h5,
.elementor-widget-heading h6,
.elementor-heading-title {
	font-family: var(--f-serif) !important;
	font-weight: var(--w-medium) !important;
	letter-spacing: -0.005em !important;
}

.elementor-widget-text-editor,
.elementor-widget-text-editor p {
	font-family: var(--f-sans) !important;
	color: var(--c-ink-soft) !important;
	line-height: var(--lh-relaxed) !important;
}

.elementor-widget-button .elementor-button {
	background: var(--c-wine) !important;
	color: var(--c-on-dark) !important;
}


/* ============================================================
   14. BREADCRUMBS (Yoast)
   ============================================================ */
.breadcrumbs,
.yoast-breadcrumb,
nav.breadcrumbs {
	font-family: var(--f-sans);
	font-size: var(--fs-xs);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--c-ink-mute);
	margin: 0 0 var(--sp-6);
}

.breadcrumbs a {
	color: var(--c-ink-mute);
	border-bottom: 1px solid transparent;
}
.breadcrumbs a:hover {
	color: var(--c-wine);
	border-bottom-color: var(--c-wine);
}


/* ============================================================
   15. ACCESIBILIDAD
   ============================================================ */
*:focus-visible {
	outline: 2px solid var(--c-wine);
	outline-offset: 2px;
	border-radius: var(--r-s);
}

button:focus-visible,
a:focus-visible {
	box-shadow: 0 0 0 3px rgba(122, 46, 46, 0.25);
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}


/* ============================================================
   16. COOKIE BANNER (Complianz)
   ============================================================ */
.cmplz-cookiebanner {
	font-family: var(--f-sans) !important;
	border-radius: var(--r-m) !important;
	border: 1px solid var(--c-line) !important;
	box-shadow: var(--sh-3) !important;
}

.cmplz-cookiebanner .cmplz-title {
	font-family: var(--f-serif) !important;
	font-weight: var(--w-medium) !important;
	color: var(--c-ink) !important;
}

.cmplz-cookiebanner .cmplz-buttons .cmplz-btn {
	border-radius: var(--r-pill) !important;
	font-weight: var(--w-semibold) !important;
	letter-spacing: 0.04em !important;
}


/* ============================================================
   17. LIMPIEZA DEL TEMA PADRE
   ============================================================ */
body.single-product .page_title_holder,
body.single-product .organium_page_title {
	display: none !important;
}

.sidebar .widget {
	background: transparent !important;
	box-shadow: none !important;
	border: 1px solid var(--c-line);
	border-radius: var(--r-m);
	padding: var(--sp-5);
}

body .organium_section_subtitle,
body h1, body h2, body h3, body h4 {
	letter-spacing: -0.005em !important;
	text-transform: none !important;
}

.ca-eyebrow,
.ca-card-cat,
.ca-product-eyebrow,
.ca-sidebar-title,
nav.breadcrumbs {
	letter-spacing: 0.18em !important;
	text-transform: uppercase !important;
}


/* ============================================================
   18. RESPONSIVE FINETUNING
   ============================================================ */
@media (max-width: 768px) {
	:root {
		--sp-20: 56px;
		--sp-24: 72px;
		--sp-32: 96px;
	}

	.ca-product-trust {
		padding-top: var(--sp-4);
		gap: var(--sp-2);
	}

	.cart { flex-direction: column; }
	.cart .single_add_to_cart_button { width: 100%; }
	.quantity { width: 100%; }
	.quantity .qty { width: 100% !important; }
}

@media (max-width: 480px) {
	.button,
	.ca-btn {
		font-size: var(--fs-xs) !important;
		padding: 12px 20px !important;
	}
}


/* ============================================================
   19. UTILIDADES
   ============================================================ */
.ca-text-center  { text-align: center; }
.ca-text-left    { text-align: left; }
.ca-text-right   { text-align: right; }
.ca-mt-0  { margin-top: 0 !important; }
.ca-mb-0  { margin-bottom: 0 !important; }
.ca-italic { font-style: italic; }
.ca-serif  { font-family: var(--f-serif) !important; }
.ca-sans   { font-family: var(--f-sans) !important; }
.ca-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0,0,0,0);
	white-space: nowrap;
	border: 0;
}


/* FIN — v2.0.0 — Casa Alonso */
