.sitemap-container {
  max-width: var(--grantaura-max-width);
  margin: 0 auto;
  padding: 1.5rem 1rem;
  color: var(--grantaura-text-dark);
  position: relative;
}

.sitemap-header {
  position: relative;
  margin-bottom: 2.5rem;
  text-align: center;
  overflow: hidden;
  padding-bottom: 1rem;
}

.sitemap-header:after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 150px;
  height: 2px;
  background: linear-gradient(90deg, rgba(255, 163, 102, 0), var(--grantaura-secondary), rgba(255, 163, 102, 0));
}

.sitemap-title {
  color: var(--grantaura-primary);
  font-size: 2rem;
  margin-bottom: 1rem;
  text-align: center;
  font-weight: 700;
  position: relative;
  display: inline-block;
}

.sitemap-title span {
  position: relative;
  display: inline-block;
}

.sitemap-title span:after {
  content: "";
  position: absolute;
  bottom: -8px;
  left: 0;
  width: 100%;
  height: 4px;
  background: linear-gradient(90deg, var(--grantaura-primary), var(--grantaura-secondary));
  border-radius: 2px;
  transform-origin: center;
  animation: titleUnderline 1.5s ease-in-out;
}

.sitemap-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  margin-top: 1rem;
  font-size: .85rem;
  color: var(--grantaura-text-light);
}

.sitemap-meta__item {
  display: flex;
  align-items: center;
  gap: .35rem;
}

.sitemap-meta__item svg {
  width: 16px;
  height: 16px;
  color: var(--grantaura-primary-light);
}

.sitemap-introduction {
  margin: 1.5rem auto 0;
  text-align: center;
  max-width: 800px;
}

.sitemap-introduction p {
  color: var(--grantaura-text-light);
  line-height: 1.6;
  margin-bottom: 0;
  font-size: 1rem;
  animation: fadeIn .8s ease-in-out;
}

.sitemap-search {
  max-width: 700px;
  margin: 0 auto 2.5rem;
  position: relative;
  z-index: 10;
}

.sitemap-search__wrapper {
  position: relative;
  display: flex;
  align-items: center;
  transition: var(--grantaura-transition);
}

.sitemap-search__wrapper:focus-within {
  transform: scale(1.02);
}

.sitemap-search__input {
  width: 100%;
  padding: 1.1rem 1.5rem;
  padding-right: 3rem;
  font-size: 1rem;
  border: 2px solid var(--grantaura-gray-200);
  border-radius: var(--grantaura-border-radius-lg);
  background-color: var(--grantaura-white);
  box-shadow: var(--grantaura-box-shadow-sm);
  transition: var(--grantaura-transition);
}

.sitemap-search__input:focus {
  outline: none;
  border-color: var(--grantaura-primary-light);
  box-shadow: 0 0 0 3px rgba(90, 59, 140, .2);
}

.sitemap-search__icon {
  position: absolute;
  right: 1.5rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--grantaura-gray-400);
  display: flex;
  align-items: center;
}

.sitemap-search__dropdown {
  position: absolute;
  top: calc(100% + .75rem);
  left: 0;
  width: 100%;
  background-color: var(--grantaura-white);
  border-radius: var(--grantaura-border-radius-lg);
  box-shadow: var(--grantaura-box-shadow-lg);
  max-height: 400px;
  overflow-y: auto;
  z-index: 20;
  display: none;
  border: 1px solid var(--grantaura-gray-200);
}

.sitemap-search__dropdown.is-active { display: block; animation: dropdownFadeIn .2s ease-in-out; }
.sitemap-search__dropdown-header { padding: 1rem 1.25rem; background-color: var(--grantaura-gray-50); border-bottom: 1px solid var(--grantaura-gray-200); display: flex; align-items: center; justify-content: space-between; position: sticky; top: 0; z-index: 1; }
.sitemap-search__dropdown-title { font-size: .9rem; font-weight: 600; color: var(--grantaura-text-dark); display: flex; align-items: center; gap: .5rem; }
.sitemap-search__dropdown-count { font-size: .8rem; color: var(--grantaura-text-light); background-color: var(--grantaura-gray-100); padding: .25rem .5rem; border-radius: 1rem; }
.sitemap-search__dropdown-close { background: none; border: none; padding: .25rem; cursor: pointer; color: var(--grantaura-text-light); display: flex; align-items: center; justify-content: center; border-radius: var(--grantaura-border-radius-sm); }
.sitemap-search__dropdown-content { padding: .5rem 0; }
.sitemap-search__dropdown-category { padding: .75rem 1.25rem .5rem; font-size: .85rem; font-weight: 600; color: var(--grantaura-primary); }
.sitemap-search__dropdown-items { list-style: none; padding: 0; margin: 0; }
.sitemap-search__dropdown-item a { display: block; padding: .6rem 1.25rem .6rem 2.5rem; color: var(--grantaura-text-dark) !important; text-decoration: none; font-size: .9rem; position: relative; }
.sitemap-search__dropdown-item a:before { content: ""; position: absolute; left: 1.25rem; top: 50%; transform: translateY(-50%); width: 4px; height: 4px; border-radius: 50%; background-color: var(--grantaura-gray-300); }
.sitemap-search__dropdown-item a:hover { background-color: var(--grantaura-gray-50); color: var(--grantaura-primary) !important; }
.sitemap-search__dropdown-item a .highlight { background-color: rgba(255, 163, 102, .2); padding: 0 2px; border-radius: 2px; font-weight: 500; }
.sitemap-search__dropdown-empty { padding: 1rem 1.25rem; text-align: center; color: var(--grantaura-text-light); font-size: .9rem; }
.sitemap-search__dropdown-footer { padding: .75rem 1.25rem; border-top: 1px solid var(--grantaura-gray-200); text-align: center; background-color: var(--grantaura-gray-50); }
.sitemap-search__dropdown-view-all { font-size: .85rem; color: var(--grantaura-primary) !important; text-decoration: none; font-weight: 500; }
.sitemap-search__dropdown-view-more a { color: var(--grantaura-primary) !important; font-style: italic; font-size: .85rem; background-color: var(--grantaura-gray-50); }
.sitemap-search__status { margin-top: .75rem; font-size: .85rem; color: var(--grantaura-text-light); text-align: center; min-height: 20px; opacity: 0; transition: opacity .3s ease; }
.sitemap-search__status.is-active { opacity: 1; }
.sitemap-search__highlight { color: var(--grantaura-primary); font-weight: 500; }

.sitemap-keyboard-helper { margin-top: .35rem; text-align: center; color: var(--grantaura-text-light); font-size: .75rem; }
.sitemap-keyboard-helper kbd { display: inline-block; padding: .1rem .4rem; background-color: var(--grantaura-gray-100); border-radius: 3px; border: 1px solid var(--grantaura-gray-300); box-shadow: 0 1px 0 var(--grantaura-gray-300); font-family: monospace; line-height: 1.4; margin: 0 .1rem; }

.sitemap-index { display: none; margin-bottom: 2rem; text-align: center; }
.sitemap-index.is-active { display: block; animation: fadeIn .5s ease-in-out; }
.sitemap-index__title { font-size: .9rem; color: var(--grantaura-text-light); margin-bottom: .75rem; }
.sitemap-index__items { display: flex; flex-wrap: wrap; justify-content: center; gap: .35rem; }
.sitemap-index__item { display: inline-flex; justify-content: center; align-items: center; width: 2rem; height: 2rem; border-radius: var(--grantaura-border-radius-sm); background-color: var(--grantaura-gray-50); color: var(--grantaura-text-dark); font-weight: 500; font-size: .85rem; cursor: pointer; border: none; padding: 0; }
.sitemap-index__item.is-active { background-color: var(--grantaura-primary); color: #fff; }
.sitemap-index__divider { width: 1px; height: 2rem; background-color: var(--grantaura-gray-200); margin: 0 .5rem; }

.sitemap-sections { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
.sitemap-section { background-color: var(--grantaura-white); border-radius: var(--grantaura-border-radius-lg); box-shadow: var(--grantaura-box-shadow); padding: 1.5rem; transition: var(--grantaura-transition); height: 100%; position: relative; overflow: hidden; opacity: 0; }
.sitemap-section.is-visible { animation: sectionFadeIn .6s ease-out forwards; }
.sitemap-section:before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 4px; }
.sitemap-section--pages:before { background: linear-gradient(90deg, var(--grantaura-primary), var(--grantaura-primary-light)); }
.sitemap-section--posts:before { background: linear-gradient(90deg, var(--grantaura-secondary), var(--grantaura-secondary-light)); }
.sitemap-section--categories:before { background: linear-gradient(90deg, var(--grantaura-success), #7ee2c0); }
.sitemap-section--locations:before { background: linear-gradient(90deg, var(--grantaura-warning), #ffd280); }
.sitemap-section--grants:before { background: linear-gradient(90deg, var(--grantaura-danger), #f87171); }
.sitemap-section.highlight-section { animation: highlightSection 1.5s ease-in-out; }
.sitemap-section__header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.25rem; position: relative; z-index: 1; }
.sitemap-section__title { color: var(--grantaura-primary); font-size: 1.3rem; margin-bottom: 0; }
.sitemap-section__count { display: inline-flex; align-items: center; justify-content: center; font-size: .75rem; font-weight: 500; color: var(--grantaura-primary-light); background-color: rgba(90, 59, 140, .1); padding: .25rem .6rem; border-radius: 1rem; }
.sitemap-section__list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr; gap: .5rem; max-height: 400px; overflow-y: auto; scrollbar-width: thin; scrollbar-color: var(--grantaura-gray-300) var(--grantaura-gray-100); position: relative; z-index: 1; }
.sitemap-section__list--grants { max-height: 500px; }
.sitemap-section__item { margin-bottom: .25rem; opacity: 1; visibility: visible; transition: opacity .3s, visibility .3s; }
.sitemap-section__item.is-hidden { opacity: 0; visibility: hidden; height: 0; margin: 0; padding: 0; }
.sitemap-section__item a { color: var(--grantaura-text-dark) !important; text-decoration: none; display: block; padding: .5rem; border-radius: var(--grantaura-border-radius-sm); font-size: .95rem; }
.sitemap-section__item a:hover { color: var(--grantaura-primary) !important; background-color: var(--grantaura-gray-50); padding-left: .75rem; }
.sitemap-section__item a .highlight { background-color: rgba(255, 163, 102, .3); padding: 0 2px; border-radius: 2px; }
.sitemap-section__list--empty { color: var(--grantaura-text-light); font-style: italic; padding: 1rem; background-color: var(--grantaura-gray-50); border-radius: var(--grantaura-border-radius); text-align: center; grid-column: 1 / -1; }
.sitemap-section__more { text-align: center; padding-top: .75rem; grid-column: 1 / -1; }
.sitemap-section__more a { color: var(--grantaura-primary) !important; font-weight: 500; text-decoration: none; display: inline-flex; align-items: center; padding: .5rem 1.2rem; border-radius: var(--grantaura-border-radius); background-color: var(--grantaura-gray-50); }
.sitemap-section__notice { background-color: var(--grantaura-gray-50); padding: .75rem 1rem; border-radius: var(--grantaura-border-radius); margin-bottom: 1rem; font-size: .9rem; color: var(--grantaura-text-light); }

.sitemap-grants__search-info { background-color: var(--grantaura-gray-50); padding: .75rem 1rem; border-radius: var(--grantaura-border-radius); margin-bottom: 1rem; font-size: .9rem; color: var(--grantaura-text-light); display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .75rem; }
.sitemap-grants__browse-link { color: var(--grantaura-primary) !important; font-size: .9rem; font-weight: 500; text-decoration: none; }

.sitemap-footer { margin-top: 3rem; text-align: center; padding: 2rem 1.5rem; background-color: var(--grantaura-gray-50); border-radius: var(--grantaura-border-radius-lg); position: relative; overflow: hidden; box-shadow: var(--grantaura-box-shadow-sm); }
.sitemap-footer__title { font-size: 1.25rem; font-weight: 700; color: var(--grantaura-primary); margin-bottom: 1rem; }
.sitemap-footer p { color: var(--grantaura-text-light); margin-bottom: .75rem; }
.sitemap-footer__link { color: var(--grantaura-primary) !important; text-decoration: none; font-weight: 500; }
.sitemap-footer__button { display: inline-flex; align-items: center; gap: .5rem; background-color: var(--grantaura-primary); color: #fff !important; font-weight: 500; padding: .75rem 1.5rem; border-radius: var(--grantaura-border-radius); text-decoration: none !important; border: none; cursor: pointer; }
.sitemap-footer__button:hover, .sitemap-footer__button:focus { background-color: var(--grantaura-primary-dark); color: #fff !important; text-decoration: none !important; }

.sitemap-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, .5); z-index: 5; display: none; }
.sitemap-overlay.is-active { display: block; }

.back-to-top { position: fixed; bottom: 2rem; right: 2rem; background-color: var(--grantaura-primary); color: #fff; width: 3rem; height: 3rem; border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; border: none; box-shadow: var(--grantaura-box-shadow); opacity: 0; visibility: hidden; transform: translateY(10px); transition: opacity .3s, visibility .3s, transform .3s; z-index: 100; }
.back-to-top.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.back-to-top svg { width: 1.5rem; height: 1.5rem; stroke: #fff; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

@media (min-width: 640px) {
  .sitemap-section__list { grid-template-columns: repeat(2, 1fr); gap: .75rem; }
}

@media (min-width: 768px) {
  .sitemap-container { padding: 3rem 2rem; }
  .sitemap-header { margin-bottom: 3.5rem; }
  .sitemap-title { font-size: 2.75rem; margin-bottom: 1.5rem; }
  .sitemap-meta { font-size: .9rem; gap: 2rem; }
  .sitemap-introduction { margin-top: 2rem; }
  .sitemap-introduction p { font-size: 1.1rem; }
  .sitemap-search__input { font-size: 1.1rem; padding: 1.2rem 1.75rem; padding-right: 3.5rem; }
  .sitemap-index { margin-bottom: 2.5rem; }
  .sitemap-sections { grid-template-columns: repeat(2, 1fr); gap: 2rem; }
  .sitemap-section { padding: 2rem; }
  .sitemap-section__title { font-size: 1.5rem; }
  .sitemap-footer { padding: 2.5rem; }
}

@media (min-width: 1024px) {
  .sitemap-sections { grid-template-columns: repeat(3, 1fr); }
  .sitemap-section--grants { grid-column: span 3; }
  .sitemap-section__list--grants { grid-template-columns: repeat(3, 1fr); }
}

@keyframes titleUnderline { 0% { transform: scaleX(0); } 100% { transform: scaleX(1); } }
@keyframes fadeIn { 0% { opacity: 0; transform: translateY(10px); } 100% { opacity: 1; transform: translateY(0); } }
@keyframes dropdownFadeIn { 0% { opacity: 0; transform: translateY(-10px); } 100% { opacity: 1; transform: translateY(0); } }
@keyframes sectionFadeIn { 0% { opacity: 0; transform: translateY(15px); } 100% { opacity: 1; transform: translateY(0); } }
@keyframes highlightSection { 0%, 100% { box-shadow: var(--grantaura-box-shadow); } 50% { box-shadow: 0 0 0 3px var(--grantaura-primary-light), var(--grantaura-box-shadow-lg); } }
