@charset "utf-8";

/* A quiet, single-column document with a comfortable reading width. */
.privacyDesigned {
  --pp-accent: var(--brand-accent);
  --pp-ink: #503e32;
  --pp-muted: #766759;
  --pp-line: var(--brand-line);
  color: var(--pp-ink);
  background: #fff;
  overflow: visible;
}
.privacyDesigned .ppInner { width: min(960px, calc(100% - 96px)); margin-inline: auto; }
.privacyDesigned [id] { scroll-margin-top: 108px; }
.privacyDesigned :is(h1,h2) { margin: 0; color: var(--pp-ink); font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-weight: 600; line-height: 1.65; line-break: strict; }
.privacyDesigned a:focus-visible { outline: 3px solid var(--pp-accent); outline-offset: 5px; }
.privacyDesigned > .ppHero { margin: 0; padding: 25px 0 0; background: #fff; }
.ppPageHeader { padding: 43px 0 40px; }
.ppEyebrow { margin: 0 0 20px; color: var(--pp-accent); font-size: 12px; font-weight: 700; letter-spacing: .08em; line-height: 1.7; }
.privacyDesigned .ppHero h1 { font-size: clamp(34px,3.8vw,46px); line-height: 1.5; letter-spacing: .03em; }
.ppHero h1 > span, .ppHeroLead > span { display: inline-block; }
.ppHeroLead { margin: 20px 0 0; color: var(--pp-accent); font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: 23px; font-weight: 600; line-height: 1.75; }
.ppHeroDescription { margin: 14px 0 0; color: var(--pp-muted); font-size: 15px; line-height: 2; }

.privacyDesigned .ppPolicies { padding: 38px 0 84px; border-top: 1px solid var(--pp-line); }
.ppPolicyItem { margin: 0; padding: 0; }
.ppPolicyItem + .ppPolicyItem { margin-top: 34px; }
.privacyDesigned .ppItemHeading h2 { margin: 0 0 12px; font-size: 22px; letter-spacing: .01em; }
/* Let paragraphs use the same width as the document, with normal Japanese line breaking. */
.ppItemBody > p { margin: 0; color: #65584c; font-size: 15px; line-height: 2.1; word-break: normal; overflow-wrap: normal; line-break: strict; }
.ppItemBody .ppContactDetails { display: flex; flex-wrap: wrap; gap: 6px 28px; margin-top: 16px; font-size: 14px; }
.ppContactDetails a { color: var(--pp-accent); text-decoration: underline; text-underline-offset: 4px; }
.ppContactDetails a:hover { color: var(--pp-ink); }
.ppContactDetails a[href^="tel:"],
.ppContactDetails a[data-sp-tel] { white-space: nowrap; font-variant-numeric: tabular-nums; }

/* Keep policy text visible without scroll-triggered entrances. */
.privacyDesigned .ppHero.motionReveal { opacity: 1; transform: none; transition: none; }

@media (max-width: 1100px) {
  .privacyDesigned .ppInner { width: min(960px, calc(100% - 64px)); }
}
@media (max-width: 900px) {
  .ppPageHeader { padding-block: 32px 34px; }
  .privacyDesigned .ppHero h1 { font-size: clamp(28px,4vw,36px); }
  .ppHeroLead { font-size: 21px; }
  .privacyDesigned .ppPolicies { padding-block: 32px 64px; }
}
@media (max-width: 600px) {
  .privacyDesigned .ppInner { width: calc(100% - 44px); }
  .privacyDesigned [id] { scroll-margin-top: 82px; }
  .privacyDesigned > .ppHero { padding-top: 20px; }
  .ppPageHeader { padding-block: 27px 28px; }
  .ppEyebrow { margin-bottom: 15px; font-size: 11px; }
  .privacyDesigned .ppHero h1 { font-size: clamp(25px,7.3vw,36px); letter-spacing: 0; }
  .ppHeroLead { margin-top: 16px; font-size: 20px; }
  .ppHeroDescription { margin-top: 13px; font-size: 14px; }
  .privacyDesigned .ppPolicies { padding-block: 28px 48px; }
  .ppPolicyItem + .ppPolicyItem { margin-top: 28px; }
  .privacyDesigned .ppItemHeading h2 { margin-bottom: 10px; font-size: 20px; }
  .ppItemBody > p { font-size: 14px; line-height: 2.05; }
  .ppItemBody .ppContactDetails { flex-direction: column; align-items: flex-start; gap: 6px; }
  .privacyDesigned .footerInfo, .privacyDesigned .footerIdentity > div { min-width: 0; }
  .privacyDesigned .footerLogo { flex: 0 0 46px; width: 46px; height: 46px; }
  .privacyDesigned .footerIdentity strong { font-size: 18px; white-space: normal; word-break: keep-all; }
}
@media (max-width: 360px) {
  .privacyDesigned .ppHero h1 { font-size: 24px; }
  .ppHeroLead { font-size: 19px; }
}
@media (prefers-reduced-motion: reduce) {
  .privacyDesigned *, .privacyDesigned *::before, .privacyDesigned *::after { scroll-behavior: auto; transition: none; }
}
