/* ── Filtros de categoría ── */
.filtros-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 2.5rem;
}

.filtro-btn {
  padding: 0.45rem 1.1rem;
  border-radius: 100px;
  border: 1px solid var(--border);
  background: transparent;
  color: rgba(255,255,255,0.6);
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
  font-family: inherit;
}

.filtro-btn:hover {
  background: rgba(6,235,212,0.1);
  color: var(--accent);
  border-color: var(--accent);
}

.filtro-btn.active {
  background: var(--accent);
  color: #0a0a0a;
  border-color: var(--accent);
  font-weight: 700;
}

/* ── Grupos por categoría ── */
.categoria-section {
  margin-bottom: 3rem;
}

.categoria-titulo {
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--accent);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: 1.25rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid rgba(6,235,212,0.15);
}

.no-results,
.servicios-loading {
  color: rgba(255,255,255,0.4);
  text-align: center;
  padding: 3rem 0;
  font-size: 0.95rem;
}

    .service-card img {
      display: block;
      width: 100%; max-height: 370px;
      object-fit: cover; object-position: center top;
      border-radius: 10px; margin-bottom: 1.25rem;
    }
    .service-price {
      display: inline-block; margin-top: 1rem;
      font-size: 1.1rem; font-weight: 800; color: var(--accent);
    }
    .service-toggle { display: none; }

    /* flecha decorativa visible solo en mobile via ::after */

    @media (max-width: 640px) {
      .filtros-bar {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        padding-bottom: 0.5rem;
        scrollbar-width: none;
        gap: 0.4rem;
      }
      .filtros-bar::-webkit-scrollbar { display: none; }
      .filtro-btn {
        padding: 0.65rem 1.3rem;
        font-size: 0.88rem;
        flex-shrink: 0;
      }

      .services-grid {
        grid-template-columns: 1fr !important;
        gap: 0.75rem;
      }

      /* ── Card colapsada ── */
      .service-card {
        display: flex;
        flex-direction: row;
        align-items: center;
        gap: 1rem;
        padding: 1rem !important;
      }
      .service-card img {
        width: 100px;
        height: 100px;
        max-height: 100px;
        flex-shrink: 0;
        margin-bottom: 0;
        border-radius: 8px;
        transition: width 0.45s ease, height 0.45s ease, max-height 0.45s ease,
                    border-radius 0.45s ease, margin-bottom 0.3s ease;
      }
      .service-body {
        flex: 1;
        min-width: 0;
      }
      .service-summary {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        flex-wrap: wrap;
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
        user-select: none;
      }
      .service-summary::after {
        content: '▾';
        color: var(--accent);
        font-size: 1.2rem;
        line-height: 1;
        margin-left: auto;
        flex-shrink: 0;
        transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
      }
      .service-card.open .service-summary::after {
        transform: rotate(180deg);
      }
      .service-summary h3 {
        flex: 1 1 100%;
        font-size: 0.88rem !important;
        margin-bottom: 0.15rem;
      }
      .service-price {
        font-size: 0.88rem;
        margin-top: 0.15rem;
        flex: 1;
      }

      /* ── Detalles: siempre presentes, animados con max-height ── */
      .service-details {
        max-height: 0;
        overflow: hidden;
        opacity: 0;
        transition: max-height 0.5s ease, opacity 0.4s ease;
      }
      .service-details p {
        font-size: 0.83rem;
        color: rgba(255,255,255,0.6);
        line-height: 1.55;
        margin-bottom: 0.5rem;
        padding-top: 0.75rem;
        border-top: 1px solid rgba(255,255,255,0.07);
        margin-top: 0.6rem;
      }
      .service-details .btn-primary {
        font-size: 0.85rem !important;
        padding: 0.6rem 1rem !important;
        margin-top: 0.75rem !important;
      }

      /* ── Card expandida ── */
      .service-card.open {
        flex-direction: column;
        align-items: stretch;
      }
      .service-card.open img {
        width: 100%;
        height: 180px;
        max-height: 180px;
        margin-bottom: 0;
        border-radius: 10px;
      }
      .service-card.open .service-details {
        max-height: 600px;
        opacity: 1;
      }
    }
