/* Q&A専用。PLANと同じ鮮明なCSSドット背景。 */
.faq-section { padding: 56px 8% 58px; background-color: #79b9dc; background-image: radial-gradient(circle, #ffffff24 1.8px, transparent 2px); background-size: 11px 11px; color: #555; }
.faq-heading { margin: 0 0 40px; color: #fff; text-align: center; }
.faq-heading-en { display: block; font: 700 36px/1.15 Arial, Helvetica, sans-serif; letter-spacing: .025em; }
.faq-heading-ja { display: block; margin-top: 4px; font-size: 16px; font-weight: 700; line-height: 1.5; }
.faq-list { display: grid; gap: 20px; }
.faq-item { min-width: 0; }
.faq-question { container-type: inline-size; margin: 0; font-size: 16px; font-weight: 600; }
/* 最長19文字とアイコン用60pxを確保し、狭い画面では文字だけ縮小する。 */
.faq-question button { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; height: 60px; padding: 0 20px 0 19px; border: 0; border-radius: 999px; background: #fff; color: #555; font: inherit; font-size: min(16px, calc((100cqi - 60px) / 19.25)); line-height: 1.5; text-align: left; cursor: pointer; }
.faq-question button > span:first-child { min-width: 0; white-space: nowrap; }
.faq-question button:focus-visible { outline: 3px solid #478db8; outline-offset: 4px; }
.faq-icon { position: relative; flex: 0 0 18px; width: 18px; height: 18px; }
.faq-icon::before, .faq-icon::after { content: ''; position: absolute; background: currentColor; }
.faq-icon::before { left: 0; top: 8px; width: 18px; height: 2px; }
.faq-icon::after { top: 0; left: 8px; width: 2px; height: 18px; transition: transform .25s ease; }
.faq-question button[aria-expanded="true"] .faq-icon::after { transform: scaleY(0); }
.faq-answer { display: grid; grid-template-rows: 0fr; visibility: hidden; transition: grid-template-rows .3s ease, visibility .3s; }
.faq-answer[aria-hidden="false"] { grid-template-rows: 1fr; visibility: visible; }
.faq-answer-inner { min-height: 0; overflow: hidden; }
.faq-answer p { margin: 8px 0 0; padding: 18px 20px; border-radius: 22px; background: #fff; color: #555; font-size: 14px; font-weight: 500; line-height: 1.9; overflow-wrap: anywhere; }
@media (prefers-reduced-motion: no-preference) {
  .faq-section .sd-reveal-visible { animation-duration: .8s; animation-delay: var(--feature-reveal-delay, 0s); }
}
@media (prefers-reduced-motion: reduce) {
  .faq-answer, .faq-icon::after { transition: none; }
}
