@charset "UTF-8";
a {
  text-decoration: none;
  transform: 0.5;
  -webkit-transition: 0.3s ease-in-out;
  -moz-transition: 0.3s ease-in-out;
  -o-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out; }

a {
  opacity: 1; }

a:hover {
  opacity: 0.8; }

a,
p,
span,
li,
dt, dd,
th, td {
  font-family: 'Noto Sans JP', serif;
  color: #000;
  font-weight: 400; }

h1, h2, h3, h4, h5, h6 {
  font-family: 'Noto Sans JP', serif;
  color: #000;
  font-weight: 400; }

.flex {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap; }

#pc_header,
.pcbr,
.tbbr,
.pc {
  display: none; }

.sp_header {
  width: 100%;
  height: 66px;
  background: #FFF;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 999;
  box-shadow: 0px 3px 6px #00000029; }

.header_flex {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 3%;
  box-shadow: 0px 3px 0px #23D152; }
  .header_flex a.logo {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 60%;
    height: 66px;
    margin: 0;
    background: #FFF; }
    .header_flex a.logo picture {
      display: block;
      widsp_menuth: 90%;
      margin: 0 auto;
      object-fit: contain; }

.drawer {
  flex-direction: row; }

/*ここからナビゲーション*/
.navbar_toggle {
  z-index: 9999;
  padding: 13px 8px;
  background: #23D152;
  width: 46px;
  height: 46px;
  border-radius: 5px; }

.navbar_toggle_icon {
  position: relative;
  display: block;
  height: 3px;
  width: 25px;
  background: #FFF;
  -webkit-transition: ease .5s;
  transition: ease .5s; }

.navbar_toggle_icon:nth-child(1) {
  top: 0;
  margin-left: auto;
  margin-right: auto; }

.navbar_toggle_icon:nth-child(2) {
  margin: 5px auto; }

.navbar_toggle_icon:nth-child(3) {
  top: 0;
  margin-left: auto;
  margin-right: auto; }

/*OPEN時の動き*/
.navbar_toggle.open .navbar_toggle_icon:nth-child(1) {
  top: 7px;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg); }

.navbar_toggle.open .navbar_toggle_icon:nth-child(2) {
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  opacity: 0; }

.navbar_toggle.open .navbar_toggle_icon:nth-child(3) {
  top: -9px;
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg); }

/*メニュー中身*/
.sp_menu.open, .dwr_main_menu:checked + .dwr_sub_menu {
  position: fixed;
  overflow-y: scroll;
  overflow-x: hidden;
  overflow-scrolling: touch;
  height: 100%;
  width: 100%; }

.sp_menu {
  padding: 20px 0 100px 0;
  display: block;
  background: #FFF;
  -webkit-transform: translateX(-150%);
  transform: translateX(-150%);
  -webkit-transition: ease .9s;
  transition: ease .9s;
  z-index: 1000; }
  .sp_menu ul li {
    width: 80%;
    padding: 10px 5%;
    margin: 0 auto;
    border-bottom: 1px dashed #7E7E7E; }
    .sp_menu ul li a,
    .sp_menu ul li label {
      display: block;
      width: 100%;
      font-size: clamp(18px, 1.1vw, 20px);
      font-weight: 500; }
      .sp_menu ul li a::before,
      .sp_menu ul li label::before {
        display: none; }

.sp_menu.open {
  display: block;
  -webkit-transform: translateX(0);
  transform: translateX(0); }

.dwr_box input {
  display: none; }

.container {
  overflow: hidden; }

/*********************************
ここから全ページ共通
*********************************/
.layer_board_bg,
.layer_board {
  position: absolute; }

.layer_board_bg {
  position: fixed;
  width: 100%;
  height: 100%;
  z-index: 1000;
  top: 0;
  left: 0;
  display: none;
  cursor: pointer;
  background: #000; }

.layer_board {
  width: 80%;
  display: none;
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  text-align: center;
  z-index: 2000; }

.layer_board video {
  width: 100%; }

.btn_close {
  display: block;
  text-decoration: none;
  background: #FFF;
  color: #000;
  text-align: center;
  padding: 10px 30px;
  width: 150px;
  margin: 10px auto 0 auto;
  font-size: clamp(14px, 0.83vw, 16px); }

p.txt_l {
  font-size: clamp(14px, 0.83vw, 16px);
  text-align: left;
  line-height: 1.8em; }

p.txt_c {
  font-size: clamp(14px, 0.83vw, 16px);
  text-align: center;
  line-height: 1.8em; }

p.txt_r {
  font-size: clamp(14px, 0.83vw, 16px);
  text-align: right;
  line-height: 1.8em; }

h2 {
  font-size: clamp(30px, 1.8vw, 35px);
  font-weight: 900;
  line-height: 1.5em;
  color: #23D152;
  text-align: center;
  padding: 0;
  margin: 0 auto 30px auto; }
  h2 span {
    display: block;
    font-size: clamp(18px, 1.1vw, 20px);
    font-weight: 700; }

/*********************************
ここからTOP
*********************************/
/*ここからスライドショー(背景)*/
.main_img {
  width: 100%;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: bottom;
  aspect-ratio: 1920 / 926;
  position: relative; }

picture, source {
  width: 100%;
  display: block; }

div.campaign {
  width: 90%;
  margin: 0 auto;
  padding: 20px 0; }

div.inner,
ul.inner {
  width: 90%;
  max-width: 1400px;
  margin: 0 auto; }

/******************************
左右のアニメーション
******************************/
.leftAnime {
  overflow: hidden;
  display: inline-block;
  opacity: 0;
  /*事前に透過0にして消しておく*/ }

.leftAnimeInner {
  display: inline-block; }

.slideAnimeLeftRight {
  animation-name: slideTextX100;
  animation-duration: 0.9s;
  animation-fill-mode: forwards;
  opacity: 0; }

@keyframes slideTextX100 {
  from {
    transform: translateX(-100%);
    /*要素を左の枠外に移動*/
    opacity: 0; }
  to {
    transform: translateX(0);
    /*要素を元の位置に移動*/
    opacity: 1; } }
.slideAnimeRightLeft {
  animation-name: slideTextX-100;
  animation-duration: 0.9s;
  animation-fill-mode: forwards;
  opacity: 0; }

@keyframes slideTextX-100 {
  from {
    transform: translateX(100%);
    /*要素を右の枠外に移動*/
    opacity: 0; }
  to {
    transform: translateX(0);
    /*要素を元の位置に移動*/
    opacity: 1; } }
/******************************
スクロールでふわっと出現
******************************/
.fadeUp {
  animation-name: fadeUpAnime;
  animation-duration: 0.9s;
  animation-fill-mode: forwards;
  opacity: 0; }

@keyframes fadeUpAnime {
  from {
    opacity: 0;
    transform: translateY(100px); }
  to {
    opacity: 1;
    transform: translateY(0); } }
/* スクロールをしたら出現する要素にはじめに透過0を指定　*/
.fadeUpTrigger {
  opacity: 0; }

/******************************
スクロールで左から順にふわっと出現
******************************/
.hidden {
  opacity: 0; }

div.concept {
  width: 100%;
  padding: 50px 0 10px 0;
  background: url("../../img/concept_bg_sp.png");
  background-color: #FFFDD5;
  background-size: contain;
  background-position: right bottom;
  background-repeat: no-repeat; }
  div.concept div.inner {
    display: flex;
    flex-flow: column;
    align-items: center; }
    div.concept div.inner div {
      width: 100%;
      text-align: center; }
      div.concept div.inner div div.slide_txt {
        width: 100%; }
        div.concept div.inner div div.slide_txt p {
          display: inline-block;
          font-size: clamp(27px, 1.66vw, 32px);
          font-weight: 900;
          line-height: 1.2em; }
          div.concept div.inner div div.slide_txt p span {
            display: block;
            line-height: 1.2em;
            font-size: clamp(40px, 2.6vw, 50px);
            font-weight: 900;
            background: -webkit-linear-gradient(0deg, #23D152, #60E031);
            color: #60E031;
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent; }
      div.concept div.inner div h3 {
        font-size: clamp(18px, 1.1vw, 20px);
        font-weight: 700;
        margin-bottom: 20px; }
      div.concept div.inner div p.txt_l {
        font-size: clamp(14px, 0.83vw, 16px);
        font-weight: 700; }
    div.concept div.inner div.picrure {
      width: 80%;
      margin: 0 auto; }
      div.concept div.inner div.picrure picture {
        display: block;
        width: 100%;
        height: auto;
        object-fit: contain; }

div.enjoy {
  width: 100%;
  padding: 50px 0;
  background-image: url("../../img/enjoy_bg.png");
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center; }
  div.enjoy ul.inner li {
    display: flex;
    flex-flow: column;
    grid-row-gap: 15px;
    margin-bottom: 70px; }
    div.enjoy ul.inner li:last-child {
      margin-bottom: 0; }
    div.enjoy ul.inner li div.img {
      width: 100%;
      position: relative;
      order: 1; }
      div.enjoy ul.inner li div.img p {
        font-size: clamp(18px, 1.1vw, 20px);
        font-weight: 700;
        color: #FFF;
        background: #23D152;
        padding: 10px 5%;
        border-radius: 10px;
        position: absolute;
        left: 3%;
        top: -20px; }
      div.enjoy ul.inner li div.img img {
        width: 100%;
        height: auto;
        aspect-ratio: 3 / 2;
        object-fit: cover; }
    div.enjoy ul.inner li div.txt {
      width: 100%;
      text-align: center;
      order: 2; }
      div.enjoy ul.inner li div.txt h3 {
        font-size: clamp(22px, 1.25vw, 24px);
        font-weight: 900;
        margin-bottom: 10px; }

div.enjoy ul.grn_tape {
  margin-top: 20px; }
  div.enjoy ul.grn_tape li {
    display: block;
    background: transparent linear-gradient(94deg, #23D152 0%, #60E031 100%) 0% 0% no-repeat padding-box;
    color: #FFF;
    font-size: clamp(14px, 0.9vw, 18px);
    font-weight: 700;
    text-align: center;
    padding: 10px 3%;
    margin-bottom: 10px; }

div.instagram {
  background: url("../../img/instagran_bg.jpg");
  background-size: cover;
  background-repeat: no-repeat;
  padding: 50px 0;
  text-align: center; }
  div.instagram div.box {
    width: 100%;
    margin-bottom: 20px; }

a.viewmore {
  display: inline-block;
  margin: 0 auto;
  padding: 10px 20%;
  background: #23D152;
  border: 2px solid #23D152;
  color: #FFF;
  font-size: clamp(16px, 0.9vw, 18px);
  font-weight: 700;
  text-align: center;
  position: relative; }
  a.viewmore::after {
    content: '\f138';
    display: block;
    font-family: "Font Awesome 5 Free";
    font-size: clamp(18px, 1.1vw, 20px);
    font-weight: 900;
    position: absolute;
    top: 50%;
    right: 2%;
    -ms-transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    margin: 0;
    color: #FFF; }
  a.viewmore:hover {
    background: #FFF;
    color: #23D152;
    opacity: 1; }
    a.viewmore:hover::after {
      color: #23D152; }

div.price {
  width: 100%;
  padding: 50px 0;
  text-align: center;
  background-image: url("../../img/price_bg.png");
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center; }
  div.price div.leftAnime p.txt_c {
    margin-bottom: 50px; }
    div.price div.leftAnime p.txt_c span {
      display: inline;
      font-size: clamp(20px, 1.25vw, 24px);
      font-weight: 700;
      background: linear-gradient(transparent 70%, #F5FF00 0%); }

ul.point {
  width: 100%;
  max-width: 1000px;
  margin: 0 auto 35px auto;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  grid-row-gap: 30px; }
  ul.point li {
    width: 48%;
    position: relative; }
    ul.point li:nth-child(2n+1) {
      top: -20px; }
    ul.point li p.blk {
      background: #000;
      color: #FFF;
      font-size: clamp(14px, 0.83vw, 16px);
      font-weight: 700;
      padding: 6px 0;
      text-align: center;
      border-radius: 20px 20px 0 0; }
    ul.point li div {
      padding: 17px 0 12px 0;
      text-align: center;
      border-radius: 0 0 20px 20px;
      background: #FFF;
      box-shadow: 0px 5px 0px #00000029; }
      ul.point li div img {
        display: block;
        width: auto;
        height: 56px;
        object-fit: contain;
        margin: 0 auto 10px auto; }
      ul.point li div p {
        display: inline-block;
        font-size: clamp(12px, 0.72vw, 14px);
        font-weight: 700; }

div.price_flex {
  display: flex;
  flex-flow: column;
  grid-row-gap: 30px;
  margin-bottom: 130px; }
  div.price_flex div.each {
    width: 100%;
    background: #FFF; }
    div.price_flex div.each h4 {
      background: transparent linear-gradient(98deg, #23D152 0%, #60E031 100%) 0% 0% no-repeat padding-box;
      border-radius: 20px 20px 0 0;
      padding: 10px 0;
      text-align: center;
      color: #FFF;
      font-size: clamp(20px, 1.25vw, 24px);
      font-weight: 900; }
    div.price_flex div.each div {
      box-shadow: 0px 10px 0px #23D152;
      border-radius: 0 0 20px 20px;
		display:flex;
		flex-flow: column;
		align-items: center;
		justify-content: center;
      padding: 35px 0; }
      div.price_flex div.each div img {
        display: block;
        width:auto;
		  max-width:90%;
        object-fit: contain; }
div.price_flex div.each div p {
	font-size:clamp(15px, 1.25vw, 24px);
	font-weight:700;
	transform: translate(0,0.5em);
}
div.price_flex div.each div p span{
	display: inline-block;
    font-size: 115%;
    font-weight: 700;
    background: linear-gradient(transparent 60%, #F5FF00 60%);
}
div.merit {
  width: 100%;
  border-radius: 20px;
  padding: 72px 0 50px 0;
  background: #A1F882;
  position: relative; }
  div.merit h3 {
    width: 90%;
    padding: 15px 0;
    text-align: center;
    font-size: clamp(20px, 1.25vw, 24px);
    font-weight: 900;
    background: #FFF;
    border-radius: 20px;
    box-shadow: 6px 6px 0px #00000029;
    position: absolute;
    top: -50px;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%); }
    div.merit h3::before {
      content: "";
      border-width: 25px;
      border-style: solid;
      border-color: #FFF transparent transparent transparent;
      position: absolute;
      top: 100%;
      left: 50%;
      transform: translateX(-50%);
      filter: drop-shadow(6px 6px 0px #00000029); }
    div.merit h3 span {
      display: block;
      font-size: clamp(10px, 0.72vw, 14px);
      font-weight: 700; }
  div.merit div.inner {
    width: 90%; }
  div.merit picture {
    margin-bottom: 30px; }
  div.merit p.txt_l {
    font-size: clamp(14px, 0.83vw, 16px);
    font-weight: 500;
    margin-bottom: 10px; }
  div.merit p.wht_box {
    width: 100%;
    padding: 20px 5%;
    font-size: clamp(14px, 0.83vw, 16px);
    font-weight: 500;
    background: #FFF;
    border-radius: 20px;
    text-align: left; }

div.flow {
  width: 100%;
  padding: 50px 0;
  background-image: url("../../img/flow_bg.jpg");
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center; }
  div.flow h2 {
    color: #FFF; }
    div.flow h2 span {
      color: #FFF; }

ul.flow {
  width: 90%;
  margin: 0 auto; }
  ul.flow li {
    padding: 20px 5%;
    background: #FFF;
    border-radius: 20px;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 10px; }
    ul.flow li:last-child {
      margin-bottom: 0; }
    ul.flow li img {
      display: block;
      width: 12%;
      height: auto;
      object-fit: contain; }
    ul.flow li div {
      width: 84%; }
      ul.flow li div h4 {
        display: inline-block;
        font-size: clamp(18px, 1.1vw, 20px);
        font-weight: 900;
        margin-bottom: 10px; }
      ul.flow li div p.txt_l {
        font-weight: 700; }
      ul.flow li div a.viewmore {
        margin: 10px auto 0 0;
        padding: 10px 30px;
        font-size: clamp(14px, 0.83vw, 16px); }
        ul.flow li div a.viewmore::after {
          font-size: clamp(14px, 0.83vw, 16px); }

div.btn_flex {
  width: 90%;
  display: flex;
  flex-flow: column;
  grid-row-gap: 10px;
  margin: 30px auto 0 auto; }
  div.btn_flex a {
    width: 100%; }
    div.btn_flex a:hover {
      opacity: 0.9; }

div.faq {
  background: #ECECEC;
  padding: 50px 0; }

section.qaBox {
  width: 90%;
  margin: 0 auto 10px auto;
  box-shadow: 0px 2px 3px #00000029; }
  section.qaBox:last-child {
    margin-bottom: 0; }
  section.qaBox input.faq-check {
    display: none; }
  section.qaBox label.faq-label {
    width: 100%;
    background: #FFF;
    position: relative;
    display: flex; }
    section.qaBox label.faq-label > p {
      width: calc(100% - 45px);
      padding: 13px 10% 13px 3%;
      font-size: clamp(14px, 0.83vw, 16px);
      font-weight: 700; }
    section.qaBox label.faq-label::before {
      content: 'Q';
      display: flex;
      width: 45px;
      font-size: clamp(18px, 1.1vw, 20px);
      font-family: 'Noto Sans JP', serif;
      font-weight: 700;
      background: transparent linear-gradient(133deg, #23D152 0%, #60E031 100%) 0% 0% no-repeat padding-box;
      color: #FFF;
      justify-content: center;
      align-items: center; }
    section.qaBox label.faq-label::after {
      content: '\f078';
      display: block;
      font-family: "Font Awesome 5 Free";
      font-size: clamp(18px, 1.1vw, 20px);
      font-weight: 900;
      position: absolute;
      top: 50%;
      right: 0;
      -ms-transform: translate(-50%, -50%);
      -webkit-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%);
      margin: 0;
      color: #23D152; }
  section.qaBox div.faq-content {
    display: block;
    height: 0;
    opacity: 0;
    padding: 0 5%;
    transition: .5s;
    visibility: hidden; }
    section.qaBox div.faq-content > p {
      font-size: clamp(14px, 0.83vw, 16px); }
  section.qaBox .faq-check:checked + .faq-label::after {
    content: '\f077'; }
  section.qaBox .faq-check:checked + .faq-label + .faq-content {
    height: auto;
    background-color: #FFF;
    opacity: 1;
    padding: 10px 5%;
    visibility: visible; }

div.contact {
  width: 100%;
  padding: 50px 0;
  background-image: url("../../img/contact_bg.png");
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center; }
  div.contact div.wht_box {
    width: 90%;
    margin: 0 auto;
    background: #FFF;
    border-radius: 40px;
    padding: 50px 0; }

div.contact_tab {
  width: 90%;
  margin: 0 auto; }
  div.contact_tab input {
    display: none; }

ul.tab_btn {
  width: 100%;
  margin: 0 auto 20px auto;
  padding: 0;
  list-style-type: none;
  display: flex;
  justify-content: space-between; }
  ul.tab_btn li {
    width: 49%; }
    ul.tab_btn li label {
      display: block;
      width: 100%;
      padding: 14px 0;
      text-align: center;
      border-radius: 5px;
      background: #FFF;
      border: 2px solid #23D152;
      color: #23D152;
      cursor: pointer;
      font-size: clamp(13px, 0.83vw, 16px);
      position: relative; }
      ul.tab_btn li label:hover {
        background: #23D152;
        color: #FFF; }

#entry:checked ~ ul.tab_btn #list1,
#inquiry:checked ~ ul.tab_btn #list2 {
  background: #23D152;
  color: #FFF; }

#entry:checked ~ .contact_box #content1,
#inquiry:checked ~ .contact_box #content2 {
  display: block; }

div.contact_box div.contents {
  display: none; }

/*体験お申込みはこちら*/
div#content1 p.txt_c {
  font-size: clamp(13px, 0.83vw, 16px);
  font-weight: 700;
  margin-bottom: 20px; }
div#content1 div.flow_flex {
  width: 90%;
  margin: 0 auto 36px auto;
  display: flex;
  flex-flow: column;
  align-items: center;
  grid-row-gap: 15px; }
  div#content1 div.flow_flex div {
    width: 100%;
    display: flex;
    justify-content: space-between; }
    div#content1 div.flow_flex div img {
      display: block;
      width: 25%;
      height: auto;
      object-fit: contain; }
    div#content1 div.flow_flex div div.txt {
      width: 70%;
      display: block; }
      div#content1 div.flow_flex div div.txt h6 {
        font-size: clamp(14px, 0.83vw, 16px);
        font-weight: 600; }
      div#content1 div.flow_flex div div.txt p.txt_c {
        font-size: clamp(13px, 0.72vw, 14px);
        font-weight: 400;
        line-height: 1.5em;
        margin-bottom: 0;
        text-align: left; }
  div#content1 div.flow_flex picture {
    width: 8%; }
    div#content1 div.flow_flex picture img {
      display: block;
      height: auto;
      object-fit: contain; }

.co_form {
  width: 100%;
  margin: 0px auto 20px auto;
  border-collapse: collapse; }
  .co_form dl {
    width: 100%;
    display: flex;
    flex-flow: column;
    text-align: left; }
    .co_form dl dt {
      width: 100%;
      position: relative;
      margin-bottom: 0px;
      padding: 15px 5% 5px 5%; }
      .co_form dl dt label {
        font-size: clamp(14px, 0.83vw, 16px);
        font-weight: 700; }
      .co_form dl dt span {
        display: inline-block;
        background: transparent linear-gradient(120deg, #23D152 0%, #60E031 100%) 0% 0% no-repeat padding-box;
        padding: 4px 10px;
        border-radius: 5px;
        font-size: 12px;
        color: #FFF;
        position: absolute;
        top: 50%;
        right: 5%;
        transform: translateY(-50%);
        -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%); }
    .co_form dl dd {
      width: 100%;
      padding: 5px 5% 15px 5%; }
/*20230727*/
_::-webkit-full-page-media, _:future, :root .con_date{
	display: block;
  width: 100%;
  font-size: clamp(14px, 0.83vw, 16px);
  padding: 10px 5%;
  color: #000;
  background: #ECECEC;
  -webkit-appearance: none;
}
@media screen and (-webkit-min-device-pixel-ratio:0) {
	::i-block-chrome, .con_date {
  -webkit-appearance: none;
		display: block;
  width: 100%;
  font-size: clamp(14px, 0.83vw, 16px);
  padding: 10px 5%;
  color: #000;
  background: #ECECEC;
	}
}
/*20230727*/
div.contact_tab input[type="text"], div.contact_tab [type="tel"], div.contact_tab [type="email"], div.contact_tab [type="date"],.con_select, .con_select> option {
  display: block;
  width: 100%;
  font-size: clamp(14px, 0.83vw, 16px);
  padding: 10px 5%;
  color: #000;
  background: #ECECEC; }
div.contact_tab textarea {
  resize: vertical;
  width: 100%;
  height: 200px;
  font-size: clamp(14px, 0.83vw, 16px);
  font-weight: 400;
  padding: 10px 5%;
  background: #ECECEC;
  color: #000; }
div.contact_tab input.sent {
  display: block;
  width: 80%;
  display: block;
  margin: 0 auto;
  padding: 12px 0px;
  font-family: 'Noto Sans JP', serif;
  font-size: clamp(18px, 1.1vw, 20px);
  font-weight: 700;
  text-align: center;
  color: #FFF;
  background: #23D152;
  border: 3px solid #23D152;
  -webkit-transition: .3s ease-in-out;
  transition: .2s ease-in-out; }
  div.contact_tab input.sent:hover {
    opacity: 1;
    background: #FFF;
    color: #23D152; }

.wpcf7 form .wpcf7-response-output {
  font-size: clamp(16px, 0.9vw, 18px);
  font-family: 'Noto Sans JP', serif; }

div.access {
  width: 100%;
  padding: 50px 0;
  background: transparent linear-gradient(148deg, #F1FDDD 0%, #F1FDDD 50%, #FDFFDD 50%, #FDFFDD 100%) 0% 0% no-repeat padding-box; }
  div.access div.flex {
    display: flex;
    flex-flow: column;
    grid-row-gap: 20px;
    margin-bottom: 40px; }
    div.access div.flex picture {
      display: block;
      width: 100%;
      height: auto;
      object-fit: contain; }
    div.access div.flex div.info {
      width: 100%; }
      div.access div.flex div.info h1 {
        display: inline-block;
        font-size: clamp(20px, 1.25vw, 24px);
        font-weight: 700;
        background: linear-gradient(transparent 60%, #F5FF00 60%);
        margin-bottom: 10px; }
      div.access div.flex div.info p.txt_l {
        font-weight: 700;
        margin-bottom: 20px; }
        div.access div.flex div.info p.txt_l.mb10 {
          margin-bottom: 10px; }
        div.access div.flex div.info p.txt_l a {
          display: inline-block;
          font-size: clamp(14px, 0.83vw, 16px);
          text-decoration: none;
          background-image: linear-gradient(to right, #23D152, #23D152 50%, #000 50%);
          background-size: 200% 100%;
          background-position: -100%;
          padding: 0;
          position: relative;
          -webkit-background-clip: text;
          -webkit-text-fill-color: transparent;
          transition: all 0.3s ease-in-out; }
          div.access div.flex div.info p.txt_l a::before {
            content: '';
            background: #000;
            display: block;
            position: absolute;
            bottom: -3px;
            left: 0;
            width: 0;
            height: 2px;
            transition: all 0.3s ease-in-out; }
          div.access div.flex div.info p.txt_l a:hover {
            background-position: 0; }
          div.access div.flex div.info p.txt_l a:hover::before {
            width: 100%; }
      div.access div.flex div.info h5 {
        display: inline-block;
        padding: 10px 20px;
        margin-bottom: 10px;
        background: transparent linear-gradient(105deg, #23D152 0%, #60E031 100%) 0% 0% no-repeat padding-box;
        color: #FFF;
        font-size: clamp(14px, 0.83vw, 16px);
        font-weight: 700; }
      div.access div.flex div.info a {
        display: block;
        font-size: clamp(14px, 0.83vw, 16px);
        font-weight: 700;
        margin-bottom: 10px;
        text-decoration: underline; }
        div.access div.flex div.info a::before {
          display: inline-block;
          font-family: "Font Awesome 5 Free";
          font-size: clamp(14px, 0.83vw, 16px);
          font-weight: 900;
          color: #23D152;
          margin-right: 10px; }
      div.access div.flex div.info a.map::before {
        content: '\f5a0'; }
      div.access div.flex div.info a.video::before {
        content: '\f03d';
        margin-bottom: 0; }
  div.access iframe {
    display: block;
    width: 100%;
    height: 350px; }

footer {
  width: 100%;
  padding: 30px 0 100px 0;
  background: #000; }
  footer p {
    text-align: center;
    color: #FFF;
    font-size: 14px; }

div.follow_btn {
  width: 49%;
  position: fixed;
  right: 0;
  bottom: 0; 
  z-index: 2;
}
  div.follow_btn a {
    display: flex;
    justify-content: center;
    align-items: center;
    grid-column-gap: 3%;
    width: 100%;
    padding: 10px 0;
/*ライトグリーン background: transparent linear-gradient(180deg, #23D152 0%, #60E031 100%) 0% 0% no-repeat padding-box;color: #FFF;font-size: clamp(13px, 0.83vw, 16px);*/
/*イエロー background-color: #ffd700;color: #000;*/
/* ダークグリーン*/ background-color: #006400;color: #FFF;
    font-size: clamp(16px, 0.88vw, 20px);
    font-weight: 700;
    text-align: center;
    border-radius: 10px 10px 0 0; }
    div.follow_btn a img {
      display: block;
      /*width: 20px;*/
      width: 34px;
      height: auto;
      object-fit: contain; }
    div.follow_btn a:hover {
      opacity: 0.9; }

a.totop {
  position: fixed;
  right: 1%;
  bottom: 50px;
  display: block;
  width: 60px;
  height: auto;
  z-index: 1;
}
  a.totop img {
    display: block;
    object-fit: contain; }

/*# sourceMappingURL=sp_style.css.map */

/* 20230727 */
input[type="date"]{
	min-height:42px;
}
.wpcf7-not-valid-tip{
	font-size:14px!important;
}
/* 20240116 */
.floating-banner {
	position: fixed;
	z-index: 999;
}
@media(min-width:768px){
	.floating-banner {
		top: 150px;
		right: 16px;
	    filter: drop-shadow(6px 6px 5px rgba(0, 0, 0, 0.4));
	}
}
@media(max-width:767px){
	.floating-banner {
		top: 90px;
		right: 16px;
		width:265px;
		height:54px;
	}
}
.banner-close {
	position: absolute;
	top: -10px;
	right: -10px;
	padding: 0px 0 1px;
	background-color: #fff;
	cursor: pointer;
	border-radius: 50%;
	font-weight: bold;
	width: 29px;
	height: 29px;
	line-height: 0;
	z-index: 1;
	border: solid 1px #999;
	text-align: center;
	font-size: 17px;
}
.floating-banner > a {
	display: block;
	width: 100%;
	height:100%;
}
.floating-banner > a > img.pc {
	width: 307px;
	height: 150px;
}
@media(max-width:767px){
	.floating-banner > a > img.pc {
		display:none;
	}
}
.floating-banner > a > img.sp {
	object-fit: cover;
	width: 100%;
	height: 100%;
}
@media(min-width:768px){
	.floating-banner > a > img.sp {
		display:none;
	}
}
._mb3rem{margin-bottom: 3rem;}
/* 20240116 */
.floating-banner {
	position: fixed;
	z-index: 999;
}
@media(min-width:768px){
	.floating-banner {
		top: 150px;
		right: 16px;
	    filter: drop-shadow(6px 6px 5px rgba(0, 0, 0, 0.4));
	}
}
@media(max-width:767px){
	.floating-banner {
		top: 90px;
		right: 16px;
		width:265px;
		height:54px;
	}
}
.banner-close {
	position: absolute;
	top: -10px;
	right: -10px;
	padding: 0px 0 1px;
	background-color: #fff;
	cursor: pointer;
	border-radius: 50%;
	font-weight: bold;
	width: 29px;
	height: 29px;
	line-height: 0;
	z-index: 1;
	border: solid 1px #999;
	text-align: center;
	font-size: 17px;
}
.floating-banner > a {
	display: block;
	width: 100%;
	height:100%;
}
.floating-banner > a > img.pc {
	width: 307px;
	height: 150px;
}
@media(max-width:767px){
	.floating-banner > a > img.pc {
		display:none;
	}
}
.floating-banner > a > img.sp {
	object-fit: cover;
	width: 100%;
	height: 100%;
}
@media(min-width:768px){
	.floating-banner > a > img.sp {
		display:none;
	}
}