/* ==========================================================================
   SCHWAB Cargo Logistik — Layout System
   Industrial Premium Grid & Section Architecture
   ========================================================================== */

/* ===========================
   CONTAINER
   =========================== */

.container {
  max-inline-size: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-padding);
}


/* ===========================
   SECTIONS
   =========================== */

.section {
  padding-block: var(--space-section);
}

.section-dark {
  background: var(--color-primary);
  color: var(--color-text);
}

.section-light {
  background: var(--color-surface);
  color: var(--color-surface-text);
}

.section-accent {
  background: var(--color-accent);
  color: #fff;
}

.section-elevated {
  background: var(--color-bg-elevated);
}


/* ===========================
   HERO
   =========================== */

.hero {
  min-block-size: 100vh;
  min-block-size: 100dvh;
  display: flex;
  align-items: center;
  position: relative;
  overflow: hidden;
}

.hero--90 {
  min-block-size: 90vh;
  min-block-size: 90dvh;
}

.hero-bg {
  position: absolute;
  inset: 0;
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
  z-index: 0;
}

.hero-bg video,
.hero-bg img {
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
}

.hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(15, 15, 26, 0.7) 0%,
    rgba(26, 26, 46, 0.85) 60%,
    #1a1a2e 100%
  );
  z-index: 1;
}

.hero-content {
  position: relative;
  z-index: 2;
  max-inline-size: 800px;
  padding-inline: var(--container-padding);
}

.hero-title {
  font-size: var(--fs-hero);
  font-family: var(--font-display);
  font-weight: 800;
  line-height: var(--lh-tight);
  text-transform: uppercase;
  margin-block-end: var(--space-md);
}

.hero-subtitle {
  font-size: var(--fs-lead);
  color: var(--color-text-secondary);
  line-height: var(--lh-normal);
  margin-block-end: var(--space-lg);
  max-inline-size: 55ch;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-md);
}


/* ===========================
   BENTO GRID (12 Columns)
   =========================== */

.bento-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: var(--space-md);
}

.bento-1x1 {
  grid-column: span 3;
}

.bento-2x1 {
  grid-column: span 6;
}

.bento-3x1 {
  grid-column: span 9;
}

.bento-full {
  grid-column: span 12;
}

.bento-2x2 {
  grid-column: span 6;
  grid-row: span 2;
}

.bento-tall {
  grid-column: span 3;
  grid-row: span 2;
}

.bento-card {
  background: var(--color-bg-elevated);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-card);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  position: relative;
  transition:
    transform var(--transition-normal),
    box-shadow var(--transition-normal);
}

.bento-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-lg);
}

@media (max-width: 768px) {
  .bento-1x1,
  .bento-2x1,
  .bento-3x1,
  .bento-full,
  .bento-2x2,
  .bento-tall {
    grid-column: span 12;
  }

  .bento-2x2,
  .bento-tall {
    grid-row: span 1;
  }
}


/* ===========================
   ASYMMETRIC SECTION
   =========================== */

.asymmetric-section {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: var(--space-xl);
  align-items: center;
}

.asymmetric-section--reverse {
  grid-template-columns: 1.2fr 1fr;
}

.image-overflow {
  margin-inline-end: calc(var(--container-padding) * -1);
  border-radius: var(--radius-lg) 0 0 var(--radius-lg);
  overflow: hidden;
}

.asymmetric-section--reverse .image-overflow {
  margin-inline-start: calc(var(--container-padding) * -1);
  margin-inline-end: 0;
  border-radius: 0 var(--radius-lg) var(--radius-lg) 0;
}

@media (max-width: 768px) {
  .asymmetric-section,
  .asymmetric-section--reverse {
    grid-template-columns: 1fr;
  }

  .image-overflow,
  .asymmetric-section--reverse .image-overflow {
    margin-inline: 0;
    border-radius: var(--radius-lg);
  }
}


/* ===========================
   GRID UTILITIES
   =========================== */

.grid-2 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
  gap: var(--space-md);
}

.grid-3 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
  gap: var(--space-md);
}

.grid-4 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
  gap: var(--space-md);
}

.team-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
  gap: var(--space-lg);
}


/* ===========================
   FOOTER
   =========================== */

.footer {
  background: var(--color-primary-dark);
  padding-block: var(--space-xl) var(--space-lg);
  border-block-start: 1px solid var(--color-border);
}

.footer-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
  gap: var(--space-lg);
  margin-block-end: var(--space-xl);
}

.footer-col-title {
  font-family: var(--font-display);
  font-size: var(--fs-h4);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  margin-block-end: var(--space-md);
  color: var(--color-text);
}

.footer-col a {
  display: block;
  color: var(--color-text-muted);
  font-size: var(--fs-sm);
  padding-block: var(--space-xs);
  transition: color var(--transition-fast);
}

.footer-col a:hover {
  color: var(--color-accent-light);
}

.footer-legal {
  padding-block-start: var(--space-md);
  border-block-start: 1px solid var(--color-border);
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-md);
  font-size: var(--fs-xs);
  color: var(--color-text-muted);
}

.footer-legal-links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-md);
}

.footer-legal-links a {
  color: var(--color-text-muted);
  transition: color var(--transition-fast);
}

.footer-legal-links a:hover {
  color: var(--color-accent-light);
}
