/* プライバシーポリシー・404 など、本文中心のページ。共通の挙動は styles.css / script.js に従う。 */
.legal-page {
  --color-paper: #fbfaf8;
  --legal-rule: #d9d7d2;
  --legal-muted: #65645e;
  background: var(--color-paper);
}
.legal-page :is(main, section)[id] { scroll-margin-top: 120px; }
.legal-page :focus-visible { outline: 2px solid var(--color-accent); outline-offset: 6px; }

/* ファーストビューを持たないページなので、ヘッダーは常に地色の上に置く。 */
.legal-page .site-header,
.legal-page .site-header.is-contextual {
  align-items: center;
  padding: 20px clamp(20px, 4.7vw, 72px);
  color: var(--color-ink);
  background: var(--color-paper);
}
.legal-page .site-header .site-name,
.legal-page .site-header.is-contextual .site-name { width: 150px; transform: none; }
.legal-page .site-header .site-logo { filter: brightness(0); }
.legal-page .hero-nav { display: none; }
.legal-page .header-actions {
  display: flex;
  visibility: visible;
  opacity: 1;
  transform: none;
  min-height: 44px;
  height: auto;
  overflow: visible;
}
.legal-page .header-cta, .legal-page .menu-toggle { padding-block: 12px; }
.legal-page.menu-open .site-header { background: transparent; }

.legal-width { width: min(calc(100% - 144px), 920px); margin-inline: auto; }
.legal-breadcrumb { display: flex; flex-wrap: wrap; gap: 14px; color: var(--legal-muted); font: 12px/1.6 var(--font-copy-en); }
.legal-breadcrumb a:hover { color: var(--color-accent); }

.legal-doc { padding-top: 137px; padding-bottom: 104px; }
.legal-doc__head { margin-top: 52px; padding-bottom: 34px; border-bottom: 1px solid var(--legal-rule); }
.legal-doc__head h1 { margin: 0; font: 700 clamp(34px, 4.2vw, 56px)/1.25 "helvetica-neue-lt-pro-cond", var(--font-copy-en); letter-spacing: -.02em; }
.legal-doc__head p { margin: 14px 0 0; font-size: 16px; font-weight: 700; line-height: 1.7; }
.legal-doc__lead { margin: 44px 0 0; font-size: 16px; line-height: 2.1; }
.legal-doc section { margin-top: 48px; }
.legal-doc h2 { margin: 0 0 18px; font-size: 18px; font-weight: 700; line-height: 1.6; }
.legal-doc p { margin: 0 0 16px; font-size: 16px; line-height: 2.1; }
.legal-doc p:last-child { margin-bottom: 0; }
.legal-doc ul { margin: 0 0 16px; padding-left: 1.4em; font-size: 16px; line-height: 2.1; }
.legal-doc li { margin-bottom: 6px; }
.legal-doc a:not(.legal-breadcrumb a) { text-decoration: underline; text-underline-offset: .2em; }
.legal-doc a:not(.legal-breadcrumb a):is(:hover, :focus-visible) { color: var(--color-accent); }
.legal-contact { margin-top: 12px; font-style: normal; font-size: 16px; line-height: 2.1; }
.legal-contact strong { display: block; font-size: 17px; }
.legal-doc__meta { margin-top: 56px; padding-top: 26px; border-top: 1px solid var(--legal-rule); color: var(--legal-muted); font-size: 13px; line-height: 1.9; }

/* 404 */
.legal-notfound { display: grid; align-content: center; min-height: 72svh; padding-block: 160px 120px; text-align: center; }
.legal-notfound h1 { margin: 18px 0 0; font-size: clamp(22px, 2.6vw, 32px); font-weight: 700; line-height: 1.6; }
.legal-notfound p { margin: 20px auto 0; max-width: 34em; font-size: 16px; line-height: 2.1; }
/* 数字は本文用の p 指定より詳細度を上げて確実に勝たせる */
.legal-notfound .legal-notfound__code { max-width: none; margin: 0; font: 700 clamp(88px, 15vw, 190px)/1 "helvetica-neue-lt-pro-cond", var(--font-copy-en); letter-spacing: -.04em; color: var(--color-accent); }
.legal-notfound__links { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-top: 44px; }

@media (max-width: 1100px) {
  .legal-width { width: calc(100% - 80px); }
}
@media (max-width: 760px) {
  .legal-width { width: calc(100% - 40px); }
  .legal-page .site-header, .legal-page .site-header.is-contextual { padding: 16px 20px; }
  .legal-page .site-header .site-name, .legal-page .site-header.is-contextual .site-name { width: 100px; }
  .legal-page .site-header .header-actions { width: 160px; }
  body.legal-page.menu-open .site-header .header-actions { width: 46px; }
  .legal-page .header-cta, .legal-page .menu-toggle { padding-block: 10px; }
  .legal-doc { padding-top: 110px; padding-bottom: 72px; }
  .legal-doc__head { margin-top: 34px; }
  .legal-doc__lead { margin-top: 32px; }
  .legal-doc section { margin-top: 38px; }
  .legal-doc :is(p, ul, .legal-contact) { font-size: 15px; line-height: 2; }
  .legal-doc h2 { font-size: 17px; }
  .legal-doc__head h1 { font-size: clamp(24px, 7.2vw, 30px); }
  .legal-doc__head p { font-size: 15px; }
  .legal-notfound { min-height: 0; padding-block: 130px 80px; }
  .legal-notfound p:not(.legal-notfound__code) { font-size: 15px; text-align: left; }
  .legal-notfound__links { justify-content: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
  .legal-page .roll-link__line:last-child { display: none; }
  .legal-page .roll-link__char { transform: none !important; }
}
