/* FAQページでは、共通テーマの鳥背景を使用しません。 */
body.faq-page-template {
  background-color:#fff !important;
  background-image:none !important;
}

body.faq-page-template::before,
body.faq-page-template::after {
  content:none !important;
  display:none !important;
  background-image:none !important;
}

/* FAQのカテゴリーボタンより、スクロール追従ヘッダーを常に前面へ表示します。 */
body.faq-page-template .fixed_header {
  z-index:100 !important;
}

/* 通常固定ページ用サイドバーを、このFAQページでは完全に非表示にします。 */
body.faq-page-template .side_box {
  display:none !important;
  width:0 !important;
  height:0 !important;
  margin:0 !important;
  padding:0 !important;
}

/* サイドバー用に確保されていた横幅を解除し、本文を中央へ戻します。 */
body.faq-page-template .main_content_wrap {
  display:block !important;
  width:100% !important;
  max-width:none !important;
  margin:0 auto !important;
  padding:0 !important;
}

body.faq-page-template .main_content_wrap > main {
  float:none !important;
  width:100% !important;
  max-width:none !important;
  margin:0 auto !important;
  padding:0 !important;
}

/* FAQ領域の外側に露出する、通常ページ用の鳥背景を白で覆います。 */
body.faq-page-template :is(div, section, article, main):has(.faq-page) {
  background-color:#fff !important;
  background-image:none !important;
}

body.faq-page-template :is(div, section, article, main):has(.faq-page)::before,
body.faq-page-template :is(div, section, article, main):has(.faq-page)::after {
  content:none !important;
  display:none !important;
  background-image:none !important;
}

/* FAQ本体の背面にある、通常固定ページ用の背景だけを消します。 */
body.faq-page-template #content,
body.faq-page-template #contents,
body.faq-page-template .content,
body.faq-page-template .contents,
body.faq-page-template .main-content,
body.faq-page-template .main_contents,
body.faq-page-template .page-content,
body.faq-page-template .page_contents {
  background-image:none !important;
}

body.faq-page-template #content::before,
body.faq-page-template #content::after,
body.faq-page-template #contents::before,
body.faq-page-template #contents::after,
body.faq-page-template .main_contents::before,
body.faq-page-template .main_contents::after,
body.faq-page-template .page_contents::before,
body.faq-page-template .page_contents::after {
  background-image:none !important;
}

.faq-page {
  position:relative !important;
  clear:both;
  left:auto !important;
  width:100% !important;
  max-width:none !important;
  margin-right:0 !important;
  margin-left:0 !important;
  transform:none !important;
  color:#173f74;
  font-family:"Yu Mincho", "Hiragino Mincho ProN", serif;
  background:#fff url(../img/kaikan/honkan-renewal2/bg_img_05.jpg) center top / 100% auto repeat-y !important;
}

.faq-page *,
.faq-page *::before,
.faq-page *::after {
  box-sizing:border-box;
}

.faq-container {
  width:min(1080px, calc(100% - 40px));
  margin:0 auto;
}

.faq-page__header {
  position:relative !important;
  z-index:auto !important;
  float:none !important;
  clear:both;
  width:100% !important;
  height:auto !important;
  padding:70px 0 50px;
  background:transparent !important;
}

.faq-page__header h1 {
  margin:0 0 34px;
  color:#194069;
  font-size:3.6rem;
  font-weight:500;
  letter-spacing:.12em;
  line-height:1.15;
  text-align:center;
}

.faq-page__header h1 small {
  display:block;
  width:210px;
  margin:8px auto 0;
  padding-bottom:10px;
  border-bottom:1px solid #b69961;
  font-size:1.7rem;
  letter-spacing:.08em;
}

.faq-page__header p {
  position:static !important;
  float:none !important;
  width:auto !important;
  height:auto !important;
  margin:0 auto 48px;
  max-width:1060px;
  font-size:2.1rem;
  letter-spacing:.08em;
  line-height:2;
  color: #194069;
}

.faq-category-nav {
  position:static !important;
  display:grid;
  float:none !important;
  clear:both;
  grid-template-columns:repeat(3, 1fr);
  gap:12px 24px;
  width:100% !important;
  height:auto !important;
  max-width:1060px;
  margin:0 auto;
  padding:0 !important;
  transform:none !important;
}

.faq-category-nav button {
  position:relative !important;
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:48px;
  padding:8px 32px;
  border:0;
  border-radius:7px;
  background:#8384A7;
  color:#fff;
  font-family:inherit;
  font-size:2rem;
  line-height:1.4;
  text-align:center;
  cursor:pointer;
  appearance:none;
  transition:background-color .2s ease;
}

.faq-category-nav button:hover,
.faq-category-nav button:focus-visible,
.faq-category-nav button[aria-selected="true"] {
  background:#0E3E79;
}

.faq-category-nav button span {
  position:absolute;
  top:50%;
  right:16px;
  margin:0;
  padding:0;
  transform:translateY(-50%);
}

.faq-category-nav button:last-child {
  grid-column:1;
}

.faq-page__content {
  position:relative !important;
  float:none !important;
  clear:both;
  height:auto !important;
  padding:55px 0 100px;
  background:transparent !important;
}

.faq-category {
  position:static !important;
  float:none !important;
  clear:both;
  width:100% !important;
  height:auto !important;
  padding-top:25px;
  scroll-margin-top:20px;
  transform:none !important;
}

.faq-category[hidden] {
  display:none !important;
}

.faq-category + .faq-category {
  margin-top:40px;
}

.faq-category h2 {
  display:none !important;
}

.faq-item {
  position:static !important;
  float:none !important;
  clear:both;
  width:100% !important;
  height:auto !important;
  overflow:hidden;
  margin:0 0 22px;
  border:1px solid #143a87;
  border-radius:18px;
  background:#fff;
}

.faq-item summary {
  position:relative;
  display:grid;
  grid-template-columns:auto 1fr;
  gap:14px;
  align-items:center;
  padding:15px 64px 15px 46px;
  background:#F0EFED;
  color:#194069;
  font-size:2rem;
  font-weight:600;
  line-height:1.5;
  white-space:normal;
  cursor:pointer;
  list-style:none;
}

.faq-item summary::-webkit-details-marker { display:none; }

.faq-item summary::after {
  content:"＋";
  position:absolute;
  top:50%;
  right:28px;
  color:#1D2088;
  font-family:sans-serif;
  font-size:2rem;
  font-weight:400;
  transform:translateY(-50%);
}

.faq-item[open] summary {
  border-bottom:1px solid #143a87;
}

.faq-item[open] summary::after { content:"−"; }

.faq-item__q {
  font-size:3rem;
  font-weight:400;
}

.faq-item__answer {
  position:static !important;
  float:none !important;
  width:100% !important;
  height:auto !important;
  display:grid;
  grid-template-columns:auto 1fr;
  gap:12px 16px;
  padding:24px 46px 32px;
  color:#171717;
  font-family:"Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size:1.2rem;
  line-height:1.9;
}

.faq-item__a {
  font-size:2.6rem;
  line-height:1.45;
}

.faq-item__body p { margin:0 0 14px; }
.faq-item__body p:last-child { margin-bottom:0; }
.faq-item__body ul { margin:0 0 14px; padding-left:1.5em; }
.faq-item__body strong { font-weight:600; font-size: 2rem; }
.faq-item__body .faq-note { font-size:1.5rem; line-height:1.7; }

.faq-item__link {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  width:fit-content;
  min-width:310px;
  margin:22px 0 0 auto;
  padding:14px 22px;
  border:1px solid #172B88;
  background:#F0F4FB;
  color:#194069;
  text-decoration:none;
}

.faq-item__link span {
  margin-left:auto;
  color:#194069;
  font-size:1.7rem;
}

.faq-item__body {
  font-size:2rem !important;
}

.honkan-faq-tel {
  display:grid;
  grid-template-columns:auto auto auto;
  align-items:center;
  justify-content:center;
  gap:8px 24px;
  width:100%;
  max-width:640px;
  margin:4px 0 22px;
  padding:16px 22px;
  border:1px solid #174ea6;
  border-radius:10px;
  background:#eef7ff;
  color:#143a87;
  text-decoration:none;
  box-sizing:border-box;
  transition:background-color .2s ease, transform .2s ease;
}

.honkan-faq-tel:hover {
  background:#e1f0ff;
  transform:translateY(-1px);
}

.honkan-faq-tel__label,
.honkan-faq-tel__hours {
  font-size:1.5rem;
  font-weight:600;
  line-height:1.4;
}

.honkan-faq-tel__number {
  position:relative;
  padding-left:30px;
  font-family:Arial, sans-serif;
  font-size:2.8rem;
  font-weight:700;
  line-height:1.2;
  letter-spacing:.04em;
  white-space:nowrap;
}

.honkan-faq-tel__number::before {
  content:"\260E";
  position:absolute;
  top:50%;
  left:0;
  font-size:2.2rem;
  transform:translateY(-50%);
}

@media (max-width:700px) {
  .faq-container { width:min(100% - 28px, 1080px); }
  .faq-page__header { padding:45px 0 34px; }
  .faq-page__header h1 { font-size:2.2rem; }
  .faq-page__header p { font-size:1.3rem; line-height:1.85; }
  .faq-category-nav { grid-template-columns:1fr; gap:8px; }
  .faq-category-nav button:last-child { grid-column:auto; }
  .faq-category-nav button { min-height:44px; font-size:1.35rem; }
  .faq-page__content { padding:30px 0 65px; }
  .faq-category h2 { font-size:1.35rem; }
  .faq-item { border-radius:12px; margin-bottom:14px; }
  .faq-item summary { grid-template-columns:auto 1fr; gap:8px; padding:12px 46px 12px 15px; font-size:1.3rem; }
  .faq-item summary::after { right:15px; font-size:1.6rem; }
  .faq-item__q { font-size:1.75rem; }
  .faq-item__answer { grid-template-columns:1fr; gap:2px; padding:18px 16px 22px; font-size:1rem; line-height:1.8; }
  .faq-item__a { font-size:1.55rem; }
  .faq-item__link { width:100%; min-width:0; padding:12px 14px; font-size:1.45rem; }
  .faq-item__body strong {
    font-size: 1.7rem;
  }
  .faq-item__body {
    font-size: 1.7rem !important;
  }
}

@media (max-width:520px) {
  .honkan-faq-tel {
    grid-template-columns:1fr;
    gap:2px;
    margin-bottom:18px;
    padding:14px 16px;
    text-align:center;
  }

  .honkan-faq-tel__number {
    padding-left:26px;
    margin:3px auto;
    font-size:2.5rem;
  }

  .honkan-faq-tel__number::before {
    font-size:1.9rem;
  }

  .honkan-faq-tel__label,
  .honkan-faq-tel__hours {
    font-size:1.3rem;
  }
}
