@charset "UTF-8";

.faq-page{--faq-navy:#001961;--faq-blue:#0b3479;--faq-ink:#123f55;--faq-teal:#3f7185;--faq-surface:#f5f5f5;--faq-surface-blue:#eff3fa;--faq-border:#d9dde6;color:#333}
.faq-page *,.faq-page *::before,.faq-page *::after{box-sizing:border-box}
.faq-mv{background:#001961}
.faq-page+.cta{display:none}
.faq-intro,.faq-group,.faq-contact{padding:clamp(72px,8vw,108px) 0}
.faq-intro .inner,.faq-group .inner,.faq-contact .inner{max-width:1024px}
.faq-eyebrow,.faq-index__label{margin:0 0 16px;color:var(--faq-teal);font-size:13px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.faq-intro h2,.faq-contact h2{max-width:900px;margin:0 0 30px;color:var(--faq-ink);font-family:"Noto Serif JP",serif;font-size:clamp(34px,4vw,52px);font-weight:700;line-height:1.55;letter-spacing:.06em}
.faq-intro__lead{max-width:860px;margin:0 0 20px;color:var(--faq-ink);font-size:clamp(17px,2vw,20px);font-weight:700;line-height:2}
.faq-intro__text{max-width:860px;margin:0;font-size:16px;line-height:2}
.faq-button{display:inline-flex;align-items:center;justify-content:center;min-height:54px;margin-top:38px;padding:13px 28px;border:1px solid var(--faq-blue);background:var(--faq-blue);color:#fff!important;font-size:16px;font-weight:700;line-height:1.5;text-align:center}
.faq-button:hover{background:#fff;color:var(--faq-blue)!important;opacity:1}
.faq-index{padding:50px 0 54px;border-top:1px solid var(--faq-border);border-bottom:1px solid var(--faq-border);background:var(--faq-surface-blue)}
.faq-index ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:0;border-top:1px solid var(--faq-border);list-style:none}
.faq-index li{min-width:0;border-bottom:1px solid var(--faq-border)}
.faq-index li:not(:nth-child(3n+1)){border-left:1px solid var(--faq-border)}
.faq-index a{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:72px;padding:14px 16px;background:rgba(255,255,255,.72);color:var(--faq-ink);font-weight:700;line-height:1.55}
.faq-index a:hover{background:#fff;color:var(--faq-blue);opacity:1}
.faq-index a>span{color:var(--faq-teal);font-size:13px;letter-spacing:.08em}
.faq-index a small{color:#5c6570;font-size:12px;font-weight:500;letter-spacing:.04em;white-space:nowrap}
.faq-group{scroll-margin-top:110px}
.faq-group:nth-child(even){background:var(--faq-surface)}
.faq-group__header{display:grid;grid-template-columns:220px minmax(0,1fr);gap:32px;align-items:start;margin-bottom:38px}
.faq-group__header p{display:flex;align-items:center;gap:13px;margin:8px 0 0;color:var(--faq-teal);font-size:13px;font-weight:700;letter-spacing:.08em}
.faq-group__header p span{font-size:22px}
.faq-group__header h2{margin:0;color:var(--faq-ink);font-size:clamp(27px,3.2vw,40px);font-weight:700;line-height:1.6;text-wrap:balance}
.faq-list{border-top:1px solid var(--faq-border)}
.faq-item{border-bottom:1px solid var(--faq-border);background:#fff}
.faq-item summary{display:grid;grid-template-columns:64px minmax(0,1fr) 30px;align-items:center;gap:18px;min-height:84px;padding:20px 24px;color:var(--faq-ink);cursor:pointer;list-style:none}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:hover{color:var(--faq-blue)}
.faq-item__number{color:var(--faq-teal);font-size:14px;font-weight:700;letter-spacing:.08em}
.faq-item__question{font-size:18px;font-weight:700;line-height:1.75}
.faq-item__icon{position:relative;width:26px;height:26px}
.faq-item__icon::before,.faq-item__icon::after{position:absolute;top:50%;left:50%;width:18px;height:1px;content:"";background:var(--faq-navy);transform:translate(-50%,-50%);transition:transform .2s ease}
.faq-item__icon::after{transform:translate(-50%,-50%) rotate(90deg)}
.faq-item[open] .faq-item__icon::after{transform:translate(-50%,-50%) rotate(0deg)}
.faq-item__answer{padding:0 78px 28px 106px}
.faq-item__answer p{margin:0;line-height:2}
.faq-item__answer .faq-item__link{margin-top:12px}
.faq-item__link a{color:var(--faq-blue);text-decoration:underline;text-underline-offset:.2em}
.faq-contact{background:var(--faq-navy);color:#fff}
.faq-contact .faq-eyebrow{color:#a8cedb}
.faq-contact h2{color:#fff}
.faq-contact p:not(.faq-eyebrow){max-width:820px;margin:0;font-size:17px;line-height:2}
.faq-button--light{border-color:#fff;background:#fff;color:var(--faq-navy)!important}
.faq-button--light:hover{background:transparent;color:#fff!important}
.faq-page a:focus-visible,.faq-page summary:focus-visible{outline:3px solid #70a8b6;outline-offset:4px}

@media(max-width:768px){
  .faq-intro,.faq-group,.faq-contact{padding:70px 0}
  .faq-intro h2,.faq-contact h2{font-size:31px;letter-spacing:.03em}
  .faq-index{padding:42px 0 46px}
  .faq-index ol{grid-template-columns:1fr}
  .faq-index li:not(:nth-child(3n+1)){border-left:0}
  .faq-index a{min-height:60px}
  .faq-group{scroll-margin-top:74px}
  .faq-group__header{grid-template-columns:1fr;gap:12px;margin-bottom:28px}
  .faq-group__header p{margin-top:0}
  .faq-item summary{grid-template-columns:48px minmax(0,1fr) 26px;gap:10px;min-height:72px;padding:18px 14px}
  .faq-item__question{font-size:16px}
  .faq-item__answer{padding:0 50px 24px 72px}
  .faq-item__answer p{font-size:15px}
}

@media(max-width:390px){
  .faq-intro,.faq-group,.faq-contact{padding:56px 0}
  .faq-intro h2,.faq-contact h2{font-size:27px;overflow-wrap:anywhere}
  .faq-intro__lead,.faq-contact p:not(.faq-eyebrow){font-size:16px}
  .faq-button{width:100%;padding-right:16px;padding-left:16px}
  .faq-index a{grid-template-columns:30px minmax(0,1fr) auto;padding-right:12px;padding-left:12px}
  .faq-item summary{grid-template-columns:42px minmax(0,1fr) 22px;padding-right:10px;padding-left:10px}
  .faq-item__number{font-size:12px}
  .faq-item__answer{padding:0 16px 22px}
}

@media(prefers-reduced-motion:reduce){
  .faq-page *,.faq-page *::before,.faq-page *::after{scroll-behavior:auto!important;transition-duration:.01ms!important}
}
