/* とんとん ガイド記事の共通スタイル。トップページのトークンに合わせている。 */
:root{
  --paper:#fbf8f3; --ink:#29372e; --muted:#61665f; --green:#355b47;
  --sage:#7ba888; --honey:#e8b86e; --line:#deded3; --card:#fff;
  --body:'Zen Kaku Gothic New','Hiragino Kaku Gothic ProN',sans-serif;
  --heading:'Zen Maru Gothic',sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.9;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
a:focus-visible,summary:focus-visible{outline:3px solid #a56c20;outline-offset:4px}
.skip-link{position:fixed;top:8px;left:12px;transform:translateY(-160%);z-index:99;padding:10px 20px;background:#fff}
.skip-link:focus{transform:none}

/* ヘッダー */
.g-header{position:sticky;top:0;z-index:20;background:rgba(251,248,243,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.g-header-inner{max-width:860px;margin:0 auto;padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.g-brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-family:var(--heading);font-weight:700;font-size:19px;letter-spacing:.05em;white-space:nowrap}
.g-brand img{width:30px;height:30px;border-radius:24%;flex:none}
.g-nav{display:flex;align-items:center;gap:18px;font-size:13px;font-weight:700}
.g-nav a{text-decoration:none;color:var(--muted)}
.g-nav a:hover{color:var(--green);text-decoration:underline;text-underline-offset:5px}
.g-cta{display:inline-flex;align-items:center;gap:8px;background:#263f31;color:#fff;text-decoration:none;padding:10px 17px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}
.g-cta:hover{background:#1e3329}
.g-cta img{width:15px;height:18px;object-fit:contain;filter:brightness(0) invert(1);flex:none}

/* 本体 */
.g-main{max-width:860px;margin:0 auto;padding:0 24px 96px}
.g-crumb{font-size:12px;color:var(--muted);padding:22px 0 0;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.g-crumb a{color:var(--muted);text-decoration:none}
.g-crumb a:hover{color:var(--green);text-decoration:underline;text-underline-offset:4px}
.g-crumb span[aria-hidden]{color:#b3b8ae}

.g-head{padding:26px 0 34px;border-bottom:1px solid var(--line)}
.g-eyebrow{font-size:11px;font-weight:700;letter-spacing:.28em;color:var(--sage);margin:0 0 16px}
.g-head h1{font-family:var(--heading);font-weight:700;font-size:clamp(27px,4.2vw,40px);line-height:1.55;letter-spacing:.02em;margin:0}
.g-lead{font-size:15.5px;line-height:2.05;color:#4f5b51;margin:22px 0 0;text-wrap:pretty}
.g-meta{font-size:12px;color:var(--muted);margin:20px 0 0}

/* 目次 */
.g-toc{background:#f1f3ea;border-radius:16px;padding:24px 28px;margin:34px 0 0}
.g-toc h2{font-family:var(--heading);font-size:14px;font-weight:700;margin:0 0 12px;letter-spacing:.04em}
.g-toc ol{margin:0;padding-left:1.3em;font-size:14px;line-height:2.05}
.g-toc a{color:#4f5b51;text-decoration:none}
.g-toc a:hover{color:var(--green);text-decoration:underline;text-underline-offset:4px}

/* 記事本文 */
.g-body{padding-top:12px}
.g-body h2{font-family:var(--heading);font-weight:700;font-size:clamp(21px,2.6vw,27px);line-height:1.6;letter-spacing:.02em;margin:60px 0 0;padding-top:8px;display:flex;align-items:baseline;gap:12px}
.g-body h2:before{content:'';width:9px;height:9px;border-radius:50%;background:var(--sage);flex:none;transform:translateY(-3px)}
.g-body h3{font-family:var(--heading);font-weight:700;font-size:18px;line-height:1.65;margin:38px 0 0}
.g-body p{margin:18px 0 0;color:#4a534a;line-height:2.05;text-wrap:pretty}
.g-body ul,.g-body ol{margin:18px 0 0;padding-left:1.4em;color:#4a534a;line-height:2.05}
.g-body li{margin:8px 0}
.g-body strong{font-weight:700;color:var(--ink)}
.g-body a:not(.g-cta):not(.g-card-link){color:var(--green);font-weight:500;text-underline-offset:4px}

/* 表 */
.g-table-wrap{overflow-x:auto;margin:26px 0 0;-webkit-overflow-scrolling:touch}
.g-table{border-collapse:collapse;width:100%;min-width:520px;font-size:14px;background:#fff;border-radius:12px;overflow:hidden}
.g-table th,.g-table td{border:1px solid var(--line);padding:13px 15px;text-align:left;vertical-align:top;line-height:1.85}
.g-table th{background:#f1f3ea;font-weight:700;font-size:13px;white-space:nowrap}
.g-table td{color:#4a534a}

/* 補足ボックス */
.g-note{background:#fff;border:1px solid var(--line);border-left:4px solid var(--honey);border-radius:12px;padding:20px 24px;margin:28px 0 0}
.g-note p{margin:0;font-size:14.5px}
.g-note p+p{margin-top:12px}
.g-note strong{display:block;font-family:var(--heading);font-size:14px;margin-bottom:6px;color:var(--ink)}

/* アプリ紹介カード */
.g-promo{background:#eef1e7;border-radius:22px;padding:clamp(28px,4vw,40px);margin:64px 0 0;display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:start}
.g-promo img.g-promo-icon{width:62px;height:62px;border-radius:24%;flex:none}
.g-promo h2{font-family:var(--heading);font-size:20px;font-weight:700;margin:0;line-height:1.6}
.g-promo p{font-size:14px;line-height:2;color:#4a534a;margin:12px 0 0}
.g-promo .g-cta{margin-top:20px;padding:13px 22px;font-size:13px}
.g-promo small{display:block;font-size:11px;color:var(--muted);margin-top:10px}

/* 関連記事 */
.g-related{margin:64px 0 0;border-top:1px solid var(--line);padding-top:36px}
.g-related h2{font-family:var(--heading);font-size:17px;font-weight:700;margin:0 0 18px}
.g-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px;list-style:none;padding:0;margin:0}
.g-card-link{display:block;background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px 22px;text-decoration:none;transition:transform .18s,box-shadow .18s}
.g-card-link:hover{transform:translateY(-2px);box-shadow:0 8px 20px #29372e12}
.g-card-link strong{display:block;font-family:var(--heading);font-size:15px;line-height:1.65;color:var(--ink)}
.g-card-link span{display:block;font-size:12.5px;line-height:1.9;color:var(--muted);margin-top:8px}

/* ガイド一覧 */
.g-list{list-style:none;padding:0;margin:38px 0 0;display:grid;gap:16px}
.g-list .g-card-link{padding:26px 28px}
.g-list strong{font-size:18px}
.g-list span{font-size:13.5px;margin-top:10px}

/* フッター */
.g-footer{max-width:860px;margin:0 auto;padding:0 24px 44px}
.g-footer-inner{border-top:1px solid var(--line);padding-top:26px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px;font-size:11px;color:var(--muted)}
.g-footer nav{display:flex;flex-wrap:wrap;gap:16px}
.g-footer a{color:var(--muted);text-decoration:none}
.g-footer a:hover{color:var(--green);text-decoration:underline;text-underline-offset:4px}

@media(max-width:760px){
  .g-header-inner{padding:12px 18px}
  .g-brand{font-size:17px}
  .g-nav a{display:none}
  .g-main{padding:0 18px 72px}
  .g-footer{padding:0 18px 36px}
  .g-toc{padding:20px 22px}
  .g-body h2{margin-top:46px;gap:10px}
  .g-body p,.g-body ul,.g-body ol{line-height:2}
  .g-promo{grid-template-columns:1fr;gap:16px;padding:26px 22px}
  .g-cards{grid-template-columns:1fr}
  .g-table{min-width:480px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.g-card-link{transition:none}.g-card-link:hover{transform:none}}
