/*[トークン:ここから]*/
:root{

  --navy-900:#0a192f; --navy-800:#0d2340; --navy-700:#142c4f;
  --gold-400:#c5a880; --gold-500:#b6975f; --gold-600:#a68538; --gold-050:#fdf8ec;
  --paper-50:#fbf8f1; --paper-100:#f5f0e3;
  --ink-900:#15110d; --ink-700:#2c2620; --ink-500:#5b544a; --ink-400:#7a7263;
  --line:#ded7c6;

  --font-sans:"BIZ UDPGothic","BIZ UDGothic","Hiragino Kaku Gothic ProN","Meiryo",sans-serif;
  --font-mincho:"Noto Serif JP",serif;

  --fs-1:10.7px;
  --fs-2:12px;
  --fs-3:13.5px;
  --fs-4:15.1px;
  --fs-5:17px;
  --fs-6:19.1px;
  --fs-7:21.4px;
  --fs-8:24px;
  --fs-9:27px;
  --fs-10:30.3px;
  --fs-11:34px;
  --fs-12:38.2px;
  --fs-13:42.8px;
  --fs-14:48.1px;
  --fs-15:54px;
  --fs-16:60.6px;
  --fs-17:68px;
  --fs-18:76.3px;

  --fs-19:85.7px;
  --fs-20:96.1px;
  --fs-21:107.9px;
  --fs-22:121.1px;

  --lh-tight:1.36;
  --lh-head:1.45;
  --lh-mid:1.55;
  --lh-base:1.9;

  --sp-1:4px;   --sp-2:8px;   --sp-3:12px;  --sp-4:16px;  --sp-5:24px;
  --sp-6:32px;  --sp-7:48px;  --sp-8:64px;  --sp-9:96px;  --sp-10:128px;

  --r-s:2px; --r-m:6px; --r-l:14px; --r-full:999px;

  --sh-1:0 1px 0 var(--line);
  --sh-2:0 6px 24px rgba(21,17,13,.07);
  --sh-3:0 18px 48px rgba(21,17,13,.10);

  --ease:cubic-bezier(.22,.61,.36,1);
  --dur-answer:.25s;
  --dur-switch:.3s;
  --dur-appear:.8s;

  --ou-depth:5px;
  --ou-emboss:0 1px 0 rgba(255,255,255,.72);
  --ou-card-a:#fffdf6; --ou-card-b:#efe7d2;
  --ou-pale-a:#fffefb; --ou-pale-b:#ebe1c7; --ou-pale-edge:#c9bd9d;
  --ou-gold-a:#c8a24e; --ou-gold-b:#8f7027; --ou-gold-edge:#57420f; --ou-gold-ink:#241a05;
  --ou-sh-card:0 2px 3px rgba(21,17,13,.08),0 14px 34px rgba(21,17,13,.14),inset 0 -2px 4px rgba(21,17,13,.05);
  --ou-sh-card-hover:0 3px 6px rgba(21,17,13,.10),0 22px 54px rgba(21,17,13,.20),inset 0 -2px 4px rgba(21,17,13,.05);

  --ease-app:cubic-bezier(.32,.72,.32,1);
  --d-press:70ms; --d-fast:140ms; --d-base:240ms;

  --r-app:10px; --r-app-lg:12px;

  --lum-core:#ffd166;
  --lum-flow:#34d399;
  --lum-orbit:#3b82f6;
  --lum-alert:#f87171;
  --viz-1:#2a78d6; --viz-2:#eda100; --viz-3:#4a3aa7; --viz-4:#1baf7a;
  --matsuba-500:#4a5d3a; --shu:#b03a2e;
  --gauge-ink-0:#0b1020; --gauge-ink-1:#141a2e; --gauge-ink-2:#1e2742;

  --lh-disp:1.06;
  --ls-disp:-.022em;
  --ls-lead:.005em;

  --w-narrow:760px; --w-base:1120px; --w-wide:1280px;

  --bg:var(--paper-50);
  --bg-tint:var(--paper-100);
  --fg:var(--ink-900);
  --fg-mid:var(--ink-700);
  --fg-sub:var(--ink-500);
  --fg-weak:var(--ink-400);
  --rule:var(--line);
  --accent:var(--gold-600);
  --accent-soft:var(--gold-400);
  --card:#fff;
}

@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#100f0d;
    --bg-tint:#17150f;
    --fg:#f3efe6;
    --fg-mid:rgba(243,239,230,.86);
    --fg-sub:rgba(243,239,230,.66);
    --fg-weak:rgba(243,239,230,.5);
    --rule:#332e25;
    --accent:#d0b784;
    --accent-soft:#c5a880;
    --card:#191712;
  }
}
:root[data-theme="dark"]{
  --bg:#100f0d;
  --bg-tint:#17150f;
  --fg:#f3efe6;
  --fg-mid:rgba(243,239,230,.86);
  --fg-sub:rgba(243,239,230,.66);
  --fg-weak:rgba(243,239,230,.5);
  --rule:#332e25;
  --accent:#d0b784;
  --accent-soft:#c5a880;
  --card:#191712;
}
/*[トークン:ここまで]*/

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body.office{
  margin:0;background:var(--bg);color:var(--fg);
  font-family:var(--font-sans);font-weight:400;
  font-size:var(--fs-5);line-height:var(--lh-base);
  text-size-adjust:100%;-webkit-text-size-adjust:100%;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
.maku{max-width:var(--w-base);margin:0 auto}
.yomi{max-width:var(--w-narrow);margin-left:auto;margin-right:auto}

.head{background:var(--card);border-bottom:1px solid var(--rule)}
.head .maku{display:grid;grid-template-columns:1fr auto;grid-template-areas:"brand tel" "menu menu";align-items:center;gap:var(--sp-3) var(--sp-6);padding:var(--sp-5) var(--sp-5) 0}
.head .brand{grid-area:brand;text-decoration:none;color:var(--fg);display:flex;flex-direction:column;gap:var(--sp-1)}
.head .brand-sub{font-size:var(--fs-2);letter-spacing:.08em;color:var(--fg-sub)}
.head .brand-name{font-family:var(--font-mincho);font-weight:700;font-size:clamp(var(--fs-8),2.6vw,var(--fs-10));line-height:var(--lh-head);letter-spacing:.02em}
.head .head-tel{grid-area:tel;text-align:right;line-height:1.5}
.head .head-tel a{display:block;font-family:var(--font-mincho);font-weight:700;font-size:var(--fs-8);color:var(--fg);text-decoration:none;letter-spacing:.04em}
.head .head-tel span{font-size:var(--fs-2);color:var(--fg-sub)}
.head .menu{grid-area:menu;display:flex;gap:0;flex-wrap:wrap;border-top:1px solid var(--rule);margin-top:var(--sp-2)}
.head .menu a{
  color:var(--fg-mid);text-decoration:none;white-space:nowrap;
  font-size:var(--fs-4);padding:var(--sp-3) var(--sp-4);
  border-bottom:3px solid transparent;transition:color var(--d-fast) var(--ease-app),border-color var(--d-fast) var(--ease-app);
}
.head .menu a:hover{color:var(--fg);border-bottom-color:var(--accent-soft)}
.head .menu a[aria-current="page"]{color:var(--fg);font-weight:700;border-bottom-color:var(--accent)}
@media (max-width:720px){
  .head .maku{grid-template-columns:1fr;grid-template-areas:"brand" "tel" "menu";gap:var(--sp-2);padding:var(--sp-4) var(--sp-4) 0}
  .head .head-tel{text-align:left}
  .head .head-tel a{display:inline;margin-right:var(--sp-3);font-size:var(--fs-6)}
  .head .menu a{font-size:var(--fs-3);padding:var(--sp-2) var(--sp-3)}
}

section{padding:var(--sp-9) var(--sp-5)}
@media (max-width:720px){
  section{padding:var(--sp-7) var(--sp-4)}
}
.hero{padding-top:var(--sp-8);padding-bottom:var(--sp-7);background:var(--bg-tint);border-bottom:1px solid var(--rule)}
.dark{background:var(--navy-900);color:rgba(243,239,230,.86)}
.dark h1{color:var(--paper-50)}
.dark .lead{color:rgba(243,239,230,.86)}
.dark a{color:var(--paper-50);text-decoration:none;border-bottom:1px solid var(--gold-400)}
.crumb{font-size:var(--fs-2);letter-spacing:.28em;color:var(--accent);margin:0 0 var(--sp-4);font-weight:500}
.crumb a{border-bottom:0}
.kai{font-size:var(--fs-3);letter-spacing:.2em;color:var(--accent);margin:0 0 var(--sp-3)}
.sub{font-size:var(--fs-4);letter-spacing:.08em;color:var(--accent);margin:0 0 var(--sp-5);font-family:var(--font-mincho)}
.date{font-size:var(--fs-3);color:var(--fg-sub);margin:0}
h1{
  font-family:var(--font-mincho);font-weight:700;color:var(--fg);
  font-size:clamp(var(--fs-9),4vw,var(--fs-12));
  line-height:var(--lh-head);letter-spacing:var(--ls-disp);
  margin:0 0 var(--sp-6);
}
h2{
  font-family:var(--font-mincho);font-weight:600;color:var(--fg);
  font-size:clamp(var(--fs-8),3vw,var(--fs-11));
  line-height:var(--lh-head);letter-spacing:.005em;
  margin:var(--sp-8) 0 var(--sp-5);
}
h2::before{
  content:"";display:block;width:44px;height:3px;
  background:var(--accent);border-radius:var(--r-full);margin-bottom:var(--sp-4);
}
h3{
  font-family:var(--font-mincho);font-weight:600;color:var(--fg);
  font-size:clamp(var(--fs-6),2.4vw,var(--fs-8));
  line-height:var(--lh-head);margin:var(--sp-7) 0 var(--sp-4);
}
.honbun h2:first-child,.honbun h3:first-child{margin-top:0}
p{margin:0 0 var(--sp-5)}
.hero .lead{color:var(--fg-mid)}
.lead{font-size:clamp(var(--fs-5),2vw,var(--fs-7));line-height:var(--lh-mid);letter-spacing:var(--ls-lead);margin:0 0 var(--sp-4)}
.honbun{padding-top:var(--sp-8)}
.honbun p{font-size:var(--fs-5);line-height:var(--lh-base)}
.honbun p.tate{font-family:var(--font-mincho);font-weight:600;padding-left:var(--sp-5);border-left:2px solid var(--accent-soft)}
.honbun a{color:var(--fg);text-decoration:none;border-bottom:1px solid var(--gold-500);padding-bottom:1px;transition:border-color var(--d-fast) var(--ease-app)}
.honbun a:hover{border-bottom-color:var(--fg)}

figure.zu{margin:var(--sp-6) 0 var(--sp-7)}
figure.zu img{
  width:100%;border:1px solid var(--rule);border-radius:var(--r-app);
  box-shadow:var(--ou-sh-card);background:var(--card);
}
figure.zu3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4)}
@media (max-width:720px){figure.zu3{grid-template-columns:1fr}}

.sign{
  margin:var(--sp-8) 0 0;padding:var(--sp-6);
  background:linear-gradient(180deg,var(--ou-card-a),var(--ou-card-b));
  border:1px solid var(--rule);border-radius:var(--r-app);box-shadow:var(--ou-sh-card);
  display:grid;grid-template-columns:160px 1fr;gap:var(--sp-6);align-items:start;
}
.sign .portrait{width:160px;height:160px;border-radius:var(--r-full);border:1px solid var(--rule);object-fit:cover}
.sign p{font-size:var(--fs-4);line-height:1.85;margin:0}
@media (max-width:720px){
  .sign{grid-template-columns:1fr}
  .sign .portrait{width:120px;height:120px}
}

table.renraku{border-collapse:collapse;width:100%;table-layout:fixed;margin:var(--sp-6) 0 0;font-size:var(--fs-4);background:var(--card);border:1px solid var(--rule);border-radius:var(--r-app);overflow:hidden}
table.renraku th,table.renraku td{padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--rule);text-align:left;vertical-align:top;overflow-wrap:anywhere}
table.renraku tr:first-child th,table.renraku tr:first-child td{border-top:0}
table.renraku th{width:9.5em;background:var(--bg-tint);font-weight:500;color:var(--fg-sub)}
@media (max-width:720px){table.renraku th{width:6.5em}}
table.renraku a{color:var(--fg);text-decoration:none;border-bottom:1px solid var(--gold-500)}

.chu{background:var(--bg-tint);border-top:1px solid var(--rule);padding:var(--sp-7) var(--sp-5)}
.chu h2{font-size:var(--fs-6);font-family:var(--font-sans);font-weight:700;margin-top:0}
.chu h2::before{display:none}
.chu p{font-size:var(--fs-2);color:var(--fg-sub);line-height:1.8;margin:0 0 var(--sp-3)}

.chakuchi{background:var(--gold-050);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:var(--sp-8) var(--sp-5)}
.chakuchi .yomi{text-align:center}
.chakuchi .note{font-size:var(--fs-3);color:var(--fg-sub);margin:var(--sp-4) 0 0}
.btn{
  display:inline-block;text-decoration:none;
  font-family:var(--font-sans);font-weight:700;font-size:var(--fs-6);
  color:var(--ou-gold-ink);padding:var(--sp-4) var(--sp-8);
  background:linear-gradient(180deg,var(--ou-gold-a),var(--ou-gold-b));
  border:1px solid var(--ou-gold-edge);border-radius:var(--r-full);
  box-shadow:0 var(--ou-depth) 0 var(--ou-gold-edge),var(--sh-2),var(--ou-emboss) inset;
  transition:transform var(--d-press) var(--ease-app),box-shadow var(--d-press) var(--ease-app);
}
.btn:hover{box-shadow:0 var(--ou-depth) 0 var(--ou-gold-edge),var(--sh-3),var(--ou-emboss) inset}
.btn:active{transform:translateY(3px);box-shadow:0 2px 0 var(--ou-gold-edge),var(--sh-1),var(--ou-emboss) inset}

.foot{background:var(--navy-900);color:rgba(243,239,230,.66);font-size:var(--fs-2);padding:var(--sp-7) var(--sp-5);text-align:center}
.foot p{margin:0 0 var(--sp-3)}
.foot a{color:var(--gold-400);margin:0 var(--sp-3);text-decoration:none}
.foot a:hover{color:var(--paper-50)}

.rensai-toc ol.rensai-list{list-style:none;margin:0;padding:0}
.rensai-toc ol.rensai-list li{margin:0 0 var(--sp-3)}
.rensai-toc ol.rensai-list a{
  display:grid;grid-template-columns:5.5em 1fr auto;gap:var(--sp-4);align-items:baseline;
  padding:var(--sp-4) var(--sp-5);text-decoration:none;color:var(--fg);
  background:var(--card);border:1px solid var(--rule);border-radius:var(--r-app);box-shadow:var(--sh-1);
  transition:box-shadow var(--d-fast) var(--ease-app),transform var(--d-fast) var(--ease-app);
}
.rensai-toc ol.rensai-list a:hover{box-shadow:var(--ou-sh-card);transform:translateY(-1px)}
.rensai-toc .kai{color:var(--accent);font-size:var(--fs-3);letter-spacing:.1em;margin:0}
.rensai-toc .ttl{font-family:var(--font-mincho);font-weight:600;font-size:var(--fs-5)}
.rensai-toc time{font-size:var(--fs-2);color:var(--fg-sub);white-space:nowrap}
@media (max-width:720px){
  .rensai-toc ol.rensai-list a{grid-template-columns:1fr;gap:var(--sp-1)}
}

.rensai .mokuji{margin:0 0 var(--sp-7);padding:var(--sp-5) var(--sp-6);background:var(--bg-tint);border:1px solid var(--rule);border-radius:var(--r-app)}
.rensai .mokuji ol{margin:0;padding-left:1.4em}
.rensai .mokuji li{font-size:var(--fs-4);line-height:1.8}
.rensai .mokuji a{color:var(--fg);text-decoration:none;border-bottom:1px solid var(--gold-500)}
.rensai .body h2{font-size:clamp(var(--fs-7),2.6vw,var(--fs-9))}
.rensai .body p{font-size:var(--fs-5);line-height:var(--lh-base)}
.rensai .pn{display:grid;gap:var(--sp-3);margin:var(--sp-8) 0 0;padding-top:var(--sp-6);border-top:1px solid var(--rule)}
.rensai .pn a{
  display:block;padding:var(--sp-4) var(--sp-5);text-decoration:none;color:var(--fg);
  background:var(--card);border:1px solid var(--rule);border-radius:var(--r-app);font-size:var(--fs-4);
}
.rensai .pn a:hover{box-shadow:var(--ou-sh-card)}
.rensai .pn a.up{text-align:center;color:var(--accent);background:transparent}

h4{font-family:var(--font-mincho);font-weight:600;color:var(--fg);font-size:clamp(var(--fs-5),2vw,var(--fs-7));line-height:var(--lh-head);margin:var(--sp-6) 0 var(--sp-3)}
.btns{display:flex;flex-wrap:wrap;gap:var(--sp-4);margin:var(--sp-5) 0 0}
.chakuchi .btns{justify-content:center}
.btn2{color:var(--fg);background:linear-gradient(180deg,var(--ou-pale-a),var(--ou-pale-b));border-color:var(--ou-pale-edge);box-shadow:0 var(--ou-depth) 0 var(--ou-pale-edge),var(--sh-2),var(--ou-emboss) inset}
.btn2:hover{box-shadow:0 var(--ou-depth) 0 var(--ou-pale-edge),var(--sh-3),var(--ou-emboss) inset}
.btn2:active{box-shadow:0 2px 0 var(--ou-pale-edge),var(--sh-1),var(--ou-emboss) inset}
.chakuchi-lead{font-size:var(--fs-4);color:var(--fg-mid);margin:0 0 var(--sp-2)}
.gaiyo-wrap{display:grid;grid-template-columns:180px 1fr;gap:var(--sp-6);align-items:start;margin:var(--sp-5) 0 0}
.gaiyo-wrap .portrait{width:180px;height:180px;border-radius:var(--r-app);border:1px solid var(--rule);object-fit:cover;background:var(--card)}
.gaiyo-wrap table.renraku{margin:0}
@media (max-width:720px){.gaiyo-wrap{grid-template-columns:1fr}.gaiyo-wrap .portrait{width:140px;height:140px}}
.sign{grid-template-columns:1fr}

/*[土台:ここから]*/
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:2px solid var(--accent);
  outline-offset:2px;
  border-radius:var(--r-s);
}

.dark :where(a,button,summary,[tabindex]):focus-visible{
  outline-color:var(--gold-400);
}

.skip{position:absolute;left:-9999px;top:0;z-index:200;
      background:var(--ink-900);color:var(--paper-50);
      padding:var(--sp-3) var(--sp-5);text-decoration:none;font-weight:700}
.skip:focus{left:var(--sp-3);top:var(--sp-3)}

@media print{
  :root{--bg:#fff;--bg-tint:#fff;--fg:#000;--fg-mid:#222;--fg-sub:#444;
        --rule:#999;--card:#fff;--accent:#666}
  html{scroll-behavior:auto}
  body{background:#fff;color:#000;padding-top:0;font-size:11pt;line-height:1.7}
  .head-fix,.bar,.menu,.skip,.cta,.cta2,nav,footer .sns,.rise-only{display:none !important}
  section{padding:12pt 0;break-inside:auto}
  h1,h2,h3{break-after:avoid;color:#000}
  .card,.zu,figure,table{break-inside:avoid}
  .dark,.tint,.light{background:#fff !important;color:#000 !important}
  .dark h1,.dark h2,.dark h3,.dark p,.dark .lead{color:#000 !important}
  img{max-width:100% !important}
  .js .rise{opacity:1 !important;transform:none !important}
  a[href^="http"]::after{content:" （" attr(href) "）";font-size:9pt;color:#555;word-break:break-all}
  a[href^="#"]::after,a[href^="mailto"]::after,a[href^="tel"]::after{content:""}
  @page{margin:16mm}
}
/*[土台:ここまで]*/
