/* ============================================================
   Volora · La capa de la demo, en todas las páginas
   Franja, interruptor Cliente | Empresa, sello «Modo demo» y el
   eco de la carta en la portada.
   Estética Volora: blanco, tinta y un solo bloque mandarina por
   pieza, ángulos rectos, sin degradados ni sombras.
   El rojo cereza sigue siendo solo de COTA.
   ============================================================ */

@font-face{font-family:'Instrument Sans';src:url('fonts/instrument-sans-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Instrument Sans';src:url('fonts/instrument-sans-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}

:root{
  --v-blanco:#FFFFFF;
  --v-tinta:#16161A;
  --v-mandarina:#FF6B1A;
  --v-mandarina-texto:#B84300;   /* mandarina para texto pequeño sobre blanco */
  --v-sans:'Instrument Sans',system-ui,sans-serif;
  --franja:36px;
}
@media (pointer:coarse){:root{--franja:44px}}

/* Dentro del panel («Así lo ve tu cliente») y en las capturas no hay franja */
.incrustada,.sin-demo{--franja:0px}
.incrustada .v-franja,.sin-demo .v-franja{display:none}

/* ============================================================
   La franja
   ============================================================ */
.v-franja{
  position:fixed;top:0;left:0;right:0;z-index:110;box-sizing:border-box;
  height:var(--franja);display:flex;align-items:stretch;justify-content:space-between;
  background:var(--v-blanco);color:var(--v-tinta);border-bottom:1px solid var(--v-tinta);
  font-family:var(--v-sans);font-weight:600;font-size:.8125rem;line-height:1.2;letter-spacing:0;
  -webkit-font-smoothing:antialiased;
}
.v-franja *{box-sizing:border-box}
.v-marca{
  display:flex;align-items:center;gap:8px;min-width:0;margin:0;
  padding-left:clamp(12px,2.4vw,24px);padding-right:12px;white-space:nowrap;
}
.v-simbolo{flex:none;width:19px;height:16px;color:var(--v-mandarina)}
/* «Demo del plan Starter · Ver qué incluye»: un solo enlace, a todo el alto de la franja */
.v-incluye{display:flex;align-items:center;min-width:0;align-self:stretch;color:inherit;text-decoration:none;
  margin-bottom:-1px} /* ocupa también la línea de la franja: 44 px de alto en táctil */
.v-texto{min-width:0;overflow:hidden;text-overflow:ellipsis}
.v-punto{flex:none;padding-inline:.4em}
.v-ver{flex:none;text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px}
.v-incluye:hover .v-ver{text-decoration-color:var(--v-mandarina)}
.v-sr{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (max-width:599px){
  .v-marca{gap:6px;padding-left:10px;padding-right:8px}
  .v-cara a{padding-inline:10px}
}
/* Por debajo de 400 px no cabe «Starter»: queda «Demo · Ver qué incluye» */
@media (max-width:399px){
  .v-starter{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}
/* Lo que no cabe se quita de la vista, no del lector de pantalla */
@media (max-width:899px){
  .v-de-volora{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}
@media (max-width:599px){
  .v-del-plan{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}

/* «Visita guiada»: solo desde 900 px; en móvil sale en la pastilla y en la sección de Volora */
.v-visita{
  flex:none;margin-left:auto;padding-inline:14px;border:0;border-left:1px solid var(--v-tinta);
  background:var(--v-blanco);color:var(--v-tinta);font:inherit;cursor:pointer;
}
.v-visita:hover{text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px}
@media (max-width:899px){.v-visita{display:none}}

/* El interruptor: un bloque a todo el alto de la franja */
.v-cara{display:flex;align-items:stretch;flex:none;border-left:1px solid var(--v-tinta)}
.v-cara-logo{display:flex;align-items:center;padding-inline:10px}
.v-cara-logo svg{display:block;width:20px;height:20px;color:var(--v-tinta)}
.v-cara a{
  display:flex;align-items:center;justify-content:center;min-width:44px;padding-inline:14px;
  border-left:1px solid var(--v-tinta);color:var(--v-tinta);text-decoration:none;
  margin-bottom:-1px; /* tapa la línea de la franja: 44 px de alto en táctil */
}
.v-cara a:hover{text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px}
.v-cara a[aria-current]{background:var(--v-tinta);color:var(--v-blanco)}
.v-cara a[aria-current]:hover{text-decoration:none}
.v-franja :focus-visible{outline:2px solid var(--v-mandarina-texto);outline-offset:-5px;border-radius:0}
.v-cara a[aria-current]:focus-visible{outline-color:var(--v-blanco)}
/* En el móvil estrecho el logo deja sitio a «Demo» en la franja */
@media (max-width:429px){.v-cara-logo{display:none}}

/* ============================================================
   Sello «Modo demo»: tinta, mono, girado
   ============================================================ */
.sello{
  display:inline-block;padding:3px 8px;border:2px solid var(--ink);color:var(--ink);
  font-family:var(--mono);font-weight:600;font-size:.64rem;line-height:1.35;letter-spacing:.16em;
  text-transform:uppercase;white-space:nowrap;transform:rotate(-4deg);
}

/* ============================================================
   Portada: lo que mueve la franja y el eco de la carta
   ============================================================ */
.top{top:var(--franja)}
.carta-head{top:calc(110px + var(--franja))}
.tostar-panel{top:calc(90px + var(--franja))}
/* Los saltos de ancla bajan lo que mide la franja. Sin especificidad: carta.css y panel.css fijan el suyo y tienen que ganar */
:where(html){scroll-padding-top:var(--franja)}
/* Móvil apaisado: el hero estático empieza debajo de franja y cabecera y crece lo que haga falta */
@media (orientation:landscape) and (pointer:coarse) and (max-height:560px){
  html:not(.sin-demo) .hero,html:not(.sin-demo) .hero-stage{height:auto;min-height:100vh}
  html:not(.sin-demo) .hero-static{position:relative;min-height:100vh;padding-top:calc(var(--franja) + 84px)}
}

/* Lo agotado se atenúa con colores, nunca con opacidad sobre el texto */
.eco-agotado > span:first-child{color:var(--ink-mute)}
.eco-agotado .mono{color:var(--ink-mute);text-decoration:line-through;text-decoration-thickness:1.5px}
.eco-estado{
  flex:none;align-self:center;display:inline-block;padding:3px 7px;border:1.5px solid var(--ink);border-radius:4px;
  font-family:var(--mono);font-weight:600;font-size:.58rem;line-height:1.35;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink);white-space:nowrap;
}
.cota-precio .eco-estado{margin-left:8px;vertical-align:2px}
/* Móvil: el sello va en su propia línea, debajo del nombre; nombre, puntos y precio no se mueven */
@media (max-width:599px){
  .carta-lista li.eco-agotado{position:relative;padding-bottom:38px}
  .carta-lista li.eco-agotado .eco-estado{position:absolute;left:0;bottom:12px}
  .cota-precio .eco-estado{display:table;margin:6px 0 0}
}
.carta-completa{margin-top:18px}
/* Táctil: 44 px de zona pulsable sin mover la línea cereza */
@media (pointer:coarse){
  .carta-completa{position:relative}
  .carta-completa::after{content:"";position:absolute;left:0;right:0;top:50%;height:44px;transform:translateY(-50%)}
}

@media print{.v-franja,.v-cta,.v-tarjeta,.v-pastilla,.chat{display:none!important}}

/* Soportes de mesa: la hoja empieza debajo de la franja (solo en pantalla) */
@media screen{.pagina-soportes{padding-top:calc(var(--franja) + clamp(28px,6vw,64px))}}

/* ============================================================
   El botón para pedirlo: mandarina, abajo a la izquierda
   ============================================================ */
:root{--hueco-demo:calc(44px + clamp(16px,3vh,34px) + 16px)}
.v-cta{
  position:fixed;left:clamp(14px,2.4vw,34px);bottom:clamp(16px,3vh,34px);z-index:96; /* sobre la barra de la carta (95) */
  display:inline-flex;align-items:center;min-height:44px;padding:10px 18px;
  background:var(--v-mandarina);color:var(--v-tinta);border:0;border-radius:0;
  font-family:var(--v-sans);font-weight:600;font-size:.9375rem;line-height:1.2;text-decoration:none;
  -webkit-font-smoothing:antialiased;
}
.v-cta:hover{background:var(--v-tinta);color:var(--v-blanco)}
.v-cta:focus-visible{outline:2px solid var(--v-tinta);outline-offset:3px;border-radius:0}
.v-cta-corto{display:none}
@media (max-width:599px){.v-cta-largo{display:none}.v-cta-corto{display:inline}}
/* Fuera de la vista: con el aviso de cookies abierto, durante la visita y en las capturas */
.incrustada .v-cta,.sin-demo .v-cta,.con-cookies .v-cta,.en-visita .v-cta{display:none}
/* Lo que tiene el foco no se queda debajo de lo fijo de abajo: el botón, la pastilla, el altímetro de la
   portada o el aviso de cookies. Sin especificidad: el estilo en línea de la tarjeta de la visita manda */
:where(html:not(.incrustada):not(.sin-demo)){scroll-padding-bottom:var(--hueco-demo)}
:where(html.con-altimetro:not(.sin-demo)){scroll-padding-bottom:calc(var(--hueco-demo) + 44px)}
:where(html.con-cookies:not(.sin-demo)){scroll-padding-bottom:var(--hueco-cookies,var(--hueco-demo))}
/* Con la sección de Volora a la vista sobra: allí ya está «Quiero una reunión gratis» */
.en-volora .v-cta{display:none}
/* La pastilla de la visita va centrada abajo: hasta 900 px choca con el botón */
@media (max-width:899px){.con-pastilla .v-cta{display:none}}
/* Abajo queda el hueco del botón y del chat, para que no tapen el final de la página. Solo en pantalla,
   y dentro del pie oscuro, que sigue llegando al borde; las páginas sin pie lo dejan en el body */
@media screen{
  html:not(.incrustada):not(.sin-demo) body:not(:has(> footer.pie, > .c-pie, > .p-pie)){padding-bottom:var(--hueco-demo)}
  html:not(.incrustada):not(.sin-demo) footer.pie{padding-bottom:calc(30px + var(--hueco-demo))}
  /* Con el aviso de cookies abierto, el pie crece por debajo lo que mide el aviso: el último enlace se puede subir por encima */
  html.con-cookies:not(.incrustada):not(.sin-demo) footer.pie{padding-bottom:calc(30px + var(--hueco-cookies,0px))}
  html:not(.incrustada):not(.sin-demo) .c-pie,html:not(.incrustada):not(.sin-demo) .p-pie{padding-bottom:calc(36px + var(--hueco-demo))}
}

/* ============================================================
   «Esto es lo que has visto» (#volora), antes del pie de la portada
   ============================================================ */
.v-seccion{
  position:relative;background:var(--v-blanco);color:var(--v-tinta);
  border-top:1px solid var(--v-tinta);border-bottom:1px solid var(--v-tinta);
  padding:clamp(56px,9vw,112px) 0;font-family:var(--v-sans);font-size:1.0625rem;line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
.sin-demo .v-seccion{display:none}
.v-envoltura{max-width:1200px;margin-inline:auto;padding-inline:clamp(20px,4vw,48px)}
.v-logo{display:flex;align-items:center;gap:10px;margin:0 0 28px;font-family:'Bricolage Grotesque',var(--v-sans);font-weight:800;font-size:1.375rem;letter-spacing:-.01em}
.v-logo .v-simbolo{width:28px;height:24px}
.v-titulo{margin:0;max-width:16ch;font-family:'Bricolage Grotesque',var(--v-sans);font-weight:800;font-size:clamp(2.25rem,5vw,3.75rem);line-height:1.02;letter-spacing:-.02em;color:var(--v-tinta)}
.v-entrada{margin:18px 0 0;max-width:52ch;font-size:1.1875rem}
.v-cajas{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:16px;margin-top:clamp(32px,5vw,48px)}
@media (max-width:820px){.v-cajas{grid-template-columns:1fr}}
.v-caja{padding:clamp(22px,3vw,32px);border:1px solid var(--v-tinta)}
.v-caja-incluye{background:var(--v-mandarina);border-color:var(--v-mandarina)}
.v-caja-titulo{margin:0 0 14px;font-family:var(--v-sans);font-weight:600;font-size:.8125rem;line-height:1.3;letter-spacing:.12em;text-transform:uppercase;color:var(--v-tinta)}
.v-caja ul{margin:0;padding:0;list-style:none}
.v-caja li{position:relative;padding:8px 0 8px 22px;border-top:1px solid rgba(22,22,26,.22)}
.v-caja li:first-child{border-top:0;padding-top:0}
.v-caja li::before{content:"";position:absolute;left:0;top:calc(8px + .72em);width:10px;height:2px;background:var(--v-tinta)}
.v-caja li:first-child::before{top:.72em}
.v-caja p{margin:0}
.v-precio{margin:clamp(28px,4vw,40px) 0 0;font-size:1.125rem}
.v-precio strong{font-family:'Bricolage Grotesque',var(--v-sans);font-weight:800;font-size:1.5em;letter-spacing:-.01em}
.v-botones{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin-top:24px}
.v-boton{
  display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 22px;
  border:1.5px solid var(--v-tinta);border-radius:0;background:var(--v-blanco);color:var(--v-tinta);
  font:600 1rem/1.2 var(--v-sans);text-decoration:none;cursor:pointer;
}
.v-boton:hover{background:var(--v-tinta);color:var(--v-blanco)}
.v-boton-lleno{background:var(--v-tinta);color:var(--v-blanco)}
.v-boton-lleno:hover{background:var(--v-mandarina);border-color:var(--v-mandarina);color:var(--v-tinta)}
.v-boton-texto{border-color:transparent;padding-inline:6px;text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:4px}
.v-boton-texto:hover{background:transparent;color:var(--v-tinta);text-decoration-color:var(--v-mandarina)}
.v-seccion :focus-visible,.v-tarjeta :focus-visible,.v-pastilla :focus-visible{outline:2px solid var(--v-mandarina-texto);outline-offset:3px;border-radius:0}

/* ============================================================
   La visita guiada: la narra el altímetro
   ============================================================ */
.en-visita .altimeter{visibility:hidden}
.v-tarjeta{
  /* Abajo a la izquierda: el botón de Volora se aparta y el chat sigue a la vista */
  position:fixed;z-index:160;left:clamp(14px,2.4vw,34px);bottom:clamp(16px,3vh,34px);
  width:min(420px,calc(100vw - 2 * clamp(14px,2.4vw,34px)));max-height:calc(100vh - var(--franja) - 32px);overflow:auto;
  box-sizing:border-box;padding:18px 20px 16px;background:var(--v-blanco);color:var(--v-tinta);
  border:1px solid var(--v-tinta);font-family:var(--v-sans);font-size:1rem;line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
.v-tarjeta *,.v-pastilla *{box-sizing:border-box}
@media (max-width:599px){.v-tarjeta{left:0;right:0;bottom:0;width:auto;max-height:70vh;border-width:1px 0 0;padding-bottom:max(16px,env(safe-area-inset-bottom))}}
.v-tarjeta:focus{outline:none}
.v-tarjeta-cabeza{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.v-avatar{flex:none;width:34px;height:34px;color:var(--ink,#131817)}
.v-avatar svg{display:block;width:100%;height:100%}
.v-cota{display:flex;align-items:baseline;gap:6px;margin:0;font-family:var(--mono,'Martian Mono',monospace);font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink,#131817)}
.v-cota-tick{align-self:center;width:22px;height:1px;background:var(--accent,#A31E33)}
.v-cota-valor{font-size:1.75rem;line-height:1;letter-spacing:-.02em}
.v-cota-unidad{font-size:.8rem}
.v-paso{margin-left:auto;font-family:var(--mono,'Martian Mono',monospace);font-weight:600;font-size:.6875rem;letter-spacing:.08em;color:#55555B}
.v-tarjeta-titulo{margin:0 0 6px;font-family:'Bricolage Grotesque',var(--v-sans);font-weight:800;font-size:1.25rem;line-height:1.15;letter-spacing:-.01em;color:var(--v-tinta)}
.v-tarjeta-titulo:focus{outline:none}
.v-tarjeta-texto{margin:0}
.v-tarjeta-texto + .v-tarjeta-texto{margin-top:8px}
.v-tarjeta-qr{display:flex;align-items:center;gap:14px;margin-top:12px}
.v-tarjeta-qr img{flex:none;width:132px;height:132px;padding:6px;background:var(--v-blanco);border:1px solid var(--v-tinta)}
.v-tarjeta-qr p{margin:0;font-size:.9375rem}
.v-tarjeta-enlaces{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:12px}
.v-tarjeta-enlaces a{color:var(--v-tinta);font-weight:600;text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px}
.v-tarjeta-enlaces a.v-boton{text-decoration:none;min-height:44px}
.v-tarjeta-enlaces a.v-boton-lleno{color:var(--v-blanco)}
.v-tarjeta-botones{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px}
.v-tarjeta-botones .v-boton{min-height:44px;padding:10px 16px;font-size:.9375rem}
.v-tarjeta-botones .v-boton-texto{padding-inline:8px}
.v-tarjeta-botones .v-empuja{margin-left:auto}
/* Lo que la visita señala */
.v-senalado{outline:3px solid var(--v-mandarina)!important;outline-offset:4px!important}

/* La pastilla: «¿Te la enseñamos en un minuto?» y «Seguir la visita» */
.v-pastilla{
  position:fixed;z-index:160;left:50%;bottom:clamp(16px,3vh,34px);transform:translateX(-50%);
  display:flex;align-items:center;gap:4px;width:max-content;max-width:calc(100vw - 24px);padding:4px 4px 4px 16px;
  background:var(--v-blanco);color:var(--v-tinta);border:1px solid var(--v-tinta);
  font:600 .9375rem/1.25 var(--v-sans);-webkit-font-smoothing:antialiased;
}
.v-pastilla p{margin:0;padding-right:6px}
.v-pastilla .v-boton{min-height:44px;padding:8px 14px;font-size:.9375rem}
.v-pastilla .v-cerrar{flex:none;min-width:44px;min-height:44px;padding:0;border:0;background:transparent;color:var(--v-tinta);font:600 1.25rem/1 var(--v-sans);cursor:pointer}
.incrustada .v-tarjeta,.incrustada .v-pastilla,.sin-demo .v-tarjeta,.sin-demo .v-pastilla{display:none}
/* El aviso de cookies se contesta primero: la tarjeta queda debajo y la pastilla espera */
.con-cookies .v-tarjeta{z-index:140}
.con-cookies .v-pastilla{display:none}
/* Con el chat abierto, la visita espera debajo */
.chat-abierto .v-tarjeta,.chat-abierto .v-pastilla,.chat-abierto .v-cta{display:none}
/* En la portada, la pastilla va por encima del altímetro */
.con-altimetro .v-pastilla{bottom:calc(clamp(16px,3vh,34px) + 40px)}

/* La cata enviada lleva su sello: el envío es de demo */
.sello-cata{margin-left:8px;vertical-align:2px}
