/* V2.7 — wordmark and FAQ polish. Loaded last to keep the established layout intact. */
.site-header .brand > .brand-copy > strong,
.site-header .brand > span.brand-copy > strong {
  font-family: var(--serif);
  font-size: 17px;
  font-weight: 600;
  line-height: .9;
  letter-spacing: .045em;
  font-synthesis: none;
  font-kerning: normal;
  font-feature-settings: "kern" 1, "liga" 1;
  text-rendering: optimizeLegibility;
}

.site-header .brand > .brand-copy > small,
.site-header .brand > span.brand-copy > small {
  margin-top: 5px;
  font-family: var(--sans);
  font-size: 6.5px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: .09em;
  opacity: .66;
}

.footer-brand .brand > span:not(.brand-mark) > strong {
  font-family: var(--serif);
  font-size: 24px;
  font-weight: 600;
  line-height: .95;
  letter-spacing: .025em;
  font-kerning: normal;
  font-feature-settings: "kern" 1, "liga" 1;
}

.association-faq {
  --faq-wash: rgba(184, 135, 54, .055);
  --faq-wash-open: rgba(184, 135, 54, .095);
  --faq-icon-border: rgba(142, 104, 40, .27);
  --faq-icon-bg: rgba(255, 255, 255, .38);
}

.association-faq .faq-layout {
  align-items: start;
  gap: clamp(42px, 6vw, 86px);
}

.association-faq .faq-layout > :first-child {
  position: sticky;
  top: 132px;
}

.association-faq .faq-list {
  display: grid;
  gap: 5px;
}

.association-faq .faq-list > details,
html[data-theme="night"] .association-faq .faq-list > details {
  position: relative;
  overflow: clip;
  padding: 0 18px 0 22px;
  border: 0;
  border-radius: 18px 0 18px 0;
  background: transparent;
  box-shadow: none;
  color: var(--ink);
  transition: background-color .3s ease, box-shadow .3s ease;
}

.association-faq .faq-list > details:last-child {
  border-bottom: 0;
}

.association-faq .faq-list > details::before {
  content: "";
  position: absolute;
  inset: 17px auto 17px 0;
  width: 2px;
  border-radius: 2px;
  background: linear-gradient(180deg, transparent, var(--gold), transparent);
  opacity: 0;
  transform: scaleY(.35);
  transition: opacity .3s ease, transform .42s cubic-bezier(.22, .61, .36, 1);
}

.association-faq .faq-list > details:hover {
  background: var(--faq-wash);
}

.association-faq .faq-list > details[open],
.association-faq .faq-list > details[data-faq-state="open"] {
  padding-left: 22px;
  background: linear-gradient(100deg, var(--faq-wash-open), transparent 82%);
  box-shadow: 0 14px 34px rgba(16, 38, 51, .045);
}

.association-faq .faq-list > details[open]::before,
.association-faq .faq-list > details[data-faq-state="open"]::before {
  opacity: 1;
  transform: scaleY(1);
}

.association-faq .faq-list summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 36px;
  align-items: center;
  gap: 22px;
  min-height: 76px;
  padding: 18px 0;
  color: var(--ink);
  font-family: var(--serif);
  font-size: clamp(20px, 1.65vw, 24px);
  font-weight: 600;
  line-height: 1.12;
  list-style: none;
  cursor: pointer;
  text-wrap: balance;
}

.association-faq .faq-list summary::-webkit-details-marker {
  display: none;
}

.association-faq .faq-list summary:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 5px;
  border-radius: 6px;
}

.association-faq .faq-list summary > span {
  position: relative;
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border: 1px solid var(--faq-icon-border);
  border-radius: 50%;
  background: var(--faq-icon-bg);
  color: transparent;
  font-size: 0;
  transform: none;
  transition: border-color .28s ease, background-color .28s ease, transform .42s cubic-bezier(.22, .61, .36, 1);
}

.association-faq .faq-list summary > span::before,
.association-faq .faq-list summary > span::after {
  content: "";
  position: absolute;
  width: 12px;
  height: 1.5px;
  border-radius: 2px;
  background: var(--gold-dark);
}

.association-faq .faq-list summary > span::after {
  transform: rotate(90deg);
  transition: transform .38s cubic-bezier(.22, .61, .36, 1), opacity .25s ease;
}

.association-faq .faq-list > details:hover summary > span,
.association-faq .faq-list > details[open] summary > span {
  border-color: var(--gold);
  background: rgba(184, 135, 54, .1);
}

.association-faq .faq-list > details[open] summary > span,
.association-faq .faq-list > details[data-faq-state="open"] summary > span {
  transform: rotate(180deg);
}

.association-faq .faq-list > details[open] summary > span::after,
.association-faq .faq-list > details[data-faq-state="open"] summary > span::after {
  opacity: 0;
  transform: rotate(0deg);
}

/* During the closing animation, <details> remains technically open until the
   panel reaches zero. The explicit state keeps the visual motion in sync. */
.association-faq .faq-list.nr-faq-ready > details[data-faq-state="closed"] {
  background: transparent;
  box-shadow: none;
}

.association-faq .faq-list.nr-faq-ready > details[data-faq-state="closed"]::before {
  opacity: 0;
  transform: scaleY(.35);
}

.association-faq .faq-list.nr-faq-ready > details[data-faq-state="closed"] summary > span {
  transform: none;
}

.association-faq .faq-list.nr-faq-ready > details[data-faq-state="closed"] summary > span::after {
  opacity: 1;
  transform: rotate(90deg);
}

.association-faq .faq-answer {
  height: 0;
  overflow: hidden;
}

.association-faq .faq-answer-inner {
  padding: 0 58px 25px 0;
  opacity: 0;
  transform: translateY(-7px);
  transition: opacity .25s ease, transform .36s cubic-bezier(.22, .61, .36, 1);
}

.association-faq details[data-faq-state="open"] .faq-answer-inner {
  opacity: 1;
  transform: translateY(0);
}

.association-faq .faq-answer-inner > :last-child {
  margin-bottom: 0;
}

.association-faq .faq-list p {
  max-width: 650px;
  margin: 0;
  color: var(--text-muted);
  font-size: 15px;
  line-height: 1.75;
}

html[data-theme="night"] .association-faq {
  --faq-wash: rgba(194, 161, 91, .045);
  --faq-wash-open: rgba(194, 161, 91, .095);
  --faq-icon-border: rgba(220, 195, 140, .28);
  --faq-icon-bg: rgba(255, 255, 255, .025);
}

html[data-theme="night"] .association-faq .faq-list > details {
  color: var(--theme-text);
}

html[data-theme="night"] .association-faq .faq-list summary {
  color: var(--theme-text);
}

html[data-theme="night"] .association-faq .faq-list p {
  color: var(--theme-muted);
}

html[data-theme="night"] .association-faq .faq-list > details[open],
html[data-theme="night"] .association-faq .faq-list > details[data-faq-state="open"] {
  background: linear-gradient(100deg, var(--faq-wash-open), transparent 82%);
  box-shadow: 0 18px 42px rgba(0, 0, 0, .12);
}

html[data-theme="night"] .association-faq .faq-list summary > span::before,
html[data-theme="night"] .association-faq .faq-list summary > span::after {
  background: var(--gold-light);
}

@media (max-width: 1100px) {
  .site-header .brand > .brand-copy > strong,
  .site-header .brand > span.brand-copy > strong {
    font-size: 15px;
    letter-spacing: .035em;
  }
}

@media (max-width: 900px) {
  .association-faq .faq-layout > :first-child {
    position: static;
  }
}

@media (max-width: 620px) {
  .association-faq .faq-layout {
    gap: 24px;
  }

  .association-faq .faq-layout h2 {
    font-size: clamp(38px, 12vw, 48px);
  }

  .association-faq .faq-list > details,
  html[data-theme="night"] .association-faq .faq-list > details {
    padding-right: 12px;
    padding-left: 14px;
    border-radius: 14px 0 14px 0;
  }

  .association-faq .faq-list > details[open],
  .association-faq .faq-list > details[data-faq-state="open"] {
    padding-left: 14px;
  }

  .association-faq .faq-list summary {
    grid-template-columns: minmax(0, 1fr) 34px;
    gap: 14px;
    min-height: 70px;
    padding: 16px 0;
    font-size: 21px;
  }

  .association-faq .faq-list summary > span {
    width: 34px;
    height: 34px;
  }

  .association-faq .faq-answer-inner {
    padding: 0 8px 22px 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .association-faq .faq-list > details,
  .association-faq .faq-list > details::before,
  .association-faq .faq-list summary > span,
  .association-faq .faq-list summary > span::after,
  .association-faq .faq-answer-inner {
    transition-duration: .01ms;
  }
}
