@charset "UTF-8";
/* CSS Document */
/*
 オリジナルリセットcss
 ----------------------------------------------------------- */
p {
  margin-bottom: 0;
}

img {
  display: block;
}

/*
 デバイス共通
 ----------------------------------------------------------- */

html {
  font-size: 62.5%;/* 10px基準 */
}

body {
  font-family: "メイリオ", Meiryo, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "游ゴシック体", YuGothic, "YuGothic M", sans-serif;
  font-size: 1.8rem;/* 18px */
  line-height: 175%;
  color: #333;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
  word-break: break-all;
}

a, a img {
  transition: all .3s;
}

/*a:hover, a img:hover {
  opacity: 0.7;
}*/

.dib {
  display: inline-block;
}

.m0a {
  margin: 0 auto;
}

.mla {
  margin-left: auto;
}

.posr {
  position: relative;
}

.posa {
  position: absolute;
}

.imgr {
  display: block;
  max-width: 100%;
  height: auto;
}

.pc {
  display: block;
}

.sp {
  display: none;
}

@media screen and (max-width: 767px) {
  .pc {
    display: none;
  }

  .sp {
    display: block;
  }
  
  .sp_scroll {
    width: 100%;
    overflow-x: scroll;
  }
  .sp_scroll > * {
    min-width: 768px;
  }
}

/*
 見出し
 ----------------------------------------------------------- */
h1 {
  font-size: 36px;/* IE8以下とAndroid4.3以下用フォールバック */
  font-size: calc(2.4rem + ((1vw - 0.64rem) * 2.1429));/* 24px~36pxで可変*/
  line-height: 1.3;
}

h2 {
  font-size: 24px;/* IE8以下とAndroid4.3以下用フォールバック */
  font-size: calc(2rem + ((1vw - 0.64rem) * 0.7143));/* 20px~24pxで可変*/
  line-height: 1.3;
  margin: 0;
  text-align: center;
}

h3 {
  margin: 0;
  padding: 0;
}

@media screen and (min-width: 1200px) {/* 1200px以上 */
  h1 {
    font-size: 3.6rem;/* 36px */
  }
  h2 {
    font-size: 2.4rem;/* 24px */
  }
}

@media screen and (max-width: 640px) {/* 640px以下 */
  body {
    font-size: 1.35rem;/* 13.5px */
    line-height: 200%;
  }
  h1 {
    font-size: 2.4rem;/* 24px */
  }
  h2 {
    font-size: 2rem;/* 20px */
  }
}

/*
 テキスト関連
 ----------------------------------------------------------- */
.fwb {
  font-weight: bold !important;
}

.underline {
  text-decoration: underline;
}

.font_xs {
  font-size: 0.666em;
}

/*12px*/
.font_s {
  font-size: 0.777em;
}

/*14px*/
.font_m {
  font-size: 1.333em;
}

/*24px*/
.font_l {
  font-size: 2.222em;
}

/*40px*/
.font_xl {
  font-size: 3.333em;
}

@media screen and (max-width: 640px) {
  /**/
  /*.font_xs {
    font-size: 0.666em;
  }*/

  /*12px*/
  .font_s {
    font-size: 0.777em;
  }

  /*15px*/
  .font_m {
    font-size: 1.5rem;
  }

  /*18px*/
  .font_l {
    font-size: 1.8rem;
  }

  /*40px*/
  /*.font_xl {
    font-size: 3.333em;
  }*/
}

/*font-weight*/
.fw_100 {
  font-weight: 100;
}

.fw_200 {
  font-weight: 200;
}

.fw_300 {
  font-weight: 300;
}

.fw_400 {
  font-weight: 400;
}

.fw_500 {
  font-weight: 500;
}

.fw_600 {
  font-weight: 600;
}

.fw_700 {
  font-weight: 700;
}

.fw_800 {
  font-weight: 800;
}

/*text-align*/
.tac {
  text-align: center !important;
}

.tal {
  text-align: left !important;
}

.tar {
  text-align: right !important;
}

/*justify-content*/
.jc_center {
  justify-content: center;
}

/*align-content*/
.ac_center {
  align-content: center;
}


.shadow {
  text-shadow: 0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff;
}

.font_min {
  font-family: "Yu Mincho", YuMincho, HG明朝B, "MS Mincho", serif;
}

.font_go {
  font-family: "メイリオ", Meiryo, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "游ゴシック体", YuGothic, "YuGothic M", sans-serif;
}

.indent {
  text-indent: -1em;
  padding-left: 1em;
}

.note {
  position: relative;
  font-size: 0.777em;
  padding-left: 1em;
}

.note:before {
  position: absolute;
  content: "※";
  top: 0;
  left: 0;
  font-size: 1em;
  line-height: 1.554em;
}

@media (min-width: 768px) and (max-width: 959px) {
  .tab_shadow {
    text-shadow: 0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff;
  }
}

@media screen and (max-width: 767px) {
  .sp_tal {
    text-align: left !important;
  }
  .sp_shadow {
    text-shadow: 0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff;
  }
}

/*
 余白&幅調整
 ----------------------------------------------------------- */
.mt0 {
  margin-top: 0;
}

.mt5 {
  margin-top: 5px;
}

.mt10 {
  margin-top: 10px;
}

.mt15 {
  margin-top: 15px;
}

.mt20 {
  margin-top: 20px;
}

.mt30 {
  margin-top: 30px;
}

.mt45 {
  margin-top: 45px;
}

.mt50 {
  margin-top: 50px;
}

.mt60 {
  margin-top: 60px;
}

.mt75 {
  margin-top: 75px;
}

.mt80 {
  margin-top: 80px;
}

.mt90 {
  margin-top: 90px;
}

.mt120 {
  margin-top: 120px;
}

.mb0 {
  margin-bottom: 0;
}

.mb5 {
  margin-bottom: 5px;
}

.mb10 {
  margin-bottom: 10px;
}

.mb15 {
  margin-bottom: 15px;
}

.mb20 {
  margin-bottom: 20px;
}

.mb30 {
  margin-bottom: 30px;
}

.mb40 {
  margin-bottom: 40px;
}

.mb45 {
  margin-bottom: 45px;
}

.mb50 {
  margin-bottom: 60px;
}

.mb60 {
  margin-bottom: 60px;
}

.mb75 {
  margin-bottom: 75px;
}

.mb80 {
  margin-bottom: 80px;
}

.mb90 {
  margin-bottom: 90px;
}

.mb120 {
  margin-bottom: 120px;
}

.pt0 {
  padding-top: 0;
}

.pt5 {
  padding-top: 5px;
}

.pt10 {
  padding-top: 10px;
}

.pt15 {
  padding-top: 15px;
}

.pt20 {
  padding-top: 20px;
}

.pt30 {
  padding-top: 30px;
}

.pt45 {
  padding-top: 45px;
}

.pt60 {
  padding-top: 60px;
}

.pt75 {
  padding-top: 75px;
}

.pt90 {
  padding-top: 90px;
}

.pt120 {
  padding-top: 120px;
}

.pb0 {
  padding-bottom: 0;
}

.pb5 {
  padding-bottom: 5px;
}

.pb10 {
  padding-bottom: 10px;
}

.pb15 {
  padding-bottom: 15px;
}

.pb20 {
  padding-bottom: 20px;
}

.pb30 {
  padding-bottom: 30px;
}

.pb45 {
  padding-bottom: 45px;
}

.pb60 {
  padding-bottom: 60px;
}

.pb75 {
  padding-bottom: 75px;
}

.pb90 {
  padding-bottom: 90px;
}

.pb120 {
  padding-bottom: 120px;
}

.pl0 {
  padding-left: 0;
}
.pl10 {
  padding-left: 10px;
}

.pr0 {
  padding-right: 0;
}
.pr10 {
  padding-right: 10px;
}
.ph0 {
  padding-left: 0;
  padding-right: 0;
}

.ph15 {
  padding-left: 15px;
  padding-right: 15px;
}

@media screen and (max-width: 767px) {
  .spmt0 {
    margin-top: 0;
  }
  .spmt5 {
    margin-top: 5px;
  }
  .spmt10 {
    margin-top: 10px;
  }
  .spmt15 {
    margin-top: 15px;
  }
  .spmt20 {
    margin-top: 20px;
  }
  .spmt30 {
    margin-top: 30px;
  }
  .spmt45 {
    margin-top: 45px;
  }
  .spmt60 {
    margin-top: 60px;
  }
  .spmb0 {
    margin-bottom: 0;
  }
  .spmb5 {
    margin-bottom: 5px;
  }
  .spmb10 {
    margin-bottom: 10px;
  }
  .spmb15 {
    margin-bottom: 15px;
  }
  .spmb20 {
    margin-bottom: 20px;
  }
  .spmb30 {
    margin-bottom: 30px;
  }
  .spmb40 {
    margin-bottom: 40px;
  }
  .spmb45 {
    margin-bottom: 45px;
  }
  .spmb60 {
    margin-bottom: 60px;
  }
  .sppt0 {
    padding-top: 0;
  }
  .sppt5 {
    padding-top: 5px;
  }
  .sppt10 {
    padding-top: 10px;
  }
  .sppt15 {
    padding-top: 15px;
  }
  .sppt20 {
    padding-top: 20px;
  }
  .sppt30 {
    padding-top: 30px;
  }
  .sppt45 {
    padding-top: 45px;
  }
  .sppt60 {
    padding-top: 60px;
  }
  .sppb0 {
    padding-bottom: 0;
  }
  .sppb5 {
    padding-bottom: 5px;
  }
  .sppb10 {
    padding-bottom: 10px;
  }
  .sppb15 {
    padding-bottom: 15px;
  }
  .sppb20 {
    padding-bottom: 20px;
  }
  .sppb30 {
    padding-bottom: 30px;
  }
  .sppb45 {
    padding-bottom: 45px;
  }
  .sppb60 {
    padding-bottom: 60px;
  }
  .sppl0 {
    padding-left: 0;
  }
  .sppr0 {
    padding-right: 0;
  }
  .spph0 {
    padding-left: 0;
    padding-right: 0;
  }
}

@media screen and (max-width: 767px) {
  .spwd50 {
    width: 50% !important;
  }
  .spwd60 {
    width: 60% !important;
  }
  .spwd70 {
    width: 70% !important;
  }
  .spwd80 {
    width: 80% !important;
  }
  .spwd90 {
    width: 90% !important;
  }
}

/*
 ボタン
 ----------------------------------------------------------- */
.btn {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  display: block;
  background: #25ad38;
  margin: 0 auto;
  border: 3px solid #25ad38;
  border-radius: 5px;
  color: #fff;
  font-weight: bold;
  font-size: 190%;
  font-family: inherit;
  padding: 5px;
  transition: all 0.2s ease;
  cursor: pointer;
  -webkit-box-shadow: 0px 4px 0px #197827;
  box-shadow: 0px 4px 0px #197827;
  text-align: center;
  /*padding: 10px 0;*/
  position: relative;
  width: 100%;
}

.btn a {
  color: #FFF;
}

.btn:focus {
  color: #FFF;
  text-decoration: none;
}

.btn:hover {
  background: #45ba55;
  border: 3px solid #45ba55;
  -webkit-box-shadow: 0px 4px 0px #236251;
  box-shadow: 0px 4px 0px #236251;
  color: #FFF;
  text-decoration: none;
}

.btn img {
  position: absolute;
  right: 5px;
  width: 20%;
  top: -12px;
}

.btn_gradient {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  display: block;
  background: #2d660a;
  background: -moz-linear-gradient(#5edd00 0%, #2d660a 100%);
  background: -webkit-gradient(linear, left top, left bottom, from(#5edd00), to(#2d660a));
  background: -webkit-linear-gradient(#5edd00 0%, #2d660a 100%);
  background: -o-linear-gradient(#5edd00 0%, #2d660a 100%);
  background: -ms-linear-gradient(#5edd00 0%, #2d660a 100%);
  background: linear-gradient(#5edd00 0%, #2d660a 100%);
}

button {
  margin: 0 auto;
  text-align: center;
  background-color: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  padding: 0;
  appearance: none;
  width: 100%;
}

button img:hover {
  opacity: .7;
}

/*
 Page Top
 ----------------------------------------------------------- */
/*TOPへ戻る*/
.pagetop {
  display: none;
  position: fixed;
  bottom: 15px;
  right: 15px;
  z-index: 9999;
}

.pagetop a {
  position: relative;
  display: block;
  width: 50px;
  height: 50px;
  background-color: #153aa1;
  border-radius: 50%;
  filter: alpha(opacity=100);
  -moz-opacity: 1;
  opacity: 1;
}

.pagetop a:before {
  position: absolute;
  content: "";
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-bottom: 12px solid #fff;
  top: 50%;
  right: 50%;
  transform: translateX(50%) translateY(-60%);
}

.pagetop a:hover {
  display: block;
  text-align: center;
  color: #fff;
  font-size: 12px;
  text-decoration: none;
  filter: alpha(opacity=70);
  -moz-opacity: 0.7;
  opacity: 0.7;
}

.pagetop a:link,
.pagetop a:visited {
  color: #fff;
}

@media screen and (max-width: 767px) {
  .pagetop {
    bottom: 20px;
    right: 5px;
  }
}


/*
 Container / Break
 ----------------------------------------------------------- */

@media (min-width: 960px) {
  .container {
    width: 960px;
    margin: 0 auto;
    position: relative;
    padding-left: 15px;
    padding-right: 15px;
    box-sizing: border-box;
  }
	.container_l {
	padding:0 15px;
	margin: 0 auto;
	box-sizing: border-box;
	}

  .p_none {
    display: none;
  }
  .pt_none {
    display: none;
  }
  .ps_none {
    display: none;
  }
  .t_none {
    display: block;
  }
  .ts_none {
    display: block;
  }
  .s_none {
    display: block;
  }
}

@media (min-width: 768px) and (max-width: 959px) {
  body {
    overflow-x: hidden;
  }
  .container {
    width: 768px;
    margin: 0 auto;
    position: relative;
    margin-right: auto;
    margin-left: auto;
    padding-left: 15px;
    padding-right: 15px;
    box-sizing: border-box;
  }
	.container_l {
	padding:0 15px;
	margin: 0 auto;
	box-sizing: border-box;
	}
  .p_none {
    display: block;
  }
  .pt_none {
    display: none;
  }
  .ps_none {
    display: block;
  }
  .t_none {
    display: none;
  }
  .ts_none {
    display: none;
  }
  .s_none {
    display: block;
  }
}

@media screen and (max-width: 767px) {
  body {
    overflow-x: hidden;
  }
  .container {
    margin-right: auto;
    margin-left: auto;
    padding-left: 4vw;
    padding-right: 4vw;
    box-sizing: border-box;
  }
	.container_l {
	padding:0 15px;
	margin: 0 auto;
	box-sizing: border-box;
	}
  .p_none {
    display: block;
  }
  .pt_none {
    display: block;
  }
  .ps_none {
    display: none;
  }
  .t_none {
    display: block;
  }
  .ts_none {
    display: none;
  }
  .s_none {
    display: none;
  }
}
@media (min-width: 1200px) {
	.container_l {
	width:100%;
	max-width: 1200px;
    margin: 0 auto;
	box-sizing: border-box;
	padding:0;
	}
}

.float_cta {
  position: fixed;
  bottom: -100px;
  opacity: 0;
  transition: all ease 0.3s;
  width: 100%;
  background: rgba(255, 255, 255, 0.8);
  z-index: 10;
  padding: 15px 0;
}

.float_cta.active {
    bottom: 0;
    opacity: 1;
}