@charset "utf-8";

/*-----------------------------------------------------------------*/
/*INIT*/
/*-----------------------------------------------------------------*/
html {
  font-family: Hiragino Kaku Gothic ProN, Meiryo, sans-serif;
}

body {
  font-family: Hiragino Kaku Gothic ProN, Meiryo, sans-serif;
  margin: 0px;
  -webkit-text-size-adjust: 100%;
}

img {
  vertical-align: bottom;
  border: 0;
  max-width: 100%;
  height: auto;
}

a {
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

/*-----------------------------------------------------------------*/
/*FRAME*/
/*-----------------------------------------------------------------*/
header {
  position: relative;
  z-index: 999;
}

header h1,
header h2 {
  padding: 0;
  margin: 0;
}

article {
  position: relative;
  z-index: 1;
  box-sizing: border-box;
}

.pg404 article {
  text-align: center;
}

.pg404 article p {
  font-size: 15px;
}

.pg404 article p.title {
  padding-bottom: 20px;
  font-size: 26px;
  font-weight: bold;
  border-bottom: 5px solid #eaeaea;
}

footer {
  position: relative;
  z-index: 998;
}

footer .rights {
  text-align: center;
  padding: 30px 0;
  margin: 0;
  font-size: 12px;
}

footer .navidx {
  display: block;
  font-size: 40px;
  position: absolute;
}

footer .navpgtop {
  display: block;
  font-size: 40px;
  position: absolute;
}

footer .navidx i,
footer .navpgtop i {
  color: rgba(255, 255, 255, 0.4);
}

footer .navidx a:hover i,
footer .navpgtop a:hover i {
  color: rgba(255, 255, 255, 0.7);
  text-decoration: none;
}

footer .rights-logo {
  display: block;
  margin: 0 auto;
}

footer .rights a {
  display: block;
  text-align: center;
}

footer .rights a:hover {
  text-decoration: none;
}

footer .rights-logo {
  margin: -30px 0 -29px;
}


/*-----------------------------------------------------------------*/
/*PC*/
/*-----------------------------------------------------------------*/
@media screen and (min-width: 501px) {

  .only-m,
  .monly {
    display: none;
  }

  .kv {
    padding: 0px;
  }

  .kv * {}

  .kv-inr {
    height: 370px !important;
    overflow: hidden !important;
  }


  html,
  body {
    min-width: 1000px;
  }

  body>* {}

  body>*>* {
    width: 1000px;
    margin: 0 auto;
    position: relative;
  }

  .pc-row,
  .pc-rows>* {
    display: flex;
    justify-content: space-around;
    align-items: stretch;
    align-content: center;
    list-style: none;
    padding: 0;
  }

  .pc-row>*,
  .pc-rows>*>* {
    flex: 1 0 0%;
  }

  .pc-col,
  .pc-cols>* {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: stretch;
    align-content: center;
  }

  [class*="prow"],
  [class*="prows"]>* {
    display: flex;
    justify-content: flex-start;
    align-items: stretch;
    align-content: center;
    list-style: none !important;
    padding: 0;
    margin: 0;
  }

  [class*="prow"]>*,
  [class*="prows"]>*>* {
    flex: 1 0 0%;
  }

  [class*="pcol"],
  [class*="pcols"]>* {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: stretch;
    align-content: center;
  }

  .prow1>* {
    flex: 0 0 calc(100% / 1);
  }

  .prow2>* {
    flex: 0 0 calc(100% / 2);
  }

  .prow3>* {
    flex: 0 0 calc(100% / 3);
  }

  .prow4>* {
    flex: 0 0 calc(100% / 4);
  }

  .prow5>* {
    flex: 0 0 calc(100% / 5);
  }

  .prow6>* {
    flex: 0 0 calc(100% / 6);
  }

  .prow7>* {
    flex: 0 0 calc(100% / 7);
  }

  .prow8>* {
    flex: 0 0 calc(100% / 8);
  }

  .prow9>* {
    flex: 0 0 calc(100% / 9);
  }

  .prow10>* {
    flex: 0 0 calc(100% / 10);
  }


  header {
    height: 50px;
  }

  header h1 {
    position: absolute;
    top: 0px;
    left: calc(50% - 100px);
    width: 200px;
    height: 50px;
  }

  header h1 a {
    display: block;
    width: 100%;
  }

  header h1 img {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }

  nav.topmenu {
    height: 50px;
    font-size: 0px;
  }

  nav.topmenu ul {
    display: flex;
    padding: 0;
  }

  nav.topmenu li {
    text-align: center;
    flex: 1 1 0;
    position: relative;
  }

  nav.topmenu li+li:before,
  h1:before {
    content: ".";
    font-size: 0px;
    position: absolute;
    top: 5px;
    left: 0px;
    border-right: 1px solid rgba(255, 255, 255, 0.8);
    height: 40px;
  }

  nav.topmenu li:nth-child(3) {
    margin-left: 200px;
  }

  nav.topmenu li a {
    line-height: 40px;
  }

  nav.topmenu li a img {
    max-height: 2em;
    margin-top: -5px;
  }


  footer {
    min-width: 1000px;
  }

  footer .navidx {
    top: 10px;
    left: 0px;
  }

  footer .navpgtop {
    top: 10px;
    right: 0px;
  }

  .pg404 article {
    margin: 0;
  }

  .pg404 article>div {
    padding-top: 70px;
  }

  .pg404 article .box404 {
    border: 0px solid transparent;
    background-image: url(/img/cm404.png);
    background-repeat: no-repeat;
    background-position: center bottom;
    background-size: contain;
    min-height: calc(100vh - 120px);
    box-sizing: border-box;
    padding: 0;
    margin: 0 0 -40px 0;
  }

  .pg404 article .box404 p {
    font-size: 26px;
    text-align: center;
    padding: 20px;
  }
}

/*-----------------------------------------------------------------*/
/*MOBILE*/
/*-----------------------------------------------------------------*/
@media screen and (max-width: 500px) {

  .only-pc,
  .pconly {
    display: none;
  }

  html,
  body {
    width: 500px;
    overflow-x: hidden;
  }

  * {
    max-width: 100%;
  }

  .m-row,
  .m-rows>* {
    display: flex;
    justify-content: space-around;
    align-items: center;
    align-content: center;
    list-style: none;
    padding: 0;
  }

  .m-row>*,
  .m-rows>*>* {
    flex: 1 1 auto;
  }

  .m-col,
  .m-cols>* {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: stretch;
    align-content: center;
  }

  body>*>* {
    width: calc(100vw - 20px);
    margin: 0 auto;
    overflow: hidden;
  }

  [class*="mrow"],
  [class*="mrows"]>* {
    display: flex;
    justify-content: flex-start;
    align-items: stretch;
    align-content: center;
    list-style: none !important;
    padding: 0;
    margin: 0;
  }

  [class*="mrow"]>*,
  [class*="mrows"]>*>* {
    flex: 1 0 0%;
  }

  [class*="mcol"],
  [class*="mcols"]>* {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: stretch;
    align-content: center;
  }

  .mrow1>* {
    flex: 0 0 calc(100% / 1);
  }

  .mrow2>* {
    flex: 0 0 calc(100% / 2);
  }

  .mrow3>* {
    flex: 0 0 calc(100% / 3);
  }

  .mrow4>* {
    flex: 0 0 calc(100% / 4);
  }

  .mrow5>* {
    flex: 0 0 calc(100% / 5);
  }

  .mrow6>* {
    flex: 0 0 calc(100% / 6);
  }




  header {
    overflow: visible;
    height: 50px !important;
    box-sizing: border-box;
  }

  header h1 {
    position: fixed;
    top: 0px;
    left: 0px;
    width: 100vw;
    height: 50px;
    text-align: center;
  }

  header h1 img {
    width: auto;
    height: 50px !important;
    object-fit: contain;
  }

  .telbtn {
    display: block;
    position: absolute;
    left: -12px;
    top: -14px;
    font-size: 36px;
    padding: 8px;
    transform: scale(-1, 1);
  }

  .teloption {
    text-align: center;
    padding-left: 0px;
    list-style: none;
    line-height: 2;
    font-size: 150%;
    margin: -30px;
    max-width: none;
  }

  .teloption li {
    padding: 20px 0;
  }

  .teloption li+li {
    border-top: 1px solid #ddd;
  }

  .teloption a {
    display: inline-block;
    width: 100%;
    color: #007AFF;
  }

  .teloption a:hover {
    text-decoration: none;
    background: #eee;
  }

  .togglemenu {
    display: block;
    position: absolute;
    right: 3px;
    top: -7px;
    font-size: 34px;
    padding: 8px;
  }

  nav.topmenu {
    width: calc(100vw - 20px);
    box-sizing: border-box;
    position: fixed;
    right: 10px;
    top: 50px;
    z-index: 998;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: #efefef;
    display: none;
    -webkit-backdrop-filter: blur(2px);
  }

  nav.topmenu ul {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    margin-bottom: 0;
  }

  nav.topmenu li {
    flex: 1 1 40px;
    text-align: center;
    display: flex;
    align-items: stretch;
  }

  nav.topmenu li a {
    display: flex;
    align-items: center;
    justify-content: center;
  }

  nav.topmenu li+li a {
    border-top: 1px solid rgba(255, 255, 255, 0.7);
  }

  nav.topmenu {
    background: rgba(0, 0, 0, 0.65)
  }

  /*モバイルメニュー背景カラー*/
  nav.topmenu li a img {
    max-height: 2em;
  }

  /*モバイルメニュー内テキスト*/




  article table ul,
  article table ol {
    padding-left: 15px;
  }

  footer .rights {
    font-size: 10px;
  }

  footer .navidx {
    top: 10px;
    left: 10px;
  }

  footer .navpgtop {
    top: 10px;
    right: 10px;
  }

  .pg404 article {
    margin: 0 !important;
  }

  .pg404 article>div {
    padding: 70px 0 0 !important;
    min-height: none !important;
  }

  .pg404 article .box404 {
    border: 0px solid transparent;
    background-image: url(/img/cm404.png);
    background-repeat: no-repeat;
    background-position: center bottom;
    background-size: contain;
    min-height: calc(100vh - 180px);
    box-sizing: border-box;
  }

  .pg404 article .box404 p {
    font-size: 26px;
    text-align: center;
    padding: 20px;
  }
}