:root {
  --privacy-bg: #f5f0e8;
  --privacy-paper: #fbf8f1;
  --privacy-text: #1a1a1a;
  --privacy-accent: #c53d43;
  --privacy-border: #d0c8b8;
  --privacy-serif: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  --privacy-sans: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.np-privacy-page {
  color: var(--privacy-text);
  font-family: var(--privacy-sans);
  font-size: 16px;
  line-height: 1.85;
}

.np-privacy-page .np-container {
  max-width: 800px;
  margin: 0 auto;
  padding-inline: 20px;
}

.np-privacy-page .np-section {
  padding-block: 72px;
}

.np-privacy-shell {
  position: relative;
}

.np-privacy-shell::before {
  content: "";
  position: absolute;
  inset: 0;
  border: 1px solid rgba(208, 200, 184, 0.72);
  background:
    radial-gradient(760px 280px at 14% 10%, rgba(255, 255, 255, 0.44), transparent 62%),
    radial-gradient(640px 260px at 82% 18%, rgba(197, 61, 67, 0.07), transparent 60%),
    linear-gradient(180deg, rgba(26, 26, 26, 0.02), transparent 24%);
  pointer-events: none;
}

.np-privacy-shell > * {
  position: relative;
}

.np-privacy-page-head {
  margin-bottom: 28px;
  padding-top: 28px;
}

.np-privacy-page-title {
  margin: 0;
  font-family: var(--privacy-serif);
  font-weight: 900;
  font-size: clamp(28px, 4vw, 38px);
  letter-spacing: 0.06em;
}

.np-privacy-page-rule {
  margin-top: 14px;
  height: 1px;
  background: linear-gradient(
    90deg,
    rgba(208, 200, 184, 0.25),
    rgba(208, 200, 184, 0.95),
    rgba(208, 200, 184, 0.25)
  );
}

.np-privacy-doc {
  background: color-mix(in srgb, var(--privacy-paper) 90%, #fff);
  border: 1px solid var(--privacy-border);
  padding: 28px 28px 36px;
  box-shadow: 0 18px 48px rgba(26, 26, 26, 0.04);
}

.np-privacy-intro {
  margin: 0 0 28px;
  color: rgba(26, 26, 26, 0.82);
  font-size: 15px;
  line-height: 2;
}

.np-privacy-article .np-privacy-h2 {
  margin: 2.2em 0 0.85em;
  font-family: var(--privacy-serif);
  font-weight: 800;
  font-size: 1.12rem;
  letter-spacing: 0.04em;
  color: rgba(26, 26, 26, 0.92);
  padding-bottom: 0.35em;
  border-bottom: 1px solid rgba(208, 200, 184, 0.65);
}

.np-privacy-article .np-privacy-h2:first-child {
  margin-top: 0;
}

.np-privacy-article .np-privacy-h3 {
  margin: 1.6em 0 0.65em;
  font-family: var(--privacy-serif);
  font-weight: 700;
  font-size: 1.02rem;
  letter-spacing: 0.03em;
  color: rgba(26, 26, 26, 0.88);
}

.np-privacy-article p {
  margin: 0 0 1em;
  color: rgba(26, 26, 26, 0.82);
  font-size: 15px;
}

.np-privacy-article .np-privacy-contact-block {
  margin-top: 1.25em;
  padding: 16px 18px;
  background: rgba(255, 253, 248, 0.9);
  border: 1px solid rgba(208, 200, 184, 0.55);
  line-height: 2;
}

.np-privacy-article .np-privacy-contact-block a {
  color: var(--privacy-accent);
  text-underline-offset: 3px;
}

.np-privacy-article .np-privacy-contact-block a:hover {
  text-decoration: underline;
}

.np-privacy-list {
  margin: 0 0 1.15em;
  padding-left: 1.35em;
  color: rgba(26, 26, 26, 0.82);
  font-size: 15px;
}

.np-privacy-list li {
  margin: 0.45em 0;
}

.np-privacy-list--plain {
  list-style: none;
  padding-left: 0;
}

.np-privacy-list--plain li {
  margin: 0.65em 0;
  padding-left: 0;
}

.np-privacy-term {
  display: block;
  font-weight: 700;
  color: rgba(26, 26, 26, 0.9);
  margin-bottom: 0.15em;
  letter-spacing: 0.02em;
}

.np-privacy-ordered {
  margin: 0 0 1.15em;
  padding-left: 1.35em;
  color: rgba(26, 26, 26, 0.82);
  font-size: 15px;
}

.np-privacy-ordered li {
  margin: 0.55em 0;
}

@media (max-width: 640px) {
  .np-privacy-page .np-section {
    padding-block: 56px;
  }

  .np-privacy-doc {
    padding: 22px 18px 28px;
  }
}
