/* Catálogo: navegação clara, busca rápida e ações acessíveis. */
.services-page { background:#f3f8f7; color:#173f47 }
.services-page .detail-shell { max-width:1040px; min-height:100dvh }
.services-page .detail-header {
  position:sticky; top:0; z-index:10; display:grid;
  grid-template-columns:44px 1fr 44px; gap:12px; min-height:78px;
  padding:12px 0; border-bottom:1px solid #d8e9e7;
  background:#fffffff2; backdrop-filter:blur(12px)
}
.services-page .detail-header>span { text-align:center; font-size:1rem; font-weight:700; letter-spacing:.01em }
.services-page .detail-header img { width:38px; height:38px; justify-self:end }
.services-page .back-home {
  width:44px; height:44px; border-color:#d0e6e4;
  background:#f1f8f7; font-size:1.4rem
}
.services-page main { max-width:920px; margin:0 auto }
.services-page .detail-intro {
  position:relative; display:flex; align-items:center; min-height:226px;
  margin:26px 0 28px; padding:30px 195px 30px 34px;
  overflow:hidden; border:1px solid #cde7e4; border-radius:26px;
  background:linear-gradient(125deg,#eaf7f5,#d5eeea)
}
.services-page .detail-intro::before {
  content:""; position:absolute; right:-72px; bottom:-130px;
  width:310px; height:310px; border-radius:50%; background:#bfe8e3
}
.services-hero-copy { position:relative; z-index:1 }
.services-page .detail-intro .eyebrow { color:#087885; font-size:.72rem }
.services-page .detail-intro h1 {
  margin:12px 0 10px; color:#083d46;
  font-size:clamp(2rem,4vw,3.15rem); font-weight:650;
  letter-spacing:-.045em; line-height:1.05
}
.services-page .detail-intro p:last-child {
  max-width:525px; margin:0; color:#44666a;
  font-size:.98rem; line-height:1.5
}
.services-page .detail-intro p a {
  color:#07515b; font-weight:700; text-decoration:underline;
  text-underline-offset:3px
}
.services-hero-art {
  position:absolute; z-index:1; top:50%; right:25px;
  width:160px; height:160px; object-fit:contain;
  transform:translateY(-50%) rotate(-6deg);
  filter:drop-shadow(0 10px 12px #076a741f)
}
.services-tools { margin:0 0 15px }
.search-label,.category-hint {
  display:block; margin:0 0 10px; color:#16454d;
  font-size:.94rem; font-weight:700
}
.search-field {
  display:flex; align-items:center; min-height:56px; padding:0 14px;
  border:1.5px solid #b8d8d6; border-radius:15px; background:#fff;
  box-shadow:0 6px 20px #07515b0b;
  transition:border-color 160ms ease,box-shadow 160ms ease
}
.search-field:focus-within { border-color:#087885; box-shadow:0 0 0 4px #08788520 }
.search-field svg { width:21px; height:21px; color:#4d7478 }
.search-field input {
  width:100%; min-width:0; min-height:52px; padding:0 10px;
  border:0; outline:0; background:transparent; color:#173f47;
  font:inherit; font-size:.94rem
}
.search-field input::placeholder { color:#6c8588; opacity:1 }
.search-field input::-webkit-search-cancel-button { display:none }
.search-field button {
  width:40px; height:40px; flex-shrink:0; border:0; border-radius:50%;
  background:#e9f4f2; color:#07515b; font:inherit;
  font-size:1.5rem; cursor:pointer
}
.service-result-count { margin:7px 2px 0; color:#5b7779; font-size:.79rem }
.services-page .category-nav {
  display:flex; flex-wrap:wrap; gap:10px; margin:0 0 33px;
  padding:0; overflow:visible
}
.services-page .category-nav a {
  display:inline-flex; align-items:center; justify-content:space-between;
  gap:10px; min-height:46px; flex:0 0 auto; padding:10px 15px;
  border-color:#cce3e0; border-radius:13px; color:#07515b;
  font-size:.86rem; font-weight:700
}
.services-page .category-nav a:hover,
.services-page .category-nav a:focus-visible { background:#e4f3f0 }
.services-page .category-nav a span {
  display:grid; place-items:center; min-width:23px; height:23px;
  padding:0 5px; border-radius:50%; background:#e8f5f2;
  color:#39747a; font-size:.72rem
}
.services-page .catalog-group { margin:0 0 42px; scroll-margin-top:98px }
.catalog-group-heading {
  display:flex; align-items:end; justify-content:space-between;
  gap:16px; margin-bottom:17px
}
.group-index { color:#258c93; font-size:.7rem; font-weight:700; letter-spacing:.13em }
.services-page .catalog-group-heading h2 {
  margin:5px 0 3px; color:#0a454f;
  font-size:clamp(1.4rem,2.5vw,1.85rem); font-weight:700;
  letter-spacing:-.035em; line-height:1.18
}
.catalog-group-heading p { color:#5b7779; font-size:.88rem }
.group-total {
  flex-shrink:0; padding:6px 10px; border-radius:30px;
  background:#edf7f5; color:#276d74; font-size:.76rem; font-weight:700
}
.services-page .catalog-grid { gap:13px }
.services-page .catalog-card {
  display:block; min-height:137px; padding:18px;
  border:1px solid #dbeae8; border-radius:17px;
  box-shadow:0 7px 22px #07515b08;
  transition:border-color 160ms ease,transform 160ms ease,box-shadow 160ms ease
}
.services-page .catalog-card:hover {
  border-color:#8dc7c4; transform:translateY(-2px);
  box-shadow:0 12px 27px #07515b10
}
.services-page .catalog-icon,.services-page .catalog-copy p { display:none }
.services-page .catalog-copy { display:flex; flex-direction:column; height:100% }
.services-page .catalog-copy h3 {
  margin:0 0 15px; color:#123f48; font-size:1.08rem;
  font-weight:700; line-height:1.26
}
.services-page .consult-link {
  display:flex; flex-direction:row-reverse; align-items:center;
  justify-content:space-between; width:100%; min-height:44px;
  margin-top:auto; padding:10px 13px; border:0; border-radius:11px;
  background:#edf7f5; color:#086772;
  font-size:.83rem; font-weight:700; line-height:1.2
}
.services-page .consult-link:hover { background:#dbefeb }
.services-page .consult-link span { font-size:1.15rem; line-height:1 }
.service-empty {
  padding:23px; border:1px dashed #9ac9c4; border-radius:16px;
  background:#f4faf9; color:#3a6167; font-size:.94rem
}
.service-empty a { color:#006f7b; font-weight:700; text-decoration:underline }
.services-page [hidden] { display:none!important }
.services-next-step {
  display:flex; align-items:center; justify-content:space-between;
  gap:26px; margin:4px 0 35px; padding:27px; border-radius:22px;
  background:linear-gradient(125deg,#07515b,#0a8290); color:#fff
}
.services-next-step>div>span { font-size:.67rem; font-weight:700; letter-spacing:.14em; opacity:.8 }
.services-next-step h2 { margin:5px 0; font-size:1.45rem; font-weight:700; letter-spacing:-.03em }
.services-next-step p { color:#e3f5f5; font-size:.89rem; line-height:1.45 }
.services-page .catalog-book {
  flex:0 0 auto; min-height:50px; margin:0; padding:12px 16px;
  border-radius:12px; background:#fff; color:#07515b;
  font-size:.87rem; font-weight:700
}
.services-page .catalog-book:hover { background:#e7f4f3 }
.services-page .catalog-book span { margin-left:16px; font-size:1.15rem }
@media (max-width:760px) {
  .services-page .detail-shell { padding-inline:20px }
  .services-page .detail-header { min-height:70px }
  .services-page .detail-intro {
    min-height:220px; margin:17px 0 23px; padding:22px 20px;
    border-radius:20px
  }
  .services-page .detail-intro::before {
    width:190px; height:190px; right:-88px; bottom:-95px
  }
  .services-page .detail-intro h1 {
    max-width:72%; margin:9px 0 11px;
    font-size:clamp(1.65rem,7.4vw,2.15rem)
  }
  .services-page .detail-intro p:last-child { max-width:100%; font-size:.87rem }
  .services-hero-art {
    top:30px; right:14px; width:85px; height:85px; transform:rotate(-6deg)
  }
  .services-page .category-nav {
    display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px; margin-bottom:29px
  }
  .services-page .category-nav a {
    width:100%; min-width:0; white-space:normal; line-height:1.2
  }
  .services-page .category-nav a:last-child { grid-column:1/-1 }
  .services-page .catalog-group { margin-bottom:34px; scroll-margin-top:83px }
  .catalog-group-heading { align-items:start }
  .group-total { margin-top:19px }
  .services-page .catalog-card { min-height:125px; padding:16px }
  .services-next-step { display:block; padding:23px }
  .services-page .catalog-book { width:100%; margin-top:19px }
}
@media (max-width:380px) {
  .services-page .detail-intro h1 { max-width:77%; font-size:1.55rem }
  .services-hero-art { width:72px; height:72px }
  .group-total { display:none }
  .services-page .category-nav a { font-size:.8rem }
}
@media (prefers-reduced-motion:reduce) {
  .services-page .catalog-card { transition:none }
  .services-page .catalog-card:hover { transform:none }
}
