/* Vibo v1.0. Copy font to public/fonts/. Preserve fonts/OFL.txt. */
@font-face {
  font-family: 'Plus Jakarta Sans';
  src: url('/fonts/PlusJakartaSans-Variable.woff2') format('woff2');
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
}
:root {
  --vibo-ink: #102440;
  --vibo-green: #69b83d;
  --vibo-green-strong: #367a20;
  --vibo-green-soft: #eaf4e3;
  --vibo-warm: #f7f8f4;
  --vibo-white: #fff;
  --vibo-muted: #526174;
  --vibo-border: #dce3dc;
  --vibo-control-border: #7c8b99;
  --vibo-error: #b42318;
  --vibo-bg: var(--vibo-warm);
  --vibo-surface: var(--vibo-white);
  --vibo-text: var(--vibo-ink);
  --vibo-font: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
  --vibo-space-1: 4px;
  --vibo-space-2: 8px;
  --vibo-space-3: 12px;
  --vibo-space-4: 16px;
  --vibo-space-6: 24px;
  --vibo-space-8: 32px;
  --vibo-space-12: 48px;
  --vibo-space-16: 64px;
  --vibo-space-24: 96px;
  --vibo-radius-input: 10px;
  --vibo-radius-button: 12px;
  --vibo-radius-card: 20px;
  --vibo-radius-section: 28px;
  --vibo-shadow: 0 8px 24px rgb(16 36 64 / 6%);
  --vibo-shadow-hover: 0 12px 32px rgb(16 36 64 / 10%);
  --vibo-duration-press: 120ms;
  --vibo-duration-fast: 160ms;
  --vibo-duration-normal: 220ms;
  --vibo-duration-enter: 420ms;
  --vibo-ease: cubic-bezier(.2, .8, .2, 1);
  --vibo-container: 1200px;
  --vibo-gutter: 20px;
  --vibo-section-space: 64px;
}
@media (min-width: 768px) { :root { --vibo-gutter: 32px; } }
@media (min-width: 1024px) { :root { --vibo-gutter: 48px; --vibo-section-space: 96px; } }
/* These styles are opt-in: add vibo-page to the page root or body. */
.vibo-page {
  font-family: var(--vibo-font);
  font-synthesis: none;
  color: var(--vibo-text);
  background: var(--vibo-bg);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
.vibo-page, .vibo-page *, .vibo-page *::before, .vibo-page *::after { box-sizing: border-box; }
.vibo-container { width: min(var(--vibo-container), calc(100% - 2 * var(--vibo-gutter))); margin-inline: auto; }
.vibo-section { padding-block: var(--vibo-section-space); }
.vibo-h1 { font-size: clamp(36px, 4.5vw, 64px); line-height: 1.08; letter-spacing: -.035em; font-weight: 700; max-width: 24ch; text-wrap: balance; }
.vibo-h2 { font-size: clamp(28px, 3vw, 40px); line-height: 1.15; letter-spacing: -.025em; font-weight: 700; text-wrap: balance; }
.vibo-h3 { font-size: clamp(22px, 2vw, 24px); line-height: 1.25; font-weight: 600; }
.vibo-lead { font-size: clamp(18px, 1.5vw, 20px); line-height: 1.55; max-width: 65ch; }
.vibo-muted { color: var(--vibo-muted); }
.vibo-price { font-variant-numeric: tabular-nums; font-weight: 700; }
.vibo-logo { display: block; width: 144px; height: auto; }
@media (max-width: 767px) { .vibo-logo { width: 128px; } }
/* Two-color focus remains visible over light and dark surfaces. */
.vibo-page :focus-visible { outline: 3px solid var(--vibo-ink); outline-offset: 3px; box-shadow: 0 0 0 3px var(--vibo-white); }
.vibo-page ::selection { background: var(--vibo-green-soft); color: var(--vibo-ink); }
