.policy-main {
  background: var(--white);
  padding: 40px 0 80px;
}

.policy-body {
  max-width: 800px;
  display: flex;
  flex-direction: column;
  gap: 36px;
}

.policy-intro {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 15px;
  line-height: 29.25px;
  color: var(--azure-38);
}

.policy-section {
  display: flex;
  flex-direction: column;
  gap: 9.25px;
}

.policy-heading {
  border-left: 3px solid var(--azure-46);
  padding-left: 16px;
}

.policy-heading h2 {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  font-size: 17px;
  line-height: 29.75px;
  color: var(--azure-12);
}

.policy-text {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 15px;
  line-height: 28.5px;
  color: var(--azure-38);
}

.policy-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding-left: 20px;
  margin-top: 4px;
}

.policy-list li {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 15px;
  line-height: 28.5px;
  color: var(--azure-38);
  list-style: disc;
  margin-left: 4px;
}

.policy-contact-box {
  background: var(--grey-98);
  border: 1px solid var(--azure-87);
  border-radius: 8px;
  padding: 16px 19px;
  margin-top: 9px;
}

.policy-contact-box p {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 28px;
  color: var(--azure-12);
}

/* ── Responsive ── */
@media (max-width: 768px) {
  .policy-main { padding: 32px 0 60px; }
}
