/*
Theme Name: Visit Cali 2026
Theme URI: https://visitcali.travel
Author: Felipe Carvajal
Description: Tema de visitcali.travel (renovación 2026). Home y What to Do. Funciona junto con los plugins «Visit Cali – Imperdibles» y «Visit Cali – Eventos».
Version: 1.8.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: visitcali
*/

/* ========== Fuentes ========== */
@font-face { font-family: 'DM Sans'; src: url('assets/fonts/dmsans-400.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'DM Sans'; src: url('assets/fonts/dmsans-400i.woff2') format('woff2'); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: 'DM Sans'; src: url('assets/fonts/dmsans-500.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'DM Sans'; src: url('assets/fonts/dmsans-600.woff2') format('woff2'); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: 'DM Sans'; src: url('assets/fonts/dmsans-700.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'Trirong'; src: url('assets/fonts/trirong-400.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Trirong'; src: url('assets/fonts/trirong-400i.woff2') format('woff2'); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: 'Trirong'; src: url('assets/fonts/trirong-600i.woff2') format('woff2'); font-weight: 600; font-style: italic; font-display: swap; }
@font-face { font-family: 'Trirong'; src: url('assets/fonts/trirong-700i.woff2') format('woff2'); font-weight: 700; font-style: italic; font-display: swap; }

/* ========== Tokens (paleta de marca) ========== */
:root {
	--vc-orange: #E95D0B;
	--vc-yellow: #F9A01B;
	--vc-brown: #8B3600;
	--vc-dark: #190A01;
	--vc-blue: #AACBED;
	--vc-lime: #90CB23;
	--vc-green: #21481F;
	--vc-cream: #FFFCED;

	--vc-serif: 'Trirong', Georgia, 'Times New Roman', serif;
	--vc-sans: 'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;

	--vc-events-bg: var(--vc-dark);
	--vc-gutter: clamp(1.75rem, 6.5vw, 7.5rem);
	--vc-radius: clamp(20px, 2.2vw, 40px);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { position: relative; margin: 0; background: var(--vc-cream); color: var(--vc-dark); font: 400 clamp(calc(1rem * var(--vc-ts, 1)), calc(1.05vw * var(--vc-ts, 1)), calc(1.25rem * var(--vc-ts, 1)))/1.5 var(--vc-sans); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img, svg { max-width: 100%; height: auto; }
a { color: inherit; }
h1, h2, h3, h4 { margin: 0; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link { position: absolute; left: -999px; top: 0; z-index: 100; background: var(--vc-orange); color: #fff; padding: .75rem 1rem; }
.skip-link:focus { left: 0; }
:focus-visible { outline: 3px solid var(--vc-yellow); outline-offset: 3px; }

/* Énfasis de marca: *palabra* en el Customizer → Trirong itálica naranja */
.vc-h em, .vc-em { font-family: var(--vc-serif); font-style: italic; font-weight: 700; color: var(--vc-orange); }
.vc-h { font-family: var(--vc-sans); font-weight: 700; letter-spacing: -.02em; line-height: .98; }
.vc-h--serif { font-family: var(--vc-serif); font-style: italic; font-weight: 700; letter-spacing: 0; line-height: 1.12; }
.vc-h--serif em { font-style: italic; }

.vc-btn { display: inline-flex; align-items: center; justify-content: center; font: 400 clamp(calc(.95rem * var(--vc-ts, 1)), calc(1.15vw * var(--vc-ts, 1)), calc(1.45rem * var(--vc-ts, 1)))/1 var(--vc-sans); text-transform: uppercase; text-decoration: none; background: var(--vc-orange); color: #fff; border-radius: 999px; padding: .75em 1.5em; transition: background .2s, transform .2s; }
.vc-btn:hover, .vc-btn:focus-visible { background: var(--vc-brown); transform: translateY(-2px); }

/* ========== Header ========== */
:root { --vc-hgap: clamp(1rem, 4.5vw, 5.5rem); }
.site-header { position: absolute; inset: 0 0 auto 0; z-index: 20; padding: clamp(.9rem, 1.6vw, 2rem) clamp(1.75rem, 5vw, 6rem) 0 clamp(1.75rem, 5vw, 6rem); display: flex; align-items: center; gap: var(--vc-hgap); color: #fff; }
.site-header--solid { position: relative; background: var(--vc-dark); padding-top: clamp(.9rem, 1.6vw, 2rem); padding-bottom: clamp(.9rem, 1.6vw, 2rem); }
.site-logo { flex: 1 1 0; display: block; }
.site-logo img { display: block; width: clamp(96px, 6.6vw, 140px); height: auto; }
.primary-nav { flex: 0 1 auto; min-width: 0; border: 1px solid var(--vc-yellow); border-radius: 999px; padding: clamp(.3rem, .5vw, .7rem) clamp(.4rem, .6vw, .8rem) clamp(.3rem, .5vw, .7rem) clamp(1.2rem, 2.2vw, 3rem); background: rgba(25,10,1,.12); backdrop-filter: blur(2px); }
/* La píldora se ajusta al número de ítems: con pocos queda compacta y centrada; al sumar subpáginas crece, al quitar se comprime. */
.primary-nav ul { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; justify-content: flex-start; gap: clamp(1.4rem, 3.2vw, 4.5rem); }
.primary-nav li:not(.menu-cta) { flex: 0 0 auto; text-align: left; }
.primary-nav .menu-cta { flex: 0 0 auto; margin-left: clamp(.4rem, 1.6vw, 2.4rem); }
.primary-nav li { margin: 0; }
.primary-nav a { display: block; position: relative; isolation: isolate; font: 400 clamp(calc(.85rem * var(--vc-ts, 1)), calc(1.02vw * var(--vc-ts, 1)), calc(1.3rem * var(--vc-ts, 1)))/1.1 var(--vc-sans); text-transform: uppercase; text-decoration: none; color: #fff; padding: .4em 0; white-space: nowrap; transition: color .2s; }
.primary-nav li:not(.menu-cta) > a { width: fit-content; }
.primary-nav a:hover { color: var(--vc-yellow); }
/* Ítem activo: píldora translúcida con borde amarillo (distinta del botón naranja «Plan your trip»). Se mantiene
   mientras el mouse/teclado esté en el ítem o su desplegable, y en la página en la que uno está. */
.primary-nav > ul > li:not(.menu-cta) > a::before { content: ""; position: absolute; z-index: -1; inset: -.1em -.8em; border-radius: 999px; background-color: rgba(249,160,27,.16); background-image: linear-gradient(105deg, transparent 32%, rgba(255,238,196,.55) 50%, transparent 68%); background-size: 260% 100%; background-position: 170% 0; box-shadow: inset 0 0 0 1.5px var(--vc-yellow), 0 0 18px rgba(249,160,27,.28); opacity: 0; transform: scale(.86); transition: opacity .25s var(--ease-out), transform .35s var(--ease-out); }
.primary-nav > ul > li:not(.menu-cta):hover > a, .primary-nav > ul > li:not(.menu-cta):focus-within > a,
.primary-nav > ul > li.current-menu-item > a, .primary-nav > ul > li.current-menu-ancestor > a, .primary-nav > ul > li.current_page_item > a, .primary-nav > ul > li.current-page-ancestor > a, .primary-nav > ul > li > a[aria-current] { color: var(--vc-yellow); }
.primary-nav > ul > li:not(.menu-cta):hover > a::before, .primary-nav > ul > li:not(.menu-cta):focus-within > a::before,
.primary-nav > ul > li.current-menu-item > a::before, .primary-nav > ul > li.current-menu-ancestor > a::before, .primary-nav > ul > li.current_page_item > a::before, .primary-nav > ul > li.current-page-ancestor > a::before, .primary-nav > ul > li > a[aria-current]::before { opacity: 1; transform: none; }
.primary-nav > ul > li:not(.menu-cta):hover > a::before, .primary-nav > ul > li:not(.menu-cta):focus-within > a::before { animation: vc-sheen 1000ms var(--ease-out) 1 both; }
@keyframes vc-sheen { from { background-position: 170% 0; } to { background-position: -70% 0; } }
.primary-nav .menu-cta a, .primary-nav a.menu-cta { background: var(--vc-orange); border-radius: 999px; padding: .4em .95em; color: #fff; }
.primary-nav .menu-cta a:hover { background: var(--vc-brown); color: #fff; }

/* Submenús (segundo nivel): misma apariencia que el panel de accesibilidad. Se abren con mouse o teclado. */
.primary-nav li { position: relative; }
.primary-nav .menu-item-has-children > a::after { content: ""; display: inline-block; margin-left: .55em; width: .4em; height: .4em; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-.15em) rotate(45deg); }
.primary-nav .menu-item-has-children > a::after { transition: transform .25s var(--ease-out); }
.primary-nav .menu-item-has-children:hover > a::after, .primary-nav .menu-item-has-children:focus-within > a::after { transform: translateY(.05em) rotate(225deg); }
.primary-nav .sub-menu { list-style: none; margin: 0; padding: 1rem; position: absolute; top: calc(100% + .8rem); left: var(--sub-x, 50%); margin-left: -8.5rem; width: 17rem; z-index: 40; display: flex; flex-direction: column; align-items: stretch; gap: .6rem; background: #fff; color: var(--vc-dark); border-radius: 2rem; box-shadow: 0 18px 48px rgba(25,10,1,.28); opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity 200ms var(--ease-out), transform 200ms var(--ease-out), visibility 0s linear 200ms; }
.primary-nav .sub-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -1rem; height: 1rem; } /* puente para que el mouse no pierda el hover */
.primary-nav .sub-menu li { flex: none; }
.primary-nav .sub-menu a { display: flex; align-items: center; justify-content: center; min-height: 3.2rem; padding: .6rem 1rem; border: 2px solid #9a8f89; border-radius: 1.4rem; background: #fff; color: var(--vc-dark); font: 700 1rem/1.15 var(--vc-sans); text-transform: none; text-align: center; white-space: normal; transition: background .15s, color .15s, border-color .15s; }
.primary-nav .sub-menu a:hover { border-color: var(--vc-dark); color: var(--vc-dark); background: #fff; }
.primary-nav .sub-menu a:focus-visible { outline: 3px solid var(--vc-yellow); outline-offset: 2px; color: var(--vc-dark); }
.primary-nav .sub-menu .current-menu-item > a, .primary-nav .sub-menu a[aria-current="page"] { background: var(--vc-dark); border-color: var(--vc-dark); color: var(--vc-cream); }
.primary-nav li:hover > .sub-menu, .primary-nav li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
@media (prefers-reduced-motion: reduce) { .primary-nav .sub-menu { transform: none; } }
.header-lang { flex: 1 1 0; display: flex; align-items: center; justify-content: flex-end; min-width: clamp(2rem, 2.6vw, 3.4rem); }
.header-lang .gtranslate_wrapper, .header-lang a { color: #fff; }
.nav-toggle { display: none; margin-left: auto; background: transparent; border: 1px solid var(--vc-yellow); color: #fff; border-radius: 999px; width: 3rem; height: 3rem; font-size: 1.4rem; cursor: pointer; }

/* ========== Hero (Home) ========== */
.vc-hero { position: relative; isolation: isolate; color: #fff; min-height: clamp(620px, 55vw, 1100px); display: flex; flex-direction: column; justify-content: flex-end; overflow: hidden; background: linear-gradient(160deg, #1d4f8c, #0f2a52 60%, #190A01); }
.vc-hero__bg { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.vc-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(15,40,90,.55) 0%, rgba(15,40,90,.15) 45%, rgba(25,10,1,.65) 100%); }
.vc-hero__inner { padding: clamp(7rem, 15vw, 16rem) var(--vc-gutter) clamp(2rem, 5vw, 5rem); text-align: center; }
.vc-hero h1 { font-size: clamp(calc(2.6rem * var(--vc-ts, 1)), calc(7.4vw * var(--vc-ts, 1)), calc(9.6rem * var(--vc-ts, 1))); max-width: 11.2em; margin: 0 auto; text-wrap: balance; text-shadow: 0 4px 30px rgba(0,0,0,.25); }
.vc-hero h1 em { font-size: 1.03em; }
.vc-hero__sub { margin: clamp(1rem, 2.2vw, 2.5rem) auto 0; max-width: 62ch; font: 400 clamp(calc(1.05rem * var(--vc-ts, 1)), calc(1.7vw * var(--vc-ts, 1)), calc(2.1rem * var(--vc-ts, 1)))/1.3 var(--vc-sans); text-shadow: 0 2px 14px rgba(0,0,0,.5); }
.vc-hero__sub em { font-family: var(--vc-serif); font-weight: 700; font-style: italic; color: #fff; }
.vc-hero__wave { position: relative; height: clamp(90px, 11vw, 220px); margin-top: clamp(1rem, 3vw, 3rem); }
.vc-hero__wave svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.vc-hero__wave .vc-btn { position: absolute; right: clamp(1.25rem, 13vw, 14rem); bottom: 18%; z-index: 2; font-size: clamp(calc(.95rem * var(--vc-ts, 1)), calc(1.3vw * var(--vc-ts, 1)), calc(1.65rem * var(--vc-ts, 1))); padding: .7em 1.4em; }

.vc-stats { display: grid; grid-template-columns: repeat(var(--n, 4), 1fr); padding: 0 var(--vc-gutter) clamp(1.2rem, 3vw, 3rem); background: rgba(25,10,1,.35); text-align: center; text-shadow: 0 1px 12px rgba(0,0,0,.55); }
.vc-stats > div { padding: clamp(.8rem, 1.6vw, 1.8rem) clamp(.5rem, 1.2vw, 1.5rem); font: 400 clamp(calc(.9rem * var(--vc-ts, 1)), calc(1.4vw * var(--vc-ts, 1)), calc(1.75rem * var(--vc-ts, 1)))/1.25 var(--vc-sans); }
.vc-stats > div { position: relative; }
.vc-stats > div + div::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 1px; background: linear-gradient(180deg, var(--vc-yellow) 0, var(--vc-yellow) 38%, #FFF3CC 50%, var(--vc-yellow) 62%, var(--vc-yellow) 100%); background-size: 100% 320%; background-position: 0 100%; box-shadow: 0 0 6px rgba(249,160,27,.35); }
.vc-stats b { display: block; font: italic 700 1.02em/1.3 var(--vc-serif); }

/* ========== Hero (What to Do) ========== */
.vc-hero--wtd { min-height: clamp(520px, 43vw, 860px); background: #190A01; margin-bottom: -2px; }
.vc-hero--wtd::before { background: linear-gradient(180deg, rgba(25,10,1,.55), rgba(25,10,1,.65)); }
.vc-hero--wtd .vc-hero__inner { padding-bottom: 0; }
.vc-hero--wtd h1 { font-size: clamp(calc(2.4rem * var(--vc-ts, 1)), calc(7.8vw * var(--vc-ts, 1)), calc(9.6rem * var(--vc-ts, 1))); max-width: none; }
.vc-hero--wtd .vc-hero__tag { margin: clamp(.4rem, 1vw, 1rem) 0 0; font: italic 600 clamp(calc(1.4rem * var(--vc-ts, 1)), calc(3.2vw * var(--vc-ts, 1)), calc(4rem * var(--vc-ts, 1)))/1.1 var(--vc-serif); }
.vc-hero--wtd .vc-hero__sub { max-width: 90ch; font-size: clamp(calc(1rem * var(--vc-ts, 1)), calc(1.5vw * var(--vc-ts, 1)), calc(1.85rem * var(--vc-ts, 1))); }
.vc-hero--wtd .vc-hero__sub strong { font-weight: 700; }
.vc-hero--wtd .vc-hero__wave { margin-top: clamp(2rem, 4vw, 4rem); height: clamp(60px, 7vw, 140px); }

/* ========== Secciones genéricas ========== */
.vc-section { position: relative; padding: clamp(3rem, 7vw, 8rem) var(--vc-gutter); }
.vc-feeling { background: var(--vc-cream); text-align: center; overflow: hidden; isolation: isolate; padding-bottom: 0; }
.vc-feeling::before, .vc-feeling::after, .vc-feeling .blob { content: ""; position: absolute; z-index: -1; border-radius: 50%; filter: blur(60px); pointer-events: none; }
.vc-feeling::before { width: 26vw; height: 26vw; left: -8vw; top: 4vw; background: radial-gradient(circle, var(--vc-yellow), transparent 68%); opacity: .85; }
.vc-feeling::after { width: 32vw; height: 32vw; right: -10vw; top: 20vw; background: radial-gradient(circle, var(--vc-orange), transparent 66%); opacity: .75; }
.vc-feeling .blob { width: 30vw; height: 22vw; left: 14vw; bottom: -8vw; background: radial-gradient(circle, var(--vc-lime), transparent 66%); opacity: .7; }
.vc-feeling h2 { font-size: clamp(calc(1.9rem * var(--vc-ts, 1)), calc(3.4vw * var(--vc-ts, 1)), calc(4.3rem * var(--vc-ts, 1))); max-width: 22ch; margin: 0 auto; }
.vc-feeling p.lead { max-width: 46ch; margin: clamp(1.2rem, 3vw, 3.4rem) auto 0; font-size: clamp(calc(1.05rem * var(--vc-ts, 1)), calc(1.55vw * var(--vc-ts, 1)), calc(1.9rem * var(--vc-ts, 1))); line-height: 1.4; }
.vc-feeling .vci-stage { margin: clamp(2rem, 4vw, 5rem) calc(var(--vc-gutter) * -1) 0; max-width: none; } /* a todo el ancho: las flechas quedan en los bordes, fuera de las tarjetas */

/* Franja de las 5 categorías */
.vc-cats { display: grid; grid-template-columns: repeat(5, 1fr); }
.vc-cats a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: clamp(.8rem, 2vw, 2.4rem); padding: clamp(1.5rem, 4vw, 5rem) 1rem; min-height: clamp(180px, 20vw, 384px); color: var(--vc-cream); text-decoration: none; background: var(--c); transition: filter .2s; }
.vc-cats a:hover, .vc-cats a:focus-visible { filter: brightness(1.06) saturate(1.05); }
.vc-cats img { height: clamp(70px, 8.2vw, 160px); width: auto; display: block; }
.vc-cats span { font: italic 700 clamp(calc(1.2rem * var(--vc-ts, 1)), calc(2.2vw * var(--vc-ts, 1)), calc(2.8rem * var(--vc-ts, 1)))/1 var(--vc-serif); }

/* Eventos del mes */
.vc-events { position: relative; isolation: isolate; background: var(--vc-events-bg); color: var(--vc-cream); padding: clamp(3rem, 7vw, 8rem) 0 0; overflow: hidden; }
.vc-events__swoosh { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; pointer-events: none; }
.vc-events__head { padding: 0 var(--vc-gutter); max-width: 100%; }
.vc-events__head h1, .vc-events__head h2 { font-size: clamp(calc(2.2rem * var(--vc-ts, 1)), calc(5.6vw * var(--vc-ts, 1)), calc(7rem * var(--vc-ts, 1))); }
.vc-events__head p { margin: clamp(.6rem, 1.4vw, 1.6rem) 0 0; font-size: clamp(calc(1rem * var(--vc-ts, 1)), calc(1.55vw * var(--vc-ts, 1)), calc(1.9rem * var(--vc-ts, 1))); }
.vc-events .vce { margin-top: clamp(2rem, 5vw, 6rem); --vce-gutter: var(--vc-gutter); }
.vc-events .vce-track { padding-left: calc(var(--vc-gutter) + clamp(0rem, 14vw, 22rem)); padding-right: var(--vc-gutter); scroll-padding-left: var(--vc-gutter); }
.vc-events .vce-nav { padding: 0 var(--vc-gutter); }

/* CTA + footer */
.site-footer { position: relative; background: var(--vc-green); color: var(--vc-cream); overflow-x: clip; }
.site-footer__wave { display: block; width: 100%; height: clamp(70px, 9vw, 180px); }
.site-footer__wave .bg { fill: var(--vc-events-bg); }
.site-footer--cream .site-footer__wave .bg { fill: var(--vc-cream); }
.site-footer__cat { position: absolute; left: 62%; top: 0; width: clamp(80px, 8.5vw, 170px); aspect-ratio: 320 / 260; z-index: 2; pointer-events: none; transform: translateY(-62%); transform-origin: 50% 90%; will-change: transform; }
.site-footer__cat img { position: absolute; inset: 0; width: 100%; height: 100%; display: block; object-fit: contain; }
.site-footer__cat .is-still { display: none; }
html.vc-a11y-paused .site-footer__cat .is-walk:not(:only-child) { display: none; }
html.vc-a11y-paused .site-footer__cat .is-still { display: block; }
@media (prefers-reduced-motion: reduce) {
	.site-footer__cat .is-walk:not(:only-child) { display: none; }
	.site-footer__cat .is-still { display: block; }
}
.footer-cta { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; flex-wrap: wrap; padding: clamp(1.5rem, 3vw, 4rem) var(--vc-gutter) clamp(2rem, 4vw, 5rem); }
.footer-cta h2 { font-size: clamp(calc(2.6rem * var(--vc-ts, 1)), calc(6.8vw * var(--vc-ts, 1)), calc(8.8rem * var(--vc-ts, 1))); max-width: 9em; text-wrap: balance; }
.footer-cta h2 em { color: var(--vc-yellow); }
.footer-cta .vc-btn { font-size: clamp(calc(1rem * var(--vc-ts, 1)), calc(2vw * var(--vc-ts, 1)), calc(2.5rem * var(--vc-ts, 1))); }
.footer-main { margin: 0 clamp(1rem, 3vw, 3.4rem); padding: clamp(1.5rem, 3vw, 3.4rem) calc(var(--vc-gutter) - clamp(1rem, 3vw, 3.4rem)); border-top: 1px solid rgba(255,252,237,.55); display: grid; grid-template-columns: 1.2fr 1fr 1fr 1.8fr; gap: clamp(1.2rem, 3vw, 4rem); }
.footer-logo img { width: clamp(130px, 13vw, 260px); }
.footer-col h3 { font: 600 clamp(calc(1rem * var(--vc-ts, 1)), calc(1.35vw * var(--vc-ts, 1)), calc(1.65rem * var(--vc-ts, 1)))/1.1 var(--vc-sans); text-transform: uppercase; color: var(--vc-yellow); margin-bottom: clamp(1rem, 2.4vw, 3rem); max-width: 10ch; }
.footer-col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .65rem; }
.footer-col a { text-decoration: none; font-size: clamp(calc(1rem * var(--vc-ts, 1)), calc(1.4vw * var(--vc-ts, 1)), calc(1.7rem * var(--vc-ts, 1))); line-height: 1.2; }
.footer-col a:hover { color: var(--vc-yellow); }
.footer-social h3 { font: italic 700 clamp(calc(1.5rem * var(--vc-ts, 1)), calc(2.6vw * var(--vc-ts, 1)), calc(3.2rem * var(--vc-ts, 1)))/1.05 var(--vc-serif); text-transform: none; max-width: none; margin-bottom: 1rem; }
.footer-social p { margin: 0 0 1.2rem; font-size: clamp(calc(1rem * var(--vc-ts, 1)), calc(1.4vw * var(--vc-ts, 1)), calc(1.7rem * var(--vc-ts, 1))); line-height: 1.3; max-width: 32ch; }
.social { display: flex; gap: .9rem; }
.social a { width: clamp(2.4rem, 2.9vw, 3.4rem); height: clamp(2.4rem, 2.9vw, 3.4rem); border-radius: 50%; background: var(--vc-yellow); color: var(--vc-green); display: grid; place-items: center; transition: transform .2s; }
.social a:hover { transform: translateY(-3px); }
.social svg { width: 58%; height: 58%; }
.footer-legal { margin: 0 clamp(1rem, 3vw, 3.4rem); padding: clamp(1rem, 2vw, 2.2rem) calc(var(--vc-gutter) - clamp(1rem, 3vw, 3.4rem)); border-top: 1px solid rgba(255,252,237,.55); display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; font: 500 clamp(calc(.85rem * var(--vc-ts, 1)), calc(1.1vw * var(--vc-ts, 1)), calc(1.35rem * var(--vc-ts, 1)))/1.3 var(--vc-sans); }
.footer-bar { display: flex; height: clamp(10px, 1.2vw, 18px); }
.footer-bar i { flex: 1; }
.footer-bar i:nth-child(1) { background: var(--vc-orange); } .footer-bar i:nth-child(2) { background: var(--vc-yellow); }
.footer-bar i:nth-child(3) { background: var(--vc-blue); } .footer-bar i:nth-child(4) { background: var(--vc-lime); } .footer-bar i:nth-child(5) { background: var(--vc-green); }

/* ========== What to Do ========== */
.vc-start { background: var(--vc-cream); padding-top: clamp(1rem, 3vw, 3rem); }
.vc-start h2 { font-size: clamp(calc(1.9rem * var(--vc-ts, 1)), calc(4.4vw * var(--vc-ts, 1)), calc(5.4rem * var(--vc-ts, 1))); margin-bottom: clamp(1.2rem, 3vw, 3.4rem); }
.vc-start h2 em { font-weight: 700; }
.vc-banners { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(.8rem, 1.7vw, 2rem); margin-top: clamp(1rem, 1.8vw, 2.2rem); }
.vc-banner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: clamp(1rem, 1.6vw, 2rem) clamp(1.2rem, 1.9vw, 2.4rem); border-radius: clamp(16px, 1.6vw, 28px); color: var(--vc-cream); text-decoration: none; transition: transform .2s; }
.vc-banner:hover, .vc-banner:focus-visible { transform: translateY(-3px); }
.vc-banner--green { background: var(--vc-green); } .vc-banner--dark { background: var(--vc-dark); }
.vc-banner strong { display: block; font: italic 700 clamp(calc(1.2rem * var(--vc-ts, 1)), calc(1.9vw * var(--vc-ts, 1)), calc(2.3rem * var(--vc-ts, 1)))/1.2 var(--vc-serif); }
.vc-banner span.t { font-size: clamp(calc(.95rem * var(--vc-ts, 1)), calc(1.45vw * var(--vc-ts, 1)), calc(1.75rem * var(--vc-ts, 1))); line-height: 1.3; }
.vc-banner .arrow { flex: 0 0 auto; display: grid; place-items: center; width: clamp(3.4rem, 6.2vw, 7.4rem); height: clamp(2.4rem, 4vw, 4.8rem); border: 2px solid var(--vc-cream); border-radius: 999px; font-size: clamp(calc(1.4rem * var(--vc-ts, 1)), calc(2.4vw * var(--vc-ts, 1)), calc(3rem * var(--vc-ts, 1))); }

.vc-mood { background: var(--vc-cream); padding-top: 0; }
.vc-mood > h2 { text-align: center; font-size: clamp(calc(2.2rem * var(--vc-ts, 1)), calc(4.8vw * var(--vc-ts, 1)), calc(6rem * var(--vc-ts, 1))); margin-bottom: clamp(1.4rem, 3vw, 3.6rem); }
.vc-mood > h2 em { font-weight: 700; }
.mood-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: clamp(.8rem, 1.4vw, 1.8rem); }
.mood { grid-column: span 2; background: #fff; border-radius: clamp(24px, 3vw, 56px); overflow: hidden; display: flex; flex-direction: column; scroll-margin-top: 2rem; }
.mood:nth-child(-n+2) { grid-column: span 3; }
.mood__img { position: relative; aspect-ratio: 16 / 7; display: grid; place-items: center; background: var(--c); padding: 1.2rem; text-align: center; isolation: isolate; }
.mood:nth-child(n+3) .mood__img { aspect-ratio: 1 / .62; }
.mood__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.mood__img::after { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--c); opacity: .62; mix-blend-mode: multiply; }
.mood__img h3 { font: italic 700 clamp(calc(1.5rem * var(--vc-ts, 1)), calc(3.3vw * var(--vc-ts, 1)), calc(4.1rem * var(--vc-ts, 1)))/1.12 var(--vc-serif); color: var(--vc-cream); text-shadow: 0 3px 14px rgba(0,0,0,.35); max-width: 14ch; }
.mood__body { padding: clamp(1rem, 1.5vw, 1.8rem) clamp(1rem, 1.7vw, 2.2rem) clamp(1.2rem, 2vw, 2.4rem); display: grid; gap: 1rem; align-content: start; flex: 1; }
.mood__pill { height: clamp(34px, 3.4vw, 64px); width: auto; display: block; }
.mood__body p { margin: 0; font-size: clamp(calc(.95rem * var(--vc-ts, 1)), calc(1.3vw * var(--vc-ts, 1)), calc(1.6rem * var(--vc-ts, 1))); line-height: 1.3; }
.chips { display: flex; flex-wrap: wrap; gap: .6rem; list-style: none; margin: 0; padding: 0; }
.chips a { display: block; border: 1.5px solid var(--vc-dark); border-radius: 999px; padding: .5em 1.1em; font-size: clamp(calc(.9rem * var(--vc-ts, 1)), calc(1.3vw * var(--vc-ts, 1)), calc(1.6rem * var(--vc-ts, 1))); text-decoration: none; transition: background .2s, color .2s; }
.chips a:hover, .chips a:focus-visible { background: var(--vc-dark); color: var(--vc-cream); }

/* ========== Páginas internas ========== */
.vc-page { padding: clamp(2rem, 5vw, 6rem) var(--vc-gutter); max-width: 1100px; margin: 0 auto; }
.vc-page h1 { font-size: clamp(calc(2rem * var(--vc-ts, 1)), calc(4vw * var(--vc-ts, 1)), calc(4.4rem * var(--vc-ts, 1))); margin-bottom: 1.2rem; }
.vc-page .entry > * + * { margin-top: 1.1em; }


/* ========== Movimiento: entradas de sección y de fondo ==========
   Solo transform + opacity, ease-out, una sola vez (sin bucles). Títulos con recorrido mayor y más lento.
   Con prefers-reduced-motion se mantiene un fundido suave sin desplazamiento. Sin JS todo es visible. */
:root { --ease-out: cubic-bezier(.16, 1, .3, 1); --vc-rise: 22px; --vc-dur: 750ms; }

.js [data-reveal] { opacity: 0; transform: translateY(var(--vc-rise)); }
.js h1[data-reveal], .js h2[data-reveal] { --vc-rise: 36px; --vc-dur: 950ms; }
.js [data-reveal].is-in { opacity: 1; transform: none; transition: opacity var(--vc-dur) var(--ease-out), transform var(--vc-dur) var(--ease-out); transition-delay: calc(var(--i, 0) * 130ms); }
.js [data-reveal="fade"] { transform: none; }
.js .site-header[data-reveal] { --vc-rise: -14px; --vc-dur: 800ms; }

/* Fondos: se asientan una sola vez. */
.js .vc-hero__bg { opacity: 0; transform: scale(1.1); }
.js .vc-hero__bg.is-in { opacity: 1; transform: none; transition: opacity 1000ms var(--ease-out), transform 1800ms var(--ease-out); }

.js .vc-feeling::before, .js .vc-feeling::after, .js .vc-feeling .blob { opacity: 0; transform: scale(.9); }
.js .vc-feeling.is-in::before, .js .vc-feeling.is-in::after, .js .vc-feeling.is-in .blob { transform: none; transition: opacity 1100ms var(--ease-out), transform 1400ms var(--ease-out); }
.js .vc-feeling.is-in::before { opacity: .85; }
.js .vc-feeling.is-in::after { opacity: .75; transition-delay: 150ms; }
.js .vc-feeling.is-in .blob { opacity: .7; transition-delay: 300ms; }

.js .vc-events__swoosh { clip-path: inset(0 0 0 100%); }
.js .vc-events.is-in .vc-events__swoosh { clip-path: inset(0 0 0 0); transition: clip-path 1900ms cubic-bezier(.65, 0, .35, 1) 150ms; } /* la onda «se dibuja» una sola vez */

@media (prefers-reduced-motion: reduce) {
	.js [data-reveal], .js h1[data-reveal], .js h2[data-reveal] { transform: none; --vc-dur: 700ms; }
	.js [data-reveal].is-in { transition: opacity var(--vc-dur) ease-out; }
	.js .vc-hero__bg { transform: none; }
	.js .vc-hero__bg.is-in { transition: opacity 900ms ease-out; }
	.js .vc-feeling::before, .js .vc-feeling::after, .js .vc-feeling .blob, .js .vc-events__swoosh { transform: none; }
	.js .vc-feeling.is-in::before, .js .vc-feeling.is-in::after, .js .vc-feeling.is-in .blob { transition: opacity 900ms ease-out; }
	.js .vc-events__swoosh, .js .vc-events.is-in .vc-events__swoosh { clip-path: none; transition: none; }
}

/* ========== Página «Events of the month»: manchas de color a la deriva ========== */
.vc-events--page { padding-bottom: clamp(4rem, 8vw, 9rem); min-height: 70vh; }
.vc-events--page .vc-events__head { padding-top: clamp(1rem, 2vw, 2.5rem); }
.vc-orbs { position: absolute; inset: 0; z-index: -1; pointer-events: none; overflow: hidden; -webkit-mask-image: linear-gradient(to bottom, #000 0, #000 62%, transparent 94%); mask-image: linear-gradient(to bottom, #000 0, #000 62%, transparent 94%); }
.vc-orbs i { position: absolute; display: block; width: clamp(180px, 28vw, 520px); aspect-ratio: 1; border-radius: 50%; filter: blur(clamp(40px, 6vw, 90px)); opacity: 0; will-change: transform; animation: vc-drift var(--d, 24s) ease-in-out var(--dl, 0s) infinite alternate; }
.vc-orbs i:nth-child(1) { --d: 26s; left: -6%;  top: 8%;   background: #E95D0B; }
.vc-orbs i:nth-child(2) { --d: 31s; --dl: -9s;  right: -8%; top: 2%;   background: #F9A01B; }
.vc-orbs i:nth-child(3) { --d: 28s; --dl: -4s;  left: 34%;  bottom: 6%; background: #90CB23; width: clamp(160px, 22vw, 420px); }
.vc-orbs i:nth-child(4) { --d: 34s; --dl: -15s; right: 6%;  bottom: 4%;  background: #AACBED; width: clamp(140px, 18vw, 360px); }
.vc-orbs i:nth-child(5) { --d: 29s; --dl: -20s; left: 12%;  bottom: 12%; background: #21481F; width: clamp(160px, 20vw, 380px); }
.js .vc-events--page .vc-orbs i { opacity: 0; }
.js .vc-events--page.is-in .vc-orbs i { opacity: .34; transition: opacity 1600ms var(--ease-out); }
.js .vc-events--page.is-in .vc-orbs i:nth-child(n+3) { opacity: .26; }
.vc-events--page:not(.is-in) .vc-orbs i { opacity: .3; } /* sin JS se ven fijas */
@keyframes vc-drift { from { transform: translate3d(0, 0, 0) scale(1); } to { transform: translate3d(var(--dx, 5vw), var(--dy, 3vw), 0) scale(1.14); } }
.vc-orbs i:nth-child(even) { --dx: -6vw; --dy: 2.4vw; }
.vc-orbs i:nth-child(3n) { --dx: 4vw; --dy: -3.5vw; }
@media (prefers-reduced-motion: reduce) { .vc-orbs i { animation: none; } }


/* ========== Vida continua: destellos, brillos y detalles animados ==========
   Todo es sutil, en bucle lento y solo corre mientras la sección está a la vista (JS añade .is-live).
   Se apaga con «Pausar animaciones», con prefers-reduced-motion y se reduce al mínimo en celulares (ver el final del archivo). */

/* Destello que recorre las ondas naranjas: línea clara enmascarada por una banda que se desplaza. */
.vc-glint { fill: none; stroke: #FFE9BD; stroke-width: 8; stroke-linecap: round; vector-effect: non-scaling-stroke; pointer-events: none; }
.vc-sweep { transform: translateX(-760px); }
.is-live .vc-sweep { animation: vc-sweep 9s cubic-bezier(.45, .05, .3, 1) var(--sd, 0s) infinite; }
@keyframes vc-sweep { 0% { transform: translateX(-760px); } 46%, 100% { transform: translateX(2000px); } }

/* Separadores verticales del hero: un destello sube y baja por la línea. */
.is-live .vc-stats > div + div::before { animation: vc-line 5.5s ease-in-out infinite; }
.vc-stats > div:nth-child(3)::before { animation-delay: -1.8s !important; }
.vc-stats > div:nth-child(4)::before { animation-delay: -3.6s !important; }
@keyframes vc-line { 0% { background-position: 0 100%; } 55%, 100% { background-position: 0 0; } }

/* Titulares con una parte en color: un brillo lento cruza la palabra resaltada. */
.vc-h em, .vc-em { padding: .1em .16em .18em .1em; margin: -.1em -.16em -.18em -.1em; background-image: linear-gradient(100deg, var(--vc-orange) 0 36%, #FFB36B 50%, var(--vc-orange) 64% 100%); background-size: 280% 100%; background-position: 100% 0; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.vc-hero h1 em { text-shadow: none; filter: drop-shadow(0 4px 14px rgba(25,10,1,.28)); }
.footer-cta h2 em { background-image: linear-gradient(100deg, var(--vc-yellow) 0 36%, #FFF4CC 50%, var(--vc-yellow) 64% 100%); }
.is-live .vc-h em, .is-live .vc-em { animation: vc-text-glint 8s ease-in-out infinite; }
@keyframes vc-text-glint { 0%, 30% { background-position: 100% 0; } 70%, 100% { background-position: 0 0; } }
@media (forced-colors: active) { .vc-h em, .vc-em { background: none; -webkit-text-fill-color: currentColor; } }

/* «Cali where you should be»: las palabras destacadas flotan apenas, una a destiempo de la otra. */
.footer-cta h2 em { display: inline-block; }
.is-live .footer-cta h2 em { animation: vc-text-glint 8s ease-in-out infinite, vc-bob 6s ease-in-out infinite; }
.is-live .footer-cta h2 em:nth-of-type(2) { animation-delay: -4s, -3s; }
@keyframes vc-bob { 0%, 100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-.045em) rotate(-1.2deg); } }

/* Manchas de color del «feeling»: derivan despacio (propiedad translate: no choca con la entrada). */
.is-live.vc-feeling::before { animation: vc-blob 19s ease-in-out infinite alternate; }
.is-live.vc-feeling::after { animation: vc-blob 23s ease-in-out -7s infinite alternate-reverse; }
.is-live.vc-feeling .blob { animation: vc-blob 21s ease-in-out -3s infinite alternate; }
@keyframes vc-blob { from { translate: 0 0; } to { translate: 3.2vw 2vw; } }

/* Iconos de las 5 categorías: cada uno con su propio gesto. */
.vc-cats img { transform-origin: 50% 60%; transition: transform .5s var(--ease-out); will-change: transform; }
.vc-cats a:hover img, .vc-cats a:focus-visible img { transform: scale(1.14) rotate(-3deg); }
.is-live.vc-cats a:nth-child(1) img { animation: vc-i-wobble 7s ease-in-out infinite; }
.is-live.vc-cats a:nth-child(2) img { animation: vc-i-peek 5.2s ease-in-out -1.1s infinite; }
.is-live.vc-cats a:nth-child(3) img { animation: vc-i-wave 4.6s ease-in-out -2.2s infinite; transform-origin: 28% 88%; }
.is-live.vc-cats a:nth-child(4) img { animation: vc-i-twinkle 4.2s ease-in-out -.6s infinite; transform-origin: 50% 55%; }
.is-live.vc-cats a:nth-child(5) img { animation: vc-i-climb 5.6s ease-in-out -3s infinite; }
.is-live.vc-cats a:hover img, .is-live.vc-cats a:focus-visible img { animation-play-state: paused; }
@keyframes vc-i-wobble { 0%, 100% { transform: rotate(0) scale(1); } 30% { transform: rotate(7deg) scale(1.05); } 65% { transform: rotate(-5deg) scale(.98); } }
@keyframes vc-i-peek { 0%, 100% { transform: translateY(0) rotate(0); } 40% { transform: translateY(-7px) rotate(-3deg); } 70% { transform: translateY(-2px) rotate(3deg); } }
@keyframes vc-i-wave { 0%, 55%, 100% { transform: rotate(0); } 15% { transform: rotate(11deg); } 30% { transform: rotate(-6deg); } 42% { transform: rotate(8deg); } }
@keyframes vc-i-twinkle { 0%, 100% { transform: scale(1) rotate(0); } 50% { transform: scale(1.13) rotate(14deg); } }
@keyframes vc-i-climb { 0%, 100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-8px) scale(1.04); } }

/* What to Do: pequeños gestos en tarjetas y banners. */
.mood__img img { transition: transform 1s var(--ease-out); }
.mood:hover .mood__img img { transform: scale(1.07); }
.vc-banner .arrow { transition: transform .35s var(--ease-out), background .2s, color .2s; }
.vc-banner:hover .arrow, .vc-banner:focus-visible .arrow { transform: translateX(6px); background: var(--vc-cream); color: var(--vc-dark); }
.is-live .vc-banner .arrow { animation: vc-ring 3.4s ease-out infinite; }
.is-live .vc-banner:nth-child(2) .arrow { animation-delay: -1.7s; }
@keyframes vc-ring { 0% { box-shadow: 0 0 0 0 rgba(255,252,237,.38); } 70%, 100% { box-shadow: 0 0 0 14px rgba(255,252,237,0); } }
.vci-start__card:hover .vci-pin, .vci-start__card:focus-visible .vci-pin { animation: vc-pin .7s var(--ease-out); }
@keyframes vc-pin { 0% { transform: translateY(0) rotate(0); } 35% { transform: translateY(-6px) rotate(-8deg); } 70% { transform: translateY(0) rotate(5deg); } 100% { transform: none; } }

/* ========== Títulos: entrada palabra por palabra ==========
   theme.js separa los h1/h2 de marca en palabras (.w). Cada palabra sube y aparece con un pequeño desfase.
   El relleno de padding/margen negativo evita que la cursiva quede recortada. */
.vc-split .w { display: inline-block; padding: .1em .16em .18em .1em; margin: -.1em -.16em -.18em -.1em; }
.js .vc-split .w { opacity: 0; transform: translateY(.55em); }
.js .is-in .vc-split .w, .js .vc-split.is-in .w { opacity: 1; transform: none; transition: opacity 800ms var(--ease-out), transform 1000ms var(--ease-out); transition-delay: calc(var(--w, 0) * 75ms + 60ms); }
.js h1.vc-split[data-reveal], .js h2.vc-split[data-reveal] { opacity: 1; transform: none; }
/* La palabra resaltada: el degradado va en cada palabra (no en el <em>) para que el recorte del texto no se pierda al animarlas. */
.vc-h em.is-split { background: none; padding: 0; margin: 0; }
.vc-h em.is-split .w { background-image: linear-gradient(100deg, var(--vc-orange) 0 36%, #FFB36B 50%, var(--vc-orange) 64% 100%); background-size: 280% 100%; background-position: 100% 0; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.footer-cta h2 em.is-split .w { background-image: linear-gradient(100deg, var(--vc-yellow) 0 36%, #FFF4CC 50%, var(--vc-yellow) 64% 100%); }
.is-live .vc-h em.is-split .w { animation: vc-text-glint 8s ease-in-out calc(var(--w, 0) * .35s) infinite; }
html.vc-a11y-paused .vc-split .w { opacity: 1 !important; transform: none !important; }
@media (prefers-reduced-motion: reduce) {
	.js .vc-split .w { transform: none; }
	.js .is-in .vc-split .w, .js .vc-split.is-in .w { transition: opacity 600ms ease-out; transition-delay: 0s; }
	.is-live .vc-h em.is-split .w { animation: none !important; }
}
@media (forced-colors: active) { .vc-h em.is-split .w { background: none; -webkit-text-fill-color: currentColor; } }

/* ========== Páginas internas con la misma estética ========== */
.vc-pagebg { position: relative; isolation: isolate; overflow: hidden; background: var(--vc-cream); }
.vc-pagebg .vc-page { position: relative; }
.vc-orbs--soft { -webkit-mask-image: linear-gradient(to bottom, #000 0, #000 70%, transparent 100%); mask-image: linear-gradient(to bottom, #000 0, #000 70%, transparent 100%); }
.vc-orbs--soft i:nth-child(1) { left: -10%; top: -4%; } .vc-orbs--soft i:nth-child(2) { right: -12%; top: 22%; } .vc-orbs--soft i:nth-child(3) { left: 30%; bottom: -6%; }
.js .vc-pagebg .vc-orbs i { opacity: 0; }
.js .vc-pagebg.is-in .vc-orbs i { opacity: .2; transition: opacity 1600ms var(--ease-out); }
.vc-pagebg:not(.is-in) .vc-orbs i { opacity: .18; }
.vc-page__wave { display: block; width: min(100%, 30rem); height: clamp(18px, 2.4vw, 34px); margin: -.2rem 0 1.6rem; overflow: visible; }
.vc-page__wave .base { fill: none; stroke: var(--vc-orange); stroke-width: 6; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.js .vc-page__wave { clip-path: inset(-10px 100% -10px 0); }
.js .vc-pagebg.is-in .vc-page__wave { clip-path: inset(-10px -10px -10px 0); transition: clip-path 1500ms cubic-bezier(.65, 0, .35, 1) 250ms; }
.vc-page .entry img { border-radius: var(--vc-radius); }
@media (prefers-reduced-motion: reduce) { .js .vc-page__wave, .js .vc-pagebg.is-in .vc-page__wave { clip-path: none; transition: none; } }

@media (prefers-reduced-motion: reduce) {
	.vc-sweep, .vc-stats > div + div::before, .vc-h em, .vc-em, .footer-cta h2 em, .vc-feeling::before, .vc-feeling::after, .vc-feeling .blob,
	.vc-cats img, .vc-banner .arrow, .primary-nav > ul > li > a::before { animation: none !important; }
	.vc-cats img, .vc-cats a:hover img { transition: none; transform: none; }
}

/* ========== Responsive ========== */
@media (max-width: 1000px) {
	.nav-toggle { display: block; }
	.primary-nav { display: none; position: absolute; top: 100%; left: var(--vc-gutter); right: var(--vc-gutter); border-radius: 1.6rem; background: rgba(25,10,1,.96); padding: 1rem 1.4rem; z-index: 30; }
	.primary-nav.is-open { display: block; }
	.primary-nav ul { flex-direction: column; align-items: stretch; gap: .2rem; }
	.primary-nav .menu-cta a { text-align: center; margin-top: .6rem; }
	.primary-nav .menu-item-has-children > a::after { display: none; }
	.primary-nav > ul > li > a::before { display: none; }
	.primary-nav li:not(.menu-cta) > a { width: auto; }
	.primary-nav .sub-menu { position: static; width: auto; margin: 0; opacity: 1; visibility: visible; transform: none; padding: 0 0 .4rem 1rem; background: none; border-radius: 0; box-shadow: none; gap: 0; }
	.primary-nav .sub-menu::before { display: none; }
	.primary-nav .sub-menu a { display: block; min-height: 0; border: 0; border-radius: 0; background: none; color: #fff; font: 400 .9em/1.1 var(--vc-sans); text-transform: uppercase; text-align: left; padding: .35em 0; }
	.primary-nav .sub-menu a:hover, .primary-nav .sub-menu a:focus-visible { background: none; color: var(--vc-yellow); }
	.header-lang { flex: 0 0 auto; min-width: 0; }
	.header-lang.is-empty { display: none; } /* solo móvil: sin widget de idioma no queda hueco junto al botón */
	.site-logo { flex: 0 0 auto; }
	.site-header { flex-wrap: nowrap; }
	.vc-stats { grid-template-columns: repeat(2, 1fr); }
	.vc-stats > div:nth-child(3)::before { display: none; }
	.vc-cats { grid-template-columns: repeat(2, 1fr); }
	.vc-cats a:last-child { grid-column: 1 / -1; }
	.footer-main { grid-template-columns: 1fr 1fr; }
	.footer-social, .footer-logo { grid-column: 1 / -1; }
	.mood-grid { grid-template-columns: 1fr; }
	.mood, .mood:nth-child(-n+2) { grid-column: auto; }
	.mood__img, .mood:nth-child(n+3) .mood__img { aspect-ratio: 16 / 9; }
	.vc-banners { grid-template-columns: 1fr; }
	.vc-hero__wave .vc-btn { right: var(--vc-gutter); bottom: 10%; }
}
@media (max-width: 560px) {
	.vc-hero__wave { height: auto; padding-top: 64px; margin-bottom: 1.2rem; }
	.vc-hero__wave svg { height: 64px; bottom: auto; }
	.vc-hero__wave .vc-btn { position: static; margin: 0 auto; display: flex; width: max-content; }
	.vc-hero--wtd .vc-hero__wave { padding-top: 0; height: 60px; margin-bottom: 0; }
	.vc-hero--wtd .vc-hero__wave svg { height: 100%; }
	.vc-events__swoosh { display: none; }
	.vc-events .vce-track { padding-left: var(--vc-gutter); }
	.footer-main { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
}

/* ========== Celulares: efectos mínimos (menos batería y menos ruido) ========== */
@media (max-width: 700px) {
	.vc-glint { display: none; }
	.vc-stats > div + div::before { animation: none !important; box-shadow: none; background: var(--vc-yellow); }
	.vc-h em, .vc-em { animation: none !important; background: none; -webkit-text-fill-color: currentColor; }
	.vc-hero h1 em { filter: none; text-shadow: 0 4px 30px rgba(0,0,0,.25); }
	.footer-cta h2 em { animation: none !important; display: inline; background: none; -webkit-text-fill-color: currentColor; }
	.vc-feeling::before, .vc-feeling::after, .vc-feeling .blob { animation: none !important; }
	.vc-cats img { animation: none !important; will-change: auto; }
	.vc-banner .arrow { animation: none !important; }
	.vc-h em.is-split .w, .footer-cta h2 em.is-split .w { animation: none !important; background: none !important; -webkit-text-fill-color: currentColor; }
	.footer-legal { padding-bottom: 4.8rem; }
	.vc-orbs i { animation: none !important; }
	.vc-orbs i:nth-child(n+3) { display: none; }
}
