:root { --bg:#ffffff; --text:#2a2a2a; --muted:#6b6b6b; --accent:#3a7d5c; --accent-dark:#2d6147; --border:#e5e0d2; --card:#fbf8f0; --highlight:#f6efde; --warm:#b5651d; --warm-light:#fcf3e3; }
* { box-sizing:border-box; }
body { margin:0; font-family:"Hiragino Sans","Noto Sans JP",system-ui,sans-serif; background:var(--bg); color:var(--text); line-height:1.9; font-size:16px; }
header.site { background:var(--card); padding:18px 32px; display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid var(--border); }
header.site .logo { font-family:"Hiragino Mincho ProN",serif; font-size:22px; color:var(--accent-dark); font-weight:500; text-decoration:none; }
header.site nav a { color:var(--muted); font-size:14px; text-decoration:none; margin-left:18px; }
header.site nav a:hover { color:var(--accent); }
nav.breadcrumb { max-width:760px; margin:0 auto; padding:14px 24px 0; font-size:13px; color:var(--muted); }
nav.breadcrumb a { color:var(--muted); text-decoration:none; }
nav.breadcrumb a:hover { color:var(--accent); }
nav.breadcrumb .sep { margin:0 6px; opacity:.5; }
article.post { max-width:760px; margin:0 auto; padding:24px 24px 80px; }
article.post header.post-head { margin:0 0 32px; padding-bottom:22px; border-bottom:1px solid var(--border); }
article.post h1 { font-family:"Hiragino Mincho ProN",serif; font-size:28px; font-weight:500; line-height:1.55; margin:0 0 14px; }
article.post .meta { font-size:13px; color:var(--muted); margin:0; }
article.post .meta .sep { margin:0 8px; opacity:.5; }
article.post .meta a { color:var(--muted); text-decoration:underline; text-decoration-color:var(--border); text-underline-offset:3px; }
article.post .lead { background:var(--highlight); padding:20px 24px; border-left:3px solid var(--accent); margin:0 0 32px; font-size:15.5px; line-height:1.9; }
article.post .lead p { margin:0 0 12px; }
article.post .lead p:last-child { margin-bottom:0; }
article.post h2 { font-family:"Hiragino Mincho ProN",serif; font-size:24px; font-weight:600; margin:56px 0 22px; padding:14px 18px 14px 22px; line-height:1.5; background:var(--highlight); border-left:6px solid var(--accent); border-radius:0 4px 4px 0; color:var(--accent-dark); }
article.post h3 { font-size:18px; font-weight:700; margin:34px 0 14px; padding-left:14px; color:var(--accent-dark); border-left:4px solid var(--accent); line-height:1.5; }
article.post p { margin:0 0 16px; }
article.post ul, article.post ol { margin:0 0 22px; padding-left:22px; }
article.post li { margin-bottom:8px; }
article.post figure { margin:28px 0; }
article.post figure img { width:100%; height:auto; border-radius:6px; display:block; }
article.post figure figcaption { margin-top:8px; font-size:13px; color:var(--muted); text-align:center; }
article.post blockquote.coach-quote { margin:28px 0; padding:18px 24px; background:var(--card); border-left:4px solid var(--accent); font-family:"Hiragino Mincho ProN",serif; font-size:17px; line-height:1.85; color:#333; }
article.post blockquote.coach-quote .src { display:block; margin-top:8px; font-family:"Hiragino Sans",sans-serif; font-size:13px; color:var(--muted); }
article.post .case-box { margin:28px 0; padding:20px 24px; background:var(--highlight); border-radius:4px; }
article.post .case-box h4 { margin:0 0 10px; font-size:14px; color:var(--accent-dark); letter-spacing:.04em; }
article.post .case-box p:last-child { margin-bottom:0; }
article.post .point-box { margin:28px 0; padding:20px 24px; background:var(--warm-light); border-left:4px solid var(--warm); border-radius:0 4px 4px 0; }
article.post .point-box h4 { margin:0 0 10px; font-size:14px; color:var(--warm); letter-spacing:.04em; }
article.post .point-box p { margin:0 0 8px; font-size:15px; line-height:1.85; }
article.post .point-box p:last-child { margin-bottom:0; }
article.post table.compare { width:100%; border-collapse:collapse; margin:22px 0; font-size:14.5px; }
article.post table.compare th, article.post table.compare td { border:1px solid var(--border); padding:10px 14px; text-align:left; vertical-align:top; }
article.post table.compare th { background:var(--highlight); font-weight:600; }
section.faq { margin:40px 0 32px; padding:26px 28px; background:var(--card); border:1px solid var(--border); border-radius:6px; }
section.faq h2 { font-family:"Hiragino Mincho ProN",serif; font-size:21px; font-weight:500; margin:0 0 18px; padding:0; border-bottom:none; background:transparent; border-left:none; color:var(--accent-dark); }
section.faq details { border-bottom:1px solid var(--border); padding:12px 0; }
section.faq details:last-of-type { border-bottom:none; }
section.faq summary { cursor:pointer; font-weight:600; font-size:16px; color:var(--accent-dark); padding:4px 0 4px 26px; list-style:none; position:relative; }
section.faq summary::-webkit-details-marker { display:none; }
section.faq summary::before { content:"Q."; position:absolute; left:0; top:4px; color:var(--accent); font-weight:700; }
section.faq details[open] summary { margin-bottom:8px; }
section.faq .faq-answer { padding:4px 0 8px 26px; font-size:15px; line-height:1.85; position:relative; }
section.faq .faq-answer::before { content:"A."; position:absolute; left:0; top:4px; color:var(--muted); font-weight:700; }
aside.related { margin:48px 0 32px; padding:24px 26px; background:var(--card); border:1px solid var(--border); border-radius:6px; }
aside.related h3 { margin:0 0 12px; font-size:16px; color:var(--accent-dark); padding:0; border:none; }
aside.related ul { list-style:none; padding:0; margin:0; }
aside.related li { margin:0 0 10px; padding-left:16px; position:relative; font-size:15px; }
aside.related li::before { content:"→"; position:absolute; left:0; color:var(--accent); }
aside.related a { color:var(--text); text-decoration:none; border-bottom:1px dotted var(--border); }
aside.related a:hover { color:var(--accent); }
aside.kanshu, aside.kanshu-simple { margin:36px 0 0; padding:22px 24px; background:var(--card); border:1px solid var(--border); border-radius:6px; font-size:14.5px; line-height:1.8; }
aside.kanshu h3 { margin:0 0 10px; font-size:14px; color:var(--muted); letter-spacing:.04em; padding:0; border:none; }
aside.kanshu a, aside.kanshu-simple a { color:var(--accent-dark); text-decoration:underline; text-decoration-color:var(--border); text-underline-offset:3px; }
aside.kanshu .citation { margin-top:10px; font-size:13px; color:var(--muted); padding-top:10px; border-top:1px solid var(--border); }
section.cta-line { margin:32px 0; padding:32px 28px; background:linear-gradient(135deg,#3a7d5c 0%,#2d6147 100%); color:white; border-radius:8px; text-align:center; }
section.cta-line h3 { margin:0 0 10px; font-size:22px; font-family:"Hiragino Mincho ProN",serif; font-weight:500; color:white; padding:0; border:none; background:transparent; }
section.cta-line p { margin:0 0 18px; font-size:14.5px; opacity:.94; }
section.cta-line a.line-btn { display:inline-block; background:white; color:var(--accent-dark); padding:14px 32px; border-radius:999px; text-decoration:none; font-weight:600; font-size:15px; }
section.cta-line a.line-btn:hover { background:#f5f1e8; }
section.cta-line .perks { margin-top:14px; font-size:13px; opacity:.85; }
.coach-signature-block { margin:36px 0 0; padding:22px 24px; background:var(--card); border:1px solid var(--border); border-radius:6px; font-size:14.5px; line-height:1.8; }
.coach-signature-block h3 { margin:0 0 10px; font-size:14px; color:var(--muted); letter-spacing:.04em; padding:0; border:none; }
.coach-signature-block a { color:var(--accent-dark); text-decoration:underline; text-decoration-color:var(--border); text-underline-offset:3px; }
.coach-signature { margin:8px 0 0; font-size:16px; font-family:"Hiragino Mincho ProN",serif; color:var(--accent-dark); }
footer.site { padding:32px 24px; background:#2a2a2a; color:#b0b0b0; font-size:13px; text-align:center; }
footer.site a { color:#b0b0b0; text-decoration:none; margin:0 8px; }
footer.site a:hover { color:white; }
footer.site .links { line-height:2; }
@media (max-width:640px){
  header.site { padding:14px 18px; }
  header.site nav { display:none; }
  article.post { padding:18px 18px 56px; }
  article.post h1 { font-size:22px; }
  article.post h2 { font-size:20px; margin:40px 0 16px; padding:12px 14px 12px 18px; }
  article.post h3 { font-size:16px; }
  section.cta-line { padding:24px 18px; }
  section.cta-line h3 { font-size:18px; }
}
