@charset "UTF-8";
/* ==========================================================================
   会社員のための会社設立と節税 ｜ 基本スタイル
   - ルール9：320/390/430px で横スクロールを出さない
   - ルール10：繰り返しブロックは変種でローテーション
   ========================================================================== */

/* ---------- 1. トークン ---------- */
:root{
  --sks-ink:#16233d;
  --sks-ink-2:#3b4a68;
  --sks-ink-3:#657692;
  --sks-muted:#6a7793;
  --sks-line:#dfe4ee;
  --sks-line-2:#eef1f7;
  --sks-bg:#f7f8fb;
  --sks-paper:#ffffff;
  --sks-navy:#1d3461;
  --sks-navy-d:#132244;
  --sks-accent:#c8892b;
  --sks-accent-l:#f6eddc;
  --sks-teal:#1c6b6b;
  --sks-teal-l:#e2f0ef;
  --sks-red:#a83232;
  --sks-red-l:#fbeaea;
  --sks-green:#2f6b3f;
  --sks-green-l:#e6f1e8;
  --sks-radius:14px;
  --sks-radius-s:8px;
  --sks-shadow:0 1px 2px rgba(22,35,61,.06), 0 8px 24px -12px rgba(22,35,61,.18);
  --sks-shadow-s:0 1px 2px rgba(22,35,61,.07);
  --sks-wrap:1160px;
  --sks-gap:clamp(14px, 3vw, 26px);
  --sks-pad:clamp(14px, 4vw, 28px);
  --sks-font: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic Medium", "Yu Gothic", Meiryo, system-ui, -apple-system, "Segoe UI", sans-serif;
  --sks-font-num: ui-monospace, "SFMono-Regular", "Menlo", "Consolas", monospace;
  --sks-ctabar:76px;
}

/* ---------- 2. リセットと横スクロール抑止（ルール9） ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:84px; }
html,body{ max-width:100%; overflow-x:clip; }
body{
  margin:0;
  font-family:var(--sks-font);
  font-size:16px;
  line-height:1.9;
  color:var(--sks-ink);
  background:var(--sks-bg);
  font-feature-settings:"palt" 1;
  text-rendering:optimizeLegibility;
  padding-bottom:calc(var(--sks-ctabar) + env(safe-area-inset-bottom));
  overflow-wrap:anywhere;
  word-break:normal;
  line-break:strict;
}
img,svg,video,canvas{ max-width:100%; height:auto; display:block; }
iframe,embed,object{ max-width:100%; }
pre,code,kbd,samp{ font-family:var(--sks-font-num); }
pre{ overflow-x:auto; max-width:100%; }
h1,h2,h3,h4,h5,h6{ line-height:1.45; margin:0 0 .6em; font-weight:700; letter-spacing:.01em; }
p{ margin:0 0 1.2em; }
ul,ol{ margin:0 0 1.2em; padding-left:1.4em; }
li{ margin-bottom:.45em; }
a{ color:var(--sks-navy); text-underline-offset:.22em; text-decoration-thickness:1px; }
a:hover{ color:var(--sks-accent); }
hr{ border:0; border-top:1px solid var(--sks-line); margin:2em 0; }
figure{ margin:0; }
button{ font:inherit; }
:where(input,select,textarea){ font:inherit; max-width:100%; }

/* 表は必ずラッパで横スクロール（ルール9） */
.sks-tablewrap{
  overflow-x:auto; -webkit-overflow-scrolling:touch; max-width:100%;
  margin:0 0 1.4em; border:1px solid var(--sks-line); border-radius:var(--sks-radius-s);
  background:var(--sks-paper); box-shadow:var(--sks-shadow-s);
}
.sks-tablewrap>table{ margin:0; border:0; min-width:520px; }
.sks-tablewrap::-webkit-scrollbar{ height:8px; }
.sks-tablewrap::-webkit-scrollbar-thumb{ background:#c9d0de; border-radius:8px; }
table{ border-collapse:collapse; width:100%; font-size:.94em; background:var(--sks-paper); }
th,td{ border:1px solid var(--sks-line); padding:.68em .8em; text-align:left; vertical-align:top; }
thead th{ background:var(--sks-navy); color:#fff; font-weight:700; white-space:nowrap; }
tbody th{ background:var(--sks-line-2); font-weight:700; }
tbody tr:nth-child(even) td{ background:#fbfcfe; }

/* ---------- 3. レイアウト ---------- */
.sks-wrap{ width:100%; max-width:var(--sks-wrap); margin-inline:auto; padding-inline:var(--sks-pad); }
.sks-wrap--narrow{ max-width:860px; }
.sks-main{ padding:clamp(18px,4vw,38px) 0 clamp(30px,6vw,56px); }
.sks-cols{ display:grid; grid-template-columns:minmax(0,1fr); gap:clamp(24px,4vw,42px); }
@media (min-width:1000px){
  .sks-cols--sidebar{ grid-template-columns:minmax(0,1fr) 312px; align-items:start; }
  .sks-side{ position:sticky; top:82px; }
}
.sks-side>*+*{ margin-top:20px; }
.sks-grid{ display:grid; gap:var(--sks-gap); grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); }
.sks-grid--wide{ grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr)); }
.sks-grid--tight{ grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr)); gap:12px; }
.sks-stack>*+*{ margin-top:var(--sks-gap); }

/* ---------- 4. ヘッダー ---------- */
.sks-header{
  position:sticky; top:0; z-index:60; background:rgba(255,255,255,.94);
  backdrop-filter:saturate(1.6) blur(10px); border-bottom:1px solid var(--sks-line);
}
.sks-header__bar{ display:flex; align-items:center; gap:12px; min-height:62px; }
.sks-brand{ display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--sks-ink); min-width:0; flex:1 1 auto; }
.sks-brand__mark{ flex:0 0 auto; width:34px; height:34px; }
.sks-brand__txt{ min-width:0; }
.sks-brand__name{ display:block; font-weight:800; font-size:clamp(13px,3.2vw,16px); line-height:1.3; letter-spacing:.01em; }
.sks-brand__sub{ display:block; font-size:11px; color:var(--sks-muted); line-height:1.4; }
@media (max-width:600px){ .sks-brand__sub{ display:none; } }
.sks-navtoggle{
  flex:0 0 auto; display:inline-flex; align-items:center; gap:6px; background:var(--sks-navy); color:#fff;
  border:0; border-radius:999px; padding:8px 14px; font-size:12.5px; font-weight:700; cursor:pointer;
}
.sks-navtoggle:hover{ background:var(--sks-navy-d); }
@media (min-width:1000px){ .sks-navtoggle{ display:none; } }
.sks-nav{ border-top:1px solid var(--sks-line-2); background:var(--sks-paper); }
.sks-nav[hidden]{ display:none; }
@media (min-width:1000px){ .sks-nav{ display:block!important; } .sks-nav[hidden]{ display:block; } }
.sks-nav__list{ list-style:none; margin:0; padding:8px 0 12px; display:flex; flex-wrap:wrap; gap:6px 14px; }
.sks-nav__list a{ display:inline-block; padding:5px 2px; font-size:13.5px; font-weight:700; text-decoration:none; color:var(--sks-ink-2); border-bottom:2px solid transparent; }
.sks-nav__list a:hover{ color:var(--sks-navy); border-bottom-color:var(--sks-accent); }
.sks-searchform{ display:flex; gap:6px; margin:6px 0 10px; }
.sks-searchform input[type=search]{ flex:1 1 auto; min-width:0; border:1px solid var(--sks-line); border-radius:999px; padding:8px 14px; background:#fff; }
.sks-searchform button{ flex:0 0 auto; border:0; border-radius:999px; padding:8px 16px; background:var(--sks-navy); color:#fff; font-weight:700; cursor:pointer; }

/* ---------- 5. パンくず ---------- */
.sks-crumbs{ background:var(--sks-paper); border-bottom:1px solid var(--sks-line-2); font-size:12.5px; }
.sks-crumbs ol{ list-style:none; margin:0; padding:9px 0; display:flex; flex-wrap:wrap; align-items:center; gap:4px 8px; color:var(--sks-muted); }
.sks-crumbs li{ margin:0; display:flex; align-items:center; gap:8px; }
.sks-crumbs li+li::before{ content:"›"; color:#b6bfd0; }
.sks-crumbs a{ text-decoration:none; color:var(--sks-ink-2); }
.sks-crumbs a:hover{ color:var(--sks-accent); text-decoration:underline; }

/* ---------- 6. 見出し（アーカイブ／固定ページ側） ---------- */
.sks-pagehead{
  background:linear-gradient(135deg,var(--sks-navy) 0%, #27467d 55%, #2f5a86 100%);
  color:#fff; border-radius:var(--sks-radius); padding:clamp(20px,4.5vw,34px); position:relative; overflow:hidden;
  box-shadow:var(--sks-shadow);
}
.sks-pagehead::after{
  content:""; position:absolute; inset:auto -40px -60px auto; width:220px; height:220px; border-radius:50%;
  background:radial-gradient(circle at 30% 30%, rgba(200,137,43,.55), rgba(200,137,43,0) 70%); pointer-events:none;
}
.sks-pagehead__eyebrow{ display:inline-block; font-size:11.5px; font-weight:800; letter-spacing:.14em; background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.28); padding:4px 12px; border-radius:999px; margin-bottom:12px; }
.sks-pagehead h1{ font-size:clamp(20px,4.6vw,31px); margin:0 0 .5em; color:#fff; }
.sks-pagehead p{ margin:0; font-size:clamp(13.5px,2.6vw,15.5px); color:#dde5f2; line-height:1.85; }
.sks-pagehead__meta{ display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.sks-pagehead__meta span{ font-size:12px; background:rgba(255,255,255,.13); border-radius:999px; padding:3px 11px; }

/* ---------- 7. セクション見出し ---------- */
.sks-sechead{ display:flex; align-items:flex-end; justify-content:space-between; gap:12px; flex-wrap:wrap; margin:0 0 16px; }
.sks-sechead h2{ font-size:clamp(17px,3.6vw,23px); margin:0; position:relative; padding-left:14px; }
.sks-sechead h2::before{ content:""; position:absolute; left:0; top:.18em; bottom:.18em; width:5px; border-radius:3px; background:linear-gradient(180deg,var(--sks-accent),var(--sks-navy)); }
.sks-sechead__note{ font-size:12.5px; color:var(--sks-muted); margin:0; }
.sks-sechead__more{ font-size:13px; font-weight:700; text-decoration:none; white-space:nowrap; }
.sks-sechead__more::after{ content:" →"; }

/* ---------- 8. カード（ルール10：変種） ---------- */
.sks-card{
  background:var(--sks-paper); border:1px solid var(--sks-line); border-radius:var(--sks-radius);
  overflow:hidden; box-shadow:var(--sks-shadow-s); transition:box-shadow .18s ease, transform .18s ease;
  display:flex; flex-direction:column; min-width:0;
}
.sks-card:hover{ box-shadow:var(--sks-shadow); transform:translateY(-2px); }
.sks-card__thumb{ display:block; background:var(--sks-line-2); position:relative; }
.sks-card__thumb img{ width:100%; aspect-ratio:40/21; object-fit:cover; object-position:center; }
.sks-card__body{ padding:14px 15px 16px; display:flex; flex-direction:column; gap:8px; flex:1 1 auto; min-width:0; }
.sks-card__cat{ align-self:flex-start; font-size:11px; font-weight:800; letter-spacing:.03em; color:var(--sks-navy); background:var(--sks-accent-l); border:1px solid #ecdcc0; border-radius:999px; padding:3px 10px; text-decoration:none; }
.sks-card__cat:hover{ background:var(--sks-accent); color:#fff; }
.sks-card__title{ font-size:15.5px; line-height:1.6; margin:0; }
.sks-card__title a{ text-decoration:none; color:var(--sks-ink); }
.sks-card__title a:hover{ color:var(--sks-navy); text-decoration:underline; }
.sks-card__ex{ font-size:13px; color:var(--sks-ink-2); margin:0; line-height:1.8; }
.sks-card__meta{ margin-top:auto; padding-top:8px; border-top:1px dashed var(--sks-line); font-size:11.5px; color:var(--sks-muted); display:flex; flex-wrap:wrap; gap:4px 12px; }

/* 変種A：画像左 */
.sks-card--imgleft, .sks-card--imgright{ flex-direction:column; }
@media (min-width:620px){
  .sks-card--imgleft{ flex-direction:row; }
  .sks-card--imgright{ flex-direction:row-reverse; }
  /* 画像を横に置く形。縦に引き伸ばすとヒーロー画像の左右が大きく切れるため、
     枠の高さを画像の比率（40:21）に合わせ、上端に寄せる。 */
  .sks-card--imgleft .sks-card__thumb, .sks-card--imgright .sks-card__thumb{ flex:0 0 42%; max-width:42%; align-self:flex-start; }
  .sks-card--imgleft .sks-card__thumb img, .sks-card--imgright .sks-card__thumb img{ height:auto; aspect-ratio:40/21; object-position:center; }
}
/* 変種B：画像を上に大きく1カラム */
.sks-card--hero{ grid-column:1/-1; }
.sks-card--hero .sks-card__thumb img{ aspect-ratio:40/21; }
.sks-card--hero .sks-card__title{ font-size:clamp(17px,3.4vw,22px); }
.sks-card--hero .sks-card__body{ padding:18px 20px 20px; }
/* 変種C：画像なし・色帯 */
.sks-card--band{ border-left:6px solid var(--sks-accent); }
.sks-card--band .sks-card__body{ padding:16px 17px 18px; background:linear-gradient(180deg,#fffdf8,#fff); }
.sks-card--band .sks-card__title{ font-size:16px; }
.sks-card--band-teal{ border-left-color:var(--sks-teal); }
.sks-card--band-teal .sks-card__body{ background:linear-gradient(180deg,#f4fbfa,#fff); }
.sks-card--band-navy{ border-left-color:var(--sks-navy); }
.sks-card--band-navy .sks-card__body{ background:linear-gradient(180deg,#f6f8fd,#fff); }
/* 変種D：番号つき・コンパクト */
.sks-card--num{ flex-direction:row; align-items:stretch; }
.sks-card--num .sks-card__num{
  flex:0 0 52px; display:grid; place-items:center; font-family:var(--sks-font-num); font-size:19px; font-weight:700;
  color:#fff; background:linear-gradient(160deg,var(--sks-navy),#31558f);
}
.sks-card--num .sks-card__body{ padding:12px 14px 13px; }
.sks-card--num .sks-card__title{ font-size:14.5px; }
/* 変種E：枠線強調・薄背景 */
.sks-card--outline{ border:2px solid var(--sks-navy); box-shadow:none; background:#fbfcfe; }
.sks-card--outline .sks-card__thumb img{ aspect-ratio:40/21; }

/* ---------- 9. カテゴリーカード ---------- */
.sks-cat{
  display:flex; gap:12px; align-items:flex-start; padding:14px 15px; background:var(--sks-paper);
  border:1px solid var(--sks-line); border-radius:var(--sks-radius); text-decoration:none; color:inherit;
  box-shadow:var(--sks-shadow-s); transition:.18s ease; min-width:0;
}
.sks-cat:hover{ border-color:var(--sks-navy); box-shadow:var(--sks-shadow); transform:translateY(-2px); }
.sks-cat__ico{ flex:0 0 42px; width:42px; height:42px; border-radius:11px; display:grid; place-items:center; background:var(--sks-accent-l); color:var(--sks-navy); }
.sks-cat__ico svg{ width:24px; height:24px; }
.sks-cat__b{ min-width:0; }
.sks-cat__n{ display:block; font-weight:800; font-size:14.5px; line-height:1.5; margin-bottom:3px; }
.sks-cat__d{ display:block; font-size:12.5px; color:var(--sks-ink-2); line-height:1.75; }
.sks-cat__c{ display:inline-block; margin-top:6px; font-size:11px; color:var(--sks-muted); font-family:var(--sks-font-num); }
.sks-cat--flip{ flex-direction:row-reverse; text-align:right; }
.sks-cat--flip .sks-cat__ico{ background:var(--sks-teal-l); color:var(--sks-teal); }
.sks-cat--stack{ flex-direction:column; align-items:stretch; text-align:left; }
.sks-cat--stack .sks-cat__ico{ width:100%; flex:0 0 54px; height:54px; border-radius:11px; background:linear-gradient(135deg,var(--sks-navy),#35609d); color:#fff; }
.sks-cat--plain{ background:linear-gradient(180deg,#f9fafd,#fff); border-left:5px solid var(--sks-navy); }
.sks-cat--plain .sks-cat__ico{ display:none; }

/* ---------- 10. タグ ---------- */
.sks-tags{ display:flex; flex-wrap:wrap; gap:7px; margin:0; padding:0; list-style:none; }
.sks-tags li{ margin:0; }
.sks-tag{
  display:inline-block; font-size:12px; font-weight:700; text-decoration:none; color:var(--sks-ink-2);
  background:var(--sks-paper); border:1px solid var(--sks-line); border-radius:999px; padding:4px 11px; transition:.15s;
}
.sks-tag:hover{ background:var(--sks-navy); border-color:var(--sks-navy); color:#fff; }
.sks-tag--on{ background:var(--sks-navy); border-color:var(--sks-navy); color:#fff; }
.sks-tag--alt{ border-style:dashed; background:#fbfcfe; }
.sks-tag__n{ font-family:var(--sks-font-num); opacity:.65; font-size:10.5px; margin-left:3px; }

/* ---------- 11. 記事本文 ---------- */
.sks-article{ background:var(--sks-paper); border:1px solid var(--sks-line); border-radius:var(--sks-radius); padding:clamp(16px,4vw,36px); box-shadow:var(--sks-shadow-s); min-width:0; }
.sks-article__title{ font-size:clamp(21px,5vw,33px); line-height:1.5; margin:0 0 14px; }
.sks-article__meta{ display:flex; flex-wrap:wrap; gap:6px 14px; font-size:12.5px; color:var(--sks-muted); padding-bottom:14px; border-bottom:2px solid var(--sks-line-2); margin-bottom:20px; }
.sks-article__meta time{ font-family:var(--sks-font-num); }
.sks-body{ font-size:clamp(15px,2.9vw,16.5px); }
.sks-body h2{ font-size:clamp(18px,4vw,25px); margin:2.2em 0 .9em; scroll-margin-top:84px; }
.sks-body h3{ font-size:clamp(16px,3.4vw,20px); margin:1.9em 0 .7em; scroll-margin-top:84px; }
.sks-body h4{ font-size:clamp(15px,3vw,17.5px); margin:1.6em 0 .6em; }
.sks-body>*:first-child{ margin-top:0; }
.sks-body img{ border-radius:var(--sks-radius-s); margin-inline:auto; }
.sks-body figure{ margin:1.6em 0; }
.sks-body figcaption{ font-size:12.5px; color:var(--sks-muted); text-align:center; margin-top:8px; line-height:1.7; }
.sks-body a{ font-weight:600; }
.sks-body strong{ font-weight:800; background:linear-gradient(transparent 62%, #fbe7c2 62%); padding:0 .05em; }
.sks-body blockquote{ margin:1.5em 0; padding:14px 18px; border-left:5px solid var(--sks-accent); background:#fdfaf4; border-radius:0 var(--sks-radius-s) var(--sks-radius-s) 0; color:var(--sks-ink-2); font-size:.96em; }
.sks-body blockquote p:last-child{ margin-bottom:0; }

/* 出典リンク（ルール4） */
.sks-src{
  margin:1.4em 0 0; padding:11px 14px; background:#f4f7fc; border:1px solid #dde5f2; border-left:4px solid var(--sks-navy);
  border-radius:0 var(--sks-radius-s) var(--sks-radius-s) 0; font-size:12.8px; line-height:1.75; color:var(--sks-ink-2);
}
.sks-src__lb{ display:inline-block; font-weight:800; color:var(--sks-navy); margin-right:6px; letter-spacing:.05em; }
.sks-src a{ font-weight:700; word-break:break-all; }
.sks-src__org{ color:var(--sks-muted); font-size:11.5px; }

/* 冒頭・末尾ブロック（ルール1） */
.sks-forwhom{ border:2px dashed var(--sks-navy); border-radius:var(--sks-radius); padding:16px 18px; background:linear-gradient(180deg,#f7f9fd,#fff); margin:0 0 26px; }
.sks-forwhom__t{ font-size:14px; font-weight:800; color:var(--sks-navy); margin:0 0 8px; display:flex; align-items:center; gap:7px; }
.sks-forwhom p:last-child, .sks-forwhom ul:last-child{ margin-bottom:0; }
.sks-callout-end{ margin:34px 0 0; padding:18px 20px; border-radius:var(--sks-radius); background:linear-gradient(135deg,#1d3461,#2c4f86); color:#eef3fa; box-shadow:var(--sks-shadow); }
.sks-callout-end h2,.sks-callout-end h3{ color:#fff; margin-top:0; font-size:17px; }
.sks-callout-end a{ color:#ffd9a0; }
.sks-callout-end p:last-child{ margin-bottom:0; }

/* 注意・補足ボックス */
.sks-note{ margin:1.5em 0; padding:14px 16px; border-radius:var(--sks-radius-s); font-size:13.8px; line-height:1.85; border:1px solid; }
.sks-note--warn{ background:var(--sks-red-l); border-color:#efc9c9; color:#6d2020; }
.sks-note--ok{ background:var(--sks-green-l); border-color:#c6ddcc; color:#254f31; }
.sks-note--info{ background:var(--sks-teal-l); border-color:#c2ddda; color:#134f4f; }
.sks-note--memo{ background:#fdf7ea; border-color:#eddfc2; color:#5c4715; }
.sks-note__t{ display:block; font-weight:800; margin-bottom:5px; font-size:13.5px; }
.sks-note p:last-child,.sks-note ul:last-child,.sks-note ol:last-child{ margin-bottom:0; }

/* 目次 */
.sks-toc{ margin:0 0 28px; border:1px solid var(--sks-line); border-radius:var(--sks-radius); background:linear-gradient(180deg,#fbfcfe,#fff); overflow:hidden; }
.sks-toc__h{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:11px 15px; background:var(--sks-navy); color:#fff; font-weight:800; font-size:14px; }
.sks-toc__btn{ background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.3); color:#fff; border-radius:999px; padding:3px 12px; font-size:11.5px; font-weight:700; cursor:pointer; }
.sks-toc__body{ padding:12px 16px 14px; }
.sks-toc ol{ list-style:none; counter-reset:toc; margin:0; padding:0; }
.sks-toc>.sks-toc__body>ol>li{ counter-increment:toc; position:relative; padding-left:32px; margin-bottom:9px; }
.sks-toc>.sks-toc__body>ol>li::before{
  content:counter(toc,decimal-leading-zero); position:absolute; left:0; top:.25em; font-family:var(--sks-font-num);
  font-size:11.5px; font-weight:700; color:#fff; background:var(--sks-navy); border-radius:5px; padding:1px 5px;
}
.sks-toc a{ text-decoration:none; font-weight:700; font-size:14px; color:var(--sks-ink); }
.sks-toc a:hover{ color:var(--sks-accent); text-decoration:underline; }
.sks-toc ol ol{ margin:7px 0 0; padding-left:2px; }
.sks-toc ol ol li{ margin-bottom:5px; padding-left:16px; position:relative; }
.sks-toc ol ol li::before{ content:"—"; position:absolute; left:0; color:#b6bfd0; }
.sks-toc ol ol a{ font-weight:500; font-size:13px; color:var(--sks-ink-2); }

/* ---------- 12. おすすめサイト（ルール2） ---------- */
.sks-sites{ margin:34px 0 0; }
.sks-sites__note{ font-size:12.3px; color:var(--sks-muted); background:var(--sks-line-2); border-radius:var(--sks-radius-s); padding:9px 13px; margin:0 0 16px; line-height:1.75; }
.sks-sites__list{ list-style:none; margin:0; padding:0; display:grid; gap:11px; grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr)); }
.sks-sites__list li{ margin:0; min-width:0; }
.sks-site{ display:block; height:100%; padding:12px 14px; border:1px solid var(--sks-line); border-radius:var(--sks-radius-s); background:var(--sks-paper); text-decoration:none; color:inherit; transition:.16s; }
.sks-site:hover{ border-color:var(--sks-navy); background:#fbfcfe; transform:translateY(-1px); }
.sks-site__n{ display:block; font-weight:800; font-size:13.6px; line-height:1.55; color:var(--sks-navy); margin-bottom:4px; }
.sks-site__d{ display:block; font-size:12.3px; color:var(--sks-ink-2); line-height:1.75; }
.sks-site__u{ display:block; font-size:10.8px; color:var(--sks-muted); font-family:var(--sks-font-num); margin-top:5px; word-break:break-all; }
.sks-site--a{ border-left:4px solid var(--sks-navy); }
.sks-site--b{ border-left:4px solid var(--sks-accent); background:linear-gradient(180deg,#fffdf8,#fff); }
.sks-site--c{ border-left:4px solid var(--sks-teal); background:linear-gradient(180deg,#f6fbfa,#fff); }
.sks-site--d{ border:1px dashed var(--sks-line); background:#fafbfe; }
.sks-site--e{ border-left:4px solid var(--sks-green); }

/* ---------- 13. 固定CTA（ルール8・14） ---------- */
.sks-ctabar{
  position:fixed; left:0; right:0; bottom:0; z-index:80; background:rgba(19,34,68,.97);
  backdrop-filter:blur(8px); color:#fff; border-top:2px solid var(--sks-accent);
  padding:7px var(--sks-pad) calc(7px + env(safe-area-inset-bottom));
  box-shadow:0 -6px 20px -8px rgba(0,0,0,.4);
}
.sks-ctabar__in{ max-width:var(--sks-wrap); margin-inline:auto; display:flex; align-items:center; gap:10px 14px; flex-wrap:wrap; }
.sks-ctabar__lb{ flex:1 1 240px; min-width:0; font-size:12.4px; line-height:1.5; font-weight:700; }
.sks-ctabar__btn{
  flex:0 0 auto; display:inline-block; background:linear-gradient(160deg,#e0a13d,#c8892b); color:#22160a; font-weight:800;
  text-decoration:none; border-radius:999px; padding:9px 20px; font-size:13.5px; white-space:nowrap;
  box-shadow:0 2px 0 #9c6a1d, 0 6px 16px -6px rgba(0,0,0,.5);
}
.sks-ctabar__btn:hover{ background:linear-gradient(160deg,#eeb055,#d5942f); color:#22160a; transform:translateY(-1px); }
.sks-ctabar__fine{ flex:1 1 100%; font-size:9.8px; line-height:1.5; color:#b9c6dc; margin:0; }
@media (max-width:520px){
  .sks-ctabar__lb{ flex:1 1 100%; font-size:11.6px; }
  .sks-ctabar__btn{ flex:1 1 100%; text-align:center; }
  .sks-ctabar__fine{ display:none; }
}
.sks-ctabar__fine-m{ display:none; }
@media (max-width:520px){ .sks-ctabar__fine-m{ display:block; flex:1 1 100%; font-size:9.4px; color:#b9c6dc; margin:0; line-height:1.45; } }

/* 記事内CTA */
.sks-cta{
  margin:32px 0; border-radius:var(--sks-radius); overflow:hidden; border:2px solid var(--sks-navy);
  background:linear-gradient(135deg,#f6f9fe,#fff); box-shadow:var(--sks-shadow);
}
.sks-cta__h{ background:var(--sks-navy); color:#fff; padding:11px 17px; font-weight:800; font-size:14.5px; }
.sks-cta__b{ padding:16px 18px 18px; }
.sks-cta__b p{ font-size:14px; margin-bottom:.9em; }
.sks-cta__btn{
  display:block; text-align:center; background:linear-gradient(160deg,#e0a13d,#c8892b); color:#22160a; font-weight:800;
  text-decoration:none; border-radius:999px; padding:13px 22px; font-size:15.5px; box-shadow:0 3px 0 #9c6a1d;
}
.sks-cta__btn:hover{ color:#22160a; background:linear-gradient(160deg,#eeb055,#d5942f); }
.sks-cta__fine{ font-size:11px; color:var(--sks-muted); line-height:1.7; margin:12px 0 0; }

/* ---------- 14. 役に立った（フェーズ7） ---------- */
.sks-helpful{ margin:30px 0 0; padding:16px 18px; border:1px solid var(--sks-line); border-radius:var(--sks-radius); background:linear-gradient(180deg,#fbfcfe,#fff); text-align:center; }
.sks-helpful__t{ font-size:14.5px; font-weight:800; margin:0 0 10px; }
.sks-helpful__btn{ display:inline-flex; align-items:center; gap:8px; border:2px solid var(--sks-navy); background:#fff; color:var(--sks-navy); font-weight:800; border-radius:999px; padding:9px 22px; font-size:14px; cursor:pointer; transition:.16s; }
.sks-helpful__btn:hover{ background:var(--sks-navy); color:#fff; }
.sks-helpful__btn[disabled]{ opacity:.62; cursor:default; }
.sks-helpful__n{ font-family:var(--sks-font-num); font-size:13px; }
.sks-helpful__msg{ font-size:12px; color:var(--sks-muted); margin:8px 0 0; min-height:1.4em; }

/* ---------- 15. サイドバー ---------- */
.sks-widget{ background:var(--sks-paper); border:1px solid var(--sks-line); border-radius:var(--sks-radius); overflow:hidden; box-shadow:var(--sks-shadow-s); }
.sks-widget__h{ padding:10px 14px; background:linear-gradient(135deg,var(--sks-navy),#2d5288); color:#fff; font-weight:800; font-size:13.5px; }
.sks-widget__b{ padding:13px 14px 15px; font-size:13.3px; }
.sks-widget__b ul{ list-style:none; margin:0; padding:0; }
.sks-widget__b li+li{ margin-top:9px; padding-top:9px; border-top:1px dashed var(--sks-line); }
.sks-widget__b a{ text-decoration:none; font-weight:700; line-height:1.6; display:block; color:var(--sks-ink); }
.sks-widget__b a:hover{ color:var(--sks-accent); }

/* ---------- 16. ページネーション ---------- */
.sks-pager{ display:flex; flex-wrap:wrap; gap:7px; justify-content:center; margin:32px 0 0; }
.sks-pager .page-numbers{
  display:inline-grid; place-items:center; min-width:38px; height:38px; padding:0 11px; border-radius:9px;
  border:1px solid var(--sks-line); background:var(--sks-paper); text-decoration:none; font-weight:700; font-size:13.5px; color:var(--sks-ink-2);
}
.sks-pager .page-numbers:hover{ border-color:var(--sks-navy); color:var(--sks-navy); }
.sks-pager .page-numbers.current{ background:var(--sks-navy); border-color:var(--sks-navy); color:#fff; }
.sks-pager .dots{ border:0; background:transparent; }

/* ---------- 17. 関連記事 / 前後 ---------- */
.sks-prevnext{ display:grid; gap:12px; grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); margin:28px 0 0; }
.sks-prevnext a{ display:block; padding:13px 15px; border:1px solid var(--sks-line); border-radius:var(--sks-radius-s); background:var(--sks-paper); text-decoration:none; box-shadow:var(--sks-shadow-s); }
.sks-prevnext a:hover{ border-color:var(--sks-navy); }
.sks-prevnext__lb{ display:block; font-size:11px; font-weight:800; color:var(--sks-accent); letter-spacing:.08em; margin-bottom:4px; }
.sks-prevnext__t{ display:block; font-size:13.8px; font-weight:700; color:var(--sks-ink); line-height:1.6; }
.sks-prevnext__next{ text-align:right; }

/* ---------- 18. SNS枠（フェーズ7） ---------- */
.sks-sns{ display:grid; gap:11px; grid-template-columns:repeat(auto-fit,minmax(min(100%,168px),1fr)); }
.sks-sns a{ display:flex; align-items:center; gap:9px; padding:11px 13px; border:1px solid var(--sks-line); border-radius:var(--sks-radius-s); background:var(--sks-paper); text-decoration:none; font-size:12.8px; font-weight:700; color:var(--sks-ink); }
.sks-sns a:hover{ border-color:var(--sks-navy); background:#fbfcfe; }
.sks-sns svg{ width:20px; height:20px; flex:0 0 20px; }
.sks-sns__sub{ display:block; font-size:10.5px; font-weight:500; color:var(--sks-muted); }

/* ---------- 19. 統計セクション（フェーズ7） ---------- */
.sks-stats{ display:grid; gap:12px; grid-template-columns:repeat(auto-fit,minmax(min(100%,178px),1fr)); }
.sks-stat{ padding:15px 16px; border-radius:var(--sks-radius); background:var(--sks-paper); border:1px solid var(--sks-line); box-shadow:var(--sks-shadow-s); }
.sks-stat__n{ display:block; font-family:var(--sks-font-num); font-size:clamp(21px,4.6vw,28px); font-weight:700; color:var(--sks-navy); line-height:1.25; }
.sks-stat__u{ font-size:13px; margin-left:2px; color:var(--sks-ink-2); }
.sks-stat__l{ display:block; font-size:12.6px; font-weight:700; margin-top:5px; }
.sks-stat__s{ display:block; font-size:11px; color:var(--sks-muted); margin-top:5px; line-height:1.65; }
.sks-stat__s a{ word-break:break-all; }
.sks-stat:nth-child(3n+2){ background:linear-gradient(180deg,#fffdf8,#fff); border-left:4px solid var(--sks-accent); }
.sks-stat:nth-child(3n+3){ background:linear-gradient(180deg,#f6fbfa,#fff); border-left:4px solid var(--sks-teal); }

/* ---------- 20. フッター ---------- */
.sks-footer{ background:var(--sks-navy-d); color:#c6d1e4; margin-top:clamp(30px,6vw,56px); padding:clamp(26px,5vw,42px) 0 24px; font-size:13.2px; }
.sks-footer a{ color:#dfe7f4; text-decoration:none; }
.sks-footer a:hover{ color:#f0c078; text-decoration:underline; }
.sks-footer__grid{ display:grid; gap:22px; grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr)); }
.sks-footer__h{ font-size:13px; font-weight:800; color:#fff; margin:0 0 10px; padding-bottom:7px; border-bottom:1px solid rgba(255,255,255,.16); }
.sks-footer ul{ list-style:none; margin:0; padding:0; }
.sks-footer li{ margin-bottom:6px; line-height:1.7; }
.sks-footer__about{ font-size:12.4px; line-height:1.85; color:#aebbd2; }
.sks-footer__bottom{ margin-top:26px; padding-top:16px; border-top:1px solid rgba(255,255,255,.13); font-size:11.6px; color:#93a3bf; line-height:1.8; }

/* ---------- 21. 検索・404・汎用 ---------- */
.sks-empty{ padding:clamp(24px,5vw,44px); text-align:center; background:var(--sks-paper); border:1px dashed var(--sks-line); border-radius:var(--sks-radius); }
.sks-empty h2{ font-size:18px; }
.sks-empty p{ color:var(--sks-ink-2); font-size:14px; }
.sks-btn{ display:inline-block; background:var(--sks-navy); color:#fff; text-decoration:none; font-weight:700; border-radius:999px; padding:10px 24px; font-size:14px; }
.sks-btn:hover{ background:var(--sks-navy-d); color:#fff; }
.sks-btn--ghost{ background:transparent; color:var(--sks-navy); border:2px solid var(--sks-navy); }
.sks-btn--ghost:hover{ background:var(--sks-navy); color:#fff; }
.sks-sr{ position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.sks-skip{ position:absolute; left:-9999px; top:0; z-index:200; background:#fff; padding:10px 18px; }
.sks-skip:focus{ left:8px; top:8px; }
:where(a,button,input,select,textarea):focus-visible{ outline:3px solid var(--sks-accent); outline-offset:2px; border-radius:4px; }
.sks-lede{ font-size:clamp(14px,2.8vw,16px); color:var(--sks-ink-2); line-height:1.95; }
.sks-updated{ font-size:11.8px; color:var(--sks-muted); font-family:var(--sks-font-num); }

/* ---------- 22. 印刷 ---------- */
@media print{
  .sks-ctabar,.sks-nav,.sks-navtoggle,.sks-helpful,.sks-cta{ display:none!important; }
  body{ padding-bottom:0; background:#fff; }
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.01ms!important; transition-duration:.01ms!important; scroll-behavior:auto!important; }
}
