/* ================================
   SHARED SECTION / HERO / BOARD PATTERNS
   These building blocks were duplicated across project.css, department.css,
   innolab.css, support.css, join.css and departments-overview.css. They now
   live here once — structural + mobile changes happen in a single place.
   Per-page files keep only their unique bits (gradients, colours, grids).
   Load this BEFORE the page-specific stylesheet.
================================ */

/* ---- FULL-SCREEN HERO (image background) ---- */
.project-hero,
.dept-hero,
.inno-hero,
.sup-hero,
.join-hero,
.ov-hero {
  position: relative;
  height: 100vh;
  height: 100svh;
  min-height: 600px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
}

.project-hero__bg,
.dept-hero__bg,
.inno-hero__bg,
.sup-hero__bg,
.join-hero__bg,
.ov-hero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.project-hero__bg img,
.dept-hero__bg img,
.inno-hero__bg img,
.sup-hero__bg img,
.join-hero__bg img,
.ov-hero__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  background-color: var(--color-grey);
}

.inno-hero__bg::after,
.sup-hero__bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--gradient-hero-overlay);
}

.project-hero__content,
.dept-hero__content,
.inno-hero__content,
.sup-hero__content,
.join-hero__content,
.ov-hero__content {
  position: relative;
  z-index: 1;
  width: 100%;
  padding-inline: var(--space-lg);
  color: var(--color-white);
}

.project-hero__title,
.dept-hero__title,
.inno-hero__title,
.sup-hero__title,
.join-hero__title,
.ov-hero__title {
  font-size: var(--text-display-md);
  font-weight: 600;
  line-height: 1;
  margin-bottom: var(--space-sm);
}

.project-hero__tagline,
.dept-hero__tagline,
.inno-hero__tagline,
.sup-hero__tagline,
.join-hero__tagline,
.ov-hero__tagline {
  font-size: var(--text-lg);
  color: var(--color-white);
}

/* ---- CONTENT SECTION ---- */
.proj-section,
.dept-section,
.inno-section,
.sup-section,
.join-section,
.ov-section {
  min-height: 0;
  display: flex;
  align-items: center;
  padding-block: var(--space-lg);
  padding-inline: var(--space-lg);
}

.proj-section__inner,
.dept-section__inner,
.inno-section__inner,
.sup-section__inner,
.join-section__inner,
.ov-section__inner {
  width: 100%;
  max-width: var(--max-width-wide);
  margin-inline: auto;
}

/* section heading size (shared by the newer pages) */
.inno-section h2,
.sup-section h2,
.join-section h2,
.ov-section h2 {
  font-size: var(--text-5xl);
  font-weight: 600;
  line-height: 1.1;
}

/* ---- SHARED MOBILE ---- */
@media (max-width: 900px) {
  .proj-section,
  .dept-section,
  .inno-section,
  .sup-section,
  .join-section,
  .ov-section {
    padding-block: var(--space-md);   /* mobile section rhythm (matches home) */
    padding-inline: var(--space-md);
  }

  .project-hero__content,
  .dept-hero__content,
  .inno-hero__content,
  .sup-hero__content,
  .join-hero__content,
  .ov-hero__content {
    padding-inline: var(--space-md);
  }

  /* #2 — big section headings step down so they don't dominate small screens */
  .inno-section h2,
  .sup-section h2,
  .join-section h2,
  .ov-section h2 {
    font-size: var(--text-3xl);
  }
}
