/* Veta Gestión - botón flotante, buscador y botón de gestión */
.vvg-flota{ position:fixed; right:22px; bottom:22px; z-index:99990; display:flex; flex-direction:column; align-items:flex-end; gap:12px; font-family:Inter,sans-serif; }
.vvg-flota-wa{ display:inline-flex; align-items:center; gap:10px; background:#b7cd22; color:#141412; border:0; border-radius:999px; padding:14px 24px 14px 18px; font-weight:700; font-size:16px; cursor:pointer; box-shadow:0 12px 30px rgba(20,20,18,.28), 0 0 0 4px rgba(255,255,255,.9); transition:transform .2s ease, box-shadow .2s ease; animation:vvg-pulso 6s ease-in-out 3s infinite; }
.vvg-flota-wa:hover{ transform:translateY(-2px); box-shadow:0 16px 36px rgba(20,20,18,.32), 0 0 0 4px #fff; }
.vvg-flota-wa svg{ width:24px; height:24px; flex:0 0 24px; }
@keyframes vvg-pulso{ 0%,88%,100%{ box-shadow:0 12px 30px rgba(20,20,18,.28), 0 0 0 4px rgba(255,255,255,.9); } 94%{ box-shadow:0 12px 30px rgba(20,20,18,.28), 0 0 0 10px rgba(183,205,34,.35); } }
.vvg-flota-buscar{ display:inline-flex; align-items:center; justify-content:center; gap:10px; min-width:136px; background:#141412; color:#fff; border:0; border-radius:999px; padding:14px 24px 14px 18px; font-family:inherit; font-weight:700; font-size:16px; line-height:1.2; cursor:pointer; box-shadow:0 12px 30px rgba(20,20,18,.28), 0 0 0 4px rgba(255,255,255,.9); transition:transform .2s ease, box-shadow .2s ease; }
.vvg-flota-buscar:hover{ transform:translateY(-2px); box-shadow:0 16px 36px rgba(20,20,18,.32), 0 0 0 4px #fff; }
.vvg-flota-buscar svg{ width:24px; height:24px; flex:0 0 24px; color:#b7cd22; }
.vvg-flota-wa{ min-width:136px; justify-content:center; font-family:inherit; line-height:1.2; }
.vvg-wa-panel{ width:310px; background:#fff; border-radius:18px; box-shadow:0 24px 60px rgba(20,20,18,.3); overflow:hidden; transform-origin:bottom right; animation:vvg-abrir .22s ease; }
.vvg-wa-panel[hidden]{ display:none; }
@keyframes vvg-abrir{ from{ opacity:0; transform:translateY(10px) scale(.97);} to{ opacity:1; transform:none;} }
.vvg-wa-panel-head{ display:flex; justify-content:space-between; align-items:center; gap:10px; background:#141412; color:#fff; padding:16px 18px; font-size:15px; position:relative; overflow:hidden; }
.vvg-wa-panel-head:after{ content:""; position:absolute; right:0; top:0; bottom:0; width:150px; background:url(img/lineas.svg) right top/auto 100% no-repeat; -webkit-mask-image:linear-gradient(to left,#000 30%,transparent); mask-image:linear-gradient(to left,#000 30%,transparent); opacity:.35; }
.vvg-wa-panel-head strong{ position:relative; z-index:1; line-height:1.3; }
.vvg-cerrar{ position:relative; z-index:1; background:rgba(255,255,255,.12); color:#fff; border:0; width:30px; height:30px; flex:0 0 30px; border-radius:50%; font-size:20px; line-height:1; cursor:pointer; }
.vvg-wa-panel ul{ list-style:none; margin:0; padding:8px; }
.vvg-wa-panel li{ margin:0; padding:0; }
.vvg-wa-panel li a{ display:flex; align-items:center; gap:12px; padding:12px; border-radius:12px; text-decoration:none; color:#141412; transition:background .2s ease; }
.vvg-wa-panel li a:hover{ background:#f3f7e0; }
.vvg-wa-ico{ width:40px; height:40px; flex:0 0 40px; border-radius:50%; background:#25d366; color:#fff; display:flex; align-items:center; justify-content:center; }
.vvg-wa-ico svg{ width:22px; height:22px; }
.vvg-wa-panel li b{ display:block; font-size:15px; }
.vvg-wa-panel li small{ display:block; color:#6b6a63; font-size:13px; margin-top:2px; }
.vvg-buscador{ position:fixed; inset:0; z-index:99999; background:rgba(14,14,12,.94); display:flex; align-items:center; justify-content:center; padding:24px; animation:vvg-abrir .2s ease; }
.vvg-buscador[hidden]{ display:none; }
.vvg-buscador form{ width:min(720px,100%); }
.vvg-buscador label{ display:block; color:#fff; font-family:'Spline Sans',Inter,sans-serif; font-size:clamp(26px,3.4vw,40px); font-weight:700; margin-bottom:18px; }
.vvg-buscador form > div{ display:flex; gap:10px; }
.vvg-buscador input{ flex:1; min-width:0; border:0; border-radius:999px; padding:16px 24px; font-size:17px; color:#141412; background:#fff; }
.vvg-buscador button[type=submit]{ border:0; border-radius:999px; padding:0 28px; background:#b7cd22; color:#141412; font-weight:700; font-size:16px; cursor:pointer; }
.vvg-buscador p{ color:rgba(255,255,255,.6); margin-top:14px; font-size:14px; }
.vvg-buscador-cerrar{ position:absolute; top:22px; right:22px; width:44px; height:44px; flex-basis:44px; font-size:26px; }
.vvg-gestion-btn{ display:inline-flex; align-items:center; gap:8px; background:transparent; color:#b7cd22 !important; border:2px solid #b7cd22; border-radius:999px; padding:9px 18px; font-weight:700; font-size:14px; text-decoration:none; white-space:nowrap; transition:all .2s ease; }
.vvg-gestion-btn:hover{ background:#b7cd22; color:#141412 !important; }
.vvg-gestion-btn svg{ width:16px; height:16px; }
/* Carrusel de ofertas */
.vvg-slider{ position:relative; overflow:hidden; border-radius:14px; }
.vvg-track{ display:flex; transition:transform .6s cubic-bezier(.2,.7,.2,1); touch-action:pan-y; }
.vvg-slide{ flex:0 0 100%; }
.vvg-slide img{ width:100%; height:auto; display:block; }
.vvg-prev, .vvg-next{ position:absolute; top:50%; transform:translateY(-50%); width:46px; height:46px; border-radius:50%; border:0; background:rgba(20,20,18,.55); color:#fff; font-size:30px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .2s ease; }
.vvg-prev:hover, .vvg-next:hover{ background:rgba(20,20,18,.8); }
.vvg-prev{ left:14px; } .vvg-next{ right:14px; }
.vvg-dots{ position:absolute; left:0; right:0; bottom:14px; display:flex; justify-content:center; gap:6px; }
.vvg-dots button{ width:9px; height:9px; border-radius:6px; border:0; padding:0; background:rgba(255,255,255,.7); cursor:pointer; transition:all .25s ease; box-shadow:0 0 0 1px rgba(0,0,0,.15); }
.vvg-dots button.activo{ width:26px; background:#215c34; }
.vvg-mob{ display:none; }
@media (max-width:767px){
	.vvg-desk{ display:none; } .vvg-mob{ display:block; }
	.vvg-flota{ right:14px; bottom:14px; gap:10px; }
	.vvg-flota-wa{ padding:14px; } .vvg-flota-wa span{ display:none; }
	.vvg-flota-wa svg{ width:28px; height:28px; flex-basis:28px; }
	.vvg-flota-buscar{ min-width:0; padding:14px; } .vvg-flota-buscar span{ display:none; }
	.vvg-flota-buscar svg{ width:28px; height:28px; flex-basis:28px; }
	.vvg-flota-wa{ min-width:0; }
	.vvg-wa-panel{ width:calc(100vw - 28px); max-width:340px; }
	.vvg-prev, .vvg-next{ width:38px; height:38px; font-size:24px; }
}
@media print{ .vvg-flota, .vvg-buscador{ display:none !important; } }

/* 1.2.0: Galería con filtros */
.vvg-galeria{ --gal-gap:18px; }
.vvg-gal-filtros{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin:0 auto 34px; }
.vvg-gal-filtros button{ font-family:Inter,sans-serif; font-weight:600; font-size:15px; line-height:1.2; padding:11px 22px; border-radius:999px; border:2px solid #215c34; background:transparent; color:#215c34; cursor:pointer; transition:background .25s ease, color .25s ease, transform .2s ease, box-shadow .25s ease; max-width:100%; }
.vvg-gal-filtros button:hover{ transform:translateY(-2px); box-shadow:0 8px 18px rgba(33,92,52,.16); }
.vvg-gal-filtros button.activo{ background:#215c34; color:#fff; box-shadow:0 8px 18px rgba(33,92,52,.22); }
.vvg-gal-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--gal-gap); }
.vvg-gal-item{ margin:0; position:relative; border-radius:16px; overflow:hidden; background:#ecece6; aspect-ratio:4/3; box-shadow:0 10px 26px rgba(20,20,18,.08); transition:opacity .35s ease, transform .35s ease, box-shadow .3s ease; }
.vvg-gal-item:after{ content:""; position:absolute; left:0; right:0; bottom:0; height:4px; background:#b7cd22; transform:scaleX(0); transform-origin:left; transition:transform .4s cubic-bezier(.2,.7,.2,1); pointer-events:none; }
.vvg-gal-item:hover{ box-shadow:0 18px 40px rgba(20,20,18,.16); }
.vvg-gal-item:hover:after{ transform:scaleX(1); }
.vvg-gal-item.vvg-oculta{ display:none; }
.vvg-gal-item.vvg-saliendo{ opacity:0; transform:scale(.94); }
.vvg-gal-item.vvg-entrando{ opacity:0; transform:scale(.96); }
.vvg-gal-abrir{ display:block; width:100%; height:100%; padding:0; border:0; background:none; cursor:zoom-in; position:relative; }
.vvg-gal-abrir img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .7s cubic-bezier(.2,.7,.2,1); }
.vvg-gal-item:hover .vvg-gal-abrir img{ transform:scale(1.05); }
.vvg-gal-abrir figcaption{ position:absolute; left:0; right:0; bottom:0; padding:40px 16px 14px; text-align:left; background:linear-gradient(to top, rgba(14,14,12,.78), transparent); color:#fff; opacity:0; transform:translateY(8px); transition:all .3s ease; }
.vvg-gal-abrir figcaption small{ display:block; color:#b7cd22; font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.vvg-gal-abrir figcaption span{ display:block; font-weight:600; font-size:15px; line-height:1.3; margin-top:2px; }
.vvg-gal-item:hover figcaption, .vvg-gal-abrir:focus-visible figcaption{ opacity:1; transform:none; }
.vvg-gal-abrir:focus-visible{ outline:3px solid #b7cd22; outline-offset:-3px; }
.vvg-visor{ position:fixed; inset:0; z-index:100002; background:rgba(14,14,12,.94); display:flex; align-items:center; justify-content:center; padding:60px 70px; animation:vvg-abrir .2s ease; }
.vvg-visor[hidden]{ display:none; }
.vvg-visor figure{ margin:0; max-width:100%; max-height:100%; display:flex; flex-direction:column; align-items:center; gap:12px; }
.vvg-visor img{ max-width:min(1400px,100%); max-height:calc(100vh - 160px); object-fit:contain; border-radius:12px; box-shadow:0 30px 80px rgba(0,0,0,.5); }
.vvg-visor figcaption{ color:#fff; font-family:Inter,sans-serif; font-size:15px; text-align:center; }
.vvg-visor figcaption small{ color:#b7cd22; font-weight:700; letter-spacing:.12em; text-transform:uppercase; font-size:11px; margin-right:8px; }
.vvg-visor-x{ position:absolute; top:18px; right:18px; width:44px; height:44px; border-radius:50%; border:0; background:rgba(255,255,255,.14); color:#fff; font-size:26px; line-height:1; cursor:pointer; }
.vvg-visor-nav{ position:absolute; top:50%; transform:translateY(-50%); width:48px; height:48px; border-radius:50%; border:0; background:rgba(255,255,255,.14); color:#fff; font-size:32px; line-height:1; cursor:pointer; }
.vvg-visor-nav:hover, .vvg-visor-x:hover{ background:#b7cd22; color:#141412; }
.vvg-visor-prev{ left:14px; } .vvg-visor-next{ right:14px; }
body.vvg-visor-activo{ overflow:hidden; }
@media (max-width:980px){ .vvg-gal-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:600px){
	.vvg-galeria{ --gal-gap:12px; }
	.vvg-gal-grid{ grid-template-columns:1fr; }
	.vvg-gal-filtros{ gap:8px; margin-bottom:24px; }
	.vvg-gal-filtros button{ padding:9px 16px; font-size:14px; }
	.vvg-gal-abrir figcaption{ opacity:1; transform:none; }
	.vvg-visor{ padding:60px 12px; }
	.vvg-visor-nav{ top:auto; bottom:14px; transform:none; }
}
@media (prefers-reduced-motion:reduce){ .vvg-gal-item, .vvg-gal-abrir img, .vvg-gal-item:after{ transition:none !important; } }

/* 1.2.0: página de gestión dentro del sitio */
body.vvg-pagina-gestion{ background:#f0f0ec; }
body.vvg-pagina-gestion .vv-page-hero, body.vvg-pagina-gestion .vv-cta-dark{ display:none !important; }


/* 1.3.0: Entradas del blog (bloques del panel y entradas anteriores) */
body.single-post .vv-entrada-txt p, body.single-post .vv-entrada-txt h2, body.single-post .vv-entrada-txt h3, body.single-post .vv-entrada-txt li{ text-align:left !important; }
.vv-blog-fig{ margin:28px 0; }
.vv-blog-fig img{ width:100%; height:auto; border-radius:16px; display:block; }
.vv-blog-fig figcaption{ margin-top:8px; font-size:14px; color:#6b6a63; text-align:center; }
.vv-blog-destacado{ margin:30px 0; padding:22px 26px; background:#f3f7e0; border-left:5px solid #b7cd22; border-radius:0 14px 14px 0; }
.vv-blog-destacado p{ margin:0 !important; font-family:'Spline Sans',Inter,sans-serif; font-size:clamp(19px,2vw,23px); line-height:1.45; font-weight:600; color:#215c34; }
.vv-blog-cta{ margin:30px 0 !important; text-align:center !important; }
.vv-blog-cta .vv-btn{ max-width:100%; white-space:normal; text-align:center; }
.vv-blog-cta .vv-btn-verde{ background:#215c34; color:#fff !important; }
