/**
 * Accueil + Explorer — carte / rail / grilles
 */
.an-explore {
  padding-bottom: var(--an-space-8);
}

.an-explore--home {
  padding-top: 0;
}

.an-explore__stats {
  display: flex;
  flex-wrap: wrap;
  gap: var(--an-space-2);
  padding: var(--an-space-4) 0;
}

.an-stat-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.35rem 0.75rem;
  border-radius: var(--an-radius-full);
  background: var(--an-bg-elevated);
  border: 1px solid var(--an-border-subtle);
  color: var(--an-text-muted);
  font-size: var(--an-text-sm);
}

.an-stat-chip strong {
  color: var(--an-accent);
}

.an-explore__layout {
  display: grid;
  gap: var(--an-space-4);
}

.an-explore__layout--home {
  grid-template-columns: minmax(0, 1.45fr) minmax(280px, 0.75fr);
  align-items: start;
  width: min(100% - var(--an-space-8), var(--an-max-width));
  margin-inline: auto;
}

.an-explore--page .an-explore__layout {
  grid-template-columns: minmax(0, 1fr);
  width: min(100% - var(--an-space-8), var(--an-max-width));
  margin-inline: auto;
}

.an-explore--page .an-explore__list-col {
  margin-top: var(--an-space-4);
}

.an-map-block {
  background: var(--an-bg-elevated);
  border: 1px solid var(--an-border-subtle);
  border-radius: var(--an-radius-lg);
  overflow: hidden;
}

.an-map-block__toolbar {
  padding: var(--an-space-3) var(--an-space-4) 0;
}

.an-map {
  width: 100%;
  min-height: 280px;
  background: var(--an-bg-surface);
}

.an-explore-rail__search {
  margin-bottom: var(--an-space-4);
}

.an-input {
  width: 100%;
  padding: 0.75rem 1rem;
  border-radius: var(--an-radius-full);
  border: 1px solid var(--an-border);
  background: var(--an-bg-surface);
  color: var(--an-text);
  font: inherit;
}

.an-input::placeholder {
  color: var(--an-text-subtle);
}

.an-input:focus {
  outline: none;
  border-color: var(--an-accent);
  box-shadow: 0 0 0 3px var(--an-accent-muted);
}

textarea.an-input,
.an-input--textarea {
  border-radius: var(--an-radius-sm);
  resize: none;
}

.an-explore-rail__title {
  margin: 0 0 var(--an-space-3);
  font-size: var(--an-text-lg);
}

.an-explore-rail__list {
  display: grid;
  gap: var(--an-space-3);
  max-height: min(62vh, 640px);
  overflow: auto;
  padding-right: 0.25rem;
  margin-bottom: var(--an-space-4);
}

.an-explore-filters {
  display: flex;
  flex-wrap: wrap;
  gap: var(--an-space-2);
  margin-bottom: var(--an-space-4);
}

.an-filter-chip {
  display: inline-flex;
  padding: 0.4rem 0.85rem;
  border-radius: var(--an-radius-full);
  border: 1px solid var(--an-border);
  color: var(--an-text-muted);
  text-decoration: none;
  font-size: var(--an-text-sm);
  font-weight: 600;
}

.an-filter-chip.is-active,
.an-filter-chip:hover {
  background: var(--an-accent-muted);
  border-color: rgba(129, 215, 66, 0.45);
  color: var(--an-accent);
}

.an-spots-grid {
  display: grid;
  gap: var(--an-space-4);
}

.an-spots-grid--grid {
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
}

.an-spots-grid--rail {
  grid-template-columns: 1fr;
}

.an-spots-empty {
  color: var(--an-text-muted);
  padding: var(--an-space-6);
  text-align: center;
  background: var(--an-bg-elevated);
  border-radius: var(--an-radius);
  border: 1px dashed var(--an-border);
}

.an-spot-card {
  display: grid;
  gap: var(--an-space-3);
  background: var(--an-bg-surface);
  border: 1px solid var(--an-border-subtle);
  border-radius: var(--an-radius);
  overflow: hidden;
  transition: border-color var(--an-duration) var(--an-ease);
}

.an-spot-card:hover {
  border-color: rgba(129, 215, 66, 0.35);
}

.an-spots-grid--grid .an-spot-card {
  grid-template-rows: auto 1fr;
}

.an-spot-card--compact {
  grid-template-columns: 88px 1fr;
  align-items: center;
}

.an-spot-card--compact .an-spot-card__media {
  height: 88px;
}

.an-spot-card--compact .an-spot-card__body {
  padding: var(--an-space-3);
}

.an-spot-card--compact .an-btn {
  display: none;
}

.an-spot-card__media {
  position: relative;
  display: block;
  overflow: hidden;
  aspect-ratio: 16 / 10;
  background: var(--an-bg-hover);
}

.an-spot-card--compact .an-spot-card__media {
  aspect-ratio: auto;
}

.an-spot-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.an-spot-card__placeholder {
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, var(--an-bg-hover), var(--an-bg-elevated));
}

.an-spot-card__date-badge {
  position: absolute;
  left: var(--an-space-2);
  bottom: var(--an-space-2);
  padding: 0.2rem 0.5rem;
  border-radius: var(--an-radius-sm);
  background: rgba(13, 15, 18, 0.82);
  color: var(--an-accent);
  font-size: var(--an-text-xs);
  font-weight: 700;
}

.an-spot-card__body {
  padding: var(--an-space-4);
  display: grid;
  gap: var(--an-space-2);
}

.an-spot-card__title {
  margin: 0;
  font-size: var(--an-text-base);
  line-height: 1.35;
}

.an-spot-card__title a {
  color: inherit;
  text-decoration: none;
}

.an-spot-card__title a:hover {
  color: var(--an-accent);
}

.an-spot-card__meta {
  margin: 0;
  font-size: var(--an-text-sm);
  color: var(--an-text-muted);
}

.an-pagination {
  display: flex;
  flex-wrap: wrap;
  gap: var(--an-space-2);
  margin-top: var(--an-space-6);
}

.an-pagination a,
.an-pagination span {
  display: inline-flex;
  min-width: 2rem;
  justify-content: center;
  padding: 0.35rem 0.6rem;
  border-radius: var(--an-radius-sm);
  border: 1px solid var(--an-border);
  color: var(--an-text-muted);
  text-decoration: none;
}

.an-pagination .current {
  background: var(--an-accent-muted);
  border-color: rgba(129, 215, 66, 0.45);
  color: var(--an-accent);
}

.an-home-section {
  width: min(100% - var(--an-space-8), var(--an-max-width));
  margin-inline: auto;
  padding: var(--an-space-10) 0;
}

.an-home-section__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--an-space-4);
  margin-bottom: var(--an-space-5);
}

.an-home-section__head h2 {
  margin: 0;
  font-size: var(--an-text-2xl);
}

.an-home-section--shop {
  background: var(--an-bg-elevated);
  border-block: 1px solid var(--an-border-subtle);
  width: 100%;
  padding-inline: 0;
}

.an-home-section--shop .an-home-section__inner {
  width: min(100% - var(--an-space-8), var(--an-max-width));
  margin-inline: auto;
  padding: var(--an-space-10) 0;
}

@media (max-width: 959px) {
  .an-explore__layout--home {
    grid-template-columns: 1fr;
  }

  .an-explore-rail__list {
    max-height: none;
  }

  .an-map-block {
    border-radius: 0;
    border-left: 0;
    border-right: 0;
  }

  .an-explore__layout--home,
  .an-explore--page .an-explore__layout {
    width: 100%;
  }
}
