/* ==========================================================================
   INNOVANATEC — Layout: containers, sections, grids
   Mobile-first. Breakpoints: 480 / 768 / 1024 / 1280
   ========================================================================== */

.container {
  width: 100%;
  max-width: var(--maxw);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.container--narrow {
  max-width: 900px;
}

/* ---------- Sections ---------- */
.section {
  position: relative;
  padding-block: var(--section-y);
}

.section--tight {
  padding-block: clamp(40px, 6vw, 80px);
}

.section--alt {
  background: var(--ink-850);
}

.section--deep {
  background: var(--ink-950);
}

/* hairline top border that fades at the edges */
.section--hairline::before {
  content: "";
  position: absolute;
  inset-inline: 0;
  top: 0;
  height: 1px;
  background: var(--grad-line);
}

/* ---------- Section header ---------- */
.section-head {
  display: grid;
  gap: var(--sp-4);
  margin-bottom: clamp(32px, 5vw, 64px);
}

.section-head p {
  max-width: 62ch;
  font-size: var(--fs-body-lg);
}

@media (min-width: 1024px) {
  .section-head--split {
    grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr);
    align-items: end;
    gap: var(--sp-7);
  }
  .section-head--split .section-head__text {
    grid-column: 1;
  }
}

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-3);
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  letter-spacing: var(--ls-eyebrow);
  text-transform: uppercase;
  color: var(--brand-orange);
}

.eyebrow::before {
  content: "";
  width: 7px;
  height: 7px;
  background: var(--brand-orange);
  transform: rotate(45deg);
  flex: none;
}

.eyebrow--blue {
  color: var(--brand-blue-300);
}
.eyebrow--blue::before {
  background: var(--brand-blue-300);
}

/* ---------- Generic auto grids ---------- */
.grid {
  display: grid;
  gap: var(--sp-5);
}

.grid--2 {
  grid-template-columns: 1fr;
}
.grid--3,
.grid--4 {
  grid-template-columns: 1fr;
}

@media (min-width: 480px) {
  .grid--4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 768px) {
  .grid--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .grid--3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .grid {
    gap: var(--sp-6);
  }
}

@media (min-width: 1024px) {
  .grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .grid--4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* ---------- Hero ---------- */
.hero {
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: center;
  min-height: min(92svh, 900px);
  padding-block: calc(var(--header-h) + var(--sp-8)) var(--sp-8);
  overflow: hidden;
  background: var(--ink-950);
}

.hero__bg {
  position: absolute;
  inset: 0;
  z-index: var(--z-bg);
  pointer-events: none;
}

.hero__mesh {
  position: absolute;
  inset: -10%;
  background: var(--grad-mesh);
  filter: blur(10px);
}

.hero__grid-svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0.5;
}

/* mask so the pattern fades toward the bottom/edges */
.hero__fade {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, transparent 40%, var(--ink-900) 100%);
}

.hero__inner {
  position: relative;
  z-index: var(--z-content);
  display: grid;
  gap: var(--sp-7);
  width: 100%;
}

.hero__copy {
  max-width: 46rem;
}

.hero h1 {
  font-size: var(--fs-display);
  margin-block: var(--sp-4) var(--sp-5);
}

.hero__sub {
  max-width: 56ch;
  font-size: var(--fs-body-lg);
}

.hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-4);
  margin-top: var(--sp-6);
}

@media (min-width: 1024px) {
  .hero__inner {
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
    align-items: center;
    gap: var(--sp-8);
  }
}

/* ---------- Page hero (inner pages) ---------- */
.page-hero {
  position: relative;
  isolation: isolate;
  padding-block: calc(var(--header-h) + var(--sp-7)) var(--sp-7);
  background: var(--ink-950);
  overflow: hidden;
}

/* ---------- Footer ---------- */
.footer {
  position: relative;
  background: var(--ink-950);
  padding-block: var(--sp-8) var(--sp-5);
  border-top: 1px solid var(--ink-700);
}

.footer__grid {
  display: grid;
  gap: var(--sp-7);
}

@media (min-width: 640px) {
  .footer__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .footer__grid {
    grid-template-columns: 1.4fr 1fr 1fr 1.1fr;
    gap: var(--sp-6);
  }
}
