/* ============================================================
 * 08. PROJECT FILTER TABS + CHIPS
 * ============================================================ */
.project-filter-tabs-container {
  font-family: var(--ff-body), 'Poppins', sans-serif;
  background: var(--color-bg-light);
  padding: 40px 20px;
  margin: 40px 0;
  border-radius: var(--radius-card);
  border: 1px solid var(--color-border-light);
  box-shadow: 0 4px 15px rgba(0,0,0,.05);
}
.filter-tabs {
  display: flex; justify-content: center;
  margin-bottom: 30px;
  border-bottom: 2px solid var(--color-border-light);
}
.tab-button {
  font-family: var(--ff-body), 'Poppins', sans-serif;
  font-size: 22px;
  font-weight: 600;
  color: var(--color-text-muted);
  background: none;
  border: none;
  padding: 10px 20px;
  min-height: var(--tap-target);
  cursor: pointer;
  position: relative;
  top: 2px;
  border-bottom: 3px solid transparent;
  transition: all .3s ease;
}
.tab-button:hover { color: var(--color-primary-hover); }
.tab-button.active {
  color: var(--color-primary-hover);
  border-bottom-color: var(--color-primary-hover);
}
.filter-tab-content { display: none; animation: fadeIn .5s; }
.filter-tab-content.active { display: block; }
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}

.project-filter-links {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-wrap: wrap; justify-content: center; gap: 15px;
}
.project-filter-links li {
  padding-bottom: 5px;
}

.project-filter-tabs-container .project-filter-links li .filter-button {
  line-height: var(--tap-target);
}

.filter-button {
  display: block;
  text-decoration: none !important;
  font-weight: 500;
  font-size: 18px;
  background-color: #fff;
  color: var(--color-primary-hover) !important;
  padding: 12px 24px;
  min-height: var(--tap-target);
  border-radius: var(--radius-button);
  border: 2px solid var(--color-primary-hover);
  cursor: pointer;
  transition: all .3s cubic-bezier(.25,.8,.25,1);
  box-shadow: 0 2px 4px rgba(0,0,0,.05);
}
.filter-button:hover,
.filter-button:focus-visible {
  color: #fff !important;
  background: var(--gradient-primary);
  border-color: var(--color-primary-dark);
  transform: translateY(-4px) scale(1.02);
  box-shadow: 0 8px 20px rgba(0,139,146,.25);
  text-decoration: none;
}
.filter-button:active {
  transform: translateY(-1px) scale(1);
  box-shadow: 0 4px 10px rgba(0,139,146,.2);
}

/* === Compact filter (chips) === */
.project-filter-tabs-container.project-filter--compact {
  font-family: var(--ff-body), 'Poppins', sans-serif;
  background: var(--color-bg-light);
  padding: 20px 30px 0;
  margin: 28px 0;
  border-radius: var(--radius-card);
  border: 1px solid var(--color-border-light);
  box-shadow: 0 4px 12px rgba(0,0,0,.05);
}
.project-filter-tabs-container .filter-header {
  display: flex; align-items: center; justify-content: space-between;
  text-align: center;
  margin-bottom: 14px;
  cursor: pointer;
  user-select: none;
}
.project-filter-tabs-container .filter-header::after {
  content: "";
  width: 10px; height: 10px;
  border-right: 2px solid var(--color-primary);
  border-bottom: 2px solid var(--color-primary);
  transform: rotate(45deg);
  transition: transform .2s ease;
  margin-bottom: 9px;
}
.project-filter-tabs-container.is-open .filter-header::after,
.project-filter-tabs-container[aria-expanded="true"] .filter-header::after {
  transform: rotate(-135deg);
}
.project-filter-tabs-container:not(.is-open) .filter-subtitle,
.project-filter-tabs-container:not(.is-open) .filters-wrap,
.project-filter-tabs-container:not(.is-open) .filter-actions,
.project-filter-tabs-container:not(.is-open) #project-filter-panel,
.project-filter-tabs-container[aria-expanded="false"] .filter-subtitle,
.project-filter-tabs-container[aria-expanded="false"] .filters-wrap,
.project-filter-tabs-container[aria-expanded="false"] .filter-actions { display: none; }

.project-filter-tabs-container .filter-title {
  margin: 0 0 6px;
  font-size: 22px;
  color: var(--color-primary);
  font-weight: 600;
}
.project-filter-tabs-container .filter-subtitle {
  margin: 0; font-size: 15px;
  color: var(--color-text-muted);
  line-height: 1.3;
}
.project-filter-tabs-container .filters-wrap {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.project-filter-tabs-container .filter-group {
  background: #fff;
  border: 1px solid #e8eeee;
  border-radius: 10px;
  padding: 12px;
}
.project-filter-tabs-container .group-title {
  font-size: 18px; font-weight: 600;
  color: var(--color-primary);
  margin-bottom: 8px;
}
.project-filter-tabs-container .chips-list {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-wrap: wrap; gap: 10px;
}
.project-filter-tabs-container .chip {
  appearance: none;
  border: 2px solid var(--color-primary-hover);
  background: #fff;
  color: var(--color-primary-hover);
  padding: 11px 16px;
  min-height: var(--tap-target);
  line-height: var(--tap-target);
  min-width: calc(var(--tap-target)*2);
  border-radius: 999px;
  font-size: 15px;
  font-weight: 500;
  cursor: pointer;
  transition: all .25s ease;
}
.project-filter-tabs-container .chip:hover,
.project-filter-tabs-container .chip:focus-visible {
  color: #fff;
  background: var(--gradient-search);
  border-color: var(--color-primary-dark);
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0,139,146,.2);
}
.project-filter-tabs-container .chip:focus-visible {
  outline: 3px solid var(--color-focus) !important;
  outline-offset: 3px !important;
}
.project-filter-tabs-container .chip[aria-pressed="true"] {
  color: #fff;
  background: var(--gradient-search);
  border-color: var(--color-primary-dark);
  box-shadow: 0 6px 16px rgba(0,139,146,.2);
}
.project-filter-tabs-container.project-filter--compact .chips-list .chip {
  font-size: 18px;
  padding: 7px 12px;
}

.project-filter-tabs-container .filter-actions {
  display: flex; gap: 10px; justify-content: center;
  margin: 14px 0 15px;
}
.project-filter-tabs-container .filter-cta {
  font-family: var(--ff-body);
  font-size: 18px; font-weight: 600;
  color: #fff;
  background: var(--gradient-primary);
  border: none;
  border-radius: var(--radius-button);
  padding: 10px 22px;
  cursor: pointer;
  transition: filter .25s ease, transform .15s ease;
  box-shadow: 0 4px 12px rgba(0,139,146,.25);
}
.project-filter-tabs-container .filter-cta:hover { filter: brightness(1.12); transform: translateY(-1px); }
.project-filter-tabs-container .filter-cta:focus-visible {
  filter: brightness(1.12);
  outline: 3px solid var(--color-focus) !important;
  outline-offset: 3px !important;
}
.project-filter-tabs-container .filter-cta[disabled],
.project-filter-tabs-container .filter-cta[aria-disabled="true"] {
  opacity: .55; cursor: not-allowed;
  filter: none; transform: none; box-shadow: none;
}
.project-filter-tabs-container .filter-reset {
  font-size: 17px; font-weight: 600;
  color: var(--color-primary-hover);
  background: transparent;
  border: 0;
  padding: 10px 12px;
  min-height: var(--tap-target);
  line-height: var(--tap-target);
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.project-filter-tabs-container .filter-reset:hover { color: var(--color-primary-dark); }
.project-filter-tabs-container .filter-reset:focus-visible {
  color: var(--color-primary-dark);
  outline: 3px solid var(--color-focus) !important;
  outline-offset: 2px !important;
}
.project-filter-no-top-margin { margin: 0 0 40px; }

/* ============================================================
 * Scope archive projet : filtre actif + mode combiné (chips × + reset)
 * ============================================================ */

/* Filtre actif (aria-current="page") — désactivé visuellement et fonctionnellement */
body.tax-project_category .filter-button.is-active,
body.tax-project_category .filter-button[aria-current="page"],
body.post-type-archive-project .filter-button.is-active,
body.post-type-archive-project .filter-button[aria-current="page"] {
  background: var(--gradient-primary);
  color: #fff !important;
  border-color: var(--color-primary-dark);
  cursor: default;
  pointer-events: none;
  box-shadow: 0 4px 10px rgba(0,139,146,.2);
  transform: none;
}

/* Mode combiné : chips actifs + reset */
body.tax-project_category .project-filter--combined {
  padding: 24px 30px;
  text-align: center;
}
body.tax-project_category .active-filters-list {
  list-style: none;
  padding: 0;
  margin: 0 0 16px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
}
body.tax-project_category .active-filter-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  border: 2px solid var(--color-primary-hover);
  border-radius: 999px;
  padding: 6px 6px 6px 16px;
  font-size: 16px;
  font-weight: 500;
  color: var(--color-primary-hover);
}
body.tax-project_category .active-filter-chip .chip-label {
  line-height: 1;
}
body.tax-project_category .active-filter-chip .chip-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  min-width: 32px;
  border-radius: 50%;
  background: var(--color-primary-hover);
  color: #fff;
  text-decoration: none;
  font-size: 20px;
  line-height: 1;
  transition: background .2s ease, transform .15s ease;
}
body.tax-project_category .active-filter-chip .chip-remove:hover,
body.tax-project_category .active-filter-chip .chip-remove:focus-visible {
  background: var(--color-primary-dark);
  transform: scale(1.1);
  text-decoration: none;
  color: #fff;
}
body.tax-project_category .active-filter-chip .chip-remove:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
}
body.tax-project_category .filter-reset-all {
  display: inline-block;
  font-size: 17px;
  font-weight: 600;
  color: var(--color-primary-hover);
  text-decoration: underline;
  text-underline-offset: 3px;
  padding: 10px 12px;
  min-height: var(--tap-target);
  line-height: var(--tap-target);
}
body.tax-project_category .filter-reset-all:hover {
  color: var(--color-primary-dark);
}
body.tax-project_category .filter-reset-all:focus-visible {
  color: var(--color-primary-dark);
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
}
