/* =========================================================
   SERVIÇOS — diretório geral
   ========================================================= */
.services-page-body {
  background:
    radial-gradient(circle at 12% 18%, rgba(201,239,252,.34), transparent 34%),
    radial-gradient(circle at 88% 72%, rgba(228,244,211,.24), transparent 34%),
    #fbfdfe;
}

.services-directory {
  min-height: 70vh;
  /* A navbar é sobreposta ao conteúdo; reservar o espaço dela. */
  padding: 150px 0 82px;
}

.services-directory .container {
  width: min(100% - 40px, 1320px);
  max-width: 1320px;
}

.services-directory-intro {
  padding-bottom: 28px;
}

.services-directory-heading {
  margin-bottom: 28px;
}

.services-directory-kicker {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 8px;
  color: #0f6a4c;
  font: 800 .72rem/1 "Montserrat",sans-serif;
  letter-spacing: .14em;
}

.services-directory-kicker::before {
  content: "";
  width: 40px;
  height: 3px;
  border-radius: 999px;
  background: #15875e;
}

.services-directory-heading h1 {
  margin: 0 0 8px;
  color: #12335c;
  font: 800 clamp(2.4rem,4vw,4rem)/1.02 "Montserrat",sans-serif;
}

.services-directory-heading p {
  margin: 0;
  max-width: 780px;
  color: #55728d;
  font: 1.02rem/1.55 "Montserrat",sans-serif;
}

.services-toolbar {
  display: grid;
  gap: 14px;
}

.services-search {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
}

.services-search svg {
  position: absolute;
  left: 18px;
  width: 20px;
  height: 20px;
  fill: none;
  stroke: #23689a;
  stroke-width: 1.7;
  pointer-events: none;
}

.services-search input {
  width: 100%;
  height: 52px;
  padding: 0 18px 0 50px;
  border: 1px solid #ccdde8;
  border-radius: 10px;
  background: #fff;
  color: #173656;
  outline: none;
  font: .94rem "Montserrat",sans-serif;
  box-shadow: 0 7px 18px rgba(22,70,99,.04);
  transition: border-color .18s ease, box-shadow .18s ease;
}

.services-search input:focus {
  border-color: #76a9c9;
  box-shadow: 0 0 0 3px rgba(36,116,165,.09);
}

.services-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}

.services-filter {
  min-height: 38px;
  padding: 8px 18px;
  border: 0;
  border-radius: 999px;
  background: #edf4f8;
  color: #49667c;
  font: 700 .78rem "Montserrat",sans-serif;
  cursor: pointer;
  transition: transform .18s ease, background .18s ease, color .18s ease, box-shadow .18s ease;
}

.services-filter:hover {
  transform: translateY(-1px);
  background: #e3eef4;
}

.services-filter.is-active {
  background: #12679a;
  color: #fff;
  box-shadow: 0 6px 15px rgba(18,103,154,.17);
}

.services-directory-list {
  padding-top: 2px;
}

.services-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 20px;
}

.service-directory-card {
  display: grid;
  grid-template-columns: 66px minmax(0,1fr);
  align-items: start;
  gap: 24px;
  min-height: 205px;
  padding: 25px 24px;
  border: 1px solid #d7e4eb;
  border-radius: 11px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 8px 25px rgba(21,70,99,.055);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.service-directory-card:hover {
  transform: translateY(-2px);
  border-color: #c4d9e5;
  box-shadow: 0 13px 30px rgba(21,70,99,.09);
}

.service-directory-card[hidden] {
  display: none !important;
}

.service-directory-icon {
  display: grid;
  place-items: center;
  width: 66px;
  height: 66px;
  border: 1px solid #d6e7f1;
  border-radius: 12px;
  background: #eef8fd;
  color: var(--service-accent,#126fb1);
  box-shadow: 0 7px 18px rgba(12,73,111,.06);
}

.service-directory-icon img {
  display: block;
  width: 38px;
  height: 38px;
  object-fit: contain;
}

.service-directory-copy h2 {
  margin: 3px 0 10px;
  color: #0f3151;
  font: 800 1.04rem/1.3 "Montserrat",sans-serif;
}

.service-directory-copy p {
  margin: 0 0 17px;
  color: #58758e;
  font: .92rem/1.52 "Montserrat",sans-serif;
}

.service-directory-copy a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #0670b3;
  font: 800 .83rem/1.2 "Montserrat",sans-serif;
  text-decoration: none;
}

.service-directory-copy a span {
  transition: transform .18s ease;
}

.service-directory-copy a:hover span {
  transform: translateX(3px);
}

.services-empty {
  margin: 24px 0 0;
  padding: 22px;
  border: 1px solid #d7e4eb;
  border-radius: 10px;
  background: #fff;
  color: #5f7689;
  text-align: center;
  font: .95rem "Montserrat",sans-serif;
}

/* Página individual */
.service-single-page {
  padding: 50px 0 72px;
}

.service-single-page .container {
  max-width: 1050px;
}

@media (max-width: 1050px) {
  .services-directory {
    padding-top: 132px;
  }

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

@media (max-width: 720px) {
  .services-directory {
    padding-top: 118px;
  }

  .services-directory .container {
    width: min(100% - 28px, 1320px);
  }

  .services-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .service-directory-card {
    min-height: 0;
    padding: 20px;
    gap: 17px;
  }

  .services-filter {
    padding-inline: 14px;
  }
}

@media (max-width: 440px) {
  .service-directory-card {
    grid-template-columns: 56px minmax(0,1fr);
  }

  .service-directory-icon {
    width: 56px;
    height: 56px;
  }

  .service-directory-icon img {
    width: 32px;
    height: 32px;
  }
}
