html { scroll-behavior: smooth; }
section { scroll-margin-top: 5rem; }
.mobile-menu { display: none; }
[id="42-main"] { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); gap: .7rem; margin-bottom: 2rem; }
[id="42-main"] a { display: block; }
[id="42-main"] img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
dialog { padding: 1rem; border: 0; max-width: 95vw; background: #fff; color: #222; }
dialog::backdrop { background: #122325dd; }
dialog img { display: block; max-width: 87vw; max-height: 77vh; object-fit: contain; margin-top: .4rem; }
.route { display: inline-block; padding: .6em .9em; border: 1px solid currentColor; }
@media (max-width: 767px) {
  .mobile-menu { display: inline-block; margin: .65rem; padding: .45rem .8rem; color: #222; }
  .nav-collapse-main.menu-open { display: block !important; height: auto !important; }
}

.faq-list details { border-bottom: 1px solid #586760; }
.faq-list summary {
  display: flex;
  align-items: center;
  gap: .85rem;
  padding: .85rem .2rem;
  font-weight: 600;
  cursor: pointer;
  list-style: none;
}
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::before {
  content: "";
  flex: 0 0 .55rem;
  height: .55rem;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  margin: 0 .35rem;
  transform: rotate(-45deg);
  transition: transform .18s ease;
}
.faq-list details[open] summary::before { transform: rotate(45deg); }
.faq-list .faq-answer { padding: 0 .45rem 1rem 2rem; }
@media (prefers-reduced-motion: reduce) {
  .faq-list summary::before { transition: none; }
}
