/* Contact Hub — Print Desk orb / sheet / pill */
.vento-hub{
  --hub-accent: var(--cyan, #00A8C1);
  position:fixed;
  z-index:var(--hub-z, 92);
  bottom:calc(var(--hub-y, 88px) + env(safe-area-inset-bottom, 0px));
  inset-inline-start:var(--hub-x, 18px);
  inset-inline-end:auto;
  pointer-events:none;
}
.vento-hub[data-pos="end"]{
  inset-inline-start:auto;
  inset-inline-end:var(--hub-x, 18px);
}
.vento-hub [data-hub-toggle],
.vento-hub [data-hub-close],
.vento-hub__link{pointer-events:auto}

.vento-hub__scrim{
  position:fixed;inset:0;z-index:1;
  background:rgba(6,16,31,.42);
  backdrop-filter:blur(var(--hub-blur, 10px));
  -webkit-backdrop-filter:blur(var(--hub-blur, 10px));
  opacity:0;transition:opacity var(--hub-dur, .28s) ease;
}
.vento-hub.is-open .vento-hub__scrim{opacity:1}

.vento-hub__panel{
  position:absolute;
  bottom:calc(var(--hub-btn, 56px) + 14px);
  inset-inline-start:0;
  width:min(var(--hub-panel-w, 340px), calc(100vw - 28px));
  border-radius:var(--hub-radius, 28px);
  background:rgba(255,255,255,var(--hub-alpha, .97));
  color:var(--midnight, #06101F);
  box-shadow:0 28px 64px rgba(6,16,31,.24), 0 0 0 1px rgba(8,20,38,.06);
  overflow:hidden;
  z-index:2;
  transform:translateY(14px) scale(.96);
  opacity:0;
  transition:transform var(--hub-dur, .28s) cubic-bezier(.2,.8,.2,1), opacity var(--hub-dur, .28s) ease;
  transform-origin:bottom right;
}
html[dir="ltr"] .vento-hub__panel{transform-origin:bottom left}
.vento-hub[data-pos="end"] .vento-hub__panel{inset-inline-start:auto;inset-inline-end:0}
.vento-hub.is-open .vento-hub__panel{
  transform:translateY(0) scale(1);
  opacity:1;
}

.vento-hub__handle{
  display:none;width:44px;height:4px;border-radius:999px;
  background:rgba(8,20,38,.16);margin:10px auto 0;
}
.vento-hub__glow{
  position:absolute;inset:auto -18% -45% auto;width:200px;height:200px;
  background:radial-gradient(circle, color-mix(in srgb, var(--hub-accent) 42%, transparent), transparent 70%);
  pointer-events:none;
  z-index:0;
}
@media (max-width:720px){
  .vento-hub__glow{display:none!important}
  .vento-hub__panel .vento-hub__form,
  .vento-hub__panel input,
  .vento-hub__panel textarea{position:relative;z-index:2}
}

.vento-hub__head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:12px;
  padding:18px 18px 10px;position:relative;
}
.vento-hub__kicker{
  margin:0 0 4px;font-size:10px;font-weight:900;letter-spacing:.16em;
  color:var(--hub-accent);text-transform:uppercase;
}
.vento-hub__head h2{
  margin:0;font-size:clamp(1.2rem, 3.6vw, 1.5rem);font-weight:950;
  letter-spacing:-.035em;line-height:1.15;
}
.vento-hub__sub{margin:6px 0 0;font-size:13px;color:var(--muted, #546074);line-height:1.5}
.vento-hub__close{
  width:44px;height:44px;border:0;border-radius:14px;flex-shrink:0;
  background:rgba(8,20,38,.06);color:var(--midnight);display:grid;place-items:center;
  cursor:pointer;transition:background .2s, transform .15s;
}
.vento-hub__close:hover{background:rgba(8,20,38,.12)}
.vento-hub__close:active{transform:scale(.96)}
.vento-hub__close:focus-visible{outline:2px solid var(--hub-accent);outline-offset:2px}
.vento-hub__close .vento-icon,.vento-hub__close svg{width:18px;height:18px;display:block}

.vento-hub__list{list-style:none;margin:0;padding:6px 12px 14px;display:grid;gap:8px}
.vento-hub__link{
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;
  padding:13px 12px;border-radius:18px;text-decoration:none;color:inherit;
  background:linear-gradient(180deg, #F7F9FB, #F1F4F7);
  min-height:58px;
  transition:transform .15s, background .2s, box-shadow .2s;
}
.vento-hub__link:hover{
  background:color-mix(in srgb, var(--hub-accent) 10%, #fff);
  box-shadow:0 10px 24px rgba(6,16,31,.08);
  transform:translateY(-1px);
}
.vento-hub__link:active{transform:scale(.985)}
.vento-hub__link:focus-visible{outline:2px solid var(--hub-accent);outline-offset:2px}
.vento-hub__ico{
  width:44px;height:44px;border-radius:15px;display:grid;place-items:center;
  background:#0A1220;color:#fff;
}
.vento-hub__ico .vento-icon,.vento-hub__ico svg{width:var(--hub-ico, 22px);height:var(--hub-ico, 22px);display:block}
.vento-hub__link--whatsapp .vento-hub__ico{background:#128C7E}
.vento-hub__link--telegram .vento-hub__ico{background:#229ED9}
.vento-hub__link--bale .vento-hub__ico{background:#00A3E0}
.vento-hub__link--instagram .vento-hub__ico{background:linear-gradient(135deg,#f58529,#dd2a7b,#8134af)}
.vento-hub__link--email .vento-hub__ico{background:#31415C}
.vento-hub__txt{display:grid;gap:2px;min-width:0}
.vento-hub__txt strong{font-size:14px;font-weight:900;line-height:1.3}
.vento-hub__txt small{
  font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap
}
.vento-hub__chev{opacity:.35;width:16px;height:16px}
.vento-hub__chev .vento-icon,.vento-hub__chev svg{width:100%;height:100%;display:block}
html[dir="rtl"] .vento-hub__chev{transform:scaleX(-1)}

.vento-hub__meta{
  padding:0 18px 16px;display:grid;gap:6px;font-size:12px;color:var(--muted);
}
.vento-hub__meta span{font-weight:900;color:var(--midnight);margin-inline-end:6px}

.vento-hub__fab{
  position:relative;z-index:3;
  width:var(--hub-btn, 56px);height:var(--hub-btn, 56px);
  border:0;border-radius:999px;cursor:pointer;
  background:linear-gradient(145deg, #0C1A30 0%, #132A48 55%, #0A1628 100%);
  color:#fff;
  display:inline-grid;place-items:center;grid-auto-flow:column;gap:8px;
  padding:0;
  box-shadow:
    0 18px 40px rgba(6,16,31,.32),
    0 0 0 1px rgba(255,255,255,.1) inset,
    0 0 0 3px color-mix(in srgb, var(--hub-accent) 22%, transparent);
  transition:transform .18s ease, background .2s, width .2s, box-shadow .2s;
}
.vento-hub--labeled .vento-hub__fab{
  width:auto;min-width:var(--hub-btn, 56px);padding:0 16px 0 14px;border-radius:999px;
}
.vento-hub__fab-text{font-size:13px;font-weight:900;letter-spacing:-.01em;white-space:nowrap}
.vento-hub__fab:hover{background:var(--hub-accent);transform:translateY(-2px)}
.vento-hub__fab:active{transform:scale(.96)}
.vento-hub__fab:focus-visible{outline:2px solid var(--hub-accent);outline-offset:3px}
.vento-hub__fab-ico{width:calc(var(--hub-btn, 56px) * .38);height:calc(var(--hub-btn, 56px) * .38);display:grid}
.vento-hub__fab-ico .vento-icon,.vento-hub__fab-ico svg{width:100%;height:100%;display:block}
.vento-hub__fab-ring{
  position:absolute;inset:-5px;border-radius:inherit;
  border:2px solid color-mix(in srgb, var(--hub-accent) 55%, transparent);
  opacity:.5;animation:hubPulse 2.6s ease-out infinite;pointer-events:none;
}
.vento-hub.is-open .vento-hub__fab-ring{animation:none;opacity:.2}

.vento-hub--pill .vento-hub__fab{
  width:auto;min-height:var(--hub-btn, 52px);padding:0 18px;border-radius:999px;
  background:linear-gradient(135deg, #0A1220, #16324d);
}
.vento-hub--pill .vento-hub__fab-text{display:inline}

.vento-hub--sheet .vento-hub__panel,
.vento-hub--m-sheet .vento-hub__panel{
  /* desktop still floating unless sheet style */
}

@keyframes hubPulse{
  0%{transform:scale(.92);opacity:.65}
  70%{transform:scale(1.2);opacity:0}
  100%{transform:scale(1.2);opacity:0}
}

/* Mobile bottom sheet */
@media (max-width:720px){
  .vento-hub{
    bottom:calc(var(--mobile-bar-h, 64px) + 12px + env(safe-area-inset-bottom, 0px));
  }
  .vento-hub--m-sheet .vento-hub__panel,
  .vento-hub--sheet .vento-hub__panel{
    position:fixed;
    left:0;right:0;bottom:0;
    inset-inline:0;
    width:100%;
    max-width:none;
    border-radius:22px 22px 0 0;
    transform:translateY(108%);
    opacity:1;
    max-height:min(82vh, 640px);
    overflow:auto;
    padding-bottom:calc(12px + env(safe-area-inset-bottom, 0px));
  }
  .vento-hub--m-sheet.is-open .vento-hub__panel,
  .vento-hub--sheet.is-open .vento-hub__panel{
    transform:translateY(0);
  }
  .vento-hub--m-sheet .vento-hub__handle,
  .vento-hub--sheet .vento-hub__handle{display:block}
  .vento-hub--labeled .vento-hub__fab-text{display:none}
}

@media (prefers-reduced-motion:reduce){
  .vento-hub__scrim,.vento-hub__panel,.vento-hub__fab,.vento-hub__link,.vento-top{transition:none!important}
  .vento-hub__fab-ring{animation:none!important}
}

/* ——— Back to top (opposite of hub) ——— */
.vento-top{
  position:fixed;
  z-index:calc(var(--hub-z, 92) - 1);
  bottom:calc(var(--hub-y, 88px) + env(safe-area-inset-bottom, 0px));
  width:var(--top-btn, 44px);height:var(--top-btn, 44px);
  border:0;border-radius:16px;cursor:pointer;
  background:rgba(255,255,255,.82);
  color:var(--cyan, #196f93);
  display:grid;place-items:center;
  backdrop-filter:saturate(160%) blur(14px);
  -webkit-backdrop-filter:saturate(160%) blur(14px);
  box-shadow:0 10px 28px rgba(6,16,31,.12), inset 0 0 0 1px rgba(25,111,147,.18);
  opacity:0;transform:translateY(12px) scale(.9);
  transition:opacity .28s ease, transform .28s cubic-bezier(.2,.8,.2,1), background .2s, color .2s, box-shadow .2s;
  pointer-events:none;
}
.vento-top[data-pos="end"]{
  inset-inline-end:var(--hub-x, 18px);
  inset-inline-start:auto;
}
.vento-top[data-pos="start"]{
  inset-inline-start:var(--hub-x, 18px);
  inset-inline-end:auto;
}
.vento-top.is-visible{
  opacity:1;transform:translateY(0) scale(1);
  pointer-events:auto;
}
.vento-top:hover{
  background:var(--cyan, #196f93);
  color:#fff;
  box-shadow:0 14px 32px rgba(25,111,147,.28);
}
.vento-top:active{transform:scale(.94)}
.vento-top:focus-visible{outline:2px solid var(--cyan,#196f93);outline-offset:3px}
.vento-top .vento-icon,.vento-top svg{width:42%;height:42%;display:block}

@media (max-width:720px){
  .vento-top{
    bottom:calc(var(--mobile-bar-h, 64px) + 14px + env(safe-area-inset-bottom, 0px));
    width:40px;height:40px;border-radius:14px;
  }
}
