/*
Theme Name: 資格科
Theme URI: https://shikakuka.com/
Description: 資格科（shikakuka.com）専用テーマ。1カラム・高情報密度・比較表重視・暖色系。配色は :root のCSS変数に集約しているので、色だけ差し替え可能。
Version: 0.3.0
Requires at least: 6.5
Requires PHP: 8.0
Text Domain: shikakuka
*/

/* ============================================================
   1. 配色（ここだけ変えれば全体の色が変わる）
   暖色系。くすんだ黄みには寄せず、赤み寄りのテラコッタを主役にする。
   ============================================================ */
:root{
  /* ベース：白基調。地に色を敷かない */
  --c-bg:        #ffffff;
  --c-bg-soft:   #f7f8f9;   /* ニュートラルグレー。セクション背景 */
  --c-bg-tint:   #eef1f3;
  --c-bg-deep:   #e4e9ec;

  /* 文字：ニュートラルなダークグレー */
  --c-text:      #2f3337;
  --c-text-sub:  #6b747c;
  --c-text-weak: #9aa3aa;

  /* 差し色1：濃いオレンジ（朱）。面では使わず、線・バッジ・ボタンだけに使う */
  --c-key:       #e05500;
  --c-key-dark:  #b84400;
  --c-key-light: #ffe6d6;

  /* 差し色2：濃い青。情報の種類を区別するため */
  --c-accent:      #1f5f7a;
  --c-accent-light:#dfeaf0;

  /* 罫線：ニュートラル */
  --c-line:      #e2e6e9;
  --c-line-soft: #eef1f3;

  /* 意味色 */
  --c-ok:        #3f7f5c;
  --c-warn:      #b07d1e;

  /* レイアウト */
  --w-content:   740px;
  --w-wide:      1060px;
  --radius:      7px;
}

/* ============================================================
   2. リセットと基本
   ============================================================ */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--c-bg);
  color:var(--c-text);
  font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP","Yu Gothic Medium","游ゴシック Medium",YuGothic,Meiryo,sans-serif;
  font-size:16px;
  line-height:1.85;
  font-feature-settings:"palt";
}
img{ max-width:100%; height:auto; vertical-align:bottom; }
a{ color:var(--c-key-dark); text-decoration:underline; text-underline-offset:2px; text-decoration-thickness:1px; }
a:hover{ color:var(--c-key); }

.wrap{ width:100%; max-width:var(--w-wide); margin:0 auto; padding:0 20px; }
.content{ width:100%; max-width:var(--w-content); margin:0 auto; }

/* ============================================================
   3. ヘッダー
   ============================================================ */
.site-header{
  background:var(--c-bg);
  border-bottom:1px solid var(--c-line);
  box-shadow:0 1px 0 rgba(210,96,63,.06);
  position:sticky; top:0; z-index:50;
}
.site-header__bar{ background:#fff; color:var(--c-text-sub); font-size:11.5px; letter-spacing:.04em; border-bottom:1px solid var(--c-line-soft); }
.site-header__bar b{ color:var(--c-key-dark); font-weight:700; }
.site-header__bar .wrap{ padding-top:5px; padding-bottom:5px; }
.site-header__inner{
  display:flex; align-items:center; justify-content:space-between;
  gap:16px; padding-top:13px; padding-bottom:13px;
}
.site-title{ margin:0; font-size:21px; line-height:1.3; letter-spacing:.06em; }
.site-title a{ color:var(--c-text); text-decoration:none; font-weight:800; }
.site-title a::before{
  content:"科"; display:inline-block; margin-right:8px;
  width:28px; height:28px; line-height:28px; text-align:center;
  background:var(--c-key); color:#fff; border-radius:5px;
  font-size:16px; vertical-align:-4px; letter-spacing:0;
}
.site-desc{ margin:3px 0 0 36px; font-size:12px; color:var(--c-text-sub); line-height:1.5; }

.gnav ul{ display:flex; gap:4px; margin:0; padding:0; list-style:none; flex-wrap:wrap; }
.gnav a{
  display:block; padding:6px 13px; font-size:13.5px; font-weight:600;
  color:var(--c-text-sub); text-decoration:none; border-radius:20px;
}
.gnav a:hover{ color:var(--c-key-dark); background:var(--c-key-light); }

/* ============================================================
   4. フッター
   ============================================================ */
.site-footer{
  margin-top:64px; padding:34px 0 40px;
  border-top:3px solid var(--c-key); background:var(--c-bg-soft);
  font-size:13px; color:var(--c-text-sub);
}
.site-footer__policy{
  margin:0 0 18px; padding:14px 16px; background:#fff;
  border:1px solid var(--c-line); border-radius:var(--radius);
  font-size:12.5px; line-height:1.8;
}
.site-footer ul{ display:flex; gap:18px; flex-wrap:wrap; margin:0 0 12px; padding:0; list-style:none; }
.site-footer a{ color:var(--c-text-sub); }
.site-footer__copy{ margin:0; color:var(--c-text-weak); font-size:12px; }

/* ============================================================
   5. パンくず
   ============================================================ */
.breadcrumb{ padding:11px 0 0; font-size:12px; color:var(--c-text-weak); }
.breadcrumb ol{ display:flex; flex-wrap:wrap; gap:6px; margin:0; padding:0; list-style:none; }
.breadcrumb li::after{ content:"›"; margin-left:6px; color:var(--c-line); }
.breadcrumb li:last-child::after{ content:""; }
.breadcrumb a{ color:var(--c-text-sub); text-decoration:none; }
.breadcrumb a:hover{ text-decoration:underline; }

/* ============================================================
   6. 記事ヘッダー
   ============================================================ */
.entry{ padding:20px 0 0; }
.entry-cat{
  display:inline-block; margin:0 0 10px; padding:3px 11px;
  background:var(--c-key); color:#fff; font-size:11.5px; font-weight:700;
  border-radius:3px; letter-spacing:.05em; text-decoration:none;
}
.entry-cat:hover{ background:var(--c-key-dark); color:#fff; }
.entry-title{
  font-size:28px; line-height:1.48; letter-spacing:.01em;
  margin:0 0 14px; font-weight:800;
}
.entry-meta{
  display:flex; flex-wrap:wrap; gap:6px;
  font-size:11.5px; color:var(--c-text-sub);
  padding-bottom:14px; border-bottom:2px solid var(--c-line);
}
.entry-meta span{
  padding:3px 10px; background:var(--c-bg-soft);
  border:1px solid var(--c-line); border-radius:20px;
}
.entry-meta b{ font-weight:700; color:var(--c-text); }

.ad-disclosure{
  margin:14px 0 22px; padding:10px 13px;
  background:var(--c-bg-tint); border-radius:var(--radius);
  font-size:12.5px; color:var(--c-text-sub); line-height:1.65;
}

.entry-lead{
  margin:0 0 28px; padding:18px 20px;
  background:#fff; border:1px solid var(--c-line);
  border-left:5px solid var(--c-key);
  border-radius:0 var(--radius) var(--radius) 0;
  font-size:15.5px; line-height:1.9;
}
.entry-lead p:last-child{ margin-bottom:0; }

/* ============================================================
   7. 本文（高密度）
   ============================================================ */
.entry-body{ font-size:16px; counter-reset:h2; }
.entry-body > *:first-child{ margin-top:0; }
.entry-body p{ margin:0 0 1.15em; }

/* h2：連番バッジ付き。情報が整理されて見え、密度も上がる */
.entry-body h2{
  position:relative;
  font-size:21px; line-height:1.55; font-weight:800;
  margin:2.6em 0 1em; padding:4px 0 12px 46px;
  background:transparent;
  border:none; border-bottom:2px solid var(--c-line);
  counter-increment:h2;
}
.entry-body h2::before{
  content:counter(h2);
  position:absolute; left:0; top:2px;
  width:30px; height:30px; line-height:30px; text-align:center;
  background:var(--c-key); color:#fff; border-radius:4px;
  font-size:14px; font-weight:800;
}
.entry-body h3{
  font-size:18px; line-height:1.6; font-weight:700;
  margin:2.1em 0 .75em; padding:0 0 8px 13px;
  border-bottom:2px solid var(--c-line);
  border-left:4px solid var(--c-key-light);
}
.entry-body h4{
  font-size:16.5px; font-weight:700; margin:1.7em 0 .6em; color:var(--c-key-dark);
}

.entry-body ul,.entry-body ol{ margin:0 0 1.3em; padding-left:1.5em; }
.entry-body li{ margin-bottom:.45em; }
.entry-body ul{ list-style:none; padding-left:0; }
.entry-body ul > li{ position:relative; padding-left:1.35em; }
.entry-body ul > li::before{
  content:""; position:absolute; left:.3em; top:.68em;
  width:7px; height:7px; border-radius:2px; background:var(--c-key);
  transform:rotate(45deg);
}
.entry-body ol{ list-style:none; counter-reset:ol; padding-left:0; }
.entry-body ol > li{ position:relative; padding-left:2em; counter-increment:ol; }
.entry-body ol > li::before{
  content:counter(ol); position:absolute; left:0; top:.25em;
  width:21px; height:21px; line-height:21px; text-align:center;
  background:var(--c-key-light); color:var(--c-key-dark);
  border-radius:50%; font-size:12px; font-weight:700;
}

.entry-body strong{ font-weight:700; }
.num{ font-weight:800; color:var(--c-key-dark); font-size:1.06em; }
.entry-body mark{ background:linear-gradient(transparent 60%,var(--c-key-light) 60%); padding:0; }
.entry-body a{ font-weight:600; }

/* ============================================================
   8. A/B/C ボックス（編集規約の3分類を視覚化）
   ============================================================ */
.box{
  position:relative;
  margin:1.7em 0; padding:16px 18px 14px;
  border-radius:var(--radius); font-size:15px; line-height:1.8;
  border:1px solid var(--c-line); background:var(--c-bg);
}
.box > *:last-child{ margin-bottom:0; }
.box__label{
  display:inline-block; margin:0 0 9px;
  font-size:11px; font-weight:800; letter-spacing:.1em;
  padding:3px 11px; border-radius:3px; color:#fff;
}

.box--checked{ border-left:5px solid var(--c-accent); background:#f6fafc; }
.box--checked .box__label{ background:var(--c-accent); }

.box--official{ border-left:5px solid var(--c-text-weak); background:#faf7f5; }
.box--official .box__label{ background:var(--c-text-sub); }

.box--opinion{ border-left:5px solid var(--c-key); background:#fffaf6; }
.box--opinion .box__label{ background:var(--c-key); }

.box--note{ border-left:5px solid var(--c-warn); background:#fdf7e9; }
.box--note .box__label{ background:var(--c-warn); }

.source{
  margin:2.6em 0 0; padding:14px 16px;
  background:var(--c-bg-soft); border:1px solid var(--c-line); border-radius:var(--radius);
  font-size:12.5px; color:var(--c-text-sub); line-height:1.8;
}

/* ============================================================
   9. 比較表
   ============================================================ */
.table-wrap{
  margin:1.7em 0; overflow-x:auto; -webkit-overflow-scrolling:touch;
  border:1px solid var(--c-line); border-radius:var(--radius); position:relative;
}
.table-wrap::after{
  content:""; position:sticky; right:0; top:0; float:right;
  width:24px; height:100%; pointer-events:none;
  background:linear-gradient(to left,rgba(255,255,255,.95),rgba(255,255,255,0));
}
.entry-body table{
  border-collapse:separate; border-spacing:0;
  width:100%; min-width:580px; font-size:14px; line-height:1.7; background:var(--c-bg);
}
.entry-body th,.entry-body td{
  padding:10px 13px; border-bottom:1px solid var(--c-line-soft); text-align:left; vertical-align:top;
}
.entry-body thead th{
  background:#3f464c; color:#fff;
  font-size:13px; font-weight:700; white-space:nowrap;
  border-bottom:3px solid var(--c-key); position:sticky; top:0; z-index:2;
}
.entry-body tbody th:first-child,
.entry-body tbody td:first-child{
  position:sticky; left:0; z-index:1;
  background:var(--c-bg); font-weight:700; white-space:nowrap;
  border-right:1px solid var(--c-line);
}
.entry-body tbody tr:nth-child(even) td,
.entry-body tbody tr:nth-child(even) th:first-child,
.entry-body tbody tr:nth-child(even) td:first-child{ background:var(--c-bg-soft); }
.entry-body thead th:first-child{ left:0; z-index:3; background:#3f464c; }
.entry-body tbody tr:last-child td,
.entry-body tbody tr:last-child th{ border-bottom:none; }
.table-note{ margin:-.9em 0 1.7em; font-size:12.5px; color:var(--c-text-sub); }

/* ============================================================
   10. 目次
   ============================================================ */
.toc{
  margin:0 0 32px; padding:18px 20px;
  border:2px solid var(--c-line); border-radius:var(--radius); background:var(--c-bg-soft);
}
.toc__title{
  margin:0 0 11px; font-size:13px; font-weight:800; letter-spacing:.08em; color:var(--c-key-dark);
}
.toc__title::before{
  content:""; display:inline-block; width:14px; height:2px;
  background:var(--c-key); vertical-align:middle; margin-right:8px;
}
.toc ol{ margin:0; padding-left:1.5em; font-size:14.5px; line-height:1.75; }
.toc li{ margin-bottom:.35em; }
.toc a{ color:var(--c-text); text-decoration:none; }
.toc a:hover{ color:var(--c-key-dark); text-decoration:underline; }
.toc .toc-h3{ font-size:13.5px; color:var(--c-text-sub); }

/* ============================================================
   11. CTA / カード
   ============================================================ */
.cta{
  margin:2.2em 0; padding:22px 22px 20px;
  border:2px solid var(--c-key); border-radius:var(--radius);
  background:#fff;
}
.cta__title{ margin:0 0 8px; font-size:17px; font-weight:800; color:var(--c-key-dark); }
.cta__text{ margin:0 0 15px; font-size:14.5px; color:var(--c-text-sub); }
.btn{
  display:inline-block; padding:13px 30px; border-radius:30px;
  background:var(--c-key); color:#fff !important; font-weight:800; font-size:15.5px;
  text-decoration:none; text-align:center; box-shadow:0 2px 0 var(--c-key-dark);
}
.btn:hover{ background:var(--c-key-dark); color:#fff !important; box-shadow:0 1px 0 var(--c-key-dark); transform:translateY(1px); }
.btn--sub{ background:var(--c-accent); box-shadow:0 2px 0 #24647a; }
.btn--sub:hover{ background:#24647a; }

.linkcard{
  display:block; margin:1.7em 0; padding:15px 17px;
  border:1px solid var(--c-line); border-left:4px solid var(--c-key-light);
  border-radius:var(--radius); text-decoration:none; color:var(--c-text); background:var(--c-bg);
}
.linkcard:hover{ background:var(--c-bg-soft); border-left-color:var(--c-key); }
.linkcard__label{ font-size:11px; color:var(--c-key); letter-spacing:.08em; font-weight:700; }
.linkcard__title{ display:block; margin-top:3px; font-weight:700; font-size:15.5px; color:var(--c-key-dark); }

/* ============================================================
   12. セクション見出し・タイル（密度を上げる）
   ============================================================ */
.sec{ margin-top:44px; }
.sec--tint{ background:var(--c-bg-soft); padding:30px 0 34px; margin-top:48px;
  border-top:1px solid var(--c-line); border-bottom:1px solid var(--c-line); }
.sec__title{
  margin:0 0 16px; font-size:19px; font-weight:800; line-height:1.5;
  padding-left:14px; border-left:5px solid var(--c-key);
}
.sec__note{ margin:-8px 0 16px; font-size:13.5px; color:var(--c-text-sub); }

.grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:10px; margin:0; padding:0; list-style:none; }
.tile{
  display:block; padding:14px 15px; text-decoration:none;
  background:#fff; border:1px solid var(--c-line); border-radius:var(--radius);
  color:var(--c-text);
}
.tile:hover{ border-color:var(--c-key); background:var(--c-bg-soft); }
.tile__name{ display:block; font-weight:700; font-size:15px; line-height:1.5; }
.tile__meta{ display:block; margin-top:4px; font-size:11.5px; color:var(--c-text-weak); }

.checklist{ display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:7px; margin:0; padding:0; list-style:none; }
.checklist li{
  padding:8px 12px 8px 30px; position:relative; font-size:13.5px; line-height:1.55;
  background:#fff; border:1px solid var(--c-line); border-radius:5px;
}
.checklist li::before{
  content:"✓"; position:absolute; left:11px; top:8px;
  color:var(--c-key); font-weight:800; font-size:13px;
}

/* ============================================================
   13. 一覧
   ============================================================ */
.page-head{ padding:24px 0 4px; }
.page-head__title{ margin:0 0 10px; font-size:25px; font-weight:800; line-height:1.5; }
.page-head__desc{ margin:0; font-size:15px; color:var(--c-text-sub); line-height:1.85; }

.list{ margin:18px 0 0; padding:0; list-style:none; }
.list li{ border-bottom:1px solid var(--c-line-soft); }
.list a{ display:block; padding:14px 4px; text-decoration:none; color:var(--c-text); }
.list a:hover{ background:var(--c-bg-soft); }
.list__title{ font-weight:700; font-size:15.5px; line-height:1.6; }
.list__meta{ display:block; margin-top:4px; font-size:11.5px; color:var(--c-text-weak); }
.list__meta b{ color:var(--c-key-dark); font-weight:700; }

.pager{ display:flex; gap:8px; justify-content:center; margin:34px 0 0; font-size:14px; }
.pager ul{ display:flex; gap:8px; list-style:none; margin:0; padding:0; }
.pager .page-numbers{
  display:block; padding:7px 14px; border:1px solid var(--c-line); border-radius:var(--radius);
  text-decoration:none; color:var(--c-text-sub); background:#fff;
}
.pager .current{ background:var(--c-key); color:#fff; border-color:var(--c-key); }

/* ============================================================
   14. 固定ページ・404
   ============================================================ */
.page-body h2{ font-size:19px; margin:2em 0 .8em; padding:0 0 9px 13px; background:transparent;
  border-left:5px solid var(--c-key); border-bottom:2px solid var(--c-line); border-radius:0; }
.page-body h2::before{ content:none; }
.page-body h3{ font-size:16.5px; margin:1.7em 0 .6em; }
.notfound{ padding:60px 0; text-align:center; }
.notfound h1{ font-size:22px; }

/* ============================================================
   15. スマホ
   ============================================================ */
@media (max-width:768px){
  body{ font-size:15.5px; line-height:1.8; }
  .site-header{ position:static; }
  .site-header__inner{ flex-direction:column; align-items:flex-start; gap:10px; padding-bottom:10px; }
  .site-desc{ margin-left:0; }
  .gnav{ width:100%; overflow-x:auto; }
  .gnav ul{ flex-wrap:nowrap; }
  .gnav a{ white-space:nowrap; }
  .entry-title{ font-size:22px; }
  .entry-body h2{ font-size:18px; padding:11px 13px 11px 46px; margin:2.2em 0 .9em; }
  .entry-body h2::before{ left:11px; width:24px; height:24px; line-height:24px; font-size:12px; }
  .entry-body h3{ font-size:16.5px; }
  .entry-lead{ padding:15px 16px; font-size:15px; }
  .box{ padding:14px 15px 12px; font-size:14.5px; }
  .entry-body table{ font-size:13.5px; min-width:520px; }
  .entry-body th,.entry-body td{ padding:9px 11px; }
  .grid{ grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); }
  .checklist{ grid-template-columns:1fr 1fr; }
}

@media print{
  .site-header,.site-footer,.toc,.cta,.btn,.breadcrumb{ display:none !important; }
  body{ font-size:11pt; }
}

/* ============================================================
   16. トップページ専用ブロック
   ============================================================ */
/* 手順（このサイトの使い方・調べ方） */
.steps{ margin:0; padding:0; list-style:none; counter-reset:st; }
.steps > li{
  position:relative; margin:0 0 10px; padding:14px 16px 14px 56px;
  background:#fff; border:1px solid var(--c-line); border-radius:var(--radius);
  font-size:14.5px; line-height:1.8; color:var(--c-text-sub); counter-increment:st;
}
.steps > li::before{
  content:counter(st); position:absolute; left:15px; top:14px;
  width:28px; height:28px; line-height:28px; text-align:center;
  background:var(--c-key); color:#fff; border-radius:4px; font-size:14px; font-weight:800;
}
.steps > li b{ display:block; margin-bottom:3px; font-size:15.5px; color:var(--c-text); font-weight:700; }
.steps--compact > li{ padding-top:12px; padding-bottom:12px; }

/* 分かること・分からないこと */
.cols{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.col{ padding:16px 18px 14px; background:#fff; border:1px solid var(--c-line); border-radius:var(--radius); }
.col__head{ margin:0 0 10px; font-size:14px; font-weight:800; letter-spacing:.03em; }
.col ul{ margin:0; padding:0; list-style:none; font-size:14.5px; line-height:1.75; }
.col li{ position:relative; padding-left:22px; margin-bottom:7px; }
.col li::before{ position:absolute; left:0; top:0; font-weight:800; }
.col--no{ border-top:4px solid var(--c-text-weak); }
.col--no .col__head{ color:var(--c-text-sub); }
.col--no li::before{ content:"×"; color:var(--c-text-weak); }
.col--yes{ border-top:4px solid var(--c-key); }
.col--yes .col__head{ color:var(--c-key-dark); }
.col--yes li::before{ content:"✓"; color:var(--c-key); }
.sec__foot{ margin:16px 0 0; font-size:14px; line-height:1.85; color:var(--c-text-sub); }
.sec__foot b{ color:var(--c-text); font-weight:700; }

/* よくある疑問 */
.qa{ margin:0; }
.qa dt{
  position:relative; margin:0 0 8px; padding:12px 16px 12px 44px;
  background:#fff; border:1px solid var(--c-line); border-left:4px solid var(--c-key);
  border-radius:var(--radius); font-weight:700; font-size:15.5px; line-height:1.6;
}
.qa dt::before{
  content:"Q"; position:absolute; left:15px; top:12px;
  color:var(--c-key); font-weight:800; font-size:15px;
}
.qa dd{
  margin:0 0 20px; padding:0 4px 0 44px; position:relative;
  font-size:14.5px; line-height:1.85; color:var(--c-text-sub);
}
.qa dd::before{
  content:"A"; position:absolute; left:15px; top:0;
  color:var(--c-text-weak); font-weight:800; font-size:15px;
}

@media (max-width:768px){
  .cols{ grid-template-columns:1fr; }
  .steps > li{ padding-left:50px; }
  .steps > li::before{ left:12px; width:26px; height:26px; line-height:26px; }
}

/* ============================================================
   17. トップのファーストビュー図解（インラインSVG・数KB）
   ============================================================ */
.hero-fig{
  margin:26px 0 0; padding:20px 22px 18px;
  border:1px solid var(--c-line); border-radius:var(--radius); background:#fff;
}
.hero-fig__lead{
  margin:0 0 14px; font-size:16px; font-weight:800; line-height:1.6; color:var(--c-text);
}
.hero-fig__svg{ display:block; width:100%; height:auto; }
.hero-fig__note{
  margin:14px 0 0; padding-top:13px; border-top:1px solid var(--c-line-soft);
  font-size:13.5px; line-height:1.8; color:var(--c-text-sub);
}
.hero-fig__note b{ color:var(--c-key-dark); font-weight:700; }

.hero-fig__svg .f-cap{ font-size:11px; fill:var(--c-text-weak); font-weight:700; letter-spacing:.08em; }
.hero-fig__svg .f-a{ fill:#3f464c; }
.hero-fig__svg .f-b{ fill:var(--c-key); }
.hero-fig__svg .f-c{ fill:#fff; stroke:var(--c-key); stroke-dasharray:4 3; }
.hero-fig__svg .f-in{ font-size:13px; fill:#fff; font-weight:700; }
.hero-fig__svg .f-in2{ font-size:12.5px; fill:#fff; font-weight:700; }
.hero-fig__svg .f-in3{ font-size:12px; fill:var(--c-key-dark); font-weight:700; }
.hero-fig__svg .f-note{ font-size:12.5px; fill:var(--c-text-weak); }
.hero-fig__svg .f-line{ stroke:var(--c-line); stroke-width:1; }
.hero-fig__svg .f-brace{ stroke:var(--c-key); stroke-width:2; }
.hero-fig__svg .f-sum{ font-size:13.5px; fill:var(--c-text); font-weight:800; }

@media (max-width:768px){
  .hero-fig{ padding:16px 14px 14px; }
  .hero-fig__lead{ font-size:15px; }
  .hero-fig__svg{ min-width:0; }
}

/* ============================================================
   18. 記事末尾の署名
   ============================================================ */
.author{
  margin:40px 0 0; padding:16px 18px;
  background:var(--c-bg-soft); border:1px solid var(--c-line); border-radius:var(--radius);
}
.author__label{
  margin:0 0 7px; font-size:11px; font-weight:800; letter-spacing:.1em; color:var(--c-text-weak);
}
.author__name{
  margin:0 0 6px; font-size:16px; font-weight:800; color:var(--c-text); line-height:1.5;
}
.author__name span{
  display:inline-block; margin-left:10px; padding-left:10px;
  border-left:1px solid var(--c-line);
  font-size:12.5px; font-weight:600; color:var(--c-text-sub); vertical-align:1px;
}
.author__link{ margin:0; font-size:13px; }
.author__link a::before{ content:"→ "; color:var(--c-key); }

@media (max-width:768px){
  .author__name{ font-size:15px; }
  .author__name span{ display:block; margin:4px 0 0; padding:0; border:none; }
}

/* ============================================================
   19. お問い合わせフォーム（Contact Form 7）
   ============================================================ */
.wpcf7{ margin-top:26px; }
.cf7-row{ margin:0 0 20px; }
.cf7-label{
  display:block; margin:0 0 6px; font-size:14px; font-weight:700; color:var(--c-text);
}
.cf7-req,.cf7-any{
  display:inline-block; margin-left:8px; padding:2px 8px; border-radius:3px;
  font-size:10.5px; font-weight:800; letter-spacing:.06em; vertical-align:2px;
}
.cf7-req{ background:var(--c-key); color:#fff; }
.cf7-any{ background:var(--c-bg-tint); color:var(--c-text-sub); }
.cf7-help{ margin:6px 0 0; font-size:12.5px; line-height:1.7; color:var(--c-text-sub); }
.cf7-note{
  margin:0 0 22px; padding:12px 14px; font-size:12.5px; line-height:1.75;
  background:var(--c-bg-soft); border:1px solid var(--c-line); border-radius:var(--radius);
  color:var(--c-text-sub);
}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="url"],
.wpcf7 select,
.wpcf7 textarea{
  width:100%; padding:11px 13px; font-size:15px; line-height:1.6;
  font-family:inherit; color:var(--c-text); background:#fff;
  border:1px solid var(--c-line); border-radius:var(--radius);
  -webkit-appearance:none; appearance:none;
}
.wpcf7 select{
  background-image:linear-gradient(45deg,transparent 50%,var(--c-text-sub) 50%),linear-gradient(135deg,var(--c-text-sub) 50%,transparent 50%);
  background-position:calc(100% - 19px) 50%,calc(100% - 14px) 50%;
  background-size:5px 5px,5px 5px; background-repeat:no-repeat; padding-right:38px;
}
.wpcf7 input:focus,.wpcf7 select:focus,.wpcf7 textarea:focus{
  outline:none; border-color:var(--c-key); box-shadow:0 0 0 3px var(--c-key-light);
}
.wpcf7 textarea{ resize:vertical; }
.wpcf7 ::placeholder{ color:#bcc4ca; }

.cf7-submit{ margin-top:26px; }
.wpcf7 input[type="submit"]{
  display:inline-block; padding:14px 40px; border:none; border-radius:30px;
  background:var(--c-key); color:#fff; font-size:16px; font-weight:800;
  font-family:inherit; cursor:pointer; box-shadow:0 2px 0 var(--c-key-dark);
}
.wpcf7 input[type="submit"]:hover{ background:var(--c-key-dark); box-shadow:0 1px 0 var(--c-key-dark); transform:translateY(1px); }

.wpcf7-not-valid-tip{ margin-top:5px; font-size:12.5px; color:#c0392b; font-weight:700; }
.wpcf7 .wpcf7-response-output{
  margin:22px 0 0 !important; padding:13px 16px !important;
  border-radius:var(--radius) !important; font-size:14px; line-height:1.7;
}
.wpcf7 form.sent .wpcf7-response-output{ border:1px solid var(--c-ok) !important; background:#f2f9f5; color:var(--c-ok); }
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output{ border:1px solid #c0392b !important; background:#fdf3f2; color:#c0392b; }
.wpcf7-spinner{ margin-left:12px; }

@media (max-width:768px){
  .wpcf7 input[type="submit"]{ width:100%; }
}

/* ============================================================
   17. 2026-10-07 ヘッダーのロゴ化
   ロゴ画像に「資格科」と「条件と総額で比べる」が入ったため、
   サイト名テキスト・キャッチコピー帯・説明文を廃止した。
   旧スタイル（.site-title / .site-desc / .site-header__bar）は
   出力されなくなったが、戻せるよう定義は残してある。
   ============================================================ */
.site-logo{ margin:0; line-height:0; }
.site-logo a{ display:inline-block; }
.site-logo img{
  display:block;
  height:44px;            /* 2倍画像(176px)を等倍で描画 */
  width:auto;
  max-width:100%;
}

@media (max-width:700px){
  .site-logo img{ height:34px; }
  .site-header__inner{ gap:8px; }
}

@media print{
  .site-logo{ display:none !important; }
}
