@charset "UTF-8";
/*-------------------------CSS Reset*/
html,
body,
h1,
h2,
h3,
h4,
h5,
h6,
blockquote,
ul,
ol,
li,
dl,
dt,
dd,
p,
figure,
figcaption,
form {
  margin: 0;
  padding: 0;
}

*,
*:before,
*:after {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
}

html {
  font-size: 62.5%;
}

body {
  font-family: "source-han-sans-japanese", sans-serif;
  font-size: 1.6rem;
  color: #333333;
  text-size-adjust: 100%;
  font-size: 1.6rem;
  letter-spacing: .02em;
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
  font-feature-settings: "palt" 1;
  background-color: #000;
  font-weight: 300;
}

@media (max-width: 640px) {
  body {
    font-size: 3.75vw;
  }
}

.safari body {
  font-feature-settings: "pkna" 1;
}

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

img {
  border: none;
  vertical-align: bottom;
}

hr {
  display: none;
}

/*-----------------------ボールド*/
strong, em {
  font-weight: bold;
  font-style: normal;
}

/*-----------------------約物*/
.mono {
  font-family: monospace;
}

/*-----------------------基本リンクスタイル*/
a {
  color: inherit;
  text-decoration: none;
}

/*-----------------------真ん中寄せ、右寄せ*/
.align-c {
  text-align: center;
}

.align-r {
  text-align: right;
}

.align-l {
  text-align: left;
}

table {
  border-collapse: collapse;
}

/*clearfix start*/
.clearfix:after {
  content: "";
  display: table;
  clear: both;
}

/*clearfix end*/
@media (max-width: 640px) {
  .only-pc {
    display: none;
  }
}

@media (min-width: 641px) {
  .only-sp {
    display: none;
  }
}

/*layout
----------------------------------*/
.col2-wrapper {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}

.col2-wrapper > .col2-inner {
  width: 50%;
}

@media (max-width: 640px) {
  .col2-wrapper > .col2-inner {
    width: 100% !important;
  }
}

/*.site-wrapper
----------------------------------*/
.site-wrapper {
  max-width: 1440px;
  margin: 0 auto;
  background-color: #f0f0f0;
  padding-top: 67px;
}

@media (max-width: 640px) {
  .site-wrapper {
    padding-top: 15.625vw;
  }
}

/*.tag
------------------------*/
.tag {
  color: #fff;
  font-size: 1.1rem;
  line-height: 1;
  display: inline-block;
  padding: 5px;
  font-weight: 700;
}

@media (max-width: 640px) {
  .tag {
    font-size: 3.4375vw;
    padding: 1.5625vw;
  }
}

.tag[data-type="des"] {
  background-color: #ec9c61;
}

.tag[data-type="web"] {
  background-color: #3ac180;
}

.tag[data-type="uxi"] {
  background-color: #b7c800;
}

.tag[data-type="pho"] {
  background-color: #2db8dd;
}

.tag[data-type="vid"] {
  background-color: #8957a1;
}

.tag[data-type="cst"] {
  background-color: #dc6b90;
}

.tag[data-type="stk"] {
  background-color: #dc6b90;
}

.tag[data-type="sch"],
.tag[data-type="plc"] {
  background-color: #dedede;
  color: #333333;
}

.tag[data-type="ch1"] {
  background-color: #fff;
  color: #1ba68e;
  border-radius: 3px;
}

.tag[data-type="ch2"] {
  background-color: #fff;
  color: #f54e79;
  border-radius: 3px;
}

/*.app-icon
------------------------*/
.app-icon {
  display: inline-block;
  width: 24px;
  height: 24px;
}

.app-icon img {
  max-width: 100%;
  width: auto;
}

/*.session-tag-list
--------------------------*/
.tag-list {
  display: flex;
  flex-wrap: wrap;
}

.tag-list .item {
  margin-right: 5px;
  line-height: 0;
}

/*.session-icon-list
------------------------*/
.icon-list {
  display: flex;
  flex-wrap: wrap;
}

.icon-list .item {
  margin-right: 5px;
}

/*.caption base
------------------------*/
.caption {
  color: #777;
  font-size: 1.4rem;
}

@media (max-width: 640px) {
  .caption {
    font-size: 3.75vw;
  }
}

.header {
  background-color: #2a2a2a;
  height: 67px;
  position: fixed;
  max-width: 1440px;
  width: 100%;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: 100;
}

@media (max-width: 640px) {
  .header {
    height: 15.625vw;
  }
}

.header .header-inner {
  max-width: 1200px;
  min-width: 1024px;
  width: 90%;
  box-sizing: border-box;
  height: 100%;
  margin: 0 auto;
  position: relative;
}

@media (max-width: 1024px) {
  .header .header-inner {
    width: 100%;
    min-width: auto;
  }
  .header .header-inner::before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background-color: #2a2a2a;
    z-index: 2;
  }
}

.header .logo-site {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
  z-index: 3;
}

.header .logo-site img {
  max-width: 100%;
  width: auto;
}

@media (max-width: 1024px) {
  .header .logo-site {
    left: 4.6875vw;
  }
}

@media (max-width: 640px) {
  .header .logo-site {
    width: 32.5vw;
  }
}

.header .logo-company {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 0;
}

@media (max-width: 1024px) {
  .header .logo-company {
    display: none;
  }
}

.header .nav-box {
  width: 620px;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  position: absolute;
  right: 0px;
  top: 80%;
  transform: translateY(-120%);
  z-index: 1;
}

@media (max-width: 1024px) {
  .header .nav-box {
    width: 100%;
    background-color: #000;
    display: block;
    top: 67px;
    right: 0;
    transform: translateY(-120%);
    transition: .4s transform ease-in-out;
  }
}

@media (max-width: 640px) {
  .header .nav-box {
    top: 15.625vw;
  }
}

@media (max-width: 1024px) {
  .header .nav-box.open {
    transform: translateY(0);
  }
}

.header .global-nav {
  color: #fff;
  width: 520px;
  font-weight: 700;
  font-size: 1.4rem;
  display: flex;
  justify-content: space-around;
}

@media (max-width: 1024px) {
  .header .global-nav {
    display: block;
    width: 100%;
  }
}

@media (max-width: 640px) {
  .header .global-nav {
    font-size: 5vw;
  }
}

.header .global-nav .item {
  border-bottom: 1px solid #2a2a2a;
}

.header .global-nav .item a {
  display: block;
}

@media (max-width: 1024px) {
  .header .global-nav .item a {
    padding: 20px 7.8125vw;
  }
}

@media (max-width: 640px) {
  .header .global-nav .item a {
    width: 6.5625vw 7.8125vw;
  }
}

@media (min-width: 641px) {
  .header .global-nav .item a:hover {
    color: #238bce;
  }
}

@media (max-width: 1024px) {
  .header .entry-box {
    padding: 60px 0;
  }
}

@media (max-width: 640px) {
  .header .entry-box {
    padding: 9.375vw;
  }
}

.header .entry-box .btn-entry {
  cursor: pointer;
  color: #fff;
  font-weight: 400;
  font-size: 1.2rem;
  line-height: 23px;
  height: 23px;
  display: inline-block;
  padding: 0 15px;
  background-color: #238bce;
  border-radius: 12px;
  transition: 0.3s ease-out;
}

.header .entry-box .btn-entry:hover {
  background-color: #035cc7;
}

.header .entry-box .btn-entry.disable {
  background-color: #6e6e6e;
  cursor: auto;
}

@media (max-width: 1024px) {
  .header .entry-box .btn-entry {
    font-size: 1.4rem;
    line-height: 45px;
    height: 45px;
    border-radius: 45px;
    padding: 0 80px;
  }
}

@media (max-width: 640px) {
  .header .entry-box .btn-entry {
    font-size: 4.0625vw;
    line-height: 14.0625vw;
    height: 14.0625vw;
    border-radius: 7.03125vw;
    padding: 0 22.1875vw;
  }
}

.header .entry-box .caption {
  color: #fff;
  display: none;
}

@media (max-width: 1024px) {
  .header .entry-box .caption {
    display: block;
    font-size: 1.4rem;
    line-height: 1;
    margin-top: 20px;
  }
}

@media (max-width: 640px) {
  .header .entry-box .caption {
    font-size: 3.75vw;
    margin-top: 4.6875vw;
  }
}

.header .btn-menu {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 4.6875vw;
  cursor: pointer;
  width: 44px;
  height: 34px;
  display: flex;
  align-items: center;
  display: none;
  z-index: 3;
}

@media (max-width: 1024px) {
  .header .btn-menu {
    display: flex;
  }
}

@media (max-width: 640px) {
  .header .btn-menu {
    width: 6.875vw;
    height: 5.3125vw;
  }
}

.header .btn-menu span {
  display: block;
  width: 44px;
  height: 6px;
  background-color: #fff;
  border-radius: 3px;
  position: relative;
  transition: .3s ease-in-out transform;
}

.header .btn-menu span::before, .header .btn-menu span::after {
  content: " ";
  display: block;
  width: 44px;
  height: 6px;
  background-color: #fff;
  border-radius: 3px;
  position: absolute;
  transition: .3s ease-out transform;
}

.header .btn-menu span::before {
  transform: translateY(-14px);
}

.header .btn-menu span::after {
  transform: translateY(14px);
}

@media (max-width: 640px) {
  .header .btn-menu span {
    width: 6.875vw;
    height: 0.9375vw;
    border-radius: 0.46875vw;
  }
  .header .btn-menu span::before, .header .btn-menu span::after {
    width: 6.875vw;
    height: 0.9375vw;
    border-radius: 0.46875vw;
  }
  .header .btn-menu span::before {
    transform: translateY(2.1875vw);
  }
  .header .btn-menu span::after {
    transform: translateY(-2.1875vw);
  }
}

.header .btn-menu.open span {
  background-color: transparent;
  transform: rotate(180deg);
}

.header .btn-menu.open span::before {
  top: 0;
  transform: translateY(0) rotate(45deg);
}

.header .btn-menu.open span::after {
  bottom: 0;
  transform: translateY(0) rotate(-45deg);
}

footer {
  color: #999;
  background: #2a2a2a;
}

.footer-inner {
  max-width: 1200px;
  width: 90%;
  margin: 0 auto;
  padding: 50px 0 34px;
}

@media (max-width: 640px) {
  .footer-inner {
    padding: 9.375vw 0px 4.6875vw;
  }
}

@media (max-width: 640px) {
  .footer-inner img {
    width: 100%;
  }
}

.ftr-content-01 {
  max-width: 650px;
  font-size: 1.2rem;
  line-height: 150%;
}

@media (max-width: 640px) {
  .ftr-content-01 {
    font-size: 3.4375vw;
  }
}

.ftr-content-01 > h2 {
  font-weight: normal;
  font-size: 1.2rem;
  line-height: 150%;
}

@media (max-width: 640px) {
  .ftr-content-01 > h2 {
    font-size: 3.4375vw;
  }
}

.ftr-content-01 .contact::after,
.ftr-content-01 .opening-period::after {
  content: " ";
  display: block;
  clear: both;
}

.ftr-content-01 .contact > dt,
.ftr-content-01 .contact dd,
.ftr-content-01 .opening-period > dt,
.ftr-content-01 .opening-period dd {
  float: left;
}

.ftr-content-01 .contact > dd {
  padding: -0px 0 0 3em;
}

@media (max-width: 640px) {
  .ftr-content-01 .contact > dd {
    padding: 0;
  }
}

.ftr-content-01 .opening-period > dt::before {
  content: '※';
}

.ftr-content-01 .opening-period > dt::after {
  content: ' ： ';
}

@media (max-width: 640px) {
  .ftr-content-01 .opening-period > dt,
  .ftr-content-01 .opening-period > dd {
    float: none;
    display: inline;
  }
}

.ftr-content-01 .btn-info {
  display: inline-block;
  margin: 1em 0;
}

@media (max-width: 640px) {
  .ftr-content-01 .btn-info {
    margin: 6.25vw 0 0;
  }
}

@media (max-width: 640px) {
  .ftr-content-01 > p {
    margin: 6.25vw 0 0;
  }
}

.ftr-content-02 {
  margin: 40px 0 0;
}

@media (max-width: 640px) {
  .ftr-content-02 {
    margin: 5vw 0 0;
  }
}

@media (max-width: 640px) {
  .ftr-content-02 .link-adobe {
    display: block;
    width: 6.40625vw;
  }
}

.ftr-content-02 .sns-wrap {
  float: right;
}

@media (max-width: 640px) {
  .ftr-content-02 .sns-wrap {
    float: none;
    display: flex;
    justify-content: flex-end;
    align-items: flex-start;
    text-align: right;
    margin: 10.9375vw 0 0;
  }
}

.ftr-content-02 .sns-wrap > li {
  display: inline-block;
}

.ftr-content-02 .sns-wrap > li + li {
  margin: 0 0 0 20px;
}

@media (max-width: 640px) {
  .ftr-content-02 .sns-wrap > li + li {
    margin: 0 0 0 3.125vw;
  }
}

.ftr-content-02 .sns-wrap > li > a {
  display: block;
}

@media (max-width: 640px) {
  .ftr-content-02 .sns-wrap > li img {
    vertical-align: top;
  }
}

.ftr-content-02 .sns-wrap .link-folllow {
  position: relative;
  display: block;
  height: 14px;
  top: 50%;
  margin: 0 15px 0 0;
  transform: translateY(-50%);
}

@media (max-width: 640px) {
  .ftr-content-02 .sns-wrap .link-folllow {
    position: static;
    top: 0;
    display: inline-block;
    height: auto;
    margin: 0 0 0;
    padding: 1.875vw 1.5625vw 0 0;
    transform: translateY(0);
  }
}

@media (max-width: 640px) {
  .ftr-content-02 .sns-wrap .link-folllow img {
    width: 8.90625vw;
  }
}

@media (max-width: 640px) {
  .ftr-content-02 .sns-wrap .link-twitter {
    font-size: 8.59375vw;
  }
}

@media (max-width: 640px) {
  .ftr-content-02 .sns-wrap .link-facebook {
    font-size: 7.8125vw;
    margin: 0 2.34375vw 0 0;
  }
}

.ftr-content-02 .copyright {
  clear: both;
  float: right;
  text-align: right;
  margin: 12px 0 0 0;
  padding: 0 40px 0 0;
}

@media (max-width: 640px) {
  .ftr-content-02 .copyright {
    float: none;
    display: block;
    font-size: 2.8125vw;
    text-align: center;
    letter-spacing: 0;
    margin: 3.75vw 0 0;
    padding: 0;
  }
}

.ftr-content-02::after {
  content: " ";
  display: block;
  clear: both;
}

@media (min-width: 641px) {
  footer a:hover {
    text-decoration: underline;
  }
}

@media (max-width: 640px) {
  footer a {
    text-decoration: underline;
  }
}

main {
  display: block;
  background: #fff;
}

.page-inner {
  max-width: 1080px;
  width: 90%;
  margin-right: auto;
  margin-left: auto;
  display: block;
}

.page-ttl {
  font-size: 4.6rem;
  font-weight: 500;
  line-height: 200px;
  background: #f0f0f0;
}

.page-contents {
  padding: 60px 0 120px;
}

.page-lead {
  margin-bottom: 30px;
}

.info-item {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  border: 1px solid #d6d6d6;
  border-bottom-width: 0;
}

.info-item:not(:first-of-type) {
  margin-top: 40px;
}

.info-item > dt {
  width: 230px;
  box-sizing: border-box;
  font-weight: 700;
  background: #f0f0f0;
  padding: 30px 20px;
  border-bottom: 1px solid #d6d6d6;
  border-right: 1px solid #d6d6d6;
}

.info-item > dd {
  width: calc(100% - 230px);
  box-sizing: border-box;
  padding: 30px 30px;
  border-bottom: 1px solid #d6d6d6;
}

.info-item > dd a {
  color: #238bce;
}

@media (min-width: 641px) {
  .info-item > dd a:hover {
    text-decoration: underline;
  }
}

@media (max-width: 640px) {
  .page-inner {
    max-width: 100%;
  }
  .page-ttl {
    font-size: 5.9375vw;
    line-height: 29.375vw;
    text-align: center;
  }
  .page-contents {
    padding: 7.8125vw 0 12.5vw;
  }
  .page-lead {
    margin-bottom: 6.875vw;
  }
  .info-item {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    border-right-width: 0;
    border-left: 0;
    padding-top: 7.8125vw;
  }
  .info-item:not(:first-of-type) {
    margin-top: 10.9375vw;
  }
  .info-item > dt {
    width: 100%;
    background: #fff;
    padding: 0;
    border-width: 0;
    line-height: 1;
    margin-bottom: 1.5625vw;
  }
  .info-item > dt:not(:first-of-type) {
    margin-top: 6.25vw;
  }
  .info-item > dd {
    width: 100%;
    box-sizing: border-box;
    padding: 0;
    border-width: 0;
  }
  .info-item > dd a {
    text-decoration: underline;
  }
}
