/* ----------------------------------------
   初めてパスキーを作る方（new-pc.tsx / new-sp.tsx）
   ---------------------------------------- */
.passkey-tab-wrapper {
  display: flex;
  gap: 23px;
  width: 100%;
  justify-content: center;

  @media screen and (max-width: 768px) {
    flex-direction: column;
    gap: 10px;
  }

  .passkey-tab-button {
    flex: 1;
    text-align: center;
    padding: 12px;
    background-color: #ffffff;
    color: #4a5568;
    font-weight: 700;
    border-radius: 6px;
    text-decoration: none;
    font-size: 14px;
    border: 1px solid #cbd5e0;
    transition: background-color 0.2s, color 0.2s;

    &:hover {
      background-color: #f7fafc;
    }

    &.active {
      background-color: #1a82d9;
      color: #ffffff;
      border-color: #1a82d9;

      &:hover {
        background-color: #156db3;
      }
    }
  }
}

.accordion {
  display: flex;
  flex-direction: column;
  gap: 25px;
  width: 100%;
}

.passkey-faq-content {
  display: flex;
  flex-direction: column;
  gap: 25px;
  margin-top: 50px;

  > p,
  > ul,
  > ol,
  > div,
  > table {
    margin: 0;
  }

  ol {
    list-style-type: decimal;
    padding-left: 20px;

    li {
      list-style-type: decimal;
      margin-bottom: 15px;

      &:last-child {
        margin-bottom: 0;
      }
    }
  }

  ul {
    list-style-type: disc;
    padding-left: 20px;

    li {
      list-style-type: disc;
      margin-bottom: 10px;

      &:last-child {
        margin-bottom: 0;
      }
    }
  }

  /* 推奨する利用方法のアコーディオンのみ、画像説明テキストを中央揃えにする */
  #pc-recommend &,
  #sp-recommend & {
    > p:not(:first-of-type):not(:nth-of-type(2)) {
      text-align: center;
    }
  }

  img {
    display: block;
    margin: 25px auto;
    max-width: 100%;
    width: auto;
    height: auto;
  }

  small {
    display: block;
    font-size: 12px;
    color: #718096;
    text-align: center;
    margin-top: -30px;
    line-height: 1.5;

    &.block {
      font-size: 14px;
      color: #4a5568;
      text-align: left;
      margin-top: 0;
    }
  }

  /* 推奨環境テーブルのスタイル調整 */
  #pc-environment &,
  #sp-environment &,
  #not-supported-browser &,
  #unregistered & {
    table {
      width: 100%;
      border-collapse: collapse;
      border: 1px solid #d0d4d9;
      font-size: 15px;
      color: #171c23;

      @media screen and (max-width: 640px) {
        font-size: 10px;
        line-height: 1.3;
      }

      th {
        background-color: #ebf0f5;
        font-weight: 700;
        padding: 12px;
        border: 1px solid #d0d4d9;
        text-align: center;

        @media screen and (max-width: 640px) {
          padding: 6px 2px;
        }
      }

      td {
        padding: 15px;
        border: 1px solid #d0d4d9;
        text-align: center;
        background-color: #ffffff;
        vertical-align: middle;

        @media screen and (max-width: 640px) {
          padding: 6px 2px;
        }
      }

      /* 結合表現（Figmaのカンプ再現用） */
      tbody tr:nth-child(1) td:first-child,
      tbody tr:nth-child(3) td:first-child {
        border-bottom: none;
        vertical-align: top;
        padding-top: calc(15px + 0.9em + 15px); /* padding + 1行分の高さの約半分分下げて真ん中に */

        @media screen and (max-width: 640px) {
          padding-top: calc(6px + 0.65em + 6px);
        }
      }
      tbody tr:nth-child(2) td:first-child,
      tbody tr:nth-child(4) td:first-child {
        border-top: none;
        color: transparent; /* 重複ラベルを隠す（マークダウンのセマンティクスは維持） */
        font-size: 0;
      }

      /* 端末（パソコン・スマートフォン・タブレット）列の背景色を薄いグレーにする */
      td:first-child {
        background-color: #ebf0f5;
        font-weight: bold;

        @media screen and (max-width: 640px) {
          white-space: nowrap;
        }
      }
    }

    /* 下部の注記テキスト */
    > p:last-of-type {
      font-size: 13px;
      color: #171c23;
      text-align: center;
      line-height: 1.6;
      margin-top: 15px;
    }
  }
}

.passkey-about-section {
  display: flex;
  flex-direction: column;
  gap: 25px;
  h3 {
    font-size: 22px;
    font-weight: 700;
  }
  ul {
    padding-left: 20px;
    li {
      list-style-type: disc;
    }
  }
}

/* ----------------------------------------
   Layout 関連スタイル (passkey.cssから移行)
   ---------------------------------------- */
.passkey-container {
  max-width: 885px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  gap: 80px;
  padding: 30px 0px 80px;

  .header {
    display: flex;
    flex-direction: column;
    gap: 2em;
    width: 100%;

    h1 {
      color: #151515;
      font-size: 22px;
      font-weight: 700;
      line-height: normal;
      text-align: center;
    }
  }

  .content {
    display: flex;
    flex-direction: column;
    gap: 100px;
    width: 100%;

    section {
      display: flex;
      flex-direction: column;
      gap: 25px;
      padding: 0;
    }

    .sub-title {
      font-weight: 700;
      font-size: 22px;
      line-height: 28px;
      color: #333333;
      width: 100%;
    }

    .with-lines {
      display: flex;
      align-items: center;
      gap: 20px;

      &::before,
      &::after {
        content: "";
        flex-grow: 1;
        border-bottom: 1px solid #cbd5e0;
      }
    }
  }

  .inquiry {
    width: 100%;
    display: grid;
    place-items: start;
  }

  @media screen and (max-width: 1024px) {
    padding: 30px 40px 60px;
    width: 100%;
  }

  @media screen and (max-width: 768px) {
    padding: 30px 20px 60px;
    width: 100%;
  }
}

.list-button {
  display: inline-flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  max-width: 330px;
  height: 55px;
  padding: 15px;
  background-color: #ffffff;
  border: 1px solid #d0d0d0;
  border-radius: 10px;
  text-decoration: none;
  box-sizing: border-box;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.8;
  color: #303036;
  transition: 0.2s;

  &:hover {
    background-color: #ececec;
  }

  &::after {
    font-family: "Font Awesome 6 Free";
    content: "\f054";
    /* biome-ignore lint/suspicious/noShorthandPropertyOverrides: */
    font: var(--fa-font-solid);
    font-size: 10px;
    color: #a0aec0;
  }

  @media screen and (max-width: 1024px) {
    max-width: 370px;
  }
}

.pc-only {
  display: none;
}
@media screen and (min-width: 520px) {
  .pc-only {
    display: inline;
  }
}

/* ----------------------------------------
   パスキーページ共通フッター (PasskeyFooter.tsx)
   ---------------------------------------- */
.passkey-footer-section {
  display: flex;
  flex-direction: column;
  gap: 25px;
  width: 100%;
  h3 {
    font-weight: 700;
    font-size: 22px;
    @media screen and (max-width: 768px) {
      line-height: 1.5;
    }
  }
  .footer-links {
    display: flex;
    gap: 23px;
    flex-wrap: wrap;
    @media screen and (max-width: 768px) {
      flex-direction: column;
    }
    .list-button {
      max-width: inherit;
      width: 100%;
      flex: 1;
      @media screen and (max-width: 768px) {
        flex: none;
      }
    }
  }
}
.inquiryBox summary {
  padding: 15px 0;
  font-size: 18px;
}

@media screen and (min-width: 520px) {
  .inquiryBox summary {
    padding: 15px 0;
  }
}

.answer-inner {
  padding: 0;
  padding-bottom: 50px;
}
