/* Layout System */

body {
  background-color: var(--color-white);
  overflow-x: hidden;
}

/* WebGL Canvas Background */
#webgl-canvas {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: var(--z-canvas);
  pointer-events: none;
  transition: opacity 0.3s ease-out;
}

/* 3D Grid Canvas - Replaces video background */
#hero-3d-grid {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  z-index: var(--z-video);
  pointer-events: none;
  overflow: hidden;
  /* iOS Safari canvas rendering fixes */
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  will-change: transform;
}

/* WebGL fallback gradient */
.hero-3d-grid-fallback {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(180deg,
    var(--color-dark) 0%,
    #1a1a1a 50%,
    var(--color-dark) 100%);
  z-index: var(--z-video);
}

/* Content Wrapper */
.content-wrapper {
  position: relative;
  /* z-index removed to allow hero-3d-grid canvas (z-index: -1) to be visible */
}

/* Container */
.container {
  width: 100%;
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 var(--margin-mobile);
}

@media (min-width: 768px) {
  .container {
    padding: 0 var(--margin-tablet);
  }
}

@media (min-width: 1200px) {
  .container {
    padding: 0 var(--margin-tablet);
  }
}

/* Section Spacing */
section {
  padding: var(--spacing-2xl) 0;
}

@media (min-width: 768px) {
  section {
    padding: var(--spacing-3xl) 0;
  }
}

/* Header */
header {
  position: relative;
  z-index: var(--z-header);
  padding: var(--spacing-lg) 0;
}

.header-logo {
  max-width: 200px;
}

@media (min-width: 768px) {
  .header-logo {
    max-width: 250px;
  }
}

/* Hero Section */
.hero {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 0px 0;
}

/* Remove right padding on mobile for hero container */
.hero .container {
  padding-right: 0;
}

@media (min-width: 768px) {
  .hero .container {
    padding-right: var(--margin-tablet);
  }
}

.hero-text-container {
  margin-bottom: var(--spacing-lg);
  position: relative;
  left: 0;
}

/* GRID Clipping Container */
.hero-grid-clip {
  overflow: hidden;
  height: 124px;
  position: relative;
  display: block;
  margin-bottom: 16px;
}

/* WORK Clipping Container */
.hero-work-clip {
  overflow: hidden;
  height: 140px;
  position: relative;
  display: block;
  margin-bottom: var(--spacing-md);
}

/* GRID SVG */
.hero-grid {
  width: 700px;
  height: 170px;
  min-width: 700px;
  max-width: 700px;
  min-height: 170px;
  max-height: 170px;
  will-change: transform, opacity;
  display: block;
  margin-left: -8px;
  transform: translateY(calc(var(--grid-offset, 0px) + var(--grid-intro-offset, 0px)));
  position: relative;
  top: 0;
}

/* WORK SVG */
.hero-work {
  width: 930px;
  height: 175px;
  min-width: 720px;
  max-width: 720px;
  min-height: 175px;
  max-height: 175px;
  will-change: transform, opacity;
  display: block;
  transform: translateY(calc(var(--work-offset, 0px) + var(--work-intro-offset, 0px)));
  position: relative;
  top: -17px;
}

.hero-description {
  max-width: 780px;
  margin-bottom: var(--spacing-lg);
  will-change: transform, opacity;
}

/* Services Section */
.services {
  padding: var(--spacing-3xl) 0;
  position: relative;
}

.services-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--spacing-md);
}

@media (min-width: 768px) {
  .services-grid {
    grid-template-columns: 1fr;
    gap: var(--spacing-lg);
  }
}

@media (min-width: 1200px) {
  .services-grid {
    gap: var(--spacing-xl);
  }
}

/* Features Section */
.features {
  padding: 0;
  margin: 0;
}

.features-wrapper {
  background-image: url('../images/coffee-comp1.png');
  background-size: cover; /* Mobile: use cover for better fill */
  background-position: center center;
  background-repeat: no-repeat;
  background-attachment: scroll;
  padding: var(--spacing-2xl) 0;
  position: relative;
  width: 100%;
  will-change: background-position, background-size;
  transition: background-position 0.05s linear, background-size 0.3s ease-out;
}

/* Dark overlay for better text readability */
.features-wrapper::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: 0;
}

.features-wrapper .container {
  position: relative;
  z-index: 1;
}

.features-wrapper .section-title {
  font-size: 40px;
  margin-bottom: 40px;
  color: #E9ECE7;
}

@media (min-width: 768px) {
  .features-wrapper {
    padding: var(--spacing-3xl) 0;
    background-size: calc(100% * var(--bg-scale, 1.2)); /* Desktop: use scale animation */
  }

  .features-wrapper .section-title {
    margin-bottom: 64px;
  }
}

.features-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--spacing-xl);
}

@media (min-width: 768px) {
  .features-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-lg);
  }
}

/* Footer */
footer {
  background-color: var(--color-dark);
  color: var(--color-white);
  position: relative;
  z-index: var(--z-content);
  overflow: hidden;
}

.footer-content {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--spacing-xl);
  padding: var(--spacing-2xl) 0;
}

@media (min-width: 768px) {
  .footer-content {
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-3xl);
    padding: var(--spacing-3xl) 0;
  }
}

.footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding: var(--spacing-lg) 0;
  text-align: center;
  position: relative;
  z-index: 2;
}

.footer-logo-container {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: flex-end;
  pointer-events: none;
  z-index: 1;
  opacity: 0;
  transform: translateX(-50%) translateY(100px);
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.footer-logo-container.animate {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

.footer-logo {
  width: 100%;
  max-width: 1400px;
  height: auto;
  display: block;
}

/* Utility Classes */
.flex {
  display: flex;
}

.flex-column {
  flex-direction: column;
}

.flex-center {
  justify-content: center;
  align-items: center;
}

.gap-sm {
  gap: var(--spacing-sm);
}

.gap-md {
  gap: var(--spacing-md);
}

.gap-lg {
  gap: var(--spacing-lg);
}

.mb-sm {
  margin-bottom: var(--spacing-sm);
}

.mb-md {
  margin-bottom: var(--spacing-md);
}

.mb-lg {
  margin-bottom: var(--spacing-lg);
}

.mb-xl {
  margin-bottom: var(--spacing-xl);
}
