/**
 * privacy-page.php 専用 Markdown コンテンツスタイル
 * 他のページに影響を与えないよう、すべて .privacy-markdown-view にスコープしています。
 */

/* パンくずリストを更新前と同じくキービジュアル背景上に重ねて配置する */
.breadcrumb-container + main,
.breadcrumb-container ~ main {
  padding-top: 0 !important;
}

.privacy-markdown-view {
  line-height: 1.6;
  letter-spacing: 0;
  color: #0B1437;
  font-size: 0.9375rem;
}

@media screen and (max-width: 768px) {
  .privacy-markdown-view {
    font-size: 0.875rem;
  }
}

/* 共通段落 */
.privacy-markdown-view p {
  margin-bottom: 1.25rem;
  line-height: 1.7;
}

@media screen and (max-width: 768px) {
  .privacy-markdown-view p {
    margin-bottom: 1.1875rem;
  }
}

/* 先頭の更新履歴段落 */
.privacy-markdown-view > p:first-of-type {
  line-height: 1.7;
  margin-bottom: 3.375rem;
}

@media screen and (max-width: 768px) {
  .privacy-markdown-view > p:first-of-type {
    margin-bottom: 2.5rem;
  }
}

/* 見出し (h3) */
.privacy-markdown-view h3 {
  border-bottom: 1px solid #B0B1D0;
  line-height: 1.45;
  font-weight: 700;
  color: #0B1437;
  font-size: 1.5625rem;
  margin-top: 4.5rem;
  margin-bottom: 1.25rem;
  padding-bottom: 0.6875rem;
}

@media screen and (max-width: 768px) {
  .privacy-markdown-view h3 {
    font-size: 1.25rem;
    margin-top: 3.25rem;
    margin-bottom: 1.125rem;
    padding-bottom: 0.5625rem;
  }
}

@media screen and (max-width: 389px) {
  .privacy-markdown-view h3 {
    font-size: 1.1875rem;
  }
}

/* リンク */
.privacy-markdown-view a {
  color: #3975D4;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: opacity 0.2s ease;
}

@media (hover: hover) {
  .privacy-markdown-view a:hover {
    text-decoration: none;
    opacity: 0.8;
  }
}

/* テーブルスタイル */
.privacy-markdown-view .policy-table-container {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin: 1.5rem 0 2.25rem;
}

.privacy-markdown-view table {
  width: 100%;
  min-width: 600px;
  border-collapse: collapse;
  border: none;
  font-size: 0.9375rem;
  line-height: 1.45;
}

.privacy-markdown-view thead th {
  background: #E4F5FE;
  color: #3975D4;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.4;
  text-align: center;
  vertical-align: middle;
  padding: 0.625rem 0.875rem;
  font-size: 0.8125rem;
  border: none;
  border-right: 1px solid #fff;
}

.privacy-markdown-view thead th:last-child {
  border-right: none;
}

.privacy-markdown-view tbody td {
  border: none;
  border-bottom: 1px solid rgba(11, 20, 55, 0.2);
  vertical-align: middle;
  padding: 1.125rem 0.875rem;
  color: #0B1437;
  font-size: 0.9375rem;
}

.privacy-markdown-view tbody tr:last-child td {
  border-bottom: 1px solid rgba(11, 20, 55, 0.2);
}

/* テーブルの1列目を強調（見出し列） */
.privacy-markdown-view tbody td:first-child {
  font-weight: 700;
  letter-spacing: 0.05em;
  width: 14rem;
  color: #0B1437;
}

@media screen and (max-width: 768px) {
  .privacy-markdown-view table {
    min-width: 520px;
    font-size: 0.75rem;
  }

  .privacy-markdown-view thead th {
    font-size: 0.75rem;
    padding: 0.5rem 0.625rem;
  }

  .privacy-markdown-view tbody td {
    font-size: 0.75rem;
    padding: 0.875rem 0.625rem;
  }

  .privacy-markdown-view tbody td:first-child {
    font-size: 0.8125rem;
    width: 9.5rem;
  }
}

/* リストスタイル（.list-dots, .list-number, .list-note を除く） */
.privacy-markdown-view ul:not(.list-dots):not(.list-number):not(.list-note) {
  list-style: none;
  padding-left: 1.25rem;
  margin-bottom: 1.25rem;
}

.privacy-markdown-view ul:not(.list-dots):not(.list-number):not(.list-note) > li {
  position: relative;
  margin-bottom: 0.5rem;
  line-height: 1.6;
}

.privacy-markdown-view ul:not(.list-dots):not(.list-number):not(.list-note) > li:last-child {
  margin-bottom: 0;
}

.privacy-markdown-view ul:not(.list-dots):not(.list-number):not(.list-note) > li::before {
  content: "・";
  position: absolute;
  left: -1.125rem;
  top: 0;
  color: #3975D4;
  font-weight: 700;
}

.privacy-markdown-view ol {
  padding-left: 1.5rem;
  margin-bottom: 1.5rem;
}

.privacy-markdown-view ol > li {
  margin-bottom: 1.8125rem;
  line-height: 1.6;
}

.privacy-markdown-view ol > li:last-child {
  margin-bottom: 0;
}

.privacy-markdown-view ol > li > p {
  margin-bottom: 0.75rem;
}

.privacy-markdown-view ol > li .policy-box {
  margin-top: 0;
  margin-bottom: 0.5rem;
}

/* ボックススタイル（更新前と完全一致） */
.privacy-markdown-view .policy-box {
  background: #F5F5F6;
  color: rgba(11, 20, 55, 0.9);
  padding: 1.125rem 2rem 1.1875rem;
  margin-top: -0.125rem;
  margin-bottom: 1.5rem;
  border-radius: 0;
}

.privacy-markdown-view .policy-box.is-blue {
  background: #E4F5FE;
  padding: 1.125rem 2rem 1.1875rem;
  margin-top: -0.125rem;
  margin-bottom: 4.1875rem;
  border-radius: 0;
}

.privacy-markdown-view .policy-box .list-dots {
  line-height: 1.35;
  letter-spacing: 0.05em;
  font-size: 0.875rem;
  padding: 0;
  margin: 0;
  list-style: none;
}

.privacy-markdown-view .policy-box .list-dots > li {
  position: relative;
  padding-left: 0.8125rem;
  margin-bottom: 0.3125rem;
  line-height: 1.35;
  color: rgba(11, 20, 55, 0.9);
}

.privacy-markdown-view .policy-box .list-dots > li:last-child {
  margin-bottom: 0;
}

.privacy-markdown-view .policy-box .list-dots > li::before {
  content: "・";
  position: absolute;
  left: -5px;
  top: -1px;
  font-size: 1.1em;
  font-weight: 400;
  color: rgba(11, 20, 55, 0.9);
}

.privacy-markdown-view .policy-box .list-dots.is-list-link > li {
  margin-bottom: 0.25rem;
}

.privacy-markdown-view .policy-box .list-dots.is-list-link > li:last-child {
  margin-bottom: 0;
}

.privacy-markdown-view .policy-box .list-dots.is-list-link > li::before {
  color: #3975D4;
}

.privacy-markdown-view .policy-box .list-dots.is-list-link a {
  font-weight: 700;
  color: #3975D4;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* ボックススタイル：is-box-primary（第11項） */
.privacy-markdown-view .policy-box.is-box-primary {
  background: #F5F5F6;
  padding: 1.125rem 2rem 1.1875rem;
  border-radius: 0;
  margin-top: -0.125rem;
  margin-bottom: 1.5rem;
}

/* ボックススタイル：is-box（第12項） */
.privacy-markdown-view .policy-box.is-box {
  background: #F5F5F6;
  padding: 1.5rem 1.1875rem 1.5rem 1.4375rem;
  border-radius: 0;
  margin-top: -0.125rem;
  margin-bottom: 1.5rem;
}

/* 第12項のリスト（.list-number.is-number-secondary） */
.privacy-markdown-view .list-number.is-number-secondary {
  counter-reset: counter;
  list-style: none;
  font-size: 0.875rem;
  line-height: 1.35;
  letter-spacing: 0.05em;
  padding: 0;
  margin: 0;
}

.privacy-markdown-view .list-number.is-number-secondary > li {
  counter-increment: counter;
  position: relative;
  margin-bottom: 0.625rem;
  font-size: 0.875rem;
  line-height: 1.35;
  letter-spacing: 0.05em;
  color: rgba(11, 20, 55, 0.9);
}

.privacy-markdown-view .list-number.is-number-secondary > li:last-child {
  margin-bottom: 0;
}

.privacy-markdown-view .list-number.is-number-secondary > li.number-text,
.privacy-markdown-view .list-number.is-number-secondary .number-text {
  padding-left: 1.4375rem;
}

.privacy-markdown-view .list-number.is-number-secondary > li.number-text::before,
.privacy-markdown-view .list-number.is-number-secondary .number-text::before {
  content: counter(counter) ".";
  position: absolute;
  right: 100%;
  top: 0;
  white-space: nowrap;
  margin-right: -1.0625rem;
  font-size: 0.875rem;
  line-height: 1.35;
  letter-spacing: 0.05em;
  font-weight: 400;
  color: rgba(11, 20, 55, 0.9);
  text-decoration: none;
}

/* 第13項の補足事項（.list-note）- 背景なしのクリーンな注釈リスト */
.privacy-markdown-view .list-note {
  counter-reset: number;
  list-style: none;
  font-size: 0.8125rem;
  letter-spacing: 0;
  line-height: 1.6;
  padding: 0;
  padding-top: 1px;
  margin: 1.25rem 0 2rem;
  background: transparent;
}

.privacy-markdown-view .list-note > li {
  counter-increment: number;
  position: relative;
  margin-bottom: 0.625rem;
  padding-left: 3.5625rem;
  line-height: 1.6;
  color: rgba(11, 20, 55, 0.9);
}

.privacy-markdown-view .list-note > li:last-child {
  margin-bottom: 0;
}

.privacy-markdown-view .list-note > li::before {
  content: "※" counter(number);
  display: block;
  position: absolute;
  top: 0;
  left: 0.375rem;
  font-weight: 400;
  color: rgba(11, 20, 55, 0.9);
}

@media screen and (max-width: 768px) {
  .privacy-markdown-view .policy-box {
    padding: 1.1875rem 1rem 1.25rem 1.5625rem;
    margin-bottom: 1.25rem;
  }
  .privacy-markdown-view .policy-box.is-blue {
    padding: 1.1875rem 1rem 1.25rem 1.5625rem;
    margin-bottom: 3.5rem;
  }
  .privacy-markdown-view .policy-box.is-box-primary {
    padding-top: 2rem;
    padding-bottom: 2.0625rem;
  }
  .privacy-markdown-view .policy-box.is-box {
    padding: 1.5rem 1.25rem 1.5rem;
  }
  .privacy-markdown-view .policy-box .list-dots {
    font-size: 0.75rem;
  }
  .privacy-markdown-view .policy-box .list-dots > li {
    padding-left: 0.6875rem;
    margin-bottom: 0.25rem;
    font-size: 0.75rem;
  }
  .privacy-markdown-view .policy-box .list-dots > li::before {
    left: -5px;
    top: 0;
  }
  .privacy-markdown-view .list-number.is-number-secondary {
    font-size: 0.75rem;
    letter-spacing: 0.05em;
  }
  .privacy-markdown-view .list-number.is-number-secondary > li {
    font-size: 0.75rem;
    line-height: 1.35;
    margin-bottom: 0.625rem;
  }
  .privacy-markdown-view .list-number.is-number-secondary > li.number-text,
  .privacy-markdown-view .list-number.is-number-secondary .number-text {
    padding-left: 1.0625rem;
  }
  .privacy-markdown-view .list-number.is-number-secondary > li.number-text::before,
  .privacy-markdown-view .list-number.is-number-secondary .number-text::before {
    font-size: 0.75rem;
    line-height: 1.35;
    margin-right: -0.8125rem;
    color: rgba(11, 20, 55, 0.9);
    font-weight: 400;
  }
  .privacy-markdown-view .list-note {
    font-size: 0.8125rem;
    line-height: 1.45;
  }
  .privacy-markdown-view .list-note > li {
    padding-left: 1.9375rem;
    font-size: 0.8125rem;
    line-height: 1.45;
  }
  .privacy-markdown-view .list-note > li::before {
    left: -0.25rem;
  }
  .privacy-markdown-view ol > li {
    margin-bottom: 1.5rem;
  }
}

/* コードブロック（汎用フォールバック） */
.privacy-markdown-view pre {
  background: #F5F5F6;
  border-radius: 0;
  padding: 1.125rem 2rem 1.1875rem;
  margin: 1.25rem 0 1.75rem;
  font-family: inherit;
  font-size: 0.875rem;
  line-height: 1.8;
  color: rgba(11, 20, 55, 0.9);
  white-space: pre-wrap;
  word-break: break-word;
  border: none;
}

.privacy-markdown-view pre code {
  font-family: inherit;
  font-size: inherit;
  color: inherit;
  background: none;
  padding: 0;
  border: none;
}

/* 安全管理措置の見出し段落（「（組織的安全管理措置）」等） */
.privacy-markdown-view .policy-subheading {
  font-weight: 700;
  font-size: 1.125rem;
  margin-top: 1.75rem;
  margin-bottom: 0.375rem;
  color: #0B1437;
}

@media screen and (max-width: 768px) {
  .privacy-markdown-view .policy-subheading {
    font-size: 1rem;
  }
}

/* 第9項のオンラインプライバシー通知（更新前と完全一致） */
.privacy-markdown-view .policy-sub {
  padding-top: 1.875rem;
  margin-top: 1rem;
}

.privacy-markdown-view .policy-sub:last-child {
  padding-bottom: 0.5rem;
}

.privacy-markdown-view .policy-text {
  font-weight: 700;
  font-size: 1rem;
  color: #0B1437;
  line-height: 1.6;
  margin-bottom: 0.5rem;
}

.privacy-markdown-view .policy-accordion {
  width: 100%;
}

.privacy-markdown-view .policy-accordion [class^="__datasign_embed_disclosure_mode_"] {
  width: 100% !important;
  max-width: 800px;
  margin: 0;
}

@media screen and (max-width: 768px) {
  .privacy-markdown-view .policy-sub {
    padding-top: 1.25rem;
    margin-top: 1.75rem;
  }
  .privacy-markdown-view .policy-text {
    font-size: 0.9375rem;
    margin-bottom: 0.375rem;
  }
}
