/* GSA homepage polish layer.
   Purpose: tighten vertical rhythm, improve supporting-text readability,
   normalize media proportions, and keep responsive behavior consistent.
   This file intentionally contains presentation-only overrides. */

:root {
  --gsa-section-space: clamp(3.25rem, 5.2vw, 5.75rem);
  --gsa-section-space-tight: clamp(2.75rem, 4.5vw, 4.75rem);
  --gsa-copy-size: clamp(1.02rem, 1.15vw, 1.12rem);
  --gsa-copy-line: 1.68;
  --gsa-card-radius: 1rem;
}

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

.editorial-heading {
  max-width: 46rem;
}

.editorial-heading h2 {
  font-size: clamp(2.15rem, 3.8vw, 3.6rem);
  line-height: 1.04;
}

.editorial-heading > p:last-child {
  max-width: 40rem;
  font-size: var(--gsa-copy-size);
  line-height: var(--gsa-copy-line);
}

.eyebrow {
  font-size: .72rem;
  letter-spacing: .16em;
}

.hero-section {
  min-height: auto;
  padding-block: clamp(3.5rem, 5.8vw, 5.75rem);
}

.hero-layout {
  gap: clamp(2.5rem, 5vw, 5rem);
}

.hero-copy {
  max-width: 40rem;
}

.hero-copy h1 {
  font-size: clamp(2.65rem, 4.7vw, 4.85rem);
  line-height: 1;
}

.hero-copy > p:last-of-type {
  margin-top: 1.25rem;
  font-size: clamp(1.02rem, 1.25vw, 1.14rem);
  line-height: 1.65;
}

.hero-actions {
  margin-top: 1.65rem;
}

.hero-media {
  min-height: clamp(23rem, 42vw, 33rem);
}

.hero-media::before,
.hero-media picture {
  border-radius: var(--gsa-card-radius);
}

.proposition-section .editorial-heading {
  max-width: 50rem;
}

.proposition-section .editorial-heading h2 {
  font-size: clamp(2.55rem, 4.8vw, 4.6rem);
}

.editorial-flow {
  margin-top: clamp(2rem, 3.5vw, 3rem);
}

.editorial-flow__node strong {
  font-size: .82rem;
}

.solution-features {
  gap: clamp(3.25rem, 5.5vw, 5rem);
  margin-top: clamp(2.5rem, 4vw, 3.75rem);
}

.solution-feature {
  gap: clamp(2rem, 4.5vw, 4.25rem);
}

.solution-feature__copy {
  max-width: 34rem;
}

.solution-feature__copy h3 {
  font-size: clamp(1.95rem, 3vw, 2.85rem);
}

.solution-feature__copy > span {
  font-size: var(--gsa-copy-size);
  line-height: var(--gsa-copy-line);
}

.solution-feature__copy li,
.odoo-spotlight__copy li {
  font-size: .76rem;
}

.solution-media {
  min-height: clamp(20rem, 34vw, 28rem);
  border-radius: var(--gsa-card-radius);
}

.solution-media picture {
  inset: .55rem;
}

.odoo-spotlight {
  padding-block: var(--gsa-section-space-tight);
}

.odoo-spotlight__layout {
  gap: clamp(2.5rem, 5vw, 5rem);
}

.odoo-spotlight__copy h2 {
  font-size: clamp(2.25rem, 4vw, 3.75rem);
}

.odoo-spotlight__copy > p:last-of-type {
  margin-top: 1.15rem;
  font-size: var(--gsa-copy-size);
  line-height: var(--gsa-copy-line);
}

.odoo-product {
  min-height: clamp(22rem, 38vw, 31rem);
}

.industry-mosaic {
  gap: clamp(1rem, 2vw, 1.6rem);
  margin-top: clamp(2.5rem, 4vw, 3.5rem);
}

.industry-tile {
  min-height: clamp(18rem, 28vw, 22rem);
  border-radius: var(--gsa-card-radius);
}

.industry-tile__copy {
  inset: auto 1.1rem 1.1rem;
}

.industry-tile__copy h3 {
  font-size: clamp(1.3rem, 2.1vw, 1.8rem);
}

.industry-tile__copy span {
  max-width: 30rem;
  font-size: .9rem;
  line-height: 1.5;
}

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

.process-flow {
  margin-top: clamp(2.5rem, 4vw, 3.5rem);
}

.process-flow li {
  padding-block: 1.25rem;
}

.process-flow h3 {
  font-size: clamp(1.15rem, 1.8vw, 1.45rem);
}

.process-flow p {
  font-size: .96rem;
  line-height: 1.6;
}

.support-strip {
  margin-top: 1.75rem;
}

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

.client-carousel {
  margin-top: clamp(2rem, 3.5vw, 3rem);
}

.client-carousel__controls {
  margin-bottom: 1rem;
}

.client-carousel__position {
  font-size: .8rem;
}

.client-carousel__track {
  gap: .8rem;
}

.client-logo {
  min-height: 7rem;
  border-radius: .8rem;
  padding: 1rem;
}

.client-logo img {
  max-width: 82%;
  max-height: 3.4rem;
  object-fit: contain;
}

.contact-section {
  padding-block: clamp(3.5rem, 5vw, 5.25rem);
}

.contact-layout {
  gap: clamp(2.5rem, 5vw, 5rem);
}

.contact-copy h2 {
  font-size: clamp(2.25rem, 4vw, 3.75rem);
}

.contact-copy > p {
  max-width: 38rem;
  font-size: var(--gsa-copy-size);
  line-height: var(--gsa-copy-line);
}

.footer-positioning,
.footer-contact {
  font-size: .92rem;
  line-height: 1.6;
}

@media (min-width: 64rem) {
  .hero-layout,
  .odoo-spotlight__layout {
    grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  }

  .solution-feature {
    grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
  }

  .solution-feature:nth-child(even) .solution-feature__copy {
    order: 2;
  }

  .solution-feature:nth-child(even) .solution-media {
    order: 1;
  }

  .industry-mosaic {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .process-flow {
    gap: 1rem;
  }
}

@media (max-width: 63.999rem) {
  .editorial-section,
  .odoo-spotlight,
  .process-section,
  .clients-section {
    padding-block: clamp(3rem, 7vw, 4.5rem);
  }

  .hero-media,
  .solution-media,
  .odoo-product {
    min-height: clamp(19rem, 60vw, 28rem);
  }

  .editorial-flow {
    width: 100%;
    grid-template-columns: 1fr;
    gap: .8rem;
  }

  .editorial-flow__arrow {
    width: 1.5rem;
    rotate: 90deg;
  }

  .industry-mosaic {
    margin-top: 2.25rem;
  }
}

@media (max-width: 47.999rem) {
  .hero-section {
    padding-block: 2.75rem 3.5rem;
  }

  .hero-layout {
    gap: 2rem;
  }

  .hero-copy h1 {
    font-size: clamp(2.35rem, 12vw, 3.6rem);
  }

  .hero-media {
    min-height: clamp(18rem, 92vw, 25rem);
  }

  .editorial-heading h2,
  .odoo-spotlight__copy h2,
  .contact-copy h2 {
    font-size: clamp(2rem, 10vw, 2.8rem);
  }

  .solution-feature {
    gap: 1.5rem;
  }

  .solution-media,
  .odoo-product {
    min-height: 18rem;
  }

  .industry-tile {
    min-height: 18rem;
  }

  .client-logo {
    min-height: 6.4rem;
  }
}
