.faq-hero {
  max-width: 940px;
}

.faq-category-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 34px;
}

.faq-category-nav a {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  padding: 8px 15px;
  border: var(--border-strong);
  border-radius: var(--radius-pill);
  color: var(--navy-900);
  background: rgba(255, 255, 255, .78);
  font-size: var(--type-nav);
  font-weight: var(--weight-medium);
  text-decoration: none;
  transition: border-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);
}

.faq-category-nav a:hover {
  border-color: var(--ocean-600);
  color: var(--ocean-700);
}

.faq-composition {
  display: grid;
  grid-template-columns: minmax(190px, .42fr) minmax(0, 1.58fr);
  align-items: start;
  gap: clamp(40px, 7vw, 96px);
}

.faq-sidebar {
  position: sticky;
  top: 112px;
}

.faq-sidebar > .english-label {
  margin-bottom: 18px;
  color: var(--ocean-700);
}

.faq-category-links {
  display: grid;
  border-top: var(--border-strong);
}

.faq-category-links a {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  gap: 10px;
  padding-block: 15px;
  border-bottom: var(--border-strong);
  color: var(--navy-900);
  text-decoration: none;
}

.faq-category-links a:hover {
  color: var(--ocean-700);
}

.faq-category-links span {
  color: var(--ocean-600);
  font-size: var(--type-label);
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-label);
}

.faq-groups {
  display: grid;
  gap: clamp(64px, 8vw, 104px);
}

.faq-group {
  scroll-margin-top: 112px;
}

.faq-group__header {
  margin-bottom: 28px;
}

.faq-group__header .english-label {
  margin-bottom: 12px;
  color: var(--ocean-700);
}

.faq-group__header h2 {
  margin-bottom: 0;
}

.faq-item__answer a {
  font-weight: var(--weight-medium);
}

.faq-related {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(16px, 2vw, 24px);
}

.faq-related .card {
  color: inherit;
  text-decoration: none;
  transition: transform var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);
}

.faq-related .card:hover {
  border-color: var(--ocean-600);
  transform: translateY(-2px);
}

.faq-related .english-label {
  color: var(--ocean-700);
}

.faq-related p:last-child {
  color: var(--muted);
}

@media (max-width: 980px) {
  .faq-related {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 820px) {
  .faq-composition {
    grid-template-columns: 1fr;
  }

  .faq-sidebar {
    position: static;
  }

  .faq-category-links {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    border-top: 0;
  }

  .faq-category-links a {
    display: flex;
    min-height: 48px;
    align-items: center;
    padding: 10px 12px;
    border: var(--border-strong);
    border-radius: var(--radius-sm);
  }
}

@media (max-width: 620px) {
  .faq-category-nav,
  .faq-category-nav a {
    width: 100%;
  }

  .faq-category-nav a {
    justify-content: center;
  }

  .faq-category-links,
  .faq-related {
    grid-template-columns: 1fr;
  }
}
