@charset "UTF-8";
/* ==========================================================================
   プライバシーポリシー
   既存のデザイントークンと下層ページの余白規則を使用
   ========================================================================== */

.p-policy {
  padding-block: var(--section-pt) var(--section-pb);
}

.p-policy__inner {
  width: min(var(--container), 900px);
  margin-inline: auto;
}

.p-policy__intro {
  margin-bottom: 40px;
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 34px;
  color: var(--color-body);
}

.p-policy__sections {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.p-policy__section {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.p-policy__heading {
  font-family: var(--font-display);
  font-size: 24px;
  font-weight: 500;
  line-height: normal;
  color: var(--color-heading-sub);
}

.p-policy__section p,
.p-policy__list,
.p-policy__table {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 34px;
  color: var(--color-body);
}

.p-policy__list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-left: 24px;
  list-style: disc;
}

.p-policy__table-wrap {
  width: 100%;
  overflow-x: auto;
}

.p-policy__table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.p-policy__table th,
.p-policy__table td {
  padding: 16px 24px;
  border: 1px solid var(--color-rule);
  overflow-wrap: anywhere;
  text-align: left;
  vertical-align: top;
}

.p-policy__table th {
  width: 32%;
  background-color: var(--color-bg-price);
  font-weight: 500;
  color: var(--color-heading-sub);
}

.p-policy a {
  text-decoration: underline;
  text-underline-offset: 4px;
}

.p-policy__contact {
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-style: normal;
}

.p-policy__contact p {
  overflow-wrap: anywhere;
}

.p-policy__date {
  margin-top: 40px;
  font-size: 14px;
  line-height: 20px;
  color: var(--color-body);
  text-align: right;
}

@media (max-width: 1023px) {
  .p-policy {
    padding-block: 96px;
  }
}

@media (max-width: 767px) {
  .p-policy {
    padding-block: 80px;
  }

  .p-policy__intro {
    margin-bottom: 32px;
    line-height: 25.6px;
  }

  .p-policy__sections {
    gap: 32px;
  }

  .p-policy__heading {
    font-size: 20px;
  }

  .p-policy__section p,
  .p-policy__list,
  .p-policy__table {
    line-height: 25.6px;
  }

  .p-policy__table,
  .p-policy__table tbody,
  .p-policy__table tr,
  .p-policy__table th,
  .p-policy__table td {
    display: block;
    width: 100%;
  }

  .p-policy__table td {
    border-top: 0;
  }

  .p-policy__table tr + tr th {
    border-top: 0;
  }

  .p-policy__table th,
  .p-policy__table td {
    padding: 16px;
  }

  .p-policy__date {
    margin-top: 32px;
  }
}
