@charset "UTF-8";
body {
  margin: 0;
  padding: 0;
}
main, header, footer, nav, aside, section, article {
  display: block;
}
* {
  box-sizing: border-box;
}
/* === abbr , acronym === */
abbr, acronym {
  color: inherit;
  font-style: normal;
  border-color: #333;
  border-style: dotted;
  border-width: 0 0 1px;
  cursor: help;
}
/* === code === */
code {
  font-family: "monospace";
  /* 等幅を出す */
}
/* === kbd === */
kbd {
  font-family: "monospace";
  margin: 0 0.1em;
  padding: 0 2px;
  border-style: solid;
  border-width: 1px;
  display: inline;
}
/* === explanation === */
span.explanation {
  border-color: #333;
  border-style: dotted;
  border-width: 0 0 1px;
  cursor: help;
}
/* === clear , hidden === */
.nd, .nodisplay {
  display: none;
}
.hd, .hidden {
  visibility: hidden;
}
.hl, .hiddenlink, .hiddenmessage, .forscreenreader, .skip {
  position: absolute;
  left: -9000px;
}
.div, .clear {
  clear: both;
}
.nc, .noclear {
  clear: none !important;
}
hr.div, br.div {
  clear: both;
  visibility: hidden;
  margin: 0;
  padding: 0;
}
/* === clearfix === */
.clearfix:after {
  content: "";
  display: block;
  clear: both;
  height: 0;
}
/* === ul , ol (.nlm) === */
ul.nlm, ol.nlm {
  list-style-image: none !important;
  list-style: none;
  padding: 0;
  margin-left: 0;
  margin-right: 0;
}
ul.nlm li, ol.nlm li {
  padding: 0;
  margin: 0;
}
/* === ul,ol (.cmt) === */
ul.cmt, ol.cmt {
  color: #111;
  background-color: #f8f8f8;
  border: 1px #bbb solid;
  margin: 10px 0;
  padding: 8px 0 5px 40px;
}
/* === dl.cmt === */
dl.cmt {
  color: #111;
  background-color: #fff;
  margin: 0 0 15px;
  padding: 0 15px;
  border-bottom: #bbb 1px solid;
  border-left: #bbb 1px solid;
  border-right: #bbb 1px solid;
  width: auto;
}
dl.cmt dt {
  line-height: 100%;
  position: relative;
  color: #111;
  background-color: #f8f8f8;
  margin: 0 -15px;
  padding: 10px 10px;
  border-top: #bbb 1px solid;
  border-bottom: #bbb 1px dotted;
}
* > dl.cmt dt {
  margin: 0 -15px -5px;
}
dl.cmt dd {
  position: relative;
  margin: 0 -15px 0;
  padding: 10px 10px 5px;
}
dl.cmt dd * {
  margin-top: 0;
  margin-bottom: 0;
}
/* === p , div , pre , ul , ol (.cmt) === */
pre.cmt, pre.cmt2, div.cmt, p.cmt {
  color: #111;
  background-color: #f8f8f8;
  margin: 0 0 15px;
  padding: 7px 15px;
  border: 1px #bbb solid;
  width: auto;
}
div.cmt {
  padding: 8px 15px;
}
div.cmt * {
  margin-top: 0;
  margin-bottom: 0;
}
div.cmt ul, div.cmt ol {
  padding: 0;
  margin-left: 25px;
  margin-right: 0;
}
div.cmt ul.il, div.cmt ol.il {
  margin-left: 0;
}
pre.cmt {
  overflow: auto;
}
pre.cmt2 {
  white-space: pre-line;
}
/* === cite === */
cite.jp, cite.ja {
  font-style: normal;
}
cite.en, span.en {
  font-style: italic;
}
cite[lang$="ja"] {
  font-style: normal;
}
cite[lang$="en"], cite.foreign {
  font-style: italic;
}
/* === pre.pre === */
pre.pre {
  border: 1px #bbb solid;
  padding: 5px;
  background-color: #fefefe;
  width: 95%;
}
/* === blockquote === */
blockquote.blockquote {
  border: 1px #bbb dashed;
  padding: 0 10px;
  margin: 10px 0;
  background-color: #fefefe;
  width: 95%;
}
/* === forms - bttns === */
/*
 */
.frm input[type="text"], .frm input[type="password"], .frm input[type="number"], .frm input[type="tel"], .frm input[type="email"], .frm input[type="url"], .frm input[type="date"], .frm input[type="time"], .frm input[type="week"], .frm input[type="month"], .frm input[type="datetime-local"], .frm input[type="search"], .frm textarea {
  padding: 5px;
  font-size: 110%;
  vertical-align: middle;
}
.frm select {
  border: 1px #999 solid;
  font-size: 100%;
}
input.bttn, a.bttn {
  box-sizing: border-box;
  font-family: sans-serif;
  padding: 5px 15px;
  margin: 0 5px 0 0;
  background-color: #eee;
  border: 1px solid #999;
  color: #222;
  line-height: 1.5em;
  font-size: 110%;
  border-radius: 4px;
  text-decoration: none;
  font-weight: normal;
  display: inline-block;
  cursor: pointer;
  vertical-align: middle;
}
input.bttn:hover, input.bttn:focus, a.bttn:hover, a.bttn:focus {
  border: 1px solid #111;
}
input.bttn:active, a.bttn:active {
  border-width: 2px;
  padding: 4px 14px;
}
/* === forms - mainbttn === */
input.bttn.main, input.bttn.primary, a.bttn.main, a.bttn.primary {
  font-weight: bold;
  border: 1px solid #ccc;
  background-color: #007acb;
  color: #fff;
}
input.bttn.main:hover, input.bttn.primary:hover, input.bttn.main:focus, input.bttn.primary:focus, a.bttn.main:hover, a.bttn.primary:hover, a.bttn.main:focus a.bttn.primary:focus {
  border: 1px solid #007acb;
  background-color: #fff;
  color: #007acb;
}
input.bttn.main:active, a.bttn.main:active {
  border: 2px solid #007acb;
}
.textarea, .wide {
  width: 95%;
  height: 12em;
}
.textarea.src {
  line-height: 1.6;
  font-family: monospace;
  background-color: #fafafa;
  white-space: pre;
}
form em.exp, form em.explanation {
  font-size: 90%;
  display: block;
}
/* === form - label of checkboxes and radio === */
.label_fb label, label.label_fb {
  display: inline-block;
  white-space: nowrap;
  padding: 3px 3px 3px 2px;
  margin-right: 5px;
}
.label_fb label:hover, label.label_fb:hover {
  background-color: #e8e8e8;
}
.disabled label, label.disabled {
  opacity: 0.5;
}
.disabled label:hover, label.disabled:hover {
  background-color: transparent !important;
}
/* === .tbl === */
.tbl {
  margin: 5px 0 10px !important;
  box-sizing: border-box;
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0px;
  border-top: 1px #bbb solid;
  border-left: 1px #bbb solid;
}
.tbl th, .tbl td {
  text-align: left;
  padding: 8px 10px;
  border-bottom: 1px #bbb solid;
  border-right: 1px #bbb solid;
}
.tbl th {
  text-align: left;
  background-color: #f8f8f8;
  white-space: nowrap;
  font-weight: bold;
  color: #111;
}
.tbl thead th {
  background-color: #eee;
  color: #111;
}
.tbl th > *:first-child, .tbl td > *:first-child {
  margin-top: 0;
}
.tbl th > *:last-child, .tbl td > *:last-child {
  margin-bottom: 0;
}
.tbl ul, .tbl ol {
  padding: 0;
  margin-left: 25px;
  margin-right: 0;
}
/* === tabl.tbl1 === */
.tbl1 {
  border-spacing: 0px;
  box-sizing: border-box;
  width: 100%;
  border-collapse: collapse;
  border-top: 1px #bbb solid;
  border-left: none;
}
.tbl1 th, .tbl1 td {
  text-align: left;
  padding: 8px 10px;
  border-bottom: 1px #bbb solid;
  border-right: none;
}
.tbl1 thead th {
  color: #111;
  background-color: #ded9d1;
}
.tbl1 th {
  color: #111;
  background-color: #eee;
}
.tbl1 td {
  color: #111;
  background-color: #fff;
}
/* === .tbl2 === */
.tbl2 {
  box-sizing: border-box;
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0px;
  width: 100%;
  background-color: #fff;
}
.tbl2 th, .tbl2 td {
  text-align: left;
  padding: 8px 10px;
}
.tbl2 thead th {
  color: #111;
  background: #e8e8e0;
  font-weight: bold;
  border-top: 1px #ccc solid;
  border-bottom: 1px #ccc solid;
}
.tbl2 tr:nth-child(even), .tbl2.even tr:nth-child(even) {
  background: #f4f4ea;
}
.tbl2 tr:nth-child(odd), .tbl2.even tr:nth-child(odd) {
  background: #fff;
}
.tbl2.odd tr:nth-child(odd) {
  background: #fff;
}
.tbl2.odd tr:nth-child(even) {
  background: #f4f4ea;
}
.tbl2 th {
  font-weight: normal;
  color: #111;
}
.tbl2 td {
  color: #111;
}
/* === table.list === */
table.list th, table.list td {
  padding: 5px 3px 0 0;
}
table.list th {
  white-space: nowrap;
  vertical-align: top;
  font-weight: normal !important;
}
/* === a.lb img === */
.lb img {
  border: 1px #eee solid;
}
.lb:hover img {
  border: 1px #58b dashed;
}
/* === align right (.cite , .sig , .cf) === */
.cite, .sig, .cf {
  text-align: right;
  list-style: none;
  clear: both;
}
/* === span.subtitle === */
span.subtitle {
  font-size: 90%;
  font-weight: normal;
}
/* === span.date === */
span.date {
  font-size: 85%;
  color: #555;
}
body {
  font-family: "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
  font-family: "Noto Sans JP", sans-serif;
  font-family: "Murecho", sans-serif;
}
cite.en, span.en {
  font-style: normal;
  font-size: 85%;
}
/*
 * body ----------------------------------------------------------------------------------
 */
body {
  font-size: 16px;
}
body a {
  color: #ED8C72;
}
body > header {
  position: relative;
  width: 100vw;
  padding: 0 5vw;
  padding-left: 5vw;
  padding-right: 5vw;
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-shadow: 0 0 10px #000;
}
@media screen and (min-width: 1120px) {
  body > header {
    padding-left: calc(50vw - (1120px / 2 - 20px));
    padding-right: calc(50vw - (1120px / 2 - 20px));
    max-width: 100vw;
    margin-left: 0;
    margin-right: 0;
  }
}
body > header h1#site_title, body > header p#site_title a {
  margin: 10px auto;
  height: 68px;
  font-size: 12px;
  position: relative;
  padding-left: 56px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  color: #000;
  font-weight: bold;
  text-decoration: none;
  margin: 10px 0;
}
body > header h1#site_title span, body > header p#site_title a span {
  display: block;
}
body > header h1#site_title img, body > header p#site_title a img {
  position: absolute;
  top: 0;
  left: 0;
}
body > header h1#site_title a, body > header p#site_title a a {
  display: inline-block;
  width: 100%;
  height: 100%;
  font-size: 2rem;
  font-weight: bold;
}
body > header h1#site_title img, body > header p#site_title a img {
  height: 100%;
  width: auto;
}
body > header p#site_title {
  margin: 0;
}
body > header p#site_title a:hover {
  text-decoration: underline;
}
body > header #menu_open_checkbox {
  display: none;
}
body > header .menu-open {
  position: relative;
  width: 50px;
  height: 50px;
}
body > header .menu-open label {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
}
body > header .menu-open label span {
  display: block;
  width: 60%;
  height: 3px;
  background-color: #000;
  border-radius: 3px;
}
body > header .menu-open label span:nth-child(2) {
  margin: 6px auto;
}
body > header #menu_open_checkbox:checked ~ nav {
  left: 0;
  opacity: 1;
}
body > header nav.menu {
  opacity: 0;
  width: 100vw;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 100vw;
  transition: opacity 0.5s cubic-bezier(0.56, 0.675, 0.015, 1.22);
  overflow: auto;
  background-color: #2F496E;
  z-index: 2;
}
body > header nav.menu header {
  position: relative;
  width: 100vw;
  padding: 0 5vw;
  padding-left: 5vw;
  padding-right: 5vw;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
@media screen and (min-width: 1120px) {
  body > header nav.menu header {
    padding-left: calc(50vw - (1120px / 2 - 20px));
    padding-right: calc(50vw - (1120px / 2 - 20px));
    max-width: 100vw;
    margin-left: 0;
    margin-right: 0;
  }
}
body > header nav.menu header h2 a {
  height: 48px;
  display: block;
}
body > header nav.menu header h2 a img {
  width: auto;
  height: 100%;
}
body > header nav.menu header .menu-close {
  width: 50px;
  height: 50px;
}
body > header nav.menu header .menu-close label {
  display: block;
  width: 100%;
  height: 100%;
  position: relative;
}
body > header nav.menu header .menu-close label span {
  display: block;
  position: absolute;
  width: 60%;
  height: 3px;
  background-color: #fff;
  border-radius: 3px;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  transform: rotate(45deg);
}
body > header nav.menu header .menu-close label span:nth-child(2) {
  transform: rotate(-45deg);
}
body > header nav.menu ul.menu {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid #fff;
}
body > header nav.menu ul.menu li {
  width: 100%;
  border-bottom: 1px solid #fff;
}
body > header nav.menu ul.menu li a {
  text-align: center;
  width: 100%;
  padding: 1em 5vw;
  display: block;
  color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  line-height: 1.5em;
}
body > header nav.menu ul.menu li a:hover {
  opacity: 0.8;
  text-decoration: underline;
}
body > header nav.menu ul.menu li a span {
  display: block;
}
body main {
  padding: 0 5vw;
  padding-left: 5vw;
  padding-right: 5vw;
  overflow: hidden;
}
@media screen and (min-width: 1120px) {
  body main {
    padding-left: calc(50vw - (1120px / 2 - 20px));
    padding-right: calc(50vw - (1120px / 2 - 20px));
    max-width: 100vw;
    margin-left: 0;
    margin-right: 0;
  }
}
body aside.link {
  overflow: hidden;
  background-color: #f4eade;
  padding: 1.5rem 5vw;
  padding-left: 5vw;
  padding-right: 5vw;
  text-align: center;
}
@media screen and (min-width: 1120px) {
  body aside.link {
    padding-left: calc(50vw - (1120px / 2 - 20px));
    padding-right: calc(50vw - (1120px / 2 - 20px));
    max-width: 100vw;
    margin-left: 0;
    margin-right: 0;
  }
}
body aside.link h2 {
  color: #2F496E;
}
body aside.link h2 span {
  display: block;
}
body aside.link ul {
  padding: 0;
  list-style: none;
}
body aside.link ul li {
  width: 100%;
  margin-bottom: 1rem;
}
body aside.link ul li a {
  display: inline;
}
body footer {
  position: relative;
  overflow: hidden;
  color: #fff;
  padding: 1.5rem 5vw;
  padding-left: 5vw;
  padding-right: 5vw;
  background-color: #2F496E;
  color: #fff;
  box-shadow: 0 100vh 0 100vh #2F496E;
}
@media screen and (min-width: 1120px) {
  body footer {
    padding-left: calc(50vw - (1120px / 2 - 20px));
    padding-right: calc(50vw - (1120px / 2 - 20px));
    max-width: 100vw;
    margin-left: 0;
    margin-right: 0;
  }
}
body footer h2 a {
  height: 68px;
  font-size: 12px;
  position: relative;
  padding-left: 56px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  color: #000;
  font-weight: bold;
  text-decoration: none;
  margin: 10px 0;
  color: #fff;
}
body footer h2 a span {
  display: block;
}
body footer h2 a img {
  position: absolute;
  top: 0;
  left: 0;
}
body footer h2 a img {
  width: auto;
  height: 100%;
}
body footer small.copyright {
  display: block;
  font-size: 12px;
  letter-spacing: 0.2rem;
  text-align: center;
}
body.home main {
  padding: 0;
}
body.home main section.top ul.splide__list {
  margin: 0;
  padding: 0;
  width: 100vw;
}
body.home main section.top ul.splide__list li {
  height: 45vw;
  max-height: 400px;
}
body.home main section.top ul.splide__list li img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
body.home main > div.content {
  padding: 1.5rem 5vw 3rem;
  padding-left: 5vw;
  padding-right: 5vw;
}
@media screen and (min-width: 1120px) {
  body.home main > div.content {
    padding-left: calc(50vw - (1120px / 2 - 20px));
    padding-right: calc(50vw - (1120px / 2 - 20px));
    max-width: 100vw;
    margin-left: 0;
    margin-right: 0;
  }
}
body.home main section.news h2 {
  color: #2F496E;
}
body.home main section.news ul.posts {
  padding: 0;
  list-style: none;
}
body.home main section.news ul.posts > li {
  border-bottom: 1px solid #ccc;
  padding: 1rem 0;
}
body.home main section.news ul.posts > li > div {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
}
body.home main section.news ul.posts > li > div span.date {
  margin-right: 1rem;
  height: 20px;
  display: flex;
  align-items: center;
}
body.home main section.news ul.posts > li > div ul {
  padding: 0;
  margin: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
}
body.home main section.news ul.posts > li > div ul li {
  margin-right: 0.5rem;
  margin-bottom: 0.2rem;
  overflow: hidden;
}
body.home main section.news ul.posts > li > div ul li a {
  font-size: 12px;
  display: block;
  background-color: #64748b;
  color: #fff;
  padding: 0 0.3em;
  height: 20px;
  border-radius: 3px;
  display: flex;
  align-items: center;
  text-decoration: none;
}
body.home main section.news ul.posts > li > div ul li a span.ja:after {
  content: " ";
}
body.home main section.news ul.posts > li > div ul li.activity a {
  background-color: #06b6d4;
}
body.home main section.news ul.posts > li > div ul li.publish a {
  background-color: #22c55e;
}
body.home main section.news ul.posts > li > div ul li.result a {
  background-color: #f43f5e;
}
body.home main section.news ul.posts > li > div ul li.news a {
  background-color: #f97316;
}
body.home main section.news ul.posts > li h3 {
  margin-top: 0.5em;
  margin-bottom: 0;
  font-weight: normal;
}
body.home main section.news p.link {
  text-align: center;
}
body.home main section.news p.link a {
  display: inline-block;
  color: #fff;
  background-color: #ED8C72;
  text-align: center;
  font-weight: bold;
  padding: 1rem 6rem;
  font-size: 1.2rem;
  position: relative;
  text-decoration: none;
  border-radius: 3rem;
}
body.home main section.news p.link a:after {
  content: "";
  border-color: #fff #fff transparent transparent;
  border-width: 1px;
  border-style: solid;
  transform: rotate(45deg);
  display: block;
  width: 10px;
  height: 10px;
  position: absolute;
  top: 0;
  bottom: 0;
  margin-top: auto;
  margin-bottom: auto;
  right: 20px;
}
body.error404 main, body.archive main, body.page main, body.single main {
  padding: 0;
}
body.error404 main header, body.archive main header, body.page main header, body.single main header {
  color: #fff;
  background-color: #2F496E;
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 10rem;
}
body.error404 main header h1, body.archive main header h1, body.page main header h1, body.single main header h1 {
  letter-spacing: 0.2em;
}
body.error404 main header h1 span, body.archive main header h1 span, body.page main header h1 span, body.single main header h1 span {
  display: block;
}
body.error404 main div.content, body.archive main div.content, body.page main div.content, body.single main div.content {
  padding: 3rem 5vw 6rem;
  padding-left: 5vw;
  padding-right: 5vw;
  overflow: hidden;
}
@media screen and (min-width: 1120px) {
  body.error404 main div.content, body.archive main div.content, body.page main div.content, body.single main div.content {
    padding-left: calc(50vw - (1120px / 2 - 20px));
    padding-right: calc(50vw - (1120px / 2 - 20px));
    max-width: 100vw;
    margin-left: 0;
    margin-right: 0;
  }
}
body.error404 main div.content > div.tags, body.archive main div.content > div.tags, body.page main div.content > div.tags, body.single main div.content > div.tags {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
}
body.error404 main div.content > div.tags span.date, body.archive main div.content > div.tags span.date, body.page main div.content > div.tags span.date, body.single main div.content > div.tags span.date {
  margin-right: 1rem;
  height: 20px;
  display: flex;
  align-items: center;
}
body.error404 main div.content > div.tags ul, body.archive main div.content > div.tags ul, body.page main div.content > div.tags ul, body.single main div.content > div.tags ul {
  padding: 0;
  margin: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
}
body.error404 main div.content > div.tags ul li, body.archive main div.content > div.tags ul li, body.page main div.content > div.tags ul li, body.single main div.content > div.tags ul li {
  margin-right: 0.5rem;
  margin-bottom: 0.2rem;
  overflow: hidden;
}
body.error404 main div.content > div.tags ul li a, body.archive main div.content > div.tags ul li a, body.page main div.content > div.tags ul li a, body.single main div.content > div.tags ul li a {
  font-size: 12px;
  display: block;
  background-color: #64748b;
  color: #fff;
  padding: 0 0.3em;
  height: 20px;
  border-radius: 3px;
  display: flex;
  align-items: center;
  text-decoration: none;
}
body.error404 main div.content > div.tags ul li a span.ja:after, body.archive main div.content > div.tags ul li a span.ja:after, body.page main div.content > div.tags ul li a span.ja:after, body.single main div.content > div.tags ul li a span.ja:after {
  content: " ";
}
body.error404 main div.content > div.tags ul li.activity a, body.archive main div.content > div.tags ul li.activity a, body.page main div.content > div.tags ul li.activity a, body.single main div.content > div.tags ul li.activity a {
  background-color: #06b6d4;
}
body.error404 main div.content > div.tags ul li.publish a, body.archive main div.content > div.tags ul li.publish a, body.page main div.content > div.tags ul li.publish a, body.single main div.content > div.tags ul li.publish a {
  background-color: #22c55e;
}
body.error404 main div.content > div.tags ul li.result a, body.archive main div.content > div.tags ul li.result a, body.page main div.content > div.tags ul li.result a, body.single main div.content > div.tags ul li.result a {
  background-color: #f43f5e;
}
body.error404 main div.content > div.tags ul li.news a, body.archive main div.content > div.tags ul li.news a, body.page main div.content > div.tags ul li.news a, body.single main div.content > div.tags ul li.news a {
  background-color: #f97316;
}
body.error404 main div.content nav.navigation, body.archive main div.content nav.navigation, body.page main div.content nav.navigation, body.single main div.content nav.navigation {
  margin: 2rem auto;
}
body.error404 main div.content nav.navigation div.nav-links span.page-numbers, body.error404 main div.content nav.navigation div.nav-links a.page-numbers, body.archive main div.content nav.navigation div.nav-links span.page-numbers, body.archive main div.content nav.navigation div.nav-links a.page-numbers, body.page main div.content nav.navigation div.nav-links span.page-numbers, body.page main div.content nav.navigation div.nav-links a.page-numbers, body.single main div.content nav.navigation div.nav-links span.page-numbers, body.single main div.content nav.navigation div.nav-links a.page-numbers {
  font-size: 1.2rem;
  margin-right: 1rem;
}
body.archive main div.content > ul, body.page main.archive div.content > ul {
  padding: 0;
  margin: 0;
  margin-bottom: 3rem;
  list-style: none;
}
body.archive main div.content > ul > li, body.page main.archive div.content > ul > li {
  margin-bottom: 2rem;
  border-bottom: 1px solid #ccc;
}
body.archive main div.content > ul > li h2, body.page main.archive div.content > ul > li h2 {
  margin-top: 0.5em;
  font-weight: normal;
  font-size: 1.17em;
}
body.archive main div.content > ul > li > div, body.page main.archive div.content > ul > li > div {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
}
body.archive main div.content > ul > li > div span.date, body.page main.archive div.content > ul > li > div span.date {
  margin-right: 1rem;
  height: 20px;
  display: flex;
  align-items: center;
}
body.archive main div.content > ul > li > div ul, body.page main.archive div.content > ul > li > div ul {
  padding: 0;
  margin: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
}
body.archive main div.content > ul > li > div ul li, body.page main.archive div.content > ul > li > div ul li {
  margin-right: 0.5rem;
  margin-bottom: 0.2rem;
  overflow: hidden;
}
body.archive main div.content > ul > li > div ul li a, body.page main.archive div.content > ul > li > div ul li a {
  font-size: 12px;
  display: block;
  background-color: #64748b;
  color: #fff;
  padding: 0 0.3em;
  height: 20px;
  border-radius: 3px;
  display: flex;
  align-items: center;
  text-decoration: none;
}
body.archive main div.content > ul > li > div ul li a span.ja:after, body.page main.archive div.content > ul > li > div ul li a span.ja:after {
  content: " ";
}
body.archive main div.content > ul > li > div ul li.activity a, body.page main.archive div.content > ul > li > div ul li.activity a {
  background-color: #06b6d4;
}
body.archive main div.content > ul > li > div ul li.publish a, body.page main.archive div.content > ul > li > div ul li.publish a {
  background-color: #22c55e;
}
body.archive main div.content > ul > li > div ul li.result a, body.page main.archive div.content > ul > li > div ul li.result a {
  background-color: #f43f5e;
}
body.archive main div.content > ul > li > div ul li.news a, body.page main.archive div.content > ul > li > div ul li.news a {
  background-color: #f97316;
}
body.post-type-archive-member main div.content > ul > li {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  padding-bottom: 2rem;
}
body.post-type-archive-member main div.content > ul > li div.image {
  width: 50vw;
  max-width: 240px;
  height: auto;
  margin-right: 2rem;
  margin-bottom: 2rem;
  display: block;
  position: relative;
  overflow: hidden;
}
body.post-type-archive-member main div.content > ul > li div.image:before {
  content: "";
  display: block;
  padding-top: 100%;
}
body.post-type-archive-member main div.content > ul > li div.image img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
body.post-type-archive-member main div.content > ul > li div.text {
  display: block;
  width: auto;
  flex: 1;
}
body.post-type-archive-member main div.content > ul > li div.text h2 {
  margin-top: 0;
  line-height: 1em;
}
body.post-type-archive-member main div.content > ul > li div.text h3, body.post-type-archive-member main div.content > ul > li div.text h4 {
  color: #2F496E;
}
@media screen and (min-width: 650px) {
  body.post-type-archive-member main div.content > ul > li {
    flex-direction: row;
  }
  body.post-type-archive-member main div.content > ul > li div.image {
    width: 30vw;
    max-width: 400px;
  }
}
div.three-lang {
  position: relative;
}
div.three-lang .sign-language {
  display: none;
}
div.three-lang .sign-language-player {
  position: absolute;
  top: 0;
  right: 0;
  cursor: pointer;
  background-color: #fff;
  border: 2px solid #15803d;
  padding: 0.5em 1em;
  line-height: 1em;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #15803d;
  font-weight: bold;
  border-radius: 2em;
}
div.three-lang .sign-language-player:after {
  content: "";
  display: inline-block;
  box-sizing: border-box;
  width: 0;
  height: 10px;
  border-top: 5px solid transparent;
  border-bottom: 5px solid transparent;
  border-left: 6px solid;
  margin-left: 0.5em;
}
div.three-lang.active {
  border: 10px solid #fbbf24;
  border-radius: 3px;
}
.modal {
  display: none;
  z-index: 2;
  justify-content: center;
  align-items: center;
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.7);
}
.modal.active {
  display: flex;
}
.modal .modal-content {
  max-width: 80vw;
  max-height: 80vh;
}
.modal .modal-content video {
  width: 100%;
  height: auto;
}
.modal:before, .modal:after {
  content: "";
  display: block;
  width: 5vw;
  height: 5vh;
  position: absolute;
  right: 10vw;
  top: 5vh;
  display: block;
  height: 3px;
  background-color: #fff;
  border-radius: 3px;
  transform: rotate(45deg);
}
.modal:after {
  transform: rotate(-45deg);
}
@media screen and (min-width: 990px) {
  body > header {
    padding: 1 5vw;
  }
  body > header .menu-open {
    display: none;
  }
  body > header nav.menu {
    position: relative;
    opacity: 1;
    width: auto;
    height: auto;
    background-color: transparent;
    top: initial;
    left: initial;
    overflow: hidden;
  }
  body > header nav.menu header {
    display: none;
  }
  body > header nav.menu ul.menu {
    display: flex;
    justify-content: flex-end;
    align-items: center;
  }
  body > header nav.menu ul.menu li {
    width: auto;
  }
  body > header nav.menu ul.menu li a {
    width: auto;
    color: #2F496E;
    padding: 0;
    line-height: 1em;
    white-space: nowrap;
  }
  body > header nav.menu ul.menu li + li {
    margin-left: 2rem;
  }
}
body.home main aside.link-button ul {
  list-style: none;
  display: block;
  padding: 30px 0;
}
body.home main aside.link-button ul li {
  width: 100%;
  max-width: 320px;
  margin: 0 auto;
}
body.home main aside.link-button ul li a {
  border: 2px solid #2988BC;
  padding: 10px 20px;
  border-radius: 10px;
  text-align: center;
  display: block;
  color: #2988BC;
  text-decoration: none;
  min-height: 90px;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  margin-bottom: 20px;
}
body.home main aside.link-button ul li a span.menu-description {
  font-size: 85%;
  margin-top: 6px;
}
@media screen and (min-width: 990px) {
  body.home main div.content {
    display: flex;
    justify-content: space-between;
  }
  body.home main div.content section.news {
    width: calc(100% - 300px);
  }
  body.home main div.content aside.link-button {
    width: 250px;
  }
  body.home main div.content aside.link-button ul {
    display: block;
  }
  body.home main div.content aside.link-button ul li {
    width: 100%;
  }
  body.home main div.content aside.link-button ul li + li {
    margin-left: 0;
    margin-top: 20px;
  }
}
