/*
Theme Name: Giovanni Home
Theme URI: https://giovannihome.online/
Author: Giovanni Home
Description: Theme a medida para Giovanni Home — bazar y deco de Ituzaingó. Paleta lino, natural, nuez, terracota y salvia; Cormorant Garamond + Montserrat. Compatible con WooCommerce.
Version: 2.2.0
Requires at least: 6.5
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: giovanni-home
WC requires at least: 9.0
*/

/* ==========================================================================
   Tokens
   ========================================================================== */
:root {
	--lino: #F4EEE6;
	--natural: #E3D5C3;
	--nuez: #5C4332;
	--terra: #A65A3D;
	--salvia: #7F9171;
	--carbon: #2B2622;
	--line: rgba(92, 67, 50, .2);
	--line-soft: rgba(92, 67, 50, .14);
	--line-strong: rgba(92, 67, 50, .35);
	--serif: 'Cormorant Garamond', Georgia, serif;
	--sans: Montserrat, system-ui, -apple-system, 'Segoe UI', sans-serif;
	--pad: 48px;
	--max: 1360px;
	--header-h: 64px;
	--ease: cubic-bezier(.2, .7, .2, 1);
	--hatch: repeating-linear-gradient(135deg, rgba(92, 67, 50, .08) 0 1px, transparent 1px 12px);
}

@media (max-width: 859px) {
	:root { --pad: 20px; }
}
@media (max-width: 1079px) {
	:root { --header-h: 60px; }
}

/* ==========================================================================
   Base
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--header-h) + 16px); }
html.gh-lock { overflow: hidden; }

body {
	margin: 0;
	background: var(--lino);
	color: var(--carbon);
	font-family: var(--sans);
	font-size: 14px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}

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

a { color: var(--nuez); text-decoration: none; transition: color .25s ease; }
a:hover { color: var(--terra); }

button, input, select, textarea { font-family: inherit; color: inherit; font-size: inherit; }
button { cursor: pointer; }

::selection { background: var(--natural); }

:focus-visible { outline: 2px solid var(--terra); outline-offset: 3px; }

h1, h2, h3, h4, h5, h6 { font-family: var(--serif); font-weight: 400; color: var(--nuez); line-height: 1.1; }
em { font-style: italic; }

.screen-reader-text,
.gh-visually-hidden {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.gh-skip {
	position: absolute; left: 12px; top: -60px; z-index: 100;
	background: var(--nuez); color: var(--lino);
	padding: 10px 16px; border-radius: 999px; font-size: 12px;
}
.gh-skip:focus { top: 12px; color: var(--lino); }

[hidden] { display: none !important; }

.gh-icon { width: 1em; height: 1em; flex: none; }
.gh-icon--leaf { width: 11px; height: 11px; }

/* ==========================================================================
   Layout y tipografía
   ========================================================================== */
.gh-wrap {
	width: 100%;
	max-width: var(--max);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--pad);
	padding-right: var(--pad);
}

.gh-main { display: block; min-height: 40vh; }
.gh-main.gh-wrap { padding-top: 48px; }
@media (max-width: 859px) {
	.gh-main.gh-wrap { padding-top: 24px; }
}

.gh-h1 {
	margin: 0;
	font-family: var(--serif);
	font-weight: 400;
	font-size: 104px;
	line-height: .96;
	letter-spacing: -.01em;
	color: var(--nuez);
	text-wrap: balance;
}
.gh-h1 em.is-sale { color: var(--terra); }
.gh-h1--page { font-size: 80px; }
.gh-h1--cart { font-size: 88px; }

.gh-h2 {
	margin: 0;
	font-family: var(--serif);
	font-weight: 400;
	font-size: 56px;
	line-height: 1.02;
	color: var(--nuez);
	text-wrap: balance;
}
.gh-h2--sm { font-size: 48px; }

@media (max-width: 1199px) {
	.gh-h1 { font-size: 76px; }
	.gh-h1--page, .gh-h1--cart { font-size: 68px; }
}
@media (max-width: 859px) {
	.gh-h1 { font-size: 50px; }
	.gh-h1--page { font-size: 44px; }
	.gh-h1--cart { font-size: 52px; }
	.gh-h2 { font-size: 36px; }
	.gh-h2--sm { font-size: 34px; }
}

.gh-kicker {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 10.5px;
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--nuez);
	line-height: 1.4;
}
.gh-kicker > span:last-child { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gh-kicker__num { font-weight: 600; color: var(--salvia); }
.gh-kicker__line { width: 28px; height: 1px; background: rgba(92, 67, 50, .4); flex: none; }
.gh-kicker--light, .gh-kicker--light .gh-kicker__num { color: var(--lino); }
.gh-kicker--light .gh-kicker__line { background: rgba(244, 238, 230, .6); }
.gh-kicker--sale, .gh-kicker--sale .gh-kicker__num { color: var(--terra); }
.gh-kicker--sale .gh-kicker__line { background: var(--terra); }

.gh-small-caps {
	font-size: 10.5px;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--nuez);
}

.gh-link {
	display: inline-block;
	background: none;
	border: 0;
	padding: 0;
	font-size: 13px;
	font-weight: 500;
	color: var(--nuez);
	text-decoration: underline;
	text-decoration-color: rgba(92, 67, 50, .35);
	text-underline-offset: 6px;
	transition: text-decoration-color .3s ease, color .3s ease;
	white-space: nowrap;
}
.gh-link:hover { color: var(--nuez); text-decoration-color: var(--nuez); }

.gh-stack { display: flex; flex-direction: column; gap: 20px; }
.gh-stack p { margin: 0; font-size: 14.5px; line-height: 1.8; }

/* ==========================================================================
   Botones
   ========================================================================== */
.gh-btn,
.woocommerce .button,
.woocommerce button.button,
.woocommerce input.button,
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 48px;
	padding: 0 26px;
	border: 1px solid transparent;
	border-radius: 999px;
	font-family: var(--sans);
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: .16em;
	line-height: 1.2;
	text-transform: uppercase;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background .3s ease, color .3s ease, border-color .3s ease;
	background: var(--terra);
	color: var(--lino);
}
.gh-btn:hover,
.woocommerce .button:hover,
.woocommerce button.button:hover,
.wp-block-button__link:hover { background: var(--nuez); color: var(--lino); }

.gh-btn--primary { background: var(--terra); color: var(--lino); }
.gh-btn--outline { background: transparent; color: var(--nuez); border-color: var(--nuez); }
.gh-btn--outline:hover { background: var(--natural); color: var(--nuez); }
.gh-btn--ghost-light { background: transparent; color: var(--lino); border-color: var(--lino); }
.gh-btn--ghost-light:hover { background: var(--lino); color: var(--nuez); }
.gh-btn--light { background: var(--lino); color: var(--terra); }
.gh-btn--light:hover { background: var(--natural); color: var(--terra); }
.gh-btn--block { display: flex; width: 100%; }
.gh-btn--sm { min-height: 40px; padding: 0 16px; font-size: 10.5px; letter-spacing: .14em; }
.gh-btn.is-loading, .gh-card__add.is-loading, .single_add_to_cart_button.is-loading { opacity: .6; pointer-events: none; }

.gh-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 8px; }

/* ==========================================================================
   Placeholders e imágenes
   ========================================================================== */
.gh-ph {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: flex-end;
	padding: 14px;
	background-color: var(--natural);
	background-image: var(--hatch);
}
.gh-ph span {
	font-size: 9px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--nuez);
	opacity: .75;
}
.gh-ph--alt {
	background-color: color-mix(in oklab, var(--natural) 78%, var(--salvia));
	background-image: repeating-linear-gradient(45deg, rgba(92, 67, 50, .08) 0 1px, transparent 1px 12px);
}

.gh-frame {
	position: relative;
	overflow: hidden;
	border-radius: 10px;
	background: var(--natural);
}
.gh-frame > img,
.gh-frame > a > img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ==========================================================================
   Barra de anuncio
   ========================================================================== */
.gh-strip {
	background: var(--natural);
	color: var(--nuez);
	font-size: 10.5px;
	letter-spacing: .18em;
	text-transform: uppercase;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 10px;
	padding: 9px 16px;
	text-align: center;
}
.gh-strip .gh-icon--leaf { width: 10px; height: 10px; }
.gh-strip__short { display: none; }
@media (max-width: 859px) {
	.gh-strip__long { display: none; }
	.gh-strip__short { display: inline; }
}

/* ==========================================================================
   Header
   ========================================================================== */
.gh-header {
	position: sticky;
	top: 0;
	z-index: 30;
	background: var(--lino);
	border-bottom: 1px solid rgba(92, 67, 50, .16);
}
.admin-bar .gh-header { top: 32px; }
@media (max-width: 782px) {
	.admin-bar .gh-header { top: 46px; }
}
@media (max-width: 600px) {
	.admin-bar .gh-header { top: 0; }
}

.gh-header__inner {
	max-width: var(--max);
	margin: 0 auto;
	padding: 16px 40px;
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 32px;
}

.gh-burger { display: none; }

.gh-brand {
	justify-self: start;
	display: flex;
	align-items: center;
	gap: 12px;
	color: var(--nuez);
}
.gh-brand:hover { color: var(--nuez); }
.gh-logo-mark { width: 34px; height: 31px; flex: none; }
.gh-brand__img { max-height: 48px; width: auto; }
.gh-brand__text { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; }
.gh-brand__name { font-family: var(--serif); font-size: 22px; letter-spacing: .3em; line-height: 1; color: var(--nuez); }
.gh-brand__tag { font-size: 8.5px; letter-spacing: .32em; text-transform: uppercase; white-space: nowrap; color: var(--nuez); }

.gh-nav { display: flex; gap: 34px; align-items: center; }
.gh-nav > a, .gh-nav__drop { position: relative; padding: 8px 0; }
.gh-nav__link {
	display: inline-block;
	background: none;
	border: 0;
	border-bottom: 1px solid transparent;
	padding: 0 0 4px;
	font-size: 12.5px;
	letter-spacing: .06em;
	color: var(--nuez);
	transition: border-color .3s ease;
}
.gh-nav__link:hover, .gh-nav__link.is-active,
.gh-nav__drop.is-open .gh-nav__link { color: var(--nuez); border-bottom-color: var(--nuez); }

.gh-dropdown {
	display: none;
	position: absolute;
	top: 100%;
	left: -28px;
	padding-top: 14px;
	z-index: 40;
}
.gh-nav__drop.is-open .gh-dropdown { display: block; }
.gh-dropdown__panel {
	background: var(--lino);
	border: 1px solid rgba(92, 67, 50, .18);
	border-radius: 10px;
	padding: 22px 26px;
	display: grid;
	grid-template-columns: repeat(2, minmax(170px, 1fr));
	gap: 4px 28px;
	width: 440px;
	box-shadow: 0 18px 40px -24px rgba(43, 38, 34, .35);
}
.gh-dropdown__item {
	display: flex;
	align-items: baseline;
	gap: 10px;
	padding: 9px 0;
	border-bottom: 1px solid rgba(92, 67, 50, .12);
}
.gh-dropdown__num { font-size: 10px; letter-spacing: .14em; color: var(--salvia); font-weight: 600; }
.gh-dropdown__name { font-family: var(--serif); font-size: 21px; color: var(--nuez); transition: color .25s; }
.gh-dropdown__item:hover .gh-dropdown__name { color: var(--terra); }

.gh-header__tools { justify-self: end; display: flex; align-items: center; gap: 22px; }

.gh-search {
	display: flex;
	align-items: center;
	gap: 8px;
	border: 1px solid rgba(92, 67, 50, .28);
	border-radius: 999px;
	padding: 8px 14px;
	width: 220px;
	color: var(--nuez);
	transition: border-color .3s;
}
.gh-search:focus-within { border-color: var(--nuez); }
.gh-search .gh-icon { width: 14px; height: 14px; }
.gh-search input {
	border: 0;
	background: transparent;
	outline: none;
	font-size: 12.5px;
	width: 100%;
	color: var(--carbon);
	padding: 0;
	-webkit-appearance: none;
	appearance: none;
}
.gh-search input::-webkit-search-cancel-button { -webkit-appearance: none; }
.gh-search input::placeholder { color: rgba(92, 67, 50, .7); }

/* Búsqueda en vivo */
.gh-search { position: relative; }
.gh-live {
	position: absolute;
	top: calc(100% + 8px);
	right: 0;
	width: 340px;
	max-width: calc(100vw - 32px);
	background: var(--lino);
	border: 1px solid var(--line);
	border-radius: 12px;
	box-shadow: 0 18px 40px rgba(43, 38, 34, .14);
	padding: 6px;
	z-index: 60;
	list-style: none;
	margin: 0;
}
.gh-search--menu .gh-live { left: 0; right: 0; width: auto; }
.gh-live li { margin: 0; }
.gh-live a { display: flex; align-items: center; gap: 12px; padding: 8px; border-radius: 8px; color: var(--carbon); text-decoration: none; }
.gh-live a:hover, .gh-live a.is-active { background: var(--natural); }
.gh-live img { width: 48px; height: 48px; object-fit: cover; border-radius: 6px; flex: none; background: var(--natural); }
.gh-live__name { font-size: 13px; line-height: 1.3; }
.gh-live__price { display: block; font-size: 12px; color: var(--nuez); margin-top: 2px; }
.gh-live__price del { opacity: .6; margin-right: 4px; }
.gh-live__price ins { text-decoration: none; }
.gh-live__all a { justify-content: center; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--nuez); border-top: 1px solid var(--line); border-radius: 0 0 8px 8px; margin-top: 4px; }
.gh-live__empty { padding: 12px; font-size: 13px; color: var(--nuez); }

.gh-cart-link {
	display: flex;
	align-items: center;
	gap: 8px;
	color: var(--nuez);
	font-size: 12.5px;
	letter-spacing: .06em;
	position: relative;
}
.gh-cart-link:hover { color: var(--nuez); }
.gh-cart-link .gh-icon { width: 18px; height: 18px; }
.gh-cart-count {
	min-width: 20px;
	height: 20px;
	border-radius: 999px;
	background: var(--terra);
	color: var(--lino);
	font-size: 10.5px;
	font-weight: 600;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 6px;
	line-height: 1;
}

@media (max-width: 1079px) {
	.gh-header__inner {
		grid-template-columns: 44px 1fr 44px;
		padding: 8px 12px;
		gap: 0;
	}
	.gh-burger {
		display: flex;
		flex-direction: column;
		justify-content: center;
		gap: 6px;
		width: 44px;
		height: 44px;
		background: none;
		border: 0;
		padding: 0 10px;
	}
	.gh-burger span { display: block; height: 1.4px; background: var(--nuez); width: 22px; }
	.gh-burger span + span { width: 15px; }
	.gh-nav, .gh-header__tools .gh-search, .gh-cart-link__label, .gh-brand__tag { display: none; }
	.gh-brand { justify-self: center; gap: 9px; }
	.gh-logo-mark { width: 26px; height: 24px; }
	.gh-brand__name { font-size: 19px; letter-spacing: .28em; }
	.gh-brand__img { max-height: 40px; }
	.gh-header__tools { gap: 0; }
	.gh-cart-link { width: 44px; height: 44px; justify-content: center; }
	.gh-cart-link .gh-icon { width: 20px; height: 20px; }
	.gh-cart-link .gh-cart-count {
		position: absolute;
		top: 6px;
		right: 4px;
		min-width: 17px;
		height: 17px;
		font-size: 9.5px;
		padding: 0 4px;
	}
}

/* Menú mobile */
.gh-menu {
	position: fixed;
	inset: 0;
	z-index: 60;
	background: var(--lino);
	display: flex;
	flex-direction: column;
	padding: 12px 20px 28px;
	overflow: auto;
}
.admin-bar .gh-menu { top: 46px; }
.gh-menu__top { display: flex; justify-content: space-between; align-items: center; height: 44px; }
.gh-menu__label { font-size: 10px; letter-spacing: .24em; text-transform: uppercase; color: var(--nuez); }
.gh-menu__label--cats { margin: 28px 0 12px; }
.gh-menu__close {
	background: none;
	border: 0;
	height: 44px;
	font-size: 12px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--nuez);
}
.gh-search--menu { width: auto; padding: 12px 16px; gap: 10px; margin: 14px 0 26px; }
.gh-search--menu .gh-icon { width: 15px; height: 15px; }
.gh-search--menu input { font-size: 15px; }
.gh-menu__nav { display: flex; flex-direction: column; }
.gh-menu__nav a {
	display: flex;
	align-items: baseline;
	gap: 14px;
	border-bottom: 1px solid var(--line-soft);
	padding: 14px 0;
}
.gh-menu__num { font-size: 10px; letter-spacing: .14em; color: var(--salvia); font-weight: 600; width: 18px; }
.gh-menu__name { font-family: var(--serif); font-size: 32px; color: var(--nuez); line-height: 1; }
.gh-menu__cats { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.gh-menu__cats a {
	background: var(--natural);
	border-radius: 8px;
	padding: 14px;
	font-size: 13.5px;
	color: var(--nuez);
	min-height: 48px;
	display: flex;
	align-items: center;
}
.gh-menu .gh-btn { margin-top: 28px; min-height: 52px; font-size: 12px; letter-spacing: .14em; }

/* ==========================================================================
   Footer, WhatsApp flotante y toast
   ========================================================================== */
.gh-footer { background: var(--nuez); color: var(--lino); margin-top: 120px; }
.gh-footer a { color: var(--lino); }
.gh-footer__inner { padding-top: 72px; padding-bottom: 28px; display: flex; flex-direction: column; gap: 56px; }
.gh-footer__head {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-end;
	gap: 28px;
	border-bottom: 1px solid rgba(244, 238, 230, .22);
	padding-bottom: 48px;
}
.gh-footer__title { font-family: var(--serif); font-size: 56px; line-height: 1.02; max-width: 720px; text-wrap: balance; }
.gh-footer__cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 40px 32px; }
.gh-footer__col { display: flex; flex-direction: column; gap: 14px; font-size: 13.5px; }
.gh-footer__text { line-height: 1.6; }
.gh-footer__label { font-size: 10px; letter-spacing: .24em; text-transform: uppercase; opacity: .75; }
.gh-footer__links { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.gh-footer__links a,
.gh-footer__text a {
	width: fit-content;
	text-decoration: underline;
	text-decoration-color: transparent;
	text-underline-offset: 4px;
	transition: text-decoration-color .3s;
}
.gh-footer__links a:hover,
.gh-footer__text a:hover { color: var(--lino); text-decoration-color: var(--lino); }
.gh-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 14px;
	font-size: 11px;
	letter-spacing: .06em;
	border-top: 1px solid rgba(244, 238, 230, .22);
	padding-top: 22px;
	opacity: .85;
}
.gh-footer__bottom span:first-child { display: flex; align-items: center; gap: 8px; }
.gh-footer__bottom .gh-icon--leaf { width: 10px; height: 10px; }
@media (max-width: 859px) {
	.gh-footer { margin-top: 88px; }
	.gh-footer__inner { padding-top: 56px; padding-bottom: 96px; gap: 44px; }
	.gh-footer__title { font-size: 36px; }
	.gh-footer__head { padding-bottom: 36px; }
}

.gh-wa-float {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 50;
	display: flex;
	align-items: center;
	gap: 10px;
	background: var(--nuez);
	color: var(--lino);
	border-radius: 999px;
	padding: 13px 20px;
	font-size: 11px;
	letter-spacing: .16em;
	text-transform: uppercase;
	font-weight: 600;
	transition: background .3s ease;
	box-shadow: 0 10px 30px -14px rgba(43, 38, 34, .5);
}
.gh-wa-float:hover { background: var(--terra); color: var(--lino); }
.gh-wa-float__short { display: none; }
@media (max-width: 859px) {
	.gh-wa-float { right: 14px; bottom: 14px; padding: 12px 16px; }
	.gh-wa-float__long { display: none; }
	.gh-wa-float__short { display: inline; }
}

.gh-toast {
	position: fixed;
	left: 20px;
	bottom: 20px;
	z-index: 70;
	background: var(--carbon);
	color: var(--lino);
	border-radius: 10px;
	padding: 14px 18px;
	display: flex;
	align-items: center;
	gap: 18px;
	font-size: 13px;
	max-width: 420px;
	opacity: 0;
	transform: translateY(12px);
	transition: opacity .3s ease, transform .3s ease;
}
.gh-toast.is-visible { opacity: 1; transform: none; }
.gh-toast .gh-icon--leaf { width: 12px; height: 12px; }
.gh-toast__text { flex: 1; }
.gh-toast strong { font-weight: 600; }
.gh-toast a {
	color: var(--lino);
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 4px;
	white-space: nowrap;
}
@media (max-width: 859px) {
	.gh-toast { left: 12px; right: 12px; bottom: 72px; max-width: none; }
}

/* ==========================================================================
   Migas, títulos de página, vacíos
   ========================================================================== */
.gh-crumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	font-size: 11px;
	letter-spacing: .06em;
	color: var(--nuez);
}
.gh-crumbs strong { font-weight: 600; }

.gh-pagehead { display: flex; flex-direction: column; gap: 20px; margin-bottom: 56px; }
.gh-pagehead__lead { margin: 0; font-size: 15px; line-height: 1.7; max-width: 560px; }
.gh-ofertas > .gh-pagehead, .gh-contacto > .gh-pagehead { margin-bottom: 0; }
.gh-pagehead--split {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	gap: 28px;
	align-items: end;
	border-bottom: 1px solid rgba(92, 67, 50, .22);
	padding-bottom: 36px;
}
.gh-pagehead__main { display: flex; flex-direction: column; gap: 20px; }
.gh-pagehead__note { display: flex; flex-direction: column; gap: 10px; max-width: 380px; justify-self: end; }
.gh-pagehead__note p { margin: 0; font-size: 14px; line-height: 1.7; text-wrap: pretty; }
@media (max-width: 859px) {
	.gh-pagehead { margin-bottom: 36px; }
	.gh-pagehead--split { grid-template-columns: 1fr; }
	.gh-pagehead__note { justify-self: start; }
}

.gh-empty {
	padding: 64px 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
}
.gh-empty__title { font-family: var(--serif); font-size: 34px; line-height: 1.1; color: var(--nuez); }
.gh-empty p { margin: 0; max-width: 520px; }

/* ==========================================================================
   Grilla y tarjeta de producto
   ========================================================================== */
.gh-grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 56px 32px;
	align-items: start;
}
.gh-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 28px; }
.gh-grid--stagger .gh-grid__item:nth-child(even) { margin-top: 56px; }
.gh-grid__item { min-width: 0; margin: 0; }
@media (max-width: 1079px) {
	.gh-grid--4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.gh-grid--stagger .gh-grid__item:nth-child(even) { margin-top: 0; }
}
@media (max-width: 859px) {
	.gh-grid, .gh-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 14px; }
}

.gh-card { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.gh-card__media {
	position: relative;
	display: block;
	aspect-ratio: 4 / 5;
	border-radius: 8px;
	overflow: hidden;
	background: var(--natural);
}
.gh-card__img, .gh-card__hover { position: absolute; inset: 0; }
.gh-card__img { transition: transform .9s var(--ease); }
.gh-card__img img, .gh-card__hover img { width: 100%; height: 100%; object-fit: cover; }
.gh-card__hover { opacity: 0; transition: opacity .6s ease; }
.gh-card:hover .gh-card__img { transform: scale(1.04); }
.gh-card:hover .gh-card__hover { opacity: 1; }
@media (hover: none) {
	.gh-card__hover { display: none; }
}
.gh-card__badges { position: absolute; top: 12px; left: 12px; display: flex; flex-wrap: wrap; gap: 6px; }

.gh-badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	border-radius: 999px;
	padding: 5px 10px;
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: .08em;
	line-height: 1.2;
}
.gh-badge--sale { background: var(--terra); color: var(--lino); }
.gh-badge--new { background: var(--lino); color: var(--nuez); font-size: 9.5px; letter-spacing: .18em; text-transform: uppercase; }
.gh-badge--new .gh-icon--leaf { width: 9px; height: 9px; }
.gh-badge--out { background: var(--carbon); color: var(--lino); font-size: 9.5px; letter-spacing: .18em; text-transform: uppercase; }
.gh-badge--lg { position: absolute; top: 16px; left: 16px; font-size: 12px; padding: 6px 12px; pointer-events: none; z-index: 2; }

.gh-card__info { display: flex; flex-direction: column; gap: 6px; }
.gh-card__cat { font-size: 9.5px; letter-spacing: .2em; text-transform: uppercase; color: var(--nuez); opacity: .8; }
.gh-card__name {
	font-size: 14px;
	font-weight: 500;
	color: var(--carbon);
	line-height: 1.35;
	text-decoration: underline;
	text-decoration-color: transparent;
	text-underline-offset: 4px;
	transition: text-decoration-color .3s ease;
}
.gh-card:hover .gh-card__name { color: var(--carbon); text-decoration-color: var(--nuez); }
.gh-card__add {
	align-self: flex-start;
	white-space: nowrap;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 40px;
	background: transparent;
	color: var(--nuez);
	border: 1px solid rgba(92, 67, 50, .45);
	border-radius: 999px;
	padding: 0 16px;
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	transition: background .3s ease, color .3s ease, border-color .3s ease;
}
.gh-card__add:hover, .gh-card__add.is-added { background: var(--terra); color: var(--lino); border-color: var(--terra); }

.gh-price { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.gh-price__now { font-size: 15px; font-weight: 600; color: var(--nuez); }
.gh-price.is-sale .gh-price__now { color: var(--terra); }
.gh-price__old { font-size: 12.5px; color: var(--nuez); }

/* ==========================================================================
   Home
   ========================================================================== */
.gh-home { display: flex; flex-direction: column; gap: 140px; }
@media (max-width: 859px) {
	.gh-home { gap: 88px; }
}

.gh-hero {
	padding-top: 56px;
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: 64px;
	align-items: stretch;
}
.gh-hero__text { display: flex; flex-direction: column; justify-content: space-between; gap: 36px; min-width: 0; }
.gh-hero__top { display: flex; flex-direction: column; gap: 28px; }
.gh-hero__title {
	margin: 0;
	font-family: var(--serif);
	font-weight: 400;
	font-size: 104px;
	line-height: .96;
	letter-spacing: -.01em;
	color: var(--nuez);
	text-wrap: balance;
}
.gh-hero__lead { margin: 0; font-size: 15px; line-height: 1.7; max-width: 400px; text-wrap: pretty; }
.gh-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; }
.gh-hero__cats {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 16px;
	border-top: 1px solid var(--line);
	padding-top: 16px;
}
.gh-hero__cats a { display: flex; gap: 6px; align-items: baseline; padding: 4px 0; font-size: 12px; color: var(--nuez); }
.gh-hero__cats a:hover { color: var(--terra); }
.gh-hero__cats span { font-size: 9.5px; color: var(--salvia); font-weight: 600; }

.gh-hero__collage { position: relative; height: 680px; min-width: 0; }
.gh-hero__block { position: absolute; left: 0; bottom: 0; width: 52%; height: 46%; background: var(--natural); border-radius: 10px; }
.gh-hero__big, .gh-hero__small { position: absolute; background: var(--natural); border-radius: 10px; overflow: hidden; }
.gh-hero__big { top: 0; right: 0; width: 80%; height: 88%; }
.gh-hero__small { left: 4%; bottom: 8%; width: 40%; height: 42%; border: 6px solid var(--lino); }
.gh-hero__big img, .gh-hero__small img { width: 100%; height: 100%; object-fit: cover; }
.gh-hero__caption {
	position: absolute;
	right: 0;
	bottom: 0;
	font-size: 10px;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--nuez);
	display: flex;
	gap: 10px;
	align-items: center;
}
.gh-hero__caption span { width: 24px; height: 1px; background: var(--nuez); }

@media (max-width: 1199px) {
	.gh-hero__title { font-size: 76px; }
}
@media (max-width: 859px) {
	.gh-hero { grid-template-columns: 1fr; gap: 40px; padding-top: 28px; }
	.gh-hero__title { font-size: 54px; }
	.gh-hero__collage { height: 440px; }
	.gh-hero__big { width: 84%; }
	.gh-hero__small { left: 0; bottom: 6%; width: 52%; }
}

.gh-sechead {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-end;
	gap: 16px 20px;
	margin-bottom: 36px;
}
.gh-sechead--rule { border-bottom: 1px solid var(--line); padding-bottom: 22px; margin-bottom: 40px; }
.gh-sechead__title { display: flex; flex-direction: column; gap: 14px; }
.gh-sechead__text { margin: 0; font-size: 13.5px; line-height: 1.6; max-width: 340px; }

/* Bento de categorías */
.gh-bento {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	grid-auto-rows: 250px;
	gap: 16px;
}
.gh-bento__tile { display: flex; flex-direction: column; gap: 12px; min-width: 0; color: var(--nuez); }
.gh-bento__tile:hover { color: var(--nuez); }
.gh-bento__tile--a { grid-column: 1 / 6; grid-row: 1 / 3; }
.gh-bento__tile--b { grid-column: 6 / 9; grid-row: 1 / 2; }
.gh-bento__tile--c { grid-column: 9 / 13; grid-row: 1 / 3; }
.gh-bento__tile--d { grid-column: 6 / 9; grid-row: 2 / 3; }
.gh-bento__tile--e { grid-column: 1 / 8; grid-row: 3 / 4; }
.gh-bento__tile--f { grid-column: 8 / 13; grid-row: 3 / 4; }
.gh-bento__tile--g { grid-column: 1 / 13; grid-row: 3 / 4; }
/* Distribución según la cantidad de mosaicos, sin huecos */
@media (min-width: 860px) {
	.gh-bento[class*="gh-bento--"] { grid-auto-rows: 290px; }
	.gh-bento--3 .gh-bento__tile:nth-child(1) { grid-column: 1 / 7; grid-row: 1 / 3; }
	.gh-bento--3 .gh-bento__tile:nth-child(2) { grid-column: 7 / 13; grid-row: 1 / 2; }
	.gh-bento--3 .gh-bento__tile:nth-child(3) { grid-column: 7 / 13; grid-row: 2 / 3; }
	.gh-bento--4 .gh-bento__tile:nth-child(1) { grid-column: 1 / 6; grid-row: 1 / 3; }
	.gh-bento--4 .gh-bento__tile:nth-child(2) { grid-column: 6 / 13; grid-row: 1 / 2; }
	.gh-bento--4 .gh-bento__tile:nth-child(3) { grid-column: 6 / 9; grid-row: 2 / 3; }
	.gh-bento--4 .gh-bento__tile:nth-child(4) { grid-column: 9 / 13; grid-row: 2 / 3; }
	.gh-bento--5 .gh-bento__tile:nth-child(1) { grid-column: 1 / 5; grid-row: 1 / 3; }
	.gh-bento--5 .gh-bento__tile:nth-child(2) { grid-column: 5 / 9; grid-row: 1 / 2; }
	.gh-bento--5 .gh-bento__tile:nth-child(3) { grid-column: 5 / 9; grid-row: 2 / 3; }
	.gh-bento--5 .gh-bento__tile:nth-child(4) { grid-column: 9 / 13; grid-row: 1 / 2; }
	.gh-bento--5 .gh-bento__tile:nth-child(5) { grid-column: 9 / 13; grid-row: 2 / 3; }
	.gh-bento--6 .gh-bento__tile:nth-child(1) { grid-column: 1 / 5; grid-row: 1 / 3; }
	.gh-bento--6 .gh-bento__tile:nth-child(2) { grid-column: 5 / 9; grid-row: 1 / 2; }
	.gh-bento--6 .gh-bento__tile:nth-child(3) { grid-column: 5 / 9; grid-row: 2 / 3; }
	.gh-bento--6 .gh-bento__tile:nth-child(4) { grid-column: 9 / 13; grid-row: 1 / 3; }
	.gh-bento--6 .gh-bento__tile:nth-child(5) { grid-column: 1 / 7; grid-row: 3 / 4; }
	.gh-bento--6 .gh-bento__tile:nth-child(6) { grid-column: 7 / 13; grid-row: 3 / 4; }
}
.gh-bento__img {
	flex: 1;
	position: relative;
	border-radius: 8px;
	overflow: hidden;
	background: var(--natural);
}
.gh-bento__img > img, .gh-bento__img > .gh-ph {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .9s var(--ease);
}
.gh-bento__tile:hover .gh-bento__img > * { transform: scale(1.04); }
.gh-bento__meta { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 4px 12px; }
.gh-bento__name { display: flex; align-items: baseline; gap: 10px; font-family: var(--serif); font-size: 26px; line-height: 1; color: var(--nuez); }
.gh-bento__num { font-family: var(--sans); font-size: 10px; letter-spacing: .14em; color: var(--salvia); font-weight: 600; white-space: nowrap; }
.gh-bento__count { font-size: 11px; white-space: nowrap; }
@media (max-width: 859px) {
	.gh-bento {
		grid-template-columns: none;
		grid-auto-flow: column;
		grid-auto-columns: 72%;
		grid-auto-rows: 340px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		margin: 0 calc(var(--pad) * -1);
		padding: 0 var(--pad);
		scrollbar-width: none;
	}
	.gh-bento::-webkit-scrollbar { display: none; }
	.gh-bento__tile { grid-column: auto !important; grid-row: auto !important; scroll-snap-align: start; }
}

/* Ofertas en la home */
.gh-offers {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: 64px;
	align-items: stretch;
}
.gh-offers__panel {
	background: var(--terra);
	color: var(--lino);
	border-radius: 14px;
	padding: 56px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 40px;
	min-width: 0;
}
.gh-offers__top { display: flex; flex-direction: column; gap: 20px; }
.gh-offers__top .gh-h2 { color: var(--lino); }
.gh-offers__top p { margin: 0; font-size: 14px; line-height: 1.7; max-width: 360px; }
.gh-offers__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 20px; }
.gh-offers__max { display: flex; flex-direction: column; gap: 4px; }
.gh-offers__max span { font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase; }
.gh-offers__max strong { font-family: var(--serif); font-size: 112px; line-height: .85; font-style: italic; font-weight: 400; }
.gh-offers__max--text strong { font-size: 60px; }
.gh-offers__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	align-items: start;
	min-width: 0;
}
.gh-offers__list li { min-width: 0; scroll-snap-align: start; }
@media (max-width: 1079px) {
	.gh-offers { grid-template-columns: 1fr; gap: 40px; }
}
@media (max-width: 859px) {
	.gh-offers__panel { padding: 32px 24px; }
	.gh-offers__max strong { font-size: 72px; }
	.gh-offers__max--text strong { font-size: 44px; }
	.gh-offers__list {
		grid-template-columns: none;
		grid-auto-flow: column;
		grid-auto-columns: 62%;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		margin: 0 calc(var(--pad) * -1);
		padding: 0 var(--pad);
		scrollbar-width: none;
	}
	.gh-offers__list::-webkit-scrollbar { display: none; }
}

/* Nosotros en la home */
.gh-about {
	display: grid;
	grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
	gap: 64px;
	align-items: center;
}
.gh-about__media { position: relative; padding: 48px 64px 0 0; min-width: 0; }
.gh-about__block { position: absolute; top: 0; right: 0; width: 62%; height: 70%; background: var(--natural); border-radius: 10px; }
.gh-about__img {
	position: relative;
	aspect-ratio: 4 / 5;
	max-width: 520px;
	background: var(--natural);
	border-radius: 10px;
	overflow: hidden;
}
.gh-about__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gh-about__text { display: flex; flex-direction: column; gap: 22px; max-width: 480px; }
.gh-about__text p { margin: 0; font-size: 14.5px; line-height: 1.75; text-wrap: pretty; }
.gh-about__text .gh-link { align-self: flex-start; }
@media (max-width: 859px) {
	.gh-about { grid-template-columns: 1fr; gap: 40px; }
	.gh-about__media { padding: 24px 24px 0 0; }
}

/* Beneficios */
.gh-benefits {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	border-top: 1px solid rgba(92, 67, 50, .25);
	border-bottom: 1px solid rgba(92, 67, 50, .25);
}
.gh-benefit { display: flex; gap: 20px; padding: 40px 36px; }
.gh-benefit + .gh-benefit { border-left: 1px solid rgba(92, 67, 50, .25); }
.gh-benefit > div { display: flex; flex-direction: column; gap: 8px; }
.gh-benefit__num { font-family: var(--serif); font-style: italic; font-size: 34px; line-height: 1; color: var(--salvia); }
.gh-benefit__title { font-family: var(--serif); font-size: 26px; line-height: 1.1; color: var(--nuez); }
.gh-benefit__text { font-size: 13px; line-height: 1.6; }
@media (max-width: 859px) {
	.gh-benefits { grid-template-columns: 1fr; }
	.gh-benefit { padding: 26px 0; }
	.gh-benefit + .gh-benefit { border-left: 0; border-top: 1px solid rgba(92, 67, 50, .25); }
}

/* Caja CTA */
.gh-cta {
	background: var(--natural);
	border-radius: 14px;
	padding: 56px;
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	gap: 32px;
	align-items: end;
}
.gh-cta__side { display: flex; flex-direction: column; gap: 20px; }
.gh-cta__side p { margin: 0; font-size: 14px; line-height: 1.7; }
.gh-cta__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 12px; }
.gh-cta__actions > span { font-size: 13px; color: var(--nuez); margin-left: 6px; }
.gh-cta--row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 28px; }
.gh-cta--row .gh-h2 { max-width: 620px; }
@media (max-width: 859px) {
	.gh-cta { grid-template-columns: 1fr; padding: 32px 24px; }
}

/* ==========================================================================
   Tienda / categoría
   ========================================================================== */
.gh-archive { display: flex; flex-direction: column; gap: 56px; }
.gh-archive__head {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: 64px;
	align-items: end;
}
.gh-archive__intro { display: flex; flex-direction: column; gap: 20px; padding-bottom: 24px; min-width: 0; }
.gh-archive__title {
	margin: 0;
	font-family: var(--serif);
	font-weight: 400;
	font-size: 96px;
	line-height: .95;
	color: var(--nuez);
	overflow-wrap: anywhere;
}
.gh-archive__text { margin: 0; font-size: 14.5px; line-height: 1.7; max-width: 420px; text-wrap: pretty; }
.gh-archive__img { height: 380px; }
.gh-archive__img > .gh-ph { position: absolute; inset: 0; }
.gh-archive__body { display: flex; flex-direction: column; gap: 32px; }

.gh-catnav {
	display: flex;
	gap: 26px;
	overflow-x: auto;
	padding-bottom: 2px;
	scrollbar-width: none;
}
.gh-catnav::-webkit-scrollbar { display: none; }
.gh-catnav a {
	flex: none;
	padding: 6px 0;
	font-family: var(--serif);
	font-size: 22px;
	color: var(--nuez);
	opacity: .55;
	border-bottom: 1px solid transparent;
	transition: opacity .3s;
}
.gh-catnav a:hover { opacity: 1; color: var(--nuez); }
.gh-catnav a.is-active { opacity: 1; border-bottom-color: var(--nuez); }

.gh-filterbar {
	position: sticky;
	top: var(--header-h);
	z-index: 10;
	background: var(--lino);
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	padding: 12px 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 14px;
}
.admin-bar .gh-filterbar { top: calc(var(--header-h) + 32px); }
.gh-filterbar__subs { display: flex; flex-wrap: wrap; gap: 22px; align-items: center; }
.gh-filterbar__subs a {
	padding: 4px 0;
	font-size: 12.5px;
	color: var(--nuez);
	border-bottom: 1px solid transparent;
}
.gh-filterbar__subs a:hover { color: var(--nuez); border-bottom-color: var(--nuez); }
.gh-filterbar__subs a.is-active { font-weight: 600; border-bottom-color: var(--nuez); }
.gh-filterbar__toggle {
	display: none;
	min-height: 40px;
	align-items: center;
	gap: 10px;
	background: none;
	border: 1px solid var(--line-strong);
	border-radius: 999px;
	padding: 0 16px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--nuez);
}
.gh-filterbar__right { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.gh-filterbar__count { font-size: 11.5px; color: var(--nuez); }
.gh-filterbar__selects { display: flex; gap: 12px; flex-wrap: wrap; }
.gh-select {
	-webkit-appearance: none;
	appearance: none;
	background: transparent;
	border: 1px solid var(--line-strong);
	border-radius: 999px;
	padding: 9px 16px;
	font-size: 12px;
	color: var(--nuez);
	cursor: pointer;
}
.gh-select:focus { outline: none; border-color: var(--nuez); }

.woocommerce-pagination { margin-top: 56px; }
.woocommerce-pagination ul.page-numbers {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.woocommerce-pagination .page-numbers a,
.woocommerce-pagination .page-numbers span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	border: 1px solid var(--line-strong);
	border-radius: 999px;
	font-size: 12.5px;
	color: var(--nuez);
}
.woocommerce-pagination .page-numbers .current { background: var(--nuez); border-color: var(--nuez); color: var(--lino); }

@media (max-width: 1199px) {
	.gh-archive__title { font-size: 76px; }
}
@media (max-width: 859px) {
	.gh-archive { gap: 32px; }
	.gh-archive__head { grid-template-columns: 1fr; gap: 28px; }
	.gh-archive__intro { padding-bottom: 0; }
	.gh-archive__title { font-size: 56px; }
	.gh-archive__img { height: 240px; }
	.gh-catnav { margin: 0 calc(var(--pad) * -1); padding-left: var(--pad); padding-right: var(--pad); }

	.gh-filterbar__toggle { display: inline-flex; order: 1; }
	.gh-filterbar__right { display: contents; }
	.gh-filterbar__count { order: 2; }
	.gh-filterbar__subs, .gh-filterbar__selects { display: none; width: 100%; }
	.gh-filterbar__subs { order: 3; gap: 8px; padding-top: 10px; }
	.gh-filterbar__selects { order: 4; flex-direction: column; gap: 16px; padding-bottom: 6px; }
	.gh-filterbar.is-open .gh-filterbar__subs:not(:empty),
	.gh-filterbar.is-open .gh-filterbar__selects { display: flex; }
	.gh-filterbar__subs a {
		min-height: 40px;
		display: inline-flex;
		align-items: center;
		border: 1px solid var(--line);
		border-radius: 999px;
		padding: 0 16px;
	}
	.gh-filterbar__subs a.is-active { background: var(--nuez); color: var(--lino); border-color: var(--nuez); font-weight: 400; }
	.gh-filterbar__selects .gh-select { border-radius: 10px; padding: 13px 16px; font-size: 14px; width: 100%; }
}

/* ==========================================================================
   Ficha de producto
   ========================================================================== */
.gh-product { display: flex; flex-direction: column; gap: 120px; }
.gh-product > .gh-crumbs { margin-bottom: -88px; }
.gh-main.gh-single { padding-top: 32px; }

.gh-product__main {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	gap: 72px;
	align-items: start;
}
.gh-product__gallery {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	min-width: 0;
}
.gh-product__shot {
	position: relative;
	margin: 0;
	aspect-ratio: 4 / 5;
	background: var(--natural);
	border-radius: 10px;
	overflow: hidden;
	scroll-snap-align: start;
}
.gh-product__shot--main { grid-column: 1 / 3; aspect-ratio: 5 / 4; }
.gh-product__shot a, .gh-product__shot img { position: absolute; inset: 0; width: 100%; height: 100%; }
.gh-product__shot img { object-fit: cover; }

.gh-product__info {
	position: sticky;
	top: calc(var(--header-h) + 32px);
	display: flex;
	flex-direction: column;
	gap: 26px;
	min-width: 0;
}
.gh-product__head { display: flex; flex-direction: column; gap: 14px; }
.gh-product__title {
	margin: 0;
	font-family: var(--serif);
	font-weight: 400;
	font-size: 54px;
	line-height: 1;
	color: var(--nuez);
	text-wrap: balance;
}
.gh-product__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 12px; }
.gh-product__now { font-size: 26px; font-weight: 600; color: var(--nuez); }
.gh-product__price.is-sale .gh-product__now { color: var(--terra); }
.gh-product__price del { font-size: 15px; color: var(--nuez); }
.gh-product__save { font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--terra); }

.gh-paybox { border: 1px solid rgba(92, 67, 50, .22); border-radius: 10px; display: flex; flex-direction: column; }
.gh-paybox__row {
	padding: 14px 18px;
	display: flex;
	justify-content: space-between;
	gap: 12px;
	font-size: 13px;
	border-bottom: 1px solid var(--line-soft);
}
.gh-paybox__row strong { font-weight: 600; color: var(--nuez); white-space: nowrap; }
.gh-paybox__note { padding: 14px 18px; font-size: 12px; color: var(--nuez); }

/* Formulario de compra (WooCommerce) */
.gh-product__buy form.cart { display: flex; flex-direction: column; gap: 26px; margin: 0; }
.gh-product__buy form.cart:not(.variations_form):not(.grouped_form) { flex-direction: row; flex-wrap: wrap; gap: 10px; }
.gh-product__buy .stock { margin: 0; font-size: 12.5px; color: var(--nuez); }
.gh-product__buy .stock.out-of-stock { color: var(--terra); font-weight: 600; }
.gh-product__buy table.variations { display: block; width: 100%; border: 0; margin: 0; border-collapse: collapse; }
.gh-product__buy table.variations tbody { display: flex; flex-direction: column; gap: 26px; }
.gh-product__buy table.variations tr { display: block; }
.gh-product__buy table.variations th.label { display: none; }
.gh-product__buy table.variations td { display: block; padding: 0; }
.gh-product__buy .single_variation_wrap { display: flex; flex-direction: column; gap: 16px; }
.gh-product__buy .woocommerce-variation:empty,
.gh-product__buy .woocommerce-variation-price:empty { display: none; }
.gh-product__buy .woocommerce-variation { font-size: 13px; }
.gh-product__buy .woocommerce-variation-price .price { font-size: 18px; font-weight: 600; color: var(--nuez); }
.gh-product__buy .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: 10px; }

.gh-swatches { display: flex; flex-direction: column; gap: 12px; }
.gh-swatches__title { font-size: 10.5px; letter-spacing: .22em; text-transform: uppercase; color: var(--nuez); }
.gh-swatches__title strong { font-weight: 600; }
.gh-swatches__list { display: flex; gap: 8px; flex-wrap: wrap; }
.gh-swatches--color .gh-swatches__list { gap: 10px; }
.gh-swatch {
	min-height: 42px;
	padding: 0 18px;
	border-radius: 999px;
	border: 1px solid var(--line);
	background: transparent;
	color: var(--nuez);
	font-size: 12.5px;
	transition: all .25s;
}
.gh-swatch:hover { border-color: var(--nuez); }
.gh-swatch[aria-pressed="true"] { background: var(--nuez); color: var(--lino); border-color: var(--nuez); }
.gh-swatch:disabled { opacity: .35; text-decoration: line-through; cursor: not-allowed; }
.gh-swatches--color .gh-swatch {
	width: 40px;
	height: 40px;
	min-height: 0;
	padding: 4px;
	border-color: transparent;
}
.gh-swatches--color .gh-swatch span {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 999px;
	border: 1px solid var(--line);
}
.gh-swatches--color .gh-swatch:hover { border-color: rgba(92, 67, 50, .4); background: transparent; }
.gh-swatches--color .gh-swatch[aria-pressed="true"] { background: transparent; border-color: var(--nuez); }

.quantity {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--line-strong);
	border-radius: 999px;
	height: 52px;
	flex: none;
}
.quantity:has(input[type="hidden"]) { display: none; }
.gh-qty__btn {
	width: 46px;
	height: 100%;
	background: none;
	border: 0;
	font-size: 18px;
	color: var(--nuez);
	padding: 0;
}
.quantity input.qty {
	width: 32px;
	text-align: center;
	border: 0;
	background: transparent;
	font-size: 14px;
	font-weight: 600;
	padding: 0;
	-moz-appearance: textfield;
	appearance: textfield;
}
.quantity input.qty::-webkit-outer-spin-button,
.quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.quantity input.qty:focus { outline: none; }

.single_add_to_cart_button {
	flex: 1;
	min-width: 180px;
	height: 52px;
	background: var(--terra);
	color: var(--lino);
	border: 0;
	border-radius: 999px;
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	transition: background .3s;
}
.single_add_to_cart_button:hover, .single_add_to_cart_button.is-added { background: var(--nuez); }
.single_add_to_cart_button.disabled { opacity: .5; cursor: not-allowed; }

.gh-product__wa { min-height: 52px; margin-top: -16px; }
.gh-product__wa .gh-icon--leaf { width: 11px; height: 11px; }
.gh-product__ship { margin: 0; font-size: 12.5px; line-height: 1.7; color: var(--nuez); }

.gh-acc { display: flex; flex-direction: column; border-top: 1px solid rgba(92, 67, 50, .22); }
.gh-acc__item { border-bottom: 1px solid rgba(92, 67, 50, .22); }
.gh-acc__item summary {
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 18px 0;
	cursor: pointer;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--nuez);
}
.gh-acc__item summary::-webkit-details-marker { display: none; }
.gh-acc__sign::after { content: '+'; font-size: 16px; font-weight: 400; letter-spacing: 0; }
.gh-acc__item[open] .gh-acc__sign::after { content: '−'; }
.gh-acc__body { padding-bottom: 20px; font-size: 14px; line-height: 1.75; text-wrap: pretty; }
.gh-acc__body p { margin: 0 0 10px; }
.gh-acc__body p:last-child { margin-bottom: 0; }

.woocommerce-notices-wrapper:empty { display: none; }

@media (max-width: 1079px) {
	.gh-product__main { gap: 40px; }
	.gh-product__title { font-size: 44px; }
}
@media (max-width: 859px) {
	.gh-product { gap: 72px; }
	.gh-product > .gh-crumbs { margin-bottom: -52px; }
	.gh-main.gh-single { padding-top: 20px; }
	.gh-product__main { grid-template-columns: 1fr; gap: 28px; }
	.gh-product__gallery {
		grid-template-columns: none;
		grid-auto-flow: column;
		grid-auto-columns: 86%;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		margin: 0 calc(var(--pad) * -1);
		padding: 0 var(--pad);
		scrollbar-width: none;
	}
	.gh-product__gallery::-webkit-scrollbar { display: none; }
	.gh-product__shot--main { grid-column: auto; aspect-ratio: 4 / 5; }
	.gh-product__info { position: static; }
	.gh-product__title { font-size: 40px; }
}

/* ==========================================================================
   Ofertas
   ========================================================================== */
.gh-ofertas { display: flex; flex-direction: column; gap: 104px; }
.gh-feat {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	gap: 48px;
	align-items: start;
}
.gh-feat__item { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.gh-feat__item:nth-child(2) { margin-top: 120px; }
.gh-feat__media {
	position: relative;
	display: block;
	aspect-ratio: 5 / 6;
	border-radius: 10px;
	overflow: hidden;
	background: var(--natural);
}
.gh-feat__item:nth-child(2) .gh-feat__media { aspect-ratio: 4 / 5; }
.gh-feat__img { position: absolute; inset: 0; transition: transform .9s var(--ease); }
.gh-feat__img img { width: 100%; height: 100%; object-fit: cover; }
.gh-feat__media:hover .gh-feat__img { transform: scale(1.03); }
.gh-stamp {
	position: absolute;
	top: 22px;
	right: 22px;
	width: 112px;
	height: 112px;
	border-radius: 999px;
	background: var(--terra);
	color: var(--lino);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 2px;
	pointer-events: none;
}
.gh-stamp strong { font-family: var(--serif); font-style: italic; font-weight: 400; font-size: 38px; line-height: 1; }
.gh-stamp span { font-size: 8.5px; letter-spacing: .2em; text-transform: uppercase; }
.gh-feat__info { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 18px; }
.gh-feat__text { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.gh-feat__cat { font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: var(--nuez); }
.gh-feat__name {
	font-family: var(--serif);
	font-size: 38px;
	line-height: 1.05;
	color: var(--nuez);
	text-decoration: underline;
	text-decoration-color: transparent;
	text-underline-offset: 6px;
	text-decoration-thickness: 1px;
	transition: text-decoration-color .3s;
}
.gh-feat__name:hover { color: var(--nuez); text-decoration-color: var(--nuez); }
.gh-feat__price { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.gh-feat__price strong { font-size: 20px; font-weight: 600; color: var(--terra); }
.gh-feat__price del { font-size: 14px; color: var(--nuez); }
.gh-feat__price span:last-child { font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--nuez); }
.gh-feat__info .gh-btn { font-size: 11px; padding: 0 24px; }

.gh-chips { display: flex; gap: 8px; flex-wrap: wrap; }
.gh-chip {
	min-height: 38px;
	padding: 0 16px;
	border-radius: 999px;
	border: 1px solid var(--line);
	background: transparent;
	color: var(--nuez);
	font-size: 12px;
	transition: all .25s;
}
.gh-chip:hover { border-color: var(--nuez); }
.gh-chip.is-active { background: var(--nuez); color: var(--lino); border-color: var(--nuez); }
.gh-section .gh-sechead + .gh-grid { margin-top: 0; }
.gh-ofertas .gh-sechead { margin-bottom: 32px; }

@media (max-width: 859px) {
	.gh-ofertas { gap: 64px; }
	.gh-feat { grid-template-columns: 1fr; }
	.gh-feat__item:nth-child(2) { margin-top: 0; }
	.gh-feat__media, .gh-feat__item:nth-child(2) .gh-feat__media { aspect-ratio: 4 / 5; }
	.gh-stamp { width: 84px; height: 84px; top: 14px; right: 14px; }
	.gh-stamp strong { font-size: 28px; }
	.gh-feat__name { font-size: 30px; }
}

/* ==========================================================================
   Nosotros
   ========================================================================== */
.gh-nosotros { display: flex; flex-direction: column; gap: 136px; padding-top: 56px; }
.gh-nos-open { display: flex; flex-direction: column; gap: 56px; }
.gh-nos-open__title { display: flex; flex-direction: column; gap: 24px; max-width: 1040px; }
.gh-nos-open__img { aspect-ratio: 21 / 9; }

.gh-split {
	display: grid;
	grid-template-columns: minmax(0, 3fr) minmax(0, 8fr);
	gap: 48px;
}
.gh-split > .gh-kicker { align-self: start; }
.gh-split__body { display: flex; flex-direction: column; gap: 32px; }
.gh-split__body--2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; }
.gh-lead {
	margin: 0;
	font-family: var(--serif);
	font-size: 38px;
	line-height: 1.2;
	color: var(--nuez);
	text-wrap: pretty;
}
.gh-cols2 { column-count: 2; column-gap: 48px; font-size: 14.5px; line-height: 1.8; }
.gh-cols2 p { margin: 0 0 16px; break-inside: avoid-column; }
.gh-cols2 p:last-child { margin-bottom: 0; }

.gh-pair {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 4fr);
	gap: 48px;
	align-items: end;
}
.gh-pair__big { aspect-ratio: 4 / 3; }
.gh-pair__small { position: relative; padding: 0 0 48px 48px; }
.gh-pair__block { position: absolute; inset: 0 0 18% 18%; background: var(--natural); border-radius: 10px; }
.gh-pair__img { aspect-ratio: 3 / 4; border: 6px solid var(--lino); }

.gh-rows { margin: 0; display: flex; flex-direction: column; border-top: 1px solid rgba(92, 67, 50, .22); font-size: 13.5px; }
.gh-rows > div {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 16px 0;
	border-bottom: 1px solid rgba(92, 67, 50, .22);
}
.gh-rows dt { font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: var(--nuez); padding-top: 3px; }
.gh-rows dd { margin: 0; text-align: right; }

.gh-values { display: flex; flex-direction: column; gap: 36px; }
.gh-values__list { display: flex; flex-direction: column; border-top: 1px solid rgba(92, 67, 50, .25); }
.gh-values__row {
	display: grid;
	grid-template-columns: 120px minmax(0, 4fr) minmax(0, 5fr);
	gap: 32px;
	padding: 36px 0;
	border-bottom: 1px solid rgba(92, 67, 50, .25);
	align-items: baseline;
}
.gh-values__num { font-family: var(--serif); font-style: italic; font-size: 48px; line-height: 1; color: var(--salvia); }
.gh-values__title { font-family: var(--serif); font-size: 34px; line-height: 1.05; color: var(--nuez); }
.gh-values__text { font-size: 14px; line-height: 1.75; max-width: 460px; }

@media (max-width: 859px) {
	.gh-nosotros { gap: 80px; padding-top: 28px; }
	.gh-nos-open { gap: 32px; }
	.gh-nos-open__img { aspect-ratio: 4 / 3; }
	.gh-split { grid-template-columns: 1fr; gap: 20px; }
	.gh-split__body--2 { grid-template-columns: 1fr; }
	.gh-lead { font-size: 26px; }
	.gh-cols2 { column-count: 1; }
	.gh-pair { grid-template-columns: 1fr; gap: 24px; }
	.gh-pair__small { padding: 0 0 24px 24px; }
	.gh-values__row { grid-template-columns: 48px 1fr; gap: 10px 12px; padding: 24px 0; }
	.gh-values__num { font-size: 32px; }
	.gh-values__title { font-size: 26px; }
	.gh-values__text { grid-column: 2; }
}

/* ==========================================================================
   Contacto
   ========================================================================== */
.gh-contacto { display: flex; flex-direction: column; gap: 96px; padding-top: 56px; }
.gh-contacto > .gh-pagehead { gap: 20px; }
.gh-contact {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: 64px;
	align-items: stretch;
}
.gh-contact__card {
	background: var(--natural);
	border-radius: 14px;
	padding: 48px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 36px;
}
.gh-contact__card .gh-stack { gap: 16px; }
.gh-contact__card p { margin: 0; font-size: 14px; line-height: 1.7; max-width: 340px; }
.gh-contact__big { font-family: var(--serif); font-size: 72px; line-height: 1; color: var(--nuez); }
.gh-contact__phone { font-family: var(--serif); font-size: 36px; line-height: 1; color: var(--nuez); }
.gh-contact__card .gh-btn { min-height: 52px; }
.gh-contact__note { font-size: 12px; color: var(--nuez); }
.gh-contact__form { display: flex; flex-direction: column; gap: 22px; padding-top: 24px; }

.gh-contact--map { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); }
.gh-infolist { margin: 0; display: flex; flex-direction: column; border-top: 1px solid rgba(92, 67, 50, .25); }
.gh-infolist > div { display: flex; flex-direction: column; gap: 8px; padding: 22px 0; border-bottom: 1px solid rgba(92, 67, 50, .25); }
.gh-infolist dt { font-size: 10px; letter-spacing: .22em; text-transform: uppercase; color: var(--nuez); }
.gh-infolist dd { margin: 0; font-size: 14.5px; line-height: 1.6; }
.gh-infolist a { color: var(--carbon); }
.gh-infolist a:hover { color: var(--terra); }
.gh-map { position: relative; min-height: 440px; background: var(--natural); border-radius: 14px; overflow: hidden; }
.gh-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: sepia(.25) saturate(.8); }
.gh-map img, .gh-map .gh-ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }

@media (max-width: 859px) {
	.gh-contacto { gap: 56px; padding-top: 28px; }
	.gh-contact, .gh-contact--map { grid-template-columns: 1fr; gap: 32px; }
	.gh-contact__card { padding: 28px 24px; }
	.gh-contact__big { font-size: 48px; }
	.gh-contact__phone { font-size: 28px; }
	.gh-contact__form { padding-top: 0; }
	.gh-map { min-height: 300px; }
}

/* Formularios (Contact Form 7 y campos generales) */
.wpcf7 form, .gh-wa-form { display: flex; flex-direction: column; gap: 22px; }
.gh-wa-form .gh-btn--outline:hover { background: var(--nuez); color: var(--lino); }
.gh-wa-form__done { border-top: 1px solid rgba(92, 67, 50, .25); padding-top: 28px; display: flex; flex-direction: column; gap: 12px; font-size: 14px; line-height: 1.7; }
.gh-wa-form__done[hidden] { display: none; }
.gh-wa-form__title { font-family: var(--serif); font-size: 36px; line-height: 1.05; color: var(--nuez); }
.wpcf7 form > p { margin: 0; }
.gh-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.gh-field {
	display: flex;
	flex-direction: column;
	gap: 8px;
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--nuez);
}
.wpcf7-form-control-wrap { display: block; }
.gh-field input,
.gh-field select,
.gh-field textarea {
	width: 100%;
	border: 0;
	border-bottom: 1px solid rgba(92, 67, 50, .4);
	border-radius: 0;
	background: transparent;
	padding: 10px 0;
	font-size: 15px;
	letter-spacing: 0;
	text-transform: none;
	color: var(--carbon);
	outline: none;
	-webkit-appearance: none;
	appearance: none;
	transition: border-color .25s;
}
.gh-field textarea { resize: vertical; min-height: 110px; }
.gh-field select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%235C4332' fill='none' stroke-width='1.2'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 2px center;
	padding-right: 20px;
}
.gh-field input:focus, .gh-field select:focus, .gh-field textarea:focus { border-bottom-color: var(--nuez); }
.gh-field ::placeholder { color: rgba(43, 38, 34, .45); }
.gh-form__submit { display: flex; align-items: center; gap: 12px; }
.wpcf7 .gh-btn--outline:hover { background: var(--nuez); color: var(--lino); }
.wpcf7-not-valid-tip { font-size: 11px; letter-spacing: .02em; text-transform: none; color: var(--terra); margin-top: 6px; }
.wpcf7 .wpcf7-response-output { margin: 0 !important; padding: 0 !important; border: 0 !important; font-size: 13px; color: var(--terra); }
.wpcf7 form.sent .wpcf7-response-output {
	border-top: 1px solid rgba(92, 67, 50, .25) !important;
	padding-top: 24px !important;
	font-family: var(--serif);
	font-size: 30px;
	line-height: 1.1;
	color: var(--nuez);
}
.wpcf7-spinner { margin: 0; }
@media (max-width: 859px) {
	.gh-form__grid { grid-template-columns: 1fr; }
}

/* ==========================================================================
   Carrito
   ========================================================================== */
.gh-page--cart .gh-entry, .gh-entry--wide { max-width: none; }
.gh-carthead {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-end;
	gap: 16px;
	border-bottom: 1px solid rgba(92, 67, 50, .22);
	padding-bottom: 24px;
	margin-bottom: 48px;
}
.gh-carthead__count { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--nuez); }

.gh-cart {
	display: grid;
	grid-template-columns: minmax(0, 8fr) minmax(0, 4fr);
	gap: 64px;
	align-items: start;
}
.gh-cart__items { min-width: 0; }
.gh-cart__list { display: flex; flex-direction: column; }
.gh-cartrow {
	display: grid;
	grid-template-columns: 110px minmax(0, 1fr) auto;
	gap: 28px;
	padding: 22px 0;
	border-bottom: 1px solid var(--line);
	align-items: center;
}
.gh-cartrow__thumb {
	position: relative;
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	border-radius: 8px;
	overflow: hidden;
	background-color: var(--natural);
	background-image: repeating-linear-gradient(135deg, rgba(92, 67, 50, .08) 0 1px, transparent 1px 10px);
}
.gh-cartrow__thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gh-cartrow__info { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.gh-cartrow__cat { font-size: 9.5px; letter-spacing: .2em; text-transform: uppercase; color: var(--nuez); }
.gh-cartrow__name { font-family: var(--serif); font-size: 24px; line-height: 1.1; color: var(--nuez); }
.gh-cartrow__variant { font-size: 12.5px; color: var(--nuez); }
.gh-cartrow__unit { font-size: 12.5px; }
.gh-cartrow__note { font-size: 11.5px; color: var(--terra); }
.gh-cartrow__ctrl { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.gh-cartrow__ctrl .quantity { height: 44px; }
.gh-cartrow__ctrl .gh-qty__btn { width: 42px; font-size: 17px; }
.gh-cartrow__total { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.gh-cartrow__line { font-size: 16px; font-weight: 600; color: var(--nuez); white-space: nowrap; }
.gh-cartrow__remove { font-size: 11.5px; color: var(--nuez); text-decoration: underline; text-underline-offset: 4px; }
.gh-cart__actions {
	margin-top: 24px;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
}
.gh-cart__update {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	border: 0;
	padding: 0;
}
.gh-coupon { display: flex; align-items: center; gap: 10px; }
.gh-coupon input {
	border: 0;
	border-bottom: 1px solid rgba(92, 67, 50, .4);
	background: transparent;
	padding: 8px 0;
	font-size: 13px;
	width: 170px;
	outline: none;
}
.gh-cart__aside { position: sticky; top: calc(var(--header-h) + 32px); }
.woocommerce-cart-form.processing, .cart_totals.processing { opacity: .6; pointer-events: none; }
.blockUI.blockOverlay { background: rgba(244, 238, 230, .5) !important; }

.gh-summary {
	background: var(--natural);
	border-radius: 14px;
	padding: 36px;
	display: flex;
	flex-direction: column;
	gap: 18px;
}
.gh-summary__label { font-size: 10.5px; letter-spacing: .24em; text-transform: uppercase; color: var(--nuez); }
.gh-summary__rows { display: flex; flex-direction: column; font-size: 13.5px; }
.gh-summary__row {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 12px 0;
	border-bottom: 1px solid var(--line);
}
.gh-summary__row > span:last-child { text-align: right; }
.gh-summary__row strong { font-weight: 600; color: var(--nuez); white-space: nowrap; }
.gh-summary__total { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.gh-summary__total > span { font-family: var(--serif); font-size: 28px; color: var(--nuez); }
.gh-summary__total strong { font-size: 24px; font-weight: 600; color: var(--nuez); }
.gh-summary__total small { display: block; font-size: 11px; font-weight: 400; }
.gh-summary .wc-proceed-to-checkout a.checkout-button {
	display: flex;
	width: 100%;
	min-height: 54px;
	margin: 0;
}
.gh-summary__note {
	margin: 0;
	display: flex;
	gap: 10px;
	align-items: flex-start;
	font-size: 12.5px;
	line-height: 1.6;
	color: var(--nuez);
}
.gh-summary__note .gh-icon--leaf { margin-top: 4px; }

.gh-cartempty { display: flex; flex-direction: column; gap: 56px; }
.gh-cartempty__head { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }
.gh-cartempty .cart-empty { display: block; }

@media (max-width: 1079px) {
	.gh-cart { grid-template-columns: 1fr; gap: 32px; }
	.gh-cart__aside { position: static; }
}
@media (max-width: 859px) {
	.gh-carthead { margin-bottom: 28px; }
	.gh-cartrow { grid-template-columns: 84px minmax(0, 1fr); gap: 14px 16px; }
	.gh-cartrow__ctrl { grid-column: 1 / 3; }
	.gh-summary { padding: 26px 22px; }
}

/* ==========================================================================
   Checkout y Mi cuenta (formularios clásicos de WooCommerce)
   ========================================================================== */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
p.no-comments {
	list-style: none;
	margin: 0 0 24px;
	padding: 14px 18px;
	background: var(--natural);
	border-radius: 10px;
	font-size: 13.5px;
	color: var(--carbon);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px 16px;
}
.woocommerce-error { border-left: 3px solid var(--terra); flex-direction: column; align-items: flex-start; }
.woocommerce-error li { margin: 0; }
.woocommerce-message .button, .woocommerce-info .button {
	order: 2;
	min-height: 0;
	padding: 0;
	background: none;
	color: var(--nuez);
	text-decoration: underline;
	text-underline-offset: 4px;
	font-size: 11px;
}
.woocommerce-message .button:hover, .woocommerce-info .button:hover { background: none; color: var(--terra); }
.woocommerce-info a.showcoupon, .woocommerce-info a.showlogin { text-decoration: underline; text-underline-offset: 3px; }

.woocommerce form .form-row { display: flex; flex-direction: column; gap: 6px; margin: 0 0 18px; padding: 0; }
.woocommerce form .form-row label {
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--nuez);
	line-height: 1.5;
}
.woocommerce form .form-row label.checkbox,
.woocommerce form .form-row .woocommerce-form__label-for-checkbox {
	text-transform: none;
	letter-spacing: 0;
	font-size: 13px;
	display: flex;
	align-items: center;
	gap: 8px;
	color: var(--carbon);
}
.woocommerce form .form-row .required { color: var(--terra); text-decoration: none; border: 0; }
.woocommerce form .form-row .optional { text-transform: none; letter-spacing: 0; opacity: .7; }
.woocommerce form .form-row .input-text,
.woocommerce form .form-row select,
.woocommerce form .form-row textarea,
.woocommerce-cart-form .input-text {
	width: 100%;
	border: 0;
	border-bottom: 1px solid rgba(92, 67, 50, .4);
	border-radius: 0;
	background: transparent;
	padding: 10px 0;
	font-size: 15px;
	color: var(--carbon);
	outline: none;
	transition: border-color .25s;
}
.woocommerce form .form-row .input-text:focus,
.woocommerce form .form-row select:focus,
.woocommerce form .form-row textarea:focus { border-bottom-color: var(--nuez); }
.woocommerce form .form-row.woocommerce-invalid .input-text { border-bottom-color: var(--terra); }
.woocommerce form .form-row textarea { min-height: 90px; resize: vertical; }
.woocommerce form .form-row input[type="checkbox"],
.woocommerce form .form-row input[type="radio"],
#payment input[type="radio"],
#shipping_method input[type="radio"] { accent-color: var(--terra); width: 16px; height: 16px; margin: 0; }
.woocommerce-input-wrapper { display: block; width: 100%; }
.woocommerce-input-wrapper strong { font-size: 15px; font-weight: 500; }

.select2-container--default .select2-selection--single {
	height: 44px;
	border: 0;
	border-bottom: 1px solid rgba(92, 67, 50, .4);
	border-radius: 0;
	background: transparent;
}
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 44px; padding-left: 0; font-size: 15px; color: var(--carbon); }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 42px; }
.select2-dropdown { border-color: var(--line-strong); background: var(--lino); }
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[data-selected] { background: var(--nuez); }

.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper,
.woocommerce-address-fields__field-wrapper {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 22px;
}
.woocommerce-billing-fields__field-wrapper .form-row,
.woocommerce-shipping-fields__field-wrapper .form-row,
.woocommerce-address-fields__field-wrapper .form-row { grid-column: 1 / -1; }
.woocommerce-billing-fields__field-wrapper .form-row-first,
.woocommerce-shipping-fields__field-wrapper .form-row-first,
.woocommerce-address-fields__field-wrapper .form-row-first { grid-column: 1; }
.woocommerce-billing-fields__field-wrapper .form-row-last,
.woocommerce-shipping-fields__field-wrapper .form-row-last,
.woocommerce-address-fields__field-wrapper .form-row-last { grid-column: 2; }

.woocommerce h3, .woocommerce h2 { font-family: var(--serif); font-weight: 400; color: var(--nuez); }
.woocommerce form.checkout h3,
#order_review_heading { font-size: 32px; margin: 0 0 20px; }
#ship-to-different-address { font-family: var(--sans); font-size: 13px; }
#ship-to-different-address label { display: flex; align-items: center; gap: 8px; cursor: pointer; }

form.checkout {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	grid-template-rows: auto 1fr;
	gap: 0 64px;
	align-items: start;
}
form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
form.checkout #customer_details { grid-column: 1; grid-row: 1 / span 2; }
form.checkout #order_review_heading { grid-column: 2; grid-row: 1; margin-top: 0; }
form.checkout #order_review { grid-column: 2; grid-row: 2; }
.col2-set { display: flex; flex-direction: column; gap: 36px; }
.col2-set .col-1, .col2-set .col-2 { width: 100%; float: none; }

#order_review {
	background: var(--natural);
	border-radius: 14px;
	padding: 36px;
	position: sticky;
	top: calc(var(--header-h) + 32px);
}
.woocommerce table.shop_table { width: 100%; border-collapse: collapse; font-size: 13.5px; margin: 0; border: 0; }
.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
	padding: 12px 0;
	border-bottom: 1px solid var(--line);
	text-align: left;
	vertical-align: top;
	font-weight: 400;
}
.woocommerce table.shop_table th { font-weight: 500; }
.woocommerce-checkout-review-order-table td:last-child,
.woocommerce-checkout-review-order-table tfoot th + td,
.woocommerce-checkout-review-order-table thead th:last-child { text-align: right; }
.woocommerce-checkout-review-order-table thead th { font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase; color: var(--nuez); }
.woocommerce-checkout-review-order-table .product-quantity { font-weight: 600; color: var(--nuez); }
.woocommerce-checkout-review-order-table .variation { margin: 4px 0 0; font-size: 12px; color: var(--nuez); }
.woocommerce-checkout-review-order-table .variation dt, .woocommerce-checkout-review-order-table .variation dd { display: inline; margin: 0; }
.woocommerce-checkout-review-order-table .variation dd p { display: inline; margin: 0; }
.woocommerce table.shop_table .order-total th { font-family: var(--serif); font-size: 26px; color: var(--nuez); font-weight: 400; border-bottom: 0; }
.woocommerce table.shop_table .order-total td { font-size: 20px; font-weight: 600; color: var(--nuez); border-bottom: 0; }
.woocommerce table.shop_table .fee td { color: var(--terra); font-weight: 600; }
#shipping_method { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
#shipping_method li { display: flex; align-items: center; justify-content: flex-end; gap: 8px; margin: 0; text-align: right; }
#shipping_method li label { font-size: 13px; }
.woocommerce-shipping-destination, .woocommerce-shipping-contents { font-size: 11.5px; color: var(--nuez); margin: 6px 0 0; }

#payment { margin-top: 20px; }
#payment ul.payment_methods { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
#payment ul.payment_methods li { padding: 14px 0; border-bottom: 1px solid var(--line); }
#payment ul.payment_methods li > label { font-size: 14px; font-weight: 500; color: var(--nuez); cursor: pointer; margin-left: 8px; }
#payment ul.payment_methods li img { display: inline-block; max-height: 22px; vertical-align: middle; margin-left: 6px; }
#payment .payment_box { font-size: 12.5px; line-height: 1.6; padding: 8px 0 0 24px; color: var(--nuez); }
#payment .payment_box p { margin: 0 0 8px; }
#payment .payment_box p:last-child { margin: 0; }
#payment .place-order { margin: 20px 0 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.woocommerce-terms-and-conditions-wrapper { font-size: 12px; line-height: 1.6; }
.woocommerce-privacy-policy-text p { margin: 0; }
#place_order { width: 100%; min-height: 54px; }
.woocommerce-form-coupon, .woocommerce-form-login {
	background: var(--natural);
	border-radius: 14px;
	padding: 24px;
	margin: 0 0 24px;
}
.woocommerce-form-coupon p:first-child { margin-top: 0; }
.woocommerce form.checkout_coupon { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; }
.woocommerce form.checkout_coupon .form-row { margin: 0; flex: 1; min-width: 160px; }
.woocommerce form.checkout_coupon > p:not(.form-row) { width: 100%; margin: 0; font-size: 13px; }

/* Pedido recibido */
.woocommerce-order { font-size: 14px; }
ul.woocommerce-order-overview {
	list-style: none;
	margin: 0 0 36px;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 12px;
}
ul.woocommerce-order-overview li {
	background: var(--natural);
	border-radius: 10px;
	padding: 16px 18px;
	font-size: 10.5px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--nuez);
}
ul.woocommerce-order-overview li strong { display: block; margin-top: 6px; font-size: 14px; letter-spacing: 0; text-transform: none; color: var(--carbon); font-weight: 600; }
.woocommerce-thankyou-order-received { font-family: var(--serif); font-size: 28px; color: var(--nuez); margin: 0 0 24px; }
.woocommerce-order-details, .woocommerce-customer-details, .woocommerce-bacs-bank-details { margin-top: 40px; }
.woocommerce-bacs-bank-details ul { list-style: none; padding: 0; }
.woocommerce-customer-details address { font-style: normal; line-height: 1.7; border: 0; padding: 0; }

/* Mi cuenta */
.woocommerce-account .woocommerce { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 56px; align-items: start; }
.woocommerce-account .woocommerce > .woocommerce-notices-wrapper,
.woocommerce-account:not(.logged-in) .woocommerce > * { grid-column: 1 / -1; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--line); }
.woocommerce-MyAccount-navigation a { display: block; padding: 12px 0; font-size: 13.5px; }
.woocommerce-MyAccount-navigation .is-active a { font-weight: 600; color: var(--terra); }
.woocommerce-account .u-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px; }
.woocommerce-account .u-columns h2 { font-size: 34px; margin: 0 0 20px; }
.woocommerce-form-login__rememberme { margin: 0 0 12px; }
.woocommerce-LostPassword { font-size: 12.5px; }
.woocommerce-MyAccount-content table.shop_table th, .woocommerce-MyAccount-content table.shop_table td { padding-right: 12px; }

@media (max-width: 1079px) {
	form.checkout { grid-template-columns: 1fr; }
	form.checkout #customer_details,
	form.checkout #order_review_heading,
	form.checkout #order_review { grid-column: 1; grid-row: auto; }
	form.checkout #order_review_heading { margin-top: 36px; }
	#order_review { position: static; }
}
@media (max-width: 859px) {
	#order_review { padding: 24px 20px; }
	.woocommerce-billing-fields__field-wrapper,
	.woocommerce-shipping-fields__field-wrapper,
	.woocommerce-address-fields__field-wrapper { grid-template-columns: 1fr; }
	.woocommerce-billing-fields__field-wrapper .form-row-last,
	.woocommerce-shipping-fields__field-wrapper .form-row-last,
	.woocommerce-address-fields__field-wrapper .form-row-last { grid-column: 1; }
	.woocommerce-account .woocommerce, .woocommerce-account .u-columns { grid-template-columns: 1fr; gap: 32px; }
}

/* ==========================================================================
   Contenido de páginas y entradas
   ========================================================================== */
.gh-entry { max-width: 760px; font-size: 15px; line-height: 1.8; }
.gh-entry.gh-entry--wide { max-width: none; }

/* Seguimiento del envío (Mi cuenta / pedido recibido) */
.gh-tracking-box { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; background: var(--natural); border-radius: 14px; padding: 24px 28px; margin: 32px 0; }
.gh-tracking-box__kicker { font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase; color: var(--salvia); font-weight: 600; }
.gh-tracking-box__code { font-family: var(--serif); font-size: 30px; font-weight: 500; color: var(--nuez); letter-spacing: .04em; }
.gh-tracking-box p { margin: 0 0 6px; font-size: 14px; }
.gh-pay-steps { margin: 4px 0 10px; padding-left: 20px; font-size: 14.5px; line-height: 1.7; }

/* Checkout: sugerencia de email */
.gh-email-hint { margin: 6px 0 0; font-size: 13px; color: var(--terra); }
.gh-email-hint button { background: none; border: 0; padding: 0; font: inherit; font-weight: 600; color: var(--terra); text-decoration: underline; cursor: pointer; }
.gh-entry > *:first-child { margin-top: 0; }
.gh-entry h2 { font-size: 40px; margin: 48px 0 16px; }
.gh-entry h3 { font-size: 30px; margin: 40px 0 12px; }
.gh-entry h4 { font-size: 24px; margin: 32px 0 10px; }
.gh-entry p, .gh-entry ul, .gh-entry ol { margin: 0 0 18px; }
.gh-entry a:not(.gh-btn):not(.button) { text-decoration: underline; text-underline-offset: 4px; text-decoration-color: rgba(92, 67, 50, .35); }
.gh-entry blockquote { margin: 32px 0; padding: 0 0 0 24px; border-left: 2px solid var(--salvia); font-family: var(--serif); font-size: 26px; line-height: 1.3; color: var(--nuez); }
.gh-entry img { border-radius: 10px; }
.gh-entry hr { border: 0; border-top: 1px solid var(--line); margin: 40px 0; }
.gh-entry table:not(.shop_table) { width: 100%; border-collapse: collapse; font-size: 14px; }
.gh-entry table:not(.shop_table) td, .gh-entry table:not(.shop_table) th { padding: 10px 12px 10px 0; border-bottom: 1px solid var(--line); text-align: left; }

.gh-posts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px 32px; }
.gh-post-card { display: flex; flex-direction: column; gap: 10px; }
.gh-post-card__media { display: block; aspect-ratio: 4 / 3; margin-bottom: 6px; }
.gh-post-card__title { margin: 0; font-size: 28px; }
.gh-post-card p { margin: 0; font-size: 13.5px; }
.nav-links { display: flex; gap: 8px; margin-top: 48px; }
.nav-links .page-numbers { padding: 8px 14px; border: 1px solid var(--line-strong); border-radius: 999px; font-size: 12.5px; }
.nav-links .current { background: var(--nuez); color: var(--lino); }
@media (max-width: 859px) {
	.gh-posts { grid-template-columns: 1fr; }
	.gh-entry h2 { font-size: 32px; }
}

/* Editor de bloques: alineaciones */
.alignwide { max-width: var(--max); }
.alignfull { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); }
.wp-block-image figcaption, .wp-caption-text { font-size: 12px; color: var(--nuez); }
