/* マーケ面（pricing.html・legal/*.html）共有スタイル。アプリ本体(styles.css)とは独立。
   トークンの出典・landing側との対応は Sites/Tagsna/design-tokens.md を正本とする。 */
:root {
  --bg: #f7f6f3;
  --text: rgba(0, 0, 0, 0.95);
  --text-muted: rgba(0, 0, 0, 0.54);
  --line: rgba(0, 0, 0, 0.1);
  --line-strong: #e9e8e5;
  --accent: #0e7c74;
  --accent-tint-bg: #e3f3f1;
  --accent-tint-text: #0b5c56;
  --radius: 12px;
}
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  background: var(--bg);
  color: #1a1a1a;
  font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "NotionInter", Inter,
    -apple-system, "system-ui", "Segoe UI", sans-serif;
  line-height: 1.85;
  -webkit-font-smoothing: antialiased;
  word-break: auto-phrase; /* 対応ブラウザのみ文節折り返し・非対応は無視される */
}
.nowrap { white-space: nowrap; }
.wrap { max-width: 880px; margin: 0 auto; padding: 32px 20px 72px; }

h1 { font-size: clamp(1.6rem, 4vw, 2rem); font-weight: 600; letter-spacing: -0.01em; margin: 0 0 6px; color: var(--text); }
h2 { font-size: 1.05rem; font-weight: 600; margin: 32px 0 10px; color: var(--text); }
p, li { font-size: 14.5px; color: #333; }
a { color: var(--accent); }
.muted { color: var(--text-muted); font-size: 12.5px; }

.btn {
  display: inline-block; border-radius: 8px; padding: 10px 20px;
  font-size: 15px; font-weight: 500; text-decoration: none; border: none; cursor: pointer;
}
.btn-primary { background: var(--accent); color: #fff; }
.btn-secondary { background: var(--accent-tint-bg); color: var(--accent-tint-text); }

.banner {
  display: flex; align-items: center; gap: 8px;
  background: var(--accent-tint-bg); color: var(--accent-tint-text);
  border-radius: var(--radius); padding: 12px 16px; font-size: 13px; margin: 16px 0 24px;
}

.plan {
  border: 2px solid var(--line-strong); border-radius: var(--radius);
  padding: 20px 22px; margin: 12px 0; background: #fff;
}
.plan.featured { border-color: transparent; background: var(--accent-tint-bg); }
.plan .top { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; flex-wrap: wrap; }
.plan b.name { font-size: 16px; color: var(--text); }
.plan .cnt { font-size: 26px; font-weight: 700; color: var(--text); }
.plan .cnt small { font-size: 13px; color: var(--text-muted); font-weight: 400; }
.plan .yen { font-size: 20px; font-weight: 700; color: var(--text); }
.plan .yen small { font-size: 12px; color: var(--text-muted); font-weight: 400; }
.plan .sub { font-size: 12.5px; color: var(--text-muted); margin-top: 8px; }

table { border-collapse: collapse; width: 100%; margin-top: 8px; font-size: 13px; }
th, td { border: 1px solid var(--line-strong); padding: 8px 10px; text-align: left; }
th { background: #fafafa; color: var(--text); font-weight: 600; }

/* 統一フッター v2（Notion型＝ブランド列＋3グループ列） */
footer.site-footer { border-top: 1px solid var(--line); margin-top: 56px; padding: 26px 0 10px; }
footer.site-footer .fcols { display: grid; gap: 22px; grid-template-columns: 1fr; }
@media (min-width: 640px) { footer.site-footer .fcols { grid-template-columns: 1.3fr 1fr 1fr 1.3fr; } }
footer.site-footer .fname { font-weight: 700; font-size: .95rem; color: var(--text); }
footer.site-footer .fname small { color: var(--text-muted); font-weight: 400; margin-left: .5em; }
footer.site-footer .ftag { font-size: 12px; color: var(--text-muted); margin-top: 4px; }
footer.site-footer .fh { font-size: 12px; font-weight: 600; color: var(--text-muted); margin-bottom: 8px; }
footer.site-footer .fcol a { display: block; color: var(--text); font-size: 13.5px; text-decoration: none; padding: 3px 0; }
footer.site-footer .fcol a:hover { color: var(--accent); }
footer.site-footer .copyright { font-size: 12px; color: var(--text-muted); margin-top: 22px; }

/* 共有ヘッダー v2（Notion型＝brand＋ナビ＋右端CTA）。全マーケ下層ページ共通 */
header.site-header { padding: 16px 0 6px; display: flex; align-items: center; gap: 14px 18px; flex-wrap: wrap; }
header.site-header a.brand { font-weight: 700; font-size: 1.05rem; letter-spacing: -0.01em; color: var(--text); text-decoration: none; }
header.site-header a.brand small { color: var(--text-muted); font-weight: 400; margin-left: .6em; }
header.site-header a.brand::before { content: ""; display: inline-block; width: 21px; height: 21px;
  background: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj48cmVjdCB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgcng9IjExMiIgZmlsbD0iIzBlN2M3NCIvPjxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZmZmZiIgc3Ryb2tlLXdpZHRoPSIzMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMTIwIDE3NiBMMTIwIDEyMCBMMTc2IDEyMCIvPjxwYXRoIGQ9Ik0zMzYgMTIwIEwzOTIgMTIwIEwzOTIgMTc2Ii8+PHBhdGggZD0iTTM5MiAzMzYgTDM5MiAzOTIgTDMzNiAzOTIiLz48cGF0aCBkPSJNMTc2IDM5MiBMMTIwIDM5MiBMMTIwIDMzNiIvPjwvZz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNTYgMjU2KSBzY2FsZSgwLjUyKSB0cmFuc2xhdGUoLTI0NiAtMjY1KSI+PHBhdGggZD0iTTI0MyAxMTAgSDM3MiBhMzAgMzAgMCAwIDEgMzAgMzAgVjI2OSBhMzAgMzAgMCAwIDEgLTguOCAyMS4yIEwyNjIgNDIxLjQgYTMwIDMwIDAgMCAxIC00Mi40IDAgTDkwLjYgMjkyLjQgYTMwIDMwIDAgMCAxIDAgLTQyLjQgTDIyMS44IDExOC44IEEzMCAzMCAwIDAgMSAyNDMgMTEwIFoiIGZpbGw9IiNmZmZmZmYiLz48Y2lyY2xlIGN4PSIzMzAiIGN5PSIxODIiIHI9IjI0IiBmaWxsPSIjMGU3Yzc0Ii8+PC9nPjwvc3ZnPg==") center/contain no-repeat; border-radius: 5px;
  vertical-align: -4px; margin-right: 8px; }
header.site-header .hnav { display: none; }
header.site-header .hnav a { color: var(--text-muted); font-size: 13.5px; text-decoration: none; }
header.site-header .hnav a:hover { color: var(--text); }
header.site-header .hcta { background: var(--accent); color: #fff; font-size: 13px; font-weight: 500;
  padding: 8px 14px; border-radius: 8px; text-decoration: none; white-space: nowrap; margin-left: auto; }
@media (min-width: 640px) {
  header.site-header .hnav { display: flex; gap: 4px 16px; margin-left: auto; }
  header.site-header .hcta { margin-left: 0; }
}
/* PCではアプリ導線ボタンを出さない（2026-07-10）：app側がPCではQR誘導のみ＝押しても使えないボタンは
   出さない（PCバナーのQRが唯一の導線）。ボタン型リンク（.hcta/.btn）だけ隠し、本文中の説明リンクは残す。
   幅900px＝PCバナー(.pc-notice)と同じ境界。 */
@media (min-width: 900px) {
  a.hcta[href^="https://app.tagsna.com"], a.btn[href^="https://app.tagsna.com"] { display: none; }
}

/* PC専用：スマホ誘導バナー（landing側 .pc-notice と同じ役割。値札を撮影して使うアプリなのでPCでは体験できない） */
.pc-notice { display: none; }
@media (min-width: 900px) {
  .pc-notice {
    display: flex; align-items: center; gap: 16px;
    background: var(--accent-tint-bg); border-radius: var(--radius);
    padding: 14px 18px; margin: 8px 0 20px;
  }
  .pc-notice .qr { flex: 0 0 56px; width: 56px; height: 56px; background: #fff;
    border-radius: 8px; border: 1px solid var(--line-strong); padding: 4px; }
  .pc-notice .txt b { display: block; font-size: .92rem; font-weight: 700; color: var(--accent-tint-text); margin-bottom: 2px; }
  .pc-notice .txt span { font-size: .8rem; color: var(--text-muted); }
  .pc-notice .qr-label { flex-shrink: 0; font-size: .7rem; font-weight: 700; color: var(--accent-tint-text);
    text-align: center; max-width: 56px; line-height: 1.3; }
}
.lead { color: var(--text-muted); font-size: 1rem; margin: 4px 0 8px; }

/* FAQのグループ見出し（一問一答を束ねる区切り） */
.faq-group { font-size: 1.3rem; font-weight: 700; margin: 44px 0 16px; padding-bottom: 10px; border-bottom: 2px solid var(--accent); color: var(--text); }
.faq-group:first-of-type { margin-top: 22px; }

/* Q&A（FAQ）＝罫線区切りのアコーディオン（details/summary・JS不要） */
.qa { border-top: 1px solid var(--line); padding: 16px 0; }
.qa:last-of-type { border-bottom: 1px solid var(--line); }
.qa .q { font-weight: 600; font-size: 1rem; color: var(--text); margin: 0; }
.qa summary.q { cursor: pointer; list-style: none; display: flex; align-items: baseline; gap: 10px; }
.qa summary.q::-webkit-details-marker { display: none; }
.qa summary.q::after { content: "+"; margin-left: auto; font-weight: 400; color: var(--text-muted); font-size: 1.15rem; flex-shrink: 0; }
.qa[open] summary.q::after { content: "\2212"; }
.qa summary.q + * { margin-top: 10px; }
.qa .a { margin: 0; color: #333; font-size: 14.5px; }
.qa .a + .a { margin-top: 8px; }

/* 使い方の手順＝番号バッジ＋本文 */
.step-row { display: flex; gap: 14px; padding: 16px 0; border-top: 1px solid var(--line); }
.step-row:last-of-type { border-bottom: 1px solid var(--line); }
.step-row .num { flex: 0 0 28px; height: 28px; border-radius: 999px; background: var(--accent-tint-bg);
  color: var(--accent-tint-text); font-weight: 700; font-size: 14px; display: flex; align-items: center; justify-content: center; }
.step-row .body h2 { margin: 2px 0 4px; font-size: 1rem; }
.step-row .body p { margin: 0; }

/* 機能ブロック＝常に画像が左・説明が右（ジグザグにしない）。landingの.fbと同じパターン。
   デスクトップ幅だけ2カラム化＝縦にスクショが積み上がるのを防ぐ（狭い画面はそのまま縦積み）。 */
.fb { display: grid; gap: 16px; align-items: center; margin: 18px 0; }
@media (min-width: 760px) {
  .fb { grid-template-columns: 1fr 1fr; gap: 40px; }
  .fb .fbtext { order: 2; }
  .fb .imgslot { order: 1; }
}
.fb .imgslot { margin: 0; }
.fb .fbtext p { margin: 0 0 10px; }
.fb .fbtext p:last-child { margin-bottom: 0; }

/* 更新履歴 */
.rel { border-top: 1px solid var(--line); padding: 16px 0; }
.rel:last-of-type { border-bottom: 1px solid var(--line); }
.rel .date { font-size: 12.5px; color: var(--text-muted); font-weight: 500; }
.rel h2 { font-size: 1rem; margin: 4px 0; }
.rel p { margin: 0; }

/* 注記ボックス（免責・補足） */
.note-box { background: #fafafa; border: 1px solid var(--line-strong); border-radius: var(--radius);
  padding: 12px 16px; font-size: 13px; color: var(--text-muted); margin: 16px 0; }

/* 画像スロット（テキスト先行→画像一括投入の受け皿）。画像が入るまでは破線プレースホルダ、
   <img> を入れたら .ph を消すだけ。スマホ画面のスクショは幅を抑えて中央寄せ。 */
.imgslot { margin: 14px 0; }
.imgslot .ph { border: 2px dashed var(--line-strong); border-radius: var(--radius); background: #fafafa;
  color: var(--text-muted); font-size: 12.5px; padding: 34px 16px; text-align: center; }
.imgslot img { display: block; max-width: min(100%, 340px); height: auto; margin: 0 auto; border: 1px solid var(--line-strong);
  border-radius: var(--radius); }
.imgslot figcaption { font-size: 12.5px; color: var(--text-muted); text-align: center; margin-top: 6px; }
