/* Contenido compartido: el buscador adopta la jerarquía del detalle. */
#qvwDetailView .qpd-integrated, .qvs-dialog {
  --qpd-divider: var(--qv-divider, #e2e8f0);
  --qpd-divider-soft: var(--qv-divider-soft, #eef1f5);
  --qpd-disclosure-hover: var(--qv-content-hover, #f8fafc);
  --qpd-title-size: 20px;
  --qpd-section-size: 14px;
  --qpd-label-size: 13px;
  --qpd-body-size: 13px;
  --qpd-data-size: 13px;
  --qpd-note-size: 12px;
  --qpd-action-size: 13px;
  --qpd-heading-weight: 600;
  --qpd-metric-weight: 700;
  --qpd-data-weight: 500;
  --qpd-text-ink: var(--qv-content-ink, #0b1220);
  --qpd-text-muted: var(--qv-content-muted, #64748b);
}
@media (max-width: 768px) { #qvwDetailView .qpd-integrated, .qvs-dialog { --qpd-data-size: 14px; } }

:root{--qv-dark-surface:radial-gradient(circle at 50% 0%,rgba(112,119,129,.18),transparent 42%),#121416;}
/* Cierre compartido. Adopción explícita, sin modificar otros cierres por cascada. */
.qv-close-button {
  appearance: none;
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  box-sizing: border-box;
  width: var(--qv-close-size, 28px);
  height: var(--qv-close-size, 28px);
  padding: 0;
  border: 1px solid transparent;
  border-radius: 50%;
  background: radial-gradient(circle closest-side, var(--qv-close-bg, #f1f4f8) 96%, transparent) center / 28px 28px no-repeat;
  color: #526175;
  cursor: pointer;
  box-shadow: none;
  transition: background-color 140ms ease, color 140ms ease;
}
.qv-close-button > :is(svg, [data-lucide]) { width: 14px; height: 14px; stroke-width: 1.8; }
@media (hover: hover) {
  .qv-close-button:hover { --qv-close-bg: #e5ebf2; color: #253349; }
}
.qv-close-button:active { --qv-close-bg: #dce5ee; }
.qv-close-button:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
@media (max-width: 1024px), (pointer: coarse) {
  .qv-close-button { --qv-close-size: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  .qv-close-button { transition: none; }
}
@media (forced-colors: active) {
  .qv-close-button { border-color: ButtonText; }
}
/* ============================================================
   Top Nav · World Class 2026 · Glassmorphism Pro
   ============================================================ */

.nav{position:sticky;top:0;z-index:var(--z-toast);background:linear-gradient(to bottom,rgba(255,255,255,.48),rgba(255,255,255,.12)),var(--nav-bg);-webkit-backdrop-filter:blur(var(--nav-blur)) saturate(190%);backdrop-filter:blur(var(--nav-blur)) saturate(190%);border:none;box-shadow:0 1px 0 var(--inset-hi) inset,0 10px 28px rgba(15,23,42,.04);transition:background var(--motion-fast) var(--motion-ease),box-shadow var(--motion-fast) var(--motion-ease);}
html.is-home .nav{position:fixed;top:0;left:0;right:0;}
html.is-home main#main{padding-top:58px;}
html.is-home.is-scrolled .nav{background:linear-gradient(to bottom,rgba(255,255,255,.42),rgba(255,255,255,.08)),var(--nav-bg-scrolled);-webkit-backdrop-filter:blur(var(--nav-blur-scrolled)) saturate(200%);backdrop-filter:blur(var(--nav-blur-scrolled)) saturate(200%);box-shadow:0 1px 0 var(--inset-hi-2) inset,0 14px 36px rgba(15,23,42,.06);}

.nav__row{position:relative;z-index:1;align-items:center;display:grid;gap:14px;grid-template-columns:1fr auto 1fr;height:var(--page-nav-h,58px);}
/* Compatibilidad con el shell inlineado: navegación desktop sin velo de página. */
.nav__desktop-veil{display:none;}

.brand{align-items:center;display:flex;gap:9px;justify-self:start;min-width:200px;}
.brand__mark{background:var(--brand);border-radius:var(--r-sm);color:var(--c-white);display:grid;font-size:15px;font-weight:var(--fw-600);height:30px;place-items:center;width:30px;}
.brand__name{font-size:17px;font-weight:var(--fw-600);letter-spacing:-.02em;line-height:1.05;}
.brand__name b{color:var(--brand);font-weight:var(--fw-600);}

/* ============================================================
   Desktop Nav · State Machine
   ------------------------------------------------------------
   - .nav-item llena la altura completa del nav-row (sin gap muerto
     entre el link y el dropdown).
   - El estado de los dropdowns lo maneja JS (initDesktopNav en ui.js)
     vía la clase .is-active sobre .nav-item.
   - El :hover en CSS es sólo visual (color de link, subrayado).
     NO dispara el dropdown — eso es responsabilidad del coordinator.
   ============================================================ */

/* --- Nav Links container --- */
.nav__links{
  align-items:stretch;
  display:flex;
  gap:1.25rem;
  justify-self:center;
  height:100%;
}

/* --- Links (planos y triggers de dropdown) --- */
.nav__links > a,
.nav-item__link{
  display:flex;
  align-items:center;
  font-size:13px;
  font-weight:500;
  color:var(--ink);
  letter-spacing:-.01em;
  position:relative;
  padding:0 2px;
  transition:color .22s ease;
  text-decoration:none;
  cursor:pointer;
}

/* Subrayado animado */
.nav__links > a::after,
.nav-item__label::after{
  content:'';
  position:absolute;
  bottom:14px;
  left:50%;
  width:0;
  height:2px;
  background:var(--brand);
  border-radius:2px;
  transform:translateX(-50%);
  transition:width .28s cubic-bezier(.22,.61,.36,1);
}

/* Estado visual: hover, página actual, dropdown abierto */
.nav__links > a:hover,
.nav__links > a[aria-current="page"],
.nav-item__link:hover,
.nav-item__link[aria-current="page"],
.nav-item__link[data-nav-current="true"],
.nav-item.is-active .nav-item__link{
  color:var(--brand);
}
.nav__links > a:hover::after,
.nav__links > a[aria-current="page"]::after,
.nav-item__link:hover .nav-item__label::after,
.nav-item__link[aria-current="page"] .nav-item__label::after,
.nav-item__link[data-nav-current="true"] .nav-item__label::after,
.nav-item.is-active .nav-item__label::after{
  width:100%;
}

/* Mientras se explora otro dropdown, evita dos estados principales activos. */
.nav__links:has(.nav-item.is-active) .nav-item:not(.is-active) > .nav-item__link[data-nav-current="true"],
.nav__links:has(.nav-item.is-active) > a[aria-current="page"]{
  color:var(--ink);
}
.nav__links:has(.nav-item.is-active) .nav-item:not(.is-active) > .nav-item__link[data-nav-current="true"] .nav-item__label::after,
.nav__links:has(.nav-item.is-active) > a[aria-current="page"]::after{
  width:0;
}

/* --- Dropdown Parent --- */
.nav-item{
  position:relative;
  display:flex;
  align-items:stretch;
}

.nav-item__link{
  gap:6px;
  background:none;
  border:none;
  font-family:inherit;
}

.nav-item__label{
  position:relative;
}
.nav-item__label::after{
  bottom:-7px;
}

.nav-item__chevron{
  width:14px;
  height:14px;
  opacity:.45;
  transition:transform .25s var(--motion-ease),opacity .2s ease,color .2s ease;
}
.nav-item.is-active .nav-item__chevron{
  transform:rotate(180deg);
  opacity:1;
  color:var(--brand);
}

/* --- Dropdown Panel --- */
.dropdown{
  position:absolute;
  top:100%;
  left:50%;
  transform:translateX(-50%) translateY(-4px) scale(.98);
  transform-origin:top center;
  min-width:380px;
  padding:8px;
  background:rgba(255,255,255,.99);
  border:1px solid rgba(15,23,42,.06);
  border-top:0;
  border-radius:8px 8px 18px 18px;
  -webkit-backdrop-filter:blur(20px) saturate(180%);
  backdrop-filter:blur(20px) saturate(180%);
  box-shadow:0 12px 40px rgba(15,23,42,.10),0 0 0 1px rgba(15,23,42,.04);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  z-index:var(--z-popover);
  transition:
    opacity .14s ease,
    transform .14s ease,
    visibility 0s linear .14s;
}

/* Dropdown compacto: menús de pocos items (p.ej. "Qué es QuVi"),
   sin la grilla de 7 columnas que justifica el ancho de Isapres. */
.dropdown--compact{min-width:240px;}
.dropdown--tasks{min-width:360px;}

/* Estado abierto: lo activa initDesktopNav en ui.js */
.nav-item.is-active .dropdown{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateX(-50%) translateY(0) scale(1);
  transition:
    opacity .14s ease,
    transform .14s ease,
    visibility 0s linear 0s;
}

/* --- Dropdown Links --- */
.dropdown__link{
  display:flex;align-items:center;gap:12px;
  padding:11px 14px;margin:2px 0;
  color:var(--ink);font-size:13px;font-weight:500;
  border-radius:14px;position:relative;
  transition:background .2s ease,color .2s ease,transform .2s ease;
}
.dropdown__link:hover{
  background:rgba(255,255,255,.9);color:var(--brand);
  box-shadow:0 2px 10px rgba(15,23,42,.06);
}
.dropdown__link::before{
  content:'';position:absolute;left:0;top:50%;
  width:3px;height:0;background:var(--brand);
  border-radius:0 3px 3px 0;transform:translateY(-50%);
  transition:height .25s cubic-bezier(.34,1.56,.64,1);
}
.dropdown__link:hover::before{height:18px;}

/* Dropdown icon container */
.dropdown__icon{display:flex;align-items:center;justify-content:center;width:15px;height:15px;background:transparent;color:var(--brand);flex-shrink:0;font-size:11px;font-weight:700;letter-spacing:0.02em;text-transform:uppercase;line-height:1;}
.dropdown__icon svg{width:15px;height:15px;stroke-width:2;}
.dropdown__link:hover .dropdown__icon{background:transparent;}
.dropdown__text{flex:1;}
.dropdown__text strong,.dropdown__text small{display:block;}
.dropdown__text strong{font-size:13px;font-weight:650;line-height:1.25;}
.dropdown__text small{color:var(--muted);font-size:11px;font-weight:450;line-height:1.3;margin-top:2px;}
.dropdown__link--featured{background:var(--brand-a08);margin-bottom:6px;}
.dropdown__link--featured .dropdown__icon{background:transparent;color:var(--brand);}
.dropdown__link--featured:hover,
.dropdown__link--featured:focus-visible{background:var(--brand-a16);}
.dropdown__link--featured:hover .dropdown__icon,
.dropdown__link--featured:focus-visible .dropdown__icon{background:transparent;color:var(--brand);}

/* Dropdown divider */
.dropdown__divider{height:1px;margin:6px 8px;background:rgba(15,23,42,.06);border:0;}

/* Submenú lateral de isapres: el enlace conserva el hub y su chevrón abre el hijo. */
.dropdown__subitem{position:relative;}
.dropdown__subitem::after{content:'';position:absolute;top:0;left:100%;width:6px;height:100%;}
.dropdown__link--has-submenu{padding-right:48px;}
.dropdown__subtoggle{position:absolute;top:50%;right:10px;display:grid;width:28px;height:28px;place-items:center;border:0;border-radius:9px;background:transparent;color:var(--muted);cursor:pointer;transform:translateY(-50%);transition:background .15s ease,color .15s ease,transform .15s ease;}
.dropdown__subtoggle svg{width:15px;height:15px;stroke-width:2;}
.dropdown__subitem:hover .dropdown__subtoggle,.dropdown__subitem:focus-within .dropdown__subtoggle,.dropdown__subitem.is-open .dropdown__subtoggle{background:var(--brand-a08);color:var(--brand);}
.dropdown__subitem:focus-within .dropdown__subtoggle svg,.dropdown__subitem.is-open .dropdown__subtoggle svg{transform:rotate(90deg);}
.dropdown__submenu{position:absolute;top:-8px;left:calc(100% + 6px);display:grid;grid-template-columns:1fr 1fr;min-width:224px;gap:2px 4px;padding:10px;opacity:0;visibility:hidden;pointer-events:none;border:1px solid rgba(15,23,42,.06);border-radius:16px;background:rgba(255,255,255,.99);box-shadow:0 12px 40px rgba(15,23,42,.10),0 0 0 1px rgba(15,23,42,.04);transition:opacity .14s ease,visibility 0s linear .14s;}
.dropdown__submenu a{padding:8px 6px;border-radius:9px;color:var(--muted);font-size:11px;font-weight:600;line-height:1.25;transition:background .15s ease,color .15s ease;}
.dropdown__submenu a:hover,.dropdown__submenu a:focus-visible{background:var(--brand-a08);color:var(--brand);outline:none;}
.dropdown__subitem:hover .dropdown__submenu,.dropdown__subitem:focus-within .dropdown__submenu,.dropdown__subitem.is-open .dropdown__submenu{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .14s ease,visibility 0s linear 0s;}

/* "Ver todos" special link */
.dropdown__link--all{font-weight:500;margin-top:2px;}
.dropdown__arrow{width:14px;height:14px;opacity:0;flex-shrink:0;transform:translateX(-4px);transition:transform .25s ease,opacity .2s ease;}
.dropdown__link:hover .dropdown__arrow,
.dropdown__link:focus-visible .dropdown__arrow{transform:translateX(0);opacity:.8;}

/* --- Actions & Burger --- */
.nav__actions{align-items:center;display:flex;gap:10px;justify-self:end;}
.nav__links > .nav__direct-link,
.nav__links > .nav__audience-link{padding-left:2px;}

.btn{align-items:center;background:var(--c-white);border:1px solid var(--border);border-radius:var(--qv-action-radius);box-shadow:var(--shadow-sm);color:var(--ink);cursor:pointer;display:inline-flex;font-size:var(--text-btn);font-weight:var(--fw-400);gap:8px;height:34px;justify-content:center;line-height:1;padding:0 12px;transition:transform .12s ease,background .12s ease,border-color .12s ease,box-shadow .12s ease;}
.btn:hover{background:var(--c-white-2);border-color:var(--border-2);transform:translateY(-1px);}
.btn--primary{background:var(--brand);border-color:transparent;box-shadow:0 16px 34px var(--brand-glow);color:var(--c-white);}
.btn--primary:hover{background:var(--brand-dark);box-shadow:0 22px 42px var(--brand-a34);transform:translateY(-1px);}
.btn--ghost{background:transparent;box-shadow:none;}
.btn--hero{font-size:var(--fs-14);height:46px;padding:0 18px;}

/* Botón QuVi Pro del header: outline (solo borde, sin relleno ni resplandor) + badge "Pro" estilo lockup.
   Scopeado a los contenedores del nav para ganarle al `.btn` de index.css (que carga después). */
.nav__actions .nav__pro,.nav__mobile-actions .nav__pro{background:rgba(15,23,42,.025);border:1px solid var(--separator,#e6eaf0);box-shadow:none;color:var(--ink);font-weight:500;gap:6px;padding:0 9px 0 11px;transition:background .15s ease,border-color .15s ease,color .15s ease;}
.nav__actions .nav__pro:hover,.nav__mobile-actions .nav__pro:hover{background:color-mix(in srgb,var(--brand) 10%,transparent);border-color:color-mix(in srgb,var(--brand) 40%,transparent);color:var(--brand);box-shadow:none;transform:none;}
.nav__pro-label{letter-spacing:-.01em;}
.nav__pro-badge{display:inline-flex;align-items:center;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;line-height:1;color:var(--brand);background:color-mix(in srgb,var(--brand) 13%,#fff);padding:2px 5px;border-radius:999px;}

/* CTA principal del header: azul plano, sin sombra ni resplandor. */
.nav__actions .nav__best-plan,.nav__mobile-actions .nav__best-plan{box-shadow:none;}
.nav__actions .nav__best-plan:hover,.nav__mobile-actions .nav__best-plan:hover{box-shadow:none;}
.nav__actions .nav__best-plan svg,.nav__mobile-actions .nav__best-plan svg{width:16px;height:16px;stroke-width:2.25;}

.nav__burger{background:var(--c-white);border:1px solid var(--border);border-radius:50%;box-shadow:var(--shadow-sm);cursor:pointer;display:none;height:34px;width:34px;position:relative;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease;}
.nav__burger:hover{background:var(--c-white-2);border-color:var(--border-2);}
.nav__burger:focus-visible{outline:none;box-shadow:0 0 0 3px var(--brand-a25);}
.nav__burger span{position:absolute;left:50%;width:18px;height:2px;border-radius:999px;background:var(--ink);opacity:.86;transform-origin:center;transition:transform .22s cubic-bezier(.22,.61,.36,1),opacity .22s ease,top .22s cubic-bezier(.22,.61,.36,1);}
.nav__burger span:nth-child(1){top:11px;transform:translateX(-50%);}
.nav__burger span:nth-child(2){top:16px;transform:translateX(-50%);}
.nav__burger span:nth-child(3){top:21px;transform:translateX(-50%);}
.nav__burger[aria-expanded="true"] span:nth-child(1){top:16px;transform:translateX(-50%) rotate(45deg);}
.nav__burger[aria-expanded="true"] span:nth-child(2){opacity:0;}
.nav__burger[aria-expanded="true"] span:nth-child(3){top:16px;transform:translateX(-50%) rotate(-45deg);}

/* --- Mobile Overlay --- */
.nav__mobile{position:fixed;inset:0;z-index:calc(var(--z-toast) + 1);display:block;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .24s ease,visibility 0s linear .24s;}
.nav__mobile[hidden]{display:block!important;}
.nav__mobile.is-open{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .24s ease,visibility 0s linear 0s;}

.nav__mobile-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.18);-webkit-backdrop-filter:blur(8px) saturate(180%);backdrop-filter:blur(8px) saturate(180%);}

.nav__mobile-panel{position:absolute;top:max(10px,env(safe-area-inset-top));left:10px;right:10px;display:grid;gap:10px;max-height:calc(100dvh - 20px - env(safe-area-inset-top));overflow-y:auto;overscroll-behavior:contain;padding:16px;border:1px solid rgba(15,23,42,.06);border-radius:22px;background:#fff;box-shadow:0 24px 56px rgba(15,23,42,.16),0 0 0 1px rgba(15,23,42,.04);transform:translateY(-14px) scale(.98);transform-origin:top center;transition:transform .28s cubic-bezier(.22,.78,.18,1);}
.nav__mobile.is-open .nav__mobile-panel{transform:translateY(0) scale(1);}

.nav__mobile-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid rgba(15,23,42,.06);}
.nav__mobile-close{position:relative;flex:0 0 36px;width:36px;height:36px;border:1px solid var(--border);border-radius:50%;background:rgba(255,255,255,.8);box-shadow:var(--shadow-sm);cursor:pointer;transition:background .18s ease,border-color .18s ease;}
.nav__mobile-close:hover{background:var(--c-white);border-color:var(--border-2);}
.nav__mobile-close:focus-visible{outline:none;box-shadow:0 0 0 3px var(--brand-a25);}
.nav__mobile-close span{position:absolute;top:50%;left:50%;width:16px;height:2px;border-radius:999px;background:var(--ink);}
.nav__mobile-close span:nth-child(1){transform:translate(-50%,-50%) rotate(45deg);}
.nav__mobile-close span:nth-child(2){transform:translate(-50%,-50%) rotate(-45deg);}

/* --- Mobile Nav Links --- */
.nav__mobile-nav{display:grid;gap:4px;}
.nav__mobile-nav > a{display:flex;align-items:center;min-height:46px;padding:0 14px;border:1px solid transparent;border-radius:14px;color:var(--ink);font-size:15px;font-weight:600;background:transparent;transition:background .18s ease,border-color .18s ease,color .18s ease;}
.nav__mobile-nav > a:hover,
.nav__mobile-nav > a[aria-current="page"]{background:rgba(15,111,232,.06);border-color:rgba(15,111,232,.1);color:var(--brand);}
.nav__mobile-nav > .nav__mobile-contact{justify-content:space-between;color:var(--brand);}
.nav__mobile-contact svg{width:17px;height:17px;stroke-width:2;}

/* --- Mobile Accordion --- */
.nav__mobile-accordion{
  display:flex;align-items:center;justify-content:space-between;
  width:100%;min-height:46px;padding:0 14px;
  border:1px solid transparent;border-radius:14px;
  background:transparent;color:var(--ink);
  font-size:15px;font-weight:600;cursor:pointer;
  transition:background .18s ease,border-color .18s ease,color .18s ease;
}
.nav__mobile-accordion:hover{background:rgba(15,111,232,.06);border-color:rgba(15,111,232,.1);color:var(--brand);}
.nav__mobile-accordion[aria-expanded="true"]{background:rgba(15,111,232,.06);border-color:rgba(15,111,232,.1);color:var(--brand);}
.nav__mobile-accordion-chevron{width:16px;height:16px;opacity:.5;transition:transform .3s cubic-bezier(.34,1.56,.64,1),opacity .2s ease;}
.nav__mobile-accordion[aria-expanded="true"] .nav__mobile-accordion-chevron{transform:rotate(180deg);opacity:1;}

/* --- Mobile Submenu --- */
.nav__mobile-submenu{
  display:grid;gap:2px;padding:0 0 0 16px;
  max-height:0;overflow:hidden;
  transition:max-height .35s cubic-bezier(.22,.61,.36,1),padding .35s ease;
}
.nav__mobile-submenu.is-open{max-height:400px;padding:4px 0 8px 16px;}
.nav__mobile-submenu a{display:flex;align-items:center;min-height:40px;padding:0 12px;border-radius:12px;color:var(--muted);font-size:14px;font-weight:500;transition:background .15s ease,color .15s ease;}
.nav__mobile-submenu a:hover{background:rgba(15,111,232,.06);color:var(--brand);}
.nav__mobile-submenu-all{font-weight:700!important;color:var(--brand)!important;margin-top:4px;}
.nav__mobile-section-label{color:var(--muted-2);font-size:11px;font-weight:700;letter-spacing:normal;margin:10px 14px 0;text-transform:uppercase;}
.nav__mobile-accordion[data-nav-current="true"]{background:rgba(15,111,232,.06);border-color:rgba(15,111,232,.1);color:var(--brand);}

.nav__mobile-tools.is-active{background:var(--c-white-2);border-color:var(--border);color:var(--brand);}

.nav__mobile-actions{padding-top:2px;}
.nav__mobile-actions--primary{padding:0 0 4px;}
.nav__mobile-cta{width:100%;justify-content:center;height:42px;}

/* ============================================================
   Footer
   ============================================================ */
/* Franja de cierre pública: contrato y plantilla en docs/FUENTES-CANONICAS.md.
   Tokens canónicos locales para aislarla de variantes de marca de cada landing. */
main#main:has(> .qv-closing-cta:last-child){padding-bottom:0;}
.qv-closing-cta{
  --closing-bg:#F4F8FF;
  --closing-brand:oklch(0.62 0.19 252);
  --closing-brand-dark:oklch(0.52 0.17 252);
  --closing-ink:#0B1220;
  --closing-muted:#475569;
  box-sizing:border-box;
  width:100vw;margin:0 calc(50% - 50vw);padding:80px 0;border:0;border-radius:0;
  background:var(--closing-bg);color:var(--closing-ink);
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  font-size:14px;font-weight:400;line-height:1.6;letter-spacing:normal;text-align:center;
}
/* Alternancia compartida por TODOS los cierres, sin variantes de fondo. */
:where(.section--subtle,.qz-featsec--tint,.purpose-proof,.emp-faq) + .qv-closing-cta{
  --closing-bg:#fff;
}
/* El breadcrumb transparente continúa la superficie del cierre anterior. */
main:has(> .qv-closing-cta:last-child) + #site-footer{background:#F4F8FF;}
main:has(> :where(.section--subtle,.qz-featsec--tint,.purpose-proof,.emp-faq) + .qv-closing-cta:last-child) + #site-footer{background:#fff;}
.qv-closing-cta--whatsapp{
  --closing-secondary:var(--wa-deep,#167f3d);
  --closing-brand:var(--wa,#25D366);
  --closing-brand-dark:var(--wa-hover,#1FB357);
  --closing-button-ink:#fff;
}
.qv-closing-cta .qv-closing-cta__inner{box-sizing:border-box;width:min(1140px,calc(100% - 32px));max-width:none;margin:0 auto;padding:0;}
.qv-closing-cta .qv-closing-cta__title{max-width:none;width:100%;margin:0 0 12px;padding:0;color:var(--closing-ink);font-family:inherit;font-size:clamp(30px,3.5vw,40px);font-weight:650;line-height:1.18;letter-spacing:-.03em;text-align:center;text-wrap:balance;}
.qv-closing-cta__title em{color:inherit;font-style:normal;font-weight:inherit;}
.qv-closing-cta .qv-closing-cta__lead{width:auto;max-width:70ch;margin:0 auto;padding:0;color:var(--closing-muted);font-family:inherit;font-size:17px;font-weight:400;line-height:1.6;letter-spacing:normal;text-align:center;text-wrap:balance;}
.qv-closing-cta .qv-closing-cta__actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px;margin:18px 0 0;padding:0;}
.qv-closing-cta .qv-closing-cta__button{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:8px;width:auto;max-width:100%;min-height:46px;margin:0;padding:12px 18px;border:1px solid transparent;border-radius:var(--qv-action-radius);background:var(--closing-brand);color:var(--closing-button-ink,#fff);font-family:inherit;font-size:14px;font-weight:400;line-height:20px;letter-spacing:normal;text-align:center;text-decoration:none;white-space:nowrap;box-shadow:none;cursor:pointer;transition:background .15s ease,border-color .15s ease;}
.qv-closing-cta .qv-closing-cta__button:hover{background:var(--closing-brand-dark);color:var(--closing-button-ink,#fff);box-shadow:none;text-decoration:none;transform:none;}
.qv-closing-cta .qv-closing-cta__button--secondary{background:transparent;border-color:var(--closing-secondary,var(--closing-brand-dark));color:var(--closing-secondary,var(--closing-brand-dark));}
.qv-closing-cta .qv-closing-cta__button--secondary:hover{background:color-mix(in srgb,var(--closing-brand) 10%,var(--closing-bg));border-color:var(--closing-secondary,var(--closing-brand-dark));color:var(--closing-secondary,var(--closing-brand-dark));}
.qv-closing-cta .qv-closing-cta__button:focus-visible{outline:2px solid var(--closing-brand-dark);outline-offset:4px;}
.qv-closing-cta__button svg,.qv-closing-cta__button i{width:18px;height:18px;flex:0 0 18px;color:inherit;}
.qv-closing-cta__break{display:inline;}
.qv-closing-cta .qv-closing-cta__eyebrow{display:block;margin:0 0 12px;color:var(--closing-muted);font-size:13px;font-weight:600;letter-spacing:normal;}
.qv-closing-cta .qv-closing-cta__note{margin:18px 0 0;color:var(--closing-muted);font-size:15px;line-height:1.5;}
.qv-closing-cta__note b{color:var(--closing-ink);}
@media (max-width:980px){
  .qv-closing-cta .qv-closing-cta__title{margin-bottom:18px;font-weight:700;font-size:var(--closing-mobile-title-size,clamp(32px,8.6vw,46px));line-height:var(--closing-mobile-title-leading,1.03);letter-spacing:var(--closing-mobile-title-tracking,-.043em);}
  .qv-closing-cta .qv-closing-cta__lead{max-width:none;width:100%;margin-bottom:22px;font-size:var(--closing-mobile-copy-size,clamp(16px,4.4vw,20px));line-height:1.5;}
  .qv-closing-cta .qv-closing-cta__button{width:min(100%,260px);min-height:48px;padding:12px 18px;font-size:16px;}
  .qv-closing-cta__break{display:block;}
}
@media (max-width:480px){
  .qv-closing-cta .qv-closing-cta__title{margin-bottom:16px;font-size:var(--closing-mobile-title-size,clamp(32px,8.8vw,42px));}
  .qv-closing-cta .qv-closing-cta__lead{margin-bottom:36px;font-size:var(--closing-mobile-copy-size,clamp(15px,4.8vw,18px));line-height:var(--closing-mobile-copy-leading,1.48);}
}
@media (prefers-reduced-motion:reduce){.qv-closing-cta .qv-closing-cta__button{transition:none;}}

footer{background:var(--c-white);border-top:1px solid var(--border-2);padding:54px 0 26px;}
.footer{
  /* Azul canónico aprobado, independiente de overrides de marca de cada landing. */
  --footer-bg:oklch(0.52 0.17 252);
  --ink:var(--c-white);
  --muted:var(--white-a86);
  --muted-2:var(--white-a86);
  --border-2:var(--white-a16);
  --stroke-3:var(--white-a16);
  background:var(--footer-bg);
  border-top:0;
}
.footer__grid{align-items:start;display:grid;gap:28px;grid-template-columns:minmax(230px,1.7fr) repeat(5,minmax(0,1fr));margin-bottom:0;padding-bottom:13px;}
.footer .brand{min-width:0;}
.footer .brand__logo{height:28px;width:auto;}
.footer__about .footer__desc{color:var(--muted);font-size:14px;line-height:1.55;margin:16px 0 0;max-width:30ch;}
.footer__help{display:grid;gap:8px;margin-top:20px;width:max-content;max-width:100%;}
.footer__help a{color:var(--ink);align-items:center;justify-content:flex-start;border:1px solid var(--white-a16);border-radius:14px;display:inline-flex;font-size:13px;font-weight:400;line-height:18px;gap:8px;min-height:38px;padding:8px 10px;}
.footer__help svg{width:16px;height:16px;flex:none;}
.footer__help a:hover{background:var(--white-a16);text-decoration:none;}
.footer__help .footer__support{color:var(--muted);}
.footer__col{min-width:0;}
.footer__col summary{list-style:none;}
.footer__col summary::-webkit-details-marker{display:none;}
.footer__col h4{color:var(--ink);font-size:14px;font-weight:600;line-height:1.4;margin:0 0 12px;}
.footer__links a{color:var(--muted);display:block;font-size:14px;line-height:1.45;padding:6px 0;}
.footer__utility{display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--border-2);padding-bottom:32px;margin-bottom:20px;}
.footer__apps{display:flex;align-items:center;gap:24px;}
.footer__appsTitle{color:var(--ink);font-size:13px;font-weight:600;line-height:1.5;margin:0;}
.footer__appsDesc{color:var(--muted);font-size:13px;line-height:1.5;margin:0;}
.footer__stores{display:flex;gap:12px;flex:none;}
.footer__store{display:flex;align-items:center;justify-content:center;position:relative;gap:5px;width:106px;height:34px;box-sizing:border-box;flex:none;border:1px solid #fff;border-radius:6px;background:#fff;color:#111;}
.footer__store::after{content:"";position:absolute;inset:-5px 0;}
.footer__storeIcon{width:16px;height:16px;flex:none;}
.footer__storeIcon[fill]{fill:currentColor;}
.footer__storeText{display:flex;flex-direction:column;align-items:flex-start;white-space:nowrap;}
.footer__storeText small{font-size:8px;font-weight:400;line-height:12px;}
.footer__storeText strong{font-size:13px;font-weight:600;line-height:16px;letter-spacing:-.3px;}
.footer .footer__stores a.footer__store:hover{color:#111;text-decoration:none;}
.footer__bottom{align-items:center;color:var(--muted-2);display:flex;flex-wrap:wrap;font-size:12px;gap:16px;justify-content:space-between;}
.footer__bottom a{color:var(--muted-2);}
.footer__bottomRight{align-items:center;display:flex;flex-wrap:wrap;gap:8px 12px;}
.footer__bottomRight>a{align-items:center;display:inline-flex;min-height:34px;}
.footer__socials{display:inline-flex;gap:0;}
.footer__social{align-items:center;display:inline-flex;border-radius:8px;height:36px;justify-content:center;width:32px;}
.footer__divider{background:var(--stroke-3);height:18px;width:1px;}
.footer__address{align-items:flex-start;color:var(--muted);display:flex;font-size:13px;gap:8px;line-height:1.5;margin:0;}
.footer__addressIcon{display:inline-flex;flex:none;margin-top:2px;}
.footer__addressIcon svg{width:15px;height:15px;}
.footer__addressLine{display:block;}
.footer a:not(.footer__social):hover{color:var(--c-white);}
.footer__links a:hover{text-decoration:underline;text-underline-offset:3px;}
.footer a:focus-visible,.footer summary:focus-visible{outline:2px solid var(--c-white);outline-offset:4px;}
@media (min-width:1181px){
  .footer{padding:88px 0 44px;}
}
@media (min-width:641px){
  .footer__col[data-footer-ready] summary{cursor:default;}
  .footer__col[data-footer-ready] summary::after{display:none;}
}
@media (max-width:980px){
  .footer>.container{box-sizing:border-box;width:100%;max-width:none;padding-inline:24px;}
  .footer__help a{border-radius:17px;}
}
@media (min-width:641px) and (max-width:1180px){
  .footer__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 28px;}
}
@media (min-width:641px) and (max-width:800px){
  .footer__grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .footer__apps{flex-direction:column;align-items:flex-start;gap:12px;}
}
@media (max-width:640px){
  .footer{padding:40px 0 28px;}
  .footer__grid{grid-template-columns:minmax(0,1fr);gap:0;padding-bottom:20px;}
  .footer__about{padding-bottom:28px;}
  .footer__about .footer__desc{max-width:34ch;}
  .footer__col{border-top:1px solid var(--border-2);}
  .footer__col summary{align-items:center;cursor:pointer;display:flex;justify-content:space-between;min-height:52px;gap:16px;}
  .footer__col summary::after{border-bottom:1.5px solid var(--muted);border-right:1.5px solid var(--muted);content:"";height:7px;margin-right:4px;transform:rotate(45deg);width:7px;flex:none;}
  .footer__col[open] summary::after{transform:rotate(225deg);}
  .footer__col h4{margin:0;}
  .footer__links{padding-bottom:12px;}
  .footer__links a{align-items:center;display:flex;min-height:44px;padding:10px 0;}
  .footer__utility{flex-direction:column;align-items:flex-start;gap:24px;padding-bottom:24px;}
  .footer__apps{flex-direction:column;align-items:flex-start;gap:12px;}
  .footer__bottom{align-items:flex-start;flex-direction:column;font-size:12px;gap:12px;}
  .footer__bottomRight{gap:4px 14px;}
  .footer__bottomRight>a{min-height:44px;}
  .footer__social{height:44px;width:44px;}
  .footer__divider{display:none;}
}

/* ============================================================
   Breadcrumbs (Migas de Pan)
   ============================================================ */
.breadcrumbs{
  background: transparent;
  border-bottom: 1px solid var(--border-2);
  padding: 10px 0;
  margin-top: 0; 
}

.breadcrumbs__container{
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  overflow-x: auto;
  scrollbar-width: none; /* Firefox */
  -ms-overflow-style: none;  /* IE and Edge */
}

.breadcrumbs__container::-webkit-scrollbar {
  display: none; /* Chrome, Safari and Opera */
}

.breadcrumbs__list{
  display: flex;
  align-items: center;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 8px;
}

.breadcrumbs__item{
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--muted-2);
  font-size: var(--fs-12);
  font-weight: var(--fw-500);
  white-space: nowrap;
}

.breadcrumbs__link{
  color: var(--muted);
  transition: color var(--motion-fast) var(--motion-ease);
  display: flex;
  align-items: center;
  gap: 4px;
}

.breadcrumbs__link:hover{
  color: var(--brand);
}

.breadcrumbs__separator{
  color: var(--stroke-4);
  display: flex;
  align-items: center;
  opacity: 0.6;
}

.breadcrumbs__item:last-child{
  color: var(--ink);
  font-weight: var(--fw-600);
  pointer-events: none;
}

.breadcrumbs__icon{
  width: 14px;
  height: 14px;
  stroke-width: 2.2;
}

@media (max-width: 768px) {
  .breadcrumbs{
    margin-top: 40px;
    padding: 10px 0;
  }
}

/* =============================== Snackbar =============================== */
#snackbar{
  position: fixed;
  left: 50%;
  bottom: calc(32px + env(safe-area-inset-bottom, 0px));
  transform: translateX(-50%) translateY(10px);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;

  min-width: 240px;
  max-width: min(92vw, 520px);

  background: color-mix(in oklch, var(--ink-0) 92%, transparent);
  color: white;
  padding: 10px 16px;
  border-radius: 999px;

  font-size: var(--fs-13);
  line-height: 1.25;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;

  box-shadow: var(--shadow-lg);
  /* Toast siempre por encima de cualquier overlay/modal del sitio
     (modal-comparacion: 5000, plan-detail: 9999, modo-aprender: 12000).
     Mantenemos --z-toast=1300 para .nav y otros usos a nivel de layout. */
  z-index: 13000;

  transition:
    opacity var(--motion-duration-sm) var(--motion-ease),
    transform var(--motion-duration-sm) var(--motion-ease),
    visibility 0s linear var(--motion-duration-sm);

  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

#snackbar.show{
  visibility: visible;
  opacity: 1;
  transform: translateX(-50%) translateY(0);
  pointer-events: none;
  transition:
    opacity var(--motion-duration-sm) var(--motion-ease),
    transform var(--motion-duration-sm) var(--motion-ease),
    visibility 0s linear 0s;
}

@media (max-width: 640px){
  #snackbar{
    max-width: calc(100vw - 24px);
    min-width: 0;
    padding: 10px 14px;
    white-space: normal;
    border-radius: 18px;
  }
}

@media (prefers-reduced-motion: reduce){
  #snackbar{
    transition: none;
  }
}

/* ============================
   Paginación (tokenizada con core.css)
   ============================ */
#paginacion.paginacion{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:var(--s-12);
  margin-top:var(--s-16);
  border-top:1px solid var(--separator);
  background:transparent;
  padding:var(--s-12) var(--s-12) var(--s-48);
  min-height:calc(var(--hit-desktop, 44px) + 2 * var(--s-12));
}
@media (pointer:coarse){
  #paginacion.paginacion{
    min-height: calc(var(--hit-touch) + 2 * var(--s-12));
  }
}
#paginacion.paginacion.is-hidden{
  visibility: hidden;
  pointer-events: none;
}
#paginacion .paginacion-info{
  font-size: var(--fs-12);
  color: var(--muted-2);
  padding-inline: var(--s-8);
}
#paginacion .pag-btn{
  -webkit-tap-highlight-color: transparent;
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: var(--hit-desktop);
  padding: 0 var(--s-16);
  border-radius: var(--rad-btn);
  font: inherit;
  font-size: var(--fs-14);
  font-weight: var(--fw-semibold);
  line-height: 1;
  cursor: pointer;

  background: color-mix(in oklch, var(--surface) 92%, var(--bg) 8%);
  color: var(--label);
  border: 1px solid var(--separator);

  transition:
    background var(--motion-fast) var(--motion-ease),
    border-color var(--motion-fast) var(--motion-ease),
    color var(--motion-fast) var(--motion-ease);
}
@media (pointer:coarse){
  #paginacion .pag-btn{ height: var(--hit-touch); }
}
#paginacion .pag-prev::before{ content:"‹"; margin-right: var(--s-8); }
#paginacion .pag-next::after { content:"›"; margin-left:  var(--s-8); }

#paginacion .pag-btn:hover:not(:disabled){
  background: var(--surface-hover);
  border-color: var(--separator-hover);
}
#paginacion .pag-btn:focus-visible{
  outline: none;
  box-shadow: var(--focus-ring);
}
#paginacion .pag-btn:disabled{
  opacity: .5;
  cursor: not-allowed;
}
@media (max-width: 640px){
  #paginacion.paginacion{ gap: var(--s-10); padding: var(--s-10); }
  #paginacion .paginacion-info{ display: none; }
}

/* ============================
   Mensaje “solo escritorio”
   ============================ */
#solo-escritorio-overlay{
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9999;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(4px);
}
.solo-escritorio-card{
  max-width: 420px;
  width: 100%;
  padding: 20px 18px;
  border-radius: 14px;
  background: #ffffff;
  color: #111827;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
  text-align: center;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.solo-escritorio-card h1{
  margin: 0 0 8px;
  font-size: 1.1rem;
  font-weight: 600;
}
.solo-escritorio-card p{
  margin: 0 0 4px;
  font-size: 0.95rem;
  line-height: 1.45;
}
.solo-escritorio-card .solo-escritorio-mini{
  margin-top: 6px;
  font-size: 0.8rem;
  color: #6b7280;
}

/* Pantallas chicas -> mostrar overlay y ocultar app */
@media (max-width: 1024px){
  #quvi-app{ display: none; }
  #solo-escritorio-overlay{ display: flex; }
}


@media (max-width: 1024px){
  .nav__row{grid-template-columns:minmax(0,1fr) auto;gap:12px;padding-inline:6px;}
  .nav__links{display:none;}
  .nav__actions .btn{display:none;}
  .nav__actions{justify-self:end;}
  .nav__burger{display:block;}
  .brand{min-width:0;}
}

@media (min-width: 1025px){
  .nav__mobile{display:none!important;}
}

body.nav-mobile-open{overflow:hidden;}

/* ============================ PWA Install Banner ============================ */
.pwa-banner {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%) translateY(120%);
  width: calc(100% - 24px);
  max-width: 380px;
  z-index: 10001;
  background: rgba(10, 15, 30, 0.95);
  -webkit-backdrop-filter: blur(25px);
  backdrop-filter: blur(25px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 18px;
  padding: 12px 16px;
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.6);
  display: flex;
  align-items: center;
  gap: 12px;
  color: white;
  transition: transform 0.6s cubic-bezier(0.19, 1, 0.22, 1);
}

.pwa-banner.is-visible {
  transform: translateX(-50%) translateY(0);
}

.pwa-banner__icon {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: #1D6FE0; /* Match the QuVi blue */
  display: grid;
  place-items: center;
  flex-shrink: 0;
}

.pwa-banner__icon img {
  width: 32px;
  height: 32px;
  object-fit: contain;
}

.pwa-banner__content {
  flex-grow: 1;
}

.pwa-banner__title {
  font-size: 14px;
  font-weight: 700;
  margin: 0;
}

.pwa-banner__desc {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.6);
  margin: 1px 0 0;
  line-height: 1.2;
}

.pwa-banner__btn {
  background: white;
  color: #020617;
  border: none;
  padding: 8px 14px;
  border-radius: var(--qv-action-radius);
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
}

.pwa-banner__close {
  background: transparent;
  border: none;
  color: rgba(255, 255, 255, 0.4);
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  cursor: pointer;
  position: absolute;
  top: -12px;
  right: -12px;
  font-size: 20px;
  text-shadow: 0 2px 4px rgba(0,0,0,0.5);
}

/* FAQ */
.faq-list { display: flex; flex-direction: column; gap: 8px; max-width: 700px; margin: 32px auto 0; }
.faq-item { border: 1px solid var(--border); border-radius: 12px; overflow: hidden; transition: border-color 0.2s; }
.faq-item[open] { border-color: var(--brand); }
.faq-item__q { cursor: pointer; padding: 17px 20px; font-weight: 600; font-size: 0.92rem; color: var(--ink); list-style: none; display: flex; justify-content: space-between; align-items: center; user-select: none; gap: 12px; }
.faq-item__q::-webkit-details-marker { display: none; }
.faq-item__q::after { content: '+'; font-size: 1.3rem; color: var(--brand); font-weight: 300; flex-shrink: 0; line-height: 1; }
.faq-item[open] .faq-item__q::after { content: '−'; }
.faq-item__a { padding: 0 20px 16px; font-size: 0.9rem; color: var(--muted); line-height: 1.65; }
.faq-item__a p { margin: 0; }

/* Acceso público compartido, junto al menú en móvil. */
.nav__search { appearance: none; display: grid; place-items: center; flex: 0 0 auto; width: 36px; height: 36px; border: 0; border-radius: 10px; padding: 0; background: transparent; color: var(--ink); cursor: pointer; }
.nav__search[hidden] { display: none; }
.nav__search svg { width: 19px; height: 19px; }
.nav__search:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
@media (hover: hover) { .nav__search:hover { background: #f8fafc; } }
@media (max-width: 1024px), (pointer: coarse) { .nav__search { width: 44px; height: 44px; } }
