/* ============================================================
   まとめるん — サブページ（プライバシー / 特商法 / お問い合わせ）
   index.html の styles.css とアートディレクションを揃える。
   法的文書なので、トップページより静かに・読みやすさ優先で組む。

   ⚠️ 下の :root は styles.css と同じ値。片方だけ変えないこと。
   ============================================================ */

:root{
  --bg:      #FAF7F0;
  --bg2:     #F6F1E7;
  --paper:   #FBF6E8;
  --card:    #FFFFFF;
  --line:    #E7DFC7;

  --ink:     #22322F;
  --ink2:    #4A5854;
  --muted:   #5F6B66;

  --teal:    #1F726B;
  --tealD:   #0E4540;
  --mint:    #CDE8E0;
  --mint2:   #E7F3EE;
  --coral:   #E0604A;
  --coralInk:#B8442E;
  --yellow:  #FFCE5B;
  --yellow2: #FFEFC2;

  --disp: 'Zen Maru Gothic', 'Hiragino Maru Gothic ProN', system-ui, sans-serif;
  --body: 'Noto Sans JP', system-ui, -apple-system, sans-serif;
  --lat:  'DM Sans', 'Noto Sans JP', system-ui, sans-serif;

  --ease: cubic-bezier(.2,.7,.2,1);
  --shadow-sm: 0 1px 2px rgba(34,50,47,.05), 0 8px 20px -14px rgba(34,50,47,.22);
}

/* ── reset ────────────────────────────────────────────── */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--body); font-size:15.5px; line-height:1.95;
  font-feature-settings:"palt" 1;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}
img{ display:block; max-width:100%; height:auto; }
h1,h2,h3,p,ul,ol{ margin:0; }
a{ color:var(--teal); text-underline-offset:3px; }
a:hover{ color:var(--tealD); }
button{ font:inherit; color:inherit; }

:where(a,button,summary,input,textarea):focus-visible{
  outline:2.5px solid var(--teal); outline-offset:3px; border-radius:6px;
}

/* 紙の粒子。トップページと同じ質感をここでも保つ */
body::before{
  content:""; position:fixed; inset:0; z-index:1; pointer-events:none;
  opacity:.05; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
}

.container{ width:100%; max-width:760px; margin-inline:auto; padding-inline:clamp(20px,5vw,32px); }
.container--narrow{ max-width:660px; }

.skip-link{
  position:absolute; left:50%; top:-100px; transform:translateX(-50%);
  z-index:200; background:var(--ink); color:#fff; padding:10px 20px;
  border-radius:0 0 12px 12px; font-size:14px; text-decoration:none;
}
.skip-link:focus{ top:0; }

/* ── header ───────────────────────────────────────────── */
header{
  position:sticky; top:0; z-index:20;
  background:rgba(250,247,240,.86);
  -webkit-backdrop-filter:saturate(1.4) blur(16px);
  backdrop-filter:saturate(1.4) blur(16px);
  border-bottom:1px solid var(--line);
}
header .container{
  height:70px; display:flex; align-items:center; justify-content:space-between; gap:16px;
}
header img{ height:32px; width:auto; }
header a.back{
  font-size:13.5px; color:var(--ink2); text-decoration:none; white-space:nowrap;
  display:inline-flex; align-items:center; gap:6px;
  transition:color .2s ease, transform .2s var(--ease);
}
header a.back:hover{ color:var(--teal); transform:translateX(-2px); }

/* 原稿用紙の罫。トップページと同じモチーフを細く敷く */
.genko-rule{
  height:18px;
  background-image:
    linear-gradient(to right, var(--line) 1px, transparent 1px),
    linear-gradient(var(--line), var(--line));
  background-size:18px 18px, 100% 1px;
  background-repeat:repeat-x, repeat-x;
  border-bottom:1px solid var(--line);
  opacity:.7;
}

/* ── document ─────────────────────────────────────────── */
main{ position:relative; padding:clamp(44px,7vw,76px) 0 clamp(64px,9vw,104px); }

.eyebrow{
  font-family:var(--lat); font-weight:700; font-size:11.5px;
  letter-spacing:.2em; text-transform:uppercase; color:var(--teal);
  display:flex; align-items:center; gap:9px;
}
.eyebrow::before{ content:""; width:20px; height:2px; background:currentColor; border-radius:2px; opacity:.6; }

h1{
  margin-top:14px;
  font-family:var(--disp); font-weight:700; color:var(--ink);
  font-size:clamp(26px,3.6vw,36px); line-height:1.45; letter-spacing:.01em;
}
.lead{
  margin-top:16px; color:var(--ink2); font-size:14.5px; line-height:2;
  padding-bottom:clamp(28px,4vw,40px); border-bottom:1px solid var(--line);
}

h2{
  font-family:var(--disp); font-weight:700; color:var(--ink);
  font-size:18px; line-height:1.6;
  margin:clamp(34px,4.5vw,48px) 0 12px;
  display:flex; align-items:baseline; gap:10px;
}
/* 見出し左のティールの印。番号見出し（"1. 事業者"）と相性がいい */
h2::before{
  content:""; flex:none; width:5px; height:16px; border-radius:3px;
  background:var(--teal); transform:translateY(1px);
}

main p{ margin:10px 0; color:var(--ink); }
main ul{ padding-left:1.35em; margin:10px 0 14px; }
main li{ margin:6px 0; }
main strong{ font-weight:700; color:var(--ink); }

/* 定義表（特商法） */
table.sct{ width:100%; border-collapse:collapse; margin:10px 0 24px; }
table.sct th, table.sct td{
  text-align:left; vertical-align:top; padding:16px 6px;
  border-bottom:1px solid var(--line); font-size:14.5px; line-height:1.9;
}
table.sct th{
  width:34%; font-family:var(--disp); font-weight:700; color:var(--tealD);
}
table.sct td{ color:var(--ink); }
table.sct td ul{ padding-left:1.2em; margin:4px 0; }
@media (max-width:560px){
  table.sct, table.sct tbody, table.sct tr, table.sct th, table.sct td{ display:block; width:100%; }
  table.sct th{ border-bottom:0; padding-bottom:2px; }
  table.sct td{ padding-top:0; }
}

.meta{
  margin-top:clamp(48px,7vw,72px); padding:20px 22px;
  background:var(--paper); border:1px solid var(--line); border-radius:16px;
  color:var(--muted); font-size:12.5px; line-height:1.9;
}
.meta p{ margin:0; color:inherit; }

/* ── footer ───────────────────────────────────────────── */
footer{ border-top:1px solid var(--line); padding:34px 0 42px; }
footer .container{
  display:flex; align-items:center; justify-content:space-between;
  gap:12px 24px; flex-wrap:wrap;
  font-size:12.5px; color:var(--muted);
}
footer nav{ display:flex; flex-wrap:wrap; gap:8px 22px; }
footer a{ color:var(--ink2); text-decoration:none; }
footer a:hover{ color:var(--teal); text-decoration:underline; }

/* ══════════════════════════════════════════════════════
   お問い合わせフォーム（contact.html）
   ══════════════════════════════════════════════════════ */
.dots{ display:flex; gap:8px; margin:clamp(26px,4vw,34px) 0 20px; }
.dots .dot{ height:6px; border-radius:99px; background:var(--line); flex:1; transition:background .3s var(--ease); }
.dots .dot.active{ background:var(--teal); }
.dots .dot.done{ background:var(--tealD); }

.card{
  background:var(--card); border:1px solid var(--line);
  border-radius:24px; padding:clamp(22px,3.5vw,30px);
  box-shadow:var(--shadow-sm);
}
.step{ display:none; }
.step.active{ display:block; animation:fade .32s var(--ease); }
@keyframes fade{ from{ opacity:0; transform:translateY(8px) } to{ opacity:1; transform:none } }

.q{ font-family:var(--disp); font-weight:700; font-size:19px; line-height:1.6; margin:0 0 4px; color:var(--ink); }
.qsub{ color:var(--muted); font-size:13px; margin:0 0 20px !important; }

.choice{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  width:100%; text-align:left; cursor:pointer;
  background:#fff; border:1.5px solid var(--line); border-radius:16px;
  padding:16px 18px; margin-bottom:10px;
  font-size:15px; font-weight:700; color:var(--ink);
  transition:border-color .2s ease, background .2s ease, transform .2s var(--ease);
}
.choice:hover{ border-color:var(--teal); transform:translateY(-2px); }
.choice.sel{ border-color:var(--teal); background:var(--mint2); }
.choice .arrow{ color:var(--muted); font-weight:400; }

label{ display:block; font-size:13.5px; font-weight:700; margin:18px 0 7px; color:var(--ink); }
label:first-of-type{ margin-top:0; }
label .opt{ font-weight:400; color:var(--muted); font-size:12.5px; margin-left:6px; }

input, textarea{
  width:100%; font-family:inherit; font-size:15px; color:var(--ink);
  background:#fff; border:1px solid var(--line); border-radius:14px;
  padding:13px 15px; line-height:1.8; -webkit-appearance:none;
  transition:border-color .2s ease, box-shadow .2s ease;
}
input:focus, textarea:focus{
  outline:none; border-color:var(--teal); box-shadow:0 0 0 4px rgba(31,114,107,.12);
}
textarea{ min-height:160px; resize:vertical; }

.nav{ display:flex; gap:10px; margin-top:24px; }
.btn{
  flex:1; cursor:pointer; border:none; height:54px; border-radius:999px;
  font-family:var(--body); font-size:15px; font-weight:700;
  transition:transform .22s var(--ease), box-shadow .25s ease, background .2s ease, color .2s ease;
}
.btn-primary{ color:#fff; background:var(--teal); box-shadow:0 10px 22px -12px rgba(31,114,107,.85); }
.btn-primary:hover:not(:disabled){ transform:translateY(-2px); box-shadow:0 18px 32px -14px rgba(31,114,107,.9); }
.btn-primary:active:not(:disabled){ transform:translateY(0); }
.btn-primary:disabled{ opacity:.45; cursor:default; }
.btn-ghost{ flex:0 0 104px; color:var(--ink2); background:#fff; border:1px solid var(--line); }
.btn-ghost:hover{ border-color:var(--teal); color:var(--teal); }

.note{ color:var(--muted); font-size:12px; line-height:1.9; margin:16px 0 0 !important; }
.status{ margin-top:14px !important; font-size:13.5px; line-height:1.8; min-height:1.2em; }
.status.error{ color:var(--coralInk); font-weight:700; }

.thanks{
  display:none; text-align:center;
  background:var(--card); border:1px solid var(--line); border-radius:24px;
  padding:clamp(34px,5vw,46px) 24px; box-shadow:var(--shadow-sm);
}
.thanks .tick{
  width:60px; height:60px; border-radius:99px; margin:0 auto 16px;
  background:var(--mint); color:var(--tealD);
  display:flex; align-items:center; justify-content:center; font-size:30px;
}
.thanks h2{
  display:block; font-size:22px; margin:0 0 8px; justify-content:center;
}
.thanks h2::before{ display:none; }
.thanks p{ color:var(--ink2); font-size:14px; margin:0; }
.thanks a{ display:inline-block; margin-top:22px; font-weight:700; font-size:14px; }

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