:root{
  --ink:#241a19;
  --ink-soft:#54423f;
  --paper:#fbf6ec;
  --paper-2:#f4ebda;
  --crimson:#6d0f1c;
  --crimson-dark:#4a0a13;
  --gold:#a8842c;
  --gold-bright:#c9a227;
  --rule:#e0d3ba;
  --max:1180px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Noto Sans JP",-apple-system,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  font-size:17px;
  line-height:1.95;
  font-feature-settings:"palt" 1;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--crimson);text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{color:var(--gold);}
.skip{position:absolute;left:-9999px}
.skip:focus{left:1rem;top:1rem;z-index:99;background:var(--crimson);color:#fff;padding:.6rem 1rem}

/* masthead */
.masthead{background:var(--crimson);border-bottom:3px solid var(--gold);position:static}
.masthead__inner{max-width:var(--max);margin:0 auto;padding:1.1rem 1.5rem 0;min-width:0}
.brand{margin:0 0 .8rem}
.brand a{display:block;text-decoration:none;color:#fff}
.brand__mark{display:block;width:56px;height:3px;background:var(--gold-bright);margin-bottom:.7rem}
.brand__name{display:block;font-family:"Noto Serif JP",serif;font-weight:700;font-size:1.5rem;letter-spacing:.06em;line-height:1.4}
.brand__tag{display:block;font-size:.78rem;color:#e7cfa4;letter-spacing:.12em;margin-top:.15rem}
.nav{min-width:0}
.nav__list{
  display:flex;flex-wrap:wrap;gap:0 1.6rem;
  list-style:none;margin:0;padding:0;min-width:0;
}
.nav__list li{min-width:0;flex-shrink:1}
.nav__list a{
  display:inline-block;padding:.55rem 0;color:#f0dcc0;text-decoration:none;
  font-size:.9rem;letter-spacing:.06em;border-bottom:2px solid transparent;
}
.nav__list a:hover,.nav__list a:focus{color:#fff;border-bottom-color:var(--gold-bright)}
.nav__list a.is-current{color:#fff;border-bottom-color:var(--gold-bright)}

/* body */
.wrap{max-width:var(--max);margin:0 auto;padding:0 1.5rem 4rem}
.crumbs{font-size:.78rem;color:var(--ink-soft);padding:1.2rem 0 .2rem;letter-spacing:.04em}
.crumbs a{color:var(--ink-soft)}
.crumbs__sep{margin:0 .5rem;color:var(--rule)}
.crumbs__here{color:var(--ink)}
.hero{margin:1.2rem 0 0;border-top:3px solid var(--crimson);border-bottom:1px solid var(--rule);background:var(--paper-2)}
.hero img{width:100%}
.layout{display:grid;grid-template-columns:minmax(0,1fr);gap:2.5rem;margin-top:2.4rem}
@media (min-width:62rem){
  .layout{grid-template-columns:minmax(0,1fr) 15rem;gap:3.5rem}
}
.prose{min-width:0;max-width:44rem}
.prose h1{
  font-family:"Noto Serif JP",serif;font-weight:700;font-size:clamp(1.6rem,1.1rem + 1.9vw,2.3rem);
  line-height:1.45;margin:0 0 1.6rem;padding-bottom:.9rem;border-bottom:2px solid var(--crimson);letter-spacing:.02em;
}
.prose h2{
  font-family:"Noto Serif JP",serif;font-weight:700;font-size:1.24rem;line-height:1.6;
  margin:3rem 0 1rem;padding-left:.85rem;border-left:4px solid var(--gold);letter-spacing:.03em;
}
.prose h3{font-family:"Noto Serif JP",serif;font-size:1.05rem;margin:2.2rem 0 .7rem;color:var(--crimson-dark)}
.prose p{margin:0 0 1.5rem}
.prose ul{margin:0 0 1.6rem;padding-left:1.3rem}
.prose ul li{margin-bottom:.7rem}
.prose ul li::marker{color:var(--gold)}
.prose strong{font-weight:700;color:var(--crimson-dark)}
.notice{
  background:var(--paper-2);border-left:4px solid var(--gold);
  padding:1.1rem 1.3rem;margin:0 0 2rem;font-size:.93rem;
}
.notice p{margin:0}
.notice--strong{border-left-color:var(--crimson)}
.glossary{margin:0 0 2rem;padding:0}
.glossary dt{font-weight:700;color:var(--crimson-dark);margin-top:1.2rem;font-size:.98rem}
.glossary dd{margin:.2rem 0 0;padding-left:0;color:var(--ink-soft);font-size:.95rem}

/* rail */
.rail{min-width:0;font-size:.9rem;border-top:2px solid var(--crimson);padding-top:1rem;align-self:start}
.rail__h{font-family:"Noto Serif JP",serif;font-size:.9rem;letter-spacing:.1em;margin:0 0 .8rem;color:var(--crimson-dark)}
.rail__list{list-style:none;margin:0;padding:0}
.rail__list li{border-bottom:1px solid var(--rule)}
.rail__list a{display:block;padding:.7rem 0;text-decoration:none;line-height:1.6}
.rail__list a:hover{text-decoration:underline}

/* footer */
.foot{background:var(--crimson-dark);color:#e6d6bd;margin-top:3rem;border-top:3px solid var(--gold)}
.foot__inner{max-width:var(--max);margin:0 auto;padding:2.4rem 1.5rem 3rem;min-width:0}
.foot__nav ul{display:flex;flex-wrap:wrap;gap:.4rem 1.5rem;list-style:none;margin:0 0 1.6rem;padding:0;min-width:0}
.foot__nav a{color:#e6d6bd;text-decoration:none;font-size:.85rem}
.foot__nav a:hover{color:#fff;text-decoration:underline}
.foot__disclaimer{
  font-size:.8rem;line-height:1.9;color:#c9b393;margin:0 0 1.2rem;
  padding-top:1.2rem;border-top:1px solid rgba(201,162,39,.35);max-width:52rem;
}
.foot__meta{font-size:.75rem;color:#9c866a;margin:0;letter-spacing:.08em}
@media (max-width:40rem){
  body{font-size:16px;line-height:1.9}
  .wrap{padding:0 1.15rem 3rem}
  .masthead__inner{padding:1rem 1.15rem 0}
  .foot__inner{padding:2rem 1.15rem 2.5rem}
  .nav__list{gap:0 1.1rem}
}
