/*
 * © 2026 Sony Corporation
 */

/*
 * Word から変換した利用規約（tos.html / paid_tos.html）用のスタイル。
 *
 * これらの文書は元々 <head> 内の <style> にスタイルを持っていたが、
 * staticwebapp.config の CSP が style-src に 'unsafe-inline' を許可していないため、
 * デプロイ環境ではスタイル全体がブロックされていた。
 * 同一オリジンの外部 CSS であれば style-src 'self' で許可されるため、
 * 全文書分をこのファイルへ集約する。
 *
 * 文書ごとの差分は <body> の legal-doc--* クラスでスコープする。
 */

/* ── 印刷ページ ── */
/* 既定は A4。レター判の文書は body 側で名前付きページを指定する。 */
@page {
  size: 21cm 29.7cm;
  margin: 3.5cm 3cm 3cm;
}
@page legal-letter-us {
  size: 21.59cm 27.94cm;
  margin: 1.27cm 2.54cm;
}
@page legal-letter-fr {
  size: 21.59cm 27.94cm;
  margin: 2.54cm;
}
.legal-doc--letter-us {
  page: legal-letter-us;
}
.legal-doc--letter-fr {
  page: legal-letter-fr;
}

/* ── 共通 ── */
.legal-doc p {
  line-height: 115%;
  text-align: left;
  orphans: 0;
  widows: 0;
  margin-bottom: 0.25cm;
  direction: ltr;
  background: transparent;
}
.legal-doc a:link {
  text-decoration: underline;
}
.legal-doc :focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

/* ── Word の段落番号を本文側のマーカーで再現するリスト ── */
/* 番号は .word-list-marker として本文に埋め込まれているため、
   ブラウザ標準のマーカーを消さないと番号が二重に表示される。 */
.legal-doc--word-numbered ol {
  margin-top: 0;
  margin-bottom: 0.25cm;
}
.legal-doc ol.word-numbered-list {
  list-style: none;
  padding-left: 0;
}
.legal-doc ol.word-numbered-list > li.word-numbered-item {
  position: relative;
  padding-left: calc(var(--word-left) + 0.25cm);
}
.legal-doc ol.word-numbered-list > li.word-numbered-item > .word-list-marker {
  position: absolute;
  left: calc(var(--word-left) - var(--word-hanging));
  width: var(--word-hanging);
  text-align: right;
}
.legal-doc ol.word-numbered-list > li.word-numbered-heading {
  padding-left: 0;
}
.paid-tos-document > h2.section-heading {
  margin-top: 0.6cm !important;
  margin-bottom: 0.3cm !important;
}

/* ── 英語版（us/tos.html, us/paid_tos.html） ── */
.legal-doc--en,
.legal-doc--en h1,
.legal-doc--en h2 {
  font-family: Arial, sans-serif;
}
.legal-doc--en a:link {
  color: #467886;
}
.legal-doc--letter-us p {
  orphans: 2;
  widows: 2;
}

/* ── 日本語版（jp/tos.html, jp/paid_tos.html） ── */
.legal-doc--ja,
.legal-doc--ja h1,
.legal-doc--ja h2 {
  font-family: "Noto Sans JP", "Noto Sans CJK JP", "Noto Sans", sans-serif;
}
.legal-doc--ja p {
  text-align: justify;
}
.legal-doc--ja a:link {
  color: #0000ff;
}
.legal-doc--ja a:visited {
  color: #800080;
}
.legal-doc--ja h1.document-title {
  font-size: 1em;
  font-weight: bold;
  margin: 0;
}
.legal-doc--ja h2.section-heading {
  font-size: 1em;
  font-weight: normal;
  margin: 0;
}

/* ── フランス語版 利用規約（fr-ca/tos.html） ── */
.legal-doc--fr-tos,
.legal-doc--fr-tos * {
  font-family: Arial, sans-serif !important;
}
.legal-doc--fr-tos a:link {
  color: #467886;
}
.legal-doc--fr-tos a:visited {
  color: #96607d;
}
.legal-doc--fr-tos h1.word-title {
  text-align: center;
  font-size: 1.25em;
  margin: 0 0 0.64cm;
}
.legal-doc--fr-tos h2.word-chapter {
  font-size: 1.1em;
  font-weight: 700;
  margin: 0.35cm 0 0.25cm;
}
.legal-doc--fr-tos .heading-number {
  white-space: pre;
}
.legal-doc--fr-tos ol.word-list {
  list-style: none;
  margin: 0 0 0.25cm;
  padding: 0 0 0 1.5cm;
}
.legal-doc--fr-tos ol.word-list li {
  position: relative;
  margin: 0;
  padding: 0 0 0 1.25cm;
}
.legal-doc--fr-tos ol.word-list li > p {
  display: inline;
}
.legal-doc--fr-tos ol.word-list.list-nested {
  padding-left: 2.13cm;
}
.legal-doc--fr-tos .list-marker {
  position: absolute;
  left: 0;
  display: inline-block;
  min-width: 1.25cm;
}
.legal-doc--fr-tos ol.word-list li > p + p {
  display: block;
  margin-left: 0 !important;
}

/* ── フランス語版 有償サービス規約（fr-ca/paid_tos.html） ── */
.legal-doc--fr-paid-tos h2 {
  color: #000000;
  text-align: left;
  orphans: 2;
  widows: 2;
  margin-top: 0.49cm;
  margin-bottom: 0.28cm;
  direction: ltr;
  background: transparent;
}
.legal-doc--fr-paid-tos h2.western,
.legal-doc--fr-paid-tos h2.ctl {
  font-size: 13pt;
  font-weight: bold;
}
.legal-doc--fr-paid-tos h2.cjk {
  font-family: "Arial";
  font-size: 13pt;
  font-weight: bold;
}
.legal-doc--fr-paid-tos a:link {
  color: #0563c1;
}
