/**
 * css/layout.css
 * ─────────────────────────────────────────────────────────────────
 * Page structure: containers, section wrappers, hero shells, and
 * the CSS grid systems used across all pages.
 * ─────────────────────────────────────────────────────────────────
 */

/* ─── CONTAINERS ────────────────────────────────────────────────── */
.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 5vw;
}

.container--wide {
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 40px;
}

.container--narrow {
  max-width: 720px;
  margin: 0 auto;
  padding: 0 5vw;
}

/* ─── SECTIONS ──────────────────────────────────────────────────── */
.section {
  padding: 100px 5vw;
}

.section--sm {
  padding: 60px 5vw;
}

.section--dark {
  background: #0A0A0A;
  position: relative;
  overflow: hidden;
}

/* Faint dot texture so dark sections read as a surface, not a void */
.section--dark::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px);
  background-size: 28px 28px;
  -webkit-mask-image: radial-gradient(ellipse 70% 70% at 50% 50%, #000 20%, transparent 75%);
  mask-image: radial-gradient(ellipse 70% 70% at 50% 50%, #000 20%, transparent 75%);
  pointer-events: none;
}

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

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

/* Orange glow background decoration used in dark sections */
.section__glow {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 80%, var(--orange-glow) 0%, transparent 55%);
  pointer-events: none;
}

/* ─── HERO ──────────────────────────────────────────────────────── */
.hero {
  min-height: 100vh;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  text-align: center;
  padding: 72px 20px 20px; /* top offset = fixed navbar height */
}

.hero--short {
  min-height: 70vh;
}

/* Radial glow behind hero content — two drifting layers for depth */
.hero__glow {
  position: absolute;
  inset: 0;
  background: var(--bg);
  z-index: 0;
  overflow: hidden;
}

.hero__glow::before {
  content: '';
  position: absolute;
  inset: -20%;
  background:
    radial-gradient(ellipse 55% 45% at 50% 58%, var(--orange-glow) 0%, transparent 65%),
    radial-gradient(ellipse 35% 30% at 32% 38%, rgba(255, 122, 41, 0.10) 0%, transparent 70%);
  animation: auroraDrift 16s ease-in-out infinite;
  will-change: transform;
}

.hero__glow::after {
  content: '';
  position: absolute;
  inset: -20%;
  background: radial-gradient(ellipse 40% 35% at 68% 70%, rgba(255, 98, 0, 0.08) 0%, transparent 70%);
  animation: auroraDrift 22s ease-in-out infinite reverse;
  will-change: transform;
}

/* Subtle grid lines overlay — fades out toward the edges */
.hero__grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(var(--border) 1px, transparent 1px),
    linear-gradient(90deg, var(--border) 1px, transparent 1px);
  background-size: 80px 80px;
  opacity: 0.16;
  -webkit-mask-image: radial-gradient(ellipse 75% 65% at 50% 50%, #000 30%, transparent 80%);
  mask-image: radial-gradient(ellipse 75% 65% at 50% 50%, #000 30%, transparent 80%);
  pointer-events: none;
  z-index: 0;
}

.hero__content {
  position: relative;
  z-index: 1;
  max-width: 900px;
}

/* Scroll indicator at bottom of hero */
.hero__scroll {
  position: absolute;
  bottom: 36px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  z-index: 1;
}

.hero__scroll-label {
  font-family: var(--font-body);
  font-size: 11px;
  color: var(--text-muted);
  letter-spacing: 2px;
  text-transform: uppercase;
}

.hero__scroll-line {
  width: 1px;
  height: 40px;
  background: linear-gradient(var(--orange), transparent);
  animation: scrollDown 1.8s ease infinite;
}

/* ─── GRIDS ─────────────────────────────────────────────────────── */
/* 4-column grid (pillars, stats, influencer steps) */
.grid-4 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

/* 3-column grid (tool cards, tier cards, featured cards) */
.grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

/* 2-column equal grid (form rows) */
.grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

/* Asymmetric grid for form + sidebar layout */
.grid-form {
  display: grid;
  grid-template-columns: 1fr 1.7fr;
  gap: 56px;
  align-items: start;
}

/* About page: text-heavy left + facts right */
.grid-about {
  display: grid;
  grid-template-columns: 3fr 2fr;
  gap: 64px;
}

/* Footer: logo col + 3 link columns */
.grid-footer {
  display: grid;
  grid-template-columns: 2.5fr 1fr 1fr 1fr;
  gap: 40px;
}

/* Stats band: always 4 columns, collapses on mobile */
.grid-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  text-align: center;
}
