:root{--bg:#f6f2e8;--paper:#fffdf8;--ink:#222;--muted:#697067;--line:#ddd2bd;--accent:#2f6b4f;--accent2:#7a5b2e;--red:#c95c4b;--blue:#396cab;--green:#3f8b5b;--purple:#7251a6;--orange:#c97925;--cyan:#1f7891;--shadow:0 10px 26px rgba(42,36,24,.09)}[data-theme="dark"]{--bg:#111815;--paper:#19231f;--ink:#f5f1e7;--muted:#b8c2b6;--line:#324039;--accent:#81b98e;--accent2:#d1ad75;--shadow:0 10px 26px rgba(0,0,0,.28)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.8}a{color:inherit;text-decoration:none}.site-header{background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.topbar{max-width:1180px;margin:auto;padding:6px 16px;display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px}#themeToggle{border:1px solid var(--line);background:var(--bg);border-radius:999px;padding:4px 10px;cursor:pointer;color:var(--ink)}.brand-wrap{max-width:1180px;margin:auto;padding:14px 16px}.brand{display:flex;gap:12px;align-items:center}.brand-mark{width:50px;height:50px;background:linear-gradient(135deg,var(--accent),#8baa66);color:#fff;display:grid;place-items:center;border-radius:14px;font-weight:900;font-size:25px;box-shadow:var(--shadow)}.brand strong{font-size:31px;display:block;line-height:1.1}.brand small{font-size:13px;color:var(--muted)}.global-nav{max-width:1180px;margin:auto;display:flex;gap:6px;overflow:auto;padding:0 16px 10px}.global-nav a{padding:8px 14px;border:1px solid var(--line);background:var(--bg);border-radius:999px;font-size:14px;white-space:nowrap}.global-nav a:hover{background:var(--accent);color:#fff}.page-shell{max-width:1180px;margin:auto;padding:24px 16px 40px}.hero{display:grid;margin-bottom:18px}.hero-card,.side-box,.article-body,.summary-card,.qual-card{background:var(--paper);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.hero-card{padding:28px}.eyebrow{display:inline-block;background:#efe4ce;color:#6e451d;border:1px solid #e0c89d;padding:2px 10px;border-radius:999px;font-weight:700;font-size:13px}.hero h1{font-size:44px;line-height:1.2;margin:8px 0 10px}.hero p{color:var(--muted);font-size:16px}.hero-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.hero-links a{border:1px solid var(--line);background:var(--bg);padding:9px 14px;border-radius:999px;font-weight:700}.hero-links a:hover{background:var(--accent);color:#fff}.qual-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:22px}.qual-card{padding:14px;display:block}.qual-card strong{display:block;font-size:16px}.qual-card span{display:block;color:var(--muted);font-size:12px;line-height:1.55}.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px}.section-head{display:flex;justify-content:space-between;align-items:end;margin:12px 0}.section-head h1,.section-head h2{margin:0;font-size:25px}.section-head span{color:var(--muted);font-size:13px}.matome-list{display:grid;gap:9px}.matome-item{background:var(--paper);border:1px solid var(--line);border-left:5px solid var(--accent);padding:12px 14px;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.04);transition:.15s}.matome-item:hover{transform:translateY(-1px);box-shadow:var(--shadow)}.matome-title{display:flex;align-items:center;gap:8px;font-weight:800;line-height:1.55;font-size:17px}.list-no{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--bg);border:1px solid var(--line);padding:0 6px;border-radius:6px;color:var(--muted);font-size:13px}.matome-item p{margin:6px 0;color:var(--muted);font-size:14px}.meta{display:flex;flex-wrap:wrap;gap:10px;color:var(--muted);font-size:12px}.field-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:800;color:#fff;white-space:nowrap}.boki{background:var(--red)}.fe{background:var(--blue)}.fp{background:var(--green)}.takken{background:var(--orange)}.ccna{background:var(--cyan)}.compare{background:var(--purple)}.flag{font-size:11px;border:1px solid var(--line);border-radius:4px;padding:1px 5px;color:var(--accent2);font-weight:900}.flag.hot{background:var(--red);color:#fff;border-color:var(--red)}.sidebar{display:grid;gap:14px;align-self:start;position:sticky;top:132px}.side-box{padding:16px}.side-box h2{font-size:17px;margin:0 0 10px}.ranking{padding:0;margin:0;list-style:none;display:grid;gap:8px}.ranking a{display:grid;grid-template-columns:28px 1fr;gap:8px}.ranking strong{background:var(--accent2);color:#fff;border-radius:7px;text-align:center}.ranking span,.plain-list{font-size:14px;line-height:1.55}.plain-list{padding-left:20px;color:var(--muted)}.mini-notice p{font-size:13px;color:var(--muted)}.article-body{padding:28px}.breadcrumb{font-size:13px;color:var(--muted);margin-bottom:10px}.article-head h1{font-size:32px;line-height:1.35;margin:10px 0}.article-lead{font-size:17px;color:var(--muted);border-left:4px solid var(--accent);padding-left:14px}.article-section{margin-top:28px}.article-section h2{font-size:23px;border-bottom:2px solid var(--line);padding-bottom:6px}.article-section p{margin:12px 0}.key-summary{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:14px 18px}.key-summary ul{margin:0;padding-left:22px}.comment-box{background:var(--bg);border:1px dashed var(--line);padding:14px;border-radius:12px;margin:18px 0;color:var(--muted)}.source-list{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:14px;margin-top:26px}.source-list h2{font-size:18px;margin:0 0 8px}.source-list a{text-decoration:underline;color:var(--accent)}.related-list{display:grid;gap:8px}.related-list a{border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--paper)}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:18px 0}.summary-card{padding:16px}.summary-card h3{margin:0 0 8px}.summary-card p{color:var(--muted);font-size:14px}.simple-page{max-width:860px;margin:auto}.site-footer{background:var(--paper);border-top:1px solid var(--line);margin-top:30px}.footer-grid{max-width:1180px;margin:auto;padding:28px 16px;display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:20px}.footer-grid a{display:block;color:var(--muted);margin-top:6px}.copyright{max-width:1180px;margin:auto;padding:0 16px 20px;color:var(--muted);font-size:12px}@media(max-width:980px){.content-grid,.footer-grid,.summary-grid{grid-template-columns:1fr}.sidebar{position:static}.qual-grid{grid-template-columns:repeat(2,1fr)}.hero h1{font-size:36px}}@media(max-width:560px){.qual-grid{grid-template-columns:1fr}.matome-title{align-items:flex-start;font-size:15.5px;flex-wrap:wrap}.article-body{padding:20px}.article-head h1{font-size:26px}.brand strong{font-size:25px}}

.scroll-table{overflow-x:auto;margin:18px 0;border:1px solid var(--line);border-radius:14px;background:var(--paper);}
.article-table{width:100%;border-collapse:collapse;min-width:760px;font-size:.94rem;}
.article-table th,.article-table td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;}
.article-table th{background:rgba(90,118,95,.10);font-weight:800;}
.article-table tr:last-child td{border-bottom:0;}

.compare-table-wrap{overflow-x:auto;margin:18px 0;border:1px solid var(--line);border-radius:14px;background:var(--paper)}
.compare-table{width:100%;border-collapse:collapse;min-width:720px;font-size:.94rem}
.compare-table th,.compare-table td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.compare-table th{background:rgba(90,118,95,.10);font-weight:800}
.compare-table tr:last-child td{border-bottom:0}
.note-box{background:var(--bg);border:1px dashed var(--line);border-radius:12px;padding:14px;margin:16px 0;color:var(--muted)}
.note-box strong{color:var(--ink)}

/* v10 CSS復旧・表示安定化 */
img{max-width:100%;height:auto;display:block}
code,kbd{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:.1em .35em}
pre{overflow:auto;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:14px}
.table-wrap,.scroll-table,.compare-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.article-body ul,.article-body ol{padding-left:1.5em}
.article-body li{margin:.25em 0}
.side-box a:hover,.related-list a:hover{color:var(--accent);text-decoration:underline}
.skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip-link:focus{position:fixed;left:16px;top:16px;width:auto;height:auto;background:var(--paper);border:2px solid var(--accent);padding:8px 12px;border-radius:8px;z-index:9999}


/* v12: Privacy / contact / operator pages */
.page-updated{color:var(--muted);font-size:.92rem;margin-top:18px}
.info-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:var(--paper);margin:16px 0}
.info-table{width:100%;border-collapse:collapse;min-width:620px}
.info-table th,.info-table td{border-bottom:1px solid var(--line);padding:13px 15px;text-align:left;vertical-align:top}
.info-table th{width:190px;background:rgba(90,118,95,.10);font-weight:800}
.info-table tr:last-child th,.info-table tr:last-child td{border-bottom:0}
.contact-form{display:grid;gap:16px;background:var(--bg);border:1px solid var(--line);border-radius:16px;padding:18px;margin-top:14px}
.contact-form label{display:grid;gap:6px;font-weight:800}
.contact-form label span{font-size:.78rem;color:var(--accent2);font-weight:900;margin-left:4px}
.contact-form input,.contact-form select,.contact-form textarea{width:100%;border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:10px;padding:11px 12px;font:inherit;line-height:1.5}
.contact-form textarea{resize:vertical;min-height:170px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.check-line{display:flex!important;grid-template-columns:none!important;align-items:flex-start;gap:10px;font-weight:500!important}
.check-line input{width:auto;margin-top:.45em}
.check-line a{text-decoration:underline;color:var(--accent)}
.submit-button{border:0;background:var(--accent);color:#fff;border-radius:999px;padding:12px 22px;font-weight:900;cursor:pointer;justify-self:start;box-shadow:var(--shadow)}
.submit-button:hover{filter:brightness(1.06);transform:translateY(-1px)}
.form-note{font-size:.88rem;color:var(--muted);background:var(--bg);border:1px dashed var(--line);border-radius:12px;padding:12px 14px}
.article-body a{text-decoration:underline;text-decoration-thickness:.08em;text-underline-offset:.18em;color:var(--accent)}
@media(max-width:680px){.form-grid{grid-template-columns:1fr}.info-table{min-width:0}.info-table th,.info-table td{display:block;width:100%}.info-table th{border-bottom:0;padding-bottom:4px}.info-table td{padding-top:4px}}

.hidden-field{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}

.contact-mail { font-size: 1.1rem; padding: 14px 16px; background: var(--soft); border: 1px solid var(--line); border-radius: 14px; word-break: break-all; }
.mail-button { display: inline-flex; width: auto; text-decoration: none; align-items: center; justify-content: center; }


/* v16 article deepening */
.v16-deepening{background:#fffdf7;border:1px solid rgba(47,107,79,.16);border-radius:18px;padding:18px 20px;margin:22px 0;box-shadow:0 8px 22px rgba(20,43,33,.04)}
.v16-deepening h2{margin-top:0}.article-table{width:100%;border-collapse:collapse;background:#fff}.article-table th,.article-table td{border:1px solid rgba(47,107,79,.18);padding:10px 12px;vertical-align:top}.article-table th{background:#edf6ef}.scroll-table{overflow-x:auto;margin:14px 0}.article-body ol{padding-left:1.4rem}.article-body li{margin:.34rem 0}
body.dark .v16-deepening{background:#17221c;border-color:rgba(177,216,191,.2)}body.dark .article-table{background:#101a15}body.dark .article-table th{background:#203528}


/* v16 PDCA additional polishing */
.v16-pdca-more{background:#f7fbf8;border-left:6px solid #4d8d64;border-radius:18px;padding:20px 22px;margin:24px 0;box-shadow:0 10px 28px rgba(20,43,33,.045)}
.v16-pdca-more h2{margin-top:0;color:#234d38}.v16-pdca-more p:last-child{margin-bottom:0}
body.dark .v16-pdca-more{background:#132018;border-left-color:#82c89a}body.dark .v16-pdca-more h2{color:#d8f2df}


/* v16 final article FAQ */
.v16-final-boost{background:#ffffff;border:1px solid rgba(47,107,79,.18);border-radius:18px;padding:20px 22px;margin:24px 0;box-shadow:0 8px 24px rgba(20,43,33,.04)}
.article-faq{margin:0}.article-faq dt{font-weight:800;margin:16px 0 6px;color:#234d38}.article-faq dd{margin:0 0 12px 0;line-height:1.85}
body.dark .v16-final-boost{background:#111b16;border-color:rgba(177,216,191,.18)}body.dark .article-faq dt{color:#d8f2df}


/* v16 threshold fixes */
.v16-threshold-fix{background:#fbfff8;border:1px dashed rgba(47,107,79,.35);border-radius:18px;padding:18px 20px;margin:22px 0}.v16-threshold-fix h2{margin-top:0}
body.dark .v16-threshold-fix{background:#152018;border-color:rgba(177,216,191,.28)}

/* v16 threshold fixes 2 */
.v16-threshold-fix2{background:#fff;border:1px solid rgba(47,107,79,.18);border-radius:18px;padding:18px 20px;margin:22px 0}.v16-threshold-fix2 h2{margin-top:0}
body.dark .v16-threshold-fix2{background:#121c16}


/* v17: deepened experience-based article sections */
.v17-deep-experience {
  border-left: 4px solid var(--accent, #2f6b4f);
  background: linear-gradient(180deg, rgba(47, 107, 79, .07), rgba(47, 107, 79, .025));
  padding: 1.15rem 1.2rem;
  border-radius: 14px;
  margin-top: 1.35rem;
}
.v17-deep-experience h2 {
  font-size: 1.25rem;
  line-height: 1.45;
}
.v17-deep-experience p,
.v17-deep-experience li,
.v17-deep-experience td,
.v17-deep-experience th {
  line-height: 1.95;
}
.v17-deep-experience ol,
.v17-deep-experience ul {
  padding-left: 1.25rem;
}
.v17-deep-experience .article-table th {
  white-space: nowrap;
}


/* v18: 記事内の図解・筆者コメント */
.article-visual{
  margin: 1.8rem 0;
  padding: 1rem;
  border: 1px solid rgba(47,107,79,.18);
  border-radius: 22px;
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(244,251,246,.78));
  box-shadow: 0 10px 28px rgba(33,71,54,.08);
}
.article-visual img{
  display:block;
  width:100%;
  height:auto;
  border-radius: 16px;
}
.article-visual figcaption{
  margin-top:.75rem;
  color: var(--muted);
  font-size:.94rem;
  line-height:1.7;
}
.author-comment{
  position:relative;
  margin: 1.8rem 0;
  padding: 1.25rem 1.3rem 1.2rem 1.35rem;
  border-left: 6px solid var(--accent);
  border-radius: 18px;
  background: #fffdf5;
  box-shadow: 0 8px 22px rgba(110, 86, 39, .08);
}
.author-comment::before{
  content:"筆者コメント";
  display:inline-block;
  margin-bottom:.55rem;
  padding:.2rem .6rem;
  border-radius:999px;
  background: rgba(47,107,79,.10);
  color: var(--accent-strong);
  font-size:.82rem;
  font-weight:700;
  letter-spacing:.03em;
}
.author-comment p{ margin:.45rem 0 0; }
.article-checklist{
  margin: 1.4rem 0;
  padding: 1.2rem 1.3rem;
  border-radius: 18px;
  border: 1px solid rgba(47,107,79,.16);
  background:#f8fcf9;
}
.article-checklist strong{ color: var(--accent-strong); }
.article-checklist ul{ margin-bottom:0; }
@media (max-width: 720px){
  .article-visual{ padding:.65rem; border-radius:16px; }
  .article-visual img{ border-radius:12px; }
  .author-comment{ padding:1rem; }
}


/* v19 SEO/UX: article TOC, structured-content friendly blocks */
.toc-box{
  margin:1.4rem 0 1.8rem;
  padding:1.1rem 1.2rem;
  border:1px solid rgba(47,107,79,.16);
  border-radius:18px;
  background:linear-gradient(180deg, rgba(247,251,248,.96), rgba(255,255,255,.88));
}
.toc-title{font-weight:800;color:var(--accent-strong);margin:.1rem 0 .65rem;}
.toc-box ol{margin:0;padding-left:1.35rem;display:grid;gap:.35rem;}
.toc-box a{text-decoration:none;color:var(--text);}
.toc-box a:hover{text-decoration:underline;color:var(--accent-strong);}
.article-section h2[id]{scroll-margin-top:84px;}
.seo-note{font-size:.92rem;color:var(--muted);line-height:1.8;}
body.dark .toc-box{background:#111b16;border-color:rgba(177,216,191,.18)}
body.dark .toc-box a{color:#eaf4ec}


/* v20: Sikaku Master related-site introduction */
.partner-feature{
  margin: 0 0 22px;
  padding: 0;
}
.partner-feature-body{
  background: linear-gradient(135deg, rgba(47,107,79,.10), rgba(255,253,248,.96));
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: var(--shadow);
  padding: 24px;
}
.partner-feature h2{
  margin: 8px 0 10px;
  font-size: 26px;
  line-height: 1.35;
}
.partner-feature p{ color: var(--muted); margin: 0 0 12px; }
.partner-points{
  display: grid;
  gap: 6px;
  margin: 14px 0 18px;
  padding-left: 1.2rem;
  color: var(--muted);
}
.partner-link,.side-link-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border: 1px solid var(--accent);
  background: var(--accent);
  color: #fff;
  border-radius: 999px;
  padding: 9px 15px;
  font-weight: 800;
  box-shadow: 0 6px 14px rgba(47,107,79,.16);
}
.partner-link:hover,.side-link-button:hover{
  color:#fff !important;
  text-decoration:none !important;
  transform: translateY(-1px);
}
.partner-side p{
  margin: 0 0 12px;
  color: var(--muted);
  font-size: 13.5px;
  line-height: 1.7;
}
.partner-side strong{ color: var(--ink); }
@media(max-width:560px){
  .partner-feature-body{ padding: 18px; }
  .partner-feature h2{ font-size: 22px; }
  .partner-link,.side-link-button{ width:100%; }
}
