/* /faq/: shared header/footer, front-page accordion, coordinate category tabs. */
.faq-page { overflow: hidden; background: var(--color-bg-main); }
.faq-page-main { padding: 0 24px 60px; }
.faq-breadcrumb { display: flex; align-items: center; gap: 8px; padding: 24px 0; font: 500 13px/1 var(--font-article); letter-spacing: 0; }
.faq-page img[src$=".svg"] { width: auto; height: auto; }
.faq-page-heading { position: relative; width: fit-content; margin: 20px auto 0; padding-bottom: 30px; text-align: center; color: var(--color-main); }
.faq-page-heading > img { position: absolute; left: -29px; top: -34.07px; pointer-events: none; }
.faq-page-heading p { position: relative; margin-bottom: 8px; color: var(--color-main); font: 400 20px/1 var(--font-en); }
.faq-page-heading h1 { position: relative; color: var(--color-main); font-size: 32px; line-height: 1.2; letter-spacing: 0; }
.faq-tabs.coordinate-tabs { padding: 0 0 30px; }
.faq-page .faq-box { gap: 12px; }
.faq-page .faq-question { width: 100%; appearance: none; border: 0; background: transparent; color: inherit; font: inherit; text-align: left; letter-spacing: inherit; }
.faq-page .faq-question-text { flex: 1; min-width: 0; }
.faq-page .faq-toggle { flex-shrink: 0; }
.faq-page .faq-answer p { flex: 1; min-width: 0; }
.faq-page .faq-answer[hidden], .faq-page .faq-item[hidden] { display: none; }
/* Long answers must remain fully visible at small widths and when text is enlarged. */
.faq-page .faq-item.is-open .faq-answer { max-height: none; }
.faq-page a:focus-visible, .faq-page button:focus-visible, .faq-page [role="tabpanel"]:focus-visible { outline: 2px solid var(--color-main); outline-offset: 3px; }
.faq-contact { padding: 60px 24px 80px; gap: 20px; background: linear-gradient(147.9469808deg, #ffe9e9 2.5016%, #ffacac 97.498%); text-align: center; font: 700 16px/1.5 var(--font-ja); letter-spacing: .48px; }
.faq-contact-info { display: flex; flex-direction: column; align-items: center; gap: 12px; font-weight: 500; letter-spacing: 0; }
.faq-contact-info a { display: inline-flex; align-items: center; justify-content: center; gap: 4px; padding: 8px 12px; border-radius: 400px; background: var(--color-white); line-height: 1; }
.faq-contact-info p { display: flex; gap: 8px; line-height: 1; }
@media (max-width: 359px) {
  .faq-page-main { padding-left: 16px; padding-right: 16px; }
  .faq-page-heading h1 { font-size: 28px; }
  .faq-tabs.coordinate-tabs { gap: 8px; }
}
