@charset "UTF-8";
/*---------------------------------------------------------
  公開サイト共通スタイル

  ・見出しは明朝、本文はゴシック
  ・アクセントは藍（#1c3f5f）1色
  ・左メインカラム＋右サイドカラムの2段組み
---------------------------------------------------------*/

:root{
  --ink:#12171c;
  --ink-2:#3f4a54;
  --muted:#7d868f;
  --paper:#fff;
  --wash:#f3f4f2;
  --line:#e0e3e5;
  --hair:#c8ced2;
  --ai:#1c3f5f;
  --ai-deep:#12293e;
  --ai-soft:#eaeff4;

  --maxw:1180px;
  --side:280px;
  --gap:56px;
  --gut:24px;
  --head-h:76px;

  --mincho:"Hiragino Mincho ProN","Yu Mincho","YuMincho","Noto Serif JP","Source Han Serif JP",serif;
  --gothic:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic",Meiryo,sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--gothic);font-size:16px;line-height:1.9;
  -webkit-text-size-adjust:100%;text-size-adjust:100%;
  font-feature-settings:"palt" 1;
}
img{max-width:100%;height:auto;vertical-align:bottom}
a{color:var(--ai);text-underline-offset:.2em}
a:hover{color:var(--ai-deep)}
ul{list-style:none;margin:0;padding:0}
:focus-visible{outline:2px solid var(--ai);outline-offset:3px}

.inner{max-width:var(--maxw);margin:0 auto;padding:0 var(--gut)}
.sr,.skip{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip:focus{position:fixed;top:8px;left:8px;width:auto;height:auto;clip:auto;
  background:var(--ink);color:#fff;padding:8px 14px;z-index:100;border-radius:2px}

/*=========================================================
  2段組み
=========================================================*/
.cols{display:grid;grid-template-columns:minmax(0,1fr) var(--side);gap:var(--gap);
  align-items:start;padding-top:56px;padding-bottom:88px}
.col-main{min-width:0}

/*=========================================================
  プレビュー帯
=========================================================*/
.preview-bar{margin:0;background:var(--ai-deep);color:#fff;font-size:13px;
  text-align:center;padding:6px 12px}
.preview-bar a{color:#cfe0ef}

/*=========================================================
  ヘッダー
=========================================================*/
.site-head{border-bottom:1px solid var(--line);background:var(--paper);
  position:sticky;top:0;z-index:50}
.head-in{display:flex;align-items:center;gap:28px;min-height:var(--head-h)}
.logo{margin:0;font-family:var(--mincho);font-size:22px;letter-spacing:.09em;line-height:1.3}
.logo a{color:var(--ink);text-decoration:none}
.logo a:hover{color:var(--ai)}

.gnav{margin-left:auto;display:flex;align-items:center;gap:20px}
.gnav-list{display:flex;gap:2px}
.gnav-list a{display:block;padding:8px 14px;font-size:14.5px;color:var(--ink-2);
  text-decoration:none;letter-spacing:.06em;position:relative}
.gnav-list a::after{content:"";position:absolute;left:14px;right:14px;bottom:4px;height:1px;
  background:var(--ai);transform:scaleX(0);transform-origin:left;transition:transform .18s ease}
.gnav-list a:hover{color:var(--ai)}
.gnav-list a:hover::after{transform:scaleX(1)}
.gnav-list a[aria-current]{color:var(--ai);font-weight:700}
.gnav-list a[aria-current]::after{transform:scaleX(1)}
.gnav-sub{display:none}
.gnav-cta{margin:0}
.gnav-cta a{display:inline-block;background:var(--ai);color:#fff;text-decoration:none;
  font-size:13.5px;letter-spacing:.08em;padding:11px 22px;transition:background .18s ease}
.gnav-cta a:hover{background:var(--ai-deep);color:#fff}
.menu-btn{display:none}

/*=========================================================
  トップページ
=========================================================*/
.hero{background:var(--wash);border-bottom:1px solid var(--line);padding:92px 0 84px}
.hero-in{position:relative;padding-left:calc(var(--gut) + 24px)}
.hero-in::before{content:"";position:absolute;left:var(--gut);top:8px;bottom:8px;
  width:1px;background:var(--hair)}
.hero-h{font-family:var(--mincho);font-weight:600;font-size:clamp(27px,4.2vw,42px);
  line-height:1.55;letter-spacing:.07em;margin:0;max-width:22em}
.hero-lead{margin:20px 0 0;font-size:16px;color:var(--ink-2);max-width:40em}

.block{margin-top:64px}
.block-head{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;
  padding-bottom:14px;border-bottom:1px solid var(--line);margin-bottom:4px}
.eyebrow{margin:0;font-size:11.5px;letter-spacing:.26em;color:var(--muted)}
.block-h{font-family:var(--mincho);font-weight:600;font-size:22px;letter-spacing:.08em;margin:0}
.block-more{margin-left:auto;font-size:13px;letter-spacing:.06em;text-decoration:none}
.block-more:hover{text-decoration:underline}

/*=========================================================
  下層ページの見出し帯
=========================================================*/
.page-head{background:var(--wash);padding:44px 0 48px;border-bottom:1px solid var(--line)}
.crumb{font-size:12px;color:var(--muted);letter-spacing:.04em;margin-bottom:16px}
.crumb a{color:var(--muted)}
.crumb span[aria-hidden]{margin:0 .6em;color:var(--hair)}
.page-h{font-family:var(--mincho);font-weight:600;font-size:clamp(24px,3.2vw,33px);
  letter-spacing:.08em;line-height:1.5;margin:0}
.page-note{margin:14px 0 0;font-size:13.5px;color:var(--muted)}
.entry-date{display:block;font-size:12.5px;letter-spacing:.12em;color:var(--muted);margin-bottom:8px}
.page-head .taglist{margin-top:16px}

/*=========================================================
  本文
=========================================================*/
.prose{font-size:16px;line-height:2.05}
.prose > :first-child{margin-top:0}
.prose p{margin:0 0 1.7em}
.prose h2{font-family:var(--mincho);font-size:21px;font-weight:600;letter-spacing:.06em;
  line-height:1.6;margin:2.6em 0 1em;padding-left:14px;border-left:3px solid var(--ai)}
.prose h3{font-size:17px;font-weight:700;letter-spacing:.04em;margin:2.2em 0 .8em}
.prose h4{font-size:15.5px;font-weight:700;margin:1.8em 0 .6em;color:var(--ink-2)}
.prose ul,.prose ol{margin:0 0 1.7em;padding-left:1.4em}
.prose ul{list-style:disc}
.prose ol{list-style:decimal}
.prose li{margin-bottom:.5em}
.prose img{margin:1em 0}
.prose img.img-left{display:block;margin-right:auto}
.prose img.img-center{display:block;margin-left:auto;margin-right:auto}
.prose img.img-right{display:block;margin-left:auto}
.prose blockquote{margin:1.8em 0;padding:4px 0 4px 20px;border-left:2px solid var(--hair);
  color:var(--ink-2)}
.prose table{width:100%;border-collapse:collapse;margin:1.8em 0;font-size:15px}
.prose th,.prose td{border-bottom:1px solid var(--line);padding:14px 12px;text-align:left;
  vertical-align:top}
.prose th{width:9em;font-weight:700;color:var(--ink-2);background:var(--wash)}
.prose hr{border:none;border-top:1px solid var(--line);margin:3em 0}
.prose code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em;
  background:var(--wash);padding:.15em .4em;border-radius:2px}
.prose pre{background:var(--wash);padding:16px;overflow:auto;font-size:13px;line-height:1.7}
.prose pre code{background:none;padding:0}
.lead{margin-bottom:40px;padding-bottom:28px;border-bottom:1px solid var(--line)}

/*=========================================================
  記事一覧
=========================================================*/
.posts{border-top:1px solid var(--line)}
.post{padding:26px 0;border-bottom:1px solid var(--line)}
.post-date{font-size:12px;letter-spacing:.12em;color:var(--muted)}
.post-t{font-family:var(--mincho);font-size:19px;font-weight:600;letter-spacing:.04em;
  line-height:1.6;margin:4px 0 8px}
.post-t a{color:var(--ink);text-decoration:none}
.post-t a:hover{color:var(--ai);text-decoration:underline}
.draft{font-style:normal;font-size:11px;color:#a3591b;border:1px solid #d9b58a;
  border-radius:2px;padding:0 5px;vertical-align:2px}
.post-x{margin:0;font-size:14px;line-height:1.9;color:var(--ink-2)}
.empty{color:var(--muted);padding:48px 0;text-align:center;border-top:1px solid var(--line)}

.taglist{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.taglist a{display:inline-block;font-size:12px;letter-spacing:.04em;color:var(--ink-2);
  background:var(--paper);border:1px solid var(--line);padding:2px 10px;border-radius:2px;
  text-decoration:none;transition:border-color .16s ease,color .16s ease}
.taglist a:hover{border-color:var(--ai);color:var(--ai);background:var(--ai-soft)}
.taglist a span{color:var(--muted);margin-left:5px;font-size:11px}

/*=========================================================
  サイドカラム
=========================================================*/
.side{position:sticky;top:calc(var(--head-h) + 20px)}
.side-b{margin-bottom:34px}
.side-h{font-size:11.5px;font-weight:700;letter-spacing:.18em;color:var(--muted);
  margin:0 0 12px;padding-bottom:9px;border-bottom:1px solid var(--line)}
.side-b .taglist{margin-top:0}

.side-nav{border-top:1px solid var(--line)}
.side-nav li{border-bottom:1px solid var(--line)}
.side-nav a{display:block;padding:11px 14px 11px 2px;font-size:14px;color:var(--ink-2);
  text-decoration:none;position:relative;transition:color .16s ease,padding .16s ease}
.side-nav a::after{content:"";position:absolute;right:4px;top:50%;width:6px;height:6px;
  border-top:1px solid var(--hair);border-right:1px solid var(--hair);
  transform:translateY(-50%) rotate(45deg)}
.side-nav a:hover{color:var(--ai);padding-left:8px}
.side-nav a:hover::after{border-color:var(--ai)}
.side-nav a.on{color:var(--ai);font-weight:700;padding-left:8px}
.side-nav a.on::after{border-color:var(--ai)}

.sform{display:flex;border:1px solid var(--hair);background:var(--paper)}
.sform input{flex:1;min-width:0;border:none;padding:9px 11px;font:inherit;font-size:14px;
  background:transparent;color:var(--ink)}
.sform input:focus{outline:none;background:var(--ai-soft)}
.sform button{border:none;border-left:1px solid var(--hair);background:var(--wash);
  padding:9px 15px;font:inherit;font-size:13px;color:var(--ink-2);cursor:pointer;
  transition:background .16s ease,color .16s ease}
.sform button:hover{background:var(--ai);color:#fff}
.sform-big{max-width:520px;margin-bottom:44px}
.sform-big input{padding:13px 15px;font-size:15px}

.side-cta{background:var(--ai);color:#fff;padding:24px 22px 26px}
.cta-lead{margin:0 0 8px;font-family:var(--mincho);font-size:17px;letter-spacing:.08em}
.cta-txt{margin:0 0 18px;font-size:13px;line-height:1.85;color:#d3dfe9}
.cta-act{margin:0}
.cta-act a{display:block;text-align:center;background:#fff;color:var(--ai);
  text-decoration:none;font-size:14px;font-weight:700;letter-spacing:.08em;padding:12px}
.cta-act a:hover{background:var(--ai-soft);color:var(--ai-deep)}

/*=========================================================
  ボタン・ページャ
=========================================================*/
.btn{display:inline-block;padding:12px 30px;border:1px solid var(--ai);color:var(--ai);
  font-size:14px;letter-spacing:.1em;text-decoration:none;background:transparent;
  transition:background .18s ease,color .18s ease;cursor:pointer;font-family:inherit}
.btn:hover{background:var(--ai);color:#fff}
.btn-fill{background:var(--ai);color:#fff}
.btn-fill:hover{background:var(--ai-deep);color:#fff}
.more{margin:40px 0 0;text-align:center}

.pager{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:44px;font-size:14px}
.pager a,.pager .pg-on{display:block;min-width:42px;text-align:center;padding:9px 12px;
  border:1px solid var(--line);text-decoration:none;color:var(--ink-2)}
.pager a:hover{border-color:var(--ai);color:var(--ai)}
.pager .pg-on{background:var(--ai);border-color:var(--ai);color:#fff}

/*=========================================================
  記事詳細
=========================================================*/
.entry-img{margin:0 0 36px}
.nextprev{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin-top:64px;
  background:var(--line);border:1px solid var(--line)}
.np{display:block;background:var(--paper);padding:18px 20px;text-decoration:none;color:inherit}
.np:hover{background:var(--wash)}
.np span{display:block;font-size:11px;letter-spacing:.14em;color:var(--muted)}
.np b{display:block;font-family:var(--mincho);font-size:15px;font-weight:600;
  line-height:1.6;margin-top:5px}
.np-next{text-align:right;grid-column:2}

/*=========================================================
  お問い合わせ
=========================================================*/
.cform{margin-top:40px;border-top:1px solid var(--line);padding-top:36px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cf{margin-bottom:24px}
.cf label{display:block;font-size:13.5px;font-weight:700;letter-spacing:.04em;
  color:var(--ink-2);margin-bottom:7px}
.cf label em{font-style:normal;font-size:11px;font-weight:400;color:#a4342a;
  border:1px solid #e0b6b0;border-radius:2px;padding:1px 6px;margin-left:8px;vertical-align:2px}
.cf input,.cf textarea{width:100%;padding:11px 13px;border:1px solid var(--hair);
  background:var(--paper);color:var(--ink);font:inherit;font-size:15.5px;border-radius:2px}
.cf textarea{line-height:1.8;resize:vertical}
.cf input:focus,.cf textarea:focus{outline:none;border-color:var(--ai);
  box-shadow:0 0 0 3px var(--ai-soft)}
.cf-note{font-size:13px;color:var(--muted);margin:0 0 24px}
.cf-act{margin:0}
.cf-act .btn{width:100%;padding:16px 30px;font-size:15px}
.form-err{background:#fbeceb;border-left:3px solid #a4342a;color:#8c2b22;
  padding:14px 18px;font-size:14px;margin:32px 0 0}
.form-err p{margin:0;font-weight:700}
.form-err ul{list-style:disc;padding-left:1.3em;margin:6px 0 0}

.confirm{margin:0 0 40px;border-top:1px solid var(--line)}
.confirm dt{font-size:12.5px;font-weight:700;letter-spacing:.08em;color:var(--muted);
  padding:18px 0 0}
.confirm dd{margin:0;padding:4px 0 18px;border-bottom:1px solid var(--line);
  font-size:15.5px;line-height:1.9;word-break:break-word}
.confirm-act{display:flex;gap:12px;flex-wrap:wrap}
.confirm-act .btn{flex:1;min-width:200px;text-align:center;padding:15px 20px}

.done{text-align:center;padding-top:20px}
.done-lead{font-family:var(--mincho);font-size:19px;line-height:2;letter-spacing:.04em;
  margin:0 0 22px}
.done-note{font-size:14px;color:var(--ink-2);margin:0}

/*=========================================================
  404
=========================================================*/
.err-col{text-align:center;padding-top:40px}
.err-num{font-family:var(--mincho);font-size:64px;letter-spacing:.1em;color:var(--hair);
  margin:0 0 6px;line-height:1}
.err-msg{color:var(--ink-2);margin:16px 0 0}

/*=========================================================
  フッター
=========================================================*/
.site-foot{border-top:1px solid var(--line);background:var(--wash);padding:56px 0 0}
.foot-in{display:flex;gap:56px;flex-wrap:wrap;padding-bottom:44px}
.foot-brand{flex:1 1 320px;min-width:0}
.foot-name{font-family:var(--mincho);font-size:19px;letter-spacing:.08em;margin:0 0 10px}
.foot-name a{color:var(--ink);text-decoration:none}
.foot-name a:hover{color:var(--ai)}
.foot-desc{font-size:13px;color:var(--ink-2);margin:0;max-width:34em;line-height:1.9}
.foot-navs{display:flex;gap:56px;flex-wrap:wrap}
.foot-col{min-width:130px}
.foot-h{font-size:11px;font-weight:700;letter-spacing:.18em;color:var(--muted);margin:0 0 12px}
.foot-col li{margin-bottom:7px}
.foot-col a{font-size:13.5px;color:var(--ink-2);text-decoration:none}
.foot-col a:hover{color:var(--ai);text-decoration:underline}
.copy{margin:0;border-top:1px solid var(--line);text-align:center;font-size:12px;
  letter-spacing:.06em;color:var(--muted);padding:20px 20px 24px}

/*=========================================================
  レスポンシブ
=========================================================*/
@media(max-width:1080px){
  :root{--side:250px;--gap:40px}
  .head-in{gap:18px}
  .gnav{gap:14px}
  .gnav-list a{padding:8px 10px;font-size:14px}
}

@media(max-width:900px){
  .cols{grid-template-columns:1fr;gap:0;padding-bottom:64px}
  .side{position:static;margin-top:56px;padding-top:40px;border-top:1px solid var(--line)}
  .side-b{margin-bottom:30px}
}

@media(max-width:760px){
  body{font-size:15.5px}
  :root{--gut:18px;--head-h:62px}

  .head-in{min-height:var(--head-h);gap:12px;flex-wrap:wrap}
  .logo{font-size:18px}
  .menu-btn{display:flex;align-items:center;gap:8px;margin-left:auto;background:none;
    border:1px solid var(--line);padding:8px 13px;font:inherit;font-size:12.5px;
    letter-spacing:.08em;color:var(--ink-2);cursor:pointer;border-radius:2px}
  .menu-bars{display:block;width:16px;height:9px;border-top:1px solid currentColor;
    border-bottom:1px solid currentColor}
  .gnav{display:none;width:100%;margin:0 0 12px;order:3;flex-direction:column;
    align-items:stretch;gap:0}
  .gnav.open{display:flex}
  .gnav-list,.gnav-sub{display:block;border-top:1px solid var(--line)}
  .gnav-list li,.gnav-sub li{border-bottom:1px solid var(--line)}
  .gnav-list a,.gnav-sub a{display:block;padding:13px 2px;font-size:15px;
    text-decoration:none;color:var(--ink-2)}
  .gnav-sub a{font-size:14px;padding-left:14px;color:var(--muted)}
  .gnav-list a::after{display:none}
  .gnav-cta{margin-top:14px}
  .gnav-cta a{display:block;text-align:center;padding:13px}

  .hero{padding:56px 0 48px}
  .hero-in{padding-left:calc(var(--gut) + 18px)}
  .cols{padding-top:40px}
  .page-head{padding:28px 0 32px}
  .block{margin-top:48px}
  .block-more{margin-left:0;width:100%}

  .nextprev{grid-template-columns:1fr}
  .np-next{grid-column:1;text-align:left}

  .confirm-act{flex-direction:column-reverse}
  .confirm-act .btn{width:100%;min-width:0}
  .done-lead{font-size:17px}

  .foot-in{gap:32px;padding-bottom:32px}
  .foot-navs{gap:32px;width:100%}

  .prose th{width:auto;display:block;border-bottom:none;padding-bottom:4px}
  .prose td{display:block;padding-top:4px}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition:none!important;animation:none!important}
}

/*=========================================================
  サイドカラムの位置（管理画面の設定で切り替え）
=========================================================*/
body.side-left .cols{grid-template-columns:var(--side) minmax(0,1fr)}
body.side-left .col-main{grid-column:2;grid-row:1}
body.side-left .side{grid-column:1;grid-row:1}
body.side-none .cols{grid-template-columns:minmax(0,1fr);max-width:920px}
body.side-none .side{display:none}

@media(max-width:900px){
  body.side-left .cols{grid-template-columns:1fr}
  body.side-left .col-main,
  body.side-left .side{grid-column:1}
  body.side-left .col-main{grid-row:1}
  body.side-left .side{grid-row:2}
}

/*=========================================================
  テーマ

  色と書体だけを差し替える方式にしてあります。
  HTMLの構造は共通なので、テーマを変えても中身は壊れません。
=========================================================*/

/*--- 藍（標準）--- 初期値のまま ---*/

/*--- 墨：無彩色。硬派で上品 ---*/
body.th-sumi{
  --ink:#111111;--ink-2:#3c3c3c;--muted:#757575;
  --wash:#f4f4f2;--line:#e2e2df;--hair:#c4c4c0;
  --ai:#2b2b2b;--ai-deep:#000;--ai-soft:#ecece9;
}
body.th-sumi .hero-h,body.th-sumi .page-h{letter-spacing:.12em}
body.th-sumi .gnav-cta a{background:var(--ink)}
body.th-sumi .gnav-cta a:hover{background:#000}
body.th-sumi .prose h2{border-left-color:var(--ink)}
body.th-sumi .side-cta{background:var(--ink)}
body.th-sumi .cta-txt{color:#c9c9c6}

/*--- 若草：深緑・見出しもゴシック ---*/
body.th-wakakusa{
  --ink:#14201a;--ink-2:#3c4a42;--muted:#77857c;
  --wash:#f1f5f1;--line:#dde5de;--hair:#c2cec5;
  --ai:#2f6b4f;--ai-deep:#1f4d38;--ai-soft:#e7f0ea;
  --mincho:var(--gothic);
}
body.th-wakakusa .hero-h,body.th-wakakusa .page-h,
body.th-wakakusa .block-h,body.th-wakakusa .post-t,
body.th-wakakusa .logo,body.th-wakakusa .cta-lead,
body.th-wakakusa .foot-name,body.th-wakakusa .np b,
body.th-wakakusa .done-lead{font-weight:700;letter-spacing:.04em}
body.th-wakakusa .gnav-cta a,body.th-wakakusa .btn,
body.th-wakakusa .cta-act a{border-radius:3px}

/*--- 臙脂：和風の赤茶 ---*/
body.th-enji{
  --ink:#1f1614;--ink-2:#4a3b37;--muted:#877771;
  --wash:#f6f2ef;--line:#e7ded9;--hair:#cdbeb7;
  --ai:#8c3a3a;--ai-deep:#6d2a2a;--ai-soft:#f4e9e7;
}
body.th-enji .hero-h,body.th-enji .page-h{letter-spacing:.1em}
body.th-enji .hero{background:linear-gradient(180deg,#f6f2ef 0%,#f1ebe6 100%)}

/*--- 群青：明るい青・角丸 ---*/
body.th-gunjo{
  --ink:#14203a;--ink-2:#3d4a63;--muted:#7b859b;
  --wash:#eef2f7;--line:#dde3ec;--hair:#c3ccda;
  --ai:#2563a8;--ai-deep:#1a4a80;--ai-soft:#e6eef8;
  --mincho:var(--gothic);
}
body.th-gunjo .hero-h,body.th-gunjo .page-h,
body.th-gunjo .block-h,body.th-gunjo .post-t,
body.th-gunjo .logo,body.th-gunjo .cta-lead,
body.th-gunjo .foot-name,body.th-gunjo .np b,
body.th-gunjo .done-lead{font-weight:700;letter-spacing:.02em}
body.th-gunjo .btn,body.th-gunjo .gnav-cta a,body.th-gunjo .cta-act a,
body.th-gunjo .side-cta,body.th-gunjo .pager a,body.th-gunjo .pager .pg-on,
body.th-gunjo .taglist a,body.th-gunjo .cf input,body.th-gunjo .cf textarea,
body.th-gunjo .sform{border-radius:6px}
body.th-gunjo .sform{overflow:hidden}
body.th-gunjo .prose h2{border-left-width:4px;border-radius:2px}
body.th-gunjo .nextprev,body.th-gunjo .np{border-radius:6px}
