/* Reusable visual modifiers for fast prospect-specific design direction.
   Loaded after preset CSS so these traits can tune any base theme. */

/* Density */
.density-compact .site-section > .site-wrap {
  padding-top: clamp(44px, 5vw, 72px);
  padding-bottom: clamp(44px, 5vw, 72px);
}
.density-compact .section-head {
  margin-bottom: clamp(28px, 3vw, 42px);
}
.density-compact .hero-copy {
  padding-top: clamp(56px, 7vw, 88px);
  padding-bottom: clamp(56px, 7vw, 88px);
}
.density-compact .service-card {
  min-height: 220px;
}
.density-compact .split-grid,
.density-compact .quote-layout {
  gap: clamp(28px, 4vw, 56px);
}

.density-balanced .site-section > .site-wrap {
  padding-top: clamp(60px, 7vw, 96px);
  padding-bottom: clamp(60px, 7vw, 96px);
}

.density-spacious .site-section > .site-wrap {
  padding-top: clamp(84px, 10vw, 132px);
  padding-bottom: clamp(84px, 10vw, 132px);
}
.density-spacious .section-head {
  margin-bottom: clamp(48px, 6vw, 84px);
}
.density-spacious .split-grid,
.density-spacious .quote-layout {
  gap: clamp(54px, 8vw, 110px);
}

/* Corners */
.corners-sharp .button,
.corners-sharp .header-cta,
.corners-sharp .service-card,
.corners-sharp .quote-card,
.corners-sharp .quote-form,
.corners-sharp .faq-item,
.corners-sharp .split-media,
.corners-sharp .gallery-item,
.corners-sharp .team-card,
.corners-sharp .location-card,
.corners-sharp .process-step {
  border-radius: 0 !important;
}

.corners-soft .button,
.corners-soft .header-cta {
  border-radius: 10px;
}
.corners-soft .service-card,
.corners-soft .quote-card,
.corners-soft .quote-form,
.corners-soft .faq-item,
.corners-soft .split-media,
.corners-soft .gallery-item,
.corners-soft .team-card,
.corners-soft .location-card,
.corners-soft .process-step {
  border-radius: 16px;
}

.corners-round .button,
.corners-round .header-cta {
  border-radius: 999px;
}
.corners-round .service-card,
.corners-round .quote-card,
.corners-round .quote-form,
.corners-round .faq-item,
.corners-round .split-media,
.corners-round .gallery-item,
.corners-round .team-card,
.corners-round .location-card,
.corners-round .process-step {
  border-radius: 28px;
}

/* Typography */
.type-modern {
  --profile-heading-font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.type-modern h1,
.type-modern h2,
.type-modern h3,
.type-modern .brand-word {
  font-family: var(--profile-heading-font);
  letter-spacing: -.035em;
}

.type-editorial h1,
.type-editorial h2,
.type-editorial .brand-word {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
  letter-spacing: -.045em;
}
.type-editorial h3 {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
  letter-spacing: -.025em;
}

.type-industrial h1,
.type-industrial h2,
.type-industrial h3,
.type-industrial .brand-word {
  font-family: Arial, Helvetica, sans-serif;
  font-weight: 800;
  letter-spacing: -.04em;
}
.type-industrial .eyebrow,
.type-industrial .nav-link,
.type-industrial .hero-highlights span {
  letter-spacing: .11em;
  text-transform: uppercase;
}

/* Image emphasis */
.imagery-low .gallery-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.imagery-low .gallery-item {
  min-height: 220px;
}
.imagery-low .split-media {
  min-height: 360px;
}

.imagery-medium .split-media {
  min-height: 460px;
}

.imagery-high .hero-media {
  min-height: 640px;
}
.imagery-high .split-media {
  min-height: 560px;
}
.imagery-high .gallery-grid {
  gap: 10px;
}
.imagery-high .gallery-item:first-child {
  grid-row: span 2;
}

/* Compact + image-heavy is a common sales-demo combination */
.density-compact.imagery-high .split-media {
  min-height: 460px;
}

/* Mobile safeguards */
@media (max-width: 900px) {
  .density-spacious .site-section > .site-wrap {
    padding-top: 64px;
    padding-bottom: 64px;
  }

  .imagery-high .hero-media,
  .imagery-high .split-media {
    min-height: 420px;
  }
}

@media (max-width: 700px) {
  .density-compact .site-section > .site-wrap,
  .density-balanced .site-section > .site-wrap,
  .density-spacious .site-section > .site-wrap {
    padding-top: 42px;
    padding-bottom: 42px;
  }

  .imagery-low .gallery-grid,
  .imagery-medium .gallery-grid,
  .imagery-high .gallery-grid {
    grid-template-columns: 1fr;
  }

  .imagery-low .gallery-item,
  .imagery-medium .gallery-item,
  .imagery-high .gallery-item,
  .imagery-high .gallery-item:first-child {
    grid-row: auto;
  }
}
