/* ==========================================================
   INTRO — "Nascemos dentro do universo das agências"
   ========================================================== */

.intro {
  position: relative;
  width: 100%;
  background-image: url(../img/intro_bg.jpg);
  background-repeat: no-repeat;
  background-position: center top;
  background-size: auto;
  background-attachment: scroll;
  padding: 100px 0 44px;
}
/* Em telas menores, o fundo vira uma camada com opacidade reduzida */
.intro::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url(../img/intro_bg.jpg);
  background-repeat: no-repeat;
  background-position: -250px;
  background-size: cover;
  opacity: 0;
  pointer-events: none;
}
.intro__grid { position: relative; z-index: 1; }
.intro__grid {
  display: grid;
  grid-template-columns: 478px minmax(0, 1fr);
  gap: 60px;
  align-items: start;
}
.intro__img {
  margin-left: 130px;
  width: 478px;
  height: 478px;
  max-width: 100%;
  object-fit: cover;
  -webkit-border-radius: 478px;
  -moz-border-radius: 478px;
  border-radius: 478px;
  box-shadow: 0 25px 50px rgba(107, 78, 193, .18);
}
.intro__texto {
  padding-top: 87px;
  max-width: 485px;
  justify-self: end;
}
.intro__titulo {
  font-size: clamp(26px, 2.2vw + 14px, 40px);
  font-weight: 700;
  line-height: 1.2;
  color: #6b4ec1;
  margin-bottom: 30px;
  text-wrap: pretty;
}
.intro__p {
  font-size: clamp(16px, 0.4vw + 14px, 18px);
  font-weight: 400;
  line-height: 1.3;
  color: #2c2c2c;
  margin-bottom: 26px;
}
.intro__p strong { font-weight: 600; }
.intro__texto .cta { margin-top: 14px; }

@media (max-width: 1200px) {
  .intro__grid { grid-template-columns: 400px minmax(0, 1fr); gap: 40px; }
  .intro__img { width: 400px; height: 400px; margin-left: 40px; }
  .intro__texto { padding-top: 40px; }
}
@media (max-width: 1024px) {
  .intro__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 32px; align-items: center; }
  .intro__img { width: 100%; height: auto; aspect-ratio: 1; margin-left: 0; }
  .intro__texto { padding-top: 0; max-width: none; }
}
@media (max-width: 900px) {
  .intro { padding: 70px 0 40px; background-image: none; }
  .intro::before { opacity: .8; }
  .intro__grid { grid-template-columns: 1fr; gap: 40px; }
  .intro__img { width: min(320px, 70vw); margin: 0 auto; }
  .intro__texto { max-width: 560px; justify-self: center; text-align: center; }
  .intro__p { text-wrap: pretty; }
}
@media (max-width: 480px) {
  .intro { padding: 70px 0 60px; }
  .intro::before { opacity: .1; }
  .intro__img { width: min(240px, 65vw); }
}
