/*
 * Vengala Tienda — catálogo, ficha, carrito del header, carrito, checkout y gracias.
 * Blanco, interfaz negra y carbón, detalles dorados. Todo va bajo body.vt-on o clases vt-*
 * porque el tema estiliza botones, enlaces, listas y campos de forma global.
 */

body.vt-on {
	--vt-ink: #141414;
	--vt-ink-2: #3d3d3d;
	--vt-muted: #6b6b6b;
	--vt-line: #e6e4e1;
	--vt-line-2: #d4d1cc;
	--vt-soft: #f7f6f4;
	--vt-gold: #a48c54;
	--vt-gold-text: #7d6a3f;
	--vt-danger: #9d3737;
	--vt-ok: #2f6b4f;
	--vt-radius: 14px;
	--vt-field: 12px;
	--vt-font: 'Jost', 'Montserrat', system-ui, sans-serif;
	--vt-label: 'Montserrat', 'Jost', system-ui, sans-serif;
	--vt-ease: cubic-bezier(.22, .8, .24, 1);
	--vt-head: 76px;
}
@media (max-width: 1099px) { body.vt-on { --vt-head: 64px; } }

body.vt { background: #fff; }

.vt-on .vt-wrap,
.vt-on .vt-mini,
.vt-on .vt-lightbox {
	font-family: var(--vt-font);
	color: var(--vt-ink);
	-webkit-font-smoothing: antialiased;
}
.vt-on .vt-wrap *, .vt-on .vt-wrap *::before, .vt-on .vt-wrap *::after,
.vt-on .vt-mini *, .vt-on .vt-mini *::before, .vt-on .vt-mini *::after,
.vt-on .vt-banner, .vt-on .vt-stone, .vt-on .vt-stone * { box-sizing: border-box; }

.vt-on .vt-wrap { max-width: 1320px; margin: 0 auto; padding: 0 40px; }
@media (max-width: 767px) { .vt-on .vt-wrap { padding: 0 16px; } }

/* Lo que el tema pone alrededor de la página y no hace falta aquí. */
body.vt .page-title-bar, body.vt #page-title-bar, body.vt .minimog-title-bar,
body.vt .page-mobile-tabs, body.vt .entry-product-section-heading { display: none !important; }
body.vt #page-main-content, body.vt .page-content, body.vt .site-content { padding-top: 0 !important; padding-bottom: 0 !important; margin-top: 0 !important; }

/* ── Tipos ── */
/* Base con especificidad baja (0,1,1): gana al tema (h1, ul, a…) y pierde con cualquier clase vt-*. */
body.vt-on :where(.vt-wrap, .vt-mini, .vt-stone) :where(h1, h2, h3, p, ul, ol, dl, dd, figure) { margin: 0; }
body.vt-on :where(.vt-wrap, .vt-mini, .vt-stone) :where(h1, h2, h3) { font-family: var(--vt-font); color: var(--vt-ink); letter-spacing: -.01em; text-transform: none; }
body.vt-on :where(.vt-wrap, .vt-mini, .vt-stone) :where(ul, ol) { list-style: none; padding: 0; }
body.vt-on :where(.vt-wrap, .vt-mini, .vt-stone) :where(li) { margin: 0; }
body.vt-on :where(.vt-wrap, .vt-mini, .vt-stone) :where(a) { color: inherit; text-decoration: none; }
body.vt-on :where(.vt-wrap, .vt-mini, .vt-stone) :where(img) { max-width: 100%; height: auto; display: block; }

.vt-on .vt-h1 { font-size: clamp(30px, 4.2vw, 46px); font-weight: 500; line-height: 1.08; letter-spacing: -.02em; }
.vt-on .vt-h2 { font-size: clamp(24px, 2.6vw, 30px); font-weight: 400; line-height: 1.2; }
.vt-on .vt-h3 { font-size: 21px; font-weight: 500; line-height: 1.25; }
body.vt-on .vt-eyebrow {
	font-family: var(--vt-label);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--vt-muted);
	line-height: 1.4;
}
body.vt-on .vt-gold { color: var(--vt-gold-text); }
body.vt-on .vt-muted { color: var(--vt-muted); }
.vt-on .vt-small { font-size: 13px; }
.vt-on .vt-center { text-align: center; }
.vt-on .vt-sr {
	position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important;
	overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important;
}
.vt-on .vt-i { display: block; flex: none; }

/* ── Botones ── */
body.vt-on .vt-btn {
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	height: 46px;
	padding: 0 24px;
	margin: 0;
	border: 1px solid var(--vt-ink);
	border-radius: 999px;
	background: var(--vt-ink);
	color: #fff;
	font: 500 15px/1 var(--vt-font);
	letter-spacing: 0;
	text-transform: none;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	box-shadow: none;
	transition: background-color .2s ease, border-color .2s ease, color .2s ease, transform .2s var(--vt-ease);
}
body.vt-on .vt-btn:hover { background: #000; border-color: #000; color: #fff; }
body.vt-on .vt-btn:active { transform: scale(.98); }
body.vt-on .vt-btn--lg { height: 52px; font-size: 16px; padding: 0 28px; }
body.vt-on .vt-btn--sm { height: 40px; padding: 0 18px; font-size: 14px; gap: 8px; }
body.vt-on .vt-btn--block { display: flex; width: 100%; }
body.vt-on .vt-btn--outline { background: #fff; color: var(--vt-ink); border-color: var(--vt-gold); }
body.vt-on .vt-btn--outline:hover { background: #fbf8f2; color: var(--vt-ink); border-color: var(--vt-gold-text); }
body.vt-on .vt-btn--ghost { background: #fff; color: var(--vt-ink); border-color: var(--vt-line-2); }
body.vt-on .vt-btn--ghost:hover { background: var(--vt-soft); color: var(--vt-ink); border-color: var(--vt-ink); }
body.vt-on .vt-btn.is-disabled,
body.vt-on .vt-btn[aria-disabled="true"] { background: #ecebe8; border-color: #ecebe8; color: #77736d; cursor: not-allowed; transform: none; }
body.vt-on .vt-btn.is-busy { opacity: .7; pointer-events: none; }
body.vt-on .vt-btn--arrow::after {
	content: '';
	width: 18px; height: 18px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
}
body.vt-on .vt-btn:focus-visible,
body.vt-on .vt-link:focus-visible,
body.vt-on .vt-iconbtn:focus-visible,
body.vt-on .vt-pill:focus-visible,
body.vt-on .vt-stone-chip:focus-visible,
body.vt-on .vt-qty__btn:focus-visible,
body.vt-on .vt-acc > summary:focus-visible,
body.vt-on .vt-card a:focus-visible { outline: 2px solid var(--vt-gold); outline-offset: 3px; }

body.vt-on .vt-link {
	appearance: none; background: none; border: 0; padding: 0; margin: 0; cursor: pointer;
	font: inherit; font-size: 15px; color: var(--vt-ink);
	text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px;
}
body.vt-on .vt-link:hover { color: #000; text-decoration-color: var(--vt-gold); }
body.vt-on .vt-link--muted { color: var(--vt-muted); font-size: 14px; }

body.vt-on .vt-iconbtn {
	appearance: none; display: grid; place-items: center;
	width: 44px; height: 44px; padding: 0; margin: 0;
	border: 0; border-radius: 50%; background: transparent; color: var(--vt-ink); cursor: pointer; box-shadow: none;
}
body.vt-on .vt-iconbtn:hover { background: var(--vt-soft); color: var(--vt-ink); }

.vt-on .vt-chip {
	display: inline-flex; align-items: center; height: 26px; padding: 0 12px;
	border-radius: 999px; background: #efeeeb; color: #4d4a45;
	font: 500 13px/1 var(--vt-font);
}
.vt-on .vt-chip--gold { background: #f4efe3; color: var(--vt-gold-text); }

/* ── Migas ── */
.vt-on .vt-crumbs { padding: 28px 0 22px; font-size: 14px; color: var(--vt-muted); }
.vt-on .vt-crumbs ol { display: flex; flex-wrap: wrap; gap: 6px; }
.vt-on .vt-crumbs li { display: inline-flex; align-items: center; gap: 6px; }
.vt-on .vt-crumbs li + li::before { content: '/'; color: #b3b0ab; }
.vt-on .vt-crumbs a:hover { color: var(--vt-ink); }
.vt-on .vt-crumbs [aria-current] { color: var(--vt-ink-2); }

/* ── Precio ── */
.vt-on .vt-price { font-size: 18px; font-weight: 400; color: var(--vt-ink); white-space: nowrap; }
.vt-on .vt-price del { color: var(--vt-muted); font-size: .8em; margin-right: 4px; }
.vt-on .vt-price ins { text-decoration: none; }
.vt-on .vt-price--lg { font-size: 30px; font-weight: 400; letter-spacing: -.01em; }
body.vt-on .vt-price :is(.price, .amount, .woocommerce-Price-amount, bdi) { font-size: inherit; font-weight: inherit; color: inherit; line-height: inherit; }

/* ─────────────────────────── Catálogo ─────────────────────────── */

.vt-on .vt-banner { width: 100%; aspect-ratio: 1920 / 376; min-height: 160px; overflow: hidden; background: #efe7dc; }
.vt-on .vt-banner img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 767px) { .vt-on .vt-banner { aspect-ratio: 16 / 7; } .vt-on .vt-banner img { object-position: 45% 50%; } }

/* Selector de categorías */
.vt-on .vt-pills { display: flex; justify-content: center; padding: 18px 0 16px; border-bottom: 1px solid var(--vt-line); }
.vt-on .vt-pills__track {
	display: inline-flex; gap: 4px; padding: 5px;
	border: 1px solid var(--vt-line-2); border-radius: 999px; background: #fff;
	max-width: 100%; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch;
}
.vt-on .vt-pills__track::-webkit-scrollbar { display: none; }
body.vt-on .vt-pill {
	flex: none; display: inline-flex; align-items: center; height: 38px; padding: 0 22px;
	border-radius: 999px; color: var(--vt-ink-2); font-size: 15px; white-space: nowrap;
	transition: background-color .2s ease, color .2s ease;
}
body.vt-on .vt-pill:hover { background: var(--vt-soft); color: var(--vt-ink); }
body.vt-on .vt-pill.is-active { background: var(--vt-ink); color: #fff; }
@media (max-width: 767px) {
	.vt-on .vt-pills { justify-content: flex-start; margin: 0 -16px; padding: 14px 16px; }
	body.vt-on .vt-pill { padding: 0 16px; height: 36px; font-size: 14px; }
}

/* Piedras */
.vt-on .vt-stones { padding: 18px 0 20px; border-bottom: 1px solid var(--vt-line); }
.vt-on .vt-stones .vt-eyebrow { margin-bottom: 8px; }
.vt-on .vt-stones__list {
	display: flex; justify-content: space-between; gap: 8px;
	overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; scroll-snap-type: x proximity;
	padding: 4px 2px;
}
.vt-on .vt-stones__list::-webkit-scrollbar { display: none; }
.vt-on .vt-stones__list > li { flex: 1 0 auto; scroll-snap-align: start; }
body.vt-on .vt-stone-chip {
	display: flex; flex-direction: column; align-items: center; gap: 6px; min-width: 88px; padding: 6px 4px 8px;
	border-radius: 12px; color: var(--vt-ink-2); font-size: 14px; text-align: center; line-height: 1.2;
	transition: background-color .2s ease;
}
body.vt-on .vt-stone-chip img { width: 64px; height: 64px; object-fit: contain; transition: transform .35s var(--vt-ease); }
body.vt-on .vt-stone-chip:hover img { transform: translateY(-3px) rotate(-4deg); }
body.vt-on .vt-stone-chip.is-active { background: var(--vt-soft); color: var(--vt-ink); }
body.vt-on .vt-stone-chip.is-active span:last-child { text-decoration: underline; text-decoration-color: var(--vt-gold); text-underline-offset: 4px; }
.vt-on .vt-stone-chip__more {
	display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%;
	border: 1px dashed var(--vt-line-2); color: var(--vt-muted);
}
@media (max-width: 767px) {
	.vt-on .vt-stones__list { justify-content: flex-start; margin: 0 -16px; padding: 4px 12px; }
	.vt-on .vt-stones__list > li { flex: none; }
	body.vt-on .vt-stone-chip { min-width: 76px; font-size: 13px; }
	body.vt-on .vt-stone-chip img, .vt-on .vt-stone-chip__more { width: 54px; height: 54px; }
}
.vt-on .vt-stones--center { border: 0; margin-top: 48px; text-align: center; }
.vt-on .vt-stones--center .vt-stones__list { justify-content: center; flex-wrap: wrap; }
.vt-on .vt-stones--center .vt-stones__list > li { flex: none; }

/* Barra de "Nuestra selección" */
.vt-on .vt-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 22px 0 18px; }
.vt-on .vt-toolbar__title { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 18px; }
.vt-on .vt-toolbar__title .vt-eyebrow { font-size: 12px; letter-spacing: .2em; }
.vt-on .vt-toolbar__title .vt-muted { font-size: 15px; }
.vt-on .vt-toolbar .woocommerce-ordering select {
	height: 40px; padding: 0 36px 0 16px; border: 1px solid var(--vt-gold); border-radius: 999px; background-color: #fff; font: 14px var(--vt-font);
}
@media (max-width: 480px) {
	body.vt-on .vt-toolbar .vt-btn span { display: none; }
	body.vt-on .vt-toolbar .vt-btn { width: 44px; height: 44px; padding: 0; }
}

/* Rejilla y tarjetas */
.vt-on .vt-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 22px; }
.vt-on .vt-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1099px) { .vt-on .vt-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) { .vt-on .vt-grid, .vt-on .vt-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 12px; } }

.vt-on .vt-card { display: flex; flex-direction: column; min-width: 0; }
.vt-on .vt-card__media {
	position: relative; display: block; aspect-ratio: 1; overflow: hidden;
	border: 1px solid var(--vt-line); border-radius: var(--vt-radius); background: #fff;
	transition: border-color .25s ease, box-shadow .35s var(--vt-ease);
}
.vt-on .vt-card__media img { width: 100%; height: 100%; object-fit: contain; padding: 6%; transition: transform .6s var(--vt-ease); }
.vt-on .vt-card:hover .vt-card__media { border-color: var(--vt-line-2); box-shadow: 0 18px 40px -28px rgba(20, 20, 20, .35); }
.vt-on .vt-card:hover .vt-card__media img { transform: scale(1.035); }
.vt-on .vt-card.is-out .vt-card__media img { opacity: .55; }
.vt-on .vt-card__flag { position: absolute; top: 12px; left: 12px; }
.vt-on .vt-card__body { display: flex; flex-direction: column; flex: 1; padding: 14px 2px 0; }
.vt-on .vt-card__body .vt-eyebrow { font-size: 10px; margin-bottom: 3px; }
.vt-on .vt-card__title { font-size: 18px; font-weight: 500; line-height: 1.25; letter-spacing: -.005em; }
.vt-on .vt-card__title a:hover { text-decoration: underline; text-decoration-color: var(--vt-gold); text-underline-offset: 4px; }
.vt-on .vt-card__stones { margin-top: 3px; font-size: 14px; color: var(--vt-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.vt-on .vt-card__foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 12px; }
body.vt-on .vt-card .added_to_cart, body.vt-on .vt-buy .added_to_cart { display: none !important; }
body.vt-on .vt-card .add_to_cart_button.loading { opacity: .7; pointer-events: none; }
body.vt-on .vt-card .add_to_cart_button.loading::after,
body.vt-on .vt-card .add_to_cart_button.added::after { display: none !important; }
@media (max-width: 767px) {
	.vt-on .vt-card__title { font-size: 15px; }
	.vt-on .vt-card__stones { font-size: 13px; }
	.vt-on .vt-price { font-size: 16px; }
	body.vt-on .vt-card .vt-btn--sm { width: 40px; height: 40px; padding: 0; }
	body.vt-on .vt-card .vt-btn--sm span { display: none; }
	.vt-on .vt-card__flag { top: 8px; left: 8px; }
}

.vt-on .vt-more { display: flex; justify-content: center; padding: 44px 0 16px; }
.vt-on .vt-more .vt-btn { min-width: 250px; }
.vt-on .vt-archive { padding-bottom: 72px; }
.vt-on .vt-empty { padding: 64px 0; text-align: center; display: grid; justify-items: center; gap: 18px; font-size: 17px; }

/* Cabecera de la piedra */
.vt-on .vt-stone { background: radial-gradient(900px 360px at 22% 50%, #f6f1e7 0%, rgba(246, 241, 231, 0) 70%), #fff; border-bottom: 1px solid var(--vt-line); }
.vt-on .vt-stone__in { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: center; gap: 48px; padding-top: 40px; padding-bottom: 40px; }
.vt-on .vt-stone--noimg .vt-stone__in { grid-template-columns: 1fr; max-width: 820px; }
.vt-on .vt-stone__img { position: relative; display: grid; place-items: center; padding: 10px 0 34px; }
@keyframes vt-float { 50% { transform: translateY(-8px) rotate(-2deg); } }
.vt-on .vt-stone__name { font-size: clamp(38px, 5vw, 60px); font-weight: 400; line-height: 1.02; letter-spacing: -.02em; margin: 8px 0 12px; }
.vt-on .vt-stone__tag { font-size: 20px; font-style: italic; font-weight: 300; color: var(--vt-ink-2); }
.vt-on .vt-stone__meaning { margin-top: 14px; max-width: 56ch; font-size: 17px; line-height: 1.6; color: var(--vt-ink-2); }
.vt-on .vt-stone__aw { margin-top: 20px; }
.vt-on .vt-stone__aw ul { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.vt-on .vt-stone__aw li { padding: 7px 14px; border: 1px solid #e3d9c4; border-radius: 999px; font-size: 14px; color: var(--vt-ink-2); background: rgba(255, 255, 255, .7); }
@media (max-width: 767px) {
	.vt-on .vt-stone__in { grid-template-columns: 1fr; gap: 12px; padding-top: 24px; padding-bottom: 28px; text-align: center; }
	.vt-on .vt-stone__img { padding-bottom: 26px; }
	.vt-on .vt-stone__meaning { margin-left: auto; margin-right: auto; font-size: 16px; }
	.vt-on .vt-stone__aw ul { justify-content: center; }
	.vt-on .vt-stone__tag { font-size: 18px; }
}


/* ─────────────────────────── Ficha de producto ─────────────────────────── */

.vt-on .vt-single { padding-bottom: 80px; }
.vt-on .vt-product { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr); gap: 56px; align-items: start; }
@media (max-width: 999px) { .vt-on .vt-product { grid-template-columns: 1fr; gap: 28px; } }

.vt-on .vt-gallery { position: sticky; top: calc(var(--vt-head) + 20px); min-width: 0; }
@media (max-width: 999px) { .vt-on .vt-gallery { position: static; } }
.vt-on .vt-gallery__stage { position: relative; border: 1px solid var(--vt-line); border-radius: var(--vt-radius); overflow: hidden; background: #fff; }
.vt-on .vt-gallery__track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; scroll-behavior: smooth; }
.vt-on .vt-gallery__track::-webkit-scrollbar { display: none; }
.vt-on .vt-gallery__track:focus-visible { outline: 2px solid var(--vt-gold); outline-offset: -2px; }
.vt-on .vt-gallery__slide { flex: 0 0 100%; aspect-ratio: 1; scroll-snap-align: center; display: grid; place-items: center; cursor: zoom-in; }
.vt-on .vt-gallery__slide img { width: 100%; height: 100%; object-fit: contain; padding: 5%; }
body.vt-on .vt-gallery__zoom { position: absolute; top: 14px; right: 14px; width: 40px; height: 40px; background: #fff; border: 1px solid var(--vt-line); }
body.vt-on .vt-gallery__nav { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; background: rgba(255, 255, 255, .9); border: 1px solid var(--vt-line); }
body.vt-on .vt-gallery__nav--prev { left: 12px; }
body.vt-on .vt-gallery__nav--next { right: 12px; }
@media (min-width: 1000px) { body.vt-on .vt-gallery__nav { opacity: 0; transition: opacity .2s ease; } .vt-on .vt-gallery__stage:hover .vt-gallery__nav { opacity: 1; } }
.vt-on .vt-gallery__thumbs { display: flex; gap: 10px; margin-top: 14px; overflow-x: auto; scrollbar-width: none; }
body.vt-on .vt-gallery__thumb {
	appearance: none; flex: none; width: 88px; height: 88px; padding: 4px; margin: 0; cursor: pointer;
	border: 1px solid var(--vt-line); border-radius: 10px; background: #fff; box-shadow: none;
}
body.vt-on .vt-gallery__thumb img { width: 100%; height: 100%; object-fit: contain; }
body.vt-on .vt-gallery__thumb.is-active { border-color: var(--vt-ink); }
@media (max-width: 767px) { body.vt-on .vt-gallery__thumb { width: 64px; height: 64px; } }

.vt-on .vt-summary { padding-top: 6px; min-width: 0; }
.vt-on .vt-summary__title { font-size: clamp(30px, 3.4vw, 40px); font-weight: 500; line-height: 1.1; letter-spacing: -.02em; margin: 8px 0 14px; }
.vt-on .vt-summary__price { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; }
.vt-on .vt-summary__short { margin-top: 18px; font-size: 17px; line-height: 1.6; color: var(--vt-ink-2); }
.vt-on .vt-summary__short p + p { margin-top: 8px; }
.vt-on .vt-summary__stones { margin-top: 22px; padding: 18px 0; border-top: 1px solid var(--vt-line); border-bottom: 1px solid var(--vt-line); }
.vt-on .vt-summary__stones ul { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 10px; }
.vt-on .vt-summary__stones a { display: inline-flex; align-items: center; gap: 12px; font-size: 16px; color: var(--vt-ink); }
.vt-on .vt-summary__stones img { width: 52px; height: 52px; object-fit: contain; transition: transform .35s var(--vt-ease); }
.vt-on .vt-summary__stones a:hover img { transform: rotate(-6deg) scale(1.06); }
.vt-on .vt-summary__stones a:hover span { text-decoration: underline; text-decoration-color: var(--vt-gold); text-underline-offset: 4px; }

.vt-on .vt-buybox { display: grid; gap: 12px; margin-top: 22px; }
.vt-on .vt-buybox > .vt-muted { font-size: 16px; }
.vt-on .vt-buybox > .vt-link { justify-self: start; }
.vt-on .vt-buy { display: grid; gap: 12px; margin: 0; }
.vt-on .vt-buy__row { display: flex; gap: 12px; }
body.vt-on .vt-buy__add { flex: 1; }
.vt-on .vt-buy__msg { min-height: 0; font-size: 14px; color: var(--vt-danger); }
.vt-on .vt-buy__msg:empty { display: none; }
.vt-on .vt-buy__msg.is-ok { color: var(--vt-ok); }
.vt-on .vt-ask { display: inline-flex; align-items: center; gap: 10px; margin-top: 20px; font-size: 15px; color: var(--vt-ink-2); }
.vt-on .vt-ask:hover span { text-decoration: underline; text-underline-offset: 4px; }

/* Selector de cantidad */
.vt-on .vt-qty {
	display: inline-flex; align-items: center; justify-content: space-between; flex: none;
	height: 52px; min-width: 128px; padding: 0 6px;
	border: 1px solid var(--vt-line-2); border-radius: 999px; background: #fff;
}
body.vt-on .vt-qty__btn {
	appearance: none; display: grid; place-items: center; width: 38px; height: 38px; padding: 0; margin: 0;
	border: 0 !important; border-radius: 50%; background: transparent !important; color: var(--vt-ink) !important; cursor: pointer; box-shadow: none;
}
body.vt-on .vt-qty__btn:hover { background: var(--vt-soft) !important; }
body.vt-on .vt-qty__btn:disabled { color: #c3c0bb !important; cursor: default; background: transparent !important; opacity: 1 !important; }
body.vt-on .vt-qty__val {
	width: 34px; height: auto; padding: 0; margin: 0; border: 0 !important; background: none !important; box-shadow: none !important;
	text-align: center; font: 400 17px/1 var(--vt-font); color: var(--vt-ink); -moz-appearance: textfield;
}
body.vt-on .vt-qty__val::-webkit-outer-spin-button, body.vt-on .vt-qty__val::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.vt-on .vt-qty--sm, .vt-on .vt-mini .vt-qty { height: 42px; min-width: 116px; }

/* Acordeones */
.vt-on .vt-accs { margin-top: 26px; border-top: 1px solid var(--vt-line); }
.vt-on .vt-acc { border-bottom: 1px solid var(--vt-line); }
.vt-on .vt-acc > summary {
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
	min-height: 56px; padding: 12px 2px; cursor: pointer; list-style: none;
	font-size: 17px; font-weight: 400; color: var(--vt-ink);
}
.vt-on .vt-acc > summary::-webkit-details-marker { display: none; }
.vt-on .vt-acc > summary > span { display: inline-flex; align-items: center; gap: 12px; }
.vt-on .vt-acc > summary > i { position: relative; flex: none; width: 16px; height: 16px; }
.vt-on .vt-acc > summary > i::before, .vt-on .vt-acc > summary > i::after {
	content: ''; position: absolute; left: 0; right: 0; top: 50%; height: 1.5px; margin-top: -.75px; background: var(--vt-ink); border-radius: 2px;
	transition: transform .3s var(--vt-ease);
}
.vt-on .vt-acc > summary > i::after { transform: rotate(90deg); }
.vt-on .vt-acc[open] > summary > i::after { transform: rotate(0deg); }
.vt-on .vt-acc__body { padding: 0 2px 20px; font-size: 16px; line-height: 1.65; color: var(--vt-ink-2); }
.vt-on .vt-acc__body p + p, .vt-on .vt-acc__body ul, .vt-on .vt-acc__body ol { margin-top: 10px; }
.vt-on .vt-acc__body ul { list-style: disc; padding-left: 20px; }
.vt-on .vt-acc__body [style*="text-align: center"], .vt-on .vt-acc__body .aligncenter { text-align: left !important; margin-left: 0; }
.vt-on .vt-acc__body img { max-width: 220px; border-radius: 10px; margin: 8px 0; }
.vt-on .vt-acc__body > h2:first-child, .vt-on .vt-acc__body > h3:first-child { display: none; }
.vt-on .vt-acc__body #reviews .comment-form input:not([type="checkbox"]):not([type="submit"]),
.vt-on .vt-acc__body #reviews textarea { border: 1px solid var(--vt-line-2); border-radius: var(--vt-field); padding: 10px 14px; width: 100%; }

.vt-on .vt-related { margin-top: 80px; }
.vt-on .vt-related .vt-h2 { margin-bottom: 32px; }
@media (max-width: 767px) { .vt-on .vt-related { margin-top: 56px; } }

/* Foto en grande */
.vt-lightbox { position: fixed; inset: 0; z-index: 1000000; display: grid; place-items: center; background: rgba(255, 255, 255, .97); padding: 24px; }
.vt-lightbox[hidden] { display: none; }
.vt-lightbox img { max-width: min(1100px, 100%); max-height: calc(100vh - 48px); object-fit: contain; }
body.vt-on .vt-lightbox__close { position: absolute; top: 16px; right: 16px; background: #fff; border: 1px solid var(--vt-line); }

/* ─────────────────────────── Carrito del header ─────────────────────────── */

.vt-mini[hidden] { display: none; }
.vt-mini__scrim {
	position: fixed; inset: 0; z-index: 999990; background: rgba(12, 12, 12, .38);
	opacity: 0; transition: opacity .3s ease;
}
.vt-mini__panel {
	position: fixed; z-index: 999999; top: calc(var(--vt-head) + 10px); right: 24px;
	width: 400px; max-width: calc(100vw - 32px); max-height: calc(100vh - var(--vt-head) - 34px);
	display: flex; flex-direction: column;
	background: #fff; border-radius: 16px; box-shadow: 0 30px 70px -30px rgba(0, 0, 0, .45), 0 0 0 1px rgba(0, 0, 0, .04);
	opacity: 0; transform: translateY(-8px) scale(.98); transform-origin: top right;
	transition: opacity .25s ease, transform .35s var(--vt-ease);
}
.vt-mini__panel::before {
	content: ''; position: absolute; top: -7px; right: 28px; width: 14px; height: 14px;
	background: #fff; transform: rotate(45deg); border-radius: 2px;
}
.vt-mini__panel:focus { outline: none; }
.vt-mini.is-open .vt-mini__scrim { opacity: 1; }
.vt-mini.is-open .vt-mini__panel { opacity: 1; transform: none; }
.vt-mini__grip { display: none; }
.vt-mini__body { display: flex; flex-direction: column; min-height: 0; padding: 22px 24px 20px; }
.vt-mini__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding-bottom: 16px; border-bottom: 1px solid var(--vt-line); }
.vt-on .vt-mini__title { font-size: 26px; font-weight: 500; line-height: 1.1; }
.vt-mini__head .vt-muted { margin-top: 4px; font-size: 15px; }
body.vt-on .vt-mini__head .vt-iconbtn { margin: -8px -10px 0 0; }
.vt-mini__items { overflow-y: auto; overscroll-behavior: contain; min-height: 0; margin: 0 -24px !important; padding: 0 24px !important; }
.vt-mini__item { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--vt-line); }
.vt-on .vt-thumb { display: block; aspect-ratio: 1; border: 1px solid var(--vt-line); border-radius: 12px; overflow: hidden; background: #fff; }
.vt-on .vt-thumb img { width: 100%; height: 100%; object-fit: contain; padding: 6%; }
.vt-on .vt-thumb--sm { width: 64px; flex: none; border-radius: 10px; }
.vt-on .vt-mini__name { font-size: 18px; font-weight: 500; line-height: 1.25; }
.vt-on .vt-mini__name:hover { text-decoration: underline; text-underline-offset: 4px; }
.vt-mini__info .vt-muted { font-size: 14px; margin-top: 2px; }
.vt-on .vt-mini__price { margin-top: 4px; font-size: 17px; }
.vt-mini__row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 10px; }
.vt-mini__foot { padding-top: 16px; }
.vt-mini__sum { display: flex; justify-content: space-between; align-items: baseline; font-size: 18px; font-weight: 500; }
.vt-mini__sum strong { font-weight: 500; }
.vt-mini__foot > .vt-muted { margin: 4px 0 16px; }
body.vt-on .vt-mini__cart { display: table; margin: 14px auto 0; }
.vt-mini__empty { display: grid; gap: 18px; padding: 28px 0 8px; text-align: center; font-size: 17px; }
.vt-mini.is-busy .vt-mini__items, .vt-mini.is-busy .vt-mini__foot { opacity: .55; pointer-events: none; transition: opacity .2s; }
html.vt-mini-open #qlwapp { opacity: 0 !important; pointer-events: none !important; }

@media (max-width: 767px) {
	.vt-mini__scrim { z-index: 999999; }
	.vt-mini__panel {
		top: auto; bottom: 0; left: 0; right: 0; width: auto; max-width: none; max-height: 88vh;
		border-radius: 24px 24px 0 0; transform: translateY(100%); transform-origin: bottom;
		padding-bottom: env(safe-area-inset-bottom);
		transition: transform .45s var(--vt-ease), opacity .2s ease;
		z-index: 1000000;
	}
	.vt-mini__panel::before { display: none; }
	.vt-mini.is-open .vt-mini__panel { transform: translateY(var(--vt-drag, 0px)); }
	.vt-mini__grip { display: block; width: 44px; height: 5px; margin: 10px auto 0; border-radius: 99px; background: #d9d6d1; flex: none; }
	.vt-mini__body { padding: 14px 20px 20px; }
	.vt-mini__items { margin: 0 -20px !important; padding: 0 20px !important; }
	.vt-mini__item { grid-template-columns: 88px minmax(0, 1fr); gap: 14px; }
}
@media (prefers-reduced-motion: reduce) { .vt-mini__panel, .vt-mini__scrim { transition-duration: .01ms !important; } }

/* ─────────────────────────── Carrito y checkout ─────────────────────────── */

.vt-on .vt-page { padding-bottom: 88px; }
.vt-on .vt-page .woocommerce { font-family: var(--vt-font); }
.vt-on .vt-pagehead { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 36px; }
.vt-on .vt-pagehead__sub { margin-top: 6px; font-size: 17px; }
.vt-on .vt-steps { display: flex; align-items: center; gap: 16px; padding-bottom: 6px; }
.vt-on .vt-steps__item, .vt-on .vt-steps__item > a { display: inline-flex; align-items: center; gap: 12px; font-size: 16px; color: var(--vt-muted); }
.vt-on .vt-steps__item + .vt-steps__item::before { content: ''; width: 36px; height: 1px; background: var(--vt-line-2); margin-right: 4px; }
.vt-on .vt-steps__n { display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid var(--vt-line-2); border-radius: 50%; font-size: 14px; }
.vt-on .vt-steps__item.is-active { color: var(--vt-ink); }
.vt-on .vt-steps__item.is-active .vt-steps__n { background: var(--vt-ink); border-color: var(--vt-ink); color: #fff; }
.vt-on .vt-steps__item > a:hover { color: var(--vt-ink); }
@media (max-width: 767px) {
	.vt-on .vt-pagehead { flex-direction: column; align-items: flex-start; gap: 18px; margin-bottom: 24px; }
	.vt-on .vt-steps__n { width: 32px; height: 32px; font-size: 13px; }
	.vt-on .vt-steps__item, .vt-on .vt-steps__item > a { font-size: 15px; gap: 8px; }
}

/* Avisos de WooCommerce dentro del diseño */
.vt-on .vt-wrap :is(.woocommerce-error, .woocommerce-message, .woocommerce-info) {
	position: relative; list-style: none; margin: 0 0 24px; padding: 14px 18px 14px 48px;
	border: 1px solid var(--vt-line); border-left: 3px solid var(--vt-ink); border-radius: 12px;
	background: var(--vt-soft); color: var(--vt-ink); font-size: 15px; line-height: 1.5;
}
.vt-on .vt-wrap .woocommerce-error { border-left-color: var(--vt-danger); }
.vt-on .vt-wrap .woocommerce-message { border-left-color: var(--vt-gold); }
.vt-on .vt-wrap :is(.woocommerce-error, .woocommerce-message, .woocommerce-info)::before { left: 18px; top: 14px; color: inherit; }
.vt-on .vt-wrap :is(.woocommerce-error, .woocommerce-message, .woocommerce-info) .button { float: right; background: none; border: 0; padding: 0; color: var(--vt-ink); text-decoration: underline; font: inherit; }

.vt-on .vt-cart, .vt-on .vt-co { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 48px; align-items: start; }
@media (max-width: 1099px) { .vt-on .vt-cart, .vt-on .vt-co { grid-template-columns: minmax(0, 1fr) 360px; gap: 32px; } }
@media (max-width: 899px) { .vt-on .vt-cart, .vt-on .vt-co { grid-template-columns: minmax(0, 1fr); } }

.vt-on .vt-cart__labels { display: grid; grid-template-columns: minmax(0, 1fr) 140px 120px; gap: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--vt-line); font-size: 16px; color: var(--vt-ink-2); }
.vt-on .vt-cart__labels span:nth-child(2) { text-align: center; }
.vt-on .vt-cart__labels span:nth-child(3) { text-align: right; }
.vt-on .vt-cart__item { display: grid; grid-template-columns: 150px minmax(0, 1fr) 140px 120px; gap: 16px 24px; align-items: center; padding: 24px 0; border-bottom: 1px solid var(--vt-line); }
.vt-on .vt-cart__labels { grid-template-columns: minmax(0, 1fr) 140px 120px; gap: 16px 24px; }
.vt-on .vt-cart__name { font-size: 20px; font-weight: 500; line-height: 1.25; margin-top: 2px; }
.vt-on .vt-cart__name a:hover { text-decoration: underline; text-underline-offset: 4px; }
.vt-on .vt-cart__info .vt-muted { margin-top: 3px; font-size: 16px; }
.vt-on .vt-cart__unit { margin: 8px 0 6px; font-size: 17px; }
.vt-on .vt-cart__qty { display: flex; justify-content: center; }
.vt-on .vt-cart__qty .vt-qty { height: 46px; }
.vt-on .vt-cart__subtotal { text-align: right; font-size: 18px; }
@media (max-width: 767px) {
	.vt-on .vt-cart__labels { display: none; }
	.vt-on .vt-cart__item { grid-template-columns: 96px minmax(0, 1fr); gap: 12px 16px; align-items: start; padding: 18px 0; }
	.vt-on .vt-cart__qty { grid-column: 2; justify-content: flex-start; }
	.vt-on .vt-cart__subtotal { display: none; }
	.vt-on .vt-cart__name { font-size: 17px; }
}

.vt-on .vt-cart__actions { padding-top: 8px; }
.vt-on .vt-coupon { padding: 20px 0; border-bottom: 1px solid var(--vt-line); }
.vt-on .vt-acc .vt-coupon { padding: 0; border: 0; }
.vt-on .vt-coupon__label { display: block; margin-bottom: 10px; font-size: 16px; color: var(--vt-ink-2); }
.vt-on .vt-coupon__row { display: flex; gap: 10px; max-width: 440px; }
.vt-on .vt-coupon__row .vt-input { flex: 1; min-width: 0; }
body.vt-on .vt-coupon__row .vt-btn { min-width: 110px; }
.vt-on .vt-coupon__msg { display: flex; align-items: center; gap: 8px; margin-top: 10px; font-size: 14px; }
.vt-on .vt-coupon__msg:empty { display: none; }
.vt-on .vt-coupon__msg.is-error { color: var(--vt-danger); }
.vt-on .vt-coupon__msg.is-ok { color: var(--vt-ok); }
body.vt-on .vt-coupon.is-error .vt-input { border-color: var(--vt-danger); }

body.vt-on .vt-input,
body.vt-on .vt-fields :is(input.input-text, select, textarea),
body.vt-on .vt-co .select2-container .select2-selection {
	width: 100%; min-height: 48px; margin: 0; padding: 12px 16px;
	border: 1px solid var(--vt-line-2); border-radius: var(--vt-field); background: #fff; box-shadow: none;
	font: 400 16px/1.3 var(--vt-font); color: var(--vt-ink);
	transition: border-color .2s ease, box-shadow .2s ease;
}
body.vt-on .vt-input--pill { border-radius: 999px; padding: 0 20px; height: 46px; min-height: 46px; }
body.vt-on textarea.vt-input { min-height: 96px; resize: vertical; }
body.vt-on .vt-input::placeholder, body.vt-on .vt-fields ::placeholder { color: #9a968f; }
body.vt-on .vt-input:focus,
body.vt-on .vt-fields :is(input.input-text, select, textarea):focus { outline: none; border-color: var(--vt-ink); box-shadow: 0 0 0 3px rgba(164, 140, 84, .22); }

.vt-on .vt-acc--note .vt-acc__body { display: grid; gap: 8px; }
.vt-on .vt-back { display: inline-flex; align-items: center; gap: 12px; margin-top: 36px; font-size: 16px; color: var(--vt-ink-2); }
.vt-on .vt-back span { text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--vt-line-2); }
.vt-on .vt-back:hover span { text-decoration-color: var(--vt-ink); }

/* Resumen (carrito, checkout y gracias) */
.vt-on .vt-box { border: 1px solid var(--vt-line); border-radius: 16px; background: #fff; padding: 26px 28px; }
.vt-on .vt-cart__side, .vt-on .vt-co__side { position: sticky; top: calc(var(--vt-head) + 20px); }
@media (max-width: 899px) { .vt-on .vt-cart__side, .vt-on .vt-co__side { position: static; } }
.vt-on .vt-sum .vt-h3 { margin-bottom: 18px; font-size: 24px; }
.vt-on .vt-sum__rows { display: grid; gap: 10px; padding: 16px 0; border-bottom: 1px solid var(--vt-line); }
.vt-on .vt-sum > .vt-sum__rows:first-of-type, .vt-on .vt-sum h2 + .vt-sum__rows { padding-top: 0; }
.vt-on .vt-sum__row { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; font-size: 16px; color: var(--vt-ink-2); }
.vt-on .vt-sum__row > span:last-child { color: var(--vt-ink); text-align: right; }
.vt-on .vt-sum__row .woocommerce-remove-coupon { margin-left: 6px; font-size: 13px; color: var(--vt-muted); text-decoration: underline; }
.vt-on .vt-code { font-weight: 500; text-transform: uppercase; letter-spacing: .04em; }
.vt-on .vt-sum__ship { padding: 16px 0; border-bottom: 1px solid var(--vt-line); }
.vt-on .vt-ship__h { font-size: 17px; font-weight: 500; margin-bottom: 10px; }
.vt-on .vt-ship__list { display: grid; gap: 4px; }
.vt-on .vt-radio { display: flex; align-items: center; gap: 12px; min-height: 40px; cursor: pointer; font-size: 16px; color: var(--vt-ink-2); margin: 0; }
.vt-on .vt-radio__label { flex: 1; }
.vt-on .vt-radio__price { color: var(--vt-ink); }
body.vt-on .vt-radio input[type="radio"],
body.vt-on .vt-pay__item > input[type="radio"],
body.vt-on .vt-check input[type="checkbox"] {
	appearance: none; -webkit-appearance: none; flex: none; position: relative;
	width: 22px; height: 22px; margin: 0; border: 1px solid #b9b5ae; border-radius: 50%; background: #fff; cursor: pointer;
	transition: border-color .2s ease;
}
body.vt-on .vt-radio input[type="radio"]:checked,
body.vt-on .vt-pay__item > input[type="radio"]:checked { border-color: var(--vt-ink); }
body.vt-on .vt-radio input[type="radio"]:checked::after,
body.vt-on .vt-pay__item > input[type="radio"]:checked::after { content: ''; position: absolute; inset: 5px; border-radius: 50%; background: var(--vt-ink); }
body.vt-on .vt-radio input:focus-visible, body.vt-on .vt-pay__item > input:focus-visible, body.vt-on .vt-check input:focus-visible { outline: 2px solid var(--vt-gold); outline-offset: 2px; }
body.vt-on .vt-check input[type="checkbox"] { border-radius: 6px; width: 20px; height: 20px; }
body.vt-on .vt-check input[type="checkbox"]:checked { background: var(--vt-ink); border-color: var(--vt-ink); }
body.vt-on .vt-check input[type="checkbox"]:checked::after { content: ''; position: absolute; left: 6px; top: 2px; width: 6px; height: 11px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.vt-on .vt-check { display: inline-flex !important; align-items: center; gap: 12px; font-size: 16px; color: var(--vt-ink-2); cursor: pointer; }
.vt-on .vt-sum__total { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 18px 0 20px; font-size: 24px; font-weight: 500; }
.vt-on .vt-sum__total .woocommerce-Price-amount { font-size: 26px; }
.vt-on .vt-sum__total small { display: block; font-size: 12px; font-weight: 400; color: var(--vt-muted); }
.vt-on .wc-proceed-to-checkout { padding: 0; }
.vt-on .vt-secure { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 14px; font-size: 14px; color: var(--vt-muted); }

.vt-on .vt-sum__items { display: grid; gap: 14px; padding-bottom: 18px; margin-bottom: 2px; border-bottom: 1px solid var(--vt-line); }
.vt-on .vt-sum__item { display: flex; align-items: center; gap: 16px; }
.vt-on .vt-sum__iteminfo { display: grid; gap: 2px; flex: 1; min-width: 0; }
.vt-on .vt-sum__name { font-size: 17px; font-weight: 500; }
.vt-on .vt-sum__itemprice { font-size: 17px; white-space: nowrap; }
.vt-on .vt-sum__item .variation { margin: 2px 0 0; font-size: 13px; color: var(--vt-muted); }

/* Checkout */
.vt-on .vt-co .woocommerce-billing-fields .vt-h3 { margin-bottom: 20px; font-size: 24px; }
.vt-on .vt-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 20px; }
.vt-on .vt-fields .form-row { grid-column: 1 / -1; margin: 0 !important; padding: 0 !important; width: auto !important; float: none !important; }
.vt-on .vt-fields .form-row-first, .vt-on .vt-fields .form-row-last { grid-column: auto; }
@media (max-width: 599px) { .vt-on .vt-fields { grid-template-columns: 1fr; } .vt-on .vt-fields .form-row-first, .vt-on .vt-fields .form-row-last { grid-column: 1 / -1; } }
.vt-on .vt-fields .form-row label:not(.vt-check):not(.checkbox) { display: block; margin: 0 0 8px; font-size: 16px; font-weight: 400; color: var(--vt-ink); line-height: 1.3; }
.vt-on .vt-fields .form-row .required { color: var(--vt-ink); text-decoration: none; border: 0; }
.vt-on .vt-fields .form-row .optional { color: var(--vt-muted); font-size: 14px; }
.vt-on .vt-fields .woocommerce-input-wrapper { display: block; }
.vt-on .vt-fields .form-row.woocommerce-invalid :is(input.input-text, select, textarea),
.vt-on .vt-fields .form-row.woocommerce-invalid .select2-selection { border-color: var(--vt-danger) !important; }
.vt-on .vt-fields .form-row.woocommerce-validated :is(input.input-text, select) { border-color: var(--vt-line-2); }
.vt-on .vt-fields .checkout-inline-error-message, .vt-on .vt-fields .form-row .woocommerce-error { margin: 6px 0 0; padding: 0; border: 0; background: none; font-size: 14px; color: var(--vt-danger); }
.vt-on .vt-fields .form-row .description { margin-top: 6px; font-size: 14px; color: var(--vt-muted); }
body.vt-on .vt-co .select2-container .select2-selection--single { height: 48px; display: flex; align-items: center; padding: 0 16px; }
body.vt-on .vt-co .select2-container .select2-selection__rendered { padding: 0; line-height: 1.3; color: var(--vt-ink); }
body.vt-on .vt-co .select2-container .select2-selection__arrow { height: 46px; right: 10px; }
.vt-on .vt-shipdiff { margin: 24px 0 0 !important; }
.vt-on .vt-co .shipping_address { margin-top: 18px; }
.vt-on .vt-co .woocommerce-additional-fields { margin-top: 28px; border-top: 1px solid var(--vt-line); }
.vt-on .vt-co .woocommerce-additional-fields > h3 { display: none; }
.vt-on .vt-co .vt-acc--note .vt-fields { grid-template-columns: 1fr; }
.vt-on .vt-co .vt-acc--note .vt-fields label { font-size: 15px !important; color: var(--vt-muted) !important; }
.vt-on .vt-co__main > .vt-acc { border-bottom: 1px solid var(--vt-line); }
.vt-on .vt-co__main > .vt-acc .vt-acc__body { padding-top: 4px; }
.vt-on .vt-co .woocommerce-account-fields { margin-top: 20px; }
.vt-on .vt-co #customer_details { float: none; width: auto; }
.vt-on .vt-co .col2-set { width: auto; float: none; }

.vt-on .vt-co__side #order_review { display: grid; gap: 28px; }
.vt-on .vt-pay .vt-h3 { margin-bottom: 14px; font-size: 24px; }
.vt-on .vt-pay__list { display: grid; gap: 10px; margin: 0 0 20px !important; padding: 0 !important; border: 0 !important; background: none !important; }
.vt-on .vt-pay__item {
	display: grid; grid-template-columns: 22px minmax(0, 1fr); align-items: center; gap: 0 14px;
	padding: 16px 18px !important; margin: 0 !important; border: 1px solid var(--vt-line-2); border-radius: 14px; background: #fff;
	transition: border-color .2s ease, box-shadow .2s ease;
}
.vt-on .vt-pay__item:has(> input:checked) { border-color: var(--vt-ink); box-shadow: 0 0 0 1px var(--vt-ink); }
.vt-on .vt-pay__item > label { display: flex !important; align-items: center; justify-content: space-between; gap: 12px; margin: 0 !important; padding: 0 !important; font-size: 16px !important; color: var(--vt-ink); cursor: pointer; }
.vt-on .vt-pay__item > label img { max-height: 24px; width: auto; margin: 0 !important; float: none !important; }
.vt-on .vt-pay__item .payment_box {
	grid-column: 2; margin: 8px 0 0 !important; padding: 0 !important; background: none !important; border: 0 !important;
	font-size: 14px; line-height: 1.5; color: var(--vt-muted);
}
.vt-on .vt-pay__item .payment_box::before { display: none !important; }
.vt-on .vt-pay__item .payment_box p { margin: 0; }
.vt-on .vt-pay .place-order { padding: 0 !important; margin: 0 !important; }
.vt-on .vt-pay .woocommerce-terms-and-conditions-wrapper { margin-bottom: 16px; font-size: 14px; color: var(--vt-muted); }
.vt-on .vt-pay .woocommerce-privacy-policy-text p { margin: 0 0 12px; font-size: 13px; }
.vt-on .vt-pay .woocommerce-privacy-policy-text a { text-decoration: underline; }
body.vt-on #place_order { float: none; width: 100%; }
.vt-on .blockUI.blockOverlay { background: rgba(255, 255, 255, .6) !important; border-radius: 16px; }

/* Carrito vacío */
.vt-on .vt-cart-empty { display: grid; justify-items: center; gap: 16px; padding: 32px 0 24px; text-align: center; }
.vt-on .vt-cart-empty > .vt-muted { font-size: 17px; margin-bottom: 8px; }

/* ─────────────────────────── Gracias ─────────────────────────── */

.vt-on .vt-ty { max-width: 1080px; margin: 0 auto; padding-top: 32px; }
.vt-on .vt-ty__head { display: grid; justify-items: center; gap: 10px; text-align: center; }
.vt-on .vt-ty__img { width: 170px; margin-bottom: 8px; }
.vt-on .vt-ty__img img { width: 100%; height: auto; }
.vt-on .vt-ty__img.is-stone { position: relative; padding-bottom: 26px; }
.vt-on .vt-ty__img:not(.is-stone) { border: 1px solid var(--vt-line); border-radius: 50%; overflow: hidden; aspect-ratio: 1; }
.vt-on .vt-ty__title { font-size: clamp(34px, 5vw, 56px); letter-spacing: -.025em; }
.vt-on .vt-ty__sub { font-size: 20px; color: var(--vt-ink-2); max-width: 46ch; }
.vt-on .vt-ty__alert { color: var(--vt-danger); }
.vt-on .vt-ty__actions { display: flex; align-items: center; flex-wrap: wrap; justify-content: center; gap: 18px 28px; margin-top: 14px; }
.vt-on .vt-ty__meta { display: grid; grid-template-columns: repeat(4, auto); justify-content: center; margin: 36px 0 48px; }
.vt-on .vt-ty__meta > div { padding: 4px 40px; border-left: 1px solid var(--vt-line); }
.vt-on .vt-ty__meta > div:first-child { border-left: 0; }
.vt-on .vt-ty__meta dt { font-size: 14px; color: var(--vt-muted); margin-bottom: 6px; }
.vt-on .vt-ty__meta dd { font-size: 19px; color: var(--vt-ink); }
@media (max-width: 767px) {
	.vt-on .vt-ty__meta { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 0; margin: 28px 0 36px; }
	.vt-on .vt-ty__meta > div { padding: 0 12px; }
	.vt-on .vt-ty__meta > div:nth-child(3) { border-left: 0; }
	.vt-on .vt-ty__meta dd { font-size: 17px; }
	.vt-on .vt-ty__sub { font-size: 17px; }
	.vt-on .vt-ty__img { width: 120px; }
}
.vt-on .vt-ty__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0; }
.vt-on .vt-ty__order { padding-right: 40px; border-right: 1px solid var(--vt-line); }
.vt-on .vt-ty__next { padding-left: 40px; }
.vt-on .vt-ty__grid .vt-h3 { font-size: 26px; margin-bottom: 20px; }
@media (max-width: 899px) {
	.vt-on .vt-ty__grid { grid-template-columns: 1fr; gap: 40px; }
	.vt-on .vt-ty__order { padding-right: 0; border-right: 0; }
	.vt-on .vt-ty__next { padding-left: 0; }
}
.vt-on .vt-ty__steps { counter-reset: vt-step; display: grid; gap: 22px; padding-bottom: 24px !important; border-bottom: 1px solid var(--vt-line); }
.vt-on .vt-ty__steps li { counter-increment: vt-step; display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 2px 0; }
.vt-on .vt-ty__steps li::before { content: counter(vt-step, decimal-leading-zero); grid-row: span 2; font-size: 26px; font-weight: 300; color: var(--vt-gold-text); line-height: 1.1; }
.vt-on .vt-ty__steps strong { font-size: 18px; font-weight: 500; }
.vt-on .vt-ty__steps span { font-size: 16px; color: var(--vt-muted); }
.vt-on .vt-ty__gateway:not(:empty) { margin-top: 20px; font-size: 15px; color: var(--vt-ink-2); }
.vt-on .vt-ty__gateway h2 { font-size: 18px; font-weight: 500; margin: 0 0 10px; }
.vt-on .vt-ty__gateway h3 { font-size: 16px; font-weight: 500; margin: 12px 0 6px; }
.vt-on .vt-ty__gateway ul { display: grid; gap: 4px; padding: 14px 16px; border: 1px solid var(--vt-line); border-radius: 12px; background: var(--vt-soft); }
.vt-on .vt-ty__gateway li strong { font-weight: 500; }
.vt-on .vt-ty__help { display: inline-block; margin-top: 22px; }
.vt-on .vt-ty__note { display: grid; gap: 4px; margin-top: 10px; padding: 14px 16px; border-radius: 12px; background: var(--vt-soft); font-size: 15px; }
.vt-on .vt-ty__foot { display: grid; justify-items: center; gap: 18px; margin-top: 56px; }
.vt-on .vt-ty__foot .vt-btn { min-width: 300px; }
@media (max-width: 480px) { .vt-on .vt-ty__foot .vt-btn { min-width: 0; width: 100%; } }

/* El carrito lateral de Minimog se abre al añadir por AJAX: aquí lo reemplaza el panel propio. */
body.vt-on #popup-fly-cart { display: none !important; }

/* Lo que Minimog pone en carrito y checkout: título oculto, sombra de la caja y radios dibujados con ::before. */
body.vt-on .vt-sum > .vt-h3 { display: block !important; }
body.vt-on .vt-box.cart_totals, body.vt-on .vt-box { box-shadow: none !important; }
body.vt-on .vt-radio input[type="radio"]::before,
body.vt-on .vt-pay__item > input[type="radio"]::before,
body.vt-on .vt-check input[type="checkbox"]::before { display: none !important; content: none !important; }
body.vt-on .vt-radio input[type="radio"]:not(:checked)::after,
body.vt-on .vt-pay__item > input[type="radio"]:not(:checked)::after { display: none; }
body.vt-on .vt-radio input[type="radio"]:checked::after,
body.vt-on .vt-pay__item > input[type="radio"]:checked::after { top: 5px !important; left: 5px !important; width: 10px !important; height: 10px !important; transform: none !important; margin: 0 !important; }
/* Minimog agrega columnas tipo Bootstrap (col-sm-6) a los campos y márgenes negativos a la fila. */
body.vt-on .vt-fields { margin: 0 !important; }
body.vt-on .vt-fields .form-row { max-width: none !important; flex: none !important; }
/* Íconos decorativos de Minimog en los métodos de pago: el boceto no los lleva. Los logos reales (img) sí. */
body.vt-on .vt-pay__item > label > svg { display: none !important; }
body.vt-on .vt-pay__item > label img { max-height: 22px !important; }
body.vt-on .vt-ty__meta dd :is(.amount, .woocommerce-Price-amount, bdi, small) { font-size: inherit; }
body.vt-on .vt-coupon__row .vt-input { width: auto; flex: 1 1 0; min-width: 0; }
body.vt-on .vt-coupon__row .vt-btn { flex: none; }
@media (max-width: 380px) { body.vt-on .vt-coupon__row .vt-btn { min-width: 0; padding: 0 18px; } }
.vt-on .vt-stones__list { scroll-padding-left: 16px; }
@media (max-width: 767px) { .vt-on .vt-stones__list { padding: 4px 16px; } }
/* El editor de campos (Checkout Field Editor) marca media columna con col-sm-6 aunque el campo sea form-row-wide. */
@media (min-width: 600px) { body.vt-on .vt-fields .form-row.col-sm-6 { grid-column: auto; } }


/* ─────────────────────────── Motion ───────────────────────────
 * Movimiento lento y discreto, de joyería: la piedra flota con su sombra en el piso, entra de un desenfoque
 * a nítida, sigue al mouse y se queda atrás al bajar. Todo se apaga con prefers-reduced-motion.
 */
body.vt-on {
	--vt-float-t: 7s;
	--vt-in: cubic-bezier(.16, 1, .3, 1);
}

/* Piedra: capa de flotación (anima) + imagen (inclinación por mouse/scroll, variables desde JS) */
.vt-on .vt-stone__float { position: relative; z-index: 1; width: min(300px, 100%); animation: vt-float var(--vt-float-t) ease-in-out infinite; will-change: transform; }
.vt-on .vt-stone__img img,
.vt-on .vt-ty__img.is-stone img {
	display: block;
	width: 100%;
	height: auto;
	filter: drop-shadow(0 18px 22px rgba(60, 45, 20, .18));
	transform: perspective(700px) translate3d(var(--vt-px, 0px), calc(var(--vt-py, 0px) + var(--vt-sy, 0px)), 0) rotateX(var(--vt-rx, 0deg)) rotateY(var(--vt-ry, 0deg));
	transition: transform .9s var(--vt-in);
	animation: vt-stone-in 1.3s var(--vt-in) both;
}
.vt-on .vt-ty__img.is-stone img { width: 100%; }
@keyframes vt-stone-in {
	from { opacity: 0; filter: blur(14px) drop-shadow(0 18px 22px rgba(60, 45, 20, 0)); transform: perspective(700px) translate3d(0, 24px, 0) scale(.86) rotate(-6deg); }
	to { opacity: 1; }
}
/* Sombra en el piso: se achica y aclara cuando la piedra sube. */
.vt-on .vt-stone__shadow {
	position: absolute; left: 50%; bottom: 6px; width: 58%; height: 22px; margin-left: -29%;
	border-radius: 50%; background: radial-gradient(closest-side, rgba(60, 45, 20, .30), rgba(60, 45, 20, 0));
	filter: blur(3px);
	animation: vt-shadow var(--vt-float-t) ease-in-out infinite, vt-fade-in 1.4s .3s both;
}
@keyframes vt-shadow { 50% { transform: scaleX(.8); opacity: .55; } }
/* Halo cálido que respira detrás de la piedra. */
.vt-on .vt-stone__halo {
	position: absolute; left: 50%; top: 46%; width: 118%; aspect-ratio: 1; transform: translate(-50%, -50%);
	border-radius: 50%; background: radial-gradient(closest-side, rgba(233, 219, 188, .75), rgba(246, 241, 231, 0) 72%);
	animation: vt-halo 9s ease-in-out infinite, vt-fade-in 1.6s both;
	pointer-events: none;
}
.vt-on .vt-ty__img .vt-stone__halo { width: 150%; }
@keyframes vt-halo { 50% { transform: translate(-50%, -50%) scale(1.08); opacity: .7; } }
/* Ancho fijo del contenedor: sin él, los lazy-loaders que calculan "sizes" por el ancho en pantalla (EWWW) eligen la foto más chica. */
@media (max-width: 767px) { .vt-on .vt-stone__img .vt-stone__float { width: 170px; } .vt-on .vt-stone__img img { width: 100%; } }
.vt-on .vt-ty__img .vt-stone__float { width: 100%; }
@keyframes vt-fade-in { from { opacity: 0; } }

/* Texto de la piedra y fila de piedras: entrada en cascada (sin JS: están arriba de la página). */
.vt-on [data-vt-stagger] > * { animation: vt-rise .9s var(--vt-in) both; }
.vt-on [data-vt-stagger] > :nth-child(1) { animation-delay: .15s; }
.vt-on [data-vt-stagger] > :nth-child(2) { animation-delay: .23s; }
.vt-on [data-vt-stagger] > :nth-child(3) { animation-delay: .31s; }
.vt-on [data-vt-stagger] > :nth-child(4) { animation-delay: .39s; }
.vt-on [data-vt-stagger] > :nth-child(5) { animation-delay: .47s; }
.vt-on [data-vt-stagger] > :nth-child(6) { animation-delay: .55s; }
.vt-on [data-vt-stagger] > :nth-child(7) { animation-delay: .63s; }
.vt-on [data-vt-stagger] > :nth-child(8) { animation-delay: .71s; }
.vt-on [data-vt-stagger] > :nth-child(n+9) { animation-delay: .79s; }
@keyframes vt-rise { from { opacity: 0; transform: translateY(14px); } }

/* Piedras de la fila: se levantan con una sombra al pasar el mouse. */
body.vt-on .vt-stone-chip img { transition: transform .5s var(--vt-in), filter .5s var(--vt-in); }
body.vt-on .vt-stone-chip:hover img { transform: translateY(-6px) rotate(-6deg) scale(1.06); filter: drop-shadow(0 10px 8px rgba(60, 45, 20, .18)); }
body.vt-on .vt-stone-chip:active img { transform: translateY(-2px) scale(.98); }

/* Tarjetas: aparecen al entrar en pantalla (solo con JS; sin JS se ven normal). */
html.vt-js .vt-on .vt-card.vt-reveal { opacity: 0; transform: translateY(18px); }
html.vt-js .vt-on .vt-card.vt-reveal.is-in {
	opacity: 1; transform: none;
	transition: opacity .7s ease var(--vt-d, 0s), transform .9s var(--vt-in) var(--vt-d, 0s);
}

/* Añadir: el botón confirma con un check y el contador del header da un salto. */
body.vt-on .vt-btn.is-added { background: #2a2a2a; border-color: #2a2a2a; }
body.vt-on .vt-btn .vt-check-i { display: none; }
body.vt-on .vt-btn.is-added .vt-check-i { display: block; animation: vt-pop .45s var(--vt-in) both; }
body.vt-on .vt-btn.is-added > .vt-i:not(.vt-check-i) { display: none; }
@keyframes vt-pop { from { transform: scale(.3); opacity: 0; } }
#cv-header .cv-count.vt-bump { animation: vt-bump .6s var(--vt-in); }
@keyframes vt-bump { 30% { transform: scale(1.45); } }

@media (prefers-reduced-motion: reduce) {
	.vt-on .vt-stone__float, .vt-on .vt-stone__shadow, .vt-on .vt-stone__halo,
	.vt-on .vt-stone__img img, .vt-on .vt-ty__img.is-stone img, .vt-on [data-vt-stagger] > *,
	#cv-header .cv-count.vt-bump { animation: none !important; }
	.vt-on .vt-stone__img img { transition: none; transform: none; }
	html.vt-js .vt-on .vt-card.vt-reveal { opacity: 1; transform: none; }
	body.vt-on .vt-stone-chip:hover img { transform: none; }
}

/* ─────────────────────────── Portada ─────────────────────────── */

body.vt-view-home { background: #fff; }
.vt-on .vt-home { font-family: var(--vt-font); color: var(--vt-ink); }
.vt-on .vt-home *, .vt-on .vt-home *::before, .vt-on .vt-home *::after { box-sizing: border-box; }
body.vt-on :where(.vt-home) :where(h1, h2, h3, p, ul, li) { margin: 0; padding: 0; list-style: none; }
body.vt-on :where(.vt-home) :where(a) { color: inherit; text-decoration: none; }
body.vt-on :where(.vt-home) :where(img) { max-width: 100%; display: block; }

/* Botones sobre el video */
body.vt-on .vt-btn--light { background: #fff; border-color: #fff; color: var(--vt-ink); }
body.vt-on .vt-btn--light:hover { background: #f4ecd9; border-color: #f4ecd9; color: var(--vt-ink); }
body.vt-on .vt-btn--glass { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .55); color: #fff; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
body.vt-on .vt-btn--glass:hover { background: rgba(255, 255, 255, .18); border-color: #fff; color: #fff; }

/* Hero */
.vt-on .vt-hero { position: relative; height: 100svh; min-height: 620px; max-height: 980px; overflow: hidden; background: #1a1512; color: #fff; }
.vt-on .vt-hero__media, .vt-on .vt-hero__video { position: absolute; inset: 0; width: 100%; height: 100%; }
.vt-on .vt-hero__video { object-fit: cover; animation: vt-hero-zoom 18s ease-out both; }
@keyframes vt-hero-zoom { from { transform: scale(1.08); } to { transform: scale(1); } }
.vt-on .vt-hero::after {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background:
		linear-gradient(0deg, rgba(14, 10, 8, .72) 0%, rgba(14, 10, 8, .25) 42%, rgba(14, 10, 8, 0) 65%),
		linear-gradient(90deg, rgba(14, 10, 8, .45) 0%, rgba(14, 10, 8, 0) 55%);
}
.vt-on .vt-hero__in { position: relative; z-index: 2; height: 100%; max-width: 1320px; margin: 0 auto; padding: 0 40px 72px; display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; }
.vt-on .vt-hero__txt { max-width: 860px; }
.vt-on .vt-hero__eyebrow { font-family: var(--vt-label); font-size: 11px; font-weight: 600; letter-spacing: .26em; text-transform: uppercase; color: #e5d3a6; }
.vt-on .vt-hero__title { margin-top: 18px !important; font-family: var(--vt-font); font-weight: 300; font-size: clamp(44px, 6.4vw, 92px); line-height: .98; letter-spacing: -.03em; color: #fff; text-transform: none; }
.vt-on .vt-hero__title em { font-style: normal; color: #e5d3a6; }
.vt-on .vt-hero__text { margin-top: 20px !important; max-width: 46ch; font-size: 18px; line-height: 1.55; font-weight: 300; color: rgba(255, 255, 255, .86); }
.vt-on .vt-hero__ctas { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.vt-on .vt-hero__scroll { flex: none; width: 26px; height: 44px; border: 1px solid rgba(255, 255, 255, .6); border-radius: 99px; position: relative; margin-bottom: 8px; }
.vt-on .vt-hero__scroll span { position: absolute; left: 50%; top: 8px; width: 3px; height: 8px; margin-left: -1.5px; border-radius: 3px; background: #fff; animation: vt-scroll 2.2s ease-in-out infinite; }
@keyframes vt-scroll { 0% { opacity: 0; transform: translateY(0); } 30% { opacity: 1; } 80% { opacity: 0; transform: translateY(14px); } 100% { opacity: 0; } }
@media (max-width: 767px) {
	.vt-on .vt-hero { height: 88svh; min-height: 560px; }
	.vt-on .vt-hero__in { padding: 0 20px 44px; }
	.vt-on .vt-hero__text { font-size: 16px; }
	.vt-on .vt-hero__ctas .vt-btn { flex: 1 1 100%; }
	.vt-on .vt-hero__scroll { display: none; }
}

/* Secciones */
.vt-on .vt-hsec { padding: 104px 0; }
.vt-on .vt-hsec__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 40px; }
.vt-on .vt-hsec__title { margin-top: 10px !important; font-family: var(--vt-font); font-weight: 300; font-size: clamp(32px, 4vw, 52px); line-height: 1.04; letter-spacing: -.025em; color: var(--vt-ink); text-transform: none; }
.vt-on .vt-hsec__text { margin-top: 14px !important; max-width: 52ch; font-size: 17px; line-height: 1.6; color: var(--vt-ink-2); font-weight: 300; }
body.vt-on .vt-hsec__more { display: inline-flex; align-items: center; gap: 10px; flex: none; font-size: 15px; color: var(--vt-ink); padding-bottom: 4px; border-bottom: 1px solid var(--vt-gold); transition: gap .3s var(--vt-ease), color .2s; }
body.vt-on .vt-hsec__more:hover { gap: 14px; color: #000; }
@media (max-width: 767px) {
	.vt-on .vt-hsec { padding: 64px 0; }
	.vt-on .vt-hsec__head { flex-direction: column; align-items: flex-start; margin-bottom: 28px; }
}

/* Categorías */
.vt-on .vt-hcats__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
body.vt-on .vt-hcat { position: relative; display: block; aspect-ratio: 4 / 5; border-radius: 16px; overflow: hidden; background: #e9dcc6; isolation: isolate; }
.vt-on .vt-hcat img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--vt-in); }
.vt-on .vt-hcat::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(20, 14, 8, .55) 0%, rgba(20, 14, 8, 0) 45%); z-index: 1; }
.vt-on .vt-hcat:hover img { transform: scale(1.06); }
.vt-on .vt-hcat__label { position: absolute; left: 22px; right: 22px; bottom: 20px; z-index: 2; display: flex; align-items: center; justify-content: space-between; color: #fff; font-size: 24px; font-weight: 400; letter-spacing: -.01em; }
.vt-on .vt-hcat__label i { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .6); transition: background-color .3s, color .3s, transform .4s var(--vt-in); }
.vt-on .vt-hcat:hover .vt-hcat__label i { background: #fff; color: var(--vt-ink); transform: translateX(4px); }
@media (max-width: 1023px) { .vt-on .vt-hcats__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) {
	.vt-on .vt-hcats__grid { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 12px; margin: 0 -16px; padding: 0 16px; scrollbar-width: none; }
	.vt-on .vt-hcats__grid::-webkit-scrollbar { display: none; }
	.vt-on .vt-hcats__grid > li { flex: 0 0 72%; scroll-snap-align: start; }
	.vt-on .vt-hcat__label { font-size: 20px; }
}

/* Piedras */
.vt-on .vt-hstones { background: radial-gradient(1100px 520px at 70% 60%, #f3ead9 0%, rgba(243, 234, 217, 0) 70%), #fbf8f4; overflow: hidden; }
.vt-on .vt-hstones__nav { display: flex; align-items: center; gap: 8px; }
.vt-on .vt-hstones__count { font-size: 14px; color: var(--vt-muted); margin-right: 8px; font-variant-numeric: tabular-nums; }
.vt-on .vt-hstones__count b { color: var(--vt-ink); font-weight: 500; }
body.vt-on .vt-hstones__arrow { border: 1px solid var(--vt-line-2); background: #fff; }
body.vt-on .vt-hstones__arrow:hover { border-color: var(--vt-ink); background: #fff; }
.vt-on .vt-hstones__rail {
	display: flex; gap: 8px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; scroll-behavior: smooth;
	padding: 8px max(40px, calc((100vw - 1240px) / 2)) 24px; scroll-padding-left: max(40px, calc((100vw - 1240px) / 2));
}
.vt-on .vt-hstones__rail::-webkit-scrollbar { display: none; }
.vt-on .vt-hstones__rail:focus-visible { outline: 2px solid var(--vt-gold); outline-offset: -2px; }
.vt-on .vt-hstone { flex: 0 0 236px; scroll-snap-align: start; }
body.vt-on .vt-hstone > a { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 18px 16px 22px; border-radius: 18px; transition: background-color .4s; }
body.vt-on .vt-hstone > a:hover { background: rgba(255, 255, 255, .7); }
.vt-on .vt-hstone__img { position: relative; display: grid; place-items: center; width: 100%; height: 190px; padding-bottom: 18px; }
.vt-on .vt-hstone .vt-stone__float { width: 150px; animation-delay: calc(var(--i) * -.9s); }
.vt-on .vt-hstone img { width: 100%; height: 150px; object-fit: contain; filter: drop-shadow(0 16px 16px rgba(60, 45, 20, .2)); transition: transform .8s var(--vt-in); }
.vt-on .vt-hstone > a:hover img { transform: translateY(-6px) rotate(-5deg) scale(1.05); }
.vt-on .vt-hstone .vt-stone__shadow { bottom: 0; width: 46%; margin-left: -23%; animation-delay: calc(var(--i) * -.9s), 0s; }
.vt-on .vt-hstone__name { margin-top: 12px; font-size: 21px; font-weight: 400; letter-spacing: -.01em; }
.vt-on .vt-hstone__tag { margin-top: 6px; font-size: 14px; font-style: italic; font-weight: 300; color: var(--vt-muted); line-height: 1.4; min-height: 2.8em; }
.vt-on .vt-hstone__more { display: inline-flex; align-items: center; gap: 6px; margin-top: 12px; font-size: 13px; color: var(--vt-gold-text); opacity: 0; transform: translateY(4px); transition: opacity .3s, transform .4s var(--vt-in); }
.vt-on .vt-hstone > a:hover .vt-hstone__more, .vt-on .vt-hstone > a:focus-visible .vt-hstone__more { opacity: 1; transform: none; }
@media (hover: none) { .vt-on .vt-hstone__more { opacity: 1; transform: none; } }
@media (max-width: 767px) {
	.vt-on .vt-hstones__rail { padding: 8px 16px 20px; scroll-padding-left: 16px; }
	.vt-on .vt-hstone { flex-basis: 62%; }
	.vt-on .vt-hstones__nav { display: none; }
}

/* Colección destacada */
.vt-on .vt-hfeat { padding-top: 96px; }

/* Historia */
.vt-on .vt-hstory { position: relative; min-height: 620px; display: flex; align-items: center; overflow: hidden; background: #d9c8ad; }
.vt-on .vt-hstory__img { position: absolute; inset: 0; }
.vt-on .vt-hstory__img img { width: 100%; height: 120%; object-fit: cover; transform: translate3d(0, var(--vt-par, 0px), 0); will-change: transform; }
.vt-on .vt-hstory__in { position: relative; z-index: 1; width: 100%; display: flex; justify-content: flex-end; padding-top: 80px; padding-bottom: 80px; }
.vt-on .vt-hstory__card { max-width: 480px; padding: 44px 44px 40px; border-radius: 18px; background: rgba(251, 248, 244, .92); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: 0 30px 60px -30px rgba(40, 28, 12, .35); }
.vt-on .vt-hstory__card .vt-hsec__more { margin-top: 26px; }
@media (max-width: 767px) {
	.vt-on .vt-hstory { min-height: 0; flex-direction: column; background: #fbf8f4; }
	.vt-on .vt-hstory__img { position: relative; height: 300px; width: 100%; }
	.vt-on .vt-hstory__img img { height: 100%; }
	.vt-on .vt-hstory__in { padding: 0 16px; margin-top: -60px; }
	.vt-on .vt-hstory__card { padding: 28px 24px; margin-bottom: 48px; }
}

/* Prensa */
.vt-on .vt-hpress { padding: 56px 0 72px; border-bottom: 1px solid var(--vt-line); }
.vt-on .vt-hpress .vt-eyebrow { text-align: center; }
.vt-on .vt-hpress__list { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px 44px; margin-top: 22px !important; }
body.vt-on .vt-hpress__list a { font-family: var(--vt-font); font-size: 20px; font-weight: 400; letter-spacing: .02em; color: #9b958c; transition: color .3s; }
body.vt-on .vt-hpress__list a:hover { color: var(--vt-ink); }
@media (max-width: 767px) { body.vt-on .vt-hpress__list a { font-size: 16px; } .vt-on .vt-hpress__list { gap: 10px 24px; } }

/* Aparición al hacer scroll (sin JS se ve todo) */
html.vt-js .vt-on .vt-reveal-up { opacity: 0; transform: translateY(26px); }
html.vt-js .vt-on .vt-reveal-up.is-in { opacity: 1; transform: none; transition: opacity .8s ease calc(var(--i, 0) * .09s), transform 1s var(--vt-in) calc(var(--i, 0) * .09s); }

@media (prefers-reduced-motion: reduce) {
	.vt-on .vt-hero__video, .vt-on .vt-hero__scroll span { animation: none !important; }
	html.vt-js .vt-on .vt-reveal-up { opacity: 1; transform: none; }
	.vt-on .vt-hstory__img img { transform: none; }
}

/* ─────────────────────────── Páginas: Prensa, Eventos, Enlaces ─────────────────────────── */

/* Cabecera editorial (Prensa) */
.vt-on .vt-xhero { background: radial-gradient(900px 420px at 80% 40%, #f3ead9 0%, rgba(243, 234, 217, 0) 70%), #fbf8f4; border-bottom: 1px solid var(--vt-line); }
.vt-on .vt-xhero__in { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: center; gap: 56px; padding-top: 64px; padding-bottom: 64px; }
.vt-on .vt-xhero--noimg .vt-xhero__in { grid-template-columns: 1fr; }
.vt-on .vt-xhero__title { margin-top: 12px !important; font-family: var(--vt-font); font-weight: 300; font-size: clamp(40px, 5.4vw, 76px); line-height: 1; letter-spacing: -.03em; color: var(--vt-ink); text-transform: none; }
.vt-on .vt-xhero__count { margin-top: 22px !important; font-family: var(--vt-label); font-size: 11px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--vt-muted); }
.vt-on .vt-xhero__img { aspect-ratio: 4 / 5; border-radius: 18px; overflow: hidden; box-shadow: 0 40px 70px -40px rgba(40, 28, 12, .45); }
.vt-on .vt-xhero__img img { width: 100%; height: 100%; object-fit: cover; animation: vt-stone-in 1.2s var(--vt-in) both; }
@media (max-width: 899px) {
	.vt-on .vt-xhero__in { grid-template-columns: 1fr; gap: 28px; padding-top: 32px; padding-bottom: 40px; }
	.vt-on .vt-xhero__img { aspect-ratio: 4 / 3; order: -1; }
}

/* Prensa */
.vt-on .vt-press__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 56px 28px; }
body.vt-on .vt-pcard > a { display: flex; flex-direction: column; gap: 10px; height: 100%; }
.vt-on .vt-pcard__img { display: block; aspect-ratio: 4 / 5; border-radius: 16px; overflow: hidden; background: #eee7db; margin-bottom: 8px; }
.vt-on .vt-pcard__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--vt-in); }
.vt-on .vt-pcard > a:hover .vt-pcard__img img { transform: scale(1.05); }
.vt-on .vt-pcard__title { font-size: 23px; font-weight: 400; line-height: 1.2; letter-spacing: -.015em; color: var(--vt-ink); }
.vt-on .vt-pcard__text { font-size: 15px; line-height: 1.6; color: var(--vt-ink-2); font-weight: 300; display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; }
.vt-on .vt-pcard .vt-hsec__more { align-self: flex-start; margin-top: auto; }
.vt-on .vt-pcard > a:hover .vt-hsec__more { gap: 14px; }
@media (max-width: 1023px) { .vt-on .vt-press__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { .vt-on .vt-press__grid { grid-template-columns: 1fr; gap: 44px; } }

/* Banda con foto (Eventos) */
.vt-on .vt-xband { position: relative; min-height: 520px; display: flex; align-items: flex-end; overflow: hidden; background: #1a1512; color: #fff; }
.vt-on .vt-xband--noimg { min-height: 0; background: #fbf8f4; color: var(--vt-ink); }
.vt-on .vt-xband__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 25%; animation: vt-hero-zoom 18s ease-out both; }
.vt-on .vt-xband::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(14, 10, 8, .82) 0%, rgba(14, 10, 8, .35) 50%, rgba(14, 10, 8, .1) 100%), linear-gradient(90deg, rgba(14, 10, 8, .55) 0%, rgba(14, 10, 8, 0) 60%); }
.vt-on .vt-xband { min-height: 600px; }
.vt-on .vt-xband--noimg::after { display: none; }
.vt-on .vt-xband__in { position: relative; z-index: 1; width: 100%; padding-top: 140px; padding-bottom: 56px; }
.vt-on .vt-xband__title { margin-top: 14px !important; font-family: var(--vt-font); font-weight: 300; font-size: clamp(40px, 5.6vw, 80px); line-height: 1; letter-spacing: -.03em; color: inherit; text-transform: none; max-width: 16ch; }
.vt-on .vt-xband__text { margin-top: 18px !important; max-width: 60ch; font-size: 17px; line-height: 1.6; font-weight: 300; color: rgba(255, 255, 255, .86); }
.vt-on .vt-xband__nav { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
@media (max-width: 767px) { .vt-on .vt-xband { min-height: 460px; } .vt-on .vt-xband__in { padding-top: 110px; padding-bottom: 36px; } .vt-on .vt-xband__text { font-size: 15.5px; } }

.vt-on .vt-event + .vt-event { border-top: 1px solid var(--vt-line); }
.vt-on .vt-event__in { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 56px; align-items: start; }
.vt-on .vt-event__in.is-alt { grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); }
.vt-on .vt-event__in.is-alt .vt-event__txt { order: 2; }
.vt-on .vt-event__txt { position: sticky; top: calc(var(--vt-head) + 32px); }
.vt-on .vt-event__count { margin-top: 20px !important; font-family: var(--vt-label); font-size: 11px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--vt-muted); }
.vt-on .vt-event__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.vt-on .vt-event__grid > li { aspect-ratio: 4 / 5; }
.vt-on .vt-event__grid--3 > li:first-child { grid-column: span 2; grid-row: span 2; aspect-ratio: auto; }
.vt-on .vt-event__grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.vt-on .vt-event__grid--1 { grid-template-columns: 1fr; }
body.vt-on .vt-event__grid a { display: block; height: 100%; border-radius: 14px; overflow: hidden; background: #eee7db; cursor: zoom-in; }
.vt-on .vt-event__grid img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--vt-in); }
.vt-on .vt-event__grid a:hover img { transform: scale(1.05); }
@media (max-width: 899px) {
	.vt-on .vt-event__in, .vt-on .vt-event__in.is-alt { grid-template-columns: 1fr; gap: 28px; }
	.vt-on .vt-event__in.is-alt .vt-event__txt { order: 0; }
	.vt-on .vt-event__txt { position: static; }
	.vt-on .vt-event__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
	.vt-on .vt-event__grid--3 > li:first-child { grid-column: span 2; grid-row: auto; aspect-ratio: 4 / 3; }
}

/* Enlaces (link en la bio) */
.vt-on .vt-links { position: relative; min-height: calc(100svh - var(--vt-head)); display: flex; justify-content: center; padding: 48px 16px 64px; background: radial-gradient(700px 420px at 50% 0%, #f3ead9 0%, rgba(243, 234, 217, 0) 70%), #fbf8f4; overflow: hidden; }
.vt-on .vt-links__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .16; filter: saturate(.8); }
.vt-on .vt-links__card { position: relative; width: 100%; max-width: 480px; display: flex; flex-direction: column; align-items: center; text-align: center; }
.vt-on .vt-links__avatar { width: 132px; height: 132px; border-radius: 50%; overflow: hidden; box-shadow: 0 0 0 4px #fff, 0 0 0 5px var(--vt-gold), 0 24px 40px -20px rgba(40, 28, 12, .5); }
.vt-on .vt-links__avatar img { width: 100%; height: 100%; object-fit: cover; }
.vt-on .vt-links__name { margin-top: 22px !important; font-family: var(--vt-font); font-weight: 400; font-size: 30px; letter-spacing: -.02em; color: var(--vt-ink); text-transform: none; }
.vt-on .vt-links__text { margin-top: 8px !important; font-size: 15.5px; line-height: 1.55; color: var(--vt-ink-2); font-weight: 300; max-width: 40ch; }
.vt-on .vt-links__list { width: 100%; display: grid; gap: 12px; margin-top: 28px !important; }
body.vt-on .vt-link-btn {
	display: grid; grid-template-columns: 44px minmax(0, 1fr) 20px; align-items: center; gap: 14px; text-align: left;
	padding: 14px 18px 14px 14px; border-radius: 16px; background: rgba(255, 255, 255, .9); border: 1px solid var(--vt-line);
	box-shadow: 0 10px 24px -18px rgba(40, 28, 12, .4);
	transition: transform .35s var(--vt-in), border-color .25s, box-shadow .35s;
}
body.vt-on .vt-link-btn:hover { transform: translateY(-2px); border-color: var(--vt-gold); box-shadow: 0 18px 30px -18px rgba(40, 28, 12, .45); }
.vt-on .vt-link-btn__ic { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: #f4ecd9; color: var(--vt-gold-text); }
.vt-on .vt-link-btn__txt { display: grid; gap: 2px; }
.vt-on .vt-link-btn__txt strong { font-size: 16.5px; font-weight: 500; color: var(--vt-ink); }
.vt-on .vt-link-btn__txt small { font-size: 13.5px; color: var(--vt-muted); line-height: 1.4; }
.vt-on .vt-link-btn__go { color: var(--vt-muted); }
.vt-on .vt-links__social { display: flex; gap: 10px; margin-top: 26px !important; }
body.vt-on .vt-links__social .vt-iconbtn { width: 48px; height: 48px; border: 1px solid var(--vt-line-2); background: #fff; }
body.vt-on .vt-links__social .vt-iconbtn:hover { border-color: var(--vt-ink); }

/* Categorías sin piedras (ej. NNT Lab): cabecera simple en vez del banner de joyas. */
.vt-on .vt-plainhead { padding: 64px 0 40px; background: radial-gradient(900px 360px at 20% 30%, #f3ead9 0%, rgba(243, 234, 217, 0) 70%), #fbf8f4; border-bottom: 1px solid var(--vt-line); }
.vt-on .vt-plainhead__title { margin-top: 10px !important; font-family: var(--vt-font); font-weight: 300; font-size: clamp(40px, 5.4vw, 72px); line-height: 1; letter-spacing: -.03em; color: var(--vt-ink); text-transform: none; }
@media (max-width: 767px) { .vt-on .vt-plainhead { padding: 40px 0 28px; } }

/* Categorías sin piedras (ej. NNT Lab): cabecera simple en vez del banner de joyas. */
.vt-on .vt-plainhead { padding: 64px 0 40px; background: radial-gradient(900px 360px at 20% 30%, #f3ead9 0%, rgba(243, 234, 217, 0) 70%), #fbf8f4; border-bottom: 1px solid var(--vt-line); }
.vt-on .vt-plainhead__title { margin-top: 10px !important; font-family: var(--vt-font); font-weight: 300; font-size: clamp(40px, 5.4vw, 72px); line-height: 1; letter-spacing: -.03em; color: var(--vt-ink); text-transform: none; }
@media (max-width: 767px) { .vt-on .vt-plainhead { padding: 40px 0 28px; } }
