/* ============================================================
   verde quérote verde · site.css
   Header + Footer + Home/Sobre nosotros (hero, intro, galería, lightbox)
   Estética: florería minimalista, paleta verde existente.
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400&family=Jost:wght@300;400;500&display=swap');

:root {
    --vqv-serif: 'Cormorant Garamond', Georgia, serif;
    --vqv-sans: 'Jost', system-ui, sans-serif;
}

body { font-family: var(--vqv-sans); color: var(--color-primary900, #213B27); background: var(--color-background, #FFFCF4); margin: 0; }
.vqv * { box-sizing: border-box; }
img { max-width: 100%; height: auto; }

/* ===================== HEADER ===================== */
.vqv-header { background: var(--color-background, #FFFCF4); border-bottom: 1px solid rgba(33,59,39,.10); position: sticky; top: 0; z-index: 900; }
.vqv-header__bar { display: flex; align-items: center; gap: 24px; width: 95%; max-width: 1600px; margin: 0 auto; padding: 14px 0; }
.vqv-header__logo { display: inline-flex; align-items: center; flex: 0 0 auto; text-decoration: none; }
.vqv-header__logo { gap: 12px; }
.vqv-header__logo img { max-height: 56px; width: auto; }
.vqv-header__name { font-family: var(--vqv-serif); font-weight: 500; font-size: 1.5rem; line-height: 1; color: var(--color-primary900, #213B27); letter-spacing: .3px; }
.vqv-header__nav { margin-left: auto; }

/* ----- Desplegable Tienda (dropdown normal) ----- */
.vqv-has-mega { position: relative; }
/* El trigger se ve igual que el resto de items del menú */
.vqv-mega__trigger { font: inherit; background: none; border: 0; margin: 0; padding: 0; cursor: pointer; color: var(--color-primary900, #213B27); text-transform: uppercase; letter-spacing: 1.5px; font-size: .82rem; font-weight: 400; display: inline-flex; align-items: center; gap: 6px; transition: color .25s; }
.vqv-mega__trigger:hover { color: var(--color-primary500, #597D61); }
.vqv-mega__trigger::after { content: ''; width: 6px; height: 6px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg) translateY(-1px); transition: transform .25s; }
.vqv-has-mega.is-open .vqv-mega__trigger::after { transform: rotate(-135deg) translateY(-1px); }

.vqv-mega { position: absolute; top: calc(100% + 12px); right: 0; left: auto; width: max-content; max-width: calc(100vw - 32px); overflow: hidden; background: var(--color-blanco, #fff); color: var(--color-primary900, #213B27); border: 1px solid rgba(33,59,39,.12); border-radius: 8px; box-shadow: 0 16px 36px rgba(33,59,39,.16); padding: 10px; opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .22s ease, transform .22s ease, visibility .22s; z-index: 950; }
.vqv-has-mega.is-open .vqv-mega { opacity: 1; visibility: visible; transform: translateY(0); }
.vqv-mega__grid { display: grid; grid-template-columns: repeat(2, minmax(180px, 1fr)); gap: 2px 10px; }
.vqv-mega__item { display: flex; align-items: center; gap: 12px; padding: 9px 12px; border-radius: 6px; text-decoration: none; color: var(--color-primary900, #213B27); font-size: .9rem; text-transform: none; letter-spacing: normal; line-height: 1.3; transition: background .2s; }
.vqv-mega__item:hover { background: var(--color-grey, #F3F5EF); color: var(--color-primary700, #365F40); }
.vqv-mega__item img { width: 38px; height: 38px; object-fit: cover; border-radius: 6px; flex: 0 0 auto; }
.vqv-mega__name { white-space: normal; }
.vqv-mega__all { display: block; margin-top: 4px; padding: 10px 10px 6px; border-top: 1px solid rgba(33,59,39,.1); color: var(--color-primary700, #365F40); text-decoration: none; font-size: .76rem; text-transform: uppercase; letter-spacing: 1.2px; }
.vqv-mega__all:hover { color: var(--color-primary500, #597D61); }
.vqv-mega__empty { padding: 10px; color: var(--color-primary500, #597D61); font-size: .85rem; }
.vqv-menu { list-style: none; display: flex; gap: 28px; margin: 0; padding: 0; }
.vqv-menu a { text-decoration: none; color: var(--color-primary900, #213B27); text-transform: uppercase; letter-spacing: 1.5px; font-size: .82rem; font-weight: 400; transition: color .25s; }
.vqv-menu a:hover { color: var(--color-primary500, #597D61); }
.vqv-header__cart { flex: 0 0 auto; }
.vqv-cart { position: relative; display: inline-flex; color: var(--color-primary900, #213B27); }
.vqv-cart__count { position: absolute; top: -8px; right: -10px; background: var(--color-primary700, #365F40); color: #fff; font-size: .65rem; line-height: 1; min-width: 16px; height: 16px; border-radius: 8px; display: flex; align-items: center; justify-content: center; padding: 0 4px; }
.vqv-header__toggle { display: none; flex-direction: column; gap: 5px; background: none; border: 0; cursor: pointer; padding: 6px; margin-left: auto; }
.vqv-header__toggle span { width: 24px; height: 2px; background: var(--color-primary900, #213B27); display: block; }

/* ----- Selector de idioma ----- */
.vqv-lang { position: relative; flex: 0 0 auto; }
.vqv-lang__btn { display: inline-flex; align-items: center; gap: 6px; background: none; border: 1px solid rgba(33,59,39,.18); border-radius: 4px; padding: 7px 11px; cursor: pointer; color: var(--color-primary900, #213B27); font-family: var(--vqv-sans, sans-serif); font-size: .78rem; letter-spacing: 1px; text-transform: uppercase; transition: border-color .25s, color .25s; }
.vqv-lang__btn:hover { border-color: var(--color-primary500, #597D61); color: var(--color-primary500, #597D61); }
.vqv-lang__menu { position: absolute; top: calc(100% + 8px); right: 0; min-width: 150px; background: var(--color-blanco, #fff); border: 1px solid rgba(33,59,39,.12); border-radius: 8px; box-shadow: 0 14px 30px rgba(33,59,39,.16); padding: 6px; opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .2s ease, transform .2s ease, visibility .2s; z-index: 950; }
.vqv-lang.is-open .vqv-lang__menu { opacity: 1; visibility: visible; transform: translateY(0); }
.vqv-lang__menu button { display: block; width: 100%; text-align: left; background: none; border: 0; padding: 9px 12px; border-radius: 6px; cursor: pointer; color: var(--color-primary900, #213B27); font-family: var(--vqv-sans, sans-serif); font-size: .9rem; transition: background .2s; }
.vqv-lang__menu button:hover { background: var(--color-grey, #F3F5EF); }
.vqv-lang__menu button.is-active { color: var(--color-primary700, #365F40); font-weight: 500; }

/* Ocultar el widget/banner nativo de Google Translate y el de GTranslate (usamos el selector propio) */
.goog-te-banner-frame, .goog-te-gadget, .skiptranslate, #goog-gt-tt, .goog-te-balloon-frame,
.gtranslate_wrapper, #gt_float_wrapper, .gt_float_switcher, .gtranslate_selector, .gt_switcher_wrapper { display: none !important; }
.goog-tooltip, .goog-text-highlight { background: none !important; box-shadow: none !important; }
body { top: 0 !important; }

/* ===================== HERO SLIDER ===================== */
.vqv-hero { position: relative; height: 88vh; min-height: 520px; max-height: 900px; }
.vqv-slide { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: 0; transition: opacity 1.4s ease; display: flex; align-items: center; justify-content: center; }
.vqv-slide.is-active { opacity: 1; }
.vqv-slide::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(33,59,39,.15) 0%, rgba(33,59,39,.42) 100%); }
.vqv-slide__inner { position: relative; z-index: 2; text-align: center; color: #fff; max-width: 760px; padding: 0 24px; }
.vqv-slide__inner h1, .vqv-slide__inner h2 { font-family: var(--vqv-serif); font-weight: 500; line-height: 1.05; font-size: clamp(2.6rem, 6vw, 5rem); margin: 0 0 18px; letter-spacing: .5px; color: #fff; }
.vqv-slide__inner p { font-size: clamp(1rem, 1.6vw, 1.25rem); font-weight: 300; margin: 0 auto 28px; max-width: 540px; }
.vqv-btn { display: inline-block; background: #fff; color: var(--color-primary900, #213B27); padding: 14px 34px; border-radius: 4px; text-transform: uppercase; letter-spacing: 2px; font-size: .8rem; font-weight: 500; text-decoration: none; transition: all .3s ease; }
.vqv-btn:hover { background: var(--color-primary700, #365F40); color: #fff; }
/* En escritorio el panel móvil no existe: sus extras no se pintan */
.vqv-nav__close, .vqv-nav__extras, .vqv-nav__social { display: none; }
@media (max-width: 860px) {
    .vqv-nav__close, .vqv-nav__extras, .vqv-nav__social { display: flex; }
    /* En el encabezado solo carrito y menú: el idioma se ve dentro del panel */
    .vqv-header__bar > .vqv-lang { display: none; }
}

/* Páginas de mensaje (gracias, 404) */
.vqv-mensaje { padding: clamp(70px, 11vw, 150px) 0; }
.vqv-mensaje__inner { width: min(88%, 720px); margin: 0 auto; text-align: center; }
.vqv-mensaje__sup { margin: 0 0 14px; font-size: .74rem; text-transform: uppercase; letter-spacing: 2.4px; }
.vqv-mensaje__titulo { font-family: var(--vqv-serif); font-weight: 500; line-height: 1.1; font-size: clamp(2.1rem, 5vw, 3.4rem); margin: 0 0 20px; }
.vqv-mensaje__texto { font-weight: 300; font-size: 1.05rem; line-height: 1.85; margin: 0 auto 34px; max-width: 560px; }
.vqv-mensaje__texto p { margin: 0 0 1em; }
.vqv-mensaje__texto p:last-child { margin-bottom: 0; }
.vqv-mensaje__acciones { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; }
.vqv-mensaje__buscar { margin-top: 40px; }
.vqv-mensaje__buscar p { margin: 0 0 12px; font-size: .9rem; }
.vqv-mensaje__buscar form { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.vqv-mensaje__buscar label { flex: 1 1 260px; max-width: 340px; }
.vqv-mensaje__buscar input[type="search"], .vqv-mensaje__buscar input[type="text"] { width: 100%; box-sizing: border-box; }
.vqv-mensaje__pie { margin: 40px 0 0; font-size: .92rem; }

/* Mapa «Ven a vernos» */
.vqv-mapa { padding: clamp(30px, 5vw, 60px) 0 0; }
.vqv-mapa__titulo { font-family: var(--vqv-serif); font-weight: 500; font-size: clamp(1.6rem, 3vw, 2.2rem); margin: 0 0 8px; }
.vqv-mapa__dir { font-weight: 300; margin: 0 0 18px; }
.vqv-mapa__marco { position: relative; aspect-ratio: 16 / 9; border-radius: 10px; overflow: hidden; background: var(--color-grey, #F3F5EF); }
.vqv-mapa__marco iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.vqv-mapa__acciones { margin: 18px 0 0; }
.vqv-btn--linea { background: transparent; border: 1px solid currentColor; }
@media (max-width: 600px) { .vqv-mapa__marco { aspect-ratio: 4 / 3; } }

/* Bloque «¿No sabes qué regalar?» + botón de WhatsApp */
.vqv-help { padding: clamp(40px, 6vw, 80px) 0; }
.vqv-help__inner {
    width: min(80%, 860px); margin: 0 auto; text-align: center;
    border: 1px solid rgba(33,59,39,.16); border-radius: 12px;
    padding: clamp(28px, 4vw, 48px) clamp(20px, 4vw, 48px);
}
.vqv-help__title { font-family: var(--vqv-serif); font-weight: 500; font-size: clamp(1.7rem, 3.2vw, 2.4rem); line-height: 1.15; margin: 0 0 14px; }
.vqv-help__text { font-weight: 300; line-height: 1.75; margin: 0 auto 26px; max-width: 560px; }
.vqv-btn--wa { display: inline-flex; align-items: center; gap: 10px; }
.vqv-btn--wa svg { flex: 0 0 auto; }

/* Burbuja flotante de WhatsApp */
.vqv-wa {
    position: fixed; right: 20px; bottom: 20px; z-index: 900;
    display: inline-flex; align-items: center; justify-content: center;
    width: 56px; height: 56px; box-sizing: border-box;
    border-radius: 50%; background: #25D366; color: #fff; text-decoration: none;
    box-shadow: 0 6px 20px rgba(0,0,0,.28);
    transition: background .25s ease;
}
.vqv-wa svg { flex: 0 0 28px; }
/* La etiqueta aparece al lado, no ensanchando el botón: así solo se animan
   opacidad y transform (nada de recalcular la maquetación en cada fotograma). */
.vqv-wa__tip {
    position: absolute; right: calc(100% + 10px); top: 50%;
    padding: 7px 13px; border-radius: 20px;
    background: #25D366; color: #fff; white-space: nowrap;
    font-size: .84rem; font-weight: 500; letter-spacing: .4px;
    box-shadow: 0 4px 14px rgba(0,0,0,.25);
    opacity: 0; transform: translate(8px, -50%);
    transition: opacity .2s ease, transform .2s ease;
    pointer-events: none;
}
.vqv-wa:hover, .vqv-wa:focus-visible { background: #1FB855; color: #fff; }
.vqv-wa:hover .vqv-wa__tip, .vqv-wa:focus-visible .vqv-wa__tip { opacity: 1; transform: translate(0, -50%); }
.vqv-wa:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .vqv-wa, .vqv-wa__tip { transition: none; } }
@media (max-width: 600px) { .vqv-wa { right: 14px; bottom: 14px; } }

/* Mensaje principal fijo sobre el carrusel (no rota con las fotos) */
.vqv-hero__claim {
    position: absolute; inset: 0; z-index: 2; display: flex; align-items: center; justify-content: center;
    pointer-events: none;
    /* Velo propio: las fotos del carrusel son claras y con texto, y el degradado
       del slide no basta para que se lea el mensaje. */
    background:
        radial-gradient(ellipse 70% 60% at 50% 50%, rgba(0,0,0,.62) 0%, rgba(0,0,0,.42) 55%, rgba(0,0,0,.12) 100%),
        linear-gradient(180deg, rgba(0,0,0,.22) 0%, rgba(0,0,0,.1) 40%, rgba(0,0,0,.3) 100%);
}
.vqv-hero__claim-inner { pointer-events: auto; text-align: center; color: #fff; max-width: 780px; padding: 0 24px; }
.vqv-hero__claim-inner h1 {
    font-family: var(--vqv-serif); font-weight: 500; line-height: 1.05;
    font-size: clamp(2.4rem, 5.4vw, 4.4rem); margin: 0 0 18px; letter-spacing: .5px; color: #fff;
    text-shadow: 0 2px 24px rgba(0,0,0,.45);
}
.vqv-hero__claim-inner p {
    font-size: clamp(1rem, 1.6vw, 1.25rem); font-weight: 300; line-height: 1.6;
    margin: 0 auto 30px; max-width: 560px; color: #fff; text-shadow: 0 1px 14px rgba(0,0,0,.5);
}
.vqv-hero__dots { position: absolute; bottom: 28px; left: 0; right: 0; z-index: 3; display: flex; gap: 10px; justify-content: center; }
.vqv-hero__dots button { width: 9px; height: 9px; border-radius: 50%; border: 1px solid #fff; background: transparent; cursor: pointer; padding: 0; transition: background .3s; }
.vqv-hero__dots button.is-active { background: #fff; }

/* ===================== INTRO (80% ancho) ===================== */
.vqv-intro { text-align: center; padding: clamp(64px, 9vw, 130px) 0; }
.vqv-intro__inner { width: 80%; max-width: 1100px; margin: 0 auto; }
.vqv-intro h2 { font-family: var(--vqv-serif); font-weight: 500; font-size: clamp(2rem, 4.5vw, 3.4rem); line-height: 1.1; margin: 0 0 26px; }
.vqv-intro__lead { font-weight: 300; font-size: 1.1rem; line-height: 1.85; color: var(--color-primary700, #365F40); }
.vqv-intro__lead p { margin: 0 0 1em; }

/* Intro con vídeo: texto a la izquierda, vídeo a la derecha y fijo mientras se lee.
   Si el texto es más corto que el vídeo, sticky no hace nada y todo queda alineado. */
.vqv-intro--video { text-align: left; }
.vqv-intro--video .vqv-intro__inner {
    display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(30px, 5vw, 70px); align-items: start;
    max-width: 1240px;
}
.vqv-intro--video .vqv-intro__media {
    position: sticky; top: calc(var(--vqv-headerh, 144px) + 20px); align-self: start;
}
.vqv-intro--video .vqv-intro__media video {
    display: block; width: 100%; height: auto;
    max-height: calc(100vh - var(--vqv-headerh, 144px) - 40px);
    border-radius: 10px; background: #000; object-fit: cover;
}
.vqv-intro--video .vqv-intro__media video::-webkit-media-controls,
.vqv-intro--video .vqv-intro__media video::-webkit-media-controls-enclosure {
    display: none !important; -webkit-appearance: none;
}
@media (max-width: 860px) {
    .vqv-intro--video { text-align: center; }
    .vqv-intro--video .vqv-intro__inner { grid-template-columns: 1fr; }
    .vqv-intro--video .vqv-intro__media { position: static; margin: 0 auto; max-width: 360px; }
    .vqv-intro--video .vqv-intro__media video { max-height: none; }
}

/* ===================== GALERÍA (95% ancho) ===================== */
.vqv-gallery { padding: 0 0 clamp(64px, 9vw, 120px); }
.vqv-gallery__inner { width: 95%; margin: 0 auto; }
.vqv-gallery__grid { columns: 4 280px; column-gap: 16px; }
.vqv-gallery__item { margin: 0 0 16px; break-inside: avoid; overflow: hidden; border-radius: 4px; cursor: pointer; position: relative; }
.vqv-gallery__item img { width: 100%; display: block; transition: transform .6s ease; }
.vqv-gallery__item:hover img { transform: scale(1.05); }
.vqv-gallery__item:focus-visible { outline: 2px solid var(--color-primary500, #597D61); outline-offset: 2px; }

/* ===================== LIGHTBOX ===================== */
.vqv-lb { position: fixed; inset: 0; z-index: 9999; background: rgba(20,30,22,.96); display: none; flex-direction: column; }
.vqv-lb.is-open { display: flex; }
.vqv-lb__stage { flex: 1; position: relative; display: flex; align-items: center; justify-content: center; padding: 40px 60px 10px; min-height: 0; }
.vqv-lb__img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 3px; user-select: none; }
.vqv-lb__close { position: absolute; top: 18px; right: 22px; background: none; border: 0; color: #fff; font-size: 30px; line-height: 1; cursor: pointer; z-index: 2; }
.vqv-lb__nav { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(255,255,255,.12); border: 0; color: #fff; width: 48px; height: 48px; border-radius: 50%; font-size: 24px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background .25s; }
.vqv-lb__nav:hover { background: rgba(255,255,255,.28); }
.vqv-lb__nav--prev { left: 14px; }
.vqv-lb__nav--next { right: 14px; }
.vqv-lb__counter { color: rgba(255,255,255,.7); text-align: center; font-size: .8rem; letter-spacing: 1px; padding: 4px 0; }
.vqv-lb__thumbs { display: flex; gap: 8px; overflow-x: auto; padding: 12px 16px 18px; scrollbar-width: thin; }
.vqv-lb__thumb { flex: 0 0 auto; width: 74px; height: 74px; object-fit: cover; border-radius: 3px; opacity: .45; cursor: pointer; transition: opacity .25s; border: 2px solid transparent; }
.vqv-lb__thumb.is-active { opacity: 1; border-color: #fff; }
body.vqv-lb-open { overflow: hidden; }

/* ===================== PÁGINA NORMAL ===================== */
.vqv-page { padding: clamp(56px, 8vw, 110px) 0; }
.vqv-page__title { font-family: var(--vqv-serif); font-weight: 500; font-size: clamp(2rem, 4.5vw, 3.2rem); margin: 0 0 28px; text-align: center; }
.vqv-page__content { font-weight: 300; line-height: 1.8; }

/* ===================== FOOTER ===================== */
.vqv-footer { background: var(--color-primary900, #213B27); color: rgba(255,255,255,.85); margin-top: 0; }
.vqv-footer__cols { width: 95%; max-width: 1600px; margin: 0 auto; display: grid; grid-template-columns: 1.6fr 1fr 1fr 1.2fr; gap: 40px; padding: clamp(48px, 6vw, 80px) 0; }
.vqv-footer__kit { display: block; max-width: 340px; width: 100%; height: auto; margin: 18px 0; }
.vqv-footer__pay { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; list-style: none; margin: 10px 0 6px; padding: 0; }
.vqv-footer__pay-item { display: flex; align-items: center; justify-content: center; background: #fff; border-radius: 5px; padding: 4px 6px; height: 30px; box-sizing: border-box; }
.vqv-footer__pay-item img { display: block; width: auto; height: 100%; max-height: 22px; max-width: 56px; object-fit: contain; }
.vqv-footer__legal { width: 95%; max-width: 1600px; margin: 0 auto; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 22px; padding: 22px 0 0; border-top: 1px solid rgba(255,255,255,.14); }
.vqv-footer__legal a { color: rgba(255,255,255,.8) !important; text-decoration: none; font-size: .82rem; }
.vqv-footer__legal a:hover { color: #fff !important; text-decoration: underline; text-underline-offset: 3px; }
.vqv-footer__brand { font-family: var(--vqv-serif); font-weight: 500; font-size: 1.6rem; color: #fff; margin: 0 0 14px; }
.vqv-footer__col h4 { text-transform: uppercase; letter-spacing: 1.5px; font-size: .8rem; font-weight: 500; color: #fff; margin: 0 0 16px; }
.vqv-footer__col p, .vqv-footer__col li { font-weight: 300; font-size: .92rem; line-height: 1.7; }
.vqv-footer__col a { color: rgba(255,255,255,.85); text-decoration: none; transition: color .25s; }
.vqv-footer__col a:hover { color: #fff; }
.vqv-footer__contact, .vqv-footer__links { list-style: none; margin: 0; padding: 0; }
.vqv-footer__contact li, .vqv-footer__links li { margin-bottom: 8px; }
.vqv-footer__todo { color: rgba(255,255,255,.4); font-style: italic; font-size: .82rem; }
.vqv-footer__col--brand .container-red_social_rrhh { margin-top: 16px; }
.vqv-footer__col--brand .container-red_social_rrhh a { background: rgba(255,255,255,.12); }
.vqv-footer__col--brand .container-red_social_rrhh svg path { fill: #fff; }
.vqv-footer__bottom { width: 95%; max-width: 1600px; margin: 0 auto; display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; padding: 16px 0 24px; font-size: .8rem; color: rgba(255,255,255,.6); }
.vqv-footer__bottom a { color: rgba(255,255,255,.85); text-decoration: none; }
.vqv-footer__bottom a:hover { color: #fff; }

/* ===================== RESPONSIVE ===================== */
@media (max-width: 980px) {
    .vqv-footer__cols { grid-template-columns: 1fr 1fr; }
    .vqv-footer__col--brand { grid-column: 1 / -1; }
    .vqv-gallery__grid { columns: 3 220px; }
}
@media (max-width: 860px) {
    .vqv-header__toggle { display: flex; }
    .vqv-header__nav { position: fixed; inset: 0 0 0 auto; width: min(80%, 320px); background: var(--color-background, #FFFCF4); transform: translateX(100%); transition: transform .3s ease; padding: 90px 28px 28px; box-shadow: -8px 0 30px rgba(0,0,0,.12); margin: 0; }
    .vqv-header__nav.is-open { transform: translateX(0); }
    .vqv-menu { flex-direction: column; gap: 18px; align-items: flex-start; }
    .vqv-header__cart { margin-left: 0; order: 2; }

    /* Panel del menú: cerrar arriba a la izquierda, y bajo los enlaces el idioma,
       el carrito y las redes. */
    .vqv-header__nav { padding: 62px 28px 32px; overflow-y: auto; }
    .vqv-nav__close {
        position: absolute; top: 16px; left: 20px; display: inline-flex; padding: 8px;
        background: none; border: 0; cursor: pointer; color: var(--color-primary900, #213B27);
        line-height: 0;
    }
    .vqv-nav__extras {
        display: flex; align-items: center; gap: 18px; flex-wrap: wrap;
        margin-top: 26px; padding-top: 22px; border-top: 1px solid rgba(33,59,39,.14);
    }
    .vqv-nav__cart { display: inline-flex; align-items: center; gap: 8px; text-decoration: none; color: inherit; position: relative; }
    .vqv-nav__social { margin-top: 18px; }
    .vqv-social { display: flex; gap: 12px; }
    .vqv-social__link {
        width: 38px; height: 38px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
        border: 1px solid rgba(33,59,39,.2); color: var(--color-primary900, #213B27); text-decoration: none;
        transition: border-color .2s ease, color .2s ease;
    }
    .vqv-social__link:hover { border-color: var(--color-primary500, #597D61); color: var(--color-primary500, #597D61); }
    body.vqv-nav-open { overflow: hidden; }
    /* Con el panel abierto, el carrito y el botón de menú de la barra sobran:
       ya están dentro (y para cerrar está la X). */
    body.vqv-nav-open .vqv-header__cart,
    body.vqv-nav-open .vqv-header__toggle { display: none; }
    .vqv-header__bar { gap: 16px; }
    /* Mega menú inline dentro del nav móvil */
    .vqv-has-mega { position: static; width: 100%; }
    .vqv-mega { position: static; min-width: 0; max-height: none; overflow: visible; border: 0; opacity: 1; visibility: visible; transform: none; box-shadow: none; padding: 14px 0 4px; background: transparent; color: var(--color-primary900, #213B27); display: none; }
    .vqv-has-mega.is-open .vqv-mega { display: block; }
    .vqv-mega__grid { grid-template-columns: 1fr; gap: 2px; }
    .vqv-mega__item { color: var(--color-primary900, #213B27); }
    .vqv-mega__item:hover { background: var(--color-grey, #F3F5EF); color: var(--color-primary900, #213B27); }
    .vqv-mega__all { color: var(--color-primary700, #365F40); margin-top: 14px; }
}
@media (max-width: 600px) {
    .vqv-hero { height: 70vh; }
    .vqv-intro__inner { width: 88%; }
    .vqv-gallery__grid { columns: 2 140px; column-gap: 10px; }
    .vqv-gallery__item { margin-bottom: 10px; }
    .vqv-footer__cols { grid-template-columns: 1fr; }
    .vqv-lb__stage { padding: 50px 12px 8px; }
    .vqv-lb__nav { width: 40px; height: 40px; }
}

/* ============================================================
   Consistencia HEADER/FOOTER en TODAS las páginas (incl. WooCommerce).
   WooCommerce y otros estilos añaden color a h1-h4/p/a vía body-class
   .woocommerce-page; forzamos los colores del header y footer para que
   sean idénticos en cualquier página.
   ============================================================ */
.vqv-header .vqv-header__logo { display: inline-flex !important; flex-direction: row !important; align-items: center; gap: 12px; }
.vqv-header .vqv-header__logo img { order: 0; }
.vqv-header .vqv-header__name { order: 1; color: var(--color-primary900, #213B27) !important; }
.vqv-header .vqv-menu a, .vqv-header .vqv-mega__trigger { color: var(--color-primary900, #213B27) !important; }
.vqv-header .vqv-menu a:hover, .vqv-header .vqv-mega__trigger:hover { color: var(--color-primary500, #597D61) !important; }
.vqv-header .vqv-cart { color: var(--color-primary900, #213B27) !important; }

.vqv-footer, .vqv-footer p, .vqv-footer li, .vqv-footer span { color: rgba(255,255,255,.85) !important; }
.vqv-footer h2, .vqv-footer h3, .vqv-footer h4, .vqv-footer .vqv-footer__brand { color: #fff !important; }
.vqv-footer a { color: rgba(255,255,255,.85) !important; }
.vqv-footer a:hover { color: #fff !important; }
.vqv-footer .vqv-footer__todo { color: rgba(255,255,255,.45) !important; }

/* Móvil: nada puede salirse por los lados (p. ej. el panel del menú oculto a la derecha);
   así el pellizco para alejar se queda en la vista normal. clip no rompe la cabecera sticky. */
html, body { overflow-x: clip; }

/* ===================== BUSCADOR (lupa en la cabecera) ===================== */
.vqv-search-btn { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; background: none; border: 0; padding: 6px; margin: 0; cursor: pointer; color: var(--color-primary900, #213B27); line-height: 0; transition: color .25s; }
.vqv-search-btn:hover, .vqv-search-btn[aria-expanded="true"] { color: var(--color-primary700, #C6A15B); }
.vqv-search { position: absolute; left: 0; right: 0; top: 100%; background: var(--color-background, #FFFCF4); border-bottom: 1px solid rgba(127,127,127,.22); box-shadow: 0 18px 36px rgba(0,0,0,.35); padding: 22px 0 26px; z-index: 940; }
.vqv-search[hidden] { display: none; }
.vqv-search__form { display: flex; align-items: center; gap: 6px; width: 95%; max-width: 760px; margin: 0 auto; border-bottom: 1px solid rgba(127,127,127,.4); transition: border-color .25s; }
.vqv-search__form:focus-within { border-color: var(--color-primary700, #C6A15B); }
.vqv-search__input { flex: 1 1 auto; min-width: 0; background: transparent !important; border: 0 !important; outline: 0; box-shadow: none !important; padding: 10px 2px !important; color: var(--color-primary900, #213B27); font-family: var(--vqv-serif, serif); font-size: clamp(1.25rem, 2.4vw, 1.7rem); }
.vqv-search__input::placeholder { color: var(--color-primary900, #213B27); opacity: .45; }
.vqv-search__input::-webkit-search-cancel-button { display: none; }
.vqv-search__submit, .vqv-search__close { background: none !important; border: 0; padding: 8px; cursor: pointer; color: var(--color-primary900, #213B27) !important; line-height: 0; }
.vqv-search__submit:hover, .vqv-search__close:hover { color: var(--color-primary700, #C6A15B) !important; }
.vqv-search__results { width: 95%; max-width: 760px; margin: 14px auto 0; }
.vqv-search__results:empty { display: none; }
.vqv-search__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.vqv-search__item { display: flex; align-items: center; gap: 14px; padding: 8px 10px; border-radius: 6px; text-decoration: none; color: var(--color-primary900, #213B27); transition: background .2s; }
.vqv-search__item:hover, .vqv-search__item:focus { background: rgba(127,127,127,.12); outline: 0; }
.vqv-search__item img, .vqv-search__noimg { width: 48px; height: 48px; object-fit: cover; border-radius: 6px; flex: 0 0 auto; background: rgba(127,127,127,.15); }
.vqv-search__name { flex: 1 1 auto; font-size: .95rem; line-height: 1.3; }
.vqv-search__price { flex: 0 0 auto; font-size: .88rem; color: var(--color-primary700, #C6A15B); white-space: nowrap; }
.vqv-search__all { display: inline-block; margin-top: 12px; padding: 0 10px; color: var(--color-primary700, #C6A15B); text-decoration: none; font-size: .76rem; text-transform: uppercase; letter-spacing: 1.2px; }
.vqv-search__all:hover { text-decoration: underline; }
.vqv-search__msg { margin: 0; padding: 8px 10px; font-size: .9rem; opacity: .7; }
@media (max-width: 860px) {
    /* Barra móvil: logo … lupa · menú · carrito */
    .vqv-search-btn { order: 1; margin-left: auto; }
    .vqv-header__toggle { order: 2; margin-left: 0; }
    .vqv-header__cart { order: 3; }
    body.vqv-nav-open .vqv-search-btn { display: none; }
    .vqv-search { padding: 14px 0 18px; max-height: calc(100vh - var(--vqv-headerh, 100px)); overflow-y: auto; }
    .vqv-search__price { display: none; }
}
