/* FocusCore-inspired FAQ cards with independent native disclosures. */
#faq {
  --faq-blue: #355fae;
  --faq-ink: #242e43;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 100px 0;
  background: #f0f5f8;
  color: var(--faq-ink);
  font-family: 'Noto Sans JP', sans-serif;
}
#faq::before,
#faq::after {
  content: '';
  position: absolute;
  z-index: -1;
  width: 620px;
  height: 620px;
  border-radius: 50%;
  background: linear-gradient(145deg, #ffffff28, #ffffffb3);
  pointer-events: none;
}
#faq::before { top: -370px; right: -130px; }
#faq::after { bottom: -400px; left: -330px; }
#faq .container { max-width: 1120px; }
#faq .faq-heading { margin-bottom: 52px; }
#faq .faq-kicker {
  display: flex;
  align-items: center;
  gap: 38px;
  margin-bottom: 22px;
  font-size: 18px;
  line-height: 1.6;
  font-weight: 700;
  letter-spacing: .03em;
}
#faq .faq-kicker span { display: flex; align-items: center; gap: 9px; }
#faq .faq-kicker span::before {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #a18e62;
}
#faq .faq-kicker::after { content: ''; flex: 1; height: 1px; background: #cfd7dc; }
#faq h2 {
  color: var(--faq-blue);
  font-family: 'Poppins', Arial, sans-serif;
  font-size: 80px;
  font-weight: 300;
  line-height: 1.1;
  letter-spacing: .025em;
}
#faq .faq-list { display: grid; gap: 22px; max-width: none; margin: 0; }
#faq details { border: 0; border-radius: 12px; background: #fff; }
#faq summary {
  position: relative;
  display: flex;
  align-items: center;
  gap: 24px;
  min-height: 118px;
  padding: 34px 40px;
  border-radius: 12px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.7;
  list-style: none;
  transition: color .2s, background-color .2s;
}
#faq summary:hover { color: var(--faq-blue); background-color: #f9fbfd; }
#faq summary:focus-visible { outline: 3px solid var(--faq-blue); outline-offset: 4px; }
#faq summary::marker { content: ''; }
#faq summary::-webkit-details-marker { display: none; }
#faq summary::after { content: none; }
#faq summary::before,
#faq .faq-answer::before {
  display: grid;
  place-items: center;
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  font: 400 22px/1 'Roboto', Arial, sans-serif;
  letter-spacing: 0;
}
#faq summary::before { content: 'Q'; color: #fff; background: var(--faq-blue); }
#faq .faq-question { flex: 1; min-width: 0; overflow-wrap: anywhere; }
#faq .faq-toggle { position: relative; flex: 0 0 22px; width: 22px; height: 22px; color: var(--faq-blue); }
#faq .faq-toggle::before,
#faq .faq-toggle::after {
  content: '';
  position: absolute;
  left: 1px;
  top: 10px;
  width: 20px;
  height: 2px;
  background: currentColor;
  transition: transform .2s;
}
#faq .faq-toggle::after { transform: rotate(90deg); }
#faq details[open] .faq-toggle::after { transform: rotate(0); }
#faq .faq-answer {
  display: flex;
  align-items: flex-start;
  gap: 24px;
  padding: 0 86px 36px 40px;
  font-size: 15px;
  line-height: 1.9;
  letter-spacing: .025em;
}
#faq .faq-answer::before { content: 'A'; border: 1px solid var(--faq-blue); color: var(--faq-blue); }
#faq .faq-answer p { padding-top: 4px; min-width: 0; }
@media (max-width: 700px) {
  #faq { padding: 64px 0; }
  #faq .container { width: calc(100% - 40px); }
  #faq .faq-heading { margin-bottom: 30px; }
  #faq .faq-kicker { font-size: 15px; gap: 22px; margin-bottom: 16px; }
  #faq h2 { font-size: 58px; }
  #faq .faq-list { gap: 14px; }
  #faq summary { min-height: 96px; padding: 23px 20px; gap: 14px; font-size: 15px; }
  #faq summary::before,
  #faq .faq-answer::before { width: 32px; height: 32px; flex-basis: 32px; font-size: 19px; }
  #faq .faq-toggle { flex-basis: 18px; width: 18px; }
  #faq .faq-toggle::before,
  #faq .faq-toggle::after { width: 16px; }
  #faq .faq-answer { padding: 0 20px 26px; gap: 14px; font-size: 13px; line-height: 1.9; }
  #faq .faq-answer p { padding-top: 2px; }
}
@media (prefers-reduced-motion: reduce) {
  #faq summary,
  #faq .faq-toggle::before,
  #faq .faq-toggle::after { transition: none; }
}
