/* innovae.com.au. One stylesheet for every page.
   Brand: House Indigo #1A1A2E, Violet #7B5CFA, Teal #16D9C4, Mist #F5F4FB; Poppins.
   Violet and teal are too light for body text on white, so text uses the deeper
   --violet-ink / --teal-ink; the pure tones are kept for marks and fills. */

@font-face {
  font-family: "Poppins";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/poppins-400.woff2") format("woff2");
}
@font-face {
  font-family: "Poppins";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/poppins-500.woff2") format("woff2");
}

:root {
  --indigo: #1A1A2E;
  --violet: #7B5CFA;
  --teal: #16D9C4;
  --mist: #F5F4FB;

  --bg: #FFFFFF;
  --surface: #FFFFFF;
  --band: var(--mist);
  --text: var(--indigo);
  --muted: #4A4A63;
  --line: #E4E2F0;
  --violet-ink: #5236D8;
  --teal-ink: #0A6B61;
  --badge-live-bg: #DDF8F4;
  --badge-soon-bg: #ECE7FE;
  --shadow: 0 1px 2px rgba(26, 26, 46, .05), 0 8px 24px rgba(26, 26, 46, .06);
  --focus: #5236D8;

  color-scheme: light dark;
}

@media (prefers-color-scheme: dark) {
  :root {
    --bg: #1A1A2E;
    --surface: #23233B;
    --band: #141424;
    --text: #F5F4FB;
    --muted: #B9B6E8;
    --line: #34344F;
    --violet-ink: #B3A1FF;
    --teal-ink: #5EEAD9;
    --badge-live-bg: #11393A;
    --badge-soon-bg: #2E2756;
    --shadow: none;
    --focus: #B3A1FF;
  }
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  font-size: 1rem;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }

a { color: var(--violet-ink); text-underline-offset: .18em; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; border-radius: 4px; }

h1, h2, h3 { font-weight: 500; line-height: 1.2; letter-spacing: -.01em; margin: 0; }
h2 { font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2rem); margin-bottom: .5rem; }
p { margin: 0 0 1rem; }

.wrap { width: 100%; max-width: 1080px; margin: 0 auto; padding: 0 1.25rem; }
/* Narrow sections keep the page's left edge; only the line length shrinks. */
.narrow > * { max-width: 46rem; }

.vh {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

.skip {
  position: absolute; left: 1rem; top: -3rem; z-index: 10;
  background: var(--indigo); color: #fff; padding: .5rem 1rem; border-radius: 6px;
}
.skip:focus { top: 1rem; }

/* Header */
.site-header { padding: 1.5rem 0; }
.brand { display: inline-block; }
.brand img { width: 220px; height: auto; }

/* Hero */
.hero { padding: 3rem 0 4rem; }
.eyebrow {
  font-size: .8125rem; font-weight: 500; letter-spacing: .08em; text-transform: uppercase;
  color: var(--teal-ink); margin-bottom: 1rem;
}
.hero h1 { font-size: clamp(2.25rem, 1.6rem + 3.2vw, 4rem); }
.lead {
  font-size: clamp(1.125rem, 1rem + .6vw, 1.5rem);
  color: var(--violet-ink); margin: .75rem 0 1.5rem;
}
.hero-body { max-width: 40rem; color: var(--muted); font-size: 1.0625rem; }
.blades { display: flex; gap: 6px; margin-top: 2.25rem; }
.blades span { height: 6px; width: 48px; border-radius: 3px; background: var(--indigo); }
.blades span:nth-child(2) { background: var(--violet); }
.blades span:nth-child(3) { background: var(--teal); }
@media (prefers-color-scheme: dark) { .blades span:first-child { background: #9A98B0; } }

/* Products */
.products { padding: 4rem 0; background: var(--band); }
.section-intro { color: var(--muted); margin-bottom: 2rem; }
.cards { display: grid; gap: 1.5rem; }
@media (min-width: 760px) { .cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.card {
  --accent: var(--violet);
  display: flex; flex-direction: column;
  background: var(--surface);
  border: 1px solid var(--line);
  border-top: 4px solid var(--accent);
  border-radius: 16px;
  padding: 1.5rem;
  box-shadow: var(--shadow);
}
.card-head { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.25rem; }
.card-icon { width: 64px; height: 64px; border-radius: 14px; flex: none; }
.card-name { font-size: 1.375rem; }
.badge {
  display: inline-block; margin: .375rem 0 0; padding: .125rem .625rem;
  border-radius: 999px; font-size: .8125rem; font-weight: 500; line-height: 1.6;
}
.badge--live { background: var(--badge-live-bg); color: var(--teal-ink); }
.badge--beta, .badge--coming-soon { background: var(--badge-soon-bg); color: var(--violet-ink); }
.card-oneliner { font-weight: 500; font-size: 1.0625rem; line-height: 1.45; }
.card-desc { color: var(--muted); }
.card-points { margin: 0 0 1.25rem; padding: 0; list-style: none; }
.card-points li { position: relative; padding-left: 1.5rem; margin-bottom: .5rem; }
.card-points li::before {
  content: ""; position: absolute; left: 0; top: .6em;
  width: .5rem; height: .5rem; border-radius: 2px; background: var(--teal);
}
.card-meta { font-size: .875rem; color: var(--muted); margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--line); }
.card-link {
  align-self: flex-start; display: inline-flex; gap: .375rem; align-items: center;
  font-weight: 500; padding: .625rem 1.125rem; border-radius: 10px;
  background: var(--indigo); color: #fff; text-decoration: none;
}
.card-link:hover { background: #2D2D4A; }
@media (prefers-color-scheme: dark) {
  .card-link { background: var(--mist); color: var(--indigo); }
  .card-link:hover { background: #fff; }
}

/* Generated from products.json by _build/build.py. Edit the data, not these lines. */
/* build:accents */
.card--contractual { --accent: #4F46E5; }
.card--home-inventory-wallet { --accent: #244C3B; }
/* /build:accents */

@media (prefers-color-scheme: dark) {
  /* Product accents are tuned for white cards; keep the bar visible on dark. */
  .card { border-top-color: color-mix(in srgb, var(--accent) 70%, #fff); }
}

/* How we build: the one dark band, in both themes. */
.approach { padding: 4.5rem 0; background: var(--indigo); color: var(--mist); }
.approach h2 { color: #fff; }
.approach p { color: #CFCDEB; font-size: 1.0625rem; }
.approach .blades { margin: 0 0 1.5rem; }
.approach .blades span:first-child { background: #9A98B0; }
@media (prefers-color-scheme: dark) { .approach { background: var(--band); } }

/* Contact */
.contact { padding: 4rem 0; }
.contact-email { font-size: clamp(1.25rem, 1rem + 1vw, 1.75rem); font-weight: 500; overflow-wrap: anywhere; }

/* Footer */
.site-footer { border-top: 1px solid var(--line); padding: 2rem 0 2.5rem; font-size: .875rem; color: var(--muted); }
.site-footer p { margin: 0 0 .5rem; }
.site-footer nav { display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; margin-bottom: .5rem; }
.site-footer a { color: var(--muted); }
.site-footer a:hover { color: var(--text); }

/* Legal pages */
.legal { padding: 1rem 0 4rem; }
.legal h1 { font-size: clamp(2rem, 1.6rem + 2vw, 2.75rem); margin-bottom: .5rem; }
.legal h2 { font-size: 1.25rem; margin: 2.25rem 0 .5rem; }
.legal .version { color: var(--muted); font-size: .9375rem; margin-bottom: 2rem; }
.legal ul { padding-left: 1.25rem; }
.legal li { margin-bottom: .375rem; }

@media (prefers-reduced-motion: no-preference) {
  .card-link, a { transition: background-color .15s ease, color .15s ease; }
}
