.faq-page .co-hero { margin-bottom: 3rem; }
.faq-tools {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
  gap: 2rem;
  align-items: end;
  padding: 1.5rem 0;
  margin: 0 0 1rem;
  border-block: 1px solid var(--co-rule);
}
.faq-tools label { display: grid; gap: .5rem; min-width: 0; font-size: .75rem; font-weight: 600; color: #34533e; }
.faq-tools input, .faq-tools select {
  min-height: 3rem;
  width: 100%;
  min-width: 0;
  padding: .55rem 0;
  border: 0;
  border-bottom: 1px solid var(--co-rule);
  border-radius: 0;
  background: transparent;
  color: #294b35;
  font: 1rem var(--body);
}
.faq-tools input::placeholder { color: #68766f; }
.faq-tools button {
  min-height: 3rem;
  padding: .65rem 1.3rem;
  border: 0;
  border-radius: 1.5rem;
  background: #2b5b3f;
  color: #fff;
  cursor: pointer;
  font: .8rem var(--body);
}
.faq-tools button:hover { background: #214b32; }
.faq-tools :focus-visible, .faq-item summary:focus-visible { outline: 3px solid #e4a941; outline-offset: 3px; }
.faq-status { margin: 0; color: #355341; font-size: .8rem; }
.faq-group { margin-top: 3.5rem; }
.faq-group h2 { margin: 0 0 1.5rem; font: 400 clamp(2rem, 3.5vw, 3rem)/1.2 var(--serif); color: #294b35; }
.faq-item { margin: 0; padding: 0; border-top: 1px solid var(--co-rule); border-radius: 0; background: transparent; }
.faq-item:last-child { border-bottom: 1px solid var(--co-rule); }
.faq-item[hidden] { display: none; }
.faq-item summary {
  display: grid;
  grid-template-columns: 3rem minmax(0, 1fr) 2rem;
  gap: 1rem;
  align-items: center;
  min-height: 5.5rem;
  padding: 1.2rem 0;
  cursor: pointer;
  list-style: none;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary span { color: #846527; font: .8rem var(--body); }
.faq-item summary strong { color: #294b35; font: 400 clamp(1.4rem, 2.3vw, 1.9rem)/1.25 var(--serif); }
.faq-item summary i { justify-self: end; color: #294b35; font: 1.5rem var(--body); }
.faq-item summary i::before { content: '+'; }
.faq-item[open] summary i::before { content: '−'; }
.faq-answer { max-width: 75ch; margin-left: 4rem; padding: 0 0 1.7rem 1.25rem; border-left: 1px solid #9c7a354d; line-height: 1.7; }
.faq-answer a { color: #1e5635; text-decoration: underline; text-underline-offset: .2em; }
#faq-empty { padding: 1rem 1.25rem; border-left: 2px solid #846527; background: #e5e8da66; }
#faq-empty[hidden] { display: none; }
@media (max-width: 760px) {
  .faq-page .co-hero { margin-bottom: 2.5rem; }
  .faq-tools { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
  .faq-tools button { justify-self: start; }
  .faq-group { margin-top: 3rem; }
  .faq-item summary { grid-template-columns: 2.1rem minmax(0, 1fr) 1.5rem; gap: .65rem; min-height: 5rem; }
  .faq-item summary strong { font-size: 1.4rem; }
  .faq-answer { margin-left: 2.75rem; padding-left: 1rem; }
}
