.trilhas-container {
  max-width: var(--container-max-width);
  width: 100%;
  margin: 0 auto;
  padding: 0 var(--container-padding);
}

.secao-trilhas {
  padding: var(--spacing-2xl) 0;
  margin-bottom: var(--spacing-xl);
}

.trilhas-header-principal {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--spacing-xl);
  text-align: center;
}

.trilhas-header-content {
  max-width: 760px;
}

.trilhas-subtitulo {
  color: var(--text-secondary);
  font-size: var(--font-size-md);
  line-height: 1.5;
  margin: var(--spacing-md) 0 0;
}

.trilhas-busca-secao {
  margin-bottom: var(--spacing-xl);
}

.trilhas-busca-container {
  max-width: 800px;
  margin: 0 auto;
}

.trilhas-busca-form {
  display: flex;
  align-items: center;
  width: 100%;
  height: 60px;
  background: var(--bg-white);
  border: 1px solid var(--border-primary, var(--border-medium));
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: var(--transition-base);
}

.trilhas-busca-form:focus-within {
  box-shadow: 0 5px 15px rgba(55, 0, 254, 0.15);
  transform: translateY(-2px);
}

.trilhas-busca-wrapper {
  position: relative;
  flex: 1 1 0;
  height: 100%;
}

.trilhas-busca-icon {
  position: absolute;
  left: var(--spacing-md);
  top: 50%;
  color: var(--text-secondary);
  transform: translateY(-50%);
  pointer-events: none;
}

.trilhas-busca-input {
  width: 100%;
  height: 100%;
  padding: 0.875rem var(--spacing-md) 0.875rem 3rem;
  border: 0;
  background: none;
  color: var(--text-main);
  font-family: var(--font-family);
  font-size: var(--font-size-lg);
  font-weight: 600;
  line-height: 1.5;
  outline: none;
  transition: var(--transition-base);
}

.trilhas-busca-input:focus {
  box-shadow: none;
}

.trilhas-busca-input.erro-validacao {
  color: var(--color-accent);
}

.trilhas-busca-btn {
  min-width: 140px;
  height: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-sm);
  padding: 0 var(--spacing-lg);
  border: 0;
  border-radius: 0 var(--radius-lg) var(--radius-lg) 0;
  background: var(--color-primary);
  color: var(--text-white);
  font-family: var(--font-family);
  font-size: 0.95rem;
  font-weight: 700;
  cursor: pointer;
  transition: var(--transition-base);
  white-space: nowrap;
}

.trilhas-busca-btn:hover,
.trilhas-busca-btn:focus {
  background: var(--color-primary-dark);
}

.trilhas-resultado-info {
  max-width: 880px;
  margin: 0 auto var(--spacing-xl);
}

.resultado-sucesso,
.resultado-vazio {
  display: flex;
  align-items: center;
  gap: var(--spacing-md);
  padding: var(--spacing-md) var(--spacing-lg);
  border-radius: var(--radius-lg);
  background: var(--bg-light);
  color: var(--text-main);
  box-shadow: var(--shadow-xs);
}

.resultado-sucesso {
  border: 1px solid color-mix(in srgb, var(--color-secondary) 30%, var(--border-light));
}

.resultado-vazio {
  border: 1px solid color-mix(in srgb, var(--color-accent) 36%, var(--border-light));
  justify-content: space-between;
}

.resultado-sucesso svg {
  color: var(--color-secondary);
  flex: 0 0 auto;
}

.resultado-vazio svg {
  color: var(--color-accent);
  flex: 0 0 auto;
}

.resultado-sucesso,
.resultado-vazio > div {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
}

.link-limpar-busca {
  color: var(--color-primary);
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}

.link-limpar-busca:hover,
.link-limpar-busca:focus {
  color: var(--color-primary-dark);
  text-decoration: underline;
}

.trilhas-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: var(--spacing-lg);
  margin-bottom: var(--spacing-2xl);
}

.trilhas-sem-resultados {
  grid-column: 1 / -1;
  max-width: 520px;
  margin: 0 auto;
  padding: var(--spacing-2xl) var(--spacing-md);
  text-align: center;
  color: var(--text-secondary);
}

.trilhas-sem-resultados h3 {
  margin: var(--spacing-md) 0 var(--spacing-sm);
  color: var(--text-dark);
  font-size: var(--font-size-xl);
}

.trilhas-sem-resultados p {
  margin: 0 0 var(--spacing-md);
  font-size: var(--font-size-base);
  line-height: 1.5;
}

.trilhas-paginacao {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-md);
  margin-top: var(--spacing-xl);
}

.pag-numeros {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-sm);
  flex-wrap: wrap;
}

.pag-btn,
.pag-num {
  min-width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-full);
  background: var(--bg-white);
  color: var(--color-primary);
  border: 1px solid var(--border-light);
  font-weight: 700;
  text-decoration: none;
  transition: var(--transition-base);
}

.pag-btn:hover,
.pag-btn:focus,
.pag-num:hover,
.pag-num:focus {
  background: var(--color-primary);
  color: var(--text-white);
  border-color: var(--color-primary);
  text-decoration: none;
}

.pag-atual {
  background: var(--color-primary);
  color: var(--text-white);
  border-color: var(--color-primary);
}

.pag-ellipsis {
  min-width: 32px;
  color: var(--text-secondary);
  text-align: center;
  font-weight: 700;
}

@media (max-width: 768px) {
  .secao-trilhas {
    padding: var(--spacing-xl) 0;
  }

  .trilhas-busca-form {
    flex-direction: column;
    height: auto;
    border: 0;
    border-radius: 0;
    overflow: visible;
    background: transparent;
    gap: var(--spacing-md);
  }

  .trilhas-busca-wrapper {
    width: 100%;
    height: 56px;
    background: var(--bg-white);
    border: 1px solid var(--border-primary, var(--border-medium));
    border-radius: var(--radius-lg);
    overflow: hidden;
  }

  .trilhas-busca-btn {
    width: 100%;
    height: 56px;
    border-radius: var(--radius-lg);
  }

  .resultado-sucesso,
  .resultado-vazio {
    align-items: flex-start;
    flex-direction: column;
  }

  .trilhas-grid {
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  }
}

@media (max-width: 480px) {
  .trilhas-subtitulo {
    font-size: var(--font-size-base);
  }

  .trilhas-grid {
    grid-template-columns: 1fr;
  }

  .trilhas-paginacao {
    gap: var(--spacing-sm);
  }
}
