@charset "utf-8";

/*section bgc*/
#top section#news { background: #fff; }
#top section#reasons { background: #fff; }
#top section#reasons > .container { background: var(--colorGray); }
#top section#subject { background: var(--colorGray); }
#top section#subject > .container { background: #fff; }
#top section#schedule { background: #fff; }
#top section#schedule > .container { background: var(--colorGray); }
#top section#use { background: var(--colorGray); }
#top section#use > .container { background: #fff; }
#top section#booth { background: #fff; }
#top section#booth > .container { background: var(--colorGray); }
#top section#faq { background: var(--colorGreen); }
#top section#faq > .container { background: #fff; }

/*kv*/
#top #kv {
  width: 100%;
  background: #fff;
  border-radius: 0;
  padding: 0 0 107px;
  position: relative;
  overflow: hidden;
  z-index: 1;
}
#top #kv .mark01 {
  width: 100%;
  height: calc(100% - 107px);
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-78.7%,0);
  padding-top: calc(100vw/100 * 5.2);
  z-index: 3;
  pointer-events: none;
  overflow: hidden;
  clip-path: rect(0 100% 0 0);
}
#top #kv .mark02 {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-77.9%,0);
  z-index: 3;
  pointer-events: none;
  overflow: hidden;
  clip-path: rect(0 100% 0 0);
}
#top #kv .mark01 img,
#top #kv .mark02 img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
#top #kv .image {
  width: 100%;
  height: auto;
  position: relative;
  z-index: 2;
  opacity: 0;
}
#top #kv .image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
#top #kv .contents {
  width: calc(100% - 40px);
  display: flex;
  flex-direction: column;
  align-items: center;
  position: absolute;
  top: calc(50% - 54px);
  left: 50%;
  z-index: 5;
  opacity: 1;
  transform: translate(-50%,-50%);
}
#top #kv .contents .logo {
  margin: 10px 0 0 0;
  opacity: 0;
}
#top #kv .contents h2 {
  color: #fff;
  font-size: 38px;
  line-height: 1.3em;
  font-weight: 700;
  text-align: center;
  letter-spacing: 5px;
  text-shadow: 0px 0px 10px rgba(0,0,0,.45);
  opacity: 0;
}
#top #kv .contents p {
  color: #fff;
  font-size: 24px;
  line-height: 1.3em;
  font-weight: 700;
  text-align: center;
  letter-spacing: 5px;
  text-shadow: 0px 0px 10px rgba(0,0,0,.45);
  margin: 20px 0 0 0;
  opacity: 0;
}
#top #kv .contents p.caution {
  color: #fff;
  font-size: 16px;
  line-height: 1.2em;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0;
  text-shadow: 0px 0px 10px rgba(0,0,0,.45);
  margin: 0;
  opacity: 0;
}
@media screen and (max-width: 1199px) {
  #top #kv .contents h2 {
    font-size: calc(100vw/100*3.2);
  }
  #top #kv .contents p {
    font-size: calc(100vw/100*2);
  }
  #top #kv .contents p.caution {
    font-size: calc(100vw/100*1.6);
  }
  #top #kv .contents .logo {
    width: calc(100vw/100*38);
  }
}
#top #kv .contents .btnBox {
  margin-top: 15px;
  flex-direction: column;
  gap: 20px;
}
#top #kv .contents .btnBox a {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  max-width: 240px;
  height: 44px;
  background: var(--colorPink);
  border-radius: 6px;
  color: #fff;
  font-size: 17px;
  line-height: 1.2em;
  font-weight: 700;
  text-decoration: none;
  opacity: 0;
}
#top #kv .contents .btnBox a:hover {
  opacity: 1;
  background: var(--colorGreen);
}
/*kv animation*/
#top #kv.show .mark01 {
  animation: kv-mark .6s cubic-bezier(0.4, 0, 0.2, 1) 0.8s forwards;
}
#top #kv.show .mark02 {
  animation: kv-mark .6s cubic-bezier(0.4, 0, 0.2, 1) 0.5s forwards;
}
@keyframes kv-mark {
	100% {
    clip-path: rect(0 100% 100% 0);
	}
}
#top #kv.show .image {
  animation: fadeIn 1s ease 1.5s forwards;
}
#top #kv.show .contents h2 {
  animation: fadeUp 1s ease 2s forwards;
}
#top #kv.show .contents p {
  animation: fadeUp 1s ease 2s forwards;
}
#top #kv.show .contents .logo {
  animation: fadeUp 1s ease 2s forwards;
}
#top #kv.show .contents .btnBox a {
  animation: fadeUp 1s ease 2s forwards;
}
#top #kv.show .contents p.caution {
  animation: fadeUp 1s ease 2s forwards;
}

/*news*/
#top #news {
  width: 100%;
  border-radius: 0;
  position: absolute;
  left: 0;
  bottom: 0;
}
#top #news .wrap {
  max-width: var(--ctsWidth);
  padding: 40px 0;
  position: relative;
  z-index: 10;
}
#top #news .top_news {
  justify-content: space-between;
  align-items: center;
  gap: 20px;
}
#top #news .top_news .news_set {
  width: calc(100% - 74px - 20px);
  justify-content: flex-start;
  align-items: center;
  gap: 20px;
  flex-wrap: nowrap;
}
#top #news .top_news .news_set .cat_tag {
  width: 76px;
  text-align: center;
  font-size: 14px;
  line-height: 1.2em;
  font-weight: 900;
  color: #fff;
  padding: 2px 10px;
  background: var(--colorGreen);
}
#top #news .top_news .news_set .date {
  width: 84px;
  color: var(--colorGreen);
  font-size: 16px;
  line-height: 1.5em;
  font-weight: 500;
}
#top #news .top_news .news_set h2 {
  width: calc(100% - 40px - 76px - 84px);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#top #news .top_news .news_set h2 a {
  color: var(--txtColor);
  font-size: 16px;
  line-height: 1.5em;
  font-weight: 500;
  text-decoration: none;
}
#top #news .top_news .news_set h2 a:hover {
  color: var(--colorGreen);
  opacity: 1;
}
#top #news .top_news .more {
  width: 74px;
  text-align: right;
}
#top #news .top_news .more a {
  color: var(--txtColor);
  font-size: 16px;
  line-height: 1.5em;
  font-weight: 700;
}

/*reasons*/
#reasons .inner {
  width: 100%;
  margin: 0 auto;
  position: relative;
  overflow: hidden;
}
#reasons .map {
  width: 60%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
}
#reasons .map .pin {
  position: absolute;
  background: url(../images/pin_l.svg) no-repeat center / contain;
  z-index: 3;
  opacity: 0;
  transform: scale(.5);
}
#reasons .map.is-show .pin {
  animation-name: pin-fade-in;
  animation-duration: .5s;
  animation-timing-function: ease-in;
  animation-fill-mode: forwards;
}
@keyframes pin-fade-in {
	0% {
    opacity: 0;
    transform: scale(.5);
	}
	30% {
    opacity: 1;
	}
	60% {
    opacity: 1;
    transform: scale(1.2);
	}
	90% {
    opacity: 1;
    transform: scale(.9);
	}
	100% {
    opacity: 1;
    transform: scale(1);
	}
}
#reasons .map .pin_l {
  width: 52px;
  height: 73px;
}
#reasons .map .pin_m {
  width: 34px;
  height: 47px;
}
#reasons .map .pin_s {
  width: 26px;
  height: 36px;
}
#reasons .map .p01 {
  top: 26%;
  right: 36%;
  animation-delay: .5s;
}
#reasons .map .p02 {
  top: 23%;
  left: 25%;
  animation-delay: 1s;
}
#reasons .map .p03 {
  top: 18%;
  right: 23.3%;
  animation-delay: 1.5s;
}
#reasons .map .p04 {
  bottom: 23%;
  left: 20%;
  animation-delay: 2s;
}
#reasons .map .p05 {
  top: 13.5%;
  right: 31.4%;
  animation-delay: 1.8s;
}
#reasons .map .p06 {
  top: 28%;
  left: 1%;
  animation-delay: 1.3s;
}
#reasons .map .p07 {
  top: 27.2%;
  left: 44.5%;
  animation-delay: .8s;
}
#reasons .map .p08 {
  top: 42.8%;
  left: 18%;
  animation-delay: 1.2s;
}
@media screen and (min-width: 1487px) {
  #reasons .map .p01 {
    top: 205px;
    right: unset;
    left: 516px;
  }
  #reasons .map .p02 {
    top: 178px;
    left: 223px;
  }
  #reasons .map .p03 {
    top: 142px;
    right: unset;
    left: 644px;
  }
  #reasons .map .p04 {
    bottom: 178px;
    left: 179px;
  }
  #reasons .map .p05 {
    top: 105px;
    right: unset;
    left: 595px;
  }
  #reasons .map .p06 {
    top: 217px;
    left: 9px;
  }
  #reasons .map .p07 {
    top: 211px;
    left: 396px;
  }
  #reasons .map .p08 {
    top: 333px;
    left: 162px;
  }
}

#reasons .wrap {
  padding: 60px 0 100px;
  display: flex;
  justify-content: flex-end;
}
#reasons .contents {
  width: 37.5%;
}
#reasons h2 {
  color: var(--colorPink);
  font-size: 30px;
  line-height: 1.5em;
  font-weight: 700;
  letter-spacing: 5px;
  text-align: center;
  margin: 0 0 40px;
}
#reasons h2 span {
  padding: 10px 20px;
  border-top: 2px solid var(--colorPink);
  border-bottom: 2px solid var(--colorPink);
}
#reasons .cts_block {
  width: 100%;
  margin: 0;
  padding: 0;
}
#reasons .cts_block + .cts_block {
  margin-top: 40px;
}
#reasons .cts_block:nth-of-type(2) {
  transform: translate(-80px,0);
}
#reasons .cts_block:nth-of-type(3) {
  transform: translate(-160px,0);
}
#reasons .cts_block .title {
  justify-content: flex-start;
  align-items: center;
  gap: 12px;
  margin: 0 0 20px;
}
#reasons .cts_block .title .numble {
  background: #fff;
  width: 57px;
  height: 57px;
  border: 2px solid var(--colorPink);
  border-radius: 57px;
  margin: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  color: var(--colorPink);
  font-family: var(--fontAlata);
  font-size: 40px;
  line-height: 1.2em;
}
#reasons .cts_block .title h3 {
  color: var(--colorGreen);
  font-size: 20px;
  line-height: 1.2em;
  font-weight: 700;
}
#reasons .cts_block p {
  font-size: 16px;
  line-height: 1.5em;
  font-weight: 500;
  letter-spacing: -1px;
}

/*subject*/
#subject .wrap {
  padding: 70px 0;
  position: relative;
}
#subject .section-title {
  margin-bottom: 50px;
}
#subject .section-title span {
  padding-right: calc(40px + 25px);
}
#subject .section-title span:after {
  width: 40px;
  height: 40px;
  background: url(../images/icon-stethoscope.svg) no-repeat center / contain;
}
#subject .slide_wrap {
  display: flex;
  width: 100%;
  gap: 45px;
}
#subject .slide_wrap .slide_cts {
  width: calc((100% - 45px*2)/3);
  border: 1px solid var(--colorGreen);
  border-radius: 10px;
  padding: 40px;
}
#subject .slide_wrap .slide_cts h3 {
  color: var(--colorGreen);
  font-size: 22px;
  line-height: 1.2em;
  font-weight: 700;
}
#subject .slide_wrap .slide_cts h3 span {
  padding: 0 40px 0 0;
  position: relative;
}
#subject .slide_wrap .slide_cts h3 span:after {
  content: '';
  width: 32px;
  height: 32px;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translate(0,-50%);
}
#subject .slide_wrap .slide_cts:nth-of-type(1) h3 span:after {
  background: url(../images/icon-subject01.svg) no-repeat center / contain;
}
#subject .slide_wrap .slide_cts:nth-of-type(2) h3 span:after {
  background: url(../images/icon-subject02.svg) no-repeat center / contain;
}
#subject .slide_wrap .slide_cts:nth-of-type(3) h3 span:after {
  background: url(../images/icon-subject03.svg) no-repeat center / contain;
}
#subject .slide_wrap .slide_cts h4 {
  font-size: 16px;
  line-height: 1.4em;
  font-weight: 700;
  margin: 32px 0 8px;
  padding: 0 0 0 31px;
  position: relative;
}
#subject .slide_wrap .slide_cts h4:before {
  content: '';
  width: 21px;
  height: 21px;
  border-radius: 21px;
  background: none;
  border: 1px solid var(--colorGreen);
  position: absolute;
  left: 0;
  top: 50%;
  transform: translate(0,-50%);
}
#subject .slide_wrap .slide_cts h4:after {
  content: '';
  width: 10px;
  height: 5px;
  border-left: 1px solid var(--colorGreen);
  border-bottom: 1px solid var(--colorGreen);
  position: absolute;
  left: 0;
  top: 50%;
  transform: translate(55%,-65%) rotate(-45deg);
}
#subject .slide_wrap .slide_cts p {
  font-size: 16px;
  line-height: 1.2em;
  font-weight: 500;
}
#subject .txt_cts {
  margin: 50px 0 0 0;
  text-align: center;
}
#subject .txt_cts p {
  font-size: 16px;
  line-height: 1.4em;
  font-weight: 500;
}
#subject .txt_cts p + p {
  margin-top: 8px;
}
#subject .txt_cts p.caution {
  color: var(--colorPink);
  font-size: 18px;
  line-height: 1.4em;
  font-weight: 700;
}

/*schedule*/
#schedule {
  background: var(--colorGray);
}
#schedule .wrap {
  padding: 70px 0;
  position: relative;
}
#schedule .section-title {
  margin-bottom: 50px;
}
#schedule .section-title span {
  padding-right: calc(36px + 25px);
}
#schedule .section-title span:after {
  width: 36px;
  height: 36px;
  background: url(../images/icon-calendar.svg) no-repeat center / contain;
}
#schedule h3 {
  display: inline-block;
  color: var(--colorGreen);
  font-size: 20px;
  line-height: 1.4em;
  font-weight: bold;
  margin: 0 0 20px;
}
#schedule p + h3 {
  margin-top: 20px;
}
#schedule .time_txt {
  display: block;
  font-size: 18px;
  line-height: 1.4em;
  font-weight: 700;
}
#schedule h3 + .time_txt:not(.full) {
  display: inline-block;
  margin-left: 1.5em;
}
#schedule h3 + .time_txt.full {
  margin: 0 0 20px;
}
#schedule .table_wrap + .time_txt {
  margin-top: 10px;
}
#schedule .table_wrap.no_scrl {
  margin-right: 0;
  overflow-x: visible;
  overflow-y: visible;
}
.simplebar-track.simplebar-horizontal {
  background: var(--colorGreen02);
  border-radius: 20px;
}
.simplebar-scrollbar {
  background: var(--colorGreen);
  border-radius: 20px;
}
.simplebar-scrollbar:before {
  content: none;
}
#schedule .table_wrap .inner {
  width: 100%;
  padding: 0;
}
#schedule .table_wrap.no_scrl .inner {
  width: 100%;
  padding: 0;
}
#schedule .table_wrap table {
  table-layout: fixed;
  border-radius: 10px;
  width: 100%;
}
#schedule .table_wrap.no_scrl table {
  width: 100%;
}
#schedule .table_wrap table tr {
  border-bottom: 1px solid #CACACA;
}
#schedule .table_wrap table tr:last-child {
  border-bottom: none;
}
#schedule .table_wrap table .header th {
  background: var(--colorGreen);
  color: #fff;
  text-align: center;
  vertical-align: middle;
  font-size: 18px;
  line-height: 1.2em;
  font-weight: 700;
  height: 80px;
  padding: 15px;
  border-right: 1px solid #fff;
}
#schedule .table_wrap table .header th:first-child {
  width: 180px;
}
#schedule .table_wrap table .header.top th:first-child,
#schedule .table_wrap table tr:last-child th {
  background: var(--colorGray);
}
#schedule .table_wrap table th {
  background: var(--colorGreen02);
  text-align: center;
  vertical-align: middle;
  font-size: 18px;
  line-height: 1.2em;
  font-weight: 700;
  white-space: nowrap;
  padding: 15px;
  border-right: 1px solid #CACACA;
  height: 78px;
}
#schedule .table_wrap.no_scrl table th {
  white-space: wrap;
  height: 78px;
}
#schedule .table_wrap table th.bg_wht,
#schedule .table_wrap table tr:last-child th.bg_wht:before {
  background: #fff;
}
#schedule .table_wrap table td {
  background: #fff;
  color: var(--txtColor);
  text-align: center;
  vertical-align: middle;
  font-size: 16px;
  line-height: 1.2em;
  font-weight: 700;
  white-space: nowrap;
  height: 38px;
  padding: 15px;
  border-left: 1px solid #CACACA;
}
#schedule .table_wrap table tr:last-child td {
  background: #fff;
}
#schedule .table_wrap table .header th:last-child,
#schedule .table_wrap table td:first-child {
  border-right: none;
}
#schedule .table_wrap table .sticky {
  position: sticky;
  top: 0;
  left: 0;
}
#schedule .table_wrap table .sticky:before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-right: 1px solid #CACACA;
  z-index: -1;
}
#schedule .table_wrap table .header .sticky:before {
  border-right: 1px solid #fff;
  background: var(--colorGreen);
}
#schedule .table_wrap table .header.top .sticky:before {
  border-radius: 10px 0 0 0;
}
#schedule .table_wrap table .header.top th:last-child {
  border-radius: 0 10px 0 0;
}
#schedule .table_wrap table tr:last-child th:before {
  border-radius: 0 0 0 10px;
  background: var(--colorGreen02);
}
#schedule .table_wrap table tr:last-child td:last-child,
#schedule .table_wrap table tr td.bdrrds-rb {
  border-radius: 0 0 10px 0;
}
#schedule .table_wrap table .pc {
  display: table-cell!important;
}
#schedule .table_wrap table .sp {
  display: none!important;
}
#schedule .caution {
  font-size: 14px;
  line-height: 1.2em;
  font-weight: 400;
  margin: 20px 0 0 0;
}
#schedule .cts_block + .cts_block {
  margin-top: 40px;
}
#schedule h4 {
  font-size: 18px;
  line-height: 1.5em;
  font-weight: 600;
  margin: 0 0 5px;
}
#schedule .cts_block + h4 {
  margin-top: 30px;
}
#schedule .column-2 {
  align-items: flex-start;
  gap: 20px;
}
#schedule .column-2 {
  align-items: flex-start;
  gap: 20px;
}
#schedule .column-2 .table_wrap:nth-of-type(1) {
  width: 770px;
}
#schedule .column-2 .table_wrap:nth-of-type(2) {
  width: 410px;
}
#schedule .table_wrap table.slim .header th {
  height: 78px!important;
}
#schedule .table_wrap table.slim th {
  height: 38px!important;
}

/*use*/
#use .wrap {
  padding: 70px 0;
  position: relative;
}
#use .section-title {
  margin-bottom: 70px;
}
#use .section-title span {
  padding-right: calc(34px + 25px);
}
#use .section-title span:after {
  width: 34px;
  height: 41px;
  background: url(../images/icon-memo.svg) no-repeat center / contain;
}
#use h3 {
  color: var(--colorPink);
  font-size: 22px;
  line-height: 1.5em;
  font-weight: 700;
  margin: 0 0 20px;
  padding: 0 0 0 1.2em;
  text-indent: -1.2em;
}
#use h3:before {
  content: '● ';
}
#use .before h3 {
  font-size: 26px;
  padding: 0;
  text-indent: 0;
  text-align: center;
}
#use .before h3:before {
  content: none;
}
#use .before h3 + p {
  text-align: center;
}
#use h3 + p {
  font-weight: 500;
}
#use .cts_block {
  width: 100%;
  margin: 0;
  padding: 0;
}
#use .cts_block + .cts_block {
  margin-top: 80px;
}
#use .flow_wrap {
  justify-content: center;
  gap: 80px 50px;
  padding: 50px 0 0 0;
  overflow: hidden;
}
#use .flow_wrap.comment {
  justify-content: flex-start;
  gap: 100px 50px;
  padding: 60px 0 0 0;
}
#use .flow_wrap .flow_box {
  display: flex;
  flex-direction: column;
  gap: 30px;
  width: calc((100% - 50px*3)/4);
  font-size: 16px;
  line-height: 1.5em;
  font-weight: 500;
  position: relative;
}
#use .flow_wrap .flow_box:before {
  content: '';
  width: calc(100% + 50px);
  height: 1px;
  background: var(--colorGreen);
  position: absolute;
  top: 40px;
  left: 50%;
  transform: translate(-50%,-50%);
  z-index: -1;
}
#use .flow_wrap .flow_box:first-of-type:before {
  width: calc(50% + 25px);
  left: 50%;
  transform: translate(0,-50%);
}
#use .flow_wrap .flow_box.end:before {
  width: calc(50% + 25px);
  left: -25px;
  transform: translate(0,-50%);
}
#use .flow_wrap .flow_box:not(.end):after {
  content: '';
  width: 10px;
  height: 10px;
  border-top: 1px solid var(--colorGreen);
  border-right: 1px solid var(--colorGreen);
  position: absolute;
  top: 40px;
  right: -25px;
  transform: translate(0,-50%) rotate(45deg);
}
#use .flow_wrap .flow_box:not(.end):nth-child(4n):after {
  right: 2px;
}
#use .before .flow_wrap .flow_box:before,
#use .before .flow_wrap .flow_box:after {
  content: none;
}
#use .flow_wrap .flow_box .numble {
  background: #fff;
  width: 80px;
  height: 80px;
  border: 2px solid var(--colorGreen);
  border-radius: 80px;
  margin: 0 auto;
  display: flex;
  justify-content: center;
  align-items: center;
  color: var(--colorGreen);
  font-family: var(--fontAlata);
  font-size: 50px;
  line-height: 1.2em;
}
#use .flow_wrap .flow_box.end .numble {
  background: var(--colorGreen);
  color: #fff;
  font-family: inherit;
  font-size: 22px;
  line-height: 1.5em;
  font-weight: 700;
}
#use .flow_wrap .flow_box h4 {
  color: var(--colorGreen);
  font-size: 21px;
  line-height: 1.5em;
  font-weight: 700;
  text-align: center;
  display: flex;
  min-height: 3em;
  justify-content: center;
  align-items: center;
}
#use .flow_wrap .flow_box .cts {
  flex-grow: 1;
}
#use .flow_wrap .flow_box ul {
  width: 100%;
  margin: 0;
  padding: 0;
}
#use .flow_wrap .flow_box ul li {
  color: var(--colorPink);
  padding: 0 0 0 1.2em;
  text-indent: -1.2em;
}
#use .flow_wrap .flow_box ul li + li {
  margin-top: 0;
}
#use .flow_wrap .flow_box ul li:before {
  content: '● ';
}
#use .flow_wrap .flow_box .comment {
  width: 100%;
  text-align: center;
  color: var(--colorPink);
  font-size: 22px;
  line-height: 1.5em;
  font-weight: 700;
  position: absolute;
  left: 0;
  top: -12px;
  transform: translate(0,-100%);
}
#use .flow_wrap .flow_box .comment span {
  position: relative;
  padding: 0 15px;
}
#use .flow_wrap .flow_box .comment span:before {
  content: '';
  width: 2px;
  height: 70%;
  background: var(--colorPink);
  position: absolute;
  left: 0;
  bottom: 3px;
  transform: rotate(-28deg);
}
#use .flow_wrap .flow_box .comment span:after {
  content: '';
  width: 2px;
  height: 70%;
  background: var(--colorPink);
  position: absolute;
  right: 0;
  bottom: 3px;
  transform: rotate(28deg);
}
#use .flow_wrap .flow_box a.linkBtn {
  max-width: 210px;
  height: 40px;
  margin: 0 auto;
}
#use .before .flow_wrap .flow_box .head {
  width: 100%;
  text-align: center;
  padding: 30px 0 0;
  position: relative;
}
#use .before .flow_wrap .flow_box:not(:last-of-type) .head:after {
  content: '';
  width: 22px;
  height: 22px;
  border-top: 1px solid var(--colorGreen);
  border-right: 1px solid var(--colorGreen);
  position: absolute;
  top: calc(50% + 15px);
  right: -30px;
  transform: translate(0, -50%) rotate(45deg);
}
#use .before .flow_wrap .flow_box .head .numble {
  width: 52px;
  height: 52px;
  border-radius: 52px;
  font-size: 32px;
  position: absolute;
  left: 0;
  top: 0;
}
#use .before .flow_wrap .flow_box.end .head .numble {
  font-size: 16px;
}
#use .before .flow_wrap .flow_box .head .img {
  width: 100%;
  text-align: center;
}
#use .before .flow_wrap .flow_box .head .img img {
  width: auto;
  max-height: 182px;
}
#use .before .flow_wrap {
  gap: 80px 60px;
}
#use .before .flow_wrap .flow_box {
  width: calc((100% - 60px*3)/4);
  gap: 0;
}
#use .before .flow_wrap .flow_box h4 {
  margin-bottom: 25px;
}
#use .before.uketori .flow_wrap .flow_box h4 {
  margin-top: 20px;
}
.modal-content .modal-slide .modal-slide-item.num01 {
  padding: 38px 100px;
}
.modal-slide-item .numble {
  position: absolute;
  left: 0;
  top: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  background: var(--colorGreen);
  width: 120px;
  height: 120px;
  border-radius: 10px 0 180px 0;
  color: #fff;
  font-size: 50px;
  line-height: 1.2em;
  font-family: var(--fontAlata);
}
.modal-slide-item .numble span {
  position: relative;
  top: -10px;
  left: -10px;
}
.modal-slide-item .inner {
  justify-content: center;
  align-items: center;
  gap: 57px;
}
.modal-slide-item .inner .arrow {
  width: 47px;
  height: 78px;
  background: url(../images/use-modal_arrow.svg) no-repeat center / contain;
}
.modal-slide-item .inner .col {
  width: calc((100% - 57px*2 - 47px)/2);
  text-align: center;
}
.modal-slide-item .inner h2 {
  color: var(--colorGreen);
  text-align: center;
  font-size: 26px;
  line-height: 1.5em;
  font-weight: 700;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 0 20px;
  min-height: 3em;
}
.modal-slide-item .inner.m01 h2 {
  min-height: unset;
}
.modal-slide-item .inner.m01 {
  align-items: inherit;
  gap: 36px 60px;
}
.modal-slide-item .inner.m01 .col.img {
  width: 215px;
  position: relative;
}
.modal-slide-item .inner.m01 .col.txt {
  width: calc(100% - 215px - 36px);
  max-width: 360px;
  position: relative;
}
.modal-slide-item .inner.m01 .col.txt p {
  color: var(--colorGreen);
  font-size: 22px;
  line-height: 1.5em;
  font-weight: 700;
  text-align: left;
  position: relative;
}
.modal-slide-item .inner.m01 .col.txt p {
  position: absolute;
  left: 0;
  top: 22%;
}
.modal-slide-item .inner.m01 .col.txt p:nth-of-type(2) {
  top: 50%;
}
.modal-slide-item .inner.m01 .col.txt p:nth-of-type(3) {
  top: 83.5%;
}
.modal-slide-item .inner.m01 .col.txt p:before {
  content: '';
  height: 1px;
  background: var(--colorGreen);
  position: absolute;
  left: -10px;
  top: 50%;
  transform: translate(-100%,-50%);
}
.modal-slide-item .inner.m01 .col.txt p:nth-of-type(1):before {
  width: calc(60px + 4px);
}
.modal-slide-item .inner.m01 .col.txt p:nth-of-type(2):before {
  width: calc(60px + 10px);
}
.modal-slide-item .inner.m01 .col.txt p:nth-of-type(3):before {
  width: calc(60px + 102px);
}

/*booth*/
#booth .wrap {
  padding: 70px 0;
  position: relative;
}
#booth .section-title {
  margin: 0 0 48px;
}
#booth .section-title span {
  padding-right: calc(31px + 25px);
}
#booth .section-title span:after {
  width: 31px;
  height: 43px;
  background: url(../images/icon-pin.svg) no-repeat center / contain;
}
#booth .route_map {
  width: 100%;
  text-align: center;
  margin: 0 0 50px;
}
#booth .list_wrap {
  justify-content: center;
  align-items: flex-start;
  gap: 50px;
}
#booth .list_wrap .list_box {
  width: calc((100% - 50px)/2);
  border-radius: 10px;
  overflow: hidden;
}
#booth .list_wrap .list_box table {
  width: 100%;
  border: none;
  background: #fff;
  font-size: 18px;
  line-height: 1.2em;
}
#booth .list_wrap .list_box table th {
  width: 215px;
  min-height: 73px;
  padding: 5px 20px 5px 17px;
  vertical-align: middle;
  color: var(--colorGreen);
  text-align: left;
  font-weight: 700;
  border-right: 1px solid var(--colorGreen);
}
#booth .list_wrap .list_box table td {
  min-height: 73px;
  padding: 5px 20px 5px 17px;
  vertical-align: middle;
  text-align: left;
  font-weight: 500;
}
#booth .list_wrap .list_box table td p {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  min-height: 73px;
  justify-content: flex-start;
  align-items: center;
  color: var(--txtColor);
  text-decoration: none;
  font-weight: 500;
}
#booth .list_wrap .list_box table td a {
  width: 100%;
  display: block;
  color: var(--txtColor);
  text-decoration: none;
  font-weight: 500;
}
#booth .list_wrap .list_box table tr:nth-child(even) {
  background: var(--colorGreen02);
}
#booth .list_wrap .list_box table tr.header {
  background: var(--colorGreen);
}
#booth .list_wrap .list_box table tr.header th,
#booth .list_wrap .list_box table tr.header td {
  color: #fff;
  font-weight: 700;
  height: 73px;
}
#booth .list_wrap .list_box table tr.header th {
  border-color: #fff;
}
#booth .btnBox {
  margin-top: 50px;
}
#booth .caution {
  font-size: 14px;
  line-height: 1.2em;
  font-weight: 400;
  margin: 20px 0 0 0;
  padding-left: 1em;
  text-indent: -1em;
}
#booth .list_wrap .list_box table tr.rowspan td {
  border-top: 1px solid #9A9A9A;
}

/*faq*/
#faq .wrap {
  padding: 70px 0 100px;
  position: relative;
}
#faq .section-title {
  margin: 0 0 48px;
}
#faq .section-title span {
  padding-right: calc(36px + 25px);
}
#faq .section-title span:after {
  width: 36px;
  height: 36px;
  background: url(../images/icon-question.svg) no-repeat center / contain;
}
#faq .faq_box {
  width: 100%;
  border: 1px solid var(--colorGreen);
  border-radius: 10px;
  padding: 0;
  margin: 0;
}
#faq .faq_box + .faq_box,
#faq .faq_box + h3 {
  margin-top: 30px;
}
#faq h3 {
  color: var(--colorGreen);
  font-size: 20px;
  line-height: 1.2em;
  font-weight: 700;
  margin: 0 0 15px;
}
#faq .faq_box h4 {
  color: var(--colorGreen);
  font-size: 18px;
  line-height: 1.2em;
  font-weight: 700;
  padding-left: 1.2em;
  position: relative;
}
#faq .faq_box p {
  font-size: 18px;
  line-height: 1.2em;
  font-weight: 500;
  margin-top: 20px;
  padding-left: 1.2em;
  position: relative;
}
#faq .faq_box h4:before,
#faq .faq_box p:before {
  position: absolute;
  left: 0;
  top: 0;
}
#faq .faq_box h4:before {
  content: 'Q. ';
}
#faq .faq_box p:before {
  content: 'A. ';
}
#faq .faq_box .acc_wrap {
  padding: 38px 100px 38px 50px;
  cursor: pointer;
}
#faq .faq_box .acc_tab:before,
#faq .faq_box .acc_tab:after {
  content: '';
  width: 28px;
  height: 1px;
  background: var(--colorGreen);
  position: absolute;
  top: 50%;
  right: -70px;
  transform: translate(0,-50%);
  transition: .3s;
}
#faq .faq_box .acc_tab:after {
  transform: translate(0,-50%) rotate(90deg);
}
#faq .faq_box .acc_tab.open:after {
  transform: translate(0,-50%) rotate(180deg);
}


/* ========================================================================================================
   767px以下
   ========================================================================================================*/
@media screen and (max-width: 767px) {
  #top #kv {
    width: 100%;
    height: auto;
    max-height: unset;
    padding: 0;
  }
  #top #kv .image,
  #top #kv .contents .btnBox  {
    display: none;
  }
  #top #kv .contents {
    width: 100%;
    position: relative;
    left: 0;
    top: 0;
    transform: translate(0.0);
  }
  #top #kv .contents .logo {
    width: 200px;
    position: relative;
    z-index: 7;
  }
  #top #kv .contents .sp_top {
    position: relative;
    width: 100%;
    height: auto;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    flex-wrap: wrap;
    opacity: 0;
  }
  #top #kv .contents .sp_btm {
    position: relative;
    width: 100%;
    height: auto;
    padding: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    opacity: 0;
  }
  #top #kv .contents .sp_btm .sp_container {
    width: 100%;
    height: 100%;
    padding: 0 0 0 40%;
    position: absolute;
    left: 0;
    top: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
  }
  #top #kv.show .contents .sp_top,
  #top #kv.show .contents .sp_btm {
    animation: fadeIn 1s ease 1.5s forwards;
  }
  #top #kv .contents h2 {
    font-size: 28px;
    letter-spacing: 0;
    margin: 0 0 20px;
    margin: 0;
    position: absolute;
    bottom: 20px;
  }
  #top #kv .contents p {
    font-size: 18px;
    line-height: 1.5em;
    letter-spacing: 0;
    margin: 10px 0 0 6px;
    text-align: left;
    position: relative;
    z-index: 7;
  }
  #top #kv .mark {
    width: 100%;
    height: calc((95.6% - 132px) / 2);
    position: absolute;
    bottom: 132px;
    z-index: 6;
  }
  #top #kv .mark01 {
    height: 100%;
    left: 50%;
    transform: translate(-76.5%, 0);
    padding: 10% 0 12%;
  }
  #top #kv .mark02 {
    height: 100%;
    left: 50%;
    transform: translate(-75%, 0);
  }

  #top #news {
    position: relative;
    background: #FFF;
    z-index: 10;
  }
  #top #news .wrap {
    padding: 20px 0;
  }
  #top #news .top_news .more {
    width: 100%;
  }
  #top #news .top_news {
    gap: 10px;
  }
  #top #news .top_news .news_set {
    width: 100%;
    gap: 10px;
    flex-wrap: wrap;
  }
  #top #news .top_news .news_set h2 {
    width: 100%;
  }

  #reasons .wrap {
    padding: 0 0 70px;
    margin-top: -8%;
  }
  #reasons .map {
    width: calc(100% - 20px);
    position: relative;
  }
  #reasons .map .pin_l {
    width: 21px;
    height: 29px;
  }
  #reasons .map .pin_m {
    width: 14px;
    height: 19px;
  }
  #reasons .map .pin_s {
    width: 10px;
    height: 14px;
  }
  #reasons .contents {
    width: 100%;
  }
  #reasons .cts_block .title {
    gap: 15px;
    margin: 0 0 15px;
  }
  #reasons .cts_block .title .numble {
    width: 46px;
    height: 46px;
    border-radius: 46px;
    font-size: 30px;
  }
  #reasons .cts_block .title h3 {
    width: calc(100% - 46px - 15px);
    font-size: 20px;
    line-height: 1.2em;
    font-weight: 700;
  }
  #reasons .cts_block:nth-of-type(2),
  #reasons .cts_block:nth-of-type(3) {
    transform: translate(0, 0);
  }

  #subject .section-title {
    margin-bottom: 30px;
  }
  #subject .slide_wrap {
    gap: 0;
    position: relative;
  }
  #schedule .table_wrap .inner {
    width: fit-content;
    padding: 0 30px 0 0;
  }
  #schedule .table_wrap table {
    width: 770px;
  }
  #subject .slide_wrap .slick-track {
    display: flex;
  }
  #subject .slide_wrap .slick-list {
    margin: 0 -10px;
    width: calc(100% + 20px);
  }
  #subject .slide_wrap .slide_cts {
    width: 100%;
    height: auto !important;
    padding: 40px 35px;
    margin: 0 10px;
  }
  #subject .slide_wrap .slide_cts h3 {
    font-size: 20px;
  }
  #subject .slide_wrap .slide_cts h4 {
    margin: 20px 0 5px;
  }
  #subject .txt_cts {
    margin: 30px 0 0 0;
    text-align: left;
  }

  #schedule .section-title {
    margin-bottom: 30px;
  }
  #schedule .table_wrap.scrl {
    margin-right: calc(50% - 50vw);
    overflow-x: auto;
    overflow-y: visible;
  }
  #schedule .table_wrap.scrl .inner {
    padding: 0 20px 20px 0;
  }
  #schedule .cts_block + p {
    line-height: 1.4em;
  }
  #schedule .cts_block + p .block + br {
    display: none;
  }
  #schedule .cts_block + p .block {
    margin-top: 8px;
    display: block;
  }
  #schedule .table_wrap.no_scrl table .header th:first-child {
    width: 110px;
  }
  #schedule .table_wrap table .header th,
  #schedule .table_wrap table th,
  #schedule .table_wrap table td {
    padding: 15px 5px;
  }
  #schedule .time_txt {
    font-size: 16px;
  }
  #schedule .table_wrap table .pc {
    display: none!important;
  }
  #schedule .table_wrap table .sp {
    display: table-cell!important;
  }
  #schedule .column-2 .table_wrap.scrl {
    width: calc(100% + 20px);
    -ms-overflow-style: none;
    scrollbar-width: none;
  }
  #schedule .column-2 .table_wrap.scrl::-webkit-scrollbar {
    display: none;
  }
  #schedule .column-2 .table_wrap.no_scrl {
    width: 100%;
  }
  #schedule .column-2 .table_wrap table .header th:first-child {
    width: 170px;
  }
  #schedule .table_wrap table.slim .header th,
  #schedule .table_wrap.no_scrl table th {
    height: 70px!important;
  }
  #schedule .table_wrap table.slim th {
    height: 38px!important;
  }
  #schedule h3 + .time_txt:not(.full) {
    display: block;
    margin: -10px 0 20px;
  }
  #use .section-title {
    margin-bottom: 30px;
  }
  #use h3 {
    margin: 0 0 10px;
  }
  #use h3 + p {
    font-size: 18px;
  }
  #use .cts_block + .cts_block {
    margin-top: 70px;
  }
  #use .flow_wrap {
    gap: 50px;
    padding: 40px 0 0 0;
  }
  #use .flow_wrap.comment {
    gap: 50px;
    padding: 20px 0 0 0;
  }
  #use .flow_wrap .flow_box {
    gap: 10px;
    width: 100%;
    font-size: 16px;
    line-height: 1.5em;
    font-weight: 500;
    padding: 0 0 0 78px;
  }
  #use .flow_wrap .flow_box .numble {
    width: 60px;
    height: 60px;
    border-radius: 60px;
    margin: 0;
    font-size: 32px;
    position: absolute;
    left: 0;
    top: 0;
  }
  #use .flow_wrap .flow_box h4 {
    font-size: 20px;
    display: flex;
    min-height: inherit;
    justify-content: flex-start;
    text-align: left;
  }
  #use .flow_wrap .flow_box .comment {
    text-align: left;
    font-size: 20px;
    position: relative;
    left: 0;
    top: 0;
    transform: translate(0, 0);
  }
  #use .flow_wrap .flow_box a.linkBtn {
    margin: 0;
  }
  #use .flow_wrap .flow_box:before {
    width: 1px;
    height: calc(100% + 50px);
    top: 30px;
    left: 30px;
    transform: translate(-50%, 0);
  }
  #use .flow_wrap .flow_box:first-of-type:before {
    width: 1px;
    left: 30px;
    transform: translate(-50%, 0);
  }
  #use .flow_wrap .flow_box.end:before {
    content: none;
  }
  #use .flow_wrap .flow_box.end .numble {
    font-size: 18px;
  }
  #use .flow_wrap .flow_box:not(.end):after {
    width: 10px;
    height: 10px;
    top: calc(50% + 50px);
    right: unset;
    left: 30px;
    transform: translate(-50%, 0) rotate(135deg);
  }
  #use .before h3 + p {
    text-align: left;
  }
  #use .before .flow_wrap {
    gap: 90px 60px;
  }
  #use .before .flow_wrap .flow_box {
    width: 100%;
    padding: 0;
  }
  #use .before .flow_wrap .flow_box h4 {
    width: 100%;
    text-align: center;
    justify-content: center;
  }
  #use .before .flow_wrap .flow_box .head:not(:last-of-type):after {
    content: none;
  }
  #use .before .flow_wrap .flow_box:not(:last-of-type):after {
    content: '';
    width: 36px;
    height: 36px;
    border-top: 1px solid var(--colorGreen);
    border-right: 1px solid var(--colorGreen);
    position: absolute;
    top: unset;
    right: unset;
    bottom: -55px;
    left: 50%;
    transform: translate(-50%, 0) rotate(135deg);
  }
  #use .before .flow_wrap .flow_box .head .img img {
    max-height: 230px;
  }
  #use .before .flow_wrap .flow_box h4 {
    margin-bottom: 15px;
  }

  .modal-content .modal-slide .modal-slide-item.num01 {
    padding: 34px 45px;
  }
  .modal-slide-item .numble {
    width: 80px;
    height: 80px;
    border-radius: 10px 0 120px 0;
    font-size: 34px;
  }
  .modal-slide-item .numble span {
    top: -8px;
    left: -8px;
  }
  .modal-slide-item .inner {
    flex-direction: column;
    gap: 28px;
  }
  .modal-slide-item .inner .col {
    width: 100%;
    text-align: center;
  }
  .modal-slide-item .inner .col.txt {
    min-height: 200px;
  }
  .modal-slide-item .inner .col.txt h2 {
    margin-bottom: 0;
  }
  .modal-slide-item .inner .arrow {
    width: 33px;
    height: 54px;
    transform: rotate(90deg);
  }
  .modal-content .modal-slide .modal-slide-item {
    padding: 34px 45px;
    display: flex;
    align-items: flex-start;
  }
  .modal-content .modal-slide .modal-slide-item.slick-slide img {
    margin: auto;
  }
  .modal-slide-item .inner h2 {
    font-size: 22px;
    margin: 0 0 10px;
    min-height: inherit;
  }
  .modal-slide-item .inner.m01 .col.img {
    width: 100%;
  }
  .modal-slide-item .inner.m01 .col.txt {
    width: calc(100% + 28px);
    margin: 0 -14px;
  }
  .modal-slide-item .inner.m01 .col.txt p {
    position: relative;
    top: unset!important;
    font-size: 18px;
    padding: 0 0 0 1.2em;
    text-indent: -1.2em;
  }
  .modal-slide-item .inner.m01 .col.txt p .sp {
    display: inline!important;
  }
  .modal-slide-item .inner.m01 .col.txt p + p {
    margin-top: 10px;
  }
  .modal-slide-item .inner.m01 .col.txt p:before {
    content: none;
  }
  #booth .section-title {
    margin: 0 0 25px;
  }
  #booth .route_map {
    margin: 0 0 30px;
  }
  #booth .list_wrap {
    gap: 0;
  }
  #booth .list_wrap .list_box {
    width: 100%;
    border-radius: 0;
  }
  #booth .list_wrap .list_box:first-of-type {
    border-radius: 10px 10px 0 0;
  }
  #booth .list_wrap .list_box:last-of-type {
    border-radius: 0 0 10px 10px;
  }
  #booth .list_wrap .list_box:nth-child(n+2) table tr.header {
    display: none;
  }
  #booth .list_wrap .list_box:nth-child(n+2) table tr:nth-child(odd) {
    background: #fff;
  }
  #booth .list_wrap .list_box:nth-child(n+2) table tr:nth-child(even) {
    background: var(--colorGreen02);
  }
  #booth .list_wrap .list_box table {
    font-size: 16px;
    line-height: 1.2em;
  }
  #booth .list_wrap .list_box table th {
    width: 45%;
    padding: 5px 15px;
  }
  #booth .list_wrap .list_box table td {
    padding: 5px 13px 5px 15px;
  }
  #booth .btnBox {
    margin-top: 30px;
  }

  #faq .wrap {
    padding: 70px 0;
  }
  #faq .faq_box .acc_wrap {
    padding: 38px 40px 38px 20px;
  }
  #faq .faq_box p {
    margin-top: 10px;
  }
  #faq .faq_box .acc_tab:before, #faq .faq_box .acc_tab:after {
    width: 20px;
    right: -25px;
  }
}

/* ========================================================================================================
   379px以下
   ========================================================================================================*/
@media screen and (max-width: 379px) {
  #top #kv .contents h2 {
    font-size: calc(100vw / 100 * 7.94873);
  }
  #top #kv .contents p {
    font-size: calc(100vw / 100 * 4.65115);
  }
}