@layer components {

.hero {
  min-height: 60vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 6rem 1rem 4rem;
}

.hero.hero-bg {
  min-height: 40vh;

  background:
    linear-gradient(to bottom, rgba(255,255,255,0.65), rgba(244,239,230,0.92)),
    url("../img/moradores_cover.png");

  background-size: cover;
  background-position: center;
}

.hero h1 {
  text-transform: uppercase;
  letter-spacing: 4px;

  font-size: clamp(2.2rem, 4vw, 3.2rem);
  line-height: 1.2;

  color: var(--text-soft);
  margin-bottom: 1rem;

  text-shadow: 0 2px 10px rgba(0,0,0,0.15);
}

.hero h1::first-letter {
  font-size: 1.25em;
  letter-spacing: 5px;
}

.hero h1::after {
  content: "";
  display: block;
  width: 180px;
  height: 2px;
  margin: 1rem auto 1.4rem;

  background: linear-gradient(
    90deg,
    transparent,
    var(--warm),
    var(--accent),
    transparent
  );
}

.hero p {
  max-width: 640px;
  margin: 0 auto;

  font-size: 1.05rem;
  line-height: 1.7;

  color: var(--text-soft);

  text-shadow: 0 1px 6px rgba(0,0,0,0.12);
}

.section-title {
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 3px;
  padding-top: 2.5rem;
  margin-bottom: 1.5rem;
  font-size: 1.1rem;
}

.section-title::after {
  content: "";
  display: block;
  width: 140px;
  height: 2px;
  margin: 0.9rem auto 1.2rem;

  background: linear-gradient(
    90deg,
    transparent,
    var(--warm),
    var(--accent),
    transparent
  );
}

.controls {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}

.search {
  width: 100%;
  max-width: 420px;

  padding: 0.65rem 1rem;
  border-radius: 999px;

  border: 1px solid var(--border);
  background: rgba(255,255,255,0.85);

  color: var(--text);
}

.filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  justify-content: center;
  margin-top: 1rem;
}

.filter-btn {
  padding: 0.45rem 0.85rem;
  border-radius: 999px;

  border: 1px solid var(--border);
  background: rgba(255,255,255,0.6);

  color: var(--text);
  cursor: pointer;

  transition: 200ms ease;
}

.filter-btn:hover {
  color: var(--warm);
  border-color: var(--warm);
  background: rgba(255,255,255,0.85);
}

.filter-btn.active {
  background: var(--accent);
  color: #fff;
  border-color: rgba(196,90,90,0.35);
}

.about-text {
  max-width: 720px;
  margin: 0 auto 1.5rem;

  font-size: 1rem;
  line-height: 1.75;

  color: var(--text-soft);
  text-align: center;

  padding: 0 1rem;
}

.about-text.lead {
  font-size: 1.1rem;
  line-height: 1.85;
  color: var(--warm);
}

.about-text + .about-text {
  margin-top: 0.75rem;
}

.name {
  font-size: 1.25rem;
}

}