@charset "UTF-8";
/* fondation */
input[type="button"],
input[type="reset"],
input[type="submit"],
button {
  appearance: none;
  -webkit-font-smoothing: antialiased;
  background-color: #1f7acc;
  border-radius: 3px;
  border: none;
  color: #fff;
  cursor: pointer;
  display: inline-block;
  font-family: "YuGothic", "Yu Gothic", "游ゴシック", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: 100%;
  font-weight: 600;
  line-height: 1;
  padding: 0.75rem 1rem;
  text-decoration: none;
  user-select: none;
  vertical-align: middle;
  white-space: nowrap; }
  input[type="button"]:hover, input[type="button"]:focus,
  input[type="reset"]:hover,
  input[type="reset"]:focus,
  input[type="submit"]:hover,
  input[type="submit"]:focus,
  button:hover,
  button:focus {
    background-color: #15528a;
    color: #fff; }
  input[type="button"]:disabled,
  input[type="reset"]:disabled,
  input[type="submit"]:disabled,
  button:disabled {
    cursor: not-allowed;
    opacity: 0.5; }

fieldset {
  background-color: #e4e4e4;
  border: 1px solid #cacaca;
  margin: 0 0 0.75rem;
  padding: 1.5rem; }

input,
label,
select {
  display: block;
  font-family: "YuGothic", "Yu Gothic", "游ゴシック", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: 100%; }

label {
  font-weight: 600;
  margin-bottom: 0.375rem; }
  label.required::after {
    content: "*"; }
  label abbr {
    display: none; }

input[type="color"],
input[type="date"],
input[type="datetime"],
input[type="datetime-local"],
input[type="email"],
input[type="month"],
input[type="number"],
input[type="password"],
input[type="search"],
input[type="tel"],
input[type="text"],
input[type="time"],
input[type="url"],
input[type="week"],
input:not([type]),
select[multiple=multiple],
textarea {
  background-color: #fff;
  border: 1px solid #cacaca;
  border-radius: 3px;
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.06);
  box-sizing: border-box;
  font-family: "YuGothic", "Yu Gothic", "游ゴシック", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: 100%;
  margin-bottom: 0.75rem;
  padding: 0.5rem;
  transition: border-color;
  width: 100%; }
  input[type="color"]:hover,
  input[type="date"]:hover,
  input[type="datetime"]:hover,
  input[type="datetime-local"]:hover,
  input[type="email"]:hover,
  input[type="month"]:hover,
  input[type="number"]:hover,
  input[type="password"]:hover,
  input[type="search"]:hover,
  input[type="tel"]:hover,
  input[type="text"]:hover,
  input[type="time"]:hover,
  input[type="url"]:hover,
  input[type="week"]:hover,
  input:not([type]):hover,
  select[multiple=multiple]:hover,
  textarea:hover {
    border-color: #b1b1b1; }
  input[type="color"]:focus,
  input[type="date"]:focus,
  input[type="datetime"]:focus,
  input[type="datetime-local"]:focus,
  input[type="email"]:focus,
  input[type="month"]:focus,
  input[type="number"]:focus,
  input[type="password"]:focus,
  input[type="search"]:focus,
  input[type="tel"]:focus,
  input[type="text"]:focus,
  input[type="time"]:focus,
  input[type="url"]:focus,
  input[type="week"]:focus,
  input:not([type]):focus,
  select[multiple=multiple]:focus,
  textarea:focus {
    border-color: #1f7acc;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.06), 0 0 5px rgba(28, 109, 182, 0.7);
    outline: none; }

textarea {
  resize: vertical; }

input[type="search"] {
  appearance: none; }

input[type="checkbox"],
input[type="radio"] {
  display: inline;
  margin-right: 0.375rem; }

input[type="file"] {
  padding-bottom: 0.75rem;
  width: 100%; }

select {
  margin-bottom: 1.5rem;
  max-width: 100%;
  width: auto; }

ul,
ol {
  list-style-type: none;
  margin: 0;
  padding: 0; }

dl {
  margin-bottom: 0.75rem; }
  dl dt {
    font-weight: bold;
    margin-top: 0.75rem; }
  dl dd {
    margin: 0; }

table {
  font-feature-settings: "kern", "liga", "tnum";
  border-collapse: collapse;
  margin: 0.75rem 0;
  table-layout: fixed;
  width: 100%; }

th {
  border-bottom: 1px solid #a4a4a4;
  font-weight: 600;
  padding: 0.75rem 0;
  text-align: left; }

td {
  border-bottom: 1px solid #cacaca;
  padding: 0.75rem 0; }

tr,
td,
th {
  vertical-align: middle; }

body {
  font-feature-settings: "kern", "liga", "pnum";
  -webkit-font-smoothing: antialiased;
  color: #111;
  font-family: "YuGothic", "Yu Gothic", "游ゴシック", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: 100%;
  line-height: 1.5; }

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "YuGothic", "Yu Gothic", "游ゴシック", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: 100%;
  line-height: 1.2;
  margin: 0 0 0.75rem; }

p {
  margin: 0 0 0.75rem; }

a {
  color: #111;
  transition: color 0.1s linear; }
  a:active, a:focus, a:hover {
    color: black; }
  a:active, a:focus {
    outline: none; }

hr {
  border-bottom: 1px solid #cacaca;
  border-left: none;
  border-right: none;
  border-top: none;
  margin: 1.5rem 0; }

img,
picture {
  margin: 0;
  max-width: 100%; }

html {
  box-sizing: border-box; }

*, *::after, *::before {
  box-sizing: inherit; }

/* layout */
.header {
  border-bottom: 1px solid #cacaca;
  position: fixed;
  background: #fff;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  z-index: 1000; }
  .header::after {
    clear: both;
    content: "";
    display: block; }
  @media screen and (min-width: 53.75rem) {
    .header {
      position: static;
      border-bottom: none; } }
.header__inner {
  position: relative; }
  @media screen and (min-width: 53.75rem) {
    .header__inner {
      padding: 5rem 0 1.5rem; } }
.header__logo-link {
  display: block;
  width: 13.25rem;
  height: 3.75rem;
  margin: 0 auto;
  position: relative; }
  @media screen and (min-width: 53.75rem) {
    .header__logo-link {
      width: 30rem;
      height: auto; } }
.header__logo {
  margin: 0;
  position: absolute;
  top: 0.425rem;
  left: -0.0625rem;
  text-align: center;
  display: inline-block;
  color: #1f7acc;
  width: 100%; }
  @media screen and (min-width: 53.75rem) {
    .header__logo {
      position: static; } }
.header__icon-link {
  position: absolute;
  display: block;
  right: 0;
  top: 0;
  width: 2.75rem;
  height: 3.75rem;
  text-align: center; }
  @media screen and (min-width: 53.75rem) {
    .header__icon-link {
      display: none; } }
.header__icon {
  display: inline-block;
  width: 100%;
  font-size: 1.5rem;
  position: absolute;
  left: 0;
  top: 1.25rem;
  color: #111; }

body {
  margin: 0;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto; }
  body::after {
    clear: both;
    content: "";
    display: block; }

@media screen and (min-width: 769px) {
  position: relative;
  top: 29px; }

.wrapper {
  float: left;
  display: block;
  margin-right: 2.1276595745%;
  width: 100%;
  transition: all 0.2s ease-in-out;
  position: relative;
  padding: 3.75rem 0 0; }
  .wrapper:last-child {
    margin-right: 0; }
  @media screen and (min-width: 53.75rem) {
    .wrapper {
      float: left;
      display: block;
      margin-right: 2.1276595745%;
      width: 82.9787234043%;
      margin-left: 8.5106382979%;
      padding: 0; }
      .wrapper:last-child {
        margin-right: 0; } }
@media screen and (min-width: 53.75rem) {
  .main {
    float: left;
    display: block;
    margin-right: 2.1276595745%;
    width: 74.4680851064%; }
    .main:last-child {
      margin-right: 0; } }

.overlay {
  position: fixed;
  z-index: 2000;
  top: 0;
  left: 0;
  display: none;
  width: 100%;
  height: 120%;
  background-color: rgba(0, 0, 0, 0.75); }
  .overlay.fade-in {
    animation: overlay__fade-in ease 0.3s 1 normal; }
  .overlay.active {
    display: block; }
  .overlay.fade-out {
    animation: overlay__fade-out ease 0.3s 1 normal; }

@keyframes overlay__fade-in {
  0% {
    display: none;
    opacity: 0; }
  1% {
    display: block;
    opacity: 0; }
  100% {
    display: block;
    opacity: 1; } }

@keyframes overlay__fade-out {
  0% {
    display: block;
    opacity: 1; }
  99% {
    display: block;
    opacity: 0; }
  100% {
    display: none;
    opacity: 0; } }

.sidebar {
  position: fixed;
  top: 0;
  right: -16.875rem;
  z-index: 9999;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  width: 16.875rem;
  height: 100%;
  padding: 2,5rem 1.25rem;
  background: #fff;
  color: #111;
  transition: all 0.2s ease-in-out; }
  .sidebar.open {
    right: 0; }
  @media screen and (min-width: 53.75rem) {
    .sidebar {
      position: initial;
      top: initial;
      right: initial;
      padding: 2.5rem 0;
      float: left;
      display: block;
      margin-right: 2.1276595745%;
      width: 23.4042553191%; }
      .sidebar:last-child {
        margin-right: 0; } }
.sidebar__sections {
  padding: 1rem 1rem 0;
  clear: both;
  margin: 0 0 1.875rem; }
  @media screen and (min-width: 53.75rem) {
    .sidebar__sections {
      padding: 0;
      margin: 0 0 1.875rem; } }
.sidebar__title {
  font-size: 1.5rem;
  margin: 0 0 1.25rem; }

.newpost li {
  font-size: 1rem;
  margin: 0 0 0.875rem; }

.newpost .article__time {
  margin: 0; }

.topic {
  display: inline-block;
  margin: 0.3125rem 0.3125rem 0.625rem 0; }
  .topic a {
    text-decoration: none;
    display: inline-block;
    border-radius: 0.1875rem;
    color: #fff;
    font-weight: bold;
    padding: 0.3125rem 0.625rem; }

.information li {
  font-size: 1rem;
  margin: 0 0 0.625rem; }

.author {
  margin: 0 0 1rem; }
  .author a {
    display: block;
    width: 100%;
    overflow: hidden;
    position: relative; }
    .author a img {
      float: left;
      display: block;
      margin-right: 2.1276595745%;
      width: 31.914893617%;
      float: left;
      border-radius: 50%; }
      .author a img:last-child {
        margin-right: 0; }
    .author a span {
      float: left;
      margin: 0.625rem 0 0 0.9375rem; }

.others li {
  margin: 0 0 1rem; }

.footer {
  float: left;
  display: block;
  margin-right: 2.1276595745%;
  width: 100%; }
  .footer:last-child {
    margin-right: 0; }

.credit {
  float: left;
  display: block;
  margin-right: 2.1276595745%;
  width: 100%;
  background: #074680;
  color: #fff;
  text-align: center;
  padding: 1.25rem; }
  .credit:last-child {
    margin-right: 0; }
  .credit a {
    color: currentColor;
    text-decoration: none; }
    .credit a:hover {
      opacity: 0.8; }

.credit__logo {
  font-family: "Montserrat", sans-serif;
  font-weight: bold; }

.credit__links {
  display: block;
  margin: 0 0 0.75rem;
  font-size: 0.875rem;
  color: #fff;
  text-align: center; }

.credit__link {
  display: inline-block;
  margin: 0.2em 0.5em;
  white-space: nowrap; }

.credit__rights {
  font-size: 0.875rem;
  margin: 0; }

.gmoGroupHeader {
  width: 100%; }

/* object */
.article {
  float: left;
  display: block;
  margin-right: 2.1276595745%;
  width: 100%;
  border-bottom: 1px solid #cacaca;
  position: relative;
  padding: 0 1.25rem 0.625rem;
  color: #111; }
  .article:last-child {
    margin-right: 0; }
  .article::after {
    clear: both;
    content: "";
    display: block; }
  .article:last-child {
    border-bottom: none; }
  @media screen and (min-width: 53.75rem) {
    .article {
      text-align: left;
      padding: 1.5rem 0 1.25rem; } }
.article__topic {
  padding: 1.125rem 0 0.625rem;
  text-align: center; }
  .article__topic a {
    text-decoration: none;
    display: inline-block;
    margin: 0.3125rem 0.3125rem 0.625rem 0;
    text-align: center;
    padding: 0.3125rem 1.25rem;
    font-size: 1rem;
    border-radius: 0.1875rem;
    color: #fff;
    font-weight: bold; }
  @media screen and (min-width: 53.75rem) {
    .article__topic {
      display: none; } }
.article__topic--pc {
  display: none; }
  @media screen and (min-width: 53.75rem) {
    .article__topic--pc {
      display: block;
      text-align: left; } }
.article__title {
  float: left;
  display: block;
  margin-right: 2.1276595745%;
  width: 100%;
  font-size: 1.5rem;
  line-height: 1.5;
  margin: 0 0 1rem; }
  .article__title:last-child {
    margin-right: 0; }

.article__eye-catch {
  margin: 0 0 1rem; }

.article__body {
  float: left;
  display: block;
  margin-right: 2.1276595745%;
  width: 100%; }
  .article__body:last-child {
    margin-right: 0; }
  .article__body h2 {
    font-size: 1.5rem;
    margin: 1.5rem 0; }
  .article__body h3 {
    font-size: 1.25rem;
    color: #757575;
    margin: 1.5rem 0 1rem; }
  .article__body h4 {
    font-size: 1rem;
    text-decoration: underline;
    margin: 1.5rem 0 1rem; }
  .article__body p {
    font-size: 1rem;
    margin: 0 0 1rem;
    line-height: 1.75rem; }
  .article__body ul, .article__body ol {
    font-size: 1rem;
    list-style-type: disc;
    padding: 0 0 0 1.5rem;
    margin: 0 0 1rem; }
    .article__body ul li, .article__body ol li {
      line-height: 1.75rem; }
    .article__body ul ul, .article__body ul ol, .article__body ol ul, .article__body ol ol {
      margin: 0; }
  .article__body ol {
    list-style-type: decimal; }
  .article__body table {
    border-top: 1px solid #cacaca;
    font-size: 0.875rem;
    margin: 0 0 0.875rem; }
  .article__body tr {
    border-bottom: 1px solid #cacaca; }
  .article__body th {
    color: #757575; }
  .article__body pre {
    margin: 0 0 1rem;
    font-size: 1rem;
    padding: 1rem;
    overflow-x: scroll;
    word-wrap: break-word; }
  .article__body pre span {
    font-size: 1rem; }
  .article__body code {
    font-size: 1rem;
    background: #f8f8f8; }
  .article__body cite {
    font-size: 1rem;
    color: #cacaca; }
  .article__body blockquote {
    font-size: 0.875rem;
    margin: 0;
    padding: 0 0 0 3.125rem;
    position: relative;
    margin: 0 0 1rem; }
    .article__body blockquote::before {
      content: "\f10d";
      font-family: FontAwesome;
      position: absolute;
      left: 0;
      top: 0;
      color: #cacaca;
      font-size: 1.875rem; }

.article__more {
  font-size: 1.25rem;
  display: inline-block; }
  @media screen and (min-width: 53.75rem) {
    .article__more {
      font-size: 1.5rem; } }
.article__footer {
  float: left;
  display: block;
  margin-right: 2.1276595745%;
  width: 100%;
  padding: 0.625rem 0 0;
  margin: 1.25rem 0 0;
  border-top: 2px solid #eee; }
  .article__footer:last-child {
    margin-right: 0; }
  @media screen and (min-width: 53.75rem) {
    .article__footer {
      padding: 1.25rem 0 0; } }
.article__footer__wrap {
  position: relative; }
  .article__footer__wrap::after {
    clear: both;
    content: "";
    display: block; }

.article__author-image {
  width: 3.75rem;
  float: left; }
  .article__author-image img {
    border-radius: 50%;
    border: 1px solid #111; }

.article__author-name {
  width: 6.25rem;
  float: left;
  font-size: 0.875rem;
  position: absolute;
  bottom: 1.75rem;
  left: 4.375rem; }
  .article__author-name p {
    font-weight: bold;
    padding: 0;
    margin: 0; }

.article__time {
  display: inline-block;
  color: #cacaca;
  font-size: 1rem;
  margin: 0 0 1rem;
  font-weight: bold; }
  @media screen and (min-width: 53.75rem) {
    .article__time {
      margin: 0; } }
.article__author-description {
  font-size: 0.875rem;
  padding: 0.5rem 0 0.5rem; }

.article__author-links {
  width: 7.5rem;
  position: absolute;
  right: 0;
  bottom: 1.5rem;
  padding: 0.75rem 0 0;
  text-align: right; }

.article__author-link {
  border-radius: 50%;
  text-decoration: none;
  width: 1.875rem;
  height: 1.875rem;
  margin: 0 0 0 0.25rem;
  color: #fff;
  display: inline-table;
  text-align: center; }
  .article__author-link i {
    font-size: 1rem;
    display: table-cell;
    vertical-align: middle; }

.article__author-link--twitter {
  background: #1cadeb; }

.article__author-link--facebook {
  background: #3f5aa2; }

.article__author-link--github {
  background: #333; }

.archive__header {
  padding: 1.25rem 1.25rem 0;
  margin: 0;
  font-size: 1.5rem; }
  @media screen and (min-width: 53.75rem) {
    .archive__header {
      padding: 0; } }
.highlight table td {
  padding: 5px; }

.highlight table pre {
  margin: 0; }

.highlight .cm {
  color: #999988;
  font-style: italic; }

.highlight .cp {
  color: #999999;
  font-weight: bold; }

.highlight .c1 {
  color: #999988;
  font-style: italic; }

.highlight .cs {
  color: #999999;
  font-weight: bold;
  font-style: italic; }

.highlight .c, .highlight .ch, .highlight .cd, .highlight .cpf {
  color: #999988;
  font-style: italic; }

.highlight .err {
  color: #a61717;
  background-color: #e3d2d2; }

.highlight .gd {
  color: #000000;
  background-color: #ffdddd; }

.highlight .ge {
  color: #000000;
  font-style: italic; }

.highlight .gr {
  color: #aa0000; }

.highlight .gh {
  color: #999999; }

.highlight .gi {
  color: #000000;
  background-color: #ddffdd; }

.highlight .go {
  color: #888888; }

.highlight .gp {
  color: #555555; }

.highlight .gs {
  font-weight: bold; }

.highlight .gu {
  color: #aaaaaa; }

.highlight .gt {
  color: #aa0000; }

.highlight .kc {
  color: #000000;
  font-weight: bold; }

.highlight .kd {
  color: #000000;
  font-weight: bold; }

.highlight .kn {
  color: #000000;
  font-weight: bold; }

.highlight .kp {
  color: #000000;
  font-weight: bold; }

.highlight .kr {
  color: #000000;
  font-weight: bold; }

.highlight .kt {
  color: #445588;
  font-weight: bold; }

.highlight .k, .highlight .kv {
  color: #000000;
  font-weight: bold; }

.highlight .mf {
  color: #009999; }

.highlight .mh {
  color: #009999; }

.highlight .il {
  color: #009999; }

.highlight .mi {
  color: #009999; }

.highlight .mo {
  color: #009999; }

.highlight .m, .highlight .mb, .highlight .mx {
  color: #009999; }

.highlight .sa {
  color: #000000;
  font-weight: bold; }

.highlight .sb {
  color: #d14; }

.highlight .sc {
  color: #d14; }

.highlight .sd {
  color: #d14; }

.highlight .s2 {
  color: #d14; }

.highlight .se {
  color: #d14; }

.highlight .sh {
  color: #d14; }

.highlight .si {
  color: #d14; }

.highlight .sx {
  color: #d14; }

.highlight .sr {
  color: #009926; }

.highlight .s1 {
  color: #d14; }

.highlight .ss {
  color: #990073; }

.highlight .s, .highlight .dl {
  color: #d14; }

.highlight .na {
  color: #008080; }

.highlight .bp {
  color: #999999; }

.highlight .nb {
  color: #0086B3; }

.highlight .nc {
  color: #445588;
  font-weight: bold; }

.highlight .no {
  color: #008080; }

.highlight .nd {
  color: #3c5d5d;
  font-weight: bold; }

.highlight .ni {
  color: #800080; }

.highlight .ne {
  color: #990000;
  font-weight: bold; }

.highlight .nf, .highlight .fm {
  color: #990000;
  font-weight: bold; }

.highlight .nl {
  color: #990000;
  font-weight: bold; }

.highlight .nn {
  color: #555555; }

.highlight .nt {
  color: #000080; }

.highlight .vc {
  color: #008080; }

.highlight .vg {
  color: #008080; }

.highlight .vi {
  color: #008080; }

.highlight .nv, .highlight .vm {
  color: #008080; }

.highlight .ow {
  color: #000000;
  font-weight: bold; }

.highlight .o {
  color: #000000;
  font-weight: bold; }

.highlight .w {
  color: #bbbbbb; }

.highlight {
  background-color: #f8f8f8; }

.social-buttons-wrapper {
  padding-bottom: 20px; }

.social-buttons:before, .social-buttons:after {
  display: table;
  content: ""; }

.social-buttons:after {
  clear: both; }

.hatena-bookmark {
  float: left;
  margin-right: 5px; }

.twitter {
  float: left;
  margin-right: 10px; }

.fb-share-button {
  float: left;
  margin-right: 10px;
  margin-top: -4px; }

.pocket {
  float: left; }

.pager {
  display: inline-block;
  padding: 1.25rem;
  float: left;
  display: block;
  margin-right: 2.1276595745%;
  width: 100%; }
  .pager:last-child {
    margin-right: 0; }
  .pager::after {
    clear: both;
    content: "";
    display: block; }
  @media screen and (min-width: 53.75rem) {
    .pager {
      padding: 1.25rem 0; } }
.page-prev {
  width: 30%;
  display: block;
  float: left;
  text-align: left; }
  .page-prev a {
    text-decoration: none;
    padding: 0.625rem 0.9375rem;
    display: inline-block;
    font-size: 0.875rem;
    font-weight: bold;
    border: 1px solid #cacaca;
    border-radius: 0.1875rem; }

.page-next {
  width: 30%;
  display: block;
  float: right;
  text-align: right; }
  .page-next a {
    text-decoration: none;
    padding: 0.625rem 0.9375rem;
    display: inline-block;
    font-size: 0.875rem;
    font-weight: bold;
    border: 1px solid #cacaca;
    border-radius: 0.1875rem; }

.page-numbers {
  width: 40%;
  display: block;
  float: left;
  text-align: center;
  font-size: 0.875rem;
  margin: 0.4375rem 0 0; }
  .page-numbers .page-number {
    font-weight: bold;
    font-size: 1.125rem; }

.tag-color1 {
  background: #f44336; }

.tag-color2 {
  background: #2196f3; }

.tag-color3 {
  background: #4caf50; }

.tag-color4 {
  background: #fdd835; }

.tag-color5 {
  background: #9e9e9e; }

.tag-color6 {
  background: #e91e63; }

.tag-color7 {
  background: #03a9f4; }

.tag-color8 {
  background: #8bc34a; }

.tag-color9 {
  background: #ffc107; }

.tag-color10 {
  background: #607d8b; }

.tag-color11 {
  background: #9c27b0; }

.tag-color12 {
  background: #00bcd4; }

.tag-color13 {
  background: #cddc39; }

.tag-color14 {
  background: #ff9800; }

.tag-color15 {
  background: #795548; }

.tag-color16 {
  background: #673ab7; }

.tag-color17 {
  background: #009688; }

.tag-color18 {
  background: #ff5722; }

.tag-color19 {
  background: #3f51b5; }
