/* Validas – mosaic backdrop + shells (paired with validas-mosaic-bg.js). */
:root {
  --vp-page-bg: #eef3f8;
  --vp-text: #1d2c3c;
  --vp-muted: #4f6278;
  --vp-line: #c8d4e3;
  --vp-card-bg: rgba(255, 255, 255, 0.9);
  --vp-accent: #0369a1;
  --vp-accent-soft-bg: rgba(56, 189, 248, 0.12);
  --vp-shadow-soft: 0 14px 34px rgba(43, 74, 105, 0.12);
  --vp-shell-max: 1040px;
  --vp-shell-wide: 1400px;
}

* {
  box-sizing: border-box;
}

body.vp-mosaic-layout {
  margin: 0;
  min-height: 100vh;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  color: var(--vp-text);
  background: var(--vp-page-bg);
  overflow-x: hidden;
}

body.vp-mosaic-layout.centered-fill {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem 1rem;
}

/* Fixed colour grid backdrop (matches sample mosaic pattern) */
#validas-mosaic.mosaic {
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  display: grid;
  grid-template-columns: repeat(24, 1fr);
  grid-template-rows: repeat(14, 1fr);
  gap: 0;
}

#validas-mosaic.mosaic i {
  display: block;
  border-radius: 0;
  opacity: 0.54;
  mix-blend-mode: multiply;
}

.vp-shell {
  position: relative;
  z-index: 0;
  max-width: var(--vp-shell-max);
  margin: 0 auto;
  padding: 2rem 1rem 2.25rem;
  width: 100%;
}

.vp-shell-wide {
  max-width: min(var(--vp-shell-wide), 100%);
}
