/* ===================================================================
   corp.3810.pro スタイル

   方針：
   3810.pro（世界観サイト）と**見た目は揃える**。ピンクのレトロPC風の意匠、
   ウィンドウ風カード、DotGothic16 の見出しは同じものを使う。
   一方で**内容には創作設定を一切持ち込まない**。ここは事実レイヤーであり、
   分離するのはデザインではなく記述内容のほう。

   3810.pro 側の src/styles.css と src/app.css から、このページに必要な
   トークンとコンポーネントだけを写している。
   別リポジトリ・別サーバのため共有はせず、複製して独立させている。
   本家のデザインを変えたときは、必要に応じてこちらにも反映すること。

   なお bg-dynamic（アニメーションする背景ブロブとスプライト）は持ち込んでいない。
   事業者情報のページに動く演出は不要で、印刷・PDF化されたときにも邪魔になるため、
   静的なグラデーションとグリッドまでに留める。

   ダークモードは実装しない。本家がライトのピンク一本で作られており、
   ここだけ暗くなると別サイトに見えるため。
   =================================================================== */

@import url('https://fonts.googleapis.com/css2?family=DotGothic16&family=Noto+Sans+JP:wght@400;500;700;900&display=swap');

:root {
  /* 3810.pro と同一のカラートークン */
  --color-bg: #ffe1eb;
  --color-bg-soft: #fff2f6;
  --color-primary: #e84678;
  --color-primary-dark: #b93a68;
  --color-primary-light: #f7a9bf;
  --color-white: #ffffff;
  --color-yellow: #ffd86b;
  --color-brown: #6f5260;
  --color-deep: #33202a;
  --shadow-ui: 0 18px 40px rgba(232, 70, 120, 0.22);
  --shadow-pixel: 6px 6px 0 rgba(185, 58, 104, 0.28);

  color: var(--color-brown);
  font-family: 'Noto Sans JP', system-ui, sans-serif;
  font-synthesis: none;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  min-width: 320px;
  min-height: 100vh;
  background:
    radial-gradient(circle at 18% 12%, rgba(255, 255, 255, 0.95) 0 12%, transparent 32%),
    radial-gradient(circle at 85% 20%, rgba(166, 240, 234, 0.7) 0 8%, transparent 27%),
    radial-gradient(circle at 72% 82%, rgba(218, 216, 255, 0.8) 0 10%, transparent 34%),
    linear-gradient(135deg, #fff2f6 0%, var(--color-bg) 44%, #ffc2d4 100%);
}

/* 方眼紙のようなグリッド。本家と同じ演出 */
body::before {
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  content: '';
  background-image:
    linear-gradient(rgba(232, 70, 120, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(232, 70, 120, 0.08) 1px, transparent 1px);
  background-size: 28px 28px;
  mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.9), transparent 78%);
}

a { color: inherit; text-decoration: none; }

/* ---------- ヘッダ ----------
   本家はナビゲーションアイコンが並ぶが、こちらは1ページなので
   ブランドと本家への戻り導線だけを置く */

.site-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px;
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border: 2px solid var(--color-primary);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: var(--shadow-pixel);
  color: var(--color-primary-dark);
  font-weight: 900;
  line-height: 1.05;
}

.brand-mark {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 12px;
  background: var(--color-primary);
  color: var(--color-white);
  font-family: 'DotGothic16', monospace;
  font-size: 14px;
}

/* ---------- 見出しブロック ---------- */

.legal-main {
  max-width: 860px;
  margin: 0 auto;
  padding: 24px 20px 90px;
}

.legal-head {
  display: grid;
  gap: 8px;
  margin-bottom: 28px;
  text-align: center;
  justify-items: center;
}

.legal-head h1 {
  margin: 10px 0 0;
  color: var(--color-primary);
  font: 400 clamp(32px, 5vw, 56px)/1 'DotGothic16', monospace;
}

.app-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px;
  border: 2px solid var(--color-primary);
  border-radius: 999px;
  background: var(--color-yellow);
  color: var(--color-primary-dark);
  font-family: 'DotGothic16', monospace;
}

/* ---------- ウィンドウ風カード ---------- */

.window-card {
  border: 2px solid var(--color-primary);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: var(--shadow-ui);
  overflow: hidden;
}

.window-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 13px 16px;
  border-bottom: 2px solid var(--color-primary);
  background: var(--color-bg-soft);
  color: var(--color-primary-dark);
  font-family: 'DotGothic16', monospace;
}

.window-bar strong { margin-left: 8px; font-weight: 400; }

/* 信号機のボタン */
.window-bar span {
  width: 12px;
  height: 12px;
  border: 2px solid var(--color-primary);
  border-radius: 50%;
}
.window-bar span:nth-child(1) { background: #ff5f56; }
.window-bar span:nth-child(2) { background: #febc2e; }
.window-bar span:nth-child(3) { background: #28c840; }

/* ---------- 本文 ---------- */

.legal-doc { padding: 0; }

.legal-doc .doc-body { padding: 14px clamp(20px, 5vw, 48px) 40px; }

.legal-doc .lead-note {
  margin: 0 0 8px;
  padding: 22px 0 6px;
  color: var(--color-deep);
  line-height: 1.95;
}

.legal-doc h2 {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin: 40px 0 14px;
  padding-top: 22px;
  border-top: 2px dotted var(--color-primary-light);
  color: var(--color-primary);
  font: 400 clamp(20px, 3vw, 27px)/1.3 'DotGothic16', monospace;
}

.legal-doc h2 .num {
  flex: none;
  display: grid;
  place-items: center;
  min-width: 38px;
  height: 38px;
  border: 2px solid var(--color-primary);
  border-radius: 10px;
  background: var(--color-yellow);
  color: var(--color-primary-dark);
  font-size: 18px;
}

.legal-doc p { margin: 0 0 14px; line-height: 1.95; }
.legal-doc strong { color: var(--color-primary-dark); }

.legal-doc a {
  color: var(--color-primary);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}
.legal-doc a:hover { color: var(--color-primary-dark); }

/* ---------- 事実の定義リスト ----------
   本家 index.html の company.info（.about-copy dl）と同じ組み方に揃える */

.facts { display: grid; gap: 12px; margin: 0; }

.facts-row {
  display: grid;
  grid-template-columns: 150px 1fr;
  gap: 16px;
  padding: 13px 0;
  border-top: 1px solid var(--color-primary-light);
}

.facts dt {
  color: var(--color-primary-dark);
  font-family: 'DotGothic16', monospace;
}

.facts dd {
  margin: 0;
  font-weight: 700;
  line-height: 1.9;
}

@media (max-width: 720px) {
  .facts-row { grid-template-columns: 1fr; gap: 6px; }
}

/* dd の中の補足。連絡手段の制約や公開状況など、誤解を招きやすい点を明示する */
.note {
  margin: 8px 0 0;
  color: var(--color-brown);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.85;
}

/* 事業内容の箇条書き。記号を落として dd に馴染ませる */
ul.plain { margin: 0; padding: 0; list-style: none; }
ul.plain li { position: relative; padding-left: 1.1em; }
ul.plain li::before { position: absolute; left: 0; content: '▸'; color: var(--color-primary); }

/* ---------- 関連サイト ---------- */

.linklist { margin: 0; padding: 0; list-style: none; }

.linklist li {
  padding: 12px 0;
  border-top: 1px solid var(--color-primary-light);
}

.linklist-note {
  display: block;
  margin-top: 2px;
  color: var(--color-brown);
  font-size: 13px;
}

/* ---------- 戻る導線 ---------- */

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 22px;
  border: 2px solid var(--color-primary);
  border-radius: 999px;
  background: var(--color-primary);
  color: var(--color-white);
  box-shadow: 4px 4px 0 rgba(185, 58, 104, 0.25);
  font-weight: 900;
  cursor: pointer;
}

.button-ghost { background: var(--color-white); color: var(--color-primary); }

/* .legal-doc a の下線指定より詳細度を上げて打ち消す */
.legal-doc a.legal-back {
  display: inline-flex;
  margin: 30px 0 0;
  color: var(--color-primary);
  text-decoration: none;
}

/* ---------- フッタ ---------- */

.footer {
  padding: 34px 20px 46px;
  color: var(--color-primary-dark);
  font-family: 'DotGothic16', monospace;
  text-align: center;
}

.footer p { margin: 0; }
