@charset "UTF-8";

/* PRIVACY POLICY専用：完成済み共通パーツ・他ページと分離 */
.privacy-policy {
  background: #fff;
  color: #000;
  font-weight: 400;
  letter-spacing: normal;
  line-height: 1.5;
}

.privacy-policy__header {
  padding: 64px 20px;
  border-bottom: 1px solid rgb(0 0 0 / 15%);
  background: #f1f0ec;
}

.privacy-policy__header-inner {
  max-width: 960px;
  margin: 0 auto;
}

.privacy-policy__accent {
  display: block;
  width: 48px;
  height: 4px;
  background: #e21717;
}

.privacy-policy__title {
  margin-top: 28px;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: clamp(3.5rem, 8vw, 6.5rem);
  font-weight: 800;
  line-height: 0.9;
  letter-spacing: -0.045em;
  overflow-wrap: anywhere;
}

.privacy-policy__subtitle {
  margin-top: 24px;
  font-size: 16px;
  font-weight: 700;
  line-height: 24px;
  letter-spacing: 0.08em;
}

.privacy-policy__intro {
  max-width: 760px;
  margin-top: 40px;
  color: rgb(0 0 0 / 70%);
  font-size: 14px;
  line-height: 32px;
  overflow-wrap: anywhere;
}

.privacy-policy__body { padding: 64px 20px; }
.privacy-policy__content { max-width: 800px; margin: 0 auto; border-top: 2px solid #000; }

.privacy-policy__section {
  display: grid;
  gap: 20px;
  padding: 40px 0;
  border-bottom: 1px solid rgb(0 0 0 / 20%);
}

.privacy-policy__number {
  color: #e21717;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 1.68px;
}

.privacy-policy__text { min-width: 0; overflow-wrap: anywhere; }
.privacy-policy__text h2 { font-size: 20px; font-weight: 700; line-height: 1.625; }
.privacy-policy__text > p { margin-top: 20px; color: rgb(0 0 0 / 65%); font-size: 14px; line-height: 32px; }

.privacy-policy__contact,
.privacy-policy__back {
  display: inline-flex;
  align-items: center;
  border-bottom: 1px solid #000;
  color: #000;
  font-size: 14px;
  font-weight: 700;
  line-height: 20px;
  transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.15s cubic-bezier(0.4, 0, 0.2, 1);
}

.privacy-policy__contact { gap: 12px; margin-top: 28px; padding-bottom: 8px; }
.privacy-policy__back-wrap { padding-top: 48px; }
.privacy-policy__back { gap: 16px; padding-bottom: 12px; }
.privacy-policy__arrow {
  flex-shrink: 0;
  font-family: 'Barlow Condensed', sans-serif;
  transition: transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);
}
.privacy-policy__back .privacy-policy__arrow { font-size: 20px; line-height: 28px; }
.privacy-policy a:focus-visible { outline: 2px solid #e21717; outline-offset: 5px; }

@media (hover: hover) {
  .privacy-policy__contact:hover,
  .privacy-policy__back:hover { color: #e21717; border-color: #e21717; }
  .privacy-policy__contact:hover .privacy-policy__arrow { transform: translateX(4px); }
  .privacy-policy__back:hover .privacy-policy__arrow { transform: translateX(-4px); }
}

@media (min-width: 768px) {
  .privacy-policy__header,
  .privacy-policy__body { padding: 96px 40px; }
  .privacy-policy__subtitle { font-size: 18px; line-height: 28px; }
  .privacy-policy__intro { margin-top: 48px; font-size: 16px; line-height: 36px; }
  .privacy-policy__section { grid-template-columns: 48px minmax(0, 1fr); gap: 32px; padding: 56px 0; }
  .privacy-policy__text h2 { font-size: 24px; line-height: 39px; }
  .privacy-policy__text > p { margin-top: 24px; font-size: 16px; line-height: 36px; }
  .privacy-policy__back-wrap { padding-top: 64px; }
  .privacy-policy__back { font-size: 16px; line-height: 24px; }
}

@media (min-width: 1024px) {
  .privacy-policy__header,
  .privacy-policy__body { padding: 112px 56px; }
}

@media (prefers-reduced-motion: reduce) {
  .privacy-policy__contact,
  .privacy-policy__back,
  .privacy-policy__arrow { transition: none; }
  .privacy-policy__contact:hover .privacy-policy__arrow,
  .privacy-policy__back:hover .privacy-policy__arrow { transform: none; }
}
