@charset "utf-8";
body {
-webkit-touch-callout:none;
-webkit-user-select:none;
-moz-user-select:none;
-ms-user-select:none;
user-select:none
}
@media print {
	body { display: none !important; }
}

a:hover,a:focus {
	opacity: 0.6;
}
img {
	max-width: 100%;
	height:auto;
	vertical-align: top;
}
ul li,ol li{ list-style: none; }
#wrap {
  font-size: 10px;
}
#wrap img {
	max-width: 100%;
	vertical-align: bottom;
}
#wrap {
	width: 100%;
	font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", "sans-serif";
	margin: 0 auto;
	overflow: hidden;
}
#wrapper {
	overflow: hidden;
  max-width: 2000px;
	margin: 0 auto;
	width: 100%;
}
#wrapper #bg_wrapper #wrapper2 {
	width: 100%;
	max-width: none;
}
#wrap .wrapInner {
	position: relative;
	/*! max-width: 1440px; */
	margin: 0 auto;
} 
#bg_wrapper {
  position: relative;
}
/* 背景 */
#wrap .bg_blue01 {
	background-color: #d6e7f9;
}
.bg_hapilaw_gray {
	background-color: #f0f0f0;
}
.bg_hapilaw {
	background-color: #f0f0f0;
	background-image: url(/lab/campaign/hapilaw/img/26/bg_hapilaw.png);
	background-size: 53%;
}
#wrap .bg_hapilaw2 {
	position: relative;
}
#wrap .bg_hapilaw2:before {
  content: "";
  position: absolute;
  background-color: #f0f0f0;
  background-image: url(../img/26/bg_hapilaw.jpg);
  background-size: auto;
  z-index: 1;
  width: 145%;
  height: 100%;
  border-radius: 100% 100% 0 0;
  left: 50%;
  transform: translate(-50%,1em);
  max-width: 2810px;
}
#wrap .block_links ul {
	width: 546px;
	max-width: 100%;
	margin: 0 auto;
	padding: 80px 0;
  max-width:80%;
}
#wrap .block_links ul>li+li {
	margin-top: 30px;
}


/* mainvis */
#wrap #fvArea {
	padding: 40px 0 30px 0;
}
#wrap #fvArea h2 img {
	width: 800px;
}
.main_vis_after {
  text-align: center;
  position: absolute;
  width: 50%;
  bottom: 4.5%;
  left: 25%;
}

#wrap .titleBlock {
	position: relative;
}
#wrap .titleBlock01 {
	position: absolute;
	top: 50%;
}

.about {
	max-width: 1328px;
	margin: 0 auto;
}
.about_inner {
	position: relative;
}
.about_icn {
	position: absolute;
  top: 23%;
  right: 2%;
}

/* SNS */
#wrap .snsList {
	padding:25px 0 51px 0;
}
#wrap .snsList ul {
	display: flex;
	margin: 0 auto;
	align-items: center;
	justify-content: center;
}
#wrap .snsList li {
	height:auto !important;
}
#wrap .snsList .tw,
#wrap .snsList .fb,
#wrap .snsList .line {
	width:auto;
	margin:0 20px;
}
/* アプリ */
#wrap .appliList {
	text-align: center;
	padding: 20px 0 40px 0;
}
#wrap .appliList ul {
	display: inline-block;
	margin: 0 auto;
	padding: 0;
	font-size: 0;
}
#wrap .appliList li {
	display: inline-block;
	margin:0 41px 0 10px;
}
#wrap .appliList li:last-child {
	margin:0;
}

.clearfix::after{
	content: "";
	display: block;
	clear: both;
}
/*pageTop*/
#wrapper #gotop2 {
	z-index: 100;
	position: fixed;
	right:-100px;
	bottom:50px;
}
#update2015_footer #pageTop {
	display: none;
}
/*汎用*/
.pc { display: block !important; }
.sp { display: none !important; }


.title_sec {
  text-align: center;
}
.fvArea {
  text-align: center;
  padding-bottom: 10em;
  display: table;
  margin: 0 auto;
  position: relative;
  padding-top: 5em;
}
#appArea {
  text-align: center;
}
.bg_hapilaw_gray section {
  position: relative;
  z-index: 20;
}
.title_blue {
  background-image: url(../img/26/title_blue.png);
  padding-top: 5em;
  width: 100%;
  z-index: 50;
  background-size: auto 100%;
  background-repeat: no-repeat;
  background-position: center;
  height: 51.7em;
  text-align: center;
  touch-action: none;
  pointer-events: none;
}
.sec1 {
  padding-bottom: 30em;
}
.sec1 .title_blue h3 img {
  transform: translate(8%,0) rotate(2deg);
}
.title_blue h3 {
  position: relative;
  display: inline-block;
}
.sec1 .title_blue h3::before {
  content:"";
  display: block;
  position: absolute;
  background-image: url(../img/26/ttl_01_abs.png);
  width: 10.1em;
  height: 12em;
  background-size: 100% 100%;
  left: 0;
  transform: translate(-67%,-30%) rotate(3deg);
	background-size:100% 100%;
  top: 50%;
}
.sec2 .title_blue h3::before {
  content: "";
  display: block;
  position: absolute;
  background-image: url(../img/26/ttl_02_abs.png);
  width: 22.2em;
  height: 22.6em;
  left: 0;
  top: 50%;
  transform: translate(-102%,-15%);
	background-size:100% 100%;
}
.title_sec {
  position: relative;
}
.sec1_1 {
  margin-top: -13.5em;
  z-index: 60;
}
.item_list li {
  padding: 1.5em;
  display: inline-block;
  border-radius: 1em;
  overflow: hidden;
  background: #006cb6;
  transition: transform 0.5s ease;
}
.item_list li a {
  border-radius: 1em;
  overflow: hidden;
  display: block;
}
.item_list.item_list-1 {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  grid-gap: 35px;
  margin: 50px auto 90px;
}
.bg_hapilaw_gray .title_blue + section {
  position: relative;
  z-index: 60;
}
.sec3_bg_inner {
  background-image: url(../img/26/conts_03_bg.png);
  padding-top: 24em;
  background-size: auto 100%;
  height: 110.8em;
  background-repeat: no-repeat;
  background-position: top center;
  position: relative;
  text-align: center;
  z-index: 50;
  touch-action: none;
  pointer-events: none;
}
.relation_map > div {
  position: relative;
}

.char1 .char_name {
  top: 8%;
  left: 11%;
  width: 24.2%;
}
.char_name,.char_img {
  position: absolute;
}
.char_list li .relation_text {
  opacity: 0;
  touch-action: none;
  pointer-events: none;
  width: 0;
  height: 0;
  overflow: hidden;
}
.char1 .char_img {
  width: 26.1%;
  top: 20%;
  left: 10%;
}
.char2 .char_img {
  width: 26.1%;
  top: 20%;
  right: 10%;
}
.char2 .char_name {
  width: 23.7%;
  right: 11%;
  top: 8%;
}
.char3 .char_name {
  width: 19.6%;
  bottom: 14%;
  right: 17%;
}
.char3 .char_img {
  bottom: 3%;
  width: 26.1%;
  left: 37%;
}
.char4 .char_name {
  top: 10%;
  left: 14%;
  width: 19.8%;
}
.char4 .char_img {
  width: 27.4%;
  top: 32%;
  left: 10%;
}
.char5 .char_img {
  width: 27.4%;
  top: 32%;
  right: 10%;
}
.char5 .char_name {
  top: 10%;
  right: 11%;
  width: 24.2%;
}
#wrap .title_sec_bg {
  width: 1440px;
  position: absolute;
}
.title_sec {
  background-image: url(../img/26/sub-ttl_01_bg.png);
  background-repeat: no-repeat;
  background-position: center;
  margin-top: 9em;
  background-size: auto 100%;
  height: 38.2em;
  position: absolute;
  width: 100%;
  top: 0;
  left: 0;
  touch-action: none;
  pointer-events: none;
}
.sec1_2 .title_sec {
  background-image: url(../img/26/sub-ttl_02_bg.png);
  height: 30.9em;
}
.sec2_1 .title_sec {
  background-image: url(../img/26/sub-ttl_03_bg.png);
  padding-top: 6em;
  height: 30.3em;
}
.sec2_2 .title_sec {
  background-image: url(../img/26/sub-ttl_04_bg.png);
  height: 33.9em;
}
.slider_in img {
  height: 387px;
  width: auto;
}
#wrap div.swiper-start-stop {
  width: 2.2em;
  display: inline-block;
  margin: 0;
}
.swiper-start-stop.stop .swiper-start {
  display: none;
}
.swiper-start-stop.start .swiper-stop {
  display: none;
}
.sec2 {
  padding-bottom: 30em;
}
#wrap div.more_view {
  display: block;
  margin: 1.5em 0;
  text-align: center;
}
#wrap div.swiper_afterbox {
  text-align: center;
  margin-top: 1em;
  display: flex;
  justify-content: center;
  align-items: center;
}
#wrap .slider_in {
  margin: 0;
  display: inline-block;
}
.swiper-slide{
  width:auto !important;
  max-width:60%;
  transition:transform 0.5s ease;
  transform:scale(1.0);
}
.swiper-slide.swiper-slide-active {
  transform:scale(1.38);
}
.swiper {
  padding: 9em 0;
}
.swiper .swiper-arrow {
  background: url(../img/26/slider_arrow.png);
  width: 4.3em;
  height: 5.5em;
  background-size: 100% 100%;
}
.swiper .swiper-arrow.swiper-button-prev {
  right: 50%;
  top: 50%;
  transform: translate(-32em);
  left: inherit;
}
.swiper .swiper-arrow.swiper-button-next {
  left: 50%;
  top: 50%;
  transform: translate(32em) rotate(180deg);
}
.swiper_wrapper .swiper-pagination {
  position: static;
  display: inline-block;
  width: auto !important;
  margin-left: 1em;
}
.sec3_afterbox {
  background-color: #f0f0f0;
  display: block;
  position: absolute;
  top: 64em;
  width: 2805px;
  height: 300em;
  border-radius: 100%;
  left: 50%;
  transform: translate(-50%,0);
  z-index: 50;
  touch-action: none;
  pointer-events: none;
}
.sec3_inner_abs {
  position: absolute;
  z-index: 20;
  top: 31em;
  left: 50%;
  transform: translate3d(38em,0,0);
}
.sec3_bg_inner > img {
  position: relative;
  z-index: 30;
}
#wrap img.fv_image {
  margin-top: -10em;
  position: relative;
  z-index: 50;
}
.fv_image_abs {
  position: absolute;
  width: 9em;
  top: 50%;
  left: 50%;
  transform: translate3d(42em,17em,0);
  display: block;
  opacity:0;
  transition: all 1s cubic-bezier(.68,-0.55,.27,1.55);
}
.on .fv_image_abs{
  transform: translate3d(42em,12em,0);
  opacity:1;
}
.fv_image_abs img {
  animation:fuwafuwa_1 alternate 4s infinite ease-in-out;
}
@keyframes fuwafuwa_1{
  0%{ transform:translate3d(0,0,0); }
  100%{ transform:translate3d(0,-20%,0); }
}
.title_sec h4 {
  position: absolute;
  left: 50%;
  transform: translate(-50%,-34%);
  top: 0;
  width: 456px;
}
#wrap .bg_hapilaw2 section section {
  padding-top: 23em;
  margin-top: -33em;
}
.foot_contnts {
  position: relative;
  z-index: 100;
  margin-top: -20em;
}
.item_list li:hover {
  transform: scale(1.1);
}
.section_inner {
  position: relative;
  z-index: 100;
}
.sec3_bg {
  touch-action: none;
  pointer-events: none;
}
.sec3_inner_abs img {
  transition: all 1s ease;
  opacity: 0;
  transform: translate3d(0,50%,0);
}
.on .sec3_inner_abs img {
  opacity: 1;
  transform: translate3d(0,0%,0);
}
.fv_title {
  opacity:0; 
  transform:translate3d(0,30%,0);
  position: relative;
  z-index: 20;
}
.on .fv_title {
  opacity:1; 
  transform:translate3d(0,0%,0);
  animation:poyon normal 0.8s 1 ease;
}
@keyframes poyon {
  0% {
    opacity: 0;
    transform: translate3d(0, 30%, 0);
  }
  40% {
    opacity: 1;
    transform: translate3d(0, -5%, 0);
  }
  60% {
    transform: translate3d(0, 5%, 0);
  }
  80% {
    transform: translate3d(0, -2%, 0);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}
@media screen and (max-width:850px){
  #wrap{
    font-size:1.333vw;
  }
  #wrap img.fv_image {
    max-width: 97.8%;
    margin-top: -11%;
  }
  .fvArea {
    max-width: 83.6%;
    padding-bottom: 7em;
  }
  .fv_image_abs {
    width: 6.6em;
    transform: translate(30em,11em);
  }
  .on .fv_image_abs{
    transform: translate(30em,6em);
  }
  .title_blue h3 {
    max-width: 40em;
  }
  .title_blue {
    height: 30em;
    padding-top: 3em;
  }
  .sec1 .title_blue h3::before {
    width: 5.6em;
    height: 6.7em;
  }
  #wrap .bg_hapilaw2:before {
    background-size: 54em auto;
    width: 242%;
  }
  .title_sec h4 {
    width: 27.6em;
  }
  .title_sec {
    height: 23em;
  }
  #wrap .bg_hapilaw2 section section {
    padding-top: 17em;
    margin-top: -22em;
  }
  .item_list.item_list-1 {
    max-width: 80%;
  }
  .item_list li:last-child {
    /*! max-width: 37em; */
  }
  .sec3_bg_inner > img {
    width: 47.5em;
  }
  .sec3_bg_inner {
    height: 73em;
    padding-top: 13em;
  }
  .sec3 .sec3_afterbox {
    background-size: 38em;
    width: 318vw;
    top: 56.5%;
    background-position: center;
  }
  .sec3_inner_abs {
    left: inherit;
    transform: none;
    width: 12.5em;
    right: 9%;
    top: 25.9%;
  }
}
@media screen and (max-width: 750px) {
	/* SNS */
	#wrap .snsList {
		padding:2% 0 9.118% 0;
	}
	#wrap .snsList ul {
		margin: 0 auto;
		padding: 0;
		width: 70%;
		display: -webkit-flex;
		display: flex;
		-webkit-justify-content: space-around;
		justify-content: space-around;
	}
	#wrap .snsList .snsListInner::after{
		content: none;
	}
	#wrap .snsList li {
		height:auto !important;
		text-align: center;
		margin: 0;
	}
	#wrap .snsList .tw,
	#wrap .snsList .fb,
	#wrap .snsList .line {
		margin: 0;
	}
	#wrap .snsList .tw img ,
	#wrap .snsList .fb img ,
	#wrap .snsList .line img {
		width:18.667vw;
	}
	/* アプリ */
	#appArea dt img {
		width:55.200%;
	}
	#wrap .appliList {
		text-align: center;
		padding: 2.667vw 0 5.333vw 0;
	}
	#wrap .appliList ul {
		width:74.267%;
	}
	#wrap .appliList ul li img {
		width: 100%;
	}
	#wrap .appliList .app {
		float:left;
		margin: 0;
		width: 41.293%;
	}
	#wrap .appliList .google {
		float:right;
		margin: 0;
		width: 50.449%;
	}
	/*pageTop*/
	#wrapper #gotop2 {
		right:20px;
		bottom:20px;
	}
	#wrapper #gotop2 a img {
		width:8.667vw;
	}
	/*汎用*/
	.pc { display: none !important; }
	.sp { display: block !important; }

	.bg_hapilaw {
		background-size: 80%;
		background-position: 90px 10px;
	}
}