@charset "UTF-8";

/* =========================================================
   法務ページ共通スタイル（プライバシーポリシー / 特定商取引法）
   ========================================================= */

:root{
  --teal-900:#0b3d33;
  --teal-700:#0f766e;
  --green-500:#16a34a;
  --mint-050:#f1faf5;
  --ink:#14211c;
  --ink-2:#4c5b53;
  --ink-3:#6f7f76;
  --paper:#f4f7f4;
  --surface:#ffffff;
  --line:rgba(15,118,110,.16);
  --line-2:rgba(15,118,110,.28);
  --shadow-s:0 2px 10px rgba(11,61,51,.05);
  --shadow-m:0 10px 30px rgba(11,61,51,.08);
  --radius:16px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:20px; -webkit-text-size-adjust:100%; }

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Zen Kaku Gothic New","Hiragino Sans","Noto Sans JP","Yu Gothic",sans-serif;
  font-size:16px;
  line-height:1.95;
  font-feature-settings:"palt" 1;
  -webkit-font-smoothing:antialiased;
  overflow-wrap:anywhere;
  line-break:strict;
}

a{ color:var(--teal-700); text-underline-offset:.25em; }
a:hover{ color:var(--green-500); }
:focus-visible{ outline:3px solid var(--teal-700); outline-offset:3px; border-radius:4px; }
h1,h2{ margin:0; line-height:1.5; text-wrap:balance; }
p{ margin:0; }
ul,ol,dl,dd{ margin:0; padding:0; }

.wrap{
  max-width:860px;
  margin-inline:auto;
  padding:28px 20px 72px;
  display:flex; flex-direction:column; gap:28px;
}

/* ---------- ヘッダー ---------- */
.legal-brand{ display:flex; flex-direction:column; gap:2px; text-decoration:none; }
.legal-brand .name{
  font-size:1.02rem; font-weight:900; color:var(--teal-700); letter-spacing:.1em;
}
.legal-brand .sub{ font-size:.74rem; color:var(--ink-3); }

.legal-hero{
  background:linear-gradient(135deg, rgba(15,118,110,.09), rgba(34,197,94,.09));
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:26px 22px;
  box-shadow:var(--shadow-s);
  display:flex; flex-direction:column; gap:8px;
}
.legal-hero h1{ font-size:clamp(1.4rem,4.5vw,1.85rem); font-weight:900; letter-spacing:.03em; }
.legal-hero p{ color:var(--ink-2); font-size:.95rem; }

/* ---------- 下書き注意 ---------- */
.draft-notice{
  background:#fff8e6;
  border:1px solid #e8c25a;
  border-left:5px solid #d9a441;
  border-radius:12px;
  padding:16px 18px;
  font-size:.92rem;
  color:#5c4409;
  display:flex; flex-direction:column; gap:6px;
}
.draft-notice b{ font-size:.98rem; }

/* ---------- 目次 ---------- */
.toc{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:18px 20px;
  box-shadow:var(--shadow-s);
}
.toc-title{
  font-size:.76rem; font-weight:700; letter-spacing:.14em;
  color:var(--teal-700); margin-bottom:8px;
}
.toc ol{ padding-left:1.4em; display:flex; flex-direction:column; gap:2px; }
.toc li{ font-size:.92rem; }

/* ---------- 本文 ---------- */
main{ display:flex; flex-direction:column; gap:16px; }

.policy{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:22px 22px 24px;
  box-shadow:var(--shadow-s);
  display:flex; flex-direction:column; gap:12px;
}
.section-head{ display:flex; align-items:center; gap:12px; }
.badge{
  flex:none; width:30px; height:30px; border-radius:50%;
  display:grid; place-content:center;
  background:linear-gradient(135deg,var(--teal-700),var(--green-500));
  color:#fff; font-weight:900; font-size:.86rem;
}
.policy h2{ font-size:1.06rem; font-weight:700; }
.policy .lead{ color:var(--ink-2); font-size:.95rem; }
.policy ul{ display:flex; flex-direction:column; gap:6px; padding-left:0; }
.policy ul li{
  position:relative; padding-left:22px; font-size:.94rem; color:var(--ink-2); list-style:none;
}
.policy ul li::before{
  content:""; position:absolute; left:2px; top:.85em;
  width:10px; height:2px; background:var(--teal-700); border-radius:2px;
}
.notice{
  background:var(--mint-050);
  border:1px dashed var(--line-2);
  border-radius:10px;
  padding:12px 14px;
  font-size:.89rem; color:var(--ink-2);
}

/* ---------- 定義リスト ---------- */
.contact dl,
.spec-list{
  display:grid; grid-template-columns:auto 1fr;
  border:1px solid var(--line); border-radius:12px; overflow:hidden;
}
.contact dt,.contact dd,
.spec-list dt,.spec-list dd{
  padding:12px 15px; border-bottom:1px solid var(--line); font-size:.92rem;
}
.contact dt,.spec-list dt{
  background:var(--mint-050); font-weight:700; white-space:nowrap; color:var(--teal-900);
}
.contact dd,.spec-list dd{ color:var(--ink-2); }
.contact dt:last-of-type,.contact dd:last-of-type,
.spec-list dt:last-of-type,.spec-list dd:last-of-type{ border-bottom:none; }

.todo{
  display:inline-block;
  background:#fff2cc; color:#7a5a06;
  border:1px solid #e0bf62; border-radius:6px;
  padding:1px 8px; font-size:.8rem; font-weight:700;
  margin-right:6px;
}

.top-link{
  display:inline-block; margin-top:6px;
  font-size:.86rem; text-decoration:none;
}

/* ---------- フッター ---------- */
.legal-footer{
  border-top:1px solid var(--line);
  padding-top:20px;
  display:flex; flex-direction:column; align-items:center; gap:10px;
  text-align:center;
  font-size:.84rem; color:var(--ink-3);
}
.legal-footer ul{ display:flex; flex-wrap:wrap; justify-content:center; gap:8px 20px; }
.legal-footer li{ list-style:none; }

@media (max-width:480px){
  .contact dl,.spec-list{ grid-template-columns:1fr; }
  .contact dt,.spec-list dt{ border-bottom:none; padding-bottom:0; background:transparent; }
  .contact dd,.spec-list dd{ padding-top:2px; }
}

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *{ transition-duration:.001ms !important; animation-duration:.001ms !important; }
}
