/* ==========================================================================
   Viki Frau · Private Chef — estilos del tema
   Réplica 1:1 del diseño original (Tailwind) con clases semánticas vf-*.
   Breakpoints: sm 640px · md 768px · lg 1024px
   ========================================================================== */

:root {
	--vf-marfil: var(--wp--preset--color--marfil, #F7F4ED);
	--vf-oliva: var(--wp--preset--color--oliva, #353A25);
	--vf-salvia: var(--wp--preset--color--salvia, #858B70);
	--vf-mostaza: var(--wp--preset--color--mostaza, #B68A32);
	--vf-terracota: var(--wp--preset--color--terracota, #A65D32);
	--vf-carbon: var(--wp--preset--color--carbon, #292923);
	--vf-white: #FFFFFF;
	--vf-serif: var(--wp--preset--font-family--serif, 'Cormorant Garamond', Georgia, serif);
	--vf-sans: var(--wp--preset--font-family--sans, 'Montserrat', system-ui, -apple-system, sans-serif);
	--vf-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
	--vf-fg: var(--vf-carbon);
	--vf-gold-20: color-mix(in srgb, var(--vf-mostaza) 20%, transparent);
	--vf-gold-30: color-mix(in srgb, var(--vf-mostaza) 30%, transparent);
	--vf-gold-40: color-mix(in srgb, var(--vf-mostaza) 40%, transparent);
	--vf-shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05);
	--vf-shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
	--vf-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
	--vf-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
	--vf-shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
	--vf-shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);
	--vf-admin-bar: var(--wp-admin--admin-bar--height, 0px);
	--vf-i-arrow: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5%2012h14%22%20/%3E%3Cpath%20d%3D%22m12%205%207%207-7%207%22%20/%3E%3C/svg%3E");
	--vf-i-check: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M20%206%209%2017l-5-5%22%20/%3E%3C/svg%3E");
	--vf-i-users: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M16%2021v-2a4%204%200%200%200-4-4H6a4%204%200%200%200-4%204v2%22%20/%3E%3Cpath%20d%3D%22M16%203.128a4%204%200%200%201%200%207.744%22%20/%3E%3Cpath%20d%3D%22M22%2021v-2a4%204%200%200%200-3-3.87%22%20/%3E%3Ccircle%20cx%3D%229%22%20cy%3D%227%22%20r%3D%224%22%20/%3E%3C/svg%3E");
	--vf-i-heart: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M19.414%2014.414C21%2012.828%2022%2011.5%2022%209.5a5.5%205.5%200%200%200-9.591-3.676.6.6%200%200%201-.818.001A5.5%205.5%200%200%200%202%209.5c0%202.3%201.5%204%203%205.5l5.535%205.362a2%202%200%200%200%202.879.052%202.12%202.12%200%200%200-.004-3%202.124%202.124%200%201%200%203-3%202.124%202.124%200%200%200%203.004%200%202%202%200%200%200%200-2.828l-1.881-1.882a2.41%202.41%200%200%200-3.409%200l-1.71%201.71a2%202%200%200%201-2.828%200%202%202%200%200%201%200-2.828l2.823-2.762%22%20/%3E%3C/svg%3E");
	--vf-i-check-gold: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23B68A32%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M20%206%209%2017l-5-5%22%20/%3E%3C/svg%3E");
}

/* ---------- Base ---------- */
html { scroll-behavior: smooth; }
body {
	overflow-x: hidden;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	background-color: var(--vf-marfil);
	color: var(--vf-carbon);
	font-family: var(--vf-sans);
}
::selection { background: color-mix(in srgb, var(--vf-mostaza) 30%, transparent); color: var(--vf-carbon); }
.vf-main *, .vf-main *::before, .vf-main *::after,
.vf-header-root *, .vf-footer *, .vf-modal *, .vf-lightbox *, .vf-wa *, .vf-toast * { box-sizing: border-box; }
body .vf-main :where(p, h1, h2, h3, h4, h5, h6, ul, ol, figure, blockquote, cite) { margin: 0; }
body .vf-main :where(.vf-section ul, .vf-section ol) { padding: 0; list-style: none; }
body .vf-main :where(h1, h2, h3) { font-family: var(--vf-serif); font-weight: 400; }
body .vf-main a { color: inherit; }
body .vf-main img { max-width: 100%; }
.vf-main { display: block; }
body:not(.vf-header-transparent) .vf-main { padding-top: 5rem; }
body.vf-route-gallery .vf-main { padding-top: 6rem; }
@media (min-width: 768px) {
	body:not(.vf-header-transparent) .vf-main { padding-top: 6rem; }
	body.vf-route-gallery .vf-main { padding-top: 7rem; }
}
[id] { scroll-margin-top: 5rem; }

/* Fondos oscuros: el texto pasa a marfil */
.has-oliva-background-color, .has-carbon-background-color, .has-terracota-background-color, .has-mostaza-background-color,
.vf-hero-home, .vf-hero-villas, .vf-floating-card, .vf-quote-dark, .vf-package--featured, .vf-footer { --vf-fg: var(--vf-marfil); }
.has-marfil-background-color, .has-blanco-background-color, .has-salvia-background-color { --vf-fg: var(--vf-carbon); }

/* ---------- Layout ---------- */
body .vf-container { width: 100%; max-width: 80rem; margin-inline: auto; padding-inline: 1.5rem; }
@media (min-width: 768px) { body .vf-container { padding-inline: 3rem; } }
body .vf-container.vf-w-5xl { max-width: 64rem; }
body .vf-container.vf-w-4xl { max-width: 56rem; }
body .vf-container.vf-w-3xl { max-width: 48rem; }
body .vf-container.vf-w-2xl { max-width: 42rem; }
body .vf-container.vf-px-6 { padding-inline: 1.5rem; }

.vf-section { position: relative; }
body .vf-py-24-36 { padding-block: 6rem; }
body .vf-py-24-32 { padding-block: 6rem; }
body .vf-py-20-28 { padding-block: 5rem; }
body .vf-py-20-32 { padding-block: 5rem; }
body .vf-py-16-24 { padding-block: 4rem; }
body .vf-py-20 { padding-block: 5rem; }
@media (min-width: 768px) {
	body .vf-py-24-36 { padding-block: 9rem; }
	body .vf-py-24-32 { padding-block: 8rem; }
	body .vf-py-20-28 { padding-block: 7rem; }
	body .vf-py-20-32 { padding-block: 8rem; }
	body .vf-py-16-24 { padding-block: 6rem; }
}
body .vf-bb { border-bottom: 1px solid var(--vf-gold-20); }
body .vf-bb-strong { border-bottom: 1px solid var(--vf-gold-30); }
body .vf-bt-strong { border-top: 1px solid var(--vf-gold-30); }
body .vf-bg-salvia-10 { background-color: color-mix(in srgb, var(--vf-salvia) 10%, transparent); }
body .vf-bg-carbon { background-color: var(--vf-carbon); }
.vf-relative { position: relative; }
.vf-z-10 { z-index: 10; }
.vf-overflow-hidden { overflow: hidden; }
body .vf-center { text-align: center; }
body .vf-mw-xl { max-width: 36rem; }
body .vf-mw-2xl { max-width: 42rem; }
body .vf-mw-3xl { max-width: 48rem; }
body .vf-center:is(.vf-mw-xl, .vf-mw-2xl, .vf-mw-3xl), body .vf-center :is(.vf-mw-xl, .vf-mw-2xl, .vf-mw-3xl) { margin-inline: auto; }
body .vf-pt-2 { padding-top: 0.5rem; }
body .vf-pt-4 { padding-top: 1rem; }
body .vf-pt-8 { padding-top: 2rem; }
body .vf-mb-20 { margin-bottom: 5rem; }
@media (min-width: 1024px) { body .vf-lg-pl-6 { padding-left: 1.5rem; } body .vf-lg-pl-4 { padding-left: 1rem; } }

/* Espaciado vertical entre hijos (equivalente a space-y-*) */
body .vf-stack-2 > * + * { margin-top: 0.5rem; }
body .vf-stack-3 > * + * { margin-top: 0.75rem; }
body .vf-stack-4 > * + * { margin-top: 1rem; }
body .vf-stack-5 > * + * { margin-top: 1.25rem; }
body .vf-stack-6 > * + * { margin-top: 1.5rem; }
body .vf-stack-8 > * + * { margin-top: 2rem; }
body .vf-stack-12 > * + * { margin-top: 3rem; }
body .vf-stack-16 > * + * { margin-top: 4rem; }
body .vf-stack-20 > * + * { margin-top: 5rem; }
body .vf-stack-24 > * + * { margin-top: 6rem; }

/* Rejillas */
body :is(.vf-grid-12, .vf-grid-2, .vf-grid-3, .vf-grid-2-3, .vf-grid-2-4, .vf-grid-2-4s, .vf-steps-5, .vf-packages, .vf-pillars) { display: grid; grid-template-columns: minmax(0, 1fr); }
body .vf-items-center { align-items: center; }
body .vf-gap-6 { gap: 1.5rem; }
body .vf-gap-8 { gap: 2rem; }
body .vf-gap-10 { gap: 2.5rem; }
body .vf-gap-8-12 { gap: 2rem; }
body .vf-gap-10-16 { gap: 2.5rem; }
body .vf-gap-12-16 { gap: 3rem; }
@media (min-width: 640px) {
	body .vf-grid-2-4s, body .vf-steps-5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body .vf-pillars { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 768px) {
	body .vf-grid-2, body .vf-grid-2-3, body .vf-grid-2-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body .vf-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
	body .vf-grid-12 { grid-template-columns: repeat(12, minmax(0, 1fr)); }
	body .vf-col-5 { grid-column: span 5 / span 5; }
	body .vf-col-7 { grid-column: span 7 / span 7; }
	body .vf-grid-2-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	body .vf-grid-2-4, body .vf-grid-2-4s { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	body .vf-steps-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
	body .vf-packages { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	body .vf-gap-8-12 { gap: 3rem; }
	body .vf-gap-10-16, body .vf-gap-12-16 { gap: 4rem; }
	body .vf-order-2-1 { order: 1; }
	body .vf-order-1-2 { order: 2; }
}
@media (max-width: 1023.98px) {
	body .vf-order-2-1 { order: 2; }
	body .vf-order-1-2 { order: 1; }
}
body .vf-exp--bordered { padding-top: 3rem; border-top: 1px solid var(--vf-gold-20); }

/* ---------- Tipografía ---------- */
body .vf-main :is(h1, h2, h3, h4) { color: var(--vf-fg); }
body .vf-main .vf-c-oliva { color: var(--vf-oliva); }
body .vf-main .has-oliva-background-color .vf-c-oliva { color: var(--vf-marfil); }

body .vf-h-2xl { font-size: 1.5rem; line-height: 2rem; }
body .vf-h-2-3 { font-size: 1.5rem; line-height: 2rem; }
body .vf-h-3-4, body .vf-h-3-5, body .vf-h-3-4-5, body .vf-h-3-5-6, body .vf-h-3-5-6-7 { font-size: 1.875rem; line-height: 2.25rem; }
body .vf-h-4-6-7 { font-size: 2.25rem; line-height: 2.5rem; }
@media (min-width: 640px) {
	body .vf-h-2-3 { font-size: 1.875rem; line-height: 2.25rem; }
	body .vf-h-3-4, body .vf-h-3-4-5 { font-size: 2.25rem; line-height: 2.5rem; }
	body .vf-h-3-5, body .vf-h-3-5-6, body .vf-h-3-5-6-7 { font-size: 3rem; line-height: 1; }
	body .vf-h-4-6-7 { font-size: 3.75rem; line-height: 1; }
}
@media (min-width: 768px) {
	body .vf-h-3-4-5 { font-size: 3rem; line-height: 1; }
	body .vf-h-3-5-6, body .vf-h-3-5-6-7 { font-size: 3.75rem; line-height: 1; }
	body .vf-h-4-6-7 { font-size: 4.5rem; line-height: 1; }
}
@media (min-width: 1024px) { body .vf-h-3-5-6-7 { font-size: 4.5rem; line-height: 1; } }
body .vf-main .vf-leading-tight { line-height: 1.25; }

body .vf-body, body .vf-prose { font-family: var(--vf-sans); font-size: 0.875rem; line-height: 1.625; font-weight: 300; color: color-mix(in srgb, var(--vf-fg) 80%, transparent); }
@media (min-width: 640px) { body .vf-body, body .vf-prose { font-size: 1rem; } }
body .vf-body-lg { font-size: 1rem; line-height: 1.625; font-weight: 300; color: color-mix(in srgb, var(--vf-fg) 80%, transparent); }
@media (min-width: 640px) { body .vf-body-lg { font-size: 1.125rem; } }
body .vf-lead { font-family: var(--vf-sans); font-weight: 300; font-size: 1rem; line-height: 1.625; color: color-mix(in srgb, var(--vf-fg) 90%, transparent); }
@media (min-width: 768px) { body .vf-lead { font-size: 1.125rem; } }
body .vf-lead-sm { font-weight: 300; font-size: 0.875rem; line-height: 1.625; color: color-mix(in srgb, var(--vf-fg) 85%, transparent); }
@media (min-width: 640px) { body .vf-lead-sm { font-size: 1rem; } }
@media (min-width: 768px) { body .vf-lead-sm { font-size: 1.125rem; } }
body .vf-small { font-family: var(--vf-sans); font-size: 0.875rem; line-height: 1.625; font-weight: 300; color: color-mix(in srgb, var(--vf-fg) 75%, transparent); }
body .vf-small a, body .vf-step__text a { text-decoration: underline; font-weight: 500; color: var(--vf-oliva); }
body .vf-small a:hover, body .vf-step__text a:hover { color: var(--vf-mostaza); }
.has-oliva-background-color .vf-step__text a { color: var(--vf-white); }
.has-oliva-background-color .vf-step__text a:hover { color: var(--vf-mostaza); }
body .vf-main .vf-op-75 { color: color-mix(in srgb, var(--vf-fg) 75%, transparent); }
body .vf-main .vf-op-80 { color: color-mix(in srgb, var(--vf-fg) 80%, transparent); }
body .vf-main .vf-op-85 { color: color-mix(in srgb, var(--vf-fg) 85%, transparent); }
body .vf-fineprint { font-family: var(--vf-sans); font-size: 0.75rem; line-height: 1rem; letter-spacing: 0.05em; color: var(--vf-salvia); }
body .vf-tag { font-family: var(--vf-mono); font-size: 0.75rem; line-height: 1rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--vf-mostaza); }
body .vf-tag--semibold { font-weight: 600; }
body .vf-num { font-family: var(--vf-mono); color: var(--vf-mostaza); display: block; }
body .vf-num--xs { font-size: 0.75rem; line-height: 1rem; }
body .vf-num--2xl { font-size: 1.5rem; line-height: 2rem; }
body .vf-num--3xl, body .vf-num--3xl-4xl { font-size: 1.875rem; line-height: 2.25rem; }
@media (min-width: 640px) { body .vf-num--3xl-4xl { font-size: 2.25rem; line-height: 2.5rem; } }
body .vf-line-label { font-family: var(--vf-sans); font-size: 0.75rem; line-height: 1rem; letter-spacing: 0.22em; text-transform: uppercase; font-weight: 600; color: var(--vf-mostaza); }
body .vf-claim { font-family: var(--vf-serif); font-style: italic; font-size: 1.25rem; line-height: 1.375; color: var(--vf-mostaza); }
@media (min-width: 640px) { body .vf-claim { font-size: 1.5rem; } }
@media (min-width: 768px) { body .vf-claim { font-size: 1.875rem; } }
body .vf-subtitle-gold { font-family: var(--vf-serif); font-style: italic; font-size: 1.125rem; line-height: 1.75rem; color: var(--vf-mostaza); }
@media (min-width: 640px) { body .vf-subtitle-gold { font-size: 1.25rem; line-height: 1.75rem; } }
body .vf-quote-lead { font-family: var(--vf-serif); font-style: italic; font-size: 1.125rem; line-height: 1.75rem; color: color-mix(in srgb, var(--vf-fg) 80%, transparent); }
@media (min-width: 640px) { body .vf-quote-lead { font-size: 1.25rem; line-height: 1.75rem; } }

/* Etiquetas en línea del diseño original: no separan del siguiente elemento */
body .vf-main :is(.vf-num--xs, .vf-line-label, .vf-tag--inline) { line-height: 1.5rem; }
body .vf-main :is(.vf-num--xs, .vf-line-label, .vf-tag--inline) + * { margin-top: 0; }

/* Antetítulo «02 —— SECCIÓN» */
body .vf-eyebrow { display: flex; align-items: center; gap: 0.75rem; flex-wrap: nowrap; }
body .vf-eyebrow > * + * { margin-top: 0; }
body .vf-eyebrow__num { display: inline-flex; align-items: center; gap: 0.75rem; font-family: var(--vf-mono); font-size: 0.75rem; line-height: 1rem; color: var(--vf-mostaza); letter-spacing: 0.05em; white-space: nowrap; }
body .vf-eyebrow__num::after { content: ""; display: block; width: 2rem; height: 1px; background: var(--vf-gold-40); }
body .vf-eyebrow__label { font-size: 0.75rem; line-height: 1rem; letter-spacing: 0.25em; text-transform: uppercase; color: var(--vf-salvia); font-weight: 500; }
body .vf-eyebrow--gold .vf-eyebrow__label { color: var(--vf-mostaza); font-weight: 600; }

/* Etiquetas «Yoga · Buceo · …» */
body .vf-main ul.vf-tags { display: flex; flex-wrap: wrap; column-gap: 1rem; row-gap: 0.5rem; font-family: var(--vf-sans); font-size: 0.75rem; line-height: 1rem; color: var(--vf-salvia); padding: 0; list-style: none; }
body .vf-tags li { display: inline-flex; gap: 1rem; margin: 0; }
body .vf-tags li + li::before { content: "·"; }

/* Lista con ✓ */
body .vf-main ul.vf-checklist, body .vf-main ul.is-style-vf-check { font-size: 0.75rem; font-weight: 300; padding: 0; list-style: none; }
@media (min-width: 640px) { body .vf-main ul.vf-checklist, body .vf-main ul.is-style-vf-check { font-size: 0.875rem; } }
body .vf-checklist li, body .is-style-vf-check li { display: flex; align-items: flex-start; gap: 0.625rem; line-height: 1.625; margin: 0; }
body .vf-checklist li + li, body .is-style-vf-check li + li { margin-top: 0.875rem; }
body .vf-checklist li::before, body .is-style-vf-check li::before { content: ""; flex: 0 0 1rem; width: 1rem; height: 1rem; margin-top: 0.125rem; background: var(--vf-mostaza); -webkit-mask: var(--vf-i-check) center / contain no-repeat; mask: var(--vf-i-check) center / contain no-repeat; }

/* Icono + texto */
body .vf-icon-text { display: inline-flex; align-items: center; gap: 0.5rem; }
body .vf-icon-text::before { content: ""; width: 1rem; height: 1rem; flex: 0 0 1rem; background: var(--vf-mostaza); -webkit-mask: var(--vf-icon) center / contain no-repeat; mask: var(--vf-icon) center / contain no-repeat; }
.vf-icon-heart { --vf-icon: var(--vf-i-heart); }

/* Distintivo «Para grupos desde 8 personas» */
body .vf-main .vf-badge { display: inline-flex; align-items: center; gap: 0.625rem; padding: 0.5rem 1rem; background: color-mix(in srgb, var(--vf-salvia) 20%, transparent); border: 1px solid var(--vf-gold-40); font-family: var(--vf-sans); font-size: 0.75rem; line-height: 1rem; letter-spacing: 0.05em; color: var(--vf-marfil); }
@media (min-width: 640px) { body .vf-main .vf-badge { font-size: 0.875rem; line-height: 1.25rem; } }
body .vf-badge::before { content: ""; width: 1rem; height: 1rem; flex: 0 0 1rem; background: var(--vf-mostaza); -webkit-mask: var(--vf-i-users) center / contain no-repeat; mask: var(--vf-i-users) center / contain no-repeat; }

/* ---------- Botones ---------- */
body .wp-block-buttons { gap: 1rem; }
body .wp-block-button[class*="is-style-vf-"] .wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.75rem;
	font-family: var(--vf-sans); font-size: 0.75rem; line-height: 1rem; letter-spacing: 0.2em; text-transform: uppercase; font-weight: 500;
	border-radius: 0; border: 1px solid transparent; padding: 0.75rem 1.5rem; text-decoration: none; cursor: pointer;
	transition: color .3s, background-color .3s, border-color .3s, box-shadow .3s;
}
body .wp-block-button.vf-btn-lg .wp-block-button__link { padding: 0.875rem 2rem; }
body .wp-block-button.vf-btn-lg:is(.is-style-vf-outline-light, .is-style-vf-outline-dark) .wp-block-button__link { padding-inline: 1.75rem; }
body .wp-block-button.vf-btn-sm .wp-block-button__link { padding: 0.625rem 1.5rem; font-size: 11px; letter-spacing: 0.1em; }
body .wp-block-button.vf-btn-block { width: 100%; }
body .wp-block-button.vf-btn-block .wp-block-button__link { width: 100%; padding-block: 0.875rem; gap: 0.5rem; }
body .wp-block-button.is-style-vf-primary .wp-block-button__link { background-color: var(--vf-mostaza); color: var(--vf-marfil); }
body .wp-block-button.is-style-vf-primary.vf-btn-lg .wp-block-button__link { box-shadow: var(--vf-shadow-md); }
body .wp-block-button.is-style-vf-primary .wp-block-button__link:hover { background-color: var(--vf-salvia); color: var(--vf-marfil); }
body .wp-block-button.is-style-vf-dark .wp-block-button__link { background-color: var(--vf-oliva); color: var(--vf-marfil); }
body .wp-block-button.is-style-vf-dark .wp-block-button__link:hover { background-color: var(--vf-mostaza); color: var(--vf-marfil); }
body .wp-block-button.is-style-vf-outline-light .wp-block-button__link { background-color: transparent; border-color: rgb(255 255 255 / .4); color: var(--vf-white); }
body .wp-block-button.is-style-vf-outline-light .wp-block-button__link:hover { border-color: var(--vf-white); background-color: rgb(255 255 255 / .1); color: var(--vf-white); }
body .wp-block-button.is-style-vf-outline-dark .wp-block-button__link { background-color: transparent; border-color: var(--vf-oliva); color: var(--vf-oliva); }
body .wp-block-button.is-style-vf-outline-dark .wp-block-button__link:hover { background-color: var(--vf-oliva); color: var(--vf-marfil); }
body .wp-block-button.is-style-vf-link .wp-block-button__link { background-color: transparent; padding: 0 0 0.25rem; border: 0; border-bottom: 1px solid var(--vf-mostaza); color: var(--vf-mostaza); }
body .wp-block-button.is-style-vf-link .wp-block-button__link:hover { color: var(--vf-oliva); border-color: var(--vf-oliva); }
body .wp-block-button.is-style-vf-link-dark .wp-block-button__link { background-color: transparent; padding: 0; gap: 0.5rem; color: var(--vf-oliva); }
body .wp-block-button.is-style-vf-link-dark .wp-block-button__link:hover { color: var(--vf-mostaza); }
body .wp-block-button.is-style-vf-link-gold .wp-block-button__link { background-color: transparent; padding: 0; gap: 0.5rem; letter-spacing: 0.1em; font-weight: 600; color: var(--vf-mostaza); }
body .wp-block-button.is-style-vf-link-gold .wp-block-button__link:hover { color: var(--vf-oliva); }
body .vf-has-arrow .wp-block-button__link::after {
	content: ""; width: 0.875rem; height: 0.875rem; flex: 0 0 auto; background: currentColor;
	-webkit-mask: var(--vf-i-arrow) center / contain no-repeat; mask: var(--vf-i-arrow) center / contain no-repeat;
	transition: transform .3s;
}
body .vf-has-arrow.vf-btn-lg .wp-block-button__link::after { width: 1rem; height: 1rem; }
body .vf-has-arrow .wp-block-button__link:hover::after { transform: translateX(0.25rem); }
body .vf-buttons-stack { flex-direction: column; align-items: center; }
@media (min-width: 640px) { body .vf-buttons-stack { flex-direction: row; } }

/* ---------- Imágenes ---------- */
body .vf-main figure.vf-frame, body .vf-main figure.vf-occasion__image { position: relative; overflow: hidden; margin: 0; }
body .vf-main figure.vf-frame { border: 1px solid var(--vf-gold-20); }
body .vf-main figure.vf-frame--strong { border-color: var(--vf-gold-30); }
body .vf-main :is(.vf-frame, .vf-occasion__image) img { display: block; width: 100%; height: auto; object-fit: cover; transition: transform .7s; }
body .vf-shadow-md { box-shadow: var(--vf-shadow-md); }
body .vf-shadow-lg { box-shadow: var(--vf-shadow-lg); }
body .vf-shadow-xl { box-shadow: var(--vf-shadow-xl); }
body .vf-shadow-2xl { box-shadow: var(--vf-shadow-2xl); }
body .vf-zoom:hover img { transform: scale(1.03); }
body .vf-zoom-sm:hover img { transform: scale(1.02); }
body .vf-occasion:hover .vf-occasion__image img { transform: scale(1.04); }
body .vf-frame .wp-lightbox-container, body .vf-frame .wp-lightbox-container img { cursor: zoom-in; }

/* ---------- Portada: hero ---------- */
body .vf-hero-home.wp-block-cover { height: 100vh; min-height: 640px; padding: 0; background-color: var(--vf-carbon); color: var(--vf-marfil); overflow: hidden; display: flex; align-items: center; justify-content: center; }
body .vf-hero-home .wp-block-cover__inner-container { width: 100%; color: var(--vf-marfil); }
body .vf-kenburns .wp-block-cover__image-background { animation: vfKenBurns 26s cubic-bezier(0.25, 1, 0.5, 1) infinite alternate; will-change: transform; }
@keyframes vfKenBurns { 0% { transform: scale(1); } 50% { transform: scale(1.08); } 100% { transform: scale(1); } }
body .vf-hero-home__inner { max-width: 64rem; margin-inline: auto; padding-inline: 1.5rem; text-align: center; display: flex; flex-direction: column; align-items: center; }
@media (min-width: 768px) { body .vf-hero-home__inner { padding-inline: 3rem; } }
body .vf-hero-home__eyebrow { font-size: 10px; line-height: 1.5; letter-spacing: 0.35em; text-transform: uppercase; color: var(--vf-mostaza); font-weight: 500; margin-bottom: 1rem !important; }
@media (min-width: 768px) { body .vf-hero-home__eyebrow { font-size: 0.75rem; line-height: 1rem; } }
body .vf-hero-home__title { font-family: var(--vf-serif); font-size: 1.875rem; letter-spacing: -0.025em; line-height: 1.08 !important; color: var(--vf-marfil) !important; max-width: 56rem; }
@media (min-width: 640px) { body .vf-hero-home__title { font-size: 3rem; } }
@media (min-width: 768px) { body .vf-hero-home__title { font-size: 3.75rem; } }
@media (min-width: 1024px) { body .vf-hero-home__title { font-size: 4.5rem; } }
body .vf-hero-home__subtitle { font-weight: 300; font-size: 0.875rem; line-height: 1.625; color: color-mix(in srgb, var(--vf-marfil) 90%, transparent); max-width: 42rem; margin-top: 1.5rem !important; }
@media (min-width: 640px) { body .vf-hero-home__subtitle { font-size: 1rem; } }
@media (min-width: 768px) { body .vf-hero-home__subtitle { font-size: 1.125rem; } }
body .vf-hero-buttons { margin-top: 2.25rem !important; flex-direction: column; align-items: center; }
@media (min-width: 640px) { body .vf-hero-buttons { flex-direction: row; } }
body .vf-hero-home__trust { margin-top: 2rem !important; font-size: 0.75rem; line-height: 1.625; font-weight: 300; color: color-mix(in srgb, var(--vf-marfil) 85%, transparent); max-width: 36rem; }
@media (min-width: 640px) { body .vf-hero-home__trust { font-size: 0.875rem; } }

/* Retrato con tarjeta flotante */
body .vf-portrait { position: relative; }
body .vf-main .vf-floating-card { display: none; position: absolute; right: -1.5rem; bottom: -1.5rem; max-width: 20rem; padding: 1.25rem; border: 1px solid var(--vf-gold-40); box-shadow: var(--vf-shadow-lg); margin: 0 !important; }
@media (min-width: 640px) { body .vf-main .vf-floating-card { display: block; } }
body .vf-floating-card__label { font-size: 10px; line-height: 1.5; letter-spacing: 0.25em; text-transform: uppercase; color: var(--vf-mostaza); margin-bottom: 0.25rem !important; }
body .vf-floating-card__text { font-family: var(--vf-serif); font-style: italic; font-size: 0.875rem; line-height: 1.25rem; color: color-mix(in srgb, var(--vf-marfil) 90%, transparent); }

/* Cita destacada */
body .vf-callout { padding: 1.5rem; background: color-mix(in srgb, var(--vf-salvia) 10%, transparent); border-left: 2px solid var(--vf-mostaza); }
body .vf-callout__text { font-family: var(--vf-serif); font-style: italic; font-size: 1.125rem; line-height: 1.75rem; color: var(--vf-oliva); }
@media (min-width: 640px) { body .vf-callout__text { font-size: 1.25rem; } }

/* Pasos «Tranquilidad» */
body .vf-steps-5 { gap: 2rem; border-top: 1px solid color-mix(in srgb, var(--vf-marfil) 15%, transparent); padding-top: 3rem; }
body .vf-step { position: relative; }
body .vf-step__title { font-size: 1.25rem; line-height: 1.75rem; }
body .vf-step__text { font-family: var(--vf-sans); font-size: 0.75rem; line-height: 1.625; font-weight: 300; color: color-mix(in srgb, var(--vf-fg) 75%, transparent); }
@media (min-width: 640px) { body .vf-step__text { font-size: 0.875rem; } }
body .vf-pom-footer { margin-top: 4rem !important; padding-top: 2.5rem; border-top: 1px solid color-mix(in srgb, var(--vf-marfil) 15%, transparent); display: flex; flex-direction: column; align-items: center; justify-content: space-between; gap: 1.5rem; font-size: 0.75rem; line-height: 1rem; letter-spacing: 0.05em; color: color-mix(in srgb, var(--vf-marfil) 70%, transparent); }
@media (min-width: 640px) { body .vf-pom-footer { flex-direction: row; } }
body .vf-pom-footer > * + * { margin-top: 0 !important; }

/* La sorpresa */
body .vf-main blockquote.vf-surprise { border: 0; padding: 0; margin: 0 auto; max-width: 56rem; display: flex; flex-direction: column; align-items: center; }
body .vf-surprise p { font-family: var(--vf-serif); font-style: italic; font-size: 1.5rem; line-height: 1.375; color: var(--vf-carbon); }
@media (min-width: 640px) { body .vf-surprise p { font-size: 2.25rem; } }
@media (min-width: 768px) { body .vf-surprise p { font-size: 3rem; } }
body .vf-surprise cite { display: block; margin-top: 2rem; padding-top: 1rem; font-style: normal; font-family: var(--vf-sans); font-size: 0.75rem; line-height: 1rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--vf-oliva); font-weight: 600; }
body .vf-surprise cite::before { content: ""; display: block; width: 3rem; height: 1px; background: var(--vf-mostaza); margin: 0 auto 0.75rem; }

/* Pilares */
body .vf-pillars { gap: 1.5rem; padding-top: 1rem; border-top: 1px solid var(--vf-gold-20); }
body .vf-pillar__title { font-size: 1.125rem; line-height: 1.75rem; color: var(--vf-oliva) !important; }
body .vf-pillar__text { font-size: 0.75rem; line-height: 1.625; font-weight: 300; color: color-mix(in srgb, var(--vf-carbon) 70%, transparent); }

/* Cabecera de bloque con botón a la derecha */
body .vf-split-end { display: flex; flex-direction: column; justify-content: space-between; gap: 1.5rem; }
body .vf-split-end > * + * { margin-top: 0 !important; }
@media (min-width: 768px) { body .vf-split-end { flex-direction: row; align-items: flex-end; } }
body .vf-split-end .wp-block-buttons { align-self: flex-start; }
@media (min-width: 768px) { body .vf-split-end .wp-block-buttons { align-self: auto; } }

/* Pasos «Cómo funciona» */
body .vf-step-line { position: relative; padding-left: 1rem; border-left: 2px solid var(--vf-mostaza); }
body .vf-step-top { border-top: 1px solid color-mix(in srgb, var(--vf-marfil) 20%, transparent); padding-top: 1.5rem; }

/* ---------- Páginas interiores ---------- */
body .vf-hero-retreats .vf-hero-side-image { position: absolute; top: 0; right: 0; bottom: 0; width: 33.333%; opacity: .2; display: none; overflow: hidden; pointer-events: none; margin: 0 !important; }
@media (min-width: 1024px) { body .vf-hero-retreats .vf-hero-side-image { display: block; } }
body .vf-hero-retreats .vf-hero-side-image img { width: 100%; height: 100%; object-fit: cover; }
body .vf-hero-page-buttons { flex-direction: column; align-items: stretch; }
body .vf-hero-page-buttons .wp-block-button__link { width: 100%; }
@media (min-width: 640px) { body .vf-hero-page-buttons { flex-direction: row; align-items: center; } body .vf-hero-page-buttons .wp-block-button__link { width: auto; } }

body .vf-hero-villas.wp-block-cover { min-height: 0; padding: 6rem 0; display: block; background-color: var(--vf-carbon); color: var(--vf-marfil); }
@media (min-width: 768px) { body .vf-hero-villas.wp-block-cover { padding: 9rem 0; } }
body .vf-hero-villas .wp-block-cover__image-background { opacity: .4; }
body .vf-hero-villas .wp-block-cover__inner-container { width: 100%; color: var(--vf-marfil); }

/* Tarjetas */
body .vf-card { padding: 2rem; background: var(--vf-white); border: 1px solid var(--vf-gold-20); box-shadow: var(--vf-shadow-xs); transition: border-color .3s; }
body .vf-card:hover { border-color: var(--vf-mostaza); }
body .vf-card--check::before { content: ""; display: block; width: 2rem; height: 2rem; border-radius: 9999px; margin-bottom: 0.75rem; background: var(--vf-i-check-gold) center / 1rem 1rem no-repeat, color-mix(in srgb, var(--vf-salvia) 15%, transparent); }
body .vf-card__title { font-size: 1.25rem; line-height: 1.75rem; color: var(--vf-oliva) !important; }
body .vf-card__text { font-family: var(--vf-sans); font-size: 0.75rem; line-height: 1.625; font-weight: 300; color: color-mix(in srgb, var(--vf-carbon) 75%, transparent); }
@media (min-width: 640px) { body .vf-card__text { font-size: 0.875rem; } }

/* Paquetes */
body .vf-packages { gap: 2rem; align-items: stretch; }
body .vf-package { position: relative; display: flex; flex-direction: column; justify-content: space-between; padding: 2rem; border: 1px solid var(--vf-gold-20); background: var(--vf-white); color: var(--vf-carbon); transition: all .3s; }
@media (min-width: 640px) { body .vf-package { padding: 2.5rem; } }
body .vf-package:hover { border-color: var(--vf-mostaza); }
body .vf-package.vf-package--featured { border-color: var(--vf-mostaza); box-shadow: var(--vf-shadow-xl); transform: scale(1.02); color: var(--vf-marfil); }
@media (min-width: 1024px) { body .vf-package.vf-package--featured { transform: translateY(-0.5rem) scale(1.02); } }
body .vf-package > * + * { margin-top: 0; }
body .vf-main .vf-package__badge { position: absolute; top: -0.875rem; left: 50%; transform: translateX(-50%); background: var(--vf-mostaza); color: var(--vf-white); font-size: 10px; line-height: 1.5; letter-spacing: 0.25em; text-transform: uppercase; font-weight: 600; padding: 0.25rem 1rem; box-shadow: var(--vf-shadow-sm); white-space: nowrap; }
body .vf-package__title { font-size: 1.5rem; line-height: 2rem; font-weight: 500 !important; padding-bottom: 1rem; border-bottom: 1px solid color-mix(in srgb, currentColor 15%, transparent); color: inherit !important; }
@media (min-width: 640px) { body .vf-package__title { font-size: 1.875rem; line-height: 2.25rem; } }
body .vf-package__cta { padding-top: 2rem; }
body .vf-package--featured .is-style-vf-primary .wp-block-button__link { color: var(--vf-white); }

/* Notas */
body .vf-note { padding: 1.5rem; background: var(--vf-white); border: 1px solid var(--vf-gold-20); }
@media (min-width: 768px) { body .vf-note { padding: 2rem; } }
body .vf-note > * + * { margin-top: 0.5rem; }
body .vf-note--soft { background: color-mix(in srgb, var(--vf-salvia) 10%, transparent); border-color: color-mix(in srgb, var(--vf-mostaza) 25%, transparent); }
body .vf-note__label { display: block; font-size: 10px; line-height: 1.5; letter-spacing: 0.25em; text-transform: uppercase; color: var(--vf-mostaza); font-weight: 600; }
body .vf-note--soft .vf-note__label { color: var(--vf-oliva); }
body .vf-note__text { font-family: var(--vf-sans); font-size: 0.75rem; line-height: 1.625; font-weight: 300; color: color-mix(in srgb, var(--vf-carbon) 80%, transparent); }
@media (min-width: 640px) { body .vf-note__text { font-size: 0.875rem; } }

/* Ocasiones (villas) */
body .vf-occasion { display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; background: var(--vf-white); border: 1px solid var(--vf-gold-20); box-shadow: var(--vf-shadow-xs); transition: border-color .3s; }
body .vf-occasion:hover { border-color: var(--vf-mostaza); }
body .vf-occasion > * + * { margin-top: 0; }
body .vf-occasion__body { padding: 1.5rem; }
body .vf-occasion__title { font-size: 1.25rem; line-height: 1.75rem; color: var(--vf-oliva) !important; }
@media (min-width: 640px) { body .vf-occasion__title { font-size: 1.5rem; line-height: 2rem; } }
body .vf-occasion__footer { padding: 0.5rem 1.5rem 1.5rem; }

/* Principios (la cocina) */
body .vf-principle { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem; align-items: start; border-bottom: 1px solid var(--vf-gold-20); padding-bottom: 4rem; }
body .vf-principle:last-child { border-bottom: 0; }
body .vf-principle > * + * { margin-top: 0; }
@media (min-width: 768px) {
	body .vf-principle { grid-template-columns: repeat(12, minmax(0, 1fr)); }
	body .vf-principle__aside { grid-column: span 3 / span 3; }
	body .vf-principle__body { grid-column: span 9 / span 9; }
}
body .vf-principle__kicker { font-size: 10px; line-height: 1.5; letter-spacing: 0.25em; text-transform: uppercase; color: var(--vf-salvia); margin-top: 0.25rem !important; }

/* Cita oscura (sobre mí) */
body .vf-quote-dark { padding: 1.5rem; border-left: 4px solid var(--vf-mostaza); box-shadow: var(--vf-shadow-sm); }
body .vf-quote-dark > * + * { margin-top: 0; }
body .vf-quote-dark__text { font-family: var(--vf-serif); font-style: italic; font-size: 1.125rem; line-height: 1.625; }
@media (min-width: 640px) { body .vf-quote-dark__text { font-size: 1.25rem; } }
body .vf-quote-dark__author { margin-top: 0.75rem !important; font-family: var(--vf-sans); font-size: 0.75rem; line-height: 1rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--vf-mostaza); font-weight: 500; }

/* Entradas (blog) */
body .vf-entry > * + * { margin-top: 1.25rem; }
body .vf-entry :is(p, li) { font-size: 1rem; line-height: 1.75; font-weight: 300; }
body .vf-entry :is(h2, h3) { color: var(--vf-oliva); }
body .vf-post-item .wp-block-post-title a { text-decoration: none; }

/* ==========================================================================
   Cabecera
   ========================================================================== */
.vf-header {
	position: fixed; left: 0; right: 0; top: var(--vf-admin-bar); z-index: 40;
	background: color-mix(in srgb, var(--vf-marfil) 95%, transparent); color: var(--vf-carbon);
	-webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
	border-bottom: 1px solid var(--vf-gold-20); box-shadow: var(--vf-shadow-xs);
	transition: all .5s;
}
.vf-header.is-transparent { background: transparent; color: var(--vf-white); border-bottom-color: rgb(255 255 255 / .1); box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
.vf-header__inner { max-width: 80rem; margin: 0 auto; padding: 0 1.5rem; height: 5rem; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
@media (min-width: 768px) { .vf-header__inner { padding: 0 3rem; height: 6rem; } }
.vf-brand { display: flex; flex-direction: column; align-items: flex-start; flex-shrink: 0; text-decoration: none; color: inherit; }
.vf-brand__row { display: flex; align-items: center; gap: 0.625rem; }
.vf-brand__logo { height: 2rem; width: auto; object-fit: contain; flex-shrink: 0; }
@media (min-width: 768px) { .vf-brand__logo { height: 2.25rem; } }
.vf-brand__logo--light, .is-transparent .vf-brand__logo--dark { display: none; }
.is-transparent .vf-brand__logo--light { display: block; }
.vf-brand__name { font-family: var(--vf-serif); font-size: 1.5rem; line-height: 2rem; letter-spacing: -0.025em; color: var(--vf-carbon); transition: color .3s; }
@media (min-width: 768px) { .vf-brand__name { font-size: 1.875rem; line-height: 2.25rem; } }
.vf-brand__descriptor { font-family: var(--vf-sans); font-size: 9px; line-height: 1.5; letter-spacing: 0.25em; font-weight: 300; margin-top: 0.125rem; text-transform: uppercase; padding-left: 2.75rem; color: var(--vf-salvia); transition: color .3s; }
@media (min-width: 768px) { .vf-brand__descriptor { font-size: 10px; } }
.is-transparent .vf-brand__name { color: var(--vf-white); }
.is-transparent .vf-brand__descriptor { color: rgb(255 255 255 / .8); }

.vf-nav { display: none; align-items: center; gap: 2rem; font-family: var(--vf-sans); font-size: 12px; line-height: 1rem; letter-spacing: 0.16em; text-transform: uppercase; font-weight: 500; }
@media (min-width: 1024px) { .vf-nav { display: flex; } }
.vf-nav__link { text-transform: none; position: relative; padding: 0.25rem 0; white-space: nowrap; flex-shrink: 0; text-decoration: none; color: color-mix(in srgb, var(--vf-carbon) 75%, transparent); transition: color .3s; }
.vf-nav__link:hover { color: var(--vf-mostaza); }
.vf-nav__link.is-active { color: var(--vf-carbon); font-weight: 600; }
.vf-nav__link.is-active::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1.5px; background: var(--vf-mostaza); }
.is-transparent .vf-nav__link { color: rgb(255 255 255 / .8); }
.is-transparent .vf-nav__link:hover, .is-transparent .vf-nav__link.is-active { color: var(--vf-white); }

.vf-header__actions { display: flex; align-items: center; gap: 1rem; flex-shrink: 0; }
@media (min-width: 768px) { .vf-header__actions { gap: 1.5rem; } }
.vf-lang { display: flex; align-items: center; font-family: var(--vf-sans); font-size: 11px; line-height: 1rem; letter-spacing: 0.1em; text-transform: uppercase; color: color-mix(in srgb, var(--vf-carbon) 70%, transparent); }
.is-transparent .vf-lang { color: rgb(255 255 255 / .8); }
.vf-lang__link { padding: 0.125rem 0.375rem; color: inherit; text-decoration: none; transition: color .3s; }
.vf-lang__link:hover { color: var(--vf-mostaza); }
.vf-lang__link.is-active { font-weight: 700; color: var(--vf-oliva); text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--vf-mostaza); }
.is-transparent .vf-lang__link.is-active { color: var(--vf-white); }
.vf-lang__sep { opacity: .4; }
.vf-header__cta { display: none; align-items: center; gap: 0.5rem; padding: 0.625rem 1.25rem; font-family: var(--vf-sans); font-size: 11px; line-height: 1rem; letter-spacing: 0.18em; text-transform: uppercase; font-weight: 500; white-space: nowrap; flex-shrink: 0; text-decoration: none; border: 1px solid var(--vf-oliva); background: var(--vf-oliva); color: var(--vf-marfil); transition: all .3s; }
@media (min-width: 640px) { .vf-header__cta { display: inline-flex; } }
.vf-header__cta:hover { background: var(--vf-mostaza); border-color: var(--vf-mostaza); color: var(--vf-marfil); }
.is-transparent .vf-header__cta { border-color: rgb(255 255 255 / .5); background: rgb(255 255 255 / .1); color: var(--vf-white); }
.is-transparent .vf-header__cta:hover { background: var(--vf-white); color: var(--vf-carbon); }
.vf-header__cta .vf-ico { width: 0.875rem; height: 0.875rem; transition: transform .3s; }
.vf-header__cta:hover .vf-ico { transform: translateX(0.25rem); }
.vf-burger { display: inline-flex; padding: 0.5rem; background: none; border: 0; color: inherit; cursor: pointer; }
.vf-burger .vf-ico { width: 1.5rem; height: 1.5rem; }
.vf-burger .vf-burger__close, .vf-burger[aria-expanded="true"] .vf-burger__open { display: none; }
.vf-burger[aria-expanded="true"] .vf-burger__close { display: block; }
@media (min-width: 1024px) { .vf-burger { display: none; } }

.vf-mobile-menu { position: fixed; inset: 0; z-index: 30; background: var(--vf-marfil); color: var(--vf-carbon); padding: 7rem 2rem 3rem; display: flex; flex-direction: column; justify-content: space-between; overflow-y: auto; }
.vf-mobile-menu[hidden] { display: none; }
@media (min-width: 1024px) { .vf-mobile-menu { display: none !important; } }
.vf-mobile-menu__label { font-size: 10px; letter-spacing: 0.3em; text-transform: uppercase; color: var(--vf-salvia); }
.vf-mobile-menu__links { display: flex; flex-direction: column; gap: 1.25rem; margin-top: 1.5rem; }
.vf-mobile-menu__links a { font-family: var(--vf-serif); font-size: 1.5rem; line-height: 2rem; color: var(--vf-carbon); text-decoration: none; }
.vf-mobile-menu__links a.is-active { color: var(--vf-mostaza); font-style: italic; }
.vf-mobile-menu__bottom { padding-top: 2.5rem; border-top: 1px solid var(--vf-gold-20); display: flex; flex-direction: column; gap: 1.5rem; }
.vf-mobile-menu__cta { display: flex; align-items: center; justify-content: center; gap: 0.5rem; padding: 0.875rem; background: var(--vf-oliva); color: var(--vf-marfil); font-size: 0.75rem; letter-spacing: 0.2em; text-transform: uppercase; font-weight: 500; text-decoration: none; transition: background .3s; }
.vf-mobile-menu__cta:hover { background: var(--vf-mostaza); }
.vf-mobile-menu__cta .vf-ico { width: 1rem; height: 1rem; }
.vf-mobile-menu__meta { display: flex; align-items: center; justify-content: space-between; font-size: 0.75rem; color: var(--vf-salvia); letter-spacing: 0.1em; padding-top: 0.5rem; }
.vf-mobile-menu__lang { display: flex; gap: 0.75rem; }
.vf-mobile-menu__lang a { color: inherit; text-decoration: none; }
.vf-mobile-menu__lang a.is-active { font-weight: 700; color: var(--vf-carbon); text-decoration: underline; }
body.vf-menu-open { overflow: hidden; }

/* ==========================================================================
   Pie de página
   ========================================================================== */
.vf-footer { background: var(--vf-oliva); color: var(--vf-marfil); padding: 5rem 0 3rem; border-top: 1px solid var(--vf-gold-30); font-family: var(--vf-sans); }
.vf-footer .vf-container { max-width: 80rem; margin: 0 auto; padding: 0 1.5rem; }
@media (min-width: 768px) { .vf-footer .vf-container { padding: 0 3rem; } }
.vf-footer a { text-decoration: none; color: inherit; }
.vf-footer__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3rem; padding-bottom: 4rem; border-bottom: 1px solid color-mix(in srgb, var(--vf-marfil) 15%, transparent); }
@media (min-width: 768px) { .vf-footer__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); } .vf-footer__brand { grid-column: span 5; } .vf-footer__nav { grid-column: span 4; } .vf-footer__contact { grid-column: span 3; } }
@media (min-width: 1024px) { .vf-footer__grid { gap: 4rem; } }
.vf-footer__brand > * + * { margin-top: 1.5rem; }
.vf-footer__logo { display: flex; align-items: center; gap: 0.75rem; }
.vf-footer__logo img { height: 2.25rem; width: auto; object-fit: contain; flex-shrink: 0; }
.vf-footer__name { display: block; font-family: var(--vf-serif); font-size: 1.5rem; line-height: 2rem; letter-spacing: -0.025em; }
.vf-footer__descriptor { font-size: 10px; letter-spacing: 0.25em; color: var(--vf-mostaza); text-transform: uppercase; }
.vf-footer__desc { margin-bottom: 0; font-size: 0.875rem; line-height: 1.625; font-weight: 300; color: color-mix(in srgb, var(--vf-marfil) 80%, transparent); max-width: 28rem; }
.vf-footer__slogan { font-family: var(--vf-serif); font-style: italic; font-size: 0.75rem; line-height: 1rem; letter-spacing: 0.1em; color: var(--vf-mostaza); }
.vf-footer__nav > * + * { margin-top: 1rem; }
.vf-footer__title { display: block; font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--vf-mostaza); font-weight: 600; }
.vf-footer__nav ul { list-style: none; margin: 1rem 0 0; padding: 0; font-size: 0.75rem; line-height: 1rem; letter-spacing: 0.05em; text-transform: none; font-weight: 300; }
.vf-footer__nav li + li { margin-top: 0.625rem; }
.vf-footer__nav a { color: color-mix(in srgb, var(--vf-marfil) 75%, transparent); transition: color .3s; }
.vf-footer__nav a:hover { color: var(--vf-mostaza); }
.vf-footer__contact > * + * { margin-top: 1.25rem; }
.vf-footer__channels { font-size: 0.75rem; line-height: 1rem; font-weight: 300; color: color-mix(in srgb, var(--vf-marfil) 85%, transparent); }
.vf-footer__channels > * + * { margin-top: 0.75rem; }
.vf-footer__channels a { display: flex; align-items: center; gap: 0.625rem; transition: color .3s; }
.vf-footer__channels a:hover { color: var(--vf-mostaza); }
.vf-footer__channels a:hover span { text-decoration: underline; text-underline-offset: 4px; }
.vf-footer__channels .vf-ico { width: 1rem; height: 1rem; color: var(--vf-mostaza); flex-shrink: 0; }
.vf-footer__location { padding-top: 0.5rem; font-size: 11px; color: color-mix(in srgb, var(--vf-marfil) 60%, transparent); letter-spacing: 0.05em; }
.vf-footer__contact > .vf-footer__cta { margin-top: 1.75rem; display: inline-flex; align-items: center; gap: 0.5rem; font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--vf-mostaza) !important; border-bottom: 1px solid var(--vf-mostaza); padding-bottom: 0.125rem; transition: all .3s; }
.vf-footer__cta:hover { color: var(--vf-white) !important; border-color: var(--vf-white); }
.vf-footer__cta .vf-ico { width: 0.875rem; height: 0.875rem; }
.vf-footer__bottom { padding-top: 2rem; display: flex; flex-direction: column; align-items: center; justify-content: space-between; gap: 1rem; font-size: 11px; color: color-mix(in srgb, var(--vf-marfil) 60%, transparent); letter-spacing: 0.05em; }
@media (min-width: 768px) { .vf-footer__bottom { flex-direction: row; } }
.vf-footer__copy { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; justify-content: center; }
.vf-footer__legal { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.vf-footer__legal a:hover { color: var(--vf-marfil); }
.vf-footer__admin { display: inline-flex; align-items: center; gap: 0.375rem; color: var(--vf-mostaza) !important; }
.vf-footer__admin:hover { color: var(--vf-white) !important; }
.vf-footer__admin .vf-ico { width: 0.75rem; height: 0.75rem; }

/* ==========================================================================
   WhatsApp flotante, ventana legal, lightbox y avisos
   ========================================================================== */
.vf-wa { position: fixed; right: 1.5rem; bottom: 1.5rem; z-index: 40; display: flex; align-items: center; gap: 0.75rem; font-family: var(--vf-sans); }
.vf-wa__tip { display: none; align-items: center; gap: 0.5rem; background: var(--vf-carbon); color: var(--vf-marfil); font-size: 0.75rem; line-height: 1rem; padding: 0.5rem 0.875rem; box-shadow: var(--vf-shadow-xl); border: 1px solid var(--vf-gold-40); max-width: 20rem; }
@media (min-width: 640px) { .vf-wa__tip:not([hidden]) { display: flex; } }
.vf-wa__close { background: none; border: 0; padding: 0; color: rgb(255 255 255 / .6); cursor: pointer; display: inline-flex; }
.vf-wa__close:hover { color: var(--vf-white); }
.vf-wa__close .vf-ico { width: 0.875rem; height: 0.875rem; }
.vf-wa__btn { width: 3.25rem; height: 3.25rem; border-radius: 9999px; background: var(--vf-oliva); color: var(--vf-marfil); display: flex; align-items: center; justify-content: center; box-shadow: var(--vf-shadow-lg); border: 1px solid color-mix(in srgb, var(--vf-mostaza) 50%, transparent); transition: all .3s; }
.vf-wa__btn:hover { background: var(--vf-mostaza); transform: scale(1.05); color: var(--vf-marfil); }
.vf-wa__btn .vf-ico { width: 1.5rem; height: 1.5rem; transition: transform .3s; }
.vf-wa__btn:hover .vf-ico { transform: rotate(6deg); }

.vf-modal { position: fixed; inset: 0; z-index: 100000; background: color-mix(in srgb, var(--vf-carbon) 80%, transparent); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); display: flex; align-items: center; justify-content: center; padding: 1rem; font-family: var(--vf-sans); animation: vfFade .2s; }
@media (min-width: 768px) { .vf-modal { padding: 2rem; } }
.vf-modal[hidden], .vf-lightbox[hidden], .vf-toast[hidden] { display: none; }
.vf-modal__box { background: var(--vf-marfil); color: var(--vf-carbon); width: 100%; max-width: 48rem; max-height: 85vh; box-shadow: var(--vf-shadow-2xl); border: 1px solid var(--vf-gold-30); display: flex; flex-direction: column; }
.vf-modal__head { padding: 1.5rem; border-bottom: 1px solid var(--vf-gold-20); display: flex; align-items: center; justify-content: space-between; }
.vf-modal__head > div { display: flex; align-items: center; gap: 0.75rem; }
.vf-modal__brand { font-family: var(--vf-serif); font-size: 1.25rem; line-height: 1.75rem; color: var(--vf-oliva); }
@media (min-width: 768px) { .vf-modal__brand { font-size: 1.5rem; line-height: 2rem; } }
.vf-modal__label { font-size: 10px; letter-spacing: 0.1em; color: var(--vf-mostaza); text-transform: uppercase; }
.vf-modal__x { padding: 0.375rem; background: none; border: 0; cursor: pointer; color: color-mix(in srgb, var(--vf-carbon) 60%, transparent); display: inline-flex; }
.vf-modal__x:hover { color: var(--vf-carbon); }
.vf-modal__x .vf-ico { width: 1.25rem; height: 1.25rem; }
.vf-modal__tabs { display: flex; border-bottom: 1px solid color-mix(in srgb, var(--vf-mostaza) 15%, transparent); padding: 0 1.5rem; font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; overflow-x: auto; }
.vf-modal__tabs button { padding: 0.75rem 1rem; display: flex; align-items: center; gap: 0.5rem; background: none; border: 0; border-bottom: 2px solid transparent; cursor: pointer; font: inherit; letter-spacing: inherit; text-transform: none; color: color-mix(in srgb, var(--vf-carbon) 60%, transparent); white-space: nowrap; }
.vf-modal__tabs button:hover { color: var(--vf-carbon); }
.vf-modal__tabs button.is-active { border-bottom-color: var(--vf-oliva); color: var(--vf-oliva); font-weight: 600; }
.vf-modal__tabs .vf-ico { width: 1rem; height: 1rem; color: var(--vf-mostaza); }
.vf-modal__body { padding: 1.5rem; overflow-y: auto; font-size: 0.875rem; line-height: 1.625; color: color-mix(in srgb, var(--vf-carbon) 85%, transparent); }
@media (min-width: 768px) { .vf-modal__body { padding: 2rem; } }
.vf-legal > * + * { margin-top: 1rem; }
.vf-legal h3 { font-family: var(--vf-serif); font-weight: 400; font-size: 1.125rem; line-height: 1.75rem; color: var(--vf-oliva); margin: 0 0 0.5rem; }
.vf-legal h3 + * { margin-top: 0; }
.vf-legal p { margin: 0; }
.vf-legal ul { list-style: disc; padding-left: 1.25rem; font-size: 0.75rem; padding-top: 0.5rem; margin: 0; }
.vf-legal li + li { margin-top: 0.25rem; }
.vf-legal__small { font-size: 0.75rem; padding-top: 0.5rem; color: color-mix(in srgb, var(--vf-carbon) 70%, transparent); }
.vf-modal__foot { padding: 1rem; border-top: 1px solid var(--vf-gold-20); display: flex; justify-content: flex-end; }
.vf-modal__ok { padding: 0.5rem 1.5rem; background: var(--vf-oliva); color: var(--vf-marfil); border: 0; font-family: var(--vf-sans); font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; cursor: pointer; transition: background .3s; }
.vf-modal__ok:hover { background: var(--vf-mostaza); }

.vf-lightbox { position: fixed; inset: 0; z-index: 100000; background: color-mix(in srgb, var(--vf-carbon) 95%, transparent); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); display: flex; align-items: center; justify-content: center; padding: 1rem; animation: vfFade .3s; font-family: var(--vf-sans); }
@media (min-width: 768px) { .vf-lightbox { padding: 2rem; } }
.vf-lightbox__box { position: relative; max-width: 64rem; width: 100%; max-height: 90vh; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.vf-lightbox__top { width: 100%; display: flex; align-items: center; justify-content: space-between; color: rgb(255 255 255 / .8); padding-bottom: 1rem; font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; }
.vf-lightbox__close { padding: 0.5rem; background: none; border: 0; color: var(--vf-white); cursor: pointer; display: inline-flex; }
.vf-lightbox__close:hover { color: var(--vf-mostaza); }
.vf-lightbox__close .vf-ico { width: 1.5rem; height: 1.5rem; }
.vf-lightbox__frame { position: relative; width: 100%; max-height: 75vh; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.vf-lightbox__frame img { max-height: 75vh; width: auto; max-width: 100%; object-fit: contain; box-shadow: var(--vf-shadow-2xl); }
.vf-lightbox__nav { position: absolute; top: 50%; transform: translateY(-50%); padding: 0.625rem; background: rgb(0 0 0 / .4); color: var(--vf-white); border: 0; border-radius: 9999px; cursor: pointer; display: inline-flex; transition: background .3s; }
.vf-lightbox__nav:hover { background: var(--vf-oliva); }
.vf-lightbox__nav .vf-ico { width: 1.5rem; height: 1.5rem; }
.vf-lightbox__prev { left: 0.5rem; }
.vf-lightbox__next { right: 0.5rem; }
@media (min-width: 768px) { .vf-lightbox__prev { left: 1rem; } .vf-lightbox__next { right: 1rem; } }
.vf-lightbox__caption { padding-top: 1rem; text-align: center; }
.vf-lightbox__caption h3 { margin: 0; font-family: var(--vf-serif); font-weight: 400; font-size: 1.125rem; line-height: 1.75rem; color: var(--vf-marfil); letter-spacing: 0.025em; }
@media (min-width: 768px) { .vf-lightbox__caption h3 { font-size: 1.25rem; } }
.vf-lightbox__caption p { margin: 0.25rem 0 0; font-size: 0.75rem; color: rgb(255 255 255 / .6); letter-spacing: 0.05em; }

.vf-toast { position: fixed; bottom: 2rem; left: 50%; transform: translateX(-50%); z-index: 100001; background: var(--vf-oliva); color: var(--vf-marfil); padding: 0.875rem 1.5rem; box-shadow: var(--vf-shadow-2xl); border: 1px solid color-mix(in srgb, var(--vf-mostaza) 60%, transparent); display: flex; align-items: center; gap: 0.75rem; max-width: 28rem; width: max-content; font-family: var(--vf-sans); font-size: 0.75rem; line-height: 1rem; animation: vfUp .3s; }
@media (min-width: 640px) { .vf-toast { font-size: 0.875rem; line-height: 1.25rem; } }
.vf-toast__icon { width: 1.25rem; height: 1.25rem; border-radius: 9999px; background: var(--vf-mostaza); color: var(--vf-white); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.vf-toast__icon .vf-ico { width: 0.875rem; height: 0.875rem; }
@keyframes vfFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes vfUp { from { opacity: 0; transform: translate(-50%, 1rem); } to { opacity: 1; transform: translate(-50%, 0); } }

/* Lightbox nativa de WordPress con colores de marca */
.wp-lightbox-overlay .scrim { background-color: color-mix(in srgb, var(--vf-carbon) 95%, transparent) !important; }
.wp-lightbox-overlay .close-button { color: var(--vf-white) !important; fill: var(--vf-white) !important; }
.wp-lightbox-overlay .close-button svg { fill: var(--vf-white); }

/* ==========================================================================
   Galería
   ========================================================================== */
.vf-gallery__data { display: none; }
.vf-bento { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
@media (min-width: 640px) { .vf-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .vf-bento { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.vf-bento__item { position: relative; overflow: hidden; box-shadow: var(--vf-shadow-md); cursor: pointer; border: 1px solid var(--vf-gold-20); aspect-ratio: 1 / 1; }
.vf-bento__item.is-large { aspect-ratio: 16 / 10; }
@media (min-width: 640px) { .vf-bento__item.is-large { grid-column: span 2 / span 2; } }
.vf-bento__item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .7s; }
.vf-bento__item:hover img { transform: scale(1.05); }
.vf-bento__overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgb(0 0 0 / .75), rgb(0 0 0 / .2), transparent); opacity: 0; transition: opacity .3s; display: flex; flex-direction: column; justify-content: flex-end; padding: 1.5rem; color: var(--vf-white); }
.vf-bento__item:hover .vf-bento__overlay, .vf-bento__item:focus-visible .vf-bento__overlay { opacity: 1; }
.vf-bento__cat { font-family: var(--vf-sans); font-size: 10px; line-height: 1.5; letter-spacing: 0.1em; text-transform: uppercase; color: var(--vf-mostaza); font-weight: 600; }
.vf-main .vf-bento__title { font-family: var(--vf-serif); font-size: 1rem; line-height: 1.5rem; color: var(--vf-marfil) !important; margin: 0; }
@media (min-width: 640px) { .vf-main .vf-bento__title { font-size: 1.125rem; line-height: 1.75rem; } }

.vf-gallery__filters { position: sticky; top: calc(5rem + var(--vf-admin-bar)); z-index: 20; padding: 2rem 0; background: color-mix(in srgb, var(--vf-marfil) 95%, transparent); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border-bottom: 1px solid var(--vf-gold-20); }
.vf-gallery__filters-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.5rem; }
@media (min-width: 640px) { .vf-gallery__filters-inner { gap: 0.75rem; } }
.vf-filter { padding: 0.5rem 1rem; font-family: var(--vf-sans); font-size: 0.75rem; line-height: 1rem; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 500; cursor: pointer; transition: all .3s; background: var(--vf-white); color: color-mix(in srgb, var(--vf-carbon) 70%, transparent); border: 1px solid var(--vf-gold-20); }
@media (min-width: 640px) { .vf-filter { padding: 0.5rem 1.25rem; } }
.vf-filter:hover { color: var(--vf-carbon); border-color: var(--vf-mostaza); }
.vf-filter.is-active { background: var(--vf-oliva); color: var(--vf-marfil); border-color: var(--vf-oliva); box-shadow: var(--vf-shadow-xs); }
.vf-gallery__section { padding: 4rem 0; background: var(--vf-marfil); }
@media (min-width: 768px) { .vf-gallery__section { padding: 6rem 0; } }
.vf-gallery__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem; }
@media (min-width: 640px) { .vf-gallery__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .vf-gallery__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.vf-gcard { position: relative; background: var(--vf-white); border: 1px solid var(--vf-gold-20); overflow: hidden; box-shadow: var(--vf-shadow-xs); cursor: pointer; display: flex; flex-direction: column; }
.vf-gcard[hidden] { display: none; }
.vf-gcard__media { aspect-ratio: 4 / 3; overflow: hidden; position: relative; }
.vf-gcard__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .7s; }
.vf-gcard:hover .vf-gcard__media img { transform: scale(1.04); }
.vf-gcard__hover { position: absolute; inset: 0; background: rgb(0 0 0 / .4); opacity: 0; transition: opacity .3s; display: flex; align-items: center; justify-content: center; }
.vf-gcard:hover .vf-gcard__hover { opacity: 1; }
.vf-gcard__hover span { width: 2.5rem; height: 2.5rem; border-radius: 9999px; background: color-mix(in srgb, var(--vf-oliva) 90%, transparent); border: 1px solid color-mix(in srgb, var(--vf-mostaza) 60%, transparent); display: flex; align-items: center; justify-content: center; transform: scale(.9); transition: transform .3s; }
.vf-gcard:hover .vf-gcard__hover span { transform: scale(1); }
.vf-gcard__hover .vf-ico { width: 1.25rem; height: 1.25rem; color: var(--vf-mostaza); }
.vf-gcard__body { padding: 1.5rem; flex: 1; display: flex; flex-direction: column; justify-content: space-between; gap: 0.5rem; }
.vf-gcard__cat { display: block; margin-bottom: 0.25rem; font-family: var(--vf-sans); font-size: 10px; line-height: 1.5; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 600; color: var(--vf-mostaza); }
.vf-main .vf-gcard__title { font-family: var(--vf-serif); font-size: 1.125rem; line-height: 1.375; color: var(--vf-oliva) !important; margin: 0; }
.vf-gcard__alt { margin: 0; font-family: var(--vf-sans); font-size: 0.75rem; line-height: 1rem; font-weight: 300; color: color-mix(in srgb, var(--vf-carbon) 60%, transparent); }

/* ==========================================================================
   Testimonios
   ========================================================================== */
.vf-testimonials { position: relative; padding-top: 1.5rem; }
.vf-testimonials__stage { min-height: 180px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.vf-testimonial { margin: 0; display: flex; flex-direction: column; align-items: center; animation: vfFade .5s; }
.vf-testimonial[hidden] { display: none; }
.vf-main .vf-testimonial__quote { margin: 0; padding: 0; border: 0; font-family: var(--vf-serif); font-style: italic; font-size: 1.5rem; line-height: 1.625; color: var(--vf-marfil); max-width: 48rem; }
@media (min-width: 640px) { .vf-main .vf-testimonial__quote { font-size: 1.875rem; } }
@media (min-width: 768px) { .vf-main .vf-testimonial__quote { font-size: 2.25rem; } }
.vf-testimonial__meta { margin-top: 2rem; text-align: center; }
.vf-testimonial__author { display: block; font-style: normal; font-family: var(--vf-sans); font-size: 0.875rem; line-height: 1.25rem; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 600; color: var(--vf-mostaza); }
.vf-testimonial__role { display: block; margin-top: 0.25rem; font-family: var(--vf-sans); font-size: 0.75rem; line-height: 1rem; color: color-mix(in srgb, var(--vf-marfil) 60%, transparent); letter-spacing: 0.05em; }
.vf-testimonials__controls { display: flex; align-items: center; justify-content: center; gap: 1.5rem; margin-top: 2.5rem; }
.vf-round-btn { padding: 0.5rem; border: 1px solid var(--vf-gold-40); border-radius: 9999px; background: none; color: var(--vf-white); cursor: pointer; display: inline-flex; transition: background .3s; }
.vf-round-btn:hover { background: var(--vf-mostaza); }
.vf-round-btn .vf-ico { width: 1.25rem; height: 1.25rem; }
.vf-testimonials__count { font-family: var(--vf-mono); font-size: 0.75rem; line-height: 1rem; color: var(--vf-mostaza); letter-spacing: 0.1em; }

/* ==========================================================================
   Formulario
   ========================================================================== */
.vf-form-section { padding: 4rem 0; background: var(--vf-marfil); }
@media (min-width: 768px) { .vf-form-section { padding: 6rem 0; } }
body .vf-form-container.vf-container { padding-inline: 1.5rem; }
@media (min-width: 768px) { body .vf-form-container.vf-container { padding-inline: 2rem; } }
.vf-form, .vf-form-success { background: var(--vf-white); font-family: var(--vf-sans); color: var(--vf-carbon); }
.vf-form { padding: 2rem; border: 1px solid var(--vf-gold-30); box-shadow: var(--vf-shadow-md); }
@media (min-width: 768px) { .vf-form { padding: 3rem; } }
.vf-form[hidden], .vf-form-success[hidden], .vf-form [hidden] { display: none !important; }
.vf-form > * + * { margin-top: 2.5rem; }
.vf-form > input[type="hidden"], .vf-form > .vf-hp { margin: 0 !important; }
.vf-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.vf-form__error { padding: 1rem; background: #FEF2F2; border: 1px solid #FECACA; color: #B91C1C; font-size: 0.75rem; display: flex; align-items: center; gap: 0.625rem; }
.vf-form__error .vf-ico { width: 1rem; height: 1rem; flex-shrink: 0; }
.vf-field { display: block; }
.vf-field > .vf-label + .vf-chips { margin-top: 0; }
.vf-label { display: block; font-size: 0.75rem; line-height: 1rem; letter-spacing: 0.05em; text-transform: uppercase; color: var(--vf-carbon); margin-bottom: 0.375rem; font-weight: 500; }
.vf-label--mb2 { margin-bottom: 0.5rem; }
.vf-label--serif { font-family: var(--vf-serif); font-size: 0.875rem; line-height: 1.25rem; text-transform: none; letter-spacing: 0; color: var(--vf-oliva); font-weight: 600; margin-bottom: 0.75rem; }
.vf-optional { color: var(--vf-salvia); font-size: 10px; text-transform: none; }
.vf-input { width: 100%; padding: 0.75rem 1rem; background: color-mix(in srgb, var(--vf-marfil) 60%, transparent); border: 1px solid var(--vf-gold-30); font-family: inherit; font-size: 0.875rem; line-height: 1.25rem; color: var(--vf-carbon); border-radius: 0; outline: none; -webkit-appearance: none; appearance: none; }
select.vf-input { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23292923' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 1rem center; padding-right: 2.5rem; }
.vf-input:focus { border-color: var(--vf-oliva); }
.vf-input::placeholder { color: #9CA3AF; }
.vf-input--short { max-width: 20rem; }
textarea.vf-input { resize: vertical; }
.vf-help { display: block; font-size: 0.75rem; line-height: 1rem; color: var(--vf-salvia); margin-top: 0.375rem; }
.vf-form__block { padding-top: 1.5rem; border-top: 1px solid var(--vf-gold-20); }
.vf-form__block--strong { padding-top: 2rem; border-top-color: var(--vf-gold-30); }
.vf-form__block > * + * { margin-top: 1.5rem; }
.vf-block-title { display: block; font-family: var(--vf-mono); font-size: 11px; line-height: 1rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--vf-mostaza); font-weight: 600; }
.vf-block-intro { background: color-mix(in srgb, var(--vf-oliva) 5%, transparent); padding: 1rem; border-left: 2px solid var(--vf-oliva); }
.vf-block-intro p { margin: 0.25rem 0 0; font-size: 0.75rem; line-height: 1rem; color: color-mix(in srgb, var(--vf-carbon) 80%, transparent); }
.vf-cols-2 { display: grid; grid-template-columns: minmax(0, 1fr); }
.vf-gap-6 { gap: 1.5rem; }
@media (min-width: 640px) { .vf-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.vf-chips { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.625rem; }
.vf-chips.vf-what, .vf-chips.vf-chips--center, .vf-chips.vf-cols-2-4:has(input[type="checkbox"]) { gap: 0.75rem; }
.vf-chips.vf-cols-2f, .vf-chips.vf-cols-2-4, .vf-chips.vf-cols-2-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 640px) {
	.vf-chips.vf-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.vf-chips.vf-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.vf-chips.vf-cols-2-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.vf-chips.vf-cols-2-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.vf-chips.vf-stack-chips { gap: 0.5rem; }
.vf-chip { display: flex; align-items: center; gap: 0.625rem; padding: 0.75rem; border: 1px solid var(--vf-gold-30); background: color-mix(in srgb, var(--vf-marfil) 40%, transparent); color: var(--vf-carbon); font-size: 0.75rem; line-height: 1rem; cursor: pointer; transition: all .2s; }
.vf-chip:hover { border-color: var(--vf-oliva); }
.vf-chip input { margin: 0; accent-color: var(--vf-mostaza); flex-shrink: 0; }
.vf-chip:has(input:checked) { background: var(--vf-oliva); color: var(--vf-marfil); border-color: var(--vf-oliva); font-weight: 500; }
.vf-chip:has(input:focus-visible) { outline: 2px solid var(--vf-mostaza); outline-offset: 2px; }
.vf-chip--soft { align-items: flex-start; gap: 0.75rem; padding: 0.875rem; border-color: color-mix(in srgb, var(--vf-mostaza) 25%, transparent); background: transparent; }
.vf-chip--soft input { margin-top: 0.125rem; accent-color: var(--vf-oliva); }
.vf-chip--soft:has(input:checked) { background: color-mix(in srgb, var(--vf-salvia) 15%, transparent); color: var(--vf-oliva); border-color: var(--vf-oliva); }
.vf-chips--center .vf-chip { justify-content: center; text-align: center; padding: 0.625rem 1rem; font-weight: 500; }
.vf-chips--center .vf-chip input, .vf-chip--card input { position: absolute; opacity: 0; pointer-events: none; width: 1px; height: 1px; }
.vf-chips--center .vf-chip, .vf-chip--card { position: relative; }
.vf-chip--card { padding: 1rem; text-align: left; border-color: color-mix(in srgb, var(--vf-mostaza) 25%, transparent); background: color-mix(in srgb, var(--vf-marfil) 50%, transparent); align-items: flex-start; }
.vf-chip--card b { display: block; font-weight: 500; font-size: 0.75rem; line-height: 1rem; }
@media (min-width: 640px) { .vf-chip--card b { font-size: 0.875rem; line-height: 1.25rem; } }
.vf-chip--card small { display: block; font-size: 11px; line-height: 1.4; margin-top: 0.25rem; color: var(--vf-salvia); }
.vf-chip--card:has(input:checked) { box-shadow: var(--vf-shadow-sm); font-weight: 400; }
.vf-chip--card:has(input:checked) small { color: color-mix(in srgb, var(--vf-marfil) 75%, transparent); }
.vf-guests-warn { margin-top: 0.75rem; padding: 0.875rem; background: color-mix(in srgb, var(--vf-salvia) 15%, transparent); border-left: 2px solid var(--vf-mostaza); font-size: 0.75rem; line-height: 1rem; color: var(--vf-oliva); display: flex; align-items: flex-start; gap: 0.625rem; }
.vf-guests-warn .vf-ico { width: 1rem; height: 1rem; color: var(--vf-terracota); flex-shrink: 0; margin-top: 0.125rem; }
.vf-guests-warn a { font-weight: 500; text-decoration: underline; margin-left: 0.25rem; color: inherit; }
.vf-guests-warn a:hover { color: var(--vf-mostaza); }
.vf-privacy { padding-top: 1rem; border-top: 1px solid var(--vf-gold-20); }
.vf-privacy label { display: flex; align-items: flex-start; gap: 0.75rem; cursor: pointer; font-size: 0.75rem; line-height: 1rem; color: color-mix(in srgb, var(--vf-carbon) 85%, transparent); }
.vf-privacy input { margin-top: 0.125rem; accent-color: var(--vf-oliva); }
.vf-privacy a { text-decoration: underline; color: var(--vf-oliva); font-weight: 600; }
.vf-privacy a:hover { color: var(--vf-mostaza); }
.vf-form__submit { padding-top: 1rem; }
.vf-submit { width: 100%; padding: 1rem; background: var(--vf-oliva); color: var(--vf-marfil); border: 0; font-family: var(--vf-sans); font-size: 0.75rem; line-height: 1rem; text-transform: uppercase; letter-spacing: 0.22em; font-weight: 500; box-shadow: var(--vf-shadow-sm); cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 0.625rem; transition: background .3s; }
.vf-submit:hover { background: var(--vf-mostaza); }
.vf-submit[disabled] { opacity: .7; cursor: wait; }
.vf-submit .vf-ico { width: 1rem; height: 1rem; }
.vf-submit-note { margin: 0.625rem 0 0; font-size: 11px; color: var(--vf-salvia); text-align: center; }
.vf-req { color: inherit; }

.vf-form-success { padding: 2rem; border: 1px solid var(--vf-gold-40); box-shadow: var(--vf-shadow-xl); }
@media (min-width: 768px) { .vf-form-success { padding: 3.5rem; } }
.vf-form-success > * + * { margin-top: 2rem; }
.vf-form-success__icon { width: 4rem; height: 4rem; border-radius: 9999px; background: var(--vf-oliva); margin: 0 auto; display: flex; align-items: center; justify-content: center; }
.vf-form-success__icon .vf-ico { width: 2.25rem; height: 2.25rem; color: var(--vf-mostaza); }
.vf-main .vf-form-success__title { font-family: var(--vf-serif); font-size: 1.5rem; line-height: 2rem; color: var(--vf-oliva) !important; margin: 0; }
@media (min-width: 640px) { .vf-main .vf-form-success__title { font-size: 2.25rem; line-height: 2.5rem; } }
.vf-form-success__box { padding: 1.5rem; background: var(--vf-marfil); border-left: 4px solid var(--vf-oliva); font-size: 0.875rem; line-height: 1.625; }
@media (min-width: 768px) { .vf-form-success__box { font-size: 1rem; } }
.vf-form-success__box > * + * { margin-top: 0.75rem; }
.vf-form-success__text { margin: 0; font-weight: 500; color: var(--vf-oliva); }
.vf-form-success__subject { margin: 0; font-size: 0.75rem; color: var(--vf-salvia); }
.vf-mono { font-family: var(--vf-mono); color: var(--vf-carbon); font-weight: 600; }
.vf-form-success__actions { padding-top: 0.5rem; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem; }
@media (min-width: 640px) { .vf-form-success__actions { flex-direction: row; } }
.vf-btn-wa, .vf-btn-mail { width: 100%; display: inline-flex; align-items: center; justify-content: center; gap: 0.625rem; padding: 0.875rem 1.5rem; color: var(--vf-white); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; font-weight: 500; text-decoration: none; box-shadow: var(--vf-shadow-sm); transition: background .3s; }
@media (min-width: 640px) { .vf-btn-wa, .vf-btn-mail { width: auto; } }
.vf-btn-wa { background: #25D366; }
.vf-btn-wa:hover { background: #20BA59; color: var(--vf-white); }
.vf-btn-mail { background: var(--vf-oliva); color: var(--vf-marfil); }
.vf-btn-mail:hover { background: var(--vf-mostaza); color: var(--vf-marfil); }
.vf-btn-wa .vf-ico, .vf-btn-mail .vf-ico { width: 1rem; height: 1rem; }
.vf-form-success__again { text-align: center; padding-top: 1rem; border-top: 1px solid var(--vf-gold-20); }
.vf-form-success__again a { font-size: 0.75rem; color: var(--vf-salvia); text-decoration: underline; }
.vf-form-success__again a:hover { color: var(--vf-oliva); }

/* Iconos SVG en línea */
.vf-ico { display: block; flex-shrink: 0; }

/* Accesibilidad: movimiento reducido */
@media (prefers-reduced-motion: reduce) {
	.vf-kenburns .wp-block-cover__image-background { animation: none !important; }
	*, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}

/* Barra de desplazamiento */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--vf-marfil); }
::-webkit-scrollbar-thumb { background: var(--vf-salvia); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--vf-oliva); }

/* El primer bloque del formulario no se separa de los campos ocultos */
.vf-form > .vf-form__error[hidden] + .vf-field { margin-top: 0; }
body.vf-menu-open .vf-wa { display: none; }
