.faq-accordion-section{
  padding:58px 0 70px;
  background:#f4f7fa;
  color:#173463;
  font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
}
.faq-accordion-container{
  width:min(calc(100% - 40px),466px);
  margin:0 auto;
}
.faq-accordion-title{
  margin:0 0 34px;
  color:#173463;
  font-size:31px;
  line-height:1.45;
  font-weight:700;
  letter-spacing:.03em;
  text-align:center;
}
.faq-accordion-list{
  display:grid;
  gap:14px;
}
.faq-accordion-item{
  margin:0;
  border:0;
  background:transparent;
}
.faq-accordion-item summary{
  position:relative;
  display:block;
  padding:24px 58px 24px 20px;
  background:#21386b;
  color:#fff;
  cursor:pointer;
  list-style:none;
  font-size:18px;
  line-height:1.75;
  font-weight:700;
  letter-spacing:.01em;
}
.faq-accordion-item summary::-webkit-details-marker{display:none;}
.faq-accordion-item summary::after{
  content:"+";
  position:absolute;
  top:50%;
  right:20px;
  transform:translateY(-50%);
  color:#dce5f5;
  font-family:"Noto Sans JP",sans-serif;
  font-size:38px;
  line-height:1;
  font-weight:300;
}
.faq-accordion-item[open]:not(.is-closing) summary::after{
  content:"−";
  font-size:34px;
}
.faq-accordion-item.is-closing summary::after{
  content:"+";
  font-size:38px;
}
.faq-accordion-answer{
  margin:0;
  padding:18px 20px 22px;
  background:#dfe7f6;
  color:#173463;
  font-family:"Noto Sans JP",sans-serif;
  font-size:16px;
  line-height:2.05;
  font-weight:500;
}
@media(max-width:374px){
  .faq-accordion-container{width:calc(100% - 28px);}
  .faq-accordion-title{font-size:27px;}
  .faq-accordion-item summary{
    padding:21px 52px 21px 18px;
    font-size:16px;
  }
  .faq-accordion-answer{
    padding:17px 18px 20px;
    font-size:14px;
  }
}
@media(min-width:768px){
  .faq-accordion-section{padding:82px 0 90px;}
  .faq-accordion-container{width:min(100% - 64px,900px);}
  .faq-accordion-title{
    margin-bottom:44px;
    font-size:42px;
  }
  .faq-accordion-list{gap:16px;}
  .faq-accordion-item summary{
    padding:26px 70px 26px 28px;
    font-size:22px;
  }
  .faq-accordion-answer{
    padding:24px 28px 28px;
    font-size:17px;
  }
}


.faq-accordion-content{
  overflow:hidden;
}
.faq-accordion-item summary{
  transition:background-color .22s ease;
}
.faq-accordion-item summary::after{
  transition:transform .28s ease,opacity .2s ease;
}
.faq-accordion-item[open]:not(.is-closing) summary::after{
  transform:translateY(-50%) rotate(180deg);
}
.faq-accordion-item.is-closing summary::after{
  transform:translateY(-50%) rotate(0deg);
}
@media (prefers-reduced-motion: reduce){
  .faq-accordion-item summary,
  .faq-accordion-item summary::after{
    transition:none;
  }
}

/* PC FAQ accordion two-column layout; SP styling and accordion behavior are unchanged. */
@media (min-width:768px) {
  .faq-accordion-section {
    padding:28px 0 76px;
    background:#f7faff;
  }
  .faq-accordion-container {
    width:min(calc(100% - 96px),1080px);
  }
  .faq-accordion-title {
    margin:0 0 38px;
    font-size:clamp(33px,3.05vw,45px);
    line-height:1.45;
  }
  .faq-accordion-list {
    grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:clamp(28px,7.5vw,112px);
    row-gap:18px;
    align-items:start;
  }
  .faq-accordion-column {
    display:flex;
    flex-direction:column;
    min-width:0;
    gap:18px;
  }
  .faq-accordion-item {
    min-width:0;
  }
  .faq-accordion-item summary {
    min-height:80px;
    padding:22px 58px 22px 21px;
    font-size:clamp(16px,1.3vw,21px);
    line-height:1.75;
  }
  .faq-accordion-item summary::after {
    right:20px;
  }
  .faq-accordion-answer {
    padding:19px 21px 22px;
    font-size:clamp(15px,1.21vw,19px);
    line-height:1.95;
  }
}
@media (min-width:768px) and (max-width:1023px) {
  .faq-accordion-container {
    width:min(calc(100% - 64px),640px);
  }
  .faq-accordion-list {
    grid-template-columns:minmax(0,1fr);
  }
}
