/* VitaAvanza route bundle source: /scrollbar.css */
:root {
  color-scheme: light;
  scrollbar-color: #E8520A #F3EFE8;
  scrollbar-width: thin;
}

::-webkit-scrollbar {
  width: 6px;
}

::-webkit-scrollbar-track {
  background: #F3EFE8;
}

::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: #C4B89A;
}

::-webkit-scrollbar-thumb:hover {
  background: #E8520A;
}


/* VitaAvanza route bundle source: /cursor.css */
:root {
  --va-cursor-orange: rgba(232, 82, 10, 0.90);
  --va-cursor-orange-soft: rgba(232, 82, 10, 0.50);
  --va-cursor-violet: rgba(91, 33, 182, 0.82);
  --va-cursor-violet-soft: rgba(91, 33, 182, 0.45);
}

@media (hover: hover) and (pointer: fine) {
  html.va-custom-cursor.va-cursor-active body,
  html.va-custom-cursor.va-cursor-active body * {
    cursor: none !important;
  }

  html.va-custom-cursor.va-cursor-active input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]),
  html.va-custom-cursor.va-cursor-active textarea,
  html.va-custom-cursor.va-cursor-active select,
  html.va-custom-cursor.va-cursor-active option,
  html.va-custom-cursor.va-cursor-active [contenteditable="true"] {
    cursor: text !important;
  }
}

.va-cursor,
.va-cursor-dot {
  position: fixed;
  top: 0;
  left: 0;
  pointer-events: none;
  opacity: 0;
  z-index: 2147483647;
  isolation: isolate;
  transform: translate3d(-100px, -100px, 0);
  transition:
    transform 85ms cubic-bezier(0.22, 1, 0.36, 1),
    opacity 180ms ease,
    width 220ms cubic-bezier(0.16, 1, 0.3, 1),
    height 220ms cubic-bezier(0.16, 1, 0.3, 1),
    border-color 220ms ease,
    box-shadow 220ms ease,
    background 220ms ease,
    filter 220ms ease;
  will-change: transform, opacity, width, height;
}

.va-cursor-dot {
  transition-duration: 35ms, 180ms, 220ms, 220ms, 220ms, 220ms, 220ms, 220ms;
}

.va-cursor {
  width: 34px;
  height: 34px;
  border: 1.5px solid var(--va-cursor-orange-soft);
  border-radius: 999px;
  background:
    radial-gradient(circle at center, rgba(255, 255, 255, 0.65), transparent 40%),
    linear-gradient(135deg, rgba(232, 82, 10, 0.14), rgba(91, 33, 182, 0.10));
  box-shadow:
    0 0 0 1px rgba(28, 25, 23, 0.06),
    0 0 28px rgba(232, 82, 10, 0.22),
    0 0 16px rgba(91, 33, 182, 0.14),
    inset 0 0 18px rgba(232, 82, 10, 0.06);
}

.va-cursor::before,
.va-cursor::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
}

.va-cursor::before {
  inset: -16px;
  background: radial-gradient(circle, rgba(232, 82, 10, 0.12) 0%, rgba(91, 33, 182, 0.06) 42%, transparent 72%);
  filter: blur(12px);
  opacity: 0.88;
}

.va-cursor::after {
  inset: 5px;
  border: 1px solid rgba(28, 25, 23, 0.05);
}

.va-cursor-dot {
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: #E8520A;
  box-shadow:
    0 0 0 1px rgba(232, 82, 10, 0.4),
    0 0 16px rgba(232, 82, 10, 0.50),
    0 0 8px rgba(91, 33, 182, 0.30);
}

html.va-cursor-visible .va-cursor,
html.va-cursor-visible .va-cursor-dot {
  opacity: 1;
}

html.va-cursor-hover .va-cursor {
  width: 46px;
  height: 46px;
  border-color: var(--va-cursor-violet-soft);
  background: linear-gradient(135deg, rgba(232, 82, 10, 0.10), rgba(91, 33, 182, 0.08));
  box-shadow:
    0 0 32px rgba(232, 82, 10, 0.18),
    0 0 20px rgba(91, 33, 182, 0.14),
    inset 0 0 22px rgba(232, 82, 10, 0.05);
}

html.va-cursor-hover .va-cursor-dot {
  width: 10px;
  height: 10px;
  background: linear-gradient(135deg, #E8520A, #5B21B6);
  box-shadow:
    0 0 20px rgba(232, 82, 10, 0.45),
    0 0 12px rgba(91, 33, 182, 0.28);
}

html.va-cursor-press .va-cursor {
  width: 24px;
  height: 24px;
}

html.va-cursor-press .va-cursor-dot {
  width: 5px;
  height: 5px;
}

html.va-cursor-native .va-cursor,
html.va-cursor-native .va-cursor-dot {
  opacity: 0 !important;
}


/* VitaAvanza route bundle source: /cookie-banner.css */
.va-cookie-banner {
  position: fixed;
  left: 1rem;
  right: 1rem;
  bottom: 1rem;
  z-index: 10000;
  display: flex;
  justify-content: center;
  pointer-events: none;
}

.va-cookie-banner__panel {
  position: relative;
  width: min(100%, 72rem);
  pointer-events: auto;
  border: 1px solid rgba(28, 25, 23, 0.10);
  border-radius: 28px;
  padding: 1rem 1rem 1.1rem;
  background: #FFFFFF;
  box-shadow: 0 22px 60px rgba(28, 25, 23, 0.10), 0 0 30px rgba(91, 33, 182, 0.06);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  color: #1C1917;
  transition: opacity 220ms ease, transform 220ms ease;
}

.va-cookie-banner__panel.is-leaving {
  opacity: 0;
  transform: translateY(1rem) scale(0.98);
}

.va-cookie-banner__inner {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.va-cookie-banner__copy {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.va-cookie-banner__eyebrow {
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #5B21B6;
}

.va-cookie-banner__title {
  font-size: 1rem;
  font-weight: 700;
  color: #1C1917;
}

.va-cookie-banner__body {
  font-size: 0.92rem;
  line-height: 1.65;
  color: #44403C;
  max-width: 58rem;
}

.va-cookie-banner__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
}

.va-cookie-banner__button,
.va-cookie-banner__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.85rem;
  padding: 0 1.1rem;
  border-radius: 999px;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  transition: transform 180ms ease, border-color 180ms ease, background 180ms ease, color 180ms ease, box-shadow 180ms ease;
}

.va-cookie-banner__button:hover,
.va-cookie-banner__link:hover {
  transform: translateY(-1px);
}

.va-cookie-banner__button--ghost {
  border: 1px solid rgba(28, 25, 23, 0.12);
  background: rgba(28, 25, 23, 0.04);
  color: #44403C;
}

.va-cookie-banner__button--primary {
  border: 1px solid rgba(232, 82, 10, 0.18);
  background: linear-gradient(135deg, #E8520A, #5B21B6);
  color: #ffffff;
  box-shadow: 0 0 24px rgba(232, 82, 10, 0.20);
}

.va-cookie-banner__link {
  color: #44403C;
}

body[data-cookie-theme="mitra"] .va-cookie-banner__panel {
  overflow: hidden;
  border-color: rgba(139, 92, 246, 0.24);
  border-radius: 22px;
  background: rgba(7, 5, 16, 0.94);
  box-shadow: 0 24px 60px rgba(2, 1, 8, 0.6), 0 0 42px rgba(139, 92, 246, 0.12);
}

body[data-cookie-theme="mitra"] .va-cookie-banner__panel::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.16) 50%),
    linear-gradient(90deg, rgba(139, 92, 246, 0.03), rgba(45, 212, 191, 0.02), rgba(139, 92, 246, 0.03));
  background-size: 100% 2px, 3px 100%;
  opacity: 0.35;
}

body[data-cookie-theme="mitra"] .va-cookie-banner__eyebrow,
body[data-cookie-theme="mitra"] .va-cookie-banner__title,
body[data-cookie-theme="mitra"] .va-cookie-banner__button,
body[data-cookie-theme="mitra"] .va-cookie-banner__link {
  font-family: "Space Grotesk", "Manrope", sans-serif;
}

body[data-cookie-theme="mitra"] .va-cookie-banner__eyebrow {
  color: rgba(196, 181, 253, 0.92);
}

body[data-cookie-theme="mitra"] .va-cookie-banner__button--ghost {
  border-color: rgba(139, 92, 246, 0.2);
  background: rgba(139, 92, 246, 0.08);
}

body[data-cookie-theme="mitra"] .va-cookie-banner__button--primary {
  border-color: rgba(94, 234, 212, 0.24);
  box-shadow: 0 0 24px rgba(45, 212, 191, 0.18);
}

@media (min-width: 768px) {
  .va-cookie-banner__inner {
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-end;
  }

  .va-cookie-banner__actions {
    justify-content: flex-end;
    flex-shrink: 0;
  }
}


/* VitaAvanza route bundle source: /page-transition.css */
@media (prefers-reduced-motion: no-preference) {

  @view-transition {
    navigation: auto;
  }

  ::view-transition-old(root) {
    animation: va-vt-out 0.18s cubic-bezier(0.4, 0, 1, 1) forwards;
    transform-origin: center top;
  }

  ::view-transition-new(root) {
    animation: va-vt-in 0.30s cubic-bezier(0.22, 1, 0.36, 1) forwards;
    transform-origin: center top;
  }

  @keyframes va-vt-out {
    to {
      opacity: 0;
      transform: translateY(-10px) scale(0.984);
    }
  }

  @keyframes va-vt-in {
    from {
      opacity: 0;
      transform: translateY(18px) scale(0.992);
    }
  }

  html {
    background: #FAF8F5;
  }

  body {
    animation: va-page-enter 0.32s cubic-bezier(0.22, 1, 0.36, 1) both;
    transform-origin: center top;
    transition:
      opacity 0.18s cubic-bezier(0.4, 0, 1, 1),
      transform 0.20s cubic-bezier(0.4, 0, 1, 1);
  }

  @keyframes va-page-enter {
    from {
      opacity: 0;
      transform: translateY(18px) scale(0.992);
    }
  }

  body.va-page-leaving {
    opacity: 0;
    transform: translateY(-10px) scale(0.984);
    pointer-events: none;
  }
}


/* VitaAvanza route bundle source: /vita-visual.css */
/*
 * vita-visual.css
 * VitaAvanza shared visual enhancement styles
 * Non-destructive — does NOT override page-level card/component styles.
 */

/* ── Root z-index stack ── */
:root {
  --z-orbs:       0;
  --z-content:    1;
  --z-nav:        100;
  --z-topline:    10000;
}

/* ── Ensure content sits above orbs ── */
body > *:not(#va-orbs):not(#va-topline):not(#site-nav):not(.va-nav-overlay):not(.va-nav-drawer) {
  position: relative;
  z-index: var(--z-content);
}

/* ── Scrollbar styling ── */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
  background: rgba(232, 82, 10, 0.2);
  border-radius: 999px;
}
::-webkit-scrollbar-thumb:hover {
  background: rgba(232, 82, 10, 0.4);
}

/* ── Selection color ── */
::selection {
  background: rgba(232, 82, 10, 0.15);
  color: #1A1A1A;
}


/* VitaAvanza route bundle source: /mobile-optimize.css */
/* ==========================================================================
   VitaAvanza — Mobile Optimization Layer
   Production-grade mobile fixes applied globally across all pages.
   ========================================================================== */

/* ── Base resets ── */
*, *::before, *::after { box-sizing: border-box; }
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
body {
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
}
img, video, iframe {
  max-width: 100%;
  height: auto;
}

/* ── iOS safe area support ── */
@supports (padding: env(safe-area-inset-bottom)) {
  .va-nav-drawer {
    padding-bottom: env(safe-area-inset-bottom);
  }
  #site-nav {
    padding-top: env(safe-area-inset-top);
  }
}

/* ── Touch targets — minimum 44x44px ── */
@media (max-width: 767px) {
  /* Ensure all interactive pill/tag elements have adequate tap height */
  a[class*="rounded-full"],
  button[class*="rounded-full"] {
    min-height: 2.75rem;
  }
}

/* ── Typography floor — ensure readability ── */
@media (max-width: 767px) {
  /* Hero headings scale */
  h1[class*="text-[3"],
  h1[class*="text-[4"],
  h1[class*="text-[5"],
  h1[class*="text-[6"],
  h1[class*="text-[7"] {
    font-size: clamp(2rem, 8vw, 4.5rem) !important;
    line-height: 1.05 !important;
  }

  /* Section headings */
  h2[class*="text-4xl"],
  h2[class*="text-5xl"],
  h3[class*="text-4xl"],
  h3[class*="text-5xl"],
  h3[class*="text-6xl"] {
    font-size: clamp(1.75rem, 7vw, 3rem) !important;
    line-height: 1.1 !important;
  }

  /* Body text minimum */
  p, li, span:not([class*="text-["]):not([class*="tracking-"]) {
    font-size: max(var(--tw-font-size, inherit), 0.875rem);
  }
}

/* ── Layout collapse — grids to single column ── */
@media (max-width: 767px) {
  /* Force multi-column grids to single column */
  .grid[class*="sm:grid-cols-2"][class*="lg:grid-cols-3"],
  .grid[class*="sm:grid-cols-2"][class*="lg:grid-cols-4"],
  .grid[class*="sm:grid-cols-2"][class*="xl:grid-cols-4"] {
    grid-template-columns: 1fr !important;
  }

  /* Stats row — 2x2 on small phones */
  .grid[class*="sm:grid-cols-2"]:not([class*="lg:grid-cols-3"]):not([class*="lg:grid-cols-4"]):not([class*="xl:grid-cols-4"]) {
    grid-template-columns: repeat(2, 1fr);
  }

  /* Side-by-side hero/feature layouts stack */
  .grid[class*="lg:grid-cols-2"],
  .grid[class*="lg:grid-cols-["] {
    grid-template-columns: 1fr !important;
  }

  /* Recognition strip wraps naturally */
  section[class*="py-5"] > div[class*="flex-wrap"] {
    gap: 0.5rem;
    justify-content: center;
  }

  /* Full-width CTAs on small phones */
  a[class*="px-8"][class*="py-4"],
  a[class*="magnetic-btn"] {
    width: 100%;
    text-align: center;
    justify-content: center;
  }
}

/* ── Small phone specific (< 480px) ── */
@media (max-width: 479px) {
  /* CTA buttons full width */
  .flex[class*="sm:flex-row"] {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .flex[class*="sm:flex-row"] > a,
  .flex[class*="sm:flex-row"] > button {
    width: 100%;
  }

  /* Reduce side padding */
  .max-w-7xl {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }

  /* Glass panels need adequate padding */
  .glass-panel {
    padding: 1.25rem !important;
  }

  /* Founder card image smaller on tiny screens */
  .founder-card .w-44 {
    width: 9rem !important;
    height: 9rem !important;
  }
}

/* ── Table responsiveness ── */
@media (max-width: 767px) {
  table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

/* ── Touch devices — persistent hover states ── */
@media (hover: none) {
  .glass-panel {
    transform: none !important;
  }

  .va-site-nav-link::before,
  .va-site-nav-link::after {
    display: none;
  }
}

/* ── Performance — reduce motion ── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ── Canvas touch interaction ── */
canvas {
  touch-action: pan-y;
}

/* ── Prevent iOS zoom on form focus ── */
@media (max-width: 767px) {
  input[type="text"],
  input[type="email"],
  input[type="tel"],
  input[type="url"],
  input[type="search"],
  input[type="password"],
  input[type="number"],
  textarea,
  select {
    font-size: 16px !important;
  }
}

/* ── Cookie banner mobile constraints ── */
@media (max-width: 767px) {
  [data-cookie-banner],
  .cookie-banner {
    max-height: 40vh;
    overflow-y: auto;
  }
}

/* ── Footer mobile stacking ── */
@media (max-width: 767px) {
  .va-footer-grid {
    grid-template-columns: 1fr !important;
  }
}

/* ── Hero mobile padding reduction ── */
@media (max-width: 767px) {
  header[class*="pt-40"],
  header[class*="pt-44"] {
    padding-top: 7rem !important;
    padding-bottom: 2rem !important;
  }

  header[class*="min-h-[90vh]"],
  header[class*="min-h-screen"] {
    min-height: 80vh !important;
  }
}

/* ── Models page stats grid — 2x2 on mobile ── */
@media (max-width: 767px) {
  .model-stats[class*="grid-cols-4"] {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 1rem !important;
  }

  .model-stats[class*="grid-cols-3"],
  div[class*="grid-cols-3"][class*="mt-8"]:not([class*="md:"]):not([class*="lg:"]) {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

/* ── Model cards — stack on mobile ── */
@media (max-width: 767px) {
  .grid.grid-cols-1.lg\:grid-cols-2[class*="gap-6"] {
    gap: 2rem !important;
  }
}

/* ── Pricing cards equal height on mobile ── */
@media (max-width: 767px) {
  .grid.grid-cols-1.lg\:grid-cols-3 {
    gap: 1.5rem !important;
  }
}

/* ── DVI dimension cards ── */
@media (max-width: 479px) {
  .grid.grid-cols-1.md\:grid-cols-2[class*="gap-5"] {
    gap: 1rem !important;
  }
}

/* ── Team grid — single column on mobile ── */
@media (max-width: 767px) {
  .grid[class*="md:grid-cols-2"][class*="lg:grid-cols-3"] {
    grid-template-columns: 1fr !important;
  }
}

/* ── Nav bar overflow prevention ── */
@media (max-width: 767px) {
  nav .grid-cols-\[minmax\(0\,1fr\)_auto_minmax\(0\,1fr\)\] {
    gap: 0.25rem !important;
  }

  nav .whitespace-nowrap {
    font-size: 12px !important;
    padding: 0.4rem 0.75rem !important;
  }
}

/* ── Recognition strip scroll on small screens ── */
@media (max-width: 479px) {
  section[class*="py-5"] > div[class*="flex-wrap"] {
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    padding-bottom: 0.5rem;
  }

  section[class*="py-5"] > div[class*="flex-wrap"] > a,
  section[class*="py-5"] > div[class*="flex-wrap"] > span {
    flex-shrink: 0;
    scroll-snap-align: start;
  }
}

/* ── Contact form mobile padding ── */
@media (max-width: 767px) {
  form[class*="glass-panel"] {
    padding: 1.5rem !important;
  }
}

/* ── About page timeline vertical on mobile ── */
@media (max-width: 767px) {
  .grid[class*="lg:grid-cols-[1fr_1.05fr]"],
  .grid[class*="lg:grid-cols-[1.2fr_1fr]"] {
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
  }
}

/* ── Spec bars full width on mobile ── */
@media (max-width: 767px) {
  .spec-bar {
    width: 100% !important;
  }
}

/* ── Organizations stats grid ── */
@media (max-width: 479px) {
  .grid[class*="grid-cols-2"][class*="lg:grid-cols-4"] {
    grid-template-columns: 1fr !important;
    gap: 0.75rem !important;
  }
}

/* ── Prevent horizontal scroll from absolute elements ── */
@media (max-width: 767px) {
  .orb1, .orb2, .orb3 {
    display: none !important;
  }
}

/* ── Landscape phone optimization ── */
@media (max-height: 500px) and (orientation: landscape) {
  header[class*="min-h-[90vh]"],
  header[class*="min-h-screen"] {
    min-height: auto !important;
    padding-top: 5rem !important;
    padding-bottom: 2rem !important;
  }
}

/* ── Print: hide non-essential elements ── */
@media print {
  #site-nav, canvas, .va-nav-drawer, .va-nav-overlay {
    display: none !important;
  }
}

