/* SwingAid ブログ共通スタイル
   デザイントークンは 02_クライアント引き継ぎ書 §1-2 が正本。
   色・書体を変えるときは先にあちらを直すこと。 */

:root{
  --bg:#1A1511; --surf:#221C17; --surf2:#2B231C;
  --gold:#C5A36A; --gold-h:#D3B67A;
  --ivory:#F3EFE6; --text:#E8E4DA; --mute:#A7ADB5; --faint:#7A828B;
  --line:#332A22; --line2:#40352B;
  --serif:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;
  --sans:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  --en:"Cormorant Garamond",Georgia,serif;
  /* LINE公式CIカラー #06C755。hoverは公式ボタンガイドラインに倣い黒10%相当の暗色 */
  --line-green:#06C755; --line-green-h:#05B34D;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);
  font-weight:400;line-height:1.95;letter-spacing:.02em;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--gold);text-decoration:none}
a:hover{color:var(--gold-h)}

/* ヘッダー */
.bh{position:sticky;top:0;z-index:100;background:rgba(26,21,17,.94);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.bh .in{max-width:1080px;margin:0 auto;padding:14px 24px;display:flex;align-items:center;gap:24px}
.bh .logo{display:block;line-height:0}
.bh .logo img{height:34px;width:auto;display:block}
@media(max-width:760px){.bh .logo img{height:28px}}
.bh .logo span{color:var(--gold)}
.bh nav{margin-left:auto;display:flex;gap:20px;font-size:12px;letter-spacing:.12em}
.bh nav a{color:var(--mute)}
.bh nav a:hover{color:var(--gold)}
@media(max-width:760px){.bh nav{display:none}}

/* 本体 */
.wrap{max-width:760px;margin:0 auto;padding:0 24px}
.crumb{font-size:11px;letter-spacing:.08em;color:var(--faint);padding:26px 0 0}
.crumb a{color:var(--mute)}
.crumb span{margin:0 8px}

article{padding:0 0 72px}
.kicker{font-family:var(--en);font-size:12px;letter-spacing:.42em;color:var(--gold);
  text-transform:uppercase;display:block;margin-top:34px}
h1{font-family:var(--serif);font-weight:500;font-size:31px;line-height:1.55;
  color:var(--ivory);letter-spacing:.04em;margin:18px 0 0}
@media(max-width:760px){h1{font-size:23px}}
.meta{font-size:11.5px;color:var(--faint);letter-spacing:.08em;margin-top:18px}
.hero{margin:32px 0 8px;border:1px solid var(--line)}
.lead{font-size:15px;line-height:2.05;color:var(--text);margin-top:30px}

/* 目次 */
.toc{background:var(--surf);border:1px solid var(--line);padding:24px 26px;margin:38px 0}
.toc h2{font-family:var(--sans);font-size:12px;letter-spacing:.2em;color:var(--gold);
  margin:0 0 14px;font-weight:500}
.toc ol{margin:0;padding-left:20px;font-size:13.5px;line-height:2.1}
.toc a{color:var(--text)}
.toc a:hover{color:var(--gold)}

/* 見出し・本文 */
h2{font-family:var(--serif);font-weight:500;font-size:22px;line-height:1.6;color:var(--ivory);
  letter-spacing:.04em;margin:56px 0 0;padding-top:26px;border-top:1px solid var(--line)}
@media(max-width:760px){h2{font-size:18px}}
h3{font-family:var(--sans);font-weight:500;font-size:15px;color:var(--gold);
  letter-spacing:.04em;margin:34px 0 0}
p{margin:16px 0 0;font-size:14.5px}
.pt{background:var(--surf2);border-left:2px solid var(--gold);padding:16px 18px;margin-top:20px;
  font-size:14px;line-height:1.95;color:var(--text)}
ul,ol.body{margin:16px 0 0;padding-left:22px;font-size:14.5px;line-height:2}
li{margin-bottom:7px}

/* 取材待ちの印。公開前に必ず消す（虚偽記載を防ぐための可視マーカー） */

/* 表 */
.tw{overflow-x:auto;margin-top:22px}
table{border-collapse:collapse;width:100%;min-width:460px;font-size:13.5px}
th,td{border:1px solid var(--line2);padding:11px 13px;text-align:left;vertical-align:top}
th{background:var(--surf2);color:var(--gold);font-weight:500;letter-spacing:.06em}

/* FAQ */
.faq{margin-top:22px;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;display:flex;gap:14px;align-items:baseline;
  padding:20px 4px;color:var(--ivory);font-size:14.5px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"Q";font-family:var(--en);color:var(--gold);font-size:15px}
.faq .a{padding:0 4px 22px 32px;color:var(--mute);font-size:13.5px;line-height:2}

/* まとめ */
.sum{background:var(--surf);border:1px solid var(--line2);padding:26px 28px;margin-top:44px}
.sum h2{border:0;margin:0 0 12px;padding:0;font-size:17px}
.sum ol{margin:0;padding-left:20px;font-size:14px;line-height:2}

/* CTA */
.cta{background:linear-gradient(120deg,var(--surf2),var(--bg));border:1px solid var(--line2);
  text-align:center;padding:44px 24px;margin-top:48px}
.cta p{color:var(--mute);font-size:13.5px;margin:0 0 22px}
.btn{display:inline-block;padding:14px 26px;font-size:13px;letter-spacing:.1em;
  font-weight:500;margin:0 5px 8px}
.btn.p{background:var(--gold);color:#1A1511}
.btn.p:hover{background:var(--gold-h);color:#1A1511}
.btn.g{border:1px solid var(--gold);color:var(--gold)}
.btn.g:hover{background:rgba(197,163,106,.1)}

/* 関連記事 */
.rel{margin-top:52px}
.rel h2{border:0;padding:0;margin:0 0 18px;font-size:17px}
.rel .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--line)}
@media(max-width:760px){.rel .cards{grid-template-columns:1fr}}
.rel a.card{display:block;background:var(--surf);padding:20px;color:var(--text)}
.rel a.card:hover{background:var(--surf2)}
.rel .card .k{font-family:var(--en);font-size:10.5px;letter-spacing:.3em;color:var(--gold);
  text-transform:uppercase}
.rel .card .t{font-size:13.5px;line-height:1.75;margin-top:9px;color:var(--ivory)}

/* 一覧ページ */
.list{margin:36px 0 72px}
.list a.row{display:block;border-top:1px solid var(--line);padding:26px 0;color:var(--text)}
.list a.row:last-child{border-bottom:1px solid var(--line)}
.list .k{font-family:var(--en);font-size:10.5px;letter-spacing:.3em;color:var(--gold);text-transform:uppercase}
.list .t{font-family:var(--serif);font-size:19px;line-height:1.6;color:var(--ivory);margin-top:8px}
.list .d{font-size:13px;color:var(--mute);margin-top:9px;line-height:1.9}
.list a.row:hover .t{color:var(--gold)}

/* フッター */
footer{padding:52px 24px 110px;text-align:center;color:var(--faint);
  font-size:11.5px;letter-spacing:.1em;border-top:1px solid var(--line)}
footer .logo{line-height:0}
footer .logo img{height:42px;width:auto;display:inline-block}
footer .logo span{color:var(--gold)}
footer nav{margin-top:18px;display:flex;gap:20px;justify-content:center;flex-wrap:wrap}
footer nav a{color:var(--mute)}
footer .cp{margin-top:22px}

/* モバイル追従CTA（トップと同じ構成） */
.fixcta{position:fixed;left:0;right:0;bottom:0;z-index:99;display:none;
  grid-template-columns:1.2fr 1fr 1fr;gap:1px;background:var(--line)}
.fixcta a{padding:16px 8px;text-align:center;font-size:13px;letter-spacing:.1em;font-weight:500}
.fixcta .a1{background:var(--gold);color:#1A1511}
.fixcta .a2{background:var(--surf2);color:var(--ivory)}
.fixcta .a3{background:#2B231C;color:var(--gold)}
@media(max-width:760px){.fixcta{display:grid}}

/* 公式LINE導線: ブランドカラーで即座に見分けられるようにする */
.btn.line{background:var(--line-green);color:#fff;border:1px solid var(--line-green)}
.btn.line:hover{background:var(--line-green-h);border-color:var(--line-green-h);color:#fff}
a.line-link{color:var(--line-green);text-decoration:underline;text-underline-offset:3px}
a.line-link:hover{color:var(--line-green-h)}
.fixcta .a2{background:var(--line-green);color:#fff}
.fixcta .a2:hover{background:var(--line-green-h);color:#fff}

/* 記事内の図版。altは写っているものと一致させる（引き継ぎ書 §1-4） */
figure.fig{margin:26px 0 0}
figure.fig img{border:1px solid var(--line)}
figure.fig figcaption{margin-top:10px;font-size:12px;color:var(--faint);letter-spacing:.06em;line-height:1.8}

/* 著者情報。AI検索が「誰が書いたか」を拾えるようにする（E-E-A-T / AIO） */
.author{display:flex;gap:20px;align-items:flex-start;background:var(--surf);
  border:1px solid var(--line2);padding:24px 26px;margin-top:48px}
.author .ph{flex:0 0 84px}
.author .ph img{width:84px;height:84px;object-fit:cover;border:1px solid var(--gold)}
.author .nm{font-family:var(--serif);font-size:16px;color:var(--ivory);letter-spacing:.04em}
.author .nm small{display:block;font-family:var(--sans);font-size:11px;color:var(--gold);
  letter-spacing:.14em;margin-top:6px}
.author p{font-size:13px;line-height:1.95;color:var(--mute);margin-top:12px}
@media(max-width:600px){.author{flex-direction:column;gap:14px}.author .ph{flex:none}}

/* テキスト選択とフォーカスリング（トップと同一。未指定だとブラウザ既定の青が出る） */
::selection{background:rgba(197,163,106,.30);color:#F3EFE6}
:focus-visible{outline:2px solid #C5A36A;outline-offset:3px;border-radius:1px}